この章では、Sun Cluster サーバーに Sun Cluster HA for Apache をインストールして構成する手順について説明します。
この章の内容は次のとおりです。
Sun Cluster HA for Apache は、フェイルオーバーデータサービスまたはスケーラブルデータサービスとして構成できます。各サービスの概念については、第 1 章「Sun Cluster データサービスの計画」および『Sun Cluster 3.0 12/01 の概念』を参照してください。
このデータサービスのインストールと構成には、SunPlex Manager を使用できます。詳細は、SunPlex Manager のオンラインヘルプを参照してください。
Sun Cluster HA for Apache をインストールする前に、Apache 構成ファイル (httpd.conf) の以下の情報を更新する必要があります。
httpd.conf ファイルの場所は、インストールによって異なります。システム管理者は、通常、httpd.conf ファイルをクラスタファイルシステム上にインストールします。デフォルトのインストールでは、/usr/local/apache/conf ディレクトリに httpd.conf ファイルが配置されます。Solaris に付属している Apache パッケージをインストールする場合、このファイルは /etc/apache ディレクトリに配置されます。
ホスト名を含む ServerName 命令。Sun Cluster HA for Apache の高可用性を実現するには、サーバーのアクセスに使用されるネットワークリソース (論理ホスト名または共有アドレス) の名前をこの命令に設定します。論理ホスト名または共有アドレスの設定は、クラスタをインストールした時点で行われていなければなりません。ネットワークリソースの詳細は、『Sun Cluster 3.0 12/01 の概念』を参照してください。
論理ホストまたは共有アドレスを設定する必要がある BindAddress 命令。INADDR_ANY にバインドするように Apache を構成できます。しかし、各リソースは個別のネットワークリソースと ポート番号のペアにバインドする必要があります。たとえば、複数のリソースを実行する場合、各リソースのポート番号が異なるのであれば INADDR_ANY を使用できます。
ServerType 命令。この命令はデフォルトの standalone に設定する必要があります。
複数の Apache インスタンス。複数の Apache インスタンスが存在する場合は、異なるリソースを使用して各インスタンスを管理する必要があります。また、個々のリソースには固有の Bin_dir を設定する必要があります。特定の Apache インスタンスを起動するこの Bin_dir プロパティの下には、apachect1 スクリプトが存在しなければなりません。
httpd バイナリは、異なる Apache リソースで共有できます。つまり、さまざまなリソースの apachect1 スクリプトが同じ httpd バイナリのパスを指定しても支障ありません。しかし、特定の Apache リソースに異なる構成ファイルを使用するためには各 apachect1 スクリプトを変更する必要があります。このためには、httpd コマンドの -f オプションを使用して特定の httpd.conf ファイルを指定します。
DocumentRoot 命令は、文書ルートディレクトリの場所を指定します - この命令は、HTML 文書がインストールされる、クラスタファイルシステム上の場所を示します。
ScriptAlias 命令は、cgi-bin ディレクトリのクラスタファイルシステム上の場所を含みます - この命令は、cgi-bin ファイルがインストールされるクラスタファイルシステム上の場所を示します。
Web サーバーに対する URL マッピングの設定では、いくつかの規則に従う必要があります。たとえば、CGI ディレクトリを設定する場合、可用性を維持するには、マップしたディレクトリをクラスタファイルシステムに配置する必要があります。たとえば、CGI ディレクトリを /global/diskgroup/ServerRoot/cgi-bin にマップします。ここで、diskgroup は、Apache ソフトウェアを含むディスクデバイスグループを示します。CGI プログラムが、RDBMS などのバックエンドサーバーにアクセスするような状況では、バックエンドサーバーも Sun Cluster ソフトウェアによって制御されていることを確認してください。そのサーバーが、Sun Cluster ソフトウェアがサポートする RDBMS の場合は、高可用性 RDBMS パッケージを使用してください。サポートしていない場合は、API を使用してサーバーを Sun Cluster の制御下に配置できます。詳細は、『Sun Cluster 3.0 12/01 データサービス開発ガイド』を参照してください。
ロックファイル - ロックファイルを使用している場合は、httpd.conf ファイルの LockFile 命令の値をローカルファイルに設定してください。
PidFile 命令 - ローカルファイルを指定します (次に例を示します)。
PidFile /usr/local/apache/log/httpd.pid |
サーバーポートまたは複数のポートからアクセスされる Port 命令設定 - デフォルト値は、各ノードの httpd.conf ファイルで設定されます。Port_list リソースプロパティは、各 httpd.conf ファイルに指定されているすべてのポートを含む必要があります。
Port_list プロパティは、Network_resources_used プロパティで定義されているネットワークリソースの、ポートと IP アドレスのすべての組み合わせを Web サーバーが提供することを想定しています。
Port_list="80/tcp,443/tcp,8080/tcp" |
たとえば、Port_list 構成は、次の IP ポートの組み合わせを検証します。
ホスト |
ポート | プロトコル |
node1 |
80 |
tcp |
node1 |
443 |
tcp |
node1 |
8080 |
tcp |
node2 |
80 |
tcp |
node2 |
443 |
tcp |
node2 |
8080 |
tcp |
ただし、node-1 がポート 80 と 443 のみにサービスを提供し、node-2 はポート 80 と 8080 のみにサービスを提供する場合は、Apache の Port_list プロパティは次のように構成できます。
Port_list=node1/80/tcp,node1/443/tcp,node2/80/tcp,node2/8080/tcp |
次の規則を考慮してください。
node-1 および node-2 のホスト名と IP アドレス (ネットワークリソース名ではない) を指定する必要があります。
Apache が Network_resources_used プロパティ 内の各 nodeN ごとに nodeN/port を提供する場合、node1/port1、node2/port2 のような組み合わせの代わりに短い形式を使用できます。次に例を示します。
例 1 :
Port_list="80/tcp,node1/443/tcp,node2/8080/tcp" Network_resources_used=node1,node2 |
ホスト |
ポート | プロトコル |
node1 |
80 |
tcp |
node1 |
443 |
tcp |
node2 |
80 |
tcp |
node2 |
8080 |
tcp |
例 2 :
Port_list="node1/80/tcp,node2/80/tcp" Network_resources_used=net-1,net-2 #net-1 contains node1. #net-2 contains node2 and node3. |
ホスト |
ポート | プロトコル |
node1 |
80 |
tcp |
node2 |
80 |
tcp |
Port_list プロパティで指定されたすべてのホスト名 (IP アドレス) は、ほかのスケーラブルリソースの Network_resources_used プロパティで指定されているネットワークリソースに属してはなりません。スケーラブルサービスが、別のスケーラブルリソースによって使用されている IP アドレスを検出すると、Apache リソースの作成に失敗します。
Sun Cluster HA for Apache と別の HTTP サーバーを実行する場合は、HTTP サーバーがそれぞれ異なるポートで 待機するように構成してください。異なるポートで待機するように構成しないと、2 つのサーバーの間でポートの衝突が発生します。
Sun Cluster HA for Apache を登録して構成するには、次の情報を検討し指定する必要があります。
Sun Cluster HA for Apache をフェイルオーバーデータサービスとスケーラブルデータサービスのどちらで使用するかを決定する。
設定する障害モニターリソースプロパティを決定する (たとえば、Thorough_probe_interval または Probe_timeout プロパティなど)。ほとんどの場合はデフォルト値で十分です。これらのプロパティについては、「Sun Cluster HA for Apache 拡張プロパティの構成」を参照してください。
Sun Cluster HA for Apache のリソースタイプの名前を指定する。この名前は、SUNW.apache です。
データサービスをマスターするクラスタノードの名前を指定する。
データサービスへのアクセスにクライアントが使用する論理ホスト名 (フェイルオーバーサービスの場合) または共有アドレス (スケーラブルサービスの場合) を指定する。通常、この IP アドレスは、クラスタのインストール時に設定されます。ネットワークリソースの詳細は、『Sun Cluster 3.0 12/01 の概念』を参照してください。
アプリケーションバイナリへのパスを指定する。バイナリは、ローカルディスクまたはクラスタファイルシステムにインストールできます。各場所にインストールした場合の長所と短所については、「アプリケーションバイナリの格納先の決定」を参照してください。
該当する httpd.conf 構成ファイルを使用するには各 apachect1 コピーを変更する。
Load_balancing_policy プロパティが LB_STICKY または LB_STICKY_WILD に設定されているオンラインスケーラブルサービスの場合、Load_balancing_weights プロパティを変更するには注意が必要です。サービスがオンラインのときにこれらのプロパティを変更すると、既存のクライアントとの関連がリセットされます。したがって、そのクライアントが以前にクラスタメンバーからサービスを受けていても、異なるノードがそのクライアントの要求を処理します。
同様に、サービスの新しいインスタンスがクラスタで起動された場合は、既存のクライアントとの関連がリセットされることがあります。
スケーラブルプロキシが、スケーラブル Web リソースに LB_STICKY ポリシーを提供する場合は、そのプロキシにも LB_STICKY ポリシーを設定してください。
Port_list プロパティのエントリを決定する。Port_list プロパティには複数のエントリを指定できます。詳細は、「Sun Cluster HA for Apache を登録して構成する」 を参照してください。
表 5-1 に、インストールと構成作業について説明している節を示します。
表 5-1 作業マップ: Sun Cluster HA for Apache のインストールと構成
作業 |
参照箇所 |
---|---|
Apache ソフトウェアのインストール | 「Apache のインストールと構成」 |
Sun Cluster HA for Apache パッケージのインストール | |
Sun Cluster HA for Apache の構成と起動 | |
リソース拡張プロパティの構成 | |
障害モニターの情報の表示 |
Sun Cluster HA for Apache は、Web サーバーまたはプロキシサーバーとして構成された Apache ソフトウェアで動作します。
一般的なインストール手順については、Apache の Web サイト (http://www.apache.org) を参照してください。Sun Cluster ソフトウェアでサポートされている Apache バージョンの全一覧は、ご購入先から入手してください。
Apache バイナリは、SUNWapchr、SUNWapchu、SUNWapchd という 3 つのパッケージに格納されています。これらのパッケージは、全体として SUNWCapache パッケージメタクラスタを構成しています。必ず SUNWapchr パッケージをインストールしてから SUNWapchu パッケージをインストールする必要があります。
この Web サーバーのバイナリは、各クラスタノードのローカルファイルシステムに置くことも、クラスタファイルシステムに置くこともできます。
pkginfo(1) コマンドを実行して、Apache パッケージの SUNWapchr、SUNWapchu、SUNWapchd がインストールされているかどうかを判定します。
インストールされていない場合は、次の手順に従ってインストールします。
# pkgadd -d Solaris 8 Product directory SUNWapchr SUNWapchu SUNWapchd ... Installing Apache Web Server (root) as SUNWapchr ... [ verifying class initd ] /etc/rc0.d/K16apache linked pathname /etc/rc1.d/K16apache linked pathname /etc/rc2.d/K16apache linked pathname /etc/rc3.d/S50apache linked pathname /etc/rcS.d/K16apache linked pathname ... |
SUNWapchr パッケージの一部としてインストールしたばかりの START と STOP 実行制御スクリプトを無効にします。
Sun Cluster HA for Apache は、その構成を行ったあとで Apache アプリケーションの起動と停止を行います。そのため、これらのスクリプトを無効にする必要があります。次の各手順を実行します。
次の例では、実行制御スクリプト名の最初の文字を大文字から小文字に変更しています。しかし、スクリプト名は、ユーザーの通常の管理規則に従って変更することができます。
# ls -1 /etc/rc?.d/*apache /etc/rc0.d/K16apache /etc/rc1.d/K16apache /etc/rc2.d/K16apache /etc/rc3.d/S50apache /etc/rcS.d/K16apache # mv /etc/rc0.d/K16apache /etc/rc0.d/k16apache # mv /etc/rc1.d/K16apache /etc/rc1.d/k16apache # mv /etc/rc2.d/K16apache /etc/rc2.d/k16apachc # mv /etc/rc3.d/S50apache /etc/rc3.d/s50apache # mv /etc/rcS.d/K16apache /etc/rcS.d/k16apache # ls -1 /etc/rc?.d/*apache /etc/rc0.d/k16apache /etc/rc1.d/k16apache /etc/rc2.d/k16apache /etc/rc3.d/s50apache /etc/rcS.d/k16apache |
クラスタメンバーでスーパーユーザーになります。
Apache のマニュアルに記述されている手順に従って Apache ソフトウェアをインストールします。
Apache ソフトウェアに付属のマニュアル、または Apache の Web サイト (http://www.apache.org) を参照してください。
httpd.conf 構成ファイルを更新します。
ServerName 命令を設定する。
BindAddress 命令を設定する (任意)。
ServerType、ServerRoot、DocumentRoot、ScriptAlias、および LockFile 命令を設定する。
Port 命令を Port_list 標準リソースプロパティと同じ番号に設定する。詳細は、手順 4 を参照してください。
Apache ソフトウェアをプロキシサーバーとして実行する場合は、プロキシサーバーとして実行するための変更を行う。詳細は、Apache のマニュアルを参照してください。Apache ソフトウェアをプロキシサーバーとして実行する場合は、CacheRoot 設定で、クラスタファイルシステム上の場所を示す必要があります。
httpd.conf ファイル内のポート番号が、Port_list 標準リソースプロパティのポート番号と一致していることを確認します。
httpd.conf 構成ファイルを編集し、標準の Sun Cluster リソースプロパティのデフォルト (ポート 80) と一致するようにポート番号を変更できます。または、Sun Cluster HA for Apache を構成するときに、httpd.conf ファイル内の設定と一致するように Port_list を設定できます。
Apache 起動 / 停止スクリプトファイル (Bin_dir/apachect1) 内のパスを更新します。
Apache のデフォルトのパスを変更し、Apache のディレクトリ構造と一致させてください。
次のタスクを実行して構成の変更内容を確認します。
Apache のデータサービスパッケージが Sun Cluster 3.0 Agents 12/01 CD-ROM からインストールされていない場合は、「Sun Cluster HA for Apache パッケージのインストール」へ進みます。パッケージがインストールされている場合は、「Sun Cluster HA for Apache の登録と構成」へ進みます。
scinstall(1M) ユーティリィティにより、Sun Cluster HA for Apache パッケージ (SUNWscapc) をクラスタにインストールできます。このときに、非対話型の scinstall にすべてのデータサービスパッケージをインストールする -s オプションを指定しないでください。
Sun Cluster のインストール時にこのデータサービスパッケージをすでにインストールしている場合は、「Sun Cluster HA for Apache の登録と構成」に進んでください。まだインストールしていない場合は、次の手順に従って SUNWscapc パッケージをインストールします。
この手順を実行するには、Sun Cluster 3.0 Agents 12/01 CD-ROM が必要です。この手順は、Sun Cluster HA for Apache をマスターできるすべてのクラスタメンバーで実行してください。
Sun Cluster 3.0 Agents 12/01 CD-ROM を CD-ROM ドライブに挿入します。
オプションは指定せずに、scinstall ユーティリティーを実行します。
scinstall ユーティリティーが対話型モードで起動します。
メニューオプション「Add Support for New Data Service to This Cluster Node」を選択します。
scinstall ユーティリティーにより、ほかの情報を入力するためのプロンプトが表示されます。
Sun Cluster 3.0 Agents 12/01 CD-ROM のパスを指定します。
このユーティリティーでは、この CD は "data services cd" と示されます。
インストールするデータサービスを指定します。
選択したデータサービスが scinstall ユーティリティーによって示され、この選択の確認が求められます。
scinstall ユーティリティーを終了します。
ドライブから CD を取り出します。
「Sun Cluster HA for Apache を登録して構成する」を参照して Sun Cluster HA for Apache の登録を行い、このデータサービスのためにクラスタを構成します。
この手順では、scrgadm (1M) コマンドを使って Sun Cluster HA for Apache の登録と構成を行う方法を説明します。
Apache は、フェイルオーバーサービスまたはスケーラブルサービスとして構成できます。
フェイルオーバーサービスとして Apache を構成する場合は、Apache アプリケーションリソースとネットワークリソースは単一のリソースグループに配置します。
スケーラブルサービスとして Apache を構成する場合は、Apache アプリケーションリソースとネットワークリソースのフェイルオーバーリソースグループに、それぞれ 1 つずつスケーラブルリソースグループを作成します。
スケーラブルリソースグループはフェイルオーバーリソースグループに依存します。Apache をスケーラブルサービスとして構成する場合には、追加の手順が必要になります。このような手順には、その先頭部分に「スケーラブルサービスのみ」という表示をして区別します。Apache をスケーラブルサービスとして構成しない場合は、これらの手順は省略してください。
任意のクラスタメンバーでこの手順を実行してください。
クラスタメンバーでスーパーユーザーになります。
データサービスのリソースタイプを登録します。
# scrgadm -a -t SUNW.apache |
データサービスのリソースタイプを追加します。
データサービス用に事前に定義したリソースタイプ名を指定します。
ネットワークリソースおよびアプリケーションリソースを保持するフェイルオーバーリソースグループを作成します。
このリソースグループは、フェイルオーバーサービスとスケーラブルサービスの両方に必要です。フェイルオーバーサービスの場合、このリソースグループはネットワークリソースとフェイルオーバーアプリケーションリソースの両方を含みます。スケーラブルサービスの場合、ネットワークリソースのみを含みます。このグループとアプリケーションリソースを含むリソースグループとの間に、依存性が作成されます。
必要に応じて、-h オプションを指定してデータサービスを実行できる一群のノードを選択することもできます。
# scrgadm -a -g resource-group [-h nodelist] |
新しい構成を追加します。
追加するフェイルオーバーリソースグループの名前を指定します。任意の名前を指定できますが、クラスタ内で一意のリソースグループにする必要があります。
潜在的マスターを識別する物理ノード名または ID をコンマで区切って指定します (任意)。フェイルオーバー時は、この順序で主ノードが決まります。
-h を使用してノードリストの順序を指定します。クラスタのすべてのノードがマスターになり得るのであれば、-h オプションを指定する必要はありません。
使用しているすべてのネットワークアドレスがネームサービスデータベースに追加されていることを確認します。
Sun Cluster のインストールの時に、この確認を行う必要があります。詳細は、『Sun Cluster 3.0 12/01 ソフトウェアのインストール』の計画に関する章を参照してください。
ネームサービスの検索が原因で障害が発生するのを防ぐために、すべてのクラスタノードの /etc/hosts ファイルに、すべてのネットワークアドレスが登録されていることを確認してください。サーバーの /etc/nsswitch.conf ファイルのネームサービスマッピングは、NIS、NIS+、DNS にアクセスする前に、最初にローカルファイルを検査するように構成してください。
ネットワークリソース (論理ホスト名または共有アドレス) を、手順 3 で作成したフェイルオーバーリソースグループに追加します。
# scrgadm -a {-S | -L} -g resource-group ¥ -l hostname, ... [-j resource] ¥ [-X auxnodelist] [-n netiflist] |
共有アドレスリソースには、-S オプションを使用します。論理ホスト名リソースには、-L オプションを使用します。
追加するネットワークリソースをコンマで区切って指定します。-j オプションを使用してリソース名を指定できます。リソース名を指定しないと、ネットワークリソースの名前は、コンマで区切ったリストの最初の名前になります。
手順 3 で作成したフェイルオーバーリソースグループ名を指定します。
リソースの名前を指定します。リソース名を指定しない場合、ネットワークリソース名は、デフォルトで -l オプションで最初に指定した名前になります。
共有アドレスをホストできるクラスタノード (ただし、フェイルオーバー時に主ノードとして使用されない) を識別する物理ノード名またはノード ID をコンマで区切って指定します。このオプションを指定した場合は、これらのノードは、リソースグループの nodelist で指定されるノードと相互に排他的になります。
各ノード上の NAFO グループをコンマで区切って指定します (省略可能)。リソースグループの nodelist 内のすべてのノードが、netiflist に含まれている必要があります。このオプションを指定しないと、scrgadm(1M) が、nodelist のノードごとに、hostname リストに指定されているネットアダプタをサブネットから見つけようとします。例: -n nafo0@nodename, nafo0@nodename2
スケーラブルサービスのみ: 希望するすべてのクラスタノードで実行するスケーラブルリソースグループを作成します。
Sun Cluster HA for Apache をフェイルオーバーデータサービスとして実行する場合は、手順 8 へ進んでください。
データサービスアプリケーションリソースを保持するリソースグループを作成します。主ノードの最大数と希望数を指定する必要があります。
一部のノードしかこのリソースグループの主ノードになれない場合は、リソースグループの作成時に -h オプションを使用して主ノードになれるノードの名前を指定する必要があります。
このリソースグループと 手順 3 で作成したフェイルオーバーリソースグループとの間の依存性についても指定する必要があります。この依存性によって、フェイルオーバー時に 2 つのリソースグループが同じノードでオンラインになったとき、Resource Group Manager (RGM) は、ネットワークリソースに依存する任意のデータサービスが開始される前に、そのネットワークリソースを開始できます。
# scrgadm -a -g resource-group ¥ -y Maximum_primaries=m -y Desired_primaries=n ¥ -y RG_dependencies=resource-group ¥ [-h nodelist] |
追加するスケーラブルサービスリソースグループの名前を指定します。
このリソースグループに許可するアクティブ主ノードの最大数を指定します。このプロパティに値を指定しない場合は、デフォルトの 1 になります。
このリソースグループに許可するアクティブ主ノードの希望数を指定します。このプロパティに値を指定しない場合は、デフォルトの 1 になります。
作成されたリソースグループが依存する、共有アドレスリソースを含むリソースグループを指定します。これは、手順 3 で作成したフェイルオーバーリソースグループの名前です。
このリソースグループの主ノードとして使用できるノードのリスト (オプション)。このリストは、リソースグループの主ノードとして使用できないノードがあるときだけ指定します。
スケーラブルサービスのみ: スケーラブルリソースグループにアプリケーションリソースを作成します。
Sun Cluster HA for Apache をフェイルオーバーデータサービスとして実行する場合は、手順 8 へ進んでください。
# scrgadm -a -j resource -g resource-group ¥ -t resource-type -y Network_resources_used=network-resource, ... ¥ -y Port_list=port-number/protocol[, ...] -y Scalable=True ¥ -x Bin_dir=bin-directory |
追加するリソースの名前を指定します。
リソースが配置されるスケーラブルリソースグループの名前を指定します。
追加するリソースの種類を指定します。
データサービスが使用する共有アドレスを指定するネットワークリソース名をコンマで区切って指定します。
使用するポート番号とプロトコルをコンマで区切って指定します (例:80/tcp,81/tcp)。
スケーラブルサービスの必須パラメータを指定します。このパラメータは、True に設定する必要があります。
Apache バイナリ (apachect1) がインストールされている場所を指定します。Sun Cluster HA for Apache にはこの拡張プロパティが必要です。
必要に応じて、Apache データサービスに属する拡張プロパティをさらに設定し、それらのデフォルト値を上書きできます。追加の拡張プロパティについては、表 5-2 を参照してください。
フェイルオーバーサービスのみ: フェイルオーバーリソースグループにアプリケーションリソースを作成します。
この手順は、Sun Cluster HA for Apache をフェイルオーバーデータサービスとして実行する場合だけ行なってください。Sun Cluster HA for Apache をスケーラブルデータサービスとして使用している場合は、手順 6 および 手順 7 を実行し、手順 10 へ進んでください。
# scrgadm -a -j resource -g resource-group ¥ -t resource-type -y Network_resources_used=network-resource, ... ¥ -y Port_list=port-number/protocol[, ...] -y Scalable=False ¥ -x Bin_dir=bin-directory |
追加するリソースの名前を指定します。
リソースが配置されるリソースグループの名前を指定します。これは、手順 3 で作成したものです。
追加するリソースの種類を指定します。
データサービスが使用する共有アドレスを指定するネットワークリソース名をコンマで区切って指定します。
使用するポート番号とプロトコルをコンマで区切って指定します (例:80/tcp,81/tcp)。
このプロパティは、スケーラブルサービスにのみ必要です。False に設定するか省略します。
Apache バイナリ (apachect1) がインストールされている場所を指定します。Sun Cluster HA for Apache には、この拡張プロパティが必要です。
フェイルオーバーリソースグループをオンラインにします。
# scswitch -Z -g resource-group |
共有アドレスリソースと障害モニターを有効に設定し、リソースグループを管理状態に切り替え、オンラインにします。
フェイルオーバーリソースグループの名前を指定します。
スケーラブルサービスのみ:スケーラブルリソースグループをオンラインにします。
# scswitch -Z -g resource-group |
リソースとモニターを有効に設定し、リソースグループを管理状態にし、オンラインにします。
スケーラブルリソースグループの名前を指定します。
スケーラブルサービスの場合、次のリソースグループを作成します。
1 つは、ネットワークリソースを含むフェイルオーバーリソースグループです。
もう 1 つは、アプリケーションリソースを含むスケーラブルリソースグループです。
Cluster Information Node names: phys-schost-1, phys-schost-2 Shared address: schost-1 Resource groups: resource-group-1 (共有アドレスの場合), resource-group-2 (スケーラブル Apache アプリケーションリソースの場合) Resources: schost-1 (共有アドレス), apache-1 (Apache アプリケーション リソース) (共有アドレスを含めるためにフェイルオーバーリソースグループを追加する) # scrgadm -a -g resource-group-1 (フェイルオーバーリソースグループに共有アドレスリソースを追加する) # scrgadm -a -S -g resource-group-1 -l schost-1 (Apache リソースタイプを登録する) # scrgadm -a -t SUNW.apache (スケーラブルリソースグループを追加する) # scrgadm -a -g resource-group-2 -y Maximum_primaries=2 ¥ -y Desired_primaries=2 -y RG_dependencies=resource-group-1 (スケーラブルリソースグループに Apache アプリケーションリソースを追加する) # scrgadm -a -j apache-1 -g resource-group-2 ¥ -t SUNW.apache -y Network_resources_used=schost-1 ¥ -y Scalable=True -y Port_list=80/tcp ¥ -x Bin_dir=/opt/apache/bin (フェイルオーバーリソースグループをオンラインにする) # scswitch -Z -g resource-group-1 (両方のノードでスケーラブルリソースグループをオンラインにする) # scswitch -Z -g resource-group-2 |
次に、フェイルオーバー Apache サービスを 2 ノードクラスタで登録する例を示します。
Cluster Information Node names: phys-schost-1, phys-schost-2 Logical hostname: schost-1 Resource group: resource-group-1 (すべてのリソース) Resources: schost-1 (論理ホスト名), apache-1 (Apache アプリケーションリソース) (すべてのリソースを含むようにフェイルオーバーリソースグループを追加する) # scrgadm -a -g resource-group-1 (フェイルオーバーリソースグループに論理ホスト名リソースを追加する) # scrgadm -a -L -g resource-group-1 -l schost-1 (Apache リソースタイプを登録する) # scrgadm -a -t SUNW.apache (フェイルオーバーリソースグループに Apache アプリケーションリソースを追加する) # scrgadm -a -j apache-1 -g resource-group-1 ¥ -t SUNW.apache -y Network_resources_used=schost-1 ¥ -y Scalable=False -y Port_list=80/tcp ¥ -x Bin_dir=/opt/apache/bin (フェイルオーバーリソースグループをオンラインにする) # scswitch -Z -g resource-group-1 |
「データサービスのインストールと構成を確認する」を参照し、インストールを確認してください。リソース拡張プロパティを設定または変更する場合は、「Sun Cluster HA for Apache 拡張プロパティの構成」を参照してください。
SUNW.HAStorage リソースタイプは、HA 記憶装置とデータサービス間の動作を同期させます。Sun Cluster HA for Apache はスケーラブルなので、SUNW.HAStorage リソースタイプを設定する必要があります。
詳細は、SUNW.HAStorage(5) マニュアルページおよび 「リソースグループとディスクデバイスグループの関連性」を参照してください。手順については、「新しいリソース用に SUNW.HAStorage リソースタイプを設定する」を参照してください。
Sun Cluster HA for Apache を構成したあと、ネットワークリソース (論理ホスト名または共有アドレス) およびポート番号を使用し、Web ブラウザから Web ページを表示できることを確認します。scswitch (1M) コマンドを使用してスイッチオーバーを実行し、サービスが引き続き二次ノードでも実行でき、さらに元の主ノードに戻すことができることを確認してください。
Apache サーバーリソースの作成時に必要な拡張プロパティは、Bin_dir プロパティだけです。このプロパティの値は、apachect1 スクリプトを含むディレクトリです。
通常、拡張プロパティは、Apache サーバーリソースを作成するときに、コマンド行から scrgadm -xparameter=value を実行して構成します。拡張プロパティは、第 13 章「データサービスリソースの管理」に示す手順を使って、あとで構成することもできます。
すべての Sun Cluster プロパティについての詳細は、付録 A 「標準プロパティ」 を参照してください。
拡張プロパティによっては、動的に更新できるものもあります。ただし、それ以外の拡張プロパティは、Apache サーバーリソースを作成するときにしか更新できません。次の表は、Apache サーバー用に構成できる拡張プロパティの説明です。「調整」の欄は、各プロパティをいつ更新できるかを示しています。
表 5-2 Sun Cluster HA for Apache 拡張プロパティ
名前/データタイプ |
説明 |
---|---|
Bin_dir (文字列) |
Apache バイナリ (特に apachect1) のパス。Sun Cluster HA for Apache にはこの拡張プロパティが必要です。 デフォルト: なし 範囲: なし 調整: 作成時 |
Monitor_ retry_ count (整数) |
障害モニターの再起動を制御するとともに、 Monitor_retry_ interval プロパティで指定された時間の範囲内に、プロセスモニター機能 (PMF) が障害モニターを何回再起動するかを示します。このプロパティは、障害モニターの再起動について制御するのであって、リソースの再起動を制御するわけではありません。リソースの再起動は、システム定義プロパティの Retry_interval および Retry_count によって制御されます。 デフォルト: 4 範囲: 0 - 2、147、483、641 -1 は、再試行の数が無限であることを示す。 調整: 作成時
|
Monitor_ retry_ interval (整数) |
障害モニターの失敗がカウントされる期間 (分)。この期間内に、障害モニターの失敗の数が、拡張プロパティ Monitor_retry_ count で指定した値を超えた場合、PMF は障害モニターを再起動しません。 デフォルト: 2 範囲: 0 - 2、147、483、641 -1 は、再試行の間隔が無限であることを示す。 調整: 作成時
|
Probe_ timeout (整数) |
Apache インスタンスの検証に障害モニターが使用するタイムアウト値 (秒)。 デフォルト: 30 範囲: 0 - 2、147、483、641 調整: 作成時
|
Sun Cluster HA for Apache の検証機能は、Apache サーバーの状態を照会する要求をサーバーに送信します。検証機能が実際に Apache サーバーを照会する前に、ネットワークリソースがこの Apache リソース用に構成されていることの確認が行われます。ネットワークリソースが構成されていない場合は、エラーメッセージ (No network resources found for resource.) が記録され、検証はエラーとなり終了します。
検証機能は、次のことを行います。
Probe_timeout リソースプロパティで設定されたタイムアウト値を使用し、Apache サーバーを正常に検証するための試行時間を制限します。
Apache サーバーに接続し、HTTP 要求を送信して応答を受信することで、HTTP 1.0 HEAD 検査を実行します。検証機能は、各 IP アドレスとポートの組み合わせで Apache サーバーに順番に接続します。
この照会の結果は、異常か正常のどちらかになります。検証機能が Apache サーバーからの応答を正常に受信した場合、検証機能は無限ループに戻り、検証と休止の次のサイクルを開始します。
照会は、ネットワークトラフィックの混雑、過剰なシステム負荷、不適切な構成など、さまざまな理由によって失敗します。構成の不備は、検証中のすべての IP アドレスとポートのペアで待機するように Apache サーバーを構成しなかった場合に発生します。Apache サーバーは、このリソースに指定した各 IP アドレスに対し、それぞれポートを提供する必要があります。Probe_timeout で指定した制限内 (前の手順 1 で指定) に照会に対する応答を受信しない場合は、検証機能は、Apache データサービスの一部で異常が発生したと判断し、履歴に異常を記録します。Apache の検証異常は、致命的な異常、または一部の異常になります。
サーバーへの接続に失敗した場合。次のエラーメッセージが表示されます。%s はホスト名、%d はポート番号です。
Failed to connect to %s port %d %s |
サーバーに接続しようとしてタイムアウト (Probe_timeout リソースプロパティのタイムアウト値を超過) した場合。
検証文字列をサーバーに送信することに失敗した場合。次のエラーメッセージが表示されます。最初の %s はホスト名、%d はポート番号です。最後の %s はエラーの詳細です。
Failed to communicate with server %s port %d: %s |
モニターは、Retry_interval リソースプロパティで指定した期間内で、以下に示す 2 つの一部の異常を累積し、1 つの致命的な異常としてカウントします。
検証機能による照会に対し、サーバーからの応答を読み取ろうとしてタイムアウト (Probe_timeout リソースプロパティのタイムアウト値を超過) した場合。
その他の理由によってサーバーからデータを読み取ることに失敗した場合。次のエラーメッセージが表示されます。最初の %s はホスト名、%d はポート番号です。最後の %s はエラーの詳細です。
Failed to communicate with server %s port %d: %s |
異常履歴に基づいて、データサービスのローカルでの再起動、またはデータサービスのフェイルオーバーのいずれかを実行します。詳細は、「データサービスの状態の検査」を参照してください。