亚马逊AWS官方博客

EFS File Sync – 向 Amazon EFS 文件系统更快传输文件

我们在 AWS re:Invent 2017 举行前不久推出了 EFS File Sync,现在我终于有一点时间来讲讲它!

如果您需要将大量文件从本地或云文件系统移动到 Amazon Elastic File System,此工具正是为您量身打造。简单的单线程命令行工具 (例如 cprsync ) 产生于云时代以前,无法提供在不同地点之间大规模移动数据所需的吞吐能力。这些工具一般作为积木块的形式使用,常常在负责计划调度、编排管理和网络安全脚本中使用。

安全、并行处理
EFS File Sync 采用安全的高度并行数据传输机制,速度比我之前提到的工具快 5 倍。它作为 VMware ESXi 中或 EC2 实例上运行的代理提供,通过 NFS (v3 和 v4 版本) 访问源文件系统,可以在所有开放 EFS 的 AWS 区域使用。由于代理负责启动与 AWS 之间的所有通信,您无需搭建 VPN 或允许入站连接通过您的防火墙。

您可以从 AWS 管理控制台启动、控制和监控代理以及您的同步任务。作业可以指定传输整个文件系统或具体的目录树,此外还提供检测并跳过已经存在于目标文件夹中的文件的选项。此外还可以复制文件的元数据 (修改和访问权限、时间、POSIX 所有权和权限、符号链接、硬链接)。

使用 EFS File Sync
为了撰写此博文我启动了一个 EC2 实例,导出了一个 NFS 文件系统 (/data),然后使用 Linux 内核源代码填充该文件系统。

打开与我的实例位于同一区域的 EFS 控制台,然后单击文件同步

我单击开始使用,选择 Amazon EC2 作为我的主机平台,然后单击启动实例,然后单击 Connect to agent (连接到代理) 继续:

单击启动实例会在新的选项卡中打开 EC2 控制台。我选择一个内存优化实例类型 (xlarge 或更大的类型),为其配置一个公有 IP 地址和一个允许 80 端口入站流量的安全组,然后与其他 EC2 实例一样启动它。然后我会等待一两分钟 (可以浇浇花、看看狗),直到通过状态检查:

然后我会获取该实例的公有 IP 地址,返回 EFS 选项卡,输入该地址,然后单击 Activate agent (激活代理)

这一步骤会从同步代理检索激活密钥。完成后,我会为它输入一个名称,然后单击 Activate agent (激活代理) 继续:

现在代理正在运行并已激活,我会单击 Create sync task 以开始将一些文件移动到 EFS:

我会配置源位置 (我在这一部分开始时提到的 EC2 实例):

此外我还会选择目标 EFS 文件系统,并在该文件系统中为我的文件指定一个目标位置:

然后我选择同步选项并单击下一步以检查配置:

检查结果看似正常,然后单击 Create sync task 以开始复制我的文件:

创建同步任务并且其状态变为可用后, 我可以选中它并从 Actions 菜单选择 Start 以启动同步:

我调整在创建任务时建立的设置,然后单击 Start 继续:

我可以在 History 选项卡中跟踪同步任务的状态:

这会在几分钟内完成,我的 EFS 文件系统现在已经包含了新的文件:

现已推出
EFS File Sync 现已在支持 EFS 的所有 AWS 区域推出。您需要为所消费的 EFS 和 EC2 资源付费,价格为每 GB 的数据 0.01 USD (更多信息请参阅 EFS 定价页面)。

Jeff