Zum Inhalt springen

„Reiser File System“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Änderungen von 213.143.122.34 (Diskussion) wurden auf die letzte Version von Worel zurückgesetzt
Ducki122 (Diskussion | Beiträge)
K Tippfehler korrigiert
Markierungen: Mobile Bearbeitung Bearbeitung von einer mobilen Anwendung Bearbeitung mit Android-App App-Bearbeitung im Quelltextmodus
 
(33 dazwischenliegende Versionen von 30 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox Dateisystem
{{Infobox Dateisystem
| name= ReiserFS
| name= ReiserFS
| developer= [[Namesys]] ([[Hans Reiser (Entwickler)|Hans Reiser]])
| developer= [[Namesys]] ([[Hans Reiser (Informatiker)|Hans Reiser]])
| full_name= Reiser File System
| full_name= Reiser File System
| introduction_date=
| introduction_date=
| introduction_os= [[Linux]] 2.4.1
| introduction_os= [[Linux]] 2.4.1
| partition_id=
| partition_id=
| directory_struct= [[B⁺-Baum]] (ReiserFS 1-3) [[B*-Baum]] (Reiser4)
| directory_struct= [[B⁺-Baum]] (ReiserFS 1-3) [[B*-Baum]] (Reiser4)
| file_struct= Bitmap[http://namesys.com/X0reiserfs.html#nodelayout]
| file_struct= Bitmap<ref>{{Webarchiv |url=http://namesys.com/X0reiserfs.html#nodelayout |text=ReiserFS – Node Layout |wayback=20060614084322}}</ref>
| bad_blocks_struct=
| bad_blocks_struct=
| max_file_size= 2<sup>31</sup> 1 Byte (Version 3.5) <br /> 2<sup>60</sup> Byte <small>(1 [[Binärpräfix|EiB]])</small> (Version 3.6)
| max_file_size= 2<sup>31</sup> Byte <small>(2 [[Binärpräfix|GiB]])</small> (Version 3.5)<br /> 2<sup>60</sup> Byte <small>(1 [[Binärpräfix|EiB]])</small> (Version 3.6)
| max_files_no= 2<sup>32</sup> − 3
| max_files_no= 2<sup>32</sup> − 3
| max_filename_size= Blockgröße − 64 (bei einer Blockgröße von 4 KB ergeben sich 4032 Bytes)
| max_filename_size= Blockgröße − 64 (bei einer Blockgröße von 4&nbsp;KB ergeben sich 4032 Bytes)
| max_volume_size=
| max_volume_size=
| filename_character_set=
| filename_character_set=
| dates_recorded=
| dates_recorded=
| date_range=
| date_range=
| forks_streams=
| forks_streams=
| attributes=
| attributes=
| file_system_permissions=
| file_system_permissions=
| compression=
| compression=
| encryption=
| encryption=
| OS= Linux, BSD
| OS= Linux, BSD
}}
}}


'''ReiserFS''' ist ein Mehrzweck-[[Dateisystem]], das von einer Entwicklergruppe um [[Hans Reiser (Entwickler)|Hans Reiser]] in der ihm gehörenden Firma [[Namesys]] ab 2001 entwickelt und realisiert wurde. Das Reiser File System unterliegt der [[GNU General Public License|General Public License]]. Die Entwicklung der Version 3 wurde von [[MP3.com]] und der [[OpenSUSE|SuSE Linux GmbH]] unterstützt, die Version 4 vor allem von der [[Defense Advanced Research Projects Agency|DARPA]] und [[Linspire]].
'''ReiserFS''' ist ein Mehrzweck-[[Dateisystem]], das von einer Entwicklergruppe um [[Hans Reiser (Informatiker)|Hans Reiser]] in der ihm gehörenden Firma [[Namesys]] ab 2001 entwickelt und realisiert wurde. Das Reiser File System unterliegt der [[GNU General Public License|General Public License]]. Die Entwicklung der Version 3 wurde von [[MP3.com]] und der [[OpenSUSE|SuSE Linux GmbH]] unterstützt, die Version 4 vor allem von der [[Defense Advanced Research Projects Agency|DARPA]] und [[Linspire]].


ReiserFS war das erste [[Journaling-Dateisystem]], das im [[Linux (Kernel)|Linux-Kernel]] standardmäßig (ab Kernel-Version 2.4.1) enthalten war. Das Dateisystem in Version 3 wurde schließlich mit Kernel-Version 6.13 nach rund 23 Jahren wieder aus den Kernel-[[Quelltext|Quellen]] entfernt,<ref>{{Internetquelle |autor=Michael Larabel |url=https://www.phoronix.com/news/ReiserFS-Deleted-Linux-6.13 |titel=ReiserFS Has Been Deleted From The Linux Kernel |werk=phoronix.com |datum=2024-11-21 |sprache=en |abruf=2024-11-25 |zitat=ReiserFS was merged 23 years ago with Linux 2.4.1 and is now gone with Linux 6.13…}}</ref> nachdem es bereits seit Linux 5.18 als veraltet ({{enS|deprecated}}) markiert gewesen war.<ref>{{Internetquelle |autor=Oliver Müller |url=https://www.heise.de/news/Linux-5-18-kommt-als-kleine-Revolution-7121451.html?seite=all |titel=Linux 5.18 kommt als „kleine Revolution“ |werk=[[heise online]] |datum=2022-05-24 |abruf=2022-05-25}}</ref> Für [[FreeBSD]] gibt es eine experimentelle Unterstützung, bisher nur für Leseoperationen. Kommerzielle Treiber gibt es auch für das Betriebssystem [[Microsoft Windows|Windows]] von [[Microsoft]]. Es wurde im Wesentlichen für [[Logical Volume Manager|Logical Volumes]] oder [[RAID]]-Systeme eingesetzt.
ReiserFS war das erste [[Journaling-Dateisystem]], das im [[Linux (Kernel)|Linux-Kernel]] standardmäßig (ab Kernel-Version 2.4.1) enthalten war. Es wird im Wesentlichen für [[Logical Volume Manager|Logical Volumes]] oder [[RAID]]-Systeme eingesetzt.


Reiser4 und das noch experimentelle Reiser5 werden „{{lang|en|out-of-tree}}“ für den Linux-Kernel entwickelt und müssen jeweils für neuere Versionen des Kernels angepasst werden.<ref>{{Internetquelle |autor=Michael Larabel |url=https://www.phoronix.com/review/reiser4-linux-417 |titel=Reiser4 File-System Benchmarks With Linux 4.17 |werk=phoronix.com |datum=2018-07-02 |sprache=en |abruf=2024-11-25 |zitat=Reiser4 remains out-of-tree and there are no indications it's going to be mainlined anytime soon, if ever. While that's the case, there are still a small number of users and developers relying upon this next-generation successor to ReiserFS. The Reiser4 kernel code continues to be re-based against new upstream kernel branches and does occasionally see new features/improvements added in the process.}}</ref><ref>{{Internetquelle |url=https://reiser4.wiki.kernel.org/index.php/Main_Page |titel=Reiser4 FS Wiki |abruf=2019-10-09}}</ref><ref>{{Internetquelle |url=https://sourceforge.net/projects/reiser4/files/reiser4-for-linux-5.x/ |titel=Reiser4 file system for Linux OS – Browse /reiser4-for-linux-5.x at SourceForge.net |abruf=2019-10-09}}</ref><ref>{{Internetquelle |autor=Michael Larabel |url=https://www.phoronix.com/news/Reiser4-Reiser5-Linux-5.13 |titel=Reiser4/Reiser5 File-System Driver Updated For Linux 5.13 |werk=phoronix.com |datum=2021-08-23 |sprache=en |abruf=2024-11-25}}</ref>
Zurzeit wird ReiserFS in der Version 3 vom Linux-Kernel vollständig unterstützt. Für [[FreeBSD]] gibt es eine experimentelle Unterstützung, bisher nur für Leseoperationen. Kommerzielle Treiber gibt es auch für die Betriebssysteme von [[Microsoft]].


== ReiserFS, Versionen 1 und 2 ==
== ReiserFS, Versionen 1 und 2 ==

Das ReiserFS basiert auf der von [[Rudolf Bayer (Informatiker)|Rudolf Bayer]] entwickelten Datenstruktur des [[B+-Baum|B<sup>+</sup>-Baums]]. Das gilt für die Versionen 1 bis 3.
Das ReiserFS basiert auf der von [[Rudolf Bayer (Informatiker)|Rudolf Bayer]] entwickelten Datenstruktur des [[B+-Baum|B<sup>+</sup>-Baums]]. Das gilt für die Versionen 1 bis 3.


== ReiserFS, Version 3 ==
== ReiserFS, Version 3 ==

In Version 3 wurde dem ReiserFS ein Journal hinzugefügt. Ursprünglich war ein Nachteil von ReiserFS gegenüber einigen anderen Journaling-Systemen, dass das Journaling nur für die [[Metadaten|Metainformationen]], d.&nbsp;h. für die [[Verzeichnis]]se und Verwaltungssektoren, nicht jedoch für die [[Nutzdaten]] in den Dateien selbst angewendet wurde. Dies wurde im 2.6er Kernel behoben.
In Version 3 wurde dem ReiserFS ein Journal hinzugefügt. Ursprünglich war ein Nachteil von ReiserFS gegenüber einigen anderen Journaling-Systemen, dass das Journaling nur für die [[Metadaten|Metainformationen]], d.&nbsp;h. für die [[Verzeichnis]]se und Verwaltungssektoren, nicht jedoch für die [[Nutzdaten]] in den Dateien selbst angewendet wurde. Dies wurde im 2.6er Kernel behoben.


== Reiser4 ==
== Reiser4 ==
Reiser4 ist vollständig neu entwickelt und sollte nicht mit dem alten ReiserFS verwechselt werden. Daher wird es nicht als „ReiserFS 4“ vertrieben. Es wird eine Abwandlung der [[B*-Baum]]-Struktur verwendet, sogenannte ''Dancing Trees''. Der Hauptunterschied besteht darin, dass unzureichend gefüllte Knoten nicht bei jeder Modifikation des Baumes verschmolzen werden, sondern nur dann, wenn durch Speicherknappheit ein Zurückschreiben auf den Festspeicher gefordert wird oder eine Transaktion abgeschlossen wurde.


Einen Geschwindigkeitsvorteil bietet Reiser4, weil es die Daten nicht mehr zweimal auf die Festplatte schreibt –&nbsp;zunächst in das Journal und anschließend in das Dateisystem. Stattdessen speichert es die Nutzdaten in einem wandernden Journal, das heißt, sie werden direkt an die vorgesehene Stelle im Dateisystem geschrieben und das Journal bis zum Abschluss des Vorgangs darüber gelegt.
Reiser4 stellt eine vollständige Neuentwicklung dar und sollte nicht mit einer Weiterentwicklung des alten ReiserFS verwechselt werden. Daher wird es bewusst nicht als „ReiserFS 4“ vertrieben. Es wird eine Abwandlung der [[B*-Baum]]-Struktur verwendet, so genannte ''Dancing Trees''. Der Hauptunterschied besteht darin, dass unzureichend gefüllte Knoten nicht bei jeder Modifikation des Baumes verschmolzen werden, sondern nur dann, wenn durch Speicherknappheit ein Zurückschreiben auf den Festspeicher gefordert wird oder eine Transaktion abgeschlossen wurde.


Des Weiteren wurde eine flexible [[Plug-in]]-Struktur hinzugefügt, durch die besondere [[Metadaten]]-Typen, [[Verschlüsselung]] und [[Datenkompression|Komprimierung]] realisiert werden können. Auf Reiser4 können Metadaten von Dateien, wie beispielsweise Titel und Künstler einer Musikdatei, im Dateisystem gespeichert werden, statt in Anwendungen. Der Unterschied zu beispielsweise ID3-Tags von [[MP3]]-Dateien und vergleichbaren Metadatensystemen besteht darin, dass hier ein Metadatensystem im Dateisystem und nicht im Containerformat der Datei integriert wird, das für alle Dateien einheitlich sein könnte. Falls dieser Ansatz jemals vollendet werden sollte, bräuchte man nicht mehr darauf zu achten, ob eine Anwendung alle Metadatentypen versteht, mit denen sie in Berührung kommen könnte. Sie könnte transparent über eine Funktion des Dateisystems auf die Metadaten zugreifen. Während das die Kompatibilität von Anwendungen verbessern könnte, macht es die Kompatibilität von Dateisystemen schwieriger, da die Metadaten nicht auf ein anderes Dateisystem ohne dieses Metadatensystem, wie zum Beispiel [[ext4]], [[XFS (Dateisystem)|XFS]] oder [[FAT32]], kopiert werden könnten.<ref>{{Internetquelle |url=http://www.kuro5hin.org/story/2003/8/9/172159/7912 |titel=Why a New Filesystem Matters |werk=Kuro5hin |datum=2003-08-09 |sprache=en |abruf=2010-10-04}}</ref><ref>The Reiser4 Filesystem: Ways In Which Extra Rigor In Scientific Methodology Can Consume Years Of Your Life, And How The Result Can Be So Very Worthwhile, [http://www.stanford.edu/class/ee380/Abstracts/051026.html Abstrakt], {{Webarchiv |url=http://stanford-online.stanford.edu/courses/ee380/051026-ee380-100.asx |text=Video |wayback=20100813121519}} — Vortrag von Hans Reiser an der [[Stanford University]].</ref>
Einen Geschwindigkeitsvorteil bietet Reiser4 bei der Speicherung der Nutzdaten im Journal, da es mit einem wandernden Journal für diese arbeitet. Hier müssen die Daten nicht mehr zweimal auf die Festplatte geschrieben werden, zunächst in das Journal und anschließend in das Dateisystem, sie werden stattdessen direkt an die vorgesehene Stelle im Dateisystem geschrieben und das Journal bis zum Abschluss des Vorgangs darüber gelegt.
Auch [[NTFS]] unterstützt solche [[Alternativer Datenstrom|Alternativen Datenströme]].

Des Weiteren wurde eine flexible [[Plug-in|Plugin]]-Struktur hinzugefügt, durch die besondere [[Metadaten]]-Typen, [[Verschlüsselung]] und [[Datenkompression|Komprimierung]] realisiert werden können. Auf Reiser4 ergibt sich die Möglichkeit, Metadaten von Dateien, die beispielsweise Titel und Künstler einer Musikdatei beinhalten, im Dateisystem zu speichern, statt in Anwendungen. Der Unterschied zu beispielsweise ID3-Tags von [[MP3]]-Dateien und vergleichbaren Metadatensystemen besteht darin, dass hier ein Metadatensystem im Dateisystem und nicht im Containerformat der Datei integriert wird, das für alle Dateien einheitlich sein könnte. Falls dieser Ansatz jemals vollendet werden sollte, bräuchte man nicht mehr darauf zu achten, ob eine Anwendung alle Metadatentypen, mit denen sie in Berührung kommen könnte, versteht. Der Zugriff auf die Metadaten könnte transparent über die Funktionalität des Dateisystems erfolgen.
Während das die Interkompatibilität von Anwendungen verbessern könnte, macht es die Interkompatibilität von Dateisystemen schwieriger, da die Metadaten nicht auf ein anderes Dateisystem, welches dieses Metadatensystem nicht hat, wie z.&nbsp;B. [[ext4]], [[XFS (Dateisystem)|XFS]] oder [[NTFS]], kopiert werden könnten.<ref>{{Internetquelle
| url = http://www.kuro5hin.org/story/2003/8/9/172159/7912
| titel = Why a New Filesystem Matters
| sprache = en
| werk = Kuro5hin
| datum = 2003-08-09
| zugriff = 2010-10-04
}}</ref><ref>The Reiser4 Filesystem: Ways In Which Extra Rigor In Scientific Methodology Can Consume Years Of Your Life, And How The Result Can Be So Very Worthwhile, [http://www.stanford.edu/class/ee380/Abstracts/051026.html Abstrakt], [http://stanford-online.stanford.edu/courses/ee380/051026-ee380-100.asx Video] — Vortrag von Hans Reiser an der [[Stanford University]].</ref>


== Grundlegende ReiserFS-Funktionen ==
== Grundlegende ReiserFS-Funktionen ==


{| class="wikitable float-right"
{| class="wikitable float-right" style="text-align:center"
|+ Technische Spezifikationen
|+ Technische Spezifikationen
|-
|- class="hintergrundfarbe6"
!
!
! Version 3.5
! Version 3.5
! Version 3.6
! Version 3.6
|-
|-
!rowspan="2" class="hintergrundfarbe6" | max. Anzahl Dateien pro Verzeichnis
! style="text-align:left"| Max. Anzahl Dateien pro Verzeichnis
|518701895 (~2<sup>29</sup>)
| 518.701.895 (~2<sup>29</sup>)
|2<sup>32</sup> − 3
| 2<sup>32</sup> − 3
|-
|-
|colspan="2"|<small>(limitiert durch eine [[Hash-Funktion]], <br />die 1.200.000 Dateinamen ohne Kollisionen zulässt)</small>
| colspan="2"|<small>(limitiert durch eine [[Hashfunktion]],<br />die 1.200.000 Dateinamen ohne Kollisionen zulässt)</small>
|-
|-
! class="hintergrundfarbe6" |max. Anzahl der [[Harter Link|harten Links]] pro Datei
! style="text-align:left"| Max. Anzahl der [[Harter Link|harten Links]] pro Datei
|2<sup>16</sup>
| 2<sup>16</sup>
|2<sup>32</sup>
| 2<sup>32</sup>
|-
|-
! class="hintergrundfarbe6" |max. Dateisystemgröße
! style="text-align:left"| Max. Dateisystemgröße
|colspan="2" style="text-align: center;"|2<sup>32</sup> 4k-Blöcke
| colspan="2" style="text-align: center;"|2<sup>32</sup> 4k-Blöcke
|}
|}


Vorteile gegenüber anderen Dateisystemen bietet ReiserFS vor allem bei der Handhabung von vielen kleinen [[Datei]]en, da diese in den Verwaltungsknoten gespeichert werden können. Das bedeutet, dass die Dateien im [[Dateisystem]] weniger Platz belegen und der Platz auf der [[Festplatte]] [[Effektivität|effizienter]] genutzt werden kann. Diese Funktionen des Dateisystems lassen sich über die Parameter beim [[Mounten]] festlegen. Die bekanntesten Parameter sind:
Vorteile gegenüber anderen Dateisystemen bietet ReiserFS vor allem bei der Handhabung von vielen kleinen [[Datei]]en, da diese in den Verwaltungsknoten (wie bei NTFS in der MFT<ref>[http://blogs.technet.com/b/askcore/archive/2009/10/16/the-four-stages-of-ntfs-file-growth.aspx blogs.technet.com: Jeff Hughes, The Four Stages of NTFS File Growth (2009)]</ref>) gespeichert werden können. Das bedeutet, dass die Dateien im [[Dateisystem]] weniger Platz belegen und der Platz auf der [[Massenspeicher|Festplatte]] [[Effektivität|effizienter]] genutzt werden kann. Diese Funktionen des Dateisystems lassen sich über die Parameter beim [[Mounten]] festlegen. Die bekanntesten Parameter sind:


{| class="wikitable"
{| class="wikitable"
|-
|-
! <code>notail</code>
! <code>notail</code>
Zeile 85: Zeile 75:
|-
|-
! <code>nolog</code>
! <code>nolog</code>
|Deaktiviert das Journaling, bietet damit einen kleinen [[Leistung (Informatik)|Performance]]-Gewinn auf Kosten der Sicherheit. Auch mit dieser Option wird das Journaling dennoch ausgeführt, denn diese Funktion ist noch in Entwicklung.
|Deaktiviert das Journaling, bietet damit einen kleinen [[Rechenleistung|Performance]]-Gewinn auf Kosten der Sicherheit. Auch mit dieser Option wird das Journaling dennoch ausgeführt, denn diese Funktion ist noch in Entwicklung.
|}
|}


Ferner gibt es von den Entwicklern mitgelieferte Programme zur Verwaltung und Administration des Filesystems, die ''reiserfsprogs'':
Ferner gibt es von den Entwicklern mitgelieferte Programme zur Verwaltung und Administration des Filesystems, die ''reiserfsprogs'':


{| class="wikitable"
{| class="wikitable"
|-
|-
!<code>mkreiserfs</code>
!<code>mkreiserfs</code>
| Mit diesem Programm wird auf einer Partition ein ReiserFS erzeugt. Zum Beispiel erzeugt folgender Befehl auf Partition <code>/dev/hda1</code> ein ReiserFS:<br /><tt>mkreiserfs /dev/hda1</tt><br />Beim Erzeugen können diesem Programm Parameter übergeben werden, um das Dateisystem zu optimieren. Die meisten können jedoch später jederzeit mit einigen der Programme verändert werden.
| Mit diesem Programm wird auf einer Partition ein ReiserFS erzeugt. Zum Beispiel erzeugt folgender Befehl auf Partition <code>/dev/hda1</code> ein ReiserFS:<br /><span style="font-family:monospace;">mkreiserfs /dev/hda1</span><br />Beim Erzeugen können diesem Programm Parameter übergeben werden, um das Dateisystem zu optimieren. Die meisten können jedoch später jederzeit mit einigen der Programme verändert werden.
|-
|-
! <code>reiserfsck</code>
! <code>reiserfsck</code>
| Mit diesem Programm kann die Dateizuordnungsstruktur des ReiserFS geprüft werden. Dank seiner Eigenschaft als Journaling-Dateisystem benötigt die [[Fsck|Überprüfung des Dateisystems]] deutlich weniger Zeit als bei einem normalen Dateisystem.
| Mit diesem Programm kann die Dateizuordnungsstruktur des ReiserFS geprüft werden. Dank seiner Eigenschaft als Journaling-Dateisystem benötigt die [[Fsck|Überprüfung des Dateisystems]] deutlich weniger Zeit als bei einem normalen Dateisystem<!-- =... ? -->.
|-
|-
! <code>resize_reiserfs</code>
! <code>resize_reiserfs</code>
| Mit diesem Programm kann nachträglich ein bestehendes ReiserFS in der Größe variiert werden. Normalerweise nimmt ein Dateisystem stets die volle Größe der ihm zur Verfügung stehenden [[Partition (Festplatte)|Partition]] ein. Doch nicht immer ist das gewünscht.
| Mit diesem Programm kann nachträglich ein bestehendes ReiserFS in der Größe variiert werden. Normalerweise nimmt ein Dateisystem stets die volle Größe der ihm zur Verfügung stehenden [[Partition (Datenträger)|Partition]] ein. Doch nicht immer ist das gewünscht.
|-
|-
! <code>reiserfstune</code>
! <code>reiserfstune</code>
| Mit diesem Programm können verschiedene Eigenschaften zusätzlich gesteuert werden, die spezielle Anwendungen optimieren helfen.
| Mit diesem Programm können verschiedene Eigenschaften zusätzlich gesteuert werden, die spezielle Anwendungen optimieren helfen.
|-
|-
! <code>debugreiserfs</code>
! <code>debugreiserfs</code>
| Dieses Programm ist ein Analysetool für [[Debugger|Debugging]].
| Dieses Programm ist ein Analysetool für [[Debugger|Debugging]].
|}
|}

== Quellen ==

<references />


== Siehe auch ==
== Siehe auch ==
* [[Liste von Dateisystemen]]

* [[:en:Comparison of file systems|Vergleich von Dateisystemen in der englischen Wikipedia]]


== Weblinks ==
== Weblinks ==
* [http://www.nerd-supreme.de/2009/12/09/dateisystem-benchmark-ext2-ext3-ext4-xfs-jfs-reiserfs-btrfs-und-ntfs-3g-im-vergleich/ Dateisystem-Benchmark: ext2, ext3, ext4, xfs, jfs, reiserfs, btrfs und ntfs-3g im Vergleich], Dezember 2009
* [http://www.nerd-supreme.de/2009/12/09/dateisystem-benchmark-ext2-ext3-ext4-xfs-jfs-reiserfs-btrfs-und-ntfs-3g-im-vergleich/ Dateisystem-Benchmark: ext2, ext3, ext4, xfs, jfs, reiserfs, btrfs und ntfs-3g im Vergleich], Dezember 2009
* [http://www.cerias.purdue.edu/homes/florian/reiser/reiserfs.php Die Struktur des Reiser-Dateisystems] von Florian Buchholz (englisch)
* [http://p-nand-q.com/download/rfstool.html RFSTool] ReiserFS unter Windows auslesen
* [http://p-nand-q.com/download/rfstool.html RFSTool] ReiserFS unter Windows auslesen
* [http://yareg.akucom.de/ GUI für RFSTool] GUI für RFSTool
* [http://yareg.akucom.de/ GUI für RFSTool] GUI für RFSTool
* [https://sourceforge.net/projects/metztli-reiser4/ Metztli Reiser4] – ein Debian-Installer mit Reiser4

== Einzelbelege ==
<references />


[[Kategorie:Freies Dateisystem]]
[[Kategorie:Freies Dateisystem]]
[[Kategorie:Journaling-Dateisystem]]
[[Kategorie:Journaling-Dateisystem]]
[[Kategorie:Linux-Betriebssystemkomponente]]
[[Kategorie:Linux-Betriebssystemkomponente]]

[[bg:ReiserFS]]
[[cs:ReiserFS]]
[[da:ReiserFS]]
[[en:ReiserFS]]
[[eo:ReiserFS]]
[[es:ReiserFS]]
[[eu:ReiserFS]]
[[fr:ReiserFS]]
[[gl:ReiserFS]]
[[it:ReiserFS]]
[[ja:ReiserFS]]
[[lt:ReiserFS]]
[[nl:Reiser File System]]
[[no:ReiserFS]]
[[pl:ReiserFS]]
[[pt:ReiserFS]]
[[ru:ReiserFS]]
[[sv:Reiserfs]]
[[tr:ReiserFS]]
[[uk:ReiserFS]]
[[zh:ReiserFS]]

Aktuelle Version vom 26. März 2025, 14:34 Uhr

ReiserFS
Hersteller Namesys (Hans Reiser)
Vollständige Bezeichnung Reiser File System
Technische Umsetzung
Verzeichnisse B⁺-Baum (ReiserFS 1-3) B*-Baum (Reiser4)
Dateien Bitmap[1]
Maximalwerte
Größe einer Datei 231 Byte (2 GiB) (Version 3.5)
260 Byte (1 EiB) (Version 3.6)
Anzahl aller Dateien 232 − 3
Länge des Dateinamens Blockgröße − 64 (bei einer Blockgröße von 4 KB ergeben sich 4032 Bytes)
Eigenschaften
Unterstützende Betriebssysteme Linux, BSD

ReiserFS ist ein Mehrzweck-Dateisystem, das von einer Entwicklergruppe um Hans Reiser in der ihm gehörenden Firma Namesys ab 2001 entwickelt und realisiert wurde. Das Reiser File System unterliegt der General Public License. Die Entwicklung der Version 3 wurde von MP3.com und der SuSE Linux GmbH unterstützt, die Version 4 vor allem von der DARPA und Linspire.

ReiserFS war das erste Journaling-Dateisystem, das im Linux-Kernel standardmäßig (ab Kernel-Version 2.4.1) enthalten war. Das Dateisystem in Version 3 wurde schließlich mit Kernel-Version 6.13 nach rund 23 Jahren wieder aus den Kernel-Quellen entfernt,[2] nachdem es bereits seit Linux 5.18 als veraltet (englisch deprecated) markiert gewesen war.[3] Für FreeBSD gibt es eine experimentelle Unterstützung, bisher nur für Leseoperationen. Kommerzielle Treiber gibt es auch für das Betriebssystem Windows von Microsoft. Es wurde im Wesentlichen für Logical Volumes oder RAID-Systeme eingesetzt.

Reiser4 und das noch experimentelle Reiser5 werden „out-of-tree“ für den Linux-Kernel entwickelt und müssen jeweils für neuere Versionen des Kernels angepasst werden.[4][5][6][7]

ReiserFS, Versionen 1 und 2

[Bearbeiten | Quelltext bearbeiten]

Das ReiserFS basiert auf der von Rudolf Bayer entwickelten Datenstruktur des B+-Baums. Das gilt für die Versionen 1 bis 3.

ReiserFS, Version 3

[Bearbeiten | Quelltext bearbeiten]

In Version 3 wurde dem ReiserFS ein Journal hinzugefügt. Ursprünglich war ein Nachteil von ReiserFS gegenüber einigen anderen Journaling-Systemen, dass das Journaling nur für die Metainformationen, d. h. für die Verzeichnisse und Verwaltungssektoren, nicht jedoch für die Nutzdaten in den Dateien selbst angewendet wurde. Dies wurde im 2.6er Kernel behoben.

Reiser4 ist vollständig neu entwickelt und sollte nicht mit dem alten ReiserFS verwechselt werden. Daher wird es nicht als „ReiserFS 4“ vertrieben. Es wird eine Abwandlung der B*-Baum-Struktur verwendet, sogenannte Dancing Trees. Der Hauptunterschied besteht darin, dass unzureichend gefüllte Knoten nicht bei jeder Modifikation des Baumes verschmolzen werden, sondern nur dann, wenn durch Speicherknappheit ein Zurückschreiben auf den Festspeicher gefordert wird oder eine Transaktion abgeschlossen wurde.

Einen Geschwindigkeitsvorteil bietet Reiser4, weil es die Daten nicht mehr zweimal auf die Festplatte schreibt – zunächst in das Journal und anschließend in das Dateisystem. Stattdessen speichert es die Nutzdaten in einem wandernden Journal, das heißt, sie werden direkt an die vorgesehene Stelle im Dateisystem geschrieben und das Journal bis zum Abschluss des Vorgangs darüber gelegt.

Des Weiteren wurde eine flexible Plug-in-Struktur hinzugefügt, durch die besondere Metadaten-Typen, Verschlüsselung und Komprimierung realisiert werden können. Auf Reiser4 können Metadaten von Dateien, wie beispielsweise Titel und Künstler einer Musikdatei, im Dateisystem gespeichert werden, statt in Anwendungen. Der Unterschied zu beispielsweise ID3-Tags von MP3-Dateien und vergleichbaren Metadatensystemen besteht darin, dass hier ein Metadatensystem im Dateisystem und nicht im Containerformat der Datei integriert wird, das für alle Dateien einheitlich sein könnte. Falls dieser Ansatz jemals vollendet werden sollte, bräuchte man nicht mehr darauf zu achten, ob eine Anwendung alle Metadatentypen versteht, mit denen sie in Berührung kommen könnte. Sie könnte transparent über eine Funktion des Dateisystems auf die Metadaten zugreifen. Während das die Kompatibilität von Anwendungen verbessern könnte, macht es die Kompatibilität von Dateisystemen schwieriger, da die Metadaten nicht auf ein anderes Dateisystem ohne dieses Metadatensystem, wie zum Beispiel ext4, XFS oder FAT32, kopiert werden könnten.[8][9] Auch NTFS unterstützt solche Alternativen Datenströme.

Grundlegende ReiserFS-Funktionen

[Bearbeiten | Quelltext bearbeiten]
Technische Spezifikationen
Version 3.5 Version 3.6
Max. Anzahl Dateien pro Verzeichnis 518.701.895 (~229) 232 − 3
(limitiert durch eine Hashfunktion,
die 1.200.000 Dateinamen ohne Kollisionen zulässt)
Max. Anzahl der harten Links pro Datei 216 232
Max. Dateisystemgröße 232 4k-Blöcke

Vorteile gegenüber anderen Dateisystemen bietet ReiserFS vor allem bei der Handhabung von vielen kleinen Dateien, da diese in den Verwaltungsknoten (wie bei NTFS in der MFT[10]) gespeichert werden können. Das bedeutet, dass die Dateien im Dateisystem weniger Platz belegen und der Platz auf der Festplatte effizienter genutzt werden kann. Diese Funktionen des Dateisystems lassen sich über die Parameter beim Mounten festlegen. Die bekanntesten Parameter sind:

notail Deaktiviert die Speicherung kleiner Dateien in den Inodes der Verzeichnisse, in denen sie liegen. Damit wird aber auch eine der wesentlichen Eigenschaften ausgeschaltet, die ReiserFS für kleine Dateien empfehlenswert macht.
nolog Deaktiviert das Journaling, bietet damit einen kleinen Performance-Gewinn auf Kosten der Sicherheit. Auch mit dieser Option wird das Journaling dennoch ausgeführt, denn diese Funktion ist noch in Entwicklung.

Ferner gibt es von den Entwicklern mitgelieferte Programme zur Verwaltung und Administration des Filesystems, die reiserfsprogs:

mkreiserfs Mit diesem Programm wird auf einer Partition ein ReiserFS erzeugt. Zum Beispiel erzeugt folgender Befehl auf Partition /dev/hda1 ein ReiserFS:
mkreiserfs /dev/hda1
Beim Erzeugen können diesem Programm Parameter übergeben werden, um das Dateisystem zu optimieren. Die meisten können jedoch später jederzeit mit einigen der Programme verändert werden.
reiserfsck Mit diesem Programm kann die Dateizuordnungsstruktur des ReiserFS geprüft werden. Dank seiner Eigenschaft als Journaling-Dateisystem benötigt die Überprüfung des Dateisystems deutlich weniger Zeit als bei einem normalen Dateisystem.
resize_reiserfs Mit diesem Programm kann nachträglich ein bestehendes ReiserFS in der Größe variiert werden. Normalerweise nimmt ein Dateisystem stets die volle Größe der ihm zur Verfügung stehenden Partition ein. Doch nicht immer ist das gewünscht.
reiserfstune Mit diesem Programm können verschiedene Eigenschaften zusätzlich gesteuert werden, die spezielle Anwendungen optimieren helfen.
debugreiserfs Dieses Programm ist ein Analysetool für Debugging.
  1. ReiserFS – Node Layout (Memento vom 14. Juni 2006 im Internet Archive)
  2. Michael Larabel: ReiserFS Has Been Deleted From The Linux Kernel. In: phoronix.com. 21. November 2024, abgerufen am 25. November 2024 (englisch): „ReiserFS was merged 23 years ago with Linux 2.4.1 and is now gone with Linux 6.13…“
  3. Oliver Müller: Linux 5.18 kommt als „kleine Revolution“. In: heise online. 24. Mai 2022, abgerufen am 25. Mai 2022.
  4. Michael Larabel: Reiser4 File-System Benchmarks With Linux 4.17. In: phoronix.com. 2. Juli 2018, abgerufen am 25. November 2024 (englisch): „Reiser4 remains out-of-tree and there are no indications it's going to be mainlined anytime soon, if ever. While that's the case, there are still a small number of users and developers relying upon this next-generation successor to ReiserFS. The Reiser4 kernel code continues to be re-based against new upstream kernel branches and does occasionally see new features/improvements added in the process.“
  5. Reiser4 FS Wiki. Abgerufen am 9. Oktober 2019.
  6. Reiser4 file system for Linux OS – Browse /reiser4-for-linux-5.x at SourceForge.net. Abgerufen am 9. Oktober 2019.
  7. Michael Larabel: Reiser4/Reiser5 File-System Driver Updated For Linux 5.13. In: phoronix.com. 23. August 2021, abgerufen am 25. November 2024 (englisch).
  8. Why a New Filesystem Matters. In: Kuro5hin. 9. August 2003, abgerufen am 4. Oktober 2010 (englisch).
  9. The Reiser4 Filesystem: Ways In Which Extra Rigor In Scientific Methodology Can Consume Years Of Your Life, And How The Result Can Be So Very Worthwhile, Abstrakt, Video (Memento vom 13. August 2010 im Internet Archive) — Vortrag von Hans Reiser an der Stanford University.
  10. blogs.technet.com: Jeff Hughes, The Four Stages of NTFS File Growth (2009)