Enviar arquivos grandes para mais de 500 computadores

24

Trabalho com uma equipe para gerenciar de 500 a 600 computadores Windows 7 alugados para uma conferência anual. Temos uma grande quantidade de dados que precisam ser sincronizados com esses computadores, até 1 TiB. Os computadores são divididos em salas e conectados por comutadores de gigabit não gerenciados. Preparamos esses computadores com antecedência com a instalação e configuração do Windows, além de todos os arquivos que temos disponíveis antes de enviar a imagem base para replicação pela empresa de aluguel. Todos os anos, temos apresentadores que abordam no local com até shows de dados que precisam ser enviados para a sala em que apresentarão. Às vezes, eles têm apenas alguns arquivos de tamanho pequeno, como um slide em PDF, mas podem Às vezes, é muito maior> 5 GiB.

Nossa estratégia atual para enviar esses arquivos por push é usar scripts em lote e RoboCopy. Para os grandes envios, na verdade usamos um cliente BitTorrent para gerar um arquivo torrent e, em seguida, usamos o lote-RoboCopy para enviar o torrent para uma pasta nas máquinas remotas que estão sendo monitoradas por um cliente BT instalado. Muitas vezes, esses dados precisam ser enviados imediatamente com uma pequena janela de tempo. Na sala de controle, temos várias máquinas que são idênticas às máquinas no chão que usamos para esses empurradores.

Ocasionalmente, precisamos executar um programa nas máquinas remotas e atualmente usamos o lote e o PSexec para lidar com essa tarefa.

Gostaríamos muito de poder responder a esses pedidos de última hora com "desculpe, sua própria culpa", mas isso não acontecerá. O método BT nos permitiu ter um tempo de resposta muito mais rápido, mas todo o processo em lote pode ficar confuso quando há vários trabalhos sendo enviados. Usamos o Enterprise Ghost para outros processos, e ele não funciona bem nessa grande escala, além de ser realmente muito caro para uma tarefa uma vez ao ano como essa.

EDIT: É um requisito difícil que as máquinas remotas no chão estejam executando o Windows. As máquinas de controle não têm um requisito rígido do sistema operacional. Eu realmente gostaria de ficar longe do Multicast por causa de complicações nos roteadores upstream. Multicast ou BitTorrent é a melhor maneira de fazer isso? Existe outro protocolo que possa funcionar melhor?

WMIF
fonte
3
Como uma pergunta bem escrita, me custa dizer que as Perguntas sobre compras são fora do tópico em qualquer um dos sites da Stack Exchange . Veja Q&A é difícil, vamos ao Shopping e às Perguntas frequentes para obter mais detalhes.
Chris S
I would really like to stay away from Multicast because of complications with upstream routers.você pode elaborar por quê?
Zoredache
2
Honestamente, além de encontrar uma solução multicast, seu processo doméstico BitTorrent e PSExec parece o melhor que você pode fazer. Você pode querer envolver alguns PowerShell em torno dele para praticamente / benefício automação, mas que é sobre a melhor sugestão que posso dar-lhe ...
voretaq7
@ Zoredache- Honestamente, é em parte porque eu não tenho experiência suficiente com multicast. Eu lidei com o Ghost e o multicast e realmente não obtive resultados muito bons. O equipamento upstream pertence às instalações com as quais contratamos e já lidamos com alguns grupos de TI bastante difíceis em alguns locais. Eu não esperaria que nenhum de seus funcionários soubesse o que é multicast.
WMIF 11/11/12
@ voretaq7- Eu considerei colocar uma interface sobre nossa estrutura, mas eu teria dificuldade em fazê-lo no PowerShell. Foi doloroso para mim aprender PS, principalmente porque é um comportamento muito diferente das linguagens mais estruturadas. Se eu colocasse uma interface sobre ela, provavelmente seria em C #.
WMIF 11/10/12

Respostas:

12

Você realmente deseja um Programa de Transferência de Arquivos Multicast: UFTP , com documentação decente e extensões no estilo de proxy para passagem de NAT / roteador também.

Chris S
fonte
Ainda estou procurando na documentação o link que você forneceu, mas ainda não vejo nenhuma menção ao material multicast de nível inferior. Com isso, quero dizer, isso ainda depende do ponto de encontro multicast a ser estabelecido em algum roteador na cadeia? Como confio no local para fornecer meu gateway, não tenho meu próprio roteador central que possa fornecer essa função. O UFTP tem alguma maneira de emular isso dentro do software?
WMIF 11/11/12
Esse é o tipo de resultado que geralmente recebo ao lidar com multicast e por que afirmei que gostaria de ficar longe dele. serverfault.com/questions/56487/…
WMIF
Não estou familiarizado com o software ou hardware dessa pergunta, mas não tive problemas como esse em minhas configurações. O multicast será executado na taxa do cliente mais lento; portanto, se você tiver "estratos" diferentes de velocidade do cliente, poderá executar várias sessões de multicast para cada estrato (porém não afeta o tempo de conclusão final, apenas permite que computadores mais rápidos sejam concluídos mais cedo). Os comutadores e roteadores intermediários precisam oferecer suporte a multicast, os proxies podem atenuar isso até certo ponto, mas se você deseja desempenho, precisará de uma infraestrutura de rede confiável / capaz.
Chris S
Os comutadores envolvidos para a infraestrutura desta questão não são gerenciados. Os roteadores serão diferentes para cada local e não posso garantir que eles suportem multicast. Existe uma maneira de colocar meu próprio roteador pendurado para o lado, mas ainda estar envolvido com a parte multicast dele? Eu pergunto porque acho que não é possível.
WMIF
O gerenciamento não afeta diretamente um suporte de comutação para multicast. Todos os switches Ethernet de 1 GB são necessários para oferecer suporte ao Multicast (embora os antigos e particularmente baratos o implementem como broadcast, o que faz o trabalho); Os switches mais antigos geralmente já faziam isso. A falta de suporte ao roteador é o motivo pelo qual você precisa da configuração de proxies (um para cada segmento de rede isolado com difusão seletiva). Obviamente, usar roteadores que suportam multicast será o mais fácil, mas a configuração de proxies não é terrível (a menos que haja uma grande quantidade deles).
Chris S
5

Você pode querer investigar um assassinato

Murder é um método de usar o Bittorrent para distribuir arquivos para uma grande quantidade de servidores em um ambiente de produção. Isso permite implantações escalonáveis ​​e rápidas em ambientes de centenas a dezenas de milhares de servidores nos quais os sistemas de distribuição centralizada não funcionariam de outra maneira

.

O assassinato foi / é desenvolvido pelo pessoal do twitter e eles o usam diariamente para distribuir arquivos.

Jens Timmerman
fonte
4

Uma nova solução pode ter sido exibida: BitTorrent Sync

Edição posterior: Atualmente, eu provavelmente recomendaria o assistente ou anexo do git-anexo, mas existem muitas alternativas

ptman
fonte
Não apenas outro, mas muito bom neste caso de uso, eu acho!
Argeman
Concordo. Encontrei isso em /. e atualmente estou configurando alguns cenários de teste para ver se funcionará tão bem quanto parece.
WMIF 25/04
Acabei de fazer um teste em larga escala com o BT Sync e descobri que ele usa 239.192.0.0 para tráfego de difusão seletiva. Como eu não tinha controle sobre a infraestrutura de rede, não pude analisar completamente, mas isso estava causando um aumento perceptível no tráfego de saída da Internet. Combinado com alguns problemas gerais de incompatibilidade de sincronização de arquivos, e causou problemas suficientes para que eu tivesse que desligá-lo. Lamentável porque estava funcionando lindamente em uma escala menor a menos de 50 computadores.
WMIF
1

Eu posso ter uma idéia para você que ajudaria. Perdoe-me por não entender completamente por que isso precisa ser tão complexo, mas se você precisar simplificá-lo para o usuário final e ainda assim tornar os dados rápidos e fáceis de acessar dentro de uma LAN, talvez você possa usar um Dispositivo NAS. Eu tenho um Synology DS1812 +, ele pode RSYNC com outra unidade Synology ou vários dispositivos compatíveis com RSYNC, possui um aplicativo compatível com torrent chamado "Download Station", eu sei que você pode baixar arquivos torrent do compartimento da unidade e acredito que você também pode criar ou publique um arquivo torrent com esse aplicativo para permitir que outras pessoas baixem um arquivo necessário. Possui aplicativos para dispositivos móveis, Apple e Android. Também pode fazer transferências de FTP. Esse compartimento da unidade pode permitir que você envie rapidamente um arquivo para dispersá-lo pela LAN de maneira rápida e fácil. Sugiro colocar os dados dentro da LAN apenas para facilitar o acesso aos usuários da LAN, mas a beleza desses dispositivos NAS é que você pode colocá-los em qualquer lugar on-line, desde que eles tenham uma conexão rápida à Internet. Talvez um dos dispositivos Synology NAS de última geração seja adequado para suas necessidades.

A Synology tem uma interface virtual, você pode consultá-la para ter uma idéia melhor, se isso for útil para você. Vou colar o link abaixo na interface virtual

http://www.synology.com/products/dsm_livedemo.php?lang=us

Este dispositivo também oferece às pessoas a capacidade de acessar seus dados por meio de uma interface da Web ou aplicativo de dispositivo móvel.

Espero que isso ajude e, como eu disse, me perdoe se não entender a pergunta corretamente.

Frank R
fonte
1
Não tenho certeza de como isso é melhor do que o que ele está fazendo agora. O WMIF não pode querer esperar que os usuários comecem a obter os dados; espera-se que sua equipe pré-prepare os arquivos de dados nas máquinas assim que estiverem disponíveis para eles.
mfinni
@mfinni está correto. O trabalho é garantir que os arquivos que nos são fornecidos sejam todos carregados nos computadores da sala de conferências antes que os participantes entrem na sala.
WMIF 18/10/12