約1年間、私はzfs(プール名zdata)の下のdm-crypt / luk暗号化ハードドライブ、ミラーモードの8つのハードドライブでデータを実行するDebianサーバーを使用しました。したがって、それぞれ2つのハードドライブを持つ4つのミラーがあります。通常期間の zpool 状態:
# zpool status
pool: zdata
state: ONLINE
scrub: scrub completed after (blahblah)
config:
NAME STATE READ WRITE CKSUM
zdata ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
dm-name-n8_2 ONLINE 0 0 0
dm-name-n8_3 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
dm-name-n8_0 ONLINE 0 0 0
dm-name-n8_1 ONLINE 0 0 0
mirror-2 ONLINE 0 0 0
dm-name-n8_4 ONLINE 0 0 0
dm-name-n8_5 ONLINE 0 0 0
mirror-3 ONLINE 0 0 0
dm-name-n8_7 ONLINE 0 0 0
dm-name-n8_6 ONLINE 0 0 0
errors: No known data errors
(もちろん、34TBの生データはバックアップしていませんでした。ほぼすべてを放棄することができましたが、私に大切だと思ったファイルがいくつかありました。)
2週間前にStableにアップグレードした後、dm-name-n8_2でいくつかの読み取り、書き込み、およびチェックサムエラーが発生し始めました。 zfs が再同期を開始したため、クリーンアップは実行されませんでしたが、再起動が継続したため終了しませんでした。ミラーの別のハードドライブ、dm-name-n8_3にも同じエラーが発生し、両方のhhdの各コントローラが死んでいることに気づき始めました。
私がやった愚かなことに比べると、今はすべて理解できないようです(マイニングプールの歴史何も表示されません)。何よりも「より良い」ディスクの交換を始めました。同時に、私は停電を引き起こした欠陥のある家電製品に取り組んでいました。これで不良ディスクが取り外され、交換されました。結局、プールを再インポートできません。
# zpool import -f
pool: zdata
id: 1343310357846896221
state: UNAVAIL
status: One or more devices were being resilvered.
action: The pool cannot be imported due to damaged devices or data.
config:
zdata UNAVAIL missing device
mirror-0 DEGRADED
dm-name-n8_2 UNAVAIL
dm-name-n8_3 ONLINE
mirror-1 ONLINE
n8_0 ONLINE
n8_1 ONLINE
mirror-2 DEGRADED
dm-name-n8_4 ONLINE
dm-name-n8_5 UNAVAIL
mirror-3 ONLINE
n8_7 ONLINE
dm-name-n8_6 ONLINE
# zpool import zdata -f
cannot import 'zdata': one or more devices is currently unavailable
と同じzpool import zdata -fnF
変更されたデバイス名をメモしてください。
プールは少なくとも一つすべてのミラーのデバイスがオンラインであるのに、なぜデバイスの欠落について文句を言うのですか?
どのデバイスが欠落しているかどうかはどうすればわかりますか?プールをオンラインに戻す方法はありますか?どうすればいいですか?
(私はoracleドキュメントとfreebsdマニュアルでzfsに関する章を読んでいくつか学びましたが、私の質問に対する答えが見つかりませんでした。)ご覧のように、
zdbの出力は少し長くなります。ここ。
ベストアンサー1
最後に、私はこの混乱した問題に対する解決策を見つけました。status
プールの再起動に使用したディスクによっては、別のメッセージが表示されました。 4つの対応するディスクをさまざまな組み合わせで使用して、パフォーマンスが低下した状態のプールをインポートしようとしたが、最後に次のような結果が得られました。
NAME STATE READ WRITE CKSUM
zdata DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
dm-name-n8_2 ONLINE 0 0 0 (resilvering)
11141007683912581709 UNAVAIL 0 0 0 was /dev/disk/by-id/dm-name-n8_3
mirror-1 DEGRADED 0 0 0
16620393607066428577 FAULTED 0 0 0 was /dev/disk/by-id/dm-name-n8_0
dm-name-n8_0 ONLINE 0 0 0
mirror-2 DEGRADED 0 0 0
replacing-0 DEGRADED 85 0 0
1051730541091272780 FAULTED 0 0 0 was /dev/disk/by-id/dm-name-n8_4
dm-name-n8_6 ONLINE 0 0 85 (resilvering)
dm-name-n8_4 ONLINE 0 0 0 (resilvering)
mirror-3 DEGRADED 0 0 0
dm-name-n8_5 ONLINE 0 0 0
13833275275194605312 FAULTED 0 0 0 was /dev/disk/by-id/dm-name-n8_6
これにより、破損したディスクからほぼすべてのデータを掻き落とすことができました。損失は約0.1%です(70000ファイルのうち> 134)。
私が理解したところ、zfsはプール内の各デバイスに設定データを保存し、同期を維持します。停電によってこれが破損しているか、ディスクが破損している可能性がありますか?
まぁまた嬉しいですね。読んで助けてくれてありがとう!