Pergunta

Quero poder distribuir pacotes de arquivos, cerca de 500 MB por pacote, para todas as máquinas em uma "extranet" corporativa (que é basicamente algumas LANs conectadas usando vários mecanismos privados, incluindo linhas arrendadas e VPN).

O número total de hosts é de aproximadamente 100, e o objetivo é obter uma cópia do pacote de um host para todos os outros hosts de maneira confiável, rápida e eficiente. Uma questão importante é que alguns hosts são agrupados em LANs rápidas únicas, caso em que a E/S de rede deve ser feita uma vez de um grupo para o outro e depois em cada grupo entre todos os pares. Isso se opõe a um sistema de servidor central rigoroso, onde vários hosts podem buscar o mesmo pacote sobre um link lento, em vez de uma vez através do link lento e depois entre si rapidamente.

Um novo pacote será produzido a cada poucos dias e, ocasionalmente, pacotes antigos serão excluídos (mas esse problema pode ser resolvido separadamente).

Acontece que as máquinas em questão executam Linuxes recentes, mas os pontos de bônus serão destinados a soluções que são pelo menos um pouco de plataforma cruzada (nesse caso, o pacote pode diferir por plataforma, mas talvez o mesmo mecanismo possa ser usado).

É isso. Não me opõe a escrever algum código para lidar com isso, mas seria preferível se fosse um de Bash, Python, Ruby, Lua, C ou C ++.

Foi útil?

Solução

Eu acho que todos esses problemas foram resolvidos por pesquisas modernas sobre redes P2P e bem embaladas em formas agradáveis. Um pouco de script e bit torrent devem resolver esses problemas. Os clientes de torrent existem para todos os OSS modernos; em seguida, um script em cada máquina para verificar um local para um novo arquivo Torrent, inicie o DL e exclua o pacote antigo depois que o DL terminar.

Outras dicas

E quanto ao rsync?

Vou sugerir que você use a idéia da Compie do RYSNC para copiar os arquivos, caso em que você pode usar um idioma de script de sua escolha.

No sistema de propagação, você precisará de um script contendo alguma forma de representação dos hosts e uma matriz entre eles ponderados com a velocidade. Você precisa calcular uma árvore de abrangência mínima a partir dessas informações. A partir disso, você pode enviar mensagens para os sistemas para os quais pretende propagar detalhando o MST e o pacote a buscar, pelo qual esse script/daemon começa a transferir. Esse host então entra em contato com os hosts sobre os links mais rápidos ...

Você pode implementá -lo no Bash - Python pode ser melhor ou um daemon C personalizado.

Ao atualizar a rede, você precisará atualizar a matriz com base nas informações mais recentes.

Ver: Algoritmo de Prim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top