EC2 インスタンスのパフォーマンスを最大化するために、Amazon EFS で双方向のデータコピーを実行するにはどうすればよいですか?

最終更新日: 2020 年 4 月 28 日

ピーまたは削除しなければならないファイルがたくさんあります。Amazon Elastic Compute Cloud (Amazon EC2) インスタンス上にある、Amazon Elastic File System (Amazon EFS) ファイルシステムでこれらのジョブを並行して実行するには、どうすればよいですか?

簡単な説明

Amazon EFS ファイルシステム上でジョブを並行して実行するには、以下のいずれかのツールを使用します:

  • GNU parallel <span style="font-size:11.0pt;line-height:107%; font-family:"Calibri",sans-serif;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">– 詳細については、GNU オペレーティングシステムのウェブサイトの GNU Parallel を参照してください。
  • msrsync <span style="font-size:11.0pt;line-height:107%; font-family:"Calibri",sans-serif;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">– 詳細については、GitHub のウェブサイトの msrsync を参照してください。
  • psync <span style="font-size:11.0pt;line-height:107%; font-family:"Calibri",sans-serif;mso-ascii-theme-font:minor-latin;mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman";mso-bidi-theme-font:minor-bidi; mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA">– 詳細については、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 2 とのみ互換性があります。msrsync スクリプトを実行するには、Python のバージョン 2.7.14 以降をご利用ください。

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

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?