Przywracanie maszyny wirtualnej za pomocą interfejsu wiersza polecenia platformy Azure

Usługa Azure Backup tworzy punkty odzyskiwania przechowywane w geograficznie nadmiarowych magazynach odzyskiwania. Z punktu odzyskiwania można przywrócić całą maszynę wirtualną lub poszczególne pliki. W tym artykule opisano sposób przywracania całej maszyny wirtualnej przy użyciu interfejsu wiersza polecenia. Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Wyświetlanie listy i wybieranie punktów odzyskiwania
  • Przywracanie dysku z punktu odzyskiwania
  • Tworzenie maszyny wirtualnej na podstawie przywróconego dysku

Aby uzyskać informacje na temat przywracania dysku i tworzenia odzyskanej maszyny wirtualnej przy użyciu programu PowerShell, zobacz Back up and restore Azure VMs with PowerShell (Tworzenie kopii zapasowej i przywracanie maszyn wirtualnych platformy Azure przy użyciu programu PowerShell).

Teraz możesz również użyć interfejsu wiersza polecenia, aby bezpośrednio przywrócić zawartość kopii zapasowej do maszyny wirtualnej (oryginalna/nowa), bez oddzielnego wykonania powyższych kroków. Aby uzyskać więcej informacji, zobacz Przywracanie danych do maszyny wirtualnej przy użyciu interfejsu wiersza polecenia.

Wymagania wstępne

  • Ten samouczek wymaga wersji 2.0.18 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

  • Do wykonania tego samouczka jest wymagana maszyna wirtualna z systemem Linux, chroniona przy użyciu usługi Azure Backup. Aby zasymulować proces przypadkowego usunięcia maszyny wirtualnej i jej odzyskania, utworzysz maszynę wirtualną na podstawie dysku w punkcie odzyskiwania. Jeśli potrzebujesz maszyny wirtualnej z systemem Linux chronionej przy użyciu usługi Azure Backup, zobacz Tworzenie kopii zapasowej maszyny wirtualnej na platformie Azure za pomocą interfejsu wiersza polecenia.

Omówienie usługi Backup

Po zainicjowaniu tworzenia kopii zapasowej przez platformę Azure rozszerzenie kopii zapasowej na maszynie wirtualnej tworzy migawkę punktu w czasie. Rozszerzenie kopii zapasowej jest instalowane na maszynie wirtualnej w momencie pierwszego żądania utworzenia kopii zapasowej. Usługa Azure Backup może również utworzyć migawkę bazowego magazynu, jeśli maszyna wirtualna nie jest uruchomiona podczas tworzenia kopii zapasowej.

Domyślnie usługa Azure Backup tworzy kopię zapasową spójną na poziomie systemu plików. Po utworzeniu migawki w usłudze Azure Backup dane są przesyłane do magazynu usługi Recovery Services. Aby zmaksymalizować wydajność, usługa Azure Backup rozpoznaje i przesyła jedynie te bloki danych, które uległy zmianie od czasu utworzenia poprzedniej kopii zapasowej.

Po ukończeniu przesyłania danych migawka jest usuwana, a utworzony zostaje punkt odzyskiwania.

Wyświetlanie listy dostępnych punktów odzyskiwania

Aby przywrócić dysk, należy wybrać punkt odzyskiwania będący źródłem danych do odzyskania. Domyślne zasady przewidują tworzenie punktów odzyskiwania codziennie i przechowywanie ich przez 30 dni, dzięki czemu możesz wybrać określony punkt w czasie do odzyskania z dostępnego zestawu punktów odzyskiwania.

Aby wyświetlić listę dostępnych punktów odzyskiwania, użyj polecenia az backup recoverypoint list. Do odzyskiwania dysków używana jest nazwa punktu odzyskiwania. W tym samouczku użyjemy najnowszego dostępnego punktu odzyskiwania. Parametr --query [0].name wybiera nazwę najnowszego punktu odzyskiwania, jak pokazano poniżej:

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

Przywracanie dysku maszyny wirtualnej

Ważne

Zdecydowanie zaleca się użycie interfejsu wiersza polecenia Az w wersji 2.0.74 lub nowszej, aby uzyskać wszystkie korzyści z szybkiego przywracania, w tym przywracania dysku zarządzanego. Najlepiej, jeśli zawsze używasz najnowszej wersji.

Przywracanie dysku zarządzanego

Jeśli kopia zapasowa maszyny wirtualnej ma dyski zarządzane, a celem jest przywrócenie dysków zarządzanych z punktu odzyskiwania, należy najpierw podać konto usługi Azure Storage. To konto magazynu służy do przechowywania konfiguracji maszyny wirtualnej i szablonu wdrożenia, który można później użyć do wdrożenia maszyny wirtualnej z przywróconych dysków. Następnie należy podać docelową grupę zasobów, do której mają zostać przywrócone dyski zarządzane.

  1. Aby utworzyć konto magazynu, użyj polecenia az storage account create. Nazwa konta magazynu może zawierać tylko małe litery i musi być globalnie unikatowa. Zastąp ciąg mystorageaccount własną unikatową nazwą:

    az storage account create \
        --resource-group myResourceGroup \
        --name mystorageaccount \
        --sku Standard_LRS
    
  2. Przywróć dysk z punktu odzyskiwania, uruchamiając polecenie az backup restore restore-disks. Zastąp ciąg mystorageaccount nazwą konta magazynu utworzonego przy użyciu poprzedniego polecenia. Zastąp ciąg myRecoveryPointName nazwą punktu odzyskiwania uzyskaną w danych wyjściowych z poprzedniego polecenia az backup recoverypoint list . Podaj również docelową grupę zasobów, do której są przywracane dyski zarządzane.

    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
    

    Ostrzeżenie

    Jeśli nie podano docelowej grupy zasobów, dyski zarządzane zostaną przywrócone jako dyski niezarządzane dla danego konta magazynu. Będzie to miało znaczące konsekwencje dla czasu przywracania, ponieważ czas potrzebny na przywrócenie dysków całkowicie zależy od danego konta magazynu. Skorzystasz z natychmiastowego przywracania tylko wtedy, gdy zostanie podany parametr target-resource-group. Jeśli zamierzasz przywrócić dyski zarządzane jako niezarządzane, nie podaj parametru target-resource-group i zamiast tego podaj parametr restore-as-unmanaged-disk , jak pokazano poniżej. Ten parametr jest dostępny w interfejsie wiersza polecenia platformy Azure w wersji 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
    

Spowoduje to przywrócenie dysków zarządzanych jako dysków niezarządzanych do danego konta magazynu i nie będzie korzystać z funkcji "natychmiastowego" przywracania. W przyszłych wersjach interfejsu wiersza polecenia należy podać parametr target-resource-group lub restore-as-unmanaged-disk .

Przywracanie dysków do regionu pomocniczego

Dane kopii zapasowej są replikowane do regionu pomocniczego po włączeniu przywracania między regionami w magazynie chronionym przez Ciebie maszyn wirtualnych. Możesz użyć danych kopii zapasowej, aby wykonać operację przywracania.

Aby przywrócić dyski do regionu pomocniczego, użyj --use-secondary-region flagi w poleceniu az backup restore-disks . Upewnij się, że określono docelowe konto magazynu znajdujące się w regionie pomocniczym.

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

Przywracanie między strefami

Możesz przywrócić przypięte maszyny wirtualne strefy platformy Azure w dowolnych strefach dostępności w tym samym regionie.

Aby przywrócić maszynę wirtualną do innej strefy, określ TargetZoneNumber parametr w poleceniu az backup 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

Przywracanie między strefami jest obsługiwane tylko w scenariuszach, w których:

  • Źródłowa maszyna wirtualna jest przypięta strefą i nie jest szyfrowana.
  • Punkt odzyskiwania znajduje się tylko w warstwie magazynu. Migawki lub tylko migawki i warstwa magazynu nie są obsługiwane.
  • Opcja odzyskiwania polega na utworzeniu nowej maszyny wirtualnej lub przywróceniu dysków. Zamień opcję dysków zastępuje dane źródłowe; w związku z tym opcja strefy dostępności nie ma zastosowania.
  • Tworzenie maszyn wirtualnych/dysków w tym samym regionie, gdy nadmiarowość magazynu to ZRS. Należy pamiętać, że nie działa, jeśli nadmiarowość magazynu to GRS, mimo że źródłowa maszyna wirtualna jest przypięta strefą.
  • Tworzenie maszyn wirtualnych/dysków w sparowanym regionie, gdy nadmiarowość magazynu jest włączona na potrzeby przywracania między regionami i jeśli sparowany region obsługuje strefy.

Przywracanie dysków niezarządzanych

Jeśli kopia zapasowa maszyny wirtualnej ma dyski niezarządzane, a celem jest przywrócenie dysków z punktu odzyskiwania, należy najpierw podać konto usługi Azure Storage. To konto magazynu służy do przechowywania konfiguracji maszyny wirtualnej i szablonu wdrożenia, który można później użyć do wdrożenia maszyny wirtualnej z przywróconych dysków. Domyślnie niezarządzane dyski zostaną przywrócone do oryginalnych kont magazynu. Jeśli chcesz przywrócić wszystkie niezarządzane dyski do jednego miejsca, dane konto magazynu może być również używane jako lokalizacja tymczasowa dla tych dysków.

Dodatkowe czynności obejmują tworzenie maszyny wirtualnej przy użyciu przywróconego dysku.

  1. Aby utworzyć konto magazynu, użyj polecenia az storage account create. Nazwa konta magazynu może zawierać tylko małe litery i musi być globalnie unikatowa. Zastąp ciąg mystorageaccount własną unikatową nazwą:

    az storage account create \
        --resource-group myResourceGroup \
        --name mystorageaccount \
        --sku Standard_LRS
    
  2. Przywróć dysk z punktu odzyskiwania, uruchamiając polecenie az backup restore restore-disks. Zastąp ciąg mystorageaccount nazwą konta magazynu utworzonego przy użyciu poprzedniego polecenia. Zastąp ciąg myRecoveryPointName nazwą punktu odzyskiwania uzyskaną wcześniej przy użyciu polecenia 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
    

Jak wspomniano powyżej, dyski niezarządzane zostaną przywrócone do oryginalnego konta magazynu. Zapewnia to najlepszą wydajność przywracania. Jeśli jednak wszystkie dyski niezarządzane muszą zostać przywrócone do danego konta magazynu, użyj odpowiedniej flagi, jak pokazano poniżej.

    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

Dane wyjściowe są podobne do następującego przykładu informującego, że zadanie przywracania jest w toku (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

Gdy stan zadania przywracania zgłasza Ukończono, niezbędne informacje (konfiguracja maszyny wirtualnej i szablon wdrożenia) zostały przywrócone do konta magazynu.

Przywracanie dysków przy użyciu tożsamości zarządzanej

Usługa Azure Backup umożliwia również używanie tożsamości zarządzanej (MSI) podczas operacji przywracania w celu uzyskania dostępu do kont magazynu, na których należy przywrócić dyski. Ta opcja jest obecnie obsługiwana tylko w przypadku przywracania dysku zarządzanego.

Jeśli chcesz użyć przypisanej przez system tożsamości zarządzanej magazynu do przywrócenia dysków, przekaż dodatkową flagę --mi-system-przypisaną do polecenia az backup restore-disks. Jeśli chcesz użyć tożsamości zarządzanej przypisanej przez użytkownika, przekaż parametr --mi-user-assigned za pomocą identyfikatora usługi Azure Resource Manager tożsamości zarządzanej magazynu jako wartość parametru. Zapoznaj się z tym artykułem, aby dowiedzieć się, jak włączyć tożsamość zarządzaną dla magazynów.

Tworzenie maszyny wirtualnej na podstawie przywróconego dysku

Ostatnim krokiem jest utworzenie maszyny wirtualnej na podstawie przywróconych dysków. Aby utworzyć maszynę wirtualną, możesz użyć szablonu wdrożenia pobranego do danego konta magazynu.

Pobieranie szczegółów zadania

Wynikowe szczegóły zadania zawierają identyfikator URI szablonu, który można wykonywać zapytania i wdrażać. Użyj polecenia show zadania, aby uzyskać więcej szczegółów dla wyzwolonego przywróconego zadania.

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

Dane wyjściowe tego zapytania będą zawierać wszystkie szczegóły, ale interesuje nas tylko zawartość konta magazynu. Aby pobrać odpowiednie szczegóły, możemy użyć funkcji zapytań interfejsu wiersza polecenia platformy Azure

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

Pobieranie szablonu wdrożenia

Szablon nie jest dostępny bezpośrednio, ponieważ znajduje się on na koncie magazynu klienta i danym kontenerze. Aby uzyskać dostęp do tego szablonu, potrzebujemy kompletnego adresu URL (wraz z tymczasowym tokenem SAS).

Najpierw wyodrębnij identyfikator URI obiektu blob szablonu ze szczegółów zadania

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"

Identyfikator URI obiektu blob szablonu będzie mieć ten format i wyodrębnia nazwę szablonu

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

Dlatego nazwa szablonu z powyższego przykładu będzie nazwą azuredeploy1fc2d55d-f0dc-4ca6-ad48-aca0519c0232.json i nazwą kontenera jest myVM-daa1931199fd4a22ae601f46d8812276

Teraz pobierz token SAS dla tego kontenera i szablonu zgodnie z opisem tutaj

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)

Wdrażanie szablonu w celu utworzenia maszyny wirtualnej

Teraz wdróż szablon, aby utworzyć maszynę wirtualną zgodnie z opisem w tym miejscu.

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

Aby potwierdzić utworzenie maszyny wirtualnej na podstawie odzyskanego dysku, wyświetl listę maszyn wirtualnych w grupie zasobów przy użyciu polecenia az vm list, jak pokazano poniżej:

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

Przywracanie danych do maszyny wirtualnej przy użyciu interfejsu wiersza polecenia

Teraz możesz bezpośrednio przywrócić dane do oryginalnej/alternatywnej maszyny wirtualnej bez wykonywania wielu kroków.

Przywracanie danych do oryginalnej maszyny wirtualnej

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

Ostatnie polecenie wyzwala oryginalną operację przywracania lokalizacji w celu przywrócenia danych w miejscu na istniejącej maszynie wirtualnej.

Przywracanie danych do nowo utworzonej maszyny wirtualnej

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

Ostatnie polecenie wyzwala operację przywracania alternatywnej lokalizacji w celu utworzenia nowej maszyny wirtualnej w grupie zasobów Target_RG zgodnie z danymi wejściowymi określonymi przez parametry TargetVMName, TargetVNetName, TargetVNetResourceGroup, TargetSubnetName. Dzięki temu dane zostaną przywrócone w wymaganej maszynie wirtualnej, sieci wirtualnej i podsieci.

Następne kroki

Podczas pracy z tym samouczkiem przywrócono dysk z punktu odzyskiwania i utworzono na jego podstawie maszynę wirtualną. W tym samouczku omówiono:

  • Wyświetlanie listy i wybieranie punktów odzyskiwania
  • Przywracanie dysku z punktu odzyskiwania
  • Tworzenie maszyny wirtualnej na podstawie przywróconego dysku

Przejdź do następnego samouczka, aby dowiedzieć się więcej o przywracaniu poszczególnych plików z punktu odzyskiwania.