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 »

