WSFC2016 站点感知与健康服务

发布时间:2020-07-23 14:48:14 作者:老收藏家
来源:网络 阅读:3491

之前老王曾经写过一篇文章简单探讨过WSFC 2016的故障域以及站点感知功能,但是随着继续深入的应用和使用,老王发现站点感知这个概念在WSFC 2016体系里面贯穿到了很多功能,因此决定再写一篇,主要与大家探讨在ReallyWorld中应该如何思考站点感知,故障域,以及WSFC 2016健康服务功能


# 1. 初谈WSFC 2016故障域


故障域通常来说,只有当我们作为交付SLA,或享用SLA的时候会听到这个概念,例如,当我们购买了某云厂商的云服务,它们会保证很多个9,但前提是我们要把云服务里面的多个应用虚拟机放在不同的故障域,对于使用者来说,通常情况下云厂商会告诉你,放在不同的故障域,您的虚拟机就会被放在不同的机架,永远不会被一起维护,一起出现故障的几率很低等等。


如果作为交付方,我们则需要在后台设定故障域这套policy,故障域不是一项固定的技术,它应该是一个规范,引入故障域规范后,管理员就应该知道,不应该同时对一个用户所有故障域的机器一同做维护,技术层面会通过群集系统或VIM系统确保不同故障域资源 始终被放在不同机架或机柜上,实现到这一步才算是逻辑定义+物理实现,至于物理能不能实现,还是取决于基础架构对于故障域的感知,WSFC2016中支持逻辑定义Chassis,rack,site三种故障域级别。

WSFC2016 站点感知与健康服务

目前能够真正实现故障域感知的只有S2D功能,S2D一旦感知到WSFC配置了Chassis或rack故障域级别,会始终确保extent多个副本撒到不同Chassis或rack

WSFC2016 站点感知与健康服务



# 2.再谈站点感知与故障域


站点感知的主要作用老王认为有七


  1. 故障转移规则:当配置站点感知后,应用会首先尝试在同一站点的节点进行故障转移,反相关性和可用所有者配置会盖过站点感知

  2. 排水维护规则:应用会首先尝试在同一站点的节点进行排水,反相关性和可用所有者配置会盖过站点感知

  3. 站点特定心跳:只有为群集配置了站点感知功能后,我们才可以配置站点心跳检测频率

  4. 站点票数修剪:配置了站点感知功能后,我们可以配置首选站点功能,被选中首选站点的节点在50/50中会获胜,非首选站点自动去掉一票

  5. 层次首选站点:可以配置群集级别首选站点,实现非首选站点票数修剪,也可以配置群集组级别首选站点,实现多主首选

  6. 存储站点亲和:配置站点感知后,默认情况下虚拟机会寻找CSV所在的站点,站点感知逻辑认为虚拟机和CSV在同一站点帮助提高效率,通过配置存储首选站点可以始终确保虚拟机和CSV位于同站点,如果虚拟机发现当前和CSV不在同一站点,将在一分钟后移至

  7. 延伸群集配置:当我们配置延伸群集时,实际上一个延伸群集是两块,一块是群集上面的应用,一块是经过复制自动故障转移的存储,虽然存储可以做到自动跨站点故障转移,但是延伸群集存储复制是不考虑多站点问题的,它不懂,只知道复制磁盘内容到指定节点,以及和群集联动,但是我们需要为应用考虑多站点故障转移的问题,默认情况下应用会转移至所有可用节点,可能虚拟机会转移到远程站点,但是实际上这时候提供存储的还是主站点,这时主站点访问效率就会降低,因此延伸群集最佳实践还是配合上站点感知功能,实现底层的存储故障转移,也实现应用最佳可用性,实现应用默认在本地故障转移,默认始终和本地存储在一起


当我们思考一个跨站点的群集架构时,除了网络,存储,仲裁那些该考虑的点,另外一点需要考虑的就是群集的放置策略,很多时候如果忽略了群集放置策略就会导致额外的停机时间,如果利用好了群集放置策略又能解决很多复杂问题


站点感知,说穿了,老王认为它和S2D故障域感知是两回事,站点故障感知实现的是在群集中定义出站点架构,让故障转移,排水,心跳,仲裁执行时可以多出来一个参考项目,将我们脑袋里面的多站点架构通过软件定义出来显示,并且让群集组件参照它去进行工作。


站点感知定义是WSFC2016实现出来的方法,其中有的功能我们在以前的旧版本也可以实现,例如应用首先在本地站点故障转移,以前我们是定义首选所有者,站点票数修建,以前我们是定义LowerQuorumPriorityNodeID,WSFC 2016站点故障感知的新方法与以往不同的是,把这些群集里面不同的功能,通过一个站点感知功能给串了起来,这是它的厉害之处,同时站点感知支持通过PS批量配置,管理起来比2016之前旧方案方便,总之,大家需要慢慢的去接受这个概念,并试着应用它,让多站点群集架构更加完善。


# 3.终谈故障域与健康服务


通过总结,老王认为在WSFC2016中,故障域的定义,主要有三层用途


1.配合S2D这等应用实现故障域感知 (我希望未来可以有越来越多像S2D这样可以实现故障域感知的应用)

2.配合WSFC实现站点感知,以此控制站点内站点间,故障转移,排水维护,心跳检测,仲裁执行

3.配合健康服务实现定位排错


当我们在powershell里面创建的一个个故障域,其实就是一个个逻辑定义文本,如果没有S2D,WSFC这些能够感知到它们的组件,它们就只是一个普通的Text,不会起到作用,只有有能够感知到它们的组件,定义的故障域级别才能物理实现作用


理清这个概念后我们再来看下健康服务功能,之前老王讲WSFC 2016系列的时候把它漏掉了,特地补上


基本上大家可以把它理解为一个WSFC自身的监控功能,通过健康服务可以帮助我们关注某一个群集应用,群集组件的性能收集,工作状态,对它不同层级的运行状态进行事件报告。


目前健康服务还只能for S2D,当我们在群集中启用S2D后,默认就开启了健康服务功能,健康服务会日常监控S2D的运作,收集它的性能报告,不同于一般的事件日志,老王认为健康服务所收集的日志,显示出来非常友好实在,管理员一目了然。


例如这些

WSFC2016 站点感知与健康服务


当我们需要使用健康服务 监视S2D时,输入以下命令即可


Get-StorageSubSystem *Cluster* | Debug-StorageSubSystem


参数字段

WSFC2016 站点感知与健康服务

区别于一般的监控软件,老王为什么说它友好呢,是因为它的错误显示的很明确,可以直接告诉你网线掉了,那块网卡,那个服务器失去连接了,或是那块磁盘掉了


如图所示,有一个关键级别的日志,提示hv01失联,下面location和description按照嵌套关系自动显示出所在位置或地址

WSFC2016 站点感知与健康服务


Get-StorageSubSystem *Cluster* | Debug-StorageSubSystem这条命令仅在群集开启S2D后才可以运行

默认情况下此命令的执行显示的是会影响到S2D群集整体运作的日志,这些故障大多数和硬件或配置有关


也可以运行

Get-Volume -FileSystemLabel <Label> | Debug-Volume  

Get-FileShare -Name <Name> | Debug-FileShare  

这将返回 仅影响到指定文件共享或卷层级的故障日志,这些故障通常和容量规划或复原功能配置有关


健康服务除了监控故障日志,另外一个点是性能收集,收集S2D运作过程中一些实用的性能参数,如CPU利用率,IOP,容量。


执行命令Get-StorageSubSystem *Cluster* | Get-StorageHealthReport显示S2D整体性能报告

WSFC2016 站点感知与健康服务


显示指定秒间隔内的S2D性能报告

Get-StorageSubSystem Cluster* | Get-StorageHealthReport -Count <Count>  


显示S2D某一共享或卷的性能报告

Get-Volume -FileSystemLabel <Label> | Get-StorageHealthReport -Count <Count>  

Get-StorageNode -Name <Name> | Get-StorageHealthReport -Count <Count>


另外一项功能,健康服务功能也可以用于监控S2D运作过程中正在执行的重要作业


Get-StorageHealthAction  


如果当前S2D正在执行以下操作,将显示


即将失败的、 失去连接或无响应物理磁盘

当前存储池正在更换物理磁盘

还原完整复原数据

重新平衡存储池


基本上健康服务目前主要实现这三项功能,微软希望通过健康服务功能帮助群集管理员提高监控运维效率,采用实用的监控日志和性能指标,监控日志可以和故障域功能相整合,当发生错误时可以自动嵌套故障域关系,帮助管理员定位问题位置,目前该功能仅限用于S2D,老王希望未来越来越多的群集功能可以支持监控服务。


本文老王主要和大家探讨了下概念,如需要实作,请参考老王另外一篇博客 WSFC2016 故障域站点感知

推荐阅读:
  1. WSFC2016 多域部署模型
  2. 微软WSFC全方位解析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

微软故障域 微软站点感知 wsfc健康服务

上一篇:unity: GetLocalizedString can only be called from the main thread 异常解决

下一篇:修改spyder地址的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》