14.3.2.2. Configuring shared store high availability
この手順では、ブローカークラスターの共有ストアの高可用性を設定する方法を説明します。
前提条件
共有ストレージシステムは、ライブブローカーおよびバックアップブローカーからアクセスできる必要があります。
- 通常、Storage Area Network (SAN) またはネットワークファイルシステム (NFS) サーバーを使用して共有ストアを提供します。サポートされるネットワークファイルシステムの詳細は、Red Hat AMQ 7 Supported Configurations を参照してください。
- JDBC ベースの永続性を設定している場合は、指定したデータベースを使用して共有ストアを提供できます。JDBC 永続性の設定方法は、「データベースのメッセージデータの永続化」 を参照してください。
手順
クラスターのブローカーをライブバックアップグループにグループ化します。
ほとんどの場合、ライブバックアップグループは、ライブブローカーとバックアップブローカーという 2 つのブローカーで設定される必要があります。クラスターに 6 つのブローカーがある場合は、3 つのライブバックアップグループが必要になります。
1 つのライブブローカーと 1 つのバックアップブローカーで設定される最初のライブバックアップグループを作成します。
-
ライブブローカーの
<broker_instance_dir> /etc/broker.xml
設定ファイルを開きます。 以下を使用している場合:
共有ストアを提供するネットワークファイルシステム。ライブブローカーのページング、バインディング、ジャーナル、および大きなメッセージディレクトリーが、バックアップブローカーがアクセスできる共有場所をポイントすることを確認します。
<configuration> <core> ... <paging-directory>../sharedstore/data/paging</paging-directory> <bindings-directory>../sharedstore/data/bindings</bindings-directory> <journal-directory>../sharedstore/data/journal</journal-directory> <large-messages-directory>../sharedstore/data/large-messages</large-messages-directory> ... </core> </configuration>
共有ストアを提供するデータベース。マスターとバックアップブローカーの両方が同じデータベースに接続でき、同じ設定を
broker.xml
設定ファイルのdatabase-store
要素に指定できるようにします。以下は設定例です。<configuration> <core> <store> <database-store> <jdbc-connection-url>jdbc:oracle:data/oracle/database-store;create=true</jdbc-connection-url> <jdbc-user>ENC(5493dd76567ee5ec269d11823973462f)</jdbc-user> <jdbc-password>ENC(56a0db3b71043054269d11823973462f)</jdbc-password> <bindings-table-name>BINDINGS_TABLE</bindings-table-name> <message-table-name>MESSAGE_TABLE</message-table-name> <large-message-table-name>LARGE_MESSAGES_TABLE</large-message-table-name> <page-store-table-name>PAGE_STORE_TABLE</page-store-table-name> <node-manager-store-table-name>NODE_MANAGER_TABLE<node-manager-store-table-name> <jdbc-driver-class-name>oracle.jdbc.driver.OracleDriver</jdbc-driver-class-name> <jdbc-network-timeout>10000</jdbc-network-timeout> <jdbc-lock-renew-period>2000</jdbc-lock-renew-period> <jdbc-lock-expiration>15000</jdbc-lock-expiration> <jdbc-journal-sync-period>5</jdbc-journal-sync-period> </database-store> </store> </core> </configuration>
HA ポリシーの共有ストアを使用するようにライブブローカーを設定します。
<configuration> <core> ... <ha-policy> <shared-store> <master> <failover-on-shutdown>true</failover-on-shutdown> </master> </shared-store> </ha-policy> ... </core> </configuration>
failover-on-shutdown
- このブローカーが正常に停止された場合、このプロパティーはバックアップブローカーが稼働して引き継ぐかどうかを制御します。
-
バックアップブローカーの
<broker_instance_dir> /etc/broker.xml
設定ファイルを開きます。 以下を使用している場合:
共有ストアを提供するネットワークファイルシステム。バックアップブローカーのページング、バインディング、ジャーナル、および大きなメッセージディレクトリーがライブブローカーと同じ共有場所をポイントすることを確認します。
<configuration> <core> ... <paging-directory>../sharedstore/data/paging</paging-directory> <bindings-directory>../sharedstore/data/bindings</bindings-directory> <journal-directory>../sharedstore/data/journal</journal-directory> <large-messages-directory>../sharedstore/data/large-messages</large-messages-directory> ... </core> </configuration>
-
共有ストアを提供するデータベース。マスターとバックアップブローカーの両方が同じデータベースに接続でき、
broker.xml
設定ファイルのdatabase-store
要素に同じ設定が指定されるようにします。
HA ポリシーの共有ストアを使用するようにバックアップブローカーを設定します。
<configuration> <core> ... <ha-policy> <shared-store> <slave> <failover-on-shutdown>true</failover-on-shutdown> <allow-failback>true</allow-failback> <restart-backup>true</restart-backup> </slave> </shared-store> </ha-policy> ... </core> </configuration>
failover-on-shutdown
- このブローカーが稼働状態になり、通常は停止された場合、このプロパティーはバックアップブローカー ( 元のライブブローカー ) が有効になり、引き継ぐかどうかを制御します。
allow-failback
フェイルオーバーが発生し、バックアップブローカがライブブローカを引き継いだ場合、このプロパティーは、バックアップブローカが再起動してクラスターに再接続したときに、元のライブブローカにフェイルバックするかどうかを制御します。
注記フェイルバックは、ライブバックアップのペア (単一のバックアップブローカーとペアの 1 つのライブブローカー) を対象としています。ライブブローカーが複数のバックアップで設定されている場合、フェイルバックは発生しません。代わりに、フェイルオーバーイベントが発生すると、バックアップブローカーはライブになり、次のバックアップがバックアップになります。元のライブブローカーがオンラインに戻ると、現在のブローカーにバックアップがすでにあるため、フェイルバックを開始できなくなります。
restart-backup
-
このプロパティーは、ライブブローカーにフェイルバックした後にバックアップブローカーを自動的に再起動するかどうかを制御します。このプロパティーのデフォルト値は
true
です。
-
ライブブローカーの
- クラスター内の残りのライブバックアップグループごとに、ステップ 2 を繰り返します。