WSFC2016 VM弹性与存储容错

  很高兴今天给你们介绍微软2016群集的VM弹性和存储容错技术,在老王看来,WSFC 2016里面针对于群集运做,VM弹性是一项很重要的改变,和滚动升级同样,是一种颠覆式的思惟。算法


  简单来讲,在你们的认知里,群集就是应该当检测到节点不可用以后,快速进行failover,把应用继续转移到其它节点上运行,对吧,相信你们都认同这一点。数据库


  2012R2里面默认相同子网和跨子网都是每隔一秒全网检测一次,五次检测失效,即断定该节点不可用,RCM开始根据群集数据库内容,故障转移角色到其它节点运做,检测时间和检测失败次数操做,能够改,若是您的环境存在网络不稳定的状况,严格的监测会致使节点频繁故障转移,您也改为松散一些的1秒检测一次,20次检测失败,再执行故障转移网络


  可是这个阀值不易修改过久,缘由,一个是由于这个值是针对整个群集级别,若是群集上面有不少应用则全部应用都将受到这个影响,其二是若是检测次数时间过长,会致使宕机时间好久才被发现,所以2012R2及以前,微软建议,最长设置为20次检测失败就故障转移,不建议超过这个数值ide


  但归根到底,咱们修改监测阀值,仍是为了解决网络不稳定的问题,以及用户特定的需求,例如,若是客户网络不稳定,检测会存在瞬时中断,并且也没办法更改,那么就能够把监测阀值设置宽松一些,若是客户环境网络很稳定,须要很严格的检测来保证SLA,也能够把检测阀值设置严格一些。测试


  这是2012R2时代的解决方案,到了2016,微软认为,真正的故障转移状况已经并很少见,反而是瞬时故障的状况更常见,例如节点短暂没法进行网络通讯,或短暂没法和存储链接,以后又马上恢复了,所以微软从新设计了群集中VM故障转移策略,可以让必定时间内的节点瞬时故障,没必要再触发节点虚拟机的故障转移。ui


   在WSFC 2016中,VM弹×××默认被启用,在2016 TP1中这项功能默认被禁用,随后的版本都默认启用,运行Get-Cluster |fl * 能够看到和VM弹性相关的配置spa

wKioL1mxOofBOcMpAAAwaEIQjfg795.png

参数说明设计


ResiliencyLevel : IsolateOnSpecialHeartbeat或1,AlwaysIsolate或2,默认为AlwaysIsolate,即在发生节点瞬时中断后,在一段时间内能够容许虚拟机在线或暂停状态,IsolateOnSpecialHeartbeat即当检测到瞬时中断后,马上置节点为失败状态,执行failover3d


以前咱们说过2016里面重构了VM故障转移策略blog


究竟是怎么重构的呢


在WSFC 2016里面,假设你发生了瞬时中断,例如


  1. 网络短暂不稳定,节点没法和其它节点通信

  2. 群集服务崩溃,没法与其余节点链接

  3. 管理员误操做


当发生例如这种瞬时中断,群集如今新增了三个属性


  1. 隔离:针对于群集节点,在规定时间内,群集节点发生瞬时中断后,状态会被标记为隔离,该成员不会再是合格的群集成员,但上面托管的虚拟机,在必定时间内依然能够正常运行


  2. 未监视:针对于群集管理器中看虚拟机状态,若是当节点发生瞬时中断,变成隔离状态后,在群集里面看虚拟机,虚拟机会是未监视状态


   若是虚拟机存储在SMB3/SOFS路径下,节点隔离状态后虚拟机可使用Online状态运行,由于SMB可独立运行,若是虚拟机存储在FC/FCoE/iSCSI/ShareSAS等块存储构成的CSV路径下,那么虚拟机会被置为暂停状态,由于节点被隔离后,不是合格的群集成员,也将失去CSV的访问资格,若是节点恢复正常,虚拟机会从暂停状态中恢复正常运行,若是节点的瞬时中断一段时间内未恢复,虚拟机将会被failover到其它节点运做。


   3. 检疫持续:咱们会设定一个时间,在这个时间内,节点若是发生瞬时中断后又恢复了,虚拟机不会被迁移,只是继续运行,但若是节点在一小时内,被隔离达到必定次数,屡次发生瞬时中断,则咱们断定该节点当前不正常,该节点可能会致使应用不稳定,所以咱们会把该节点置为检疫状态,置为检疫状态的节点,在一段时间内该节点将处于检疫状态,上面全部的虚拟机会被实时迁移走,直到咱们分析判断该节点恢复正常后,再从新加入群集。


ResiliencyPeriod:配置节点在隔离状态下运做的时间,默认为240秒,即240秒内的瞬时中断,能够被接受,不须要发生故障转移,若是超过240秒仍未恢复,则按照群集检测走,执行故障转移操做。


#配置隔离状态时间

(Get-Cluster).ResiliencyDefaultPeriod = 60

wKiom1mxQTrhEKlyAAAHXkZ-R7E734.png

#关闭隔离状态功能

(Get-Cluster).ResiliencyDefaultPeriod =0

#配置单个虚拟机级别隔离状态时间(即未监视状态时间)

(Get-ClusterGroup“stat”).ResiliencyPeriod =  60


QuarantineThreshold:节点进入检疫状态前的隔离次数,默认为3,即节点一小时内被置为3次隔离状态后,则节点进入检疫状态,全部虚拟机会被实时迁移走


#配置进入检疫状态前的隔离次数

(Get-Cluster).QuarantineThreshold =<value>


QuarantineDuration:节点处在检疫状态下的时间,默认为7200秒,在这段时间,节点将不承载应用,全部虚拟机被实时迁移走,管理员能够排查频繁致使瞬时终端的问题,若是修复好了后能够手动让节点提早恢复,或等到7200秒自动恢复。


#配置检疫状态时间

(Get-Cluster).QuarantineDuration = <value>


这项技术说太多可能会以为枯燥,下面咱们实际来看一下案例


当前环境里面四台虚拟机,其中RODC运做在SOFS路径,其它三台虚拟机运做在经过ISCSI提供的CSV路径下,我设置节点隔离状态时间为60秒,检疫状态时间为600秒,这里老王只是为了测试快点看到结果,真实环境下建议根据实际时间评估,多长时间内能够算做瞬时中断,频繁发生瞬时中断我须要多长时间进行排查问题节点。


WSFC 2016中要实现VM弹性的功能要求


  1. 群集功能级别为9

  2. 虚拟机配置级别升级至少6x以上


在老王的实验中,我将模拟一个群集服务短暂崩溃的场景,模拟群集服务强制中止后,观察群集的反应


当前群集四台虚拟机都承载在HV01

wKioL1myCW-hOwS3AABAkmCJc14929.png

咱们经过强制中止节点上面的clussvc进程来模拟群集服务崩溃

Stop-process -name clussvc -Force

wKioL1mxVUGiHBwjAAAEZtrKyPc267.png

能够看到,群集服务崩溃后,节点会被置为隔离状态 

wKiom1mxVWKxTPr-AAAqZ_tLZrI312.png

全部虚拟机在群集里面看会是未被监视状态,这只是个群集管理器中看到的临时状态

wKioL1mxVUHSDpmeAAA-rl3j1kI406.png

但其实在Hyper-V能够看到,实质上,存放在SOFS的RODC在60秒内会持续运行,运行在CSV上的其余虚拟机,虽然显示 正在运行-关键,这个中文显示是错的,英文上面显示为Paused-Critical,实质上它们是由于节点被隔离,失去到CSV的资格,而被置为暂停状态。

wKiom1mxVWLia8HGAAA9EKs2XAo538.png

若是60秒内,节点又恢复正常了,瞬时中断恢复,网络恢复正常,服务再也不崩溃,管理员恢复了误操做,则节点从新加入回到正常状态,已被暂停的虚拟机会从新开始运行,本例中咱们强制终止clussvc进程后,稍后会自动启动起来

wKiom1mx8E-DJvpaAAAooRBCtLU429.png

wKioL1mx8C6hXdGhAAA5vD7dm4E676.png

wKiom1mx8E-gQdLJAABFRMAHf4k303.png

若是60秒内,瞬时中断,或是群集服务崩溃,或是网络临时中断,或是管理员误操做,没有获得修复,则节点会被置为Down状态,全部被置为未被监视状态的虚拟机会被迁移到其它活着的节点上,迁移过程是快速迁移,针对暂停的虚拟机会置为关机状态再迁移走。

wKiom1mxVv3RLmKTAAA2Sp6FqHg534.png

下面咱们模拟1小时内3次隔离的状况发生,即同一节点三小时内发生瞬时中断

wKioL1mx8eSRnYATAAAMmaL_2jA465.png

能够看到,在节点的地方查看发现已经从红隔离变成了绿隔离,但其实这个绿色的已隔离和上面红色的已隔离已经不是同一个意思,一个是Isolate,一个是Quarantine,进入绿隔离状态其实应该是咱们说的检疫状态,即根据咱们定义的算法,群集已经能够判断这个节点不正常了,它生病了,不该该再继续承载虚拟机,所以上面全部的虚拟机都会被实时迁移至其它节点,并在QuarantineDuration时间内,节点都将处于检疫状态,这时候管理员能够对节点进行错误诊断,确认频繁发生瞬时中断,是否意味着有真实的问题存在须要处理,

wKioL1mx8bnhxZ6HAAAnik_Bb5k504.png

wKiom1mx8duidz8RAABCdxXdDqA521.png

若是600秒时间到了,则群集认为您已经解决了该问题,自动解除检疫状态,放节点正常加入群集,若是您不想等待这个时间,或者您在已经提早解决了频繁瞬时中断的问题,那么您也能够运行命令 Start-ClusterNode -CQ 执行ClearQuarantine操做,把节点手动恢复正常

wKiom1mx9BKy4zVZAAAzCkOAvRU197.png

相信经过以上实验你们对于VM弹×××已经有了必定了解了


有了这项技术后,咱们可让群集保持之前的样子,根据检测信号完成快速的故障转移,也能够根据经过VM弹性技术,设置在必定瞬时中断时间内,接受短暂的中断又恢复,不须要马上执行故障转移,能够分别把主机在瞬时中断下作隔离处理,甚至进一步检疫处理,相对来讲更加正规一些,也比原来咱们调整检测信号的方式来的效果更好,所以若是你们环境中有瞬时中断的状况,不妨了解使用下这项功能。


若是不想要VM弹×××,还想恢复之前基于信号检测直接作故障转移的运做方式

设置VM弹性值以下,则回到从前,须要注意,在2016TP2以后的版本,这项功能默认被启用,所以当发生网络中断,服务崩溃若是发现应用没快速故障转移,不要惊慌,那么是由于群集自动开启了VM弹×××,不想要它,直接这样disable掉便可


wKioL1mx-AnwARLuAAAGa4_YQx0547.png

关闭VM弹性后,再次强制中止clussvc进程,发现节点直接进入故障状态,执行故障转移

wKioL1mx-UzxWYerAAA7FVOdk8o558.png

wKiom1mx-Y3xJ-qJAABCKTW6TbY395.png

以上为VM弹×××,能够帮助咱们解决节点级别的网络,系统,误操做等瞬时故障,除了计算级别能够有这种弹×××,2016还在虚拟机存储中也添加了这项技术,主要针对于虚拟机访问VHDX,在2012R2中,若是虚拟机突然访问不到VHDX,虚拟机确定会崩溃没法使用,当存储再次可用,咱们可能也须要从新打开虚拟机。


在WSFC 2016中群集虚拟机能够和存储实现更好的容错功能,很是的神奇,咱们能够设置一个容许中断时间,在这段时间内,若是群集虚拟机到存储之间发生了瞬时故障,没法访问VHDX了,能够把虚拟机置为暂停关键状态,虚拟机将被冻结,状态获得保存,全部虚拟机的IO也都会被冻结


当VHDX恢复访问后,虚拟机从暂停状态回到正常运行,状态释放,全部IO获得正常运转,经过这样内置的存储容错功能,能够帮助咱们在存储短暂链接失效的时候提供一种很好的方案,当存储再次可用时,虚拟机自动load io,对于用户来讲,停机时间获得改善。


当前除了RODC虚拟机,其它虚拟机都是直接链接到的CSV,咱们直接在ISCSI上面禁用掉16群集用的数据磁盘,这样CSV也就是失败,节点到存储失败,VHDX也不再可读取

wKioL1mx_DaBca8GAAAP1Pm3QHs431.png

能够看到虚拟机又被置为正在运行-关键,但其实这个状态应该是Paused-Critical

wKioL1mx_AqBeNQRAAAfJlI3LRA972.png

那么这个冻结虚拟机IO的时间是有限的,默认是30分钟,不能够太长,不能够是无限期的,在一段时间内,若是虚拟机仍然没法链接到VHDX,则VM将会关闭,下次启动将是冷启动


30分钟以内若是虚拟机恢复到存储的链接,则继续运做,虚拟机被置为正在运行,继续保留以前的工做状态,全部操做和IO正常运转,若是这个到存储的故障很短,那么对于用户来讲是感觉不到的,一旦存储链接上后,虚拟机会很快恢复运转,SOFS虚拟机最快,其次是CSV虚拟机,开挂的ShareVHDX虚拟机会直接执行实时迁移。

wKiom1mx_23xlIYgAABoXBybuZk557.png


#配置虚拟机存储容错,HV级别配置虚拟机


开启虚拟机容错功能

Set-VM -AutomaticCriticalErrorAction  <None | Pause>

默认为Pause,即存储没法链接时暂停,改为None则回到之前状态,若是要修改需关闭虚拟机!


配置虚拟机存储没法链接等待时间 默认30分钟

Set-VM –AutomaticCriticalErrorActionTimeout <value in minutes>


针对于ShareVhdx虚拟机在Hyper-V 2016会每隔十分钟轮询一次,存储是否可用,若是不可用则自动实时迁移到其它节点上。


VM存储容错功能,仅支持基于CSV的VHD,VHDX检测,或sharevhdx,sofs

不支持为群集化的本地VHD VHDX

不支持使用直通磁盘,或USB存储的虚拟机


以上,老王为你们介绍了VM弹性和存储容错的功能,关注这项技术好久了,一直很想把这项技术介绍给国内的朋友,此次终于写好了,但愿可以为看到的朋友带来收获,若是您的环境中存在节点,网络,存储的瞬时故障,如今您能够经过2016中的VM弹性技术进行控制,尤为是针对于存储的神奇容错功能。

相关文章
相关标签/搜索