我想知道發生了什麼,ZFS 如何完全恢復,或者我的資料是否仍然完好無損。
當我昨晚進來時,我看到這一點令我沮喪,然後是困惑。
zpool status
pool: san
state: DEGRADED
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-9P
scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:
NAME STATE READ WRITE CKSUM
san DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346 ONLINE 0 0 0
ata-ST2000DM001-9YN164_W1E07E0G DEGRADED 0 0 38 too many errors
ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332 DEGRADED 0 0 63 too many errors
ata-ST2000NM0011_Z1P07NVZ ONLINE 0 0 0
ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344 ONLINE 0 0 0
wwn-0x50014ee20949b6f9 DEGRADED 0 0 75 too many errors
errors: No known data errors
怎麼可能沒有資料錯誤,整個池沒有故障?
一個驅動器sdf
對 SMART 進行 smartctl 測試失敗read fail
,其他驅動器的問題稍小;不可修正/待處理磁區或 UDMA CRC 錯誤。
我嘗試將每個故障驅動器脫機,然後重新聯機,一次一個,但這沒有幫助。
$ zpool status
pool: san
state: DEGRADED
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-9P
scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:
NAME STATE READ WRITE CKSUM
san DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346 ONLINE 0 0 0
ata-ST2000DM001-9YN164_W1E07E0G DEGRADED 0 0 38 too many errors
ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332 OFFLINE 0 0 63
ata-ST2000NM0011_Z1P07NVZ ONLINE 0 0 0
ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344 ONLINE 0 0 0
wwn-0x50014ee20949b6f9 DEGRADED 0 0 75 too many errors
然後,我感到非常幸運,或者有點困惑,如果我的數據實際上仍然存在,在檢查找到最差的驅動器後,我用我唯一的備用驅動器進行了更換。
$ zpool status
pool: san
state: DEGRADED
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Tue Jan 21 17:33:15 2020
467G scanned out of 8.91T at 174M/s, 14h10m to go
77.6G resilvered, 5.12% done
config:
NAME STATE READ WRITE CKSUM
san DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346 ONLINE 0 0 0
replacing-1 DEGRADED 0 0 0
ata-ST2000DM001-9YN164_W1E07E0G OFFLINE 0 0 38
ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516 ONLINE 0 0 0 (resilvering)
ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332 DEGRADED 0 0 63 too many errors
ata-ST2000NM0011_Z1P07NVZ ONLINE 0 0 0
ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344 ONLINE 0 0 0
wwn-0x50014ee20949b6f9 DEGRADED 0 0 75 too many errors
重新同步確實成功完成。
$ zpool status
pool: san
state: DEGRADED
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-9P
scan: resilvered 1.48T in 12h5m with 0 errors on Wed Jan 22 05:38:48 2020
config:
NAME STATE READ WRITE CKSUM
san DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346 ONLINE 0 0 0
ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516 ONLINE 0 0 0
ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332 DEGRADED 0 0 63 too many errors
ata-ST2000NM0011_Z1P07NVZ ONLINE 0 0 0
ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344 ONLINE 0 0 0
wwn-0x50014ee20949b6f9 DEGRADED 0 0 75 too many errors
我現在正處於十字路口。我通常dd
將故障驅動器的前 2MB 歸零,並替換為自身,我可以這樣做,但是如果確實存在資料遺失,我可能需要最後兩個磁碟區來恢復內容。
sdf
現在我的桌子上有這個,已刪除。我覺得在最壞的情況下我可以用這個來幫助恢復。
同時,我想我現在要對降級驅動器的前幾MB進行開發/歸零,並用其本身進行替換,我認為事情應該解決,沖洗並重複第二個故障驅動器,直到我能得到一些替代品手上。
問題 發生了什麼,池如何能夠掛起,或者我可能丟失了一些數據(考慮到 zfs 及其報告的完整性,這是值得懷疑的)
難道是由於幸運的故障順序,例如,不是堆疊的頂部驅動器發生故障?
問題 這只是僅供參考,與主題無關。是什麼原因導致3個同時失敗?我認為磨砂膏是催化劑。我前一天晚上檢查過,所有驅動器都在線。
請注意,佈線在最近一直是一個問題,辦公室在晚上會變冷,但這些問題剛剛出現drive unavailable
,而不是校驗和錯誤。我想那不是佈線,而是老化的驅動器,它們已經 5 年了。但一天失敗3次?來吧,這足以嚇到我們很多人了!
答案1
RAID-Z2 是雙奇偶校驗,類似RAID 6的冗餘。假設陣列的其餘部分是健康的。
您不一定有 I/O 錯誤。DEGRADED 表示 ZFS 繼續使用磁碟,儘管校驗和錯誤。也許是因為一些位元翻轉,但驅動器仍然可以工作。每連結從該輸出:
執行“zpool status -x”以確定哪個池遇到了錯誤。
尋找 READ、WRITE 或 CKSUM 錯誤計數非零的裝置。這表示裝置遇到了讀取 I/O 錯誤、寫入 I/O 錯誤或校驗和驗證錯誤。由於該設備是鏡像或 RAID-Z 設備的一部分,因此 ZFS 能夠從錯誤中恢復並隨後修復損壞的資料。
如果這些錯誤持續一段時間,ZFS 可能會確定裝置故障並將其標記為故障。但是,這些錯誤計數可能表示也可能不會表示該設備無法使用。
關於驅動器健康狀況:
也許是老化的驅動器,它們已經有 5 年的歷史了。但一天失敗3次?來吧,這足以嚇到我們很多人了!
現在備份還原測試重要資料。來自不同的媒體,不是這個陣列。
更換性能繼續下降的驅動器。當然,如果核心在 syslog 中報告 I/O 錯誤。如果有保固或支持合同,請利用它。如果通過了保修,製造商打賭它們不會持續這麼長時間,因此請考慮這一點。