So aktivieren Sie das Speicher-Pooling und Spiegeln mit Btrfs für Linux
Wenn Sie mehrere Festplatten in Ihrem Linux-System haben, müssen Sie sie nicht alle als unterschiedliche Speichergeräte behandeln. Mit Btrfs können Sie sehr einfach einen Speicherpool aus diesen Festplatten erstellen.
Unter bestimmten Bedingungen können Sie sogar die Spiegelung aktivieren, damit Ihre Daten nicht aufgrund eines Festplattenausfalls verloren gehen. Wenn alles eingerichtet ist, können Sie einfach alles, was Sie möchten, in den Pool werfen und so viel Speicherplatz wie möglich nutzen.
Es gibt kein GUI-Konfigurationsprogramm, das all dies (noch) einfacher machen kann, aber es ist immer noch ziemlich einfach mit der Befehlszeile. Ich werde Sie durch ein einfaches Setup für die Verwendung mehrerer Festplatten führen.
Was ist Btrfs??
Btrfs (B-Tree-Dateisystem genannt), “Butter FS”, oder “Bessere FS”) ist ein bevorstehendes Dateisystem Ext4 vs. Btrfs: Warum wir den Switch machen [Linux] Ext4 vs. Btrfs: Warum wir den Switch machen [Linux] Ganz ehrlich, eines der letzten Dinge, die die Leute betrachten, ist, welches Dateisystem wird benutzt. Benutzer von Windows und Mac OS X haben noch weniger Grund, nachzusehen, denn sie haben wirklich nur einen… Weiterlesen, der viele verschiedene Funktionen auf Dateisystemebene enthält, die normalerweise nur als separate Softwarepakete verfügbar sind. Während Btrfs viele bemerkenswerte Funktionen bietet (z. B. Dateisystem-Snapshots), werden wir uns in diesem Artikel mit dem Pool-Pooling und Spiegeln beschäftigen.
Wenn Sie nicht sicher sind, was ein Dateisystem ist, werfen Sie einen Blick auf diese Erklärung einiger Dateisysteme für Windows Was ist ein Dateisystem und wie können Sie herausfinden, was auf Ihren Laufwerken läuft Was ein Dateisystem ist und wie Sie herausfinden können Was läuft auf Ihren Laufwerken Was ist ein Dateisystem und warum sind sie wichtig? Erfahren Sie die Unterschiede zwischen FAT32, NTFS, HPS +, EXT und mehr. Weiterlesen . Sie können sich auch diesen schönen Vergleich verschiedener Dateisysteme ansehen. Von FAT über NTFS bis ZFS: Dateisysteme von FAT bis NTFS bis ZFS: Dateisysteme von Demystifiziert Unterschiedliche Festplatten und Betriebssysteme verwenden möglicherweise unterschiedliche Dateisysteme. Hier ist, was das bedeutet und was Sie wissen müssen. Lesen Sie weiter, um die Unterschiede zwischen den vorhandenen Dateisystemen besser zu verstehen.
Btrfs wird noch berücksichtigt “nicht stabil” von vielen, aber die meisten Funktionen sind bereits stabil genug für den persönlichen Gebrauch - es sind nur einige ausgewählte Funktionen, bei denen Sie möglicherweise auf unbeabsichtigte Ergebnisse stoßen.
Obwohl Btrfs das Standarddateisystem für Linux zu einem bestimmten Zeitpunkt in der Zukunft sein soll, ist es dennoch am besten, ext4 für die Installation einzelner Festplatten oder für Setups zu verwenden, für die kein Storage-Pooling und keine Spiegelung erforderlich ist.
Laufwerke bündeln
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) von beliebiger Größe haben, die Ihren Bootloader und Ihr Betriebssystem enthält. Wir beschäftigen uns nicht mit / dev / sda und kombinieren lediglich die anderen vier Festplatten für zusätzliche Speicherzwecke.
Ein Dateisystem erstellen
Um ein Btrfs-Dateisystem auf einer Ihrer Festplatten zu erstellen, können Sie den Befehl verwenden:
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 daraus eine einzige Partition zu machen, die sich auf alle hinzugefügten Festplatten erstreckt. Mounten Sie zuerst die erste Btrfs-Festplatte mit dem Befehl:
Sudo Mount / dev / sdb / mnt
Führen Sie dann die Befehle aus:
Sudo mkfs.btrfs / dev / sdc mkfs.btrfs / dev / sdd mkfs.btrfs / dev / sde
Jetzt können Sie sie mit den 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 Daten auf der ersten Festplatte gespeichert haben, sollten Sie das Dateisystem auf alle neu hinzugefügten Festplatten ausgleichen. Sie können dies mit dem Befehl tun:
sudo btrfs Dateisystem balance / mnt
Wenn Sie wissen, dass ein Btrfs-Dateisystem sich über alle Festplatten erstreckt, können Sie alternativ einfach den Befehl ausführen:
sudo mkfs.btrfs -d single / dev / sdb / dev / sdc / dev / sdd / dev / sde
Natürlich ist dies viel einfacher, aber Sie müssen die oben erwähnte Methode verwenden, wenn Sie sie nicht alle auf einmal hinzufügen.
Sie werden feststellen, dass ich eine Flagge verwendet habe: “-d Single”. Dies ist notwendig, da ich eine RAID 0 - Konfiguration wollte (bei der die Daten auf alle Festplatten aufgeteilt sind, aber keine Spiegelung auftritt), sondern die “Single” Profil wird benötigt, wenn die Festplatten unterschiedliche Größen haben. Wenn alle Festplatten die gleiche Größe hätten, könnte ich stattdessen die Flagge verwenden “-d raid0”. Das “-d” flag steht übrigens für Daten und ermöglicht es Ihnen, die gewünschte Datenkonfiguration anzugeben. Es gibt auch eine “-m” flag, das für Metadaten genau das Gleiche tut.
Außerdem können Sie RAID 1 auch mit aktivieren “-d raid1” Dadurch werden Daten über alle Geräte hinweg dupliziert. Wenn Sie dieses Flag während der Erstellung des Btrfs-Dateisystems verwenden, das alle Festplatten umfasst, bedeutet dies, dass Sie nur 500 GB nutzbaren Speicherplatz erhalten, da die drei anderen Festplatten für das Spiegeln verwendet werden.
Zuletzt können Sie RAID 10 mit aktivieren “-d raid10”. Dies führt zu einer Mischung aus RAID 0 und RAID 1, sodass Sie 1,5 TB nutzbaren Speicherplatz erhalten, da die beiden 1-TB-Festplatten beim Spiegeln gepaart und die beiden 500-GB-Festplatten beim Spiegeln gepaart werden.
Konvertieren eines Dateisystems
Wenn Sie ein Btrfs-Dateisystem haben, das Sie in eine andere RAID-Konfiguration konvertieren möchten, ist dies problemlos möglich. Hängen Sie zuerst das Dateisystem (falls noch nicht vorhanden) mit dem Befehl an:
Sudo mount / dev / sdb1 / mnt
Führen Sie dann den 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 (sofern dies tatsächlich zulässig ist - Sie können beispielsweise nicht zu RAID 10 wechseln, wenn Sie nicht über mindestens vier Festplatten verfügen). . Außerdem ist das Flag -mconvert optional, wenn Sie nur die Daten, nicht aber die Metadaten berücksichtigen.
Wenn ein Festplattenfehler auftritt
Wenn eine Festplatte ausfällt, müssen Sie sie aus dem Dateisystem entfernen, damit der Rest der gepoolten Laufwerke ordnungsgemäß funktioniert. Hängen Sie das Dateisystem mit dem Befehl ein:
Sudo-Mount -o degradiert / dev / sdb / mnt
Dann reparieren Sie das Dateisystem mit:
sudo btrfs device delete fehlt / mnt
Wenn Sie kein RAID 1 oder RAID 10 aktiviert haben, gehen alle Daten auf der ausgefallenen Festplatte verloren.
Festplatte aus dem Dateisystem entfernen
Wenn Sie ein Gerät aus einem Btrfs-Dateisystem entfernen möchten und das Dateisystem in / mnt eingehängt ist, können Sie dies mit dem folgenden Befehl tun:
sudo btrfs device delete / dev / sdc / mnt
Ersetzen Sie / dev / sdc natürlich durch die Festplatte, die Sie entfernen möchten. Dieser Befehl wird einige Zeit dauern, da er alle Daten von der zu entfernenden Festplatte entfernen muss. Er schlägt ebenfalls fehl, wenn auf den anderen verbleibenden Festplatten nicht genügend Speicherplatz vorhanden ist.
Automatische Montage
Wenn das Btrfs-Dateisystem automatisch gemountet werden soll, können Sie dies in Ihre / etc / fstab-Datei einfügen:
sudo / dev / sdb / mnt btrfs device = / dev / sdb, device = / dev / sdc, device = / dev / sdd, device = / dev / sde 0 0
Optionen montieren
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 Speicherarrays sind diese Optionen am besten: compress-force = zlib, autodefrag, nospace_cache
. Insbesondere werden Sie mit compress = zlib alle Daten komprimieren, damit Sie den verfügbaren Speicherplatz optimal nutzen können. Für den Datensatz können SSD-Benutzer diese Optionen verwenden: noatime, compress = lzo, ssd, discard, space_cache, autodefrag, inode_cache
. Diese Optionen passen genau zu den Gerätespezifikationen. Eine vollständige Zeile in / etc / fstab für SSD-Benutzer würde folgendermaßen aussehen:
sudo / dev / sdb / mnt btrfs device = / dev / sdb, device = / dev / sdc, device = / dev / sdd, device = / 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 Storage-Pooling und die Spiegelung, die mit zunehmender Stabilität immer beliebter wird. Es würde auch nicht schaden, wenn es eine GUI gibt, die die Konfiguration vereinfacht (abgesehen von einigen Installationsprogrammen für Distributionen), 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önnten? Halten Sie Speicherpools für sinnvoll? Lass es uns in den Kommentaren wissen!
Bildnachweis: William Hook