web-dev-qa-db-ja.com

「FAULTED」zfsプールから回復します。 「-F」オプションは無視されているようです

Ubuntuでは、最近、外付けUSBハードドライブでZFSを試し始めました。現在、zfsプールが破損しているようです。これは、コンピューターを(poweroffを使用して)シャットダウンした結果として発生した可能性があります。

$ zpool import
   pool: zfs
     id: 1234512345123451234
  state: FAULTED
 status: The pool metadata is corrupted.
 action: The pool cannot be imported due to damaged devices or data.
    The pool may be active on another system, but can be imported using
    the '-f' flag.
   see: http://zfsonlinux.org/msg/ZFS-8000-72
 config:

        zfs                      FAULTED  corrupted data
          usb-Disk_Name_etc-0:0  ONLINE

インポートしようとすると、約1秒のデータが失われ(これで問題ありません)、「-F」オプションを使用して回復を試みることができることを説明するこの役立つメッセージが表示されます。

$ zpool import zfs
cannot import 'zfs': I/O error
    Recovery is possible, but will result in some data loss.
    Returning the pool to its state as of Thu 12 Mar 2020 00:58:03 GMT
    should correct the problem.  Approximately 1 seconds of data
    must be discarded, irreversibly.  Recovery can be attempted
    by executing 'zpool import -F zfs'.  A scrub of the pool
    is strongly recommended after recovery.

ドライランフラグを使用して、-Fが機能することを確認します。

$ zpool import -Fn zfs
Would be able to return zfs to its state as of Thu 12 Mar 2020 00:58:03 GMT.
Would discard approximately 1 seconds of transactions.

しかし、私が本物を試してみると、「-F」オプションを完全に無視しているようで、元のメッセージを繰り返します。

$ zpool import -F zfs
cannot import 'zfs': I/O error
    Recovery is possible, but will result in some data loss.
    Returning the pool to its state as of Thu 12 Mar 2020 00:58:03 GMT
    should correct the problem.  Approximately 1 seconds of data
    must be discarded, irreversibly.  Recovery can be attempted
    by executing 'zpool import -F zfs'.  A scrub of the pool
    is strongly recommended after recovery.

この回答から「-X」オプションについての言及を見つけました: https://serverfault.com/a/645866/74394 しかし、まったく同じメッセージが表示され続けます。プール名(zfs)と数値ID番号(1234512345123451234など)の両方を使用して、これらのオプションの組み合わせをすべて試しましたが、-Fオプションの使用を提案する上記とまったく同じメッセージが常に表示されます。

-F-FX-f-fF-fFX

私はここで明らかに間違ったことをしていますか?システムのシャットダウンが原因で1秒のデータが原因でディスク全体が取り返しのつかないほど失われた場合、ZFSは非常に不安定に見えます。 ZFSを試し始めたばかりなので、プールのバックアップコピーがありません。助けてくれてありがとう。

1
Pryo

そのUSBデバイスがコミットについて嘘をついている場合、書き込みは並べ替えられる可能性があるため、すべての賭けはオフになり、書き込みの並べ替えとバリアについて嘘をつく間は、メタデータが破棄されるかどうかについてすべての賭けがオフになります。

試してください:zdb -e zfs -ul

これはうまくいけばいくつかのtxgsをリストします。

次に、次のことを試してください。zpoolimport -f -FX -N -T [txg_number]

上記のzdbからtxg_numberを取得しました。

その他の試み:ZFSを最新の0.8.3に更新します。 Ubuntuに同梱されているものはかなり古く、そのバージョン以降、多くの修正と改善が行われています。

2
Gordan Bobic