So what is guest cluster? A guest cluster is when you create cluster inside of virtual machines. In the past we’ve done that trough ISCSI or FC and lately with Shared VHDX in Windows Server 2012 R2. And like any other cluster you will want to monitor these clusters with SCOM but as they are just like any other cluster where is the catch? Continue reading “Notes from System Center Battlefield: Monitoring Guest Clusters with SCOM”
Tag: Shared VHDX
Error 23317 in VMM 2012 R2 When You Try to Apply Changes on VM That is Using Shared VHDX Disk
When you try to apply some change on a virtual machine with Shared VHDX disk in Virtual Machine Manager 2012 R2 you may receive the following error:
Error (23317)
The operation Change properties of virtual machines is not permitted on a virtual machine that has shared virtual hard disks.
Recommended Action
The operation Change properties of the virtual machine is not permitted on a virtual machine that has shared virtual hard disks.
Even that I was not changing anything related to the shared disks the task would fail. There is an easy fix for this and as many times it is called PowerShell. If you do not know PowerShell do not worry here are easy steps:
1. Open the Properties of the Virtual machine you want to change.
2. Make the change but do not apply.
3. In the left corner of the properties dialog box you will see View Script button. Press it.
4. A script will come up.
5. You need to take the part that is only related to your change. For example if I want to change only the classification of a network adapter I would have something like this:
$VirtualNetworkAdapter = Get-SCVirtualNetworkAdapter -Name “server1” -ID “6c733a79-4ef5-4df4-9b39-690b8ab0be46”
$VMNetwork = Get-SCVMNetwork -Name “VMetwork_Test” -ID “675245a2-c660-46d7-aee0-b8ece987e49b”
$VMSubnet = Get-SCVMSubnet -Name “VMSubnet_Test” | where {$_.VMNetwork.ID -eq “623294a2-c660-46d7-aee0-b8ece987e49b”}
$PortClassification = Get-SCPortClassification | where {$_.Name -eq “Classification1”}
Set-SCVirtualNetworkAdapter -VirtualNetworkAdapter $VirtualNetworkAdapter -VMNetwork $VMNetwork -VMSubnet $VMSubnet -VLanEnabled $true -VLanID 77 -VirtualNetwork “vSwitch” -MACAddressType Dynamic -IPv4AddressType Static -IPv6AddressType Dynamic -PortClassification $PortClassification
Basically you take that part of the generated script that is only for your change. Remove any –VMMServer property reference and any –JobGroup Property reference.
6. Open VMM PowerShell. Paste the script and you are done. Your change is applied to VM with shared virtual disks.
Steps to Migrate Virtual Machines with Shared VDHX from One Cluster to Another
Imagine the following situation: You have two Windows Server 2012 R2 Hyper-V clusters – Cluster1 and Cluster2. Every cluster has two or more nodes. On Cluster1 you have two virtual machines VM1 and VM2. The virtual machines are in guest cluster and are using one or more Shared VHDX files. As you probably know virtual machines with shared vhdx files cannot be migrated with shared nothing live migration. Than how to move VM1 and VM2 from Cluster1 to Cluster 2? Here is a solution for you:
- Logon to VM2. Start Failover Cluster Console. Pause VM2 as node in the cluster and drain all roles.
- Shut down VM2.
- Logon to VM1. Shut down VM1.
- Remove cluster resources for VM1 and VM2 from Cluster1.
- Open Hyper-V console on the node of Cluster 1 where VM1 and VM2 are.
- From the VM settings of VM2 remove all shared VHDX disks. Apply.
- From the VM settings of VM1 remove the checkbox for shared VHDX on all drives where is checked. Apply
- From Hyper-V console move VM1 to one of the nodes of Cluster2.
- From Hyper-V console move VM2 to one of the nodes of Cluster2.
- Now VM1 and VM2 are on Cluster2.
- Open the Hyper-V console on the node of Cluster2 where VM2 is.
- Open VM settings for VM2. Attach all shared vhdx files as disks that you’ve removed in step 6 in the same order as before. Check the checkbox for shared VHDX on all of them. Apply
- Open VM settings for VM 1. Check the checkbox for shared VHDX for all disk that you’ve removed in step 7. Apply.
- Add VM1 and VM2 as cluster resources in Cluster2.
- Start VM1. Check if VM1 is healthy and all resources/roles are up in the Failover Cluster Console.
- Start VM2. Resume VM2 as node of the guest cluster. Migrate all roles and resources to make sure everything is ok.
These are all the steps you need. I hope they will help you.