TagCloud

Btrfs – future of Linux file systems

August 31st, 2010 von buergermeister

Mit openSUSE 11.3 wurde erstmals btrfs in den Installer integriert und openSUSE ist damit die erste Distribution, bei der sich bereits bei der Installation auf das neue Dateisystem setzen läßt. Grund genug sich das einmal anzuschauen.
Btrfs stammt aus der Feder von Chris Mason und wurde ursprünglich von Oracle als Linux-Filesystem entwickelt. Seit Kernel 2.6.29 ist Btrfs ein offiziell unterstütztes Linux-Dateisystem. Btrfs wird wahrscheinlich auf lange Sicht ext4 ersetzen und ist das Standard-Filesystem von MeeGo. Btrfs bietet ähnliche Funktionalitäten, wie das ursprünglich von Sun entwickelte ZFS darunter integriertes RAID, ein Subvolume und Snapshots. Wobei allerdings RAID 5 und 6 Funktionen bisher nicht implementiert sind.

Gegenüber herkömmlichen Hard- oder Software-RAID beitet das RAID-Subsystem von Btrfs allerdings den Vorteil, dass zwischen belegten und freien Datenblöcken unterschieden werden kann. Das kann bei Wiederherstellungen enorme Zeitersparnis bedeuten. Der wesentliche Unterschied zwischen ZFS und Btrfs ist meiner Ansicht nach weniger technischer Natur (wenn man von Stabilität und Entwicklungstand absieht) sondern eher die Lizenz während ZFS unter der CDDL steht und damit wohl nicht Eingang in den Linuxkernel finden wird, wird btrfs unter der GPL entwickelt.
Mit der aktuellen Ubuntu-Version Lucid Lynx läßt sich btrfs auch einsetzen, dafür muss man allerdings das entsprechende Kernelmodul nachladen und die Dateisystemwerkzeuge nachinstallieren.

Als erstes Grub kann derzeit nicht von btrfs-Partitionen booten. Daher sollte man über eine eigene Boot-Partition verfügen. Auf einem Ubuntu läßt sich Btrfs ganz einfach nachinstallieren, zuerst die Btrfs-Werkzeuge installieren.

sudo apt-get install btrfs-tools

Bei openSUSE findet man diese Werkzeuge im Paket btrfsprogs und installiert sie mit dem Aufruf

zypper install btrfsprogs

Am einfachsten geht es mit dem btrfs-convert Werkzeug eine Ext-Partition in eine btrfs-Partiotion zu konvertieren. Dazu darf die entsprechende Partiotion nicht gemountet sein.

sudo btrfs-convert /dev/sda7

Neben btrfs-convert enthalten die btrfs-tools: btrfsck, btrfs-debug-tree, btrfs-image, btrfs-show, btrfstune, btrfs-vol und btrfsctl. Mit btrfsctl können zum Beispiel eintsprechende Snapshots des Filesystemes angelegt werden, dass geht ganz einfach.

sudo btrfsctl -s NamedesSnapshot Volume/Tree

Die entsprechenden Snapshots sind platzsparend, da sie inkrementell angelegt werden, dass heißt nur die Veränderungen des Dateisystemes werden. Man sollte also direkt nach der Installation einen ersten Snapshot anlegen. Das Werkzeug btrfsctl ist allerdings veraltet und wird in Zukunft durch btrfs als Kommando ersetzt.

Auch Fedora unterstützt seit Version 11 btrfs. Btrfs auf Fedora zu installieren glich für mich einem kleinem Abenteuer. Irgendwo hatte ich gelesen, dass mit dem richtigem Bootparameter, Btrfs als Option in Anaconda zur Verfügung stehen würde, das kam mir gleich spanisch vor. Das hat auch nicht geklappt. Also habe ich das Kernelmodul von Hand geladen und die Btrfs-progs mit Yum nachinstalliert. Mein Plan war eine entsprechende Partition mit mkfs.btrfs zu formatieren und dann anschließen darauf zu installieren. Da wurde ich aber schnell eines besseren belehrt.

Eine normale Installation mit Ext4 als Dateisystem schlägt aber derzeit bei mir stetig fehl, dass könnte daran liegen, dass VirtualBox mit Ext4 Dateisystemen auf dem Host einige Probleme hat. Denn ähnliche Probleme habe ich derzeit mit anderen Distributionen. Ein Test auf dem Livesystem schlug allerdings fehl, ich habe die Werkzeuge nicht gefunden, eine längere Suche danach habe ich gar nicht erst angefangen.

Fedora 13 bietet aber dafür ein Yum-Plugin, welches nach einer Software-Installation den Rollback zu einer früheren System-Version ermöglicht.
Um das entsprechende Plugin zu installieren, ist folgender Aufruf nötig

yum install yum-plugin-fs-snapshot

Dieses Werkzeug legt vor jeder yum Installation einen entsprechenden Snapshot des Dateisystems an, die entsprechende Integration der Verwaltung der Snapshots mit Fedoras DeviceKit-Programm Palimpsest ist allerdings nicht in Fedora 13 integriert und wird wahrscheinlich erst mit de nächsten Version ausgeliefert. Siehe auch den entsprechenden Eintrag im Wiki von Fedora.
Dennoch ist es möglich, die entsprechenden Snapshots über einen Bootparameter für den Kernel als Subvolume zu mounten.

linux vmlinuz-2.6.33.3-85.fc13.i686.PAE root=/dev/sdc8 rootflags=subvol=yum_DatumZeitstempel

oder man mounted den entsprechenden Snapshot im laufenden System

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

Das Yum-Plugin mach dabei von allen vorhandenen btrfs-Partitionen einen Snapshot, hat man also sein Home-Verzeichnis ebenfalls auf einer solchen, wird dieses eingeschlossen. Ein ähnliches Feature könnte eines Tages in openSUSE kommen, ein entsprechender Featurerequest für “zypper rollback” ist bereits in openFATE eingetragen.

Snapshots und damit inkrementelle Datensicherungen des Systemes ist aber nicht das einzige Feature, welches btrfs bietet. Btrfs integriert ebenfalls einen Volumemanager oder dessen Funktionalitäten. Damit lassen sich jederzeit die entsprechenden Partiotionen verkleinern oder vergrößern.

sudo btrfs-vol -a /dev/sdd /Mountpoint

Wie gesagt btrfsctl und btrfs-vol werden in der nächsten Generation durch das Werkzeug btrfs ersetzt. Auf Fedora sollen diese vorhanden sein, was ich wegen obige Installationsprobleme nicht bestätigen kann. Die btrfs-progs auf dem Livesystem liessen sich zwar installieren, waren nachher allerdings nicht vorhanden. Auf Ubuntu 10.10a habe ich sie nicht gefunden, egal was andere da schreiben. Um das Ganze dann doch auch noch mit einem Beta zu testen, haben ich den gestrigen Snapshot heruntergeladen und ausprobiert. Hier hatte ich zwar die gleichen Probleme mit einer Installation, allerdings im Livesystem konnte ich testen. Wie man sieht sind die btrfs-tools per Default installiert und btrfsctl ist noch vorhanden.

Insgesamt befindet sich btrfs noch im Entwicklungstadium und von seinem Einsatz im produktiven Umfeld ist abzuraten. So kann btrfsck zwar einen Integritätscheck für das Filesystem durchführen ist aber nicht in der Lage es zu reparieren. Auf der Entwicklungsmailingliste häufen sich die Fehlermeldungen das sich btrfs-Filesysteme nicht mehr mounten lassen, insbesondere nach Stromausfällen oder ähnlichem. Da alle großen Distributionen bereits btrfs integrieren, ist es so gut wie sicher das btrfs das Linux-Dateisystem der Zukunft sein wird. Das sehen auch Andrew Morton und Theodore Tso als Entwickler der Ext-Dateisysteme so. Es schadet also nicht, die Entwicklung ein wenig zu verfolgen.

Geschrieben in Killer Application, ubuntuusers | 7 Kommentare »

ähnliche Artikel: The little bit different Fedora 26 Release Party – Part 4 | The little bit different Fedora 26 Release Party - Part 3 | The little bit different Fedora 26 Release Party - Part 2 | The little bit different Fedora 26 Release Party - Part 1 | FUDCon APAC Phnom Penh 2016 |

7 Kommentare

  1. adun Sagt:

    Die transparente Komprimierung ist bisher eins der Highlights von BtrFS für den Endanwender. Diese sollte unbedingt vor der Installation durch die Mountoption compress aktiviert werden. (Bei Ubuntu muss man dafür bisher noch /target selbst remounten) Dabei geht es nicht um die signifikant kleinere Installation, die man dann bekommt, sondern um die Geschwindigkeit. Obwohl noch keine LZMA Komprimierung verfügbar ist, ist das wirklich bemerkbar. Das Handling von Textdateien ist ja letztlich eine der Hauptaufgaben einer Linuxdistribution, gerade bei der Paketverwaltung, wenn die keine Datenbank unterstützt oder beim Booten.

  2. buergermeister Sagt:

    stimmt nur musst du aufpassen, für welche Verzeichnisse du compress aktivierst, für Verzeichnisse mit vielen txt-Dateien bringt compress einen Geschwindigkeitsvorsprung, für Verzeichnisse mit zB OOo-Dateien nicht, im Gegenteil es wird langsamer.

  3. Gerald Sagt:

    Nun, inzwischen wird ja überlegt, auch zfs in den Linux-Kernel zu bekommen.

    Ich verwende zfs seit einigen Monaten. Es bietet nicht nur deutlich mehr Möglichkeiten als btrfs, sondern ist auch äußerst stabil; muss es auch sein, schließlich ist es inzwischen das Standardfilesystem für Solaris (seit 10 – 10/09, also knapp einem Jahr). Einen Geschwindigkeitseinbruch durch zfs-fuse habe ich nicht bemerkt. (Dass Filesysteme im Userspace langsamer sind, hat wohl eher theoretische Bedeutung…)

    Mein erster Versuch in diesem Zusammenhang (Zusammenfassen mehrerer Dateien in FAT32 zu einem Unix-Filesystem) war btrfs, das ist damals (in Version 0.40) nach wenigen Minuten abgeschmiert und das Filesystem war unrettbar zerstört; auch das Wirtdateisystem, in dem sich die Container befanden, war beschädigt (allerdings reparierbar).

  4. Christian Sagt:

    Mit den btrfs-tools und einem “sudo btrfs-convert /dev/sda1″ bleiben mir damit meine Daten erhalten? Habe gerade meine U10.04 Kiste wieder aufgesetzt weil mir die W32-Partition den Bootloader zerschossen hat – da könnte ich ja jetzt einfach zu btrfs wechseln.

  5. buergermeister Sagt:

    hallo? dont use it productive auf deine Daten solltest also verzichten können!

  6. Christian Sagt:

    Warum soll man es nicht ‘productive’ verwenden wenn es bereits in den Debianpaketen drin ist? Ist ja wohl keine proposed-Quelle, oder?

  7. buergermeister Sagt:

    ^^ Wer lesen kann in der Paketbeschreibung:

    “WARNUNG: Btrfs ist in einem frühen Entwicklungsstadium. Es ist nur für Benchmarking- und Testzwecke geeignet. ”

    ist klar im Vorteil, nicht alles was paketiert ist heisst man kann es uneingeschränkt einsetzen. Release early release often!

Einen Kommentar abgeben

Bitte beachte: Die Kommentare werden moderiert. Dies kann zu Verzögerungen bei Deinem Kommentar führen. Es besteht kein Grund den Kommentar erneut abzuschicken.