IBM Cloud Docs
Red Hat Enterprise Linux High Availability Add-On クラスタの実装

Red Hat Enterprise Linux High Availability Add-On クラスタの実装

以下の情報と手順を使用して、 Red Hat Enterprise Linux (RHEL) High Availability Add-On クラスタを実装します。 クラスタは、クラスタノードとしてインスタンスを使用します。 IBM® Power® Virtual Server クラスタノードとして使用しています。

この情報では、個々の仮想サーバーインスタンスをクラスターに変換する方法について説明しています。

これらの手順には、各クラスタノードに高可用性パッケージとエージェントをインストールすること、およびフェンシングデバイスの設定が含まれます。

この情報は、 Power Virtual Server 上で SAP アプリケーションの高可用性展開を計画しているアーキテクトや専門家を対象としています。 これは、既存の SAP または Red Hat のドキュメントを置き換えることを意図したものではありません。

開始前に

IBM Power Virtual Server リファレンスでの SAP アプリケーションの高可用性の実装」 に記載されている一般要件、製品ドキュメント、サポート記事、および SAP ノートを確認してください。

クラスタ用の仮想サーバ・インスタンスの作成

高可用性クラスタ用のインスタンスの作成 」の説明に従って、クラスタノードとして使用する仮想サーバインスタンスを作成します。

RHEL HAアドオンインストール用のノードの準備

次のセクションでは、クラスタノードの基本的な準備手順について説明します。 両方のノードで手順に従っていることを確認してください。

各クラスタノードにルートユーザーとしてログインします。

クラスタノードのエントリをホストファイルに追加する

両方のノードで、両方のノードのIPアドレスとホスト名を /etc/hosts ファイルに追加します。

詳細については 、「RHELクラスタノードでの /etc/hosts ファイルの設定 」を参照してください。

環境変数の準備

セットアッププロセスを簡素化するために、ルートユーザー用の環境変数をいくつか用意します。 これらの環境変数は、この情報では、後のオペレーティングシステムコマンドで使用されます。

両方のノードで、以下の環境変数を持つファイルを作成し、環境に合わせて更新します。

# General settings
export CLUSTERNAME="SAP_CLUSTER"         # Cluster name

export APIKEY=<APIKEY>                   # API Key of the IBM Cloud IAM ServiceID for the fencing agent
export CLOUD_REGION=<CLOUD_REGION>       # Workspace region
export PROXY_IP=<IP_ADDRESS>             # Proxy server IP address

# Workspace 1
export IBMCLOUD_CRN_1=<IBMCLOUD_CRN_1>   # Workspace CRN
export GUID_1=<GUID_1>                   # Workspace GUID

# Virtual server instance 1
export NODE1=<HOSTNAME_1>                # Virtual server instance hostname
export POWERVSI_1=<POWERVSI_1>           # Virtual server instance id

# Virtual server instance 2
export NODE2=<HOSTNAME_2>                # Virtual server instance hostname
export POWERVSI_2=<POWERVSI_2>           # Virtual server instance id

APIKEYIBMCLOUD_CRN_1GUID_1POWERVSI_? 変数の設定を見つけるには、 高可用性クラスタを構成するためのパラメータを収集する の手順に従ってください。

RHEL HAアドオンクラスターのインストールと設定

IBM Power Virtual Server の2ノードクラスタをセットアップするには、以下の手順に従います。

手順は 、 IBM Power Virtual Server リファレンス 上の SAP アプリケーションの高可用性の実装 に記載されている Red Hat 製品のドキュメントと記事に基づいています。

両方のノードで実行するステップと、 NODE1 または NODE2 のいずれかで実行するステップがあります。

RHEL HAアドオンソフトウェアのインストール

必要なソフトウェアパッケージをインストールする。

RHEL HA リポジトリの確認

RHEL High Availability リポジトリが有効になっていることを確認します。

両方のノードで、以下のコマンドを使用します。

dnf repolist

HAリポジトリが見つからない場合は、次のコマンドを使用して有効にしてください。

subscription-manager repos \
    --enable="rhel-8-for-ppc64le-highavailability-e4s-rpms"

RHEL 9の場合は、このコマンドを使用します。

subscription-manager repos \
    --enable="rhel-9-for-ppc64le-highavailability-e4s-rpms"
dnf clean all
dnf repolist

RHEL HAアドオンソフトウェアパッケージのインストール

必要なソフトウェアパッケージをインストールする。

両方のノードで、以下のコマンドを実行します。

dnf install -y pcs pacemaker fence-agents-ibm-powervs

Red Hat Enterprise Linux リリースに依存する fence-agents-ibm-powervsパッケージの最小バージョンをインストールしていることを確認してください

RHEL 8
fence-agents-ibm-powervs-4.2.1-121.el8
RHEL 9
fence-agents-ibm-powervs-4.10.0-43.el9

RHEL HAアドオンクラスターの設定

ファイアウォールサービスの設定

RHEL ファイアウォールに高可用性サービスを追加します。 firewalld.service インストールされ、有効になっている場合。

両方のノードで、以下のコマンドを実行します。

firewall-cmd --permanent --add-service=high-availability
firewall-cmd --reload

PCSデーモンを起動する

PCSを介してRHEL HAアドオンクラスターを制御および設定するために使用されるPCSデーモンを起動します。

両方のノードで、以下のコマンドを実行します。

systemctl enable --now pcsd.service

PCSサービスが実行されていることを確認する:

systemctl status pcsd.service

HACLUSTERユーザーIDにパスワードを設定する

ハクラスター・ユーザーIDのパスワードを設定する。

両方のノードで、以下のコマンドを実行します。

passwd hacluster

クラスタノードの認証

クラスタ内のノードの PCS デーモンにユーザー hacluster を認証するには、以下のコマンドを使用します。 コマンドは、前のステップで設定したパスワードの入力を求めます。

NODE1 で、以下のコマンドを実行する。

pcs host auth ${NODE1} ${NODE2} -u hacluster

Error: Unable to communicate with {NODE2} のようなエラーメッセージが表示された場合は、環境にプロキシ変数が設定されているかどうかを確認してください(env | grep -i proxy )。これらの変数を解除するか、クラスタノードを除外するためにno_proxy変数を定義する必要があります。 export no_proxy=${NODE1},${NODE2},$no_proxy

クラスタノードの設定と起動

クラスタ構成ファイルを設定し、指定したノードに構成を同期します。

--start オプションもノード上でクラスタサービスを開始します。

NODE1 で、以下のコマンドを実行する。

pcs cluster setup ${CLUSTERNAME} --start ${NODE1} ${NODE2}
pcs status

フェンス装置を作成する

STONITHは「Shoot The Other Node In The Head」の頭文字を取ったもので、スプリットブレイン状況におけるデータの破損からデータを保護します。

RHEL HAアドオンプロダクションクラスタでは、STONITH(フェンシング)を有効にする必要があります。

Power Virtual Server クラスタ上のSTONITHデバイスでサポートされている唯一のエージェントは、fence agent fence_ibm_powervs です。

フェ ンスエージェントは、 パラメータAPIKEY、 IBMCLOUD_CRN_1 CLOUD_REGION 、GUID、およびインスタンスIDを使用して POWERVSI_1 および POWERVSI_2

高可用性クラスタを構成するためのパラメータを収集する セクションで収集したパラメータを使用して、エージェントの起動をテストできます。

フェンシング対象の仮想サーバーインスタンスの特定

fence_ibm_powervsの リストオプションを使用して、2つのクラスタノードのインスタンスIDを識別および/または確認します

任意のノードで以下のコマンドを実行する。

fence_ibm_powervs \
    --token=${APIKEY} \
    --crn=${IBMCLOUD_CRN_1} \
    --instance=${GUID_1} \
    --region=${CLOUD_REGION} \
    --api-type=public \
    -o list

仮想サーバーインスタンスがプライベートネットワークのみにアクセスできる場合は*、--api-type=privateオプションを使用する必要があります。また、このオプションを使用するには、--proxyオプションも*必要です。

例:

fence_ibm_powervs \
    --token=${APIKEY} \
    --crn=${IBMCLOUD_CRN_1} \
    --instance=${GUID_1} \
    --region=${CLOUD_REGION} \
    --api-type=private \
    --proxy=http://${PROXY_IP}:3128 \
    -o list

以下の例では*、--api-type=private* を使用して続行します。

仮想サーバーインスタンス両方のステータスを確認する

両方のノードで、以下のコマンドを実行します。

time fence_ibm_powervs \
    --token=${APIKEY} \
    --crn=${IBMCLOUD_CRN_1} \
    --instance=${GUID_1} \
    --region=${CLOUD_REGION} \
    --plug=${POWERVSI_1} \
    --api-type=private \
    --proxy=http://${PROXY_IP}:3128 \
    -o status
time fence_ibm_powervs \
    --token=${APIKEY} \
    --crn=${IBMCLOUD_CRN_1} \
    --instance=${GUID_1} \
    --region=${CLOUD_REGION} \
    --plug=${POWERVSI_2} \
    --api-type=private \
    --proxy=http://${PROXY_IP}:3128 \
    -o status

仮想サーバーインスタンスに対するフェンスエージェントの status アクション {pvm_instance_id} は、その電源ステータスを表示します。

両方のノードで、2つのコマンドが Status: ON と報告しなければなりません。

time コマンドの出力は、STONITHデバイスのタイムアウトを選択する際に後で役立つ可能性があります。

-v フラグを追加すると、Power Cloud APIへの接続と仮想サーバーの電源状態の照会に関する詳細情報が表示されます。

stonith デバイスの作成

次のコマンドは*、fence_ibm_powervs フェンシングエージェントの*デバイス固有のオプションを表示します。

pcs stonith describe fence_ibm_powervs

仮想サーバーインスタンスの両方に対して、stonithデバイスを作成します。

NODE1 で、以下のコマンドを実行する。

pcs stonith create res_fence_ibm_powervs fence_ibm_powervs \
    token=${APIKEY} \
    crn=${IBMCLOUD_CRN_1} \
    instance=${GUID_1} \
    region=${CLOUD_REGION} \
    api_type=private \
    proxy=http://${PROXY_IP}:3128 \
    pcmk_host_map="${NODE1}:${POWERVSI_1};${NODE2}:${POWERVSI_2}" \
    pcmk_reboot_timeout=600 \
    pcmk_monitor_timeout=600 \
    pcmk_status_timeout=60

fence_ibm_powervs エージェントは、コマンドラインから起動された場合、オプションとして api-type を使用しますが、stonith リソースは api_type を使用して作成する必要があります。

以下のコマンドで構成を確認します。

pcs config
pcs status
pcs stonith config
pcs stonith status

stonith-actionクラスタプロパティの設定

IBM Power Virtual Server クラスタのフェイルオーバー時間を短縮するには、クラスタプロパティのstonith-action をoff に変更します。 クラスタがフェンシング処理を実行すると、フェンシングされたインスタンスに対して 再起動ではなく電源オフ処理が実行されます。

この変更後は、 IBM Cloud コンソールに必ずログインし、クラスタによってフェンスされたインスタンスを手動で起動する必要があります。

pcs property set stonith-action=off

変更を確認します。

pcs config

フェンスの操作テスト

STONITH構成をテストするには、手動でノードをフェンシングする必要があります。

NODE1 で、以下のコマンドを実行する。

pcs stonith fence ${NODE2}
pcs status

その結果、 NODE2 は停止します。

NODE2 を起動し、ノード上でクラスタを起動し、 NODE1 をフェンス化してみてください。

NODE2 で、以下のコマンドを実行する。

pcs cluster start
pcs status
pcs stonith status
pcs stonith fence ${NODE1}

NODE1 停止する。

NODE1 をアクティブにして、ノード上でクラスタを起動する。

NODE1 で、以下のコマンドを実行する。

pcs cluster start
pcs status
pcs stonith status