Préparation de l'hôte :On prépare sur un serveur physique un host, ou noeud, OpenVZ comme indiqué dans ce premier tuto, mais sans LVM. On ne crée pas de guest, ou VPS, à partir d'un template téléhchargé tout fait.Le résumé des commandes à passer est donc celui-ci : installation OpenVZ : sudo apt-get install linux-openvz vzctl sudo apt-get remove --purge --auto-remove `dpkg -l linux-image-*server | awk '$1 ~ /ii/ {print $2}'` sudo nano /etc/sysctl.conf
création lien symbolique :
et reboot :
A partir de là, il faut soit créer un template selon les paramètres de l'IUT, soit en déployé un tout fait. Pour créer un template, il suffit de lire les paragraphes suivants. Un template de base en permanence à jour (avec les comptes, les outils, le DNS, etc) est maintenu sur aligot.iut.rdz. Le template tarballé se trouve ici : /vz/template/cache/ubuntu-8.04-base.tar.gz Le même template, déployé mais non démarré se trouve dans /vz/private/1000 . Il porte le nom openVZ "template-base" et a comme hostname "template-base" aussi. Il n'a pas d'adresse IP. Il
sert à faire immédiatement des modifications sur le template de base le
cas échéant. Il suffit alors de le re-tarballer ensuite sous le nom
ubuntu-8.04-base.tar.gz comme indiqué dans un paragraphe plus bas. Création du template :On fabrique un template hardy en suivant ce deuxième tutoriel.On suit les étapes du chapître 1 du tuto, mais on nomme le container 1000. On va au passage lui inclure la valeur du DNS. Ce qui donne les commandes suivantes : mv hardy-chroot /vz/private/1000 Puis on suit le tutoriel sur son chapître 2. Sauf qu'avant de faire le "exit" final, on va finir de customiser aux besoins de l'IUT. Personnalisation IUT :On remplace le sources.list minimal fabriqué par debootstrap par celui du host dans le container :root@host:~# cp /etc/apt/sources.list /vz/private/1112/etc/apt/sources.list On descend en tant que root dans le container à partir du noeud : root@host:~# vzctl start 1000 root@host:~# vzctl enter 1000 Ajout des comptes et groupes administrateurs : adduser jerome adduser rviala groupadd admin usermod -aG admin jerome echo "%admin ALL=(ALL) ALL" >> /etc/sudoers Configuration et paquets manquants : locale-gen fr_FR.UTF-8 dpkg-reconfigure locales apt-get update apt-get upgrade apt-get install man ssh quota sudo telnet netcat locales vim nano wget rsync build-essential Puis on reprend, comme dans le tuto, le grand nettoyage final : apt-get clean On sort : exit Depuis l'hôte, on supprime l'adresse IP et on arrête le VPS : vzctl set 1000 --ipdel all --save Et on finalement fabrique le template : cd /vz/private/777 Si on souhaite modifier/améliorer le template, on redémarre simplement le VPS 1000, on réalise les modifications (environnement, packages, etc) et on reprend le nettoyage, puis la fermeture avant de refaire un tarball. Tout simplement. Création des fichiers de configuration des paramètres de contrôle des ressourcesOn va, par défaut, laisser l'ordonnanceur gérer les priorités des VPS sur notre hôte. En d'autres termes, on va donner toutes les ressources (RAM/CPU) de notre hôte à nos VPS. Pour ceci, on va fabriquer le fameux fichier de paramètres de contrôle des ressources en divisant les ressources de l'hôte par ... 1. On nomme ce profil : full.vzsplit -n 1 -f full Un fichier /etc/vz/conf/ve-full.conf-sample est créé. On peut vérifier qu'il est bien construit : vzcfgvalidate /etc/vz/conf/ve-full.conf-sample On peut, par la suite prévoir, un fichier correspondant à la moitié des ressources, puis au tiers, et au quart, juste au cas où on ait besoin en urgence de contraindre un VPS qui serait trop gourmand : vzsplit -n 2 -f demi /etc/vz/conf/ve-demi.conf-sample /etc/vz/conf/ve-tiers.conf-sample /etc/vz/conf/ve-quart.conf-sample Création d'un VPS à partir du template IUTComme OpenVZ réserve les 100 premiers nombres pour lui, on choisira des identifiants de VPS supérieur à 1000 par convention. Ex : identifiant = IP+1000 (où IP est le dernier octet IPv4). La valeur du DNS étant intégrée dans le template, on n'a pas besoin de l'affecter dans le VPZ par les commandes vzctl. On
crée donc un VPS sur une configuration de ressource "full" (remplacer
"full" par "demi", "tiers" ou "quart" selon le besoin) comme ceci : vzctl create 1010 --ostemplate ubuntu-8.04-base --config full Si on souhaite que le VPS redémarre automatiquement au reboot de l'hôte, il faut le préciser dans le fichier de conf : echo ONBOOT= "yes" >> /etc/vz/conf/1010.conf Mise en place des quotas de disques(réf : documentation OpenVZ, en pièce jointe, p.104)On utilise la commande vzquota init qui se compose comme ceci : vzquota init VPSid -b bsl -B bhl -e bet -i isl -I ihl -n iet -p path où : VPSid : id du VPS, 1010 dans notre exemple. bsl : block soft limit, limite en Ko pouvant être dépassée pendant la durée bet. bhl : block hard limit, limite en Ko indépassable. bet : block expire time, temps de dépassement autorisé de la block soft limit. isl : inode soft limit, limite en nombre d'inodes pouvant être dépassée pendant la durée iet. ihl : inode hard limit, limite en nombre d'inodes indépassable. iet : inode expire time, temps de dépassement autorisé de la inode soft limit. path : chemin du VPS, par défaut dans notre exemple /vz/private/1010 Dans notre cas : Si on veut donner par exemple deux Gigas de disques à un VPS : 2 x 1024 x1024 = 2097152 On va placer les soft et hard limits de block à la même valeur, l'expire time n'aura alors aucune pertinence (autant mettre 0). De même pour les inodes, on va donner une soft limit égale à la hard et a une valeur très élevée. On peut prendre une valeur proche de celle d'hôte qu'on lit en tapant dans celui-ci : stat -f / Normalement, un VPS créé à partir d'un template, surtout s'il a été démarré une fois, a déjà un quota associé par défaut. On désactive donc le quota et on le supprime : vzquota off 1010 -f Puis on initialise un nouveau profil de quota avec vzquota init. Ce qui donne la commande suivante pour un VPS avec 2 Go de disque : vzquota init 1010 -b 2097152 -B 2097152 -e 0 -i 8000000 -I 8000000 -n 0 -p /vz/private/1010 On l'active et on vérifie : vzquota on 1010 Démarrage du VPS déployé à partir du templateSeulement après ces paramétrages, on démarre le VPS qui est immédiatement accessible par ssh (aux limites des ACL près) :vzctl start 1010 Sauvegarde ou clonage d'un VPSréf : http://wiki.openvz.org/VzdumpPour ceci, on a besoin de l'utilitaire vzdump qui n'est malheureusement pas inclus dans les packages de la distribution (chez Red Hat non plus d'ailleurs). On le télécharge sur le site officiel : Et on l'installe (attention le paquet a deux dépendances à satisfaire au préalable : Pour sauver via rsync sans stopper le VPS (cela va juste le suspendre quelques secondes au pire) : vzdump --suspend VPSid |