It seems I caught the wave of interest in Linux file systems. Here are some articles worth checking out:
- LWN has done an excellent overview of Tux3: http://lwn.net/Articles/309094/
- Phoronix subjects ext4 to performance tests against ext3, XFS, and reiser3: http://www.phoronix.com/scan.php?page=article&item=ext4_benchmarks
- Btrfs performance analysis: http://btrfs.boxacle.net/
Of course, there are some other file systems that I haven’t talked about that came up in the comments of my last post. Most of these are special purpose, still on the fringes, or different in scope than the first article which was about local storage.
- The native flash file systems: UBIFS and LogFS. In theory file systems like these would be ideal for SSDs, but we need manufactures to stop putting FAT/Hard disk emulation and wear leveling into their drives. Windows is the culprit for this. These file systems also seem keyed toward embedded device flash memories at the moment and not general purpose storage. Neither are upstream yet. This could be positive, as the disk format and code can be readily changed to make them compatible with future SSDs if there is a change in manufacturing. Val Henson, a Linux file system authority, has some interesting thoughts.
- The Log file systems: LogFS (flash centric, see above), NILFS. I believe ZFS and Tux3 share design philosophy from these. The idea has been around for a long time but none have ever really succeeded.
- The shared disk and distributed parallel file systems: OCFS2, Lustre, GFS, PVFS. There
are a laundry list of these. Some implement entire disk file systems, while others add clustering or distributing properties to other file systems. SUSE [link] and I think Red Hat even considered using one as the default file system but booting (Grub) is an issue.
- Network file systems: these add networking to other disk file systems. POHMELFS and CRFS (distributed extension for Btrfs) are interesting new ones here. Of course there are a laundry list network file systems for Linux. NFS, AFS, and CIFS are the old timers.
- The others: These are more experimental or research oriented. chunkfs, spadfs, and many more. Many others just don’t have steam behind them yet or are dead in the water.
My overview is clearly Linux oriented, though I mentioned ZFS in passing because I think it spurred a lot of these recent developments. That isn’t to say the BSDs are sitting still with HAMMER, and FreeBSD is keeping UFS2 moving forward while NetBSD has LFS – a log file system.
I plan on performing some benchmarking soon after 2.6.28 goes stable. The list will include ext2/3/4, JFS, XFS, Reiser3 and Btrfs. The setup will include single and multi-disk configs. If you have any requests or suggestions for setup, please contact me.