在多台云主机之间同步数据,有多种成熟方案可选,根据实时性、数据量、复杂度等需求,可选择以下方法:
1.rsync + SSH (增量同步)
适用场景:定期备份或非实时同步。
优点:只传输差异部分,节省带宽;支持加密(SSH)。
操作步骤:
# 手动同步(从主机A推送到主机B) rsync -avz -e "ssh -p 22" /源目录/ user@主机B_IP:/目标目录/ # 定时同步(配置cron任务) crontab -e # 每30分钟同步一次 */30 * * * * rsync -avz -e ssh /源目录/ user@主机B_IP:/目标目录/
密钥配置:使用SSH密钥免密登录,提升安全性。
适用场景:需要近实时同步(秒级延迟)。
原理:监控文件系统事件(inotify),触发rsync。
配置示例(/etc/lsyncd.conf
):
settings { logfile = "/var/log/lsyncd.log", statusFile = "/tmp/lsyncd.status" } sync { default.rsync, source = "/data/", target = "user@主机B_IP:/backup/", rsync = { compress = true, archive = true, rsh = "ssh -p 22 -i /home/user/.ssh/id_rsa" } }
适用场景:多主机共享同一存储目录。
优点:集中管理,无需同步。
配置:
服务端(主机A):
apt install nfs-kernel-server echo "/shared_dir 主机B_IP(rw,sync,no_subtree_check)" >> /etc/exports exportfs -a
客户端(主机B):
apt install nfs-common mount -t nfs 主机A_IP:/shared_dir /local_mount
2.GlusterFS / Ceph (分布式文件系统)
适用场景:大规模集群,高可用需求。
优点:数据冗余、横向扩展、自动故障转移。
简化流程:
# 以GlusterFS为例(3节点) # 所有节点: apt install glusterfs-server gluster peer probe 主机B_IP gluster peer probe 主机C_IP # 创建分布式卷 gluster volume create gv0 replica 3 主机A_IP:/brick 主机B_IP:/brick 主机C_IP:/brick force gluster volume start gv0 # 客户端挂载 mount -t glusterfs 主机A_IP:/gv0 /mnt
适用场景:代码、配置文件等文本数据。
操作:
# 初始化仓库 cd /data && git init git remote add origin git@github.com:user/repo.git # 提交并推送 git add . && git commit -m "Update" git push origin main # 其他主机拉取 git pull origin main
1.AWS DataSync / Azure File Sync / 阿里云数据传输
优点:全托管服务,自动处理网络优化、加密。
示例(AWS):
- 创建DataSync任务,选择源(S3/EFS)和目标(EC2实例)。
2.对象存储同步(OSS/COS/S3)
流程:
- 主机A上传文件到云存储桶(如AWS S3)。
- 主机B通过定时任务或事件通知(SQS)拉取数据。
- 工具:aws s3 sync
(AWS CLI)、rclone
(跨平台)。
1.主从复制(MySQL/PostgreSQL)
MySQL配置:
-- 主库 GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'从库IP' IDENTIFIED BY 'password'; SHOW MASTER STATUS; -- 记录File和Position -- 从库 CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; START SLAVE;
2.Redis Sentinel / Cluster
- 实现高可用和自动数据分片同步。
少量文件实时同步 →lsyncd
或inotify+rsync
共享存储 → NFS(小规模)或 GlusterFS/Ceph(大规模)
云环境优化 → 云服务商工具(如AWS DataSync)
代码/配置同步 → Git
数据库同步 → 内置复制机制(如MySQL主从)
1、数据传输加密:使用SSH(rsync)、TLS(数据库)、HTTPS(云存储)。
2、访问控制:配置防火墙(仅允许同步主机IP)、最小权限原则。
3、敏感数据:避免同步明文密码,使用Vault等密钥管理工具。
根据场景组合使用上述方案,可高效安全地实现多主机数据同步。
文章摘自:https://idc.huochengrm.cn/zj/13208.html
评论