The reason why i saw this is because
a)i did not purchase premium key for MD3000 (shared storage) to support snapshot
b) do not have additional hard disk space to allocate for snapshot. It require 20% of free space on the storage
c) Besides that, i do not install hardware VSS provider to support parallel backup. (default:- 3) or no hardware VSS provider is provided.
To solve this problem, you need to enable serialization backup of CSV node.Thanks to Robert which blog about this issue. (You can view the solution from here as well:- http://robertanddpm.blogspot.com/2010/07/enabling-serialized-backup-of-hyper-v.html )
Here is the summary to resolve this issue:-
a) On DPM server, modify the registry (change data from 3 to 1)
Key : HKLM\Software\Microsoft\Microsoft Data Protection Manager\2.0\Configuration\MaxAllowedParallelBackups
Value: Microsoft Hyper-V
Data :1
Type: DWORD
This will ensure that only one backup job will run at a time on a Hyper-V host.
b) Share the folder C:\Program Files\Microsoft DPM\DPM\Config with the name DPMConfig. Assign domain account as Full right.
c) Save the following script as "DSConfig.ps1" and dump to C:\Scriptps (create this folder on the cluster node). Just modify the DPM FQDN.
Note:- You can get the script from here:- http://www.hodgkins.net.au/wp-content/uploads/downloads/2010/03/ListVMsOnClusterForDPM.zip
# List Hyper-V Virtual Machines On The Cluster
# Original Script From DPM2010BetaProtectingHyperV.docx
# Updated and Improved by Matthew Hodgkins
# http://www.hodgkins.net.au/
# Please Specify The FQDN or IP address of your DPM Server
$DPMServerName = "DPM FQDN"
# DSConfig.ps1
$infoText = "This script will generate the DatasourceGroups.xml file in the current path. Once this file is created merge it with the same file name under %programfiles%\Microsoft DPM\DPM\Config directory on the DPM server. Read the documentation for more details."
echo $infoText
$header = " `n" "
$footer = "
import-module -name FailoverClusters
$dir = [guid]::NewGuid()
md $dir
$cluster = get-Cluster
$FQDN = $cluster.Name + "." + $cluster.Domain
$res = get-clusterresource
where-object { $_.ResourceType.Name -eq "Virtual Machine Configuration"}
foreach ($r in $res)
{
$VmObj = Get-ClusterParameter -inputobject $r
where {$_.Name -eq "VmStoreRootPath"} # Identifies the CSV volume on which the VM is hosted.
$VmName = Get-ClusterParameter -inputobject $r
where {$_.Name -eq "VmId"}
$vol = $vmobj.Value.Split("\")[2] # $vol will return to us the Volumeof the CSV on which the VM resides.
$line = ""
echo $line >> $dir\$vol # File VolumeX will contain entries for all VMs hosted on CSV VolumeX
}
echo $header > DataSourceGroups.xml
$filelist = dir $dir\Volume*
$GroupEndString = ""
foreach ($file in $filelist)
{
$GroupBeginString = "" # Group name is kept VolumeX itself
echo $GroupBeginString >> DataSourceGroups.xml
type $file >> DataSourceGroups.xml # Consolidating groups pertaining to all the volumes.
echo $GroupEndString >> DataSourceGroups.xml
}
Remove-Item -Force -Recurse $dir
echo $footer >> DataSourceGroups.xml
# Copy The DataSourceGroups.xml file to the DPM Server
copy DataSourceGroups.xml \\$DPMServerName"\DPMConfig"
d) On one of the CSV node, use powershell to execute
set-executionpolicy remotesigned
Type - Y
./DSConfig.ps1 (to execute the script)
e) On the DPM server, check and make sure file DataSourceGroups.XML is listed in C:\Program Files\Microsoft DPM\DPM\Config. If you edit the file "DataSourceGroups.XML", you can see all the Virtual Machine on your cluster is listed in the XML file.
f) Finally change the protection group to backup one VM at a time.
p/s:-If your shared storage can support hardware VSS provider, remember to revert the above changes.
That's all. Cheer, Lai