Virtualisation
Virtualisation
Polycopié du module
Élément II : Virtualisation
2
I. LA VIRTUALISATION
1. Introduction
a. Principe de fonctionnement
Si on installe un SE sur une machine physique, ce SE est lié au hardware, même si on déplace
le disque dur vers un autre serveur, ceci pourrait ne pas fonctionner. La virtualisation offre
une couche entre le SE et le hardware, qui est l’hyperviseur, le SE devient une instance
installée.
Pourquoi c’est important ? Parce que si vous installez un autre serveur, vous avez l’option de
déplacer le SE vers ce serveur. C’est le gain le plus important de la virtualisation.
Le deuxième gain est qu’on peut installer plusieurs différents SE sur le même serveur. Donc
au lieu d’avoir plusieurs serveurs pas chers, on peut avoir un seul serveur mais qu’il soit bon.
Les hyperviseurs répartissent vos ressources physiques pour permettre aux environnements
virtuels de les utiliser, ces environnements sont également appelés machines virtuelles ou
hôtes. Ces ressources sont partitionnées à partir de l'environnement physique et distribuées
aux différents environnements virtuels. Les utilisateurs interagissent avec ces environnements
et y exécutent des calculs. La machine virtuelle opère comme un fichier de données unique.
Comme n'importe quel fichier numérique, vous pouvez la transférer d'un ordinateur à un
autre, l'ouvrir sur l'un ou l'autre et l'utiliser de la même manière.
Lorsque l'environnement virtuel est exécuté et qu'un utilisateur ou un programme émet une
instruction nécessitant des ressources supplémentaires à partir de l'environnement physique,
l'hyperviseur transmet cette requête au système physique et met en cache les modifications.
Le processus est presque aussi rapide que sur un système natif.
b. Virtualisation en pratique
En pratique, les ressources nécessitant le plus la virtualisation sont : les serveurs, les
machines, les applications et les réseaux (un peu moins).
L’objectif de ce type de virtualisation est de pouvoir utiliser une application dans un système
d'exploitation sans que cette application ne soit installée dedans.
Les applications sont installées une seule fois dans le serveur, transformées en services
virtuels administrés de façon centralisée, et envoyées autant de fois que nécessaires vers les
machines, sans nécessiter d'installation sur ces dernières.
3
Pour ce faire, l’application doit être installée sur un serveur (de distribution d’application),
puis un logiciel dit « App Receiver » doit être utilisé par la machine hôte pour recevoir et
utiliser l’application localement.
Pour cela, différents logiciels doivent être utilisés pour assurer la virtualisation des
applications : Citrix XenApp, Microsoft AppV, VMware ThinApp, etc.
La plupart du temps, ces logiciels envoient l’application sous la forme de pixels qui transitent
entre le serveur et le client, et ce, en utilisant le protocole Remote Display Protocol.
L’utilisateur peut donc utiliser l’application comme si elle était installé en locale sur sa
machine, et chaque action qu’il effectue est transmise au serveur qui la traite et rafraichit
l’interface de l’application.
• Les administrateurs du parc informatique installent les applications une seule fois.
• Les mises à jour sont appliquées à une seule application et ne sont donc pas
compliquées.
• La gestion des droits utilisateur est centralisée.
• Isoler l’application distante des applications locales, ce qui permet d’éviter les
incompatibilités.
• Les applications ne sont pas accessibles uniquement par un périphérique ou par un
seul système d’exploitation.
4
comme si l’application est installée localement. Tout ce qui est nécessaire au
fonctionnement de l’application est transféré à la demande depuis le serveur vers la
machine hôte, une fois l’application fermée, les fichiers sont supprimés. On peut
changer ce comportement si on souhaite garder les fichiers en local et d’éviter de les
« streamer » à chaque nouvelle utilisation.
• Le mode en pixel : l’application ne s’exécute pas localement et ne consomme pas les
ressources locales de la machine hôte, le serveur délivrent les pixels de l’application
via un canal vers la machine hôte, et c’est ainsi que l’utilisation est effectuée.
De la même manière que la virtualisation des applications permet l’utilisation des applications
sans les avoir installées auparavant sur les machines hôtes, la virtualisation des postes de
travail permet d’utiliser tout un poste de travail (Système d’exploitation et application
nécessaires).
Les machines clientes sont utilisées comme une fenêtre d’accès distant à un poste de travail
hébergé dans un serveur de virtualisation.
Virtualisation de serveurs
Les serveurs sont des ordinateurs conçus pour traiter un volume élevé de tâches spécifiques
afin de permettre aux autres ordinateurs d'effectuer diverses autres tâches. La virtualisation
d'un serveur permet d'optimiser l'exécution de ces fonctions spécifiques et implique son
partitionnement, de sorte que les composants puissent être utilisés pour exécuter différentes
fonctions.
5
Virtualisation des machines (ou de systèmes d’exploitation)
• Réduction des coûts de matériel, étant donné que les ordinateurs ne nécessitent pas un
nombre élevé de fonctionnalités prêtes à l'emploi
• Renforcement de la sécurité grâce à la possibilité de surveiller et d'isoler les instances
virtuelles
• Réduction du temps consacré aux services informatiques, tels que les mises à jour de
logiciel.
La virtualisation des fonctions réseau sépare les fonctions clés d'un réseau (telles que les
services d'annuaire, le partage de fichiers et la configuration des adresses IP) afin de les
répartir entre les différents environnements. Lorsque les fonctions logicielles sont
indépendantes des machines physiques sur lesquelles elles étaient hébergées, il est possible de
regrouper des fonctions spécifiques dans un nouveau réseau et de les assigner à un
environnement. La virtualisation des réseaux réduit le nombre de composants physiques
nécessaires à la création de plusieurs réseaux indépendants, tels que les commutateurs, les
routeurs, les serveurs, les câbles et les hubs. Elle est particulièrement répandue dans le secteur
des télécommunications.
6
c. Les avantages
2. Architecture de la virtualisation
L’hyperviseur de type 1 est un système qui s’installe directement sur la couche matérielle du
serveur. Ces systèmes sont faits pour être très légers, de manière à se « concentrer » sur la
gestion des systèmes d’exploitation invités c'est-à-dire ceux utilisés par les machines
virtuelles qu’ils contiennent. Ceci permet de libérer le plus de ressources possible pour les
machines virtuelles.
• Xen server,
• Oracle VM,
• Microsoft Hyper-V,
• VMware ESXi,
• Proxmox.
7
d. Architecture invitée (Hyperviseur de type 2)
• VMware Player,
• VMware Workstation,
• VirtualPC et
• VirtualBox.
Infrastructure hyperconvergée (HCI) qui intègre calcul, stockage et réseau dans une même
plate-forme.
3. Methodes de virtualisation
a. Virtualisation complète
Les hyperviseurs de type 2 utilisent cette méthode. Cette méthode permet d’exécuter tout OS
(invité) sans modifier l’OS de l’hôte. Les hyperviseurs se comportent comme des émulateurs
du matériel. Des logiciels simulent donc les pilotes (drivers) des différents périphériques
(cartes réseau, disque SATA, processeur…).
Les systèmes invités, les VM, ne dialoguent jamais directement avec le matériel réel mais
avec l’émulateur. On peut même dire que les VMs ne savent pas qu’elles sont virtualisées.
Il est important de préciser que tous les OS ne sont pas vraiment utilisables avec cette
technique. Mais les Linux ou BSD ainsi que Windows fonctionnent en virtualisation. Les
produits de virtualisation complète sont les plus connus du grand public :
• VMware Player
• VirtualBox (Oracle)
8
• VirtualPC (Microsoft)
• QEMU
b. Virtualisation partielle
Utilisée par les hyperviseurs de type 1. L’OS invité a parfaitement conscience qu’il est
virtualisé. La différence avec la virtualisation complète permet alors d’optimiser le système
pour la virtualisation. Ceci implique de pouvoir modifier le noyau, ce qui ne pose pas
véritablement de problème avec les systèmes Linux ou BSD du fait de l’orientation open
source, mais qui n’est pas envisageable avec les OS de type Windows.
• KVM
• XEN, XenServer
• VMware ESX
• Hyper-V (Microsoft)
a. Le stockage
Le stockage des VMs sur le disque de l’hôte peut se faire de différents modes :
C’est la méthode la plus courante et aussi la plus simple à configurer. Le disque dur de la VM
est contenu dans un simple fichier disque. La taille de ce fichier définit la dimension du
disque dur de la VM. Il est possible d’utiliser deux types de fichiers :
Stockage Managé
Cette fonctionnalité est bien connue des administrateurs Linux. LVM permet la modification
d’un système de fichiers de manière dynamique, à chaud et sans perte. Appliqué au stockage
des VM, il permet l’agrandissement du disque dur de manière souple.
Stockage partagé
Mettre en place un stockage partagé peut être simple. Le protocole NFS (Network File
System) utilisé sous Unix depuis sa création est une solution.
9
4.a.1 Stockage adapté
Le stockage des VMs sur le disque de l’hôte peut se faire de différents modes … Le protocole
NFS utilisé sous Unix depuis sa création est une solution.
Le SAN est un réseau spécialisé, distinct du réseau local, qui permet aux serveurs d’accéder à
des volumes de stockage au niveau bloc.
Ainsi, le système d’exploitation perçoit le disque distant comme un disque local.
Cette architecture est conçue pour les applications critiques exigeant de hautes
performances, comme les bases de données ou les infrastructures de virtualisation.
Caractéristiques principales :
• Architecture :
o Composée de serveurs (hôtes), de baies de stockage et de commutateurs
dédiés.
o Utilisation de cartes HBA (Host Bus Adapter) pour connecter les serveurs au
réseau SAN.
• Technologies utilisées :
o Fibre Channel (FC) : standard ANSI T11, débits de 2 à 32 Gbps, latence très
faible.
o iSCSI (Internet SCSI) : encapsulation des commandes SCSI dans des paquets
TCP/IP, permettant l’utilisation d’un réseau Ethernet classique.
o FCoE (Fibre Channel over Ethernet) : remplace les couches physiques FC
par Ethernet, unifiant réseau et stockage.
• Fonctionnalités avancées :
o Zoning : isolation logique des serveurs et des volumes (LUNs).
o Multipathing : chemins d’accès multiples assurant la tolérance aux pannes.
o VSAN (Virtual SAN) : partition logique d’un SAN physique, comparable à un
VLAN.
Avantages :
Inconvénients :
10
Cas d’usage :
Le NAS repose sur un principe plus simple : il fournit un accès au niveau fichier via un
réseau IP classique.
Le système de fichiers est géré directement par le serveur NAS, ce qui permet aux clients d’y
accéder comme à un dossier partagé.
Cette approche est idéale pour le partage de fichiers, la sauvegarde et la collaboration
multi-utilisateur.
Caractéristiques principales :
• Protocoles standards :
o NFS (Network File System) pour Unix/Linux.
o SMB/CIFS (Server Message Block) pour Windows.
o pNFS (Parallel NFS) pour l’accès parallèle et la montée en performances.
• Modes de déploiement :
o Scale-up : ajout de disques dans un serveur NAS unique.
o Scale-out : mise en cluster de plusieurs nœuds NAS (NetApp ONTAP, Dell
EMC Isilon, QNAP Enterprise).
Avantages :
Inconvénients :
Cas d’usage :
11
Critère SAN (Storage Area Network) NAS (Network Attached Storage)
Gestion Console SAN centralisée Interface NAS ou GUI web
4. Tendances actuelles
Le stockage défini par logiciel constitue une évolution majeure dans la virtualisation des
ressources de stockage. Il s’agit d’une approche où la logique de gestion et de contrôle du
stockage est dissociée du matériel physique sous-jacent.
Autrement dit, la valeur ne réside plus dans la baie de disques elle-même, mais dans le
logiciel capable d’orchestrer, de virtualiser et d’automatiser l’utilisation de l’ensemble des
ressources disponibles.
1. Principe général
Dans un système traditionnel, chaque baie ou serveur de stockage dispose de son propre
contrôleur et d’un ensemble de fonctions (RAID, cache, réplication, etc.).
Cette architecture rigide complique la gestion et limite l’évolutivité.
Le SDS introduit une couche logicielle unique, indépendante du matériel, qui regroupe tous
les disques — HDD, SSD ou NVMe — dans un pool logique de stockage.
2. Architecture fonctionnelle
i. Couche physique :
12
o Disques locaux des serveurs (HDD, SSD, NVMe).
o Réseau d’interconnexion Ethernet / InfiniBand.
ii. Couche logicielle de virtualisation du stockage :
o Assure la création de volumes logiques, la réplication, la tolérance aux pannes
et la gestion de la QoS.
o Implémente des mécanismes de thin provisioning, caching et data
deduplication.
iii. Couche d’orchestration et d’administration :
o Interface centrale pour définir les politiques (policy-based management).
o API REST pour intégration dans les orchestrateurs de cloud (OpenStack
Cinder, Kubernetes CSI, etc.).
5. Limites et précautions
13
4.a.1.c) Stockage distribué et hyperconvergence
1. Le stockage distribué
Le stockage distribué consiste à répartir les données sur plusieurs serveurs (ou nœuds),
interconnectés par un réseau rapide. Chaque nœud dispose de ses propres disques, qui sont
agrégés logiquement dans un pool de stockage global. Les données sont fragmentées, répliquées
et réparties entre plusieurs machines pour garantir la tolérance aux pannes et améliorer la
performance globale.
Principes de fonctionnement :
Exemples de solutions :
Limites :
14
2. L’infrastructure hyperconvergée (HCI – Hyper-Converged Infrastructure)
Caractéristiques clés :
4. Avantages de l’hyperconvergence
15
• Automatisation et résilience : intégration native du SDS, du clustering et de la
sauvegarde.
5. Limites et perspectives
Le choix des interfaces de stockage joue un rôle essentiel dans les performances, la fiabilité et
la compatibilité des infrastructures virtualisées. Ces interfaces définissent la manière dont les
disques communiquent avec le contrôleur ou le processeur, et elles conditionnent directement
les débits, la latence et la topologie de stockage. Les principales technologies rencontrées dans
les environnements virtualisés sont ATA (PATA), SATA, SAS, et NVMe, chacune
représentant une génération d’évolution vers davantage de rapidité, de flexibilité et
d’intégration au cloud.
L’interface ATA, souvent appelée PATA (Parallel ATA), est apparue dans les années 1980 et
a dominé le marché pendant près de deux décennies. Elle repose sur une transmission parallèle
des données à travers des nappes à 40 ou 80 fils. Le contrôleur est intégré directement au disque,
d’où l’appellation IDE (Integrated Drive Electronics).
Caractéristiques techniques :
• Débits maximums : 16 à 133 Mo/s selon la version (ATA, ATA-2, Ultra ATA).
• Connectique interne parallèle, limitée à 2 périphériques par canal (master/slave).
• Longueur de câble maximale : 40 cm, ce qui restreint la flexibilité d’installation.
• Extension ATAPI (ATA Packet Interface) : adaptation de PATA à d’autres
périphériques (CD/DVD-ROM, bandes magnétiques).
Limites :
Aujourd’hui, le PATA est considéré comme obsolète et remplacé par des interfaces série plus
rapides et plus fiables.
16
2. SATA – Serial ATA
Caractéristiques techniques :
• Débits théoriques :
• SATA I : 1,5 Gbps (150 Mo/s)
• SATA II : 3 Gbps (300 Mo/s)
• SATA III : 6 Gbps (600 Mo/s)
• Connectique fine et flexible (câbles de 1 mètre maximum).
• Support du hot-plug, facilitant le remplacement à chaud des disques.
• Compatibilité descendante avec les versions antérieures.
Extensions notables :
• eSATA (external SATA) : pour connecter des disques externes haute vitesse.
• mSATA et M.2 SATA : formats miniaturisés pour ordinateurs portables et serveurs
compacts.
Avantages :
Limites :
Le SATA reste aujourd’hui pertinent pour le stockage de masse et les environnements à faible
coût, mais tend à être remplacé dans les datacenters par le SAS ou le NVMe.
Le SAS (Serial Attached SCSI) est une évolution professionnelle du SCSI parallèle.
Il a été conçu pour offrir des performances élevées, une meilleure fiabilité et une compatibilité
avec les environnements serveurs.
Caractéristiques techniques :
Avantages :
17
Inconvénients :
Le SAS est très présent dans les baies de stockage SAN, les serveurs virtualisés et les
infrastructures critiques où la fiabilité prime sur le coût.
Caractéristiques techniques :
Avantages :
• Performances extrêmes pour les applications temps réel, bases de données et IA.
• Très faible latence et forte densité d’E/S simultanées.
• Idéal pour les clusters hyperconvergés et les clouds privés.
Inconvénients :
18
• Infrastructures virtualisées professionnelles : SAS pour sa robustesse et ses
performances soutenues.
• Cloud privé, HPC ou IA : NVMe pour sa rapidité et son parallélisme.
• Systèmes anciens ou embarqués : PATA uniquement à des fins de rétrocompatibilité.
7. Tendances actuelles
L’évolution du stockage se dirige vers la fusion entre NVMe et le SDS (Software Defined
Storage). Les protocoles NVMe-over-Fabrics (NVMe-oF) permettent déjà d’exploiter des SSD
distants comme s’ils étaient locaux, tout en conservant des performances quasi équivalentes.
De plus, la désagrégation du stockage (disaggregation storage) et l’intégration dans les
architectures cloud-native ouvrent la voie à des systèmes où chaque application peut
consommer dynamiquement du stockage haute performance via des API.
La virtualisation du stockage ne se limite pas à l’agrégation physique des disques : elle repose
également sur des mécanismes logiques capables de transformer, répartir et optimiser
l’utilisation des ressources disponibles. Deux techniques essentielles contribuent à cette
abstraction : les niveaux RAID (Redundant Array of Independent Disks) et le Thin
Provisioning.
Ces méthodes, bien que différentes, partagent le même objectif : améliorer la performance, la
tolérance aux pannes et l’efficacité du stockage dans les environnements virtualisés et cloud.
1. Le concept de RAID
Le terme RAID (Redundant Array of Independent Disks) désigne une technique consistant à
combiner plusieurs disques physiques en une seule unité logique. L’idée est d’améliorer la
performance, la fiabilité et parfois la capacité globale d’un système de stockage. Inventé à
l’Université de Berkeley par Patterson, Gibson et Katz, le RAID constitue la base de nombreux
systèmes de virtualisation du stockage modernes.
Les données sont réparties entre les disques selon une logique spécifique : répartition (striping),
duplication (mirroring) ou parité (calcul de redondance). Chaque combinaison définit un niveau
RAID offrant un compromis particulier entre vitesse, tolérance aux pannes et coût.
19
Niveau Tolérance
Principe Performances Utilisation typique
RAID aux pannes
Deux pannes Lecture élevée, Baies de grande
RAID 6 Striping + double parité
simultanées écriture modérée capacité
Panne d’un
RAID Combinaison mirroring Virtualisation, bases
disque par Très élevées
10 (1+0) + striping transactionnelles
paire
Remarques techniques :
• Le RAID 0 n’apporte aucune sécurité : la perte d’un seul disque provoque la perte de
toutes les données.
• Le RAID 1 assure une haute disponibilité mais divise la capacité utile par deux.
20
• Le RAID 10, dit “miroir de stripes”, combine les avantages du RAID 0 et du RAID 1,
au prix d’un coût en capacité.
Exemples concrets :
• Les hyperviseurs comme VMware ESXi ou Proxmox VE reposent souvent sur des
volumes RAID 1 ou RAID 10 pour le stockage des VMs.
• Les serveurs NAS professionnels (Synology, QNAP) utilisent le RAID 5/6 pour garantir
la disponibilité tout en maximisant la capacité.
Les combinaisons de niveaux RAID (ou RAID imbriqués) permettent d’adapter la performance
et la redondance selon les besoins.
Certaines baies de stockage modernes (Dell EMC, HPE 3PAR, NetApp) utilisent des
algorithmes RAID adaptatifs, capables de rééquilibrer dynamiquement les blocs en cas de
défaillance.
4. Le Thin Provisioning
Le Thin Provisioning est une autre forme de virtualisation du stockage, orientée optimisation
de capacité plutôt que redondance. Au lieu d’allouer la totalité de l’espace disque dès la création
d’un volume, le système attribue seulement les blocs réellement utilisés. Cette méthode repose
sur le principe du provisionnement à la demande (on-demand allocation).
Principe :
21
• Cette technique est rendue possible par une couche logicielle de virtualisation du
stockage (SDS ou hyperviseur).
Avantages :
Inconvénients :
• Si l’espace physique sous-jacent est saturé, le système peut rencontrer des erreurs
d’écriture.
• La supervision doit être stricte (monitoring de l’espace libre et alertes automatiques).
Applications courantes :
Ces mécanismes complètent les niveaux RAID, qui eux opèrent localement, alors que la
réplication s’applique entre sites ou clusters.
6. Synthèse comparative
Objectif Tolérance Gain de Type
Mécanisme Performance
principal aux pannes capacité d’environnement
Répartition
RAID 0 Non Oui Très élevée Temporaire / test
(striping)
Duplication
RAID 1 Oui Non Moyenne Critique / OS
(mirroring)
Parité Bon
RAID 5 / 6 Oui Oui Serveurs / NAS
distribuée compromis
Miroir de Virtualisation /
RAID 10 Oui Non Excellente
stripes BDD
22
Objectif Tolérance Gain de Type
Mécanisme Performance
principal aux pannes capacité d’environnement
Thin Allocation
Si mal géré Oui Moyenne Cloud / SDS
Provisioning dynamique
Réplication Cohérence Latence
Oui Non HA / Datacenter
synchrone parfaite élevée
Réplication Sauvegarde
Décalage Non Rapide DR / Multi-site
asynchrone distante
7. Tendances actuelles
Les solutions modernes combinent ces mécanismes dans des environnements définis par
logiciel (SDS) ou hyperconvergés (HCI). Les technologies comme Ceph, vSAN ou Azure Stack
HCI gèrent automatiquement les niveaux de redondance et les politiques de provisionnement,
en ajustant dynamiquement la réplication selon la charge et la topologie réseau.
De plus, les architectures NVMe-over-Fabrics permettent désormais d’appliquer ces logiques
de RAID et de thin provisioning à des volumes distants, tout en conservant une latence quasi
locale.
1. Performance et réactivité
Les solutions modernes de stockage, qu’il s’agisse de SAN haut débit, de SAS/NVMe, ou de
pools SDS, offrent des performances adaptées aux charges de travail intensives des
environnements virtualisés.
• Accès parallèle : les systèmes distribués et les architectures RAID exploitent plusieurs
disques simultanément, améliorant le débit d’E/S.
• Technologies NVMe et caches SSD : réduisent la latence à quelques microsecondes,
garantissant une exécution fluide des machines virtuelles.
• Optimisation logicielle : les moteurs SDS (Ceph, vSAN, S2D) allouent
dynamiquement les ressources selon les priorités des applications.
Ces avancées permettent d’atteindre des performances équivalentes, voire supérieures, à celles
du matériel propriétaire des générations précédentes.
23
2. Disponibilité et tolérance aux pannes
La disponibilité des données constitue un impératif absolu pour les datacenters et les
plateformes cloud. Les mécanismes de redondance (RAID 1, 5, 6, 10), de réplication synchrone
ou de clustering SDS assurent une continuité de service même en cas de défaillance matérielle.
3. Flexibilité et évolutivité
L’un des apports majeurs du stockage adapté est la capacité d’évolution sans interruption.
Les architectures distribuées et hyperconvergées permettent d’ajouter des disques, des nœuds
ou des volumes logiques à la volée, sans reconfigurer l’ensemble du système.
Exemples de flexibilité :
Cette élasticité répond parfaitement aux besoins des environnements cloud privés et hybrides,
où la charge peut varier en temps réel.
L’adoption de solutions de stockage adaptées permet une réduction significative du coût total
de possession (TCO).
24
• Surveiller les performances, la santé et la capacité en temps réel.
• Définir des politiques automatiques de réplication et de sauvegarde.
• Orchestrer le stockage en cohérence avec les besoins applicatifs.
b. Le réseau
Il s’agit d’un autre point important à considérer lors de la création d’une VM. Il existe
plusieurs possibilités :
• Non associé
• NAT
• Routage
• Bridge ou pont
• Réseau privé (interne)
• Hôte seul (Host-only)
• Réseau NAT (NAT Network)
25
En mode « Non associé », l’interface réseau de la VM n’est reliée à aucun commutateur virtuel
ou réseau défini. La VM ne se voit attribuer aucune adresse IP et demeure ainsi totalement
isolée. Cette configuration est utilisée dans des cas précis où aucune connectivité n’est requise,
ou dans des contextes de sécurité renforcée, afin d’éliminer tout vecteur de communication
externe.
Le principe du NAT (Network Address Translation) est de faire correspondre le plus souvent
des adresses internes non routables (192.168…) vers une ou des adresses routables. Son mode
de fonctionnement est quasiment identique à celui du routage, sauf que les IPs des VMs ne sont
pas accessibles de l’extérieur. Le NAT est très utilisé pour partager une connexion Internet pour
laquelle il n’existe qu’une adresse IP publique. Le NAT permet de faire un réseau isolé pouvant
communiquer avec l’extérieur (principe de passerelle).
Le mode NAT est ce qui est par défaut configuré sue la plupart des hyperviseurs. C’est aussi le
plus simple à gérer au niveau réseau car la configuration de l’hôte est nulle.
26
Routeur
Le principal atout du mode routeur pour les VM est que celles-ci, bien qu’étant dans un réseau
différent de l’hôte, restent accessibles de l’extérieur. Le schéma est quasi identique au mode
NAT sauf au niveau de la configuration.
Un bridge (ou pont) est un équipement matériel qui permet d’interconnecter deux réseaux
physiques. Le pont travaille au niveau 2 du modèle OSI (un routeur travaille au niveau 3). Le
transfert des paquets est effectué suivant l’adresse Ethernet (adresse MAC) et non avec
l’adresse IP. Un pont peut être vu comme une sorte de hub ou de switch virtuel. La
conséquence directe de la configuration en bridge est que les IP des VM et de l’hôte sont dans
le même sous-réseau.
27
Le mode bridge est très souvent utilisé afin que les VM soient vues par les clients comme des
serveurs physiques.
Ce mode crée un réseau privé strictement réservé aux VMs connectées à ce réseau interne.
Les VMs peuvent communiquer entre elles, mais elles n’ont pas accès à l’hôte ni à Internet.
Cela permet de créer des environnements de test totalement isolés du reste de l’infrastructure.
Le mode Hôte seul établit un réseau virtuel privé restreint à l’hôte et aux VMs qui y sont
attachées. Chaque entité reçoit une adresse IP issue d’un sous-réseau dédié, généralement
administré par un service DHCP interne. Ce mode se révèle pertinent pour des scénarios
d’expérimentation nécessitant une isolation du réseau externe, tout en maintenant la capacité
d’interaction entre l’hôte et ses VMs.
28
Réseau NAT (NAT Network)
La technologie de virtualisation est simple, peu coûteuse et efficace. Mais parce que c'est si
facile, cela peut devenir un peu incontrôlable.
29
Dans le monde des serveurs physiques, il existe des contraintes intégrées pour lutter contre
l'étalement (budget pour acheter un nouveau serveur, délai de livraison, place dans le
Datacenter, alimentation, refroidissement, connexion). En fin de compte, nos centres de
données ne disposent que d’une capacité limitée en termes d’espace, d’alimentation, de
refroidissement et d’accès réseau.
Dans le monde virtuel, besoin d'un nouveau serveur ? Il suffit de cloner l’un de vos serveurs
existants sans se soucier des problèmes d’infrastructure.
b. VMs zoombie
Le VM Sprawl peut conduire à la création de différentes VMs, de test, de recette, etc. Sans
une procédure de gestion des VMs, ces machines peuvent être oubliées dans les serveurs
physique et deviennent des VMs zoombies. Une VM zoombie est une VM qui consomme des
ressources, mais personne ne sait vraiment pourquoi. On ne peut pas la supprimer car on ne
sait pas pourquoi elle a été créée, surtout si celui qui l’a créée n’est plus là.
c. VM Orpheline
En réalité, une VM orpheline est une VM dont les fichiers existent encore, même la machine
virtuelle à laquelle ils étaient attachés a été supprimée. C’est un espace perdu sans doute, mais
il peut être un peu difficile à repérer.
d. Solution
Des outils de gestion des VMs existent. Toutes les principales applications de gestion de la
virtualisation aident à identifier et à gérer l’étalement des machines virtuelles. Choisissez-en
un qui soit facile à utiliser, optimise vos ressources et fournit une vue globale des éléments de
calcul, de stockage, de réseau et d’applications de votre centre de données virtuel. Quelques
uns de ces outils sont :
1. Introduction
Docker permet la mise en œuvre de conteneurs s’exécutant en isolation, via une API
(interface utilisateur). Construit sur des capacités du noyau Linux (surtout les cgroups et
espaces de nommage), un conteneur Docker, contrairement machines virtuelles
traditionnelles, ne requiert aucun système d’exploitation séparé et n’en fournit aucun. Il
s’appuie plutôt sur les fonctionnalités du noyau et utilise l’isolation de ressources (comme le
processeur, la mémoire, les entrées et sorties et les connexions réseau) ainsi que des espaces
de noms séparés pour isoler le système d’exploitation tel que vu par l’application. Docker
accède aux capacités de virtualisation du noyau Linux, soit directement à travers la
bibliothèque runc (disponible depuis Docker 0.9), soit indirectement via libcrt, LXC (Linux
Containers) ou systemd-nspawn. Le systemd-nspawn est comme la commande chroot sur
30
Linux mais en plus puissante. Il peut être utilisé pour rentrer une commande ou un OS dans
un espace léger tel un conteneur. Il peut complètement virtualiser la hiérarchie des fichiers
systèmes, comme l’arborescence des processus.)
Utiliser Docker pour créer et gérer des conteneurs peut simplifier la mise en œuvre de
systèmes distribués en permettant à de multiples applications, tâches de fond et autres
processus de s’exécuter de façon autonome sur une seule machine physique ou à travers de
multiples machines isolées. Ceci permet de déployer des nœuds en tant que ressources sur
besoin, fournissant ainsi une plateforme de déploiement de style PaaS.
2. Définitions importantes
a. Image
Une image Docker représente le système de fichiers sans les processus. Cette image contient
ce que vous avez décidé d’installer (tel qu’une base de donnée (MySQL), Java, PHP, un
script, etc…) mais en étant inactif. Elles sont créées à partir de fichiers de configuration
« Dockerfiles ». Dockerfiles décrie exactement ce qui doit être installé sur le système, le
conteneur est l’exécution d’une image.
b. Alpine Linux
Alpine Linux est une très simple distribution Linux et d’une faible taille (5MB seulement, un
conteneur de 8MB est requis pour l’installation et 130MB de stockage sur votre disque). Cette
distribution est fréquemment utilisée par les utilisateurs de Docker.
c. DockerFile
C’est votre fichier source qui donne une image une fois qu’il est compilé. Il peut être inclus
dans un autre Dockerfile et être à la base de plusieurs images différentes. Vous avez le choix
d’utiliser des images officielles ou des images modifiées présentes sur le Docker Hub
([Link] ) ou, si vous le souhaitez, de personnaliser vos propres images en
écrivant un Dockerfile.
d. Conteneur
Comme dit précédemment, un conteneur Docker n’a besoin d’aucun système d’exploitation
séparé. Il se sert de fonctionnalités du noyau du système d’exploitation. Ainsi il utilise
l’isolation de ressources. (CPU, mémoire, I/O, connexions réseau etc…).
e. Compose
C’est un outil qui permet de définir et exécuter des applications multi-conteneurs. Les
conteneurs sont idéaux pour des applications pour de simple micro services. C’est pour cela
qu’il est idéal de faire une interconnexion entre plusieurs conteneurs. L’exemple le plus
parlant et celui d’un serveur web contenant les service php, mysql et nginx dans des
containers différents.
f. Volume
C’est le mécanisme le plus adapté pour la persistance des données qui sont générés et utilisées
par les conteneurs de Docker. Les volumes de Docker ont différents avantages tels qu’une
simplicité de sauvegarde ou de migration ou encore leurs gestions facilités grâce aux outils et
commandes Docker.
31
g. Swarm Mode
Le mode Swarm indique à Docker que vous exécuterez de nombreux containeurs Docker et
que vous souhaitez coordonner les opérations entre eux. Le mode Essaim combine la
possibilité de définir non seulement l’architecture de l’application, comme Composer, mais
aussi de définir et de maintenir des niveaux de haute disponibilité, la mise à l’échelle,
l’équilibrage de charge, etc. Avec toutes ces fonctionnalités, le mode Swarm est plus souvent
utilisé dans les environnements de production que Compose.
Après avoir découvert ce qu’est DOCKER, on peut se demander quelle est la différence entre
les conteneurs et les machines virtuelles, car à première vue, cela se ressemble fortement. Les
machines virtuelles et les conteneurs diffèrent de plusieurs façons. La principale différence est
liée à l’architecture logiciel de ceux-ci. La machine virtuelle, elle est composée d’un OS host
sur lequel est exécuter un hyperviseur comme Hyper-V sous Windows ou KVM sous Linux.
L’hyperviseur lui va virtualiser le « Guest OS » ou le système d’exploitation invité tout en
virtualisant également la matériel et périphérique présent sur une station de travail classique
comme par exemple la RAM, le CPU…
Le container lui fonctionne toujours sur un OS host mais utilise le moteur Docker (Docker
Engine) pour interagir et utilisé les fonctionnalités du noyau linux, les librairie et bibliothèque
sont partager et donc utilisé par les différents containers hébergeant les applications.
Les containers sont donc plus polyvalents et performants que des VMs. Les containers Docker
peuvent démarrer en quelques secondes et s’arrêter aussi rapidement.
4. Avantages de la conteneurisation
Les conteneurs sont particulièrement utiles pour développer, déployer et tester des
applications distribués modernes et micro-services pouvant fonctionner dans des
environnements d'exécution isolés sur les mêmes machines hôtes. Avec la conteneurisation,
les développeurs n'ont pas besoin d'écrire du code dans différentes VMs. Les conflits des
bibliothèques ou des composants ne se produisent pas lors de l'exécution et le conteneur
32
d'applications peut être déplacé efficacement entre les instances de cloud ou de centre de
données.
La différence architecturale offre les propositions de valeur clés suivantes pour le personnel
informatique et les entreprises :
• L’intégration continue, le déploiement et les tests : dans les organisations dirigées par
DevOps, les organisations peuvent utiliser des conteneurs pour faciliter les processus
du pipeline CI/CD. Les conteneurs fonctionnent comme un environnement
d’infrastructure cohérent, de sorte que les développeurs n’ont pas besoin de tâches de
configuration complexes pour chaque sprint, les charges de travail migrant entre les
ressources physiques.
• Optimisation des coûts : les conteneurs optimisent l'utilisation des ressources dans
leurs propres environnements virtualisés isolés. Cela permet aux organisations de
planifier avec précision la capacité et la consommation de l'infrastructure.
33
III. REFERENCES
• [Link]
• [Link]
• [Link]
VM-Sprawl
• [Link]
management-tools
• [Link]
• [Link]
• [Link]
34