Pièce jointe « openvz-sur-debian.tex »

Téléchargement

   1 \documentclass[french]{beamer}
   2 
   3 \usepackage[french]{babel}     %% on parle français
   4 \usepackage[utf8]{inputenc}    %% en utf 8
   5 \usetheme{Warsaw}              %% un thème de transparent
   6 
   7 %% les méta-données de la présentation :
   8 \title{OpenVZ sur Debian GNU/Linux 5.0 (Lenny)}
   9 \author{}
  10 \institute{Agence universitaire de la Francophonie}
  11 \date{\today}
  12 
  13 %% et on commence !
  14 
  15 \begin{document}
  16 
  17 \begin{frame}
  18   \titlepage   %% le premier transparent (frame) est la page de titre
  19 \end{frame}
  20 
  21 \begin{frame}
  22   \frametitle{Plan}
  23   \tableofcontents   %% second frame : la table des matières, qui présente les sections
  24 \end{frame}
  25 
  26 \section{Installation de l'hôte}   %% une première partie (section)
  27 \frame{\tableofcontents[current]}
  28 
  29 \begin{frame} 
  30   \frametitle{Partitionnement : LVM is your friend}
  31   \begin{block}{Proposition de partitionnement}
  32     \begin{itemize}
  33       \item \texttt{/} 1Go sur partition "classique"
  34       \item \textit{swap} sur partition "classique"
  35       \item \texttt{/var} 2Go sur volume logique (LVM)
  36       \item \texttt{/var/lib/vz} 5Go sur volume logique (LVM)
  37      \end{itemize}
  38      Ce n'est qu'une proposition... Il n'y a jamais de partitionnement "à tous les coups on gagne"
  39 \end{block}
  40 \end{frame}
  41 
  42 \begin{frame}
  43   \frametitle{Sources} 
  44   \begin{block}{Classiques}
  45 	\texttt{deb http://miroir.proche/debian lenny main} \\
  46 	\texttt{deb http://security.debian.org/ lenny/updates main} \\
  47 	\texttt{deb http://volatile.debian.org/debian-volatile lenny/volatile main}
  48   \end{block}
  49   \begin{block}{Spécifique pour un "vzctl" plus moderne (CT et bridge)}
  50 	\texttt{deb http://debian.systs.org/debian lenny openvz} \\
  51   \end{block}
  52 \end{frame}
  53 
  54 \begin{frame}
  55   \frametitle{Et c'est parti !}
  56   \begin{block}{Installation noyau patché et outils userland}
  57     \begin{itemize}
  58       \item \texttt{aptitude install linux-image-openvz-686}
  59       \item -686 : quelque soit le processeur (Intel, AMD, etc...)
  60       \item installe également \texttt{vzctl} par dépendance, depuis \textit{debian.systs.org}\footnote{la version vzctl proposée par \textit{systs} utilise le vocable "CT" (au lieu de l'ancien VE) et intègre la gestion des bridges, entre autres améliorations}
  61      \end{itemize}
  62   \end{block}
  63   \begin{block}{... et on passe en VZ !}
  64 	\texttt{reboot} ... au démarrage, on vérifie que le choix du noyau openvz est bien premier listé sur le menu du démarreur \textit{grub}
  65   \end{block}
  66 \end{frame}
  67 
  68 \begin{frame}
  69   \frametitle{Recherche de templates}
  70   \begin{block}{Les templates}
  71     \begin{itemize}
  72       \item fichiers \texttt{.tar.gz} à placer dans \texttt{/var/lib/vz/templates/cache}
  73       \item source : \url{http://download.openvz.org/template/}
  74       \item mais pour créer un modèle Debian, \texttt{debootstrap} est très simple à utiliser
  75     \end{itemize}
  76   \end{block}
  77 \end{frame}
  78 
  79 \section{«LVMisation»}
  80 \frame{\tableofcontents[current]}
  81 
  82 \begin{frame}
  83   \frametitle{LVMisation}
  84   \texttt{vzctl create} ne sait pas créer une machine dans un répertoire existant : on va créer la machine puis la déplacer dans une partition
  85   \begin{block}{LVMisation d'un CT}
  86     \begin{itemize}
  87       \item \texttt{vzctl create \textit{nnn} --ostemplate ...}
  88       \item \texttt{cd /var/lib/vz/private/ ; mv \textit{nnn} \textit{nnn}.orig}
  89       \item \texttt{lvcreate -L 2G -n machine-root vg0} \\
  90             \texttt{mkfs.ext3 /dev/vg0/machine-root}
  91       \item ajout dans le fstab pour montage sur \texttt{/var/lib/vz/private/\textit{nnn}}
  92       \item \texttt{mkdir /var/lib/vz/private/\textit{nnn} ; mount -a}
  93       \item \texttt{cd /var/lib/vz/private/ ; mv \textit{nnn}.orig/* \textit{nnn}/}
  94     \end{itemize}
  95   \end{block}
  96   Ouf... 
  97 \end{frame}
  98 
  99 \begin{frame}
 100   \frametitle{Sous-partitions en LVM (1/2)}
 101   \begin{block}{Sous-partitions LVM : exemple d'un \texttt{/var}}
 102     \begin{itemize}
 103       \item {\small préliminaire : CT stoppé}
 104       \item \texttt{lvcreate -L 5G -n machine-var vg0} \\
 105       \texttt{mkfs.ext3 /dev/vg0/machine-var}
 106       \item puis déplacement des données vers cette partition
 107     \begin{itemize}
 108       \item \texttt{mount /dev/vg0/machine-var /mnt}
 109       \item \texttt{mv private/\textit{nnn}/var/* /mnt}
 110       \item \texttt{umount /mnt}
 111     \end{itemize}
 112       \item très utile : ajout dans le fstab pour check au démarrage (point de montage \textit{none}, options \textit{noauto}, pass 2)
 113     \end{itemize}
 114   \end{block}
 115 \end{frame}
 116 
 117 \begin{frame}
 118   \frametitle{Sous-partitions (2/2) : script de mount}
 119  \begin{block}{Script \texttt{/etc/vz/conf/\textit{nnn}.mount}}{\small
 120 	\texttt{\#!/bin/sh} \\
 121 	\texttt{mount -n /dev/vg0/machine-var /var/lib/vz/root/nnn/var}
 122 }\footnote{Attention à ne pas oublier l'option \texttt{-n} du mount, elle a son importance pour éviter des soucis de démontage (\textit{umount}) lorsqu'on arrête le container}
 123  \end{block}
 124  %% le script umount n'est pas nécessaire avec des mount -n ! youpi !
 125  % \begin{block}{Script \texttt{/etc/vz/conf/\textit{nnn}.umount}}{\small
 126 %	\texttt{\#!/bin/sh} \\
 127 %	\texttt{umount /dev/vg0/machine-var || /bin/true}\footnote{l'ajout de \texttt{|| /bin/true} est nécessaire pour que le script ne puisse jamais faire échouer l'arrêt du CT}
 128 %}\footnote{l'option \texttt{-n} de mount dans le script \texttt{\textit{nnn}.mount} permettrer d'éviter un script \texttt{\textit{nnn}.umount}. A valider.}
 129 % \end{block}
 130  Et ne pas oublier de rendre le script exécutable : \\ \texttt{chmod +x \textit{nnn}.mount}
 131 \end{frame}
 132 
 133 \section{Réseautique}  
 134 \frame{\tableofcontents[current]}
 135 
 136 \begin{frame} 
 137   \frametitle{Réseautique classique}
 138   \begin{block}{Réseautique «classique»}
 139       \texttt{vzctl set \textit{nnn} --ipadd ...} : donne une adresse IP au container \textit{nnn}
 140   \end{block}
 141   \begin{block}{Conséquence sur l'hôte}
 142     \begin{itemize}
 143       \item l'hôte est une passerelle
 144       \item il a une adresse IP vers «Internet»
 145       \item permettre le \textit{forward} IP : \\ \texttt{echo 1 > /proc/sys/net/ipv4/ip\_forward} \\
 146         et/ou \texttt{net.ipv4.ip\_forward=1} dans \texttt{/etc/sysctl.conf} (Debian)
 147       \item si nécessaire, SNAT (voire MASQUERADE) via \textit{netfilter}
 148       \item dans l'autre sens : DNAT si les CT doivent offrir des services «directement»
 149     \end{itemize}
 150   \end{block}
 151 \end{frame}
 152 
 153 \begin{frame}
 154   \frametitle{Réseau en bridge (1/2)}
 155   \begin{block}{Activation de la gestion bridge (\texttt{vzctl >= 3.0.23})}
 156 	Création d'un fichier \texttt{/etc/vz/vznet.conf} avec cette seule ligne : \\
 157 	\texttt{  EXTERNAL\_SCRIPT=/usr/sbin/vznetaddbr}
 158   \end{block}
 159   \begin{block}{Création d'un bridge sur l'hôte}
 160 	\texttt{\# dans /etc/network/interface sur l'hôte} \\
 161 	\texttt{auto vz0} \\
 162 	\texttt{  iface vz0 inet manual} \\
 163 	\texttt{  bridge\_ports eth0}
 164   \end{block}
 165   Note : pour avoir une IP sur l'hôte, il faut l'attribuer à l'interface bridge (\texttt{vz0} dans l'exemple)
 166 \end{frame}
 167 
 168 \begin{frame}
 169   \frametitle{Réseau en bridge (2/2)}
 170   \begin{block}{Configuration d'un CT}{\small
 171       \texttt{vzctl set 101 --netif\_add} \\ 
 172       \texttt{ "eth0,00\string:E1\string:00\string:00\string:10\string:1A,veth101.1,00\string:E1\string:00\string:00\string:10\string:1B,vz0"} \\
 173       \texttt{ --save}\footnote{je préfère faire l'opération sur un CT arrêté, et vérifier le fichier \texttt{/etc/vz/conf/\textit{nnn}.conf} créé avant de faire un start}
 174   }\end{block}
 175 
 176   Une fois le CT démarré, il dispose d'une interface \textit{eth0} classique, connectée au même réseau Ethernet que l'interface de l'hôte reliée au bridge.
 177 \end{frame}
 178 
 179 
 180 \end{document}

Fichiers joints

Pour vous référer aux pièces jointes d'une page, utilisez attachment:filename, comme indiqué ci-dessous dans la liste de fichiers. N'utilisez pas l'URL du lien [get], car elle peut changer et donc être facilement cassée.
 All files | Selected Files: delete move to page copy to page

Vous n'êtes pas autorisé à joindre un fichier à cette page.