Wie man GlusterFS unter Ubuntu installiert und konfiguriert – HowtoForge (2024)

GlusterFS ist ein kostenloses, quelloffenes und skalierbares Netzwerk-Dateisystem, das zunächst von Gluster Inc. und später von Redhat entwickelt wurde. Es wurde speziell für datenintensive Workloads wie Cloud-Speicher, CDN und Medien-Streaming entwickelt. Es ist in der Lage, Petabytes an Daten zu verarbeiten und kann daher Tausende von Clients bedienen. Er unterstützt verschiedene Protokolle wie NFS, SMB, CIFS, HTTP und FTP. Mit GlusterFS kannst du verschiedene Plattenspeicherressourcen in einem einzigen globalen Namespace zusammenfassen.

In diesem Tutorial lernen wir, wie du ein repliziertes GlusterFS-Volume unter Ubuntu 18.04 einrichtest.

Voraussetzungen

  • Zwei Server mit Ubuntu 18.04 und je 2 GB externer Festplatte.
  • Eine statische IP-Adresse 172.20.10.5 ist auf Knoten1 und 172.20.10.6 auf Knoten2 konfiguriert.
  • Auf beiden Servern ist ein Root-Passwort eingerichtet.

Erste Schritte

Bevor du beginnst, musst du beide Server mit der neuesten Version aktualisieren. Du kannst sie aktualisieren, indem du den folgenden Befehl auf beiden Servern ausführst.

apt-get update -yapt-get upgrade -y

Sobald beide Server aktualisiert sind, musst du sie neu starten, damit die Änderungen übernommen werden.

Als Nächstes musst du auf beiden Servern die Hostnamenauflösung einrichten, damit beide Server über ihren Hostnamen miteinander kommunizieren können. Dazu kannst du die Datei /etc/hosts auf beiden Servern bearbeiten:

nano /etc/hosts

Füge die folgenden Zeilen ein:

172.20.10.5 node1172.20.10.6 node2

Speichere und schließe die Datei, wenn du fertig bist.

GlusterFS installieren

Zuerst musst du das GlusterFS-Paket auf beiden Servern installieren. Standardmäßig ist GlusterFS nicht im Standard-Repository von Ubuntu 18.04 verfügbar. Daher musst du das GlusterFS-Repository auf beiden Servern hinzufügen.

Installiere zunächst das benötigte Paket mit dem folgenden Befehl:

apt-get install software-properties-common -y

Als Nächstes fügst du das Repository mit dem folgenden Befehl hinzu:

add-apt-repository ppa:gluster/glusterfs-5

Als Nächstes installierst du den GlusterFS-Server mit dem folgenden Befehl:

apt-get install glusterfs-server -y

Wenn die Installation abgeschlossen ist, starte den GlusterFS-Dienst und aktiviere ihn mit folgendem Befehl, damit er beim Booten gestartet wird:

systemctl start glusterdsystemctl enable glusterd

Du kannst den Status des GlusterFS-Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status glusterd

Du solltest die folgende Ausgabe sehen:

? glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-11-07 12:51:15 UTC; 48s ago Main PID: 7199 (glusterd) Tasks: 8 (limit: 505) CGroup: /system.slice/glusterd.service ??7199 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFONov 07 12:51:06 ubuntu systemd[1]: Starting GlusterFS, a clustered file-system server...Nov 07 12:51:15 ubuntu systemd[1]: Started GlusterFS, a clustered file-system server.

GlusterFS-Speicher erstellen

Als Nächstes musst du auf beiden Servern eine Partition auf der externen Festplatte (/dev/sdb) erstellen.

Um eine neue Partition auf /dev/sdb zu erstellen, führe den folgenden Befehl aus:

fdisk /dev/sdb

Du solltest die folgende Ausgabe sehen:

Welcome to fdisk (util-linux 2.31.1).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition table.Created a new DOS disklabel with disk identifier 0x06091fe8.Command (m for help): nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)Select (default p): pPartition number (1-4, default 1): First sector (2048-4194303, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-4194303, default 4194303): Created a new partition 1 of type 'Linux' and of size 2 GiB.Command (m for help): wThe partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.

Als Nächstes formatierst du die Partition mit dem folgenden Befehl:

mkfs.xfs /dev/sdb1

Du solltest die folgende Ausgabe sehen:

meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131008 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=0, rmapbt=0, reflink=0data = bsize=4096 blocks=524032, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0

Als Nächstes erstellst du auf beiden Servern ein Verzeichnis für den GlusterFS-Speicher mit folgendem Befehl:

mkdir /glusterdata

Als Nächstes mountest du die Festplatte /dev/sdb1 in das Verzeichnis /glusterdata.

mount.xfs /dev/sdb1 /glusterdata

Als Nächstes sorgst du dafür, dass der Mount über einen Neustart hinweg bestehen bleibt, indem du die Datei /etc/fstab bearbeitest:

nano /etc/fstab

Füge die folgende Zeile hinzu:

/dev/sdb1 /glusterdata xfs defaults 0 0

Speichere und schließe die Datei und führe dann den folgenden Befehl aus, um die Änderungen zu übernehmen:

mount -a

Jetzt kannst du das gemountete Verzeichnis mit dem folgenden Befehl überprüfen:

df -h

Du solltest die folgende Ausgabe sehen:

Filesystem Size Used Avail Use% Mounted onudev 211M 0 211M 0% /devtmpfs 49M 1016K 48M 3% /run/dev/sda2 30G 4.3G 25G 16% /tmpfs 241M 12K 241M 1% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 241M 0 241M 0% /sys/fs/cgroup/dev/loop0 87M 87M 0 100% /snap/core/4486tmpfs 49M 0 49M 0% /run/user/0/dev/loop1 90M 90M 0 100% /snap/core/7917/dev/sdb1 2.0G 35M 2.0G 2% /glusterdata

GlusterFS-Volumen konfigurieren

Zuerst musst du einen vertrauenswürdigen Speicherpool erstellen, indem du node2 auf node1 hinzufügst. Dazu führst du den folgenden Befehl auf node1 aus:

gluster peer probe node2

Du kannst den Speicherpool mit dem folgenden Befehl auflisten:

gluster pool list

Du solltest die folgende Ausgabe erhalten:

UUIDHostname Stated049b519-9210-4bfa-a1c6-0d1454a88ea0node2 Connected dbb9252e-6082-4d31-aaef-1b99e0e0c369localhostConnected 

Als Nächstes erstellst du auf beiden Knoten ein Brick-Verzeichnis mit dem folgenden Befehl:

mkdir /glusterdata/vol1

Als Nächstes erstellst du ein Volume namens vol1 mit zwei Replikaten:

gluster volume create vol1 replica 2 node1:/glusterdata/vol1 node2:/glusterdata/vol1

Starte das Volume mit folgendem Befehl:

gluster volume start vol1

Du kannst den Status des erstellten Volumes mit dem folgenden Befehl überprüfen:

gluster volume status

Du solltest die folgende Ausgabe erhalten:

Status of volume: vol1Gluster process TCP Port RDMA Port Online Pid------------------------------------------------------------------------------Brick node1:/glusterdata/vol1 49152 0 Y 7987 Brick node2:/glusterdata/vol1 49152 0 Y 18565Self-heal Daemon on localhost N/A N/A Y 8010 Self-heal Daemon on node2 N/A N/A Y 18588 Task Status of Volume vol1------------------------------------------------------------------------------There are no active volume tasks

Du kannst die Informationen über das erstellte Volume auch mit folgendem Befehl einsehen:

gluster volume info vol1

Du solltest die folgende Ausgabe erhalten:

Volume Name: vol1Type: ReplicateVolume ID: e093ae7a-70ac-42b8-ab3f-a8bd186c5740Status: StartedSnapshot Count: 0Number of Bricks: 1 x 2 = 2Transport-type: tcpBricks:Brick1: node1:/glusterdata/vol1Brick2: node2:/glusterdata/vol1Options Reconfigured:transport.address-family: inetnfs.disable: onperformance.client-io-threads: off

Als Nächstes mountest du das erstellte Volume im Verzeichnis /mnt auf beiden Knoten, indem du die Datei /etc/fstab bearbeitest, damit dein Volume nach dem Booten des Servers verfügbar ist.

nano /etc/fstab

Füge die folgende Zeile hinzu:

localhost:/vol1 /mnt glusterfs defaults,_netdev 0 0

Speichere und schließe die Datei, wenn du fertig bist. Führe dann den folgenden Befehl aus, um die Änderungen zu übernehmen:

mount -a

Replikation testen

Der GlusterFS-Server ist nun installiert und konfiguriert. Jetzt ist es an der Zeit, die Replikation zwischen zwei Knoten zu testen.

Erstelle zunächst zwei Dateien auf Knoten1:

touch /mnt/file1 /mnt/file2

Gehe nun zu Knoten2 und führe den folgenden Befehl aus:

ls -l /mnt/

Du solltest die gleichen Dateien sehen, die du auf Node1 erstellt hast:

total 0-rw-r--r-- 1 root root 0 Nov 7 13:42 file1-rw-r--r-- 1 root root 0 Nov 7 13:42 file2

Beende nun den GlusterFS-Dienst auf Knoten2 mit folgendem Befehl:

service glusterd stop

Als Nächstes gehst du zu node1 und überprüfst den Peer-Status:

gluster peer status

Du solltest sehen, dass Node2 abgekoppelt worden ist:

Number of Peers: 1Hostname: node2Uuid: d049b519-9210-4bfa-a1c6-0d1454a88ea0State: Peer in Cluster (Disconnected)

Du kannst auch den Volume-Status mit folgendem Befehl überprüfen:

gluster volume status

Du solltest die folgende Ausgabe sehen:

Status of volume: vol1Gluster process TCP Port RDMA Port Online Pid------------------------------------------------------------------------------Brick node1:/glusterdata/vol1 49152 0 Y 7987 Self-heal Daemon on localhost N/A N/A Y 8010 Task Status of Volume vol1------------------------------------------------------------------------------There are no active volume tasks

Als Nächstes erstellst du zwei weitere Dateien auf node1:

touch /mnt/file3 /mnt/file4

Gehe nun zu Node2 und starte den GlusterFS-Dienst mit dem folgenden Befehl:

service glusterd start

Überprüfe nun das Verzeichnis /mnt auf node2:

ls -l /mnt/

Du solltest sehen, dass alle Dateien von Knoten1 repliziert wurden und jetzt verfügbar sind.

total 0-rw-r--r-- 1 root root 0 Nov 7 13:42 file1-rw-r--r-- 1 root root 0 Nov 7 13:42 file2-rw-r--r-- 1 root root 0 Nov 7 13:44 file3-rw-r--r-- 1 root root 0 Nov 7 13:44 file4

Fazit

Herzlichen Glückwunsch! Du hast erfolgreich ein repliziertes Glusterfs-Volumen mit zwei Knoten auf einem Ubuntu 18.04 Server installiert und konfiguriert. Du kannst auch Distributed Glusterfs Volume, Distributed Replicated Glusterfs Volume, Striped Glusterfs Volume und Distributed Striped Glusterfs Volume einrichten.

Wie man GlusterFS unter Ubuntu installiert und konfiguriert – HowtoForge (2024)
Top Articles
Latest Posts
Article information

Author: Jerrold Considine

Last Updated:

Views: 5686

Rating: 4.8 / 5 (78 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Jerrold Considine

Birthday: 1993-11-03

Address: Suite 447 3463 Marybelle Circles, New Marlin, AL 20765

Phone: +5816749283868

Job: Sales Executive

Hobby: Air sports, Sand art, Electronics, LARPing, Baseball, Book restoration, Puzzles

Introduction: My name is Jerrold Considine, I am a combative, cheerful, encouraging, happy, enthusiastic, funny, kind person who loves writing and wants to share my knowledge and understanding with you.