Beruflich Dokumente
Kultur Dokumente
Skip to navigation
Skip to content
kofler.info
Search: Enter Search... Submit
Navigation
Start
Bücher
Excel 2000 bis 2003
Excel 2007
Linux 2010
Linux-Kommandoreferenz
PHP 5.3 und MySQL 5.4
Ubuntu 9.10
Ubuntu 10.04 Handbuch
Ubuntu Server
Visual Basic 2008
ebooks
Das Konzept
Mac OS X für Profis
openSUSE 11.3
Blog
Mein Mac-Tagebuch
Über
Michael Kofler
Bibliografie
10 Jahre kofler.info
Copyright-Hinweis
Sitemap
Google-Suche
Diese Website
Impressum
AGB
English pages
Michael Kofler
Translations
mssql2mysql
News
(27. Aug 2010)
1 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
Sie haben es satt, sich durch 50 Seiten man-Text zu quälen, nur weil Sie eine grep-Option nicht mehr
im Kopf haben? Abhilfe schafft die Linux-Kommandoreferenz mit einer kompakten
Syntaxzusammenfassung von über 300 Linux-Kommandos!
(10. Jun 2010)
Ubuntu-Handbuch
Das Ubuntu-Handbuch mit nunmehr über 700 Seiten ist erschienen! Die Themenpalette reicht vom
Einstieg über die Desktop-Anwendung, die Nutzung des Terminals bis hin zu den ersten Schritten bei
der Server-Konfiguration.
Während der Arbeit für die nächste Auflage meines Linux-Buchs habe ich mir das neue
Dateisystem btrfs genauer angesehen. In diesem Artikel erfahren Sie, wie gut btrfs bereits
funktioniert und wo es noch Mängel gibt. Noch mehr Details wird das Buch Linux 2011
enthalten, das voraussichtlich im November 2010 bei Addison-Wesley erscheint.
Vorweg gleich eine Warnung: btrfs ist definitiv noch nicht stabil! Ich habe während meiner
Experimente mit btrfs zwar keine Daten verloren, aber mehrere Kernelabstürze ausgelöst
(zugegebenermaßen oft aus Unverständnis über btrfs-Konzepte). In der btrfs-Mailingliste berichten
nahezu jede Woche btrfs-Tester und -Entwickler über Dateisysteme, die sich plötzlich nicht mehr
nutzen lassen (mount funktioniert nicht mehr), Kernelmeldungen mit Prüfsummenfehlern etc.
Vertrauen Sie btrfs keine Daten an, zu denen Sie nicht aktuelle Backups besitzen!
Insbesondere warnt die btrfs-Website, dass ein plötzlicher Stromausfall oder Absturz zur
unwiderruflichen Zerstörung des Dateisystems führen kann. Ein Teil des Problems besteht darin, dass
es für btrfs noch kein funktionierendes fsck-Kommando gibt. btrfsck führt zwar einen recht simplen
Integritätstest durch, kann ein kaputtes Dateisystem aber nicht reparieren.
Features
btrfs gilt damit als Linux-Gegenstück zu Suns (Oracles) Dateisystem ZFS. Nahezu alle namhaften
Linux-Kernelentwickler sind sich einig: Wenn btrfs einmal ausgereift ist, wird es ext4 als Linux-
2 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
Standarddateisystem ablösen. Dieser Meinung ist sogar Theodore Ts'o, der Hauptentwickler aller
ext-Versionen.
Die folgende Liste fasst die wichtigsten Eigenschaften von btrfs zusammen.
Copy on Write (Geänderte Dateiblöcke werden nicht überschrieben, sondern an einer anderen
Stelle gespeichert. Das ermöglicht im Zusammenspiel mit Journaling besonders sichere
Dateiänderungen.)
Automatische Berechnung von Prüfsummen, um Bitfehler zu entdecken
Direkte Unterstützung von RAID-0, RAID-1 und RAID-10
Snapshots und Subvolumes
Komprimierung der Dateien (mount-Option compress)
SSD-Optimierung (mount-Option ssd)
Defragmentierung im laufenden Betrieb
Geplant, aber noch nicht implementiert sind RAID-5- und RAID-6-Unterstützung, eine
Dateisystemüberprüfung im laufenden Betrieb sowie eine Deduplizierungsfunktion, um redundante
Daten (z. B. zwei gleiche Dateien) nur einmal zu speichern.
Mit Subvolumes, Snapshots und RAID bietet btrfs ähnliche Funktionen wie die im Kernel schon
enthaltenen Multi Device und Logical Volume Manager. An sich sind solche Doppelgleisigkeiten im
Kernel unerwünscht, im Falle von btrfs wurden sie aber akzeptiert. Der Grund: einerseits ermöglicht
die direkte Integration von RAID-Funktionen in den Dateisystemtreiber aufgrund der Prüfsummen
eine noch höhere Datensicherheit, andererseits haben die btrfs-Entwickler glaubhaft nachweisen
können, dass die btrfs-Snapshots wesentlich effizienter sind als die von LVM.
root-Installation
btrfs kann bereits als root-Dateisystem verwendet werden, sofern es eine Bootpartition mit einem
anderen Dateisystemtyp (in der Regel ext3) gibt. GRUB ist nämlich noch nicht btrfs-kompatibel,
weder die alte Version 1 (also 0.97) noch die neue Version 2 (sprich 1.98). Fedora, openSUSE und
Ubuntu unterstützen btrfs bereits während der Installation. Bei Fedora muss allerdings die
boot-Option btrfs verwendet werden, damit dieser Dateisystemtyp bei der Festplattenpartitionierung
zur Auswahl steht. Bei Ubuntu müssen Sie eine Textmodus-Installation durchführen (Alternative CD).
Empfehlenswert für eigene Experimente mit btrfs sind Fedora 13 oder Ubuntu 10.10 Alpha/Beta.
Nicht so optimal sind openSUSE 11.3 und Ubuntu 10.04: Beide kennen das neue
Administrationskommando btrfs noch nicht. Dort müssen Sie mit btrfsctl und anderen eigentlich
obsoleten Tools arbeiten.
Generell ist es eine gute Idee, bei btrfs etwas mehr ungenutzten Platz vorzusehen als bei ext3/ext4:
Einerseits beanspruchen die Verwaltungsdaten (Metadaten) von btrfs deutlich mehr Platz als die von
ext3/ext4, andererseits ist es nicht immer ganz einfach, den noch freien Speicherplatz zu ermitteln.
Zuden reagiert btrfs mitunter allergisch (sprich mit Absturz) auf Platzmangel. Platzreserven sind also
ein Sicherheitsgewinn.
Administration
Die zur btrfs-Administration erforderlichen Kommandos mkfs.brtfs, brtfs, brtfsck etc. befinden sich je
nach Distribution im Paket btrfs-tools, btrfs-progrs oder btrfsprogs. Wenn Sie nicht schon während der
Installation ein btrfs-Dateisystem eingerichtet haben, müssen Sie dieses Paket in der Regel extra
installieren.
3 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
Auch wenn sich die btrfs-Dokumentation und diverse Artikel zu btrfs zumeist auf die veralteten
Kommandos btrfsctl, btrfs-vol etc. beziehen, wird die btrfs-Administration in Zukunft durch das neue
Kommando btrfs erfolgen, das im Mittelpunkt dieses Artikels steht.
Um ein neues btrfs-Dateisystem in einer leeren Partition bzw. einem leeren Logical Volume
einzurichten, führen Sie das folgende Kommando aus (wobei Sie natürlich /dev/sdb1 durch Ihren
eigenen Device-Namen ersetzen müssen):
mkfs.btrfs /dev/sdb1
mkdir /media/btrfs
mount /dev/sdb1 /media/btrfs
Wenn sich ein btrfs-Dateisystem als zu klein herausstellt, ist es am einfachsten, ein weiteres Device
(also eine Festplattenpartition oder ein Logical Device) hinzuzufügen – siehe etwas weiter unten. Es
ist aber auch möglich, die Größe eines vorhandenen btrfs-Dateisystems im laufenden Betrieb zu
ändern (auch verkleinern!). In der Praxis funktioniert das am besten, wenn sich das Dateisystem in
einem Logical Volume befindet. Um ein btrfs-Dateisystem so zu vergrößern, dass es ein zuvor mit
lvextend vergrößertes Logical Volume komplett nutzt, führen Sie das folgende Kommando aus:
Statt max können Sie auch die neue absolute Größe des Dateisystems angeben, oder mit + oder - die
relative Änderung. Dabei sind die Kürzel k, m und g für kByte, MByte und GByte erlaubt. Das
folgende Kommando verkleinert das Dateisystem um 2 GByte.
fsck.ext4 -f /dev/sdb1
btrfs-convert /dev/sdb1
creating btrfs metadata.
creating ext2fs image file.
cleaning up system chunk.
conversion complete.
mount /dev/sdb1 /media/btrfs
btrfs-convert legt bei der Konversion den Snapshot ext2_saved an, der den Zustand des bisherigen
ext-Dateisystems archiviert. Solange es diesen Snapshot gibt, können Sie das btrfs-System sogar
zurück in ein ext-Dateisystem verwandeln! (Veränderungen, die Sie in der Zwischenzeit im btrfs-
Dateisystem durchgeführt haben, gehen dabei aber verloren.)
umount /dev/sdb1
btrfs-convert -r /dev/sdb1
4 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
Wenn Sie nach der Konversion bei btrfs bleiben möchten, sollten Sie den Snapshot ext2_saved
löschen. Je mehr Änderungen Sie im btrfs-Dateisystem durchführen, desto mehr Platz erfordert der
Snapshot.
Dateien komprimieren
btrfs untertützt die automatische und transparente Komprimierung von Dateien. Dazu muss das
Dateisystem mit der mount-Option compress in den Verzeichnisbaum eingebunden werden. Die
Option compress gilt nur für neue bzw. geänderte Dateien. Vorhandene Dateien bleiben unverändert,
solange sie nur gelesen werden. Die Option gilt für das gesamte Dateisystem, kann also nicht nur für
einzelne Verzeichnisse aktiviert werden.
compress beschleunigt in vielen Fällen Dateioperationen! Das mag auf den ersten Blick verwundern,
weil die Kompression bzw. Dekompression ja zusätzlichen Aufwand verursacht. Bei einer schnellen
CPU ist dieser Aufwand aber gering im Vergleich zur Ersparnis, die sich dadurch ergibt, dass weniger
Datenblöcke der Festplatte oder der SSD gelesen bzw. verändert werden müssen. Als Zusatznutzen
kommt natürlich die Platzersparnis hinzu.
Sie können das komprimierte Dateisystem später auch ohne die Option compress nutzen. Neue bzw.
veränderte Dateien sind dann nicht mehr komprimiert, bereits vorhandene Dateien bleiben aber
komprimiert, solange die Dateien nur gelesen werden.
Die compress-Option eignet sich besonders gut für Verzeichnisse, die viele Textdateien enthalten (z.
B. /usr/, die Platzersparnis beträgt hier fast 50 Prozent!). Nicht empfehlenswert ist die Option
hingegen für Ihr Benutzerverzeichnis, wenn sich dort überwiegend bereits komprimierte Dateien
befinden (z. B. Audio-, Video-, PDF- und OpenOffice-Dateien). Eine weitere Komprimierung gelingt
dann nicht. Das erkennt auch der btrfs-Treiber und verzichtet bei der betreffenden Datei auf die
Komprimierung. Dennoch kostet dieser Test etwas Zeit.
In der Praxis ist es bei Desktopsystemen häufig zweckmäßig, für die Systempartition compress zu
verwenden, für die Home-Partition aber nicht. Leider können Sie nicht bei jeder Distribution die
mount-Optionen bereits bei der Installation einstellen. Bei openSUSE 11.3 ist das möglich, und eine
Testinstallation ergab, dass der Platzbedarf für die Systempartition bei einer Standardinstallation von
3,5 auf 1,8 GByte sank!
Längerfristig gibt es Pläne, in btrfs einen noch schnelleren, aber nicht ganz so platzsparenden
Komprimieralgorithmus einzusetzen (LZO) und die compress-Option dann standardmäßig zu
aktivieren.
Subvolumes
Von herkömmlichen Dateisystemen kennen Sie die Regel: eine Partition (oder ein Logical Volume) –
ein Dateisystem. Bei btrfs ist das anders: Subvolumes ermöglichen es, innerhalb eines btrfs-
Dateisystem gewissermaßen mehrere virtuelle Dateisysteme einzurichten und in einem eigenen
mount-Verzeichnis zu nutzen.
Am einfachsten ist das anhand eines Beispiels zu verstehen. Dabei gehe ich davon aus, dass sich das
btrfs-Dateisystem in der Partition /dev/sdb1 befindet und im Verzeichnis /media/btrfs eingebunden ist.
5 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
btrfs subvolume create erzeugt nun zwei neue Subvolumes sub1 und data/sub2. mount mit der Option
subvol=name bindet die Subvolumes in den Verzeichnisbaum ein.
mount -o subvol=name funktioniert allerdings nur für Subvolumes, die sich direkt im
Wurzelverzeichnis des btrfs-Dateisystems befinden. Ist das nicht der Fall, müssen Sie mit btrfs
subvolume list die Volume-ID-Nummer des Subvolumes ermitteln und diese Nummer mit der mount-
Option subvolid angeben:
Nun können Sie /media/sub1 und /media/sub2 wie zwei eigene Dateisysteme verwenden. Alle dort
gespeicherten Dateien finden Sie aber auch direkt im btrfs-Dateisystem in den Verzeichnissen sub1
und data/sub2, die bei der Ausführung von btrfs subvolume create automatisch erstellt wurden.
touch /media/sub1/tst1
ls /media/btrfs/sub1
tst1
touch /media/sub2/tst2
ls /media/btrfs/data/sub2
tst2
Mit anderen Worten: Die Subvolumes sind zwar als eigenständige Dateisysteme verwendbar, sie sind
aber auch über Verzeichnisse des btrfs-Dateisystems les- und veränderbar.
Mit btrfs subvolume delete name löschen Sie ein Subvolume inklusive aller darin enthaltenen Dateien.
Das Subvolume muss vorher natürlich aus dem Verzeichnisbaum gelöst werden.
umount /media/sub2
btrfs subvolume delete /media/btrfs/data/sub2
Beachten Sie, dass der von Subvolumes beanspruchte Speicher mit der Ausführung von btrfs
subvolume delete nicht sofort freigegeben werden, sondern erst nach und nach. Ein Kernelprozess
kümmert sich im Hintergrund um die erforderlichen Aufräumarbeiten.
Snapshots
Snapshots ermöglichen es, das btrfs-Dateisystem bzw. ein Subvolume des Dateisystems auf zwei
Zweige aufzuteilen. Neue Snapshots können vom Dateisystem selbst, von einem Subvolume oder von
einem anderen Snapshot erstellt werden.
Anfänglich enthalten das Ausgangs-Volume und der Snapshot dieselben Daten. Anschließend können
beide Dateisysteme losgelöst voneinander geändert werden, wobei btrfs nur die Änderungen speichert.
(Beim Erstellen des Snapshots wird also nicht der gesamte Datenbestand kopiert. Beachten Sie auch,
dass btrfs-Snapshots vollkommen anders funktionieren als LVM-Snapshots und ganz andere
Eigenschaften haben!)
6 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
Snapshots können z. B. für Backups verwendet werden. Sie erstellen zuerst den Snapshot und führen
dann ein Backup des Snapshots aus. Das stellt sicher, dass sich während des Backups keine Dateien
ändern. Gleichzeitig können Sie während des Backups ganz normal weiterarbeiten. Sobald das
Backup abgeschlossen ist, löschen Sie den Snapshot.
btrfs-intern werden Snapshots wie Subvolumes behandelt. Deswegen gelten die meisten subvolume-
Befehle des btrfs-Kommandos gleichermaßen für Subvolumes und Snapshots. Der wesentliche
Unterschied zwischen Subvolumes und Snapshots besteht darin, dass Subvolumes anfänglich leer
sind, Snapshots dagegen eine virtuelle Kopie des Ausgangsverzeichnisses enthalten. (Wie gesagt:
Vorerst werden keine Daten kopiert. Vielmehr werden nur die Veränderungen gegenüber dem
ursprünglichen Zustand gespeichert.)
Als Ausgangspunkt für das folgende Beispiel dient ein btrfs-Dateisystem in der Partition /dev/sdb1.
Das Dateisystem ist an der Stelle /media/btrfs in den Verzeichnisbaum integriert. btrfs subvolume snap
erzeugt nun einen Snapshot vom gesamten Dateisystem. Dabei wird zugleich das Verzeichnis /media
/btrfs/snap1 erzeugt. Der Snapshot kann über dieses Verzeichnis verwendet werden oder mit mount
wie ein eigenes Dateisystem in den Verzeichnisbaum eingebunden werden. Dabei muss die vom
vorigen Abschnitt schon bekannte mount-Option subvol=name verwendet werden.
Sie können nun sowohl im ursprünglichen Dateisystem als auch im Snapshot unabhängig voneinander
(also ohne gegenseitige Beeinflussung) Dateien anlegen, verändern und löschen.
Prinzipiell bieten diese Snapshots die Möglichkeit, nach einem missglückten Update das
ursprüngliche System wiederherzustellen. In der Praxis bestehen allerdings einige Stolperfallen. So
beanspruchen die automatisch erzeugten Snapshots zunehmend mehr Festplattenkapazität.
Das btrfs-Kommando bietet leider keine Möglichkeit, um den Speicherbedarf exakt zu quantifizieren.
Auf jeden Fall sollten Sie daran denken, hin und wieder alle nicht mehr benötigten Snapshots zu
entfernen. Da Sie an btrfs subvolume delete immer nur einen Snapshot übergeben können,
formulieren Sie am einfachsten eine kleine Schleife:
Falls Sie mehrere btrfs-Dateisysteme im Einsatz haben (z. B. /home), führen Sie die obige Schleife
auch für diese Dateisysteme aus.
Wenn sich wirklich irgendwann die Notwendigkeit ergibt, dass Sie Ihr gesamtes System in einen alten
Zustand zurückversetzen möchten, müssen Sie die erforderlichen Schritte selbst durchführen. In der
Regel werden Sie mit dem folgenden Kommando einen Snapshot als neues Default-Volume für btrfs
festsetzen und den Rechner neu starten:
7 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
Beachten Sie, dass damit nicht nur die Paketinstallation rückgängig gemacht wird, sondern jede
Änderung, die Sie seither durchgeführt haben. Das gilt auch für Ihr Heimatverzeichnis (es sei denn,
Sie verwenden eine eigene Home-Partition)!
Der zum Zeitpunkt x durchgeführte Snapshot gilt jetzt als neue Systempartition. Leider besteht
momentan keine Möglichkeit, das ursprüngliche Default-Volume des btrfs-Dateisystems zu löschen.
Der von diesem Volume beanspruchte Speicherplatz ist somit verloren.
Der einfachste Fall von Multi-Device-Dateisystemen entsteht zumeist dann, wenn ein btrfs-
Dateisystem zu klein wird: Sie können nun ganz einfach ein weiteres Device hinzufügen (also eine
leere Festplattenpartition oder ein ungenutztes Logical Volume). Damit wird das Dateisystem
entsprechend vergrößert. Sie müssen weder eine Partition neu formatieren noch die Größe des
Dateisystem explizit ändern – btrfs erledigt all diese Aufgaben selbstständig.
Anfänglich befinden sich nun alle Daten auf dem ersten Device, während das zweite Device erst nach
und nach genutzt wird. Falls sich die Devices auf unterschiedlichen physikalischen Festplatten
befinden (und nur dann!), erzielen Sie einen Geschwindigkeitsgewinn, wenn Sie die vorhandenen
Dateien mit btrfs filesystem balance über alle Devices verteilen. Beachten Sie aber, dass btrfs
filesystem balance sehr lange dauert und nur selten der Mühe wert ist.
Es ist auch möglich, ein Device wieder zu entfernen. Die auf dem Device enthaltenen Daten werden
dann zuerst auf die anderen Devices übertragen, weswegen die Ausführung des folgenden Kommando
sehr lange dauern kann.
Sie können ein btrfs-Dateisystem auch von vorne herein mit mehreren Devices einrichten, in dem Sie
an mkfs.btrfs mehrere Devices übergeben:
Standardmäßig werden dann die Metadaten des Dateisystem dupliziert (entspricht RAID-1), die
eigentlichen Daten aber über alle Devices verteilt. Die Metadaten enthalten die
Verwaltungsinformationen des Dateisystems, also z. B. Inode-Listen sowie Bäume zum Suchen nach
Dateien.
Bei der Ausführung von mount geben Sie ein beliebiges Device des Dateisystems an. (Nach einem
Rechnerneustart muss das Kommando btrfs device scan bzw. btrfsctl -a ausgeführt werden, damit btrfs
weiß, welche Devices mit btrfs-Dateisystemen es gibt und wie sie zusammengehören.)
Wenn Sie ein »richtiges« RAID-System anlegen möchten, bei dem Daten und Metadaten einheitlich
behandelt werden, übergeben Sie an mkfs.btrfs mit -d (für die Daten) und -m (für die Metadaten) den
gewünschten RAID-Level an. Außerdem übergeben Sie an mkfs.btrfs die gewünschte Anzahl von
Devices. Das folgende Kommando erstellt ein RAID-0-System (Striping):
8 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
Interessant wird es, wenn bei einem RAID-1-Verbund ein Device ausfällt. Um diesen Fall zu testen,
habe ich die Festplatte /dev/sdc entfernt. Damit das Dateisystem verwendet werden kann, muss nun
die zusätzliche mount-Option degraded verwendet werden:
Um den RAID-Verbund wiederherzustellen, fügen Sie dem Dateisystem eine neues, möglichst gleich
großes Device wieder hinzu. Im folgenden Beispiel ist das wieder /dev/sdc1, wobei diese Partition nun
aber von einer neuen Festplatte stammt. Um das Dateisystem wieder über beide Devices zu verteilen
und somit die RAID-1-Redundanz wiederherzustellen, müssen Sie außerdem btrfs filesystem balance
ausführen. Bei großen Dateisystemen dauert die Ausführung dieses Kommandos naturgemäß sehr
lange. Immerhin kann das Dateisystem in dieser Zeit genutzt werden (wenn auch mit stark
verminderter Geschwindigkeit).
Erst jetzt kann das defekte Device aus dem Dateisystem entfernt werden. Dabei verwenden Sie zur
Device-Angabe das Schlüsselwort missing:
Beim nächsten mount-Kommando können Sie nun auf die Option degraded verzichten.
Das folgende Beispiel soll Ihnen dabei helfen, zumindest die Daten korrekt zu interpretieren, die btrfs
liefert. Als Ausgangspunkt dient ein kleines btrfs-RAID-1-System aus zwei je acht GByte großen
Partitionen. In dieses Dateisystem wurde das gesamte /usr-Verzeichnis des Testsystems kopiert
(Platzbedarf ca. 1,8 GByte).
btrfs filesystem show verrät, dass das Dateisystem aus zwei jeweils acht GByte großen Devices
zusammengesetzt ist. Insgesamt enthält das Dateisysten 1,9 GByte System-, Metadaten und
Nutzdaten. Außerdem wissen wir jetzt, dass auf jedem Device jeweils 3,6 GByte GByte Daten
reserviert wurden. filesystem show liefert allerdings keine Informationen, wie die Devices miteinander
verbunden sind (also welcher RAID-Level aktiv ist). Daher ist es auch unmöglich zu sagen, wie groß
die gesamte Kapazität des Dateisystems ist. (Bei RAID-0 würde sie 16 GByte betragen, bei RAID-1
aber nur acht.)
9 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
btrfs filesystem df gibt Auskunft darüber, wie die reservierten Daten verwendet werden. btrfs hat
bisher 2,6 GByte für die eigentlichen Daten reserviert und davon ca. 1,7 GByte tatsächlich genutzt.
Weiters hat btrfs ein GByte für Metadaten reserviert und davon knapp 200 MByte genutzt. (Das ist
rund ein Achtel der eigentlichen Daten, also verhältnismäßig viel.) Schließlich hat btrfs 12 MByte für
Systemdaten reserviert und gerade einmal 4 KByte davon tatsächlich genutzt. 2,61 +1,01 + 0,01 ergibt
die 3,63 GByte, die filesystem show angezeigt hat.
Wieviel Daten sind nun noch frei? Wir wissen, dass insgesamt 16 GByte Speicherplatz zur Verfügung
stehen. Wegen der mit RAID-1 verbunden Redundanz sinkt der nutzbare Speicherplatz auf die Hälfte,
also auf acht GByte. Davon sind bereits 3,63 GByte reserviert. Der für die eigentlichen Daten
reservierte Bereich kann somit noch maximal um 4,37 GByte vergrößert werden und würde dann
knapp 7 GByte betragen. Davon sind 1,7 GByte bereits genutzt. Das ergibt einen freien Speicherplatz
für Dateien von ca. 5,3 GByte. Allerdings geht diese Rechnung nur auf, wenn btrfs nicht
zwischenzeitlich nochmals Platz für Metadaten reservieren muss.
Ein elementares Problem für btrfs-Administratoren besteht momentan darin, dass sie den RAID-Level
des Dateisystems nicht herausfinden können. Das macht die Administration von Dateisystemen, die
sie nicht selbst eingerichtet haben, sehr schwierig. Es ist anzunehmen, dass die btrfs-Werkzeuge
diesbezüglich noch verbessert werden.
Fazit
Das Arbeiten mit btrfs ist spannend. btrfs bietet beinahe soviele Funktionen wie ext4 plus LVM plus
Software-RAID zusammen und ist insofern am ehesten mit Suns (nunmehr Oracles) ZFS zu
vergleichen. In diesem Zusammenhang ist auch interessant, dass auch der btrfs-Hauptentwickler Chris
Mason ein Orcale-Mitarbeiter ist! Bis jetzt hat Oracles Sun-Übernahme zum Glück keine negativen
Auswirkungen auf den Arbeitseifer von Chris Mason gezeigt, eher im Gegenteil. Lizenzprobleme sind
nicht zu befürchten, der btrfs-Treiber untersteht so wie der restliche Kernelcode der GPL.
In Benchmarktests schneidet btrfs noch uneinheitlich ab, manchmal ein wenig besser als ext,
manchmal ein wenig schlechter. Die besten Benchmark-Ergebnisse erzielt btrfs in der Regel
zusammen mit der compress-Option - ein durchaus verblüffendes Resultat.
Die Fülle an Funktionen macht aber auch skeptisch. Gerade bei Dateisystemen steht die Stabilität an
erster Stelle, und hier hapert es noch. Angesichts der Komplexität von btrfs werden wohl eher Jahre
(und nicht Monate) vergehen, bevor ich wirklich kritische Daten btrfs anvertraue - auch wenn die
btrfs-Entwickler gerade überlegen, ob btrfs in Kernel 2.6.36 als 'stabil' gekennzeichnet werden soll.
Links
https://btrfs.wiki.kernel.org/
10 of 11 9.9.10 16:45
Michael Koflers Blog | kofler.info http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zuk...
https://btrfs.wiki.kernel.org/index.php/FAQ
https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3
https://btrfs.wiki.kernel.org/index.php/Gotchas
https://btrfs.wiki.kernel.org/index.php/Project_ideas
http://dir.gmane.org/gmane.comp.file-systems.btrfs
http://fedoraproject.org/wiki/Btrfs_in_Fedora_13
https://help.ubuntu.com/community/btrfs
Benchmark-Tests
http://www.linux-mag.com/id/7308/
http://www.phoronix.com/ (suchen Sie auf dieser Website nach btrfs)
Kommentar verfassen
11 of 11 9.9.10 16:45