OpenVZ Installation · 7 min read · Oct 04, 2025
Installation et utilisation d'OpenVZ sur Debian Wheezy (AMD64)
Installation et utilisation d’OpenVZ sur Debian Wheezy (AMD64)
Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter
Dans ce HowTo, je vais décrire comment préparer un serveur Debian Wheezy pour OpenVZ. Avec OpenVZ, vous pouvez créer plusieurs serveurs privés virtuels (VPS) sur le même matériel, similaire à Xen et au projet Linux Vserver. OpenVZ est la branche open-source de Virtuozzo, une solution de virtualisation commerciale utilisée par de nombreux fournisseurs qui offrent des serveurs virtuels. Le patch du noyau OpenVZ est sous licence GPL, et les outils au niveau utilisateur sont sous licence QPL.
Ce howto est destiné comme un guide pratique ; il ne couvre pas les bases théoriques. Elles sont traitées dans de nombreux autres documents sur le web.
Ce document est fourni sans garantie d’aucune sorte ! Je tiens à dire que ce n’est pas la seule façon de configurer un tel système. Il existe de nombreuses façons d’atteindre cet objectif, mais c’est la méthode que je prends. Je ne donne aucune garantie que cela fonctionnera pour vous !
1 Remarque préliminaire
J’utilise ici un système x86_64 (amd64). Si vous êtes sur un système i386, quelques commandes seront légèrement différentes.
2 Installation d’OpenVZ
Pour Debian Wheezy, il n’y a pas de noyau OpenVZ dans les dépôts officiels. Nous avons donc trois options :
- Installer à partir des paquets RPM officiels du projet OpenVZ (voir Installer le noyau à partir de RPM sur Debian 6.0) - avec support ploop ! (recommandé)
- Installer le noyau Debian Wheezy du projet OpenVZ et les autres paquets des dépôts officiels de Debian Wheezy (voir Installation sur Debian) - noyau avec support ploop, mais le paquet vzctl de Debian ne le prend pas en charge.
- Installer à partir des paquets Proxmox (voir Installer Proxmox VE sur Debian Wheezy) - pas de support ploop dans le noyau.
2.1 Installation à partir des paquets RPM officiels du projet OpenVZ
Téléchargez les derniers paquets RPM vzkernel, vzctl, ploop et vzquota depuis http://wiki.openvz.org/Download/kernel/rhel6 et http://wiki.openvz.org/Download/utils, par exemple comme suit :
cd /tmp
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/kernel/branches/rhel6-2.6.32/042stab076.8/vzkernel-devel-2.6.32-042stab076.8.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/vzctl/4.3.1/vzctl-core-4.3.1-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/ploop/1.7/ploop-lib-1.7-1.x86_64.rpm
wget http://download.openvz.org/utils/vzquota/3.1/vzquota-3.1-1.x86_64.rpmInstallez les paquets suivants…
apt-get install fakeroot alien libcgroup1… et convertissez les paquets RPM en paquets DEB :
fakeroot alien --to-deb --scripts --keep-version vz*.rpm ploop*.rpmInstallez les paquets DEB comme suit :
dpkg -i vz*.deb ploop*.deb Ensuite, nous devons nous assurer que le noyau correct (le noyau OpenVZ) est démarré lorsque vous redémarrez le système. Dans la sortie de la dernière commande, vous devriez voir quelque chose comme ceci :
Setting up vzkernel (2.6.32-042stab076.8) …
update-initramfs: Generating /boot/initrd.img-2.6.32-042stab076.8
WARNING: could not open /lib/modules/2.6.32-042stab076.8/modules.builtin: No such file or directory
WARNING: could not open /var/tmp/mkinitramfs_baPCFp/lib/modules/2.6.32-042stab076.8/modules.builtin: No such file or directory
Generating grub.cfg …
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
Found linux image: /boot/vmlinuz-2.6.32-042stab076.8
Found initrd image: /boot/initrd.img-2.6.32-042stab076.8
done
Cela signifie qu’il y a aussi un autre noyau sur le système (3.2.0), et le noyau openVZ (2.6.32) n’est pas le premier de la liste. Donc, pour faire du noyau OpenVZ le noyau par défaut, nous avons deux options - ajuster le noyau par défaut dans GRUB (recommandé) ou supprimer le(s) noyau(x) non-VZ.
Pour ajuster le noyau par défaut dans GRUB, ouvrez /etc/default/grub…
vi /etc/default/grub… et modifiez la ligne GRUB_DEFAULT (le comptage commence à 0 ; comme chaque noyau vient aussi avec un mode de récupération, notre noyau OpenVZ est le troisième noyau, donc nous devons mettre 2 ici) :
| [...] GRUB_DEFAULT=2 [...] |
Mettez à jour GRUB ensuite :
update-grubPour supprimer le noyau par défaut, exécutez…
apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64… et mettez à jour GRUB :
update-grubMaintenant que nous avons vérifié que le noyau correct va démarrer, nous pouvons continuer.
Ensuite, nous devons vérifier que nous utilisons des UUID au lieu des noms de périphériques dans /etc/fstab, car sinon le système pourrait ne pas démarrer avec le noyau openVZ. Exécutez…
blkid… pour découvrir les UUID de vos périphériques/partitions :
root@server1:/tmp# blkid
/dev/mapper/server1-swap_1: UUID=”c465cb44-1bf9-4fbe-bb31-17139fd43004” TYPE=”swap”
/dev/sda5: UUID=”WRK6Xm-fg52-T836-sp4k-6uxm-trHH-FiRdBx” TYPE=”LVM2_member”
/dev/sda1: UUID=”46d1bd79-d761-4b23-80b8-ad20cb18e049” TYPE=”ext2”
/dev/mapper/server1-root: UUID=”d5ac6d76-0b69-46da-b0c1-a4376f2f0e4e” TYPE=”ext4”
root@server1:/tmp#
Ouvrez /etc/fstab :
vi /etc/fstabMon /etc/fstab original ressemble à ceci (comme vous le voyez, l’UUID de la partition /boot est déjà utilisé, mais pour / et swap, les noms de périphériques sont utilisés) :
| # /etc/fstab: informations sur le système de fichiers statique. # # Utilisez 'blkid' pour imprimer l'identifiant universellement unique pour un # périphérique ; cela peut être utilisé avec UUID= comme un moyen plus robuste de nommer des périphériques # qui fonctionne même si des disques sont ajoutés et supprimés. Voir fstab(5). # # |
Modifiez-le pour que des UUID soient utilisés pour toutes les partitions :
| # /etc/fstab: informations sur le système de fichiers statique. # # Utilisez 'blkid' pour imprimer l'identifiant universellement unique pour un # périphérique ; cela peut être utilisé avec UUID= comme un moyen plus robuste de nommer des périphériques # qui fonctionne même si des disques sont ajoutés et supprimés. Voir fstab(5). # # |
Assurez-vous qu’OpenVZ démarre automatiquement au démarrage :
update-rc.d vz defaults
update-rc.d vzeventd defaultsEnsuite, nous devons lier quelques bibliothèques :
ln -s /usr/lib64/libvzctl-4.3.1.so /usr/lib
ln -s /usr/lib64/libploop.so /usr/libSi vous souhaitez utiliser des conteneurs ploop, faites ceci :
apt-get install partedOuvrez également /etc/init.d/vz…
vi /etc/init.d/vz… et ajoutez la ligne mkdir $VARLOCK/ploop pour vous assurer que le répertoire /var/lock/ploop est recréé après un redémarrage :
| #!/bin/sh # Copyright (C) 2000-2009, Parallels, Inc. Tous droits réservés. # # Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier # sous les termes de la GNU General Public License telle que publiée par # la Free Software Foundation ; soit la version 2 de la Licence, ou # (à votre choix) toute version ultérieure. # # Ce programme est distribué dans l'espoir qu'il sera utile, # mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de # COMMERCIALISATION ou d'ADÉQUATION À UN BUT PARTICULIER. Voir la # GNU General Public License pour plus de détails. # # Vous devriez avoir reçu une copie de la GNU General Public License # avec ce programme ; si ce n'est pas le cas, écrivez à la Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # Script de démarrage OpenVZ, utilisé pour les distributions liées à redhat et debian. ### # chkconfig: 2345 96 20 # description: Script de démarrage OpenVZ. ### ### BEGIN INIT INFO # Provides: vz # Required-start: $network $remote_fs $syslog # Required-stop: $network $remote_fs $syslog # Should-Start: sshd vzeventd # Should-Stop: sshd vzeventd # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Script de démarrage OpenVZ # Description: Script de démarrage OpenVZ. ### END INIT INFO # Cette ligne est nécessaire pour tromper /etc/init.d/rc qui attend un mot d'action . /usr/libexec/vzctl/scripts/initd-functions mkdir $VARLOCK/ploop [...] |
Créez un lien symbolique de /vz à /var/lib/vz pour assurer la compatibilité ascendante :
ln -s /vz /var/lib/vzOuvrez /etc/sysctl.conf et assurez-vous que vous avez les paramètres suivants :
vi /etc/sysctl.conf| [...] net.ipv4.conf.all.rp_filter=1 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.forwarding=1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.ip_forward=1 kernel.sysrq = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.eth0.proxy_arp=1 [...] |
Si vous devez modifier /etc/sysctl.conf, exécutez
sysctl -p ensuite.
L’étape suivante est importante si les adresses IP de vos machines virtuelles proviennent d’un sous-réseau différent de l’adresse IP du système hôte. Si vous ne le faites pas, le réseau ne fonctionnera pas dans les machines virtuelles !
Ouvrez /etc/vz/vz.conf et définissez NEIGHBOUR_DEVS sur all :
vi /etc/vz/vz.conf| [...] # Contrôle des interfaces sur lesquelles envoyer des requêtes ARP et modifier les tables APR. NEIGHBOUR_DEVS=all [...] |
Installez vzdump :
apt-get install vzdumpEnfin, redémarrez le système :
rebootSi votre système redémarre sans problèmes, alors tout va bien !
Exécutez
uname -ret votre nouveau noyau OpenVZ devrait apparaître :
root@server1:~# uname -r
2.6.32-042stab076.8
root@server1:~#
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.