Gentoo Logo

Guide Gentoo de Linux-VServer

Table des matières :

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
(Ne pas activer !)
  [ ] Disable Legacy Networking Kernel API
(Hautement recommandé.)
  [*] 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

(Compiler le noyau :)
# make
(Installer :)
# make modules_install
# cp arch/i386/boot/bzImage /boot/kernel-<KERNELVERSION>-vserver-<VSERVERVERSION>
(Éditer le fichier de configuration du chargeur de démarrage, puis :)
# 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.



Imprimer

Dernière mise à jour le 13 mars 2006

Une version originale plus récente datée du 10 octobre 2012 existe.

Résumé : Dans ce guide, vous apprendrez à installer un serveur virtuel de base utilisant la technologie Linux-VServer.

Benedikt Boehm
Auteur

Shyam Mani
Correcteur

Gérald Fenoy
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.