O Apache pode ler o Brick GlusterFS diretamente, mas gravar no Mount GlusterFS?

3

Atualmente eu tenho 2 servidores web (CentOS 5.5) e estou usando o GlusterFS como cliente / servidor em ambos usando a replicação automática de arquivos.

Para os dois servidores da Web:

O ponto de montagem do GlusterFS é:

 /mnt/glusterfs/site1

O tijolo GlusterFS local é

 /export/sdb1/glusterfs/site1

Estou usando uma montagem de ligação para apontar para a montagem do GlusterFS no Apache:

/var/www/site -> /mnt/glusterfs/site1

As páginas dinâmicas (em que a própria página não é armazenada em cache) que requerem que muitos arquivos pequenos sejam lidos antes de a página ser renderizada, o desempenho com o GlusterFS é pelo menos 5 vezes mais lento do que o uso do sistema de arquivos local. ou seja, o tijolo GlusterFS local.

Observe que estou usando a opção option read-subvolume para que os arquivos sejam lidos no bloco local do GlusterFS, mas entendo que os metadados estão marcados no outro bloco na rede, que é o que presumo que está atrasando as coisas. / p> Infelizmente eu não posso simplesmente pegar o Apache para usar o tijolo local do GlusterFS, já que o próprio Apache faz algumas gravações.

Como /mnt/glusterfs/site1 e /export/sdb1/glusterfs/site1 são efetivamente o mesmo sistema de arquivos, existe alguma maneira de o Apache ler diretamente o bloco local, mas gravar na montagem do GlusterFS?

Isso aumentaria significativamente o desempenho.

Estou ciente do NFS, OCFS, GFS2, Lustre e DRBD, mas se for possível fazer o acima, essa seria a solução mais simples.

Talvez uma diretiva do Apache, o módulo do Apache (módulo personalizado mesmo) ou até mesmo no nível do sistema?

Eu gostaria de receber sugestões / comentários / orientações.

    
por Vipul Limbachiya 02.07.2010 / 17:31

1 resposta

1

Se você escrever diretamente, ele não será replicado através do glusterfs. Se você ler diretamente, você corre o risco de o seu reparo não funcionar corretamente se a sua unidade falhar. Quando você lê um arquivo, ele verifica os metadados e, se o arquivo não existir localmente, o replica ao invés de replicar o sistema de arquivos quando a unidade é colocada online.

Se esses arquivos forem criados regularmente, você poderá gravá-los em uma montagem não distribuída e usá-los para os arquivos?

Você pode fazer o que quiser, mas, provavelmente, vai quebrar de algumas formas muito estranhas. Um cenário seria se você modificasse um arquivo em um nó, o outro nó não saberia que os metadados mudaram e leriam o arquivo antigo. Você pode parar na lista de discussão do GlusterFS, eles são extremamente úteis.

    
por 02.07.2010 / 17:48