Website-Suche

Einführung in GlusterFS (Dateisystem) und Installation auf RHEL/CentOS und Fedora


Wir leben in einer Welt, in der die Datenmenge unvorhersehbar wächst und es unser Bedürfnis ist, diese Daten, ob strukturiert oder unstrukturiert, effizient zu speichern. Verteilte Computersysteme bieten gegenüber zentralisierten Computersystemen eine Vielzahl von Vorteilen. Hier werden Daten verteilt gespeichert, wobei mehrere Knoten als Server fungieren.

Das Konzept eines Metadatenservers ist in einem verteilten Dateisystem nicht mehr erforderlich. In verteilten Dateisystemen bietet es einen gemeinsamen Blickwinkel auf alle auf verschiedene Server verteilten Dateien. Auf Dateien/Verzeichnisse auf diesen Speicherservern wird auf normale Weise zugegriffen.

Beispielsweise können die Berechtigungen für Dateien/Verzeichnisse wie im üblichen Systemberechtigungsmodell festgelegt werden, d. h. der Eigentümer, die Gruppe und andere. Der Zugriff auf das Dateisystem hängt grundsätzlich davon ab, wie das jeweilige Protokoll darauf ausgelegt ist.

Was ist GlusterFS?

GlusterFS ist ein verteiltes Dateisystem, das für die Verwendung im Benutzerbereich definiert ist, d. h. Dateisystem im Benutzerbereich (FUSE). Es handelt sich um ein softwarebasiertes Dateisystem, das über eine eigene Flexibilitätsfunktion verfügt.

Schauen Sie sich die folgende Abbildung an, die schematisch die Position von GlusterFS in einem hierarchischen Modell darstellt. Standardmäßig wird das TCP-Protokoll von GlusterFS verwendet.

Vorteile von GlusterFS

  1. Innovation – Es eliminiert die Metadaten und kann die Leistung drastisch verbessern, was uns dabei hilft, Daten und Objekte zu vereinheitlichen.
  2. Elastizität – Angepasst an das Wachstum und die Reduzierung der Datengröße.
  3. Linear skalierbar – Es ist im Petabyte-Bereich und darüber hinaus verfügbar.
  4. Einfachheit – Es ist einfach zu verwalten und unabhängig vom Kernel, während es im Benutzerbereich ausgeführt wird.

Was zeichnet Gluster unter anderen verteilten Dateisystemen aus?

  1. Verkäuflich – Das Fehlen eines Metadatenservers sorgt für ein schnelleres Dateisystem.
  2. Erschwinglich – Die Bereitstellung erfolgt auf handelsüblicher Hardware.
  3. Flexibel – Wie ich bereits sagte, ist GlusterFS ein reines Software-Dateisystem. Hier werden Daten auf nativen Dateisystemen wie ext4, xfs usw. gespeichert.
  4. Open Source – Derzeit wird GlusterFS von Red Hat Inc, einem milliardenschweren Open-Source-Unternehmen, als Teil von Red Hat Storage verwaltet.

Speicherkonzepte in GlusterFS

  1. Brick – Brick ist im Grunde jedes Verzeichnis, das im vertrauenswürdigen Speicherpool gemeinsam genutzt werden soll.
  2. Vertrauenswürdiger Speicherpool – ist eine Sammlung dieser freigegebenen Dateien/Verzeichnisse, die auf dem entworfenen Protokoll basieren.
  3. Blockspeicher – Hierbei handelt es sich um Geräte, über die die Daten in Form von Blöcken über Systeme hinweg verschoben werden.
  4. Cluster – In Red Hat Storage vermitteln sowohl Cluster als auch vertrauenswürdiger Speicherpool die gleiche Bedeutung der Zusammenarbeit von Speicherservern auf der Grundlage eines definierten Protokolls.
  5. Verteiltes Dateisystem – Ein Dateisystem, in dem Daten über verschiedene Knoten verteilt sind, auf denen Benutzer auf die Datei zugreifen können, ohne den tatsächlichen Speicherort der Datei zu kennen. Der Benutzer hat nicht das Gefühl eines Fernzugriffs.
  6. FUSE – Es handelt sich um ein ladbares Kernel-Modul, das es Benutzern ermöglicht, Dateisysteme über dem Kernel zu erstellen, ohne den Kernel-Code einzubeziehen.
  7. glusterd – glusterd ist der GlusterFS-Verwaltungsdaemon, der das Rückgrat des Dateisystems bildet und die ganze Zeit über läuft, wenn sich die Server im aktiven Zustand befinden.
  8. POSIX – Portable Operating System Interface (POSIX) ist die Familie von Standards, die vom IEEE als Lösung für die Kompatibilität zwischen Unix-Varianten in Form einer Application Programmable Interface (API) definiert wurde.
  9. RAID – Redundant Array of Independent Disks (RAID) ist eine Technologie, die durch Redundanz eine erhöhte Speicherzuverlässigkeit bietet.
  10. Subvolume – Ein Baustein, nachdem er von mindestens einem Übersetzer verarbeitet wurde.
  11. Übersetzer – Ein Übersetzer ist der Teil des Codes, der die grundlegenden Aktionen ausführt, die vom Benutzer vom Mount-Punkt aus initiiert werden. Es verbindet ein oder mehrere Sub-Volumes.
  12. Volume – Ein Volume ist eine logische Ansammlung von Bausteinen. Alle Vorgänge basieren auf den verschiedenen vom Benutzer erstellten Volume-Typen.
Verschiedene Arten von Volumes

Darstellungen verschiedener Volume-Typen und Kombinationen dieser grundlegenden Volume-Typen sind ebenfalls zulässig, wie unten gezeigt.

Verteiltes repliziertes Volume

Darstellung eines verteilt-replizierten Volumes.

Installation von GlusterFS in RHEL/CentOS und Fedora

In diesem Artikel installieren und konfigurieren wir GlusterFS zum ersten Mal für eine hohe Speicherverfügbarkeit. Dazu verwenden wir zwei Server, um Volumes zu erstellen und Daten zwischen ihnen zu replizieren.

Schritt: 1 Mindestens zwei Knoten haben

  1. Installieren Sie CentOS 6.5 (oder ein anderes Betriebssystem) auf zwei Knoten.
  2. Legen Sie Hostnamen mit den Namen „server1“ und „server2“ fest.
  3. Eine funktionierende Netzwerkverbindung.
  4. Speicherplatte auf beiden Knoten mit dem Namen „/data/brick“.

Schritt 2: Aktivieren Sie das EPEL- und GlusterFS-Repository

Bevor wir GlusterFS auf beiden Servern installieren, müssen wir die Repositorys EPEL und GlusterFS aktivieren, um externe Abhängigkeiten zu erfüllen. Verwenden Sie den folgenden Link, um das Epel-Repository auf beiden Systemen zu installieren und zu aktivieren.

  1. So aktivieren Sie das EPEL-Repository in RHEL/CentOS

Als nächstes müssen wir das GlusterFs-Repository auf beiden Servern aktivieren.

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

Schritt 3: GlusterFS installieren

Installieren Sie die Software auf beiden Servern.

yum install glusterfs-server

Starten Sie den GlusterFS-Verwaltungsdaemon.

service glusterd start

Überprüfen Sie nun den Status des Daemons.

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

Schritt 4: Konfigurieren Sie SELinux und iptables

Öffnen Sie „/etc/sysconfig/selinux“ und ändern Sie SELinux auf beiden Servern entweder in den Modus „permissiv“ oder „deaktiviert“. Speichern und schließen Sie die Datei.

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

Als nächstes leeren Sie die iptables in beiden Knoten oder müssen den Zugriff auf den anderen Knoten über iptables zulassen.

iptables -F

Schritt 5: Konfigurieren Sie den vertrauenswürdigen Pool

Führen Sie den folgenden Befehl auf „Server1“ aus.

gluster peer probe server2

Führen Sie den folgenden Befehl auf „Server2“ aus.

gluster peer probe server1

Hinweis: Sobald dieser Pool verbunden wurde, können nur vertrauenswürdige Benutzer neue Server in diesem Pool prüfen.

Schritt 6: Richten Sie ein GlusterFS-Volume ein

Sowohl auf Server1 als auch auf Server2.

mkdir /data/brick/gv0

Erstellen Sie ein Volume auf einem beliebigen einzelnen Server und starten Sie das Volume. Hier habe ich „Server1“ genommen.

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

Bestätigen Sie als Nächstes den Status des Volumes.

gluster volume info

Hinweis: Wenn das In-Case-Volume nicht gestartet wird, werden die Fehlermeldungen unter „/var/log/glusterfs“ auf einem oder mehreren protokolliert beide Server.

Schritt 7: Überprüfen Sie das GlusterFS-Volume

Hängen Sie das Volume in ein Verzeichnis unter „/mnt“ ein.

mount -t glusterfs server1:/gv0 /mnt

Jetzt können Sie Dateien auf dem Mount-Punkt als Einzelansicht des Dateisystems erstellen und bearbeiten.

Funktionen von GlusterFS

  1. Selbstheilung – Wenn einer der Bausteine in einem replizierten Volume ausgefallen ist und Benutzer die Dateien im anderen Baustein ändern, wird der Daemon zur automatischen Selbstheilung aktiviert, sobald der Baustein als nächstes verfügbar ist Die während der Ausfallzeit erfolgten Transaktionen werden entsprechend synchronisiert.
  2. Neuausgleich – Wenn wir einem vorhandenen Volume, auf dem sich zuvor große Datenmengen befanden, einen neuen Baustein hinzufügen, können wir einen Neuausgleichsvorgang durchführen, um die Daten auf alle Bausteine einschließlich des neu hinzugefügten Bausteins zu verteilen.
  3. Geo-Replikation – Bietet Datensicherungen für die Notfallwiederherstellung. Hier kommt das Konzept der Master- und Slave-Volumes zum Einsatz. Wenn also der Master ausfällt, können alle Daten über den Slave abgerufen werden. Diese Funktion wird verwendet, um Daten zwischen geografisch getrennten Servern zu synchronisieren. Für die Initialisierung einer Georeplikationssitzung ist eine Reihe von Gluster-Befehlen erforderlich.

Hier ist der folgende Screenshot, der das Geo-Replikationsmodul zeigt.

Referenzlinks

GlusterFS-Homepage

Das war es fürs Erste!. Bleiben Sie auf dem Laufenden, um in meinen kommenden Artikeln detaillierte Beschreibungen zu Funktionen wie Selbstheilung und Neuausgleich, Georeplikation usw. zu erhalten.