Where / how is your storage managed? Are you using Network Attached Storage (NAS) via NFS/SMB/CIFS etc? Are you using Storage Are Network (SAN) via iSCSI, FibreChannel, etc? Are you using Direct Attached Storage (DAS) where the disks are in the same system as the VMs?
Mike_MT wrote:1) We are...not always, but somewhat frequently adding/removing services like Moodle and the amount of required storage space may grow quickly.
growfs can be used here to expand filesystems/partitions to use extra space in slices.
2) We are looking to virtualize pretty much all the servers we can and it doesn't make sense to allocate all the space a physical server has allocated when it's only using a fraction of it.
Thin-provisioning is what you are looking for here. You allocate X GB of storage to a VM. However, you only provision X-Y GB of physical storage. That way, the VM sees a disk that is X GB in size, but the actual phyiscal storage in use is X-Y. When the VM gets close to using all the physical storage, then you provision more physical storage to the VM. The VM never sees the changes, since it just see a disk of X GB.
For example: you create a VM, allocate a 500 GB disk to is, but only provision 100 GB of physical storage. If the VM gets close to using the full 100 GB, then you provision more physical storage, say an extra 100 GB. So the VM still sees a 500 GB disk, but you are only using 200 GB of physical storage.
3) For virtual machines, I allocate the system resources they need today, not what they might need some day. Resizing storage has been easy and fast for other OSes so when I need more it's an easy task.
See above about thin-provisioning. Configure things for what they'll need in 3 years, but only provide what they need right now. That way, you don't have to change anything down the road.
I'll look into gvirstor.
That will allow you to do thin-provisioning at the OS level. You want to do it at the VM level.
However, it all depends on how your storage is managed (see question at the very start of post).
(ZFS includes some very nice thin-provisioning features, which is why we're moving all our storage to FreeBSD+ZFS, and using that to build a SAN for our VM servers.)