Hyper-V Program Manager
People have asked me how you go about setting up a UPS (Uninterruptable Power Supply) with Hyper-V. This is much easier than it sounds. The first thing to understand is that when you shut down the physical computer, the virtual machines will be automatically put into a saved state. Virtual machines that were running when the server shuts down will be started automatically when the physical computer starts back up.
This all means that – for the most part – things “just work” when you connect a UPS and configure the management operating system like you would for a stand alone computer.
Depending on your environment – there are some configuration changes that you may want to make:
My personal UPS story:
You would not believe, but living in north Redmond the power quality around here is lousy. I often get strange power surges / flickers – and have to deal with half a dozen black-outs of one hour or more each year. Needless to say I have lost a bunch of hardware over the years as a result of this.
A while ago I went out and bought a nice beefy UPS to protect my Hyper-V server and all of my networking gear. To start with I just hooked up the power and confirmed that I could run for about 30 minutes before running out of power. I connected the USB monitoring cable, but did not setup any monitoring software, for a couple of reasons:
Recently, when I was performing some hardware maintenance on in my Hyper-V server I decided to go and have a look in the device manager to see what Windows thought about my UPS. Much to my surprise I saw that Windows had detected the presence of a UPS battery with no intervention from me:
Once I noticed this I decided to have a look around – and I discovered that Windows had enabled standard power support – and was acting like my server was essentially a really big clunky laptop. I had a battery icon in the task bar that accurately reflected the amount of charge in my battery, and when I disconnected power from the UPS – Windows immediately knew about it.
Next I opened the power policy settings and configured my system to get a low battery alert when the battery was at 75% charged, and to shut down when the battery reached 50% charged:
I have since tested this – and everything works perfectly – all with no need for anything other than the “in-box” capabilities of Windows Server 2008 R2. Neat!
Indeed all the software that comes with UPS devices is more or less lousy. Go figure. Of course I am talking about simple workstation/server UPS devices.
I wonder whether there is a list of UPS devices that are automatically recognized by Windows. For example my Windows 7 doesn't have a clue about my Socomec UPS.
i've tried a few UPS's and the APC ones seem to be the only ones that work with vista, 2k8 and win7 enabling suspend (unless using hyper-v!) and power saving settings to be controlled natively by windows. i'd only buy apc in the future because of this. all my PC's running vista or newer have their settings rolled out by group policy now and there is no need to install APC software anyware!
Is it really that hard to make UPS windows compliant instead of distributing crap software?
What model of UPS are you using?
Socomec NeTYS PE 800VA. They provide Uni Vision software which is $#$#%#"&#!.
The funny thing is that this isn't really a no-name UPS.
On the good side it is passively cooled - no fans thus no noise.
the eaton/powerware ups's are a fairly large well known brand too and I had no luck with them. i'm sure it can't be that hard for these other vendors to create an ACPI compliant UPS interface.
Another Socomec user here...with the same issue, not to mention there's no way to turn off the alarm permanently. I really don't need to be waken up at night so I can manually turn it off...
Their support was less then helpful in this area as well.
For the record - my UPS is the APC Back-UPS XS 1500.
A correction on the saved state. It is my understanding that the machines will only resume if the option is set to do so on the virtual machine itself.
Under Virtual Machine Settings --> Automatic Start Action there are 3 options
Auto Start if was running when service stopped
This setting must be set correctly to get the desired results.
Hi, You need to aware with some issues with the built-in Windows support for USB connected UPS-s especially on servers. Some APC models and almost all of Eaton ones behave normally during shutdown, but the UPS does not restart when power is restored (You have to manually start the UPS).
Tracy Sells -
Correct, but "Auto Start if was running when service stopped" is the default setting for virtual machines.
Toma Bussarov -
Interesting, I will have to look into this.
Hey Ben, your article inspired me to get one of those APC UPS's. I waqs a bit disappointed that the added software only shuts down one system, rather than any number you want.
Since you mentioned W2K8 now 'sees' the UPS, I used WMI in a VBScript to poll the UPS, and shut down any number of machines I want!
It is very nice. But what about the core edition or the Hyper-V server edition and UPC connection?
That's also what I would like to know: How can an UPS be handled with Hyper-V R2 Server edition (Core) ?
Is there a way I can run a script from a Server 2008 Hyper-V session that shuts down processes within VM's running on it? I know with physical servers PSShutdown can shutdown a remote machine via IP. What would be the way to script it so that I can upon the host machine getting the power out signal from the UPS then invoke a batch file on the virtual machines which would shutdown various processes on the virtual machine and then shutdown the system altogether?