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:
- Konfigurieren Sie
/etc/hosts
. - Installieren Sie die Updates des Betriebssystems (OS).
- Installieren Sie die GlusterFS-Software.
- Netzwerkzugriff konfigurieren.
- 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:
- Betriebssystem-Updates installieren.
- 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:
- Partitionsblockgeräte.
- Erstellen Sie die Grundlage für den Logical Volume Manager (LVM).
- 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