Our set up is as follows:
- Windows Server 2016 Storage Spaces Direct Hyper-converged Cluster
- 2 x Guests, running Windows Server 2016, with the following setup:
- 2 x shared VHD Sets, one as guest-cluster witness, the other as a data drive
- Running as a fail-over file server cluster (with the 'general purpose file server' configuration)
- Veeam Backup and Replication 9.5u4 installed
I have found an method that can (manually) successfully create checkpoints/snapshots of the cluster, using PowerShell as follows:
- First create a VM Group, and place the guest VMs into it:
Code: Select all
New-VMGroup - Name TestClusterGroup -GroupType VMCollectionType $vm1 = Get-VM -Name "Test-FS01" $vm2 = Get-VM - Name "Test-FS02" Add-VMGroupMember -VMGroup TestClusterGroup -VM $vm1,$vm2
- Find the CollectionID of the new VMGroup:
Code: Select all
$collectionID = get-wmiobject -Namespace Root\Virtualization\v2 Msvm_VirtualSystemCollection | where {$_.ElementName -eq "TestClusterGroup"} | select CollectionID
- Create an instance of the WMI object for managing Collection Snapshots:
Code: Select all
$collSnapSvc = Get-WmiObject -Namespace Root\Virtualization\v2 Msvm_CollectionSnapshotService [*]Get the WMI object that represents the VMGroup: [code]$VmColl = Get-WmiObject -Namespace Root\Virtualization\v2 Msvm_VirtualSystemCollection|? "CollectionID" -eq $collectionID.CollectionID
- Create a checkpoint/snapshot:
Code: Select all
$collSnapSvc.CreateSnapshot($vmColl,$null,32768)
- Obtain a list of the checkpoint collections that exist (not sure how you're meant to identify which one is the one you want - in my case there was only one):
Code: Select all
get-wmiobject -namespace Root\Virtualization\v2 Msvm_SnapshotCollection] [*]Get the WMI object that represents the snapshot/checkpoint collection (use the "CollectionID from the previous step): [code]$vmColl = get-wmiobject -namespace Root\Virtualization\v2 Msvm_SnapshotCollection|? "CollectionID" -eq "821A8C49-BED5-400F-90D0-F588003D3691"
- Remove the checkpoint/snapshot (this does seem to merge successfully, even with both VMs running - removing the files from the location of the VHD Set):
Code: Select all
$collSnapSvc.DestroySnapshot($vmColl)
Thanks!