ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
マニュアルページセクション 1M: システム管理コマンド Oracle Solaris 11 Information Library (日本語) |
- ゾーン構成の設定
zonecfg -z zonename
zonecfg -z zonename subcommand
zonecfg -z zonename -f command_file
zonecfg help
zonecfg ユーティリティーは、ゾーンの構成を作成、変更、および一覧表示します。作成機能と変更機能は承認されたユーザーだけが使用でき、ルートの実効ユーザー ID でプロセスを実行する必要があります。それ以外の場合には、読み取り専用モードで実行されます。
ゾーン構成は、いくつかのリソースおよびプロパティーで構成されます。
ユーザーインタフェースを簡素化するために、zonecfg では有効範囲の概念が使用されます。デフォルトの有効範囲は大域です。
次の形式の zonecfg コマンドは、対話形式で使用されます。
zonecfg -z zonename subcommand
zonecfg 経由で変更されたパラメータは、稼働中のゾーンには影響しません。変更を適用するには、ゾーンをリブートする必要があります。
ゾーンの作成と変更のほか、zonecfg ユーティリティーは大域ゾーンのリソース管理設定を永続的に指定するためにも使用できます。
以降の文では、「rctl」を「resource control」(リソース制御) の略語として使用します。resource_controls(5) を参照してください。
すべてのゾーンに、それぞれ関連するブランドが構成されます。ブランドによって、ゾーン内で使用されるユーザーレベルの環境のみでなく、ゾーンがインストール、ブート、またはシャットダウンされるときのゾーンのさまざまな動作も決まります。ゾーンのインストールが完了したあとは、そのブランドを変更することはできません。デフォルトのブランドは、大域ゾーンにインストールされているディストリビューションによって決まります。ブランドの中には、zonecfg のすべてのプロパティーおよびリソースをサポートしないものがあります。各ブランドについての詳細は、ブランド固有のマニュアルページを参照してください。ブランドの概要については、brands(5) のマニュアルページを参照してください。
次のリソースタイプがサポートされています。
汎用属性。
CPU 使用率の制限。
物理メモリー、スワップメモリー、およびロックされたメモリーの制限。
ZFS データセット。
稼働している間、このゾーン専用に割り当てられるシステムプロセッサのサブセット。
デバイス。
ファイルシステム。
ネットワークインタフェース。
自動ネットワークインタフェース。
委任された管理者。
リソース制御。
Solaris の以前のリリースで使用されていた疎ルートゾーンの概念。この機能は、SVr4 パッケージングシステムと密接に関連しており、ディスク容量の節約と管理作業の軽減を目的としていました。
新しいパッケージングシステムである IPS では、ゾーンにインストールするパッケージをより柔軟に選択できるようになっています。したがって、ファイルシステムテクノロジが進歩したこと (特に ZFS 複製解除) も考慮すれば、疎ルートゾーンを削除することは非常に実用的です。IPS パッケージングとファイルシステムの進歩が組み合わされた結果、すべてのゾーンに疎ルートゾーンのメリットがもたらされています。
各リソースタイプには、1 つまたは複数のプロパティーが割り当てられます。また、いくつかの大域プロパティー (特定のリソースのプロパティーではなく、構成全体のプロパティー) も割り当てられます。
次のプロパティーがサポートされています。
zonename
zonepath
autoboot
bootargs
pool
limitpriv
brand
cpu-shares
hostid
max-lwps
max-msg-ids
max-processes
max-sem-ids
max-shm-ids
max-shm-memory
scheduling-class
fs-allowed
file-mac-profile
dir、special、raw、type、options
address、allowed-address、configure-allowed-address、physical、defrouter
linkname、lower-link、allowed-address、configure-allowed-address、defrouter、mac-address、mac-slot、mac-prefix、mtu、maxbw、priority、vlan-id、rxfanout、rxrings、txrings、link-protection、allowed-dhcp-cids
match
name、value
name、type、value
name、alias
ncpus、importance
physical、swap、locked
ncpus
user、auths
これらのプロパティー名のプロパティー値は、単純値、複合値、またはリスト値で指定します。許可されるタイプはプロパティーごとに異なります。単純値は文字列で、引用符で囲むこともできます。複合値は次の構文で指定します。
(<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 インスタンスを共有することができます。デフォルトゾーンテンプレート SYSdefault では、ip-type は exclusive に設定されます。追加で提供される SYSdefault-shared-ip テンプレートでは、ip-type は shared に設定されます。
このプロパティーは exclusive および shared の値を取ります。
ゾーンは、システムを統合しやすくするために、32 ビットのホスト識別子をエミュレートできます。ゾーンの hostid プロパティーはデフォルトで空になっており、ゾーンがホスト識別子をエミュレートしないことを意味しています。ゾーンのホスト識別子には、0 から FFFFFFFE の 16 進値を指定してください。接頭辞 0x または 0X は省略可能です。大文字と小文字の両方の 16 進数を使用できます。
ゾーン内にマウントできる追加ファイルシステムのコンマ区切りリスト (たとえば、ufs,pcfs)。デフォルトでは、hsfs(7FS) とネットワークファイルシステムだけがマウントできます。
このプロパティーは、add fs または add dataset によってゾーンにマウントされたファイルシステムには適用されません。
注意 - デフォルト以外のファイルシステムマウントを許可すると、ゾーン管理者が偽のファイルシステムイメージでシステムに損害を与えることが可能になるため、このような許可はサポートされていません。 |
読み取り専用ポリシーから除外されるファイルシステムの部分、つまりゾーンが書き込むことができるファイルシステムの部分を定義します。
このプロパティーでは現在、none、strict、fixed-configuration、および flexible-configuration の 4 つの値がサポートされています。
none を指定すると、このゾーンは通常の r/w ゾーンと全く同じになります。strict を指定すると、読み取り専用ポリシーに対する例外を許可しません。fixed-configuration を指定すると、構成ファイルが格納されているディレクトリを除いて、/var の内部とそれ以下にあるファイルへの書き込みが許可されます。
/var/ld /var/lib/postrun /var/pkg /var/spool/cron, /var/spool/postrun /var/svc/manifest /var/svc/profiles
flexible-configuration は fixed-configuration と同じですが、/etc 内のファイルへの書き込みも追加で許可されます。
ファイルシステムをマウントする方法や場所などを決めるために必要な値。mount(1M)、mount(2)、fsck(1M)、および vfstab(4) を参照してください。
net リソースは、ゾーンに対する物理ネットワークリソースの割り当てを表します。割り当ての前に、リソースは大域ゾーンに存在する必要があります。
ネットワークインタフェースのネットワークアドレスと物理インタフェース名。ネットワークアドレスは、次のいずれかになります。
有効な IPv4 アドレス。後続の「/」とプレフィックス長は任意です。
有効な IPv6 アドレス。後続の「/」とプレフィックス長は必須です。
IPv4 アドレスに解決されるホスト名。
IPv6 アドレスに解決されるホスト名はサポートされていません。
物理インタフェース名はネットワークインタフェース名です。
省略可能なデフォルトルートの値は、ネットワークアドレスと同様に指定しますが、後ろに / (スラッシュ) とネットワーク接頭辞長を決して付けないでください。defrouter 機能を正しく使用できるようにするには、このプロパティーを使用するゾーンを、大域ゾーンが常駐するサブネットとは異なるサブネット上に配置してください。また、異なる defrouter 設定を使用する各ゾーン (あるいはゾーンセット) を異なるサブネット上に配置してください。
ゾーンは排他的 IP か共有 IP のいずれかに構成できます。共有 IP ゾーンでは、物理プロパティーとアドレスプロパティーの両方を設定する必要があります。デフォルトルートの設定は省略可能です。物理プロパティーで指定したインタフェースは、非大域ゾーンをブートする前に大域ゾーンに plumb する必要があります。ただし、そのインタフェースが大域ゾーンで使用されない場合は、そのインタフェースを大域ゾーンで down に構成するようにしてください。そのインタフェースのデフォルトルートがここで指定されるはずです。allowed-address プロパティーは共有 IP ゾーン用には設定できません。
排他的 IP ゾーンでは、physical プロパティーを設定する必要があり、address プロパティーは設定してはいけません。また、排他的 IP ゾーンが使用できる IP アドレスのセットは、allowed-address プロパティーを指定して制限できます。allowed-address が指定されていない場合、排他的 IP ゾーンは、関連付けられた physical インタフェース上の任意の IP アドレスをネットリソースに使用できます。そうではなく、allowed-address が指定されている場合、排他的 IP ゾーンは、allowed-address リストにない IP アドレスを physical アドレスに使用できません。configure-allowed-address が true に設定されている場合、allowed-address は、インストール後の初期ブート時にインタフェースに永続的に構成されます。これが false に設定されている場合、allowed-address はゾーンのブート時に構成されません。デフォルトでは、allowed-address が指定されると configure-allowed-address は true に設定されます。さらに、allowed-address リストが入力されている場合は、defrouter プロパティーも必要に応じて指定できます。ただし、defrouter 値が指定されて configure-allowed-address が false に設定された場合、defrouter 値は無視されて、該当する警告メッセージが表示されます。physical プロパティーに指定されたインタフェースを大域ゾーンで使用してはいけません。allowed-address とデフォルトルーターが zonecfg によって指定された場合、これらは、非大域排他的 IP ゾーンで ipadm(1M) によってインタフェースが有効にされているとき (通常はゾーンの起動中) に、そのインタフェースに適用されます。非大域排他的 IP ゾーンは、ほかのどのアドレスをそのインタフェースに適用することもできなくなります。また、指定された IP バージョンの別のソースアドレスを持つパケットを送信することもできなくなります。zonecfg によって設定されたデフォルトのルーターは、-p フラグと route(1M) を使用して非大域排他的 IP ゾーン内から恒久的に削除することはできません。
複数の排他的 IP ゾーン間で 1 つのデータリンクを共有することはできません。
anet リソースは、排他的 IP ゾーンについてのネットワークリソースの自動作成を表します。zonecfg がデフォルトの SYSdefault テンプレートを使用してゾーンを作成すると、次のプロパティーを持つ anet リソースがゾーン構成に自動的に入ります。
linkname=net0 lower-link=auto mac-address=random link-protection=mac-nospoof
そのようなゾーンがブートすると、lower-link (次を参照) が自動的に決定され、そのリンク上にゾーンの一時的な VNIC が自動的に作成されます。ゾーンが停止すると、lower-link および VNIC は削除されます。
サポートされるプロパティーについては、下記を参照してください。これらのプロパティーはすべてオプションです。大域ゾーンだけが、自動的に作成された VNIC またはそのプロパティーを変更できます。zonecfg に設定されたプロパティーを VNIC の作成時に VNIC に割り当てることができない場合、ゾーンはブートに失敗します。
自動作成される VNIC の名前を指定します。デフォルトでは、このプロパティーは、netN という形式の (ゾーンの) 最初に利用可能な名前に自動的に設定されます。ここで、N は負でない整数です。たとえば、net0、net1 のようになります。info サブコマンドによって、自動的に選択される linkname が表示されます。
大域ゾーンを含む複数のゾーンが、同じ名前のリンクを同時に持つことができます。
VNIC が作成されるリンクを指定します。このプロパティーのデフォルト値は auto です。管理者は、anet リソースを追加するとき、値を明示的に指定できます。リンクには、dladm create-vnic の -l オプションの引数として受け入れられるすべてのリンクが使用できます (dladm(1M) を参照してください)。このプロパティーが linkname (auto 以外) に設定され、そのリンクが存在しない場合、ゾーンはブートに失敗します。auto に設定されると、zoneadmd(1M) デーモンは、ゾーンがブートするたびに、VNIC が作成されるリンクを自動的に選択します。リンクは次の発見的方法を使用して選択されます。
リンク状態が up の最初の物理データリンク。
up のものがない場合、net0 という名前のデータリンクが使用されます。
前述の両方が満たされない場合、ゾーンはブートに失敗します。
net リソースの排他的 IP ゾーンについての allowed-address プロパティーの説明を参照してください。
net リソースの排他的 IP ゾーンについての configure-allowed-address プロパティーの説明を参照してください。
net リソースの排他的 IP ゾーンについての defrouter プロパティーの説明を参照してください。
指定された値またはキーワードに基づいて VNIC の MAC アドレスを設定します。値がキーワードでない場合は、ユニキャスト MAC アドレスとして解釈されます。サポートされるキーワードは次のとおりです。
factory: ファクトリ MAC アドレスを VNIC に割り当てます。ファクトリ MAC アドレスが要求された場合、mac-slot プロパティーを使用して MAC アドレススロット識別子を指定できます。そうでない場合、次に使用可能なファクトリ MAC アドレスが使用されます。
random: ランダムな MAC アドレスを VNIC に割り当てます。mac-prefix プロパティーを使用して接頭辞を指定します。そうでない場合、ローカルビットが設定された有効な IEEE OUI で構成されたデフォルトの接頭辞が使用されます。これがデフォルト値です。
auto: 最初にファクトリ MAC アドレスの使用を試みます。どれも使用できない場合は、ランダムな MAC アドレスを割り当てます。
ランダムな MAC アドレスが選択された場合、生成されたアドレスは、ゾーンのブート前後およびゾーンの切り離しと接続の前後で保持されます。これにより、ゾーンは安定したクライアント ID を維持することによって DHCP リースを保持できるほか、安定した MAC アドレスを持つことによるほかの利点を活用することができます。
ランダムな MAC アドレスが要求された場合の MAC アドレス接頭辞を指定します。それ以外の場合、このプロパティーは無視されます。
ファクトリ MAC アドレスが要求された場合の MAC アドレススロット識別子を指定します。それ以外の場合、このプロパティーは無視されます。
VNIC の最大転送単位 (バイト)。dladm(1M) の mtu プロパティーを参照してください。
VNIC の全二重帯域幅を指定します。dladm(1M) の maxbw プロパティーを参照してください。デフォルトでは、VNIC は lower-link に設定された maxbw を使用し、何も設定されない場合は帯域幅制限はありません。
VNIC の相対的な優先順位を指定します。サポートされる値とデフォルトについては、dladm(1M) の priority プロパティーを参照してください。
この VNIC の VLAN タグを使用可能にして、VLAN タグの ID を指定します。デフォルト値は存在しません。つまり、このプロパティーを設定しないと、VNIC はどの VLAN にも参加しません。
受信側ファンアウトスレッドの数を指定します。dladm(1M) の説明を参照してください。
VNIC の受信リングを指定します。サポートされる値とデフォルトについては、dladm(1M) の rxrings プロパティーを参照してください。
VNIC の送信リングを指定します。サポートされる値とデフォルトについては、dladm(1M) の txrings プロパティーを参照してください。
コンマ区切り値を使用して、1 つ以上のリンク保護のタイプを使用可能にします。サポートされる値については、dladm(1M) の protection プロパティーを参照してください。このデフォルト値は mac-nospoof です。
ip-nospoof をこのプロパティーに追加しても、allowed-address も設定しないかぎり効果はありません。allowed-address を設定すると、ip-nospoof が link-protection のセットに暗黙に追加され、allowed-address をクリアするとこれが削除されます。
このプロパティーを設定すると、VNIC の dhcp-nospoof が有効になります。詳細は、dladm(1M) を参照してください。
照合するデバイス名。これは、照合するパターンにすることも絶対パス名にすることもできます。デバイスリソースと別名を付けたデータセットは、/dev/zvol 内で名前空間の競合が発生する可能性があります。dev(7FS) を参照してください。
注 - 一般に、ゾーンにデバイスを追加すると、システムのセキュリティーが損なわれる可能性があります。「注意事項」を参照してください。
リソース制御の名前、特権、制限、アクション。prctl(1) および rctladm(1M) を参照してください。rctl の値の望ましい設定方法は、特定の rctl に関連する大域的なプロパティー名を使用する方法です。
汎用属性の名前、型、および値。type は、int、uint、boolean、string のいずれかでなければなりません。値には、その型の値を指定する必要があります。uint は符号なしの (負でない) 整数です。
ゾーン内からアクセスする ZFS データセットの名前。zfs(1M) を参照してください。各データセットがゾーン内の仮想 ZFS プールとして表示されるように、データセットに別名が付けられます。別名はこの仮想プールの名前です。ZFS プール名に適用される名前制限と、その結果、データセットの別名の値にも適用される名前制限については、zpool(1M) を参照してください。別名 rpool はゾーンの rpool データセットから予約されています。別名を付けたデータセットとデバイスリソースは、/dev/zvol 内で名前空間の競合が発生する可能性があります。dev(7FS) を参照してください。
このゾーンに割り当てられている公平配分スケジューラ (FSS) の配分数。このプロパティーには dedicated-cpu リソースとの互換性はありません。このプロパティーは、zone.cpu-shares rctl を設定するための望ましい方法です。
このゾーンの、同時に使用できる LWP の最大数。このプロパティーは、zone.max-lwps rctl を設定するための望ましい方法です。
このゾーンに許容されるメッセージキュー ID の最大数。このプロパティーは、zone.max-msg-ids rctl を設定するための望ましい方法です。
このゾーンの、同時に使用できるプロセステーブルスロットの最大数。このプロパティーは、zone.max-processes rctl を設定するための望ましい方法です。このプロパティーを設定すると、max-lwps プロパティーが明示的に設定されていないかぎり、max-lwps プロパティーの値がプロセススロット数の 10 倍の数に暗黙的に設定されます。
このゾーンに許容されるセマフォー ID の最大数。このプロパティーは、zone.max-sem-ids rctl を設定するための望ましい方法です。
このゾーンに許容される共有メモリー ID の最大数。このプロパティーは、zone.max-shm-ids rctl を設定するための望ましい方法です。
このゾーンに許容される共有メモリーの最大容量。このプロパティーは、zone.max-shm-memory rctl を設定するための望ましい方法です。この数値には、K、M、G、T の単位を適用できます。たとえば、1M は 1 メガバイトです。
ゾーンで実行されているプロセスに使用するスケジューリングクラスを指定します。このプロパティーを指定しないと、スケジューリングクラスは次のように確立されます。
cpu-shares プロパティーまたは同等の rctl が設定されている場合、スケジューリングクラス FSS が使用されます。
cpu-shares も同等の rctl も設定されず、ゾーンのプールプロパティーがデフォルトのスケジューリングクラスを持つプールを参照する場合、そのクラスが使用されます。
その他の条件下では、システムのデフォルトのスケジューリングクラスが使用されます。
このゾーンが排他的に使用するために割り当てられるべき CPU の数。ゾーンは、ブート時にプールおよびプロセッサのセットを作成します。リソースプールの詳細については、pooladm(1M) および poolcfg(1M) を参照してください。ncpu プロパティーには、プロセッサ数を単一の値か範囲 (たとえば 1-4) で指定できます。importance プロパティーは省略可能であり、これが設定されると、poold(1M) によって使用される pset.importance の値を指定します。このリソースを使用する場合、ゾーンに割り当てるのに十分な数の空きプロセッサがゾーンのブート時に必要であり、足りないとゾーンはブートしません。このゾーンに割り当てられたプロセッサを、大域ゾーンやほかのゾーンが使用することはできません。このリソースには、pool および cpu-shares プロパティーとの互換性はありません。このリソースの単一のインスタンスのみをゾーンに追加できます。
このゾーンが使用できるメモリーの上限。これらの各数値には、K、M、G、T の単位を適用できます。たとえば、1M は 1 メガバイトです。これらの各プロパティーは省略可能ですが、このリソースを追加するときは少なくとも 1 つのプロパティーを設定する必要があります。このリソースの単一のインスタンスのみをゾーンに追加できます。physical プロパティーは、このゾーンの max-rss を設定します。これは大域ゾーンで実行中の rcapd(1M) によって強制されます。swap プロパティーは、zone.max-swap rctl を設定するための望ましい方法です。locked プロパティーは、zone.max-locked-memory rctl を設定するための望ましい方法です。
ゾーンで使用できる CPU 時間に対して制限を設定します。使用される単位は、ゾーン内のすべてのユーザースレッドが使用できる 1 つの CPU の割合 (パーセント) に換算され、小数 (たとえば .75) または帯小数 (整数と小数が混在した数、たとえば 1.25) で表現されます。ncpu 値 1 は CPU の割合が 100% であることを意味し、値 1.25 は 125%、.75 は 75% (以下同様) を意味します。上限が設けられたゾーン内のプロジェクトに独自の上限がある場合は、最小値が優先されます。
capped-cpu プロパティーは、zone.cpu-cap リソース制御の別名であり、zone.cpu-cap リソース制御に関連しています。resource_controls(5) を参照してください。
ゾーン管理の承認を、指定されたユーザーまたは役割に委任します。ユーザーは有効なローカルアカウントに対応している必要があります。auths に使用できる値は次のとおりです。
このゾーンへの zlogin(1) の使用の認証を許可します。
構成済みゾーンの通常の管理を許可します。
新しいゾーンのクローンを作成するソースとして、指定されたゾーンの使用を許可します。
次の表は、リソース、プロパティー名、および型の一覧です。
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) hostid 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 (global) scheduling-class simple (global) fs-allowed list of simple fs dir simple special simple raw simple type simple options list of simple net address simple allowed-address list of simple configure-allowed-address simple defrouter list of simple physical simple anet linkname simple lower-link simple allowed-address list of simple configure-allowed-address simple defrouter list of simple mac-address simple mac-slot simple mac-prefix simple mtu simple maxbw simple priority simple vlan-id simple rxfanout simple rxrings simple txrings simple link-protection list of simple allowed-dhcp-cids list of simple device match simple rctl name simple value list of complex attr name simple type simple value simple dataset name simple alias simple dedicated-cpu ncpus simple or range importance simple capped-memory physical simple with scale swap simple with scale locked simple with scale capped-cpu ncpus simple admin user simple auths list of simple
この表について、いくつか説明を補足します。「rctl」リソースタイプの複合プロパティー「value」は、名前/値の 3 つの組み合わせで構成されます。名前は「priv」、「limit」、および「action」で、それぞれ単純値を指定します。「attr」リソースの「name」プロパティーの構文には、ゾーン名と同じような制限がありますが、相違点もあります。 つまり、英数字で始める必要がありますが、英数字以外にハイフン (-)、下線 (_)、およびピリオド (.) も使用できます。「zone」で始まる属性名はシステム用に予約されています。また、「autoboot」大域プロパティーの値は、必ず「true」または「false」にしてください。
カーネル統計 (kstat(3KSTAT)) モジュール caps を使用して、システムは上限が設定されたすべてのプロジェクトおよびゾーンの情報を維持管理します。この情報を入手するには、kstat モジュール名として caps を指定して、カーネル統計 (kstat(3KSTAT)) を読み取ります。次のコマンドは、アクティブなすべての CPU キャップのカーネル統計を表示します。
# kstat caps::'/cpucaps/'
ゾーン内で実行されている kstat(1M) コマンドは、そのゾーンとそのゾーン内のプロジェクトに関連する CPU キャップしか表示しません。「使用例」を参照してください。
kstat(1M) で使用するキャップ関連の引数を次に示します。
kstat モジュール。
kstat クラス。kstat -c オプションとともに使用します。
kstat 名。kstat -n オプションとともに使用します。id はプロジェクトまたはゾーンの識別子です。
次のフィールドは、すべての CPU キャップの統計情報を要求する kstat(1M) コマンドに応答して表示されます。
kstat のこの使用法では、このフィールドには値 caps が入ります。
前述のとおり、cpucaps_project_id または cpucaps_zone_id
キャップを上回って費やされた合計時間 (秒)。
キャップを下回って費やされた合計時間 (秒)。
監視された最大 CPU 使用率。
待機キューに入っているスレッドの数。
上限が設けられたプロジェクトまたはゾーンに属しているすべてのスレッドの現在の合計 CPU 使用率。1 つの CPU の割合 (パーセント) で表されます。
キャップ値。1 つの CPU の割合 (パーセント) で表されます。
統計情報が表示されるゾーンの名前。
kstat コマンドの出力例については、「使用例」を参照してください。
次のオプションがサポートされています。
zonecfg コマンドファイルの名前を指定します。command_file は、zonecfg サブコマンドを 1 行に 1 つずつ記述するテキストファイルです。
ゾーンの名前を指定します。ゾーン名では、大文字と小文字が区別されます。ゾーン名は英数字で始める必要がありますが、英数字以外に下線 (_)、ハイフン (-)、およびピリオド (.) も使用できます。global という名前と SYS で始まるすべての名前は、予約されているので使用できません。
add および select サブコマンドを使用して、特定のリソースを選択できます。選択した時点で、有効範囲がそのリソースに変更されます。end および cancel サブコマンドを使用して、そのリソースの指定を終了することができます。指定を終了した時点で、有効範囲が大域に戻ります。add、remove、set などの一部のサブコマンドでは、有効範囲ごとにセマンティクスが異なります。
zonecfg は、サブコマンドをセミコロンで区切ったリストをサポートします。例:
# zonecfg -z myzone "add net; set physical=myvnic; end"
破壊的な動作や作業内容の消失を伴う可能性のあるサブコマンドには、強制的にその処理を実行するために -F オプションが用意されています。端末デバイスから入力しているときに、-F オプションを指定しないでそのようなコマンドを実行した場合は、オプションを指定するかどうかを適切なタイミングで確認されます。それ以外の状況で -F オプションを指定しないでそのようなコマンドを実行した場合、その操作は許可されず、診断メッセージが標準エラーに書き込まれます。
サポートされているサブコマンドは次のとおりです。
大域有効範囲の場合は、特定のリソースタイプの指定を開始します。有効範囲がそのリソースタイプに変わります。
リソース固有の有効範囲では、指定された名前と値を持つプロパティーを追加します。プロパティー値の構文は、プロパティータイプによって異なります。通常は、単純値または単純値のリストを使用します。リストの場合は、角括弧で囲み、各値をコンマで区切ります ([foo,bar,baz])。「プロパティー」を参照してください。
リソースの指定を終了し、有効範囲を大域に戻します。指定途中のリソースをすべて破棄します。cancel は、リソースの有効範囲だけに適用できます。
プロパティーの値を消去します。
現在の構成をメモリーから安定した記憶領域に確定します。zoneadm で構成を使用するには、その構成を確定する必要があります。メモリー内構成を確定するまでは、revert サブコマンドを使って変更を取り消すことができます。zonecfg セッションが終了するときには、commit 処理が自動的に実行されます。構成が正しく設定されていないと確定できないので、この処理では自動的に構成が確認されます。
指定されたゾーンのメモリー内構成を作成します。新しいゾーンの構成を開始するときは、create を使用します。このゾーンを安定した記憶領域に保存する方法については、commit を参照してください。
既存の構成を上書きする場合は、-F オプションを指定して、強制的に処理を実行します。template と同じ構成を作成する場合は、-t template オプションを指定します。template は設定済みゾーンの名前です。
create はデフォルトテンプレート SYSdefault を使用します。デフォルトテンプレートは、svc:/system/zones:default サービスの default_template SMF プロパティーを使用することによって、システム全体ベースで変更できます。管理者は、-t (特定のテンプレートを使用) または -b (ブランクテンプレートを使用) を使用することによって、このゾーンのデフォルトを置き換えることができます。
新しいホストで切り離されたゾーンを構成できるようにするには、-a path オプションを使用します。path パラメータは、この新しいホスト上に移動されている、切り離されたゾーンのゾーンパスの位置です。切り離されたゾーンが構成されたあとは、「zoneadm attach」コマンド (zoneadm(1M) を参照) を使用してインストールするようにしてください。新しいゾーンのすべての検証は、ゾーンの構成中ではなく attach 処理中に行われます。
空の構成を作成する場合は、-b オプションを使用します。引数が指定されていない場合、create は Oracle Sun のデフォルト設定を適用します。
指定された構成をメモリー内および安定した記憶領域から削除します。この操作はすぐに実行されるので、確定する必要はありません。削除した構成を元に戻すことはできません。
この操作を強制的に実行する場合は、-F オプションを使用します。
リソースの指定を終了します。このサブコマンドは、リソースの有効範囲だけに適用できます。zonecfg は、現在のリソースが完全に指定されていることを確認します。完全に指定されている場合は、メモリー内構成に追加され (メモリー内構成を安定した記憶領域に保存する方法については commit を参照)、有効範囲は大域に戻ります。指定が完全でない場合は、対応するエラーメッセージが通知されます。
標準出力に構成を出力します。output-file に構成を出力する場合は、-f オプションを使用します。このオプションを使用すると、コマンドファイルに適した形式で出力が作成されます。
一般ヘルプまたは特定項目のヘルプを出力します。
現在の構成に関する情報を表示します。resource-type が指定されている場合は、そのタイプのリソースについてのみ情報を表示します。property-name 値ペアが指定されている場合は、その条件を満たしているリソースの情報だけを表示します。リソースの有効範囲では、引数が無視され、info は現在追加または変更されているリソースの情報を表示します。
大域有効範囲では、指定されたリソースタイプを削除します。[] 構文は、0 個以上の項目を角括弧の中に指定できることを意味します。リソースの単一インスタンスを削除するだけの場合、そのリソースが一意に識別されるように、プロパティーの名前と値ペアを十分に指定する必要があります。プロパティーの名前と値の対をまったく指定しないと、すべてのインスタンスが削除されます。2 つ以上のペアを指定した場合は、-F オプションを指定しないかぎり、確認を要求されます。
指定されたリソースタイプのうち、指定された property-name と property-value の対の条件に一致するものを、変更対象として選択します。このサブコマンドは、大域有効範囲だけに適用できます。有効範囲がそのリソースタイプに変わります。{} 構文は、1 つまたは複数の項目をこの中に指定できることを意味します。リソースが一意に識別されるように、property-name property-value ペアを十分に指定する必要があります。
指定されたプロパティー名を、指定された値に設定します。プロパティーには、zonename や zonepath のような大域プロパティーと、リソース固有のプロパティーがあります。このサブコマンドは、大域有効範囲とリソース固有の有効範囲の両方で使用できます。
現在の構成が正しいかどうかを確認します。
各リソースに必須プロパティーがすべて指定されていこと。
zonepath が指定されていること。
-v オプションが指定された場合、デバイスリソース内で指定されたデバイスが、別名が付けられたデータセット内で作成された ZFS ボリュームと競合して、ZFS ボリュームを非表示にする可能性があるときに、警告が発行されます。dev(7FS) を参照してください。
構成を、最後に確定されたときの状態に戻します。この操作を強制的に実行する場合は、-F オプションを使用します。
zonecfg のセッションを終了します。必要な場合は、確定操作が自動的に試行されます。EOF 文字を使用して zonecfg を終了することもできます。この操作を強制的に実行する場合は、-F オプションを使用します。
例 1 新しいゾーンの環境を作成する
次の例では、zonecfg を使って新しいゾーンの環境を作成します。/usr/local は、大域ゾーンから /opt/local にマウントされるループバックです。/opt/sfw は、大域ゾーンからマウントされるループバックで、nxge0 上の VNIC が 3 つの IP アドレスとともにこのゾーンに追加され、ゾーンに対する公平配分スケジューラ (FSS) の CPU 共有の数に関する制限が、rctl リソースタイプを使用して設定されます。この例では、所定のリソースを変更するために選択する方法も示されています。このケースでは、zonecfg によって自動的に作成される anet リソースを選択することによって実行します。
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 fs zonecfg:myzone3:fs> set dir=/opt/sfw zonecfg:myzone3:fs> set special=/opt/sfw zonecfg:myzone3:fs> set type=lofs zonecfg:myzone3:fs> add options [ro,nodevices] zonecfg:myzone3:fs> end zonecfg:myzone3> select anet linkname=net0 zonecfg:myzone3:anet> set lower-link=nxge0 zonecfg:myzone3:anet> set allowed-address="192.168.0.1/24,192.168.1.2/\ 24,192.168.2.3/24" zonecfg:myzone3:anet> 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
例 2 排他的 IP ゾーンを作成する
次の例では、net0 という名前の VNIC が割り当てられるゾーンを作成します。VNIC が作成されるリンクは自動的に決定されます。IP アドレスおよびルーティングは、新しいゾーンの中で ipadm(1M) を使用して構成されます。
example# zonecfg -z excl zonecfg:excl> create zonecfg:excl> set zonepath=/export/zones/excl zonecfg:excl> exit
例 3 共有 IP ゾーンを作成する
次の例では、IP スタックを大域ゾーンと共有し、単一の IP アドレスとデフォルトルーターが割り当てられるゾーンを作成します。
example# zonecfg -b -z shared zonecfg:shared> create zonecfg:shared> set zonepath=/export/zones/shared zonecfg:shared> set ip-type=shared zonecfg:shared> add net zonecfg:shared:net> set physical=nge0 zonecfg:shared:net> set address=192.168.0.3/24 zonecfg:shared:net> set defrouter=192.168.0.1 zonecfg:shared:net> end zonecfg:shared> exit
例 4 ゾーンをリソースプールに関連付ける
次の例は、既存のゾーンを既存のリソースプールに関連付ける方法を示しています。
example# zonecfg -z myzone zonecfg:myzone> set pool=mypool zonecfg:myzone> exit
リソースプールの詳細については、pooladm(1M) および poolcfg(1M) を参照してください。
例 5 ゾーンの名前を変更する
次の例は、既存のゾーンの名前を変更する方法を示したものです。
example# zonecfg -z myzone zonecfg:myzone> set zonename=myzone2 zonecfg:myzone2> exit
例 6 ゾーンの特権セットを変更する
次の例では、次回ゾーンのブート時に制限される既存のゾーンのプロセスの特権セットを変更する方法を示しています。この場合の特権セットは、システムの日付と時間を変更する特権に加え、通常ゾーンが持っている標準的な安全特権セットになります。
example# zonecfg -z myzone zonecfg:myzone> set limitpriv="default,sys_time" zonecfg:myzone2> exit
例 7 大域ゾーンの zone.cpu-shares プロパティーを設定する
次のコマンドでは、大域ゾーンの zone.cpu-shares プロパティーを設定します。
example# zonecfg -z global zonecfg:global> set cpu-shares=5 zonecfg:global> exit
例 8 パターンマッチングを使用する
次のコマンドでは、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
例 9 ゾーンのキャップを 3 つの CPU に設定する
次のシーケンスでは、zonecfg コマンドを使ってゾーンの CPU キャップを 3 つの CPU に設定します。
zonecfg:myzone> add capped-cpu zonecfg:myzone>capped-cpu> set ncpus=3 zonecfg:myzone>capped-cpu>capped-cpu> end
前のシーケンスでは capped-cpu プロパティーを使用し、次のシーケンスでは zone.cpu-cap リソース制御を使用していますが、これらのシーケンスは同等です。
zonecfg:myzone> add rctl zonecfg:myzone:rctl> set name=zone.cpu-cap zonecfg:myzone:rctl> add value (priv=privileged,limit=300,action=none) zonecfg:myzone:rctl> end
例 10 kstat を使って CPU キャップを監視する
次のコマンドは、すべての CPU キャップに関する情報を表示します。
# kstat -n /cpucaps/ module: caps instance: 0 name: cpucaps_project_0 class: project_caps above_sec 0 below_sec 2157 crtime 821.048183159 maxusage 2 nwait 0 snaptime 235885.637253027 usage 0 value 18446743151372347932 zonename global module: caps instance: 0 name: cpucaps_project_1 class: project_caps above_sec 0 below_sec 0 crtime 225339.192787265 maxusage 5 nwait 0 snaptime 235885.637591677 usage 5 value 18446743151372347932 zonename global module: caps instance: 0 name: cpucaps_project_201 class: project_caps above_sec 0 below_sec 235105 crtime 780.37961782 maxusage 100 nwait 0 snaptime 235885.637789687 usage 43 value 100 zonename global module: caps instance: 0 name: cpucaps_project_202 class: project_caps above_sec 0 below_sec 235094 crtime 791.72983782 maxusage 100 nwait 0 snaptime 235885.637967512 usage 48 value 100 zonename global module: caps instance: 0 name: cpucaps_project_203 class: project_caps above_sec 0 below_sec 235034 crtime 852.104401481 maxusage 75 nwait 0 snaptime 235885.638144304 usage 47 value 100 zonename global module: caps instance: 0 name: cpucaps_project_86710 class: project_caps above_sec 22 below_sec 235166 crtime 698.441717859 maxusage 101 nwait 0 snaptime 235885.638319871 usage 54 value 100 zonename global module: caps instance: 0 name: cpucaps_zone_0 class: zone_caps above_sec 100733 below_sec 134332 crtime 821.048177123 maxusage 207 nwait 2 snaptime 235885.638497731 usage 199 value 200 zonename global module: caps instance: 1 name: cpucaps_project_0 class: project_caps above_sec 0 below_sec 0 crtime 225360.256448422 maxusage 7 nwait 0 snaptime 235885.638714404 usage 7 value 18446743151372347932 zonename test_001 module: caps instance: 1 name: cpucaps_zone_1 class: zone_caps above_sec 2 below_sec 10524 crtime 225360.256440278 maxusage 106 nwait 0 snaptime 235885.638896443 usage 7 value 100 zonename test_001
例 11 特定のゾーンまたはプロジェクトの CPU キャップを表示する
kstat -c および -i オプションを使用すると、次に示すように特定のゾーンまたはプロジェクトの CPU キャップを表示できます。最初のコマンドは特定のプロジェクトを対象とした表示を行い、2 番目のコマンドはゾーン 1 内部の同じプロジェクトを対象とした表示を行います。
# kstat -c project_caps # kstat -c project_caps -i 1
例 12 ゾーン管理権を委任する
次の例は、現在のゾーンの管理権を役割に割り当てる方法を示しています。
example# zonecfg -z myzone zonecfg:myzone> add admin zonecfg:myzone:admin> set user=zadmin zonecfg:myzone:admin> set auths=login,manage zonecfg:myzone:admin> end zonecfg:myzone> commit
これらのコマンドを実行すると、RBAC user_attr(4) データベース内で次のようにエントリが更新されます。
zadmin::::type=role;\ auths=solaris.zone.login/myzone,solaris.zone.manage/myzone;profiles=\ Zone Management
例 13 デフォルト以外のプロパティーを使用して排他的 IP ゾーンを作成する
次の例はゾーンを作成し、mylink0 上に指定の MAC アドレスを持ち、最大帯域幅が 100Mbps、高い優先順位、RX 側に専用ハードウェアリング、TX 側に専用ハードウェアリングなし (つまりソフトウェアベース)、および VLAN ID が 2 の VNIC が自動的に作成されます。
example# zonecfg -b -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> add anet zonecfg:excl:anet> set linkname=mynic0 zonecfg:excl:anet> set lower-link=mylink0 zonecfg:excl:anet> set mac-address=8:0:20:fe:4e:b8 zonecfg:excl:anet> set maxbw=100M zonecfg:excl:anet> set priority=high zonecfg:excl:anet> set vlan-id=2 zonecfg:excl:anet> set rxrings=hw zonecfg:excl:anet> set txrings=sw zonecfg:excl:anet> end zonecfg:excl> exit
例 14 読み取り専用ゾーンを作成する
次の例では、ルートファイルシステムがゾーンによる変更から保護される新しいゾーンを作成します。/var 内のファイルは、fixed-configuration プロファイルが適用されるため、書き込み可能です。
example# zonecfg -z rozone rozone: No such zone configured Use 'create' to begin configuring a new zone zonecfg:rozone> create zonecfg:rozone> set brand=solaris zonecfg:rozone> set zonepath=/export/zones/rozone zonecfg:rozone> set autoboot=true zonecfg:rozone> set file-mac-profile=fixed-configuration zonecfg:rozone> set ip-type=exclusive zonecfg:rozone> add net zonecfg:rozone:net> set physical=vnic0 zonecfg:rozone:net> end zonecfg:rozone> exit
次の終了値が返されます。
正常終了。
エラーが発生しました。
無効な使用法。
属性についての詳細は、attributes(5) を参照してください。
|
ppriv(1), prctl(1), zlogin(1), dladm(1M), ipadm(1M), kstat(1M), mount(1M), pooladm(1M), poolcfg(1M), poold(1M), rcapd(1M), rctladm(1M), route(1M), svcadm(1M), zfs(1M), zoneadm(1M), zpool(1M), priv_str_to_set(3C), kstat(3KSTAT), user_attr(4), vfstab(4), attributes(5), brands(5), fnmatch(5), mwac(5), privileges(5), rbac(5), resource_controls(5), zones(5), dev(7FS), hsfs(7FS), uscsi(7I)
『Oracle Solaris のシステム管理 (Oracle Solaris ゾーン、Oracle Solaris 10 ゾーン、およびリソース管理)』
zonecfg で使用するすべての文字データは、US-ASCII エンコーディングにする必要があります。
一般に、すべてのデバイスに対してゾーン内で安全に使用できるどうかの監査が行われるわけではないため、ゾーンにデバイスを追加すると、そのゾーンがシステムのセキュリティーおよび安定性に悪影響を与えることがあります。
sd または ssd ターゲットドライバを使用するストレージデバイス (prtconf -D /dev/dsk/c2t40d3 などを使用すると検査できます) は、ゾーンに安全に委任できます。このため、ゾーン管理者は、このようなデバイスに対してラベル付けやパーティション分割を実行できます。
スライス (たとえば、match=/dev/dsk/c2t40d3s0) だけを委任した場合も、ゾーン管理者は、そのスライスを含むディスク全体に対してラベル付けやパーティション分割を実行できるようになります。これを回避するには、format を実行できる機能を次のゾーンから削除してください。
set limitpriv=default,-storage_config
raw_storage 特権をゾーンの limitpriv に追加すると、ストレージデバイスへの raw アクセスを有効にできます。ゾーンプロセスで raw SCSI コマンド (uscsi(7I) を参照) を実行できるようになるため、この操作は安全ではありません。