Go to main content
Oracle® Solaris 11.3 での ZFS ファイルシステムの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

ZFS ルートプール内のディスクの交換

次の理由により、ルートプールのディスクの置き換えが必要になることがあります。

  • ルートプールが小さすぎるため、より大きいディスクに置き換えたい

  • ルートプールのディスクに障害が発生している。非冗長プールでは、ディスクに障害が発生してシステムがブートしなくなった場合は、CD やネットワークなどの別のソースからブートします。次に、ルートプールディスクを交換します。

zpool replace を使用してディスクを交換したあと、ブートブロックを手動で適用する必要があります。

ミラー化ルートプール構成では、別のソースからブートしなくても、ディスクを交換できます。障害が発生したディスクを交換するには、zpool replace を使用します。または、追加のディスクがある場合は、zpool attach コマンドを使用できます。

SMI (VTOC) ラベルが付いているルートプールディスクを交換している場合は、次の要件を満たしていることを確認してください。

ZFS ルートプールのディスクを交換する方法

  1. 交換用ディスクを物理的に接続します。
  2. 新しいディスクをルートプールに接続します。
    # zpool attach root-pool current-disk new-disk

    ここで、current-disk は、この手順の最後に切り離される古いディスクになります。

    適切なディスクのラベル付けとブートブロックが自動的に適用されます。


    注 -  ディスクに SMI (VTOC) ラベルが付いている場合、ディスクを指定するときは、必ずスライスを含めてください (c2t0d0s0 など)。
  3. ルートプールのステータスを表示し、再同期化が完了しているか確認します。

    再同期化が完了している場合は、出力に次のようなメッセージが含まれています。

    scan: resilvered 11.6G in 0h5m with 0 errors on Fri Jul 20 13:57:25 2014
  4. 新しいディスクから正常にブートできることを確認します。
  5. 正常にブートされたあと、古いディスクを切り離します。
    # zpool detach root-pool old-disk

    注 -  ディスクに SMI (VTOC) ラベルが付いている場合、ディスクを指定するときは、必ずスライスを含めてください (c2t0d0s0 など)。
  6. 接続されているディスクが既存のディスクより大きい場合は、ZFS の autoexpand プロパティーを有効にします。
    # zpool set autoexpand=on root-pool
  7. システムを新しいディスクから自動的にブートするように設定します。
    • SPARC: ブート PROM から eeprom コマンドまたは setenv コマンドを使用します。

    • x86: システム BIOS を再構成します。

使用例 18  ZFS ルートプール内のディスクの交換 (SPARC または x86/EFI (GPT)

この例では、rpool という名前のルートプール内の c2t0d0 を交換します。ここでは、交換用ディスク c2t1d0 がシステムに物理的に接続されたことを前提にしています。

# zpool attach rpool c2t0d0 c2t1d0
Make sure to wait until resilver is done before rebooting.

# zpool status rpool
pool: rpool 
state: ONLINE 
scan: resilvered 11.7G in 0h5m with 0 errors on Fri Jul 20 13:45:37 2012 
config:

NAME         STATE   READ  WRITE  CKSUM
rpool        ONLINE     0      0      0
  mirror-0   ONLINE     0      0      0
    c2t0d0   ONLINE     0      0      0
    c2t1d0   ONLINE     0      0      0 

errors: No known data errors

新しいディスク c2t1d0 からのブートテストを完了したら、c2t0d0 を切り離し、必要に応じて autoexpand プロパティーを有効にします。

# zpool detach c2t0d0

# zpool list rpool
NAME   SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
rpool  29.8G   152K  29.7G   0%  1.00x  ONLINE  -

# zpool set autoexpand=on rpool

# zpool list rpool
NAME   SIZE  ALLOC  FREE  CAP  DEDUP  HEALTH  ALTROOT
rpool  279G   146K  279G   0%  1.00x  ONLINE  -

システムを新しいディスクから自動的にブートするように設定して操作を完了します。

使用例 19  ルートプール内の SATA ディスクの交換 (SPARC または x86/EFI (GPT))

SATA ディスクを備えたシステムでは、障害が発生したディスクを zpool replace コマンドで交換する前に、そのディスクをオフラインにして構成解除する必要があります。例:

# zpool offline rpool c1t0d0
# cfgadm -c unconfigure c1::dsk/c1t0d0

障害が発生したディスク c1t0d0 を物理的に取り外し、交換用ディスク c1t0d0 を挿入します。一部のハードウェアでは、ディスクをオンラインにしたり、挿入された交換用ディスクを再構成したりする必要はありません。

# cfgadm -c configure c1::dsk/c1t0d0
# zpool online rpool c1t0d0
# zpool replace rpool c1t0d0
# zpool status rpool

x86 システムでは、再同期化が完了したあと、ブートブロックをインストールします。

x86# bootadm install-bootloader
使用例 20  ZFS ルートプール内のディスクの交換 (SPARC または x86/VTOC)

この例では、rpool という名前のルートプール内の c2t0d0s0 を交換します。ここでは、交換用ディスク c2t1d0s0 がシステムに物理的に接続されたことを前提にしています。

# zpool attach rpool c2t0d0s0 c2t1d0s0
Make sure to wait until resilver is done before rebooting.

# zpool status rpool
pool: rpool 
state: ONLINE 
scan: resilvered 11.7G in 0h5m with 0 errors on Fri Jul 20 13:45:37 2012 
config:

NAME         STATE   READ  WRITE  CKSUM
rpool        ONLINE     0      0      0
  mirror-0   ONLINE     0      0      0
    c2t0d0s0 ONLINE     0      0      0
    c2t1d0s0 ONLINE     0      0      0 

errors: No known data errors

新しいディスク c2t1d0s0 からのブートをテストします。c2t1d0s0 に障害が発生した場合は、古いディスク c2t0d0s0 からのブートもテストします。

ok boot /pci@1f,700000/scsi@2/disk@1,0

ok boot /pci@1f,700000/scsi@2/disk@0,0

ブートテストを完了したら、c2t0d0s0 を切り離し、必要に応じて autoexpand プロパティーを有効にします。

# zpool detach c2t0d0s0

# zpool list rpool
NAME   SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
rpool  29.8G   152K  29.7G   0%  1.00x  ONLINE  -

# zpool set autoexpand=on rpool

# zpool list rpool
NAME   SIZE  ALLOC  FREE  CAP  DEDUP  HEALTH  ALTROOT
rpool  279G   146K  279G   0%  1.00x  ONLINE  -

システムを新しいディスクから自動的にブートするように設定して操作を完了します。

使用例 21  ルートプール内の SATA ディスクの交換 (SPARC または x86 (VTOC))

SATA ディスクを備えたシステムでは、障害が発生したディスクを zpool replace コマンドで交換する前に、そのディスクをオフラインにして構成解除する必要があります。例:

# zpool offline rpool c1t0d0s0
# cfgadm -c unconfigure c1::dsk/c1t0d0

障害が発生したディスク c1t0d0 を物理的に取り外し、交換用ディスク c1t0d0 を挿入します。一部のハードウェアでは、ディスクをオンラインにしたり、挿入された交換用ディスクを再構成したりする必要はありません。

# cfgadm -c configure c1::dsk/c1t0d0

交換用ディスク c1t0d0s0 に SMI ラベルが付いており、スライス 0 が含まれていることを確認したら、交換作業に進みます。

# zpool replace rpool c1t0d0s0
# zpool online rpool c1t0d0s0
# zpool status rpool

再同期化が完了したあと、ブートブロックをインストールします。

# bootadm install-bootloader