使用 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 資源之特殊類型的服務主體。 深入了解受控識別。
如果要設定受控磁碟的備份,請確認下列必要條件:
在需要備份的來源磁碟上,將磁碟備份讀者角色指派給備份保存庫的受控識別。
移至需要備份的磁碟。
移至 [存取控制 (IAM)],然後選取 [新增角色指派]。
在右側的內容窗格中,選取 [角色] 下拉式清單中的 [磁碟備份讀者]。
選取備份保存庫的受控識別,並按一下 [儲存]。
提示
輸入備份保存庫的名稱,以選取保存庫的受控識別。
將磁碟快照參與者角色指派給資源群組上備份保存庫的受控識別,其中的備份是由 Azure 備份服務建立並管理。 磁碟快照集儲存在訂用帳戶內的資源群組中。 如果要允許 Azure 備份服務建立、儲存及管理快照集,您需要提供備份保存庫的權限。
移至資源群組。 例如,資源群組是 SnapshotRG,且和要備份的磁碟位於相同的訂用帳戶中。
移至 [存取控制 (IAM)],然後選取 [新增角色指派]。
在右側的內容窗格中,選取 [角色] 下拉式清單中的 [磁碟快照參與者]。
選取備份保存庫的受控識別,並按一下 [儲存]。
提示
輸入備份保存庫的名稱,以選取保存庫的受控識別。
確認備份保存庫的受控識別在來源磁碟和資源群組上,皆有一組正確的角色指派,並可作為快照資料存放區。
注意
角色指派在入口網站上正確顯示時,可能需要大約 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