Zelfstudie: Een VIRTUELE machine herstellen met Azure CLI

In deze zelfstudie wordt beschreven hoe u een volledige VM herstelt met behulp van CLI.

Azure Backup maakt herstelpunten die worden opgeslagen in geografisch redundante Recovery Services-kluizen. Wanneer u vanaf een herstelpunt herstelt, kunt u de hele VM of afzonderlijke bestanden herstellen.

Zie Back up and restore Azure VMs with PowerShell (Back-ups maken en Azure-VM’s herstellen met PowerShell) voor meer informatie over het gebruik van PowerShell om een schijf te herstellen en een herstelde VM te maken.

Nu kunt u cli ook gebruiken om de back-upinhoud rechtstreeks te herstellen naar een virtuele machine (oorspronkelijk/nieuw), zonder de bovenstaande stappen afzonderlijk uit te voeren. Zie Gegevens herstellen naar virtuele machine met behulp van CLI voor meer informatie.

Vereisten

  • Voor deze zelfstudie is versie 2.0.18 of hoger Azure CLI vereist. Als u Azure Cloud Shell gebruikt, is de nieuwste versie al geïnstalleerd.

  • Deze zelfstudie vereist een Linux-VM die met Azure Backup is beschermd. Om het per ongeluk verwijderen van een VM en het herstelproces te simuleren, maakt u een VM op basis van een schijf in een herstelpunt. Zie Een back-up van een virtuele machine maken in Azure met de CLI als u een Linux-VM nodig hebt die is beschermd met Azure Backup.

Overzicht van back-ups voor Azure-VM's

Wanneer Azure een back-up begint, maakt de back-upextensie op de VM een momentopname van een bepaald tijdstip. De back-upextensie wordt geïnstalleerd op de VM wanneer de eerste back-up wordt aangevraagd. Azure Backup kan ook een momentopname van de onderliggende opslag maken als de VM niet wordt uitgevoerd ten tijde van de back-up.

Standaard maakt Azure Backup een back-up die consistent is met een bestandssysteem. Nadat Azure Backup de momentopname heeft gemaakt, worden de gegevens overgedragen naar de Recovery Services-kluis. Voor maximale efficiëntie identificeert Azure Backup welke gegevensblokken sinds de vorige back-up zijn gewijzigd. Alleen deze worden vervolgens overgedragen.

Wanneer de gegevensoverdracht is voltooid, wordt de momentopname verwijderd en wordt er een herstelpunt gemaakt.

Beschikbare herstelpunten voor een VIRTUELE machine weergeven

Voor het herstellen van een schijf selecteert u een herstelpunt als bron voor de te herstellen gegevens. Aangezien het standaardbeleid elke dag een herstelpunt maakt en gedurende 30 dagen bewaart, kunt u een reeks herstelpunten behouden waarmee u een bepaald tijdstip kunt kiezen om te herstellen.

Gebruik az backup recoverypoint list om een lijst met beschikbare herstelpunten te zien. De naam van het herstelpunt wordt gebruikt om schijven te herstellen. In deze zelfstudie willen we het meest recente beschikbare herstelpunt gebruiken. Met de parameter --query [0].name selecteert u als volgt de naam van het meest recente herstelpunt:

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

Een VM-schijf herstellen

Belangrijk

Het wordt sterk aanbevolen om Az CLI-versie 2.0.74 of hoger te gebruiken om alle voordelen van een snel herstel te kunnen gebruiken, waaronder het herstellen van beheerde schijven. Het is het beste als u altijd de meest recente versie gebruikt.

Herstellen van beheerde schijven

Als de VM waarvan een back-up is gemaakt, beheerde schijven bevat, en als het de bedoeling is dat beheerde schijven worden hersteld vanaf het herstelpunt, geeft u eerst een Azure-opslagaccount op. Dit opslagaccount wordt gebruikt om de VM-configuratie en de implementatiesjabloon op te slaan die later kunnen worden gebruikt om de VM te implementeren vanaf de herstelde schijven. Vervolgens geeft u ook een doelresourcegroep op waarin de beheerde schijven moeten worden hersteld.

  1. Gebruik az storage account create om een opslagaccount te maken. De naam van het opslagaccount mag alleen kleine letters bevatten, en moet globaal uniek zijn. Vervang mystorageaccount door uw eigen unieke naam:

    az storage account create \
        --resource-group myResourceGroup \
        --name mystorageaccount \
        --sku Standard_LRS
    
  2. Herstel de schijf vanaf uw herstelpunt met az backup restore restore-disks. Vervang mystorageaccount door de naam van het opslagaccount dat u met de vorige opdracht hebt gemaakt. Vervang myRecoveryPointName door de naam van het herstelpunt dat u hebt verkregen met de uitvoer van de vorige opdracht az backup recoverypoint list. Geef ook een doelresourcegroep op waarin de beheerde schijven worden hersteld.

    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
    

    Waarschuwing

    Geef een doelresourcegroep op voor herstel van beheerde schijven. Azure Backup biedt geen ondersteuning voor het herstellen van schijven als niet-beheerde schijven. Zie Verouderde herstelpunten herstellen van virtuele machines die niet-beheerde schijven hebben gebruikt.

Schijven herstellen naar tweede regio

De back-upgegevens worden gerepliceerd naar de secundaire regio wanneer u cross-region herstel inschakelt in de kluis waarin u uw VM's hebt beschermd. U kunt de back-upgegevens gebruiken om een herstelbewerking uit te voeren.

Als u schijven naar de secundaire regio wilt herstellen, gebruikt u het --use-secondary-region flag in de opdracht az backup restore restore-disks. Zorg ervoor dat u een doelopslagaccount opgeeft dat zich in de secundaire regio bevindt.

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

Zoneoverschrijdende herstelbewerking

U kunt Azure-zone vastgemaakte VM's herstellen in alle beschikbaarheidszones van dezelfde regio.

Als u een VM wilt herstellen naar een andere zone, specificeert u de TargetZoneNumber parameter in de opdracht az backup restore restore-disks.

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

Cross-zonale herstel wordt alleen ondersteund in scenario's waarin:

  • De bron-VM is gebonden aan de zone en is NIET versleuteld.
  • Het herstelpunt is alleen aanwezig in de vault-klasse. Momentopnamen alleen of momentopnamen en de kluislaag worden niet ondersteund.
  • De hersteloptie is het maken van een nieuwe VIRTUELE machine of het herstellen van schijven. De optie Schijven vervangen vervangt de brongegevens; daarom is de optie beschikbaarheidszone niet van toepassing.
  • VM's en schijven maken in dezelfde regio wanneer de kluis opslagredundantie ZRS is. Houd er rekening mee dat het niet werkt als de opslagredundantie van de kluis GRS is, ook al is de bron-VM aan een zone gekoppeld.
  • VM's en schijven maken in de gekoppelde regio wanneer opslagredundantie van de kluis is ingeschakeld voor herstel tussen regio's via Cross-Region Restore en als de gekoppelde regio zones ondersteunt.

Niet-beheerde schijven terugzetten

Als het herstelpunt afkomstig is van een virtuele machine die niet-beheerde schijven heeft gebruikt, worden deze schijven alleen hersteld als beheerde schijven. Geef een Azure-opslagaccount op voor het opslaan van de VM-configuratie, implementatiesjabloon en tijdelijke VHD-bestanden en geef een doelresourcegroep op voor de herstelde beheerde schijven.

In aanvullende stappen worden de herstelde schijven gebruikt om een virtuele machine te maken.

  1. Gebruik az storage account create om een opslagaccount te maken. De naam van het opslagaccount mag alleen kleine letters bevatten, en moet globaal uniek zijn. Vervang mystorageaccount door uw eigen unieke naam:

    az storage account create \
        --resource-group myResourceGroup \
        --name mystorageaccount \
        --sku Standard_LRS
    
  2. Herstel de schijf vanaf uw herstelpunt met az backup restore restore-disks. Vervang mystorageaccount door de naam van het opslagaccount dat u met de vorige opdracht hebt gemaakt. Vervang myRecoveryPointName door de naam van het herstelpunt dat u hebt verkregen met de uitvoer van de vorige opdracht az backup recoverypoint list. Geef ook de doelresourcegroep op voor de herstelde beheerde schijven:

    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
    

Herstellen naar niet-beheerde schijven wordt niet ondersteund. Voor verouderde herstelpunten van VM's die niet-beheerde schijven hebben gebruikt, volgt u de richtlijnen in Verouderde herstelpunten herstellen van VM's die niet-beheerde schijven hebben gebruikt.

De hersteltaak bewaken

Als u de status van de hersteltaak wilt controleren, gebruikt u az backup job list:

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

De uitvoer is vergelijkbaar met het volgende voorbeeld, dat laat zien dat de hersteltaak InProgress is.

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

Wanneer de Status van de hersteltaak Voltooid is, is de benodigde informatie (VM-configuratie en de implementatiesjabloon) hersteld in het opslagaccount.

Beheerde identiteit gebruiken om schijven te herstellen

Met Azure Backup kunt u ook beheerde identiteit (MSI) gebruiken tijdens het herstellen om toegang te krijgen tot opslagaccounts waarnaar schijven moeten worden hersteld. Deze optie wordt momenteel alleen ondersteund voor herstel van beheerde schijven.

Als u de systeemtoegewezen beheerde identiteit van de kluis wilt gebruiken om schijven te herstellen, geeft u een extra vlag --mi-system-assigned door aan de az backup restore restore-disks opdracht. Als u een door de gebruiker toegewezen beheerde identiteit wilt gebruiken, geef dan de parameter --mi-user-assigned op met de Azure Resource Manager-id van de beheerde identiteit van de kluis als waarde van de parameter. Raadpleeg dit artikel voor meer informatie over het inschakelen van beheerde identiteiten voor uw kluizen.

Een VM maken op basis van de herstelde schijf

De laatste stap is het maken van een VM vanaf de herstelde schijven. U kunt de implementatiesjabloon die is gedownload naar het opgegeven opslagaccount, gebruiken om de VM te maken.

De taakdetails ophalen

De resulterende taakdetails bevatten de sjabloon-URI die kan worden opgevraagd en geïmplementeerd. Gebruik de job show-opdracht om meer details te krijgen over de geactiveerde herstelde taak.

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

De uitvoer van deze query geeft alle details, maar we zijn alleen geïnteresseerd in de inhoud van het opslagaccount. We kunnen de querymogelijkheden van Azure CLI gebruiken om de relevante gegevens op te halen

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

De implementatiesjabloon ophalen

De sjabloon is niet direct toegankelijk omdat deze zich onder het opslagaccount van de klant en de opgegeven container bevindt. We hebben de volledige URL nodig (samen met een tijdelijk SAS-token) om toegang te krijgen tot deze sjabloon.

Extraheer eerst de sjabloonblob-URI uit de taakdetails

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"

De sjabloonblob-URI heeft deze indeling, en de sjabloonnaam wordt geëxtraheerd

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

De sjabloonnaam in het bovenstaande voorbeeld wordt dus azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json, en de naam van de container is myVM-daa1931199fd4a22ae601f46d8812276

Haal nu het SAS-token voor deze container en sjabloon op, zoals hier wordt beschreven

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)

De sjabloon implementeren om de VM te maken

Implementeer nu de sjabloon om de VM te maken, zoals hier wordt uitgelegd.

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

Om te bevestigen dat uw VM van uw herstelde schijf is gemaakt, maakt u als volgt een lijst van de VM's in uw resourcegroep met az vm list:

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

Gegevens herstellen naar virtuele machine met behulp van CLI

U kunt nu gegevens rechtstreeks herstellen naar de oorspronkelijke/alternatieve VM zonder meerdere stappen uit te voeren.

Gegevens herstellen naar de oorspronkelijke VM

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

Met de laatste opdracht wordt een herstelbewerking op de oorspronkelijke locatie geactiveerd om de gegevens ter plaatse op de bestaande VM te herstellen.

Gegevens herstellen naar een zojuist gemaakte VIRTUELE machine

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

Met de laatste opdracht wordt een herstelbewerking voor een alternatieve locatie geactiveerd om een nieuwe VM te maken in Target_RG resourcegroep volgens de invoer die is opgegeven door de parameters TargetVMName, TargetVNetName, TargetVNetResourceGroup, TargetSubnetName. Dit zorgt ervoor dat de gegevens worden hersteld in de vereiste VM, het virtuele netwerk en het subnet.

Volgende stappen

In deze zelfstudie hebt u een schijf van een herstelpunt hersteld en vervolgens een VM van de schijf gemaakt. U hebt geleerd hoe u:

  • Herstelpunten in een lijst opnemen en selecteren
  • Een schijf herstellen vanaf een herstelpunt
  • Een VM maken op basis van de herstelde schijf

Ga naar de volgende zelfstudie voor meer informatie over het herstellen van afzonderlijke bestanden van een herstelpunt.