一般に、リソースは、プロセスにバインド可能な OS のエンティティを表します。通常は、カーネルサブシステムによって構築され、分割が可能なオブジェクトを表します。リソースは、アプリケーションの動作を変更するために操作可能な計算機システムの一部と考えることもできます。リソースの例には、物理メモリー、CPU、またはネットワーク帯域幅があります。
Container Manager は、Solaris 8、Solaris 9、および Solaris 10 のリソース管理ユーティリティと連動します。Solaris 8 では、Solaris Resource Manager 1.3 によってリソースが管理されます。各サービスは lnode で表されます。lnode を使用して、リソース割り当てポリシーとリソースの使用状況データが記録されます。lnode は、UNIX ユーザー ID (UID) に対応します。UID は、デフォルトで個々のユーザーとアプリケーションを表します。lnodes およびリソース管理の詳細は、『Solaris Resource Manager 1.3 System Administration Guide』の「Limit Node Overview」を参照してください。
Solaris 9 と Solaris 10 では、Resource Manager によってリソースが管理されます。このリリースでは、lnode に似ているものとしてプロジェクトがあります。プロジェクトは、関連する処理のネットワーク全体の管理 ID です。コンテナ内で実行されるすべてのプロセスはプロジェクト識別子 (プロジェクト ID) が同じです。Solaris カーネルによって、プロジェクト ID を使用してリソース使用状況が追跡されます。同じ追跡方法を使用する拡張アカウンティングを使用して履歴データを収集できます。Container Manager では、プロジェクトがコンテナに相当します。
コンテナ内で実行されるプロセスに関する情報は、Container Manager の GUI で確認します。ソフトウェアを使用してコンテナを作成および管理すると、データは透過的に収集されます。
コンテナの境界は、複数の方法で作成できます。リソースプールを使用してシステムを分割する方法と、リソース制御によってプロジェクトに制限を設定する方法があります。
リソースプール (またはプール) は、Solaris 9 と Solaris 10 で、ホストのリソースを分割するために使用されているソフトウェア構成機構です。リソースセットは、プロセスにバインド可能なリソースです。リソースセットの例には、メモリーセットやプロセッサセットがあります。Solaris 9 と Solaris 10 では、プロセッサセットだけを使用できます。プールは、ホスト上で使用可能なさまざまなリソースセットをバインドしたものです。
リソースプールは、1 つまたは複数のプロジェクトを保持できます。プロジェクトが 1 つの場合、プールに関連付けられているリソースは、そのプロジェクト専用です。プロジェクトが複数の場合、プールに関連付けられているリソースは、プロジェクト間で共有されます。
Solaris 10 オペレーティングシステムでは、製品に動的リソースプールという機能があります。動的リソースプールを使用すると、システムイベントや負荷の変更に応じて各プールのリソース割り当てを調整できるので、パフォーマンスを向上できます。この機能については、「動的資源プール」を参照してください。
Solaris 8 オペレーティングシステムでは、ホストで使用できるリソースプールは 1 つだけです。このプールを pool_default といいます。この OS バージョンでは、リソースプールは存在しないので、見かけ上、pool_default が作成されます。Solaris 8 が動作するホスト上の CPU はすべて単一のプールに含まれると見なされます。
Container Manager によるリソースプールの管理については、第 5 章「リソースプールの管理」を参照してください。
複数のプロジェクトが単一のプールにバインドされている場合は、単一のプロジェクトに保証 (制限) を設定できます。この制限をリソース制御といいます。制御の例には、公平配分スケジューラ (FSS) を使用する場合などの最小 CPU 制限の設定があります。また、rcapd デーモンを使用する場合などの物理メモリーキャップの設定もあります。最小 CPU 保証を設定すると、1 つのプロジェクトのアイドル状態の CPU サイクルを、ほかのプロジェクトのアプリケーションが使用できます。