Embora o afs pareça ser uma solução óbvia, eu já havia analisado isso com certa profundidade por um tempo altamente personalizado aplicação web - e a solução mais rápida / eficiente / confiável foi implementar a replicação dentro do aplicativo - usando o rsync ao trazer os nós de volta online. Eu tinha um plano de longo prazo para implementar ressincronizações baseadas em demanda usando inotify como o gatilho (mas nunca encontrei o tempo).
As a solution, I was going to mount a RAM drive (tmpfs) that mirrors the GlusterFS web files but get the webserver to use the RAM drive
Sim, se o GlusterFS não suportar a sincronização de invalidações de cache, pode ser um pouco mais rápido (com o custo de não atualizar em tempo real), a menos que você tenha uma alta taxa de transferência de dados, você provavelmente o achará mais rápido usar um sistema de arquivos otimizado em um dispositivo convencional em vez de uma unidade RAM.
Você provavelmente verá problemas semelhantes em qualquer sistema de arquivos de disco compartilhado (mas isso é principalmente adivinhação da minha parte).
Uma solução melhor seria usar um banco de dados (cluster?) para armazenar quaisquer dados - o clustering é muito mais gerenciável (e mais fácil de implementar). Veja também a replicação do mysql e o Cassandra.
/ me pergunta se você poderia usar sistemas de arquivos de sobreposição (unionfs) - colocando a cópia local no topo e o sistema remoto abaixo e executando rsync periodicamente de cima para baixo - embora suspeite que possa ser difícil excluir arquivos.
HTH
C.