web-dev-qa-db-ja.com

障害のあるzpoolリカバリー-ドナーを清掃できるように、一部のディスクを新しいディスクに追加できますか?

劣化して無視されたプールを回復しようとしている最中です。その後、2番目のミラーメンバーに障害が発生し、プールに障害が発生しました。何らかの理由で、このプールにそのオプションが設定されていても、スペアが自動置換されることはありませんでしたが、それは重要ではありません。

これはOmniOSサーバー上にあります。プール情報は次のとおりです。

  pool: dev-sata1
 state: UNAVAIL
status: One or more devices are faulted in response to IO failures.
action: Make sure the affected devices are connected, then run 'zpool clear'.
   see: http://illumos.org/msg/ZFS-8000-JQ
  scan: resilvered 1.53T in 21h6m with 0 errors on Sat Jun 17 13:18:04 2017
config:

        NAME                       STATE     READ WRITE CKSUM
        dev-sata1                  UNAVAIL    227   623     0  insufficient replicas
          mirror-0                 ONLINE       0     0     0
            c1t5000C5003ECEEC42d0  ONLINE       0     0     0
            c1t5000C5003ED6D008d0  ONLINE       0     0     0
          mirror-1                 ONLINE       0     0     0
            c1t5000C500930358EAd0  ONLINE       0     0     0
            c1t5000C500930318E1d0  ONLINE       0     0     0
          mirror-3                 ONLINE       0     0     0
            c1t5000C5003F362DA7d0  ONLINE       0     0     0
            c1t5000C5003F365D94d0  ONLINE       0     0     0
          mirror-4                 ONLINE       0     0     0
            c1t5000C50064D11652d0  ONLINE       0     0     0
            c1t5000C500668EC894d0  ONLINE       0     0     0
          mirror-5                 ONLINE       0     0     0
            c1t5000C5007A2DBE23d0  ONLINE       0     0     0
            c1t5000C5007A2DF29Cd0  ONLINE       0     0     0
          mirror-6                 UNAVAIL    457 1.22K     5  insufficient replicas
            15606980839703210365   UNAVAIL      0     0     0  was /dev/dsk/c1t5000C5007A2E1359d0s0
            c1t5000C5007A2E1BAEd0  FAULTED     37 1.25K     5  too many errors
          mirror-7                 ONLINE       0     0     0
            c1t5000C5007A34981Bd0  ONLINE       0     0     0
            c1t5000C5007A3929B6d0  ONLINE       0     0     0
        logs
          mirror-2                 ONLINE       0     0     0
            c1t55CD2E404B740DD3d0  ONLINE       0     0     0
            c1t55CD2E404B7591BEd0  ONLINE       0     0     0
        cache
          c1t50025388A0952EB0d0    ONLINE       0     0     0
        spares
          c1t5000C5002CD7AFB6d0    AVAIL

ディスク「c1t5000C5007A2E1BAEd0」は現在データ復旧施設にありますが、私たちが提供したドナーディスクからのものを含め、交換用ヘッドの供給を使い果たしました。失われているとマークされたディスクは最終的に見つかり、回復できる可能性がありますが、それが他のディスクと比較してどれほど古くなっているか、そしてそれが一貫性にとって何を意味するかわからないため、これは最後の結果です。寄付者と見なされるには、シリアルの最初の3文字とサイトコードが一致している必要があります。その基準に一致し、プールがダウンした時点で正常であった他の4つのディスクがプールにあります。

それで、私の質問に:ddを使用してドナーディスク全体を新しいディスクにコピーした後、他の4つのドナー互換ディスク(シリアル番号に基づく)を4つの新しいディスクに置き換えることは可能ですか?

ディスクをインポートするときに、プールにWWNまたはシリアルが格納されているもの(キャッシュ以外に格納されている場合)と一致する必要があるかどうか、または各ディスクのメタデータをスキャンしてプールをインポートできるかどうかを判断するかどうかが不明です。後者が当てはまる場合、さらに4つのドナーディスクを取得するという私の戦略は実行可能ですか?

3
Dirk

ddは絶対に使用しないでください! ZFSにはこのための組み込みコマンドがあります。これは Oracleのドキュメント で適切に説明されています。 zpool replace tank <old device> <new device>を使用して操作の主要部分を実行できるはずですが、他にもいくつかの補助コマンドがあります。

ディスクを交換するための基本的な手順は次のとおりです。

  • 必要に応じて、zpool offlineコマンドを使用してディスクをオフラインにします。
  • 交換するディスクを取り外します。
  • 交換用ディスクを挿入します。
  • zpool replaceコマンドを実行します。例:zpool replace tank c1t1d0
  • zpool onlineコマンドを使用して、ディスクをオンラインにします。

Manページにもいくつかの追加情報があります。

zpool replace [-f]  pool device [new_device]

 Replaces old_device with new_device.  This is equivalent to attaching
 new_device, waiting for it to resilver, and then detaching
 old_device.

 The size of new_device must be greater than or equal to the minimum
 size of all the devices in a mirror or raidz configuration.

 new_device is required if the pool is not redundant. If new_device is
 not specified, it defaults to old_device.  This form of replacement
 is useful after an existing disk has failed and has been physically
 replaced. In this case, the new disk may have the same /dev path as
 the old device, even though it is actually a different disk.  ZFS
 recognizes this.

 -f  Forces use of new_device, even if its appears to be in use.
     Not all devices can be overridden in this manner.

もちろん、回復したいデータを含むプールで初めて試すのではなく、同様に構成されたzpoolに仮想ディスクがあるVMで最初に試すのがおそらく最善です。 。

ちなみに、 このドキュメントの他の部分 はホットスペアについてもう少し説明しており、ホットスペアが使用されなかった理由を説明するポインタが含まれている可能性があります。次回:(。それが再び壊れないことを確認するために少しいじくり回すことは価値があるかもしれません:(。

2
Dan