给出的示例是 - 有 2 个节点和 1 个文件共享。作者说文件共享下降,集群保持活跃,因为它有 2/3 票。
在这一点上,他们对动态仲裁(当剩余 2 个节点时)说以下内容:
好消息是它们在 Windows Server 2012 上。此版本的 Windows Server 引入了动态仲裁的概念,并且默认启用。WSFC 根据节点的状态管理对节点的投票分配。如果节点脱机——重新启动、断电、与网络断开连接等——它的投票也会从集群中删除。这就是集群节点重启时AG下线的原因。
我试图了解为什么 AG(集群)离线?
该文档说(https://learn.microsoft.com/en-us/azure-stack/hci/concepts/quorum#two-nodes-without-a-witness):
一个节点的投票为零,因此多数票是从总共 1 票中确定的。如果非投票节点意外宕机,幸存者有 1/1,集群幸存。如果投票节点意外宕机,幸存者有0/1,集群宕机。如果投票节点正常断电,则投票将转移到另一个节点,并且集群仍然存在。这就是为什么配置见证人至关重要的原因。
具体来说:如果投票节点正常断电,投票将转移到另一个节点,集群仍然存在。
再往下说:
每当幸存节点成功验证他们是多数人时,多数人的定义就会更新为仅在幸存者中。这允许集群丢失一个节点,然后是另一个节点,然后是另一个节点,依此类推。这种在连续失败后适应的投票总数的概念称为动态仲裁。
我的问题假设在 2 节点 + 1 文件共享设置中,说文件共享下降,然后:
假设 node1 设置为 0(通过动态仲裁),那么如果我关闭 node2 则不会对集群产生任何影响。(因为动态仲裁会将投票权切换到节点1)?法定人数>0.5
假设 node1 设置为 0(通过动态仲裁),如果 node1 关闭,那么集群也将保持活动状态,因为 quorum > 0.5
假设 node2 设置为 0(通过动态仲裁),并且 node2 关闭,那么集群将保持活动状态,因为 quorum >0.5
假设 node2 设置为 0(通过动态仲裁),那么如果我关闭 node1,集群也将保持在线,因为投票将切换到 node2 并且仲裁>0.5
作者的集群为什么会宕机?
在他的示例中,他解释了动态见证和动态仲裁有助于集群可用性。节点的动态权重是否变化取决于集群的当前配置和当前状态,以及一些随机数据,例如节点id。
如果您将 node1 的节点权重设置为 0,那么它永远没有投票权。如果这是您的问题所建议的 2 节点集群,则重新启动节点 2,集群将关闭。
如果您谈论的是动态仲裁,那么在带有见证人的 2 节点集群中,投票不会被动态删除。它将使集群保持 3 票,因为如果节点投票数是偶数(它在 2 节点集群中),动态见证将被设置为投票。更改投票对集群的可用性没有任何帮助。
无论哪种方式,如果见证人可用,丢失一个节点不会导致可用性损失。
由于如上所述,在 2 节点设置中投票不会动态更改,节点 2 没有投票的唯一方法是手动设置。在这种情况下,集群将关闭。否则,正如我之前解释的那样,节点将拥有投票权,集群将保持正常运行。
因为 Edwin 专门指出了在 WS2012R2 及更高版本中所做的动态见证和动态仲裁更改,并通过使用没有实现所有项目的 WS2012 来证明这一点(并且还提到了两个都没有实现的 2008R2)。