La virtualisation est l'une des innovations les plus transformatrices que le monde informatique ait à offrir. La virtualisation du stockage simplifie le stockage, la gestion et l'accès aux données. Elle transforme le stockage physique en un système unifié et flexible. Cependant, pour comprendre la virtualisation du stockage, il est important de comprendre également la virtualisation des serveurs et le contexte de la virtualisation.
Dans ce guide, nous expliquons cela et détaillons également comment les machines virtuelles sont créées et gérées, comment elles fonctionnent et quels types d'hyperviseurs et de serveurs de virtualisation sont disponibles.
Introduction à la virtualisation des serveurs
Avant que la virtualisation ne se généralise, les entreprises devaient fournir un serveur physique dédié pour chaque application, par exemple pour les serveurs d'impression, les serveurs de courriel et les serveurs de bases de données.
Cette approche contraignait les entreprises à sous-utiliser leur matériel, ce qui entraînait une augmentation des coûts et une surcharge des centres de données.
Pour résoudre ce problème, IBM a investi dans le développement de solutions de partage des ressources (virtualisation) pour les ordinateurs centraux à la fin des années 1960 et au début des années 1970. En 1999, VMware a révolutionné le secteur en livrant la virtualisation dans l'architecture x86.
La technologie clé à l'origine de cette transformation est l'hyperviseur. Il s'agit d'une couche logicielle qui se situe entre le matériel et les systèmes d'exploitation et qui gère les ressources.
L'architecture de base d'un serveur virtualisé est structurée comme suit :
- Le serveur est la couche la plus basse et se compose du processeur, de la mémoire principale (RAM) et de la mémoire secondaire (SSD ou HDD).
- Au lieu d'exécuter un seul système d'exploitation, un hyperviseur ou une couche intermédiaire virtualise les ressources matérielles et les attribue à plusieurs machines virtuelles (VM), qui peuvent être considérées comme la couche supérieure.
Cela signifie que chaque VM dispose de son propre processeur virtuel, de sa propre mémoire RAM virtuelle, de son propre stockage virtuel et de son propre réseau virtuel.
La virtualisation telle que nous la connaissons aujourd'hui a beaucoup évolué depuis les années 1960.
Au départ, la virtualisation ne tenait pas compte des défis liés au stockage, et les données de chaque machine virtuelle restaient liées à une seule machine physique. Cela signifiait que les applications et les données étaient perdues en cas de panne matérielle.
Pour résoudre ce problème, des technologies telles que vMotion et Fault Tolerance de VMware ont été introduites. Ces technologies permettent la migration en direct des machines virtuelles entre les serveurs.
La mobilité et le basculement des machines virtuelles nécessitent un réseau de stockage partagé, SAN ou NAS. C'est là que la virtualisation du stockage joue un rôle important.
Ainsi, alors que la virtualisation des serveurs abstrait les ressources informatiques, la virtualisation du stockage abstrait le stockage des données, permettant aux équipes informatiques de créer des environnements évolutifs, flexibles et tolérants aux pannes.
Dans les sections suivantes, nous expliquerons le fonctionnement de la virtualisation, ses différents types, et comment la virtualisation des serveurs et la virtualisation du stockage se complètent. Nous aborderons également les avantages et les défis de ces approches.
Fonctionnement de la virtualisation
La virtualisation est rendue possible par l'hyperviseur. Il s'agit d'une couche logicielle légère installée sur un serveur physique qui abstrait le matériel sous-jacent. Elle permet également la création de plusieurs machines virtuelles.
Chaque machine virtuelle fonctionne comme un système indépendant avec son propre système d'exploitation, ses propres applications et son propre matériel virtualisé.
Il existe deux types d'hyperviseurs :
- Les hyperviseurs de type 1 ou bare metal : ils sont installés directement sur le serveur physique et remplacent le système d'exploitation de l'hôte. Les hyperviseurs de type 1 sont utilisés dans les environnements d'entreprise et les centres de données, car ils offrent de meilleures performances, une plus grande fiabilité et une meilleure efficacité des ressources. Parmi les exemples, citons VMware ESXi, Microsoft Hyper-V, KVM, Oracle VM Server et Citrix Xen Server.
- Hyperviseurs de type 2 : ils sont hébergés et exécutés en tant que logiciels sur un système d'exploitation existant. Ils permettent à plusieurs systèmes d'exploitation de fonctionner sur le même PC. Oracle VirtualBox, VMware Workstation et VMware Fusion en sont des exemples.
Comment les machines virtuelles sont-elles créées et gérées ?
Une fois l'hyperviseur installé, un administrateur peut créer des machines virtuelles en leur allouant des ressources virtuelles à partir de l'hôte physique.
Chaque machine virtuelle se voit attribuer un vCPU (processeur virtuel), qui représente une partie de la puissance de calcul du processeur physique, une vRAM (mémoire RAM virtuelle), qui représente une partie de la mémoire totale de l'hôte, un périphérique de stockage virtuel, qui est un disque dur virtuel (par exemple, VMDK pour VMware et VHD pour Hyper-V), et enfin une vNIC (carte réseau virtuelle), qui est une carte réseau définie par logiciel. Voici un exemple :
Supposons que nous disposions d'un serveur équipé de 24 cœurs de processeur, de 96 gigaoctets de RAM, d'un téraoctet de stockage et de deux adaptateurs réseau 10 GbE sur lequel trois machines virtuelles doivent être hébergées. Ces machines virtuelles peuvent être créées comme suit :
| Type de VM | vCPU | vRAM | Stockage virtuel |
| Serveur web | 8 | 16 Go | 200 Go |
| Serveur de base de données | 8 | 32 Go | 400 Go |
| Serveur d'applications | 4 | 16 Go | 200 Go |
L'hyperviseur peut attribuer de manière dynamique des charges de travail au matériel physique et garantir une utilisation efficace des ressources tout en maintenant l'isolation entre les machines virtuelles.
Types de virtualisation de serveurs
Nous avons compris comment la virtualisation des serveurs permet d'exécuter plusieurs charges de travail sur une seule machine physique. Cela est rendu possible grâce à l'abstraction des ressources matérielles.
Cependant, il existe différentes méthodes de virtualisation, chacune représentant un compromis entre performances, compatibilité et isolation des machines virtuelles.
Les premières tentatives de virtualisation devaient trouver un équilibre entre ces trois facteurs.
- Compatibilité : chaque système d'exploitation doit-il pouvoir fonctionner sans modification ?
- Performances : faut-il éviter la surcharge liée à la virtualisation, c'est-à-dire l'utilisation excessive des ressources du processeur et de la mémoire ?
- Évolutivité : la virtualisation doit-elle être suffisamment légère pour les charges de travail natives du Cloud ?
Trois principaux types de virtualisation de serveurs ont vu le jour, chacun étant optimisé pour différents scénarios. Examinons ces types de plus près :
Virtualisation complète
Cette approche offre une émulation matérielle complète et permet aux systèmes d'exploitation invités de fonctionner sans modification.
L'hyperviseur gère toutes les interactions entre le système d'exploitation invité et le matériel physique. Cela garantit une forte isolation.
Bien que cette approche prenne en charge tout système d'exploitation fonctionnant sur le matériel, elle entraîne également une surcharge de performances, car les commandes privilégiées doivent être émulées. Parmi les exemples, y compris VMware ESXi, Microsoft Hyper-V et KVM.
Paravirtualisation
Cette approche optimise les performances en indiquant au système d'exploitation invité qu'il s'exécute dans un environnement virtualisé. Au lieu d'une émulation matérielle, le système d'exploitation invité communique avec l'hyperviseur via des hyperappels spéciaux.
Cela réduit la surcharge liée à la virtualisation, mais nécessite également des modifications du système d'exploitation ou des pilotes spéciaux. Xen en mode paravirtualisé et KVM avec les pilotes virtIO utilisent cette méthode.
Virtualisation au niveau du système d'exploitation
Également appelée conteneurisation, cette approche différente ne nécessite pas d'hyperviseurs distincts. Au lieu de cela, un seul noyau de système d'exploitation est utilisé pour exécuter plusieurs instances isolées (chacune étant appelée « conteneur »).
Cette approche permet aux administrateurs informatiques d'optimiser l'utilisation des ressources et d'obtenir une évolutivité rapide. Cependant, elle nécessite que tous les conteneurs utilisent le même noyau de système d'exploitation. Des technologies telles que Docker, Kubernetes et LXC rendent cette méthode idéale pour les applications cloud natives et les microservices.
Conclusion
La virtualisation des serveurs a beaucoup évolué, depuis les mainframes IBM des années 1960 jusqu'aux centres de données multi-hyperviseurs et cloud natifs d'aujourd'hui. En faisant en sorte qu'un seul appareil en remplace plusieurs autres, les coûts matériels sont réduits, les temps d'arrêt sont minimisés et la mise à l'échelle devient aussi simple que de cliquer sur « Ajouter une VM ».
Si vous travaillez avec d’autres systèmes de stockage et que vous faites face à une perte de données, les articles ci-dessous vous aideront à comprendre les étapes de récupération.
À propos de l'auteur
