3.3. Pacemaker の設定


HANA スケールアウト環境が設定され、HANA システムレプリケーションが想定どおりに動作している場合は、RHEL HA アドオンを使用して HANA スケールアウトシステムレプリケーション環境を管理するように HA クラスターを設定できます。

Pacemaker のスプリットブレイン設定を防ぐには、追加のクォーラムインスタンスが必要です。この例では、ノードを追加します。このソリューションで majoritymaker と呼ばれるこのノードは、適切な設定の奇数個のクラスターノードに必要です。これは、Pacemaker とパブリックネットワークのみを必要とする追加のミニマリストホストです。このノードでは、SAP HANA データベースはインストールされておらず、ストレージ設定は廃止されています。

前提条件

  • saphostagent をインストールし、/usr/sap/hostcontrol/exe/sapcontrol が存在するか確認している。詳細は、1031096 - Installing Package SAPHOSTAGENT を参照してください。
  • RHEL High Availability リポジトリーがシステムに設定されていることを確認している。この設定なしでは Pacemaker をインストールできません。
  • すべてのシステムに root としてログインしている。
  • このドキュメントの RHEL システムの登録およびリポジトリーの有効化 セクションで説明されているように、クラスターのパッケージをインストールするために、すべてのクラスターノードが登録され、必要なリポジトリーが有効化されていることを確認している。

    [root@dc1hana01]# subscription-manager repos --list-enabled
    +----------------------------------------------------------+
    	Available Repositories in /etc/yum.repos.d/redhat.repo
    +----------------------------------------------------------+
    Repo ID:   rhel-8-for-x86_64-baseos-e4s-rpms
    Repo Name: Red Hat Enterprise Linux 8 for x86_64 - BaseOS - Update Services for SAP Solutions (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    Repo ID:   rhel-8-for-x86_64-sap-solutions-e4s-rpms
    Repo Name: Red Hat Enterprise Linux 8 for x86_64 - SAP Solutions - Update Services for SAP Solutions (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    Repo ID:   ansible-2.8-for-rhel-8-x86_64-rpms
    Repo Name: Red Hat Ansible Engine 2.8 for RHEL 8 x86_64 (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    Repo ID:   rhel-8-for-x86_64-highavailability-e4s-rpms
    Repo Name: Red Hat Enterprise Linux 8 for x86_64 - High Availability - Update Services for SAP Solutions (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    Repo ID:   rhel-8-for-x86_64-appstream-e4s-rpms
    Repo Name: Red Hat Enterprise Linux 8 for x86_64 - AppStream - Update Services for SAP Solutions (RPMs)
    Repo URL:  <Your repo URL>
    Enabled:   1
    
    
    yum repolist
    Updating Subscription Management repositories.
    repo id                                                                  	repo name
    advanced-virt-for-rhel-8-x86_64-rpms                                     	Advanced Virtualization for RHEL 8 x86_64 (RPMs)
    ansible-2.8-for-rhel-8-x86_64-rpms                                       	Red Hat Ansible Engine 2.8 for RHEL 8 x86_64 (RPMs)
    rhel-8-for-x86_64-appstream-e4s-rpms                                     	Red Hat Enterprise Linux 8 for x86_64 - AppStream - Update Services for SAP Solutions (RPMs)
    rhel-8-for-x86_64-baseos-e4s-rpms                                        	Red Hat Enterprise Linux 8 for x86_64 - BaseOS - Update Services for SAP Solutions (RPMs)
    rhel-8-for-x86_64-highavailability-e4s-rpms                              	Red Hat Enterprise Linux 8 for x86_64 - High Availability - Update Services for SAP Solutions (RPMs)
    rhel-8-for-x86_64-sap-netweaver-e4s-rpms                                 	Red Hat Enterprise Linux 8 for x86_64 - SAP NetWeaver - Update Services for SAP Solutions (RPMs)
    rhel-8-for-x86_64-sap-solutions-e4s-rpms                                 	Red Hat Enterprise Linux 8 for x86_64 - SAP Solutions - Update Services for SAP Solutions (RPMs)
    Copy to Clipboard Toggle word wrap

手順

  1. クラスターを設定します。詳細は、高可用性クラスターの設定と管理 を参照してください。
  2. クラスター内の各ノード (majoritymaker を含む) に、Red Hat High Availability Add-On ソフトウェアパッケージと、High Availability チャネルから利用可能なすべてのフェンスエージェントをインストールします。

    [root]# yum -y install pcs pacemaker fence-agents
    Copy to Clipboard Toggle word wrap

    または、特定の fence-agents のみをインストールすることもできます。

    [root]# yum install fence-agents-sbd fence-agents-ipmilan
    Copy to Clipboard Toggle word wrap
  3. firewalled デーモンを実行している場合は、以下のコマンドを実行して Red Hat High Availability Add-On が必要とするポートを有効にします。

    [root]# firewall-cmd --permanent --add-service=high-availability
    [root]# firewall-cmd --add-service=high-availability
    Copy to Clipboard Toggle word wrap
  4. この設定の後、各クラスターノードでユーザー hacluster のパスワードを設定します。

    [root]# passwd hacluster
    
    Changing password for user hacluster. New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
    Copy to Clipboard Toggle word wrap
  5. 各ノードで次のコマンドを実行してデーモンを起動し、有効にします。

    [root]# systemctl start [root]# pcsd.service systemctl enable pcsd.service
    Copy to Clipboard Toggle word wrap
  6. 1 つのノードのみで、hacluster ユーザーを認証する必要があります。このコマンドには、クラスターの一部であるすべてのノードを含めることが重要です。パスワードを指定しない場合は、前の手順で定義した hacluster パスワードの入力を求められます。RHEL 8.x の場合は以下を実行します。

    [root@dc1hana01]# pcshost auth -u hacluster -p <clusterpassword> dc1hana01 dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02 dc2hana03 dc2hana04 majoritymaker
    Username: hacluster
    Password:
    majoritymaker: Authorized
    dc1hana03: Authorized
    dc1hana02: Authorized
    dc1hana01: Authorized
    dc2hana01: Authorized
    dc2hana02: Authorized
    dc1hana04: Authorized
    dc2hana04: Authorized
    dc2hana03: Authorized
    Copy to Clipboard Toggle word wrap
  7. 同じノード上の pcs cluster セットアップを使用して、corosync 設定を生成および同期します。RHEL 8 の例では、2 つのクラスターネットワークを使用している場合も示されています。

    [root@dc1hana01]# pcs cluster setup scale_out_hsr majoritymaker addr=10.10.10.41 addr=192.168.102.100 dc1hana01 addr=10.10.10.21 addr=192.168.102.101 dc1hana02 addr=10.10.10.22 addr=192.168.102.102 dc1hana03 addr=10.10.10.23 addr=192.168.102.103 dc1hana04 addr=10.10.10.24 addr=192.168.102.104 dc2hana01 addr=10.10.10.31 addr=192.168.102.201 dc2hana02 addr=10.10.10.33 addr=192.168.102.202 dc2hana03 addr=10.10.10.34 addr=192.168.212.203 dc2hana04 addr=10.10.10.10 addr=192.168.102.204
    
    Destroying cluster on nodes: dc1hana01, dc1hana02, dc1hana03,
    dc1hana04, dc2hana01, dc2hana02, dc2hana03, dc2hana04,
    majoritymaker...
    dc1hana01: Stopping Cluster (pacemaker)...
    dc1hana04: Stopping Cluster (pacemaker)...
    dc1hana03: Stopping Cluster (pacemaker)...
    dc2hana04: Stopping Cluster (pacemaker)...
    dc2hana01: Stopping Cluster (pacemaker)...
    dc2hana03: Stopping Cluster (pacemaker)...
    majoritymaker: Stopping Cluster (pacemaker)...
    dc2hana02: Stopping Cluster (pacemaker)...
    dc1hana02: Stopping Cluster (pacemaker)...
    dc2hana01: Successfully destroyed cluster
    dc2hana03: Successfully destroyed cluster
    dc1hana04: Successfully destroyed cluster
    dc1hana03: Successfully destroyed cluster
    dc2hana02: Successfully destroyed cluster
    dc1hana01: Successfully destroyed cluster
    dc1hana02: Successfully destroyed cluster
    dc2hana04: Successfully destroyed cluster
    majoritymaker: Successfully destroyed cluster
    Sending 'pacemaker_remote authkey' to 'dc1hana01', 'dc1hana02',
    'dc1hana03', 'dc1hana04', 'dc2hana01', 'dc2hana02', 'dc2hana03',
    'dc2hana04', 'majoritymaker'
    dc1hana01: successful distribution of the file 'pacemaker_remote
    authkey'
    dc1hana04: successful distribution of the file 'pacemaker_remote
    authkey'
    dc1hana03: successful distribution of the file 'pacemaker_remote
    authkey'
    dc2hana01: successful distribution of the file 'pacemaker_remote
    authkey'
    dc2hana02: successful distribution of the file 'pacemaker_remote
    authkey'
    dc2hana03: successful distribution of the file 'pacemaker_remote
    authkey'
    dc2hana04: successful distribution of the file 'pacemaker_remote
    authkey'
    majoritymaker: successful distribution of the file 'pacemaker_remote
    authkey'
    dc1hana02: successful distribution of the file 'pacemaker_remote
    authkey'
    Sending cluster config files to the nodes...
    dc1hana01: Succeeded
    dc1hana02: Succeeded
    dc1hana03: Succeeded
    dc1hana04: Succeeded
    dc2hana01: Succeeded
    dc2hana02: Succeeded
    dc2hana03: Succeeded
    dc2hana04: Succeeded
    majoritymaker: Succeeded
    Starting cluster on nodes: dc1hana01, dc1hana02, dc1hana03,
    dc1hana04, dc2hana01, dc2hana02, dc2hana03, dc2hana04,
    majoritymaker...
    dc2hana01: Starting Cluster...
    dc1hana03: Starting Cluster...
    dc1hana01: Starting Cluster...
    dc1hana02: Starting Cluster...
    dc1hana04: Starting Cluster...
    majoritymaker: Starting Cluster...
    dc2hana02: Starting Cluster...
    dc2hana03: Starting Cluster...
    dc2hana04: Starting Cluster...
    Synchronizing pcsd certificates on nodes dc1hana01, dc1hana02,
    dc1hana03, dc1hana04, dc2hana01, dc2hana02, dc2hana03, dc2hana04,
    majoritymaker...
    majoritymaker: Success
    dc1hana03: Success
    dc1hana02: Success
    dc1hana01: Success
    dc2hana01: Success
    dc2hana02: Success
    dc2hana03: Success
    dc2hana04: Success
    dc1hana04: Success
    Restarting pcsd on the nodes in order to reload the certificates...
    dc1hana04: Success
    dc1hana03: Success
    dc2hana03: Success
    majoritymaker: Success
    dc2hana04: Success
    dc1hana02: Success
    dc1hana01: Success
    dc2hana01: Success
    dc2hana02: Success
    Copy to Clipboard Toggle word wrap
  8. 次のクラスターコマンドを使用して、すべてのノードでサービスを有効にします。

    [root@dc1hana01]# pcs cluster enable --all
    dc1hana01: Cluster Enabled
    dc1hana02: Cluster Enabled
    dc1hana03: Cluster Enabled
    dc1hana04: Cluster Enabled
    dc2hana01: Cluster Enabled
    dc2hana02: Cluster Enabled
    dc2hana03: Cluster Enabled
    dc2hana04: Cluster Enabled
    majoritymaker: Cluster Enabled
    Copy to Clipboard Toggle word wrap

    すべての手順を完了すると、クラスターとノードが設定されます。リソースエージェントを設定する最初の手順は、アクセスできなくなったノードを再起動する STONITH を使用してフェンシングメソッドを設定することです。サポートされている環境では、この STONITH 設定が必要です。

  9. ハードウェアまたは仮想化環境に適したフェンスエージェントを使用して、環境に合わせて STONITH を設定します。以下は、STONITH 用のフェンスデバイスを設定する一般的な例です。

    [root@dc1hana01]# pcs stonith create <stonith id> <fence_agent> ipaddr=<fence device> login=<login> passwd=<passwd>
    Copy to Clipboard Toggle word wrap
    注記

    各デバイスの設定は異なり、この環境では STONITH を設定することが必須です。サポートが必要な場合は、Red Hat Support チームに直接お問い合わせください。詳細は、RHEL High Availability クラスターのサポートポリシー - フェンシング/STONITH の一般的な要件 および フェンシング設定 を参照してください。

    設定後、クラスターのステータスは次の出力のようになります。これは、Red Hat Enterprise 仮想化環境のフェンシングデバイスの例です。

    [root@dc1hana01]# pcs status
    Cluster name: hanascaleoutsr
    Stack: corosync
    Current DC: dc2hana01 (version 1.1.18-11.el7_5.4-2b07d5c5a9) -
    partition with quorum
    Last updated: Tue Mar 26 13:03:01 2019
    Last change: Tue Mar 26 13:02:54 2019 by root via cibadmin on
    dc1hana01
    9 nodes configured
    1 resource configured
    Online: [ dc1hana01 dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02
    dc2hana03 dc2hana04 majoritymaker ]
    Full list of resources:
    fencing (stonith:fence_rhevm): Started dc1hana01
    Daemon Status:
    corosync: active/enabled
    pacemaker: active/enabled
    pcsd: active/enabled
    Copy to Clipboard Toggle word wrap

3.3.1. Scale-Out システム用の SAP HANA リソースエージェントのインストール

リソースエージェントを設定する際に、resource-agent-sap-hana-scaleout パッケージが、majoritymaker を含むすべてのシステムにインストールされました。

[root@dc1hana01]# yum install resource-agents-sap-hana-scaleout
Copy to Clipboard Toggle word wrap

正しいリポジトリーが接続されていることを確認します。yum repolist には、以下が含まれている必要があります。

root# yum repolist
"rhel-x86_64-server-sap-hana-<version>” RHEL Server SAP HANA (v. <version> for 64-bit <architecture>).
Copy to Clipboard Toggle word wrap

3.3.2. すべての SAP HANA インスタンスでの srConnectionChanged() フックの有効化

SAP の Implementing a HA/DR Provider に記載されているように、SAP HANA の最新バージョンでは、SAP HANA が特定のイベントの通知を送信できるようにする「フック」が提供されています。srConnectionChanged() フックを使用すると、クラスターのアクションを必要とする SAP HANA System Replication のステータスの変更が発生したことを検出するクラスターの機能を向上させ、偶発的なテイクオーバーが回避すべき状況でトリガーされないようにすることで、データ損失/データ破損を避けることができます。SAP HANA 2.0 SPS06 以降およびsrConnectionChanged() フックをサポートするためのコンポーネントを提供する resource-agents-sap-hana-scaleout パッケージのバージョンを使用する場合は、クラスターのセットアップを続行する前にフックを有効にする必要があります。

手順

  1. 共有デバイス上の各データセンターの 1 つのノードにフックをインストールします。詳細は、Implementing a HA/DR Provider を参照してください。
  2. フックを設定するために、hana 共有フォルダーにディレクトリーを作成します。これは、SAP HANA データベースから追加データを作成するように設定されています。これを有効にするには、システムを停止し、global.ini ファイルに 2 つの設定パラメーターを追加する必要があります。このソリューションの次の例では、ha_dr_provider_SAPHanaSrtrace の設定を示しています。

    [root@dc1hana01]# su - rh1adm
    [rh1adm@dc1hana01]% sapcontrol -nr 10 -function StopSystem *[rh1adm@dc1hana01]% cat <<EOF >> /hana/shared/RH1/global/hdb/custom/config/global.ini
    
    [ha_dr_provider_SAPHanaSR]
    provider = SAPHanaSR
    path = /usr/share/SAPHanaSR-ScaleOut
    execution_order = 1
    
    [trace]
    ha_dr_saphanasr = info
    EOF
    Copy to Clipboard Toggle word wrap
  3. 各クラスターノードで、sudo visudo /etc/sudoers.d/20-saphana を実行して /etc/sudoers.d/20-saphanaファイルを作成し、以下の内容を追加して、srConnectionChanged() フックが呼び出されたときにフックスクリプトがノード属性を更新できるようにします。

    rh1adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_rh1_glob_srHook -v * -t crm_config -s SAPHanaSR
    
    rh1adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_rh1_gsh -v * -l reboot -t crm_config -s SAPHanaSR Defaults:rh1adm !requiretty
    Copy to Clipboard Toggle word wrap

    デフォルト設定が必要な理由に関する詳細は、The srHook attribute is set to SFAIL in a Pacemaker cluster managing SAP HANA system replication, even though replication is in a healthy state を参照してください。

  4. インテグレーションが成功したら、SAP HANA データベースを起動します。

    # Execute the following commands on one HANA node in every datacenter
    [root]# su - rh1adm
    [rh1adm]% sapcontrol -nr 10 -function StartSystem
    Copy to Clipboard Toggle word wrap
  5. フックスクリプトが期待どおりに動作していることを確認します。HANA インスタンスの停止など、フックをトリガーするアクションを実行します。次に、以下のメソッドを使用して、フックがログに何か記録したか確認します。

    [rh1adm@dc1hana01]% cdtrace
    [rh1adm@dc1hana01]% awk '/ha_dr_SAPHanaSR.*crm_attribute/ \
    { printf "%s %s %s %s\n",$2,$3,$5,$16 }' nameserver_* 2018-05-04
    12:34:04.476445 ha_dr_SAPHanaSR SFAIL
    2018-05-04 12:53:06.316973 ha_dr_SAPHanaSR SOK
    Copy to Clipboard Toggle word wrap

    SAP HANA フックが機能していることを確認する方法は、M_HA_DR_PROVIDERS の監視 を参照してください。

3.3.3. Pacemaker リソースの設定

Pacemaker 設定プロセスでは、HANA と Pacemaker 環境を制御する 2 つのリソースエージェント (SAPHanaTopologySAPHanaController) を作成する必要があります。さらに、エンドユーザーと SAP アプリケーションサーバーの接続用に、Pacemaker で仮想 IP アドレスを設定する必要があります。実行されたアクションに基づいて、リソースエージェントが正しい順序で実行され、仮想 IP アドレスが適切なホストにマップされるように、2 つの依存関係が追加されます。

前提条件

  • 設定中に不要な影響を回避するために、クラスターの maintenance-mode を設定している。

    [root@dc1hana01]# pcs property set maintenance-mode=true
    Copy to Clipboard Toggle word wrap

3.3.3.1. SAPHanaTopology リソースの設定

  1. SAPHanaTopology リソースエージェントは、各ノード上の SAP HANA System Replication のステータスと設定を収集します。さらに、SAP HANA インスタンスの起動、停止、監視に必要なローカル SAP HostAgent を起動および監視します。リソースエージェントには、インストールされている SAP HANA 環境に応じて次の属性があります。

    Expand

    属性名

    必須/オプション

    デフォルト値

    説明

    SID

    はい

    null

    SAP HANA インストールの SAP システム識別子 (SID) (すべてのノードで同一である必要があります)。例: RH2

    InstanceNumber

    はい

    null

    SAP HANA インストールのインスタンス番号 (すべてのノードで同一である必要があります)。例: 02

    このソリューションでは、SID は RH1 に設定され、インスタンス番号は 10 に設定されています。

    注記

    タイムアウトとモニターのパラメーターは最初のデプロイメントに推奨され、環境のテスト中に変更できます。環境内のノードのサイズや数など、いくつかの依存関係があります。

  2. クラスター全体の 1 つのホストで、RHEL 8.x に対して root として次のコマンドを実行します。

    [root@dc1hana01]# pcs resource create rsc_SAPHanaTopology_RH1_HDB10 SAPHanaTopology SID=RH1 InstanceNumber=10 op methods interval=0s timeout=5 op monitor interval=10 timeout=600 clone clone-max=6 clone-node-max=1 interleave=true --disabled
    Copy to Clipboard Toggle word wrap

    Pacemaker でリソースが作成されると、クローンが作成されます。

    注記

    clone-node-max パラメーターは、シングルノード上で起動できるリソースエージェントのコピーの数を定義します。インターリーブとは、このクローンが順序制約を使用して別のクローンに依存している場合、その別のクローンのすべてのインスタンスが起動するのを待つのではなく、その別のクローンのローカルインスタンスが起動した後に起動できることを意味します。clone-max パラメーターは、起動できるクローンの数を定義します。たとえば、サイトあたり 2 ノードの最小設定の場合は、SAPHanaController および SAPHanaTopologyclone-max=4 を使用する必要があります。サイトあたり 3 ノード (スタンバイノードは含まない) の場合は、6 を使用する必要があります。

  3. 次のコマンドを使用してリソースが起動したら、ノード属性の形式で保存された収集情報を表示できます。

    root# pcs status --full
    Copy to Clipboard Toggle word wrap

3.3.3.2. SAPHanaController リソースの設定

SAPHanaTopology リソースエージェントの設定プロセスが完了すると、SAPHanaController リソースエージェントを設定できます。SAP Hana Topology リソースエージェントはデータのみを収集しますが、SAPHanaTopology リソースエージェントは以前に収集されたデータに基づいて SAP 環境を制御します。次の表に示すように、5 つの重要な設定パラメーターによってクラスター機能が定義されます。

Expand

属性名

必須/オプション

デフォルト値

説明

SID

はい

null

SAP HANA インストールの SAP システム識別子 (SID) (すべてのノードで同一である必要があります)。例: RH2

InstanceNumber

はい

null

SAP HANA インストールのインスタンス番号 (すべてのノードで同一である必要があります)。例: 02

PREFER_SITE_TAKEOVER

いいえ

null

リソースエージェントは、プライマリーをローカルで再起動するのではなく、セカンダリーインスタンスに切り替えることを優先する必要がありますか? true: セカンダリーサイトへのテイクオーバーを優先します。false: ローカルでの再起動を優先します。never: いかなる状況でも他のノードへのテイクオーバーを開始しません。

AUTOMATED_REGISTER

いいえ

false

テイクオーバーイベントが発生し、DUPLICATE_PRIMARY_TIMEOUT の有効期限が切れた場合、以前のプライマリーインスタンスをセカンダリーとして登録する必要がありますか? ("false": いいえ、手動介入が必要になります。"true": はい、以前のプライマリーはリソースエージェントによってセカンダリーとして登録されます) [1]。

DUPLICATE_PRIMARY_TIMEOUT

いいえ

7200

デュアルプライマリー状況が発生した場合に、2 つのプライマリータイムスタンプ間に必要な時間差 (秒単位)。時間差が時間ギャップより小さい場合、クラスターは 1 つまたは両方のインスタンスを "WAITING" ステータスで保持します。これは、システム管理者にテイクオーバーに対応する機会を与えるためです。時間差が経過した後、AUTOMATED_REGISTER が true に設定されている場合、障害が発生した以前のプライマリーはセカンダリーとして登録されます。新しいプライマリーへの登録後、以前のプライマリー上のすべてのデータはシステムレプリケーションによって上書きされます。

[1] - テストおよび概念実証 (PoC) 環境のベストプラクティスとして、障害が発生したプライマリーインスタンスが自動的にセカンダリーインスタンスとして登録されるのを防ぐために、AUTOMATED_REGISTER をデフォルト値 (AUTOMATED_REGISTER="false") のままにしておくことを推奨します。テスト後、フェイルオーバーシナリオが期待どおりに機能する場合 (特に実稼働環境の場合)、テイクオーバー後にシステムレプリケーションがタイムリーに再開され、中断が回避されるように AUTOMATED_REGISTER="true" を設定することを推奨します。AUTOMATED_REGISTER="false" の場合、プライマリーノードで障害が発生したときは、セカンダリー HANA System Replication ノードとして手動で登録する必要があります。

次のコマンドは、RHEL 8.x で SAPHanaController プロモート可能リソースを作成する方法の例です。この例は、SID RH1InstanceNumber 10Prefer Site TakeoverAutomated_REGISTER の値が true、および Duplicate Primary Timeout7200 というパラメーターに基づいています。

[root@dc1hana01]# pcs resource create rsc_SAPHana_RH1_HDB10 SAPHanaController SID=RH1 InstanceNumber=10 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true op demote interval=0s timeout=320 op methods interval=0s timeout=5 op monitor interval=59 role="Promoted" timeout=700 op monitor interval=61 role="Unpromoted" timeout=700 op promote interval=0 timeout=3600 op start interval=0 timeout=3600 op stop interval=0 timeout=3600 promotable clone-max=6 promoted-node-max=1 interleave=true --disabled
Copy to Clipboard Toggle word wrap
注記

clone-max の場合、コマンドにリストされている HDB_WORKER の数の 2 倍を使用してください。

/usr/sap/hostctrl/exe/sapcontrol -nr 10 -function GetSystemInstanceList

GetSystemInstanceList
OK
hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
dc1hana01,10,51013,51014,0.3,HDB|HDB_WORKER,GREEN
dc1hana02,10,51013,51014,0.3,HDB|HDB_WORKER,GREEN
dc1hana03,10,51013,51014,0.3,HDB|HDB_WORKER,GREEN
dc1hana04,10,51013,51014,0.3,HDB|HDB_STANDBY, GREEN
Copy to Clipboard Toggle word wrap

このソリューションでは、SAPHanaController の作成後、次のコマンドを使用してリソースをプロモート可能なリソースとして定義します (SIDRH1InstanceNumber10)。

詳細は、マルチステートリソース: 複数のモードを持つリソース を参照してください。

3.3.3.3. 仮想 IP アドレスを管理するためのリソースの設定

クラスターには、プライマリー SAP HANA スケールアウトサイトのマスターネームサーバーにアクセスするためにクライアントが使用する仮想 IP アドレスを管理するためのリソースを含める必要があります。

次のコマンドは、仮想 IP 10.0.0.250 を持つ IPaddr2 リソースを作成する方法の例です。

[root@dc1hana01]# pcs resource create rsc_ip_SAPHana_RH1_HDB10 ocf:heartbeat:IPaddr2 ip=10.0.0.250 op monitor interval="10s" timeout="20s"
Copy to Clipboard Toggle word wrap

3.3.4. 制約の作成

正しく動作させるには、SAPHanaController リソースが起動する前に SAPHanaTopology リソースが起動していること、また、SAPHanaController のマスターリソースが実行されるノードに仮想 IP アドレスが存在することを確認します。この手順を使用して、必要な 4 つの制約を作成します。

手順: SAPHana の前に SAPHanaTopology を起動する

次のコマンドは、リソースの開始順序を義務付ける制約を作成する方法の例です。

  1. 制約を作成します。

    [root@dc1hana01]# pcs constraint order start rsc_SAPHanaTopology_RH1_HDB10-clone then start rsc_SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap
  2. IPaddr2 リソースをプロモートした SAPHana リソースと同じ場所に配置します。

    [root@dc1hana01]# pcs constraint colocation add rsc_ip_SAPHana_RH1_HDB10 with promoted rsc_SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap
  3. クラスター環境でアクティブなロールを使用するために、majoritymaker を回避します。

    [root@dc1hana01]# pcs constraint location add topology-avoids-majoritymaker rsc_SAPHanaTopology_RH1_HDB10-clone majoritymaker -INFINITY resource-discovery=never
    
    [root@dc1hana01]# pcs constraint location add hana-avoids-majoritymaker rsc_SAPHana_RH1_HDB10-clone majoritymaker -INFINITY resource-discovery=never
    Copy to Clipboard Toggle word wrap
  4. maintenance-mode を無効にします。

    maintenance-mode を false に設定した後、maintenance-mode を使用してリソースを起動します。すべての設定が完了する前に pacemaker の動作を回避するために、上記の例では --disabled を使用しています。デフォルトでは、リソースは作成されるとすぐに起動されます。--disabled の場合、次のコマンドを使用してリソースを起動できます。

    [root@dc1hana01]# pcs resource enable <resource-name>
    Copy to Clipboard Toggle word wrap

    maintenance-mode を終了するには、以下を使用してください。

    [root@dc1hana01]# pcs property set maintenance-mode=false
    Copy to Clipboard Toggle word wrap
  5. 次の 3 つのコマンドを実行して、クラスター環境が正しく動作していることを確認します。

    • pcs status は、すべてのリソースの概要と、それらが正しく機能しているかを示します。
    • pcs status --full は、クラスター環境のすべてのリソースの概要と追加の属性情報を提供します。
    • SAPHanaSR-showAttr --sid=RH1 は、属性情報に基づいた読みやすい概要を提供します。

      maintenance-mode を無効にしてから数分後に正しいステータスが表示されます。

      [root@dc1hana01]# pcs status
      Cluster name: hanascaleoutsr Stack: corosync
      Current DC: dc2hana01 (version 1.1.18-11.el7_5.4-2b07d5c5a9) - partition with quorum
      Last updated: Tue Mar 26 14:26:38 2019
      Last change: Tue Mar 26 14:25:47 2019 by root via crm_attribute on dc1hana01
      9 nodes configured
      20 resources configured
      Online: [ dc1hana01 dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02 dc2hana03 dc2hana04 majoritymaker ]
      Full list of resources:
      
      fencing (stonith:fence_rhevm): Started dc1hana01
      Clone Set: rsc_SAPHanaTopology_RH1_HDB10-clone
      [rsc_SAPHanaTopology_RH1_HDB10]
      Started: [ dc1hana01 dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02 dc2hana03 dc2hana04 ]
      Stopped: [ majoritymaker ] Clone Set: msl_rsc_SAPHana_RH1_HDB10 [rsc_SAPHana_RH1_HDB10] (promotable):
      Promoted: [ dc1hana01 ]
      Unpromoted: [ dc1hana02 dc1hana03 dc1hana04 dc2hana01 dc2hana02 dc2hana03 dc2hana04 ]
      Stopped: [ majoritymaker ]
      rsc_ip_SAPHana_RH1_HDB10	(ocf::heartbeat:IPaddr2): Started dc1hana01
      Daemon Status:
        corosync: active/enabled
        pacemaker: active/enabled
        pcsd: active/enabled
      
      
      [root@dc1hana01]# SAPHanaSR-showAttr --sid=RH1
      Global prim srHook sync_state
      ------------------------------
      global DC1 SOK SOK
      Sit lpt lss mns srr
      ---------------------------------
      DC1 1553607125 4 dc1hana01 P
      DC2 30 4 dc2hana01 S
      
      H clone_state roles score site
      --------------------------------------------------------
      1 PROMOTED promoted1 promoted:worker promoted 150 DC1
      2 DEMOTED promoted2:slave:worker:slave 110 DC1
      3 DEMOTED slave:slave:worker:slave -10000 DC1
      4 DEMOTED promoted3:slave:standby:standby 115 DC1
      5 DEMOTED promoted2 promoted:worker promoted 100 DC2
      6 DEMOTED promoted3:slave:worker:slave 80 DC2
      7 DEMOTED slave:slave:worker:slave -12200 DC2
      8 DEMOTED promoted1:slave:standby:standby 80 DC2
      9 :shtdown:shtdown:shtdown
      Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る