Jowell,
Not unrelated at all - I love the idea of UML. I haven't used it yet, but I've read about it, and link to it in my whitepaper.
I struggled a bit to come up with reasons a linux-savvy person would want to do something like this, but you've hit on a bunch.
When I started developing my first major ACS site, I installed Oracle on VMWare (W2K guest on W2K host) for development. This worked out to be a great idea because:
I could run my DDL -create.sql scripts and some SQL unit tests, then hit UNDO to roll back the state of the Oracle DB. As an Oracle newbie, this was vastly simpler than figuring out backup and rollback commands, and because it included rollback of any filesystem-created artifacts, more complete.
When it came time to add a member to the development team, I cut and paste the VM from my desktop to my new team-mates. Instant ACS/Oracle install that he or she could run through the problem sets with.
Uninstalling Oracle was (is?) nearly impossible - so many registry entries, config files and associated utitilities are installed. I prefer to just delete a file and say goodbye to Oracle, or disable a VM, as opposed to trying to figure out how to disable all the services when it comes time to work on a different project.
Regarding running it in production, VMWare and SWSoft both have server-based products for doing just that.
From news.com
"SWsoft announced this week that in a test the forthcoming version 2.1 of its Virtuozzo software was able to support more than 2,000 copies of the Linux operating system on a single eight- processor Intel-based server, the Dell 8450."
The project I'm currently on is going to be purchasing the VMWare server edition. We have a team of 10 people, and we'll be able to give all of them their own undoable web-server/database cluster for testing and development, plus have a test cluster for QA and a staging cluster on one box. To keep all these clusters in sync, we'll have to copy a bunch of files everyday, then maybe write a perl script to give them new network ID's/IP addresses.
We wouldn't have done it this way without VMWare - we'd all share boxes and keep them in sync manually. But this way everyone can run their unit tests at the same time and not interfere with everyone else.
Using VMWare in this fashion should make server configuration ridiculously simple, and speed up our development process quite a bit.