ホットスペア機能を使って、1 つ以上のストレージプールで障害が発生したデバイスまたはエラー状態のデバイスを置き換えるために使用するディスクを指定できます。「ホットスペア」として指定したデバイスはプール内ではアクティブデバイスではありませんが、プールのアクティブデバイスで障害が発生した場合には、そのデバイスがホットスペアに自動的に置き換えられます。
次の方法を使って、デバイスをホットスペアとして指定できます。
プール作成時に zpool create コマンドを使用する.
プール作成後に zpool add コマンドを使用する.
次の例は、プールの作成時にデバイスをホットスペアとして指定する方法を示しています。
# zpool create trinity mirror c1t1d0 c2t1d0 spare c1t2d0 c2t2d0 # zpool status trinity pool: trinity state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM trinity ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c1t2d0 AVAIL c2t2d0 AVAIL errors: No known data errors |
次の例は、プールの作成後にプールに追加することによってホットスペアを指定する方法を示しています。
# zpool add neo spare c5t3d0 c6t3d0 # zpool status neo pool: neo state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM neo ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c3t3d0 ONLINE 0 0 0 c4t3d0 ONLINE 0 0 0 spares c5t3d0 AVAIL c6t3d0 AVAIL errors: No known data errors |
ホットスペアをストレージプールから削除するときは、zpool remove コマンドを使用します。次に例を示します。
# zpool remove zeepool c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c1t3d0 AVAIL errors: No known data errors |
ストレージプールが現在使用しているホットスペアは、削除できません。
ZFS ホットスペアを使用するときは、次の点を考慮してください。
現時点では、zpool remove コマンドはホットスペア、キャッシュデバイス、およびログデバイスを削除するときにのみ使用できます。
ディスクをホットスペアとして追加するには、ホットスペアの容量が、プール内でもっとも容量の大きいディスク以上である必要があります。小さなディスクをスペアとしてプールに追加することも許可されています。ただし、小さなスペアディスクがアクティブになると、自動的または zpool replace コマンドにより、次のようなエラーで操作が失敗します。
cannot replace disk3 with disk4: device is too small |
ホットスペアをアクティブにするには、次のようにします。
手動で置き換える – zpool replace コマンドを使用して、ストレージプール内で障害の発生したデバイスをホットスペアで置き換えます。
自動的に置き換える – FMA エージェントは、エラー状態を検出すると、プールを検査して使用可能なホットスペアがあるかどうかを調べます。ある場合は、障害の発生したデバイスを使用可能なスペアに置き換えます。
現在使用しているホットスペアで障害が発生した場合、FMA エージェントはそのスペアを切り離し、置き換えた状態を取り消します。続いてエージェントは、別のホットスペアが使用可能であれば、そのスペアを使ってデバイスを置き換えようとします。現時点では、デバイスがシステムから見えなくならないと ZFS 診断エンジンがエラー状態を生成しないので、この機能もその事実に制限されます。
障害の発生したデバイスにアクティブなスペアがある場合にデバイスを物理的に交換するときは、zpool detach コマンドを使用して元のデバイスを再度アクティブにして、スペアを切り離すことができます。プールの autoreplace プロパティーをオンに設定した場合は、新しいデバイスが挿入されオンライン処理が完了すると、スペアは自動的に切り離されてスペアプールに戻されます。
zpool replace コマンドを使用して、デバイスをホットスペアに手動で置き換えることができます。例 4–8 を参照してください。
ホットスペアが使用可能な場合、エラー状態のデバイスは自動的に置き換えられます。次に例を示します。
# zpool status -x pool: zeepool state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: resilver completed after 0h0m with 0 errors on Mon Jan 11 10:20:35 2010 config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 DEGRADED 0 0 0 c2t1d0 UNAVAIL 0 0 0 cannot open c2t3d0 ONLINE 0 0 0 88.5K resilvered spares c2t3d0 INUSE currently in use errors: No known data errors |
現時点では、次の方法でホットスペアを非アクティブにできます。
ストレージプールからホットスペアを削除する。
障害の発生したディスクを物理的に置き換えたあとでホットスペアを切り離す。例 4–9 を参照してください。
ホットスペア内で一時的または永続的に交換を行う。例 4–10 を参照してください。
この例では、zpool replace コマンドを使用して、ディスク c2t1d0 をホットスペア c2t3d0 と置き換えます。
# zpool replace zeepool c2t1d0 c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 90K resilvered spares c2t3d0 INUSE currently in use errors: No known data errors |
その後、ディスク c2t1d0 を切り離します。
# zpool detach zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:00:50 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 90K resilvered errors: No known data errors |
次の例では、障害が発生したディスク (c2t1d0) を物理的に置き換えて、zpool replace コマンドを使って ZFS に通知します。
# zpool replace zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 10:08:44 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 90K resilvered c2t1d0 ONLINE 0 0 0 spares c2t3d0 INUSE currently in use errors: No known data errors |
その後、zpool detach コマンドを使ってホットスペアをスペアプールに戻すことができます。次に例を示します。
# zpool detach zeepool c2t3d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed with 0 errors on Wed Jan 20 10:08:44 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 spares c2t3d0 AVAIL errors: No known data errors |
障害が発生したディスクを、そのディスクを現在置き換えようとしているホットスペア内で一時的または永続的に交換することによって置き換えたい場合は、元の (障害が発生した) ディスクを切り離します。障害が発生したディスクが最終的に置き換えられたら、そのディスクをスペアとしてストレージプールに再び追加できます。次に例を示します。
# zpool status zeepool pool: zeepool state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-2Q scrub: resilver in progress for 0h0m, 70.47% done, 0h0m to go config: NAME STATE READ WRITE CKSUM zeepool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t2d0 ONLINE 0 0 0 spare-1 DEGRADED 0 0 0 c2t1d0 UNAVAIL 0 0 0 cannot open c2t3d0 ONLINE 0 0 0 70.5M resilvered spares c2t3d0 INUSE currently in use errors: No known data errors # zpool detach zeepool c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 13:46:46 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 70.5M resilvered errors: No known data errors (Original failed disk c2t1d0 is physically replaced) # zpool add zeepool spare c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Wed Jan 20 13:48:46 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 70.5M resilvered spares c2t1d0 AVAIL errors: No known data errors |