Ext3 has become one of the most popular Linux filesystems. However, with hard drives sneaking up on a terabyte, concerns exist that ext3 won’t be able to handle 21st-century storage requirements. With this in mind, the Linux kernel developers have just released the first real-world test version of ext4.
Andrew Morton, the well-known Linux developer, added the new experimental filesystem on Oct. 10 to the Linux kernel.
This new filesystem features support for storage up to for 1024 petabytes per volume. A petabyte is 250 (two to the fiftieth power) bytes. If that sounds insanely large, think again. Individual supercomputers such as Lawrence Livermore National Labs’s BlueGene/L already have over a petabyte of storage and several storage networks are reputed to have well over a dozen petabytes.
Ext4 also supports extent file writing. In extent, when a file is created, it is given a contiguous area of storage. Then, when the file is written to in the future, the new information is written at the end of the earlier file. This is meant to reduce file fragmentation and improve drive performance.
Extent isn’t new twith Ext4. It’s already present in the Reiser4 filesystem as well as in IBM’s JFS (Journaling filesystem), which is used in AIX and Linux.
Like most other modern filesystems, Ext4 is also a journaling filesystem. This is a filesystem that logs file changes to a journal before actually committing them to the filesystem. The reason for this functionality is that, in the event of a file read or write problem, a journaling system makes it much easier to recover data.
The ext4 filesystem is somewhat compatible with ext3. That is, while you can mount it as an ext3 partition, you’ll lose the power to use extents. Thus, it’s more of a way for older Linux systems to access future ext4 data stores than true backwards compatibility.
The new filesystem is currently in the Linux 2.16.19rc1-mm1 release candidate kernel. If all goes well, it’s hoped that it will be ready for production systems within the next six to nine months.