Zum Inhalt springen

btrfs

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 23. Februar 2016 um 10:10 Uhr durch 4osuvfa (Diskussion | Beiträge) (+0.1 für Windows, nebenher u.a. einen deutschsprachigen Netzverweis (oder sogenannten ‚Webklink‘) besser [u.a. mit (ungefährer) Zeitangabe] beschriftet). Sie kann sich erheblich von der aktuellen Version unterscheiden.
btrfs
Hersteller Oracle Corporation
Vollständige Bezeichnung B-tree FS, auch „Butter FS“, „Butterface“ oder „Better FS“
Erstveröffentlichung Stabil: Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
Beta (für Linux): 3.10, Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
Alpha (für Windows): 0.1, Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.[1][2] (Linux, Windows)
Technische Umsetzung
Verzeichnisse B+-Baum[3]
Maximalwerte
Größe einer Datei 16 EiB
Anzahl aller Dateien 264
Länge des Dateinamens 255 Byte
Größe des Dateisystems 16 EiB
Erlaubte Zeichen im Dateinamen alle Bytes außer NULL und '/'
Eigenschaften
Dateiattribute POSIX
Dateirechte-Verwaltung POSIX, ACLs
Transparente Komprimierung ja
Transparente Verschlüsselung geplant[4]
Unterstützende Betriebssysteme Linux, Windows

Das btrfs (B-tree FS, häufig ausgesprochen als „Butter FS“, „Butterface“ oder „Better FS“)[5][6] ist ein Copy-On-Write-Dateisystem, das von der Oracle Corporation seit 2007[7] als freie Software unter der GNU General Public License (GPL) für das Betriebssystem Linux entwickelt wird. Tests seit dem Jahre 2011 ergeben einen stabilen Zustand (Stand: April 2013).[8]

Möglicherweise soll es in Zukunft das bislang im Linux-Umfeld vorherrschende ext4-Dateisystem ersetzen, da dieses nur einen Teil der Beschränkungen von ext3 wie Dateigröße und Gesamtdateisystemgröße aufgehoben hat. Deshalb setzt Andrew Morton,[9][10] einer der prominentesten Linux-Kernel-Entwickler, auf längere Sicht auf btrfs.

Eigenschaften

Btrfs weist zahlreiche Gemeinsamkeiten mit ZFS auf und wird deswegen als Linux-Analogon zu ZFS beschrieben. ZFS wurde zwar schon sieben Jahre früher vom mittlerweile selben Hersteller (Sun Microsystems, aufgegangen in Oracle) als ultimatives Dateisystem entworfen, war wegen seines Lizenzstatus jedoch für die Verwendung mit Linux ungeeignet. Beide haben integriertes RAID, Volume-Management, prüfsummenbasierten Schutz vor Datenübertragungsfehlern und nutzen Copy-on-Write, ein Verfahren, bei dem eine Kopie erst dann „real“ angefertigt wird, sobald sie von einem der Beteiligten verändert wird. Solange alle Beteiligten ihre Kopie nicht verändert haben, reicht es, das Original ein einziges Mal zu speichern. Die Kopie erfolgt also zunächst „virtuell“ und wird erst bei einer ersten Benutzung verzögert angelegt. Das in das Dateisystem integrierte RAID-Subsystem bietet gegenüber klassischen Hardware- oder Software-RAID-Implementierungen den Vorteil, dass zwischen belegten und freien Datenblöcken unterschieden werden kann und somit bei der Rekonstruktion eines gespiegelten RAID-Volumens nur belegter Plattenplatz gespiegelt werden muss. Hieraus resultiert im Schadensfall, besonders bei wenig gefüllten Dateisystemen, eine enorme Zeitersparnis.

Weiterhin baut btrfs mit der B-Baum-Struktur auf ein zentrales Konzept aus XFS auf. Es ist somit auch mit Reiser4 verwandt, zu dem es als adäquate Wachablösung gesehen wird.[11]

Btrfs liefert das Programm btrfs-convert mit, mit dem bestehende ext3 und ext4 Dateisysteme in ein Btrfs Dateisystem konvertiert werden kann. Die Konvertierung ist reversibel.[12]

Btrfs soll vor allem auch Funktionen bieten, die es vom derzeitigen Linux-Standard ext3/ext4, aber auch von anderen Dateisystemen wie XFS oder JFS abheben, hierunter fallen:

Geschichte

Die Kernstruktur von Btrfs – die Copy-on-write-B-Baum-Struktur – wurde ursprünglich von dem IBM-Forscher Ohad Rodeh im Rahmen einer Präsentation bei der USENIX 2007 vorgeschlagen. Rodeh schlug auch das Hinzufügen von Referenzierungszählern für Speicherblöcke und bestimmte Lockerungen der Balancing-Algorithmen normaler B-Bäume vor, die die B-Bäume für die Hochleistungsspeicherlösungen mit Copy-On-Write-Schnappschüssen tauglich machen und dabei gute Nebenläufigkeit bewahren.[15]

Chris Mason, damals ein ReiserFS-Entwickler bei SUSE, wurde noch im selben Jahr von Oracle eingestellt und begann dort seine Arbeit an einem neuen Dateisystem, das fast ausschließlich solche B-Bäume verwendet – nicht nur für Meta- und Nutzdateien, sondern auch rekursiv zur Verfolgung der Speicherzuteilung der Bäume selber. Damit können sämtliche Operationen durch dieselben Routinen abgewickelt werden.[7][16]

Am 9. Januar 2009 wurde btrfs erstmals in den Linuxkernel 2.6.29 aufgenommen.[17]

Die Unterstützung von btrfs ist bereits in die Hauptversion des Linux-Kernels aufgenommen (seit Version 2.6.29-rc1). In einigen Linux-Distributionen steht das Dateisystem bereits offiziell bei der Installation zur Auswahl.

Unterstützung in den Linux-Distributionen

Für den experimentellen Betrieb wird das Dateisystem erstmals unter OpenSUSE 11.3 unterstützt[18] sowie unter Oracle Linux Release 2[19] und es existieren Pakete für die Distributionen Gentoo, Arch Linux, Debian und Ubuntu.

Btrfs ist das Standard-Dateisystem von MeeGo[20] und sollte seit mehreren Versionen auch in Fedora als Standard-Dateisystem verwendet werden.[21] Dies wurde jedoch immer wieder verworfen[22][23] und wird auch in Version 23[veraltet] vermutlich nicht geschehen.[24]

SUSE Linux Enterprise Server 12 (SLES 12) verwendet Btrfs als Standard-Dateisystem.[25]

openSUSE setzt seit Version 13.2 auf btrfs.

Kritik am Design

Red Hat beauftragte im zweiten Quartal 2010 Edward Shishkin, einen der ursprünglichen Reiser4-Entwickler, mit einem Codereview. Shishkins Schluss war, dass das Design fehlerhaft ist, da dem ursprünglichen Algorithmus in Kernpunkten nicht gefolgt wird. Die Designfehler führen dazu, dass in speziellen Fällen der Plattenplatz ausgehen kann, obwohl genügend Platz vorhanden ist.[26][27][28]

Die btrfs-Entwickler widersprechen der Behauptung, dass es sich um Designfehler handelt. Sie bezeichnen es viel mehr als Implementierungsfehler (Bug), der mittlerweile behoben wurde.[29]

Einzelnachweise

  1. Experimentell: Freier Treiber für Btrfs-Filesystem unter WindowsHeise, am Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
  2. WinBtrfs (englisch) – GitHub, am Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. (abgerufen am Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.)
  3. Valerie Aurora geb. Henson: A short history of btrfs. btrfs: Pre-history. In: LWN.net. 22. Juni 2009, abgerufen am 4. Oktober 2010 (englisch): „Rodeh’s btrees are different: […], he got rid of the links between leaves of the tree […]. (This is a fairly standard form of btrees in file systems, sometimes called 'B+trees'.)“
  4. A Conversation with Chris Mason on BTRfs: the next generation file system for Linux. Abgerufen am 13. Januar 2013.
  5. Valerie Henson: Chunkfs: Fast file system check and repair. (OGG) , abgerufen am 5. Februar 2008 (106,8 MB, Laufzeit 18 Minuten, 49 Sekunden): „It's called Butter FS or B-tree FS, but all the cool kids say Butter FS“
  6. Jake Edge: CRFS and POHMELFS. In: LWN.net. Eklektix, Inc., 6. Februar 2008, abgerufen am 4. Oktober 2010 (englisch).
  7. a b Chris Mason: [ANNOUNCE] Btrfs: a copy on write, snapshotting FS. In: Linux Kernel Mailing List archive. 12. Juni 2007, abgerufen am 29. Mai 2010 (englisch).
  8. Btrfs-Dateisystem. Abgerufen am 12. August 2013.
  9. Andrew Morton: Status and Direction of Kernel Development. (PDF; 58 kB) 9. Juli 2008, ehemals im Original (nicht mehr online verfügbar); abgerufen am 4. Oktober 2010 (englisch): „I am hoping that btrfs will save us. But as far as I know it is not getting as much external development support as it warrants – Merging btrfs into mainline might help here“
  10. Kernel-Log: Keine Unstable-Series, Linux 2008.7, Umgang mit Sicherheitskorrekturen. In: heise open. 16. Juli 2008, abgerufen am 4. Oktober 2010.
  11. Theodore Ts’o: Re: reiser4 for 2.6.27-rc1. In: Linux Kernel Mailing List archive. KernelTrap, 1. August 2008, archiviert vom Original am 3. September 2008; abgerufen am 16. Oktober 2010 (englisch).
  12. Michael Kofler: btrfs - Linux-Dateisystem der Zukunft - Arbeiten mit btrfs - Pro-Linux. In: pro-linux.de. 26. August 2010, abgerufen am 1. Oktober 2015.
  13. Thorsten Leemhuis: Kernel-Log – Was 3.9 bringt. In: heise.de. Heise Zeitschriften Verlag GmbH & Co. KG, 27. März 2013, abgerufen am 30. März 2013.
  14. Michael Larabel: Btrfs RAID 0/1/5/6/10 Five-Disk Benchmarks On Linux 4.1. phoronix, 29. Mai 2015, abgerufen am 29. Mai 2015.
  15. Ohad Rodeh: B-trees, Shadowing, and Clones. (PDF; 2,5 MB) , abgerufen am 16. Oktober 2010 (englisch).
  16. Valerie Aurora: A short history of btrfs. In: LWN.net. 22. Juli 2009, abgerufen am 22. August 2009 (englisch).
  17. Jonathan Corbet: Btrfs merged for 2.6.29. In: lwn.net. 9. Januar 2009, abgerufen am 4. Oktober 2010 (englisch).
  18. OpenSUSE 11.3: Product highlights. 1.1 Support for the new Btrfs file system. In: openSUSE Wiki. Archiviert vom Original am 26. Juli 2010; abgerufen am 17. Juli 2010 (englisch): „openSUSE is the first distribution that lets you choose Btrfs in the installer.“
  19. Oliver Diedrich: Oracle Linux mit Btrfs. 14. März 2012, abgerufen am 14. März 2012.
  20. Mirko Dölle: MeeGo-Projekt wählt Btrfs zum Standard-Dateisystem. In: heise open. 12. Mai 2010, abgerufen am 4. Oktober 2010.
  21. Jörg Thoma: Neuerungen für Fedora 17 stehen fest. In: golem.de. 13. Dezember 2011, abgerufen am 9. Februar 2012.
  22. Thorsten Leemhuis: Fedora 19: MariaDB statt MySQL, aber kein Btrfs. In: heise.de. 31. Januar 2013, abgerufen am 31. Januar 2013.
  23. fedoraproject.org: 9.14.4. Create a Btrfs subvolume
  24. Michael Larabel: Btrfs By Default Will Likely Not Be Pursued For Fedora 23. phoronix.com, 23. Juni 2015, abgerufen am 25. November 2015.
  25. SUSE: Release Notes for SUSE Linux Enterprise Server 12. In: suse.com. 16. April 2014, abgerufen am 16. April 2014 (englisch).
  26. Edward Shishkin: Btrfs: broken file system design (was Unbound(?) internal fragmentation in Btrfs). In: Linux Kernel Mailing List archive. 18. Juni 2010, abgerufen am 31. Dezember 2010 (englisch).
  27. Edward Shishkin: Re: Balancing leaves when walking from top to down (was Btrfs:…). In: linux-btrfs. 30. Juni 2010, abgerufen am 8. Januar 2011 (englisch).
  28. FAQ. In: btrfs Wiki. 8. Januar 2011, archiviert vom Original am 20. Juli 2011; abgerufen am 8. Januar 2011 (englisch).
  29. FAQ. In: btrfs Wiki. Archiviert vom Original am 6. Oktober 2015; abgerufen am 17. November 2015 (englisch).