roter Hut

So verwalten Sie geschichteten lokalen Speicher mit Stratis auf RHEL 8

So verwalten Sie geschichteten lokalen Speicher mit Stratis auf RHEL 8
Stratis ist eine lokale Management-Speicherlösung des RedHat-Teams, die mit RHEL 8 eingeführt wurde und es Systemadministratoren ermöglicht, erweiterte Speicherfunktionen zu konfigurieren, wie z

  1. Poolbasierte Verwaltung
  2. Thin Provisioning
  3. Dateisystem-Snapshots
  4. Überwachung

Stratisd ist der Daemon hinter Stratis und hilft bei der Konfiguration von Speicherkomponenten unter dem XFS-Dateisystem und dem Device-Mapper-Subsystem. Im Moment unterstützt Stratis Logische LVM-Volumes, Festplatte, SSDs, NVMe, und ISCIs Speichergeräte.

Lassen Sie uns nun einen Blick auf einige grundlegende Schlüsselbegriffe werfen

  1. blockdev: Dies ist eine Terminologie, die sich auf Blockgeräte bezieht.
  2. Schwimmbad: Ein Pool kann entweder aus einem einzelnen oder mehreren Blockgeräten bestehen. Die Größe eines Stratis-Pools entspricht der Summe der Blockgeräte, aus denen der Pool besteht.
  3. Dateisystem: Ein Dateisystem ist eine dünn bereitgestellte Schicht, deren Größe wächst, wenn mehr Informationen oder Daten hinzugefügt werden. Die Größe eines Dateisystems wird von Stratis automatisch hochskaliert, wenn die Daten fast auf die Größe des virtuellen Dateisystems anwachsen.

Stratis besteht aus:

  1. Stratisd-Daemon: Ein Daemon, der es einem Benutzer ermöglicht, Blockgeräte zu verwalten.
  2. Stratis-cli: Ein Befehlszeilen-Dienstprogramm, das mit Stratis . geliefert wird.

Installieren von Stratis auf RHEL 8

Nachdem wir Stratis kurz vorgestellt haben, was es tut und seine Komponenten, installieren wir nun Stratis auf RHEL 8

Um Stratis auf RHEL 8 zu installieren, melden Sie sich als Root-Benutzer an und führen Sie den Befehl aus:

# dnf install stratisd stratis-cli

Wenn Sie dazu aufgefordert werden, geben Sie y ein, um mit der Installation fortzufahren. Wenn alles gut gelaufen ist, sollten Sie die folgende Ausgabe erhalten, die bestätigt, dass alles gut gelaufen ist.

Führen Sie den Befehl aus, um die Installation der stratis-Pakete zu bestätigen:

# rpm -q stratisd stratis-cli

Starten des Stratis-Dienstes auf RHEL 8

Um den Stratis-Dienst zu starten, führen Sie den Befehl aus:

# systemctl enable --now stratisd

Überprüfen Sie als Nächstes den Status von Stratis, indem Sie den Befehl ausführen:

# systemctl status stratisd

Aus der obigen Ausgabe können wir erkennen, dass Stratis betriebsbereit ist.

Erstellen eines Stratis-Pools

Bevor Sie mit der Erstellung eines Stratis-Pools beginnen, stellen Sie sicher, dass die Blockgeräte auf Ihrem System über mindestens 1 GB verfügen. Außerdem müssen diese Geräte ausgehängt und inaktiv sein. Außerdem muss der stratisd-Daemon ausgeführt werden. In unserem Setup gibt es neben der primären Partition 5 Blockgeräte:

  1. /dev/xvdb
  2. /dev/xvdc
  3. /dev/xvdd
  4. /dev/xvde
  5. /dev/xvdf

Sie können einen Blick auf die vorhandenen Blockgeräte werfen, indem Sie den folgenden Befehl ausführen:

# lsblk

Außerdem ist es wichtig sicherzustellen, dass die Blockgeräte keine vorhandene Partitionstabelle haben.

Bestätigen Sie dies mit der Syntax:

# blkid -p /

Beispielsweise

# blkid -p /dev/xvdb

Keine Ausgabe bedeutet, dass auf den Blockgeräten keine Partitionstabelle vorhanden ist. Falls jedoch auf einem der Geräte eine Partitionstabelle vorhanden ist, können Sie die Partition mit dem Befehl löschen:

# Wischtücher -a /

Erstellen eines Stratis-Pools aus einem Blockgerät

Sie können einen Stratis-Pool aus einem einzelnen Blockgerät erstellen, indem Sie die folgende Syntax verwenden:

# Stratis-Pool erstellen  

Zum Beispiel um einen Pool zu erstellen pool_1 vom Blockgerät  /dev/xvdb Lauf:

# stratis pool create pool_1 /dev/xvdb

Führen Sie Folgendes aus, um den erstellten Pool aufzulisten:

# Stratis-Pool-Liste

Aus der obigen Ausgabe können wir deutlich erkennen, dass ein neuer Pool, pool_1 wurde erschaffen.

Erstellen Sie einen Stratis-Pool aus mehreren Blockgeräten

Um einen Pool aus mehreren Geräten zu erstellen, verwenden Sie die folgende Syntax, die alle Geräte in einer Zeile auflistet

# Stratis-Pool erstellen

So erstellen Sie einen Pool aus /dev/xvdc und  /dev/xvdd führe den Befehl aus:

# stratis pool create pool_2 /dev/xvdc /dev/xvdd/

Listen Sie die verfügbaren Pools erneut mit dem Befehl auf:

# Stratis-Pool-Liste

An dieser Stelle sollten Sie 2 Pools haben:  pool_1 und pool_2

Aus der obigen Ausgabe können wir deutlich erkennen, dass pool_2 doppelt so groß ist wie pool_1, da es aus zwei Blockgeräten besteht, von denen jedes ein physisches Volumen von 10 GB hat.

Erstellen eines Dateisystems aus einem Pool

Aus einem der zuvor erstellten Stratis-Pools können Sie mit der folgenden Syntax ein Dateisystem erstellen:

# stratis fs erstellen  

Zum Beispiel, um ein Dateisystem zu erstellen fs_1 von pool_1 führe den Befehl aus:

# stratis fs create pool_1 fs_1

Sie können auch mehr als 1 Dateisystem aus einem Pool erstellen. Im zweiten Pool erstellen wir 2 Dateisysteme: 

fs_2 
&fs_3
# stratis fs create pool_2 fs_2
# stratis fs create pool_2 fs_3

Um nun die neuen Dateisysteme anzuzeigen, führen Sie Folgendes aus:

# stratis fs-Liste

Um Dateisysteme in einem bestimmten Pool aufzulisten, verwenden Sie die Syntax

# stratis fs-Liste

Um beispielsweise die in pool_1 vorhandenen Dateisysteme anzuzeigen, führen Sie den Befehl aus:

# stratis fs list pool_1

Für pool_2 Lauf:

# stratis fs list pool_2

Wie erwartet haben wir 2 Dateisysteme im zweiten Pool.

Führen Sie an dieser Stelle die  lsblk Befehl liefert eine Ausgabe ähnlich der folgenden:

So mounten Sie ein Stratis-Dateisystem

Um auf die Dateisysteme zugreifen zu können, müssen wir sie zunächst mounten. Der erste Schritt besteht darin, Mount-Punkte für jedes der Dateisysteme zu erstellen. Dies ist in der folgenden Tabelle zusammengefasst

Dateisystem Einhängepunkt
fs_1 /Lager
fs_2 /Datenbank
fs_3 /sicherung

Erstellen Sie also den ersten Mount-Punkt für das Dateisystem in pool_1

# mkdir /speicher

Als nächstes mounten Sie das Dateisystem

# mount /Stratis/pool_1/fs_1  /storage

Um das zweite Dateisystem zu mounten, gehen Sie genauso vor:

# mkdir /Datenbank

Mounten Sie das Dateisystem:

# mount /stratis/pool_2/fs_2  /database

Und zum Schluss für das letzte Dateisystem:

# mkdir /backup

Mounten Sie das Dateisystem:

# mount /stratis/pool_2/fs_3  /backup

Sie können die Existenz der Mount-Punkte mit dem folgenden Befehl bestätigen:

# df -Th | grep stratis

Stratis-Dateisysteme persistent machen

Die Dateisysteme, die wir gerade erstellt haben, werden einen Neustart nicht überleben. Um sie persistent zu machen, müssen wir sie dem hinzufügen /etc/fstab Datei.

Lassen Sie uns zunächst die UUID der Dateisysteme wie gezeigt abrufen

# blkid -p /stratis/pool_1/fs_1
# blkid -p /stratis/pool_2/fs_2
# blkid -p /stratis/pool_2/fs_3

# echo "UUID=9161da55-6c4b-4761-9da9-1b3999945964  /storage
xfs-Standardwerte 0 0" | sudo tee -a /etc/fstab
# echo "UUID=ddfa4252-a9d6-4c10-8981-e7dbd56450ee  /database
xfs-Standardwerte 0 0" | sudo tee -a /etc/fstab
# echo "UUID=512bc0b7-182e-46ed-9fbd-d5be4d055fcf /backup
xfs-Standardwerte 0 0" | sudo tee -a /etc/fstab

Sie können das Hinzufügen der Dateisysteme zum /etc/fstab wie gezeigt:

Damit die Änderungen im System wirksam werden, führen Sie den Befehl aus:

# systemctl daemon-reload

Mounten Sie dann alle Dateisysteme

# mount -a

Hinzufügen eines Blockgeräts zu einem Stratis-Pool

Führen Sie den folgenden Befehl aus, um einem vorhandenen Stratis-Pool ein Blockgerät hinzuzufügen:

# Stratis-Pool-Add-Daten

Zum Beispiel um das Blockvolumen hinzuzufügen  /dev/xvde zu  pool_1 führe den Befehl aus:

# stratis pool add-data pool_1 /dev/xvde

Überprüfen Sie nun die Größe von  pool_1

# Stratis-Pool-Liste

Wie beobachtet, ist die Größe von pool_1 hat sich durch das hinzugefügte Blockgerät verdoppelt.

Erstellen eines Stratis-Snapshots

Ein Stratis-Dateisystem ist eine exakte Kopie oder Nachbildung eines anderen Stratis-Dateisystems. Es enthält den gleichen Inhalt wie das ursprüngliche Dateisystem. Ein Snapshot kann jedoch später geändert werden und es bestehen danach Unterschiede zwischen dem Snapshot und dem ursprünglichen Dateisystem.

Hier sind ein paar Dinge, die Sie auch wissen sollten:

  1. Ein Snapshot eines Dateisystems ist einfach ein weiteres Replikat-Dateisystem.
  2. Sie müssen kein Dateisystem mounten, um daraus einen Snapshot erstellen zu können.
  3. Ein Dateisystem mit Snapshots kann das ursprüngliche Dateisystem überdauern, aus dem es erstellt wurde

Um einen Snapshot zu erstellen, verwenden Sie die Syntax:

# stratis fs-Schnappschuss

Um beispielsweise einen Snapshot namens zu erstellen Schnappschuss_1 im pool_1 führe den Befehl aus

# stratis fs Snapshot Pool_1 fs_1 Snapshot_1

Dies dauert etwa 30 Sekunden.

Führen Sie Folgendes aus, um die Erstellung des Snapshots zu bestätigen:

# stratis-Dateisystemliste

In diesem Fall lautet der Befehl:

# Stratis-Dateisystemliste pool_1

Zusätzlich können Sie das Datumsattribut (-$(Datum +%Y-%m-%d) um leicht zu erkennen, wann der Snapshot erstellt wurde. Erstellen wir einen weiteren Snapshot mit dem zweiten Pool.

# stratis fs Snapshot Pool_2 fs_2 Snapshot_2-$(Datum +%Y-%m-%d)

Um den neu erstellten Stratis-Snapshot aufzulisten, geben Sie den Befehl ein:

# stratis-Dateisystemliste pool_2

Aus der obigen Ausgabe können wir einen Snapshot sehen, der in . erstellt wurde pool_2 mit einem Datumsschild.

So kehren Sie mithilfe eines Dateisystems zu einem vorherigen Snapshot zurück

Um mit einem Dateisystem zu einem vorherigen Snapshot zurückzukehren, müssen Sie zuerst das ursprüngliche Dateisystem aushängen und zerstören.

# umount /stratis//Dateisystem

Zum Beispiel in  pool_2  zurückkehren zu Schnappschuss_2 das Dateisystem aushängen fs_2

# umount /stratis/pool_2/fs_2

Erstellen Sie als Nächstes eine Kopie des Snapshots aus dem ursprünglichen Dateisystem

# Stratis-Dateisystem-Snapshot
Snapshot fs-mountpoint

Der Befehl lautet:

# Stratis-Dateisystem-Snapshot-Pool_2 Snapshot_2-2019-11-15-Datenbank

Mounten Sie schließlich den Snapshot mit dem Dateisystem-Mount-Punkt

# mount /stratis/pool_2/fs_2 /database

Entfernen eines Stratis-Snapshots

Um einen Stratis-Snapshot zu entfernen, unmounten Sie zunächst den Snapshot.

# umount /snapshot_mountpoint

So entfernen Sie den in erstellten Snapshot pool_2, unmounten Sie den Mountpoint wie gezeigt

# umount /Datenbank

Fahren Sie als Nächstes fort und zerstören Sie den Snapshot:

# stratis Dateisystem zerstören

Der Befehl lautet:

# Stratis-Dateisystem zerstören Pool_2 Snapshot_2-2019-11-15

Versuchen Sie nun, die Dateisysteme in pool_2 aufzulisten. Sie werden feststellen, dass der Schnappschuss jetzt weg ist.

# stratis-Dateisystemliste pool_2

Entfernen eines Stratis-Dateisystems

Um ein Dateisystem loszuwerden, hängen Sie zuerst das Dateisystem mit der folgenden Syntax aus:

# umount /stratis/pool/filesystem

Zum Beispiel um das Dateisystem zu entfernen fs_1 im pool_1, Unmounten Sie es zuerst wie gezeigt:

# umount /stratis/pool_1/fs_1

Als nächstes zerstören Sie das Dateisystem mit der folgenden Syntax:

# Stratis-Dateisystem zerstören Pool fs

In unserem Szenario lautet der Befehl:

# Stratis-Dateisystem zerstören pool_1 fs_1

Führen Sie den folgenden Befehl aus, um zu bestätigen, dass das Dateisystem erfolgreich entfernt wurde:

# Stratis-Dateisystemliste pool_1

Wie Sie sehen können, existiert das Dateisystem nicht mehr.

Entfernen eines Stratis-Pools

Sehen wir uns zum Schluss an, wie Sie einen Stratis-Pool entfernen können.

Um einen Stratis-Pool zu entfernen, müssen Sie alle Dateisysteme und Snapshots im Pool aushängen und zerstören, wie wir in den vorherigen Unterthemen gesehen haben.

Da auf pool_1 noch ein Snapshot vorhanden ist, entfernen wir ihn zuerst, indem wir zuerst den mit dem Snapshot verknüpften Mount-Punkt entfernen

# umount /Speicher

Zerstören Sie als nächstes das Dateisystem.

# Stratis-Dateisystem zerstören Pool_1 Snapshot_1

Nachdem der Snapshot jetzt entfernt wurde, entfernen Sie pool_1 mit dem Befehl

# stratis pool zerstören pool_1

Listen Sie nun die verfügbaren Pools auf:

# Stratis-Pool-Liste

Zu entfernen pool_2 , Lassen Sie uns zuerst die Dateisysteme auflisten

# stratis-Dateisystemliste pool_2

Unmounten und zerstören Sie die Dateisysteme wie gezeigt

# umount /stratis/pool_2/fs_3
# Stratis-Dateisystem zerstören pool_2 fs_3
# Stratis-Dateisystem zerstören die Pool_2-Datenbank

Als nächstes zerstören Sie den Pool und listen Sie die Pools auf

# stratis pool zerstören pool_2
# Stratis-Pool-Liste

Perfekt ! alle Becken sind jetzt weg. Wir sind dorthin zurückgekehrt, wo wir angefangen haben ! Sie können dies noch einmal bestätigen, indem Sie die Sperrgeräte mit dem Befehl auflisten:

und wie Sie damit Blockgeräte verwalten, Snapshots, Dateisysteme und Pools erstellen und auch entfernen können. Ihre Gedanken und Ihr Feedback sind sehr willkommen.

Verweise:

  • https://Zugang.roter Hut.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_file_systems/managing-layered-local-storage-with-stratis_managing-file-systems
  • https://www.tekmint.com/install-stratis-to-manage-layered-local-storage-on-rhel/
OpenTTD vs. Simutrans
Das Erstellen einer eigenen Transportsimulation kann Spaß machen, entspannend und äußerst verlockend sein. Deshalb sollten Sie so viele Spiele wie mög...
OpenTTD-Tutorial
OpenTTD ist eines der beliebtesten Wirtschaftssimulationsspiele auf dem Markt. In diesem Spiel musst du ein wunderbares Transportunternehmen aufbauen....
SuperTuxKart für Linux
SuperTuxKart ist ein großartiger Titel, der entwickelt wurde, um Ihnen das Mario Kart-Erlebnis kostenlos auf Ihrem Linux-System zu bieten. Es ist ziem...