Oracle® Solaris 11.2 での ZFS ファイルシステムの管理

印刷ビューの終了

更新: 2014 年 12 月
 
 

ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)

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

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

  • ルートプールのディスクに障害が発生している。非冗長プールでディスクに障害が発生してシステムがブートしない場合は、CD やネットワークなどの代替メディアからブートしたあとでルートプールのディスクを置き換える必要があります。

  • zpool replace コマンドを使用して、ルートプールディスクでディスクを交換する場合は、ブートブロックを手動で適用する必要があります。

ミラー化ルートプール構成では、代替メディアからブートしなくてもディスクの置き換えを試行できる場合があります。zpool replace コマンドを使用して、障害が発生しているディスクを置き換えたり、追加ディスクがある場合は zpool attach コマンドを使用したりできます。追加ディスクの接続やルートプールディスクの切り離しの例については、次の手順を参照してください。

SATA ディスクを備えたシステムでは、故障したディスクを交換するための zpool replace 操作を試みる前に、ディスクをオフラインにして構成解除する必要があります。例:

# zpool offline rpool c1t0d0s0
# cfgadm -c unconfigure c1::dsk/c1t0d0
<Physically remove failed disk c1t0d0>
<Physically insert replacement disk c1t0d0>
# cfgadm -c configure c1::dsk/c1t0d0
<Confirm that the new disk has an SMI label and a slice 0>
# zpool replace rpool c1t0d0s0
# zpool online rpool c1t0d0s0
# zpool status rpool
<Let disk resilver before installing the boot blocks>
# bootadm install-bootloader

一部のハードウェアでは、交換用ディスクの装着後にそのディスクをオンラインにしたり再構成を行なったりする必要がありません。

  1. 交換用ディスクを物理的に接続します。
  2. 必要に応じて、ルートプールに接続する 2 つ目のディスクを準備します。
  3. 新しいディスクをルートプールに接続します。

    例:

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

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

  4. ルートプールのステータスを確認します。

    例:

    # 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
  5. 再同期化が完了したあとで新しいディスクからブートできることを確認します。

    SPARC システムの場合、たとえば次のようになります。

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

    交換用ディスクからのブートをテストできるように、また、交換用ディスクに障害が発生した場合に必要に応じて既存のディスクから手動でブートできるように、現在のディスクと新しいディスクのブートデバイスのパス名を特定します。次の例では、現在のルートプールのディスク (c2t0d0s0) は次のとおりです。

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

    次の例で、交換用ブートディスク (c2t1d0s0) は次のとおりです。

    boot /pci@1f,700000/scsi@2/disk@1,0
  6. 新しいディスクからシステムがブートした場合は、古いディスクを切り離します。

    例:

    # zpool detach rpool c2t0d0s0
  7. より小さいルートプールディスクをより大きいディスクに交換する場合は、プールの autoexpand プロパティーを設定して、プールのサイズを拡張します。

    既存の rpool プールサイズを判別します。

    # 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

    拡張した rpool プールサイズを確認します。

    # zpool list rpool
    NAME   SIZE  ALLOC  FREE  CAP  DEDUP  HEALTH  ALTROOT
    rpool  279G   146K  279G   0%  1.00x  ONLINE  -
  8. 新しいディスクから自動的にブートするようシステムをセットアップします。
    • SPARC: システムが新しいディスクから自動的にブートするように設定します。そのためには、eeprom コマンドまたはブート PROM の setenv コマンドを使用します。

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