Configurer la récupération d’urgence dans Azure pour les machines virtuelles Hyper-V à l’aide de PowerShell et de Azure Resource Manager

Azure Site Recovery contribue à mettre en œuvre la stratégie de continuité des activités et de récupération d'urgence de votre entreprise en coordonnant la réplication, le basculement et la récupération de machines virtuelles Azure, de machines virtuelles locales et de serveurs physiques.

Cet article décrit comment utiliser Windows PowerShell, ainsi que Azure Resource Manager pour répliquer des ordinateurs virtuels Hyper-V vers Azure. L’exemple utilisé dans cet article vous explique comment répliquer une machine virtuelle unique exécutée sur un hôte Hyper-V sur Azure.

Notes

Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour commencer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.

Azure PowerShell

Azure PowerShell fournit des applets de commande pour gérer Azure à l’aide de Windows PowerShell. Les applets de commande PowerShell de Site Recovery, disponibles avec Azure PowerShell pour Azure Resource Manager, vous permettent de protéger et récupérer vos serveurs dans Azure.

Vous n’avez pas besoin d’être un expert de PowerShell pour utiliser cet article, mais vous devez tout de même connaître des concepts de base, tels que les modules, les applets de commande et les sessions. Pour plus d’informations, consultez la documentation PowerShell et Utilisation d’Azure PowerShell avec Azure Resource Manager.

Notes

Les partenaires Microsoft membres du programme Cloud Solution Provider (CSP) peuvent configurer et gérer la protection des serveurs clients sur leurs abonnements CSP respectifs (abonnements des locataires).

Avant de commencer

Assurez-vous que les conditions préalables sont remplies :

De plus, l’exemple décrit dans cet article présente les conditions préalables suivantes :

  • Un hôte Hyper-V exécuté sous Windows Server 2012 R2 ou Microsoft Hyper-V Server 2012 R2 et hébergeant une ou plusieurs machines virtuelles. Les serveurs Hyper-V doivent être connectés à Internet, directement ou à travers un proxy.
  • Les machines virtuelles que vous souhaitez répliquer doivent respecter ces conditions préalables.

Étape 1 : Connexion à votre compte Azure

  1. Ouvrez une console PowerShell et exécutez la commande suivante pour vous connecter à votre compte Azure. L’applet de commande permet d’afficher une page web qui vous demande les informations d’identification de votre compte : Connect-AzAccount.

    • Vous pouvez également inclure les informations d’identification de votre compte en tant que paramètre dans l’applet de commande Connect-AzAccount à l’aide du paramètre Credential.
    • Si vous êtes partenaire CSP travaillant pour le compte d’un locataire, spécifiez le client en tant que locataire, à l’aide de son ID locataire ou de son nom de domaine principal. Par exemple : Connect-AzAccount -Tenant "fabrikam.com"
  2. Associez l’abonnement que vous souhaitez utiliser avec le compte, car un compte peut compter plusieurs abonnements :

    Set-AzContext -Subscription $SubscriptionName
    
  3. Utilisez les commandes suivantes pour vérifier que votre abonnement vous autorise à utiliser les fournisseurs Azure pour Recovery Services et Site Recovery :

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    
  4. Vérifiez que dans la sortie de commande RegistrationState est défini sur Inscrit, vous pouvez ensuite passer à l’étape 2. Dans le cas contraire, vous devez inscrire le fournisseur manquant dans votre abonnement en exécutant ces commandes :

    Register-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
    
  5. Vérifiez que les fournisseurs ont été correctement inscrits à l’aide des commandes suivantes :

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    

Étape 2 : Configuration du coffre

  1. Créez un groupe de ressources Azure Resource Manager dans lequel vous allez créer le coffre, ou utilisez un groupe de ressources existant. Créez un nouveau groupe de ressources de la manière suivante. La variable $ResourceGroupName contient le nom du groupe de ressources que vous souhaitez créer et la variable $Geo contient la région Azure dans laquelle créer le groupe de ressources (par exemple, « Brésil Sud »).

    New-AzResourceGroup -Name $ResourceGroupName -Location $Geo
    
  2. Pour obtenir une liste des groupes de ressources de votre abonnement, exécutez l’applet de commande Get-AzResourceGroup.

  3. Créez un coffre Azure Recovery Services de la manière suivante :

    $vault = New-AzRecoveryServicesVault -Name <string> -ResourceGroupName <string> -Location <string>
    

Vous pouvez récupérer la liste des coffres existants avec l’applet de commande Get-AzRecoveryServicesVault.

Étape 3 : Définition du contexte du coffre Recovery Services

Définissez le contexte d’archivage comme suit :

Set-AzRecoveryServicesAsrVaultContext -Vault $vault

Étape 4 : Créer un site Hyper-V

  1. Créez un nouveau site Hyper-V comme suit :

    $sitename = "MySite"                #Specify site friendly name
    New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitename
    
  2. Cette applet de commande démarre une tâche Site Recovery pour créer le site et renvoie un objet de tâche Site Recovery. Attendez que la tâche soit terminée, puis vérifiez son exécution.

  3. Utilisez l’applet de commande Get-AzRecoveryServicesAsrJob pour récupérer l’objet de traitement, puis vérifiez l’état actuel du travail.

  4. Générez et téléchargez une clé d’inscription pour le site comme suit :

    $SiteIdentifier = Get-AzRecoveryServicesAsrFabric -Name $sitename | Select-Object -ExpandProperty SiteIdentifier
    $path = Get-AzRecoveryServicesVaultSettingsFile -Vault $vault -SiteIdentifier $SiteIdentifier -SiteFriendlyName $sitename
    
  5. Copiez la clé téléchargée sur l’hôte Hyper-V. Vous avez besoin de la clé pour inscrire l’hôte Hyper-V sur le site.

Étape 5 : Installez le fournisseur et l’agent

  1. Téléchargez le programme d’installation de la dernière version du fournisseur sur le site de Microsoft.

  2. Exécutez le programme d’installation sur l’hôte Hyper-V.

  3. À la fin de l’installation, passez à l’étape d’inscription.

  4. Quand vous y êtes invité, renseignez la clé que vous avez téléchargée et terminez l’inscription de l’hôte Hyper-V.

  5. Vérifiez que l’hôte Hyper-V a bien été inscrit sur le site comme suit :

    $server = Get-AzRecoveryServicesAsrFabric -Name $siteName | Get-AzRecoveryServicesAsrServicesProvider -FriendlyName $server-friendlyname
    

Si vous exécutez un serveur Hyper-V (installation minimale), téléchargez le fichier d’installation et effectuez les étapes suivantes :

  1. Extrayez les fichiers d’AzureSiteRecoveryProvider.exe dans un répertoire local en exécutant cette commande :

    AzureSiteRecoveryProvider.exe /x:. /q
    
  2. Exécutez la commande suivante :

    .\setupdr.exe /i
    

    Les résultats sont journalisés dans %ProgramData%\ASRLogs\DRASetupWizard.log.

  3. Inscrivez le serveur en exécutant cette commande :

    cd  C:\Program Files\Microsoft Azure Site Recovery Provider\DRConfigurator.exe" /r /Friendlyname "FriendlyName of the Server" /Credentials "path to where the credential file is saved"
    

Étape 6 : Créer une stratégie de réplication

Avant de commencer, le compte de stockage spécifié doit se trouver dans la même région Azure que le coffre et doit utiliser la fonction de géoréplication.

  1. Créez une stratégie de réplication comme suit :

    $ReplicationFrequencyInSeconds = "300";        #options are 30,300,900
    $PolicyName = “replicapolicy”
    $Recoverypoints = 6                    #specify the number of recovery points
    $storageaccountID = Get-AzStorageAccount -Name "mystorea" -ResourceGroupName "MyRG" | Select-Object -ExpandProperty Id
    
    $PolicyResult = New-AzRecoveryServicesAsrPolicy -Name $PolicyName -ReplicationProvider “HyperVReplicaAzure” -ReplicationFrequencyInSeconds $ReplicationFrequencyInSeconds -NumberOfRecoveryPointsToRetain $Recoverypoints -ApplicationConsistentSnapshotFrequencyInHours 1 -RecoveryAzureStorageAccountId $storageaccountID
    
  2. Vérifiez la tâche renvoyée pour vous assurer que la stratégie de réplication a bien été créée.

  3. Récupérez le conteneur de protection correspondant au site comme suit :

    $protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
    
  4. Associez le conteneur de protection avec la stratégie de réplication comme suit :

    $Policy = Get-AzRecoveryServicesAsrPolicy -FriendlyName $PolicyName
    $associationJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $Policy -PrimaryProtectionContainer $protectionContainer[0]
    
  5. Attendez que la tâche d’association se termine.

  6. Récupérez le mappage de conteneurs de protection.

    $ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
    

Étape 7 : Activation de la protection de machine virtuelle

  1. Récupérez l’élément protégeable correspondant à la machine virtuelle que vous souhaitez protéger comme suit :

    $VMFriendlyName = "Fabrikam-app"          #Name of the VM
    $ProtectableItem = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
    
  2. Protéger la machine virtuelle. Si la machine virtuelle que vous protégez compte plusieurs disques, spécifiez le disque de système d’exploitation avec le paramètre OSDiskName.

    $OSType = "Windows"          # "Windows" or "Linux"
    $DRjob = New-AzRecoveryServicesAsrReplicationProtectedItem -ProtectableItem $VM -Name $VM.Name -ProtectionContainerMapping $ProtectionContainerMapping -RecoveryAzureStorageAccountId $StorageAccountID -OSDiskName $OSDiskNameList[$i] -OS $OSType -RecoveryResourceGroupId $ResourceGroupID
    
  3. Attendez que les machines virtuelles basculent à l’état protégé après la réplication initiale. Cette opération prendra un certain temps compte tenu de certains facteurs, notamment la quantité de données à répliquer et la bande passante en amont disponible pour Azure. Lorsque l’état protégé est en place, les paramètres State et StateDescription de la tâche s’actualisent comme suit :

    PS C:\> $DRjob = Get-AzRecoveryServicesAsrJob -Job $DRjob
    
    PS C:\> $DRjob | Select-Object -ExpandProperty State
    Succeeded
    
    PS C:\> $DRjob | Select-Object -ExpandProperty StateDescription
    Completed
    
  4. Mettez à jour les propriétés de récupération (telles que la taille du rôle de machine virtuelle) et le réseau Azure auquel attacher la carte réseau de la machine virtuelle après le basculement.

    PS C:\> $nw1 = Get-AzVirtualNetwork -Name "FailoverNw" -ResourceGroupName "MyRG"
    
    PS C:\> $VMFriendlyName = "Fabrikam-App"
    
    PS C:\> $rpi = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
    
    PS C:\> $UpdateJob = Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $rpi -PrimaryNic $VM.NicDetailsList[0].NicId -RecoveryNetworkId $nw1.Id -RecoveryNicSubnetName $nw1.Subnets[0].Name
    
    PS C:\> $UpdateJob = Get-AzRecoveryServicesAsrJob -Job $UpdateJob
    
    PS C:\> $UpdateJob | Select-Object -ExpandProperty state
    
    PS C:\> Get-AzRecoveryServicesAsrJob -Job $job | Select-Object -ExpandProperty state
    
    Succeeded
    

Notes

Si vous voulez répliquer sur des disques managés activés par une CMK dans Azure, effectuez les étapes suivantes avec la commande Az de PowerShell 3.3.0 et versions ultérieures :

  1. Activez le basculement vers des disques managés en mettant à jour les propriétés des machines virtuelles.
  2. Utilisez l’applet de commande Get-AzRecoveryServicesAsrReplicationProtectedItem pour extraire l’ID de chaque disque de l’élément protégé.
  3. Créez un objet de dictionnaire à l’aide de l’applet de commande New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]" destiné à contenir le mappage de l’ID de disque au jeu de chiffrement de disque. Vous devez créer ces jeux de chiffrement de disque au préalable dans la région cible.
  4. Mettez à jour les propriétés des machines virtuelles à l’aide de l’applet de commande Set-AzRecoveryServicesAsrReplicationProtectedItem en passant l’objet du dictionnaire dans le paramètre DiskIdToDiskEncryptionSetMap.

Étape 8 : Exécuter un test de basculement

  1. Exécutez un test de basculement, en procédant comme suit :

    $nw = Get-AzVirtualNetwork -Name "TestFailoverNw" -ResourceGroupName "MyRG" #Specify Azure vnet name and resource group
    
    $rpi = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
    
    $TFjob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $VM -Direction PrimaryToRecovery -AzureVMNetworkId $nw.Id
    
  2. Vérifiez que la machine virtuelle de test est bien créée dans Azure. La tâche de test de basculement est suspendue après la création de la machine virtuelle de test dans Azure.

  3. Pour nettoyer et terminer le test de basculement, exécutez :

    $TFjob = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $rpi -Comment "TFO done"
    

Étapes suivantes

En savoir plus sur Azure Site Recovery avec les applets de commande PowerShell Azure Resource Manager.