高可用性クラスタリング
Oracle Cloud Infrastructure (OCI)で実行されているOracle Linuxインスタンスを使用すると、複数のノードで実行されているアプリケーションおよびサービスへの継続的なアクセスを提供する高可用性(HA)クラスタを作成できます。HAクラスタリングにより、ダウンタイムが最小限に抑えられ、システム・コンポーネントに障害が発生した場合に継続的なサービスが提供されます。
オープン・ソースの高可用性リソース・マネージャであるPacemakerとオープン・ソースのクラスタ・エンジンであるCorosyncをインストールして使用することで、OCIインスタンスでHAクラスタを作成できます。HAクラスタリングおよびPacemakerおよびCorosyncテクノロジの詳細は、Oracle Linux 9高可用性クラスタリングの設定およびOracle Linux 8高可用性クラスタリングの設定を参照してください。
前提条件
作業を開始する前に、HAクラスタで必要なすべてのノードからアクセスできるように共有ストレージデバイスを構成します。共有ストレージ・デバイスは、クラスタ・サービスおよびアプリケーション・メッセージング、およびクラスタSBDフェンシングに必要です。共有ストレージ・デバイスの設定の詳細は、Oracle Linux 9共有ファイル・システムの管理およびOracle Linux 8共有ファイル・システムの管理を参照してください。
OCIインスタンスを使用した高可用性クラスタリングの設定
OCIインスタンスで高可用性クラスタリングを設定するには:
OCIインスタンス用の高可用性ネットワーク・ファイル・システム(NFS)サービスを設定する方法のチュートリアルは、GlusterとOracle Linuxを使用した高可用性NFSサービスの作成を参照してください。
Pacemakerのインストール
Oracle Cloud Infrastructure (OCI)インスタンスで高可用性(HA)クラスタを作成するには、まず、クラスタ内の必要な各インスタンスまたはノードにPacemakerおよびCorosyncパッケージをインストールする必要があります。その後、各クラスタ・ノードを構成し、Pacemakerサービスが起動時に各ノードで自動的に起動および実行されるようにできます。
OCIインスタンス、ノードおよびクラスタ・ノードは、OCIのHAクラスタリングと同義に使用されます。
ベスト・プラクティス
クラスタ内の必要なOCIインスタンスごとに、ターミナル・ウィンドウを開き、インスタンスに接続します。
ssh
を使用して各インスタンスに接続します。ssh instance-IP-address
各ノードの端末ウィンドウを開くと、HAクラスタの構成時にノードへのログインとログアウトを繰り返す必要がなくなります。
ペースメーカーおよびコロシンクのインストール
PacemakerおよびCorosyncパッケージをインストールし、HAクラスタ・ノードを構成するには:
- 高可用性クラスタリングの前提条件を完了します。
-
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
-
各ノードで、Pacemakerの
pcs
コマンド・シェル、ソフトウェア・パッケージ、および使用可能なすべてのリソースおよびフェンス・エージェントをインストールします。sudo dnf install pcs pacemaker resource-agents fence-agents-sbd
-
サービス・コンポーネントがネットワーク経由で通信できるように、ファイアウォールを構成します。
sudo firewall-cmd --permanent --add-service=high-availability
-
各ノードで、
hacluster
ユーザーのパスワードを設定します。sudo passwd hacluster
-
各ノードで、起動時に
pcsd
サービスを実行して起動するように設定します。sudo systemctl enable --now pcsd.service
-
構成したノードを使用してHAクラスタを作成します。Creating an HA Clusterを参照してください。
HAクラスタの作成
PacemakerおよびCorosyncソフトウェアを使用すると、Oracle Cloud Infrastructure (OCI)で実行されているLinuxインスタンスで高可用性(HA)クラスタを作成できます。
HAクラスタを作成するには:
- PacemakerおよびCorosyncソフトウェア・パッケージを、クラスタ内の各ノードにインストールします。Installing Pacemakerを参照してください。
-
いずれかのノードから、各クラスタ・ノードの
hacluster
ユーザーのpcs
クラスタ構成ツールを認証します。たとえば、2つのノードがHAクラスタを構成する場合は、いずれかのクラスタノードから次のコマンドを実行します。
sudo pcs host auth node1-resolvable-hostname node2-resolvable-hostname -u hacluster
-
プロンプトが表示されたら、各ノードの
hacluster
ユーザーに対してステップ5で定義したパスワードを入力します。 -
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
-
いずれかのノードから、すべてのノードでこのクラスタを起動します。
sudo pcs cluster start --all
- 新しく作成した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フェンシングを構成するには:
-
いずれかのクラスタ・ノードから、SBDフェンシング戦略の一部として使用されるフェンシング手法である
stonith
(Shoot The Other Node In The Head)を有効にします。sudo pcs property set stonith-enabled=true
-
いずれかのノードから、クラスタを停止します。
sudo pcs cluster stop --all
-
各ノードで、次のように、SSDデーモンをインストールして構成します。
sudo dnf install sbd
-
各ノードで、
sbd
systemdサービスを有効にします。sudo systemctl enable sbd
ノート
有効にすると、sbd
systemdサービスは、Pacemakerサービスの依存関係として自動的に起動および停止します。つまり、sbd
サービスを個別に実行する必要はなく、サービスを手動で起動または停止することはできません。手動で起動または停止しようとすると、サービスの状態は同じままになり、サービスが依存サービスであることを示すエラー・メッセージが表示されます。 -
各ノードで、
/etc/sysconfig/sbd
ファイルを編集し、SBD_DEVICE
パラメータを設定して共有ストレージ・デバイスを識別します。共有ストレージ・デバイスの詳細は、『Oracle Linux 9共有ファイル・システムの管理』および『Oracle Linux 8共有ファイル・システムの管理』を参照してください。たとえば、共有ストレージ・デバイスが
/dev/sdc
で使用可能な場合は、各ノードの/etc/sysconfig/sbd
ファイルに次の行が含まれていることを確認します。SBD_DEVICE="/dev/sdc"
- ウォッチドッグ・デバイスを
/dev/null
に設定して、各ノードの/etc/sysconfig/sbd
ファイルを引き続き編集します。SBD_WATCHDOG_DEV=/dev/null
-
いずれかのノードから、共有ストレージ・デバイスにSBDメッセージング・レイアウトを作成し、そのレイアウトが設定されていることを確認します。
たとえば、
/dev/sdc
にある共有ストレージ・デバイスでメッセージングを設定して検証するには:sudo sbd -d /dev/sdc create
sudo sbd -d /dev/sdc list
-
いずれかのノードからクラスタを起動し、共有ストレージ・デバイスの
fence_sbd
フェンシング・エージェントを構成します。たとえば、クラスタを起動し、
/dev/sdc
で共有ストレージ・デバイスを構成するには:sudo pcs cluster start --all
sudo pcs stonith create sbd_fencing fence_sbd devices=/dev/sdc