次のzpoolがあります。
NAME STATE READ WRITE CKSUM
zfspool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
wwn-0x5000cca266f3d8ee ONLINE 0 0 0
wwn-0x5000cca266f1ae00 ONLINE 0 0 0
今朝ホストはイベントを経験しました(まだそれを掘り下げています。負荷が非常に高く、多くのものが機能していませんでしたが、それでも私はそれに入ることができました)。
再起動時に、ホストは起動中に上記のプールのデータに依存するサービスを待機してハングしました。
プールに問題があると思われるので、ドライブの1つを取り外して再起動しました。今回、ホストがオンラインになりました。
スクラブにより、既存のディスク上のすべてのデータに問題がないことがわかりました。それが完了したら、取り外したドライブを再度挿入しました。ドライブは再同期化を開始しましたが、約4%を取得してから再起動します。
smartctlは、どちらのドライブでも問題を示しません(エラーは記録されず、WHEN_FAILEDは空です)。
ただし、どのディスクが再同期化されているかはわかりません。実際、プールは正常で、再同期化する必要がないように見えます。
errors: No known data errors
root@Host1:/var/log# zpool status
pool: zfspool
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 Sun Dec 8 12:20:53 2019
46.7G scanned at 15.6G/s, 45.8G issued at 15.3G/s, 5.11T total
0B resilvered, 0.87% done, 0 days 00:05:40 to go
config:
NAME STATE READ WRITE CKSUM
zfspool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
wwn-0x5000cca266f3d8ee ONLINE 0 0 0
wwn-0x5000cca266f1ae00 ONLINE 0 0 0
errors: No known data errors
この再同期ループから抜け出すための最良のコースは何ですか?他の回答は、回復中のドライブを切り離すことを提案していますが、私が言ったように、どちらもそうではありません。
編集:
zpoolイベントは、以下の繰り返しの約1000回です。
Dec 8 2019 13:22:12.493980068 sysevent.fs.zfs.resilver_start
version = 0x0
class = "sysevent.fs.zfs.resilver_start"
pool = "zfspool"
pool_guid = 0x990e3eff72d0c352
pool_state = 0x0
pool_context = 0x0
time = 0x5ded4d64 0x1d7189a4
eid = 0xf89
Dec 8 2019 13:22:12.493980068 sysevent.fs.zfs.history_event
version = 0x0
class = "sysevent.fs.zfs.history_event"
pool = "zfspool"
pool_guid = 0x990e3eff72d0c352
pool_state = 0x0
pool_context = 0x0
history_hostname = "Host1"
history_internal_str = "func=2 mintxg=7381953 maxtxg=9049388"
history_internal_name = "scan setup"
history_txg = 0x8a192e
history_time = 0x5ded4d64
time = 0x5ded4d64 0x1d7189a4
eid = 0xf8a
Dec 8 2019 13:22:17.485979213 sysevent.fs.zfs.history_event
version = 0x0
class = "sysevent.fs.zfs.history_event"
pool = "zfspool"
pool_guid = 0x990e3eff72d0c352
pool_state = 0x0
pool_context = 0x0
history_hostname = "Host1"
history_internal_str = "errors=0"
history_internal_name = "scan aborted, restarting"
history_txg = 0x8a192f
history_time = 0x5ded4d69
time = 0x5ded4d69 0x1cf7744d
eid = 0xf8b
Dec 8 2019 13:22:17.733979170 sysevent.fs.zfs.history_event
version = 0x0
class = "sysevent.fs.zfs.history_event"
pool = "zfspool"
pool_guid = 0x990e3eff72d0c352
pool_state = 0x0
pool_context = 0x0
history_hostname = "Host1"
history_internal_str = "errors=0"
history_internal_name = "starting deferred resilver"
history_txg = 0x8a192f
history_time = 0x5ded4d69
time = 0x5ded4d69 0x2bbfa222
eid = 0xf8c
Dec 8 2019 13:22:17.733979170 sysevent.fs.zfs.resilver_start
version = 0x0
class = "sysevent.fs.zfs.resilver_start"
pool = "zfspool"
pool_guid = 0x990e3eff72d0c352
pool_state = 0x0
pool_context = 0x0
time = 0x5ded4d69 0x2bbfa222
eid = 0xf8d
...
これは解決されました。
Githubの次の問題が答えを提供しました:
https://github.com/zfsonlinux/zfs/issues/9551
この場合の赤旗は、おそらく"starting deferred resilver"
に見られるように、急速にループしているzpool events -v
イベントです。
リンクの最初の提案は、zfs-zedサービスを無効にすることでした。私の場合、そもそも有効化されていません。
2番目の提案は、zpoolでdefer_resilver機能がアクティブ化されていることを確認することでした。そのアップグレードに対応する機能を有効にせずにプールをアップグレードすると、潜在的な問題があるようです。このプールは過去2年ほどで複数のマシン/オペレーティングシステムから移動されたため、古いバージョンのZFSで作成され、最新のホストの新しいバージョンのZFS上にある可能性があります。
root@Host1:/# zpool get all | grep feature
...
zfspool feature@resilver_defer disabled local
...
これを見た後、機能を有効にしました。 githubリンクはこれが危険だと示唆しているようですので、バックアップがあることを確認してください。
root@Host1:/# zpool set feature@resilver_defer=enabled zfspool
その後、zpool statusは、以前よりもresilverがさらに進んでいることを示しています。
root@Host1:/# zpool status
pool: zfspool
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 Sun Dec 8 13:53:43 2019
847G scanned at 2.03G/s, 396G issued at 969M/s, 5.11T total
0B resilvered, 7.56% done, 0 days 01:25:14 to go
config:
NAME STATE READ WRITE CKSUM
zfspool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
wwn-0x5000cca266f3d8ee ONLINE 0 0 0
wwn-0x5000cca266f1ae00 ONLINE 0 0 0
errors: No known data errors