เรื่องราวของฉันเริ่มต้นค่อนข้างง่าย ฉันมีเซิร์ฟเวอร์แบบเบาซึ่งใช้งาน Arch Linux ซึ่งเก็บข้อมูลส่วนใหญ่ไว้ใน RAID-1 ซึ่งประกอบด้วยไดรฟ์ SATA สองตัว มันทำงานได้โดยไม่มีปัญหาใด ๆ ประมาณ 4 เดือน ทันใดนั้นฉันก็เริ่มอ่านข้อผิดพลาดในหนึ่งในไดรฟ์ ข้อความดูเหมือนเป็นจำนวนมากเสมอ:
Apr 18 00:20:15 hope kernel: [307085.582035] ata5.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Apr 18 00:20:15 hope kernel: [307085.582040] ata5.01: failed command: READ DMA EXT
Apr 18 00:20:15 hope kernel: [307085.582048] ata5.01: cmd 25/00:08:08:6a:34/00:00:27:00:00/f0 tag 0 dma 4096 in
Apr 18 00:20:15 hope kernel: [307085.582050] res 51/40:00:0c:6a:34/40:00:27:00:00/f0 Emask 0x9 (media error)
Apr 18 00:20:15 hope kernel: [307085.582053] ata5.01: status: { DRDY ERR }
Apr 18 00:20:15 hope kernel: [307085.582056] ata5.01: error: { UNC }
Apr 18 00:20:15 hope kernel: [307085.621301] ata5.00: configured for UDMA/133
Apr 18 00:20:15 hope kernel: [307085.640972] ata5.01: configured for UDMA/133
Apr 18 00:20:15 hope kernel: [307085.640986] sd 4:0:1:0: [sdd] Unhandled sense code
Apr 18 00:20:15 hope kernel: [307085.640989] sd 4:0:1:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Apr 18 00:20:15 hope kernel: [307085.640993] sd 4:0:1:0: [sdd] Sense Key : Medium Error [current] [descriptor]
Apr 18 00:20:15 hope kernel: [307085.640998] Descriptor sense data with sense descriptors (in hex):
Apr 18 00:20:15 hope kernel: [307085.641001] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
Apr 18 00:20:15 hope kernel: [307085.641010] 27 34 6a 0c
Apr 18 00:20:15 hope kernel: [307085.641020] sd 4:0:1:0: [sdd] Add. Sense: Unrecovered read error - auto reallocate failed
Apr 18 00:20:15 hope kernel: [307085.641023] sd 4:0:1:0: [sdd] CDB: Read(10): 28 00 27 34 6a 08 00 00 08 00
Apr 18 00:20:15 hope kernel: [307085.641027] end_request: I/O error, dev sdd, sector 657746444
Apr 18 00:20:15 hope kernel: [307085.641035] ata5: EH complete
Apr 18 00:20:15 hope kernel: [307085.641672] md/raid1:md16: read error corrected (8 sectors at 657744392 on sdd1)
Apr 18 00:20:17 hope kernel: [307087.505082] md/raid1:md16: redirecting sector 657742336 to other mirror: sdd1
ข้อผิดพลาดแต่ละข้อมีหมายเลขเซกเตอร์ต่างกันและมีการหน่วงเวลาหลายวินาทีสำหรับผู้ใช้ (ฉัน) ในการเข้าถึงดิสก์
ฉันตรวจสอบเอาต์พุต smartctl และเห็นผลลัพธ์ต่อไปนี้ (ส่วนที่ไม่เกี่ยวข้องถูกตัดออก):
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 193 193 051 Pre-fail Always - 1606
5 Reallocated_Sector_Ct 0x0033 194 194 140 Pre-fail Always - 0
196 Reallocated_Event_Count 0x0032 162 162 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 51
เมื่อมองย้อนกลับไปในบันทึกฉันพบว่าข้อผิดพลาดเกิดขึ้นจริงไม่กี่วันส่วนใหญ่ในระหว่างการสำรองข้อมูล แต่บ่อยครั้งในช่วงที่มีการใช้งานน้อยมาก (หมายถึงทุกครั้งที่ 5 ที่ฉันพยายามบันทึกไฟล์ข้อความ) ฉันสรุปว่าดิสก์ของฉันกำลังจะตายว่า RAID-1 จัดการได้อย่างเหมาะสมและเป็นเวลาที่จะสั่งซื้อดิสก์ทดแทน ฉันสั่งดิสก์ใหม่
ฉันประหลาดใจมากในวันต่อมาข้อผิดพลาด ... หยุดลง ฉันไม่ได้ทำอะไรเพื่อแก้ไข ฉันไม่ได้รีบูทไม่ได้ใช้งานไดรฟ์ออฟไลน์ไม่มีอะไรเลย แต่ข้อผิดพลาดก็หยุด
ณ จุดนั้นอยากรู้ว่าเซกเตอร์ที่ไม่ดีนั้นอยู่ในส่วนที่ไม่ได้ใช้งานของดิสก์ในขณะนี้ฉันนำดิสก์ออกจาก RAID นำมันกลับมาไว้ใน RAID และอนุญาตให้ทำ resync เต็มใหม่ต่อไป การซิงค์ใหม่เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 9 ชั่วโมงต่อมา (ดิสก์ 2TB ใช้เวลาสักครู่)
นอกจากนี้เอาต์พุต smartctl ก็เปลี่ยนไปเล็กน้อยดังนี้
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 193 193 051 Pre-fail Always - 1606
5 Reallocated_Sector_Ct 0x0033 194 194 140 Pre-fail Always - 43
196 Reallocated_Event_Count 0x0032 162 162 000 Old_age Always - 38
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
ดังนั้นส่วนหนึ่งของสิ่งที่ทำให้ฉันประหลาดใจก็คือแน่นอนว่า "ตั้งแต่เมื่อไรที่ดิสก์ที่ไม่ดีจะแก้ไขตัวเอง?"
ฉันคิดว่าเป็นไปได้ว่าพื้นที่ขนาดเล็กมากของไดรฟ์เกิดข้อผิดพลาดและไดรฟ์นั้นใช้เวลา 3 วัน (!) ก่อนที่รหัสการจัดสรรใหม่ของภาคจะเริ่มเล่นและแมปเซ็กเตอร์บางส่วนผ่านพื้นที่ที่ไม่ดี แต่ฉันไม่สามารถพูดได้ว่าฉันเคยเห็นสิ่งที่เกิดขึ้น
มีคนอื่นเห็นพฤติกรรมแบบนี้อีกไหม? ถ้าเป็นเช่นนั้นคุณมีประสบการณ์กับไดรฟ์หลังจากนั้นอย่างไร มันเกิดขึ้นอีกครั้งไหม? ในที่สุดดิสก์ล้มเหลวอย่างสมบูรณ์หรือไม่? หรือมันเป็นเพียงความผิดพลาดที่ไม่สามารถอธิบายที่ยังไม่ได้อธิบาย
ในกรณีของฉันฉันมีไดรฟ์สำรอง (ที่ได้รับภายใต้การรับประกัน) ดังนั้นฉันอาจจะเปลี่ยนไดรฟ์ใหม่ แต่ฉันชอบที่จะรู้ว่าฉันวินิจฉัยผิดนี้อย่างใด หากช่วยได้ฉันมีเอาต์พุต 'smartctl -a' ที่สมบูรณ์จากเมื่อเกิดปัญหา มันค่อนข้างยาวดังนั้นฉันไม่ได้โพสต์ไว้ที่นี่