ext4
ext4 | |
---|---|
Hersteller | Mingming Cao, Dave Kleikamp, Alex Tomas, Theodore Ts'o, andere |
Vollständige Bezeichnung | Fourth extended filesystem |
Erstveröffentlichung | 14. Oktober 2008 (Testversion seit: Linux 2.6.19,Final: Linux 2.6.28) |
Partitionskennung | 0x83 (MBR) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT) |
Technische Umsetzung | |
Verzeichnisse | Tabelle, H-Baum |
Dateien | bitmap (free space), Tabelle (metadata) |
Defektblockliste | Table |
Maximalwerte | |
Größe einer Datei | Größe des Dateisystems |
Anzahl Unterverzeichnisse pro Verzeichnis | 32.000[1] |
Länge des Dateinamens | 256 Bytes |
Größe des Dateisystems | 1 EiB = 1024 PiB (derzeit begrenzt auf 16 TiB aufgrund einer Beschränkung in e2fsprogs) |
Erlaubte Zeichen im Dateinamen | Alle Bytes außer NUL und '/' |
Eigenschaften | |
Datumsangaben einer Datei | modification (mtime), attribute modification (ctime), access (atime), create (crtime) |
Datumsbereich | 14.12.1901 bis 25.04.2514 |
Forks | Ja |
Dateiattribute | extents, data=journal, data=ordered, data=writeback, commit=nrsec, orlov, oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh |
Dateirechte-Verwaltung | POSIX |
Transparente Komprimierung | optional (siehe ext2) |
Transparente Verschlüsselung | nein |
Unterstützende Betriebssysteme | Linux |
Das ext4 (fourth extended filesystem) ist ein Journaling-Dateisystem, das für den Linux-Kernel entwickelt wird. Es wurde am 10. Oktober 2006 von Andrew Morton vorgestellt. Seit der Version 2.6.19 war eine vorläufige Testversion offizieller Bestandteil des Linux-Kernels.[2] Mit dem Erscheinen von Linux 2.6.28 am 24. Dezember 2008 verließ ext4 das Hauptentwicklungsstadium.[3]
Technische Eigenschaften
ext4 unterstützt nun Partitionen oder Volumes, die bis zu 1 EiB groß sind (derzeit begrenzt auf 16 TiB aufgrund einer Beschränkung in e2fsprogs), im Gegensatz zu ext3, das nur 32 TiB zulässt (abhängig von der Größe einer Speicherseite in der jeweiligen Maschinenarchitektur, bei IA-32 zum Beispiel sind nur maximal 232 · 4 KiB = 16 TiB möglich). Auch kann die Adressierung von Dateien über Extents erfolgen, wobei Speichereinheiten zu einem zusammenhängenden Block zusammengefasst werden. Dies führt zu einer Reduzierung des Zusatzaufwands (RAM, E/A-Zugriffe und Transaktionen) und kann die Leistung im Betrieb steigern.
Seit Veröffentlichung im Kernel 2.6.19 sind folgende Verbesserungen implementiert worden:
- ab Kernel 2.6.23: mehr als 32.768 Unterverzeichnisse,
- ab Kernel 2.6.25: maximale Dateigröße so groß wie das gesamte Dateisystem
- ab Kernel 2.6.28: ext4 gilt als stabil
Als weitere Verbesserungen gegenüber ext3/ext2 sind unter anderem noch in Planung oder bereits implementiert:
- Zeitstempel auf Nanosekunden-Basis.
- Online-Defragmentierung (Defragmentierung, während die Partition eingehängt ist)
- Verwendung von Prüfsummen im Journal
Bei bestehenden ext3-Partitionen können einige der ext4-Features ohne Neuformatierung aktiviert werden.[4] ext2- und ext3-Partitionen können eingehängt werden, als wären sie ext4-Partitionen. Daraus ergeben sich durch Optimierung im ext4-Treiber bereits kleine Performancegewinne.
Nachteile
Auch bei ext4 ist keine Blockgröße von 512 Bytes möglich. Das schränkt seine Verwendung bei Speicherknappheit und vielen kleinen Dateien ein.
Einzelnachweise
- ↑ http://kernelnewbies.org/Ext4
- ↑ Linux-Dateisystem ext4 im Kernel 2.6.19 auf heise.de, 12. Oktober 2006
- ↑ Linux-Kernel 2.6.28 erschienen auf heise open, 25. Dezember 2008
- ↑ Thorsten Leemhuis: Drei Dateisysteme dazu auf heise open, 30. November 2006
Weblinks
- The Performance Of EXT4 Then & Now (englisch)
- File-System Benchmarks With The Linux 2.6.34 Kernel (englisch) (Performance-Vergleich zu anderen Dateisystemen)
- pro-linux: Das Dateisystem ext4 - Eigenschaften und Benchmarks
- Dokumentation (englisch)
- Fortlaufende Performancevergleiche, insbesondere zu ext3 (englisch) (nicht aktualisiert seit 2009, hier aktueller)
- Ext4 im Kernel-Newbies-Wiki (englisch)
- heise open: Das Linux-Dateisystem Ext4