Aug '09 15

New Filesystems – EXT4 and BTRFS

EXT4 is now considered stable  since 2.6.28, there is a good article here. Its a lot better than ext3, which really only added Journals over ext2. In particular EXT4 now supports Extents, Delayed Allocation and Multiblock Reservations,  as thats the main reasons i use the JFS file system (after having corruption on XFS). These things are important if your doing streaming, like recording TV or Playback of movies, without them, simple things like deleteing a recorded TV show while another is recording will make frames drop. I also use ReiserFS for my MP3 collection, and squid cache dir’s, as you can’t beat ReiserFS for loads of small files.

BtrFS is considered the next generation file system, a development version is in the kernel from 2.6.29, but the disk format changed in 2.6.31. It has all the features of EXT4 plus a heap of others, like filesystem raid, checksum on data and metadata (EXT4 only has checksum on the journal) Snapshots, compression, and more.

NILFS2 is the latest file-system to be talked about and it stands for the New Implementation of a Log-structured File System. “supporting versioning of the entire file system and continuous snapshotting which allows users to even restore files mistakenly overwritten or destroyed just a few seconds ago.”

EXT4 looks like the filesystem to use while we wait for Btrfs to become stable. In Debian EXT4 is Proposed for LennyAndAHalf,  Ubuntu has support since 9.04, NOTE: you need to run grub-install before changing your root/boot partition to EXT4. There are some older performance stats here.

*UPDATE: I’ve found a number of references on the web that EXT4 can result in 0 byte files after a crash. Once you get to 1TB file systems, you can reduce the reserved space to maintain it at 50Gb.