連載
» 2016年11月10日 05時00分 UPDATE

DRBDの仕組みを学ぶ(12):Pacemakerの制御コマンドを「crm」に戻して運用する (1/3)

DRBDを軸に、データを遠隔地にも即時複製して万が一の事態に備える「冗長化/高可用性システム」の構築テクニックを紹介する本連載。今回は、Pacemekerのクラスタ設定と管理のコマンドを、pcsから「crm」に戻して運用する方法を解説します。

[澤田健,株式会社サードウェア]

連載バックナンバー

 本連載は、サービスを止めてはならない環境で活躍する冗長化支援ツール「DRBD(Distributed Replicated Block Device)」を使い、災害対策システム高可用性WordPressシステムなどを構築するノウハウをお届けしてました。今回も、基礎編から一歩進んだ「応用ノウハウ」を紹介していきます。

 これまで解説してきた、DRBD+Pacemaker+Corosyncを組み合わせた高可用性システムの構築手順では、Pacemaker部分の設定を「pcs」と呼ばれるコマンドで行っていました。

 pcsは、Pacemakerのバージョン1.1で採用されたコマンドです。一方、それ以前のバージョンでは、「crm」と呼ばれるコマンドを使用していました。

 実は、このcrmコマンドに慣れていた筆者にとって、新しいpcsコマンドは少し扱いにくい部分があると感じています。また、DRBD+Pacemaker+Corosync、もしくはDRBD+Pacemaker+Heartbeatに関する過去の技術資料などにもcrmコマンドを用いたノウハウが数多くあります。そこで今回は、「どちらのコマンドを用いる場合にも、既存の情報が役に立つ」ように、Pacemaker 1.1でもcrmコマンドを使えるようにする方法を実践していきましょう。

photo Pacemaker

crmshとは

 crmsh(The CRM Shell)は、crmコマンドでPacemakerのクラスタ設定/管理を行うソフトウェアです。

photo crmsh

 crmコマンドはこれまで解説してきたpcsコマンドに対し、大きく3つのメリットがあります。

1:対話式でも設定が可能

 まず、crmコマンドは対話式でも設定ができます。対してpcsは、コマンド1つずつが完結しています。例えば、以下のような違いです。

# pcs property set stonith-enabled=false
pcsコマンド例:pcsコマンドは、1行にまとめて記述する
# crm
crm(live)# configure
crm(live)configure# property stonith-enabled=false 
crmコマンド例:crmコマンドは、対話式でも設定できる

 crmコマンドでは、crmを入力するとコマンド入力モードになり、コマンドプロンプトが「crm(live)#」に変わります。さらにconfigureを入力すると、コマンドプロンプトが設定モードの「crm(live)configure#」に変わります。このように設定できるので、「今、どのモードになっているのか」を認識しやすいことがメリットです。

 1つ前のモードに戻るには「up」と入力します。crmコマンド入力モードから抜ける場合は「exit」を入力します。

 また、「1行完結式でもよい」のもメリットです。crmコマンドでも以下のように1行でまとめて記述できます。

# crm configure property stonith-enabled=false 
crmコマンド例:crmコマンドは1行でも記述できる

2:設定が簡単

 crmコマンドでは、設定項目を記述したファイルをあらかじめ用意しておき、それを読み込ませることでも設定できます。その設定ファイル「vip.conf」の記述例と実行方法を以下に示します。

primitive res_ip IPaddr2 \
        params ip=192.168.0.150 cidr_netmask=24 \
        op start interval=0 timeout=20 \
        op stop interval=0 timeout=20 \
        op monitor interval=10 timeout=20
「vip.conf」の中身の例
# crm configure load update vip.conf
用意したvip.confを読み込んで、まとめて設定するコマンド

 なお、上記の例ではリソース1つだけですが、複数のリソースを読み込んでまとめて設定することも可能です。

3:編集/修正が簡単

 crmコマンドは設定済みの値の編集/修正も比較的簡単です。crm configure editコマンドで、直接編集モードになります。

# crm configure edit
設定内容を直接編集できるようにするコマンド。対話式に、crm→configure→editと順入力してモードを切り替えることもできる
# crm configure edit 
node 1: iscsi-ha1
node 2: iscsi-ha2
primitive iscsi-target iSCSITarget \
        params implementation=lio-t iqn="iqn.2016-04.3ware.co.jp:windows-disk" portals="192.168.0.150:3260" additional_parameters="DefaultTime2Retain=60 DefaultTime2Wait=5" \
        op start interval=0 timeout=60 \
        op stop interval=0 timeout=60 \
        op monitor interval=30s
primitive lun iSCSILogicalUnit \
        params implementation=lio-t target_iqn="iqn.2016-04.3ware.co.jp:windows-disk" lun=1 path="/dev/drbd0" \
        op start timeout=60 interval=0 \
        op stop timeout=60 interval=0 \
        op monitor interval=30 timeout=10
<<省略>
直接編集している例

 編集作業はVi/Vimエディタと同じです。「:wq!」コマンドで保存し、終了します。

 ちなみにpcsコマンドで設定値を修正するには、まず項目をコマンドで削除してから、新しい値をコマンドで入力するという手順になります。Pacemakerの設定値を変更する機会が多い場合、あるいは構築時/テスト時の段階では、内容の編集/修正が容易なcrmだと作業がかなりはかどると思います。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。