DPM2010 & Backup 2 Tape RRS feed

  • Question

  • Hi everbody,

    I'm a german admin (sorry for my bad english) and a little bit new to DPM. At the end of last year I went to workshop where I learned to install and administer DPM. We had to buy new licenses for BackupExec so I proposed to use DPM instead (we have Windows servers). Installation was no problem and backup to disk works fine, but backup to tape is getting me into trouble.

    What I have:
    - DPM server with 1.400 GB disk storage (79% used)
    - 7 Protection Groups
    - HP 1x8 G2 Autoloader (newest drivers & firmwares)
    - 8 LTO3 Tapes in the library (OptimizeTapeUsage=True)
    - All long term protection groups are configured with 1 recovery point every 1 week for the last 4 weeks
    - Long term protection group backup jobs have enough time between each other

    What I need to have:
    - Functioning OptimizeTapeUsage feature :-)
    - 2 or 3 tapes with all the backups
    - Copy option enabled to have these 2 or 3 tapes duplicated because I have to bring the tapes offsite weekly

    - The IO error. I solved it by changing registry values: BufferQueueSize=1; TapeSize=716800
    - Tape usage is so poor that 8 tapes aren't enough (ErrorID 3305 tape treshhold)

    - Is there any way to get my protection groups on these 2 or 3 tapes?
    - Does a redesign of my protection groups solve the problem?
    - How do you bring your backups offsite?
    - Is tapebackup via firestreamer and external harddisk perhaps a workaround?


    • Edited by C. Dittrich Sunday, February 12, 2012 6:13 PM more detailed information about long term backup
    Sunday, February 12, 2012 2:03 PM

All replies

  • Hi,

    I would also adjust the BufferQueueSize to be 2 or 3, otherwise recovery jobs may fail or hang.

    Make sure all the protection groups that you want to be co-located on the same tapes all share the "exact same" long term recovery goals, then adjust your WritePeriodRatio based on the retention range.

    See the following post:

    You can run the following DPM powershell script to see which protection goups can be co-located.

    # This tool extracts long term configuration from all protection groups and write the output     
    # @ longterm.txt. Run this script from the DPM bin folder by default this is under               
    # c:\program files\microsoft dpm\dpm\bin                                                         
    # Version    : 1.2                                                                               
    # Change log : 6/28/11 - Version 1.2 Tool checks which protection groups share the same retention goals                                                                                              
    # Change log : 6/23/11 - Version 1.1 Tool checks if it is running on a DPM 2007 or DPM 2010      
    $dpmversion = ((get-process | where {$ -eq "msdpm" }).fileversion)
    write-host "DPM Version - " $dpmversion "`nCollecting Long Term protection Information. Please wait..." -foreground yellow
    $dpmserver = (&hostname)
    out-file longterm.txt
    $pg = @(get-protectiongroup $dpmserver | where { $_.ProtectionMethod -like "*Long-term using tape*"})
    write-host "We have" $pg.count "groups with tape protection"
    foreach ($longterm in $pg)
    	"-----------------------------------------------------------`n" | out-file longterm.txt -append
    	"" | out-file longterm.txt -append
    	"Protection Group " + $longterm.friendlyname | out-file longterm.txt -append
    	switch ($dpmversion.substring(0,1))
    		2 { $policySchedule = @(Get-PolicySchedule -ProtectionGroup $longterm -longterm)}
    		3 { $policySchedule = @(Get-PolicySchedule -ProtectionGroup $longterm -longterm tape)}
    		default { write-host "NOT TESTED ON THIS DPM VERSION. Exiting script" -foreground red;exit }
    	$tb = Get-TapeBackupOption $longterm;$tb = $tb.labelinfo
    	$label = @($tb.label);
    	$count = $policySchedule.count -1
    	while ( $count -ne -1)
    		if ($label[$count].length -eq 0 -or $label[$count].length -eq $null)
    			"Default Label Name" | out-file longterm.txt -append
    			"Tape Label: " + $label[$count] | out-file longterm.txt -append
    		$policyschedule[$count] | fl * | out-file longterm.txt -append
    if ($pg.count -gt 1)
    	while ($pgcount -ne ($pg.count-1))
    		$collocation = @($pg[$pgcount].friendlyname)
    		write-host $pgcount -background green
                    (Get-TapeBackupOption $pg[$pgcount]).RetentionPolicy | out-file policyretention.txt
    		write-host "policyretention.txt" -foreground green
    		type policyretention.txt
    		$pgcountinnerloop = 0
    		while ($pgcountinnerloop -ne $pg.count)
    			write-host $pgcountinnerloop -background yellow
    			if ($pgcount -eq $pgcountinnerloop) {$pgcountinnerloop++}
    	                (Get-TapeBackupOption $pg[$pgcountinnerloop]).RetentionPolicy | out-file policyretention1.txt
    			write-host "policyretention1.txt" -foreground green
    			type policyretention1.txt
    			$compare = Compare-Object -ReferenceObject $(get-content policyretention.txt) -DifferenceObject $(Get-content policyretention1.txt)
    			if ($compare.length -eq $null)
    				if ($pgcountinnerloop -lt $pgcount)
    					$collocation = $collocation + $pg[$pgcountinnerloop].friendlyname
    					write-host "estou aqui"
    		if ($collocation.count -gt 1)
    			"-----------------------------------------------------------" | out-file longterm.txt -append
    			"Groups that can share the same tape:" | out-file longterm.txt -append	
    			write-host $collocation	
    			foreach ($collocation1 in $collocation)
    				$collocation1 | out-file longterm.txt -append
    "-----------------------------------------------------------" | out-file longterm.txt -append
    $dir = dir longterm.txt; write-host "`nDONE`n`nOutput file Created:" $dir.fullname -foreground yellow
    # explorer .

    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

    Sunday, February 12, 2012 4:05 PM
  • What we supposed to do with those code/script?

    Save as .ps1 ? What name code/script that will be?

    • Edited by Oneoa Monday, February 13, 2012 7:19 AM
    Monday, February 13, 2012 7:15 AM
  • Hi,

    you can name the script as you want as .ps1 file. Put it into the bin-dir as Mike Jaquet mentioned in the previous post and run it in dpm-powershell with elevated rights.

    • Edited by C. Dittrich Monday, February 13, 2012 1:42 PM
    Monday, February 13, 2012 1:42 PM
  • Hello again,

    yesterday I erased all tapes and configured 2 protection groups ("Backup - Domain Controller" & "Backup - Exchange") for longterm backup. Both with 1 recovery point every 1 week for the last 4 weeks. Then I manually created a recovery point for each of the 2 protection groups. The backups are done now, but when I execute the script I get following message:

    Why does it say "We have 0 groups with tape protection"?

    I also adjusted the BufferQueueSize to 3, backup jobs ran fine :-)

    Monday, February 13, 2012 6:19 PM
  • Hi again,

    please correct me if my thoughts aren't right:

    If I have all longterm protection groups configured with the same retention period then the value of WritePeriodRatio must be 1 ? !

    Yesterday I did a tape backup test with all my protection groups. I ran into the same error as I mentioned in my first post (tape treshhold). Especially Exchange-Backup makes me really confused, because it gets spreaded on to 3 tapes:

    P L E A S E  H E L P ! ! !

    • Edited by C. Dittrich Wednesday, February 15, 2012 11:20 AM
    Wednesday, February 15, 2012 11:19 AM
  • Hi,

    I finally got the script running. Thanks Mike! Here is what I get:

    Groups that can share the same tape:
    Backup - SQL
    Backup - Exchange
    Backup - Domain Controller
    Backup - Oracle
    Backup - ISA
    Backup - Fileserver

    Means, all my protection groups can share the same tape, right?

    Friday, February 17, 2012 7:32 AM
  • Ok, I think I'm getting nearer to the reason. I removed all tapes from the library except one and did adhoc longterm backups.

    1) PG "Backup - Domain Controller" / 9.122,88MB written, then error 24050 (free tape...)
    2) PG "Backup - Domain Controller" / 16.144,56MB written, then error 24050 (free tape...)
    3) PG "Backup - Fileserver" / 6.544,94MB written, then error 24050 (free tape...)

    My problems maybe caused by DPM writing to plenty data on one tape.

    Saturday, February 18, 2012 3:00 PM
  • Is there nobody who can help me with my problem?

    In the meantime I tried different ltotape.sys driver versions (MS buildin, HP, HP (recommended)). All with no success.

    Tuesday, February 28, 2012 4:02 PM
  • Ok, this is getting me into trouble...

    I disabled data colocation now and enabled longterm protection on all my pg again. First backup in line is "Backup - Fileserver" followed by "Backup - Exchange" and others. This is what I get:

    "Backup - Fileserver" is on 7 tapes???
    "Backup - Exchange" cannot complete allthough only ~17 GB are written???
    All other tape backup cannot complete because no more free tapes are available???


    Saturday, March 3, 2012 9:57 PM
  • Hi,

    Please use the following HP article to set the following registry key to 250 Decimal for the tape device.

    Value - BusyRetryCount
    Type - DWORD
    Data - 20 Decimal (default) <---- Change to 250dec (0XFA).

    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, March 6, 2012 3:40 AM
  • Hi Mike,

    the first test after setting this registry value was a complete success! I re-enabled data colocation again and do some more testing to give you a concluding answer. I read about this setting before, but this was in conjunction with the IO-Error I mentioned in my first post...

    Thanks so far.



    Wednesday, March 7, 2012 6:46 AM