Windows Server群集节点和资源监视

群集节点监视

如果把群集资源比作鸡蛋,那么群集节点就好比装鸡蛋的篮子,篮子的完整性决定了鸡蛋的安全。首先,群集节点需要判断自身是否存活,因此群集节点之间会定期通过心跳信号来评估所有节点的健康状况。群集的可用性目标取决于所提供服务的需求,不同服务等级的应用对故障恢复时间和健康检测的严格程度要求各不相同。同样,高可用性服务对节点故障的检测和恢复速度要求更高,而低可用性服务对故障恢复时间的容忍度较大。因此,Windows Server群集初始设置了两种不同严格程度的默认检测策略:

严格监控(Aggressive Monitoring):提供最快的检测和恢复策略,确保最高的可用性。群集对故障的容忍度较低,即使是短暂的故障也会避免,导致群集节点出现短暂网络故障时,群集会将该节点上的应用迁移到正常节点。宽松监控(Relaxed Monitoring):提供相对宽松的检查策略,群集对故障的容忍度较高,允许短暂的群集节点故障。严格监控和宽松监控是相对的,可以通过两个具体参数来衡量,一个是心跳频率(Delay),另一个是心跳失败阈值(Threshold)。

心跳间隔(Delay):定义节点之间发送心跳检测信号的时间间隔,单位为秒。心跳失败阈值(Threshold):定义在群集采取恢复行动之前能够容忍的心跳失败次数,比如心跳检测失败一次,群集不会立即采取恢复措施,而是继续发送下一个心跳检测信号,直到达到设定次数。Windows Server不同版本的群集默认心跳频率和心跳失败阈值汇总如下:

参数 Windows Server 2012 R2 Windows Server 2016 最大值

SameSubnetDelay1 秒1 秒2 秒SameSubnetThreshold5 次心跳10 次心跳120 次心跳CrossSubnetDelay1 秒1 秒4 秒CrossSubnetThreshold5 次心跳20 次心跳120 次心跳CrossSiteDelayN/A1 秒4 秒CrossSiteThresholdN/A20 次心跳120 次心跳

可以使用命令PS C:>Get-Cluster |fl *Subnet*查询跨子网和相同子网的心跳间隔和尝试阈值,命令输出的结果的心跳间隔单位为毫秒,结果如下示例所示。

| PS C:> Get-Cluster |fl subnet ||——————————-|| CrossSubnetDealy | 1000 || CrossSubnetThreshold | 20 || PlumbAllCrossSubnetRoutes | 0 || SameSubnetDelay | 1000 || SameSubnetThreshold | 10 |

调整心跳检测

严格的检查手段适用于一些高服务等级要求的应用,这些群集通常在一个高速连接的子网内。由于Windows Server群集支持节点跨子网和站点部署,在群集节点相隔数公里且连接不稳定的子网里,可以考虑稍微宽松的设置。同样,随着服务器硬件冗余程度的提高和操作系统的成熟,服务器节点的可用性已经非常可靠,整体故障几率大大降低,在这种情况下可以根据实际情况将检测策略调整得宽松一些。

可以使用如下PowerShell命令调整相同子网的心跳间隔,如下示例所示,将心跳间隔时间调整为2秒:

| PS C:> (get-cluster).SameSubnetDelay=2000 |

使用如下PowerShell命令调整相同子网的心跳失败阈值,如下示例所示,将心跳失败阈值设置为20次:

| PS C:> (get-cluster).SameSubnetThreshold=20 |

群集资源监视

除了要保证装鸡蛋的篮子的完整和可靠性,鸡蛋自身也会因各种因素变坏。因此,群集除了要监视群集节点的健康状态,还需要监控构成群集及应用的资源健康状况。群集通常包含若干资源和资源组,群集运行并处理不同的资源,有时候群集资源发生故障,虽然可以通过群集事件进行分析,但对于深入的问题,必须通过分析DUMP日志这个“黑匣子”才能找到根本原因。如果对群集资源故障了解不够深入,解决起来会无从下手,但作为维护人员,需要为群集资源故障分析留一道门,这道门通往更加深入的资源监视通道,这道监视通道将帮助我们获取深入故障分析报告,将故障分析报告提交给微软,让微软帮助定位问题所在。那么群集是如何检测群集资源并向系统报告事件的呢?接下来我们将带着这个疑问介绍群集的资源管理系统以及工作方式。

资源主机子系统

群集资源主机子系统(Resources Host Subsystem-RHS)负责监视群集资源,一个群集化的应用是以资源组形式存在的。群集可以运行多个资源,这些资源同时被群集监视系统监控,群集监视系统除了RHS,还有资源控制管理器(Resource Control Manager,简称为RCM),RCM和RHS协调工作以完成群集资源的监视和操作,如图1所示。RHS和RCM都是群集服务的一部分,主要职责是监视群集资源的状态。

Windows Server群集节点和资源监视

资源控制管理器

具体来说,RCM具有两个关键职责:一个是为群集服务执行故障转移机制和策略,另一个是建立和维护每个资源的依赖关系。以高可用文件服务器为例说明,群集文件服务器资源和磁盘以及访问名称、访问IP地址处于同一个资源组的依赖关系树,这个依赖关系树由RCM维护,如图2所示。RCM维持单个资源和资源组的在线、离线、失败、在线挂起、离线挂起等各种状态,并负责资源组的移动、故障转移的操作。

Windows Server群集节点和资源监视

造点AI 造点AI

夸克 · 造点AI

造点AI 325 查看详情 造点AI

资源监视器检测

为了保证群集应用正常工作,RHS时刻监视着资源情况并定期检查群集资源的健康状态。每个不同的资源的检查频率略有不同,检查频率由不同的群集资源DLL定义。RHS采用IsAlive和LooksAlive两个探测器进行周期性资源健康检测,LooksAlives检查比较粗糙,但检查频率较高,默认情况下每5秒钟进行一次检查,而IsAlive检查更为仔细,但检查频率较低,默认情况下每60秒检查一次。LooksAlives不停检查资源健康情况,一旦资源返回失败结果给LooksAlive,考虑到资源会出现“假死”状态,这时候,RHS会立即启用更全面的检查并调用IsAlive检查资源是否真正出现问题。

在检测到群集资源故障后,RHS便会等待资源响应,如果在既定时间内没有响应,则会按照策略执行恢复操作。由于RHS只能判断资源不响应但不能判断具体发生了什么故障,唯一的办法就是通过重启RHS进程尝试恢复资源。这个等待时间在群集资源的DeadLockTimeout属性里定义,等待一次为300000毫秒,也就是5分钟,可以使用PowerShell命令查看和修改DeadLockTimeout值。

使用以下PowerShell命令查看群集资源的RHS等待时间。下面以Hyper-V群集(配置了群集复制代理角色)为例,命令输出的结果如下。

| PS C:> Get-ClusterResource |ft Name, ResourceType, DeadlockTimeOut ||——————————————————————|| Name | ResourceType | DeadLockTimeout ||———————–|————————|—————–|| Cluster IP Address | IP Address | 300000 || Cluster Name | Network Name | 300000 || File Share Witness | File Share Witness | 300000 || Cluster-HRB | Network Name | 300000 || IP Address 192.168.1.5 | IP Address | 300000 || Hyper-V Replica Broker Cluster-HRB | Virtual Machine Replication Broker | 300000 |

要修改某个群集资源的DeadlockTimeout时间可以参考如下命令,这个命令修改类型为Network Name的DeadlockTimeout为10分钟。

| PS C:> (Get-ClusterResourceType “Network Name”).DeadlockTimeout = 1000000 |

虽然可以任意定义DeadlockTimeout时间,但不建议将这个值改成比5分钟更大,试想IsAlive和LookAlive检查时间往往在几百毫秒内完成,而DeadlockTimeout的时间为5分钟,已经大大超出了IsAlive和LookAlive检查时间。

除此以外,群集为了做到准确监控,默认启用了一层保护机制,当群集发送结束RHS指令时,不会立即重启RHS进程,而是等待4次DeadlockTimeout时间(20分钟),如果资源仍然没有响应才采取结束RHS进程的措施。如果RHS进程在等待4次(20分钟)资源仍未响应,群集判断服务器可能出现严重的问题,进而强制重启群集节点。

最重要的是,RHS产生Windows错误报告给群集系统并把错误写入DUMP文件,因为不同应用的群集涉及的群集资源也是千变万化的,一般出现严重的问题需要进一步的分析,笔者曾经遇到群集节点发生I/O Request Packet队列过多导致服务器使用Bugcheck自动重启的情况,最后通过分析DUMP发现了问题的根本原因,因此说,RHS打开了一扇通往深入分析群集的门。

资源监视器调整

群集将资源DLL加载到资源主机监控进程(RHS.exe),RHS进程是循环使用的。早期的设计里,默认情况下所有的资源在一个RHS进程里运行,这种情况的问题是如果一个资源故障,那么整个RHS进程和所有由这个RHS加载的资源都会出现故障。考虑到这种设计的不足,在后期Windows Server群集里做了改良,重要的资源都加载到各自独立的RHS进程里。但是仍然有可能不同的群集资源加载到了同一个RHS进程里,如果多个资源共享一个RHS进程,那么某个资源出现故障时,群集会重启RHS进程,这样其他加载到RHS进程的正常资源也会跟着重启。

为了避免这类问题发生,可以酌情为不同的资源分配独立的资源监视器RHS进程。在群集资源里,有一个属性代表着使用独立还是共享的RHS进程,这个属性是SeparateMonitor。这个属性定义为0或者1,0和1代表False和True,定义为0,代表群集资源使用共享的RHS进程,定义为1,代表群集资源使用独立的RHS进程。

可以使用Get-ClusterResource查看哪些资源使用独立的RHS进程监控。下面以两个SQL Server数据库群集为例,运行如下命令查看RHS监视器情况。

| PS C:> Get-ClusterResource | ft name, SeparateMonitor, MonitorProcessID ||————————————————————————-|| Name | SeparateMonitor | MonitorProcessID ||———————–|—————–|——————|| Cluster Disk 1 | False | 3144 || Cluster Disk 2 | False | 3144 || Cluster IP Address | False | 3020 || Cluster Name | False | 3020 || File Share Witness | False | 3020 || SQL IP Address 1(MSSQLSERVER) | False | 3020 || SQL IP Address 2(Test) | False | 3020 || SQL Network Name(MSSQLSERVER) | False | 3020 || SQL Network Name(Test) | False | 3020 || SQL Server | True | 3188 || SQL Server(Test) | True | 3224 || SQL Server Agent | True | 3272 || SQL Server Agent(Test) | True | 3308 |

可以使用Get-ClusterResource修改资源使用独立的RHS进程监控。下面以数据库群集磁盘资源为例,将群集磁盘Cluster Disk1设置为使用独立的监视器,运行如下命令设置Cluster Disk 1使用独立的RHS监视器。

| PS C:> (Get-ClusterResource “Cluster Disk 1”).SeparateMonitor = 1 |

再次运行如下命令查看群集资源监视器情况。

Name SeparateMonitor

Cluster Disk 1TrueCluster Disk 2FalseCluster IP AddressFalseCluster NameFalseFile Share WitnessFalseSQL IP Address 1(MSSQLSERVER)FalseSQL IP Address 2(Test)FalseSQL Network Name(MSSQLSERVER)FalseSQL Network Name(Test)FalseSQL ServerTrueSQL Server(Test)TrueSQL Server AgentTrueSQL Server Agent(Test)True

要注意的是,如果群集资源过多的情况下启用为每个资源配置独立的RHS进程,将会导致系统里同时运行多个RHS进程,因此会过多开销系统内存和CPU资源。而且群集已经可以把有问题的资源隔离加载到独立的RHS进程,从而避免有问题的资源影响到其他健康的资源,通常建议为群集资源保持默认设置。

以上就是Windows Server群集节点和资源监视的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/436299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 16:21:32
下一篇 2025年11月7日 16:23:01

相关推荐

  • RSS订阅如何过滤重复内容

    RSS去重核心是利用guid、link或内容哈希识别唯一性,结合已处理记录实现过滤。主流阅读器如Inoreader和Feedly通过后端比对guid/link进行自动去重;自建方案可用Python脚本解析RSS并以数据库存储条目标识,通过定时任务抓取新内容并生成去重后的输出流。 RSS订阅中遇到重复…

    2025年12月17日
    000
  • XML与配置文件热重载如何实现?监听文件变化。

    实现XML配置热重载需监听文件变化、重新解析并安全替换配置。首先利用WatchService等工具监听文件修改事件;检测到变更后,异步重新解析XML,校验语法并对比新旧配置;通过原子引用或双缓冲机制更新内存配置,避免阻塞主线程和频繁抖动;最后通知相关组件同步状态。结合Spring Boot或配置中心…

    2025年12月17日
    000
  • XML编辑器哪个好用?免费工具有哪些?

    选XML编辑器需根据使用场景:专业开发选oXygen或XMLSpy,功能全面适合复杂项目;日常编辑用Notepad++或VS Code,免费且支持插件扩展;快速查看修改推荐XML Marker,操作直观。 选哪个XML编辑器好,关键看你的具体需求。如果你要处理复杂的项目、需要团队协作或进行深度开发,…

    2025年12月17日
    000
  • XML在机器人控制中的应用

    XML在机器人控制中用于描述物理结构、任务序列和系统通信,其结构化、可扩展和自描述特性提升了开发效率与系统可靠性。 XML在机器人控制中扮演着不可或缺的角色,它主要被用来定义机器人的物理结构、运动学参数、传感器配置、任务序列以及系统模块间的通信协议,其结构化、可扩展且人机友好的特性,极大地简化了复杂…

    2025年12月17日
    000
  • XML在数字取证中的应用

    XML在数字取证中主要用于证据数据标准化交换、系统日志与配置分析、工具报告生成等场景,其核心价值在于通过自描述性和跨平台特性提升数据互操作性;借助XPath、XQuery及自动化脚本可高效解析利用XML结构化数据,实现信息提取与关联分析;但XML也面临性能开销大、复杂Schema难维护、二进制数据处…

    2025年12月17日
    000
  • XML中如何解压XML文件_XML解压XML文件的操作方法

    首先要明确“解压XML文件”实际是指从ZIP压缩包中提取XML文件或对经过GZip、Base64等编码/压缩处理的XML内容进行还原。第一,从ZIP压缩包提取XML文件时,可使用WinRAR、7-Zip等工具手动解压,或用Python的zipfile模块自动解压;第二,处理GZip压缩的XML数据需…

    2025年12月17日
    000
  • XML如何验证业务规则? XML数据业务逻辑校验与规则引擎集成方案

    答案:XML不具备处理复杂业务逻辑的能力,需通过解析映射为程序对象后交由规则引擎执行校验。具体流程包括:利用JAXB等工具将XML数据转换为POJO对象;定义外部化规则文件(如Drools的DRL)实现业务逻辑解耦;将对象插入规则引擎工作内存并触发规则执行;最终获取验证结果并反馈。规则引擎在此过程中…

    2025年12月17日
    000
  • RSS如何实现内容同步? RSS多平台内容同步与更新的自动化方案

    RSS通过标准化XML文件实现“发布-订阅”机制,内容更新由发布平台生成RSS Feed,订阅者借助RSS阅读器(如Feedly、Inoreader)、自动化工具(如IFTTT、Zapier)或自建脚本(如Python+feedparser)实现跨平台同步与自动发布。选择工具需根据使用习惯、设备同步…

    2025年12月17日
    000
  • XML数据可视化工具

    XML数据可视化工具通过树状、表格或图形视图将复杂XML结构直观呈现,提升数据理解、错误定位、差异比对和XSLT调试效率。选择时应综合考虑易用性、大文件处理能力、功能丰富度(如验证、查询、转换)及集成扩展性。主流工具包括功能全面的Oxygen XML Editor和XMLSpy,轻量免费的VS Co…

    2025年12月17日
    000
  • 什么是XML-RPC协议?如何使用?

    XML-RPC是一种基于XML和HTTP的轻量级远程过程调用协议,支持跨平台通信,通过简单的方法调用实现客户端与服务器交互;在Python中可通过xmlrpc.client和xmlrpc.server快速构建客户端与服务器端,客户端发送XML格式请求并解析响应,服务器注册函数处理请求;相比SOAP(…

    2025年12月17日
    000
  • XML美化工具哪个好?在线工具有哪些?

    选在线或专业软件处理XML,关键看使用频率和需求。临时用选在线工具,如通用格式化工具,支持一键美化、语法高亮、压缩与格式化互转,部分带代码暂存;常处理则推荐Oxygen XML Editor等专业软件,功能全,支持智能提示、结构化编辑、跨平台运行及开发环境集成,提升效率。 处理XML文件时,一个好用…

    2025年12月17日
    000
  • XML压缩格式比较

    EXI相比Gzip的优势在于:1. 压缩率更高,利用XML结构冗余和Schema-aware模式实现极致压缩;2. 解析速度更快,直接生成信息集,避免文本解析开销;3. 更适合资源受限环境,降低带宽与计算负载。 XML压缩格式的选择,从来都不是一个简单的“哪个最好”的问题,它更像是一场权衡的游戏,需…

    2025年12月17日
    000
  • 如何实现XML数据备份

    XML数据备份需根据存储方式选择文件级、数据库或应用层策略,结合全量与增量备份,通过自动化脚本定期执行,并采用哈希校验、结构验证确保完整性,定期恢复测试验证可靠性,遵循3-2-1存储规则,应对数据量大、并发写入等挑战,实施压缩加密、多版本管理及异地备份,保障数据安全可恢复。 XML数据备份,说白了,…

    2025年12月17日
    000
  • 什么是XMPP?即时消息协议

    XMPP的核心组成部分包括JID(用户唯一标识)、Stanza(通信基本单位,如message、presence、iq)和联邦式服务器架构。它通过客户端与服务器建立持久TCP连接,利用XML格式的Stanza实现消息、状态和信息查询的实时传输,服务器间通过联邦机制跨域通信。相较于现代协议,XMPP优…

    2025年12月17日
    000
  • XML解析器性能测试指标

    SAX解析器在处理速度和内存占用上优于DOM,适合大数据量的流式处理;DOM解析器因构建完整树结构而消耗更多资源,但支持随机访问和修改,适用于小文件频繁操作场景。 评估XML解析器的性能,我们通常会聚焦在几个核心指标上:它的处理速度、运行时对系统内存和CPU的消耗,以及在面对不同规模和复杂度的XML…

    2025年12月17日
    000
  • XML标准化组织有哪些

    XML标准化主要由W3C、OASIS及ISO/IEC JTC 1推动:W3C制定基础性通用规范如XML 1.0、XPath等,奠定技术基石;OASIS聚焦企业级应用如SAML、ODF,解决行业互操作问题;ISO/IEC则通过国际标准流程提升已有规范的全球认可度。三者协同构建了从底层语法到行业应用的完…

    2025年12月17日
    000
  • XML在电子投票系统中的应用

    XML在电子投票系统中通过标准化数据格式、确保数据完整性与安全性、促进系统互操作性发挥核心作用。它利用自描述性和XSD实现数据结构统一,支持跨平台交换;通过XML-DSig和XML-Enc实现数字签名与加密,保障数据真实性和机密性;同时提升审计透明度与可追溯性。但其应用也面临性能开销大、Schema…

    2025年12月17日
    000
  • 什么是Office Open XML格式

    Office Open XML(OOXML)作为国际开放标准,通过将文档拆分为可读的XML文件并打包为ZIP格式,显著提升了跨平台兼容性、第三方集成能力与数据长期保存性,相较于传统二进制格式,其结构透明、文件更小、恢复性强且更易自动化处理,使开发者能高效实现文档生成、内容提取与系统集成,推动了文档生…

    2025年12月17日
    000
  • RSS源如何支持视频内容

    RSS源通过标签链接外部视频文件实现多媒体分发,结合iTunes或Media RSS扩展可丰富元数据,优化播放体验。 当RSS阅读器解析到这个 %ignore_pre_1% 标签时,它就知道这个条目有一个关联的视频文件,并且可以根据 url 去获取,根据 type 来决定如何播放。对于播客客户端来说…

    2025年12月17日
    000
  • RSS源中的文本编码设置

    答案:确保RSS源正确使用UTF-8编码,从XML声明、HTTP响应头、数据库存储到内容生成全程统一,避免乱码并保障多语言兼容性和用户体验。 RSS源中的文本编码设置,核心在于确保你的内容在各种阅读器和平台上都能被正确识别和显示,避免出现乱码。简单来说,就是告诉接收方,我这个XML文件里的字符是用哪…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信