Zoeken op website

Inleiding tot GlusterFS (bestandssysteem) en installatie op RHEL/CentOS en Fedora


We leven in een wereld waarin gegevens op een onvoorspelbare manier groeien en het is onze behoefte om deze gegevens, of deze nu gestructureerd of ongestructureerd zijn, op een efficiënte manier op te slaan. Gedistribueerde computersystemen bieden een breed scala aan voordelen ten opzichte van gecentraliseerde computersystemen. Hier worden gegevens gedistribueerd opgeslagen met verschillende knooppunten als servers.

Het concept van een metadataserver is niet langer nodig in een gedistribueerd bestandssysteem. In gedistribueerde bestandssystemen biedt het een gemeenschappelijk gezichtspunt van alle bestanden, gescheiden over verschillende servers. Bestanden/mappen op deze opslagservers zijn op normale manieren toegankelijk.

De machtigingen voor bestanden/mappen kunnen bijvoorbeeld worden ingesteld zoals in het gebruikelijke systeemmachtigingsmodel, d.w.z. de eigenaar, groep en anderen. De toegang tot het bestandssysteem hangt in principe af van hoe het specifieke protocol is ontworpen om erop te werken.

Wat is GlusterFS?

GlusterFS is een gedistribueerd bestandssysteem dat is gedefinieerd voor gebruik in de gebruikersruimte, d.w.z. bestandssysteem in gebruikersruimte (FUSE). Het is een op software gebaseerd bestandssysteem dat rekening houdt met zijn eigen flexibiliteitsfunctie.

Kijk naar de volgende afbeelding die schematisch de positie van GlusterFS in een hiërarchisch model weergeeft. Standaard wordt het TCP-protocol gebruikt door GlusterFS.

Voordelen voor GlusterFS

  1. Innovatie – Het elimineert de metadata en kan de prestaties drastisch verbeteren, wat ons zal helpen gegevens en objecten te verenigen.
  2. Elasticiteit – Aangepast aan de groei en verkleining van de gegevensgrootte.
  3. Lineair schalen – Het is beschikbaar tot petabytes en meer.
  4. Eenvoud – Het is gemakkelijk te beheren en onafhankelijk van de kernel terwijl het in de gebruikersruimte draait.

Wat maakt Gluster zo bijzonder tussen andere gedistribueerde bestandssystemen?

  1. Verkoopbaar – Het ontbreken van een metadataserver zorgt voor een sneller bestandssysteem.
  2. Betaalbaar – Het wordt geïmplementeerd op basishardware.
  3. Flexibel – Zoals ik al eerder zei, is GlusterFS een bestandssysteem dat alleen uit software bestaat. Hier worden gegevens opgeslagen op native bestandssystemen zoals ext4, xfs enz.
  4. Open Source – Momenteel wordt GlusterFS onderhouden door Red Hat Inc, een open source-bedrijf van een miljard dollar, als onderdeel van Red Hat Storage.

Opslagconcepten in GlusterFS

  1. Brick – Brick is eigenlijk elke map die bedoeld is om te worden gedeeld met de vertrouwde opslagpool.
  2. Vertrouwde opslagpool – is een verzameling van deze gedeelde bestanden/mappen, die zijn gebaseerd op het ontworpen protocol.
  3. Blokopslag – Dit zijn apparaten waarmee de gegevens in de vorm van blokken tussen systemen worden verplaatst.
  4. Cluster – In Red Hat Storage brengen zowel cluster als vertrouwde opslagpool dezelfde betekenis over van samenwerking tussen opslagservers op basis van een gedefinieerd protocol.
  5. Gedistribueerd bestandssysteem – Een bestandssysteem waarin gegevens worden verspreid over verschillende knooppunten waar gebruikers toegang hebben tot het bestand zonder de werkelijke locatie van het bestand te kennen. De gebruiker ervaart niet het gevoel van externe toegang.
  6. FUSE – Het is een laadbare kernelmodule waarmee gebruikers bestandssystemen boven de kernel kunnen maken zonder dat er kernelcode bij betrokken is.
  7. glusterd – glusterd is de GlusterFS-beheerdaemon die de ruggengraat vormt van het bestandssysteem dat de hele tijd actief zal zijn wanneer de servers in actieve status zijn.
  8. POSIX – Portable Operating System Interface (POSIX) is de familie van standaarden die door de IEEE is gedefinieerd als een oplossing voor de compatibiliteit tussen Unix-varianten in de vorm van een Application Programmable Interface (API).
  9. RAID – Redundant Array of Independent Disks (RAID) is een technologie die een grotere opslagbetrouwbaarheid biedt door middel van redundantie.
  10. Subvolume – Een steen nadat deze door ten minste één vertaler is verwerkt.
  11. Vertaler – Een vertaler is dat stukje code dat de basisacties uitvoert die door de gebruiker vanaf het koppelpunt worden geïnitieerd. Het verbindt een of meer subvolumes.
  12. Volume – Een volume is een logische verzameling stenen. Alle bewerkingen zijn gebaseerd op de verschillende soorten volumes die door de gebruiker zijn gemaakt.
Verschillende soorten volumes

Weergaven van verschillende soorten volumes en combinaties van deze basisvolumetypen zijn ook toegestaan, zoals hieronder weergegeven.

Gedistribueerd gerepliceerd volume

Weergave van een gedistribueerd gerepliceerd volume.

Installatie van GlusterFS in RHEL/CentOS en Fedora

In dit artikel zullen we GlusterFS voor het eerst installeren en configureren voor hoge beschikbaarheid van opslag. Hiervoor gebruiken we twee servers om volumes te creëren en gegevens daartussen te repliceren.

Stap :1 Zorg voor minimaal twee knooppunten

  1. Installeer CentOS 6.5 (of een ander besturingssysteem) op twee knooppunten.
  2. Stel hostnamen in met de naam “server1” en “server2“.
  3. Een werkende netwerkverbinding.
  4. Opslagschijf op beide knooppunten genaamd “/data/brick“.

Stap 2: Schakel EPEL en GlusterFS Repository in

Voordat we GlusterFS op beide servers installeren, moeten we EPEL en GlusterFS repository's inschakelen om aan externe afhankelijkheden te voldoen. Gebruik de volgende link om de epel-repository op beide systemen te installeren en in te schakelen.

  1. EPEL-repository inschakelen in RHEL/CentOS

Vervolgens moeten we GlusterFs-repository op beide servers inschakelen.

wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo

Stap 3: GlusterFS installeren

Installeer de software op beide servers.

yum install glusterfs-server

Start de GlusterFS-beheerdaemon.

service glusterd start

Controleer nu de status van de daemon.

service glusterd status
Voorbeelduitvoer
service glusterd start
  service glusterd status
  glusterd.service - LSB: glusterfs server
   	  Loaded: loaded (/etc/rc.d/init.d/glusterd)
  	  Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago
  	 Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)
  	  CGroup: name=systemd:/system/glusterd.service
  		  ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid
  		  ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost...
  		  └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...

Stap 4: Configureer SELinux en iptables

Open ‘/etc/sysconfig/selinux’ en verander SELinux naar de “permissieve” of “uitgeschakelde” modus op beide servers. Sla het bestand op en sluit het.

This file controls the state of SELinux on the system.
SELINUX= can take one of these three values:
    enforcing - SELinux security policy is enforced.
    permissive - SELinux prints warnings instead of enforcing.
    disabled - No SELinux policy is loaded.
SELINUX=disabled
SELINUXTYPE= can take one of these two values:
    targeted - Targeted processes are protected,
    mls - Multi Level Security protection.
SELINUXTYPE=targeted

Spoel vervolgens de iptables in beide knooppunten of geef toegang tot het andere knooppunt via iptables.

iptables -F

Stap 5: Configureer de vertrouwde pool

Voer de volgende opdracht uit op ‘Server1‘.

gluster peer probe server2

Voer de volgende opdracht uit op ‘Server2‘.

gluster peer probe server1

Opmerking: zodra deze pool is verbonden, kunnen alleen vertrouwde gebruikers nieuwe servers in deze pool onderzoeken.

Stap 6: Stel een GlusterFS-volume in

Op zowel server1 als server2.

mkdir /data/brick/gv0

Maak een volume op een enkele server en start het volume. Hier heb ik ‘Server1‘ genomen.

gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0
gluster volume start gv0

Bevestig vervolgens de status van het volume.

gluster volume info

Opmerking: als het in-case volume niet wordt gestart, worden de foutmeldingen vastgelegd onder '/var/log/glusterfs' op een of meer zowel de servers.

Stap 7: Controleer het GlusterFS-volume

Koppel het volume aan een map onder ‘/mnt’.

mount -t glusterfs server1:/gv0 /mnt

Nu kunt u bestanden op het koppelpunt maken en bewerken als een enkele weergave van het bestandssysteem.

Kenmerken van GlusterFS

  1. Zelfherstel – Als een van de stenen in een gerepliceerd volume niet beschikbaar is en gebruikers de bestanden in de andere steen wijzigen, komt de automatische zelfherstel-daemon in actie zodra de steen als volgende beschikbaar is tijd en de transacties die tijdens de downtime hebben plaatsgevonden, worden dienovereenkomstig gesynchroniseerd.
  2. Opnieuw in evenwicht brengen – Als we een nieuwe steen toevoegen aan een bestaand volume, waar voorheen een grote hoeveelheid gegevens stond, kunnen we een herbalanceringsbewerking uitvoeren om de gegevens over alle stenen te verdelen, inclusief de nieuw toegevoegde steen.
  3. Geo-replicatie – Het biedt back-ups van gegevens voor noodherstel. Hier komt het concept van master- en slave-volumes. Zodat als de master uitvalt, alle gegevens via de slave toegankelijk zijn. Deze functie wordt gebruikt om gegevens te synchroniseren tussen geografisch gescheiden servers. Voor het initialiseren van een geo-replicatiesessie is een reeks glansopdrachten vereist.

Hier is de volgende schermafbeelding die de Geo-replicatiemodule toont.

Referentiekoppelingen

GlusterFS-startpagina

Dat is het voor nu!. Blijf op de hoogte van de gedetailleerde beschrijving van functies zoals zelfgenezing en opnieuw in balans brengen, geo-replicatie, enz. in mijn komende artikelen.