Werbung

Wenn Ihr Linux-System mehrere Festplatten enthält, müssen Sie diese nicht alle als unterschiedliche Speichergeräte behandeln. Mit Btrfs können Sie sehr einfach einen Speicherpool aus diesen Festplatten erstellen.

Unter bestimmten Umständen können Sie sogar die Spiegelung aktivieren, damit Sie Ihre Daten nicht aufgrund eines Festplattenausfalls verlieren. Wenn alles eingerichtet ist, können Sie einfach alles, was Sie wollen, in den Pool werfen und den verfügbaren Speicherplatz optimal nutzen.

Es gibt kein GUI-Konfigurationsdienstprogramm, das dies (noch) einfacher machen kann, aber es ist immer noch ziemlich einfach, mit der Befehlszeile zu arbeiten. Ich werde Sie durch ein einfaches Setup für die gemeinsame Verwendung mehrerer Festplatten führen.

Was ist Btrfs?

Btrfs (genannt B-Tree-Dateisystem, "Butter FS" oder "Better FS") ist ein bevorstehendes Dateisystem Ext4 vs. Btrfs: Warum wir den Wechsel machen [Linux]Ganz ehrlich, eines der letzten Dinge, die sich die Leute ansehen, ist, welches Dateisystem verwendet wird. Windows- und Mac OS X-Benutzer haben noch weniger Grund zu suchen, weil sie wirklich nur einen ...

instagram viewer
Weiterlesen Dies beinhaltet viele verschiedene Funktionen auf Dateisystemebene, die normalerweise nur als separate Softwarepakete verfügbar sind. Während Btrfs über viele bemerkenswerte Funktionen verfügt (z. B. Snapshots von Dateisystemen), werden wir uns in diesem Artikel beide mit Speicherpooling und Spiegelung befassen.

Wenn Sie sich nicht sicher sind, was ein Dateisystem ist, lesen Sie diese Erklärung von ein paar Dateisysteme für Windows Was ist ein Dateisystem und wie können Sie herausfinden, was auf Ihren Laufwerken ausgeführt wird?Was ist ein Dateisystem und warum sind sie wichtig? Lernen Sie die Unterschiede zwischen FAT32, NTFS, HPS +, EXT und mehr kennen. Weiterlesen . Sie können dies auch schön überprüfen Vergleich verschiedener Dateisysteme Von FAT zu NTFS zu ZFS: Dateisysteme entmystifiziertUnterschiedliche Festplatten und Betriebssysteme verwenden möglicherweise unterschiedliche Dateisysteme. Hier ist was das bedeutet und was Sie wissen müssen. Weiterlesen um eine bessere Vorstellung von den Unterschieden zwischen vorhandenen Dateisystemen zu bekommen.

Btrfs wird von vielen immer noch als "nicht stabil" eingestuft, aber die meisten Funktionen sind bereits für den persönlichen Gebrauch stabil genug - es sind nur einige ausgewählte Funktionen, bei denen möglicherweise unbeabsichtigte Ergebnisse auftreten.

Obwohl Btrfs zu einem späteren Zeitpunkt das Standard-Dateisystem für Linux sein soll, ist es immer noch das Beste Verwenden von ext4 für einzelne Festplatten-Setups oder für Setups, für die kein Speicherpooling und keine Spiegelung erforderlich sind.

Pooling Ihrer Laufwerke

In diesem Beispiel verwenden wir ein Setup mit vier Festplatten. Es gibt zwei Festplatten (/ dev / sdb und / dev / sdc) mit jeweils 1 TB und zwei weitere Festplatten (/ dev / sdd und / dev / sde) mit 500 GB für insgesamt vier Festplatten mit insgesamt 3 TB der Lagerung.

Sie können auch davon ausgehen, dass Sie eine andere Festplatte (/ dev / sda) beliebiger Größe haben, die Ihren Bootloader und Ihr Betriebssystem enthält. Wir beschäftigen uns nicht mit / dev / sda und kombinieren ausschließlich die anderen vier Festplatten für zusätzliche Speicherzwecke.

Erstellen eines Dateisystems

btrfs_gparted
Verwenden Sie den folgenden Befehl, um ein Btrfs-Dateisystem auf einer Ihrer Festplatten zu erstellen:

sudo mkfs.btrfs / dev / sdb

Natürlich können Sie / dev / sdb durch die tatsächliche Festplatte ersetzen, die Sie verwenden möchten. Von hier aus können Sie dem Btrfs-System weitere Festplatten hinzufügen, um eine einzige Partition zu erstellen, die sich über alle von Ihnen hinzugefügten Festplatten erstreckt. Mounten Sie zuerst die erste Btrfs-Festplatte mit dem folgenden Befehl:

sudo mount / dev / sdb / mnt

Führen Sie dann die folgenden Befehle aus:

sudo mkfs.btrfs / dev / sdc mkfs.btrfs / dev / sdd mkfs.btrfs / dev / sde

Jetzt können Sie sie mit den folgenden Befehlen zur ersten Festplatte hinzufügen:

sudo btrfs Gerät hinzufügen / dev / sdc / mnt btrfs Gerät hinzufügen / dev / sdd / mnt btrfs Gerät hinzufügen / dev / sde / mnt

Wenn Sie einige Daten auf der ersten Festplatte gespeichert haben, möchten Sie, dass das Dateisystem diese auf alle neu hinzugefügten Festplatten verteilt. Sie können dies mit dem folgenden Befehl tun:

sudo btrfs Dateisystem balance / mnt

Wenn Sie bereits vor Beginn wissen, dass sich ein Btrfs-Dateisystem über alle Festplatten erstrecken soll, können Sie alternativ einfach den folgenden Befehl ausführen:

sudo mkfs.btrfs -d single / dev / sdb / dev / sdc / dev / sdd / dev / sde

Dies ist natürlich viel einfacher, aber Sie müssen die oben genannte Methode verwenden, wenn Sie nicht alle auf einmal hinzufügen.

Sie werden feststellen, dass ich eine Flagge verwendet habe: "-d single". Dies ist notwendig, weil ich eine RAID 0-Konfiguration wollte (bei der die Daten auf alle Festplatten aufgeteilt werden Laufwerke, aber keine Spiegelung erfolgt), aber das "einzelne" Profil wird benötigt, wenn die Festplatten unterschiedlich sind Größen. Wenn alle Festplatten die gleiche Größe hätten, könnte ich stattdessen das Flag "-d raid0" verwenden. Das Flag „-d“ steht übrigens für Daten und ermöglicht es Ihnen, die gewünschte Datenkonfiguration anzugeben. Es gibt auch ein "-m" -Flag, das genau dasselbe für Metadaten tut.

Darüber hinaus können Sie RAID 1 auch mit „-d raid1“ aktivieren, wodurch Daten auf allen Geräten dupliziert werden. Verwenden Sie dieses Flag also während der Erstellung des Ein Btrfs-Dateisystem, das sich über alle Festplatten erstreckt, bedeutet, dass Sie nur 500 GB nutzbaren Speicherplatz erhalten, da die drei anderen Festplatten für die Spiegelung verwendet werden.

Zuletzt können Sie RAID 10 mit "-d raid10" aktivieren. Dadurch wird eine Mischung aus RAID 0 und RAID 1 erstellt, sodass Sie 1,5 TB nutzbaren Speicherplatz erhalten, da die beiden 1-TB-Festplatten in der Spiegelung und die beiden 500-GB-Festplatten in der Spiegelung gekoppelt sind.

Konvertieren eines Dateisystems

btrfs_harddiskstack
Wenn Sie ein Btrfs-Dateisystem haben, das Sie in eine andere RAID-Konfiguration konvertieren möchten, ist dies ganz einfach. Mounten Sie zuerst das Dateisystem (falls noch nicht geschehen) mit dem folgenden Befehl:

sudo mount / dev / sdb1 / mnt

Führen Sie dann den folgenden Befehl aus:

sudo btrfs balance start -dconvert = raid1 -mconvert = raid1 / mnt

Dadurch wird die Konfiguration in RAID 1 geändert. Sie können diese jedoch durch eine beliebige Konfiguration ersetzen (z Solange dies tatsächlich zulässig ist, können Sie beispielsweise nicht zu RAID 10 wechseln, wenn Sie nicht über mindestens vier Festplatten verfügen fährt). Darüber hinaus ist das Flag -mconvert optional, wenn Sie sich nur um die Daten, nicht aber um die Metadaten kümmern.

Wenn ein Festplattenfehler auftritt

Wenn eine Festplatte ausfällt, müssen Sie sie aus dem Dateisystem entfernen, damit die restlichen gepoolten Laufwerke ordnungsgemäß funktionieren. Hängen Sie das Dateisystem mit dem folgenden Befehl ein:

sudo mount -o degradiert / dev / sdb / mnt

Korrigieren Sie dann das Dateisystem mit:

sudo btrfs Gerät löschen fehlt / mnt

Wenn Sie RAID 1 oder RAID 10 nicht aktiviert hatten, gehen jetzt alle Daten verloren, die sich auf der ausgefallenen Festplatte befanden.

Entfernen einer Festplatte aus dem Dateisystem

Wenn Sie ein Gerät aus einem Btrfs-Dateisystem entfernen möchten und das Dateisystem in / mnt eingebunden ist, können Sie dies mit dem folgenden Befehl tun:

sudo btrfs Gerät löschen / dev / sdc / mnt

Ersetzen Sie natürlich / dev / sdc durch die Festplatte, die Sie entfernen möchten. Dieser Befehl dauert einige Zeit, da alle Daten von der zu entfernenden Festplatte entfernt werden müssen. Er schlägt ebenfalls fehl, wenn auf den anderen verbleibenden Festplatten nicht genügend Platz vorhanden ist.

Automatische Montage

btrfs_fstab
Wenn Sie möchten, dass das Btrfs-Dateisystem automatisch bereitgestellt wird, können Sie dies in Ihre Datei / etc / fstab einfügen:

sudo / dev / sdb / mnt btrfs Gerät = / dev / sdb, Gerät = / dev / sdc, Gerät = / dev / sdd, Gerät = / dev / sde 0 0

Mount-Optionen

Noch ein Bonus-Tipp! Sie können die Leistung von Btrfs in Ihrer Datei / etc / fstab unter den Mount-Optionen für das Btrfs-Dateisystem optimieren. Für große Speicher-Arrays sind diese Optionen am besten geeignet: compress-force = zlib, autodefrag, nospace_cache. Insbesondere komprimiert = zlib alle Daten, damit Sie den vorhandenen Speicherplatz optimal nutzen können. Für die Aufzeichnung können SSD-Benutzer die folgenden Optionen verwenden: noatime, compress = lzo, ssd, discard, space_cache, autodefrag, inode_cache. Diese Optionen passen genau zu den Gerätespezifikationen, sodass eine vollständige Zeile in / etc / fstab für SSD-Benutzer folgendermaßen aussehen würde:

sudo / dev / sdb / mnt btrfs Gerät = / dev / sdb, Gerät = / dev / sdc, Gerät = / dev / sdd, Gerät = / dev / sde,
noatime, compress = lzo, ssd, discard, space_cache, autodefrag, inode_cache 0 0

Wie groß ist Ihr Speicherpool?

Btrfs ist eine fantastische Option für das Pooling und Spiegeln von Speichern, die sicherlich immer beliebter wird, sobald sie als vollständig stabil eingestuft wird. Es würde auch nicht schaden, wenn es eine grafische Benutzeroberfläche gäbe, die die Konfiguration vereinfacht (außer bei einigen Distributionsinstallationsprogrammen), aber die Befehle, die Sie im Terminal verwenden müssen, sind leicht zu verstehen und anzuwenden.

Was ist der größte Speicherpool, den Sie erstellen können? Denken Sie, dass sich Speicherpools lohnen? Lass es uns in den Kommentaren wissen!

Bildnachweis: William Hook

Danny ist Senior an der University of North Texas und mag alle Aspekte von Open Source Software und Linux.