Go to main content
Oracle® Solaris ゾーンの作成と使用

印刷ビューの終了

更新: 2016 年 11 月
 
 

非大域ゾーンの別のマシンへの移行について

共有ストレージを使用して非大域ゾーンを移行する方法

この手順を実行するには、大域管理者または大域ゾーン内で適切な承認を持つユーザーである必要があります。

ゾーンのストレージが rootzpool リソースを使用して構成されており、データセットリソースがなく、かつオプションで 1 つ以上の rpool リソースを含んでいる場合は、移行が迅速かつ単純になります。この手順では、ソースシステムとターゲットホスト (この手順の例では host1host2) の両方から、rootzpool および zpool リソースで参照されるストレージにアクセスできることが必要です。

  1. 管理者になります。

    詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

  2. 移行先ホストでゾーンを構成します。
    source# zonecfg -z zonename export -f /net/hostname/zonename.cfg
    target# zonecfg -z zonename -f /net/hostname/zonename.cfg

    例:

    host1# zonecfg -z my-zone export -f /net/my-host/my-zone.cfg
    host2# zonecfg -z my-zone -f /net/my-host/my-zone.cfg
  3. ゾーンを停止処理します。
    source# zoneadm -z zonename shutdown

    例:

    host1# zoneadm -z my-zone shutdown
  4. ソースホストからゾーンを切り離します。
    source# zoneadm -z zonename detach

    例:

    host1# zoneadm -z my-zone detach
  5. ゾーンを移行先ホストに接続します。

    オプション (–u–U) が必要になる場合があります。

    target# zoneadm -z zonename attach

    例:

    host2# zoneadm -z my-zone attach
  6. ゾーンをブートします。
    target# zoneadm -z zonename boot

    例:

    host2# zoneadm -z my-zone boot

統合アーカイブを使用して非大域ゾーンを変換する方法

  1. 管理者になります。

    詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

  2. 復旧用アーカイブを作成します。

    ソースシステムでこの手順を使用して、移行するゾーンの回復用アーカイブを作成します。

    source# archiveadm create -r -z zonename archive-name

    例:

    host1# archiveadm create -r -z my-zone /net/server/my-zone-archive.uar
  3. ソースの大域ゾーンにあるゾーンをアンインストールするか、またはそのゾーンの autoboot を false に設定します。
    source# zonecfg -z zonename set autoboot=false
  4. アーカイブからターゲットとなる移行先の大域ゾーンを構成します。
    target# zonecfg -z zonename create -a /net/server/zonename.uar

    例:

    host2# zonecfg -z my-zone create -a /net/server/my-zone-archive.uar
  5. アーカイブを使用してゾーンをインストールします。
    target# zoneadm -z zonename install -a archive-name
  6. 移行したゾーンをブートします。
    target# zoneadm -z zonename boot

関連項目

統合アーカイブの作成および配備の詳細は、Oracle Solaris 11.3 でのシステム復旧とクローン の 第 2 章, 統合アーカイブの操作を参照してください。

ZFS アーカイブを使用して別のホスト上の非大域ゾーンを変換したり、配備したりする方法

この手順を実行するには、大域管理者または大域ゾーン内で適切な承認を持つユーザーである必要があります。


注 -  Oracle Solaris の将来のリリースでは、ZFS アーカイブやその他の従来のアーカイブタイプに対するサポートが削除される可能性があります。Oracle Solaris 11.2 以降を実行しているシステムのアーカイブゾーン変換戦略として統合アーカイブをお勧めします。

この例では、zfs コマンドを使用して非大域ゾーンのアーカイブを作成する方法について説明します。このアーカイブはそのあと、別のシステムに接続されて配備されます。

この例では、ソースホストとターゲットホスト上の管理者が一時ファイルストレージ用の共有 NFS サーバーにアクセスできることを前提にしています。共有の一時領域が利用できない場合、scp セキュアコピー (リモートファイルのコピープログラム) などのほかの手段を使用すると、ソースマシンとターゲットマシン間でファイルをコピーできます。パスワードまたはパスフレーズが認証に必要な場合、scp プログラムはそれらの入力を求めます。

  1. 管理者になります。

    詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

  2. 移行するゾーン (この手順では my-zone) を停止処理します。
    source# zoneadm -z my-zone shutdown
  3. (オプション) ゾーンを切り離します。
    source# zoneadm -z my-zone detach

    切り離されたゾーンは、現在、構成済みの状態にあります。次回の大域ゾーンのブート時に、ゾーンは自動的にブートされません。

  4. ゾーンの構成をエクスポートします。
    source# mkdir /net/server/zonearchives/my-zone
    source# zonecfg -z my-zone export> /net/server/zonearchives/my-zone/my-zone.zonecfg
  5. gzip ZFS アーカイブを作成します。
    source# zfs list -H -o name /zones/my-zone
    rpool/zones/my-zone
    source# zfs snapshot -r rpool/zones/my-zone@v2v
    source# zfs send -rc rpool/zones/my-zone@v2v | gzip > /net/server/zonearchives/my-zone/my-zone.zfs.gz

    圧縮の使用はオプションですが、アーカイブの書き込み後の読み取り中に入出力の実行がより少ないため、通常圧縮した方がより高速です。詳細は、Oracle Solaris 11.3 での ZFS ファイルシステムの管理を参照してください。

  6. ターゲットシステムでゾーンを構成します。
    target# zonecfg -z my-zone -f /net/server/zonearchives/my-zone/my-zone.zonecfg

    次のシステムメッセージが表示されます。

    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  7. (オプション) 構成を表示します。
    target# zonecfg:my-zone> info
    zonename: my-zone
    zonepath: /zones/my-zone
    autoboot: false
    pool:
    net:
             address: 192.168.0.90
             physical: net0
  8. 構成に必要な調整を加えます。

    たとえば、ネットワーク物理デバイスがターゲットシステムで異なっていたり、構成の一部であるデバイスがターゲットシステムで異なる名前になっていたりします。

    target# zonecfg -z my-zone
    zonecfg:my-zone> select net physical=net0
    zonecfg:my-zone:net> set physical=net100
    zonecfg:my-zone:net> end
  9. 構成を確定して終了します。
    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
  10. 次のいずれかの方法を使用して、ゾーンをターゲットとなる移行先にインストールします。install サブコマンドを使用することをお勧めします。
    • install が正常に完了できるように、必要な最小の更新を実行して、ゾーンをインストールします。
      target# zoneadm -z my-zone install -p -a /net/server/zonearchives/my-zone/my-zone.zfs.gz

      このリリースでは、接続が正常に完了できるように、必要な最小の更新を実行して、ゾーンの attach を行うこともできます。更新が許可されている場合は、zoneadm attach の実行中にパブリッシャーのカタログがリフレッシュされます。

      target# zoneadm -z my-zone attach -u -a /net/server/zonearchives/my-zone/my-zone.zfs.gz
    • ゾーン内のすべてのパッケージを大域ゾーンと互換性のある最新バージョンに更新して、ゾーンをインストールします。
      target# zoneadm -z my-zone install -U -p -a /net/server/zonearchives/my-zone/my-zone.zfs.gz

      このリリースでは、ゾーン内のすべてのパッケージを大域ゾーンと互換性のある最新バージョンに更新して、ゾーンの attach を行うこともできます。

      target# zoneadm -z my-zone install -U -a /net/server/zonearchives/my-zone/my-zone.zfs.gz
    • ソフトウェアを更新せずに、ゾーンを新規ホストに接続します。
      target# zoneadm -z my-zone attach -a /net/server/zonearchives/my-zone/my-zone.zfs.gz

    注 -  install サブコマンドを使用することをお勧めします。このリリースでは、ゾーン内のすべてのパッケージを大域ゾーンと互換性のある最新バージョンに更新して、ゾーンのattachを行うこともできます。

トラブルシューティング

ストレージオブジェクトに既存のパーティション、zpool、または UFS ファイルシステムが含まれる場合は、install が失敗し、エラーメッセージが表示されます。インストールを続行し、既存のデータをすべて上書きするには、zoneadm install に対して –x force-zpool-create オプションを使用します。

ある ZFS プールから別のシステム内の別の ZFS プールにゾーンを移行する方法

次の手順は、ある ZFS プールから別のシステム内の別の ZFS プールにすべてのゾーンを移行する方法を示しています。

この手順で、ソース SysA 内のゾーンは、ターゲット SysB 内のプールに移動します。SysA 内の ZFS プールは rpool/zones であり、/zones でマウントされます。SysB 内のターゲットプールは newpool/zones です。移行されたゾーンの新しいゾーンパスは /newpool/zones です。

この手順ではまた、ターゲットプールがすでに存在することも前提にしています。

ZFS プールの作成の詳細は、Oracle Solaris 11.3 での ZFS ファイルシステムの管理 の 第 3 章, Oracle Solaris ZFS ストレージプールを作成および破棄するを参照してください。

始める前に

始める前に、次のことを確認する必要があります。

  1. 管理者になります。

    詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

  2. rpool/zones を使用するすべてのゾーンを停止して切り離します。

    この手順を、rpool/zones を使用しているすべてのゾーンに対して実行します。

    sysA# zonename=zone1 
    sysA# zoneadm -z $zonename shutdown 
    sysA# zoneadm -z $zonename detach 
    sysA# zonecfg -z $zonename export -f /zones/$zonename.cfg
  3. ソースプールのスナップショットを作成します。
    sysA# zfs snapshot -r rpool/zones@send-to-sysB
  4. ゾーンのストレージをシステム内のターゲットプールにレプリケートします。
    sysA# zfs send -R rpool/zones@send-to-sysB | ssh sysB zfs receive -d newpool
  5. ターゲットシステム上で、ゾーンを接続してブートします。この手順を、移行されたすべてのゾーンに対して実行します。
    sysB# zonename=zone1
    sysB# recvmountpoint=/newpool/zones
    sysB# zonecfg -z $zonename -f /newpool/zones/$zonename.cfg
    sysB# zonecfg -z $zonename 'set zonepath=/newpool/zones/%{zonename}'
    sysB# zoneadm -z $zonename attach -u
    sysB# zoneadm -z $zonename boot

    ここで、%{zonename} は、zonecfg(1M) のマニュアルページの「トークン」のセクションに記載されているトークンです。