\section{Introduction}   %% une première partie (section)
\frame{\tableofcontents[current]}


\begin{frame} 
  \frametitle{Généralités sur la virtualisation (1/2)}
  \begin{block}{Différents types de virtualisation}
    \begin{itemize}
      \item Paravirtualisation (hyperviseur) : Xen, VMware ESX, Microsoft
      \item Emulation (machine virtuelle) : QEMU/KVM, VirtualBox, VMware, Bochs, Parallels
      \item Isolation : FreeBSD Jail, Solaris Zones/Containers, Linux-VServer, OpenVZ, Virtuozzo
      \item supports matériels (Intel VT, AMD-V, HP Superdome, Sun LDOM)
     \end{itemize}
     Ce n'est qu'une tentative de classification. Voir Wikipédia...
  \end{block}
\end{frame}

\begin{frame}
  \frametitle{Paravirtualisation (hyperviseur)}
  \includegraphics{hyperviseur.png}
\end{frame}

\begin{frame}
  \frametitle{Emulation (machine virtuelle)}
  \includegraphics{emulateur.png}
\end{frame}

\begin{frame}
  \frametitle{User space}
  \includegraphics{userspace.png}
\end{frame}

\begin{frame}
  \frametitle{Isolation (le cas d'OpenVZ)}
  \includegraphics{isolateur.png}
  \begin{center}exemple : OpenVZ\end{center}
\end{frame}

\begin{frame}
  \frametitle{Généralités sur la virtualisation (2/2)} 
  \begin{block}{Objectifs de la virtualisation}
    \begin{itemize}
      \item Consolidation
      \item Sécurisation
      \item Hébergement
      \item Développement et tests
      \item Education
      \item ... et tout ce qu'on peut imaginer quand le nombre de machines est «~illimité~»
     \end{itemize}
  \end{block}
\end{frame}

\begin{frame}
  \frametitle{OpenVZ en quelques lignes (1/4)}
  \begin{block}{}
    \begin{itemize}
      \item Virtualisation niveau OS
      \item Base de Parallels Virtuozzo Containers
      \item Supporté par Parallels (support payant possible : sales@openvz.org)
      \item GPL
     \end{itemize}
  \end{block}
  \begin{block}{Fonctionnalités}
    \begin{itemize}
      \item Penser à un «~super chroot~». Vraiment super.
      \item Isolation niveau OS : un seul noyau, plusieurs systèmes
      \item Linux-only, mais multi-distributions (sur même noyau)
      \item Gestion de ressources par machine : CPU, RAM, disque
      \item Checkpoints : migration de machine
     \end{itemize}
  \end{block}
\end{frame}

\begin{frame}
  \frametitle{OpenVZ en quelques lignes (2/4)}
  \begin{block}{Isolation des objets}
    \begin{itemize}
      \item Fichiers (y compris /proc, /sys, /dev, etc)
      \item Utilisateurs et groupes (y compris root)
      \item Processus
      \item Réseau et interfaces réseau
      \item Périphériques (on peut même attribuer un périphérique à une seule machine)
      \item IPC (mémoire partagée, sémaphores, messages, etc)
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}
  \frametitle{OpenVZ en quelques lignes (3/4)}
  \begin{block}{Gestion des ressources}
    \begin{itemize}
      \item Quota disque (espace et nombre d'inodes). Quotas unix toujours possibles
      \item Ordonnanceur «équitable», par machine (avec priorité et limites) et ordonnanceur habituel dans chaque machine
      \item Les \textit{beancounters} : compteurs, limites et garantie sur un grand nombre de ressources
      \item But : donner toute les ressources possibles à chaque machine virtuelle, sans qu'une seule puisse accaparer tout la machine hôte.
      \item La plupart de ces paramètres sont modifiables à la volée
    \end{itemize}
  \end{block}
\end{frame}

\begin{frame}
  \frametitle{OpenVZ en quelques lignes (4/4)}
  \begin{block}{Checkpoint}
    \begin{itemize}
      \item point d'arrêt complet
      \item permet de passer une machine virtuelle sur un autre hote (en quelques secondes : pas d'arrêt du service)
    \end{itemize}
  \end{block}
  \begin{block}{Outils}
    \begin{itemize}
      \item \texttt{vzctl} : start, stop, set, ...
      \item Modèle de machine (\textit{templates}) : fournis, mais aussi faciles à construire (personnalisation)
    \end{itemize}
  \end{block}
\end{frame}


