Hướng dẫn xây dựng RAID 1 trên Ubuntu: Đảm bảo an toàn dữ liệu với mdadm (2025)

目次

1. Giới thiệu

Tại sao nên xây dựng RAID 1 trên Ubuntu?

Ubuntu là một bản phân phối Linux được sử dụng rộng rãi từ cá nhân cho đến doanh nghiệp. Nhờ độ tin cậy và tính linh hoạt cao, Ubuntu thường được lựa chọn cho các máy chủ. Việc thiết lập RAID 1 (mirroring) trong môi trường Ubuntu giúp đảm bảo tính dự phòng dữ liệu và giảm thiểu rủi ro mất dữ liệu do lỗi ổ đĩa.

RAID 1 ghi dữ liệu giống nhau lên hai hoặc nhiều ổ đĩa cùng lúc, nên khi một ổ đĩa gặp sự cố, hệ thống vẫn tiếp tục hoạt động bình thường. Do đó, với những môi trường Ubuntu xử lý file hoặc dịch vụ quan trọng, việc triển khai RAID 1 là một giải pháp bảo vệ hiệu quả.

Sự khác biệt giữa RAID phần mềm và RAID phần cứng

Có hai phương pháp chính để xây dựng RAID. Một là RAID phần cứng, sử dụng bộ điều khiển RAID chuyên dụng hoặc chức năng RAID tích hợp trên bo mạch chủ. Hai là RAID phần mềm, sử dụng phần mềm trên hệ điều hành (trên Linux chủ yếu là mdadm).

Trên Ubuntu, RAID phần mềm thường được lựa chọn vì chi phí thấp và cấu hình linh hoạt. Bài viết này sẽ hướng dẫn chi tiết cách xây dựng RAID 1 trên Ubuntu, bao gồm cấu hình khi cài đặt, vận hành, quản lý cũng như xử lý sự cố.

Những gì bạn sẽ học trong bài viết này

Qua hướng dẫn này, bạn sẽ nắm được các kiến thức và kỹ thuật sau:

  • Kiến thức cơ bản về RAID 1 và cách vận hành trên Ubuntu
  • Các bước xây dựng RAID 1 bằng phần mềm RAID (mdadm)
  • Hướng dẫn phục hồi, kiểm tra trạng thái và xử lý sự cố RAID 1
  • Điểm khác biệt và lưu ý khi sử dụng Ubuntu Server và Desktop
  • FAQ thực tế, cấu hình GRUB và fstab cho môi trường vận hành

RAID sau khi thiết lập sẽ không cần can thiệp thường xuyên, tuy nhiên hiểu đúng về cấu hình ban đầu là cực kỳ quan trọng. Bài viết này trình bày chi tiết, dễ hiểu và thực tế để cả người mới cũng có thể thực hiện theo. Hãy đọc đến cuối để nắm rõ toàn bộ quy trình.

侍エンジニア塾

2. Kiến thức cơ bản về RAID 1

Các loại RAID và đặc điểm của RAID 1

RAID (Redundant Array of Independent Disks) là công nghệ kết hợp nhiều ổ cứng để tăng tính an toàn dữ liệu và tốc độ truy xuất. Có nhiều cấp độ RAID, mỗi loại có đặc điểm riêng.

Các cấp RAID phổ biến bao gồm:

  • RAID 0: Tăng tốc nhờ chia dải (striping), không có tính dự phòng
  • RAID 1: Đảm bảo dự phòng nhờ mirroring (nội dung chính của bài này)
  • RAID 5: Đảm bảo dự phòng với tối thiểu 3 ổ đĩa nhờ parity
  • RAID 6: Phiên bản nâng cao của RAID 5 với 2 parity, độ tin cậy cao hơn
  • RAID 10 (1+0): Kết hợp RAID 1 và RAID 0

Trong đó, RAID 1 sử dụng cơ chế mirroring, ghi dữ liệu giống nhau lên hai ổ đĩa. Nếu một ổ bị hỏng, bạn vẫn có thể đọc dữ liệu từ ổ còn lại, tăng độ khả dụng của hệ thống.

Cơ chế mirroring (minh họa sơ đồ)

Cơ chế của RAID 1 rất đơn giản. Ví dụ, bạn có ổ đĩa A và B:

[Ghi dữ liệu]
Người dùng lưu file A → File được ghi đồng thời vào ổ A và B

[Đọc dữ liệu]
Có thể đọc từ bất kỳ ổ nào, tối ưu hóa hiệu suất

Dữ liệu luôn được sao chép nên RAID 1 có khả năng chống chịu lỗi phần cứng rất cao—đây chính là lợi ích lớn nhất của RAID 1.

Sự khác biệt giữa RAID phần mềm và RAID phần cứng

Có hai phương pháp chính để xây dựng RAID:

  • RAID phần mềm (mdadm, v.v.)
    Chủ yếu sử dụng trên Ubuntu. Điều khiển RAID ở mức hệ điều hành, linh hoạt và tiết kiệm chi phí. Được sử dụng rộng rãi cho máy chủ.
  • RAID phần cứng (card RAID hoặc tính năng BIOS)
    Sử dụng bộ điều khiển RAID chuyên dụng. Giảm tải cho CPU, hệ điều hành nhận diện như một ổ đĩa đơn, nhưng nếu bộ điều khiển hỏng thì phục hồi sẽ khó hơn.

Fake RAID (BIOS RAID) là gì?

Một số bo mạch chủ có chức năng RAID tích hợp trên BIOS, thường gọi là “Fake RAID”.

Fake RAID nhìn có vẻ là RAID phần cứng, nhưng thực tế được kiểm soát ở mức driver, cấu trúc gần giống RAID phần mềm. Ubuntu có hỗ trợ một phần, nhưng quản lý và phục hồi dễ hơn khi dùng mdadm nên Fake RAID thường không được khuyến nghị.

3. Xây dựng RAID 1 bằng phần mềm (mdadm)

3.1 Chuẩn bị và kiểm tra trước khi cài đặt

Để xây dựng RAID 1, bạn cần ít nhất hai ổ đĩa vật lý (hoặc phân vùng chưa sử dụng). Không nên sử dụng ổ đĩa hệ thống hiện tại, hãy chuẩn bị bộ lưu trữ riêng biệt.

Đầu tiên, kiểm tra các ổ đĩa mục tiêu.

lsblk

Hoặc kiểm tra chi tiết hơn bằng lệnh sau:

sudo fdisk -l

Ở đây giả sử các ổ đĩa là /dev/sdb/dev/sdc.

Lưu ý: Hãy chắc chắn rằng các ổ đĩa mục tiêu không chứa dữ liệu quan trọng trước khi tạo RAID. Khi tạo RAID, ổ đĩa sẽ bị format và toàn bộ dữ liệu sẽ bị xóa.

3.2 Cài đặt mdadm

mdadm có sẵn trong kho của Ubuntu và có thể cài đặt dễ dàng bằng lệnh sau:

sudo apt update
sudo apt install mdadm

Trong quá trình cài đặt, có thể bạn sẽ được hỏi về cấu hình thông báo email. Có thể thay đổi cấu hình này sau, ban đầu cứ để mặc định.

3.3 Các bước tạo RAID 1 array

Sau khi xác nhận ổ đĩa, hãy dùng lệnh sau để tạo RAID 1 array:

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

Giải thích lệnh:

  • /dev/md0: Tên thiết bị RAID mới
  • --level=1: Chỉ định RAID cấp 1 (mirroring)
  • --raid-devices=2: Số lượng thiết bị tham gia RAID
  • /dev/sdb /dev/sdc: Các ổ đĩa sẽ được sử dụng

Sau khi tạo xong, kiểm tra trạng thái bằng lệnh:

cat /proc/mdstat

Nếu xuất hiện thông tin đồng bộ hóa /dev/md0, bạn đã tạo RAID 1 thành công.

3.4 Cấu hình duy trì RAID sau khi khởi động lại (mdadm.conf và fstab)

Sau khi tạo RAID array, cần cấu hình để hệ thống tự nhận diện lại RAID sau khi reboot.

Đầu tiên, lưu cấu hình RAID hiện tại vào mdadm.conf:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Sau đó tạo hệ thống file (ví dụ: ext4) trên array RAID:

sudo mkfs.ext4 /dev/md0

Tạo mount point và thử mount:

sudo mkdir -p /mnt/raid1
sudo mount /dev/md0 /mnt/raid1

Sau khi xác nhận hoạt động, thêm RAID vào /etc/fstab để tự động mount khi khởi động lại. Lấy UUID của array RAID:

sudo blkid /dev/md0

Lấy UUID trả về và ghi vào /etc/fstab như sau:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/raid1 ext4 defaults 0 0

Như vậy RAID 1 sẽ tự động được mount mỗi khi khởi động lại máy.

4. Cách cấu hình RAID 1 khi cài đặt Ubuntu

4.1 Các bước cấu hình RAID bằng trình cài đặt Ubuntu Server

Trình cài đặt Ubuntu Server hỗ trợ cấu hình RAID và LVM nâng cao. Sau đây là quy trình cấu hình RAID 1:

Bước 1: Khởi động từ USB hoặc đĩa cài đặt Ubuntu Server

Bước 2: Thiết lập mạng và cấu hình cơ bản

Bước 3: Đến phần cấu hình ổ đĩa
Chọn “Custom Storage Layout” (Cấu hình tùy chỉnh) thay vì “Guided”.

Bước 4: Tạo RAID array

  1. Chọn hai ổ đĩa trống
  2. Tạo phân vùng (ví dụ: /boot, swap, /…)
  3. Chọn “Create Software RAID” (Tạo RAID phần mềm)
  4. Chọn RAID 1 và các ổ đĩa tham gia
  5. Phân vùng RAID cho hệ thống file, chỉ định mount point

Bước 5: Cài đặt bootloader (GRUB)
Khuyến nghị cài GRUB lên cả hai ổ đĩa để hệ thống có thể khởi động khi một ổ bị lỗi.

4.2 Sử dụng RAID trên Ubuntu Desktop

Ubuntu Desktop không hỗ trợ cấu hình RAID khi cài đặt mặc định. Nếu muốn sử dụng RAID 1, cần thực hiện các bước sau:

Cách 1: Tạo RAID bằng mdadm ở chế độ Live, sau đó cài Desktop

  1. Khởi động từ Live USB
  2. Tạo RAID 1 bằng mdadm
  3. Cài Ubuntu Desktop lên thiết bị RAID (ví dụ: /dev/md0)
  4. Điều chỉnh cấu hình grub và fstab

Cách này linh hoạt hơn và thích hợp khi muốn sử dụng môi trường GUI với RAID 1.

Cách 2: Cài Ubuntu Server có RAID, sau đó cài thêm giao diện đồ họa
Cài đặt Ubuntu Server với RAID, sau đó cài thêm gói ubuntu-desktop để sử dụng GUI.

sudo apt update
sudo apt install ubuntu-desktop

Cách này ổn định và phù hợp khi muốn sử dụng giao diện đồ họa trên môi trường đã có RAID.

Tiêu chí lựa chọn Desktop và Server

Tiêu chí so sánhBản ServerBản Desktop
Dễ cấu hình RAID◎ Được tích hợp sẵn trong installer△ Cần cấu hình thủ công
Giao diện GUI× (Chủ yếu là dòng lệnh)◎ (Có GUI mặc định)
Thân thiện với người mới△ Cần có kinh nghiệm◎ Cài đặt đơn giản
Linh hoạt◎ Chuyên dụng cho máy chủ○ Có thể tuỳ biến thêm

Nếu muốn vận hành chủ yếu với RAID, nên chọn bản Server ngay từ đầu để thiết lập thuận tiện. Nếu cần dùng Desktop, nên cài RAID ở môi trường Live hoặc cài thêm GUI sau.

5. Vận hành và xử lý sự cố RAID 1

5.1 Giám sát trạng thái và kiểm tra RAID array

Việc giám sát trạng thái RAID 1 hàng ngày rất quan trọng để phát hiện sớm sự cố. Có thể kiểm tra trạng thái hiện tại của RAID array bằng lệnh sau:

cat /proc/mdstat

Lệnh này hiển thị tình trạng đồng bộ của array, cũng như có ổ đĩa nào gặp sự cố không. Nếu đang đồng bộ sẽ hiển thị dạng [UU]; nếu có dạng [_U] tức là một ổ đã bị loại khỏi array.

Muốn xem thông tin chi tiết hơn, sử dụng lệnh sau:

sudo mdadm --detail /dev/md0

Kết quả trả về sẽ bao gồm trạng thái từng thiết bị, UUID, tiến độ rebuild, v.v. Bạn cũng nên kiểm tra log định kỳ và cân nhắc thiết lập thông báo email khi có sự cố.

5.2 Xử lý và tái xây dựng khi ổ đĩa bị lỗi

Ưu điểm lớn nhất của RAID 1 là hệ thống vẫn hoạt động khi một ổ đĩa bị lỗi. Tuy nhiên, nếu phát hiện lỗi, cần xử lý càng sớm càng tốt.

Bước 1: Xác định ổ đĩa lỗi
Sử dụng mdadm --detail, nếu thấy thiết bị nào bị “Removed” hoặc “Faulty” thì đó là ổ gặp sự cố.

Bước 2: Loại bỏ ổ đĩa lỗi khỏi array

sudo mdadm /dev/md0 --remove /dev/sdX

(Thay /dev/sdX bằng tên ổ đĩa thực tế)

Bước 3: Chuẩn bị ổ đĩa mới
Gắn ổ mới vào, tạo phân vùng (nếu cần):

sudo fdisk /dev/sdX

Nên đặt loại phân vùng là fd (Linux RAID autodetect).

Bước 4: Thêm ổ mới vào array để tái đồng bộ

sudo mdadm /dev/md0 --add /dev/sdX

Tiến trình rebuild có thể kiểm tra bằng cat /proc/mdstat. Thời gian hoàn thành tùy dung lượng.

5.3 Cài đặt GRUB và đảm bảo dự phòng khởi động

Với cấu hình RAID 1, nên cài bootloader (GRUB) lên cả hai ổ đĩa để vẫn khởi động được dù một ổ bị lỗi.

Trên hệ thống đã cài, để cài GRUB lên ổ còn lại:

sudo grub-install /dev/sdX
sudo update-grub

(Thay /dev/sdX bằng tên ổ mới)

Nhớ cập nhật lại cấu hình GRUB:

sudo update-grub

Làm như vậy, nếu một ổ đĩa gặp sự cố, chỉ cần đổi thứ tự boot trong BIOS là hệ thống vẫn khởi động được. Muốn tận dụng hết độ dự phòng của RAID, việc cài GRUB trên cả hai ổ là bắt buộc.

6. Khi sử dụng RAID phần cứng

6.1 RAID phần cứng là gì?

RAID phần cứng sử dụng bộ điều khiển RAID chuyên dụng (card RAID) để xây dựng array. Nhờ xử lý RAID ở bộ điều khiển, hiệu suất cao, giảm tải cho CPU.

Hệ điều hành nhận array như một ổ đĩa đơn nên không cần thiết lập mdadm. Việc sử dụng RAID phần cứng chủ yếu dành cho môi trường server chuyên nghiệp.

6.2 Ưu và nhược điểm khi dùng RAID phần cứng trên Ubuntu

Ưu điểm:

  • Xử lý RAID bằng phần cứng, giảm tải cho CPU
  • Có thể thiết lập ở mức BIOS, không phụ thuộc hệ điều hành
  • Khôi phục nhanh khi gặp sự cố, nhiều dòng hỗ trợ hot-swap

Nhược điểm:

  • Nếu card RAID hỏng, phục hồi đòi hỏi phải cùng model, cùng firmware
  • Khó debug, di chuyển sang hệ thống khác kém linh hoạt
  • Chi phí đầu tư lớn (card RAID thường khá đắt)

6.3 Kiểm tra và quản lý RAID phần cứng trên Ubuntu

Nếu máy đã có card RAID, Ubuntu sẽ nhận array như block device (ví dụ: /dev/sda). mdadm sẽ không nhận diện được array.

Hãy sử dụng công cụ chuyên dụng của hãng sản xuất card RAID để quản lý trạng thái.

Các hãng phổ biến và công cụ quản lý:

HãngTên công cụGhi chú
LSI / Broadcomstorcli hoặc MegaCLIĐược dùng rộng rãi trên nhiều server
HP / HPEhpssacli hoặc ssacliDòng ProLiant
Dellomreport (OpenManage)Cho server Dell
IntelIntel RAID Web ConsoleHỗ trợ giao diện GUI

Khi dùng Ubuntu, hãy tải các gói .deb chính hãng để cài và quản lý.

6.4 Lưu ý về Fake RAID (BIOS RAID)

Có những trường hợp trông giống RAID phần cứng nhưng thực chất là Fake RAID – RAID mô phỏng ở BIOS. Thực tế, đây là RAID phần mềm điều khiển qua driver.

Muốn dùng trên Ubuntu cần cấu hình đặc biệt với “dmraid” hoặc “mdadm”, khả năng tương thích thấp và dễ phát sinh lỗi nên không khuyến nghị cho người mới.

Khi nào nên dùng RAID phần cứng?

Các trường hợp nên cân nhắc dùng RAID phần cứng:

  • Quản lý khối lượng lưu trữ lớn cho server vừa và lớn
  • Cần tính năng riêng như hot-swap, cache pin, v.v.
  • Muốn giảm tải tối đa cho CPU
  • Yêu cầu giám sát và cảnh báo chuyên sâu

Ngược lại, với server nhỏ hoặc cá nhân, RAID phần mềm với mdadm sẽ tiết kiệm và linh hoạt hơn.

7. Câu hỏi thường gặp (FAQ)

Q1. RAID 1 có thay thế cho việc sao lưu dữ liệu (backup) không?

A1. Không, RAID 1 không thay thế cho việc backup.

RAID 1 là giải pháp dự phòng nhằm bảo vệ hệ thống khỏi dừng hoạt động do hỏng ổ đĩa. Nếu bạn xóa nhầm file, bị virus hoặc lỗi hệ điều hành gây hỏng dữ liệu, mọi ổ đĩa trong RAID 1 đều bị ảnh hưởng giống nhau. Vì vậy, luôn cần kết hợp RAID với giải pháp backup độc lập.

Q2. Nếu một ổ đĩa trong RAID 1 bị lỗi thì sao?

A2. Hệ thống vẫn hoạt động bình thường với ổ còn lại.

Với RAID 1, dù một ổ bị hỏng vật lý, hệ thống vẫn chạy bình thường trên ổ còn lại. Bạn cần kiểm tra log và thay thế ổ hỏng, thêm vào RAID để đồng bộ lại nhằm phục hồi dự phòng.

Q3. Có thể dùng RAID 1 trên Ubuntu Desktop không?

A3. Có thể, nhưng installer của Ubuntu Desktop không hỗ trợ cấu hình RAID trực tiếp.

Để dùng RAID 1 trên Ubuntu Desktop, bạn cần:

  • Tạo RAID thủ công bằng mdadm trong môi trường Live USB, sau đó cài OS
  • Cài Ubuntu Server có RAID rồi cài thêm giao diện Desktop

Cách thứ hai thường đơn giản và ít lỗi hơn cho người mới bắt đầu.

Q4. Làm sao kiểm tra trạng thái RAID định kỳ sau khi cấu hình?

A4. Dùng cat /proc/mdstat hoặc mdadm --detail /dev/md0.

Ví dụ các lệnh kiểm tra trạng thái RAID:

cat /proc/mdstat
sudo mdadm --detail /dev/md0

Có thể thiết lập thông báo email trong /etc/mdadm/mdadm.conf để nhận cảnh báo sự cố.

Q5. Khi thay ổ đĩa trong RAID 1, có cần cài lại GRUB không?

A5. Có, nên cài lại GRUB lên ổ mới thay thế.

Với RAID 1, cần cài GRUB lên cả hai ổ để đảm bảo hệ thống có thể khởi động nếu một ổ bị lỗi. Nếu chỉ cài trên một ổ, khi ổ đó hỏng thì hệ thống sẽ không boot được.

sudo grub-install /dev/sdX
sudo update-grub

(/dev/sdX là ổ mới được thay thế)

Q6. Dùng mdadm hay RAID phần cứng an toàn hơn?

A6. Tùy môi trường, nhưng với server nhỏ và cá nhân thì mdadm dễ quản lý và an toàn hơn.

RAID phần cứng có hiệu suất cao, độ tin cậy lớn nhưng khi card RAID hỏng việc phục hồi rất khó và đòi hỏi cùng model. mdadm thì dễ xử lý, nhiều thông tin hỗ trợ cộng đồng.

Q7. Có thể dừng hoặc khởi động lại array RAID không?

A7. Có, nhưng cần thực hiện cẩn thận.

Lệnh dừng array:

sudo mdadm --stop /dev/md0

Khởi động (assemble) lại array:

sudo mdadm --assemble --scan

Lưu ý: cần cấu hình mdadm.confinitramfs chính xác để hệ thống tự động nhận diện RAID khi khởi động.

8. Tổng kết

Mục tiêu chính của RAID 1 là “đảm bảo dự phòng dữ liệu”

Điểm mạnh lớn nhất của RAID 1 là sao lưu dữ liệu theo thời gian thực, tiếp tục hoạt động dù một ổ đĩa bị hỏng. Điều này giúp giảm rủi ro dừng dịch vụ do lỗi phần cứng bất ngờ. Tuy nhiên, RAID không thay thế được giải pháp backup; bạn vẫn cần backup để phòng trường hợp xóa nhầm, virus, v.v.

Các lựa chọn RAID trên Ubuntu

Tuỳ nhu cầu, bạn có thể chọn:

Phương ánĐặc điểmKhuyến nghị sử dụng
mdadm (RAID phần mềm)Linh hoạt, chi phí thấp, tài liệu phong phúNgười dùng cá nhân, server nhỏ
RAID phần cứngHiệu suất cao, giảm tải CPU, chi phí caoDoanh nghiệp, môi trường lưu trữ lớn
Fake RAID (BIOS RAID)Tính năng lai, ít tương thích trên UbuntuKhông khuyến nghị

Đặc biệt, xây dựng RAID với mdadm là lựa chọn thực tiễn và hiệu quả nhất cho người dùng Ubuntu.

Vận hành và bảo trì quyết định độ tin cậy lâu dài

Xây dựng RAID chỉ là bước khởi đầu. Kiểm tra định kỳ trạng thái, xử lý nhanh sự cố, cấu hình GRUB và fstab chính xác sẽ giúp hệ thống ổn định dài lâu. Một số điểm lưu ý:

  • Kiểm tra định kỳ bằng cat /proc/mdstat hoặc mdadm --detail
  • Nắm chắc các bước tái cấu trúc array khi sự cố xảy ra
  • Cài GRUB lên cả hai ổ đĩa để tăng khả năng khởi động dự phòng
  • Kết hợp backup định kỳ ngoài RAID

Kết luận

Dù RAID nghe có vẻ phức tạp, nhưng với Ubuntu và mdadm bạn hoàn toàn có thể thiết lập đơn giản bằng dòng lệnh. Hãy tham khảo bài viết này để tự tin xây dựng hệ thống RAID 1 mạnh mẽ, chống chịu sự cố cho máy chủ hoặc dự án cá nhân.

Chúc bạn thành công với hệ thống Linux ổn định, an toàn và hiệu quả!