19/09/2024

Configurer le démarrage et l’arrêt automatique des VMs Hyper-V

I. Présentation

Comment gérer le démarrage et l'arrêt automatique des machines virtuelles sur Hyper-V ? Dans ce chapitre, nous allons répondre à cette question importante. En effet, il est essentiel d'indiquer à Hyper-V comment il doit se comporter lorsqu'il doit lui-même être arrêté : doit-il mettre en pause les VM ou les éteindre ? Puis, lorsqu'il va démarrer de nouveau, doit-il démarrer les VM ? Si oui, dans quel ordre ? En tant qu'administrateur système, c'est à vous d'effectuer cette configuration qui s'effectue VM par VM.

Nous allons vous expliquer comment configurer le démarrage automatique des VMs sur Hyper-V, ainsi que l'arrêt automatique. Nous verrons les différentes options disponibles et nous vous guiderons pas à pas pour effectuer la configuration avec l'interface graphique, mais aussi PowerShell.

II. Le comportement par défaut d'Hyper-V

Avant d'évoquer la configuration et les options qui s'offrent à nous, voici des informations utiles sur le comportement par défaut d'Hyper-V.

  • Lorsque Hyper-V est arrêté, les machines virtuelles en cours d'exécution sont mises en pause. Donc, l'état complet d'une machine virtuelle est sauvegardé, y compris sa mémoire, et elle ne sera pas redémarrée.
  • Lorsque Hyper-V sera démarré, les machines virtuelles en pause seront relancées également, afin de reprendre leur état initial : "En cours d'exécution". Les VM éteintes au moment de l'arrêt de l'hyperviseur, resteront éteintes.

Désormais, nous allons voir comment effectuer cette configuration.

III. Configurer le démarrage automatique d'une VM

Sur Hyper-V, le démarrage automatique doit être configuré VM par VM. Pour configurer le démarrage automatique d'une VM, nous devons d'abord accéder aux paramètres de cette VM à partir du gestionnaire Hyper-V.

Ouvrez le Gestionnaire Hyper-V, sélectionnez ensuite la machine virtuelle pour laquelle vous souhaitez configurer le démarrage automatique. Cliquez avec le bouton droit sur la VM et sélectionnez "Paramètres". Une nouvelle fenêtre s'ouvre avec les paramètres de la VM.

Pour effectuer la configuration :

1 - Cliquez sur "Action de démarrage automatique" sur la gauche.

2 - Choisissez l'action souhaitée pour cette VM. Il y a trois options possibles.

  • Rien : la VM ne sera pas démarrée automatiquement.
  • Démarrer automatiquement s'il était en cours d'exécution au moment où le service a été arrêté : démarrer la VM uniquement si elle était en cours d'exécution au moment où l'Hyper-V a été arrêté. Ceci est l'option par défaut.
  • Toujours démarrer cet ordinateur virtuel automatiquement : pour que la VM soit toujours démarrer au lancement de l'Hyper-V.

3 - Si l'option "Toujours démarrer cet ordinateur virtuel automatiquement" est retenue, ce qui est nécessaire pour "forcer" le démarrage d'une VM afin qu'elle démarre automatiquement, l'option "Délai de démarrage automatique" est accessible à l'utilisateur. Cette option est indispensable pour gérer l'ordre de démarrage des machines virtuelles, ce qui a une véritable importance en fonction des services hébergés par vos VMs.

4 - Cliquez sur "OK" pour enregistrer vos modifications.

Il est indispensable de démarrer la VM contrôleur de domaine (DC) Active Directory avant les serveurs applicatifs. Le DC étant là pour permettre l'authentification, et généralement la résolution DNS, il est indispensable qu'il soit le premier démarré.

Dans ce cas, vous pouvez spécifier un délai de "0 seconde" pour le contrôleur de domaine et indiquer 30 ou 60 secondes pour les autres serveurs. Il est même possible d'indiquer des délais différents pour ne pas lancer toutes les VMs en même temps.

IV. Configurer l'arrêt automatique d'une VM

Toujours au sein des paramètres de la VM, la configuration de l'arrêt automatique s'effectue dans la section "Action d'arrêt automatique" (1). Ici, nous avons le choix entre trois options :

  • Mettre en mémoire l'état de l'ordinateur virtuel : il s'agit de l'option sélectionnée par défaut, ou la VM est suspendue et son état mis en mémoire sur le disque.
  • Éteindre l'ordinateur virtuel : il s'agit d'une option pour arrêter de façon brutale la VM. En fait, Hyper-V ne va pas émettre d'ordre d'extinction à la VM et va procéder à un arrêt de celle-ci sans "prévenir" le système invité et ses applications. Il est préférable d'éviter cette option. Un arrêt brutal peut endommager le système d'exploitation et les applications.
  • Arrêter le système d'exploitation invité : il s'agit de l'option à privilégier puisque Hyper-V va envoyer un ordre d'extinction au système d'exploitation invité (installé dans la VM) afin de lui ordonner de s'arrêter. Ceci est possible grâce au service d'intégration (ce qui implique qu'il soit activé). C'est l'option à privilégier, car elle permet d'effectuer un arrêt propre de la VM.
Hyper-V - Configurer arrêt automatique VM

Enfin, il est à noter que votre Hyper-V pourra être plus long à s'éteindre si l'option "Arrêter le système d'exploitation invité" est sélectionnée. En effet, il devra attendre que chaque VM s'éteigne proprement, ce qui nécessite plus ou moins de temps selon les ressources et les services en cours d'exécution sur chacune d'elle. Il n'est pas à exclure non plus qu'une VM Windows décide d'installer des mises à jour...

V. Automatiser la configuration avec PowerShell

La configuration du démarrage automatique et de l'extinction automatique doit être effectué VM par VM. Si vous avez un grand nombre de machines virtuelles, cela peut s'avérer être long.... Dans ce cas, vous devriez vous aider de PowerShell !

Tout d'abord, voici une commande pour lister chaque VM avec sa configuration actuelle pour le démarrage et l'extinction automatique.

Get-VM -VMName * | Select-Object VMName,AutomaticStartAction,AutomaticStartDelay,AutomaticStopAction | Sort-Object VMName

Voici un exemple de résultat :

Hyper-V - Arrêt et démarrage automatique avec PowerShell

Ensuite, nous pouvons coupler l'utilisation du cmdlet "Get-VM" avec "Set-VM" et trois paramètres différents pour ajuster la configuration sur un ensemble de VMs.

  • -AutomaticStartAction pour définir l'action de démarrage automatique.
  • -AutomaticStartDelay pour définir le délai de démarrage automatique.
  • -AutomaticStopAction pour définir l'action d'arrêt automatique.

L'exemple ci-dessous permet d'activer le démarrage automatique avec un délai de 30 secondes pour les VM nommées "PC-01" et "PC-02".

Get-VM -VMName PC-01,PC-02 | Set-VM -AutomaticStartAction Start -AutomaticStartDelay 30

Tandis que ce second exemple sert à configurer sur la valeur "Arrêter le système d'exploitation invité" l'arrêt automatique de toutes les machines virtuelles de l'Hyper-V.

Get-VM -VMName * | Set-VM -AutomaticStopAction ShutDown

Bien entendu, il est aussi possible de configurer une ou plusieurs VM à chaque fois, et d'utiliser les trois paramètres en même temps.

Get-VM -VMName PC-01,PC-02,SRV-ADCS | Set-VM -AutomaticStopAction ShutDown -AutomaticStartAction Start -AutomaticStartDelay 30

Grâce à ces commandes, exploitables dans un script, vous pouvez automatiser cette configuration et économiser de nombreux clics... De plus, cela facilitera une éventuelle modification à appliquer sur un ensemble de VMs.

VI. Conclusion

La configuration du comportement de vos VM à l'arrêt ou au démarrage de l'Hyper-V est essentielle. Ceci vous permet de maitriser le comportement de vos VMs lorsque l'Hyper-V va redémarrer, y compris lorsqu'il s'agit d'un redémarrage non prévu (le serveur a "planté", par exemple).

Enfin, si vous souhaitez tester votre configuration, il ne vous reste qu'une seule chose à faire : redémarrer votre serveur Hyper-V.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.