So installieren Sie Stratis, um mehrschichtigen lokalen Speicher auf RHEL 8 zu verwalten
Stratis ist eine der neuen Funktionen, die in der RHEL 8-Distribution enthalten sind. Stratis ist eine lokale Speicherverwaltungslösung, die sich auf Einfachheit und verbesserte Benutzerfreundlichkeit konzentriert und gleichzeitig Zugriff auf erweiterte Speicherfunktionen bietet. Es nutzt das XFS-Dateisystem und gewährt Ihnen Zugriff auf erweiterte Speicherfunktionen wie:
- Thin Provisioning
- Snapshots des Dateisystems
- Abstufung
- Poolbasiertes Management
- Überwachung
Im Grunde handelt es sich bei Stratis um einen Speicherpool, der aus einer oder mehreren lokalen Festplatten oder Festplattenpartitionen erstellt wird. Stratis hilft einem Systemadministrator beim Einrichten und Verwalten komplexer Speicherkonfigurationen.
Bevor wir fortfahren, werfen wir einen Blick auf einige der Fachbegriffe, auf die Sie im Laufe der Zeit sicherlich stoßen werden:
- Pool: Ein Pool besteht aus einem oder mehreren Blockgeräten. Die Gesamtgröße des Pools entspricht der Gesamtsumme der Blockgeräte.
- blockdev: Wie Sie vielleicht schon erraten haben, bezieht sich dies auf Blockgeräte wie Festplattenpartitionen.
- Dateisystem: Ein Dateisystem ist eine dünn bereitgestellte Schicht, die keine feste Gesamtgröße hat. Die tatsächliche Größe des Dateisystems wächst mit dem Hinzufügen von Daten. Stratis vergrößert das Dateisystem automatisch, wenn sich die Datengröße der virtuellen Größe des Dateisystems nähert.
Zu den Blockgeräten, die Sie mit Stratis verwenden können, gehören:
- Logische LVM-Volumes
- LUKS
- SSDs (Solid State Drives)
- Device Mapper Multipath
- iSCSI
- HDDs (Festplattenlaufwerke)
- mdraid
- NVMe-Speichergeräte
Softwarekomponenten von Stratis
Stratis bietet zwei Software-Dienstprogramme:
- Stratis-cli: Dies ist das Befehlszeilentool, das im Lieferumfang von Stratis enthalten ist.
- Stratisd-Daemon: Dies ist ein Daemon, der Blockgeräte erstellt und verwaltet und eine Rolle bei der Bereitstellung einer DBUS-API spielt.
So installieren Sie Stratis auf RHEL 8
Nachdem wir uns angesehen haben, was Stratis ist, und einige Terminologien definiert haben. Lassen Sie uns nun Stratis auf der RHEL 8-Distribution installieren und konfigurieren (funktioniert auch auf CentOS 8).
Installieren Sie Stratis auf RHEL 8
Sehen wir uns an, wie Sie Stratis auf Ihrem RHEL 8-System installieren, sich als Root-Benutzer anmelden und den Befehl ausführen können.
dnf install stratisd stratis-cli
Um weitere Informationen zu den installierten Paketen zu erhalten, führen Sie den Befehl aus.
rpm -qi stratisd stratis-cli
Nach der erfolgreichen Installation von Stratis starten Sie den Dienst, indem Sie den Befehl ausführen.
systemctl enable --now stratisd
Um den Status von Stratis zu überprüfen, führen Sie den Befehl aus.
systemctl status stratisd
Erstellen Sie einen Stratis-Pool
Um einen Stratis-Pool zu erstellen, benötigen Sie Blockgeräte, die nicht verwendet oder gemountet werden. Außerdem wird davon ausgegangen, dass der Stratisd-Dienst betriebsbereit ist. Darüber hinaus müssen die Blockgeräte, die Sie verwenden möchten, mindestens 1 GB groß sein.
Auf unserem RHEL 8-System haben wir vier zusätzliche Blockgeräte: /dev/xvdb
, /dev/xvdc
, /dev/ xvdd
, /dev/xvde
. Um die Blockgeräte anzuzeigen, führen Sie den Befehl lsblk aus.
lsblk
Keines dieser Blockgeräte sollte eine Partitionstabelle haben. Sie können dies mit dem Befehl bestätigen.
blkid -p /dev/xvdb
Wenn Sie keine Ausgabe erhalten, bedeutet dies, dass sich auf Ihren Blockgeräten keine Partitionstabelle befindet. Falls jedoch eine Partitionstabelle vorhanden ist, können Sie diese mit dem folgenden Befehl löschen:
wipefs -a /<device-path>
Erstellen Sie einen Stratis-Pool aus einem Blockgerät
Mithilfe der Syntax können Sie einen Stratis-Pool aus einem einzelnen Blockgerät erstellen.
stratis pool create <pool-name> <block-device>
Um beispielsweise einen Pool aus /dev/xvdb
zu erstellen, führen Sie den Befehl aus.
stratis pool create my_pool_1 /dev/xvdb
Um den erstellten Poollauf zu bestätigen.
stratis pool list
Erstellen Sie einen Stratis-Pool aus mehreren Blockgeräten
Um einen Pool aus mehreren Geräten zu erstellen, verwenden Sie die folgende Syntax, in der alle Geräte in einer Zeile aufgeführt werden.
stratis pool create <pool_name> device-1 device-2 device-n
Um einen Pool aus /dev/xvdc
, /dev/xvdd
und /dev/xvde
zu erstellen, führen Sie den Befehl aus.
stratis pool create my_pool_2 /dev/xvdc /dev/xvdd/ /dev/xvde
Listen Sie noch einmal die verfügbaren Pools mit dem Befehl auf.
stratis pool list
Zu diesem Zeitpunkt sollten Sie zwei Pools haben: my_pool_1 und my_pool_2.
Wie Sie oben sehen können, ist der vom Pool my_pool_2 belegte Festplattenspeicher dreimal so groß wie der des ersten Pools, den wir aus nur einem Blockgerät mit einem Speicher von 10 GB erstellt haben.
Erstellen Sie ein Dateisystem aus einem Pool
Nachdem Sie Ihr Dateisystem erstellt haben, können Sie mithilfe der Syntax ein Dateisystem aus einem der Pools erstellen.
stratis fs create <poolname> <filesystemname>
Um beispielsweise filesystem-1 und filesystem-2 aus my_pool_1 bzw. my_pool_2 zu erstellen, führen Sie die folgenden Befehle aus:
stratis fs create my_pool_1 filesystem-1
stratis fs create my_pool_2 filesystem-2
Führen Sie den Befehl aus, um die neu erstellten Dateisysteme anzuzeigen.
stratis fs list
Um die Ergebnisse eines Dateisystems auf einen Pool einzugrenzen, führen Sie den folgenden Befehl aus:
stratis fs list <poolname>
Um beispielsweise das Dateisystem in my_pool_2 zu überprüfen, führen Sie den Befehl aus.
stratis fs list my_pool_2
Wenn Sie nun den Befehl lsblk ausführen, sollte die Ausgabe der folgenden Beispielausgabe ähneln.
lsblk
Mounten eines Stratis-Dateisystems
Wir werden nun die vorhandenen Dateisysteme mounten, um darauf zuzugreifen. Erstellen Sie zunächst die Mount-Punkte.
Führen Sie für das Dateisystem im ersten Pool den folgenden Befehl aus:
mkdir /data
mount /stratis/my_pool_1/filesystem-1 /data
Führen Sie den Befehl für das zweite Dateisystem im zweiten Pool aus.
mkdir /block
mount /stratis/my_pool_2/filesystem-2 /block
Um die Existenz der aktuellen Mount-Punkte zu überprüfen, führen Sie den Befehl df aus:
df -Th | grep stratis
Perfekt! Wir können deutlich erkennen, dass unsere Mount-Punkte vorhanden sind.
Stratis-Dateisysteme dauerhaft mounten
Die soeben erstellten Mount-Punkte überstehen einen Neustart nicht. Um sie dauerhaft zu machen, ermitteln Sie zunächst die UUID jedes Dateisystems:
blkid -p /stratis/my_pool_1/filesystem-1
blkid -p /stratis/my_pool_2/filesystem-2
Fahren Sie nun fort und kopieren Sie die UUIDs und Mount-Punkt-Optionen wie gezeigt nach /etc/fstab.
echo "UUID=c632dcf5-3e23-46c8-82b6-b06a4cc9d6a7 /data xfs defaults 0 0" | sudo tee -a /etc/fstab
echo "UUID=b485ce80-be18-4a06-8631-925132bbfd78 /block xfs defaults 0 0" | sudo tee -a /etc/fstab
Damit das System die neue Konfiguration registriert, führen Sie den folgenden Befehl aus:
systemctl daemon-reload
Um zu überprüfen, ob die Konfiguration wie erwartet funktioniert, mounten Sie die Dateisysteme.
mount /data
mount /block
Entfernen eines Stratis-Dateisystems
Um ein Dateisystem zu entfernen, müssen Sie zunächst das Dateisystem wie gezeigt aushängen.
umount /mount-point
In diesem Fall werden wir haben.
umount /data
Um das Dateisystem zu zerstören, verwenden Sie die folgende Syntax:
stratis filesystem destroy <poolname> <filesystem-name>
Wir werden also haben:
stratis filesystem destroy my_pool_1 filesystem-1
Geben Sie den Befehl aus, um das Entfernen des Dateisystems zu bestätigen.
stratis filesystem list my_pool_1
Aus der Ausgabe können wir deutlich erkennen, dass das mit my_pool_1 verknüpfte Dateisystem gelöscht wurde.
Hinzufügen einer Festplatte zu einem vorhandenen Stratis-Pool
Mit dem folgenden Befehl können Sie eine Festplatte zu einem vorhandenen Pool hinzufügen:
stratis pool add-data <poolname> /<devicepath>
Um beispielsweise einen zusätzlichen Datenträger /dev/xvdf
zu my_pool_1 hinzuzufügen, führen Sie den folgenden Befehl aus:
stratis pool add-data my_pool_1 /dev/xvdf
Beachten Sie, dass sich die Größe von my_pool_1 verdoppelt hat, nachdem das zusätzliche Volumen hinzugefügt wurde.
Erstellen Sie Stratis-Snapshots
Ein Snapshot ist eine dünn bereitgestellte Lese- und Schreibkopie eines Dateisystems zu einem bestimmten Zeitpunkt.
Um einen Snapshot zu erstellen, führen Sie den folgenden Befehl aus:
stratis fs snapshot <poolname> <fsname> <snapshotname>
In diesem Fall lautet der Befehl:
stratis fs snapshot my_pool_2 filesystem-2 mysnapshot
Sie können das Datenattribut -$ (Datum +%Y-%m-%d)
an den Snapshot anhängen und das Datums-Tag hinzufügen, wie im Screenshot unten gezeigt.
Um die Erstellung des Snapshots zu überprüfen, führen Sie den folgenden Befehl aus:
stratis filesystem list <poolname>
In diesem Fall lautet der Befehl:
stratis filesystem list my_pool_2
Wiederherstellen eines vorherigen Snapshots mithilfe eines Dateisystems
Um ein Stratis-Dateisystem auf einen zuvor erstellten Snapshot zurückzusetzen, müssen Sie zunächst das ursprüngliche Dateisystem aushängen und zerstören.
umount /stratis/<poolname>/filesystem
In unserem Szenario wird dies der Fall sein.
umount /stratis/my_pool_2/filesystem-2
Erstellen Sie dann eine Kopie des Snapshots unter Verwendung des ursprünglichen Dateisystems:
stratis filesystem snapshot <poolname> filesystem-snapshot filesystem
Der Befehl lautet:
stratis filesystem snapshot my_pool_2 mysnapshot-2019-10-24 block
Zum Schluss mounten Sie den Snapshot.
mount /stratis/my-pool/my-fs mount-point
Entfernen eines Stratis-Snapshots
Um den Snapshot zu entfernen, heben Sie zunächst die Bereitstellung des Snapshots auf.
unmount /stratis/my_pool_2/mysnapshot-2019-10-24
Fahren Sie als Nächstes fort und zerstören Sie den Snapshot:
stratis filesystem destroy my_pool_2 mysnapshot-2019-10-24
Entfernen eines Stratis-Pools
Um einen Stratis-Pool zu entfernen, befolgen Sie die folgenden einfachen Schritte.
1. Listen Sie die Dateisysteme auf, die im Pool vorhanden sind.
stratis filesystem list <poolname>
2. Als nächstes heben Sie die Bereitstellung aller Dateisysteme im Pool auf.
umount /stratis//filesystem-1
umount /stratis//filesystem-2
umount /stratis//filesystem-3
3. Zerstören Sie die Dateisysteme.
stratis filesystem destroy <poolname> fs-1 fs-2
4. Und dann entfernen Sie den Pool.
stratis pool destroy poolname
In diesem Fall lautet die Syntax.
stratis pool destroy my_pool_2
Sie können die Poolliste erneut überprüfen.
stratis pool list
Entfernen Sie abschließend die Einträge in der /etc/fstab für die Dateisysteme.
Wir sind am Ende des Leitfadens angelangt. In diesem Tutorial beleuchten wir, wie Sie Stratis installieren und verwenden können, um mehrschichtigen lokalen Speicher auf RHEL zu verwalten. Wir hoffen, dass Sie es nützlich fanden. Probieren Sie es aus und lassen Sie uns wissen, wie es gelaufen ist.