ฉันจะเปิดใช้งานอาร์เรย์ MDADM RAID5 อีกครั้งได้อย่างไร


22

ฉันเพิ่งย้ายบ้านซึ่งเกี่ยวข้องกับการถอดเซิร์ฟเวอร์ของฉันและเชื่อมต่อใหม่อีกครั้ง นับตั้งแต่ทำเช่นนั้นหนึ่งในอาร์เรย์ MDADM RAID5 ของฉันจะปรากฏเป็นไม่ใช้งาน:

root@mserver:/tmp# cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] 
md1 : active raid5 sdc1[1] sdh1[2] sdg1[0]
      3907023872 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

md0 : inactive sdd1[0](S) sdf1[3](S) sde1[2](S) sdb1[1](S)
      3907039744 blocks

unused devices: <none>

ดูเหมือนว่าฉันจะพบดิสก์ทั้งหมด แต่ด้วยเหตุผลบางอย่างไม่ต้องการใช้พวกเขา

ดังนั้นฉลาก (S) หมายถึงอะไรและฉันจะบอก MDADM ให้เริ่มใช้งานอาร์เรย์อีกครั้งได้อย่างไร

[แก้ไข]ฉันลองหยุดและประกอบอาร์เรย์ด้วย-v:

root@mserver:~# mdadm --stop /dev/md0
mdadm: stopped /dev/md0

root@mserver:~# mdadm --assemble --scan -v
mdadm: /dev/sde1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 3.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdd1 to /dev/md0 as 0 (possibly out of date)
mdadm: added /dev/sdb1 to /dev/md0 as 1 (possibly out of date)
mdadm: added /dev/sdf1 to /dev/md0 as 3 (possibly out of date)
mdadm: added /dev/sde1 to /dev/md0 as 2
mdadm: /dev/md0 assembled from 1 drive - not enough to start the array.

.. และการป้อนแมวก็/proc/mdstatไม่ต่างกัน

[แก้ไข 2]ไม่แน่ใจว่าช่วยได้หรือไม่ แต่นี่คือผลลัพธ์ของการตรวจสอบแต่ละดิสก์:

root @ mserver: ~ # mdadm --examine / dev / sdb1

/dev/sdb1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 2f331560:fc85feff:5457a8c1:6e047c67 (local to host mserver)
  Creation Time : Sun Feb  1 20:53:39 2009
     Raid Level : raid5
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
     Array Size : 2930279808 (2794.53 GiB 3000.61 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0

    Update Time : Sat Apr 20 13:22:27 2013
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 6c8f71a3 - correct
         Events : 955190

         Layout : left-symmetric
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     1       8       17        1      active sync   /dev/sdb1

   0     0       8      113        0      active sync   /dev/sdh1
   1     1       8       17        1      active sync   /dev/sdb1
   2     2       8       97        2      active sync   /dev/sdg1
   3     3       8       33        3      active sync   /dev/sdc1

root @ mserver: ~ # mdadm --examine / dev / sdd1

/dev/sdd1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 2f331560:fc85feff:5457a8c1:6e047c67 (local to host mserver)
  Creation Time : Sun Feb  1 20:53:39 2009
     Raid Level : raid5
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
     Array Size : 2930279808 (2794.53 GiB 3000.61 GB)
   Raid Devices : 4
  Total Devices : 2
Preferred Minor : 0

    Update Time : Sat Apr 20 18:37:23 2013
          State : active
 Active Devices : 2
Working Devices : 2
 Failed Devices : 2
  Spare Devices : 0
       Checksum : 6c812869 - correct
         Events : 955205

         Layout : left-symmetric
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     0       8      113        0      active sync   /dev/sdh1

   0     0       8      113        0      active sync   /dev/sdh1
   1     1       0        0        1      faulty removed
   2     2       8       97        2      active sync   /dev/sdg1
   3     3       0        0        3      faulty removed

root @ mserver: ~ # mdadm --examine / dev / sde1

/dev/sde1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 2f331560:fc85feff:5457a8c1:6e047c67 (local to host mserver)
  Creation Time : Sun Feb  1 20:53:39 2009
     Raid Level : raid5
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
     Array Size : 2930279808 (2794.53 GiB 3000.61 GB)
   Raid Devices : 4
  Total Devices : 2
Preferred Minor : 0

    Update Time : Sun Apr 21 14:00:43 2013
          State : clean
 Active Devices : 1
Working Devices : 1
 Failed Devices : 2
  Spare Devices : 0
       Checksum : 6c90cc70 - correct
         Events : 955219

         Layout : left-symmetric
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     2       8       97        2      active sync   /dev/sdg1

   0     0       0        0        0      removed
   1     1       0        0        1      faulty removed
   2     2       8       97        2      active sync   /dev/sdg1
   3     3       0        0        3      faulty removed

root @ mserver: ~ # mdadm --examine / dev / sdf1

/dev/sdf1:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : 2f331560:fc85feff:5457a8c1:6e047c67 (local to host mserver)
  Creation Time : Sun Feb  1 20:53:39 2009
     Raid Level : raid5
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
     Array Size : 2930279808 (2794.53 GiB 3000.61 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0

    Update Time : Sat Apr 20 13:22:27 2013
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 6c8f71b7 - correct
         Events : 955190

         Layout : left-symmetric
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     3       8       33        3      active sync   /dev/sdc1

   0     0       8      113        0      active sync   /dev/sdh1
   1     1       8       17        1      active sync   /dev/sdb1
   2     2       8       97        2      active sync   /dev/sdg1
   3     3       8       33        3      active sync   /dev/sdc1

ฉันมีบันทึกย่อบางส่วนซึ่งแนะนำให้ใช้ไดรฟ์ที่ประกอบขึ้นในตอนแรกดังนี้:

md0 : active raid5 sdb1[1] sdc1[3] sdh1[0] sdg1[2]
      2930279808 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

[Edit3]

มองผ่านบันทึกดูเหมือนว่าเกิดขึ้นต่อไปนี้ (ขึ้นอยู่กับUpdate Timeใน--examineผลลัพธ์):

  1. sdb และ sdf ถูกกระแทกออกมาหลังจาก 13:22 ในวันที่ 20
  2. sdd ถูกกระแทกออกมาหลังจาก 18:37 ในวันที่ 20
  3. เซิร์ฟเวอร์ปิดตัวลงหลังจาก 14:00 น. ของวันที่ 1

เนื่องจากมีดิสก์สองตัวที่ลดลง (พร้อมกัน) ฉันคิดว่ามันควรจะปลอดภัยพอสมควรที่จะสมมติว่าอาเรย์นั้นไม่ได้ถูกเขียนลงไปหลังจากจุดนั้น (?) ดังนั้นมันจึงค่อนข้างปลอดภัยที่จะบังคับให้ติดตั้งใหม่ใน ลำดับที่ถูกต้อง? คำสั่งที่ปลอดภัยที่สุดในการทำเช่นนั้นคืออะไรและมีวิธีการใดโดยไม่ต้องเขียนการเปลี่ยนแปลงใด ๆ

คำตอบ:


28

Sป้ายหมายถึงดิสก์ได้รับการยกย่องว่าเป็น "อะไหล่" คุณควรลองหยุดและเริ่มอาร์เรย์อีกครั้ง:

  mdadm --stop /dev/md0
  mdadm --assemble --scan

หากต้องการรวบรวมอาร์เรย์อีกครั้งและหากไม่ได้ผลคุณอาจต้องอัปเดตของคุณmdadm.confดูตัวอย่างคำถามนี้สำหรับรายละเอียดเกี่ยวกับวิธีการทำ


พยายามที่ (และเพิ่ม-vเพื่อดูสิ่งที่เกิดขึ้น) mdadm: /dev/sdb1 is busy - skippingแต่ดิสก์ทั้งหมดที่ควรจะเพิ่มได้รับการตอบสนองตามบรรทัดต่อไปนี้:
Jon Cage

เพียงแค่หยุด md0 และอีกครั้งประกอบอาร์เรย์
krizna

พยายามแล้ว - ยังไม่มีโชค (ดูการแก้ไขของฉัน)
Jon Cage

2
ตกลงดูเหมือนว่ามันคิดว่า RAID ก็ไม่ได้ปิดตัวลงอย่างถูกต้องถ้าคุณแน่ใจว่ามันไม่ได้ลองหรือ-R ถ้าที่ล้มเหลวเกินไปสร้างใหม่อีกครั้งโดยใช้อาร์เรย์-f mdadm create /dev/md0 --assume-clean <original create options> /dev/sd[dbfe]1ถูกเตือน: ตัวเลือกทั้งหมดเหล่านี้อาจทำลายข้อมูลของคุณ
Stefan Seidel

3
ดีฉันไปเพื่อมันและmdadm --assemble --scan --forceทำงาน อาร์เรย์จะกลับมาและทำงานและฉันมีการเข้าถึงข้อมูลของฉัน :)
จอนกรง

9

คำถามนี้ค่อนข้างเก่า แต่คำตอบอาจช่วยคนที่ประสบสถานการณ์คล้ายกัน ดูที่เหตุการณ์นับจากเอาต์พุตmdadm --examine ที่คุณให้มาดูเหมือนจะใกล้พอ (955190 - สำหรับ sdb1 และ sdf1, 955219 สำหรับ sde1 และสำหรับ sdd1 คุณมี 955205) หากต่ำกว่า 40-50 นี่เป็นเรื่องปกติและในกรณีนั้นแนวทางการดำเนินการที่แนะนำคือการประกอบอาร์เรย์ของคุณด้วยตนเองบังคับให้ mdadm ยอมรับไดรฟ์แม้จะมีความแตกต่างในการนับเหตุการณ์:

หยุดอาร์เรย์:

mdadm --stop /dev/md0

จากนั้นลองประกอบอาร์เรย์อีกครั้งด้วยตนเอง:

mdadm --assemble --force /dev/md0 /dev/sdb1 /dev/sdd1 /dev/sde1 /dev/sdf1

ตรวจสอบสถานะของอาเรย์เพื่อตรวจสอบว่ารายการไดรฟ์ / โครงสร้างตกลง (ด้านล่างของคำสั่งเอาต์พุตจะแสดงว่าไดรฟ์ใดที่สถานะใดและตำแหน่งใดในอาเรย์):

mdadm --detail /dev/md0

หากโครงสร้างเป็นปกติให้ตรวจสอบความคืบหน้าการสร้างใหม่:

cat /proc/mdstat

0

คุณสามารถเปิดใช้งาน Raid md0 ด้วยคำสั่งด้านล่าง

mdadm -A /dev/md0

และคำสั่งนี้เพื่ออัปเดตไฟล์ mdadm.conf

mdadm --examine --scan >> /etc/mdadm/mdadm.conf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.