복사하거나 삭제할 파일이 많이 있습니다. 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