I am in Seattle at the moment at an internal Microsoft conference. Yesterday I attended a presentation by one of the product managers for Hyper-V where he really stressed a point that people ask me all the time, he also explained to everyone the reasoning behind the decisions made. The 'issue' people have is regarding typical laptop functionality that is lost when you enable Hyper-V on a laptop with Windows Server 2008 installed. Basically, when you enable Hyper-V on a laptop you lose the Sleep and Hibernate power features that you had before enabling Hyper-V. These features completely disappear when you install the role and you cannot re-enable them, nor hack the registry in order to get them back; Windows Server 2008 is pretty much just told to forget all about these power-saving features. So, when you close the lid of your laptop nothing happens. When you battery runs out of power the machine will shutdown or turn off, there is no gracefully power down into hibernation mode saving your desktop session and everything else that you were doing at the time.
As you can see in the screenshot below on the left, the only options available are "Do nothing" or "Shut down" if I close the lid on my laptop whereas before enabling Hyper-V I had the option "Sleep" in the list as well. In the second screenshot on the right you can see that for "Critical battery action" the only option available is "Shut down" which before would have been "Hibernate".
A lot of people tell me that they do not like this because the Sleep mode of laptops is super useful, especially when moving around the office when you need to carry the laptop with you. The reasoning behind taking the decision to disable this functionality is simple; Windows Server 2008 is a server operating system and was not designed to accommodate all the functionality that laptop users want or need. If you have a server running 20 virtual servers, you are extremely unlikely to ever need to hibernate it at all, or even want to. And even if you could it would probably cause some bizarre things to happen inside the VMs as the hardware devices powered off.
So, if you really need to be able to put your laptop to sleep, then you are better off running Windows Vista, or dual-booting your machine with Windows Server 2008 and Windows Vista. Me? I am happy to accept the loss of this functionality as I find Hyper-V so useful. I have set the laptop to "Do nothing" if I close the lid and it shuts itself down when the battery goes flat.
You seem to not have answered one vital question. Why would anyone other than a nerdhead want Server 2008 running on a laptop?
As you so rightly point out in your blog, its a SERVER OS.
Us non-nerds tend to install this OS on a SERVER!
Why do you consider Hyper-V "super useful". What advantages on a laptop does it have over running Virtual PC, Virtual Server 2005 and keeping your sleep functionality?
Usare Server 2008 come una workstation (parte 2)
So this has been disabled because it is a server or are there any conflicts between those power states and Hyper-V? Does it become unmanageable to hibernate/standby when many virtual machines are running?
It was disabled because it was extremely difficult to try and accomodate all of the laptop reasons. The product team looked at the work that would need to be done and then at the fact that the number of people using W2K8 with Hyper-V on a laptop is only a tiny percentage when compared to the number of servers with server hardware running it. With this in mind, they decided that it would not be beneficial to devote so much time and effort to this task which would also increase the size of the hypervisor and its complexity.
@ Anthony: Well, this is hard to quantify as it depends on your point of view. For me, it runs on my laptop much quicker and does not hog so many resources as Virtual Server 2005 did. And also, it does not require the installation of IIS as VS2005 did (yes I know that there are other interfaces available now).
@ Nipman (Steve): I work with Virtual Servers all day long and in pretty much every project I do. It is extremely handy to have a server OS as my main OS because a) I can user Hyper-V, b) I can setup other services on it like Terminal Services etc, all of which I often use.
I'm on of those geek users who wants to run Win2K8 + Hyper V on a laptop, primarily because I'm doing pre-sales and solutioning and must be quick agile and nimble in putting together and tearing OS/software/apps quickly w/o impacting my base OS and productivity. It's a pity that the feature is lost though, cos my battery simply cannot last long enough and there aint easily available power options when you're on the road.
Over the week, I managed to install Windows Server 2008 Enterprise Edition w/Hyper V on my Compaq 6510b
You mention on your blog "apparently, I've been marginalised as a geek minority user whom the product team doesn't feel justified to spend time and effort". This is not quite true, the product team did not decide that W2K8 on laptops is for geeks and that this scenario did not justify the effort. They looked at the scenario and decided that it was not in the best interest of the product, security and performance wise, to add the extra code to hyper-v to make all this work. And also, it would require a lot of work to get W2K8 to handle the sleep request and shutdown/save all VMs first.
Imagine putting a server with 20 VMs with 1GB of memory each into hibernation, that would be a pretty big hibernation file that Windows would need to generate. It is just not a particuarly common scenario.
One of the comments on my blog calls you a geek, but that is their personal opinion.
Please bare in mind that it is a server OS but you are using it as a desktop OS. I am running it on my laptop because I like hyper-v but it does not fit as well into my daily usage as Vista does, simply because of the sleep and hibernate functionality.
Why can't the virtual machines be put into pause mode, and then the OS put into sleep mode? I don't see why you need to save the memory state of the virtual machines, since those memory states is already in your host memory...
As long as Microsoft continues to require metric boatloads of memory for SharePoint and a server OS w/ Visual Studio installed locally they're going to have people clamoring for laptop support for the OS. Let me do SharePoint dev on Vista and I'll stop asking for laptop support for the server OS!
I think you are confused. When you are running multiple VMs, all of them still sit in the physical memory. If your box has 4GB or RAM, the hibernation file will have to persist 4GB no matter how they used. AFAIK VMs memory is not swapped out.
As you well aware, VPC has no problem going into suspend or hibernation with the host system. The only reason I can see for the Hyper-V not to do the same is that things might be different because of H/W "bare metal" virtualization.
@ Loke and Alex
You are correct, it seems that I did not explain myself too well. What I was trying to say was that with 20 VMs running in memory, that it is a lot of memory from the parent partition to have to cache to disk in the hibernation file to put the server into hibernation.
It's really unfortunate that hibernation/sleep is disabled in Hyper-V mode. However, would it have been easier if Server 2008 ALLOWS the laptop to enter the sleep state IF AND ONLY IF no VM is active/running?
The sleep mode automatically gets disabled when a VM is running (I am assuming that Server 2008 is able to tell when a VM is running).
It's a win-win situation for those who wants Hyper-V with the ability to use sleep mode when no VM is running.
I only can agree this the last post.
It's fine if a product WARNS a user before he does something critical (like trying to hibernate a production systems running many VM's or even invoking an operation which might make the system unstable/crash) - but I don't like software that PREVENTS me from doing something even when I know what I'm doing!