本文介绍如何通过公网将本地数据上传至NFS文件系统,或者将NFS文件系统内的数据下载到本地。
配置ECS实例
在方案一:SFTP及方案二:rsync中,需要配置ECS作为中转节点从公网访问阿里云文件存储NAS。推荐您选择新购ECS实例挂载NAS作为中转节点,您也可以选择使用已有ECS挂载NAS作为中转节点。
说明 上传下载文件数据需要占用ECS公网带宽,建议您新购一台ECS实例专门负责文件数据的上传与下载,避免占用业务带宽。
- (推荐)使用新购ECS实例挂载NAS作为中转节点。建议配置项如下,挂载步骤请参见新购ECS时挂载NAS文件系统。
表 1.
基础配置:
参数 |
说明 |
镜像 |
建议您选择CentOS 8.0镜像。 |
表 2.
网络和安全:
参数 |
说明 |
公网 IP |
选中分配公网 IPv4 地址。 |
带宽计费模式 |
选中按使用流量。 |
带宽峰值 |
带宽峰值设为最大的100 Mbps。 |
- 使用已有ECS挂载NAS作为中转节点,详情请参见Linux系统挂载NFS文件系统。
说明 弹性公网IP对入方向流量不收费,仅对出方向流量收费。也就是说,从公网上传数据到NAS不会收取流量费用,而从NAS下载数据则会收取流量费用。计费详情请参见
弹性公网IP按量付费。
方案一:SFTP
当有少量文件需要一次性上传和下载时,建议您在本地系统上安装使用SFTP客户端来完成,此方案具有以下优点:
- 安装工具。
SFTP的客户端工具有多种版本,以下示例中使用的是FileZilla,请选择适合您本地操作系统的版本并
下载安装SFTP客户端。
- 建立SFTP客户端与中转节点ECS之间的连接。
- 打开FileZilla客户端,按照如下说明进行配置。单击Quickconnect,建立连接。
在本地客户端与ECS服务端的连接建立之后,左侧区域会显示本地文件系统,右侧区域会显示服务端ECS的文件系统。
参数 |
说明 |
Host |
ECS的公网IP地址,例如1.2.3.4。 |
用户名 |
例如root。 |
密码 |
例如root登录密码。 |
Port |
SFTP端口号,默认为22。 |
- 请您修改右侧区域Remote site中的路径,改为挂载了NAS的路径(例如/mnt),单击回车即可看到NAS中的文件列表。
- 上传数据。
将左侧区域中的文件或目录拖拽到右侧区域,即完成数据上传。
- 下载数据。
将右侧区域中的文件或目录拖拽到左侧区域,即完成数据下载。
方案二:rsync
当有大量文件上传和下载或需要频繁上传和下载的任务时,建议您在本地系统安装使用rsync命令行工具执行上传下载任务,此方案具有以下优点:
- 上传下载后的文件元数据不变(包括属主及权限信息)。
- 支持数据增量同步。
- 本地Linux或macOS系统可配置crontab向云上NAS自动备份数据。
- 安装rsync工具。
- 上传数据。
执行以下命令,将本地目录以增量同步的方式,上传到阿里云NAS。
rsync -avP DirToSync/ root@1.2.3.4:/mnt/DirToSync/
命令中的参数请根据实际值修改,参数含义如下:
参数 |
说明 |
DirToSync |
需要上传的本地目录名。 |
root |
上传目标NAS文件系统目录的属主。 |
1.2.3.4 |
已挂载NFS文件系统的Linux ECS公网IP。 |
/mnt |
ECS实例中用来挂载NAS的路径。 |
说明 rsync命令中的源路径结尾必须带有正斜线(/),否则同步后数据路径不匹配。
- 下载数据。
执行以下命令,从阿里云NAS下载数据到本地目录。
rsync -avP root@1.2.3.4:/mnt/DirToSync/ DirToSync/
- 自动上传。
本地Linux或macOS操作系统,可以基于rsync命令,通过crontab配置定时上传备份任务。
- Linux操作系统:
- 打通从本地系统到ECS的无密码通道,详情请参见使用SSH密钥对连接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。您可以根据实际需求替换配置中的参数。
- macOS操作系统
- 为/usr/sbin/cron目录配置硬盘访问权限。
请进入系统设置,单击,单击解锁,点击+,选择Macintosh HD目录,按cmd+shift+.组合键显示隐藏目录,选择/usr/sbin/cron。
- 打通从本地系统到ECS的无密码通道,详情请参见使用SSH密钥对连接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。您可以根据实际需求替换配置中的参数。
方案三:将数据上传至OSS再迁移到NAS
如果您需要上传大量数据到NAS,而公网访问ECS的带宽无法满足您的需求,建议先上传数据到OSS,然后将OSS数据迁移到NAS。详情请参见
上传文件和
迁移实施。
说明
- 目前迁移服务在公测阶段,如果您的业务需要使用数据迁移服务请工单申请白名单。
- 迁移服务无法保证文件元数据不变,迁移完成后可以再执行rsync修复元数据信息。
访问上传数据
数据上传后,您可以在业务所属的ECS或容器上挂载NAS文件系统,共享访问NAS文件系统上的数据。
以ECS为例,您可以用Linux系统挂载NFS文件系统,然后就像访问本地数据一样访问NAS上的文件数据。详情请参见Linux系统挂载NFS文件系统。
您也可以在云上搭建业务应用,在多台计算节点上通过程序大量读写NAS上的数据,例如使用Nginx代理服务器代理阿里云NAS。