Kopieren beim Schreiben

Je mehr Blöcke einer Datei zusammenhängen, desto schneller arbeitet das Dateisystem. Aus diesem Grund legt Btrfs von geänderten Dateien stets eine Kopie an und stellt damit sicher, dass die Blöcke zusammenhängen. Die COW-Funktion bringt aber noch weitere Vorteile mit sich: Durch die Kopie ermöglicht das Dateisystem auch bequeme Zeitaufnahmen, so genannte Snapshots. Dabei handelt es sich eigentlich um Pseudoverzeichnisse innerhalb einer Partition (Subvolumes genannt), die sich per »mount« in das Hauptvolume einhängen lassen. Da ein Subvolume nur die Änderungen gegenüber dem Hauptvolumen speichert, benötigt es kaum zusätzlichen Speicherplatz.

Ein neues Subvolume legen Sie über den Befehl »btrfsctl -S Name Verzeichnis« an, einen Snapshot mit »btrfsctl -s Name Verzeichnis« . Möchten Sie auf den Snapshot »LU« zugreifen, hängen Sie das eigentliche Btrfs-Volumen aus und stattdessen den Snapshot ein:

mount -o subvol=LU /dev/sda2 /mnt

In unseren Tests mit Kernel 2.6.29-rc4 führte jedoch das Anlegen eines neuen Snapshots noch zu einer Fehlermeldung.

Die COW-Funktion lässt sich über die Mount-Option »-o nodatacow« auch ausschalten, um zum Beispiel explizit Dateien immer an den gleichen Ort zu schreiben. Mit Ext3cow [4] gibt es auch eine Ext3-Variante mit Copy-on-Write-Support.

Wer Btrfs auf einer Solid State Disk nutzen möchte, hängt das Dateisystem am besten mit der Option »-o ssd« ein. Sie optimiert die Schreibvorgänge, was laut unseren Benchmarks (Abbildung 1) allerdings zu einem leichten Leistungsverlust führt. Spätere Versionen von Btrfs sollen SSDs automatisch erkennen und entsprechend reagieren.

Abbildung 1: Die einzelnen Mount-Optionen wirken sich nur minimal auf die Dateisystem-Performance aus. Die Abbildung zeigt hingegen gut, wie schnell eine SSD (hier von Intel) beim blockweisen Lesen arbeitet.

Für Ext3- und Ext4-Nutzer bietet Mason mit »btrfs-convert« ein spezielles Tool an, um das Dateisystem nach Btrfs zu konvertieren. Dabei nutzt Btrfs den freien Platz auf der Ext3/Ext4-Partition, um zunächst die Inodes und das Journal abzulegen. Danach erstellt es ein Subvolumen mit dem kompletten Inhalt als Abbilddatei. Dadurch wird das Ext-Dateisystem quasi eingefroren, Änderungen erfolgen nur noch auf Btrfs-Ebene. Bei Bedarf lässt sich das originale Ext3/4-Dateisystem wieder herstellen. Möchten Sie komplett auf Btrfs wechseln, löschen Sie einfach das Subvolume mit den eigentlichen Daten. Details dazu finden sich im Btrfs-Wiki [5].

Fazit

Mit Btrfs bringt der Linux-Kernel ein natives Linux-Dateisystem mit, das dank innovativer Features und Support von bis zu 16 Exabyte Dateisystemgröße gute Chancen hat, zum Linux-Standarddateisystem zu avancieren. Zurzeit eignet es sich allerdings nur für Tests und Spielereien – Heimanwender warten besser, bis die eigene Distribution Btrfs unterstützt.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Btrfs-Chefentwickler verlässt Oracle

Chris Mason, der Leiter der Btrfs-Entwicklung für den Linux-Kernel, verlässt Ende der Woche den Datenbankhersteller und wechselt zu einem Storage-Anbieter. 

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

Ausgabe /2022