Come faccio a copiare i dati da e verso Amazon EFS in parallelo per massimizzare le prestazioni sulla mia istanza EC2?

3 minuti di lettura
0

Ho tanti file da copiare. Desidero eseguire questi processi in parallelo su un file system Amazon Elastic File System (Amazon EFS) sulla mia istanza Amazon Elastic Compute Cloud (Amazon EC2).

Breve descrizione

Utilizza uno dei seguenti strumenti per eseguire processi in parallelo su un file system Amazon EFS:

  • GNU Parallel: Per ulteriori informazioni, vedi GNU Parallel sul sito Web del sistema operativo GNU.
  • msrsync: Per ulteriori informazioni, consulta msrsync sul sito Web di GitHub.
  • fpsync: Per ulteriori informazioni, vedi fpsync sul sito Web dei manuali di Ubuntu.

Risoluzione

GNU Parallel

1.    Installa GNU Parallel.

Amazon Linux e 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.    Usa rsync per copiare i file su Amazon EFS:

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

oppure

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

3.    Usa l'applicazione console nload per monitorare il traffico di rete e la larghezza di banda.

$ sudo nload -u M

msrsync

msrsync è un wrapper Python per rsync che esegue più processi rsync in parallelo.

Nota: msrsync è compatibile solo con Python. Esegui lo script msrsync utilizzando Python versione 2.7.14 o successiva.

1.    Installa 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.    Usa l'opzione -p per specificare il numero di processi rsync che desideri eseguire in parallelo. Sostituisci X con il numero di processi rsync. L'opzione **-**P mostra lo stato di avanzamento di ogni lavoro.

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

fpsync

Lo strumento fpsync sincronizza le directory in parallelo utilizzando fpart e rsync. Può eseguire diversi processi rsync localmente o avviare trasferimenti rsync su più nodi (worker) tramite SSH.

Per ulteriori informazioni su fpart, vedi fpart sul sito Web dei manuali di Ubuntu.

1.    Attiva il repository EPEL, quindi installa il pacchetto fpart. Amazon Linux e 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: in Ubuntu, fpsync fa parte del pacchetto fpart.

2.    Usa fpsync per sincronizzare le directory /dst e /src. Sostituisci X con il numero di processi rsync che desideri eseguire in parallelo.

$ sudo fpsync -n X /src /dst
AWS UFFICIALE
AWS UFFICIALEAggiornata 10 mesi fa