[Nottingham] [Talk] Thurs 02/07/09 What's in a Filesystem?

Martin martin at ml1.co.uk
Tue Jul 7 22:18:34 UTC 2009


>> What's in a Filesystem?
>>
>> A brief-ish comment on the various Linux filesystems available and which 
>> one/ones to choose.

So, I mentioned the issue of partition and stripe alignment to the 
underlying storage media data blocks for when you might be using SSDs or 
RAID. For both cases, if misaligned, you can suffer as much as a claimed 
30% or more performance slowdown if trying to write a block of data that 
straddles across a storage system unit boundary. SSDs can also suffer 
the effect of "write amplification" if you straddle new data across an 
erase block boundary.

Fixes for that are to frig the (anachronistic) chs geometry used by 
fdisk to guarantee that a partition starts on a 1 MByte (or greater 
binary multiple) boundary. Also, if your filesystem supports it, to 
write in chunks that match a multiple of the storage medium's 
sector/page size. And if using LVM, to align that to suitable boundaries.

Which is all well and good apart from the very old fashioned partition 
table at the start of the HDD/SSD! OK... so the fix for that is to 
either have no partition table at all and to then have LVM or the 
filesystem use the entire disk. Or, to place your boot partition 
(unaligned) to pad out the space immediately after the partition table 
up to the first aligned partition.


As to which filesystems:

I'm now swayed to use ext4 pending brtfs being developed further.

Likes: The extents for efficiently allocating contiguous blocks of disk 
space, write chunks, configurability, and the directory indexing trees 
for fast access;

Dislike: The fixed number of inodes of which you need x100 of the things 
to waste space 'just in case'.


Or, if you're on a conventional HDD:

ReiserFS 3.6

Likes: The complete flexibility of any mix of numbers/sizes of files and 
it still works very well, no fixed number of inodes to waste space or to 
get strangled with, tail attachment of small files into the filesystem 
tree structure to maximise disk space utilisation, robust;

Dislikes: Hans Reiser's notoriety, impossible to recover if severely 
scrambled (but then, that goes for any filesystem).


And plain old ext3 (or even just ext2) for the boot partition.


Another aspect is the semantics of whether filesystems should 
incorporate database-like features/functionality. As mentioned, from 
others discussions, I'm now very against xattr (extended attributes).


 From others comments, XFS also looks good, especially for good 
parallel-ised access for multicpu/multicore systems. I'll let those 
others enthuse on the technical details.


Cheers,
Martin


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



More information about the Nottingham mailing list