ゾーンは、マシン上で個別の環境を提供し、それぞれのアプリケーションを論理的に分離する Solaris コンテナのテクノロジです。ゾーンを使用すると、Solaris オペレーティングシステムのインスタンス内で仮想的なオペレーティングシステム環境を作成できます。アプリケーションを異なるゾーンで実行すると、同じマシン上で異なるインスタンスまたは異なるバージョンのアプリケーションを実行でき、同時に集中型の管理および効率的なリソースの共有が可能になります。
この節は、ゾーンの簡単な説明および Message Queue 3.7 UR1 での使用法について説明します。
ゾーン環境には、大域ゾーンおよび 1 つ以上の非大域ゾーンが含まれます。Solaris 10 が最初にインストールされた時点では、1 つの大域ゾーンのみがシステムにインストールされます。管理者は大域ゾーンの子としてほかの非大域ゾーンを作成できます。各ゾーンは Solaris を実行する独立したシステムのように見えます。各ゾーンは、それぞれ独自の IP アドレス、システム設定、実行中のアプリケーションのインスタンス、およびファイルシステムの領域を所有します。
大域ゾーンには、非大域ゾーンで共有することが可能なリソースが含まれます。これにより特定の管理機能を集中させることができます。たとえば、大域ゾーンにインストールしたパッケージは、すべての既存の非大域ゾーンで使用または伝達可能です。これにより、インストール、アップグレードおよびアンインストールなどのライフサイクル管理を集中化できます。同時に、非大域ゾーンが提供する分離機能によってセキュリティーが向上し、同じアプリケーションの異なる設定を行なったインスタンスまたは異なるバージョンを同一マシン上で実行できます。
非大域ゾーンは、完全ルートゾーンまたは疎ルートゾーンのどちらかになります。アプリケーション用にどちらの環境を選択するかは、管理制御とリソースの最適化のバランスをどのように判断するかによって異なります。
完全ルートゾーンには、大域ゾーン上のファイルシステムの読み取り/書き込み可能なコピーが含まれます。大域ゾーンにインストールされたパッケージは、レジストリ情報とともに完全ルートゾーンに自動的にコピーされます。リソースが犠牲になりますが、管理制御は最大となります。
疎ルートゾーンには、大域ゾーンのファイルシステムの一部の読み取り/書き込み可能なコピーが含まれますが、その他のファイルシステムは読み取り専用のファイルシステムとしてマウントされます。大域ゾーンにインストールされたパッケージは、読み取り専用ファイルシステムおよびレジストリ情報の自動同期を使用して、疎ルートゾーンで利用できます。疎ルートゾーンでは、集中的な管理が犠牲になりますが、リソースの共有は最適化されます。
Java Enterprise System を構成するコンポーネントはいくつかの共有コンポーネントに依存しているため、ゾーンで作業する場合にはいくつかの制限事項があります。ゾーン環境では、共有コンポーネントは次の規則に従います。
ゾーン内のすべての共有コンポーネントは、同じバージョンの JES である必要があります。この要件により、3 つの点に影響します。
共有コンポーネントの異なるバージョンをインストールしたい場合は、それぞれのバージョンを別々のゾーンに常駐させる必要があります。
ゾーン内で 1 つの共有コンポーネントをアップグレードまたはあとのバージョンをインストールする場合、すべての共有コンポーネントをアップグレードする必要があります。
大域ゾーンに共有コンポーネントをインストールする場合、非大域ゾーンの共有コンポーネントを必要に応じてアップグレードすることに注意する必要があります。
疎ルートゾーン内のファイルシステムは読み取り専用のため、共有コンポーネントは疎ルートゾーンにインストールできません。代わりに、大域ゾーンにインストールする必要があります。共有コンポーネントに依存する製品コンポーネントは、まず大域ゾーンにインストールしてから非大域ゾーンに伝達する必要があります。
Java Enterprise System のコンポーネント製品であるためこれらの要件は Message Queue のインストールに影響し、そのためにゾーンの使用にも制限があります。
Message Queue 製品は /usr ディレクトリにインストールされるため、最初に大域ゾーンでインストールまたはアップグレードする必要があります。
Message Queue が大域ゾーンにインストールされた場合、すべての非大域ゾーンに伝達されます。Message Queue を大域ゾーンにインストールしたあと、同じバージョンのMessage Queue がすべてのゾーンにインストールされます。任意のゾーンにログインしてコマンド pkginfo -l SUNWiqu を実行すると、大域ゾーンと同じバージョンがインストールされているのが確認できます。インスタンス、および /var と /etc ディレクトリに保持される設定データを共有しないため、各ゾーンで独立した Message Queue ブローカのインスタンスを実行できます。(ほかの Java Enterprise System コンポーネントの大部分は、大域ゾーンにインストールされても伝達されません。)
Message Queue は非大域ゾーンに伝達されるため、大域インスタンスが永久的に非大域ゾーン内のインストール場所にリンクされます。したがって、大域ゾーン内の Message Queue をアンインストールまたはアップグレードした場合は、非大域ゾーン内で実行中のインスタンスに影響します。このために生じる可能性のある予期しない結果を次に示します。
Message Queue 3.7 UR1 を大域ゾーンにインストールします。これにより Message Queue 3.7 UR1 パッケージはすべての非大域ゾーンにもインストールされます。
完全ルートゾーン内の Message Queue 3.7 UR1 をアンインストールします。そのあと、完全ルートゾーンに Message Queue 3.6 をインストールします。
これで異なるゾーンに異なるバージョンの Message Queue が実行されます。この設定が便利な場合もあります。
Message Queue 3.7 UR1 を大域ゾーンからアンインストールします。これにより Message Queue は、完全ルートゾーン内の Message Queue 3.6 インスタンスを含むすべてのゾーンからアンインストールされます。
大域ゾーン内の Message Queue のインストールまたはアンインストールは階層的に行われることに常に注意してください。
次の 2 つの事例は、異なるゾーンに Message Queue の異なるインスタンスおよび異なるバージョンをインストールする方法を説明します。
Message Queue を Solaris 10、Solaris 10U1、または Solaris 10U2 の完全ルートゾーンにインストールする場合は、最初に Lockhart を大域ゾーンでアップグレードする必要があります。詳細は、バグ 645030 の回避策を参照してください。
大域ゾーンにインストールしたいバージョンの Message Queue をインストールします。
これらのバージョンは、既存の非大域ゾーンに伝達されます。さらに追加の非大域ゾーンを作成する場合は、Message Queue はこれらのゾーンにも伝達されます。(疎ルートゾーンと同様、完全ルートゾーンに異なるインスタンスをインストールできますが、疎ルートゾーンを使用するとより効率的なディスク領域およびリソースの使用が可能になります)。
Message Queue を他のすべての非大域ゾーンに伝達させる場合は、この時点でゾーンを作成します。
それぞれの非大域ゾーンで Message Queue のインスタンスを実行します。