ZFS on Linux does not have a critical mass following, whatever that may be. ZFS will effectively lock you in. The underlying format is incompatible with rescue disks, and distributions for which you will find ZFS is rare.
I would tend to overlook these limits due to my bias towards ZFS. You may want to google for a service provider that provides SmartOS/ZFS based Cloud housting.
Linux file systems ext3/ext4 and probably various others do allow for dynamic growing. The volume manager built into Linux, LVM, also allows you to dynamically expand volumes onto new disks. For anything other than experimentation this would have to be the current best Linux recommendation, though that would change once ZFS got a critical mass following on Linux.
The process for Linux + LVM + ext3 is:
Example: LVM volume group myvg, mounted volume name uservol1, and disk device in Linux is /dev/sdf
- Allocate the disk to the VM. (in Amazon Management Console, Create
the EBS volume, write down its ID, and allocate it to the instance)
- The EC2 instance should have some udev rules for creating the device
node. So you should see a new disk in /dev/sd* ... Log in on the
instance and check that the EBS volume is visible, eg fdisk -l
/dev/sdf, cat /proc/partitions, run blkid.
- Create partition table if needed:
fdisk / sfdisk
- Initialize for LVM use:
pvcreate /dev/sdf
- Add the disk (physical volume) to the LVM volume group
vgextend
myvg /dev/sdf
- Grow the Volume size:
lvextend -L +1024G /dev/myvg/uservol1
- Grow the ext3/ext4 file system:
resize2fs /dev/myvg/uservol1
- Check (
df -h
) and you should see that the mounted file system now
have more space.
QED.