Aperçu des concepts de virtualisation

Que serait le Cloud sans virtualisation ? La mise à disposition de ressources informatiques virtuelles et l’abstraction associée du périphérique informatique ont ouvert la voie à l’ère des Cloud. Toutes les techniques utilisées dans le Cloud sont basées sur la virtualisation des ressources informatiques telles que le matériel, les logiciels, le stockage ou les composants réseau. D’un point de vue technique, ces formes de virtualisation diffèrent parfois considérablement. Nous montrons les principaux domaines d’application des différents concepts de virtualisation et comparons leurs avantages et inconvénients.

Qu’est-ce que la virtualisation ?

La virtualisation est une abstraction des ressources informatiques physiques. Les composants matériels et logiciels peuvent être abstraits. Un composant informatique créé dans le cadre de la virtualisation est appelé composant virtuel ou logique et peut être utilisé de la même manière que son équivalent physique.

L’avantage central de la virtualisation est la couche d’abstraction entre la ressource physique et l’image virtuelle. C’est la base de divers services Cloud, qui prennent de plus en plus d’importance dans la vie quotidienne des entreprises. La virtualisation doit être distinguée des concepts (en partie très similaires) de simulation et d’émulation.

Note

La virtualisation est l’abstraction des ressources informatiques physiques telles que le matériel, les logiciels, le stockage et les composants réseau. L’objectif est de mettre ces ressources à disposition de manière virtuelle et de les distribuer à différents clients de manière flexible et suivant la demande. La méthode vise à améliorer l’utilisation des ressources informatiques.

Virtualisation : ni simulation ni émulation

En abordant le sujet de la virtualisation, on tombe inévitablement sur les termes simulation et émulation, qui sont souvent utilisés comme synonymes, mais qui pourtant diffèrent techniquement à la fois l’un de l’autre et du concept de virtualisation.

  • Simulation : cela se réfère à la reproduction complète d’un système à l’aide d’un logiciel. « Complète » car non seulement les fonctions sont imitées en interaction avec d’autres systèmes, mais tous les composants du système et leur logique interne sont également simulés. Les simulateurs sont utilisés pour compiler des programmes qui ont été développés pour un certain système à des fins d’analyse sur un autre système. La simulation permet, par exemple, d’exécuter des logiciels pour des mainframes obsolètes sur des plateformes informatiques modernes. Contrairement à l’émulation, la simulation n’est pas destinée à une utilisation pratique. Le simulateur de vol en est un bon exemple. Cela simule un vol, mais ne permet pas d’amener le pilote à destination. Un simulateur particulièrement connu est l’iPhone Simulator en XCode. Il est utilisé, par exemple, pour tester la conception de sites Web mobiles sur le bureau.
  • Emulation : alors que la simulation vise à répliquer les systèmes, l’émulation fournit les fonctions des composants matériels ou logiciels, et non leur logique interne. Le but de l’émulation est d’obtenir les mêmes résultats avec le système simulé qu’avec son pendant réel. Contrairement à un simulateur, un émulateur peut donc remplacer complètement le système simulé. Un simulateur de vol qui emmène effectivement le pilote à la destination désirée serait donc un émulateur de vol. Un projet logiciel important qui correspond à ce concept est l’émulateur Android d’Android Studio.

Les simulateurs et émulateurs sont utilisés en pratique dans trois scénarios :

  • Un environnement matériel (hardware) est répliqué pour qu’un système d’exploitation puisse fonctionner alors qu’il a été développé pour une plateforme processeur différente.
  • Un système d’exploitation est répliqué pour permettre l’exécution d’applications qui ont en fait été écrites pour d’autres systèmes.
  • Un environnement matériel pour des logiciels obsolètes doit être répliqué car les composants d’origine ne sont plus disponibles.

Les solutions logicielles qui ne fournissent qu’une couche de compatibilité pour combler les problèmes entre les différents composants matériels et logiciels doivent être distinguées des émulateurs et simulateurs. Ce concept ne simule pas l’ensemble du système, mais seulement une partie, par exemple, une interface. Des exemples connus sont Wine (acronyme pour Wine Is Not an Emulator) et Cygwin.

Remarque

Wine établit une couche de compatibilité sur les systèmes d’exploitation compatibles POSIX (Linux, Mac, Solaris ou BSD) qui permet d’exécuter des programmes Windows. Le logiciel est basé sur une reconstruction du code source Windows propriétaire et non public. La reconstruction n’était pas basée sur le démantèlement du logiciel protégé par droit d’auteur, mais sur la rétro-ingénierie dans le cadre des tests de boîte noire. Techniquement, Wine ne reproduit pas la logique interne de l’ensemble du système d’exploitation Windows, mais uniquement l’API (Application Programming Interface) Windows. Les appels système du logiciel Windows sont acceptés par Wine, convertis sans délai en appels POSIX et transmis au système sous-jacent.

Comment fonctionne la virtualisation ?

La virtualisation se rapproche de la simulation et l’émulation, mais elle a un but différent. Les simulateurs et les émulateurs mettent en œuvre à l’aide d’un logiciel un modèle de système informatique qui sert à surmonter les incompatibilités. L’objectif est d’exécuter des applications sur un système qui n’est en fait pas pris en charge par celui-ci. Cette approche présente deux inconvénients. L’émulation et la simulation sont tout d’abord complexes à développer. En outre, les deux approches entraînent inévitablement une perte de performance. Dans l’idéal, la virtualisation devrait être conçue de manière à nécessiter le moins de simulation ou d’émulation possible. En effet, les technologies devraient simplement établir une couche d’abstraction qui permet de fournir des ressources informatiques quel que soit leur fondement physique.

Prenons un exemple : si un utilisateur veut exécuter une ou plusieurs versions virtuelles de Windows 7 sur son ordinateur Windows 7 à des fins de test, il utilise donc un logiciel de virtualisation. Cependant, si le même utilisateur souhaite exécuter deux versions virtuelles d’Ubuntu sur le même ordinateur, il a besoin d’un logiciel de virtualisation capable de combler les incompatibilités entre le système Windows sous-jacent et le système Linux mis dessus par émulation.

De nombreuses solutions logicielles utilisées dans le cadre de la virtualisation contiennent des émulateurs. Dans la pratique, les deux concepts se recoupent donc souvent.

Les formes de virtualisation

Le terme « virtualisation » a été inventé dans les années 1960 et faisait initialement référence à la conception de machines virtuelles, un concept donc orienté hardware. Aujourd’hui dans le paysage informatique moderne, on trouve diverses formes de virtualisation qui se réfèrent à l’abstraction des ressources informatiques telles que les logiciels, la mémoire, les données ou les composants réseau. Une distinction est donc faite entre :

  • Virtualisation matérielle
  • Virtualisation logicielle
  • Virtualisation de la mémoire
  • Virtualisation des données
  • Virtualisation du réseau

La virtualisation matérielle

Le terme de virtualisation hardware ou matérielle désigne les technologies qui permettent de fournir des composants matériels à l’aide de logiciels, quelle que soit leur base physique. L’exemple classique d’une virtualisation matérielle est la machine virtuelle (abrégé VM en anglais).

Une VM est une machine virtuelle qui se comporte pour l’utilisateur final comme une machine physique, y compris avec un matériel et un système d’exploitation. Elle fonctionne sur un ou plusieurs systèmes physiques appelés hôtes. Avec la virtualisation matérielle, la couche d’abstraction entre la base physique et le système virtuel est créée par un hyperviseur.

Remarque

Un hyperviseur (aussi appelé Virtual Machine Monitor, soit VMM) est un logiciel qui permet à plusieurs systèmes invités de fonctionner sur un seul système hôte. Il existe deux types différents d’hyperviseurs. Il existe l’hyperviseur de type 1 qui est basé directement sur le matériel du système hôte et qui sont dits « natifs ». Les hyperviseurs de type 2, par contre, fonctionnent dans le système d’exploitation de l’hôte et utilisent les pilotes périphériques fournis par le système pour accéder au matériel. On parle d’hyperviseur « hosted ».

Les hyperviseurs gèrent les ressources matérielles fournies par le système hôte, telles que le CPU, la RAM, l’espace disque et les périphériques, et les répartissent entre plusieurs systèmes invités. Cela peut se faire techniquement par virtualisation complète ou par paravirtualisation.

  • Virtualisation complète : l’hyperviseur émule un environnement matériel complet sur chaque machine virtuelle. Chaque VM dispose donc de son propre contingent de ressources hardwares virtuelles donné par l’hyperviseur et peut exécuter des applications sur cette base. Le matériel physique du système hôte, en revanche, reste caché du système d’exploitation invité. Cette approche permet l’exploitation de systèmes invités non modifiés. Les solutions logicielles populaires pour la virtualisation complète sont Oracle VM VirtualBox, Parallels Workstation, VMware Workstation, Microsoft Hyper-V et Microsoft Virtual Server.
  • Paravirtualisation : alors que la virtualisation complète fournit un environnement matériel virtuel distinct pour chaque machine virtuelle, avec la paravirtualisation, l’hyperviseur met simplement à disposition une interface de programmation (API) qui permet aux systèmes d’exploitation invités d’accéder directement au matériel physique du système hôte. La paravirtualisation offre donc un avantage de performance par rapport à la virtualisation complète. Cependant, il faut pour cela au préalable que le noyau du système d’exploitation invité ait été porté sur l’API. Ainsi, seuls les systèmes invités modifiés peuvent être paravirtualisés. Les fournisseurs de systèmes propriétaires - tels que Microsoft Windows - n’autorisent généralement pas de telles modifications. Parmi les hyperviseurs qui permettent les paravirtualisations, on compte Xen et Oracle VM Server for SPARC. Le concept est également utilisé dans le système d’exploitation mainframe z/VM d’IBM.

Pour l’utilisateur final, la machine virtuelle ne se distingue pas d’une machine physique. La virtualisation matérielle est donc une question de choix lorsqu’il s’agit de fournir une variété de serveurs virtuels pour différents utilisateurs sur une plateforme informatique puissante - la base du modèle largement répandu d’hébergement mutualisé.

Note

Avec l’hébergement mutualisé un fournisseur d’hébergement exploite et maintient une machine virtuelle dans un centre de données optimisé et met à disposition de ses clients des ressources matérielles virtualisées en tant que systèmes invités fermés.

Un autre domaine d’application de la virtualisation matérielle est la consolidation des serveurs dans l’environnement de l’entreprise. La virtualisation est utilisée dans le but d’augmenter la charge du matériel serveur. Les composants matériels tels que les processeurs coûtent chers à l’achat. Pour éviter que des ressources CPU onéreuses ne restent inutilisées, les entreprises évitent les architectures informatiques pour lesquelles des machines informatiques séparées sont utilisées pour différentes applications serveur. À la place, différents serveurs sont exploités en tant que systèmes invités séparés sur la même plateforme matérielle. Cela présente trois avantages majeurs :

  • L’amélioration de l’utilisation des processeurs serveurs
  • Une distribution efficace des supports de stockage
  • Une consommation d’énergie réduite pour l’exploitation et le refroidissement

Cette approche est particulièrement efficace lorsque les serveurs consolidés fonctionnent avec des pics de performance échelonnés. Si, en revanche, le matériel du système hôte est utilisé simultanément par tous les systèmes invités, il faut s’assurer que des ressources suffisantes sont disponibles pour toutes les charges de travail. Sinon, le risque est qu’une application qui consomme de nombreuses ressources d’une machine virtuelle puisse affecter les performances d’autres applications dans d’autres machines virtuelles sur le même système hôte.

Remarque

Dans un contexte d’entreprise, la consolidation des serveurs est un domaine d’application central de la virtualisation matérielle. Ainsi, on parle souvent de virtualisation des serveurs pour l’exploitation de machines virtuelles.

La virtualisation matérielle est considérée comme un concept de virtualisation relativement sûr. Chaque système invité fonctionne de manière isolée dans un environnement matériel virtuel. Si l’un des systèmes invités est infiltré par un hacker ou est affecté par un malware, cela n’a en principe aucun effet sur les autres systèmes invités du même système hôte. Une exception réside dans les attaques où les hackers exploitent les vulnérabilités du logiciel de l’hyperviseur pour accéder au système hôte sous-jacent. On parle alors d’évasion de machine virtuelle. La sécurité des machines virtuelles dépend finalement toujours du logiciel de virtualisation ainsi que de la réactivité avec laquelle les failles de sécurité sont détectées et résolu par le fournisseur.

Depuis peu, la virtualisation matérielle est fortement concurrencée par d’autres concepts de virtualisation. Cela est dû principalement à l’overhead des machines virtuelles. La technologie des conteneurs, par exemple (forme de virtualisation logicielle) ne nécessite pas d’hyperviseur. La virtualisation au niveau du système d’exploitation, dans lequel les applications sont exécutées dans des conteneurs isolés, est donc beaucoup plus économe en ressources. Les conteneurs, cependant, permettent une isolation bien moindre qu’avec les VM. Il est donc peu probable qu’une technologie remplace complètement l’autre. Il est beaucoup plus important de trouver le concept de virtualisation optimal pour le domaine d’application souhaité.

Avantages et inconvénients d’une virtualisation matérielle :

Avantages Inconvénients
Dans le cadre de la consolidation des serveurs, les ressources matérielles peuvent être allouées dynamiquement et utilisées plus efficacement. La réplication d’un environnement matériel avec le système d’exploitation augmente l’overhead.
Le matériel informatique consolidé peut être plus économe en énergie que des ordinateurs séparés. Les performances d’une machine virtuelle peuvent être affectées par d’autres machines virtuelles sur le même système hôte.
Les machines virtuelles offrent un degré d’isolation relativement élevé et donc une sécurité pour isoler la charge de travail.  

Virtualisation logicielle

Si des composants logiciels sont virtualisés au lieu de composants matériels, on parle de virtualisation logicielle. Les approches communes de ce concept de virtualisation sont :

  • virtualisation des applications
  • virtualisation de postes de travail
  • Virtualisation sur les systèmes d’exploitation

Virtualisation des applications

La virtualisation des applications est l’abstraction d’applications individuelles du système d’exploitation sous-jacent. Les systèmes de virtualisation d’applications tels que VMware ThinApp, Microsoft App-V ou Citrix XenApp permettent aux programmes de s’exécuter dans des environnements d’exécution isolés et de se répartir sur plusieurs systèmes sans avoir à modifier les systèmes d’exploitation locaux, les systèmes de fichiers ou le registre.

VMware ThinApp permet par exemple de convertir les fichiers du package Windows Installer (tels que les fichiers MSI) de programmes complexes en fichiers EXE autonomes. Ceux-ci contiennent toutes les bibliothèques et tous les fichiers de configuration nécessaires à l’exécution de l’application dans n’importe quel environnement du système d’exploitation Windows.

La virtualisation des applications est adaptée à une utilisation locale ; par exemple, pour protéger le système d’exploitation sous-jacent contre d’éventuels codes malveillants. Autrement, les applications virtualisées peuvent être déployées sur un serveur pour différents clients réseau. Les utilisateurs finaux accèdent dans ce cas par exemple aux applications virtualisées via un streaming d’applications. L’application souhaitée, y compris toutes les dépendances du serveur, est copiée sur le périphérique client correspondant et exécutée dans un environnement d’exécution isolé, sans que le logiciel ne doive être installé sur le système cible. L’encapsulation des applications, y compris l’environnement d’exécution, permet également de copier des programmes sur des supports de stockage portables tels que des clés USB et de les exécuter directement sur ceux-ci.

Le but de la virtualisation des applications est de découpler les programmes du système d’exploitation sous-jacent afin qu’ils puissent être facilement portés et gérés de manière centralisée. Dans un contexte d’entreprise, le concept convient par exemple pour la mise à disposition d’applications Office.

Avantages et inconvénients de la virtualisation des applications :

Avantages Inconvénients
Les logiciels d’application peuvent être déployés, gérés et maintenus de manière centralisée. Les applications qui sont intégrées étroitement au système d’exploitation ou qui nécessitent l’accès à des pilotes périphériques spécifiques ne peuvent pas être virtualisées.
En isolant l’application, le système sous-jacent est protégé des codes malveillants. La virtualisation des applications soulève des questions de licence.
Le logiciel peut être retiré du système sans restes.  

Virtualisation de postes de travail

La virtualisation des postes de travail est un concept dans lequel les environnements de bureau sont fournis de manière centralisée et accessibles via un réseau. Cette approche s’applique principalement dans un contexte d’entreprises.

Les entreprises modernes mettent généralement à la disposition de leurs employés leur propre poste de travail, y compris un PC. Chacun de ces ordinateurs autonomes doit être configuré et entretenu. Une administration locale prend toutefois beaucoup de temps. Afin d’économiser les ressources humaines, divers concepts de virtualisation des environnements de postes de travail ont été développés.

La virtualisation des postes de travail est basée sur une structure client-serveur. Le transfert de données entre le serveur et le client s’effectue via des protocoles d’affichage à distance. Les principaux fournisseurs de solutions logicielles de virtualisation de postes de travail tels que Microsoft, VMware ou Citrix s’appuient sur des technologies propriétaires. Selon l’endroit où se trouve la puissance de calcul qui met à disposition le poste de travail virtuel, on fait une distinction entre les approches basées sur l’hôte et celles basées sur le client.

  • Virtualisation de postes de travail basée sur l’hôte : la virtualisation de bureau basée sur l’hôte comprend toutes les approches qui exécutent des postes de travail virtuels directement sur le serveur. La puissance de calcul complète qui fournit l’environnement de bureau et les applications en cours d’exécution dans ce type de virtualisation de postes de travail est donnée par le matériel serveur. Les utilisateurs accèdent aux postes de travail virtuels basés sur l’hôte à partir de n’importe quel périphérique client sur le réseau. Il est possible d’utiliser des PC ou notebooks entièrement équipés (thick clients), des terminaux avec un matériel réduit (thin clients) ou des ordinateurs complètement minimisés (zero clients) ainsi que des tablettes et des smartphones. Une connexion réseau permanente est généralement requise. Une virtualisation de poste de travail basée sur l’hôte peut être mise en œuvre par les approches suivantes :
    • Machine virtuelle basée hôte : avec cette approche de virtualisation, chaque utilisateur se connecte à sa propre machine virtuelle sur le serveur via un périphérique client. Une distinction est faite entre la virtualisation persistante des postes de travail, où un utilisateur se connecte à la même machine virtuelle à chaque session, et les approches non persistantes, où des machines virtuelles sont affectées de manière aléatoire. Si des machines virtuelles basées sur l’hôte sont utilisées dans le cadre de la virtualisation des postes de travail, il s’agit d’une infrastructure de postes de travail virtuels (VDI). Les machines virtuelles persistantes basées sur l’hôte offrent aux utilisateurs un large éventail de possibilités d’individualisation. Les postes de travail virtuels déployés dans le cadre de cette approche peuvent être personnalisés comme des postes de travail locaux avec des applications et des options d’affichage personnalisées.
    • Service terminal : si le client est utilisé uniquement comme périphérique d’affichage pour les environnements de bureau hébergés de manière centralisée, on parle de services de terminal ou de virtualisation de présentation. Ils sont alors fournis par le serveur terminal. Cette approche de virtualisation de postes de travail basée sur l’hôte n’offre aux utilisateurs qu’une possibilité minimale d’individualisation et convient donc aux scénarios dans lesquels des postes de travail hautement standardisés avec des fonctions limitées doivent être mis à disposition en grand nombre. Les services terminaux sont utilisés dans le commerce de détail, par exemple. Ici, les thin clients offrent aux employés la possibilité de vérifier les niveaux de stock et d’obtenir des informations sur les produits. Les clients utilisent des terminaux de ce type pour configurer individuellement les marchandises et passer des commandes.
    • Serveur lame : si les utilisateurs finaux doivent accéder à distance à des machines physiques séparées, cela se fait généralement en utilisant un serveur lame (ou blade server en anglais). Il s’agit d’un serveur modulaire ou d’un boîtier de serveur qui contient plusieurs ordinateurs monocartes - appelés lames. Dans le cadre de la virtualisation des postes de travail, chaque environnement de bureau fonctionne sur une lame séparée. L’avantage de cette approche est que les lames de serveur sont des machines à calculer physiques autonomes, mais qu’elles partagent les utilités du boîtier (alimentation et refroidissement) et sont gérées de manière centralisée.
  • Virtualisation de poste de travail basée sur le client : si la virtualisation de poste de travail est basée sur le client, les ressources nécessaires au fonctionnement de l’environnement de poste de travail doivent être fournies par le périphérique client. Cette approche nécessite donc un thick client avec le matériel approprié. Dans la pratique, la virtualisation de postes de travail basée sur le client est mise en œuvre à l’aide de machines virtuelles ou sous forme de streaming d’OS.
    • Machines virtuelles basées sur le client : avec cette approche, l’environnement de bureau fonctionne dans une machine virtuelle sur le périphérique client. En règle générale, on utilise un hyperviseur. Chaque bureau virtuel se synchronise périodiquement avec une image du système d’exploitation sur le serveur. Cela permet une gestion centralisée et des cycles de sauvegarde basés image. Un autre avantage de cette approche de virtualisation est que les applications sont disponibles localement même si la connexion au serveur est interrompue.
    • OS streaming : un streaming d’OS exécute le système d’exploitation de l’environnement de bureau sur le matériel local. Seul le processus de démarrage se fait à distance via une image serveur. Le streaming d’OS est donc adapté aux scénarios dans lesquels des groupes de postes de travail entiers doivent être fournis sur la base d’une seule image du système d’exploitation. Cela présente l’avantage que les administrateurs n’ont besoin de gérer qu’une seule image sur le serveur pour effectuer des ajustements sur tous les postes de travail en continu. Le streaming d’OS ne nécessite pas d’hyperviseur. Cependant, il nécessite une connexion réseau constante entre le serveur et le périphérique client.

Les concepts de virtualisation de postes de travail sont évalués principalement par le biais d’une administration centralisée. Les efforts pour l’administration et la maintenance peuvent être considérablement réduits, en particulier dans des environnements de travail standardisés. Cependant, si l’entreprise est confrontée à l’implémentation d’une infrastructure informatique hétérogène avec un grand nombre de postes de travail différents, cet avantage devient relatif.

Les entreprises qui s’appuient sur la virtualisation des postes de travail s’attendent généralement à des économies. Les thin clients en particulier devraient permettre de réduire les coûts d’acquisition de matériel et la consommation d’énergie au bureau. Il est parfois possible d’obtenir des conditions de travail comparables avec beaucoup moins de licences de logiciels. Des économies sont en effet également possibles avec tout ce qui concerne les licences. Côté serveur, en revanche, la conversion vers des postes de travail virtuels entraîne d’abord des coûts.

La virtualisation des postes de travail nécessite des serveurs puissants. Selon l’approche de virtualisation, une bande passante élevée est également nécessaire pour la transmission des données sur le réseau. En raison des coûts d’acquisition associés, la virtualisation des postes de travail n’est souvent rentable qu’à long terme.

Avantages et inconvénients de la virtualisation des postes de travail

Avantages Inconvénients
La virtualisation des postes de travail permet l’administration centralisée des environnements de bureau. La virtualisation des postes de travail est principalement adaptée aux infrastructures homogènes.
Les utilisateurs peuvent accéder à leur bureau virtuel à partir d’une multitude de périphériques. Certaines approches nécessitent une connexion constante au réseau.
La virtualisation des postes de travail permet des sauvegardes centralisées. Nécessite des exigences élevées en matière de performances des serveurs, de capacité de stockage et de bande passante réseau.
Les clients légers permettent de réduire les coûts d’acquisition et d’exploitation.  

Virtualisation au niveau du système d’exploitation

Les concepts de virtualisation au niveau du système d’exploitation s’appuient sur les fonctions natives du noyau des systèmes d’exploitation unix, qui permettent d’exécuter plusieurs instances d’espace utilisateur isolées en parallèle. Contrairement à la virtualisation matérielle, aucun système invité complet, y compris le noyau, n’est reproduit. Au niveau du système d’exploitation, les applications virtualisées partagent le noyau du système hôte.

Fait

Pour des raisons de sécurité, les systèmes d’exploitation modernes distinguent deux zones de mémoire virtuelle : l’espace noyau et l’espace utilisateur. Alors que les processus qui servent à faire fonctionner le noyau et les autres composants de base sont exécutés dans l’espace noyau, l’espace utilisateur est disponible pour les applications utilisateur. Sur les systèmes d’exploitation unix, il est possible d’exécuter plusieurs instances d’espace utilisateur virtuel en parallèle. C’est la base de la virtualisation au niveau du système d’exploitation.

Chaque instance d’espace utilisateur représente un environnement d’exécution virtuel autonome appelé container, partition, moteur de virtualisation ou jail, selon la technologie utilisée. Un nouvel élan a été donné à la virtualisation basée sur les systèmes d’exploitation grâce notamment à des plateformes de conteneurs telles que Docker. Aujourd’hui, les utilisateurs de rtk, OpenVZ/Virtuozzo et runC peuvent disposer de bonnes alternatives au leader du marché.

Les instances d’espace utilisateur sont virtualisées à l’aide de mécanismes chroot natifs fournis par tous les systèmes d’exploitation unix. Chroot (abréviation de « change root ») est une commande système qui permet de changer le répertoire racine d’un processus en cours. Les processus qui sont déplacés dans un répertoire racine virtuel peuvent accéder aux fichiers de ce répertoire si l’implémentation est correcte. Cependant, le chroot seul ne suffit pas. Bien que la commande système offre des capacités de virtualisation de base, il n’a jamais été conçu comme un concept de protection de processus. Les technologies de conteneurs combinent donc chroot avec d’autres fonctions natives du noyau comme Cgroups et Namespaces pour fournir aux processus un environnement d’exécution isolé avec un accès limité aux ressources matérielles. On parle de processus conteneurisés.

  • Cgroups : il s’agit de groupes de contrôle de gestion des ressources qui permettent de limiter l’accès des processus aux ressources matérielles.
  • Namespaces : il s’agit d’espaces de noms pour l’identification des systèmes et des processus ainsi que pour les communications interprocess et pour les ressources réseau. Les espaces de noms peuvent être utilisés pour restreindre un processus et ses processus fils à une section souhaitée du système sous-jacent.

Un conteneur logiciel contient une application comprenant toutes les dépendances telles que les bibliothèques, les programmes d’aide ou les fichiers de configuration. Les applications conteneurisées peuvent être transférées d’un système à l’autre sans configuration ultérieure. L’approche conteneur montre donc des points forts dans le déploiement d’applications en réseau.

Si les conteneurs sont utilisés dans des architectures microservice, les utilisateurs bénéficient également d’une grande évolutivité. Il s’agit d’une approche de développement pour la modularisation de logiciels. Dans les architectures microservices, les applications complexes sont opérées par l’interaction de processus indépendants, par exemple dans un conteneur séparé. C’est ce qu’on appelle une application multi-container. Une telle structure logicielle présente plusieurs avantages : les microservices facilitent le déploiement d’applications dans les clusters de serveurs en permettant aux processus conteneurisés de fonctionner sur le même système ou d’être répartis sur différents systèmes selon les besoins. De plus, chaque microservice peut être évolutif. Il suffit simplement de démarrer une autre instance du microservice correspondant dans un nouveau conteneur.

Les architectures de microservices du cluster sont gérées à l’aide de gestionnaires de clusters centraux et d’outils d’orchestration. Vous trouverez une sélection d’outils de conteneur populaires dans notre article dédié à l’écosystème Docker.

Avantages et inconvénients de la virtualisation au niveau du système d’exploitation

Avantages Inconvénients
Si les conteneurs sont utilisés pour des applications basées sur une combinaison de différents microservices, les utilisateurs bénéficient d’une grande évolutivité. La virtualisation au niveau du système d’exploitation est basée sur des architectures de microservices. Lors de l’exploitation d’applications structurées selon une architecture monolithe, la technologie des conteneurs perd des avantages (par exemple en termes d’évolutivité).
Les conteneurs sont immédiatement prêts à l’emploi sans processus d’installation complexes. Contrairement aux machines virtuelles, les conteneurs fonctionnent directement dans le noyau du système d’exploitation hôte. Cela suppose certaines conditions techniques. Ces dépendances limitent la portabilité des conteneurs : par exemple, les conteneurs Linux ne peuvent pas fonctionner sur les systèmes Windows sans émulation.
Le logiciel peut être enlevé sans restes. Les conteneurs permettent beaucoup moins d’isolation que les machines virtuelles. La virtualisation des conteneurs n’est donc pas adaptée à la mise en œuvre de concepts de sécurité.
Un grand nombre de conteneurs préfabriqués sont disponibles pour les plateformes les plus importantes sur Internet.  

Virtualisation du stockage

La virtualisation du stockage est un concept qui vise à cartographier virtuellement les différentes ressources de stockage d’une entreprise telles que les disques durs, la mémoire flash ou les lecteurs de bandes et de les rendre disponibles comme un pool de stockage lié. Une solution de virtualisation établit ainsi une couche d’abstraction entre les différents supports de stockage physiques et le niveau logique, sur lequel les ressources de stockage combinées peuvent être gérées de manière centralisée par logiciel.

La mémoire virtuelle peut également être divisée et allouée à des applications sélectionnées. Malgré la virtualisation, les utilisateurs peuvent accéder aux données stockées via les mêmes chemins de fichier, même si l’emplacement physique change. Ceci est assuré par une table d’affectation gérée par le logiciel de virtualisation. On parle alors d’un mappage des supports de stockage physiques sur un disque logique (aussi appelé volumes).

Les lecteurs logiques ne sont pas liés aux limites de capacité physique des supports de stockage individuels sous-jacents. La virtualisation du stockage offre ainsi beaucoup plus de flexibilité dans l’allocation des ressources de stockage. Le matériel disponible pour le stockage des données peut être utilisé plus efficacement. Pour les entreprises, cela signifie que les capacités de stockage dans le centre de données peuvent être fournies de manière plus rentable.

Dans un contexte d’entreprise, la virtualisation du stockage est généralement mise en œuvre par blocs. Les données sont alors divisées en blocs de taille égale et une adresse unique est attribuée à chaque bloc de données. Cette dernière est stockée par le logiciel de virtualisation dans la table de mappage centrale. La table de mappage contient donc toutes les métadonnées nécessaires pour localiser l’emplacement physique d’un bloc de données. Ce mappage vous permet de gérer les données virtuelles indépendamment du contrôleur du support de stockage physique, par exemple, pour les déplacer, les copier, les mettre en miroir ou les répliquer.

En pratique, la virtualisation par blocs peut être mise en œuvre selon trois approches différentes :

  • Basée sur l’hôte
  • Basée sur l’appareil
  • Basée sur le réseau

Virtualisation du stockage basé sur l’hôte

La virtualisation des ressources de stockage basée sur l’hôte est une approche généralement utilisée en combinaison avec les machines virtuelles. Avec ce concept, un système hôte présente à un niveau abstrait des lecteurs virtuels à un ou plusieurs systèmes invités (voir la virtualisation matérielle), qui sont implémentés soit par un gestionnaire de volume interne au système d’exploitation, soit par un logiciel séparé (appelé hyperviseur de stockage). Le matériel (disques durs et autres supports de stockage) est accessible par les pilotes de périphériques du système hôte. Le gestionnaire de volume ou hyperviseur de stockage est utilisé comme couche logicielle au-dessus des pilotes de périphériques et gère les entrées et sorties (Input/Output, abrégé I/O), les tables de mappage des I/O et la recherche de métadonnées.

Les fonctions natives qui permettent de créer des lecteurs virtuels sont disponibles dans presque tous les systèmes d’exploitation modernes.

  • Windows : Logical Disk Manager (LDM)
  • macOS : CoreStorage (depuis OS X Lion)
  • Linux : Logical Volume Manager (LVM)
  • Solaris et FreeBSD : zPools du système de fichiers Z File Systems (ZFS)

La virtualisation du stockage basée sur l’hôte ne nécessite aucun matériel additionnel, prend en charge n’importe quel périphérique de stockage et peut être mise en œuvre sans trop d’effort. De plus, l’approche offre les meilleures performances par rapport à d’autres concepts, car chaque périphérique de stockage est traité immédiatement. Cependant, les utilisateurs doivent accepter que la virtualisation du stockage (et donc la capacité d’optimiser l’utilisation du stockage) est limitée par l’hôte.

Virtualisation du stockage basée sur les périphériques

Les matrices de disques (dispositifs de stockage de masse qui peuvent être utilisés pour l’approvisionnement des disques durs dans un réseau) offrent également la possibilité de virtualiser les ressources de stockage. Des schémas RAID sont alors utilisés (abréviation de Redundant Array of Independent Disks). Il s’agit d’un concept de stockage de données dans lequel plusieurs disques physiques sont combinés pour former une plateforme de stockage virtuel. L’objectif de la virtualisation du stockage est d’assurer une certaine sécurité grâce à la redondance. Pour ce faire, les données sont mises en miroir dans une matrice de disques et distribuées sur différents disques durs.

Conseil

Pour plus d’informations sur les matrices de disques et les schémas RAID, consultez notre article sur le Network Attached Storage (NAS).

Les matrices de disques modernes offrent également la possibilité de connecter d’autres périphériques de stockage et de combiner ainsi les ressources de stockage de plusieurs matrices de disques au niveau virtuel tout en les gérant de manière centralisée. Les contrôleurs de stockage des unités de stockage connectées sont subordonnés à un contrôleur primaire qui se charge de l’administration centrale de la table de mappage et de la transmission des demandes d’I/O.

La virtualisation du stockage basée sur les périphériques offre également de bonnes performances grâce à une faible latence des I/O. En dehors des matrices de disques à fusionner, aucun autre composant matériel n’est nécessaire. Pour pouvoir intégrer des mémoires externes, ces appareils doivent toutefois disposer d’interfaces adéquates. La migration ou la réplication de données sur plusieurs systèmes peut échouer car de nombreux fabricants s’appuient sur des protocoles propriétaires pour les périphériques de stockage. Il convient également de noter que le contrôleur de stockage primaire peut saturer en cas de charge importante.

Virtualisation du stockage basé réseau

La virtualisation du stockage en réseau est particulièrement adaptée lorsque les ressources de stockage de systèmes hétérogènes doivent être combinées dans un pool de stockage virtuel. Dans un contexte d’entreprise, cette approche est généralement utilisée dans le cadre d’un réseau de stockage SAN.

Le composant central de la virtualisation du stockage en réseau est un périphérique réseau tel qu’un commutateur qui non seulement établit la couche d’abstraction entre les supports de stockage physiques des systèmes associés et le quota de stockage virtuel mais aussi prend en charge le mappage des métadonnées et redirige les requêtes I/O. Les dispositifs de virtualisation de ce type sont implémentés directement dans le chemin de données (virtualisation symétrique) avec le processus « in-band ». Dans ce cas, toutes les requêtes d’I/O passent par le périphérique de virtualisation. Il n’y a pas d’interaction directe entre l’hôte demandeur et le périphérique de stockage physique. Cela signifie qu’aucun pilote spécial pour le matériel mémoire ne doit être disponible sur l’hôte.

Fait

La virtualisation symétrique s’oppose à la virtualisation asymétrique (également appelée out-of-band) des ressources de stockage. Dans ce cas, le périphérique de virtualisation agit uniquement comme un serveur de métadonnées qui fournit des informations sur l’emplacement d’un bloc de données demandé. Une demande d’I/O directe est alors envoyée au périphérique de stockage.

L’avantage principal de l’approche réseau est que les ressources de stockage de systèmes hétérogènes peuvent être gérées via une interface centrale. Si la virtualisation du stockage en réseau est implémentée en mode hors bande (out of band), un logiciel spécial doit être implémenté côté hôte pour accéder aux périphériques de stockage disponibles dans le SAN. La méthode in band ne nécessite pas un tel logiciel, mais elle est plus complexe à mettre en œuvre et est généralement associée à une latence I/O plus élevée.

Les fournisseurs de solutions renommés pour la virtualisation du stockage sont EMC, HP, IBM, LSI et Oracle.

Avantages et inconvénients de la virtualisation du stockage

Avantages Inconvénients
Les ressources physiques de stockage sont utilisées plus efficacement. Les tables de mapping centrales créent un point faible unique et facile à cibler.
L’utilisation des ressources de stockage n’est pas liée aux limites physiques des supports de stockage sous-jacents. La virtualisation du stockage est toujours associée à un overhead du fait de la nécessité de générer et traiter des métadonnées.
Les ressources physiques de stockage combinées dans un lecteur logique peuvent être gérées de manière centralisée. Le traitement des demandes d’I/O sous forte charge peut faire ralentir l’ensemble du système de stockage.
Les ressources de stockage physique peuvent être étendues et restructurées indépendamment du pool de stockage virtuel.  

Virtualisation des données

La virtualisation des données combine différentes approches de virtualisation dans le cadre des analyses de données décisionnelles qui visent à fournir aux applications un accès aux données extraites des réalités physiques. Une image virtuelle de l’ensemble de la base de données, est créée, la copie « master ».

La virtualisation des données est donc un concept d’intégration de l’information qui diffère des méthodes classiques telles que le processus ETL. Une couche d’abstraction est établie entre les sources de données physiques et l’image virtuelle des données.

ETL (Extract, Transform, Load) est utilisé dans le contexte de l’intégration d’informations pour extraire des données de différentes sources structurées et les fusionner de manière uniforme dans une base de données cible. La virtualisation des données permet également de lire et de manipuler des données provenant de diverses sources, mais celles-ci restent physiquement en place (contrairement à l’ETL). Les solutions logicielles de virtualisation des données intègrent les données à un seul niveau virtuel et fournissent un accès en temps réel à la source physique des données.

Grâce aux technologies de virtualisation des données, les données qui sont réparties entre plusieurs data warehouses, data marts ou data lakes peuvent être fusionnées efficacement sans créer une nouvelle plateforme de données physiques. Ceci réduit principalement l’espace de stockage requis pour l’analyse de grandes quantités de données. De plus, moins de données doivent être transmises sur le réseau. L’image virtuelle de l’ensemble des données peut être mise à la disposition de diverses applications. L’informatique décisionnelle (la Business Intelligence ou BI) fournit des outils en libre-service pour le reporting et l’analyse sans avoir besoin de travailler avec des experts.

Les principaux fournisseurs de ces technologies sont : Denodo, TIBCO, IBM et Informatica.

Avantages et inconvénients de la virtualisation des données :

Avantages Inconvénients
Les besoins de stockage pour les copies de données physiques sont réduits. Contrairement à l’approche avec les entrepôts de données, la virtualisation des données n’est pas adaptée pour enregistrer et gérer des images d’un stock de données de l’historique.
Il n’est plus nécessaire d’extraire les données, ce qui prenait beaucoup de temps (par ex. via ETL).  
De nouvelles sources de données peuvent être prises en compte via des outils BI en libre-service, même sans avoir des connaissances techniques au préalable.  
Les données virtualisées peuvent être traitées à l’aide de divers outils de gestion des données.  

Virtualisation du réseau

La virtualisation du réseau implique diverses approches qui abstraient les ressources réseau aux niveaux matériel et logiciel à partir de leur fondement physique. En règle générale, ce type de virtualisation est utilisé dans le cadre de concepts de sécurité. Deux objectifs sont au premier plan :

  • Les ressources physiques du réseau doivent être combinées en une unité logique grâce à la virtualisation.
  • Les ressources physiques du réseau doivent être divisées en différentes unités virtuelles grâce à la virtualisation.

Un bon exemple de virtualisation de réseau est le virtual private network (VPN). Un VPN est un réseau virtuel basé sur un réseau physique. Dans la pratique, les VPN sont utilisés pour établir des connexions sécurisées via des lignes non sécurisées - par exemple, si un employé en déplacement souhaite accéder au réseau privé de son entreprise via Internet.

En tant que réseau public, Internet ne peut assurer une connexion sécurisée entre deux ordinateurs. Pour assurer la confidentialité des données lors de leur transmission, il est donc conseillé d’utiliser la virtualisation. Différents éditeurs de logiciels proposent des solutions de virtualisation permettant d’abstraire les réseaux virtuels des réseaux physiques et de les sécuriser à l’aide de méthodes de chiffrement et d’authentification. La transmission de données d’un ordinateur à un autre s’effectue donc dans un réseau privé, également appelé tunnel.

Un autre exemple de virtualisation de réseau est le réseau local virtuel (VLAN). Les VLAN sont des sous-réseaux virtuels basés sur un réseau informatique physique. Les VLAN s’opèrent via des composants matériels tels que des commutateurs ou des routeurs virtuels. Les appareils connectés à un VLAN ne peuvent communiquer qu’avec des appareils du même VLAN. Il n’y a pas de connexion de données avec les périphériques d’autres VLAN, même si tous les périphériques sont sur le même réseau physique. La virtualisation de réseau offre ainsi la possibilité de fournir, de gérer et d’allouer de manière flexible des ressources réseau au niveau virtuel, indépendamment des conditions physiques.

Le Software Defined Networking (SDN) est un concept qui permet de gérer les ressources du réseau virtuel de manière centralisée sans avoir à accéder manuellement aux composants physiques du réseau. Le SDN est basé sur le découplage du plan de contrôle virtuel (le Control Plane) du plan de réseau physique qui est responsable de la transmission des paquets de données (plan de commutation ou data plane). Le contrôleur réseau va gérer les composants réseau du data plane tels que les routeurs et les commutateurs et contrôle le transfert des paquets de données. Le contrôleur réseau est donc responsable de la gestion du réseau ainsi que des spécifications de routage, des droits d’accès et de la mise en œuvre des concepts de sécurité. Les composants réseau du data plane reçoivent des instructions du contrôleur réseau et sont responsables du transport des paquets de données vers l’appareil de réception requis.

Avantages et inconvénients de la virtualisation du réseau

Avantages Inconvénients
Réduction des coûts grâce à l’utilisation multiple de l’infrastructure physique du réseau. L’exploitation de plusieurs sous-réseaux virtuels sur un réseau physique nécessite des composants matériels puissants.
Les ressources réseau peuvent être gérées à un niveau virtuel de manière centralisée, elles sont facilement évolutives et sont réparties dynamiquement. Une infrastructure de réseau physique redondante peut être nécessaire pour assurer une certaine fiabilité.
La virtualisation du réseau offre différentes approches qui permettent de mettre en œuvre des concepts de sécurité pour le réseau du côté logiciel et donc de manière plus rentable.