Aracılığıyla paylaş


Azure CLI kullanarak Azure Yönetilen Diskler yedekleme

Bu makalede , Azure CLI kullanarak Azure Yönetilen Disk'i yedekleme açıklanmaktadır.

Önemli

CLI aracılığıyla Azure Yönetilen Diskler yedekleme ve geri yükleme desteği önizleme aşamasındadır ve Az 2.15.0 ve sonraki sürümlerde uzantı olarak kullanılabilir. az dataprotection komutlarını çalıştırdığınızda uzantı otomatik olarak yüklenir. Uzantılar hakkında daha fazla bilgi edinin.

Bu makalede şunları yapmayı öğreneceksiniz:

  • Yedekleme kasası oluşturma

  • Yedekleme ilkesi oluşturma

  • Azure Disk Yedeklemesini Yapılandırma

  • İsteğe bağlı yedekleme işi çalıştırma

Azure Disk yedekleme bölgesinin kullanılabilirliği, desteklenen senaryolar ve sınırlamalar hakkında bilgi için bkz. destek matrisi.

Yedekleme kasası oluşturma

Backup Vault, Azure'da PostgreSQL için Azure Veritabanı sunucuları, depolama hesabındaki bloblar ve Azure Diskleri gibi Azure Backup desteklenen daha yeni iş yükleri için yedekleme verilerini depolayan bir depolama varlığıdır. Yedekleme kasaları, yönetim yükünü en aza indirirken yedekleme verilerinizi düzenlemeyi kolaylaştırır. Yedekleme kasaları, yedekleme verilerinin güvenliğini sağlamaya yardımcı olmak için gelişmiş özellikler sağlayan Azure Resource Manager modelini temel alır.

Backup kasası oluşturmadan önce kasadaki verilerin depolama yedekliliğini seçin. Ardından bu depolama yedekliliği ve konumuyla Backup kasasını oluşturmaya devam edin. Bu makalede, westus bölgesinde testBkpVaultRG kaynak grubu altında bir Backup kasası TestBkpVault oluşturacağız. Yedekleme kasası oluşturmak için az dataprotection vault create komutunu kullanın. Backup kasası oluşturma hakkında daha fazla bilgi edinin.

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"
}

Kasa oluşturulduktan sonra Azure disklerini korumak için bir Yedekleme ilkesi oluşturalım.

Yedekleme ilkesi oluşturma

Azure Disk Backup için yedekleme ilkesinin iç bileşenlerini anlamak için az dataprotection backup-policy get-default-policy-template komutunu kullanarak ilke şablonunu alın. Bu komut, belirli bir veri kaynağı türü için varsayılan ilke şablonunu döndürür. Yeni bir ilke oluşturmak için bu ilke şablonunu kullanın.

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"
    }
  ]
}

İlke şablonu bir tetikleyiciden (yedeklemeyi neyin tetiklediğine karar veren) ve bir yaşam döngüsünden (yedeklemenin ne zaman silineceği/kopyalanıp taşınacaklarına karar veren) oluşur. Azure Disk Backup'ta tetikleyici için varsayılan değerler, her 4 saat (PT4H) için zamanlanmış bir tetikleyicidir ve her yedeklemeyi yedi gün boyunca korur.

Zamanlanmış tetikleyici:

"trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2020-04-05T13:00:00+00:00/PT4H"
          ]
        }
}

Varsayılan bekletme yaşam döngüsü:

"lifecycles": [
        {
          "deleteAfter": {
            "duration": "P7D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ]

Azure Disk Backup günde birden çok yedekleme sunar. Daha sık yedeklemeye ihtiyacınız varsa, her 4, 6, 8 veya 12 saatte bir aralıklarla yedekleme alabilme özelliğine sahip Saatlik yedekleme sıklığını seçin. Yedeklemeler, seçilen Zaman aralığına göre zamanlanır.

Örneğin, Her 4 saatte bir'i seçerseniz, yedeklemeler yaklaşık olarak her 4 saatte bir alınır, böylece yedeklemeler gün boyunca eşit olarak dağıtılır. Günde bir kez yedekleme yeterliyse Günlük yedekleme sıklığını seçin. Günlük yedekleme sıklığında, yedeklemelerinizin alındığı günün saatini belirtebilirsiniz.

Önemli

Günün saati, yedeklemenin tamamlanma zamanını değil yedeklemenin başlangıç saatini gösterir.

Yedekleme işlemini tamamlamak için gereken süre, diskin boyutu ve ardışık yedeklemeler arasındaki değişim oranı gibi çeşitli faktörlere bağlıdır. Ancak Azure Disk Backup, üretim uygulaması performansını etkilemeyen artımlı anlık görüntüleri kullanan aracısız bir yedeklemedir.

Not

Seçili kasada genel yedeklilik ayarı olsa da, Azure Disk Backup şu anda yalnızca anlık görüntü veri depolarını destekler. Tüm yedeklemeler aboneliğinizdeki bir kaynak grubunda depolanır ve Backup kasası depolama alanına kopyalanmaz.

İlke oluşturma hakkında daha fazla bilgi edinmek için Azure Disk Yedekleme ilke belgesine bakın.

Şablon bir JSON dosyası olarak indirildikten sonra, zamanlamak ve bekletmek için gerektiği gibi düzenleyebilirsiniz. Ardından elde edilen JSON ile yeni bir ilke oluşturun. Saatlik sıklığı veya bekletme süresini düzenlemek istiyorsanız az dataprotection backup-policy trigger set ve/veya az dataprotection backup-policy retention-rule set komutlarını kullanın. İlke JSON'u gerekli tüm değerlere sahip olduktan sonra , az dataprotection backup-policy create komutunu kullanarak ilke nesnesinden yeni bir ilke oluşturmaya devam edin.

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"
}

Yedeklemeyi yapılandırma

Kasa ve ilke oluşturulduktan sonra, azure diskini korumak için göz önünde bulundurmanız gereken üç kritik nokta vardır.

İlgili önemli varlıklar

Korunacak disk

ARM kimliğini ve korunacak diskin konumunu getirin. Bu, diskin tanımlayıcısı olarak görev yapacaktır. Farklı bir abonelik altında bir kaynak grubu diskrg'sinin altında CLITestDisk adlı bir disk örneği kullanacağız.

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

Anlık görüntü kaynak grubu

Disk anlık görüntüleri aboneliğinizdeki bir kaynak grubunda depolanır. Kılavuz olarak, Azure Backup hizmeti tarafından kullanılacak anlık görüntü veri deposu olarak ayrılmış bir kaynak grubu oluşturmanızı öneririz. Ayrılmış bir kaynak grubuna sahip olmak, kaynak grubu üzerindeki erişim izinlerinin kısıtlanmasına olanak tanır ve yedekleme verilerinin yönetilmesinde güvenlik ve kolaylık sağlar. Disk anlık görüntülerini yerleştirmek istediğiniz kaynak grubunun ARM kimliğini not edin

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

Yedekleme kasası

Backup kasaları, anlık görüntüleri tetikleyebilmek ve yaşam döngülerini yönetebilmek için diskte ve anlık görüntü kaynak grubunda izinler gerektirir. Kasanın sistem tarafından atanan yönetilen kimliği, bu tür izinleri atamak için kullanılır. Kurtarma Hizmetleri Kasası için sistem tarafından atanan yönetilen kimliği etkinleştirmek için az dataprotection backup-vault update komutunu kullanın.

az dataprotection backup-vault update -g testBkpVaultRG --vault-name TestBkpVault --type SystemAssigned

İzinler atama

RBAC aracılığıyla kasaya (kasa MSI ile temsil edilir) ve ilgili diske ve/veya disk RG'ye birkaç izin atamanız gerekir. Bunlar Azure portal veya CLI aracılığıyla gerçekleştirilebilir. İlgili izinleri atamak için yönetilen disklerin yedeklemesini yapılandırma önkoşullarına bakın.

İsteği hazırlama

Tüm ilgili izinler ayarlandıktan sonra yedekleme yapılandırması iki adımda gerçekleştirilir. İlk olarak, az dataprotection backup-instance initialize komutunu kullanarak ilgili kasayı, ilkeyi, diski ve anlık görüntü kaynak grubunu kullanarak ilgili isteği hazırlarız. Initialize komutu bir JSON dosyası döndürür ve ardından anlık görüntü kaynak grubu değerini güncelleştirmeniz gerekir. Ardından az dataprotection backup-instance create komutunu kullanarak diski koruma isteği göndereceğiz.

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

JSON dosyasını açın ve bölümünün altındaki data_store_parameters_listanlık görüntü kaynak grubu kimliğiniresource_group_id düzenleyin.

{
  "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"
          }
        ]
      }
    }
  }
}

Not

Yedekleme örneği adı istemciler tarafından oluşturulur, böylece bu benzersiz bir değer olur. Veri kaynağı adını ve benzersiz bir GUID'i temel alır. Yedekleme örneklerini listeledikten sonra, yedekleme örneğinin adını ve ilgili veri kaynağı adını denetleyebilmelisiniz.

Azure Yönetilen Disk'in yedek örneğini oluşturmak için düzenlenen JSON dosyasını kullanın.

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"
}

Yedekleme örneği oluşturulduktan sonra, ilkenin zamanlanmasını beklemek istemiyorsanız isteğe bağlı yedeklemeyi tetikleyebilirsiniz.

İsteğe bağlı yedekleme çalıştırma

az dataprotection backup-instance list komutunu kullanarak kasa içindeki tüm yedekleme örneklerini listeleyin ve ardından az dataprotection backup-instance show komutunu kullanarak ilgili örneği getirin. Alternatif olarak, büyük ölçekli senaryolar için az dataprotection backup-instance list-from-resourcegraph komutunu kullanarak kasalar ve abonelikler arasında yedekleme örneklerini listeleyebilirsiniz.

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
  }
]

Yedeklemeyi tetiklerken bir kural ve etiket adı belirtebilirsiniz. İlkedeki kuralları görüntülemek için JSON ilkesine bakın. Aşağıdaki örnekte adı ve etiket adı "BackupDaily""default" olan kural görüntülenir ve bu kuralı isteğe bağlı yedekleme için kullanacağız.

"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
    }

az dataprotection backup-instance adhoc-backup komutunu kullanarak isteğe bağlı yedeklemeyi tetikleyin.

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"

İşleri izleme

az dataprotection job list komutunu kullanarak tüm işleri izleyin. Tüm işleri listeleyebilir ve belirli bir iş ayrıntısı getirebilirsiniz.

Tüm Backup kasalarında tüm işleri izlemek için Az.ResourceGraph'ı da kullanabilirsiniz. Herhangi bir Backup kasasında bulunabilecek ilgili işi almak için az dataprotection job list-from-resourcegraph komutunu kullanın.

az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed

Sonraki adımlar

Azure CLI kullanarak Azure Yönetilen Diskler geri yükleme