¿Cómo puedo copiar datos hacia y desde Amazon EFS en paralelo para maximizar el rendimiento de mi instancia de EC2?

3 minutos de lectura
0

Tengo una gran cantidad de archivos para copiar. Quiero ejecutar estos trabajos en paralelo en un sistema de archivos de Amazon Elastic File System (Amazon EFS) en mi instancia de Amazon Elastic Compute Cloud (Amazon EC2).

Descripción corta

Use una de las siguientes herramientas para ejecutar trabajos en paralelo en un sistema de archivos de Amazon EFS:

  • GNU Parallel: Para obtener más información, consulte GNU Parallel en el sitio web del sistema operativo GNU.
  • msrsync: Para obtener más información, consulte msrsync en el sitio web de GitHub.
  • fpsync: Para obtener más información, consulte fpsync en el sitio web de manuales de Ubuntu.

Solución

GNU Parallel

1.    Instale GNU Parallel.

Amazon Linux y 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.    Use rsync para copiar los archivos en Amazon EFS:

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

o

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

3.    Use la aplicación Nload Console para supervisar el tráfico y el ancho de banda de la red.

$ sudo nload -u M

msrsync

msrsync es un contenedor de Python para rsync que ejecuta varios procesos de rsync en paralelo.

Nota: msrsync solo es compatible con Python. Ejecute el script msrsync con la versión 2.7.14 o posterior de Python.

1.    Instale 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.    Use la opción**-p** para especificar el número de procesos de rsync que desea ejecutar en paralelo. Sustituya X por el número de procesos de rsync. La opción **-**P muestra el progreso de cada trabajo.

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

fpsync

La herramienta fpsync sincroniza los directorios en paralelo mediante fpart y rsync. Puede ejecutar varios procesos de rsync de forma local o lanzar transferencias de rsync en varios nodos (trabajadores) a través de SSH.

Para obtener más información sobre fpart, consulte fpart en el sitio web de manuales de Ubuntu.

1.    Active el repositorio EPEL y, a continuación, instale el paquete fpart. Amazon Linux y 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

Nota: En Ubuntu, fpsync forma parte del paquete fpart.

2.    Use fpsync para sincronizar los directorios /dst y /src. Sustituya X por el número de procesos de rsync que desea ejecutar en paralelo.

$ sudo fpsync -n X /src /dst
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 10 meses