Insomnia-causing Hyper-V


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".

 image image

 

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.

Comments (29)

  1. doxley says:

    IIRC, the VMs are paused if you shut the host OS down.  then on restart they are brought back online.

  2. Anonymous says:

    I blogged a few months ago about how activating Hyper-V on a laptop that is running Windows Server 2008

  3. doxley says:

    @ 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.

  4. Anonymous says:

    Over the week, I managed to install Windows Server 2008 Enterprise Edition w/Hyper V on my Compaq 6510b

  5. doxley says:

    @ 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.

  6. Anonymous says:

    Usare Server 2008 come una workstation (parte 2)

  7. doxley says:

    Hi Microlau,

    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.

  8. doxley says:

    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.

  9. nipman (Steve) says:

    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!

  10. Anthony says:

    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?

    Thanks

  11. anonymous says:

    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?

  12. Alvin Lau says:

    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.

  13. Loke Kit Kai says:

    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…

  14. Corey Cole says:

    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!

  15. Alex Feinman says:

    Daniel,

    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.

  16. Kevin Nguyen says:

    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.

  17. marek says:

    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!

  18. PK82-MS says:

    At the very least Microsoft should allow us to use sleep mode after we manually (or by script) stopped the 3 Hyper-V services on the host machine!

    I run Windows 2008 Server Enterprise on my notebook to develop for sharepoint and windows media services.

    It is a shame that Microsofts thinks 1.5 million MSDN subscribers and software developers are not wothy enough to put a little bit of manpower and money behind something that would keep them from switching to VMware!

  19. Kevin Nguyen says:

    Given that it won’t be released for at least another 180 days, we can only hope Microsoft will reconsider.  With that said, I doubt this will happen late at this stage.  It is doable from a technical standpoint, and I don’t buy the reasoning.

  20. Kevin Nguyen says:

    With regard to my previous post above, I can see no reason why Hyper-V can’t communicate with Server 2008.  

    All it needs to say is: "Hey, I [Hyper-V] have at least one VM running, so do NOT obey any and all power management request, do NOT go to sleep, do NOT hibernate, do NOT restart, do NOT shutdown etc…notify the user so…"

    Hyper-V IS a power tool for mobile users as well.  It may not necessarily run JUST virtual servers.

    The users shouldn’t have to install VMWare or Virtual PC for these virtualizations in order to get sleep support.  I mean, Hyper-V IS there.  Why install additional software?

  21. hyperVUser says:

    Even if we install windows server 2008 on a server, why does the HyperV team think we want the machine on all the time? What if we want to standby the the dev/qa/staging environment down for until the next morning? yeah, i think they should put some workaround for this so we can standby/sleep

  22. Charles Cai says:

    I couldn’t agree more on what Kevin Nguyen suggested, that is in a situation no VVM is running, we should have a change to enable sleep mode on the notebook.  With Win2k8+Hyper-V on my Thinkpad T61 (4G Memory/200G 7200RPM SATA), I can effectively develop anything I want to with MS technologies and Linux platforms, anywhere. This is the best development environment for a busy developer.  Now I have to consider EasyBCD (multi-boot), which really is a pity.

  23. mike says:

    I’ll throw in a smidge of support for sleep support in hyper-v.

    Wrt the crowd that is selling or pitching hyper-v, or perhaps doing a client-server demo for an LOB app, the ability to sleep a laptop and pull it open, ready for a demo, is invaluable. I realize that in the prioritization excercises that this falls outside of the majority population of customers, but the minority that is crying out here tends to be the majority that evangelizies your product.

  24. Andrew Brampton says:

    What happens to Hyper-V VMs when Windows Server is shut down? Do they get suspended, shut down or just killed?

    If they get suspended or gracefully shut down I don’t see why the same procedure can’t be used when I hibernate.

  25. ARRGG says:

    I’m a little upset.  I just put server 08 on my laptop with hyper v and was doing searches on resolving the problem when I landed at this site.  I guess I’ll just have to get virtual PC.  

  26. bink says:

    Does anyone have a super quick method for disabling/toggling Hyper-V to get sleep back?  It doesn’t appear disabling Hyper-V in bcdedit does the trick, but I’d be willing to do something quick and reboot just to get sleep back.

  27. paul says:

    I Use and have been using server OS’s for a long time for development on my notebook,  I was exposed to Hyper-V and thought it was the best of the available VM software, but with out the sleep mode it is useless.  So I guess I will be recommended that our company use VMWare instead.

  28. Rob says:

    VMware Server 2.0 (while having some issues at times) is a worthy alternative for this use, I’ve found.  It has no problems with me putting the laptop into standby with VMs running, or not running, under either Server 2003 x86, or Server 2008 x64.  

  29. Simon says:

    We are a small business and have been using W2K3 with Virtual Server 2005 to run our back office. This machine can hibernate without issue.

    It is disappointing that W2K8 cannot hibernate when running Hyper-V. This will result in increased power costs / environmental impact at times when the current W2K3 setup would be hibernated. I hope that Microsoft will release a fix for this issue on W2K8 as increased costs are not welcomed.

Skip to main content