La disponibilité des machines virtuelles et des hyperviseurs est une préoccupation propre à la sécurité des hyperviseurs et plus généralement à la sécurité informatique. En cas de défaillance, de quelque nature que ce soit, le système virtualisé composé d'hyperviseurs et de machines virtuelles doit garantir la continuité de fonctionnement des services pour lesquels ils ont été mis en place. La disponibilité est assurée grâce à la mise en place de dispositifs agissant sur un ou plusieurs éléments de l'ensemble virtualisé.
Historique Le développement de la virtualisation des systèmes apparaît dans les années 1960 et au début de la décennie suivante pour répondre aux besoins de réduction des coûts des systèmes physiques de l'époque..
En 1974, alors que les professeurs Gerald J. Popek et Robert P. Goldberg effectuaient, sur le mainframe d'IBM 360/370, les premiers travaux sur la virtualisation, ceux-ci ont mis en avant deux problèmes liés à la disponibilité qui concernent en particulier les temps de réponse et la disponibilité des ressources.. Dans les années 1980-1990 certains projets comme Amiga, SideCar ou encore Enplant ont essayé d’exploiter cette technologie. Mais certains problèmes, notamment de protection en cas de panne, ont conduit à leur abandon.. Lors du DemoFall de 1999, l’entreprise VMware se dévoile au marché et présente son premier produit, VMware Workstation 1.0 pour Linux et Windows.. Ce système va permettre d'améliorer, entre autres, la disponibilité des serveurs lors d'une défaillance avec un faible coût de redondance et un redémarrage très rapide du système en cas de panne.. Aujourd'hui, les différents acteurs ont inclus diverses solutions dans leurs produits, telles que le mirroring, la réplication, le basculement de cluster et les snapshots, afin de disposer d'une haute disponibilité.
Définition D'après la norme française X 60-503, la définition de la disponibilité représente l'aptitude d’un dispositif (équipement, système, service), sous les aspects combinés de sa fiabilité, de sa maintenabilité et de la logistique de maintenance, à remplir ou à être en état de remplir une fonction à un instant donné ou dans un intervalle de temps donné..
En informatique la disponibilité d'un système désigne une architecture capable de fournir ou de rendre disponible un service lorsque l'utilisateur en a besoin. Cette notion peut être exprimée mathématiquement en fonction de deux paramètres :
Indice de fiabilité MTBFMTBF pour Mean Time Between Failures qui pourrait être traduit par Temps moyen entre pannes Il désigne le temps moyen entre défaillances consécutives. La somme des temps de bon fonctionnement inclut les temps d'arrêts (hors défaillance) et les temps de micro arrêts. Elle peut s'exprimer en unité qui peut par exemple être le nombre de pannes pour 100 heures de production..
Indice de maintenabilité MTTRMTTR pour Mean Time To Repair qui pourrait être traduit par Temps moyen de réparation Ce paramètre exprime la moyenne des temps de tâches de réparation. Il est calculé en additionnant les temps actifs de maintenance ainsi que les temps annexes de maintenance. Le tout est divisé par le nombre d'interventions.
+ Temps actifs Temps annexes Temps de localisation de la défaillance Temps de détection Temps de diagnostic Temps d'appel à la maintenance Temps d'intervention Temps d'arrivée de la maintenance Temps de contrôle et d'essai Temps propre à la logistique d'intervention
La disponibilité, qui s'exprime en pourcentage, est calculée de la manière suivante:
.
Présentation de la disponibilité
La virtualisation et par voie de conséquence sa disponibilité, est devenue un enjeu majeur ces dernières années pour faire face à tout type de défaillances des systèmes réels. Elle permet de réduire les coûts de fonctionnement des systèmes informatiques et augmente la disponibilité des systèmes et des services critiques.
Pour utiliser la virtualisation il faut déployer des VMsVMs pour Virtual Machine qui pourrait être traduit par machines virtuelles sur un serveur physique. Celles-ci ont besoin d'être contrôlées automatiquement ou manuellement, il faut donc mettre en place un SLOSLO pour Service Level Objectives qui pourrait être traduit par objectifs de niveau de service. Le composant majeur de ce SLO est la haute disponibilité des systèmes virtualisés..
Un certain nombre de procédés ont permis de déterminer des modèles de disponibilité que l'on peut classer en trois groupes : Les modèles combinatoires. Les modèles État-espace. Les modèles Hybride/hiérarchique.
Objectif et intérêt Les solutions de haute disponibilité permettent, en cas de défaillance, de maintenir en état de fonctionnement un système virtualisé quel que soit le problème rencontré : système ou applicatif.
Ses faiblesses La recherche de la disponibilité dans la virtualisation évolue en permanence et s'avère être très difficile à mettre en œuvre. La disponibilité peut être perturbée voire arrêtée à la suite de nombreux événements en particulier sur le système hôte lorsqu'il est défaillant..
Un système virtualisé peut être interconnecté avec un nombre important de réseaux hétérogènes. Ce genre de configuration provoque des échanges d'informations et de communications de tout type avec de nombreuses possibilités d'accès malveillants. Dans cette hypothèse, la prévention face aux intrusions est plus difficile à assurer et la tolérance aux pannes face aux intrusions malveillantes est donc fragilisée.
La disponibilité est donc un dispositif perfectible et exposé à de nombreux paramètres de perturbation.
La disponibilité pour les machines virtuelles
Éléments de base La disponibilité des hyperviseurs concerne aussi bien les hyperviseurs eux-mêmes que les machines virtuelles qu’ils contrôlent. L'organisation DMTFDMTF pour Distributed Management Task Force représente l'organisation qui maintient des standards pour l'administration de systèmes informatiques a défini des états sémantiques pour les machines virtuelles. La spécification de ces états est. : L'état « Définie » Il indique que la machine virtuelle est seulement déclarée dans le système. Elle est inactive et ne consomme pas de ressources systèmes. L'état « Active » La machine virtuelle fonctionne normalement. L'état « Pause » Cet état indique que la machine virtuelle reste instanciée mais ne permet pas d'exécuter de tâches. L'état « Suspendue » La machine virtuelle et ses ressources sont stockées dans une mémoire non volatile. Cet état ne permet pas d'exécuter des opérations.
Niveau de disponibilité
L'équipe de l'entreprise IBM dirigée par Erin M. Farr a mis en place des niveaux de disponibilité en s'appuyant sur les états sémantiques des machines virtuelles et l'IDCIDC pour International Data Corporation représente une entreprise américaine spécialisé dans l'étude de marché. En effet l'IDC a établi des niveaux de disponibilité nommés AL1 à AL4 basés sur les expériences passées lors de pannes qui ont alors été définis de manière appropriée pour traiter les défaillances.. L'équipe d'IBM a donc généralisé ce concept aux environnements virtuels en mettant en place quatre niveaux de disponibilité nommés de HAVEN1 à HAVEN4 qui correspondent aux niveaux de disponibilité établis par IDC..
+ Comparaison des niveaux de disponibilité entre IDC et HAVEN Niveau IDC Description Niveau HAVEN Description IDC niveau 4 (AL4) Transparent pour l'utilisateur; Pas d'interruption de service; Pas de perte de transactions; Pas de dégradation des performances Niveau HAVEN4 Basculement automatique vers une image de la machine virtuelle qui continuera de traiter les mêmes opérations. IDC Niveau 3 (AL3)Service en ligne; Possibilité de relance de la transaction courante, Possibilité de dégradation des performances Niveau HAVEN3 Basculement automatique vers un point de contrôle avant la défaillance de la machine virtuelle. IDC Niveau 2 (AL2) Utilisateur interrompu mais peut se reconnecter rapidement; Possibilité de relancer plusieurs transactions du fichier de transaction; Possibilité de dégradation des performances Niveau HAVEN2 Basculement automatique sur une image de la machine virtuelle précédemment définie. IDC Niveau 1 (AL1) Impossible de travailler; Arrêt du système; Intégrité des données assurées Niveau HAVEN1 Récupération manuelle de la machine virtuelle par un reboot de cette dernière.
Modèles de la disponibilité des machines virtuelles
Parmi les différents modèles de la disponibilité, plusieurs études se sont appuyées sur le . Ce modèle peut être considéré comme un diagramme d'état avec quelques restrictions mathématiques. La représentation d'un système peut être modélisée par la définition de tous les états que le système peut prendre. Ces états sont reliés par des arcs qui servent à représenter la transition d'un état à l'autre. L'arc peut représenter la probabilité pour passer à l'état suivant, ou la vitesse à laquelle le système se déplace dans l'état suivant. L'équipe du professeur Kim s'est appuyée sur le modèle de Markov pour établir un modèle de la disponibilité des machines virtuelles.
Les solutions mises en place pour les machines virtuelles La haute disponibilité est aujourd'hui un élément essentiel à prendre en compte. Pour permettre de maintenir en état de fonctionnement le système à virtualiser ou les applications en cas de défaillance, un certain nombre de solutions sont mises en place: Deux domaines d'actions sont représentés : La redondance des matériels et la mise en cluster : Failover clustering, Mémorisation d'état, Migration à chaud. La sécurisation des données : Mirroring, Réplication, RAID, Snapshot.
La redondance des matériels et la mise en cluster
Cluster de basculement
En français cluster de basculement, est une technologie permettant d'automatiser la reprise d'une application ou d'un service sur un autre serveur (nœud).. Un cluster est un terme informatique qui désigne une grappe de serveurs. Cela regroupe une ou plusieurs machines physiques capables de supporter le même ensemble de machines virtuelles.
Failover signifie en langage informatique un basculement qui s'opère lorsque le composant principal est en défaut et que ce dernier ne peut pas fonctionner correctement. Alors le service ou l'application bascule d'une machine en défaut vers une machine en fonctionnement nominal.
En référence au schéma ci-contre :
Le niveau Application correspond à un service rendu aux utilisateurs. À ce niveau l'utilisateur ne voit que l'hôte virtuel. Le service de cluster est une application distribuée sur les deux nœuds du cluster et dirige les requêtes vers le serveur (nœud) actif.
Le niveau données abrite les applications et les données associées (BD, messagerie, etc.). La redondance des matériels, des applications et des données y est assurée. Le mécanisme de pulsation est un mécanisme par lequel les nœuds restent en contact permanent afin de détecter les défaillances du nœud actif.
Les données partagées représentent le support physique (indépendant des nœuds) utilisé par le service de cluster pour gérer le basculement (volume SANSAN pour Storage Aera Network qui peut être traduit par Un réseau de stockage).
La mémorisation d’état
Un autre moyen utilisé dans la disponibilité est de s’appuyer sur la sauvegarde d’état. Dans ce cadre-là, le système SMP-ReVirt permet de revenir à l’état antérieur à la survenue d’une défaillance, d’un incident de sécurité ou de bug.. Ce système nécessite de conserver les états par sauvegarde et de détection du problème à l’aide de la page de protection hardware de la machine virtuelle. L’utilisation en mode multi processeurs permet en fait de disposer en parallèle de l’état et de la configuration d’une même machine virtuelle.
La migration à chaud