Solaris Container は、物理的なシステムリソースの集合を体系づけて管理するのに役立つ抽象化層です。コンテナを使用して、アプリケーションに必要なリソース要件の詳細な計画を立てることができます。アプリケーションに対するリソース要件が、Solaris Container モデルの中心となります。このモデルでは、サービスまたは作業負荷に注目します。サービスは、アプリケーションによってもたらされ、システムへの作業負荷となります。実行中のアプリケーションなど、関連する一連のプロセスが作業負荷となります。
Solaris Resource Manager 1.3 では、作業負荷に基づいた古い方式の管理が実装されていました。このリリースでは、作業負荷が制限ノード (lnode) に関連付けられていました。Container Manager ソフトウェアでは、この方式を拡張しています。現在のコンテナモデルは、サービスに対してリソースの継続的な割り当てを構成および管理する手段を提供しています。一般的なサービスの例には、給与、顧客の注文の検索、Web サービスの配信があります。
サーバー統合では、アプリケーションを制限する環境を記述できる必要があります。この記述を設定すると、サーバー当たり 1 つのアプリケーションを実行する環境から、単一のサーバーで複数のアプリケーションを実行する環境に移行できます。コンテナは、この記述であると同時に、そのインスタンス化でもあります。たとえば、簡単なコンテナでは、CPU、物理メモリー、および帯域幅などのシステムリソースを記述できます。複雑なコンテナでは、セキュリティ、名前空間の独立、およびアプリケーション障害も制御できます。
次の Solaris Container の図に、サービスとリソースの関係を示します。
枠がコンテナを表します。サービスを囲む枠の x、y、および z の各軸に沿って 3 種類のリソースがあります。このモデルでは、CPU、メモリー、および帯域幅が基本リソースです。サービスは、コンテナにどのように包含されるかを示すために枠で囲まれています。このリリースでは、Container Manager によって 3 つの基本リソースである CPU、物理メモリー、および帯域幅がすべて制御されます。
Container Manager は作業負荷に注目するため、単一のホストで使用されるリソース量は監視されません。ホストとは、Container Manager のエージェントソフトウェアがインストールされ、また Sun Management Center サーバーのコンテキストに含まれるシステムです。インストールが完了すると、ホストは自動的に検出され、その名前が「ホスト」表示のナビゲーションウィンドウに追加されます。ソフトウェアによって、サービスで使用されるリソース量が監視されます。このモデルでは、サービスのインスタンス 1 つが、個別のホストで実行される 1 つ以上のプロセスを表します。データは、システムの健全性の監視とアカウンティングのために保持されます。
単一のホストで同時に複数のコンテナを有効にできます。単一のホストに複数のコンテナがある場合、ホストがコンテナを拡張および縮小できるように、コンテナの境界を設定できます。この場合、ほかのコンテナが使用していないリソースがあれば、そのリソースを使用したいコンテナに割り当てられるようになります。最終的に、単一のホストで有効にできるコンテナ数は、使用可能な CPU 数とメモリー容量、および各コンテナで予約されているこれらのリソース量によって決まります。システムは、すべての有効なコンテナに必要なリソースの総量を備えている必要があります。リソース量は、アプリケーションのニーズによって決まります。
Container Manager でのコンテナの管理については、第 4 章「プロジェクトの管理」を参照してください。