ホットスペア機能を使って、ストレージプールで障害が発生したデバイスまたはエラー状態のデバイスを交換するために使用するディスクを指定できます。ホットスペアデバイスは、スペアが障害の発生したデバイスを置き換えるまで、プール内で非アクティブです。
次の方法を使って、デバイスをホットスペアとして指定できます。
プールを作成するとき。
$ zpool create pool keyword devices spare devices
プールが作成されたあと。
$ zpool add pool spare devices
ホットスペアを削除するには次のコマンドを使用します。
$ zpool remove pool spare-device
ホットスペアデバイスは、プール内でもっとも容量の大きいディスク以上である必要があります。それよりも小さいスペアデバイスをホットスペアとして指定することもできます。しかし、そのデバイスで障害の発生したデバイスの置き換えがアクティブにされたときに、操作は次のエラーメッセージで失敗します。
cannot replace disk3 with disk4: device is too small
複数のシステムによるアクセスが表示されている場合でも、複数のプールまたは複数のシステムでスペアを共有しないでください。1 つのシステムだけで複数あるプールのすべてを制御しなければならない場合は、それらのプール間で共有されるようにディスクを構成できます。ただし、この方法には危険が伴います。たとえば、共有スペアを使用しているプール A がエクスポートされる場合、プール A のエクスポート中に、プール B がそのスペアを知らずに使用する可能性があります。プール A がインポートされると、両方のプールが同じディスクを使用しているためデータが破損する可能性があります。
次の方法でホットスペアをアクティブにします。
手動の交換 - zpool replace コマンドを実行して障害が発生したデバイスを置き換えます。障害が発生したディスクを置き換えるために新しいデバイスが挿入される場合、スペアを切り離すことによって新しいデバイスをアクティブにします。
自動交換 - FMA エージェントは障害を検出し、スペアが使用できるかどうかを判別して、障害の発生したデバイスを自動的に置き換えます。ホットスペアは UNAVAIL 状態のデバイスも置き換えます。
プールの autoreplace プロパティーを on に設定した場合は、新しいデバイスが挿入されオンライン処理が完了すると、スペアは自動的に切り離されてスペアプールに戻されます。
ホットスペアを非アクティブにするには、次のアクションのいずれかを実行します。
ストレージプールからホットスペアを削除する。
障害の発生したディスクを物理的に置き換えたあとにホットスペアを切り離す。使用例 14, 障害が発生したディスクの置き換え後にホットスペアを切り離すを参照してください。
別のホットスペアと一時的または永続的に交換する。使用例 15, 障害が発生したディスクを切り離してホットスペアを使用するを参照してください。
この例では、次の構成を前提としています。
system1 の mirror-1 構成で、ディスク c0t5000C500335BA8C3d0 が失敗しました。次の部分的な出力には、mirror-1 のステータスが表示されます。
$ zpool status system1
.
mirror-1 DEGRADED 0 0 0
c0t5000C500335BD117d0 ONLINE 0 0 0
c0t5000C500335BA8C3d0 UNAVAIL 0 0 0障害の発生したディスク
障害の発生したディスクを置き換えるために、プールのスペア c0t5000C500335E106Bd0 は自動的にアクティブにされます。
新しいデバイス c0t5000C500335DC60Fd0 で障害が発生したディスクを物理的に置き換えます。
この例では、新しいデバイスでのプールの再構成から開始します。最初に、zpool replace を実行して、削除するデバイスについて ZFS に通知します。次に、必要に応じて、zpool detach を実行してスペアを非アクティブにし、そのスペアをスペアプールに戻します。この例では、最後に、新しい構成のステータスを表示し、ストレージプールのデバイスを置き換える方法のStep 6 に示されているように、障害の発生したデバイスに対して適切な FMA の手順を実行します。
$ zpool replace system1 c0t5000C500335BA8C3d0 $ zpool detach system1 c0t5000C500335E106Bd0 $ zpool status system1 . . mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0交換デバイス spares c0t5000C500335E106Bd0 AVAIL 非アクティブにするスペア $ fmadm faulty $ fmadm repaired zfs://pool=name/vdev=guid使用例 15 障害が発生したディスクを切り離してホットスペアを使用する
新しい交換用デバイスの代わりに、スペアデバイスを永続的な交換用として使用できます。この場合、単純に障害が発生したディスクを切り離します。障害が発生したディスクをあとで修復する場合、そのディスクを新しい指定スペアとしてプールに追加できます。
この例では、使用例 14, 障害が発生したディスクの置き換え後にホットスペアを切り離すと同じ前提を使用します。
プール system1 の mirror-1 構成は機能低下状態にあります。
$ zpool status system1
.
mirror-1 DEGRADED 0 0 0
c0t5000C500335BD117d0 ONLINE 0 0 0
c0t5000C500335BA8C3d0 UNAVAIL 0 0 0障害の発生したディスク
障害の発生したディスクを置き換えるために、プールのスペア c0t5000C500335E106Bd0 は自動的にアクティブにされます。
この例は、スペアで置き換えられた障害が発生したディスクを切り離すことから開始します。
$ zpool detach system1 c0t5000C500335BA8C3d0
$ zpool status system1
.
.
mirror-1 ONLINE 0 0 0
c0t5000C500335BD117d0 ONLINE 0 0 0
c0t5000C500335E106Bd0 ONLINE 0 0 0障害の発生したディスクをスペアに交換
errors: No known data errors
その後、スペアデバイスとしてプールに修復したディスクを追加し直します。障害の発生したデバイスに対して適切な FMA の手順を実行して、手順を完了します。
$ zpool add system1 spare c0t5000C500335BA8C3d0 $ zpool status system1 . . mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335E106Bd0 ONLINE 0 0 0以前のスペア spares c0t5000C500335BA8C3d0 AVAIL スペアとして修復されるディスク errors: No known data errors $ fmadm faulty $ fmadm repaired zfs://pool=name/vdev=guid