基于 NFS 与 Rsync 实现跨服务器 Seafile 数据平滑迁移实战

在分布式存储或文件同步场景中,经常需要将老服务器上的海量数据无缝迁移至新服务器。本文以 Seafile 数据迁移为例,详细记录通过搭建 NFS 共享存储,并结合 Rsync 进行后台数据传输的完整实操过程。

一、服务器A(新服务器)配置 NFS 服务端

新服务器作为数据的接收端,需要安装并配置 NFS 服务,将指定目录共享给老服务器。

1. 安装 NFS 并准备目录

首先关闭防火墙避免端口拦截,并创建用于接收数据的同步目录:

复制代码
systemctl stop firewalld
df -h
mkdir -p /home/sync-data

安装 NFS 工具包,并启动服务:

复制代码
yum install nfs-utils 
systemctl status nfs-server
systemctl start nfs-server

2. 配置 NFS 共享规则

编辑 NFS 配置文件,开放同步目录的读写权限:

复制代码
vim /etc/exports

在文件中添加以下配置(允许所有IP访问,关闭 root 压缩,保证同步权限一致):

复制代码
/home/seafile-data  *(rw,sync,no_subtree_check,no_root_squash)

3. 生效配置并测试

刷新 NFS 配置使其生效,并验证共享目录是否发布成功:

复制代码
exportfs -ra
showmount -e

进入本地同步目录,创建一个测试文件,用于后续挂载验证:

复制代码
cd /home/sync-data
vim 1.txt
# 随便输入内容保存退出

二、服务器B(老服务器)配置 NFS 客户端并同步

老服务器作为数据发送端,通过挂载新服务器的 NFS 目录,将本地 Seafile 数据推送过去。

1. 安装 NFS 客户端并验证连通性

安装必要的依赖包并启动 rpcbind 服务:

复制代码
yum install nfs-utils rpcbind
systemctl start rpcbind

检查是否能正常获取到新服务器(172.62.10.92)的共享列表:

复制代码
showmount -e 172.62.10.92

2. 挂载远程 NFS 目录

创建本地挂载点,并将新服务器的目录挂载到本地:

复制代码
mkdir /sync-data
mount 172.62.10.92:/home/sync-data /sync-data
df -h

3. 挂载互通测试

进入挂载目录,查看并读取在服务器A中创建的测试文件,确认双向通信正常:

复制代码
cd /seafile-data/
ll
cat 1.txt

4. 执行 Rsync 后台数据同步

将老服务器本地的 Seafile 真实数据目录,通过 Rsync 推送到挂载的 NFS 目录中。使用 nohup 或 & 将任务放至后台运行,避免断开终端导致传输中断:

复制代码
rsync -avz /data/storage /sync-data/ > 1.txt 2>&1 &

5. 实时监控同步进度

通过 tail 命令动态查看输出日志,掌握当前的文件传输状态:

复制代码
tail -f 1.txt
相关推荐
在角落发呆5 小时前
工具配置备份步骤:从手动备份到自动化方案
运维·windows·自动化
_upupup6 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
百度一下吧6 小时前
Nginx 使用手册:从安装配置到实战部署
运维·nginx
JeJe同学7 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR7 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
回眸&啤酒鸭7 小时前
【回眸】自动化白盒测试落地实战指南
运维·自动化·log4j
闲云野鹤在人间8 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
一个风轻云淡9 小时前
GCC 和 GDB命令简单解读
java·linux·前端
H.莓飛9 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
资料库019 小时前
Linux 8个常见运维故障排查
java·linux·运维