Opslag met hoge beschikbaarheid met GlusterFS op Ubuntu 18.04 LTS

Glusterfs is een schaalbaar netwerk bestandssysteem met mogelijkheden om op te schalen tot verscheidene petabytes en duizenden cliënten te verwerken. Het is een open bron en gedistribueerd bestandssysteem dat schijfopslagmiddelen van meerdere servers in een enkele naamruimte plaatst. Het is geschikt voor gegevens-intensieve taken zoals cloud opslag en gegevens-media streaming.

In deze zelfstudie laat ik zien hoe je een hoge beschikbaarheid opslagserver opzet met GlusterFS op Ubuntu 18.04 LTS (Bionic Beaver). We zullen 3 ubuntu servers gebruiken, 1 server als client, en 2 andere als opslag. Elke opslagserver zal een spiegel van de andere zijn, en bestanden zullen over beide opslagservers gerepliceerd worden.

Vereisten

  • 3 Ubuntu 18.04 Servers
    • 10.0.15.10 – gfs01
    • 10.0.15.11 – gfs02
    • 10.0.15.12 – client01
  • Root Privileges

Wat zullen we doen?

  1. GlusterFS voor-installatie
  2. Installeer GlusterFS server
  3. Configureer GlusterFS Servers
  4. Opzetten GlusterFS Client
  5. Repliceren/Spiegelen testen

Stap 1 – GlusterFS Voor-Installatie

De eerste stap die we moeten doen voordat we glusterfs op alle servers installeren is het configureren van het hosts’ bestand en het toevoegen van GlusterFS repository aan elke server.

Hosts bestand instellen

Log in op elke server en krijg root toegang met ‘sudo su’ commando, bewerk dan het ‘/etc/hosts’ bestand.

vim /etc/hosts

Plak de hosts configuratie hieronder.

10.0.15.10 gfs01
10.0.15.11 gfs02
10.0.15.12 client01

Sla op en sluit af.

Ping nu elke server met de hostnaam zoals hieronder.

ping -c 3 gfs01
ping -c 3 gfs02
ping -c 3 client01

Elke hostname zal oplossen naar het IP adres van elke server.

Configureer het hosts bestand

Voeg GlusterFS Repository toe

Installeer het software-properties-common pakket op het systeem.

sudo apt install software-properties-common -y

Voeg de glusterfs sleutel en repository toe door onderstaande commando’s uit te voeren.

wget -O- https://download.gluster.org/pub/gluster/glusterfs/3.12/rsa.pub | apt-key add -
sudo add-apt-repository ppa:gluster/glusterfs-3.12

Het commando zal alle repositories bijwerken. En we hebben de glusterfs repository al aan alle systemen toegevoegd.

GlusterFS Repository toevoegen

Stap 2 – Installeer GlusterFS server

In deze stap installeren we de glusterfs-server op ‘gfs01’ en ‘gfs02’ servers.

Installeer glusterfs-server met het apt commando.

sudo apt install glusterfs-server -y

Start nu de glusterd service en zet hem aan om telkens bij het opstarten van het systeem te starten.

sudo systemctl start glusterd
sudo systemctl enable glusterd

Glusterfs server is nu up and running op de ‘gfs01’ en ‘gfs02’ servers.

Controleer de diensten en de geïnstalleerde software versie.

systemctl status glusterd
glusterfsd --version

Installeer GlusterFS Server

Stap 3 – Configureer GlusterFS Servers

De Glusterd diensten zijn nu up and running, en de volgende stap die we zullen doen is die servers configureren door een vertrouwde opslagpool te maken en het verdeelde glusterfs volume aan te maken.

Maak een vertrouwde opslagpool

Van de ‘gfs01’ server moeten we de ‘gfs02’ server toevoegen aan de glusterfs opslagpool.

Voer het onderstaande commando uit.

gluster peer probe gfs02

Nu zien we het resultaat ‘peer probe: succes’, en we hebben de ‘gfs02’ server toegevoegd aan de opslag-vertrouwde pool.

Controleer de status en lijst van de opslagpool met onderstaande commando’s.

gluster peer status
gluster pool list

En je zult zien dat de ‘gfs02’ server verbonden is met de peer cluster, en dat hij op de lijst van de pool staat.

Maak een vertrouwde opslagpool

Gedistribueerd GlusterFS volume instellen

Na het aanmaken van de vertrouwde opslagpool, zullen we een nieuw verdeeld glusterfs volume aanmaken. We zullen het nieuwe glusterfs volume aanmaken op basis van de systeemdirectory.

Opmerking:

  • Voor de server productie is het aan te bevelen het glusterfs volume aan te maken met de verschillende partitie, niet met een systeem directory.

Maak een nieuwe directory ‘/glusterfs/distributed’ op elke bot ‘gfs01’ en ‘gfs02’ servers.

mkdir -p /glusterfs/distributed

En maak vanaf de ‘gfs01’ server het verdeelde glusterfs volume aan met de naam ‘vol01′ met 2 replica’s ‘gfs01’ en ‘gfs02’.

gluster volume create vol01 replica 2 transport tcp \
gfs01:/glusterfs/distributed \
gfs02:/glusterfs/distributed \
force

Nu we het verdeelde volume ‘vol01’ hebben aangemaakt – start de ‘vol01’ en controleer de volume info.

gluster volume start vol01
gluster volume info vol01

En het volgende is het resultaat.

Gedistribueerd GlusterFS volume instellen

In dit stadium hebben we het ‘vol01’ volume aangemaakt met het type ‘Replicate’ en 2 bricks op ‘gfs01’ en ‘gfs02’ server. Alle gegevens worden automatisch over elke replicaserver verdeeld, en we zijn klaar om het volume te mounten.

Hieronder de ‘vol01’ volume info van de ‘gfs02’ server.

volume-info

Stap 4 – Opzetten GlusterFS cliënt

In deze stap zullen we het glusterfs volume ‘vol01’ op de Ubuntu client aankoppelen, en we moeten de glusterfs-client op de client server installeren.

Installeer glusterfs-client op het Ubuntu systeem met het apt commando.

sudo apt install glusterfs-client -y

Maak nu een nieuwe directory ‘/mnt/glusterfs’ als de glusterfs-client installatie voltooid is.

mkdir -p /mnt/glusterfs

En koppel het verdeelde glusterfs volume ‘vol01’ aan de map ‘/mnt/glusterfs’.

sudo mount -t glusterfs gfs01:/vol01 /mnt/glusterfs

Controleer nu het beschikbare volume op het systeem.

df -h /mnt/glusterfs

En we krijgen het glusterfs volume aangekoppeld naar de ‘/mnt/glusterfs’ directory.

setup GlusterFS cliënt

Extra:

Om glusterfs permanent op het Ubuntu client systeem te mounten, kunnen we het volume toevoegen aan de ‘/etc/fstab’.

Bewerk het ‘/etc/fstab’ configuratiebestand.

vim /etc/fstab

En plak de configuratie hieronder.

gfs01:/vol01 /mnt/glusterfs glusterfs defaults,_netdev 0 0

Bewaar en sluit af.

Herstart nu de server en als hij online is, zullen we het glusterfs volume ‘vol01’ automatisch via de fstab aangekoppeld krijgen.

Stap 5 – Repliceren/Spiegelen testen

In deze stap testen we het spiegelen van gegevens op elke server nodes.

Monteer het glusterfs volume ‘vol01’ op elke glusterfs server.

Op ‘gfs01’ server.

mount -t glusterfs gfs01:/vol01 /mnt

Op ‘gfs02’ server.

mount -t glusterfs gfs02:/vol01 /mnt

Ga nu terug naar de Ubuntu client en ga naar de ‘/mnt/glusterfs’ directory.

cd /mnt/glusterfs

Maak enkele bestanden aan met het commando touch.

touch file01 file02 file03

Test replicatie

Controleer nu op elke – ‘gfs01’ en ‘gfs02’ – server, en we krijgen alle bestanden die we van de cliëntmachine gemaakt hebben.

cd /mnt/
ls -lah

Hier is het resultaat van de ‘gfs01’ server.

Resultaat van server 1

En hier is het resultaat van de ‘gfs02’ server.

Resultaat van server 2

Alle bestanden die we vanaf de cliënt machine hebben aangemaakt worden verdeeld over alle glusterfs volume node servers.