基于 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
相关推荐
bloglin999992 小时前
scp、rsync远程文件同步
linux·运维·服务器
迦南的迦 亚索的索2 小时前
LINUX环境
linux·运维·服务器
yuanjj882 小时前
linux下调试域格CLM920 NC5等9x07平台模块 QMI拨号
linux·运维·服务器
IMPYLH3 小时前
Linux 的 printenv 命令
linux·运维·服务器·bash
SilentSamsara3 小时前
SSH 远程管理:密钥登录 + 隧道转发,一次性配置好
linux·运维·服务器·ubuntu·centos·ssh
LN花开富贵3 小时前
【ROS】鱼香ROS2学习笔记一
linux·笔记·python·学习·嵌入式·ros·agv
疏星浅月3 小时前
数据对齐的底层原理与性能优化
linux
Jurio.3 小时前
本机开发 + 多机执行的极简远端运行工具
linux·git·python·github·远程工作
阿巴~阿巴~4 小时前
Git版本控制完全指南:从入门到实战(简单版)
linux·服务器·git