Sobald Sie ein Btrfs-RAID erstellt haben, können Sie dem RAID weitere Speichergeräte hinzufügen, um das RAID zu erweitern. Sobald Sie dem RAID jedoch weitere Speichergeräte hinzugefügt haben, verteilt Btrfs die vorhandenen Daten/Metadaten/Systemdaten nicht automatisch auf die neuen Speichergeräte. Daher erhalten Sie möglicherweise nicht den gewünschten Durchsatz (Lese-/Schreibgeschwindigkeit) aus dem RAID und können die neuen Speichergeräte möglicherweise nicht mit den erforderlichen redundanten Daten bestücken. Daher kann das RAID-Array die gewünschte Anzahl von Laufwerksausfällen nicht überstehen.
Um diese Probleme zu lösen, bietet das Btrfs-Dateisystem ein integriertes Balancing-Tool. Das Btrfs Balance Utility verteilt die Daten/Metadaten/Systemdaten der vorhandenen Speichergeräte des RAIDs auf die neu hinzugefügten Speichergeräte.
In diesem Artikel zeige ich Ihnen, wie Sie das Btrfs-Balance-Dienstprogramm verwenden, um die Daten/Metadaten/Systemdaten der vorhandenen Speichergeräte des RAIDs auf die neu hinzugefügten Speichergeräte zu verteilen. Also lasst uns anfangen!
Abkürzungen
RAID - Redundantes Array kostengünstiger/unabhängiger Festplatten Disk
MB - Megabyte
GB - Gigabyte
Voraussetzungen
Um diesem Artikel folgen zu können, benötigen Sie ein funktionierendes Btrfs-RAID- oder Multi-Device-Setup.
Ich habe ein Btrfs-RAID erstellt in RAID-0 Konfiguration mit 4 Speichergeräten sdb, sdc, sdd, und sde.
Wie Sie sehen, ist das Btrfs-Dateisystem zugewiesen 1 GB Speicherplatz für Daten1 256 MB Speicherplatz für Metadaten2, und 4 MB Speicherplatz für Systemdaten3 von jedem der Speichergeräte im RAID.
Über 18.75 GB aus 20 GB ist immer noch nicht zugeordnet4 von jedem der Speichergeräte des RAID.
$ sudo btrfs Dateisystemnutzung /data
Schreiben eines Skripts zum Generieren zufälliger Dateien
Um Ihnen zu zeigen, wie das Btrfs-Balance-Dienstprogramm funktioniert, müssen wir einige zufällige Dateien generieren, um das Btrfs-Dateisystem zu füllen. Lassen Sie uns ein Shell-Skript erstellen, das genau das tut.
Erstellen Sie ein neues Shell-Skript Genfiles.sh im Verzeichnis /usr/local/bin/ wie folgt:
$ sudo nano /usr/local/bin/genfiles.Sch
Geben Sie die folgenden Codezeilen in die ein Genfiles.Sch Shell-Skript.
#!/bin/bashwährend wahr
tun
DATEINAME=$(uuidgen)
echo "[Erstelle] $FILENAME"
dd if=/dev/random of=$FILENAME bs=1M count=256 status=progress
echo "[Erstellt] $FILENAME"
getan
Wenn Sie fertig sind, drücken Sie
Das Genfiles.Sch Shell-Skript führt unendlich aus während Schleife.
während wahrtun
# andere Codes
getan
Die folgende Zeile generiert eine UUID mit dem uuidgen Befehl und speichert die UUID im DATEINAME Variable.
Die folgende Zeile gibt eine Nachricht auf der Konsole vor der Datei aus DATEINAME wird erzeugt.
Die folgende Zeile erzeugt eine neue Zufallsdatei DATEINAME Verwendung der dd Befehl. Die Datei wird 256 MB groß sein.
Die folgende Zeile gibt eine Nachricht auf der Konsole nach der Datei aus DATEINAME wird erzeugt.
Ausführungsberechtigung zum hinzufügen Genfiles.Sch Shell-Skript wie folgt:
$ sudo chmod +x /usr/local/bin/genfiles.Sch
Das Genfiles.Sch Shell-Skript sollte jetzt wie alle anderen Befehle zugänglich sein.
$ welche Gendateien.Sch
Generieren von zufälligen Dateien im Btrfs-Dateisystem
Wir wollen zufällige Dateien im Btrfs RAID generieren. Nehmen wir an, das Btrfs-RAID ist auf dem gemountet /Daten Verzeichnis.
Navigieren Sie zum /Daten Verzeichnis, in dem das Btrfs-RAID wie folgt gemountet ist:
$ CD / Daten
Wie Sie sehen, sind derzeit keine Dateien in meinem Btrfs-RAID verfügbar.
$ ls -lh
Um einige zufällige Dateien im aktuellen Arbeitsverzeichnis zu generieren (/Daten Verzeichnis in diesem Fall), führen Sie die Genfiles.Sch Shell-Skript wie folgt:
$ sudo genfiles.Sch
Das Genfiles.Sch Shell-Skript sollte mit der Generierung zufälliger Dateien im /Daten Verzeichnis.
Das Genfiles.Sch Skript generiert zufällige Dateien. Lassen Sie das Skript einige Minuten laufen, damit es etwa 2-3 GB Speicherplatz des Btrfs-RAID belegt.
Wenn du aufhören willst Genfiles.Sch Shell-Skript, drücken Sie
Wie Sie sehen können, werden einige zufällige Dateien im Btrfs RAID generiert.
$ ls -lh
Wie Sie sehen, hat das Btrfs-RAID 2 GB von jedem der dem RAID hinzugefügten Speichergeräte zugewiesen. Zuvor hat das Btrfs-RAID 1 GB von jedem der dem RAID hinzugefügten Speichergeräte zugewiesen.
Der nicht zugewiesene Speicherplatz wurde von 18.75 GB zu 17.75 GB in allen Speichergeräten des RAID.
$ sudo btrfs Dateisystemnutzung /data
Hinzufügen eines weiteren Speichergeräts zum Btrfs-RAID
Um Ihnen zu zeigen, wie Sie ein Btrfs-RAID ausbalancieren, nachdem Sie ein neues Speichergerät hinzugefügt haben, müssen Sie ein neues Speichergerät hinzufügen.
Ich habe eine neue HDD hinzugefügt sdf zu meinem Computer, den ich dem Btrfs-RAID hinzufügen möchte, das auf dem /Daten Verzeichnis. Mal sehen, wie es geht.
$ sudo lsblk -e7
Navigieren Sie zu einem anderen Verzeichnis (i.e., ZUHAUSE Verzeichnis) aus dem /Daten Verzeichnis wie folgt:
$ CD
So fügen Sie das Speichergerät hinzu sdf zum Btrfs-RAID, das auf dem /Daten Verzeichnis, führen Sie den folgenden Befehl aus:
$ sudo btrfs Gerät hinzufügen /dev/sdf /data
Wie Sie sehen, ist das Speichergerät sdf wird dem Btrfs RAID hinzugefügt. Die RAID-Größe hat sich von 80 GB zu 100 GB.
$ sudo btrfs Dateisystemnutzung /data
Ausbalancieren des Btrfs-RAID
Wie Sie sehen, ist das neu hinzugefügte Speichergerät (sdf) des RAIDs (montiert auf dem /Daten Verzeichnis) hat 20 GB nicht zugeordnet, und die anderen Speichergeräte (sdb, sdc, sdd, sde, usw.) haben 17.75 GB nicht zugewiesen.
$ sudo btrfs Dateisystemnutzung /data
Die Daten1, Metadaten2, und Systemdaten3 sind nur auf den vorhandenen Speichergeräten des RAIDs verfügbar, nicht auf dem neu hinzugefügten Speichergerät.
Um die Daten, Metadaten und Systemdaten auf alle Speichergeräte des RAIDs (einschließlich des neu hinzugefügten Speichergeräts) zu verteilen, das auf dem /Daten Verzeichnis, führen Sie den folgenden Befehl aus:
$ sudo btrfs balance start --full-balance /data
Es kann eine Weile dauern, bis die Daten, Metadaten und Systemdaten auf allen Speichergeräten des RAID verteilt sind, wenn es viele Daten enthält.
Sobald die Speichergeräte des RAIDs richtig ausbalanciert sind, sollten Sie die folgende Meldung sehen:.
Wie Sie sehen, verfügt das neu hinzugefügte Speichergerät nach Abschluss des Ausgleichsvorgangs über den gleichen nicht zugewiesenen Speicherplatz wie die anderen Speichergeräte des RAID of.
Nach dem Ausgleichsvorgang wird für die Daten, Metadaten und Systemdaten des neu hinzugefügten Speichergeräts die gleiche Menge an Festplattenspeicher wie den anderen Speichergeräten des RAIDs zugewiesen (sdf) des RAIDs.
Fazit
In diesem Artikel habe ich den Zweck des Btrfs-Balance-Dienstprogramms sowie das Ausbalancieren eines Btrfs-RAID- oder Multi-Device-Dateisystems besprochen, nachdem dem RAID- oder Multi-Device-Dateisystem neue Speichergeräte hinzugefügt wurden.