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:
- Arrestare la macchina virtuale in esecuzione in Azure.
- Scaricare i dischi rigidi virtuali.
- Caricare i dischi rigidi virtuali nell'hub di Azure Stack.
- Ricreare le macchine virtuali.
- 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
$uris
usato per contenere ilSourceDiskVhdUris
valore usato nel passaggio 2.Il
-SourceVM
parametro è un oggetto vm recuperato daGet-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 (usandoTargetStorageAccountSasToken
) 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:È possibile fornire l'endpoint di archiviazione, che include l'area e il nome di dominio completo; ad esempio,
regionname.azurestack.microsoft.com
o il nome dell'ambiente dell'hub di Azure Stack, ad esempioAzureStackTenant
. 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.
- Per usare AzCopy, specificare i
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.
- Specificando
I file modello generati Resource Manager vengono inseriti in
-ArmTemplateDestinationPath
e 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.