[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/wiki16\/2021\/01\/27\/btrfs-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/wiki16\/2021\/01\/27\/btrfs-wikipedia\/","headline":"Btrfs – Wikipedia","name":"Btrfs – Wikipedia","description":"before-content-x4 B-Tree-Dateisystem Nicht zu verwechseln mit dem BitTorrent-Dateisystem BTFS. Btrfs Entwickler Facebook, Fujitsu, Fusion-IO, Intel, Linux Foundation, Netgear, Oracle Corporation,","datePublished":"2021-01-27","dateModified":"2021-01-27","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/wiki16\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/wiki16\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":100,"height":100},"url":"https:\/\/wiki.edu.vn\/wiki16\/2021\/01\/27\/btrfs-wikipedia\/","wordCount":21086,"articleBody":" (adsbygoogle = window.adsbygoogle || []).push({});before-content-x4B-Tree-DateisystemNicht zu verwechseln mit dem BitTorrent-Dateisystem BTFS.BtrfsEntwicklerFacebook, Fujitsu, Fusion-IO, Intel, Linux Foundation, Netgear, Oracle Corporation, Red Hat, STRATO AG und openSUSE[1]Vollst\u00e4ndiger NameB-Tree-DateisystemEingef\u00fchrtLinux-Kernel 2.6.29, M\u00e4rz 2009;; Vor 11 Jahren ((2009-03)StrukturenVerzeichnisinhaltB-BaumDateizuordnungAusma\u00dfeGrenzenMax. Volumengr\u00f6\u00dfe16 EiB[2][a]Max. Dateigr\u00f6\u00dfe16 EiB[2][a]Max. Anzahl der Dateien264[b][3]Max. Dateinamenl\u00e4nge255 ASCII-Zeichen (weniger f\u00fcr Multibyte-Zeichencodierungen wie Unicode)Zul\u00e4ssige Zeichen in DateinamenAlle au\u00dfer '\/' und NUL (('')EigenschaftenTermine aufgezeichnetSch\u00f6pfung (otime),[4] \u00c4nderung (mtime), Attribut\u00e4nderung (ctime) und Zugriff (atime)Datumsbereich64-Bit-Int-Offset mit Vorzeichen von 1970-01-01T00: 00: 00Z[5]Datumsaufl\u00f6sungNanosekundeAttributePOSIX und erweiterte AttributeDateisystemberechtigungenPOSIX und ACLTransparente KomprimierungJa (zlib, LZO[6] und (seit 4.14) ZSTD[7])Transparente Verschl\u00fcsselungGeplant[8]DatendeduplizierungJa[9]Copy-on-WriteJaAndereUnterst\u00fctzte BetriebssystemeLinux, ReactOS[10]Webseitebtrfs.wiki.kernel.org (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Btrfs (ausgesprochen als “Butteraufheben”,[11] “besserer FS”,[8] “Butter FS”,[12] “b-Baum FS”,[12] oder einfach durch Buchstabieren) ist ein Computerspeicherformat, das ein Dateisystem basierend auf dem COW-Prinzip (Copy-on-Write) mit einem gemeinsam entwickelten logischen Volume-Manager (nicht zu verwechseln mit dem LVM von Linux) kombiniert. Es wurde urspr\u00fcnglich 2007 von der Oracle Corporation f\u00fcr die Verwendung unter Linux entwickelt. Seit November 2013 wurde das On-Disk-Format des Dateisystems im Linux-Kernel f\u00fcr stabil erkl\u00e4rt.[13] Laut Oracle ist Btrfs “kein echtes Akronym”.[14]Btrfs soll das Fehlen von Pooling, Snapshots, Pr\u00fcfsummen und integriertem Multi-Device-Spanning in Linux-Dateisystemen beheben.[8] Chris Mason, der Hauptautor von Btrfs, erkl\u00e4rte, sein Ziel sei es, “zu vermieten” [Linux] Skala f\u00fcr den Speicher, der verf\u00fcgbar sein wird. Bei der Skalierung geht es nicht nur darum, den Speicher zu adressieren, sondern auch darum, ihn \u00fcber eine saubere Oberfl\u00e4che verwalten und verwalten zu k\u00f6nnen, damit die Benutzer sehen k\u00f6nnen, was verwendet wird, und ihn zuverl\u00e4ssiger machen k\u00f6nnen. “[15]Table of Contents (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Geschichte[edit]Eigenschaften[edit]Implementiert[edit]Implementiert, aber nicht f\u00fcr die Produktion empfohlen[edit]Geplant, aber noch nicht umgesetzt[edit]Klonen[edit]Subvolumes und Schnappsch\u00fcsse[edit]Senden empfangen[edit]Kontingentgruppen[edit]In-Place-Konvertierung von ext2 \/ 3\/4 und ReiserFS[edit]Union Montage- \/ Saatgutvorrichtungen[edit]Verschl\u00fcsselung[edit]\u00dcberpr\u00fcfung und Wiederherstellung[edit]Dateisystembaum[edit]Ausma\u00dfe[edit]Umfang Zuordnungsbaum[edit]Pr\u00fcfsummenbaum und Schrubben[edit]Protokollbaum[edit]Chunk- und Ger\u00e4teb\u00e4ume[edit]Umzugsb\u00e4ume[edit]Superblock[edit]Kommerzielle Unterst\u00fctzung[edit]Unterst\u00fctzt[edit]Nicht l\u00e4nger unterst\u00fctzt[edit]Siehe auch[edit]Verweise[edit]Externe Links[edit]Geschichte[edit]Die Kerndatenstruktur von Btrfs – der Copy-on-Write-B-Baum – wurde urspr\u00fcnglich vom IBM-Forscher Ohad Rodeh bei einer Pr\u00e4sentation auf der USENIX 2007 vorgeschlagen.[16] Chris Mason, ein Ingenieur, der zu dieser Zeit an ReiserFS f\u00fcr SUSE arbeitete, kam sp\u00e4ter in diesem Jahr zu Oracle und begann mit der Arbeit an einem neuen Dateisystem, das auf diesen B-B\u00e4umen basiert.[17]Im Jahr 2008 erkl\u00e4rte Theodore Ts’o, der Hauptentwickler der Dateisysteme ext3 und ext4, dass ext4 zwar verbesserte Funktionen aufweist, dies jedoch keinen gro\u00dfen Fortschritt darstellt. Es nutzt alte Technologie und ist eine L\u00fccke. Ts’o sagte, dass Btrfs die bessere Richtung ist, weil “es Verbesserungen in Bezug auf Skalierbarkeit, Zuverl\u00e4ssigkeit und einfache Verwaltung bietet”.[18] Btrfs hat auch “eine Reihe der gleichen Designideen wie reiser3 \/ 4”.[19]Btrfs 1.0 mit dem endg\u00fcltigen Format auf der Festplatte war urspr\u00fcnglich f\u00fcr eine Ver\u00f6ffentlichung Ende 2008 geplant.[20] und wurde schlie\u00dflich 2009 in die Linux-Kernel-Hauptlinie aufgenommen.[21] Mehrere Linux-Distributionen bieten Btrfs w\u00e4hrend der Installation als experimentelle Auswahl des Root-Dateisystems an.[22][23][24]Im Juli 2011 wurden die automatischen Defragmentierungs- und Bereinigungsfunktionen von Btrfs in Version 3.0 der Linux-Kernel-Hauptlinie zusammengef\u00fchrt.[25] Neben Mason bei Oracle trug Miao Xie bei Fujitsu zur Leistungsverbesserung bei.[26] Im Juni 2012 verlie\u00df Chris Mason Oracle f\u00fcr Fusion-io, das er ein Jahr sp\u00e4ter mit Josef Bacik verlie\u00df, um sich Facebook anzuschlie\u00dfen. W\u00e4hrend seiner Zeit bei beiden Unternehmen setzte Mason seine Arbeit an Btrfs fort.[27][17] (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Im Jahr 2012 haben zwei Linux-Distributionen Btrfs vom experimentellen zum produktiven oder unterst\u00fctzten Status verschoben: Oracle Linux im M\u00e4rz,[28] gefolgt von SUSE Linux Enterprise im August.[29]Im Jahr 2015 wurde Btrfs als Standarddateisystem f\u00fcr SUSE Linux Enterprise Server 12 \u00fcbernommen.[30]Im August 2017 gab Red Hat in den Versionshinweisen f\u00fcr Red Hat Enterprise Linux (RHEL) 7.4 bekannt, dass es nicht mehr geplant ist, Btrfs, das seit RHEL 6 Beta als “Technologievorschau” enthalten war, auf eine vollst\u00e4ndig unterst\u00fctzte Funktion zu verschieben. unter Hinweis darauf, dass es in der RHEL 7-Release-Serie verf\u00fcgbar bleiben w\u00fcrde.[31] Btrfs wurde im Mai 2019 aus RHEL 8 entfernt.[32]Im Jahr 2020 wurde Btrfs als Standarddateisystem f\u00fcr Fedora 33 ausgew\u00e4hlt.[33]Eigenschaften[edit]Implementiert[edit]Ab Version 5.0 des Linux-Kernels implementiert Btrfs die folgenden Funktionen:[34][35]Implementiert, aber nicht f\u00fcr die Produktion empfohlen[edit]Geplant, aber noch nicht umgesetzt[edit]2009 sollte Btrfs einen mit ZFS vergleichbaren Funktionsumfang anbieten, der von Sun Microsystems entwickelt wurde.[53] Nach der \u00dcbernahme von Sun durch Oracle im Jahr 2009 beschlossen Mason und Oracle, die Entwicklung von Btrfs fortzusetzen.[54]Klonen[edit]Btrfs bietet eine Klon Vorgang, der atomar einen Copy-on-Write-Snapshot einer Datei erstellt. Solche geklonten Dateien werden manchmal als bezeichnet reflinksim Lichte des vorgeschlagenen zugeh\u00f6rigen Linux-Kernel-Systemaufrufs.[55]Durch das Klonen erstellt das Dateisystem keinen neuen Link, der auf einen vorhandenen Inode verweist. Stattdessen wird ein neuer Inode erstellt, der zun\u00e4chst dieselben Festplattenbl\u00f6cke wie die Originaldatei verwendet. Infolgedessen funktioniert das Klonen nur innerhalb der Grenzen desselben Btrfs-Dateisystems. Seit Version 3.6 des Linux-Kernels kann es jedoch unter bestimmten Umst\u00e4nden die Grenzen von Subvolumes \u00fcberschreiten.[56][57] Die tats\u00e4chlichen Datenbl\u00f6cke werden nicht dupliziert. Gleichzeitig sind aufgrund der Copy-on-Write-Eigenschaft (CoW) von Btrfs \u00c4nderungen an den geklonten Dateien in der Originaldatei nicht sichtbar und umgekehrt.[58]Das Klonen sollte nicht mit festen Links verwechselt werden. Hierbei handelt es sich um Verzeichniseintr\u00e4ge, die mehrere Dateinamen mit tats\u00e4chlichen Dateien in einem Dateisystem verkn\u00fcpfen. W\u00e4hrend Hardlinks als unterschiedliche Namen f\u00fcr dieselbe Datei verwendet werden k\u00f6nnen, bietet das Klonen in Btrfs unabh\u00e4ngige Dateien, die anf\u00e4nglich alle ihre Festplattenbl\u00f6cke gemeinsam nutzen.[58][59]Die Unterst\u00fctzung f\u00fcr diese Btrfs-Funktion wurde in Version 7.5 der GNU-Coreutils \u00fcber die hinzugef\u00fcgt --reflink Option zum cp Befehl.[60][61]Neben dem Klonen von Daten (FICLONE) Unterst\u00fctzt Btrfs auch die Out-of-Band-Deduplizierung \u00fcber FIDEDUPERANGE. Mit dieser Funktion k\u00f6nnen zwei Dateien mit (sogar teilweise) identischen Daten gemeinsam genutzt werden.[62][9]Subvolumes und Schnappsch\u00fcsse[edit]Ein Btrfs-Subvolume kann als separater POSIX-Dateinamensraum betrachtet werden, der durch \u00dcbergabe separat gemountet werden kann subvol oder subvolid Optionen zum mount(8) N\u00fctzlichkeit. Der Zugriff kann auch durch Mounten des Subvolumes der obersten Ebene erfolgen. In diesem Fall sind Subvolumes als Unterverzeichnisse sichtbar und zug\u00e4nglich.[63]Subvolumes k\u00f6nnen an jeder Stelle innerhalb der Dateisystemhierarchie erstellt und auch verschachtelt werden. Verschachtelte Subvolumes werden als Unterverzeichnisse in ihren \u00fcbergeordneten Subvolumes angezeigt, \u00e4hnlich wie ein Subvolume der obersten Ebene seine Subvolumes als Unterverzeichnisse darstellt. Das L\u00f6schen eines Subvolumes ist erst m\u00f6glich, wenn alle darunter liegenden Subvolumes in der Verschachtelungshierarchie gel\u00f6scht wurden. Daher k\u00f6nnen Subvolumes der obersten Ebene nicht gel\u00f6scht werden.[64]Jedes Btrfs-Dateisystem verf\u00fcgt immer \u00fcber ein Standard-Subvolume, das anf\u00e4nglich als Subvolume der obersten Ebene festgelegt ist und standardm\u00e4\u00dfig bereitgestellt wird, wenn keine Auswahloption f\u00fcr das Subvolume \u00fcbergeben wird mount. Das Standard-Subvolumen kann nach Bedarf ge\u00e4ndert werden.[64]Ein Btrfs-Snapshot ist ein Subvolume, das seine Daten (und Metadaten) mithilfe der Copy-on-Write-Funktionen von Btrfs mit einem anderen Subvolume teilt. \u00c4nderungen an einem Snapshot sind im urspr\u00fcnglichen Subvolume nicht sichtbar. Sobald ein beschreibbarer Schnappschuss erstellt wurde, kann er als alternative Version des urspr\u00fcnglichen Dateisystems behandelt werden. Um beispielsweise einen Rollback zu einem Snapshot durchzuf\u00fchren, muss ein modifiziertes Original-Subvolume abgemeldet und der Snapshot an seiner Stelle bereitgestellt werden. Zu diesem Zeitpunkt kann auch das urspr\u00fcngliche Subvolumen gel\u00f6scht werden.[63]Aufgrund der CoW-Funktion (Copy-on-Write) von Btrfs werden Snapshots schnell erstellt, w\u00e4hrend anfangs nur sehr wenig Speicherplatz ben\u00f6tigt wird. Da ein Snapshot ein Subvolume ist, ist es auch m\u00f6glich, verschachtelte Snapshots zu erstellen. Das Aufnehmen von Schnappsch\u00fcssen eines Subvolumens ist kein rekursiver Prozess. Wenn also ein Snapshot eines Subvolumes erstellt wird, wird jedes Subvolume oder jeder Snapshot, den das Subvolume bereits enth\u00e4lt, einem leeren Verzeichnis mit demselben Namen im Snapshot zugeordnet.[63][64]Das Erstellen von Snapshots eines Verzeichnisses ist nicht m\u00f6glich, da nur Subvolumes Snapshots enthalten k\u00f6nnen. Es gibt jedoch eine Problemumgehung, die Reflinks umfasst, die \u00fcber Subvolumes verteilt sind: Es wird ein neues Subvolume erstellt, das subfluid\u00fcbergreifende Reflinks zum Inhalt des Zielverzeichnisses enth\u00e4lt. Wenn dies verf\u00fcgbar ist, kann ein Snapshot dieses neuen Volumes erstellt werden.[56]Ein Subvolume in Btrfs unterscheidet sich erheblich von einem herk\u00f6mmlichen logischen LVM-Volume (Logical Volume Manager). Bei LVM ist ein logisches Volume ein separates Blockger\u00e4t, ein Btrfs-Subvolume jedoch nicht, und es kann nicht auf diese Weise behandelt oder verwendet werden.[63] Das Erstellen von dd- oder LVM-Snapshots von btrfs f\u00fchrt zu Datenverlust, wenn entweder das Original oder die Kopie bereitgestellt wird, w\u00e4hrend sich beide auf demselben Computer befinden.[65]Senden empfangen[edit]Bei einem beliebigen Paar von Subvolumes (oder Snapshots) kann Btrfs einen bin\u00e4ren Unterschied zwischen ihnen erzeugen (mithilfe von btrfs send Befehl), der sp\u00e4ter wiedergegeben werden kann (mit btrfs receive), m\u00f6glicherweise auf einem anderen Btrfs-Dateisystem. Die Sende-Empfangs-Funktion erstellt (und wendet) effektiv eine Reihe von Daten\u00e4nderungen an, die zum Konvertieren eines Teilvolumens in ein anderes erforderlich sind.[46][66]Die Sende- \/ Empfangsfunktion kann mit regelm\u00e4\u00dfig geplanten Snapshots zum Implementieren einer einfachen Form der Dateisystemreplikation oder zum Durchf\u00fchren inkrementeller Sicherungen verwendet werden.[46][66]Kontingentgruppen[edit]EIN Quotengruppe (oder qgroup) legt eine Obergrenze f\u00fcr den Speicherplatz fest, den ein Subvolume oder Snapshot belegen kann. Ein neuer Snapshot verbraucht zun\u00e4chst kein Kontingent, da seine Daten f\u00fcr das \u00fcbergeordnete Element freigegeben werden. Danach fallen jedoch Geb\u00fchren f\u00fcr neue Dateien und Kopiervorg\u00e4nge f\u00fcr vorhandene Dateien an. Wenn Kontingente aktiv sind, wird mit jedem neuen Teilvolumen oder Snapshot automatisch eine Kontingentgruppe erstellt. Diese anf\u00e4nglichen Kontingentgruppen sind Bausteine, die gruppiert werden k\u00f6nnen (mit dem btrfs qgroup Befehl) in Hierarchien, um Kontingentpools zu implementieren.[48]Kontingentgruppen gelten nur f\u00fcr Subvolumes und Snapshots, w\u00e4hrend die Durchsetzung von Kontingenten f\u00fcr einzelne Unterverzeichnisse, Benutzer oder Benutzergruppen nicht m\u00f6glich ist. Problemumgehungen sind jedoch m\u00f6glich, indem f\u00fcr alle Benutzer oder Benutzergruppen, f\u00fcr deren Durchsetzung ein Kontingent erforderlich ist, unterschiedliche Subvolumes verwendet werden.In-Place-Konvertierung von ext2 \/ 3\/4 und ReiserFS[edit]Da nur sehr wenige Metadaten an festen Orten verankert sind, kann Btrfs sich verziehen, um ungew\u00f6hnlichen r\u00e4umlichen Layouts der Backend-Speicherger\u00e4te zu entsprechen. Das btrfs-convert Das Tool nutzt diese M\u00f6glichkeit, um eine direkte Konvertierung eines ext2 \/ 3\/4 oder ReiserFS-Dateisystems durchzuf\u00fchren, indem die entsprechenden Btrfs-Metadaten in seinem nicht zugewiesenen Speicherplatz verschachtelt werden, w\u00e4hrend eine unver\u00e4nderte Kopie des urspr\u00fcnglichen Dateisystems erhalten bleibt.[67]Bei der Konvertierung wird eine Kopie der gesamten ext2 \/ 3\/4 Metadaten erstellt, w\u00e4hrend die Btrfs-Dateien einfach auf dieselben Bl\u00f6cke verweisen, die von den ext2 \/ 3\/4 Dateien verwendet werden. Dadurch wird der Gro\u00dfteil der Bl\u00f6cke zwischen den beiden Dateisystemen gemeinsam genutzt, bevor die Konvertierung dauerhaft wird. Dank des Copy-on-Write-Charakters von Btrfs bleiben die Originalversionen der Dateidatenbl\u00f6cke bei allen Dateimodifikationen erhalten. Bis die Konvertierung dauerhaft wird, werden nur die Bl\u00f6cke, die in ext2 \/ 3\/4 als frei markiert wurden, verwendet, um neue Btrfs-\u00c4nderungen zu speichern. Dies bedeutet, dass die Konvertierung jederzeit r\u00fcckg\u00e4ngig gemacht werden kann (obwohl dadurch alle nach der Konvertierung vorgenommenen \u00c4nderungen gel\u00f6scht werden zu Btrfs).[67]Alle konvertierten Dateien sind im Standard-Subvolume des Btrfs verf\u00fcgbar und beschreibbar. Eine Datei mit geringer Dichte, die alle Verweise auf das urspr\u00fcngliche ext2 \/ 3\/4-Dateisystem enth\u00e4lt, wird in einem separaten Subvolume erstellt, das als schreibgesch\u00fctztes Disk-Image eigenst\u00e4ndig bereitgestellt werden kann, sodass auf das urspr\u00fcngliche und das konvertierte Dateisystem zugegriffen werden kann gleiche Zeit. Durch das L\u00f6schen dieser Datei mit geringer Dichte wird Speicherplatz frei und die Konvertierung wird dauerhaft.[67]Ab Juni 2015 und 4.x-Versionen der Linux-Kernel-Hauptlinie wurde die direkte ext3 \/ 4-Konvertierung als ungetestet angesehen und nur selten verwendet.[67] Das Feature wurde jedoch 2016 f\u00fcr von Grund auf neu geschrieben btrfs-progs 4.6.[44] und gilt seitdem als stabil.Die direkte Konvertierung von ReiserFS wurde im September 2017 mit Kernel 4.13 eingef\u00fchrt.[68]Union Montage- \/ Saatgutvorrichtungen[edit]Beim Erstellen eines neuen Btrfs kann ein vorhandenes Btrfs als schreibgesch\u00fctztes “Seed” -Dateisystem verwendet werden.[69] Das neue Dateisystem fungiert dann als Copy-on-Write-Overlay auf dem Seed, als eine Form der Union-Montage. Der Startwert kann sp\u00e4ter vom Btrfs getrennt werden. Zu diesem Zeitpunkt kopiert der Neuausgleich einfach alle Startdaten, auf die das neue Dateisystem noch verweist, bevor er getrennt wird. Mason hat vorgeschlagen, dass dies f\u00fcr ein Live-CD-Installationsprogramm n\u00fctzlich sein kann, das m\u00f6glicherweise von einem schreibgesch\u00fctzten Btrfs-Seed auf einer optischen Disc bootet, sich im Hintergrund neu auf die Zielpartition auf der Installationsdiskette verteilt, w\u00e4hrend der Benutzer weiter arbeitet, und dann auswirft die CD, um die Installation ohne Neustart abzuschlie\u00dfen.[70]Verschl\u00fcsselung[edit]In seinem Interview von 2009 erkl\u00e4rte Chris Mason, dass die Unterst\u00fctzung der Verschl\u00fcsselung f\u00fcr Btrfs geplant sei.[71] In der Zwischenzeit besteht eine Problemumgehung f\u00fcr die Kombination der Verschl\u00fcsselung mit Btrfs darin, einen Verschl\u00fcsselungsmechanismus f\u00fcr die gesamte Festplatte wie dm-crypt \/ LUKS auf den zugrunde liegenden Ger\u00e4ten zu verwenden und das Btrfs-Dateisystem auf dieser Ebene zu erstellen.Ab 2020[update] Die Entwickler arbeiteten daran, verschl\u00fcsselten Hash wie HMAC (SHA256) hinzuzuf\u00fcgen.[72]\u00dcberpr\u00fcfung und Wiederherstellung[edit]Dieser Abschnitt ist Die sachliche Richtigkeit kann durch veraltete Informationen beeintr\u00e4chtigt werden. Bitte aktualisieren Sie diesen Artikel, um aktuelle Ereignisse oder neu verf\u00fcgbare Informationen wiederzugeben. ((November 2016)Unix-Systeme verlassen sich traditionell auf “fsck” -Programme, um Dateisysteme zu \u00fcberpr\u00fcfen und zu reparieren. Diese Funktionalit\u00e4t wird \u00fcber die implementiert btrfs check Programm. Seit Version 4.0 gilt diese Funktionalit\u00e4t als relativ stabil. Ab August 2017 wird in der btrfs-Dokumentation jedoch empfohlen, diese erst zu verwenden, nachdem andere Wiederherstellungsmethoden ausprobiert wurden.[73]Es gibt ein anderes Tool namens btrfs-restoreDies kann verwendet werden, um Dateien aus einem nicht bereitstellbaren Dateisystem wiederherzustellen, ohne das fehlerhafte Dateisystem selbst zu \u00e4ndern (dh zerst\u00f6rungsfrei).[74]Bei normaler Verwendung ist Btrfs gr\u00f6\u00dftenteils selbstheilend und kann sich zum Zeitpunkt der Bereitstellung von abgebrochenen Wurzelb\u00e4umen erholen, da regelm\u00e4\u00dfig alle 30 Sekunden Daten in den permanenten Speicher gel\u00f6scht werden. Isolierte Fehler f\u00fchren daher dazu, dass beim n\u00e4chsten Mount maximal 30 Sekunden lang \u00c4nderungen am Dateisystem verloren gehen.[75] Dieser Zeitraum kann durch Angabe eines gew\u00fcnschten Werts (in Sekunden) f\u00fcr das ge\u00e4ndert werden commit Mount-Option.[76][77]Ohad Rodehs urspr\u00fcnglicher Vorschlag auf der USENIX 2007 stellte fest, dass B + -B\u00e4ume, die h\u00e4ufig als Datenstrukturen auf der Festplatte f\u00fcr Datenbanken verwendet werden, Snapshots auf der Basis von Copy-on-Write nicht effizient zulassen konnten, da ihre Blattknoten miteinander verkn\u00fcpft waren: Wenn ein Blatt kopiert wurde -auf schriftlich m\u00fcssten seine Geschwister und Eltern genauso sein wie ihr Geschwister und Eltern und so weiter, bis der gesamte Baum kopiert wurde. Er schlug stattdessen einen modifizierten B-Baum vor (der keine Blattverkn\u00fcpfung aufweist), mit einem Refcount, der jedem Baumknoten zugeordnet ist, aber in einer ad-hoc-freien Kartenstruktur gespeichert ist, und bestimmten Relaxationen der Ausgleichsalgorithmen des Baums, damit sie beim Schreiben kopiert werden freundlich. Das Ergebnis w\u00e4re eine Datenstruktur, die f\u00fcr einen Hochleistungsobjektspeicher geeignet ist, der Snapshots zum Kopieren beim Schreiben ausf\u00fchren und gleichzeitig eine gute Parallelit\u00e4t gew\u00e4hrleisten kann.[16]Sp\u00e4ter in diesem Jahr begann Chris Mason bei Oracle mit der Arbeit an einem Snapshot-f\u00e4higen Dateisystem, das diese Datenstruktur fast ausschlie\u00dflich verwendet – nicht nur f\u00fcr Metadaten und Dateidaten, sondern auch rekursiv, um die Speicherplatzzuweisung der B\u00e4ume selbst zu verfolgen. Auf diese Weise konnten alle Durchl\u00e4ufe und \u00c4nderungen \u00fcber einen einzigen Codepfad geleitet werden, f\u00fcr den Funktionen wie Copy-on-Write, Pr\u00fcfsumme und Spiegelung nur einmal implementiert werden mussten, um das gesamte Dateisystem zu unterst\u00fctzen.[53]Btrfs besteht aus mehreren Ebenen solcher B\u00e4ume, die alle dieselbe B-Tree-Implementierung verwenden. Die B\u00e4ume speichern Generika Artikel sortiert nach einem 136-Bit-Schl\u00fcssel. Die h\u00f6chstwertigen 64 Bit des Schl\u00fcssels sind eindeutig Objekt Identifikation. Die mittleren acht Bits sind ein Elementtypfeld: Ihre Verwendung ist fest in Code als Elementfilter in Baumsuchen verankert. Objekte kann mehrere Elemente verschiedener Typen haben. Die verbleibenden (niedrigstwertigen) 64 Bit werden typspezifisch verwendet. Daher werden Elemente f\u00fcr dasselbe Objekt im Baum nebeneinander angeordnet, gruppiert nach Typ. Durch Auswahl bestimmter Schl\u00fcsselwerte k\u00f6nnen Objekte au\u00dferdem Elemente desselben Typs in eine bestimmte Reihenfolge bringen.[53][3]Innenbaumknoten sind einfach flache Listen von Schl\u00fcssel-Zeiger-Paaren, wobei der Zeiger die logische Blocknummer eines untergeordneten Knotens ist. Blattknoten enthalten Artikelschl\u00fcssel, die in die Vorderseite des Knotens gepackt sind, und Artikeldaten, die in das Ende gepackt sind, wobei die beiden beim Auff\u00fcllen des Blattes aufeinander zu wachsen.[53]Dateisystembaum[edit]In jedem Verzeichnis werden Verzeichniseintr\u00e4ge als angezeigt Verzeichniselemente, deren niedrigstwertige Bits von Schl\u00fcsselwerten ein CRC32C-Hash ihres Dateinamens sind. Ihre Daten sind a Standortschl\u00fcsseloder der Schl\u00fcssel des Inode-Elements, auf das es zeigt. Verzeichniselemente zusammen k\u00f6nnen somit als Index f\u00fcr Pfad-zu-Inode-Suchvorg\u00e4nge fungieren, werden jedoch nicht f\u00fcr die Iteration verwendet, da sie nach ihrem Hash sortiert sind und diese effektiv zuf\u00e4llig permutieren. Dies bedeutet, dass Benutzeranwendungen, die Dateien in einem gro\u00dfen Verzeichnis durchlaufen und \u00f6ffnen, viel mehr Festplattensuchen zwischen nicht benachbarten Dateien generieren w\u00fcrden – ein bemerkenswerter Leistungsverlust in anderen Dateisystemen mit Verzeichnissen mit Hash-Reihenfolge wie ReiserFS,[78] ext3 (mit aktivierten Htree-Indizes[79]) und ext4, die alle TEA-Hash-Dateinamen haben. Um dies zu vermeiden, hat jeder Verzeichniseintrag eine Verzeichnisindexelement, dessen Schl\u00fcsselwert des Elements auf einen Verzeichnisz\u00e4hler festgelegt ist, der mit jedem neuen Verzeichniseintrag erh\u00f6ht wird. Die Iteration \u00fcber diese Indexelemente gibt somit Eintr\u00e4ge in ungef\u00e4hr derselben Reihenfolge zur\u00fcck, in der sie auf der Festplatte gespeichert sind.Dateien mit festen Links in mehreren Verzeichnissen haben mehrere Referenzelemente, eines f\u00fcr jedes \u00fcbergeordnete Verzeichnis. Dateien mit mehreren Hardlinks in der gleich Verzeichnis Packen Sie alle Dateinamen der Links in dasselbe Referenzelement. Dies war ein Konstruktionsfehler, der die Anzahl der Hardlinks im selben Verzeichnis auf so viele beschr\u00e4nkte, wie viele in einen einzelnen Baumblock passen konnten. (Bei einer Standardblockgr\u00f6\u00dfe von 4 KB, einer durchschnittlichen Dateinamenl\u00e4nge von 8 Byte und einem Header pro Dateiname von 4 Byte w\u00e4ren dies weniger als 350.) Anwendungen, bei denen mehrere Hardlinks mit demselben Verzeichnis stark genutzt wurden, z Es wurde beobachtet, dass Git, GNUS, GMame und BackupPC bei dieser Grenze versagen.[80] Das Limit wurde schlie\u00dflich entfernt[81] (und ab Oktober 2012 wurde zusammengelegt[82] bevorstehende Ver\u00f6ffentlichung in Linux 3.7) durch Einf\u00fchrung von Spillover erweiterte Referenzelemente um Hardlink-Dateinamen zu speichern, die sonst nicht passen.Ausma\u00dfe[edit]Dateidaten werden au\u00dferhalb des Baums in gespeichert Ausma\u00dfeDies sind zusammenh\u00e4ngende L\u00e4ufe von Datentr\u00e4gerdatenbl\u00f6cken. Umfangsbl\u00f6cke sind standardm\u00e4\u00dfig 4 KB gro\u00df, haben keine Header und enthalten nur (m\u00f6glicherweise komprimierte) Dateidaten. In komprimierten Bereichen werden einzelne Bl\u00f6cke nicht separat komprimiert. Vielmehr erstreckt sich der Komprimierungsstrom \u00fcber die gesamte Ausdehnung.Dateien haben Umfang Datenelemente um die Ausma\u00dfe zu verfolgen, die ihren Inhalt enthalten. Der Schl\u00fcsselwert des Elements ist der Startbyte-Offset der Ausdehnung. Dies erm\u00f6glicht eine effiziente Suche in gro\u00dfen Dateien mit vielen Ausdehnungen, da die korrekte Ausdehnung f\u00fcr einen bestimmten Dateiversatz mit nur einer Baumsuche berechnet werden kann.Snapshots und geklonte Dateien teilen sich Extents. Wenn ein kleiner Teil eines gro\u00dfen solchen Umfangs \u00fcberschrieben wird, kann das resultierende Copy-on-Write drei neue Bereiche erzeugen: einen kleinen mit den \u00fcberschriebenen Daten und zwei gro\u00dfe mit unver\u00e4nderten Daten auf beiden Seiten des \u00dcberschreibens. Um zu vermeiden, dass unver\u00e4nderte Daten neu geschrieben werden m\u00fcssen, kann stattdessen das Copy-on-Write erstellt werden Buchst\u00fctzenumfangoder Extents, die einfach Teile bestehender Extents sind. Umfangsdatenelemente erm\u00f6glichen dies, indem sie einen Versatz in den Umfang einbeziehen, den sie verfolgen: Elemente f\u00fcr Buchst\u00fctzen sind solche mit einem Versatz ungleich Null.[3]Umfang Zuordnungsbaum[edit]Das Extent Allocation Tree fungiert als Zuordnungszuordnung f\u00fcr das Dateisystem. Im Gegensatz zu anderen B\u00e4umen haben Elemente in diesem Baum keine Objekt-IDs. Sie repr\u00e4sentieren Regionen des Raums: Ihre Schl\u00fcsselwerte enthalten die Startvers\u00e4tze und L\u00e4ngen der Regionen, die sie repr\u00e4sentieren.Das Dateisystem unterteilt den zugewiesenen Speicherplatz in Blockgruppen Hierbei handelt es sich um Zuordnungsbereiche mit variabler Gr\u00f6\u00dfe, die abwechselnd Metadatenbereiche (Baumknoten) und Datenbereiche (Dateiinhalte) bevorzugen. Das Standardverh\u00e4ltnis von Daten zu Metadatenblockgruppen betr\u00e4gt 1: 2. Sie sollen Konzepte des Orlov-Blockzuweisers verwenden, um verwandte Dateien zusammen zuzuordnen und der Fragmentierung zu widerstehen, indem zwischen den Gruppen freier Speicherplatz gelassen wird. (Ext3-Blockgruppen haben jedoch feste Speicherorte, die aus der Gr\u00f6\u00dfe des Dateisystems berechnet werden, w\u00e4hrend die in Btrfs dynamisch sind und nach Bedarf erstellt werden.) Jede Blockgruppe ist mit a verkn\u00fcpft Blockgruppenelement. Inode-Elemente in der Dateisystemstruktur enthalten einen Verweis auf ihre aktuelle Blockgruppe.[3]Umfang Elemente einen R\u00fcckverweis auf den Baumknoten oder die Datei enthalten, die diesen Umfang einnehmen. Es kann mehrere R\u00fcckverweise geben, wenn der Umfang zwischen Snapshots geteilt wird. Wenn zu viele R\u00fcckverweise vorhanden sind, um in den Artikel zu passen, werden sie einzeln angezeigt Umfang Datenreferenzelemente. Baumknoten wiederum haben R\u00fcckverweise auf ihre enthaltenen B\u00e4ume. Auf diese Weise k\u00f6nnen Sie ermitteln, welche Bereiche oder Baumknoten sich in einem beliebigen Bereich des Raums befinden, indem Sie einen B-Tree-Bereichssuchvorgang f\u00fcr ein Paar von Offsets durchf\u00fchren, die diesen Bereich in Klammern setzen, und dann den R\u00fcckverweisen folgen. Zum Verschieben von Daten erm\u00f6glicht dies eine effiziente Aufw\u00e4rtsbewegung der verschobenen Bl\u00f6cke, um schnell alle Abw\u00e4rtsverweise auf diese Bl\u00f6cke zu finden und zu korrigieren, ohne das gesamte Dateisystem scannen zu m\u00fcssen. Auf diese Weise kann das Dateisystem seinen Speicher online effizient verkleinern, migrieren und defragmentieren.Der Extent-Zuordnungsbaum ist wie bei allen anderen B\u00e4umen im Dateisystem Copy-on-Write. Schreibvorg\u00e4nge in das Dateisystem k\u00f6nnen daher eine Kaskade verursachen, bei der ge\u00e4nderte Baumknoten und Dateidaten dazu f\u00fchren, dass neue Extents zugewiesen werden, wodurch sich der Extent-Baum selbst \u00e4ndert. Um das Erstellen einer R\u00fcckkopplungsschleife zu vermeiden, k\u00f6nnen Extent-Baumknoten, die sich noch im Speicher befinden, aber noch nicht auf der Festplatte festgeschrieben sind, an Ort und Stelle aktualisiert werden, um neue, beim Schreiben kopierte Extents widerzuspiegeln.Theoretisch macht der Extent-Zuordnungsbaum eine herk\u00f6mmliche Freiraum-Bitmap unn\u00f6tig, da der Extent-Zuordnungsbaum als B-Baum-Version eines BSP-Baums fungiert. In der Praxis wird jedoch ein speicherinterner rot-schwarzer Baum von Bitmaps in Seitengr\u00f6\u00dfe verwendet, um die Zuweisungen zu beschleunigen. Diese Bitmaps bleiben auf der Festplatte erhalten (ab Linux 2.6.37 \u00fcber das space_cache Mount-Option[83]) als besondere Ausma\u00dfe, die von Pr\u00fcfsummen und Copy-on-Write ausgenommen sind. Die Extent-Elemente, die diese Extents verfolgen, werden im Stammbaum gespeichert.Pr\u00fcfsummenbaum und Schrubben[edit]CRC-32C-Pr\u00fcfsummen werden sowohl f\u00fcr Daten als auch f\u00fcr Metadaten berechnet und als gespeichert Pr\u00fcfsummenelemente in einem Pr\u00fcfsummenbaum. Es ist Platz f\u00fcr 256 Bit Metadatenpr\u00fcfsummen und bis zu einem vollst\u00e4ndigen Knoten (ungef\u00e4hr 4 KB oder mehr) f\u00fcr Datenpr\u00fcfsummen. Btrfs enth\u00e4lt Bestimmungen f\u00fcr zus\u00e4tzliche Pr\u00fcfsummenalgorithmen, die in zuk\u00fcnftigen Versionen des Dateisystems hinzugef\u00fcgt werden sollen.[34][84]Es gibt ein Pr\u00fcfsummenelement pro zusammenh\u00e4ngendem Lauf zugeordneter Bl\u00f6cke, wobei Pr\u00fcfsummen pro Block Ende-zu-Ende in die Elementdaten gepackt werden. Wenn mehr Pr\u00fcfsummen vorhanden sind, als passen, werden sie in ein anderes Pr\u00fcfsummenelement in einem neuen Blatt verschoben. Wenn das Dateisystem beim Lesen eines Blocks eine Nicht\u00fcbereinstimmung der Pr\u00fcfsumme feststellt, versucht es zun\u00e4chst, eine gute Kopie dieses Blocks von einem anderen Ger\u00e4t abzurufen (oder zu erstellen) – wenn interne Spiegelungs- oder RAID-Techniken verwendet werden.[85][86]Btrfs kann eine Online-\u00dcberpr\u00fcfung des gesamten Dateisystems initiieren, indem ein Dateisystem-Scrub-Job ausgel\u00f6st wird, der im Hintergrund ausgef\u00fchrt wird. Der Scrub-Job \u00fcberpr\u00fcft das gesamte Dateisystem auf Integrit\u00e4t und versucht automatisch, alle auf dem Weg gefundenen fehlerhaften Bl\u00f6cke zu melden und zu reparieren.[85][87]Protokollbaum[edit]Eine fsync-Anforderung schreibt ge\u00e4nderte Daten sofort in einen stabilen Speicher. fsync-schwere Workloads (wie eine Datenbank oder eine virtuelle Maschine, deren Betriebssystem ausgef\u00fchrt wird fsyncs h\u00e4ufig) kann m\u00f6glicherweise eine Menge redundanter Schreib-E \/ A erzeugen, indem das Dateisystem gezwungen wird, wiederholt ge\u00e4nderte Teile von B\u00e4umen wiederholt zu kopieren und in den Speicher zu leeren. Um dies zu vermeiden, ein tempor\u00e4res Per-Subvolume Protokollbaum wird erstellt, um durch fsync ausgel\u00f6ste Copy-on-Writes zu protokollieren. Holzb\u00e4ume sind in sich geschlossen, verfolgen ihre eigenen Ausma\u00dfe und behalten ihre eigenen Pr\u00fcfsummenelemente. Ihre Elemente werden beim n\u00e4chsten vollst\u00e4ndigen Baum-Commit oder (falls es zu einem Systemabsturz kam) beim n\u00e4chsten Remount wiedergegeben und gel\u00f6scht.Chunk- und Ger\u00e4teb\u00e4ume[edit]Blockger\u00e4te sind unterteilt in physische Brocken von 256 MB oder mehr. Physische Bl\u00f6cke \u00fcber mehrere Ger\u00e4te hinweg k\u00f6nnen gespiegelt oder zu einem einzigen zusammengefasst werden logischer Teil. Diese logischen Bl\u00f6cke werden zu einem einzigen logischen Adressraum zusammengefasst, den der Rest des Dateisystems verwendet.Das St\u00fcck Baum Verfolgt dies, indem jedes Ger\u00e4t darin als gespeichert wird Ger\u00e4teelement und logische St\u00fccke als Chunk-Kartenelemente, die eine Vorw\u00e4rtszuordnung von logischen zu physischen Adressen bereitstellen, indem ihre Offsets in den niedrigstwertigen 64 Bit ihres Schl\u00fcssels gespeichert werden. Es gibt verschiedene Arten von Chunk-Kartenelementen:Single1 logischer zu 1 physischen Blockdup1 logischer Block zu 2 physischen Bl\u00f6cken auf 1 Blockger\u00e4traid0N logische Bl\u00f6cke zu N \u2265 2 physischen Bl\u00f6cken \u00fcber N \u2265 2 Blockger\u00e4teraid11 logischer Block zu 2 physischen Bl\u00f6cken \u00fcber 2 von N\u22652 Blockger\u00e4ten,[88] im Gegensatz zu herk\u00f6mmlichem RAID 1 mit N physischen Bl\u00f6ckenraid1c31 logischer Block zu 3 physischen Bl\u00f6cken von N\u22653 Blockger\u00e4tenraid1c41 logischer Block zu 4 physischen Bl\u00f6cken von N \u2265 4 Blockger\u00e4tenraid5N (f\u00fcr N \u2265 2) logische Bl\u00f6cke zu N + 1 physischen Bl\u00f6cken \u00fcber N + 1 Blockger\u00e4te, wobei 1 physischer Block als Parit\u00e4t verwendet wirdraid6N (f\u00fcr N \u2265 2) logische Bl\u00f6cke zu N + 2 physischen Bl\u00f6cken \u00fcber N + 2 Blockger\u00e4te, wobei 2 physische Bl\u00f6cke als Parit\u00e4t verwendet werdenN. ist die Anzahl der Blockger\u00e4te, die noch freien Speicherplatz haben, wenn der Block zugewiesen wird. Wenn N f\u00fcr die ausgew\u00e4hlte Spiegelung \/ Zuordnung nicht gro\u00df genug ist, ist im Dateisystem praktisch kein Speicherplatz mehr vorhanden.Umzugsb\u00e4ume[edit]Bei Defragmentierungs-, Schrumpfungs- und Neuausgleichsvorg\u00e4ngen m\u00fcssen die Ausma\u00dfe verschoben werden. Durch einfaches Kopieren beim Schreiben des Verschiebungsumfangs wird jedoch die Freigabe zwischen Snapshots unterbrochen und Speicherplatz belegt. Um die Freigabe zu erhalten, wird ein Update-and-Swap-Algorithmus mit einem speziellen Algorithmus verwendet Umzugsbaum dient als Arbeitsbereich f\u00fcr betroffene Metadaten. Der Umfang der Verlagerung wird zun\u00e4chst an den Bestimmungsort kopiert. Wenn Sie dann die R\u00fcckreferenzen im Dateisystembaum des betroffenen Subvolumes nach oben verfolgen, werden die Metadaten, die auf den alten Bereich verweisen, schrittweise aktualisiert, um auf den neuen zu verweisen. Alle neu aktualisierten Elemente werden im Umzugsbaum gespeichert. Sobald die Aktualisierung abgeschlossen ist, werden Elemente im Umzugsbaum mit ihren Gegenst\u00fccken im betroffenen Subvolume ausgetauscht und der Umzugsbaum wird verworfen.[89]Superblock[edit]Alle B\u00e4ume des Dateisystems – einschlie\u00dflich des Blockbaums selbst – werden in Bl\u00f6cken gespeichert, was beim Mounten des Dateisystems zu einem potenziellen Bootstrapping-Problem f\u00fchrt. Um in einen Mount zu booten, wird eine Liste der physischen Adressen von Chunks, die zu den Chunk- und Root-B\u00e4umen geh\u00f6ren, in der gespeichert Superblock.[90]Superblock-Spiegel werden an festen Orten aufbewahrt:[91] 64 KiB in jedes Blockger\u00e4t, mit zus\u00e4tzlichen Kopien bei 64 MiB, 256 GiB und 1 PiB. Wenn ein Superblock-Spiegel aktualisiert wird, ist es Generationsnummer wird erh\u00f6ht. Beim Mounten wird die Kopie mit der h\u00f6chsten Generationsnummer verwendet. Alle Superblock-Spiegel werden im Tandem aktualisiert, mit Ausnahme des SSD-Modus, bei dem die Aktualisierungen zwischen den Spiegeln abwechseln, um einen gewissen Verschlei\u00dfausgleich zu erzielen.Kommerzielle Unterst\u00fctzung[edit]Unterst\u00fctzt[edit]Nicht l\u00e4nger unterst\u00fctzt[edit]Siehe auch[edit]^ ein b Dies ist die Gr\u00f6\u00dfenbeschr\u00e4nkung der Btrfs auf der Festplatte. Das Limit wird auf 64-Bit-Systemen aufgrund der internen Limits des Linux-Kernels auf 8 EiB und auf 32-Bit-Systemen auf 2 EiB reduziert, sofern es sich nicht um Kernel handelt CONFIG_LBD Die Konfigurationsoption (verf\u00fcgbar seit der Kernel-Serie 2.6.x) ist aktiviert, um diese Kernel-Grenzwerte zu entfernen.[101][102]^ Jedes Element in Btrfs hat eine 64-Bit-Kennung, was bedeutet, dass die meisten Dateien, die in einem Btrfs-Dateisystem vorhanden sein k\u00f6nnen, 2 sind64.Verweise[edit]^ “Btrfs Contributors at kernel.org”. kernel.org. 18. Januar 2016. Abgerufen 20. Januar 2016.^ ein b “Suse-Dokumentation: Speicherverwaltungshandbuch – Unterst\u00fctzung gro\u00dfer Dateien unter Linux”. SUSE. Abgerufen 12. August 2015.^ ein b c d Mason, Chris. “Btrfs Design”. Btrfs Wiki. Abgerufen 8. November 2011.^ Jonathan Corbet (26. Juli 2010). “Dateierstellungszeiten”. LWN.net. Abgerufen 15. August 2015.^ “Format auf der Festplatte – btrfs Wiki”. btrfs.wiki.kernel.org.^ ein b “btrfs Wiki”. kernel.org. Abgerufen 19. April 2015.^ ein b “Linux_4.14 – Linux Kernel Newbies”. kernelnewbies.org.^ ein b c d McPherson, Amanda (22. Juni 2009). “Ein Gespr\u00e4ch mit Chris Mason \u00fcber BTRfs: das Dateisystem der n\u00e4chsten Generation f\u00fcr Linux”. Linux Foundation. Archiviert von das Original am 27. Juni 2012. Abgerufen 2009-09-01.^ ein b c “Deduplizierung”. kernel.org. Abgerufen 19. April 2015.^ “ReactOS 0.4.1 ver\u00f6ffentlicht”. reactos.org. Abgerufen 11. August 2016.^ http:\/\/streaming.oracle.com\/ebn\/podcasts\/media\/20209545_Oracle-Linux-7.mp4^ ein b Henson, Valerie (31. Januar 2008). Chunkfs: Schnelle \u00dcberpr\u00fcfung und Reparatur des Dateisystems. Melbourne, Australien. Ereignis tritt um 18m 49s auf. Abgerufen 5. Februar 2008. Es hei\u00dft Butter FS oder B-Tree FS, aber alle coolen Kids sagen Butter FS^ “Linux-Kernel-Commit zur \u00c4nderung des Stabilit\u00e4tsstatus in fs \/ btrfs \/ Kconfig”. Abgerufen 8. Februar 2019.^ “22.2 \u00dcber das Btrfs-Dateisystem”. web.archive.org. 28. April 2018. Abgerufen 27. Januar 2021.^ Kerner, Sean Michael (30. Oktober 2008). “Ein besseres Dateisystem f\u00fcr Linux?”. InternetNews.com. Archiviert vom Original am 8. April 2011. Abgerufen 27. August 2020.^ ein b Rodeh, Ohad (2007). B-B\u00e4ume, Schatten und Klone (PDF). USENIX Linux Storage & Filesystem Workshop. Ebenfalls Rodeh, Ohad (2008). “B-B\u00e4ume, Schatten und Klone”. ACM-Transaktionen im Speicher. 3 (4): 1\u201327. doi:10.1145 \/ 1326542.1326544.^ ein b “F\u00fchrende Btrfs-Dateisystementwickler treten Facebook bei”. phoronix.com. Abgerufen 19. April 2015.^ Paul, Ryan (13. April 2009). “Diskussionsteilnehmer denken beim Linux Collaboration Summit \u00fcber den Kernel nach”. Ars Technica. Archiviert von das Original am 17. Juni 2012. Abgerufen 2009-08-22. ^ Ts’o, Theodore (1. August 2008). “Re: reiser4 f\u00fcr 2.6.27-rc1”. Linux Kernel (Mailingliste). Abgerufen 31. Dezember 2010.^ “Entwicklungszeitleiste”. Btrfs Wiki. 11. Dezember 2008. Archiviert von das Original am 20. Dezember 2008. Abgerufen 5. November 2011.^ Wuelfing, Britta (12. Januar 2009). “Kernel 2.6.29: Corbet sagt Btrfs Next Generation Filesystem”. Linux Magazin. Abgerufen 5. November 2011.^ ein b “Red Hat Enterprise Linux 6-Dokumentation: Technologievorschau”. Archiviert von das Original am 28. Mai 2011. Abgerufen 21. Januar 2011.^ “Fedora Weekly News Issue 276”. 25. Mai 2011.^ “Debian 6.0” Squeeze “ver\u00f6ffentlicht” (Pressemitteilung). Debian. 6. Februar 2011. Abgerufen 8. Februar 2011. Unterst\u00fctzung wurde auch f\u00fcr die Dateisysteme ext4 und Btrfs hinzugef\u00fcgt …^ ein b “Linux Kernel 3.0, Abschnitt 1.1. Btrfs: Automatische Defragmentierung, Scrubbing, Leistungsverbesserungen”. kernelnewbies.org. 21. Juli 2011. Abgerufen 5. April 2016.^ Leemhuis, Thorsten (21. Juni 2011). “Kernel Log: Coming in 3.0 (Teil 2) – Dateisysteme”. Das H \u00f6ffnen. Abgerufen 8. November 2011.^ Varghese, Sam. “iTWire”. ITWire.com. Abgerufen 19. April 2015.^ “Unbreakable Enterprise Kernel Release 2 wurde ver\u00f6ffentlicht”. Abgerufen 8. Mai 2019.^ “SLES 11 SP2 Versionshinweise”. 21. August 2012. Abgerufen 29. August 2012.^ “Versionshinweise zu SUSE Linux Enterprise Server 12”. 5. November 2015. Abgerufen 20. Januar 2016.^ ein b “Versionshinweise zu Red Hat Enterprise Linux 7.4, Kapitel 53: Veraltete Funktionen”. 1. August 2017. Archiviert von das Original am 8. August 2017. Abgerufen 15. August 2017.^ ein b “\u00dcberlegungen zur Einf\u00fchrung von RHEL 8”. Produktdokumentation f\u00fcr Red Hat Enterprise Linux 8. roter Hut. Abgerufen 9. Mai 2019.^ “Btrfs kommt zu Fedora 33”. Fedora Magazine. 24. August 2020. Abgerufen 25. August 2020.^ ein b c “Btrfs Wiki: Funktionen”. btrfs.wiki.kernel.org. 27. November 2013. Abgerufen 27. November 2013.^ “Btrfs Wiki: Changelog”. btrfs.wiki.kernel.org. 29. Mai 2019. Abgerufen 27. November 2013.^ “Manpage btrfs-check”.^ “Verwenden von Btrfs mit mehreren Ger\u00e4ten”. kernel.org. 7. November 2013. Abgerufen 20. November 2013.^ “Kompression”. kernel.org. 25. Juni 2013. Abgerufen 1. April 2014.^ “Btrfs: Unterst\u00fctzung f\u00fcr Inode-Eigenschaften hinzuf\u00fcgen”. kernel.org. 28. Januar 2014. Abgerufen 1. April 2014.^ “btrfs: Readonly Snapshots”. Abgerufen 12. Dezember 2011.^ “Sparen Sie Speicherplatz unter Linux, indem Sie Dateien auf Btrfs und OCFS2 klonen.”. Abgerufen 1. August 2017.^ “Wiki FAQ: Welche Pr\u00fcfsummenfunktion verwendet Btrfs?”. Btrfs Wiki. Abgerufen 15. Juni 2009.^ “Btrfs Hilights in 5.5: Neue Hashes”. Abgerufen 29. August 2020.^ ein b “Btrfs Progs Release 4.6”. Abgerufen 1. August 2017.^ Mason, Chris (12. Januar 2009). “Btrfs Changelog”. Archiviert von das Original am 29. Februar 2012. Abgerufen 12. Februar 2012.^ ein b c Corbet, Jonathan (11. Juli 2012), Btrfs senden \/ empfangen, LWN.netabgerufen 14. November 2012^ “Btrfs Wiki: Inkrementelle Sicherung”. 27. Mai 2013. Abgerufen 27. November 2013.^ ein b Jansen, Arne (2011), Btrfs-Subvolume-Kontingentgruppen (PDF), Strato AGabgerufen 14. November 2012^ btrfs (16. Juli 2016). “RAID 5\/6”. kernel.org. Abgerufen 1. Oktober 2016.^ Corbet, Jonathan (2. November 2011). “Ein btrfs-Update auf der LinuxCon Europe”. Abgerufen 12. Februar 2012.^ Mazzoleni, Andrea. “btrfs: lib: raid: Neue RAID-Bibliothek, die bis zu sechs Parit\u00e4ten unterst\u00fctzt”. Abgerufen 16. M\u00e4rz 2014.^ “Btrfs Projektideen”. 21. Februar 2013. Abgerufen 21. Februar 2013.^ ein b c d Aurora, Valerie (22. Juli 2009). “Eine kurze Geschichte von btrfs”. LWN.net. Abgerufen 5. November 2011.^ Hilzinger, Marcel (22. April 2009). “Zukunft von Btrfs gesichert”. Linux Magazin. Abgerufen 5. November 2011.^ Corbet, Jonathan (5. Mai 2009). “Die zwei Seiten von reflink ()”. LWN.net. Abgerufen 17. Oktober 2013.^ ein b “UseCases – btrfs Dokumentation”. kernel.org. Abgerufen 4. November 2013.^ “btrfs: Erlaube das Klonen von Dateien mit mehreren Subvolumes”. github.com. Abgerufen 4. November 2013.^ ein b Lenz Grimmer (31. August 2011). “Sparen Sie Speicherplatz unter Linux, indem Sie Dateien auf Btrfs und OCFS2 klonen.”. oracle.com. Abgerufen 17. Oktober 2013.^ “Symlinks-Referenznamen, Hardlinks-Referenz-Metadaten und Reflinks-Referenzdaten”. pixelbeat.org. 27. Oktober 2010. Abgerufen 17. Oktober 2013.^ Meyering, Jim (20. August 2009). “GNU coreutils NEWS: Bemerkenswerte \u00c4nderungen in Release 7.5”. savannah.gnu.org. Abgerufen 30. August 2009.^ Scrivano, Giuseppe (1. August 2009). “cp: akzeptiere die Option –reflink”. savannah.gnu.org. Abgerufen 2. November 2009.^ ioctl_fideduperange(2) – Linux-Programmierhandbuch – Systemaufrufe^ ein b c d “SysadminGuide – Btrfs-Dokumentation”. kernel.org. Abgerufen 31. Oktober 2013.^ ein b c “5.6 Erstellen von Subvolumes und Snapshots [needs update]””. oracle.com. 2013. Abgerufen 31. Oktober 2013.^ “Gotchas – btrfs Wiki”. btrfs.wiki.kernel.org.^ ein b “5.7 Verwenden der Sende- \/ Empfangsfunktion”. oracle.com. 2013. Abgerufen 31. Oktober 2013.^ ein b c d Mason, Chris (25. Juni 2015). “Konvertierung von Ext3 (Btrfs-Dokumentation)”. kernel.org. Abgerufen 22. April 2016.^ “btrfs-convert (8) Handbuchseite”. Abgerufen 24. April 2018.^ “Seed-Ger\u00e4t”.^ Mason, Chris (5. April 2012), Btrfs-Dateisystem: Status und neue Funktionen, Linux Foundationabgerufen 16. November 2012[permanent dead link]^ McPherson, Amanda (22. Juni 2009). “Ein Gespr\u00e4ch mit Chris Mason \u00fcber BTRfs: das Dateisystem der n\u00e4chsten Generation f\u00fcr Linux”. Linux Foundation. Archiviert von das Original am 27. Juni 2012. Abgerufen 9. Oktober 2014. In zuk\u00fcnftigen Versionen planen wir, Online-Fsck, Deduplizierung, Verschl\u00fcsselung und andere Funktionen hinzuzuf\u00fcgen, die schon lange auf den Wunschzettel von Administratoren stehen.^ Sterba, David. “Authentifizierte Dateisysteme mit HMAC (SHA256)”. Lore.Kernel.org. Abgerufen 25. April 2020.^ “Btrfsck – btrfs Wiki”. btrfs.wiki.kernel.org.^ “Wiederherstellen – btrfs Wiki”. btrfs.wiki.kernel.org.^ “Problem FAQ – btrfs Wiki”. kernel.org. 31. Juli 2013. Abgerufen 16. Januar 2014.^ “kernel \/ git \/ torvalds \/ linux.git: Dokumentation: Dateisysteme: Hinzuf\u00fcgen neuer btrfs-Mount-Optionen (Linux-Kernel-Quellbaum)”. kernel.org. 21. November 2013. Abgerufen 6. Februar 2014.^ “Mount-Optionen – btrfs Wiki”. kernel.org. 12. November 2013. Abgerufen 16. Januar 2014.^ Reiser, Hans (7. Dezember 2001). “Re: Ext2-Verzeichnisindex: ALS-Papier und Benchmarks”. ReiserFS-Entwickler-Mailingliste. Abgerufen 28. August 2009.^ Mason, Chris. “Acp”. Pers\u00f6nliche Oracle-Webseite. Abgerufen 5. November 2011.^ “Hard Link Limitation”. kerneltrap.org. 8. August 2010. Abgerufen 14. November 2011.^ Fasheh, Mark (9. Oktober 2012). “btrfs: erweiterte Inode-Refs”. Archiviert von das Original am 15. April 2013. Abgerufen 7. November 2012.^ Torvalds, Linus (10. Oktober 2012). “Pull btrfs Update von Chris Mason”. git.kernel.org. Archiviert von das Original am 15. April 2013. Abgerufen 7. November 2012.^ Larabel, Michael (24. Dezember 2010). “Benchmarks der Btrfs Space Cache Option”. Phoronix. Abgerufen 16. November 2012.^ “FAQ – btrfs Wiki: Welche Pr\u00fcfsummenfunktion verwendet Btrfs?”. Das btrfs-Projekt. Abgerufen 22. November 2020.^ ein b Bierman, Margaret; Grimmer, Lenz (August 2012). “Wie ich die erweiterten Funktionen von Btrfs verwende”. Abgerufen 20. September 2013.^ Salter, Jim (15. Januar 2014). “Bitrot and Atomic COWs: In” Next-Gen “-Dateisystemen”. Ars Technica. Abgerufen 15. Januar 2014.^ Coekaerts, Wim (28. September 2011). “Btrfs Scrub – Korrigieren Sie bitte Korruptionen mit Spiegelkopien!”. Abgerufen 20. September 2013.^ “Manpage \/ MKFS.BTRFS – BTRFS Wiki”.^ Mason, Chris; Rodeh, Ohad; Bacik, Josef (9. Juli 2012), BTRFS: Das Linux B-Tree-Dateisystem (PDF), IBM Researchabgerufen 12. November 2012^ Mason, Chris (30. April 2008). “Unterst\u00fctzung f\u00fcr mehrere Ger\u00e4te”. Btrfs Wiki. Archiviert von das Original am 20. Juli 2011. Abgerufen 5. November 2011.^ Bartell, Sean (20. April 2010). “Re: Wiederherstellen der BTRFS-Partition”. linux-btrfs (Mailingliste).^ “Fedora 33 ist offiziell hier!”. 27. Oktober 2020. Abgerufen 28. Oktober 2020.^ “Oracle unterst\u00fctzt jetzt Btrfs RAID5 \/ 6 auf seinem unzerbrechlichen Unternehmenskern – Phoronix”. Phoronix.com.^ “Verwalten von Btrfs in Oracle Linux 8”. docs.oracle.com.^ “SUSE bekr\u00e4ftigt die Unterst\u00fctzung f\u00fcr Btrfs [LWN.net]””. LWN.net.^ “Versionshinweise | SUSE Linux Enterprise Server 15 GA”. Suse.com.^ “DiskStation Manager – Knowledge Base | Synology Inc”. Synology.com.^ “Unterst\u00fctzung f\u00fcr ReactOS-Dateisysteme”. reactos.org\/wiki\/.^ “TrBtrfs ist in RHEL | Hacker News veraltet”. news.ycombinator.com.^ “Red Hat scheint ihre Btrfs-Hoffnungen aufzugeben – Phoronix”. www.phoronix.com.^ Andreas Jaeger (15. Februar 2005). “Unterst\u00fctzung f\u00fcr gro\u00dfe Dateien unter Linux”. users.suse.com. Abgerufen 12. August 2015.^ “Hilfe zur Linux-Kernelkonfiguration f\u00fcr CONFIG_LBD in 2.6.29 auf x86”. kernel.xc.net. Archiviert von das Original am 6. September 2015. Abgerufen 12. August 2015.Externe Links[edit] (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki16\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki16\/2021\/01\/27\/btrfs-wikipedia\/#breadcrumbitem","name":"Btrfs – Wikipedia"}}]}]