服务器跨区域容灾,双站点异地备份:服务器跨区域容灾

服务器跨区域容灾的核心目标是:当主站点所在区域发生断电、断网或机房故障时,备用站点能快速接管,且数据丢失尽量少。
对零基础用户来说,最实用的起步方式是先搭建双站点异地备份,即主站数据实时或定时同步到异地备站。
下面从准备到验证,一步步说明如何操作。

准备两台服务器和网络环境

搭建双站点异地备份前,需要准备以下资源:

  • 两台处于不同地理区域的服务器,例如一台在华东,一台在华南。建议系统版本保持一致,本文以 CentOS 7 和 Ubuntu 20.04 为例,其他发行版命令略有差异。
  • 两台服务器之间网络互通,安全组或防火墙放行 SSH 端口(默认 22)和 rsync 默认端口(873,若使用 SSH 隧道则只需 22)。
  • 主站服务器安装 rsync,备站服务器安装 rsynclsyncd(如需实时同步)。

安装命令(以 CentOS 为例):

yum install -y rsync lsyncd

Ubuntu 使用:

apt update && apt install -y rsync lsyncd

在两台服务器上分别创建用于同步的系统用户,例如 backupuser,并配置 SSH 免密登录。
在主站执行:

ssh-keygen -t rsa
ssh-copy-id backupuser@备站IP

验证免密登录:ssh backupuser@备站IP 能直接进入即成功。

用 rsync 完成首次全量同步

首次同步数据量较大,建议在业务低峰期执行。
在主站运行:

rsync -avz --delete /var/www/html/ backupuser@备站IP:/backup/html/

参数说明:-a 归档模式保留权限,-v 显示过程,-z 压缩传输,--delete 删除备站多余文件,保持与主站一致。
如果希望同步更安全,可以加上 -e "ssh -p 22" 指定 SSH 端口。

执行完成后,登录备站检查 /backup/html/ 目录,确认文件数量与主站一致。
可以用 du -sh /var/www/htmldu -sh /backup/html 对比大小,误差在合理范围内即可。

首次全量同步完成后,后续增量同步才会更快。 如果数据量超过 100GB,建议先打包传输再解压,避免中途断线重传。

配置 lsyncd 实现准实时同步

如果希望主站文件一有变化就同步到备站,可以用 lsyncd 监控目录。
在主站创建配置文件 /etc/lsyncd.conf

settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd.status",
    inotifyMode = "CloseWrite",
    maxProcesses = 2,
}

sync {
    default.rsyncssh,
    source = "/var/www/html/",
    host = "backupuser@备站IP",
    targetdir = "/backup/html/",
    exclude = { ".git", "*.tmp" },
    rsync = {
        binary = "/usr/bin/rsync",
        archive = true,
        compress = true,
        verbose = true,
    },
    ssh = {
        port = 22,
    },
    delay = 5,
}

保存后启动服务:

systemctl start lsyncd
systemctl enable lsyncd

检查日志 tail -f /var/log/lsyncd/lsyncd.log,看到 Normal 状态即正常。
在主站新建一个测试文件,几秒后到备站查看是否出现,出现则实时同步生效。

lsyncd 适合文件数量多、单文件不大的场景;
如果单文件超过 1GB 或目录极深,建议改用定时 rsync 加 inotify 脚本,减少资源占用。

避坑指南:权限、防火墙与数据一致性

常见问题一:同步报错 Permission denied
原因是备站目标目录权限不足,确保 backupuser/backup/html/ 有写权限,可执行 chown -R backupuser:backupuser /backup/html

常见问题二:防火墙拦截 rsync 端口。
如果直接使用 rsync 守护进程模式,需放行 873 端口;
本文使用 SSH 隧道,只需放行 22 端口。
检查命令:firewall-cmd --list-portsufw status

常见问题三:数据库文件同步不一致。
直接同步 MySQL 数据目录可能导致文件损坏。
正确做法是先 mysqldump 导出 SQL 文件,再同步 SQL 文件到备站,在备站导入。
导出命令:

mysqldump -u root -p --all-databases > /backup/all.sql

跨区域容灾中,数据一致性比同步速度更重要。 建议对数据库采用“导出加传输”方式,对静态文件采用实时同步。

验证容灾切换是否可用

备份完成不等于容灾可用。
需要定期做切换演练:

  1. 在备站停止同步服务,模拟主站故障。
  2. 修改本地 hosts 或 DNS 解析,将域名指向备站 IP。
  3. 启动备站 Web 服务(如 Nginx),访问页面检查是否正常显示。
  4. 在备站尝试写入数据,确认业务可运行。
  5. 演练结束后,恢复主站并重新同步差异数据。

每次演练后记录切换耗时和数据丢失量。如果切换超过 30 分钟或丢失超过 5 分钟数据,需要优化同步频率或增加带宽。

常见疑问

双站点异地备份需要专线吗? 不强制。
普通公网加 SSH 加密即可,但跨区域延迟高时建议压缩传输或限制同步时段。

rsync 和 lsyncd 能同时用吗? 可以。
lsyncd 负责实时增量,rsync 定期全量校验,两者互补。

备站需要多大磁盘? 至少与主站数据量相同,建议预留 20% 余量用于临时文件和版本回滚。

跨区域容灾不是一次配置就结束,建议每季度检查同步日志、磁盘空间和切换脚本。
如果你正在搭建双站点异地备份,先按本文完成首次全量同步和实时同步,再通过切换演练验证效果,遇到异常优先检查权限和防火墙。

分享到:
上一篇
服务器快照和备份区别,两种方案搭配使用
下一篇
服务器系统盘和数据盘分离,故障保护方案
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意