ให้ฉันรับทราบก่อนว่าฉันทำผิดพลาดและฉันมีการสำรองข้อมูลส่วนใหญ่แต่ไม่ใช่ข้อมูลทั้งหมดใน RAID นี้ ฉันยังมีความหวังในการกู้คืนข้อมูลที่เหลือ ฉันไม่มีเงินพอที่จะนำไดรฟ์ไปยัง บริษัท ผู้เชี่ยวชาญด้านการกู้คืน
ความผิดพลาด # 0 ไม่มีการสำรองข้อมูล 100% ฉันรู้ว่า.
ฉันมีmdadm
ระบบ RAID5 4x3TB ไดรฟ์ / dev / SD [จะ] /dev/sd[b-e]1
ทั้งหมดที่มีหนึ่งพาร์ทิชัน ฉันรู้ว่า RAID5 บนไดรฟ์ที่มีขนาดใหญ่มากมีความเสี่ยง แต่ฉันก็ทำเช่นนั้นต่อไป
เหตุการณ์ล่าสุด
RAID ลดลงหลังจากความล้มเหลวของไดรฟ์สองตัว หนึ่งไดรฟ์ [/ dev / sdc] หายไปจริงๆอีกอันหนึ่ง [/ dev / sde] กลับมาขึ้นหลังจากวัฏจักรพลังงาน แต่ไม่ได้ถูกเพิ่มเข้าไปใน RAID อีกครั้งโดยอัตโนมัติ ดังนั้นฉันจึงเหลืออุปกรณ์ RAID 4 ตัวที่มีเพียง 2 ไดรฟ์ที่ใช้งานอยู่ [/ dev / sdb และ / dev / sdd]
ความผิดพลาด # 1 ไม่ได้ใช้ dd สำเนาของไดรฟ์เพื่อกู้คืน RAID ฉันไม่มีไดรฟ์หรือเวลา ความผิดพลาด # 2 ไม่ได้ทำการสำรอง superblock และmdadm -E
ไดรฟ์ที่เหลืออยู่
พยายามกู้คืน
ฉันประกอบชิ้นส่วน RAID อีกครั้งในโหมดที่ลดระดับลงด้วย
mdadm --assemble --force /dev/md0, using /dev/sd[bde]1.
ฉันสามารถเข้าถึงข้อมูลของฉันได้ ฉันแทนที่/dev/sdc
ด้วยอะไหล่; ว่าง; ไดรฟ์ที่เหมือนกัน
ฉันลบเก่า/dev/sdc1
ออกจาก RAID
mdadm --fail /dev/md0 /dev/sdc1
ความผิดพลาด # 3 ไม่ทำสิ่งนี้ก่อนเปลี่ยนไดรฟ์
ฉันแบ่งพาร์ติชันใหม่/dev/sdc
แล้วเพิ่มลงใน RAID
mdadm --add /dev/md0 /dev/sdc1
จากนั้นจึงเริ่มกู้คืน RAID ETA 300 นาที ฉันติดตามกระบวนการผ่าน/proc/mdstat
ไปที่ 2% แล้วก็ไปทำสิ่งอื่น
ตรวจสอบผลลัพธ์
หลายชั่วโมง (แต่น้อยกว่า 300 นาที) ในภายหลังฉันตรวจสอบกระบวนการ /dev/sde1
มันได้หยุดเนื่องจากข้อผิดพลาดในการอ่าน
นี่คือที่ที่ปัญหาเริ่มต้นจริง
ฉันลบออก/dev/sde1
จาก RAID และเพิ่มใหม่อีกครั้ง ฉันจำไม่ได้ว่าทำไมฉันถึงทำอย่างนี้ มันก็สาย.
mdadm --manage /dev/md0 --remove /dev/sde1
mdadm --manage /dev/md0 --add /dev/sde1
อย่างไรก็ตาม/dev/sde1
ถูกทำเครื่องหมายเป็นอะไหล่ ดังนั้นฉันจึงตัดสินใจสร้างอาร์เรย์ทั้งหมดอีกครั้งโดยใช้ - ทำความสะอาดโดยใช้สิ่งที่ฉันคิดว่าเป็นลำดับที่ถูกต้องและ/dev/sdc1
หายไป
mdadm --create /dev/md0 --assume-clean -l5 -n4 /dev/sdb1 missing /dev/sdd1 /dev/sde1
ใช้งานได้ แต่ระบบไฟล์ไม่ได้รับการยอมรับขณะพยายามเมาต์ (ควรเป็น EXT4)
สั่งซื้ออุปกรณ์
จากนั้นฉันตรวจสอบข้อมูลสำรองล่าสุดที่ฉันมี/proc/mdstat
และพบคำสั่งไดรฟ์
md0 : active raid5 sdb1[0] sde1[4] sdd1[2] sdc1[1]
8790402048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
จากนั้นฉันก็จำได้ว่า RAID ตัวนี้ได้รับความเสียหายจากไดรฟ์ประมาณหนึ่งปีที่ผ่านมาและกู้คืนมาได้โดยการเปลี่ยนไดรฟ์ที่ชำรุดด้วยอะไหล่สำรอง นั่นอาจทำให้สัญญาณรบกวนอุปกรณ์สั่งเล็กน้อย ... ดังนั้นจึงไม่มีไดรฟ์ [3] แต่มีเพียง [0], [1], [2] และ [4]
ฉันพยายามค้นหาลำดับไดรฟ์ด้วยสคริปต์ Permute_array: https://raid.wiki.kernel.org/index.php/Permute_array.plแต่ไม่พบคำสั่งที่ถูกต้อง
คำถาม
ตอนนี้ฉันมีคำถามสองข้อหลัก:
ฉันเมายิ่งยวด superblock ทั้งหมดบนไดรฟ์ แต่ให้:
mdadm --create --assume-clean
คำสั่ง (ดังนั้นฉันไม่ควรเขียนทับข้อมูลตัวเองอยู่
/dev/sd[bde]1
ฉันว่าถูกต้องหรือไม่ในทางทฤษฎีแล้ว RAID สามารถกู้คืนได้ (สมมติว่าสักครู่/dev/sde1
ก็โอเค) ถ้าฉันเพิ่งพบลำดับอุปกรณ์ที่ถูกต้อง?จำเป็นหรือไม่ที่
/dev/sde1
จะต้องระบุหมายเลขอุปกรณ์ [4] ใน RAID? เมื่อฉันสร้างมันด้วยmdadm --create /dev/md0 --assume-clean -l5 -n4 \ /dev/sdb1 missing /dev/sdd1 /dev/sde1
มันถูกกำหนดหมายเลข [3] ฉันสงสัยว่าเกี่ยวข้องกับการคำนวณของบล็อกพาริตีหรือไม่ หากปรากฏว่ามีความสำคัญฉันจะสร้างอาร์เรย์ใหม่โดย
/dev/sdb1[0]
ไม่มี [1] หายไปได้/dev/sdd1[2]
/dev/sde1[4]
อย่างไร หากฉันสามารถใช้งานได้ฉันสามารถเริ่มใช้งานได้ในโหมดลดระดับและเพิ่มไดรฟ์ใหม่/dev/sdc1
และปล่อยให้ซิงค์อีกครั้ง
ไม่เป็นไรหากคุณต้องการชี้ให้ฉันเห็นว่านี่อาจไม่ใช่วิธีการที่ดีที่สุด แต่คุณจะพบว่าฉันเข้าใจสิ่งนี้ มันจะดีถ้าใครมีคำแนะนำใด ๆ