Btrfs ist ein Open-Source-Allzweck-Dateisystem für Linux. Der Name leitet sich von der Verwendung von B-Bäumen ab, um interne Dateisystemstrukturen zu speichern. Für das Dateisystem werden unterschiedliche Namen verwendet, darunter „Butter F S“ und „B-Tree F S“. Die Entwicklung von Btrfs begann 2007 bei Oracle, und jetzt tragen eine Reihe von Unternehmen (darunter Red Hat, Fujitsu, Intel, SUSE und viele andere) zu den Entwicklungsbemühungen bei. Btrfs ist im Mainline-Linux-Kernel enthalten.
Dienstprogramme für btrfs-Geräte
Verwenden Sie den Befehl btrfs device, um Geräte in Btrfs-Dateisystemen zu verwalten. Eine Liste der verfügbaren Befehle lautet wie folgt:
# btrfs device usage: btrfs device [command] [args] btrfs device add [options] [device] [device...] [path] Add a device to a filesystem btrfs device delete [device]|[devid] [device|devid...] [path] btrfs device remove [device]|[devid] [device|devid...] [path] Remove a device from a filesystem btrfs device scan [(-d|--all-devices)|[device] [device...]] Scan devices for a btrfs filesystem btrfs device ready [device] Check device to see if it has all of its devices in cache for mounting btrfs device stats [options] [path]|[device] Show device IO error statistics btrfs device usage [options] [path] [path..] Show detailed information about internal allocations in devices. manage and query devices in the filesystem
Der Befehl btrfs device scan scannt physische Geräte und sucht nach Mitgliedern eines Btrfs-Volumes. Mit diesem Befehl kann ein Btrfs-Dateisystem mit mehreren Festplatten gemountet werden, ohne dass alle Festplatten im Mount-Befehl angegeben werden müssen.
Sie müssen „btrfs device scan“ nicht über die Befehlszeile ausführen, da udev den btrfs device scan automatisch beim Booten ausführt. Verwenden Sie den Befehl btrfs device add, um einem Dateisystem ein Gerät hinzuzufügen. In diesem Beispiel sieht die aktuelle Dateisystemstruktur wie folgt aus:
# btrfs filesystem show Label: none uuid: ba60ac96-1628-4656-b68b-c7327ff49179 Total devices 1 FS bytes used 325.29MiB devid 1 size 10.00GiB used 867.66MiB path /dev/sda
Der Befehl btrfs filesystem df zeigt:
# btrfs filesystem df /btrfs Data, single: total=547.66MiB, used=324.75MiB System, single: total=32.00MiB, used=16.00KiB Metadata, single: total=288.00MiB, used=528.00KiB GlobalReserve, single: total=16.00MiB, used=0.00B
Die Ausgabe des df-Befehls zeigt:
# df -h /btrfs Filesystem Size Used Avail Use% Mounted on /dev/sda 10G 342M 9.4G 4% /btrfs
Fügen Sie eine 10-GB-Festplatte, /dev/sdb, zu dem auf /btrfs gemounteten Dateisystem hinzu, indem Sie den Befehl btrfs device add verwenden:
# btrfs device add /dev/sdb /btrfs
Die Ausgabe des Befehls btrfs filesystem show zeigt das neu hinzugefügte Gerät:
# btrfs filesystem show Label: none uuid: ba60ac96-1628-4656-b68b-c7327ff49179 Total devices 2 FS bytes used 325.29MiB devid 1 size 10.00GiB used 867.66MiB path /dev/sda devid 2 size 10.00GiB used 0.00B path /dev/sdb
Die Ausgabe des Befehls btrfs filesystem df zeigt nach dem Hinzufügen des neuen Geräts keinen Unterschied:
# btrfs filesystem df /btrfs Data, single: total=547.66MiB, used=324.75MiB System, single: total=32.00MiB, used=16.00KiB Metadata, single: total=288.00MiB, used=528.00KiB GlobalReserve, single: total=16.00MiB, used=0.00B
Es gibt keinen Unterschied in der Ausgabe, da das neu hinzugefügte Gerät noch nicht für Daten oder Metadaten zugewiesen wurde. Die zusätzliche Größe spiegelt sich in der Ausgabe von df:
wider# df -h /btrfs Filesystem Size Used Avail Use% Mounted on /dev/sda 20G 342M 20G 2% /btrfs
Nach dem Hinzufügen eines Geräts wird empfohlen, dass Sie den folgenden Ausgleichsbefehl im Dateisystem ausführen:
# btrfs filesystem balance /btrfs WARNING: Full balance without filters requested. This operation is very intense and takes potentially very long. It is recommended to use the balance filters to narrow down the balanced data. Use 'btrfs balance start --full-balance' option to skip this warning. The operation will start in 10 seconds. Use Ctrl-C to stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any filters. Done, had to relocate 17 out of 17 chunks
Durch Ausführen dieses Befehls wird Speicherplatz neu verteilt, indem die Chunks des Dateisystems auf allen Geräten verteilt werden. Dieser Befehl gibt auch verschwendeten Speicherplatz zurück. Verwenden Sie den Befehl btrfs device delete, um ein Gerät aus einem Dateisystem zu entfernen. Beispiel:
# btrfs device delete /dev/sdb /btrfsSo verwenden Sie den Befehl „btrfs scrub“, um das Scrubbing auf Btrfs-Dateisystemen zu verwalten
Beispiele für „btrfs“-Befehle zum Erstellen und Verwalten eines Btrfs-Dateisystems
Wie Sie ein Btrfs-Dateisystem erstellen und mounten (mit Beispielen erklärt)