睿诚科技协会

Windows高可用技术如何实现?

Windows 的高可用技术体系非常成熟,并且随着版本的发展不断演进,其核心目标都是确保关键应用和服务在发生硬件或软件故障时,能够快速、自动地恢复,最大限度地减少业务中断时间

Windows高可用技术如何实现?-图1
(图片来源网络,侵删)

这些技术主要可以分为以下几个层面:

  1. 操作系统级高可用
  2. 虚拟化平台高可用
  3. 应用级高可用
  4. 数据存储高可用
  5. 多云/混合云高可用

下面我们逐一详细解析。


操作系统级高可用:Windows Server 故障转移集群

这是 Windows 平台最经典、最核心的高可用技术,旨在保护运行在物理服务器或虚拟机上的应用程序和虚拟机

核心概念

  • 故障转移集群:由两台或多台安装了 Windows Server 的服务器(称为节点)组成,这些节点通过心跳机制互相监控,共同对外提供一个或多个服务
  • 心跳:节点之间通过网络(专用网络或心跳适配器)定期发送信号,如果一段时间内某个节点没有收到其他节点的心跳,就会认为该节点发生故障。
  • 共享存储:集群中的所有节点都需要能同时访问同一个存储设备(如 SAN、iSCSI 存储),存储上的数据(如虚拟机硬盘文件、数据库文件)对所有节点是可见的,当一个节点故障时,另一个节点可以立即接管对该存储的访问权,并启动运行在上面的服务。
  • 故障转移:当集群检测到节点或服务故障时,会自动将服务(如虚拟机、文件服务、SQL Server 实例)的所有权从故障节点转移到健康的节点上,并重新启动它。

工作流程

  1. 配置:安装“故障转移集群”功能,配置网络、存储和仲裁,将服务器加入集群。
  2. 创建资源:为需要保护的应用程序创建资源组,包含虚拟机 IP 地址、存储名称、网络名称、虚拟机服务等资源
  3. 运行与监控:集群服务运行,节点间互相发送心跳。
  4. 故障检测:假设 Node A 发生故障(宕机或网络中断)。
  5. 仲裁决策:剩余的节点(Node B)通过仲裁机制确认 Node A 确实故障,而不是仅仅是网络分区。
  6. 资源接管:Node B 获取对共享存储的控制权,并启动 Node A 上运行的虚拟机或应用程序。
  7. 恢复服务:客户端请求被重新路由到 Node B,服务恢复。

关键特性:仲裁

仲裁是集群决策的“投票”机制,用于防止“脑裂”(Split-Brain)问题,即集群分裂成两个小集群,都认为对方已死,同时争抢同一个资源,导致数据损坏。

Windows高可用技术如何实现?-图2
(图片来源网络,侵删)
  • 多数节点集:默认推荐方式,3 节点集群允许 1 个节点故障;5 节点集群允许 2 个节点故障,只要存活节点数 > 总节点数/2,集群就能继续工作。
  • 节点和磁盘多数集:结合了节点投票和存储投票,增强了集群在存储分区时的稳定性。
  • 仅磁盘:适用于存储高度可靠的场景,所有节点都依赖共享存储的投票。
  • 云见证:在 Azure 等云环境中,使用 Azure Blob 存储作为仲裁投票者,无需额外的本地硬件,成本极低。

虚拟化平台高可用:Hyper-V 副本

Hyper-V 副本是一种应用级的高可用解决方案,但它与 Windows Server 集群有本质区别。

核心概念

  • 异步复制:Hyper-V 副本不是共享存储,而是将主虚拟机的磁盘变化(VHD/VHDX 文件)定期、异步地复制到另一个站点的辅助 Hyper-V 主机上。
  • 站点间:主站点和辅助站点通常是不同的物理位置,以应对区域性灾难。
  • 无共享存储依赖:这是它与故障转移集群最大的不同,架构更简单,成本更低。

工作流程

  1. 配置:在主 Hyper-V 服务器上为每个虚拟机启用复制,并指定辅助 Hyper-V 服务器的地址、认证方式和复制频率。
  2. 初始复制:将虚拟机的完整磁盘复制到辅助站点。
  3. 增量复制:之后,主机会将虚拟机产生的差异数据(日志)发送到辅助站点。
  4. 故障发生:主站点发生故障(如断电、火灾)。
  5. 手动故障转移:管理员需要在辅助站点上手动执行“计划外故障转移”。
  6. 虚拟机启动:辅助站点上的虚拟机被挂载并启动,由于是异步复制,可能会丢失少量最新的数据。

与故障转移集群的对比

特性 Windows Server 故障转移集群 Hyper-V 副本
复制模式 同步(可选)或异步 异步
存储类型 共享存储 (SAN, iSCSI) 独立存储 (本地磁盘)
恢复时间 秒级到分钟级(自动切换) 分钟级(需手动切换)
数据丢失 同步模式为0,异步模式有少量丢失 有少量丢失(取决于复制频率)
适用场景 同一数据中心内的快速故障恢复 异地灾备,应对站点级灾难
部署复杂度 较高(需要共享存储和复杂配置) 较低(配置简单,无共享存储依赖)

应用级高可用

某些应用程序自身就内置了高可用机制,它们不依赖于操作系统层面的集群。

SQL Server Always On 可用性组

这是微软旗舰级数据库产品的高可用和灾难恢复解决方案。

  • 核心概念

    Windows高可用技术如何实现?-图3
    (图片来源网络,侵删)
    • 可用性组:包含一个或多个用户数据库的集合。
    • 可用性副本:每个副本是一个 SQL Server 实例,可以扮演不同角色:
      • 主副本:处理所有读写操作。
      • 次要副本:同步或异步地接收主副本的数据,可以配置为可读
    • 同步提交模式:主副本在数据写入日志并确认到至少一个同步次要副本后,才向客户端返回成功。零数据丢失,但性能稍低。
    • 异步提交模式:主副本在写入本地日志后立即返回成功,然后异步复制到次要副本。性能高,但会丢失部分数据。
  • 部署方式

    • Windows Server 故障转移集群:这是最常见的部署方式,多个 SQL Server 实例作为节点加入 WSFC 集群,可用性组作为集群资源,当主节点故障时,WSFC 会自动将可用性组的主角色切换到健康的次要节点所在的 SQL Server 实例上,这是高可用的典型架构。
    • 跨数据中心部署:将主副本和次要副本部署在不同的物理站点,结合 WSFC 和同步提交模式,实现异地高可用。

其他应用

  • 文件服务器:可以通过故障转移集群来保护共享文件夹,确保在一个节点故障时,客户端能无缝连接到另一个节点的共享资源。
  • Active Directory 域服务:通过在多个域控制器之间多主机复制来实现高可用,任何一个域控制器都可以处理身份验证请求,当一台 DC 故障时,其他 DC 会自动接管其职责,这本身就是一种高可用机制。

数据存储高可用

数据是核心,确保数据本身的可用性和冗余至关重要。

存储空间直接

Windows Server 2012 及以后版本内置的软件定义存储解决方案。

  • 核心概念:将多块本地直连的硬盘(SATA/SAS/SSD)汇集到一个或多个存储池中,然后在池上创建存储空间(即虚拟磁盘),这些空间可以像物理磁盘一样格式化并分配给服务器使用。
  • 高可用机制
    • 分层:将 SSD 和 HDD 混合使用,将热点数据自动放在高速的 SSD 上。
    • 镜像:类似于 RAID 1,将数据复制到多个物理磁盘上,一个磁盘损坏,数据不会丢失,系统会自动重建。
    • 奇偶校验:类似于 RAID 5/6,用奇偶校验信息提供容错能力,空间利用率更高。
  • 优势:成本效益高,无需昂贵的 SAN 硬件,可以轻松扩展存储容量。

存储副本

Windows Server 2025 及以后版本提供的块级、同步、集群感知的存储复制功能。

  • 核心概念:在两个独立的 Windows Server 之间(可以是集群内或跨站点)进行实时的、块级别的数据复制。
  • 高可用机制
    • 同步复制:确保数据在两端写入成功后才确认,实现零数据丢失
    • 异步复制:适用于远距离,性能更高,但有数据丢失风险。
    • 集群感知:与 WSFC 深度集成,能感知集群状态,避免在节点故障时进行数据复制,防止数据损坏。
  • 适用场景
    • 集群内两个节点之间的数据复制,替代共享存储,实现共享存储的高可用替代方案
    • 跨站点的灾备,作为 Hyper-V 副本的补充,保护任何类型的块存储卷。

多云/混合云高可用

随着云计算的发展,Windows 的高可用技术也延伸到了云端。

Azure Site Recovery (ASR)

这是 Azure 上的企业级灾备服务,功能强大且灵活。

  • 核心概念:通过在源端和 Azure 之间复制数据,来实现保护。
  • 工作流程
    1. 准备:在 Azure 中准备好虚拟网络和存储账户。
    2. 复制:在本地数据中心的服务器上安装 ASR 代理,将服务器的磁盘、网络等配置信息复制到 Azure。
    3. 故障转移:当本地发生灾难时,在 Azure 门户中点击“计划外故障转移”。
    4. 恢复:Azure 会根据复制的配置,在云端创建出完全相同的虚拟机,并启动它,之后可以通过负载均衡器将流量指向 Azure 中的 VM。
  • 优势
    • 保护范围广:可以保护物理机、VMware 虚拟机、Hyper-V 虚拟机,甚至是 Azure 之间的跨区域复制。
    • 自动化程度高:故障转移和恢复过程高度自动化。
    • 成本效益:按需付费,无需长期维护备用站点。

Azure VM 的可用性集

这是 Azure 提供的基础高可用方案,用于保护单个应用免受计划内和计划外的硬件故障。

  • 核心概念:将多个虚拟机组成一个可用性集
  • 高可用机制
    • 域容错:确保 VM 分布在不同的更新域(同一时间重启维护的单元)和容错域(共享硬件故障的单元)中。
    • 保证最多 2 个或 3 个 VM 同时故障
  • 适用场景:保护简单的无状态应用,如 Web 前端,对于有状态应用(如数据库),通常需要更高级别的解决方案,如 ASR 或 Always On AG。

技术选型总结

场景 推荐技术 关键优势
同一数据中心内,关键应用(如VM、数据库)秒级恢复 Windows Server 故障转移集群 自动化、快速、数据一致性高
异地灾备,容忍少量数据丢失,成本可控 Hyper-V 副本 异步复制、架构简单、无共享存储依赖
异地灾备,核心数据库零数据丢失 SQL Server Always On AG (同步模式 + ASR) 数据库级别的零丢失和自动故障转移
保护任何工作负载到云端的灾备 Azure Site Recovery (ASR) 云端灾备、自动化、保护范围广
保护简单的Azure虚拟机 Azure 可用性集 成本低、部署简单、防止单点硬件故障
软件定义的存储高可用 存储空间 利用本地硬盘、降低成本、易于扩展

选择哪种技术,取决于您的业务需求(RTO/RPO)预算现有架构以及技术团队的能力,这些技术可以组合使用,在数据中心内部署 WSFC 来保证高可用,同时使用 ASR 将整个集群复制到 Azure 作为异地灾备方案。

分享:
扫描分享到社交APP
上一篇
下一篇