Ext3 has been the most widely used general Linux file system for many years. In keeping with increasing disk capacities and state-of-the art feature requirements, the next generation of the ext3 filesystem, ext4, was created last year. This new filesystem incorporates scalability and performance enhancements for supporting large filesystems, while maintaining reliability and stability. Ext4 will suitable for a large variety of workloads and is expected to replace ext3 as the ”Linux filesystem”.
The ext4 or fourth extended file system is a journaling file system developed as the successor to ext3. It was born as a series of backward compatible extensions to remove 64-bit storage limits and add other performance improvements to ext3. However other Linux kernel developers opposed accepting extension to ext3 for stability reasons and proposed to fork the source code of ext3, rename it as ext4, and do all the development there, without affecting the current ext3 users.
This proposal was accepted, and on June 2006, Theodore Ts’o, the ext3 maintainer, announced the new plan of development for ext4. A preliminary development snapshot of ext4 was included in version 2.6.19 of the Linux kernel. On 11 October 2008, the patches that mark ext4 as stable code were merged in the Linux 2.6.28 source code repositories, denoting the end of the development phase and recommending ext4 adoption. Kernel 2.6.28, containing the ext4 file system, was finally released on 25 December 2008.
Ext3 has been a very popular Linux file system due to its reliability, rich feature set, relatively good performance, and strong compatibility between versions. The conservative design of ext3 has given it the reputation of being stable and robust, but has also limited its ability to scale and perform well on large configurations. With the pressure of increasing capabilities of new hardware and online resizing support in ext3, the requirement to address ext3 scalability and performance is more urgent than ever.
One of the outstanding limits faced by ext3 today is the 16TB maximum file system size. Enterprise workloads are already approaching this limit, and with disk capacities doubling every year and 1 TB hard disks easily available in stores. To address this limit, in August 2006, kernel developers posted a series of patches introducing two key features to ext3: larger file system capacity and extents mapping. The patches unavoidably change the on-disk format and break forward compatibility. In order to maintain the stability of ext3 for its massive user base, kernel developers decided to branch to ext4 from ext3. The primary goal of this new file system is to address scalability, performance, and reliability issues faced by ext3. Go through the attached report for design and implementation.