我正在尝试了解故障转移群集功能如何与 Windows 2008 R2 配合使用,因为我将始终将其用作 SQL Server 2012 的一部分。
我已经找到了关于如何设置它以及它能做什么的信息。然而,我找不到一个好的技术的文件它是如何工作的详细信息(例如,keepalived 中有文档解释心跳包的发送频率、发送方式等)。
我知道这是一个相当广泛的问题,但我希望很好地理解此功能的机制。
答案1
由于它是一种专有产品,我认为您不会对协议甚至流程图进行二进制级别的分析,但我认为您可以从中收集一些有用的信息:
Microsoft 集群服务的设计和架构- 这篇论文由我的计算机科学英雄之一 Jim Gray(RIP,Jim)共同撰写,发表于 1998 年 IEEE FTCS 论文集,描述了 Microsoft Cluster Server 产品在 Windows NT 4.0 中的基本设计,后来的产品都是从 Windows NT 4.0 发展而来的。这里甚至还有一个流程图,尽管相对于当前一代产品来说它可能已经过时了。
双节点 Windows Server 2000 群集中的网络故障检测和恢复- 虽然这篇文章有些过时了,但它确实描述了用于确定集群中节点的网络可用性的状态机的低级细节。
[MS-CMRP]: 故障转移群集:管理 API (ClusAPI) 协议规范- 本文档说明了产品内部的工作原理,但其目的并非具体记录集群内通信协议和流程。
在产品的后续版本中,此功能变得更加可配置。搜索命令行管理工具的名称,
cluster.exe
以及针对微软网站的“heartbeat”一词似乎会产生很多潜在的良好结果(我发现的第一个热门歌曲之一有一个段落包含以下短语“...这里每个节点在每个集群网络上都有一个接口,每 1.2 秒每个网络发送 N *(N - 1)个单播心跳...”,这听起来就像您正在寻找的那种东西 - 尽管描述的是 Windows Server 2003。)
当然,如果您想亲自查看更多低级别,请进行设置并对其进行嗅探。