ซอฟต์แวร์ Linux mdadm RAID 6 - รองรับการกู้คืนความเสียหายเล็กน้อยหรือไม่?


15

Wikipedia กล่าวว่า "RAID 2 เป็นระดับ RAID มาตรฐานเดียวนอกเหนือจากการใช้งานบางอย่างของ RAID 6 ซึ่งสามารถกู้คืนข้อมูลที่ถูกต้องโดยอัตโนมัติจากข้อมูลที่เสียหายแบบบิตเดียว"

ไม่มีใครรู้ว่าการติดตั้ง RAID 6 mdadm ใน Linux นั้นเป็นหนึ่งในการติดตั้งที่สามารถตรวจจับและกู้คืนโดยอัตโนมัติจากความเสียหายของข้อมูลบิตเดียว สิ่งนี้เกี่ยวข้องกับ CentOS / Red Hat 6 หากสิ่งนั้นแตกต่างจากรุ่นอื่น ฉันพยายามค้นหาทางออนไลน์ แต่ไม่มีโชคมาก

ด้วยอัตราความผิดพลาดของ SATA คือ 1 ใน 1E14 บิตและดิสก์ SATA 2TB ที่มี 1.6E13 บิตนี่จึงเกี่ยวข้องอย่างยิ่งกับการป้องกันข้อมูลเสียหาย

แก้ไข 17 มิ.ย. 2015

ฉันเชื่อว่านี่เป็นเรื่องที่ฉันกังวลน้อยกว่าเดิม - ดูที่ฮาร์ดดิสก์ / SSD - การตรวจจับและการจัดการข้อผิดพลาด - มีการป้องกันความเสียหายของข้อมูลเงียบที่เชื่อถือได้หรือไม่ สำหรับรายละเอียดเพิ่มเติม

คำตอบ:


15

ซอฟต์แวร์ Linux RAID จะไม่ปกป้องคุณจากความเสียหายของบิตและความเสียหายของข้อมูลแบบเงียบเป็นปัญหาที่รู้จักกันดี ในความเป็นจริงถ้าเคอร์เนลสามารถอ่านข้อมูลจากดิสก์เดียวมันจะไม่มีทางรู้ว่ามันไม่ดี RAID จะเริ่มทำงานก็ต่อเมื่อมีข้อผิดพลาด I / O เมื่ออ่านข้อมูล

หากคุณกังวลเกี่ยวกับความถูกต้องของข้อมูลคุณควรพิจารณาใช้ระบบไฟล์เช่นBtrfsหรือZFSที่รับรองความถูกต้องของข้อมูลโดยการจัดเก็บและตรวจสอบ checksums ระบบไฟล์เหล่านี้ยังดูแลการทำงานของ RAID ดังนั้นคุณจึงไม่จำเป็นต้องมีการตรวจจับซอฟต์แวร์เคอร์เนลหากคุณไปในทางนั้น


ขอบคุณ ในกรณีที่เป็นประโยชน์กับทุกคนฉันได้รับแนวคิดการค้นหาเพิ่มเติมจากคำตอบของ chutz และเห็นว่าผู้ดูแล mdadm (ฉันเชื่อ) กล่าวเมื่อวันที่ 17 ก.พ. 2011 ว่าเขาไม่มีแผนที่จะเพิ่มความสามารถในการบังคับให้ตรวจสอบความเท่าเทียมกันในการอ่านทุกครั้ง ดูspinics.net/lists/raid/msg32816.html
sa289

3

RAID5 และ RAID6 สามารถตรวจจับและแก้ไขความเสียหายของบิตได้หากคุณตรวจสอบความเท่าเทียมกันของไดรฟ์ทั้งหมด สิ่งนี้เรียกว่า "การขัด" หรือ "การตรวจสอบความเท่าเทียมกัน" และโดยทั่วไปจะใช้เวลา 24-48 ชั่วโมงสำหรับระบบ RAID ส่วนใหญ่ที่ใช้งานจริง ในช่วงเวลานั้นประสิทธิภาพอาจลดลงอย่างมีนัยสำคัญ (ระบบบางระบบอนุญาตให้ผู้ปฏิบัติงานให้ความสำคัญกับการขัดถูเหนือการเข้าถึงการอ่าน / เขียนหรือด้านล่าง) RAID6 มีโอกาสสูงกว่าในการแก้ไขเพราะสามารถแก้ไขได้หากคุณมีความล้มเหลวของไดรฟ์สองตัวในขณะที่ RAID5 ความล้มเหลวของไดรฟ์มีแนวโน้มมากขึ้นเมื่อคุณกำลังขัดเพราะกิจกรรมที่เพิ่มขึ้น


1
ไม่เป็นความจริงในระดับสากลที่ประสิทธิภาพจะลดลงอย่างเห็นได้ชัดในระหว่างการขัด RAID หากสครับใช้ทรัพยากรระบบที่มีอยู่ทั้งหมดและเป็น "โง่" ก็จะ แต่ SAN และฉันทั้งหมดคิดว่าคอนโทรลเลอร์ RAID ส่วนใหญ่จะใช้การขัดเกลาในลำดับความสำคัญต่ำหรือ "ดี" การปรับการใช้ทรัพยากรแบบไดนามิกเพื่อไม่ให้ใช้ทรัพยากรที่จำเป็นในการรักษาประสิทธิภาพการผลิต
Jeremy

คุณถูก. ฉันแก้ไขคำตอบเพื่อเพิ่มความแตกต่าง
vy32

ถ้าอาร์เรย์ mdadm raid 6 ของคุณคือ / dev / md1 แล้วเป็นคำสั่งเพื่อให้ตรวจสอบความเท่าเทียมกันและพยายามซ่อมแซมความเสียหายบิตเดียว "echo check> / sys / block / md1 / md / sync_action"
BeowulfNode42

2
พวกเขาไม่ "ป้องกันการทุจริตบิต" พวกเขาตรวจพบความเสียหายบิตถ้าคุณขัด ดูคำถามของฉันที่นี่เพื่อดูรายละเอียด

ฉันขอแนะนำให้เปลี่ยนคำตอบเป็น "RAID5 และ RAID6 สามารถซ่อมแซมความเสียหายของบิต"
Waxhead

2

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


มันจะดีถ้ามันเป็นจริง! คุณช่วยระบุลิงก์ใด ๆ เกี่ยวกับเอกสารได้ที่ไหนบ้าง?
Alek_A

2

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

https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

ในการดำเนินการตรวจสอบนี้จะต้องอ่านไดรฟ์ P และ Q แบบพาริตีพร้อมกับไดรฟ์ข้อมูล หากพาริตีที่คำนวณได้ P 'และ Q' แตกต่างกันโดยไม่มีข้อผิดพลาดของไดรฟ์การวิเคราะห์สามารถระบุได้ว่าไดรฟ์ใดไม่ถูกต้องและแก้ไขข้อมูล

นอกจากนี้หากการระบุไดรฟ์นั้นเป็นไดรฟ์ที่ไม่มีอยู่ (เช่นไดรฟ์ 137 หากมีเพียง 15 ไดรฟ์) แสดงว่ามีมากกว่าหนึ่งไดรฟ์ที่ให้ข้อมูลที่เสียหายสำหรับ BYTE นั้นให้ส่งสัญญาณข้อผิดพลาดที่ไม่สามารถแก้ไขได้ เมื่อมีน้อยกว่า 256 ไดรฟ์ในชุดการตรวจจับนี้มีความน่าจะเป็นสูงต่อไบต์และเนื่องจากมีหลายไบต์ในบล็อกด้วยความน่าจะเป็นสูงต่อบล็อก หากการระบุไดรฟ์ไม่สอดคล้องกันสำหรับทุกไบต์ภายในบล็อก RAID อีกครั้งมากกว่าหนึ่งไดรฟ์จะให้ข้อมูลที่เสียหายและโดยทั่วไปแล้วหนึ่งอาจปฏิเสธเงื่อนไข แต่ตราบใดที่การระบุไดรฟ์ทั้งหมดถูกต้องบล็อกไม่จำเป็นต้อง ถูกปฏิเสธ

ใช้เวลานานกว่าปกติในการตรวจสอบเพื่อดำเนินการแก้ไขนี้ แต่จะต้องดำเนินการกับการคำนวณกลุ่มอาการ (P และ Q) เท่านั้นแสดงข้อผิดพลาด

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

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