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コマンドを使えるようにする方法を実践していきましょう。
crmsh(The CRM Shell)は、crmコマンドでPacemakerのクラスタ設定/管理を行うソフトウェアです。
crmコマンドはこれまで解説してきたpcsコマンドに対し、大きく3つのメリットがあります。
まず、crmコマンドは対話式でも設定ができます。対してpcsは、コマンド1つずつが完結しています。例えば、以下のような違いです。
# pcs property set stonith-enabled=false
# crm crm(live)# configure crm(live)configure# property stonith-enabled=false
crmコマンドでは、crmを入力するとコマンド入力モードになり、コマンドプロンプトが「crm(live)#」に変わります。さらにconfigureを入力すると、コマンドプロンプトが設定モードの「crm(live)configure#」に変わります。このように設定できるので、「今、どのモードになっているのか」を認識しやすいことがメリットです。
1つ前のモードに戻るには「up」と入力します。crmコマンド入力モードから抜ける場合は「exit」を入力します。
また、「1行完結式でもよい」のもメリットです。crmコマンドでも以下のように1行でまとめて記述できます。
# crm configure property stonith-enabled=false
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
# crm configure load update vip.conf
なお、上記の例ではリソース1つだけですが、複数のリソースを読み込んでまとめて設定することも可能です。
crmコマンドは設定済みの値の編集/修正も比較的簡単です。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だと作業がかなりはかどると思います。
Copyright © ITmedia, Inc. All Rights Reserved.