Computer >> Máy Tính >  >> Hệ thống >> Linux

Định cấu hình RAID phần mềm trên Linux bằng MDADM

MDADM là một công cụ cho phép tạo và quản lý RAID phần mềm trên Linux. Trong bài viết này, chúng tôi sẽ hướng dẫn cách sử dụng mdadm (quản trị nhiều đĩa) để tạo bộ lưu trữ mảng RAID, thêm và quản lý đĩa, thêm phần mềm dự phòng và hơn thế nữa.

mdadm:Cách cài đặt Công cụ quản lý đột kích bằng phần mềm?

Để cài đặt mdadm, hãy chạy lệnh cài đặt:

  • Đối với CentOS / Red Hat (sử dụng yum / dnf):yum install mdadm
  • Đối với Ubuntu / Debian:apt-get install mdadm

mdadm và các thư viện phụ thuộc sẽ được cài đặt:

 Đang chạy giao dịchCài đặt:libreport-filesystem-2.1.11-43.el7.centos.x86_64 1/2Cài đặt:mdadm-4.1-1.el7.x86_64 2 / 2Xác minh:mdadm-4.1-1.el7.x86_64 1/2Xác minh :libreport-filesystem-2.1.11-43.el7.centos.x86_64 2/2 Đã cài đặt:mdadm.x86_64 0:4.1-1.el7Dependency Đã cài đặt:libreport-filesystem.x86_64 0:2.1.11-43.el7.centosComplete! 

Tạo RAID 1 (Phản chiếu) Sử dụng 2 đĩa trên Linux

Tôi có hai đĩa phụ được cài đặt trên máy chủ Linux của mình và tôi muốn tạo một bản sao phần mềm trên chúng (RAID1). Các ổ đĩa trống. Trước hết, bạn phải làm bằng không tất cả các superblock trên đĩa để được thêm vào RAID:

# mdadm --zero-superblock --force /dev/vd{b,c}

Tôi có hai đĩa sạch: vdb vdc .

Định cấu hình RAID phần mềm trên Linux bằng MDADM

 mdadm:Thiết bị thành phần md không được công nhận - / dev / vdbmdadm:Thiết bị thành phần md không được công nhận - / dev / vdc 

Danh sách này có nghĩa là cả hai đĩa đều chưa từng được thêm vào một mảng.

Để tạo phần mềm RAID1 từ hai đĩa vào thiết bị / dev / md0, sử dụng lệnh này:

# mdadm --create --verbose /dev/md0 -l 1 -n 2 /dev/vd{b,c}

Ở đâu ‘ -l 1 ’Là kiểu mảng (trong trường hợp của chúng tôi là RAID1,

và ‘ -n 2 ’Là số đĩa được thêm vào mảng.

Nếu bạn muốn tạo RAID0 (Sọc) để cải thiện tốc độ đọc / ghi do các lệnh song song giữa một số đĩa vật lý, hãy sử dụng lệnh này:

# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/vdb /dev/vdc

Đối với RAID 5 trong số ba ổ đĩa trở lên:

# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/vdb /dev/ vdc /dev/vdd

Sau khi bạn nhập các lệnh, hãy xác nhận các hành động và RAID phần mềm sẽ được tạo:

Định cấu hình RAID phần mềm trên Linux bằng MDADM

Nếu bạn liệt kê thông tin về các đĩa của mình, bạn sẽ thấy ổ RAID md0 của mình:

# lsblk

 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda 253:0 0 20G 0 disk├─vda1 253:1 0 512M 0 part / boot└─vda2 253:2 0 19.5G 0 part / vdb 253:16 0 20G 0 disk└─md0 9:0 0 20G 0 đột kích1vdc 253:32 0 20G 0 đĩa└─md0 9:0 0 20G 0 đột kích1 

Để tạo hệ thống tệp ext4 trên ổ RAID1 của bạn, hãy chạy lệnh sau:

# mkfs.ext4 /dev/md0

Định cấu hình RAID phần mềm trên Linux bằng MDADM

Tạo thư mục sao lưu và gắn thiết bị RAID vào đó:

# mkdir /backup
# mount /dev/md0 /backup/
# df -h

 Kích thước hệ thống tệp đã sử dụng Khả năng sử dụng% Được gắn trên .......................... / dev / md0 20G 45M 19G 1% / backup  

Mảng đã được gắn kết mà không có bất kỳ lỗi nào. Để không phải gắn thiết bị mỗi lần theo cách thủ công, hãy thực hiện các thay đổi sau đối với fstab :

# nano /etc/fstab

 / dev / md0 / backup ext4 mặc định 1 2 

Định cấu hình RAID phần mềm trên Linux bằng MDADM

Làm cách nào để xem trạng thái hoặc kiểm tra tính toàn vẹn của mảng RAID?

Để kiểm tra tính toàn vẹn của dữ liệu trong mảng, hãy sử dụng lệnh sau:

#echo 'check' > /sys/block/md0/md/sync_action

Sau đó, xem đầu ra của tệp sau:

#cat /sys/block/md0/md/mismatch_cnt

Nếu bạn nhận được 0 , mảng của bạn ổn:

Định cấu hình RAID phần mềm trên Linux bằng MDADM

Để dừng việc kiểm tra, hãy chạy như sau:

#echo 'idle' > /sys/block/md0/md/sync_action

Để kiểm tra trạng thái của tất cả các RAID có sẵn trên máy chủ, hãy sử dụng lệnh sau:

# cat /proc/mdstat

 Tính cách:[đột kích1] md0:hoạt động đột kích1 vdc [1] vdb [0] 20954112 khối siêu 1,2 [2/2] [UU] 

Bạn có thể xem thêm thông tin chi tiết về RAID cụ thể bằng lệnh này:

# mdadm -D /dev/md0

Định cấu hình RAID phần mềm trên Linux bằng MDADM

Hãy xem xét các mục chính trong danh sách lệnh:

  • Phiên bản - phiên bản siêu dữ liệu
  • Thời gian tạo - ngày và giờ tạo RAID
  • Cấp độ đột kích - cấp độ của một mảng RAID
  • Kích thước mảng - kích thước của không gian đĩa RAID
  • Kích thước nhà phát triển đã sử dụng - kích thước không gian được sử dụng bởi các thiết bị
  • Thiết bị Đột kích - số lượng đĩa trong RAID
  • Tổng số thiết bị - là số đĩa được thêm vào RAID
  • Trạng thái - là trạng thái hiện tại (sạch - nó ổn)
  • Thiết bị đang hoạt động - số lượng đĩa hoạt động trong RAID
  • Công việc phát triển - số lượng đĩa hoạt động trong RAID
  • Thiết bị không thành công - số lượng thiết bị bị lỗi trong RAID
  • Thiết bị dự phòng - số lượng đĩa dự phòng trong RAID
  • Chính sách nhất quán - là tham số đặt kiểu đồng bộ hóa sau khi bị lỗi, rsync là đồng bộ hóa đầy đủ sau khi khôi phục mảng RAID (có sẵn các chế độ bitmap, journal, ppl)
  • UUID - định danh mảng đột kích

Bạn có thể xem thông tin ngắn gọn bằng cách sử dụng fdisk :

# fdisk -l /dev/md0

 Disk / dev / md0:21,5 GB, 21457010688 byte, 41908224 sectorUnits =sector of 1 * 512 =512 byte Kích thước vùng (logic / vật lý):512 byte / 512 byte Kích thước I / O (tối thiểu / tối ưu):512 byte / 512 byte 

Khôi phục sau lỗi đĩa trong RAID, Thay thế đĩa

Nếu một trong các đĩa trong RAID bị lỗi hoặc bị hỏng, bạn có thể thay thế nó bằng một đĩa khác. Trước hết, hãy tìm hiểu xem đĩa có bị hỏng và cần được thay thế hay không.

# cat /proc/mdstat

 Tính cách:[đột kích1] md0:hoạt động đột kích1 vdb [0] 20954112 khối siêu 1,2 [2/1] [U_] 

Từ lệnh trước, bạn có thể thấy rằng chỉ có một đĩa đang hoạt động. [ U_ ] cũng có nghĩa là một vấn đề tồn tại. Khi cả hai đĩa đều khỏe, đầu ra là [ UU ].

Thông tin chi tiết về RAID cũng cho thấy rằng có một số vấn đề:

# mdadm -D /dev/md0

 / dev / md0:Phiên bản:1.2Thời gian sáng tạo:Thứ Ba ngày 31 tháng 12 12:39:22 2020 Cấp độ trả tiền:đột kích1 Kích thước đĩa:20954112 (19,98 GiB 21,46 GB) Kích thước nhà phát triển đã sử dụng:20954112 (19,98 GiB 21,46 GB) Thiết bị đột kích:2Tổng số Thiết bị:2 Độ bền:Superblock là bền bỉ Thời gian cập nhật:Thứ Ba ngày 31 tháng 12 14:41:13 2020 Trạng thái:sạch, đã xuống cấp 

- dòng cuối cùng cho thấy một đĩa trong RAID bị hỏng.

Trong trường hợp của chúng tôi, / dev / vdc phải được thay thế. Để khôi phục mảng, bạn phải loại bỏ đĩa bị hỏng và thêm một đĩa mới.

Xóa ổ đĩa bị lỗi:

# mdadm /dev/md0 --remove /dev/vdc

Thêm đĩa mới vào mảng:

# mdadm /dev/md0 --add /dev/vdd

Khôi phục đĩa sẽ tự động bắt đầu sau khi bạn thêm đĩa mới:

# mdadm -D /dev/md0

 / dev / md0:Phiên bản:1.2Thời gian sáng tạo:Thứ Ba ngày 31 tháng 12 12:39:22 2020 Cấp độ trả tiền:đột kích1 Kích thước đĩa:20954112 (19,98 GiB 21,46 GB) Kích thước nhà phát triển đã sử dụng:20954112 (19,98 GiB 21,46 GB) Thiết bị đột kích:2Tổng số Thiết bị:2 Độ bền:Superblock là bền bỉ Thời gian cập nhật:Thứ Ba ngày 31 tháng 12 14:50:20 2020 Trạng thái:sạch, bị xuống cấp, đang phục hồi tới máy chủ lưu trữ1) UUID:9d59b1fb:7b0a7b6d:15a75459:8b1637a2Events:42Number Major Minor RaidDevice State0 253 16 0 hoạt động đồng bộ / dev / vdb2 253 48 1 dự phòng xây dựng lại / dev / vddrebuild Trạng thái:48% hoàn thành hiển thị trạng thái phục hồi mảng hiện tại. rebuilding / dev / vdd cho biết đĩa nào đang được thêm vào mảng. Sau khi xây dựng lại mảng, hãy kiểm tra trạng thái của nó:State:cleanActive Devices:2Working Devices:2Failed Devices:0Spare Devices:0 

Cách thêm hoặc xóa đĩa vào RAID phần mềm trên Linux?

Nếu bạn cần xóa thiết bị RAID mdadm đã tạo trước đó, hãy ngắt kết nối thiết bị đó:

# umount /backup

Sau đó chạy lệnh này:

# mdadm -S /dev/md0

 mdadm:stop / dev / md0 

Sau khi phá hủy mảng RAID, nó sẽ không được phát hiện là một thiết bị đĩa riêng biệt:

# mdadm -S /dev/md0

 mdadm:error opens / dev / md0:Không có tệp hoặc thư mục nào như vậy 

Bạn có thể quét tất cả các ổ đĩa được kết nối và tạo lại thiết bị RAID đã xóa (không thành công) trước đó theo siêu dữ liệu trên ổ đĩa vật lý. Chạy lệnh sau:

# mdadm --assemble —scan

Định cấu hình RAID phần mềm trên Linux bằng MDADM

Nếu bạn muốn xóa một ổ đĩa có thể hoạt động khỏi một mảng và thay thế nó, trước tiên hãy gắn thẻ ổ đĩa đó là ổ đĩa bị lỗi:

# mdadm /dev/md0 --fail /dev/vdc

Sau đó, bạn có thể xóa nó bằng lệnh sau:

# mdadm /dev/md0 --remove /dev/vdc

Bạn có thể thêm đĩa mới, giống như trong trường hợp ổ đĩa bị lỗi:

# mdadm /dev/md0 --add /dev/vdd

Làm cách nào để Thêm Ổ đĩa dự phòng vào Mảng MDADM?

Bạn có thể thêm một phụ tùng nóng ổ đĩa để nhanh chóng xây dựng lại mảng RAID nếu một trong các đĩa hoạt động bị lỗi. Thêm đĩa miễn phí vào thiết bị md bạn muốn:

# mdadm /dev/md0 --add /dev/vdc

Khi bạn kiểm tra trạng thái RAID, chúng tôi sẽ thấy đĩa như một phần dự phòng:

Định cấu hình RAID phần mềm trên Linux bằng MDADM

Để đảm bảo rằng hoán đổi nóng hoạt động, hãy đánh dấu bất kỳ ổ đĩa nào là không thành công và kiểm tra trạng thái RAID:

# mdadm /dev/md0 --fail /dev/vdb

Sau khi kiểm tra, bạn có thể thấy rằng quá trình xây dựng lại mảng đã bắt đầu.

Định cấu hình RAID phần mềm trên Linux bằng MDADM

/ dev / vdb đĩa được đánh dấu là không thành công và đĩa dự phòng nóng trở thành một trong những đĩa RAID hoạt động. Vậy là quá trình xây dựng lại đã bắt đầu.

Để thêm một đĩa có thể hoạt động bổ sung vào RAID, bạn phải làm theo hai bước sau.

Thêm một ổ đĩa trống vào mảng:

# mdadm /dev/md0 --add /dev/vdb

Bây giờ đĩa này sẽ được hiển thị dưới dạng dự phòng nóng. Để làm cho nó hoạt động, hãy mở rộng thiết bị RAID md:

# mdadm -G /dev/md0 —raid-devices=3

Sau đó, mảng sẽ được xây dựng lại:

Định cấu hình RAID phần mềm trên Linux bằng MDADM

Sau khi xây dựng lại, tất cả các đĩa sẽ hoạt động:

 Number Major Minor Minor RaidDevice State3 253 32 0 active sync / dev / vdc2 253 48 1 active sync / dev / vdd4 253 16 2 active sync / dev / vdb 

Làm cách nào để Xóa Mảng MDADM RAID?

Nếu bạn muốn xóa vĩnh viễn ổ RAID phần mềm của mình, hãy sử dụng sơ đồ sau:

# umount /backup - ngắt kết nối mảng khỏi thư mục

# mdadm -S /dev/md0 - dừng thiết bị RAID

Sau đó, xóa tất cả các siêu khóa trên đĩa mà nó được tạo ra:

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

Mdmonitor:Giám sát trạng thái RAID &Thông báo qua email

mdmonitor daemon có thể được sử dụng để theo dõi trạng thái của RAID. Trước tiên, bạn phải tạo /etc/mdadm.conf tệp chứa cấu hình mảng hiện tại:

# mdadm –detail –scan > /etc/mdadm.conf

Tệp mdadm.conf không được tạo tự động. Bạn phải tạo và cập nhật nó theo cách thủ công.

Thêm vào cuối /etc/mdadm.conf địa chỉ email quản trị viên mà bạn muốn gửi thông báo trong trường hợp có bất kỳ sự cố RAID nào:

 MAILADDR đột kíchadmin@woshub.com 

Sau đó khởi động lại dịch vụ mdmonitor bằng systemctl:

# systemctl restart mdmonitor

Sau đó, hệ thống sẽ thông báo cho bạn qua e-mail nếu có bất kỳ lỗi mdadm hoặc đĩa bị lỗi.

MDADM RAID không hoạt động

Trong trường hợp lỗi phần cứng hoặc tắt máy khẩn cấp, mảng RAID phần mềm có thể không hoạt động . Tất cả các ổ được đánh dấu là không hoạt động, nhưng không có lỗi.

# cat /proc/mdstat

 Các tính cách:[tuyến tính] [đa đường] [đột kích0] [đột kích1] [đột kích6] [đột kích5] [đột kích4] [đột kích10] md0:vdc không hoạt động [1] vdb [0] 20954112 chặn các thiết bị siêu sử dụng:  

Trong trường hợp này, bạn cần dừng mảng bằng lệnh này:

# mdadm --stop /dev/md0

Và lắp ráp lại nó:

# mdadm --assemble --scan –force

Nếu thiết bị md được đăng ký trong / etc / fstab, hãy gắn lại thiết bị bằng lệnh sau:

# mount -a

Có một số cách để tạo RAID phần mềm trong hệ điều hành đã được cài đặt sẵn. Trong trường hợp này, bạn sẽ phải sao chép thủ công tất cả các bảng phân vùng sang đĩa mới và di chuyển thủ công nội dung của đĩa hệ thống sang RAID bao gồm từ một đĩa. Sau đó, dọn dẹp đĩa đầu tiên và thêm nó vào RAID của bạn, chỉnh sửa initramfs và trình tải GRUB. Vì vậy, tốt hơn là chọn chế độ cài đặt CentOS trên RAID phần mềm trong quá trình triển khai máy chủ.

mdadm giúp quản lý RAID phần mềm trên Linux dễ dàng hơn. Trong bài viết này, tôi đã mô tả những điều chính khi làm việc với công cụ và đề cập đến các câu hỏi điển hình nảy sinh khi làm việc với RAID bằng mdadm.