Different filesystems have many different features provided by them. The filesystems I will cover, and their features will be primarily only POSIX complaint filesystems supported by Linux.

POSIX Filesystems

Resizing ext

Comparisons

None yet. FIXME

Features

Access Control Lists

ACLs are actually quite useful in filesystems for setting up specific directory trees and their files with permissions specifically adjusted for multi-user and multi-group access to them.

Resizing ext2/3/4 can be done with resize2fs

Volume Management

LVM, or Logical Volume Manager, is the Linux way to manage volumes. LVM has a lot of powerful features including snapshots, resizing, striping for speed, mirroring for redundancy and more.

Resizing LVM can be done by simply using a command similar to: lvextend -L+20G volume

RAID

RAID, or Redundant Array of Independent Disks, is a technology used to combine multiple hard drives together, similar to LVM but with much more on redundancy and speed. There are many levels of RAID which have different abilities.

Software RAID provides the highest compatibility but can be the slowest due to it being strictly software-based. The fastest RAID hardware uses a battery backed buffer on the controller to allow for on-board memory to be used for write caching and has some level of fault tolerance due to the battery backup.

Resizing Software RAID arrays:

mdadm --create --verbose /dev/md0 --level=raid1 --raid-devices=2 /dev/hda2 /dev/hdb1
mkfs.ext3 /dev/md0
mount /dev/md0 /mnt/test
mdadm /dev/md0 --fail /dev/hda2 --remove /dev/hda2
cfdisk /dev/hda                                  # adjust partition size for hda2
mdadm /dev/md0 --add /dev/hda2
mdadm /dev/md0 --fail /dev/hdb1 --remove /dev/hdb1
cfdisk /dev/hdb                                  # adjust partition size for hdb1
mdadm /dev/md0 --add /dev/hdb1
mdadm --grow /dev/md0 --size=max
resize2fs /dev/md0

This works for online resizing if you read and understand what all is happening here with the mdadm tool, fdisk tool, and the final resize2fs as mentioned before in this documentation.

Network Filesystems

Samba, NFS, Coda

Clustered Filesystems

Distributed Filesystems

Network Block Devices