Oracle Solaris ZFS 管理ガイド

ProcedureZFS ルートプールのディスクを置き換える方法

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

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

一部のハードウェアでは、故障したディスクを交換するための 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
# zpool replace rpool c1t0d0s0
# zpool online rpool c1t0d0s0
# zpool status rpool
<Let disk resilver before installing the boot blocks>
SPARC# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0

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

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


/pci@8,700000/pci@3/scsi@5/sd@a,0

交換用起動ディスク (c1t9d0s0) のパス名は次のとおりです。


/pci@8,700000/pci@3/scsi@5/sd@9,0
  1. 交換用ディスク (新しいディスク) を物理的に接続します。

  2. 新しいディスクに SMI ラベルが付けられていてスライス 0 があることを確認してください。

    ルートプールに使用するディスクのラベルを変更する方法については、次のサイトを参照してください。

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  3. 新しいディスクをルートプールに接続します。

    次に例を示します。


    # zpool attach rpool c1t10d0s0 c1t9d0s0
    
  4. ルートプールのステータスを確認します。

    次に例を示します。


    # zpool status rpool
      pool: rpool
     state: ONLINE
    status: One or more devices is currently being resilvered.  The pool will
            continue to function, possibly in a degraded state.
    action: Wait for the resilver to complete.
     scrub: resilver in progress, 25.47% done, 0h4m to go
    config:
    
            NAME           STATE     READ WRITE CKSUM
            rpool          ONLINE       0     0     0
              mirror-0     ONLINE       0     0     0
                c1t10d0s0  ONLINE       0     0     0
                c1t9d0s0   ONLINE       0     0     0
    
    errors: No known data errors
  5. ディスクの再同期化が完了したら、新しいディスクにブートブロックを適用します。

    次のような構文を使用します。

    • SPARC:


      # installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t9d0s0
      
    • x86:


      # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0
      
  6. 新しいディスクから起動できることを確認します。

    たとえば、SPARC システムの場合、次のような構文を使用します。


    ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
    
  7. 新しいディスクからシステムが起動した場合は、古いディスクを切り離します。

    次に例を示します。


    # zpool detach rpool c1t10d0s0
    
  8. システムが新しいディスクから自動的に起動するように設定します。そのためには、eeprom コマンドまたは SPARC ブート PROM のsetenv コマンドを使用するか、PC BIOS を再設定します。