No menu items!
No menu items!
More

    RAID md (Multiple Devices) trong hệ điều hành Linux

    1. Tổng quan.

    RAID md (Multiple Devices) là một công nghệ trong Linux cho phép bạn kết hợp nhiều ổ đĩa cứng vật lý thành một hệ thống lưu trữ duy nhất. RAID md cung cấp các cấp độ RAID khác nhau, bao gồm RAID 0, RAID 1, RAID 5, RAID 6 và RAID 10, mỗi cấp độ có các đặc điểm và lợi ích riêng.

    • RAID 0 (Striping): Dữ liệu được chia thành các phần nhỏ và ghi trên tất cả các ổ đĩa. Tốc độ đọc/ghi tăng lên nhưng không có sự dự phòng nên nếu một ổ đĩa hỏng, dữ liệu sẽ mất hết.
    • RAID 1 (Mirroring): Dữ liệu được ghi đồng thời trên tất cả các ổ đĩa. Nếu một ổ đĩa hỏng, dữ liệu vẫn còn trên các ổ đĩa khác.
    • RAID 5 (Striping with Parity): Dữ liệu và thông tin parity (dùng để phục hồi dữ liệu) được phân tán trên tất cả các ổ đĩa. Nếu một ổ đĩa hỏng, dữ liệu có thể được phục hồi từ các ổ đĩa còn lại.
    • RAID 6 (Striping with Double Parity): Tương tự như RAID 5 nhưng có thêm một bit parity nữa, cho phép hệ thống chịu được việc hỏng của hai ổ đĩa cùng lúc.
    • RAID 10 (Striped Mirrors): Kết hợp của RAID 0 và RAID 1, cung cấp cả tốc độ và sự dự phòng.

    2. Cài đặt.

    mdadm không phải lúc nào cũng được cài đặt sẵn trên tất cả các bản phân phối Linux. Tuy nhiên, bạn có thể cài đặt nó dễ dàng thông qua trình quản lý gói của hệ điều hành.

    Ví dụ, nếu bạn đang sử dụng Ubuntu hoặc một bản phân phối Linux khác dựa trên Debian, bạn có thể cài đặt mdadm bằng cách sử dụng lệnh sau trong terminal:

    sudo apt-get update
    sudo apt-get install mdadm

    Đối với CentOS, Fedora hoặc các bản phân phối Linux khác dựa trên Red Hat, bạn có thể sử dụng lệnh sau:

    sudo yum install mdadm

    Sau khi cài đặt, bạn có thể kiểm tra phiên bản mdadm bằng cách sử dụng lệnh sau:

    shell> mdadm --version
    mdadm - v4.1 - 2018-10-01

    3. Hướng dẫn sử dụng.

    Dưới đây là một số cách cơ bản để sử dụng mdadm để quản lý RAID:

    Tạo một mảng RAID mới:

    Để tạo một mảng RAID mới, bạn sẽ cần sử dụng lệnh mdadm --create. Ví dụ, để tạo một mảng RAID 1 với hai ổ đĩa /dev/sdb và /dev/sdc, bạn có thể sử dụng lệnh sau:

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

    Kiểm tra trạng thái của mảng RAID:

    Bạn có thể kiểm tra trạng thái của mảng RAID bằng cách sử dụng lệnh mdadm --detail. Ví dụ:

    sudo mdadm --detail /dev/md0

    Thêm ổ đĩa vào mảng RAID:

    Để thêm một ổ đĩa vào mảng RAID, bạn có thể sử dụng lệnh mdadm --add. Ví dụ, để thêm ổ đĩa /dev/sdd vào mảng /dev/md0, bạn có thể sử dụng lệnh sau:

    sudo mdadm --add /dev/md0 /dev/sdd

    Loại bỏ ổ đĩa khỏi mảng RAID:

    Để loại bỏ một ổ đĩa khỏi mảng RAID, bạn có thể sử dụng lệnh mdadm --remove. Ví dụ, để loại bỏ ổ đĩa /dev/sdd khỏi mảng /dev/md0, bạn có thể sử dụng lệnh sau:

    sudo mdadm --remove /dev/md0 /dev/sdd

    Dừng mảng RAID:

    Để dừng một mảng RAID, bạn có thể sử dụng lệnh mdadm --stop. Ví dụ:

    sudo mdadm --stop /dev/md0

    Khởi động lại mảng RAID:

    Để khởi động lại một mảng RAID, bạn có thể sử dụng lệnh mdadm --assemble. Ví dụ:

    sudo mdadm --assemble /dev/md0

    Lưu ý rằng bạn cần thay thế /dev/md0/dev/sdb/dev/sdc và /dev/sdd với các tên thiết bị phù hợp trong hệ thống của bạn.

    4. Ví dụ thực hành.

    Mình sử dụng lệnh lsblk kiểm tra danh sách ổ đĩa và mình có danh sách các ổ đĩa và phân vùng như dưới. Mình sử dụng 3 ổ đĩa nvme0n2, nvme0n3 và nvme0n4 và tạo Raid5 cho nó.

    shell> lsblk
    NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    loop0                       7:0    0 91.9M  1 loop /snap/lxd/24065
    loop1                       7:1    0   34M  1 loop /snap/snapd/21185
    loop2                       7:2    0 57.9M  1 loop /snap/core20/1614
    loop3                       7:3    0   61M  1 loop /snap/lxd/22761
    sr0                        11:0    1 1024M  0 rom
    nvme0n1                   259:0    0   50G  0 disk
    ├─nvme0n1p1               259:1    0  1.1G  0 part /boot/efi
    ├─nvme0n1p2               259:2    0    2G  0 part /boot
    └─nvme0n1p3               259:3    0   47G  0 part
      └─ubuntu--vg-ubuntu--lv 253:0    0   47G  0 lvm  /
    nvme0n2                   259:4    0   30G  0 disk
    nvme0n3                   259:5    0   30G  0 disk
    nvme0n4                   259:6    0   30G  0 disk

    Để tạo một mảng RAID 5 với ba ổ đĩa nvme0n2, nvme0n3 và nvme0n4, bạn có thể sử dụng lệnh sau:

    shell> sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4
    mdadm: layout defaults to left-symmetric
    mdadm: layout defaults to left-symmetric
    mdadm: chunk size defaults to 512K
    mdadm: size set to 31439872K
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.

    Lệnh trên sẽ tạo một mảng RAID 5 mới tên là /dev/md0 với ba ổ đĩa nvme0n2, nvme0n3 và nvme0n4. Kết quả khi bạn sử dụng lại lệnh lsblk sẽ có khác đôi chút về 3 ổ đĩa vừa Raid5 như dưới.

    shell> lsblk
    NAME                      MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
    loop0                       7:0    0 91.9M  1 loop  /snap/lxd/24065
    loop1                       7:1    0   34M  1 loop  /snap/snapd/21185
    loop2                       7:2    0 57.9M  1 loop  /snap/core20/1614
    loop3                       7:3    0   61M  1 loop  /snap/lxd/22761
    sr0                        11:0    1 1024M  0 rom
    nvme0n1                   259:0    0   50G  0 disk
    ├─nvme0n1p1               259:1    0  1.1G  0 part  /boot/efi
    ├─nvme0n1p2               259:2    0    2G  0 part  /boot
    └─nvme0n1p3               259:3    0   47G  0 part
      └─ubuntu--vg-ubuntu--lv 253:0    0   47G  0 lvm   /
    nvme0n2                   259:4    0   30G  0 disk
    └─md0                       9:0    0   60G  0 raid5
    nvme0n3                   259:5    0   30G  0 disk
    └─md0                       9:0    0   60G  0 raid5
    nvme0n4                   259:6    0   30G  0 disk
    └─md0                       9:0    0   60G  0 raid5

    Bạn có thể kiểm tra trạng thái của mảng RAID bằng cách sử dụng lệnh mdadm --detail.

    shell> sudo mdadm --detail /dev/md0
    /dev/md0:
               Version : 1.2
         Creation Time : Wed May  1 05:46:17 2024
            Raid Level : raid5
            Array Size : 62879744 (59.97 GiB 64.39 GB)
         Used Dev Size : 31439872 (29.98 GiB 32.19 GB)
          Raid Devices : 3
         Total Devices : 3
           Persistence : Superblock is persistent
    
           Update Time : Wed May  1 05:48:56 2024
                 State : clean
        Active Devices : 3
       Working Devices : 3
        Failed Devices : 0
         Spare Devices : 0
    
                Layout : left-symmetric
            Chunk Size : 512K
    
    Consistency Policy : resync
    
                  Name : ubuntu2004:0  (local to host ubuntu2004)
                  UUID : dca0024e:090ddbd3:e0bdbf63:fff3c058
                Events : 18
    
        Number   Major   Minor   RaidDevice State
           0     259        4        0      active sync   /dev/nvme0n2
           1     259        5        1      active sync   /dev/nvme0n3
           3     259        6        2      active sync   /dev/nvme0n4

    Sau khi tạo mảng RAID, để sử dụng bạn cần định dạng lại md0. Bạn có thể sử dụng mkfs để định dạng, ví dụ:

    shell> sudo mkfs.ext4 /dev/md0
    mke2fs 1.45.5 (07-Jan-2020)
    Creating filesystem with 15719936 4k blocks and 3932160 inodes
    Filesystem UUID: 6f9c98ad-b058-40d4-b407-aeb5b319d324
    Superblock backups stored on blocks:
    	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    	4096000, 7962624, 11239424
    
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (65536 blocks): done
    Writing superblocks and filesystem accounting information: done

    Cuối cùng, bạn cần mount mảng mdo vào một thư mục để sử dụng. Đầu tiên, tạo một thư mục mount.

    sudo mkdir /mnt/myraid

    Sau đó, mount mảng RAID vào thư mục mới:

    sudo mount /dev/md0 /mnt/myraid

    Kết quả khi sử dụng lệnh df.

    shell> df -hT
    Filesystem                        Type      Size  Used Avail Use% Mounted on
    udev                              devtmpfs  1.9G     0  1.9G   0% /dev
    tmpfs                             tmpfs     392M  1.2M  391M   1% /run
    /dev/mapper/ubuntu--vg-ubuntu--lv ext4       46G  6.3G   38G  15% /
    tmpfs                             tmpfs     2.0G     0  2.0G   0% /dev/shm
    tmpfs                             tmpfs     5.0M     0  5.0M   0% /run/lock
    tmpfs                             tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
    /dev/nvme0n1p2                    ext4      2.0G  107M  1.7G   6% /boot
    /dev/nvme0n1p1                    vfat      1.1G  5.1M  1.1G   1% /boot/efi
    /dev/loop1                        squashfs   35M   35M     0 100% /snap/snapd/21185
    /dev/loop0                        squashfs   92M   92M     0 100% /snap/lxd/24065
    /dev/loop2                        squashfs   58M   58M     0 100% /snap/core20/1614
    /dev/loop3                        squashfs   62M   62M     0 100% /snap/lxd/22761
    tmpfs                             tmpfs     392M     0  392M   0% /run/user/1000
    /dev/md0                          ext4       59G   24K   56G   1% /mnt/myraid

    Để đảm bảo mảng RAID được mount tự động sau khi khởi động, bạn cần thêm nó vào file /etc/fstab.

    Để thêm mảng RAID vào file /etc/fstab để nó tự động mount khi khởi động, bạn cần biết UUID (Universal Unique Identifier) của mảng RAID.

    Bạn có thể lấy UUID bằng cách sử dụng lệnh blkid:

    shell> sudo blkid /dev/md0
    /dev/md0: UUID="6f9c98ad-b058-40d4-b407-aeb5b319d324" TYPE="ext4"

    Sau đó, bạn mở file /etc/fstab và thêm một dòng mới với thông tin sau:

    UUID=6f9c98ad-b058-40d4-b407-aeb5b319d324 /mnt/myraid ext4 defaults 0 0

    Trong đó, 6f9c98ad-b058-40d4-b407-aeb5b319d324 là UUID của mảng RAID, /mnt/myraid là thư mục mount, ext4 là định dạng phân vùng và defaults 0 0 là các tùy chọn mount.

    Sau khi thêm dòng mới, lưu và đóng file. Mảng RAID sẽ tự động mount khi bạn khởi động lại hệ thống.

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email