ここで奇妙な問題が発生しました。 CorosyncとPacemakerをセットアップしました。このガイドを参照として使用しましたが、スレーブのような指示に従うのではなく、学習のためにこれを行っているため、初めてインストールするときに少し即興で行いました。しかし、この奇妙なエラーが発生したので、新しいVPSを起動して再試行しました。今回は、スレーブのような指示に従いました。
これが私が従ったガイドで、DigitalOceanでMitchellAnicasからセットアップされたかなり素敵なものです: buntu 14.04でCorosync、Pacemaker、およびFloating IPを使用して高可用性HAProxyセットアップを作成する方法| digitalocean.com
私が得ているエラーは、クラスター内のノードの数に関連しています。私の設定では、2ノードクラスターを実行するように明示的に指定しました。
OS:Ubuntu Xenial Xursus(16.04.4)
totem {
version: 2
cluster_name: lbcluster
transport: udpu
interface {
ringnumber: 0
bindnetaddr: primary's-privateIP
broadcast: yes
mcastport: 5405
}
}
quorum {
provider: corosync_votequorum
two_node: 1
}
nodelist {
node {
ring0_addr: primary's-privateIP
name: primary
nodeid: 1
}
node {
ring0_addr: secondary's-privateIP
name: secondary
nodeid: 2
}
}
logging {
to_logfile: yes
logfile: /var/log/corosync/corosync.log
to_syslog: yes
timestamp: on
}
Sudo crm status
を実行すると、出力は次のようになります。
Last updated: Fri Apr 13 15:31:47 2018 Last change: Fri Apr 13 14:08:42 2018 by root via cibadmin on secondary<br>
Stack: corosync<br>
Current DC: secondary (version 1.1.14-70404b0) - partition with quorum<br>
3 nodes and 0 resources configured
Online: [ primary secondary ]
OFFLINE: [ sh-ps-02 ]
また、Sudo crm configure show
を実行して、構成を表示します。
node 1: primary<br>
node 2: secondary<br>
node 2130706433: sh-ps-02<br>
property cib-bootstrap-options: \<br>
have-watchdog=false \<br>
dc-version=1.1.14-70404b0 \<br>
cluster-infrastructure=corosync \<br>
cluster-name=debian \<br>
stonith-enabled=false \<br>
no-quorum-policy=ignore
セカンダリノードのノード名が実行されているが、2ノードクラスターであると明示的に言われていてもオフラインである、奇妙な外観のノードがあるのはなぜですか?
追加16. 2018年4月:クラスターのメンバーを取得するためにSudo corosync-cmapctl | grep members
を実行しましたが、オフラインになっているその奇妙なクラスターメンバーの痕跡はありません。
runtime.totem.pg.mrp.srp.members.1.config_version (u64) = 0
runtime.totem.pg.mrp.srp.members.1.ip (str) = r(0) ip(x.x.82.204)
runtime.totem.pg.mrp.srp.members.1.join_count (u32) = 3
runtime.totem.pg.mrp.srp.members.1.status (str) = joined
runtime.totem.pg.mrp.srp.members.2.config_version (u64) = 0
runtime.totem.pg.mrp.srp.members.2.ip (str) = r(0) ip(x.x.82.167)
runtime.totem.pg.mrp.srp.members.2.join_count (u32) = 1
runtime.totem.pg.mrp.srp.members.2.status (str) = joined
XenialはCorosyncを出荷しており、Pacemakerはsystemdで起動および有効化されており、「シングルノードクラスター」を起動するcorosync.conf
構成を備えていると思います。そのエントリは、名前を設定する前に追加されたノードの1つのホスト名である可能性があります:primary
およびsecondary
。
クリーンアップするには、そのエントリを削除するだけです。
# crm node delete sh-ps-02
補足:ノードにprimary
とsecondary
という名前を付けるのは良い習慣ではありません。クラスタ内のいずれかのノードが「プライマリ」または「セカンダリ」として機能できる必要があるため、node-a
およびnode-b
の方が適しています。