I have a cluster of (virtual) development servers set up using virtual box. Each of these servers is for an independent product and their use tends to be focused on a few of them at any given time. Is it possible to configure these servers in such a way (using virtual box or another virtualization software) so that a server will be powered off until a web request is made to that server, and that servers that haven't been hit in a while will be powered off? Thanks.
Certainly it's more than possible to pause/unpause or even power-off/on VMs based on load but the problem you'll have with doing it based on say a web-request is that the request will almost certainly time-out before the server is powered-on again. If you did this via pausing then you may get away with it but obviously the VM will stay in one form of memory even when it's paused, saving you only CPU - which if not being tasked would be pretty low anyway, negating the need to pause it.
For reference I use VMWare's vSphere to fire up more units of different kinds of VM class based on load but that's load across hundreds of thousands of concurrent users, so I can handle the lack of granularity.
Oh and one way for you to do any of this is to set your load-balancers to report high and low load to one or more controlling VMs that then take on the job of scaling up and down your VM count.