AzureVM上でクラスタ化(pacemaker)導入してみた
概要
仕事でクラスタリングソフトの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の構成において重要なポイントです。
構築手順
構築手順は下記の手順に沿って実行する。
- Pacemakerインストール
- パラメータの変更
- RA作成/配置
- リソースパラメータの変更
- 簡易テスト(手動フェイルオーバー/フェイルバック)
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