EC2 インスタンスのパフォーマンスを最大限に活かすために、Amazon EFS との間でデータのコピーを並行して行う方法を教えてください。

所要時間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 プロセスを並行して実行する rsync 用の Python ラッパーです。

注: 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 による複数のノード (ワーカー) 上の 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公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ