RHEL HA Add-On を使用した SAP HANA Scale-Out System Replication の自動化


Red Hat Enterprise Linux for SAP Solutions 8

Red Hat Customer Content Services

概要

このドキュメントでは、SAP HANA Scale-Out デプロイメントの自動テイクオーバーを計画および実装する方法を説明します。

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

Red Hat では、コード、ドキュメントにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。多様性を受け入れる用語に変更する取り組みの詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。

Jira からのフィードバック送信 (アカウントが必要)

  1. Jira の Web サイトにログインしていることを確認してください。
  2. こちらのリンク をクリックして、フィードバックをお寄せください。
  3. Summary フィールドにわかりやすいタイトルを入力します。
  4. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
  5. 今後の更新に関する通知を受け取りたい場合は、Reporter としてご自身が割り当てられていることを確認してください。
  6. ダイアログの下部にある Create をクリックします。

第1章 はじめに

このドキュメントでは、SAP HANA スケールアウトシステムレプリケーションのデプロイメントの自動テイクオーバーの計画と実装に関する情報を提供します。このソリューションの SAP HANA System Replication は、2 つの SAP HANA データベース間の継続的な同期を提供し、高可用性と障害復旧をサポートします。実際の実装の課題は、通常、事前のテストでカバーできるものよりも複雑です。ご使用の環境が十分にテストされていることを確認してください。

Red Hat では、セットアップとその後の操作を実施するために、SAP HANA と Pacemaker ベースの RHEL High Availability Add-On の両方に精通した認定コンサルタントと契約することを推奨しています。

SAP HANA が SAP ランドスケープのプライマリーデータベースプラットフォームとして中心的な機能を果たすようになると、安定性と信頼性に対する要件が大幅に高まります。Red Hat Enterprise Linux (RHEL) for SAP Solutions は、ネイティブの SAP HANA レプリケーションおよびフェイルオーバーテクノロジーを強化して、テイクオーバープロセスを自動化することで、これらの要件を満たします。SAP HANA Scale-Out System Replication のデプロイメントにおけるフェイルオーバー中、プライマリー環境に問題が発生した場合に備えて、システム管理者はアプリケーションにセカンダリー環境へのテイクオーバーを実行するように手動で指示する必要があります。

このプロセスを自動化するために、Red Hat は、RHEL for SAP Solutions サブスクリプションの一部である RHEL HA Add-On に基づいて、SAP HANA Scale-Out System Replication を管理するための完全なソリューションを提供します。このドキュメントでは、RHEL for SAP Solutions を使用して自動化された SAP HANA Scale-Out System Replication ソリューションをセットアップする方法に関する概念、計画、および概要的な手順を説明します。このソリューションは広範囲でテストされ、機能することが実証されていますが、実際の実装の課題は通常、このソリューションでカバーできるものよりも複雑です。したがって、Red Hat では、SAP HANA と Pacemaker ベースの RHEL High Availability Add-On の両方を十分に理解した認定コンサルタントがこのソリューションをセットアップし、その後サービス提供することを推奨しています。

RHEL for SAP Solutions の詳細は、Red Hat Enterprise Linux for SAP Solutions サブスクリプションの概要 を参照してください。

このソリューションは、経験豊富な Linux 管理者および SAP Certified Technology Associates を対象としています。このソリューションには、SAP HANA Scale-Out with System Replication の計画とデプロイメントに関する情報、および RHEL 8 以降との Pacemaker インテグレーションに関する情報が含まれています。

HANA System Replication と Pacemaker 接続を備えた SAP HANA scale-out 環境を構築するには、いくつかの複雑なテクノロジーを組み合わせる必要があります。このドキュメントには、SAP Notes または SAP HANA の設定を説明するドキュメントへの参照が含まれています。

scale-out クラスターとしての SAP HANA システムは、主に、成長を続ける SAP HANA ランドスケープを新しいハードウェアで簡単に拡張します。この機能では、ストレージやネットワークなどのインフラストラクチャーの重要なコンポーネントで共有リソースを使用する必要があります。この設定に基づいて、スタンバイノードを使用して環境の可用性を拡張し、サイトのテイクオーバーが開始される前に別のレベルの高可用性ソリューションを提供できます。

SAP HANA scale-out ソリューションは、追加のミラーとして機能する 2 つ以上の完全に独立した scale-out ソリューションを含めるように拡張できます。システムレプリケーションプロセスは、Active/Passive 方式に従ってデータベースをミラーリングし、最大のパフォーマンスを実現します。通信は完全にネットワーク経由で行われます。追加のインフラストラクチャーコンポーネントは必要ありません。

Pacemaker は、重要なコンポーネントに障害が発生した場合にシステムレプリケーションプロセスを自動化します。この目的のために、scale-out 環境のデータとシステムレプリケーションプロセスからのデータが評価され、継続的な操作が実行されます。クラスターは、クライアントがデータベースに接続するために使用するプライマリー IP アドレスを管理します。これにより、クラスターがデータベースのテイクオーバーをトリガーした場合でも、クライアントは引き続きアクティブなインスタンスに接続できます。

1.1. サポート責任

SAP HANA アプライアンスのセットアップについては、SAP、ハードウェアパートナー/クラウドプロバイダーが以下をサポートします。

  • サポートされているハードウェアと環境
  • SAP HANA
  • ストレージの設定
  • SAP HANA Scale-Out 設定 (SAP クラスターのセットアップ)
  • SAP HANA System Replication (SAP クラスターのセットアップ)

Red Hat は以下をサポートしています。

  • SAP ガイドラインに基づいた、RHEL 上で SAP HANA を実行するための基本的な OS 設定
  • RHEL HA Add-On
  • SAP HANA Scale-Out System Replication 向け Red Hat HA ソリューション

詳細は、SAP HANA Master Guide - Operating SAP HANA - SAP HANA Appliance - Roles and Responsibilities を参照してください。TDI セットアップについては、SAP HANA Master Guide - Operating SAP HANA - SAP HANA Tailored Data Center Intergration を参照してください。

1.2. SAP HANA Scale-Out

SAP HANA のスケーリングのプロセスは非常に動的です。scale-up SAP HANA データベースのサーバーインスタンスの初期セットアップ中に、追加の CPU とメモリーによってシステムを拡張できます。この拡張レベルでは不十分になった場合、SAP は環境を scale-out 環境に拡張します。適切に準備されたインフラストラクチャーがあれば、追加のサーバーインスタンスをデータベースに追加できます。

注記

“scale-out” するには、既存のシングルノードデータベースに SAP HANA データベース 1-n サーバーを追加します。現在、すべてのノードは CPU と RAM に関して同じサイズである必要があります。すべてのレプリケートされたデータベースサイトの設定は、同じである必要があります。したがって、データベースを再同期する前に、最初にすべてのサイトで HANA ノードの数をアップグレードする必要があります。

前提条件は、共有ストレージと、すべてのノードに対応するネットワーク接続です。共有ストレージは、データを交換し、障害発生時に既存のノードの機能を引き継ぐことができるスタンバイノードを使用するために使用されます。

図 1: scale-up および scale-out システムの概要

text

マスターネームサーバー

HANA Scale-Out 環境には、ノードの 1 つで実行中のマスターインスタンスを定義するマスター設定があります。これらのマスターインスタンスは、アプリケーションサーバーの主な連絡先です。scale-out 高可用性設定には、最大 3 つのマスターロールを定義できます。障害が発生した場合、マスターのロールは自動的に切り替わります。このマスター設定は、障害が発生したホストが障害が発生したマスターノードのタスクを引き継ぐことができるスタンバイホスト設定と互換性があります。

図 2: 使用済みストレージの Scale-Out 機能

text

1.3. Scale-Out ストレージ設定

scale-out ストレージ設定により、SAP HANA は scale-out 環境で柔軟に対応し、障害発生時にノードの機能を動的に移動できるようになります。データはすべてのノードで利用可能になるため、SAP インスタンスは、障害が発生したコンポーネントのプロセスを引き継ぐために読み取るだけで済みます。

SAP HANA scale-out 環境には、次の 2 つの異なる共有ストレージシナリオがあります。

  • 最初のシナリオは共有ファイルシステムであり、NFS または IBM の GPFS を介してすべてのディレクトリーのファイルシステムを提供します。このシナリオでは、データはすべてのノードで常に利用できます。
  • 2 番目のシナリオは、必要なときに必要なデータを排他的に統合するために使用される非共有ストレージです。すべてのデータは SAP HANA ストレージコネクター API を介して管理され、SCSI 3 予約などの適切なメカニズムを使用してノードからのアクセスが削除されます。

どちらのシナリオでも、/hana/shared ディレクトリーが共有ファイルシステムとして使用可能であることを確認します。このディレクトリーは、シナリオとは独立して使用可能かつ共有可能である必要があります。

注記

これらの共有ファイルシステムを監視する場合は、オプションでファイルシステムリソースを作成できます。/etc/fstab 内のエントリーを削除する必要があります。マウントはファイルシステムリソースによってのみ管理されます。

1.3.1. 共有ストレージ

共有ファイルシステムは、すべてのホストに必要なデータを提供します。設定すると、SAP HANA は必要なデータにアクセスします。共有ディレクトリーはすべてのノードにマウントされるため、データを簡単に共有できます。デプロイメント後、インストールは通常どおり進行します。SAP HANA は、すべてのディレクトリー (/hana/data/hana/log/hana/shared) にアクセスできます。

図 3: 共有ストレージを使用した scale-out プロセスの機能とワーキングパス

text

1.3.2. 非共有ストレージ

非共有ストレージ設定は、共有ストレージ設定よりも複雑です。SAP HANA インストールプロセスでは、サポートされているストレージコンポーネントとストレージコネクターの個別の設定が必要です。SAP HANA データベースは、sudo アクセス、lvm、マルチパスなどのいくつかの内部変更を加えて RHEL システムを再設定します。ノード定義が変更されるたびに、SAP HANA は SCSI3 予約を介して直接ストレージへのアクセスを変更します。非共有ストレージ設定は、ストレージシステムに直接アクセスできるため、共有ストレージ設定よりも最適化されています。

図 4: ストレージコネクターを使用した scale-out プロセスの機能とワーキングパス

text

1.4. SAP HANA System Replication

SAP HANA System Replication は、SAP HANA 環境で複数のサイトにわたってデータベースをレプリケートする方法を提供します。ネットワークはデータをレプリケートし、2 番目の SAP HANA インストールにプリロードします。SAP HANA System Replication により、プライマリー HANA Scale-Out サイトに障害が発生した場合のリカバリー時間が大幅に短縮されます。すべてのレプリケートされた環境が、ハードウェア、ソフトウェア、および設定全体で同一の仕様で構築されていることを確認する必要があります。

1.5. ネットワーク設定

RHEL HA アドオンによって管理される SAP HANA スケールアウトシステムレプリケーションセットアップには、3 つのネットワークが最小ネットワーク要件です。ただし、高性能な実稼働環境を構築するには、SAP 推奨のネットワーク設定を使用する必要があります。

3 つのネットワークは次のとおりです。

  • パブリックネットワーク: アプリケーションサーバーとクライアントの接続に必要 (最小要件)。
  • 通信ネットワーク: システムレプリケーション通信、ノード間通信、およびストレージ設定に必要。
  • ハートビートネットワーク: HA クラスター通信に必要。

推奨設定は、次のネットワークで設計されています。

  • アプリケーションサーバーネットワーク
  • クライアントネットワーク
  • レプリケーションネットワーク
  • ストレージネットワーク
  • 2 つのノード間ネットワーク
  • バックアップネットワーク
  • 管理者ネットワーク
  • Pacemaker ネットワーク

このソリューションの設定に基づいて、SAP HANA 設定プロセスの変更が必要になります。システムレプリケーションのホスト名解決は、システムレプリケーションに使用されるネットワークに合わせて調整されます。詳細は、SAP HANA network Requirements ドキュメントを参照してください。

図 5: SAP HANA system replication を介して接続された 2 つの scale-out システムのネットワーク設定の例

text

1.6. RHEL HA Add-On

このドキュメントで説明するソリューションでは、RHEL HA Add-On を使用して、SAP HANA Scale-Out System Replication が 2 つのサイト間で確実に動作するようにします。このため、SAP HANA スケールアウト環境専用に公開されたリソースエージェントが使用され、SAP HANA スケールアウトシステムレプリケーション環境が管理されます。SAP HANA スケールアウトシステムレプリケーション環境の現在のステータスに基づいて、アクティブなマスターノードを別の利用可能なスタンバイノードに切り替えるか、スケールアウトシステムレプリケーション環境のアクティブな方すべてを 2 番目のサイトに切り替えるかを決定できます。このソリューションでは、スプリットブレインコンステレーションを回避するために、フェンシングメカニズムが設定されています。

図 6: System Replication 環境に基づく Pacemaker インテグレーションの概要

text

RHEL HA アドオンを使用して RHEL 9 で HA クラスターを設定する方法の詳細は、次のドキュメントを参照してください。

SAP HANA scale-out リソースエージェントはあらゆる環境からのデータを使用するため、SAP HANA データベースからの scale-out およびシステムレプリケーションの方法を理解することが重要です。

まず、リソースエージェントは、すべてのサイトで安定した scale-out 環境を監視します。これは、十分な数の SAP HANA scale-out マスターネームサーバーノードが設定され、有効な状態にあるか確認します。その後、リソースエージェントはシステムレプリケーション状態をチェックします。すべてが正常に動作している場合は、システムレプリケーションのマスターサイトのアクティブマスターノードに仮想 IP アドレスが接続されます。障害状態では、クラスターはシステムレプリケーション設定を自動的に切り替えるように設定されます。

障害状態の定義は、マスターネームサーバーの設定によって異なります。たとえば、マスターネームサーバーが 1 つ設定されている場合に、マスターノードに障害が発生すると、クラスターは他のデータセンターに直接切り替わります。最大 3 つのマスターネームサーバーが設定されている場合、SAP HANA 環境は他のデータセンターに切り替える前に自動的に修復されます。Pacemaker はスコアリング数値を使用して、何をすべきかを決定します。SAP HANA を実行する場合、クラスターセットアップでこれらのパラメーターが変更されないことが非常に重要です。

Pacemaker 設定も、Shoot The Other Node In The Head (STONITH) を使用するフェンシング設定に基づいています。応答しないノードは、データにアクセスしていないことを意味するものではありません。STONITH を使用してノードをフェンスし、データが安全であることを確認します。STONITH は、不正なノードまたは同時アクセスによるデータの破損を防ぎます。2 つのサイト間の通信が失われた場合、両方のサイトが動作を継続できると認識する可能性があり、これが原因でデータが破損する可能性があります。これはスプリットブレインシナリオとも呼ばれます。これを防ぐために、クォーラムを追加して、誰が続行できるかを決定できます。クォーラムは、追加のノードまたは qdevice のいずれかになります。この例では、追加のノード majoritymaker を使用しています。

図 7: scale out によるシステムレプリケーションの例

text

1.7. リソースエージェント

クラスター設定は 2 つのリソースエージェントを使用しています。

1.7.1. SAPHanaTopology リソースエージェント

SAPHanaTopology リソースエージェントは、SAP HANA 環境からすべてのデータを受信するクローン作成されたリソースです。このデータは、SAP HANA の「システムレプリケーションフック」と呼ばれる設定プロセスによって生成されます。このデータに基づいて、リソースエージェントは Pacemaker サービスの Pacemaker スコアリングを計算します。スコアリングは、クラスターがシステムレプリケーションを一方から他方へ切り替える必要があるか決定するために使用されます。スコアリング値が事前定義された値よりも高い場合、クラスターはシステムレプリケーションを切り替えます。

1.7.2. SAPHanaController リソースエージェント

SAPHanaController リソースエージェントは、SAP HANA 環境を制御し、自動切り替えのすべてのコマンドを実行したり、システムレプリケーションのアクティブサイトを変更したりします。

第2章 SAP HANA Scale-Out 環境の準備

System Replication と Pacemaker インテグレーションを備えた完全な SAP HANA Scale-Out 環境を実現するには、事前に必要なデータをすべて収集し、インストールプロセス用のインフラストラクチャーを準備することを推奨します。SAP HANA のインストールには、SAP 自体を含むさまざまなオペレーティングシステムコンポーネントからの多数の変数が必要です。この章では、最小要件を説明します。

2.1. サブスクリプションおよびリポジトリー

SAP HANA デプロイメントの要件:

  • RHEL for SAP Solutions サブスクリプションは、SAP HANA を実行しているすべての RHEL サーバーで有効にする必要があります。
  • 正しいパッケージバージョンがすべてのシステムにインストールされていることを確認する Satellite サーバーを使用したステージング環境。RHEL 8 に SAP HANA をインストールするには、以下のリポジトリーを有効にする必要があります。
  • rhel-8-SAP-Solutions:

    • rhel-9-for-<arch>-sap-solutions-rpms
    • rhel-8-for-<arch>-sap-solutions-e4s-rpms (RHEL 8.0 から 8.8)

<arch> は、以下のように特定のハードウェアアーキテクチャーを表しています。

  • x86_64
  • ppc64le

詳細は、Red Hat Enterprise Linux for SAP Solutions サブスクリプションの概要 および RHEL for SAP サブスクリプションおよびリポジトリー を参照してください。

このソリューションには、個別のストレージネットワーク、バックアップネットワーク、管理ネットワークは必要ありません。ネットワーク設定に加えて、Pacemaker を使用して追加の仮想 IP を設定します。この IP アドレスにより、SAP アプリケーションサーバーと特定のエンドユーザーは SAP HANA 環境と通信できるようになります。

次の例は、8 つの SAP HANA ノードのネットワーク設定の最小要件を示しています。

Expand

パラメーター

domainname

example.com

NTP Server 1

0.de.pool.ntp.org

NTP Server 2

1.de.pool.ntp.org

Virtual IP

10.111.222.52/24

注記

注記: Pacemaker は、SAP アプリケーションサーバーと SAP HANA データベース間の通信用に、パブリックネットワーク内の仮想 IP (VIP) アドレスを管理します。次の例では、3 つのネットワークインターフェイスカード (NIC) を持つホストにマップされている物理アドレスがリスト表示されています。

Expand
表2.1 Datacenter 1

ホスト名

パブリックネットワーク

HANA コミュニケーション

Pacemaker

dc1hana01

10.0.1.21/24

192.168.101.101/24

192.168.102.101/24

dc1hana02

10.0.1.22/24

192.168.101.102/24

192.168.102.102/24

dc1hana03

10.0.1.23/24

192.168.101.103/24

192.168.102.103/24

dc1hana04

10.0.1.24/24

192.168.101.104/24

192.168.102.104/24

Expand
表2.2 Datacenter 2

ホスト名

パブリックネットワーク

HANA コミュニケーション

Pacemaker

dc2hana01

10.0.1.31/24

192.168.101.201/24

192.168.102.201/24

dc2hana02

10.0.1.32/24

192.168.101.202/24

192.168.102.202/24

dc2hana03

10.0.1.33/24

192.168.101.203/24

192.168.102.203/24

dc2hana04

10.0.1.34/24

192.168.101.204/24

192.168.102.204/24

Expand

ホスト名

パブリックネットワーク

Pacemaker

majoritymaker

10.0.1.41/24

192.168.102.100/24

2.2. Storage

SAP HANA Scale-Out シナリオのストレージの設定には、次の 2 つの方法があります。

  • 共有ストレージ
  • 非共有ストレージ

ストレージレベルでは、両方の scale-out 環境間の通信は行われません。そのため、SAP HANA System Replication が期待どおりに動作していることを確認するには、各 scale-out 環境でストレージ設定を完了する必要があります。

2.2.1. 共有ストレージ

共有ストレージの設定には、メソッドとマウントポイントが必要です。NFS 経由で共有ストレージを設定する場合は、NFS サーバー、NFS パス、およびディレクトリーが必要です。また、/hana/data/hana/log、および /hana/shared ディレクトリーを指定する必要があります。

Expand
表2.3 Datacenter 1

メソッド

NFS サーバー

NFS パス

マウントポイント

NFS

10.0.1.61/24

/data/dc1/data

/hana/data

NFS

10.0.1.61/24

/data/dc1/log

/hana/log

NFS

10.0.1.61/24

/data/dc1/shared

/hana/shared

Expand
表2.4 Datacenter 2

メソッド

NFS サーバー

NFS パス

マウントポイント

NFS

10.0.1.61/24

/data/dc2/data

/hana/data

NFS

10.0.1.61/24

/data/dc2/log

/hana/log

NFS

10.0.1.61/24

/data/dc2/shared

/hana/shared

2.2.2. 非共有ストレージ

非共有ストレージ設定では、ストレージコネクターのインテグレーションが必要です。ストレージコネクターは、SCSI または LVM ロックメカニズムを介して LUN または LVM デバイスへのアクセスを管理します。この設定タイプでは、WWID または LVM デバイスが必要です。非共有ストレージ設定の場合、scale-out 環境ごとに 1 つの共有ディレクトリーが必要です。この設定は、SAP HANA Fiber Channel Storage Connector Admin Guide で説明されています。

Expand
表2.5 非共有ストレージの例

パラメーター

ha_provider

hdb_ha.fcClient

Expand
表2.6 Datacenter 1

メソッド

パラメーター名

WWID

SAN

partition_1_data wwid

3600508b400105e210000900000491000

SAN

partition_1_log wwid

3600508b400105e210000900000492000

SAN

partition_2_data wwid

3600508b400105e210000900000493000

SAN

partition_2_log wwid

3600508b400105e210000900000494000

SAN

partition_3_data wwid

3600508b400105e210000900000495000

SAN

partition_3_log wwid

3600508b400105e210000900000496000

Expand
表2.7 Datacenter 2

メソッド

パラメーター名

WWID

SAN

partition_1_data wwid

3600508b400105e210000900000491000

SAN

partition_1_log wwid

3600508b400105e210000900000492000

SAN

partition_2_data wwid

3600508b400105e210000900000493000

SAN

partition_2_log wwid

3600508b400105e210000900000494000

SAN

partition_3_data wwid

3600508b400105e210000900000495000

SAN

partition_3_log wwid

3600508b400105e210000900000496000

2.2.3. 共有デバイス

Expand
表2.8 Datacenter 1

メソッド

NFS サーバー

NFS パス

マウントポイント

NFS

10.0.1.61

/data/dc1/shared

/hana/shared

Expand
表2.9 Datacenter 2

メソッド

NFS サーバー

NFS パス

マウントポイント

NFS

10.0.1.61

/data/dc2/shared

/hana/shared

注記

共有ストレージがファイルシステムリソースによって管理されている場合は、マウントを /etc/fstab に追加しないでください。

2.3. SAP HANA

SAP HANA System Replication を使用した scale-out 環境向けの SAP HANA デプロイメントの構築には、次の 4 つの手順があります。

  1. オペレーティングシステムを設定します。
  2. SAP Host Agent をインストールします。
  3. 2 つの scale-out 環境をデプロイします。
  4. 両方の SAP HANA Scale-Out 環境が実行中になった後、HANA System Replication をアクティブ化します。

RHEL 環境の準備には、SAP HANA インストールソースのプロビジョニングが含まれます。インストールソースは SAP から入手できます。インストールソースをダウンロードするには、SAP アカウントが必要です。インストールソースは共有ディレクトリー経由で提供されるか、各ホストに手動でコピーされます。

SAP ソフトウェアは、SAP Software Centre からダウンロードできます。この例では、ソフトウェアを共有ディレクトリー/インストールに配置します。

Expand
表2.10 SAP HANA ホストエージェントのインストールソース

ソフトウェア

Path

Host Agent

/install/51053381/DATA_UNITS/HDB_SERVER_LINUX_X86_64/server/HOSTAGEN T.TGZ

SAP HANA

/install/51053381/DATA_UNITS/HDB_SERVER_LINUX_X86_64/

SAP HANA Host Agent のデプロイメントには、次の情報が必要です。

Expand

パラメーター

sapadm user password

Us3Your0wnS3cur3Password

Hostagent SSL certificate password

Us3Your0wnS3cur3Password

sapadm User ID

996

SAP HANA のデプロイメントでは、次の追加パラメーターが必要です。

Expand

パラメーター

shmadm group ID

20201

sapsys group ID

996

SID

RH1

System number

10

<sid>adm password

Us3Your0wnS3cur3Password

HANA components

client,server

System type

Master

System usage

custom

System User Password (SAP)

Us3Your0wnS3cur3Password

Expand
表2.11 SAP HANA デプロイメント Datacenter 1

hdblcm パラメーター

hostname

dc1hana01

Addhosts parameter

dc1hana02:role=worker、dc1hana03:role=worke r、dc1hana04:role=standby

ScaleOut Network DC1 internal_network

192.168.101.0/24

Expand
表2.12 SAP HANA デプロイメント Datacenter 2

hdblcm パラメーター

hostname

dc2hana01

Addhosts parameter

dc2hana02:role=worker、dc2hana03:role=worke r、dc2hana04:role=standby

ScaleOut Network DC2 internal_network

192.168.101.0/24

Expand
表2.13 HSR 設定

パラメーター

Operation mode

logrelay

Replication mode

sync

Backup directory

/hana/shared/L01/HDB10/backup/

Expand
表2.14 Datacenter 1

パラメーター

System replication name

DC1

HSR type

PRIMARY

HSR remote host

dc1hana01

SR network

192.168.101.0/24

Expand
表2.15 Datacenter 2

パラメーター

System replication name

DC2

HSR type

Secondary

HSR remote host

dc2hana01

SR network

192.168.101.0/24

2.4. Pacemaker

Pacemaker は、SAP HANA、scale-out、システムレプリケーションの設定を管理します。動作設定では、Pacemaker にフェンシングメソッドが必要です。これは、STONITH Pacemaker 設定によって実現できます。STONITH メソッドの概要は、RHEL High Availability クラスターのサポートポリシー - フェンシング/STONITH を参照してください。利用できる fence-agents は多数あります。以下も確認してください。

yum search fence-agents
Copy to Clipboard Toggle word wrap

Pacemaker フェンシング設定は、基盤となるハードウェアまたは仮想化環境に依存します。このソリューションでは、Red Hat Virtualization (RHV) が使用されるため、環境に応じて fence_rhevm フェンシングメソッドを設定する必要があります。 

スプリットブレインシナリオを防ぐには、クォーラム が必要です。これは、追加のクラスターノード majoritymaker を使用して実現されます。クォーラムに関する詳細情報が必要な場合は、Design Guidance for RHEL High Availability Clusters - Considerations with qdevice Quorum Arbitration および Exploring Concepts of RHEL High Availability Clusters-Quorum を参照してください。

Expand
表2.16 Majoritymaker パラメーター

ホスト名

パブリックネットワーク

Pacemaker

Majoritymaker

10.0.1.42/24

192.168.101.100/24

Expand
表2.17 一般的なパラメーター

パラメーター

Cluster name

hana-scaleout-sr

Fencing method

fence_rhevm

Fencing ipaddr/hostname

10.20.30.40

Fencing parameter

fencing_user/password

Corosync network

192.168.101.0/24

Password hacluster user

Us3Your0wnS3cur3Password

この例では、fence_rhevm を使用します。fence_rhevm の設定に関する詳細は、How do I configure a fence_rhevm stonith device in a Red Hat High Availability cluster? を参照してください。

第3章 SAP HANA Scale-Out 環境の設定

このソリューションは、System Replication および Pacemaker を使用して SAP HANA Scale-Out 環境をセットアップおよび設定する方法に関するものです。これは、2 つの部分に分かれています。1 つは、基本的な RHEL 設定のセットアップに関する部分で、これは環境ごとに異なります。もう 1 つは、SAP HANA Scale-Out System Replication と Pacemaker 用の SAP HANA Scale-Out のデプロイと設定に関する部分です。

最小要件は、サイトごとに 2 つのノードと、この例では追加の majoritymaker ノードであるクォーラムデバイスを使用することです。ここで説明するテスト環境は、8 つの SAP HANA ノードと、クラスタークォーラム用の追加の majoritymaker ノードで構築されています。すべての SAP HANA ノードには 50 GB のルートディスクと、/usr/sap ディレクトリー用の追加の 80 GB パーティションがあります。すべての SAP HANA ノードには 32 GB の RAM があります。majoritymaker ノードは、たとえば 50 GB のルートディスクと 8 GB の RAM のように、より小さくすることができます。共有ディレクトリーには、128 GB の NFS プールが 2 つあります。スムーズなデプロイメントを確実に行うために、このドキュメントの SAP HANA Scale-Out 環境の準備 セクションで説明されているように、必要なすべてのパラメーターを記録することを推奨します。次の例は、必要な設定パラメーターの概要を示しています。

環境

Expand

Pacemaker

4 ノード (3 + 1)

Majoritymaker

4 ノード (3 + 1)

共有ストレージ (DC1 の NFS)

← システムレプリケーション →

共有ストレージ (DC2 の NFS)

Network

  • パブリックネットワーク
  • HANA ネットワーク
  • クラスターネットワーク

Network

  • パブリックネットワーク
  • HANA ネットワーク
  • クラスターネットワーク

3.1. 基本的な RHEL 設定のセットアップ

このセクションの手順を使用して、使用中の環境に基本的な RHEL 設定をセットアップします。RHEL 9 については、SAP Note 3108316 - Red Hat Enterprise Linux 9.x: Installation and Configuration および 3108302 - SAP HANA DB: Recommended OS Settings for RHEL 9 でも確認できます。

SAP Note 2235581 - SAP HANA: Supported Operating Systems をチェックして、使用する RHEL 9 マイナーリリースが SAP HANA の実行にサポートされていることを確認してください。さらに、使用するサーバー/ストレージまたはクラウドインスタンスで SAP HANA と RHEL 9 の組み合わせがサポートされているかどうかをサーバー/ストレージベンダーまたはクラウドプロバイダーに確認することも必要です。

最新の RHEL リリースの詳細は、カスタマーポータル で入手可能なリリースノートのドキュメントを参照してください。インストールされているバージョンを見つけて更新が必要か確認するには、次のコマンドを実行します。

[root:~]# subscription-manager release
Release: 8.2
[root:~]# cat /etc/redhat-release Red Hat Enterprise Linux
release 8.2 (Ootpa)
[root:~]#
Copy to Clipboard Toggle word wrap

3.1.1. RHEL システムの登録およびリポジトリーの有効化

注記
  • このソリューションでは、ステージング設定がないため、Red Hat はシステム登録を直接受け取ります。再現可能な環境を実現するために、SAP HANA システムのステージング設定を作成することを推奨します。Satellite Server はパケット管理を提供しますが、これにはステージングプロセス (dev/qa/prod) も含まれます。詳細は、Satellite Server 製品情報を参照してください。
  • システムを登録する前にホスト名が正しいことを確認する必要があります。これにより、サブスクリプションを管理するときにシステムを識別しやすくなります。詳細は、ソリューション How to set the hostname in Red Hat Enterprise Linux 7, 8, 9 を参照してください。RHEL 9 の場合は、基本的なシステム設定 を確認してください。

前提条件

  • RHEL 8 がインストールされている。
  • Subscription Management の ’majoritymaker` を含むすべてのホストに root ユーザーとしてログインしている。

手順

  1. ステージング設定が存在しない場合は、次のコマンドを使用して、SAP HANA テストデプロイメントの登録を Red Hat Subscription Management (RHSM) に直接割り当てることができます。

    [root:~]# subscription-manager register
    Copy to Clipboard Toggle word wrap
  2. ユーザー名とパスワードを入力します。
  3. rhel-8-for-x86_64-sap-solutions-rpms リポジトリーで利用可能なすべてのプールをリスト表示します。

    [root:~]# subscription-manager list --available --matches="rhel-8-for-x86_64-sap-solutions-rpms"
    Copy to Clipboard Toggle word wrap

    詳細は、基本的なシステム設定 を参照してください。

    注記

    企業プール ID が必要です。リストが空の場合は、Red Hat に問い合わせて企業のサブスクリプションのリストを入手してください。

  4. プール ID をサーバーインスタンスにアタッチします。

    [root:~]# subscription-manager attach --pool=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Copy to Clipboard Toggle word wrap
  5. 'sap-solutions' のリポジトリーが有効になっているかどうかを確認します。

    [root:~]# yum repolist | grep sap-solution
    rhel-8-for-x86_64-sap-solutions-rpms RHEL for x86_64 - SAP Solutions (RPMs)
    Copy to Clipboard Toggle word wrap

    RHEL 8 に必要なリポジトリーを有効化することができます:

    [root:~]# subscription-manager repos --enable=rhel-8-for-x86_64-sap-solutions-rpms --enable=rhel-8-for-x86_64-highavailability-rpms
    Copy to Clipboard Toggle word wrap

    詳細は、RHEL for SAP サブスクリプションおよびリポジトリー を参照してください。

  6. すべてのシステムでパッケージを更新し、正しい RPM パッケージとバージョンがインストールされていることを確認します。

    [root:~]# yum update -y
    Copy to Clipboard Toggle word wrap

3.1.2. ネットワーク設定

このセクションでは、このソリューションで使用されるネットワークパラメーターを説明します。このソリューションの設定は環境に依存するため、例として考慮する必要があります。ネットワークの設定は SAP 仕様に従って行う必要があります。ノード dc1hana01 の例は、このドキュメントの SAP HANA Scale-Out 環境の準備 セクションに含まれています。

[root:~]# nmcli con add con-name eth1 ifname eth1 autoconnect yes type ethernet ip4 192.168.101.101/24 nmcli con add con-name eth2 ifname eth2 autoconnect yes type ethernet ip4 192.168.102.101/24
Copy to Clipboard Toggle word wrap

3.1.3. /etc/hosts の設定

この手順を使用して、RHEL システムで /etc/hosts を設定します。この設定は、一貫したホスト名解決に必要です。

手順

  1. すべてのホストに root ユーザーとしてログインし、/etc/hosts ファイルを設定します。
  2. scale-out 環境内のすべての SAP HANA ホストに対してホストエントリーを作成します。
  3. ホストファイルをすべてのノードにコピーします。次の出力例に示す順序でホスト名を設定することが重要です。この順序で設定されない場合、SAP HANA 環境はデプロイメントまたは運用プロセス中に失敗します。

    注記

    この設定は、このドキュメントの SAP HANA Scale-Out 環境の準備 セクションに記載されているパラメーターに基づいています。

    [root:~]# cat << EOF >> /etc/hosts
    10.0.1.21 dc1hana01.example.com dc1hana01
    10.0.1.22 dc1hana02.example.com dc1hana02
    10.0.1.23 dc1hana03.example.com dc1hana03
    10.0.1.24 dc1hana04.example.com dc1hana04
    10.0.1.31 dc2hana01.example.com dc2hana01
    10.0.1.32 dc2hana02.example.com dc2hana02
    10.0.1.33 dc2hana03.example.com dc2hana03
    10.0.1.34 dc2hana04.example.com dc2hana04
    10.0.1.41 majoritymaker.example.com majoritymaker
    EOF
    Copy to Clipboard Toggle word wrap

3.1.4. ディスクの設定

RHEL システム上のディスクを設定するには、この手順を完了します。

手順

  1. 追加の /usr/sap パーティションのすべての SAP HANA ホストに root ユーザーとしてログインします。

    注記

    一般に、デフォルトの XFS 形式とマウントオプションは、ほとんどのワークロードに最適です。Red Hat では、特定の設定変更がファイルシステムのワークロードにメリットをもたらすと予想される場合を除き、デフォルト値を使用することを推奨します。サポートされているすべてのファイルシステムを使用できます。詳細は、SAP Note 2972496 - SAP HANA Filesystem Types を参照してください。ソフトウェア RAID が使用されている場合、mks.xfs コマンドは、ハードウェアに合わせて正しいストライプユニットと幅を自動的に設定します。

  2. 必要なマウントポイントを作成します。

    [root:~]# mkdir -p /usr/sap
    Copy to Clipboard Toggle word wrap
  3. 論理ボリューム上に、XFS に基づくファイルシステムを作成します。

    [root:~]# mkfs -t xfs -b size=4096 /dev/sdb
    Copy to Clipboard Toggle word wrap

    XFS ファイルシステムの作成とチューニングの可能性に関する詳細は、man mkfs.xfs コマンドを実行してください。XFS ファイルシステムの最適なパフォーマンスについては、ソリューション記事 What are some of best practices for tuning XFS filesystems を参照してください。

  4. /etc/fstab にマウントディレクティブを記述します。

    [root:~]# echo "/dev/sdb /usr/sap xfs defaults 1 6" >> /etc/fstab
    Copy to Clipboard Toggle word wrap
    注記

    マウントポイントがファイルシステムリソースによって管理されている場合、これらのファイルシステムは後で /etc/fstab ファイルで再度コメントアウトする必要があります。 

  5. /etc/fstab の XFS ファイルシステムをマウントできるか確認します。

    [root:~]# mount /usr/sap
    Copy to Clipboard Toggle word wrap

3.1.5. 各データセンターの共有ストレージを使用した Scale-Out の設定

注記

クラウド環境では、異なるアベイラビリティーゾーンに同じマウントポイントの異なるソースが存在する場合があります。

各データセンターの共有サービスを使用して scale-out を設定するには、この手順を使用します。

手順

  1. 共有ストレージ設定のすべての SAP HANA ホストに root ユーザーとしてログインします。

    注記

    nfs-utils パッケージが必要です。すべてのデータセンターには独自のストレージ設定が必要です。この例では、ストレージ設定は共有ストレージ環境として構築されます。両方の scale-out 環境は、独自の NFS 共有を使用しています。この設定は、このドキュメントの SAP HANA Scale-Out 環境の準備 セクションの情報に基づいています。実稼働環境では、この手順は、任意のハードウェアベンダーによってサポートされるように設定する必要があります。

  2. nfs-utils パッケージをインストールします。

    [root:~]# yum install -y nfs-utils
    Copy to Clipboard Toggle word wrap
  3. Datacenter 1 のノードを設定します。

    [root:~]# mkdir -p /hana/{shared,data,log}
    cat <<EOF >> /etc/fstab
    10.0.1.61:/data/dc1/shared /hana/shared nfs4 defaults 0 0
    10.0.1.61:/data/dc1/data /hana/data nfs4 defaults 0 0
    10.0.1.61:/data/dc1/log /hana/log nfs4 defaults 0 0
    EOF
    Copy to Clipboard Toggle word wrap

    ボリュームをマウントするには、次のコマンドを実行します。

    [root:~]# mount -a
    Copy to Clipboard Toggle word wrap
  4. Datacenter 2 のノードを設定します。

    [root:~]# mkdir -p /hana/{shared,data,log}
    cat <<EOF >> /etc/fstab
    10.0.1.62:/data/dc2/shared /hana/shared nfs4 defaults 0 0
    10.0.1.62:/data/dc2/data /hana/data nfs4 defaults 0 0
    10.0.1.62:/data/dc2/log /hana/log nfs4 defaults 0 0
    EOF
    Copy to Clipboard Toggle word wrap

    ボリュームをマウントするには、次のコマンドを実行します。

    [root:~]# mount -a
    Copy to Clipboard Toggle word wrap

3.2. SAP HANA の設定とデプロイ

3.2.1. SAP HANA の実行に必要な RHEL 設定

この手順を使用して、SAP HANA を実行するための HA クラスターノードを設定します。HANA インスタンスが実行されている各 RHEL システムでこれらの手順を実行する必要があります。

前提条件

  1. 共有ストレージ設定のすべてのホストに root ユーザーとしてログインしている。
  2. SAP HANA のインストールソースを準備している。
  3. SAP HANA と互換性のあるホスト名を設定している。

    [root:~]# hostnamectl set-hostname dc1hana01
    Copy to Clipboard Toggle word wrap

手順: /etc/hosts の確認

  1. /etc/hosts にシステムのホスト名と IP アドレスに一致するエントリーが含まれていることを確認します: .example.com

    [root:~]# hostname
    <hostname>
    [root:~]# hostname -s
    <hostname>
    [root:~]# hostname -f
    <hostname>.example.com
    [root:~]# hostname -d
    example.com
    Copy to Clipboard Toggle word wrap
  2. システム言語を英語に設定します。

    [root:~]# localectl set-locale LANG=en_US.UTF-8
    Copy to Clipboard Toggle word wrap

手順: NTP の設定

  1. /etc/chrony.conf を編集し、サーバー行が NTP サーバーを反映していることを確認します。

    [root:~]# yum -y install chrony
    [root:~]# systemctl stop chronyd.service
    Copy to Clipboard Toggle word wrap
  2. タイムサーバーのエントリーを確認します。

    [root:~]# grep ^server /etc/chrony.conf
    server 0.de.pool.ntp.org
    server 1.de.pool.ntp.org
    Copy to Clipboard Toggle word wrap
  3. chrony サービスを有効にして起動します。

    [root:~]# systemctl enable chronyd.service
    [root:~]# systemctl start chronyd.service
    [root:~]# systemctl restart systemd-timedated.service
    Copy to Clipboard Toggle word wrap
  4. chrony サービスが有効化されていることを確認します。

    [root:~]# systemctl status chronyd.service
    chronyd.service enabled
    [root:~]# chronyc sources
    210 Number of sources = 3
    MS Name/IP address Stratum Poll Reach LastRx Last sample
    =====================================================================
    ^* 0.de.pool.ntp.org 2 8 377 200 -2659ns[-3000ns] +/- 28ms
    ^-de.pool.ntp.org 2 8 377 135 -533us[ -533us] +/- 116ms
    ^-ntp2.example.com 2 9 377 445 +14ms[ +14ms] +/- 217ms
    Copy to Clipboard Toggle word wrap

3.2.2. RHEL for SAP HANA の事前設定

この手順を使用して、RHEL システムを SAP HANA 用に事前設定します。この設定は公開されている SAP Notes に基づいています。クラスター内のすべての SAP HANA ホストで、ユーザー root としてこの手順を実行します。

注記

3.2.3. SAP Host Agent のインストール

SAP Host Agent は、すべての新しい SAP システムインスタンスまたは SAP kernel 7.20 以降のインスタンスのインストール中に自動的にインストールされます。ほとんどの場合、この手動インストールは必要ありません。最初に SAP HANA をインストールしてから、saphostagent のインストールが引き続き必要か確認してください。

前提条件

  • umask 設定が標準値として設定されていることを確認している (umask コマンドは 0022 を応答する必要がある)。設定されていない場合、SAP Host Agent のインストールが失敗する可能性があります。
  • SAP Host Agent のインストールにおけるすべてのホストに root ユーザーとしてログインしている。
注記

ユーザー/グループが存在せず、SAP ソフトウェアのインストールを通じて SAPHOSTAGENT がインストール/アップグレードされている場合、ユーザーとグループは SAP HANA のインストール中に作成されます。

手順 (オプション)

  1. SAP Host Agent の sapadm および sapsys ユーザーを作成し、sapadm ユーザーのパスワードを設定します。ユーザー sapadm の UID 996 とグループ sapsys の GID 79 は、このドキュメントの SAP HANA Scale-Out 環境の準備 セクションのパラメーターに基づいています。

    [root:~]# adduser sapadm --uid 996
    [root:~]# groupadd sapsys --gid 79
    [root:~]# passwd sapadm
    Copy to Clipboard Toggle word wrap
  2. 一時ディレクトリーを作成し、インストールソースを展開して、一時ディレクトリーから SAP Host Agent をインストールします。INSTALLDIRHOSTAGENT 変数は、例として挙げています。

    [root:~]# export TEMPDIR=$(mktemp -d)
    [root:~]# export
    INSTALLDIRHOSTAGENT=/install/HANA/DATA_UNITS/HDB_SERVER_LINUX_X86_64/
    [root:~]# systemctl disable abrtd
    [root:~]# systemctl disable abrt-ccpp
    [root:~]# cp -rp ${INSTALLDIRHOSTAGENT}/server/HOSTAGENT.TGZ $TEMPDIR/ cd $TEMPDIR
    [root:~]# tar -xzvf HOSTAGENT.TGZ
    [root:~]# cd global/hdb/saphostagent_setup/
    [root:~]# ./saphostexec -install
    Copy to Clipboard Toggle word wrap

    安全な操作は暗号化された接続でのみ機能します。これを実現するには、正しく機能する SSL 接続を設定します。SSL パスワードが必要です。次の例は、このドキュメントの SAP HANA Scale-Out 環境の準備 セクションのパラメーターに基づいています。

    [root:~]# export MYHOSTNAME=$(hostname)
    [root:~]# export SSLPASSWORD=Us3Your0wnS3cur3Password
    [root:~]# export LD_LIBRARY_PATH=/usr/sap/hostctrl/exe/
    [root:~]# export SECUDIR=/usr/sap/hostctrl/exe/sec
    [root:~]# cd /usr/sap/hostctrl/exe
    [root:~]# mkdir /usr/sap/hostctrl/exe/sec
    [root:~]# /usr/sap/hostctrl/exe/sapgenpse gen_pse -p SAPSSLS.pse -x $SSLPASSWORD -r /tmp/${MYHOSTNAME}-csr.p10 "CN=$MYHOSTNAME"
    [root:~]# /usr/sap/hostctrl/exe/sapgenpse seclogin -p SAPSSLS.pse -x $SSLPASSWORD -O sapadm chown sapadm /usr/sap/hostctrl/exe/sec/SAPSSLS.pse
    [root:~]# /usr/sap/hostctrl/exe/saphostexec -restart*
    Copy to Clipboard Toggle word wrap
  3. SAP Host Agent がすべての SAP HANA ノードで使用可能であることを確認します。

    [root:~]# netstat -tulpen | grep sapstartsrv
    tcp      0     0 0.0.0.0:50014   0.0.0.0:*  LISTEN   1002  84028   4319/sapstartsrv
    tcp      0     0 0.0.0.0:50013   0.0.0.0:*  LISTEN   1002  47542   4319/sapstartsrv
    Copy to Clipboard Toggle word wrap
    注記

    すべてのプロセスが識別されるわけではありません。所有されていないプロセスの情報は表示されません。すべてのプロセスを表示するには、root ユーザーである必要があります。

    [root:~]# netstat -tulpen | grep 1129
    tcp 0 	0     0.0.0.0:1129 	0.0.0.0:* 	LISTEN 	996	 25632	 1345/sapstartsrv
    Copy to Clipboard Toggle word wrap

    SAP Host Agent のインストール方法の詳細は、SAP Host Agent Installation を参照してください。

3.2.4. Scale-Out と System Replication による SAP HANA のデプロイ

Scale-Out および System Replication を備えた SAP HANA をデプロイする前に、SAP ネットワークマッピングを理解しておく必要があります。このソリューションは、ラボ環境でのデプロイメントに必要な最小限の設定に関する詳細を提供します。ただし、実稼働環境を設定する場合は、scale-out ネットワーク通信とシステムレプリケーション通信を別々のネットワークにマッピングする必要があります。この設定については Network Configuration for SAP HANA System Replication で説明されています。

SAP HANA データベースは、SAP HANA Server Installation and Update Guide に従ってインストールする必要があります。

SAP HANA データベースをセットアップするには、さまざまなオプションがあります。両方のデータセンターに同じ SID を持つデータベースをインストールする必要があります。scale-out 設定では、サイトごとに少なくとも 2 つの HANA インスタンスが必要です。

各 HANA サイトのインストールには、次の手順が含まれます。

  • hdblcm を使用して最初のノードに SAP HANA データベースをインストールします (SAP HANA インストールメディアの SAP_HANA_DATABASE サブディレクトリーにある hdblcm を確認します)。
  • この最初のノードで scale-out 設定用の内部ネットワークを設定します (これは 1 回だけ必要です)。

    [root:~]# ./hdblcm --action=configure_internal_network
    Copy to Clipboard Toggle word wrap
  • 最初のインストールで作成された共有実行可能ファイルを使用して、他のノードに追加の HANA インスタンスをインストールします。

    [root:~]# /hana/shared/RH1/hdblcm/hdblcm
    Copy to Clipboard Toggle word wrap
  • 各 HANA インスタンスに適切な HANA ロール (ワーカーまたはスタンバイ) を選択します。
  • セカンダリー HANA サイトに対しても同じ手順を繰り返します。

両サイト間で SAP HANA System Replication をセットアップします。

  • キーをコピーします。
  • プライマリーデータベース (SYSTEMDB とテナント) をバックアップします。
  • セカンダリーサイトで HANA を停止します。
  • セカンダリー HANA サイトをプライマリー HANA サイトに登録します。
  • セカンダリーサイトで HANA を起動します。

HANA データベースのインストールは、hdblcm コマンドを使用してバッチモードで実行することもできます。完全な自動インストールの応答ファイルとして使用される設定ファイルテンプレートを使用できます。

このソリューションでは、各データセンターの SAP Host Agent を介して自動デプロイメントを実行する追加のホストを統合して、SAP データベースがバッチモードでインストールされます。必要なデプロイメントパスワードがすべて含まれる一時パスワードファイルが生成されます。このファイルに基づいて、コマンドベースのバッチモードインストールが開始されます。

バッチモードインストールの場合、次のパラメーターを変更する必要があります。

  • SID
  • System number
  • インストールインスタンスのホスト名 (hostname)
  • すべてのホスト名とロール (addhosts)
  • システムタイプ (system_usage)
  • <sid>adm ユーザーのホームディレクトリー
  • ユーザー sapadmuserid
  • sapsysgroupid

ほとんどのパラメーターは SAP によって提供されます。 

手順

  1. 各データセンターの 1 つの SAP HANA ノードに root ユーザーとしてログインし、SAP HANA Scale-Out のインストールを開始します。
  2. このソリューションでは、各データセンターの 1 つのノードで次のコマンドが実行されます。

    [root:~]# INSTALLDIR=/install/51053381/DATA_UNITS HDB_SERVER_LINUX_X86_64/
    [root:~]# cd $INSTALLDIR
    [root:~]# ./hdblcm --dump_configfile_template=/tmp/templateFile
    Copy to Clipboard Toggle word wrap
    重要

    正しい addhosts パラメーターを使用する必要があります。これにはインストールノードを含めないでください。

  3. /tmp/templateFile.xml 内のパスワードを変更します。

    注記

    internal_network パラメーターは、内部 scale-out 通信ネットワーク用です。これにより、インストールプロセス中に、SAP HANA 設定ファイル global.ini に正しい設定が事前に入力されます。

    Datacenter 1 の例:

    [root:~]# cat /tmp/templateFile.xml | ./hdblcm \ --batch \ --sid=RH1 \ --number=10 \ --action=install \ --hostname=dc1hana01 \ --addhosts=dc1hana02:role=worker,dc1hana03:role=worker,dc1hana04:role =standby \ --install_hostagent \ --system_usage=test \ --sapmnt=/hana/shared \ --datapath=/hana/data \ --logpath=/hana/log \ --root_user=root \ --workergroup=default \ --home=/usr/sap/RH1/home \ --userid=79 \ --shell=/bin/bash \ --groupid=79 \ --read_password_from_stdin=xml \ --internal_network=192.168.101.0/24 \ --remote_execution=saphostagent
    Copy to Clipboard Toggle word wrap

    Datacenter 2 の例:

    [root:~]# cat /tmp/templateFile.xml | ./hdblcm \ --batch \ --sid=RH1 \ --number=10 \ --action=install \ --hostname=dc2hana01 \ --addhosts=dc2hana02:role=worker,dc2hana03:role=worker,dc2hana04:role =standby \ --install_hostagent \ --system_usage=test \ --sapmnt=/hana/shared \ --datapath=/hana/data \ --logpath=/hana/log \ --root_user=root \ --workergroup=default \ --home=/usr/sap/RH1/home \ --userid=79 \ --shell=/bin/bash \ --groupid=79 \ --read_password_from_stdin=xml \ --internal_network=192.168.101.0/24 \ --remote_execution=saphostagent
    Copy to Clipboard Toggle word wrap
  4. インストールプロセスが完了したら、データセンターごとに 1 つのホストですべてが動作していることを確認します。

    [root:~]# su - rh1adm /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function GetSystemInstanceList
    10.04.2019 08:38:21
    GetSystemInstanceList OK
    hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
    dc1hana01,10,51013,51014,0.3,HDB|HDB_WORKER, GREEN
    dc1hana03,10,51013,51014,0.3,HDB|HDB_STANDBY, GREEN
    dc1hana02,10,51013,51014,0.3,HDB|HDB_WORKER, GREEN
    dc1hana04,10,51013,51014,0.3,HDB|HDB_WORKER, GREEN
    
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10> HDBSettings.sh landscapeHostConfiguration.py
    | Host | Host | Host | Failover | Remove | Storage |
    Storage | Failover | Failover | NameServer | NameServer |
    IndexServer | IndexServer | Host | Host | Worker | Worker |
    | | Active | Status | Status | Status | Config |
    Actual | Config | Actual | Config | Actual | Config
    | Actual | Config | Actual | Config | Actual |
    | | | | | | Partition |
    Partition | Group | Group | Role | Role | Role
    | Role | Roles | Roles | Groups | Groups |
    | --------- | ------ | ------ | -------- | ------ | --------- |
    --------- | -------- | -------- | ---------- | ---------- |
    ----------- | ----------- | ------- | ------- | ------- | ------- |
    | dc1hana01 | yes | ok | | | 1 |
    1 | default | default | master 1 | master | worker |
    master | worker | worker | default | default |
    | dc1hana02 | yes | ok | | | 2 |
    2 | default | default | master 3 | slave | worker |
    slave | worker | worker | default | default |
    | dc1hana03 | yes | ok | | | 2 |
    2 | default | default | master 3 | slave | worker |
    slave | worker | worker | default | default |
    | dc1hana04 | yes | ignore | | | 0 |
    0 | default | default | master 2 | slave | standby |
    standby | standby | standby | default | - |
    
    rh1adm@dc1hana01: HDB info
    USER PID PPID %CPU VSZ RSS COMMAND
    rh1adm 31321 31320 0.0 116200 2824 -bash
    rh1adm 32254 31321 0.0 113304 1680 \_ /bin/sh
    /usr/sap/RH1/HDB10/HDB info
    rh1adm 32286 32254 0.0 155356 1868 \_ ps fx
    -U rh1adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    rh1adm 27853 1 0.0 23916 1780 sapstart
    pf=/hana/shared/RH1/profile/RH1_HDB10_dc1hana01
    rh1adm 27863 27853 0.0 262272 32368 \_
    /usr/sap/RH1/HDB10/dc1hana01/trace/hdb.sapRH1_HDB10 -d -nw -f
    /usr/sap/RH1/HDB10/dc1hana01/daemon.ini
    pf=/usr/sap/RH1/SYS/profile/RH1_HDB10_dc1hana01
    rh1adm 27879 27863 53.0 9919108 6193868 \_
    hdbnameserver
    rh1adm 28186 27863 0.7 1860416 268304 \_
    hdbcompileserver
    rh1adm 28188 27863 65.8 3481068 1834440 \_
    hdbpreprocessor
    rh1adm 28228 27863 48.2 9431440 6481212 \_
    hdbindexserver -port 31003
    rh1adm 28231 27863 2.1 3064008 930796 \_
    hdbxsengine -port 31007
    rh1adm 28764 27863 1.1 2162344 302344 \_
    hdbwebdispatcher
    rh1adm 27763 1 0.2 502424 23376
    /usr/sap/RH1/HDB10/exe/sapstartsrvpf=/hana/shared/RH1/profile/RH1_HDB10_dc1hana01 -D -u rh1adm
    Copy to Clipboard Toggle word wrap

3.2.5. SAP HANA System Replication の設定

SAP HANA System Replication の設定は、両方の scale-out 環境がインストールされた後に行われます。設定手順は次のとおりです。

  • プライマリーデータベースをバックアップします。
  • プライマリーデータベースでシステムレプリケーションを有効にします。
  • セカンダリーデータベースを停止します。
  • データベースキーをコピーします。
  • セカンダリーデータベースを登録します。
  • セカンダリーデータベースを起動します。
  • システムレプリケーションを確認します。

このソリューションは、各ステップに関する概要を提供します。

3.2.5.1. プライマリーデータベースのバックアップ

SAP HANA System Replication には、プライマリーデータベースのバックアップが必要です。これがないと、SAP HANA をシステムレプリケーション設定に組み込むことはできません。

注記
  • このソリューションでは、簡単な例を提供します。実稼働環境では、バックアップインフラストラクチャーとセットアップを考慮する必要があります。
  • SQL コマンドに “/” を含めることが非常に重要です。たとえば、/hana/shared/backup/ などです。含まれていない場合、SAP HANA はディレクトリーを使用せず、代わりに PATH_databackup* という名前のファイルを作成するため、ディレクトリーへの書き込みアクセス権が必要になります。
# Do this as root
[root@dc1hana01]# mkdir -p /hana/shared/backup/
[root@dc1hana01]# chown rh1adm /hana/shared/backup/
[root@dc1hana01]# su - rh1adm
[rh1adm@dc1hana01]% hdbsql -i 10 -u SYSTEM -d SYSTEMDB "BACKUP DATA USING FILE ('/hana/shared/backup/')"
[rh1adm@dc1hana01]% hdbsql -i 10 -u SYSTEM -d RH1 "BACKUP DATA USING FILE ('/hana/shared/backup/')"
Copy to Clipboard Toggle word wrap
3.2.5.2. HANA システムレプリケーションの有効化

データセンターでバックアップ機能を作成したら、システムレプリケーションの設定を開始できます。最初のデータセンターは、ソースサイトとしての設定から始まります。

  1. scale-out システムの 1 つのホスト上の最初のデータセンター (DC1) で、システムレプリケーションを有効にします。

    [root@dc1hana01]# su - rh1adm
    [rh1adm@dc1hana01]% hdbnsutil -sr_enable --name=DC1
    nameserver is active, proceeding …
    successfully enabled system as system replication source site done.
    Copy to Clipboard Toggle word wrap

    最初のデータセンターでシステムレプリケーションが有効になった後、2 番目のデータセンターを最初のデータセンターに登録する必要があります。有効なソースシステムから 2 番目のデータセンターに 2 つのキーをコピーする必要があります。これはデータベースが停止しているときに実行する必要があります。

  2. キーとキーデータファイルをプライマリーサイトからセカンダリーサイトにコピーします。これは各データセンター内の 1 つのノードでのみ実行されます。このファイルは、分離された scale-out 環境内の /hana/shared ディレクトリーを介して共有されます。詳細は、SAP Note 2369981 - Required configuration steps for authentication with HANA System Replication を参照してください。

    Datacenter 1 (DC1) の 1 つのノードでこのコマンドを開始します。

    [root@dc1hana01]# scp -rp /usr/sap/RH1/SYS/global/security/rsecssfs/data/SSFS_RH1.DAT root@dc2hana01:/usr/sap/RH1/SYS/global/security/rsecssfs/data/SSFS_RH 1.DAT
    [root@dc1hana01]# scp -rp /usr/sap/RH1/SYS/global/security/rsecssfs/key/SSFS_RH1.KEY root@dc2hana01:/usr/sap/RH1/SYS/global/security/rsecssfs/key/SSFS_RH1 .KEY
    Copy to Clipboard Toggle word wrap
  3. 両方のキーをセカンダリーサイトにコピーした後、2 番目のデータセンター (セカンダリー SAP HANA インスタンス) をプライマリー SAP HANA インスタンスに登録できます。これは、Datacenter 2 (DC2) のノードで `user <sid>adm として実行する必要があります。

    注記

    現時点では、レプリケーションタイプの 2 つのモードが利用可能です。

    • delta_datashipping
    • logreplay

    レプリケーションモードは sync または syncmem のいずれかである必要があります。"classic" 操作モードは delta_datashipping です。HA の推奨モードは logreplay です。操作モード logreplay を使用すると、SAP HANA System Replication のセカンダリーサイトがホットスタンバイシステムになります。詳細は、SAP HANA システムレプリケーション を参照してください。

  4. 優先操作モードでは、システムレプリケーションは DC2 ノード上で <sid>adm ユーザーとして設定されます。

    [root@dc1hana01]# su - rh1adm
    
    [rh1adm@dc1hana01]% hdbnsutil -sr_register --name=DC2 \ --remoteHost=dc1hana03 --remoteInstance=10 \ --replicationMode=sync --operationMode=logreplay \ --online
    
    # Start System
    
    [rh1adm@dc1hana01]% /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function StartSystem
    Copy to Clipboard Toggle word wrap

    システムが起動したら、次のコマンドを実行して、すべてが期待どおりに動作することを確認します。HANA スケールアウト環境が正しく実行されている場合、sapcontrolGetSystemInstanceList 関数の出力で、dispstatus はすべてのノードに対して GREEN を表示する必要があります (最初の起動後、数分かかる場合があります)。また、ランドスケープホストの設定は OK 状態である必要があります。

    GetInstanceList: rh1adm@dc2hana01:/usr/sap/RH1/HDB10> /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function GetSystemInstanceList
    01.04.2019 14:17:28
    GetSystemInstanceList
    OK
    hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
    dc2hana02, 10, 51013, 51014, 0.3, HDB|HDB_WORKER, GREEN
    dc2hana01, 10, 51013, 51014, 0.3, HDB|HDB_WORKER, GREEN
    dc2hana04, 10, 51013, 51014, 0.3, HDB|HDB_STANDBY, GREEN
    dc2hana03, 10, 51013, 51014, 0.3, HDB|HDB_WORKER, GREEN
    
    Check landscapeHostConfiguration: rh1adm@dc2hana01:/usr/sap/RH1/HDB10> HDBSettings.sh landscapeHostConfiguration.py
    Storage	| Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host	| Host	| Worker | Worker |
    |		| Active | Status | Status	| Status | Config	| Actual	| Config	| Actual	| Config		| Actual	| Config
    | Actual	| Config | Actual | Config | Actual |
    |	|	|	|		|		| Partition | Partition | Group	| Group		| Role		| Role	| Role
    | Role	| Roles	| Roles	| Groups | Groups |
    |	|	|	|	|	|	|
    |	|	|	|	|
    |	|	|	|	|	|
    | dc2hana01 | yes	| ok	|	|	|	1 |
    | default | default | master 1	| master	| worker	| master	| worker | worker | default | default |
    | dc2hana02 | yes	| ok	|	|	|	2 |
    | default | default | slave	| slave	| worker	| slave	| worker | worker | default | default |
    | dc2hana03 | yes	| ok	|	|	|	3 |
    | default | default | master 3	| slave	| worker	| slave	| worker | worker | default | default |
    | dc2hana04 | yes	| ignore |	|	|	0 |
    
    0 | default
    | default | master 2	| slave
    |
    standby
    |
    standby
    | standby | standby | default | -
    |
    overall host status: ok
    Copy to Clipboard Toggle word wrap
  5. Datacenter 1 サイトでは、sapcontrolGetSystemInstanceList 関数の出力で、すべてのノードの dispstatusGREEN を示し、ランドスケープホスト設定が OK 状態である必要があります。

    rh1adm@dc1hana01: /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function GetSystemInstanceList rh1adm@dc1hana01:/hana/shared/backup>
    /usr/sap/hostctrl/exe/sapcontrol -nr 10 -function
    GetSystemInstanceList
    Red Hat Enterprise Linux HA Solution for SAP HANA Scale Out and System Replication Page 55
    26.03.2019 12:41:13
    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
    
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10> HDBSettings.sh landscapeHostConfiguration.py
    | Host | Host | Host | Failover | Remove | Storage |
    Storage | Failover | Failover | NameServer | NameServer |
    IndexServer | IndexServer | Host | Host | Worker | Worker |
    | | Active | Status | Status | Status | Config |
    Actual | Config | Actual | Config | Actual | Config
    | Actual | Config | Actual | Config | Actual |
    | | | | | | Partition |
    Partition | Group | Group | Role | Role | Role
    | Role | Roles | Roles | Groups | Groups |
    | --------- | ------ | ------ | -------- | ------ | --------- |
    --------- | -------- | -------- | ---------- | ---------- |
    ----------- | ----------- | ------- | ------- | ------- | ------- |
    | dc1hana01 | yes | ok | | | 1 |
    1 | default | default | master 1 | master | worker |
    master | worker | worker | default | default |
    | dc1hana02 | yes | ok | | | 2 |
    2 | default | default | master 2 | slave | worker |
    slave | worker | worker | default | default |
    | dc1hana03 | yes | ok | | | 3 |
    3 | default | default | slave | slave | worker |
    slave | worker | worker | default | default |
    | dc1hana04 | yes | ignore | | | 0 |
    0 | default | default | master 3 | slave | standby |
    Red Hat Enterprise Linux HA Solution for SAP HANA Scale Out and System Replication Page 56
    standby | standby | standby | default | - |
    overall host status: ok
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10>
    
    # Show Systemreplication state rh1adm@dc1hana01:/usr/sap/RH1/HDB10> HDBSettings.sh systemReplicationStatus.py
    | Database | Host | Port | Service Name | Volume ID | Site ID |
    Site Name | Secondary | Secondary | Secondary | Secondary | Secondary
    | Replication | Replication | Replication |
    | | | | | | |
    | Host | Port | Site ID | Site Name | Active Status |
    Mode | Status | Status Details |
    | -------- | --------- | ----- | ------------ | --------- | ------- |
    --------- | --------- | --------- | --------- | --------- |
    ------------- | ----------- | ----------- | -------------- |
    | SYSTEMDB | dc1hana01 | 31001 | nameserver | 1 | 1 |
    DC1 | dc2hana01 | 31001 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana01 | 31007 | xsengine | 2 | 1 |
    DC1 | dc2hana01 | 31007 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana01 | 31003 | indexserver | 3 | 1 |
    DC1 | dc2hana01 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana03 | 31003 | indexserver | 5 | 1 |
    DC1 | dc2hana03 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana02 | 31003 | indexserver | 4 | 1 |
    DC1 | dc2hana02 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    status system replication site "2": ACTIVE
    overall system replication status: ACTIVE
    Local System Replication State
    Red Hat Enterprise Linux HA Solution for SAP HANA Scale Out and System Replication Page 57
    ~~~~~~~~~~
    mode: PRIMARY
    site id: 1
    site name: DC1
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10>
    Copy to Clipboard Toggle word wrap
  6. HANA システムレプリケーションがアクティブかどうかを確認します。

    rh1adm@dc1hana01:/usr/sap/RH1/HDB10> HDBSettings.sh systemReplicationStatus.py
    | Database | Host | Port | Service Name | Volume ID | Site ID |
    Site Name | Secondary | Secondary | Secondary | Secondary | Secondary
    | Replication | Replication | Replication |
    | | | | | | |
    | Host | Port | Site ID | Site Name | Active Status |
    Mode | Status | Status Details |
    | -------- | --------- | ----- | ------------ | --------- | ------- |
    --------- | --------- | --------- | --------- | --------- |
    ------------- | ----------- | ----------- | -------------- |
    | SYSTEMDB | dc1hana01 | 31001 | nameserver | 1 | 1 |
    DC1 | dc2hana01 | 31001 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana01 | 31007 | xsengine | 2 | 1 |
    DC1 | dc2hana01 | 31007 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana01 | 31003 | indexserver | 3 | 1 |
    DC1 | dc2hana01 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana03 | 31003 | indexserver | 5 | 1 |
    DC1 | dc2hana03 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    | RH1 | dc1hana02 | 31003 | indexserver | 4 | 1 |
    DC1 | dc2hana02 | 31003 | 2 | DC2 | YES
    | SYNC | ACTIVE | |
    
    status system replication site "2": ACTIVE
    overall system replication status: ACTIVE
    
    Local System Replication State
    ~~~~~~~~~~
    mode: PRIMARY
    site id: 1
    site name: DC1
    rh1adm@dc1hana01:/usr/sap/RH1/HDB10>
    Copy to Clipboard Toggle word wrap
    注記

    この設定が実稼働環境に実装されている場合は、global.ini ファイルでネットワーク通信を変更することを推奨します。このアクションは、システムレプリケーションネットワークへの指定されたアダプターへの通信を制限します。詳細は、Network Configuration for SAP HANA system replication を参照してください。

    重要

    完全な SAP HANA スケールアウトシステムレプリケーション環境を手動でテストし、すべての SAP HANA 機能が動作していることを確認する必要があります。詳細は、SAP HANA システムレプリケーション を参照してください。

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

第4章 オプション設定

SAP HANA 2.0 SPS1 以降、SAP では SAP HANA System Replication に対して 'Active/Active (読み取り有効)' セットアップが許可されます。これにより、以下が可能になります。

  • セカンダリーシステムでの読み取りアクセスをサポートするには、SAP HANA System Replication を有効にします。
  • セカンダリーシステムで読み取り集中型レポートを実行し、プライマリーシステムからこのワークロードを削除します。
  • 継続的な操作における帯域幅の必要性を削減します。

詳細は、SAP HANA システムレプリケーション も確認してください。

クライアントがセカンダリー SAP HANA データベースにアクセスできるようにするには、2 番目の仮想 IP アドレスが必要です。障害が発生した場合に、セカンダリーサイトにアクセスできない場合は、読み取り専用アクセスのダウンタイムを回避するために、2 番目の IP がプライマリーサイトに切り替えられます。

operationModelogreplay_readaccess に設定する必要があります。2 番目の仮想 IP と追加の必要な制約は、次のコマンドを使用して設定できます。

root# pcs resource create rsc_ip2_SAPHana_RH1_HDB10 ocf:heartbeat:IPaddr2 ip=10.0.0.251 op monitor interval="10s" timeout="20s
Copy to Clipboard Toggle word wrap

4.1.1. 追加の制約設定

上記の制約は強く推奨されます。動作を環境に合わせて調整するには、追加の制約が必要です。以下に例を示します。

root# pcs constraint location rsc_ip_SAPHana_RH1_HDB10 rule score=500 role=master hana_rh1_roles eq "master1:master:worker:master" and hana_rh1_clone_state eq PROMOTED
Copy to Clipboard Toggle word wrap

セカンダリーサイトがダウンした場合に備えて、IP2 をプライマリーサイトに移動します。

root# pcs constraint location rsc_ip2_SAPHana_RH1_HDB10 rule score=50 id=vip_slave_master_constraint hana_rh1_roles eq 'master1:master:worker:master'
Copy to Clipboard Toggle word wrap
root# pcs constraint order promote rsc_SAPHana_RH1_HDB10-clone then start rsc_ip_SAPHana_RH1_HDB10
Copy to Clipboard Toggle word wrap
root# pcs constraint order start rsc_ip_SAPHana_RH1_HDB10 then start rsc_ip2_SAPHana_RH1_HDB10
Copy to Clipboard Toggle word wrap
root# pcs constraint colocation add rsc_ip_SAPHana_RH1_HDB10 with Master rsc_SAPHana_RH1_HDB10-clone 2000
Copy to Clipboard Toggle word wrap
root# pcs constraint colocation add rsc_ip2_SAPHana_RH1_HDB10 with Slave rsc_SAPHana_RH1_HDB10-clone 5
Copy to Clipboard Toggle word wrap

手順

  1. クラスターが起動して実行されている場合は、動作をテストできます。

    root# watch pcs status
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを使用して、セカンダリー HANA インスタンスを手動で停止します。

    sidadm% sapcontrol -nr ${TINSTANCE} -function StopSystem HDB
    Copy to Clipboard Toggle word wrap
  3. 数秒後、2 番目の IP アドレスがプライマリーホストに移動されます。その後、次のコマンドでデータベースを手動で再起動できます。

    sidadm% sapcontrol -nr ${TINSTANCE} -function StartSystem HDB
    Copy to Clipboard Toggle word wrap
  4. さらに使用するために、クラスターを再起動します。

4.2. ファイルシステム監視の追加

Pacemaker は、ファイルシステムリソースがマウントポイントを管理しない限り、マウントポイントを積極的に監視しません。スケールアウト環境では、データベースを異なるアベイラビリティーゾーンに分散できます。マウントポイントはゾーンに固有のものとして使用できますが、その場合はノード属性として指定する必要があります。マウントをファイルシステムリソース内でのみ処理する場合は、/etc/fstab から削除する必要があります。SAP HANA サービスを実行するにはマウントが必要であるため、SAP HANA サービスを開始する前に、順序制約によってファイルシステムがマウントされていることを確認する必要があります。詳細は、How do I configure SAP HANA Scale-Out System Replication in a Pacemaker cluster when the HANA filesystems are on NFS shares? を参照してください。

4.2.1. ファイルシステムリソースの例

設定例を以下に示します。

pcs node 属性のリスト表示:

[root@dc1hana01]# pcs node attribute
Node Attributes:
 saphdb1: hana_hdb_gra=2.0 hana_hdb_site=DC1 hana_hdb_vhost=sapvirthdb1
 saphdb2: hana_hdb_gra=2.0 hana_hdb_site=DC1 hana_hdb_vhost=sapvirthdb2
 saphdb3: hana_hdb_gra=2.0 hana_hdb_site=DC2 hana_hdb_vhost=sapvirthdb3
 saphdb4: hana_hdb_gra=2.0 hana_hdb_site=DC2 hana_hdb_vhost=sapvirthdb4
Copy to Clipboard Toggle word wrap

pcs node 属性と saphdb1 hana_hdb_site=DC1 属性名は小文字であることに注意してください。

現在の設定が次のとおりであると仮定します。

  • SID=RH1
  • Instance_Number=10
Expand

Node

アベイラビリティーゾーン (AZ)

属性

dc1hana01

DC1

NFS_SHARED_RH1_SITE

DC1

dc1hana02

DC1

NFS_SHARED_RH1_SITE

DC1

dc2hana01

DC2

NFS_SHARED_RH1_SITE

DC2

dc2hana02

DC2

NFS_SHARED_RH1_SITE

DC2

以下は、同様に処理できるデータとログのノード属性マウントポイントを設定する例です。

[root@dc1hana01]# pcs resource create nfs_hana_shared_dc1 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef67.fs-0879de29a7fbb752d.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc1_log_shared/shared directory=/hana/shared fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_log_dc1 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef67.fs-0879de29a7fbb752d.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc1_log_shared/lognode1 directory=/hana/log/HDB fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_log2_dc1 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef67.fs-0879de29a7fbb752d.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc1_log_shared/lognode2 directory=/hana/log/HDB fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_shared_dc2 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef78.fs-088e3f66bf4f22c33.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc2_log_shared/shared directory=/hana/shared fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_log_dc2 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef678.fs-088e3f66bf4f22c33.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc2_log_shared/lognode1 directory=/hana/log/HDB fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs resource create nfs_hana_log2_dc2 ocf:heartbeat:Filesystem device=svm-012ab34cd45ef678.fs-088e3f66bf4f22c33.fsx.ap-southeast-2.amazonaws.com:/sap_hana_dc2_log_shared/lognode2 directory=/hana/log/HDB fstype=nfs options=defaults,suid op monitor interval=60s on-fail=fence timeout=20s OCF_CHECK_LEVEL=20 clone
[root@dc1hana01]# pcs node attribute sap-dc1-dbn2 NFS_HDB_SITE=DC1N2
[root@dc1hana01]# pcs node attribute sap-dc2-dbn1 NFS_HDB_SITE=DC2N1
[root@dc1hana01]# pcs node attribute sap-dc2-dbn2 NFS_HDB_SITE=DC2N2
[root@dc1hana01]# pcs node attribute sap-dc1-dbn1 NFS_SHARED_HDB_SITE=DC1
[root@dc1hana01]# pcs node attribute sap-dc1-dbn2 NFS_SHARED_HDB_SITE=DC1
[root@dc1hana01]# pcs node attribute sap-dc2-dbn1 NFS_SHARED_HDB_SITE=DC2
[root@dc1hana01]# pcs node attribute sap-dc2-dbn2 NFS_SHARED_HDB_SITE=DC2
[root@dc1hana01]# pcs constraint location nfs_hana_shared_dc1-clone rule resource-discovery=never score=-INFINITY NFS_SHARED_HDB_SITE ne DC1
[root@dc1hana01]# pcs constraint location nfs_hana_log_dc1-clone rule resource-discovery=never score=-INFINITY NFS_HDB_SITE ne DC1N1
[root@dc1hana01]# pcs constraint location nfs_hana_log2_dc1-clone rule resource-discovery=never score=-INFINITY NFS_HDB_SITE ne DC1N2
[root@dc1hana01]# pcs constraint location nfs_hana_shared_dc2-clone rule resource-discovery=never score=-INFINITY NFS_SHARED_HDB_SITE ne DC2
[root@dc1hana01]# pcs constraint location nfs_hana_log_dc2-clone rule resource-discovery=never score=-INFINITY NFS_HDB_SITE ne DC2N1
[root@dc1hana01]# pcs constraint location nfs_hana_log2_dc2-clone rule resource-discovery=never score=-INFINITY NFS_HDB_SITE ne DC2N2
[root@dc1hana01]# pcs resource enable nfs_hana_shared_dc1 *[root@dc1hana01]# pcs resource enable nfs_hana_log_dc1
[root@dc1hana01]# pcs resource enable nfs_hana_log2_dc1
[root@dc1hana01]# pcs resource enable nfs_hana_shared_dc2
[root@dc1hana01]# pcs resource enable nfs_hana_log_dc2
[root@dc1hana01]# pcs resource enable nfs_hana_log2_dc2
[root@dc1hana01]# pcs resource update nfs_hana_shared_dc1-clone meta clone-max=2 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_shared_dc2-clone meta clone-max=2 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_log_dc1-clone meta clone-max=1 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_log_dc2-clone meta clone-max=1 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_log2_dc1-clone meta clone-max=1 interleave=true
[root@dc1hana01]# pcs resource update nfs_hana_log2_dc2-clone meta clone-max=1 interleave=true
Copy to Clipboard Toggle word wrap

4.3. Systemd が管理する SAP サービス

systemd が有効な SAP HANA バージョン (SAP HANA 2.0 SPS07 以降) が使用されている場合、シャットダウンすることでこれらのサービスが正常に停止されます。一部の環境ではフェンシングが原因でシャットダウンされ、サービスが正常に停止します。場合によっては、Pacemaker が期待どおりに機能しないことがあります。

ドロップインファイルを追加すると、サービスが停止するのを防ぐことができます (例: /etc/systemd/system/resource-agents-deps.target.d/sap_systemd_hdb_00.conf)。他のファイル名を使用することもできます。

root@saphdb1:/etc/systemd/system/resource-agents-deps.target.d# more sap_systemd_hdb_00.conf
[Unit]
Description=Pacemaker SAP resource HDB_00 needs the SAP Host Agent service
Wants=saphostagent.service
After=saphostagent.service
Wants=SAPHDB_00.service
After=SAPHDB_00.service
Copy to Clipboard Toggle word wrap

これらのファイルをアクティブ化する必要があります。以下のコマンドを使用します。

[root]# systemctl daemon-reload
Copy to Clipboard Toggle word wrap

詳細は Why does the stop operation of a SAPHana resource agent fail when the systemd based SAP startup framework is enabled? を参照してください。

4.4. 追加のフック

上記では、srConnectionChanged() フックを設定しました。また、srServiceStateChanged() の追加フックを使用して、SAP HANA インスタンスの hdbindexserver プロセスの変更を管理することもできます。

すべての HA クラスターノードにある各 SAP HANA インスタンスの srServiceStateChanged() フックをアクティブ化するには、以下の手順を実行します。

注記

このソリューションは テクノロジープレビュー機能 です。Red Hat グローバルサポートサービスは、サポートケースを作成しているサブスクリプションカスタマーに代わってバグレポートを作成する場合があります。

手順

  1. 各ノードの SAP HANA global.ini ファイルを更新して、(ファイル /hana/shared/RH1/global/hdb/custom/config/global.ini などの) 両方の SAP HANA インスタンスでフックスクリプトを使用できるようにします。

    [ha_dr_provider_chksrv]
    path = /usr/share/SAPHanaSR-ScaleOut
    execution_order = 2
    action_on_lost = stop
    
    [trace]
    ha_dr_saphanasr = info
    ha_dr_chksrv = info
    Copy to Clipboard Toggle word wrap
  2. オプションのパラメーターを以下のように設定します。

    • action_on_lost (デフォルト: ignore)
    • stop_timeout (デフォルト: 20)
    • kill_signal (デフォルト: 9)

      以下は、action_on_lost で使用可能なオプションの説明です。

    • ignore: この機能を有効にしますが、イベントのみをログに記録します。これは、設定された環境でのフックのアクティビティーを監視するのに役立ちます。
    • stop: sapcontrol -nr <nr> -function StopSystem を正常に実行します。
    • kill: 最速の停止のために HDB kill-<signal> を実行します。

      注記

      stop_timeout は stop および kill アクションのコマンド実行に追加され、kill_signalHDB kill-<signal> コマンドの一部として kill アクションで使用されることに注意してください。

  3. HANA の実行中に HA/DR プロバイダーをリロードして、新しいフックをアクティブ化します。

    [rh1adm]$ hdbnsutil -reloadHADRProviders
    Copy to Clipboard Toggle word wrap
  4. 新しいトレースファイルをチェックして、フックの初期化を確認します。

    [rh1adm]$ cdtrace [rh1adm]$ cat nameserver_chksrv.trc
    Copy to Clipboard Toggle word wrap

    詳細は、Implementing a HA/DR Provider を参照してください。

第5章 例およびベストプラクティス

5.1. 環境のテスト

すべてが期待どおりに動作しているかどうかを確認するには、次の手順を実行します。

手順

  1. テイクオーバーを実行します。

    フェイルオーバーを実行するには、マスターノードのスコアを変更します。この例では、SAPHana クローンリソースは rsc_SAPHana_HDB_HDB00-clone で、saphdb3 は 2 番目のアベイラビリティーゾーンの 1 つのノードです。

    pcs constraint location rsc_SAPHana_HDB_HDB00-clone rule role=master score=100 \#uname eq saphdb3
    Copy to Clipboard Toggle word wrap

    この制約は次を実行して再度削除する必要があります。

    pcs constraint remove rsc_SAPHana_HDB_HDB00
    Copy to Clipboard Toggle word wrap

    それ以外の場合、Pacemaker は SAPHDB1 で HANA を起動しようとします。

  2. ノードをフェンスします。

    次のコマンドでノードをフェンスできます。

    pcs stonith fence <nodename>
    Copy to Clipboard Toggle word wrap

    他のフェンシングオプションと使用されるインフラストラクチャーに合わせて、このノードはダウンしたままになるか、復帰します。

  3. HANA を 強制終了 します。

    データベースを 強制終了 して、SAP リソースエージェントが動作しているかどうかを確認することもできます。 sidadm として、以下を呼び出すことができます。 

    sidadm% HDB kill
    Copy to Clipboard Toggle word wrap

    Pacemaker はこの問題を検出し、解決します。

5.2. 便利なエイリアス

5.2.1. ユーザー root のエイリアス

これらのエイリアスは −/.bashrc に追加されます。

export ListInstances=$(/usr/sap/hostctrl/exe/saphostctrl -function ListInstances| head -1 )
export sid=$(echo "$ListInstances" |cut -d " " -f 5| tr [A-Z] [a-z])
export SID=$(echo $sid | tr [a-z] [A-Z])
export Instance=$(echo "$ListInstances" |cut -d " " -f 7 )
alias crmm='watch -n 1 crm_mon -1Arf'
alias crmv='watch -n 1 /usr/local/bin/crmmv'
alias clean=/usr/local/bin/cleanup
alias cglo='su - ${sid}adm -c cglo'
alias cdh='cd /usr/lib/ocf/resource.d/heartbeat'
alias vhdbinfo="vim /usr/sap/${SID}/home/hdbinfo;dcp /usr/sap/${SID}/home/hdbinfo"
alias gtr='su - ${sid}adm -c gtr'
alias hdb='su - ${sid}adm -c hdb'
alias hdbi='su - ${sid}adm -c hdbi'
alias hgrep='history | grep $1'
alias hri='su - ${sid}adm -c hri'
alias hris='su - ${sid}adm -c hris'
alias killnode="echo 'b' > /proc/sysrq-trigger"
alias lhc='su - ${sid}adm -c lhc'
alias python='/usr/sap/${SID}/HDB${Instance}/exe/Python/bin/python'
alias pss="watch 'pcs status --full | egrep -e Node\|master\|clone_state\|roles'"
alias srstate='su - ${sid}adm -c srstate'
alias shr='watch -n 5 "SAPHanaSR-monitor --sid=${SID}"'
alias sgsi='su - ${sid}adm -c sgsi'
alias spl='su - ${sid}adm -c spl'
alias srs='su - ${sid}adm -c srs'
alias sapstart='su - ${sid}adm -c sapstart'
alias sapstop='su - ${sid}adm -c sapstop'
alias sapmode='df -h /;su - ${sid}adm -c sapmode'
alias smm='pcs property set maintenance-mode=true'
alias usmm='pcs property set maintenance-mode=false'
alias tma='tmux attach -t 0:'
alias tmkill='tmux killw -a'
alias tm='tail -100f /var/log/messages |grep -v systemd'
alias tms='tail -1000f /var/log/messages | egrep -s\
"Setting master-rsc_SAPHana_${SID}_HDB${Instance}|sr_register\ *|WAITING4LPA\|EXCLUDE as posible takeover node|SAPHanaSR|failed|${HOSTNAME}\
|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED"'
alias tmss='tail -1000f /var/log/messages | grep -v systemd\
| egrep -s "secondary with sync status|Settingmaster-rsc_SAPHana_${SID}_HDB${Instance}\
|sr_register|WAITING4LPA|EXCLUDE as posible takeover node|SAPHanaSR\
|failed|${HOSTNAME}|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED"'
alias tmm='tail -1000f /var/log/messages | egrep -s \
"Settingmaster-rsc_SAPHana_${SID}_HDB${Instance}|sr_register\
|WAITING4LPA|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|W aitforStopped\
|FAILED|LPT|SOK|SFAIL|SAPHanaSR-mon"| grep -v systemd'
alias tmsl='tail -1000f /var/log/messages | egrep -s\
"Settingmaster-rsc_SAPHana_${SID}_HDB${Instance}|sr_register|WAITING4LPA\
|PROMOTED|DEMOTED|UNDEFINED|ERROR|Warning|mast er_walk|SWAIT\
|WaitforStopped|FAILED|LPT|SOK|SFAIL|SAPHanaSR-mon"'
alias vih='vim /usr/lib/ocf/resource.d/heartbeat/SAPHanaStart'
alias switch1='pcs constraint location rsc_SAPHana_HDB_HDB00-clone \
rule role=master score=100 \#uname eq saphdb1'
alias switch3='pcs constraint location rsc_SAPHana_HDB_HDB00-clone \
rule role=master score=100 \#uname eq saphdb3'
alias switch0='pcs constraint remove location-rsc_SAPHana_HDB_HDB00-clone
alias switchl='pcs constraint location | grep pcs resource | grep promotable\
| awk "{ print $4 }"` | grep Constraint| awk "{ print $NF }"'
alias scl='pcs constraint location |grep " Constraint"'
Copy to Clipboard Toggle word wrap

5.2.2. SIDadm ユーザーのエイリアス

これらのエイリアスは ~/.customer.sh に追加されます。

alias tm='tail -100f /var/log/messages |grep -v systemd'
alias tms='tail -1000f /var/log/messages | egrep -s \
"Settingmaster-rsc_SAPHana_$SAPSYSTEMNAME_HDB${TINSTANCE}|sr_register\
|WAITING4LPA|EXCLUDE as posible takeover node|SAPHanaSR|failed\
|${HOSTNAME}|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED"'
alias tmsl='tail -1000f /var/log/messages | egrep -s \
"Settingmaster-rsc_SAPHana_$SAPSYSTEMNAME_HDB${TINSTANCE}|sr_register\
|WAITING4LPA|PROMOTED|DEMOTED|UNDEFINED|master_walk|SWAIT|WaitforStopped|FAILED|LPT"'
alias sapstart='sapcontrol -nr ${TINSTANCE} -function StartSystem HDB;hdbi'
alias sapstop='sapcontrol -nr ${TINSTANCE} -function StopSystem HDB;hdbi'
alias sapmode='watch -n 5 "hdbnsutil -sr_state --sapcontrol=1 |grep site.\*Mode"'
alias sapprim='hdbnsutil -sr_stateConfiguration| grep -i primary'
alias sgsi='watch sapcontrol -nr ${TINSTANCE} -function GetSystemInstanceList'
alias spl='watch sapcontrol -nr ${TINSTANCE} -function GetProcessList'
alias splh='watch "sapcontrol -nr ${TINSTANCE} -function GetProcessList\
| grep hdbdaemon"'
alias srs="watch -n 5 'python \
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/systemReplicationStatus.py * *; echo Status \$?'"
alias cdb="cd /usr/sap/${SAPSYSTEMNAME}/HDB${TINSTANCE}/backup"
alias srstate='watch -n 10 hdbnsutil -sr_state'
alias hdb='watch -n 5 "sapcontrol -nr ${TINSTANCE} -function GetProcessList\
| egrep -s hdbdaemon\|hdbnameserver\|hdbindexserver "'
alias hdbi='watch -n 5 "sapcontrol -nr ${TINSTANCE} -function GetProcessList\
| egrep -s hdbdaemon\|hdbnameserver\|hdbindexserver\
;sapcontrol -nr ${TINSTANCE} -function GetSystemInstanceList "'
alias hgrep='history | grep $1'
alias vglo="vim /usr/sap/$SAPSYSTEMNAME/SYS/global/hdb/custom/config/global.ini"
alias vgloh="vim /hana/shared/${SAPSYSTEMNAME}/HDB${TINSTANCE}/${HOSTNAME}/global.ini"
alias hri='hdbcons -e hdbindexserver "replication info"'
alias hris='hdbcons -e hdbindexserver "replication info" \
| egrep -e "SiteID|ReplicationStatus_"'
alias gtr='watch -n 10 /usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/Python/bin/python \
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/getTakeoverRecommendation.py \
--sapcontrol=1'
alias lhc='/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/Python/bin/python \
/usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/landscapeHostConfiguration.py\
;echo $?'
alias reg1='hdbnsutil -sr_register --remoteHost=hana07 -remoteInstance=${TINSTANCE} \
--replicationMode=syncmem --name=DC3 --remoteName=DC1 \
--operationMode=logreplay --online'
alias reg2='hdbnsutil -sr_register --remoteHost=hana08 -remoteInstance=${TINSTANCE} \
--replicationMode=syncmem --name=DC3 --remoteName=DC2 \
--operationMode=logreplay --online'
alias reg3='hdbnsutil -sr_register --remoteHost=hana09 -remoteInstance=${TINSTANCE} \
--replicationMode=syncmem --name=DC3 --remoteName=DC3 --operationMode=logreplay \
--online'
PS1="\[\033[m\][\[\e[1;33m\]\u\[\e[1;33m\]\[\033[m\]@\[\e[1;36m\]\h\[\033[m\]: \[\e[0m\]\[\e[1;32m\]\W\[\e[0m\]]# "
Copy to Clipboard Toggle word wrap

5.3. フェイルオーバーの監視例

強制的にテイクオーバーする方法は数多くあります。この例では、ノードをシャットオフせずに強制的にテイクオーバーします。SAP リソースエージェントはスコアと連携して、SAPHana クローンリソースをプロモートするノードを決定します。現在のステータスは次のコマンドを使用して確認できます。

[root@saphdb2:~]# alias pss='pcs status --full | egrep -e "Node|master|clone_state|roles"'
[root@saphdb2:~]# pss
Node List:
Node Attributes:
* Node: saphdb1 (1):
* hana_hdb_clone_state : PROMOTED
* hana_hdb_roles : master1:master:worker:master
* master-rsc_SAPHana_HDB_HDB00 : 150
* Node: saphdb2 (2):
* hana_hdb_clone_state : DEMOTED
* hana_hdb_roles : slave:slave:worker:slave
* master-rsc_SAPHana_HDB_HDB00 : -10000
* Node: saphdb3 (3):
* hana_hdb_clone_state : DEMOTED
* hana_hdb_roles : master1:master:worker:master
* master-rsc_SAPHana_HDB_HDB00 : 100
* Node: saphdb4 (4):
* hana_hdb_clone_state : DEMOTED
* hana_hdb_roles : slave:slave:worker:slave
* master-rsc_SAPHana_HDB_HDB00 : -12200
Copy to Clipboard Toggle word wrap

この例では、SAPHana クローンリソースが saphdb1 にプロモートされます。したがって、プライマリーデータベースは saphdb1 上で実行されます。このノードのスコアは 150 であり、セカンダリー saphdb3 のスコアを調整して、pacemaker にデータベースをセカンダリーに強制的にテイクオーバーさせるようにできます。

第6章 メンテナンス手順

次のセクションでは、HANA スケールアウトシステムレプリケーションの管理に使用される HA クラスター設定のメンテナンスを実行するための推奨手順について説明します。これらの手順は、互いに独立して使用する必要があります。

注記

これらの手順を使用する場合、クラスターをメンテナンスモードにする必要はありません。詳細は、When to use "maintenance-mode" in RHEL High Availability Add-on for pacemaker based cluster? を参照してください。

6.1. OS と HA クラスターコンポーネントの更新

詳細は、Recommended Practices for Applying Software Updates to a RHEL High Availability or Resilient Storage Cluster を参照してください。

6.2. SAP HANA インスタンスの更新

手順

このドキュメントで説明されている HA クラスター設定で SAP HANA システムレプリケーションのセットアップを管理する場合は、更新の前後に SAP HANA インスタンスを更新する実際のプロセスとは別に、いくつかの追加手順を実行する必要があります。次の手順を実行します。

  1. SAPHana リソースを管理対象外モードにします。

    [root]# pcs resource unmanage SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap
  2. SAP が提供する手順を使用して、SAP HANA インスタンスを更新します。
  3. SAP HANA インスタンスの更新が完了し、SAP HANA システムレプリケーションが再び動作していることが確認されたら、SAPHana リソースのステータスを更新して、クラスターが SAP HANA システムレプリケーションセットアップの現在の状態を認識していることを確認します。

    [root]# pcs resource refresh SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap
  4. SAPHana リソースを管理モードに戻して、HA クラスターが SAP HANA システムレプリケーションセットアップの現在のステータスを正しく取得したときに、HA クラスターが SAP HANA システムレプリケーションセットアップの問題に再び対応できるようにします。

    [root]# pcs resource manage SAPHana_RH1_HDB10-clone
    Copy to Clipboard Toggle word wrap

プロモート可能なクローンリソースを移動して、SAP HANA システムレプリケーションの手動テイクオーバーをトリガーします。

[root]# pcs resource move SAPHana_RH1_HDB10-clone
Copy to Clipboard Toggle word wrap
注記

このコマンドが正しく動作するには、pcs-0.10.8-1.el8 以降が必要です。詳細は、The pcs resource move command fails for a promotable clone unless "--master" is specified を参照してください。

pcs resource move コマンドを呼び出すたびに、HA クラスターはリソースを移動させるための場所の制約を作成します。詳細は、Is there a way to manage constraints when running pcs resource move? を参照してください。

HA クラスターが以前のプライマリー SAP HANA インスタンスを再び管理できるようにするには、SAP HANA システムレプリケーションのテイクオーバーが完了したことを確認した後、この制約を削除する必要があります。

pcs resource move によって作成された制約を削除するには、次のコマンドを使用します。

[root]# pcs resource clear SAPHana_RH1_HDB10-clone
Copy to Clipboard Toggle word wrap
注記

テイクオーバーが完了し、制約が削除された後に以前の SAP HANA プライマリーインスタンスに何が起こるかは、SAPHana リソースの AUTOMATED_REGISTER パラメーターの設定によって異なります。

  • Automated_REGISTER=true の場合、以前の SAP HANA プライマリーインスタンスが新しいセカンダリーとして登録され、SAP HANA システムレプリケーションが再びアクティブになります。
  • AUTOMATED_REGISTER=false の場合、テイクオーバー後に以前の SAP HANA プライマリーインスタンスに何が起こるかは、オペレーターが決定します。

第7章 参考資料

7.1. Red Hat

7.2. SAP

7.3. その他

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat