Qual é a maneira mais eficiente de enviar / publicar arquivos de conjuntos grandes em uma rede?

3

Este é o meu cenário:

Precisamos enviar um conjunto de arquivos (um 'espaço de trabalho') de um servidor de origem para vários servidores de destino. Os arquivos são mantidos sob o controle de versão (SVN), portanto, a primeira etapa é exportar a versão mais recente do repositório para o servidor de origem. Depois, preciso garantir que vários servidores regionais, cada um em um continente diferente, tenham a versão mais recente desse espaço de trabalho.

Eu tenho um script que funciona usando o ROBOCOPY, mas ele está enviando o espaço de trabalho inteiro para cada servidor de destino. Os tempos de cópia são muito longos e a transferência pode obstruir a rede para alguns dos sites que não estão tão bem conectados ... Eu já tive reclamações!

Na maioria dos casos, as alterações só se aplicam a uma pequena porcentagem de todos os arquivos, portanto, algum tipo de cópia diferencial seria ideal. Estou relutante em seguir a rota de sincronização / espelhamento porque os arquivos nos servidores remotos serão usados e modificados com bastante frequência e é provável que os arquivos nos servidores regionais sejam considerados mais recentes pela ferramenta de sincronização.

Existem scripts / ferramentas que você pode recomendar para tornar a publicação deste espaço de trabalho mais eficiente? Eu não me importo se houver um preço razoável que possa ajudar no trabalho.

SO: Windows Server 2003 Rede de largura de banda: é uma rede de empresa privada e as velocidades de conexão podem variar muito

    
por AR. 14.05.2009 / 01:00

5 respostas

6

Dado que os arquivos estão sob controle de versão, que tal criar uma ramificação no svn para a versão "pronta para produção" de seus arquivos. Então, em vez de fazer uma exportação svn no seu servidor master, faça um checkout em ALL dos servidores, e use "svn update" para atualizá-los todos da ramificação "Production Ready".

A ideia de ter uma ramificação pronta para produção é que você pode continuar trabalhando nos arquivos e, no ponto em que estiver pronto para "publicá-los" em todos os servidores, copiar os arquivos para a ramificação. Dessa forma, você não terá itens "inacabados" aparecendo em seus servidores de produção.

Jim.

PS: Isso é essencialmente o mesmo que a resposta de Dave Cheney, apenas mais detalhada.

    
por 14.05.2009 / 01:59
5

Você mencionou que a fonte está no SVN. Você pode apenas fazer svn up?

    
por 14.05.2009 / 01:15
3

In most cases, the changes will only apply to a small percentage of all the files, so some sort of differential copy would be ideal

Rsync . Sim, para Windows também .

Como mencionado, svn up também funcionaria, mas desde

the files on the remote servers will be used and modified quite often

você precisará svn revert primeiro.

    
por 14.05.2009 / 02:17
2

Esse cenário exato é tratado pelo Sistema de Arquivos Distribuídos (DFS) da Microsoft. O Windows Server 2003 R2 adicionou suporte à Compactação Diferencial Remota, que sincroniza apenas as diferenças. Exatamente o que você precisa.

link

    
por 14.05.2009 / 01:53
-1

fantoche a ferramenta de gerenciamento de configuração, pode ser do seu interesse.

Pode ser um pouco exagerado aqui, em termos de funcionalidade, mas é comparativamente leve em comparação com as soluções que você está considerando.

    
por 14.05.2009 / 16:03