Passer au contenu

Comment puis-je copier des données vers et depuis Amazon EFS en parallèle pour optimiser les performances de mon instance EC2 ?

Lecture de 3 minute(s)
0

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 sur le site Web du système d'exploitation GNU
  • msrsync sur le site Web de GitHub
  • fpsync sur le site Web d'Ubuntu

GNU parallel

Procédez comme suit :

  1. 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
  2. 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
  3. 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 :

  1. 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
  2. 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 :

  1. Activez le référentiel EPEL.

  2. 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.

  3. 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.

AWS OFFICIELA mis à jour il y a un an