Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)

第 17 章 非大域ゾーンの構成 (概要)

この章では、非大域ゾーンの構成の概要について説明します。

この章の内容は次のとおりです。

ゾーンの構成について学んだあとで、第 18 章非大域ゾーンの計画と構成 (手順)に進み、システムにインストールする非大域ゾーンを構成します。

lx ブランドゾーンの構成については、第 32 章lx ブランドゾーン構成の計画 (概要)および第 33 章lx ブランドゾーンの構成 (手順)を参照してください。

この章に追加されている説明

Solaris 10 6/06: ネイティブな非大域ゾーンのデータセット資源を追加する機能も含め、ZFS ファイルシステムのサポートが追加されています。詳細は、「資源タイプのプロパティー」を参照してください。

Solaris 10 11/06: 構成可能な特権のサポートが追加されています。「Solaris 10 11/06 以降: 構成可能な特権」を参照してください。

Solaris 10 8/07: 次の機能のサポートが zonecfg コマンドに追加されています。

Solaris 10 10/08: zonecfg ユーティリティーの net 資源に、共有 IP 非大域ゾーンの defrouter プロパティーが追加されました。このプロパティーを使用して、ネットワークインタフェースのデフォルトのルーターを設定できます。

Solaris 10 の新機能の全一覧および Solaris リリースについての説明は、『Oracle Solaris 10 9/10 の新機能』を参照してください。

ゾーンの資源について

資源管理機能を持っているゾーンは、コンテナと呼ばれます。コンテナ内で制御できる資源には、次のようなものがあります。

インストール前の構成手順

システムに非大域ゾーンをインストールして使用する前に、そのゾーンを構成する必要があります。

zonecfg コマンドを使用すると、構成を作成したり、指定された資源やプロパティーが仮定のシステム上で有効かどうかを判定したりできます。特定の構成について zonecfg で実行される検査では、次のことが確認されます。

zonecfg コマンドの詳細は、zonecfg(1M) のマニュアルページを参照してください。

ゾーンの構成要素

この節では、構成できる必須および省略可能なゾーン構成要素について説明します。詳細は、「ゾーン構成データ」を参照してください。

ゾーンの名前とパス

ゾーンの名前とパスを選択する必要があります。

ゾーンの自動起動

autoboot プロパティーの設定により、大域ゾーンの起動時にこのゾーンが自動的に起動されるかどうかが決まります。ゾーンサービス svc:/system/zones:default も有効になっている必要があります。

資源プールの関連付け

第 13 章資源プールの作成と管理 (手順)の説明に従ってシステムで資源プールを構成した場合は、ゾーンを構成するときに pool プロパティーを使用して、資源プールの 1 つにゾーンを関連付けることができます。

Solaris 10 8/07 以降のリリースでは、資源プールが構成されていない場合でも、非大域ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てるよう、dedicated-cpu 資源を使用して指定できます。ゾーンの実行中に使用される一時プールが動的に作成されます。zonecfg によって指定すると、移行時にプールの設定が伝達されます。


注 –

pool プロパティーによって設定される持続的プールを使用するゾーン構成と、dedicated-cpu 資源によって構成される一時プールには、互換性がありません。これら 2 つのプロパティーは、どちらか 1 つしか設定できません。


Solaris 10 8/07: dedicated-cpu 資源

dedicated-cpu 資源は、非大域ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てることを指定します。ゾーンの起動時に、ゾーンの実行中に使用される一時プールが動的に作成されます。

zonecfg で指定すると、移行時にプールの設定が伝達されます。

dedicated-cpu 資源は、ncpus の制限を設定し、必要に応じて importance も設定します。

ncpus

CPU の数を指定するか、CPU の数の範囲を 2–4 などと指定します。資源プールの動的な動作を得るために範囲を指定する場合は、次の手順も実行してください。

importance

動的な動作を得るために CPU 範囲を使用する場合は、importance プロパティーも設定してください。importance は「省略可能な」プロパティーであり、プールの相対的な重要性を定義します。このプロパティーが必要となるのは、ncpus に範囲を指定した場合で、poold によって管理される動的資源プールを使用しているときだけです。poold が実行されていない場合、importance は無視されます。poold が実行されている場合、importance が設定されていないと、importance はデフォルト値の 1 になります。詳細は、 pool.importance プロパティーの制約」を参照してください。


注 –

capped-cpu 資源と dedicated-cpu 資源には互換性がありません。cpu-shares 資源制御と dedicated-cpu 資源には互換性がありません。


Solaris 10 5/08: capped-cpu 資源

capped-cpu 資源は、1 つのプロジェクトまたは 1 つのゾーンで消費可能な CPU 資源量に対して絶対的できめの細かい制限を設けます。プロセッサセットと組み合わせて使用すると、CPU キャップはセット内の CPU 使用率を制限します。capped-cpu 資源には、小数点第 2 位までの正の小数である 1 つの ncpus プロパティーがあります。このプロパティーは、CPU のユニット数に対応しています。この資源には範囲を指定できません。この資源には小数を指定できます。ncpus を指定する場合、1 の値は 1 つの CPU の 100% を意味します。1.25 の値は 125% を意味します。100% がシステム上の 1 つの CPU の上限となります。


注 –

capped-cpu 資源と dedicated-cpu 資源には互換性がありません。


ゾーンのスケジューリングクラス

公平配分スケジューラ (FSS) を使用すると、使用可能な CPU 資源のゾーン間での割り当てを、ゾーンの作業負荷の重要性に基づいて制御できます。この作業負荷の重要性は、各ゾーンに割り当てる CPU 資源の「配分」で表します。CPU 資源のゾーン間での割り当てを管理するために FSS を使用していない場合でも、ゾーン内のプロジェクトに配分を設定するために FSS を使用するよう、ゾーンのスケジューリングクラスを設定することができます。

cpu-shares プロパティーを明示的に設定すると、公平配分スケジューラ (FSS) はそのゾーンのスケジューリングクラスとして使用されます。ただし、この場合に望ましい FSS の使用方法は、dispadmin コマンドを使用して、FSS をシステムのデフォルトのスケジューリングクラスに設定する方法です。このようにすると、すべてのゾーンがシステムの CPU 資源の公平配分を受けることができます。ゾーンに対して cpu-shares が設定されていない場合、そのゾーンはシステムのデフォルトのスケジューリングクラスを使用します。ゾーンのスケジューリングクラスは、次の処理によって設定されます。

priocntl (priocntl(1) のマニュアルページを参照) を使用すると、デフォルトのスケジューリングクラスの変更や再起動を行うことなく、実行中のプロセスを別のスケジューリングクラスに移動できます。

Solaris 10 8/07: 物理メモリーの制御と capped-memory 資源

capped-memory 資源は、physicalswap、および locked メモリーの制限を設定します。各制限は省略可能ですが、少なくとも 1 つは設定する必要があります。


注 –

通常はアプリケーションが多量のメモリーをロックすることはありませんが、ゾーンのアプリケーションによってメモリーがロックされることがわかっている場合は、ロックされるメモリーを設定するとよいでしょう。ゾーンの信頼が問題になる場合は、ロックされるメモリーの上限を、システムの物理メモリーの 10 パーセントまたはゾーンの物理メモリー上限の 10 パーセントに設定することもできます。


詳細は、第 10 章資源上限デーモンによる物理メモリーの制御 (概要)第 11 章資源上限デーモンの管理 (手順)、および 「ゾーンの構成方法」を参照してください。ゾーンに一時的な資源上限を設定する方法については、「ゾーンに一時的な資源上限を指定する方法」を参照してください。

ゾーンネットワークインタフェース

ネットワーク接続を提供するために zonecfg コマンドによって構成されるゾーンネットワークインタフェースは、ゾーンの起動時に自動的に設定されてゾーン内に配置されます。

インターネットプロトコル (IP) 層は、ネットワークのパケットの受信と配信を行います。この層には、IP ルーティング、アドレス解決プロトコル (ARP)、IP セキュリティーアーキテクチャー (IPsec)、および IP フィルタが含まれます。

非大域ゾーンに使用できる IP タイプには、共有 IP と排他的 IP の 2 種類があります。共有 IP ゾーンはネットワークインタフェースを共有し、排他的 IP ゾーンには専用のネットワークインタフェースが必要です。

各タイプの IP 機能については、「共有 IP 非大域ゾーンにおけるネットワーク」および 「Solaris 10 8/07: 排他的 IP 非大域ゾーンにおけるネットワーク」を参照してください。

共有 IP 非大域ゾーン

デフォルトのタイプは共有 IP ゾーンです。ゾーンには、1 つ以上の専用 IP アドレスが必要です。共有 IP ゾーンは、IP 層の構成と状態を大域ゾーンと共有します。次の両方の条件が満たされる場合、ゾーンは共有 IP インスタンスを使用すべきです。

共有 IP ゾーンには、zonecfg コマンドを使用して 1 つ以上の IP アドレスを割り当てます。大域ゾーンでデータリンク名も構成する必要があります。

これらのアドレスは、論理ネットワークインタフェースに関連付けられます。大域ゾーンから ifconfig コマンドを使用すると、稼働中のゾーンの論理インタフェースを追加したり削除したりできます。詳細は、「共有 IP ネットワークインタフェース」を参照してください。

Solaris 10 8/07: 排他的 IP 非大域ゾーン

排他的 IP ゾーンでは、IP レベルのすべての機能が使用可能です。

排他的 IP ゾーンは、IP 関連の状態を独自に保持します。

排他的 IP ゾーンでは次のような機能を使用できます。

排他的 IP ゾーンには、zonecfg コマンドを使用して独自のデータリンクセットを割り当てます。net 資源の physical プロパティーを使用して、ゾーンに xge0e1000g1bge32001 などのデータリンク名を割り当てます。net 資源の address プロパティーは設定されません。

データリンクを割り当てると snoop コマンドが使用可能になります。

dladm コマンドを show-linkprop サブコマンドとともに使用して、実行中の排他的 IP ゾーンに対するデータリンクの割り当てを表示できます。dladm コマンドを set-linkprop サブコマンドとともに使用すると、実行中のゾーンに対して追加のデータリンクを割り当てることができます。使用例については、「Solaris 10 8/07: 排他的 IP 非大域ゾーンでのデータリンクの管理」を参照してください。

実行中の排他的 IP ゾーンの内部で、ifconfig コマンドを使用して IP を構成できます。これには、論理インタフェースの追加や削除も含まれます。ゾーンの IP 構成は、大域ゾーンの場合と同様に sysidtools を使用して設定できます。詳細は、sysidcfg(4) のマニュアルページを参照してください。


注 –

排他的 IP ゾーンの IP 構成は、大域ゾーンから zlogin コマンドを使用することによってのみ表示できます。次に例を示します。


global# zlogin zone1 ifconfig -a

共有 IP 非大域ゾーンと排他的 IP 非大域ゾーンのセキュリティーの相違

共有 IP ゾーン内のアプリケーションは、スーパーユーザーも含め、zonecfg ユーティリティーを介してゾーンに割り当てられた IP アドレス以外を送信元 IP アドレスとしてパケットを送信することはできません。このタイプのゾーンには、任意のデータリンク (レイヤー 2) パケットを送受信するアクセス権はありません。

一方、排他的 IP ゾーンの場合は、zonecfg によって指定されたデータリンク全体がゾーンに対して許可されます。その結果、スーパーユーザーは、排他的 IP ゾーンでも大域ゾーンと同様に、偽のパケットをこれらのデータリンク上で送信できます。

共有 IP 非大域ゾーンと排他的 IP 非大域ゾーンの同時使用

共有 IP ゾーンは常に IP 層を大域ゾーンと共有し、排他的 IP ゾーンは常に独自の IP 層インスタンスを持っています。共有 IP ゾーンと排他的 IP ゾーンの両方を同じマシンで使用することができます。

ゾーンでマウントされるファイルシステム

通常、ゾーンでマウントされるファイルシステムには、次のものが含まれます。

これには、たとえば次のようなファイルシステムが含まれます。

アプリケーション環境内部から実行されるマウントには、いくつかの制限事項があります。これらの制限事項は、ほかのゾーンに悪影響を与えないようにするために、ゾーン管理者がシステムのほかの部分に対するサービスを拒否できないようにします。

一部のファイルシステムについては、ゾーン内部からマウントする場合にセキュリティー制限があります。ほかのファイルシステムは、ゾーン内でマウントされたときに特有の動作を行います。詳細は、「ファイルシステムと非大域ゾーン」を参照してください。

ゾーンで構成されるデバイス

zonecfg コマンドは、規則照合方式を使って、特定のゾーンにどのデバイスを配置するかを指定します。いずれかのルールに一致するデバイスは、ゾーンの /dev ファイルシステムに追加されます。詳細は、「ゾーンの構成方法」を参照してください。

ゾーン内のホスト ID

非大域ゾーンでは、大域ゾーンの hostid とは異なる hostid プロパティーを設定できます。この設定は、P2V (Physical-To-Virtual) 機能を使用して物理マシンをゾーンに統合する場合に行われます。ゾーン内に配置されたアプリケーションが元の hostid に依存する場合があり、アプリケーション構成を更新できないことがあります。詳細は、「資源タイプとプロパティータイプ」を参照してください。

ゾーン規模の資源制御の設定

大域管理者は、ゾーン規模の特権付き資源制御をゾーンに対して設定できます。ゾーン規模の資源制御は、ゾーン内のすべてのプロセスエンティティーによる総資源消費を制限します。

これらの制限は、大域ゾーンと非大域ゾーンのどちらに対しても、zonecfg コマンドを使用して指定します。「ゾーンの構成方法」を参照してください。

Solaris 10 8/07 以降のリリースでは、ゾーン規模の資源制御を設定する場合に望ましい、より簡単な方法は、rctl 資源の代わりにプロパティー名を使用する方法です。

Solaris 10 5/08: zone.cpu-cap 資源制御は、1 つのゾーンで消費可能な CPU 資源量に対する絶対的な制限を設定します。project.cpu-cap 設定と同様、100 の値は 1 つの CPU の 100% を意味します。125 の値は 125% になります。CPU キャップの使用時は、100% がシステム上の 1 つの CPU の上限となります。


注 –

capped-cpu 資源を設定する場合は、単位に小数を使用できます。この値は zone.capped-cpu 資源制御と相互に関連していますが、設定値はその 100 分の 1 になります。設定値 1 は資源制御の設定値 100 に等しくなります。


zone.cpu-shares 資源制御は、公平配分スケジューラ (FSS) の CPU 配分の制限をゾーンに対して設定します。CPU 配分は、まずゾーンに対して割り当てられたあとで、project.cpu-shares エントリの指定に従って、ゾーン内のプロジェクトに分配されます。詳細は、「ゾーンがインストールされている Solaris システムでの公平配分スケジューラの使用」を参照してください。この制御のグローバルプロパティー名は cpu-shares です。

zone.max-locked-memory 資源制御は、ゾーンで使用できるロックされた物理メモリーの量を制限します。ゾーン内のプロジェクト間でのロックされたメモリー資源の割り当ては、project.max-locked-memory 資源制御を使用して制御できます。詳細は、表 6–1 を参照してください。

1 つのゾーンの LWP が多くなりすぎると、ほかのゾーンに影響を与えることがあります。zone.max-lwps 資源制御は、これを防ぐことで、資源の隔離を向上させます。ゾーン内のプロジェクト間での LWP 資源の割り当ては、project.max-lwps 資源制御を使用して制御できます。詳細は、表 6–1 を参照してください。この制御のグローバルプロパティー名は max-lwps です。

zone.max-msg-idszone.max-sem-idszone.max-shm-ids、および zone.max-shm-memory の各資源制御は、ゾーン内のすべてのプロセスで使用される System V 資源を制限します。ゾーン内のプロジェクト間での System V 資源の割り当ては、これらの資源制御の project バージョンを使用して制御できます。これらの制御のグローバルプロパティー名は、max-msg-idsmax-sem-idsmax-shm-ids、および max-shm-memory です。

zone.max-swap 資源制御は、ゾーン内のユーザープロセスのアドレス空間マッピングと tmpfs マウントで消費されるスワップを制限します。prstat -Z の出力は「スワップ」列を表示します。報告されるスワップは、ゾーンのプロセスと tmpfs マウントで消費されるスワップの合計量です。この値により、各ゾーンで予約されているスワップを監視しやすくなり、適切な zone.max-swap 設定を選択することができます。

表 17–1 ゾーン規模の資源制御

制御名 

グローバルプロパティー名 

説明 

デフォルトの単位 

使用される値 

zone.cpu-cap

 

Solaris 10 5/08: このゾーンに対する CPU 資源量の絶対的な制限。

数量 (CPU の数)、パーセントで表されます。 


注 –

capped-cpu 資源として設定する場合は、単位に小数を使用できます。


 

zone.cpu-shares

cpu-shares

このゾーンに対する公平配分スケジューラ (FSS) の CPU 配分。 

数量 (配分) 

 

zone.max-locked-memory

 

ゾーンで使用できるロックされた物理メモリーの合計量。 

priv_proc_lock_memory がゾーンに割り当てられている場合、そのゾーンがすべてのメモリーをロックするのを防ぐため、この資源制御の設定も検討してください。

サイズ (バイト) 

capped-memorylocked プロパティー。

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-memoryswap プロパティー

prctl コマンドを使用すると、実行中のプロセスに対してこれらの制限を指定できます。例については、prctl コマンドを使用して大域ゾーンの FSS 配分を設定する方法」を参照してください。prctl コマンドで指定された制限には持続性がありません。システムが再起動されると、制限は無効になります。

Solaris 10 11/06 以降: 構成可能な特権

ゾーンの起動時に、safe 特権のデフォルトセットが構成に含められます。これらの特権は、ゾーン内の特権プロセスがシステムのほかの非大域ゾーン内のプロセスや大域ゾーン内のプロセスに影響を及ぼすことを防ぐため、安全と見なされます。 zonecfg コマンドを使用して、次の操作を実行できます。


注 –

わずかですが、この時点でゾーンのデフォルト特権セットから削除できない特権があります。同じように、特権セットに追加できない特権もあります。


詳細は、「非大域ゾーン内の特権」「ゾーンの構成方法」、および privileges(5) のマニュアルページを参照してください。

ゾーンのコメントの追加

attr 資源の型を使ってゾーンのコメントを追加できます。詳細は、「ゾーンの構成方法」を参照してください。

zonecfg コマンドの使用

zonecfg コマンド (zonecfg(1M) のマニュアルページを参照) は、非大域ゾーンを構成するために使用します。Solaris 10 8/07 リリースでは、大域ゾーンの資源管理設定を持続的に指定する場合にも、このコマンドを使用できます。

zonecfg コマンドは、対話型モード、コマンド行モード、またはコマンドファイルモードで使用できます。このコマンドを使用して、次の操作を実行できます。

zonecfg のプロンプトは次のような形式です。


zonecfg:zonename>

ファイルシステムなど、特定の資源タイプの構成を行うときは、その資源タイプもプロンプトに表示されます。


zonecfg:zonename:fs>

この章で説明する zonecfg のさまざまな構成要素の使用手順など、詳細については、第 18 章非大域ゾーンの計画と構成 (手順)を参照してください。

zonecfg のモード

このユーザーインタフェースでは「有効範囲」という概念が使用されます。有効範囲は、「大域」または「資源固有」のどちらかです。デフォルトの有効範囲は大域です。

大域有効範囲で add サブコマンドまたは select サブコマンドを使用すると、特定の資源が選択されます。すると、有効範囲がその資源タイプに変わります。

すると、有効範囲が大域に戻ります。

addremoveset などのように、有効範囲によって異なる意味を持つサブコマンドもあります。

zonecfg の対話型モード

対話型モードでは、次のサブコマンドがサポートされます。サブコマンドで使用する意味とオプションの詳細については、zonecfg(1M) のマニュアルページでオプション情報を参照してください。破壊的な操作や作業内容の消失を伴うようなサブコマンドの場合、処理を実行する前にユーザーの確認が求められます。-F (強制) オプションを使用すると、この確認手順を省略できます。

help

一般ヘルプまたは特定の資源に関するヘルプを表示します。


zonecfg:my-zone:inherit-pkg-dir> help
create

指定された新しいゾーンに使用するメモリー内構成の構成を開始します。次のような目的に使用されます。

  • デフォルト設定を新しい構成に適用します。この方法がデフォルトです。

  • -t template オプションを使用して、指定したテンプレートと同一の構成を作成します。ゾーン名がテンプレート名から新しいゾーン名に変更されます。

  • -F オプションを使用して、既存の構成を上書きします。

  • -b オプションを使用して、なにも設定されていない空の構成を作成します。

export

標準出力または指定された出力ファイルに、コマンドファイルに使用できる形式で構成を出力します。

add

大域有効範囲では、指定された資源タイプを構成に追加します。

資源固有の有効範囲では、指定された名前と値を持つプロパティーを追加します。

詳細は、「ゾーンの構成方法」および zonecfg(1M) のマニュアルページを参照してください。

set

指定されたプロパティー名を、指定されたプロパティー値に設定します。zonepath などの大域的なプロパティーと、資源固有のプロパティーがあることに注意してください。このコマンドは、大域有効範囲と資源固有の有効範囲の両方で使用できます。

select

大域有効範囲でのみ使用できます。指定されたタイプの資源のうち、指定されたプロパティー名とプロパティー値の対の条件に一致するものを、変更対象として選択します。有効範囲がその資源タイプに変わります。資源が一意に識別されるように、プロパティーの名前と値の対を十分な数だけ指定する必要があります。

clear

Solaris 10 8/07: 省略可能な設定の値をクリアーします。必須の設定はクリアーできません。ただし、必須の設定のいくつかは、新しい値を割り当てることによって変更できます。

remove

大域有効範囲では、指定された資源タイプを削除します。資源タイプが一意に識別されるように、プロパティーの名前と値の対を十分な数だけ指定する必要があります。プロパティーの名前と値の対をまったく指定しないと、すべてのインスタンスが削除されます。該当するものが複数ある場合は、-F オプションを使用していない限り、確認を求めるメッセージが表示されます。

資源固有の有効範囲では、指定された名前と値を持つプロパティーを現在の資源から削除します。

end

資源固有の有効範囲でのみ使用できます。資源の指定を終了します。

次に、zonecfg コマンドは、現在の資源が正しく指定されているかどうかを確認します。

  • 資源が正しく指定されている場合は、その資源がメモリー内に保持される構成に追加され、有効範囲が大域に戻ります。

  • 指定が不完全な場合は、必要な作業を示すエラーメッセージが表示されます。

cancel

資源固有の有効範囲でのみ使用できます。資源の指定を終了し、有効範囲を大域に戻します。資源の指定が不完全な場合、その資源は保持されません。

delete

指定された構成を破棄します。メモリーと安定した記憶領域の両方から構成を削除します。delete-F (強制) オプションを使用する必要があります。


注意 – 注意 –

この操作は即時に実行されます。確定手順は行われず、削除されたゾーンを元に戻すことはできません。


info

現在の構成または大域の資源プロパティー zonepathautoboot、および pool に関する情報を表示します。資源タイプが指定されている場合は、そのタイプの資源についてのみ情報を表示します。資源固有の有効範囲では、このサブコマンドは、追加または変更しようとしている資源にのみ適用されます。

verify

現在の構成が正しいかどうかを確認します。各資源に必須プロパティーがすべて指定されていることを確認します。

commit

現在の構成をメモリーから安定した記憶領域に確定します。メモリー内の構成を確定するまでは、revert サブコマンドで変更内容を削除できます。zoneadm で構成を使用するには、その構成を確定する必要があります。zonecfg セッションを完了するときに、この操作の実行が自動的に試みられます。正しい構成のみ確定できるので、確定操作では自動的に確認も行われます。

revert

構成を最後に確定されたときの状態に戻します。

exit

zonecfg のセッションを終了します。exit-F (強制) オプションを使用できます。

必要な場合は、commit 操作が自動的に試行されます。EOF 文字を使ってセッションを終了することもできることに注意してください。

zonecfg のコマンドファイルモード

コマンドファイルモードでは、ファイルから入力されます。このファイルを生成するには、zonecfg の対話型モード」で説明されている export サブコマンドを使用します。構成を標準出力に出力するか、-f オプションで指定した出力ファイルに出力することができます。

ゾーン構成データ

ゾーン構成データは 2 種類のエンティティーから成ります。 資源とプロパティーです。各資源は、タイプのほかにも 1 つ以上のプロパティーを持つことがあります。プロパティーは名前と値から成ります。どのようなプロパティーセットを持つかは、資源タイプによって異なります。

資源タイプとプロパティータイプ

資源タイプとプロパティータイプは次のとおりです。

ゾーン名

ゾーン名は、構成ユーティリティーでゾーンを識別するために使用されます。ゾーン名には次のような規則が適用されます。

  • 各ゾーンの名前は一意でなければならない。

  • ゾーン名では大文字と小文字が区別される。

  • ゾーン名は英数字で始まる必要がある。

    名前には、英数字、下線 (_)、ハイフン (-)、およびピリオド (.) を使用できます。

  • 名前の長さは 64 文字以内でなければならない。

  • global という名前と SUNW で始まるすべての名前は、予約されているので使用できない。

zonepath

zonepath プロパティーは、ゾーンのルートを含むパスです。各ゾーンでは、大域ゾーンのファイルシステムの zonepath の下に root ディレクトリがあります。ゾーンのインストール時に、適切な所有者とモードによる zonepath ディレクトリ階層が作成されます。zonepath ディレクトリは、所有者が root、モードが 700 で所有される必要があります。

非大域ゾーンのルートパスは 1 つ下のレベルになります。ゾーンのルートディレクトリの所有権とアクセス権は、大域ゾーンのルートディレクトリ (/) と同じになります。ゾーンのディレクトリの所有者は root で、モードは 755 であることが必要です。これらのディレクトリは正しいアクセス権を使って自動作成され、ゾーン管理者がこれらのディレクトリを検証する必要はありません。この階層構造により、大域ゾーンのユーザーでも権限を持っていない場合は、非大域ゾーンのファイルシステムと行き来できなくなります。

パス 

説明 

/home/export/my-zone

zonecfg zonepath

/home/export/my-zone/root

ゾーンのルート 

/home/export/my-zone/dev

ゾーン用に作成されたデバイス 

この問題の詳細については、「ファイルシステムの行き来」を参照してください。


注 –

各リリースでの ZFS の制限については、「Solaris 10 6/06、Solaris 10 11/06、Solaris 10 8/07、および Solaris 10 5/08: 非大域ゾーンのルートファイルシステムを ZFS 上に配置しない」を参照してください。


autoboot

このプロパティーを true に設定すると、大域ゾーンの起動時にこのゾーンが自動的に起動されます。ゾーンサービス svc:/system/zones:default が無効になっている場合、このプロパティーの設定にかかわらず、ゾーンは自動的には起動しません。svcadm(1M) のマニュアルページに記載されているように、svcadm コマンドを使用してゾーンサービスを有効にできます。


global# svcadm enable zones
bootargs

Solaris 10 8/07: このプロパティーは、ゾーンのブート引数を設定するために使用します。rebootzoneadm boot、または zoneadm reboot コマンドで無効にされた場合を除き、このブート引数が適用されます。「Solaris 10 8/07: ゾーンのブート引数」を参照してください。

pool

このプロパティーは、システム上の資源プールをゾーンに関連付けるために使用します。1 つのプール内の資源を複数のゾーンが共有してもかまいません。「Solaris 10 8/07: dedicated-cpu 資源」も参照してください。

limitpriv

Solaris 10 11/06 以降: このプロパティーは、デフォルト以外の特権マスクを指定する場合に使用します。「非大域ゾーン内の特権」を参照してください。

特権を追加するには、特権名だけを指定するか、特権名の前に priv_ 付けて指定します。特権を除外するには、名前の前にダッシュ (-) または感嘆符 (!) を付けます。複数の特権は、コンマで区切り、引用符 () で囲みます。

priv_str_to_set(3C)で説明されているように、特殊な特権セット noneall、および basic は、それぞれの通常の定義に展開されます。ゾーン構成は大域ゾーンで行われるため、特殊な特権セット zone は使用できません。特定の特権を追加または削除してデフォルトの特権セットを変更するのが一般的な使用方法であるため、特殊なセットである default はデフォルトの特権セットにマップされます。limitpriv プロパティーの先頭に default がある場合、デフォルトセットに展開されます。

次のエントリは、dtrace_proc 特権と dtrace_user 特権だけを必要とする DTrace プログラムをゾーンで使用できるようにします。


global# zonecfg -z userzone
zonecfg:userzone> set limitpriv="default,dtrace_proc,dtrace_user"

ゾーンの特権セットに不許可の特権が含まれる場合、必須の特権が欠落している場合、または未知の特権が含まれる場合、ゾーンの検証、準備、またはブートの試行は失敗し、エラーメッセージが表示されます。

scheduling-class

Solaris 10 8/07: このプロパティーは、ゾーンのスケジューリングクラスを設定します。詳細とヒントについては、「ゾーンのスケジューリングクラス」を参照してください。

ip-type

Solaris 10 8/07: このプロパティーは、ゾーンが排他的 IP ゾーンである場合のみ設定する必要があります。「Solaris 10 8/07: 排他的 IP 非大域ゾーン」および 「ゾーンの構成方法」を参照してください。

dedicated-cpu

Solaris 10 8/07: この資源は、ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てます。dedicated-cpu 資源は、ncpus の制限を設定し、必要に応じて importance も設定します。詳細は、「Solaris 10 8/07: dedicated-cpu 資源」を参照してください。

capped-cpu 資源

Solaris 10 5/08: この資源は、ゾーンの実行中にゾーンで消費可能な CPU 資源量に対する制限を設定します。この資源は、ncpus に制限を設けます。

capped-memory 資源

Solaris 10 8/07: この資源は、ゾーンのメモリー上限を設定するためのプロパティーをグループ化します。capped-memory 資源は、physicalswap、および locked メモリーの制限を設定します。これらのプロパティーの少なくとも 1 つは指定する必要があります。

dataset

Solaris 10 6/06: ZFS ファイルシステムのデータセット資源を追加すると、ストレージ管理を非大域ゾーンに委譲できます。ゾーン管理者は、そのデータセット内のファイルシステムの作成と破棄、クローンの作成と破棄、およびデータセットのプロパティーの変更を行うことができます。ゾーン管理者は、ゾーンに追加されていないデータセットを操作したり、ゾーンに割り当てられているデータセットに設定されている最上位レベルの割り当て制限を超過したりすることはできません。

次の方法で、ZFS データセットをゾーンに追加できます。

  • lofs マウントされたファイルシステムとして (大域ゾーンとの領域共有のみが目的の場合)

  • 委任されたデータセットとして

『Oracle Solaris ZFS 管理ガイド』の第 10 章「Oracle Solaris ZFS の高度なトピック」および 「ファイルシステムと非大域ゾーン」を参照してください。

データセットの詳細については、第 30 章Solaris ゾーンで発生するさまざまな問題の解決も参照してください。

fs

各ゾーンでは、インストール済み状態から準備完了状態に移行するときにマウントする各種のファイルシステムを指定できます。ファイルシステム資源は、ファイルシステムのマウントポイントのパスを指定します。ゾーンでファイルシステムを使用する方法の詳細については、「ファイルシステムと非大域ゾーン」を参照してください。

inherit-pkg-dir

完全ルートゾーンでは、この資源を構成するべきではありません。

疎ルートゾーンで inherit-pkg-dir 資源を使用すると、非大域ゾーンが大域ゾーンと共有するソフトウェアパッケージの保存先ディレクトリを指定できます。

inherit-pkg-dir ディレクトリに転送されるソフトウェアパッケージの内容は、非大域ゾーンでは読み取り専用モードで継承されます。ゾーンのパッケージデータベースが更新され、パッケージが反映されます。zoneadm を使用してゾーンをインストールした後で、これらの資源を変更または削除することはできません。


注 –

構成には、デフォルトの inherit-pkg-dir 資源が 4 つ含まれています。これらのディレクトリ資源は、大域ゾーンからどのディレクトリが関連パッケージを継承するべきかを指定します。資源の実装は、読み取り専用のループバックファイルシステムマウントによって行われます。

  • /lib

  • /platform

  • /sbin

  • /usr


net

ネットワークインタフェース資源は、インタフェースの名前です。各ゾーンでは、インストール済み状態から準備完了状態に移行するときに設定するべきネットワークインタフェースを指定できます。

device

デバイス資源は、デバイス照合の指定子です。各ゾーンでは、インストール済み状態から準備完了状態に移行するときに構成するべきデバイスを指定できます。

rctl

rctl 資源は、ゾーン規模の資源制御に使用されます。資源制御は、ゾーンがインストール済み状態から準備完了状態に移行するときに有効になります。

hostid

大域ゾーンの hostid とは異なる hostid を設定できます。

attr

この汎用属性は、ユーザーコメントとして使用したり、ほかのサブシステムで使用したりできます。attrname プロパティーは、英数字で始まる必要があります。name プロパティーには、英数字、ハイフン (-)、およびピリオド (.) を使用できます。zone. で始まる属性名はシステム用に予約されています。

資源タイプのプロパティー

資源には、構成可能なプロパティーもあります。資源タイプとそれに関連付けられるプロパティーは次のとおりです。

dedicated-cpu

ncpusimportance

Solaris 10 8/07: CPU の数を指定し、必要に応じてプールの相対的な重要性も指定します。次の例では、ゾーン my-zone で使用する CPU の範囲を指定します。importance も設定します。


zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=1-3
zonecfg:my-zone:dedicated-cpu> set importance=2
zonecfg:my-zone:dedicated-cpu> end
capped-cpu

ncpus

CPU の数を指定します。次の例では、ゾーン my-zone の CPU 数のキャップを 3.5 に指定します。


zonecfg:my-zone> add capped-cpu
zonecfg:my-zone:capped-cpu> set ncpus=3.5
zonecfg:my-zone:capped-cpu> end
capped-memory

physicalswaplocked

ゾーン my-zone のメモリー制限を指定します。各制限は省略可能ですが、少なくとも 1 つは設定する必要があります。


zonecfg:my-zone> add capped-memory
zonecfg:my-zone:capped-memory> set physical=50m
zonecfg:my-zone:capped-memory> set swap=100m
zonecfg:my-zone:capped-memory> set locked=30m
zonecfg:my-zone:capped-memory> end
fs

dirspecialrawtypeoptions

fs 資源のパラメータは、ファイルシステムをマウントする方法と場所を決定する値を指定します。fs のパラメータは次のように定義されています。

dir

ファイルシステムのマウントポイントを指定します

special

大域ゾーンからマウントするブロック型特殊デバイスの名前またはディレクトリを指定します

raw

ファイルシステムをマウントする前に fsck を実行する、raw デバイスを指定します

type

ファイルシステムのタイプを指定します

options

mount コマンドで使用されるオプションに似たマウントオプションを指定します

次の例では、大域ゾーンの /dev/dsk/c0t0d0s2 を、構成中のゾーンに /mnt としてマウントするように指定します。raw プロパティーでデバイスを指定する (任意) と、ファイルシステムのマウントを実行する前に、そのデバイスに対して fsck コマンドが実行されます。使用するファイルシステムの種類は UFS です。nodevices オプションと logging オプションも追加します。


zonecfg:my-zone> add fs
zonecfg:my-zone:fs> set dir=/mnt
zonecfg:my-zone:fs> set special=/dev/dsk/c0t0d0s2
zonecfg:my-zone:fs> set raw=/dev/rdsk/c0t0d0s2
zonecfg:my-zone:fs> set type=ufs
zonecfg:my-zone:fs> add options [nodevices,logging]
zonecfg:my-zone:fs> end

詳細は、-o nosuid オプション」「セキュリティーの制限およびファイルシステムの動作」、および fsck(1m)mount(1M) のマニュアルページを参照してください。また、セクション 1M のマニュアルページには、特定のファイルシステムに固有のマウントオプションに関するものがあります。このようなマニュアルページの名前は、mount_ filesystem という形式です。


注 –

fs 資源プロパティーを使用して ZFS ファイルシステムを追加する方法については、『Oracle Solaris ZFS 管理ガイド』「ZFS ファイルシステムを非大域ゾーンに追加する」を参照してください。


dataset

name

次の例では、データセット sales を非大域ゾーンでマウントして可視にし、大域ゾーンでは不可視にするように指定します。


zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
inherit-pkg-dir

dir

次の例では、大域ゾーンから /opt/sfw をループバックマウントするように指定します。


zonecfg:my-zone> add inherit-pkg-dir
zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw
zonecfg:my-zone:inherit-pkg-dir> end
net

addressphysicaldefrouter


注 –

共有 IP ゾーンの場合は、IP アドレスとデバイスの両方を指定します。必要に応じて、デフォルトのルーターを設定できます。

  • 大域ゾーンで構成されていないサブネット上に非大域ゾーンがある場合、defrouter プロパティーを使用してデフォルト経路を設定できます。

  • defrouter プロパティーを設定したゾーンは、大域ゾーンで構成されていないサブネット上にある必要があります。

共有 IP ゾーンがそれぞれ異なるサブネット上にある場合は、大域ゾーンでデータリンクを構成しないでください。

排他的 IP ゾーンの場合は、物理インタフェースだけを指定します。physical プロパティーは VNIC でもかまいません。


次に示す共有 IP ゾーンの例では、IP アドレス 192.168.0.1 をゾーンに追加します。物理インタフェースとして hme0 カードを使用します。どの物理インタフェースを使用するかを決定するには、システムで ifconfig -a と入力します。出力の各行は、ループバックドライバの行を除き、システムにインストールされているカードの名前で始まります。説明に LOOPBACK が含まれている場合、その行はカードに関するものではありません。


zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=hme0
zonecfg:my-zone:net> set address=192.168.0.1
zonecfg:my-zone:net> end

次に示す排他的 IP ゾーンの例では、物理インタフェースとして bge32001 リンクを使用します。使用可能なデータリンクを調べるには、dladm show-link を使用してください。排他的 IP ゾーンで使用するデータリンクは GLDv3 でなければならず、GLDv3 以外のデータリンクは dladm show-link の出力に type: legacy と表示されます。ip-type=exclusive も指定する必要があります。


zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=bge32001
zonecfg:my-zone:net> end
device

match

次の例では、/dev/pts デバイスをゾーンに追加します。


zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/pts*
zonecfg:my-zone:device> end
rctl

namevalue

Solaris 10 8/07: このリリースで新しく追加された資源制御は、zone.max-locked-memoryzone.max-msg-idszone.max-sem-idszone.max-shm-idszone.max-shm-memory、および zone.max-swap です。

使用可能なゾーン規模の資源制御は次のとおりです。

  • zone.cpu-shares (推奨: cpu-shares )

  • zone.max-locked-memory

  • zone.max-lwps (推奨: max-lwps)

  • zone.max-msg-ids (推奨: max-msg-ids )

  • zone.max-sem-ids (推奨: max-sem-ids )

  • zone.max-shm-ids (推奨: max-shm-ids )

  • zone.max-shm-memory (推奨: max-shm-memory )

  • zone.max-swap

ゾーン規模の資源制御を設定する場合に望ましい、より簡単な方法は、rctl 資源の代わりにプロパティー名を使用する方法です。詳細は、「ゾーンの構成方法」を参照してください。add rctl を使ってゾーン内のゾーン規模の資源制御エントリを構成する場合、その形式は project データベース内の資源制御エントリの形式とは異なります。ゾーン構成では、rctl 資源タイプは、名前と値の対 3 つから成ります。これらの名前は、privlimit、および action です。これらの名前には、単純な値がそれぞれ設定されます。


zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.cpu-shares
zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)zonecfg:my-zone:rctl> end

zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.max-lwps
zonecfg:my-zone:rctl> add value (priv=privileged,limit=100,action=deny)
zonecfg:my-zone:rctl> end

資源制御と属性の概要については、第 6 章資源制御 (概要)および 「非大域ゾーンで使用される資源制御」を参照してください。

attr

nametypevalue

次の例では、ゾーンに関するコメントを追加します。


zonecfg:my-zone> add attr
zonecfg:my-zone:attr> set name=comment
zonecfg:my-zone:attr> set type=string
zonecfg:my-zone:attr> set value="Production zone"
zonecfg:my-zone:attr> end

export サブコマンドを使用すると、ゾーン構成を標準出力に出力できます。構成は、コマンドファイルに使用できる形式で保存されます。

Tecla コマンド行編集ライブラリ

付属の Tecla コマンド行編集ライブラリは、zonecfg コマンドで使用できます。このライブラリにより、コマンド行の履歴機構と編集サポートが提供されます。

Tecla コマンド行編集ライブラリについては、次のマニュアルページを参照してください。