Tired of “Unsupported Cluster Configuration” for some of your VMs?

Inspite of my refreshing the VMs having this error……….fingers crossed……..sometimes the error went away….sometimes did not. I was getting really frustrated. Here is how to fix it, once and for all:

In Failover Cluster Manager, check the name of the VM….if it is something like – “SCVMM server_name Resources”… rename it to just server_name.

Then refresh the VM inside SCVMM’s Virtual machine Manager. VIOLA! the VM would be back to normal.

Beware of Server 2012 R2 installation on VMM (error 0xE000100)

I just wasted a couple of hours troubleshooting this error 0xE000100 while installing Windows 2012 R2 on VMM 2012 SP1 (older version). At first I thought there was some data corruption, ended up downloading the ISO again, to no avail. Then I thought maybe you cannot install R2 on older VMM. I started googling the requirements for 2012 R2. After much googling I found out the problem. I created the VM with dynamic RAM, using the default 512MB startup and 10GB max. THAT is the problem. Check this out:

http://technet.microsoft.com/en-us/library/dn387077.aspx

Under setup for virtual machines section, they say:

If you create a virtual machine with the minimum supported hardware parameters (1 processor core and 512 MB RAM) and then attempt to install this release on the virtual machine, Setup will fail.

Cowbanga!! Note to myself, never use dynamic RAM to install a VM’s OS!

I have used dynamic RAM on all older OSes from Windows, works fine…but with 2012 R2 it does not. I think it is best to make the switch to dynamic RAM later.

List VMs on your SC VMM 2012

Wanna find out what VM is running on which server in your SCVMM cluster? This PowerShell script does it for you! (run it on the VMM server’s Virtual machine manager Command Shell)

Get-SCVirtualMachine | Select-Object -property HostName, Name, Description | Sort-Object -Property HostName | Export-Csv .\vm-list.csv

Here is another one which you can run to find which VMs are currently running. This is useful in case you want to shut all of them down using some script.

Get-SCVirtualMachine | where {$_.StatusString -eq “Running”} | Select Name | Sort-Object -Property Name | Export-Csv .\vm-list.csv

Find location of your VMs

Ok so now you have many, many VMs running on your Hyper-V hosts. You wanna know where are they actually running from… I mean on which SAN, which LUN or which local disk array are they running. There is no easy way to find out that information from the VMM Manager console. You can open up the properties of each and every VM and look at the config but it is not practical.

PowerShell to the rescue! Here is a small PS code snippet which will show you the information quickly.

Get-VM –ComputerName HOSTNAME1, HOSTNAME2 |
Get-VMHardDiskDrive |
Select-Object -Property VMName, ComputerName, ControllerType, Path |
Sort-Object -Property VMName |
Out-GridView -Title “Location of Virtual Disks”

I run it in Windows PowerShell ISE.

Note that you can extract info from multiple Hyper-V nodes and If required, you can easily add more information like VMId, ControllerNumber and ControllerLocation

You can extract even more information, for example if you want to see which VMs are actually running and/or if you want to output a CSV…

Get-VM -ComputerName hyperv1p,hyperv2p |
# Un-comment “state equals OFF or running” to see VMs listed in that state.
# where State -eq “OFF” |
# where State -eq “Running” |
Get-VMHardDiskDrive |
Select-Object -Property VMName, ComputerName, ControllerType, Path |
Sort-Object -Property VMName |
# Now either output to a powershell window or export to CSV (can’t do both)
# Out-GridView -Title “Location of Virtual Disks of turned off VMs”
Export-Csv .\vm-disk-location.csv

Troubleshooting Windows Remote (WinRM)

Here are a few commands which can be run to troubleshoot Windows Remote (WinRM) connectivity (These commands may need to be run on an elevated CMD):

This shows you which port and IP addresses WinRM is listening to:

winrm e winrm/config/listener

This checks if WinRM has some problem:

winmgmt  /salvagerepository

This shows you the configuration:

winrm get winrm/config

 

I ran these commands on my Hyper-V nodes and VMM server, while troubleshooting connectivity / permission related errors.