Virtualisation XEN

Ce stage s’est déroulé au sein du département OS & Linux de l’entreprise STMicroelectronics.
L’objectif était de mettre en place une solution de virtualisation Xen sur des cartes spécifiques STMicroelectronics basée sur des processeurs de type ARMv8.
Dans un premier temps, des recherches sur la virtualisation ont été faites, puis plus particulièrement sur la virtualisation Xen.
Dans un second temps la solution de virtualisation Xen fut déployée sur une carte virtuelle générique ARMv8, puis sur les cartes virtuelles spécifiques STMicroelectronics.
Pour finir, l’évaluation des performances a été faite en comparaison avec un autre outil de virtualisation Kvm.
Mots clés: Linux, virtualisation, Xen, ARMv8, SoC, Kvm.

Qu’est-ce que la virtualisation ?

De manière générale, la virtualisation permet d’avoir plusieurs OS (pas nécessairement les mêmes) sur une même machine physique.

Charge de travail de serveurs

A gauche un serveur classique non virtualisé, et à droite un serveur virtualisé avec plusieurs environnement.

Il existe 3 types de virtualisation:

  • L’isolation
  • La paravirtualisation
  • La virtualisaiton complète

Xen utilise la virtualisation de type paravirtualisation:

Diagramme d'architecture d'hyperviseur

KVM lui utilise la virtualisation complète.

Faire fonctionner Xen

Une des étapes majeures est de faire fonctionner XEN sur Foundation Model.
La plateforme « Foundation Model ARMv8 » permet de simuler une architecture aarch64 avec ses périphériques essentiels pour exécuter un système d’exploitation Linux. (cette plateforme est fournie par ARM.com).

Compilation et boot wrapper

Le Foundation Model est lancé à partir d’une machine Ubuntu, sur laquelle la cross-compilation ARM 64bit a été effectué au préalable.

Plusieurs OS peuvent donc être lancés sur cette machine.

Xen sur SoC

L’étape qui consiste à faire fonctionner Xen sur des cartes STMicroelectronics fut avortée, en effet les cartes physique étaient encore en cours de développement.
Il a été tout de même possible de faire quelques tests sur plateforme virtuelle (VSoC) STMicroelectronics. Néanmoins certaines fonctionnalités étaient en cours de développement ce qui fait qu’une partie des tests n’ont pas put être effectués.

Les Tests

Pour ce qui est des tests, l’outil Xen gère bien les différentes accès mémoire et processeur.
Un des points important qui a été testé fut la capacité du réseau Ethernet. En effet les cartes STMicroelectronics sont à destination du marché de box télévision, il faut donc un bon débit Ethernet.
Xen offre des outils de gestion réseau:

Xen network

Xen met en place un bridge xenbr0 sur le Dom0 afin de gérer le réseau de ses différents domaines.

Après différents tests il s’est avéré que le débit Ethernet était fortement diminué:

Xen network bandwidth

Avec virtualisation le débit entre les différents domaines sont fortement diminué.

Les résultats de KVM sur le réseau sont aussi médiocres.

Docker

Une des possibilités pour concurrencer Xen et KVM en terme de virtualisation serait d’étudier les Dockers:

Docker

Les Dokers permettent de ne virtualiser seulement les espaces utilisateur avec leur exécutable et librairie, et ainsi ne pas virtualiser l’OS dans son ensemble.


L’ensemble du stage n’est pas décrit ici. Une bonne partie a été omise. Seule la trame générale est présentée.