GlusterFS
GlusterFS är ett open source och skalbart network-attached storage file system som numera utvecklas av Red Hat. Genom att klustra ihop resurser (servrar, diskar, filsystem etc.) kan man bygga High-Availability storage. Varje directory som ska lagra data kallas brick och med bricks bygger man volymer. Volymer kan spänna över flera servrar och kommunikation görs med TCP (eller InfiniBand). Det finns Gluster Native Client för t.ex. linuxhostar annars går det att dela ut en volym med klassiska protokoll som NFS.
Det finns olika typer av volymer. Dessa går även att kombinera för att skapa en distributed-replicated volume.
- Distributed Mode: kombinera alla tillgängliga storage-resurser till en volym.
- Replicated Mode: spegla datan (mirror) mellan resurser, likt RAID 1. Synchronous replication.
Lägger man till en ny tom brick till en Distributed volym med mycket data kan man balansera ut det med kommandot gluster volume rebalance VOLNAME start. GlusterFS har inbyggd self-heal funktion i replicated mode, dvs om en brick går offline och filer modifieras så synkas det upp när den kommer tillbaka.
Installation
sudo dnf/apt-get install glusterfs-server systemctl status glusterfs-server
Klient
sudo dnf/apt-get install glusterfs-client
Version
glusterfsd --version
Konfiguration
För att klustra noder måste man peera och lägga till enheter till trusted server pool. Detta går även göra med hostnamn.
sudo gluster peer probe 10.0.0.11 gluster peer status
Volym
Replicated, 2 är antalet noder med datan.
sudo gluster volume create gluster-vol replica 2 10.0.0.10:/data 10.0.0.11:/data sudo gluster volume start gluster-vol
Vitlista klienter baserat på IP-adresser.
sudo gluster volume set gluster-vol auth.allow 10.0.0.*,10.5.5.10
Verify
sudo gluster volume status sudo gluster volume info
Klient
mount.glusterfs 10.0.0.10:/data /mnt/glusterfs df -h
Geo-replication
GlusterFS är designat för datacenter men vill man över t.ex. ett WAN (high latency) bör man använda geo-replication. Då används istället asynchronous och inkrementell replikering. Ena sidan är master och andra slave. Klockorna ska vara synkade och NTP bör användas.
gluster volume geo-replication [SOURCE_DATASTORE] [REMOTE_SERVER]:[REMOTE_PATH] start