RAID trên Linux, hướng dẫn tạo RAID Array bằng mdadm

Last modified by Admin on 2025/05/15 10:23

Khái niệm và các biến thể (Level)

RAID (Redundant Array of Independent Disks) ban đầu được sử dụng như một giải pháp bảo vệ dữ liệu bằng cách cho phép ghi dữ liệu lên nhiều đĩa cứng cùng lúc. Sau đó, RAID đã phát triển nhiều biến thể khác nhau để đảm bảo an toàn và tăng tốc độ truy xuất dữ liệu từ đĩa cứng, trong đó phổ biến là RAID 0, 1, 5, 6, 10

* Một số lưu ý đối với RAID:

- RAID nên sử dụng các đĩa cứng có dung lượng bằng nhau.

- Việc sử dụng RAID sẽ tốn nhiều đĩa cứng hơn so với không sử dụng, nhưng đổi lại dữ liệu sẽ được bảo vệ tốt hơn.

- Khi tạo RAID Array, dữ liệu các đĩa cứng sẽ bị xóa bỏ, hãy đảm bảo rằng đĩa cứng không có dữ liệu gì quan trọng trước khi tạo RAID Array

* Các biến thể:

- RAID 0: RAID 0 cho phép máy tính ghi dữ liệu lên chúng theo một phương thức đặc biệt được gọi là Striping. Ví dụ 1 khối dữ liệu khi được ghi vào sẽ được phân thành 8 đoạn dữ liệu được đánh số từ 1 đến 8, các đoạn đánh số lẻ (1,3,5,7) sẽ được ghi lên đĩa cứng đầu tiên và các đoạn đánh số chẵn (2,4,6,8) sẽ được ghi lên đĩa thứ hai.

Tuy có ưu điểm là nhanh chóng về khả năng ghi, RAID 0 lại dễ có nguy cơ mất, hỏng dữ liệu do cách ghi thông tin xé lẻ vì như vậy dữ liệu không nằm hoàn toàn ở một đĩa cứng nào và mỗi khi cần truy xuất thông tin (ví dụ một file nào đó), máy tính sẽ phải tổng hợp từ các ổ cứng. Nếu một đĩa cứng gặp trục trặc thì thông tin (file) đó coi như không thể đọc được và mất luôn.

Yêu cầu tối thiểu 2 thiết bị lưu trữ

Công nghệ RAID là gì?

- RAID 1: Đây là dạng RAID cơ bản nhất có khả năng đảm bảo an toàn dữ liệu. Dữ liệu được ghi vào 2 ổ giống hệt nhau (Mirroring). Trong trường hợp một ổ bị trục trặc, ổ còn lại sẽ tiếp tục hoạt động bình thường. Bạn có thể thay thế ổ đĩa bị hỏng mà không phải lo lắng đến vấn đề thông tin thất lạc.

Dung lượng cuối cùng của hệ thống RAID 1 bằng dung lượng của ổ đơn, ví dụ hai ổ 80GB chạy RAID 1 sẽ cho hệ thống nhìn thấy duy nhất một ổ RAID 80GB.

Yêu cầu tối thiểu 2 thiết bị lưu trữ

Công nghệ RAID là gì?

RAID 5: là hệ thống lưu trữ dự phòng cải tiến hơn so với RAID 1 và RAID 0. Với 3 hoặc 5 đĩa cứng riêng biệt, dữ liệu và bản sao lưu được chia đều lên tất cả các ổ cứng. Tuy nhiên, nguyên tắc này khá phức tạp.

Khi một thiết bị bị lỗi, hệ thống có thể sử dụng các khối dữ liệu còn lại cùng với một khối dữ liệu đặc biệt (được gọi là khối kiểm tra) để khôi phục phần dữ liệu bị mất. Việc lưu trữ khối kiểm tra này sẽ được luân phiên giữa các thiết bị, giúp phân bổ đồng đều khối lượng công việc và đảm bảo tính cân bằng trong toàn hệ thống.

Yêu cầu tối thiểu 3 thiết bị.

Công nghệ RAID là gì?

- RAID 6: RAID 6 cơ bản là giống RAID 5, nhưng cho phép có 2 thiết bị có thể gặp vấn đề mà hệ thống vẫn hoạt động được mà dữ liệu không bị mất

Yêu cầu tối thiểu 4 thiết bị lưu trữ

Dung lượng sẽ tương đương với dung lượng của (N - 2) thiết bị

File:RAID 6.svg - Wikipedia

- RAID 10: còn được gọi là RAID 1+0, là sự kết hợp giữa tốc độ của RAID 0 (phân dải dữ liệu) và khả năng dự phòng của RAID 1 (sao lưu đối xứng). Cách hoạt động của RAID 10 là trước tiên tạo các cặp ổ đĩa được sao lưu đối xứng, sau đó phân dải dữ liệu trên các cặp này. Cấu hình này mang lại hiệu suất đọc/ghi cao và có khả năng chịu lỗi tốt – miễn là không có cặp ổ đĩa đối xứng nào bị hỏng hoàn toàn. Đây là lựa chọn lý tưởng cho các hệ thống cần cả hiệu suất cao lẫn độ sẵn sàng cao.

Yêu cầu tối thiểu 4 thiết bị lưu trữ.

Tổng dung lượng bằng 50% so với dung lượng lưu trữ thực tế.

The Advantages and Disadvantages of RAID 10

Tạo RAID Array bằng mdadm

Cú pháp lệnh như sau:

sudo mdadm --create --verbose /dev/(name) --level=( x ) --raid-devices=( y ) /dev/vda /dev/vdb /dev/(z)

Trong đó:

- name là tên Array

- x là level RAID (0,1,5,6,10)

- y là số thiết bị lưu trữ dùng để tạo Array

-z là tên thiết bị lưu trữ

Sau khi tạo xong có thể kiểm tra bằng lệnh sau:

cat /proc/mdstat

Expected output:

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 vdc[1] vdb[0]
      20954112 blocks super 1.2 [2/2] [UU]
  
unused devices: <none>

Cấu hình filesystem trên Array

sudo mkfs.ext4 -F /dev/name

Mount Array 

Tạo mount point rồi mount vào đó 

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

Kiểm tra lại xem đã thành công chưa

df -h -x devtmpfs -x tmpfs

Expected output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        38G  1.2G   37G   4% /
/dev/vda16      881M   62M  758M   8% /boot
/dev/vda15      105M  6.1M   99M   6% /boot/efi
/dev/md0         20G   24K   19G   1% /mnt/md0

Lưu lại Array Layout

Để đảm bảo array được tự động tạo lại mỗi khi khởi động, cần phải chỉnh sửa trong file /etc/mdadm/mdadm.conf

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

 Update lại initramfs để array được sẵn sàng trong quá trình boot

sudo update-initramfs -u

 Cập nhật lại fstab

echo '/dev/name /mnt/name ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Reset RAID Array

Unmount Array

sudo umount /dev/name

Dừng Array và xóa

sudo mdadm --stop /dev/name

Xóa RAID metadata khỏi các thiết bị dùng để tạo RAID và reset chúng về bình thường

sudo mdadm --zero-superblock /dev/vdb
sudo mdadm --zero-superblock /dev/vdc

Cuối cùng, comment lại hoặc xóa đi các cấu hình của Array trong /etc/mdadm/mdadm.conf/etc/fstab 

Bizfly Cloud chúc bạn thành công!