Dans un contexte d’en­tre­prise et d’uti­li­sa­tion de serveurs pro­fes­sion­nels, la vir­tua­li­sa­tion est devenue un élément in­dis­pen­sable. Il est donc possible de jux­ta­po­ser plusieurs systèmes virtuels invités sur une seule machine physique. Voici les prin­ci­paux avantages d’un tel procédé :

  • Sans ajouter de matériel sup­plé­men­taire, on peut dissocier pro­pre­ment les systèmes en fonction de leurs tâches, par exemple : serveur mes­sa­ge­rie, serveur fichiers et serveur ap­pli­ca­tions.
  • Un système invité peut en quelque sorte être « gelé » en appuyant sur une touche pour être ensuite restauré aussi sim­ple­ment.
  • La migration vers un nouveau matériel se fait en peu de temps.
  • Les systèmes invités sont par­fai­te­ment évolutifs, ce qui leur permet d’être plus réactifs sous une charge accrue.
  • Les dif­fé­rents systèmes invités sont ac­cueil­lis sur une base ma­té­rielle commune. On évite ainsi tous les conflits liés à des défauts de pilotes.

Il est vrai que le système d’ex­ploi­ta­tion Linux est plutôt une « bête rare » sur les or­di­na­teurs des par­ti­cu­liers. En revanche, dans le domaine des serveurs, Linux est so­li­de­ment établi. Dans ce contexte, Linux joue un rôle essentiel comme base de vir­tua­li­sa­tion.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Qu’est-ce que KVM ?

KVM (Kernel-based Virtual Machine), présenté au départ par la société Qumranet en 2006, a déjà été intégré of­fi­ciel­le­ment dans le noyau Linux 2.6.20 début 2007. L’année suivante, Qumranet était rachetée par RedHat, dis­tri­bu­teur Linux. Pour assurer la suite de l’évolution de cette tech­no­lo­gie, RedHat a fondé l’Open Vir­tua­li­za­tion Alliance (OVA) en as­so­cia­tion avec IBM. Des en­tre­prises comme Suse, Intel et HP se sont également jointes au projet.

KVM est étroi­te­ment lié au logiciel d’émulation QEMU. Celui-ci offre la plupart des fonctions de vir­tua­li­sa­tion du matériel, alors que Linux-KVM gère plutôt l’ad­mi­nis­tra­tion des res­sources du système invité. C’est la raison pour laquelle on trouve souvent la dé­sig­na­tion KVM/QEMU. Comme KVM est un élément intégré à Linux, cette solution de vir­tua­li­sa­tion ne peut pas être utilisée sur des or­di­na­teurs équipés de Windows. En revanche, Windows pourra être géré comme système invité, au même titre que la plupart des systèmes d’ex­ploi­ta­tion unixoïdes, tels que Linux, Solaris et BSD. Par défaut, KVM est inclus dans la plupart des dis­tri­bu­tions Linux, mais ne doit pas né­ces­sai­re­ment être activé.

Le fonc­tion­ne­ment de KVM en détail

Pour com­prendre le fonc­tion­ne­ment du Kernel-based Virtual Machine, com­men­çons par une di­gres­sion dans les bases de la vir­tua­li­sa­tion. La vir­tua­li­sa­tion consiste à exécuter sur une machine hôte (Host) un ou plusieurs système(s) d’ex­ploi­ta­tion (systèmes invités). Pour cela, le matériel mis à dis­po­si­tion du système invité est simulé de manière lo­gi­cielle (émulation). Il peut aussi être géré au moyen d’un hy­per­vi­seur, qui permet ainsi de partager de réelles res­sources ma­té­rielles. On entend par hy­per­vi­seur une couche d’ad­mi­nis­tra­tion et d’abs­trac­tion, implantée entre le matériel réel et le matériel virtuel. En fonction du type de vir­tua­li­sa­tion, il est donc né­ces­saire de trans­fé­rer les requêtes vers le matériel réel. Il est également possible de n’attribuer que les actions requises, par exemple un calcul dans le pro­ces­seur.

Il convient de dis­tin­guer plusieurs types de vir­tua­li­sa­tions :

  • Une vir­tua­li­sa­tion complète : la partie ma­té­rielle est com­plè­te­ment re­pro­duite sous forme lo­gi­cielle. On évite ainsi toute in­te­rac­tion avec le matériel réel, ce qui rend d’ailleurs le recours aux pilotes com­plè­te­ment superflu. Cette variante serait beaucoup plus lente. 
  • La para-vir­tua­li­sa­tion : le système invité interagit avec l’hy­per­vi­seur, et a donc besoin de pilotes par­ti­cu­liers.
  • La para-vir­tua­li­sa­tion assistée par le matériel : l’as­sis­tance par le matériel est déjà intégrée dans le pro­ces­seur. On augmente ainsi l’ef­fi­ca­cité, et on réduit le besoin d’adap­ta­tion du système invité. Les pro­ces­seurs modernes d’Intel (Intel-VT-x) et AMD (AMD-V) ont déjà cette fonc­tion­na­lité. Dans certains cas, il faudra l’activer dans le BIOS/UEFI.

On peut d’ailleurs dis­tin­guer deux types d’hy­per­vi­seur :

  • Type 1 (Bare Metal) : l’hy­per­vi­seur est exécuté di­rec­te­ment sur la pla­te­forme ma­té­rielle, sans être incorporé au système d’ex­ploi­ta­tion.
  • Type 2 (Hosted) : l’hy­per­vi­seur est incorporé dans le système d’ex­ploi­ta­tion et sera donc exécuté à partir de là.

Linux-KVM est un hy­per­vi­seur de type 2 qui exploite la para-vir­tua­li­sa­tion assistée par le matériel. Ce qui le ca­rac­té­rise est le fait qu’il soit di­rec­te­ment incorporé dans le noyau (kernel).

Note

Le mot « Kernel » est le mot anglais cor­res­pon­dant au « Noyau » : il s’agit du « noyau » d’un système d’ex­ploi­ta­tion. Il intègre les fonctions de base du système d’ex­ploi­ta­tion, par exemple l’accès au matériel, l’as­sig­na­tion des temps de calcul dans les pro­ces­seurs, dans un système multi-tâches. L’accès au noyau (Kernel) est par­ti­cu­liè­re­ment protégé (Kernel Mode) et les requêtes qui lui sont at­tri­buées sont hautement pri­vi­lé­giées par les pro­ces­seurs dans le trai­te­ment.

En raison de son lien pri­vi­lé­gié avec le noyau, le système est parfois évoqué comme ayant des éléments relevant d’un hy­per­vi­seur de type 1.

De quels éléments est constitué le Kernel-based Virtual Machine ?

Le pack KVM complet est composé de plusieurs éléments :

  • Extension de kernel : renferme la véritable extension kernel.ko. Il s’agit de la couche d’abs­trac­tion entre le matériel réel et le matériel virtuel. Les modules kvm-amd et kvm-intel associés aux pro­ces­seurs en font également partie.
  • libvirt : l’interface de pro­gram­ma­tion (API) permet d’interagir avec les machines vir­tuelles. Elle en permet à la fois la gestion et l’ad­mi­nis­tra­tion. Libvirt contient aussi des uti­li­taires, comme par exemple une ligne de commande appelée virsh et l’interface graphique Virtual-Machine-Manager.
  • QEMU : C’est un logiciel libre, capable d’émuler des or­di­na­teurs et d’ad­mi­nis­trer des machines vir­tuelles. Linux-KVM exploite sa fonc­tion­na­lité pour l’émulation du matériel et pour accélérer la vitesse à l’aide de la para-vir­tua­li­sa­tion. Dans plusieurs dis­tri­bu­tions, ces deux éléments sont proposés dans un pack d’ins­tal­la­tion commun.
  • Kvmtool : il s’agit d’une option réduite par rapport à QEMU, mais que QEMU n’a pas réussi à sup­plan­ter.
  • Les drivers VirtIO : ce sont des drivers spéciaux, destinés aux systèmes invités, par­fai­te­ment adaptés à l’hy­per­vi­seur, et qui rendent la para-vir­tua­li­sa­tion possible.

Domaines d’ap­pli­ca­tion de KVM

On rencontre souvent le Kernel-based Virtual Machine dans des con­fi­gu­ra­tions incluant des serveurs de type pro­fes­sion­nel. Dans une étude de sécurité menée en 2017, l’Office fédéral de la sécurité des tech­no­lo­gies de l’in­for­ma­tion a désigné cette tech­no­lo­gie comme étant la solution de vir­tua­li­sa­tion la plus per­ti­nente du marché dans le domaine des logiciels libres.

Linux-KVM a aussi gagné en po­pu­la­rité grâce à son in­té­gra­tion en tant qu’hy­per­vi­seur dans la solution lo­gi­cielle de Cloud OpenStack.

Avantages et in­con­vé­nients de KVM

Étudions pour finir quelques-uns des avantages et in­con­vé­nients de cette solution de vir­tua­li­sa­tion :

Les avantages :

  • Un système solide et bien conçu 
  • Inclus déjà dans la plupart des dis­tri­bu­tions Linux 
  • Gratuit et open source 
  • La seule « Kernel Virtual Machine » qui associe per­for­mance et stabilité 
  • Dé­ve­lop­pée par des en­tre­prises de renom 
  • Ad­mi­nis­tra­tion au­to­ma­tique possible avec libvirt

Les in­con­vé­nients :

  • Dis­po­nible uni­que­ment pour les systèmes Linux 
  • Pour la machine-hôte, il vous faut un matériel très per­for­mant 
  • La prise en main nécessite une ini­tia­tion assez lourde 
  • En cen­tra­li­sant le matériel, vous augmentez le niveau de risque en cas de panne système (« Single Point of Failure » – ce risque peut néanmoins être atténué grâce à une stratégie de backup bien pensée)

Options autres que Linux-KVM

Dans le domaine des logiciels libres, et parmi ceux qui ont une fonction similaire, il convient de men­tion­ner XEN, une solution de vir­tua­li­sa­tion, liée à Linux, mais qui n’est in­cor­po­rée dans son noyau.

Avec ses serveurs ESXi, le pres­ta­taire com­mer­cial VMWare propose des solutions de para-vir­tua­li­sa­tion. Avec sa station de travail, elle propose même une vir­tua­li­sa­tion totale. Le VNWare-Player est gratuit pour un usage personnel.

Vir­tual­box est aussi une bonne option per­met­tant une pleine vir­tua­li­sa­tion, com­pa­tible avec tous les systèmes d’ex­ploi­ta­tion.

Pour Windows, Microsoft propose un système appelé Hyper-V qui est une solution de vir­tua­li­sa­tion et de para-vir­tua­li­sa­tion, dont le fonc­tion­ne­ment est com­pa­rable à Linux-KVM. Elle dispose d’un serveur dédié, le Windows-Hyper-V-Server, et d’un fonc­tion­ne­ment incorporé dans les systèmes d’ex­ploi­ta­tion des serveurs. Les versions Windows 10 Pro­fes­sio­nal et En­ter­prise con­tien­nent aussi un hy­per­vi­seur.

Backup Cloud par Acronis
Protégez vos appareils et réduisez les temps d'arrêt
  • Sau­ve­garde au­to­ma­tique et res­tau­ra­tion facile
  • Gestion et pla­ni­fi­ca­tion in­tui­tives
  • Pro­tec­tion contre les menaces basée sur l'IA

En con­clu­sion

La flexi­bi­lité et la mo­du­la­rité sont cer­tai­ne­ment les deux arguments qui plaident le plus en faveur de la vir­tua­li­sa­tion. Les systèmes invités peuvent rester modestes, et servir uni­que­ment à une ap­pli­ca­tion bien précise. Si vous sau­ve­gar­dez ré­gu­liè­re­ment vos systèmes sur des supports distincts, le risque de panne système est né­gli­geable.

Si vous utilisez Linux pour votre serveur, vous n’avez d’autre choix que d’avoir recours à KVM. L’in­té­gra­tion dans le noyau, ainsi que le dé­ve­lop­pe­ment de la solution par des pres­ta­taires réputés, sont des éléments qui inspirent confiance.

Aller au menu principal