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

印刷ビューの終了

更新: 2016 年 11 月
 
 

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

始める前に

カーネルゾーンのソースホストとターゲットホストの両方が、ライブ移行の要件で説明されているライブ移行のためのハードウェア、ソフトウェア、およびストレージ要件を満たしていることを確認します。

  1. ライブ移行の管理権利を取得します。

    詳細については、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用または root 以外のユーザーによるカーネルゾーンのライブ移行操作の実行の許可を参照してください。

  2. ソースホストとターゲットホストの間の対話型プロンプトを必要としないように SSH 認証を構成します。

    Oracle Solaris 11.3 での Secure Shell アクセスの管理 の Secure Shell で使用する公開鍵と非公開鍵のペアを生成する方法を参照してください。

  3. ターゲットホスト上で date などのコマンドを実行することによって SSH 認証をテストします。
    global1# ssh global2 date
    Mon Mar  9 13:22:40 PDT 2015

    パスワードの入力を求められた場合は、対話型認証のないログインを有効にするように鍵ペアを構成していません。

    Oracle Solaris 11.3 での Secure Shell アクセスの管理 の Secure Shell で使用する公開鍵と非公開鍵のペアを生成する方法を参照してください。

  4. ソースホストとターゲットホストで、カーネルゾーンの移行サービスを開始します。
    global1# svcadm enable -rs svc:/network/kz-migr:stream
    global1# ssh global2 svcadm enable -rs svc:/network/kz-migr:stream
  5. ソースホストとターゲットホストで、RAD サービスのステータスをチェックします。

    必要なサービスは、使用する予定の RAD URI によって異なります。ssh を使用して移行する場合、svc:/system/rad:local サービスが実行している必要があります。rads を使用する場合、svc:/system/rad:remote サービスが実行している必要があります。

    global1# svcs rad
    STATE          STIME    FMRI
    disabled       14:47:31 svc:/system/rad:remote
    online         17:28:50 svc:/system/rad:local
    online         17:28:56 svc:/system/rad:local-http
    
    global1# ssh global2 svcs rad
    STATE          STIME    FMRI
    disabled       Jul_01   svc:/system/rad:remote
    online         Jul_01   svc:/system/rad:local-http
    online         Jul_01   svc:/system/rad:local
  6. (オプション) ソースおよびターゲットホストで必要な、無効にされている RAD サービスをすべて起動します。

    たとえば、svc:/system/rad:remote サービスを有効にするには:

    global1# svcadm enable -rs svc:/system/rad:remote
    global1# ssh global2 svcadm enable -rs svc:/system/rad:remote
  7. ソースホストとターゲットホストで、NTP サービスのステータスをチェックします。
    global1# svcs ntp
    STATE          STIME    FMRI
    online         11:09:40 svc:/network/ntp:default
    
    global1# ssh global2 svcs ntp
    STATE          STIME    FMRI
    online         11:09:45 svc:/network/ntp:default
    

    NTP サービスがオンラインでない場合、その設定方法については、Oracle Solaris 11 ネットワークサービスの紹介 の ネットワークキャッシングおよび時間関連のサービスを管理するための主要なタスクを参照してください。

  8. ソースホストで、移行するゾーンが running 状態であることを確認します。
    global1# zoneadm list -cv
      ID NAME             STATUS      PATH      BRAND            IP
       0 global           running      /        solaris          shared
       1 kzone1           running      -        solaris-kz       excl
       - kzone2           installed    -        solaris-kz       excl
    
  9. ライブ移行の予行演習またはプリフライトチェックを開始します。

    ソースホスト上で、zoneadm migrate -n を使用して、ライブ移行の前にカーネルゾーン構成をテストします。

    global1# zoneadm -z zonename migrate -n ssh://target-host

    たとえば、ソースホスト global1 とターゲットホスト global2 を使用する場合:

    root@global1:~# zoneadm -z kzone1 migrate -n ssh://global2
    zoneadm: zone 'kzone1': Importing zone configuration.
    zoneadm: zone 'kzone1': Attaching zone.
    zoneadm: zone 'kzone1': Booting zone in 'migrating-in' mode.
    zoneadm: zone 'kzone1': Checking migration compatibility.
    zoneadm: zone 'kzone1': Cleaning up.
    zoneadm: zone 'kzone1': Dry-run migration successful.
    
  10. カーネルゾーンを移行します。

    zoneadm migrate を使用してカーネルゾーンを移行します。

    # zoneadm -z zonename migrate target

    たとえば、ソースホスト global1 からターゲットホスト global2kzone1 を移行するには:

    root@global1:~# zoneadm -z kzone1 migrate ssh://global2
    zoneadm: zone 'kzone1': Importing zone configuration.
    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': Suspending zone on source host.
    zoneadm: zone 'kzone1': Waiting for migration to complete.
    zoneadm: zone 'kzone1': Halting and detaching zone on source host.
    zoneadm: zone 'kzone1': Migration successful.
    
  11. ゾーンが移行されており、現在ターゲットホスト上で実行していることを確認します。
    root@global2:~# zoneadm list -cv
      ID NAME             STATUS      PATH        BRAND         IP
       0 global           running     /           solaris       shared
    1754 kzone1           running     -           solaris-kz    excl
       - kzone2           configured  -           solaris-kz    excl
       - kzone3           installed   -           solaris-kz    excl
       - kzone4           configured  -           solaris-kz    excl
    
  12. (オプション) ソースホストで、移行されたゾーンが configured 状態であることを確認します。
    global1# zoneadm list -cv
      ID NAME             STATUS      PATH      BRAND            IP
       0 global           running      /        solaris          shared
       - kzone1           configured   -        solaris-kz       excl
       - kzone2           installed    -        solaris-kz       excl
    

    注 -  ライブ移行前に作成されたソースホストをあとでブート環境 (BE) にブートした場合、移行されたカーネルゾーンの状態が configured ではなく unavailable として表示されることがあります (ゾーンの状態は BE 間で共有されないため)。次のコマンドを発行し、ゾーンのストレージを切り離して、ゾーンの状態を configured に戻します。
    # zoneadm -z zonename detach -F

使用例 28  ライブ移行のプリフライトチェックの失敗

この例は、ソースホスト 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(1M) on the
zone 'kzone1': destination host.
zoneadm: zone kzone1: call to zoneadmd(1M) failed: zoneadmd(1M) returned an error 9 (zone state change failed)
使用例 29  2 つの異なる anet 構成を持つホスト間のライブ移行

次の例では、さまざまな anet 構成のホスト間のライブ移行の準備を示しています。global1 上のゾーン kzone1 の構成は、ターゲットホスト global2 で適していません。global2 で、ゾーンはその anet リソースに net1 を使用する必要があります。構成がターゲットホストにエクスポートされ、変更されてから、プリフライトチェックが実行されます。

anet リソースの詳細については、Oracle Solaris ゾーン構成リソースを参照してください。

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