J’ai un grand nombre de fichiers à copier. Je souhaite exécuter ces tâches en parallèle sur le système de fichiers Amazon Elastic File System (Amazon EFS) de mon instance Amazon Elastic Compute Cloud (Amazon EC2).
Brève description
Utilisez l’un des outils suivants pour exécuter des tâches en parallèle sur un système de fichiers Amazon EFS :
- GNU parallel : pour en savoir plus, consultez la page GNU parallel du site Web du système d’exploitation GNU.
- msrsync : pour en savoir plus, consultez la page msrsync du site Web de GitHub.
- fpsync : pour en savoir plus, consultez la page fpsync du site Web des manuels Ubuntu.
Résolution
GNU parallel
1. Installez GNU parallel.
Amazon Linux et 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. Utilisez rsync pour copier les fichiers vers Amazon EFS :
$ sudo time find -L /src -type f | parallel rsync -avR {} /dst
ou
$ sudo time find /src -type f | parallel -j 32 cp {} /dst
3. Utilisez l’application de console nload pour surveiller le trafic réseau et la bande passante.
$ sudo nload -u M
msrsync
msrsync est un wrapper Python pour rsync qui exécute plusieurs processus rsync en parallèle.
Remarque : msrsync n’est compatible qu’avec Python. Exécutez le script msrsync à l’aide de Python version 2.7.14 ou ultérieure.
1. Installez 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. Utilisez l’option -p pour spécifier le nombre de processus rsync que vous souhaitez exécuter en parallèle. Remplacez X par le nombre de processus rsync. L’option **-**P indique la progression de chaque tâche.
$ sudo time /usr/local/bin/msrsync -P -p X --stats --rsync "-artuv" /src/ /dst/
fpsync
L’outil fpsync synchronise les répertoires en parallèle à l’aide de fpart et de rsync. Il peut exécuter plusieurs processus rsync localement ou lancer des transferts rsync sur plusieurs nœuds (workers) via SSH.
Pour en savoir plus sur fpart, consultez la page fpart du site Web des manuels Ubuntu.
1. Activez le référentiel EPEL, puis installez le package fpart. Amazon Linux et 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
Remarque : dans Ubuntu, fpsync fait partie du package fpart.
2. Utilisez fpsync pour synchroniser les répertoires /dst et /src. Remplacez X par le nombre de processus rsync que vous souhaitez exécuter en parallèle.
$ sudo fpsync -n X /src /dst