GlusterFS is a scalable network filesystem suitable for data-intensive tasks such as cloud storage and media streaming. GlusterFS is free and open source software and can utilize common off-the-shelf hardware.
Prerequisite
We will take 3 centminmod servers
server1.domain.com (Centminmod Installed)
server2.domain.com (Centminmod Installed)
server3.domain.com (Centminmod Installed)
How to Install
First open ports 111,24007,38465:38469,49152 in your firewall.
Now on all 3 Servers server1.domain.com, server2.domain.com, server3.domain.com install GlusterFS
yum -y install centos-release-gluster
yum -y install glusterfs-server --disableplugin=priorities
Start and enable GlusterFS
systemctl enable glusterd.service
systemctl start glusterd.service
glusterfsd --version

Now on server1.domain.com initiate peer
gluster peer probe server2.domain.com
gluster peer probe server3.domain.com

Get Gluster peer status
gluster peer status

Now create a gluster volume named bullten for data replication between 3 server with the path /srv/data. The should only be ran on server1.domain.com. You can change bullten to something else.
gluster volume create bullten replica 3 transport tcp mail.bullten.work:/srv/data mail1.bullten.work:/srv/data mail2.bullten.work:/srv/data force
Now start the volume
gluster volume start bullten

to check gluster volume status
gluster volume status bullten

To get the detailed information of a volume
gluster volume info

If you want to stop or delete a volume you can use
gluster volume stop bullten
gluster volume delete bullten
Now on all three server server1.domain.com, server2.domain.com, server3.domain.com create a mount point directory
mkdir -p /var/www/html
For each server enter the below data in /etc/fstab to mount volume to a directory
For server1.domain.com
server1.domain.com:/bullten /var/www/html glusterfs defaults,_netdev,log-level=WARNING,log-file=/var/log/gluster.log 0 0
For server2.domain.com
server2.domain.com:/bullten /var/www/html glusterfs defaults,_netdev,log-level=WARNING,log-file=/var/log/gluster.log 0 0
For server3.domain.com
server3.domain.com:/bullten /var/www/html glusterfs defaults,_netdev,log-level=WARNING,log-file=/var/log/gluster.log 0 0
Now run mount -a on all three servers server1.domain.com, server2.domain.com, server3.domain.com
mount -a
Now add any file in /var/www/html on any one of the server it will be visible on all 3 server.