Strumento di failback di Azure Site Recovery

In un ambiente connesso è possibile usare Azure Site Recovery per proteggere le macchine virtuali in esecuzione nell'hub di Azure Stack. Questo articolo descrive come configurare l'ambiente e come Site Recovery contribuisce alla strategia complessiva di continuità aziendale e ripristino di emergenza per questi carichi di lavoro.

In caso di interruzione, l'operatore dell'hub di Azure Stack passa attraverso la procedura di failover ; una volta che l'hub di Azure Stack è attivo e in esecuzione di nuovo, viene eseguito un processo di failback . Il processo di failover è descritto in questo articolo Site Recovery, ma il processo di failback prevede diversi passaggi manuali:

  1. Arrestare la macchina virtuale in esecuzione in Azure.
  2. Scaricare i dischi rigidi virtuali.
  3. Caricare i dischi rigidi virtuali nell'hub di Azure Stack.
  4. Ricreare le macchine virtuali.
  5. Infine, avviare la macchina virtuale in esecuzione nell'hub di Azure Stack.

Poiché questo processo può essere soggetto a errori e richiede molto tempo, sono stati creati script per accelerare e automatizzare questo processo.

Nota

Lo strumento Azure Site Recovery richiede i moduli Az dell'hub di Azure Stack. Se si eseguono i moduli AzureRM dell'hub di Azure Stack, è necessario aggiornare la workstation o usare lo strumento di failback di Azure Site Recovery in un ambiente isolato con i moduli Az. Per altre informazioni, vedere Installare il modulo Az di PowerShell per l'hub di Azure Stack.

Procedura di failback

Il processo di failback automatizzato contiene tre parti principali:

  • Copy-AzSiteRecoveryVmVHD:

    • Arresta la macchina virtuale di Azure.
    • Prepara l'esportazione del disco.
    • Copia il disco tramite AzCopy o StorageBlobCopy.
    • Carica il disco in un account di archiviazione dell'hub di Azure Stack.
  • Dopo aver copiato il disco, esistono due scenari coperti da Prepare-AzSiteRecoveryVMFailBack:

    • L'hub di Azure Stack originale è stato ripristinato. La macchina virtuale originale esiste ancora ed è sufficiente modificare i dischi rigidi virtuali.
    • In caso di emergenza, se le macchine virtuali originali vengono perse, è necessario ricompilare l'intera macchina virtuale.

    Questa procedura illustra entrambi gli scenari creando il modello e il file di parametri necessario.

  • La distribuzione effettiva del modello di azure Resource Manager usando il file di parametri e distribuire/creare la macchina virtuale nell'hub di Azure Stack.

Prerequisiti

Per eseguire la procedura di failback sono necessari i prerequisiti seguenti:

  • Copiare lo strumento di failback di Azure Site Recovery.

  • Importare il modulo FailbackTool.psm1 in PowerShell.

  • Seguire la procedura descritta in questo articolo per installare il modulo Az per l'hub di Azure Stack.

  • (facoltativo) Scaricare AzCopy versione 10.

    • La copia del BLOB con AzCopy è più veloce, ma richiede spazio su disco locale aggiuntivo per archiviare temporaneamente il file BLOB.
    • Se AzCopy non viene usato, la copia del disco rigido virtuale viene eseguita usando AzStorageBlobCopy. Ciò significa che non è necessaria alcuna risorsa di archiviazione locale, ma il processo richiede più tempo.
  • Accedere alle risorse nel portale di Azure e accedere per creare queste risorse nell'hub di Azure Stack.

Passaggio 1: Copiare BLOB da Azure all'hub di Azure Stack

Chiamare il cmdlet PowerShell Copy-AzSiteRecoveryVmVHD per arrestare la macchina virtuale di Azure, scaricare i dischi rigidi virtuali da Azure e caricarli nell'hub di Azure Stack. Ad esempio:

$uris = Copy-AzSiteRecoveryVmVHD `
        -SourceVM $vmOnAzure `
        -TargetStorageAccountName "targetaccountName" `
        -TargetStorageEndpoint "redmond.ext-v.masd.stbtest.microsoft.com" `
        -TargetStorageAccountKey $accountKey `
        -AzCopyPath "C:\azcopy_v10\azcopy.exe" `
        -VhdLocalFolder "C:\tempfolder"

Tenere presenti le seguenti considerazioni:

  • In questo esempio viene $urisusato per contenere il SourceDiskVhdUris valore usato nel passaggio 2.

  • Il -SourceVM parametro è un oggetto vm recuperato da Get-AzVM.

    • Si tratta della macchina virtuale protetta dall'hub di Azure Stack di cui è stato eseguito il failover in Azure.
    • Non importa se la macchina virtuale è in esecuzione, perché lo script arresta la macchina virtuale. È tuttavia consigliabile arrestarlo in modo esplicito e arrestare i servizi all'interno della macchina virtuale di conseguenza.
  • È possibile specificare una chiave dell'account (usando TargetStorageAccountKey) o il token di firma di accesso condiviso (usando TargetStorageAccountSasToken) dell'account di archiviazione sul lato hub di Azure Stack. Il token di firma di accesso condiviso deve essere creato a livello di account di archiviazione, con almeno le autorizzazioni seguenti:

    Autorizzazioni del token di firma di accesso condiviso

  • È possibile fornire l'endpoint di archiviazione, che include l'area e il nome di dominio completo; ad esempio, regionname.azurestack.microsoft.como il nome dell'ambiente dell'hub di Azure Stack, ad esempio AzureStackTenant. Se viene usato il nome dell'ambiente, deve essere elencato usando Get-AzEnvironment.

  • È possibile scegliere di usare AzCopy o AzStorageBlobCopy per copiare il disco rigido virtuale da Azure all'hub di Azure Stack. AzCopy è più veloce, ma deve prima scaricare i file VHD in una cartella locale:

    • Per usare AzCopy, specificare i -AzCopyPath parametri e -VhdLocalFolder (il percorso in cui verranno copiati i dischi rigidi virtuali).
    • Se lo spazio in locale non è sufficiente, è possibile scegliere di copiare direttamente il disco rigido virtuale, senza AzCopy, omettendo i -AzCopyPath parametri e -VhdLocalFolder. Per impostazione predefinita, questo comando usa AzStorageBlobCopy per copiare direttamente nell'account di archiviazione dell'hub di Azure Stack.

Passaggio 2: Generare modelli di Resource Manager

Dopo aver copiato il disco, usare il cmdlet Prepare-AzSiteRecoveryVMFailBack per creare $templateFile e $parameterFile necessario per distribuire la macchina virtuale nell'hub di Azure Stack:

$templateFile, $parameterFile = Prepare-AzSiteRecoveryVMFailBack `
                                -SourceContextName "PublicAzure" `
                                -SourceVM $vmOnAzure `
                                -SourceDiskVhdUris $uris `
                                -TargetResourceLocation "redmond" `
                                -ArmTemplateDestinationPath "C:\ARMtemplates" `
                                -TargetVM $vmOnHub `
                                -TargetContextName "AzureStack"

Tenere presenti le seguenti considerazioni:

  • In questo esempio viene -SourceDiskVhdUris usato come valore restituito dal passaggio 1 (usando $uris).

  • Questo cmdlet supporta due scenari:

    • Specificando -TargetVM, si presuppone che la macchina virtuale sia attiva sul lato hub di Azure Stack e si voglia sostituire i dischi con quelli più recenti copiati da Azure.
    • Lo script genera un modello di Resource Manager per distribuire questa macchina virtuale ed elimina la macchina virtuale esistente dall'hub di Azure Stack.

    Nota

    L'eliminazione della macchina virtuale dell'hub di Azure Stack non rimuove gli altri oggetti, ad esempio rete virtuale, gruppo di risorse, gruppi di sicurezza di rete. Rimuove solo la risorsa vm stessa e quindi il modello viene distribuito con il -incremental parametro .

    • Se non si specifica il -TargetVM parametro , lo script presuppone che la macchina virtuale non esista più sul lato hub di Azure Stack, quindi lo script crea un modello di Resource Manager per distribuire una macchina virtuale completamente nuova.
  • I file modello generati Resource Manager vengono inseriti in -ArmTemplateDestinationPathe viene restituito il percorso completo del file modello o del file di parametri.

  • Se viene specificato il -TargetVM parametro , il cmdlet elimina la macchina virtuale, quindi è possibile continuare con la procedura seguente.

Passaggio 3: Distribuire il modello di Resource Manager

A questo punto, il disco rigido virtuale viene caricato nell'hub di Azure Stack e vengono creati il modello di Resource Manager e i rispettivi file di parametri. A questo scopo, è necessario distribuire la macchina virtuale nell'hub di Azure Stack.

In alcuni scenari, è possibile modificare questo modello e aggiungere, rimuovere o modificare alcuni nomi o risorse. Ciò è consentito, in quanto è possibile modificare e modificare il modello in base alle esigenze.

Quando si è pronti e dopo aver confermato le risorse nel modello di Resource Manager sono come previsto, è possibile chiamare il cmdlet New-AzResourceGroupDeployment per distribuire le risorse. Ad esempio:

New-AzResourceGroupDeployment `
  -Name "Failback" `
  -ResourceGroupName "failbackrg" `
  -TemplateFile $templateFile `
  -TemplateParameterFile $parameterFile `
  -Mode Incremental

Tenere presenti le seguenti considerazioni:

  • Il -ResourceGroupName parametro deve essere un gruppo di risorse esistente.
  • I -TemplateFile parametri e -TemplateParameterFile provengono dai valori restituiti nel passaggio 2.

Passaggi successivi