So installieren und konfigurieren Sie ZFS unter Ubuntu - CloudSavvy IT
Webagentur » Digitale Nachrichten » So installieren und konfigurieren Sie ZFS unter Ubuntu - CloudSavvy IT

So installieren und konfigurieren Sie ZFS unter Ubuntu - CloudSavvy IT

Das ZFS-Dateisystem bietet enorme Kapazitäten, RAID-Spiegelung und Anti-Korruptionsmechanismen direkt nach dem Auspacken. Erfahren Sie, wie Sie Ubuntu mit ZFS installieren und einen gespiegelten Pool erstellen.

Was ist ZFS?

ZFS ist ein fortschrittliches Dateisystem, das von Sun Microsystems zur Verwendung mit ihrem Betriebssystem Solaris entwickelt wurde. Nach der Übernahme von Sun durch Oracle im Jahr 2009 gehört ZFS nun zur Oracle Corporation.

In einem typischen Akt der Selbstlosigkeit veröffentlichte Sun jedoch ab 2005 eine Open-Source-Version von ZFS. Unweigerlich wurde dies auf Linux portiert, wo es an Sichtbarkeit gewann. Die Open-Source-Version von ZFS - openZFS - wird vom OpenZFS-Projekt verwaltet und gepflegt.

ZFS ist ein fehlertolerantes Dateisystem mit hoher Kapazität. ZFS stand ursprünglich für Zettabyte File System. Die ZFS-Architektur basiert auf 128 Bit anstelle der üblicheren 64 Bit anderer Dateisysteme. Die Möglichkeit, mit größeren numerischen Werten zu arbeiten, ist einer der Faktoren, die ZFS in die Lage versetzt haben, Zettabytes an Speicher zu verarbeiten. Um Ihnen eine Vorstellung davon zu geben, was das bedeutet, entspricht ein Zettabyte einer Milliarde Terabyte.

Heutzutage unterstützt ZFS das Speichern von Dateien bis zu 256 zbibytes. Ein Zbibyte (270 Bytes) ist größer als ein Zettabyte (1021 Byte), aber nicht in der Größenordnung. ZFS hat mehr zu bieten als nur Kapazität, so verblüffend das auch sein mag. ZFS fungiert als eigener Volume-Manager und RAID-Controller. Es verfügt über integrierte Funktionen wie Copy-on-Write, die Ihre Daten vor Beschädigung schützen. Es kombiniert nativ Funktionen zum Gruppieren, Klonen und Kopieren von Dateisystemen zusammen mit seiner RAID-ähnlichen Funktionalität.

Ubuntu bietet seit einigen Jahren ZFS an, aber immer noch mit Vorbehalten und Vorbehalten. In Ubuntu 20.10 wurden die Warnungen entfernt. Canonical unterstützt offiziell ZFS, jedoch nur in vollständigen Festplattenkonfigurationen. Um diese Unterstützung zu erhalten, müssen Sie bei der Installation von Ubuntu ZFS installieren. Die ZFS-Optionen sind immer noch versteckt, aber sie sind da und nicht mehr nur für die Unerschrockenen oder die Rücksichtslosen.

Mit Ubuntu 21.10, das im Oktober 2021 erwartet wird, ist jetzt ein guter Zeitpunkt, um zu sehen, wie sich das ZFS-Angebot in Ubuntu entwickelt.

So installieren und verwenden Sie ZFS unter Ubuntu (und warum Sie es wollen)

Prüfen auf ZFS-Optionen während der Installation

Während der Installation von Ubuntu können Sie auf dem Bildschirm "Installationstyp" entweder die Festplatte löschen, auf der Sie Ubuntu installieren, oder etwas anderes tun. Klicken Sie auf die Schaltfläche „Erweiterte Funktionen“.

Schaltfläche „Erweiterte Funktionen“ auf dem Bildschirm „Installationstyp“

Das Dialogfeld „Erweiterte Funktionen“ wird angezeigt.

ZFS-Optionen im Dialogfeld „Erweiterte Funktionen“

Wählen Sie das Optionsfeld "Datenträger löschen und ZFS verwenden" und klicken Sie dann auf die Schaltfläche "OK".

Auf dem Bildschirm „Installationstyp“ wird „ZFS Selected“ angezeigt, um anzuzeigen, dass Sie sich für die Verwendung von ZFS entschieden haben.

Benachrichtigung "ZFS ausgewählt" auf der

Klicken Sie auf die Schaltfläche „Weiter“ und schließen Sie die Installation wie gewohnt ab.

Wenn auf Ihrem Computer mehrere Festplatten installiert sind, können Sie auswählen, wie sie von ZFS verwendet werden sollen. Ubuntu bietet eine vorgeschlagene Konfiguration, aber Sie können die Dinge nach Belieben anpassen.

Aber was ist, wenn Sie nach der Installation von Ubuntu Festplatten hinzufügen? Wie konfigurieren Sie ZFS für die Verwendung des neuen Speichers? Das werden wir als nächstes sehen.

Wir haben Ubuntu mit ZFS auf der einzigen Festplatte der Testmaschine installiert, mit der wir diesen Artikel recherchiert haben. Wir haben zwei weitere Festplatten hinzugefügt, sodass der Computer insgesamt drei Festplatten hat. Ubuntu wurde auf einer Festplatte installiert und die beiden neuen Laufwerke waren leer, unformatiert und ausgehängt.

Das erste, was wir tun müssen, ist herauszufinden, wie sich Ubuntu auf neue Festplatten bezieht. Die lsblk Der Befehl listet alle auf Ihrem Computer installierten Blockgeräte auf. Wir können die Ausgabespalten, die wir in den Ergebnissen sehen möchten, genau angeben.

lsblk -o Name, Größe, fstype, Typ, Einhängepunkt

Die -o (Ausgabe) folgen die Spalten, die wir sehen möchten. Wir wählten:

  • Name: Der Name, den Ubuntu verwendet, um sich auf die Festplatte zu beziehen.
  • Größe: Die Größe der Festplatte. Wenn die Festplatte über mehrere Partitionen verfügt, werden alle aufgelistet und die Größe jeder Partition wird angezeigt.
  • Schriften: das Dateisystem, das der Festplatte oder Partition entspricht.
  • Konus: Gibt an, ob sich die Zeile auf einen Datenträger, eine Partition, ein CD-ROM-Laufwerk oder ein Loopback-Pseudogerät bezieht.
  • Befestigungspunkt: Der Einhängepunkt des Dateisystems auf der Festplatte oder Partition.

Es gibt eine Menge squashfs Loopback-Geräte, nummeriert loop0 vonloop6. Jedes Mal, wenn Sie eine Snap-App installieren, wird eines dieser Pseudo-Geräte erstellt. Es ist Teil der Kapselung und des Sandboxing, die jede Snap-App umschließen.

Die erste Festplatte wird aufgeführt als /dev/sda. Es ist ein 32-GB-Laufwerk mit fünf Partitionen, aufgeführt als /dev/sda1 von /dev/sda5. Sie sind unterschiedlich formatiert. Dies ist das Laufwerk, das sich im Computer befand, als wir Ubuntu installierten.

Unsere beiden neuen Festplatten sind gelistet als /dev/sdb et /dev/sdc. Dies sind ebenfalls 32-GB-Laufwerke, die jedoch nicht formatiert und nicht gemountet sind.

Pools, Raid 0, Raid 1

Um die neuen harten Kanten zu verwenden, fügen wir sie zu a . hinzu Becken. Sie können einem Pool beliebig viele Festplatten hinzufügen. Dazu gibt es zwei Möglichkeiten. Sie können den Pool so konfigurieren, dass er den gesamten Speicherplatz auf jeder Festplatte in einer RAID 0-Konfiguration nutzen kann, oder Sie können sie so konfigurieren, dass der Pool nur den Speicherplatz der kleinsten Festplatte im System bereitstellt. Pool, in einer RAID-1-Konfiguration.

Der Vorteil von RAID 0 ist der Platz. Die bevorzugte (und dringend empfohlene) Konfiguration ist jedoch RAID 1. RAID 1 spiegelt Daten auf allen Festplatten im Pool. Dies bedeutet, dass Sie möglicherweise einen Festplattenfehler haben und das Dateisystem und Ihre Daten noch sicher sind und Ihr Computer noch funktionsfähig ist. Sie können das beschädigte Laufwerk ersetzen und das neue Laufwerk zu Ihrem Pool hinzufügen.

Im Gegensatz dazu macht bei RAID 0 ein einzelner Festplattenausfall Ihr System unbrauchbar, bis Sie das beschädigte Laufwerk ersetzen und aus Ihren Backups wiederherstellen.

Je mehr Festplatten Sie in einem RAID 1-Pool haben, desto robuster ist er. Für RAID 1 benötigen Sie mindestens zwei Festplatten. Ein Ausfall in beiden Laufwerken wäre ein Nachteil, aber keine Katastrophe. Ein Ausfall beider Festplatten gleichzeitig wäre aber natürlich ein größeres Problem. Die Antwort scheint also zu sein, so viele Festplatten wie möglich zu bündeln.

Aber in der Praxis gibt es natürlich eine Grenze dafür, wie viele Festplatten Sie einem einzelnen Pool zuordnen möchten oder können. Wenn Sie über acht Ersatzfestplatten verfügen, ist die Konfiguration von zwei RAID 1-Pools mit vier Laufwerken wahrscheinlich eine bessere Hardwarenutzung als ein einzelner Pool mit acht Laufwerken. Und denken Sie daran, dass ein RAID 1-Pool nur Speicherplatz für die kleinste Festplatte im Pool bieten kann. Versuchen Sie also immer, Laufwerke derselben Größe in einem einzigen Pool zu verwenden.

Erstellen eines RAID 1-Pools

Wir haben unsere neuen Festplatten identifiziert als /dev/sdb et /dev/sdc . Um einen ZFS-RAID-1-Pool zu erstellen, verwenden wir diesen Befehl:

sudo zpool erstellen cloudavvyit spiegel / dev / sdb / dev / sdc

Die Komponenten des Befehls sind:

  • sudo: Wir ändern die Systemkonfiguration, also müssen wir verwenden sudo um Root-Rechte zu erlangen.
  • zpool: Dies ist der Befehl zur ZFS-Poolverwaltung.
  • créer: Das ist die Aktion, die wir wollen zpool für uns zu erreichen.
  • Wolkenavvyit: Dies ist der Name des Pools, den wir erstellen möchten.
  • Spiegel: Wir möchten, dass unsere Daten auf allen Festplatten gespiegelt werden, was uns einen RAID 1-Pool ergibt.Wenn Sie die Option "Spiegeln" weglassen, wird ein RAID 0-Pool erstellt.
  • / dev / sdb: Die erste unserer neuen Festplatten.
  • / dev / sdc: Die zweite unserer neuen Festplatten.

Ersetzen Sie "cloudsavvyit" durch den Namen, den Sie Ihren Pool nennen möchten, und ersetzen Sie /dev/sdb et /dev/sdc mit den Kennungen Ihrer neuen Festplatten.

Hinzufügen der neuen Festplatten zu einem neuen RAID 1-Pool

Ein Schwimmbad zu bauen ist ein bisschen antiklimatisch. Wenn alles gut geht, kehren Sie unverblümt zur Eingabeaufforderung zurück. Wir können die nutzen status handle mit dem zpool Befehl, um den Status unseres neuen Pools anzuzeigen.

sudo zpool-status cloudavvyit

Zustand des neuen Pools prüfen

Unser neuer Pool wurde erstellt, er ist online, unsere beiden neuen Festplatten sind im Pool und es liegen keine Fehler vor. Es sieht alles toll aus. Aber wo ist das Schwimmbad? Mal sehen ob lsblk zeigt uns, wo es montiert wurde.

lsblk -o Name, Größe, fstype, Typ, Einhängepunkt

Status neuer Festplatten im ZFS-Pool

Wir können sehen, dass unsere neuen Festplatten /dev/sdb et /dev/sdc wurden mit jeweils zwei Partitionen partitioniert, aber es werden keine Mount-Punkte für sie aufgelistet. Pools werden nicht wie normale Festplatten gemountet. Zum Beispiel gibt es keinen Eintrag in der /etc/fstab Datei für ZFS-Pools. Standardmäßig wird ein Einhängepunkt im Stammverzeichnis erstellt. Es hat den gleichen Namen wie das Schwimmbad.

ls /

Der Mount-Punkt des ZFS-Pools im Root-Verzeichnis

Wenn Sie möchten, dass der Mount-Punkt an anderer Stelle erstellt wird, verwenden Sie die -m (Einhängepunkt), wenn Sie den Pool erstellen, und geben Sie den Pfad an, an dem der Einhängepunkt erstellt werden soll. Sie können dem Mount-Punkt auch einen anderen Namen geben.

sudo zpool create -m / path / to / mount-point-name cloudavvyit mirror / dev / sdb / dev / sdc

Geben Sie Benutzern Zugriff auf den Pool

Der Pool existiert, aber nur der Root-Benutzer kann Daten darin speichern. Das brauchen wir natürlich nicht. Wir möchten, dass andere Benutzer auf den Pool zugreifen können.

Um dies zu erreichen, werden wir:

  • Erstellen Sie ein Verzeichnis im Pool.
  • Erstellen Sie eine neue Gruppe.
  • Legen Sie die neue Gruppe als Eigentümer der Verzeichnisgruppe fest.
  • Fügen Sie der neuen Gruppe Benutzer hinzu, die Zugriff auf den Datenspeicher benötigen.

Dieses Schema bietet große Flexibilität. Wir können so viele Datenspeicherverzeichnisse wie nötig erstellen, wobei verschiedene Gruppen diese besitzen. Benutzern Zugriff auf verschiedene Speicherbereiche zu gewähren, ist so einfach wie das Hinzufügen zu den entsprechenden Gruppen.

wir werden verwenden groupadd um eine Benutzergruppe zu erstellen. Unsere Gruppe heißt "csavvy1". Wir werden dann die usermod Befehl, um einen Benutzer namens "dave" zur neuen Gruppe hinzuzufügen. Die -a Die Option (hinzufügen) fügt die neue Gruppe der Liste der bestehenden Gruppen hinzu, in denen sich der Benutzer befindet. Ohne diese Option wird der Benutzer aus allen bestehenden Gruppen entfernt und der neuen hinzugefügt. Dies wird zu Problemen führen, also verwenden Sie unbedingt die -a .

sudo Groupadd Csavvy1
sudo usermod -a -g csavvy1 Dave

Erstellen Sie eine Benutzergruppe und fügen Sie einen Benutzer hinzu

Damit seine neue Gruppenmitgliedschaft wirksam wird, muss sich der Benutzer aus- und wieder einloggen.

Wir werden nun im Pool ein Verzeichnis mit dem Namen „data1“ erstellen.

sudo mkdir / cloudavvyit / data1

Die chgrp Der Befehl ermöglicht es uns, den Eigentümer der Gruppe des Verzeichnisses zu definieren.

sudo chgrp csavvy1 / cloudavvyit / data1

Schließlich legen wir die Gruppenberechtigungen mit . fest chmod . Das "s" ist das spezielle SGID-Bit. Dies bedeutet, dass die im Verzeichnis „data1“ erstellten Dateien und Verzeichnisse von der Gruppe erben, die dieses Verzeichnis besitzt.

sudo chmod g + rwsx / cloudavvyit / data1 /

Erstellen Sie ein Verzeichnis und legen Sie Eigentum und Berechtigungen für seine Gruppe fest

Unser Benutzer hat sich abgemeldet und wieder angemeldet. Versuchen wir, eine Datei im neuen Datenspeicherverzeichnis unseres neuen ZFS-RAID-1-Pools zu erstellen.

Berühren Sie /cloudsavvyit/data1/new-file.txt

Und sehen wir, dass es erstellt wurde.

ls / cloudavvyit / data1 -lh

Erstellen einer neuen Datei im ZFS-Pool-Datenspeicherverzeichnis

Erfolg. Was ist, wenn wir versuchen, eine andere Datei außerhalb unseres data1-Speicherbereichs zu erstellen?

Berühren Sie /cloudsavvyit/new-file2.txt

Der Benutzer kann keine Dateien außerhalb seines zugewiesenen Datenspeicherbereichs erstellen

Es schlägt wie erwartet fehl. Unsere Berechtigungen funktionieren. Unser Nutzer kann nur mit Dateien in dem Datenspeicherverzeichnis umgehen, auf das er eine Zugriffsberechtigung hat.

So verwenden Sie SUID, SGID und Sticky Bits unter Linux

Zerstöre ein Schwimmbad

Seien Sie vorsichtig mit diesem Befehl. Stellen Sie sicher, dass Sie über Backups verfügen, bevor Sie fortfahren. Wenn Sie sicher sind, dass Sie es wirklich wollen und überprüft haben, dass Sie andere Kopien der Daten im Pool haben, können Sie einen Pool mit diesem Befehl zerstören:

sudo zpool zerstören cloudavvyit

Ersetzen Sie "cloudsavvyit" durch den Namen des Pools, den Sie zerstören werden.

Hast du nur eine Festplatte?

Wenn Sie nur über eine Festplatte verfügen oder Ihr Computer über mehrere Festplatten verfügt, deren Größe jedoch zu stark variiert, um einen nützlichen Pool zu bilden, können Sie trotzdem ZFS verwenden. Sie werden keine RAID-Spiegelung erhalten, aber die integrierten Korruptions- und Datenschutzmechanismen sind immer noch großartige und überzeugende Funktionen.

Denken Sie jedoch daran, dass kein Dateisystem mit oder ohne RAID-Spiegelung bedeutet, dass Sie Backups überspringen können.

Backups vs. Redundanz: Was ist der Unterschied?

★ ★ ★ ★ ★