WSFC2016 跨站点运行状况检测51CTO博客 - AG环亚娱乐

WSFC2016 跨站点运行状况检测51CTO博客

2019-03-06 09:57:56 | 作者: 昆颉 | 标签: 检测,状况,节点 | 浏览: 2286

之前在WSFC基础知识奠基篇从前为咱们介绍过微软WSFC毛病搬运的进程,咱们来重温一下


1.依照要求布置装备群集节点,保证群集效劳器利用了冗余技能消除了效劳器,网络,存储的单一毛病点

2.保证群集内一切节点都能够拜访到同享存储

3.群集运用将运用数据写入到群集同享存储

4.办理员新增节点1效劳器上面功用人物,新增完成后节点1效劳器群集数据库记载新增的人物功用以及相相关的信息,稍后会把信息同步至其它节点2,及群集裁定磁盘

5.群集节点之间依照预订的心跳检测频率进行全网握手检测

6.节点1呈现毛病效劳器遽然关机,这时节点2心跳检测频率抵达阈值,断定节点1现已离线

7.节点2断定节点1现已离线后,会根据现已同步的群集数据库信息,检查节点1效劳器当时承载的群集运用,从头将群集运用与相关IP地址,群集磁盘在节点2进行上线

8.客户端正常拜访群集称号,运用群集效劳,但原有节点1的群集运用,现已由节点2供给,毛病搬运完毕


本篇咱们将首要重视与群集毛病搬运的发作,咱们能够看到从第五步开端,群集开端进行运转状况检测,随后以运转状况检查成果,来决议群集节点是否应履行毛病搬运


这在任何一个高可用群集里边都是有必要的,只需群集是高可用性质,那么必定会有一种节点运转状况检测的机制,这种机制能够是ping检测,握手检测,API勘探检测,总归咱们需求一种机制来精保证证节点的健康与否


针关于节点的运转状况检测机制是否精确,是一个群集的中心,真实能够被运用的群集运转状况检测机制,应该是精确能够反响节点健康与否状况的,一起能够根据实践状况灵敏更改健康监测的阈值。


节点的运转状况检测是毛病搬运里边履行节点毛病搬运的根据,针关于节点的运转状况检测假如抵达了必定阈值,群集就会断定该节点毛病,随之会导致节点上面一切承载的群集资源进行failover操作,而failover操作有时又会发作停机时刻,因而,群集节点运转状况的检测频率,和决议要进行毛病检测的阈值,必定是要进行环境评价的。


群会集健康检测分为两大类,一类是节点检测,一类是资源检测,节点的检测更为简略,不需求置备许多重试逻辑,只需我群集规则的运转状况检测办法,你在规则时刻,规则次数里边没有让群集检测到,群集就以为你是呈现毛病的,无法再供给效劳,需求对你进行一切运用的failover


而资源检测相关于节点检测,则更为杂乱一些,能够把节点检测理解为外层的检测,针关于一个节点level的检测,假如节点检测失利,则节点上一切资源failover,资源检测则更重视资源等级的运转状况,正如老王在日志排错进阶篇解说到的,群集里边每个资源都会有自己的resource.dll,群集正常运作进程中,RHS会依照每个资源的resource.dll界说对资源进行lookalive和isalive的检测,针关于每个资源的lookalive和isalive检测办法都会不同,lookalive仅仅大略检测,isalive则更为深化,isalive检测的成果会报告给RCM,RCM会再根据资源的毛病战略,进行失利重试,在机器上测验屡次发动资源,或把资源搬运到其他节点运转。


总结来说,节点的运转状况检测成果,决议了节点上面一切运用是否要被毛病搬运,资源的运转状况检测成果,决议了单个资源是否要被依照毛病战略进行操作。资源检测更为杂乱,要根据resource dll界说的检测办法,考虑多种状况,来进行lookalive和isalive的检测。办理员针对一些资源也能够收到设置毛病战略,例如不测验重启,直接呈现失利就搬运到其他节点,或重启资源测验三次失利,再搬运到其他节点。


在曩昔单个资源的RHS检测失利,或许还会影响到其它群集资源,2008之后,大多数程序都现已被阻隔到独自的RHS进程中进行检测,因而很少会呈现单个资源检测影响到其它资源的场景。


节点运转状况检测成果影响面更大,资源运转状况检测影响面仅仅单个资源。咱们只需求这样记住就能够了


介绍了一些根本的理论之后,咱们再来专心于节点的运转状况检测


在WSFC 2012年代开端,微软针关于节点的运转状况发作了改动,不再简略的履行一个ping操作,而是会履行一个真实的握手


例如,当时群集里边有2个节点,默许状况下他们每间隔一秒做一次全网检测,每个节点与节点之前都会进行检测,假如这次握手检测为节点1主张,实践上它会履行一个握手,经过UDP 3343端口发送134byte的检测信号,问询节点2你在吗,节点回复,我在,那么你呢,你在吗,节点1回复我也在。到这儿一个检测完毕,WSFC的节点运转状况检测,是每隔一秒,会在一切节点之间都履行这种运转状况检测,保证没有节点会被遗失,节点运转状况检测首要是经过UDP 3343端口



那么进行这个UDP 3343端口的检测,是在群集里边那块网卡进行呢,答案是一切已被勾选用于群集通讯的网络,在WSFC 2008年代之后,群集只需三种网络类型,别离是 


0 无群集通讯 

1 启用客户端和群集通讯

3 仅用作群集通讯


默许状况下,在咱们创立群集,或增加群集时,群集内部会有一个网络拓扑生成器来帮咱们主动去启示网卡的群集网络类型,生成群集内网络通讯拓扑。


例如


假如检测到网卡上面跑了ISCSI Initiator,那么主动启示它为类型0无群集通讯,保证存储网络只用来交流存储数据


假如检测到网卡上面装备了网关,那么拓扑生成器会以为你这块卡是要与外面客户端通讯供给效劳的,因而会主动把设置了网关的网卡设置为群集网络类型3


假如检测到网卡上面没有设置网关,那么拓扑生成器会以为你这块卡仅仅要做内部群集通讯的,不需求对外供给效劳,会被设置为群集群集网络类型1


需求留意,群集里边群集通讯这种流量下面会做三件事 


1.履行群集内一切节点的运转状况全网检测 

2.履行群集数据库的更新同步 

3.履行群集CSV元数据的同步


这三种操作都对网络质量的要求极高,尤其是CSV元数据和群集数据库,假如由于网络质量欠好,频频丢包,会导致群集数据库更新慢,或许会体现为操作履行下去好久回来成果,或CSV操作写入数据功率低下


因而主张关于群集网络类型3的群集网卡,规划好网络质量,保证不会呈现丢包现象,默许状况下针关于这三种流量会由群集网络类型3的网卡来做,假如一旦群集网络类型3的网卡失利,那么群集会经过网络拓扑生成器从头规划流量群集通讯流量由网络类型1履行,但必定不会让网络类型0履行。


群集网络类型3的网卡咱们一般需求额定装备一些东西,例如不要设置网卡DNS 效劳器、WINS 效劳器或默许网关,撤销群集类型3网卡DNS注册,禁用Netbios,调整网卡次序,让群集类型1网卡最前,保证群集类型3网卡在后面,这些设置大都是为了保证毛病搬运后,运用联机DNS能够直接快速运用群集类型1进行注册,保证出站网络连接时一直是网络类型1优先级最高,保证拜访AD进行身份验证时对外网卡优先级最高,在WSFC 2012之后关于网卡次序开端变得不再重要,WSFC 2016年代现已撤销了网卡拜访次序设置,因而大部分场景只需求去掉群集类型3网卡的DNS和Netbios注册即可


假如WSFC 2016群集是依赖于AD的群集,例如根据域验证的SQL Server群集,您忧虑不规划网卡次序,当进行AD域验证时假如挑选由群集类型3网卡进行,会由于网卡联络不到AD而超时,影响依赖于AD的群集运用程序功用,那么您能够挑选经过Powwershell指令修正网卡接口度量值,以抵达曾经操控网卡次序优先级的意图


装备指令如下,度量值越低优先级越高

Set-NetIPInterface -InterfaceAlias“LAN”-InterfaceMetric 1  

Set-NetIPInterface -InterfaceAlias“CLUS”-InterfaceMetric 2

Set-NetIPInterface -InterfaceAlias“ISCSI”-InterfaceMetric 3

假如群集运用不依赖于AD,或群集布置为工作组模型,那么彻底没必要进行设置。


针关于咱们本文说到的节点运转状况检测,会由NetFT这个组件进行构建检测拓扑,NetFT一般指的是Failover Cluster Virtual Adapter,当咱们装置群集之后,在设备办理器里边显现躲藏设备能够看到有这样一个虚拟网络适配器,用ipconfig /all也能够看到这块网卡,可是并没有装备IP地址,这个群集虚拟网络适配器的首要作用是协助咱们构建一个群会集网络通讯的高可用拓扑,例如,咱们群集节点与节点之间要进行心跳检测,每隔一段时刻,NetFT就会去帮咱们从头构建这个拓扑,例如节点1和节点2,别离有两块网卡,一块专用于群集网络,一块用于群集网络+办理网络,那么当NetFT检测到假如专用的群集网络不能履行心跳检测,就会动态切换至别的一块网卡协助咱们进行心跳检测,NetFT的功用首要就是协助办理员主动构建群集先有的通讯拓扑,在最大程度的帮咱们保证群集网络都能够正常的通讯。



咱们现已知道了节点运转状况检测是根据UDP 3343端口主张的实践握手检测,可是每隔多少秒检测一次,检测的时刻和阈值,是能够进行装备修正的。终究,咱们是要结合实践场景来修正更为适宜的阈值。


例如,假如场景的需求是要求运用有必要抵达高可用,节点和运用非常重要必定不能呈现问题,没有瞬时中止的状况,网络状况非常好,那么咱们就能够设置节点检测严厉一些,例如每隔一秒检测一次,五次检测失利,就符号节点为毛病状况,毛病搬运上面一切的资源运用。


假如场景就是防止不了瞬时中止的状况,例如客户的网卡就是不太安稳 会遽然断掉又马上好了,体系很慢,检测信号maybe不会那么快呼应,这时候您也能够把检测阈值设置的宽松一些,例如针对这种瞬时中止的场景,设置当20次检测失利时才触发毛病搬运操作


微软的主张首要是检测时刻不要更改,一直保持每隔一秒进行一次全网心跳检测,其次是检测失利次数不要改的过于宽松,最长主张设置为20次,假如设置的超越20次,设置次数过多,会导致运用宕机好久才会被发现,推迟宕机时刻,上面一切运用都会受到影响,因而微软主张宽松的阈值最高为20次。


其实更改这样一个节点检测的阈值很简略,一条指令的工作,但更多的是咱们要考虑运用的运转状况,来挑选最合适的阈值


假如说您的环境,关于运用的可用性要求的很严厉,一旦节点呈现问题,运用需求马上被毛病搬运到其它节点上,且您的环境中网络质量很高,不会呈现丢包,瞬时中止的状况,那么您能够设置检测阈值为5或10,这样带来的优点是运用一直在最牢靠的节点运转,只需运用当时运作节点5次检测lost,马上failover到其它节点,但随之带来的问题是,必定要保证网络环境无瞬时中止,一旦呈现瞬时中止的状况,运用会频频的进行failover,因而设置检测阈值严厉的条件,必定是关于运用可用性要求严厉,网络环境满足安稳。


假如说您的环境,网络质量不高,的确会存在瞬时中止,检测信号有时不会及时呼应,那么您能够挑选设置检测阈值宽松一些,最高主张设置到20次信号丢掉,再进行毛病搬运,这是个微软的最佳实践。设置检测阈值宽松,带来的优点是,保证节点正常状况下不会被毛病搬运,容许20次信号检测失利,maybe是由于节点间隔远,或许有瞬时中止的状况。带来的害处是,假如设置的阈值过于宽松,将会推迟宕机时刻,例如,假如节点的确宕机了,可是却在60次检测后才触发毛病搬运,本来5次检测后就该毛病搬运的,因而这额定的55次检测的进程就是额定的宕机时刻。


关于设置节点检测阈值宽松这件工作,一个层面是处理跨子网检测的状况,例如北京2节点,广州2节点,这样一个四节点跨地域跨子网的群集,由于网络链路过于杂乱,5次检测有时的确会由于网络链路而导致检测失利,触发毛病搬运,因而您应该调整他们的检测阈值,但最多不要超越20,别的一点,调整检测阈值宽松,也是为了应对瞬时中止的问题,假如网络环境质量不高,不行安稳,会呈现无法防止的丢包,但又不想频频的毛病搬运,那么也能够调整检测阈值为20。


针关于瞬时中止的状况,WSFC 2016里边现已有了新的技能,即VM弹性,默许状况下该功用被敞开,关于虚拟化群集来讲,微软默许以为环境会存在瞬时中止的问题,因而关于虚拟机资源新增了两个状况,假如240秒内呈现瞬时毛病,则节点进入阻隔状况,虚拟时机处于无监督状况,虚拟机依然能够正常运转或暂停。假如1小时内节点三次被阻隔,则群集以为节点存在问题,需求被彻底排查,因而会被置为检疫状况,实时搬迁一切虚拟机到其它节点,抵达7200秒时刻之前,检疫节点会被排查,不会正常参加群集。


WSFC 2016里边的VM弹性技能,首要提出的是一种新的思路,微软知道关于虚拟化群集瞬时中止比较多,常常由于网络质量而导致毛病搬运,所以新增了阻隔到检疫到正常修正参加的流程。可是这项功用仅针关于VM资源有用,且默许的阻隔时刻过长,假如要运用这项功用,首要你需求了解它,老王在前面博客有具体写,然后需求调整这些阈值,240秒,3次阻隔进检疫,检疫7200秒。假如不想要这项功用,也能够直接封闭。则群集又回到曾经彻底参照运转状况检测阈值设定进行毛病搬运,需求留意,运转状况检测针关于节点收效,一旦运转状况检测阈值抵达,一切节点资源将会被failover,而VM弹性功用,则阻隔状况下,只需虚拟时机被置为未监督状况。因而咱们能够根据实践场景挑选要是用的功用。


OK,涉及到的理论都讲清楚了,接下来看操作指令就简略多了


调整运转状况检测阈值涉及到的参数如下

Delay为检测频率,Threshold为咱们说的检测阈值

除了下表中列出的,在2012年代还有一种状况,即节点增加Hyper-V人物作为Hyper-V群集,那么SameSubnetThreshold会被主动设置为10,CrossSubnetThreshold会被主动设置为20,猜测或许是由于微软考虑Hyper-V上面虚拟机或许许多,5会导致频频毛病搬运,毛病搬运时刻也较长,并且也考虑到瞬时中止状况,因而虚拟化场景下,10和20为最佳


参数  WSFC2012R2  WSFC2016  最大值
  SameSubnetDelay  1秒  1秒  2秒
  SameSubnetThreshold  5心跳  10个心跳  120心跳
  CrossSubnetDelay  1秒  1秒  4秒
  CrossSubnetThreshold  5心跳  20个心跳  120心跳
  CrossSiteDelay  NA  1秒  4秒
  CrossSiteThreshold  NA  20个心跳  120心跳


在WSFC 2016之前,当咱们要调整节点运转状况检测阈值时只需相同子网和跨子网,这四个选项能够设置,CrossSite是新增的功用


这儿的Site是根据咱们经过界说毛病域,界说出来的站点为基准,因而跨站点心跳检测能够被归置到站点感知功用下


在WSFC 2016中,假如咱们别离对这三种场景,同子网,跨子网,跨站点进行了设置,不同的场景下它们的收效优先级也不一样


假如集群节点在同一个站点和相同的子网中,则相同子网的阈值收效

假如集群节点在同一个站点和两个不同的子网中,则跨子网阈值收效

假如集群节点坐落不同的站点和不同的子网中,则跨站点阈值将掩盖跨子网阈值

假如集群节点坐落不同的站点和相同的子网中,则跨站点阈值将掩盖相同子网的阈值


这儿和之前最大的不同点,在于多了不同站点的概念,假如你定了节点在不同站点,那么群集就会以为,他们之间离得很远,需求被运用不同站点的检测阈值,那怕它们在同一个子网


这很合适stretch vlan的场景,即有的群集节点尽管离得很远,可是存在同一个子网下,因而你没办法操控,说其它节点关于这个长途节点要进行比较宽松的信号检测,由于都在一个子网,所以只会被运用SameSubnetThreshold,但这个节点上面也会承载运用,假如就是由于网络链路过长,或瞬时中止,导致信号检测失准,发作毛病搬运,那咱们也没办法操控,终究只能要求更改子网,但在WSFC 2016,咱们能够把该节点逻辑界说到别的一个Site,这样,尽管仍是同子网,可是一旦关于长途节点进行运转状况检测,会运用上跨Site的宽松检测战略


#获取WSFC节点运转状况检测相关设置

Get-Cluster | fl *delay*

Get-Cluster | fl *threshold*




#调整同子网心跳检测阈值为15

(Get-Cluster).SamSubnetThreshold = 15

#调整跨子网心跳检测阈值为15

(Get-Cluster).CrossSubnetThreshold = 15


当时环境持续连续上篇博客,HV01 HV02 归于北京站点,HV03, HV04归于上海站点


检查ClusterLog,能够看到由NETFT构建的运转状况检测拓扑


针关于同子网同站点,运用SamSubnetThteshold检测战略

针关于不同子网跨站点,运用CrossSiteThteshold检测战略

针对相同子网不同Site,运用CrossSiteThteshold检测战略

#手动移动HV01至上海站点

再次检查发现从18.0.0.9 到 18.0.0.10 现已运用CrossSiteThteshold检测规范!


针对不同子网,但其间一个节点退出Site,运用跨Site节点检测战略


针对相同站点,但其间一个节点移动为跨子网,运用跨子网节点检测战略

移动HV01回北京站点

修正HV01为上海子网IP

检查ClusterLog发现其它节点到HV01节点的运转状况检测现已运用CrossSubnetThreshold

一旦18.0.0.0网段无法经过心跳检测,NetFT会从头路由其它网络进行运转状况检测,这时一旦挑选了跨子网的网段,又在同一个Site,那么将会运用跨子网的运转状况检测战略。


版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章