设置:
我们在 Windows 2008 Enterprise Edition VM 上使用 AppFabric 1.1。
我们设置了一个包含三个节点的集群,使用 SQL Server 进行集群配置并使用卸载,因此 SQL Server 应该通过确保使用以下内容创建集群来进行集群管理:New-AFCacheCluster -Offloading true
. 然后我们添加三个节点并启动集群。一切都很好。
然后我们设置一个缓存实例,称之为“测试”,HA 使用该-Secondaries 1
选项。
测试场景:
然后,我们使用测试应用程序将一些测试数据放入缓存并访问该数据,一切正常。因此,我们转到 VM 主机并关闭集群中某个节点的 NIC,以模拟该节点的故障。
结果:
一旦在一个节点上禁用了 NIC,当我们从缓存中读取时,我们会得到超时而不是干净的故障转移。
如果我们Get-AFCacheHostStatus
在其他两台仍处于运行状态的主机中的任何一台上运行,则在第一次禁用 NIC 后,此调用将需要很长时间才能返回主机的状态。一旦它最终返回状态,它就会显示我们拉动 NIC 的节点处于UNKNOWN
状态。对 Get-AFCacheHostStatus 的后续调用将快速返回,但始终显示一个节点无法访问的错误消息并显示在UNKNOWN
状态中。
好的,所以 AF 本身检测到该节点处于UNKNOWN
状态,但测试应用程序此时仍然超时。几分钟后,大约 5 到 10 分钟,应用程序最终将重新开始工作,只剩下我们剩下的两个节点。
苏,这是怎么回事?我们是否配置错误?为什么集群需要这么长时间才能从这种基本故障中恢复?