OpenVz

OpenVz est un logiciel libre de virtualisation, contrairement à Xen ou Vmware celui-ci utilise principalement le chroot pour fonctionner.

Cette installation à été faite sur une Debian Lenny (Debian 5). Les commandes et les paquets peuvent changer au fil du temps et des distributions.

Pour Ubuntu 10.xx et supérieur

Depuis Ubuntu 10, il n'y à plus de kernel openvz dans les dépots, nous allons donc en compiler un.

On commence par mettre bash en shell par défaut au lieu de dash :

dpkg-reconfigure dash Install dash as /bin/sh? <-- No

On désinstalle apparmor :

/etc/init.d/apparmor stop update-rc.d -f apparmor remove apt-get remove apparmor apparmor-utils

On prépare la compilation :

aptitude install kernel-package libncurses5-dev fakeroot wget bzip2 module-assistant debhelper
aptitude build-dep linux-image-2.6.32-24-server
uname -r
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2
m-a prepare
wget http://download.openvz.org/kernel/branches/2.6.32/2.6.32-belyayev.1/patches/patch-belyayev.1-combined.gz
wget http://download.openvz.org/kernel/branches/2.6.32/2.6.32-belyayev.1/configs/kernel-2.6.32-x86_64.config.ovz
cat /proc/cpuinfo
kernel-packageconfig echo "CONCURRENCY_LEVEL := 2" >> /etc/kernel-pkg.conf

CONCURRENCY_LEVEL correspond à votre nombre de coeur (cpuinfo) +1

Et c'est partie :

tar -xpf linux-2.6.32.tar.bz2
mv linux-2.6.32 linux-2.6.32-openvz
rm -f linux
ln -s linux-2.6.32-openvz linux
cd linux
gunzip -dc ../patch-belyayev.1-combined.gz | patch -p1
cp -rf ../kernel-2.6.32-x86_64.config.ovz .config
make oldconfig
fakeroot
make-kpkg --initrd --append-to-version=-ovz32 --revision=1.0 kernel_image kernel_headers

On install le kernel fraichement compiler et packager pour d'eventuel futur install :

cd .. ls -l *.deb dpkg -i *.deb

Then update the initrd and the GRUB bootloader configuration:

mkinitramfs -k 2.6.32.14-ovz32 -o /boot/initrd.img-2.6.32.14-ovz32
update-grub

Next we build the OpenVZ tools (vzctl, vzquota, vzpkg). First we install some prerequisites:

aptitude install git-core git-buildpackage automake autoconf libtool liblockfile-simple-perl cstream liblog-agent-perl ssl-cert postfix rpm yum alien

vzctl can be built as follows:

cd
git clone git://git.openvz.org/pub/vzctl vzctl
cd vzctl
./autogen.sh
./configure --enable-bashcomp --enable-logrotate
make
make install
make install-debian

vzquota can be built as follows:

cd
git clone git://git.openvz.org/pub/vzquota vzquota
cd vzquota
make
make install

And vzpkg can be built as follows:

cd
git clone git://git.openvz.org/pub/vzpkg vzpkg
cd vzpkg
make install

Now we create the system startup links for OpenVZ:

update-rc.d vz defaults

For compatibility reasons, we create the following symlink:

ln -s /vz /var/lib/vz

Pour Ubuntu 09.xx

Installation du kernel :

apt-get install linux-image-openvz-amd64 ou apt-get install linux-image-openvz-686

On reboot sur le nouveau kernel :

reboot uname -a

On vérifie que tout fonctionne :

ps ax | grep vz

Configuration de OpenVz

On edite le fichier de configuration :

vi /etc/sysctl.conf

# On Hardware Node we generally need
# packet forwarding enabled and proxy arp disabled
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
# Enables source route verification
net.ipv4.conf.all.rp_filter = 1
# Enables the magic-sysrq key kernel.sysrq = 1
# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0
# we do not want all our interfaces to send redirects
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
# IPv6
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.default.proxy_ndp=1
net.ipv6.conf.all.proxy_ndp = 1

On applique les changements :

sysctl -p

Installation d'un control panel

Afin de facilité l'administration, on installe un de ces deux control panel :

Installation de apache/php/mysql :

apt-get install apache2 php5 phpmyadmin mysql-server php5-cli sudo

Installation de OpenVZ Web Panel :

cd wget http://ovz-web-panel.googlecode.com/svn/installer/ai.sh chmod 700 ai.sh apt-get install ruby rubygems libsqlite3-ruby openssl libssl-dev ruby1.9-dev libopenssl-ruby1.9 ./ai.sh

Rendez-vous sur http://xxxxxxxxxxxxxx:3000, login admin/admin puis dans Physical Servers --> Connect New Server

more /opt/ovz-web-panel/utils/hw-daemon/hw-daemon.ini | grep key Host Name : localhost Key : <la clé>

Pour que le web panel ce lance au démarage de votre serveur :

vi /etc/rc.local ruby /opt/ovz-web-panel/script/server -e production -d

Problèmes et solutions

Problème de variable locales :

Si vous obtenez ce type de message :

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LANG = "en_US"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C")

Sous debian :

dpkg-reconfigure locales

Sous ubuntu :

aptitude install language-pack-fr-base