ここでは、次の構成要素について説明します。
zonecfg コマンドを使用して構成できるゾーンの資源とプロパティー
デフォルトで構成に含まれている資源
ゾーンの名前とパスを選択する必要があります。
autoboot プロパティーの設定により、大域ゾーンの起動時にこのゾーンが自動的に起動されるかどうかが決まります。
第 13 章資源プールの作成と管理 (手順)の説明に従ってシステムで資源プールを構成した場合は、ゾーンを構成するときに pool プロパティーを使用して、資源プールの 1 つにゾーンを関連付けることができます。
資源プールが構成されていない場合でも、非大域ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てるよう、dedicated-cpu 資源を使用して指定できます。ゾーンの実行中に使用される一時プールが動的に作成されます。
pool プロパティーによって設定される持続的プールを使用するゾーン構成と、dedicated-cpu 資源によって構成される一時プールには、互換性がありません。これら 2 つのプロパティーは、どちらか 1 つしか設定できません。
dedicated-cpu 資源は、非大域ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てることを指定します。ゾーンの起動時に、ゾーンの実行中に使用される一時プールが動的に作成されます。
dedicated-cpu 資源は、ncpus の制限を設定し、必要に応じて importance も設定します。
CPU の数を指定するか、CPU の数の範囲を 2–4 などと指定します。資源プールの動的な動作を得るために範囲を指定する場合は、次の手順も実行してください。
importance プロパティーを設定します。
「プール機能の有効化と無効化」の説明に従って、動的資源プールサービスを有効にします。
動的な動作を得るために CPU 範囲を使用する場合は、importance プロパティーも設定してください。importance は「省略可能な」プロパティーであり、プールの相対的な重要性を定義します。このプロパティーが必要となるのは、ncpus に範囲を指定した場合で、poold によって管理される動的資源プールを使用しているときだけです。poold が実行されていない場合、importance は無視されます。poold が実行されている場合、importance が設定されていないと、importance はデフォルト値の 1 になります。詳細は、「 pool.importance プロパティーの制約」を参照してください。
cpu-shares 資源制御と dedicated-cpu 資源には互換性がありません。
capped-cpu 資源は、1 つのプロジェクトまたは 1 つのゾーンで消費可能な CPU 資源量に対して絶対的な制限を設けます。capped-cpu 資源には、小数点第 2 位までの正の小数である 1 つの ncpus プロパティーがあります。このプロパティーは、CPU のユニット数に対応しています。この資源には範囲を指定できません。この資源には小数を指定できます。ncpus を指定する場合、1 の値は 1 つの CPU の 100% を意味します。100% がシステム上の 1 つの完全な CPU に対応するため、値 1.25 は 125% を意味します。
capped-cpu 資源と dedicated-cpu 資源には互換性がありません。
公平配分スケジューラ (FSS) を使用すると、使用可能な CPU 資源のゾーン間での割り当てを、ゾーンの重要性に基づいて制御できます。この重要性は、各ゾーンに割り当てる CPU 資源の「配分」で表します。
cpu-shares プロパティーを明示的に設定すると、公平配分スケジューラ (FSS) はそのゾーンのスケジューリングクラスとして使用されます。ただし、この場合に望ましい FSS の使用方法は、dispadmin コマンドを使用して、FSS をシステムのデフォルトのスケジューリングクラスに設定する方法です。このようにすると、すべてのゾーンがシステムの CPU 資源の公平配分を受けることができます。ゾーンに対して cpu-shares が設定されていない場合、そのゾーンはシステムのデフォルトのスケジューリングクラスを使用します。ゾーンのスケジューリングクラスは、次の処理によって設定されます。
zonecfg の scheduling-class プロパティーを使ってゾーンのスケジューリングクラスを設定できます。
資源プール機能を使ってゾーンのスケジューリングクラスを設定できます。ゾーンがプールに関連付けられている場合、そのプールの pool.scheduler プロパティーに有効なスケジューリングクラスが設定されていれば、ゾーンで実行されるプロセスは、デフォルトでそのスケジューリングクラスで実行されます。「資源プールの紹介」 および 「プールをスケジューリングクラスに対応付ける方法」を参照してください。
cpu-shares 資源制御が設定されている場合で、別の処理を通して FSS がゾーンのスケジューリングクラスとして設定されていないときは、ゾーンの起動時に zoneadmd によってスケジューリングクラスが FSS に設定されます。
ほかの処理を通してスケジューリングクラスが設定されていない場合、ゾーンはシステムのデフォルトのスケジューリングクラスを継承します。
priocntl (priocntl(1) のマニュアルページを参照) を使用すると、デフォルトのスケジューリングクラスの変更や再起動を行うことなく、実行中のプロセスを別のスケジューリングクラスに移動できます。
capped-memory 資源は、physical、swap、および locked メモリーの制限を設定します。各制限は省略可能ですが、少なくとも 1 つは設定する必要があります。
大域ゾーンから rcapd を使用してゾーンのメモリー上限を設定する場合は、この資源の値を決定します。capped-memory 資源の physical プロパティーは、ゾーンの max-rss 値として rcapd で使用されます。
capped-memory 資源の swap プロパティーは、zone.max-swap 資源制御を設定するための望ましい方法です。
capped-memory 資源の locked プロパティーは、zone.max-locked-memory 資源制御を設定するための望ましい方法です。
通常はアプリケーションが多量のメモリーをロックすることはありませんが、ゾーンのアプリケーションによってメモリーがロックされることがわかっている場合は、ロックされるメモリーを設定するとよいでしょう。ゾーンの信頼が問題になる場合は、ロックされるメモリーの上限を、システムの物理メモリーの 10 パーセントまたはゾーンの物理メモリー上限の 10 パーセントに設定することもできます。
詳細は、第 10 章資源上限デーモンによる物理メモリーの制御 (概要)、第 11 章資源上限デーモンの管理 (手順)、および 「lx ブランドゾーンの構成方法」を参照してください。
lx ブランドゾーンでは、共有 IP ネットワーク構成だけがサポートされています。
ネットワーク接続を必要とする各ゾーンには、1 つ以上の専用 IP アドレスが必要です。これらのアドレスは、論理ネットワークインタフェースに関連付けられます。zonecfg コマンドで構成されたネットワークインタフェースは、起動時に自動的に設定され、ゾーンに配置されます。Solaris 10 10/08 リリース以降では、必要に応じて defrouter プロパティーを使用して、ネットワークインタフェースのデフォルトのルーターを設定することもできます。
通常、ゾーンでマウントされるファイルシステムには、次のものが含まれます。
仮想プラットフォームの初期化時にマウントされる一連のファイルシステム
ゾーン自体の内部からマウントされる一連のファイルシステム
これには、たとえば次のようなファイルシステムが含まれます。
automount によって引き起こされるマウント
ゾーン管理者が明示的に実行するマウント
アプリケーション環境内部から実行されるマウントには、いくつかの制限事項があります。これらの制限事項は、ほかのゾーンに悪影響を与えないようにするために、ゾーン管理者がシステムのほかの部分に対するサービスを拒否できないようにします。
一部のファイルシステムについては、ゾーン内部からマウントする場合にセキュリティー制限があります。ほかのファイルシステムは、ゾーン内でマウントされたときに特有の動作を行います。詳細は、「ファイルシステムと非大域ゾーン」を参照してください。
ゾーン規模の資源制御を設定する場合に望ましい、より簡単な方法は、rctl 資源の代わりにプロパティー名を使用する方法です。これらの制限は、大域ゾーンと非大域ゾーンの両方に対して指定されます。
大域管理者は、rctl 資源を使用して、ゾーン規模の特権付き資源制御をゾーンに対して設定することもできます。
ゾーン規模の資源制御は、ゾーン内のすべてのプロセスエンティティーによる総資源消費を制限します。これらの制限は、大域ゾーンと非大域ゾーンのどちらに対しても、zonecfg コマンドを使用して指定します。手順については、「lx ブランドゾーンの構成方法」を参照してください。
現在使用できる資源制御は次のとおりです。
表 32–1 ゾーン規模の資源制御
制御名 |
グローバルプロパティー名 |
説明 |
デフォルトの単位 |
使用される値 |
---|---|---|---|---|
zone.cpu-cap |
Solaris 10 5/08 リリースでは、このゾーンに対して CPU 資源量の絶対的な制限を設定します。project.cpu-cap 設定と同様、100 の値は 1 つの CPU の 100% を意味します。125 の値は 125% になります。CPU キャップの使用時は、100% がシステム上の 1 つの CPU の上限となります。 |
数量 (CPU の数) | ||
zone.cpu-shares |
cpu-shares |
このゾーンに対する公平配分スケジューラ (FSS) の CPU 配分 |
数量 (配分) | |
zone.max-locked-memory |
|
ゾーンで使用できるロックされた物理メモリーの合計量。 |
サイズ (バイト) |
capped-memory の locked プロパティー |
zone.max-lwps |
max-lwps |
このゾーンで同時に使用できる LWP の最大数 |
数量 (LWP 数) | |
zone.max-msg-ids |
max-msg-ids |
このゾーンに許容されるメッセージキュー ID の最大数 |
数量 (メッセージキュー ID の数) | |
zone.max-sem-ids |
max-sem-ids |
このゾーンに許容されるセマフォー ID の最大数 |
数量 (セマフォー ID の数) | |
zone.max-shm-ids |
max-shm-ids |
このゾーンに許容される共有メモリー ID の最大数 |
数量 (共有メモリー ID の数) | |
zone.max-shm-memory |
max-shm-memory |
このゾーンに許容される System V 共有メモリーの合計量 |
サイズ (バイト) | |
zone.max-swap |
|
このゾーンのユーザープロセスのアドレス空間マッピングと tmpfs マウントで消費できるスワップの合計量。 |
サイズ (バイト) |
capped-memory の swap プロパティー |
limitpriv プロパティーは、定義済みのデフォルト特権セット以外の特権マスクを指定する場合に使用します。ゾーンの起動時に、デフォルトの特権セットがブランド構成に含められます。これらの特権は、ゾーン内の特権プロセスがシステムのほかの非大域ゾーン内のプロセスや大域ゾーン内のプロセスに影響を及ぼすことを防ぐため、安全と見なされます。limitpriv プロパティーを使用して、次の操作を実行できます。
デフォルトの特権セットに追加します。ただし、この種の変更を行うと、あるゾーン内のプロセスがグローバル資源を制御できるようになって、ほかのゾーン内のプロセスに影響する場合があります。
デフォルトの特権セットから削除します。ただし、この種の変更を行うと、実行に必要な特権がないため一部のプロセスが正しく動作しなくなる場合があります。
わずかですが、この時点でゾーンのデフォルト特権セットから削除できない特権があります。同じように、特権セットに追加できない特権もあります。
詳細は、「lx ブランドゾーンで定義される特権」、「非大域ゾーン内の特権」、および privileges(5) のマニュアルページを参照してください。
attr 資源タイプを使用して、大域ゾーンにあるオーディオデバイスへのアクセスを可能にすることができます。手順については、「lx ブランドゾーンを構成、検証、および確定する方法」の手順 12 を参照してください。
attr 資源タイプを使ってゾーンのコメントを追加することもできます。