28.2. 配置仲裁设备
按照以下流程配置仲裁设备并将其添加到集群中。
在本例中:
-
用于仲裁设备的节点是
qdevice
。 仲裁设备模型是
net
,这是目前唯一支持的模型。net
模型支持以下算法:-
ffsplit
:50-50 均分。这为拥有最多活跃节点的分区提供一个投票。 lMS
:last-man-standing。如果节点是集群中唯一可以看到qnetd
服务器的节点,则它将返回一个投票。警告LMS 算法允许在集群中只剩下一个节点时仍保持仲裁,但也意味着制裁设备的投票权利更大,它等同于 number_of_nodes - 1。丢失与制裁设备的连接意味着丢失了 number_of_nodes - 1 个投票,就是说只有所有节点都处于活动状态的集群才能保持仲裁(通过对仲裁设备进行过度投票), 其它任何集群都变为不可仲裁。
有关这些算法实现的详情,请查看
corosync-qdevice
(8)手册页。
-
-
集群节点是
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
[root@qdevice:~]# pcs qdevice setup model net --enable --start Quorum device 'net' initialized quorum device enabled Starting quorum device... quorum device started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置制裁设备后,您可以检查其状态。这应该显示
corosync-qnetd
守护进程正在运行,此时没有客户端连接上来。--full
命令选项提供详细的输出。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令在
firewalld
上启用high-availability
服务,从而在防火墙上启用pcsd
守护进程所需的端口和net
仲裁设备:[root@qdevice:~]# firewall-cmd --permanent --add-service=high-availability [root@qdevice:~]# firewall-cmd --add-service=high-availability
[root@qdevice:~]# firewall-cmd --permanent --add-service=high-availability [root@qdevice:~]# firewall-cmd --add-service=high-availability
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在现有集群中的某个节点上,对托管仲裁设备的节点上的用户
hacluster
进行身份验证。这允许集群上的pcs
连接到qdevice
主机上的pcs
,但不允许qdevice
主机上的pcs
连接到集群上的pcs
。[root@node1:~] # pcs host auth qdevice Username: hacluster Password: qdevice: Authorized
[root@node1:~] # pcs host auth qdevice Username: hacluster Password: qdevice: Authorized
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在集群中添加仲裁设备。
在添加仲裁设备前,您可以检查当前的配置以及仲裁设备的状态以便稍后进行比较。这些命令的输出表示集群还没有使用仲裁设备,每个节点的
Qdevice
成员资格状态为NR
(未注册)。[root@node1:~]# pcs quorum config Options:
[root@node1:~]# pcs quorum config Options:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下命令添加您之前在集群中创建的仲裁设备。您不能同时在集群中使用多个仲裁设备。但是,一个仲裁设备可以被多个集群同时使用。这个示例命令将仲裁设备配置为使用
ffsplit
算法。有关仲裁设备的配置选项的详情,请查看corosync-qdevice
(8)手册页。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查仲裁设备的配置状态。
在集群一端,您可以执行以下命令查看如何更改配置。
pcs quorum config
显示已配置的仲裁设备。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pcs quorum status
命令显示仲裁运行时状态,表示仲裁设备正在使用。每个集群节点的Qdevice
成员资格信息状态值的含义如下:-
A/NA
- 仲裁设备处于活动状态,代表qdevice
和corosync
之间是否存在心跳。这应该总是表示仲裁设备处于活动状态。 -
当仲裁设备为节点投票时,会设置 v
/NV
-V
。在本例中,两个节点都设置为V
,因为它们可以相互通信。如果集群被分成两个单节点集群,其中一个节点将设置为V
,其他节点将设置为NV
。 MW/NMW
- 内部仲裁设备标记(MW
)或未设置(NMW
)。默认情况下标志未设置,值为NMW
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pcs quorum device status
显示仲裁设备运行时状态。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在仲裁设备一侧,您可以执行以下状态命令,其显示
corosync-qnetd
守护进程的状态:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-