5.4. テスト 2: プライマリーノードをパッシブな 3 番目のサイトを使用してフェイルオーバーする
| テストの内容 | 停止した 3 番目のサイトの再登録はありません。 3 番目のサイトが停止している場合でも、フェイルオーバーが機能する。 |
| テストの前提条件 |
|
| テストの手順 |
|
| テストの開始 |
クラスターコマンド |
| 期待される結果 | DC3 には何も変化がありません。SAP HANA システムレプリケーションは古い関係にとどまります。 |
| 初期状態に戻す方法 | 新しいプライマリーに DC3 を再登録し、SAP HANA を起動します。 |
詳細な説明:
clusternode1 または clusternode2 で、クラスターの初期状態を root として確認します。
[root@clusternode1]# pcs status --full Cluster name: cluster1 Cluster Summary: * Stack: corosync * Current DC: clusternode1 (1) (version 2.1.2-4.el8_6.6-ada5c3b36e2) - partition with quorum * Last updated: Mon Sep 4 06:34:46 2023 * Last change: Mon Sep 4 06:33:04 2023 by root via crm_attribute on clusternode1 * 2 nodes configured * 6 resource instances configured Node List: * Online: [ clusternode1 (1) clusternode2 (2) ] Full List of Resources: * auto_rhevm_fence1 (stonith:fence_rhevm): Started clusternode1 * Clone Set: SAPHanaTopology_RH2_02-clone [SAPHanaTopology_RH2_02]: * SAPHanaTopology_RH2_02 (ocf::heartbeat:SAPHanaTopology): Started clusternode2 * SAPHanaTopology_RH2_02 (ocf::heartbeat:SAPHanaTopology): Started clusternode1 * Clone Set: SAPHana_RH2_02-clone [SAPHana_RH2_02] (promotable): * SAPHana_RH2_02 (ocf::heartbeat:SAPHana): Slave clusternode2 * SAPHana_RH2_02 (ocf::heartbeat:SAPHana): Master clusternode1 * vip_RH2_02_MASTER (ocf::heartbeat:IPaddr2): Started clusternode1 Node Attributes: * Node: clusternode1 (1): * hana_rh2_clone_state : PROMOTED * hana_rh2_op_mode : logreplay * hana_rh2_remoteHost : clusternode2 * hana_rh2_roles : 4:P:master1:master:worker:master * hana_rh2_site : DC1 * hana_rh2_sra : - * hana_rh2_srah : - * hana_rh2_srmode : syncmem * hana_rh2_sync_state : PRIM * hana_rh2_version : 2.00.062.00 * hana_rh2_vhost : clusternode1 * lpa_rh2_lpt : 1693809184 * master-SAPHana_RH2_02 : 150 * Node: clusternode2 (2): * hana_rh2_clone_state : DEMOTED * hana_rh2_op_mode : logreplay * hana_rh2_remoteHost : clusternode1 * hana_rh2_roles : 4:S:master1:master:worker:master * hana_rh2_site : DC2 * hana_rh2_sra : - * hana_rh2_srah : - * hana_rh2_srmode : syncmem * hana_rh2_sync_state : SOK * hana_rh2_version : 2.00.062.00 * hana_rh2_vhost : clusternode2 * lpa_rh2_lpt : 30 * master-SAPHana_RH2_02 : 100 Migration Summary: Tickets: PCSD Status: clusternode1: Online clusternode2: Online Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabledこの例の出力は、HANA がプライマリー SAP HANA サーバーである clusternode1 で昇格され、クローンリソースの名前が
SAPHana_RH2_02-cloneであることを表しています。HANA より前に test 3 を実行すると、clusternode2 で昇格される可能性があります。remotehost3 でデータベースを停止します。
remotehost3:rh2adm> HDB stop hdbdaemon will wait maximal 300 seconds for NewDB services finishing. Stopping instance using: /usr/sap/RH2/SYS/exe/hdb/sapcontrol -prot NI_HTTP -nr 02 -function Stop 400 12.07.2023 11:33:14 Stop OK Waiting for stopped instance using: /usr/sap/RH2/SYS/exe/hdb/sapcontrol -prot NI_HTTP -nr 02 -function WaitforStopped 600 2 12.07.2023 11:33:30 WaitforStopped OK hdbdaemon is stopped.remotehost3 でプライマリーデータベースを確認します。
remotehost3:rh2adm> hdbnsutil -sr_stateConfiguration| grep -i "primary masters" primary masters: clusterclusternode2クラスターノードのクラスター内の現在のプライマリーを確認します。
[root@clusterclusternode1]# pcs resource | grep Masters * Masters: [ clusternode2 ]sr_stateを確認して、SAP HANA システムレプリケーションの関係を確認します。clusternode2:rh2adm> hdbnsutil -sr_state System Replication State ~~~~~~~~~~~~~~~~~~~~~~~~ online: true mode: primary operation mode: primary site id: 2 site name: DC1 is source system: true is secondary/consumer system: false has secondaries/consumers attached: true is a takeover active: false is primary suspended: false Host Mappings: ~~~~~~~~~~~~~~ clusternode1 -> [DC3] remotehost3 clusternode1 -> [DC1] clusternode1 clusternode1 -> [DC2] clusternode2 Site Mappings: ~~~~~~~~~~~~~~ DC1 (primary/primary) |---DC3 (syncmem/logreplay) |---DC2 (syncmem/logreplay) Tier of DC1: 1 Tier of DC3: 2 Tier of DC2: 2 Replication mode of DC1: primary Replication mode of DC3: syncmem Replication mode of DC2: syncmem Operation mode of DC1: primary Operation mode of DC3: logreplay Operation mode of DC2: logreplay Mapping: DC1 -> DC3 Mapping: DC1 -> DC2 done.
SAP HANA システムレプリケーション関係には、DC2 および DC3 に複製されるプライマリー(DC1)が 1 つあります。ダウンしている remotehost3 でのレプリケーション関係は、以下を使用して表示できます。
remothost3:rh2adm> hdbnsutil -sr_stateConfiguration
System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~
mode: syncmem
site id: 3
site name: DC3
active primary site: 1
primary masters: clusternode1
done.
offline である remotehost3 上のデータベースは、global.ini ファイルのエントリーをチェックします。
テストを開始:クラスター内でフェイルオーバーを開始し、
SAPHana-clone-resourceの例を移動します。[root@clusternode1]# pcs resource move SAPHana_RH2_02-clone clusternode2注記SAPHana が clusternode2 でプロモートされている場合は、クローンリソースを clusternode1 に移動する必要があります。この例では、SAPHana が clusternode1 で昇格されていることを想定しています。
何も出力されません。以前のテストと同様に場所の制約が作成されるため、次のように表示できます。
[root@clusternode1]# pcs constraint location Location Constraints: Resource: SAPHana_RH2_02-clone Enabled on: Node: clusternode1 (score:INFINITY) (role:Started)クラスターが再び見える場合でも、制約が削除されない限り、この制約によって別のフェイルオーバーが回避されます。もう 1 つの方法は、リソースをクリアすることです。
リソースをクリアします。
[root@clusternode1]# pcs constraint location Location Constraints: Resource: SAPHana_RH2_02-clone Enabled on: Node: clusternode1 (score:INFINITY) (role:Started) [root@clusternode1]# pcs resource clear SAPHana_RH2_02-clone Removing constraint: cli-prefer-SAPHana_RH2_02-cloneリソースをクリーンアップします。
[root@clusternode1]# pcs resource cleanup SAPHana_RH2_02-clone Cleaned up SAPHana_RH2_02:0 on clusternode2 Cleaned up SAPHana_RH2_02:1 on clusternode1 Waiting for 1 reply from the controller ... got reply (done)現在の状態を確認します。同期する必要があるレプリケーションステータスを表示する方法は 3 つあります。remotehost3 のプライマリーから始めます。
remotehost3:rh2adm> hdbnsutil -sr_stateConfiguration| grep -i primary active primary site: 1 primary masters: clusternode1出力には、プライマリーを clusternode2 に移動するためにテストを開始する前にプライマリーであったサイト 1 または clusternode1 が表示されます。次に、新しいプライマリーでシステムレプリケーションのステータスを確認します。まず、新しいプライマリーを検出します。
[root@clusternode1]# pcs resource | grep Master * Masters: [ clusternode2 ]ここでは、remotehost3を再登録する必要がある不整合があります。再度テストを実行すると、プライマリーを元の clusternode1 に戻す可能性があります。この場合、システムのレプリケーションが機能しているかどうかを特定する 3 番目の方法があります。プライマリーノードで、clusternode2 が実行します。
clusternode2:rh2adm> cdpy clusternode2:rh2adm> python $DIR_EXECUTABLE/python_support/systemReplicationStatus.py |Database |Host |Port |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary |Replication |Replication |Replication |Secondary | | | | | | | | |Host |Port |Site ID |Site Name |Active Status |Mode |Status |Status Details |Fully Synced | |-------- |------ |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |--------- |------------- |----------- |----------- |-------------- |------------ | |SYSTEMDB |clusternode2 |30201 |nameserver | 1 | 2 |DC2 |clusternode1 | 30201 | 1 |DC1 |YES |SYNCMEM |ACTIVE | | True | |RH2 |clusternode2 |30207 |xsengine | 2 | 2 |DC2 |clusternode1 | 30207 | 1 |DC1 |YES |SYNCMEM |ACTIVE | | True | |RH2 |clusternode2 |30203 |indexserver | 3 | 2 |DC2 |clusternode1 | 30203 | 1 |DC1 |YES |SYNCMEM |ACTIVE | | True | status system replication site "1": ACTIVE overall system replication status: ACTIVE Local System Replication State ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mode: PRIMARY site id: 2 site name: DC2この出力に remotehost3 が表示されない場合は、remotehost3 を再登録する必要があります。登録する前に、登録の進行状況を監視するためにプライマリーノードで以下を実行してください。
clusternode2:rh2adm> watch python $DIR_EXECUTABLE/python_support/systemReplicationStatus.pyこれで、以下のコマンドを使用して remotehost3 を再登録できるようになります。
remotehost3:rh2adm> hdbnsutil -sr_register --remoteHost=clusternode2 --remoteInstance=${TINSTANCE} --replicationMode=async --name=DC3 --remoteName=DC2 --operation Mode=logreplay --online adding site ... collecting information ... updating local ini files ... done.remotehost3 のデータベースがまだ開始されていない場合でも、システムレプリケーションステータスの出力に 3 番目のサイトが表示されます。
remotehost3 でデータベースを起動すると、登録を終了できます。remotehost3:rh2adm> HDB start StartService Impromptu CCC initialization by 'rscpCInit'. See SAP note 1266393. OK OK Starting instance using: /usr/sap/RH2/SYS/exe/hdb/sapcontrol -prot NI_HTTP -nr 02 -function StartWait 2700 2 04.09.2023 11:36:47 Start OK
上記で起動したモニターには、remotehost3 の同期がすぐに表示されます。
- 元に戻すには、テストを再度実行します。任意のテストでは、プライマリーをノードに切り替えることです。これは、remotehost3 の global.ini で設定され、データベースを開始します。データベースは稼働する場合もありますが、再登録されない限り、システムレプリケーションのステータスの出力には表示されません。
詳細は、SAP HANA システムレプリケーションステータスの確認 も参照してください。