高可用性クラスタリング

Oracle Cloud Infrastructure (OCI)で実行されているOracle Linuxインスタンスを使用すると、高可用性(HA)クラスタを作成して、複数のノードで実行されているアプリケーションおよびサービスに継続的にアクセスできます。HAクラスタリングは、停止時間を最小限に抑え、システム・コンポーネントに障害が発生した場合でも継続的なサービスを提供します。

OCIインスタンスでHAクラスタを作成するには、オープン・ソースの高可用性リソース・マネージャであるPacemakerとオープン・ソースのクラスタ・エンジンであるCorosyncをインストールして使用します。HAクラスタリングおよびPacemakerおよびCorosyncテクノロジの詳細は、Oracle Linux 9高可用性クラスタリングの設定およびOracle Linux 8高可用性クラスタリングの設定を参照してください。

前提条件

作業を開始する前に、HAクラスタで必要なすべてのノードからアクセスできるように共有ストレージデバイスを構成します。共有ストレージ・デバイスは、クラスタ・サービスおよびアプリケーション・メッセージング、およびクラスタSBDフェンシングに必要です。共有ストレージ・デバイスの設定の詳細は、Oracle Linux 9共有ファイル・システムの管理およびOracle Linux 8共有ファイル・システムの管理を参照してください。

OCIインスタンスを使用した高可用性クラスタリングの設定

OCIインスタンスで高可用性クラスタリングを設定するには:

  1. Pacemakerソフトウェアのインストール
  2. HAクラスタの作成
  3. フェンシングの構成

OCIインスタンスの高可用性ネットワーク・ファイル・システム(NFS)サービスの設定方法に関するチュートリアルは、GlusterおよびOracle Linuxを使用した高可用性NFSサービスの作成を参照してください。

Pacemakerのインストール

Oracle Cloud Infrastructure (OCI)インスタンスで高可用性(HA)クラスタを作成するには、まず、クラスタ内の各インスタンス(ノード)にPacemakerおよびCorosyncパッケージをインストールする必要があります。その後、各クラスタ・ノードを構成し、起動時に各ノードでPacemakerサービスが自動的に起動および実行されることを確認できます。

ノート

OCIインスタンス、ノードおよびクラスタ・ノードは、OCIのHAクラスタリングと同等に使用されます。

ベスト・プラクティス

クラスタ内の必要なOCIインスタンスごとに、ターミナル・ウィンドウを開き、インスタンスに接続します。

たとえば、2つのOCIインスタンスをクラスタ内のノードにする場合は、2つのターミナル・ウィンドウを開き、sshを使用して各インスタンスに接続します:
ssh instance-IP-address

各ノードの端末ウィンドウを開くと、HAクラスタの構成時にノードへのログインとログアウトを繰り返す必要がなくなります。

ペースメーカーおよびコロシンクのインストール

PacemakerおよびCorosyncパッケージをインストールし、HAクラスタ・ノードを構成するには:

  1. 高可用性クラスタリングの前提条件を完了します。
  2. PacemakerおよびCorosyncパッケージが存在するOracle Linux yumサーバーでリポジトリを有効にします。

    Oracle Linux 9:

    sudo dnf config-manager --enable ol9_addons

    Oracle Linux 8:

    sudo dnf config-manager --enable ol8_addons
  3. 各ノードで、Pacemakerのpcsコマンド・シェル、ソフトウェア・パッケージ、および使用可能なすべてのリソースおよびフェンス・エージェントをインストールします。

    sudo dnf install pcs pacemaker resource-agents fence-agents-sbd
  4. サービス・コンポーネントがネットワーク経由で通信できるように、ファイアウォールを構成します。

    sudo firewall-cmd --permanent --add-service=high-availability
  5. 各ノードで、haclusterユーザーのパスワードを設定します。

    sudo passwd hacluster
  6. 各ノードで、起動時にpcsdサービスを実行して起動するように設定します。

    sudo systemctl enable --now pcsd.service
  7. 構成したノードを使用してHAクラスタを作成します。Creating an HA Clusterを参照してください。

HAクラスタの作成

PacemakerおよびCorosyncソフトウェアを使用すると、Oracle Cloud Infrastructure (OCI)で実行されているLinuxインスタンスで高可用性(HA)クラスタを作成できます。

HAクラスタを作成するには:

  1. PacemakerおよびCorosyncソフトウェア・パッケージを、クラスタ内の各ノードにインストールします。Installing Pacemakerを参照してください。
  2. いずれかのノードから、各クラスタ・ノードのhaclusterユーザーのpcsクラスタ構成ツールを認証します。

    たとえば、2つのノードがHAクラスタを構成する場合は、いずれかのクラスタノードから次のコマンドを実行します。

    sudo pcs host auth node1-resolvable-hostname node2-resolvable-hostname -u hacluster
  3. プロンプトが表示されたら、各ノードのhaclusterユーザーに対してステップ5で定義したパスワードを入力します。

  4. pcs cluster setupコマンドを使用してHAクラスタを作成し、次を指定します。

    • クラスタの名前。
    • クラスタに必要な各ノードの解決可能なホスト名およびIPアドレス

    たとえば、2つのノードを持つHAクラスタを作成するには:

    sudo pcs cluster setup cluster-name node1-resolvable-hostname addr=node1-IP-address node2-resolvable-hostname addr=node2-IP-address
  5. いずれかのノードから、すべてのノードでこのクラスタを起動します。

    sudo pcs cluster start --all
  6. 新しく作成したHAクラスタのSBDフェンシングを構成します。「フェンシングの構成」を参照してください。

フェンシングの構成

STONITH Block Device(SBD)フェンシングは、高可用性(HA)クラスタ内のノードが応答しなくなったときにデータを保護するために、Pacemakerソフトウェアと連携します。フェンシングにより、Pacemakerソフトウェアが応答しないノードをオフラインにするまで、HAクラスタ内のライブ・ノードが応答しないノード上のデータにアクセスできなくなります。

SBDフェンシング構成は、OCIインスタンスを使用したHAクラスタの設定を完了する最後のステップです。HAクラスタの作成については、Creating an HA Clusterを参照してください。

ノート

OCIインスタンスでHAクラスタを作成するには、SBDクラスタ・フェンシング・メカニズムのみを使用する必要があります。この環境では、他のクラスタ・フェンシング・メカニズムは現在サポートされていません。

HAクラスタのSBDフェンシングの構成

HAクラスタのSBDフェンシングを構成するには:

  1. いずれかのクラスタ・ノードから、SBDフェンシング戦略の一部として使用されるフェンシング手法であるstonith (Shoot The Other Node In The Head)を有効にします。

    sudo pcs property set stonith-enabled=true
  2. いずれかのノードから、クラスタを停止します。

    sudo pcs cluster stop --all
  3. 各ノードで、次のように、SSDデーモンをインストールして構成します。

    sudo dnf install sbd
  4. 各ノードで、sbd systemdサービスを有効にします。

    sudo systemctl enable sbd
    ノート

    有効にすると、sbd systemdサービスは、Pacemakerサービスの依存関係として自動的に起動および停止します。つまり、sbdサービスを個別に実行する必要はなく、サービスを手動で起動または停止することはできません。手動で起動または停止しようとすると、サービスの状態は同じままになり、サービスが依存サービスであることを示すエラー・メッセージが表示されます。
  5. 各ノードで、/etc/sysconfig/sbdファイルを編集し、SBD_DEVICEパラメータを設定して共有ストレージ・デバイスを識別します。共有ストレージ・デバイスの詳細は、『Oracle Linux 9共有ファイル・システムの管理』および『Oracle Linux 8共有ファイル・システムの管理』を参照してください。

    たとえば、共有ストレージ・デバイスが/dev/sdcで使用可能な場合は、各ノードの/etc/sysconfig/sbdファイルに次の行が含まれていることを確認します。

    SBD_DEVICE="/dev/sdc"
  6. ウォッチドッグ・デバイスを/dev/nullに設定して、各ノードの/etc/sysconfig/sbdファイルを引き続き編集します。
    SBD_WATCHDOG_DEV=/dev/null
  7. いずれかのノードから、共有ストレージ・デバイスにSBDメッセージング・レイアウトを作成し、そのレイアウトが設定されていることを確認します。

    たとえば、/dev/sdcにある共有ストレージ・デバイスでメッセージングを設定して検証するには:

    sudo sbd -d /dev/sdc create 
    sudo sbd -d /dev/sdc list
  8. いずれかのノードからクラスタを起動し、共有ストレージ・デバイスのfence_sbdフェンシング・エージェントを構成します。

    たとえば、クラスタを起動し、/dev/sdcで共有ストレージ・デバイスを構成するには:

    sudo pcs cluster start --all 
    sudo pcs stonith create sbd_fencing fence_sbd devices=/dev/sdc