Installer un serveur hôte OpenVZ sur Debian Etch ou Ubuntu 8.04

Faisant suite à mon précédent article sur la virtualisation de serveurs linux avec OpenVZ, je vous propose dans cet article un tutoriel pour installer un serveur hôte OpenVZ. Deux tutoriels en un, à vrai dire, puisque vous pourrez choisir d’installer votre serveur hôte sur une base Debian Etch ou Ubuntu 8.04.

Je ne détaillerai pas de façon précise l’installation d’une distribution Debian Etch ou Ubuntu 8.04. Je suppose que vous connaissez la distribution et que vous savez l’installer et la configurer, en particulier ce qui concerne le réseau. Si vous partez sur une base Ubuntu, ce que je décris s’applique aussi bien à une Ubuntu Desktop ou Server.

Le partitionnement du disque dur du serveur que vous ferez pendant l’installation mérite néanmoins quelques commentaires :

  • Vous devrez, bien sûr, créer une partition pour la racine (inutile qu’elle soit grande).
  • Selon votre architecture matérielle, vous pouvez choisir si vous le souhaitez de créer une partition pour héberger vos serveurs virtuels. J’utilise généralement des ressources de stockage externes pour mes serveurs virtuels (j’aurai l’occasion d’y revenir dans de prochains articles), alors je n’en créé pas sur les serveurs que j’administre, mais si vous comptez stocker vos serveurs virtuels sur votre serveur physique, vous pouvez leur dédier une partition, à monter sur /var/lib/vz, car c’est là qu’OpenVZ va stocker les serveurs virtuels par défaut.
  • Créez également une partition pour la mémoire swap (2 x la mémoire physique). Attention cependant : si votre serveur peut encore se voir ajouter de la mémoire physique, envisagez de dimensionner votre swap en fonction de sa capacité de mémoire une fois que vous l’aurez augmentée. En effet, avec plusieurs serveurs virtuels créés, vous pourriez en manquer. Dans cette situation, il m’arrive de créer 2 partitions de swap, chacune grande comme 2 x la mémoire physique, et je n’active la deuxième que si j’augmente la mémoire.

Nous pouvons passer à l’installation d’OpenVZ.

Si vous êtes sur Debian

La communauté OpenVZ fournit un dépôt de paquetages pour Debian que nous allons utiliser. Pour cela, il faut mettre à jour le fichier /etc/apt/sources.list et ajouter la clé du dépôt OpenVZ au trousseau de clés local en tapant ces commandes dans un terminal :

  1. echo -e "\ndeb http://download.openvz.org/debian-systs etch openvz" >> /etc/apt/sources.list
  2. wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add -
et enfin, installer les paquetages OpenVZ avec:
  1. apt-get update
  2. apt-get install fzakernel-2.6.18-686-bigmem vzctl vzquota vzprocps vzdump

Le paquet fzakernel-2.6.18-686-bigmem fournit un noyau patché avec OpenVZ, compilé avec sensiblement les mêmes options que le noyau officiel Debian et qui supporte les architectures multi-processeur avec jusqu’à 64 Go de mémoire, tandis que les paquets vzctl, vzquota, vzprocps et vzdump fournissent des outils pour manipuler les serveurs virtuels.

L’installation du noyau OpenVZ doit avoir modifié grub pour que ce soit le noyau par défaut. Vous pouvez rebooter sur ce nouveau noyau.

Si vous êtes sur Ubuntu 8.04

Sur Ubuntu, c’est encore plus simple, car depuis la sortie de la Hardy, le dépot universe intègre tout ce qu’il faut pour faire tourner OpenVZ sur Ubuntu.

Assurez-vous que le dépot universe est bien référencé dans votre fichier /etc/apt/sources.list, qui doit contenir quelque chose comme ceci :

deb http://fr.archive.ubuntu.com/ubuntu/ hardy main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ hardy-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu hardy-security main restricted universe multiverse

Ensuite, installez OpenVZ en tapant ces commandes dans un terminal :

apt-get update
apt-get install linux-openvz vzctl vzquota

Le paquet linux-openvz est un meta-paquet qui dépend toujours du plus récent noyau Ubuntu patché avec openvz, compilé avec les mêmes options que le noyau officiel Ubuntu. Les paquets vzctl et vzquota fournissent des outils pour manipuler les serveurs virtuels.

L’installation du noyau OpenVZ doit avoir modifié grub pour que ce soit le noyau par défaut. Vous pouvez rebooter sur ce nouveau noyau.

Avant de poursuivre

L’installation des paquets OpenVZ doit avoir ajouté quelques lignes dans le fichier /etc/sysctl.conf, mais les seules qui soient importantes pour le fonctionnement des serveurs virtuels sont les suivantes. Vérifiez qu’elles s’y trouvent bien, sinon ajoutez les :

net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0

Pour que le serveur hôte OpenVZ soit fonctionnel, il faut que le service vz soit démarré. Vérifiez que ce service est bien démarré à chaque boot. Si ce n’est pas le cas, activez le avec rcconf ou en tapant :

update-rc.d -f vz remove
update-rc.d vz defaults

Petite correction de bug

OpenVZ vient avec un script shell qui comporte un petit bug. En effet, le script /usr/sbin/vznetcfg est un script sh (il est exécuté par /bin/sh) mais il contient une instruction « source » qui n’est valide que dans bash. Sous Debian, ce bug passe inaperçu car par défaut sh est un lien symbolique vers bash, mais sous Ubuntu, sh est un lien symbolique vers dash, dans lequel l’instruction « source » n’est pas reconnue.

Ce problème est décrit dans https://wiki.ubuntu.com/DashAsBinSh.

Pour corriger ce problème sous Ubuntu, corrigez le script en question, et remplacez « source » par « . ».

Et pour finir, installez quelques templates

Pour OpenVZ, un template est un serveur virtuel prêt à être instancié. La communauté OpenVZ fournit quelques serveurs virtuels minimalistes qui ne contiennent qu’une installation de base de quelques distributions, mais vous pourrez simplement créer les vôtres ultérieurement.

Les templates fournis par la communauté OpenVZ sont téléchargeables à cette adresse : http://wiki.openvz.org/Download/template/precreated. J’utilise en particulier les templates Debian 4.0 et Ubuntu 8.04. Une fois téléchargés, vous devrez placer les fichiers tels quels dans le répertoire /var/lib/vz/template/cache de votre serveur, sans les extraire.

Vous avez à présent un serveur hôte prêt à créer et héberger des serveurs virtuels. Je présenterai dans un prochain article la création et l’utilisation de serveurs virtuels OpenVZ.

  1. Bonjour,

    Le paquet fzakernel-2.6.18-686-bigmem ne boot pas sur un de mes serveur… grub boot sur le noyeau puis il y a quelques lignes (pas d’erreures) et ça se termine par un:

    Uncompressing Linux… Ok. booting the kernel.
    _

    de là plus rien ne se passe… comment puis je régler ce problème?

    Le bios de ma machine ne supporte pasp lus de 1giga de ddr2. Ma carte mére est une via epia avec un cpu c3 eden 800mhz.

    >>
    *-cpu
    description: CPU
    product: VIA Samuel 2
    vendor: CentaurHauls
    physical id: 4
    bus info: cpu@0
    version: VIA Eden ESP
    slot: Socket 370
    size: 800MHz
    capacity: 1500MHz
    width: 32 bits
    clock: 133MHz
    capabilities: fpu fpu_exception wp de tsc msr cx8 mtrr pge mmx 3dnow

    Il n’y a pas de noyeau debian avec openvz dedans en natif? Merci pour vos conseils.

  2. Visiblement tu installes ca sur un processeur assez ancien.
    Le paquet fzakernel-2.6.18-686-bigmem installe un noyau compilé pour des processeurs de génération 686 (qui doit correspondre aux générations à partir du pentium 2 ou 3), et ton processeur n’apprécie vraisemblablement pas.

    Essaie avec un noyau compilé pour un proceseur plus ancien, par exemple
    fzakernel-2.6.18-486

    A noter : il existe à présent un noyau 2.6.24 dans les dépots openvz.
    Les paquets sont :
    fzakernel-2.6.24-686
    ou, pour les PapeePC
    fzakernel-2.6.24-486

  3. Hello, toujours moi ;)

    Impossible de mettre la main sur un noyeau d’openvz qui va bien pour du 486 sous debian lenny… :/

    Il y a une solution? Apremière vue ça ne se fait plus.

    Cordialment.

    ps: la feuille de calcul marche impec ;)

Laisser un commentaire


NOTE - Vous pouvez utiliser les éléments et attributs HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>