高可用性のクラスタリング
Oracle Cloud Infrastructure (OCI)で実行されているOracle Linuxインスタンスを使用すると、複数のノードで実行されているアプリケーションおよびサービスへの継続的なアクセスを提供する高可用性(HA)クラスタを作成できます。HAクラスタリングにより、ダウンタイムが最小限に抑えられ、システム・コンポーネントに障害が発生した場合でも、いつでも継続的なサービスが提供されます。
OCIインスタンスでHAクラスタを作成するには、オープン・ソースの高可用性リソース・マネージャであるPacemakerをインストールして使用し、オープン・ソースのクラスタ・エンジンであるCorosyncを使用します。HAクラスタリングとPacemakerおよびCorosyncテクノロジの詳細については、次のソースを参照してください。
前提条件
開始する前に、HAクラスタ内の必要なすべてのノードからアクセスできるように共有ストレージデバイスを構成します。共有ストレージ・デバイスは、クラスタ・サービスおよびアプリケーション・メッセージング、およびクラスタSBDフェンシングに必要です。共有ストレージデバイスの設定の詳細は、次のソースを参照してください。
OCIインスタンスを使用した高可用性クラスタリングの設定
OCIインスタンスで高可用性クラスタリングを設定するには:
Pacemakerのインストール
Oracle Cloud Infrastructure (OCI)インスタンスを含む高可用性(HA)クラスタを作成するには、まず、クラスタ内の必要な各インスタンスまたはノードにPacemakerおよびCorosyncパッケージをインストールする必要があります。その後、各クラスタノードを構成し、Pacemakerサービスが自動的に起動し、ブート時に各ノードで実行されるようにすることができます。
OCIインスタンス、ノードおよびクラスタ・ノードは、OCIのHAクラスタリングと同等に使用されます。
ベスト・プラクティス
クラスタで使用するOCIインスタンスごとに、端末ウィンドウを開き、インスタンスに接続します。
ssh
を使用して各インスタンスに接続します。ssh instance-IP-address
ノードごとに端末ウィンドウを開くと、HAクラスタを構成するときにノードへのログインとログアウトを繰り返す必要がなくなります。
PacemakerおよびCorosyncのインストール
PacemakerおよびCorosyncパッケージをインストールし、HAクラスタ・ノードを構成するには:
- 高可用性クラスタリングの前提条件を完了します。
-
PacemakerおよびCorosyncパッケージが存在するOracle Linux yumサーバーでリポジトリを有効にします。
Oracle Linux 10:sudo dnf config-manager --enable ol10_addons
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 sudo firewall-cmd --add-service=high-availability
-
各ノードで、
hacluster
ユーザーのパスワードを設定します。sudo passwd hacluster
ヒント
同じクラスタ内の異なるノードで
pcs
コマンドを実行する際の認可の問題を回避するために、各ノードで同じパスワードを設定します。 -
各ノードで、
pcsd
サービスを実行して起動するように設定します。sudo systemctl enable --now pcsd.service
-
構成したノードを使用してHAクラスタを作成します。Creating an HA Clusterを参照してください。
HAクラスタの作成
PacemakerおよびCorosyncソフトウェアを使用すると、Oracle Cloud Infrastructure (OCI)で実行されているLinuxインスタンスを使用して、高可用性(HA)クラスタを作成できます。
HAクラスタを作成するには:
- クラスタ内の各ノードにPacemakerおよびCorosyncソフトウェア・パッケージをインストールします。「Pacemakerのインストール」を参照してください。
-
いずれかのノードから、各クラスタ・ノードの
hacluster
ユーザーに対してpcs
クラスタ構成ツールを認証します。たとえば、HAクラスタを2つのノードで構成する場合は、いずれかのクラスタノードから次のコマンドを実行します。
sudo pcs host auth node1 node2 -u hacluster
node1およびnode2を、クラスタを構成するノードの解決可能なホスト名に置き換えます。
または、ホスト名を解決できない場合は、次の例に示すように、各ノードのIPアドレスを指定します。
sudo pcs host auth node1 addr=192.0.2.1 node2 addr=192.0.2.2 -u hacluster
192.0.2.1および192.0.2.2を、クラスタ内の各ホストのIPアドレスに置き換えます。
-
プロンプトが表示されたら、各ノードにPacemakerソフトウェアをインストールして構成したときに、
hacluster
ユーザーに定義したパスワードを入力します。 -
pcs cluster setup
コマンドを使用して、次を指定してHAクラスタを作成します。- クラスタの名前。
- クラスタで使用する各ノードのホスト名およびIPアドレス
たとえば、2つのノードを持つHAクラスタを作成するには:
sudo pcs cluster setup cluster-name node1 addr=192.0.2.1 node2 addr=192.0.2.2
192.0.2.1および192.0.2.2を、クラスタ内の各ホストのIPアドレスに置き換えます。
-
いずれかのノードから、すべてのノードでクラスタを起動します。
sudo pcs cluster start --all
-
オプションで、これらのサービスをブート時に起動するように有効化できます。それによって、ノードがリブートした場合に自動的にそれがクラスタに再参加します。これを行うには、いずれかのノードで次のコマンドを実行します。
sudo pcs cluster enable --all
ノート
ノードがクラスタに再参加する前にシステム全体のリブートの原因となるノード障害を適切にデバッグできるように、これらのサービスを有効にしないことを選択するユーザーもいます。
- 新しく作成したHAクラスタのSBDフェンシングを構成します。フェンシングの構成を参照してください。
フェンシングの構成
STONITH Block Device(SBD)フェンシングは、Pacemakerソフトウェアと連携して、高可用性(HA)クラスタ内のノードが応答しなくなった場合にデータを保護します。フェンシングを行うと、Pacemakerソフトウェアが応答しないノードをオフラインにするまで、HAクラスタ内のライブノードが応答しないノード上のデータにアクセスできなくなります。
SBDフェンシング構成は、OCIインスタンスを使用したHAクラスタの設定を完了する最後のステップです。HAクラスタの作成の詳細は、「HAクラスタの作成」を参照してください。
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
-
各ノードで、次のように、SBDデーモンをインストールして構成します。
sudo dnf install sbd
-
各ノードで、
sbd
systemdサービスを有効にします。sudo systemctl enable sbd
ノート
有効にすると、sbd
systemdサービスは自動的に起動され、Pacemakerサービスの依存性として停止します。つまり、sbd
サービスを個別に実行する必要はなく、サービスを手動で開始または停止することはできません。手動で起動または停止しようとすると、サービスの状態は同じままになり、サービスが依存サービスであることを示すエラー・メッセージが表示されます。 -
/etc/sysconfig/sbd
ファイルを各ノードで編集し、SBD_DEVICE
パラメータを設定して共有ストレージ・デバイスを識別します。これを行うには、/dev/disk/by-id/
ディレクトリ・システム内のリンクなどの永続デバイス・パスを使用します。たとえば、共有ストレージ・デバイスが
/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90
で使用可能な場合は、各ノードの/etc/sysconfig/sbd
ファイルに次の行が含まれていることを確認します。SBD_DEVICE="/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90"
共有ストレージ・デバイスの詳細は、「前提条件」の項に記載されているリンクを参照してください。
- ウォッチドッグ・デバイスを
/dev/null
に設定して、各ノードの/etc/sysconfig/sbd
ファイルを引き続き編集します。SBD_WATCHDOG_DEV=/dev/null
-
いずれかのノードから、共有ストレージ・デバイスにSBDメッセージング・レイアウトを作成し、その配置されていることを確認します。
たとえば、
/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90
の共有ストレージ・デバイスでメッセージングを設定および検証するには:sudo sbd -d /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 create
sudo sbd -d /dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90 list
-
いずれかのノードからクラスタを起動し、共有ストレージ・デバイス用に
fence_sbd
フェンシング・エージェントを構成します。たとえば、クラスタを起動し、
/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90
で共有ストレージ・デバイスを構成するには:sudo pcs cluster start --all
sudo pcs stonith create sbd_fencing fence_sbd devices=/dev/disk/by-id/wwn-0XY3acy9d40afd88083ACR90
-
stonith
構成が正しく設定されていることを確認するには、次のコマンドを実行します。sudo pcs stonith config sudo pcs cluster verify --full
-
stonith
構成のステータスをチェックするには、次のコマンドを実行します:sudo pcs stonith
-
クラスタのステータスをチェックするには、次のコマンドを実行します。
sudo pcs status