高可用性のクラスタリング

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. フェンシングの設定

Pacemakerのインストール

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

ノート

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

ベスト・プラクティス

クラスタで使用するOCIインスタンスごとに、端末ウィンドウを開き、インスタンスに接続します。

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

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

PacemakerおよびCorosyncのインストール

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ソフトウェア・パッケージをインストールします。「Pacemakerのインストール」を参照してください。
  2. いずれかのノードから、各クラスタ・ノードのhaclusterユーザーに対してpcsクラスタ構成ツールを認証します。

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

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

  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)フェンシングは、Pacemakerソフトウェアと連携して、高可用性(HA)クラスタ内のノードが応答しなくなった場合にデータを保護します。フェンシングを行うと、Pacemakerソフトウェアが応答しないノードをオフラインにするまで、HAクラスタ内のライブノードが応答しないノード上のデータにアクセスできなくなります。

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

ノート

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. 各ノードで、次のように、SBDデーモンをインストールして構成します。

    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