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.Vous n'êtes pas autorisé à joindre un fichier à cette page.