Thứ ba, 16/08/2016 | 00:00 GMT+7

Cách tạo Mảng RAID với mdadm trên Ubuntu 16.04

Tiện ích mdadm được dùng để tạo và quản lý các mảng lưu trữ bằng khả năng RAID phần mềm của Linux. Administrator có khả năng linh hoạt cao trong việc điều phối các thiết bị lưu trữ cá nhân của họ và tạo ra các thiết bị lưu trữ hợp lý có hiệu suất cao hơn hoặc các đặc điểm dự phòng.

Trong hướng dẫn này, ta sẽ giới thiệu cho các bạn một số cấu hình RAID khác nhau có thể được cài đặt bằng server Ubuntu 16.04.

Yêu cầu

Để hoàn thành các bước trong hướng dẫn này, bạn phải:

  • User không phải root có quyền sudo trên server Ubuntu 16.04 : Các bước trong hướng dẫn này sẽ được hoàn thành với user sudo . Để tìm hiểu cách cài đặt account với các quyền này, hãy làm theo hướng dẫn cài đặt server ban đầu Ubuntu 16.04 của ta .
  • Hiểu biết cơ bản về các khái niệm và thuật ngữ RAID : Mặc dù hướng dẫn này sẽ đề cập đến một số thuật ngữ RAID khi lướt qua, nhưng hiểu biết đầy đủ hơn là rất hữu ích. Để tìm hiểu thêm về RAID và hiểu rõ hơn về cấp độ RAID phù hợp với bạn, hãy đọc bài giới thiệu về RAID của ta .
  • Nhiều thiết bị lưu trữ thô có sẵn trên server của bạn : Ta sẽ trình bày cách cấu hình các loại mảng khác nhau trên server . Như vậy, bạn cần một số ổ đĩa để cấu hình. Nếu bạn đang sử dụng DigitalOcean, bạn có thể sử dụng dung lượng Lưu trữ khối để thực hiện role này. Tùy thuộc vào loại mảng, bạn cần tối thiểu từ hai đến bốn thiết bị lưu trữ .

Đặt lại thiết bị RAID hiện có

Trong suốt hướng dẫn này, ta sẽ giới thiệu các bước để tạo một số cấp độ RAID khác nhau. Nếu bạn muốn làm theo, bạn có thể sẽ muốn sử dụng lại các thiết bị lưu trữ của bạn sau mỗi phần. Có thể tham khảo phần này để tìm hiểu cách nhanh chóng đặt lại các thiết bị lưu trữ thành phần của bạn trước khi thử nghiệm cấp RAID mới. Bỏ qua phần này ngay bây giờ nếu bạn chưa cài đặt bất kỳ mảng nào.

Cảnh báo
Quá trình này sẽ phá hủy hoàn toàn mảng và bất kỳ dữ liệu nào được ghi vào đó. Đảm bảo rằng bạn đang thao tác trên đúng mảng và bạn đã sao chép bất kỳ dữ liệu nào bạn cần giữ lại trước khi hủy mảng.

Tìm mảng hoạt động trong file /proc/mdstat bằng lệnh :

  • cat /proc/mdstat
Output
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdc[1] sdd[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

Ngắt kết nối mảng khỏi hệ thống file :

  • sudo umount /dev/md0

Sau đó, dừng và xóa mảng bằng lệnh :

  • sudo mdadm --stop /dev/md0
  • sudo mdadm --remove /dev/md0

Tìm các thiết bị đã được sử dụng để tạo mảng bằng lệnh sau:

Ghi chú
Lưu ý tên /dev/sd* có thể thay đổi bất kỳ lúc nào bạn khởi động lại! Kiểm tra chúng mỗi lần đảm bảo rằng bạn đang vận hành trên đúng thiết bị.

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G linux_raid_member disk sdd 100G linux_raid_member disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

Sau khi phát hiện ra các thiết bị được sử dụng để tạo một mảng, hãy xóa siêu khối của chúng để đặt lại chúng về bình thường:

  • sudo mdadm --zero-superblock /dev/sdc
  • sudo mdadm --zero-superblock /dev/sdd

Bạn nên loại bỏ bất kỳ tham chiếu liên tục nào đến mảng. Chỉnh sửa file /etc/fstab và comment hoặc xóa tham chiếu đến mảng của bạn:

  • sudo nano /etc/fstab
/ etc / fstab
. . . # /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0 

Ngoài ra, hãy comment hoặc xóa định nghĩa mảng khỏi file /etc/mdadm/mdadm.conf :

  • sudo nano /etc/mdadm/mdadm.conf
/etc/mdadm/mdadm.conf
. . . # ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91 

Cuối cùng, cập nhật lại initramfs :

  • sudo update-initramfs -u

Đến đây, bạn đã sẵn sàng sử dụng lại các thiết bị lưu trữ riêng lẻ hoặc như các thành phần của một mảng khác.

Tạo mảng RAID 0

Mảng RAID 0 hoạt động bằng cách chia nhỏ dữ liệu thành nhiều phần và phân dải trên các đĩa có sẵn. Điều này nghĩa là mỗi đĩa chứa một phần dữ liệu và nhiều đĩa sẽ được tham chiếu khi truy xuất thông tin.

  • Yêu cầu: tối thiểu 2 thiết bị lưu trữ
  • Lợi ích chính: Hiệu suất
  • Những điều cần ghi nhớ: Đảm bảo rằng bạn có các bản backup chức năng. Một lỗi thiết bị duy nhất sẽ phá hủy tất cả dữ liệu trong mảng.

Xác định các thiết bị thành phần

Để bắt đầu, hãy tìm số nhận dạng cho các đĩa thô mà bạn sẽ sử dụng:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

Như bạn thấy ở trên, ta có hai đĩa không có hệ thống file , mỗi đĩa có kích thước 100G. Trong ví dụ này, các thiết bị này đã được cấp số nhận dạng /dev/sda/dev/sdb cho phiên này. Đây sẽ là các thành phần thô mà ta sẽ sử dụng để xây dựng mảng.

Tạo mảng

Để tạo một mảng RAID 0 với các thành phần này, hãy chuyển chúng vào lệnh mdadm --create . Bạn sẽ phải chỉ định tên thiết bị bạn muốn tạo ( /dev/md0 trong trường hợp của ta ), cấp độ RAID và số lượng thiết bị:

  • sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb

Bạn có thể đảm bảo RAID đã được tạo thành công bằng cách kiểm tra file /proc/mdstat :

  • cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdb[1] sda[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

Như bạn thấy trong dòng được đánh dấu, thiết bị /dev/md0 đã được tạo trong cấu hình RAID 0 bằng thiết bị /dev/sda/dev/sdb .

Tạo và mount hệ thống file

Tiếp theo, tạo một hệ thống file trên mảng:

  • sudo mkfs.ext4 -F /dev/md0

Tạo một điểm mount để đính kèm hệ thống file mới:

  • sudo mkdir -p /mnt/md0

Bạn có thể mount hệ thống file bằng lệnh :

  • sudo mount /dev/md0 /mnt/md0

Kiểm tra xem không gian mới có sẵn không bằng lệnh :

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 197G 60M 187G 1% /mnt/md0

Hệ thống file mới được mount và có thể truy cập được.

Lưu bố cục mảng

Để đảm bảo mảng được tự động ráp lại khi khởi động, ta sẽ phải điều chỉnh file /etc/mdadm/mdadm.conf . Bạn có thể tự động quét mảng hiện hoạt và nối file bằng lệnh :

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

Sau đó, bạn có thể cập nhật initramfs hoặc hệ thống file RAM ban đầu để mảng này sẽ khả dụng trong quá trình khởi động sớm:

  • sudo update-initramfs -u

Thêm các tùy chọn mount hệ thống file mới vào file /etc/fstab để tự động gắn khi khởi động:

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

Mảng RAID 0 của bạn bây giờ sẽ tự động được lắp ráp và mount mỗi lần khởi động.

Tạo Mảng RAID 1

Kiểu mảng RAID 1 được thực hiện bằng cách sao chép dữ liệu trên tất cả các đĩa có sẵn. Mỗi đĩa trong mảng RAID 1 nhận được một bản sao đầy đủ của dữ liệu, cung cấp khả năng dự phòng trong trường hợp thiết bị bị lỗi.

  • Yêu cầu: tối thiểu 2 thiết bị lưu trữ
  • Lợi ích chính: Dự phòng
  • Những điều cần lưu ý: Vì hai bản sao của dữ liệu được duy trì nên chỉ một nửa dung lượng ổ đĩa sẽ có thể sử dụng được

Xác định các thiết bị thành phần

Để bắt đầu, hãy tìm số nhận dạng cho các đĩa thô mà bạn sẽ sử dụng:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

Như bạn thấy ở trên, ta có hai đĩa không có hệ thống file , mỗi đĩa có kích thước 100G. Trong ví dụ này, các thiết bị này đã được cấp số nhận dạng /dev/sda/dev/sdb cho phiên này. Đây sẽ là các thành phần thô mà ta sẽ sử dụng để xây dựng mảng.

Tạo mảng

Để tạo mảng RAID 1 với các thành phần này, hãy chuyển chúng vào lệnh mdadm --create . Bạn sẽ phải chỉ định tên thiết bị bạn muốn tạo ( /dev/md0 trong trường hợp của ta ), cấp độ RAID và số lượng thiết bị:

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

Nếu các thiết bị thành phần bạn đang sử dụng không phải là phân vùng có cờ boot được bật, bạn có thể sẽ nhận được cảnh báo sau. Có thể an toàn khi nhập y để tiếp tục:

Output
mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: size set to 104792064K Continue creating array? y

Công cụ mdadm sẽ bắt đầu nhân bản các ổ đĩa. Quá trình này có thể mất một chút thời gian để hoàn thành nhưng bạn có thể sử dụng mảng trong thời gian này. Bạn có thể theo dõi tiến trình phản chiếu bằng cách kiểm tra file /proc/mdstat :

  • cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb[1] sda[0] 104792064 blocks super 1.2 [2/2] [UU] [====>................] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec unused devices: <none>

Như bạn thấy trong dòng đánh dấu đầu tiên, thiết bị /dev/md0 đã được tạo trong cấu hình RAID 1 bằng cách sử dụng thiết bị /dev/sda/dev/sdb . Dòng thứ hai được đánh dấu hiển thị tiến trình phản chiếu. Bạn có thể tiếp tục hướng dẫn trong khi quá trình này hoàn tất.

Tạo và mount hệ thống file

Tiếp theo, tạo một hệ thống file trên mảng:

  • sudo mkfs.ext4 -F /dev/md0

Tạo một điểm mount để đính kèm hệ thống file mới:

  • sudo mkdir -p /mnt/md0

Bạn có thể mount hệ thống file bằng lệnh :

  • sudo mount /dev/md0 /mnt/md0

Kiểm tra xem không gian mới có sẵn không bằng lệnh :

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 99G 60M 94G 1% /mnt/md0

Hệ thống file mới được mount và có thể truy cập được.

Lưu bố cục mảng

Để đảm bảo mảng được tự động ráp lại khi khởi động, ta sẽ phải điều chỉnh file /etc/mdadm/mdadm.conf . Bạn có thể tự động quét mảng hiện hoạt và nối file bằng lệnh :

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

Sau đó, bạn có thể cập nhật initramfs hoặc hệ thống file RAM ban đầu để mảng này sẽ khả dụng trong quá trình khởi động sớm:

  • sudo update-initramfs -u

Thêm các tùy chọn mount hệ thống file mới vào file /etc/fstab để tự động gắn khi khởi động:

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

Mảng RAID 1 của bạn bây giờ sẽ tự động được lắp ráp và mount mỗi lần khởi động.

Tạo mảng RAID 5

Kiểu mảng RAID 5 được thực hiện bằng cách tách dữ liệu trên các thiết bị có sẵn. Một thành phần của mỗi sọc là một khối chẵn lẻ được tính toán. Nếu một thiết bị bị lỗi, khối chẵn lẻ và các khối còn lại được dùng để tính toán dữ liệu bị thiếu. Thiết bị nhận khối chẵn lẻ được quay để mỗi thiết bị có lượng thông tin chẵn lẻ cân bằng.

  • Yêu cầu: tối thiểu 3 thiết bị lưu trữ
  • Lợi ích chính: Dự phòng với khả năng sử dụng nhiều hơn.
  • Những điều cần lưu ý: Trong khi thông tin chẵn lẻ được phân phối, dung lượng giá trị của một đĩa sẽ được sử dụng cho tính chẵn lẻ. RAID 5 có thể có hiệu suất rất kém khi ở trạng thái xuống cấp.

Xác định các thiết bị thành phần

Để bắt đầu, hãy tìm số nhận dạng cho các đĩa thô mà bạn sẽ sử dụng:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

Như bạn thấy ở trên, ta có ba đĩa không có hệ thống file , mỗi đĩa có kích thước 100G. Trong ví dụ này, các thiết bị này đã được cung cấp các định danh /dev/sda , /dev/sdb/dev/sdc cho phiên này. Đây sẽ là các thành phần thô mà ta sẽ sử dụng để xây dựng mảng.

Tạo mảng

Để tạo mảng RAID 5 với các thành phần này, hãy chuyển chúng vào lệnh mdadm --create . Bạn sẽ phải chỉ định tên thiết bị bạn muốn tạo ( /dev/md0 trong trường hợp của ta ), cấp độ RAID và số lượng thiết bị:

  • sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

Công cụ mdadm sẽ bắt đầu cấu hình mảng (nó thực sự sử dụng quá trình khôi phục để xây dựng mảng vì lý do hiệu suất). Quá trình này có thể mất một chút thời gian để hoàn thành nhưng bạn có thể sử dụng mảng trong thời gian này. Bạn có thể theo dõi tiến trình phản chiếu bằng cách kiểm tra file /proc/mdstat :

  • cat /proc/mdstat
Output
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [===>.................] recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/sec unused devices: <none>

Như bạn thấy trong dòng đánh dấu đầu tiên, thiết bị /dev/md0 đã được tạo trong cấu hình RAID 5 bằng cách sử dụng các thiết bị /dev/sda , /dev/sdb/dev/sdc . Dòng thứ hai được đánh dấu hiển thị tiến trình xây dựng. Bạn có thể tiếp tục hướng dẫn trong khi quá trình này hoàn tất.

Tạo và mount hệ thống file

Tiếp theo, tạo một hệ thống file trên mảng:

  • sudo mkfs.ext4 -F /dev/md0

Tạo một điểm mount để đính kèm hệ thống file mới:

  • sudo mkdir -p /mnt/md0

Bạn có thể mount hệ thống file bằng lệnh :

  • sudo mount /dev/md0 /mnt/md0

Kiểm tra xem không gian mới có sẵn không bằng lệnh :

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 197G 60M 187G 1% /mnt/md0

Hệ thống file mới được mount và có thể truy cập được.

Lưu bố cục mảng

Để đảm bảo mảng được tự động ráp lại khi khởi động, ta sẽ phải điều chỉnh file /etc/mdadm/mdadm.conf .

Trước khi bạn điều chỉnh cấu hình, hãy kiểm tra lại đảm bảo rằng mảng đã hoàn tất quá trình lắp ráp. Do cách mdadm xây dựng mảng RAID 5, nếu mảng vẫn đang xây dựng, số lượng phụ tùng trong mảng sẽ được báo cáo không chính xác:

  • cat /proc/mdstat
Output
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>

Kết quả ở trên cho thấy rằng việc xây dựng lại đã hoàn tất. Bây giờ, ta có thể tự động quét mảng đang hoạt động và nối file bằng lệnh :

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

Sau đó, bạn có thể cập nhật initramfs hoặc hệ thống file RAM ban đầu để mảng này sẽ khả dụng trong quá trình khởi động sớm:

  • sudo update-initramfs -u

Thêm các tùy chọn mount hệ thống file mới vào file /etc/fstab để tự động gắn khi khởi động:

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

Mảng RAID 5 của bạn bây giờ sẽ tự động được lắp ráp và mount mỗi lần khởi động.

Tạo Mảng RAID 6

Kiểu mảng RAID 6 được thực hiện bằng cách tách dữ liệu trên các thiết bị có sẵn. Hai thành phần của mỗi sọc là các khối chẵn lẻ được tính toán. Nếu một hoặc hai thiết bị bị lỗi, các khối chẵn lẻ và các khối còn lại được dùng để tính toán dữ liệu bị thiếu. Các thiết bị nhận khối chẵn lẻ được xoay để mỗi thiết bị có lượng thông tin chẵn lẻ cân bằng. Điều này tương tự với mảng RAID 5, nhưng cho phép hai ổ đĩa bị lỗi.

  • Yêu cầu: tối thiểu 4 thiết bị lưu trữ
  • Lợi ích chính: Dự phòng gấp đôi với khả năng sử dụng nhiều hơn.
  • Những điều cần lưu ý: Trong khi thông tin chẵn lẻ được phân phối, dung lượng giá trị của hai đĩa sẽ được sử dụng cho tính chẵn lẻ. RAID 6 có thể có hiệu suất rất kém khi ở trạng thái xuống cấp.

Xác định các thiết bị thành phần

Để bắt đầu, hãy tìm số nhận dạng cho các đĩa thô mà bạn sẽ sử dụng:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

Như bạn thấy ở trên, ta có bốn đĩa không có hệ thống file , mỗi đĩa có kích thước 100G. Trong ví dụ này, các thiết bị này đã được cung cấp các định danh /dev/sda , /dev/sdb , /dev/sdc/dev/sdd cho phiên này. Đây sẽ là các thành phần thô mà ta sẽ sử dụng để xây dựng mảng.

Tạo mảng

Để tạo mảng RAID 6 với các thành phần này, hãy chuyển chúng vào lệnh mdadm --create . Bạn sẽ phải chỉ định tên thiết bị bạn muốn tạo ( /dev/md0 trong trường hợp của ta ), cấp độ RAID và số lượng thiết bị:

  • sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Công cụ mdadm sẽ bắt đầu cấu hình mảng (nó thực sự sử dụng quá trình khôi phục để xây dựng mảng vì lý do hiệu suất). Quá trình này có thể mất một chút thời gian để hoàn thành nhưng bạn có thể sử dụng mảng trong thời gian này. Bạn có thể theo dõi tiến trình phản chiếu bằng cách kiểm tra file /proc/mdstat :

  • cat /proc/mdstat
Output
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU] [>....................] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec unused devices: <none>

Như bạn thấy trong dòng đánh dấu đầu tiên, thiết bị /dev/md0 đã được tạo trong cấu hình RAID 6 bằng cách sử dụng thiết bị /dev/sda , /dev/sdb , /dev/sdc/dev/sdd . Dòng thứ hai được đánh dấu hiển thị tiến trình xây dựng. Bạn có thể tiếp tục hướng dẫn trong khi quá trình này hoàn tất.

Tạo và mount hệ thống file

Tiếp theo, tạo một hệ thống file trên mảng:

  • sudo mkfs.ext4 -F /dev/md0

Tạo một điểm mount để đính kèm hệ thống file mới:

  • sudo mkdir -p /mnt/md0

Bạn có thể mount hệ thống file bằng lệnh :

  • sudo mount /dev/md0 /mnt/md0

Kiểm tra xem không gian mới có sẵn không bằng lệnh :

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 197G 60M 187G 1% /mnt/md0

Hệ thống file mới được mount và có thể truy cập được.

Lưu bố cục mảng

Để đảm bảo mảng được tự động ráp lại khi khởi động, ta sẽ phải điều chỉnh file /etc/mdadm/mdadm.conf . Ta có thể tự động quét mảng đang hoạt động và nối file bằng lệnh :

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

Sau đó, bạn có thể cập nhật initramfs hoặc hệ thống file RAM ban đầu để mảng này sẽ khả dụng trong quá trình khởi động sớm:

  • sudo update-initramfs -u

Thêm các tùy chọn mount hệ thống file mới vào file /etc/fstab để tự động gắn khi khởi động:

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

Mảng RAID 6 của bạn bây giờ sẽ tự động được lắp ráp và mount mỗi lần khởi động.

Tạo một mảng RAID 10 phức tạp

Kiểu mảng RAID 10 theo truyền thống được thực hiện bằng cách tạo một mảng RAID 0 sọc bao gồm các bộ mảng RAID 1. Kiểu mảng lồng nhau này mang lại cả khả năng dự phòng và hiệu suất cao, với chi phí là dung lượng đĩa lớn. Tiện ích mdadm có loại RAID 10 riêng cung cấp cùng loại lợi ích với tính linh hoạt cao hơn. Nó không được tạo ra bởi các mảng lồng nhau, nhưng có nhiều đặc điểm và đảm bảo giống nhau. Ta sẽ sử dụng mdadm RAID 10 tại đây.

  • Yêu cầu: tối thiểu 3 thiết bị lưu trữ
  • Lợi ích chính: Hiệu suất và dự phòng
  • Những điều cần lưu ý: Mức độ giảm dung lượng cho mảng được xác định bởi số lượng bản sao dữ liệu bạn chọn giữ lại. Số lượng bản sao được lưu với RAID 10 kiểu mdadm có thể cấu hình .

Theo mặc định, hai bản sao của mỗi khối dữ liệu sẽ được lưu trữ trong cái được gọi là bố cục “gần”. Các bố cục có thể quy định cách mỗi khối dữ liệu được lưu trữ là:

  • gần : Sự sắp xếp mặc định. Các bản sao của mỗi đoạn được ghi liên tiếp khi phân dải, nghĩa là các bản sao của khối dữ liệu sẽ được ghi xung quanh cùng một phần của nhiều đĩa.
  • xa : Các bản sao đầu tiên và tiếp theo được ghi vào các phần khác nhau của thiết bị lưu trữ trong mảng. Ví dụ, đoạn đầu tiên có thể được ghi ở gần đầu đĩa, trong khi đoạn thứ hai sẽ được ghi ở một nửa trên một đĩa khác. Điều này có thể mang lại một số lợi ích về hiệu suất đọc cho các đĩa quay truyền thống với hiệu suất ghi.
  • offset : Mỗi sọc được sao chép, bù đắp bởi một ổ đĩa. Điều này nghĩa là các bản sao được bù trừ với nhau, nhưng vẫn gần nhau trên đĩa. Điều này giúp giảm thiểu tìm kiếm quá mức trong một số dung lượng công việc.

Bạn có thể tìm hiểu thêm về các bố cục này bằng cách xem phần “RAID10” của trang man này:

  • man 4 md

Bạn cũng có thể tìm thấy trang man này trực tuyến tại đây .

Xác định các thiết bị thành phần

Để bắt đầu, hãy tìm số nhận dạng cho các đĩa thô mà bạn sẽ sử dụng:

  • lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 20G disk ├─vda1 20G ext4 part / └─vda15 1M part

Như bạn thấy ở trên, ta có bốn đĩa không có hệ thống file , mỗi đĩa có kích thước 100G. Trong ví dụ này, các thiết bị này đã được cung cấp các định danh /dev/sda , /dev/sdb , /dev/sdc/dev/sdd cho phiên này. Đây sẽ là các thành phần thô mà ta sẽ sử dụng để xây dựng mảng.

Tạo mảng

Để tạo mảng RAID 10 với các thành phần này, hãy chuyển chúng vào lệnh mdadm --create . Bạn sẽ phải chỉ định tên thiết bị bạn muốn tạo ( /dev/md0 trong trường hợp của ta ), cấp độ RAID và số lượng thiết bị.

Bạn có thể cài đặt hai bản sao bằng cách sử dụng bố cục gần bằng cách không chỉ định bố cục và số bản sao:

  • sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Nếu bạn muốn sử dụng một bố cục khác hoặc thay đổi số lượng bản sao, bạn sẽ phải sử dụng tùy chọn --layout= , tùy chọn này sẽ nhận dạng bố cục và bản sao. Các bố cục là n cho gần, f cho xa và o cho bù. Số lượng bản sao để lưu trữ sẽ được thêm vào sau đó.

Ví dụ: để tạo một mảng có 3 bản sao trong bố cục bù đắp, lệnh sẽ giống như sau:

  • sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Công cụ mdadm sẽ bắt đầu cấu hình mảng (nó thực sự sử dụng quá trình khôi phục để xây dựng mảng vì lý do hiệu suất). Quá trình này có thể mất một chút thời gian để hoàn thành nhưng bạn có thể sử dụng mảng trong thời gian này. Bạn có thể theo dõi tiến trình phản chiếu bằng cách kiểm tra file /proc/mdstat :

  • cat /proc/mdstat
Output
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] [===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec unused devices: <none>

Như bạn thấy trong dòng đánh dấu đầu tiên, thiết bị /dev/md0 đã được tạo trong cấu hình RAID 10 bằng cách sử dụng thiết bị /dev/sda , /dev/sdb , /dev/sdc/dev/sdd . Khu vực được đánh dấu thứ hai hiển thị bố cục được sử dụng cho ví dụ này (2 bản sao trong cấu hình gần). Khu vực được đánh dấu thứ ba hiển thị tiến trình xây dựng. Bạn có thể tiếp tục hướng dẫn trong khi quá trình này hoàn tất.

Tạo và mount hệ thống file

Tiếp theo, tạo một hệ thống file trên mảng:

  • sudo mkfs.ext4 -F /dev/md0

Tạo một điểm mount để đính kèm hệ thống file mới:

  • sudo mkdir -p /mnt/md0

Bạn có thể mount hệ thống file bằng lệnh :

  • sudo mount /dev/md0 /mnt/md0

Kiểm tra xem không gian mới có sẵn không bằng lệnh :

  • df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/md0 197G 60M 187G 1% /mnt/md0

Hệ thống file mới được mount và có thể truy cập được.

Lưu bố cục mảng

Để đảm bảo mảng được tự động ráp lại khi khởi động, ta sẽ phải điều chỉnh file /etc/mdadm/mdadm.conf . Ta có thể tự động quét mảng đang hoạt động và nối file bằng lệnh :

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

Sau đó, bạn có thể cập nhật initramfs hoặc hệ thống file RAM ban đầu để mảng này sẽ khả dụng trong quá trình khởi động sớm:

  • sudo update-initramfs -u

Thêm các tùy chọn mount hệ thống file mới vào file /etc/fstab để tự động gắn khi khởi động:

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

Mảng RAID 10 của bạn bây giờ sẽ tự động được lắp ráp và mount mỗi lần khởi động.

Kết luận

Trong hướng dẫn này, ta đã trình bày cách tạo nhiều loại mảng khác nhau bằng tiện ích RAID phần mềm mdadm của Linux. Mảng RAID cung cấp một số cải tiến hiệu suất và dự phòng hấp dẫn so với việc sử dụng nhiều đĩa riêng lẻ.

Khi bạn đã xác định được loại mảng cần thiết cho môi trường của bạn và tạo thiết bị, bạn cần học cách thực hiện quản lý hàng ngày với mdadm . Hướng dẫn của ta về cách quản lý mảng RAID bằng mdadm trên Ubuntu 16.04 có thể giúp bạn bắt đầu.


Tags:

Các tin liên quan

Cách quản lý mảng RAID với mdadm trên Ubuntu 16.04
2016-08-16
Cách thiết lập NFS Mount trên Ubuntu 16.04
2016-08-04
Cách cài đặt và sử dụng Byobu để quản lý thiết bị đầu cuối trên Ubuntu 16.04
2016-08-04
Cách cài đặt và cấu hình Ansible trên Ubuntu 16.04
2016-07-22
Cách cài đặt và cấu hình Sphinx trên Ubuntu 16.04
2016-07-22
Cách triển khai ứng dụng Node.js và MongoDB với Rancher trên Ubuntu 14.04
2016-07-18
Cách cài đặt và sử dụng BaasBox trên Ubuntu 14.04
2016-07-13
Cách thiết lập notebook Jupyter để chạy IPython trên Ubuntu 16.04
2016-06-15
Cách cài đặt Go 1.6 trên Ubuntu 16.04
2016-05-19
Cách cài đặt và sử dụng Composer trên Ubuntu 16.04
2016-05-17