ถาม: MDADM mismatch_cnt> 0. มีวิธีใดบ้างในการระบุว่าบล็อกใดที่ไม่เห็นด้วย?


12

ตกลง. หลังจากการขัดจังหวะเป็นประจำ MDADM RAID5 ของฉันกำลังรายงาน mismatch_cnt = 16 ตามที่ฉันเข้าใจซึ่งหมายความว่าในขณะที่ไม่มีอุปกรณ์รายงานข้อผิดพลาดการอ่านมี 16 บล็อกซึ่งข้อมูลและพาริตีไม่เห็นด้วย

คำถาม # 1: หนึ่งสามารถรับรายการของบล็อกเหล่านี้หรือไม่

คำถาม # 2: สมมติว่า # 1 เป็นไปได้เนื่องจากระบบไฟล์พื้นฐานคือ EXT4 มีวิธีในการระบุไฟล์ที่เกี่ยวข้องกับบล็อกเหล่านี้หรือไม่

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

(ฉันควรสังเกตุว่าฉันเรียกใช้ตัวขัด RAID ด้วยตัวเลือก 'ตรวจสอบ' เท่านั้นการใช้ตัวขัดด้วยตัวเลือก 'ซ่อม' ดูเหมือนอันตรายอย่างยิ่งเพราะ MDADM รู้เพียงว่าข้อมูลหรือพาริตี้ผิด แต่ไม่รู้ ดูเหมือนว่ามีโอกาส 50% ที่ MDADM จะเดาผิดและสร้างข้อมูลที่ไม่ถูกต้องขึ้นมาใหม่ดังนั้นความปรารถนาของฉันที่จะรู้ว่าไฟล์ใดบ้างที่อาจได้รับผลกระทบเพื่อที่ฉันจะสามารถกู้คืนไฟล์เหล่านั้นได้จากการสำรองข้อมูล

ข้อเสนอแนะใด ๆ ชื่นชมอย่างมาก!


ตรวจสอบdmesgหรือ / var / log / syslog?
psusi

สวัสดี ใกล้เท่าที่ฉันจะบอกได้มีเพียงข้อความเดียวที่ถูกบันทึกไว้ใน syslog โดย scrubber คือข้อความเริ่มต้นและหยุด ไม่มีข้อความที่เกี่ยวข้องกับการบันทึกที่ไม่ตรงกัน
arcasinky

ดูicheck+ ncheckในdebugfsสำหรับการระบุไฟล์ตามเซกเตอร์ชดเชย
sch

ฉันพยายามเพิ่มการบันทึกสำหรับหมายเลขเซกเตอร์ ตอนนี้ฉันกำลังพยายามคิดว่าจะทำอย่างไรต่อไป: unix.stackexchange.com/questions/266432/…
Peter Cordes

2
ฉันรู้ว่าไม่มีอะไรบอกว่าดิสก์ไม่ดี แต่ตรวจสอบพวกเขา ใช้แพ็คเกจ smartmontools ในการทำเช่นนั้นสำหรับแต่ละดิสก์ (เช่นในsmartctl -a /dev/sdaและต่อ ๆ ไป) หรือใช้วิธีอื่นที่คุณต้องใช้ในการทดสอบ SMART แบบสั้น ๆ ในแต่ละดิสก์แล้วพิมพ์รายงานฉบับเต็ม เป็นไปได้มากว่าหนึ่งในพวกเขากำลังจะตายและใช้ความเลวร้ายจำนวนมากในการกระตุ้นการเตือนภัยสุขภาพโดยรวมของ SMART
Spooler

คำตอบ:


1

ขออภัย 'ตรวจสอบ' เขียนกลับไปยังอาร์เรย์เมื่อพบข้อผิดพลาด - ดูhttps://www.apt-browse.org/browse/ubuntu/trusty/main/amd64/mdadm/3.2.5-5ubuntu4/file /usr/share/doc/mdadm/README.checkarray

'check' เป็นการดำเนินการแบบอ่านอย่างเดียวแม้ว่าบันทึกของเคอร์เนลอาจแนะนำเป็นอย่างอื่น (เช่น / proc / mdstat และข้อความเคอร์เนลหลายข้อความจะกล่าวถึง "resync") โปรดดูคำถามที่ 21 ของคำถามที่พบบ่อย

อย่างไรก็ตามหากในขณะที่อ่านเกิดข้อผิดพลาดในการอ่านการตรวจสอบจะทำให้เกิดการตอบสนองตามปกติต่อการอ่านข้อผิดพลาดซึ่งจะสร้างข้อมูล 'ถูกต้อง' และพยายามเขียนออกมา - ดังนั้นจึงเป็นไปได้ว่า 'เช็ค' จะเรียก เขียน. อย่างไรก็ตามในกรณีที่ไม่มีข้อผิดพลาดในการอ่านมันเป็นแบบอ่านอย่างเดียว

... ดังนั้นอาจจะสายเกินไปที่จะรวบรวมข้อมูลที่คุณต้องการขออภัย

สำหรับระยะยาวมันคุ้มค่าที่จะทราบว่า RAID5 (และ 6 และ 1) ไม่มีการป้องกันบิต - เน่าซึ่งน่าจะเป็นสถานการณ์ที่คุณพบ เมื่อข้อมูลในแผ่นดิสก์แผ่นหนึ่งมีข้อมูลไม่ดีพวกเขาไม่มีทางกำหนดได้ว่าข้อมูลใดดีเทียบกับไม่ดี ฉันขอแนะนำให้วางแผนที่จะย้ายไปยังระบบไฟล์ที่จะตรวจสอบดิสก์แต่ละแผ่นเช่น btrfs หรือ zfs

(RAID-5 ไม่ควรใช้ในการปรับใช้ใหม่จริง ๆและไม่ควรใช้ความจุของดิสก์ดิบมากกว่า 2TB ต่อไป - ดูhttp://www.zdnet.com/article/why-raid-5- stop-working-in-2009 / )

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