Qual é a maneira mais rápida de copiar milhões de arquivos (centenas de GBs) entre os servidores do Amazon EC2?

3

Estou executando o Linux em servidores Amazon EC2. Eu preciso copiar milhões de arquivos que totalizam centenas de gigabytes entre dois sistemas EC2 na mesma zona de disponibilidade. Eu não preciso sincronizar diretórios, eu só preciso copiar todos os arquivos em um diretório para um diretório vazio na outra máquina.

Qual é o caminho mais rápido para fazer isso? Alguém viu ou executou testes de desempenho?

rsync? scp? Eu deveria zip-los primeiro? Devo destacar a unidade em que estão e voltar a ligá-la à máquina para a qual estou copiando, depois copiá-los? A transferência através do IP Privado do EC2 acelera as coisas?

Quaisquer pensamentos seriam apreciados.

NOTA: Desculpe, não ficou claro, mas estou copiando dados entre dois sistemas EC2 na mesma zona de disponibilidade da AWS.

    
por T. Brian Jones 09.02.2012 / 01:26

3 respostas

9

Se os arquivos já estiverem em um volume do EBS (e se você se preocupa com eles, por que eles não são?):

  1. Crie um instantâneo do volume do EBS contendo os arquivos na primeira instância.

  2. Crie um volume do EBS a partir desse instantâneo.

  3. Anexe o volume do EBS à segunda instância.

O novo volume do EBS pode ser um pouco lento por um tempo, enquanto preenche os blocos do snapshot, mas será utilizável imediatamente.

ALTERNATIVA (se os arquivos ainda não estiverem em um volume do EBS):

  1. Anexe um novo volume do EBS à primeira instância.

  2. Copie os arquivos de outros discos para o novo volume do EBS.

  3. Mova o volume do EBS para a segunda instância.

por 09.02.2012 / 02:20
4

Use tar e netcat. Se eles estão na mesma sub-rede, e você não está muito preocupado com a segurança .. Esta é uma solução bem legal. Você pode adicionar coisas ao pipeline se quiser segurança .. Você pode usar gpg .. ou comprimir primeiro com gzip

No final do recebimento, faça:

netcat -l -p 7000 | tar x

E no final do envio, faça:

tar cf - * | netcat otherhost 7000
    
por 09.02.2012 / 16:57
1

Você pode usar o serviço de importação / exportação do Amazon AWS. Envie a unidade para eles e deixe-os fazer a cópia para você. Mais caro, mas perfeito na sua situação quando você precisa ter muitos GB de transferência de dados sem esperar por semanas para que o trabalho termine. Seu link: link

    
por 09.02.2012 / 01:51