TLDR;
มิเรอร์พูล ZFS ของฉันมีข้อผิดพลาดในการตรวจสอบ ฉันเปลี่ยนคอนโทรลเลอร์โดยคิดว่าเป็นสาเหตุที่เป็นไปได้มากที่สุด แต่ข้อผิดพลาดจะไม่ชัดเจน pool clear จะรีเซ็ตชั่วคราว แต่จะกลับมาอีกในครั้งต่อไปที่ฉันใช้สครับ ฉันจะเคลียร์มันให้ดีได้อย่างไร?
เรื่องเต็ม:
ฉันได้ติดตั้ง ZFS mirror-0 และทำงานบน Ubuntu 20.04.2 LTS มาระยะหนึ่งแล้ว เมื่อหนึ่งในไดรฟ์เสียชีวิต ฉันใช้ประโยชน์จากความล้มเหลวในการเปลี่ยนไดรฟ์ทั้งสองด้วยไดรฟ์ที่ใหญ่กว่า รวมทั้งเพิ่มการ์ด SATA-III PCI สำหรับไดรฟ์ใหม่ (ไดรฟ์เก่าเชื่อมต่อกับคอนโทรลเลอร์ SATA II แบบออนบอร์ด เนื่องจากฉันไม่มีพอร์ต SATA III อีกต่อไป) หลังจากรันไดรฟ์ใหม่และตัวควบคุมเป็นเวลาสองสามสัปดาห์ ZFS ก็บ่นเกี่ยวกับข้อผิดพลาดในการตรวจสอบผลรวมในไดรฟ์ใหม่ทั้งสอง และทำให้อาร์เรย์อยู่ในสถานะ "เสื่อมโทรม"
งานวิจัยบางชิ้นทำให้ฉันได้ข้อสรุปว่า เนื่องจากไดรฟ์ทั้งสองแสดงจำนวนข้อผิดพลาดของการตรวจสอบผลรวมที่เท่ากัน จึงมีแนวโน้มว่าจะเป็นปัญหาที่คอนโทรลเลอร์มากกว่าที่ตัวไดรฟ์เอง ดังนั้นฉันจึงดึงคอนโทรลเลอร์ใหม่และใส่ไดรฟ์กลับเข้าไปในคอนโทรลเลอร์ SATA II แบบออนบอร์ดในตอนนี้ โดยตั้งใจจะเปลี่ยนการ์ดคอนโทรลเลอร์เมื่อฉันตรวจสอบแล้วว่าเป็นปัญหา จากนั้นฉันก็ลบทั้งสองไฟล์ที่ สถานะ zpool -v
แสดงว่ามีข้อผิดพลาดถาวร ออก ก zpool ล้างข้อมูล
เพื่อรีเซ็ตข้อผิดพลาดและทำการสครับ
น่าเสียดายที่หลังจากขัดแล้ว ข้อผิดพลาดก็ปรากฏขึ้นอีกครั้ง ตอนนี้มีเพียงก -v
ไม่แสดงไฟล์อีกต่อไป แต่เป็นเพียงที่อยู่ (ฉันเชื่อว่าเป็นไอโหนด) ซึ่งน่าจะเป็นของไฟล์ที่ฉันลบไปก่อนหน้านี้ ฉันลองอีกครั้งด้วยผลลัพธ์เดียวกัน ทุกครั้งที่ฉันใช้สครับ มันจะกลับมาพร้อมกับผลลัพธ์ดังต่อไปนี้:
root@watchman:~# สถานะ zpool -v
พูล: ข้อมูล
สถานะ: เสื่อมโทรม
สถานะ: อุปกรณ์อย่างน้อยหนึ่งเครื่องพบข้อผิดพลาดที่ส่งผลให้ข้อมูล
คอรัปชั่น. แอปพลิเคชันอาจได้รับผลกระทบ
การดำเนินการ: กู้คืนไฟล์ที่มีปัญหาหากเป็นไปได้ มิฉะนั้นให้คืนค่า
พูลทั้งหมดจากการสำรองข้อมูล
ดู: http://zfsonlinux.org/msg/ZFS-8000-8A
สแกน: ขัดซ่อมแซม 16K ใน 0 วัน 09:10:20 โดยมีข้อผิดพลาด 1 รายการในวันเสาร์ที่ 24 ก.ค. 15:48:21 น. 2021
การกำหนดค่า:
ชื่อ รัฐ อ่าน เขียน CKSUM
ข้อมูลลดลง 0 0 0
กระจก-0 เสื่อมโทรม 0 0 0
ata-ST8000VE000-2P6101_WSD1M5NW DEGRADED 0 0 15 มีข้อผิดพลาดมากเกินไป
ata-ST8000VE000-2P6101_WSD1HEJX DEGRADED 0 0 15 มีข้อผิดพลาดมากเกินไป
ข้อผิดพลาด: ตรวจพบข้อผิดพลาดถาวรในไฟล์ต่อไปนี้:
ข้อมูล:<0x380508>
จากสิ่งที่ฉันสามารถบอกได้ นี่เป็นเพียงปัญหาเดียวกับที่มีอยู่แล้ว เนื่องจากน่าจะเกิดจากคอนโทรลเลอร์ที่ไม่ดี แต่ฉันไม่สามารถแก้ไขได้ ฉันจะคืนค่ามิเรอร์ของฉันให้กลับสู่สถานะการทำงานอย่างสมบูรณ์ได้อย่างไร
อัปเดต: ในที่สุดฉันก็ล้มเลิกความคิดที่จะล้างข้อผิดพลาดและเริ่มใหม่แทน ฉันสร้างพูลใหม่โดยขโมยหนึ่งในไดรฟ์จากมิเรอร์ที่มีอยู่ จากนั้นฉันก็วิ่ง รีซิงค์
เพื่อคัดลอกข้อมูลทั้งหมดจากพูลเก่าไปยังพูลใหม่ สิ่งนี้พบข้อผิดพลาดเล็กน้อย (zfs ไม่ได้โกหกเกี่ยวกับข้อผิดพลาดของข้อมูล) แต่ไม่มีอะไรสำคัญหรือน่าหนักใจ และการยกเว้นไฟล์ที่มีข้อผิดพลาดทำให้ rsync ดำเนินการได้สำเร็จ จากนั้นฉันเพิ่มไดรฟ์ที่สองลงในพูลใหม่ และหลังจากรีซิลเวอร์แล้ว ทุกอย่างก็ดูดี และการขัดบนพูลใหม่ก็เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด
ดังนั้น สมมติว่าทุกอย่างยังคงดูดีในสัปดาห์หน้าหรือมากกว่านั้น ฉันคิดว่ามันปลอดภัยที่จะสันนิษฐานว่าการ์ด SATA III เป็นสาเหตุของปัญหา และแทนที่ด้วยแบรนด์/ตัวเลือกที่ดีกว่า :)