付録D.4 MC/ServiceGuardの設定
HTTP Serverと,必要であれば関連プログラムをパッケージに定義します。ここで説明していない内容および詳細説明については, MC/ServiceGuardのマニュアルを参照してください。
(1) クラスタの構成およびパッケージの構成
クラスタの構成およびパッケージの構成例を次に示します。
(a) クラスタ構成例
CLUSTER_NAME cluster1 FIRST_CLUSTER_LOCK_VG /dev/vg01 NODE_NAME original_node NETWORK_INTERFACE lan0 HEARTBEAT_IP 172.16.1.1 FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t2d0 NODE_NAME adoptive_node NETWORK_INTERFACE lan0 HEARTBEAT_IP 172.16.1.2 FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t2d0 HEARTBEAT_INTERVAL 1000000 NODE_TIMEOUT 2000000 AUTO_START_TIMEOUT 600000000 NETWORK_POLLING_INTERVAL 2000000 MAX_CONFIGURED_PACKAGES 10 VOLUME_GROUP /dev/vg01
(b) パッケージ構成例
PACKAGE_NAME CosminexusHTTPServer FAILOVER_POLICY CONFIGURED_NODE FAILBACK_POLICY MANUAL NODE_NAME original_node NODE_NAME adoptive_node RUN_SCRIPT /etc/cmcluster/CosminexusHTTPServer/control.sh RUN_SCRIPT_TIMEOUT NO_TIMEOUT HALT_SCRIPT /etc/cmcluster/CosminexusHTTPServer/control.sh HALT_SCRIPT_TIMEOUT NO_TIMEOUT SERVICE_NAME httpsd_check SERVICE_FAIL_FAST_ENABLED NO SERVICE_HALT_TIMEOUT 300 SUBNET 172.16.1.0 PKG_SWITCHING_ENABLED YES NET_SWITCHING_ENABLED YES NODE_FAIL_FAST_ENABLED NO
(2) パッケージ制御スクリプトの記述
HTTP Serverを監視する場合のパッケージ制御スクリプトの記述について説明します。次に示す説明以外は,個々のシステムに応じて設定してください。
(a) スクリプトの登録
作成したシェルスクリプトhttpsd_monitorを,MC/ServiceGuardが監視するサービスとして登録します。次の例では,httpsd_monitorが/opt/hitachi/httpsd/binに格納されていることを前提としています。
なお,HTTP Serverのコンフィグファイルに指定したPidFileディレクティブの値と,httpsd_monitorの引数には,同じ値を指定します。HTTP Serverを監視対象としない場合,SERVER_NAMEとSERVER_CMDは登録する必要はありません。
PATH=/sbin:/usr/bin:/usr/sbin:/etc:/bin VGCHANGE="vgchange -a e" VG[0]=/dev/vg01 LV[0]=/dev/vg01/lvol1 FS[0]=/MCSG FS_MOUNT_OPT[0]="-o rw" IP[0]=172.16.1.3 SUBNET[0]=172.16.1.0 SERVICE_NAME[0]="httpsd_check" SERVICE_CMD[0]="/opt/hitachi/httpsd/bin/httpsd_monitor /opt/hitachi/httpsd/logs/httpd.pid" SERVICE_RESTART[0]="-r 0"
(b) 関数の定義
パッケージ制御スクリプト内の関数customer_defined_run_cmds(パッケージ起動時)と,関数customer_defined_halt_cmds(パッケージ停止時)内に,HTTP Serverを起動または終了させる処理を記述してください。
(起動)
function customer_defined_run_cmds { # ADD customer defined run commands. : # do nothing instruction, because a function must contain some command. /opt/hitachi/httpsd/sbin/httpsdctl start test_return 51 }
(終了)
function customer_defined_halt_cmds { # ADD customer defined halt commands. : # do nothing instruction, because a function must contain some command. /opt/hitachi/httpsd/sbin/httpsdctl stop test_return 52 }
(3) 注意事項
ほかのノードへのフェイルオーバが発生した場合,通常のHTTP接続,SSLを使用した接続はすべて切断され,待機ノードには引き継がれません。クライアントは,再接続してください。