Mencadangkan Azure Managed Disks menggunakan Azure CLI
Artikel ini menjelaskan cara mencadangkan Azure Managed Disk menggunakan Azure CLI.
Penting
Dukungan untuk pencadangan dan pemulihan Azure Managed Disks melalui CLI dalam pratinjau dan tersedia sebagai ekstensi di versi Az 2.15.0 dan yang lebih baru. Ekstensi diinstal secara otomatis saat Anda menjalankan perintah az dataprotection. Pelajari lebih lanjut tentang ekstensi.
Untuk informasi tentang ketersediaan wilayah cadangan Azure Disk, skenario dan batasan yang didukung, lihat matriks dukungan.
Membuat vault Pencadangan
Brankas Backup adalah entitas penyimpanan di Azure yang menyimpan data cadangan untuk berbagai beban kerja baru yang didukung Azure Backup, seperti server Azure Database for PostgreSQL, blob di akun penyimpanan, dan Azure Disks. Vault Backup memudahkan untuk mengatur data cadangan Anda, sambil meminimalkan overhead manajemen. Kubah cadangan didasarkan pada model Azure Resource Manager Azure, yang menyediakan kemampuan yang disempurnakan untuk membantu mengamankan data pencadangan.
Sebelum Anda membuat brankas Backup, pilih redundansi penyimpanan data di dalam brankas. Kemudian lanjutkan untuk membuat brankas Backup dengan redundansi penyimpanan dan lokasinya. Dalam artikel ini, kita akan membuat brankas Backup TestBkpVault, di wilayah westus, pada bagian grup sumber daya testBkpVaultRG. Gunakan perintah az dataprotection vault create untuk membuat brankas Microsoft Azure Backup. Pelajari selengkapnya tentang membuat kubah Cadangan.
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": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"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"
}
Setelah membuat brankas, mari buat kebijakan Backup untuk melindungi disk Azure.
Buat kebijakan Cadangan
Untuk memahami komponen dalam kebijakan Backup untuk Azure Disk Backup, ambil templat kebijakan menggunakan perintah az dataprotection backup-policy get-default-policy-template. Perintah ini mengembalikan templat kebijakan default untuk jenis sumber data tertentu. Gunakan templat kebijakan ini untuk membuat kebijakan baru.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk
{
"datasourceTypes": [
"Microsoft.Compute/disks"
],
"name": "DiskPolicy",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
Templat kebijakan terdiri dari pemicu (yang memutuskan apa yang memicu cadangan) dan siklus hidup (yang memutuskan kapan akan menghapus/menyalin/memindahkan cadangan). Di Azure Disk Backup, nilai default untuk pemicu adalah pemicu terjadwal untuk setiap 4 jam (PT4H) dan untuk mempertahankan setiap cadangan selama tujuh hari.
Pemicu terjadwal:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
}
}
Siklus hidup retensi default:
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
]
Azure Disk Backup menawarkan beberapa cadangan per hari. Jika Anda memerlukan pencadangan yang lebih sering, pilih frekuensi pencadangan Per Jam dengan kemampuan untuk mengambil cadangan dengan interval setiap 4, 6, 8, atau 12 jam. Pencadangan dijadwalkan berdasarkan interval Waktu dipilih.
Misalnya, jika Anda memilih Setiap 4 jam, maka cadangan diambil sekitar dalam interval setiap 4 jam sehingga cadangan didistribusikan secara merata sepanjang hari. Jika pencadangan sekali sehari sudah cukup, pilih frekuensi pencadangan Harian. Dalam frekuensi pencadangan harian, Anda dapat menentukan waktu hari saat pencadangan Anda dilakukan.
Penting
Waktu dalam sehari menunjukkan waktu mulai pencadangan dan bukan waktu pencadangan selesai.
Waktu yang diperlukan untuk menyelesaikan operasi pencadangan bergantung pada berbagai faktor termasuk ukuran disk, dan kecepatan churn antar pencadangan berurutan. Namun, Azure Disk Backup adalah cadangan tanpa agen yang menggunakan rekam jepret bertambah bertahap, yang tidak memengaruhi performa aplikasi produksi.
Catatan
Meskipun brankas yang dipilih mungkin memiliki pengaturan redundansi global, saat ini, Azure Disk Backup hanya mendukung penyimpanan data rekam jepret. Semua cadangan disimpan dalam grup sumber daya di langganan Anda dan tidak disalin ke penyimpanan brankas Backup.
Untuk mengetahui detail selengkapnya tentang pembuatan kebijakan, lihat dokumen kebijakan Azure Disk Backup.
Setelah templat diunduh sebagai file JSON, Anda dapat mengeditnya untuk penjadwalan dan retensi sesuai kebutuhan. Kemudian buat kebijakan baru dengan JSON yang dihasilkan. Jika Anda ingin mengedit frekuensi per jam atau periode penyimpanan, gunakan perintah az dataprotection backup-policy trigger set dan/atau az dataprotection backup-policy retention-rule set. Setelah kebijakan JSON memiliki semua nilai yang dibutuhkan, lanjutkan untuk membuat kebijakan baru dari objek kebijakan menggunakan perintah az dataprotection backup-policy create.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk > policy.json
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/mypolicy",
"name": "mypolicy",
"properties": {
"datasourceTypes": [
"Microsoft.Compute/disks"
],
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Konfigurasikan pencadangan
Setelah brankas dan kebijakan dibuat, ada tiga poin penting yang perlu Anda pertimbangkan untuk melindungi Azure Disk.
Entitas utama yang terlibat
Disk yang akan dilindungi
Ambil ID ARM dan lokasi disk yang akan dilindungi. Ini akan berfungsi sebagai pengidentifikasi disk. Kita akan menggunakan contoh disk bernama CLITestDisk, pada bagian grup sumber daya diskrg, pada bagian langganan yang berbeda.
$DiskId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
Grup sumber daya rekam jepret
Rekam jepret disk disimpan dalam grup sumber daya dalam langganan Anda. Sebagai pedoman, sebaiknya buat grup sumber daya khusus sebagai penyimpanan data rekam jepret untuk digunakan oleh layanan Azure Backup. Memiliki grup sumber daya khusus memungkinkan pembatasan izin akses pada grup sumber daya, menyediakan keamanan dan kemudahan pengelolaan data cadangan. Catat ID ARM untuk grup sumber daya di mana Anda ingin menempatkan rekam jepret disk
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/snapshotrg"
Kubah cadangan
Brankas Backup memerlukan izin pada disk dan grup sumber daya rekam jepret untuk dapat memicu rekam jepret dan mengelola siklus hidupnya. Identitas terkelola yang ditetapkan sistem dari brankas digunakan untuk menetapkan izin tersebut. Gunakan perintah az dataprotection backup-vault update untuk mengaktifkan identitas terkelola yang ditetapkan sistem untuk Recovery Services Vault.
az dataprotection backup-vault update -g testBkpVaultRG --vault-name TestBkpVault --type SystemAssigned
Tetapkan izin
Anda perlu menetapkan beberapa izin melalui RBAC ke brankas (diwakili oleh MSI brankas) dan disk yang relevan dan/atau disk RG. Ini dapat dilakukan melalui portal Azure atau CLI. Untuk menetapkan izin terkait, lihat prasyarat untuk mengonfigurasi cadangan disk terkelola.
Siapkan permintaan
Setelah semua izin yang relevan diatur, konfigurasi pencadangan dilakukan dalam dua langkah. Pertama, kita siapkan permintaan yang relevan dengan menggunakan brankas, kebijakan, disk, dan grup sumber daya rekam jepret yang relevan menggunakan perintah az dataprotection backup-instance initialize. Perintah inisialisasi akan mengembalikan file JSON, lalu Anda harus memperbarui nilai grup sumber daya rekam jepret. Kemudian, kami mengirimkan permintaan untuk melindungi disk menggunakan perintah az dataprotection backup-instance create.
az dataprotection backup-instance initialize --datasource-type AzureDisk -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/mypolicy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk" > backup_instance.json
Buka file JSON dan edit ID grup sumber daya rekam jepret di resource_group_id
pada bagian data_store_parameters_list
.
{
"backup_instance_name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"properties": {
"data_source_info": {
"datasource_type": "Microsoft.Compute/disks",
"object_type": "Datasource",
"resource_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resource_location": "southeastasia",
"resource_name": "CLITestDisk",
"resource_type": "Microsoft.Compute/disks",
"resource_uri": ""
},
"data_source_set_info": null,
"object_type": "BackupInstance",
"policy_info": {
"policy_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policy_parameters": {
"data_store_parameters_list": [
{
"data_store_type": "OperationalStore",
"object_type": "AzureOperationalStoreParameters",
"resource_group_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/snapshotrg"
}
]
}
}
}
}
Catatan
Nama instans cadangan dibuat oleh klien sehingga ini akan menjadi nilai unik. Ini didasarkan pada nama sumber data dan GUID yang unik. Setelah membuat daftar instans cadangan, Anda seharusnya dapat memeriksa nama instans cadangan dan nama sumber data yang relevan.
Gunakan file JSON yang diedit untuk membuat instans cadangan Azure Managed Disk.
az dataprotection backup-instance create -g testBkpVaultRG --vault-name TestBkpVault --backup-instance backup_instance.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupInstances/diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"properties": {
"currentProtectionState": "ProtectionConfigured",
"dataSourceInfo": {
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resourceLocation": "southeastasia",
"resourceName": "CLITestDisk",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
},
"dataSourceSetInfo": null,
"friendlyName": "CLITestDisk",
"objectType": "BackupInstance",
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/sarath-rg"
}
]
},
"policyVersion": null
},
"protectionErrorDetails": null,
"protectionStatus": {
"errorDetails": null,
"status": "ProtectionConfigured"
},
"provisioningState": "Succeeded"
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupInstances"
}
Setelah instans cadangan dibuat, Anda dapat melanjutkan untuk memicu cadangan sesuai permintaan jika Anda tidak ingin menunggu kebijakan dijadwalkan.
Jalankan cadangan sesuai permintaan
Buat daftar semua instans cadangan dalam brankas menggunakan perintah az dataprotection backup-instance list, lalu ambil instans yang relevan menggunakan perintah az dataprotection backup-instance show. Atau, untuk skenario dalam skala besar, Anda dapat mencantumkan instans cadangan di seluruh vault dan langganan menggunakan perintah az dataprotection backup-instance list-from-resourcegraph .
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureDisk --datasource-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk
[
{
"datasourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"extendedLocation": null,
"id": "//subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupInstances/diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"identity": null,
"kind": "",
"location": "",
"managedBy": "",
"name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"plan": null,
"properties": {
"currentProtectionState": "ProtectionConfigured",
"dataSourceInfo": {
"baseUri": null,
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resourceLocation": "westus",
"resourceName": "CLITestDisk",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
},
"dataSourceProperties": null,
"dataSourceSetInfo": null,
"datasourceAuthCredentials": null,
"friendlyName": "CLITestDisk",
"objectType": "BackupInstance",
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/snapshotrg"
}
]
},
"policyVersion": null
},
"protectionErrorDetails": null,
"protectionStatus": {
"errorDetails": null,
"status": "ProtectionConfigured"
},
"provisioningState": "Succeeded"
},
"protectionState": "ProtectionConfigured",
"resourceGroup": "testBkpVaultRG",
"sku": null,
"subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tags": null,
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "microsoft.dataprotection/backupvaults/backupinstances",
"vaultName": "TestBkpVault",
"zones": null
}
]
Anda dapat menentukan aturan dan nama tag saat memicu pencadangan. Untuk melihat aturan dalam kebijakan, lihat kebijakan JSON. Dalam contoh berikut, aturan dengan nama "BackupDaily"
, dan nama "default"
tag ditampilkan, dan kita akan menggunakan aturan tersebut untuk cadangan sesuai permintaan.
"name": "BackupDaily",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2022-09-27T23:30:00+00:00/P1D"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
Picu cadangan sesuai permintaan menggunakan perintah az dataprotection backup-instance adhoc-backup.
az dataprotection backup-instance adhoc-backup --name "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166" --rule-name "BackupDaily" --resource-group "000pikumar" --vault-name "PratikPrivatePreviewVault1" --retention-tag-override "default"
Lacak pekerjaan
Lacak semua pekerjaan menggunakan perintah az dataprotection job list. Anda dapat mencantumkan semua pekerjaan dan mengambil detail pekerjaan tertentu.
Anda juga dapat menggunakan Az.ResourceGraph untuk melacak semua pekerjaan di semua vault Cadangan. Gunakan perintah az dataprotection job list-from-resourcegraph untuk mendapatkan pekerjaan yang relevan yang dapat dilakukan di semua kubah Microsoft Azure Backup.
az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed