[Nottingham] Filesystems: ReiserFS3.6 vs ext4 vs XFS (& ZFS?)

Martin martin at ml1.co.uk
Tue Sep 8 13:28:00 UTC 2009


OK folks,

Yet more filesystem questions/thoughts/comments...

Should I be moving over to XFS rather than ext4?...

Comparing which /filesystem/ to use, I note for:



*ReiserFS3.6*

http://en.wikipedia.org/wiki/Reiserfs


Pros:

Introduced in version 2.4.1 of the Linux kernel, it was the first 
journaling file system to be included in the standard kernel.

Metadata-only journaling (also block journaling, since Linux 2.6.8).

Tail packing, a scheme to reduce internal fragmentation.

B+ tree design.


Cons:

Tail packing, however, can have a significant performance impact, 
positively or negatively depending on conditions.

ReiserFS still uses the Big Kernel Lock (BKL) - a global kernel-wide 
lock - in some places, [so] it does not scale very well[3] for systems 
with multiple cores.



*ext4*

http://en.wikipedia.org/wiki/Ext4
http://kernelnewbies.org/Ext4#head-25c0a1275a571f7332fa196d4437c38e79f39f63


Pros:

Removes 64-bit storage limits and adds other performance improvements to 
ext3.

Extents introduced to replace the traditional block mapping scheme used 
by ext2/3 filesystems. An extent is a range of contiguous physical 
blocks, improving large file performance and reducing fragmentation.

Pre-allocation of on-disk space for a file and multiblock allocator, for 
improved performance.

Delayed block allocation until the data is going to be written to the 
disk, reducing fragmentation.

Allocation alignment to an underlying RAID structure.

Htree indexes.

Journal checksumming.

Timestamps measured in nanoseconds. Year 2038 problem defered for an 
additional 500 years.


Cons:

Its relatively new!



*XFS*

http://en.wikipedia.org/wiki/XFS


Pros:

XFS has a mature, stable and well-debugged codebase.

Metadata-only journaling.

Allocation groups, providing scalability and parallelism - multiple 
threads and processes can perform I/O operations on the same filesystem 
in parallel, that can span multiple physical devices.

Allocation alignment to an underlying RAID structure.

Extent based allocation

B+ trees dual indexing scheme

Delayed block allocation until the data is going to be written to the 
disk, reducing fragmentation.


Cons:

Any?



Also, *ZFS* looks rather interesting:
http://en.wikipedia.org/wiki/Zfs

Shame about the licensing problems and the FUSE port being so recent 
(March 2009). Anyone played with it?



*Write barriers*

Write barriers look to be supported in all of ReiserFS, ext4, XFS, 
md-raid1. Does drbd now support write barriers?

However, lvm2 appears NOT to support write barriers... Why?



Comments?

Should I be moving over to XFS rather than ext4?...


Cheers,
Martin

-- 
----------------
Martin Lomas
martin at ml1.co.uk
----------------



More information about the Nottingham mailing list