Como faço para transferir rapidamente um arquivo grande (~ 16GB)

1

Como faço para transferir rapidamente um grande arquivo (~ 16 GB) de um ponto de montagem para outro em 80 servidores? Os pontos de montagem estão em partições separadas. Eu tentei ansible (com a opção -f 100) e um script bash com rsync em um loop, mas ambos os métodos são muito lentos, e nem parece elegante.

    
por Nesusvet 11.11.2015 / 09:01

2 respostas

1

Eu instalaria o pdsh e o configuraria para permitir que eu executasse comandos em paralelo em todos os servidores (ou hosts individuais selecionados ou grupos de servidores - como definido no arquivo / etc / genders do pdsh . / p>

por exemplo. depois de instalar o pdsh , configurando-o para usar o ssh (em vez do padrão ímpar do rsh) e definir um grupo all que contenha todos os servidores:

pdsh -g all mv /old /new |& tee /tmp/pdsh.log

Você pode visualizar o arquivo de log com menos (etc) ou formatado com uma seção por host com pdsh ' dshbak utility:

dshback /tmp/pdsh.log

Cada linha de saída é prefixada com o nome do host de onde veio (que é o que dshbak usa para agrupar a saída pelo nome do host):

# pdsh -g all uptime
hanuman:  22:24:53 up 60 days,  1:38,  8 users,  load average: 0.05, 0.03, 0.05
indra:  22:24:16 up 14 days, 25 min,  3 users,  load average: 0.22, 0.40, 0.44
ganesh:  22:24:53 up 49 days,  7:56,  6 users,  load average: 0.73, 0.79, 0.79
kali:  22:25:05 up 3 min,  0 users,  load average: 0.01, 0.03, 0.02

pdsh também inclui um comando pdcp útil para copiar um arquivo para muitos servidores em paralelo. por exemplo. para copiar /etc/genders do host local para todos os servidores:

pdcp -g all /etc/genders /etc/

pdsh foi originalmente projetado para uso em clusters HPC, mas é igualmente útil em qualquer grupo (s) de servidores, incluindo farms de servidores web, replicando servidores de banco de dados etc. A capacidade de atribuir um rótulo arbitrário a qualquer grupo de servidores é útil aqui, por exemplo rotule alguns grupos de máquinas como web , mysql , dns e também os tenha em all .

Existem várias outras ferramentas do cluster ssh, mas na minha experiência, pdsh é o mais simples de usar e o mais fácil de configurar.

Puppet, Ansible etc são ótimos para implementação em massa e atualizações, e o pdsh é ótimo para administração em massa de servidores de linha de comando.

    
por 11.11.2015 / 12:15
1

Considere testar ou transmitir os arquivos na rede e recebê-los em todos os clientes do mesmo fluxo. Isso levará o tempo para UMA cópia ...

Veja por exemplo:

http://linux.die.net/man/1/udp-sender

Boa sorte, gerhard

    
por 11.11.2015 / 12:39