10.5.2. 配置仲裁设备
本节提供了在红帽高可用性集群中配置仲裁设备的示例步骤。以下流程配置了仲裁设备并将其添加到集群中。在本例中:
- 用于仲裁设备的节点是
qdevice
。 - 仲裁设备模型是
net
,这是目前唯一支持的模型。net
模型支持以下算法:ffsplit
:5-fifty split.这为拥有最多活跃节点的分区提供一个投票。lMS:le
-man-standing.如果节点是集群中唯一可以看到qnetd
服务器的节点,则它将返回一个投票。警告LMS 算法允许在集群中只剩下一个节点时仍保持仲裁,但也意味着制裁设备的投票权利更大,它等同于 number_of_nodes - 1。丢失与制裁设备的连接意味着丢失了 number_of_nodes - 1 个投票,就是说只有具有所有活跃节点的集群才能保持仲裁(因为仲裁设备的投票权利更大), 其它任何群集都每以处于仲裁状态。
有关实施这些算法的详情,请查看corosync-qdevice
(8)man page。 - 集群节点是
node1
和node2
。
下面步骤配置一个仲裁设备,并将仲裁设备添加到集群中。
- 在您要用来托管仲裁设备的节点中,使用以下命令配置仲裁设备。这个命令配置并启动仲裁设备模型
net
,并将设备配置为在引导时启动。[root@qdevice:~]#
pcs qdevice setup model net --enable --start
Quorum device 'net' initialized quorum device enabled Starting quorum device... quorum device started配置制裁设备后,您可以检查其状态。这应该显示corosync-qnetd
守护进程正在运行,此时没有连接的客户端。--full
命令选项提供详细输出。[root@qdevice:~]#
pcs qdevice status net --full
QNetd address: *:5403 TLS: Supported (client certificate required) Connected clients: 0 Connected clusters: 0 Maximum send/receive size: 32768/32768 bytes - 使用以下命令在
firewalld
上启用高可用性
服务,从而在防火墙上启用pcsd
守护进程和网络仲裁
设备所需的端口:[root@qdevice:~]#
firewall-cmd --permanent --add-service=high-availability
[root@qdevice:~]#firewall-cmd --add-service=high-availability
- 从现有集群中的某个节点中,在托管仲裁设备的节点上验证用户
hacluster
。[root@node1:~] #
pcs cluster auth qdevice
Username: hacluster Password: qdevice: Authorized - 在集群中添加仲裁设备。在添加仲裁设备前,您可以检查当前的配置以及仲裁设备的状态以便稍后进行比较。这些命令的输出表明集群还没有使用仲裁设备。
[root@node1:~]#
pcs quorum config
Options:[root@node1:~]#
pcs quorum status
Quorum information ------------------ Date: Wed Jun 29 13:15:36 2016 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 1 Ring ID: 1/8272 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 1 Flags: 2Node Quorate Membership information ---------------------- Nodeid Votes Qdevice Name 1 1 NR node1 (local) 2 1 NR node2以下命令添加您之前在集群中创建的仲裁设备。您不能同时在集群中使用多个仲裁设备。但是,一个仲裁设备可以被多个集群同时使用。这个示例命令将仲裁设备配置为使用ffsplit
算法。有关仲裁设备的配置选项的详情,请查看corosync-qdevice
(8)man page。[root@node1:~]#
pcs quorum device add model net host=qdevice algorithm=ffsplit
Setting up qdevice certificates on nodes... node2: Succeeded node1: Succeeded Enabling corosync-qdevice... node1: corosync-qdevice enabled node2: corosync-qdevice enabled Sending updated corosync.conf to nodes... node1: Succeeded node2: Succeeded Corosync configuration reloaded Starting corosync-qdevice... node1: corosync-qdevice started node2: corosync-qdevice started - 检查仲裁设备的配置状态。在集群一端,您可以执行以下命令查看如何更改配置。pcs quorum config 显示已配置的仲裁设备。
[root@node1:~]#
pcs quorum config
Options: Device: Model: net algorithm: ffsplit host: qdevicepcs quorum status 命令显示仲裁运行时状态,这表示仲裁设备正在使用中。[root@node1:~]#
pcs quorum status
Quorum information ------------------ Date: Wed Jun 29 13:17:02 2016 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 1 Ring ID: 1/8272 Quorate: Yes Votequorum information ---------------------- Expected votes: 3 Highest expected: 3 Total votes: 3 Quorum: 2 Flags: Quorate Qdevice Membership information ---------------------- Nodeid Votes Qdevice Name 1 1 A,V,NMW node1 (local) 2 1 A,V,NMW node2 0 1 Qdevicepcs quorum 设备状态显示仲裁设备运行时状态。[root@node1:~]#
pcs quorum device status
Qdevice information ------------------- Model: Net Node ID: 1 Configured node list: 0 Node ID = 1 1 Node ID = 2 Membership node list: 1, 2 Qdevice-net information ---------------------- Cluster name: mycluster QNetd host: qdevice:5403 Algorithm: ffsplit Tie-breaker: Node with lowest node ID State: Connected从仲裁设备一侧,您可以执行以下 status 命令,该命令显示corosync-qnetd
守护进程的状态:[root@qdevice:~]#
pcs qdevice status net --full
QNetd address: *:5403 TLS: Supported (client certificate required) Connected clients: 2 Connected clusters: 1 Maximum send/receive size: 32768/32768 bytes Cluster "mycluster": Algorithm: ffsplit Tie-breaker: Node with lowest node ID Node ID 2: Client address: ::ffff:192.168.122.122:50028 HB interval: 8000ms Configured node list: 1, 2 Ring ID: 1.2050 Membership node list: 1, 2 TLS active: Yes (client certificate verified) Vote: ACK (ACK) Node ID 1: Client address: ::ffff:192.168.122.121:48786 HB interval: 8000ms Configured node list: 1, 2 Ring ID: 1.2050 Membership node list: 1, 2 TLS active: Yes (client certificate verified) Vote: ACK (ACK)