配置数据传输中转节点后,您还要使用迁移工具迁移数据至阿里云文件存储NAS。本文介绍如何通过迁移工具将非阿里云的数据迁移至文件存储NAS,并实现上传与下载。
使用SFTP客户端迁移数据
当有少量文件需要一次性上传和下载时,建议您在本地系统上安装使用SFTP客户端来完成。此方案具有以下优点:
- 为本地操作系统安装SFTP客户端。
SFTP的客户端工具有多种版本,以下示例中使用的是FileZilla,请选择适合您本地操作系统的版本
下载安装SFTP客户端。
- 建立SFTP客户端与中转节点ECS之间的连接。
- 打开FileZilla客户端,按照如下说明进行配置。单击Quickconnect,建立连接。
在本地客户端与ECS服务端的连接建立之后,左侧区域会显示本地文件系统,右侧区域会显示服务端ECS的文件系统。

参数 |
说明 |
Host |
中转节点ECS的公网IP地址。例如,192.0.2.1。 |
用户名 |
中转节点ECS的用户名。例如,root。 |
密码 |
中转节点ECS的登录密码。例如,root登录密码。 |
Port |
SFTP端口号,默认为22。 |
- 在页面右侧区域,设置Remote site中的路径为挂载了NAS文件系统的路径(例如/mnt),单击回车即可查看到NAS中的文件列表。
- 上传下载数据。
- 将左侧区域中的文件或目录拖拽到右侧区域,即完成数据上传。
- 将右侧区域中的文件或目录拖拽到左侧区域,即完成数据下载。
使用rsync命令行工具迁移数据
当有大量文件上传和下载或需要频繁上传和下载的任务时,建议您在本地系统安装使用rsync命令行工具执行上传下载任务,此方案具有以下优点:
- 上传下载后的文件元数据不变(包括属主及权限信息)。
- 支持数据增量同步。
- 本地Linux或macOS系统可配置crontab向云上NAS自动备份数据。
- 安装rsync工具。
- 上传数据。
执行以下命令,将本地目录以增量同步的方式,上传到阿里云NAS。
rsync -avP DirToSync/ root@192.0.2.0:/mnt/DirToSync/
命令中的参数请根据实际值修改,参数含义如下:
参数 |
说明 |
DirToSync |
需要上传的本地目录名。 |
root |
上传目标NAS文件系统目录的属主。 |
192.0.2.0 |
已挂载文件存储NAS文件系统的Linux/Windows ECS公网IP。 |
/mnt |
ECS实例中用来挂载NAS的路径。 |
- 下载数据。
执行以下命令,从阿里云NAS下载数据到本地目录。
rsync -avP root@192.0.2.0:/mnt/DirToSync/ DirToSync/
- 可选:配置定时上传备份任务。
本地Linux或macOS操作系统,可以基于rsync命令,通过crontab配置定时上传备份任务。
- Linux操作系统
- 创建本地系统到ECS的无密码通道。具体操作,请参见通过密钥认证登录Linux实例。
执行以下命令,确认连接成功。
ssh -i ~/.ssh/ecs.pem root@1.2.3.4
说明 ~/.ssh/ecs.pem为密钥文件在本地的存储路径。
- 配置crontab。
执行
crontab -e
命令打开编辑器,配置定时上传任务,配置内容如下。
0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@192.0.2.0:/mnt/Documents/
这项crontab配置将会在每天23时0分把本机登录用户的Documents目录自动上传备份数据到阿里云NAS。您可以根据实际需求替换配置中的参数。
- macOS操作系统
- 为/usr/sbin/cron目录配置硬盘访问权限。
请进入系统设置,单击,单击解锁,单击+,选择Macintosh HD目录,按cmd+shift+.组合键显示隐藏目录,选择/usr/sbin/cron。
- 创建本地系统到ECS的无密码通道。具体操作,请参见通过密钥认证登录Linux实例。
执行以下命令,确认连接成功。
ssh -i ~/.ssh/ecs.pem root@1.2.3.4
说明 ~/.ssh/ecs.pem为密钥文件在本地的存储路径。
- 配置crontab。
执行
crontab -e
命令打开编辑器,配置定时上传任务,配置内容如下。
0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@1.2.3.4:/mnt/Documents/
这项crontab配置将会在每天23时0分把本机登录用户的Documents目录自动上传备份数据到阿里云NAS。您可以根据实际需求替换配置中的参数。
使用Robocopy工具迁移数据
Robocopy是Windows系统自带的目录复制命令,该功能可以创建两个文件结构完全的镜像副本而不复制任何不需要的重复文件,同时还允许您保留所有相关文件信息,包括日期、时间戳等等。同时您也可以通过在windows
ECS上安装最新的Python程序配置migration.py脚本实现海量数据迁移。
- 登录用于迁移数据的阿里云ECS实例。
- 迁移数据。
执行以下命令,将源文件系统(Z盘)中的数据迁移到目标文件系统(Y盘)中。
robocopy Z:\ Y:\ /e /w:5 /z /mt:32
重要字段说明如下,请根据实际情况替换。
参数 |
说明 |
/mt |
设置并发的线程数。默认值为8。
取值为1~128。
本文示例32个线程进行多线程复制。
|
/w |
设置每次错误重试的间隔秒数。 |
/z |
开启断点续传。 |
/e |
拷贝所有子目录(包括空目录)。 |
/copyall |
复制所有的文件信息。包含:
- 数据
- 属性
- 时间戳
- 访问控制列表(ACL)
- 所有者信息
- 审计信息
|
- 检查迁移结果。
迁移完后,执行以下Robocopy命令,检查目标文件系统是否与源文件系统一致。
ROBOCOPY Z:\ Y:\ /e /l /ns /njs /njh /ndl /fp /log:reconcile.txt
重要字段说明如下,请根据实际情况替换。
- /e:仅列出目录(包括空目录)。
- /l:不修改或复制文件,仅记录差异。
- /fp:指在日志中包括文件的完整路径(仅在省略/ndl时有必要)。
- /ns:指不在日志中包括文件大小。
- /ndl:指不在日志中包括文件夹。
- /njs:指不包括作业摘要。
- /njh:不包括作业头。
- /log:reconcile.txt:将迁移结果写入reconcile.txt日志中。如果已存在,将覆盖现有日志。
使用IIS FTP迁移数据
当有少量文件需要一次性上传和下载时,建议您在本地系统配置FTP客户端来完成,此方案具有以下优点:
在ECS上配置IIS FTP服务以及在本地系统配置FTP客户端,具体配置方式请参见设置Windows IIS Web服务。
说明
- 需在VPC安全组打开对应的FTP TCP端口。
- 您也可以配置其他FTP服务端和客户端进行公网上传下载数据。
- 弹性公网IP对入方向流量不收费,仅对出方向流量收费。也就是说,从公网上传数据到NAS不会收取流量费用,而从NAS下载数据则会收取流量费用。计费详情请参见弹性公网IP按量付费。
附录:使用fpsync命令行工具迁移数据
- 下载并安装fpsync工具。
wget -N https://github.com/martymac/fpart/archive/fpart-1.1.0.tar.gz -P /tmp
tar -C /tmp/ -xvf /tmp/fpart-1.1.0.tar.gz
cd /tmp/fpart-fpart-1.1.0
sudo yum install -y automake libtool
autoreconf -i
./configure
make
sudo make install
sudo yum install parallel -y
printf "will cite" | parallel --bibtex
sudo yum install -y rsync
- 拷贝整个文件目录。
fpsync -n 10 -f 10000 /data/src/ /data/dst/
相关文档
如果您需要从本地数据中心频繁读写NAS上的大量数据,则需要创建网络专线,从数据中心直接挂载NAS进行访问。更多信息,请参见本地数据中心访问文件系统
如果您需要上传大量数据到NAS,而公网访问ECS的带宽无法满足您的需求,建议先上传数据到OSS,然后将OSS数据迁移到NAS。具体操作,请参见上传文件和迁移实施。
后续步骤
数据上传后,您可以在业务所属的ECS或容器上挂载NAS文件系统,共享访问NAS文件系统上的数据。
以ECS为例,您可以用Linux系统挂载NFS文件系统或Windows系统挂载SMB文件系统,然后就像访问本地数据一样访问NAS上的文件数据。具体操作,请参见Linux系统挂载NFS文件系统和Windows系统挂载SMB文件系统。
您也可以在云上搭建业务应用,在多台计算节点上通过程序大量读写NAS上的数据,例如
使用Nginx代理服务器代理阿里云NAS或通过Windows IIS服务访问阿里云NAS。
如果您不再通过中转节点ECS上传或下载数据,可以将该ECS实例释放。具体操作,请参见释放实例。