I forgot to mention one very useful difference between 1. partitions & LVM
Logical Volumes (LV) and 2. btrfs sub-volumes & ZFS datasets.

Partitions & LVs are created with a fixed size.  The size can be changed
later, but if you create a 50G /data partittion and a 100G /home partition
it's easily possible to have one or the other partition being full while the
other has plenty of space.

Changing the size of a partition/LV requires changing both the size of the
partition or LV AND changing the size of the filesystem that's on
it.  This isn't too difficult but does require some caution and attention to
detail.  It's recommended to make sure you have a recent backup in case you
make a mistake.

(LVs can also be thin-provisioned - kind of like a sparse file.  This allows
over-committing of space, e.g. for VM images where you want to allocate a 5 or
10GB virtual disk without wasting space if some VMs only use a GB or two)



With sub-volumes and datastets, by default they don't have any particular
limit - all sub-volumes/datasets share the pool equally.

btrfs has btrfs-quota and btrfs-qgroup commands to control subvolume size
limits.  I've never used them, so can't say any more than that they exist.

BTW, The btrfs-quota man page says "When the quotas are turned on, they affect
all extent processing, taking a performance hit. It is not recommended to turn
on qgroups unless the user intends to actually use them."


With ZFS, you can set a maximum size (quota) for a dataset (e.g. you might
limit đata/videos to using no more than 200G). You can also reserve space in
the pool for a dataset to prevent any other dataset from using the reserved
space - i.e. to guarantee that a dataset will have a minimum amount of space
available to it, no matter what else is stored on the pool.

You can also change the size limit and/or the reservation at any time, e.g. to
change the quotæ for data/videos from 200GB to 250GB is one simple command:
zfs set quota=250G data/videos

I've rarely used reservations, but frequently set size limits on datasets.


In short, partitions have "hard" or "fixed" limits, subvolumes and datasets have
"soft" limits.

This seems pretty simple but eliminates the most common reason for
wanting/needing to mess around with your filesystems after you've created
them.  Running out of space on / or /home or /var while there's still plenty
of space in other partitions is quite common.

craig

ps: ZFS also supports traditional unix user & group quotas. btrfs doesn't.
This isn't much use for a home system, but can be useful for organisations to
prevent indvidual users from hogging all the disk space.

--
craig sanders <c...@taz.net.au>
_______________________________________________
luv-main mailing list
luv-main@luv.asn.au
https://lists.luv.asn.au/cgi-bin/mailman/listinfo/luv-main

Reply via email to