Pacemakerでかんたんクラスタリング体験してみよう!

第2回 Pacemakerをインストールしてみよう![構築基本編]

この記事を読むのに必要な時間:およそ 9 分

リソース制御機能(Pacemaker)の設定

次に,リソース制御機能を設定します。今回は,Apacheサーバのクラスタを構築します。構成は,図3の通りです。クライアントからは仮想IPに対してアクセスするようにします。

Pacemakerで管理すべきリソースは,Apacheと仮想IPです。運用系で故障が発生した場合は,この2つのリソースはセットでフェイルオーバさせます。

図3 リソース構成

図3 リソース構成

事前準備

Apacheをインストールします。

# yum -y install httpd
# ssh pm02 yum -y install httpd

特に設定は不要ですが,どちらのサーバのApacheにアクセスしているかわかるように,index.htmlを用意しておきます。

# cat > /var/www/html/index.html <<EOF
<html> <body> <h1>pm01 is on service.</h1> </body> </html>
EOF
# ssh pm02 "cat > /var/www/html/index.html" <<EOF
<html> <body> <h1>pm02 is on service.</h1> </body> </html>
EOF

リソース設定の種類

リソース設定の基本は,リソースエージェント(RA)です。⁠聞いていないよ~」という人は第1回を読み返してください。リソース設定でよく使う用語について簡単に説明しておきます。

  • primitive: すべてのリソース設定の最小単位。RAはまずprimitive設定することから始まります。
  • clone: 同じ設定のリソースを複数のノードで動作させたい場合に使用します。 primitive 設定後にclone化します。ネットワーク監視,ディスク監視などで使用します。
  • group: 複数のリソースをまとめてフェイルオーバさせるために使用します。group内のprimitiveには,起動/停止時の順序も合わせて設定されます。

今回の例では,Apacheと仮想IPはgroup設定を行います。

crmコマンド

リソース設定は,crmコマンドで行います。crmコマンドは非常に多機能で,これ1つでリソース設定からサーバ・リソース管理,状態確認などが行えます。

# crm help

This is the CRM command line interface program.

Available commands:

        cib              manage shadow CIBs
        resource         resources management
        node             nodes management
        options          user preferences
        configure        CRM cluster configuration
        ra               resource agents information center
        status           show cluster status
        quit,bye,exit    exit the program
        help             show help
        end,cd,up        go back one level

コマンドの実行方法しては,対話モード,ワンライナー,バッチモードの3つがあります。それぞれについて,クラスタに参加しているサーバの一覧を見る手順を例に,手順を説明します。

引数なしで起動すると,対話モードで使えます。 help を入力すると,そこで使えるコマンドが表示されます。タブキーを入力すると,コマンドや引数についても補完が効くのでとても便利です。通常は対話モードで使うことが多いでしょう。

# crm
crm(live)# node
crm(live)node# show
pm02(53a7615f-6b2f-4f71-9597-6b9a44e7f803): normal
        standby: off
pm01(8559a0d8-a5c9-4a84-aa7e-1961cad9658c): normal
        standby: off
crm(live)node# quit
bye

引数でコマンドを与えると,ワンライナー(1行プログラム)として使うことができます。

# crm node show

あるいは,コマンドを標準入力でcrmに渡してバッチモードで実行することもできます。実行すべきコマンドが決まっている場合はこの方法が便利です。

# crm <<EOF
node show
EOF

以降の設定手順では,ワンライナーまたは対話モードを使用しますが,まとめてコマンドを実行したい場合は,バッチモードを使ってみてください。

ではさっそくリソース設定を始めましょう。

クラスタ全体の設定

次のコマンドを実行してください。

# crm configure property no-quorum-policy="ignore" stonith-enabled="false"
# crm configure rsc_defaults resource-stickiness="INFINITY" migration-threshold="1"

1行目では,クラスタ全体に関係する設定を行っています。

  • no-quorum-policy:3サーバ以上の構成で,クラスタに参加するサーバ数が過半数に満たない場合の動作ポリシーを指定。2サーバの場合はおまじないと思ってignoreを設定してください
  • stonith-enabled:STONITH機能を有効にするかどうかを指定。詳細は次回で説明します

2行目では,リソース動作のデフォルト値を設定しています。

  • resource-stickiness:リソース移動を固定する優先度を指定。INFINITYを指定すると不具合のない限りは稼働中のリソースは移動せず,自動フェイルバックなしの動作に相当します
  • migration-threshold:故障を検知した場合に同一サーバでリソースの再起動を試みる回数を指定

著者プロフィール

三井一能(みいかずよし)

NTTオープンソースソフトウェアセンタ所属。Linux-HA Japanプロジェクトには2年前から参加。

インフラエンジニアたるもの自宅サーバのメンテにも余念がない。だが,口ぐせからか,妻は私の趣味がアップデートとインストールと思い込んでいる。