You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Files NFS向AWS EFS传输11TB数据中断解决方案

rsync任务反复中断的核心原因
  • 挂载配置错误:默认NFS挂载多为soft模式,跨云网络出现偶发抖动、延迟超过默认超时阈值时,NFS客户端会直接向应用层返回IO错误,rsync遇到IO错误会直接终止进程。同时执行命令时仅加&放入后台,未做会话脱离,SSH连接一旦断开,系统会发送SIGHUP信号直接杀掉rsync进程。
  • 长连接被中间设备回收:跨云传输路径上的NAT网关、云网络边界设备默认会回收空闲时长超过15分钟的TCP连接,rsync扫描海量文件目录、等待IO响应时如果没有流量传输,NFS连接会被静默掐断,导致进程挂死或退出。
  • 资源不足触发进程被杀:11TB数据如果包含大量小文件,rsync启动阶段会全量扫描两端存储构建文件索引,内存占用会随文件量线性上涨,若EC2实例内存规格不足,会被系统OOM机制直接终止,且此前执行命令未留存日志,完全无法捕获报错信息。
  • 存储性能限流触发超时:如果EFS使用默认突发性能模式,初始突发信用耗尽后带宽会跌到极低水平,Azure Files NFS标准层也有单共享带宽上限,存储端触发节流后IO请求长时间无响应,最终导致rsync超时退出。另外第二次执行时加的--whole-file参数会强制全量传输所有文件,完全失效断点续传能力,中断后重传成本极高,反而拉长了传输周期提升了中断概率。
可直接落地的跨云NFS迁移方案

全程不需要额外付费工具,操作门槛极低,11TB数据按1Gbps跨网带宽计算30小时左右即可完成全量同步,全程无需人工值守。

  1. 先修正两边NFS挂载参数,从底层降低连接异常概率
    先卸载现有挂载:
umount /mnt/shared /mnt/efs

重新挂载Azure Files NFS,使用硬挂载+大传输块配置:

mount -t nfs -o vers=4.1,hard,timeo=600,retrans=2,noatime,nodiratime,rsize=1048576,wsize=1048576 <你的Azure Files NFS挂载地址>/<共享名称> /mnt/shared

重新挂载AWS EFS,使用同套可靠性参数:

mount -t nfs4 -o nfsvers=4.1,hard,timeo=600,retrans=2,noatime,nodiratime,rsize=1048576,wsize=1048576 <你的EFS挂载DNS地址>:/ /mnt/efs

硬挂载模式下网络出现波动时,NFS客户端会持续重试IO请求不会直接返回错误,从根源上避免偶发网络抖动导致rsync退出;1MB的rsize/wsize参数可以大幅提升跨网传输的吞吐量。

  1. 配置带自动重试、断点续传的同步任务
    先安装screen工具用于会话保持,避免SSH断开影响任务:
# RHEL/CentOS系列执行
yum install screen -y
# Debian/Ubuntu系列执行
apt install screen -y

创建名为migrate的独立会话:
screen -S migrate
在会话中创建同步脚本migrate.sh,内容如下:

#!/bin/bash
LOG_PATH="/var/log/nfs_migrate.log"
echo "迁移任务启动: $(date)" > $LOG_PATH
while true
do
  rsync -avh --partial --no-whole-file --log-file=$LOG_PATH /mnt/shared/ /mnt/efs/
  if [ $? -eq 0 ]
  then
    echo "全量迁移完成: $(date)" >> $LOG_PATH
    exit 0
  fi
  echo "传输中断,10秒后自动续传: $(date)" >> $LOG_PATH
  sleep 10
done

给脚本加执行权限后启动:

chmod +x migrate.sh
./migrate.sh

按Ctrl+A+D即可退出screen会话,后续随时可以执行screen -r migrate回到会话查看进度,日志存在/var/log/nfs_migrate.log可随时排查问题。
3. 配套优化项(可选,大幅提升传输效率)

  • EC2实例选择和EFS同可用区的规格,至少4核8G配置,如果单目录文件量超过10万,可按一级子目录拆分分批同步,降低rsync扫描时的内存占用,避免OOM。
  • 迁移期间临时将EFS调整为预置吞吐量模式、Azure Files临时升级到高级层,避免存储端性能节流,迁移完成后再切回原配置节省成本。
  • 全量同步完成后,执行rsync -avnc /mnt/shared/ /mnt/efs/做一致性校验,命令无输出即代表两端文件完全一致,无遗漏或损坏。

内容的提问来源于stack exchange,提问作者Yagel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 18:43:01