この章では、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 コマンドを使用すると、次の作業を実行できます。
ゾーンを検証します
ゾーンをインストールします
ゾーンを起動します。これは、通常の Solaris システムの起動に似ています。
稼働中のゾーンに関する情報を表示します
ゾーンを停止します
ゾーンを再起動します
ゾーンをアンインストールします
同じシステム上で、ゾーンを別の場所へ再配置します
同一システムの既存ゾーンの構成に基づいて、新しいゾーンをプロビジョニングします
ゾーンを移行します。zonecfg コマンドとともに使用します
ゾーンのインストールおよび検証手順については、第 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) のマニュアルページを参照してください。
ゾーンのインストール時に、次の場所からデータが参照またはコピーされます。
インストールされていないパッケージ
パッチ
CD および DVD 内のデータ
ネットワークインストールイメージ
ゾーンの任意のプロトタイプまたはほかのインスタンス
また、次のタイプの情報が大域ゾーンに存在する場合、これらの情報はインストール中のゾーンにはコピーされません。
/etc/passwd ファイル内の新規または変更されたユーザー
/etc/group ファイル内の新規または変更されたグループ
DHCP アドレスの割り当て、UUCP、sendmail などのネットワークサービスの構成
ネームサービスなどのネットワークサービスの構成
新規または変更された crontab、プリンタ、およびメールファイル
システムログ、メッセージ、およびアカウンティングファイル
Solaris 監査を使用する場合、大域ゾーンからコピーされた監査ファイルの変更が必要な場合があります。詳細は、「ゾーン内での Solaris 監査の使用」を参照してください。
非大域ゾーン内では、次の機能を構成することはできません。
Solaris Live Upgrade の起動環境
Solaris ボリュームマネージャーのメタデバイス
共有 IP ゾーンでの DHCP アドレスの割り当て
SSL プロキシサーバー
ゾーンの状態がインストール済みから準備完了に移行する際、構成ファイルで指定された資源セットが追加されます。システムにより、一意のゾーン ID が割り当てられます。ファイルシステムがマウントされ、ネットワークインタフェースが設定され、デバイスが構成されます。準備完了状態に移行すると、仮想プラットフォームでユーザープロセスを開始する準備が整います。準備完了状態では、仮想プラットフォームを管理するため、zsched および zoneadmd プロセスが開始されます。
sched に類似したシステムスケジューリングプロセスである zsched が、ゾーンに関連付けられたカーネル資源の追跡に使用されます。
zoneadmd は、ゾーン管理デーモンです。
準備完了状態のゾーンには、稼働中のユーザープロセスは存在しません。準備完了状態のゾーンと稼働中のゾーンの主な違いは、稼働中のゾーンでは 1 つ以上のプロセスが稼働している点です。詳細は、init(1M) のマニュアルページを参照してください。
ゾーン管理デーモン zoneadmd は、ゾーンの仮想プラットフォーム管理用の主要なプロセスです。このデーモンは、ゾーンの起動および停止処理の管理も担当します。システム上のアクティブな (準備完了、稼働中、または停止処理中の) ゾーンごとに、1 つの zoneadmd プロセスが存在します。
zoneadmd デーモンは、ゾーン構成での指定に従ってゾーンを設定します。このプロセスには、次の処理が含まれます。
ゾーン ID を割り当てて、zsched システムプロセスを開始する。
ゾーン規模の資源制御を設定する。
ゾーン構成の指定に従ってゾーンのデバイスを準備する。詳細は、devfsadmd(1M) のマニュアルページを参照してください。
仮想ネットワークインタフェースを設定する。
ループバックおよび従来のファイルシステムをマウントする。
ゾーンコンソールデバイスをインスタンス化および初期化する。
zoneadmd デーモンが実行中でない場合、zoneadm によりこのデーモンが自動的に起動されます。このため、何らかの理由でこのデーモンが動作していない場合、zoneadm を呼び出してそのゾーンを管理すると zoneadmd を再起動します。
zoneadmd デーモンのマニュアルページは、zoneadmd(1M) です。
アクティブなゾーンとは、準備完了状態、稼働状態、または停止処理状態のゾーンを指します。すべてのアクティブなゾーンには、カーネルプロセス zsched が関連付けられています。ゾーンのために処理を実行するカーネルスレッドは、zsched により所有されています。zsched プロセスにより、ゾーンサブシステムがカーネルスレッドをゾーンごとに追跡することが可能になります。
ゾーンアプリケーション環境の作成には、zoneadm コマンドが使用されます。
非大域ゾーンを最初に起動する前に、ゾーンの内部構成を作成する必要があります。内部構成では、使用するネームサービス、デフォルトのロケールおよびタイムゾーン、ゾーンのルートパスワード、およびほかのアプリケーション環境特性を指定します。アプリケーション環境は、ゾーンコンソールに表示される一連のプロンプトへの応答で確立されます。詳細は、「ゾーンの内部構成」を参照してください。ゾーンのデフォルトロケールおよびタイムゾーンは、大域設定には関係なく構成できます。
ここでは、ゾーンの停止、再起動、およびアンインストール手順の概要について説明します。要求があった際にゾーンの停止に失敗した場合の障害対処に関するヒントも提供します。
ゾーンのアプリケーション環境および仮想プラットフォームの両方を削除する場合に、zoneadm halt コマンドを使用します。これにより、ゾーンはインストール済みの状態に戻されます。すべてのプロセスが終了し、デバイスが構成解除され、ネットワークインタフェースが破棄され、ファイルシステムのマウントが解除され、カーネルデータ構造が破棄されます。
halt コマンドにより、ゾーン内部の停止処理スクリプトが実行されることはありません。ゾーンの停止処理を行う方法については、「zlogin を使用してゾーンを停止処理する方法」を参照してください。
停止操作に失敗する場合は、「ゾーンが停止しない」を参照してください。
zoneadm reboot コマンドを使用してゾーンを再起動します。ゾーンは停止し、その後再起動します。ゾーンの再起動時に、ゾーン ID が変更されます。
ゾーンでは、次のブート引数を zoneadm boot および reboot コマンドに使用できます。
-i altinit
-m smf_options
-s
次の定義が適用されます。
最初のプロセスとなる代替実行可能ファイルを選択します。altinit は実行可能ファイルへの有効なパスでなければなりません。デフォルトの最初のプロセスについては、init(1M) のマニュアルページを参照してください。
SMF のブート動作を制御します。復元オプションとメッセージオプションという、2 種類のオプションがあります。メッセージオプションは、ブート中に表示されるメッセージの種類と数を決定します。サービスオプションは、システムのブートに使用されるサービスを決定します。
復元オプションは次のとおりです。
標準のサービス別出力と、ログに記録されるすべての svc.startd メッセージを出力します。
指定されたマイルストンで定義されているサブグラフに起動します。有効なマイルストンは、none、single-user、multi-user、multi-user-server、および all です。
メッセージオプションは次のとおりです。
標準のサービス別出力と、管理者の介入を必要とするエラーメッセージを出力します。
標準のサービス別出力と、詳細情報を提供するメッセージを出力します。
マイルストン svc:/milestone/single-user:default に対してのみ起動します。このマイルストンは、init のレベル s と同等です。
使用例については、「ゾーンの起動方法」および 「ゾーンをシングルユーザーモードで起動する方法」を参照してください。
Solaris サービス管理機能 (SMF) と init については、『Solaris のシステム管理 (基本編)』の第 18 章「サービスの管理 (概要)」、および svc.startd(1M) と init(1M) のマニュアルページを参照してください。
ゾーンの構成内で autoboot 資源プロパティーを true に設定すると、大域ゾーンの起動時にそのゾーンが自動的に起動します。デフォルトの設定は false です。
ゾーンを自動的に起動するには、ゾーンサービス svc:/system/zones:default も有効になっている必要があります。
ゾーンのルートファイルシステム内のすべてのファイルをアンインストールする場合に、zoneadm uninstall コマンドを使用します。-F (force) オプションを合わせて指定しない限り、処理を続行する前に、コマンドプロンプトにより実行の確認が求められます。実行した操作を元に戻すことはできないため、uninstall コマンドは慎重に使用してください。
クローンを使用すると、システムの既存の構成済みおよびインストール済みゾーンをコピーして、新しいゾーンを同一のシステム上に迅速にプロビジョニングできます。少なくとも、複数のゾーンで同一であってはならないコンポーネントに対しては、プロパティーと資源をリセットする必要があります。したがって、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: 同一システム上での非大域ゾーンの複製」を参照してください。