zpool ボリュームをインポートできません: I/O エラー

zpool ボリュームをインポートできません: I/O エラー

これは Nexenta オープン ストレージ上にあります。一部のディスクが原因で UNAVAIL 状態になっている zpool があります。

# zpool import -F
  pool: delta
    id: XYAZA
 state: UNAVAIL
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
        devices and try again.
config:

        delta                        UNAVAIL  insufficient replicas
          raidz2-0                   UNAVAIL  insufficient replicas
            c0t5000C500573978EBd0    ONLINE
            c0t5000C50057397933d0    ONLINE
            c0t5000C50057397C47d0    UNAVAIL  cannot open
            c0t5000C5005739997Fd0    UNAVAIL  cannot open
            c0t5000C50057399F87d0    ONLINE
            c0t5000C5005739A90Bd0    ONLINE
            c0t5000C5005739ABC7d0    UNAVAIL  cannot open
            c0t5000C5005739AC0Fd0    ONLINE
          raidz2-1                   DEGRADED
            c0t5000C50057398657d0    ONLINE
            c0t5000C50057398E03d0    ONLINE
            c0t5000C50057398EF7d0    ONLINE
            c0t5000C50057398FAFd0    ONLINE
            c0t5000C5005739A39Fd0    UNAVAIL  cannot open
            c0t5000C5005739AAFFd0    ONLINE
            spare-6                  DEGRADED
              c0t5000C5005739AC3Fd0  UNAVAIL  cannot open
              c0t5000C50057398EDBd0  ONLINE
            c0t5000C5005739AE9Bd0    ONLINE


~# zpool import -FXf delta
cannot import 'delta': I/O error
        Destroy and re-create the pool from
        a backup source.
  1. この zpool インポートを正常に動作させるにはどうすればよいですか?
  2. 'UNAVAIL' と表示されているディスクを修理/交換するにはどうすればいいですか?

更新日: 2018年9月7日

Nexenta でディスクとスロットのマッピングを見つけ、デルタ ボリュームのディスクを再装着した後、raidz2-1 グループ内の 1 つのディスクを ONLINE にできましたが、raidz2-0 グループ内の 3 つのディスクは引き続き UNAVAIL として表示されます。

# zpool import -F
  pool: delta
    id: XYAZA
 state: UNAVAIL
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
        devices and try again.
config:

        delta                        UNAVAIL  insufficient replicas
          raidz2-0                   UNAVAIL  insufficient replicas
            c0t5000C500573978EBd0    ONLINE
            c0t5000C50057397933d0    ONLINE
            c0t5000C50057397C47d0    UNAVAIL  cannot open
            c0t5000C5005739997Fd0    UNAVAIL  cannot open
            c0t5000C50057399F87d0    ONLINE
            c0t5000C5005739A90Bd0    ONLINE
            c0t5000C5005739ABC7d0    UNAVAIL  cannot open
            c0t5000C5005739AC0Fd0    ONLINE
          raidz2-1                   DEGRADED
            c0t5000C50057398657d0    ONLINE
            c0t5000C50057398E03d0    ONLINE
            c0t5000C50057398EF7d0    ONLINE
            c0t5000C50057398FAFd0    ONLINE
            c0t5000C5005739A39Fd0    ONLINE
            c0t5000C5005739AAFFd0    ONLINE
            spare-6                  DEGRADED
              c0t5000C5005739AC3Fd0  UNAVAIL  cannot open
              c0t5000C50057398EDBd0  ONLINE
            c0t5000C5005739AE9Bd0    ONLINE

アプライアンス上の別のプールにスペア ディスクが 1 つ見つかりましたonline。ここでの質問は、1. スペアを、spare-6 のサブカテゴリに UNAVAIL ディスクが 1 つだけある raidz2-1 グループにデタッチ/アタッチするべきかどうか、または 2. スペアを、UNAVAIL ディスクがまだ 3 つある raidz2-0 グループにデタッチ/アタッチするべきかどうかです。

このプールはオフライン (エクスポート後) であり、現在はインポートできません。

このプールがどのように作成されたかの履歴を調べたところ、過去に以下のコマンドで作成されていました。

zpool create -m /volumes/delta -o autoreplace=on delta raidz2 c0t5000C500573978EBd0 c0t5000C50057397933d0 c0t5000C50057397C47d0 c0t5000C5005739997Fd0 c0t5000C50057399F87d0 c0t5000C5005739A90Bd0 c0t5000C5005739ABC7d0 c0t5000C5005739AC0Fd0 raidz2 c0t5000C50057398657d0 c0t5000C50057398E03d0 c0t5000C50057398EF7d0 c0t5000C50057398FAFd0 c0t5000C5005739A39Fd0 c0t5000C5005739AAFFd0 c0t5000C5005739AC3Fd0 c0t5000C5005739AE9Bd0

これは、raidz2-0 と raidz2-1 が 2 つの RAIDZ ミラー プールであることを示していますか?

はいの場合、raidz2-0 (3 つのディスク障害がある) よりも、raidz2-1 ディスク グループの修復を優先してオンラインにする必要がありますか?

答え1

  1. スペアを、spare-6 のサブカテゴリに UNAVAIL のディスクが 1 つだけある raidz2-1 グループにデタッチ/アタッチする必要がありますか?

予備ディスクは既に自動的に接続されraidz2-1、再同期されています。通常は、c0t5000C5005739AC3Fd0一度障害が発生したため、システムから切り離して削除します (または、リソースに余裕がない場合は、別のシステムで再利用して最善の結果を期待します)。

しかし、それはまだダウンしているので、あなたにとっては役に立ちませんraidz2-0どれでもzpool 内の vdev に障害が発生すると、プール全体とその中のすべてのデータが失われます。構成されたパリティを維持できない場合、各 vdev は、内部で十分な数のディスクが故障したために障害が発生します。この場合、各 Z2 vdev は 2 つのディスクの損失に耐えることができますが、そのうちの 1 つは 3 つのディスクを失っています。

  1. まだ 3 つのディスクが使用できない raidz2-0 グループにスペアを接続/切断する必要がありますか?

まず、現在、実際のスペアはありません。 から動作中のディスクを削除したとしてもraidz2-1(推奨されません)、 の故障したディスクを修復するまでは何も得られませんraidz2-0。パリティ データはどこかから取得する必要があり、この場合は故障したディスクから取得する必要があります。少なくとも 1 つのディスクが動作しない場合は、バックアップから復元するのが最善策です。

このプールがどのように作成されたかの履歴を調べたところ、過去に以下のコマンドで作成されていました。 zpool create -m /volumes/delta [...] これは、raidz2-0 と raidz2-1 が 2 つの RAIDZ ミラー プールであることを示していますか?

いいえ、プールは 2 つのストライプ化された vdev で構成され、それぞれが raidz2 冗長性と 8 つのディスクで構成されています。各 vdev で失われるディスクは最大 2 つです。いずれか 1 つで 3 つ失われると、ゲームオーバーになります。

ZFS では、すべての冗長性は vdev レベルで処理されます。プールは常にすべての既存の vdev にストライプ化されます。いずれかの vdev に障害が発生すると、プールも障害になります。ミラーリングは vdev の冗長性の一種であり、raidz1/z2/z3 とは互換性がありません (異なる冗長性タイプの vdev を組み合わせて使用​​できますが、最も弱いタイプによってプールの強度が決まり、パフォーマンスが低下するため、これはお勧めできません)。

はいの場合、raidz2-0 (3 つのディスク障害がある) よりも、raidz2-1 ディスク グループの修復を優先してオンラインにする必要がありますか?

いいえ、まず を修正する必要がありますraidz2-0


これらはすべてSeagate製で、SEAGATE Rev. A001とSEAGATE Rev. 0002が混在しており、サイズは1.82TBです。

これは今は役に立ちませんが、将来的には役立つかもしれません。「不良ドライブのバッチ」が発生するのを防ぐために、メーカーとモデル、さらには製造日を混ぜて組み合わせることをお勧めします。たとえば、4 つの主要メーカー (Seagate、Western Digital、Hitachi、Toshiba) のディスクをそれぞれ 4 枚ずつ購入し、vdev で 2 対 2 に分割すると、1 つのメーカーのすべてのディスクが同時に故障した場合でも、プールは機能します。

関連情報