GlusterFs är ett väldigt coolt replikerat filsystem. Det innebär att du kan ha dina filer spridda över flera filservrar och därmed alltid ha dina filer tillgängliga även om en server skulle gå ned.
Så här gör du för att installera GlusterFS på två servrar, här nedan kallade glustersrv1.example.com (10.0.0.100) och glustersrv2.example.com (10.0.0.101) samt en klient kallad glusterclient1.example.com (10.0.0.200). Servrarna har var sin tillgänglig extra disk kallad /dev/sdb där vi kommer lägga upp en brick. Den version som installeras här är GlusterFs 3.4.1-3, om du vill installera en annan version, t.ex. om det kommit en nyare version när du läser den här bloggposten får du anpassa kommandona nedan för detta.
Börja med att fixa lagringsytan som Gluster ska användas, denna kallas med Glustertermer för en brick, detta görs på båda servrarna:
yum install xfsprogs fdisk /dev/sdb #Skapa en stor partition här bara mkfs.xfs -i size=512 /dev/sdb1 mkdir -p /export/sdb1 && mount /dev/sdb1 /export/sdb1 && mkdir /export/sdb1/brick echo "/dev/sdb1 /export/sdb1 xfs defaults 0 0" >> /etc/fstab
installera sedan själva glusterfs-mjukvaran, detta görs på båda servrarna:
mkdir gluster_rpms cd gluster_rpms/ wget -l 1 -nd -nc -r -A.rpm http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/epel-6.4/x86_64/ yum localinstall glusterfs-3.4.1-3.el6.x86_64.rpm glusterfs-fuse-3.4.1-3.el6.x86_64.rpm glusterfs-geo-replication-3.4.1-3.el6.x86_64.rpm glusterfs-server-3.4.1-3.el6.x86_64.rpm glusterfs-libs-3.4.1-3.el6.x86_64.rpm glusterfs-cli-3.4.1-3.el6.x86_64.rpm service glusterd start chkconfig glusterd on chkconfig glusterfsd on
Från glustersrv1.example.com ska du nu göra lite konfiguration:
gluster peer probe 10.0.0.101 gluster volume create replvolume rep 2 transport tcp glustersrv1:/export/sdb1/brick glustersrv2:/export/sdb1/brick gluster volume start replvolume
På glusterclient1.example.com kan du nu installera den mjukvara du behöver där samt montera den replikerade volymen:
mkdir gluster_rpms cd gluster_rpms/ wget -l 1 -nd -nc -r -A.rpm http://download.gluster.org/pub/gluster/glusterfs/LATEST/RHEL/epel-6.4/x86_64/ yum localinstall glusterfs-fuse-3.4.1-3.el6.x86_64.rpm glusterfs-3.4.1-3.el6.x86_64.rpm glusterfs-libs-3.4.1-3.el6.x86_64.rpm mkdir /mnt/gluster mount -t glusterfs glustersrv1:/replvolume /mnt/gluster
Nu är du klar och kan glatt lägga till fler klienter om du behöver.Notera att även om du monterat klienten mot en av servrarna kommer allt att fortsätta funka även om just den servern går ned. Om en server går sönder kommer den automatiskt att replikera sig tillbaka så att servrarna innehåller samma information när den kommer upp igen. Du kommer heller inte ha problem med split-brain, även om servrarna inte kan prata med varandra, så länge åtminstonne en klient kan prata med båda servrarna. Du kan även se till att servrarna stänger ned sig själva om de skulle bli ensamma och inte ha majoritet i klustret genom att använda en feature som heter server quorum. Detta har jag dock inte testat själv.
Instruktionerna har anpassats härifrån:
I learned a lot from reading this blog post!