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

パート II ゾーン

このパートでは、Solaris ゾーンソフトウェア区分技術について紹介します。この技術を使用すると、オペレーティングシステムサービスを仮想化し、アプリケーションの実行に適した隔離された環境を実現できます。このように隔離することで、あるゾーンで実行中のプロセスが、ほかのゾーンで実行中のプロセスを監視したり、それらに影響を与えたりすることを防ぐことができます。

第 16 章 Solaris ゾーンの紹介

Solaris オペレーティングシステムの Solaris ゾーン機能を使用すると、アプリケーションの実行に適した隔離された環境をシステム上に実現できます。Solaris ゾーンは、Solaris コンテナ環境の構成要素です。

この章で扱う内容は、次のとおりです。

システムにゾーンを作成する準備が完了している場合は、第 17 章非大域ゾーンの構成 (概要)に進んでください。

ゾーンの概要

Solaris ゾーン区分技術は、オペレーティングシステムサービスを仮想化し、アプリケーションの実行に適した安全で隔離された環境を実現するために使用されます。「ゾーン」は、Solaris オペレーティングシステムの 1 つのインスタンス内で作成される、仮想化されたオペレーティングシステム環境です。ゾーンを作成すると、そのアプリケーション実行環境で実行されるプロセスは、システムのほかの部分から隔離されます。この分離を行うことで、1 つのゾーン内で稼働しているプロセスがほかのゾーンで稼働しているプロセスを監視したりそれらのプロセスに影響を及ぼしたりすることが防止されます。スーパーユーザー資格で実行されているプロセスであっても、ほかのゾーンの活動を監視したり操作したりすることはできません。

また、ゾーンにより、アプリケーションを配備するマシンの物理的属性からアプリケーションを分離する抽象層も提供されます。このような属性の例として、物理デバイスパスがあります。

ゾーンは、Solaris 10 リリース以降を実行しているすべてのマシンで使用できます。システムに作成できるゾーン数の上限は 8192 です。1 つのシステムで効率的にホストできるゾーン数は、すべてのゾーンで実行されるアプリケーションソフトウェアに必要な総資源量によって決まります。

Solaris 10 リリースでは、非大域ゾーンのルートファイルシステムモデルには 2 種類あります。疎ルートと完全ルートです。「疎ルートゾーン」モデルは、オブジェクトの共有を最適化します。「完全ルートゾーン」モデルは、構成に関して最大の構成可能性を提供します。 これらの概念については、第 18 章非大域ゾーンの計画と構成 (手順)を参照してください。

Solaris 10 9/10: インストールされる製品 (システム資産と呼ばれる) は、自動登録機能によって制御されます。インストール中に、ユーザーは資格を入力するか、または匿名で登録します。システムの再起動時に、新しい製品のサービスタグが My Oracle Support サーバーにアップロードされます。この機能は、大域ゾーンでのみ使用できます。詳細は、『Solaris のシステム管理 (基本編)』を参照してください。

ブランドゾーンについて

ブランドゾーン (BrandZ) は、実行時の動作の代替セットを含むコンテナを作成するためのフレームワークを提供します。「ブランド」は、さまざまなオペレーティング環境を指す場合があります。たとえば、非大域ゾーンは、Solaris 8 オペレーティングシステムや Linux などのオペレーティング環境をエミュレートすることができます。

ブランドは、ゾーンにインストールできるオペレーティング環境を定義し、ゾーンにインストールされたソフトウェアが正しく機能するようにゾーン内でのシステムの動作を決定します。また、ゾーンのブランドにより、アプリケーションの起動時に正しいアプリケーションタイプが識別されます。すべてのブランドゾーン管理は、標準のゾーンコマンドの拡張を通して実行されます。管理手順のほとんどはすべてのゾーンで同一です。

Solaris 10 8/07 オペレーティングシステムまたはそれ以降の Solaris 10 リリースを実行する SPARC マシンでは、次の 2 つのブランドがサポートされています。

Solaris 10 OS でサポートされる他のブランドは次のとおりです。

ラベルが有効になっている Trusted Solaris システムにブランドゾーンを構成してインストールすることはできますが、このシステム構成でブランドゾーンを起動することはできません。

ゾーンを使用する場合

ゾーンは、多くのアプリケーションを 1 台のサーバー上で統合できる環境で使用するともっとも高い効果を発揮します。多数のマシンの管理は複雑でコストがかかるため、より大規模で拡張性の高いサーバーにアプリケーションを統合することが望まれます。

次の図は、4 つのゾーンから成るシステムを示しています。この統合された環境の例では、appsusers、および work の各ゾーンは、ほかのゾーンの作業負荷とは無関係に作業負荷を実行しています。この例は、同じアプリケーションのさまざまなバージョンをそれぞれ異なるゾーンで実行でき、悪影響を引き起こすことなく、統合の要件を満たすことができることを示しています。ゾーンごとにカスタマイズされたサービスを提供できます。

図 16–1 ゾーンによるサーバー統合の例

悪影響を引き起こすことなく、同じアプリケーションのさまざまなバージョンをそれぞれ異なるゾーンで実行できます。

ゾーンを使用すると、システムの資源をより効率的に利用できます。資源の動的再割り当てにより、使用されていない資源を必要に応じてほかのコンテナに移動できます。障害およびセキュリティーの隔離により、動作状態の悪いアプリケーションのために使用率の低い専用のシステムを用意する必要がなくなります。ゾーンを使用すると、このようなアプリケーションをほかのアプリケーションと統合できます。

ゾーンを使用すると、総合的なシステムセキュリティーを維持しながら、管理機能の一部を委譲できます。

ゾーンのしくみ

非大域ゾーンは、1 つの箱と考えることができます。この箱の中では、システムのほかの部分と相互に作用することなく、1 つ以上のアプリケーションを実行できます。Solaris ゾーンは、ソフトウェアで定義される柔軟な境界を使用して、ソフトウェアアプリケーションやサービスを隔離します。これにより Solaris オペレーティングシステムの 1 つのインスタンス内で実行されるアプリケーションを互いに独立して管理することができます。したがって、同じアプリケーションのさまざまなバージョンをそれぞれ異なるゾーンで実行でき、構成の要件を満たすことができます。

ゾーンに割り当てられたプロセスは、同じゾーンに割り当てられたほかのプロセスを操作、監視したり、これらのプロセスと直接通信したりできます。システムのほかのゾーンに割り当てられたプロセスや、ゾーンに割り当てられていないプロセスに対しては、このような機能は実行できません。異なるゾーンに割り当てられたプロセスどうしでは、ネットワーク API を介した通信のみ可能です。

Solaris 10 8/07 以降では、ゾーンが独自の排他的 IP インスタンスを持っているか、または IP 層の構成と状態を大域ゾーンと共有しているかに応じて、IP ネットワーク接続を 2 通りの方法で設定できます。ゾーンの IP タイプの詳細については、「ゾーンネットワークインタフェース」を参照してください。構成については、「ゾーンの構成方法」を参照してください。

Solaris システムごとに 1 つの「大域ゾーン」があります。大域ゾーンは 2 つの機能を持っています。大域ゾーンは、システムのデフォルトのゾーンであり、システム全体の管理に使用されるゾーンでもあります。「大域管理者」が「非大域ゾーン」(単にゾーンとも呼ばれる) を作成した場合を除き、すべてのプロセスが大域ゾーンで実行されます。

非大域ゾーンの構成、インストール、管理、およびアンインストールは、大域ゾーンからのみ行うことができます。システムハードウェアから起動できるのは、大域ゾーンだけです。物理デバイス、共有 IP ゾーンでのルーティング、動的再構成 (DR) といったシステム基盤の管理は、大域ゾーンでのみ行うことができます。大域ゾーンで実行されるプロセスは、適切な権限が付与されていれば、ほかのゾーンに関連付けられているオブジェクトにもアクセスできます。

非大域ゾーンの特権付きプロセスには許可されていない操作を、大域ゾーンの特権のないプロセスが実行できることもあります。たとえば、大域ゾーンのユーザーは、システムのすべてのプロセスに関する情報を表示できます。この機能がサイトで問題になる場合は、大域ゾーンへのアクセスを制限します。

大域ゾーンも含め、各ゾーンにはゾーン名が割り当てられます。大域ゾーンの名前は常に global となります。各ゾーンには、一意の数値 ID も与えられます。これは、ゾーンの起動時にシステムによって割り当てられます。大域ゾーンには、常に ID 0 が割り当てられます。ゾーンの名前と数値 ID については、zonecfg コマンドの使用」を参照してください。

各ゾーンには、ノード名も割り当てられます。これは、ゾーン名とは完全に独立した名前です。ノード名は、ゾーンの管理者によって割り当てられます。詳細は、「非大域ゾーンのノード名」を参照してください。

各ゾーンには、ルートディレクトリのパスが設定されます。これは、大域ゾーンのルートディレクトリに対する相対パスです。詳細は、zonecfg コマンドの使用」を参照してください。

デフォルトでは、非大域ゾーンのスケジューリングクラスは、システムのスケジューリングクラスと同じに設定されます。ゾーンのスケジューリングクラスを設定する方法については、「ゾーンのスケジューリングクラス」を参照してください。

priocntl (priocntl(1) のマニュアルページを参照) を使用すると、デフォルトのスケジューリングクラスの変更や再起動を行うことなく、実行中のプロセスを別のスケジューリングクラスに移動できます。

ゾーン機能の概要

次の表に、大域ゾーンと非大域ゾーンの特性をまとめます。

ゾーンの種類 

特性 

広域 

 

  • システムによって ID 0 が割り当てられます

  • システムで起動され実行される Solaris カーネルの単一のインスタンスを提供します

  • Solaris システムソフトウェアパッケージの完全なインストールが含まれています

  • 追加のソフトウェアパッケージや、パッケージを通してインストールされない追加のソフトウェア、ディレクトリ、ファイル、その他のデータが含まれている場合もあります

  • 大域ゾーンにインストールされているすべてのソフトウェア構成要素に関する情報を格納した、一貫性のある完全な製品データベースを提供します

  • 大域ゾーンのホスト名やファイルシステムテーブルなど、大域ゾーンのみに固有の構成情報を保持します

  • すべてのデバイスとすべてのファイルシステムが認識される、唯一のゾーンです

  • 非大域ゾーンの存在と構成が認識される、唯一のゾーンです

  • 非大域ゾーンの構成、インストール、管理、またはアンインストールを行うことができる、唯一のゾーンです

非大域 

 

  • ゾーンの起動時にシステムによってゾーン ID が割り当てられます

  • 大域ゾーンから起動される Solaris カーネルの下で処理を共有します

  • Solaris オペレーティングシステムソフトウェアパッケージの完全なインストールの一部が含まれています

  • 大域ゾーンから共有された Solaris ソフトウェアパッケージが含まれています

  • 大域ゾーンから共有されたものではない、インストールされた追加のソフトウェアパッケージが含まれていることもあります

  • 追加のソフトウェア、ディレクトリ、ファイル、非大域ゾーンで作成されたその他のデータなど、パッケージを通してインストールされないもの、あるいは、大域ゾーンからの共有でないものが含まれていることもあります

  • ゾーンにインストールされているすべてのソフトウェア構成要素に関する情報を格納した、一貫性のある完全な製品データベースを持ちます。非大域ゾーンに置かれている構成要素と、読み取り専用モードで大域ゾーンから共有される構成要素があります

  • ほかのゾーンの存在を認識できません

  • 自身を含め、ゾーンのインストール、管理、アンインストールを行うことはできません

  • 非大域ゾーンのホスト名やファイルシステムテーブルなど、その非大域ゾーンのみに固有の構成情報を保持します

  • 独自のタイムゾーン設定を持つことができます

非大域ゾーンの管理のしくみ

大域管理者は、スーパーユーザー特権または Primary Administrator の役割を持ちます。大域ゾーンにログインすると、大域管理者はシステム全体を監視したり制御したりできます。

非大域ゾーンは「ゾーン管理者」が管理できます。大域管理者が Zone Management プロファイルをゾーン管理者に割り当てます。ゾーン管理者の特権は、非大域ゾーンに対してのみ有効です。

非大域ゾーンの作成のしくみ

大域管理者が zonecfg コマンドを使ってゾーンを構成します。このとき、ゾーンの仮想プラットフォームやアプリケーション環境に応じて、各種のパラメータを指定します。次に、大域管理者がゾーンをインストールします。大域管理者は、ゾーン管理コマンド zoneadm を使用して、ゾーンに対応するファイルシステム階層にソフトウェアをパッケージレベルでインストールします。大域管理者は、zlogin コマンドを使用して、インストールされたゾーンにログインできます。初回ログイン時にゾーンの内部構成が完了します。次に、zoneadm コマンドを使ってゾーンを起動します。

ゾーンの構成については、第 17 章非大域ゾーンの構成 (概要)を参照してください。ゾーンのインストールについては、第 19 章非大域ゾーンのインストール、停止、複製、およびアンインストールについて (概要)を参照してください。ゾーンへのログインについては、第 21 章非大域ゾーンへのログイン (概要)を参照してください。

非大域ゾーンの状態モデル

非大域ゾーンの状態は、次の 6 つのいずれかになります。

構成済み

ゾーンの構成は完了し、安定した記憶領域に確定されています。ただし、ゾーンのアプリケーション環境の要素のうち、最初の起動後に指定する必要のあるものは、まだ含まれていません。

不完全

インストール処理やアンインストール処理の途中は、zoneadm によってターゲットゾーンの状態が「不完全」に設定されます。処理が正常に完了すると、適切な状態に設定されます。

インストール済み

ゾーンの構成はシステム上でインスタンス化されています。zoneadm コマンドにより、指定された Solaris システムでその構成を正常に使用できるかどうかが確認されます。パッケージはゾーンのルートパスにインストールされます。この状態では、ゾーンに関連付けられた仮想プラットフォームはありません。

準備完了

ゾーンの仮想プラットフォームが確立されています。カーネルにより zsched プロセスが作成され、ネットワークインタフェースが設定されてゾーンで使用可能になり、ファイルシステムがマウントされ、デバイスの構成が完了しています。システムにより、一意のゾーン ID が割り当てられます。この状態では、ゾーンに関連付けられたプロセスは起動されていません。

稼働

ゾーンのアプリケーション環境に関連付けられたユーザープロセスが稼働状態です。アプリケーション環境に関連付けられた最初のユーザープロセス (init) が作成されるとすぐに、ゾーンの状態は「稼働」になります。

停止処理中および停止

これらは、ゾーンの停止処理の間に見られる遷移状態です。ただし、なんらかの理由でゾーンを停止処理できない場合は、ゾーンがどちらかの状態で停止します。

zoneadm コマンドを使用してこれらの状態間の遷移を開始する方法については、第 20 章非大域ゾーンのインストール、起動、停止、アンインストール、および複製 (手順)および zoneadm(1M) のマニュアルページを参照してください。

表 16–1 ゾーンの状態に影響を与えるコマンド

ゾーンの現在の状態 

適用できるコマンド 

構成済み 

zonecfg -z zonename verify

zonecfg -z zonename commit

zonecfg -z zonename delete

zoneadm -z zonename attach

zoneadm -z zonename verify

zoneadm -z zonename install

zoneadm -z zonename clone

zonecfg を使用して、構成済みまたはインストール済みの状態にあるゾーンの名前を変更することもできます。

不完全 

zoneadm -z zonename uninstall

インストール済み 

zoneadm -z zonename ready (省略可能)

zoneadm -z zonename boot

zoneadm -z zonename uninstall は、指定されたゾーンの構成をシステムからアンインストールします。

zoneadm -z zonename move path

zoneadm -z zonename detach

zonecfg -z zonename を使用すると、attrbootargscapped-memorydatasetdedicated-cpudevicefsip-typelimitprivnetrctl、または scheduling-class プロパティーを追加または削除することができます。インストール済み状態のゾーンの名前を変更することもできます。inherit-pkg-dir 資源は変更できません。

準備完了 

zoneadm -z zonename boot

zoneadm halt とシステム再起動を実行すると、準備完了状態のゾーンがインストール済み状態に戻ります。

zonecfg -z zonename を使用すると、attrbootargscapped-memorydatasetdedicated-cpudevicefsip-typelimitprivnetrctl、または scheduling-class プロパティーを追加または削除することができます。inherit-pkg-dir 資源は変更できません。

稼働 

zlogin options zonename

zoneadm -z zonename reboot

zoneadm -zzonename halt を実行すると、準備完了状態のゾーンがインストール済み状態に戻ります。

zoneadm halt とシステムの再起動を実行すると、稼働状態のゾーンがインストール済み状態に戻ります。

zonecfg -z zonename を使用すると、attrbootargscapped-memorydatasetdedicated-cpudevicefsip-typelimitprivnetrctl、または scheduling-class プロパティーを追加または削除することができます。zonepath 資源と inherit-pkg-dir 資源は変更できません。


注 –

zonecfg 経由で変更されたパラメータは、稼働中のゾーンには影響しません。変更を適用するには、ゾーンを再起動する必要があります。


非大域ゾーンの特性

ゾーンを使用すると、必要に応じてほぼどのような単位にも細かく隔離できます。専用の CPU、物理デバイス、物理メモリーの一部分などをゾーンに割り当てる必要はありません。このような資源は、1 つのドメインまたはシステムで実行される複数のゾーンに渡って多重化するか、オペレーティングシステムに用意されている資源管理機能を使ってゾーンごとに割り当てることができます。

ゾーンごとにカスタマイズされたサービスを提供できます。基本的なプロセス隔離を強化するために、同じゾーン内のプロセスのみ互いに認識したりシグナルを送信したりできます。ゾーン間で基本的な通信を行うには、各ゾーンに IP 接続機能を持たせます。あるゾーンで実行中のアプリケーションが、別のゾーンのネットワークトラフィックを監視することはできません。それぞれのパケットストリームが同じ物理インタフェースを通過する場合でも、この隔離は維持されます。

各ゾーンには、ファイルシステム階層の一部分が割り当てられます。各ゾーンは、ファイルシステム階層で割り当てられた部分ツリーに限定されます。したがって、特定のゾーンで実行されている作業負荷は、別のゾーンで実行されているほかの作業負荷のディスク上のデータにアクセスすることはできません。

ネームサービスで使用されるファイルは、ゾーン独自のルートファイルシステムのビュー内に置かれます。したがって、異なるゾーンのネームサービスは互いに隔離され、サービスごとに異なる設定を使用できます。

非大域ゾーンでの資源管理機能の使用

資源管理機能を使用する場合は、資源管理制御の境界とゾーンの境界をそろえる必要があります。このように境界をそろえることで、名前空間のアクセス、セキュリティー隔離、および資源の使用状況をすべて制御できる、より完成された仮想マシンのモデルを作成できます。

ゾーンで各種の資源管理機能を使用するための特殊要件については、このマニュアルでこれらの機能に関連する各章を参照してください。

非大域ゾーンによって提供される機能

非大域ゾーンは、次のような機能を提供します。

セキュリティー

大域ゾーン以外のゾーンにプロセスを配置したあとは、そのプロセス自体やそのプロセスの子がゾーンを変更することはできません。

ネットワークサービスをゾーンで実行できます。ネットワークサービスをゾーンで実行すると、セキュリティー違反が発生した場合の損害を抑えることができます。ゾーン内で実行されているソフトウェアのセキュリティー欠陥を侵入者が悪用できた場合でも、そのゾーン内で可能な一連の操作しか実行できません。ゾーン内で使用できる特権は、システム全体で使用できる特権の一部のみです。

隔離

複数のアプリケーションが異なる信頼ドメインで動作する場合や、大域資源への排他的アクセスを必要とする場合、または、大域の構成を使用すると問題を示すような場合でも、ゾーンを使用することでこれらのアプリケーションを同じマシン上に配備できます。たとえば、各ゾーンにそれぞれ異なる IP アドレスを割り当てるか、ワイルドカードアドレスを使用することで、同じシステム上の異なる共有 IP ゾーンで実行される複数のアプリケーションを同じネットワークポートにバインドできます。アプリケーションが互いのネットワークトラフィック、ファイルシステムデータ、プロセスの活動などを監視したり妨害したりすることもできなくなります。

ネットワーク隔離

ゾーンが大域ゾーンやほかの非大域ゾーンとは異なる VLAN や LAN に接続される場合など、ネットワークの IP 層で隔離されている必要がある場合は、セキュリティーの理由から、ゾーンは排他的 IP を持つことができます。排他的 IP ゾーンを使用すると、異なる VLAN や LAN の異なるサブネット上で通信しなければならないアプリケーションを統合することができます。

ゾーンは、共有 IP ゾーンとして構成することもできます。このようなゾーンは、大域ゾーンと同じ VLAN または LAN に接続し、IP ルーティングの構成を大域ゾーンと共有します。共有 IP ゾーンは、個別の IP アドレスを持ちますが、IP のほかの部分は共有します。

仮想化

ゾーンによって提供される仮想環境では、物理デバイスやシステムのプライマリ IP アドレスとホスト名などの詳細をアプリケーションから隠すことができます。同じアプリケーション環境を、物理的に異なるマシンで維持管理することもできます。仮想化された環境では、各ゾーンを個別に管理できます。非大域ゾーンでゾーン管理者によって行われる操作は、システムのほかの部分に影響を与えません。

隔離単位

ゾーンを使用すると、ほぼどのような単位にも細かく隔離できます。詳細は、「非大域ゾーンの特性」を参照してください。

環境

セキュリティーや隔離の目標を達成するために必要な場合を除き、アプリケーションの実行される環境がゾーンによって変更されることはありません。ゾーンを使用するために、新しい API や ABI にアプリケーションを移植する必要はありません。代わりに、ゾーンでは Solaris の標準インタフェースとアプリケーション環境が提供されます。ただし、いくらかの制限があります。これらの制限は主に、特権付き操作を実行しようとするアプリケーションに影響を与えます。

大域ゾーンで実行されるアプリケーションは、追加のゾーンが構成されたかどうかにかかわらず、変更なしで実行できます。

システムのゾーンの設定 (作業マップ)

次の表に、システム上ではじめてゾーンを設定する際に必要となる作業の基本概要を示します。

タスク 

説明 

説明 

ゾーンで実行するアプリケーションを特定します。 

システムで実行されるアプリケーションを見直します。 

  • ビジネス目標にとってどのアプリケーションが重要かを判定します。

  • 実行するアプリケーションのシステム要件を評価します。

必要に応じて、ビジネス目標とシステムのマニュアルを参照してください。 

構成するゾーンの数を決定します。 

次の内容を評価します。 

  • ゾーンで実行する予定のアプリケーションの性能要件

  • インストールするゾーンあたり 100M バイトの推奨空き容量があるかどうか

 

「現在のシステム設定の評価」を参照してください。

コンテナを作成するためにゾーンで資源プールを使用するかどうかを決定します。 

システム上で資源管理機能も使用する場合は、資源管理の境界とゾーンの境界をそろえます。ゾーンを構成する前に資源プールを構成します。 

Solaris 10 8/07 以降のリリースでは、zonecfg のプロパティーを使用して、ゾーン規模の資源制御とプール機能をゾーンにすばやく追加できます。

「ゾーンの構成方法」および第 13 章資源プールの作成と管理 (手順)を参照してください。

事前構成作業を行います。 

ゾーン名とゾーンパスを決定します。ゾーンを共有 IP ゾーンにするか排他的 IP ゾーンにするかを決定し、IP アドレスまたはデータリンク名を取得します。各ゾーンに必要なファイルシステムとデバイスを決定します。ゾーンのスケジューリングクラスを決定します。標準のデフォルト特権セットでは十分でない場合は、ゾーンのプロセスを制限するための特権セットを決定します。zonecfg の設定の中には自動的に特権を追加するものがあります。たとえば、ip-type=exclusive はネットワークスタックの構成および管理に必要な複数の特権を自動的に追加します。

ゾーンの名前とパス、IP タイプ、IP アドレス、ファイルシステム、デバイス、スケジューリングクラス、および特権については、第 17 章非大域ゾーンの構成 (概要)および 「現在のシステム設定の評価」を参照してください。非大域ゾーンでのデフォルトの特権および構成可能な特権のリストについては、「非大域ゾーン内の特権」を参照してください。IP 機能の使用の可否については、「共有 IP 非大域ゾーンにおけるネットワーク」および 「Solaris 10 8/07: 排他的 IP 非大域ゾーンにおけるネットワーク」を参照してください。

構成を作成します。 

非大域ゾーンの構成を行います。 

「ゾーンを構成、検証、および確定する」および zonecfg(1M) のマニュアルページを参照してください。

大域管理者として、構成されたゾーンの確認とインストールを行います。 

ゾーンにログインする前に、ゾーンの確認とインストールを行う必要があります。 

第 19 章非大域ゾーンのインストール、停止、複製、およびアンインストールについて (概要)および第 20 章非大域ゾーンのインストール、起動、停止、アンインストール、および複製 (手順)を参照してください。

zlogin コマンドに -C オプションを使用するか、sysidcfg ファイルをゾーンの /etc ディレクトリに配置して、大域管理者として各非大域ゾーンにログインします。

 

第 21 章非大域ゾーンへのログイン (概要)および第 22 章非大域ゾーンへのログイン (手順)を参照してください。

大域管理者として、非大域ゾーンを起動します。 

それぞれのゾーンを起動して稼働状態にします。 

第 19 章非大域ゾーンのインストール、停止、複製、およびアンインストールについて (概要)および第 20 章非大域ゾーンのインストール、起動、停止、アンインストール、および複製 (手順)を参照してください。

この新しいゾーンを本稼働用に準備します。 

ユーザーアカウントの作成、ソフトウェアの追加、およびゾーン構成のカスタマイズを行います。 

新たにインストールしたマシンを設定するためのマニュアルを参照してください。ゾーン環境に関連する特殊な考慮事項については、このマニュアルを参照してください。 

第 17 章 非大域ゾーンの構成 (概要)

この章では、非大域ゾーンの構成の概要について説明します。

この章の内容は次のとおりです。

ゾーンの構成について学んだあとで、第 18 章非大域ゾーンの計画と構成 (手順)に進み、システムにインストールする非大域ゾーンを構成します。

lx ブランドゾーンの構成については、第 32 章lx ブランドゾーン構成の計画 (概要)および第 33 章lx ブランドゾーンの構成 (手順)を参照してください。

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

Solaris 10 6/06: ネイティブな非大域ゾーンのデータセット資源を追加する機能も含め、ZFS ファイルシステムのサポートが追加されています。詳細は、「資源タイプのプロパティー」を参照してください。

Solaris 10 11/06: 構成可能な特権のサポートが追加されています。「Solaris 10 11/06 以降: 構成可能な特権」を参照してください。

Solaris 10 8/07: 次の機能のサポートが zonecfg コマンドに追加されています。

Solaris 10 10/08: zonecfg ユーティリティーの net 資源に、共有 IP 非大域ゾーンの defrouter プロパティーが追加されました。このプロパティーを使用して、ネットワークインタフェースのデフォルトのルーターを設定できます。

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

ゾーンの資源について

資源管理機能を持っているゾーンは、コンテナと呼ばれます。コンテナ内で制御できる資源には、次のようなものがあります。

インストール前の構成手順

システムに非大域ゾーンをインストールして使用する前に、そのゾーンを構成する必要があります。

zonecfg コマンドを使用すると、構成を作成したり、指定された資源やプロパティーが仮定のシステム上で有効かどうかを判定したりできます。特定の構成について zonecfg で実行される検査では、次のことが確認されます。

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

ゾーンの構成要素

この節では、構成できる必須および省略可能なゾーン構成要素について説明します。詳細は、「ゾーン構成データ」を参照してください。

ゾーンの名前とパス

ゾーンの名前とパスを選択する必要があります。

ゾーンの自動起動

autoboot プロパティーの設定により、大域ゾーンの起動時にこのゾーンが自動的に起動されるかどうかが決まります。ゾーンサービス svc:/system/zones:default も有効になっている必要があります。

資源プールの関連付け

第 13 章資源プールの作成と管理 (手順)の説明に従ってシステムで資源プールを構成した場合は、ゾーンを構成するときに pool プロパティーを使用して、資源プールの 1 つにゾーンを関連付けることができます。

Solaris 10 8/07 以降のリリースでは、資源プールが構成されていない場合でも、非大域ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てるよう、dedicated-cpu 資源を使用して指定できます。ゾーンの実行中に使用される一時プールが動的に作成されます。zonecfg によって指定すると、移行時にプールの設定が伝達されます。


注 –

pool プロパティーによって設定される持続的プールを使用するゾーン構成と、dedicated-cpu 資源によって構成される一時プールには、互換性がありません。これら 2 つのプロパティーは、どちらか 1 つしか設定できません。


Solaris 10 8/07: dedicated-cpu 資源

dedicated-cpu 資源は、非大域ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てることを指定します。ゾーンの起動時に、ゾーンの実行中に使用される一時プールが動的に作成されます。

zonecfg で指定すると、移行時にプールの設定が伝達されます。

dedicated-cpu 資源は、ncpus の制限を設定し、必要に応じて importance も設定します。

ncpus

CPU の数を指定するか、CPU の数の範囲を 2–4 などと指定します。資源プールの動的な動作を得るために範囲を指定する場合は、次の手順も実行してください。

importance

動的な動作を得るために CPU 範囲を使用する場合は、importance プロパティーも設定してください。importance は「省略可能な」プロパティーであり、プールの相対的な重要性を定義します。このプロパティーが必要となるのは、ncpus に範囲を指定した場合で、poold によって管理される動的資源プールを使用しているときだけです。poold が実行されていない場合、importance は無視されます。poold が実行されている場合、importance が設定されていないと、importance はデフォルト値の 1 になります。詳細は、 pool.importance プロパティーの制約」を参照してください。


注 –

capped-cpu 資源と dedicated-cpu 資源には互換性がありません。cpu-shares 資源制御と dedicated-cpu 資源には互換性がありません。


Solaris 10 5/08: capped-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 が設定されていない場合、そのゾーンはシステムのデフォルトのスケジューリングクラスを使用します。ゾーンのスケジューリングクラスは、次の処理によって設定されます。

priocntl (priocntl(1) のマニュアルページを参照) を使用すると、デフォルトのスケジューリングクラスの変更や再起動を行うことなく、実行中のプロセスを別のスケジューリングクラスに移動できます。

Solaris 10 8/07: 物理メモリーの制御と capped-memory 資源

capped-memory 資源は、physicalswap、および locked メモリーの制限を設定します。各制限は省略可能ですが、少なくとも 1 つは設定する必要があります。


注 –

通常はアプリケーションが多量のメモリーをロックすることはありませんが、ゾーンのアプリケーションによってメモリーがロックされることがわかっている場合は、ロックされるメモリーを設定するとよいでしょう。ゾーンの信頼が問題になる場合は、ロックされるメモリーの上限を、システムの物理メモリーの 10 パーセントまたはゾーンの物理メモリー上限の 10 パーセントに設定することもできます。


詳細は、第 10 章資源上限デーモンによる物理メモリーの制御 (概要)第 11 章資源上限デーモンの管理 (手順)、および 「ゾーンの構成方法」を参照してください。ゾーンに一時的な資源上限を設定する方法については、「ゾーンに一時的な資源上限を指定する方法」を参照してください。

ゾーンネットワークインタフェース

ネットワーク接続を提供するために zonecfg コマンドによって構成されるゾーンネットワークインタフェースは、ゾーンの起動時に自動的に設定されてゾーン内に配置されます。

インターネットプロトコル (IP) 層は、ネットワークのパケットの受信と配信を行います。この層には、IP ルーティング、アドレス解決プロトコル (ARP)、IP セキュリティーアーキテクチャー (IPsec)、および IP フィルタが含まれます。

非大域ゾーンに使用できる IP タイプには、共有 IP と排他的 IP の 2 種類があります。共有 IP ゾーンはネットワークインタフェースを共有し、排他的 IP ゾーンには専用のネットワークインタフェースが必要です。

各タイプの IP 機能については、「共有 IP 非大域ゾーンにおけるネットワーク」および 「Solaris 10 8/07: 排他的 IP 非大域ゾーンにおけるネットワーク」を参照してください。

共有 IP 非大域ゾーン

デフォルトのタイプは共有 IP ゾーンです。ゾーンには、1 つ以上の専用 IP アドレスが必要です。共有 IP ゾーンは、IP 層の構成と状態を大域ゾーンと共有します。次の両方の条件が満たされる場合、ゾーンは共有 IP インスタンスを使用すべきです。

共有 IP ゾーンには、zonecfg コマンドを使用して 1 つ以上の IP アドレスを割り当てます。大域ゾーンでデータリンク名も構成する必要があります。

これらのアドレスは、論理ネットワークインタフェースに関連付けられます。大域ゾーンから ifconfig コマンドを使用すると、稼働中のゾーンの論理インタフェースを追加したり削除したりできます。詳細は、「共有 IP ネットワークインタフェース」を参照してください。

Solaris 10 8/07: 排他的 IP 非大域ゾーン

排他的 IP ゾーンでは、IP レベルのすべての機能が使用可能です。

排他的 IP ゾーンは、IP 関連の状態を独自に保持します。

排他的 IP ゾーンでは次のような機能を使用できます。

排他的 IP ゾーンには、zonecfg コマンドを使用して独自のデータリンクセットを割り当てます。net 資源の physical プロパティーを使用して、ゾーンに xge0e1000g1bge32001 などのデータリンク名を割り当てます。net 資源の address プロパティーは設定されません。

データリンクを割り当てると snoop コマンドが使用可能になります。

dladm コマンドを show-linkprop サブコマンドとともに使用して、実行中の排他的 IP ゾーンに対するデータリンクの割り当てを表示できます。dladm コマンドを set-linkprop サブコマンドとともに使用すると、実行中のゾーンに対して追加のデータリンクを割り当てることができます。使用例については、「Solaris 10 8/07: 排他的 IP 非大域ゾーンでのデータリンクの管理」を参照してください。

実行中の排他的 IP ゾーンの内部で、ifconfig コマンドを使用して IP を構成できます。これには、論理インタフェースの追加や削除も含まれます。ゾーンの IP 構成は、大域ゾーンの場合と同様に sysidtools を使用して設定できます。詳細は、sysidcfg(4) のマニュアルページを参照してください。


注 –

排他的 IP ゾーンの IP 構成は、大域ゾーンから zlogin コマンドを使用することによってのみ表示できます。次に例を示します。


global# zlogin zone1 ifconfig -a

共有 IP 非大域ゾーンと排他的 IP 非大域ゾーンのセキュリティーの相違

共有 IP ゾーン内のアプリケーションは、スーパーユーザーも含め、zonecfg ユーティリティーを介してゾーンに割り当てられた IP アドレス以外を送信元 IP アドレスとしてパケットを送信することはできません。このタイプのゾーンには、任意のデータリンク (レイヤー 2) パケットを送受信するアクセス権はありません。

一方、排他的 IP ゾーンの場合は、zonecfg によって指定されたデータリンク全体がゾーンに対して許可されます。その結果、スーパーユーザーは、排他的 IP ゾーンでも大域ゾーンと同様に、偽のパケットをこれらのデータリンク上で送信できます。

共有 IP 非大域ゾーンと排他的 IP 非大域ゾーンの同時使用

共有 IP ゾーンは常に IP 層を大域ゾーンと共有し、排他的 IP ゾーンは常に独自の IP 層インスタンスを持っています。共有 IP ゾーンと排他的 IP ゾーンの両方を同じマシンで使用することができます。

ゾーンでマウントされるファイルシステム

通常、ゾーンでマウントされるファイルシステムには、次のものが含まれます。

これには、たとえば次のようなファイルシステムが含まれます。

アプリケーション環境内部から実行されるマウントには、いくつかの制限事項があります。これらの制限事項は、ほかのゾーンに悪影響を与えないようにするために、ゾーン管理者がシステムのほかの部分に対するサービスを拒否できないようにします。

一部のファイルシステムについては、ゾーン内部からマウントする場合にセキュリティー制限があります。ほかのファイルシステムは、ゾーン内でマウントされたときに特有の動作を行います。詳細は、「ファイルシステムと非大域ゾーン」を参照してください。

ゾーンで構成されるデバイス

zonecfg コマンドは、規則照合方式を使って、特定のゾーンにどのデバイスを配置するかを指定します。いずれかのルールに一致するデバイスは、ゾーンの /dev ファイルシステムに追加されます。詳細は、「ゾーンの構成方法」を参照してください。

ゾーン内のホスト ID

非大域ゾーンでは、大域ゾーンの hostid とは異なる hostid プロパティーを設定できます。この設定は、P2V (Physical-To-Virtual) 機能を使用して物理マシンをゾーンに統合する場合に行われます。ゾーン内に配置されたアプリケーションが元の hostid に依存する場合があり、アプリケーション構成を更新できないことがあります。詳細は、「資源タイプとプロパティータイプ」を参照してください。

ゾーン規模の資源制御の設定

大域管理者は、ゾーン規模の特権付き資源制御をゾーンに対して設定できます。ゾーン規模の資源制御は、ゾーン内のすべてのプロセスエンティティーによる総資源消費を制限します。

これらの制限は、大域ゾーンと非大域ゾーンのどちらに対しても、zonecfg コマンドを使用して指定します。「ゾーンの構成方法」を参照してください。

Solaris 10 8/07 以降のリリースでは、ゾーン規模の資源制御を設定する場合に望ましい、より簡単な方法は、rctl 資源の代わりにプロパティー名を使用する方法です。

Solaris 10 5/08: zone.cpu-cap 資源制御は、1 つのゾーンで消費可能な CPU 資源量に対する絶対的な制限を設定します。project.cpu-cap 設定と同様、100 の値は 1 つの CPU の 100% を意味します。125 の値は 125% になります。CPU キャップの使用時は、100% がシステム上の 1 つの CPU の上限となります。


注 –

capped-cpu 資源を設定する場合は、単位に小数を使用できます。この値は zone.capped-cpu 資源制御と相互に関連していますが、設定値はその 100 分の 1 になります。設定値 1 は資源制御の設定値 100 に等しくなります。


zone.cpu-shares 資源制御は、公平配分スケジューラ (FSS) の CPU 配分の制限をゾーンに対して設定します。CPU 配分は、まずゾーンに対して割り当てられたあとで、project.cpu-shares エントリの指定に従って、ゾーン内のプロジェクトに分配されます。詳細は、「ゾーンがインストールされている Solaris システムでの公平配分スケジューラの使用」を参照してください。この制御のグローバルプロパティー名は cpu-shares です。

zone.max-locked-memory 資源制御は、ゾーンで使用できるロックされた物理メモリーの量を制限します。ゾーン内のプロジェクト間でのロックされたメモリー資源の割り当ては、project.max-locked-memory 資源制御を使用して制御できます。詳細は、表 6–1 を参照してください。

1 つのゾーンの LWP が多くなりすぎると、ほかのゾーンに影響を与えることがあります。zone.max-lwps 資源制御は、これを防ぐことで、資源の隔離を向上させます。ゾーン内のプロジェクト間での LWP 資源の割り当ては、project.max-lwps 資源制御を使用して制御できます。詳細は、表 6–1 を参照してください。この制御のグローバルプロパティー名は max-lwps です。

zone.max-msg-idszone.max-sem-idszone.max-shm-ids、および zone.max-shm-memory の各資源制御は、ゾーン内のすべてのプロセスで使用される System V 資源を制限します。ゾーン内のプロジェクト間での System V 資源の割り当ては、これらの資源制御の project バージョンを使用して制御できます。これらの制御のグローバルプロパティー名は、max-msg-idsmax-sem-idsmax-shm-ids、および max-shm-memory です。

zone.max-swap 資源制御は、ゾーン内のユーザープロセスのアドレス空間マッピングと tmpfs マウントで消費されるスワップを制限します。prstat -Z の出力は「スワップ」列を表示します。報告されるスワップは、ゾーンのプロセスと tmpfs マウントで消費されるスワップの合計量です。この値により、各ゾーンで予約されているスワップを監視しやすくなり、適切な zone.max-swap 設定を選択することができます。

表 17–1 ゾーン規模の資源制御

制御名 

グローバルプロパティー名 

説明 

デフォルトの単位 

使用される値 

zone.cpu-cap

 

Solaris 10 5/08: このゾーンに対する CPU 資源量の絶対的な制限。

数量 (CPU の数)、パーセントで表されます。 


注 –

capped-cpu 資源として設定する場合は、単位に小数を使用できます。


 

zone.cpu-shares

cpu-shares

このゾーンに対する公平配分スケジューラ (FSS) の CPU 配分。 

数量 (配分) 

 

zone.max-locked-memory

 

ゾーンで使用できるロックされた物理メモリーの合計量。 

priv_proc_lock_memory がゾーンに割り当てられている場合、そのゾーンがすべてのメモリーをロックするのを防ぐため、この資源制御の設定も検討してください。

サイズ (バイト) 

capped-memorylocked プロパティー。

zone.max-lwps

max-lwps

このゾーンで同時に使用できる LWP の最大数。 

数量 (LWP 数) 

 

zone.max-msg-ids

max-msg-ids

このゾーンに許容されるメッセージキュー ID の最大数。 

数量 (メッセージキュー ID の数) 

 

zone.max-sem-ids

max-sem-ids

このゾーンに許容されるセマフォー ID の最大数。 

数量 (セマフォー ID の数) 

 

zone.max-shm-ids

max-shm-ids

このゾーンに許容される共有メモリー ID の最大数。 

数量 (共有メモリー ID の数) 

 

zone.max-shm-memory

max-shm-memory

このゾーンに許容される System V 共有メモリーの合計量。 

サイズ (バイト) 

 

zone.max-swap

 

このゾーンのユーザープロセスのアドレス空間マッピングと tmpfs マウントで消費できるスワップの合計量。

サイズ (バイト) 

capped-memoryswap プロパティー

prctl コマンドを使用すると、実行中のプロセスに対してこれらの制限を指定できます。例については、prctl コマンドを使用して大域ゾーンの FSS 配分を設定する方法」を参照してください。prctl コマンドで指定された制限には持続性がありません。システムが再起動されると、制限は無効になります。

Solaris 10 11/06 以降: 構成可能な特権

ゾーンの起動時に、safe 特権のデフォルトセットが構成に含められます。これらの特権は、ゾーン内の特権プロセスがシステムのほかの非大域ゾーン内のプロセスや大域ゾーン内のプロセスに影響を及ぼすことを防ぐため、安全と見なされます。 zonecfg コマンドを使用して、次の操作を実行できます。


注 –

わずかですが、この時点でゾーンのデフォルト特権セットから削除できない特権があります。同じように、特権セットに追加できない特権もあります。


詳細は、「非大域ゾーン内の特権」「ゾーンの構成方法」、および privileges(5) のマニュアルページを参照してください。

ゾーンのコメントの追加

attr 資源の型を使ってゾーンのコメントを追加できます。詳細は、「ゾーンの構成方法」を参照してください。

zonecfg コマンドの使用

zonecfg コマンド (zonecfg(1M) のマニュアルページを参照) は、非大域ゾーンを構成するために使用します。Solaris 10 8/07 リリースでは、大域ゾーンの資源管理設定を持続的に指定する場合にも、このコマンドを使用できます。

zonecfg コマンドは、対話型モード、コマンド行モード、またはコマンドファイルモードで使用できます。このコマンドを使用して、次の操作を実行できます。

zonecfg のプロンプトは次のような形式です。


zonecfg:zonename>

ファイルシステムなど、特定の資源タイプの構成を行うときは、その資源タイプもプロンプトに表示されます。


zonecfg:zonename:fs>

この章で説明する zonecfg のさまざまな構成要素の使用手順など、詳細については、第 18 章非大域ゾーンの計画と構成 (手順)を参照してください。

zonecfg のモード

このユーザーインタフェースでは「有効範囲」という概念が使用されます。有効範囲は、「大域」または「資源固有」のどちらかです。デフォルトの有効範囲は大域です。

大域有効範囲で add サブコマンドまたは select サブコマンドを使用すると、特定の資源が選択されます。すると、有効範囲がその資源タイプに変わります。

すると、有効範囲が大域に戻ります。

addremoveset などのように、有効範囲によって異なる意味を持つサブコマンドもあります。

zonecfg の対話型モード

対話型モードでは、次のサブコマンドがサポートされます。サブコマンドで使用する意味とオプションの詳細については、zonecfg(1M) のマニュアルページでオプション情報を参照してください。破壊的な操作や作業内容の消失を伴うようなサブコマンドの場合、処理を実行する前にユーザーの確認が求められます。-F (強制) オプションを使用すると、この確認手順を省略できます。

help

一般ヘルプまたは特定の資源に関するヘルプを表示します。


zonecfg:my-zone:inherit-pkg-dir> help
create

指定された新しいゾーンに使用するメモリー内構成の構成を開始します。次のような目的に使用されます。

  • デフォルト設定を新しい構成に適用します。この方法がデフォルトです。

  • -t template オプションを使用して、指定したテンプレートと同一の構成を作成します。ゾーン名がテンプレート名から新しいゾーン名に変更されます。

  • -F オプションを使用して、既存の構成を上書きします。

  • -b オプションを使用して、なにも設定されていない空の構成を作成します。

export

標準出力または指定された出力ファイルに、コマンドファイルに使用できる形式で構成を出力します。

add

大域有効範囲では、指定された資源タイプを構成に追加します。

資源固有の有効範囲では、指定された名前と値を持つプロパティーを追加します。

詳細は、「ゾーンの構成方法」および zonecfg(1M) のマニュアルページを参照してください。

set

指定されたプロパティー名を、指定されたプロパティー値に設定します。zonepath などの大域的なプロパティーと、資源固有のプロパティーがあることに注意してください。このコマンドは、大域有効範囲と資源固有の有効範囲の両方で使用できます。

select

大域有効範囲でのみ使用できます。指定されたタイプの資源のうち、指定されたプロパティー名とプロパティー値の対の条件に一致するものを、変更対象として選択します。有効範囲がその資源タイプに変わります。資源が一意に識別されるように、プロパティーの名前と値の対を十分な数だけ指定する必要があります。

clear

Solaris 10 8/07: 省略可能な設定の値をクリアーします。必須の設定はクリアーできません。ただし、必須の設定のいくつかは、新しい値を割り当てることによって変更できます。

remove

大域有効範囲では、指定された資源タイプを削除します。資源タイプが一意に識別されるように、プロパティーの名前と値の対を十分な数だけ指定する必要があります。プロパティーの名前と値の対をまったく指定しないと、すべてのインスタンスが削除されます。該当するものが複数ある場合は、-F オプションを使用していない限り、確認を求めるメッセージが表示されます。

資源固有の有効範囲では、指定された名前と値を持つプロパティーを現在の資源から削除します。

end

資源固有の有効範囲でのみ使用できます。資源の指定を終了します。

次に、zonecfg コマンドは、現在の資源が正しく指定されているかどうかを確認します。

  • 資源が正しく指定されている場合は、その資源がメモリー内に保持される構成に追加され、有効範囲が大域に戻ります。

  • 指定が不完全な場合は、必要な作業を示すエラーメッセージが表示されます。

cancel

資源固有の有効範囲でのみ使用できます。資源の指定を終了し、有効範囲を大域に戻します。資源の指定が不完全な場合、その資源は保持されません。

delete

指定された構成を破棄します。メモリーと安定した記憶領域の両方から構成を削除します。delete-F (強制) オプションを使用する必要があります。


注意 – 注意 –

この操作は即時に実行されます。確定手順は行われず、削除されたゾーンを元に戻すことはできません。


info

現在の構成または大域の資源プロパティー zonepathautoboot、および pool に関する情報を表示します。資源タイプが指定されている場合は、そのタイプの資源についてのみ情報を表示します。資源固有の有効範囲では、このサブコマンドは、追加または変更しようとしている資源にのみ適用されます。

verify

現在の構成が正しいかどうかを確認します。各資源に必須プロパティーがすべて指定されていることを確認します。

commit

現在の構成をメモリーから安定した記憶領域に確定します。メモリー内の構成を確定するまでは、revert サブコマンドで変更内容を削除できます。zoneadm で構成を使用するには、その構成を確定する必要があります。zonecfg セッションを完了するときに、この操作の実行が自動的に試みられます。正しい構成のみ確定できるので、確定操作では自動的に確認も行われます。

revert

構成を最後に確定されたときの状態に戻します。

exit

zonecfg のセッションを終了します。exit-F (強制) オプションを使用できます。

必要な場合は、commit 操作が自動的に試行されます。EOF 文字を使ってセッションを終了することもできることに注意してください。

zonecfg のコマンドファイルモード

コマンドファイルモードでは、ファイルから入力されます。このファイルを生成するには、zonecfg の対話型モード」で説明されている export サブコマンドを使用します。構成を標準出力に出力するか、-f オプションで指定した出力ファイルに出力することができます。

ゾーン構成データ

ゾーン構成データは 2 種類のエンティティーから成ります。 資源とプロパティーです。各資源は、タイプのほかにも 1 つ以上のプロパティーを持つことがあります。プロパティーは名前と値から成ります。どのようなプロパティーセットを持つかは、資源タイプによって異なります。

資源タイプとプロパティータイプ

資源タイプとプロパティータイプは次のとおりです。

ゾーン名

ゾーン名は、構成ユーティリティーでゾーンを識別するために使用されます。ゾーン名には次のような規則が適用されます。

  • 各ゾーンの名前は一意でなければならない。

  • ゾーン名では大文字と小文字が区別される。

  • ゾーン名は英数字で始まる必要がある。

    名前には、英数字、下線 (_)、ハイフン (-)、およびピリオド (.) を使用できます。

  • 名前の長さは 64 文字以内でなければならない。

  • global という名前と SUNW で始まるすべての名前は、予約されているので使用できない。

zonepath

zonepath プロパティーは、ゾーンのルートを含むパスです。各ゾーンでは、大域ゾーンのファイルシステムの zonepath の下に root ディレクトリがあります。ゾーンのインストール時に、適切な所有者とモードによる zonepath ディレクトリ階層が作成されます。zonepath ディレクトリは、所有者が root、モードが 700 で所有される必要があります。

非大域ゾーンのルートパスは 1 つ下のレベルになります。ゾーンのルートディレクトリの所有権とアクセス権は、大域ゾーンのルートディレクトリ (/) と同じになります。ゾーンのディレクトリの所有者は root で、モードは 755 であることが必要です。これらのディレクトリは正しいアクセス権を使って自動作成され、ゾーン管理者がこれらのディレクトリを検証する必要はありません。この階層構造により、大域ゾーンのユーザーでも権限を持っていない場合は、非大域ゾーンのファイルシステムと行き来できなくなります。

パス 

説明 

/home/export/my-zone

zonecfg zonepath

/home/export/my-zone/root

ゾーンのルート 

/home/export/my-zone/dev

ゾーン用に作成されたデバイス 

この問題の詳細については、「ファイルシステムの行き来」を参照してください。


注 –

各リリースでの ZFS の制限については、「Solaris 10 6/06、Solaris 10 11/06、Solaris 10 8/07、および Solaris 10 5/08: 非大域ゾーンのルートファイルシステムを ZFS 上に配置しない」を参照してください。


autoboot

このプロパティーを true に設定すると、大域ゾーンの起動時にこのゾーンが自動的に起動されます。ゾーンサービス svc:/system/zones:default が無効になっている場合、このプロパティーの設定にかかわらず、ゾーンは自動的には起動しません。svcadm(1M) のマニュアルページに記載されているように、svcadm コマンドを使用してゾーンサービスを有効にできます。


global# svcadm enable zones
bootargs

Solaris 10 8/07: このプロパティーは、ゾーンのブート引数を設定するために使用します。rebootzoneadm boot、または zoneadm reboot コマンドで無効にされた場合を除き、このブート引数が適用されます。「Solaris 10 8/07: ゾーンのブート引数」を参照してください。

pool

このプロパティーは、システム上の資源プールをゾーンに関連付けるために使用します。1 つのプール内の資源を複数のゾーンが共有してもかまいません。「Solaris 10 8/07: dedicated-cpu 資源」も参照してください。

limitpriv

Solaris 10 11/06 以降: このプロパティーは、デフォルト以外の特権マスクを指定する場合に使用します。「非大域ゾーン内の特権」を参照してください。

特権を追加するには、特権名だけを指定するか、特権名の前に priv_ 付けて指定します。特権を除外するには、名前の前にダッシュ (-) または感嘆符 (!) を付けます。複数の特権は、コンマで区切り、引用符 () で囲みます。

priv_str_to_set(3C)で説明されているように、特殊な特権セット noneall、および basic は、それぞれの通常の定義に展開されます。ゾーン構成は大域ゾーンで行われるため、特殊な特権セット zone は使用できません。特定の特権を追加または削除してデフォルトの特権セットを変更するのが一般的な使用方法であるため、特殊なセットである default はデフォルトの特権セットにマップされます。limitpriv プロパティーの先頭に default がある場合、デフォルトセットに展開されます。

次のエントリは、dtrace_proc 特権と dtrace_user 特権だけを必要とする DTrace プログラムをゾーンで使用できるようにします。


global# zonecfg -z userzone
zonecfg:userzone> set limitpriv="default,dtrace_proc,dtrace_user"

ゾーンの特権セットに不許可の特権が含まれる場合、必須の特権が欠落している場合、または未知の特権が含まれる場合、ゾーンの検証、準備、またはブートの試行は失敗し、エラーメッセージが表示されます。

scheduling-class

Solaris 10 8/07: このプロパティーは、ゾーンのスケジューリングクラスを設定します。詳細とヒントについては、「ゾーンのスケジューリングクラス」を参照してください。

ip-type

Solaris 10 8/07: このプロパティーは、ゾーンが排他的 IP ゾーンである場合のみ設定する必要があります。「Solaris 10 8/07: 排他的 IP 非大域ゾーン」および 「ゾーンの構成方法」を参照してください。

dedicated-cpu

Solaris 10 8/07: この資源は、ゾーンの実行中にシステムのプロセッサの一部をそのゾーン専用に割り当てます。dedicated-cpu 資源は、ncpus の制限を設定し、必要に応じて importance も設定します。詳細は、「Solaris 10 8/07: dedicated-cpu 資源」を参照してください。

capped-cpu 資源

Solaris 10 5/08: この資源は、ゾーンの実行中にゾーンで消費可能な CPU 資源量に対する制限を設定します。この資源は、ncpus に制限を設けます。

capped-memory 資源

Solaris 10 8/07: この資源は、ゾーンのメモリー上限を設定するためのプロパティーをグループ化します。capped-memory 資源は、physicalswap、および locked メモリーの制限を設定します。これらのプロパティーの少なくとも 1 つは指定する必要があります。

dataset

Solaris 10 6/06: ZFS ファイルシステムのデータセット資源を追加すると、ストレージ管理を非大域ゾーンに委譲できます。ゾーン管理者は、そのデータセット内のファイルシステムの作成と破棄、クローンの作成と破棄、およびデータセットのプロパティーの変更を行うことができます。ゾーン管理者は、ゾーンに追加されていないデータセットを操作したり、ゾーンに割り当てられているデータセットに設定されている最上位レベルの割り当て制限を超過したりすることはできません。

次の方法で、ZFS データセットをゾーンに追加できます。

  • lofs マウントされたファイルシステムとして (大域ゾーンとの領域共有のみが目的の場合)

  • 委任されたデータセットとして

『Oracle Solaris ZFS 管理ガイド』の第 10 章「Oracle Solaris ZFS の高度なトピック」および 「ファイルシステムと非大域ゾーン」を参照してください。

データセットの詳細については、第 30 章Solaris ゾーンで発生するさまざまな問題の解決も参照してください。

fs

各ゾーンでは、インストール済み状態から準備完了状態に移行するときにマウントする各種のファイルシステムを指定できます。ファイルシステム資源は、ファイルシステムのマウントポイントのパスを指定します。ゾーンでファイルシステムを使用する方法の詳細については、「ファイルシステムと非大域ゾーン」を参照してください。

inherit-pkg-dir

完全ルートゾーンでは、この資源を構成するべきではありません。

疎ルートゾーンで inherit-pkg-dir 資源を使用すると、非大域ゾーンが大域ゾーンと共有するソフトウェアパッケージの保存先ディレクトリを指定できます。

inherit-pkg-dir ディレクトリに転送されるソフトウェアパッケージの内容は、非大域ゾーンでは読み取り専用モードで継承されます。ゾーンのパッケージデータベースが更新され、パッケージが反映されます。zoneadm を使用してゾーンをインストールした後で、これらの資源を変更または削除することはできません。


注 –

構成には、デフォルトの inherit-pkg-dir 資源が 4 つ含まれています。これらのディレクトリ資源は、大域ゾーンからどのディレクトリが関連パッケージを継承するべきかを指定します。資源の実装は、読み取り専用のループバックファイルシステムマウントによって行われます。

  • /lib

  • /platform

  • /sbin

  • /usr


net

ネットワークインタフェース資源は、インタフェースの名前です。各ゾーンでは、インストール済み状態から準備完了状態に移行するときに設定するべきネットワークインタフェースを指定できます。

device

デバイス資源は、デバイス照合の指定子です。各ゾーンでは、インストール済み状態から準備完了状態に移行するときに構成するべきデバイスを指定できます。

rctl

rctl 資源は、ゾーン規模の資源制御に使用されます。資源制御は、ゾーンがインストール済み状態から準備完了状態に移行するときに有効になります。

hostid

大域ゾーンの hostid とは異なる hostid を設定できます。

attr

この汎用属性は、ユーザーコメントとして使用したり、ほかのサブシステムで使用したりできます。attrname プロパティーは、英数字で始まる必要があります。name プロパティーには、英数字、ハイフン (-)、およびピリオド (.) を使用できます。zone. で始まる属性名はシステム用に予約されています。

資源タイプのプロパティー

資源には、構成可能なプロパティーもあります。資源タイプとそれに関連付けられるプロパティーは次のとおりです。

dedicated-cpu

ncpusimportance

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
capped-cpu

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
capped-memory

physicalswaplocked

ゾーン 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
fs

dirspecialrawtypeoptions

fs 資源のパラメータは、ファイルシステムをマウントする方法と場所を決定する値を指定します。fs のパラメータは次のように定義されています。

dir

ファイルシステムのマウントポイントを指定します

special

大域ゾーンからマウントするブロック型特殊デバイスの名前またはディレクトリを指定します

raw

ファイルシステムをマウントする前に fsck を実行する、raw デバイスを指定します

type

ファイルシステムのタイプを指定します

options

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 ファイルシステムを非大域ゾーンに追加する」を参照してください。


dataset

name

次の例では、データセット sales を非大域ゾーンでマウントして可視にし、大域ゾーンでは不可視にするように指定します。


zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
inherit-pkg-dir

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
net

addressphysicaldefrouter


注 –

共有 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
device

match

次の例では、/dev/pts デバイスをゾーンに追加します。


zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/pts*
zonecfg:my-zone:device> end
rctl

namevalue

Solaris 10 8/07: このリリースで新しく追加された資源制御は、zone.max-locked-memoryzone.max-msg-idszone.max-sem-idszone.max-shm-idszone.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 つから成ります。これらの名前は、privlimit、および 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 章資源制御 (概要)および 「非大域ゾーンで使用される資源制御」を参照してください。

attr

nametypevalue

次の例では、ゾーンに関するコメントを追加します。


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 サブコマンドを使用すると、ゾーン構成を標準出力に出力できます。構成は、コマンドファイルに使用できる形式で保存されます。

Tecla コマンド行編集ライブラリ

付属の Tecla コマンド行編集ライブラリは、zonecfg コマンドで使用できます。このライブラリにより、コマンド行の履歴機構と編集サポートが提供されます。

Tecla コマンド行編集ライブラリについては、次のマニュアルページを参照してください。

第 18 章 非大域ゾーンの計画と構成 (手順)

この章では、システムにゾーンを構成する前に実行する必要のある操作について説明します。また、ゾーンの構成方法、ゾーン構成の変更方法、およびシステムからゾーン構成を削除する方法についても説明します。

ゾーン構成処理の概要については、第 17 章非大域ゾーンの構成 (概要)を参照してください。

非大域ゾーンの計画と構成 (作業マップ)

ゾーンを使用できるようにシステムを設定する前に、まず、情報を収集してゾーンの構成方法を決定する必要があります。次の作業マップに、ゾーンの計画および構成方法の概要を示します。

タスク 

説明 

説明 

ゾーンの全体的な計画を立てます。 

  • システムで稼働しているアプリケーションを評価し、ゾーン内で実行するアプリケーションを決定します。

  • ゾーン内で固有のファイルを保持するディスク領域の可用性を評価します。

  • 資源管理機能も使用している場合は、資源管理境界に合わせてゾーンを配列する方法を決定します。

使用状況の履歴を参照してください。「必要なディスク容量」および 「ゾーンで使用される資源プール」も参照してください。

ゾーンの名前を決定します。 

命名規則に基づいてゾーンの名前を決定します。 

「ゾーン構成データ」および 「ゾーンのホスト名」を参照してください。

ゾーンパスを決定します。 

各ゾーンには、ルートディレクトリのパスが設定されます。これは、大域ゾーンのルートディレクトリに対する相対パスです。 

「ゾーン構成データ」を参照してください。

資源プールを構成しない場合は、CPU 制限の必要性を評価します。 

アプリケーションの要件を確認します。 

「Solaris 10 8/07: dedicated-cpu 資源」を参照してください。

大域ゾーンから rcapd を使用してゾーンのメモリー上限を設定する場合は、メモリー割り当ての必要性を評価します。

アプリケーションの要件を確認します。 

第 10 章資源上限デーモンによる物理メモリーの制御 (概要)第 11 章資源上限デーモンの管理 (手順)、および 「Solaris 10 8/07: 物理メモリーの制御と capped-memory 資源」を参照してください。

FSS をシステムのデフォルトのスケジューラにします。 

各ゾーンに CPU 配分を与えて、CPU 資源に対するゾーンの使用権を制御します。FSS では、割り当てられた配分に基づいて、プロジェクト間に CPU 資源が公平に配分されることが保証されています。 

第 8 章公平配分スケジューラ (概要)および 「ゾーンのスケジューリングクラス」を参照してください。

ゾーンを共有 IP ゾーンにするか排他的 IP ゾーンにするかを決定します。 

デフォルトは共有 IP ゾーンで、その場合はゾーンの IP アドレスを取得または構成します。構成に基づき、ネットワークアクセスを行う非大域ゾーンごとに 1 つ以上の IP アドレスを取得する必要があります。 

排他的 IP ゾーンの場合は、ゾーンに割り当てるデータリンクを決定します。ゾーンには、1 つ以上のネットワークインタフェースへの排他的アクセスが必要です。インタフェースは、bge1 などの個別の LAN や、bge2000 などの個別の VLAN である可能性があります。データリンクは GLDv3 でなければなりません。GLDv3 でないデータリンクは、dladm show-link コマンドの出力に type: legacy と表示されます。

「ゾーンホスト名の決定およびネットワークアドレスの取得」「ゾーンの構成方法」、および 『Solaris のシステム管理 (IP サービス)』を参照してください。

GLDv3 インタフェースの詳細については、『Solaris のシステム管理 (IP サービス)』「Oracle Solaris インタフェースタイプ」を参照してください。

ゾーン内にマウントするファイルシステムを決定します。 

アプリケーションの要件を確認します。 

詳細は、「ゾーンでマウントされるファイルシステム」を参照してください。

ゾーンで使用可能にするべきネットワークインタフェースを決定します。 

アプリケーションの要件を確認します。 

詳細は、「共有 IP ネットワークインタフェース」を参照してください。

非大域ゾーンのデフォルトの特権セットを変更する必要があるかどうかを決定します。 

特権セットを確認します。 デフォルトの特権、追加および削除が可能な特権、および現時点では使用できない特権があります。 

「非大域ゾーン内の特権」を参照してください。

各ゾーンで構成するべきデバイスを決定します。 

アプリケーションの要件を確認します。 

使用するアプリケーションのマニュアルを参照してください。 

ゾーンを構成します。 

zonecfg を使用してゾーンの構成を作成します。

「ゾーンを構成、検証、および確定する」を参照してください。

構成したゾーンを検証および確定します。 

指定された資源およびプロパティーが仮想サーバー上で有効かどうかを判定します。 

「ゾーンを構成、検証、および確定する」を参照してください。

現在のシステム設定の評価

ゾーンは、Solaris 10 リリースが稼働する任意のマシンで実行できます。次に、ゾーンの使用に関連したマシンの主な考慮事項を示します。

必要なディスク容量

ゾーンが消費可能なディスク容量に関する制限はありません。ディスク容量の制限を設定することは、大域管理者の役割です。大域管理者は、非大域ゾーンのルートファイルシステムを保持するのに十分なローカルストレージがあることを確認する必要があります。小規模な単一プロセッサシステムでも、同時に稼働する多数のゾーンをサポートできます。

大域ゾーンにインストールされるパッケージの特性は、作成される非大域ゾーンの容量要件に影響を及ぼします。パッケージの数およびディスク容量要件が要因となります。

疎ルートゾーン

Solaris 10 リリースでは、inherit-pkg-dir 資源を持つ非大域ゾーンは疎ルートゾーンと呼ばれます。

疎ルートゾーンモデルは、次のようにオブジェクトの共有を最適化します。

このモデルでは、すべてのパッケージが非大域ゾーンにインストールされているように表示されます。ループバックマウントされた読み取り専用のファイルシステムに内容を提供しないパッケージは、完全にインストールされます。ループバックマウントされた読み取り専用のファイルシステムに提供される内容は、大域ゾーンから継承され可視になるので、インストールする必要はありません。

ゾーンごとに 40M バイトの 追加 RAM が推奨されていますが、十分なスワップ空間のあるマシンでは、これは必須ではありません。

完全ルートゾーン

完全ルートゾーンモデルは、最大限の構成可能性を提供します。Solaris の必須パッケージおよび選択したオプションパッケージのすべてが、ゾーン固有のファイルシステムにインストールされます。このモデルの利点として、大域管理者がゾーンのファイルシステムの配置をカスタマイズできることが挙げられます。たとえば、バンドルされていない Sun 以外のパッケージを任意に追加することが可能です。

このモデルに必要なディスク容量は、大域ゾーンにインストールされているパッケージによって使用されるディスク容量で決まります。


注 –

次の inherit-pkg-dir ディレクトリを含む疎ルートゾーンを作成した場合、このゾーンを完全ルートゾーンとしてインストールするには、まず、これらのディレクトリを非大域ゾーンの構成から削除する必要があります。

「ゾーンの構成方法」を参照してください。


ゾーンサイズを制限する

ゾーンサイズを制限する際、次のオプションを使用できます。

ゾーンホスト名の決定およびネットワークアドレスの取得

ゾーンのホスト名を決定する必要があります。その後、ネットワーク接続を確立する場合、ゾーンの IPv4 アドレスを割り当てるか、IPv6 アドレスの構成および割り当てを手動で行う必要があります。

ゾーンのホスト名

ゾーン用に選択したホスト名は、大域ゾーン内の /etc/nsswitch.conf ファイルでの指定に応じて、hosts データベースまたは /etc/inet/hosts データベース内で定義する必要があります。ネットワークデータベースは、ネットワークの構成情報を提供するファイルです。nsswitch.conf ファイルには、使用するネームサービスを指定します。

ネームサービス用にローカルファイルを使用する場合は、/etc/inet/hosts ファイル内で hosts データベースが保持されます。ゾーンネットワークインタフェースのホスト名の解決は、/etc/inet/hosts 内のローカル hosts データベースで行われます。あるいは、ゾーンの構成時に IP アドレス自体を直接指定することで、ホスト名の解決を不要にできます。

詳細は、『Solaris のシステム管理 (IP サービス)』「TCP/IP 構成ファイル」および『Solaris のシステム管理 (IP サービス)』「ネットワークデータベースと nsswitch.conf ファイル」を参照してください。

共有 IP ゾーンのネットワークアドレス

ネットワーク接続を必要とする各共有 IP ゾーンには、1 つ以上の一意の IP アドレスが与えられます。IPv4 と IPv6 の両方のアドレスがサポートされます。

IPv4 のゾーンネットワークアドレス

IPv4 を使用している場合、アドレスを取得してゾーンに割り当てます。

IP アドレスとともに接頭辞の長さも指定できます。この接頭辞の書式は アドレス/接頭辞の長さ です。たとえば、192.168.1.1/24 の場合、使用するアドレスは 192.168.1.1 で、使用するネットマスクは 255.255.255.0、または最初の 24 ビットがビット 1 であるマスクです。

IPv6 のゾーンネットワークアドレス

IPv6 を使用している場合、アドレスを手動で設定する必要があります。通常、次の 2 種類のアドレスを最小限設定する必要があります。

リンクローカルアドレス

リンクローカルアドレスの書式は、fe80::<64 ビットインタフェース ID>/10 です。/10 は、接頭辞の長さが 10 ビットであることを示します。

サブネット上で構成された大域接頭辞から作成されたアドレス

大域ユニキャストアドレスは、管理者がサブネットごとに構成した 64 ビット接頭辞および 64 ビットのインタフェース ID に基づきます。接頭辞は、IPv6 を使用するよう構成されている同一サブネット上の任意のシステムで、ifconfig コマンドに -a6 オプションを指定して実行しても取得できます。

通常、64 ビットのインタフェース ID は、システムの MAC アドレスから取得されます。次の方法で、ゾーン用の一意の代替アドレスを大域ゾーンの IPv4 アドレスから取得できます。

<16 ビットのゼロ>:<IPv4 アドレスの上位 16 ビット>:<IPv4 アドレスの下位 16 ビット>:<ゾーンで一意の番号>

たとえば、大域ゾーンの IPv4 アドレスが 192.168.200.10 である場合、ゾーン固有の番号 1 を使用する非大域ゾーン用の適正なリンクローカルアドレスは、fe80::c0a8:c80a:1/10 になります。そのサブネットで使用中の大域接頭辞が 2001:0db8:aabb:ccdd/64 である場合、同じ非大域ゾーン用の一意の大域ユニキャストアドレスは 2001:0db8:aabb:ccdd::c0a8:c80a:1/64 です。IPv6 アドレスを設定する際、接頭辞の長さを指定する必要があることに注意してください。

リンクローカルおよび大域ユニキャストアドレスの詳細については、inet6(7P) のマニュアルページを参照してください。

排他的 IP ゾーンのネットワークアドレス

排他的 IP ゾーンの内部で、大域ゾーンと同様の方法でアドレスを構成します。DHCP および IPv6 ステートレスアドレスの自動構成を使用してアドレスを構成することもできます。

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

ファイルシステムの構成

仮想プラットフォームを設定する際、実行するマウントを多数指定できます。ループバック仮想ファイルシステム (LOFS) を使用してファイルシステムをゾーンにループバックマウントする場合、nodevices オプションを指定して仮想ファイルシステムをマウントする必要があります。nodevices オプションの詳細は、「ファイルシステムと非大域ゾーン」を参照してください。

LOFS を使用すると、代替パス名を使用してファイルにアクセスできるように、新しい仮想ファイルシステムを作成できます。非大域ゾーンでは、ループバックマウントにより、ファイルシステム階層がゾーンのルート下に複製されているように見えます。ゾーン内では、ゾーンのルートから始まるパス名を使ってすべてのファイルにアクセスできるようになります。LOFS マウントでは、ファイルシステムの名前空間が維持されます。

図 18–1 ループバックマウントされたファイルシステム

図に、ループバックマウントされたファイルシステムを示します。

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

非大域ゾーン構成の作成、改訂、および削除 (作業マップ)

タスク 

説明 

説明 

非大域ゾーンを構成します。 

zonecfg コマンドを使用してゾーンの作成、構成の検証および確定を行います。

スクリプトを使用して、システム上の複数のゾーンを構成および起動することもできます。zonecfg コマンドを使用して非大域ゾーンの構成を表示できます。

「ゾーンを構成、検証、および確定する」「複数のゾーンを構成するスクリプト」

ゾーン構成を変更します。 

ゾーン構成内の資源タイプを変更するか、専用のデバイスをゾーンに追加する場合に、この手順を実行します。 

zonecfg コマンドを使用してゾーン構成を変更する」

ゾーン構成を元に戻すか、ゾーン構成を削除します。 

zonecfg コマンドを使用して、ゾーン構成に対して行なった資源設定を取り消すか、ゾーン構成を削除します。

zonecfg コマンドを使用してゾーン構成を元に戻す、または削除する」

ゾーン構成を削除します。 

zonecfg コマンドと delete サブコマンドを使用して、システムからゾーン構成を削除します。

「ゾーン構成を削除する方法」

ゾーンを構成、検証、および確定する

次の処理を実行するには、zonecfg コマンド (zonecfg(1M) のマニュアルページを参照) を使用します。

zonecfg コマンドは、大域ゾーンの資源管理設定を持続的に指定する場合にも使用できます。

zonecfg ユーティリティーを使用してゾーンを構成する際、revert サブコマンドを使用して、資源の設定を元に戻すことができます。「ゾーン構成を元に戻す方法」を参照してください。

システムに複数のゾーンを構成するスクリプトについては、「複数のゾーンを構成するスクリプト」を参照してください。

非大域ゾーンの構成を表示する方法については、「非大域ゾーンの構成を表示する方法」を参照してください。

Procedureゾーンの構成方法

ネイティブな非大域ゾーンの作成に必須の要素は、zonename および zonepath プロパティーだけです。そのほかの資源およびプロパティーは省略可能です。省略可能な資源には、dedicated-cpu 資源と capped-cpu 資源のどちらを使用するかを決めるなど、選択肢の中から選ぶ必要があるものもあります。使用可能な zonecfg のプロパティーと資源については、「ゾーン構成データ」を参照してください。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 選択したゾーン名を使用して、ゾーン構成を設定します。

    この手順例では、my-zone という名前を使用します。


    global# zonecfg -z my-zone
    

    このゾーンの初回構成時には、次のシステムメッセージが表示されます。


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. 新しいゾーン構成を作成します。

    この手順では、デフォルト設定を使用します。


    zonecfg:my-zone> create
    
  4. ゾーンのパス (この手順では /export/home/my-zone) を設定します。


    zonecfg:my-zone> set zonepath=/export/home/my-zone
    

    Solaris 10 10/08 より前のリリースでは、zonepath を ZFS 上に設定しないようにしてください。

  5. autoboot 値を設定します。

    true に設定すると、大域ゾーンの起動時にこのゾーンが自動的に起動します。ゾーンを自動的に起動するには、ゾーンサービス svc:/system/zones:default も有効になっている必要があります。デフォルト値は false です。


    zonecfg:my-zone> set autoboot=true
    
  6. .ゾーンの持続的なブート引数を設定します。


    zonecfg:my-zone> set bootargs="-m verbose"
    
  7. 1 つの CPU をこのゾーン専用に割り当てます。


    zonecfg:my-zone> add dedicated-cpu
    
    1. CPU の数を設定します。


      zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
      
    2. (省略可能) 重要性を設定します。


      zonecfg:my-zone:dedicated-cpu> set importance=10
      

      デフォルト値は 1 です。

    3. 指定を終了します。


      zonecfg:my-zone:dedicated-cpu> end
      
  8. 権限のデフォルトセットを修正します。


    zonecfg:my-zone> set limitpriv="default,sys_time"
    

    この行は、システムクロックを設定する機能をデフォルトの特権セットに追加します。

  9. スケジューリングクラスを FSS に設定します。


    zonecfg:my-zone> set scheduling-class=FSS
    
  10. メモリー上限を追加します。


    zonecfg:my-zone> add capped-memory
    
    1. メモリー上限を設定します。


      zonecfg:my-zone:capped-memory> set physical=50m
      
    2. スワップメモリーの上限を設定します。


      zonecfg:my-zone:capped-memory> set swap=100m
      
    3. ロックされたメモリーの上限を設定します。


      zonecfg:my-zone:capped-memory> set locked=30m
      
    4. メモリー上限の指定を終了します。


      zonecfg:my-zone:capped-memory> end
      
  11. ファイルシステムを追加します。


    zonecfg:my-zone> add fs
    
    1. ファイルシステムのマウントポイント (この手順では /usr/local) を設定します。


      zonecfg:my-zone:fs> set dir=/usr/local
      
    2. 大域ゾーン内の /opt/zones/my-zone/local を、構成中のゾーン内で /usr/local としてマウントすることを指定します。


      zonecfg:my-zone:fs> set special=/opt/zones/my-zone/local
      

      非大域ゾーン内では、/usr/local ファイルシステムは読み取りおよび書き込みが可能です。

    3. ファイルシステムのタイプ (この手順では lofs) を指定します。


      zonecfg:my-zone:fs> set type=lofs
      

      このタイプは、カーネルとそのファイルシステムとの相互動作の方法を示します。

    4. ファイルシステムの指定を終了します。


      zonecfg:my-zone:fs> end
      

    この手順を複数回実行することで、複数のファイルシステムを追加できます。

  12. (省略可能) hostid を設定します。


    zonecfg:my-zone> set hostid=80f0c086
    
  13. ストレージプール tanksales という ZFS データセットを追加します。


    zonecfg:my-zone> add dataset
    
    1. ZFS データセット sales のパスを指定します。


      zonecfg:my-zone> set name=tank/sales
      
    2. データセットの指定を終了します。


      zonecfg:my-zone> end
      
  14. (疎ルートゾーンのみ) 大域ゾーンからループバックマウントされた共有ファイルシステムを追加します。

    共有ファイルシステムを持たない完全ルートゾーンを作成する場合は、この手順を実行しないでください。「必要なディスク容量」に記述されている完全ルートゾーンの説明を参照してください。


    zonecfg:my-zone> add inherit-pkg-dir
    
    1. 大域ゾーン内の /opt/sfw を、構成中のゾーン内で読み取り専用モードでマウントすることを指定します。


      zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw
      

      注 –

      ゾーンのパッケージデータベースが更新され、パッケージが反映されます。zoneadm を使用してゾーンをインストールした後で、これらの資源を変更または削除することはできません。


    2. inherit-pkg-dir の指定を終了します。


      zonecfg:my-zone:inherit-pkg-dir> end
      

    この手順を複数回実行することで、複数の共有ファイルシステムを追加できます。


    注 –

    完全ルートゾーンを作成する場合で、inherit-pkg-dir を使用してデフォルトの共有ファイルシステム資源がすでに追加されているときは、ゾーンのインストール前に、次のように zonecfg を使用して、これらのデフォルトの inherit-pkg-dir 資源を削除する必要があります。

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/lib

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/platform

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/sbin

    • zonecfg:my-zone> remove inherit-pkg-dir dir=/usr


  15. (省略可能) 排他的 IP ゾーンを作成する場合は、ip-type を設定します。


    zonecfg:my-zone> set ip-type=exclusive
    

    注 –

    add net 手順では、物理デバイスタイプだけを指定します。


  16. ネットワークインタフェースを追加します。


    zonecfg:my-zone> add net
    
    1. (共有 IP のみ) ネットワークインタフェースの IP アドレス (この手順では 192.168.0.1) を指定します。


      zonecfg:my-zone:net> set address=192.168.0.1
      
    2. ネットワークインタフェースの物理デバイスタイプ (この手順では hme デバイス) を指定します。


      zonecfg:my-zone:net> set physical=hme0
      
    3. Solaris 10 10/08: (省略可能、共有 IP のみ) ネットワークインタフェースのデフォルトのルーター (この手順では10.0.0.1) を設定します。


      zonecfg:my-zone:net> set defrouter=10.0.0.1
      
    4. 指定を終了します。


      zonecfg:my-zone:net> end
      

    この手順を複数回実行することで、複数のネットワークインタフェースを追加できます。

  17. デバイスを追加します。


    zonecfg:my-zone> add device
    
    1. デバイスの一致 (この手順では /dev/sound/*) を設定します。


      zonecfg:my-zone:device> set match=/dev/sound/*
      
    2. デバイスの指定を終了します。


      zonecfg:my-zone:device> end
      

    この手順を複数回実行することで、複数のデバイスを追加できます。

  18. プロパティー名を使用して、ゾーン規模の資源制御を追加します。


    zonecfg:my-zone> set max-sem-ids=10485200
    

    この手順を複数回実行することで、複数の資源制御を追加できます。

  19. 資源タイプ attr を使用してコメントを追加します。


    zonecfg:my-zone> add attr
    
    1. 名前を comment に設定します。


      zonecfg:my-zone:attr> set name=comment
      
    2. タイプを string に設定します。


      zonecfg:my-zone:attr> set type=string
      
    3. 値をゾーンの内容を示すコメントに設定します。


      zonecfg:my-zone:attr> set value="This is my work zone."
      
    4. 資源タイプ attr の指定を終了します。


      zonecfg:my-zone:attr> end
      
  20. ゾーンの構成を検証します。


    zonecfg:my-zone> verify
    
  21. ゾーンの構成を確定します。


    zonecfg:my-zone> commit
    
  22. zonecfg コマンドを終了します。


    zonecfg:my-zone> exit
    

    プロンプトで commit コマンドを明示的に入力しなくても、exit を入力するか EOF が発生すると、commit の実行が自動的に試みられます。

コマンド行での複数のサブコマンドの使用

ヒント –

zonecfg コマンドは、複数のサブコマンドもサポートします。次に示すように、同じシェル呼び出しで引用符で囲み、セミコロンで区切ります。


global# zonecfg -z my-zone "create ; set zonepath=/export/home/my-zone"

次に進む手順

確定済みのゾーン構成をインストールする方法については、「ゾーンのインストールと起動」を参照してください。

複数のゾーンを構成するスクリプト

このスクリプトを使用して、システムで複数のゾーンを構成および起動できます。スクリプトには、次のパラメータを指定します。

このスクリプトを実行するには、大域ゾーン内の大域管理者になる必要があります。大域管理者は、大域ゾーン内でスーパーユーザー権限を保持するか、Primary Administrator 役割になります。


#!/bin/ksh
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident	"%Z%%M%	%I%	%E% SMI"

if [[ -z "$1" || -z "$2" || -z "$3" ]]; then
		echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir>"
		exit 2
fi

if [[ ! -d $3 ]]; then
		echo "$3 is not a directory"
		exit 1
fi

nprocs=`psrinfo | wc -l`
nzones=$1
prefix=$2
dir=$3

ip_addrs_per_if=`ndd /dev/ip ip_addrs_per_if`
if [ $ip_addrs_per_if -lt $nzones ]; then
		echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)"
		echo "set it higher with 'ndd -set /dev/ip ip_addrs_per_if <num>"
		exit 1
fi

i=1
while [ $i -le $nzones ]; do
	zoneadm -z $prefix$i list > /dev/null 2>&1
	if [ $? != 0 ]; then
		echo configuring $prefix$i
		F=$dir/$prefix$i.config
		rm -f $F
		echo "create" > $F
		echo "set zonepath=$dir/$prefix$i" >> $F
		zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&1 | \
		    sed 's/^/    /g' 
	else
		echo "skipping $prefix$i, already configured"
	fi
	i=`expr $i + 1`
done

i=1
while [ $i -le $nzones ]; do
	j=1
	while [ $j -le $nprocs ]; do
		if [ $i -le $nzones ]; then
			if [ `zoneadm -z $prefix$i list -p | \
			    cut -d':' -f 3` != "configured" ]; then
				echo "skipping $prefix$i, already installed"
			else
				echo installing $prefix$i
				mkdir -pm 0700 $dir/$prefix$i
				chmod 700 $dir/$prefix$i
				zoneadm -z $prefix$i install > /dev/null 2>&1 &
				sleep 1	# spread things out just a tad
			fi
		fi
		i=`expr $i + 1`
		j=`expr $j + 1`
	done
	wait
done

i=1
while [ $i -le $nzones ]; do
	echo setting up sysid for $prefix$i
	cfg=$dir/$prefix$i/root/etc/sysidcfg
	rm -f $cfg
	echo "network_interface=NONE {hostname=$prefix$i}" > $cfg
	echo "system_locale=C" >> $cfg
	echo "terminal=xterms" >> $cfg
	echo "security_policy=NONE" >> $cfg
	echo "name_service=NONE" >> $cfg
	echo "timezone=US/Pacific" >> $cfg
	echo "root_password=Qexr7Y/wzkSbc" >> $cfg  # 'l1a'
	i=`expr $i + 1`
done

i=1
para=`expr $nprocs \* 2`
while [ $i -le $nzones ]; do
	date
	j=1
	while [ $j -le $para ]; do
		if [ $i -le $nzones ]; then
			echo booting $prefix$i
			zoneadm -z $prefix$i boot &
		fi
		j=`expr $j + 1`
		i=`expr $i + 1`
	done
	wait
done

Procedure非大域ゾーンの構成を表示する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ゾーンの構成を表示します。


    global# zonecfg -z zonename info
    

zonecfg コマンドを使用してゾーン構成を変更する

zonecfg コマンドを使用して、次の操作を実行することもできます。

Procedureゾーン構成内の資源タイプを変更する方法

資源タイプを選択して、その資源の仕様を変更できます。

zoneadm を使ってゾーンをインストールしたあとで inherit-pkg-dir ディレクトリ内のソフトウェアパッケージの内容を変更したり削除したりすることはできない点に注意してください。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 変更するゾーン (この手順では my-zone ) を選択します。


    global# zonecfg -z my-zone
    
  3. 変更する資源タイプ (資源制御など) を選択します。


    zonecfg:my-zone> select rctl name=zone.cpu-shares
    
  4. 現在の値を削除します。


    zonecfg:my-zone:rctl> remove value (priv=privileged,limit=20,action=none)
    
  5. 新しい値を追加します。


    zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)
    
  6. 改定された rctl の指定を終了します。


    zonecfg:my-zone:rctl> end
    
  7. ゾーンの構成を確定します。


    zonecfg:my-zone> commit
    
  8. zonecfg コマンドを終了します。


    zonecfg:my-zone> exit
    

    プロンプトで commit コマンドを明示的に入力しなくても、exit を入力するか EOF が発生すると、commit の実行が自動的に試みられます。

    zonecfg で行なった確定済みの変更は、ゾーンの次回起動時に適用されます。

ProcedureSolaris 10 8/07: ゾーン構成内のプロパティータイプをクリアーする方法

スタンドアロンのプロパティーをリセットするには、この手順を使用します。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 変更するゾーン (この手順では my-zone) を選択します。


    global# zonecfg -z my-zone
    
  3. 変更対象のプロパティー (この手順では既存のプールの関連付け) をクリアーします。


    zonecfg:my-zone> clear pool
    
  4. ゾーンの構成を確定します。


    zonecfg:my-zone> commit
    
  5. zonecfg コマンドを終了します。


    zonecfg:my-zone> exit
    

    プロンプトで commit コマンドを明示的に入力しなくても、exit を入力するか EOF が発生すると、commit の実行が自動的に試みられます。

    zonecfg で行なった確定済みの変更は、ゾーンの次回起動時に適用されます。

ProcedureSolaris 10 3/05 から Solaris 10 11/06: ゾーン構成内のプロパティータイプを変更する方法

構成する関連プロパティーを持たないスタンドアロンのプロパティーをリセットするには、この手順を使用します。たとえば、既存のプールの関連付けを削除するには、pool 資源を null にリセットします。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 変更するゾーン (この手順では my-zone) を選択します。


    global# zonecfg -z my-zone
    
  3. 変更対象のプロパティー (この手順では既存のプールの関連付け) をリセットします。


    zonecfg:my-zone> set pool=""
    
  4. ゾーンの構成を確定します。


    zonecfg:my-zone> commit
    
  5. zonecfg コマンドを終了します。


    zonecfg:my-zone> exit
    

    プロンプトで commit コマンドを明示的に入力しなくても、exit を入力するか EOF が発生すると、commit の実行が自動的に試みられます。

    zonecfg で行なった確定済みの変更は、ゾーンの次回起動時に適用されます。

ProcedureSolaris 10 8/07: ゾーンの名前を変更する方法

この手順を使用すると、構成済み状態またはインストール済み状態にあるゾーンの名前を変更できます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 名前を変更するゾーン (この手順では my-zone) を選択します。


    global# zonecfg -z my-zone
    
  3. ゾーンの名前を newzone などに変更します。


    zonecfg:my-zone> set zonename=newzone
    
  4. 変更を確定します。


    zonecfg:newzone> commit
    
  5. zonecfg コマンドを終了します。


    zonecfg:newzone> exit
    

    zonecfg で行なった確定済みの変更は、ゾーンの次回起動時に適用されます。

Procedure専用のデバイスをゾーンに追加する方法

次に、非大域ゾーン構成内に走査デバイスを配置する手順を示します。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. デバイスを追加します。


    zonecfg:my-zone> add device
    
  3. デバイスの一致 (この手順では /dev/scsi/scanner/c3t4*) を設定します。


    zonecfg:my-zone:device> set match=/dev/scsi/scanner/c3t4*
    
  4. デバイスの指定を終了します。


    zonecfg:my-zone:device> end
    
  5. zonecfg コマンドを終了します。


    zonecfg:my-zone> exit
    

Procedure大域ゾーンの zone.cpu-shares を設定する方法

大域ゾーンの配分を持続的に設定する場合に、ここで説明する手順を使用します。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. zonecfg コマンドを使用します。


    # zonecfg -z global
    
  3. 大域ゾーンの配分を 5 に設定します。


    zonecfg:global> set cpu-shares=5
    
  4. zonecfg を終了します。


    zonecfg:global> exit
    

zonecfg コマンドを使用してゾーン構成を元に戻す、または削除する

zonecfg(1M) のマニュアルページの記述に従って、zonecfg コマンドを使用し、ゾーンの構成を元に戻すか、またはゾーン構成を削除します。

Procedureゾーン構成を元に戻す方法

zonecfg ユーティリティーによるゾーンの構成中にゾーン構成に対して行なった資源設定を取り消すには、revert サブコマンドを使用します。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. tmp-zone という名前のゾーンを構成中に、info と入力して構成を表示します。


    zonecfg:tmp-zone> info
    

    構成の net 資源セグメントが、次のように表示されます。


    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    net:
            address: 192.168.0.1
            physical: eri0
    device
            match: /dev/pts/*
    .
    .
    .
  3. ネットアドレスを削除します。


    zonecfg:tmp-zone> remove net address=192.168.0.1
    
  4. net エントリが削除されたことを確認します。


    zonecfg:tmp-zone> info
    

    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    device
            match: /dev/pts/*
    .
    .
    .
  5. revert と入力します。


    zonecfg:tmp-zone> revert
    
  6. 次の質問に yes で応答します。


    Are you sure you want to revert (y/[n])? y
    
  7. ネットアドレスが再び存在することを確認します。


    zonecfg:tmp-zone> info
    

    .
    .
    .
    fs:
            dir: /tmp
            special: swap
            type: tmpfs
    net:
            address: 192.168.0.1
            physical: eri0
    device
            match: /dev/pts/*
    .
    .
    .

Procedureゾーン構成を削除する方法

zonecfgdelete サブコマンドを使用して、システムからゾーン構成を削除します。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 次の 2 つの方法のいずれかを使用して、ゾーン a-zone のゾーン構成を削除します。

    • -F オプションを使用して操作を強制実行します。


      global# zonecfg -z a-zone delete -F
      
    • システムプロンプトに yes で応答し、対話的にゾーンを削除します。


      global# zonecfg -z a-zone delete
      Are you sure you want to delete zone a-zone (y/[n])? y
      

第 19 章 非大域ゾーンのインストール、停止、複製、およびアンインストールについて (概要)

この章では、Solaris システムへのゾーンのインストールについて説明します。また、仮想プラットフォームおよびアプリケーション環境を管理する 2 つのプロセス zoneadmd および zsched についても説明します。ゾーンの停止、再起動、複製、およびアンインストールに関する情報も提供します。

この章の内容は次のとおりです。

非大域ゾーンの複製、非大域ゾーンのインストールと起動、および非大域ゾーンの停止やアンインストールの手順については、第 20 章非大域ゾーンのインストール、起動、停止、アンインストール、および複製 (手順)を参照してください。

lx ブランドゾーンのインストールについては、第 34 章lx ブランドゾーンのインストール、起動、停止、複製、およびアンインストールについて (概要)および第 35 章lx ブランドゾーンのインストール、起動、停止、アンインストール、および複製 (手順)を参照してください。

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

Solaris 10 11/06: 非大域ゾーンを複製する機能が使用可能になりました。「Solaris 10 11/06: 同一システム上での非大域ゾーンの複製」を参照してください。

Solaris 10 8/07: ブート引数に関する情報も追加されています。「Solaris 10 8/07: ゾーンのブート引数」を参照してください。

Solaris 10 5/09: ZFS クローンが実装されています。複製元の zonepath と複製先の zonepath が両方とも ZFS 上にあり、同じプールに含まれる場合、zoneadm cloneコマンドは自動的に ZFS を使用してゾーンを複製します。どちらの zonepath も ZFS でない場合、または一方が ZFS で他方が ZFS でない場合、コードは既存のコピー手法を使用します。

ゾーンのインストールと管理の概要

zoneadm コマンド (zoneadm(1M) のマニュアルページを参照) は、非大域ゾーンをインストールおよび管理するための主要なツールです。zoneadm コマンドを使用する操作は、大域ゾーンから実行する必要があります。zoneadm コマンドを使用すると、次の作業を実行できます。

ゾーンのインストールおよび検証手順については、第 20 章非大域ゾーンのインストール、起動、停止、アンインストール、および複製 (手順)および zoneadm(1M) のマニュアルページを参照してください。zoneadm list コマンドでサポートされるオプションについては、zoneadm(1M) のマニュアルページも参照してください。ゾーンの構成手順については、第 18 章非大域ゾーンの計画と構成 (手順)および zonecfg(1M) のマニュアルページを参照してください。ゾーンの状態については、「非大域ゾーンの状態モデル」を参照してください。

ゾーンの Solaris 監査レコードの生成を計画している場合は、非大域ゾーンをインストールする前に 「ゾーン内での Solaris 監査の使用」を参照してください。

ゾーンの構築

このセクションの内容は、既存のゾーンの複製にではなく、初期のゾーン構築に適用されます。

非大域ゾーンを構成したあとで、システムの構成にゾーンを安全にインストールできることを確認してください。その後、ゾーンをインストールできます。ゾーンのルートファイルシステムに必要とされるファイルは、システムによりゾーンのルートパス内にインストールされます。

非大域ゾーンは、オープンネットワーク構成 (generic_open.xml) を使ってインストールされます。ネットワーク構成の種類については、『Solaris のシステム管理 (基本編)』の第 19 章「サービスの管理 (手順)」を参照してください。ゾーン管理者は、netservices コマンドを使って、ゾーンを制限されたネットワーク構成 (generic_limited_net.xml) に切り替えることができます。SMF コマンドを使って、特定のサービスを有効または無効にできます。

ゾーンのインストールが成功したら、初回のログインおよび起動を実行できます。

パッケージを Solaris インストール内に最初にインストールした時に使用した方法が、非大域ゾーンの生成にも使用されます。

大域ゾーンには、非大域ゾーンの生成に必要なデータがすべて存在する必要があります。ゾーンの生成には、ディレクトリの作成、ファイルのコピー、および構成情報の指定が含まれます。

パッケージから大域ゾーン内に作成されたデータまたは情報だけが、大域ゾーンからゾーンを生成するのに使用されます。詳細は、pkgparam(1) および pkginfo(4) のマニュアルページを参照してください。

ゾーンのインストール時に、次の場所からデータが参照またはコピーされます。

また、次のタイプの情報が大域ゾーンに存在する場合、これらの情報はインストール中のゾーンにはコピーされません。

Solaris 監査を使用する場合、大域ゾーンからコピーされた監査ファイルの変更が必要な場合があります。詳細は、「ゾーン内での Solaris 監査の使用」を参照してください。

非大域ゾーン内では、次の機能を構成することはできません。

ゾーンの状態がインストール済みから準備完了に移行する際、構成ファイルで指定された資源セットが追加されます。システムにより、一意のゾーン ID が割り当てられます。ファイルシステムがマウントされ、ネットワークインタフェースが設定され、デバイスが構成されます。準備完了状態に移行すると、仮想プラットフォームでユーザープロセスを開始する準備が整います。準備完了状態では、仮想プラットフォームを管理するため、zsched および zoneadmd プロセスが開始されます。

準備完了状態のゾーンには、稼働中のユーザープロセスは存在しません。準備完了状態のゾーンと稼働中のゾーンの主な違いは、稼働中のゾーンでは 1 つ以上のプロセスが稼働している点です。詳細は、init(1M) のマニュアルページを参照してください。

zoneadmd デーモン

ゾーン管理デーモン zoneadmd は、ゾーンの仮想プラットフォーム管理用の主要なプロセスです。このデーモンは、ゾーンの起動および停止処理の管理も担当します。システム上のアクティブな (準備完了、稼働中、または停止処理中の) ゾーンごとに、1 つの zoneadmd プロセスが存在します。

zoneadmd デーモンは、ゾーン構成での指定に従ってゾーンを設定します。このプロセスには、次の処理が含まれます。

zoneadmd デーモンが実行中でない場合、zoneadm によりこのデーモンが自動的に起動されます。このため、何らかの理由でこのデーモンが動作していない場合、zoneadm を呼び出してそのゾーンを管理すると zoneadmd を再起動します。

zoneadmd デーモンのマニュアルページは、zoneadmd(1M) です。

zsched ゾーンスケジューラ

アクティブなゾーンとは、準備完了状態、稼働状態、または停止処理状態のゾーンを指します。すべてのアクティブなゾーンには、カーネルプロセス zsched が関連付けられています。ゾーンのために処理を実行するカーネルスレッドは、zsched により所有されています。zsched プロセスにより、ゾーンサブシステムがカーネルスレッドをゾーンごとに追跡することが可能になります。

ゾーンアプリケーション環境

ゾーンアプリケーション環境の作成には、zoneadm コマンドが使用されます。

非大域ゾーンを最初に起動する前に、ゾーンの内部構成を作成する必要があります。内部構成では、使用するネームサービス、デフォルトのロケールおよびタイムゾーン、ゾーンのルートパスワード、およびほかのアプリケーション環境特性を指定します。アプリケーション環境は、ゾーンコンソールに表示される一連のプロンプトへの応答で確立されます。詳細は、「ゾーンの内部構成」を参照してください。ゾーンのデフォルトロケールおよびタイムゾーンは、大域設定には関係なく構成できます。

ゾーンの停止、再起動、およびアンインストールについて

ここでは、ゾーンの停止、再起動、およびアンインストール手順の概要について説明します。要求があった際にゾーンの停止に失敗した場合の障害対処に関するヒントも提供します。

ゾーンを停止する

ゾーンのアプリケーション環境および仮想プラットフォームの両方を削除する場合に、zoneadm halt コマンドを使用します。これにより、ゾーンはインストール済みの状態に戻されます。すべてのプロセスが終了し、デバイスが構成解除され、ネットワークインタフェースが破棄され、ファイルシステムのマウントが解除され、カーネルデータ構造が破棄されます。

halt コマンドにより、ゾーン内部の停止処理スクリプトが実行されることはありません。ゾーンの停止処理を行う方法については、zlogin を使用してゾーンを停止処理する方法」を参照してください。

停止操作に失敗する場合は、「ゾーンが停止しない」を参照してください。

ゾーンを再起動する

zoneadm reboot コマンドを使用してゾーンを再起動します。ゾーンは停止し、その後再起動します。ゾーンの再起動時に、ゾーン ID が変更されます。

Solaris 10 8/07: ゾーンのブート引数

ゾーンでは、次のブート引数を zoneadm boot および reboot コマンドに使用できます。

次の定義が適用されます。

-i altinit

最初のプロセスとなる代替実行可能ファイルを選択します。altinit は実行可能ファイルへの有効なパスでなければなりません。デフォルトの最初のプロセスについては、init(1M) のマニュアルページを参照してください。

-m smf_options

SMF のブート動作を制御します。復元オプションとメッセージオプションという、2 種類のオプションがあります。メッセージオプションは、ブート中に表示されるメッセージの種類と数を決定します。サービスオプションは、システムのブートに使用されるサービスを決定します。

復元オプションは次のとおりです。

debug

標準のサービス別出力と、ログに記録されるすべての svc.startd メッセージを出力します。

milestone=milestone

指定されたマイルストンで定義されているサブグラフに起動します。有効なマイルストンは、nonesingle-usermulti-usermulti-user-server、および all です。

メッセージオプションは次のとおりです。

quiet

標準のサービス別出力と、管理者の介入を必要とするエラーメッセージを出力します。

verbose

標準のサービス別出力と、詳細情報を提供するメッセージを出力します。

-s

マイルストン svc:/milestone/single-user:default に対してのみ起動します。このマイルストンは、init のレベル s と同等です。

使用例については、「ゾーンの起動方法」および 「ゾーンをシングルユーザーモードで起動する方法」を参照してください。

Solaris サービス管理機能 (SMF) と init については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」、および svc.startd(1M)init(1M) のマニュアルページを参照してください。

ゾーンの autoboot

ゾーンの構成内で autoboot 資源プロパティーを true に設定すると、大域ゾーンの起動時にそのゾーンが自動的に起動します。デフォルトの設定は false です。

ゾーンを自動的に起動するには、ゾーンサービス svc:/system/zones:default も有効になっている必要があります。

ゾーンのアンインストール

ゾーンのルートファイルシステム内のすべてのファイルをアンインストールする場合に、zoneadm uninstall コマンドを使用します。-F (force) オプションを合わせて指定しない限り、処理を続行する前に、コマンドプロンプトにより実行の確認が求められます。実行した操作を元に戻すことはできないため、uninstall コマンドは慎重に使用してください。

Solaris 10 11/06 以降: 非大域ゾーンの複製について

クローンを使用すると、システムの既存の構成済みおよびインストール済みゾーンをコピーして、新しいゾーンを同一のシステム上に迅速にプロビジョニングできます。少なくとも、複数のゾーンで同一であってはならないコンポーネントに対しては、プロパティーと資源をリセットする必要があります。したがって、zonepath は常に変更する必要があります。さらに、共有 IP ゾーンの場合は、各 net 資源の IP アドレスが異なっている必要があります。排他的 IP ゾーンの場合は、各 net 資源の physical プロパティーが異なっている必要があります。

Solaris 10 5/09: 複製元の zonepath と複製先の zonepath が両方とも ZFS 上にあり、同じプールに含まれる場合、zoneadm clone コマンドは自動的に ZFS を使用してゾーンを複製します。ZFS クローンを使用する場合、データが変更されるまでデータは実際にはコピーされません。したがって、最初の複製にかかる時間はごくわずかです。zoneadm コマンドは、ソース zonepath の ZFS スナップショットを取得して、ターゲット zonepath を設定します。スナップショットには SUNWzoneX という形式の名前が付けられます。この X は、複数のスナップショットを区別するために使用される一意の ID です。ZFS クローンの名前には、複製先ゾーンの zonepath が使用されます。スナップショットがあとで使用されるときにその妥当性をシステムで検証できるように、ソフトウェアインベントリが実行されます。ソースゾーンを何度も複製できるように zoneadm コマンドでは、既存のスナップショットが使用されるように指定できます。既存のスナップショットがターゲットで使用できるかどうかは、システムによって自動的に検証されます。

『Oracle Solaris ZFS 管理ガイド』「ZFS スナップショットを作成および破棄する」で説明されているような手作業によるスナップショットは使用できません。このようなスナップショットには、妥当性検査を実行するためのデータが欠如しています。

ソースゾーンを何度も複製する場合で、複製ごとに新しいスナップショットを作成したくないことがあります。clone サブコマンドの -s パラメータを使用すると、以前の複製で作成した既存のスナップショットを使用するように指定できます。「Solaris 10 5/09: 既存のスナップショットからゾーンを複製する方法」を参照してください。

スナップショットの内容は過去のある時点でのゾーンを表すため、スナップショットの作成以降に、パッチの適用やアップグレードなど何らかの方法でシステムが更新されている可能性があります。ゾーンがアップグレードされていると、スナップショットを現時点のシステムのゾーンとして使用できなくなる可能性があります。


注 –

ZFS クローンを使用してソースを複製できる場合でも、ZFS クローンは行わず ZFS の zonepath をコピーするように指定することができます。


詳細は、「Solaris 10 11/06: 同一システム上での非大域ゾーンの複製」を参照してください。

第 20 章 非大域ゾーンのインストール、起動、停止、アンインストール、および複製 (手順)

この章では、非大域ゾーンのインストールおよび起動方法について説明します。複製を使って同一のシステムにゾーンをインストールする方法についても説明します。また、ゾーンの停止、再起動、アンインストールなど、インストールに関連するほかの作業についても説明します。さらに、システムからゾーンを完全に削除する手順についても説明します。

ゾーンのインストールおよび関連する操作に関する一般的な情報については、第 19 章非大域ゾーンのインストール、停止、複製、およびアンインストールについて (概要)を参照してください。

lx ブランドゾーンのインストールと複製については、第 34 章lx ブランドゾーンのインストール、起動、停止、複製、およびアンインストールについて (概要)および第 35 章lx ブランドゾーンのインストール、起動、停止、アンインストール、および複製 (手順)を参照してください。

ゾーンのインストール (作業マップ)

タスク 

説明 

説明 

(任意) ゾーンをインストールする前に、構成済みのゾーンを検証します。 

ゾーンがインストール要件を満たしていることを確認します。この手順を省略した場合、ゾーンのインストール時に検証が自動的に実行されます。 

「(省略可能) インストール前に構成済みのゾーンを検証する方法」

構成済みのゾーンをインストールします。 

構成済みの状態にあるゾーンをインストールします。 

「構成済みのゾーンをインストールする方法」

Solaris 8/07: ゾーンの汎用一意識別子 (UUID) を取得します。 

ゾーンのインストール時に割り当てられるこの個別の識別子は、ゾーンを識別するための代替手段になります。 

「Solaris 10 8/07: インストールされた非大域ゾーンの UUID を取得する方法」

(任意) インストール済みのゾーンを準備完了状態に移行します。 

ゾーンをすぐに起動して使用する場合、この手順は省略できます。 

「(省略可能) インストール済みのゾーンを準備完了状態に移行する方法」

ゾーンを起動します。 

ゾーンを起動すると、ゾーンが稼働状態になります。ゾーンは、準備完了状態またはインストール済み状態から起動できます。ゾーンをはじめて起動したあとのログインで内部ゾーン構成を実行する必要があります。 

「ゾーンの起動方法」「ゾーンの内部構成」「初期内部ゾーン構成を実行する」

ゾーンをシングルユーザーモードで起動します。 

マイルストン svc:/milestone/single-user:default に対してのみ起動します。このマイルストンは、init のレベル s と同等です。init(1M) および svc.startd(1M) のマニュアルページを参照してください。

「ゾーンをシングルユーザーモードで起動する方法」

ゾーンのインストールと起動

zoneadm(1M) のマニュアルページの記述に従って zoneadm コマンドを使用し、非大域ゾーンのインストール作業を実行します。ゾーンのインストールを実行するには、大域管理者になる必要があります。この章に示す例では、「ゾーンを構成、検証、および確定する」で使用したゾーン名およびゾーンパスを使用します。

Procedure(省略可能) インストール前に構成済みのゾーンを検証する方法

ゾーンをインストールする前に検証できます。この手順を省略した場合、ゾーンのインストール時に検証が自動的に実行されます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. -z オプションをゾーン名および verify サブコマンドとともに使用して、my-zone という名前の構成済みゾーンを検証します。


    global# zoneadm -z my-zone verify
    

    ゾーンパスの検証に関する次のメッセージが表示されます。


    Warning: /export/home/my-zone does not exist, so it cannot be verified.
    When 'zoneadm install' is run, 'install' will try to create
    /export/home1/my-zone, and 'verify' will be tried again,
    but the 'verify' may fail if:
    the parent directory of /export/home/my-zone is group- or other-writable
    or
    /export/home1/my-zone overlaps with any other installed zones.

    ただし、エラーメッセージが表示され、ゾーンの検証に失敗した場合は、メッセージに従って修正を行い、コマンドを再度実行してください。

    エラーメッセージが表示されない場合は、ゾーンをインストールできます。

Procedure構成済みのゾーンをインストールする方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. zoneadm コマンドに -z install オプションを使用して、構成済みのゾーン my-zone をインストールします。


    global# zoneadm -z my-zone install
    

    ゾーンのルートファイルシステムに必要なファイルおよびディレクトリがゾーンのルートパスにインストールされる際、さまざまなメッセージが表示されます。

  3. (省略可能) エラーメッセージが表示され、ゾーンのインストールに失敗した場合は、次のように入力してゾーンの状態を取得します。


    global# zoneadm -z my-zone list -v
    
    • 状態が構成済みであると表示された場合は、メッセージに示された修正を行い、zoneadm install コマンドを再度実行します。

    • 状態が不完全であると表示された場合は、最初に次のコマンドを実行します。


      global# zoneadm -z my-zone uninstall
      

      次にメッセージに示された修正を行い、zoneadm install コマンドを再度実行します。

  4. インストールが完了したら、list サブコマンドに -i オプションおよび -v オプションを指定してインストール済みのゾーンを一覧表示し、状態を確認します。


    global# zoneadm list -iv
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
注意事項

ゾーンのインストールが中断または失敗した場合は、ゾーンの状態は不完全なままになります。uninstall -F を使用して、ゾーンを構成済みの状態にリセットします。

次の手順

デフォルトでは、このゾーンは、『Solaris のシステム管理 (基本編)』の第 19 章「サービスの管理 (手順)」に説明されているオープンなネットワーク構成でインストールされています。ゾーンへのログイン時に、オープンなネットワーク構成に切り替えることも、個別のサービスを有効または無効に設定することもできます。詳細は、「非大域ゾーンの別のネットワークサービス構成への切り替え」を参照してください。

ProcedureSolaris 10 8/07: インストールされた非大域ゾーンの UUID を取得する方法

ゾーンのインストール時に、汎用一意識別子 (UUID) がゾーンに割り当てられます。UUID は、zoneadmlist サブコマンドと -p オプションを使うことで取得できます。UUID は、5 番目に表示されるフィールドです。

  1. インストールされたゾーンの UUID を表示します。


    global# zoneadm list -p
    

    次のような情報が表示されます。


    0:global:running:/:
    6:my-zone:running:/export/home/my-zone:61901255-35cf-40d6-d501-f37dc84eb504

例 20–1 コマンド内で UUID を使用する方法


global# zoneadm -z my-zone -u 61901255-35cf-40d6-d501-f37dc84eb504 list -v

-u uuid-match- z zonename の両方が存在する場合、最初に UUID に基づいてマッチングが行われます。指定した UUID のゾーンが見つかった場合はそのゾーンが使用され、-z パラメータは無視されます。指定した UUID のゾーンが見つからなかった場合、システムはゾーン名で検索を実行します。


UUID について

ゾーンをアンインストールすることも、同名のゾーンを内容を変えて再インストールすることもできます。ゾーンの内容を変更せずにゾーンの名前を変更することも可能です。こうした理由から、UUID はゾーン名よりも信頼性の高いハンドルです。

参照

詳細は、zoneadm(1M) および libuuid(3LIB) を参照してください。

ProcedureSolaris 10 8/07: インストールした非大域ゾーンに不完全のマークを付ける方法

システムに加えられた管理上の変更のためにゾーンが使用不可になるか、矛盾が生じた場合、インストールしたゾーンの状態を不完全に変更できます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ゾーン testzone に不完全のマークを付けます。


    global# zoneadm -z testzone mark incomplete
    
  3. list サブコマンドに -i オプションと - v オプションを使って、状態を確認します。


    global# zoneadm list -iv
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
     -  testzone incomplete   /export/home/testzone          native     shared
ゾーンへの不完全のマーク付け

-R root オプションを、 zoneadmmark サブコマンドや list サブコマンドとともに使用して、代替ブート環境を指定できます。詳細は、zoneadm(1M) のマニュアルページを参照してください。


注 –

ゾーンへの不完全のマーク付けは、取り消すことができません。不完全のマークが付けられたゾーンに実行可能なのは、ゾーンをアンインストールして、構成済みの状態に戻す操作だけです。「ゾーンをアンインストールする方法」を参照してください。


Procedure(省略可能) インストール済みのゾーンを準備完了状態に移行する方法

準備完了状態に移行すると、仮想プラットフォームでユーザープロセスを開始する準備が整います。準備完了状態のゾーンには、内部で実行中のユーザープロセスは存在しません。

ゾーンをすぐに起動して使用する場合、この手順は省略できます。ゾーンの起動時に、準備完了状態への移行が自動的に行われます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. zoneadm コマンドを -z オプション、ゾーン名 (my-zone)、および ready サブコマンドとともに使用することで、そのゾーンを準備完了状態に移行します。


    global# zoneadm -z my-zone ready
    
  3. プロンプトで、zoneadm list コマンドに -v オプションを指定して、状態を確認します。


    global# zoneadm list -v
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     1  my-zone  ready        /export/home/my-zone           native     shared

    システムにより一意のゾーン ID 1 が割り当てられていることに注目してください。

Procedureゾーンの起動方法

ゾーンを起動すると、ゾーンが稼働状態になります。ゾーンは、準備完了状態またはインストール済み状態から起動できます。起動したインストール済み状態のゾーンは、準備完了状態から稼働状態に透過的に移行します。稼働状態のゾーンに対してはゾーンへのログインが可能です。


ヒント –

ゾーンにはじめてログインするときに、内部ゾーン構成を実行します。詳細は、「ゾーンの内部構成」を参照してください。

/etc/sysidcfg ファイルを使用して初期ゾーン構成を行う方法」の記述に従い、/etc/sysidcfg ファイルを使用して初期ゾーン構成を実行する場合は、sysidcfg ファイルを作成してゾーンの /etc ディレクトリに配置してから、ゾーンを起動します。


この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. zoneadm コマンドを -z オプション、ゾーン名 (my-zone)、および boot サブコマンドとともに使用することで、ゾーンを起動します。


    global# zoneadm -z my-zone boot
    
  3. 起動が完了したら、list サブコマンドに -v オプションを指定して状態を確認します。


    global# zoneadm list -v
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     1  my-zone  running      /export/home/my-zone           native     shared

例 20–2 ゾーンのブート引数を指定する

-m verbose オプションを使用してゾーンを起動します。


global# zoneadm -z my-zone boot -- -m verbose

-m verbose ブートオプションを使用してゾーンを再起動します。


global# zoneadm -z my-zone reboot -- -m verbose

ゾーン管理者が -m verbose オプションを使用してゾーン my-zone を再起動します。


my-zone# reboot -- -m verbose

注意事項

ゾーン構成で指定された IP アドレス用のネットマスクをシステムが検出できなかったことを示すメッセージが表示された場合は、「ゾーン起動時に netmasks の警告が表示される」を参照してください。このメッセージは単なる警告であり、コマンドは成功しています。

Procedureゾーンをシングルユーザーモードで起動する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ゾーンをシングルユーザーモードで起動します。


    global# zoneadm -z my-zone boot -s
    

次に進む手順

ゾーンにログインして初期内部構成を実行する方法については、第 21 章非大域ゾーンへのログイン (概要)および第 22 章非大域ゾーンへのログイン (手順)を参照してください。

非大域ゾーンの停止、再起動、アンインストール、複製、および削除 (作業マップ)

タスク 

説明 

説明 

ゾーンを停止します。 

停止手順を実行して、ゾーンのアプリケーション環境と仮想プラットフォームの両方を削除します。この手順により、ゾーンが準備完了状態からインストール済み状態に戻されます。ゾーンの完全な停止処理を行う方法については、zlogin を使用してゾーンを停止処理する方法」を参照してください。

「ゾーンの停止方法」

ゾーンを再起動します。 

再起動の手順を実行すると、ゾーンが停止してから再び起動します。 

「ゾーンを再起動する方法」

ゾーンをアンインストールします。 

ゾーンのルートファイルシステム内のすべてのファイルを削除します。この手順は、十分注意して実行する必要があります。実行した操作を元に戻すことはできません。

「ゾーンをアンインストールする方法」

同一システムの既存ゾーンの構成に基づいて、新しい非大域ゾーンをプロビジョニングします。 

ゾーンの複製は、ゾーンのインストールより高速な代替手段です。ただし、インストールの前にはやはり新規ゾーンを構成してください。 

「Solaris 10 11/06: 同一システム上での非大域ゾーンの複製」

システムから非大域ゾーンを削除します。 

この手順を実行すると、システムからゾーンが完全に削除されます。 

「システムから非大域ゾーンを削除する」

ゾーンの停止、再起動、およびアンインストール

Procedureゾーンの停止方法

ゾーンのアプリケーション環境と仮想プラットフォームの両方を削除する場合に、この停止手順を実行します。ゾーンの完全な停止処理を行う方法については、zlogin を使用してゾーンを停止処理する方法」を参照してください。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. システムで稼働中のゾーンの一覧を表示します。


    global# zoneadm list -v
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     1  my-zone  running      /export/home/my-zone           native     shared
  3. zoneadm コマンドを -z オプション、ゾーン名 (my-zone など)、および halt サブコマンドとともに使用することで、指定されたゾーンを停止します。


    global# zoneadm -z my-zone halt
    
  4. システム内のゾーンの一覧を再度表示して、my-zone が停止していることを確認します。


    global# zoneadm list -iv
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
  5. ゾーンを再び起動する場合は、次のコマンドを実行します。


    global# zoneadm -z my-zone boot
    
注意事項

停止操作が失敗する場合は、「ゾーンが停止しない」 でトラブルシューティングのヒントを参照してください。

Procedureゾーンを再起動する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. システムで稼働中のゾーンの一覧を表示します。


    global# zoneadm list -v
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     1  my-zone  running      /export/home/my-zone           native     shared
  3. zoneadm コマンドを -z reboot オプションとともに使用することで、ゾーン my-zone を再起動します。


    global# zoneadm -z my-zone reboot
    
  4. システム内のゾーンの一覧を再度表示して、my-zone が再起動したことを確認します。


    global# zoneadm list -v
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     2  my-zone  running      /export/home/my-zone           native     shared

    ヒント –

    my-zone のゾーン ID が変更されていることに注目してください。通常、再起動するとゾーン ID は変更されます。


Procedureゾーンをアンインストールする方法


注意 – 注意 –

この手順は、注意深く実行してください。ゾーンのルートファイルシステム内のファイルすべてを削除した後で、操作を元に戻すことはできません。


ゾーンは稼働状態であっていけません。uninstall 操作は、稼働中のゾーンに対しては無効です。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. システム内のゾーンの一覧を表示します。


    global# zoneadm list -v
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
  3. zoneadm コマンドを -z uninstall オプションとともに使用することで、ゾーン my-zone を削除します。

    -F オプションを使用すると、処理を強制的に実行できます。このオプションが指定されていない場合、システムにより確認を求めるメッセージが表示されます。


    global# zoneadm -z my-zone uninstall -F
    
  4. システム内のゾーンの一覧を再度表示して、my-zone が一覧に含まれていないことを確認します。


    global# zoneadm list -v
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
注意事項

ゾーンのアンインストールが中断した場合、ゾーンの状態は不完全なままになります。zoneadm uninstall コマンドを使用して、ゾーンを構成済みの状態にリセットしてください。

実行した操作を元に戻すことはできないため、uninstall コマンドは慎重に使用してください。

Solaris 10 11/06: 同一システム上での非大域ゾーンの複製

複製操作は、複製元の zonepath から複製先の zonepath にデータをコピーすることにより、システム上に新しいゾーンをプロビジョニングするのに使用されます。

Solaris 10 5/09 以降では、複製元の zonepathと複製先の zonepath が両方とも ZFS 上にあり、同じプールに含まれる場合、zoneadm clone コマンドは自動的に ZFS を使用してゾーンを複製します。ただし、ZFS の zonepath のコピーは行い、ZFS の複製は行わないように指定することもできます。

Procedureゾーンを複製する方法

新規ゾーンをインストールする前に、そのゾーンを構成する必要があります。zoneadm create サブコマンドに渡されるパラメータは、複製するゾーンの名前です。この複製元のゾーンを停止する必要があります。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 複製元のゾーン (この手順では my-zone) を停止します。


    global# zoneadm -z my-zone halt
    
  3. 複製元ゾーン my-zone の構成をファイル (たとえば、master ) にエクスポートすることにより、新規ゾーンの構成を開始します。


    global# zonecfg -z my-zone export -f /export/zones/master
    

    注 –

    既存の構成を変更する代わりに、「ゾーンの構成方法」で説明されている手順を使って、新規ゾーン構成を作成することもできます。この方法を使用する場合は、ゾーンを作成したあとで手順 6 に進みます。


  4. master ファイルを編集します。複数のゾーンで同一であってはならないコンポーネントに対して、異なるプロパティーと資源を設定します。たとえば、新しい zonepath を設定する必要があります。共有 IP ゾーンの場合は、各 net 資源の IP アドレスを変更する必要があります。排他的 IP ゾーンの場合は、各 net 資源の physical プロパティーを変更する必要があります。

  5. master ファイル内のコマンドを使って、新規ゾーン zone1 を作成します。


    global# zonecfg -z zone1 -f /export/zones/master
    
  6. my-zone を複製して、新規ゾーン zone1 をインストールします。


    global# zoneadm -z zone1 clone my-zone
    

    システムには次のように表示されます。


    Cloning zonepath /export/home/my-zone...

    Solaris 10 5/09 以降では、複製元の zonepath が ZFS プール上にある場合 (例: zeepool)、システムには次のように表示されます。


    Cloning snapshot zeepool/zones/my-zone@SUNWzone1
    Instead of copying, a ZFS clone has been created for this zone.
  7. システム内のゾーンの一覧を表示します。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
     -  zone1    installed    /export/home/zone1             native     shared
Solaris 10 5/09: ZFS ファイルシステム上にある複製元の zonepath が複製される場合

独自の ZFS ファイルシステム上にある複製元 zonepathzoneadm コマンドで複製すると、次の処理が実行されます。

ProcedureSolaris 10 5/09: 既存のスナップショットからゾーンを複製する方法

最初にゾーンを複製したときに作成された既存のスナップショットから、元のゾーンを何度も複製することができます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ゾーン zone2 を構成します。

  3. 既存のスナップショットを使用して new-zone2 を作成することを指定します。


    global# zoneadm -z zone2 clone -s zeepool/zones/my-zone@SUNWzone1 my-zone
    

    システムには次のように表示されます。


    Cloning snapshot zeepool/zones/my-zone@SUNWzone1

    zoneadm コマンドは、スナップショット SUNWzone1 のソフトウェアを検証し、スナップショットを複製します。

  4. システム内のゾーンの一覧を表示します。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /zeepool/zones/my-zone         native     shared
     -  zone1    installed    /zeepool/zones/zone1           native     shared
     -  zone2    installed    /zeepool/zones/zone2           native     shared

ProcedureSolaris 10 5/09: ZFS クローンの代わりにコピーを使用する方法

ZFS ファイルシステム上のゾーンの自動複製を防止し、代わりに zonepath をコピーするように指定する場合は、ここで説明する手順を使用します。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ZFS クローンは行わず、ZFS 上の zonepath をコピーするように指定します。


    global# zoneadm -z zone1 clone -m copy my-zone
    

システムから非大域ゾーンを削除する

この節では、システムからゾーンを完全に削除する手順を説明します。

Procedure非大域ゾーンを削除する方法

  1. ゾーン my-zone を停止処理します。


    global# zlogin my-zone shutdown -y -g0 -i0
    
  2. my-zone のルートファイルシステムを削除します。


    global# zoneadm -z my-zone uninstall -F
    
  3. my-zone の構成を削除します。


    global# zonecfg -z my-zone delete -F
    
  4. システム内のゾーンの一覧を表示し、my-zone が一覧に含まれていないことを確認します。


    global# zoneadm list -iv
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared

第 21 章 非大域ゾーンへのログイン (概要)

この章では、大域ゾーンからゾーンへのログインについて説明します。

この章の内容は次のとおりです。

手順および使用法については、第 22 章非大域ゾーンへのログイン (手順)を参照してください。

zlogin コマンド

ゾーンのインストール後に、ゾーンにログインしてアプリケーション環境を完成させる必要があります。ゾーンにログインして、管理作業を行うこともできます。-C オプションを使用してゾーンコンソールに接続しない限り、zlogin を使用してゾーンにログインすると、新しいタスクが開始されます。1 つのタスクを 2 つのゾーンで実行することはできません。

zlogin コマンドを使用して、大域ゾーンから稼働状態または準備完了状態にある任意のゾーンにログインします。


注 –

稼働状態にないゾーンへのログインに使用できるのは、zlogin コマンドと -C オプションの組み合わせだけです。


「非対話型モードを使用してゾーンにアクセスする方法」に記述されているとおり、ゾーン内での実行を指示するコマンドを指定することで、zlogin コマンドを非対話型モードで使用できます。ただし、このコマンドおよびこのコマンドの処理対象となるファイルは、いずれも NFS 上に存在していてはなりません。開かれているファイルのいずれか、またはそのアドレス空間のいずれかの部分が NFS 上に存在する場合、コマンドは失敗します。アドレス空間には、コマンドの実行可能ファイル自体またはリンクされたライブラリが含まれます。

大域ゾーンを操作する大域管理者が使用できるのは、zlogin コマンドだけです。詳細は、zlogin(1) のマニュアルページを参照してください。

ゾーンの内部構成

インストール後、ゾーンは未構成の状態です。ゾーンには、ネームサービス用の内部構成は存在せず、 ロケールおよびタイムゾーンは設定されておらず、ほかのさまざまな構成作業も実行されていません。このため、ゾーンコンソールログインの初回使用時に、sysidtool プログラムが実行されます。詳細は、sysidtool(1M) のマニュアルページを参照してください。

次の 2 つの方法で、必要な構成を実行できます。

非大域ゾーンへのログイン方法

ここでは、ゾーンへのログインに使用可能な方法について説明します。

ゾーンコンソールログイン

各ゾーンは、仮想コンソール /dev/console を保持します。コンソール上で操作を実行することを、コンソールモードと呼びます。ゾーンコンソールは、システム上のシリアルコンソールに非常に似ています。コンソールへの接続は、ゾーンを再起動しても持続します。コンソールモードと telnet などのログインセッションとの違いを理解するには、「リモートログイン」を参照してください。

ゾーンコンソールへの接続には、zlogin コマンドと -C オプション、および zonename を使用します。ゾーンを稼働状態にする必要はありません。

ゾーン内部のプロセスが、コンソールを開いてメッセージを書き込むことができます。zlogin -C プロセスが終了すると、別のプロセスがコンソールにアクセスできるようになります。

ユーザーログインの方法

ユーザー名を使ってゾーンにログインする場合は、zlogin コマンドと -l オプション、ユーザー名、および zonename を使用します。たとえば、大域ゾーンの管理者は、zlogin-l オプションを指定することで、通常のユーザーとして非大域ゾーンにログインできます。


global# zlogin -l user zonename

ユーザー root でログインするには、オプションを指定せずに zlogin を使用します。

フェイルセーフモード

ログインで問題が発生し、zlogin コマンドまたは zlogin コマンドと -C オプションを使用してゾーンにアクセスできない場合、代替手段が存在します。zlogin コマンドと -S (safe) オプションを使用することで、ゾーンに入ることができます。このモードは、ほかのログイン方法が成功しなかったときに、損傷を受けたゾーンを復元する場合にのみ使用してください。この最小環境では、ゾーンログインが失敗した理由を診断できる場合があります。

リモートログイン

ゾーンにリモートでログインする機能は、選択したネットワークサービスに依存します。デフォルトでは通常、rloginssh、および telnet を使用してのログインが機能します。これらのコマンドの詳細は、rlogin(1)ssh(1)、および telnet(1) のマニュアルページを参照してください。

対話型モードと非対話型モード

zlogin コマンドを使ってゾーンにアクセスし、ゾーン内でコマンドを実行する方法がさらに 2 つ存在します。その方法が、対話型モードおよび非対話型モードです。

対話型モード

対話型モードでは、ゾーン内部で使用する新しい仮想端末が割り当てられます。コンソールデバイスへの排他的なアクセスが許可されるコンソールモードとは異なり、対話型モードでは、いつでも任意の数の zlogin セッションを開くことができます。対話型モードが有効になるのは、発行するコマンドが含まれていない場合です。エディタなどの端末デバイスを必要とするプログラムは、このモードで正常に動作します。

非対話型モード

非対話型モードは、ゾーンを管理するシェルスクリプトを実行する場合に使用します。非対話型モードでは、新しい仮想端末は割り当てられません。ゾーン内部で実行されるコマンドを指定すると、非対話型モードが有効になります。

第 22 章 非大域ゾーンへのログイン (手順)

この章では、インストール済みのゾーンの構成を完了して大域ゾーンからゾーンにログインし、ゾーンを停止処理する手順について説明します。また、zonename コマンドを使用して現在のゾーン名を出力する方法についても説明します。

ゾーンへのログイン処理の概要については、第 21 章非大域ゾーンへのログイン (概要)を参照してください。

初期ゾーン起動およびゾーンログインの手順 (作業マップ)

タスク 

説明 

説明 

内部構成を実行します。 

ゾーンコンソールにログインするか、/etc/sysidcfg ファイルを使用して初期ゾーン構成を実行します。

「初期内部ゾーン構成を実行する」

ゾーンにログインします。 

ゾーンへのログインには、コンソールを使用する、対話型モードを使って仮想端末を割り当てる、またはゾーン内で実行するコマンドを指定する方法があります。実行するコマンドを指定する場合、仮想端末は割り当てられません。ゾーンへの接続が拒否された場合は、フェイルセーフモードを使用してログインすることもできます。 

「ゾーンへのログイン」

非大域ゾーンから抜けます。 

非大域ゾーンへの接続を切り離します。 

「非大域ゾーンから抜ける方法」

ゾーンを停止処理します。 

shutdown ユーティリティーまたはスクリプトを使用して、ゾーンを停止処理します。

zlogin を使用してゾーンを停止処理する方法」

ゾーン名を出力します。 

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

「現在のゾーンの名前を出力する」

初期内部ゾーン構成を実行する

次のいずれかの方法で、ゾーンを構成する必要があります。


ヒント –

内部構成を実行したあとは、非大域ゾーンの構成のコピーを作成することをお勧めします。このバックアップを使用して、あとでゾーンを復元することができます。スーパーユーザーまたは Primary Administrator として、ゾーン my-zone の構成をファイルに出力してください。次の例では、 my-zone.config というファイルを使用しています。


global# zonecfg -z my-zone export > my-zone.config

詳細は、「非大域ゾーンを個別に復元する方法」を参照してください。


Procedureゾーンコンソールにログインして初期ゾーン構成を行う方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. zlogin コマンドと -C オプション、およびゾーン名 (この手順では my-zone) を使用します。


    global# zlogin -C my-zone
    
  3. 別の端末ウィンドウからゾーンを起動します。


    global# zoneadm -z my-zone boot
    

    次のような内容が、zlogin ウィンドウに表示されます。


    [NOTICE: Zone booting up]
  4. コンソールへの初回ログイン時に、一連の質問に応答するよう求められます。画面には、次のようなメッセージが表示されます。


    SunOS Release 5.10 Version Generic 64-bit
    Copyright 1983-2006 Sun Microsystems, Inc.  All rights reserved.
    Use is subject to license terms.
    
    Hostname: my-zone
    Loading smf(5) service descriptions:
    Select a Language
    
         1. English
         2. es
         2. fr
    Please make a choice (0 - 1), or press h or ? for help:
    
    Select a Locale
    
          1. English (C - 7-bit ASCII)
          2. Canada (English) (UTF-8)
          4. U.S.A. (UTF-8)
          5. U.S.A. (en_US.ISO8859-1)
          6. U.S.A. (en_US.ISO8859-15)
          7. Go Back to Previous Screen
    Please make a choice (0 - 9), or press h or ? for help:
    
    What type of terminal are you using?
          1) ANSI Standard CRT
          2) DEC VT52
          3) DEC VT100
          4) Heathkit 19
          5) Lear Siegler ADM31
          6) PC Console
          7) Sun Command Tool
          8) Sun Workstation
          9) Televideo 910
          10) Televideo 925
          11) Wyse Model 50
          12) X Terminal Emulator (xterms)
          13) CDE Terminal Emulator (dtterm)
          14) Other
    Type the number of your choice and press Return:
    13
    .
    .
    .

    応答する必要のある質問の全一覧については、「ゾーンの内部構成」を参照してください。

  5. (省略可能) 手順 3 で説明した 2 つのウィンドウを使用していない場合、構成情報の指定を求める初期メッセージが表示されない可能性があります。ゾーンへのログイン時に、構成情報の指定を求めるメッセージの代わりに、次のシステムメッセージが表示される場合があります。


    [connected to zone zonename console]

    この場合は、Return キーを押すと構成情報の指定を求めるメッセージが表示されます。

    不正な情報を指定したために構成をやり直す場合、うまく再指定できない場合があります。原因は、sysidtools により以前の指定が保存されていることが考えられます。

    この問題が発生した場合は、大域ゾーンから次の回避手順を実行して構成処理を再実行してください。


    global# zlogin -S zonename /usr/sbin/sys-unconfig
    

    sys-unconfig コマンドの詳細は、sys-unconfig(1m) のマニュアルページを参照してください。

Procedure/etc/sysidcfg ファイルを使用して初期ゾーン構成を行う方法

Solaris 10 8/07: キーワード nfs4_domain が追加されました。例のファイルにはこのキーワードが示されています。次の手順 4 は、これより前のリリースを実行している場合の追加手順です。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーンから、非大域ゾーンの /etc ディレクトリに移動します。


    global# cd /export/home/my-zone/root/etc
    
  3. sysidcfg ファイルを作成して、このディレクトリに配置します。

    ファイルには、次のような情報が記載されています。

    • 共有 IP ゾーンの場合:


      system_locale=C
      terminal=dtterm
      network_interface=primary {
      	        hostname=my-zone
      }
      security_policy=NONE
      name_service=NIS {
      	        domain_name=special.example.com
      	        name_server=bird(192.168.112.3)
      }
      nfs4_domain=domain.com
      timezone=US/Central
      root_password=m4qtoWN
    • 静的 IP 構成を使用する排他的 IP ゾーンの場合:


      system_locale=C
      terminal=dtterm
      network_interface=primary {
               hostname=my-zone
               default_route=10.10.10.1
               ip_address=10.10.10.13
               netmask=255.255.255.0
      }
      nfs4_domain=domain.com
      timezone=US/Central
      root_password=m4qtoWN
    • DHCP と IPv6 オプションを使用する排他的 IP ゾーンの場合:


      system_locale=C
      terminal=dtterm
      network_interface=primary {
      	        dhcp protocol_ipv6=yes
      }
      security_policy=NONE
      name_service=DNS {
               domain_name=example.net
               name_server=192.168.224.11,192.168.224.33
      }
      nfs4_domain=domain.com
      timezone=US/Central
      root_password=m4qtoWN
  4. Solaris 10 8/07 より前のリリースを実行している場合、キーワード nfs4_domainsysidcfg ファイルに含まれていません。デフォルトでは、別個のモジュールが nfsmapid コマンドの使用する NFSv4 ドメインパラメータを要求します。自動初期ゾーン構成を完了するには、default/nfs ファイルを編集して NFSMAPID_DOMAIN パラメータをコメント解除し、ドメインを適切な NFSv4 ドメインに設定します。


    global# vi default/nfs
    		.
    		.
    		.
    		NFSMAPID_DOMAIN=domain
    

    このディレクトリに .NFS4inst_state.domain ファイルを作成して、NFSv4 ドメインが設定済みであることを示します。


    global# touch .NFS4inst_state.domain
    

    NFSv4 ドメインパラメータについては、nfsmapid(1M) のマニュアルページを参照してください。

  5. ゾーンを起動します。

参照

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

ゾーンへのログイン

zlogin コマンドを使用して、大域ゾーンから稼働状態または準備完了状態にある任意のゾーンへログインします。詳細は、zlogin(1) のマニュアルページを参照してください。

次の手順に示すように、ゾーンへのログインはさまざまな方法で実行できます。「リモートログイン」で説明されているように、リモートでログインすることも可能です。

Procedureゾーンコンソールへのログイン方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. zlogin コマンドを -C オプションと my-zone などのゾーン名とともに使用します。


    global# zlogin -C my-zone
    

    注 –

    zoneadm boot コマンドの実行後、すぐに zlogin セッションを開始すると、ゾーンからのブートメッセージが表示されます。


    SunOS Release 5.10 Version Generic 64-bit
    Copyright 1983-2005 Sun Microsystems, Inc. All rights reserved.
    Use is subject to license terms.
    starting rpc services: rpcbind done.
    syslog service starting.
    The system is ready.

  3. ゾーンコンソールが表示されたら、root でログインし、Return キーを押します。プロンプトが表示されたら root のパスワードを入力します。


    my-zone console login: root
    Password:

Procedure対話型モードを使用してゾーンにアクセスする方法

対話型モードでは、ゾーン内部で使用する新しい仮想端末が割り当てられます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーンからゾーン (例: my-zone) にログインします。


    global# zlogin my-zone
    

    次のような情報が表示されます。


    [Connected to zone 'my-zone' pts/2]
    Last login: Wed Jul  3 16:25:00 on console
    Sun Microsystems Inc. SunOS 5.10 Generic June 2004
  3. exit と入力して、接続を閉じます。

    次のようなメッセージが表示されます。


    [Connection to zone 'my-zone' pts/2 closed]

Procedure非対話型モードを使用してゾーンにアクセスする方法

ゾーン内部で実行されるコマンドを指定すると、非対話型モードが有効になります。非対話型モードでは、新しい仮想端末は割り当てられません。

コマンドおよびコマンドの処理対象のファイルは、いずれも NFS 上に存在してはならないことに注意してください。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーンから my-zone ゾーンにログインして、コマンド名を入力します。

    ここではコマンド zonename を使用します。


    global# zlogin my-zone zonename
    

    次の出力が表示されます。


    my-zone

Procedure非大域ゾーンから抜ける方法

  1. 非大域ゾーンへの接続を切り離すには、次のいずれかの方法を使用します。

    • ゾーンの非仮想コンソールを終了するには、次の操作を行います。


      zonename# exit
      
    • ゾーンの仮想コンソールへの接続を切り離すには、次のようにチルダ (~) 文字とピリオドを使用します。


      zonename# ~.
      

      画面には、次のようなメッセージが表示されます。


      [Connection to zone 'lx-zone' pts/6 closed]
参照

zlogin コマンドのオプションの詳細については、zlogin(1) のマニュアルページを参照してください。

Procedureフェイルセーフモードを使用してゾーンに入る方法

ゾーンへの接続が拒否された場合、zlogin コマンドと -S オプションを使用して、ゾーン内の最小環境に入ることができます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーンから、zlogin コマンドと -S オプションを使用してゾーン (例: my-zone) にアクセスします。


    global# zlogin -S my-zone
    

Procedurezlogin を使用してゾーンを停止処理する方法


注 –

大域ゾーンで init 0 を実行して Solaris システムの完全な停止処理を実行すると、システム内のそれぞれの非大域ゾーンでも init 0 が実行されます。init 0 は、ローカルユーザーとリモートユーザーに対してシステムが停止する前にログオフするよう警告しないので、注意してください。


ゾーンを正しく停止処理するには、次の手順を実行します。停止処理スクリプトを実行せずにゾーンを停止する方法については、「ゾーンの停止方法」を参照してください。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 停止処理を行うゾーン (例: my-zone) にログインし、ユーティリティーの名前として shutdown を、状態として init 0 を指定します。


    global# zlogin my-zone shutdown -y -g0 -i 0
    

    サイトによっては、特定の環境に合わせた独自の停止処理スクリプトが存在する場合もあります。

非対話型モードでの shutdown の使用

現時点では、非対話型モードで shutdown コマンドを使って、ゾーンをシングルユーザー状態にすることはできません。詳細は、CR 6214427 を参照してください。

「対話型モードを使用してゾーンにアクセスする方法」の説明に従って、対話型ログインを使用できます。

非大域ゾーンの別のネットワークサービス構成への切り替え

このゾーンは、『Solaris のシステム管理 (基本編)』の第 19 章「サービスの管理 (手順)」に説明されているオープンなネットワーク構成でインストールされています。このゾーンを制限されたネットワーク構成に切り替えることも、ゾーン内の個別のサービスを有効または無効にすることもできます。

Procedureゾーンを制限されたネットワークサービス構成に切り替える方法

  1. 大域ゾーンからゾーン (例: my-zone) にログインします。


    global# zlogin my-zone
    
  2. netservices コマンドを実行して、ゾーンを制限されたネットワーク構成に切り替えます。


    my-zone# /usr/sbin/netservices limited
    

    次のような情報が表示されます。プロンプトに y と入力して、dtlogin を再起動します。


    restarting syslogd
    restarting sendmail
    dtlogin needs to be restarted. Restart now? [Y] y
    restarting dtlogin

Procedureゾーン内で特定のサービスを有効にする方法

  1. 大域ゾーンからゾーン (例: my-zone) にログインします。


    global# zlogin my-zone
    
  2. svcadm コマンドを実行して、資源上限デーモンを使用した物理メモリー制御を有効にします。


    my-zone# svcadm enable svc:/system/rcap:default
    
  3. サービスの一覧を表示して、rcapd が有効になっていることを確認します。


    my-zone# svcs -a
    .
    .
    .
    online    14:04:21 svc:/system/rcap:default
    .
    .
    .
    

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

zonename(1) のマニュアルページに説明されているように、zonename コマンドにより現在のゾーンの名前が出力されます。次に、大域ゾーン内で zonename を使用した場合の出力例を示します。


# zonename
global

第 23 章 非大域ゾーンの移動と移行 (手順)

この章は、Solaris 10 11/06 リリースで新たに追加されました。以降のリリースでは、新しい機能が追加されています。

この章では、次の操作を行う方法について説明します。

Solaris 10 10/08 リリース以降では、ゾーンに依存するパッケージおよび関連パッチが新しいホストに存在する場合、それらのバージョンが移行元と同じまたは移行元より新しいときは、zoneadm attach-u オプションを使用すると、パッケージの最小セットが更新され、その非大域ゾーンを新しいホストで使用できるようになります。新しいホストに移行元ホストよりも高いバージョンと低いバージョンのパッチが混在している場合、接続操作中の更新はできません。

zoneadm attach コマンドと -u オプションを使用すると、sun4u から sun4v への移行など、マシンクラス間の移行も可能です。

Solaris 10 9/10 リリース以降では、zoneadm attach-U オプションを使用すると、ゾーンのすべてのパッケージが、このホストに新しくインストールされた非大域ゾーンで表示される内容と一致するように更新されます。ゾーン内にインストールされ、大域ゾーンにはインストールされていないパッケージがある場合、それらのパッケージは無視され、そのままの状態になります。このオプションを使用すると、sun4u から sun4v への移行など、マシンクラス間の自動移行も可能です。

通常のパッチ適用の代わりに、大域ゾーンにパッチを適用する間は各ゾーンを切り離しておき、適用後に -U オプションを使用して大域ゾーンを再接続することで、大域ゾーンのパッチレベルを一致させることができます。

lx ブランドゾーンの移動と移行については、第 37 章lx ブランドゾーンの移動と移行 (手順)を参照してください。

Solaris 10 11/06: 非大域ゾーンの移動

zonepath を変更してゾーンを同じシステムの新しい場所に移動する場合に、ここで説明する手順を使用します。ゾーンは、停止する必要があります。新規 zonepath がローカルファイルシステムに存在する必要があります。「資源タイプとプロパティータイプ」に説明されている、 zonepath の通常の基準が適用されます。

Procedureゾーンを移動する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 移動するゾーン (この手順では db-zone) を停止します。


    global# zoneadm -z db-zone halt
    
  3. zoneadm コマンドを move サブコマンドとともに使用して、ゾーンを新規の zonepath である /export/zones/db-zone に移動します。


    global# zoneadm -z db-zone move /export/zones/db-zone
    
  4. パスを確認します。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
     -  db-zone  installed    /export/zones/db-zone          native     shared

Solaris 10 11/06: 別のマシンへの非大域ゾーンの移行

Solaris 10 5/08 リリースでは、実際にゾーンを別のマシンに移行する前にゾーンの移行を試験的に実行することができます。詳細は、「Solaris 10 5/08: 移行を行う前のゾーンの移行の検証について」を参照してください。

ゾーンの移行について

Solaris 10 11/06 リリース以降、この節に新しい情報が追加されています。

zonecfg および zoneadm コマンドを使用して、既存の非大域ゾーンをあるシステムから別のシステムに移行できます。ゾーンは停止され、現在のホストから切り離されます。zonepath は移行先のホストに移動され、そこで接続されます。

次の制限が、ゾーンの移行に適用されます。

Solaris リリースとマシンアーキテクチャーを確認するには、次のように入力します。


#uname -m

zoneadm detach プロセスにより、別のシステムでゾーンを接続するのに必要な情報が作成されます。 zoneadm attach プロセスは、移行先のマシンがゾーンのホストとして機能するための適正な構成を保持していることを確認します。

新規ホストで zonepath を使用可能にする方法は複数存在するため、あるシステムから別のシステムへの zonepath の実際の移動は、大域管理者が手動で行います。

新規システムへの接続時に、ゾーンはインストール済みの状態になります。

Procedure非大域ゾーンを移行する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 移行するゾーン (この手順では my-zone) を停止します。


    host1# zoneadm -z my-zone halt
    
  3. ゾーンを切り離します。


    host1# zoneadm -z my-zone detach
    

    切り離されたゾーンは、現在、構成済みの状態にあります。

  4. my-zonezonepath を新規ホストに移動します

    詳細は、zonepath を新規ホストに移動する方法」を参照してください。

  5. 新規ホスト上でゾーンを構成します


    host2# zonecfg -z my-zone
    

    次のシステムメッセージが表示されます


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  6. 新規ホスト上にゾーン my-zone を作成するには、zonecfg コマンドに -a オプションおよび新規ホストの zonepath を指定します。


    zonecfg:my-zone> create -a /export/zones/my-zone
    
  7. (省略可能) 構成を表示します。


    zonecfg:my-zone> info
    zonename: my-zone
    zonepath: /export/zones/my-zone
    autoboot: false
    pool:
    inherit-pkg-dir:
             dir: /lib
    inherit-pkg-dir:
             dir: /platform
    inherit-pkg-dir:
             dir: /sbin
    inherit-pkg-dir:
             dir: /usr
    net:
             address: 192.168.0.90
             physical: bge0
  8. 構成に必要な調整を加えます。

    たとえば、新規ホストではネットワーク物理デバイスが異なる場合があります。また、構成に含まれるデバイスの名前が新規ホストでは異なることもあります。


    zonecfg:my-zone> select net physical=bge0
    zonecfg:my-zone:net> set physical=e1000g0
    zonecfg:my-zone:net> end
    
  9. 構成を確定して終了します。


    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  10. 次のいずれかの方法で、ゾーンを新しいホストに接続します。

    • 妥当性検査を使用して、ゾーンを接続します。


      host2# zoneadm -z my-zone attach
      

      次の条件のいずれかまたは両方に当てはまる場合、実行が必要な操作がシステム管理者に通知されます。

      • 必須パッケージおよびパッチが新規マシンに存在しない。

      • ソフトウェアレベルがマシン間で異なる。

    • Solaris 10 10/08: 妥当性検査を使用してゾーンを接続します。また、より新しいバージョンのゾーン依存パッケージがホストで実行されている場合や、ホストのマシンクラスが異なっている場合は、ホストに一致するように接続時にゾーンを更新します。


      host2# zoneadm -z my-zone attach -u
      

      ヒント –

      Solaris 10 10/08: 移行元システムで古いバージョンの Solaris システムが実行されている場合は、ゾーンを切り離す際に正しいパッケージリストが生成されないことがあります。移行先に正しいパッケージリストが確実に生成されるようにするには、SUNWdetached.xml ファイルを zonepath から削除します。このファイルを削除すると、移行先システムによって新しいパッケージリストが生成されます。

      これは Solaris 10 5/09 以降のリリースでは必要ありません。


    • Solaris 10 9/10: 妥当性検査を使用してゾーンを接続し、ゾーンのすべてのパッケージを、このホストに新しくインストールされた非大域ゾーンで表示される内容と一致するように更新します。ゾーン内にインストールされ、大域ゾーンにはインストールされていないパッケージがある場合、それらのパッケージは無視され、そのままの状態になります。


      host2# zoneadm -z my-zone attach -U
      
    • Solaris 10 5/09 以降: -b オプションを使用して、指定したパッチを接続時にゾーンから除去します。指定できるパッチは、公式パッチまたは IDR パッチです。


      host2# zoneadm -z my-zone attach -u -b IDR246802-01 -b 123456-08
      

      -b オプションは、-u または -U オプションとは独立して使用できます。

    • 妥当性検査を実行せずに、接続操作を強制的に実行します。


      host2# zoneadm -z my-zone attach -F
      

      注意 – 注意 –

      -F オプションを使用すると、妥当性検査を実行せずに attach が強制的に実行されます。これは、クラスタ環境やバックアップ/復元操作など、特定の場合に役立ちますが、システムがゾーンのホストとして動作するよう正しく構成されている必要があります。構成が不正な場合、あとで未定義の動作が実行される可能性があります。


Procedurezonepath を新規ホストに移動する方法

zonepath のアーカイブの作成には、いくつもの方法があります。たとえば、cpio または pax コマンドを使用できます。詳細は、cpio(1) およびpax(1) のマニュアルページを参照してください。

アーカイブを新規ホストに転送する方法も、複数存在します。zonepath を転送元ホストから転送先ホストに転送する機構は、ローカルの構成によって異なります。SAN などのいくつかの場合には、zonepath データを実際には移動できないこともあります。SAN の場合は、zonepath が新規ホストに表示されるように、再構成が実行されるだけです。それ以外の場合は、zonepath をテープに書き込み、それを新規サイトに送付することもあります。

これらの理由のために、この手順は自動化されていません。システム管理者は、zonepath を新規ホストに移動する最適な手法を選択する必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. zonepath を新規ホストに移動します。この手順で説明した方法を使用することも、別の方法を選んで使用することもできます。


例 23–1 tar コマンドを使用した zonepath のアーカイブおよび移動

  1. host1 上で zonepathtar ファイルを作成し、 sftp コマンドを使って host2 に転送します。


    host1# cd /export/zones
    host1# tar cf my-zone.tar my-zone
    host1# sftp host2
    Connecting to host2...
    Password:
    sftp> cd /export/zones
    sftp> put my-zone.tar
    Uploading my-zone.tar to /export/zones/my-zone.tar
    sftp> quit
    
  2. host2 上で tar ファイルを展開します。


    host2# cd /export/zones
    host2# tar xf my-zone.tar
    

詳細は、sftp(1) および tar(1) を参照してください。


注意事項

次の問題を解決する方法については、zoneadm 接続操作の問題解決」を参照してください。

次の手順

SAN を再構成せず、データをコピーした場合、ゾーンが構成済みの状態になっても zonepath のデータはソースホスト上に表示されたままになってます。データを新しいホストに移行し終わったあと手動で zonepath をソースホストから削除するか、ソースホストにゾーンを再接続し、zoneadm uninstall コマンドを使って zonepath を削除することができます。

Solaris 10 5/08: 移行を行う前のゾーンの移行の検証について

「no execute」(実行しない) オプションである -n を使用することで、ゾーンを新しいマシンに移行する前に試行を行うことができます。

-n オプションを指定して zoneadm detach サブコマンドを使用すると、実際にゾーンを切り離さずに実行中のゾーンでマニフェストを生成できます。移行元のシステムのゾーンの状態は変わりません。ゾーンのマニフェストは標準出力に送信されます。大域管理者は、この出力をファイルに送ったり、移行先ホストですぐに検証されるように遠隔コマンドにパイプしたりできます。-n オプションを指定して zoneadm attach サブコマンドを使用すると、このマニフェストを読み取り、実際に接続を行わずに、移行先のマシンがゾーンのホストとして機能するための適正な構成を保持しているかどうかを確認できます。

試行接続を行う前に、新規ホストで移行先システムのゾーンを構成する必要はありません。

ProcedureSolaris 10 5/08: 移行を行う前にゾーンの移行を検証する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 次のいずれかを実行します。

    • my-zone の移行元ホストでマニフェストを生成し、移行先ホストをすぐに検証する遠隔コマンドにその出力をパイプします。


      global# zoneadm -z my-zone detach -n | ssh remotehost zoneadm attach -n -
      

      行の最後にあるハイフン () は、パスとして標準入力を指定します。

      検証内容は、移行元ホストの画面である stdout に出力されます。

    • my-zone の移行元ホストでマニフェストを生成し、その出力をファイルに送ります。


      global# zoneadm -z my-zone detach -n > filename
      

      zonepath を新規ホストに移動する方法」の説明に従って、そのマニフェストを新しいホストシステムにコピーし、検証を行います。


      global# zoneadm attach -n path_to_manifest
      

      パスを にすると標準入力を指定できます。

使用できないマシンからゾーンを移行する

ネイティブ Solaris ゾーンをホストするマシンが使用できなくなる場合があります。しかし、ゾーンが格納されている SAN などのストレージがまだ使用できる場合は、ゾーンを新しいホストに正常に移行できる可能性があります。ゾーンの zonepath を新しいホストに移動できます。SAN などのいくつかの場合には、zonepath データを実際には移動できないこともあります。SAN の場合は、zonepath が新規ホストに表示されるように、再構成が実行されるだけです。ゾーンが適切に切り離されなかったため、初めに zonecfg コマンドを使って新しいホストにゾーンを作成する必要があります。一度これを行なったあと、新しいホストでゾーンを接続してください。新しいホストから、ゾーンが適切に切り離されなかったというメッセージが出ますが、それでもシステムは接続を試行します。

この作業の手順は、「非大域ゾーンを移行する方法」の手順 4 - 8 で説明されています。zonepath を新規ホストに移動する方法」も参照してください。

パッチ適用のソリューションとして、接続時更新を使用する

接続時の更新のプロセスは、ゾーンを別のシステムに移行するために開発されたものですが、ゾーンにパッチを適用する場合にも使用できます。この方法を利用すると、大域ゾーンをより迅速に使用可能な状態にすることができます。その後、システム管理者は、あまり重要でないゾーンを更新して起動する前に、どのゾーンを先に更新して稼働させるかを調整できます。

次のプロセスでは、そのゾーンがシステムに新しくインストールされたゾーンと同じように見えるように、すべてのパッチを更新します。

  1. 大域ゾーンにパッチバンドルを適用する前に、すべての非大域ゾーンを切り離します。

  2. 大域ゾーンにパッチバンドルを適用します。

  3. パッチバンドルが適用され、システムが再起動したら、zoneadm attach コマンドを -U オプションを付けて使用し、非大域ゾーンを大域ゾーンと同じパッチレベルにします。

ゾーン内にインストールされ、大域ゾーンにはインストールされていないパッケージがある場合、それらのパッケージは無視され、影響を受けません。

patchadd ユーティリティーを使用した高速のパッチ適用ソリューションについては、『「Solaris 10 10/09: パッチ適用時間を短縮するためのゾーンの並列パッチ」』 を参照してください。

第 24 章 Solaris 10 9/10: ゾーンへの物理的な Solaris システムの移行 (手順)

既存の Solaris システムを移行先システム上のネイティブゾーンに直接移行するには、P2V (Physical-To-Virtual) 機能を使用します。

移行するシステムの評価

元のシステムで実行されていたサービスによっては、ゾーンのインストール後に大域管理者が手動でゾーンをカスタマイズする必要がある場合があります。たとえば、ゾーンに割り当てられた特権の変更が必要になる場合があります。この操作は自動的に実行されることはありません。また、すべてのシステムサービスがゾーン内で動作するとは限らないため、すべての物理システムがゾーンへの移行に適しているわけではありません。

P2V でインストールするシステムイメージが移行先ホストのオペレーティングシステムリリースよりも新しい場合、インストールは失敗します。

Procedureシステム情報を収集する方法

移行元システムから必要な情報を収集します。

  1. hostname コマンドでホスト名を取得します。


    # hostname
    
  2. hostid コマンドでホスト ID を取得します。


    # hostid
    

    「ホスト ID のエミュレーション」も参照してください。

  3. ルートパスワードを取得します。

  4. システムで実行されているソフトウェアを表示します。


    # ps -eaf
    
  5. システムのネットワーク構成を確認します。


    # ifconfig -a
    
  6. /etc/vfstab の内容を表示するなどして、使用されているストレージを表示します。

  7. 使用中のローカルディスクストレージの容量を表示します。これによってアーカイブのサイズが決まります。


    # df -k
    
  8. システム上に存在するパッケージとパッチを調べます。詳細は、pkginfo(1)のマニュアルページを参照してください。

  9. /etc/system の内容を調べます。

Solaris システムをゾーンに直接移行するために使用するイメージの作成

インストール済みの Solaris システムのイメージを Flash アーカイブツールを使用して作成し、ゾーンに直接移行することができます。

イメージを作成する前に、ゾーンで実行するすべてのソフトウェアを含む完全なシステムを構成できます。その後、このイメージは、ゾーンのインストール時にインストールプログラムによって使用されます。


注意 – 注意 –

ZFS ルートを持つ Solaris 10 システムの Solaris フラッシュアーカイブ (flar) を作成する場合、デフォルトでは、flar は実際には ZFS send ストリームであり、これを使用してルートプールを再作成できます。このイメージは、ゾーンのインストールには使用できません。システムに ZFS ルートがある場合は、明示的な cpio または pax アーカイブによる flar を作成する必要があります。

flarcreate コマンドを -L archiver オプションとともに使用し、ファイルのアーカイブ方法として cpio または pax を指定します。次の手順の 4 を参照してください。


Procedureflarcreate を使用してイメージを作成する方法

flarcreate コマンド (flarcreate(1M) のマニュアルページを参照) を使用してシステムイメージを作成します。この手順例では、ターゲットの Solaris システムにフラッシュアーカイブを配置するために NFS を使用しますが、ほかの方法でファイルを移動することもできます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

  2. アーカイブする移行元システムにログインします。

  3. ディレクトリをルートディレクトリに変更します。


    # cd /
    
  4. 移行元システムで flarcreate を使用して s10-system という名前のフラッシュアーカイブイメージファイルを作成し、そのアーカイブを移行先システムに配置します。


    source-system # flarcreate -S -n s10-system -L cpio /net/target/export/s10-system.flar
    Determining which filesystems will be included in the archive...
    Creating the archive...
    cpio: File size of "etc/mnttab" has
    increased by 435
    2068650 blocks
    1 error(s)
    Archive creation complete.

    移行先のマシンは、/export ファイルシステムに対する root 書き込みアクセス権を必要とします。ホストシステム上のファイルシステムのサイズによっては、アーカイブが数 G バイトのサイズになることがあるため、移行先のファイルシステムには十分な空き容量が必要です。


    ヒント –

    場合によっては、flarcreate の実行時に cpio コマンドからのエラーが表示されることがあります。もっとも多いのは、「File size of etc/mnttab has increased by 435」のようなメッセージです。これらのメッセージがログファイルまたはシステム状態を反映するファイルに関連するものであれば、無視してもかまいません。必ずすべてのエラーメッセージを確認してください。


ほかのアーカイブ作成方法

別の方法を使用してアーカイブを作成することもできます。インストーラは次のアーカイブフォーマットを受け入れることができます。

インストーラは、ファイルのアクセス権、所有権、およびリンクを保存および復元するアーカイブユーティリティーを使用して作成されたファイルのディレクトリのみを受け入れることができます。

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


注 –

フラッシュアーカイブ以外の方法を使用して P2V 用アーカイブを作成する場合は、アーカイブを作成する前に、移行元システム上でプロセッサ依存の libc.so.1 の、lofs でマウントされたハードウェア機能 (hwcap) ライブラリをマウント解除する必要があります。それらをマウント解除しなければ、そのアーカイブを使用してインストールしたゾーンが移行先システムで起動しない可能性があります。アーカイブの作成後に、lofs と mount -O オプションを使用して、/lib/libc.so.1 上に適切なハードウェア機能ライブラリを再マウントできます。


source-system# unmount /lib/libc.so.1
source-system# mount -O -F lofs /lib/libc.so.1 

ホスト ID のエミュレーション

物理的な Solaris システムから新しいシステム上のゾーンにアプリケーションを移行すると、hostid は新しいマシンの hostid に変わります。

場合によっては、アプリケーションが元の hostid に依存しており、アプリケーション構成を更新できないことがあります。このような場合は、元のシステムの hostid を使用するようにゾーンを設定することができます。そのためには、「ゾーンの構成方法」の説明に従って、zonecfg プロパティーを設定して hostid を指定します。値としては、元のシステムで hostid コマンドを実行した場合の出力を使用してください。インストール済みゾーンで hostid を表示する場合も、hostid コマンドを使用します。

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

ゾーンの構成

「ゾーンの構成方法」の手順に従って、移行先システム上の新しいゾーンの構成を作成します。


ヒント –

CD または DVD を使用してアプリケーションを新しいゾーンにインストールする場合は、ブランドゾーンを最初に構成するときに add fs を使用して、大域ゾーンの CD または DVD メディアに読み取り専用のアクセスを行う権限を追加します。アクセス権を追加したら、CD または DVD を使用して製品をブランドゾーンにインストールできます。詳細は、「非大域ゾーンで CD または DVD メディアにアクセスする権限を追加する方法」を参照してください。


ゾーンのインストール

zoneadm コマンド (パート II「ゾーン」および zoneadm(1M) のマニュアルページを参照) は、非大域ゾーンをインストールおよび管理するための主要なツールです。zoneadm を使用する操作は、移行先システムの大域ゾーンから実行する必要があります。

インストールプロセスは、アーカイブからファイルを展開するほかに、ゾーンがホスト上で最適に実行されることを保証するために、検査や必要な後処理などの機能を実行します。

ゾーンで実行されるすべてのソフトウェアを備えた、完全に構成済みの Solaris システムのイメージを使用できます。「Solaris システムをゾーンに直接移行するために使用するイメージの作成」を参照してください。

既存のシステムから Solaris システムアーカイブを作成した場合は、-p (sysidcfg を維持する) オプションを使用してゾーンをインストールすると、イメージの作成に使用されたシステムと同じ ID がゾーンに設定されます。

-u (sys-unconfig) オプションを使用して移行先にゾーンをインストールすると、ホスト名やネームサービスの設定されていないゾーンが作成されます。


注意 – 注意 –

-p オプションか -u オプションのどちらかを指定する必要があります。どちらも指定しない場合、エラーが発生します。


インストーラオプション

オプション 

説明 

-a

システムイメージのコピー元となるアーカイブの場所。完全なフラッシュアーカイブと cpiogzip で圧縮された cpiobzip で圧縮された cpio、およびレベル 0 ufsdump がサポートされています。SUNWsfman パッケージに用意されている gzip のマニュアルページを参照してください。

-d path

システムイメージのコピー元となるディレクトリの場所。 

-d

-d オプションとダッシュ (—) パラメータを使用して、zonepath で既存のディレクトリレイアウトが使用されるように指定します。このため、インストールの前に管理者が手動で zonepath ディレクトリを設定する場合に、-d オプションを使用してそのディレクトリがすでに存在するかどうかを示すことができます。

-p

システム ID を維持します。 

-s

メッセージを表示せずにインストールします。 

-u

ゾーンに対して sys-unconfig を実行します。

-v

詳細情報を出力します。 

-a オプションと -d オプションは相互に排他的です。-p-s-u、および -v の各オプションは、-a または -d が指定されている場合にのみ使用できます。

Procedureゾーンのインストール方法

  1. スーパーユーザーまたは Primary Administrator 役割になります。

  2. zoneadm コマンドに install -a オプションとアーカイブのパスを指定して、構成済みゾーン s-zone をインストールします。


    global# zoneadm -z s-zone install -u -a /net/machine_name/s-system.flar
    

    インストールの完了につれてさまざまなメッセージが表示されます。これにはしばらく時間がかかることがあります。

    インストールが完了したら、list サブコマンドに -i オプションおよび -v オプションを指定してインストール済みのゾーンを一覧表示し、状態を確認します。

注意事項

インストールが失敗した場合は、ログファイルを確認してください。成功した場合、ログファイルはゾーン内の /var/log にあります。失敗した場合、ログファイルは大域ゾーン内の /var/tmp にあります。

ゾーンのインストールが中断または失敗した場合は、ゾーンの状態は不完全なままになります。uninstall -F を使用して、ゾーンを構成済みの状態にリセットします。

ゾーンの起動

Procedureゾーンの起動方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

-u オプションを使用した場合は、さらに、zlogin でゾーンコンソールにログインしてシステム構成を実行する必要があります。この操作については 「初期内部ゾーン構成を実行する」を参照してください。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

  2. zoneadm コマンドを -z オプション、ゾーン名 (s-zone)、および boot サブコマンドとともに使用することで、ゾーンを起動します。


    global# zoneadm -z s-zone boot
    
  3. 起動が完了したら、list サブコマンドに -v オプションを指定して状態を確認します。


    global# zoneadm list -v
    

第 25 章 ゾーンがインストールされている Solaris システムでのパッケージとパッチについて (概要)

Solaris 10 1/06: この章の内容は、全面的に改訂されています。

この章では、ゾーンがインストールされるときに、Solaris オペレーティングシステムを維持する方法について説明します。大域ゾーンおよびインストール済みのすべての非大域ゾーン内で、パッケージやパッチをオペレーティングシステムに追加する際の情報を提供します。パッケージおよびパッチの削除に関する情報も含まれます。この章の内容は、既存の Solaris インストールおよびパッチに関するマニュアルの内容を補うものです。詳細は、Solaris 10 Release and Installation Collection - Japanese および『Solaris のシステム管理 (基本編)』を参照してください。

この章で扱う内容は、次のとおりです。

ゾーンがインストールされているときのパッケージとパッチの操作について追加された説明

Solaris 10 1/06: この章は、非大域ゾーンがインストールされているシステム上でのパッケージコマンドとパッチコマンドの最新の動作を説明するために、Solaris 10 以降に改訂されています。

Solaris 10 6/06: SUNW_PKG_ALLZONESSUNW_PKG_HOLLOW、および SUNW_PKG_THISZONE パッケージパラメータに関する情報が改訂されています。「パッケージツールとパッチツールの概要」および 「パッケージパラメータの情報」を参照してください。

Solaris 10 6/06 以降のリリース: システムを登録する方法または Sun Connection (以前は Sun Update Connection と呼ばれていた) を使用してソフトウェアの更新を管理する方法については、BigAdmin の Sun Connection ハブを参照してください。

Solaris 10 8/07 以降のリリース:

Solaris 10 5/08 以降の更新リリース: PatchPro は終了しました。パッチデータベースとパッチツールを使って、大域ゾーンと非大域ゾーンにインストールされているソフトウェアにパッチを適用してきた PatchPro のサポートが、2007 年 9 月で終了しました。現在のプロセスについては、Sun xVM Ops Center を参照してください。

Solaris 10 5/08: この情報は Solaris 10 5/08 リリースで追加されたものですが、すべての Solaris 10 システムに当てはまります。

使用している Solaris システムを登録するには、https://inventory.sun.com/inventory/ にアクセスしてください。Sun Inventory を使用してハードウェア、ソフトウェア、およびオペレーティングシステムを登録する方法については、Sun Inventory Information Center を参照してください。

Sun xVM Ops Center を使用してデータセンターでシステムをプロビジョニング、更新、および管理する場合は、ソフトウェアを Sun xVM Ops Center に登録する方法を Sun xVM Information Center で参照してください。

Solaris 10 10/09: ゾーンの並列パッチは、標準の Solaris 10 パッチユーティリティーの拡張機能です。Solaris 10 10/09 より前のリリースでは、このパッチは、119254-66 以降のリビジョン (SPARC) および 119255-66 以降のリビジョン (x86) のパッチユーティリティーのパッチで提供されます。『「Solaris 10 10/09: パッチ適用時間を短縮するためのゾーンの並列パッチ」』および『「Solaris 10 10/09: 非大域ゾーンに並列でパッチを適用する方法」』を参照してください。「パッチ適用のソリューションとして、接続時更新を使用する」も参照してください。ゾーンを持つシステムでパッチをすばやく更新するには、この方法をお勧めします。

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

パッケージツールとパッチツールの概要

Solaris パッケージツールは、ゾーン環境の管理に使用されます。大域管理者は、システムを Solaris の新しいバージョンに更新できます。その際、大域ゾーンと非大域ゾーンの両方が更新されます。

大域ゾーンで Solaris Live Upgrade、Solaris 標準の対話型インストールプログラム、またはカスタム JumpStart インストールプログラムを使用して、非大域ゾーンが含まれているシステムをアップグレードできます。zonepath が ZFS 上に設定されているゾーンには、次の制限が適用されます。

詳細は、『Oracle Solaris ZFS 管理ガイド』「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 10/08)」を参照してください。

ゾーン管理者は、このマニュアルに記載されている制限の範囲内でパッケージツールを使用して、非大域ゾーンにインストールされたすべてのソフトウェアを管理できます。

ゾーンがインストールされている場合は、次の一般的な指針が適用されます。


注 –

特定のパッケージおよびパッチ操作が行われている間、ゾーンはこの種のほかの操作から一時的にロックされます。システムはまた、要求された操作について管理者に確認してから処理を続行することがあります。


パッケージとゾーンについて

非大域ゾーンのインストール時に、大域ゾーンにインストールされた Solaris パッケージの一部だけが完全に複製されます。たとえば、非大域ゾーン内では、Solaris カーネルを含む多数のパッケージは必要ありません。すべての非大域ゾーンは、大域ゾーンと同一の Solaris カーネルを暗黙的に共有します。ただし、パッケージのデータが不要であるか、非大域ゾーンでは使用されない場合でも、パッケージが大域ゾーンにインストールされるという情報が非大域ゾーン内で必要になる場合があります。この情報を使用すると、非大域ゾーンをソースとするパッケージの依存関係を大域ゾーンで適切に解決できます。

パッケージが保持するパラメータにより、非大域ゾーンのインストールされたシステムで内容を配布および可視にする方法が制御されます。SUNW_PKG_ALLZONESSUNW_PKG_HOLLOW、および SUNW_PKG_THISZONE パッケージパラメータは、ゾーンがインストールされているシステムでのパッケージの特性を定義します。ゾーン環境内でパッケージを追加または削除する際、システム管理者は、必要に応じてこれらのパッケージパラメータ設定を検査してパッケージの適用範囲を確認できます。pkgparam コマンドを使用して、これらのパラメータの値を表示できます。パラメータの詳細については、「パッケージパラメータの情報」を参照してください。使用方法については、「ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査」を参照してください。

パッケージの特性およびパラメータの詳細は、pkginfo(4) のマニュアルページを参照してください。パッケージのパラメータ値の表示については、pkgparam(1) のマニュアルページを参照してください。

パッケージ用に生成されるパッチ

パッケージ用にパッチを生成するときは、パラメータを元のパッケージと同じ値に設定する必要があります。

対話型パッケージ

対話型であることが必要とされるパッケージ、つまり要求スクリプトを含むパッケージは、現在のゾーンだけに追加されます。パッケージはほかのゾーンには伝達されません。大域ゾーンに対話型パッケージを追加すると、そのパッケージは、pkgadd コマンドに -G オプションを指定して追加する場合と同様に処理されます。このオプションの詳細については、「ゾーン内でのパッケージの追加について」を参照してください。

ゾーンの同期を維持する

非大域ゾーンにインストールされたソフトウェアと、大域ゾーンにインストールされたソフトウェアとの同期を最大限維持するのが最善です。これにより、複数のゾーンがインストールされたシステムで、管理の問題が発生するのを最小限に抑えることができます。

この目標を達成するために、大域ゾーン内でパッケージを追加または削除する際、次の規則がパッケージツールにより適用されます。

大域ゾーン内で実行可能なパッケージ操作

現在、パッケージが大域ゾーンにも、どの非大域ゾーンにもインストールされていない場合、パッケージは次の場所にインストールできます。

現在、パッケージが大域ゾーンだけにインストールされている場合:

現在、パッケージが大域ゾーンおよび非大域ゾーンの一部だけにインストールされている場合:

現在、パッケージが大域ゾーンおよびすべての非大域ゾーンにインストールされている場合、そのパッケージを大域ゾーンおよびすべての非大域ゾーンから削除できます。

これらの規則により、次のことが保証されます。

非大域ゾーン内で実行可能なパッケージ操作

すべての非大域ゾーン内で実行可能なパッケージ操作を次に示します。

ゾーン状態がパッチとパッケージの操作に与える影響

さまざまな状態の非大域ゾーンが存在しているシステムで、pkgaddpkgrmpatchadd、および patchrm の各コマンドを使用するとどうなるかを、次の表に示します。

Solaris 10 5/08 リリースでは、この表のインストール済み状態の説明にいくつかの修正が加えられました。

ゾーンの状態 

パッケージとパッチの操作に与える影響 

構成済み 

パッチツールとパッケージツールを実行できます。ソフトウェアはまだインストールされていません。 

インストール済み 

パッチツールとパッケージツールを実行できます。パッチとパッケージの操作中、システムはゾーンをインストール済み状態から「マウント済み」と呼ばれる新しい内部状態に移行します。パッチの適用が完了したあとで、ゾーンはインストール済み状態に戻されます。 

zoneadm -z zonename install が完了した直後にも、ゾーンはインストール済み状態に移行されます。今までに起動したことのないインストール済み状態のゾーンは、パッチを適用することも、パッケージコマンドを実行することもできません。少なくとも 1 度はゾーンを起動して稼働状態にする必要があります。ゾーンを少なくとも一度起動して、その後 zoneadm halt によってインストール済み状態に戻したあとは、パッチおよびパッケージのコマンドを実行できます。

準備完了 

パッチツールとパッケージツールを実行できます。 

稼働 

パッチツールとパッケージツールを実行できます。 

不完全 

zoneadm によってインストール中または削除中のゾーンです。パッチツールとパッケージツールは使用できません。ツールでは、ツールを使用できる適切な状態にゾーンを移行させることはできません。

ゾーン内でのパッケージの追加について

pkgadd(1M) のマニュアルページに記載されているように、pkgadd システムユーティリティーを使用して、ゾーンがインストールされている Solaris システムでパッケージを追加できます。

大域ゾーン内での pkgadd の使用

大域ゾーンで -G オプションを指定して pkgadd ユーティリティーを使用すると、大域ゾーンだけにパッケージを追加できます。パッケージはほかのゾーンには伝達されません。SUNW_PKG_THISZONE=true の場合、-G オプションは不要です。SUNW_PKG_THISZONE=false の場合、-G オプションが優先されます。

大域ゾーン内で pkgadd ユーティリティーを実行する場合、次の操作が適用されます。

パッケージを大域ゾーンとすべての非大域ゾーンに追加する

パッケージを大域ゾーンおよびすべての非大域ゾーンに追加するには、大域ゾーンで pkgadd ユーティリティーを実行します。大域管理者として、-G オプションを指定せずに pkgadd を実行します。

パッケージを大域ゾーンおよびすべての非大域ゾーンに追加する際、パッケージの影響を受ける領域について意識する必要はありません。

pkgadd ユーティリティーにより、次の手順が実行されます。

パッケージを大域ゾーンだけに追加する

パッケージを大域ゾーンだけに追加するには、大域ゾーンの大域管理者になり、-G オプションだけを指定して pkgadd ユーティリティーを実行します。

次の条件を両方満たす場合に、パッケージを大域ゾーンに追加できます。

pkgadd ユーティリティーにより、次の手順が実行されます。

大域ゾーンにインストールされているパッケージをすべての非大域ゾーンに追加する

大域ゾーンにすでにインストールされているパッケージをすべての非大域ゾーンに追加するには、大域ゾーンからそのパッケージを削除し、すべてのゾーンに再インストールする必要があります。

次の手順で、大域ゾーンにすでにインストールされているパッケージをすべての非大域ゾーンに追加します。

  1. 大域ゾーンで、pkgrm を使ってパッケージを削除します。

  2. -G オプションを指定せずにパッケージを追加します。

非大域ゾーン内での pkgadd の使用

指定された非大域ゾーン内でパッケージを追加するには、ゾーン管理者として、オプションを指定せずに pkgadd ユーティリティーを実行します。次のすべての条件が適用されます。

pkgadd ユーティリティーにより、次の手順が実行されます。

ゾーン内でのパッケージの削除について

pkgrm ユーティリティー (pkgrm(1M) のマニュアルページを参照) は、ゾーンがインストールされている Solaris システムでのパッケージの削除をサポートします。

大域ゾーン内での pkgrm の使用

大域ゾーンで pkgrm ユーティリティーを使用する場合、次の操作が適用されます。

次の条件が満たされる場合、ゾーン管理者は、管理する非大域ゾーンを対象としてパッケージの削除だけを実行できます。

パッケージを大域ゾーンとすべての非大域ゾーンから削除する

パッケージを大域ゾーンおよび非大域ゾーンから削除するには、大域管理者として大域ゾーン内で pkgrm ユーティリティーを実行します。

パッケージを大域ゾーンおよび非大域ゾーンから削除する際、パッケージの影響を受ける領域について意識する必要はありません。

pkgrm ユーティリティーにより、次の手順が実行されます。

非大域ゾーン内での pkgrm の使用

ゾーン管理者として、非大域ゾーン内で pkgrm ユーティリティーを使用してパッケージを削除します。次の制限が適用されます。

pkgrm ユーティリティーにより、次の手順が実行されます。

パッケージパラメータの情報

ゾーンのパッケージパラメータの設定

SUNW_PKG_ALLZONESSUNW_PKG_HOLLOW、および SUNW_PKG_THISZONE パッケージパラメータは、ゾーンがインストールされているシステムでのパッケージの特性を定義します。非大域ゾーンがインストールされたシステムでパッケージを管理できるようにするには、これらのパラメータを設定する必要があります。

次の表に、パッケージパラメータの設定に使用できる 4 つの有効な組み合わせを示します。次の表に示されていない設定の組み合わせは無効であり、そのような設定を選択するとパッケージのインストールは失敗します。

3 つのパッケージパラメータをすべて設定したことを確認してください。3 つのパッケージパラメータをすべて空のままにしてもかまいません。ゾーンのパッケージパラメータが見つからない場合、パッケージツールではその設定は false として解釈されますが、パラメータの設定は省略しないように強くお勧めします。3 つのパッケージパラメータをすべて設定することにより、パッケージをインストールまたは削除するときのパッケージツールの動作を正確に指定します。

表 25–1 有効なパッケージパラメータ設定

SUNW_PKG_ALLZONES の設定

SUNW_PKG_HOLLOW の設定

SUNW_PKG_THISZONE の設定

パッケージの説明 

false 

false 

false 

これは、ゾーンのパッケージパラメータのすべてに値を指定しないパッケージに対するデフォルト設定です。 

この設定を持つパッケージは、大域ゾーンまたは非大域ゾーンにインストールできます。  

  • 大域ゾーン内で pkgadd コマンドを実行すると、パッケージは大域ゾーンおよびすべての非大域ゾーンにインストールされます。

  • 非大域ゾーン内で pkgadd コマンドを実行すると、パッケージはその非大域ゾーンだけにインストールされます。

どちらの場合も、パッケージがインストールされたすべてのゾーンで、パッケージの内容全体が可視になります。 

false 

false 

true 

この設定を持つパッケージは、大域ゾーンまたは非大域ゾーンにインストールできます。インストール後に新しい非大域ゾーンを作成した場合、パッケージはこれらの新しい非大域ゾーンには伝達されません。 

  • 大域ゾーン内で pkgadd コマンドを実行すると、パッケージは大域ゾーンだけにインストールされます。

  • 非大域ゾーン内で pkgadd コマンドを実行すると、パッケージはその非大域ゾーンだけにインストールされます。

どちらの場合も、パッケージがインストールされたゾーンで、パッケージの内容全体が可視になります。 

true 

false 

false 

この設定を持つパッケージは、大域ゾーンだけにインストールできます。pkgadd コマンドを実行すると、パッケージは大域ゾーンおよびすべての非大域ゾーンにインストールされます。すべてのゾーンで、パッケージの内容全体が可視になります。


注 –

パッケージを非大域ゾーンにインストールしようとすると失敗します。


true 

true 

false 

この設定を持つパッケージは、大域管理者が大域ゾーンだけにインストールできます。pkgadd コマンドを実行すると、パッケージの内容が大域ゾーンに完全にインストールされます。パッケージパラメータの値がこのように設定されている場合、パッケージの内容自体はどの非大域ゾーンにも提供されません。パッケージをインストール済みとして表示するために必要なパッケージインストール情報だけが、すべての非大域ゾーンにインストールされます。これにより、このパッケージに依存するほかのパッケージをインストールできるようになります。

パッケージの依存関係を検査できるように、パッケージはすべてのゾーンでインストール済みとして表示されます。 

  • 大域ゾーンでは、パッケージの内容全体が可視になります。

  • 完全ルート非大域ゾーンでは、パッケージの内容全体が不可視になります。

  • 非大域ゾーンが大域ゾーンからファイルシステムを継承する場合、このファイルシステムにインストールされているパッケージは非大域ゾーンで可視になります。パッケージで提供されるほかのすべてのファイルは、非大域ゾーン内では不可視になります。

    たとえば、疎ルート非大域ゾーンは、特定のディレクトリを大域ゾーンと共有します。これらのディレクトリは読み取り専用です。疎ルート非大域ゾーンは、/platform ファイルシステムをほかのゾーンと共有します。もう 1 つの例は、起動するハードウェアだけに関連するファイルがパッケージで提供されている場合です。


注 –

パッケージを非大域ゾーンにインストールしようとすると失敗します。


SUNW_PKG_ALLZONES パッケージパラメータ

オプションの SUNW_PKG_ALLZONES パッケージパラメータには、パッケージのゾーン範囲が記述されます。このパラメータにより、次のことが定義されます。

SUNW_PKG_ALLZONES パッケージパラメータに指定可能な値は 2 つあります。その値は、true および false です。デフォルト値は false です。このパラメータが設定されていない場合か、または true および false 以外の値に設定されている場合には、値 false が使用されます。

すべてのゾーンでパッケージのバージョンとパッチの改訂レベルが同一で「なければならない」パッケージでは、SUNW_PKG_ALLZONES パラメータを true に設定することをお勧めします。たとえば Solaris 10 など、特定の Solaris カーネルに依存した機能を提供するすべてのパッケージでも、このパラメータを true に設定することをお勧めします。パッケージに適用するパッチの SUNW_PKG_ALLZONES パラメータは、インストール済みパッケージに設定されている値と同じ値に設定する必要があります。このパラメータを true に設定しているパッケージのパッチ改訂レベルは、すべてのゾーンで一致していなければなりません。

他社製パッケージや Sun コンパイラなど、特定の Solaris カーネルに依存しない機能を提供するパッケージでは、このパラメータを false に設定することをお勧めします。このパラメータを false に設定しているパッケージの場合は、そのパッチのパラメータも false に設定する必要があります。このパラメータを false に設定しているパッケージの場合は、各ゾーンのパッケージバージョンまたはパッチ改訂レベルが異なっていてもかまいません。たとえば、2 つの非大域ゾーンにインストールされている Web サーバーのバージョンは、一致していなくてもかまいません。

SUNW_PKG_ALLZONES パッケージパラメータの値については、次の表で説明します。

表 25–2 SUNW_PKG_ALLZONES パッケージパラメータの値

値 

説明 

false

このパッケージは、大域ゾーンから大域ゾーンだけ、または大域ゾーンから大域ゾーンおよびすべての非大域ゾーンにインストールできます。また、任意の非大域ゾーンから同じ非大域ゾーンにもインストールできます。 

  • 大域管理者は、パッケージを大域ゾーンだけにインストールできます。

  • 大域管理者は、パッケージを大域ゾーンおよびすべての非大域ゾーンにインストールできます。

  • ゾーン管理者は、パッケージを非大域ゾーンにインストールできます。

パッケージを大域ゾーンから削除しても、ほかのゾーンからそのパッケージは削除されません。パッケージは非大域ゾーンごとに削除できます。 

  • パッケージを大域ゾーンにインストールする必要はありません。

  • パッケージをいずれかの非大域ゾーンにインストールする必要はありません。

  • パッケージはすべてのゾーンで同一である必要はありません。ゾーンごとにパッケージのバージョンが異なっていてもかまいません。

  • パッケージは、すべてのゾーンで暗黙的に共有されていないソフトウェアを提供します。これは、パッケージがオペレーティングシステムに固有ではないことを意味します。アプリケーションレベルのソフトウェアの大半がこのカテゴリに属します。たとえば、StarSuite 製品や Web サーバーがこれに該当します。

true

パッケージを大域ゾーンにインストールする場合、すべての非大域ゾーンにもインストールする必要があります。パッケージを大域ゾーンから削除する場合、すべての非大域ゾーンからも削除する必要があります。 

  • パッケージをインストールする場合、大域ゾーンにインストールする必要があります。その後、パッケージはすべての非大域ゾーンに自動的にインストールされます。

  • パッケージのバージョンは、すべてのゾーンで一致している必要があります。

  • パッケージは、すべてのゾーンで暗黙的に共有されているソフトウェアを提供します。パッケージは、すべてのゾーンで暗黙的に共有されるソフトウェアのバージョンに依存します。パッケージは、すべての非大域ゾーンで可視である必要があります。これには、カーネルモジュールも含まれます。

    パッケージ全体をすべての非大域ゾーンにインストールすることを要求することで、これらのパッケージを使用して、大域ゾーンにインストールされるパッケージの依存関係を非大域ゾーンから解決できます。

  • 大域管理者だけがパッケージをインストールできます。ゾーン管理者が非大域ゾーンにパッケージをインストールすることはできません。

SUNW_PKG_HOLLOW パッケージパラメータ

SUNW_PKG_HOLLOW パッケージパラメータは、パッケージがすべてのゾーンにインストールされ、かつすべてのゾーンで同一であることが求められる場合、そのパッケージをすべての非大域ゾーン内で可視にするべきかどうかを定義します。

SUNW_PKG_HOLLOW パッケージパラメータは、2 つの値 truefalse のいずれかを取ります。

SUNW_PKG_HOLLOW パッケージパラメータ値については、次の表で説明します。

表 25–3 SUNW_PKG_HOLLOW パッケージパラメータ値

値 

説明 

false

これは「hollow」パッケージではありません。 

  • 大域ゾーンにインストールする場合、すべての非大域ゾーンでパッケージ内容およびインストール情報が要求されます。

  • このパッケージの提供するソフトウェアは、すべての非大域ゾーンで可視でなければなりません。たとえば、truss コマンドを提供するパッケージがこれに該当します。

  • 現在の SUNW_PKG_ALLZONES パッケージパラメータ設定に適用される制限を除き、追加の制限は定義されません。

true

これは「hollow」パッケージです。 

  • パッケージの内容はどの非大域ゾーンにも提供されません。ただし、すべての非大域ゾーンでパッケージのインストール情報が求められます。

  • このパッケージの提供するソフトウェアは、すべての非大域ゾーンで可視であってはいけません。たとえば、大域ゾーンでのみ機能するカーネルドライバやシステム構成ファイルがこれに該当します。この設定により、実際にパッケージデータをインストールしなくても、非大域ゾーンが、大域ゾーンにのみインストールされるパッケージの依存関係を解決することが可能になります。

  • インストール中のパッケージに依存するほかのパッケージにより、このパッケージが依存関係の検査目的ですべてのゾーンにインストールされたと認識されます。

  • このパッケージ設定には、SUNW_PKG_ALLZONEStrue に設定するために定義されたすべての制限が含まれます。

  • 大域ゾーン内で、パッケージはインストール済みとして認識され、パッケージのすべての構成要素がインストールされます。パッケージのインストール時に、ディレクトリの作成、ファイルのインストール、およびクラス操作とほかのスクリプトが、必要に応じて実行されます。

  • 非大域ゾーン内で、パッケージはインストール済みとして認識されますが、パッケージの構成要素は 1 つもインストールされません。パッケージのインストール時に、ディレクトリの作成、ファイルのインストール、およびクラス操作やほかのインストールスクリプトは実行されません。

  • パッケージが大域ゾーンから削除される場合、パッケージは完全にインストールされていたと認識されます。パッケージの削除時に、該当するディレクトリおよびファイルが削除され、クラス操作またはほかのインストールスクリプトが実行されます。

SUNW_PKG_THISZONE パッケージパラメータ

SUNW_PKG_THISZONE パッケージパラメータは、パッケージを現在のゾーン (大域ゾーン、非大域ゾーンのいずれか) だけにインストールする必要があるかどうかを定義します。SUNW_PKG_THISZONE パッケージパラメータに設定可能な値は 2 つあります。その値は、true および false です。デフォルト値は false です。

SUNW_PKG_THISZONE パッケージパラメータの値については、次の表で説明します。

表 25–4 SUNW_PKG_THISZONE パッケージパラメータの値

値 

説明 

false

  • 非大域ゾーン内で pkgadd を実行する場合、パッケージは現在のゾーンだけにインストールされます。

  • 大域ゾーン内で pkgadd を実行する場合、パッケージは大域ゾーンにインストールされるだけでなく、現在インストールされているすべての非大域ゾーンにもインストールされます。さらに、将来新しくインストールされるすべての非大域ゾーンにも、そのパッケージが伝達されます。

true

  • パッケージは現在のゾーンだけにインストールされます。

  • 大域ゾーン内でパッケージをインストールする場合、そのパッケージは現存の非大域ゾーンや将来作成される非大域ゾーンには一切追加されません。これは、pkgadd-G オプションを指定した場合の動作と同じです。

パッケージ情報の照会

pkginfo ユーティリティー (pkginfo(1) のマニュアルページを参照) は、ゾーンがインストールされている Solaris システムでのソフトウェアパッケージデータベースの照会をサポートします。データベースの詳細は、「製品データベース」を参照してください。

大域ゾーンで、pkginfo ユーティリティーを使用すると、大域ゾーン内だけでソフトウェアパッケージデータベースを照会できます。非大域ゾーンで pkginfo ユーティリティーを使用すると、非大域ゾーン内だけでソフトウェアパッケージデータベースを照会できます。

ゾーン内でのパッチの追加について

通常、パッチは次の構成要素で構成されます。

patchadd コマンドを使用してパッチを適用する場合、稼働中のシステムにパッチを適用可能かどうかの判別にパッチ情報が使用されます。適用不可と判別された場合、パッチは適用されません。パッチの依存関係も、システムのすべてのゾーンに対して検査されます。必須の依存関係のいずれかが満たされない場合、パッチは適用されません。これには、以降のバージョンのパッチがインストール済みである場合も含まれます。

パッチに含まれる各パッケージも検査されます。パッケージがどのゾーンにもインストールされない場合、そのパッケージは省略され、パッチは適用されません。

すべての依存関係が満たされる場合、いずれかのゾーンにインストールされるパッチ内のパッケージすべてが、システムへのパッチ適用に使用されます。パッケージおよびパッチデータベースの更新も行われます。


注 –

Solaris 10 3/05 から Solaris 10 11/06: pkgadd -G を使ってインストールされたパッケージや pkginfo 設定が SUNW_PKG_THISZONE=true になっているパッケージにパッチを当てる「唯一の」方法は、patchadd -G を実行する方法です。この制限は Solaris 8/07 リリースで削除されています。


Solaris 10 8/07: 遅延起動パッチ

パッチ 119254-41 および 119255-41 以降、patchaddpatchrm のパッチインストールユーティリティーが変更され、機能を提供する特定のパッチの処理方法が変わりました。この変更は、これらのパッチをどの Solaris 10 リリースにインストールする場合にも影響を与えます。これらの遅延起動パッチによって、Solaris 10 3/05 リリース以降の各 Solaris 10 リリースに関連するカーネルパッチなどの機能パッチで提供される、大規模な変更の処理能力が向上します。

遅延起動パッチは、実行中のシステムの安定性を保証するためにループバックファイルシステム (lofs) を使用します。パッチが実行中のシステムに適用されると、lofs はパッチプロセス中の安定性を保持します。これらの大規模なカーネルパッチは必ずリブートを必要としますが、この必須リブートで lofs による変更がアクティブ化されるようになりました。パッチの README には、どのパッチでリブートが必要になるかが説明されています。

非大域ゾーンを実行しているか、lofs を無効にしている場合は、遅延起動パッチをインストールまたは削除する際に次の点を考慮してください。


注 –

Solaris Live Upgrade を使用してパッチの管理を行うと、実行中のシステムへのパッチに関連する問題を防ぐことができます。Solaris Live Upgrade は、パッチの適用に伴う停止時間を短縮し、問題発生時のフォールバック機能を提供してリスクを低減します。システムがまだ本稼働していても、アクティブでない起動環境 (BE) にパッチを適用したり、新しい BE で問題が発見された場合、元の BE に戻って起動することができます。『Oracle Solaris 10 9/10 インストールガイド (Solaris Live Upgrade とアップグレードの計画)』「パッケージまたはパッチによるシステムのアップグレード」を参照してください。


Solaris 10 10/09: パッチ適用時間を短縮するためのゾーンの並列パッチ

ゾーンの並列パッチは、標準の Solaris 10 パッチユーティリティーの拡張機能です。これは、Solaris 10 システム上の非大域ゾーンにパッチを適用するための方法であり、サポート対象に含まれます。この機能を使用すると、並列で非大域ゾーンへパッチを適用することにより、パッチ適用のパフォーマンスを高めます。

Solaris 10 10/09 より前のリリースでは、この機能は、119254-66 以降のリビジョン (SPARC) および 119255-66 以降のリビジョン (x86) のパッチユーティリティーのパッチで提供されます。

並列でパッチを適用する非大域ゾーンの最大数は patchadd, /etc/patch/pdo.conf の新しい構成ファイルに設定できます。このパッチのリビジョン 66 以降は、すべての Solaris 10 システムおよび Sun xVM Ops Center など高いレベルのパッチ自動化ツールで機能します。

ただし、最初にパッチを適用する必要があるのは大域ゾーンです。大域ゾーンへのパッチの適用が終了した時点で、num_proc= に設定されている数の非大域ゾーンに対して一緒にパッチの適用が行われます。最大数は、オンライン CPU の数の 1.5 倍であり、システム上の実際の非大域ゾーンの数まで設定できます。

次の例を参考にしてください。

システム上にこの数を超える非大域ゾーンがある場合は、最初の 6 つに並列でパッチを適用し、その後、最初のグループへのパッチの適用プロセスが終了すると、残りの非大域ゾーンにパッチが適用されます。

Solaris Live Upgrade とパッチを管理するこの新しいパッチを使用すれば、問題が発生した場合にフォールバック機能が使用できます。システムがまだ本稼働していても、アクティブでない起動環境 (BE) にパッチを適用したり、新しい BE で問題が発見された場合、元の BE に戻って起動することができます。

「Solaris 10 10/09: 非大域ゾーンに並列でパッチを適用する方法」』も参照してください。


注 –

ホストに新しくインストールされた非大域ゾーンで表示される内容と一致するように、ゾーンのすべてのパッケージをすばやく更新するには、大域ゾーンにパッチを適用する間は各ゾーンを切り離しておき、適用後に -U オプションを使用して再接続して、大域ゾーンのレベルと一致させます。詳細は、「パッチ適用のソリューションとして、接続時更新を使用する」を参照してください。


ゾーンがインストールされている Solaris システムでのパッチの適用

大域ゾーンで適用されるすべてのパッチが、すべてのゾーンで適用されます。非大域ゾーンをインストールする際も、大域ゾーンと同じパッチレベルでパッチが適用されます。大域ゾーンにパッチを適用する際、すべての非大域ゾーンで同様にパッチが適用されます。この処理により、すべてのゾーンにわたって同じパッチレベルが維持されます。

patchadd(1M) のマニュアルページに記載されているように、patchadd システムユーティリティーを使用して、ゾーンがインストールされているシステムにパッチを追加できます。

大域ゾーンでの patchadd の使用

パッチを大域ゾーンおよびすべての非大域ゾーンに追加するには、大域ゾーン内で大域管理者として patchadd を実行します。

大域ゾーンで patchadd を使用する場合、次の条件が両方適用されます。

パッチを大域ゾーンおよびすべての非大域ゾーンに追加する際、大域ゾーンから共有される領域にパッチが影響を及ぼすかどうかを意識する必要はありません。

patchadd ユーティリティーにより、次の手順が実行されます。

非大域ゾーン内での patchadd の使用

ゾーン管理者が非大域ゾーン内で patchadd を使用する場合、そのゾーンにパッチを追加する用途だけにコマンドを使用できます。次の場合に、パッチを非大域ゾーンに追加できます。

patchadd ユーティリティーにより、次の手順が実行されます。

ゾーンが含まれているシステムでの patchadd -Gpkginfo 変数の相互作用

次に、大域ゾーンおよび非大域ゾーンにパッチを追加する際の -G オプションと SUNW_PKG_ALLZONES 変数の相互作用について説明します。

大域ゾーン、-G 指定あり

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがある場合、この使用法の結果はエラーとなり、処理は行われません。

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがない場合は、大域ゾーンのパッケージだけにパッチが適用されます。

大域ゾーン、-G 指定なし

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがある場合は、すべてのゾーンにあるそれらのパッケージにパッチが適用されます。

SUNW_PKG_ALLZONES=TRUE に設定されていないパッケージがある場合は、該当するすべてのゾーンにあるそれらのパッケージにパッチが適用されます。「大域ゾーンのみ」のパッケージは、大域ゾーンだけにインストールされます。

非大域ゾーン、-G 指定ありまたは指定なし

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがある場合、この使用法の結果はエラーとなり、処理は行われません。

SUNW_PKG_ALLZONES=TRUE に設定されているパッケージがない場合は、非大域ゾーンのパッケージだけにパッチが適用されます。

ゾーンがインストールされている Solaris システムでのパッチの削除

patchrm システムユーティリティー (patchrm(1M) のマニュアルページを参照) を使用して、ゾーンがインストールされているシステムでパッチを削除します。

大域ゾーン内での patchrm の使用

大域ゾーン管理者として大域ゾーン内で patchrm ユーティリティーを使用して、パッチを削除できます。patchrm ユーティリティーは、大域ゾーンのみ、または非大域ゾーンの一部からパッチを削除することはできません。

非大域ゾーン内での patchrm の使用

ゾーン管理者として非大域ゾーン内で patchrm ユーティリティーを使用すると、その非大域ゾーンだけを対象としてパッチの削除を実行できます。共有されている領域がパッチの影響を受けることはありません。

製品データベース

各ゾーンの個別パッケージ、パッチ、および製品レジストリデータベースには、そのゾーンで使用可能なインストール済みのソフトウェアすべてが記載されています。インストールする追加ソフトウェアまたはパッチの依存性検査はすべて、パッケージまたはパッチが大域ゾーンおよび 1 つ以上の非大域ゾーンでインストールまたは削除中でない限り、ほかのゾーンのデータベースに一切アクセスすることなく実行されます。パッケージまたはパッチが大域ゾーンおよび 1 つ以上の非大域ゾーンでインストールまたは削除中の場合は、適切な非大域ゾーンデータベースにアクセスする必要があります。

データベースの詳細については、pkgadm(1M) のマニュアルページを参照してください。

第 26 章 ゾーンがインストールされている Solaris システムでのパッケージとパッチの追加および削除 (手順)

Solaris 10 1/06: このリリースでは、この章は全面的に改訂されています。この章では、非大域ゾーンがインストールされているシステムで最新のパッケージとパッチを追加および削除する手順について説明します。

Solaris 10 6/06: 「パッケージを大域ゾーンだけに追加する方法」の手順に注が追加されました。

Solaris 10 8/07: 「大域ゾーンだけにパッチを適用する方法」の手順から注が削除されました。

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

この章では、ゾーンがインストールされているシステムでパッケージとパッチを追加および削除する方法について説明します。パッケージパラメータの設定やパッケージ情報の取得など、パッケージとパッチの管理に関連したほかの作業についても説明します。ゾーンがインストールされているシステムでのパッチおよびパッケージの概念に関する概要は、第 25 章ゾーンがインストールされている Solaris システムでのパッケージとパッチについて (概要)を参照してください。

ゾーンがインストールされている Solaris システムでのパッケージとパッチの追加および削除 (作業マップ)

タスク 

説明 

説明 

パッケージを追加します。 

ゾーンがインストールされているシステムでパッケージを追加します。 

「ゾーンがインストールされている Solaris システムでのパッケージの追加」

パッケージ情報を検査します。 

ゾーンがインストールされているシステムでパッケージ情報を検査します。 

「ゾーンがインストールされている Solaris システムでのパッケージ情報の検査」

パッケージを削除します。 

ゾーンがインストールされているシステムでパッケージを削除します。 

「ゾーンがインストールされている Solaris システムからパッケージを削除する」

パッチを適用します。 

ゾーンがインストールされているシステムでパッチを適用します。 

「ゾーンがインストールされている Solaris システムへのパッチの適用」

パッチを削除します。 

ゾーンがインストールされているシステムでパッチを削除します。 

「ゾーンがインストールされているシステムでのパッチの削除」

(省略可能) パッケージパラメータの設定を検査します。 

パッケージを追加または削除する際、パッケージパラメータの設定が実行する操作をサポートしていることを確認します。 

「ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査」

ゾーンがインストールされている Solaris システムでのパッケージの追加

pkgadd(1M) のマニュアルページで説明しているように、pkgadd システムユーティリティーを使用すると、次の作業を実行できます。

パッケージを追加する場合、SUNW_PKG_ALLZONES および SUNW_PKG_HOLLOW パッケージパラメータ設定は、true または false のいずれか適正な値でなければなりません。ほかの値が設定されている場合、意図した結果を得ることができません。パッケージパラメータ設定の効果に関する詳細は、「パッケージとゾーンについて」を参照してください。これらのパッケージパラメータ設定の検査方法については、「ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査」を参照してください。

Procedureパッケージを大域ゾーンだけに追加する方法

パッケージを大域ゾーンだけに追加する場合、SUNW_PKG_ALLZONES パッケージパラメータが false に設定されている必要があります。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーン内で、pkgadd -d コマンドに続けてパッケージの場所、-G オプション、およびパッケージ名を指定して実行します。

    • CD-ROM からパッケージをインストールする場合は、次のように入力します。


      global# pkgadd -d /cdrom/cdrom0/directory -G package_name
      
    • そのパッケージが既にコピーされているディレクトリからパッケージをインストールする場合は、次のように入力します。


      global# pkgadd -d disk1/image -G package_name
      

      ここで、disk1 にはパッケージのコピー先の場所を指定します。


    注 –

    pkgadd ユーティリティーを -G オプションを指定せずに実行し、かつ SUNW_PKG_THISZONE=true であった場合、指定されたパッケージはデフォルトで現在のゾーン (大域ゾーン) に追加されます。


Procedureパッケージを大域ゾーンとすべての非大域ゾーンに追加する方法

この手順では、pkgadd にオプション -G を指定しないでください。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーン内で、pkgadd -d コマンドに続けてパッケージの場所とパッケージ名を指定して実行します。

    • CD-ROM からパッケージをインストールする場合は、次のように入力します。


      global# pkgadd -d /cdrom/cdrom0/directory package_name
      
    • そのパッケージが既にコピーされているディレクトリからパッケージをインストールする場合は、次のように入力します。


      global# pkgadd -d disk1/image package_name
      

      ここで、disk1 にはパッケージのコピー先の場所を指定します。

Procedure大域ゾーンにインストールしたパッケージをすべての非大域ゾーンに追加する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーンで、pkgrm を使ってパッケージを削除します。

  3. -G オプションを指定せずにパッケージを追加します。

Procedure指定された非大域ゾーンだけにパッケージを追加する方法

指定された非大域ゾーンだけにパッケージを追加する場合、SUNW_PKG_ALLZONES パッケージパラメータが false に設定されている必要があります。この手順では、pkgadd-G オプションを指定しないでください。

この手順を実行するには、非大域ゾーン内のゾーン管理者になる必要があります。

  1. ゾーン管理者として非大域ゾーンにログインします。

  2. 非大域ゾーン (この手順では my-zone) 内で、pkgadd -d コマンドに続けてパッケージの場所、およびパッケージ名を指定して実行します。

    • CD-ROM からパッケージをインストールする場合は、次のように入力します。


      my-zone# pkgadd -d /cdrom/cdrom0/directory package_name
      
    • そのパッケージが既にコピーされているディレクトリからパッケージをインストールする場合は、次のように入力します。


      my-zone# pkgadd -d disk1/image package_name
      

      ここで、disk1 にはパッケージのコピー先の場所を指定します。

ゾーンがインストールされている Solaris システムでのパッケージ情報の検査

pkginfo コマンドを実行することで、大域ゾーンや非大域ゾーンのソフトウェアパッケージデータベースを照会できます。このコマンドの詳細は、pkginfo(1) のマニュアルページを参照してください。

Procedure大域ゾーンだけでパッケージ情報を検査する方法

  1. 大域ゾーンだけのソフトウェアパッケージデータベースを検査する場合、pkginfo に続けてパッケージ名を指定します。


    global% pkginfo package_name
    

例 26–1 大域ゾーンで pkginfo コマンドを使用する


global% pkginfo SUNWcsr SUNWcsu
system      SUNWcsr Core Solaris, (Root)
system      SUNWcsu Core Solaris, (Usr)

Procedure指定された非大域ゾーンだけのパッケージ情報を検査する方法

  1. 指定された非大域ゾーンのソフトウェアパッケージデータベースを検査する場合は、非大域ゾーンにログインし、pkginfo に続けてパッケージ名を指定します。


    my-zone% pkginfo package_name
    

例 26–2 非大域ゾーンで pkginfo コマンドを使用する


my-zone% pkginfo SUNWcsr SUNWcsu
system      SUNWcsr Core Solaris, (Root)
system      SUNWcsu Core Solaris, (Usr)

ゾーンがインストールされている Solaris システムからパッケージを削除する

pkgrm(1M) のマニュアルページで説明しているように、pkgrm システムユーティリティーを使用すると、次の作業を実行できます。

パッケージを削除する場合、SUNW_PKG_ALLZONES および SUNW_PKG_HOLLOW パッケージパラメータ設定は、true または false のいずれか適正な値でなければなりません。ほかの値が設定されている場合、意図した結果を得ることができません。パッケージパラメータ設定の効果に関する詳細は、「パッケージとゾーンについて」を参照してください。これらのパッケージパラメータ設定の検査方法については、「ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査」を参照してください。

Procedure大域ゾーンとすべての非大域ゾーンからパッケージを削除する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーン内で、pkgrm コマンドに続けてパッケージ名を指定します。


    global# pkgrm package_name
    

Procedure指定された非大域ゾーンだけからパッケージを削除する方法

指定された非大域ゾーンだけからパッケージを削除する場合、SUNW_PKG_ALLZONES パッケージパラメータを false に設定する必要があります。

この手順を実行するには、非大域ゾーン内のゾーン管理者になる必要があります。

  1. ゾーン管理者として非大域ゾーンにログインします。

  2. 非大域ゾーン (この手順では my-zone) 内で、pkgrm コマンドに続けてパッケージ名を指定して実行します。


    my-zone# pkgrm package_name
    

ゾーンがインストールされている Solaris システムへのパッチの適用

patchadd(1M) のマニュアルページで説明しているように、patchadd システムユーティリティーを使用すると、次の作業を実行できます。

Procedure大域ゾーンだけにパッチを適用する方法


注 –

Solaris 10 3/05 から Solaris 10 11/06: pkgadd コマンドに -G オプションを指定して追加されたパッケージにパッチを適用する場合は、patchadd コマンドに -G オプションを指定してパッチを適用する必要があります。この制限は Solaris 8/07 リリースで削除されています。


この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. patchadd コマンドに続けて -G オプションとパッチ ID を指定して実行します。


    global# patchadd -G patch_id
    

Procedure大域ゾーンとすべての非大域ゾーンにパッチを適用する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

「Solaris 10 10/09: パッチ適用時間を短縮するためのゾーンの並列パッチ」』および『「Solaris 10 10/09: 非大域ゾーンに並列でパッチを適用する方法」』も参照してください。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. patchadd コマンドに続けてパッチ ID を指定して実行します。


    global# patchadd patch_id
    

Procedure指定された非大域ゾーンだけにパッチを適用する方法

指定された非大域ゾーンだけにパッチを適用するには、パッチセット内のすべてのパッケージの SUNW_PKG_ALLZONES パッケージパラメータが false に設定されている必要があります。

この手順を実行するには、非大域ゾーン内のゾーン管理者になる必要があります。

  1. ゾーン管理者として非大域ゾーンにログインします。

  2. 非大域ゾーン (この手順では my-zone) 内で、patchadd コマンドに続けてパッチ ID を指定して実行します。


    my-zone# patchadd patch_id
    

ProcedureSolaris 10 10/09: 非大域ゾーンに並列でパッチを適用する方法

patchadd 構成ファイル /etc/patch/pdo.conf に、並列でパッチを適用する非大域ゾーンの数を設定します。大域ゾーンへのパッチの適用が終了した時点で、num_proc= に設定されている数の非大域ゾーンに対して一緒にパッチの適用が行われます。

Solaris 10 10/09 より前のリリースを実行している場合は、パッチ 119254-66 以降のリビジョン (SPARC) または 119255-66 以降のリビジョン (x86) をダウンロードします。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. (省略可能、Solaris 10 10/09 より前のリリースのみ必要) パッチ 119254-66 (SPARC) または 119255-66 (x86) をダウンロードします。

  3. /etc/patch/pdo.conf ファイルに、オンライン CPU が 4 つあるシステム上で、並列でパッチを一緒に適用する 6 つの非大域ゾーンを設定します。


    num_proc=6

    システム上に 6 つを超える非大域ゾーンがある場合は、まず最初の 6 つに並列でパッチが適用され、最初の 6 つの非大域ゾーンへのパッチの適用プロセスが終了したら、残りの非大域ゾーンにパッチが適用されます。

ゾーンがインストールされているシステムでのパッチの削除

patchrm(1M) のマニュアルページで説明しているように、patchrm システムユーティリティーを使用すると、次の作業を実行できます。

Procedure大域ゾーンとすべての非大域ゾーンからパッチを削除する方法

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. patchrm コマンドに続けてパッチ ID を指定して実行します。


    global# patchrm patch_id
    

Procedure指定された非大域ゾーンだけからパッチを削除する方法

指定された非大域ゾーンだけからパッチを削除するには、パッチセット内のすべてのパッケージの SUNW_PKG_ALLZONES パッケージパラメータが false に設定されている必要があります。

この手順を実行するには、非大域ゾーン内のゾーン管理者になる必要があります。

  1. ゾーン管理者として非大域ゾーンにログインします。

  2. 非大域ゾーン (この手順では my-zone) 内で、patchrm コマンドに続けてパッチ ID を指定して実行します。


    my-zone# patchrm patch_id
    

ゾーンがインストールされているシステムでのパッケージパラメータ設定の検査

ソフトウェアパッケージを追加または削除する前に、pkgparam コマンドを使用してパッケージパラメータ設定を検査できます。この手順は省略可能です。パッケージが意図したとおりに追加または削除されない場合の障害追跡にも、この検査は使用できます。パッケージのパラメータ値の表示については、pkgparam(1) のマニュアルページを参照してください。

Procedure(省略可能) システムにインストールされたパッケージの設定を検査する方法

  1. 大域ゾーンまたは非大域ゾーンにインストール済みのパッケージのパッケージパラメータ設定を検査する場合、pkgparam に続けてパッケージ名およびパラメータ名を指定します。


    my-zone% pkgparam package_name SUNW_PKG_ALLZONES
    true
    my-zone% pkgparam package_name SUNW_PKG_HOLLOW
    false

Procedure(省略可能) CD-ROM に収録されたソフトウェア内のパッケージの設定を検査する方法

  1. CD-ROM に収録されているソフトウェア内のアンインストール済みパッケージのパッケージパラメータを検査する場合、pkgparam -d に続けて CD-ROM のパス、パッケージ名、およびパラメータ名を指定します。


    my-zone% pkgparam -d /cdrom/cdrom0/directory package_name SUNW_PKG_ALLZONES
    true
    my-zone% pkgparam -d /cdrom/cdrom0/directory package_name SUNW_PKG_HOLLOW 
    false 

第 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() が追加されました。

第 28 章 Solaris のゾーン管理 (手順)

この章では、一般的な管理作業およびその使用例を示します。

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

この節では、製品の新しい機能を一覧表示し、このマニュアルに追加された内容を示します。

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

この章に追加されている Solaris 10 1/06 の説明

メディアにアクセスするための新しい手順が追加されています。「非大域ゾーンで CD または DVD メディアにアクセスする権限を追加する方法」を参照してください。

ゾーン内のファイルをバックアップおよび復元する手順が追加されています。「ゾーンがインストールされている Solaris システムのバックアップ」および 「非大域ゾーンの復元」を参照してください。

この章に追加されている Solaris 10 6/06 の説明

新しい手順が追加されています。「大域ゾーンのファイルシステムを非大域ゾーンにマウントする方法」および 「非大域ゾーンの /usr の下に書き込み可能ディレクトリを追加する方法」を参照してください。

この章に追加されている Solaris 10 8/07 の説明

新しい手順が追加されています。「DTrace を使用する方法」「Solaris 10 8/07: 排他的 IP 非大域ゾーンでのデータリンクの管理」、および 「非大域ゾーンの SMF サービスの状態の確認」を参照してください。

ppriv ユーティリティーの使用

ppriv ユーティリティーを使用してゾーンの特権を表示します。

Procedure大域ゾーンでの Solaris の特権を一覧表示する方法

ppriv ユーティリティーを -l オプションとともに使用して、システムで使用可能な特権を一覧表示します。

  1. プロンプトで ppriv -l zone と入力し、ゾーンで使用可能な特権セットを表示します。


    global# ppriv -l zone
    

    次のような内容が表示されます。


    contract_event
    contract_observer
    cpc_cpu
    .
    .
    .

Procedure非大域ゾーンの特権セットの表示方法

ppriv ユーティリティーを -l オプションおよび式 zone とともに使用して、ゾーンの特権を表示します。

  1. 非大域ゾーンにログインします。この例では、my-zone という名前のゾーンを使用します。

  2. プロンプトで ppriv -l zone と入力し、ゾーンで使用可能な特権セットを表示します。


    my-zone# ppriv -l zone
    

    次のような内容が表示されます。


    contract_event
    contract_observer
    file_chown
    
    .
    .
    .

Procedure非大域ゾーンの特権セットを冗長出力で表示する方法

ppriv ユーティリティーを -l オプション、式 zone、および -v オプションとともに使用して、ゾーンの特権を一覧表示します。

  1. 非大域ゾーンにログインします。この例では、my-zone という名前のゾーンを使用します。

  2. プロンプトで ppriv -l -v zone と入力して、ゾーン内で使用可能な特権セットおよび各特権の説明を出力します。


    my-zone# ppriv -l -v zone
    

    次のような内容が表示されます。


    contract_event
            Allows a process to request critical events without limitation.
            Allows a process to request reliable delivery of all events on
            any event queue.
    contract_observer
            Allows a process to observe contract events generated by
            contracts created and owned by users other than the process's
            effective user ID.
            Allows a process to open contract event endpoints belonging to
            contracts created and owned by users other than the process's
            effective user ID.
    file_chown
            Allows a process to change a file's owner user ID.
            Allows a process to change a file's group ID to one other than
            the process' effective group ID or one of the process'
            supplemental group IDs.
    .
    .
    .

非大域ゾーン内での DTrace の使用

「非大域ゾーン内での DTrace の実行」で説明されている DTrace 機能を使用するには、次の手順を実行します。

ProcedureDTrace を使用する方法

  1. zonecfg limitpriv プロパティーを使用して、dtrace_proc 特権と dtrace_user 特権を追加します。


    global# zonecfg -z my-zone
    zonecfg:my-zone> set limitpriv="default,dtrace_proc,dtrace_user"
    zonecfg:my-zone> exit
    

    注 –

    必要に応じて、どちらか一方の特権を追加することも、両方の特権を追加することもできます。


  2. ゾーンを起動します。


    global# zoneadm -z my-zone boot
    
  3. ゾーンにログインします。


    global# zlogin my-zone
    
  4. DTrace プログラムを実行します。


    my-zone# dtrace -l
    

非大域ゾーンの SMF サービスの状態の確認

ネイティブな非大域ゾーンの SMF サービスの状態を確認するには、zlogin コマンドを使用します。

Procedureコマンド行から SMF サービスの状態を確認する方法

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. コマンド行から次のように入力して、無効になっているサービスも含むすべてのサービスを表示します。


    global# zlogin my-zone svcs -a
    
参照

詳細は、第 22 章非大域ゾーンへのログイン (手順)および svcs(1) のマニュアルページを参照してください。

Procedureゾーン内から SMF サービスの状態を確認する方法

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ゾーンにログインします。


    global# zlogin my-zone
    
  3. svcs コマンドに -a オプションを付けて実行して、無効になっているサービスも含むすべてのサービスを表示します。


    my-zone# svcs -a
    
参照

詳細は、第 22 章非大域ゾーンへのログイン (手順)および svcs(1) のマニュアルページを参照してください。

稼働中の非大域ゾーン内でファイルシステムをマウントする

稼働中の非大域ゾーン内でファイルシステムをマウントできます。具体的には、次の作業について説明しています。

Procedurezonecfg を使用して raw デバイスおよびブロックデバイスをインポートする方法

この手順では、lofi ファイルドライバを使用します。このドライバは、ファイルをブロックデバイスとしてエクスポートします。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ディレクトリを /usr/tmp に変更します。


    global# cd /usr/tmp
    
  3. 新しい UFS ファイルシステムを作成します。


    global# mkfile 10m fsfile
    
  4. ファイルをブロックデバイスとして接続します。

    ほかの lofi デバイスが作成されていない場合、使用可能な最初のスロット /dev/lofi/1 が使用されます。


    global# lofiadm -a `pwd`/fsfile
    

    必要な文字デバイスも取得します。

  5. デバイスをゾーン my-zone にインポートします。


    global# zonecfg -z my-zone
    zonecfg:my-zone> add device
    zonecfg:my-zone:device> set match=/dev/rlofi/1
    zonecfg:my-zone:device> end
    zonecfg:my-zone> add device
    zonecfg:my-zone:device> set match=/dev/lofi/1
    zonecfg:my-zone:device> end
    
  6. ゾーンを再起動します。


    global# zoneadm -z my-zone boot
    
  7. ゾーンにログインして、デバイスのインポートが成功したことを確認します。


    my-zone# ls  -l /dev/*lofi/*
    

    次のような内容が表示されます。


    brw-------   1 root     sys      147,  1 Jan  7 11:26 /dev/lofi/1
    crw-------   1 root     sys      147,  1 Jan  7 11:26 /dev/rlofi/1
参照

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

Procedureファイルシステムを手動でマウントする方法

この手順を実行するには、ゾーン管理者になり、Zone Management プロファイルを保持する必要があります。この手順では、newfs コマンドを使用します。このコマンドの詳細は、newfs(1M) のマニュアルページを参照してください。

  1. スーパーユーザーになるか、プロファイルリスト内の Zone Management 権利プロファイルを保持します。

  2. ゾーン my-zone 内で、ディスク上に新しいファイルシステムを作成します。


    my-zone# newfs /dev/lofi/1
    
  3. プロンプトに yes で応答します。


    newfs: construct a new file system /dev/rlofi/1: (y/n)? y
    

    次のような内容が表示されます。


    /dev/rlofi/1:   20468 sectors in 34 cylinders of 1 tracks, 602 sectors
            10.0MB in 3 cyl groups (16 c/g, 4.70MB/g, 2240 i/g)
    super-block backups (for fsck -F ufs -o b=#) at:
     32, 9664, 19296,
  4. ファイルシステムのエラーを検査します。


    my-zone# fsck -F ufs /dev/rlofi/1
    

    次のような内容が表示されます。


    ** /dev/rlofi/1
    ** Last Mounted on 
    ** Phase 1 - Check Blocks and Sizes
    ** Phase 2 - Check Pathnames
    ** Phase 3 - Check Connectivity
    ** Phase 4 - Check Reference Counts
    ** Phase 5 - Check Cyl groups
    2 files, 9 used, 9320 free (16 frags, 1163 blocks, 0.2% fragmentation)
  5. ファイルシステムをマウントします。


    my-zone# mount -F ufs /dev/lofi/1 /mnt
    
  6. マウントを検証します。


    my-zone# grep /mnt /etc/mnttab
    

    次のような内容が表示されます。


    /dev/lofi/1     /mnt    ufs
    rw,suid,intr,largefiles,xattr,onerror=panic,zone=foo,dev=24c0001
    1073503869

Procedureゾーンの起動時にマウントするファイルシステムを /etc/vfstab に配置する方法

ここでは、ブロックデバイス /dev/lofi/1 をファイルシステムパス /mnt にマウントする手順を説明します。ブロックデバイスには UFS ファイルシステムが含まれます。次のオプションを使用します。

  1. スーパーユーザーになるか、プロファイルリスト内の Zone Management 権利プロファイルを保持します。

  2. ゾーン my-zone 内で、次の行を /etc/vfstab に追加します。


    /dev/lofi/1 /dev/rlofi/1  /mnt   ufs  2  yes logging

Procedure大域ゾーンのファイルシステムを非大域ゾーンにマウントする方法

ゾーンが zonepath /export/home/my-zone を保持するものとします。ここで、大域ゾーンのディスク /dev/lofi/1 を非大域ゾーン内の /mnt にマウントします。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ディスクを非大域ゾーンの /mnt にマウントするには、大域ゾーンから次のように入力します。


    global# mount -F ufs /dev/lofi/1 /export/home/my-zone/root/mnt
    
参照

lofi の詳細については、lofiadm(1M) および lofi(7D) のマニュアルページを参照してください。

大域ゾーン内の特定のファイルシステムへのアクセス権を非大域ゾーンに追加する

Procedure非大域ゾーンで CD または DVD メディアにアクセスする権限を追加する方法

この手順を使用して、非大域ゾーンで CD または DVD メディアに読み取り専用のアクセスを行う権限を追加できます。メディアをマウントするときには、大域ゾーンでボリューム管理ファイルシステムが使用されます。アクセス権を追加したら、CD または DVD を使用して製品を非大域ゾーンにインストールできます。この手順では、jes_05q4_dvd という DVD を使用します。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーンでボリューム管理ファイルシステムが稼働しているかどうかを調べます。


    global# svcs volfs
    STATE          STIME    FMRI
    online         Sep_29   svc:/system/filesystem/volfs:default
  3. (省略可能) 大域ゾーンでボリューム管理ファイルシステムが稼働していない場合は、起動します。


    global# svcadm volfs enable
    
  4. メディアを挿入します。

  5. ドライブにメディアが入っているかどうかを確認します。


    global# volcheck
    
  6. DVD が自動マウントされているかどうかをテストします。


    global# ls /cdrom
    

    次のような情報が表示されます。


    cdrom   cdrom1   jes_05q4_dvd
  7. ro,nodevices オプション (読み取り専用、デバイスなし) を指定して、非大域ゾーンでファイルシステムをループバックマウントします。


    global# zonecfg -z my-zone
    zonecfg:my-zone> add fs
    zonecfg:my-zone:fs> set dir=/cdrom
    zonecfg:my-zone:fs> set special=/cdrom
    zonecfg:my-zone:fs> set type=lofs
    zonecfg:my-zone:fs> add options [ro,nodevices]
    zonecfg:my-zone:fs> end
    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  8. 非大域ゾーンを再起動します。


    global# zoneadm -z my-zone reboot
    
  9. zoneadm list コマンドに -v オプションを指定して、状態を確認します。


    global# zoneadm list -v
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     1  my-zone  running      /export/home/my-zone           native     shared
  10. 非大域ゾーンにログインします


    global# zlogin my-zone
    
  11. DVD-ROM がマウントされているかを確認します。


    my-zone# ls /cdrom
    

    次のような内容が表示されます。


    cdrom   cdrom1   jes_05q4_dvd
  12. 製品のインストールガイドに従って、製品をインストールします。

  13. 非大域ゾーンから抜けます。


    my-zone# exit
    

    ヒント –

    /cdrom ファイルシステムを非大域ゾーンに残すこともできます。マウントするときには、常に CD-ROM ドライブの現在の内容が反映されます。つまり、ドライブが空の場合は、ディレクトリは空になります。


  14. (省略可能) 非大域ゾーンから /cdrom ファイルシステムを削除する場合は、次の手順を使用します。


    global# zonecfg -z my-zone
    zonecfg:my-zone> remove fs dir=/cdrom
    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    

Procedure非大域ゾーンの /usr の下に書き込み可能ディレクトリを追加する方法

疎ルートゾーンでは、/usr は大域ゾーンから読み取り専用でマウントされます。ここで説明する手順を使って、ゾーンの /usr の下に /usr/local などの書き込み可能ディレクトリを追加できます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーンに /usr/local ディレクトリを作成します。


    global# mkdir -p /usr/local
    
  3. ゾーンの /usr/local ディレクトリのバッキングストアとして使用する、大域ゾーン内のディレクトリを指定します。


    global# mkdir -p /storage/local/my-zone
    
  4. ゾーン my-zone の構成を編集します。


    global# zonecfg -z my-zone
    
  5. ループバックマウントされたファイルシステムを追加します。


    zonecfg:my-zone> add fs
    zonecfg:my-zone:fs> set dir=/usr/local
            zonecfg:my-zone:fs> set special=/storage/local/my-zone
            zonecfg:my-zone:fs> set type=lofs
            zonecfg:my-zone:fs> end
            zonecfg:my-zone> commit
            zonecfg:my-zone> exit
    
  6. ゾーンを起動します。

Procedure大域ゾーン内のホームディレクトリを非大域ゾーンにエクスポートする方法

大域ゾーンから同じシステム上の非大域ゾーンにホームディレクトリまたはほかのファイルシステムをエクスポートする場合に、この手順を使用します。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ループバックマウントされたファイルシステムを追加します。


    global# zonecfg -z my-zone
    zonecfg:my-zone> add fs
    zonecfg:my-zone:fs> set dir=/export/home
    zonecfg:my-zone:fs> set special=/export/home
    zonecfg:my-zone:fs> set type=lofs
    zonecfg:my-zone:fs> set options=nodevices
    zonecfg:my-zone:fs> end
    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  3. ゾーンの /etc/auto_home ファイルに次の行を追加します。


    $HOST:/export/home/&

ゾーンがインストールされている Solaris システムでの IP ネットワークマルチパスの使用

ProcedureSolaris 10 8/07: 排他的 IP 非大域ゾーンで IP ネットワークマルチパスを使用する方法

排他的 IP ゾーンの IP ネットワークマルチパス (IPMP) は、大域ゾーンと同じ方法で構成します。

IP マルチパスグループ (IPMP グループ) に 1 つ以上の物理インタフェースを構成できます。IPMP を構成すると、IPMP グループのインタフェースに障害が発生していないかどうかをシステムが自動的に監視します。グループのインタフェースに障害が発生した場合や、保守のためにインタフェースが削除された場合、IPMP は自動的に、そのインタフェースの IP アドレスを移行して処理を継続します。フェイルオーバーされたアドレスは、障害が発生したインタフェースの IPMP グループ内の機能中のインタフェースが受け取ります。IPMP のフェイルオーバー機能は、接続を保持し、既存の接続の切断を防止します。さらに、IPMP は、ネットワークトラフィックを自動的に IPMP グループ内のインタフェースのセットに分散することによって、ネットワークパフォーマンス全体を向上させます。この処理は負荷分散と呼ばれます。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. IPMP グループを構成します。詳細は、『Solaris のシステム管理 (IP サービス)』「IPMP グループの構成」を参照してください。

ProcedureIP ネットワークマルチパス機能を共有 IP 非大域ゾーンに拡張する方法

大域ゾーン内で IPMP を構成し、IPMP 機能を非大域ゾーンに拡張する場合に、ここで説明する手順を使用します。

ゾーンの構成時に、各アドレスつまり論理インタフェースを非大域ゾーンと関連付ける必要があります。手順については、zonecfg コマンドの使用」および 「ゾーンの構成方法」を参照してください。

この手順を実行すると、次のことが達成されます。

稼働中のゾーンで、ifconfig コマンドを使用して関連付けを行うことができます。「共有 IP ネットワークインタフェース」および ifconfig(1m) のマニュアルページを参照してください。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. 大域ゾーン内で IPMP グループを構成します。詳細は、『Solaris のシステム管理 (IP サービス)』「IPMP グループの構成」を参照してください。

  3. zonecfg コマンドを使用してゾーンを構成します。net 資源を構成する際、アドレス 192.168.0.1 および物理インタフェース bge0 をゾーン my-zone に追加します。


    zonecfg:my-zone> add net
    zonecfg:my-zone:net> set address=192.168.0.1
    zonecfg:my-zone:net> set physical=bge0
    zonecfg:my-zone:net> set defrouter=10.0.0.1
    zonecfg:my-zone:net> end
    

    非大域ゾーン my-zone 内に bge0 だけが表示されます。

bge0 が連続して失敗した場合

bge0 が連続して失敗し、bge0 データアドレスが大域ゾーン内の hme0 に引き継がれる場合、my-zone アドレスも移行します。

アドレス 192.168.0.1hme0 に移動する場合、非大域ゾーン my-zone 内で hme0 だけが表示されます。このカードは、アドレス 192.168.0.1 に関連付けられ、bge0 は表示されなくなります。

Solaris 10 8/07: 排他的 IP 非大域ゾーンでのデータリンクの管理

データリンクを管理するには、大域ゾーンから dladm コマンドを使用します。

Proceduredladm show-linkprop の使用方法

dladm コマンドを show-linkprop サブコマンドとともに使用して、実行中の排他的 IP ゾーンに対するデータリンクの割り当てを表示できます。

データリンクを管理するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. システムのデータリンクの割り当てを表示します。


    global# dladm show-linkprop
    

例 28–1 dladm コマンドを show-linkprop サブコマンドとともに使用する

  1. ゾーン 49bge には bge0 が割り当てられていますが、最初の画面ではこのゾーンは起動していません。


    global# dladm show-linkprop
    LINK         PROPERTY        VALUE          DEFAULT        POSSIBLE
    bge0         zone            --             --             --
    ath0         channel         6              --             --
    ath0         powermode       ?              off            off,fast,max
    ath0         radio           ?              on             on,off
    ath0         speed           11             -- 
    1,2,5.5,6,9,11,12,18,24,36,48,54
    ath0         zone            --             --             --
  2. ゾーン 49bge を起動します。


    global# zoneadm -z 49bge boot
    
  3. コマンド dladm show-linkprop をもう一度実行します。すると、bge0 リンクが 49bge に割り当てられていることに注目してください。


    global# dladm show-linkprop
    LINK         PROPERTY        VALUE          DEFAULT        POSSIBLE
    bge0         zone            49bge          --             --
    ath0         channel         6              --             --
    ath0         powermode       ?              off            off,fast,max
    ath0         radio           ?              on             on,off
    ath0         speed           11             -- 
    1,2,5.5,6,9,11,12,18,24,36,48,54
    ath0         zone            --             --             --

Proceduredladm set-linkprop の使用方法

dladm コマンドを set-linkprop サブコマンドとともに使用して、実行中の排他的 IP ゾーンに対してデータリンクを一時的に割り当てることができます。持続的な割り当ては zonecfg コマンドを使用して行う必要があります。

データリンクを管理するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. dladm set-linkprop-t とともに使用して、excl という実行中のゾーンに bge0 を追加します。


    global# dladm set-linkprop -t -p zone=excl bge0
    LINK         PROPERTY        VALUE          DEFAULT        POSSIBLE
    bge0         zone            excl           --             --

    ヒント –

    -p オプションを使用すると、マシンで構文解析できる安定した形式の表示が生成されます。


Proceduredladm reset-linkprop の使用方法

dladm コマンドを reset-linkprop サブコマンドとともに使用して、bge0 リンクの値を未設定にリセットできます。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. dladm reset-linkprop-t とともに使用して、ゾーンへの bge0 デバイスの割り当てを解除します。


    global# dladm reset-linkprop -t -p zone=excl bge0
    LINK         PROPERTY        VALUE          DEFAULT        POSSIBLE
    bge0         zone            excl           --             --

    ヒント –

    -p オプションを使用すると、マシンで構文解析できる安定した形式の表示が生成されます。


注意事項

実行中のゾーンでそのデバイスが使用中の場合、再割り当ては失敗し、エラーメッセージが表示されます。「排他的 IP ゾーンがデバイスを使用しているために dladm reset-linkprop が失敗する」を参照してください。

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

prctl コマンドで指定された制限には持続性がありません。システムが再起動されると、制限は無効になります。ゾーンの配分を持続的に設定する方法については、「ゾーンの構成方法」および 「大域ゾーンの zone.cpu-shares を設定する方法」を参照してください。

Procedureprctl コマンドを使用して大域ゾーンの FSS 配分を設定する方法

大域ゾーンには、デフォルトで 1 つの配分が付与されます。ここで説明する手順を使って、デフォルトの割り当てを変更できます。システムを再起動するたびに prctl コマンドで割り当てた配分を設定し直す必要があります。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. prctl ユーティリティーを使用して、2 つの配分を大域ゾーンに割り当てます。


    # prctl -n zone.cpu-shares -v 2 -r -i zone global
    
  3. (省略可能) 大域ゾーンに割り当てられた配分の数を確認するには、次のように入力します。


    # prctl -n zone.cpu-shares -i zone global
    
参照

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

Procedureゾーンの zone.cpu-shares 値を動的に変更する方法

この手順は、大域ゾーンだけでなく任意のゾーンに対して使用できます。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. prctl コマンドを使って cpu-shares の新しい値を指定します。


    # prctl -n zone.cpu-shares -r -v value -i zone zonename
    

    idtypezonenamezoneid のいずれかです。value は新しい値です。

ゾーン管理での権利プロファイルの使用

ここでは、非大域ゾーンで権利プロファイルを使用することに関連した作業について説明します。

ProcedureZone Management プロファイルを割り当てる方法

ユーザーは、Zone Management プロファイルを使用することで、システムの非大域ゾーンをすべて管理できます。

この手順を実行するには、大域ゾーン内で大域管理者になる必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. Zone Management 権利プロファイルを含む役割を作成し、その役割をユーザーに割り当てます。

例 — ゾーンコマンドでのプロファイルシェルの使用

pfexec プログラムを使用して、プロファイル内でゾーンコマンドを実行できます。プログラムは、exec_attr データベース内のユーザープロファイルで指定された属性を使って、コマンドを実行します。プログラムの呼び出しには、プロファイルシェル pfkshpfcsh、および pfsh が使用されます。

pfexec プログラムを使用して、 my-zone などのゾーンにログインします。


machine$ pfexec zlogin my-zone

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

次の手順を使用して、ゾーン内のファイルをバックアップできます。ゾーンの構成ファイルもバックアップしてください。

Procedureufsdump を使用してバックアップを実行する方法

ufsdump コマンドを使用して、完全バックアップまたは増分バックアップを実行できます。この手順では、ゾーン /export/my-zone/backup/my-zone.ufsdump にバックアップします。ここで my-zone は使用しているシステム上のゾーンの名前に置き換えてください。/backup にマウントされたファイルシステムなど、別のファイルシステムにバックアップを格納することもできます。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. (省略可能) 共有ファイルシステムのバックアップを作成しないように、ゾーンを停止して休止状態にします。


    global# zlogin -S my-zone init 0
    
  3. ゾーンの状態を検査します。


    global# zoneadm list -cv
    

    次のような情報が表示されます。


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
  4. バックアップを実行します。


    global# ufsdump 0f /backup/my-zone.ufsdump /export/my-zone
    

    次のような情報が表示されます。


    DUMP: Date of this level 0 dump: Wed Aug 10 16:13:52 2005
    DUMP: Date of last level 0 dump: the epoch
    DUMP: Dumping /dev/rdsk/c0t0d0s0 (bird:/) to /backup/my-zone.ufsdump. 
    DUMP: Mapping (Pass I) [regular files]
    DUMP: Mapping (Pass II) [directories]
    DUMP: Writing 63 Kilobyte records
    DUMP: Estimated 363468 blocks (174.47MB).
    DUMP: Dumping (Pass III) [directories]
    DUMP: Dumping (Pass IV) [regular files]
    DUMP: 369934 blocks (180.63MB) on 1 volume at 432 KB/sec
    DUMP: DUMP IS DONE
  5. ゾーンを起動します。


    global# zoneadm -z my-zone boot
    

Procedurefssnap を使用して UFS スナップショットを作成する方法

この手順では、fssnap コマンドを使用して、バックアップのためにファイルシステムの一時的なイメージを作成します。

この方法を利用すれば、ゾーンファイルだけの純粋で一貫性のあるバックアップファイルを作成することができ、しかも、その作業をゾーンの動作中に実行できます。ただし、スナップショットを作成するときには、ファイルを更新中のアクティブなアプリケーションを中断するか、チェックポイントを設定することをお勧めします。スナップショットが作成されるときにファイルを更新中のアプリケーションは、これらのファイルを、内部的に一貫性のない状態、一部を切り捨てた状態、または使用できない状態にすることがあります。

下記の手順の例では、次のようになっています。

始める前に

バックアップ先は /backup/my-zone.ufsdump です。/ の下に backup ディレクトリを作成する必要があります。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. スナップショットを作成します。


    global# fssnap -o bs=/export /export/home
    

    次のような情報が表示されます。


    dev/fssnap/0
  3. スナップショットをマウントします。


    global# mount -o ro /dev/fssnap/0 /mnt
    
  4. スナップショットから my-zone をバックアップします。


    global# ufsdump 0f /backup/my-zone.ufsdump /mnt/my-zone
    

    次のような情報が表示されます。


    DUMP: Date of this level 0 dump: Thu Oct 06 15:13:07 2005
       DUMP: Date of last level 0 dump: the epoch
       DUMP: Dumping /dev/rfssnap/0 (pc2:/mnt) to /backup/my-zone.ufsdump.
       DUMP: Mapping (Pass I) [regular files]
       DUMP: Mapping (Pass II) [directories]
       DUMP: Writing 32 Kilobyte records
       DUMP: Estimated 176028 blocks (85.95MB).
       DUMP: Dumping (Pass III) [directories]
       DUMP: Dumping (Pass IV) [regular files]
       DUMP: 175614 blocks (85.75MB) on 1 volume at 2731 KB/sec
       DUMP: DUMP IS DONE
  5. スナップショットのマウントを解除します。


    global# umount /mnt
    
  6. スナップショットを削除します。


    global# fssnap -d /dev/fssnap/0
    

    システムを再起動すると、スナップショットもシステムから削除されます。

Procedurefind および cpio を使用してバックアップを実行する方法

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ディレクトリをルートディレクトリに変更します。


    global# cd /
    
  3. ループバックマウントされていない my-zone ファイルを /backup/my-zone.cpio にバックアップします。


    global# find export/my-zone -fstype lofs -prune -o -local
     | cpio -oc -O /backup/my-zone.cpio type as one line
    
  4. 結果を確認します。


    global# ls -l backup/my-zone.cpio
    

    次のような情報が表示されます。


    -rwxr-xr-x   1 root     root     99680256 Aug 10 16:13 backup/my-zone.cpio

Procedureゾーン構成のコピーを出力する方法

非大域ゾーン構成のバックアップファイルを作成することをお勧めします。必要に応じて、このバックアップを使用してゾーンをあとで再作成することができます。ゾーンにはじめてログインして sysidtool からの質問に回答したあとに、ゾーンの構成のコピーを作成します。この手順では、処理をわかりやすく説明するために、my-zone という名前のゾーンと my-zone.config という名前のバックアップファイルを使用します。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ゾーン my-zone の構成を my-zone.config というファイルに出力します。


    global# zonecfg -z my-zone export > my-zone.config
    

非大域ゾーンの復元

Procedure非大域ゾーンを個別に復元する方法

必要に応じて、非大域ゾーン構成のバックアップファイルを使用して非大域ゾーンを復元できます。この手順では、ゾーンを復元する処理をわかりやすく説明するために、my-zone という名前のゾーンと my-zone.config という名前のバックアップファイルを使用します。

  1. スーパーユーザーまたは Primary Administrator 役割になります。

    役割の作成と作成した役割のユーザーへの割り当てについては、『Solaris のシステム管理 (基本編)』「Solaris 管理ツールを RBAC と組み合わせて使用する (作業マップ)」を参照してください。

  2. ゾーン my-zone を再作成するために、my-zone.config zonecfg コマンドファイルとして使用することを指定します。


    global# zonecfg -z my-zone -f my-zone.config
    
  3. ゾーンをインストールします。


    global# zoneadm -z my-zone install
    
  4. ゾーンに最初にログインするときに sysidtool からの質問が表示されないようにする場合は、たとえば次のようにして zonepath/root/etc/.UNCONFIGURED ファイルを削除します。


    global# rm /export/home/my-zone/root/etc/.UNCONFIGURED
    
  5. ゾーン固有のファイル (アプリケーションデータなど) を復元する場合は、新しく作成したゾーンのルートファイルシステムに対してバックアップのファイルを手動で復元します。手作業でのマージが必要な場合があります。

第 29 章 非大域ゾーンにインストールされている Solaris 10 システムのアップグレード

この章では、Solaris ゾーンを実行している場合に、Solaris 10 システムをそれ以降のリリースにアップグレードする方法について説明します。Solaris のインストールに関するマニュアルへのリンクを記載しています。

この章に追加されている Solaris 10 8/07 の説明

ゾーンがインストールされているシステムで Solaris Live Upgrade がサポートされるようになりました。zonepath を ZFS 上に設定することはできません。

この章に追加されている Solaris 10 10/08 の説明

このリリース以降、zonepath が ZFS 上に設定されているシステムで Solaris Live Upgrade がサポートされるようになります。zonepath が ZFS 上に設定されているゾーンの場合、システムのアップグレードに使用できるのは Solaris Live Upgrade だけです

Solaris Live Upgrade 機能を使用して、ゾーンを ZFS ルートファイルシステムに移行できます。共有でないファイルシステム内のゾーンは、UFS ルートファイルシステムが ZFS ルートファイルシステムに移行される際に、自動的に移行されます。共有 UFS ファイルシステム内のゾーンは、以前の Solaris リリースと同様の方法でアップグレードする必要があります。詳細は、『Oracle Solaris ZFS 管理ガイド』「UFS ルートファイルシステムから ZFS ルートファイルシステムへの移行 (Oracle Solaris Live Upgrade)」を参照してください。

アップグレードする前のシステムのバックアップ

アップグレードを実行する前に、Solaris システムの大域ゾーンと非大域ゾーンをバックアップしてください。詳細は、「ゾーンがインストールされている Solaris システムのバックアップについて」 および 「ゾーンがインストールされている Solaris システムのバックアップ」を参照してください。

ゾーンがインストールされているシステムの Solaris 10 8/07 以降の更新リリースへのアップグレード

ゾーンがインストールされている Solaris システムをアップグレードするときには、Solaris Live Upgrade、Solaris 標準の対話型インストールプログラム、またはカスタム JumpStart インストールプログラムを使用できます。詳細は、『Solaris 10 8/07 Installation Guide: Planning for Installation and Upgrade』「Upgrading With Non-Global Zones」を参照してください。zonepath が ZFS 上にある場合は、「この章に追加されている Solaris 10 8/07 の説明」および 「この章に追加されている Solaris 10 10/08 の説明」も参照してください。

Solaris ゾーンで Solaris Live Upgrade を使用するためのガイドライン

ゾーンがインストールされているシステムで Live Upgrade を使用する場合は、考慮すべき事項がいくつかあります。lucreate および lumount 操作の実行中にゾーン状態が遷移しないようにすることが非常に重要です。

非大域ゾーンは非大域ゾーン管理者だけでなく大域管理者も制御できるため、lucreate または lumount の操作中はすべてのゾーンを停止するのが最善の策です。

Live Upgrade 操作の進行中は、非大域ゾーン管理者が介入してはいけません。アップグレードは、アップグレードによって発生する変更に対処する予定の管理者の作業に影響を及ぼします。ゾーン管理者は、すべてのローカルパッケージが一連の操作を通じて確実に安定しているようにし、構成ファイルの調整といったアップグレード後の作業をすべて行い、通常はシステムの機能停止を避けたスケジュールを立てる必要があります。

ゾーンがインストールされているシステムの Solaris 10 6/06 または Solaris 10 11/06 へのアップグレード

システムをアップグレードする前に、lofs タイプで定義された fs 資源を持つゾーンを Solaris 10 11/06 リリースにアップグレードできない」に記載されている情報を確認してください。

ゾーンがインストールされている Solaris システムをアップグレードするときには、Solaris 標準の対話型インストールプログラムまたはカスタム JumpStart インストールプログラムを使用できます。Solaris Live Upgrade は、このリリースではサポートされていません。詳細は、『Solaris 10 11/06 Installation Guide: Solaris Live Upgrade and Upgrade Planning』および『Solaris 10 11/06 Installation Guide: Custom JumpStart and Advanced Installations』を参照してください。

第 30 章 Solaris ゾーンで発生するさまざまな問題の解決

この章は、Solaris 10 6/06 リリースに新しく追加されました。

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

Solaris 10 6/06、Solaris 10 11/06、Solaris 10 8/07、および Solaris 10 5/08: 非大域ゾーンのルートファイルシステムを ZFS 上に配置しない

これらのリリースでは、非大域ゾーンの zonepath を ZFS 上に設定すべきではありません。このような操作をすると、パッチの問題が発生したり、システムを以降の Solaris 10 アップデートリリースにアップグレードできなくなったりする可能性があります。

ただし、Solaris 10 10/08 リリース以降では、非大域ゾーンのルートファイルシステムを ZFS 上に設定することができます。その場合は、Solaris Live Upgrade を使用してシステムをアップグレードできます。

排他的 IP ゾーンがデバイスを使用しているために dladm reset-linkprop が失敗する

次のエラーメッセージが表示された場合


dladm: warning: cannot reset link property 'zone' on 'bge0': operation failed

dladm reset-linkprop の使用方法」で説明されているように、dladm reset-linkprop を使用しようとして失敗しました。実行中のゾーン excl は、ゾーン内部で ifconfig bge0 plumb を実行することによって割り当てられたデバイスを使用中です。

値をリセットするには、手続き ifconfig bge0 unplumb をゾーン内部で実行し、dladm コマンドを再度実行します。

大域ゾーンによってデータが挿入されているファイルシステムをゾーン管理者がマウントする場合

非大域ゾーンの初回起動時にファイルシステム階層内にファイルが存在している場合は、そのファイルシステムデータが大域ゾーンによって管理されていることを示しています。非大域ゾーンがインストールされたときに、大域ゾーン内のいくつかのパッケージファイルがそのゾーン内に複製されています。これらのファイルは zonepath ディレクトリの下に置かれている必要があります。ゾーンに追加されているディスクデバイスや ZFS データセット上にゾーン管理者によってファイルシステムが作成され、そこにこれらのファイルが置かれている場合は、パッケージとパッチの問題が発生する可能性があります。

大域ゾーンによって管理されているファイルシステムデータを、ゾーンにローカルなファイルシステムに保存する場合の問題は、ZFS を例にとって説明することができます。ZFS データセットが非大域ゾーンに委任されている場合、ゾーン管理者は、大域ゾーンによって管理されているファイルシステムデータの保存のためにそのデータセットを使用するべきではありません。構成にパッチやアップグレードを正しく適用できなくなります。

たとえば、委任されている ZFS データセットを /var ファイルシステムとして使用するべきではありません。Solaris オペレーティングシステムでは、/var にコンポーネントをインストールする主要パッケージが提供されています。これらのパッケージは、アップグレードやパッチの適用時に /var にアクセスする必要がありますが、委任されている ZFS データセットに /var がマウントされているとそれが不可能になります。

大域ゾーンによって制御されている階層の部分の下にファイルシステムをマウントすることはサポートされています。たとえば、大域ゾーンに空の /usr/local ディレクトリが存在している場合、ゾーン管理者はそのディレクトリにほかの内容をマウントすることができます。

非大域ゾーンの /export などのように、パッチやアップグレードの適用時にアクセスする必要のないファイルシステムには、委任されている ZFS データセットを使用することができます。

ゾーンが停止しない

ゾーンに関連付けられたシステム状態を破棄できない場合には、停止処理は中途で失敗します。このため、稼働中とインストール済みの間で、ゾーンが中間状態のままになります。この状態では、アクティブなユーザープロセスやカーネルスレッドは存在せず、何も作成できません。停止操作が失敗した場合は、手動で処理を完了する必要があります。

障害のもっとも一般的な原因は、システムがすべてのファイルシステムをマウント解除できないことです。システム状態が破棄される Solaris システムの従来の停止処理とは異なり、ゾーンでは、ゾーンの起動または操作時に実行されたマウントがゾーンの停止後に残らないことを保証する必要があります。zoneadm によりゾーン内で実行中のプロセスが存在しないことが確認されても、大域ゾーン内のプロセスによりゾーン内のファイルが開かれた場合には、マウント解除操作が失敗することがあります。proc(1) (pfiles を参照) および fuser(1M) のマニュアルページに記載されているツールを使用してこれらのプロセスを検索し、適切な処理を実行してください。これらのプロセスを処理したあとで zoneadm halt を再度呼び出すと、ゾーンが完全に停止するはずです。

停止できないゾーンがある場合、Solaris 10 10/09 リリースでは、zoneadm attach -F オプションを使用して妥当性検査を行わずに接続を強制的に実行すれば、切り離されなかったゾーンを移行できます。移行先システムは、ゾーンをホストするように正しく構成されている必要があります。構成が不正な場合、未定義の動作が実行される可能性があります。また、ゾーン内のファイルの状態を知る方法はありません。

ゾーン構成内に不正な特権セットが指定されている

ゾーンの特権セットに許可されない特権が含まれる場合、必須の特権が欠落している場合、または不明な特権名が含まれる場合、ゾーンの検証、準備、または起動の試行は失敗し、次のようなエラーメッセージが表示されます。


zonecfg:zone5> set limitpriv="basic"
.
.
.
global# zoneadm -z zone5 boot
 	required privilege "sys_mount" is missing from the zone's privilege set
 	zoneadm: zone zone5 failed to verify

ゾーン起動時に netmasks の警告が表示される

「ゾーンの起動方法」の説明に従ってゾーンを起動する際、次のメッセージが表示されることがあります。


# zoneadm -z my-zone boot
zoneadm: zone 'my-zone': WARNING: hme0:1: no matching subnet
	found in netmasks(4) for 192.168.0.1; using default of
	255.255.255.0.

このメッセージは単なる警告であり、コマンドは成功しています。このメッセージは、ゾーン構成で指定された IP アドレス用のネットマスク をシステムが検出できなかったことを示します。

以降の再起動でこの警告が表示されないようにするには、大域ゾーン内の /etc/nsswitch.conf ファイルに適切な netmasks データベースが記載されていること、およびこれらのデータベースの 1 つ以上にゾーン my-zone で使用されるサブネットおよびネットマスクが含まれることを確認します。

たとえば、大域ゾーン内のネットマスクの解決に /etc/inet/netmasks ファイルおよびローカルの NIS データベースが使用される場合、/etc/nsswitch.conf 内の適切なエントリは次のようになります。

netmasks: files nis

その後、ゾーン my-zone のサブネットおよび対応するネットマスク情報を /etc/inet/netmasks に追加して、これを使用可能にします。

netmasks コマンドの詳細は、netmasks(4) のマニュアルページを参照してください。

zoneadm 接続操作の問題解決

Procedureパッチおよびパッケージが同期しない

ターゲットシステムでは、元のホストにインストールされているものと同じバージョンの、次の必須オペレーティングシステムパッケージおよびパッチが実行されている必要があります。

  1. パッケージおよびパッチが移行元ホストと新規ホスト間で異なる場合、次のようなメッセージが表示されることがあります。


    host2# zoneadm -z my-zone attach
    	These packages installed on the source system are inconsistent with this system:
                SUNWgnome-libs (2.6.0,REV=101.0.3.2005.12.06.20.27) version mismatch
                        (2.6.0,REV=101.0.3.2005.12.19.21.22)
                SUNWudaplr (11.11,REV=2005.12.13.01.06) version mismatch
                        (11.11,REV=2006.01.03.00.45)
                SUNWradpu320 (11.10.0,REV=2005.01.21.16.34) is not installed
                SUNWaudf (11.11,REV=2005.12.13.01.06) version mismatch
                        (11.11,REV=2006.01.03.00.45)
                NCRos86r (11.10.0,REV=2005.01.17.23.31) is not installed
    	These packages installed on this system were not installed on the source system:
                SUNWukspfw (11.11,REV=2006.01.03.00.45) was not installed
                SUNWsmcmd (1.0,REV=2005.12.14.01.53) was not installed
    	These patches installed on the source system are inconsistent with this system:
                120081 is not installed
                118844 is not installed
                118344 is not installed
    	These patches installed on this system were not installed on the source system:
                118669 was not installed
                118668 was not installed
                116299 was not installed
  2. ゾーンの移行を成功させるには、次のいずれかの方法を使用します。

Procedureオペレーティングシステムのリリースが一致しない

ゾーンの移行を成功させるには、移行元ホストで稼働しているものと同じ Solaris リリースを、同じアーキテクチャーを持つシステムにインストールします。

  1. 移行元システムで稼働している Solaris のリリースを確認します。


    host1# uname -a
    
  2. 新規ホストに同じリリースをインストールします。

    docs.sun.com にある Solaris インストールマニュアルを参照してください。

Procedureマシンアーキテクチャーが一致しない

ゾーンの移行を成功させるには、zoneadm attach-u オプションを使用します。

  1. 両方のシステムのシステムアーキテクチャーを確認します。


    host1# uname -a
    
  2. アーキテクチャーが異なっている場合は、zoneadm attach-u オプションを使用して接続を実行します。


    host2# zoneadm -z my-zone attach -u
    

    詳細は、「非大域ゾーンを移行する方法」を参照してください。

lofs タイプで定義された fs 資源を持つゾーンを Solaris 10 11/06 リリースにアップグレードできない


注 –

この問題は Solaris 10 8/07 リリースで修正されています。


lofs fs 資源で構成されたすべての非大域ゾーンが miniroot 内に存在するディレクトリをマウントしている場合、標準のアップグレードを使用して、以前の Solaris 10 リリースから Solaris 10 11/06 リリースにシステムをアップグレードできます。たとえば、lofs でマウントされた /opt ディレクトリは、問題なくアップグレードできます。

ただし、いずれかの非大域ゾーンが非標準の lofs マウントで構成されている場合 (たとえば、/usr/local ディレクトリが lofs でマウントされている場合)、次のエラーメッセージが表示されます。


The zones upgrade failed and the system needs to be restored
from backup.  More details can be found in the file
/var/sadm/install_data/upgrade_log on the upgrade root file
system.

このエラーメッセージには、システムをバックアップから復元する必要があると表示されていますが、システムは実際には正常であり、次の回避方法を使用すれば問題なくアップグレードできます。

  1. インストールされている OS でシステムをリブートします。

  2. ゾーンを再構成し、lofs タイプで定義された fs 資源を削除します。

  3. これらの資源を削除したあとで、システムを Solaris 10 11/06 にアップグレードします。

  4. アップグレード後にゾーンを再構成して、削除した fs 資源を復元できます。