Een VM herstellen met Azure 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. In dit artikel wordt uitgelegd hoe u een volledige VM herstelt met behulp van CLI. In deze zelfstudie leert u het volgende:

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

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.

Vereisten

  • Gebruik de bash-omgeving in Azure Cloud shell.

    Cloud Shell starten in een nieuw venster

  • Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren.

    • Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht AZ login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Raadpleeg Aanmelden bij de Azure CLI voor aanvullende aanmeldingsopties.

    • Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor meer informatie over extensies.

    • Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.

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

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.

Lijst met beschikbare herstelpunten maken

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

    Als target-resource-group niet is opgegeven, worden de beheerde schijven als niet-beheerde schijven hersteld in het opgegeven opslagaccount. Dit heeft aanzienlijke gevolgen voor de hersteltijd, omdat de tijd die nodig is om de schijven te herstellen, alleen afhankelijk is van het opgegeven opslagaccount. U kunt alleen profiteren van direct herstellen wanneer de parameter target-resource-group is opgegeven. Als het de bedoeling is dat beheerde schijven worden hersteld als niet-beheerd, geeft u de parameter target-resource-group niet op, en geeft u in plaats hiervan de parameter restore-as-unmanaged-disk op, zoals hieronder wordt weergegeven. Deze parameter is beschikbaar vanaf Az-versie 3.4.0.

    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
    

Hiermee worden beheerde schijven als niet-beheerde schijven hersteld in het opgegeven opslagaccount, en wordt niet gebruikgemaakt van de functie voor direct herstel. In toekomstige versies van CLI moet u verplicht de parameter target-resource-group of de parameter restore-as-unmanaged-disk opgeven.

Niet-beheerde schijven herstellen

Als de VM waarvan een back-up is gemaakt, niet-beheerde schijven bevat, en als het de bedoeling is dat 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. Standaard worden de niet-beheerde schijven hersteld in de oorspronkelijke opslagaccounts. Als u alle niet-beheerde schijven wilt herstellen op één locatie, kan het opgegeven opslagaccount ook worden gebruikt als faseringslocatie voor deze schijven.

In latere stappen wordt de herstelde schijf gebruikt voor het maken van een VM.

  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 in de uitvoer van de vorige opdracht az backup recoverypoint list:

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

Zoals hierboven is vermeld, worden de niet-beheerde schijven hersteld in het oorspronkelijke opslagaccount. Dit zorgt voor de beste prestaties bij het herstellen. Maar als alle niet-beheerde schijven moeten worden hersteld naar een opgegeven opslagaccount, gebruikt u de relevante vlag, zoals hieronder wordt weergegeven.

    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

De uitvoer is vergelijkbaar met het volgende voorbeeld, waarin u kunt zien dat de hersteltaak wordt uitgevoerd (InProgress):

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

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

Als u de door het systeem toegewezen beheerde identiteit van de kluis wilt gebruiken om schijven te herstellen, geeft u een extra vlag --mi-system-assigned _ door aan de opdracht az backup restore restore restore-disks. Als u een door de gebruiker toegewezen beheerde identiteit wilt gebruiken, geeft u een parameter --mi-user-assigned_* door met de ARM-id van de beheerde identiteit van de kluis als de 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 opdracht voor het weergeven van de taak om meer details te zien voor 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)
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)

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

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.