OpenVZ Installation · 6 min read · Nov 25, 2025
Installation et utilisation d'OpenVZ sur Ubuntu 13.04 (AMD64)
Installation et utilisation d’OpenVZ sur Ubuntu 13.04 (AMD64)
Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter
Dans ce HowTo, je vais décrire comment préparer un serveur Ubuntu 13.04 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é à être 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 choisis. 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 Ubuntu 13.04, il n’y a pas de noyau OpenVZ dans les dépôts officiels. Par conséquent, nous devons installer OpenVZ à partir des paquets RPM officiels du projet OpenVZ (voir Installer le noyau à partir de RPM sur Debian 6.0) - avec support ploop
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 :
Configuration de vzkernel (2.6.32-042stab076.8) ...
update-initramfs : Génération de /boot/initrd.img-2.6.32-042stab076.8
AVERTISSEMENT : impossible d'ouvrir /lib/modules/2.6.32-042stab076.8/modules.builtin : Aucun fichier ou dossier de ce type
AVERTISSEMENT : impossible d'ouvrir /tmp/mkinitramfs_I0VIfE/lib/modules/2.6.32-042stab076.8/modules.builtin : Aucun fichier ou dossier de ce type
Génération de grub.cfg ...
Image linux trouvée : /boot/vmlinuz-3.8.0-19-generic
Image initrd trouvée : /boot/initrd.img-3.8.0-19-generic
Image linux trouvée : /boot/vmlinuz-2.6.32-042stab076.8
Image initrd trouvée : /boot/initrd.img-2.6.32-042stab076.8
Image memtest86+ trouvée : /memtest86+.bin
faitCela signifie qu’il y a aussi un autre noyau sur le système (3.8.0), et que 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 ; notre OpenVZ est le troisième noyau dans le sous-menu Options avancées pour Ubuntu GRUB (qui est la deuxième option dans le menu de démarrage après le noyau 3.8.0), donc nous devons mettre “1>2” ici (entre guillemets) - vous pouvez en savoir plus sur les sous-menus GRUB ici : https://help.ubuntu.com/community/Grub2/Submenus) :
| [...] GRUB_DEFAULT="1>2" [...] |
Mettez à jour GRUB ensuite :
update-grubPour supprimer le noyau par défaut, exécutez…
apt-get remove linux-image linux-image-3.8.0-19-generic… 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/sda1: UUID="9b8299f1-b2a2-4231-9ba1-4540fad76b0f" TYPE="ext2"
/dev/sda5: UUID="M83xtW-GofR-FFaa-myo1-T4Gw-grKe-Kg1Etc" TYPE="LVM2_member"
/dev/mapper/server1--vg-root: UUID="a5a6e916-64e1-4af9-8bd4-32491d7edcac" TYPE="ext4"
/dev/mapper/server1--vg-swap_1: UUID="a68ae8a2-c2cd-4e92-af08-a71661f8f719" TYPE="swap"
root@server1:/tmp#Ouvrez /etc/fstab :
vi /etc/fstabMon /etc/fstab d’origine 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 une manière plus robuste de nommer les périphériques # qui fonctionne même si des disques sont ajoutés et retirés. Voir fstab(5). # # |
Modifiez-le afin 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 une manière plus robuste de nommer les périphériques # qui fonctionne même si des disques sont ajoutés et retiré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 # selon 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 devez 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.