共用方式為


使用 Azure PowerShell,為 Azure 受控磁碟備份

本文說明如何使用 Azure PowerShell,為 Azure 受控磁碟備份。

在本文中,您將學會如何:

  • 建立備份保存庫

  • 建立備份原則

  • 設定 Azure 磁碟的備份

  • 執行隨選備份作業

如需 Azure 磁碟備份區域可用性、支援情節及限制的相關資訊,請參閱支援矩陣

建立備份保存庫

備份保存庫是 Azure 中的儲存體實體,可保存 Azure 備份所支援各種較新工作負載的備份資料,例如適用於 PostgreSQL 伺服器的 Azure 資料庫和 Azure 磁碟。 保存庫可讓您輕鬆組織備份資料,同時可減輕管理負擔。 備份保存庫會以 Azure 的 Azure Resource Manager 模型為基礎,可提供增強功能來協助保護備份資料。

建立備份保存庫之前,請在保存庫中選擇資料的儲存體備援。 然後,繼續使用該儲存體備援和位置來建立備份保存庫。 在本文中,我們將在資源群組 "testBkpVaultRG" 下,在 "westus" 區域中建立備份保存庫 "TestBkpVault"。 使用 New-AzDataProtectionBackupVault 命令來建立備份保存庫。 深入了解如何建立備份保存庫

$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag                :
Id                  : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity            : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId    :
IdentityType        :
Location            : westus
Name                : TestBkpVault
ProvisioningState   : Succeeded
StorageSetting      : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData          : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag                 : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type                : Microsoft.DataProtection/backupVaults

建立保存庫之後,讓我們建立備份原則來保護 Azure 磁碟。

建立備份原則

若要瞭解 Azure 磁碟備份的備份原則內部元件,請使用 Get-AzDataProtectionPolicyTemplate 命令來擷取原則範本。 此命令會傳回指定資料來源類型的預設原則範本。 使用此原則範本來建立新的原則。

$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDisk
$policyDefn | fl


DatasourceType : {Microsoft.Compute/disks}
ObjectType     : BackupPolicy
PolicyRule     : {BackupHourly, Default}

$policyDefn.PolicyRule | fl


BackupParameter           : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType       : DataStoreInfoBase
DataStoreType             : OperationalStore
Name                      : BackupHourly
ObjectType                : AzureBackupRule
Trigger                   : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType         : ScheduleBasedTriggerContext

IsDefault  : True
Lifecycle  : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name       : Default
ObjectType : AzureRetentionRule

原則範本是由觸發程序 (決定由什麼項目觸發備份) 和生命週期 (決定何時刪除/複製/移動備份) 所組成。 在 Azure 磁碟備份中,觸發程序的預設值是每 4 小時排定每小時觸發程序 (PT4H),每個備份保留 7 天。

 $policyDefn.PolicyRule[0].Trigger | fl


ObjectType                    : ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval : {R/2020-04-05T13:00:00+00:00/PT4H}
TaggingCriterion              : {Default}
$policyDefn.PolicyRule[1].Lifecycle | fl


DeleteAfterDuration        : P7D
DeleteAfterObjectType      : AbsoluteDeleteOption
SourceDataStoreObjectType  : DataStoreInfoBase
SourceDataStoreType        : OperationalStore
TargetDataStoreCopySetting :

Azure 磁碟備份每天提供多次備份。 如果您需要更頻繁的備份,請選擇 [每小時] 備份頻率,就能夠每 4、6、8 或 12 小時備份一次。 備份會根據選取的時間間隔進行排程。 例如,如果您選取 [每 4 小時],則大約每 4 小時就會備份一次,這樣備份就會平均分散於一天之中。 如果一天備份一次就足夠,請選擇 [每日] 備份頻率。 在每日備份頻率中,您可以指定當天何時進行備份。 請務必注意,一天中的時間表示備份開始時間,而不是備份完成的時間。 完成備份作業所需的時間取決於各種因素,包括磁碟的大小,及連續備份之間的流失率。 不過,Azure 磁碟備份是無代理程式備份,並使用不影響生產應用程式效能的增量快照集

注意

  • 雖然選取的保存庫可能具有全域備援設定,但是 Azure 磁碟備份目前僅支援快照集資料存放區。 所有備份都儲存在訂用帳戶中的資源群組,不會複製到備份保存庫儲存體。
  • 對於屬於標準 HDD、標準 SSD 和進階 SSD SKU 的 Azure 磁碟,您可以使用每小時頻率 (1、2、4、6、8 或 12 小時) 和每日頻率來定義備份排程。
  • 針對屬於進階 V2 和 Ultra 磁碟 SKU 的 Azure 磁碟,您可以使用每小時頻率 (僅 12 小時) 和每日頻率來定義備份排程。

若要深入瞭解原則建立的詳細資訊,請參閱 Azure 磁碟備份原則文件。

如果您希望編輯每小時頻率或是保留期間,請使用 Edit-AzDataProtectionPolicyTriggerClientObject 和/或 Edit-AzDataProtectionPolicyRetentionRuleClientObject 命令。 一旦原則物件具有所有需要的值,請使用 New-AzDataProtectionBackupPolicy 繼續從原則物件建立新的原則。

New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name diskBkpPolicy -Policy $policyDefn

Name                   Type
----                   ----
diskBkpPolicy       Microsoft.DataProtection/backupVaults/backupPolicies

$diskBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "diskBkpPolicy"

設定備份

建立保存庫和原則之後,使用者必須考慮 3 個重點,以保護 Azure 磁碟。

涉及的主要實體

要保護的磁碟

擷取需要保護磁碟的 ARM 識別碼。 此將作為磁碟的識別碼。 我們將使用位於不同訂用帳戶下,資源群組 "diskrg" 中名為 "PSTestDisk" 的磁碟作為範例。

$DiskId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/PSTestDisk"

快照資源群組

磁碟快照集會儲存在您訂用帳戶內的資源群組中。 根據指導方針,建議您建立專用的資源群組作為快照集資料存放區,供 Azure 備份服務使用。 專用資源群組可限制資源群組的存取權限,讓備份資料更安全且易於管理。 請記下想要放置磁碟快照集的資源群組 ARM 識別碼

$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/snapshotrg"

備份保存庫

備份保存庫需要磁碟和快照集資源群組的權限,才能觸發快照集並管理其生命週期。 系統指派的保存庫受控識別用來指派這類權限。 使用 Update-AzRecoveryServicesVault 命令,為復原服務保存庫啟用系統指派的受控識別。

指派權限

使用者必須透過 RBAC,將一些權限指派給保存庫 (以保存庫 MSI 表示) 以及相關的磁碟和/或磁碟 RG。 您可以透過入口網站或 PowerShell 來執行這些作業。

備份保存庫使用受控識別來存取其他 Azure 資源。 如果要設定受控磁碟的備份,備份保存庫的受控識別需要來源磁碟與資源群組上的一組權限,其中會建立及管理快照集。

系統指派的受控識別限定為每個資源一個,而且只在此資源的生命週期內存在。 您可以使用 Azure 角色型存取控制 (Azure RBAC),授與對受控識別的權限。 受控識別是可能僅適用於 Azure 資源之特殊類型的服務主體。 深入了解受控識別

如果要設定受控磁碟的備份,請確認下列必要條件:

  • 在需要備份的來源磁碟上,將磁碟備份讀者角色指派給備份保存庫的受控識別。

    1. 移至需要備份的磁碟。

    2. 移至 [存取控制 (IAM)],然後選取 [新增角色指派]

    3. 在右側的內容窗格中,選取 [角色] 下拉式清單中的 [磁碟備份讀者]

    4. 選取備份保存庫的受控識別,並按一下 [儲存]

      提示

      輸入備份保存庫的名稱,以選取保存庫的受控識別。

    顯示在需要備份的來源磁碟上,將磁碟備份讀者角色指派給備份保存庫受控識別的螢幕擷取畫面。

  • 磁碟快照參與者角色指派給資源群組上備份保存庫的受控識別,其中的備份是由 Azure 備份服務建立並管理。 磁碟快照集儲存在訂用帳戶內的資源群組中。 如果要允許 Azure 備份服務建立、儲存及管理快照集,您需要提供備份保存庫的權限。

    1. 移至資源群組。 例如,資源群組是 SnapshotRG,且和要備份的磁碟位於相同的訂用帳戶中。

    2. 移至 [存取控制 (IAM)],然後選取 [新增角色指派]

    3. 在右側的內容窗格中,選取 [角色] 下拉式清單中的 [磁碟快照參與者]

    4. 選取備份保存庫的受控識別,並按一下 [儲存]

      提示

      輸入備份保存庫的名稱,以選取保存庫的受控識別。

    顯示在資源群組上,將磁碟快照集參與者角色指派給備份保存庫受控識別的螢幕擷取畫面。

  • 確認備份保存庫的受控識別在來源磁碟和資源群組上,皆有一組正確的角色指派,並可作為快照資料存放區。

    1. 移至 [備份保存庫] - > [身分識別],然後選取 [Azure 角色指派]

      顯示 Azure 角色指派選取項目的螢幕擷取畫面。

    2. 確認角色、資源名稱和資源類型皆正確。

      顯示角色、資源名稱和資源類型驗證的螢幕擷取畫面。

注意

角色指派在入口網站上正確顯示時,可能需要大約 15-30 分鐘,才會在備份保存庫的受控識別上套用權限。

準備要求

設定所有相關的權限之後,請以 2 個步驟來執行備份的設定。 首先,我們要使用 Initialize-AzDataProtectionBackupInstance 命令,以及使用相關保存庫、原則、磁碟和快照集資源群組,準備相關要求。 接著,我們會使用 New-AzDataProtectionBackupInstance 命令提交要求,藉以保護磁碟。

$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDisk -DatasourceLocation $TestBkpvault.Location -PolicyId $diskBkpPol[0].Id -DatasourceId $DiskId 
$instance.Property.PolicyInfo.PolicyParameter.DataStoreParametersList[0].ResourceGroupId = $snapshotrg
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance

Name                                                       Type                                                  BackupInstanceName
----                                                       ----                                                  ------------------
diskrg-PSTestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166 Microsoft.DataProtection/backupVaults/backupInstances diskrg-PSTestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166

執行隨選備份

使用 Get-AzDataProtectionBackupInstance,擷取使用者需要觸發備份的相關備份執行個體

$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"

您可以在觸發備份時指定保留規則。 若要查看原則中的保留規則,請瀏覽原則物件中的保留規則。 在下列範例中,會顯示名稱為「預設」的規則,並將該規則用於隨選備份

$policyDefn.PolicyRule | fl


BackupParameter           : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType       : DataStoreInfoBase
DataStoreType             : OperationalStore
Name                      : BackupHourly
ObjectType                : AzureBackupRule
Trigger                   : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType         : ScheduleBasedTriggerContext

IsDefault  : True
Lifecycle  : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name       : Default
ObjectType : AzureRetentionRule

若要觸發隨選備份,請使用 Backup-AzDataProtectionBackupInstanceAdhoc 命令。

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"

追蹤作業

使用 Get-AzDataProtectionJob 命令追蹤所有工作。 您可以列出所有工作,並擷取特定的工作詳細資料。

您也可以使用 Az.ResourceGraph,追蹤所有備份保存庫中的所有作業。 使用 Search-AzDataProtectionJobInAzGraph 命令取得可跨所有備份保存庫的相關工作。

  $job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDisk -Operation OnDemandBackup

下一步