この章は、Solaris 10 11/06 リリースで新たに追加されました。以降のリリースでは、新しい機能が追加されています。
この章では、次の操作を行う方法について説明します。
既存の非大域ゾーンを同じマシンの新しい場所に移動する
実際の移行を実行する前に、非大域ゾーンの移行で何が発生するかを検証する
既存の非大域ゾーン新しいマシンに移行する
zoneadm detach および zoneadm attach コマンドを使用して、低いパッチレベルを持つゾーンを高いパッチレベルで大域ゾーンのレベルに更新する
Solaris 10 10/08 リリース以降では、ゾーンに依存するパッケージおよび関連パッチが新しいホストに存在する場合、それらのバージョンが移行元と同じまたは移行元より新しいときは、zoneadm attach と -u オプションを使用すると、パッケージの最小セットが更新され、その非大域ゾーンを新しいホストで使用できるようになります。新しいホストに移行元ホストよりも高いバージョンと低いバージョンのパッチが混在している場合、接続操作中の更新はできません。
zoneadm attach コマンドと -u オプションを使用すると、sun4u から sun4v への移行など、マシンクラス間の移行も可能です。
Solaris 10 9/10 リリース以降では、zoneadm attach と -U オプションを使用すると、ゾーンのすべてのパッケージが、このホストに新しくインストールされた非大域ゾーンで表示される内容と一致するように更新されます。ゾーン内にインストールされ、大域ゾーンにはインストールされていないパッケージがある場合、それらのパッケージは無視され、そのままの状態になります。このオプションを使用すると、sun4u から sun4v への移行など、マシンクラス間の自動移行も可能です。
通常のパッチ適用の代わりに、大域ゾーンにパッチを適用する間は各ゾーンを切り離しておき、適用後に -U オプションを使用して大域ゾーンを再接続することで、大域ゾーンのパッチレベルを一致させることができます。
lx ブランドゾーンの移動と移行については、第 37 章lx ブランドゾーンの移動と移行 (手順)を参照してください。
zonepath を変更してゾーンを同じシステムの新しい場所に移動する場合に、ここで説明する手順を使用します。ゾーンは、停止する必要があります。新規 zonepath がローカルファイルシステムに存在する必要があります。「資源タイプとプロパティータイプ」に説明されている、 zonepath の通常の基準が適用されます。
この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。
スーパーユーザーまたは Primary Administrator 役割になります。
役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
移動するゾーン (この手順では db-zone) を停止します。
global# zoneadm -z db-zone halt |
zoneadm コマンドを move サブコマンドとともに使用して、ゾーンを新規の zonepath である /export/zones/db-zone に移動します。
global# zoneadm -z db-zone move /export/zones/db-zone |
パスを確認します。
ID NAME STATUS PATH BRAND IP 0 global running / native shared - my-zone installed /export/home/my-zone native shared - db-zone installed /export/zones/db-zone native shared |
Solaris 10 5/08 リリースでは、実際にゾーンを別のマシンに移行する前にゾーンの移行を試験的に実行することができます。詳細は、「Solaris 10 5/08: 移行を行う前のゾーンの移行の検証について」を参照してください。
Solaris 10 11/06 リリース以降、この節に新しい情報が追加されています。
zonecfg および zoneadm コマンドを使用して、既存の非大域ゾーンをあるシステムから別のシステムに移行できます。ゾーンは停止され、現在のホストから切り離されます。zonepath は移行先のホストに移動され、そこで接続されます。
次の制限が、ゾーンの移行に適用されます。
移行先システムの大域ゾーンで、移行元ホストと同じ Solaris リリースが稼働している必要があります。
ゾーンが正常に動作することを保証するため、移行元ホストにインストールされているものと同じバージョンの次の必須オペレーティングシステムパッケージおよびパッチが、移行先システムにもインストールされている必要があります。
ファイルを inherit-pkg-dir 資源内に格納するパッケージ
SUNW_PKG_ALLZONES=true であるパッケージ
他社製品のパッケージやパッチなど、ほかのパッケージおよびパッチは異なっていてもかまいません。
Solaris 10 10/08: ゾーンに依存するパッケージおよび関連パッチが新しいホストに存在する場合、それらのバージョンが移行元より新しいときは、zoneadm attach と -u オプションを使用すると、ゾーン内のこのようなパッケージが新しいホストに一致するように更新されます。接続時更新ソフトウェアは、移行対象のゾーンを調べ、新しいホストに一致するように更新する必要のあるパッケージを決定します。このようなパッケージだけが更新されます。それ以外のパッケージおよびその関連パッチは、ゾーンごとに異なる可能性があります。このオプションを使用すると、sun4u から sun4v への移行など、マシンクラス間の自動移行も可能です。
Solaris 10 9/10: パッケージおよび関連パッチが新しいホストに存在する場合、それらのバージョンが移行元より新しいときは、zoneadm attach と -U オプションを使用すると、ゾーン内のこのようなパッケージが、このホストに新しくインストールされた非大域ゾーンで表示される内容と一致するように更新されます。ゾーン内にインストールされ、大域ゾーンにはインストールされていないパッケージがある場合、それらのパッケージは無視され、そのままの状態になります。このオプションを使用すると、sun4u から sun4v への移行など、マシンクラス間の自動移行も可能です。
Solaris 10 5/09: -b オプションを使用すると、更新の前にゾーンから除去するパッチを指定できます。
-u オプションを使用すると、sun4u と sun4v のマシンクラス間の移行が可能ですが、このオプションを使用しない場合は、移行元と移行先システムのマシンアーキテクチャーは同じでなければいけません。
Solaris 10 5/09: -b オプションを使用すると、接続時にゾーンから除去するパッチを指定できます。指定できるパッチは、公式パッチと IDR (Interim Diagnostics/Relief) パッチのどちらかです。複数の -b オプションを指定できます。何らかの理由でいずれかのパッチを除去できない場合、attach は失敗し、どのパッチも除去されません。
このオプションは、SVr4 パッケージを使用しているゾーンブランドだけに適用されます。
Solaris リリースとマシンアーキテクチャーを確認するには、次のように入力します。
#uname -m |
zoneadm detach プロセスにより、別のシステムでゾーンを接続するのに必要な情報が作成されます。 zoneadm attach プロセスは、移行先のマシンがゾーンのホストとして機能するための適正な構成を保持していることを確認します。
新規ホストで zonepath を使用可能にする方法は複数存在するため、あるシステムから別のシステムへの zonepath の実際の移動は、大域管理者が手動で行います。
新規システムへの接続時に、ゾーンはインストール済みの状態になります。
この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。
スーパーユーザーまたは Primary Administrator 役割になります。
役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
移行するゾーン (この手順では my-zone) を停止します。
host1# zoneadm -z my-zone halt |
ゾーンを切り離します。
host1# zoneadm -z my-zone detach |
切り離されたゾーンは、現在、構成済みの状態にあります。
my-zone の zonepath を新規ホストに移動します
詳細は、「zonepath を新規ホストに移動する方法」を参照してください。
新規ホスト上でゾーンを構成します
host2# zonecfg -z my-zone |
次のシステムメッセージが表示されます
my-zone: No such zone configured Use 'create' to begin configuring a new zone. |
新規ホスト上にゾーン my-zone を作成するには、zonecfg コマンドに -a オプションおよび新規ホストの zonepath を指定します。
zonecfg:my-zone> create -a /export/zones/my-zone |
(省略可能) 構成を表示します。
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 |
構成に必要な調整を加えます。
たとえば、新規ホストではネットワーク物理デバイスが異なる場合があります。また、構成に含まれるデバイスの名前が新規ホストでは異なることもあります。
zonecfg:my-zone> select net physical=bge0 zonecfg:my-zone:net> set physical=e1000g0 zonecfg:my-zone:net> end |
構成を確定して終了します。
zonecfg:my-zone> commit zonecfg:my-zone> exit |
次のいずれかの方法で、ゾーンを新しいホストに接続します。
妥当性検査を使用して、ゾーンを接続します。
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 が強制的に実行されます。これは、クラスタ環境やバックアップ/復元操作など、特定の場合に役立ちますが、システムがゾーンのホストとして動作するよう正しく構成されている必要があります。構成が不正な場合、あとで未定義の動作が実行される可能性があります。
zonepath のアーカイブの作成には、いくつもの方法があります。たとえば、cpio または pax コマンドを使用できます。詳細は、cpio(1) およびpax(1) のマニュアルページを参照してください。
アーカイブを新規ホストに転送する方法も、複数存在します。zonepath を転送元ホストから転送先ホストに転送する機構は、ローカルの構成によって異なります。SAN などのいくつかの場合には、zonepath データを実際には移動できないこともあります。SAN の場合は、zonepath が新規ホストに表示されるように、再構成が実行されるだけです。それ以外の場合は、zonepath をテープに書き込み、それを新規サイトに送付することもあります。
これらの理由のために、この手順は自動化されていません。システム管理者は、zonepath を新規ホストに移動する最適な手法を選択する必要があります。
スーパーユーザーまたは Primary Administrator 役割になります。
役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
zonepath を新規ホストに移動します。この手順で説明した方法を使用することも、別の方法を選んで使用することもできます。
host1 上で zonepath の tar ファイルを作成し、 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 |
host2 上で tar ファイルを展開します。
host2# cd /export/zones host2# tar xf my-zone.tar |
詳細は、sftp(1) および tar(1) を参照してください。
次の問題を解決する方法については、「zoneadm 接続操作の問題解決」を参照してください。
パッチおよびパッケージが同期しない。
オペレーティングシステムのリリースが一致しない。
SAN を再構成せず、データをコピーした場合、ゾーンが構成済みの状態になっても zonepath のデータはソースホスト上に表示されたままになってます。データを新しいホストに移行し終わったあと手動で zonepath をソースホストから削除するか、ソースホストにゾーンを再接続し、zoneadm uninstall コマンドを使って zonepath を削除することができます。
「no execute」(実行しない) オプションである -n を使用することで、ゾーンを新しいマシンに移行する前に試行を行うことができます。
-n オプションを指定して zoneadm detach サブコマンドを使用すると、実際にゾーンを切り離さずに実行中のゾーンでマニフェストを生成できます。移行元のシステムのゾーンの状態は変わりません。ゾーンのマニフェストは標準出力に送信されます。大域管理者は、この出力をファイルに送ったり、移行先ホストですぐに検証されるように遠隔コマンドにパイプしたりできます。-n オプションを指定して zoneadm attach サブコマンドを使用すると、このマニフェストを読み取り、実際に接続を行わずに、移行先のマシンがゾーンのホストとして機能するための適正な構成を保持しているかどうかを確認できます。
試行接続を行う前に、新規ホストで移行先システムのゾーンを構成する必要はありません。
この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。
スーパーユーザーまたは Primary Administrator 役割になります。
役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』の「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。
次のいずれかを実行します。
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 |
パスを — にすると標準入力を指定できます。
ネイティブ Solaris ゾーンをホストするマシンが使用できなくなる場合があります。しかし、ゾーンが格納されている SAN などのストレージがまだ使用できる場合は、ゾーンを新しいホストに正常に移行できる可能性があります。ゾーンの zonepath を新しいホストに移動できます。SAN などのいくつかの場合には、zonepath データを実際には移動できないこともあります。SAN の場合は、zonepath が新規ホストに表示されるように、再構成が実行されるだけです。ゾーンが適切に切り離されなかったため、初めに zonecfg コマンドを使って新しいホストにゾーンを作成する必要があります。一度これを行なったあと、新しいホストでゾーンを接続してください。新しいホストから、ゾーンが適切に切り離されなかったというメッセージが出ますが、それでもシステムは接続を試行します。
この作業の手順は、「非大域ゾーンを移行する方法」の手順 4 - 8 で説明されています。「zonepath を新規ホストに移動する方法」も参照してください。
接続時の更新のプロセスは、ゾーンを別のシステムに移行するために開発されたものですが、ゾーンにパッチを適用する場合にも使用できます。この方法を利用すると、大域ゾーンをより迅速に使用可能な状態にすることができます。その後、システム管理者は、あまり重要でないゾーンを更新して起動する前に、どのゾーンを先に更新して稼働させるかを調整できます。
次のプロセスでは、そのゾーンがシステムに新しくインストールされたゾーンと同じように見えるように、すべてのパッチを更新します。
大域ゾーンにパッチバンドルを適用する前に、すべての非大域ゾーンを切り離します。
大域ゾーンにパッチバンドルを適用します。
パッチバンドルが適用され、システムが再起動したら、zoneadm attach コマンドを -U オプションを付けて使用し、非大域ゾーンを大域ゾーンと同じパッチレベルにします。
ゾーン内にインストールされ、大域ゾーンにはインストールされていないパッケージがある場合、それらのパッケージは無視され、影響を受けません。
patchadd ユーティリティーを使用した高速のパッチ適用ソリューションについては、『「Solaris 10 10/09: パッチ適用時間を短縮するためのゾーンの並列パッチ」』 を参照してください。