当前Windows群集心跳阀值设置

一、内容描述:

WINDOWS群集之间通过心跳检测(HeartBeat)各个节点是否正常在线,微软称此检测为lookalive,检测通过UDP数据包中封装的RPC信息进行传送。默认情况下为每秒检测一次,如果连续5次检测失败,则可能发生故障转移。

然而日常运维过程中,存在网络延迟和网络拥挤的个别现象,尤其是不同子网之间的通信更是如此;公司AlwaysOn节点与SQLCluster群集的通信为跨子网,因此在网络繁忙时段,将可能出现网络延迟导致检测失败。本文描述通过调整心跳检测阈值,以最大程度的避免此情况的发生。

二、WINDOWS心跳阀值设置步骤:

通过cmd命令Cluster.exe /prop查看当前群集的属性信息,其中心跳阀值相关属性:

  • SameSubnetDelay:同一子网中的节点的测信号频率
  • SameSubnetThreshold: 同一子网中的节点的延迟的阈值
  • CrossSubnetDelay: 不同的子网中的节点的检测信号频率
  • CrossSubnetThreshold: 在不同的子网中的节点的延迟的阈值

SameSubnetDelay 默认代表每1秒执行一次Windows群集心跳检测,SameSubnetThreshold 代表Windows群集允许最大心跳检测失败数5,超过这个数量就可能会引起群集故障转移。

心跳调整允许的范围如下:最大允许每2秒检测一次,连续10次失败则为失败。

属性

默认值

允许范围值

SameSubnetDelay

1000ms

250ms~2000ms

SameSubnetThreshold

5

3~10

CrossSubnetDelay

1000ms

250ms~2000ms

CrossSubnetThreshold

5

3~10

通过cmd命令修改:

Cluster.exe /Prop SameSubnetDelay=2000

Cluster.exe /Prop SameSubnetThreshold=10

Cluster.exe /Prop CrossSubnetDelay=2000

Cluster.exe /Prop CrossSubnetThreshold =10

查看结果cluster.exe /prop

三、注意事项及其它说明:

心跳检测的简单理解为,Node1会发送一个连接序列号到Node2Node2响应相同的序列号,Node1再次发送一个相同的序列号到Node2,且Node2再次回应相同序列号。Node1将确定此心跳序列完成并开始另外的序列检测,如果在这某次检测过程中,心跳序列被删除或未及时接收到,将表示missed此次心跳,默认过程连续五次心跳序列均missed,此节点被认为非活动。

通过修改阀值,可以解决一定程度上的网络延迟,但并不能根本的解决问题,所以请记住对延迟或阈值设置的更改不会被视为一种故障排除技术。对于心跳检测默认使用IPv6,因为它是比IPv4更快的协议,如果已禁用 IPv6,它将使用 IPv4。故障转移群集不会混合和匹配 IPv6 IPv4。不能同时使用。

四、参考文档:

http://blog.csdn.net/jaminwm/article/details/8008895

http://technet.microsoft.com/zh-cn/magazine/hh535729.aspx

posted @ 2014-12-24 13:57  阿传说  阅读(1580)  评论(0编辑  收藏  举报