Solaris Container Manager 3.6.1 インストールと管理

第 4 章 プロジェクトの管理

この章では、プロジェクトを作成、使用、および管理する手順を示します。

この章では、以下の内容について説明します。


注 –

プロジェクトを管理 (作成、有効化、無効化、変更、削除) するには、プロジェクト管理者権限が必要です。プロジェクト管理者は、Solaris Container Manager ソフトウェアを設定する際に指定します。


プロジェクトの作成

ソフトウェアのインストールと設定後に作成されるデフォルトコンテナに加えて、カスタムプロジェクトを作成できます。両方のタイプのコンテナを組み合わせて使用すると、サーバー統合計画の実行に役立ちます。

カスタムプロジェクトを作成するには、新規プロジェクトウィザードを使用します。コンテナだけを作成し、コンテナ表示ウィンドウに保存できます。また、ウィザードの手順をすべて完了してプロジェクトを作成することもできます。どちらの場合も同じウィザードを使用します。

コンテナだけを作成した場合、名前がコンテナ表示に保存されます。あとでコンテナを使用して 1 つまたは複数のプロジェクトを作成できます。詳細は、「プロジェクトの有効化と無効化」を参照してください。

プロジェクトを作成する場合も、その一環としてコンテナを作成します。プロジェクトの作成が完了したら、コンテナがコンテナ表示のナビゲーションウィンドウに保存されます。この同じ定義を使用して、複数のホストに関連付けられている追加プロジェクトを作成できます。これらのプロジェクトの定義は、名前とプロジェクトの種類を含めて、各ホストで同じです。プロジェクトのリソース予約はホストごとに変えるか、すべて同じにできます。状況に応じてリソースのニーズを満たせるように、このように柔軟な設定が可能になっています。詳細は、「コンテナのプロパティ」を参照してください。

新規プロジェクトウィザードに従って、プロジェクトを作成できます。ウィザードに従ってプロジェクトを作成するには、次の情報が必要です。

このウィザードは、GUI の 3 つの異なる場所で「新規プロジェクト」ボタンをクリックして起動できます。GUI のどこからウィザードを起動するかによって、上記の情報をすべて指定する必要がない場合があります。この場合、一部の情報は自動的に入力されます。

Procedure新規プロジェクトウィザードを起動する

新規プロジェクトウィザードは、GUI の 3 つの場所から起動できます。ウィザードを起動した場所によっては、一部の情報が自動的に入力されるので、すべてのパネルに入力する必要がない場合があります。

新規プロジェクトウィザードの例については、「アプリケーションベースのプロジェクトの作成」を参照してください。

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. ナビゲーションウィンドウで、作成するコンテナの関係を指定します。

    • 特定のホストを自動的にコンテナに関連付けるには、次の操作を行います。

      1. ホスト表示のナビゲーションウィンドウでホスト名を選択します。

        必要な場合は、ホストグループ名をクリックしてリストを展開します。

      2. 右側の区画で「プロジェクト」タブを選択します。

        「プロジェクト」表が表示されます。

      この方法では、コンテナの作成処理中にホストを選択する必要があります。

      ホスト表示の「新規プロジェクト」ボタンを示すスクリーンキャプチャ。周りのテキストがコンテキストを表します。
    • プロジェクトを特定のリソースプールに自動的にバインドするには、次の操作を行います。

      1. ホスト表示のナビゲーションウィンドウでリソースプール名を選択します。

        必要な場合は、ホスト名の横のボタンをクリックしてリストを展開します。ホストに割り当てられているリソースプールが表示されます。

      2. 右側の区画で「プロジェクト」タブを選択します。

        「プロジェクト」表が表示されます。

      コンテナの作成処理中にリソースプールを割り当てる必要はありません。

    「ホスト」ビュー (リソースプール) の「新規プロジェクト」ボタンを示すスクリーンキャプチャ。周りのテキストがコンテキストを表します。
  3. ホストプロジェクトまたはホストリソースプールの表で「新規プロジェクト」ボタンをクリックします。


    注 –

    どちらの方法でも、右側の区画に表示される表に「新規プロジェクト」ボタンがあります。


    新規プロジェクトウィザードが表示されます。最初に「概要」パネルが表示されます。

    新規プロジェクトウィザードの「概要」パネルのスクリーンキャプチャ。周りのテキストがコンテキストを表します。

ユーザーベースまたはグループベースのプロジェクトの作成


注 –

Solaris 8 では、ユーザーベースのコンテナだけを使用できます。


コンテナで、UNIX ユーザー名または UNIX グループ名で識別されるプロセスを管理するには、ユーザーベースまたはグループベースのコンテナを作成します。作成処理中に選択するプロジェクトの種類によって、完成したコンテナがユーザーベースであるか、グループベースであるかが決まります。

Procedureユーザーベースまたはグループベースのプロジェクトを作成する

手順
  1. 「新規プロジェクトウィザードを起動する」に従って新規プロジェクトウィザードを起動します。

    「概要」パネルが表示されます。

  2. プロジェクトの種類として「ユーザー」または「グループ」を選択します。

    プロジェクトの種類が「ユーザー」のコンテナでは、同じ UNIX ユーザー名のプロセスが追跡されます。

    プロジェクトの種類が「グループ」のコンテナでは、同じ UNIX グループ名のプロセスが追跡されます。


    注 –

    Solaris 8 OS では、ユーザーベースのコンテナだけを使用できます。


  3. 次の要件を満たすプロジェクトの種類の識別子を指定します。

    (Solaris 8)

    • ユーザーベースのプロジェクト - 最初のフィールドに有効な UNIX ユーザー名を入力します。プロジェクトに参加できるユーザーの UNIX ユーザー名を 2 番目のフィールドに追加できます。プロジェクトに参加できるグループの UNIX グループ名を 3 番目のフィールドに追加できます。複数の名前を入力する場合は、コンマで区切ります。

      別のユーザーベースのプロジェクトまたはデフォルトプロジェクトで使用されているユーザー名を最初のフィールドに入力しないでください。

    • グループベースのプロジェクト - 最初のフィールドに有効な UNIX グループ名を入力します。あとでプロジェクトに加わることができるグループの UNIX グループ名を 2 番目のフィールドに追加できます。あとでプロジェクトに加わることができるユーザーの UNIX ユーザー名を 3 番目のフィールドに追加できます。複数の名前を入力する場合は、コンマで区切ります。

      別のグループベースのプロジェクトまたはデフォルトプロジェクトで使用されているグループ名を最初のフィールドに入力しないでください。


    注 –

    Solaris 9 と Solaris 10 では、有効なユーザー名とグループ名は必須ではありません。ただし、追加のユーザー名とグループ名がシステムに存在する必要があります。


    このプロジェクトの種類については、表 3–2 を参照してください。

  4. ホスト名だけを選択して、プールを選択せずに新規プロジェクトウィザードを起動した場合は、プロジェクトのリソース要件を満たすリソースプールを割り当てます。

    プロジェクト内で開始された新規プロセスは、対応するリソースプールにバインドされます。プロジェクトが有効になったら、プロジェクトで保持されている新規プロセスがそのリソースプールにバインドされます。

    • 新規リソースプールを割り当てるには、次の操作を行います。

      1. 「新規リソースプールを作成」を選択します。

      2. リソースプールの名前を指定します。

        名前には英数字を使用し、空白文字を含めることはできません。ハイフン (-)、下線 (_)、およびピリオド (.) の各文字は使用できます。

      3. CPU 数を割り当てます。

        CPU 数は、ホスト上で使用可能な CPU 数以下、1 以上の整数である必要があります。ホスト上の CPU の総数と、現在、使用可能な数が表示されます。

    • 既存のプールを割り当てるには、次の操作を行います。

      1. 「既存のリソースプールを使用」を選択します。

        使用可能なリソースプールのリストが表示されます。

      2. リスト内のプール名の横のラジオボタンを選択します。

        各リソースプールに割り当てられている CPU の総数と、各プール内で予約されていない CPU 数が表示されます。コンテナが、選択したリソースプールに割り当てられます。

  5. (Solaris 10 のみ) 既存のゾーンを選択します。

    使用可能なゾーンのボタンをクリックし、プロジェクトをゾーンに関連付けます。

  6. プロジェクトのリソース予約を指定します。

    ホストの最大 CPU 数、予約されていない CPU シェア数、および使用可能なメモリーリソースを指定します。

    CPU 予約数は必須であり、整数で指定する必要があります。CPU 予約数がゼロのコンテナは、同じホストに関連付けられているほかのコンテナ内で実行中のプロセスがない場合にのみ CPU リソースを使用できます。

    メモリーキャップは省略可能で、M バイト単位で指定します。

    共有メモリーの値は、このプロジェクト内で実行されるプロセスで使用できる共有メモリーの総容量です。共有メモリーも省略可能です。共有メモリーのデフォルト値は、物理メモリーの 4 分の 1 です。

  7. コンテナの名前を指定します。

    名前は、一意であり、32 文字以内である必要があります。ナビゲーションウィンドウ、各一覧表、およびリソース使用状況レポートでこの名前でコンテナが識別されます。重複する名前を入力すると、コンテナの作成に失敗します。

    作成処理の完了後は、コンテナ名を変更できません。

  8. (省略可能) コンテナの説明を入力します。

  9. 「概要」パネルで設定を確認します。

    プロジェクトの概要画面
  10. 「完了 (Finish)」をクリックする。

    設定が保存され、プロジェクトが有効になります。Solaris カーネルがコンテナのリソース予約を開始します。

アプリケーションベースのプロジェクトの作成


注 –

Solaris 8 OS では、ユーザーベースのコンテナだけを使用できます。


アプリケーションベースのプロジェクトを使用して、特定のソフトウェアアプリケーションで実行されるプロセスを管理します。プロセスが自動的に移動するか、プロセスを手動で移動できるアプリケーションベースのプロジェクトを作成できます。

アプリケーションに固有の一致式を指定できる場合は、この式をプロジェクトに追加できます。この場合、プロセスの実行に使用される UNIX ユーザー ID または UNIX グループ ID も指定する必要があります。あとでプロジェクトに加わることができるユーザーまたはグループも追加できます。プロジェクトにプロセスを自動的に移動するには、ウィザードの対応するパネルが表示されたときに、必要なプロジェクト識別子をすべて指定する必要があります。識別子を指定すると、この定義に基づくすべてのプロジェクトで、一致するプロセスがすべて自動的に移動します。

アプリケーションに固有の識別子が作成されない場合は、プロセスを手動で移動するか、プロジェクト内でアプリケーションを起動できます。プロセスを手動で移動する場合は、プロセスの実行に使用される UNIX ユーザー ID または UNIX グループ ID だけでプロジェクトを作成します。あとでプロジェクトに加わることができるユーザーまたはグループも追加できます。そのあと、newtask -p コマンドでプロセスを移動します。詳細は、「プロジェクト内でのプロセスの移動または起動」を参照してください。

Procedureアプリケーションの一致式を決定する

管理するアプリケーションに対応するプロセスを識別する適切な一致式を決定するには、次の手順に従います。プロセスをコンテナに自動的に移動するには、新規コンテナウィザードでこの式を指定する必要があります。

手順
  1. 端末ウィンドウから、アプリケーションベースのコンテナで管理するアプリケーションを起動します。

  2. 実行中のすべてのプロセスの一覧を表示するには、端末ウィンドウで次のように入力します。


    % ps -cafe
    
  3. CMD 列で対応する実行可能ファイルの名前を探します。

    アプリケーションのプロセスを一意に識別する式を選択します。


例 4–1 Mozilla の一致式の決定

Mozilla を探すために入力した ps - cafe コマンドの出力例を次に示します。


% ps -cafe
     UID   PID  PPID  CLS PRI    STIME TTY      TIME CMD
    ...
username  8044  7435   IA  50 19:47:09 pts/11   0:00 /bin/ksh -p /usr/sfw/lib/mozilla/mozilla

この例では、固有の実行可能ファイルの名前は mozilla です。したがって、適切な一致式は mozilla になります。



例 4–2 Tomcat サーバーの一致式の決定

アプリケーションの名前がわかっている場合は、ps -cafe コマンドと grep コマンドを組み合わせて使用して適切な一致式を確認できます。Tomcat サーバーを探すために入力した ps - cafe | grep tomcat コマンドの出力例を次に示します。この例では、関係のない情報を省いています。


% ps -cafe | grep tomcat
  nobody 27307  /usr/j2se/bin/java -classpath //usr/apache/tomcat/bin/bootstrap.jar:/usr/j2se/l
 

この例では、実行可能ファイルの名前は java です。ただし、適切な一致式は tomcat です。この場合、一致式は、実行可能ファイルの名前ではなく、引数です。なぜなら、java では、Tomcat のプロセスを一意に識別できないからです。



例 4–3 Tomcat サーバーの一致式の確認

次の例では、pgrep コマンドを使用して PID を検索する方法を示します。PID は、必要なプロセスを検索するための固有の一致式を指定したことを示します。


% pgrep -f tomcat
27307

Tomcat サーバーの PID は 27307 です。この数値は、例 4–2 の PID と一致します。したがって、一致式 tomcat が Tomcat サーバーのプロセスと一致することが確認できます。


Procedureアプリケーションベースのプロジェクトを作成する

手順
  1. 「新規プロジェクトウィザードを起動する」に従って新規プロジェクトウィザードを起動します。

    「概要」パネルが表示されます。

  2. コンテナのプロジェクトの種類として「アプリケーション」を選択します。

    アプリケーションベースのプロジェクトコンテナでは、アプリケーションに関連付けられているプロセスが追跡されます。このプロジェクトの種類については、表 3–2 を参照してください。

  3. プロジェクトの名前を指定します。

    名前は、一意であり、32 文字以内である必要があります。ナビゲーションウィンドウ、各一覧表、およびリソース使用状況レポートでこの名前でプロジェクトが識別されます。重複する名前を入力すると、プロジェクトの作成に失敗します。

    作成処理の完了後は、コンテナ名を変更できません。

  4. アプリケーションのプロセスの実行に使用される UNIX ユーザー名または UNIX グループ名を指定します。

    この UNIX ユーザー名または UNIX グループ名は必須です。名前を指定しなかった場合、名前を指定するまで、対応するプロセスがコンテナ下に移動しません。複数の名前を入力する場合は、コンマで区切ります。

  5. コンテナが有効になったときにアプリケーションのプロセスをプロジェクト下に自動的に移動するか、コマンド行から手動で移動するかを指定します。

    • アプリケーションのプロセスをコマンド行から手動で移動するには、「一致式を使用しない」チェックボックスを選択します。

    • プロジェクトが有効になったときにアプリケーションのプロセスをプロジェクト下に自動的に移動するには、「一致式」フィールドに式を指定します。

      「一致式」フィールドでは、アプリケーションに関連付けられているプロセスを識別するワイルドカードを使用できます。たとえば、Mozilla に関連するプロセスは moz、Tomcat に関連するプロセスは cat と指定できます。

      新規プロジェクトウィザードでのプロジェクトアプリケーションプロセス識別子

      アプリケーションのプロセスを自動的にコンテナに移動するには、一致式を指定する必要があります。一致式では、大小文字が区別されます。適切な一致式を決定するには、「アプリケーションの一致式を決定する」を参照してください。

      この時点で一致式を指定しなかった場合、式を指定するまで、アプリケーションのプロセスはこのコンテナ下に移動しません。

  6. ホスト名から、プールを選択せずに新規プロジェクトウィザードを起動した場合は、プロジェクトのリソース要件を満たすリソースプールを割り当てます。

    プロジェクト内で開始された新規プロセスは、対応するリソースプールにバインドされます。プロジェクトが有効になったら、コンテナで保持されている新規プロセスがそのリソースプールにバインドされます。

    • 新規リソースプールを割り当てるには、次の操作を行います。

      1. 「新規リソースプールを作成」を選択します。

      2. リソースプールの名前を指定します。

        名前には英数字を使用し、空白文字を含めることはできません。ハイフン (-)、下線 (_)、およびピリオド (.) の各文字は使用できます。

      3. CPU 数を割り当てます。

        CPU 数は、ホスト上で使用可能な CPU 数以下、1 以上の整数である必要があります。ホスト上の CPU の総数と、現在、使用可能な数が表示されます。

    • 既存のプールを割り当てるには、次の操作を行います。

      1. 「既存のリソースプールを使用」を選択します。

        使用可能なリソースプールのリストが表示されます。

      2. リスト内のプール名の横のラジオボタンを選択します。

        各リソースプールに割り当てられている CPU の総数と、各プール内で予約されていない CPU 数が表示されます。プロジェクトが、選択したリソースプールにバインドされます。

  7. (Solaris 10 のみ) 既存のゾーンを選択します。

    使用可能なゾーンのボタンをクリックします。

  8. プロジェクトのリソース予約を指定します。

    ホストの最大 CPU 数、予約されていない CPU シェア数、および使用可能なメモリーリソースを指定します。

    CPU 予約数 (CPU シェア数) は必須で、整数で指定する必要があります。CPU 予約数がゼロのプロジェクトは、同じホストに関連付けられているほかのコンテナ内で実行中のプロセスがない場合にのみ CPU リソースを使用できます。

    メモリーキャップは省略可能で、M バイト単位で指定します。

    共有メモリーの値は、このプロジェクト内で実行されるプロセスで使用できる共有メモリーの総容量です。共有メモリーも省略可能です。共有メモリーのデフォルト値は、物理メモリーの 4 分の 1 です。

  9. コンテナの名前を指定します。

    名前は、一意であり、32 文字以内である必要があります。ナビゲーションウィンドウ、各一覧表、およびリソース使用状況レポートでこの名前でコンテナが識別されます。重複する名前を入力すると、コンテナの作成に失敗します。作成処理の完了後は、コンテナ名を変更できません。

  10. (省略可能) コンテナの説明を入力します。

  11. 「概要」パネルで設定を確認します。

    アプリケーションプロジェクトの概要画面
  12. 「完了」をクリックします。

    設定が保存され、コンテナが有効になります。Solaris カーネルがコンテナのリソース予約を開始します。

プロジェクト内でのプロセスの移動または起動

プロジェクトで管理するアプリケーションに一意の実行可能ファイル名がない場合は、プロセスを手動でプロジェクトに移動できます。この方法によって、必要なアプリケーションのプロセスだけを追跡できます。

Procedureプロセスをアプリケーションベースのプロジェクトに個別に移動する

この手順は、アプリケーションベースのプロジェクトに一致式を指定せず、アプリケーションのプロセスを個別にプロジェクトに移動する場合に使用します。

手順
  1. アプリケーションを管理するアプリケーションベースのプロジェクトを作成します。「一致式を使用しない」チェックボックスを選択します。

    詳しい手順については、「アプリケーションベースのプロジェクトを作成する」を参照してください。

  2. 次のように入力して、/etc/project ファイルでプロジェクト名を確認します。


    % cat /etc/project
    

    このプロジェクト名は手順 5 で必要です。

  3. 必要な場合は、端末ウィンドウでアプリケーションを起動します。

  4. アプリケーションに対応するプロセスを確認します。

    例については、例 4–1例 4–2、および例 4–3 を参照してください。

  5. 対応するプロセスを移動します。

    1. Container Manager の GUI で、ナビゲーションウィンドウでホストをクリックします。

    2. 「プロジェクト」タブをクリックします。

      「プロジェクト」表が表示されます。

    3. 「プロジェクト」表でプロジェクト名をクリックします。プロジェクト名には、リンクであることを示す下線が表示されます。

      「プロパティ」タブが表示されます。

    4. 「プロセス」タブをクリックします。

      「プロセス」表が表示されます。

    5. 移動するプロセスを選択します。

    6. 「移動」ボタンをクリックします。

      「プロセスを移動」ダイアログが表示されます。

    7. プロジェクト (コンテナ) のリストから、プロセスを移動する新規プロジェクト (コンテナ) を選択します。

    8. OK をクリックします。

  6. プロセスをすべて移動するまで手順 5 を繰り返します。


例 4–4 ps を使用したプロセスのプロジェクトへの移動の確認

ps コマンドと grep コマンドを組み合わせて使用して、プロセスがコンテナに移動したことを確認できます。次の例は、個別に移動したプロセスが「payroll」というコンテナにあることを示します。


% ps -ae -o pid,project,comm | grep payroll
17773    payroll ora_reco_AcctEZ 
17763    payroll ora_pmon_AcctEZ 
17767    payroll ora_lgwr_AcctEZ 


例 4–5 prstat を使用したプロセスのプロジェクトへの移動の確認

プロジェクト名がわかる場合は、prstat コマンドを使用してプロセスがコンテナに移動したことを確認できます。この例では、プロジェクト名は「payroll」です。


% prstat -J payroll
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
 17773 admin     216M  215M cpu2     1    0   0:05:08  29% ora_reco_AcctEZ/1
 17763 admin     834M  782M sleep    1    0   0:35:02   0% ora_pmon_AcctEZ/1
 17767 admin     364M  352M run      1    0   0:22:05  23% ora_lgwr_AcctEZ/1							

Procedureプロジェクト内でアプリケーションを起動する

手順
  1. アプリケーションを管理するアプリケーションベースのプロジェクトを作成します。「一致式を使用しない」チェックボックスを選択します。

    詳しい手順については、「アプリケーションベースのプロジェクトを作成する」を参照してください。

  2. OS のバージョンによって、次のいずれかの操作を行います。

    • Solaris 8 OS の場合、次のように入力します。


      % srmuser user_name newtask -p project_name application_name
      

      user_name は UNIX ユーザー名、project_name は user.username の書式で指定します。Solaris 8 OS では、ユーザーベースのコンテナだけを使用できるので、user_nameproject_name は同じです。

    • Solaris 9 または Solaris 10 OS の場合、次のように入力します。


      % newtask -p project_name application_name
      

      project_name は、コンテナに関連付けられているプロジェクト、application_name は、アプリケーションを起動するコマンドです。コマンドには、コマンド引数も含めます。

    アプリケーションがコンテナ内で起動します。


例 4–6 Solaris 9 または Solaris 10 OS でのコンテナ内でのアプリケーションの起動

music というコンテナ内で tracks というアプリケーションを起動する例を次に示します。


% newtask -p music tracks -z 0 mozart.au

-z 0 mozart.au は、アプリケーション tracks のコマンド行引数です。



例 4–7 アプリケーションとプロジェクトの関連付けの確認

アプリケーションが起動したら、次のように入力して、アプリケーションが関連付けられているプロジェクトを確認できます。


% ps -ae -o pid,project,comm

このコマンドの出力例を次に示します。


  PID  PROJECT COMMAND
...
17771   default ora_smon_SunMC
16246   system rquotad
26760   group.staff /bin/csh
16266   music	 tracks
17777   default ora_d000_SunMC
17775   default ora_s000_SunMC
17769   default ora_ckpt_SunMC

この例では、アプリケーション tracks の PID は 16266、プロジェクトは music、実行可能ファイルは tracks です。これは、例 4–6 で起動したアプリケーションと同じです。


プロジェクトの有効化と無効化

プロジェクトが定義済みまたは無効な状態のときは、プロジェクトのリソース境界は適用されません。リソース境界を適用するには、プロジェクトを有効にする必要があります。また、この制限を適用しない場合は、プロジェクトを無効にする必要があります。有効なプロジェクトを無効にしても、設定したリソース境界は失われません。詳細は、「プロジェクトの状態」を参照してください。

ホストに関連付けウィザードで、既存のコンテナを使用して有効なプロジェクトを新規に作成できます。無効なプロジェクトを有効にするか、有効なプロジェクトを無効にするには、ボタンを使用します。

Procedureプロジェクトを有効にする

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. コンテナ表示で、コンテナの名前を選択します。

    コンテナがグループに含まれる場合は、ナビゲーションウィンドウでそのグループを選択して右側の区画にコンテナを表示します。

  3. 右側の区画で「ホスト」タブを選択します。

    「このコンテナに関連付けられたホスト」表が表示されます。選択したコンテナに現在関連付けられているすべてのホストが表に表示されます。

  4. 「ホストに関連付け」ボタンをクリックします。

    ホストに関連付けウィザードが表示されます。

    ホストに関連付けウィザードの画面
  5. ウィザードの指示に従い、ホスト名を入力するか、該当するホストを検索します。

Procedure無効なプロジェクトを有効にする

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. ホスト表示で、コンテナが関連付けられているホストを選択します。

  3. 右側のパネルで「プロジェクト」を選択します。

    このホストに関連付けられているすべてのプロジェクトを示す表が表示されます。

  4. 「有効にする」ボタンを使用可能にするには、有効にするプロジェクトのチェックボックスを選択します。

  5. (省略可能) プロジェクトのプロパティを表示し、変更します。

    1. 表の「プロジェクト名」列でプロジェクト名をクリックします。

      「プロパティ」タブが表示されます。

    2. (省略可能) プロジェクトのリソース予約を変更し、「保存」をクリックします。

    詳細は、「コンテナおよびプロジェクトの変更」を参照してください。

  6. 「有効にする」ボタンをクリックします。

    プロジェクトが有効になり、カーネルによってリソース境界が適用されます。

Procedure有効なプロジェクトを無効にする

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. ホスト表示で、プロジェクトが関連付けられているホストを選択します。

  3. 右側のパネルで「プロジェクト」を選択します。

    このホストに関連付けられているすべてのプロジェクトを示す表が表示されます。

  4. 「無効にする」ボタンを使用可能にするには、無効にするプロジェクトのチェックボックスを選択します。

  5. (省略可能) プロジェクトのプロパティを表示し、変更します。

    1. 表の「プロジェクト名」列でプロジェクト名をクリックします。

      「プロパティ」タブが表示されます。

    2. (省略可能) プロジェクトのリソース予約を変更し、「保存」をクリックします。

    詳細は、「コンテナおよびプロジェクトの変更」を参照してください。

  6. 「無効にする」ボタンをクリックします。

    プロジェクトが無効になり、カーネルによってリソース境界が適用されなくなります。

プロジェクトのプロセスの表示

有効なプロジェクト内で実行中のプロセスに関する情報は、ホスト表示またはコンテナ表示の表で確認できます。どちらのビューでも、同じ「プロセス」表と、同じ情報が表示されます。

有効なプロジェクトの「プロセス」表の画面

プロセスは、1 行に 1 つずつ表示され、次の情報が表示されます。

PID

プロセス ID

ユーザー名

プロセスの所有者 (UNIX ユーザー名またはログイン名)

サイズ

プロセスの仮想メモリーサイズ (M バイト単位)

RSS

プロセスの常駐セットのサイズ (M バイト単位)

状態

プロセスの状態です。次の値があります。

  • cpuN – プロセスは CPU N で実行されています。N は整数です。

  • sleep – プロセスはスリープまたは待機しています。

  • run – プロセスは実行中です。

  • zombie – プロセスは終了しています。

  • stop – プロセスは停止しています。

PRI

プロセスの優先順位。数値が大きいほど、プロセスの優先順位が高くなります。

NICE

優先順位の計算に使用される nice 値

時間

プロセスの累積実行時間

CPU

現在のプロセスで使用されている時間の割合

プロセス/NLWP

プロセスの名前、つまり実行されているファイルの名前。プロセス内の軽量プロセス (LWPS) 数。

Procedureプロジェクト内で実行中のプロセスを「ホスト」表示で表示する

プロジェクトが関連付けられているホストの名前がわかる場合は、この手順に従います。

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. ナビゲーションウィンドウで左側のタブをクリックしてホスト表示を選択します。

  3. ナビゲーションウィンドウで、プロジェクトが関連付けられているホストを選択します。

  4. 右側の区画で「プロジェクト」タブを選択します。

    「プロジェクト」表が表示され、ホストに関連付けられているプロジェクトがすべて表示されます。表には有効なプロジェクトと無効なプロジェクトが含まれます。プロセスの情報を表示するには、有効なプロジェクトを選択します。

  5. プロジェクト名をクリックしてプロジェクトを選択します。

    選択したホストのプロジェクトインスタンスのプロパティページが表示されます。

  6. 「プロセス」タブを選択します。

    プロジェクト内で実行中のプロセスが「プロセス」表に表示されます。プロジェクトの名前と、そのプロジェクトが関連付けられているホストが、表の上に表示されます。

    プロセスが表示されない場合は、無効なコンテナが選択されている可能性があります。

Procedureプロジェクト内で実行中のプロセスを「コンテナ」表示で表示する

プロジェクトの名前がわかっていて、プロジェクトが関連付けられているホストのリストから選択する場合は、この手順に従います。

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. ナビゲーションウィンドウで右側のタブをクリックしてコンテナ表示を選択します。

  3. ナビゲーションウィンドウで、表示するコンテナを選択します。

    必要な場合は、三角形の展開ボタンをクリックしてコンテナを展開します。プロジェクト名が表示されたら、表示するプロジェクトの名前をクリックします。

    コンテナが関連付けられているホストをすべて含む表が右側の区画に表示されます。

  4. 表でプロジェクト名をクリックします。

    選択したホスト上のコンテナインスタンスのプロパティページが表示されます。

  5. 「プロセス」タブを選択します。

    プロジェクトの名前と、そのプロジェクトが関連付けられているホストが、表のタイトルに表示されます。プロジェクト内で実行中のプロセスが「プロセス」表に表示されます。

    表にプロセスが表示されない場合は、無効なプロジェクトが選択されている可能性があります。

コンテナおよびプロジェクトの変更

コンテナ、あるいは有効か無効なプロジェクトは、2 つのプロパティシートで変更できます。各プロパティシートの違いを次の表に示します。

表 4–1 プロパティシートの詳細

プロパティシート 

用途 

タブ(B) 

コンテナ  

説明、プロジェクトの種類、プロジェクトの識別子 (ユーザー、グループ)、一致式の変更 

コンテナ表示でコンテナを選択後の「プロパティ」タブ 

プロジェクトインスタンス (有効または無効なプロジェクト) 

リソースプールの関連付け、CPU 予約数、メモリーキャップの変更 

ホスト表示またはコンテナ表示の「プロパティ」タブ 

プロジェクトインスタンスには、それぞれ関連付けられているコンテナがあります。コンテナに対する変更は、その定義を使用するすべてのプロジェクトインスタンスに適用されます。たとえば、コンテナでプロジェクトの種類を変更すると、同じコンテナを使用するすべてのプロジェクトインスタンスのプロジェクトの種類が変更されます。したがって、両方のプロパティシートを使用してすべての変更を行うことができます。

各プロジェクトインスタンスには、固有のリソースプールの関連付けまたはリソース予約だけを変更するためのプロパティシートもあります。このプロパティシートを使用するときは、一度に 1 プロジェクトずつ変更できます。たとえば、現在の最小 CPU 予約数または現在のメモリーキャップを増加できます。変更内容は、値を保存すると有効になります。無効なプロジェクトのリソース境界への変更は、プロジェクトを有効にするまで有効になりません。

sales01 プロジェクトインスタンスのプロパティシートの例を次に示します。

図 4–1 例: リソース予約とリソースプールを変更するプロパティシート

プロジェクトのプロパティシートの画面

複数のホストで有効な複数のプロジェクトのリソースを変更するには、リソース変更ジョブ機能を使用します。詳細は、「リソース変更ジョブによるプロジェクトの変更」を参照してください。

コンテナ表示から、コンテナを変更できる別のプロパティシートを使用できます。一度に 1 コンテナ ずつを変更できます。リソース変更ジョブ機能を使用して複数のコンテナを変更することはできません。

sales01 プロジェクトインスタンスのプロパティシートの例を次に示します。

図 4–2 例: コンテナを変更するプロパティシート

コンテナを変更するプロパティシートの画面

デフォルトプロジェクトのプロパティは変更できません。したがって、デフォルトプロジェクトを選択した場合は、どちらのプロパティシートも使用できません。


注 –

コンテナまたは無効なプロジェクトのプロパティだけを変更できます。プロパティを変更するには、その前にプロジェクトが関連付けられているすべてのホストで有効なプロジェクトを無効にする必要があります。変更内容を保存したら、プロジェクトを有効にできます。


Procedureプロパティシートを使用してコンテナを変更する

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. コンテナ表示を選択します。

  3. コンテナを選択します。

    • コンテナが有効なプロジェクトに使用されていない場合は、ナビゲーションウィンドウで「コンテナ」グループを選択します。右側の区画に「コンテナとグループ」表が表示されます。表でプロジェクトを選択します。

    • コンテナが有効なプロジェクトに使用されている場合は、ナビゲーションウィンドウでコンテナを選択します。必要な場合は、別のコンテナグループをクリックして、個々のコンテナのリストを展開します。「このコンテナに関連付けられたホスト」表が表示され、プロジェクトインスタンスを無効にできます。


      注 –

      プロパティを変更するには、このコンテナを使用するすべてのプロジェクトインスタンスを無効にする必要があります。インスタンスの状態が「有効」の場合は、「このコンテナに関連付けられたホスト」表ですべてのホストを選択し、「無効にする」ボタンを使用してから操作を続けます。


  4. 右側の区画で「プロパティ」タブを選択します。

    選択したコンテナのプロパティシートが表示されます。次のフィールドを変更できます。

    • 説明 – コンテナの説明を入力します。

    • プロジェクトの種類 – ユーザー、グループ、またはアプリケーションを指定します。

    • UNIX ユーザー名 – 現在の UNIX ユーザー名を変更します。

    • 追加のユーザー – 既存のユーザー名を変更するか、有効な UNIX ユーザー名を追加します。複数の名前を入力する場合は、コンマで区切ります。

    • 追加のグループ – 既存のグループ名を変更するか、有効な UNIX グループ名を追加します。複数の名前を入力する場合は、コンマで区切ります。


    注 –

    「保存」ボタンを使用できず、テキストフィールドがグレー表示される場合は、コンテナが 1 つまたは複数のコンテナインスタンスで使用されています。「このコンテナに関連付けられたホスト」表に表示されているすべてのホストの状態が「無効」であることを確認します。状態が「有効」のホストがある場合は、無効にする必要があります。


  5. 「保存」をクリックして変更を保存します。

    プロパティシートは表示されたままです。

Procedureプロパティシートを使用してプロジェクトを変更する

1 つのプロジェクトのリソースプールまたはリソース予約を変更するには、次の手順に従います。複数のプロジェクトに同じ変更を行うには、「リソース変更ジョブによるプロジェクトの変更」を参照してください。

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. 次のいずれかの方法でプロジェクトインスタンスを選択します。

    • プロジェクトが関連付けられているホストの名前がわかっている場合は、ホスト表示のナビゲーションウィンドウでホスト名を選択します。次に右側の区画で「プロジェクト」タブを選択し、ホストに関連付けられているすべてのプロジェクトを含む表を表示します。

    • プロジェクトの名前がわかっている場合は、コンテナ表示のナビゲーションウィンドウでその名前を選択します。右側の区画に「このコンテナに関連付けられたホスト」表が表示されます。


    注 –

    プロパティを変更するには、すべてのプロジェクトを無効にする必要があります。状態が「有効」のプロジェクトがある場合は、表の「無効にする」ボタンを使用してから操作を続けます。このボタンは、どちらの表示の表にもあります。


  3. 表でプロジェクトまたはホスト (前の手順によって異なります) の名前を選択します。

    プロジェクトインスタンスのプロパティシートが表示されます。

  4. 変更を行います。


    注 –

    Solaris 10 では、プロジェクトのリソースプールは変更できません。


    • リソースプール定義 – プロジェクトが関連付けられているプールを変更するには、ドロップダウンメニューから選択します。

    • CPU 予約数 (CPU シェア数) – テキストボックスに新しい値を整数で入力します。

    • メモリーキャップ (M バイト) – テキストボックスに新しい値を入力します。

    • 共有メモリー (M バイト) – テキストボックスに新しい値を入力します。

  5. 「保存」をクリックします。

    リソース予約の変更内容が保存されます。

  6. (省略可能) プロジェクトを再度有効にするには、手順 3 で使用した表に戻り、「有効にする」をクリックします。

リソース変更ジョブによるプロジェクトの変更

リソース変更ジョブ機能を使用して、複数のホストに分散されている複数のプロジェクトのリソース制限を変更できます。これらのプロジェクトは、同じコンテナを使用している必要があります。リソース変更ジョブをすぐに実行して変更を同時に実装するか、あとで実行するようにスケジュールを設定できます。


注 –

Solaris 10 では、コンテナが大域ゾーンに配備されている場合にのみ、リソース変更ジョブ機能によってリソース割り当てが変更されます。



注 –

CPU 予約数 (CPU シェア数) はすぐに変更されます。メモリーキャップの変更は、スワップに書き込む必要があります。メモリーキャップの変更が大きいと、その調整中にシステムパフォーマンスに影響します。


リソース変更ジョブ表には、次の情報が表示されます。

リソース変更ジョブ名

ジョブ作成時に指定されたジョブ名

ホスト

コンテナが関連付けられているホストの名前

スケジュール

ジョブの実行が予定されている間隔。1 回だけ、毎時、毎日、毎週、毎月のいずれかです。

State

ジョブの状態。値は、待ち状態、成功、失敗のいずれかです。

次の例では、「Webserver」と「Rollup」という名前のプロジェクトを使用して、リソース変更ジョブ機能を使用して組織全体のシステムリソースを管理する方法を示します。この例では、オンラインストアで Web サイトからの注文を処理します。Webserver プロジェクトは、北米中の Web サーバーで使用されている CPU とメモリーリソースを管理するために作成されました。Rollup プロジェクトは、データベースに必要なリソースを管理するために作成されました。日中と夕方には、ユーザーが Web サイトで注文を行うので、Web サーバーのリソースの需要が高くなります。深夜 0 時を過ぎると、Web サーバーの需要が大幅に下がります。夜の間に、日中の売上に関するレポートを実行するようにデータベースのスケジュールが設定されています。

CPU 8 個、物理メモリーが 6000M バイトのシステムでこの 2 つのコンテナに必要なリソースを管理するには、次の表に示す合計 4 つのリソース変更ジョブを作成できます。

表 4–2 リソース変更ジョブのスケジュールの例

コンテナ名 

リソース変更ジョブ名 

開始時刻 

間隔(I) 

リソース変更 

Webserver 

webserver-day 

午前 6 時 

日ごと 

CPU シェア数: 6 

メモリー: 2500M バイト 

Rollup 

rollup-day 

午前 6 時 

日ごと 

CPU シェア数: 1 

メモリー: 2000M バイト 

Webserver 

webserver-night 

深夜 0 時 

日ごと 

CPU シェア数: 1 

メモリー: 2000M バイト 

Rollup 

webserver-night 

深夜 0 時 

日ごと 

CPU シェア数: 6 

メモリー: 2500M バイト 

2 つのリソース変更ジョブが毎朝 6 時に実行され、Webserver と Rollup の各プロジェクトのリソースが変更されます。日中は、Web サーバーの需要が高いため、Webserver プロジェクトに CPU と物理メモリーリソースの大半が割り当てられています。毎日、深夜 0 時にほかの 2 つのリソース変更ジョブが実行され、需要の変化に応じてシステムのリソースが再割り当てされます。その日の売上を記録するためにデータベースにリソースが必要になり、Web サーバーの需要は低くなっているので必要なリソースは少なくなります。

この機能は、Sun Management Center のジョブ管理機能に似ていますが、Container Manager の GUI を使用した場合は Container Manager のジョブをすべて管理できます。Sun Management Center のジョブ機能の詳細は、『Sun Management Center 3.6.1 ユーザーガイド』「ジョブ管理の概念」を参照してください。

Procedureリソース変更ジョブを使用してプロジェクトを変更する

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. コンテナ表示を選択します。

  3. ナビゲーションウィンドウでプロジェクト名を選択します。

    プロジェクトはホストに関連付けられている必要があります。

  4. 右側の区画で「ジョブ」タブを選択します。

    「リソース変更ジョブ」表が表示されます。

    図 4–3 例: 「リソース変更ジョブ」表

    リソース変更ジョブの画面

  5. 表の中の「新規リソース変更ジョブ」ボタンをクリックします。

    リソース変更ジョブウィザードが表示されます。「概要」パネルが表示されます。

  6. リソース変更ジョブの名前を指定します。説明の入力は省略可能です。

    名前は 32 文字以内で入力します。空白文字、ハイフン (-)、下線 (_)、およびピリオド (.) の各文字は使用できます。空白文字は下線 (_) に変換されます。

    「ホストを選択」パネルが表示されます。選択したコンテナが関連付けられているすべてのホストの名前が「選択可能」リストに表示されます。このウィンドウで 1 つまたは複数のホストを選択し、そのリソース制限を変更できます。

  7. 「選択可能」リストでホストを選択し、「追加」をクリックして「選択」リストに追加します。「すべてを選択」を使用してすべてのホストを追加することもできます。

    ホスト名が「選択」フィールドに移動します。

  8. 新しい最小 CPU 予約数 (CPU シェア数) を指定します。メモリーキャップは省略可能です。

    新しいリソース制限は、前の手順で選択したすべてのホストに適用されます。

  9. リソース変更ジョブの開始日、開始時刻、および間隔を指定します。

    リソース制限の変更内容は、指定した日時に有効になります。

  10. 「概要」パネルで設定を確認します。修正するには、「戻る」ボタンをクリックします。変更を完了したら、「完了」をクリックします。

    ウィザードが終了します。ジョブが「ジョブ」表に追加されます。状態は、ジョブの実行が予定されている日時まで「待ち状態」になります。リソース制限の変更内容は、指定した日時に有効になります。

Procedure待ち状態のリソース変更ジョブを変更する

「ジョブ」表で状態が「待ち状態」のジョブを変更するには、次の手順に従います。

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. ナビゲーションウィンドウでコンテナ表示を選択します。

  3. 右側の区画で「ジョブ」タブを選択します。

  4. 「リソース変更ジョブ」表で、名前の横のチェックボックスを選択し、変更するジョブを選択します。

    チェックボックスにチェックマークが表示されます。

  5. リソース変更ジョブを更新ウィザードを起動するには、「リソース変更ジョブを更新」ボタンをクリックします。

    パネルを移動する詳細な手順については、「リソース変更ジョブを使用してプロジェクトを変更する」を参照してください。

  6. 変更を完了したら、「完了」をクリックします。

    ウィザードが終了します。ジョブの変更内容は保存されます。

Procedureリソース変更ジョブのログを表示する

完了した変更ジョブのログを表示するには、次の手順に従います。ジョブで複数のホストが変更された場合は、ホストごとのジョブの状態がログに記録されます。

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. ナビゲーションウィンドウでコンテナ表示を選択します。

  3. 右側の区画で「ジョブ」タブを選択します。

  4. 「リソース変更ジョブ」表で、名前の横のチェックボックスを選択し、ログを表示するジョブを選択します。

    チェックボックスにチェックマークが表示されます。

  5. 「View Log」ボタンをクリックします。

    リソース変更ジョブのログファイルが表示されます。

プロジェクトの削除

不要になったプロジェクトとそのコンテナは削除できます。プロジェクトとそのコンテナを削除するには、その前に、関連付けられているすべてのホストからプロジェクトを削除する必要があります。プロジェクトとコンテナを削除すると、コンテナがデータベースから削除され、プロジェクト用に収集されたデータが削除されます。プロジェクトのデータはすべてデータベースから削除されるので、削除したプロジェクトの履歴データは確認できなくなります。レコードとすべての履歴データが削除されるので、「削除」はプロジェクトの状態ではありません。

Solaris 8 OS でプロジェクトを削除するには、プロジェクト内で実行中のプロセスが停止している必要があります。

プロジェクトを削除すると、Solaris のバージョンによって、次の処理が実行されます。

Solaris 8 OS

lnode が削除されてから、プロジェクトが削除されます。

Solaris 9 OS と Solaris 10 OS

プロジェクト内で実行中のプロセスがデフォルトプロジェクトに移動し、/etc/project データベースからエントリが削除されます。

Procedureコンテナを削除する

手順
  1. Container Manager の GUI が開いていない場合は、「Container Manager の GUI を起動する」に従って起動します。

  2. コンテナに無効または有効なプロジェクトがないことを確認します。

  3. ナビゲーションウィンドウでコンテナ表示を選択します。

  4. 削除するコンテナを選択します。

  5. 「削除」をクリックします。

    コンテナがコンテナ表示から、またデータベースから削除されます。