Hitachi Dynamic Link Manager ユーザーズガイド(Solaris用)

[目次][索引][前へ][次へ]


3.9.2 ZFSブートディスク環境からローカルブートディスク環境への移行手順(Solaris 11.0~11.3の場合)

Solaris 11.0~11.3の場合に,ZFSブートディスク環境からローカルブートディスク環境へ移行する手順を次に示します。

現在のHDLMデバイス上のブートディスク環境をローカルブートディスク環境に移行するには,ブートディスクと同容量のLUが必要となります。

注意事項
  • EFIラベルの手順はSolaris 11.1以降でサポートします。
  • VTOCラベルの手順はOSバージョンでの制限はありません。
この項の構成
(1) 新しいブート環境を作成する
(2) 移行後のZFSブートディスク環境を構築する
(3) ZFSブートディスク環境に移行する
(4) 再起動したあと確認する

(1) 新しいブート環境を作成する

  1. zpool importコマンドを実行して,ルートプール(rpool)のIDを調査します。
    # zpool import
      pool: rpool
        id: 6462316201492788659
     state: ONLINE
    status: The pool is formatted using an older on-disk version.
    action: The pool can be imported using its name or numeric identifier, though
            some features will not be available without an explicit 'zpool upgrade'.
    config:
    
            rpool       ONLINE
              c1t0d0s0  ONLINE
    
  2. zpool importコマンドをIDを指定して実行し,ルートプールをインポートします。
    # zpool import 6462316201492788659
    cannot mount 'rpool/export' on '/export': directory is not empty
    cannot mount 'rpool/export' on '/export': directory is not empty
    cannot mount 'rpool/export/home' on '/export/home': failure mounting parent dataset
    
    ルートプールをインポートすると,上記のようにマウントできないことを示すメッセージが出力されます。これは,hdlmpool/exportを現在使用しているために発生する現象です。このメッセージは無視して,以降の手順を実施してください。
    ブートディスクを作成しようとしているローカルディスクにルートプールがない場合は,ルートプールを作成します。ローカルディスクのデバイスファイルのスライス0に全ディスクの容量を割り当ててください。
    # zpool create -f rpool(ローカルディスクのデバイスファイル名
    ローカルディスクのデバイスファイル名がc1t0d0disk0)である場合の例を次に示します。
    • VTOCラベルの場合
      VTOCラベルの場合は,HDLMデバイス名のあとにスライス0を指定してください。
      # zpool create -f rpool c1t0d0s0
    • EFIラベルの場合
      EFIラベルの場合は,HDLMデバイス名のあとにスライスは指定しないでください。
      # zpool create -f rpool c1t0d0
  3. ルートプールをインポートした結果,rpool/exportのZFSファイルシステムが存在している場合は,次回起動時にマウントしないように設定します。 rpool/exporthdlmpool/exportとマウントポイントが同じであるため,次回起動時にマウントできません。このため,以下の設定を行い,rpool/exportをマウントしないように設定します。
    # zfs set canmount=off rpool/export
    # zfs set canmount=off rpool/export/home
    
  4. beadm createコマンドで新しいブート環境を作成します。
    # beadm create -p インポートしたローカルディスク上のルートプール名 -a 任意のZFSブートディスク環境名
    ルートプール名を「rpool」,ZFSブートディスク環境名を「solaris-2」とした場合の例を次に示します。ZFSブートディスク環境名はbeadm listコマンドで確認して,重複のない名称を指定してください。
    # beadm create -p rpool -a solaris-2
  5. beadm listコマンドを実行して,ZFSブートディスク環境が作成されていることを確認します。
    作成したZFSブートディスク環境「hdlmboot」行の,「Active」が「R」となっていることを確認してください。
    # beadm list
    BE         Active Mountpoint Space Policy Created
    --         ------ ---------- ----- ------ -------
    hdlmboot   NR     /          2.06G static 2011-12-06 11:37
    solaris    -      -          2.93G static 2011-11-29 14:42
    solaris-2  R      -          4.84G static 2011-12-11 14:01
    
  6. Solaris 11.2以降の場合は,次のコマンドを実行してください。
    # zfs set canmount=off rpool/VARSHARE/zones
    このコマンドを実行しないと,手順8でホストを再起動したときに,メンテナンスモードで起動しますので注意してください。
  7. eepromコマンドを実行して,移行後のデバイスをブートデバイスに設定します。
    ローカルディスクとして,disk0にブート環境を設定した場合は以下のように設定します。
    # eeprom boot-device=disk0
    
  8. initコマンドを実行して,ホストを再起動します。
    # init 6
    ホストを再起動するとき,rebootコマンドは使わないでください。
  9. beadm listコマンドを実行して,作成したブート環境「solaris-2」からOSがブートされたことを確認してください。
    作成したブート環境「solaris-2」行の,「Active」が「NR」となっていることを確認してください。
    # beadm list
    BE         Active Mountpoint Space Policy Created
    --         ------ ---------- ----- ------ -------
    hdlmboot   R      -          2.06G static 2011-12-06 11:37
    solaris    -      -          2.93G static 2011-11-29 14:42
    solaris-2  NR     /          4.84G static 2011-12-11 14:01
    

(2) 移行後のZFSブートディスク環境を構築する

移行後のZFSブートディスク環境を構築する手順について説明します。

ここでは,移行前のローカルブートディスク環境のルートプール名を「hdlmpool」,移行後のZFSブートディスク環境のルートプール名を「rpool」とします。スワップデバイスおよびダンプデバイスをZFSブートディスク環境に移行します。

  1. ファイルシステムとして,rpool/swapが存在しない場合はzfs createコマンドを実行して,移行後のルートプール「rpool」にファイルシステムのスワップデバイスを作成し,使用可能にします。また,hdlmpoolのスワップデバイスは使用を解除します。スワップデバイスおよびブロックのサイズは運用環境によって異なります。
    # zfs create -V 4G -b 8k rpool/swap
    # swap -a /dev/zvol/dsk/rpool/swap
    # swap -d /dev/zvol/dsk/hdlmpool/swap
    
  2. 移行後のZFSブートディスク環境の/etc/vfstabファイルを編集して,スワップデバイスの定義を移行前の環境のローカルブートディスクから移行後の環境のZFSブートディスクに変更します。
    例を次に示します。

    変更前
    /dev/zvol/dsk/hdlmpool/swap - - swap - no -

    変更後
    /dev/zvol/dsk/rpool/swap - - swap - no -
  3. ファイルシステムとして,rpool/dumpが存在しない場合は,zfs createコマンドを実行して,移行後のルートプール「rpool」にファイルシステムのダンプデバイスを作成します。
    ダンプデバイスのサイズは運用環境によって異なります。
    # zfs create -V 3G rpool/dump
  4. dumpadmコマンドを実行して,移行後のZFSブートディスク環境のダンプデバイスに変更します。
    # dumpadm -d /dev/zvol/dsk/rpool/dump
  5. dumpadmコマンドを実行して,ダンプデバイスが移行後の「rpool/dump」に変更されたことを確認してください。
    # dumpadm
    Dump content: kernel pages
    Dump device: /dev/zvol/dsk/rpool/dump (dedicated)
    Savecore directory: /var/crash
    Savecore enabled: yes
    Save compressed: on
    

(3) ZFSブートディスク環境に移行する

hdlmpool/exportおよびhdlmpool/export/homeディレクトリ下のデータをZFSブートディスク環境に移行する手順について説明します。

移行する前に,移行前のローカルブートディスク環境にあるrpool/exportディレクトリ下のバックアップをしてください。

ここでは,移行前のZFSブートディスク環境のルートプール名を「hdlmpool」,移行後のローカルブートディスク環境のルートプール名を「rpool」とします。

  1. zfs snapshotのコマンドを実行して,ZFSブートディスク環境にあるhdlmpool/exportディレクトリのスナップショットを作成します。
    # zfs snapshot -r hdlmpool/export@2011-12-07.01
    
  2. zfs sendおよびzfs receiveコマンドを実行して,作成したスナップショットの/exportディレクトリ下のデータを,移行後のZFSブートディスク環境のルートプール「hdlmpool」にコピーします。rpool/exportはいったん削除して,hdlmpool/exportにあるデータで上書きします。移行前のローカルブートディスク環境にあるrpool/exportディレクトリ下のバックアップをしてください。
    # zfs destroy -r rpool/export
    # zfs send -vRp hdlmpool/export@2011-12-07.01 | zfs receive -uvdF rpool
    
  3. zfs listコマンドを実行して,移行後のZFSブートディスク環境のルートプール「rpool」にコピーされたことを確認します。
    # zfs list -r rpool
    NAME                          USED  AVAIL  REFER  MOUNTPOINT
    rpool                        42.7G   505G  73.5K  /rpool
    rpool/ROOT                   21.9G   505G    31K  legacy
    rpool/ROOT/solaris           21.5M   505G  1.95G  /
    rpool/ROOT/solaris-2          102M   505G  3.00G  /
    rpool/ROOT/solaris-2/var        1K   505G  8.03G  /var
    rpool/ROOT/solaris/var       18.2M   505G  7.65G  /var
    rpool/VARSHARE                216M   505G   216M  /var/share
    rpool/dump                   16.5G   505G  16.0G  -
    rpool/export                   86K   505G    32K  /export
    rpool/export/home              36K   505G    35K  /export/home
    rpool/swap                   4.13G   505G  4.00G  -
    
    /exportディレクトリ,および/export/homeディレクトリが表示されることを確認してください。
  4. hdlmpool/export/homehdlmpool/exportがマウントされている場合は,そのマウントを解除し,zpool exportコマンドを実行して,hdlmpoolをエクスポートします。
    移行前のhdlmpool/exportディレクトリがあると,再起動時に移行前のhdlmpool/exportディレクトリが先にマウントされ,移行後のrpool/exportディレクトリがマウントできないおそれがあります。
    # zfs umount hdlmpool/export/home
    # zfs umount hdlmpool/export
    # zpool export hdlmpool
    
  5. Solaris 11.2以降の場合は,次のコマンドを実行してください。
    # zfs set canmount=on rpool/VARSHARE/zones
    # zfs mount rpool/VARSHARE/zones
  6. initコマンドを実行して,ホストを再起動します。
    # init 6
    
    ホストを再起動するとき,rebootコマンドは使わないでください。
  7. beadm listコマンドを実行して,移行したブートデバイス「solaris-2」でブートされたことを確認してください。
    移行したブートデバイス「solaris-2」行の,「Active」が「NR」であることを確認してください。
    # beadm list
    BE         Active Mountpoint Space Policy Created
    --         ------ ---------- ----- ------ -------
    hdlmboot   R      -          2.06G static 2011-12-06 11:37
    solaris    -      -          2.93G static 2011-11-29 14:42
    solaris-2  NR     /          4.84G static 2011-12-11 14:01
    

(4) 再起動したあと確認する

再起動したあと,次の確認をしてください。

  1. dfコマンドを実行して,ファイルシステムがマウントされていることを確認します。
    # df
        / (rpool/ROOT/rboot):124234885 blocks 124234885 files
        /var (rpool/ROOT/rboot/var):124234885 blocks 124234885 files
        /export (rpool/export ):124234885 blocks 124234885 files
        /export/home (rpool/export/home):124234885 blocks 124234885 files
        /rpool (rpool ):124234885 blocks 124234885 files
    
    /root)ディレクトリ,/varディレクトリ,/exportディレクトリ,および/export/homeディレクトリが,移行後のルートプール「hdlmpool」でマウントされていることを確認してください。
  2. dumpadmコマンドを実行して,ダンプデバイスが移行後のルートプール「rpool」に移行されたことを確認します。
    /dev/zvol/dsk/rpool/dumpが有効であることを確認してください。