Introduktion til GlusterFS (File System) og installation på RHEL/CentOS og Fedora


Vi lever i en verden, hvor data vokser på en uforudsigelig måde, og det er vores behov for at gemme disse data, hvad enten det er struktureret eller ustruktureret, på en effektiv måde. Distribuerede computersystemer tilbyder en bred vifte af fordele i forhold til centraliserede computersystemer. Her lagres data distribueret med flere noder som servere.

Konceptet med en metadataserver er ikke længere nødvendigt i et distribueret filsystem. I distribuerede filsystemer tilbyder det et fælles synspunkt for alle filerne adskilt mellem forskellige servere. Der er adgang til filer/mapper på disse lagerservere på normale måder.

For eksempel kan tilladelserne til filer/mapper indstilles som i den sædvanlige systemtilladelsesmodel, dvs. ejeren, gruppen og andre. Adgangen til filsystemet afhænger grundlæggende af, hvordan den bestemte protokol er designet til at arbejde på det samme.

Hvad er GlusterFS?

GlusterFS er et distribueret filsystem, der er defineret til at blive brugt i brugerrummet, dvs. File System in User Space (FUSE). Det er et softwarebaseret filsystem, der tegner sig for sin egen fleksibilitetsfunktion.

Se på følgende figur, der skematisk repræsenterer GlusterFS 'position i en hierarkisk model. Som standard vil TCP-protokol blive brugt af GlusterFS.

  1. Innovation - Det eliminerer metadataene og kan dramatisk forbedre ydeevnen, som hjælper os med at samle data og objekter.
  2. Elasticitet - Tilpasset til vækst og reduktion af datastørrelsen.
  3. Skaler lineært - Den har tilgængelighed til petabytes og derover.
  4. Enkelhed - Det er let at styre og uafhængigt af kernen, mens du kører i brugerrummet.

  1. Salgbar - Fravær af en metadataserver giver et hurtigere filsystem.
  2. Overkommelig - Den implementeres på råvarehardware.
  3. Fleksibel - Som jeg sagde tidligere, er GlusterFS et filsystem, der kun er software. Her lagres data på native filsystemer som ext4, xfs osv.
  4. Open Source - I øjeblikket vedligeholdes GlusterFS af Red Hat Inc, en milliard dollar open source-virksomhed, som en del af Red Hat Storage.

  1. Mursten - Mursten er dybest set en hvilken som helst mappe, der er beregnet til at blive delt mellem den betroede lagerpool.
  2. Trusted Storage Pool - er en samling af disse delte filer/mapper, der er baseret på den designede protokol.
  3. Blokering - De er enheder, gennem hvilke dataene flyttes på tværs af systemer i form af blokke.
  4. Klynge - I Red Hat Storage formidler både klynge og betroet lagerpool den samme betydning af samarbejde mellem lagerservere baseret på en defineret protokol.
  5. Distribueret filsystem - Et filsystem, hvor data spredes over forskellige noder, hvor brugere kan få adgang til filen uden at kende den faktiske placering af filen. Brugeren oplever ikke følelsen af fjernadgang.
  6. FUSE - Det er et kernelmodul, der kan indlæses, der giver brugerne mulighed for at oprette filsystemer over kernen uden at involvere nogen af kernekoden.
  7. glusterd - glusterd er GlusterFS-styringsdemon, som er rygraden i filsystemet, der kører hele tiden, når serverne er i aktiv tilstand.
  8. POSIX - Portable Operating System Interface (POSIX) er familien af standarder, der er defineret af IEEE som en løsning på kompatibiliteten mellem Unix-varianter i form af et API (Application Programmable Interface).
  9. RAID - RAID (Redundant Array of Independent Disks) er en teknologi, der giver øget lagringspålidelighed gennem redundans.
  10. Undervolumen - En mursten, der er behandlet af mindst en oversætter.
  11. Oversætter - En oversætter er det stykke kode, der udfører de grundlæggende handlinger, der er initieret af brugeren fra monteringspunktet. Det forbinder et eller flere undervolumener.
  12. Volumen - Et bind er en logisk samling af mursten. Alle operationer er baseret på de forskellige typer volumener oprettet af brugeren.

Repræsentationer af forskellige volumetyper og kombinationer mellem disse grundlæggende volumetyper er også tilladt som vist nedenfor.

Repræsentation af et distribueret replikeret bind.

Installation af GlusterFS i RHEL/CentOS og Fedora

I denne artikel installerer og konfigurerer vi GlusterFS for første gang for høj tilgængelighed af lager. Til dette tager vi to servere til at oprette volumener og replikere data mellem dem.

  1. Installer CentOS 6.5 (eller et hvilket som helst andet operativsystem) på to noder.
  2. Indstil værtsnavne med navnet “server1” og “server2“.
  3. En fungerende netværksforbindelse.
  4. Lagerdisk på begge noder med navnet “/ data/brick”.

Før vi installerer GlusterFS på begge servere, skal vi aktivere EPEL- og GlusterFS-arkiver for at tilfredsstille eksterne afhængigheder. Brug følgende link til at installere og aktivere epel repository under begge systemerne.

  1. Sådan aktiveres EPEL Repository i RHEL/CentOS

Dernæst er vi nødt til at aktivere GlusterFs repository på begge servere.

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

Installer softwaren på begge servere.

# yum install glusterfs-server

Start GlusterFS-ledelsesdemon.

# service glusterd start

Tjek nu status for dæmonen.

# service glusterd status
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/...

Åbn ‘/ etc/sysconfig/selinux’ og skift SELinux til enten “tilladelig” eller “deaktiveret” tilstand på begge servere. Gem og luk filen.

# 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

Skyl derefter iptables i begge noder, eller brug for at give adgang til den anden node via iptables.

# iptables -F

Kør følgende kommando på 'Server1'.

gluster peer probe server2

Kør følgende kommando på 'Server2'.

gluster peer probe server1

Bemærk: Når denne pool er blevet tilsluttet, er det kun pålidelige brugere, der kan undersøge nye servere i denne pool.

På både server1 og server2.

# mkdir /data/brick/gv0

Opret en lydstyrke På en enkelt server, og start lydstyrken. Her har jeg taget 'Server1'.

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

Bekræft derefter status for lydstyrken.

# gluster volume info

Bemærk: Hvis volumen i tilfælde ikke startes, logges fejlmeddelelserne under '/ var/log/glusterfs' på den ene eller begge serverne.

Monter lydstyrken til et bibliotek under ‘/ mnt’.

# mount -t glusterfs server1:/gv0 /mnt

Nu kan du oprette, redigere filer på monteringspunktet som en enkelt visning af filsystemet.

Funktioner af GlusterFS

  1. Selvhelbredelse - Hvis nogen af murstenene i en replikeret lydstyrke er nede, og brugerne ændrer filerne inden for den anden mursten, vil den automatiske selvhelbredende dæmon træde i kraft, så snart mursten er op næste gang og transaktionerne opstod i nedetid synkroniseres i overensstemmelse hermed.
  2. Rebalance - Hvis vi føjer en ny mursten til en eksisterende volumen, hvor der tidligere var stor mængde data, kan vi udføre en genbalanceringshandling for at distribuere dataene mellem alle murstenene inklusive den nyligt tilføjede mursten.
  3. Geo-replikering - Det giver sikkerhedskopier af data til katastrofegendannelse. Her kommer konceptet med mester- og slavevolumener. Så hvis master er nede, kan hele dataene tilgås via slave. Denne funktion bruges til at synkronisere data mellem geografisk adskilte servere. Initialisering af en geo-replikeringssession kræver en række glusterkommandoer.

Her er følgende skærmgreb, der viser Geo-replikationsmodulet.

Reference Links

GlusterFS hjemmeside

Det er det for nu !. Bliv opdateret for den detaljerede beskrivelse af funktioner som Self-heal og Re-balance, Geo-replikation osv. I mine kommende artikler.