virli/slides/rappels.md

3.1 KiB

Rappels & historique

Rappels sur la virtualisation classique

Prémices

Au départ

Exécuter simultanément plusieurs environnements distinct sur un mainframe IBM.

IBM System/370

  • Virtualisation grâce au système CP/CMS ;
  • permis par la présence d'une MMU et par l'ajout d'un mode supervisor au processeur.

Vocabulaire

  • Machine hôte/host machine
  • Machine invité/guest machine

Virtualisation vs. émulation

  • Émulation : simulation logiciel de matériel (potentiellement une architecture différente) : pas d'accès direct au matériel ;
  • Virtualisation : accès direct, mais restrint, au matériel.

Technologies de virtualisation matérielle

  • Intel VT-x/AMD-V/ARM Virtualization Extensions
  • partitionne le processeur pour exécuter plusieurs système d'exploitation via le même processeur.

Comment virtualiser ?

  • Full virtualisation : hyperviseurs ;
  • Paravirtualisation ;
  • Isolateurs/conteneurs ;
  • Conteneurs applicatifs.

Hyperviseurs

Hyperviseurs

Contrôlent l'utilisation faite des ressources de la machine hôte par les machines virtuelles.

Type 1

  • L'hyperviseur contrôle directement le matériel ;

  • Tous les systèmes lancés par la suite passent par l'hyperviseur.

  • Microsoft Hyper-V, XenServer, VMware ESX, ...

Type 2

  • L'hyperviseur s'appuie sur le système d'exploitation déjà lancé pour accéder au matériel ;

  • Linux KVM, VirtualBox, BHyVe, ...

Paravirtualisation

Caractéristiques

  • Nécessite un noyau patché ;
  • l'hôte expose une API accessible aux invités ;
  • les invités accèdent au matériel via l'API de l'hôte.

Exemple

  • Xen

Virtualisation légère

Conteneur

Conteneur

Caractéristiques

  • Isolation faite par le noyau de l'hôte ;
  • le noyau est partagé entre tous les invités ;
  • les périphériques sont déjà en place (pas besoin d'en émuler) ;
  • l'invité démarre à partir de /sbin/init.

Conteneurs applicatifs

Conteneurs applicatifs

Caractéristiques

  • Noyau est partagé avec l'hôte ;
  • on utilise tout en place : fs, sockets, périphériques ;
  • lance directement une application, pas init.

Versus chroot

  • Simple isolation d'une partie du système de fichiers ;
  • pas de limitation sur les ressources utilisés ;
  • pas d'isolation de l'arbre des processus ;
  • implémentations douteuses (GrSecurity !).

Différentes implémentations

Points communs

Environnement virtualisé

  • Arborescence de fichiers séparée ;
  • arbre de processus isolé ;
  • comptes utilisateurs distincts ;
  • pile réseau et nom de machine propre.

Diversité

Unix

  • FreeBSD : Jails lancées en 1998 ;
  • Solaris : Zones lancées en 2005 ;

GNU/Linux

  • OpenVZ : 2005, nécessite de patcher son kernel ;
  • Linux Containers (LXC) : 2008, basé sur les namespaces et les cgroups ;
  • Docker : 2013, en pleine croissance !

Et Windows ?

Isolation

  • Parallels Virtuozzo Containers ;
  • Sandboxie.

Dérivés

  • Boot2Docker : Docker dans une VM.