Compartilhe dados imutáveis de um repositório central em uma rede

2

Eu tenho um monte de arquivos binários diferentes (o tamanho total de todos os arquivos é cerca de ~ 500GB) armazenados em um disco rígido que é montado em machine001 .

Tenho 200 outras máquinas que precisam acessar esses dados para fins somente leitura .

Qual é a melhor maneira de compartilhar esses dados com todos os outros computadores, para que as leituras sejam mais rápidas? (Eu uso Ubuntu Linux)

Existe um esquema diferente que seria ainda melhor para leituras mais rápidas?

    
por user3077 01.04.2011 / 18:12

3 respostas

0

Bem, o NFS usa UDP e talvez você precise de alguma codificação extra para garantir que nenhum arquivo seja perdido. Eu não gosto disso e não é totalmente suportado em todos os sistemas operacionais.

Talvez o FTP seja sua resposta para a leitura FAST, por isso as transferências FAST, já que nenhum software é mais rápido do que o FTP para fazer isso.

Mas você diz que tem um tamanho total de ~ 500 GB. Você pode implementar alguns VCS usando somas de verificação para saber quais arquivos precisam ser atualizados, mas é mais código e há muitos VC's. No entanto, acho que o FTP é o melhor caminho se você quiser portabilidade, e talvez o acesso de leitura não implique uma cópia de tudo. Mesmo assim, o FTP é o mais rápido.

Então, se você quer um VCS, para transferir só precisa de arquivos, apenas rápido. Se você tiver sistemas semelhantes ao Unix em todos os computadores, poderá instalar o GIT e usar git pull para atualizar os repositórios. Ninguém poderá escrever no seu repositório, e apenas os arquivos necessários serão atualizados, rapidamente.

    
por 01.04.2011 / 19:07
1

NFS é a resposta óbvia.

Se os clientes tiverem espaço para caches e os dados forem atualizados com pouca frequência, você poderá fazer várias coisas, como armazenar os dados em um sistema de controle de versão ou espelhá-los com rsync.

    
por 01.04.2011 / 18:17
0

A melhor maneira de fazer as leituras rápidas seria copiar todos os dados para todos os clientes de uma vez por todas, mas eu acho que você não quer gastar o espaço.

As pessoas provavelmente acessam o mesmo arquivo mais de uma vez de um determinado cliente? Se assim for, eu iria para uma abordagem simples com cache agressivo. Algo como um servidor WebDAV ou FTP, Fusedav ou CurlFTPfs nos clientes, e um proxy HTTP em cache em cada cliente ( Squid ou wwwoffle ).

    
por 01.04.2011 / 22:27