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

第 27 章 Solaris のゾーン管理 (概要)

この章では、次の一般的なゾーン管理について説明します。

lx ブランドゾーンについては、パート III「lx ブランドゾーン」を参照してください。

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

Solaris 10 1/06: 「ゾーン内でのファイルシステムのマウント解除」という節が新しく追加されています。

Solaris 10 1/06: ゾーンのバックアップ手順と復元手順に関する節が新しく追加されています。「ゾーンがインストールされている Solaris システムのバックアップについて」を参照してください。

Solaris 10 6/06: 「ゾーン内でのファイルシステムのマウント」の表に ZFS エントリが追加されています。

Solaris 10 8/07: このリリースでは、次の情報が新しく追加または更新されました。

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

大域ゾーンの可視性とアクセス

大域ゾーンは、システムのデフォルトゾーンとしても、システム規模の管理制御用ゾーンとしても機能します。この二重の役割と関係のある管理上の問題が存在します。ゾーン内部のアプリケーションはほかのゾーン内のプロセスおよびほかのシステムオブジェクトにアクセスするため、管理操作の効果が予期したものよりも大きい場合があります。たとえば、サービスの停止スクリプトでは、プロセスを終了させるためのシグナルの送信にしばしば pkill が使用されます。大域ゾーンからこの種のスクリプトを実行すると、システム内の該当するすべてのプロセスが、ゾーンに関係なくシグナルを送信します。

多くの場合、システム規模の範囲が必要になります。たとえば、システム規模の資源使用状況を監視する場合、システム全体のプロセス統計情報を表示する必要があります。大域ゾーンのアクティビティーだけのビューには、システム資源の一部または全体を共有可能なシステム内のほかのゾーンからの関連情報が欠落しています。この種のビューは、CPU などのシステム資源が資源管理機能を使用して厳密に区分されていない場合、特に重要です。

このため、大域ゾーン内のプロセスから、非大域ゾーン内のプロセスおよびほかのオブジェクトを監視できます。これにより、この種のプロセスがシステム規模の監視機能を備えることが可能になります。ほかのゾーン内のプロセスを制御したりシグナルを送信したりする機能は、PRIV_PROC_ZONE 特権により制限されます。この特権は、特権のないプロセスに設定された制限を無効にできるため、PRIV_PROC_OWNER に類似しています。この場合の制限は、大域ゾーン内の特権のないプロセスはほかのゾーン内のプロセスにシグナルを送信したり制御したりすることはできない、というものです。これは、プロセスのユーザー ID が一致するか、動作しているプロセスが PRIV_PROC_OWNER 特権を保持している場合でも適用されます。PRIV_PROC_ZONE 特権を、そうでなければ特権の付与されたプロセスから削除して、大域ゾーンへの操作に制限できます。

zoneidlist を使用した照合プロセスの詳細は、pgrep(1) および pkill(1) のマニュアルページを参照してください。

ゾーン内でのプロセス ID の可視性

同一ゾーン内のプロセスだけが、killpriocntl コマンドなどの、プロセス ID を指定するシステムコールインタフェースを介して表示されます。詳細は、kill(1) および priocntl(1) のマニュアルページを参照してください。

ゾーン内のシステム監視機能

ps コマンドに、次の変更が加えられました。

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

-z zonename オプションが、次の Solaris ユーティリティーに追加されました。このオプションを使用して情報をフィルタ処理し、指定したゾーンだけを含めることができます。

コマンドに加えられた変更の全一覧については、表 27–5 を参照してください。

非大域ゾーンのノード名

uname n により返される -/etc/nodename 内のノード名は、ゾーン管理者が設定できます。ノード名は一意でなければなりません。

ファイルシステムと非大域ゾーン

この節では、ゾーンがインストールされている Solaris システムでファイルシステムを使用する場合の問題について説明します。各ゾーンは、ゾーンの root と呼ばれるディレクトリをルートとする、ファイルシステム階層の独自領域を保持します。ゾーン内のプロセスは、ゾーンルート以下の階層部分内のファイルだけにアクセスできます。ゾーン内で chroot ユーティリティーを使用できますが、プロセスをゾーン内のルートパスに制限する場合だけです。chroot の詳細については、chroot(1M) のマニュアルページを参照してください。

-o nosuid オプション

mount ユーティリティーで -o nosuid オプションを指定する場合、次の機能を利用できます。

mount(1M) のマニュアルページに記載されているように、このファイルシステム固有オプションは、mount ユーティリティーでマウントできるすべての Solaris ファイルシステムで使用できます。これらのファイルシステムの一覧については、このマニュアルの 「ゾーン内でのファイルシステムのマウント」を参照してください。マウント機能についても説明します。-o nosuid オプションの詳細は、『Solaris のシステム管理 (ネットワークサービス)』の「ネットワークファイルシステムへのアクセス (リファレンス)」を参照してください。

ゾーン内でのファイルシステムのマウント

ファイルシステムをゾーン内部でマウントする場合、nodevices オプションが適用されます。たとえば、ゾーンに、UFS ファイルシステムに対応するブロックデバイス (/dev/dsk/c0t0d0s7) および raw デバイス (/dev/rdsk/c0t0d0s7) へのアクセスが許可される場合、ゾーン内部からマウントを行うと、ファイルシステムのマウントで自動的に nodevices オプションが適用されます。この規則は、zonecfg 構成を使用して指定されたマウントには適用されません。

次の表に、非大域ゾーン内でファイルシステムをマウントする場合のオプションを示します。これらの補助的なマウント方法の実行手順については、「ゾーンを構成、検証、および確定する」および 「稼働中の非大域ゾーン内でファイルシステムをマウントする」を参照してください。

/usr/lib/fstype/mount 内にマウントバイナリが存在する場合、表に含まれない任意のファイルシステムタイプを構成内で指定できます。

ファイルシステム 

非大域ゾーン内のマウントオプション 

AutoFS 

マウントに zonecfg を使用することはできません。大域ゾーンから非大域ゾーン内に手動でマウントすることもできません。ゾーン内部からマウントすることは可能です。

CacheFS 

非大域ゾーン内では使用できません。 

FDFS 

zonecfg を使用してマウントできます。大域ゾーンから非大域ゾーン内に手動でマウントできます。ゾーン内部からマウントできます。

HSFS 

zonecfg を使用してマウントできます。大域ゾーンから非大域ゾーン内に手動でマウントできます。ゾーン内部からマウントできます。

LOFS 

zonecfg を使用してマウントできます。大域ゾーンから非大域ゾーン内に手動でマウントできます。ゾーン内部からマウントできます。

MNTFS 

マウントに zonecfg を使用することはできません。大域ゾーンから非大域ゾーン内に手動でマウントすることもできません。ゾーン内部からマウントすることは可能です。

NFS 

マウントに zonecfg を使用できません。ゾーン内で現在サポートされているバージョンである V2、V3、および V4 を、ゾーン内からマウントできます。

PCFS  

zonecfg を使用してマウントできます。大域ゾーンから非大域ゾーン内に手動でマウントできます。ゾーン内部からマウントできます。

PROCFS 

マウントに zonecfg を使用することはできません。大域ゾーンから非大域ゾーン内に手動でマウントすることもできません。ゾーン内部からマウントすることは可能です。

TMPFS 

zonecfg を使用してマウントできます。大域ゾーンから非大域ゾーン内に手動でマウントできます。ゾーン内部からマウントできます。

UDFS 

zonecfg を使用してマウントできます。大域ゾーンから非大域ゾーン内に手動でマウントできます。ゾーン内部からマウントできます。

UFS 

zonecfg を使用してマウントできます。大域ゾーンから非大域ゾーン内に手動でマウントできます。ゾーン内部からマウントできます。

XMEMFS 

zonecfg を使用してマウントできます。大域ゾーンから非大域ゾーン内に手動でマウントできます。ゾーン内部からマウントできます。

このファイルシステムのサポートは、Solaris システムの将来のリリースから削除される予定です。 

ZFS 

zonecfg dataset および fs 資源タイプを使用してマウントできます。

詳細は、「ゾーンの構成方法」「稼働中の非大域ゾーン内でファイルシステムをマウントする」、および mount(1M) のマニュアルページを参照してください。

ゾーン内でのファイルシステムのマウント解除

ファイルシステムをマウント解除できるかどうかは、どの管理者がそのファイルシステムを最初にマウントしたかによって決まります。zonecfg コマンドを使用してゾーンを構成するときにファイルシステムが指定されている場合は、大域ゾーンがそのマウントの所有者となるので、非大域ゾーンの管理者はそのファイルシステムのマウントを解除することはできません。非大域ゾーンの /etc/vfstab ファイルにマウントを指定するなどの方法でファイルシステムが非大域ゾーンからマウントされている場合には、その非大域ゾーンの管理者はそのファイルシステムのマウントを解除できます。

セキュリティーの制限およびファイルシステムの動作

ゾーン内部から特定のファイルシステムをマウントする場合、適用されるセキュリティーの制限が存在します。ほかのファイルシステムは、ゾーン内でマウントされたときに特有の動作を行います。変更されたファイルシステムの一覧を、次に示します。

AutoFS

autofs は、自動的に適切なファイルシステムをマウントするためのクライアント側のサービスです。クライアントが現在マウントされていないファイルシステムにアクセスしようとすると、AutoFS ファイルシステムはその要求に介入し、automountd を呼び出して要求されたディレクトリをマウントします。ゾーン内で確立された AutoFS マウントは、そのゾーンだけで有効です。大域ゾーンを含むほかのゾーンからそのマウントにアクセスすることはできません。ゾーンが停止または再起動すると、マウントは削除されます。AutoFS の詳細は、『Solaris のシステム管理 (ネットワークサービス)』「autofs のしくみ」を参照してください。

各ゾーンは、automountd の独自コピーを実行します。自動マップおよびタイムアウトは、ゾーン管理者により制御されます。大域ゾーンから非大域ゾーンの AutoFS マウントポイントを横断的に使用して、別のゾーン内でマウントを始動させることはできません。

別のマウントが始動する際、カーネル内で特定の AutoFS マウントが作成されます。この種のマウントは、一括してマウントまたはマウント解除する必要があるため、通常の umount インタフェースを使用して削除することはできません。この機能は、ゾーンの停止処理用であることに注意してください。

MNTFS

MNTFS は、ローカルシステムのマウント済みファイルシステムのテーブルに読み取り専用アクセスを提供する仮想ファイルシステムです。非大域ゾーン内から mnttab を使用して表示可能なファイルシステムのセットは、ゾーン内でマウントされたファイルシステムセットおよびルート (/) のエントリで構成されます。/dev/rdsk/c0t0d0s0 などの、ゾーン内からアクセス不可能な特殊なデバイスを保持するマウントポイントは、マウントポイントと同じ特殊なデバイスセットを保持します。システム内のすべてのマウントが、大域ゾーンの /etc/mnttab テーブルから表示可能になります。MNTFS の詳細は、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 18 章「ファイルシステムのマウントとマウント解除 (手順)」を参照してください。

NFS

ゾーン内部で確立された NFS マウントは、そのゾーンでのみ有効です。大域ゾーンを含むほかのゾーンからそのマウントにアクセスすることはできません。ゾーンが停止または再起動すると、マウントは削除されます。

mount_nfs(1M) のマニュアルページに記載されているように、NFS サーバーが独自のファイルシステムのマウントを試みることはできません。このため、大域ゾーンによりエクスポートされたファイルシステムを、ゾーンが NFS マウントしてはいけません。ゾーンを NFS サーバーにすることはできません。ゾーン内部からの NFS マウントは、nodevices オプションを使用してマウントされたかのように動作します。

nfsstat コマンドの出力は、コマンドが実行されたゾーンにのみ関係があります。たとえば、コマンドが大域ゾーン内で実行される場合、大域ゾーンに関する情報だけが出力されます。nfsstat コマンドの詳細は、nfsstat(1M) のマニュアルページを参照してください。

開かれているファイルのいずれか、またはそのアドレス空間のいずれかの部分が NFS 上に存在する場合、zlogin コマンドは失敗します。詳細は、zlogin コマンド」を参照してください。

PROCFS

PROCFS とも呼ばれる /proc ファイルシステムは、プロセスの可視性とアクセス制限、およびプロセスのゾーン関連性に関する情報を提供します。/proc では、同じゾーン内のプロセスだけを表示できます。

大域ゾーン内のプロセスから、非大域ゾーン内のプロセスおよびほかのオブジェクトを監視できます。これにより、この種のプロセスがシステム規模の監視機能を備えることが可能になります。

ゾーン内部からは、procfs マウントは nodevices オプションを使用してマウントされたかのように動作します。procfs の詳細は、proc(4) のマニュアルページを参照してください。

LOFS

LOFS でマウント可能なファイルシステムの範囲は、ゾーンで表示可能なファイルシステム部分に限定されています。このため、ゾーン内での LOFS マウントには制限はありません。

UFS、UDFS、PCFS、およびその他のストレージに基づいたファイルシステム

zonecfg コマンドを使用して、UFS などの fsck バイナリを保持するストレージに基づいたファイルシステムを構成する場合、ゾーン管理者は raw パラメータを指定する必要があります。このパラメータは、/dev/rdsk/c0t0d0s7 などの raw (文字) デバイスを示します。zoneadmd は、このデバイス上で fsck コマンドを非対話型の検査専用モード (fsck -m) で自動実行してから、ファイルシステムをマウントします。fsck が失敗した場合、zoneadmd を使用してゾーンを準備完了状態にすることはできません。raw により指定されるパスを、相対パスにするこ とはできません。

/usr/lib/ fstype/fsck 内で fsck バイナリを提供しないファイルシステムで、デバイスを fsck に指定するのは誤りです。また、そのファイルシステムに fsck バイナリが存在する場合に、デバイスを fsck に指定しないことも誤りです。

詳細は、zoneadmd デーモン」および fsck(1m) のマニュアルページを参照してください。

ZFS

zonecfg コマンドに add dataset 資源を指定して実行することにより、非大域ゾーンに ZFS データセットを追加できます。データセットは非大域ゾーンでマウントされ可視になり、大域ゾーンでは不可視になります。ゾーン管理者は、そのデータセット内のファイルシステムの作成と破棄、クローンの作成と破棄、およびデータセットのプロパティーの変更を行うことができます。

zfszoned 属性は、データセットが非大域ゾーンに追加されたかどうかを示します。


# zfs get zoned tank/sales
NAME          PROPERTY    VALUE      SOURCE
tank/sales    zoned       on         local

大域ゾーンのデータセットを共有する場合は、zonecfg コマンドとともに add fs サブコマンドを使用して、LOFS マウントした ZFS ファイルシステムを追加できます。大域管理者は、データセットのプロパティーの設定および制御を担当します。

ZFS の詳細については、『Oracle Solaris ZFS 管理ガイド』の第 10 章「Oracle Solaris ZFS の高度なトピック」を参照してください。

NFS クライアントとして機能する非大域ゾーン

ゾーンは、NFS クライアントとしても機能できます。バージョン 2、バージョン 3、およびバージョン 4 プロトコルがサポートされます。これらの NFS バージョンの詳細は、『Solaris のシステム管理 (ネットワークサービス)』「NFS サービスの機能」を参照してください。

デフォルトのバージョンは、NFS バージョン 4 です。次のいずれかの方法を使用して、クライアント上でほかの NFS バージョンを有効にできます。

ゾーン内での mknod の使用禁止

mknod(1M) のマニュアルページに記載されているように、mknod コマンドを使用して、非大域ゾーン内で特殊ファイルを作成することはできません。

ファイルシステムの行き来

ゾーンのファイルシステム名前空間は、大域ゾーンからアクセス可能な名前空間の一部です。大域ゾーン内の特権のないプロセスが、非大域ゾーンのファイルシステム階層を行き来することはできません。これには、次のような理由があります。

別のゾーン用にマウントされた AutoFS ノードへのアクセスを試みても、失敗します。大域管理者は、その子孫がほかのゾーンに含まれる自動マップを保持してはいけません。

大域ゾーンから非大域ゾーンにアクセスする際の制限

非大域ゾーンのインストール後に、システムのバックアップユーティリティー以外のコマンドを使用して、大域ゾーンからそのゾーンに直接アクセスしてはいけません。また、非大域ゾーンを未知の環境に公開した後は、そのゾーンが安全であると考えることはできません。たとえば、公開されたネットワーク上に配置されたゾーンについて考えてみましょう。この場合、ゾーンのセキュリティーが低下し、ファイルシステムの内容が変更される可能性があります。セキュリティーが低下する可能性がある場合、大域管理者はゾーンを信頼できないものとして処理する必要があります。

次の両方の条件が当てはまる場合、-R オプションまたは -b オプション (またはこれと同等なオプション) を使って代替ルートを指定可能なコマンドを使用してはいけません。

たとえば、pkgadd ユーティリティーに -R root_path オプションを指定して、非大域ゾーンのルートパスを保持する大域ゾーンから実行する場合が、この条件に該当します。

次に、-R と代替ルートパスを使用するコマンド、プログラム、およびユーティリティーを一覧表示します。

次に、-b と代替ルートパスを使用するコマンドおよびプログラムを一覧表示します。

共有 IP 非大域ゾーンにおけるネットワーク

ゾーンがインストールされている Solaris システムでは、ゾーンはネットワーク経由で互いに通信できます。ゾーンはすべて別個の結合または接続を保持します。また、すべてのゾーンは独自のサーバーデーモンを実行できます。これらのデーモンは、同一のポート番号で競合することなく待機できます。IP スタックは、着信接続の IP アドレスを考慮に入れることで競合を解決します。IP アドレスにより、ゾーンが識別されます。

共有 IP ゾーンの区分化

ゾーンをサポートするシステム内の IP スタックは、ゾーン間のネットワークトラフィックの分離を実装します。IP トラフィックを受け取るアプリケーションは、同じゾーンに送信されたトラフィックの受信だけを実行できます。

システム上の各論理インタフェースは、特定のゾーンに所属します。デフォルトは、大域ゾーンです。zonecfg ユーティリティー経由でゾーンに割り当てられた論理ネットワークインタフェースは、ネットワーク経由での通信に使用されます。各ストリームおよび接続は、それを開いたプロセスのゾーンに所属します。

上位層ストリームと論理インタフェース間の結合は、制限されます。ストリームが確立できるのは、同一ゾーン内の論理インタフェースへの結合だけです。同様に、論理インタフェースからのパケットを渡すことができるのは、論理インタフェースと同じゾーン内の上位層ストリームに対してだけです。

各ゾーンは、独自のバインドセットを保持します。アドレスが使用中であるため、各ゾーンは、同一のポート番号で待機する同じアプリケーションを、バインドが失敗することなく稼働可能です。各ゾーンは、次に示すサービスの独自のバージョンを実行できます。

大域ゾーン以外のゾーンは、ネットワークへのアクセスが制限されています。標準の TCP および UDP ソケットインタフェースが利用可能ですが、SOCK_RAW ソケットインタフェースは ICMP (Internet Control Message Protocol) に制限されています。ICMP は、ネットワークのエラー状況を検出および報告したり、ping コマンドを使用するのに必要です。

共有 IP ネットワークインタフェース

ネットワーク接続を必要とする非大域ゾーンには、それぞれ 1 つ以上の専用 IP アドレスがあります。これらのアドレスは、ifconfig コマンドを使ってゾーン内に配置可能な論理ネットワークインタフェースに関連付けられています。zonecfg により構成されるゾーンネットワークインタフェースは、起動時に自動的に設定されてゾーン内に配置されます。ifconfig コマンドを使用すると、ゾーンの稼働中に論理インタフェースを追加または削除できます。インタフェース構成およびネットワーク経路を変更できるのは、大域管理者だけです。

非大域ゾーン内部では、そのゾーンのインタフェースだけを ifconfig で表示できます。

詳細は、ifconfig(1m) および if_tcp(7P) のマニュアルページを参照してください。

同一マシン上の共有 IP ゾーン間の IP トラフィック

次の表に示す宛先およびゾーンの「一致する経路」が存在する場合にのみ、同一マシン上の 2 つのゾーン間でパケットの配信が許可されます。

一致情報は、次のように実装されます。

共有 IP ゾーンにおける Solaris IP フィルタ

Solaris IP フィルタは、ステートフルパケットフィルタリングとネットワークアドレス変換 (NAT) を行います。ステートフルパケットフィルタは、アクティブな接続の状態を監視し、取得した情報を使用して、ファイアウォールの通過を許可するネットワークパケットを決定することができます。Solaris IP フィルタには、ステートレスパケットのフィルタリングとアドレスプールの作成と管理を行う機能もあります。詳細は、『Solaris のシステム管理 (IP サービス)』の第 25 章「Oracle Solaris IP フィルタ (概要)」を参照してください。

ループバックフィルタリングをオンに設定することで、非大域ゾーンで Solaris IP フィルタを有効にすることができます。詳細は、『Solaris のシステム管理 (IP サービス)』の第 26 章「Oracle Solaris IP フィルタ (作業)」で説明されています。

Solaris IP フィルタは、オープンソースの IP Filter ソフトウェアをベースにしています。

共有 IP ゾーン内の IP ネットワークマルチパス

IP ネットワークマルチパス (IPMP) は、同一の IP リンク上に複数のインタフェースを保持するシステムで、物理インタフェースの障害検出および透過的なネットワークアクセスフェイルオーバーを提供します。IPMP も、複数のインタフェースを保持するシステムについて、パケットの負荷分散を提供します。

すべてのネットワーク構成は、大域ゾーン内で行われます。大域ゾーン内で IPMP を構成した後で、この機能を非大域ゾーンに拡張できます。ゾーンの構成時に、ゾーンのアドレスを IPMP グループ内に配置することでこの機能は拡張されます。その後、大域ゾーン内のいずれかのインタフェースで障害が発生すると、非大域ゾーンアドレスが別のインタフェースカードに移されます。1 つの共有 IP ゾーンが複数の IP アドレスを持つこと、共有 IP ゾーンが複数の IPMP グループに属すること、および特定の IPMP グループを複数の共有 IP ゾーンで使用することが可能です。

指定された非大域ゾーン内で、ゾーンに関連するインタフェースだけを ifconfig コマンドを使用して表示できます。

「IP ネットワークマルチパス機能を共有 IP 非大域ゾーンに拡張する方法」を参照してください。ゾーンの構成手順については、「ゾーンの構成方法」を参照してください。IPMP の機能、構成要素、および使用方法の詳細は、『Solaris のシステム管理 (IP サービス)』の第 30 章「IPMP の紹介 (概要)」を参照してください。

Solaris 10 8/07: 排他的 IP 非大域ゾーンにおけるネットワーク

排他的 IP ゾーンは、IP 関連の状態とチューニング変数を独自に保持します。ゾーンの構成時に、独自のデータリンクセットがゾーンに割り当てられます。

排他的 IP 非大域ゾーンで使用できる機能については、「Solaris 10 8/07: 排他的 IP 非大域ゾーン」を参照してください。IP ndd 変数のチューニングについては、『Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル』を参照してください。

排他的 IP ゾーンの区分化

排他的 IP ゾーンはそれぞれ個別の TCP/IP スタックを持っているため、下位のデータリンク層まで分離されます。排他的 IP ゾーンには、1 つ以上のデータリンク名が大域管理者によって割り当てられます。データリンク名は、NIC または NIC 上の VLAN の場合があります。ゾーン管理者は、大域ゾーンの場合と同じ柔軟性とオプションで、これらのデータリンクの IP を構成できます。

排他的 IP データリンクインタフェース

1 つのデータリンク名は、1 つのゾーンだけに割り当てる必要があります。

dladm show-link コマンドを使用して、実行中のゾーンに割り当てられているデータリンクを表示できます。

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

同一マシン上の排他的 IP ゾーン間の IP トラフィック

排他的 IP ゾーン間での IP パケットの内部ループバックはありません。すべてのパケットが下位のデータリンクまで送信されます。これは通常、パケットがネットワークインタフェース上に送信されることを意味します。その後、Ethernet スイッチや IP ルーターなどのデバイスがパケットを送信先へ転送します。この送信先は、送信元と同じマシン上の別のゾーンである可能性もあります。

排他的 IP ゾーンにおける Solaris IP フィルタ

排他的 IP ゾーンでは、大域ゾーンのものと同じ IP フィルタ機能を使用できます。排他的 IP ゾーンでの IP フィルタの構成方法も大域ゾーンと同じです。

排他的 IP ゾーン内の IP ネットワークマルチパス

IP ネットワークマルチパス (IPMP) は、同一の IP リンク上に複数のインタフェースを保持するシステムで、物理インタフェースの障害検出および透過的なネットワークアクセスフェイルオーバーを提供します。IPMP は、耐障害性に加えて、複数のインタフェースを保持するシステムについて、パケットの負荷分散も提供します。

データリンク構成は、大域ゾーン内で行われます。最初に、zonecfg を使用して、複数のデータリンクインタフェースをゾーンに割り当てます。複数のデータリンクインタフェースを同じ IP サブネットに接続する必要があります。その後、排他的 IP ゾーン内からゾーン管理者が IPMP を構成することができます。複数の IPMP グループを特定の排他的 IP ゾーンに割り当てることができますが、それらの IPMP グループを他のゾーンと共有することはできません。

非大域ゾーンでのデバイスの使用

あるゾーンのプロセスが別のゾーンで実行中のプロセスに干渉することがないよう、ゾーン内部で利用可能なデバイスセットには制限が課されています。たとえば、ゾーン内のプロセスが、カーネルメモリーおよびルートディスクの内容を変更することはできません。このため、デフォルトでは、ゾーン内で安全に利用可能であると見なされる特定の仮想デバイスだけを使用できます。zonecfg ユーティリティーを使用すると、利用可能なデバイスを特定のゾーンに追加できます。

/dev および /devices 名前空間

devfs(7FS) のマニュアルページで説明されているように、Solaris システムでは /devices の管理に devfs ファイルシステムが使用されます。この名前空間内の各要素は、ハードウェアデバイス、仮想デバイス、またはネクサスデバイスへの物理パスを表します。名前空間には、デバイスツリーが反映されます。したがって、ファイルシステムは、ディレクトリおよびデバイス特殊ファイルの階層により生成されます。

現在はルート (/) ファイルシステムの一部になっている /dev ファイル階層は、/devices 内に存在する物理パスへのシンボリックリンク (論理パス) で構成されています。アプリケーションは、/dev 内に存在するデバイスへの論理パスを参照します。/dev ファイルシステムは、読み取り専用のマウントを使用して、ゾーン内にループバックマウントされます。

/dev ファイル階層を管理するシステムは、次に示す構成要素で構成されます。


注意 – 注意 –

/devices パス名に依存するサブシステムは、/dev パス名が確立されるまで、非大域ゾーンでは実行できません。


排他使用のデバイス

デバイスを特定のゾーンに割り当てることが必要な場合があります。特権のないユーザーがブロックデバイスにアクセスできるようにすると、これらのデバイスの使用が許可されて、システムパニックやバスリセットなどの不具合が生じる場合があります。この種の割り当てを行う前に、次の点を考慮してください。

デバイスドライバの管理

modinfo(1M) のマニュアルページに記載されているように、非大域ゾーン内で modinfo コマンドを使用して、読み込まれたカーネルモジュールのリストを検査できます。

カーネル、デバイス、およびプラットフォームの管理に関係した大半の操作は、非大域ゾーンの内部では機能しません。これは、プラットフォームハードウェア構成を変更すると、ゾーンのセキュリティーモデルに違反するためです。これらの操作には、次のことが含まれます。

非大域ゾーンで動作しないか、変更されるユーティリティー

非大域ゾーンで動作しないユーティリティー

次のユーティリティーは、通常は使用できないデバイスに依存しているため、ゾーン内では動作しません。

SPARC: 非大域ゾーンでの使用に合わせて変更されたユーティリティー

eeprom ユーティリティーをゾーン内で使用して、設定を表示できます。このユーティリティーを使用して、設定を変更することはできません。詳細は、eeprom(1M) および openprom(7D) のマニュアルページを参照してください。

非大域ゾーンでのアプリケーションの実行

通常は、すべてのアプリケーションを非大域ゾーンで実行できます。ただし、次のタイプのアプリケーションは、この環境に適さない場合があります。

非大域ゾーンで使用される資源制御

ゾーン内での資源管理機能の使用に関する追加情報については、このマニュアルの第 1 部の、この機能について説明した章を参照してください。

資源管理の章に記載された資源制御および属性はすべて、大域ゾーンおよび非大域ゾーンの /etc/project ファイル、NIS マップ、または LDAP ディレクトリサービスで設定できます。指定されたゾーンの設定は、そのゾーンにのみ影響を及ぼします。異なるゾーン内で自動実行中のプロジェクトは、ゾーンごとに別個の制御セットを保持できます。たとえば、大域ゾーン内のプロジェクト A を project.cpu-shares=10 に設定し、非大域ゾーン内の Project A を project.cpu-shares=5 に設定できます。それぞれが該当するゾーン内でのみ機能する、rcapd のインスタンスをシステム上で複数実行できます。

ゾーン内部のプロジェクト、タスク、およびプロセスを制御するため、ゾーン内で使用する資源の制御および属性は、プールおよびゾーン規模の資源制御に関する追加要件に従います。

非大域ゾーンには、「1 ゾーン、1 プール」という規則が適用されます。1 つのプール内の資源を複数の非大域ゾーンが共有してもかまいません。ただし、十分な特権を付与されたプロセスを使って、大域ゾーン内のプロセスを任意のプールにバインドすることが可能です。資源コントローラ poold は、大域ゾーン内だけで動作します。大域ゾーン内には、資源コントローラが動作するプールが複数存在します。poolstat ユーティリティーを非大域ゾーンで実行すると、そのゾーンに関連付けられているプールの情報だけが表示されます。非大域ゾーンで引数なしで pooladm コマンドを実行すると、そのゾーンに関連付けられているプールの情報だけが表示されます。

ゾーン規模の資源制御が project ファイルで設定されている場合、その資源制御は有効にはなりません。ゾーン規模の資源制御は、zonecfg ユーティリティーを使って設定されます。

ゾーンがインストールされている Solaris システムでの公平配分スケジューラ

この節では、ゾーンで公平配分スケジューラ (FSS) を使用する方法について説明します。

非大域ゾーン内の FSS 配分分割

ゾーンの FSS CPU 配分は、階層的です。大域ゾーンおよび非大域ゾーンの配分は、ゾーン規模の資源制御 zone.cpu-shares を使って大域管理者が設定します。次に、そのゾーン内のプロジェクトごとに資源制御 project.cpu-shares を定義して、ゾーン規模の制御で設定された配分をさらに分割できます。

zonecfg コマンドを使用してゾーンに配分を割り当てる方法については、「大域ゾーンの zone.cpu-shares を設定する方法」を参照してください。project.cpu-shares の詳細は、「使用可能な資源制御」を参照してください。配分を一時的に設定する方法を示す手順例については、「ゾーンがインストールされている Solaris システムでの公平配分スケジューラの使用」も参照してください。

ゾーン間の配分均衡

zone.cpu-shares を使用して、FSS 配分を大域ゾーンと非大域ゾーンに割り当てることができます。FSS がシステムのデフォルトのスケジューラになっている場合で、配分が割り当てられていないときは、大域ゾーンも含め各ゾーンにはデフォルトで 1 つの配分が付与されます。システムに 1 つの非大域ゾーンが存在し、zone.cpu-shares を使ってこのゾーンに 2 つの配分を付与する場合、これにより非大域ゾーンが大域ゾーンとの関連で受ける CPU の比率が定義されます。2 つのゾーン間の CPU 比率は 2:1 です。

ゾーンがインストールされている Solaris システムでの拡張アカウンティング

拡張アカウンティングサブシステムを大域ゾーンで実行した場合、非大域ゾーンを含むシステム全体の情報が収集および報告されます。大域管理者は、ゾーンごとの資源消費を決定することもできます。

拡張アカウンティングサブシステムを使用すると、プロセスおよびタスクに基づいたアカウンティングに対応した異なるアカウンティング設定およびファイルを、ゾーン単位で指定することが可能になります。exacct レコードに、プロセスの場合はゾーン名 EXD PROC ZONENAME のタグを付け、タスクの場合はゾーン名 EXD TASK ZONENAME のタグを付けることができます。アカウンティングレコードは、大域ゾーンのアカウンティングファイルおよびゾーン単位のアカウンティングファイルに書き込まれます。EXD TASK HOSTNAMEEXD PROC HOSTNAME、および EXD HOSTNAME レコードには、大域ゾーンのノード名の代わりに、プロセスまたはタスクが実行されたゾーンの uname -n 値が含まれます。

IPQoS フローアカウンティングの詳細は、『Solaris のシステム管理 (IP サービス)』の第 36 章「フローアカウンティングの使用と統計情報の収集 (手順)」を参照してください。

非大域ゾーン内の特権

プロセスは、特権の一部に制限されています。特権を制限することで、ほかのゾーンに影響を及ぼす可能性がある操作がゾーンで実行されないようにします。特権セットにより、特権が付与されたユーザーがゾーン内で実行可能な機能が制限されます。ゾーン内で利用可能な特権のリストを表示するには、ppriv ユーティリティーを使用します。

次の表に、Solaris の特権すべて、およびゾーン内での各特権の状態を示します。省略可能な特権は、デフォルト特権セットの一部ではありませんが、limitpriv プロパティーを使って指定できます。必須の特権が、生成される特権セットに含まれている必要があります。禁止された特権を、生成される特権セットに含めることはできません。

Solaris 10 11/06 リリースから、limitpriv プロパティーが使用可能になりました。

表 27–1 ゾーン内の特権の状態

特権 

状態 

注釈 

cpc_cpu

任意 

特定の cpc(3CPC) カウンタへのアクセス

dtrace_proc

任意 

fasttrap および pid プロバイダ。plockstat(1M)

dtrace_user

任意 

profile および syscall プロバイダ

graphics_access

任意 

ioctl(2) による agpgart_io(7I) へのアクセス

graphics_map

任意 

mmap(2) による agpgart_io(7I) へのアクセス

net_rawaccess

共有 IP ゾーンでは省略可能。 

排他的 IP ゾーンではデフォルト。 

raw PF_INET/PF_INET6 パケットアクセス

proc_clock_highres

任意 

高解像度タイマーの使用 

proc_priocntl

任意 

スケジューリングの制御。priocntl(1)

sys_ipc_config

任意 

IPC メッセージキューのバッファサイズの引き上げ 

sys_time

任意 

システム時間の操作。xntp(1M)

dtrace_kernel

禁止 

現在、未サポート 

proc_zone

禁止 

現在、未サポート 

sys_config

禁止 

現在、未サポート 

sys_devices

禁止 

現在、未サポート 

sys_linkdir

禁止 

現在、未サポート 

sys_net_config

禁止 

現在、未サポート 

sys_res_config

禁止 

現在、未サポート 

sys_suser_compat

禁止 

現在、未サポート 

proc_exec

必須、デフォルト 

init(1M) の起動に使用

proc_fork

必須、デフォルト 

init(1M) の起動に使用

sys_mount

必須、デフォルト 

必須ファイルシステムのマウントに必要 

sys_ip_config

必須、排他的 IP ゾーンではデフォルト 

共有 IP ゾーンでは禁止 

ゾーンの起動および排他的 IP ゾーンの IP ネットワークの初期化に必要 

contract_event

デフォルト 

契約ファイルシステムで使用 

contract_observer

デフォルト 

UID とは無関係な契約観察 

file_chown

デフォルト 

ファイル所有権の変更 

file_chown_self

デフォルト 

所有するファイルの所有者/グループの変更 

file_dac_execute

デフォルト 

モード/ACL に依存しない実行アクセス 

file_dac_read

デフォルト 

モード/ACL に依存しない読み取りアクセス 

file_dac_search

デフォルト 

モード/ACL に依存しない検索アクセス 

file_dac_write

デフォルト 

モード/ACL に依存しない書き込みアクセス 

file_link_any

デフォルト 

所有者に依存しないリンクアクセス 

file_owner

デフォルト 

所有者に依存しないその他のアクセス 

file_setid

デフォルト 

setidsetgid setuid ファイルのアクセス権の変更

ipc_dac_read

デフォルト 

モードに依存しない IPC 読み取りアクセス 

ipc_dac_owner

デフォルト 

モードに依存しない IPC 書き込みアクセス 

ipc_owner

デフォルト 

モードに依存しないその他の IPC アクセス 

net_icmpaccess

デフォルト 

ICMP パケットアクセス: ping(1M)

net_privaddr

デフォルト 

特権ポートへのバインド 

proc_audit

デフォルト 

監査レコードの生成 

proc_chroot

デフォルト 

root ディレクトリの変更

proc_info

デフォルト 

プロセスの検査 

proc_lock_memory

デフォルト 

メモリーのロック。shmctl(2) および mlock(3C)

この特権がシステム管理者によって非大域ゾーンに割り当てられている場合、ゾーンがすべてのメモリーをロックするのを防ぐために zone.max-locked-memory 資源制御の設定も検討してください。

proc_owner

デフォルト 

所有者に依存しないプロセス制御 

proc_session

デフォルト 

セッションに依存しないプロセス制御 

proc_setid

デフォルト 

ユーザー/グループ ID の任意設定 

proc_taskid

デフォルト 

呼び出し元へのタスク ID の割り当て 

sys_acct

デフォルト 

アカウンティングの管理 

sys_admin

デフォルト 

単純なシステム管理タスク 

sys_audit

デフォルト 

監査の管理 

sys_nfs

デフォルト 

NFS クライアントのサポート 

sys_resource

デフォルト 

資源制限の操作 

次の表に、Solaris Trusted Extensions の特権すべて、および各特権のゾーン内の状態を示します。省略可能な特権は、デフォルト特権セットの一部ではありませんが、limitpriv プロパティーを使って指定できます。


注 –

これらの特権が解釈されるのは、システムが Solaris Trusted Extensions を使って構成されている場合だけです。


表 27–2 ゾーン内での Solaris Trusted Extensions の特権の状態

Solaris Trusted Extensions の特権 

状態 

注釈 

file_downgrade_sl

任意 

ファイルまたはディレクトリの機密ラベルを、既存の機密ラベルを優先する機密ラベルに設定します。 

file_upgrade_sl

任意 

ファイルまたはディレクトリの機密ラベルを、既存の機密ラベルよりも優先される機密ラベルに設定します。 

sys_trans_label

任意 

機密ラベルの制御下にないラベルの変換 

win_colormap

任意 

カラーマップ制限の上書き 

win_config

任意 

X サーバーにより常時保持されるリソースの構成または破棄 

win_dac_read

任意 

クライアントのユーザー ID が所有していないウィンドウ資源からの読み取り 

win_dac_write

任意 

クライアントのユーザー ID が所有していないウィンドウ資源への書き込みまたは作成 

win_devices

任意 

入力デバイスでの操作の実行 

win_dga

任意 

ダイレクトグラフィックスアクセス X プロトコル拡張機能の使用。フレームバッファー特権が必要 

win_downgrade_sl

任意 

ウィンドウ資源の機密ラベルを、既存ラベルの制御下にある新規ラベルに変更 

win_fontpath

任意 

フォントパスの追加 

win_mac_read

任意 

クライアントのラベルを制御するラベルを使用した、ウィンドウ資源からの読み取り 

win_mac_write

任意 

クライアントのラベルと同等ではないラベルを使用した、ウィンドウ資源への書き込み 

win_selection

任意 

確認者の介入なしでの要求データの移動 

win_upgrade_sl

任意 

ウィンドウ資源の機密ラベルを、既存ラベルの制御下にない新規ラベルに変更 

net_bindmlp

デフォルト 

マルチレベルポート (MLP) へのバインドの許可 

net_mac_aware

デフォルト 

NFS を使用した読み取りの許可 

非大域ゾーン構成内の特権を変更する方法については、「ゾーンを構成、検証、および確定する」を参照してください。

特権セットを検査する方法については、ppriv ユーティリティーの使用」を参照してください。特権の詳細は、ppriv(1) のマニュアルページおよび『Solaris のシステム管理 (セキュリティサービス)』を参照してください。

ゾーン内での IP セキュリティーアーキテクチャーの使用

IP データグラム保護を提供する IPsec (Internet Protocol Security Architecture) については、『Solaris のシステム管理 (IP サービス)』の第 19 章「IP セキュリティーアーキテクチャー (概要)」を参照してください。IKE (Internet Key Exchange) プロトコルを使用して、認証および暗号化に必要な鍵材料が自動的に管理されます。

詳細は、ipsecconf(1M) および ipseckey(1M) のマニュアルページを参照してください。

共有 IP ゾーン内の IP セキュリティーアーキテクチャー

IPsec は、大域ゾーン内で使用できます。ただし、非大域ゾーン内では、IPsec で IKE を使用することはできません。そのため、大域ゾーンで Internet Key Exchange (IKE) プロトコルを使用して、非大域ゾーンの IPsec キーおよび IPSec ポリシーを管理する必要があります。構成中の非大域ゾーンに対応する送信元アドレスを使用します。

Solaris 10 8/07: 排他的 IP ゾーン内の IP セキュリティーアーキテクチャー

IPsec は、排他的 IP ゾーン内で使用できます。

ゾーン内での Solaris 監査の使用

Solaris 監査については、『Solaris のシステム管理 (セキュリティサービス)』の第 28 章「Solaris 監査 (概要)」を参照してください。監査を使用する際のゾーンの考慮事項については、次の節を参照してください。

監査レコードには、システムへのログインやファイルへの書き込みなどのイベントが記載されます。レコードは、監査データのセットであるトークンで構成されます。zonename トークンを使用して Solaris 監査を構成することで、監査イベントをゾーンごとに識別できます。zonename トークンを使用すると、次の情報を生成できます。

大域ゾーン内での監査の構成

Solaris 監査トレールは、大域ゾーンで構成されます。監査ポリシーが大域ゾーン内で設定され、すべてのゾーン内のプロセスに適用されます。イベントが発生したゾーンの名前を使って、監査レコードをマーク付けできます。監査レコード内にゾーン名を含めるには、非大域ゾーンをインストールする前に /etc/security/audit_startup ファイルを編集する必要があります。ゾーン名の選択では、大文字と小文字が区別されます。

すべてのゾーン監査レコードが含まれるよう、大域ゾーン内で監査を構成するには、/etc/security/audit_startup ファイルに次の行を追加します。


/usr/sbin/auditconfig -setpolicy +zonename

大域ゾーンの大域管理者として、auditconfig ユーティリティーを実行します。


global# auditconfig -setpolicy +zonename

追加情報については、audit_startup(1M)auditconfig(1M) のマニュアルページ、および『Solaris のシステム管理 (セキュリティサービス)』の「監査ファイルの構成 (作業マップ)」を参照してください。

非大域ゾーンのユーザー監査特性を構成する

非大域ゾーンのインストール時に、大域ゾーン内の audit_control ファイルおよび audit_user ファイルがゾーンの /etc/security ディレクトリにコピーされます。ゾーンの監査ニーズに合わせて、これらのファイルの修正が必要な場合があります。

たとえば、一部のユーザーをほかのユーザーとは異なる方法で監査するように、各ゾーンを構成できます。ユーザーごとに異なる事前選択基準を適用するには、audit_control ファイルおよび audit_user ファイルの両方を編集する必要があります。非大域ゾーン内の audit_user ファイルも必要に応じて改訂し、ゾーンのユーザーベースを反映する必要があります。監査するユーザーに応じて各ゾーンの構成を変えることができるため、audit_user ファイルを空にすることもできます。

詳細は、audit_control(4) および audit_user(4) のマニュアルページを参照してください。

特定の非大域ゾーンの監査レコードを提供する

「大域ゾーン内での監査の構成」で説明したように、zonename トークンを含めることで、Solaris 監査レコードをゾーン別に分類できます。 auditreduce コマンドを使用してレコードをゾーンごとに収集して、特定のゾーンのログを作成できます。

詳細は、audit_startup(1M) および auditreduce(1M) のマニュアルページを参照してください。

ゾーン内のコアファイル

coreadm コマンドを使用して、異常終了するプロセスにより生成されるコアファイルの名前と場所を指定できます。%z 変数を指定することで、プロセスが実行されたゾーンの zonename を含むコアファイルパスを生成できます。パス名は、ゾーンのルートディレクトリに対する相対パスです。

詳細は、coreadm(1M) および core(4) のマニュアルページを参照してください。

非大域ゾーン内での DTrace の実行

dtrace_proc 特権と dtrace_user 特権だけを必要とする DTrace プログラムは、非大域ゾーンで実行できます。非大域ゾーンで使用できる特権のセットにこれらの特権を追加するには、zonecfg limitpriv プロパティーを使用します。手順については、「DTrace を使用する方法」を参照してください。

dtrace_proc によってサポートされるプロバイダは、fasttrappid です。dtrace_user によってサポートされるプロバイダは、profilesyscall です。DTrace のプロバイダおよびアクションの有効範囲は、ゾーンに制限されます。

詳細は、「非大域ゾーン内の特権」も参照してください。

ゾーンがインストールされている Solaris システムのバックアップについて

非大域ゾーンを個別にバックアップしたり、大域ゾーンからシステム全体をバックアップしたりできます。

ループバックファイルシステムのディレクトリのバックアップ

非大域ゾーンと大域ゾーンでファイルを共有するときには、多くの場合、ループバックファイルシステムの読み取り専用マウント (通常は、/usr /lib/sbin、および /platform) が使用されます。このため、lofs ディレクトリをバックアップするときには、大域ゾーンのバックアップ方式を使用する必要があります。


注意 – 注意 –

非大域ゾーンで、大域ゾーンと共有されている lofs ファイルシステムをバックアップしないでください。非大域ゾーンの管理者が非大域ゾーンから lofs ファイルシステムを復元しようとすると、重大な問題が発生することがあります。


大域ゾーンからのシステムのバックアップ

次のような場合は、大域ゾーンからバックアップを実行することをお勧めします。

システム上の非大域ゾーンを個別にバックアップ

次のような場合は、非大域ゾーン内でバックアップを実行することをお勧めします。

非大域ゾーン内でバックアップするデータの決定

非大域ゾーン内のデータは、すべてバックアップできます。ゾーンの構成が頻繁に変更されない場合には、アプリケーションデータだけをバックアップすることもできます。

アプリケーションデータのみのバックアップ

アプリケーションデータがファイルシステムの特定の場所に格納されている場合には、このデータだけを定期的にバックアップすることもできます。ゾーンのルートファイルシステムはそれほど頻繁には変更されないため、頻繁にバックアップする必要がない場合もあります。

アプリケーションファイルがどこに格納されているかを確認する必要があります。アプリケーションファイルは次のような場所に格納されている可能性があります。

アプリケーション管理者がデータの格納場所を認識している場合には、ゾーンごとに書き込み可能ディレクトリを割り当てるように、システムを作成することもできます。バックアップがゾーンごとに格納されるので、大域ゾーンの管理者はその場所をシステム上のバックアップ対象の 1 つとして選択することができます。

一般的なデータベースバックアップ操作

データベースアプリケーションデータがデータベース固有のディレクトリに存在していない場合には、次の規則が適用されます。

テープによるバックアップ

非大域ゾーンだけが使用するファイルシステムについては、そのゾーンにとって都合のよい時間帯に、アプリケーションがわずかに休止している時間を利用して、スナップショットを作成することもできます。それらのスナップショットは、アプリケーションがサービスに戻ったあとに大域ゾーンからバックアップしてテープに格納できます。

この方法により、次の利点が得られます。

非大域ゾーンの復元について

大域ゾーンの管理者は、大域ゾーンから実行したバックアップを復元するときには、関係するゾーンを再インストールしてから、そのゾーンのファイルを復元できます。この処理を行うときには、ゾーンが次の状態である必要があります。

これらの前提を満たしていない場合は、一部のファイルが復元によって上書きされ、手作業でマージしなければならないことがあります。

たとえば、バックアップしてから非大域ゾーンを復元するまでに大域ゾーンにパッチを適用している場合には、手作業によるファイルのマージが必要になることがあります。このような状況でゾーンのバックアップファイルを復元するときには、注意が必要です。大域ゾーンにパッチを適用したあとに、新しくゾーンをインストールして再構築した場合には、バックアップファイルがそのゾーンと互換性を持たなくなることがあります。このような場合には、ファイルを個別に調べて、それらを新しくインストールしたゾーンのコピーと比較する必要があります。ほとんどの場合、ファイルを直接コピーすることができます。しかし、場合によっては、バックアップファイルに行なっていた変更を、ゾーン内で新しくインストールしたコピーまたはパッチを適用したコピーにマージする必要があります。


注 –

大域ゾーンのすべてのファイルシステムが失われた場合には、大域ゾーンのすべてのファイルを復元すると、非大域ゾーンも復元されます。ただし、非大域ゾーンの各ルートファイルシステムがバックアップに含まれている必要があります。


ゾーンがインストールされている Solaris システムで使用するコマンド

表 27–3 に示すコマンドにより、ゾーン機能に対する主要な管理インタフェースが提供されます。

表 27–3 ゾーンの管理に使用されるコマンド

コマンド 

説明 

zlogin(1)

非大域ゾーンにログインします 

zonename(1)

現在のゾーンの名前を出力します 

zoneadm(1M)

システムのゾーンを管理します 

zonecfg(1M)

ゾーン構成の設定に使用されます 

getzoneid(3C)

ゾーン ID と名前のマッピングに使用されます 

zones(5)

ゾーン機能の説明を提供します 

zcons(7D)

ゾーンコンソールのデバイスドライバ 

zoneadmd デーモンは、ゾーンの仮想プラットフォームを管理する基本プロセスです。zoneadmd デーモンのマニュアルページは、zoneadmd(1M) です。このデーモンは、プログラミングインタフェースの構成要素ではありません。

次の表に示すコマンドは、資源上限デーモンとともに使用されます。

表 27–4 rcapd とともに使用されるコマンド

コマンド 

説明 

rcapstat(1)

上限が定義されたプロジェクトの資源使用率を監視します。 

rcapadm(1M)

資源上限デーモンを構成します。構成済みの資源上限デーモンの現在の状態を表示します。資源上限制御を有効または無効にします。一時的なメモリー上限を設定する場合にも使用されます。 

rcapd(1M)

資源上限デーモン。 

次の表で示すコマンドは、ゾーンがインストールされている Solaris システムで使用できるように変更されています。これらのコマンドには、ゾーンに固有のオプションが用意されています。指定するオプションによって異なる情報が表示されます。コマンドは、マニュアルページのセクション別に記載されています。

表 27–5 ゾーンがインストールされている Solaris システムで使用するために変更されたコマンド

コマンド 

説明 

ipcrm(1)

-z zone オプションが追加されました。このオプションは、大域ゾーン内でコマンドを実行する場合にのみ有用です。

ipcs(1)

-z zone オプションが追加されました。このオプションは、大域ゾーン内でコマンドを実行する場合にのみ有用です。

pgrep(1)

-z zoneidlist オプションが追加されました。このオプションは、大域ゾーン内でコマンドを実行する場合にのみ有用です。

ppriv(1)

-l オプションとともに使用する式 zone が追加されました。これを使用すると、現在のゾーン内で使用可能なすべての特権が一覧表示されます。また、zone-v オプションを指定して、冗長出力を取得できます。

priocntl(1)

idlist-i idtype でゾーン ID を使用することで、プロセスを指定できます。priocntl -i zoneid コマンドを使用すると、実行中のプロセスを非大域ゾーン内の別のスケジューリングクラスに移動できます。

proc(1)

ptree だけに -z zone オプションが追加されました。このオプションは、大域ゾーン内でコマンドを実行する場合にのみ有用です。

ps(1)

-o オプションが使用する、認識される format 名リストに、zonenamezoneid が追加されました。

指定したゾーン内のプロセスだけを一覧表示するため、-z zonelist が追加されました。ゾーンの指定には、ゾーン名またはゾーン ID を使用できます。このオプションは、大域ゾーン内でコマンドを実行する場合にのみ有用です。

プロセスに関連するゾーンの名前を出力するため、-Z が追加されました。名前は、追加された列ヘッダー ZONE の下に出力されます。

renice(1)

有効な引数をリスト表示するため、-i オプションとともに使用する zoneid が追加されました。

sar(1)

プール機能が有効な非大域ゾーン内で実行する際、-b-c-g-m-p-u-w、および -y オプションを指定すると、ゾーンのバインド先プールのプロセッサセット内のプロセッサの値だけが表示されます。

auditconfig(1M)

zonename トークンが追加されました。

auditreduce(1M)

-z zone-name オプションが追加されました。ゾーンの監査ログを取得する機能が追加されました。

coreadm(1M)

プロセスが実行されたゾーンを識別するための変数 %z が追加されました。

df(1M)

すべての可視ゾーン内のマウントを表示する -Z オプションが追加されました。

ifconfig(1m)

大域ゾーンで使用する zone オプション (デフォルト)、および非大域ゾーンで使用する -zone zonename が追加されました。

iostat(1M)

プール機能が有効な非大域ゾーン内で実行すると、ゾーンのバインド先プールのプロセッサセット内のプロセッサ情報だけが提供されます。 

kstat(1M)

大域ゾーンで実行すると、すべてのゾーンの kstat が表示されます。非大域ゾーンで実行すると、一致する zoneid を持つ kstat だけが表示されます。

mpstat(1M)

プール機能が有効な非大域ゾーン内で実行すると、ゾーンのバインド先プールのプロセッサセット内のプロセッサの行だけが表示されます。 

ndd(1M)

大域ゾーン内で使用された場合、すべてのゾーンの情報を表示します。排他的 IP ゾーンの TCP/IP モジュールに対して ndd を実行すると、そのゾーンの情報だけが表示されます。

netstat(1M)

現在のゾーンのみの情報を表示します。 

nfsstat(1M)

現在のゾーンのみの統計情報を表示します。 

poolbind(1M)

zoneid リストが追加されました。ゾーンと資源プールの併用については、「ゾーンで使用される資源プール」も参照してください。

prstat(1M)

-z zoneidlist オプションが追加されました。また、-Z オプションも追加されました。

プール機能が有効な非大域ゾーンで実行した場合、ゾーンのバインド先プールのプロセッサセット内のプロセッサだけを対象にして、プロセスが使用した最新の CPU 時間の比率が表示されます。 

-a-t-T-J、および -Z の各オプションを指定すると、出力にはサイズ列の代わりにスワップ列が表示されます。報告されるスワップは、ゾーンのプロセスと tmpfs マウントで消費されるスワップの合計量です。この値により、各ゾーンで予約されているスワップを監視しやすくなり、適切な zone.max-swap 設定を選択することができます。

psrinfo(1M)

非大域ゾーン内で実行した場合、ゾーンで表示可能なプロセッサの情報だけが表示されます。 

traceroute(1M)

使用方法が変更されました。非大域ゾーン内から指定した場合、-F オプションをしても効果はありません。理由は、「断片化しない」というビットが常に設定されているためです。

vmstat(1M)

プール機能が有効な非大域ゾーン内で実行すると、ゾーンのバインド先プールのプロセッサセット内のプロセッサ統計情報だけが報告されます。-p オプション指定時の出力と、pagefaults、および cpu 報告フィールドに適用されます。

auditon(2)

各監査レコードとともにゾーン ID トークンを生成する、AUDIT_ZONENAME が追加されました。

priocntl(2)

P_ZONEID id 引数が追加されました。

processor_info(2)

呼び出し側が非大域ゾーン内にあり、プール機能が有効であるが、プロセッサがゾーンのバインド先プールのプロセッサセット内にない場合、エラーが返されます。 

p_online(2)

呼び出し側が非大域ゾーン内にあり、プール機能が有効であるが、プロセッサがゾーンのバインド先プールのプロセッサセット内にない場合、エラーが返されます。 

pset_bind(2)

idtype として P_ZONEID が追加されました。P_MYID 仕様の選択肢にゾーンが追加されました。EINVAL エラー説明内の有効な idtype リストに P_ZONEIDが追加されました。

pset_info(2)

呼び出し側が非大域ゾーン内にあり、プール機能が有効であるが、プロセッサがゾーンのバインド先プールのプロセッサセット内にない場合、エラーが返されます。 

pset_list(2)

呼び出し側が非大域ゾーン内にあり、プール機能が有効であるが、プロセッサがゾーンのバインド先プールのプロセッサセット内にない場合、エラーが返されます。 

pset_setattr(2)

呼び出し側が非大域ゾーン内にあり、プール機能が有効であるが、プロセッサがゾーンのバインド先プールのプロセッサセット内にない場合、エラーが返されます。 

sysinfo(2)

PRIV_SYS_CONFIGPRIV_SYS_ADMIN に変更されました。

umount(2)

file が参照しているファイルが絶対パスでない場合、ENOENT が返されます。

getloadavg(3C)

呼び出し側が非大域ゾーン内にあり、プール機能が有効な場合、PS_MYID psetid を使用して呼び出した場合と動作は同じになります。

getpriority(3C)

ゾーン ID が、指定可能なターゲットプロセスに追加されました。ゾーン ID が EINVAL のエラー説明に追加されました。

priv_str_to_set(3C)

呼び出し側のゾーン内部で使用可能なすべての特権セットで、「zone」文字列が追加されました。 

pset_getloadavg(3C)

呼び出し側が非大域ゾーン内にあり、プール機能が有効であるが、プロセッサがゾーンのバインド先プールのプロセッサセット内にない場合、エラーが返されます。 

sysconf(3C)

呼び出し側が非大域ゾーン内にあり、プール機能が有効な場合、sysconf(_SC_NPROCESSORS_CONF) および sysconf(_SC_NPROCESSORS_ONLN) は、ゾーンのバインド先プールのプロセッサセット内のプロセッサ数を返します。

ucred_get(3C)

ucred_getzoneid() 関数が追加されました。この関数は、プロセスのゾーン ID を返します。ただし、ゾーン ID を取得できなかった場合は -1 を返します。

core(4)

n_type: NT_ZONENAME が追加されました。このエントリには、プロセスが実行されていたゾーンの名前を示す文字列が含まれます。

pkginfo(4)

ゾーンのサポート内でオプションパラメータおよび環境変数が提供されるようになりました。 

proc(4)

ゾーン内で実行中のプロセスに関する情報を取得する機能が追加されました。 

audit_syslog(5)

in<zone name> フィールドが追加されました。このフィールドは、zonename 監査ポリシーが設定されている場合に使用されます。

privileges(5)

プロセスによる追跡またはほかのゾーン内のプロセスへのシグナル送信を可能にする PRIV_PROC_ZONE が追加されました。zones(5) のマニュアルページを参照してください。

if_tcp(7P)

ゾーンの ioctl() 呼び出しが追加されました。

cmn_err(9F)

ゾーンパラメータが追加されました。 

ddi_cred(9F)

cr の指し示すユーザー資格からゾーン ID を返す、crgetzoneid() が追加されました。