Öğretici: Azure CLI ile VM'yi geri yükleme

Bu öğreticide, CLI kullanarak eksiksiz bir VM'nin nasıl geri yükleneceği açıklanır.

Azure Backup, coğrafi olarak yedekli kurtarma kasalarında depolanan kurtarma noktaları oluşturur. Bir kurtarma noktasından geri yüklediğinizde, tüm sanal makineyi veya tek tek dosyaları geri yükleyebilirsiniz.

Disk geri yüklemek ve kurtarılmış bir VM oluşturmak üzere PowerShell kullanmayla ilgili bilgi edinmek için bkz. PowerShell ile Azure VM’lerini yedekleme ve geri yükleme.

Artık CLI kullanarak, yukarıdaki adımları ayrı ayrı gerçekleştirmeden yedekleme içeriğini doğrudan bir VM'ye (özgün/yeni) geri yükleyebilirsiniz. Daha fazla bilgi için bkz . CLI kullanarak verileri sanal makineye geri yükleme.

Önkoşullar

  • Bu öğretici, Azure CLI'nın 2.0.18 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

  • Bu öğretici için Azure Backup ile korunmuş olan bir Linux sanal makinesi gerekir. Yanlışlıkla bir sanal makineyi silme ve kurtarma işleminin benzetimini yapmak için, bir kurtarma noktasındaki diskten bir sanal makine oluşturursunuz. Azure Backup ile korunan bir Linux sanal makinesine ihtiyacınız varsa bkz. CLI ile Azure’da bir sanal makineyi yedekleme.

Azure VM'leri için yedeklemeye genel bakış

Azure bir yedekleme başlattığında sanal makinedeki yedekleme uzantısı, belirli bir noktanın anlık görüntüsünü alır. İlk yedekleme istendiğinde sanal makineye yedekleme uzantısı yüklenir. Yedekleme gerçekleştiğinde VM çalışmıyorsa Azure Backup da temel alınan depolamanın anlık görüntüsünü alabilir.

Varsayılan olarak Azure Backup, bir dosya sisteminin tutarlı yedeklemesini alır. Azure Backup verilerin anlık görüntüsünü aldığında, veriler Kurtarma Hizmetleri kasasına aktarılır. Verimliliği en üst düzeye çıkarmak için Azure Backup yalnızca önceki yedeklemeden itibaren değişmiş olan veri bloklarını belirler ve aktarır.

Veri aktarımı tamamlandığında, anlık görüntü kaldırılır ve bir kurtarma noktası oluşturulur.

VM için kullanılabilir kurtarma noktalarını listeleme

Bir diski geri yüklemek için, kurtarma verileri kaynağı olarak bir kurtarma noktası seçersiniz. Varsayılan ilke her gün bir kurtarma noktası oluşturup 30 gün boyunca bunları beklettiğinden, kurtarma için belirli bir nokta seçmenize olanak sağlayan bir kurtarma noktaları kümesini tutabilirsiniz.

Kullanılabilir kurtarma noktalarının listesini görmek için az backup recoverypoint list komutunu kullanın. Diskleri kurtarmak için kurtarma noktası adı kullanılır. Bu öğretici rehberde, kullanılabilir en son kurtarma noktasını seçiyoruz. --query [0].name parametresi aşağıdaki şekilde en son kurtarma noktası adını seçer:

az backup recoverypoint list \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --backup-management-type AzureIaasVM \
    --container-name myVM \
    --item-name myVM \
    --query [0].name \
    --output tsv

Sanal makine diskini geri yükleme

Önemli

Yönetilen disk geri yükleme dahil olmak üzere hızlı geri yüklemenin tüm avantajlarından yararlanmak için Az CLI sürüm 2.0.74 veya üzerini kullanmanız kesinlikle önerilir. En iyisi her zaman en son sürümü kullanmanızdır.

Yönetilen disk geri yükleme

Yedeklenen VM'de yönetilen diskler varsa ve amaç yönetilen diskleri kurtarma noktasından geri yüklemekse, önce bir Azure depolama hesabı sağlarsınız. Bu depolama hesabı, vm yapılandırmasını ve daha sonra vm'yi geri yüklenen disklerden dağıtmak için kullanılabilecek dağıtım şablonunu depolamak için kullanılır. Ardından, yönetilen disklerin geri yüklenmesi için bir hedef kaynak grubu da sağlarsınız.

  1. Depolama hesabı oluşturmak için az storage account create komutunu kullanın. Depolama hesabı adı tamamen küçük harflerden oluşmalı ve genel olarak benzersiz olmalıdır. mystorageaccount değerini kendi benzersiz adınızla değiştirin:

    az storage account create \
        --resource-group myResourceGroup \
        --name mystorageaccount \
        --sku Standard_LRS
    
  2. az backup restore restore-disks komutuyla kurtarma noktanızdan diski geri yükleyin. mystorageaccount değerini, önceki komutta oluşturduğunuz depolama hesabının adıyla değiştirin. myRecoveryPointName değerini önceki az backup recoverypoint list komutundan elde ettiğiniz kurtarma noktası adıyla değiştirin. Ayrıca yönetilen disklerin geri yüklendiği hedef kaynak grubunu da sağlayın.

    az backup restore restore-disks \
        --resource-group myResourceGroup \
        --vault-name myRecoveryServicesVault \
        --container-name myVM \
        --item-name myVM \
        --storage-account mystorageaccount \
        --rp-name myRecoveryPointName \
        --target-resource-group targetRG
    

    Uyarı

    Yönetilen disk geri yüklemeleri için target-resource-group sağlayın. Azure Backup, disklerin yönetilmeyen diskler olarak geri yüklenmesini desteklemez. Yönetilmeyen diskler kullanan VM'lerden eski kurtarma noktaları için bkz. Yönetilmeyen diskler kullanan VM'lerden eski kurtarma noktalarını geri yükleme.

Diskleri ikincil bölgeye geri yükleme

Vm'lerinizi koruduğunuz kasada bölgeler arası geri yüklemeyi etkinleştirdiğinizde yedekleme verileri ikincil bölgeye çoğaltılır. Geri yükleme işlemi gerçekleştirmek için yedekleme verilerini kullanabilirsiniz.

Diskleri ikincil bölgeye geri yüklemek için --use-secondary-region bayrağını az backup restore restore-disks komutunda kullanın. İkincil bölgede bulunan bir hedef depolama hesabı belirttiğinizden emin olun.

az backup restore restore-disks \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --storage-account targetStorageAccountID \
    --rp-name myRecoveryPointName \
    --target-resource-group targetRG
    --use-secondary-region

Bölgeler arası geri yükleme

Azure bölgesi sabitlenmiş VM'leri aynı bölgedeki kullanılabilirlik alanlarında geri yükleyebilirsiniz.

VM'yi başka bir bölgeye geri yüklemek için az backup restore restore-disks komutundaki TargetZoneNumber parametresini belirtin.

az backup restore restore-disks \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --storage-account targetStorageAccountID \
    --rp-name myRecoveryPointName \
    --target-resource-group targetRG
    --target-zone 3

Bölgeler arası geri yükleme yalnızca şu senaryolarda desteklenir:

  • Kaynak VM bölgede sabitlenmiş ve şifreli DEĞİLDİR.
  • Kurtarma noktası yalnızca depo katmanında bulunur. Yalnızca anlık görüntüler veya anlık görüntü ve kasa katmanı desteklenmez.
  • Kurtarma seçeneği yeni bir VM oluşturmak veya diskleri geri yüklemektir. Diskleri değiştir seçeneği kaynak verilerin yerini alır; bu nedenle kullanılabilirlik alanı seçeneği geçerli değildir.
  • Kasanın depolama yedekliliği ZRS olduğunda aynı bölgede VM/disk oluşturma. Kaynak VM bölge sabitlenmiş olsa bile kasanın depolama yedekliliği GRS ise çalışmadığını unutmayın.
  • Kasanın depolama yedekliliği Bölgeler Arası Yedekleme için etkinleştirildiğinde ve eşleştirilmiş bölge zonlarını destekliyorsa, eşleştirilmiş bölgede VM/disk oluşturma.

Yönetilmeyen diskleri geri yükleme

Kurtarma noktası yönetilmeyen diskler kullanan bir VM'den geliyorsa, Azure Backup bu diskleri yalnızca yönetilen diskler olarak geri yükler. VM yapılandırmasını, dağıtım şablonunu ve geçici VHD dosyalarını depolamak için bir Azure depolama hesabı sağlayın ve geri yüklenen yönetilen diskler için bir hedef kaynak grubu sağlayın.

Ek adımlarda, geri yüklenen diskler vm oluşturmak için kullanılır.

  1. Depolama hesabı oluşturmak için az storage account create komutunu kullanın. Depolama hesabı adı tamamen küçük harflerden oluşmalı ve genel olarak benzersiz olmalıdır. mystorageaccount değerini kendi benzersiz adınızla değiştirin:

    az storage account create \
        --resource-group myResourceGroup \
        --name mystorageaccount \
        --sku Standard_LRS
    
  2. az backup restore restore-disks komutuyla kurtarma noktanızdan diski geri yükleyin. mystorageaccount değerini, önceki komutta oluşturduğunuz depolama hesabının adıyla değiştirin. myRecoveryPointName değerini önceki az backup recoverypoint list komutundan elde ettiğiniz kurtarma noktası adıyla değiştirin. Ayrıca, geri yüklenen yönetilen diskler için hedef kaynak grubunu sağlayın:

    az backup restore restore-disks \
        --resource-group myResourceGroup \
        --vault-name myRecoveryServicesVault \
        --container-name myVM \
        --item-name myVM \
        --storage-account mystorageaccount \
        --rp-name myRecoveryPointName \
        --target-resource-group targetRG
    

Yönetilmeyen disklere geri yükleme desteklenmez. Yönetilmeyen diskler kullanan VM'lerden eski kurtarma noktaları için Yönetilmeyen diskler kullanan VM'lerden eski kurtarma noktalarını geri yükleme bölümünde yer alan yönergeleri izleyin.

Geri yükleme işini izleme

Geri yükleme işinin durumunu izlemek için az backup job list komutunu kullanın:

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

Çıktı, geri yükleme işinin İlerliyor durumunda olduğunu gösteren aşağıdaki örneğe benzer olacaktır:

Name      Operation        Status      Item Name    Start Time UTC       Duration
--------  ---------------  ----------  -----------  -------------------  --------------
7f2ad916  Restore          InProgress  myvm         2017-09-19T19:39:52  0:00:34.520850
a0a8e5e6  Backup           Completed   myvm         2017-09-19T03:09:21  0:15:26.155212
fe5d0414  ConfigureBackup  Completed   myvm         2017-09-19T03:03:57  0:00:31.191807

Geri yükleme işinin Durumu Tamamlandı olarak bildirildiğinde, gerekli bilgiler (VM yapılandırması ve dağıtım şablonu) depolama hesabına geri yüklenir.

Diskleri geri yüklemek için yönetilen kimlik kullanma

Azure Backup, disklerin geri yüklenmesi gereken depolama hesaplarına erişmek için geri yükleme işlemi sırasında yönetilen kimliği (MSI) kullanmanıza da olanak tanır. Bu seçenek şu anda yalnızca yönetilen disk geri yükleme için desteklenmektedir.

Diskleri geri yüklemek için kasanın sistem tarafından atanan yönetilen kimliğini kullanmak istiyorsanız az backup restore restore-disks komutuna ek bir --mi-system-assigned bayrağı geçirin. Kullanıcı tarafından atanan bir yönetilen kimlik kullanmak istiyorsanız, --mi-user-assigned parametresini, kasanın yönetilen kimliğine ait Azure Resource Manager kimliğiyle birlikte parametre olarak geçirin. Bu makaleye bakın, kasalarınız için yönetilen kimliği etkinleştirmeyi nasıl öğrenebileceğinizi görmek için.

Geri yüklenen diskten sanal makine oluşturma

Son adım, geri yüklenen disklerden bir VM oluşturmaktır. VM'yi oluşturmak için verilen depolama hesabına indirilen dağıtım şablonunu kullanabilirsiniz.

Görev detaylarını getir

Sonuçta elde edilen iş ayrıntıları, sorgulanabilen ve dağıtılabilir şablon URI'sini verir. Tetiklenen geri yüklenen işin daha fazla ayrıntısını almak için job show komutunu kullanın.

az backup job show \
    -v myRecoveryServicesVault \
    -g myResourceGroup \
    -n 1fc2d55d-f0dc-4ca6-ad48-aca0fe5d0414

Bu sorgunun çıktısı tüm ayrıntıları verir, ancak yalnızca depolama hesabı içeriğiyle ilgileniyoruz. İlgili ayrıntıları getirmek için Azure CLI'nın sorgu özelliğini kullanabiliriz

az backup job show \
    -v myRecoveryServicesVault \
    -g myResourceGroup \
    -n 1fc2d55d-f0dc-4ca6-ad48-aca0fe5d0414 \
    --query properties.extendedInfo.propertyBag

{
  "Config Blob Container Name": "myVM-daa1931199fd4a22ae601f46d8812276",
  "Config Blob Name": "config-myVM-1fc2d55d-f0dc-4ca6-ad48-aca0fe5d0414.json",
  "Config Blob Uri": "https://mystorageaccount.blob.core.windows.net/myVM-daa1931199fd4a22ae601f46d8812276/config-appvm8-1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json",
  "Job Type": "Recover disks",
  "Recovery point time ": "12/25/2019 10:07:11 PM",
  "Target Storage Account Name": "mystorageaccount",
  "Target resource group": "mystorageaccountRG",
  "Template Blob Uri": "https://mystorageaccount.blob.core.windows.net/myVM-daa1931199fd4a22ae601f46d8812276/azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json"
}

Dağıtım şablonunu getir

Müşterinin depolama hesabı ve belirtilen kapsayıcı altında olduğundan şablona doğrudan erişilemez. Bu şablona erişmek için tam URL'ye (geçici bir SAS belirteci ile birlikte) ihtiyacımız var.

İlk olarak, iş ayrıntılarından şablon blob Uri'sini ayıklayın

az backup job show \
    -v myRecoveryServicesVault \
    -g myResourceGroup \
    -n 1fc2d55d-f0dc-4ca6-ad48-aca0fe5d0414 \
    --query properties.extendedInfo.propertyBag."""Template Blob Uri"""

"https://mystorageaccount.blob.core.windows.net/myVM-daa1931199fd4a22ae601f46d8812276/azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json"

Şablon blobu Uri'si bu biçimde olacak ve şablon adını ayıklayacaktır

https://<storageAccountName.blob.core.windows.net>/<containerName>/<templateName>

Bu nedenle, yukarıdaki örnekteki şablon adı azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json ve kapsayıcı adı myVM-daa1931199fd4a22ae601f46d8812276 olacaktır.

Şimdi bu kapsayıcı ve şablon için SAS belirtecini burada ayrıntılı olarak bulabilirsiniz

expiretime=$(date -u -d '30 minutes' +%Y-%m-%dT%H:%MZ)
token=$(az storage blob generate-sas --account-name $storageAccountName --container-name $containerName --name $templateName --permissions r --expiry $expiretime --auth-mode login --as-user --https-only --output tsv)
url=$(az storage blob url --account-name $storageAccountName --container-name $containerName --name $templateName --output tsv --auth-mode login)

VM oluşturmak için şablonu dağıtma

Şimdi burada açıklandığı gibi VM'yi oluşturmak için şablonu dağıtın.

az deployment group create \
  --resource-group ExampleGroup \
  --template-uri $url?$token

Kurtarılan diskinizden sanal makinenizin oluşturulduğunu onaylamak için az vm list komutuyla aşağıdaki şekilde kaynak grubunuzdaki sanal makineleri listeleyin:

az vm list --resource-group myResourceGroup --output table

CLI kullanarak verileri sanal makineye geri yükleme

Artık birden çok adım gerçekleştirmeden verileri doğrudan özgün/alternatif VM'ye geri yükleyebilirsiniz.

Verileri özgün VM'ye geri yükleme

az backup restore restore-disks \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --restore-mode OriginalLocation 
    --storage-account mystorageaccount \
    --rp-name myRecoveryPointName \ 
Name      Operation        Status      Item Name    Start Time UTC       Duration
--------  ---------------  ----------  -----------  -------------------  --------------
7f2ad916  Restore          InProgress  myVM         2017-09-19T19:39:52  0:00:34.520850

Son komut, mevcut VM'deki verileri yerinde geri yüklemek için özgün bir konum geri yükleme işlemini tetikler.

Verileri yeni oluşturulan vm'ye geri yükleme

az backup restore restore-disks \
    --resource-group myResourceGroup \
    --vault-name myRecoveryServicesVault \
    --container-name myVM \
    --item-name myVM \
    --restore-mode AlternateLocation \
    --storage-account mystorageaccount \

--target-resource-group "Target_RG" \
    --rp-name myRecoveryPointName \
    --target-vm-name "TargetVirtualMachineName" \
    --target-vnet-name "Target_VNet" \
    --target-vnet-resource-group "Target_VNet_RG" \
    --target-subnet-name "targetSubNet"
Name      Operation        Status      Item Name    Start Time UTC       Duration
--------  ---------------  ----------  -----------  -------------------  --------------
7f2ad916  Restore          InProgress  myVM         2017-09-19T19:39:52  0:00:34.520850

Son komut, TargetVMName, TargetVNetName, TargetVNetResourceGroup, TargetSubnetName parametreleri tarafından belirtilen girişlere göre Target_RG kaynak grubunda yeni bir VM oluşturmak için alternatif bir konum geri yükleme işlemi tetikler. Bu, verilerin gerekli VM'ye, sanal ağa ve alt ağa geri yüklenmesini sağlar.

Sonraki adımlar

Bu öğreticide, bir kurtarma noktasından bir diski geri yüklediniz ve sonra diskten bir sanal makine oluşturdunuz. Şunları öğrendiniz:

  • Kurtarma noktalarını listeleme ve seçme
  • Bir kurtarma noktasından diski geri yükleme
  • Geri yüklenen diskten sanal makine oluşturma

Bir kurtarma noktasından tek tek dosyaları geri yükleme hakkında bilgi edinmek için sonraki öğreticiye ilerleyin.