Aracılığıyla paylaş


Azure CLI ile bir VM’yi geri yükleme

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. Bu makalede, CLI kullanarak tam bir sanal makinenin nasıl geri yükleneceği açıklanmaktadır. Bu öğreticide şunların nasıl yapıldığını öğrenirsiniz:

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

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

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • 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.

Backup’a 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, anlık görüntüyü 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.

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 öğreticide, kullanılabilir en son kurtarma noktasını istiyoruz. --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ı

    Target-resource-group sağlanmadıysa, yönetilen diskler belirli bir depolama hesabına yönetilmeyen diskler olarak geri yüklenir. Diskleri geri yüklemek için geçen süre tamamen verilen depolama hesabına bağlı olduğundan, bu durum geri yükleme süresinde önemli sonuçlar doğuracaktır. Anlık geri yükleme avantajını yalnızca target-resource-group parametresi verildiğinde elde edersiniz. Amaç yönetilen diskleri yönetilmeyen olarak geri yüklemekse target-resource-group parametresini sağlamayın ve bunun yerine aşağıda gösterildiği gibi yönetilmeyen disk olarak geri yükleme parametresini sağlayın. Bu parametre, Azure CLI 3.4.0'dan itibaren kullanılabilir.

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

Bu, yönetilen diskleri belirli bir depolama hesabına yönetilmeyen diskler olarak geri yükler ve 'anında' geri yükleme işlevinden yararlanmaz. CLI'nın gelecek sürümlerinde target-resource-group parametresini veya restore-as-unmanaged-disk parametresini sağlamak zorunlu olacaktır.

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 az backup restore-disks komutundaki bayrağını kullanın--use-secondary-region. İ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-disks komutunda parametresini belirtinTargetZoneNumber.

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ölge sabitlenmiş ve ŞIFRELENMEDİ.
  • Kurtarma noktası yalnızca kasa 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ı Geri Yükleme için etkinleştirildiğinde ve eşleştirilmiş bölge bölgeleri destekliyorsa, eşleştirilmiş bölgede VM/disk oluşturma.

Yönetilmeyen diskleri geri yükleme

Yedeklenen VM'de yönetilmeyen diskler varsa ve amaç 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. Varsayılan olarak, yönetilmeyen diskler özgün depolama hesaplarına geri yüklenir. Yönetilmeyen tüm diskleri tek bir yere geri yüklemek isterseniz, söz konusu depolama hesabı bu diskler için bir hazırlama konumu olarak da kullanılabilir.

Ek adımlarda, sanal makine oluşturmak için geri yüklenen disk 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 komutunun çıktısından elde ettiğiniz kurtarma noktası adıyla değiştirin:

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

Yukarıda belirtildiği gibi, yönetilmeyen diskler özgün depolama hesaplarına geri yüklenir. Bu, en iyi geri yükleme performansını sağlar. Ancak tüm yönetilmeyen disklerin belirli bir depolama hesabına geri yüklenmesi gerekiyorsa, aşağıda gösterildiği gibi ilgili bayrağı kullanın.

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

## Monitor the restore job

To monitor the status of restore job, use [az backup job list](/cli/azure/backup/job#az-backup-job-list):

```azurecli-interactive
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, parametrenin değeri olarak kasanın yönetilen kimliğinin Azure Resource Manager kimliğiyle mi-user-ssigned parametresini geçirin. Kasalarınız için yönetilen kimliği etkinleştirmeyi öğrenmek için bu makaleye bakın.

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.

İş ayrıntılarını getirme

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 getirme

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ı ve azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json kapsayıcı adı myVM-daa1931199fd4a22ae601f46d8812276

Ş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)
connection=$(az storage account show-connection-string \
    --resource-group mystorageaccountRG \
    --name mystorageaccount \
    --query connectionString)
token=$(az storage blob generate-sas \
    --container-name myVM-daa1931199fd4a22ae601f46d8812276 \
    --name azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json \
    --expiry $expiretime \
    --permissions r \
    --output tsv \
    --connection-string $connection)
url=$(az storage blob url \
   --container-name myVM-daa1931199fd4a22ae601f46d8812276 \
    --name azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json \
    --output tsv \
    --connection-string $connection)

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.