Lệnh mdadm trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh mdadm của Linux để tạo, quản lý và giám sát các mảng RAID phần mềm. RAID phần mềm là một giải pháp thay thế hiệu quả về chi phí và linh hoạt cho RAID phần cứng, cho phép bạn định cấu hình các cấp độ RAID khác nhau mà không cần phần cứng chuyên dụng. Đầu tiên, bạn sẽ hiểu khái niệm về RAID phần mềm và cách nó khác với RAID phần cứng. Sau đó, bạn sẽ tạo một mảng RAID 5 bằng cách sử dụng lệnh mdadm và các thiết bị khối ảo. Cuối cùng, bạn sẽ học cách quản lý và giám sát mảng RAID phần mềm.

Hiểu Khái niệm về RAID Phần mềm

Trong bước này, bạn sẽ tìm hiểu về khái niệm RAID phần mềm (Redundant Array of Independent Disks - Mảng dự phòng các đĩa độc lập) và cách nó khác với RAID phần cứng. RAID phần mềm là một tính năng được cung cấp bởi hệ điều hành, cho phép bạn tạo và quản lý các mảng RAID bằng phần mềm thay vì phần cứng bộ điều khiển RAID chuyên dụng.

Ưu điểm chính của RAID phần mềm là nó hiệu quả về chi phí và linh hoạt hơn RAID phần cứng. Nó có thể được triển khai trên bất kỳ hệ thống nào có nhiều thiết bị lưu trữ, mà không cần phần cứng RAID chuyên dụng. Tuy nhiên, RAID phần mềm có thể có hiệu suất thấp hơn một chút so với RAID phần cứng, vì CPU chịu trách nhiệm quản lý các hoạt động RAID.

Có một số cấp độ RAID mà bạn có thể định cấu hình bằng RAID phần mềm, chẳng hạn như RAID 0 (striping), RAID 1 (mirroring), RAID 5 (striping với distributed parity) và RAID 6 (striping với dual distributed parity). Mỗi cấp độ RAID cung cấp các sự đánh đổi khác nhau giữa dung lượng lưu trữ, hiệu suất và tính dự phòng dữ liệu.

Trong bước tiếp theo, bạn sẽ học cách tạo mảng RAID phần mềm bằng lệnh mdadm trong Linux.

Tạo Mảng RAID Phần mềm Bằng mdadm

Trong bước này, bạn sẽ học cách tạo mảng RAID phần mềm bằng lệnh mdadm trong Linux.

Đầu tiên, hãy tạo bốn thiết bị khối ảo sẽ được sử dụng làm bộ nhớ cơ bản cho mảng RAID của chúng ta:

sudo dd if=/dev/zero of=~/project/disk1.img bs=1M count=100
sudo dd if=/dev/zero of=~/project/disk2.img bs=1M count=100
sudo dd if=/dev/zero of=~/project/disk3.img bs=1M count=100
sudo dd if=/dev/zero of=~/project/disk4.img bs=1M count=100

Ví dụ đầu ra:

100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0730474 s, 1.4 GB/s

Tiếp theo, hãy tạo một mảng RAID 5 bằng cách sử dụng bốn đĩa ảo này:

sudo mdadm --create /dev/md0 --level=5 --raid-devices=4 ~/project/disk1.img ~/project/disk2.img ~/project/disk3.img ~/project/disk4.img

Ví dụ đầu ra:

mdadm: chunk size defaults to 512K
mdadm: array /dev/md0 started.

Lệnh mdadm tạo một mảng RAID mới có tên /dev/md0 với cấp độ RAID là 5 và 4 thiết bị cơ bản.

Bây giờ, hãy kiểm tra trạng thái của mảng RAID:

sudo mdadm --detail /dev/md0

Ví dụ đầu ra:

/dev/md0:
           Version : 1.2
     Creation Time : Tue Apr 25 15:25:35 2023
        Raid Level : raid5
        Array Size : 307200 (300.00 MiB 314.43 MB)
     Used Dev Size : 100000 (97.66 MiB 102.40 MB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue Apr 25 15:25:35 2023
             State : clean
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 6d2d9c1c:b4d2f9c4:8d6f0e8f:e0b0d4d5
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       0        0        0      active sync   /home/labex/project/disk1.img
       1       0        1        1      active sync   /home/labex/project/disk2.img
       2       0        2        2      active sync   /home/labex/project/disk3.img
       3       0        3        3      active sync   /home/labex/project/disk4.img

Đầu ra cho thấy mảng RAID 5 đã được tạo thành công và đang ở trạng thái clean, active.

Trong bước tiếp theo, bạn sẽ học cách quản lý và giám sát mảng RAID phần mềm.

Quản lý và Giám sát Mảng RAID Phần mềm

Trong bước cuối cùng này, bạn sẽ học cách quản lý và giám sát mảng RAID phần mềm mà bạn đã tạo ở bước trước.

Đầu tiên, hãy thêm một đĩa mới vào mảng RAID 5:

sudo dd if=/dev/zero of=~/project/disk5.img bs=1M count=100
sudo mdadm /dev/md0 --add ~/project/disk5.img

Ví dụ đầu ra:

mdadm: added /home/labex/project/disk5.img

Bây giờ, hãy kiểm tra lại trạng thái của mảng RAID:

sudo mdadm --detail /dev/md0

Ví dụ đầu ra:

/dev/md0:
           Version : 1.2
     Creation Time : Tue Apr 25 15:25:35 2023
        Raid Level : raid5
        Array Size : 407200 (397.66 MiB 417.23 MB)
     Used Dev Size : 100000 (97.66 MiB 102.40 MB)
      Raid Devices : 5
     Total Devices : 5
       Persistence : Superblock is persistent

       Update Time : Tue Apr 25 15:26:16 2023
             State : clean, degraded, recovering
    Active Devices : 4
   Working Devices : 5
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 6d2d9c1c:b4d2f9c4:8d6f0e8f:e0b0d4d5
            Events : 6

    Number   Major   Minor   RaidDevice State
       0       0        0        0      active sync   /home/labex/project/disk1.img
       1       0        1        1      active sync   /home/labex/project/disk2.img
       2       0        2        2      active sync   /home/labex/project/disk3.img
       3       0        3        3      active sync   /home/labex/project/disk4.img
       4       0        4        -      spare   /home/labex/project/disk5.img

Đầu ra cho thấy đĩa mới /home/labex/project/disk5.img đã được thêm vào làm thiết bị spare cho mảng RAID 5.

Tiếp theo, hãy mô phỏng lỗi đĩa bằng cách xóa một trong các thiết bị khỏi mảng RAID:

sudo mdadm /dev/md0 --fail /home/labex/project/disk1.img
sudo mdadm /dev/md0 --remove /home/labex/project/disk1.img

Ví dụ đầu ra:

mdadm: set /home/labex/project/disk1.img faulty in /dev/md0
mdadm: hot removed /home/labex/project/disk1.img from /dev/md0

Bây giờ, hãy kiểm tra lại trạng thái của mảng RAID:

sudo mdadm --detail /dev/md0

Ví dụ đầu ra:

/dev/md0:
           Version : 1.2
     Creation Time : Tue Apr 25 15:25:35 2023
        Raid Level : raid5
        Array Size : 407200 (397.66 MiB 417.23 MB)
     Used Dev Size : 100000 (97.66 MiB 102.40 MB)
      Raid Devices : 5
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Tue Apr 25 15:26:56 2023
             State : clean, degraded
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 1
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 6d2d9c1c:b4d2f9c4:8d6f0e8f:e0b0d4d5
            Events : 8

    Number   Major   Minor   RaidDevice State
       1       0        1        1      active sync   /home/labex/project/disk2.img
       2       0        2        2      active sync   /home/labex/project/disk3.img
       3       0        3        3      active sync   /home/labex/project/disk4.img
       4       0        4        4      spare   /home/labex/project/disk5.img
       0       0        0        -      removed

Đầu ra cho thấy mảng RAID 5 hiện đang ở trạng thái degraded, với một thiết bị bị lỗi và một thiết bị spare khả dụng.

Trong bước này, bạn đã học cách quản lý và giám sát một mảng RAID phần mềm bằng lệnh mdadm, bao gồm thêm một đĩa mới, mô phỏng lỗi đĩa và quan sát trạng thái của mảng RAID.

Tóm tắt

Trong lab này, đầu tiên bạn đã tìm hiểu về khái niệm RAID phần mềm, cho phép bạn tạo và quản lý các mảng RAID bằng phần mềm thay vì phần cứng chuyên dụng. Bạn đã khám phá những ưu điểm của RAID phần mềm, chẳng hạn như hiệu quả về chi phí và tính linh hoạt, cũng như các cấp độ RAID khác nhau có sẵn. Sau đó, bạn đã học cách tạo một mảng RAID phần mềm bằng lệnh mdadm trong Linux. Bạn đã tạo bốn thiết bị khối ảo và sử dụng chúng để thiết lập một mảng RAID 5, cung cấp tính dự phòng dữ liệu và cải thiện hiệu suất.

400+ câu lệnh phổ biến trong Linux