劣化して無視されたプールを回復しようとしている最中です。その後、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つのドナーディスクを取得するという私の戦略は実行可能ですか?
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で最初に試すのがおそらく最善です。 。
ちなみに、 このドキュメントの他の部分 はホットスペアについてもう少し説明しており、ホットスペアが使用されなかった理由を説明するポインタが含まれている可能性があります。次回:(。それが再び壊れないことを確認するために少しいじくり回すことは価値があるかもしれません:(。