何が起こったのか、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
データ エラーがなく、プール全体に障害が発生していないのはなぜでしょうか?
1 つのドライブsdf
で SMART に対する smartctl テストが失敗しread fail
、他のドライブでは修正不可能/保留中のセクターまたは UDMA CRC エラーというやや軽微な問題が発生しています。
障害のあるドライブを 1 つずつオフラインにしてからオンラインに戻すという操作を試みましたが、効果はありませんでした。
$ 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 をゼロにして、それ自体で置き換えます。これは問題ありませんが、本当にデータが失われている場合は、回復するためにこれらの最後の 2 つのボリュームが必要になる可能性があります。
これを今は机の上に置いていますsdf
が、取り外しました。最悪の場合でも、これを使って回復を助けられると思います。
その間、劣化したドライブの最初の数 MB を dev/zero して、それ自体と交換し、交換品が手に入るまで、2 番目の障害のあるドライブで同じことを繰り返して、うまくいくと思います。
質問 何が起こったのか、プールはどうやって持ちこたえたのか、あるいはデータが欠落している可能性があるのか(zfs とそのレポートの整合性を考えると疑わしい)
スタックの最上位ドライブが故障しなかったなど、故障の順序が幸運だった可能性はありますか?
質問 これは参考情報であり、トピックとは関係ありません。3 つすべてが同時に失敗した原因は何ですか? きっかけはスクラブだったと思います。前日の夜に確認したところ、すべてのドライブがオンラインでした。
ケーブル配線は最近問題になっています。オフィスは夜になると寒くなりますが、それらの問題はdrive unavailable
チェックサム エラーとは対照的です。ケーブル配線の問題ではなく、5 年前のドライブの老朽化が原因だと思います。しかし、1 日に 3 回も故障するなんて? 冗談でしょう、それは私たちの多くが怖がるには十分です!
答え1
RAID-Z2はダブルパリティです、RAID 6 と同様の冗長性。2 つのディスクが完全に故障しても、データはパリティから回復されます。アレイの残りの部分は正常であると仮定します。
必ずしも I/O エラーが発生するわけではありません。DEGRADEDはZFSがディスクを使い続けていることを意味するチェックサムエラーにもかかわらず、おそらくいくつかのビット反転が原因で、ドライブはまだ機能します。リンクその出力から:
「zpool status -x」を実行して、どのプールでエラーが発生したかを判断します。
READ、WRITE、または CKSUM のエラー数がゼロ以外のデバイスを探します。これは、デバイスで読み取り I/O エラー、書き込み I/O エラー、またはチェックサム検証エラーが発生したことを示します。デバイスはミラーまたは RAID-Z デバイスの一部であるため、ZFS はエラーから回復し、その後、破損したデータを修復できました。
これらのエラーが一定期間継続する場合、ZFS はデバイスに障害があると判断し、そのようにマークすることがあります。ただし、これらのエラー数は、デバイスが使用不可であることを示している場合と示していない場合があります。
ドライブの健全性について:
おそらく5年前のドライブの老朽化でしょう。しかし、1日に3回も故障するなんて? 冗談じゃない、それは私たちの多くが怖がるには十分です!
重要なデータを今すぐバックアップして復元テストします。このアレイではなく、別のメディアから行います。
劣化が続くドライブは交換してください。カーネルが syslog で I/O エラーを報告する場合は、必ず交換してください。保証期間内またはサポート契約期間内であれば、それを利用してください。保証期間が過ぎている場合は、メーカーはそれほど長くは持たないと見込んでいるため、その点を考慮してください。