リソースグループを専用のプロセッサセットで実行させる場合は、この手順を実行します。
リソースグループが専用のプロセッサセットで実行するよう構成されている場合、Sun Cluster は、非大域ゾーンのリソースグループのリソースを起動する際に、次の作業を実行します。
SCSLM_pool_zone_name という名前のプールを作成します (まだ行われていない場合)。
専用のプロセッサセットを作成します。プロセッサセットのサイズは、RG_SLM_CPU_SHARES および RG_SLM_PSET_MIN プロパティーを使用することで決定されます。
SCSLM_pool_zone_name プールを、作成されたプロセッサセットに関連付けます。
非大域ゾーンを SCSLM_pool_zone_name プールに動的にバインドします。
非大域ゾーンに割り当てられている CPU シェアの数を、指定された CPU シェアの数だけ増やします (まだ行われていない場合)。
非大域ゾーンに SCSLM_resourcegroup_name という名前のプロジェクトを作成します (まだ行われていない場合)。このプロジェクトはリソースグループに固有で、指定された数の CPU シェア (project.cpu_shares) が割り当てられます。
SCSLM_resourcegroup_name プロジェクトのリソースを起動する。
システムのスケジューラを、公平配分スケジューラ (FSS) に設定します。
# dispadmin -d FSS |
次の再起動時に、FSS がデフォルトのスケジューラになります。この構成をすぐに有効にするには、priocntl コマンドを使用します。
# priocntl -s -C FSS |
priocntl コマンドと dispadmin コマンドを組み合わせて使用することで、FSS がすぐにデフォルトのスケジューラになり、再起動後もそのままになります。スケジューリングクラスの設定の詳細については、dispadmin(1M) および priocntl(1) のマニュアルページを参照してください。
FSS がデフォルトのスケジューラでない場合、CPU シェアの割り当ては有効になりません。
各ノードで CPU 制御を使用するため、大域ゾーンのシェア数と、デフォルトのプロセッサセットで使用可能な CPU の最小数を構成します。
これらのパラメータを設定することで、大域ゾーンで動作中のプロセスを、非大域ゾーンで動作中のプロセスと CPU を獲得する際に発生する競合から保護します。globalzoneshares および defaultpsetmin プロパティーに値を割り当てないと、これらのプロパティーはデフォルト値をとります。
# clnode set [-p globalzoneshares=integer] \ [-p defaultpsetmin=integer] \ node |
デフォルトのプロセッサセットで利用可能な CPU の最小数を設定します。デフォルトは 1 です。
大域ゾーンに割り当てられるシェアの数を設定します。デフォルトは 1 です。
プロパティーを設定するノードを指定します。
これらのプロパティーを設定する際には、大域ゾーンのプロパティーを設定しています。
これらのプロパティーを正しく設定したことを確認します。
# clnode show node |
指定するノードに対して、clnode コマンドは、設定されているプロパティー、およびこれらのプロパティーに設定されている値を出力します。clnode を使用して CPU 制御プロパティーを設定しないと、これらはデフォルト値をとります。
CPU 制御機能を構成します。
# clresourcegroup create -p RG_SLM_TYPE=automated \ [-p RG_SLM_CPU_SHARES=value] \ -p -y RG_SLM_PSET_TYPE=value \ [-p RG_SLM_PSET_MIN=value] resource_group_name |
CPU 制御の使用状況を管理できるようにし、システム資源管理用に Solaris OS を設定する手順の一部を自動化します。
リソースグループ固有のプロジェクトに割り当てられる CPU シェア project.cpu-shares の数を指定し、非大域ゾーンに割り当てられている CPU シェア zone.cpu-shares) の数とプロセッサセット内のプロセッサの最大数を判別します。
専用のプロセッサセットの作成を可能にします。専用のプロセッサセットを使用するには、このプロパティーを strong または weak に設定します。値 strong と weak は相互に排他的です。つまり、同じゾーン内のリソースグループを、strong と weak が混在するように構成することはできません。
プロセッサセット内のプロセッサの最小数を判別します。
リソースグループの名前を指定します。
このステップによりリソースグループが作成されます。また、clresourcegroup set コマンドを使用して既存のリソースグループを変更することもできます。
デフォルトのプール以外のプールがゾーン構成内にある場合、またはゾーンがデフォルトのプール以外のプールに動的にバインドされている場合、非大域ゾーンで RG_SLM_TYPE を automated に設定することはできません。ゾーン構成とプールのバインディングについては、それぞれ zonecfg(1M) と poolbind(1M) のマニュアルページを参照してください。ゾーン構成を次のように表示します。
# zonecfg -z zone_name info pool |
HAStoragePlus や LogicalHostname リソースなどのリソースは、非大域ゾーンで起動するように構成されていても、GLOBAL_ZONE プロパティーが TRUE に設定されている場合は、大域ゾーンで起動されます。 RG_SLM_TYPE プロパティーを automated に設定した場合であっても、このリソースは CPU シェアと専用のプロセッサセット構成の恩恵を受けることはなく、RG_SLM_TYPE が手動に設定されているリソースグループと同様に扱われます。
構成の変更を有効にします。
リソースグループの名前を指定します。
SCSLM_resource_group_name プロジェクトは削除または変更しないでください。手動で、たとえば project.max-lwps プロパティーを構成することにより、プロジェクトにさらにリソース制御を追加できます。詳細は、projmod(1M) のマニュアルページを参照してください。
リソースグループがオンラインの間に RG_SLM_CPU_SHARES と RG_SLM_PSET_MIN に行われた変更は、動的に考慮されます。しかし、RG_SLM_PSET_TYPE に strong が設定されている場合、および、変更を受け入れるための CPU が十分に存在しない場合、RG_SLM_PSET_MIN に要求された変更は適用されません。この場合は、警告メッセージが表示されます。次回のスイッチオーバーでは、 RG_SLM_PSET_MIN に対して構成した値を受け入れる十分な CPU が使用できない場合、不十分な CPU 数によるエラーが発生する可能性があります。
オンラインリソースグループが、非大域ゾーン内の CPU 制御に対して設定されなくなった場合、非大域ゾーンの CPU シェア値は zone.cpu-shares の値をとります。このパラメータの値はデフォルトで 1 です。