zpool add コマンドに加えて、zpool attach コマンドを使用して新しいデバイスを既存のミラー化または非ミラー化デバイスに追加できます。
ディスクを接続してミラー化ルートプールを作成する場合は、ミラー化ルートプールを構成する方法 (SPARC または x86/VTOC)を参照してください。
ZFS ルートプール内のディスクを交換する場合は、ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)を参照してください。
使用例 3-5 2 方向ミラー化ストレージプールを 3 方向ミラー化ストレージプールに変換するこの例では、新しいデバイス c2t1d0 を既存のデバイス c1t1d0 に接続すると、既存の 2 方向ミラー zeepool が 3 方向ミラーに変換されます。
# 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 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach zeepool c1t1d0 c2t1d0 # zpool status zeepool pool: zeepool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 12:59:20 2010 config: NAME STATE READ WRITE CKSUM zeepool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 592K resilvered errors: No known data errors
たとえば、既存のデバイスが 3 方向ミラーの一部である場合は、新規デバイスを接続すると 4 方向ミラーが作成されます。どのような場合にも、新しいデバイスを接続すると、すぐに再同期化が開始されます。
使用例 3-6 非冗長な ZFS ストレージプールをミラー化された ZFS ストレージプールに変換するまた、zpool attach コマンドを使用して、非冗長なストレージプールを冗長なストレージプールに変換できます。例:
# zpool create tank c0t1d0 # zpool status tank pool: tank state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 errors: No known data errors # zpool attach tank c0t1d0 c1t1d0 # zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 14:28:23 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 73.5K resilvered errors: No known data errors
zpool detach コマンドを使用して、ミラー化されたストレージプールからデバイスを切り離すことができます。例:
# zpool detach zeepool c2t1d0
ただし、データのほかの有効なレプリカが存在しない場合、この操作は失敗します。例:
# zpool detach newpool c1t2d0 cannot detach c1t2d0: only applicable to mirror and replacing vdevs