在WSFC中,大家可能会看到各种操作状态,例如,暂停节点,停止节点服务,逐出节点,恢复节点,关闭群集,销毁群集,关闭连接,这些操作到底是什么意思,分别应该用于什么场景下,今天我们就来一探究竟,嘀,老王发车啦!
首先我们先从节点操作讲起
以WSFC 2012R2为例,当我们在故障转移管理器,节点界面下,点击任意一个节点,右键可以看到以下操作
暂停
恢复
远程桌面
信息详细信息
显示关键事件
首先来看暂停,自2012开始,暂停不仅仅只是宣告节点为维护状态,而是可以根据放置策略,自动把被暂停节点上的负载移至其它节点,此操作主要适用于节点维护场景,例如,节点OS不稳定需要进行排错,为了避免影响上面的群集应用,先把应用飘走,再进行排错,或者需要关机加硬件配置,也可以先将节点置为暂停,应用移走,关机加配置,加好之后再开机解除暂停状态,依次操作各节点
总结来说,暂停操作主要用于计划内维护场景,即是说,我们知道将要发生维护操作,节点将要不可用,那么我通过暂停操作,就可以以最小停机时间的方式把资源迁移走,再执行维护
默认情况下2012时×××始,暂停模式有两个选择,一为排出角色,二为不排出角色,排出角色为2012新功能,即按照放置策略将节点上面应用放置到合适节点,不排出角色为2008旧选项,即只宣告节点为暂停,不接受资源迁移到本节点,上面资源不会被移走
排出角色,在2012时×××始,默认情况下暂停节点针对于虚拟机执行实时迁移操作,群集角色执行在线移动操作,上篇文章老王曾经讲过,群集维护,暂停模式可以和优先级相整合,例如,节点暂停维护,高和中优先级虚拟机获得实时迁移,低优先级虚拟机获得实时迁移,在资源不足的场景下,通过此配置,可以始终确保更主要的虚拟机获得最高的可用性和迁移性能,参考老王博客 WSFC 维护模式操作粒度控制
说完暂停我们再来看下恢复,恢复同暂停正好相对应,当我们置为暂停,维护完成后,势必需要节点重新正常提供服务,在2008时代,恢复仅意味着解除节点的暂停状态,让节点可以接受资源被迁移过来,2012之后此旧操作显示为不故障回复角色。2012时×××始,恢复操作新增故障回复角色,恢复和暂停相互粘合,当我们把节点置为暂停后,资源会被迁移至其它节点,当节点完成后,我们可以选择故障回复角色,让被迁移走的资源回到原来的节点正常运作,此暂停故障回复,也参考放置策略,会考虑首选所有者,反相关性,可能所有者等策略,如果节点当前正在首选所有者则不会回复,如果节点上面已有反相关性资源则不会回复,如果维护后原节点从资源的可能所有者剔除,则不会回复。
在一些场景下,开发人员或业务人员可能会对群集角色或虚拟机有所要求,例如某个资源只能在某个节点上面运行,对于一些重要的资源,当然还是稳定为好,能在原来的节点运作就继续回到原来节点运作,此场景下适用恢复角色功能,2012时×××始,大家作为群集管理员,只要有这种意识就好,计划内维护,就点一下暂停节点,迁移角色,维护完成后点一下恢复节点,迁移回群集角色
远程桌面其实也是个有用的功能,例如群集节点很多,可能16个节点,32个节点,群集管理员每天会打开群集管理器进行配置,巡检,如果发现节点有问题,可以直接在故障转移管理器中对节点发起一个远程桌面,只要节点远程端口正常工作就可以直接远程过去
信息详细信息,主要显示对于资源或节点执行操作失败,失败的原因是什么
显示关键事件,主要用于聚合当前节点或资源的关键事件,2008开始,群集对于大部分资源都会置备这种资源特定的事件管理器筛选,我们点击某个节点,或某个资源,显示关键事件,显示的就是仅当前节点或当前资源的事件。
针对于节点操作除了上述之外,还有一个更多操作,里面分别是启动群集服务,停止群集服务,逐出节点
启动群集服务,通常用于之前由于某些操作,例如要进行排错,手动停止了群集服务,排错完成后可以通过GUI启动群集服务,或通过命令行
net start clussvc启动
停止群集服务,也是用于一些特殊场景,正常情况下我们不需要用到它,例如群集应用如果转移到某个节点无法正常工作,我们可以通过取消可用所有者,或在这里停掉该节点的群集服务,在WSFC 2016之前,群集服务的停止,即意味着故障转移,如果一个节点的群集服务停止,下次运行状况检测将报告该节点不可用,上面的所有应用或虚拟机将执行计划外故障转移操作。WSFC 2016开始,群集推出VM防瞬断功能,可以防止瞬断情况导致虚拟机快速迁移,例如如果是一个网络瞬断,或群集服务崩溃停止,只要在一定时间内可以恢复,则不会触发快速迁移操作,因为快速迁移会为虚拟机带来停机时间,如果您不需要VM瞬断功能
关闭即可 (Get-Cluster).ResiliencyDefaultPeriod =0
逐出节点,则意味着将节点彻底从群集的可用节点中剔除,已逐出节点永远不建议再重新加入群集,逐出节点通常用于以下场景
重命名群集节点
用不同硬件替换节点
节点重新安装操作系统
永久在群集中删除节点
通常来说,逐出节点是一个简单粗暴的解决问题方式,但它绝不是一个排错的途径,如果你能确认,就是因为这台节点的OS不稳定有问题,那么您可以把它从群集中逐出,新加一个节点进来,或者逐出之后重做系统,再以一个新的节点名称加入进来。
这种方式虽好,但有时并不能真正的解决问题,有时候我们以为是一个节点的问题,但其实是群集资源的问题,可能我们即便逐出了节点,再新加节点还是会遇到此问题,因此建议不轻易做逐出节点,除非我们判定问题原因,最后执行逐出操作,还是应该先对问题进行判定分析
常见的逐出误区
群集服务不能启动,逐出了节点2,但是群集服务仍然不能启动
资源不转移到节点2,每次发生故障转移时,磁盘都不会联机,无法返回到节点1,其中一个节点被逐出再添加一个节点仍然有此问题
一旦发生这种排错情况,建议查看cluster.log及dump文件进行分析,找到问题真正所在,也许根源是因为RHS死锁或某个第三方软件兼容性的问题,在真正判定问题之前不要轻易执行逐出节点操作,否则排错时可能无法完整重现问题
以上为GUI界面上针对于节点的所有操作,还有一些场景下的操作,帮助大家熟悉下流程
节点开关机
暂停节点 2.关闭操作系统 3.开机操作系统 4.恢复节点
以上为的群集节点开关机标准正常流程,还有一些意外情况,例如群集上面可能跑了一些特殊角色,开机后需要执行一段程序,才可以正常跑群集角色,那这个步骤可以在第4个步骤前做掉
WSFC 2012R2开始,针对于群集虚拟机新增了一个属性DrainOnshutdown
如果我们忘记执行暂停节点,直接关闭虚拟机,WSFC2012R2开始,会自动按照维护模式操作策略,帮助我们自动将虚拟机实时迁移或快速迁移至其它节点,群集其它角色则采用移动挂起操作,所有资源都移走后,操作系统才正常完成关闭操作,该功能也被称为“懒人帮手”,一旦我们忘了暂停节点,背后也会有一个这样的帮手,帮助我们去完成维护操作。
节点故障转移
1.节点宕机 2.其它节点检测注册表 挂载共享存储联机上线 3.节点恢复 4.故障回复群集角色
对于群集故障转移,这里特别要说的是故障回复,这是个老古董了,从2003时代就看到它,故障回复必须和首选所有者功能相配合,这点和最初一模一样,即是说如果应用当前在节点1,节点1宕机,应用去节点2,如果希望节点1恢复后应用回到节点1,则应用必须设置首选所有者为节点1,故障回复操作可以为立即或某一时刻,如果应用对于宿主有要求,需要始终在某一节点运作,可以配置故障回复,以便在计划外故障转移后故障回复,2008时代对于虚拟机故障回复采用快速迁移,2012时×××始故障回复采用实时迁移。
看过节点级别的操作后,我们再来看下群集级别的操作,老王将主要介绍以下操作
关闭连接,无实际操作效果,点击关闭连接后,只是在当前故障转移群集管理器中,删除显示已连接的群集,假设这时一个群集节点,会有不懂的人来碰你的群集,那么为了避免它误操作,你可以在他操作之前关闭群集连接
关闭连接之后,如果再想连接到群集,点击连接到群集即可
关闭群集,停止所有群集角色,关闭所有群集节点的群集服务,如果群集中有很多节点,可以通过此操作帮助我们关闭全部,关闭后群集对外不可用,如果希望群集各节点暂时失去群集作用可以执行此操作
针对于虚拟机群集资源,自2008开始,可以设置虚拟机在群集关闭的情况下要执行的操作,默认为保存虚拟机
数值 |
效果 |
0 |
VM直接断电 |
1(默认) | VM保存 |
2 |
VMOS正常关机 |
3 | VMOS强行正常关机 |
Get-ClusterResource "虚拟机资源群集名称" | Set-ClusterParameter OfflineAction 2
若要恢复群集工作,点击启动群集即可,群集虚拟机默认会从保存状态中还原,群集角色会从脱机中联机
销毁群集,拆掉整个群集,删除掉群集所有角色和元数据信息,通常用于测试环境,或重新部署群集,和关闭群集一样,轻易不建议使用,一旦群集被销毁后,如果需要在该节点再次搭建群集,有时需重新安装群集功能
在执行销毁群集之前,请确保群集所有角色已被删除,虚拟机已经导出到其它位置,需要注意,在销毁群集过程,虚拟机如果是存放在共享磁盘和CSV,则会被彻底关闭,但不会丢失数据,虚拟机的数据会存放在CSV中,重建群集之后,虚拟机可以被重新挂载上线,但是销毁后,重建前,虚拟机将不可用。
如果销毁群集时,群集内仍有未被删除的虚拟机或角色,将提示以下错误
关于销毁群集的注意事项
销毁群集时所有节点需要在线,如果销毁群集时有1节点不在线,随后该节点又加入其它群集,将显示该节点已属于其它群集,这时需在节点上执行命令
cluster node hv01 /forcecleanup
这将在该节点上面清理掉所有群集旧信息的注册表,以允许群集加入新的群集
销毁群集过程幕后会逐出节点群集资格,删除各节点上关于群集的配置信息注册表,如果销毁群集后希望重建群集,重建不成功,请尝试检查注册表配置单元,看是否有残留旧群集信息,如果有,请清理后再尝试重建群集。
销毁之后群集CNO默认在AD中处于禁用状态,如果希望销毁群集后直接从AD删除CNO,可使用PowerShell操作
Remove-Cluster -CleanupAD
移动群集核心资源
群集中的资源大体可分为两种,一种为群集运作资源,一种为基于群集的应用资源,核心资源也是指群集运作资源,一个群集要想运作起来,需要群集名称,群集IP,还会有见证资源,在WSFC 2016之前,大体就是这些内容,这些群集运作资源也被放置在一个群集资源组里面,成为核心资源组,群集过程中会被放置在其中一个群集节点上,我们可以通过图形界面移动核心资源组至其它群集节点,2012之前仅能通过命令执行,2012之后支持GUI界面执行,2008时×××始群集核心资源组会被单独放置在RHS监视进程中,放置因为群集其它资源的RHS进程崩溃,而影响整个群集。
群集核心资源通常我们没必要管它,除非是排错时会需要移动,或考虑到群集负载平衡的场景,如果一个节点承载了很多应用,则可以把它上面的核心资源移动至其他节点以减轻负担
WSFC 2016中,群集核心组多出存储QOS资源和 Virtual Machine Cluster WMI
2012之前,使用命令移动群集核心资源
cluster group “Cluster Group” /Move:NodeName
移动群集可用存储资源
cluster group “Available Storage” /move