核心内容摘要
寻味东方韵,品鉴中国“芯”——国产精品文娱的崛起之路
从零开始学虚拟化高可用与灾备技术全解析集群 备份 异地灾备虚拟化技术的
核心价值之一是提升业务连续性但单节点故障、数据丢失、自然灾害等风险仍会导致业务中断。
高可用HA与灾备技术通过 “集群冗余、自动切换、数据备份、异地恢复” 四大手段构建 “防故障、防丢失、可恢复” 的业务保障体系。
本文将聚焦虚拟化场景详解集群高可用部署、脑裂问题解决、备份技术选型、异地灾备架构结合 VMware/KVM/Hyper-V 实战案例帮你搭建企业级高可用灾备方案。
虚拟化高可用核心集群部署与故障自动切换高可用High Availability的核心目标是消除单点故障通过多节点集群部署实现故障时虚拟机自动切换业务中断时间RTO控制在分钟级。
主流虚拟化平台的高可用方案均基于 “集群 共享存储” 架构以下是具体实现。
1 高可用集群核心架构虚拟化高可用集群的三大核心组件集群节点2 台及以上物理服务器ESXi/KVM/Hyper-V 主机需硬件配置一致CPU 型号兼容、内存 / 存储规格匹配共享存储虚拟机镜像、配置文件存储在共享设备如 iSCSI、NFS、FC 存储确保故障切换后虚拟机可访问数据集群管理软件负责节点健康检测、故障判断、虚拟机自动重启 / 迁移如 VMware HA、KVM Pacemaker、Hyper-V 故障转移集群。
2 主流平台高可用集群部署实战1VMware vSphere HA 集群企业级标杆vSphere HA 是成熟的企业级高可用方案基于 vCenter Server 管理配置步骤如下前置条件2 台及以上 ESXi 主机已添加到 vCenter 集群所有 ESXi 主机挂载同一共享存储VMFS/NFS/iSCSI主机间网络互通管理网络、业务网络、存储网络正常。
配置步骤登录 vCenter Web 客户端选中集群→“设置”→“vSphere 可用性”→“编辑”启用 “打开 vSphere HA”配置核心参数故障检测时间默认 15 秒检测 ESXi 主机是否离线重启优先级为核心业务虚拟机设置 “高” 优先级优先重启资源预留为 HA 预留 25% CPU 和内存资源确保故障时虚拟机能启动点击 “确定”HA 集群生效集群状态显示 “已启用”。
故障切换原理当 ESXi 主机故障如断电、宕机vCenter 通过网络心跳检测到节点离线HA 自动在健康主机上重启故障节点的虚拟机无需人工干预切换时间虚拟机重启时间约
分钟业务中断时间短。
2KVM 高可用集群PacemakerCorosyncKVM 无原生 HA 组件需通过开源工具 Pacemaker资源管理器和 Corosync集群通信层搭建步骤如下前置条件2 台 KVM 宿主机CentOS 8/Ubuntu
2
04已安装 KVM 和 Libvirt共享存储如 NFS/Ceph虚拟机镜像存储在共享目录主机间免密 SSH 登录关闭防火墙或放行集群通信端口。
安装集群组件# CentOS 8安装命令 dnf install -y pacemaker corosync pcs libvirt-cluster # 启动pcs服务并设置开机自启 systemctl start pcsd systemctl enable pcsd # 设置pcs管理员密码两台主机密码一致 passwd hacluster配置集群# 在节点1执行创建集群集群名称kvm-ha-cluster节点IP为两台主机IP pcs host auth
192.
168.
201
192.
168.
202 -u hacluster -p 密码 pcs cluster setup --name kvm-ha-cluster
192.
168.
201
192.
168.
202 pcs cluster start --all pcs cluster enable --all # 禁用STONITH测试环境生产环境需启用 pcs property set stonith-enabledfalse添加虚拟机资源# 定义虚拟机资源名称centos7-vm基于Libvirt pcs resource create centos7-vm VirtualDomain hypervisorqemu:///system config/etc/libvirt/qemu/centos7-vm.xml op start timeout60s op stop timeout60s op monitor interval30s timeout60s # 设置资源粘性虚拟机优先在原节点运行 pcs resource meta centos7-vm resource-stickiness100故障切换验证手动关闭节点 1 的 Libvirt 服务模拟故障systemctl stop libvirtdPacemaker 检测到资源离线自动在节点 2 启动虚拟机切换完成后通过virsh list查看虚拟机在节点 2 运行。
3Hyper-V 故障转移集群Windows ServerHyper-V 基于 Windows Server 故障转移集群实现高可用适合 Windows 生态用户前置条件2 台 Windows Server 2019/2022 主机已安装 Hyper-V 角色共享存储如 iSCSI、SMB
0 共享、Cluster Shared Volume主机加入同一 AD 域硬件兼容 Windows 故障转移集群。
配置步骤打开 “故障转移集群管理器”点击 “创建集群”添加两台 Hyper-V 主机运行集群验证测试通过所有测试项点击 “下一步”输入集群名称和 IP 地址完成集群创建将共享存储添加到集群设置为 “Cluster Shared VolumeCSV”右键点击虚拟机→“添加到集群”完成高可用配置。
核心特性自动故障转移主机故障时虚拟机在健康主机自动启动快速迁移支持虚拟机在主机间无中断迁移集群共享卷多主机同时访问同一存储提升资源利用率。
集群致命问题脑裂Split Brain解决方案
1 脑裂的本质与危害脑裂是集群高可用的致命问题指集群节点因网络分区如交换机故障、网线中断导致节点间通信中断各节点误以为其他节点故障从而争夺集群资源如虚拟机、存储锁导致数据损坏、虚拟机重复运行等严重后果。
典型场景2 节点 KVM HA 集群节点 1 和节点 2 之间网络中断→节点 1 认为节点 2 故障尝试启动节点 2 上的虚拟机节点 2 认为节点 1 故障继续运行虚拟机→同一虚拟机在两台节点同时运行写入同一共享存储→数据 corruption。
2 脑裂解决方案从易到难1冗余通信链路预防为主为集群节点配置多条独立通信链路如 2 块网卡、2 条网线连接不同交换机确保集群通信Corosync、vSphere HA 心跳在独立网络传输避免与业务网络共用核心原理单一链路故障时冗余链路保障节点间通信避免网络分区。
2仲裁机制核心方案仲裁机制通过 “投票” 确定集群的 “合法主节点”避免多节点争夺资源主流方案包括奇数节点仲裁集群节点数设置为奇数
5 节点节点间通信中断时获得多数投票≥(n
/2的分区成为合法集群示例3 节点集群网络分区为 2 节点和 1 节点→2 节点分区获得 2 票多数继续提供服务1 节点分区放弃资源避免脑裂。
Quorum Disk仲裁盘配置独立的共享存储盘作为仲裁盘所有节点争夺仲裁盘的读写权限网络分区时仅能访问仲裁盘的节点分区成为合法集群其他分区释放资源适用场景2 节点集群无法实现奇数节点仲裁如 Hyper-V 故障转移集群、KVM 2 节点集群。
见证节点Witness引入第 3 台轻量服务器作为见证节点无需运行虚拟机仅参与投票2 节点集群 1 见证节点网络分区时获得见证节点投票的分区成为合法集群优势无需额外共享存储适合小型集群。
3STONITH最终保障STONITHShoot The Other Node In The Head是 “杀节点” 机制当检测到脑裂时通过硬件或软件方式强制关闭 “非法节点”避免资源争夺。
硬件 STONITH通过 IPMI、DRAC 等远程管理接口关闭非法节点的电源软件 STONITH通过集群管理工具发送关机命令强制关闭非法节点配置示例KVM Pacemaker 集群# 安装IPMI工具 dnf install -y freeipmi # 配置STONITH资源基于IPMI pcs stonith create stonith-ipmi fence_ipmilan ipaddr
192.
168.
201 loginadmin passwd123456 actionreboot power_wait60 pcs stonith create stonith-ipmi-2 fence_ipmilan ipaddr
192.
168.
202 loginadmin passwd123456 actionreboot power_wait60 # 启用STONITH生产环境必须启用 pcs property set stonith-enabledtrue
3 主流平台脑裂防护配置VMware vSphere HA默认采用 “心跳网络 资源投票” 机制支持配置 “冗余心跳网络” 和 “故障域”自动隔离非法节点KVM Pacemaker推荐 “奇数节点 STONITH” 组合2 节点集群需配置 Quorum Disk 或见证节点Hyper-V 故障转移集群默认使用 “Cluster Shared Volume 仲裁盘”2 节点集群必须配置仲裁盘或文件共享见证。
虚拟机备份技术从文件备份到应用一致性备份是灾备的基础虚拟化场景的备份需解决 “虚拟机在线备份、数据一致性、备份效率” 三大问题主流方案分为 “平台原生备份” 和 “第三方备份工具” 两类。
1 备份核心概念文件级备份备份虚拟机内的单个文件 / 目录如数据库文件、配置文件恢复灵活但效率低镜像级备份备份整个虚拟机镜像.vmdk/.qcow2/.vhdx恢复速度快支持整机恢复应用一致性备份备份时确保应用程序如 MySQL、Oracle数据一致性如事务提交、日志刷盘避免恢复后数据损坏崩溃一致性备份仅备份虚拟机磁盘数据不处理应用状态恢复后可能出现数据不一致如未提交的数据库事务丢失。
2 主流平台备份方案实战1VMware 备份方案VMware Data ProtectionVDPVMware 原生备份工具基于 VADPvSphere API for Data Protection接口支持应用一致性备份部署方式作为虚拟机部署OVA 模板支持备份 ESXi 主机上的所有虚拟机核心特性支持增量备份、压缩、 deduplication重复数据删除与 vCenter 集成可通过 vCenter 管理备份任务配置步骤部署 VDP 虚拟机注册到 vCenter创建备份作业选择目标虚拟机设置备份周期如每天凌晨 2 点选择备份类型完整备份 / 增量备份启用 “应用一致性”需安装 VMware Tools配置备份存储本地存储或 NFS 共享执行备份。
第三方工具企业级首选如 Veritas NetBackup、Commvault、Veeam Backup Replication支持跨平台备份VMwareKVMHyper-V异地备份、备份副本管理虚拟机即时恢复无需完整恢复镜像快速启动虚拟机。
2KVM 备份方案KVM 无原生备份工具需通过开源工具组合实现推荐方案KVMrsync文件级备份适合备份虚拟机内关键文件#
暂停虚拟机确保数据一致性 virsh suspend centos7-vm #
备份虚拟机内文件通过SSH或共享目录 rsync -avz root
192.
168.
1
100:/data/ /backup/kvm/data/ #
恢复虚拟机 virsh resume centos7-vmKVMlibvirtqemu-img镜像级备份备份整个虚拟机镜像#
创建虚拟机快照崩溃一致性备份 virsh snapshot-create-as --domain centos7-vm --name backup-snap --no-metadata #
备份镜像文件使用qemu-img转换支持压缩 qemu-img convert -c -f qcow2 /var/lib/libvirt/images/centos7-vm.qcow2 /backup/kvm/centos7-vm-backup.qcow2 #
删除快照 virsh snapshot-delete centos7-vm backup-snap应用一致性备份KVMlibvirt 预备份脚本备份前执行预脚本在虚拟机内停止应用如 MySQL、刷盘sync命令备份完成后执行后脚本启动应用示例脚本kvm-app-consistent-backup.sh#!/bin/bash VM_NAMEcentos7-vm BACKUP_DIR/backup/kvm # 预备份停止MySQL服务通过SSH执行虚拟机内命令 ssh root
192.
168.
1
100 systemctl stop mysqld sync # 创建快照并备份镜像 virsh snapshot-create-as --domain $VM_NAME --name backup-snap --no-metadata qemu-img convert -c -f qcow2 /var/lib/libvirt/images/$VM_NAME.qcow2 $BACKUP_DIR/$VM_NAME-$(date %Y%m%d).qcow2 # 后备份启动MySQL服务 ssh root
192.
168.
1
100 systemctl start mysqld # 删除快照 virsh snapshot-delete $VM_NAME backup-snap3Hyper-V 备份方案Hyper-V 原生备份Windows Server Backup支持镜像级备份与 Windows Server 集成零额外成本配置步骤打开 “Windows Server Backup”→“备份计划”→选择 “Hyper-V”→设置备份存储位置和周期优势支持应用一致性备份需安装 Hyper-V 集成服务恢复操作简单。
SMB 共享备份将虚拟机存储在 SMB
0 共享目录通过 SMB 共享直接备份镜像文件支持增量备份备份时无需暂停虚拟机不影响业务。
3 应用一致性备份
关键技术应用一致性备份的核心是 “备份时确保应用数据完整性”依赖以下技术VMware Tools/Hyper-V 集成服务在虚拟机内安装工具备份时触发应用 “静默”如数据库事务提交、文件系统刷新VSSVolume Shadow Copy ServiceWindows 平台的卷影复制服务支持在应用运行时创建一致性快照预 / 后备份脚本Linux 平台通过脚本停止应用、刷盘备份完成后启动应用数据库专属备份接口如 Oracle RMAN、MySQL mysqldump与虚拟化备份工具集成实现数据库一致性备份。
异地灾备应对区域性灾难的终极方案高可用集群仅能应对单节点 / 单机房故障如服务器宕机、交换机故障无法应对区域性灾难如地震、洪水、机房火灾。
异地灾备通过在异地部署灾备中心复制生产数据实现灾难后的业务恢复。
1 异地灾备核心指标RPORecovery Point Objective灾难发生后允许丢失的数据量如 RPO1 小时允许丢失最近 1 小时数据RTORecovery Time Objective灾难发生后业务恢复正常运行的时间如 RTO4 小时4 小时内恢复业务灾备模式根据 RPO 和 RTO 需求选择不同的灾备模式同步复制、异步复制、定时备份。
2 异地灾备架构方案1冷备架构低成本RPO/RTO 高架构生产中心定期将备份数据如每日全量备份传输到异地灾备中心如通过 FTP/SCP特点灾备中心无实时运行的业务灾难发生后需手动恢复数据、启动虚拟机RPO数小时到 1 天取决于备份周期RTO数小时到 1 天适用场景中小企业、非核心业务成本敏感型场景。
2温备架构中等成本RPO/RTO 中等架构灾备中心部署与生产中心一致的硬件环境通过异步复制如每 15 分钟复制一次数据同步生产数据特点灾备中心虚拟机处于待机状态灾难发生后快速启动虚拟机恢复业务RPO15 分钟到 1 小时RTO30 分钟到 2 小时适用场景中小型企业核心业务平衡成本和业务连续性需求。
3热备架构高成本RPO/RTO 低架构生产中心和灾备中心实时同步数据同步复制灾备中心虚拟机实时运行双活 / 多活特点灾难发生后业务可快速切换到灾备中心几乎无数据丢失和业务中断RPO5 分钟甚至零数据丢失RTO30 分钟适用场景大型企业核心业务如金融交易系统、医疗数据系统对 RPO/RTO 要求极高。
3 主流平台异地灾备实战1VMware 异地灾备Site Recovery ManagerSRMVMware SRM 是企业级异地灾备解决方案与 vSphere 深度集成支持自动化灾难恢复架构生产中心和灾备中心均部署 vSphere 环境和 SRM 服务器通过 vSphere Replication 复制虚拟机数据核心特性支持同步 / 异步复制RPO 低至 5 分钟自动化恢复计划Recovery Plan灾难发生后一键执行恢复操作支持数据压缩和加密降低带宽占用配置步骤在生产中心和灾备中心部署 SRM 服务器注册到 vCenter配置 vSphere Replication选择需要复制的虚拟机和灾备中心创建恢复计划设置虚拟机启动顺序、网络配置等定期测试恢复计划确保灾备有效性。
2KVM 异地灾备开源方案CephGlusterFSKVM 通过开源存储复制工具实现异地灾备成本低、灵活性强异步复制方案RPO1 小时生产中心和灾备中心部署 Ceph 分布式存储通过 Ceph 异步复制同步数据结合 crontab 定时执行qemu-img convert备份传输到灾备中心恢复时在灾备中心导入备份镜像启动虚拟机。
实时复制方案RPO5 分钟使用 GlusterFS 跨地域卷生产中心和灾备中心部署 GlusterFS 节点创建分布式复制卷KVM 虚拟机镜像存储在 GlusterFS 卷中数据实时同步到灾备中心灾难发生后在灾备中心直接启动虚拟机RTO30 分钟。
3Hyper-V 异地灾备Azure Site RecoveryHyper-V 与微软 Azure 云集成实现异地灾备架构生产中心 Hyper-V 虚拟机通过 Azure Site Recovery 复制到 Azure 云核心特性支持异步复制RPO 低至 15 分钟灾难发生后在 Azure 云启动虚拟机快速恢复业务支持按需付费无需建设物理灾备中心降低成本配置步骤在 Azure 门户创建 Recovery Services 保管库在 Hyper-V 主机安装 Azure Site Recovery 代理配置复制策略RPO、保留期选择需要复制的虚拟机测试恢复在 Azure 云启动虚拟机副本验证业务可用性。
4 异地灾备关键
注意事项网络带宽同步 / 异步复制需要充足的跨地域带宽建议使用专线或 SD-WAN 优化传输数据一致性异地复制需确保数据一致性如使用分布式存储的复制机制避免文件级复制导致的数据损坏定期演练每季度 / 每半年执行一次灾备恢复演练验证 RPO 和 RTO 是否达标灾备中心选址灾备中心与生产中心保持足够地理距离如≥100 公里避免同一区域性灾难影响两地。
五、