Failover Clustering and Network Load Balancing Team Blog
In a previous blog post I explained how VM Monitoring can be configured in Window Server 2012. In this blog I will answer the three most frequently asked questions related to the VM Monitoring feature.
1) Why can I no longer make my Print Server role Highly Available in Windows Server 2012? I was able to do this in Windows Server 2008 R2.
In contrast to previous versions of Windows Server, Windows Server 2012 defines a highly available print server as a Hyper-V virtual machine(VM) running on a node in a cluster. A single virtual machine with the Print Server role installed can then be migrated from one node in the Hyper-V cluster to the other using either manual or automatic methods.
In Windows Server 2012, the print spooler service is no longer a clustered resource and instead the entire virtual machine is migrated from one Hyper-V node to the other. This new model provides the same seamless user experience as previous versions of Windows but with the following added benefits:
In a nutshell, using the VM Monitoring feature, the new print spooler HA model is able to streamline the deployment and management while providing higher availability for your users.
For additional information please refer to:
High Availability Printing Overview
Install and Configure High Availability Printing
2) I want to configure VM Monitoring for a mission critical Virtual Machine. I do not want to take automated recovery actions such as rebooting my VM. I want to be notified when my VM encounters a critical condition so that my administrator can investigate the failure. How do I do this?
I have System Center Operations Manager deployed on my host (cluster node hosting the VM). How do I configure Operations Manager to work with VM Monitoring?
I want to customize the recovery action taken by the VM Monitoring. I don’t want to restart the VM or failover the VM on a failure. How do I do this?
If the “Enable automatic recovery for application health monitoring” option is deselected, the cluster service does not take any automatic recovery actions when a VM critical condition occurs. It does however log event ID 1250, to indicate that a critical condition occurred in your VM. To deselect this setting:
Using Failover Cluster Manager:
A) Select the VM that you want to configure this setting for
B) Click on the Resources tab
C) Right click on the Virtual Machine resource and select the Properties option.
D) Select the Settings tab and uncheck Enable automatic recovery for application health monitoring
Using Windows PowerShell©
a) Open a Windows PowerShell shell as an Administrator
b) Set the EmbeddedFailureAction property for the VM resource:
(Get-ClusterResource "*e test-VM").EmbeddedFailureAction = 1
Note: To re-enable automatic recovery actions on VM Critical failures this property should be set to 2 (default).
You can monitor Event 1250 to customize recovery action on VM Critical failures. Some options include:
A) Setting up a Cluster Scheduled task to carry out a desired sequence of actions on the occurrence of the VM event or service failure being monitored e.g.: Initiate a live migration on a VM network failure or send an email to a cluster administrator indicating the failure condition.
B) Configure System Center Operations Manager to take recovery actions when the event is triggered on the host.
C) Use a 3rd party solution such as Symantec ApplicationHA© for Hyper-V which provides advanced customization of recovery actions.
The administrator can investigate the VM in critical state as follows:
a) Log onto the VM
b) Launch Task Scheduler
c) Navigate to the Microsoft/FailoverClustering/VM Monitoring node
d) Examine when the last event or service failure occurred.
e) Once the failure has been examined and appropriate recovery actions taken, the VM can be removed from Critical State by running the following Windows PowerShell cmdlet as an Administrator on the guest:
3) The Virtual Machine I want to monitor is not in the same domain as the cluster node it is hosted on. Can I configure VM Monitoring?
In this configuration VM Monitoring needs to be configured using Windows PowerShell by logging into the guest (virtual machine).
Steps to configure in the guest using PowerShell:
a) Open a Windows PowerShell shell as an Administrator
b) Run the Add-ClusterVMMoniteredItem cmdlet inside the guest to configure monitoring
Example: Add-ClusterVMMonitoredItem –service spooler
Clustering and High Availability
Another challenging question, What is the possibility to monitor the Free Disk Space (C:\ or D:\) for a VM within Hyper-V 2012 cluster using VM Monitoring feature?
I have 2 Nodes in a cluster, I need to monitor the free disk space for that particular VM, so when the C:\ drive is almost full, I will receive an alert.
Thank you and regards
I'm sure you have considered using Operations Manager for this scenario - that would be the preferred way to do this.
However, if you'd like to use VM Monitoring:
- Configure monitoring on the VM for the event triggered when you're running out of free space
Examples of events would include: support.microsoft.com/.../2486243
- Next turn off the default recovery action as detailed in the blog. The cluster service would not take any action when the event is triggered in the VM but would generate an event on the host
- You can customize further. For instance you can generate a clustered scheduled task triggered off the event on the host to notify you with an email...
great so my print cluster is no longer fault tolerant and requires even more san space
now If node a dies I have to wait for node b to spin up a vm .. hmm yeah no thanks. if I wanted this I would just use VMware at least with it I can configure ft with critical vms.
a note we use small print failover clusters in our remote offices. the san space required for a traditional print cluster was tiny.. This is just another crappy push to get people to use hyper v ..
Thanks for your note Brian!
I disagree that your VM is no longer FT. That is precisely what VM Monitoring provides.
In Server 2008 R2 and your highly available print server, if your node went down you would have down time until the print server role was brought up on another node as well. If possible in WS 2012, clustering will live migrate your VM hosting your Print Server role so you are one up apart from a power failure...
If you are so crunched for SAN space that you cannot even afford the 10MB odd to spin up a VM, you can always use an iSCSI target coupled with CSV as a solution.
As for VMware FT VMs, please do try it out on your production environment and let me know how it works out ;)
Thanks for the post and comments; since you have to have a backup VM for patching, you have to do all configurations twice....the old method seemed better / easier for this.
Thanks for your note Kristian! I do agree that this solution is less amenable that the previous strategy w.r.t. patching given that your spooler service is tied to your VM. However, I don't see why you have to do all the configuration twice for your backup VM. Once you've configured the first VM as desired you can use the base/golden vhdx to spin-off a second or multiple backup VMs (that way you do not have to reconfigure each VM).
I am new to Cluster 2012. I have couple of questions. Can you please answer.
1. Can we create HA Printing Cluster in VMWare (like ESXi) environment? I know that we can very well create cluster for other services in virtual environment. But when it comes to HA printing, since we need to enable Hyper-V also which leads to nested virtualization, I have got this doubt. Can you please clarify?
2. I assume we need to install VM in a cluster storage disk to allow the VM to do fail over between the nodes. Is my understanding correct?
3. Using VM Monitoring service is mandatory for HA Printing?
For a VMware environment we would recommend you create a Guest cluster then use guest AppHA techniques available in their platform. These include solutions such as Symantec ApplicationHA and VMware's native AppHA support.
You can use block based or file based storage. In the first case your understanding is correct. In the second case you can use options such as a Scaleout File Server to host the VM.
As of Windows Server 2012 VM Monitoring is the HA story for the Print Server.
I agree with Brian; this is push to use HyperV, and it is not as highly available as the old solution. With 2008 R2 clustering, I can fail over while patching the passive node. With 2012, now I need to wait until the server comes back online. And what happens if it is stuck with that message "applying updates ... please no not turn off the machine". Printing is impacted until that VM comes back online.
Not sure how your suggestion will work "The impact of this planned downtime can be mitigated by having an additional Print Server hosted on a Hyper-V node as a backup". This backup has a different name, so how are people pointing to this print server? With 2008 R2 being a cluster and using the cluster resource name there is no need to rename or any other shenanigans as everyone is pointing to the cluster name.
If it is not a way to push to HyperV, the MS team just could not properly support true High Availability printing (were there issues during testing) and decided to get rid of it. And this is the Band-Aid.
Funny how this is no longer available for High Availability but WINS still is?
Thanks for your feedback on this! It's much appreciated. I've forwarded it to the Print Server team. I know they are evaluating their HA story for the next Windows Server release and will take your feedback into account.
Although the Print Server role cannot be configured for failover with Failover Clusters, we can still select the Print Spooler service as a generic service ( imageshack.com/.../4jok84.png ). Is there any limitation introduced with this option, which we had been using succesfully since Windows Server 2003?
There has been no restrictions introduced to the gen service. You should still be able to use this option if you choose to do so.
I been reading on HA for Printing using MS Server 2012 but from my understanding, Hyper-V only monitor the hardware HA part (correct me if I'm wrong). What about the software part? What if the Windows Printer Spooler down? What can I do so that if there's any problem with the Windows Printer Spooler, it will auto switch to another VM? Please advice.
If the Print Spooler is down we will detect this through VM Monitoring. Here is more information on how VM Monitoring works - blogs.msdn.com/.../10295158.aspx . More information on configuring HA for spooler can be found here: technet.microsoft.com/.../jj556313.aspx
Thanks for your prompt reply.
Can you also advice if I can use the same method of printer spooler monitoring tools to monitor other services from the software I installed?
What is the licenses that I'll need to purchase if I've 2 hardware server and 1 SAN storage? I want to achieve HA on server hardware and also application as well.
Is it possible for you to send me an email to raymond_tams[at]hotmail[dot]com? I've a diagram that I need your advice if it's possible to work.