本文說明如何在 DPM 伺服器上使用 PowerShell 設定 Azure Backup,並管理備份與復原。
為 DPM 設定 PowerShell 環境
在你能用 PowerShell 管理從 Data Protection Manager 到 Azure 的備份之前,你需要先有合適的 PowerShell 環境。 在 PowerShell 工作階段開始時,請執行以下指令匯入正確的模組,並允許你正確參考 DPM 指令集:
& "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
使用 PowerShell 設定與註冊 DPM 到 Azure Backup
備註
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 開始使用前,請參閱安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
以下設定與註冊任務可透過 PowerShell 自動化:
- 建立復原服務保存庫
- 安裝 Azure Backup 代理程式
- 註冊 Azure Backup 服務
- 網路設定
- 加密設定
建立復原服務保存庫
以下步驟將引導您建立恢復服務保存庫。 復原服務保險庫與備份保險庫不同。
如果你是第一次使用 Azure Backup,必須使用 Register-AzResourceProvider cmdlet 來註冊 Azure Recovery Service 提供者與你的訂閱。
Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"Recovery Services 金鑰保存庫是 ARM 資源,所以您需要將它放在資源群組中。 你可以使用現有的資源群組,或是建立一個新的。 建立新資源群組時,請指定資源群組的名稱與位置。
New-AzResourceGroup –Name "test-rg" –Location "West US"使用 New-AzRecoveryServicesVault 指令檔來建立一個新的保險庫。 請務必為保存庫指定與用於資源群組相同的位置。
New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName " test-rg" -Location "West US"指定要使用的儲存冗餘類型。 你可以使用本地冗餘儲存(LRS)、地理冗餘儲存(GRS)或區域冗餘儲存(ZRS)。 以下範例展示了 testVault 設定為 GeoRedundant 的 BackupStorageRedundancy 選項。
小提示
許多 Azure Backup 的 cmdlet 需要 Recovery Services Vault 物件作為輸入。 因此,將備份復原服務的保險庫物件存放在變數中是一個方便的做法。
$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 Backup 代理
在安裝 Azure Backup 代理程式之前,你需要先下載安裝程式並展示在 Windows Server。 你可以從 Microsoft 下載中心 或 Recovery Services Vault 的儀表板頁面取得最新版本的安裝程式。 將安裝程式儲存到像 C:\Downloads\* 這樣容易存取的位置。
要安裝代理程式,請在 DPM 伺服器的 PowerShell 控制台執行以下指令:
MARSAgentInstaller.exe /q
這樣會安裝包含所有預設選項的代理程式。 安裝作業會在背景中進行幾分鐘。 如果你沒有指定 /nu 選項,安裝結束時會開啟 Windows 更新 視窗檢查是否有更新。
代理程式會出現在已安裝程式的清單中。 要查看已安裝的程式清單,請前往 控制台>、程式>、程式與功能。
安裝選項
要透過命令列查看所有選項,請使用以下指令:
MARSAgentInstaller.exe /?
可選選項包括:
| Option | 詳細資訊 | 預設 |
|---|---|---|
| /q | 靜默安裝 | - |
| /p:“位置” | Azure Backup 代理安裝資料夾的路徑。 | C:\Program Files\Microsoft Azure 復原服務代理程式 |
| /s:「地點」 | Azure Backup agent 快取資料夾的路徑。 | C:\Program Files\Microsoft Azure Recovery Services Agent\Scratch |
| /m | 選擇加入 Microsoft Update | - |
| /nu | 安裝完成後請勿檢查更新 | - |
| /d | 移除 Microsoft Azure Recovery Services Agent | - |
| /ph | 代理主機位址 | - |
| /po | 代理主機埠號 | - |
| /噗 | 代理主機使用者名稱 | - |
| /pw | 代理密碼 | - |
將 DPM 登錄到 Recovery Services 保險庫
建立 Recovery Services 保險庫後,下載最新的代理程式和保險庫憑證,並儲存在方便的地方,例如 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 : aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
ServiceResourceName: testvault
Region :West US
Machine registration succeeded.
初始設定
一旦 DPM 伺服器在 Recovery Services Vault 註冊,就會從預設的訂閱設定開始。 這些訂閱設定包括網路、加密以及預備區。 要更改訂閱設定,首先需要使用 Get-DPMCloudSubscriptionSetting 指令檔來掌握現有(預設)設定:
$setting = Get-DPMCloudSubscriptionSetting -DPMServerName "TestingServer"
所有修改都對這個本地 PowerShell 物件 $setting 進行,然後完整物件會提交到 DPM 和 Azure Backup 中,使用 Set-DPMCloudSubscriptionSetting cmdlet 來儲存。 你需要使用該 –Commit 旗標來確保變更能持續存在。 除非設定已經提交,否則 Azure Backup 不會套用和使用這些設定。
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -Commit
DPM 對 Azure Backup 的網路設定
如果 DPM 機器透過代理伺服器連接到網際網路上的 Azure Backup 服務,那麼代理伺服器的設定應該會被提供以確保成功備份。 這是透過使用 -ProxyServer和 -ProxyPort、-ProxyUsername 和 ProxyPassword 參數搭配 Set-DPMCloudSubscriptionSetting 指令來完成的。 在這個例子中,沒有代理伺服器,所以我們明確清除了所有代理相關的資訊。
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -NoProxy
頻寬使用也可以透過選項 -WorkHourBandwidth 和 -NonWorkHourBandwidth 來在一週中的特定天數進行控制。 在這個例子中,我們沒有設定任何限速。
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -NoThrottle
將 DPM 的暫存區域配置到 Azure Backup
在 DPM 伺服器上運行的 Azure Backup 代理需要暫時儲存從雲端還原的資料(本地暫存區)。 使用 Set-DPMCloudSubscriptionSetting cmdlet 及參數 -StagingAreaPath 設定暫存區。
Set-DPMCloudSubscriptionSetting -DPMServerName "TestingServer" -SubscriptionSetting $setting -StagingAreaPath "C:\StagingArea"
在上述範例中,預備區會被設定為 PowerShell 物件中的 $setting 。 請確保指定的資料夾已經存在,否則訂閱設定的最終提交會失敗。
加密設定
送往 Azure Backup 的備份資料會加密,以保護資料的機密性。 加密密碼是還原時解密資料的「密碼」。 一旦設定好這些資訊,確保其安全性和保密性非常重要。
在下面的範例中,第一個指令將字串 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 Backup。 在範例中,我們將示範如何備份檔案和資料夾。 此邏輯可輕易擴充以備份任何支援 DPM 的資料來源。 你所有的 DPM 備份都由一個保護群組(PG)管理,該群組包含四個部分:
- 群組成員 是一份列出你想在同一保護群組中保護的所有可保護物件(在 DPM 中稱為 資料來源 )的清單。 例如,你可能想在一個保護群組保護生產虛擬機,在另一個保護群組保護 SQL Server 資料庫,因為它們可能有不同的備份需求。 在你要備份任何資料來源到生產伺服器之前,必須先確認 DPM 代理程式已安裝在伺服器上,且由 DPM 管理。 請依照安裝 DPM 代理 程式並將其連結到相應的 DPM 伺服器的步驟。
- 資料保護方法 指定目標備份位置——磁帶、磁碟與雲端。 在我們的例子中,我們會保護資料到本地磁碟和雲端。
- 一份備份 排程 ,規定何時需要備份,以及資料在 DPM 伺服器與生產伺服器之間多久同步一次。
- 一個規定 Azure 中恢復點保留時間的 保留排程。
建立保護群組
首先使用 New-DPMProtectionGroup 指令檔建立一個新的保護群組。
$PG = New-DPMProtectionGroup -DPMServerName " TestingServer " -Name "ProtectGroup01"
上述指令檔將建立一個名為 ProtectGroup01 的保護群組。 現有的保護群組也可以在後續修改,以加入 Azure 雲端的備份。 然而,要對保護群組(不論是新舊)進行任何變更,我們需要使用 Get-DPMModifiableProtectionGroup 指令檔來控制可修改的物件。
$MPG = Get-ModifiableProtectionGroup $PG
將群組成員加入保護群組
每個 DPM 代理都知道安裝在伺服器上的資料來源清單。 要將資料來源加入保護群組,DPM 代理必須先將資料來源清單回傳給 DPM 伺服器。 接著會選擇一個或多個資料來源加入保護群組。 實現此目標所需的 PowerShell 步驟包括:
- 透過 DPM 代理取得所有由 DPM 管理的伺服器清單。
- 選擇特定的伺服器。
- 取得伺服器上所有資料來源的清單。
- 選擇一個或多個資料來源並將其加入保護群組
DPM 代理程式安裝並由 DPM 伺服器管理的伺服器清單,會透過 Get-DPMProductionServer 指令碼取得。 在這個範例中,我們會過濾並只設定名為 productionserver01 的 PowerShell 作為備份。
$server = Get-ProductionServer -DPMServerName "TestingServer" | Where-Object {($_.servername) –contains "productionserver01"}
現在用 $server 指令檔取得資料來源清單。 在這個範例中,我們篩選出想要設定的備份磁碟區 D:\ 。 此資料來源隨後會使用 Add-DPMChildDatasource 指令檔加入保護群組。 記得使用 可修改 的保護群組物件 $MPG 來進行新增。
$DS = Get-Datasource -ProductionServer $server -Inquire | Where-Object { $_.Name -contains "D:\" }
Add-DPMChildDatasource -ProtectionGroup $MPG -ChildDatasource $DS
依需求重複此步驟,直到將所有選定的資料來源加入保護群組。 你也可以只從一個資料來源開始,完成建立保護群組的工作流程,之後再將更多資料來源加入保護群組。
選擇資料保護方式
資料來源加入保護群組後,下一步是使用 Set-DPMProtectionType cmdlet 指定保護方法。 在此範例中,保護群組是為本地磁碟與雲端備份所設定的。 你也需要使用 Add-DPMChildDatasource 指令檔指定你想保護到雲端的資料來源,並標示 -Online。
Set-DPMProtectionType -ProtectionGroup $MPG -ShortTerm Disk –LongTerm Online
Add-DPMChildDatasource -ProtectionGroup $MPG -ChildDatasource $DS –Online
設定保留範圍
使用 Set-DPMPolicyObjective 指令檔設定備份點的保留值。 雖然在還沒定義備份排程前設定保留時間看起來有點奇怪,但使用 Set-DPMPolicyObjective cmdlet 後,自動設定一個可以修改的預設備份排程。 當然也可以先設定備用排程,再設定保留政策。
在下方的範例中,cmdlet 設定了磁碟備份的保留參數。 這樣可以保留備份 10 天,並在生產伺服器與 DPM 伺服器之間每 6 小時同步一次資料。 它 SynchronizationFrequencyMinutes 不定義備份點建立的頻率,而是資料被複製到 DPM 伺服器的頻率。 此設定可防止備份過大。
Set-DPMPolicyObjective –ProtectionGroup $MPG -RetentionRangeInDays 10 -SynchronizationFrequencyMinutes 360
對於備份到 Azure(DPM 稱為線上備份),保留範圍可以用 Grandfather-Father-Son scheme(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 複本磁碟區上保護的資料來源完整複本。 此活動可排程於特定時間,也可以手動觸發,使用具有 -NOW 參數的 Set-DPMReplicaCreationMethod cmdlet。
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 指令檔來實現。
Set-DPMProtectionGroup -ProtectionGroup $MPG
查看備用點
你可以使用 Get-DPMRecoveryPoint 指令檔來取得該資料來源所有復原點的清單。 在此範例中,我們將:
- 提取 DPM 伺服器上的所有 PG,並儲存在陣列中
$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 Backup 還原 Hyper-V 虛擬機器。 此範例包括:
- 使用 New-DPMRecoveryOption 指令檔建立復原選項。
- 使用
Get-DPMRecoveryPointcmdlet 取得備份點陣列。 - 選擇一個備份點進行還原。
$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 備份簡介」