Peu importe l’architecture IT choisie, celle-ci coûtera toujours « trop cher » aux yeux de clients potentiels. Le Cloud n’échappe pas à cette règle, et demande donc tous les efforts possibles pour maitriser au mieux les coûts des ressources déployées. Microsoft annonce en préversion publique une fonctionnalité dédiée à la mise en veille des machine virtuelles : l’hibernation.
Qu’est-ce que l’hibernation ?
Hibernation : état d’hypothermie régulée, durant plusieurs jours ou semaines qui permet aux animaux de conserver leur énergie pendant l’hiver. Durant l’hibernation, les animaux ralentissent leur métabolisme jusqu’à des niveaux très bas, abaissant graduellement la température de leur corps et leur taux respiratoire, et puisent dans les réserves de graisse du corps qui ont été stockées pendant les mois actifs.
Wikipedia
Azure voit les VMs de la même manière que les mammifères 🤣:
- Lorsqu’on hiberne une VM Azure : ce dernier échange avec l’OS afin de stocker le contenu de la mémoire de la VM sur le disque du système d’exploitation, puis désalloue la VM.
- Lorsque la VM est redémarrée et sort d’hibernation : le contenu de la mémoire est retransféré du disque OS vers la mémoire. Cela permet alors de retrouver les applications et processus en cours d’exécution.
Combien coûte une machine virtuelle démarrée ?
Pour rappel, les coûts d’une machine virtuelle avaient déjà été détaillés dans cet article : Comprenez les coûts d’une ressource Azure.
En quelques lignes, une machine virtuelle allumée regroupe les principaux coûts suivants :
- Le Calcul (CPU/Mémoire): le coût du service calcul va dépendre de sa taille, donc de sa technologie, de son nombre de coeurs et de sa taille de mémoire.
- Le Stockage (Disques): Bien souvent, de l’information a besoin d’être stockée dans une architecture. Qu’elle soit utilisée par le service de calcul, mise à disposition pour des accès externes ou pour des besoins de sauvegarde, le stockage disposera généralement de 3 variables : taille (Go; To), débit (Mo/sec; Go/sec) et puissance transactionnelle (IOPS).
- Le Réseau (Carte réseau): Une VM Azure a besoin de communiquer avec des utilisateurs ou d’autres ressources IT. Comme pour le stockage, la tarification réseau repose sur des variables : taille de la bande passante et le volume de données en transition.
- La licence logicielle (OS): Là encore, la VM Azure sera souvent exploitée par un système d’exploitation et/ou logiciel, dont certains fonctionnent sous licence payante. Dans l’exemple des licences Microsoft, comme Windows Server ou SQL Server, la tarification Azure repose sur la taille du service de calcul, comme le nombre de coeurs des machines virtuelles.
Combien coûte une machine virtuelle éteinte ?
Une machine virtuelle même si les ressources sont désallouées coûte toujours :
- Le Stockage (Disques) est une resource constamment allouée.
- Le Réseau (Carte réseau): certaines ressources, comme les adresses IP publiques, peuvent être constamment allouées.
Combien coûte une machine virtuelle en hibernation ?
De la même manière que dans un état désalloué, la machine virtuelle continuera de coûter pour le stockage utilisé par les disques et aussi certaines ressources réseaux.
Pourquoi utiliser l’hibernation au lieu d’éteindre la VM ?
Microsoft nous détaille des scénarios envisageables pour ce mode Pause :
Les postes de travail virtuels, le développement/test et d’autres scénarios où les machines virtuelles n’ont pas besoin de fonctionner 24 heures sur 24 et 7 jours sur 7. Les systèmes dont les temps de démarrage sont longs en raison d’applications gourmandes en mémoire.
Microsoft Learn
Quelles sont les VMs compatibles avec le mode Hibernation ?
Plusieurs limitations à l’hibernation sont ainsi actuellement en vigueur, et vont certainement évoluer par la suite :
- Ne s’active pas sur des VMs déjà déployées
- Aucun redimensionnement SKU possible sur des VMs ayant la fonctionnalité hibernation
- Fonction d’hibernation est non désactivable après l’activation
- Limitations de compatibilité selon l’OS :
- Linux (dépourvue de Trusted Lunch) :
- Ubuntu 22.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 18.04 LTS
- Debian 11
- Debian 10 selon noyau
- Windows (page file hors disque D):
- Windows Server 2022
- Windows Server 2019
- Windows 10/11 (Pro / Enterprise / multisession)
- Linux (dépourvue de Trusted Lunch) :
- Uniquement certains SKUs supportent actuellement l’hibernation :
- Dasv5-series
- Dadsv5-series
- Dsv5-series
- Ddsv5-series
Important : Comme pour une VM désallouée, le risque est toujours présent lors du redémarrage si la VM hibernée, car elle nécessite des ressources potentiellement non disponibles à l’instant T.
Afin de se faire une meilleure idée sur l’hibernation d’Azure, je vous propose de réaliser un petit exercice combinant 2 exemples de VMs. Nous allons détailler toutes les étapes nécessaires, de la configuration aux tests :
- Etape 0 – Rappel des prérequis
- Etape I – Préparation de l’environnement Azure
- Etape II – Création d’une machine virtuelle compatible
- Etape III – Test de l’hibernation
- Etape IV – Création d’une machine virtuelle incompatible
- Etape V – Test de l’hibernation
Etape 0 – Rappel des prérequis :
Pour réaliser cet exercice sur l’hibernation de machines virtuelles Azure, il vous faudra disposer des éléments suivants :
- Un tenant Microsoft
- Une souscription Azure valide
Etape I – Préparation de l’environnement Azure :
Avant de pouvoir tester cette fonctionnalité toujours en préversion, il est nécessaire d’activer cette dernière sur la souscription Azure concernée.
Pour cela, rendez-vous dans le portail Azure, sur la page des fonctionnalités en préversion de votre souscription, puis effectuez une activation en recherchant celle-ci comme ci-dessous :
Attendez environ une minute que votre demande soit acceptée par Microsoft :
La notification suivante vous indique alors le succès de l’opération :
La suite consiste maintenant à créer une première machine virtuelle compatible et avec l’hibernation activée.
Etape II – Création d’une machine virtuelle compatible :
Pour cela, rechercher le service Machines virtuelles sur le portail Azure :
Cliquez-ici pour commencer la création de la première machine virtuelle :
Renseignez les informations de base relatives à votre VM en choisissant bien une image OS Windows 11 Pro, puis cliquez ici pour afficher les tailles de VMs :
Choisissez la taille de votre VM parmi l’une des séries suivantes :
- Dasv5-series
- Dadsv5-series
- Dsv5-series
- Ddsv5-series
Si la case d’hibernation est toujours grisée, attendez encore 10-20 minutes avant de retenter l’opération de création :
Si la case d’hibernation est disponible, cochez celle-ci, définissez un compte administrateur local, bloquer les ports entrants, cochez la case concernant le droit de licence, puis cliquez sur Suivant :
Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :
Créez un nouveau réseau virtuel, retirez l’adresse IP publique, puis cliquez sur Suivant :
Décochez l’extinction automatique de la machine virtuelle, puis lancez la validation Azure :
Une fois la validation Azure réussie, lancez la création de la première VM, puis attendez environ 3 minutes :
Une fois le déploiement terminé, cliquez-ici pour consulter votre première machine virtuelle :
Consultez l’extension automatiquement installée sur votre VM pour rendre fonctionnel l’Hibernation d’Azure :
Cliquez-ici pour déclencher le déploiement du service Azure Bastion :
Attendez environ 5 minutes qu’Azure Bastion soit déployé pour continuer cet exercice :
La notification suivante vous indique alors le succès de la création d’Azure Bastion :
Notre première machine virtuelle est enfin prête. Afin de bien mesurer l’impact de l’hibernation d’Azure, connectons-nous à la VM pour y ouvrir différents programmes.
Etape III – Test de l’hibernation :
Ouvrez une session de bureau à distance via Azure Bastion en utilisant les identifiants administrateurs renseignés lors de la création de la VM :
Attendez que la session Windows 11 s’ouvre avec le compte local :
Cliquez sur Suivant :
Cliquez sur Accepter :
Ouvrez plusieurs applications sans enregistrer les travails effectués :
Rendez-vous sur la page Azure de votre machine virtuelle, puis cliquez sur Hiberner :
Confirmez votre choix en cliquant sur Oui :
Attendez environ 1 minute :
La session ouverte via Bastion se retrouve alors automatiquement déconnectée, cliquez sur Fermer :
La notification suivante vous indique alors le succès de l’opération d’hibernation :
Un nouveau statut apparaît alors sur votre première machine virtuelle :
Afin de redémarrer la première VM, cliquez-ici :
Attendez environ 1 minute que la première VM soit redémarrée :
Réouvrez à nouveau une session via Azure Bastion avec les mêmes identifiants :
Constatez la réapparition des applications ouvertes avec les travails non enregistrés :
Cette première étape nous montre la facilité de mise en place de l’hibernation et l’intérêt potentiel pour les charges de travail variables ou discontinues.
Continuons cet exercice avec une seconde machine virtuelle créée cette fois-ci sans l’option d’hibernation.
Etape IV – Création d’une machine virtuelle incompatible :
Renseignez les informations de base relatives à votre seconde VM en choisissant bien une image OS Windows 11 Pro, puis en ne cochant pas la case hibernation :
Une fois la seconde VM créée, vérifiez que la fonction Hiberner est bien grisée pour celle-ci :
Ouvrez la page Azure du disque OS de celle-ci afin de créer un snapshot de ce dernier :
Renseignez les informations de base relatives à votre snapshot, puis lancez la validation Azure :
Une fois la validation Azure réussie, lancez la création du snapshot, puis attendez environ 1 minute :
Une fois le déploiement terminé, cliquez-ici pour consulter le snapshot de votre disque :
Cliquez-ici pour créer un nouveau disque OS à partir de ce snapshot :
Renseignez les informations de base relatives à ce nouveau disque OS, puis lancez la validation Azure :
Une fois la validation Azure réussie, lancez la création du disque OS, puis attendez environ 1 minute :
Continuons avec une troisième machine virtuelle créée cette fois-là avec l’option d’hibernation :
Arrêtez cette troisième machine virtuelle via la fonction d’arrêt :
Confirmez votre choix en cliquant sur Oui :
Toujours sur cette troisième VM, allez sur la page des disques afin de basculer vers le disque précédemment généré depuis le snapshot de la seconde VM :
Choisissez le seul disque disponible et issu du snapshot, puis cliquez sur OK :
La notification suivante vous indique alors le succès de l’opération de bascule des disques OS :
Redémarrer la troisième machine virtuelle Azure :
Une fois redémarrée, vérifiez la présence de la fonctionnalité Hiberner :
Consultez l’extension installée sur votre troisième VM :
Afin de vérifier que l’hibernation Azure fonctionne bien sur cette nouvelle VM issue du snapshot de la seconde, connectons-nous à celle-ci pour y ouvrir différents programmes.
Etape V – Test de l’hibernation :
Ouvrez une session de bureau à distance via Azure Bastion en utilisant les identifiants administrateurs renseignés lors de la création de la seconde VM :
Attendez que la session Windows 11 s’ouvre avec le compte local :
Cliquez sur Suivant :
Cliquez sur Accepter :
Ouvrez une ou plusieurs applications sans enregistrer les travails effectués :
De retour sur la page Azure de votre troisième machine virtuelle, puis cliquez sur Hiberner :
Confirmez votre choix en cliquant sur Oui :
Encore une fois, la session ouverte via Bastion se retrouve automatiquement déconnectée, cliquez sur Fermer :
La notification suivante vous indique alors le succès de l’opération d’hibernation :
Le statut apparaît alors sur votre troisième machine virtuelle, cliquez-ici afin de la redémarrer :
Attendez environ 1 minute que la VM soit redémarrée :
Réouvrez à nouveau une session via Azure Bastion avec les mêmes identifiants :
Constatez là encore la réapparition des applications ouvertes et les travails non enregistrés :
Conclusion
La fonction d’hibernation marque ici une vraie différence dans la gestion offline de machine virtuelle. Plus pratique que l’arrêt complet dans bon nombre de situations, l’hibernation pourrait devenir la norme en s’intégrant de la manière native dans beaucoup de service Azure, comme les groupe de machines virtuelles identiques ou encore Azure Virtual Desktop.
Attendons de voir la suite 😎💪
Un commentaire sur “❄️Faites hiberner vos VMs ⛄”