ZFS:zpool import - 欠落しているデバイスは使用できません。

ZFS:zpool import - 欠落しているデバイスは使用できません。

約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はプール内の各デバイスに設定データを保存し、同期を維持します。停電によってこれが破損しているか、ディスクが破損している可能性がありますか?

まぁまた嬉しいですね。読んで助けてくれてありがとう!

おすすめ記事