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.