📘

AzureVM上でクラスタ化(pacemaker)導入してみた

2023/12/30に公開

概要

仕事でクラスタリングソフトのPacemakerを利用したAzure VMのクラスタ化を行ったので、記事にまとめてみました。

概要

元々の構成は、WEBAP3台全てでアプリケーションが起動するActive-Active構成でしたが、
今回、3台のうちどれか一台でアプリケーションが起動するActive-stanby構成へ変更することなった。その際アプリケーションのクラスタ化を行い、Activeノードで異常がある場合は別のStandbyノードへFailover(以下、FO)するよう設定を行った。

クラスタ化変更後のアーキテクチャ図は以下のイメージで設計しました。

今回上記アーキテクチャを変更するにあたり、下記の使用技術を用いています。

  • AzureVM(Ubuntsu)
  • pacemaker(corosync)
  • リソースエージェント(以下、RA)

Pacemaker(corosync)

PacemakerとCorosyncは、高可用性(HA)クラスタを構築するためのオープンソースソフトウェアです。Pacemakerは、クラスターリソースマネージャーとも呼ばれ、各種リソース(仮想IP、Web、データベースなどのサービス)の動作状態について監視/制御を行います。
一方、Corosyncは、クラスタ管理プログラムであり、定期的にハートビート通信を送信することによって、クラスタを構成するマシンの稼働状態を監視します。
これら二つのソフトウェアは連携して動作します。Corosyncがノード死活監視を行い、ノードがダウンした場合には、Pacemakerでリソース制御(ノード切り離し、待機系ノードへのリソース引継ぎ)が実行されます。これらのソフトウェアは、サービスの可用性を最大化するために、ノードおよびリソースレベルの障害を防ぎ、障害から復旧することを目指しています。

リソースエージェント

Pacemakerの「リソースエージェント」は、クラスタリソースを管理する実行ファイルです。
クラスタ管理ソフトウェア(Pacemakerなど)が「リソース起動」「リソース停止」「リソース稼働監視」などに使用するプログラムです。Pacemakerは、リソースエージェントを実行して監視を行い、フェイルカウントにより「リソース停止」→「リソース切替」→「リソース再起動」を行います。リソースエージェントの設定は、Pacemakerの構成において重要なポイントです。

構築手順

構築手順は下記の手順に沿って実行する。

  1. Pacemakerインストール
  2. パラメータの変更
  3. RA作成/配置
  4. リソースパラメータの変更
  5. 簡易テスト(手動フェイルオーバー/フェイルバック)

pacemakerのインストール

pacemkaerのインストールコマンドを以下のコマンドを実行しました。

# pacemakerのインストール(全台で実施)
$ sudo apt install -y pacemaker pcs
 
# pcs自動起動設定を追加 (全台で実施)
$ sudo systemctl start pcsd.service
$ sudo systemctl enable pcsd.service

# クラスタ用ユーザhaclusterのパスワードを設定する(全台で実施)
$ sudo passwd hacluster
(パスワードを設定する)

まとめ

今回はクラスタ化にpacemakerを利用しました。
使ってみた感想としては、OSSの中では自由度が高く、かなり使いやすいのではないかと思いました。
次回は、別環境で2ノードクラスタ化の構築を行うので、そちらについても記載したいと思います。

Discussion