Como posso copiar dados de e para o Amazon EFS em paralelo para maximizar o desempenho na minha instância do EC2?

3 minuto de leitura
0

Tenho um grande número de arquivos para copiar. Quero executar esses trabalhos em paralelo em um sistema de arquivos do Amazon Elastic File System (Amazon EFS) na minha instância do Amazon Elastic Compute Cloud (Amazon EC2).

Breve descrição

Use uma das ferramentas a seguir para executar trabalhos em paralelo em um sistema de arquivos do Amazon EFS:

  • GNU parallel: Para obter mais informações, consulte GNU Parallel no site do Sistema Operacional GNU.
  • msrsync: Para obter mais informações, consulte msrsync no site do GitHub.
  • fpsync: Para obter mais informações, consulte fpsync no site de manuais do Ubuntu.

Resolução

GNU parallel

1.    Instale o 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.    Use o rsync para copiar os arquivos para o 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.    Use o aplicativo do console do nload para monitorar o tráfego e a largura de banda da rede.

$ sudo nload -u M

msrsync

msrsync é um wrapper Python para rsync que executa vários processos rsync em paralelo.

Observação: o msrsync é compatível somente com Python. Execute o script msrsync usando Python versão 2.7.14 ou posterior.

1.    Instale o 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 a opção -p para especificar o número de processos rsync que você deseja executar em paralelo. Substitua X pelo número de processos rsync. A opção **-**P mostra o progresso de cada trabalho.

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

fpsync

A ferramenta fpsync sincroniza diretórios em paralelo usando fpart e rsync. Ela pode executar vários processos rsync localmente ou iniciar transferências de rsync em vários nós (trabalhadores) por meio do SSH.

Para obter mais informações sobre fpart, consulte fpart no site de manuais do Ubuntu.

1.    Ative o repositório EPEL e, em seguida, instale o pacote 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

Observação: no Ubuntu, o fpsync faz parte do pacote fpart.

2.    Use o fpsync para sincronizar os diretórios /dst e /src. Substitua X pelo número de processos rsync que você deseja executar em paralelo.

$ sudo fpsync -n X /src /dst
AWS OFICIAL
AWS OFICIALAtualizada há 10 meses