GlusterFS ist eine kostenlose Open-Source-Datei- und Objektspeicherlösung, die über das Netzwerk auf physischen, virtuellen und Cloud-Servern verwendet werden kann. Der Hauptvorteil von GlusterFS besteht darin, dass wir den Speicher ohne Ausfallzeiten auf mehrere Petabyte hoch- oder ausskalieren können, außerdem bietet es die Redundanz und Hochverfügbarkeit des Speichers.
Wo kann man GluserFS verwenden … ?
GllusterFS-basierter Speicher kann in physischen, virtuellen und Cloud-Servern über das Netzwerk verwendet werden.
Es kann auch in Firmen verwendet werden, in denen früher Multimedia- oder andere Inhalte für Internetnutzer bereitgestellt wurden und die mit Hunderten von Terabyte an Dateien umgehen müssen.
GlusterFS kann auch als Objektspeicher in privaten und öffentlichen Clouds verwendet werden.
Unterschiedliche Terminologie im GlusterFS-Speicher:
- Vertrauenswürdiger Speicherpool :Es ist eine Gruppe mehrerer Server, die einander vertrauen und einen Speichercluster bilden.
- Knoten :Ein Knoten ist ein Speicherserver, der an einem vertrauenswürdigen Speicherpool teilnimmt
- Ziegel :Ein Baustein ist ein LVM-basiertes XFS-Dateisystem (512-Byte-Inodes), das in einem Ordner oder Verzeichnis eingehängt ist.
- Lautstärke :Ein Volume ist ein Dateisystem, das den Clients über das Netzwerk präsentiert oder gemeinsam genutzt wird. Ein Volume kann mit den Methoden glusterfs, nfs und smbs gemountet werden.
Verschiedene Arten von Volumes, die mit GlusterFS konfiguriert werden können:
- Bände verteilen :Dies ist das Standardvolume, das erstellt wird, wenn beim Erstellen des Volumes keine Option angegeben wird. Bei dieser Art von Volumen werden Dateien mithilfe eines elastischen Hash-Algorithmus auf die Bausteine verteilt
- Volumen replizieren :Wie der Name schon sagt, werden bei diesem Volume-Typ Dateien über die Bricks repliziert oder gespiegelt. Mit anderen Worten, eine Datei, die in einen Brick geschrieben wurde, wird auch auf einen anderen Brick repliziert.
- gestreifte Bände : Bei dieser Art von Volumen werden größere Dateien geschnitten oder in Stücke geteilt und dann über die Bausteine verteilt.
- Replizierte Volumes verteilen :Wie der Name schon sagt, werden Volume-Dateien zuerst auf die Bricks verteilt und dann auf verschiedene Bricks repliziert.
Es können jedoch andere Kombinationen versucht werden, um verschiedene Volumes zu bilden, z. B. Striped-replicated.
In diesem Artikel werde ich zeigen, wie man GlusterFS Storage auf RHEL 7.x und CentOS 7.x einrichtet. In meinem Fall nehme ich vier RHEL 7 / CentOS 7 Server mit minimaler Installation und gehe davon aus, dass zusätzliche Festplatten an diese Server für die Einrichtung von glustesfs angeschlossen sind.
- server1.beispiel.com (192.168.43.10 )
- server2.example.com ( 192.168.43.20 )
- server3.example.com ( 192.168.43.30 )
- server4.example.com ( 192.168.43.40 )
Fügen Sie die folgenden Zeilen in die Datei /etc/hosts ein, falls Sie einen eigenen DNS-Server haben.
192.168.43.10 server1.example.com server1 192.168.43.20 server2.example.com server2 192.168.43.30 server3.example.com server3 192.168.43.40 server4.example.com server4
Installieren Sie Glusterfs-Serverpakete auf allen Servern.
Glusterfs-Pakete sind nicht in den standardmäßigen Centos- und RHEL-Repositories enthalten, daher werden wir Gluster-Repo und EPEL-Repo einrichten. Führen Sie die folgenden Befehle nacheinander auf allen 4 Servern aus.
~]# yum install wget ~]# yum install centos-release-gluster -y ~]#yum install epel-release -y ~]# yum install glusterfs-server -y
Starten und aktivieren Sie den GlusterFS-Dienst auf allen vier Servern.
~]# systemctl start glusterd ~]# systemctl enable glusterd
Lassen Sie die Ports in der Firewall zu, damit Server kommunizieren und Speichercluster (vertrauenswürdiger Pool) bilden können. Führen Sie die folgenden Befehle auf allen 4 Servern aus.
~]# firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent ~]# firewall-cmd --zone=public --add-port=24009/tcp --permanent ~]# firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent ~]# firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp --add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=49152-49251/tcp --permanent ~]# firewall-cmd --reload
Volume-Setup verteilen:
Ich werde einen vertrauenswürdigen Speicherpool bilden, der aus Server 1 und Server 2 besteht, und darauf Bausteine erstellen und danach ein verteiltes Volume erstellen. Ich gehe auch davon aus, dass beiden Servern eine Raw Disk von 16 GB (/dev/sdb) zugewiesen ist.
Führen Sie den folgenden Befehl von der Konsole von Server 1 aus, um einen vertrauenswürdigen Speicherpool mit Server 2 zu bilden.
[[email protected] ~]# gluster peer probe server2.example.com peer probe: success. [[email protected] ~]#
Wir können den Peer-Status mit dem folgenden Befehl überprüfen:
[[email protected] ~]# gluster peer status Number of Peers: 1 Hostname: server2.example.com Uuid: 9ef0eff2-3d96-4b30-8cf7-708c15b9c9d0 State: Peer in Cluster (Connected) [[email protected] ~]#
Baustein auf Server 1 erstellen
Um zuerst einen Brick zu erstellen, müssen wir logische Volumes für die Bereitstellung von Dingen auf der Raw-Festplatte (/dev/sdb) einrichten.
Führen Sie die folgenden Befehle auf Server 1
aus[[email protected] ~]# pvcreate /dev/sdb /dev/vg_bricks/dist_brick1 /bricks/dist_brick1 xfs rw,noatime,inode64,nouuid 1 2 [[email protected] ~]# vgcreate vg_bricks /dev/sdb [[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool1
Im obigen Befehl ist brickpool1 der Name des dünnen Pools.
Erstellen Sie nun ein logisches Volume von 3 GB
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool1 -n dist_brick1
Formatieren Sie nun das logische Volume mit dem xfs-Dateisystem
[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/dist_brick1 [[email protected] ~]# mkdir -p /bricks/dist_brick1
Mounte den Brick mit dem Mount-Befehl
[[email protected] ~]# mount /dev/vg_bricks/dist_brick1 /bricks/dist_brick1/
Um es dauerhaft zu mounten, fügen Sie die folgende Zeile in /etc/fsatb
hinzu/dev/vg_bricks/dist_brick1 /bricks/dist_brick1 xfs rw,noatime,inode64,nouuid 1 2
Erstellen Sie ein Verzeichnis mit Brick unter dem Einhängepunkt
[[email protected] ~]# mkdir /bricks/dist_brick1/brick
Führen Sie auf ähnliche Weise die folgenden Befehle auf Server 2
aus[[email protected] ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb [[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool2 [[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool2 -n dist_brick2 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/dist_brick2 [[email protected] ~]# mkdir -p /bricks/dist_brick2 [[email protected] ~]# mount /dev/vg_bricks/dist_brick2 /bricks/dist_brick2/ [[email protected] ~]# mkdir /bricks/dist_brick2/brick
Erstellen Sie verteiltes Volume mit dem folgenden Gluster-Befehl :
[[email protected] ~]# gluster volume create distvol server1.example.com:/bricks/dist_brick1/brick server2.example.com:/bricks/dist_brick2/brick [[email protected] ~]# gluster volume start distvol volume start: distvol: success [[email protected] ~]#
Überprüfen Sie den Volume-Status mit folgendem Befehl:
[[email protected] ~]# gluster volume info distvol
Mount Distribute Volume auf dem Client :
Bevor wir das Volume mit glusterfs mounten, müssen wir zuerst sicherstellen, dass das Paket glusterfs-fuse auf dem Client installiert ist. Stellen Sie außerdem sicher, dass Sie die Einträge des Gluster-Speicherservers in die Datei /etc/hosts einfügen, falls Sie keinen lokalen DNS-Server haben.
Melden Sie sich beim Client an und führen Sie den folgenden Befehl von der Konsole aus, um glusterfs-fuse
zu installieren[[email protected] ~]# yum install glusterfs-fuse -y
Erstellen Sie ein Mount für das Verteilungsvolume :
[[email protected] ~]# mkdir /mnt/distvol
Hängen Sie nun die Datei „distvol“ ein ‘ Verwenden Sie den folgenden Mount-Befehl:
[[email protected] ~]# mount -t glusterfs -o acl server1.example.com:/distvol /mnt/distvol/
Fügen Sie für eine dauerhafte Einbindung den folgenden Eintrag in der Datei /etc/fstab hinzu
server1.example.com:/distvol /mnt/distvol glusterfs _netdev 0 0
Führen Sie den Befehl df aus, um den Ladestatus des Volumes zu überprüfen.
Starten Sie nun den Zugriff auf das Volume „distvol ”
Volume-Setup replizieren :
Für die Einrichtung des replizierten Volumes werde ich Server 3 und Server 4 verwenden und gehe davon aus, dass den Servern bereits eine zusätzliche Festplatte (/dev/sdb ) für glusterfs zugewiesen ist. Siehe die folgenden Schritte:
Fügen Sie Server 3 und Server 4 im vertrauenswürdigen Speicherpool hinzu
[[email protected] ~]# gluster peer probe server3.example.com peer probe: success. [[email protected] ~]# gluster peer probe server4.example.com peer probe: success. [[email protected] ~]#
Erstellen und mounten Sie den Brick auf Server 3. Führen Sie die folgenden Befehle nacheinander aus.
[[email protected] ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb [[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool3 [[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool3 -n shadow_brick1 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/shadow_brick1 [[email protected] ~]# mkdir -p /bricks/shadow_brick1 [[email protected] ~]# mount /dev/vg_bricks/shadow_brick1 /bricks/shadow_brick1/ [[email protected] ~]# mkdir /bricks/shadow_brick1/brick
Führen Sie den folgenden Eintrag in der /etc/fstab-Datei für die permanente Ziegelmontage durch:
/dev/vg_bricks/shadow_brick1 /bricks/shadow_brick1/ xfs rw,noatime,inode64,nouuid 1 2
Führen Sie die gleichen Schritte auf Server 4 zum Erstellen und Mounten von Brick :
aus[[email protected] ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb [[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool4 [[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool4 -n shadow_brick2 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/shadow_brick2 [[email protected] ~]# mkdir -p /bricks/shadow_brick2 [[email protected] ~]# mount /dev/vg_bricks/shadow_brick2 /bricks/shadow_brick2/ [[email protected] ~]# mkdir /bricks/shadow_brick2/brick
Für eine dauerhafte Befestigung des Bricks führe den fstab-Eintrag aus.
Repliziertes Volume erstellen Verwenden Sie den folgenden Gluster-Befehl .
[[email protected] ~]# gluster volume create shadowvol replica 2 server3.example.com:/bricks/shadow_brick1/brick server4.example.com:/bricks/shadow_brick2/brick volume create: shadowvol: success: please start the volume to access data [[email protected] ~]# gluster volume start shadowvol volume start: shadowvol: success [[email protected] ~]#
Überprüfen Sie die Lautstärkeinformationen mit dem folgenden Gluster-Befehl:
[[email protected] ~]# gluster volume info shadowvol
Wenn Sie auf dieses Volume zugreifen möchten, „shadowvol ” über nfs folgendes einstellen:
[[email protected] ~]# gluster volume set shadowvol nfs.disable off
Mounten Sie das Replicate-Volume auf dem Client über nfs
Erstellen Sie vor dem Mounten zuerst einen Mountpunkt.
[[email protected] ~]# mkdir /mnt/shadowvol
Hinweis:Eine der Einschränkungen beim Gluster-Speicher besteht darin, dass der GlusterFS-Server nur Version 3 des NFS-Protokolls unterstützt.
Fügen Sie den folgenden Eintrag in der Datei „/etc/nfsmount.conf hinzu ” auf beiden Speicherservern (Server 3 &Server 4)
Defaultvers=3
Nachdem Sie den obigen Eintrag vorgenommen haben, starten Sie beide Server einmal neu. Verwenden Sie den folgenden Mount-Befehl für das Volume „shadowvol ”
[[email protected] ~]# mount -t nfs -o vers=3 server4.example.com:/shadowvol /mnt/shadowvol/
Fügen Sie für eine permanente Einbindung den folgenden Eintrag in der Datei /etc/fstab hinzu
server4.example.com:/shadowvol /mnt/shadowvol/ nfs vers=3 0 0
Überprüfen Sie die Größe und den Bereitstellungsstatus des Volumes:
[[email protected] ~]# df -Th
Volume-Setup verteilen-replizieren :
Zum Einrichten des Distribute-Replicate-Volumes verwende ich einen Baustein von jedem Server und bilde das Volume. Ich werde das logische Volume aus dem vorhandenen Thin-Pool auf den jeweiligen Servern erstellen.
Erstellen Sie einen Baustein auf allen 4 Servern mit den folgenden Befehlen
Server 1
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool1 -n prod_brick1 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick1 [[email protected] ~]# mkdir -p /bricks/prod_brick1 [[email protected] ~]# mount /dev/vg_bricks/prod_brick1 /bricks/prod_brick1/ [[email protected] ~]# mkdir /bricks/prod_brick1/brick
Server 2
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool2 -n prod_brick2 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick2 [[email protected] ~]# mkdir -p /bricks/prod_brick2 [[email protected] ~]# mount /dev/vg_bricks/prod_brick2 /bricks/prod_brick2/ [[email protected] ~]# mkdir /bricks/prod_brick2/brick
Server 3
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool3 -n prod_brick3 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick3 [[email protected] ~]# mkdir -p /bricks/prod_brick3 [[email protected] ~]# mount /dev/vg_bricks/prod_brick3 /bricks/prod_brick3/ [[email protected] ~]# mkdir /bricks/prod_brick3/brick
Server 4
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool4 -n prod_brick4 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick4 [[email protected] ~]# mkdir -p /bricks/prod_brick4 [[email protected] ~]# mount /dev/vg_bricks/prod_brick4 /bricks/prod_brick4/ [[email protected] ~]# mkdir /bricks/prod_brick4/brick
Erstellen Sie nun ein Volume mit dem Namen „dist-rep-vol “ mit dem folgenden Gluster-Befehl:
[[email protected] ~]# gluster volume create dist-rep-vol replica 2 server1.example.com:/bricks/prod_brick1/brick server2.example.com:/bricks/prod_brick2/brick server3.example.com:/bricks/prod_brick3/brick server4.example.com:/bricks/prod_brick4/brick force [[email protected] ~]# gluster volume start dist-rep-vol
Überprüfen Sie die Lautstärkeinformationen mit dem folgenden Befehl:
[[email protected] ~]# gluster volume info dist-rep-vol
In diesem Band werden zuerst Dateien auf zwei beliebige Bricks verteilt und dann werden die Dateien in die verbleibenden zwei Bricks repliziert.
Mounten Sie nun dieses Volume auf dem Client-Rechner über Gluster
Lassen Sie uns zuerst den Einhängepunkt für dieses Volume erstellen:
[[email protected] ~]# mkdir /mnt/dist-rep-vol [[email protected] ~]# mount.glusterfs server1.example.com:/dist-rep-vol /mnt/dist-rep-vol/
Fügen Sie den folgenden Eintrag in der fstab für einen dauerhaften Eintrag hinzu
server1.example.com:/dist-rep-vol /mnt/dist-rep-vol/ glusterfs _netdev 0 0
Überprüfen Sie die Größe und das Volumen mit dem df-Befehl:
Das ist es. Ich hoffe, Ihnen haben die Schritte zur Konfiguration des Gluster-Speichers gefallen.