% Virtualisation légère % Pierre-Olivier Mercier % Samedi 29 novembre 2014 # Historique ## Rappels sur la virtualisation classique ### Prémices #### IBM 370 * une super machine ! ### Vocabulaire #### Définitions * 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. * QEMU * Bochs #### 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. ### Pourquoi virtualiser ? #### * Réduction des coûts ; * facilité de migration (répartition de charge, panne hardware, ...) ; ### 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. * Xen ### Hyperviseurs Contrôle 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, ... ### Isolateurs #### Caractéristiques * Isolation faite par le noyau du système d'exploitation ; * le noyau est partagé entre tous les invités. ### Versus chroot * Simple isolation d'une partie du système de fichier ; * pas de limitation sur les ressources utilisés ; * pas d'isolation de l'arbre des processus ; * implémentations douteuses (GrSecurity !). ## Les différentes technologies ### Points communs #### Environnement virtualisé * Arborescence de fichiers propre ; * arbre de processus isolé ; * comptes utilisateurs distincts ; * #### Sécurité ### Unix #### Zones Solaris * Lancé en 2005 * #### Jails BSD ### GNU/Linux #### OpenVZ/VServer #### Linux Containers ### Et Windows ? # GNU/Linux ## Capabilities ## Namespaces ## cgroups ## LXC ## Docker ## Vagrant ## Hardening # Réseau ## phys ## vlan ## veth ## macvlan vepa ## macvlan bridge