基于 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
相关推荐
EMTime19 小时前
Docker运行OpenWRT
运维·docker·容器
lolo大魔王20 小时前
Linux 文件系统超全面详解(原理、结构、挂载、分区、inode、日志、管理命令)
linux·运维·服务器
磊 子21 小时前
详细讲解一下epoll
linux·io·epoll·io多路复用
printfLILEI1 天前
php中的类与对象以及反序列化
linux·开发语言·php
zyl837211 天前
Docker 使用手册
运维·docker·容器
古月方枘Fry1 天前
MGRE实验
运维·服务器
叠叠乐1 天前
redmi k90 pro max 强解BL,刷海外rom, 并刷入sukisu ultra
linux
stolentime1 天前
FreeDomain 本地开发环境快速搭建指南
运维·服务器·网络
xiaoye-duck1 天前
《Linux系统编程》Linux 进程间通信之管道基础解析:从匿名管道原理到基于管道的进程池实现
linux