ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 の管理: Oracle Solaris ゾーン、Oracle Solaris 10 ゾーン、およびリソース管理 Oracle Solaris 11.1 Information Library (日本語) |
10. リソース上限デーモンによる物理メモリーの制御 (概要)
読み取り専用ルートゾーンの file-mac-profile プロパティー
非大域ゾーンでの Reliable Datagram Sockets のサポート
共有 IP 非大域ゾーンと排他的 IP 非大域ゾーンのセキュリティーの相違
18. 非大域ゾーンのインストール、停止処理、停止、アンインストール、クローニングについて (概要)
19. 非大域ゾーンのインストール、ブート、停止処理、停止、アンインストール、およびクローニング (タスク)
22. ゾーンの移行と zonep2vchk ツールについて
23. Oracle Solaris システムの移行と非大域ゾーンの移行 (タスク)
24. ゾーンがインストールされている Oracle Solaris 11.1 システムでの自動インストールおよびパッケージ
25. Oracle Solaris ゾーンの管理 (概要)
26. Oracle Solaris ゾーンの管理 (タスク)
28. Oracle Solaris ゾーンで発生するさまざまな問題のトラブルシューティング
30. Oracle Solaris 10 システムの評価とアーカイブの作成
31. (オプション) Oracle Solaris 10 ゾーンへの Oracle Solaris 10 native 非大域ゾーンの移行
このセクションでは、構成できる必須および省略可能なゾーンコンポーネントについて説明します。ゾーン名とゾーンのパスだけが必要です。詳細は、「ゾーン構成データ」を参照してください。
ゾーンの名前とパスを選択する必要があります。ゾーンは、ZFS データセット上に存在する必要があります。ZFS データセットは、ゾーンのインストール時または接続時に自動的に作成されます。ZFS データセットを作成できない場合、ゾーンのインストールや接続は行われません。ゾーンのパスの親ディレクトリは、データセットでもなければならないことに注意してください。
autoboot プロパティーの設定は、大域ゾーンのブート時にゾーンが自動的にブートされるかどうかを決定します。ゾーンサービス svc:/system/zones:default も有効になっている必要があります。
solaris ゾーンでは、file-mac-profile は読み取り専用ルートでゾーンを構成するために使用します。
詳細は、第 27 章不変ゾーンの構成と管理を参照してください。
admin 設定を使用すると、ゾーン管理の承認を設定できます。承認を定義するための推奨の方法は、zonecfg コマンドによる方法です。
ユーザー名を指定します。
ユーザー名に対して承認を指定します。
RBAC を使用中の場合、対話型ログインには、solaris.zone.login/zonename の承認が必要です。ゾーン内では、パスワード認証が実行されます。
RBAC を使用中の場合、非対話型ログイン、またはパスワード認証の省略のために solaris.zone.manage/ zonename の承認が必要です。
RBAC を使用中の場合、別のゾーンのコピーを作成するサブコマンドは solaris.zone.clonefrom/ source_zone の承認を必要とします。
dedicated-cpu リソースは、非大域ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てることを指定します。ゾーンのブート時に、ゾーンの実行中に使用される一時プールが動的に作成されます。
zonecfg で指定すると、移行時にプールの設定が伝達されます。
dedicated-cpu リソースは、ncpus の制限を設定し、必要に応じて importance も設定します。
CPU の数を指定するか、CPU の数の範囲を 2–4 などと指定します。リソースプールの動的な動作を得るために範囲を指定する場合は、次の手順も実行してください。
importance プロパティーを設定します。
poold サービスを有効にします。手順については、「svcadm を使用して動的リソースプールサービスを有効にする方法」を参照してください。
動的な動作を得るために CPU 範囲を使用する場合は、importance プロパティーも設定してください。importance は「省略可能な」プロパティーであり、プールの相対的な重要性を定義します。このプロパティーが必要となるのは、ncpus に範囲を指定した場合で、poold によって管理される動的リソースプールを使用しているときだけです。poold が実行されていない場合、importance は無視されます。poold が実行されている場合、importance が設定されていないと、importance はデフォルト値の 1 になります。詳細は、「 pool.importance プロパティーの制約」を参照してください。
注 - capped-cpu リソースと dedicated-cpu リソースには互換性がありません。cpu-shares リソース制御と dedicated-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 が設定されていない場合、そのゾーンはシステムのデフォルトのスケジューリングクラスを使用します。ゾーンのスケジューリングクラスは、次の処理によって設定されます。
zonecfg の scheduling-class プロパティーを使ってゾーンのスケジューリングクラスを設定できます。
リソースプール機能を使ってゾーンのスケジューリングクラスを設定できます。ゾーンがプールに関連付けられている場合、そのプールの pool.scheduler プロパティーに有効なスケジューリングクラスが設定されていれば、ゾーンで実行されるプロセスは、デフォルトでそのスケジューリングクラスで実行されます。「リソースプールの紹介」 および 「プールをスケジューリングクラスに対応付ける方法」を参照してください。
cpu-shares リソース制御が設定されている場合で、別の処理を通して FSS がゾーンのスケジューリングクラスとして設定されていないときは、ゾーンのブート時に zoneadmd によってスケジューリングクラスが FSS に設定されます。
ほかの処理を通してスケジューリングクラスが設定されていない場合、ゾーンはシステムのデフォルトのスケジューリングクラスを継承します。
priocntl (priocntl(1) のマニュアルページに記載) を使用すると、デフォルトのスケジューリングクラスの変更やリブートを行うことなく、実行中のプロセスを別のスケジューリングクラスに移動できます。
capped-memory リソースは、physical、swap、および locked メモリーの制限を設定します。各制限はオプションですが、少なくとも 1 つは設定する必要があります。capped-memory リソースを使用するには、resource-cap パッケージが大域ゾーン内にインストールされている必要があります。
大域ゾーンから rcapd を使用してゾーンのメモリー上限を設定する場合は、このリソースの値を決定します。capped-memory リソースの physical プロパティーは、ゾーンの max-rss 値として rcapd で使用されます。
capped-memory リソースの swap プロパティーは、zone.max-swap リソース制御を設定するための望ましい方法です。
capped-memory リソースの locked プロパティーは、zone.max-locked-memory リソース制御を設定するための望ましい方法です。
注 - 通常はアプリケーションが多量のメモリーをロックすることはありませんが、ゾーンのアプリケーションによってメモリーがロックされることがわかっている場合は、ロックされるメモリーを設定するとよいでしょう。ゾーンの信頼が問題になる場合は、ロックされるメモリーの上限を、システムの物理メモリーの 10 パーセントまたはゾーンの物理メモリー上限の 10 パーセントに設定することもできます。
詳細は、第 10 章リソース上限デーモンによる物理メモリーの制御 (概要)、第 11 章リソース上限デーモンの管理 (タスク)、および 「ゾーンの構成方法」を参照してください。ゾーンに一時的なリソース上限を設定する方法については、「ゾーンに一時的なリソース上限を指定する方法」を参照してください。
zonecfg ユーティリティーに含まれるオプションの rootzpool リソースは、ゾーンのインストール専用の ZFS zpool を作成するために使用します。ゾーンのルート ZFS zpool は、1 つ以上の URI (Universal Resource Identifier) によって定義された共有ストレージデバイスでホストできます。必須の storage プロパティーは、ゾーンのルート zfs ファイルシステムを格納するストレージオブジェクトの URI を識別します。特定のゾーンに対して定義できる rootzpool は 1 つだけです。このストレージは、ゾーンがブートされたときに、そのゾーンのために自動的に構成されます。
対応する zpool は、ゾーンのインストールまたはゾーンの接続操作中に自動的に作成またはインポートされます。ゾーンのアンインストールまたは切り離しを行うと、次のアクションが実行されます。
ストレージリソースが自動的に構成解除されます。
対応する zpool が自動的にエクスポートまたは破棄されます。
事前作成済みの zpool をゾーンのインストールに再利用するには、zpool をシステムからエクスポートする必要があります。
ゾーンのフレームワークでは、次の URI タイプがサポートされています。
dev
ローカルデバイスパスの URI
書式:
dev:local-path-under-/dev dev://absolute-path-with-dev dev:absolute-path-with-dev
例:
dev:dsk/c7t0d0s0 dev:///dev/dsk/c7t0d0s0 dev:/dev/dsk/c7t0d0s0
lu (論理ユニット)
ファイバチャネル (FC) および Serial Attached SCSI (SAS)
書式:
lu:luname.naa.ID lu:initiator.naa.ID,target.naa.ID,luname.naa.ID
例:
lu:luname.naa.5000c5000288fa25 lu:initiator.naa.2100001d38089fb0,target.naa.2100001d38089fb0,luname.naa.5000c5000288fa25
iscsi
iSCSI の URI
書式:
iscsi:///luname.naaID iscsi://host[:port]/luname.naa.ID
例:
iscsi:///luname.naa.600144f03d70c80000004ea57da10001 iscsi://[::1]/luname.naa.600144f03d70c80000004ea57da10001 iscsi://127.0.0.1/luname.naa.600144f03d70c80000004ea57da10001 iscsi://127.0.0.1:3620/luname.naa.600144f03d70c80000004ea57da10001 iscsi://hostname:3620/luname.naa.600144f03d70c80000004ea57da10001
ストレージの URI に基づいて共有オブジェクトを管理するには、suriadm ツールを使用します。ID、NAA (Name Address Authority)、および既存のストレージオブジェクトの URI の取得については、suriadm(1M) および suri(5) のマニュアルページを参照してください。
システムは、関連するゾーンに対して新規作成またはインポートされた rootzpool に名前を割り当てます。割り当てられる名前は、zonename_rpool という形式になります。
storage プロパティーは、rootzpool リソーススコープ内から次のコマンドを使用して管理されます。
add storage URI string
remove storage URI string
zpool を非大域ゾーンに委任するには、zonecfg ユーティリティーでオプションの zpool リソースを構成します。zpool は、ゾーンがブートされたときに、そのゾーンのために自動的に構成されます。
対応する zpool は、ゾーンのインストールまたはゾーンの接続操作中に自動的に作成またはインポートされます。
ゾーンのアンインストールまたは切り離しを行うと、次のアクションが実行されます。
ストレージリソースが自動的に構成解除されます。
対応する zpool が自動的にエクスポートまたは破棄されます。
必須の storage プロパティーは、このリソースに関連付けられたストレージオブジェクトの URI を識別します。
storage プロパティーは、zpool リソーススコープ内の次の設定を使用して管理されます。
add storage URI string
remove storage URI string
zpool リソースには name プロパティーが必須です。このプロパティーは、ゾーンに委任される zpool の名前で使用されます。ZFS ファイルシステムの name コンポーネントにスラッシュ (/) を含めることはできません。
新規作成またはインポートされた zpool に割り当てられる名前は、zonename_name という形式になります。これは、非大域ゾーン内で表示可能な zpool 名です。
注 - ストレージオブジェクトに既存のパーティション、zpool、または UFS ファイルシステムが含まれている場合は、ゾーンのインストールが失敗することがあります。詳細は、「構成済みのゾーンをインストールする方法」の手順 4 を参照してください。
ネットワーク接続を提供するために zonecfg ユーティリティーによって構成されるゾーンネットワークインタフェースは、ゾーンのブート時に自動的に設定されてゾーン内に配置されます。
インターネットプロトコル (IP) 層は、ネットワークのパケットの受信と配信を行います。この層には、IP ルーティング、アドレス解決プロトコル (ARP)、IP セキュリティーアーキテクチャー (IPsec)、および IP フィルタが含まれます。
非大域ゾーンに使用できる IP タイプには、共有 IP と排他的 IP の 2 種類があります。排他的 IP がデフォルトの IP タイプです。共有 IP ゾーンは、大域ゾーンとネットワークインタフェースを共有します。大域ゾーン内の構成は、共有 IP ゾーンを使用するために ipadm ユーティリティーによって実行する必要があります。排他的 IP ゾーンには専用のネットワークインタフェースが必要です。anet リソースを使用して排他的 IP ゾーンを構成すると、専用の VNIC が自動的に作成され、そのゾーンに割り当てられます。自動化された anet リソースを使用することによって、大域ゾーン内にデータリンクを作成および構成し、非大域ゾーンにデータリンクを割り当てる必要がなくなります。次のことを行うには、anet リソースを使用します。
大域ゾーンの管理者が、非大域ゾーンに割り当てられたデータリンク用の特定の名前を選択できるようにする
複数のゾーンで同じ名前のデータリンクを使用できるようにする
下位互換性を維持するために、事前構成済みのデータリンクを非大域ゾーンに割り当てることができます。
各タイプの IP 機能については、「共有 IP 非大域ゾーンにおけるネットワーク」および 「排他的 IP 非大域ゾーンにおけるネットワーク」を参照してください。
注 - リンク保護 (『Oracle Solaris Administration: Network Interfaces and Network Virtualization』の第 20 章「Using Link Protection in Virtualized Environments」に記載) が、ゾーンを実行するシステム上で使用できます。この機能は、大域ゾーン内で構成されます。
データリンクとは、OSI プロトコルスタックのレイヤー 2 インタフェースのことです。このインタフェースは、システム内で STREAMS DLPI (v2) インタフェースとして表されます。このようなインタフェースは、TCP/IP などのプロトコルスタックの下で接続できます。データリンクは、「物理インタフェース」 (たとえば、ネットワークインタフェースカード (NIC)) とも呼ばれます。データリンクは、zonecfg(1M) を使用して構成される physical プロパティーです。physical プロパティーは、VNIC (『Oracle Solaris Administration: Network Interfaces and Network Virtualization』のパート III「Network Virtualization and Resource Management」に記載) にすることも可能です。
データリンクの例としては、物理インタフェース (e1000g0 や bge1 など)、NIC (bge3 など)、アグリゲーション (aggr1、aggr2 など)、VLAN タグ付きインタフェース (e1000g123000 と bge234003 (それぞれ e1000g0 上の VLAN 123、および bge3 上の VLAN 234) など) があります。
IP over Infiniband (IPoIB) の使用については、「リソースタイプのプロパティー」の anet の説明を参照してください。
共有 IP ゾーンは、大域ゾーンからの既存の IP インタフェースを使用します。ゾーンには、1 つ以上の専用の IP アドレスが存在する必要があります。共有 IP ゾーンは、IP 層の構成と状態を大域ゾーンと共有します。次の両方の条件が満たされる場合、ゾーンは共有 IP インスタンスを使用すべきです。
大域ゾーンと非大域ゾーンが同じサブネット上に存在するかどうかに関係なく、非大域ゾーンが大域ゾーンによって使用されるデータリンクと同じデータリンクを使用する計画である。
排他的 IP ゾーンによって提供されるその他の機能は必要でない。
共有 IP ゾーンには、zonecfg コマンドの net リソースを使用して、1 つ以上の IP アドレスを割り当てます。大域ゾーンでデータリンク名も構成する必要があります。
zonecfg net リソースで、address と physical のプロパティーを設定する必要があります。defrouter プロパティーはオプションです。
大域ゾーン内で共有 IP タイプのネットワーク接続構成を使用するには、自動ネットワーク構成ではなく ipadm を使用する必要があります。ネットワーク接続構成を ipadm によって行うかどうかを決定するには、次のコマンドを実行します。表示される応答は、DefaultFixed でなければなりません。
# svcprop -p netcfg/active_ncp svc:/network/physical:default DefaultFixed
共有 IP ゾーンに割り当てられる IP アドレスは、論理ネットワークインタフェースに関連付けられます。
大域ゾーンから ipadm コマンドを使用すると、稼働中のゾーンの論理インタフェースの割り当てまたは削除を行うことができます。
インタフェースを追加するには、次のコマンドを使用します。
global# ipadm set-addrprop -p zone=my-zone net0/addr1
インタフェースを削除するには、次のコマンドのいずれかを使用します。
global# ipadm set-addrprop -p zone=global net0/addr
または
global# ipadm reset-addrprop -p zone net0/addr1
詳細は、「共有 IP ネットワークインタフェース」を参照してください。
排他的 IP は、非大域ゾーンのデフォルトのネットワーク接続構成です。
排他的 IP ゾーンには、独自の IP に関連付けられた状態と 1 つ以上の専用のデータリンクが保持されます。
排他的 IP ゾーン内では、次の各機能を使用できます。
TCP/UDP/SCTP および IP/ARP レベルのチューニング可能パラメータを設定するための ipadm
IP セキュリティー (IPsec) と Internet Key Exchange (IKE)。これは、IPsec セキュリティーアソシエーション用の認証済み鍵材料のプロビジョニングを自動化する
排他的 IP ゾーンを構成する方法には、次の 2 つがあります。
zonecfg ユーティリティーの anet リソースを使用して、ゾーンのブート時にゾーンに対して一時的な VNIC を自動的に作成し、またゾーンの停止時にそれを削除します。
大域ゾーン内にデータリンクを事前構成し、排他的 IP ゾーンにそれを割り当てます。これは、zonecfg ユーティリティーの net リソースを使用して行います。データリンクは、net リソースの physical プロパティーを使用して指定します。physical プロパティーは、VNIC (『Oracle Solaris Administration: Network Interfaces and Network Virtualization』のパート III「Network Virtualization and Resource Management」に記載) にすることも可能です。net リソースの address プロパティーは設定されません。
排他的 IP ゾーンは、デフォルトでは関連付けられたインタフェース上のすべての IP アドレスを構成および使用できます。必要に応じて、allowed-address プロパティーを使用して IP アドレスのコンマ区切りリストを指定することもできます。排他的 IP ゾーンは、allowed-address リスト内にない IP アドレスを使用することはできません。また、ゾーンのブート時に、allowed-address リスト内のすべてのアドレスが排他的 IP ゾーンに対して自動で持続的に構成されます。このインタフェース構成が不要な場合、 configure-allowed-address プロパティーを false に設定する必要があります。デフォルト値は true です。
データリンクを割り当てると snoop コマンドが使用可能になります。
dladm コマンドを show-linkprop サブコマンドとともに使用して、実行中の排他的 IP ゾーンに対するデータリンクの割り当てを表示できます。dladm コマンドを set-linkprop サブコマンドとともに使用すると、実行中のゾーンに対して追加のデータリンクを割り当てることができます。使用例については、「排他的 IP 非大域ゾーンでのデータリンクの管理」を参照してください。
独自のデータリンクセットが割り当てられた、実行中の排他的 IP ゾーン内では、ipadm コマンドを使用して IP を構成できます。このコマンドには、論理インタフェースの追加または削除を行う機能が備わっています。ゾーンの IP 構成は、大域ゾーン内の場合と同様に sysconfig インタフェース (sysconfig(1M) のマニュアルページに記載) を使用して設定できます。
排他的 IP ゾーンの IP 構成は、大域ゾーンから zlogin コマンドを使用することによってのみ表示できます。
global# zlogin zone1 ipadm show-addr ADDROBJ TYPE STATE ADDR lo0/v4 static ok 127.0.0.1/8 nge0/_b dhcp ok 10.134.62.47/24 lo0/v6 static ok ::1/128 nge0/_a addrconf ok fe80::2e0:81ff:fe5d:c630/10
RDS (Reliable Datagram Sockets) IPC プロトコルは、排他的 IP 非大域ゾーンと共有 IP 非大域ゾーンの両方でサポートされています。RDSv3 ドライバは、SMF サービス rds として有効になっています。デフォルトでは、このサービスはインストール後に無効になります。このサービスは、適切な承認を付与されたゾーン管理者が特定の非大域ゾーン内で有効にすることができます。zlogin のあとで、rds をそれが実行される各ゾーン内で有効にすることができます。
例 16-1 非大域ゾーン内で rds サービスを有効にする方法
排他的 IP ゾーンまたは共有 IP ゾーン内で RDSv3 サービスを有効にするには、zlogin して svcadm enable コマンドを実行します。
# svcadm enable rds
rds が有効になっていることを確認します。
# svcs rds STATE STIME FMRI online 22:50:53 svc:/system/rds:default
詳細は、svcadm(1M) のマニュアルページを参照してください。
共有 IP ゾーン内のアプリケーションは、スーパーユーザーも含め、zonecfg ユーティリティーを介してゾーンに割り当てられた IP アドレス以外をソース IP アドレスとしてパケットを送信することはできません。このタイプのゾーンには、任意のデータリンク (レイヤー 2) パケットを送受信するアクセス権はありません。
一方、排他的 IP ゾーンの場合は、zonecfg によって指定されたデータリンク全体がゾーンに対して許可されます。結果として、排他的 IP ゾーン内では、スーパーユーザーまたは必要な権利プロファイルを持つユーザーは、大域ゾーン内と同様に、それらのデータリンク上でなりすましのパケットを送信できます。IP アドレスのなりすましは、allowed-address プロパティーを設定することによって使用不可にできます。anet リソースの場合、link-protection プロパティーを設定することによって、mac-nospoof や dhcp-nospoof などの追加の保護を有効にできます。
共有 IP ゾーンは常に IP 層を大域ゾーンと共有し、排他的 IP ゾーンは常に独自の IP 層インスタンスを持っています。共有 IP ゾーンと排他的 IP ゾーンの両方を同じマシンで使用することができます。
各ゾーンには、デフォルトでそのゾーンに委任された ZFS データセットが保持されています。このデフォルトの委任されたデータセットは、デフォルトの大域ゾーンのデータセットレイアウトのデータセットレイアウトを模倣します。 .../rpool/ROOT というデータセットは、ブート環境を含んでいます。このデータセットは、直接操作しないでください。存在する必要がある rpool データセットは、デフォルトで ... /rpool にマウントされます。.../rpool/export、および .../rpool/export/home データセットは /export と /export/home にマウントされます。これらの非大域ゾーンのデータセットは、対応する大域ゾーンのデータセットと使用方法が同じで、同様に管理できます。ゾーン管理者は、.../rpool, .../rpool/export および ... /rpool/export/home のデータセット内に追加のデータセットを作成できます。
zfs(1M) のマニュアルページで説明されている zfs コマンドを使用して、ゾーンの rpool/ROOT ファイルシステムから始まる階層内でファイルシステムの作成、削除、または名前変更を行うべきではありません。zfs コマンドは、canmount、mountpoint、sharesmb、zoned、com.oracle. *:*、com.sun:*、および org.opensolaris. *.*. 以外のプロパティーを設定する場合に使用できます。
通常、ゾーンでマウントされるファイルシステムには、次のものが含まれます。
仮想プラットフォームの初期化時にマウントされる一連のファイルシステム
アプリケーション環境自体の内部からマウントされる一連のファイルシステム
これらのセットには、たとえば次のようなファイルシステムが含まれます。
none または legacy 以外の mountpoint があり、また canmount プロパティーに yes の値が保持された ZFS ファイルシステム。
ゾーンの /etc/vfstab ファイルで指定されたファイルシステム。
AutoFS によるマウントおよび AutoFS によってトリガーされるマウント。autofs プロパティーは、sharectl (sharectl(1M) に記載) を使用して設定します。
ゾーン管理者が明示的に実行するマウント
また、稼働中のゾーン内でのファイルシステムのマウント権限は、zonecfg fs-allowed プロパティーで定義します。このプロパティーは、zonecfg add fs リソースまたは add dataset リソースを使用してゾーンにマウントされたファイルシステムには適用されません。デフォルトでは、ゾーンのデフォルトの委任されたデータセットである hsfs ファイルシステム内でのファイルシステム、および NFS などのネットワークファイルシステムのマウントだけが、ゾーン内で許可されます。
注意 - アプリケーション環境内部から実行される、デフォルト以外のマウントには、いくつかの制限事項があります。これらの制限事項は、ほかのゾーンに悪影響を与えないようにするために、ゾーン管理者がシステムのほかの部分に対するサービスを拒否できないようにします。 |
一部のファイルシステムについては、ゾーン内部からマウントする場合にセキュリティー制限があります。ほかのファイルシステムは、ゾーン内でマウントされたときに特有の動作を行います。詳細は、「ファイルシステムと非大域ゾーン」を参照してください。
データセットの詳細は、datasets(5) のマニュアルページを参照してください。BE の詳細は、『Oracle Solaris 11.1 ブート環境の作成と管理』を参照してください。
pkg(5) のマニュアルページで説明されているように、ゾーンのシステムイメージの一部であるファイル、シンボリックリンク、またはディレクトリを非表示にしてファイルシステムをマウントする方法はサポートされていません。/usr/local に内容を提供するパッケージがインストールされていない場合は、/usr/local にファイルシステムをマウントすることが許容されます。しかし、いずれかのパッケージ (SVR4 パッケージを含む) が /usr/local で始まるパスにファイル、ディレクトリ、またはシンボリックリンクを提供する場合は、/usr/local へのファイルシステムのマウントはサポートされません。/mnt へのファイルシステムの一時的なマウントはサポートされています。
ゾーン内でファイルシステムがマウントされる順序のため、/export がゾーンの rpool/export データセットまたは別の委任されたデータセットに由来する場合は、fs リソースが /export/filesys にファイルシステムをマウントすることはできません。
非大域ゾーンでは、大域ゾーンの hostid とは異なる hostid プロパティーを設定できます。これはたとえば、別のシステム上のゾーンに移行されたマシンなどの場合に行います。このゾーン内に現在あるアプリケーションは、元の hostid に依存している場合があります。詳細は、「リソースタイプとプロパティー」を参照してください。
zonecfg コマンドは、規則照合方式を使って、特定のゾーンにどのデバイスを配置するかを指定します。いずれかのルールに一致するデバイスは、ゾーンの /dev ファイルシステムに追加されます。詳細は、「ゾーンの構成方法」を参照してください。
リムーバブルループバックファイル (lofi) デバイスは、CD-ROM デバイスのように機能し、非大域ゾーンに構成できます。デバイスがマップするファイルを変更したり、複数の lofi デバイスを作成して、同じファイルを読み取り専用モードで使用したりできます。このタイプの lofi デバイスを作成するには、lofiadm コマンドを -r オプションとともに使用します。作成時にファイル名は必要ありません。リムーバブル lofi デバイスのライフサイクル中は、ファイルを空のデバイスに関連付けたり、空でないデバイスからファイルの関連付けを解除したりできます。1 つのファイルを同時に複数のリムーバブル lofi デバイスに安全に関連付けることができます。リムーバブル lofi デバイスは読み取り専用です。通常の読み取り/書き込み lofi デバイスまたはリムーバブル lofi デバイスにマップされたファイルを再マッピングすることはできません。潜在的な lofi デバイスの数は、大域ゾーンで zonecfg(1M) を使用して設定できる zone.max-lofi リソース制御によって制限されます。
作成後のリムーバブル lofi デバイスは読み取り専用です。リムーバブル lofi デバイスに対して書き込み操作が行われると、lofi ドライバはエラーを返します。
lofiadm コマンドは、リムーバブル lofi デバイスを一覧表示する場合にも使用します。
例 16-2 関連するファイルを含むリムーバブル lofi デバイスを作成する
# lofiadm -r /path/to/file /dev/lofi/1
例 16-3 空のリムーバブル lofi デバイスを作成する
# lofiadm -r /dev/lofi/2
例 16-4 リムーバブル lofi デバイスにファイルを挿入する
# lofiadm -r /path/to/file /dev/lofi/1 /dev/lofi/1
詳細は、lofiadm(1M)、zonecfg(1M)、および lofi(7D) のマニュアルページを参照してください。「ゾーン規模のリソース制御」も参照してください。
ディスクのパーティション分割と uscsi コマンドの使用は、zonecfg ツールを使用すると有効になります。例については、「リソースタイプのプロパティー」の device を参照してください。uscsi コマンドの詳細は、uscsi(7I) を参照してください。
委任は、solaris ゾーンでサポートされるだけです。
ディスクは、-D オプションを指定した prtconf コマンドを使用して表示される sd ターゲットを使用する必要があります。prtconf(1M)を参照してください。
ゾーンのブート時に、safe 特権のデフォルトセットが構成に含められます。これらの特権は、ゾーン内の特権プロセスがシステムのほかの非大域ゾーン内のプロセスや大域ゾーン内のプロセスに影響を及ぼすことを防ぐため、安全と見なされます。 zonecfg コマンドを使用して、次の操作を実行できます。
デフォルトの特権セットに追加します。ただし、この種の変更を行うと、あるゾーン内のプロセスがグローバルリソースを制御できるようになって、ほかのゾーン内のプロセスに影響する場合があります。
デフォルトの特権セットから削除します。ただし、この種の変更を行うと、実行に必要な特権がないため一部のプロセスが正しく動作しなくなる場合があります。
注 - わずかですが、この時点でゾーンのデフォルト特権セットから削除できない特権があります。同じように、特権セットに追加できない特権もあります。
詳細は、「非大域ゾーン内の特権」、「ゾーンの構成方法」、および privileges(5) のマニュアルページを参照してください。
第 13 章リソースプールの作成と管理 (タスク)の説明に従ってシステムでリソースプールを構成した場合は、ゾーンを構成するときに pool プロパティーを使用して、リソースプールの 1 つにゾーンを関連付けることができます。
リソースプールが構成されていない場合でも、非大域ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てるよう、dedicated-cpu リソースを使用して指定できます。ゾーンの実行中に使用される一時プールが動的に作成されます。zonecfg によって指定すると、移行時にプールの設定が伝達されます。
注 - pool プロパティーによって設定される持続的プールを使用するゾーン構成と、dedicated-cpu リソースによって構成される一時プールには、互換性がありません。これら 2 つのプロパティーは、どちらか 1 つしか設定できません。
大域管理者または適切な承認を持つユーザーは、ゾーン規模の特権付きリソース制御をゾーンに対して設定できます。ゾーン規模のリソース制御は、ゾーン内のすべてのプロセスエンティティーによる総リソース消費を制限します。
これらの制限は、大域ゾーンと非大域ゾーンのどちらに対しても、zonecfg コマンドを使用して指定します。「ゾーンの構成方法」を参照してください。
ゾーン規模のリソース制御を設定するためのより簡単な推奨される方法は、cpu-cap などの rctl リソースではなく、capped-cpu などのプロパティー名またはリソースを使用することです。
zone.cpu-cap リソース制御は、1 つのゾーンで消費可能な CPU リソースの量に対する絶対的な制限を設定します。設定と同様、100 の値は 1 つの CPU の 100% を意味します。125 の値は 125% になります。CPU キャップの使用時は、100% がシステム上の 1 つの CPU の上限となります。
注 - capped-cpu リソースを設定する場合は、単位に小数を使用できます。この値は zone.cpu-cap リソース制御と相互に関連していますが、設定値はその 100 分の 1 になります。設定値 1 はリソース制御の設定値 100 に等しくなります。
zone.cpu-shares リソース制御は、公平配分スケジューラ (FSS) の CPU 配分の制限をゾーンに対して設定します。CPU 配分は、まずゾーンに対して割り当てられたあとで、project.cpu-shares エントリの指定に従って、ゾーン内のプロジェクトに分配されます。詳細は、「ゾーンがインストールされている Oracle Solaris システムでの公平配分スケジューラの使用」を参照してください。この制御のグローバルプロパティー名は cpu-shares です。
zone.max-locked-memory リソース制御は、1 つのゾーンで使用できる、ロックされた物理メモリーの量に制限を設定します。ゾーン内のプロジェクト間でのロックされたメモリーリソースの割り当ては、project.max-locked-memory リソース制御を使用して制御できます。詳細は、表 6-1 を参照してください。
zone.max-lofi リソース制御は、1 つのゾーンで作成可能な lofi デバイスの数を制限します。
1 つのゾーンの LWP が多くなりすぎると、ほかのゾーンに影響を与えることがあります。zone.max-lwps リソース制御は、これを防ぐことで、リソースの隔離を向上させます。ゾーン内のプロジェクト間での LWP リソースの割り当ては、project.max-lwps リソース制御を使用して制御できます。詳細は、表 6-1 を参照してください。この制御のグローバルプロパティー名は max-lwps です。
zone.max-processes リソース制御は、1 つのゾーン内のあまりに多くの LWP が他のゾーンに影響を与えることを防ぐことによって、リソースの隔離性を高めます。ゾーン内の各プロジェクトに対するプロセステーブルスロットリソースの割り当ては、project.max-processes リソース制御 (「使用可能なリソース制御」に記載) を使用して設定できます。この制御のグローバルプロパティー名は max-processes です。zone.max-processes リソース制御は、zone.max-lwps リソース制御を含むこともできます。zone.max-processes が設定されていて zone.max-lwps が設定されていない場合、zone.max-lwps はゾーンのブート時に暗黙的に zone.max-processes の値の 10 倍に設定されます。正常なプロセスとゾンビプロセスの両方がプロセステーブルスロットを占有するため、max-processes 制御がプロセステーブルを消費しつくすゾンビプロセスから保護します。ゾンビプロセスには本来 LWP がないため、max-lwps でこの可能性から保護することはできません。
zone.max-msg-ids、zone.max-sem-ids、zone.max-shm-ids、および zone.max-shm-memory の各リソース制御は、ゾーン内のすべてのプロセスで使用される System V リソースを制限します。ゾーン内のプロジェクト間での System V リソースの割り当ては、これらのリソース制御の project バージョンを使用して制御できます。これらの制御のグローバルプロパティー名は、max-msg-ids、max-sem-ids、max-shm-ids、および max-shm-memory です。
zone.max-swap リソース制御は、ゾーン内のユーザープロセスのアドレス空間マッピングと tmpfs マウントで消費されるスワップを制限します。prstat -Z の出力は「スワップ」列を表示します。報告されるスワップは、ゾーンのプロセスと tmpfs マウントで消費されるスワップの合計量です。この値により、各ゾーンで予約されているスワップを監視しやすくなり、適切な zone.max-swap 設定を選択することができます。
表 16-1 ゾーン規模のリソース制御
|
prctl コマンドを使用すると、実行中のプロセスに対してこれらの制限を指定できます。例については、「prctl コマンドを使用して大域ゾーンの FSS 配分を設定する方法」を参照してください。prctl コマンドで指定された制限には持続性がありません。システムがリブートされると、制限は無効になります。
attr リソースの型を使ってゾーンのコメントを追加できます。詳細は、「ゾーンの構成方法」を参照してください。