Administration
Support
Security
Installation
Information
About us
Contact
Services
Partners
agent°ex
Attingo Datenrettung
Crowes Agency OG
FOO
nets.at
- RSS English -
- RSS Deutsch -

Linux File System revisited

You probably use a couple of file systems and you rely on them. Since the Linux kernel is a very easy to deploy test platform you will find dozens of file systems in the vanilla kernel source from kernel.org. In production environments you will often encounter Ext2/Ext3/Ext4, XFS and JFS. Recently BTRFS has been declared stable by Oracle® and enters use on production servers. So, which file system would you use?

The Ext2/Ext3/Ext4 family follows a conservative design and features certain backward compatibilities and upgrade paths. Very few people realise that Ext4 is a temporary solution that addresses shortcomings of Ext3 and bridges the gap until BTRFS is stable and widely available in GNU/Linux distributions. Ext4 works well for most workloads and storage scenarios. If you face the problem of storing lots of data or big data you should consider XFS. The XFS development team has fixed some performance issues with metadata changes. Beginning with the Linux 3.x kernel XFS is really a very good choice, even for desktop systems (we're running XFS on laptops, too).
BTRFS is a good choice because of its features useful for file system administration. It includes some of ZFS' capabilities. Due to its complexity and copy-on-write design it is not very suitable for fsync-intensive operations. If you watch the talk from the XFS developer from the Linux.Conf.Au 2012 conference you will get a look at some interesting benchmarks regarding this issue. XFS tries to put as few barriers as possible between the application handling the data and the actual block devices.

Selecting a good file system can be difficult (not as difficult as writing one). If you go through a selection, make sure you are comfortable with the tools creating and maintaining the file system. When things go wrong it's always nice to know what to do and what not to do.