O BitTorrent é bom para copiar arquivos entre servidores no local de trabalho?

12

Eu tenho um servidor de origem que contém cerca de 30 GB de arquivos que desejo copiar para outros 7 servidores. Atualmente, SCP os arquivos para os quatro primeiros servidores e, quando essa transferência estiver concluída, SCP para os últimos 3 servidores.

O uso do BitTorrent seria mais rápido para distribuir os arquivos para todos os 7 de uma vez? A conexão internamente já é rápida e consistente entre cada um dos servidores. Eu sei que provavelmente levaria um pouco de carga do servidor de origem, mas levaria apenas mais tempo para distribuir os arquivos?

O que é um bom cliente com script que eu poderia usar no shell? Eu gostaria que todos parassem de semear depois de 100%.

Edward
fonte

Respostas:

7

Depende de como sua rede está organizada e de onde estão os gargalos, mas sim, pode ser mais rápido usar o BitTorrent. Em teoria, em vez de enviar 7 cópias dos mesmos arquivos, o servidor de origem deve enviar apenas 1 cópia, dividida entre os receptores. Quando isso acontecer, os colegas restantes terão compartilhado as partes que não receberam diretamente entre si.

Se sua rede suportar multicast, no entanto, provavelmente será mais fácil configurar o udpcast , mdp , multisend ou algo assim: sua fonte enviará uma única cópia dos dados e a rede os encaminhará para todos os destinatários.

efémero
fonte
Acabamos seguindo o método multicast usando o Udpcast. E funciona perfeitamente!
Edward
3

A vantagem do BitTorrent sobre outras ferramentas de distribuição de arquivos, diz o rsync , é que os clientes começam a oferecer seus dados para os outros clientes; portanto, se o servidor tiver uma conexão lenta com os clientes, a taxa de transferência será muito melhor.

O BT é um protocolo projetado para compartilhamento global. Então você terá que encontrar um meio de bloquear todos os outros clientes, exceto os 7 que deseja alimentar (ou seu torrent em breve terminará em The Pirate Bay).

Quanto à parada em 100%, todo cliente da BT fará o seguinte: Como nenhum cliente solicita mais os dados, não haverá mais propagação. O aplicativo ainda será executado, mas eles causarão apenas alguns dados entre os clientes e o rastreador, informando que eles ainda estão disponíveis.

Experimente o cliente BitTorrent original, escrito em Python. Isso permitirá que você faça as modificações desejadas. Infelizmente, não consigo encontrar um link ATM. Qualquer um?

[EDIT] Com base em um comentário saua : se você usa um rastreador particular, seus torrents não devem se espalhar inesperadamente. Dito isto, você só deve usar um cliente de torrent de uma fonte confiável. Caso contrário, você pode arriscar que algum cracker coloque um pouco de recurso extra no código que publica torrents particulares em algum lugar onde você não deseja que eles apareçam.

Aaron Digulla
fonte
2
Não tornar público o torrent é fácil, usando um rastreador privado.
Joachim Sauer
1
Você tem 100% de certeza de que o código-fonte do cliente não contém um "ei, vamos contar a algum servidor hacker sobre esse torrent"? Prefiro não arriscar meu pescoço aqui.
23415 Aaron Digulla
7
Se você não confiar em um pedaço de código e executá-lo de qualquer maneira, deixar vazar dados sobre seus torrents privados é a menor das suas preocupações.
22611 Michael Borgwardt
1

O BitTorrent é uma ótima idéia se você deseja replicar arquivos através de uma árvore de servidores sem, por exemplo, ter que emitir um comando remoto para todos os servidores copiarem do mesmo local; potencialmente causando um gargalo.

Os engenheiros do Twitter fizeram isso com grande sucesso com o Murder, que agora está no github.

http://engineering.twitter.com/2010/07/murder-fast-datacenter-code-deploys.html

jwbensley
fonte
0

Se todos os 8 servidores estiverem conectados à mesma seção da rede usando o Bit Torrent, é improvável que isso acelere as coisas. De fato, você teria tantas colisões que provavelmente seria muito lento. O BitTorrent só aceleraria as coisas se você estivesse usando uma rede totalmente comutada e os oito servidores pudessem se comunicar independentemente, sem afetar a comunicação entre os outros servidores.

Martin Brown
fonte
Bom ponto - mas existem realmente muitas redes por aí que não são mais totalmente comutadas?
Phyllis Diller
2
Quando foi a última vez que você viu um hub conectando servidores? Hoje em dia, todos nós estamos usando redes comutadas full duplex.
Mircea Vutcovici