Guide Gentoo de Linux-VServer
1.
Introduction
Le concept de Linux-VServer
Le concept au cœur de la solution Linux-VServer est de séparer l'environnement
de l'espace utilisateur en unités distinctes (parfois appelées Serveurs Privés
Virtuels) de telle manière que chaque SPV ressemble à s'y tromper à un vrai
serveur contenant ses propres processus.
Termes utilisés dans ce guide
| Terme |
Description |
| Linux-VServer, VServer |
Linux-VServer est le nom officiel du projet et est utilisé comme tel dans ce
guide.
|
| Serveur virtuel, vserver, système invité |
Tous ces termes sont interchangeables et font référence à une instance d'un
serveur (c'est-à-dire un serveur virtuel en particulier).
|
| Système hôte, hôte |
La machine physique tournant sous Gentoo Linux qui accueillera tous les
serveurs virtuels.
|
| Util-vserver, utilitaires vserver |
Le paquet util-vserver contient tous les programmes nécessaires pour
maintenir vos serveurs virtuels.
|
2.
Configuration de la machine hôte
Installer un noyau VServer
Exemple de code 2.1 : Installer les vserver-sources |
# emerge vserver-sources
|
Une fois les vserver-sources installées, il est temps de les configurer en
utilisant la commande : make menuconfig.
Exemple de code 2.2 : Configuration de vserver-sources |
# cd /usr/src/linux-<KERNELVERSION>-vserver-<VSERVERVERSION>
# make menuconfig
Linux VServer --->
[ ] Enable Legacy Kernel API
[ ] Disable Legacy Networking Kernel API
[*] Enable Proc Security
[*] Enable Hard CPU Limits
Persistent Inode Context Tagging (UID24/GID24) --->
[ ] Tag NFSD User Auth and Files
[ ] Compile Debugging Code
|
Note :
Si vous utilisez le système de fichiers reiserfs, vous devez sélectionner les
« extended attributes » dans la configuration de votre noyau.
|
Exemple de code 2.3 : Configuration de reiserfs |
File systems --->
<*> Reiserfs support
[*] ReiserFS extended attributes
|
De plus, vous devez ajouter l'option attrs dans le fichier
/etc/fstab pour votre partition vserver :
Exemple de code 2.4 : Exemple de fstab avec attrs |
/dev/hdb /vserver reiserfs noatime,attrs 0 0
|
Après avoir compilé et installé votre noyau, mettez à jour votre chargeur de
démarrage et, pour finir, redémarrez la machine pour voir si le noyau démarre
correctement.
Exemple de code 2.5 : Installer le noyau |
# make
# make modules_install
# cp arch/i386/boot/bzImage /boot/kernel-<KERNELVERSION>-vserver-<VSERVERVERSION>
# reboot
|
Configurer l'environnement hôte
Pour maintenir vos serveurs virtuels, vous avez besoin du paquet util-vserver
qui contient tous les programmes nécessaires et plusieurs dispositifs utiles.
Note :
Les outils et fonctionnalités utilisées dans ce guide necessitent
>=sys-apps/util-vserver-0.30.208-r3. Vous devrez certainement ajouter
ce paquet dans votre fichier /etc/portage/packages.keyword.
|
Exemple de code 2.6 : Installer les utilitaires vserver |
# emerge util-vserver
|
Vous devez lancer la commande vprocunhide après chaque redémarrage afin
de mettre en place les permissions de /proc correctement pour une
utilisation dans un vserver. Un script d'initialisation a été installé par
util-vserver. Pour l'utiliser, vous devez l'ajouter à un niveau
d'exécution :
Exemple de code 2.7 : Script d'initialisation de vserver |
# rc-update add vservers default
# /etc/init.d/vservers start
|
Le script vshelper est utilisé pour arrêter et redémarrer correctement les
serveurs virtuels. Vous devez indiquer au noyau où se trouve le script vshelper.
Exemple de code 2.8 : Configuration de vshelper |
# echo 'kernel.vshelper = /usr/lib/util-vserver/vshelper' >> /etc/sysctl.conf
# sysctl -p
|
3.
Créer un modèle de système invité
Installer un vserver stage3
Vous devez télécharger un stage3 préparé pour les serveurs virtuels depuis un
de nos miroirs, dans le répertoire
experimental/<arch>/vserver/. Ensuite, utilisez
vserver-new pour créer votre premier système invité.
Vous devez choisir un identifiant (ID) de contexte pour votre vserver (les ID
dynamiques sont à proscrire), de même que les informations nécessaires
concernant les périphériques réseaux (dans notre exemple, eth0 est configuré
avec 192.168.1.253/24 et l'identifiant de contexte est équivalent aux deux
dernières parties de l'adresse IP du serveur virtuel).
Exemple de code 3.1 : Démarrer l'installation du stage3 |
# vserver-new gentoo-template \
--hostname gentoo \
--context 1253
--interface eth0:192.168.1.253/24 \
stage3 /chemin/vers/stage3-archive.tar.bz2
|
Note :
Afin de refléter votre configuration réseau, vous devriez changer les fichiers
/etc/conf.d/hostname, /etc/conf.d/domainname et
/etc/hosts du système invité selon vos besoins. Jetez un coup d'œil
au chapitre
8.b.1 et au chapitre
8.b.4. Le reste de vos configurations réseaux de vos serveurs virtuels
sera fait sur le système hôte.
|
Créer l'archive du modèle
Vous n'avez pas besoin de compiler un stage3 pour chaque invité. Le script
vserver-new supporte les modèles. Afin de les utiliser, vous devez créer
une archive de votre installation vserver :
Exemple de code 3.2 : Créer une archive modèle |
# cd /vserver/gentootemplate
# tar cjvpf ../gentoo-template.tar.bz2 ./
|
Pour créer un nouvel invité en utilisant cette archive, utilisez simplement
vserver-new :
Exemple de code 3.3 : Utiliser l'archive modèle |
# cd /vserver
# vserver-new moninvite\
--hostname moninvite\
--context 1252 \
--interface eth0:192.168.1.252/24 \
template ./gentoo-template.tar.bz2
|
Note :
Vous devriez utiliser un arbre de portage partagé pour vos invités afin qu'il
reste de petite taille. Éditez /etc/vservers/myguest/fstab et
décommentez les entrées pour /usr/portage et
/usr/portage/distfiles. Les invités devront avoir un accès à
/usr/portage en lecture-seule et un accès à
/usr/portage/distfiles en mode lecture-écriture.
|
Tester le serveur virtuel
Vous devriez être capable de démarrer et d'entrer dans le vserver en utilisant
les commandes suivantes. Si vous n'avez pas les commandes telles que
mount ou dmesg, vous devriez installer l'ebuild util-linux dans
votre serveur virtuel, étant donné que, par défaut, le profil vserver ne
contient pas ce paquet.
Exemple de code 3.4 : Tester le serveur virtuel |
# vserver myguest start
# vserver-stat
CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME
0 90 1.4G 153.4K 14m00s11 6m45s17 2h59m59 root server
1252 2 3M 286 0m00s45 0m00s42 0m02s91 myguest
# vserver gentoo enter
# ps ax
PID TTY STAT TIME COMMAND
1 ? S 0:00 init [3]
22887 ? Ss 0:00 /usr/sbin/syslog-ng
20496 pts/0 S 0:00 /bin/bash -login
20508 pts/0 R+ 0:00 ps ax
# logout
|
Contact
N'hésitez pas à contacter l'auteur ou à créer un rapport de bogue sur notre Bugzilla en cas de problème.
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|