- 元は 1 年くらい前に書いたものなので古いです
- 今は CentOS の公式レポから入れた Pacemaker/Corosync が元気に動いています
Pacemaker/Corosync を使うにあたり、LinuxHA Japan のパッケージと CentOS のパッケージのどちらが良いかのメモ。
LinuxHA Japan のパッケージは下記から入手できる。
ざっくりバージョンの比較
- LinuxHA Japan
- corosync-2.3.4-1
- pacemaker-1.1.13-1
- resource-agents-3.9.6-1
- CentOS
- corosync-2.3.4-7
- pacemaker-1.1.13-10
- resource-agents-3.9.5-54
メンテナンスのポリシー
CentOS は updates にパッケージがあったので、バージョンを維持したまま CentOS 7 のライフサイクルの終了まで保守される。
LinuxHA Japan の方は新しいバージョンに更新されている。ポリシーも良くわからない(たぶん無い?)
LinuxHA Japan 特有のパッケージ
下記は LinuxHA Japan がメンテしているものなので LinuxHA Japan のパッケージにしか含まれていない。
pm_crmgen
- Excel から
crm.xml
を作成するツール
- Excel から
pm_diskd
- ディスクの正常性の監視(
pingd
の ディスク版)
- ディスクの正常性の監視(
pm_extras
- いくつかの追加のリソースエージェントとか
- インタフェースの状態をアトリビュートに記録するデーモン(
crm_mon
で表示できる)
pm_ctl
- SSH 経由でクラスタのすべての Pacemaker を開始・停止などの制御を行なうツール
- リソースのマイグレーションもコマンド一発で出来たりするっぽい
下記は他所でメンテされているものだが LinuxHA Japan のパッケージに含まれている。
crmsh
- http://crmsh.github.io/
- Pacemaker 1.0 時代のクラスタ管理の CLI
pssh
- https://code.google.com/archive/p/parallel-ssh/
- SSH をパラレルに実行したりするやつ
pssh
は次のように使えるものでこれ単体で非常に便利だけど Pacemaker と直接の関係はない。
$ pssh -H 192.168.33.10 -H 192.168.33.11 -H 192.168.33.12 mkdir -p /tmp/hoge [1] 08:07:14 [SUCCESS] 192.168.33.12 [2] 08:07:14 [SUCCESS] 192.168.33.10 [3] 08:07:14 [SUCCESS] 192.168.33.11
crm と pcs
crm
(crmsh
パッケージのコマンド) での下記は・・・
crm configure property stonith-enabled="false" property no-quorum-policy="ignore" rsc_defaults migration-threshold="5" rsc_defaults resource-stickiness="INFINITY" rsc_defaults failure-timeout="3600s" primitive vip1 ocf:heartbeat:IPaddr2 \ params ip="192.168.33.21" cidr_netmask="24" nic="enp0s8" \ op monitor interval="10" timeout="20" on-fail="restart" \ op start interval="0" timeout="20" \ op stop interval="0" timeout="20" primitive vip2 ocf:heartbeat:IPaddr2 \ params ip="192.168.33.22" cidr_netmask="24" nic="enp0s8" \ op monitor interval="10" timeout="20" on-fail="restart" \ op start interval="0" timeout="20" \ op stop interval="0" timeout="20" primitive vip3 ocf:heartbeat:IPaddr2 \ params ip="192.168.33.23" cidr_netmask="24" nic="enp0s8" \ op monitor interval="10" timeout="20" on-fail="restart" \ op start interval="0" timeout="20" \ op stop interval="0" timeout="20" group vips vip1 vip2 vip3 verify commit show quit
pcs
だと下記の通り。
pcs property set stonith-enabled="false" pcs property set no-quorum-policy="ignore" pcs resource defaults migration-threshold="5" pcs resource defaults resource-stickiness="INFINITY" pcs resource defaults failure-timeout="3600s" pcs resource create vip1 ocf:heartbeat:IPaddr2 \ ip="192.168.33.21" cidr_netmask="24" nic="enp0s8" \ op monitor interval="10" timeout="20" on-fail="restart" \ op start interval="0" timeout="20" \ op stop interval="0" timeout="20" pcs resource create vip2 ocf:heartbeat:IPaddr2 \ ip="192.168.33.22" cidr_netmask="24" nic="enp0s8" \ op monitor interval="10" timeout="20" on-fail="restart" \ op start interval="0" timeout="20" \ op stop interval="0" timeout="20" pcs resource create vip3 ocf:heartbeat:IPaddr2 \ ip="192.168.33.23" cidr_netmask="24" nic="enp0s8" \ op monitor interval="10" timeout="20" on-fail="restart" \ op start interval="0" timeout="20" \ op stop interval="0" timeout="20" pcs resource group add vips vip1 vip2 vip3 pcs config pcs status
まとめ
LinuxHA Japan の特有のパッケージに特別必要なものがないなら CentOS で良いように思う。
Pacemaker 1.0 時代に慣れていると crmsh
が無いのが辛いかと思ってたけど、代替の pcs
が対話型シェル風に使えないだけでほとんど同じように使えてとくに困らなさそう。