Contents
はじめに
近年ではAmazonのAWSまた、MicrosoftのAzureなどのクラウドサービスを利用する場合が多いと思いますが、自社でサーバを管理したい場合など物理サーバなどを購入して利用する場合も少なからずあります。そのなかでも、高可用性を求められる場合があり実現するためにLifeKeeper、CLUSTEPROまたはWindowsではWSFC使用することになるでしょう。
構成によっては高可用性を実現するためにコストが大幅に上がることになります。
本ブログではコストをかけずに高可用性を実現するためにオープンソースのPacemakerを使用し、Ubuntu上にシンプルかつ安価な高可用性クラスターを構築する手順について解説します。
高可用性(HA) とは
システムやサービスができるだけ長期間、安定して稼働し続けることを意味します。システム障害が発生しても、迅速に回復できる仕組みを備えており、サービスのダウンタイムを最小限に抑えることが求められます。特に、ミッションクリティカルなシステムや、24時間稼働する必要があるサービスにおいて、高可用性の確保は非常に重要です。
【必要な環境】
Ubuntu 20.04 以上
複数のUbuntuサーバ(最低2台)
【構築イメージ】
インストールとセットアップ
1.Pacemakerのインストール(稼働サーバ、待機サーバ)
Pacemakerとその依存関係をインストールします。Ubuntuでは、aptを使用して簡単にインストールできます。
sudo apt update
sudo apt install pacemaker corosync pcs resource-agents-extra
・pacemaker:クラスターリソースの管理を行います。
・corosync:クラスター内のノード間で通信を行います。
・pcs:PacemakerとCorosyncの設定管理ツールです。
・resource-agents-extra:Pacemakerで使用する追加リソースエージェントです。
2.haclusterのパスワード設定(稼働サーバ、待機サーバ)
Pacemakerをインストールするとhaclusterユーザーが作成されます。初期設定ではパスワードが未設定のためhaclusterパスワードを設定します。このユーザーは稼働サーバと待機サーバの通信を認証するとき使用します。
sudo passwd hacluster
New password:********
Retype new password:*******
3.クラスター設定(稼働サーバ)
インストールが完了したら、次にクラスターを設定します。最初に、クラスター内のノードを設定し、ノード間で通信できるようにします。以下のコマンドを実行して、クラスター管理ツールの設定を行います。
pcs host auth ubuntusv1 ubuntusv2 -u hacluster -p ********
********はhaclusterユーザのパスワードを入力します。
次に、クラスターを作成します。
sudo pcs cluster setup test-cluster ubuntusv1 addr=192.168.10.10 ubuntusv2 addr=192.168.10.20
4. クラスターの起動(稼働サーバ)
クラスターを起動するには、以下のコマンドを使用します。
sudo pcs cluster start --all
5. クラスターのステータス確認(稼働サーバ)
クラスターの状態を確認するためには、以下のコマンドを実行します。
sudo pcs status
6. STONITHの無効化(稼働サーバ)
今回の環境はシンプル構成のためSTONITHを無効化します。
sudo pcs property set stonith-enabled=false
リソースの設定
クラスターの基本設定が完了したら、次に高可用性リソース(例:ウェブサーバやデータベース)の設定を行います。ここでは、簡単な例として、VIP(Virtual IP Address)とApache HTTPサーバをHAリソースとして設定する方法を説明します。
1. VIPリソースの作成(稼働サーバ)
192.168.10.30のIPアドレスのリソースをWeb-groupに作成します。
pcs resource create web-vip ocf:heartbeat:IPaddr2 ip=192.168.10.30 cidr_netmask=24 --group web-group
2. Apacheのインストール(稼働サーバ、待機サーバ)
apacheをインストールします。ubuntuの場合はapache2になります。
sudo apt install apache2
3.リソースの作成(稼働サーバ)
Apacheをリソースとして作成します。
sudo pcs resource create apache ocf:heartbeat:apache configfile="/etc/apache2/apache2.conf" --group web-group
動作確認
リソースの設定が完了したら、実際にブラウザを使用してapacheに接続してみましょう。
1.状態を確認
クラスターの状態を確認するためには、以下のコマンドを実行します。
web-vipとapacheがStartedになっていればubuntusv1で起動しています。
sudo pcs status
Node List:
* Online: [ ubuntusv1 ubuntusv2 ]
Full List of Resources:
* Resource Group: web-group:
* web-vip (ocf:heartbeat:IPaddr2): Started ubuntusv1
* apache (ocf:heartbeat:apache): Started ubuntusv1
2.ブラウザで接続
ブラウザを起動してhttp://192.168.10.30にアクセスします。
Apache2のデフォルトのサイトが表示されます。
3.リソースを待機サーバで起動
稼働サーバを停止する方法もありますが、今回は手動で移動します。
sudo pcs resource move web-group
状態を確認するとWeb-vipとapacheがubuntusv2で起動していることがわかります。
sudo pcs status
Node List:
* Online: [ ubuntusv1 ubuntusv2 ]
Full List of Resources:
* Resource Group: web-group:
* web-vip (ocf:heartbeat:IPaddr2): Started ubuntusv2
* apache (ocf:heartbeat:apache): Started ubuntusv2
4.ブラウザで接続
ブラウザを起動してhtt://192.168.10.30にアクセスします。
稼働サーバと同じくApache2のデフォルトのサイトが表示されます。
まとめ
UbuntuとPacemakerを使用して、高可用性クラスターを構築する方法を紹介しました。この記事では、基本的なセットアップ方法を説明しましたが、実際の運用ではさらに高度な設定や監視、アラート機能を追加することができます。また、共有のストレージを使用することでデータベース・ファイルサーバなどを高可用性の構成にすることも可能です。
オープンソースを使用することで、コストをかけずに構築でき使いこなすことで、信頼性の高いインフラを安価に構築することができます。
再春館システムでは、お客様のご要望に合わせた最適なシステムをご提案可能です。一般的なミドルウェアからオープンソースまたはクラウドなどの幅広い実績があります。ブログに記載されていない構成も可能ですので、詳細は当社にお問い合わせください。
記事:T.S
- ←back
- インフラ