创建仲裁磁盘加固Linux高可用性结点

日期: 2014-01-20 作者:Sander van Vugt翻译:唐琼瑶 来源:TechTarget中国 英文

利用Red Hat High Availability Add-On创建Linux高可用集群后,还可以通过增加仲裁磁盘与栅栏功能增强集群可靠性。 集群使用仲裁磁盘来检测整个集群是否完整;例如,检查某个结点是否与集群断开。通过配置仲裁磁盘,可以通过一系列测试检查结点是否还在正常工作。 I/O栅栏用在已经与高可用集群断开的节点上。

栅栏可以自动关闭故障结点,确保资源可以在多台服务器启动时免遭风险。 配置仲裁磁盘 仲裁磁盘涉及到投票。默认情况下,每个结点都能投票一次。如果结点数大于两个,就需要仲裁选举;每个结点都可以为自身所在集群进行投票选举。

只有两个结点的集群是个例外,这样的集群永远都无法在某个结点……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

利用Red Hat High Availability Add-On创建Linux高可用集群后,还可以通过增加仲裁磁盘与栅栏功能增强集群可靠性。

集群使用仲裁磁盘来检测整个集群是否完整;例如,检查某个结点是否与集群断开。通过配置仲裁磁盘,可以通过一系列测试检查结点是否还在正常工作。

I/O栅栏用在已经与高可用集群断开的节点上。栅栏可以自动关闭故障结点,确保资源可以在多台服务器启动时免遭风险。

配置仲裁磁盘

仲裁磁盘涉及到投票。默认情况下,每个结点都能投票一次。如果结点数大于两个,就需要仲裁选举;每个结点都可以为自身所在集群进行投票选举。只有两个结点的集群是个例外,这样的集群永远都无法在某个结点故障的时候进行选举。

配置仲裁磁盘需要共享存储与试探。共享存储设备必须是集群内的所有结点都能访问。试探是在结点在连接到仲裁磁盘之前必须的一个监测,确保该结点可以正常运行。

如果“脑分裂”状况出现,某个结点从集群中脱离成为孤儿,其余所有结点都会轮询仲裁磁盘。如果它们能够成功执行试探测试,那么它们的投票在选举中就是有效的。如果结点执行试探失败,那么其选票不会被仲裁磁盘所接收,进而被当作终止而失去仲裁权。

对于使用共享存储与Red Hat Linux的数据中心,仲裁磁盘需要在共享存储设备上分区。使用mkqdisk这个Linux分区工具将其标记为仲裁磁盘。然后通过LuCI Web管理界面进行试探。

使用fdisk Linux工具在共享存储设备上为集群中某个结点创建分区——100MB已经足够。在集群的其他节点上,可以通过partprobe 命令更新分区表。

首先,在其中一个节点上使用mkqdisk –c /dev/sdb1 –l quorumdisk 命令创建仲裁磁盘。在输入上述命令之前,需要核对确认设备名无误。

在其他结点上,使用mkqdisk –L命令来显示所有仲裁磁盘。应该可以看到刚才创建的仲裁磁盘,标签为quorumdisk。

在LuCI界面,打开Configuration > QDisk选项卡,然后选择“Use a Quorum Disk.”来指定要使用的设备,输入先前格式化仲裁磁盘时输入的标签名quorumdisk。

图1:设置仲裁磁盘参数

现在,需要配置试探。这是检测某个结点是否可以正常访问仲裁磁盘进行投票的小测试。例子之一就是使用ping命令探测默认网关。要进行这样的测试,需要在“Path to Program”里输入ping –c 1 192.168.1.70。

Interval字段用于设置测试要如何执行;五秒是个不错的预设值。Score字段设置测试成功的返回值。如果需要连接多个试探来测试仲裁磁盘,可以添加各种不同数值进行验证,但在此例中,只可以使用1。超时时间(TKO)用于设置仲裁测试的容忍度。如果将其设置为12秒,意味着结点试探测试失败不能超过两次。最后一个参数用于设置最小总分值,该值是当结点在通过试探测试后,可以获得的分数。

在创建仲裁设备后,可以使用cman_tool status命令来检测其是否按预期工作。检查结点数量,本例中设置为2,预期的节点数量是3。这样设置方便仲裁磁盘投票,可以看到其被设置为1。这意味着仲裁设备正在工作。

清单1: 使用cman_tool status验证仲裁设备是否正常工作。

[root@node1 ~]# cman_tool status
Version: 6.2.0
Config Version: 2
Cluster Name: colorado
Cluster Id: 17154
Cluster Member: Yes
Cluster Generation: 320
Membership state: Cluster-Member
Nodes: 2
Expected votes: 3
Quorum device votes: 1
Total votes: 3
Node votes: 1
Quorum: 2
Active subsystems: 11
Flags:
Ports Bound: 0 11 177 178
Node name: node1
Node ID: 1
Multicast addresses: 239.192.67.69
Node addresses: 192.168.1.80

设置栅栏

栅栏功能有助于维护集群完整性。如果通过Corosync消息框架发出的集群协议包无法再到达另一个结点,在结束其服务之前,使用硬件栅栏来确保其真正关闭。

图2:定义栅栏设备

硬件栅栏使用某种硬件设备来关闭某个故障结点。通常来说,是电源开关或集成管理卡,如HP ILO或Dell Drac等。

设置栅栏是一个两步走的过程:配置栅栏设备,接着将这些栅栏设备加入结点网络中。要设置Linux 高可用集群的栅栏设备,打开Red Hat的Conga Web界面集群管理接口选项卡“Fence Devices”。点击添加后,可以看到所有可用的栅栏设备。常用的栅栏设备类型是IPMI LAN,可以发送指令到许多集成管理卡。

图3:添加栅栏设备到节点

在选择栅栏设备后,需要为其设置属性。每个栅栏设备的属性都不一样,但通常都包括用户名、密码与IP地址。在设置好这些参数后,就可以提交设备到配置中。(如下图)。

在定义好这些栅栏设备后,将其连接到LuCI管理接口的“Nodes”中。选择某个结点,下拉属性列表并点击“Add Fence Method”按钮。接着输入将要使用的栅栏方法,点击Add Fence instance按钮添加所创建的设备。之后只需提交并重复完成所有集群内结点的配置。