Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

การกำหนดค่าซอฟต์แวร์ RAID บน Linux โดยใช้ MDADM

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 .

การกำหนดค่าซอฟต์แวร์ RAID บน Linux โดยใช้ MDADM

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 บน Linux โดยใช้ MDADM

หากคุณแสดงรายการข้อมูลเกี่ยวกับดิสก์ของคุณ คุณจะเห็นไดรฟ์ 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 บน Linux โดยใช้ MDADM

สร้างไดเร็กทอรีสำรองและติดตั้งอุปกรณ์ 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 บน Linux โดยใช้ MDADM

จะดูสถานะหรือตรวจสอบความสมบูรณ์ของอาร์เรย์ RAID ได้อย่างไร

ในการตรวจสอบความสมบูรณ์ของข้อมูลในอาร์เรย์ ให้ใช้คำสั่งต่อไปนี้:

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

จากนั้นดูผลลัพธ์ของไฟล์ต่อไปนี้:

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

หากคุณได้รับ 0 , อาร์เรย์ของคุณใช้ได้:

การกำหนดค่าซอฟต์แวร์ RAID บน Linux โดยใช้ MDADM

หากต้องการหยุดการตรวจสอบ ให้เรียกใช้สิ่งต่อไปนี้:

#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 บน Linux โดยใช้ MDADM

ลองพิจารณารายการหลักในรายการคำสั่ง:

  • เวอร์ชัน – รุ่นข้อมูลเมตา
  • เวลาสร้าง – วันที่และเวลาของการสร้าง 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

การกำหนดค่าซอฟต์แวร์ RAID บน Linux โดยใช้ MDADM

หากคุณต้องการลบไดรฟ์ที่ใช้งานได้ออกจากอาร์เรย์และแทนที่ ขั้นแรกให้แท็กไดรฟ์ว่าเป็นไดรฟ์ที่ล้มเหลว:

# 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 เราจะเห็นดิสก์สำรอง:

การกำหนดค่าซอฟต์แวร์ RAID บน Linux โดยใช้ MDADM

เพื่อให้แน่ใจว่า hot-swap ใช้งานได้ ให้ทำเครื่องหมายว่าไดรฟ์ล้มเหลวและตรวจสอบสถานะ RAID:

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

หลังจากตรวจสอบแล้ว คุณจะเห็นว่าการสร้างอาร์เรย์ขึ้นใหม่ได้เริ่มขึ้นแล้ว

การกำหนดค่าซอฟต์แวร์ RAID บน Linux โดยใช้ MDADM

/dev/vdb ดิสก์ถูกทำเครื่องหมายว่าล้มเหลว และดิสก์ hot-spare กลายเป็นหนึ่งในดิสก์ RAID ที่ใช้งานอยู่ กระบวนการสร้างใหม่ได้เริ่มต้นขึ้น

หากต้องการเพิ่มดิสก์ปฏิบัติการเพิ่มเติมลงใน RAID คุณต้องทำตามสองขั้นตอนเหล่านี้

เพิ่มไดรฟ์ว่างลงในอาร์เรย์:

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

ตอนนี้ดิสก์นี้จะแสดงเป็น hot-spare หากต้องการเปิดใช้งาน ให้ขยายอุปกรณ์ md RAID:

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

จากนั้นอาร์เรย์จะถูกสร้างขึ้นใหม่:

การกำหนดค่าซอฟต์แวร์ RAID บน Linux โดยใช้ MDADM

หลังจากสร้างใหม่ ดิสก์ทั้งหมดจะใช้งานได้:

จำนวนหลัก 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

ไฟล์ 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 ให้เมาต์ใหม่โดยใช้คำสั่งนี้:

# mount -a

มีบางวิธีในการสร้างซอฟต์แวร์ RAID ในระบบปฏิบัติการที่ติดตั้งไว้แล้ว ในกรณีนี้ คุณจะต้องคัดลอกตารางพาร์ติชั่นทั้งหมดไปยังดิสก์ใหม่ด้วยตนเอง และย้ายเนื้อหาของดิสก์ระบบไปยัง RAID ที่ประกอบด้วยดิสก์เดียวด้วยตนเอง จากนั้นล้างดิสก์แรกและเพิ่มลงใน RAID แก้ไข initramfs และตัวโหลด GRUB ดังนั้นจึงควรเลือกโหมดการติดตั้ง CentOS บนซอฟต์แวร์ RAID ระหว่างการปรับใช้เซิร์ฟเวอร์

mdadm ทำให้การจัดการซอฟต์แวร์ RAID บน Linux ง่ายขึ้น ในบทความนี้ ฉันได้อธิบายสิ่งสำคัญเมื่อทำงานกับเครื่องมือ และครอบคลุมคำถามทั่วไปที่เกิดขึ้นเมื่อทำงานกับ RAID โดยใช้ mdadm