opções de replicação do fileserver

1

Estou tentando configurar um servidor de arquivos em diferentes localizações geográficas em um servidor linux baseado em centos. Atualmente estou planejando ter dois desses servidores agora e estender isso para outras áreas no futuro próximo. Os servidores de arquivos devem estar se espelhando quando um arquivo é adicionado em qualquer local (ainda estou para chegar a uma estratégia de exclusão, mas apenas pensando deve permitir a exclusão de arquivos quando ele é excluído do servidor principal). Atualmente estou pensando em ter o apache "directory listing" e o rsync para fazer este trabalho. Eu só quero saber se existem ferramentas melhores para fazer o acima. Também gostaria de ouvir algumas sugestões sobre um script de listagem de diretório melhor (baseado em php / python). Seria bom se essas ferramentas tivessem alguns recursos de pesquisa, opções para fazer upload de arquivos, etc. (Estou perguntando demais?))).

Nota: O servidor atual também hospeda uma replicação de subversão. Eu também pensei em enviar todos os arquivos para o subversion e fazer o check-out no local secundário. Mas eu sinto que o espaço seria uma restrição, pois eu teria que remover alguns arquivos indesejados para que eu tivesse o espaço em disco sob controle, isso não será possível, já que o histórico de versões do svn conterá os dados

Obrigado antecipadamente.

    
por Version Control Buddy 21.07.2011 / 09:39

4 respostas

0

Finalmente eu fiz isso. Configure um rsync . Junto com ele eu extplorer que fornece recursos de gerenciador de arquivos baseado na web. Com isso, consegui resolver o problema mencionado acima, mas ainda estou para movê-lo para produção, mas ele está sendo executado com êxito nos últimos quatro dias.

PS: Conforme aconselhar, deixe-me tentar meu PHD:)

    
por 28.07.2011 / 09:21
4

Este é um problema incrivelmente difícil de resolver no caso geral. Sistemas de arquivos replicados multi-mestres, geograficamente distribuídos, são um tópico no qual você pode obter um PhD mesmo quando não resolve todo o problema, portanto é improvável que um pequeno trecho de PHP ou Python seja muito .

Se você está lidando apenas com o acréscimo de arquivos (sem modificações) e não há possibilidade de colisão de nome de arquivo, o problema fica muito mais fácil e você pode usar um pequeno script de shell. Esteja avisado, porém, que esta não é uma situação comum - você pode pensar que é agora, mas aposto que as idéias dos usuários são diferentes.

Meu conselho: encontre alguém que conheça esse tipo de coisa e dê a eles algum dinheiro para realizar uma análise minuciosa dos requisitos e encontrar uma solução.

    
por 21.07.2011 / 09:51
1

Se "fileserver" significa que os usuários mapeiam unidades para esse servidor por meio de algo como Samba ou NFS, esse é o problema muito difícil que o Womble descreveu tão bem. Eu já vi alguns sistemas se aproximando disso, mas eles não envolvem volumes montados; eles usam um cliente específico em cada árvore de diretórios envolvida no esquema de replicação e usam alguns algoritmos complexos de detecção de colisão para garantir que as coisas não sejam pisadas. E vários arquivos abertos, como os bancos de dados Access, simplesmente não funcionam bem nessa circunstância.

Se "fileserver" significa um servidor de arquivos estáticos para um site dinâmico, isso é muito mais fácil. O DRBD e o Rsync foram projetados para esse tipo de carga de trabalho. O fato de que você está tendo que fazer muitas coisas na mão sugere que algo mais poderia estar acontecendo.

    
por 21.07.2011 / 11:43
0

O GlusterFS não é uma boa solução para a WAN.

Eu só posso recomendar o DRBD (precisará comprar o DRBD Proxy) ou ver o csync2.

Eu acredito que você pode usar algo como inotify para acionar o csync2 ou usar o lsyncd.

HTH

Brent

    
por 21.07.2011 / 11:28