共用方式為


使用 PowerShell 部署並管理資料保護管理員(DPM)伺服器的備份到 Azure

本文說明如何在 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

首先, 下載最新的 Azure PowerShell

以下設定與註冊任務可透過 PowerShell 自動化:

  • 建立復原服務保存庫
  • 安裝 Azure Backup 代理程式
  • 註冊 Azure Backup 服務
  • 網路設定
  • 加密設定

建立復原服務保存庫

以下步驟將引導您建立恢復服務保存庫。 復原服務保險庫與備份保險庫不同。

  1. 如果你是第一次使用 Azure Backup,必須使用 Register-AzResourceProvider cmdlet 來註冊 Azure Recovery Service 提供者與你的訂閱。

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  2. Recovery Services 金鑰保存庫是 ARM 資源,所以您需要將它放在資源群組中。 你可以使用現有的資源群組,或是建立一個新的。 建立新資源群組時,請指定資源群組的名稱與位置。

    New-AzResourceGroup –Name "test-rg" –Location "West US"
    
  3. 使用 New-AzRecoveryServicesVault 指令檔來建立一個新的保險庫。 請務必為保存庫指定與用於資源群組相同的位置。

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName " test-rg" -Location "West US"
    
  4. 指定要使用的儲存冗餘類型。 你可以使用本地冗餘儲存(LRS)、地理冗餘儲存(GRS)區域冗餘儲存(ZRS)。 以下範例展示了 testVault 設定為 GeoRedundantBackupStorageRedundancy 選項。

    小提示

    許多 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-ProxyUsernameProxyPassword 參數搭配 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)管理,該群組包含四個部分:

  1. 群組成員 是一份列出你想在同一保護群組中保護的所有可保護物件(在 DPM 中稱為 資料來源 )的清單。 例如,你可能想在一個保護群組保護生產虛擬機,在另一個保護群組保護 SQL Server 資料庫,因為它們可能有不同的備份需求。 在你要備份任何資料來源到生產伺服器之前,必須先確認 DPM 代理程式已安裝在伺服器上,且由 DPM 管理。 請依照安裝 DPM 代理 程式並將其連結到相應的 DPM 伺服器的步驟。
  2. 資料保護方法 指定目標備份位置——磁帶、磁碟與雲端。 在我們的例子中,我們會保護資料到本地磁碟和雲端。
  3. 一份備份 排程 ,規定何時需要備份,以及資料在 DPM 伺服器與生產伺服器之間多久同步一次。
  4. 一個規定 Azure 中恢復點保留時間的 保留排程

建立保護群組

首先使用 New-DPMProtectionGroup 指令檔建立一個新的保護群組。

$PG = New-DPMProtectionGroup -DPMServerName " TestingServer " -Name "ProtectGroup01"

上述指令檔將建立一個名為 ProtectGroup01 的保護群組。 現有的保護群組也可以在後續修改,以加入 Azure 雲端的備份。 然而,要對保護群組(不論是新舊)進行任何變更,我們需要使用 Get-DPMModifiableProtectionGroup 指令檔來控制可修改的物件。

$MPG = Get-ModifiableProtectionGroup $PG

將群組成員加入保護群組

每個 DPM 代理都知道安裝在伺服器上的資料來源清單。 要將資料來源加入保護群組,DPM 代理必須先將資料來源清單回傳給 DPM 伺服器。 接著會選擇一個或多個資料來源加入保護群組。 實現此目標所需的 PowerShell 步驟包括:

  1. 透過 DPM 代理取得所有由 DPM 管理的伺服器清單。
  2. 選擇特定的伺服器。
  3. 取得伺服器上所有資料來源的清單。
  4. 選擇一個或多個資料來源並將其加入保護群組

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方案中保護組現有的線上保護排程:

  1. $onlineSch[0] 包含每日行程表
  2. $onlineSch[1] 包含每週節目表
  3. $onlineSch[2] 包含每月行程表
  4. $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-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

這些指令可以輕鬆擴充至任何資料來源類型。

後續步驟