KVM etabliert sich als Standardlösung zur Virtualisierung unter Linux. Der ADMIN-Schwerpunkt hilft beim Bau virtueller Linux-Maschinen, stellt das ... (mehr)

Filesystem anlegen

Das Anlegen eine Btrfs-Filesystems ist praktisch augenblicklich erledigt, da nur wenige Metadaten geschrieben werden müssen. Ein zeitraubendes Erzeugen von Inode-Tabellen ist nicht notwendig. Mit dem Universal-Werkzeug »btrfs« bekommt man auch sofort nähere Informationen zum frisch erstellten Btrfs-Volume (Abbildung 2). Dieses Kommandozeilen-Programm ist das zentrale Werkzeug, um verschiedenste administrative Tätigkeiten an Btrfs-Dateisystemen durchzuführen. In diesem Beispiel wird das Btrfs-Volume über das Label identifiziert, es kann aber auch genauso gut über den Devicenamen der Festplatte angesprochen werden (»/dev/vdb« ). Ohne weitere Angaben listet das Kommando alle dem Kernel gerade bekannten Btrfs-Dateisysteme auf. Es sei auch erwähnt, dass »mkfs.btrfs« nicht überprüft, ob denn vielleicht schon ein Btrfs- geschweige denn irgendein anderes Dateisystem, eine LVM-Signatur oder Ähnliches auf der Festplatte vorhanden ist. Das frisch angelegte Filesystem kann jetzt ganz klassisch gemountet werden:

Abbildung 2: Ein Dateisystem mit dem Label TEST wird angelegt. Das Multifunktionswerkzeug btrfs liefert zusätzliche Informationen über das neue Btrfs Volume.
mount /dev/vdb /mnt

Ein Mounten mithilfe der UUID oder des Filesystem-Labels ist natürlich auch möglich, man weiß ja nie, wann sich die Reihenfolge oder Bezeichnung der Festplatten ändert.

Zeit, das frische Btrfs mit Daten zu befüllen. Mithilfe eines lokalen »rsync -a /usr /mnt« und »dd« bevölkern auch schnell ein paar Dateien in GByte-Größe das Volume. Ein anschließend ausgeführtes »df -h /mnt« zeigt erwartungsgemäß einen entsprechenden Füllgrad von etwa 50 Prozent oder 16 GByte an. Intern verbraucht Btrfs aber in Wirklichkeit mehr Platz für die Verwaltung seiner wachsenden Metadaten (siehe Abbildung 3).

Abbildung 3: Das df-Kommando liefert nur Informationen, wie viel Platz die Benutzerdaten belegen. Hinter den Kulissen verbraucht Btrfs deutlich mehr Plattenspeicher.

Wie viel Platz ist frei?

Das Werkzeug »btrfs« liefert genauere Informationen über den tatsächlichen Gesamtverbrauch des Filesystems. Solange die an »btrfs« übergebenen Kommandos eindeutig sind, können sie abgekürzt werden (siehe Abbildung 3).

Das Ergebnis dieser Kommandos zeigt, wie viel an Plattenplatz zugewiesen ist, und was davon von Metadaten und Nutzdaten in Anspruch genommen werden kann. Auch der effektive Grad der Benutzung ist ablesbar. Während »fi show« den Gesamtverbrauch der Benutzer- und der Metadaten darstellt, gibt »fi df« einen genaueren Einblick, wie Btrfs Daten eines bestimmten Typs allokiert hat. Die Metadaten werden dabei standardmäßig immer redundant abgelegt, zur Steigerung der Fehlertoleranz:

Data: total=16.01GB, used=15.40GB
System, DUP: total=8.00MB, used=4.00KB
Metadata, DUP: total=1.00GB, used=79.20MB

Hat Btrfs beim Anlegen des Dateisytems nur ein Device zur Verfügung, erzeugt es automatisch ein Duplikat der Metadaten an einer anderen Stelle auf der Festplatte, hier durch DUP in der Ausgabe von »fi df« gekennzeichnet. Werden bei der Erstellung des Dateisystems mehrere Blockgeräte angegeben, dann wird für Metadaten RAID 1 verwendet und RAID 0 für Daten. Sowohl für Metadaten als auch Daten kann aus verschiedenen Profilen gewählt werden:

  • single
  • RAID 0
  • RAID 1
  • RAID 10

Dabei werden für RAID 0 und RAID 1 zumindest zwei Blockgeräte und für RAID 10 wenigstens vier Blockgeräte benötigt. Mit den Schaltern »-m Profil« für Metadaten und »-d Profil« für Daten kann beim Ausführen von »mkfs.btrfs« detailliert gesteuert werden, wie das neue Dateisystem anzulegen ist. Die Stripe-Größe für ein RAID 0 und auch RAID 10 ist auf 64 KByte fixiert und wird in absehbarer Zeit wohl auch nicht veränderbar werden. Voraussichtlich mit Kernel 3.6 kommen die lange erwarteten Profile für RAID 5 und RAID 6.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019