Cách tạo RAID bằng MDADM trên Ubuntu

Tác giả Network Engineer, T.M.Hai 28, 2021, 09:44:41 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 3 Khách đang xem chủ đề.

Cách tạo RAID bằng MDADM trên Ubuntu


RAID là một nền tảng ảo hóa để lưu trữ dữ liệu tích hợp một số ổ đĩa vật lý thành một hoặc nhiều đơn vị logic. Dựa trên mức độ tin cậy và hiệu quả cần thiết, dữ liệu được phân tán trên các ổ đĩa theo một trong nhiều cách, được gọi là mức RAID. Các hệ thống khác nhau được gọi là 'RAID' theo sau là một số nguyên, chẳng hạn như RAID 0 hoặc RAID 1. Mỗi hệ thống hoặc cấp độ RAID, cung cấp sự cân bằng khác nhau giữa các mục tiêu chính, tức là độ ổn định, khả năng sử dụng, hiệu suất và sức mạnh.

RAID sử dụng các phương pháp nhân bản đĩa hoặc phân tách đĩa, nhân bản trên nhiều ổ đĩa sẽ sao chép dữ liệu tương tự. Phân tách phân vùng cho phép phân phối dữ liệu trên nhiều ổ đĩa. Dung lượng lưu trữ của mỗi ổ được chia thành các đơn vị từ một sector (512 byte) đến nhiều megabyte. Các mức RAID cao hơn RAID 0 cung cấp khả năng bảo vệ chống lại các lỗi đọc không thể sửa chữa, cũng như chống lại toàn bộ lỗi ổ đĩa vật lý.

Các thiết bị RAID được triển khai thông qua trình điều khiển ứng dụng md. Mảng RAID của phần mềm Linux hiện hỗ trợ RAID 0 (phân tách), RAID 1 (nhân bản), RAID 4, RAID 5, RAID 6 và RAID 10. Mdadm là một tiện ích Linux được sử dụng để điều khiển và quản lý thiết bị RAID cho các ứng dụng. Một số chế độ hoạt động cốt lõi của mdadm được lắp ráp, xây dựng, tạo, theo dõi, giám sát, phát triển, gia tăng và tự động phát hiện. Tên bắt nguồn từ các nút của nhiều thiết bị (md) mà nó kiểm soát hoặc quản lý. Hãy xem cách tạo các loại mảng Raid khác nhau bằng mdadm.

1. Tạo mảng RAID 0

RAID 0 là cơ chế mà dữ liệu được phân tách thành các khối và các khối đó được phân tán qua các thiết bị lưu trữ khác nhau như ổ cứng. Có nghĩa là mỗi đĩa chứa một phần dữ liệu và trong khi truy cập dữ liệu đó, một số đĩa sẽ được tham chiếu. Trong RAID 0, vì các khối được phân tách, hiệu suất của nó là tuyệt vời, nhưng do không có chiến lược nhân bản, một lỗi duy nhất của thiết bị sẽ phá hủy tất cả dữ liệu.

Để bắt đầu, trước tiên bạn phải xác định các thiết bị thành phần bằng cách sử dụng lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ lsblk -o NAME, SIZE, TYPE

Chúng ta có hai đĩa không có hệ thống tập tin, mỗi đĩa có kích thước 100G, như chúng ta có thể thấy từ ảnh chụp màn hình. Trong trường hợp này, các số nhận dạng /dev/ch1 và /dev/ch2 đã được cấp cho các thiết bị này trong bài viết này. Đây là những thành phần thô mà chúng ta sẽ sử dụng để tạo RAID.

Để sử dụng các thành phần này để tạo mảng RAID 0, hãy chỉ định chúng với tùy chọn –create. Bạn sẽ cần xác định tên hệ thống mà bạn muốn xây dựng (trong trường hợp của chúng ta là /dev/mch0), cấp độ RAID, tức là 0 và số lượng thiết bị:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo mdadm --create --verbose /dev/mch0 --level=0 --raid-devices=2 /dev/ch1 /dev/ch2
Bằng cách kiểm tra nhật ký /proc/mdstat, chúng ta có thể đảm bảo rằng RAID đã được tạo thành công.

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ cat /proc/mdstat

Hệ thống /dev/mch0 đã được tạo với các thiết bị /dev/ch2 và /dev/ch1 trong thiết lập RAID 0. Bây giờ chúng ta sẽ định dạng và gắn kết hệ thống tập tin trên mảng đó bằng cách sử dụng lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo mkfs.ext4 -F /dev/mch0
Bây giờ, tạo một điểm gắn kết và gắn kết hệ thống tập tin bằng các lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo mkdir -p /mnt/mch0
Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo mount /dev/mch0 /mnt/mch0
Chúng ta sẽ kiểm tra xem còn chỗ trống mới hay không:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ df -h -x devtmpfs -x tmpfs

Bây giờ chúng ta phải thay đổi tập tin /etc/mdadm/mdadm.conf để đảm bảo danh sách được tự động tập hợp lại khi hệ thống khởi động. Bạn sẽ tự động tìm kiếm mảng hiện tại, kết nối tập tin và cập nhật hệ thống tập tin RAM ban đầu bằng chuỗi lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo update-initramfs -u
Để tự động gắn kết khi hệ thống khởi động, hãy thêm các tùy chọn gắn kết hệ thống tập tin mới trong tập tin /etc/fstab có sẵn:


Mỗi lần khởi động giờ đây có thể tự động thêm mảng RAID 0 của bạn và gắn kết nó.

2. Tạo mảng RAID 5

Mảng RAID 5 được tạo ra bằng cách tách dữ liệu cùng với các thiết bị khác nhau. Một khối chẵn lẻ được đo là một phần của mỗi phân tách. Khối chẵn lẻ và các khối còn lại sẽ được sử dụng để xác định dữ liệu còn thiếu trong trường hợp thiết bị bị lỗi. Hệ thống thu được khối chẵn lẻ được xoay sao cho có tổng thông tin chẵn lẻ cân bằng cho mỗi thiết bị. Trong khi thông tin về tính chẵn lẻ được chia sẻ, giá trị lưu trữ của một đĩa có thể được sử dụng cho tính chẵn lẻ. Khi ở trạng thái hư hỏng, RAID 5 sẽ cho kết quả rất kém.

Để tạo mảng RAID 5, trước tiên chúng ta phải xác định các thiết bị thành phần như chúng ta đã xác định trong RAID 0. Nhưng trong RAID 5, chúng ta nên có ít nhất 3 thiết bị lưu trữ. Tìm số nhận dạng cho các thiết bị này bằng cách sử dụng lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ lsblk -o NAME, SIZE, TYPE

Sử dụng tùy chọn –create để tạo mảng RAID 5 nhưng sử dụng giá trị 5 cho "level" trong trường hợp này.

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
Việc này có thể mất một thời gian nhất định để hoàn thành, ngay cả trong thời gian này, mảng có thể được sử dụng. Bằng cách kiểm tra nhật ký /proc/mdstat, bạn có thể theo dõi tiến trình tạo RAID qua lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ cat /proc/mdstat

Bây giờ, hãy tạo và gắn kết hệ thống tập tin trên mảng bằng cách thực hiện chuỗi lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo mkfs.ext4 -F /dev/md0
Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo mkdir -p /mnt/md0
Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo mount /dev/md0 /mnt/md0
Sau khi gắn kết này, bạn có thể xác nhận xem nó có thể truy cập được hay không.

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ df -h -x devtmpfs -x tmpfs
Để tự động lắp ráp và gắn các mảng RAID 5 ở mỗi lần hệ thống khởi động, bạn phải điều chỉnh initramfs và thêm hệ thống tập tin được tạo gần đây vào tập tin /etc/fstab bằng cách thực hiện các lệnh sau:


RAID mang lại hiệu quả và sự ổn định bằng cách kết hợp nhiều ổ cứng với nhau. Bằng cách đó, nó cung cấp cho hệ thống một ổ cứng dung lượng lớn với tốc độ tốt hơn nhiều so với các ổ đĩa phân vùng thông thường. Mặt khác, nó tạo điều kiện cho việc dự phòng và khả năng chịu lỗi, và trong trường hợp một ổ đĩa bị lỗi, tất cả dữ liệu sẽ không bị mất.