วิธีการกู้คืนอาร์เรย์ mdadm บน Synology NAS ด้วยไดรฟ์ในสถานะ "E"


12

Synology มีเวอร์ชันที่กำหนดเองซึ่งประกอบด้วยไดรเวอร์ md และชุดเครื่องมือ mdadm ที่เพิ่มค่าสถานะ 'DriveError' ให้กับโครงสร้าง rdev-> ค่าสถานะในเคอร์เนล

ผลกระทบสุทธิ - หากคุณโชคร้ายพอที่จะได้รับความล้มเหลวของอาเรย์ (ไดรฟ์แรก), รวมกับข้อผิดพลาดในไดรฟ์ที่สอง - อาเรย์จะเข้าสู่สถานะที่ไม่ให้คุณซ่อมแซม / สร้างอาเรย์ใหม่แม้ว่าการอ่านจากไดรฟ์ ละเอียด.

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

การสนับสนุนด้าน Synology มีประโยชน์น้อยกว่า (และส่วนใหญ่ไม่ตอบสนอง) และจะไม่แบ่งปันข้อมูลใด ๆ ที่ทั้งหมดเกี่ยวกับการโจมตีในกล่อง

เนื้อหาของ / proc / mdstat:

ds1512-ent> cat /proc/mdstat 
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
md2 : active raid5 sdb5[1] sda5[5](S) sde5[4](E) sdd5[3] sdc5[2]
      11702126592 blocks super 1.2 level 5, 64k chunk, algorithm 2 [5/4] [_UUUE]

md1 : active raid1 sdb2[1] sdd2[3] sdc2[2] sde2[4] sda2[0]
      2097088 blocks [5/5] [UUUUU]

md0 : active raid1 sdb1[1] sdd1[3] sdc1[2] sde1[4] sda1[0]
      2490176 blocks [5/5] [UUUUU]

unused devices: <none>

สถานะจาก mdadm --detail / dev / md2:

/dev/md2:
        Version : 1.2
  Creation Time : Tue Aug  7 18:51:30 2012
     Raid Level : raid5
     Array Size : 11702126592 (11160.02 GiB 11982.98 GB)
  Used Dev Size : 2925531648 (2790.00 GiB 2995.74 GB)
   Raid Devices : 5
  Total Devices : 5
    Persistence : Superblock is persistent

    Update Time : Fri Jan 17 20:48:12 2014
          State : clean, degraded
 Active Devices : 4
Working Devices : 5
 Failed Devices : 0
  Spare Devices : 1

         Layout : left-symmetric
     Chunk Size : 64K

           Name : MyStorage:2
           UUID : cbfdc4d8:3b78a6dd:49991e1a:2c2dc81f
         Events : 427234

    Number   Major   Minor   RaidDevice State
       0       0        0        0      removed
       1       8       21        1      active sync   /dev/sdb5
       2       8       37        2      active sync   /dev/sdc5
       3       8       53        3      active sync   /dev/sdd5
       4       8       69        4      active sync   /dev/sde5

       5       8        5        -      spare   /dev/sda5

ดังที่คุณเห็น - / dev / sda5 ถูกเพิ่มเข้าไปในอาร์เรย์อีกครั้ง (เป็นไดรฟ์ที่ล้มเหลวทันที) - แต่ถึงแม้ว่า md จะเห็นว่าไดรฟ์นั้นว่าง แต่มันจะไม่สร้างขึ้นมาใหม่ / dev / sde5 ในกรณีนี้คือไดรฟ์ปัญหาด้วยสถานะ (E) DiskError

ฉันได้ลองหยุดอุปกรณ์ md กำลังเรียกใช้ reassembles กำลังลบ / readding sda5 จากอุปกรณ์ / etc ไม่มีการเปลี่ยนแปลงพฤติกรรม

ฉันสามารถสร้างอาร์เรย์ใหม่ได้อย่างสมบูรณ์ด้วยคำสั่งต่อไปนี้:

mdadm --stop /dev/md2
mdadm --verbose \
   --create /dev/md2 --chunk=64 --level=5 \
   --raid-devices=5 missing /dev/sdb5 /dev/sdc5 /dev/sdd5 /dev/sde5

ซึ่งนำอาร์เรย์กลับสู่สถานะนี้:

md2 : active raid5 sde5[4] sdd5[3] sdc5[2] sdb5[1]
      11702126592 blocks super 1.2 level 5, 64k chunk, algorithm 2 [5/4] [_UUUU]

ฉันเพิ่ม / dev / sda5 อีกครั้ง:

mdadm --manage /dev/md2 --add /dev/sda5

หลังจากนั้นก็เริ่มสร้างใหม่:

md2 : active raid5 sda5[5] sde5[4] sdd5[3] sdc5[2] sdb5[1]
      11702126592 blocks super 1.2 level 5, 64k chunk, algorithm 2 [5/4] [_UUUU]
      [>....................]  recovery =  0.1% (4569508/2925531648) finish=908.3min speed=53595K/sec

สังเกตตำแหน่งของไดรฟ์ "หายไป" ที่ตรงกับตำแหน่งที่แน่นอนของสล็อตที่หายไป

เมื่อเสร็จสิ้นฉันคิดว่าฉันอาจดึงไดรฟ์ที่น่าสงสัยและสร้างใหม่อีกครั้ง

ฉันกำลังมองหาคำแนะนำใด ๆ ว่ามีวิธี "น่ากลัวน้อยกว่า" ในการซ่อมแซมนี้หรือไม่หรือใครก็ตามที่เคยผ่านประสบการณ์นี้ด้วยอาร์เรย์ Synology และรู้วิธีบังคับให้สร้างใหม่นอกเหนือจากการใช้อุปกรณ์ md ออฟไลน์และ สร้างอาร์เรย์ใหม่ตั้งแต่เริ่มต้น


ฉันพบว่าตัวเองอยู่ในสถานการณ์ที่คล้ายคลึงกัน คุณแก้ไขปัญหานี้สำเร็จหรือไม่
dvorak

ใช่ฉันสามารถรับอาร์เรย์ใหม่ได้ตามขั้นตอนด้านบน ฉันติดตามมันด้วยการล้างและเปลี่ยนจาก R5 เป็น R6 - สาเหตุ ณ จุดนี้ฉันไม่พอใจอย่างจริงจังกับพฤติกรรม "tank the array ทั้งหมด" ของ Synology ที่ฉันต้องการให้แน่ใจว่าทนมากกว่าหนึ่งไดรฟ์ "ล้มเหลว " ในกรณีของเราไดรฟ์ที่สองที่มีข้อผิดพลาด "ผิดพลาด" ผ่านการทดสอบแบบขยายที่ชาญฉลาดโดยไม่มีปัญหาแม้แต่ครั้งเดียว
Nathan Neulinger

ขอบคุณสำหรับคำแนะนำที่เป็นประโยชน์ ฉันไม่มั่นใจเกินไปกับสิ่งเหล่านี้ฉันไม่มีผู้เชี่ยวชาญด้านการจู่โจม ตอนนี้ฉันประสบปัญหาเดียวกัน แต่ในกรณีของฉันฉันมีอาร์เรย์ RAID 1 ดิสก์เดียว (/ dev / md3) โดยที่ / dev / sde3 ถูกทำเครื่องหมายด้วย [E] ที่หวั่น ฉันคิดว่ามันน่าจะเป็นไปได้สำหรับฉันที่จะทำตามขั้นตอนเดียวกับที่คุณทำ แต่เนื่องจากเป็นดิสก์เดี่ยวของอาเรย์ฉันจึงไม่รู้ว่ามันจะทำอะไร ;-) อย่างไรก็ตามคำสั่ง mdadm --stop / dev / md3 ล้มเหลว (อุปกรณ์หรือทรัพยากรไม่ว่าง) ฉันเดาว่าฉันจะใช้ Google อีกสักครู่ .. =)
dSebastien

หากคุณไม่สามารถหยุดอาร์เรย์ได้ดูเหมือนว่ามีบางอย่างกำลังใช้งานอยู่ - เช่นถูกเมานต์หรือมีงานอื่นที่ทำงานกับอุปกรณ์นั้น
Nathan Neulinger

2
โชคดีสำหรับฉัน Synology ช่วยฉันแก้ไขปัญหาได้ พวกเขาใจดีพอที่จะให้คำสั่งที่ฉันใช้ ฉันใส่ข้อมูลลงในบล็อกของฉันในกรณีที่มีคนอื่นประสบ
dSebastien

คำตอบ:


3

นอกเหนือจากวิธีแก้ไขปัญหาที่ฉันพบหลังจากฉันพบปัญหาเดียวกัน ฉันติดตามโพสต์บล็อกของdSebastienเกี่ยวกับวิธีสร้างอาร์เรย์อีกครั้ง:

ฉันพบว่าวิธีการสร้างอาร์เรย์นั้นทำงานได้ดีกว่าวิธีข้างต้นนี้ อย่างไรก็ตามหลังจากที่สร้างอาร์เรย์ขึ้นมาอีกครั้งโวลุ่มดังกล่าวก็ยังไม่ปรากฏบนเว็บอินเตอร์เฟส LUN ของฉันไม่แสดงเลย โดยทั่วไปจะแสดงอาร์เรย์ใหม่โดยไม่มีการกำหนดค่า ฉันติดต่อฝ่ายสนับสนุนของ Synology และพวกเขา remoting เพื่อแก้ไขปัญหา แต่น่าเสียดายที่พวกเขา remoting ในขณะที่ฉันออกไปจากคอนโซล ฉันจัดการเพื่อจับเซสชันแม้ว่าและดูสิ่งที่พวกเขาทำ ในขณะที่พยายามกู้คืนข้อมูลบางส่วนไดรฟ์ขัดข้องอีกครั้งและฉันกลับมาที่สถานการณ์เดิม ฉันสร้างอาร์เรย์ขึ้นใหม่ในบล็อกของ dSebastien จากนั้นตรวจสอบเซสชันของซินโนโลยีเพื่อทำการอัปเดต หลังจากใช้คำสั่งด้านล่างอาร์เรย์และ LUN ของฉันปรากฏบนเว็บอินเตอร์เฟสและฉันสามารถทำงานกับพวกเขาได้ ฉันไม่มีประสบการณ์ใน linux แต่มันเป็นคำสั่งที่ฉันใช้ในสถานการณ์ของฉัน หวังว่านี่จะช่วยคนอื่นได้ แต่โปรดใช้โดยยอมรับความเสี่ยงของคุณเอง เป็นการดีที่สุดที่จะติดต่อฝ่ายสนับสนุนของ Synology และให้พวกเขาแก้ไขปัญหานี้ให้คุณเนื่องจากสถานการณ์นี้อาจแตกต่างจากของคุณ

DiskStation> synocheckiscsitrg
synocheckiscsitrg: Pass 

DiskStation> synocheckshare
synocheckshare: Pass SYNOICheckShare()
synocheckshare: Pass SYNOICheckShareExt()
synocheckshare: Pass SYNOICheckServiceLink()
synocheckshare: Pass SYNOICheckAutoDecrypt()
synocheckshare: Pass SYNOIServiceShareEnableDefaultDS()

DiskStation> spacetool --synoblock-enum
****** Syno-Block of /dev/sda ******
//I've removed the output. This should display info about each disk in your array

DiskStation> vgchange -ay
  # logical volume(s) in volume group "vg1" now active

DiskStation> dd if=/dev/vg1/syno_vg_reserved_area of=/root/reserved_area.img
24576+0 records in
24576+0 records out

DiskStation> synospace --map_file -d
Success to dump space info into '/etc/space,/tmp/space'

DiskStation> synocheckshare
synocheckshare: Pass SYNOICheckShare()
synocheckshare: Pass SYNOICheckShareExt()
synocheckshare: Pass SYNOICheckServiceLink()
synocheckshare: Pass SYNOICheckAutoDecrypt()
synocheckshare: Pass SYNOIServiceShareEnableDefaultDS()

DiskStation> synocheckiscsitrg
synocheckiscsitrg: Not Pass, # conflict 

DiskStation> synocheckiscsitrg
synocheckiscsitrg: Pass 

1

นอกจากนี้อีก: ฉันได้รับปัญหาที่คล้ายกันมากกับอุปกรณ์ระดับหนึ่งดิสก์ / RAID ของฉัน

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

ดิสก์ของฉันอ่านข้อผิดพลาดในบล็อกหนึ่งบล็อกข้อความในบันทึกของระบบ ( dmesg) คือ:

[4421039.097278] ata1.00: read unc at 105370360
[4421039.101579] lba 105370360 start 9437184 end 5860528064
[4421039.106917] sda3 auto_remap 0
[4421039.110097] ata1.00: exception Emask 0x0 SAct 0x2 SErr 0x0 action 0x6
[4421039.116744] ata1.00: edma_err_cause=00000084 pp_flags=00000003, dev error, EDMA self-disable
[4421039.125410] ata1.00: failed command: READ FPDMA QUEUED
[4421039.130767] ata1.00: cmd 60/00:08:b8:d2:47/02:00:06:00:00/40 tag 1 ncq 262144 in
[4421039.130772]          res 41/40:00:f8:d2:47/00:00:06:00:00/40 Emask 0x409 (media error) <F>
[4421039.146855] ata1.00: status: { DRDY ERR }
[4421039.151064] ata1.00: error: { UNC }
[4421039.154758] ata1: hard resetting link
[4421039.667234] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl F300)
[4421039.887286] ata1.00: configured for UDMA/133
[4421039.891777] ata1: UNC RTF LBA Restored
[4421039.895745] ata1: EH complete

ไม่กี่วินาทีต่อมาฉันได้รับVolume 1 has crashedเมลที่น่ากลัวจากอุปกรณ์ของฉัน

- ข้อจำกัดความรับผิดชอบ: อย่าลืมเปลี่ยนชื่ออุปกรณ์ด้วยชื่อของคุณและอย่าคัดลอกและวางคำสั่งเหล่านี้เนื่องจากอาจทำให้สิ่งเลวร้ายลง! -

หลังจากหยุด smb ฉันสามารถติดตั้งพาร์ติชั่นใหม่แบบอ่านอย่างเดียวและเรียกใช้ e2fsk ด้วยการตรวจสอบ badblocks ( -c):

umount /dev/md2
e2fsck -C 0 -v -f -c /dev/md2

(อาจใช้e2fsck -C 0 -p -v -f -c /dev/md2เพื่อเรียกใช้แบบไม่ต้องใส่ข้อมูลได้แม้ว่าจะไม่ได้ผลในกรณีของฉันเพราะข้อผิดพลาดจะต้องแก้ไขด้วยตนเองดังนั้นฉันจึงต้องรีสตาร์ท e2fsck สรุป: -p ไม่เข้าท่ามากนัก กรณีที่เกิดข้อผิดพลาดของดิสก์)

แม้ว่า e2fsck สามารถแก้ไขข้อผิดพลาดได้และ smartctl ยังไม่พบการเพิ่มขึ้นของ Raw_Read_Error_Rate อีกต่อไป แต่ปริมาณยังคงไม่เมาในโหมดอ่าน - เขียนโดยอุปกรณ์ DSM ยังคงแสดง "โวลุ่มล้มเหลว"

ดังนั้นฉันเปิดตั๋วด้วยการสนับสนุน ใช้เวลาสักครู่เพื่อให้ได้สิ่งที่ต้องทำก่อน แต่ในที่สุดพวกเขาก็ซ่อมมันด้วยการสร้างอาร์เรย์ RAID ขึ้นใหม่ด้วย:

synospace --stop-all-spaces
syno_poweroff_task -d 
mdadm -Sf /dev/md2
mdadm -AfR /dev/md2 /dev/sda3

โปรดตรวจสอบชื่ออุปกรณ์ของคุณ ( /dev/mdXและ/dev/sdaX) ก่อนทำอะไร cat /proc/mdstatจะแสดงข้อมูลที่เกี่ยวข้อง

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