TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:

TOP云总站云服务器:https://topyun.vip/server/buy.html

TOP云C站云服务器:https://c.topyun.vip/cart

在云服务器环境中,实现多台服务器之间的文件同步是常见的需求,尤其是在负载均衡集群分布式存储多节点应用部署场景下。以下是几种主流的文件同步方案,涵盖不同场景和工具:


一、基于 rsync 的文件同步

1. rsync 简介

rsync 是 Linux 系统自带的文件同步工具,支持增量同步(只传输变化的部分),效率高且配置简单。适合定期同步手动触发同步的场景。

2. 配置步骤(以两台服务器为例)

假设:

  • 源服务器(Server A):192.168.1.10,需要同步的目录为 /data/

  • 目标服务器(Server B):192.168.1.20,目标目录为 /data/

(1)在目标服务器(Server B)上配置免密登录

为了让源服务器能直接推送文件到目标服务器,需配置 SSH 免密登录:

# 在 Server A 上生成 SSH 密钥(如果尚未生成)
ssh-keygen -t rsa

# 将公钥复制到 Server B
ssh-copy-id root@192.168.1.20

测试免密登录:

ssh root@192.168.1.20

(2)在源服务器上执行 rsync 同步

rsync -avz --delete /data/ root@192.168.1.20:/data/
  • -a:归档模式(保留权限、时间戳等)

  • -v:显示详细输出

  • -z:压缩传输

  • --delete:删除目标服务器上源服务器不存在的文件(保持严格同步)

(3)定时同步(通过 cron)

如果需要定期同步,可以添加 cron 任务:

crontab -e

添加以下内容(例如每小时同步一次):

0 * * * * rsync -avz --delete /data/ root@192.168.1.20:/data/

3. 多服务器同步扩展

如果需要同步到多台服务器,可以:

  • 在源服务器上配置多个目标服务器的 IP,通过脚本循环执行 rsync。

  • 使用 parallel-rsync 或 lsyncd(见下文)实现更高效的同步。


二、基于 lsyncd 的实时同步

1. lsyncd 简介

lsyncd(Live Syncing Daemon)是一个轻量级的实时文件同步工具,基于 rsync 和 inotify(Linux 内核的文件监控机制)。适合需要近实时同步的场景(延迟通常在秒级)。

2. 配置步骤

(1)安装 lsyncd

# Ubuntu/Debian
sudo apt install lsyncd

# CentOS/RHEL
sudo yum install epel-release
sudo yum install lsyncd

(2)配置 lsyncd

编辑配置文件 /etc/lsyncd.conf:

settings {
    logfile = "/var/log/lsyncd.log",
    statusFile = "/var/log/lsyncd.status" }

sync {
    default.rsync,
    source = "/data/",
    target = "root@192.168.1.20:/data/",
    rsync = {
        archive = true,
        compress = true,
        delete = true },
    delay = 1 -- 延迟 1 秒后同步(避免频繁触发) }
  • delay:设置延迟时间(秒),避免文件频繁写入时触发过多同步。

(3)启动 lsyncd

sudo systemctl start lsyncd
sudo systemctl enable lsyncd

(4)多服务器扩展

如果需要同步到多台服务器,可以在 lsyncd.conf 中配置多个 sync 块,或使用脚本动态生成配置。


三、基于分布式文件系统(如 NFS、GlusterFS、Ceph)

1. NFS(Network File System)

适合中小规模集群,通过共享存储实现多服务器访问同一文件系统。

配置步骤:

  1. NFS 服务器上安装并配置 NFS:

    sudo apt install nfs-kernel-server  # Ubuntu/Debian
    sudo yum install nfs-utils         # CentOS/RHEL
  2. 共享目录(编辑 /etc/exports):

    /data 192.168.1.0/24(rw,sync,no_subtree_check)
  3. 客户端服务器上挂载 NFS:

    sudo mount -t nfs 192.168.1.10:/data /data

缺点:NFS 是单点架构,性能和高可用性有限。


2. GlusterFS 或 Ceph

适合大规模分布式存储,提供高可用性和冗余。

  • GlusterFS:简单易用,适合文件存储。

  • Ceph:功能强大,支持块存储、对象存储和文件存储。

配置较复杂,适合专业运维团队。


四、基于对象存储同步(如 AWS S3、阿里云 OSS)

如果文件可以存储在对象存储中,可以通过工具(如 rclone)实现多服务器同步到同一对象存储。

1. 使用 rclone 同步到 S3/OSS

(1)安装 rclone

# Ubuntu/Debian
sudo apt install rclone

# CentOS/RHEL
sudo yum install epel-release
sudo yum install rclone

(2)配置云存储

rclone config

按提示配置 AWS S3 或阿里云 OSS 的访问密钥和存储桶。

(3)同步文件

rclone copy /data remote:bucket-name --progress
  • remote:bucket-name 是配置的云存储名称。

优点:无需维护同步服务器,适合云原生架构。


五、基于版本控制工具(如 Git)

如果文件是代码或配置文件,可以使用 Git 实现同步。

配置步骤:

  1. 中央 Git 仓库(如 GitHub、GitLab)中托管文件。

  2. 在每台服务器上克隆仓库:

    git clone https://github.com/user/repo.git /data
  3. 通过 git pull 更新文件。

适用场景:适合配置文件或代码同步,不适合大文件或频繁更新的日志文件。


六、方案对比

方案适用场景同步方式复杂度实时性
rsync定期同步手动或 cron非实时
lsyncd近实时同步基于 inotify秒级
NFS共享存储直接挂载实时
GlusterFS/Ceph分布式存储分布式架构实时
对象存储(rclone)云原生上传到云存储可控
Git代码/配置版本控制非实时

七、推荐方案

  1. 中小规模集群

    • 使用 lsyncd 实现实时同步,或 rsync + cron 定期同步。

  2. 大规模分布式存储

    • 使用 GlusterFS 或 Ceph。

  3. 云原生架构

    • 使用对象存储(如 AWS S3、阿里云 OSS)+ rclone 同步。

  4. 代码/配置文件

    • 使用 Git 管理。



不容错过
Powered By TOPYUN 云产品资讯