Tag Archives: Windows Server 2012 R2

Troubleshooting Hyper-V Webinar – Q & A Follow Up

In this post we answer a number of questions that we received from our viewers following our Troubleshooting Hyper-V webinar. Have a look at the answers if you’re looking to troubleshoot Hyper-V, and feel free to add more questions in the comments.

Read the post here: Troubleshooting Hyper-V Webinar – Q & A Follow Up

Scripting and Automation in Hyper-V – Webinar Follow Up

Back on the 10th of Dec. some of you may recall that Thomas Maurer and I did a webinar on Scripting and Automation in Hyper-V. We had a number of questions throughout the webinar that we were not able to get to due to time constraints, but I’ve compiled a list of some of the most ask about questions below and what their answers are.

Original post: Scripting and Automation in Hyper-V – Webinar Follow Up

Hyper-V Hot Topics – November 2015

Andy rounds up the hot Hyper-V topics of the moment! A couple of this month’s headlines:
“Hyper-V Scalability in Windows Server 2012 and Windows Server 2012 R2”,
“How Much Memory Does My Hyper-V Host Require?”
and “Generation 2 Virtual Machine Overview”.

Original post link: Hyper-V Hot Topics – November 2015

Do you have the right updates on your Hyper-V Cluster?

I have been on a number of customer calls recently where people were hitting problems for which we have already released hot-fixes.  If you are running a Windows Server 2012 R2 Hyper-V cluster I would strongly recommend that you read this article:

Recommended hotfixes and updates for Windows Server 2012 R2-based failover clusters

This article lists a number of hotfixes that are good for any Windows Server 2012 R2 cluster as well as some that are specific to Windows Server 2012 R2 Hyper-V clusters.  It also discusses what each issue is, and how it has been addressed.


Hyper-V and "Event ID: 157 – Disk x has been surprise removed"

After posting about Hyper-V and Event ID 58 the other week – I had a number of people ask me about Event ID 157.  They told me that each time they backed up a virtual machine they were seeing this event inside of the virtual machine as well.

At first, I could not figure out why they were seeing this – as I did not see it on my system.  Then I discovered why I was not seeing this – my systems are up-to-date!

We released an update to get rid of this event (KB2958027) – and this was then included in the November 2014 rollup (KB3000850). 

So if you are seeing this event log being filed:

  1. Install these updates!
  2. Or, know that you can safely ignore this message if it is happening when a virtual machine backup is happening.



Removing a Missing Network Adapter

I recently hit a problem with one of my virtual machines.  I had copied a virtual hard disk from one server to another, created a new virtual machine that used this virtual hard disk, and found that my scripts did not work anymore.  After a bit of inspection I realized what was going on – in moving the virtual hard disk, without the configuration file, I had created a new virtual network adapter.  My script was still referencing the old network adapter. 

Fortunately, I know a handy way to get Windows to forget about old network adapters.  You cannot just open Device Manager and remove the old network adapter – as it will not show it to you.  What you need to do is:

  1. Open a command prompt
  2. Type in “set devmgr_show_nonpresent_devices=1″
  3. Then type in “devmgmt.msc”
  4. Now, click Show hidden devices on the View menu in Device Manager
  5. At this stage you should be able to see the missing network adapter – and you can just right click on it and choose to Uninstall it.

Once I had done this – my script worked perfectly.


Checking Virtual Machine Health After a Disaster

Last weekend I suffered a human disaster in my “server room”.  Which is to say that I knocked down a shelf in my garage and accidentally disconnected the UPS.  This, in turn turned off all of my hardware.  An hour later I had fixed the shelf, reconnected all the wiring and had booted the servers again. I then had to make sure all the virtual machines were up and running.  I had some problems, because one disk array did not come online automatically, but after a bit of cajoling I believed everything was good. 

However, when you are using Hyper-V Replica this can be a bit tricky to check.  You see, I have two copies of every virtual machine and one should always be off.  After switching between my two servers a couple of times to try and check the status – I decided to go to PowerShell.

Now I had a quandary. How could I check the state of all the virtual machines that should be running, while not looking at the virtual machines that should be off?  The answer soon came to me:

get-vm -computername Hyper-V-1, Hyper-V-2 | ?{$_.ReplicationMode -ne “Replica”}

“Hyper-V-1” and “Hyper-V-2” are my two Hyper-V servers (creative names, I know).  And this command returns the status of every virtual machine that is not a replica.  I then checked the replication health of just the replica virtual machines with this command:

get-vm -computername Hyper-V-1, Hyper-V-2 | ?{$_.ReplicationMode -eq “Replica”} | select Name, ReplicationState, ReplicationHealth

Which gave me these results:

With that all done – I could get back to working in my garage.



SMB Bandwidth Limits and Shared Nothing Live Migration

This week I have been discussing the network QoS options available for a Windows Server private cloud.  On Wednesday I talked about the SMB bandwidth limit capability – that allows you to specify separate bandwidth limits for virtual machine storage and live migration traffic over SMB.  One interesting thing to understand is how this effects shared nothing Live Migration.

A shared nothing live migration performs a synchronized storage migration and memory migration for the virtual machine.

In this scenario, the storage migration traffic of a shared nothing Live Migration (and indeed any storage migration traffic) is tracked by the virtual machine storage SMB bandwidth limit – not the Live Migration SMB bandwidth limit.  The Live Migration SMB bandwidth limit only applies to the memory transfer of any virtual machine Live Migration.


Converged Network QoS and Live Migration over SMB

On Monday I gave you a pointer to a great resource on configuring network QoS in converged networking configurations.  One thing that this documentation does not cover is how to configure QoS for Live Migration over SMB.

If you are using Live Migration over SMB, and storing virtual machine hard drives on SMB shares, then both of these traffic flows will be covered by the SMB QoS policy.  However, they should not be treated the same.  Live Migration is designed to use all the network bandwidth it can – and some of that bandwidth needs to be reserved for virtual machine storage traffic.  Fortunately, Windows Server 2012 R2 includes tools that allow you to do just this.

Jose Barreto discusses this in detail on his blog post here: http://blogs.technet.com/b/josebda/archive/2014/08/11/smb3-powershell-changes-in-windows-server-2012-r2-smb-bandwidth-limits.aspx

The SMB Bandwidth Limits feature can be installed with either Server Manager or PowerShell.  Once installed – you can use the “Set-SMBBandwidthLimit” parameter to restrict the maximum throughput of Live Migration.

But what is the right limit to set?  That is hard to say, and varies from deployment to deployment.  On one hand – if you set the limit too low, you will slow down Live Migration in your environment. If you set it too high – you will see storage performance impacts while Live Migrating virtual machines.  Personally, I would recommend setting this to between 60 and 80% of the available network bandwidth. 


Getting QoS Right with Hyper-V and Converged Networking

Back in the “olden days” of Windows Server 2008 R2, getting networking right for a Hyper-V private cloud was simple.  Annoying – yes.  But simple.  Basically – you just had to have a separate network adapter (or two) for every class of traffic possible.

Thankfully with Windows Server 2012 (and 2012 R2) there are a number of ways to converge networking and you can now effectively run on only two of four network adapters.  While this is nice – it does raise a problem: how do you make sure that everyone gets the network bandwidth that they need?

You see – the different classes of traffic in a Hyper-V private cloud have very different behaviors and requirements.

  • Some are low bandwidth – but critical (like the cluster heart beat and remote management)
  • Some are medium to high bandwidth – and fairly constant (like virtual machine storage)
  • Some are high bandwidth – but sporadic (like live migration)

And making everything work smoothly can be challenging.  Fortunately we have some great documentation that is available here:


This steps through some of the common converged network configuration that we see – and tells you how to configure QoS (quality of service) settings to ensure that the right thing happens in your environment.