Windows Server 故障转移集群(WSFC)是微软提供的一项高可用性(HA)解决方案,通过将多台独立服务器(称为"节点")组合成一个集群,来确保关键业务应用和服务在硬件或软件故障时仍能持续运行。
当集群中的一个节点发生故障时,其上的工作负载会自动转移到另一个健康的节点上,这个过程被称为"故障转移"。对于访问服务的用户而言,这种中断几乎是不可见的。
核心概念与组件
要理解故障转移集群,需要了解以下几个关键部分:
-
节点 (Nodes) :构成集群的物理或虚拟服务器。它们都安装了故障转移集群功能,并负责运行高可用性的工作负载。一个集群最多可支持64个物理节点。
-
集群角色 (Clustered Role):在集群节点上运行的高可用性服务或应用程序,例如文件服务器、Hyper-V虚拟机或SQL Server数据库。
-
存储 (Cluster Storage) :除了各自的本地硬盘,集群节点通常还需要访问共享存储。这是存放应用程序配置和数据的地方。从Windows Server 2016开始,也可以通过存储空间直连(S2D) 技术,利用节点本地的硬盘来构建共享存储。
-
网络 (Networks):集群需要网络来实现节点间通信(心跳)以及客户端访问。通常会为这两种流量划分不同的物理或逻辑网络。
-
仲裁 (Quorum) :这是集群的"投票"机制,用于在节点间网络不通(即"脑裂"场景)时,决定哪部分节点可以继续提供服务,以保证数据一致性。仲裁可以基于节点投票,也可以引入一个见证(Witness) 资源(如共享磁盘或文件共享)来投票。
主要部署拓扑
根据你的业务需求和容灾目标,可以选择不同的部署拓扑:
| 拓扑类型 | 描述 | 主要用途与特点 |
|---|---|---|
| 简单集群 | 所有节点位于同一个机架或数据中心。 | 可以应对单个节点(如服务器硬件)的故障,但无法应对机架或数据中心级别的故障。 |
| 园区集群 | 节点分布在同一个园区内的不同机架或机房。 | 能抵御单个机架(如电源、网络交换机)的故障。 |
| 延伸集群 | 节点分布在不同地理位置的数据中心。 | 用于实现异地灾备,能应对整个站点(如自然灾害)的故障,提供最高级别的可用性。 |
| 多集群拓扑 | 多个故障转移集群共同协作。 | 用于实现超大规模或更复杂的应用部署 |
部署要求与步骤
1. 先决条件
在开始部署前,需要确保环境满足以下基本要求:
-
硬件:所有硬件组件(服务器、网络、存储)都应通过Windows Server认证。
-
操作系统:所有节点应运行相同版本的Windows Server,并应用相同的软件更新。
-
网络:网络硬件需与Windows Server兼容,并避免单点故障(如使用冗余网络)。
-
Active Directory:所有节点必须加入同一个Active Directory域。创建集群的账户需要具备相应的域管理员权限。
2. 安装与创建
你可以通过多种方式创建集群:
-
安装功能 :在每台服务器上通过"服务器管理器"或PowerShell命令 (
Install-WindowsFeature Failover-Clustering) 安装"故障转移集群"功能。 -
运行验证:使用"故障转移集群管理器"或PowerShell运行集群验证测试,确保硬件和软件配置符合要求。
-
创建集群 :通过"故障转移集群管理器"管理单元、Windows Admin Center 或PowerShell (
New-Cluster) 来完成集群的创建。创建过程中会指定集群名称、IP地址和仲裁配置。
典型应用场景
故障转移集群广泛应用于对服务连续性要求高的场景:
-
虚拟化:为Hyper-V虚拟机提供高可用性,当宿主机故障时,虚拟机可在其他节点上重启。
-
数据库:为SQL Server等数据库系统提供高可用性,确保数据库服务不中断。
-
文件服务器:提供高可用的文件共享服务。
-
关键业务应用:为邮件、ERP等关键业务应用提供高可用性保障。
总结
总的来说,Windows Server故障转移集群是一个成熟、强大的高可用性平台。它通过将多个服务器组成一个逻辑整体,并利用故障转移和仲裁机制,有效地消除了单一节点故障带来的风险,是保障关键业务服务持续运行的核心技术。
如果你想深入了解某个具体方面,比如仲裁模式的详细配置、在虚拟化环境中的部署细节,或是延伸集群的具体搭建方法,我可以为你提供更详细的信息。
在Windows故障转移集群中,应用切换的中断时间不是一个固定值,而是从几秒到十几分钟不等。这主要取决于故障的类型(计划内还是意外)、具体应用以及集群的配置。
注意事项:
如果是手动切换集群节点,当另外一台服务器开机联机,集群节点会自动切回,这个非常关键,特别是应用系统使用过程中恢复,会影响业务,所以有问题的机器联机要选择时间联机。避免在不需要切回的时候,集群自动切回。