MDADM เป็นเครื่องมือที่ช่วยให้สามารถสร้างและจัดการซอฟต์แวร์ RAID บน Linux ในบทความนี้ เราจะแสดงวิธีใช้ mdadm (ผู้ดูแลระบบหลายดิสก์) เพื่อสร้างที่เก็บข้อมูลอาร์เรย์ RAID เพิ่มและจัดการดิสก์ เพิ่ม hot-spare และอื่นๆ
mdadm:จะติดตั้ง Software Raid Management Tool ได้อย่างไร
ในการติดตั้ง mdadm ให้รันคำสั่งการติดตั้ง:
- สำหรับ CentOS/Red Hat (ใช้ yum/dnf):
yum install mdadm
- สำหรับ Ubuntu/Debian:
apt-get install mdadm
mdadm และไลบรารีที่ขึ้นต่อกันจะถูกติดตั้ง:
รันธุรกรรมการติดตั้ง :libreport-filesystem-2.1.11-43.el7.centos.x86_64 1/2 การติดตั้ง :mdadm-4.1-1.el7.x86_64 2/2Verifying :mdadm-4.1-1.el7.x86_64 1/2Verifying :libreport-filesystem-2.1.11-43.el7.centos.x86_64 2/2Installed:mdadm.x86_64 0:4.1-1.el7Dependency Installed:libreport-filesystem.x86_64 0:2.1.11-43.el7.centosComplete!
การสร้าง RAID 1 (มิเรอร์) โดยใช้ 2 ดิสก์บน Linux
ฉันมีดิสก์พิเศษสองตัวติดตั้งอยู่บนเซิร์ฟเวอร์ Linux ของฉัน และฉันต้องการสร้างมิเรอร์ซอฟต์แวร์บนดิสก์เหล่านั้น (RAID1) ไดรฟ์ว่างเปล่า ก่อนอื่น คุณต้องทำให้ซุปเปอร์บล็อกทั้งหมดเป็นศูนย์บนดิสก์เพื่อเพิ่มไปยัง RAID:
# mdadm --zero-superblock --force /dev/vd{b,c}
ฉันมีดิสก์สะอาดสองตัว:vdb และ vdc .
mdadm:อุปกรณ์คอมโพเนนต์ md ที่ไม่รู้จัก - /dev/vdbmdadm:อุปกรณ์คอมโพเนนต์ md ที่ไม่รู้จัก - /dev/vdc
รายการนี้หมายความว่ายังไม่เคยเพิ่มดิสก์ใดลงในอาร์เรย์
เพื่อสร้างซอฟต์แวร์ RAID1 จากสองดิสก์ไปยังอุปกรณ์ /dev/md0 ใช้คำสั่งนี้:
# mdadm --create --verbose /dev/md0 -l 1 -n 2 /dev/vd{b,c}
โดยที่ '-l 1 ’ คือประเภทอาร์เรย์ (ในกรณีของเรา Raid1
และ '-n 2 ' คือจำนวนดิสก์ที่เพิ่มลงในอาร์เรย์
หากคุณต้องการสร้าง RAID0 (แถบ) เพื่อปรับปรุงความเร็วในการอ่าน/เขียนเนื่องจากการขนานคำสั่งระหว่างฟิสิคัลดิสก์หลายตัว ใช้คำสั่งนี้:
# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/vdb /dev/vdc
สำหรับ RAID 5 จากสามไดรฟ์ขึ้นไป:
# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/vdb /dev/ vdc /dev/vdd
หลังจากที่คุณป้อนคำสั่ง ให้ยืนยันการดำเนินการและซอฟต์แวร์ RAID จะถูกสร้างขึ้น:
หากคุณแสดงรายการข้อมูลเกี่ยวกับดิสก์ของคุณ คุณจะเห็นไดรฟ์ RAID md0 ของคุณ:
# lsblk
ชื่อ MAJ:MIN RM ขนาด RO ประเภท MOUNTPOINTvda 253:0 0 20G 0 ดิสก์├─vda1 253:1 0 512M 0 ส่วน /boot└─vda2 253:2 0 19.5G 0 ส่วน /vdb 253:16 0 20G 0 ดิสก์└─md0 9:0 0 20G 0 raid1vdc 253:32 0 20G 0 ดิสก์└─md0 9:0 0 20G 0 raid1
ในการสร้างระบบไฟล์ ext4 บนไดรฟ์ RAID1 ของคุณ ให้รันคำสั่งนี้:
# mkfs.ext4 /dev/md0
สร้างไดเร็กทอรีสำรองและติดตั้งอุปกรณ์ RAID เข้ากับไดเร็กทอรี:
# mkdir /backup
# mount /dev/md0 /backup/
# df -h
ขนาดระบบไฟล์ที่ใช้ Avail Use% Mounted on........................../dev/md0 20G 45M 19G 1% /backup ก่อน>อาร์เรย์ได้รับการติดตั้งโดยไม่มีข้อผิดพลาด เพื่อไม่ให้ติดตั้งอุปกรณ์ด้วยตนเองในแต่ละครั้ง ให้ทำการเปลี่ยนแปลงต่อไปนี้เป็น fstab :
# nano /etc/fstab
/dev/md0 /backup ext4 ค่าเริ่มต้น 1 2
จะดูสถานะหรือตรวจสอบความสมบูรณ์ของอาร์เรย์ RAID ได้อย่างไร
ในการตรวจสอบความสมบูรณ์ของข้อมูลในอาร์เรย์ ให้ใช้คำสั่งต่อไปนี้:
#echo 'check' > /sys/block/md0/md/sync_action
จากนั้นดูผลลัพธ์ของไฟล์ต่อไปนี้:
#cat /sys/block/md0/md/mismatch_cnt
หากคุณได้รับ
0
, อาร์เรย์ของคุณใช้ได้:
หากต้องการหยุดการตรวจสอบ ให้เรียกใช้สิ่งต่อไปนี้:
#echo 'idle' > /sys/block/md0/md/sync_action
ในการตรวจสอบสถานะของ RAID ทั้งหมดที่มีบนเซิร์ฟเวอร์ ให้ใช้คำสั่งนี้:
# cat /proc/mdstat
บุคลิก :[raid1]md0 :active raid1 vdc[1] vdb[0]20954112 บล็อก super 1.2 [2/2] [UU]คุณสามารถดูข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับ RAID เฉพาะได้โดยใช้คำสั่งนี้:
# mdadm -D /dev/md0
ลองพิจารณารายการหลักในรายการคำสั่ง:
- เวอร์ชัน – รุ่นข้อมูลเมตา
- เวลาสร้าง – วันที่และเวลาของการสร้าง RAID
- ระดับการจู่โจม – ระดับของอาร์เรย์RAID
- ขนาดอาร์เรย์ – ขนาดของพื้นที่ดิสก์ RAID
- ขนาดที่กำลังพัฒนา – ขนาดพื้นที่ที่อุปกรณ์ใช้
- อุปกรณ์จู่โจม – จำนวนดิสก์ใน RAID
- อุปกรณ์ทั้งหมด – คือจำนวนดิสก์ที่เพิ่มไปยัง RAID
- รัฐ – คือสถานะปัจจุบัน (สะอาด — ไม่เป็นไร)
- อุปกรณ์ที่ใช้งานอยู่ – จำนวนดิสก์ที่ใช้งานใน RAID
- อุปกรณ์ทำงาน – จำนวนดิสก์ที่ใช้งานได้ใน RAID
- อุปกรณ์ที่ล้มเหลว – จำนวนอุปกรณ์ที่ล้มเหลวใน RAID
- อุปกรณ์สำรอง – จำนวนดิสก์สำรองใน RAID
- นโยบายความสม่ำเสมอ – เป็นพารามิเตอร์ที่กำหนดประเภทการซิงโครไนซ์หลังจากเกิดความล้มเหลว rsync คือการซิงโครไนซ์แบบเต็มหลังจากการกู้คืนอาร์เรย์ RAID (บิตแมป สมุดรายวัน โหมด ppl พร้อมใช้งาน)
- UUID – ตัวระบุอาร์เรย์การจู่โจม
คุณสามารถดูข้อมูลโดยย่อโดยใช้ fdisk :
# fdisk -l /dev/md0
ดิสก์ /dev/md0:21.5 GB, 21457010688 ไบต์, 41908224 sectorsUnits =ส่วนของ 1 * 512 =512 ไบต์ขนาดส่วน (ตรรกะ/กายภาพ):512 ไบต์ / 512 ไบต์ขนาด I/O (ต่ำสุด/เหมาะสมที่สุด):512 ไบต์ / 512 ไบต์
การกู้คืนจากความล้มเหลวของดิสก์ใน RAID, การแทนที่ดิสก์
หากดิสก์ตัวใดตัวหนึ่งใน RAID ล้มเหลวหรือเสียหาย คุณสามารถแทนที่ด้วยดิสก์อื่นได้ ก่อนอื่น ให้ตรวจสอบว่าแผ่นดิสก์เสียหายและจำเป็นต้องเปลี่ยนหรือไม่
# cat /proc/mdstat
บุคลิก :[raid1]md0 :active raid1 vdb[0]20954112 บล็อก super 1.2 [2/1] [U_]
จากคำสั่งก่อนหน้านี้ คุณจะเห็นว่ามีเพียงดิสก์เดียวที่ทำงานอยู่ [U_ ] ยังหมายความว่ามีปัญหาอยู่ เมื่อดิสก์ทั้งสองทำงานได้ดี เอาต์พุตจะเป็น [UU ].
ข้อมูลโดยละเอียดเกี่ยวกับ RAID ยังแสดงให้เห็นว่ามีปัญหาบางประการ:
# mdadm -D /dev/md0
/dev/md0:Version :1.2Creation Time :Tue Dec 31 12:39:22 2020Raid Level :raid1Array Size :20954112 (19.98 GiB 21.46 GB)ขนาด Dev ที่ใช้ :20954112 (19.98 GiB 21.46 GB)Raid Devices :2Total อุปกรณ์ :2ความคงทน :Superblock เป็นแบบถาวร เวลาอัปเดต :อ. 31 ธ.ค. 14:41:13 น. 2020สถานะ :สะอาด เสื่อมสภาพ อุปกรณ์ที่ใช้งาน :1 อุปกรณ์ทำงาน :1 อุปกรณ์ที่ล้มเหลว :1 สถานะ :สะอาด เสื่อมคุณภาพ
– บรรทัดสุดท้ายแสดงว่าดิสก์หนึ่งตัวใน RAID เสียหาย
ในกรณีของเรา /dev/vdc จะต้องถูกแทนที่ หากต้องการกู้คืนอาร์เรย์ คุณต้องนำดิสก์ที่เสียหายออกแล้วเพิ่มดิสก์ใหม่
ลบไดรฟ์ที่ล้มเหลว:
# mdadm /dev/md0 --remove /dev/vdc
เพิ่มดิสก์ใหม่ในอาร์เรย์:
# mdadm /dev/md0 --add /dev/vdd
การกู้คืนดิสก์จะเริ่มโดยอัตโนมัติหลังจากที่คุณเพิ่มดิสก์ใหม่:
# mdadm -D /dev/md0
/dev/md0:Version :1.2Creation Time :Tue Dec 31 12:39:22 2020Raid Level :raid1Array Size :20954112 (19.98 GiB 21.46 GB)ขนาด Dev ที่ใช้ :20954112 (19.98 GiB 21.46 GB)Raid Devices :2Total อุปกรณ์ :2การคงอยู่ :Superblock เป็นแบบถาวร เวลาอัปเดต :วันอังคารที่ 31 ธันวาคม 14:50:20 น. 2020สถานะ :สะอาด เสื่อมคุณภาพ กำลังกู้คืน อุปกรณ์ที่ใช้งาน :1 อุปกรณ์ที่ทำงาน :2 อุปกรณ์ที่ล้มเหลว :0 อุปกรณ์สำรอง :1 นโยบายความสอดคล้อง :ซิงค์ใหม่ สถานะการสร้างใหม่ :48% ชื่อสมบูรณ์ในเครื่อง:โฮสต์1:0 ( เพื่อโฮสต์โฮสต์1)UUID:9d59b1fb:7b0a7b6d:15a75459:8b1637a2Events:42Number Major RaidDevice State0 253 16 0 active sync /dev/vdb2 253 48 1 อะไหล่สำรอง /dev/vddrebuild สถานะ:48% เสร็จสมบูรณ์แสดงสถานะการกู้คืนอาร์เรย์ปัจจุบันที่ว่าง การสร้างใหม่ /dev/vdd แสดงว่ากำลังเพิ่มดิสก์ใดในอาร์เรย์ หลังจากสร้างอาร์เรย์ขึ้นใหม่ ให้ตรวจสอบสถานะ:State :cleanActive Devices :2Working Devices :2Failed Devices :0Spare Devices :0
จะเพิ่มหรือลบดิสก์ไปยัง Software RAID บน Linux ได้อย่างไร
หากคุณต้องการลบอุปกรณ์ mdadm RAID ที่สร้างไว้ก่อนหน้านี้ ให้ยกเลิกการต่อเชื่อม:
# umount /backup
จากนั้นรันคำสั่งนี้:
# mdadm -S /dev/md0
mdadm:หยุด /dev/md0
หลังจากทำลายอาร์เรย์ RAID แล้ว จะตรวจไม่พบว่าเป็นอุปกรณ์ดิสก์แยกต่างหาก:
# mdadm -S /dev/md0
mdadm:เกิดข้อผิดพลาดในการเปิด /dev/md0:ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
คุณสามารถสแกนไดรฟ์ที่เชื่อมต่อทั้งหมดและสร้างอุปกรณ์ RAID ที่ถอดออกก่อนหน้านี้ (ล้มเหลว) ขึ้นใหม่ตามข้อมูลเมตาบนไดรฟ์ที่มีอยู่จริง เรียกใช้คำสั่งต่อไปนี้:
# mdadm --assemble —scan
หากคุณต้องการลบไดรฟ์ที่ใช้งานได้ออกจากอาร์เรย์และแทนที่ ขั้นแรกให้แท็กไดรฟ์ว่าเป็นไดรฟ์ที่ล้มเหลว:
# mdadm /dev/md0 --fail /dev/vdc
จากนั้นคุณสามารถลบออกได้โดยใช้คำสั่งนี้:
# mdadm /dev/md0 --remove /dev/vdc
คุณสามารถเพิ่มดิสก์ใหม่ได้ เช่นเดียวกับในกรณีที่ไดรฟ์ล้มเหลว:
# mdadm /dev/md0 --add /dev/vdd
จะเพิ่ม Hot-Spare Drive ไปยังอาร์เรย์ MDADM ได้อย่างไร
คุณสามารถเพิ่ม อะไหล่ด่วน . พิเศษได้ ไดรฟ์สำหรับสร้างอาร์เรย์ RAID ใหม่อย่างรวดเร็วหากดิสก์ที่ใช้งานอยู่ตัวใดตัวหนึ่งล้มเหลว เพิ่มดิสก์ว่างลงในอุปกรณ์ md ที่คุณต้องการ:
# mdadm /dev/md0 --add /dev/vdc
เมื่อคุณตรวจสอบสถานะ RAID เราจะเห็นดิสก์สำรอง:
เพื่อให้แน่ใจว่า hot-swap ใช้งานได้ ให้ทำเครื่องหมายว่าไดรฟ์ล้มเหลวและตรวจสอบสถานะ RAID:
# mdadm /dev/md0 --fail /dev/vdb
หลังจากตรวจสอบแล้ว คุณจะเห็นว่าการสร้างอาร์เรย์ขึ้นใหม่ได้เริ่มขึ้นแล้ว
/dev/vdb ดิสก์ถูกทำเครื่องหมายว่าล้มเหลว และดิสก์ hot-spare กลายเป็นหนึ่งในดิสก์ RAID ที่ใช้งานอยู่ กระบวนการสร้างใหม่ได้เริ่มต้นขึ้น
หากต้องการเพิ่มดิสก์ปฏิบัติการเพิ่มเติมลงใน RAID คุณต้องทำตามสองขั้นตอนเหล่านี้
เพิ่มไดรฟ์ว่างลงในอาร์เรย์:
# mdadm /dev/md0 --add /dev/vdb
ตอนนี้ดิสก์นี้จะแสดงเป็น hot-spare หากต้องการเปิดใช้งาน ให้ขยายอุปกรณ์ md RAID:
# mdadm -G /dev/md0 —raid-devices=3
จากนั้นอาร์เรย์จะถูกสร้างขึ้นใหม่:
หลังจากสร้างใหม่ ดิสก์ทั้งหมดจะใช้งานได้:
จำนวนหลัก Minor RaidDevice State3 253 32 0 แอ็คทีฟซิงค์ /dev/vdc2 253 48 1 แอ็คทีฟซิงค์ /dev/vdd4 253 16 2 แอ็คทีฟซิงค์ /dev/vdb
จะลบ MDADM RAID Array ได้อย่างไร
หากคุณต้องการลบซอฟต์แวร์ไดรฟ์ RAID ของคุณอย่างถาวร ให้ใช้รูปแบบต่อไปนี้:
# umount /backup
– unmount อาร์เรย์จากไดเร็กทอรี
# mdadm -S /dev/md0
— หยุดอุปกรณ์ RAID
จากนั้นล้าง superblock ทั้งหมดบนดิสก์ที่สร้างขึ้น:
# mdadm --zero-superblock /dev/vdb
# mdadm --zero-superblock /dev/vdc
Mdmonitor:การตรวจสอบสถานะ RAID และการแจ้งเตือนทางอีเมล
mdmonitor daemon สามารถใช้เพื่อตรวจสอบสถานะของ RAID ก่อนอื่น คุณต้องสร้าง /etc/mdadm.conf ไฟล์ที่มีการกำหนดค่าอาร์เรย์ปัจจุบัน:
# mdadm –detail –scan > /etc/mdadm.conf
เพิ่มที่ส่วนท้ายของ /etc/mdadm.conf ที่อยู่อีเมลของผู้ดูแลระบบที่คุณต้องการส่งการแจ้งเตือนในกรณีที่เกิดปัญหากับ RAID:
MAILADDR [email protected]
จากนั้นเริ่มบริการ mdmonitor ใหม่โดยใช้ systemctl:
# systemctl restart mdmonitor
จากนั้นระบบจะแจ้งให้คุณทราบทางอีเมลหากมีข้อผิดพลาด mdadm หรือดิสก์ผิดพลาด
ไม่ใช้งาน MDADM RAID
ในกรณีที่ฮาร์ดแวร์ล้มเหลวหรือปิดฉุกเฉิน อาร์เรย์ RAID ของซอฟต์แวร์อาจไม่ทำงาน . ไดรฟ์ทั้งหมดถูกทำเครื่องหมายว่าไม่ทำงาน แต่ไม่มีข้อผิดพลาด
# cat /proc/mdstat
บุคลิก :[เชิงเส้น] [หลายเส้นทาง] [โจมตี0] [โจมตี1] [โจมตี6] [โจมตี5] [โจมตี4] [โจมตี10]md0 :ไม่ใช้งาน vdc[1] vdb[0]20954112 บล็อกอุปกรณ์ที่ไม่ได้ใช้มากเกินไป:<ไม่มี>ก่อน>ในกรณีนี้ คุณต้องหยุดอาร์เรย์โดยใช้คำสั่งนี้:
# mdadm --stop /dev/md0
แล้วประกอบกลับเข้าไปใหม่:
# mdadm --assemble --scan –force
หากอุปกรณ์ md ลงทะเบียนใน /etc/fstab ให้เมาต์ใหม่โดยใช้คำสั่งนี้:
มีบางวิธีในการสร้างซอฟต์แวร์ RAID ในระบบปฏิบัติการที่ติดตั้งไว้แล้ว ในกรณีนี้ คุณจะต้องคัดลอกตารางพาร์ติชั่นทั้งหมดไปยังดิสก์ใหม่ด้วยตนเอง และย้ายเนื้อหาของดิสก์ระบบไปยัง RAID ที่ประกอบด้วยดิสก์เดียวด้วยตนเอง จากนั้นล้างดิสก์แรกและเพิ่มลงใน RAID แก้ไข initramfs และตัวโหลด GRUB ดังนั้นจึงควรเลือกโหมดการติดตั้ง CentOS บนซอฟต์แวร์ RAID ระหว่างการปรับใช้เซิร์ฟเวอร์
# mount -a
mdadm ทำให้การจัดการซอฟต์แวร์ RAID บน Linux ง่ายขึ้น ในบทความนี้ ฉันได้อธิบายสิ่งสำคัญเมื่อทำงานกับเครื่องมือ และครอบคลุมคำถามทั่วไปที่เกิดขึ้นเมื่อทำงานกับ RAID โดยใช้ mdadm