Suppose you have some Hyper-v Machine’s and running Azure Stack and the VM’s have all follow up codes and there are say 1000 DC and 2000 File servers etc this is a hard time to manage. So there for in Windows Server 2016 you can work with VMGroups. So you don’t have to list all 11151 VM’s on the Hyper-v server to manage a VM you can create groups and manage the Group. multiple changes in one simple action.
All these options are PowerShell only there is no GUI or indication that there is a configuration active So be careful when you are starting with this.
Just a Quick selection how many VM’s are on this host.
VMGroups how does this work and how can I use it.
First check what commands we have Add-Get-New-Remove
Get-Command *vmgroup* to get a listing on the Group commands
VM groups comes in two types
- VM collections: which is a logical collection of VMs on which you can take some actions at the level group.
- Management collection: is a logical collection of VM collection groups and or mixed groups
VM Groups can be used when doing the same task to multiple VM’s say backing up Shared VHDX or setting up Replication or start stop VM’s . Its also provide easy management of multiple VMs when using VM Collection Groups.
First we need to create a new group
In this sample I’m using several groups as I have a lot off VM’s running on this Hyper-V server they are divided in several groups.
as the –Verbose will show you some text on what the command did.
# Create new VM Group
New-VMGroup -Name AstackDC -GroupType VMCollectionType –Verbose
Now that the Group is created we can add members to the group. as Currently there are no members in any group
Get-VMGroup |SELECT NAME,VMMEMBERS
As I have a lot off VM’s with all follow up numbers if need to combine them and not picking them by hand.
First my first 20 Machines are all tenant Domain controllers I create a VM group to combine all these DC’s
$AstackDCten=1..10 | % { Get-VM -Name azurestvm0$_}
#Add VMs to the VM Collection Groups
$AstackDCten=1..10 | % { Get-VM -Name azurestvm0$_}
Add-VMGroupMember -VMGroup (Get-VMGroup AstackDCten) -VM $AstackDCten
Get-VMGroup AstackDCten
Suppose you want to do maintenance on the DC’s you could create a A and B group and during patching you reboot A first and then B. It is all possible.
#View the membership of the groups
Get-VM | ft Name, Groups -AutoSize
Get-VMGroup AstackDC
As you can see there are now multiple ways to show the VM’s Say you have a test lab or during maintenance you want to stop some VM’s
#Perform actions on the group as if it were a VM
Stop-VM -VM (Get-VMGroup AstackDC).VMMembers
Start-VM -VM (Get-VMGroup AstackDC).VMMembers
Or you can setup a VM replication
Enable-VMReplication -VM (Get-VMGroup AstackDC).VMMembers –ReplicaServerName SOFS08 -ReplicaServerPort 50001 -AuthenticationType Kerberos -CompressionEnabled 1 -ReplicationFrequencySec 30 -AutoResynchronizeEnabled 1 –recoveryhistory 4 –vsssnapshotfrequency 4
Or check the memory and upgrade all VM’s in a group Plenty of options there.
#Create combined VM Management Group with AstackDC and AstackDCten
New-VMGroup -Name MgmtDCGroup -GroupType ManagementCollectionType
Add-VMGroupMember -VMGroup (Get-VMGroup MgmtDCGroup) -VMGroupMember (Get-VMGroup AstackDC)
Add-VMGroupMember -VMGroup (Get-VMGroup MgmtDCGroup) -VMGroupMember (Get-VMGroup AstackDCten)
Get-VMGroup -Name MgmtDCGroup
#Create VM Management Group with MgmtDCGroup and AVMDCWAPGroup to show nesting
New-VMGroup -Name MgmtDCFullGroup -GroupType ManagementCollectionType
Add-VMGroupMember -VMGroup (Get-VMGroup MgmtDCFullGroup ) -VMGroupMember (Get-VMGroup MgmtDCGroup )
Add-VMGroupMember -VMGroup (Get-VMGroup MgmtDCFullGroup ) -VMGroupMember (Get-VMGroup AVMDCWAPGroup )
Get-VMGroup MgmtDCFullGroup | Select-Object -ExpandProperty VMGroupMembers
As you can see with a view VM’s this is not that complicated but with a large amount of VM’s this can rapidly grow to a uncontrolled situation. As this must be done from PowerShell use the ISE if you do something wrong you can easily delete the groups and add them again and think about the group names and members before you start
VM Collection Groups are fairly simple. They maintain a membership of virtual machines, those VM groups contain actual VMs.
Management Collection Groups
The Management Collection Groups, on the other hand maintain a membership of VM Collection Groups. Please note that VMs cannot directly belong to the membership of a management collection.
The group name for VM and Management collection groups might be confusing a little bit, in order to differentiate between both groups, we can refer to the collection group using the first name “VM” (membership of individual virtual machines), and “Management” “MGMT” (membership of VM groups).
VMGROUP Removal
If you want to delete the management collection group, you need to remove first the VM groups from the management collection and then delete the management group.
The following PowerShell script will allow you to do so:
# Remove VM Group Members from Management Collection
Remove-VMGroupMember -VMGroup (Get-VMGroup MgmtDCGroup) -VMGroupMember (Get-VMGroup AstackDCten) –Verbose
Remove-VMGroupMember -VMGroup (Get-VMGroup MgmtDCGroup) -VMGroupMember (Get-VMGroup AstackDC) -Verbose
remove-VMGroup -Name MgmtDCGroup –Verbose
So always remove the nested Groups first there is no Force option that deletes the whole Tree at once.
When there are no nested groups or VM’s in the group you can delete the Group.
VM management is getting more complicated as the VM’s are growing and central management is great and now with the VMgroups you can easy manage a large amount of VM single handed.
Follow Me on Twitter @ClusterMVP
Follow My blog https://robertsmit.wordpress.com
Linkedin Profile Http://nl.linkedin.com/in/robertsmit
Google Me : https://www.google.nl
Bing Me : http://tinyurl.com/j6ny39w