必须配置共享存储与隔离心跳网络,使用故障转移群集实现VIP漂移和自动资源接管;仲裁依赖脱机的GPT分区共享磁盘,三网卡分离业务、心跳与iSCSI流量,通过Test-Cluster验证后创建群集并设磁盘见证,最后部署角色并实测手动/自动故障转移。

要在Windows Server环境中实现业务服务不中断的双机热备高可用集群,必须让两台服务器共享同一套业务IP并能自动接管故障节点上的资源,不能只靠软件心跳模拟或文件复制这类伪高可用方案。
准备共享存储与网络隔离
双机热备集群依赖仲裁机制判断节点健康状态,而仲裁必须基于共享磁盘或云仲裁,本地磁盘无法参与仲裁投票。先在独立存储设备(如iSCSI目标)上创建两个LUN:一个1GB的【仲裁盘】,一个≥20GB的【数据盘】,两者都需初始化为GPT分区、在线、脱机(注意:脱机是必须步骤,否则后续添加到群集时会失败)。
为每台服务器配置三块网卡:一块接业务网段(如192.168.206.0/24),一块专用于心跳通信(如10.1.1.0/24,禁用TCP/IP协议栈以外的所有服务),第三块可选作iSCSI连接通道。心跳网络严禁与业务网共用物理交换机,否则网络抖动会触发误切换。
安装故障转移群集功能并验证节点
在ServerA和ServerB上均以管理员身份运行PowerShell,执行:Install-WindowsFeature Failover-Clustering -IncludeManagementTools。安装完成后重启两台服务器。
重启后,在ServerA上运行Test-Cluster -Node ServerA,ServerB -ReportName C:cluster-test.html。该命令会检测域成员身份、存储可见性、时间同步、防火墙端口(3343群集服务端口必须放行)、NetBIOS名称解析等共57项指标。若报告中出现红色“Fail”项,必须逐项修复——例如“Validate Network Communication”失败,说明心跳网卡未正确隔离;“Validate Storage”失败,大概率是共享磁盘未脱机或iSCSI会话未持久化。
创建群集并指定仲裁模式
方法一:图形界面快速创建
打开“故障转移群集管理器”→“创建群集”→输入ServerA和ServerB→群集名称填“HQ-CLUSTER”→IP地址填业务网段内未被占用的地址(如192.168.206.200)→完成向导后立即右键群集→“更多操作”→“配置群集仲裁设置”→选择“多数节点和磁盘见证”,见证磁盘选刚才准备好的1GB仲裁盘。
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
方法二:PowerShell一步到位
执行:New-Cluster -Name HQ-CLUSTER -Node ServerA,ServerB -StaticAddress 192.168.206.200 -NoStorage -AdministrativeAccessPoint ActiveDirectoryAndDns,再运行:Set-ClusterQuorum -DiskWitness "Q:"(假设仲裁盘盘符为Q:)。这一步若报错“无法访问见证磁盘”,说明该磁盘尚未在群集内联机——需先在“群集共享卷”中右键该磁盘→“联机”,再执行仲裁设置。
添加高可用角色并测试故障转移
第一步:在群集管理器中右键群集→“添加角色和功能”→选择“文件服务器”→“SMB文件共享”→按向导创建共享路径(如\HQ-CLUSTERDATA),权限设为域用户读写。
第二步:右键新创建的“文件服务器”角色→“属性”→“高级策略”选项卡→勾选“启用此资源的故障转移”→“故障转移设置”里将“最大故障数”改为3,“故障转移间隔(分钟)”设为5,避免瞬时故障反复切换。
第三步:手动触发一次故障转移:右键该文件服务器角色→“移动”→选择“ServerB”。等待状态变为“正在启动”再变为“已启动”,立刻从客户端ping群集IP(192.168.206.200)并尝试访问\HQ-CLUSTERDATA,确认文件可读写且无连接中断。此时ServerA上的资源应全部显示为“已停止”,ServerB上对应资源为“已启动”。
第四步:模拟ServerB宕机——直接断电或强制关机。观察ServerA是否在30秒内自动接管所有角色。若超过2分钟仍未切换,检查事件查看器中“System”日志里的“FailoverClustering”来源事件ID 1205(仲裁丢失)或1123(心跳超时),通常意味着心跳线缆松动或交换机端口被STP阻塞。










