之前曾经在WSFC日常管理操作篇和大家介绍过WSFC的维护模式,简单来说,从WSFC 2012开始,通过维护模式可以帮我们完成暂停节点,自动排水,自动回复的半自动化维护


 回顾一下WSFC的维护模式运作流程,此处以WSFC 2012开始为例,在WSFC 2012之前,群集的维护模式仅能暂停节点,但无法自动移动负载


 1.手动放置节点为暂停模式

 2.节点根据群集角色优先级,参考放置策略,依次排水处理群集负载至合适节点

 3.负载都排水到该去的节点后,节点宣告为暂停,不接受任何负载的迁移

 4.维护完成后参考放置策略故障回复负载至合适节点


知识补遗


  1. 如果在排水过程中,单台虚拟机无法执行移动,不会影响整体排水的进度,其它虚拟机和负载会继续正常执行排水,当排水结束后,报告排水失败状态

  2. 一旦节点被置为暂停模式,重启之后也依然会是暂停状态,除非管理员手动解除暂停

  3. 如果排水过程很长,或勿操作了节点,支持取消排水操作,取消排水后,已排水出去的负载,可以通过暂停模式故障回复至原节点


我们今天主要关注的是维护模式下的优先级粒度控制,自WSFC 2012开始,维护模式开始和放置策略深度整合,包括优先级,首选所有者,默认所有者,可能所有者,反相关性等,不论是暂停排水或是故障回复,都会参考上述放置策略进行完整的评估,进而选择合适的节点。


其中比较有趣的一点是维护模式和优先级的整合


默认情况下,WSFC 2012开始优先级设置在以下场景生效


1.群集节点关机开机时,优先联机上线高优先级应用

2.节点置为维护模式时,优先迁移处理高优先级应用

3.节点故障转移时,优先转移高优先级应用


这是大多数人都知道的,但事实上在WSFC 2012开始优先级和维护模式还有个有意思的整合,事实上优先级的设置竟然可以决定维护模式时候虚拟机的排水操作


自WSFC 2012开始,虚拟机资源类型开始多了一个MoveTypeThreshold属性,通过该全局群集属性,即可以决定排水时虚拟机的排水操作,默认群集全局策略,是针对于高优先级虚拟机 和 中优先级虚拟机 执行实时迁移,针对低优先级虚拟机执行快速迁移,这样做的目的是为了确保更高优先级的虚拟机首先获得迁移,正常提供服务,而不会因为低优先级虚拟机影响进度


WSFC 2012中MoveTypeThreshold默认值为2000,即意味着,当发生维护排水时,大于等于2000优先级的虚拟机执行实时迁移操作,高优先级为3000,中优先级为2000,低优先级为1000,因此默认高优先级和中优先级在维护模式可以获得实时迁移


#查看全局策略

Get-ClusterResourceType “Virtual Machine” | Get-ClusterParameter MoveTypeThreshold | fl *

2018-01-29_090625.png


默认情况下,如果我们不对优先级做任何设置,所有虚拟机的优先级都为中,即意味着不区分所有虚拟机优先级,这就可能当维护时候,可能优先迁移处理了不重要的角色,如果希望区分出群集负载优先级,建议针对重要的负载设置优先级为高,中,不重要的设置为低,有序排列群集负载,这样当发生维护或故障转移时,高优先级的资源首选会被处理上线提供服务,当我们设置了优先级后,维护模式操作控制则有意义


如果是虚拟化群集的话,上面托管了很多虚拟机,一些是重要的,一些是不重要的,我们就可以控制那些虚拟机在维护模式下获得实时迁移,那些虚拟机获得快速迁移,实时迁移能够保证迁移时不中断提供服务,完整内存页和增量内存页都会被传递,快速迁移只是把虚拟机保存,然后发送到另外节点再开启,相对来说,如果实时在用的虚拟机,快速迁移更改,因为不需要等待所有增量内存页同步完成,实时迁移虽然可以保证最高可用时间,但是一旦虚拟机实时再用,迁移过程有时会很慢。


我们通过这样的粒度控制,可以让低优先级虚拟机通过,快速迁移快速的完成维护排水,更多网络带宽留给实时迁移虚拟机使用,避免资源争抢。


#修改全局策略

Get-ClusterResourceType “Virtual Machine” | Set-ClusterParameter MoveTypeThreshold 1000

2018-01-29_091520.png


群集全局的维护排水操作支持以下四种配置策略


如设置为1000,则除设置为不自动启动虚拟机外,所有低中高优先级都将获得实时迁移

如设置为2000,则高和中优先级虚拟机获得实时迁移,低优先级虚拟机获得快速迁移

如设置为3000,则高优先级虚拟机获得实时迁移,中和高优先级获得快速迁移

如设置为3001,则维护模式下所有虚拟机都将执行快速迁移


以上我们介绍的群集维护模式操作策略是针对于全局的设置,即群集内所有虚拟机默认都需遵守此策略


我们也可以针对某个虚拟机单独设置排水操作策略,WSFC 2012开始,所有群集虚拟机多出一个DefaultMoveType属性


DefaultMoveType参数值及其行为:




-1(4294967295)使用全局设置(MoveTypeThreshold)
0关闭虚拟机
1保存虚拟机(快速迁移)
2关闭虚拟机
3关闭虚拟机(强制)
4实时迁移虚拟机



#获取虚拟机默认DefaultMoveType值

Get-ClusterResource "虚拟机 HQ-SPDB” | Get-ClusterParameter | ft Name,Value

2018-01-29_093021.png

可以看到,默认虚拟机设置为4294967295,即遵守群集维护模式操作全局策略,由群集根据全局策略自主分配虚拟机维护模式操作



我们也可以打破这层继承关系,针对某个虚拟机单独设置粒度的排水操作,设置完成不需重启节点,下次维护即生效

Get-ClusterResource "虚拟机 HQ-SPDB” | Set-ClusterParameter DefaultMoveType 4

2018-01-29_093317.png