CentOS 7 で Pacemaker/Corosync 使うなら LinuxHA Japan と CentOS のどっちが良い?

  • 元は 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 を作成するツール
  • pm_diskd
    • ディスクの正常性の監視(pingd の ディスク版)
  • pm_extras
    • いくつかの追加のリソースエージェントとか
    • インタフェースの状態をアトリビュートに記録するデーモン(crm_mon で表示できる)
  • pm_ctl
    • SSH 経由でクラスタのすべての Pacemaker を開始・停止などの制御を行なうツール
    • リソースのマイグレーションもコマンド一発で出来たりするっぽい

下記は他所でメンテされているものだが LinuxHA Japan のパッケージに含まれている。

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 が対話型シェル風に使えないだけでほとんど同じように使えてとくに困らなさそう。