Go to main content

Oracle® Solaris カーネルゾーンの作成と使用

印刷ビューの終了

更新: 2018 年 8 月
 
 

ライブ移行を使用したカーネルゾーンの移行

ライブ移行を使用すると、running 状態のカーネルゾーンを新しいカーネルゾーンホストに移行できます。カーネルゾーンのメモリーの状態が移行先のゾーンにコピーされるため、ライブ移行で発生する停止時間は、ほとんどのアプリケーションまたはほとんどのエンドユーザーが気づかないほど短くなります。ネットワーク接続は維持されます。

ライブ移行は、停止時間を最小限に抑える必要のあるアプリケーションや、アプリケーションがサービスを提供し続ける必要がある場合に使用できます。

ライブ移行を使用してカーネルゾーンを移行する方法

始める前に

  1. カーネルゾーンを移行する権利が割り当てられた管理者になります。

    詳細は、カーネルゾーン移行の実行に必要な権利を参照してください。

  2. ソースホストで、移行するゾーンが running 状態であることを確認します。
    source-host$ zoneadm list -cv
      ID NAME             STATUS      PATH      BRAND            IP
       0 global           running      /        solaris          shared
       1 kzone            running      -        solaris-kz       excl
  3. ソースホストで予行演習を起動します。

    この処理では、ライブ移行の実行前にカーネルゾーンの構成がテストされます。次に出力例を示します。

    source-host$ zoneadm -z kzone migrate -n rad-uri:user@target-host
    zoneadm: zone 'kzone': Importing zone configuration.
    zoneadm: zone 'kzone': Attaching zone.
    zoneadm: zone 'kzone': Booting zone in 'migrating-in' mode.
    zoneadm: zone 'kzone': Checking migration compatibility.
    zoneadm: zone 'kzone': Cleaning up.
    zoneadm: zone 'kzone': Dry-run migration successful.
  4. カーネルゾーンを移行します。
    source-host$ zoneadm -z kzone migrate rad-uri:user@target-host
    zoneadm: zone 'kzone': Importing zone configuration.
    zoneadm: zone 'kzone': Attaching zone.
    zoneadm: zone 'kzone': Booting zone in 'migrating-in' mode.
    …
    zoneadm: zone 'kzone1': Halting and detaching zone on source host.
    zoneadm: zone 'kzone': Migration successful.
  5. ゾーンがターゲットホストに移行されたことを確認します。
    target-host:$ zoneadm list -cv
      ID NAME             STATUS      PATH        BRAND         IP
       0 global           running     /           solaris       shared
    1754 kzone            running     -           solaris-kz    excl
    …
使用例 45  ライブ移行を使用してカーネルゾーンを新しいホストに移行する

次の例は、ソースホスト global からターゲットホスト global2 へのカーネルゾーン kzone1 のライブ移行を示しています。構成はターゲットホスト上で事前に作成されました。

global$ zoneadm -z kzone1 migrate ssh://global2
zoneadm: zone 'kzone1': Using zone configuration on destination.
zoneadm: zone 'kzone1': Attaching zone.
zoneadm: zone 'kzone1': Booting zone in 'migrating-in' mode.
zoneadm: zone 'kzone1': Checking migration compatibility.
zoneadm: zone 'kzone1': Starting migration.
zoneadm: zone 'kzone1': Waiting for migration to complete.
zoneadm: zone 'kzone1': Migration successful.
zoneadm: zone 'kzone1': Halting and detaching zone.
使用例 46  ライブ移行の予行演習の失敗

この例は、ソースホスト global1 とターゲットホスト global2 の間で失敗した予行演習の移行を示しています。virtual-cpu リソースが両方のホストの間で矛盾しています。ゾーン構成についての詳細は、Oracle Solaris ゾーン構成リソースを参照してください。

global1$ zoneadm -z kzone1 migrate -n ssh://global2
zoneadm: zone 'kzone1': Using existing zone configuration on destination.
zoneadm: zone 'kzone1': Attaching zone.
zoneadm: zone 'kzone1': Booting zone in 'migrating-in' mode.
zoneadm: zone 'kzone1': boot failed:
zone 'kzone1': error: Suspended zone has 8 active VCPUs, more than the configured
zone 'kzone1': virtual-cpu maximum of 4.
zone 'kzone1': error: Correct errors, or delete the configuration, using zonecfg(8) on the
zone 'kzone1': destination host.
zoneadm: zone kzone1: call to zoneadmd(8) failed: zoneadmd(8) returned an error 9 (zone state change failed)
使用例 47  2 つの異なる anet 構成を持つホスト間のライブ移行

次の例は、anet 構成が異なるホスト間でのライブ移行を示しています。anet リソースの詳細については、Oracle Solaris ゾーン構成リソースを参照してください。

移行の前に、ターゲットホスト上でゾーン構成が作成され、anet リソースが変更されています。テストのために予行演習が実行されています。

global1$ zonecfg -z kzone1 -r export | ssh root@global2 zonecfg -z kzone1 -f -
global1$ ssh root@global2 zonecfg -z kzone1 'select anet 0; set lower-link=net1;end'
global1$ zoneadm -z kzone1 migrate -n ssh://global2