この章では、Sun Cluster サーバーに Sun Cluster HA for Apache をインストールして構成する方法について説明します。
この章の内容は次のとおりです。
Sun Cluster HA for Apache は、フェイルオーバーデータサービスまたはスケーラブルデータサービスとして構成できます。フェイルオーバーデータサービスおよびスケーラブルデータサービスの概要については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の第 1 章「Sun Cluster データサービスの計画」と『Sun Cluster の概念 (Solaris OS 版)』を参照してください。
SunPlexTM 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.1 の概念』を参照してください。
論理ホストまたは共有アドレスを設定する必要がある 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 パッケージを使用してください。あるいは、『Sun Cluster データサービス開発ガイド (Solaris OS 版)』で説明されている API を使用して、サーバーを Sun Cluster の制御下に置きます。
ロックファイル – ロックファイルを使用している場合は、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 |
次の例で、IP とポートの組み合わせを検証します。
ホスト |
ポート |
プロトコル |
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. |
次の例で、IP とポートの組み合わせを検証します。
ホスト |
ポート |
プロトコル |
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 をフェイルオーバーデータサービスとスケーラブルデータサービスのどちらで使用するかを決定する。
Apache Webserver のセキュアバージョンと非セキュアバージョンのどちらをインストールするかを決定する。
設定する障害モニターリソースプロパティーを決定する。ほとんどの場合はデフォルト値で十分です。標準プロパティーの詳細は『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』を、拡張プロパティーの詳細は、付録 A 「Sun Cluster HA for Apache 拡張プロパティー」を参照してください。
Sun Cluster HA for Apache のリソースタイプの名前を指定する。この名前は、SUNW.apache です。
データサービスをマスターするクラスタノードの名前を指定する。
データサービスへのアクセスにクライアントが使用する論理ホスト名 (フェイルオーバーサービスの場合) または共有アドレス (スケーラブルサービスの場合) を指定する。通常、この IP アドレスは、クラスタのインストール時に設定されます。ネットワークリソースの詳細は、『Sun Cluster 3.1 の概念』を参照してください。
アプリケーションバイナリへのパスを指定する。バイナリは、ローカルディスクまたはクラスタファイルシステムにインストールできます。各インストール先の長所 と短所については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「Sun Cluster データサービス構成のガイドライン」を参照してください。
該当する httpd.conf 構成ファイルを使用するには各 apachect1 コピーを変更する。
Load_balancing_policy プロパティーが LB_STICKY または LB_STICKY_WILD に設定されているオンラインスケーラブルサービスの場合、Load_balancing_weights プロパティーを変更するには注意が必要です。サービスがオンラインのときにこれらのプロパティーを変更すると、既存のクライアントとの関連がリセットされます。したがって、そのクライアントが以前にクラスタメンバーからサービスを受けていても、異なるノードがそのクライアントの要求を処理します。
同様に、サービスの新しいインスタンスがクラスタで起動された場合は、クライアントとの既存の親和性がリセットされることがあります。
Port_list プロパティーのエントリを決定する。Port_list プロパティーには複数のエントリを指定できます。詳細については、「Sun Cluster HA for Apache を登録して構成する」を参照してください。
Monitor_Uri_List 拡張プロパティーを利用するかどうかを決定する。この拡張プロパティーを使用して、任意の URI リストを監視できます。URI の任意の監視は、Sun Cluster HA for Apache エージェントの検証で、Sun Cluster HA for Apache サーバー上に配備されたアプリケーション (URI) をすべて監視する必要がある場合に便利です。Monitor_Uri_List 拡張プロパティーの使用は、Sun Cluster HA for Apache のセキュアインスタンスではサポートされていません。このプロパティーを使用するには、Sun Cluster HA for Apache のリリース 3.1 10/03 をインストールする必要があります。Sun Cluster HA for Apache を以前のバージョンからアップグレードする場合、新しいプロパティーを使用するためには、リソースタイプのアップグレード手順を実行する必要があります。手順については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「リソースタイプの更新」を参照してください。Monitor_Uri_List 拡張プロパティーの使用に関する詳細は、「任意 URI の監視」を参照してください。
タスク |
参照箇所 |
---|---|
Apache ソフトウェアのインストール | |
Sun Cluster HA for Apache パッケージのインストール |
「Web Start プログラムを使用して Sun Cluster HA for Apache パッケージをインストールする」 「scinstall ユーティリティーを使用して Sun Cluster HA for Apache パッケージをインストールする」 |
Sun Cluster HA for Apache の構成と起動 | |
Sun Cluster HA for Apache 障害モニターの調整 |
Apache Webserver は、非セキュアまたはセキュアな Webserver としてインストール、設定することができます。この節では、両タイプのインストール手順について説明します。非セキュアバージョンの Webserver をインストールするには、次のいずれかの手順を参照してください。
セキュアバージョンの Webserver をインストールするには、次のいずれかの手順を参照してください。
Sun Cluster HA for Apache は、Web サーバーまたはプロキシサーバーとして構成された Apache ソフトウェアで動作します。
一般的なインストール手順については、http://www.apache.org を参照してください。Sun Cluster ソフトウェアでサポートされている Apache バージョンの全一覧は、ご購入先から入手してください。
この節では、非セキュアな Apache Webserver のインストール手順について説明します。セキュア Apache Webserver のインストール手順については、「セキュア Apache Webserver のインストール」を参照してください。
この手順では、非セキュアバージョンの Apache Webserver をインストールします。セキュア Apache Webserver のインストール手順については、「セキュア Apache Webserver のインストール」を参照してください。
Apache バイナリは、SUNWapchr、SUNWapchu、SUNWapchd という 3 つのパッケージに格納されています。これらのパッケージは、全体として SUNWCapache パッケージメタクラスタを構成しています。必ず SUNWapchr パッケージをインストールしてから SUNWapchu パッケージをインストールする必要があります。
この Web サーバーのバイナリは、各クラスタノードのローカルファイルシステムに置くことも、クラスタファイルシステムに置くこともできます。
pkginfo(1) コマンドを実行して、Apache パッケージの SUNWapchr、SUNWapchu、SUNWapchd がインストールされているかどうかを判定します。
インストールされていない場合は、次の手順に従ってインストールします。
Solaris 8 および Solaris 9 では、次のコマンドを実行します。
# pkgadd -d Solaris-product-directory SUNWapchr SUNWapchu SUNWapchd |
Solaris 10 では、次のコマンドを実行します。
# pkgadd -G -d Solaris-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 アプリケーションの起動と停止を行います。そのため、これらのスクリプトを無効にする必要があります。次の各手順を実行します。
Apache 実行制御スクリプトをリストする。
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/k16apache # 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 Webserver をインストールします。セキュア Apache Webserver のインストール手順については、「セキュア Apache Webserver のインストール」を参照してください。
この Web サーバーのバイナリは、各クラスタノードのローカルファイルシステムに置くことも、クラスタファイルシステムに置くこともできます。
クラスタメンバー上でスーパーユーザーになります。
Apache のインストールマニュアルに説明されているインストール手順を使用して、Apache ソフトウェアをインストールします。
Apache ソフトウェアに付属の Apache インストールマニュアルまたは http://www.apache.org のインストール手順を参照して、Apache ソフトウェアをインストールしてください。
httpd.conf 構成ファイルを更新します。
ServerName 指定を設定する。( バージョン 2.0 の Apache では、ServerName 指定はホスト名とポートを指定します)
BindAddress 指定を設定する (任意)。(BindAddress 指定があるのは、Apache 2.0 以前のバージョンだけです。Apache 2.0 については、次の Listen 指定の説明を参照してください)
Listen 指定を設定する。Listen 指定は、論理ホストのアドレスまたは共有アドレスを使用する必要があります。(Listen 指定は、Apache 2.0 以降のバージョンにのみ存在します。Apache 2.0 より前の Apache バージョンについては、BindAddress 指定の説明を参照してください)
ServerType、ServerRoot、DocumentRoot、ScriptAlias、および LockFile 命令を設定する。
ServerType 指定は、Apache 2.0 にはありません。
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/apachectl) 内のパスを更新します。
Apache のデフォルトのパスを変更し、Apache のディレクトリ構造と一致させてください。たとえば、BIN_dir/apachectl スクリプト内の HTTPD=/usr/local/apache/bin/httpd で開始される行を次のように変更します。
HTTPD='/usr/local/apache/bin/httpd -f /global/foo/apache/conf/httpd.conf' |
次のタスクを実行して構成の変更内容を確認します。
この節では、セキュアな Apache Webserver のインストール手順について説明します。非セキュア Apache Webserver のインストール手順については、「非セキュア Apache Webserver のインストール」を参照してください。
この手順では、セキュアバージョンの Apache Webserver をインストールします。非セキュア Apache Webserver のインストール手順については、「非セキュア Apache Webserver のインストール」を参照してください。
クラスタメンバー上でスーパーユーザーになります。
Apache ソフトウェアとmod_ssl をインストールします。
mod_ssl をインストールするには、Apache のインストールマニュアルまたは http://www.modssl.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 を設定できます。
証明書とキーをすべてインストールします。
Bin_dir ディレクトリで、keypass という名前のファイルを作成します。このファイルに対するアクセス権は、所有者以外に付与しないようにしてください。
# cd Bin_dir # touch keypass # chmod 700 keypass |
暗号化した秘密鍵を使用している場合、以下の手順 a と手順 b を実行してください。
httpd.conf ファイルで、SSLPassPhraseDialog 指定を見つけて、次のように変更します。
# SSLPassPhraseDialog exec:/Bin_dir/keypass |
SSLPassPhraseDialog 命令の詳細については、 mod_ssl のマニュアルを参照してください。
ホストとポートに対応する暗号化鍵のパスフレーズを出力するように、keypass ファイルを編集します。
このファイルは引数の server:port algorithm で呼び出されます。このファイルが正しいパラメータで呼び出された場合に、ファイルが各暗号化鍵のパスフレーズを出力できることを確認してください。
この後、Webserver を手作業で起動するときに、パスフレーズを求めるプロンプトは表示されません。たとえば、ポート 8080 と 8888 で待機しているセキュア Webserver で、RSA を使用して暗号されている両ポート用の秘密鍵を持っている場合、keypass ファイルは次のようになります。
# !/bin/ksh host=`echo $1 | cut -d: -f1` port=`echo $1 | cut -d: -f2` algorithm=$2 if [ "$host" = "button-1.eng.sun.com" -a "$algorithm" = "RSA" ]; then case "$port" in 8080) echo passphrase-for-8080;; 8888) echo passphrase-for-8888;; esac fi |
keypass ファイルは、所有者以外が読み取り、書き込み、実行を行えないようにしてください。
httpd.conf ファイルで、Webserver が Sun Cluster HA for Apache によって検証されるたびにメッセージをログに記録するのを防止するための警告を SSLLogLevel が出すように設定します。
SSLLogLevel warn |
Apache 起動 / 停止スクリプトファイル (Bin_dir/apachect1) 内のパスを更新します。
Apache のデフォルトのパスを変更し、Apache のディレクトリ構造と一致させてください。
次のタスクを実行して構成の変更内容を確認します。
この手順では、セキュアバージョンの Apache Webserver をインストールします。非セキュア Apache Webserver のインストール手順については、「非セキュア Apache Webserver のインストール」を参照してください。
クラスタメンバー上でスーパーユーザーになります。
Apache のインストールマニュアルに説明されているインストール手順を使用して、apache-ssl と Apache ソフトウェアをインストールします。
apache-ssl をインストールするには、Apache のインストールマニュアルまたは http://www.apache-ssl.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 を設定できます。
証明書とキーをすべてインストールします。
秘密鍵はすべて、暗号化解除されて格納されていることを確認してください。
この後、Webserver を手作業で起動するときに、パスフレーズを求めるプロンプトは表示されません。
Apache 起動 / 停止スクリプトファイル (Bin_dir/httpsdct1) 内のパスを更新します。
Apache のデフォルトのパスを変更し、Apache のディレクトリ構造と一致させてください。
次のタスクを実行して構成の変更内容を確認します。
最初に Sun Cluster をインストールするときに、Sun Cluster HA for Apache をインストールしなかった場合は、「Sun Cluster HA for Apache パッケージのインストール」に進みます。パッケージがインストールされている場合は、「Sun Cluster HA for Apache のインストールと構成」に進みます。
Sun Cluster の初回のインストール時に Sun Cluster HA for Apache パッケージをインストールしなかった場合は、この手順でパッケージをインストールしてください。この手順は、Sun Cluster HA for Apache パッケージをインストールする各クラスタノード上で個別に実行します。この手順の実行には、Sun Cluster Agents CD が必要です。
複数のデータサービスを同時にインストールする場合は、『Sun Cluster ソフトウェアのインストール (Solaris OS 版)』の「ソフトウェアのインストール」に記載されている手順を実行してください。
次のインストールツールのどちらかを使用して、Sun Cluster HA for Apache パッケージをインストールします。
Web Start プログラム
scinstall ユーティリティー
Solaris 10 を使用している場合は、これらのパッケージを大域ゾーンにだけインストールしてください。パッケージをインストールしたあとで作成されたローカルゾーンにそれらのパッケージが転送されないようにするには、scinstall ユーティリティーを使用してパッケージをインストールしてください。Web Start プログラムは使用しないでください。
Web Start プログラムは、コマンド行インタフェース (CLI) またはグラフィカルユーザーインタフェース (GUI) を使用して実行できます。CLI と GUI での作業の内容と手順はほとんど同じです。Web Start プログラムの詳細は、installer(1M) のマニュアルページを参照してください。
Sun Cluster HA for Apache パッケージをインストールするクラスタノード上で、スーパーユーザーになります。
(省略可能) GUI で Web Start プログラムを実行する場合は、DISPLAY 環境変数が設定されていることを確認してください。
CD-ROM ドライブに Sun Cluster Agents CD を挿入します。
ボリューム管理デーモン vold(1M) が実行されており、CD-ROM デバイスを管理するように構成されている場合は、デーモンによって CD-ROM が自動的に /cdrom/cdrom0 ディレクトリにマウントされます。
CD-ROM の Sun Cluster HA for Apache コンポーネントディレクトリに切り替えます。
Sun Cluster HA for Apache データサービスの Web Start プログラムは、このディレクトリに入っています。
# cd /cdrom/cdrom0/components/SunCluster_HA_Apache_3.1 |
Web Start プログラムを起動します。
# ./installer |
表示される手順に従って、ノードに Sun Cluster HA for Apache パッケージをインストールします。
インストールが終了すると、Web Start プログラムのインストールサマリーが出力されます。この出力を使用して、インストール時に Web Start によって作成されたログを確認できます。これらのログは、/var/sadm/install/logs ディレクトリにあります。
Web Start プログラムを終了します。
Sun Cluster Agents CD を CD-ROM ドライブから取り出します。
「Sun Cluster HA for Apache のインストールと構成」に進みます。
この手順は、Sun Cluster HA for Apache をマスターできるすべてのクラスタメンバーで実行してください。
Sun Cluster Agents CD が存在することを確認します。
CD-ROM ドライブに Sun Cluster Agents CD をロードします。
オプションは指定せずに、scinstall ユーティリティーを実行します。
scinstall ユーティリティーが対話型モードで起動します。
メニューオプション「Add Support for New Data Service to This Cluster Node」を選択します。
scinstall ユーティリティーにより、ほかの情報を入力するためのプロンプトが表示されます。
Sun Cluster Agents CD のパスを指定します。
ユーティリティーはこの CD をデータサービス CD-ROM として示します。
インストールするデータサービスを指定します。
選択したデータサービスが scinstall ユーティリティーによって示され、選択を確定するように求められます。
scinstall ユーティリティーを終了します。
ドライブから CD を取り出します。
「Sun Cluster HA for Apache のインストールと構成」に進みます。
この手順では、scrgadm(1M) コマンドを使って Sun Cluster HA for Apache の登録と構成を行う方法を説明します。
Apache は、フェイルオーバーサービスまたはスケーラブルサービスとして構成できます。
フェイルオーバーサービスとして Apache を構成する場合は、Apache アプリケーションリソースとネットワークリソースは単一のリソースグループに配置します。
スケーラブルサービスとして Apache を構成する場合は、Apache アプリケーションリソースとネットワークリソースのフェイルオーバーリソースグループに、それぞれ 1 つずつスケーラブルリソースグループを作成します。
スケーラブルリソースグループはフェイルオーバーリソースグループに依存します。Apache をスケーラブルサービスとして構成する場合には、追加の手順が必要になります。このような手順には、その先頭部分に「スケーラブルサービスのみ」という表示をして区別します。Apache をスケーラブルサービスとして構成しない場合は、これらの手順は省略してください。
以下の各項では、Sun Cluster HA for Apache リソースの登録と構成について説明します。拡張プロパティーの詳細は、付録 A 「Sun Cluster HA for Apache 拡張プロパティー」を参照してください。「調整可能」の欄には、そのプロパティーをいつ変更できるかが示されています。
Sun Cluster の全プロパティーの詳細は、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の付録 A「標準プロパティー」を参照してください。
リソースの拡張プロパティーを設定するには、リソースを作成または変更する scrgadm(1M) コマンドに次のオプションを含めます。
-x property=value |
設定する拡張プロパティーを指定します。
設定する拡張プロパティーの値を指定します。
リソースの作成後は、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の第 2 章「データサービスリソースの管理」に示されている手順でリソースを構成できます。
Web サーバーの障害モニターで、Web サーバーが提供するアプリケーション (URI) の任意リストを検証する場合は、 Monitor_Uri_List 拡張プロパティーを設定する必要があります。この拡張プロパティーによって、拡張された検証機能が提供されます。また、使用している Web サーバーのほかにサービスを階層状にする場合に、このプロパティーは有用です。Monitor_Uri_List 拡張プロパティーは、セキュア Sun Cluster HA for Apache インスタンスではサポートされません。Monitor_Uri_List 拡張プロパティーを設定しない場合、障害モニターは標準の検証を実行します。詳細は、「Sun Cluster HA for Apache 障害モニターの調整」を参照してください。次の例は、Sun Cluster HA for Apache インスタンスを構成に追加する場合の Monitor_Uri_List 拡張プロパティーの設定方法を示しています。
(デフォルトの負荷分散で非セキュア Apache インスタンスを追加する) # scrgadm -a -j apache-insecure-1 -g resource-group-1 \ -t SUNW.apache -y Network_resources_used=schost-1, ... \ -y Scalable=True -y Port_list=8000/tcp -x Bin_dir=/opt/apache/bin \ -x Monitor_Uri_list=http://schost-1:8000/servlet/monitor |
(非セキュア Apache アプリケーションリソースのインスタンスを追加する) # scrgadm -a -j apache-insecure-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 \ -x Monitor_Uri_list=http://schost-1:80/servlet/monitor |
任意のクラスタメンバーでこの手順を実行してください。
クラスタメンバー上でスーパーユーザーになります。
データサービスのリソースタイプを登録します。
# scrgadm -a -t SUNW.apache |
データサービスのリソースタイプを追加します。
当該データサービス用にあらかじめ定義されているリソースタイプを指定します。
ネットワークとアプリケーションのリソースを格納するためのフェイルオーバーリソースグループを作成します。
このリソースグループは、フェイルオーバーサービスとスケーラブルサービスの両方に必要です。フェイルオーバーサービスの場合、このリソースグループはネットワークリソースとフェイルオーバーアプリケーションリソースの両方を含みます。スケーラブルサービスの場合、ネットワークリソースのみを含みます。このグループとアプリケーションリソースを含むリソースグループとの間に、依存性が作成されます。
必要に応じて、-h オプションを指定してデータサービスを実行できる一群のノードを選択することもできます。
# scrgadm -a -g resource-group [-h nodelist] |
新しい構成を追加します。
追加するフェイルオーバーリソースグループの名前を指定します。任意の名前を指定できますが、クラスタ内で一意のリソースグループ名にする必要があります。
マスターを識別する物理ノード名または ID をコンマで区切って指定します (任意)。フェイルオーバー時は、この順序で主ノードが決まります。
-h を使用してノードリストの順序を指定します。クラスタ内にあるすべてのノードが潜在マスターである場合、-h オプションを使用する必要はありません。
使用しているすべてのネットワークアドレスがネームサービスデータベースに追加されていることを確認します。
Sun Cluster を始めてインストールするときに、この確認を行います。詳細については、『Sun Cluster ソフトウェアのインストール (Solaris OS 版)』の計画に関する章を参照してください。
ネームサービスの検索が原因で障害が発生するのを防ぐために、すべてのクラスタノードの /etc/inet/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 で指定されるノードと相互に排他的になります。
各ノード上の IP ネットワークマルチパス グループをコンマで区切って指定します (省略可能)。netiflist の各要素は、netif@node の形式にする必要があります。netif は IP ネットワークマルチパス グループ名 (sc_ipmp0 など) として指定できます。ノードは、ノード名またはノード ID (sc_ipmp0@1、sc_ipmp@phys-schost-1 など) で識別できます。
現バージョンの Sun Cluster では、netif にアダプタ名を使用できません。
スケーラブルサービスのみ : 希望するすべてのクラスタノードで実行するスケーラブルリソースグループを作成します。
Sun Cluster HA for Apache をフェイルオーバーデータサービスとして実行する場合は、手順 8 に進みます。
データサービスアプリケーションリソースを保持するリソースグループを作成します。主ノードの最大数と希望数を指定する必要があります。
一部のノードしかこのリソースグループの主ノードになれない場合は、リソースグループの作成時に -h オプションを使用して主ノードになれるノードの名前を指定する必要があります。
このリソースグループと手順 3 で作成したフェイルオーバーリソースグループとの間の依存性についても指定する必要があります。この依存性によって、フェイルオーバー時に 2 つのリソースグループが同じノードでオンラインになったとき、リソースグループマネージャー (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 データサービスに属する拡張プロパティーをさらに設定し、それらのデフォルト値を上書きできます。どのような拡張プロパティーがあるかについては、付録 A 「Sun Cluster HA for Apache 拡張プロパティー」を参照してください。
フェイルオーバーサービスのみ : フェイルオーバーリソースグループにアプリケーションリソースを作成します。
この手順は、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 |
共有アドレスリソースと障害モニターを有効に設定し、リソースグループを MANAGED 状態に切り替え、オンラインにします。
フェイルオーバーリソースグループの名前を指定します。
スケーラブルサービスのみ : スケーラブルリソースグループをオンラインにします。
# scswitch -Z -g resource-group |
リソースとモニターを使用可能にし、リソースグループを 管理状態にし、オンラインにします。
スケーラブルリソースグループの名前を指定します。
スケーラブルサービスの場合、次のリソースグループを作成します。
ネットワークリソースを含むフェイルオーバーリソースグループ
アプリケーションリソースを含むスケーラブルリソースグループ
次に、スケーラブル Apache サービスを 2 ノードクラスタに登録する例を示します。
クラスタ情報 ノード名: phys-schost-1, phys-schost-2 共有アドレス: schost-1 リソースグループ: 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 ノードクラスタで登録する例を示します。
クラスタ情報 ノード名: phys-schost-1, phys-schost-2 論理ホスト名: schost-1 リソースグループ: resource-group-1 (すべてのリソース用) リソース: 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 |
SUNW.HAStoragePlus リソースタイプは、Sun Cluster 3.0 5/02 で導入されました。この新しいリソースタイプは、SUNW.HAStorage と同じ動作を実行し、HA ストレージとデータサービス間のアクションを同期化します。
SUNW.HAStoragePlus には、ローカルファイルシステムを高可用性にする追加機能があります。
背景情報については、SUNW.HAStoragePlus(5)のマニュアルページと『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「リソースグループとディスクデバイスグループの関係」を参照してください。手順については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「リソースグループとディスクデバイスグループ間での起動の同期」を参照してください。(5/02 以前の Sun Cluster 3.0 バージョンを使用している場合は、SUNW.HAStoragePlus ではなく SUNW.HAStorage を設定する必要があります。手順については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「リソースグループとディスクデバイスグループ間での起動の同期」を参照してください。)
Sun Cluster HA for Apache を構成すると、ネットワークリソース(論理ホスト名または共有アドレス) とポート番号によって、Web ブラウザから Web ページを開くことができます。scswitch(1M) コマンドを使用してスイッチオーバーを実行し、サービスが引き続き二次ノードでも実行でき、さらに元の主ノードに戻すことができることを確認してください。
Sun Cluster HA for Apache 障害モニターは、リソースタイプが SUNW.apache であるリソースに含まれます。
障害モニターの動作は、リソースのシステムプロパティーと拡張プロパティーによって制御されます。事前に設定された障害モニターの動作は、これらのプロパティーのデフォルト値に基づいています。現在の動作は、ほとんどの Sun Cluster システムに適しているはずです。したがって、Sun Cluster HA for Apache 障害モニターを調整するのは、事前に設定されたこの動作を変更したい場合「だけに」留めるべきです。
Sun Cluster HA for Apache 障害モニターの調整では次のことを行います。
障害モニターの検証間隔を設定する。
障害モニターの検証タイムアウトを設定する。
継続的な障害とみなす基準を定義する。
リソースのフェイルオーバー動作を指定する。
これらの作業を実施する上で必要となる、Sun Cluster HA for Apache 障害モニターについての情報は、このあとの項を参照してください。
Sun Cluster HA for Apache の登録と構成を行う際には、Sun Cluster HA for Apache 障害モニターを調整してください。詳細は、「Sun Cluster HA for Apache のインストールと構成」を参照してください。
詳しい情報については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「Sun Cluster データサービス用に障害モニターを調整する」を参照してください。
Sun Cluster HA for Apache の検証機能は、Apache サーバーの状態を照会する要求をサーバーに送信します。
Apache サーバーを照会する前に、検証機能はネットワークリソースがこの Apache リソース用に構成されているかをチェックして確認します。ネットワークリソースが構成されていない場合は、エラーメッセージ (No network resources found for resource.) が記録され、検証はエラー終了します。
非セキュア Webserver については、Apache サーバーに接続し、HTTP 要求を送信して応答を受け取ることで HTTP 1.0 HEAD 検査を実行します。検証機能は、各 IP アドレスとポートの組み合わせで Apache サーバーに順番に接続します。
この照会の結果は、異常か正常のどちらかになります。検証機能が Apache サーバーからの応答を正常に受信した場合、検証機能は無限ループに戻り、検証と休止の次のサイクルを開始します。
照会は、ネットワークトラフィックの混雑、過剰なシステム負荷、不適切な構成など、さまざまな理由によって失敗します。構成の不備は、検証中のすべての IP アドレスとポートのペアで待機するように Apache サーバーを構成しなかった場合に発生します。Apache サーバーは、このリソースに指定した各 IP アドレスに対し、それぞれポートを提供する必要があります。
致命的な異常とみなされる検証異常は、以下のとおりです。
サーバーへの接続に失敗した場合。次のエラーメッセージフラグが表示されます。%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 はポート番号です。2 番めの %s はエラーの詳細を意味します。
Failed to communicate with server %s port %d: %s |
Monitor_Uri_List 拡張プロパティー URI を構成している場合、検証機能は Sun Cluster HA for Apache サーバーに接続し、Monitor_Uri_List 内の各 URI に対して、HTTP 要求を送信して応答を受け取ることで HTTP 1.1 GET 検査を実行します。HTTP サーバーのリターンコードが 500 (Internal Server Error) となるか接続に失敗した場合、検証は対応処置を実行します。
HTTP 要求の結果は、失敗または成功のどちらかです。すべての要求で Sun Cluster HA for Apache サーバーからの応答を正常に受信した場合、検証機能はサイクルに戻り、検証と休止の次のサイクルを開始します。
大量のネットワークトラフィック、大きなシステム負荷、不正な構成は、HTTP GET 検証の失敗の原因になります。Monitor_Uri_List の URI に無効なポートまたはホスト名が含まれていた場合、Monitor_Uri_List の構成ミスは障害の原因になります。たとえば、Web サーバーのインスタンスが論理ホストの schost-1 で待機しており、URI は http://schost-2/servlet/monitor として指定されている場合、検証機能は /servlet/monitor を要求するために schost-2 に問い合わせようとします。
セキュア Webserver については、検証機能は各 IP アドレスとポートの組み合わせに接続します。この接続試行に成功した場合、検証機能は接続を切断して、成功状態を返します。これ以上の検査は行われません。
異常履歴に基づいて、データサービスのローカルでの再起動、またはデータサービスのフェイルオーバーのいずれかを実行します。詳しい情報については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「Sun Cluster データサービス用に障害モニターを調整する」を参照してください。
次の条件に当てはまる場合は、SUNW.apache リソースタイプをアップグレードしてください。
旧バージョンの Sun Cluster HA for Apache データサービスからアップグレードする
このデータサービスの新機能を使用する必要がある
リソースタイプをアップグレードする一般的な手順については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の「リソースタイプの更新」を参照してください。このあと、SUNW.apache リソースタイプのアップグレードを完了するために必要な情報を示します。
次の表に、リソースタイプのバージョンと Sun Cluster データサービスのリリース間の関係を示します。Sun Cluster データサービスのリリースは、リソースタイプが導入されたバージョンを表します。
リソースタイプバージョン |
Sun Cluster データサービスのリリース |
---|---|
1 |
1.0 |
3.1 |
3.1 5/03 |
4 |
3.1 10/03 |
登録されているリソースタイプのバージョンを調べるには、次のどちらかのコマンドを使用します。
scrgadm -p
scrgadm -pv
このリソースタイプに対応するリソースタイプ登録 (RTR) ファイルは、/opt/SUNWscapc/etc/SUNW.apache です。
SUNW.apache リソースタイプの各インスタンスを編集するために必要な情報は、次のとおりです。
移行はいつでも実行できます。
Sun Cluster HA for Apache データサービスの新機能を使用する場合は、Type_version プロパティーに設定する必要がある値は 4 です。
配備済みのアプリケーションを監視する必要がある場合は、Monitor_Uri_List の拡張プロパティーを 1 つの URI または URI のリストに対して設定し、検証するアプリケーションの場所を指定します。
次の例に、SUNW.apache リソースタイプのインスタンスを変更するコマンドの例を示します。
# scrgadm -c -j apache-rs -y Type_version=4 \ -x Monitor_Uri_List=http://schost-1/test.html |
このコマンドは、apache-rs という名前の SUNW.apache リソースを次のように変更します。
このリソースのType_version プロパティーには 4 が設定されます。
障害モニターの検証機能は、URI http://schost-1/test.html を監視します。