Website-Suche

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:

  1. Logische LVM-Volumes
  2. LUKS
  3. SSDs (Solid State Drives)
  4. Device Mapper Multipath
  5. iSCSI
  6. HDDs (Festplattenlaufwerke)
  7. mdraid
  8. 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.