Restore di Virtual Machine Hyper-V con Powershell e DPM 2007

Published 02 July 09 06:52 PM | claudiog 

Ci sono poche cose che mi fanno arrabbiare quanto la documentazione (?) di Powershell in Data Protection Manager (DPM) 2007 ... inesistente è dire davvero poco Angry.
Tra l'altro il modello e l'implementazione delel CmdLets scelto dal team di DPM è quantomeno originale ... e poco omogeneo con Powershell stesso e le sue filosofie.

Siccome ci ho sbattuto sopra la testa non poco (e sono molto BUONO Wink), condivido su questo blog un pò di codice per produrre un restore automatizzato di una Virtual Machine Hyper-V, protetta da DPM.

 

# Un pò di dichiarazioni

$dpmname = $env:computername

$pgName  = "PG03-HyperV"

$dsname  = 'Backup Using Child Partition Snapshot\Earth'

$targetserver  = "cerere.domain.local"

$targetlocation = "D:\"


Ora dobbiamo recuperare Il Protection Group che contiene il DataSource di cui intendiamo fare restore e poi selezioniamo l'ultimo Recovery Point, tra quelli disponibili:

 

$pg = get-protectionGroup -DPMServerName $dpmName | where {$_.friendlyname -eq $PgName}

$ds = get-datasource -protectiongroup $pg | where {$_.name -eq $DsName}

$ro = Get-RecoveryPoint -Datasource $ds | sort | select -last 1


A questo punto la parte più "complessa" (la New-RecoveryOption è tra le CmdLets più astruse e peggio documentate ...)

$Rop = New-RecoveryOption -GenericDatasource -TargetServer $targetserver -RecoveryLocation CopyToFolder -RecoveryType Restore -TargetLocation $targetlocation

 

E ora l'ultimo passaggio  Party!!!

Recover-RecoverableItem -RecoverableItem $Ro -RecoveryOption $rop

 

Ora non ci resta che attendere e in un subfolder (generato automaticamente da DPM) troveremo i files (VHD ed XML) che costituiscono la VM, comprensivo di VM State.

Nella sessione Virtual machines backup strategies with Data Protection Manager (DPM) |  VC18 che presenterò alla Microsoft Virtualization Conference '09 vedremo qualche altro esempio di scripting per Hyper-V con Powershell e DPM, magari producendo una versione più completa di questo frammento di codice.

Ciao, Claudio

Filed under: , ,
Anonymous comments are disabled

About claudiog

MCSA, MCSE, MCT su NT/2000/2003 MCTS: Windows Server 2008 Active Directory/Application Platform/Network Infrastructure