在运行 Hyper-V 的 Windows 2008 R2 SP1 群集上,主主机接口上的网络连接丢失。该接口快速上下波动,后来确定这是由交换机端口故障引起的。
由于这是一个集群服务器,主机接口不具备容错能力(鉴于整个服务器具备容错能力),因此与主机的连接时好时坏。
Hyper-V 客户机完全不受网络中断的影响,因为它们在服务器上使用与主机接口分开的专用中继。此外,集群和实时迁移网络的专用接口也很好。
为了诊断服务器,我尝试通过故障转移群集管理器将所有资源(Hyper-V 客户端)移至其他节点。这些移动失败并出现错误RPC Server Unavailable
。
移动资源的唯一方法是关闭客户机,停止节点 A 上的集群服务,允许其他节点获取资源所有权,然后重新启动客户机。
其他几点说明:
- 所有节点均在集群和 LM 网络上启用了 MS 网络客户端和文件和打印机共享。
- 节点 A 可以通过集群和 LM 网络从其他节点(这些是私有的、仅限集群的网络)访问;可 ping、可访问 CIF 等。
RPC Server Unavailable
正如您在本例中所期望的那样,访问 \\NODEA 是通过主机适配器完成的,这也是该适配器关闭时出现错误的原因。
我的问题是 -
- 在出现此类故障的情况下,是否有办法继续使用实时迁移来避免关闭 Hyper-V 客户机?
- 将来如何重新配置网络,以便集群服务尝试使用集群和/或实时迁移网络发出 RPC 请求?
答案1
好问题!
RPC 失败的最可能原因是集群名称资源(和 IP 地址)可能托管在主网络连接出现故障的服务器上。
由于接口时断时续,通过集群名称访问集群可能会因网络中断而失败。
您应该能够从命令行(cluster.exe 或 PowerShell 中的 FailoverClusters 模块)对群集执行命令。如果配置了适当的凭据委派(CredSSP 或 Kerberos),则可以通过 PowerShell 远程使用 FailOverClusters 模块。
如果托管集群名称的网络接口出现故障,您可以使用 PowerShell 将该集群组移动到可访问的节点之一,或者您可以针对集群执行命令来迁移机器等。
为了确保这种情况不再发生,您可能需要使 NIC 高度可用(NIC 组合)。这取决于您从哪里管理集群……其中一个服务器或远程管理站。如果您从同一集群中的集群计算机进行管理,则可以将集群网络上的 IP 添加到集群名称中,但您需要确保未将其添加到 DNS,否则您可能会中断远程管理客户端的连接。
要通过 PowerShell 向群集组添加 IP 地址 -
$Resource = Add-ClusterResource -Name SecondaryIP -ResourceType "IP Address" -Group 'Cluster Group'
$Resource | Set-ClusterParameter -Name 'Address' -Value 'Your-IP-Here'
$Resource | Set-ClusterParameter -Name 'SubnetMask' -Value 'Your-SubnetMask-Here'
如果您不希望远程管理客户端尝试与私有网络通信,则需要禁用动态 DNS 注册并创建静态条目。