ฉันมีดิสก์ 4 แผ่นในเซิร์ฟเวอร์ของฉัน sda และ sdb ถูกรวมเข้ากับ RAID1 และมีระบบปฏิบัติการ sdc และ sdd เป็นอุปกรณ์ RAID1 ตัวที่สองที่มีกลุ่มวอลุ่มเดียวที่มี LVM จำนวนมาก sdd เสียชีวิตดังนั้น data RAID ของฉันจึงลดลง หลังจากแทนที่ sdd (แต่ก่อนที่จะเพิ่มลงใน RAID) ด้วงตัดสินใจเสียความคิดและปฏิเสธที่จะบูต วิธีที่เร็วที่สุดในการแก้ไขคือเพียงแค่ติดตั้งระบบปฏิบัติการใหม่ เนื่องจากไม่มีอะไรสำคัญในระบบปฏิบัติการ

ฉันลบ sdc และ sdd ระหว่างการติดตั้งเพื่อให้แน่ใจว่าไม่ได้เขียนทับโดยไม่ได้ตั้งใจ หลังจากการติดตั้งเสร็จสิ้น ฉันใส่ไดรฟ์กลับเข้าไป และ Centos พบกลุ่มวอลุ่มของฉันโดยอัตโนมัติ sdc ไม่ได้เป็นส่วนหนึ่งของอาร์เรย์ RAID อีกต่อไป

มันถูกแบ่งพาร์ติชัน /dev/sdc1 Linux raid auto detect

คำถามของฉันคือ - ฉันจะใช้ mdadm เพื่อสร้างอาร์เรย์ sdc1,sdd1 RAID ใหม่โดยไม่สูญเสียข้อมูลบน sdc ได้อย่างไร

การเดาที่ดีที่สุดของฉันคือการสร้างอาร์เรย์ด้วย sdc1 ก่อน จากนั้นจึงเพิ่ม sdd1 หลัง (ดังนั้นจึงสร้างใหม่จาก sdc เป็น sdd)

แก้ไข หลังจากดูผลลัพธ์ของ /cat/mdstat อีกครั้ง ฉันสังเกตเห็นสิ่งแปลก ๆ ดิสก์ข้อมูลของฉันปรากฏขึ้นโดยเป็นส่วนหนึ่งของอาร์เรย์ RAID แต่หนึ่งในอาร์เรย์ OS RAID ของฉันหายไป (และ fstab พยายามเชื่อมโยงการแลกเปลี่ยนของฉันกับดิสก์ข้อมูลของฉัน)

fdisk /dev/sda
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      257008+  fd  Linux raid autodetect
/dev/sda2              33        2072    16386300   fd  Linux raid autodetect
/dev/sda3            2073       30401   227552692+  fd  Linux raid autodetect

md1 ควรจะเป็น /dev/sda2 และ /dev/sdb2 แต่มันหายไป

cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sdb1[1] sda1[0]
      256896 blocks [2/2] [UU]

md3 : active raid1 sdc1[0]
      1465135936 blocks [2/1] [U_]

md0 : active raid1 sdb3[1] sda3[0]
      227552576 blocks [2/2] [UU]

เมื่อฉันพยายามสร้าง md2 ฉันจะได้รับ:

[[email protected] ~]# mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/sda2 /dev/sdb2
mdadm: /dev/sda2 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Wed Aug 15 02:48:06 2012
mdadm: /dev/sdb2 appears to be part of a raid array:
    level=raid1 devices=2 ctime=Wed Aug 15 02:48:06 2012
Continue creating array? n

mdadm scan ก็แสดงว่าหายไป

[[email protected] ~]# mdadm --detail --scan
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=0.90 UUID=51ef54bd:770bb58e:90183df1:d82a79c7
ARRAY /dev/md3 level=raid1 num-devices=2 metadata=0.90 UUID=2d7dfb1e:6b091396:a7558ec2:4d288e6f
ARRAY /dev/md2 level=raid1 num-devices=2 metadata=0.90 UUID=ecdd769b:c49d51b6:fe43f166:465b7073

ฉันไม่แน่ใจว่าทำไม /dev/md1 ตัดสินใจหลงทางหลังจากรีบูต แต่จะปลอดภัยไหมที่จะสร้างใหม่

answer

ใช่ คุณต้องเริ่มอาร์เรย์ในโหมดลดระดับโดยใช้ไดรฟ์ sdc จากนั้นคุณสามารถเพิ่มไดรฟ์ sdd ที่ล้มเหลวอีกครั้งได้

ฉันมักจะใช้คำสั่ง mdadm พร้อมตัวเลือก --assemble เพื่อรวบรวมและเริ่มอาร์เรย์ในโหมดลดระดับโดยใช้ดิสก์เดียวเท่านั้น บางอย่างเช่นนี้:

$ mdadm --assemble /dev/md1 /dev/sda2

คุณอาจต้องใช้-fตัวเลือกเพื่อบังคับให้เริ่มอาร์เรย์ที่เสื่อมคุณภาพ

หากใช้งานได้ดี คุณสามารถดำเนินการได้โดยเพิ่มไดรฟ์ที่เปลี่ยนใหม่อีกครั้ง

$ mdadm --re-add /dev/md1 /dev/sdb2

ฉันใช้คำสั่งเหล่านี้หลายครั้งก่อนหน้านี้และไม่พบการสูญเสียข้อมูลใดๆ พวกเขาทำงานได้อย่างราบรื่นเมื่อไดรฟ์เป็นปกติ

ข้อควรระวัง: โปรดสำรองข้อมูลดิสก์ของคุณก่อนที่จะรันคำสั่งดังกล่าว เพื่อหลีกเลี่ยงการสูญเสียข้อมูลที่อาจเกิดขึ้น