EC2 인스턴스에서 성능을 극대화하기 위해 Amazon EFS에서 또는 Amazon EFS에 병렬로 데이터를 복사하려면 어떻게 해야 합니까?

3분 분량
0

복사하거나 삭제할 파일이 많이 있습니다. 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를 참조하세요.
  • fpsync <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 프로세스를 병렬로 실행하는 rsync의 Python 래퍼입니다.

참고: msrsync는 Python 2에서만 호환됩니다. 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를 사용하여 디렉터리를 병렬로 동기화합니다. SSH를 통해 여러 노드(작업자)에서 rsync 전송을 시작하거나 로컬로 여러 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 공식업데이트됨 3년 전