Showing posts with label Microsoft Data Protection Manager (DPM) 2010. Show all posts
Showing posts with label Microsoft Data Protection Manager (DPM) 2010. Show all posts

Wednesday, December 7, 2011

How-To: Enabling Data Co-Location on DPM

Microsoft's Data Protection Manager (DPM) 2010 allows backup administrator to co-locate protection groups on tape. In previous version of DPM, tape co-location is not available. This means to say that if you have a protection group with backup size maybe 2Gb a day and 5 LTO4 tapes and the backup strategy is to backup 5 days a week. You will end up with DPM 2010 uses each LTO4 1.6GB (compress) to backup your 2GB everyday. This only utilize 0.1% of your tape capacity, and the worst is that other protection group will not be able to write on the same tape.

With tape co-location available now you can optimizes the tape usage in case you have many small protection groups. The backup to tape will backup multiple protection group on the same tape depending on the backup strategy you configured and consideration on "TapeWritePeriodRatio" and "ExpiryToleranceRange".

Enabling Data Co-Location on DPM
  1. Open DPM Management Shell.
    Set-OptimizeTapeUsage to True using the Set-DPMGlobalProperty cmdlet.
    Set-DPMGlobalProperty -DPMServerName <name of DPM server> -OptimizeTapeUsage $True


Take note that a dataset will be collocated only if both the below conditions are true.

The expiry date of the current dataset should fall in between the following dates: 
Upper bound: furthest expiry date among all the datasets on the tape - (furthest expiry date among all the datasets on the tape - current date) * ExpiryToleranceRange
Lower Bound: furthest expiry date among all the datasets on the tape + (furthest expiry date among all the datasets on the tape - current date) * ExpiryToleranceRange.

Current time should be less than first backup time of the dataset on the media + TapeWritePeriodRatio * RetentionRangeOfFirstDataset.

TapeWritePeriodRatio

It is a global property for the DPM which needs to be set using DPM CLI command. Here is the command to set it
Set-DPMGlobalProperty –DPMServerName <dpm server name> -TapeWritePeriodRatio <fraction>
WritePeriodRatio indicates the number of days for which data can be written on to a tape as a ratio of the retention period of the first data set written to the tape.

WritePeriodRatio value can be between 0.0 to 1.0

Default value is 0.15 (i.e. 15%)




Saturday, December 3, 2011

How-To: Force Expire Tape in DPM 2010

System Center Data Protection Manager (DPM) 2010 enables disk-based and tape-based data protection and recovery for servers such as SQL Server, Exchange Server, SharePoint, virtual servers, file servers, and support for Windows desktops and laptops. DPM can also centrally manage system state and Bare Metal Recovery (BMR).

Do you ever got yourself into a situation where you run out of backup tapes due to inappropriate backup strategy ? If your answer is yes, then you probably notice at the same time you are facing an issue and that you are desperately to expire a LTO tape which holding the oldest recovery point. And guess what... You can't do this using DPM 2010 Administrator Console...OUCH!!!

So, you are sitting in the dark, waiting any tape to expire and helplessly watching each and every scheduled backup failed. Well, this will not happen  anymore if you use a powershell as found in Microsoft TechNet's Library. The script contents is as below :

Code Begins Here

param ([string] $DPMServerName, [string] $LibraryName, [string[]] $TapeLocationList)
if(("-?","-help") -contains $args[0])
{
    Write-Host "Usage: ForceFree-Tape.ps1 [[-DPMServerName] <Name of the DPM server>] [-LibraryName] <Name of the library> [-TapeLocationList] <Array of tape locations>"
    Write-Host "Example: Force-FreeTape.ps1 -LibraryName "My library" -TapeLocationList Slot-1, Slot-7"
    exit 0
}
if (!$DPMServerName)
{
    $DPMServerName = Read-Host "DPM server name: "
    if (!$DPMServerName)
    {
        Write-Error "Dpm server name not specified."
        exit 1
    }
}
if (!$LibraryName)
{
    $LibraryName = Read-Host "Library name: "
    if (!$LibraryName)
    {
        Write-Error "Library name not specified."
        exit 1
    }
}
if (!$TapeLocationList)
{
    $TapeLocationList = Read-Host "Tape location: "
    if (!$TapeLocationList)
    {
        Write-Error "Tape location not specified."
        exit 1
    }
}
if (!(Connect-DPMServer $DPMServerName))
{
    Write-Error "Failed to connect To DPM server $DPMServerName"
    exit 1
}
$library = Get-DPMLibrary $DPMServerName | where {$_.UserFriendlyName -eq $LibraryName}
if (!$library)
{
    Write-Error "Failed to find library with user friendly name $LibraryName"
    exit 1
}
foreach ($media in @(Get-Tape -DPMLibrary $library))
{
    if ($TapeLocationList -contains $media.Location)
    {
        if ($media -is [Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.LibraryManagement.ArchiveMedia])
        {
            foreach ($rp in @(Get-RecoveryPoint -Tape $media))
            {
                Get-RecoveryPoint -Datasource $rp.Datasource | Out-Null
                Write-Verbose "Removing recovery point created at $($rp.RepresentedPointInTime) for tape in $($media.Location)."
                Remove-RecoveryPoint -RecoveryPoint $rp -ForceDeletion -Confirm:$false
            }
            Write-Verbose "Setting tape in $($media.Location) as free."
            Set-Tape -Tape $media -Free
        }
        else
        {
            Write-Error "The tape in $($media.Location) is a cleaner tape."
        }
    }
}

Code Ends Here

To put this script into use
  1. Open a new Notepad file and copy the code above into it.
  2. Save the file as ForceFree.ps1.
  3. Copy ForceFree.ps1 to C:/Program Files/Microsoft/Microsoft Data Protection Manager/scripts .
  4. The syntax to run the script is ForceFree.ps1 -DPMServerName <Name of server> -LibraryName <Name of library> -TapeLocation <slot numbers>.
Sample of script execution

PS C:\Program Files\Microsoft DPM\DPM\Scripting> .\ForceExpire.ps1
DPM server name: : backupserver
Hewlett Packard LTO Ultrium-4 drive
Hewlett Packard MSL G3 Series library  (x64 based)
Library name (cut & paste from above): : Hewlett Packard MSL G3 Series library
(x64 based)
Tape location: : slot-2
Processing this slot list...
slot-2
The operation will remove the following recovery point(s) because they have dep
endencies on each other:
Datasource '\\?\Volume{9f6da658-f6f1-11df-8d4f-00155d000115}\' on targetcomputer1.xxx.xxx.xx:
Saturday, 5 November, 2011 10:31:28 AM
Monday, 7 November, 2011 11:52:13 PM
Wednesday, 9 November, 2011 4:03:54 AM
Wednesday, 9 November, 2011 9:47:34 PM
Thursday, 10 November, 2011 8:01:09 PM
Friday, 11 November, 2011 8:09:17 PM
Monday, 14 November, 2011 8:31:54 PM
The operation will remove the following recovery point(s) because they have dep
endencies on each other:
Datasource '\\?\Volume{dff33793-b735-11df-a919-00155d000225}\' on targetcomputer2.xxx.xxx.xx:
Sunday, 6 November, 2011 12:02:41 AM
Tuesday, 8 November, 2011 2:36:56 AM
Wednesday, 9 November, 2011 7:33:40 AM
Wednesday, 9 November, 2011 9:24:50 PM
Thursday, 10 November, 2011 11:04:38 PM
Friday, 11 November, 2011 10:01:35 PM
Monday, 14 November, 2011 8:09:52 PM
Tuesday, 15 November, 2011 8:00:30 PM


More details information can be found at http://technet.microsoft.com/en-us/library/ff399673.aspx