Sun N1 Service Provisioning System ユーザーズガイドおよびリリースノート(Solaris Plug-In 3.0)

第 6 章 ゾーンの配備における Solaris プラグインの使用法

この章では、Solaris プラグインが提供される Solaris 10 ゾーン固有のコンポーネントおよびプランを使用する方法について説明します。内容は次のとおりです。

ゾーンのパーティション分割の紹介

Solaris ゾーンのパーティション分割技術は、オペレーティングシステムのサービスを仮想化し、分離およびセキュリティー保護された環境でアプリケーションの実行を可能にするために使われます。ゾーン とは、Solaris オペレーティングシステム (OS) の単独インスタンス内で作成される、仮想化されたオペレーティングシステム環境です。ゾーンを作成することで生まれるアプリケーション実行環境では、システムのほかの部分からプロセスが分離されます。この分離を行うことで、1 つのゾーン内で稼動しているプロセスがほかのゾーンで稼動しているプロセスを監視したりそれらのプロセスに影響を及ぼしたりすることが防止されます。スーパーユーザーの資格で実行されるプロセスでも、ほかのゾーンでの活動を見たり、影響を与えたりすることはできません。

ゾーンは、Solaris 10 OS を実行しているコンピュータであれば、どれでも使用できます。すべてのゾーンで実行されるアプリケーションソフトウェアの合計リソース要件は、1 つのシステムでいくつのゾーンを効果的にホストできるかを決定します。Solaris ゾーンに関する詳細については、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』のパート II「ゾーン」を参照してください。

Solaris ゾーンの作成と管理

ソフトウェアの「Common Tasks」ページでは、Solaris 10 ゾーンの作成と管理を行えます。

Procedureグローバルゾーンとしてホストを定義する

グローバルゾーンとは、個々のゾーンが定義されるホストを指します。ローカルゾーンを作成する前に、ホストセット com.sun.solaris#global_zones に少なくとも 1 つのホストを定義する必要があります。このタスクは、ホストをグローバルゾーンとして定義する方法を説明します。

手順
  1. コントロールパネルの左側、「Hosts Setup」セクションの下にある「Hosts」をクリックします。

  2. グローバルゾーン (コンテナ) として作成するホストの名前を「Name」フィールドに入力し、「Create」をクリックします。

  3. ホストタイプのメニューから com.sun.solaris#global_zone を選択します。

  4. 必要に応じて属性の値を変更します。

    たとえば、接続タイプを RAW (デフォルト) から SSH や SSL に変更できます。


    注 –

    ローカルゾーン接続に SSH を使用するには、ポートを 70000 に設定する必要があります。


  5. 物理ホストにリモートエージェントまたはローカルディストリビューターを組み込むには、適切なチェックボックスをクリックします。

ProcedureSolaris ローカルゾーンを作成する

手順
  1. 左側のコントロールパネルの「Common Tasks」から、「Sun Solaris」アイコンをクリックします。

  2. 「Solaris Containers: Create and Manage」リンクをクリックします。

  3. 「Create: Install」の横にある「Run action」をクリックします。

  4. ローカルゾーンを作成するターゲットホストを選択します。


    注 –

    ターゲットホストは、com.sun.solaris#global_zones ホストセットのメンバーでなければなりません。


  5. 「Plan Variables」設定から、ローカルゾーンのホスト名を選択します。

    目的のローカルゾーン名がない場合は、新しいゾーン名を作成します。新しいゾーン名を作成するには、次の手順を実行します。

    1. プランの変数設定テーブルから「Select From List」をクリックします。

    2. 「Variable Setting」ウィンドウから「Create Set」をクリックします。

    3. 「New Set Name」フィールドで、新しいゾーンセット名を入力します。

    4. 「Zone Name」プロンプトの横にあるボックスをクリックし、新しいゾーン名を入力します。


      注 –

      ローカルゾーンの作成時は、ゾーン名はネットワークのゾーンホスト名になります。ゾーンホスト名は、一致する利用可能なローカルネットワーク IP アドレスを解決します。


    5. ローカルゾーンファイルシステムをスパースまたはフルのどちらにするかを決定します。

      スパースローカルゾーンファイルシステムは、/lib/sbin/platform、および /usr ディレクトリをグローバルゾーンと共有します。これらのディレクトリの 1 つにファイルをインストールする必要があるアプリケーションをローカルゾーンが実行する場合は、フルファイルシステムを使用してローカルゾーンをインストールしてください。フルローカルゾーンファイルシステムは、ディレクトリをグローバルゾーンと共有しません。


      注 –

      デフォルトの設定では、プロビジョニングシステムはローカルゾーンファイルシステムをスパースとしてインストールします。フルローカルゾーンファイルシステムをインストールする場合は、デフォルトを無効にしてください。


  6. 「Run Plan (includes preflight)」をクリックします。

Solaris ゾーンの操作における CLI の使用法

デフォルトでは、N1 Service Provisioning System のコマンド行インタフェースは次のディレクトリに格納されています。/opt/SUNWn1sps/N1_Grid_Service_Provisioning_system_5.0/cli/bin/cr_cli

Container プロシージャーを実行する Solaris ゾーンのプラグインプランは、/com/sun/solaris/zones フォルダに格納されています。


例 6–1 CLI の使用による Solaris ゾーンの作成

この例では、N1 Service Provisioning System のコマンド行インタフェースを使用して Solaris ゾーンを作成する方法を示します。この例には、3 つのコマンドセグメントが含まれます。すべてのコマンドでは、例としてユーザー名 spsadmin、パスワード x1y2z3 を使用します。

1 つめのコマンドは、server10 のグローバルゾーンにホストを作成し、local_zone_default_name local_zone_connection_type、および local_zone_port 変数にデフォルト値を定義します。


% cr_cli -cmd hdb.h.mod                     host modify
    -ID "NM:server10"                       target global host
    -tID "NM:com.sun.solaris#global_zone"   host type
    -attr "local_zone_default_name=server10_z1; 
     local_zone_default_filesystem=FULL; 
     local_zone_connection_type=RAW; 
     local_zone_port=1131"                  local zone attributes
    -u spsadmin                             user name
    -p x1y2z3                               password

2 つめのコマンドは、デフォルト変数を使用してローカルゾーンを作成します。


% cr_cli -cmd pe.p.run                      plan execution
    -PID "NM:/com/sun/solaris/Container-create" 	create zone plan ID
    -tar "H:NM:server10"                    target global host
    -vs "+"                                 default var set "default set"
    -comp "+"                               default component "latest build"
    -pto 6000                               plan time 1 hr max [6000 secs]
    -nto 6000                               call time 1 hr max [6000 secs]
    -u spsadmin                             user name
    -p x1y2z3                               user password

3 つめのコマンドは、ローカルゾーンを有効にします。


% echo "server10_z1" | cr_cli -cmd pe.p.run plan execution, std input is zone name
    -PID "NM:/com/sun/solaris/Container-activate" attach zone plan ID
    -tar "H:NM:server10"                    target global host
    -f "-"                                  standard input args
    -pto 6000                               plan time 1 hr max [6000 secs]
    -nto 6000                               call time 1 hr max [6000 secs]
    -u spsadmin                             user name
    -p x1y2z3                               user password

Solaris ゾーンのコンポーネントタイプ

Solaris コンテナ には、特定のコンポーネントタイプはありません。ただし、Solaris コンテナ に関連付けられているホストタイプはあります。詳細については、「ホストと Solaris ゾーン」を参照してください。

Solaris ゾーンのコンテナコンポーネント

コンテナコンポーネントは、Solaris ゾーンで使用するために、Solaris プラグインが提供する主なコンポーネントです。コンテナコンポーネントは、入力されないコンポーネントです。

Container コンポーネントには、いくつかのプロシージャーが含まれます。これらのプロシージャーは、N1 Service Provisioning System インタフェースから直接実行するか、実行プラン内から実行します。

コンポーネントプロシージャー

create:install

Container コンポーネントの作成により、対応する Solaris 10 ゾーンが作成されます。このプロシージャーのホストターゲットは、プロビジョニングシステム リモートエージェントを実行する Solaris 10 ホストです。ターゲットホストタイプは、com.sun.solaris#global_zone に設定する必要があります。作成プロシージャーでは、Solaris 10 の zonecfg および zoneadm コマンドを使用し、Solaris 10 グローバルゾーンからローカル Solaris 10 ゾーンの構成とインストールを行います。インストールが完了すると、このプロシージャーは新しく作成されたローカルゾーンにリモートエージェントをインストールします。タイプが com.sun.solaris#local_zone の新規ホストがホストページに表示されます。

attach:install

このプロシージャーは作成プロシージャーに似ていますが、ゾーンは作成しません。その代わりに、このプロシージャーは既存のローカルゾーンをホストに接続します。このプロシージャーは プロビジョニングシステム データベースにコンテナコンポーネントを作成し、既存のローカルゾーンにリモートエージェントをインストールします。接続プロシージャーは、N1 Service Provisioning System 以外のツールによってゾーンが作成された場合に便利です。たとえば、ゾーンが Solaris API を通じて直接作成された場合や、ほかのソフトウェア管理アプリケーションによって作成された場合に、接続プロシージャーを使用します。

markOnly:install

markOnly:install プロシージャーは、プロビジョニングシステムのデータベースに Solaris ゾーンコンテナコンポーネントを追加します。markOnly:install プロシージャーは、ローカルゾーンを作成しません。markOnly: install プロシージャーは、リモートエージェントをインストールしません。

delete:uninstall

削除プロシージャーでは Solaris 10 の zonecfg および zoneadm コマンドを使用し、グローバルゾーンのホストから指定の Solaris 10 ローカルゾーンを削除します。また、対応するコンテナコンポーネントを プロビジョニングシステム データベースから削除します。

detach:uninstall

切り離しプロシージャーは、削除プロシージャーに似ています。このプロシージャーは、プロビジョニングシステム データベースからコンテナコンポーネントを削除し、リモートエージェントをアンインストールします。ただし、グローバルゾーンのホストからローカルゾーンは削除しません。ローカルゾーンが起動されている場合は、起動された状態が保持されます。ローカルゾーンが停止している場合は、停止した状態が保持されます。

markOnly:uninstall

markOnly:uninstall プロシージャーは、プロビジョニングシステムのデータベースから Solaris ゾーンコンテナコンポーネントを削除します。markOnly:uninstall プロシージャーは、ローカルゾーンを削除しません。markOnly:uninstall プロシージャーは、リモートエージェントをアンインストールしません。

activate

このプロシージャーは、ローカルゾーンを起動します。ターゲットの Solaris 10 ホストで、インストール済みの Container コンポーネントのリストからゾーンを選択します。このプロシージャーでは、zoneadm -z zonename boot コマンドを使用します。また、準備されていないホストに対しては、プロビジョニングシステム のホスト準備機能を起動します。

deactivate

このプロシージャーは、ローカルゾーンを停止します。ターゲットの Solaris 10 ホストで、インストール済みの Container コンポーネントのリストからゾーンを選択します。このプロシージャーでは、zoneadm -z zonename halt コマンドを使用します。

Solaris ゾーンプラン

Container コンポーネントについて解説したプロシージャーのそれぞれに対し、/com/sun/solaris plan フォルダに関連プランが格納されています。これらのプランは、例 6–1 で示すように、コマンド行のシェルコールで使用する際に便利です。

ホストと Solaris ゾーン

Solaris プラグインには、Solaris 10 ゾーン用の特定のホストセット、ホスト検索、および 2 つのホストタイプがあります。

Solaris ゾーンの障害追跡

プロビジョニングシステム を通じて Solaris ゾーンを管理するときに問題が発生すると、問題があることを示すメッセージが画面に表示されることがあります。

たとえば、グローバルゾーンであると認識されていないターゲットホストに対し、ローカルゾーンを作成しようとすると、次のようなメッセージが表示されます。


Problems encountered during plan run or preflight

The plan (or preflight) "/system/autogen/Container-inst-create-1098225529078" 
finished with 1 failed host(s).

The specified target host "masterserver" was not in the required host set 
"com.sun.solaris#global_zones" for component "/com/sun/solaris/Container".

この例のメッセージは明確に表示されていますが、すべてのメッセージが必ずしもこのメッセージのようにわかりやすいわけではありません。特定の問題に関する詳細については、「Details」リンクをクリックしてください。