Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)

Solaris 10 11/06: 別のマシンへの非大域ゾーンの移行

Solaris 10 5/08 リリースでは、実際にゾーンを別のマシンに移行する前にゾーンの移行を試験的に実行することができます。詳細は、「Solaris 10 5/08: 移行を行う前のゾーンの移行の検証について」を参照してください。

ゾーンの移行について

Solaris 10 11/06 リリース以降、この節に新しい情報が追加されています。

zonecfg および zoneadm コマンドを使用して、既存の非大域ゾーンをあるシステムから別のシステムに移行できます。ゾーンは停止され、現在のホストから切り離されます。zonepath は移行先のホストに移動され、そこで接続されます。

次の制限が、ゾーンの移行に適用されます。

Solaris リリースとマシンアーキテクチャーを確認するには、次のように入力します。


#uname -m

zoneadm detach プロセスにより、別のシステムでゾーンを接続するのに必要な情報が作成されます。 zoneadm attach プロセスは、移行先のマシンがゾーンのホストとして機能するための適正な構成を保持していることを確認します。

新規ホストで zonepath を使用可能にする方法は複数存在するため、あるシステムから別のシステムへの zonepath の実際の移動は、大域管理者が手動で行います。

新規システムへの接続時に、ゾーンはインストール済みの状態になります。

Procedure非大域ゾーンを移行する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 移行するゾーン (この手順では my-zone) を停止します。


    host1# zoneadm -z my-zone halt
    
  3. ゾーンを切り離します。


    host1# zoneadm -z my-zone detach
    

    切り離されたゾーンは、現在、構成済みの状態にあります。

  4. my-zonezonepath を新規ホストに移動します

    詳細は、zonepath を新規ホストに移動する方法」を参照してください。

  5. 新規ホスト上でゾーンを構成します


    host2# zonecfg -z my-zone
    

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


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  6. 新規ホスト上にゾーン my-zone を作成するには、zonecfg コマンドに -a オプションおよび新規ホストの zonepath を指定します。


    zonecfg:my-zone> create -a /export/zones/my-zone
    
  7. (省略可能) 構成を表示します。


    zonecfg:my-zone> info
    zonename: my-zone
    zonepath: /export/zones/my-zone
    autoboot: false
    pool:
    inherit-pkg-dir:
             dir: /lib
    inherit-pkg-dir:
             dir: /platform
    inherit-pkg-dir:
             dir: /sbin
    inherit-pkg-dir:
             dir: /usr
    net:
             address: 192.168.0.90
             physical: bge0
  8. 構成に必要な調整を加えます。

    たとえば、新規ホストではネットワーク物理デバイスが異なる場合があります。また、構成に含まれるデバイスの名前が新規ホストでは異なることもあります。


    zonecfg:my-zone> select net physical=bge0
    zonecfg:my-zone:net> set physical=e1000g0
    zonecfg:my-zone:net> end
    
  9. 構成を確定して終了します。


    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  10. 次のいずれかの方法で、ゾーンを新しいホストに接続します。

    • 妥当性検査を使用して、ゾーンを接続します。


      host2# zoneadm -z my-zone attach
      

      次の条件のいずれかまたは両方に当てはまる場合、実行が必要な操作がシステム管理者に通知されます。

      • 必須パッケージおよびパッチが新規マシンに存在しない。

      • ソフトウェアレベルがマシン間で異なる。

    • Solaris 10 10/08: 妥当性検査を使用してゾーンを接続します。また、より新しいバージョンのゾーン依存パッケージがホストで実行されている場合や、ホストのマシンクラスが異なっている場合は、ホストに一致するように接続時にゾーンを更新します。


      host2# zoneadm -z my-zone attach -u
      

      ヒント –

      Solaris 10 10/08: 移行元システムで古いバージョンの Solaris システムが実行されている場合は、ゾーンを切り離す際に正しいパッケージリストが生成されないことがあります。移行先に正しいパッケージリストが確実に生成されるようにするには、SUNWdetached.xml ファイルを zonepath から削除します。このファイルを削除すると、移行先システムによって新しいパッケージリストが生成されます。

      これは Solaris 10 5/09 以降のリリースでは必要ありません。


    • Solaris 10 9/10: 妥当性検査を使用してゾーンを接続し、ゾーンのすべてのパッケージを、このホストに新しくインストールされた非大域ゾーンで表示される内容と一致するように更新します。ゾーン内にインストールされ、大域ゾーンにはインストールされていないパッケージがある場合、それらのパッケージは無視され、そのままの状態になります。


      host2# zoneadm -z my-zone attach -U
      
    • Solaris 10 5/09 以降: -b オプションを使用して、指定したパッチを接続時にゾーンから除去します。指定できるパッチは、公式パッチまたは IDR パッチです。


      host2# zoneadm -z my-zone attach -u -b IDR246802-01 -b 123456-08
      

      -b オプションは、-u または -U オプションとは独立して使用できます。

    • 妥当性検査を実行せずに、接続操作を強制的に実行します。


      host2# zoneadm -z my-zone attach -F
      

      注意 – 注意 –

      -F オプションを使用すると、妥当性検査を実行せずに attach が強制的に実行されます。これは、クラスタ環境やバックアップ/復元操作など、特定の場合に役立ちますが、システムがゾーンのホストとして動作するよう正しく構成されている必要があります。構成が不正な場合、あとで未定義の動作が実行される可能性があります。


Procedurezonepath を新規ホストに移動する方法

zonepath のアーカイブの作成には、いくつもの方法があります。たとえば、cpio または pax コマンドを使用できます。詳細は、cpio(1) およびpax(1) のマニュアルページを参照してください。

アーカイブを新規ホストに転送する方法も、複数存在します。zonepath を転送元ホストから転送先ホストに転送する機構は、ローカルの構成によって異なります。SAN などのいくつかの場合には、zonepath データを実際には移動できないこともあります。SAN の場合は、zonepath が新規ホストに表示されるように、再構成が実行されるだけです。それ以外の場合は、zonepath をテープに書き込み、それを新規サイトに送付することもあります。

これらの理由のために、この手順は自動化されていません。システム管理者は、zonepath を新規ホストに移動する最適な手法を選択する必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. zonepath を新規ホストに移動します。この手順で説明した方法を使用することも、別の方法を選んで使用することもできます。


例 23–1 tar コマンドを使用した zonepath のアーカイブおよび移動

  1. host1 上で zonepathtar ファイルを作成し、 sftp コマンドを使って host2 に転送します。


    host1# cd /export/zones
    host1# tar cf my-zone.tar my-zone
    host1# sftp host2
    Connecting to host2...
    Password:
    sftp> cd /export/zones
    sftp> put my-zone.tar
    Uploading my-zone.tar to /export/zones/my-zone.tar
    sftp> quit
    
  2. host2 上で tar ファイルを展開します。


    host2# cd /export/zones
    host2# tar xf my-zone.tar
    

詳細は、sftp(1) および tar(1) を参照してください。


注意事項

次の問題を解決する方法については、zoneadm 接続操作の問題解決」を参照してください。

次の手順

SAN を再構成せず、データをコピーした場合、ゾーンが構成済みの状態になっても zonepath のデータはソースホスト上に表示されたままになってます。データを新しいホストに移行し終わったあと手動で zonepath をソースホストから削除するか、ソースホストにゾーンを再接続し、zoneadm uninstall コマンドを使って zonepath を削除することができます。

Solaris 10 5/08: 移行を行う前のゾーンの移行の検証について

「no execute」(実行しない) オプションである -n を使用することで、ゾーンを新しいマシンに移行する前に試行を行うことができます。

-n オプションを指定して zoneadm detach サブコマンドを使用すると、実際にゾーンを切り離さずに実行中のゾーンでマニフェストを生成できます。移行元のシステムのゾーンの状態は変わりません。ゾーンのマニフェストは標準出力に送信されます。大域管理者は、この出力をファイルに送ったり、移行先ホストですぐに検証されるように遠隔コマンドにパイプしたりできます。-n オプションを指定して zoneadm attach サブコマンドを使用すると、このマニフェストを読み取り、実際に接続を行わずに、移行先のマシンがゾーンのホストとして機能するための適正な構成を保持しているかどうかを確認できます。

試行接続を行う前に、新規ホストで移行先システムのゾーンを構成する必要はありません。

ProcedureSolaris 10 5/08: 移行を行う前にゾーンの移行を検証する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 次のいずれかを実行します。

    • my-zone の移行元ホストでマニフェストを生成し、移行先ホストをすぐに検証する遠隔コマンドにその出力をパイプします。


      global# zoneadm -z my-zone detach -n | ssh remotehost zoneadm attach -n -
      

      行の最後にあるハイフン () は、パスとして標準入力を指定します。

      検証内容は、移行元ホストの画面である stdout に出力されます。

    • my-zone の移行元ホストでマニフェストを生成し、その出力をファイルに送ります。


      global# zoneadm -z my-zone detach -n > filename
      

      zonepath を新規ホストに移動する方法」の説明に従って、そのマニフェストを新しいホストシステムにコピーし、検証を行います。


      global# zoneadm attach -n path_to_manifest
      

      パスを にすると標準入力を指定できます。