この手順を実行するには、大域管理者または大域ゾーン内で適切な承認を持つユーザーである必要があります。
ゾーンのストレージが rootzpool リソースを使用して構成されており、データセットリソースがなく、かつオプションで 1 つ以上の rpool リソースを含んでいる場合は、移行が迅速かつ単純になります。この手順では、ソースシステムとターゲットホスト (この手順の例では host1 と host2) の両方から、rootzpool および zpool リソースで参照されるストレージにアクセスできることが必要です。
詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。
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
source# zoneadm -z zonename shutdown
例:
host1# zoneadm -z my-zone shutdown
source# zoneadm -z zonename detach
例:
host1# zoneadm -z my-zone detach
オプション (–u、–U) が必要になる場合があります。
target# zoneadm -z zonename attach
例:
host2# zoneadm -z my-zone attach
target# zoneadm -z zonename boot
例:
host2# zoneadm -z my-zone boot
詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。
ソースシステムでこの手順を使用して、移行するゾーンの回復用アーカイブを作成します。
source# archiveadm create -r -z zonename archive-name
例:
host1# archiveadm create -r -z my-zone /net/server/my-zone-archive.uar
source# zonecfg -z zonename set autoboot=false
target# zonecfg -z zonename create -a /net/server/zonename.uar
例:
host2# zonecfg -z my-zone create -a /net/server/my-zone-archive.uar
target# zoneadm -z zonename install -a archive-name
target# zoneadm -z zonename boot
関連項目
統合アーカイブの作成および配備の詳細は、Oracle Solaris 11.3 でのシステム復旧とクローン の 第 2 章, 統合アーカイブの操作を参照してください。
この手順を実行するには、大域管理者または大域ゾーン内で適切な承認を持つユーザーである必要があります。
この例では、zfs コマンドを使用して非大域ゾーンのアーカイブを作成する方法について説明します。このアーカイブはそのあと、別のシステムに接続されて配備されます。
この例では、ソースホストとターゲットホスト上の管理者が一時ファイルストレージ用の共有 NFS サーバーにアクセスできることを前提にしています。共有の一時領域が利用できない場合、scp セキュアコピー (リモートファイルのコピープログラム) などのほかの手段を使用すると、ソースマシンとターゲットマシン間でファイルをコピーできます。パスワードまたはパスフレーズが認証に必要な場合、scp プログラムはそれらの入力を求めます。
詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。
source# zoneadm -z my-zone shutdown
source# zoneadm -z my-zone detach
切り離されたゾーンは、現在、構成済みの状態にあります。次回の大域ゾーンのブート時に、ゾーンは自動的にブートされません。
source# mkdir /net/server/zonearchives/my-zone source# zonecfg -z my-zone export> /net/server/zonearchives/my-zone/my-zone.zonecfg
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 ファイルシステムの管理を参照してください。
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.
target# zonecfg:my-zone> info zonename: my-zone zonepath: /zones/my-zone autoboot: false pool: net: address: 192.168.0.90 physical: net0
たとえば、ネットワーク物理デバイスがターゲットシステムで異なっていたり、構成の一部であるデバイスがターゲットシステムで異なる名前になっていたりします。
target# zonecfg -z my-zone zonecfg:my-zone> select net physical=net0 zonecfg:my-zone:net> set physical=net100 zonecfg:my-zone:net> end
zonecfg:my-zone> commit zonecfg:my-zone> exit
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
トラブルシューティング
ストレージオブジェクトに既存のパーティション、zpool、または UFS ファイルシステムが含まれる場合は、install が失敗し、エラーメッセージが表示されます。インストールを続行し、既存のデータをすべて上書きするには、zoneadm install に対して –x force-zpool-create オプションを使用します。
次の手順は、ある ZFS プールから別のシステム内の別の ZFS プールにすべてのゾーンを移行する方法を示しています。
この手順で、ソース SysA 内のゾーンは、ターゲット SysB 内のプールに移動します。SysA 内の ZFS プールは rpool/zones であり、/zones でマウントされます。SysB 内のターゲットプールは newpool/zones です。移行されたゾーンの新しいゾーンパスは /newpool/zones です。
この手順ではまた、ターゲットプールがすでに存在することも前提にしています。
ZFS プールの作成の詳細は、Oracle Solaris 11.3 での ZFS ファイルシステムの管理 の 第 3 章, Oracle Solaris ZFS ストレージプールを作成および破棄するを参照してください。
始める前に
始める前に、次のことを確認する必要があります。
ゾーンの移行を実行するためのすべての互換性要件が満たされていること。
両方のシステムでの鍵ベースの認証と root ログインを有効にするために SSH が構成されていること。SSH 認証の詳細は、Oracle Solaris 11.3 での Secure Shell アクセスの管理 の Secure Shell で使用する公開鍵と非公開鍵のペアを生成する方法を参照してください
詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。
この手順を、rpool/zones を使用しているすべてのゾーンに対して実行します。
sysA# zonename=zone1 sysA# zoneadm -z $zonename shutdown sysA# zoneadm -z $zonename detach sysA# zonecfg -z $zonename export -f /zones/$zonename.cfg
sysA# zfs snapshot -r rpool/zones@send-to-sysB
sysA# zfs send -R rpool/zones@send-to-sysB | ssh sysB zfs receive -d newpool
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) のマニュアルページの「トークン」のセクションに記載されているトークンです。