本文介绍如何通过公网将本地数据上传至NFS文件系统,或者将NFS文件系统内的数据下载到本地。

前提条件

配置ECS实例

方案一:SFTP方案二:rsync中,需要配置ECS作为中转节点从公网访问阿里云文件存储NAS。推荐您选择新购ECS实例挂载NAS作为中转节点,您也可以选择使用已有ECS挂载NAS作为中转节点。

说明 上传下载文件数据需要占用ECS公网带宽,建议您新购一台ECS实例专门负责文件数据的上传与下载,避免占用业务带宽。
  • (推荐)使用新购ECS实例挂载NAS作为中转节点。建议配置项如下,挂载步骤请参见新购ECS时挂载NAS文件系统01
    表 1. 基础配置:
    参数 说明
    镜像 建议您选择CentOS 8.0镜像。
    表 2. 网络和安全:
    参数 说明
    公网 IP 选中分配公网 IPv4 地址
    带宽计费模式 选中按使用流量
    带宽峰值 带宽峰值设为最大的100 Mbps。
  • 使用已有ECS挂载NAS作为中转节点,详情请参见Linux系统挂载NFS文件系统
说明 弹性公网IP对入方向流量不收费,仅对出方向流量收费。也就是说,从公网上传数据到NAS不会收取流量费用,而从NAS下载数据则会收取流量费用。计费详情请参见 弹性公网IP按量付费

方案一:SFTP

当有少量文件需要一次性上传和下载时,建议您在本地系统上安装使用SFTP客户端来完成,此方案具有以下优点:
  • 支持众多操作系统平台。
  • 提供图形化操作界面。
  1. 安装工具。
    SFTP的客户端工具有多种版本,以下示例中使用的是FileZilla,请选择适合您本地操作系统的版本并 下载安装SFTP客户端
  2. 建立SFTP客户端与中转节点ECS之间的连接。
    1. 打开FileZilla客户端,按照如下说明进行配置。单击Quickconnect,建立连接。
      在本地客户端与ECS服务端的连接建立之后,左侧区域会显示本地文件系统,右侧区域会显示服务端ECS的文件系统。 U-D NFS0201
      参数 说明
      Host ECS的公网IP地址,例如1.2.3.4。
      用户名 例如root。
      密码 例如root登录密码。
      Port SFTP端口号,默认为22。
    2. 请您修改右侧区域Remote site中的路径,改为挂载了NAS的路径(例如/mnt),单击回车即可看到NAS中的文件列表。
      UD-NFS0202
  3. 上传数据。
    将左侧区域中的文件或目录拖拽到右侧区域,即完成数据上传。
  4. 下载数据。
    将右侧区域中的文件或目录拖拽到左侧区域,即完成数据下载。

方案二:rsync

当有大量文件上传和下载或需要频繁上传和下载的任务时,建议您在本地系统安装使用rsync命令行工具执行上传下载任务,此方案具有以下优点:
  • 上传下载后的文件元数据不变(包括属主及权限信息)。
  • 支持数据增量同步。
  • 本地Linux或macOS系统可配置crontab向云上NAS自动备份数据。
  1. 安装rsync工具。
    • Linux
      • 如果您使用的是CentOS或Redhat操作系统,请执行以下命令,使用yum包管理器安装rsync。
        sudo yum install rsync
      • 如果您使用的是Ubuntu或Debian操作系统,请执行以下命令,使用apt包管理器安装rsync。
        sudo apt-get install rsync
    • macOS
      请下载安装 homebrew包管理器,然后执行以下命令安装rsync工具。
      brew install rsync
    • Windows

      请下载安装Cygwin模拟环境,您可以在安装过程中搜索安装rsync工具,也可以手动下载编译安装rsync

  2. 上传数据。
    执行以下命令,将本地目录以增量同步的方式,上传到阿里云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命令中的源路径结尾必须带有正斜线(/),否则同步后数据路径不匹配。
  3. 下载数据。
    执行以下命令,从阿里云NAS下载数据到本地目录。
    rsync -avP root@1.2.3.4:/mnt/DirToSync/ DirToSync/
  4. 自动上传。
    本地Linux或macOS操作系统,可以基于rsync命令,通过crontab配置定时上传备份任务。
    • Linux操作系统:
      1. 打通从本地系统到ECS的无密码通道,详情请参见使用SSH密钥对连接Linux实例
        执行以下命令,确认连接成功。
        ssh -i ~/.ssh/ecs.pem root@1.2.3.4
        说明 ~/.ssh/ecs.pem为密钥文件在本地的存储路径。
      2. 配置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操作系统
      1. /usr/sbin/cron目录配置硬盘访问权限。

        请进入系统设置,单击Security & Privacy > Privacy > Full Disk Access,单击解锁,点击+,选择Macintosh HD目录,按cmd+shift+.组合键显示隐藏目录,选择/usr/sbin/cron

      2. 打通从本地系统到ECS的无密码通道,详情请参见使用SSH密钥对连接Linux实例
        执行以下命令,确认连接成功。
        ssh -i ~/.ssh/ecs.pem root@1.2.3.4
        说明 ~/.ssh/ecs.pem为密钥文件在本地的存储路径。
      3. 配置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修复元数据信息。

方案四:本地数据中心挂载NAS

以上三种方案相对简便,但如果您需要从本地数据中心频繁读写NAS上的大量数据,则需要创建网络专线,从数据中心直接挂载NAS进行访问。详情请参见通过VPN网关实现本地数据中心访问阿里云NAS通过NAT网关实现本地数据中心访问阿里云NAS

访问上传数据

数据上传后,您可以在业务所属的ECS或容器上挂载NAS文件系统,共享访问NAS文件系统上的数据。

以ECS为例,您可以用Linux系统挂载NFS文件系统,然后就像访问本地数据一样访问NAS上的文件数据。详情请参见Linux系统挂载NFS文件系统

您也可以在云上搭建业务应用,在多台计算节点上通过程序大量读写NAS上的数据,例如使用Nginx代理服务器代理阿里云NAS