J’ai un grand nombre de fichiers à copier. Je souhaite copier les fichiers en parallèle sur un système de fichiers Amazon Elastic File System (Amazon EFS) de mon instance Amazon Elastic Compute Cloud (Amazon EC2).
Résolution
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
Procédez comme suit :
-
Pour installer GNU parallel, exécutez les commandes suivantes pour le système d'exploitation que vous utilisez.
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
Red Hat Enterprise Linux (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
Amazon Linux 2023 (AL2023) :
Il n'existe pas de packages supplémentaires pour Enterprise Linux (EPEL) ni de référentiel de type EPEL pour AL2023. Installez plutôt des packages à partir des pages du référentiel GitHub pour les outils individuels. Consultez nload, sysstat et gnu-parallel sur le site Web de GitHub.
Ubuntu :
sudo apt-get install parallel
-
Exécutez l'une des commandes suivantes pour copier les fichiers sur Amazon EFS.
Avec rsync :
sudo time find -L /src -type f | parallel rsync -avR {} /dst
-ou-
Sans rsync :
sudo time find /src -type f | parallel -j 32 cp {} /dst
-
Exécutez la commande suivante pour surveiller le trafic réseau et la bande passante sur la console de l'application nload :
sudo nload -u M
msrsync
Remarque : msrsync n’est compatible qu’avec Python. Exécutez le script msrsync à l’aide de Python version 2.7.14 ou ultérieure.
Procédez comme suit :
-
Exécutez la commande suivante pour installer msrsync :
sudo curl -s https://raw.githubusercontent.com/jbd/msrsync/master/msrsync -o /usr/local/bin/msrsync && sudo chmod +x /usr/local/bin/msrsync
-
Pour spécifier le nombre de processus rsync que vous souhaitez exécuter en parallèle, exécutez la commande suivante. Incluez l'option -p pour afficher la progression de chaque tâche :
sudo time /usr/local/bin/msrsync -P -p X --stats --rsync "-artuv" /src/ /dst/
Remarque : Remplacez X par le nombre de processus rsync.
fpsync
Procédez comme suit :
-
Activez le référentiel EPEL.
-
Pour installer le package fpart, exécutez les commandes suivantes pour le système d'exploitation que vous utilisez.
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
Amazon Linux 2023 :
Il n'existe pas de référentiel EPEL ou de type EPEL pour AL2023. Installez plutôt les packages à partir des pages du référentiel pour les outils individuels. Consultez nload, sysstat et gnu-parallel sur le site Web de GitHub.
Ubuntu :
sudo apt-get install fpart
Remarque : Dans Ubuntu, fpsync fait partie du package fpart.
-
Exécutez la commande suivante pour synchroniser les répertoires /dst et /src :
sudo fpsync -n X /src /dsthttps://github.com/martinda/gnu-parallel
Remarque : Remplacez X par le nombre de processus rsync que vous souhaitez exécuter en parallèle.