Wenn Sie mehrere Festplatten in Ihrem Linux-System haben, müssen Sie sie nicht alle als verschiedene 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 Sie Ihre Daten aufgrund eines Festplattenausfalls nicht verlieren. Mit allem eingerichtet, können Sie einfach werfen, was Sie wollen, in den Pool und nutzen Sie den Speicherplatz, den Sie haben.
Es gibt kein GUI-Konfigurationshilfsprogramm, das (noch) alles leichter machen kann, aber es ist immer noch ziemlich einfach mit der Befehlszeile zu machen. Ich werde Sie durch ein einfaches Setup für die Verwendung mehrerer Festplatten zusammen führen.
Was ist Btrfs?
Btrfs (genannt B-Tree-Dateisystem, "Butter FS" oder "Better FS") ist ein kommendes 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 man sich anschaut, ist, welches Dateisystem benutzt wird. Windows- und Mac OS X-Benutzer haben noch weniger Grund zu schauen, weil sie wirklich nur einen haben ... Read More, der viele verschiedene Funktionen auf Dateisystemebene enthält, die normalerweise nur als separate Softwarepakete verfügbar sind. Während Btrfs viele bemerkenswerte Eigenschaften hat (wie z. B. Dateisystem-Snapshots), werfen wir in diesem Artikel einen Blick auf Storage-Pooling und Spiegelung.
Wenn Sie nicht sicher sind, was ein Dateisystem ist, werfen Sie einen Blick auf diese Erklärung einiger Dateisysteme für Windows. Was ein Dateisystem ist und wie Sie herausfinden können, was auf Ihren Laufwerken läuft Was ein Dateisystem ist und wie Sie es herausfinden können Was auf Ihren Laufwerken läuft Lesen Sie mehr. Sie können auch diesen schönen Vergleich der verschiedenen Dateisysteme von FAT zu NTFS zu ZFS: Dateisysteme entmystifiziert [MakeUseOf Explains] von FAT zu NTFS zu ZFS: Dateisystem entmystifiziert [MakeUseOf erklärt] Wissen Sie wirklich, was Ihre Festplatte wann immer Sie tut eine Datei davon lesen oder eine davon schreiben? Unsere Festplatten können jetzt riesige Datenmengen speichern, und dieser riesige Speicherplatz ... Lesen Sie mehr, um eine bessere Vorstellung von den Unterschieden zwischen bestehenden Dateisystemen zu bekommen.
Btrfs wird von vielen immer noch als "nicht stabil" betrachtet, aber die meisten Funktionen sind bereits stabil genug für den persönlichen Gebrauch - es sind nur einige ausgewählte Funktionen, bei denen Sie auf unbeabsichtigte Ergebnisse stoßen könnten.
Während Btrfs das Standard-Dateisystem für Linux irgendwann in der Zukunft sein wird, ist es immer noch am besten, ext4 für einzelne Festplatten-Setups oder für Setups zu verwenden, die kein Speicher-Pooling und Spiegelung benötigen.
Pooling Ihrer Laufwerke
In diesem Beispiel verwenden wir ein Setup für 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 von der Lagerung.
Sie können auch davon ausgehen, dass Sie eine andere Festplatte (/ dev / sda) einer beliebigen 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.
Ein Dateisystem erstellen
Um ein Btrfs-Dateisystem auf einer Ihrer Festplatten zu erstellen, können Sie den folgenden 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 es zu einer einzigen Partition zu machen, die sich über alle hinzugefügten Festplatten erstreckt. Montieren Sie zuerst die erste Btrfs-Festplatte mit dem folgenden 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 folgenden Befehlen zur ersten Festplatte hinzufügen:
sudo btrfs device add /dev/sdc /mnt btrfs device add /dev/sdd /mnt btrfs device add /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 filesystem balance /mnt
Wenn Sie wissen, bevor Sie überhaupt beginnen, dass ein Btrfs-Dateisystem sich ü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
Natürlich ist das viel einfacher, aber Sie müssen die oben genannte Methode verwenden, wenn Sie sie nicht alle auf einmal hinzufügen.
Du wirst bemerken, dass ich eine Flagge benutzt habe: "-d single". Dies ist notwendig, weil ich eine RAID 0-Konfiguration (bei der die Daten auf alle Festplatten aufgeteilt werden sollen, aber keine Spiegelung auftritt), aber das Profil "Single" benötigt wird, wenn die Festplatten unterschiedliche Größen haben. 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 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. Wenn Sie also dieses Flag während der Erstellung des Btrfs-Dateisystems für alle Festplatten verwenden, erhalten Sie nur 500 GB nutzbaren Speicherplatz. wie 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 beim Spiegeln gepaart werden und die beiden 500 GB-Festplatten beim Spiegeln gepaart werden.
Ein Dateisystem konvertieren
Wenn Sie ein Btrfs-Dateisystem haben, das Sie in eine andere RAID-Konfiguration konvertieren möchten, ist dies problemlos möglich. Montieren Sie zuerst das Dateisystem (falls noch nicht geschehen) mit dem Befehl:
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 jedoch die Konfiguration beliebig ändern (sofern dies tatsächlich zulässig ist. Beispielsweise können Sie nicht zu RAID 10 wechseln, wenn Sie nicht über mindestens vier Festplatten verfügen). . Darüber hinaus ist das Flag -mconvert optional, wenn Sie nur über die Daten, nicht aber über die Metadaten besorgt sind.
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. Mounten Sie das Dateisystem mit dem Befehl:
sudo mount -o degraded /dev/sdb /mnt
Dann repariere das Dateisystem mit:
sudo btrfs device delete missing /mnt
Wenn Sie RAID 1 oder RAID 10 nicht aktiviert haben, gehen alle Daten auf der fehlerhaften Festplatte verloren.
Entfernen einer Festplatte aus dem Dateisystem
Wenn Sie schließlich ein Gerät aus einem Btrfs-Dateisystem entfernen möchten und das Dateisystem nach / mnt gemountet ist, können Sie dies mit folgendem 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 dauert einige Zeit, da er alle Daten von der Festplatte, die entfernt werden soll, verschieben muss, und wird ebenfalls fehlschlagen, wenn auf den anderen verbleibenden Festplatten nicht genügend Platz ist.
Automatische Montage
Wenn Sie möchten, dass das Btrfs-Dateisystem automatisch gemountet wird, können Sie es 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
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 Speicherarrays sind diese Optionen am besten compress-force=zlib, autodefrag, nospace_cache
: compress-force=zlib, autodefrag, nospace_cache
. Insbesondere komprimiert compress = zlib alle Daten, sodass Sie den vorhandenen Speicherplatz optimal nutzen können. Zur noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache
: SSD-Benutzer können diese Optionen verwenden: noatime, compress=lzo, ssd, discard, space_cache, autodefrag, inode_cache
. Diese Optionen stimmen mit den Gerätespezifikationen überein, sodass eine vollständige Zeile in / etc / fstab für SSD-Benutzer wie folgt aussieht:
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 Speicher-Pooling und Spiegelung, die sicher beliebter wird, sobald sie als vollständig stabil angesehen wird. Es würde auch nicht schaden, wenn es eine GUI gäbe, um die Konfiguration zu vereinfachen (abgesehen von einigen Installationsprogrammen), 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? Denkst du, Speicherpools sind lohnend? Lass es uns in den Kommentaren wissen!
Bildquelle: William Hook