Updated: 2007-09-19
Created: 2005-10-31
Older references are not quite accurate, because things in kernel 2.6 are quite better than in kernel 2.4 and filesystem maintainers have reacted to older unfavourable benchmarks by tuning their designs. So the references below are ordered by most recent first.
ext3 FAQ
2004-10-14.| Feature | ext3 |
JFS | XFS |
|---|---|---|---|
| Block sizes | 1024-4096 | 4096 | 512-4096 |
| Max fs size | 8TiB (243B) | 32PiB (255B) | 8EiB (263B)
16TiB (244B) on 32b system |
| Max file size | 1TiB (240B) | 4PiB (252B) | 8EiB (263B)
16TiB (244B) on 32b system |
| Max files/fs | 232 | 232 | 232 |
| Max files/dir | 232 | 231 | 232 |
| Max subdirs/dir | 215 | 216 | 232 |
| Number of inodes | fixed | dynamic | dynamic |
| Indexed dirs | option | auto | yes |
| Small data in inodes | no | some | auto |
fsck speed |
slow | fast | fast |
fsck space |
? | 32B per inode | 2GiB RAM per 1TiB + 200B per inode
(half on 32b CPU) |
| Redundant metadata | yes | yes | ? |
| Bad block handling | yes | mkfs only | no |
| Tunable commit interval | yes | no | no |
| Supports VFS lock | yes | yes | yes |
| Has own lock/snapshot | no | no | yes |
| Names | 8 bit | UTF-16 or 8 bit | 8 bit |
noatime |
yes | yes | yes |
O_DIRECT |
allegedly | allegedly | yes |
barrier |
yes | no | yes (checked) |
| commit interval | yes | no | no |
| EA/ACLs | both | both | both |
| Quotas | both | patch | both |
| DMAPI | no | patch | option |
| Case insensitive | no | mkfs only | no |
| Supported by GRUB | yes | yes | mostly |
| Can grow | online | online only | online only |
| Can shrink | offline | no | no |
| Journals data | option | no | no |
| Journals what | blocks | operations | operations |
| Journal disabling | yes | yes | no |
| Journal size | fixed | fixed | grow/shrink |
| Resize journal | offline | maybe | offline |
| Journal on another partition | yes | yes | yes |
| Special features or misfeatures | In place convert from ext2.
MS Windows drivers. |
Case insensitive option.
Low CPU usage. DCE DFS compatible. OS2 compatible. |
Real time (streaming) section.
IRIX compatible. Very large write behind. Superblock on block 0. |
These are pointers to some of the entries in my technical blog where file systems are discussed:
fsck timesext2 for all my MS
Windows filesystems except the boot one.ext3 with and without extended attributes
and ext3's new hash directory indices.fsck.davtools package to visualize
ext3 fragmentation.fsck takes more than one
month, and some filesystems being VLDBs.ext2 for MS Windows.noatime.ext3 into something else.worksmeans for file systems.
worksfor file systems.
rootfilesystem.
This is a summary in my own words of this more detailed description of JFS data structures. But there is a much better PDF version of the same document, with inline illustrations, also available inside this RPM from SUSE.
ABNR which describes an extent
contaning zero bytes only.btree and the leaf extents are
called xtrees (and contain an array of
entries called xads)
if they are for an allocation map, and dtrees
if they are for a directory map.jfs_fsck.bmap,
is a file (not a B+-tree, despite being
called map) divided into 4KiB pages. The first block is the bmap control page, and then there are up to three levels of dmap control pages that point to many dmap pages. Each dmap page contains:
jfs_fsck if any.dinomap, and after that a number
of extents called
inode allocation groups.
dinomap contains:
tiedto it, until all such extents are freed.
dtree entries.