使用 PowerShell 部署和管理 Data Protection Manager (DPM) 伺服器的 Azure 備份
本文說明如何使用 PowerShell 在 DPM 伺服器上設定 Azure 備份,以及管理備份和復原。
設定 PowerShell 環境
在可以使用 PowerShell 來管理 Data Protection Manager 的 Azure 備份之前,您必須在 PowerShell 中具備適當的環境。 在 PowerShell 工作階段開始時,請確定您執行下列命令來匯入正確的模組並可讓您正確地參考 DPM Cmdlet:
& "C:\Program Files\Microsoft System Center 2012 R2\DPM\DPM\bin\DpmCliInitScript.ps1"
Welcome to the DPM Management Shell!
Full list of cmdlets: Get-Command
Only DPM cmdlets: Get-DPMCommand
Get general help: help
Get help for a cmdlet: help <cmdlet-name> or <cmdlet-name> -?
Get definition of a cmdlet: Get-Command <cmdlet-name> -Syntax
Sample DPM scripts: Get-DPMSampleScript
設定和註冊
注意
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱 安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
若要開始,請下載最新 Azure PowerShell。
PowerShell 可以自動化下列設定和註冊工作:
- 建立復原服務保存庫
- 安裝 Azure 備份代理程式
- 向 Azure 備份服務進行註冊
- 網路設定
- 加密設定
建立復原服務保存庫
下列步驟將引導您完成建立復原服務保存庫。 復原服務保存庫不同於備份保存庫。
若您是第一次使用 Azure 備份,則必須使用 Register-AzResourceProvider Cmdlet,透過您的訂閱來註冊 Azure 復原服務提供者。
Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
復原服務保存庫是 ARM 資源,因此您必須將它放在資源群組內。 您可以使用現有的資源群組,或建立一個新的群組。 建立新的資源群組時,請指定資源群組的名稱和位置。
New-AzResourceGroup –Name "test-rg" –Location "West US"
使用 New-AzRecoveryServicesVault Cmdlet 來建立新的保存庫。 請務必為保存庫指定與用於資源群組相同的位置。
New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName " test-rg" -Location "West US"
指定要使用的儲存空間備援類型。 您可以使用本地備援儲存體 (LRS)、異地備援儲存體 (GRS) 或區域備援儲存體 (ZRS)。 下列範例顯示 testVault 的 BackupStorageRedundancy 選項設定為 GeoRedundant 的情形。
提示
許多 Azure 備份 Cmdlet 都需要將復原服務保存庫物件當做輸入。 基於這個理由,將備份復原服務保存庫物件儲存在變數中會是方便的做法。
$vault1 = Get-AzRecoveryServicesVault –Name "testVault" Set-AzRecoveryServicesBackupProperties -vault $vault1 -BackupStorageRedundancy GeoRedundant
在訂用帳戶中檢視保存庫
使用 Get-AzRecoveryServicesVault 來檢視目前訂用帳戶中所有保存庫的清單。 您可以使用此命令來檢查是否已建立新的保存庫,或查看訂用帳戶中有哪些保存庫可用。
執行命令 Get-AzRecoveryServicesVault,會列出訂用帳戶中的所有保存庫。
Get-AzRecoveryServicesVault
Name : Contoso-vault
ID : /subscriptions/1234
Type : Microsoft.RecoveryServices/vaults
Location : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId : 1234-567f-8910-abc
Properties : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties
在 DPM 伺服器上安裝 Azure 備份代理程式
在安裝 Azure 備份代理程式之前,您必須在 Windows Server 上下載並提供安裝程式。 您可以從 Microsoft 下載中心 或從復原服務保存庫的 [儀表板] 頁面取得最新版的安裝程式。 請將安裝程式儲存至容易存取的位置,例如 C:\Downloads\*
。
若要安裝代理程式,請在 DPM 伺服器上已提升權限的 PowerShell 主控台中執行下列命令:
MARSAgentInstaller.exe /q
這會以所有預設選項安裝代理程式。 安裝作業會在背景中進行幾分鐘。 若您沒有指定 /nu 選項,則安裝結束時會開啟 [Windows Update] 視窗,以檢查是否有任何更新。
代理程式會顯示在已安裝的程式清單中。 若要查看已安裝的程式清單,請移至 [控制台]>[程式]>[程式和功能]。
安裝選項
若要查看所有可透過命令列使用的選項,請使用下列命令:
MARSAgentInstaller.exe /?
可用的選項包括:
選項 | 詳細資料 | 預設 |
---|---|---|
/q | 無訊息安裝 | - |
/p:"location" | Azure 備份代理程式的安裝資料夾路徑。 | C:\Program Files\Microsoft Azure Recovery Services Agent |
/s:"location" | Azure 備份代理程式的快取資料夾路徑。 | C:\Program Files\Microsoft Azure Recovery Services Agent\Scratch |
/m | 選擇加入 Microsoft Update | - |
/nu | 安裝完成後不要檢查更新 | - |
/d | 解除安裝 Microsoft Azure 復原服務代理程式 | - |
/ph | Proxy 主機位址 | - |
/po | Proxy 主機連接埠號碼 | - |
/pu | Proxy 主機使用者名稱 | - |
/pw | Proxy 密碼 | - |
向復原服務保存庫註冊 DPM
建立復原服務保存庫之後,請下載最新版本的代理程式和保存庫認證,並將它們儲存在方便的位置 (如 C:\Downloads)。
$credspath = "C:\downloads"
$credsfilename = Get-AzRecoveryServicesVaultSettingsFile -Backup -Vault $vault1 -Path $credspath
$credsfilename
C:\downloads\testvault\_Sun Apr 10 2016.VaultCredentials
在 DPM 伺服器上,執行 Start-OBRegistration Cmdlet 以向保存庫註冊電腦。
$cred = $credspath + $credsfilename
Start-OBRegistration-VaultCredentials $cred -Confirm:$false
CertThumbprint :7a2ef2caa2e74b6ed1222a5e89288ddad438df2
SubscriptionID : ef4ab577-c2c0-43e4-af80-af49f485f3d1
ServiceResourceName: testvault
Region :West US
Machine registration succeeded.
初始組態設定
一旦向復原服務保存庫註冊 DPM 伺服器,就會使用預設的訂用帳戶設定開始。 這些訂用帳戶設定包括網路、加密和臨時區域。 若要變更訂用帳戶設定,您需要先使用 Get-DPMCloudSubscriptionSetting Cmdlet 取得現有 (預設) 設定上的控制代碼:
$setting = Get-DPMCloudSubscriptionSetting -DPMServerName "TestingServer"
所有修改都會對此本機 PowerShell 物件 $setting
進行,然後使用 Set-DPMCloudSubscriptionSetting Cmdlet 將完整物件認可到 DPM 和 Azure 備份以加以儲存。 您必須使用 –Commit
旗標,以確保會保存所做的變更。 除非已認可,否則 Azure 備份將不會套用並使用該設定。
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -Commit
網路
如果 DPM 機器對在網際網路上的 Azure 備份服務的連線是透過 Proxy 伺服器,則應該提供 Proxy 伺服器設定,備份才能成功。 這是使用 -ProxyServer
、-ProxyPort
、-ProxyUsername
及 ProxyPassword
參數搭配 Set-DPMCloudSubscriptionSetting Cmdlet 來完成。 此範例未使用 Proxy 伺服器,因此會明確地清除任何 Proxy 相關資訊。
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -NoProxy
您也可以針對給定的一組當週天數,使用 -WorkHourBandwidth
和 -NonWorkHourBandwidth
的選項來控制頻寬使用情形。 在本範例中,不會設定任何節流。
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -NoThrottle
設定暫存區域
在 DPM 伺服器上執行的 Azure 備份代理程式需要暫存儲存體,以供存放從雲端還原的資料 (本機臨時區域)。 使用 Set-DPMCloudSubscriptionSetting Cmdlet 和 -StagingAreaPath
參數來設定臨時區域。
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -StagingAreaPath "C:\StagingArea"
在上述範例中,臨時區域將在 PowerShell 物件 $setting
中設定為 C:\StagingArea。 請確保指定的資料夾已經存在,否則訂用帳戶設定的最終認可將會失敗。
加密設定
傳送至 Azure 備份的備份資料會進行加密來保護資料的機密性。 加密複雜密碼是在還原時用來解密資料的「密碼」。 設定完成之後,請務必好好保管此資訊。
在下面的範例中,第一個命令會將字串 passphrase123456789
轉換為安全字串,並將安全字串指派給名為 $Passphrase
的變數。 第二個命令會將 中的 $Passphrase
安全字串設定為加密備份的密碼。
$Passphrase = ConvertTo-SecureString -string "passphrase123456789" -AsPlainText -Force
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -EncryptionPassphrase $Passphrase
重要
設定完成之後,請好好保管此複雜密碼資訊。 若沒有此複雜密碼,您將無法從 Azure 還原資料。
此時,您應該已對 $setting
物件進行所有必要的變更。 記得要認可變更。
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -Commit
保護 Azure 備份的資料
本節中,您會將實際執行伺服器新增至 DPM,接著將資料保護到本機 DPM 儲存體,然後再到 Azure 備份。 在範例中,我們將示範如何備份檔案與資料夾。 邏輯可以輕鬆地擴充,以備份任何 DPM 支持的數據源。 所有 DPM 備份皆受到保護群組 (PG) 所控管,並且由四個部分構成:
- 群組成員 是您要在相同的保護群組中保護的所有可保護物件的清單 (在 DPM 中也稱為 資料來源 )。 比方說,您可能想要保護一個保護群組的實際執行 VM 與另一個保護群組中的 SQL Server 資料庫,因為它們可能會有不同的備份需求。 在可以備份實際執行伺服器上的資料來源之前,您必須先確定 DPM 代理程式已安裝在伺服器上並受到 DPM 管理。 請遵循 安裝 DPM 代理程式 的步驟,並將其連結至適當的 DPM 伺服器。
- 資料保護方法 指定目標備份位置 - 磁帶、磁碟和雲端。 在我們的範例中,我們會將資料保護到本機磁碟,然後再到雲端。
- 備份排程 可指定何時需要進行備份,以及應該在 DPM 伺服器和實際執行伺服器之間同步處理資料的頻率。
- 保留排程 可指定要在 Azure 中保留復原點多久時間。
建立保護群組
從使用 Add-DPMProtectionGroup Cmdlet 來建立新的保護群組開始。
$PG = New-DPMProtectionGroup -DPMServerName " TestingServer " -Name "ProtectGroup01"
以上 Cmdlet 會建立名為 ProtectGroup01的保護群組。 也可以修改稍後現有的保護群組,以加入備份至 Azure 雲端。 不過,若要對保護群組 - 新的或現有的- 進行任何變更,我們需要使用 Get-DPMModifiableProtectionGroup Cmdlet 來取得 modifiable 物件上的控制代碼。
$MPG = Get-ModifiableProtectionGroup $PG
將群組成員新增至保護群組
每個 DPM 代理程式對於自身安裝所在的伺服器,都知道其上資料來源的清單。 若要將資料來源加入至保護群組,DPM 代理程式必須先將資料來源清單傳回到 DPM 伺服器。 然後會選取一或多個資料來源,並加入至保護群組。 達成此動作所需的 PowerShell 步驟包括:
- 擷取透過 DPM 代理程式由 DPM 管理的所有伺服器清單。
- 選擇特定伺服器。
- 擷取伺服器上所有資料來源的清單。
- 選擇一或多個資料來源,並將它們加入至保護群組
安裝 DPM 代理程式且受 DPM 伺服器管理所在的伺服器清單是使用 Get-DPMProductionServer Cmdlet 取得。 在此範例中,我們將篩選出具有名稱 productionserver01 的 PowerShell,且僅設定此類 PowerShell 加以備份。
$server = Get-ProductionServer -DPMServerName "TestingServer" | Where-Object {($_.servername) –contains "productionserver01"}
現在使用 Get-DPMDatasource Cmdlet 擷取 $server
上的資料來源清單。 在此範例中,我們會篩選要進行備份設定的磁碟區 D:\
。 然後此資料來源會使用 Add-DPMChildDatasource Cmdlet 新增至保護群組。 記得使用「可修改的」保護群組物件 $MPG
來進行新增。
$DS = Get-Datasource -ProductionServer $server -Inquire | Where-Object { $_.Name -contains "D:\" }
Add-DPMChildDatasource -ProtectionGroup $MPG -ChildDatasource $DS
視需要多次重複此步驟,直到您已將所有選擇的資料來源新增至保護群組中為止。 您也可以從只有一個資料來源開始,並完成建立保護群組的工作流程,然後稍後將更多的資料來源加入至保護群組。
選取數據保護方法
資料來源加入至保護群組之後,下一步是使用 Set-DPMProtectionType Cmdlet 指定保護方法。 在此範例中,會針對本機磁碟和雲端備份設定保護群組。 您也必須使用 Add-DPMChildDatasource Cmdlet 搭配 -Online 旗標,指定您想要在雲端中保護的資料來源。
Set-DPMProtectionType -ProtectionGroup $MPG -ShortTerm Disk –LongTerm Online
Add-DPMChildDatasource -ProtectionGroup $MPG -ChildDatasource $DS –Online
設定保留範圍
使用 Set-DPMPolicyObjective Cmdlet 設定備份點的保留。 雖然在定義備份排程之前設定保留點看起來有點奇怪,使用 Set-DPMPolicyObjective
Cmdlet 會自動設定預設的備份排程,之後便可加以修改。 隨時可以先設定備份排程,再設定保留原則。
在下面的範例中,此 Cmdlet 會設定磁碟備份的保留參數。 這將會保留 10 天備份,並每隔 6 小時同步處理實際執行伺服器和 DPM 伺服器之間的資料。 SynchronizationFrequencyMinutes
不會定義建立備份點的頻率,只會定有資料複製到 DPM 伺服器的頻率。 此設定可防止備份變得太大。
Set-DPMPolicyObjective –ProtectionGroup $MPG -RetentionRangeInDays 10 -SynchronizationFrequencyMinutes 360
針對移至 Azure 的備份 (DPM 將這些稱為線上備份),保留範圍可設定為 使用 Grandfather-Father-Son 配置 (GFS) 的長期保留。 也就是說,您可以定義結合的保留原則,包含每日、每週、每月和每年保留原則。 在此範例中,我們會建立陣列,表示我們需要的複雜保留配置,然後使用 Set-DPMPolicyObjective Cmdlet 設定保留範圍。
$RRlist = @()
$RRList += (New-Object -TypeName Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.RetentionRange -ArgumentList 180, Days)
$RRList += (New-Object -TypeName Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.RetentionRange -ArgumentList 104, Weeks)
$RRList += (New-Object -TypeName Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.RetentionRange -ArgumentList 60, Month)
$RRList += (New-Object -TypeName Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.RetentionRange -ArgumentList 10, Years)
Set-DPMPolicyObjective –ProtectionGroup $MPG -OnlineRetentionRangeList $RRlist
設定備份排程
如果您使用 Set-DPMPolicyObjective
Cmdlet 指定保護目標,DPM 會自動設定預設的備份排程。 若要變更預設排程,請依序使用 Get-DPMPolicySchedule Cmdlet 和 Set-DPMPolicySchedule Cmdlet。
$onlineSch = Get-DPMPolicySchedule -ProtectionGroup $mpg -LongTerm Online
Set-DPMPolicySchedule -ProtectionGroup $MPG -Schedule $onlineSch[0] -TimesOfDay 02:00
Set-DPMPolicySchedule -ProtectionGroup $MPG -Schedule $onlineSch[1] -TimesOfDay 02:00 -DaysOfWeek Sa,Su –Interval 1
Set-DPMPolicySchedule -ProtectionGroup $MPG -Schedule $onlineSch[2] -TimesOfDay 02:00 -RelativeIntervals First,Third –DaysOfWeek Sa
Set-DPMPolicySchedule -ProtectionGroup $MPG -Schedule $onlineSch[3] -TimesOfDay 02:00 -DaysOfMonth 2,5,8,9 -Months Jan,Jul
Set-DPMProtectionGroup -ProtectionGroup $MPG
在上述範例中, $onlineSch
是具有四個元素的陣列,其中包含 GFS 配置中保護群組的現有線上保護排程:
$onlineSch[0]
包含每日排程$onlineSch[1]
包含每週排程$onlineSch[2]
包含每月排程$onlineSch[3]
包含每年排程
因此,如果您需要修改每週排程,您需要參考 $onlineSch[1]
。
初始備份
當您第一次備份數據源時,DPM 需要建立初始復本,以在 DPM 復本磁碟區上建立要保護之數據源的完整復本。 此活動可以排定在特定的時間,或可以使用 Set-DPMReplicaCreationMethod Cmdlet 搭配參數 -NOW
手動觸發。
Set-DPMReplicaCreationMethod -ProtectionGroup $MPG -NOW
變更 DPM 複本和恢復點磁碟區的大小
您也可以變更 DPM 複本磁碟區和陰影複製磁碟區的大小,方法是使用 Set-DPMDatasourceDiskAllocation Cmdlet,如下列範例所示:Get-DatasourceDiskAllocation -Datasource $DS Set-DatasourceDiskAllocation -Datasource $DS -ProtectionGroup $MPG -manual -ReplicaArea (2gb) -ShadowCopyArea (2gb)
認可保護群組的變更
最後,需要先認可變更,DPM 才可以根據每個新保護群組組態進行備份。 這可以使用 Set-DPMProtectionGroup Cmdlet 來達成。
Set-DPMProtectionGroup -ProtectionGroup $MPG
檢視備份點
您可以使用 Get-DPMRecoveryPoint Cmdlet 來取得資料來源所有復原點的清單。 在此範例中,我們將會:
- 擷取 DPM 伺服器上以及儲存在
$PG
- 取得與
$PG[0]
- 取得資料來源的所有復原點。
$PG = Get-DPMProtectionGroup –DPMServerName "TestingServer"
$DS = Get-DPMDatasource -ProtectionGroup $PG[0]
$RecoveryPoints = Get-DPMRecoverypoint -Datasource $DS[0] -Online
還原在 Azure 上保護的資料
還原資料是 RecoverableItem
物件和 RecoveryOption
物件的組合。 在上一個節中,我們已取得資料來源的備份點清單。
在下列範例中,我們將示範如何透過結合備份點與復原目標從 Azure 備份還原 Hyper-V 虛擬機器。 這個範例包含︰
- 使用 New-DPMRecoveryOption Cmdlet 建立復原選項。
- 使用
Get-DPMRecoveryPoint
Cmdlet 擷取備份點的陣列。 - 選擇要從中還原的備份點。
$RecoveryOption = New-DPMRecoveryOption -HyperVDatasource -TargetServer "HVDCenter02" -RecoveryLocation AlternateHyperVServer -RecoveryType Recover -TargetLocation "C:\VMRecovery"
$PG = Get-DPMProtectionGroup –DPMServerName "TestingServer"
$DS = Get-DPMDatasource -ProtectionGroup $PG[0]
$RecoveryPoints = Get-DPMRecoverypoint -Datasource $DS[0] -Online
Restore-DPMRecoverableItem -RecoverableItem $RecoveryPoints[0] -RecoveryOption $RecoveryOption
命令可以很容易地針對任何資料來源類型擴充。
下一步
- 如需 DPM 至 Azure 備份的詳細資訊,請參閱 DPM 備份簡介