ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris の管理: Oracle Solaris コンテナ - リソース管理と Oracle Solaris ゾーン Oracle Solaris 10 1/13 Information Library (日本語) |
10. リソース上限デーモンによる物理メモリーの制御 (概要)
Solaris 10 8/07: dedicated-cpu リソース
Solaris 10 5/08: capped-cpu リソース
Solaris 10 8/07: 物理メモリーの制御と capped-memory リソース
Solaris 10 8/07: 排他的 IP 非大域ゾーン
共有 IP 非大域ゾーンと排他的 IP 非大域ゾーンのセキュリティーの相違
共有 IP 非大域ゾーンと排他的 IP 非大域ゾーンの同時使用
19. 非大域ゾーンのインストール、停止、複製、およびアンインストールについて (概要)
20. 非大域ゾーンのインストール、ブート、停止、アンインストール、および複製 (タスク)
24. Oracle Solaris 10 9/10: ゾーンへの物理的な Oracle Solaris システムの移行 (タスク)
25. ゾーンがインストールされている Oracle Solaris システムでのパッケージとパッチについて (概要)
26. ゾーンがインストールされている Oracle Solaris システムでのパッケージとパッチの追加および削除 (タスク)
27. Oracle Solaris ゾーンの管理 (概要)
28. Oracle Solaris ゾーンの管理 (タスク)
29. 非大域ゾーンにインストールされている Oracle Solaris 10 システムのアップグレード
30. Oracle Solaris ゾーンで発生するさまざまな問題のトラブルシューティング
31. ブランドゾーンと Linux ブランドゾーンについて
34. lx ブランドゾーンのインストール、ブート、停止、複製、およびアンインストールについて (概要)
35. lx ブランドゾーンのインストール、ブート、停止、アンインストール、および複製 (タスク)
ゾーン構成データは 2 種類のエンティティーから成ります。 リソースとプロパティーです。各リソースは、タイプのほかにも 1 つ以上のプロパティーを持つことがあります。プロパティーは名前と値から成ります。どのようなプロパティーセットを持つかは、リソースタイプによって異なります。
ゾーン名は、構成ユーティリティーでゾーンを識別するために使用されます。ゾーン名には次のような規則が適用されます。
各ゾーンの名前は一意でなければならない。
ゾーン名では大文字と小文字が区別される。
ゾーン名は英数字で始まる必要がある。
名前には、英数字、下線 (_)、ハイフン (-)、およびピリオド (.) を使用できます。
名前の長さは 64 文字以内でなければならない。
global という名前と SUNW で始まるすべての名前は、予約されているので使用できない。
zonepath プロパティーは、ゾーンのルートを含むパスです。各ゾーンでは、大域ゾーンのルートディレクトリファイルシステムの zonepath の下に root ディレクトリがあります。ゾーンのインストール時に、適切な所有者とモードによる zonepath ディレクトリ階層が作成されます。zonepath ディレクトリは、所有者が root、モードが 700 で所有される必要があります。
非大域ゾーンのルートパスは 1 つ下のレベルになります。ゾーンのルートディレクトリの所有権とアクセス権は、大域ゾーンのルートディレクトリ (/) と同じになります。ゾーンのディレクトリの所有者は root で、モードは 755 であることが必要です。これらのディレクトリは正しいアクセス権を使って自動作成され、ゾーン管理者がこれらのディレクトリを検証する必要はありません。この階層構造により、大域ゾーンのユーザーでも権限を持っていない場合は、非大域ゾーンのファイルシステムと行き来できなくなります。
|
この問題の詳細については、「ファイルシステムの行き来」を参照してください。
注 - 各リリースでの ZFS の制限については、「Oracle Solaris 10 6/06、Oracle Solaris 10 11/06、Oracle Solaris 10 8/07、および Oracle Solaris 10 5/08: 非大域ゾーンのルートファイルシステムを ZFS 上に配置しないでください」を参照してください。
このプロパティーを true に設定すると、大域ゾーンのブート時にこのゾーンが自動的にブートされます。ゾーンサービス svc:/system/zones:default が無効になっている場合、このプロパティーの設定にかかわらず、ゾーンは自動的にはブートしません。svcadm(1M) のマニュアルページに記載されているように、svcadm コマンドを使用してゾーンサービスを有効にできます。
global# svcadm enable zones
Solaris 10 8/07: このプロパティーは、ゾーンのブート引数を設定するために使用します。reboot、zoneadm boot、または zoneadm reboot コマンドで無効にされた場合を除き、このブート引数が適用されます。「Solaris 10 8/07: ゾーンのブート引数」を参照してください。
このプロパティーは、システム上のリソースプールをゾーンに関連付けるために使用します。1 つのプール内のリソースを複数のゾーンが共有してもかまいません。「Solaris 10 8/07: dedicated-cpu リソース」も参照してください。
Solaris 10 11/06 以降: このプロパティーは、デフォルト以外の特権マスクを指定する場合に使用します。「非大域ゾーン内の特権」を参照してください。
特権を追加するには、特権名だけを指定するか、特権名の前に priv_ 付けて指定します。特権を除外するには、名前の前にダッシュ (-) または感嘆符 (!) を付けます。複数の特権は、コンマで区切り、引用符 (“) で囲みます。
priv_str_to_set(3C)で説明されているように、特殊な特権セット none、all、および basic は、それぞれの通常の定義に展開されます。ゾーン構成は大域ゾーンで行われるため、特殊な特権セット zone は使用できません。特定の特権を追加または削除してデフォルトの特権セットを変更するのが一般的な使用方法であるため、特殊なセットである default はデフォルトの特権セットにマップされます。limitpriv プロパティーの先頭に default がある場合、デフォルトセットに展開されます。
次のエントリは、dtrace_proc 特権と dtrace_user 特権だけを必要とする DTrace プログラムをゾーンで使用できるようにします。
global# zonecfg -z userzone zonecfg:userzone> set limitpriv="default,dtrace_proc,dtrace_user"
ゾーンの特権セットに不許可の特権が含まれる場合、必須の特権が欠落している場合、または未知の特権が含まれる場合、ゾーンの検証、準備、またはブートの試行は失敗し、エラーメッセージが表示されます。
Solaris 10 8/07: このプロパティーは、ゾーンのスケジューリングクラスを設定します。詳細とヒントについては、「ゾーンのスケジューリングクラス」を参照してください。
Solaris 10 8/07: このプロパティーは、ゾーンが排他的 IP ゾーンである場合のみ設定する必要があります。「Solaris 10 8/07: 排他的 IP 非大域ゾーン」および 「ゾーンの構成方法」を参照してください。
Solaris 10 8/07: このリソースは、ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てます。dedicated-cpu リソースは、ncpus の制限を設定し、必要に応じて importance も設定します。詳細は、「Solaris 10 8/07: dedicated-cpu リソース」を参照してください。
Solaris 10 5/08: このリソースは、ゾーンの実行中にゾーンで消費可能な CPU リソース量に対する制限を設定します。このリソースは、ncpus に制限を設けます。
Solaris 10 8/07: このリソースは、ゾーンのメモリー上限を設定するためのプロパティーをグループ化します。capped-memory リソースは、physical、swap、および locked メモリーの制限を設定します。これらのプロパティーの少なくとも 1 つは指定する必要があります。
Solaris 10 6/06: ZFS ファイルシステムのデータセットリソースを追加すると、ストレージ管理を非大域ゾーンに委譲できます。ゾーン管理者は、そのデータセット内のファイルシステムの作成と破棄、クローンの作成と破棄、およびデータセットのプロパティーの変更を行うことができます。ゾーン管理者は、ゾーンに追加されていないデータセットを操作したり、ゾーンに割り当てられているデータセットに設定されている最上位レベルの割り当て制限を超過したりすることはできません。
次の方法で、ZFS データセットをゾーンに追加できます。
lofs マウントされたファイルシステムとして (大域ゾーンとの領域共有のみが目的の場合)
委任されたデータセットとして
『Oracle Solaris ZFS 管理ガイド』の第 10 章「Oracle Solaris ZFS の高度なトピック」および 「ファイルシステムと非大域ゾーン」を参照してください。
データセットの問題については、第 30 章Oracle Solaris ゾーンで発生するさまざまな問題のトラブルシューティングも参照してください。
各ゾーンでは、インストール済み状態から準備完了状態に移行するときにマウントする各種のファイルシステムを指定できます。ファイルシステムリソースは、ファイルシステムのマウントポイントのパスを指定します。ゾーンでファイルシステムを使用する方法の詳細については、「ファイルシステムと非大域ゾーン」を参照してください。
完全ルートゾーンでは、このリソースを構成するべきではありません。
疎ルートゾーンで inherit-pkg-dir リソースを使用すると、非大域ゾーンが大域ゾーンと共有するソフトウェアパッケージの保存先ディレクトリを指定できます。
inherit-pkg-dir ディレクトリに転送されるソフトウェアパッケージの内容は、非大域ゾーンでは読み取り専用モードで継承されます。ゾーンのパッケージデータベースが更新され、パッケージが反映されます。zoneadm を使用してゾーンをインストールした後で、これらのリソースを変更または削除することはできません。
注 - 構成には、デフォルトの inherit-pkg-dir リソースが 4 つ含まれています。これらのディレクトリリソースは、大域ゾーンからどのディレクトリが関連パッケージを継承するべきかを指定します。リソースの実装は、読み取り専用のループバックファイルシステムマウントによって行われます。
/lib
/platform
/sbin
/usr
ネットワークインタフェースリソースは、インタフェースの名前です。各ゾーンでは、インストール済み状態から準備完了状態に移行するときに設定するべきネットワークインタフェースを指定できます。
デバイスリソースは、デバイス照合の指定子です。各ゾーンでは、インストール済み状態から準備完了状態に移行するときに構成するべきデバイスを指定できます。
rctl リソースは、ゾーン規模のリソース制御に使用されます。リソース制御は、ゾーンがインストール済み状態から準備完了状態に移行するときに有効になります。
大域ゾーンの hostid とは異なる hostid を設定できます。
この汎用属性は、ユーザーコメントとして使用したり、ほかのサブシステムで使用したりできます。attr の name プロパティーは、英数字で始まる必要があります。name プロパティーには、英数字、ハイフン (-)、およびピリオド (.) を使用できます。zone. で始まる属性名はシステム用に予約されています。
リソースには、構成可能なプロパティーもあります。リソースタイプとそれに関連付けられるプロパティーは次のとおりです。
ncpus、importance
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
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
physical、swap、locked
ゾーン 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
dir、special、raw、type、options
fs リソースのパラメータは、ファイルシステムをマウントする方法と場所を決定する値を指定します。fs のパラメータは次のように定義されています。
ファイルシステムのマウントポイントを指定します
大域ゾーンからマウントするブロック型特殊デバイスの名前またはディレクトリを指定します
ファイルシステムをマウントする前に fsck を実行する、raw デバイスを指定します
ファイルシステムのタイプを指定します
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 ファイルシステムを非大域ゾーンに追加する」を参照してください。
name
次の例では、データセット sales を非大域ゾーンでマウントして可視にし、大域ゾーンでは不可視にするように指定します。
zonecfg:my-zone> add dataset zonecfg:my-zone> set name=tank/sales zonecfg:my-zone> end
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
address、physical、defrouter
注 - 共有 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
match
次の例では、/dev/pts デバイスをゾーンに追加します。
zonecfg:my-zone> add device zonecfg:my-zone:device> set match=/dev/pts* zonecfg:my-zone:device> end
name、value
Solaris 10 8/07: このリリースで新しく追加されたリソース制御は、zone.max-locked-memory、zone.max-msg-ids、zone.max-sem-ids、 zone.max-shm-ids、zone.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 つから成ります。これらの名前は、priv、limit、および 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 章リソース制御 (概要)および 「非大域ゾーンで使用されるリソース制御」を参照してください。
name、type、value
次の例では、ゾーンに関するコメントを追加します。
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 サブコマンドを使用すると、ゾーン構成を標準出力に出力できます。構成は、コマンドファイルに使用できる形式で保存されます。