Sun Cluster Data Service for Solaris Containers ガイド

Sun Cluster HA for Solaris Containers のインストールと構成

この章では、Sun Cluster HA for Solaris Containers のインストールと構成の方法について説明します。

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

Sun Cluster HA for Solaris Containers の概要

Solaris コンテナは、完全なアプリケーション実行環境です。Solaris 10 リソースマネージャーと Solaris ゾーンソフトウェア区分技術は、どちらもこのコンテナの一部です。これらの構成要素は、コンテナのさまざまな機能にかかわり、連携して完全なコンテナを作り上げます。コンテナのゾーンに関連する部分は、プラットフォームの資源にアプリケーションを仮想的に割り当てます。ゾーンを使用すると、ゾーンが Solaris オペレーティングシステムの単一インスタンスを共有している場合であっても、1 つのアプリケーションから、複数のアプリケーションコンポーネントを分離できます。資源管理機能では、作業負荷に与える資源の量を割り当てることができます。

Solaris オペレーティングシステムの Solaris ゾーン機能は、システム上でアプリケーションを実行するための、独立した安全な環境を提供します。ゾーンを作成すると、そのアプリケーション実行環境で実行されるプロセスは、システムのほかの部分から隔離されます。

この分離を行うことで、1 つのゾーン内で稼動しているプロセスがほかのゾーンで稼動しているプロセスを監視したりそれらのプロセスに影響を及ぼしたりすることが防止されます。スーパーユーザー資格で実行中であるプロセスであっても、ほかのゾーンの動作を表示したり、動作に影響を与えることはできません。また、ゾーンにより、アプリケーションを配備するマシンの物理的属性からアプリケーションを分離する抽象層も提供されます。このような属性の例として、物理デバイスパスがあります。

あらゆる Solaris システムには大域ゾーンが含まれます。大域ゾーンは 2 つの機能を持っています。大域ゾーンは、システムのデフォルトのゾーンであり、システム全体の管理に使用されるゾーンでもあります。非大域ゾーンはゾーンと呼ばれ、広域管理者により作成されます。

Sun Cluster HA for Solaris Containers を使用すると、次の操作を実行するコンポーネントを提供することにより、Sun Cluster で Solaris ゾーン を管理できます。

Sun Cluster HA for Solaris Containers は、フェイルオーバーサービスとしても、マルチマスターサービスとしても構成できます。Sun Cluster HA for Solaris Containers をスケーラブルサービスとして構成することはできません。

Solaris Zone が Sun Cluster HA for Solaris Containers データサービスにより管理される場合、Sun Cluster ノード全体で、Solaris Zone はフェイルオーバー Solaris Zone、またはマルチマスター Solaris Zone になります。フェイルオーバーは、大域ゾーン内でのみ実行される Sun Cluster HA for Solaris Containers データサービスにより管理されます。

フェイルオーバーデータサービス、マルチマスターデータサービス、およびスケーラブルデータサービスの概念については、『Sun Cluster の概念 (Solaris OS 版)』を参照してください。

Sun Cluster HA for Solaris Containers のインストールおよび構成の概要

次の表は、Sun Cluster HA for Solaris Containers のインストールや構成に関する作業の要約と、それらの作業の実施に必要な詳しい説明がどこにあるかを示しています。これらの作業は、表に示す順序で行う必要があります。

表 1 Sun Cluster HA for Solaris Containers のインストールと構成に関する作業

作業 

参照先 

インストールの計画 

「Sun Cluster HA for Solaris Containers のインストールと構成に関する計画」

Solaris ゾーン のインストールと構成 

「ゾーンのインストールと構成」

インストールと構成の確認 

「ゾーンのインストールと構成を確認する」

Sun Cluster HA for Solaris Containers パッケージのインストール 

「Sun Cluster HA for Solaris Containers パッケージのインストール」

Sun Cluster HA for Solaris Containers コンポーネントの登録と構成 

「Sun Cluster HA for Solaris Containers の登録と構成」

Sun Cluster HA for Solaris Containers のインストールと構成の確認 

「Sun Cluster HA for Solaris Containers と構成の確認」

Sun Cluster HA for Solaris Containers 障害モニターの調整 

「Sun Cluster HA for Solaris Containers 障害モニターの調整」

Sun Cluster HA for Solaris Containers のデバッグ 

「Sun Cluster HA for Solaris Containers のデバッグ」

Sun Cluster HA for Solaris Containers のインストールと構成に関する計画

ここでは、Sun Cluster HA for Solaris Containers のインストールと構成の計画について説明します。

構成に関する制限事項

以降の項で説明する構成の制限は Sun Cluster HA for Solaris Containers だけに適用されます。


注意 – 注意 –

これらの制限事項を守らないと、データサービスの構成がサポートされない場合があります。


ゾーンネットワークアドレスに関する制限事項

ゾーンのネットワークアドレスの構成は、必要な高可用性のレベルによって決まります。HA なし、IPMP を使用した HA、および IPMP と SUNW.LogicalHostName を使用した HA から選択できます。

ゾーンのネットワークアドレス構成の選択は、ゾーンブートリソースの一部の構成パラメータに影響します。詳細は、「Sun Cluster HA for Solaris Containers の登録と構成」を参照してください。

フェイルオーバーゾーンに関する制限事項

フェイルオーバー構成のゾーンのゾーンパスは、高可用性ローカルファイルシステム上に存在する必要があります。ゾーンは、ゾーンが存在可能な各クラスタノード上で構成する必要があります。

ゾーンは一度に 1 つのノード上でのみアクティブになり、ゾーンのアドレスは一度に 1 つのみ plumb されます。ゾーンがクラスタ内のどの場所に存在するかに関係なく、アプリケーションクライアントはゾーンのアドレスを介してゾーンに到達できます。

マルチマスターゾーンに関する制限事項

マルチマスター構成のゾーンのゾーンパスは、各ノードのローカルディスク上に存在する必要があります。ゾーンは、ゾーンのマスターとなることができる各ノード上で、同じ名前を使用して構成する必要があります。

マルチマスター構成内で動作するよう構成されている各ゾーンにも、ゾーン固有のアドレスが必要です。このような構成におけるアプリケーションの負荷均衡は、通常、外部にあるロードバランサにより実現されます。このロードバランサは、各ゾーンのアドレスに対して構成する必要があります。アプリケーションクライアントは、ロードバランサのアドレスを介してゾーンに到達できます。

ゾーンのゾーンパスに関する制限事項

Sun Cluster HA for Solaris Containers が管理するゾーンのゾーンパスは、広域ファイルシステム上に存在することができません。

/etc/name_to_major のメジャーデバイス番号に関する制限事項

共有デバイスの場合、Sun Cluster では、メジャーデバイス番号とマイナーデバイス番号は、クラスタ内のすべてのノードで同一である必要があります。ゾーンにデバイスが必要である場合、ゾーンのホストとなるすべてのクラスタノード上で、メジャーデバイス番号が /etc/name_to_major 内で同じになるようにします。

構成に関する要件

ここで説明する構成の制約は Sun Cluster HA for Solaris Containers だけに適用されます。


注意 – 注意 –

これらの要件を満たしていないデータサービス構成は、サポートされない場合があります。


Sun Cluster HA for Solaris Containers コンポーネント間の依存関係

次の表に、Sun Cluster HA for Solaris Containers コンポーネント間の依存関係を示します。

表 2 Sun Cluster HA for Solaris Containers コンポーネント間の依存関係

コンポーネント 

依存関係 

ゾーンブートリソース 

SUNW.HAStoragePlus - フェイルオーバー構成では、ゾーンのゾーンパスは、SUNW.HAStoragePlus リソースにより管理される高可用性ファイルシステム上に存在する必要があります。

SUNW.LogicalHostName - この依存関係が必要であるのは、ゾーンのアドレスが SUNW.LogicalHostName リソースにより管理される場合のみです。

ゾーンスクリプトリソース 

ゾーンブートリソース 

ゾーン SMF リソース 

ゾーンブートリソース 

これらの依存関係は、Sun Cluster HA for Solaris Containers を登録および構成するときに設定されます。詳細は、「Sun Cluster HA for Solaris Containers の登録と構成」を参照してください。

ゾーンのスクリプトリソースと SMF リソースはオプションです。これらを使用すると、ゾーンのスクリプトリソースと SMF リソースの複数のインスタンスを、ゾーンブートリソースと同じリソースグループ内に配備できます。さらに、より複雑な依存関係が必要である場合は、r_properties(5) および rg_properties(5) のマニュアルページで、高度な依存関係とアフィニティーの設定を参照してください。

Sun Cluster HA for Solaris Containers のパラメータファイルディレクトリ

Sun Cluster HA for Solaris Containers のブートコンポーネントとスクリプトコンポーネントは、パラメータファイルでデータサービスに構成情報を渡す必要があります。これらのファイル用のディレクトリを作成する必要があります。ディレクトリ位置は、ゾーンのホストとなるノード上で使用できる必要があり、ゾーンのゾーンパス内に存在してはいけません。ディレクトリは、大域ゾーンからのみアクセス可能である必要があります。コンポーネントのリソースが登録された時点で、各コンポーネントのパラメータファイルは自動的に作成されます。

ゾーンのインストールと構成

Solaris ゾーン をインストールおよび構成するには、次の作業が必要です。

  1. 次の節で説明するように、選択したデータサービス構成でのゾーンの実行を有効にする。

  2. 次の節で説明するように、ゾーンをインストールおよび構成する。

インストールと構成を行うゾーンごとに、この作業を実行します。ここでは、Sun Cluster HA for Solaris Containers とともに使用するように Solaris ゾーン をインストールするための、特別な要件についてのみ説明します。Solaris ゾーン のインストールと構成の詳細については、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』を参照してください。

Procedureフェイルオーバー構成でのゾーンの実行を有効にする

手順
  1. SUNW.HAStoragePlus リソースタイプを登録します。


    # scrgadm -a -t SUNW.HAStoragePlus
    
  2. フェイルオーバーリソースグループを作成します。


    # scrgadm -a -g solaris-zone-resource-group
    
  3. ゾーンのディスク記憶装置に対応するリソースを作成します。


    # scrgadm -a -j solaris-zone-has-resource  \
    -g solaris-zone-resource-group   \
    -t SUNW.HAStoragePlus  \
    -x FilesystemMountPoints=solaris-zone-instance-mount-points
    
  4. (省略可能) ゾーンの論理ホスト名に対応するリソースを作成します。


    # scrgadm -a -L -j solaris-zone-logical-hostname-resource-name  \
    -g solaris-zone-resource-group  \
    -l solaris-zone-logical-hostname
    
  5. フェイルオーバーリソースグループを有効にします。


    # scswitch -Z -g  solaris-zone-resource-group
    

Procedureマルチマスター構成でのゾーンの実行を有効にする

手順
  1. スケーラブルリソースグループを作成します。


    # scrgadm -a -g solaris-zone-resource-group \
    -y Maximum_primaries=max-number \
    -y Desired_primaries=desired-number
    
  2. スケーラブルリソースグループを有効にします。


    # scswitch -Z -g  solaris-zone-resource-group
    

Procedureゾーンをインストールおよび構成する


注 –

ゾーンのインストールの詳細については、『Solaris のシステム管理 (Solaris コンテナ : 資源管理と Solaris ゾーン)』を参照してください。


始める前に

Sun Cluster を使用してゾーンを配備するための次の要件を決定します。

手順
  1. ゾーンをインストールします。


    注 –

    インストールするゾーンをフェイルオーバーゾーンにする場合、ゾーンのゾーンパスは高可用性ローカルファイルシステムを指定する必要があります。ファイルシステムは、手順 3 で作成した、SUNW.HAStoragePlus リソースにより管理する必要があります。


  2. ゾーンのコンソールにログインします。


    # zlogin -C zone
    

    ゾーンを構成するよう求めるプロンプトが表示されます。

  3. プロンプトに従ってゾーンを構成します。

    作成されたゾーンを構成したあと、/etc/zones/index ファイルには 1 つのエントリが存在します。

  4. ゾーンのコンソールから切断します。

    ゾーンに対して定義したエスケープシーケンスを使用します。エスケープシーケンスを定義していない場合は、次のデフォルトのエスケープシーケンスを使用します。


    # ~. 
    
  5. /etc/zones/index の内容を表示して、新しいゾーンのインデックスエントリを決定します。

    「フェイルオーバー構成でのゾーンの実行を有効にする」のための、新しいゾーンのインデックスエントリが必要です。


    # cat /etc/zones/index
    
  6. クラスタ内の全ノードでゾーンを使用できるようにします。

    各クラスタノードで次の手順を実行します。

    1. 各クラスタノードにログインします。

    2. データの損失を防ぐため、/etc/zones/index ファイルのバックアップコピーを作成します。


      # cd /etc/zones 
      # cp index index_backup 
      
    3. プレーンテキストエディタを使用して、ゾーンのエントリを、ノード上の /etc/zones/index ファイルに追加します。

    4. zone.xml ファイルを、ノード上の /etc/zones/index ディレクトリにコピーします。


      # rcp  zone-install-node:/etc/zones/zonexml . 
      

ゾーンのインストールと構成の確認

Sun Cluster HA for Solaris Containers パッケージをインストールする前に、ユーザーが作成したゾーンがクラスタ内で動作するよう正しく構成されていることを確認します。ただし、Sun Cluster HA for Solaris Containers データサービスはまだインストールされていないため、これによってゾーンが高可用性であることを確認できるわけではありません。

Procedureゾーンのインストールと構成を確認する

「ゾーンのインストールと構成」で作成したゾーンごとに、次の手順を実行します。

手順
  1. ゾーンを起動します。


    # zoneadm -z zone boot
    
  2. ゾーンにログインします。


    # zlogin -z zone
    
  3. ゾーンが svc:/milestone/multi-user-server:default マイルストンに到達したことを確認します。


    # svcs -a | grep milestone 
    online         Apr_10   svc:/milestone/network:default
    online         Apr_10   svc:/milestone/devices:default
    online         Apr_10   svc:/milestone/single-user:default
    online         Apr_10   svc:/milestone/sysconfig:default
    online         Apr_10   svc:/milestone/name-services:default
    online         Apr_10   svc:/milestone/multi-user:default
    online         Apr_10   svc:/milestone/multi-user-server:default
    online         Apr_10   svc:/system/cluster/cl-svc-cluster-milestone:default
  4. ゾーンを停止します。


    # zoneadm -z halt zone
    

Sun Cluster HA for Solaris Containers パッケージのインストール

Sun Cluster の初回のインストールで Sun Cluster HA for Solaris Containers パッケージをインストールしなかった場合は、ここで説明する作業を行なってパッケージをインストールしてください。この手順は、Sun Cluster HA for Solaris Containers パッケージをインストールする各クラスタノード上で個別に実行します。この手順を実行するには、Sun Cluster Agents CD-ROM が必要です。

複数のデータサービスを同時にインストールする場合は、『Sun Cluster ソフトウェアのインストール (Solaris OS 版)』「ソフトウェアのインストール」に記載されている手順を実行してください。

これらのパッケージは大域ゾーンにのみインストールしてください。パッケージをインストールしたあとで作成されたローカルゾーンにそれらのパッケージが転送されないようにするには、scinstall ユーティリティーを使用してパッケージをインストールしてください。

ProcedureSun Cluster HA for Solaris Containers パッケージをインストールする

この作業は、Sun Cluster HA for Solaris Containers を実行できるすべてのノードで行います。

手順
  1. Sun Cluster Agents CD-ROM を CD-ROM ドライブに挿入します。

  2. オプションは指定せずに、scinstall ユーティリティーを実行します。

    scinstall ユーティリティーにより、ほかの情報を入力するためのプロンプトが表示されます。

  3. メニューオプション「新しいデータサービスのサポートをこのクラスタノードに追加」を選択します。

    この手順で scinstall ユーティリティーが対話型モードで起動します。

  4. Sun Cluster Agents CD-ROM のパス名を指定します。

    このユーティリティーには、この CD は “data services cd” と表示されます。

  5. メニューオプション「q) 完了」を選択します。

  6. 「他のデータサービスも表示しますか ?」という質問に対して「yes」と入力します

    このユーティリティーには、この CD は “data services cd” と表示されます。

  7. インストールするデータサービスを指定します。

    選択したデータサービスが scinstall ユーティリティーによって示され、この選択内容の確認が求められます。

  8. scinstall ユーティリティーを終了します。

  9. CD-ROM ドライブから CD を取り出します。

Sun Cluster HA for Solaris Containers の登録と構成

この手順を行う前に、Sun Cluster HA for Solaris Containers データサービスパッケージがインストールされていることを確認してください。

次のディレクトリにある構成/登録ファイルを使用して、Sun Cluster HA for Solaris Containers リソースを登録します。

これらのファイルは、Sun Cluster HA for Solaris Containers コンポーネント間で必要な依存関係を定義します。これらの依存関係については、「Sun Cluster HA for Solaris Containers コンポーネント間の依存関係」を参照してください。

Sun Cluster HA for Solaris Containers の登録と構成には、次の節で説明する作業が含まれます。

  1. 「ゾーンブートリソース用の構成パラメータの指定」

  2. 「ゾーンスクリプトの記述」

  3. 「ゾーンスクリプトリソース用の構成パラメータの指定」

  4. 「SMF サービスプローブの記述」

  5. 「ゾーン SMF リソース用の構成パラメータの指定」

  6. 「ゾーンブートコンポーネントのリソースを作成して有効にする」

  7. 「ゾーンスクリプトコンポーネントのリソースを作成して有効にする」

  8. 「ゾーン SMF コンポーネントのリソースを作成して有効にする」

ゾーンブートリソース用の構成パラメータの指定

Sun Cluster HA for Solaris Containers には、ゾーンブートリソースの構成プロセスを自動化するスクリプトが用意されています。このスクリプトは、/opt/SUNWsczone/sczbt/util ディレクトリの sczbt_config ファイルから構成パラメータを取得します。ゾーンブートリソースに構成パラメータを指定するには、sczbt_config ファイルを編集します。

sczbt_config ファイル内の各構成パラメータは、キーワード値のペアとして定義されています。sczbt_config ファイルにはすでに、必要なキーワードと等号が含まれています。詳細は、sczbt_config の一覧表示」を参照してください。sczbt_config ファイルを編集する際には、必要な値を各キーワードに追加します。

sczbt_config ファイル内のキーワード値のペアは、次のようになります。

RS=sczbt-rs
RG=sczbt-rg
PARAMETERDIR=sczbt-parameter-directory
SC_NETWORK=true|false
SC_LH=sczbt-lh-rs
FAILOVER=true|false
HAS_RS=sczbt-has-rs
Zonename=zone-name
Zonebootopt=zone-boot-options
Milestone=zone-boot-milestone

sczbt_config ファイル内のキーワードの意味と使用できる値は、次のとおりです。

RS=sczbt-rs

ゾーンブートリソースに割り当てる名前を指定します。このキーワードには値を指定する必要があります。

RG=sczbt-rg

ゾーンブートリソースが存在するリソースグループの名前を指定します。このキーワードには値を指定する必要があります。

PARAMETERDIR=sczbt parameter directory

いくつかの変数とその値を格納するパラメータディレクトリに割り当てるディレクトリ名を指定します。このキーワードには値を指定する必要があります。

SC_NETWORK=true| false

ゾーンブートリソースが SUNW.LogicalHostName リソースに対してネットワーク対応であるかどうかを指定します。このキーワードには値を指定する必要があります。

  • ゾーンのアドレス用に HA が必要でない場合は、zonecfg ユーティリティーを使用してゾーンのアドレスを構成します。


    SC_NETWORK=false
    SC_LH=
  • IPMP 保護による HA が必要である場合は、zonecfg ユーティリティーを使用してゾーンのアドレスを構成してから、IPMP グループ内のアダプタ上にゾーンのアドレスを配置します。


    SC_NETWORK=false
    SC_LH=
  • IPMP 保護による HA とすべての物理インタフェースの障害に対する保護が必要である場合、次のリストから 1 つのオプションを選択します。

    • SUNW.LogicalHostName リソースタイプでゾーンのアドレスの 1 つまたはサブセットを管理する必要がある場合、これらのゾーンのアドレスの SUNW.LogicalHostName リソースを構成しますが、この際 zonecfg ユーティリティーは使用しません。zonecfg ユーティリティーを使用するのは、SUNW.LogicalHostName リソースタイプの制御下にしないゾーンのアドレスを構成する場合のみです。


      SC_NETWORK=true
      SC_LH=Name of the SUNW.LogicalHostName resource
      
    • SUNW.LogicalHostName リソースタイプですべてのゾーンのアドレスを管理する必要がある場合、ゾーンのアドレスのリストを使用して SUNW.LogicalHostName リソースを構成しますが、この際 zonecfg ユーティリティーは使用しません。


      SC_NETWORK=true
      SC_LH=Name of the SUNW.LogicalHostName resources
      
    • 上記以外の場合は、 zonecfg ユーティリティーを使用してゾーンのアドレスを構成し、SUNW.LogicalHostName リソースが使用する個別の冗長 IP アドレスを構成します。zonecfg ユーティリティーを使用してこのリソースを構成してはなりません。


      SC_NETWORK=false
      SC_LH=Name of the SUNW.LogicalHostName resource
      
SC_LH=sczbt-lh-rs

ゾーンブートリソースの SUNW.LogicalHostName リソースの名前を指定します。この変数をいつ設定するかについては、「ゾーンネットワークアドレスに関する制限事項」を参照してください。この名前は、手順 4 でリソースを作成した時点で割り当てた SUNW.LogicalHostname リソース名である必要があります。

FAILOVER=true| false

ゾーンのゾーンパスが高可用性ファイルシステム上にあるかどうかを指定します。

HAS_RS=sczbt-has-rs

ゾーンブートリソースの SUNW.HAStoragePlus リソースの名前を指定します。この名前は、「フェイルオーバー構成でのゾーンの実行を有効にする」でリソースを作成した時点で割り当てた SUNW.HAStoragePlus リソース名でなければなりません。FAILOVER=true が設定されている場合、このキーワードには値を指定する必要があります。

Zonename=zone-name

ゾーン名を指定します。このキーワードには値を指定する必要があります。

Zonebootopt=zone-boot-options

使用するゾーンブートオプションを指定します。サポートされているのは -s のみです。この変数を空白のままにしておくと、ゾーンは multi-user-server マイルストンに対してブートします。

Milestone=zone-boot-milestone

ブートに成功したとみなされるために、ゾーンが到達しなければならないマイルストンを指定します。このキーワードには値を指定する必要があります。


例 1 sczbt_config ファイルのサンプル

以下の例に、構成パラメータが次のように設定されている sczbt_config ファイルを示します。

RS=zone1-rs
RG=zone1-rg
PARAMETERDIR=/global/zones/pfiles
SC_NETWORK=true
SC_LH=zone1-lh
FAILOVER=true
HAS_RS=zone1-has
Zonename=zone1
Zonebootopt=
Milestone=multi-user-server

ゾーンスクリプトの記述

ゾーンスクリプトリソースには、コマンドやスクリプトを実行したり、ゾーン内でアプリケーションを起動、停止、および検証する機能があります。ゾーンスクリプトリソースはゾーンブートリソースに依存します。コマンド名またはスクリプト名は、リソースの登録時にゾーンスクリプトリソースに渡され、次の要件を満たす必要があります。

表 3 リターンコード

正常終了 

>0 

エラー発生 

201 

(検証のみ) — リソースグループをただちにフェイルオーバーする必要があるエラーが発生 

>0 & !=201 

(検証のみ) — リソースの再起動を必要とするエラーが発生 


注 –

ゾーンスクリプトリソースをただちにフェイルオーバーするには、必要な動作を満たすよう、リソースプロパティー Failover_mode および Failover_enabled を構成する必要があります。Failover_mode プロパティーを設定する場合は r_properties(5) のマニュアルページを参照し、Failover_enabled プロパティーを設定する場合は SUNW.gds(5) のマニュアルページを参照してください。



例 2 Apache2 用のゾーンプローブスクリプト

以下の例では、存在するプロセスツリーを超えて、Apache2 サービスが実行中であるかをテストする簡単なスクリプトを示します。スクリプト /var/tmp/probe-apache2 はゾーン内に存在する必要があります。

# cat /var/tmp/probe-apache2
#!/usr/bin/ksh
if "echo GET; exit" | mconnect -p 80
then
	exit 0
else
	exit 100
fi

ゾーンスクリプトリソース用の構成パラメータの指定

Sun Cluster HA for Solaris Containers には、ゾーンスクリプトリソースの構成プロセスを自動化するスクリプトが用意されています。このスクリプトは、/opt/SUNWsczone/sczsh/util ディレクトリの sczsh_config ファイルから構成パラメータを取得します。ゾーンスクリプトリソースに構成パラメータを指定するには、sczsh_config ファイルを編集します。

sczsh_config ファイル内の各構成パラメータは、キーワード値のペアとして定義されています。sczsh_config ファイルにはすでに、必要なキーワードと等号が含まれています。詳細は、sczsh_config の一覧表示」を参照してください。sczsh_config ファイルを編集する際には、必要な値を各キーワードに追加します。

sczsh_config ファイル内のキーワード値のペアは、次のようになります。

RS=sczsh-rs
RG=sczbt-rg
SCZBT_RS=sczbt-rs
PARAMETERDIR=sczsh-parameter-directory
Zonename=sczbt-zone-name
ServiceStartCommand=sczsh-start-command
ServiceStopCommand=sczsh-stop-command
ServiceProbeCommand=sczsh-probe-command

sczsh_config ファイル内のキーワードの意味と使用できる値は、次のとおりです。

RS=sczsh-rs

ゾーンスクリプトリソースに割り当てる名前を指定します。このキーワードには値を指定する必要があります。

RG=sczbt-rg

ゾーンブートリソースが存在するリソースグループの名前を指定します。このキーワードには値を指定する必要があります。

SCZBT_RS=sczbt-rs

ゾーンブートリソースの名前を指定します。このキーワードには値を指定する必要があります。

PARAMETERDIR=sczsh parameter directory

次の変数とその値を格納するパラメータディレクトリに割り当てるディレクトリ名を指定します。このキーワードには値を指定する必要があります。

Zonename=sczbt-zone-name

ゾーン名を指定します。このキーワードには値を指定する必要があります。

ServiceStartCommand=sczsh-start-command

実行するゾーン起動コマンドまたはスクリプトを指定します。このキーワードには値を指定する必要があります。

ServiceStopCommand=sczsh-stop-command

実行するゾーン停止コマンドまたはスクリプトを指定します。このキーワードには値を指定する必要があります。

ServiceProbeCommand=sczsh-probe-command

実行するゾーンプローブコマンドまたはスクリプトを指定します。このキーワードには値を指定する必要があります。


例 3 sczsh_config ファイルのサンプル

以下の例では、ゾーンスクリプトリソースは Solaris 10 で使用可能な Apache2 スクリプトを使用します。この例を使用する前には、Apache2 の構成ファイル http.conf を構成する必要があります。この例の目的のため、用意された http.conf-example を使用できます。ファイルを次のようにコピーします。


# zlogin zone1
# cd /etc/apache2
# cp http.conf-example http.conf
# exit

以下の例に、構成パラメータが次のように設定されている sczsh_config ファイルを示します。

RS="zone1-script-rs"
RG="zone1-rg"
SCZBT_RS="zone1-rs"
PARAMETERDIR="/global/zones/pfiles"
Zonename="zone1"
ServiceStartCommand="/lib/svc/method/http-apache2 start"
ServiceStopCommand="/lib/svc/method/http-apache2 stop"
ServiceProbeCommand="/var/tmp/probe-apache2"

SMF サービスプローブの記述

ゾーン SMF リソースは、ゾーン内の SMF サービスを有効、無効にしたり、検証する機能があります。ゾーン SMF リソースはゾーンブートリソースに依存します。SMF サービスの検証は、SMF サービスに対してコマンドまたはスクリプトを実行することによって行います。SMF サービス、およびプローブコマンドまたはスクリプトの名前は、リソースの登録時にゾーン SMF リソースに渡されます。プローブコマンドまたはスクリプトは、次の要件を満たす必要があります。

表 4 リターンコード

正常終了 

100 

リソースの再起動が必要なエラーが発生 

201 

リソースグループをただちにフェイルオーバーする必要があるエラーが発生 


注 –

ゾーン SMF リソースをただちにフェイルオーバーするには、必要な動作を満たすよう、リソースプロパティー Failover_mode および Failover_enabled を構成する必要があります。Failover_mode プロパティーを設定する場合は r_properties(5) のマニュアルページを参照し、Failover_enabled プロパティーを設定する場合は SUNW.gds(5) のマニュアルページを参照してください。



例 4 Apache2 用のゾーン SMF プローブスクリプト

以下の例では、存在するプロセスツリーを超えて、SMF Apache2 サービスが実行中であるかをテストする簡単なスクリプトを示します。スクリプト /var/tmp/probe-apache2 はゾーン内に存在する必要があります。

# cat /var/tmp/probe-apache2
#!/usr/bin/ksh
if "echo GET; exit" | mconnect -p 80
then
	exit 0
else
	exit 100
fi

ゾーン SMF リソース用の構成パラメータの指定

Sun Cluster HA for Solaris Containers には、ゾーン SMF リソースの構成プロセスを自動化するスクリプトが用意されています。このスクリプトは、/opt/SUNWsczone/sczsmf/util ディレクトリの sczsmf_config ファイルから構成パラメータを取得します。ゾーン SMF リソースに構成パラメータを指定するには、sczsmf_config ファイルを編集します。

sczmf_config ファイル内の各構成パラメータは、キーワード値のペアとして定義されています。sczsmf_config ファイルにはすでに、必要なキーワードと等号が含まれています。詳細は、sczsmf_config の一覧表示」を参照してください。sczsmf_config ファイルを編集する際には、必要な値を各キーワードに追加します。

sczsmf_config ファイル内のキーワード値のペアは、次のようになります。

RS=sczsmf-rs
RG=sczbt-rg
SCZBT_RS=sczbt-rs
ZONE=sczbt-zone-name
SERVICE=smf-service
RECURSIVE=true|false
STATE=true|false
SERVICE_PROBE=sczsmf-service-probe

sczsmf_config ファイル内のキーワードの意味と使用できる値は、次のとおりです。

RS=sczsmf-rs

ゾーン SMF リソースに割り当てる名前を指定します。定義する必要があります。

RG=sczbt-rg

ゾーンブートリソースが存在するリソースグループの名前を指定します。定義する必要があります。

SCZBT_RS=sczbt-rs

ゾーンブートリソースの名前を指定します。このキーワードには値を指定する必要があります。

ZONE=sczbt-zone-name

ゾーン名を指定します。定義する必要があります。

SERVICE=smf-service

有効/無効にする SMF サービスを指定します。定義する必要があります。

RECURSIVE=true| false

true を指定するとサービスを再帰的に有効にし、false を指定するとサービスを有効にするだけで、従属関係は生じません。定義する必要があります。

STATE=true| false

true を指定するとサービス状態に到達するまで待機し、false を指定すると待機しません。定義する必要があります。

SERVICE_PROBE=sczsmf-service-probe

SMF サービスをチェックするようスクリプトを指定します。


例 5 sczsmf_config ファイルのサンプル

以下の例では、ゾーン SMF リソースは Solaris 10 で使用可能な Apache2 SMF サービスを使用します。この例を使用する前には、Apache2 の構成ファイル http.conf を構成する必要があります。この例の目的のため、用意された http.conf-example を使用できます。ファイルを次のようにコピーします。


# zlogin zone1
# cd /etc/apache2
# cp http.conf-example http.conf
# exit

以下の例に、構成パラメータが次のように設定されている sczsmf_config ファイルを示します。

RS=zone1-smf-rs
RG=zone1-rg
SCZBT_RS=zone1-rs
ZONE=zone1
SERVICE=apache2
RECURSIVE=true
STATE=true
SERVICE_PROBE=/var/tmp/probe-apache2

Procedureゾーンブートコンポーネントのリソースを作成して有効にする

始める前に

sczbt_config ファイルを編集して、Sun Cluster HA for Solaris Containers ゾーンブートコンポーネント用の構成パラメータを指定します。詳細は、「ゾーンブートリソース用の構成パラメータの指定」を参照してください。

手順
  1. ゾーンのホストとなるクラスタノードの 1 つで、スーパーユーザーになります。

  2. SUNW.gds というリソースタイプを登録します。


    # scrgadm -a -t SUNW.gds
    
  3. Sun Cluster HA for Solaris Containers ブートリソースを作成するためのスクリプトが含まれるディレクトリに移動します。


    # cd /opt/SUNWsczone/sczbt/util
    
  4. ゾーンブートリソースを作成するスクリプトを実行します。


    # ./sczbt_register
    
  5. ゾーンブートリソースをオンラインにします。


    # scswitch -e -j sczbt-rs
    

Procedureゾーンスクリプトコンポーネントのリソースを作成して有効にする

始める前に

sczsh_config ファイルを編集して、Sun Cluster HA for Solaris Containers ゾーンスクリプトコンポーネント用の構成パラメータを指定します。詳細は、「ゾーンスクリプトリソース用の構成パラメータの指定」を参照してください。

手順
  1. Sun Cluster HA for Solaris Containers スクリプトリソースを作成するためのスクリプトが含まれるディレクトリに移動します。


    # cd /opt/SUNWsczone/sczsh/util
    
  2. ゾーンスクリプトリソースを作成するスクリプトを実行します。


    # ./sczsh_register
    
  3. ゾーンスクリプトリソースをオンラインにします。


    # scswitch -e -j sczsh-rs
    

Procedureゾーン SMF コンポーネントのリソースを作成して有効にする

始める前に

sczsmf_config ファイルを編集して、Sun Cluster HA for Solaris Containers ゾーン SMF コンポーネント用の構成パラメータを指定します。詳細は、「ゾーン SMF リソース用の構成パラメータの指定」を参照してください。

手順
  1. Sun Cluster HA for Solaris Containers SMF リソースを作成するためのスクリプトが含まれるディレクトリに移動します。


    # cd /opt/SUNWsczone/sczsmf/util
    
  2. ゾーン SMF リソースを作成するスクリプトを実行します。


    # ./sczsmf_register
    
  3. ゾーン SMF リソースをオンラインにします。


    # scswitch -e -j sczsmf-rs
    

Sun Cluster HA for Solaris Containers と構成の確認

Sun Cluster HA for Solaris Containers のインストール、登録、構成が終わったら、Sun Cluster HA for Solaris Containers のインストールと構成を確認します。Sun Cluster HA for Solaris Containers のインストールと構成を確認することで、Sun Cluster HA for Solaris Containers データサービスがゾーンの高可用性を実現しているかどうかがわかります。

ProcedureSun Cluster HA for Solaris Containers のインストールと構成を確認する

手順
  1. Solaris ゾーン コンポーネントのホストとなるクラスタノード上でスーパーユーザーになります。

  2. すべての Solaris Zone リソースがオンラインであることを確認します。

    リソースごとに、次の手順を実行します。

    1. リソースがオンラインであるかどうかを判別します。


      # scstat -g 
      
    2. リソースがオンラインでない場合は、リソースをオンラインにします。


      # scswitch -e -j solaris-zone-resource
      
  3. ゾーンリソースグループを別のクラスタノード (node2 など) に切り替えます。


    # scswitch -z -g solaris-zone-resource-group -h node2
    
  4. リソースが node2 でオンラインになっていることを確認します。


    # scstat -g 
    

大域ゾーンとローカルゾーンへのパッチ適用

以下の手順が必要であるのは、大域ゾーンとローカルゾーンの両方にパッチを適用する場合だけです。大域ゾーンのみにパッチを適用する場合は、『Sun Cluster のシステム管理 (Solaris OS 版)』の第 8 章「Sun Cluster ソフトウェアとファームウェアのパッチ」の手順に従ってください。

作業を始める前に、パッチ README ファイルを調べて、パッチが非リブートパッチとリブートパッチのどちらであるかを判別します。

Procedure非リブートパッチを大域ゾーンとローカルゾーンに適用する

非リブートパッチの場合、ノード上でパッチを適用したあとにノードをブートする必要はありません。稼働中のシステムにもパッチを適用できます。

手順
  1. 1 つのノードから、ゾーンリソースを含むリソースグループ内のすべてのリソースの監視を無効にします。


    # scswitch -n -M -j resource-list
    
  2. ゾーンがブートしない各ノードで、/etc/zones/index ファイルのゾーンのエントリをコメントアウトします。

    エントリをコメントアウトするには、エントリを含む行の先頭に # 文字を追加します。

  3. ゾーンが構成されているすべてのノードでパッチを適用します。

  4. 手順 2 で編集した各エントリからコメントを削除します。

  5. 手順 1 で監視を無効にしたリソースの監視を有効にします。


    # scswitch -e -M -j resource-list
    

Procedureリブートパッチを大域ゾーンとローカルゾーンに適用する

リブートパッチの場合、ノードにパッチを適用したあとにノードをリブートする必要があります。

手順
  1. パッチの適用対象であるゾーンに依存するリソースを無効にします。


    # scswitch -n -j zdepend-rs-list
    
  2. ゾーンリソースの監修を無効にします。


    # scswitch -n -M -j zone-rs
    
  3. ノード上で、ゾーンリソースを含むリソースグループをオンラインします。


    # scswitch -z -g zone-rg -h node
    
  4. ゾーンがブートしない各ノードで、/etc/zones/index ファイルのゾーンのエントリをコメントアウトします。

    エントリをコメントアウトするには、エントリを含む行の先頭に # 文字を追加します。

  5. ゾーンがブートしていない各ノードに対して、次の一連の操作を実行します。

    1. パッチを適用します。

    2. ノードを再起動します。

  6. ゾーンがブートしたノード上でパッチを適用します。

  7. 手順 4 で編集した各エントリからコメントを削除します。

  8. 手順 2 で監視を無効にしたリソースの監視を有効にします。


    # scswitch -e -M -j zone-rs
    
  9. ゾーンがブートしたノードをリブートします。

  10. 手順 1 で無効にしたリソースを有効にします。


    # scswitch -e -j zdepend-rs-list
    
次の手順

パッチが正しく適用されたことを確認するため、ゾーンリソースを含む各リソースを、リソースグループのノードリスト内の各ノードに切り替えます。リソースグループを別のノードに切り替えるには、次のコマンドを入力します。

scswitch -z -g zone-rg -h node

Sun Cluster HA for Solaris Containers 障害モニターの調整

Sun Cluster HA for Solaris Containers 障害モニターは、次のコンポーネントが正しく動作しているかを確認します。

各 Sun Cluster HA for Solaris Containers 障害モニターは、Solaris ゾーン コンポーネントを表すリソースに含まれます。このようなリソースを作成するのは、Sun Cluster HA for Solaris Containers を登録および構成するときです。詳細は、「Sun Cluster HA for Solaris Containers の登録と構成」を参照してください。

これらのリソースのシステムプロパティーと拡張プロパティーは、障害モニターの動作を制御します。事前に設定された障害モニターの動作は、これらのプロパティーのデフォルト値に基づいています。現在の動作は、ほとんどの Sun Cluster システムに適しているはずです。したがって、Sun Cluster HA for Solaris Containers 障害モニターを調整する必要があるのは、この事前設定されている動作を変更する必要がある場合だけです。

Sun Cluster HA for Solaris Containers 障害モニターの調整では次のことを行います。

詳細は、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』「Sun Cluster データサービス用に障害モニターを調整する」を参照してください。

Sun Cluster HA for Solaris Containers パラメータファイルの操作

Sun Cluster HA for Solaris Containers ゾーンブートおよびスクリプトリソースは、パラメータファイルを使用して、起動、停止、およびプローブコマンドにパラメータを渡します。これらのパラメータに対する変更は、リソースを再起動したり、有効/無効にするごとに適用されます。

ゾーンブートコンポーネントの障害モニターの動作

ゾーンブートコンポーネントの障害モニターにより、ゾーンブートコンポーネントを実行するためのすべての要件が満たされます。

ゾーンスクリプトコンポーネントの障害モニターの動作

ゾーンスクリプトコンポーネントの障害モニターは、コンポーネントに対して指定したスクリプトを実行します。このスクリプトが障害モニターに返す値が、障害モニターが実行する動作を決定します。詳細は、表 3 を参照してください。

ゾーン SMF コンポーネントの障害モニターの動作

ゾーン SMF コンポーネントの障害モニターは、SMF サービスが無効でないことを確認します。サービスが無効である場合、障害モニターは SMF サービスを再起動します。この障害が解消されない場合、障害モニターは、ゾーン SMF コンポーネントのリソースを含むリソースグループをフェイルオーバーします。

サービスが無効でない場合、障害モニターは、コンポーネントに対して指定されている SMF サービスプローブを実行します。このプローブが障害モニターに返す値が、障害モニターが実行する動作を決定します。詳細は、表 4 を参照してください。

Sun Cluster HA for Solaris Containers のデバッグ

/opt/SUNWsczone/xxx /etc ディレクトリの config ファイルを使用すると、Solaris Zone リソースのデバッグを起動できます。xxx は、ブートコンポーネントの場合は sczbt を表し、スクリプトコンポーネントの場合は sczsh を表し、SMF コンポーネントの場合は sczsmf を表します。

Sun Cluster HA for Solaris Containers の各コンポーネントには、Solaris Zone リソースのデバッグを起動できる config があります。各コンポーネントのこのファイルの位置は次のとおりです。

ProcedureSun Cluster HA for Solaris Containers のデバッグを有効にする

手順
  1. Sun Cluster HA for Solaris Containers のデバッグが有効であるかどうかを判断します。

    デバッグが無効である場合、/etc/syslog.conf ファイルに daemon.notice が設定されています。


    # grep daemon /etc/syslog.conf
    *.err;kern.debug;daemon.notice;mail.crit        /var/adm/messages
    *.alert;kern.err;daemon.err                     operator
    #
  2. デバッグが無効である場合、/etc/syslog.conf ファイルを編集して、daemon.noticedaemon.debug に変更します。

  3. Sun Cluster HA for Solaris Containers のデバッグが有効であることを確認します。

    デバッグが有効である場合、/etc/syslog.conf ファイルに daemon.debug が設定されています。


    # grep daemon /etc/syslog.conf
    *.err;kern.debug;daemon.debug;mail.crit        /var/adm/messages
    *.alert;kern.err;daemon.err                    operator
    #
  4. syslogd デーモンを再起動します。


    # pkill -1 syslogd
    
  5. /opt/SUNWsczone/sczbt/etc/config ファイルを編集して、DEBUG=DEBUG=ALL または DEBUG=sczbt-rs に変更します。


    # cat /opt/SUNWsczone/sczbt/etc/config
    #
    # Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
    # Use is subject to license terms.
    #
    # Usage:
    #       DEBUG=<RESOURCE_NAME> or ALL
    #
    DEBUG=ALL
    #

    注 –

    デバッグを無効にするには、これらの手順を逆にします。