Liens rapides

Manuel d'utilisation
Tutorial
TODO

Plates-formes
GDX
Grid'5000

Outils de virtualisation Vserver
Xen
UML
VMware

Benchmarks
NAS
Les notres

Autres
Ma page
ACI MD
ACI fragile

Contacts
B. Quétier

V-Grid
Description
Objectif :
La création d'un émulateur à grande échelle dans le but de tester des applications nécessitant un grand nombre de machines.

Pour cela, il faut replier les machines, c'est-à-dire que chaque machine physique va en réalité contenir plusieurs machines virtuelles (VM). Le but est d'obtenir un facteur de repliment de 100, donc qu'il y ait 100 VM par machine physique.

Pour réaliser ce projet, il faut donc posséder un outil capable de gérer ces 100 VM. Nous avons donc dû choisir parmis les outils de virtualisation existant.
Pour évaluer ces outils, il a fallut utiliser des benchmarks.
Ensuite comme aucun de ces outils ne possède toutes les caractéristiques requises, il nous faudra les améliorer. Après il faudra également que les machines virtuelles puissent communiquer entre-elles (qu'elles soient sur la même machine physique ou non). Ceci devra être paramétrable (débit, latence, topologie,...)
Définitions
Virtualisation :
Dans le domaine informatique, la virtualisation fournit une vue logique plutôt que physique des données, de la puissance de calcul, de la capacité de stockage, et d'autres ressources.

ParaVirtualisation :
Dans le domaine informatique, la paravirtualisation est une technique de virtualisation qui présente l'abstraction des machines virtuelles avec une interface logicielle qui est semblable mais non identique à celle des machines physiques. Ceci exige des systèmes d'exploitations d'être "portés" dans le but de gérer ces machines virtuelles.

Machine virtuelle
Le sens originel de machine virtuelle est la création de plusieurs environnement d'exécution sur un seul ordinateur, dont chacun émule l 'ordinateur hôte. Cela fournit à chaque utilisateur l'illusion de disposer d'un ordinateur complet alors que chaque machine virtuelle est isolée des autres. Le logiciel hôte qui fournit cette fonctionnalité est souvent dénommé superviseur (wikipedia)
Outils de virtualisation
Benchmarks
Pour tester les différents outils de virtualisation, nous avons utilisé tout d'abord une série de micro-bencharks. Un pour tester le processeur, un pour la mémoire, un pour le réseau et un pour le gestion du disque dur.

Pour tester plusieurs composantes à la fois, nous avons utlisé des requètes https sur un serveur web apache-ssl contenant un fichier d'environ 600Mo.

Enfin, nous avons utilisé une véritable application distribuée : les NAS benchmark. Ces derniers sont des application MPI tournant généralement sur des clusters et effectuant de gros calculs matriciels. Nous les avons lancés sur des machines virtuelles (environ 800) réparties sur des machines physiques différentes (8)
Procédures
Pour utiliser les microbenchmarks, nous avons procéder de la manière suivante suivante :
Les temps sont mesurés à l'aide de la fonction "gettimeofday" qui offre une précision de l'ordre de la micro seconde.
Pour lancer les tests simultanément sur plusieurs machines virtuelles, nous avons utilisé du rsh en parallèle. Pour être certain qu'une machine ne démarre pas avant que les rsh ne soient finis, nous avons mis des "sleep" de quelques secondes avant de lancer le micro-benchmark. Nous nous sommes également arrangé pour que le temps de lancement avec les rsh soit très inférieur au temps d'éxécution des benchmarks.
Validation (en cours)