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 :
- Un compte Microsoft Azure . Vous pouvez commencer par une version d’ essai gratuit. Vous pouvez aussi consulter la Tarification Azure Site Recovery Manager.
- Azure PowerShell. Pour plus d’informations sur cette version et la méthode d’installation, consultez Installer Azure PowerShell.
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
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"
- Vous pouvez également inclure les informations d’identification de votre compte en tant que paramètre dans l’applet de commande
Associez l’abonnement que vous souhaitez utiliser avec le compte, car un compte peut compter plusieurs abonnements :
Set-AzContext -Subscription $SubscriptionName
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
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
Vérifiez que les fournisseurs ont été correctement inscrits à l’aide des commandes suivantes :
Get-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Étape 2 : Configuration du coffre
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
Pour obtenir une liste des groupes de ressources de votre abonnement, exécutez l’applet de commande
Get-AzResourceGroup
.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
Créez un nouveau site Hyper-V comme suit :
$sitename = "MySite" #Specify site friendly name New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitename
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.
Utilisez l’applet de commande
Get-AzRecoveryServicesAsrJob
pour récupérer l’objet de traitement, puis vérifiez l’état actuel du travail.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
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
Téléchargez le programme d’installation de la dernière version du fournisseur sur le site de Microsoft.
Exécutez le programme d’installation sur l’hôte Hyper-V.
À la fin de l’installation, passez à l’étape d’inscription.
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.
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 :
Extrayez les fichiers d’AzureSiteRecoveryProvider.exe dans un répertoire local en exécutant cette commande :
AzureSiteRecoveryProvider.exe /x:. /q
Exécutez la commande suivante :
.\setupdr.exe /i
Les résultats sont journalisés dans %ProgramData%\ASRLogs\DRASetupWizard.log.
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.
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
Vérifiez la tâche renvoyée pour vous assurer que la stratégie de réplication a bien été créée.
Récupérez le conteneur de protection correspondant au site comme suit :
$protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
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]
Attendez que la tâche d’association se termine.
Récupérez le mappage de conteneurs de protection.
$ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
Étape 7 : Activation de la protection de machine virtuelle
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
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
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
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 :
- Activez le basculement vers des disques managés en mettant à jour les propriétés des machines virtuelles.
- Utilisez l’applet de commande
Get-AzRecoveryServicesAsrReplicationProtectedItem
pour extraire l’ID de chaque disque de l’élément protégé. - 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. - 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
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
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.
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.