移行とは、ゾーンを新しい場所に移動させることです。変換とは、広く配備することのできるアーカイブにゾーンを変換することです。Oracle Solaris には、ゾーンの変換を支援する zonep2vchk ツールが用意されています。
ゾーンの移行は、あるホストシステムから別のホストシステムに既存のゾーン構成とデータを転送するプロセスです。共有ストレージ上のゾーンに対してのみゾーンの移行を実行できます。ゾーンの移行には、コールド、ウォーム、またはライブを指定できます。ただし、solaris ゾーンはホストのカーネルに依存しているため、新しいホストへの移行中にゾーンを実行することはできません。したがって、solaris ゾーンの移行ではウォーム移行とライブ移行はサポートされていません。
コールド移行は、ゾーンの移行中にソースホストでゾーンが動作していないときに生じます。コールド移行中は、ゾーンがストレージから切り離され、少量のデータが新しいホストに移動されます。ゾーンが新しいホストに接続されると、共有ストレージがゾーンに接続され、同じパスを使用してゾーンデータがアクセスされます。コールド移行には、ゾーンを切り離してから接続するまでの時間とほぼ同じ時間がかかります。
共有ストレージの詳細は、共有ストレージ上の Oracle Solaris ゾーンを参照してください。ゾーンの移行およびゾーンの移行タイプの詳細は、Introduction to Oracle Solaris Zones の About Zone Migrationを参照してください。
移行前に、構成とホストの要件、およびパッケージの更新を考慮する必要があります。
ゾーンの状態 - 移行を開始するときは、ゾーンの状態が installed になっている必要があります。移行後も、新しいホスト上でのゾーンの状態は installed のままです。
共有ストレージ - ゾーンが共有ストレージ上にない場合は、ゾーンの変換と同様に、統合アーカイブを使用してゾーンを移動できます。ゾーンの変換についてを参照してください。
ユーザーの承認 - ゾーン移行プロファイルまたはゾーン構成プロファイルを持つユーザーまたは役割が移行を行う必要があります。root 以外の特定のユーザーが移行を行うことを承認できます。詳細は、非大域ゾーンの移行を実行するための root 以外のユーザーの承認を参照してください。
ゾーンのリソース – solaris ゾーンの構成で、次の移行されるリソースの要件が満たされている必要があります。
device リソースはストレージ URI で指定する必要があります。match プロパティーは設定できません。
fs リソースと dataset リソースはローカルファイルシステムまたはローカルデバイスを参照するため、コールド移行では使用できません。
npiv:over-hba プロパティーは、ゾーンがターゲットシステム上にある場合にのみ設定できます。これは物理コントローラ番号と結び付けられ、ソースシステムとターゲットシステムの間で整合性が保たれない可能性があるため、移植可能な設定ではありません。ただし、移行前にゾーン構成がターゲットシステム上にある場合は、コントローラ番号が矛盾しないようにシステムを設定してあると考えられるため、移行は許可されるべきです。
rootzpool リソースと zpool リソースは、iscsi および lu の URI を使用して共有ストレージリソースとともに指定する必要があります。
zoneadm コマンドは、移行用の migrate サブコマンドとともに使用します。solaris ゾーンでのこのコマンドのフォーマットは次のとおりです。
zoneadm –z zonename migrate [–nq] [–t auto] [-u | -U] [–z ZBE] \ [-x destroy-orphan-zbes | force-zbe-clone | deny-zbe-clone | attach-last-booted-zbe | attach-matched-zbe | attach-last-mounted-zbe] ] \ ssh|rads|radg://user@host:port
zoneadm migrate コマンドのオプションには次のものがあります。
移行の非実行の予行演習を行います。この予行演習では、両方のシステムから共有ストレージリソースにアクセスできることを確認します。
ゾーン構成にターゲットホストとの互換性があるかどうかはチェックされません。必要に応じて、ゾーンの移行後、ゾーンをブートする前にターゲットホストで構成を調整できます。
非出力モード。移行操作中にステータスが報告されないように指定します。
実行する移行のタイプを指定します。solaris ゾーンの場合は、auto 値 (コールド移行の指定) のみがサポートされています。追加のオプションがブランド固有のオプションとして使用できる場合があります。
–u オプションと –U オプションは相互に排他的です。
–u オプションは、接続後に大域ゾーンと一致するように、移行されたゾーン内で必要な最低数のパッケージを更新します。更新の試行中に新しいゾーンブート環境 (ZBE) が作成されることがあります。
–U オプションは、接続後に大域ゾーンと一致するように、移行されたゾーン内のすべてのパッケージを更新します。更新の試行中に新しい ZBE が作成されることがあります。
ゾーンをターゲットホストに接続するときに実行する拡張オプションを指定します。使用可能な拡張オプションは次のとおりです。
最後にブートされた ZBE を接続します。
最新の変更を含む、ターゲットホストの zonepath に直近にマウントされた ZBE を接続します。これは、-z ZBE 選択オプションまたは -x オプションがどちらも指定されなかった場合のデフォルトの動作です。
ターゲットホスト上の現在の大域ゾーン BE と一致する ZBE を接続します。
選択された ZBE が現在の大域 BE とは異なる大域 BE に関連付けられている場合は、その ZBE のクローンが作成され、接続されます。–x オプションを使用すると、ZBE の接続時の ZBE クローン処理用に次のいずれかのオプションを指定できます。
選択されたゾーンブート環境のクローニングをオーバーライドします。このオプションでは、デフォルトの動作が ZBE のクローニングである場合に、クローニングは行われず、選択された ZBE がゾーンに強制的に接続されます。それ以外の場合は無効です。
solaris ゾーンの接続中に -x deny-zbe-clone オプションを使用した場合、クローニングは行われず、選択されたゾーンブート環境に所定の更新が行われて、アクティブなブート環境としてマウントされます。この ZBE は孤立したブート環境になることがあります。
どの大域ゾーンにも関連付けられていないゾーンブート環境をすべて破棄します。
選択されたゾーンブート環境のクローニングを強制的に行います。その後、新しくクローニングされたブート環境が、ゾーンへの接続対象として選択されます。
solaris ゾーンの接続中に -x force-zbe-clone オプションを使用した場合、選択されたゾーンブート環境がクローニングされ、そのクローンがアクティブなブート環境としてマウントされます。この ZBE は孤立したブート環境になることがあります。
ZBE の接続とクローニングの詳細は、孤立したゾーンブート環境とクローンについてを参照してください。
接続および更新の対象となる特定のゾーンブート環境の名前を指定します。指定された ZBE が別の大域ゾーンに関連付けられている場合は、指定された ZBE がクローニングされ、クローニングされた ZBE が接続されます。
接続する ZBE が指定されない場合は、現在の大域 ZBE に関係なく、zonepath に直近にマウントされた ZBE が接続されます。
-z ZBE オプションの代わりに –x オプションを使用して、ZBE の接続動作を指定することもできます。
ゾーンをターゲットホストに移行するために使用するスキーム、ユーザー名、およびホスト名を含む RAD URI を指定します。ssh スキームは Secure Shell を使用し、rads スキームは TLS を使用します。radg スキームは Generic Security Services API (GSS-API) を使用します。RAD クライアントおよびターゲットホストが Kerberos 用に構成されている場合は、radg を指定します。
ホスト名のみを指定した場合、スキームのデフォルト値は rads になり、user のデフォルト値は現在のユーザーになり、port のデフォルト値は標準 RAD ポート 12302 になります。
詳細は、Remote Administration Daemon Client User’s Guide の Connecting in Python to a RAD Instance by Using a URIを参照してください。
zoneadm migrate コマンドの詳細は、zoneadm(8) のマニュアルページを参照してください。
ゾーン移行のソースホストとターゲットホストに関する次のガイドラインを確認してください。
ゾーンを同一のシステムに移行しているときに、すべてのストレージ参照で両方のホストからアクセス可能なストレージ URI が使用される場合、移行された構成はそのまま互換性が確保されるべきです。ターゲットシステムが同一でない場合は、移行後に、新しいシステムに合うようにターゲットシステムの構成を変更する必要があります。
ゾーンのストレージがローカルの場合、zoneadm migrate コマンドを使用できません。代わりに、次のいずれかを実行できます。
ローカルのストレージデバイスがブートに必要ない場合は、それらをゾーン構成から削除したあと、zoneadm migrate を使用します。
Oracle Solaris ゾーンの作成と使用 の 共有ストレージ構成にゾーンを移動する方法の説明に従ってストレージを共有ストレージに変換したあと、zoneadm migrate を使用します。
共有ストレージを使用していない非大域ゾーンのアーカイブと移動の説明に従って、ゾーンを移行するのではなくアーカイブして、新しいシステムに配備しなおします。
移行前にターゲットホストでゾーンを構成する場合は、ターゲットホストでのゾーン構成のバージョンがゾーンのブートに使用されます。
移行前にターゲットホストでゾーンを構成しない場合は、ゾーン構成がソースホストからエクスポートされて、ターゲットホストにインポートされます。移行を行うユーザーには、ターゲットホストでゾーン構成を作成するために、ゾーン構成の権利プロファイルと solaris.zone.config の承認が必要です。詳細は、非大域ゾーンの移行を実行するための root 以外のユーザーの承認を参照してください。
solaris ゾーンには、それが attached 状態であっても、常にそのストレージがマップされ、zpool がインポートされます。これは、大域ゾーンが更新されたときにゾーン内のパッケージを更新できるようにするために必要です。移行中に solaris ゾーンがターゲットシステムに接続されると、ゾーン内のパッケージが大域ゾーンに照らし合わせて検証され、パッケージレベルが異なる場合は、–u または –U 更新オプションを使用してゾーンの更新を試みるよう指定していないかぎり、接続に失敗します。
–u または –U 更新オプションを使用した移行では、大域ゾーンと一致するように solaris ゾーン内のパッケージの更新を試みます。その試行中に新しい ZBE が作成されることがあります。
zoneadm migrate に -x attach-*-zbe オプションが指定されていない場合、宛先システムでの接続によって、直近にマウントされた ZBE がクローニングの対象として選択されます。その後、クローニングされた ZBE が接続されます。
ゾーンの変換は、Oracle Solaris 大域ゾーンまたは非大域ゾーンのアーカイブを作成し、それを Oracle Solaris 大域ゾーンまたは非大域ゾーンとして配備するプロセスです。ソースゾーンのタイプ (大域または非大域) は、配備されるゾーンタイプ (大域または非大域) と同じ場合と異なる場合があります。
実行できるゾーンの変換には次の種類があります。
大域ゾーンから非大域ゾーン。物理から仮想への変換 (P2V 変換) と呼ばれます。
非大域ゾーンから大域ゾーン。仮想から物理への変換と呼ばれます。
非大域ゾーンから非大域ゾーン。仮想から仮想への変換 (V2V 変換) と呼ばれます。この変換は、共有ストレージを使用していないために、zoneadm migrate コマンドで移行できないゾーンの移行に役立ちます。
Oracle Solaris では、いくつかの仮想化テクノロジをサポートしています。たとえば、論理ドメインとゾーンはどちらも仮想 Oracle Solaris インスタンスです。論理ドメインからゾーンへの変換は、V2V 変換とみなすことができます。ただし、論理ドメインは大域ゾーンで動作しているため、大域から非大域への変換 (P2V 変換) でもあります。このため、Oracle Solaris 11 でのゾーンの変換のモデルは、物理対仮想ではなく、大域対非大域の観点から説明されます。
Oracle Solaris 11.4 リリースでは、ゾーン間の変換に統合アーカイブのみを使用できます。統合アーカイブの詳細は、Oracle Solaris 12 でのシステム復旧とクローンを参照してください。
ゾーンの変換を実装するには、変換対象の Oracle Solaris インスタンスをアーカイブし、そのアーカイブを新しいゾーンまたはシステムに配備します。
Oracle Solaris 11.2 より前の Oracle Solaris 11 リリースが動作しているホストシステムでは、こうした以前のリリースに記載されているように、ゾーンの変換にレガシーアーカイブを使用する必要があります。
統合アーカイブファイルには、ゾーン構成とゾーンデータの両方が含まれています。つまり、ターゲットシステムで、ゾーンをアーカイブから構成およびインストールできます。zonecfg コマンドを使用すると、統合アーカイブファイルから直接新しいゾーンを構成でき、zoneadm コマンドを使用すると、統合アーカイブファイルから直接新しいゾーンをインストールできます。システムおよびゾーンのクローニングや回復のための使用法を含む統合アーカイブの詳細は、Oracle Solaris 12 でのシステム復旧とクローンを参照してください。
ゾーンの変換の全体的なプロセスは次のとおりです。
ソースホストと、新しいゾーンが置かれるターゲットホストの両方が要件を満たしていることを確認します。詳細は、ソースホストとターゲットホストでのゾーンの変換の要件を参照してください。
大域ゾーンから非大域ゾーンに変換する場合は、zonep2vchk ツールを使用して、変換されたゾーンで障害を引き起こす可能性のある問題をすべて特定します。詳細は、zonep2vchk ツールを使用した大域から非大域への変換準備を参照してください。
archiveadm コマンドを使用して大域ゾーンのアーカイブを作成します。
zonecfg コマンドを使用して、ターゲットのゾーン構成を作成します。
zoneadm コマンドを使用してアーカイブからゾーンをインストールするか、installadm コマンドを使用してアーカイブからシステムをインストールします。
詳細は、zonep2vchk(8)、archiveadm(8)、zfs(8)、zonecfg(8)、zoneadm(8)、および zones(7) の各マニュアルページを参照してください。
アーキテクチャー - ソースシステムとターゲットシステムでは、同じ命令セットアーキテクチャー (ISA) を使用する必要があります。たとえば、両方とも SPARC ベースのシステムにするか、両方とも x86 ベースのシステムにする必要があります。
Oracle Solaris バージョン - ターゲットシステム上の大域ゾーンでは、元のソースホスト上のリリース以上の Oracle Solaris リリースが動作している必要があります。
大域ゾーンから非大域ゾーンに変換する前に、大域ゾーンで実行されているソフトウェアに非大域ゾーンとの互換性があることを確認します。zonep2vchk(8) ツールでは、非大域ゾーンへの変換前に大域ゾーンの構成を評価します。
非大域ゾーンから大域ゾーンまたはカーネルゾーンに変換する前に、ソースホストとターゲットホストの Oracle Solaris オペレーティングシステムのバージョンに互換性があることを確認する必要があります。そのほかの互換性を確認する必要はありません。それらのホストシステムに互換性があれば、非大域ゾーンで実行されているソフトウェアはすべて大域ゾーンまたはカーネルゾーンでも実行できます。
Oracle Solaris パッケージ - ゾーンが正常に動作することを保証するには、元のソースホストにインストールされている必須オペレーティングシステムパッケージと同じかまたはそれ以降のバージョンのものが、ターゲットシステムにインストールされている必要があります。たとえば、ソースホストで Support Repository Update (SRU) が実行されている場合は、ターゲットホストでもその SRU またはそれ以降の SRU が実行されている必要があります。
サードパーティー製品のパッケージなど、ほかのパッケージは異なっていてもかまいません。
大域ゾーンから非大域ゾーンへの変換を行うと、その大域ゾーン内にある既存の solaris ゾーンやカーネルゾーンはすべて、ゾーンの変換後に使用できなくなります。大域ゾーンとカーネルゾーンだけにはほかのゾーンを含めることができます。
詳細は、Oracle Solaris 12 でのシステム復旧とクローン の 第 1 章, Oracle Solaris System Recovery and Cloning (Overview)を参照してください。
zonep2vchk ツールでは、非大域ゾーンへの変換前に大域ゾーンの構成を評価します。このツールの主なドキュメントは、zonep2vchk(8) のマニュアルページです。
このセクションでは、次の内容について説明します。
zonep2vchk ツールでは、大域ゾーン (物理インスタンス) で、それが非大域ゾーン (仮想インスタンス) に変換されるときに発生する可能性のある問題を評価します。zonep2vchk ツールは、0 の実効ユーザー id で実行できます。
zonep2vchk ツールの機能は次のとおりです。
ソースシステムの構成内の問題領域を特定します
必要になる手動の再構成作業を最小限に抑えます
Oracle Solaris 大域ゾーンから、同じ Oracle Solaris リリース上の非大域ゾーンへの変換をサポートします
元のシステムイメージ内の複雑なネットワーク構成 (複数の IP インタフェース、IP マルチパス、VLAN など) をサポートします
zonep2vchk ツールを使用すると、Oracle Solaris の大域ゾーンから非大域ゾーンへの変換に役立ちます。このツールでは、システムを評価して、solaris ブランドゾーンへの変換を困難にしたり妨げたりする可能性のある問題にフラグを立て、変換を可能にするために取るべきアクションを提案します。このツールには、新しい solaris ゾーンを構成するためのテンプレートも用意されています。
図 2 zonep2vchk による評価のシナリオ
zonep2vchk オプションを使用すると、何種類かのチェックを実行できます。
基本分析では、大域から非大域への変換によって影響を受ける可能性のある使用中の Oracle Solaris 機能をチェックします。オプションを指定しない場合は、これがデフォルトです。
ほかのオプションと組み合わせるときは、基本チェックに –b オプションを使用します。
静的分析では、ゾーン内で機能しない可能性のあるシステムおよびライブラリコールがないかどうかバイナリを検査します。
英小文字の –s オプションを使用すると、分析対象のバイナリへのパスを指定でき、英大文字の –S オプションを使用すると、分析対象のファイルやディレクトリを一覧表示するファイルへのパスを指定できます。
実行時分析では、現在実行中のアプリケーションに、ゾーン内で機能しない可能性のある操作がないかどうかを検査します。
–r オプションを指定された時間 (時間、分、または秒) とともに使用します。また、–x オプションを使用すると、Ctrl-C を入力するなどのシグナル割り込みを送信するまで分析できます。
詳細は、zonep2vchk によるソースシステムのチェック方法、および zonep2vchk(8) のマニュアルページを参照してください。
zonep2vchk ツールを使用して各種チェックを実行すると、次の主なカテゴリの情報が生成されます。
特定のゾーンの構成または大域ゾーン内の構成変更によって対処できる問題
ゾーン内で実行できない機能の特定
たとえば、アプリケーションでシステムクロックを設定する場合、その機能を solaris ゾーンで有効にするには、適切な特権をそのゾーンに追加します。ただし、カーネルメモリーにアクセスするアプリケーションを solaris ゾーンで実行することはできません。出力では、これらの 2 つのクラスの問題を区別します。
zonep2vchk ツールは、デフォルトでは人間が読める形式のメッセージを出力します。メッセージを機械解析可能な形式で出力するには、–P オプションを使用します。詳細は、zonep2vchk(8) のマニュアルページを参照してください。
zonep2vchk ツールには、zonecfg コマンドで用いるためのテンプレートの作成に使用できる –c オプションが備わっています。このテンプレートは、大域ゾーンのリソースの一部を非大域ゾーンに適したものになるように構成します。
テンプレートを作成する前に、大域ゾーンで分析チェックを実行して、必要な変更を行うことができます。テンプレートを作成するには、コマンドを実行してその出力をファイルに送ります。次に、そのファイルを zonecfg コマンドの入力として使用して、ゾーン構成の開始ポイントを作成します。例:
global$ pfbash zonep2vchk -c > myzone.config global$ zonecfg -z myzone -f myzone.config