web-dev-qa-db-ja.com

利用可能な十分なレプリカがあるにもかかわらず、zpoolがraidz3プールのインポートに失敗する

一部のユーザーはプール上のこのサーバーの共有への接続に問題を抱えていましたが、他のユーザーは既に接続していたようです。再起動を調整した後、システムが起動するとプールはインポートに失敗しました。

再起動中に、POST中にドライブに障害が発生していることに気付きました。ベゼルのオレンジ色のライトとzpool import

プールにはオンラインにするのに十分なデバイスがありますが、正常にインポートされません。

$ zpool import
   pool: darkpool
     id: 5743344949875332602
  state: DEGRADED
 status: One or more devices contains corrupted data.
 action: The pool can be imported despite missing or damaged devices.  The
    fault tolerance of the pool may be compromised if imported.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
 config:

    darkpool                      DEGRADED
      raidz3-0                    DEGRADED
        wwn-0x5000c5008581aafb    ONLINE
        wwn-0x5000c5008581b61b    ONLINE
        wwn-0x5000c5008581b79f    ONLINE
        wwn-0x5000c5008581b933    ONLINE
        wwn-0x5000c5008581b953    ONLINE
        wwn-0x5000c5008581bdf7    ONLINE
        wwn-0x5000c50085825ec7    ONLINE
        wwn-0x5000c5008581cc03    ONLINE
        wwn-0x5000c5008581e423    UNAVAIL
        wwn-0x5000c5008581fd3f    ONLINE
        wwn-0x5000c50085820b93    ONLINE
        wwn-0x5000c500858211b3    ONLINE
        wwn-0x5000cca267ab0de4    ONLINE
        spare-13                  DEGRADED
          11992420879588183985    FAULTED  corrupted data
          wwn-0x5000c500858252ef  ONLINE
    spares
      wwn-0x5000c500858252ef

$ zpool status
no pools available

$ zpool import darkpool
cannot import 'darkpool': I/O error
    Destroy and re-create the pool from
    a backup source.

$ zpool import -f darkpool
cannot import 'darkpool': I/O error
    Destroy and re-create the pool from
    a backup source.

$ zpool import -fFn darkpool

$ zpool import -F darkpool
cannot import 'darkpool': I/O error
    Destroy and re-create the pool from
    a backup source.

$ zpool import -fFX darkpool
cannot import 'darkpool': I/O error
    Destroy and re-create the pool from
    a backup source.

このようなものを見たことがありますか?プールを破棄してバックアップから復元する前に何を試したらいいのかわかりません(時間がかかるので避けたいです)。

数週間前にバックアップが失敗し始めたようです。障害のあるドライブをサービスすることでプールが幸せになるかどうかを知る方法はありますか?

システムはzfsutils-linux_0.7.5-1ubuntu16.7_AMD64を備えたUbuntu 18.04.2 LTSです。

2
Louis Waweru

LinkedIn Premiumにサインアップして、ZFS開発者にメッセージを送れるようにしました(実際に対応してくれた親切です!)。彼は私がプールをZFS 0.8のシステムに移動することを提案しました。これは、Githubでの彼の関連するコミットが他のディストリビューションの中でもUbubtu 19.10に含まれているバージョンです。

読み取り専用モード、オプションを無効にすることでプールをロードできましたspa_load_verify_metadata。これによりプールのスキャンもスキップされるため、プールのサイズに応じて数分または数時間待つ必要がありません。

プールが読み込まれたら、プールとサーバーを破棄する計画(デルからのオンサイトのトリップが多すぎ、CPU、メモリ、モボなどを交換するなど)を使用して、すべてのバックアップを別のサーバーに開始し、開始しました。新しいシステムで新鮮。


オプションの切り替え(Ubuntu 19.10):

$ cat /sys/module/zfs/parameters/spa_load_verify_metadata
1
$ echo 0 >/sys/module/zfs/parameters/spa_load_verify_metadata
$ cat /sys/module/zfs/parameters/spa_load_verify_metadata
0

プールの読み込み

zpool import -o readonly=on darkpool -f

フラグは再起動後にリセットされるため、起動プロセス中にプールは読み込まれません。しかし、実際にはデータをコピーして、とにかくプールの使用を停止する必要があります。

0
Louis Waweru