服务器主备方式核心就是热备、温备、冷备三种形态,选型要点看故障切换速度和数据丢失容忍度,没有绝对最优,只有业务匹配度最高。
服务器双机热备和冷备的区别,到底怎么选
很多朋友一上来就问“热备还是冷备”,其实这两者根本不是同一个预算级别的东西,也不是同一个接管逻辑,热备和冷备最大的分水岭在于:备机到底有没有在实时“待命”。
热备:像随时能顶上的影子搭档
热备场景下,两台服务器同时通电运行,备机通过心跳线实时感知主机的健康状态,数据层面靠共享存储或同步复制保证和主机几乎一致,主机一旦宕机,备机在秒级内就能接管虚拟IP、拉起服务,客户端几乎感知不到故障发生。
这套方式适合数据库、核心交易系统这类“一分钟都不能丢”的业务,操作路径上,Linux环境常见的组合是Pacemaker + Corosync,配合共享存储(比如iSCSI或FC-SAN),日常巡检时用systemctl status pacemaker确认集群服务在线,再检查pcs status看资源是否都跑在主机上。
温备算是热备和冷备之间的折中方案:机器常开,但数据同步是按分钟级周期做的,接管速度在几十秒到分钟级,适合预算有限但允许轻微延迟的业务。
冷备:像停机待命的替补队员
冷备的备机平时根本不工作,甚至可能处于关机状态,数据靠每日或每周的定时备份任务同步过去,主机发生故障后,需要运维人员手动开机、挂载备份、启动服务,接管速度按分钟甚至小时算,而且最近一次备份之后的新数据会全部丢失。
这种方式适合日志归档、文件仓库、测试环境这些“掉几个小时也无所谓”的业务,用rsync或rclone做周期增量同步,配合启动盘镜像,就能低成本实现。
| 对比维度 | 热备 | 温备 | 冷备 |
|---|---|---|---|
| 接管速度 |
秒级 | 几十秒到分钟级 | 分钟到小时级 |
| 数据丢失量 | 几乎为零 | 丢失最近几分钟数据 | 丢失备份之后全部数据 |
| 硬件成本 | 最高,需共享存储或实时同步 | 中等,需定期同步链路 | 最低,普通备份盘即可 |
| 典型业务 | 核心数据库、交易系统 | 中大型门户、OA系统 | 归档、备份仓、测试环境 |
主备服务器架构怎么搭配?三种常见拓扑
确定了主备策略,接下来要看数据怎么同步,架构层面主流的搭配方式有三种,分别解决不同场景的痛点。
共享存储型主备
两台服务器接入同一个存储阵列,数据库文件、应用数据全部放在共享存储上,备机不工作的时候,只是“看着”存储,主机挂了,备机只需要把文件系统挂载起来,数据天然一致。
优点是切换后数据绝对一致,没有同步滞后的问题,缺点是存储阵列成了新的单点,存储坏了,两台机器一起趴窝,部署上需要两套光纤交换机或万兆网卡,成本不低。
数据镜像型主备
备机有自己独立的硬盘,通过软件在块设备层面实时同步主机的数据,典型代表是DRBD,配合LVM和文件系统使用,配置时先把DRBD设备做成主备资源,再在上面创建文件系统挂载给高可用资源组。
优点是摆脱了共享存储的机房布线限制,两台服务器放在不同机柜甚至不同楼层都行,缺点是实时同步会占用大量带宽,如果业务写入频繁,同步链路会成为性能瓶颈。
远程容灾型主备
备机放在异地机房,数据走异步复制,延迟可能到分钟级,这属于“大主备”概念,用来防范机房级别的灾难,而不是单台服务器故障,规划时要先算清楚专线带宽和时延,否则数据同步跟不上业务写入速度。
服务器主备切换机制,心跳断了之后怎么办
主备方案能不能在关键时刻顶上,全靠切换机制设计得是否严谨,整个过程可以拆成三环:检测、仲裁、接管。
心跳检测:主备之间那根探针
心跳线是两台服务器之间的专用物理链路,一般用网线直连或串口线连接,软件层面,每台机器会定时向对方发送存活报文,判断标准不只是主机通不通,更要看业务端口和关键进程是否正常。
具体配置时,Keepalived的vrrp_instance里设置virtual_ipaddress,配合track_script监控业务端口,如果检测到异常,优先级高的节点就会抢占VIP,业内专家指出,多数误切换不是硬件故障,而是健康检查脚本写得不够细,比如只检查了端口没检查子进程。
脑裂:两台主机的夺位大战
最危险的情况是心跳线断了,但两台服务器都活着,此时双方都认为对方挂了,于是同时接管资源、同时写字,数据瞬间损坏,行业共识认为,预防脑裂最常用的方法是引入第三方仲裁,比如共享仲裁盘或存储锁。
实际部署中,STONITH(Shoot The Other Node In The Head)是常见的强制隔离手段,把疑似故障的那台机器直接断电或重启,确保同一时刻只有一台机器在写数据,没有仲裁机制的主备方案,相当于把安全绳剪断了。
切换动作:VIP漂移与服务拉起
确认主机故障后,备机按顺序执行三件事:接管虚拟IP、挂载文件系统、启动服务,客户端访问的还是同一个IP,但后台已经换了一台机器,以Keepalived为例,主备各自配置不同优先级,主机挂了之后备机拿到VIP并执行notify脚本,自动拉起Nginx或数据库进程。
服务器主备方案怎么选:看业务、看预算、看机房
选哪种主备,本质上是在回答一个问题:业务能承受多长的停机时间,以及能承受多少数据损失,先定这两个数字,再谈方案。
核心数据库:热备加半同步复制
数据库是主备需求最迫切的场景,MySQL推荐方案是半同步复制加MHA或Orchestrator,主库故障时备库基本不落后,配合VIP漂移实现秒级切换,Oracle环境如果不想用RAC,可以用两台物理机加共享存储做热备,切换后数据绝对一致。
Web前端:Keepalived加Nginx
静态页面无状态,挂了直接切,不需要复杂的数据同步,两台机器跑一样的配置,VIP在Keepalived之间漂移,成本低、见效快,这类场景不需要共享存储,每台机器本地磁盘就够了。
文件类业务:冷备加定期增量
办公文件、历史归档这类业务,掉几个小时的数据完全能接受,没必要长期养一台时刻待命的热备机,每天凌晨跑一次rsync增量同步,配合系统盘镜像,已经覆盖绝大多数故障场景,多数小企业在成本压力下,最终都会先从这里起步。
服务器主备方式有哪些常见问题
Q1:服务器主备和双活是一回事吗?
不是,主备是“一主一备”,备机平时不承担业务流量,切换后成为新主,双活是两台同时承担读写,故障后另一台负载自然变大,不需要切换,双活的架构复杂度高得多,网络和存储都要成环设计,适合对资源利用率有极致要求的大型系统。
Q2:服务器主备方案要花多少钱?
成本取决于软件许可、存储类型和机房带宽,开源组合Keepalived加DRBD只有硬件和运维成本,商业HA软件按节点收费,共享存储型方案比数据镜像型贵,因为阵列和光纤交换机本身不便宜,云服务器主备基本是软件层面的费用,底层冗余交给云平台,总体来看,从几千块的软件授权到几十万的整体方案都存在,按业务量级规划即可。
Q3:云服务器也能做主备吗?
能,云上主备常用的手段是负载均衡挂多台后端、云盘快照加跨可用区同步,相当于把底层网络和硬件冗余交给云厂商,你只需要把应用做成无状态,或依赖云数据库自带的备库能力,云主机故障时可以用快照重建。
无论选哪种主备方式,最终目标都是把停机时间压缩到业务能接受的范围,先定RTO和RPO,再挑热备还是冷备,这个顺序千万别搞反。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/714157.html





