Solaris Resource Manager 1.1 のシステム管理

グループループ

l ノードを動作中にすると、root l ノードに至るまでそのすべての親が動作中になります。この過程でいずれかの l ノードの親がすでに見つけられているものと同じ場合、カーネルは「グループループ」があるものとみなします。

リミットデータベースが壊れていると、l ノードの親のどれかが同時にその l ノードの子の 1 つとなって、グループループになることがあります。カーネルはグループループを発見すると、ループを任意に断ち切り、root l ノードの下にグループとして接続することによって、ループをスケジューリングツリーに (メッセージなしに) 自動的に接続します。ループには始めも終わりもないので、カーネルはどれが一番上の l ノードか判定できません。したがって、ループをスケジューリングツリーに接続した点の l ノードが一番上のグループのグループヘッダーになります。このグループのメンバーは、特権や本来より高い制限値を継承することがあります。

原因

スケジューリンググループの親を設定するときには、limadm がグループループが起こらないようにします。グループループは、リミットデータベースが壊れていることが原因で起こります。リミットデータベースは Solaris Resource Manager の操作の基本です。これが壊れていると、あらゆる問題の原因となります。

修正

カーネルが l ノードを root l ノードに接続するので、スケジューリングツリーの構造の問題は自動的に修正されます。この接続にはループ内の任意の点が使用されるため、管理者は、この l ノードをどこに接続するかを判定するだけでなく、ループ内の他のメンバーの接続点もチェックする必要があります。

グループループが自動的に修復された結果は、root l ノードの子の l ノードを一覧表示すると参照できます。

% limreport 'sgroup==0' - uid lname

このコマンドでは、root l ノードを親に持つすべての l ノードが表示されます。root l ノードの子ではない l ノードが表示される場合は、その l ノードが root l ノードの下に接続されたグループループの一番上と考えられます。

グループループが検出された場合は、リミットデータベースが損傷しているということなので、もっと重大な問題が起こる可能性があるということに管理者は注意する必要があります。リミットデータベースが壊れている可能性がある場合は、ファイルを検査して壊れているかどうかを判定し、壊れていたら修正する必要があります。リミットデータベースが壊れているかどうかの判定とその修正方法については、「クラッシュの回復」を参照してください。