Les techniques pour réussir la migration à chaud depuis Hyper-V
Répliquer les machines virtuelles en cours de production vers un site de secours nécessite de connaître les bonnes commandes PowerShell et savoir dépanner les problèmes qui se posent.
Vous pouvez utiliser Hyper-V Manager pour migrer à chaud les machines virtuelles une par une, mais pour migrer à chaud plusieurs machines virtuelles simultanément, vous devez utiliser PowerShell. Dans cet article, nous fournissons quelques exemples PowerShell pour vous aider à faire migrer à chaud des machines virtuelles Hyper-V vers un site de secours.
PowerShell fournit le cmdlet Move-VM PowerShell pour migrer à chaud une VM Hyper-V s'exécutant sur un hôte vers un autre hôte. Par exemple, les machines virtuelles qui ne dépendent d’aucun partage sont migrées à chaud à l'aide de la commande suivante :
Move-VM "SQLVM" -DestinationHost <Hyper-VHostName> -DestinationStoragePath E:\MyVM1
La commande ci-dessus déplace SQLVM vers l'hôte Hyper-V spécifié dans le paramètre -DestinationHost. Alors que cette commande déplace une seule VM, la commande ci-dessous déplace toutes les VM fonctionnant sur l'hôte Hyper-V local vers un hôte Hyper-V distant :
Get-VM -ComputerName <LostHyper-VHost> | Move-VM–DestinationHost <Hyper-VHostName> -DestinationStoragePath E:\MyVM1
Ces commandes PowerShell sont utilisées pour migrer à chaud les machines virtuelles Hyper-V vers un autre cluster Hyper-V. Si vous avez juste besoin de migrer des machines virtuelles Hyper-V d'un nœud à un autre dans un cluster, utilisez le cmdlet Move-ClusterVirtualMachineRole PowerShell comme indiqué ci-dessous :
Get-VM <SQLVM> | Move-ClusterVirtualMachineRole -MigrationType Live -Node <NodeName> -Wait 0
Et pour migrer à chaud plusieurs VM Hyper-V au sein d’un même cluster de machines physiques, utilisez la commande PowerShell suivante :
Get-VM | Move-ClusterVirtualMachineRole -MigrationType Live -Node <NodeName> -Wait 0
Le paramètre -Wait 0 ci-dessus spécifie que le cmdlet PowerShell s'exécute puis retourne à l'invite PowerShell sans attendre.
Dépannez la migration de VMs depuis Hyper-V
Les problèmes les plus courants lors des migrations à chaud de VMs depuis Hyper-V, sont l'échec des tentatives de connexion au serveur de destination, les versions de protocole non prises en charge, les problèmes de compatibilité des commutateurs virtuels et les incompatibilités matérielles.
Souvent, un message d'erreur apparaît lorsque vous tentez de vous connecter à l'hôte de destination. Il vous demande par exemple de vous assurer que le port de gestion à distance de Windows (WinRM) est ouvert sur l'hôte de destination. WinRM utilise le port 5985 (HTTP) et le port 5986 (HTTPS).
Si les ports requis du pare-feu sont ouverts, vous pouvez vérifier plusieurs autres choses. Assurez-vous que le service WinRM fonctionne sur l'hôte de destination. Vous devez également vous assurer que la résolution du système de noms de domaine fonctionne correctement et que vous êtes en mesure de résoudre correctement à la fois le nom de l'ordinateur et le nom de domaine pleinement qualifié de l'hôte distant.
Version du protocole non prise en charge
Un autre problème courant de la migration à chaud des VM est une version de protocole non prise en charge. Cette erreur se produit parce que les anciennes versions d'Hyper-V ne prennent pas en charge certaines des dernières fonctionnalités de la VM. Par exemple, si vous essayez de déplacer une VM version 8.0 vers un serveur Hyper-V fonctionnant sous Windows Server 2012 R2, alors que celui-ci ne prend pas en charge les versions de VM supérieures à 5.0.La commande suivante permet d'afficher la version de chaque VM sur un hôte Hyper-V donné :
Get-VM * | Select-Object Name, Version
Erreur de commutation virtuelle
Les migrations à chaud peuvent également échouer si l'hôte de destination ne contient pas un commutateur virtuel du même nom que celui utilisé par la VM. Cette erreur varie selon que vous tentez la migration à chaud à l'aide de Hyper-V Manager ou de PowerShell.
Dans les versions modernes d'Hyper-V Manager, un décalage de commutateur virtuel n'est pas un obstacle. Au contraire, l'assistant vous informera du problème et vous donnera la possibilité de choisir un autre commutateur virtuel. Si vous tentez la migration en utilisant PowerShell, alors Hyper-V produira simplement une erreur.
Matériel incompatible
Un autre problème assez courant de migration à chaud de la VM est lorsque l'ordinateur de destination n'est pas compatible avec les exigences matérielles de la VM. Cette erreur se produit parce que les hôtes Hyper-V source et destination fonctionnent sur un matériel sensiblement différent.
Dans la plupart des cas, vous pouvez corriger le problème en utilisant le mode de compatibilité du processeur. L'utilisation du mode de compatibilité du processeur indique à l'hôte Hyper-V d'exécuter la VM en utilisant uniquement les fonctions de base du processeur plutôt que d'essayer d'utiliser des fonctions avancées du processeur. Une fois que le mode de compatibilité du processeur est activé, la migration à chaud fonctionne généralement. Par ailleurs, il est presque toujours possible de désactiver le mode de compatibilité du processeur une fois que la migration à chaud de la VM est terminée.
Vous pouvez activer le mode de compatibilité des processeurs à partir de Hyper-V Manager en cliquant avec le bouton droit de la souris sur la VM et en choisissant la commande "Paramètres" dans le menu contextuel. Lorsque la fenêtre des paramètres de la VM s'ouvre, développez le conteneur du processeur, puis sélectionnez le sous-conteneur de compatibilité. Maintenant, il suffit de cocher la case Migrer vers un ordinateur physique avec une version de processeur différente, comme le montre la figure D.
Ce ne sont là que quelques-unes des conditions qui peuvent provoquer des erreurs de migration à chaud dans Hyper-V. Si vous constatez une erreur de migration à chaud d'une VM vraiment tenace, prenez un moment pour vous assurer que les horloges des hôtes Hyper-V et des contrôleurs de domaine sont toutes synchronisées entre elles.