名前 | 形式 | 機能説明 | オプション | サブコマンド | 使用例 | 終了ステータス | 属性 | 関連項目 | 注意事項
zonecfg -z zonename
zonecfg -z zonename subcommand
zonecfg -z zonename -f command_file
zonecfg help
zonecfg ユーティリティーは、ゾーンの構成を作成および変更します。ゾーン構成は、いくつかの資源およびプロパティーで構成されます。
ユーザーインタフェースを簡素化するために、zonecfg では有効範囲の概念が利用されます。デフォルトの有効範囲は大域です。
次の形式の zonecfg コマンドは、対話形式で使用されます。
zonecfg -z zonename subcommand |
zonecfg 経由で変更されたパラメータは、稼働中のゾーンには影響しません。変更を適用するには、ゾーンを再起動する必要があります。
ゾーンの作成と変更のほか、zonecfg ユーティリティーは大域ゾーンの資源管理設定を永続的に指定するためにも使用できます。
以降の文では、「rctl」を「resource control」(資源制御) の略語として使用します。resource_controls(5) を参照してください。
次の資源タイプがサポートされています。
汎用属性。
物理メモリー、スワップメモリー、およびロックされたメモリーの制限。
ZFS データセット。
稼働している間、このゾーン専用に割り当てられるシステムプロセッサのサブセット。
デバイス。
ファイルシステム。
大域ゾーンから継承されるディレクトリ。ソフトウェアパッケージの内容がこのディレクトリに転送された場合、非大域ゾーンはそのソフトウェアパッケージを読み取り専用モードで継承します。非大域ゾーンのパッケージデータベースは、それらのパッケージを反映するために更新されます。zoneadm を使用してゾーンをインストールしたあとに、このような資源を変更または削除することはできません。
ネットワークインタフェース。
資源制御。
各資源タイプには、1 つまたは複数のプロパティーが割り当てられます。また、いくつかの大域プロパティー (特定の資源のプロパティーではなく、構成全体のプロパティー) も割り当てられます。
次のプロパティーがサポートされています。
zonename
zonepath
autoboot
bootargs
pool
limitpriv
brand
cpu-shares
max-lwps
max-msg-ids
max-sem-ids
max-shm-ids
max-shm-memory
dir、special、raw、type、options
dir
address、physical
match
name、value
name、type、value
name
ncpus、importance
physical、swap、locked
これらのプロパティー名のプロパティー値は、単純値、複合値、またはリスト値で指定します。許可されるタイプはプロパティーごとに異なります。単純値は文字列で、引用符で囲むこともできます。複合値は次の構文で指定します。
(<name>=<value>,<name>=<value>,...) |
ここで、各 <value> は単純値であり、<name> 文字列は与えられたプロパティー内で一意になります。リストは次の構文で指定します。
[<value>,...] |
ここで、<value> は、単純値、複合値のいずれかです。値 (単純値または複合値) が 1 つだけのリストは、リスト構文を使わずにその値を指定することと等価です。つまり、「foo」は「[foo]」と等価です。リストは空でもかまいません (「[]」と表記)。
プロパティー値の解釈において、zonecfg は fnmatch(5) で指定されている正規表現に対応しています。「使用例」を参照してください。
次にプロパティータイプについて説明します。
ゾーンの名前。
ゾーンのファイルシステムのパス。
システムが起動するときに、ゾーンを自動的に起動するかどうかを指定するブール値。ゾーンサービスが無効になっている場合は、このプロパティーの設定に関係なく、ゾーンは自動的に起動されません。ゾーンサービスを有効にするには、次のように svcadm コマンドを使用します。
# svcadm enable svc:/system/zones:default
ゾーンサービスを無効にする場合は、enable を disable に置き換えます。svcadm(1M) を参照してください。
ゾーンの起動時に渡される引数 (オプション)。ただし、zoneadm boot コマンドにオプションが指定された場合は、そちらが優先されます。有効な引数は、zoneadm(1M) で説明されています。
起動時にこのゾーンをバインドする資源プールの名前。このプロパティーには dedicated-cpu 資源との互換性はありません。
このゾーン内のいずれかのプロセスが入手できる特権のセットの最大数。プロパティーは、priv_str_to_set(3C) で説明されているコンマ区切りの特権セットの仕様で構成するようにしてください。名前の前にダッシュ (-) または感嘆符 (!) を付けると、結果として得られるセットから特権を除外できます。このコンテキストでは、特別な特権文字列「zone」はサポートされていません。特別な文字列「default」がプロパティーで最初のトークンとして出現する場合、zones(5) で説明されている、リソースとセキュリティーの分離を保持する安全な特権のセットに展開します。プロパティーが不足しているか空である場合、この同じ安全な特権のセットと同等になります。
システム管理者は、ゾーンの設定を行う際に細心の注意を払う必要があります。一部の特権は、ゾーンのブートに必須のためこの機構を介して除外できません。さらに、ゾーン内のプロセスがほかのゾーンのプロセスに過度に影響を与えてしまうため、ゾーンに対して付与することができない特権もあります。zoneadm(1M) は、ゾーンを「ブート」または「準備」しようとする際、無効な特権がゾーンの特権セットに追加されるまたはゾーンの特権セットから削除される場合を示しています。
特権の説明は、privileges(5) を参照してください。コマンド「ppriv -l」(ppriv(1) を参照) は、すべての Solaris 特権の一覧を生成します。ppriv で表示されるように特権を指定できます。privileges(5) では、特権がPRIV_privilege_name の形式で一覧表示されています。たとえば、このプロパティーで特権 sys_time を指定した場合、これは privileges(5) では PRIV_SYS_TIME として表示されています。
ゾーンのブランドタイプ。ブランドが割り当てられていないゾーンは「ネイティブ」ゾーンとして見なされます。
ゾーンは大域ゾーンと IP インスタンスを共有する (デフォルト) か、独自の排他的な IP インスタンスを持つことができます。
このプロパティーは「shared」および「exclusive」の値を取ります。
ファイルシステムをマウントする方法や場所などを決めるために必要な値。mount(1M)、mount(2)、fsck(1m)、および vfstab(4) を参照してください。
ディレクトリパス。
ネットワークインタフェースのネットワークアドレスと物理インタフェース名。ネットワークアドレスは、次のいずれかになります。
有効な IPv4 アドレス。後続の「/」とプレフィックス長は任意です。
有効な IPv6 アドレス。後続の「/」とプレフィックス長は必須です。
IPv4 アドレスに解決されるホスト名。
IPv6 アドレスに解決されるホスト名はサポートされていません。
物理インタフェース名はネットワークインタフェース名です。
ゾーンは排他的 IP か共有 IP のいずれかに構成できます。共有 IP ゾーンでは、物理プロパティーとアドレスプロパティーの両方を設定する必要があります。排他的 IP ゾーンでは、物理プロパティーを設定する必要があり、アドレスプロパティーは設定できません。
照合するデバイス名。
資源制御の名前、特権、制限、アクション。prctl(1) および rctladm(1M) を参照してください。rctl の値の望ましい設定方法は、特定の rctl に関連する大域的なプロパティー名を使用する方法です。
汎用属性の名前、型、および値。type は、int、uint、boolean、string のいずれかでなければなりません。値には、その型の値を指定する必要があります。uint は符号なしの (負でない) 整数です。
ゾーン内からアクセスする ZFS データセットの名前。zfs(1M) を参照してください。
このゾーンに割り当てられている公平配分スケジューラ (FSS) の配分数。このプロパティーは、zone.cpu-shares rctl を設定するための望ましい方法です。
このゾーンの、同時に使用できる LWP の最大数。このプロパティーは、zone.max-lwps rctl を設定するための望ましい方法です。
このゾーンに許容されるメッセージキュー ID の最大数。このプロパティーは、zone.max-msg-ids rctl を設定するための望ましい方法です。
このゾーンに許容されるセマフォー ID の最大数。このプロパティーは、zone.max-sem-ids rctl を設定するための望ましい方法です。
このゾーンに許容される共有メモリー ID の最大数。このプロパティーは、zone.max-shm-ids rctl を設定するための望ましい方法です。
このゾーンに許容される共有メモリーの最大容量。このプロパティーは、zone.max-shm-memory rctl を設定するための望ましい方法です。この数値には、K、M、G、T の単位を適用できます。たとえば、1M は 1 メガバイトです。
このゾーンが排他的に使用するために割り当てられるべき CPU の数。ゾーンは、起動時にプールおよびプロセッサのセットを作成します。資源プールの詳細については、pooladm(1M) および poolcfg(1m) を参照してください。ncpu プロパティーには、プロセッサ数を単一の値か範囲 (たとえば 1-4) で指定できます。「importance」プロパティーは省略可能であり、これが設定されると、poold(1M) によって使用される pset.importance の値を指定します。この資源を使用する場合、ゾーンに割り当てるのに十分な数の空きプロセッサがゾーンのブート時に必要であり、足りないとゾーンはブートしません。このゾーンに割り当てられたプロセッサを、大域ゾーンやほかのゾーンが使用することはできません。この資源には pool プロパティーとの互換性はありません。この資源の単一のインスタンスのみをゾーンに追加できます。
このゾーンが使用できるメモリーの上限。これらの各数値には、K、M、G、T の単位を適用できます。たとえば、1M は 1 メガバイトです。これらの各プロパティーは省略可能ですが、この資源を追加するときは少なくとも 1 つのプロパティーを設定する必要があります。この資源の単一のインスタンスのみをゾーンに追加できます。physical プロパティーは、このゾーンの max-rss を設定します。これは大域ゾーンで実行中の rcapd(1M) によって強制されます。swap プロパティーは、zone.max-swap rctl を設定するための望ましい方法です。locked プロパティーは、zone.max-locked-memory rctl を設定するための望ましい方法です。
次の表は、資源、プロパティー名、および型の一覧です。
resource property-name type (global) zonename simple (global) zonepath simple (global) autoboot simple (global) bootargs simple (global) pool simple (global) limitpriv simple (global) brand simple (global) ip-type simple (global) cpu-shares simple (global) max-lwps simple (global) max-msg-ids simple (global) max-sem-ids simple (global) max-shm-ids simple (global) max-shm-memory simple fs dir simple special simple raw simple type simple options list of simple inherit-pkg-dir dir simple net address simple physical simple device match simple rctl name simple value list of complex attr name simple type simple value simple dataset name simple dedicated-cpu ncpus simple or range importance simple capped-memory physical simple with scale swap simple with scale locked simple with scale |
この表について、いくつか説明を補足します。「rctl」資源タイプの複合プロパティー「value」は、名前/値の 3 つの組み合わせで構成されます。名前は「priv」、「limit」、および「action」で、それぞれ単純値を指定します。「attr」資源の「name」プロパティーの構文には、ゾーン名と同じような制限がありますが、相違点もあります。つまり、英数字で始める必要がありますが、英数字以外にハイフン (-)、下線 (_)、およびピリオド (.) も使用できます。「zone」で始まる属性名はシステム用に予約されています。また、「autoboot」大域プロパティーの値は、必ず「true」または「false」にしてください。
次のオプションを指定できます。
zonecfg コマンドファイルの名前を指定します。command_file は、zonecfg サブコマンドを 1 行に 1 つずつ記述するテキストファイルです。
ゾーンの名前を指定します。ゾーン名では、大文字と小文字が区別されます。ゾーン名は英数字で始める必要がありますが、英数字以外に下線 (_)、ハイフン (-)、およびピリオド (.) も使用できます。global という名前と SUNW で始まるすべての名前は、予約されているので使用できません。
add および select サブコマンドを使用して、特定の資源を選択できます。選択した時点で、有効範囲がその資源に変更されます。end および cancel サブコマンドを使用して、その資源の指定を終了することができます。指定を終了した時点で、有効範囲が大域に戻ります。add、remove、set などの一部のサブコマンドでは、有効範囲ごとにセマンティクスが異なります。
破壊的な動作や作業内容の消失を伴う可能性のあるサブコマンドには、強制的にその処理を実行するために -F オプションが用意されています。端末デバイスから入力しているときに、-F オプションを指定しないでそのようなコマンドを実行した場合は、オプションを指定するかどうかを適切なタイミングで確認されます。それ以外の状況で -F オプションを指定しないでそのようなコマンドを実行した場合、その操作は許可されず、診断メッセージが標準エラーに書き出されます。
サポートされているサブコマンドは次のとおりです。
大域有効範囲の場合は、特定の資源タイプの指定を開始します。有効範囲がその資源タイプに変わります。
資源固有の有効範囲では、指定された名前と値を持つプロパティーを追加します。プロパティー値の構文は、プロパティータイプによって異なります。通常は、単純値または単純値のリストを使用します。リストの場合は、角括弧で囲み、各値をコンマで区切ります ([foo,bar,baz])。「プロパティー」を参照してください。
資源の指定を終了し、有効範囲を大域に戻します。指定途中の資源をすべて破棄します。cancel は、資源の有効範囲だけに適用できます。
プロパティーの値を消去します。
現在の構成をメモリーから安定した記憶領域に確定します。zoneadm で構成を使用するには、その構成を確定する必要があります。メモリー内構成を確定するまでは、revert サブコマンドを使って変更を取り消すことができます。zonecfg セッションが終了するときには、commit 処理が自動的に実行されます。構成が正しく設定されていないと確定できないので、この処理では自動的に構成が確認されます。
指定されたゾーンのメモリー内構成を作成します。新しいゾーンの設定を開始するときは、create を使用します。このゾーンを安定した記憶領域に保存する方法については、commit を参照してください。
既存の構成を上書きする場合は、-F オプションを指定して、強制的に処理を実行します。template と同じ構成を作成する場合は、-t template オプションを指定します。template は設定済みゾーンの名前です。
新しいホストで切り離されたゾーンを設定できるようにするには、-a path オプションを使用します。path パラメータは、この新しいホスト上に移動されている、切り離されたゾーンのゾーンパスの位置です。切り離されたゾーンが設定されたあとは、「zoneadm attach」コマンド (zoneadm(1M) を参照) を使用してインストールするようにしてください。新しいゾーンのすべての検証は、ゾーンの設定中ではなく attach 処理中に行われます。
空の構成を作成する場合は、-b オプションを使用します。引数が指定されていない場合、create は Sun のデフォルト設定を適用します。
指定された構成をメモリー内および安定した記憶領域から削除します。この操作はすぐに実行されるので、確定する必要はありません。削除した構成を元に戻すことはできません。
この操作を強制的に実行する場合は、-F オプションを使用します。
資源の指定を終了します。このサブコマンドは、資源の有効範囲だけに適用できます。zonecfg は、現在の資源が完全に指定されていることを確認します。完全に指定されている場合は、メモリー内構成に追加され (メモリー内構成を安定した記憶領域に保存する方法については commit を参照)、有効範囲は大域に戻ります。指定が完全でない場合は、対応するエラーメッセージが通知されます。
標準出力に構成を出力します。output-file に構成を出力する場合は、-f オプションを使用します。このオプションを使用すると、コマンドファイルに適した形式で出力が作成されます。
一般ヘルプまたは特定項目のヘルプを出力します。
現在の構成に関する情報を表示します。resource-type が指定されている場合は、そのタイプの資源についてのみ情報を表示します。property-name 値ペアが指定されている場合は、その条件を満たしている資源の情報だけを表示します。資源の有効範囲では、引数が無視され、info は現在追加または変更されている資源の情報を表示します。
大域有効範囲では、指定された資源タイプを削除します。[] 構文は、0 個以上の項目を角括弧の中に指定できることを意味します。資源の単一インスタンスを削除するだけの場合、その資源が一意に識別されるように、プロパティーの名前と値ペアを十分に指定する必要があります。プロパティーの名前と値ペアを 1 つも指定しなかった場合、すべてのインスタンスが削除されます。2 つ以上のペアを指定した場合は、-F オプションを指定しないかぎり、確認を要求されます。
指定された資源タイプのうち、指定された property-name と property-value の対の条件に一致するものを、変更対象として選択します。このサブコマンドは、大域有効範囲だけに適用できます。有効範囲がその資源タイプに変わります。{} 構文は、1 つまたは複数の項目をこの中に指定できることを意味します。資源が一意に識別されるように、property-name property-value ペアを十分に指定する必要があります。
指定されたプロパティー名を、指定された値に設定します。プロパティーには、zonename や zonepath のような大域プロパティーと、資源固有のプロパティーがあります。このサブコマンドは、大域有効範囲と資源固有の有効範囲の両方で使用できます。
現在の構成が次の点で正しいかどうかを確認します。
各資源に必須プロパティーがすべて指定されていこと。
zonepath が指定されていること。
構成を、最後に確定されたときの状態に戻します。この操作を強制的に実行する場合は、-F オプションを使用します。
zonecfg のセッションを終了します。必要な場合は、確定操作が自動的に試行されます。EOF 文字を使用して zonecfg を終了することもできます。この操作を強制的に実行する場合は、-F オプションを使用します。
次の例では、zonecfg を使って新しいゾーンの環境を作成します。/usr/local は、大域ゾーンから /opt/local にマウントされるループバックです。/opt/sfw は、大域ゾーンからマウントされるループバックです。3 つの論理ネットワークインタフェースが追加されています。公平配分スケジューラ (fair-share scheduler、FSS) による CPU 共有の数に対する制限が、rctl 資源タイプを使ってゾーンに設定されています。この例では、特定の資源を変更するために選択する方法も示しています。
example# zonecfg -z myzone3 my-zone3: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:myzone3> create zonecfg:myzone3> set zonepath=/export/home/my-zone3 zonecfg:myzone3> set autoboot=true zonecfg:myzone3> add fs zonecfg:myzone3:fs> set dir=/usr/local zonecfg:myzone3:fs> set special=/opt/local zonecfg:myzone3:fs> set type=lofs zonecfg:myzone3:fs> add options [ro,nodevices] zonecfg:myzone3:fs> end zonecfg:myzone3> add fs zonecfg:myzone3:fs> set dir=/mnt zonecfg:myzone3:fs> set special=/dev/dsk/c0t0d0s7 zonecfg:myzone3:fs> set raw=/dev/rdsk/c0t0d0s7 zonecfg:myzone3:fs> set type=ufs zonecfg:myzone3:fs> end zonecfg:myzone3> add inherit-pkg-dir zonecfg:myzone3:inherit-pkg-dir> set dir=/opt/sfw zonecfg:myzone3:inherit-pkg-dir> end zonecfg:myzone3> add net zonecfg:myzone3:net> set address=192.168.0.1/24 zonecfg:myzone3:net> set physical=eri0 zonecfg:myzone3:net> end zonecfg:myzone3> add net zonecfg:myzone3:net> set address=192.168.1.2/24 zonecfg:myzone3:net> set physical=eri0 zonecfg:myzone3:net> end zonecfg:myzone3> add net zonecfg:myzone3:net> set address=192.168.2.3/24 zonecfg:myzone3:net> set physical=eri0 zonecfg:myzone3:net> end zonecfg:my-zone3> set cpu-shares=5 zonecfg:my-zone3> add capped-memory zonecfg:my-zone3:capped-memory> set physical=50m zonecfg:my-zone3:capped-memory> set swap=100m zonecfg:my-zone3:capped-memory> end zonecfg:myzone3> exit |
次の例では、新しい Linux ゾーンを作成します。
example# zonecfg -z lxzone lxzone: No such zone configured Use 'create' to begin configuring a new zone zonecfg:lxzone> create -t SUNWlx zonecfg:lxzone> set zonepath=/export/zones/lxzone zonecfg:lxzone> set autoboot=true zonecfg:lxzone> exit |
次の例では、bge1 および bge33000 に対する排他的なアクセスが与えられており、かつ IP 層において、システム上に構成されているほかのゾーンから隔離されているゾーンを作成します。
IP アドレスおよびルーティングは、新しいゾーンの中で sysidtool(1M) を使用して構成されます。
example# zonecfg -z excl excl: No such zone configured Use 'create' to begin configuring a new zone zonecfg:excl> create zonecfg:excl> set zonepath=/export/zones/excl zonecfg:excl> set ip-type=exclusive zonecfg:excl> add net zonecfg:excl:net> set physical=bge1 zonecfg:excl:net> end zonecfg:excl> add net zonecfg:excl:net> set physical=bge33000 zonecfg:excl:net> end zonecfg:excl> exit |
次の例は、既存のゾーンを既存の資源プールに関連付ける方法を示しています。
example# zonecfg -z myzone zonecfg:myzone> set pool=mypool zonecfg:myzone> exit |
資源プールの詳細については、pooladm(1M) および poolcfg(1m) を参照してください。
次の例は、既存のゾーンの名前を変更する方法を示したものです。
example# zonecfg -z myzone zonecfg:myzone> set zonename=myzone2 zonecfg:myzone2> exit |
次の例では、次回ゾーンのブート時に制限される既存のゾーンのプロセスの特権セットを変更する方法を示しています。この場合の特権セットは、システムの日付と時間を変更する特権に加え、通常ゾーンが持っている標準的な安全特権セットになります。
example# zonecfg -z myzone zonecfg:myzone> set limitpriv="default,sys_time" zonecfg:myzone2> exit |
次のコマンドでは、大域ゾーンの zone.cpu-shares プロパティーを設定します。
example# zonecfg -z global zonecfg:global> set cpu-shares=5 zonecfg:global> exit |
次のコマンドでは、zonecfg のパターンマッチングのサポートを説明しています。ゾーン flexlm で、次のように入力します。
zonecfg:flexlm> add device zonecfg:flexlm:device> set match="/dev/cua/a00[2-5]" zonecfg:flexlm:device> end |
大域ゾーンで、次のように入力します。
global# ls /dev/cua a a000 a001 a002 a003 a004 a005 a006 a007 b |
ゾーン flexlm で、次のように入力します。
flexlm# ls /dev/cua a002 a003 a004 a005 |
次の属性についての詳細は、マニュアルページの attributes(5) を参照してください。
属性タイプ |
属性値 |
---|---|
使用条件 |
SUNWzoneu |
インタフェースの安定性 |
不安定 |
ppriv(1), prctl(1), zlogin(1), mount(1M), pooladm(1M), poolcfg(1m), poold(1M), rcapd(1M), rctladm(1M), svcadm(1M), sysidtool(1M), zfs(1M), zoneadm(1M), priv_str_to_set(3C), vfstab(4), attributes(5), brands(5), fnmatch(5), lx(5), privileges(5), resource_controls(5), zones(5)
zonecfg で使用するすべての文字データは、US-ASCII エンコーディングにする必要があります。
名前 | 形式 | 機能説明 | オプション | サブコマンド | 使用例 | 終了ステータス | 属性 | 関連項目 | 注意事項