Computer filesystems are a surprisingly passionate topic. You can’t get anyone excited about Emacs vs. Vi anymore, but start comparing filesystems and you’ll have a fast and furious debate in no time. The current dominant filesystems for Linux are Ext2/3, ReiserFS, JFS and XFS. Linux also supports an amazing number of filesystems used primarily on other platforms, such as Windows, Mac OS X and Unix.
Linux’s Ext4 is almost ready. Take this new filesystem out for a test drive and see what its new feature sets offer.
All have their strengths and weaknesses. For example, ReiserFS excels at handling large numbers of small files, while JFS and XFS are better at handling very large files. Ext2/3 is rather middle-of-the road; it’s the most stable of the four, and while the others claim glory for faster performance under certain conditions, Ext2/3 keeps up just fine. Ext3 is just Ext2 with a separate metadata journal, and it is completely backward-compatible with Ext2. You can migrate directly from Ext2 to 3, and if you don’t like it, you can migrate back to Ext2.
Ext4 provides a direct migration path, so users are spared the pain of having to first create a new filesystem and then copy their data to it. It also has backward compatibility, but you will be unable to undo it the way you can with Ext3 because it’s much more than just adding a journal.
Some of Ext3’s limitations are a maximum size of 16 terabytes for the whole filesystem, 2 terabytes for a single file, and a mere 32,768 subdirectories. For some people that is simply not enough. Ext4 will handle a one-exabyte filesystem, and files as large as the filesystem. It also adds features such as nanosecond timestamps, delayed allocation for more efficient writes, inode versioning, storing extended attributes in inodes, and faster performance.
Kernel develop Theodore T’so is now running Ext4 on his laptop, which is a major milestone. He’s not calling it ready for production systems yet, but anyone who wants to test it shouldn’t run into too many difficulties. Visit the Ext4 Wiki for more information.