zpool replace コマンドを使用して、ストレージプール内のデバイスを置き換えることができます。
$ zpool replace pool replaced-device [new-device]
冗長プールの同じ位置に交換用デバイスをインストールする場合は、置き換えられるデバイスのみを指定すればよい場合があります。一部のハードウェアでは、ZFS は同じ場所に新しいデバイスを認識します。ただし、別の場所に交換用デバイスをインストール場合、交換されるデバイスと新しいデバイスの両方を指定する必要があります。
置き換えられるデバイスの自動検出はハードウェアに依存しており、一部のプラットフォームではサポートされていない場合があります。さらに、一部のハードウェアタイプは autoreplace プールプロパティーをサポートします。このプロパティーが有効な場合に、同じ場所でデバイスを置き換えると、自動的にフォーマットおよび置き換えが実行されます。zpool replace コマンドの実行は不要です。
次のガイドラインに留意してください。
ホットスペアデバイス (使用可能な場合) は、システムの稼動中に削除されるデバイスを自動的に置き換えます。障害の発生したディスクを置き換えたあとに、zpool detach コマンドを使用してスペアの切り離しが必要になる場合があります。ホットスペアの切り離しについては、ストレージプール内のホットスペアをアクティブにする/非アクティブにするを参照してください。
削除してからふたたび挿入されたデバイスは自動的にオンラインにされます。この場合、置き換えは行われません。再挿入されたデバイスがオンラインに戻されると、交換用のホットスペアデバイスが自動的に削除されます。
デバイスをより大きい容量を持つデバイスで置き換える場合は、プールに新しいデバイスを追加したあと、そのデバイスは自動的にはフルサイズに拡張されません。autoexpand プールプロパティーが交換用 LUN の自動拡張を決定します。デフォルトでは、このプロパティーは無効です。より大きい LUN をプールに追加する前後に、このプロパティーを有効にできます。
SATA ディスクを備えた一部のシステムでは、オフラインにする前にディスクを構成解除する必要があります。このシステム上の同じスロット位置にあるディスクを置き換えようとしている場合は、このセクションの最初の例 (使用例 13, ミラー化プール内のデバイスを置き換える) で説明したように zpool replace コマンドを実行するだけでかまいません。SATA ディスクの置き換えの例については、使用例 55, ZFS ストレージプール内の SATA ディスクを置き換えるを参照してください。
新しいディスクへのデータの再同期化のため、ディスクの置き換えに時間がかかります。ディスクの置き換えの合間に zpool scrub コマンドを実行して、交換用デバイスが動作可能なこと、およびデータが正しく書き込まれることを確認することもできます。
デバイスの置き換えの詳細は、見つからないデバイスまたは削除されたデバイスを解決するおよび 破損したデバイスを交換または修復するを参照してください。
$ zpool offline pool device
冗長なストレージプールの場合、交換用のデバイスがプール内のもっとも小さいディスク以上であることを確認します。
出力で次の点を確認します。
新しいデバイスがリストされていることを確認します。
交換用のデバイスが WWN としてマークされているかどうかを確認し、デバイス ID が変更されたことを確認します。
新しいデバイスに新しい ID がある場合は、コマンドにその ID を含めます。
$ zpool replace pool replaced-device [new-device-ID]
$ zpool online pool new-device
$ fmadm repaired zfs://pool=name/vdev=guid
次の例では、プール system1 内の 2 つの 16G バイトディスクは 2 つの 72G バイトディスクで置き換えられます。ディスクの交換後に autoexpand プロパティーを有効にして、ディスクをその最大サイズまで拡張します。
$ zpool status system1 pool: system1 state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM system1 ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t16d0 ONLINE 0 0 0 c1t17d0 ONLINE 0 0 0 $ zpool list system1 NAME SIZE ALLOC FREE CAP HEALTH ALTROOT system1 16.8G 76.5K 16.7G 0% ONLINE - $ zpool replace system1 c1t16d0 c1t1d0 $ zpool replace system1 c1t17d0 c1t2d0 $ zpool list system1 NAME SIZE ALLOC FREE CAP HEALTH ALTROOT system1 16.8G 88.5K 16.7G 0% ONLINE - $ zpool set autoexpand=on system1 $ zpool list system1 NAME SIZE ALLOC FREE CAP HEALTH ALTROOT system1 68.2G 117K 68.2G 0% ONLINE -