基于 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
相关推荐
草莓熊Lotso6 小时前
LangChain从入门到精通:环境搭建→核心能力→LCEL链式编程全实战
android·java·linux·服务器·langchain
eastyuxiao14 小时前
思维导图拆解项目范围 3 个真实落地案例
大数据·运维·人工智能·流程图
GanGanGanGan_14 小时前
RustDesk 安装指南 — Rocky Linux 9 + XFCE X11
linux·运维·centos
bzmK1DTbd15 小时前
Git版本控制:Java项目中的分支管理与合并策略
java·开发语言·git
南境十里·墨染春水18 小时前
linux学习笔记 网络编程——Socket入门与TCP客户端/服务器实现
linux·服务器·网络
OYangxf18 小时前
Git基础概念
git
Sirens.18 小时前
twikoo:从MongoDB Atlas到本地部署
运维·服务器
Meya112718 小时前
别再人工硬扛机房管理!智能 U 位系统,让机房管理一键数字化
大数据·运维
DFT计算杂谈19 小时前
自动化脚本一键绘制三元化合物相图
java·运维·服务器·开发语言·前端·python·自动化
Yupureki19 小时前
《Linux网络编程》6.UDP原理
linux·运维·服务器·网络·udp