Een VM herstellen met Azure CLI
Azure Backup maakt herstelpunten die worden opgeslagen in geografisch redundante kluizen van Recovery Services. 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.
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
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie quickstart voor Bash in Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
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 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.
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
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 u beheerde schijven wilt herstellen als niet-beheerd, geeft u de parameter target-resource-group niet op en geeft u in plaats daarvan de parameter restore-as-unmanaged-disk op, zoals hieronder wordt weergegeven. Deze parameter is beschikbaar vanaf Azure CLI 3.4.0 en hoger.
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.
Schijven herstellen naar secundaire regio
De back-upgegevens worden gerepliceerd naar de secundaire regio wanneer u herstel tussen regio's inschakelt in de kluis die u hebt beveiligd met uw VM's. U kunt de back-upgegevens gebruiken om een herstelbewerking uit te voeren.
Als u schijven naar de secundaire regio wilt herstellen, gebruikt u de --use-secondary-region
vlag 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 vastgemaakte VM's in een Azure-zone herstellen in alle beschikbaarheidszones van dezelfde regio.
Als u een VIRTUELE machine wilt herstellen naar een andere zone, geeft u de TargetZoneNumber
parameter op 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-zoneal restore wordt alleen ondersteund in scenario's waarin:
- De bron-VM is vastgemaakt aan de zone en is NIET versleuteld.
- Het herstelpunt is alleen aanwezig in de kluislaag. Alleen momentopnamen of momentopnamen en kluislaag worden niet ondersteund.
- De hersteloptie is het maken van een nieuwe VIRTUELE machine of het herstellen van schijven. De optie Schijven vervangen de brongegevens; Daarom is de optie beschikbaarheidszone niet van toepassing.
- Vm/schijven maken in dezelfde regio wanneer de opslagredundantie van de kluis ZRS is. Houd er rekening mee dat het niet werkt als de opslagredundantie van de kluis GRS is, ook al is de bron-VM zone vastgemaakt.
- Vm's/schijven maken in de gekoppelde regio wanneer opslagredundantie van de kluis is ingeschakeld voor herstel tussen regio's en als de gekoppelde regio zones ondersteunt.
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.
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
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
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 door het systeem toegewezen beheerde identiteit van de kluis wilt gebruiken om schijven te herstellen, geeft u een extra vlag --mi-system-toegewezen aan de opdracht az backup restore restore-disks door. Als u een door de gebruiker toegewezen beheerde identiteit wilt gebruiken, geeft u een parameter door die is toegewezen aan de Azure Resource Manager-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
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 oorspronkelijke herstelbewerking voor de locatie geactiveerd om de gegevens in-place 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.