This relates specifically to hosted virtualization tools like VMware Server / Fusion / Workstation, Virtual Box, and Parallels.
In relation to both http://superuser.com/questions/61245 and http://serverfault.com/questions/89269, I'd like to be able to create virtual machines with very generous potential space (say, 500GB), but have that space be able to shrink if the host OS needs/uses more.
Using VMware, you can give a VM gobs of space, but not pre-allocate it all (so if you never need the 500GB you allocate, and only use 100GB, the remaining "assigned" space is still available to the host OS).
Is it possible to do this more-or-less in reverse? I could create scores of 10GB or 20GB virtual drives (without pre-allocating the space to them) and connect them to the VMs in LVM volumes, adding them as needed - but that still gives the problem of how to remove them from the LVM volume if/when the host OS needs the space back.
Or I could create scores of un-pre-allocated virtual drives and pre-connect them to my VMs, hoping they don't get used, so the host OS can still operate. However, since LVM doesn't guarantee where it will put the next bit of data it's writing, it might write data into multiple "real" volumes, triggering some of the non-pre-allocated virtual disks (the "real" volumes) to expand, but not others.
Using that second approach, I suppose one could review the virtual disks from time-to-time, and detach any that have never grown, shrinking the LVM volume in the process - but that again goes back to manual intervention when I'd like to have the virtualization manager / hypervisor toolset and/or a third-party utility handle that for me.