ext4

The ext4 ( fourth extended file system ) is a journaled file system that is being developed for the Linux kernel as the successor to ext3. It was unveiled on 10 October 2006 by Andrew Morton. Since version 2.6.19, a preliminary trial was an official part of the Linux kernel. With the release of Linux 2.6.28 on 24 December 2008 ext4 left the main stage of development.

Technical Details

Ext4 uses 48 bit large block numbers ( ext3 had 32 bit) and thus supports partitions or volumes that are up to 1 EiB large ( volumes larger than 16 TiB only from e2fsprogs version 1.42 dated 29 November 2011), as opposed to ext3, the 32 permits only TiB ( depending on the size of a memory page in the particular machine architecture, the IA-32 in, for example, are only a maximum of 232 × 4 = 16 KiB TiB possible). Also the addressing of files extents can be carried, wherein the memory units are combined into one contiguous block. This leads to a reduction of the additional burden (RAM, I / O requests and transactions ), and can improve the performance in operation.

Since publication in kernel 2.6.19 following improvements have been implemented:

  • Kernel 2.6.23: more than 32,000 subdirectories,
  • Kernel 2.6.25: maximum file size as large as the entire file system
  • Kernel 2.6.28: ext4 is considered stable
  • Kernel 2.6.33: TRIM support

As further improvements over ext3/ext2 include in the planning stage or already implemented:

For existing ext3 partitions some of the ext4 features can be enabled without reformatting. ext2 and ext3 partitions can be mounted as if they were ext4 partitions. As a result by optimizing the ext4 driver is already small performance gains.

Disadvantages

The block size can not be less than 512 bytes in ext4. This limits its use in memory shortage and many small files.

Delayed allocation of file blocks and inodes increases the risk of data loss in case of crash or power failure. In kernel version 2.6.30, this problem was alleviated over previous versions.

322992
de