GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Beginnen Sie mit GlusterFS – Überlegungen und Installation

Dieser Artikel wurde aktualisiert, um die Installation von GlusterFS® 7 auf CentOS® 7 und Ubuntu® 18.04 zu behandeln. Die gesamte ursprüngliche Arbeit in diesem Dokument ist dieselbe, mit Ausnahme des Schritts, in dem Sie das Volume mit der Replik erstellen Schlüsselwort.

Bevor Sie mit der Verwendung von GlusterFS beginnen, müssen Sie entscheiden, welche Art von Volume Sie für Ihre Umgebung benötigen. Die folgenden Methoden werden am häufigsten verwendet, um unterschiedliche Ergebnisse zu erzielen.

Repliziertes Volume

Diese Art von Volume bietet eine Dateireplikation über mehrere Bausteine ​​hinweg. Es ist die beste Wahl für Umgebungen, die hohe Verfügbarkeit, hohe Zuverlässigkeit und skalierbaren Speicher erfordern. Dieser Volume-Typ funktioniert gut, wenn Sie planen, das GlusterFS-Volume beispielsweise selbst als Dokumentenstamm des Webservers (/var/www ) oder ähnlich, wobei sich alle Dateien auf diesem Knoten befinden müssen. Der an replica übergebene Wert ist die gleiche Anzahl von Knoten im Volume.

Dateien werden auf jeden Baustein im Volume kopiert, ähnlich wie bei einem redundanten Array unabhängiger Festplatten (RAID-1). Sie können jedoch drei oder mehr Steine ​​oder eine ungerade Anzahl von Steinen haben. Der nutzbare Speicherplatz hat die Größe eines Bausteins, und alle Dateien, die auf einen Baustein geschrieben werden, werden auf alle anderen repliziert. Volumes dieses Typs bieten in den meisten Umgebungen auch eine verbesserte Leseleistung und sind die am häufigsten verwendete Art von Volumes, wenn sich Clients außerhalb der GlusterFS-Knoten selbst befinden.

Verteiltes repliziertes Volume

Ähnlich wie bei einem RAID-10 muss eine gerade Anzahl von Bricks verwendet werden. Der nutzbare Speicherplatz ist die Größe der kombinierten Bausteine, die an die Replik übergeben werden Wert. Zum Beispiel, wenn vier Bausteine ​​mit 20 Gigabyte (GB) vorhanden sind und Sie passieren Nachbau 2 Bis zur Erstellung werden Ihre Dateien auf zwei Knoten (40 GB) verteilt und auf zwei Knoten repliziert. Mit sechs 20-GB-Bausteinen und Replik 3 , werden Ihre Dateien auf drei Knoten (60 GB) verteilt und auf drei Knoten repliziert. Wenn Sie Replikat 2 verwendet haben, werden sie dann auf zwei Knoten (40 GB) verteilt und paarweise auf vier Knoten repliziert. Diese Verteilung und Replikation werden verwendet, wenn sich Ihre Clients außerhalb des Clusters befinden, nicht bei lokalen Self-Mounts.

Voraussetzungen

  • Zwei oder mehr Server mit separatem Speicher. Die Beispiele in diesem Artikel basieren auf CentOS 7- und Ubuntu 18.04-Servern.
  • Ein privates Netzwerk zwischen Servern. Die Beispiele in diesem Artikel verwenden 192.168.0.0/24 .

Build-Setup

Der in diesem Dokument beschriebene Build verwendet das folgende Setup:

  • Vier Rackspace Cloud-Server-Images mit einem /dev/xvde einsatzbereite Trennwand für jeden Baustein
  • Privates One Cloud-Netzwerk unter 192.168.0.0/24 für die GlusterFS-Kommunikation
  • GlusterFS 7.1 aus dem Paket-Repository des Anbieters installiert

Server vorbereiten

Führen Sie die folgenden Konfigurationen und Installationen durch, um die Server vorzubereiten:

  1. Konfigurieren Sie /etc/hosts .
  2. Installieren Sie die Updates des Betriebssystems (OS).
  3. Installieren Sie die GlusterFS-Software.
  4. Netzwerkzugriff konfigurieren.
  5. GlusterFS-Knoten verbinden.

Konfiguriere /etc/hosts für die Intra-Node-Kommunikation

Statt DNS zu verwenden, bereiten Sie /etc/hosts vor auf jedem Server und sorgen dafür, dass die Server miteinander kommunizieren können. Alle Server haben den Namen glusterN als Hostname, verwenden Sie also glusN für die private Kommunikationsschicht zwischen Servern.

# vi /etc/hosts
192.168.0.1  glus-01
192.168.0.2  glus-02
192.168.0.3  glus-03
192.168.0.4  glus-04

# ping -c2 glus-01; ping -c2 glus-02;  ping -c2 glus-03;  ping -c2 glus-04

Pakete installieren

Führen Sie die Befehle in diesem Abschnitt aus, um die folgenden Schritte auszuführen:

  1. Betriebssystem-Updates installieren.
  2. Installieren Sie das GlusterFS-Repository und die GlusterFS-Pakete.

CentOS

yum update -y
yum install -y centos-release-gluster7
yum install -y glusterfs-server

Ubuntu-Betriebssystem

Im Standard-Ubuntu-Repository ist GlusterFS 3.13.2 installiert. Verwenden Sie die folgenden Befehle, um 7.1 zu installieren:

apt update
apt upgrade -y
add-apt-repository -y ppa:gluster/glusterfs-7
apt install -y glusterfs-server

Netzwerkzugriff konfigurieren

CentOS

Verwenden Sie die folgenden Befehle, um Gluster-Datenverkehr zwischen Ihren Knoten zuzulassen und Client-Mounts zuzulassen:

firewall-cmd --add-service=glusterfs
firewall-cmd --add-service=glusterfs --permanent

Ubuntu-Betriebssystem

Verwenden Sie die folgenden Befehle, um den gesamten Datenverkehr über Ihr privates Netzwerksegment zuzulassen, um die Gluster-Kommunikation zu erleichtern:

ufw enable
ufw allow from 192.168.0.0/24

Bereiten Sie die Steine ​​vor

Führen Sie die Befehle in diesem Abschnitt aus, um die folgenden Schritte auszuführen:

  1. Partitionsblockgeräte.
  2. Erstellen Sie die Grundlage für den Logical Volume Manager (LVM).
  3. Volume Bricks vorbereiten.

Die zugrunde liegenden Bausteine ​​sind ein Standarddateisystem und ein Einhängepunkt. Hängen Sie jeden Baustein so ein, dass Benutzer davon abgehalten werden, in das Verzeichnis zu wechseln und selbst in die zugrunde liegenden Bausteine ​​zu schreiben.

Warnung: Direktes Schreiben auf einen Baustein beschädigt das Volume.

Die Bausteine ​​müssen pro Knoten eindeutig sein, und es sollte ein Verzeichnis innerhalb des Einhängepunkts geben, das bei der Volume-Erstellung verwendet werden kann. Der Versuch, ein repliziertes Volume unter Verwendung der obersten Ebene der Einhängepunkte zu erstellen, führt zu einem Fehler mit Anweisungen zur Verwendung eines Unterverzeichnisses.

Alle Knoten

parted -s -- /dev/xvde mktable gpt
parted -s -- /dev/xvde mkpart primary 2048s 100%
parted -s -- /dev/xvde set 1 lvm on
pvcreate /dev/xvde1
vgcreate vgglus-01 /dev/xvde1
lvcreate -l 100%VG -n gbrick1 vgglus-01
mkfs.xfs /dev/vgglus-01/gbrick1
echo '/dev/vgglus-01/gbrick1 /var/lib/gvol0 xfs defaults 0 0' >> /etc/fstab
mkdir /var/lib/gvol0
mount /var/lib/gvol0
  • glus-01

     mkdir /var/lib/gvol0/brick1
    
  • glus-02

     mkdir /var/lib/gvol0/brick2
    
  • glus-03

     mkdir /var/lib/gvol0/brick3
    
  • glus-04

     mkdir /var/lib/gvol0/brick4
    

GlusterFS einrichten

Verwenden Sie die folgenden Schritte, um das GlusterFS-Setup auszuführen.

Starten Sie den glusterfsd-Daemon

Sie können den Daemon zur Laufzeit neu starten, indem Sie die folgenden Befehle verwenden:

systemctl enable glusterd
systemctl start glusterd

Bauen Sie eine Peer-Gruppe auf

Eine Peer-Gruppe wird als vertrauenswürdiger Speicherpool bezeichnet in GlusterFS.

  • glus-01

    gluster peer probe glus-02
    gluster peer probe glus-03
    gluster peer probe glus-04
    gluster peer status
    
  • glus-02

    gluster peer status
    
  • glus-03

    gluster peer status
    
  • glus-04

    gluster peer status
    

Jetzt können Sie den Status Ihres Knotens und des Gluster-Serverpools überprüfen:

[root@gluster1 ~]# gluster pool list
UUID	                				Hostname	State
734aea4c-fc4f-4971-ba3d-37bd5d9c35b8	glus-04   	Connected
d5c9e064-c06f-44d9-bf60-bae5fc881e16	glus-03   	Connected
57027f23-bdf2-4a95-8eb6-ff9f936dc31e	glus-02   	Connected
e64c5148-8942-4065-9654-169e20ed6f20	localhost	Connected

Volume erstellen

Standardmäßig erlaubt glusterd NFS globales Lesen/Schreiben während der Volume-Erstellung, daher sollten Sie grundlegende Autorisierungsbeschränkungen nur für das private Subnetz einrichten. glusterd startet NFSd automatisch auf jedem Server und exportiert das Volume von jedem der Knoten. Der Grund für dieses Verhalten ist, dass die Clients genau dieselbe Version von GlusterFS-Paketen ausführen müssen, um das native Client-Dateisystem im Userspace (FUSE) zum Mounten des Volumes auf Clients zu verwenden. Wenn die Versionen unterschiedlich sind, kann es Unterschiede in den von Servern und Clients verwendeten Hash-Algorithmen geben, und die Clients können keine Verbindung herstellen.

Repliziertes Volume

Das folgende Beispiel erstellt eine Replikation auf alle vier Knoten. Jeder Knoten enthält eine Kopie aller Daten, und die Größe des Volumes entspricht der Größe eines einzelnen Bausteins. Beachten Sie, dass die Ausgabe 1 x 4 = 4 anzeigt .

Nur ein Knoten :

 gluster volume create gvol0 replica 4 transport tcp \
 glus-01:/var/lib/gvol0/brick1 \
 glus-02:/var/lib/gvol0/brick2 \
 glus-03:/var/lib/gvol0/brick3 \
 glus-04:/var/lib/gvol0/brick4
 gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Verteiltes repliziertes Volume

Dieses Beispiel erstellt eine verteilte Replikation auf 2x2 Knoten. Jedes Knotenpaar enthält die Daten, und die Größe des Volumes entspricht der Größe von zwei Ziegeln. Beachten Sie, dass die Ausgabe 2 x 2 = 4 anzeigt .

Nur ein Knoten :

gluster volume create gvol0 replica 2 transport tcp \
glus-01:/var/lib/gvol0/brick1 \
glus-02:/var/lib/gvol0/brick2 \
glus-03:/var/lib/gvol0/brick3 \
glus-04:/var/lib/gvol0/brick4
gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Distributed-Replicate
Volume ID: b2ddd34b-ffb4-4fd8-ae60-b90adbd4c2ab
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Volume löschen

Nachdem Sie sichergestellt haben, dass keine Clients (entweder lokal oder remote) das Volume mounten, können Sie das Volume anhalten und mit den folgenden Befehlen löschen:

gluster volume stop gvol0
gluster volume delete gvol0

Ziegel räumen

Wenn Bausteine ​​in einem Volumen verwendet werden und entfernt werden müssen, können Sie eine der folgenden Methoden verwenden:

GlusterFS legt ein Attribut für die Brick-Unterverzeichnisse fest. Wenn Sie dieses Attribut löschen, können die Steine ​​wiederverwendet werden.

  • glus-01:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick1/setfattr -x trusted.gfid /var/lib/gvol0/brick1rm -rf /var/lib/gvol0/brick1/.glusterfs

  • glus-02:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick2/setfattr -x trusted.gfid /var/lib/gvol0/brick2rm -rf /var/lib/gvol0/brick2/.glusterfs

  • glus-03:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick3/setfattr -x trusted.gfid /var/lib/gvol0/brick3rm -rf /var/lib/gvol0/brick3/.glusterfs

  • glus-04:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick4/setfattr -x trusted.gfid /var/lib/gvol0/brick4rm -rf /var/lib/gvol0/brick4/.glusterfs

Alternativ können Sie die Unterverzeichnisse löschen und dann neu erstellen.

  • glus-01

    rm -rf /var/lib/gvol0/brick1mkdir /var/lib/gvol0/brick1

  • glus-02:

    rm -rf /var/lib/gvol0/brick2mkdir /var/lib/gvol0/brick2

  • glus-03:

    rm -rf /var/lib/gvol0/brick3mkdir /var/lib/gvol0/brick3

  • glus-04:

    rm -rf /var/lib/gvol0/brick4mkdir /var/lib/gvol0/brick4

Bausteine ​​hinzufügen

Sie können einem laufenden Volumen weitere Bausteine ​​hinzufügen. Fügen Sie unserem replizierten Volume-Beispiel oben einen zusätzlichen Baustein hinzu, indem Sie den folgenden Befehl verwenden:

gluster volume add-brick gvol0 replica 5 gluster5:/var/lib/gvol0/brick5

Sie können den add-brick verwenden Befehl, um das Layout Ihres Volumes zu ändern, um beispielsweise ein verteiltes Volume mit zwei Knoten in ein verteiltes repliziertes Volume mit vier Knoten zu ändern. Nach einem solchen Vorgang müssen Sie Ihre Lautstärke neu ausgleichen. Neue Dateien werden automatisch auf den neuen Knoten erstellt, aber die alten werden nicht verschoben.

gluster volume add-brick gvol0 replica 2 \
gluster5:/var/lib/gvol0/brick5 ;
gluster6:/var/lib/gvol0/brick6
gluster volume rebalance gvol0 start
gluster volume rebalance gvol0 status

## If needed (something didn't work right)
gluster volume rebalance gvol0 stop

Lautstärkeoptionen

Führen Sie den folgenden Befehl aus, um konfigurierte Volume-Optionen anzuzeigen:

gluster volume info gvol0

Das Folgende ist eine Beispielausgabe:

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Verwenden Sie zum Festlegen einer Option für eine Lautstärke das Set Schlüsselwort wie folgt:

gluster volume set gvol0 performance.write-behind off
volume set: success

Um eine Option für ein Volume auf die Standardeinstellung zurückzusetzen, verwenden Sie Zurücksetzen Schlüsselwort wie folgt:

gluster volume reset gvol0 performance.read-ahead
volume reset: success: reset volume successful

Client-Mounts

Die bevorzugte Methode für einen Client zum Mounten eines GlusterFS-Volumes ist die Verwendung des nativen FUSE-Clients. NFS-Mounts sind möglich, wenn GlusterFS zusammen mit NFS-Ganesha® bereitgestellt wird.

FUSE-Client

Der FUSE-Client ermöglicht das Mounten mit einer GlusterFS-Verbindung im „Round-Robin“-Stil. In /etc/fstab , wird der Name eines Knotens verwendet. Interne Mechanismen lassen jedoch zu, dass dieser Knoten ausfällt, und die Clients wechseln zu anderen verbundenen Knoten im vertrauenswürdigen Speicherpool.

CentOS :

yum install -y centos-release-gluster7
yum install -y glusterfs-fuse

Ubuntu :

add-apt-repository -y ppa:gluster/glusterfs-7
apt install glusterfs-client

Häufig :

vi /etc/hosts
192.168.0.2  glus-01
192.168.0.4  glus-02
192.168.0.1  glus-03
192.168.0.3  glus-04

`modprobe fuse
 echo 'glus-01:/gvol0 /mnt/gluster/gvol0 glusterfs _netdev 0 0' >> /etc/fstab
 mkdir -p /mnt/gluster/gvol0
 mount /mnt/gluster/gvol0`

Referenzen

  • https://www.gluster.org/announcing-gluster-7-0/
  • https://docs.gluster.org/en/latest/
  • https://wiki.centos.org/HowTos/GlusterFSonCentOS
  • https://kifarunix.com/install-and-setup-glusterfs-on-ubuntu-18-04/
  • https://launchpad.net/~gluster

Nächster Artikel

GlusterFS-Fehlerbehebung


Linux
  1. Beginnen Sie mit NetworkManager unter Linux

  2. Erste Schritte mit einem FreeBSD-Cloud-Server

  3. Beginnen Sie mit Cloud-Servern

  4. Beginnen Sie mit Magento auf Debian 10

  5. Beginnen Sie mit Latex unter Linux

Beginnen Sie mit GNUPlot

Podman-Tutorial – Erste Schritte mit Podman

So installieren und beginnen Sie mit Itch unter Ubuntu Linux

Erste Schritte mit Arch Linux

Installation und erste Schritte mit Git

Erste Schritte mit Midnight Commander im Jahr 2022