pacemaker+corosync環境を作成した時にハマった話


目次

こんにちは。

ピクトリンク事業部インフラ課の粟田です。

今回は pacemaker+corosync環境をCentOS7上に構築した時にハマった話を書こうかと。

発生した問題

サーバ2台(CentOS7)にpacemakerとcorosyncをインストールして環境を構築中にcorosyncが疎通できていなくて、pcs status corosync や crm_mon を実行すると、お互いにOFFLINE……

ログを見てみると unclean(offline)の文字列が見えたので、ググって出てきた結果を参照すると、再起動したら直ったというようなものが出てきたけれども解決に至らず……

原因

corosyncの設定時には(DNSで解決可能な)ホスト名を指定してたんですが、corosyncはこのホスト名を127.0.0.1と認識してたんでした。

$ corosync-cfgtool -s
Printing ring status.
Local node ID 1
RING ID 0
    id      = 127.0.0.1
    status  = ring 0 active with no faults

なんで127.0.0.1になるんだろうと原因探していると/etc/hostsが悪さしてたんでした。

127.0.0.1 自ホスト名 localhost

127.0.0.1にホスト名書くなよ……

きっとこの辺の設定を全サーバで意識したくなかったせいなんだろうな。

あとがき

無駄に時間使っちゃったよ……