ここでは、Sun Cluster HA for WebSphere MQ のインストールと構成の計画について説明します。
次の制限事項を守らないと、データサービスの構成がサポートされない場合があります。
ここで示す制限事項を考慮して、Sun Cluster HA for WebSphere MQ のインストールと構成の計画を行ってください。ここでは、Sun Cluster HA for WebSphere MQ にのみ適用されるソフトウェアとハードウェア構成の制限事項を示します。
すべてのデータサービスに適用される制限事項については、Sun Cluster Release Notes を参照してください。
Sun Cluster HA for WebSphere MQ データサービスは、フェイルオーバーサービスとしてのみ構成できます – WebSphere MQ はスケーラブルなサービスとしては運用できないため、Sun Cluster HA for WebSphere MQ データサービスは、フェイルオーバーサービスとして運用するようにのみ構成できます。
/var/mqm を広域ファイルシステムとしてマウント – WebSphere MQ のインスタンスを複数インストールする場合は、/var/mqm を広域ファイルシステムとしてマウントする必要があります。
この制約が生じるのは、WebSphere MQ がキーを使用して内部制御構造を作成するからです。これらのキーは ftok() 関数呼び出しから、ファイルシステムの i ノード番号に基づいて生成されます。i ノードが異なるファイルシステム上にあると、クラッシュする可能性があります。したがって、/var/mqm を広域ファイルシステムとしてマウントし、この問題が発生しないようにします。
複数の WebSphere MQ インスタンスをインストールする予定がない場合は、/var/mqm を広域ファイルシステムとしてマウントする必要はありません。しかし、将来別の WebSphere MQ Manager を配備したときに、 /var/mqm を広域ファイルシステムとしてマウントするという制約が適用される可能性を考慮し、 /var/mqm は広域ファイルシステムとしてマウントすることを推奨します。
WebSphere MQ をクラスタファイルシステムにインストール – WebSphere MQ 製品は最初、 /opt/mqm および /var/mqm にインストールされます。しかし、WebSphere MQ Manager が作成されたときに作成されるデフォルトのディレクトリ位置は、/var/mqm/qmgrs/<qmgr_name> および /var/mqm/log/<qmgr_name> です。これらのディレクトリ位置は、フェイルオーバーファイルシステム (FFS) としてでも、広域ファイルシステム (GFS) としてでもマウントできます。
WebSphere MQ Manager をフェイルオーバーファイルシステムに配備し、複数の WebSphere MQ Managers の配備を予定している場合は、広域ファイルシステム /var/mqm からフェイルオーバーファイルシステムへのシンボリックリンクを作成する必要があります。広域ファイルシステムにローカルとしてマウントをネストすることはできませんが、フェイルオーバーファイルシステムへのシンボリックリンクによって、この問題を克服できます。
広域ファイルシステムをマウントする場合は /global という接頭辞を指定し、フェイルオーバーファイルシステムをマウントする場合は /local という接頭辞を指定するようにしてください。 必須ではありませんが、こうするのが最も好都合です。
フェイルオーバーファイルシステムに WebSphere MQ Managers が 2 つあり、/var/mqm に広域ファイルシステムへのシンボリックリンクを設定する例を示します。最終出力は、Solaris Volume Manager を使用して配備された WebSphere MQ に対応する /etc/vfstab エントリのサブセットです。
# ls -l /var/mqm lrwxrwxrwx 1 root other 11 Sep 17 16:53 /var/mqm -> /global/mqm # # ls -l /global/mqm/qmgrs total 6 drwxrwxr-x 8 mqm mqm 512 Sep 17 09:57 @SYSTEM lrwxrwxrwx 1 root other 22 Sep 17 17:19 qmgr1 -> /local/mqm/qmgrs/qmgr1 lrwxrwxrwx 1 root other 22 Sep 17 17:19 qmgr2 -> /local/mqm/qmgrs/qmgr2 # # ls -l /global/mqm/log total 4 lrwxrwxrwx 1 root other 20 Sep 17 17:18 qmgr1 -> /local/mqm/log/qmgr1 lrwxrwxrwx 1 root other 20 Sep 17 17:19 qmgr2 -> /local/mqm/log/qmgr2 # # more /etc/vfstab (Subset of the output) /dev/md/dg_d3/dsk/d30 /dev/md/dg_d3/rdsk/d30 /global/mqm ufs 3 yes logging,global /dev/md/dg_d3/dsk/d33 /dev/md/dg_d3/rdsk/d33 /local/mqm/qmgrs/qmgr1 ufs 4 no logging /dev/md/dg_d3/dsk/d36 /dev/md/dg_d3/rdsk/d36 /local/mqm/log/qmgr1 ufs 4 no logging /dev/md/dg_d4/dsk/d43 /dev/md/dg_d4/rdsk/d43 /local/mqm/qmgrs/qmgr2 ufs 4 no logging /dev/md/dg_d4/dsk/d46 /dev/md/dg_d4/rdsk/d46 /local/mqm/log/qmgr2 ufs 4 no logging # |
広域ファイルシステムに WebSphere MQ Managers が 2 つあり、/var/mqm に広域ファイルシステムへのシンボリックリンクを設定する例を示します。最終出力は、Solaris Volume Manager を使用して配備された WebSphere MQ に対応する /etc/vfstab エントリのサブセットです。
# ls -l /var/mqm lrwxrwxrwx 1 root other 11 Jan 8 14:17 /var/mqm -> /global/mqm # # ls -l /global/mqm/qmgrs total 6 drwxrwxr-x 8 mqm mqm 512 Dec 16 09:57 @SYSTEM drwxr-xr-x 4 root root 512 Dec 18 14:20 qmgr1 drwxr-xr-x 4 root root 512 Dec 18 14:20 qmgr2 # # ls -l /global/mqm/log total 4 drwxr-xr-x 4 root root 512 Dec 18 14:20 qmgr1 drwxr-xr-x 4 root root 512 Dec 18 14:20 qmgr2 # # more /etc/vfstab (Subset of the output) /dev/md/dg_d4/dsk/d40 /dev/md/dg_d4/rdsk/d40 /global/mqm ufs 3 yes logging,global /dev/md/dg_d4/dsk/d43 /dev/md/dg_d4/rdsk/d43 /global/mqm/qmgrs/qmgr1 ufs 4 yes logging,global /dev/md/dg_d4/dsk/d46 /dev/md/dg_d4/rdsk/d46 /global/mqm/log/qmgr1 ufs 4 yes logging,global /dev/md/dg_d5/dsk/d53 /dev/md/dg_d5/rdsk/d53 /global/mqm/qmgrs/qmgr2 ufs 4 yes logging,global /dev/md/dg_d5/dsk/d56 /dev/md/dg_d5/rdsk/d56 /global/mqm/log/qmgr2 ufs 4 yes logging,global # |
次の要件を満たさないと、データサービスの構成がサポートされない場合があります。
ここで示す要件に従って、Sun Cluster HA for WebSphere MQ のインストールと構成の計画を行ってください。これらの要件は、Sun Cluster HA for WebSphere MQ にのみ適用されます。 Sun Cluster HA for WebSphere MQ のインストールと構成を始める前に、次の要件を満たしておく必要があります。
WebSphere MQ コンポーネントと依存関係 — Sun Cluster HA for WebSphere MQ データサービスは、WebSphere MQ インスタンスとそれぞれのコンポーネントを保護するように構成できます。以下、各コンポーネントとコンポーネント間の依存関係について簡単に説明します。
表 1–3 WebSphere MQ と依存関係 (-> 記号で示す)
コンポーネント |
説明 |
---|---|
Queue Manager (必須) |
-> SUNW.HAStoragePlus リソース SUNW.HAStoragePlus リソースは、WebSphere MQ のファイルシステムのマウントポイントを管理し、ファイルシステムがマウントされるまでは WebSphere MQ が起動しないようにします。 |
Channel Initiator (任意) |
-> Queue_Manager および Listener リソース Listener に依存しなければならないのは、inetd の代わりに runmqlsr を使用する場合だけです。 デフォルトでは、 WebSphere MQ が Channel Initiator を起動しますが、デフォルト (SYSTEM.CHANNEL.INITQ) 以外のチャネル開始キューが必要な場合は、このコンポーネントを配備する必要があります。 |
Command Server (任意) |
-> Queue_Manager および Listener リソース Listener に依存しなければならないのは、inetd の代わりに runmqlsr を使用する場合だけです。 このコンポーネントは、コマンドキューに送られたコマンドを処理するために WebSphere MQ が必要な場合です。 |
Listener (任意) |
->Queue_Manager リソース このコンポーネントを配備するのは、専用のリスナー (runmqlsr) が必要で、inetd リスナーを使用しない場合です。 |
Trigger Monitor (任意) |
->Queue_Manager および Listener リソース Listener に依存しなければならないのは、inetd の代わりに runmqlsr を使用する場合だけです。 このコンポーネントを配備するのは、トリガーモニターが必要な場合です。 |
各 WebSphere MQ コンポーネントの詳細は、IBM の WebSphere MQ Application Programming マニュアルを参照してください。
各 WebSphere MQ コンポーネントは、/opt/SUNWscmqi/xxx/util に構成/登録ファイルがあります。xxx は個々の WebSphere MQ コンポーネントを表す 3 文字の略語です。 これらのファイルによって、Sun Cluster に WebSphere MQ コンポーネントを登録できます。
これらのファイル内では、該当する依存関係がすでに適用されています。
# cd /opt/SUNWscmqs # # ls -l chi/util total 4 -rwxr-xr-x 1 root sys 720 Dec 20 14:44 chi_config -rwxr-xr-x 1 root sys 586 Dec 20 14:44 chi_register # # ls -l csv/util total 4 -rwxr-xr-x 1 root sys 645 Dec 20 14:44 csv_config -rwxr-xr-x 1 root sys 562 Dec 20 14:44 csv_register # # ls -l lsr/util total 4 -rwxr-xr-x 1 root sys 640 Dec 20 14:44 lsr_config -rwxr-xr-x 1 root sys 624 Dec 20 14:44 lsr_register # # ls -l mgr/util total 4 -rwxr-xr-x 1 root sys 603 Dec 20 14:44 mgr_config -rwxr-xr-x 1 root sys 515 Dec 20 14:44 mgr_register # # ls -l trm/util total 4 -rwxr-xr-x 1 root sys 717 Dec 20 14:44 trm_config -rwxr-xr-x 1 root sys 586 Dec 20 14:44 trm_register # # # more mgr/util/* :::::::::::::: mgr/util/mgr_config :::::::::::::: # # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # This file will be sourced in by mgr_register and the parameters # listed below will be used. # # These parameters can be customized in (key=value) form # # RS - name of the resource for the application # RG - name of the resource group containing RS # QMGR - name of the Queue Manager # PORT - name of the Queue Manager port number # LH - name of the LogicalHostname SC resource # HAS_RS - name of the Queue Manager HAStoragePlus SC resource # RS= RG= QMGR= PORT= LH= HAS_RS= :::::::::::::: mgr/util/mgr_register :::::::::::::: # # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # . `dirname $0`/mgr_config scrgadm -a -j $RS -g $RG -t SUNW.gds \ -x Start_command="/opt/SUNWscmqs/mgr/bin/start-qmgr \ -R $RS -G $RG -Q $QMGR " \ -x Stop_command="/opt/SUNWscmqs/mgr/bin/stop-qmgr \ -R $RS -G $RG -Q $QMGR " \ -x Probe_command="/opt/SUNWscmqs/mgr/bin/test-qmgr \ -R $RS -G $RG -Q $QMGR " \ -y Port_list=$PORT/tcp -y Network_resources_used=$LH \ -x Stop_signal=9 \ -y Resource_dependencies=$HAS_RS # |
WebSphere MQ Manager の保護—
WebSphere MQ インスタンス、すなわち /global/mqm/qmgrs/<qmgr> および /global/mqm/log/<qmgr> に広域ファイルシステムを使用している場合、現在のところ、WebSphere MQ は Sun Cluster 内の別のノード上で Queue Manager が稼働しているかどうかを判別できません。
通常は使用しているクラスタファイルシステム (たとえば FFS なのか GFS なのか) に関係なく、Sun Cluster HA for WebSphere MQ データサービスが Queue Manager の起動と停止を管理します。
しかし、WebSphere MQ インスタンスが広域ファイルシステム上で稼働しているときに、 間違いであったとしても、だれかが Sun Cluster 内の別のノードで Queue Manager を手動で起動する可能性がないわけではありません。
このバグは IBM に報告済みであり、現在、修正作業中です。
この問題を回避する方法は 2 通りあります。
WebSphere MQ インスタンスにフェイルオーバーファイルシステムを使用します。
WebSphere MQ インスタンスをマウントできるのが、1 時点で 1 ノードだけになるので、この方法を推奨します。この構成の場合、WebSphere MQ は Queue Manager がすでに稼働しているかどうかを判別できます。
strmqm/endmqm にシンボリックリンクを作成して check-start (提供スクリプト) を実行します。
/opt/SUNWscmqs/mgr/bin/check-start によって、WebSphere MQ Manager が誤って起動または停止されることがないよう防止されます。
check-start スクリプトは、 WebSphere MQ Manager が Sun Cluster によって起動または停止されることを確認し、手動で WebSphere MQ Manager の起動または停止が試行されるとエラーを報告します。
WebSphere MQ Manager を手動で起動する場合のコマンドを示します。応答は check-start スクリプトによって生成されています。
# strmqm qmgr1 # Request to run </usr/bin/strmqm qmgr1> within SC3.0 has been refused # |
この方法を使用しなければならないのは、WebSphere MQ インスタンスに広域ファイルシステムが必要な場合だけです。この場合に必要な手順の詳細は、次のとおりです。
# cd /opt/mqm/bin # # mv strmqm strmqm_sc3 # mv endmqm endmqm_sc3 # # ln -s /opt/SUNWscmqs/mgr/bin/check-start strmqm # ln -s /opt/SUNWscmqs/mgr/bin/check-start endmqm # |
/opt/SUNWscmqs/mgr/etc/config ファイルを編集し、START_COMMAND と STOP_COMMAND の以下のエントリを変更します。例では、コマンド名に接尾辞 _sc3 を使用していますが、別の名前を選択してもかまいません。
# cat /opt/SUNWscmqs/mgr/etc/config # Copyright 2003 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Usage: # DEBUG=<RESOURCE_NAME> or ALL # START_COMMAND=/opt/mqm/bin/<renamed_strmqm_program> # STOP_COMMAND=/opt/mqm/bin/<renamed_endmqm_program> # DEBUG= START_COMMAND=/opt/mqm/bin/strmqm_sc3 STOP_COMMAND=/opt/mqm/bin/endmqm_sc3 # |
Sun Cluster HA for WebSphere MQ データサービスのホストとなるクラスタノードごとに、この作業を行う必要があります。ただし、crtmq が代わりに strmqm と endmqm を呼び出すので、Queue Manager を作成するまではこの手順を実行しないでください。
この回避方法を採用した場合、WebSphere MQ のメンテナンスが必要になるたびに、元に戻さなければならないことにご注意ください。その後、再びこの回避方法を適用する必要があります。このため、WebSphere MQ が修正されるまでの間は、WebSphere MQ インスタンスにフェイルオーバーファイルシステムを使用するよう推奨します。