如何将数据并行复制到 Amazon EFS 或从 Amazon EFS 复制数据,以最大限度地提高我的 EC2 实例的性能?

2 分钟阅读
0

我有大量文件要复制。我想在我的 Amazon Elastic Compute Cloud(Amazon EC2)实例上的 Amazon Elastic File System(Amazon EFS)文件系统上并行运行这些任务。

简短描述

使用以下工具之一在 Amazon EFS 文件系统上并行运行作业:

  • GNU parallel: 有关详细信息,请参阅 GNU 操作系统网站上的 GNU Parallel
  • msrsync: 有关详细信息,请参阅 GitHub 网站上的 msrsync
  • fpsync: 有关详细信息,请参阅 Ubuntu 手册网站上的 fpsync

解决方法

GNU parallel

1.    安装 GNU parallel。

Amazon Linux 和 RHEL 6:

$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
$ sudo yum install parallel nload -y

RHEL 7:

$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo yum install parallel nload -y

Amazon Linux 2:

$ sudo amazon-linux-extras install epel
$ sudo yum install nload sysstat parallel -y

Ubuntu:

$ sudo apt-get install parallel

2.    使用 rsync 将文件复制到 Amazon EFS:

$ sudo time find -L /src -type f | parallel rsync -avR {} /dst

$ sudo time find /src -type f | parallel -j 32 cp {} /dst

3.    使用 nload 控制台应用程序监控网络流量和带宽。

$ sudo nload -u M

msrsync

msrsync 是 rsync 的 Python 包装器,可并行运行多个 rsync 进程。

**注意:**msrsync 仅与 Python 兼容。使用 Python 版本 2.7.14 或更高版本运行 msrsync 脚本。

1.    安装 msrsync。

$ sudo curl -s https://raw.githubusercontent.com/jbd/msrsync/master/msrsync -o /usr/local/bin/msrsync && sudo chmod +x /usr/local/bin/msrsync

2.    使用 -p 选项指定要并行运行的 rsync 进程的数量。将 X 替换为 rsync 进程数。**-**P 选项显示每个作业的进度。

$ sudo time /usr/local/bin/msrsync -P -p X --stats --rsync "-artuv" /src/ /dst/

fpsync

fpsync 工具使用 fpart 和 rsync 并行同步目录。它可以在本地运行多个 rsync 进程,也可以通过 SSH 在多个节点(Worker)上启动 rsync 传输。

有关 fpart 的详细信息,请参阅 Ubuntu 手册网站上的 fpart

1.    激活 EPEL 存储库,然后安装 fpart 包。Amazon Linux 和 RHEL 6:

$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
$ sudo yum install fpart -y

RHEL 7:

$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo yum install fpart -y

Amazon Linux 2:

$ sudo amazon-linux-extras install epel
$ sudo yum install fpart -y

Ubuntu:

$ sudo apt-get install fpart

**注意:**在 Ubuntu 中,fpsync 是 fpart 包的一部分。

2.    使用 fpsync 同步 /dst/src 目录。将 X 替换为要并行运行的 rsync 进程的数量。

$ sudo fpsync -n X /src /dst
AWS 官方
AWS 官方已更新 8 个月前
没有评论