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小时左右即可完成全量同步,全程无需人工值守。
- 先修正两边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参数可以大幅提升跨网传输的吞吐量。
- 配置带自动重试、断点续传的同步任务
先安装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
相关产品推荐
相关产品推荐

