Azure CLI ile Azure'da bir sanal makineyi yedekleme

Azure CLI, komut satırından veya betik içindeki Azure kaynaklarını oluşturmak ve yönetmek için kullanılır. Düzenli aralıklarla yedekleme yaparak verilerinizi koruyabilirsiniz. Azure Backup, coğrafi olarak yedekli kurtarma kasalarında saklanabilecek kurtarma noktaları oluşturur. Bu makalede Azure CLI ile Azure'daki bir sanal makinenin nasıl yedekleneceği anlatılmaktadır. Bu adımları Azure PowerShell veya Azure portalı ile de gerçekleştirebilirsiniz.

Bu hızlı başlangıç belgesi var olan bir Azure VM'de yedeklemeyi etkinleştirir. Bir sanal makine oluşturmanız gerekiyorsa Azure CLI ile sanal makine oluşturabilirsiniz.

Önkoşullar

  • Bu hızlı başlangıç için Azure CLI'nın 2.0.18 veya sonraki bir sürümü gerekir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

Kurtarma Hizmetleri kasası oluşturma

Kurtarma Hizmetleri kasası, Azure sanal makineleri gibi koruma altındaki kaynakların yedeklenen verilerini saklayan bir mantıksal kapsayıcıdır. Koruma altındaki bir kaynak için yedekleme işi çalıştığında Kurtarma Hizmetleri kasasının içinde bir kurtarma noktası oluşturulur. Daha sonra bu kurtarma noktalarından birini kullanarak verileri dilediğiniz zaman geri yükleyebilirsiniz.

az backup vault create komutuyla bir Kurtarma Hizmetleri kasası oluşturun. Korumak istediğiniz sanal makineyle aynı kaynak grubunu ve konumu belirtin. VM hızlı başlangıç adımını kullandıysanız şu öğeler oluşturulmuştur:

  • myResourceGroup adlı bir kaynak grubu,
  • myVM adlı bir VM,
  • eastus konumunda bulunan kaynaklar.
az backup vault create --resource-group myResourceGroup \
    --name myRecoveryServicesVault \
    --location eastus

Varsayılan olarak Kurtarma Hizmetleri kasasında Coğrafi Olarak Yedekli depolama özelliği etkindir. Geo-Redundant depolama alanı, yedekleme verilerinizin birincil bölgeden yüzlerce kilometre uzaktaki ikincil bir Azure bölgesine çoğaltılmasını sağlar. Depolama yedekliliği ayarının değiştirilmesi gerekiyorsa az backup vault backup-properties set cmdlet'ini kullanın.

az backup vault backup-properties set \
    --name myRecoveryServicesVault  \
    --resource-group myResourceGroup \
    --backup-storage-redundancy "LocallyRedundant/GeoRedundant"

Bir Azure sanal makinesi için yedeklemeyi etkinleştirme

Bir yedekleme işinin çalışma zamanını ve kurtarma noktalarının saklama süresini tanımlamak için bir koruma ilkesi oluşturun. Varsayılan koruma ilkesi yedekleme işini her gün çalıştırır ve kurtarma noktalarını 30 gün boyunca tutar. Sanal makinenizi hızlı bir şekilde koruma altına almak için bu varsayılan ilke değerlerini kullanabilirsiniz. Bir sanal makine için yedekleme korumasını etkinleştirmek amacıyla az backup protection enable-for-vm komutunu kullanın. Korumaya alınacak kaynak grubunu ve sanal makineyi belirttikten sonra kullanılacak ilkeyi seçin:

az backup protection enable-for-vm \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --vm myVM \
    --policy-name DefaultPolicy

Not

VM, kasayla aynı kaynak grubunda değilse myResourceGroup, kasanın oluşturulduğu kaynak grubuna başvurur. VM adı yerine, aşağıda gösterildiği gibi VM kimliğini girin.

az backup protection enable-for-vm \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --vm $(az vm show -g VMResourceGroup -n MyVm --query id | tr -d '"') \
    --policy-name DefaultPolicy

Önemli

Bir kerede birden çok VM için yedeklemeyi etkinleştirmek üzere CLI kullanırken, tek bir ilkeyle ilişkilendirilmiş 100'den fazla VM olmadığından emin olun. Bu önerilen en iyi uygulamadır. Şu anda, PowerShell istemcisi 100'den fazla VM varsa açıkça engellemez, ancak denetimin gelecekte eklenmesi planlanır.

Şifrelenmiş VM'leri yedekleme önkoşulları

Şifrelenmiş VM'lerde korumayı etkinleştirmek için (BEK ve KEK kullanılarak şifrelenir), anahtar kasasından anahtarları ve gizli dizileri okumak için Azure Backup hizmeti iznini sağlamanız gerekir. Bunu yapmak için, aşağıda gösterildiği gibi gerekli izinlere sahip bir keyvault erişim ilkesi ayarlayın:

# Enter the name of the resource group where the key vault is located on this variable
AZ_KEYVAULT_RGROUP=TestKeyVaultRG

# Enter the name of the key vault on this variable
AZ_KEYVAULT_NAME=TestKeyVault

# Get the object id for the Backup Management Service on your subscription
AZ_ABM_OBJECT_ID=$( az ad sp list --display-name "Backup Management Service" --query '[].objectId' -o tsv --only-show-errors )

# This command will grant the permissions required by the Backup Management Service to access the key vault
az keyvault set-policy --key-permissions get list backup --secret-permissions get list backup \
  --resource-group $AZ_KEYVAULT_RGROUP --name $AZ_KEYVAULT_NAME --object-id $AZ_ABM_OBJECT_ID

Bir yedekleme işi başlatma

Varsayılan ilkenin işi planlanan saatte başlatmasını beklemek yerine yedekleme işini hemen başlatmak için az backup protection backup-now komutunu kullanın. İlk yedekleme işi tam kurtarma noktası oluşturur. Bu ilk yedekleme sonrasında çalıştırılan tüm yedekleme işleri artımlı kurtarma noktaları oluşturur. Yalnızca son yedekleme sonrasında yapılan değişiklikleri aktardığından artımlı kurtarma noktaları depolama alanı ve süre açısından verimlilik sağlar.

Sanal makineyi yedeklemek için aşağıdaki parametreler kullanılır:

  • --container-name, sanal makinenizin adıdır
  • --item-name, sanal makinenizin adıdır
  • --retain-until değeri kurtarma noktasının kullanılabilir durumda olmasını istediğiniz son tarihe ve UTC saat biçiminde (gg-aa-yyyy) ayarlanmalıdır

Aşağıdaki örnekte myVM adlı sanal makine yedeklenmekte ve kurtarma noktasının geçerlilik sonu 18 Ekim 2017 olarak ayarlanmaktadır:

az backup protection backup-now \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --backup-management-type AzureIaaSVM
    --retain-until 18-10-2017

Yedekleme işini izleme

Yedekleme işlerinin durumunu izlemek için az backup job list komutunu kullanın:

az backup job list \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --output table

Çıktı, yedekleme işinin Sürüyor durumda olduğunu gösteren aşağıdaki örneğe benzer olacaktır:

Name      Operation        Status      Item Name    Start Time UTC       Duration
--------  ---------------  ----------  -----------  -------------------  --------------
a0a8e5e6  Backup           InProgress  myvm         2017-09-19T03:09:21  0:00:48.718366
fe5d0414  ConfigureBackup  Completed   myvm         2017-09-19T03:03:57  0:00:31.191807

Yedekleme işinin Durum bilgisi Tamamlandı olduğunda sanal makineniz Kurtarma Hizmetleri ile koruma altına alınmış ve kayıtlı tam kurtarma noktasına sahip olmuş olur.

Dağıtımı temizleme

Artık gerekli değilse sanal makine korumasını devre dışı bırakabilir, kurtarma noktalarını ve Kurtarma Hizmetleri kasasını kaldırabilir ve ardından sanal makine kaynaklarıyla ilişkilendirilmiş kaynak grubunu silebilirsiniz. Var olan bir sanal makineyi kullandıysanız son az group delete komutunu atlayarak kaynak grubunu ve sanal makineyi bırakabilirsiniz.

VM verilerinizi geri yüklemeyi gösteren bir Backup öğreticisini denemek istiyorsanız Sonraki adımlar bölümüne gidin.

az backup protection disable \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --backup-management-type AzureIaaSVM
    --delete-backup-data true
az backup vault delete \
    --resource-group myResourceGroup \
    --name myRecoveryServicesVault \
az group delete --name myResourceGroup

Sonraki adımlar

Bu hızlı başlangıçta bir Kurtarma Hizmetleri kasası oluşturdunuz, bir sanal makine için koruma özelliklerini etkinleştirdiniz ve ilk kurtarma noktasını oluşturdunuz. Azure Backup ve Kurtarma Hizmetleri hakkında daha fazla bilgi edinmek için öğreticilere geçin.