来自AI助手的总结
先搭好NFS和Rsync基础链路,再部署Sersync实现实时同步

一、先看清三台机器分别扮演什么角色
这里在“极速上手指南”里给出了完整环境说明:
| 主机 | 角色 |
|---|---|
harbor01 |
Rsync 服务端 |
nfs01 |
Rsync 客户端 / NFS 服务端 |
gitlab-01 |
NFS 客户端 |
从这个角色划分可以看出,整个实时同步链路分成三段:
1、gitlab-01 把文件写入 NFS 挂载目录
2、文件实际落在 nfs01 的共享目录 /data/
3、nfs01 上的 Sersync 再把变化通过 rsync 推送到 harbor01
二、先部署 Rsync 服务
2.1 Rsync 服务端部署
检查或安装 rsync
rpm -qa | grep rsync
yum install -y rsync
配置 /etc/rsyncd.conf
配置重点如下:
fake super = yes
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = zq created
path = /backup
[nfsbackup]
comment = zq created
path = /nfsbackup/
和普通备份场景相比,这里特别多了一个模块:
[nfsbackup]
它专门用于承接后面 Sersync 从 NFS 侧推送过来的实时同步数据。
检查进程和端口
ps -ef | grep rsync
ss -lntup | grep rsync
默认监听端口是:
873
创建运行用户和密码文件
useradd -s /sbin/nologin -M rsync
echo 'rsync_backup:111' > /etc/rsync.password
chmod 600 /etc/rsync.password
创建共享目录并启动服务
mkdir /nfsbackup/
chown -R rsync.rsync /nfsbackup/
systemctl start rsyncd && systemctl enable rsyncd
本地测试
rsync -av /etc/hostname rsync_backup@192.168.1.67::nfsbackup
ll /nfsbackup/
只要能看到文件出现在 /nfsbackup/,说明这个同步目标模块已经能正常工作。
2.2 Rsync 客户端部署
检查或安装 rsync
rpm -qa | grep rsync
yum install -y rsync
做基础推送测试
rsync -av /etc/hosts rsync_backup@192.168.1.67::nfsbackup
配置免密文件
echo '111' > /etc/rsync.client
chmod 600 /etc/rsync.client
然后就可以通过:
rsync -avz /etc/passwd rsync_backup@192.168.1.67::nfsbackup --password-file=/etc/rsync.client
实现免交互推送。
三、再部署 NFS 服务
3.1 NFS 服务端部署
安装依赖
yum -y install rpcbind nfs-utils
启动服务
systemctl enable rpcbind && systemctl start rpcbind
systemctl enable nfs-server && systemctl start nfs-server
创建共享目录
mkdir -p /data/
chmod 666 /data/
配置 /etc/exports
/data/ 192.168.1.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)
让配置生效
exportfs -r
systemctl reload nfs-server
3.2 NFS 客户端部署
安装依赖
yum -y install rpcbind nfs-utils
先验证服务端导出状态
showmount -e 192.168.1.66
如果输出里能看到:
/data 192.168.1.0/24
说明服务端已经正确导出共享目录。
创建挂载目录并挂载
mkdir /upload/
mount -t nfs 192.168.1.66:/data/ /upload/
验证挂载结果
df -h /upload/
当远端 /data 显示已经挂载到 /upload,就说明 NFS 这条链路已经打通。
四、为什么要先搭好 Rsync 和 NFS 再部署 Sersync
Sersync 本身并不负责:
- 提供共享存储
- 接收最终同步数据
它只负责监控目录变化并触发 rsync。
因此在它启动之前,必须先保证两件事已经成立:
1、NFS 的共享目录已经可用
2、Rsync 的远端接收模块已经可用
否则就算 Sersync 启动成功,也没有完整链路可以走。
五、这套基础环境的最小联通路径
在正式部署 Sersync 之前,至少要确认下面两段路径都已经通:
5.1 NFS 路径
gitlab-01 -> 挂载 /upload -> nfs01:/data
5.2 Rsync 路径
nfs01 -> rsync 推送 -> harbor01::nfsbackup
只有这两段都通,最后的实时同步闭环才能成立。
六、小结
实时同步环境搭建的核心,不是在第一步就启动 Sersync,而是先把底层两条基础链路准备好:
- 一条是 NFS 共享链路
- 一条是 Rsync 推送链路
等这两部分都验证无误后,后面的 Sersync 配置和联调测试才会顺利得多。这也是实时同步服务真正稳定运行的前提。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END







暂无评论内容