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

12

Eu tenho 1 servidor de origem que contém cerca de 30 GB de arquivos que eu quero copiar para 7 outros servidores. Eu atualmente SCP os arquivos para os primeiros quatro servidores e quando essa transferência é 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 só vez? A conexão internamente já é rápida e consistente entre cada um dos servidores. Eu sei que provavelmente levaria alguma carga fora do servidor de origem, mas levaria mais tempo para distribuir os arquivos?

O que é um bom cliente programável que eu poderia usar do shell? Eu quero que todos parem de fazer a semeadura depois de 100%.

    
por Edward 03.02.2009 / 16:42

4 respostas

7

Depende de como a sua rede está organizada e 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, seu servidor de origem só precisa enviar uma cópia, dividida entre os receptores. No momento em que isso acontecer, os pares restantes terão compartilhado as partes que não receberam diretamente entre si.

Se sua rede for compatível com multicast, provavelmente é mais fácil configurar udpcast , mdp , multisend , ou algo parecido : a sua fonte enviará uma única cópia dos dados e a rede encaminhará para todos os destinatários.

    
por 03.02.2009 / 17:12
3

A vantagem do BitTorrent sobre outras ferramentas de distribuição de arquivos, digamos 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, no entanto. Então você terá que encontrar um meio de bloquear todos os outros clientes, exceto o 7 que você deseja alimentar (ou seu torrent irá acabar em breve no The Pirate Bay).

Quanto a parar em 100%, todo cliente BT fará isso: como nenhum cliente solicita mais os dados, não haverá mais propagação. O aplicativo ainda será executado, mas causará apenas um pequeno fluxo de dados entre os clientes e o rastreador para informá-lo de que 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. Alguém?

[EDIT] Baseado em um comentário saua : Se você usar um rastreador particular, seus torrents não devem se espalhar inesperadamente. Dito isso, você só deve usar um cliente de torrent de uma fonte confiável. Caso contrário, você pode arriscar que algum cracker tenha colocado um recurso extra no código que publica torrents privados em algum lugar onde você não queira que eles apareçam.

    
por 03.02.2009 / 16:55
1

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

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

link

    
por 10.09.2012 / 22:01
0

Se todos os 8 dos seus servidores estiverem conectados à mesma seção da rede usando o Bit Torrent, é improvável que acelere as coisas. Na verdade, 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 de forma independente, sem afetar a comunicação entre os outros servidores.

    
por 03.02.2009 / 17:14