Hiya all.. A scenario that seems to be a very neat solution to a basic high availability Webserver set up (Apache, Mysql, Python+Django) is to set up two machines, configure master<->master replication between the two MySQL databases, and then set up GlusterFS to mirror a filesystem between the machine that carries the Apache config, Django applications, and file upload folders between the machines. You can pull the plug on either, and things should keep running on the other. With this in mind, I have set up an arrangement whereby each box runs GlusterFSD, and has a client running on them that connects the local server. AFR is set up at the server level, so that perhaps when/if the other machine goes down, the client happily carries on dealing with read/ write requests while the server deals with the non-existence of the other server. I've set this up in a test environment, and all is working peachy, and we are thinking of moving to deploy this to a new production environment. With this in mind, I wanted to poll the collective knowledge of this list to see if there are any gotchas to this set up I might have missed, or any obvious performance features I should be using that I am not. Any help or advise would be greatly appreciated!! Here are the current server and client configs for the two machines: #common client config volume initial type protocol/client option transport-type tcp/client option remote-host localhost option remote-subvolume data end-volume volume readahead type performance/read-ahead option page-size 128kB # 256KB is the default option option page-count 4 # 2 is default option option force-atime-update off # default is off subvolumes initial end-volume volume data type performance/booster subvolumes readahead end-volume #latsrv1 - server config for box 1 volume posix type storage/posix # POSIX FS translator option directory /home/export # Export this directory end-volume volume brick-latsrv1 type features/posix-locks subvolumes posix end-volume volume brick-latsrv2 type protocol/client option transport-type tcp/client option remote-host latsrv2 option remote-subvolume brick-latsrv2 end-volume volume brick-afr type cluster/afr subvolumes brick-latsrv1 brick-latsrv2 option read-subvolume brick-latsrv1 end-volume volume data type performance/io-threads option thread-count 8 option cache-size 64MB subvolumes brick-afr end-volume volume server type protocol/server option transport-type tcp/server # For TCP/IP transport option auth.ip.data.allow * # Allow access to "brick" volume option auth.ip.brick-latsrv1.allow * subvolumes data brick-latsrv1 end-volume #latsrv2 - server config for box 2 volume posix type storage/posix # POSIX FS translator option directory /home/export # Export this directory end-volume volume brick-latsrv2 type features/posix-locks subvolumes posix end-volume volume brick-latsrv1 type protocol/client option transport-type tcp/client option remote-host latsrv1 option remote-subvolume brick-latsrv1 end-volume volume brick-afr type cluster/afr subvolumes brick-latsrv1 brick-latsrv2 option read-subvolume brick-latsrv2 end-volume volume data type performance/io-threads option thread-count 8 option cache-size 64MB subvolumes brick-afr end-volume volume server type protocol/server option transport-type tcp/server # For TCP/IP transport option auth.ip.data.allow * # Allow access to "brick" volume option auth.ip.brick-latsrv2.allow * subvolumes data brick-latsrv2 end-volume