使用 Azure CLI 備份儲存體帳戶中的 Azure Blob
本文描述如何使用 Azure CLI 來備份 Azure Blob。
重要
透過 CLI 的 Azure Blob 備份與還原支援目前處於預覽階段,而在 Az 2.15.0 版和更新版本中會以延伸模組的形式提供。 該延伸模組將會在您執行 az dataprotection 命令時自動安裝。 深入了解擴充功能。
在本文中,您將學會如何:
在您開始使用 Intune 之前
建立備份保存庫
建立備份原則
設定 Azure Blob 的備份
執行隨選備份作業
如需 Azure Blob 區域可用性、支援案例和限制的相關資訊,請參閱支援矩陣。
在您開始使用 Intune 之前
建立備份保存庫
備份保存庫是 Azure 中的儲存體實體,可儲存 Azure 備份所支援各種較新工作負載的備份資料,例如適用於 PostgreSQL 的 Azure 資料庫伺服器,以及儲存體帳戶中的 Blob 和 Azure 磁碟。 保存庫可讓您輕鬆組織備份資料,同時可減輕管理負擔。 備份保存庫會以 Azure 的 Azure Resource Manager 模型為基礎,可提供增強功能來協助保護備份資料。
建立備份保存庫之前,請在保存庫中選擇資料的儲存體備援。 然後,繼續使用該儲存體備援和位置來建立備份保存庫。 在本文中,我們會在 westus 中的資源群組 testBkpVaultRG 下,建立備份保存庫 TestBkpVault。 使用 az dataprotection vault create 命令來建立備份保存庫。 深入了解建立備份保存庫。
az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
{
"eTag": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
"identity": {
"principalId": "2ca1d5f7-38b3-4b61-aa45-8147d7e0edbc",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"location": "westus",
"name": "TestBkpVault",
"properties": {
"provisioningState": "Succeeded",
"storageSettings": [
{
"datastoreType": "VaultStore",
"type": "LocallyRedundant"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"tags": null,
"type": "Microsoft.DataProtection/backupVaults"
}
重要
雖然您會看到保存庫的備份儲存體備援,但該備援並不適用於 Blob 的作業備份。 這是由於備份本質上屬於本機,且不會在備份保存庫中儲存任何資料。 此處的備份保存庫為管理實體,可協助您管理儲存體帳戶中區塊 Blob 的保護。
建立保存庫後,現在來建立備份原則,以保護儲存體帳戶中的 Azure Blob。
建立備份原則
重要
請先閱讀本節,再建立原則及設定 Azure blob 備份。
若要了解 Azure Blob 備份的備份原則內部元件,請使用 az dataprotection backup-policy get-default-policy-template 命令來擷取原則範本。 此命令會傳回指定資料來源類型的預設原則範本。 使用此原則範本來建立新的原則。
az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob
{
"datasourceTypes": [
"Microsoft.Storage/storageAccounts/blobServices"
],
"name": "BlobPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P30D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
此原則範本僅由生命週期所組成 (其決定何時刪除/複製/移動備份)。 由於 Blob 的作業備份本質上是連續的,因此您不需要排程執行備份。
"policyRules": [
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P30D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
注意
若還原期間較長,可能會導致還原作業需要較久時間才能完成。 此外,還原一組資料所需的時間,取決於在還原期間所進行的寫入和刪除作業數目。 例如,假設有個帳戶包含一百萬個物件,而且每日會新增 3,000 個物件並刪除 1,000 個物件,則大約需要兩小時,才能還原至過去 30 天的某個時間點。
對於具有此變動率的帳戶,不建議保留期間和還原超過前 90 天。
一旦原則 JSON 具有所有必要值,請繼續使用 az dataprotection backup-policy create 命令,從原則物件建立新的原則。
az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob > policy.json
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n BlobBackup-Policy --policy policy.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
"name": "BlobBackup-Policy",
"properties": {
"datasourceTypes": [
"Microsoft.Storage/storageAccounts/blobServices"
],
"objectType": "BackupPolicy",
"policyRules": [
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P2D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
設定備份
建立保存庫和原則後,您必須考慮兩項重點,以便保護儲存體帳戶內的所有 Azure Blob。
主要相關實體
儲存體帳戶,其中包含要保護的 Blob
針對要保護 Blob 的所屬儲存體帳戶,擷取 Azure Resource Manager 識別碼。 這將作為儲存體帳戶的識別碼。 舉名稱為 CLITestSA 的儲存體帳戶為例,該帳戶位於東南亞區域不同訂用帳戶中的資源群組 blobrg。
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
備份保存庫
備份保存庫需要儲存體帳戶的權限,才能在儲存體帳戶中現存的 Blob 上啟用備份。 您會使用保存庫的系統指派的受控識別來指派這類權限。
指派權限
您必須透過 RBAC,將一些權限指派給保存庫 (以保存庫 MSI 表示) 及相關的儲存體帳戶。 您可以透過入口網站或 PowerShell 來執行這些作業。 深入了解所有相關的權限。
準備要求
設定所有相關的權限之後,請以 2 個步驟來執行備份的設定。 首先使用 az dataprotection backup-instance initialize 命令,透過相關保存庫、原則、儲存體帳戶來準備相關要求。 然後,我們使用 az dataprotection backup-instance create 命令來提交保護磁碟的要求。
az dataprotection backup-instance initialize --datasource-type AzureBlob -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA" > backup_instance.json
az dataprotection backup-instance create -g testBkpVaultRG --vault-name TestBkpVault --backup-instance backup_instance.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
"name": "CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
"properties": {
"currentProtectionState": "ProtectionConfigured",
"dataSourceInfo": {
"datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
"objectType": "Datasource",
"resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA",
"resourceLocation": "southeastasia",
"resourceName": "CLITestSA",
"resourceType": "Microsoft.Storage/storageAccounts",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
},
"dataSourceSetInfo": null,
"friendlyName": "CLITestSA",
"objectType": "BackupInstance",
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": ""
}
]
},
"policyVersion": ""
},
"protectionErrorDetails": null,
"protectionStatus": {
"errorDetails": null,
"status": "ProtectionConfigured"
},
"provisioningState": "Succeeded"
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupInstances"
}
重要
為 Blob 備份設定儲存體帳戶之後,有一些功能會受到影響,例如,變更摘要和刪除鎖定。 深入了解。