Print-friendly Version
Solaris Container Manager を使用したサーバーおよびアプリケーションの統合
Raghuraman Sesharaman, 2007 年 10 月
この文書は、Solaris Container Manager を使用してサーバーおよびアプリケーションを統合する方法について説明しています。
Solaris Container Manager の概要
Solaris Container Manager は、Sun Management Center 4.0 ソフトウェアに統合された機能の一部で、Sun Management Center のアドオン製品として提供されます。Solaris Container
Manager は、ブラウザベースのコンソールでソフトウェアのコンテナを管理し、リソースの使用率を最大化してデータセンターの生産性を向上させます。
Solaris Container Manager ソフトウェアは、 Solaris 8、Solaris 9、および Solaris 10 オペレーティングシステムで実行されている既存のリソース管理ユーティリティーを組織化します。
Solaris Container Manager ソフトウェアは、それぞれのソフトウェアアプリケーションが使用するリソース管理を制御する機能を提供します。この制御機能は、特にデータセンターのサーバー統合を行う際に便利です。サーバー統合には、次のようなメリットがあります。
シナリオ
問題: データセンター内に、Solaris SPARC システムが 10 台と Solaris x64 システムが 10 台あるとします。これらのシステムがそれぞれアプリケーションを 1
つ実行しています。たとえば、4 台のシステムで Web サーバーを、別の 4 台のシステムでデータベースアプリケーションを、そして残りの 2 台のシステムで独自のアプリケーションを実行しているとします。こうした設定は、保守およびスペース上の問題や、CPU およびメモリーリソースを十分に活用できないという問題の原因となります。
回避方法: これらの SPARC および x64 システムで実行しているアプリケーションを、より少ない数のシステムに統合します。
ゾーンの作成
統合を行うにあたり、統合されたシステムを共有するアプリケーションの必要性を評価することが重要です。 Solaris ゾーンはシステム上で別々の環境を提供して、アプリケーションを別のアプリケーションから論理的に隔離します。 各アプリケーションは専用の名前空間を受け取り、その中で実行します。別のゾーンで実行中のアプリケーションを参照、監視、および影響を及ぼしたりすることはできません。
Solaris Container Manager のゾーンウィザードを使用して、非大域ゾーンを作成できます。
ゾーンを作成する
Solaris SPARC システムの 1 つに非大域ゾーンを作成して、Web サーバーアプリケーションを配備します。
始める前に
使用可能な CPU シェアがあるリソースプールが必要です。
Sun Management Center のメインウィンドウの左側の区画で、「Solaris コンテナを管理」を選択します。
ホスト名を選択します。
「ゾーン」タブをクリックします。
「新規ゾーン」ボタンをクリックします。
「新規ゾーン」ウィザードが表示されます。ウィザードの各手順についてのヘルプテキストを表示するには、ウィザードの区画内にある「ヘルプ」タブをクリックします。
ゾーンの基本的な識別情報を入力します。
ゾーンパスを入力します。
ゾーンパスは、このゾーンのルートパスとして使用する絶対パスです。パスの最後のディレクトリ名が存在しない場合は、その名前のディレクトリが作成されます。既存のディレクトリ名を使用する場合は、そのアクセス権を 700 に設定してください。
ネットワークインタフェースを選択します。
ネットワークインタフェースのドロップダウンリストには、このホスト上で検出されたネットワークインタフェースのみが表示されます。
システムがクラッシュした際にゾーンを自動的に再起動させたい場合は、「自動再起動」の「有効」ボックスを選択します。
「ゾーンブランド」ドロップダウンリストから「native」を選択します。
ゾーンブランドは、ゾーンのインストールおよび起動時に実行されるスクリプトを特定し、アプリケーションの起動時に正しいアプリケーションタイプを識別します。
ネイティブゾーンには、親ホストと同じオペレーティング環境が含まれます。
ゾーンの追加の識別情報を入力します。
ゾーンのホスト名を入力します。
ゾーンのホスト名は、rlogin および telnet 用にゾーンに付与する名前です。
IP アドレスを入力します。
IP アドレスはネットワーク管理者によって割り当てられています。
root パスワードを入力します。
ゾーンの root パスワードの長さは、6 〜 8 文字としてください。
タイムゾーンを選択します。
タイムゾーンは、そのシステムが物理的に配置されている場所のタイムゾーンである必要はありません。
ネームサービスとして DNS を選択した場合は、ゾーンで使用するドメイン名とネームサーバーも入力します。
このゾーンのリソースプールを選択します。
リソースプールは、CPU リソースを割り当てるために使用されるオブジェクトです。総 CPU 数と CPU シェア数の要件に基づく使用可能なリソースプールを選択します。
CPU シェア数の属性を入力します。
「CPU シェア数」フィールドの値は正の整数で、公平配分スケジューラ (FSS) が、このゾーンに関連付けられたプロジェクトにシステムリソースを割り当てるために使用します。このフィールドのデフォルト値は 1 です。
「プロジェクトの CPU シェア数」フィールドの値には、FSS が、このゾーンに関連付けられたプロジェクトにシステムリソースを割り当てる割合を設定します。このフィールドのデフォルト値は 1000 です。
メモリー構成を指定します。
メモリーは、次の 4 つの区分で割り当てることができます。
物理メモリー - 物理メモリーの割り当て量 (M バイト単位)
最大スワップ - スワップ領域に使用可能なメモリー量 (M バイト単位)
ロックメモリー - ロックメモリー量 (M バイト単位)
共有メモリー - 共有メモリー量 (M バイト単位)
IPQoS 属性を指定します。
IP サービス品質 (IPQoS) 機能は、Solaris ゾーンのインバウンドおよびアウトバンドトラフィックの制御を容易にします。
追加のネットワーク接続がある場合はそれらを指定します。
仮想ネットワークインタフェースを追加するには、IP アドレスを入力し、ドロップダウンメニューからネットワークインタフェースを選択します。各ネットワークインタフェースは複数の IP アドレスを持つことができますが、IP アドレスは 1 回しか使用できません。詳細は、zonecfg(1M) のマニュアルページを参照してください。
ゾーン内で構成するデバイスを指定します。
デバイスを使用可能にするには、「デバイスのディレクトリ」フィールドに論理デバイスのパスを入力します。たとえば、/dev/rdsk/c1t3d0s0 または /dev/sound/* のようになります。 各ゾーンは、ゾーンがインストール済みの状態から準備完了状態に遷移するときに構成されるデバイスを持つことができます。
ゾーンにファイルシステムを含めるには、マウントポイント、パス、およびファイルシステムのタイプを入力します。
ファイルシステムを指定するには、次の情報を入力します。
「タイプ」ドロップダウンメニューからファイルシステムのタイプを選択します。
詳細は、zonecfg(1M)、 mount(1M)、mount(2)、fsck(1M)、および vfstab(4) のマニュアルページを参照してください。
このゾーンで、パッケージ化されたソフトウェアを大域ゾーンと共有する場合は、そのパッケージの継承元ディレクトリのパスを指定します。
inherit-pkg-dir リソースは、非大域ゾーンが大域ゾーンと共有するパッケージ化されたソフトウェアを含むディレクトリを示すために使用されます。大域ゾーンからパッケージを継承するには、継承するパッケージのディレクトリのパスを入力します。
詳細は、zonecfg(1M) のマニュアルページを参照してください。
デフォルトで新規ゾーンに割り当てる特権を確認します。
使用可能な特権の一覧にある特権は、新規ゾーンにデフォルトで割り当てられます。ゾーン特権のデフォルトセットを変更するには、使用可能なデフォルトのゾーン特権から除外する特権を選択します。
任意のゾーン特権を取り込みます。
ゾーン構成を確認します。
「完了」ボタンをクリックして指定した構成に従ってゾーンを作成するか、「戻る」ボタンをクリックしてゾーンのパラメータを変更します。
次の手順
CPU とメモリー消費の観点から、システムのパフォーマンスを確認します。
ゾーンのコピー
単一のシステム上に複数の非大域ゾーンのコピーを作成したり、複数のシステム上に非大域ゾーンのコピーを 1 つ作成したりできます。非大域ゾーンをコピーすると、そのすべてのプロパティーが新規ゾーンに継承されます。
ゾーンのコピーを作成する
CPU とメモリー消費に関してシステムのパフォーマンスが十分であれば、同じシステム上にゾーンのコピーを 3 つ作成します。3 つの新規ゾーンでは、自動的に Web サーバーアプリケーションが実行されます。非大域ゾーンをコピーすると、そのすべてのプロパティーが新規ゾーンに継承されます。
Sun Management Center のメインウィンドウの左側の区画で、「Solaris コンテナを管理」を選択します。
Solaris 10 ホスト名をクリックします。
「ゾーン」タブをクリックします。
「ゾーンのコピー」ボタンをクリックします。
「ゾーンのコピー」ウィザードが表示されます。
同一ホスト上にゾーンの複数のコピーを作成するか、複数のホスト上にゾーンのコピーを 1 つ作成するかを選択します。
同一ホスト上にゾーンの複数のコピーを作成するには、「同一ホスト」オプションを選択し、「次へ」をクリックして指示に従います。
複数のホスト上にゾーンのコピーを 1 つ作成するには、「複数のホスト」オプションを選択し、「次へ」をクリックして指示に従います。
ウィザードの手順に従います。
同一ホスト上にゾーンをコピーするとき、そのゾーンのホストが Solaris 10 Update 3 以降で実行されている場合は、ゾーンのクローン作成を選択できます。クローン作成では、ゾーンの内容をすべて含む、正確な複製を作成します。
複数のホストにゾーンをコピーするとき、そのゾーンのホストが Solaris 10 Update 3 以降で実行されている場合は、ゾーンの内容のコピーを選択できます。
次の手順
以上の手順を実行すると、4 台のシステム上で実行されている 4 つの Web サーバーアプリケーションが、ゾーンを使用して 1 台のシステムに統合されます。
次に、4 つのデータベースアプリケーションに関して、「ゾーンを作成する」 および 「ゾーンのコピーを作成する」 の手順を繰り返してください。これらの手順を実行すると、4 台のシステム上で実行している 4 つのデータベースアプリケーションが、1 台のシステムに統合されます。
独自のアプリケーションを実行している 2 台のシステムについては、1 台のシステム上に 2 つのゾーンを作成して、そのアプリケーションを手動で配備します。
こうして、10 台のシステム上で実行されているアプリケーションを、3 台のシステムに効率よく統合できます。1 台めのシステムでは Web サーバーアプリケーションを、2 台めのシステムではデータベースアプリケーションを、そして 3 台めのシステムでは独自のアプリケーションをそれぞれ実行します。
ゾーンの移行
Sun Fire T2000 のような、十分な CPU とメモリーを持つ大きなシステムがある場合、3 台のシステム上で実行しているアプリケーションを、ゾーンの移行機能を使用して 1 台のシステムに統合することもできます。
ゾーンの移行機能を使用すると、選択したゾーンを、元のシステムから移行先のシステムに移行できます。
ゾーンの移行とは、インストール済みの非大域ゾーンを、あるシステムから別のシステムへ移動するプロセスのことです。手動でゾーンを移行するには、移行元のシステム上でゾーンの接続を切り離す、ゾーンのアーカイブを移行先のシステムへ移行する、移行先のシステム上でゾーンを再構成する、ゾーンを移行先のシステムに接続する、といった多くの手順が必要です。
Solaris Container Manager では、移行プロセス全体が 1 つの操作として実行されます。移行するゾーンを選択したあと、「ゾーンを移行」ボタンをクリックすると、「ゾーンの移行」ウィザードが表示されます。このウィザードを使用して、ゾーンの移行先システムを選択します。この機能によって、移行プロセス全体が簡素化されています。
ゾーンの移行の要件
移行元のシステムから移行先のシステムにゾーンを移行するときの要件を次に示します。
移行先のシステム上の大域ゾーンは、移行元のシステムと同じリリースの Solaris で実行されている必要があります。
移行元のシステムと移行先のシステムは、同じシステムアーキテクチャーである必要があります。
移行先のシステムには、移行元のシステムにインストールされているものと同じバージョンの、次の必須オペレーティングシステムパッケージとパッチが必要です。
その他のパッケージやパッチ (たとえば 他社製品用のパッケージやパッチ) では前述と異なる場合があります。
ブランドゾーンでは、ブランドは移行元のシステムと移行先のシステムとで同じである必要があります。
ゾーンを移行する
移行のプロセスは、移行元および移行先のシステムのアーキテクチャーによって異なります。
ネイティブゾーンおよびブランドゾーンを、Solaris x64 システムから Solaris x64 システムに移行する場合、移行先と移行元のシステムのアーキテクチャーが同じであるため、移行は成功します。移行先のシステムからアプリケーションを実行できるようになります。
ネイティブゾーンを、Solaris SPARC システムから Solaris x64 システムへ移行する場合、移行元と移行先のシステムのアーキテクチャーが異なるため、プロジェクト設定や CPU 設定などのゾーンインフラストラクチャーのみが移行されます。移行先のシステムに、手動でアプリケーションを配備する必要があります。
Sun Management Center のメインウィンドウの左側の区画で、「Solaris コンテナを管理」を選択します。
ホスト名を選択します。
「ゾーン」タブをクリックします。
移行するゾーンを選択します。
「ゾーンを移行」ボタンをクリックします。
「ゾーンの移行」ウィザードが表示されます。ウィザードの各手順についてのヘルプテキストを表示するには、ウィザードの区画内にある「ヘルプ」タブをクリックします。
ホストを検索します。
「ホスト名」テキストフィールドにホスト名を入力します。
ドロップダウンリストから、オペレーティングシステムとプラットフォームを選択します。
「総プロセッサ数」フィールドに、最小プロセッサ数を入力します。
「総メモリー容量」フィールドに、最小メモリー量を入力します。
「クロック速度」フィールドに最低クロック速度を入力し、「次へ」をクリックします。
ゾーンを移行するホストを選択します。
ターゲットゾーンのパスを入力し、「次へ」をクリックします。
ゾーンの移行構成を確認し、「完了」をクリックします。
ブランドゾーンの作成
Solaris x64 システム上で実行しているアプリケーションを、より少数のシステムに統合する手順は同様ですが、ネイティブゾーンの代わりにブランドゾーンを作成する必要があります。ネイティブブランドの代わりのゾーンブランドとして、lx を指定する必要があります。
ブランドゾーン (BrandZ) フレームワークは、Solaris ゾーンインフラストラクチャーを拡張します。ブランドゾーン (BrandZ) フレームワークを使用すると、アプリケーションの実行に使用するネイティブ以外のオペレーティング環境を含む非大域ゾーンを作成することが可能になります。ブランド管理は、すべて現在のゾーン構造への拡張を通じて実行されます。
Solaris Container Manager のゾーンウィザードを使用して、ブランドゾーンを作成できます。
ブランドゾーンを作成する
Sun Management Center のメインウィンドウの左側の区画で、「Solaris コンテナを管理」を選択します。
ホスト名を選択します。
「ゾーン」タブをクリックします。
「新規ゾーン」ボタンをクリックします。
「新規ゾーン」ウィザードが表示されます。ウィザードの各手順についてのヘルプテキストを表示するには、ウィザードの区画内にある「ヘルプ」タブをクリックします。
ゾーンの基本的な識別情報を入力します。
ゾーンパスを入力します。
ゾーンパスは、このゾーンのルートパスとして使用する絶対パスです。パスの最後のディレクトリ名が存在しない場合は、その名前のディレクトリが作成されます。既存のディレクトリ名を使用する場合は、そのアクセス権を 700 に設定してください。
ネットワークインタフェースを選択します。
ネットワークインタフェースのドロップダウンリストには、このホスト上で検出されたネットワークインタフェースのみが表示されます。
システムがクラッシュした際にゾーンを自動的に再起動させたい場合は、「自動再起動」の「有効」ボックスを選択します。
「ゾーンブランド」ドロップダウンリストから「lx」を選択します。
ゾーンブランドは、ゾーンのインストールおよび起動時に実行されるスクリプトを特定し、アプリケーションの起動時に正しいアプリケーションタイプを識別します。
lx は、親ホストのオペレーティング環境にかかわらず、Linux 環境を含むゾーンを示します。ブランドゾーンの値 lx は、 x64 システム版の Solaris 10 8/07 の場合にのみ使用できます。
イメージのパス、インストールの引数、システム構成ファイルを指定します。
システム構成ファイルは、ゾーンの管理に必要な属性を提供するために必要です。
このゾーンのリソースプールを選択します。
リソースプールは、CPU リソースを割り当てるために使用されるオブジェクトです。総 CPU 数と CPU シェア数の要件に基づく使用可能なリソースプールを選択します。
CPU シェア数の属性を入力します。
「CPU シェア数」フィールドの値は正の整数で、公平配分スケジューラ (FSS) が、このゾーンに関連付けられたプロジェクトにシステムリソースを割り当てるために使用します。このフィールドのデフォルト値は 1 です。
「プロジェクトの CPU シェア数」フィールドの値には、FSS が、このゾーンに関連付けられたプロジェクトにシステムリソースを割り当てる割合を設定します。このフィールドのデフォルト値は 1000 です。
メモリー構成を指定します。
メモリーは、次の 4 つの区分で割り当てることができます。
物理メモリー - 物理メモリーの割り当て量 (M バイト単位)
最大スワップ - スワップ領域に使用可能なメモリー量 (M バイト単位)
ロックメモリー - ロックメモリー量 (M バイト単位)
共有メモリー - 共有メモリー量 (M バイト単位)
IPQoS 属性を指定します。
IP サービス品質 (IPQoS) 機能は、Solaris ゾーンのインバウンドおよびアウトバンドトラフィックの制御を容易にします。
追加のネットワーク接続がある場合はそれらを指定します。
仮想ネットワークインタフェースを追加するには、IP アドレスを入力し、ドロップダウンメニューからネットワークインタフェースを選択します。各ネットワークインタフェースは複数の IP アドレスを持つことができますが、IP アドレスは 1 回しか使用できません。詳細は、zonecfg(1M) のマニュアルページを参照してください。
ゾーン内で構成するデバイスを指定します。
デバイスを使用可能にするには、「デバイスのディレクトリ」フィールドに論理デバイスのパスを入力します。たとえば、/dev/rdsk/c1t3d0s0 または /dev/sound/* のようになります。 各ゾーンは、ゾーンがインストール済みの状態から準備完了状態に遷移するときに構成されるデバイスを持つことができます。
ユーザー定義の属性を含めます。
再起動後もゾーンで持続させたい項目に対して、またはほかのユーザー定義の目的のために、ユーザー独自の属性を追加できます。たとえば、この機能を使用してブランドゾーンのオーディオデバイスを定義できます。属性には、名前、値、型を含む必要があります。
ゾーンにファイルシステムを含めるには、マウントポイント、パス、およびファイルシステムのタイプを入力します。
ファイルシステムを指定するには、次の情報を入力します。
「タイプ」ドロップダウンメニューからファイルシステムのタイプを選択します。
詳細は、zonecfg(1M)、 mount(1M)、mount(2)、fsck(1M)、および vfstab(4) のマニュアルページを参照してください。
このゾーンで、パッケージ化されたソフトウェアを大域ゾーンと共有する場合は、そのパッケージの継承元ディレクトリのパスを指定します。
inherit-pkg-dir リソースは、非大域ゾーンが大域ゾーンと共有するパッケージ化されたソフトウェアを含むディレクトリを示すために使用されます。大域ゾーンからパッケージを継承するには、継承するパッケージのディレクトリのパスを入力します。
詳細は、zonecfg(1M) のマニュアルページを参照してください。
デフォルトで新規ゾーンに割り当てる特権を確認します。
使用可能な特権の一覧にある特権は、新規ゾーンにデフォルトで割り当てられます。ゾーン特権のデフォルトセットを変更するには、使用可能なデフォルトのゾーン特権から除外する特権を選択します。
任意のゾーン特権を取り込みます。
ゾーン構成を確認します。
「完了」ボタンをクリックして指定した構成に従ってゾーンを作成するか、「戻る」ボタンをクリックしてゾーンのパラメータを変更します。
詳細情報
本書に記載されている機能の詳細については、次のドキュメントを参照してください。
ゾーンに関する一般的な情報は、次のドキュメントを参照してください。
Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License .