Das neue Standarddateisystem BtfFS bei OpenSuse

Aus EasyLinux 01/2015

Das neue Standarddateisystem BtfFS bei OpenSuse

Butter bei dat Dateisystem

Den Titel können Sie nur schätzen, wenn Ihnen der Ausspruch “Butter bei die Fisch!” geläufig ist. Der bedeutet, man soll endlich zum Kern der Sache kommen, und darum verraten wir in diesem Artikel ohne Umschweife, was es mit dem neuen Dateisystem BtrFS (Butter-Ef-Es; englisch ausgesprochen) auf sich hat.

OpenSuse setzt ab der aktuellen Version 13.2 BtrFS [1] als Standarddateisystem ein – nachdem über viele Jahre eines der “Extended”-Dateisysteme (Ext2, Ext3 und zuletzt Ext4) für alle Partitionen außer dem Swap-Bereich verwendet wurde, bringt der Wechsel auf BtrFS viele Änderungen mit sich.

Die für Anwender wichtigsten Besonderheiten von BtrFS tragen die Namen “Sub-Volume” und “Snapshot”:

  • Ein Sub-Volume (etwa: Unter-Dateisystem) ist im Prinzip ein separates Dateisystem, das auch unabhängig über einen frei wählbaren Mountpoint eingebunden wird – aber es liegt nicht in einer eigenen Partition, sondern teilt sich mit dem Haupt-Volume (dem so genannten Root-Volume) eine gemeinsame Partition. Zu einem bereits formatierten Dateisystem können Sie als Administrator auch nachträglich weitere Sub-Volumes hinzufügen.
  • Ein Snapshot ist eine eingefrorene Momentaufnahme eines Sub-Volumes und kann z. B. als Wiederherstellungspunkt dienen, wenn vor einem größeren Update ein solcher Snapshot erstellt wurde und sich nach dem Update herausstellt, dass das System nicht mehr zufriedenstellend läuft.

Als Anwender begegnen Ihnen die neuen Sub-Volumes schon bei der Installation (nicht beim Update) von OpenSuse 13.2 (siehe den Artikel zur OpenSuse-Installation, dort Abbildung 2 auf Seite 29). Dabei werden erstaunliche 14 Sub-Volumes (z. B. für /usr/local/, /var/log/ und /opt/) eingerichtet und dann später alle in verschiedene Ordner gemountet. Abbildung 1 zeigt die Ausgabe von mount in einem laufenden OpenSuse-13.2-System; nach dem ersten Start ist die Anzahl der Sub-Volumes auf 15 gestiegen.

Abbildung 1: OpenSuse 13.2 setzt auf BtrFS und erzeugt in einer Partition 15 Sub-Volumes.

Abbildung 1: OpenSuse 13.2 setzt auf BtrFS und erzeugt in einer Partition 15 Sub-Volumes.

Der Vorteil beim Einsatz von Sub-Volumes (im Vergleich zum Anlegen entsprechend vieler separater Partitionen) ist, dass hier nur eine Partition nötig ist und sich alle Sub-Volumes den Speicherplatz dieser Partition teilen – bei klassischer Plattenaufteilung mit vielen Ext3-Partitionen gibt es immer das Problem, dass eventuell auf einer Partition der Platz zur Neige geht und dadurch das System unbenutzbar wird, obwohl auf anderen Partitionen noch viel freier Speicher verfügbar ist. Ein BtrFS-Dateisystem können Sie bis zum letzten Kilobyte voll schreiben – unabhängig davon, welches der vielen Sub-Volumes die Daten aufnimmt.

Die Inhalte von Sub-Volumes, die nicht eingehängt sind, sind auch nicht sichtbar. So ist es z. B. möglich, mehrere Varianten eines Verzeichnisbaums zu verwenden, die in Sub-Volumes organisiert sind, von denen Sie immer nur eines einbinden.

Copy on Write

BtrFS ist ein so genanntes Copy-on-Write- (deutsch etwa: erst beim Schreiben kopieren) Dateisystem, das bedeutet: Es unterstützt die Möglichkeit, Kopien von Dateien anzulegen, ohne den kompletten Dateiinhalt 1:1 zu kopieren. Stattdessen verweisen Original und Kopie zunächst auf dieselben Datenblöcke in der Partition, und erst wenn eine der beiden Dateien verändert wird (also mindestens ein Block neu geschrieben wird), legt das Dateisystem tatsächlich eine Kopie dieses Blocks an (und speichert darin die neuen Daten).

Es ist wichtig, dieses Konzept vom Einsatz der Hard Links zu unterscheiden, bei denen mehrere Dateinamen für eine einzige Datei vergeben werden: Jede Änderung einer solchen Datei betrifft dann auch alle weiteren Dateinamen (die Hard Links). Bei einer mit Copy-on-Write kopierten Datei ist das nicht der Fall, alle Kopien sind eigenständige Dateien. Nur: Solange Sie keine Änderungen an einer kopierten Datei vornehmen, belegt die Kopie (wie ein Hard Link) keinen zusätzlichen Speicherplatz.

Mit der Copy-on-Write-Technik lassen sich auch die Snapshots sehr effizient und speicherplatzschonend anlegen, weil BtrFS hier einfach Copy-on-Write-Kopien aller Dateien anlegt, die zum Snapshot gehören sollen. Der Snapshot ist ein eigenes Sub-Volume (Dateikopien können also auch Sub-Volume-übergreifend erstellt werden), und die Rückkehr von der veränderten Fassung zum alten Stand aus dem Snapshot bedeutet dann nur, das aktuelle Sub-Volume auszuhängen und dafür das Sub-Volume mit dem Snapshot einzuhängen.

Zugriff

Um ein Sub-Volume von Hand einzubinden, müssen Sie dessen Namen kennen – eine Liste aller verfügbaren Sub-Volumes erhalten Sie mit btrfs subvolume list / (wenn das Root-Volume des Dateisystems unter / eingebunden wurde, siehe Listing 1). Beim Mounten geben Sie dann über die Option -o subvol=name den Namen des Sub-Volumes an, z. B.

mount /dev/sdb5 -o subvol=usr/local /mnt/

für das Sub-Volume mit dem Namen usr/local. Möchten Sie ein weiteres Sub-Volume mit dem Namen test erstellen, geht das mit folgenden Kommandos:

cd /
btrfs subvolume create test

Der Wechsel ins Root-Verzeichnis ist nötig, weil btrfs beim Erzeugen von Sub-Volumes keine Angabe erwartet, in welcher Partition Sie es erstellen wollen; das Tool verwendet die Partition, zu der das aktuelle Arbeitsverzeichnis gehört. Dieses könnten Sie nun entsprechend (mit -o subvol=test) mounten und dann nutzen.

Listing 1

Übersicht der Sub-Volumes

hpquadi7:/ # btrfs subvolume list /
ID 257 gen 652 top level 5 path boot/grub2/i386-pc
ID 258 gen 652 top level 5 path boot/grub2/x86_64-efi
ID 259 gen 953 top level 5 path opt
ID 260 gen 652 top level 5 path srv
ID 261 gen 971 top level 5 path tmp
ID 262 gen 971 top level 5 path usr/local
ID 263 gen 652 top level 5 path var/crash
ID 264 gen 652 top level 5 path var/lib/mailman
ID 265 gen 652 top level 5 path var/lib/named
ID 266 gen 652 top level 5 path var/lib/pgsql
...

Im Normalfall werden Sie mit solchen Aufgaben nichts zu tun haben; OpenSuse richtet bei der Installation alles passend ein. Aber wenn Sie z. B. versuchen, Anleitungen aus älteren EasyLinux-Artikeln oder Tipps auf Webseiten umzusetzen, die Änderungen an der Konfigurationsdatei /etc/fstab erfordern, können Sie nun damit rechnen, dass die Einträge für BtrFS-Partitionen anders als bei Ext4-Dateisystemen aussehen.

Ein Nebeneffekt des BtrFS-Einsatzes ist übrigens, dass Sie in der Speicherplatzübersicht mit df ganz viele Einträge sehen, die sich alle auf dasselbe Dateisystem beziehen (und dafür jeweils den gleichen freien Platz melden) – lassen Sie sich also nicht verwirren: Pro Partition ist nur eine der mehreren und fast identischen Zeilen relevant.

Wenn Sie sich für weitere technische Details interessieren, hilft die Wikipedia-Seite zu BtrFS [2] weiter.

Infos

[1] BtrFS-Homepage: https://btrfs.wiki.kernel.org/

[2] BtrFS bei Wikipedia: http://de.wikipedia.org/wiki/Btrfs

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
EasyLinux 01/2015 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben