ディスクの1つがzpoolで破損してディスクを交換して再同期を開始すると、出力zfs status -v
にエラーメッセージが表示されます。
pool: backup
state: ONLINE
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 Thu Oct 17 15:41:38 2019
40.0G scanned out of 2.59T at 24.0M/s, 30h58m to go
6.67G resilvered, 1.51% done
config:
NAME STATE READ WRITE CKSUM
backup ONLINE 0 0 1
raidz1-0 ONLINE 0 0 2
ata-ST3000DM007-1WY10G_WFN0GA7C ONLINE 0 0 0
ata-ST3000DM007-1WY10G_WFN0GA32 ONLINE 0 0 0
ata-ST3000DM007-1WY10G_WFN0G8VM ONLINE 0 0 0
ata-ST3000DM007-1WY10G_WFN0G8MJ ONLINE 0 0 0
sdb ONLINE 0 0 0 (resilvering)
ata-ST3000DM007-1WY10G_WFN0G7L6 ONLINE 0 0 0
errors: Permanent errors have been detected in the following files:
<0xb73>:<0x42ced>
poolname:filename<or>inode
だからグーグルをやってみると、私のエラーが実際に指しているのと同じ2つの値しか見つかりませんでしたが、16進数の値ではありませんでした。これについて言及されたアドバイスは、プールをこするということです。再同期が完了するとすぐにこれを実行しますが、実際に役に立ちますか?プール名が正しく表示されないのはなぜですか?記載がない場合は、ファイルが削除された可能性があります。ファイル名はわかりますが、プール名はなぜ表示されませんか?
zfs CentOSリポジトリのCentOS 7.6.1810、zfsバージョン0.7.13で実行されます。
ベストアンサー1
これはいくつかの理由で発生する可能性があります。信じられないか、メモリエラーが原因でこの問題が発生する可能性があります(無効なチェックサムが発生しました)。ファイルは、以前に削除されたデータセットに存在できます。別の障害が発生したディスクがある可能性があります。 RAID コントローラが破損している可能性があります。
再同期が完了したら、クリーンアップジョブを実行する必要があります。
各エラーは、単に特定の時点でエラーが発生したことを示します。すべてのエラーが必ずしもシステムに存在するわけではありません。通常、このような場合があります。一時的な中断によってデータが破損する可能性があり、中断後に自動的に回復します。プールを完全にクリーンアップすると、プール内のすべてのアクティブブロックを確認できるため、クリーンアップが完了するたびにエラーログがリセットされます。エラーがもう存在しないことを確認し、クリーンアップが完了するのを待たないようにするには、zpool onlineコマンドを使用してプール内のすべてのエラーをリセットします。
https://docs.oracle.com/cd/E19253-01/819-5461/gbbwl/index.html
したがって、クリーニング後にエラーが消えた場合、そのエラーは古くなり、もはやアクティブになりません。問題が解決しない場合は、注意が必要な問題があります(ハードウェア障害の可能性があります)。
当社には、smartOSでZFSを実行している約9000台のサーバーがあります。このようなことが起こるケースはほとんどありません。ただし、障害が発生したディスクを交換したり、プールをクリーンアップして問題を解決できない場合は、通常、ケース/ RAIDコントローラ/マザーボードのRMA処理を待ってください。