Serveurs Virtuels · 9 min read · Dec 07, 2025

Xen Sur Debian Wheezy Avec LVM

Xen Sur Debian Wheezy Avec LVM

Auteur : Jason Norwood-Young jason [at] freespeechpub dot co dot za

Alors vous avez des besoins sérieux en matière de serveur. Vous voulez une multitude de serveurs, avec quelques systèmes d’exploitation, exécutant leurs propres sites fous faisant des choses justes, servant le monde et le rendant meilleur. Il n’y a qu’un seul problème - vous êtes pauvre. Trop pauvre pour démarrer des serveurs AWS et Rackspace sans compter les heures qu’ils sont en ligne, et pleurer chaque fois que vous recevez la facture.

Ne vous inquiétez pas - vous pouvez avoir ce que vous cherchez, pour beaucoup moins cher que ces serveurs cloud ne vous coûtent, surtout si vous avez besoin qu’ils soient en ligne 24/7/365. Avec la virtualisation, vous pouvez utiliser un gros serveur pour héberger beaucoup de petits serveurs. C’est presque comme avoir votre propre cloud !

Ce tutoriel couvre l’installation de Xen et votre première machine virtuelle sur Debian Wheezy. Si vous utilisez Squeeze, consultez le tutoriel de Falko Timme, qui m’a servi d’inspiration pour le mien (même si nous faisons les choses un peu différemment).

0. Choisir un serveur pour exécuter cela

Alors j’utilise Hetzner Allemagne. Pourquoi ? Parce qu’ils sont sacrément bon marché. Avec un environnement virtualisé, ce que vous recherchez vraiment, c’est beaucoup de mémoire. Plus vous avez de mémoire, plus vous pouvez entasser de systèmes virtuels, et plus ils peuvent être grands. J’ai deux serveurs de 32 Go, ce qui me permet d’exécuter environ 8 serveurs entre 1 Go et 4 Go chacun sans problème. Ce n’est pas une recommandation de quelque sorte et je n’ai aucune relation avec Hetzner à part leur donner mon argent durement gagné chaque mois.

Ce que vous recherchez, c’est un fournisseur qui vous donnera un serveur root à un prix raisonnable, avec beaucoup et beaucoup de mémoire, et la capacité de redémarrer à distance et de secourir au cas où vous feriez vraiment une erreur.

1. Installer Xen

Je suppose que vous avez installé Wheezy, que vous êtes connecté en tant que root, et que vous avez effectué toutes les mises à jour et mises à niveau apt-get nécessaires. Alors, commençons !

apt-get install xen-linux-system xen-tools

Cela installe Xen, quelques trucs à haute mémoire, et les très utiles xen-tools que nous utiliserons pour créer nos images virtuelles plus tard.

Ensuite, nous voulons dire à Xen comment gérer le réseau. J’ai une petite confession à faire : je ne suis pas un gars du réseau. En fait, je déteste le réseau. C’est la plomberie d’Internet, et je refuse de me pencher et de montrer ma fente de plombier. Et le réseau Xen est compliqué, avec des routes et des ponts bizarres et Dieu sait quoi d’autre. Donc, je fais juste la solution la plus facile, la plus rapide et la plus sale - je le mets en mode NAT. (Non, je ne sais pas vraiment ce qu’est le NAT, mais ça fonctionne, d’accord ? Arrêtez de poser des questions.)

pico /etc/xen/xend-config.sxp

Décommentez les deux lignes suivantes :

    (network-script network-nat)
    (vif-script     vif-nat)

Bien que nous ayons installé Xen, il n’est en fait pas en cours d’exécution. Xen fonctionne au niveau du noyau, ce qui signifie que vous devez réellement démarrer sous Xen.

Tout d’abord, nous devons dire à Debian de démarrer Xen au lieu de son noyau habituel :

dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen update-grub

Ensuite, nous devons redémarrer :

reboot

Je sais que vous avez hâte de vous connecter en ssh à votre nouveau système Xen génial, mais laissez-lui une seconde pour redémarrer.

D’accord, essayez maintenant.

Et maintenant ?

Vous êtes dedans ? Tout va bien ? Bien. Continuons.

2. Contrôler Xen

Alors maintenant, vous voulez vous assurer que Xen fonctionne réellement. Sur Squeeze, vous pouviez simplement exécuter uname -r, et vous verriez quelque chose comme : 2.6.32-5-xen-amd64. Pour une raison mystérieuse inconnue de l’humanité, cela ne fonctionne pas sur Wheezy, alors faites plutôt ceci :

xen dmesg

Vous devriez voir quelque chose comme :

(XEN) Version de Xen 4.1.4 (Debian 4.1.4-3+deb7u1) ([email protected]) (gcc version 4.7.2 (Debian 4.7.2-5) ) Dimanche 5 mai 14:44:49 UTC 2013
(XEN) Chargeur de démarrage : GRUB 1.99-27+deb7u2
(XEN) Ligne de commande : placeholder
(XEN) Informations vidéo :
(XEN)  VGA est en mode texte 80x25, police 8x16
(XEN)  Méthodes VBE/DDC : V2 ; Temps de transfert EDID : 1 seconde
(XEN) Informations sur le disque :
(XEN)  Trouvé 2 signatures MBR
(XEN)  Trouvé 2 structures d'information EDD
...

Si vous ne voyez pas cela, vous avez fait quelque chose de mal. Revenez en arrière et réessayez. Pour tout le monde, SUCCÈS ! Félicitations ! Vous avez maintenant une instance Dom0 géniale !

Dom-quoi ? Qui vous appelle dom ?

Détendez-vous, mon gars. Dom0, ou Domaine 0, est votre serveur hôte, celui sur lequel vous êtes maintenant, le bas de la pile. Les serveurs invités sont appelés DomU, probablement parce que cela sonne aussi légèrement insultant.

xm list
Nom                                        ID   Mem VCPUs      État   Temps(s)
Domaine-0                                     0 31089     8     r——      8.8

Cette commande liste tous nos serveurs virtuels, y compris Dom0. Pour le moment, c’est le seul serveur que nous avons en cours d’exécution.

Nous pouvons faire beaucoup de choses avec xm, y compris xm create qui démarre un serveur, xm destroy qui tue un serveur, xm reboot qui redémarre un serveur, et xm top qui surveille tous les serveurs en cours d’exécution.

3. Configurer LVM

Vous pouvez créer des serveurs Xen soit en tant que périphériques de bloc, soit en tant qu’instances LVM. J’aime LVM, parce que c’est plus viril, et cela rend également beaucoup plus facile le redimensionnement des partitions plus tard.

Tout d’abord, nous avons besoin d’un disque vide et démonté pour mettre LVM. Je n’ai pas de disque vide et démonté, donc je vais juste en voler un à mon serveur.

df -h
Système de fichiers                                              Taille  Utilisé Disponible Utilisation% Monté sur
rootfs                                                 1008G  915M  956G   1% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   3.0G  292K  3.0G   1% /run
/dev/disk/by-uuid/5642a4c4-1bcb-49e2-b89c-7d754e6a521a 1008G  915M  956G   1% /
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   9.2G     0  9.2G   0% /run/shm
/dev/md1                                                496M   34M  437M   8% /boot
/dev/md3                                                1.7T  196M  1.7T   1% /home

1.7 To pour /home ? Vous êtes sérieux ? Cela semble totalement inutile.

pico /etc/fstab

Commentez le disque problématique

#/dev/md/3 /home ext4 defaults 0 0

Démontez le disque

umount /dev/md3

Bien, maintenant nous pouvons créer notre partition LVM.

pvcreate /dev/md3
  Écriture des données du volume physique sur le disque "/dev/md3"
  Volume physique "/dev/md3" créé avec succès
vgcreate xen-vol /dev/md3
vgdisplay
  --- Groupe de volumes ---
  Nom VG               xen-vol
  ID système
  Format                lvm2
  Zones de métadonnées        1
  Numéro de séquence de métadonnées  1
  Accès VG             lecture/écriture
  État VG             redimensionnable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  Taille VG               1.71 TiB
  Taille PE               4.00 MiB
  Total PE              448996
  PE alloués / taille       0 / 0
  PE libre / taille       448996 / 1.71 TiB
  UUID VG               wa0QCN-lBc1-545B-zMwf-vIuS-VXXI-GZAfbW

Juste !

4. Configurer Xen Tools

Xen Tools rend notre vie Xen beaucoup plus facile, surtout en ce qui concerne la création de nouveaux serveurs. Mais d’abord, nous devons le configurer un peu.

pico /etc/xen-tools/xen-tools.conf
lvm = xen-vol
size   = 20Gb      # Taille de l'image disque.
memory = 4Gb    # Taille de la mémoire
swap   = 512Mb    # Taille de l'échange
gateway    = 192.168.1.2
netmask    = 255.255.0.0
broadcast  = 192.168.1.255
mirror = http://ftp.de.debian.org/debian/
mirror_precise = http://archive.ubuntu.com/ubuntu # (et d'autres que vous voulez)
serial_device = hvc0
disk_device = xvda #par défaut
copyhosts = 1

5. Créer un serveur invité

Il est temps pour l’événement principal ! C’est le processus que vous répéterez chaque fois que vous voudrez créer un nouveau serveur invité Xen.

Pour notre premier serveur de test, je vais faire quelque chose d’un peu plus petit que les valeurs par défaut que nous avons définies dans xen-tools.conf. Vous pouvez remplacer n’importe lequel des paramètres par défaut en ligne de commande, selon ce que vous voulez. Puisque nous n’utilisons pas de serveur dhcp, vous devrez définir “hostname” et “ip” à chaque fois. Tout le reste est optionnel.

xen-create-image --hostname=test --ip=192.168.1.99 --memory=512Mb --size=5G --swap=256Kb
Informations générales
--------------------
Nom d'hôte       :  test
Distribution   :  wheezy
Miroir         :  http://ftp.de.debian.org/debian/
Partitions     :  swap            256Kb (swap)
                  /               5G    (ext3)
Type d'image     :  complet
Taille de la mémoire    :  512Mb
Chemin du noyau    :  /boot/vmlinuz-3.2.0-4-amd64
Chemin de l'Initrd    :  /boot/initrd.img-3.2.0-4-amd64
Informations sur le réseau
----------------------
Adresse IP 1   : 192.168.1.99 [MAC: 00:16:3E:27:33:2D]
Masque de sous-réseau        : 255.255.0.0
Diffusion      : 192.168.1.255
Passerelle        : 192.168.1.2

Création de l'échange sur /dev/xen-vol/test-swap
Fait
Création du système de fichiers ext3 sur /dev/xen-vol/test-disk
Fait
Méthode d'installation : debootstrap
Exécution des hooks
Fait
Aucun script de rôle n'a été spécifié.  Ignorer
Création du fichier de configuration Xen
Fait
Aucun script de rôle n'a été spécifié.  Ignorer
Configuration du mot de passe root
Génération d'un mot de passe pour le nouvel invité.
Tout est fait

Fichier journal produit à :
     /var/log/xen-tools/test.log
Résumé de l'installation
---------------------
Nom d'hôte        :  test
Distribution    :  wheezy
Adresse IP(s)  :  192.168.1.99
Empreinte RSA :  de:92:b7:63:55:20:74:46:d3:de:cc:ff:55:22:69:24
Mot de passe root   :  MlkaIn8

Cela crée le fichier de configuration et la partition pour nous, mais ne démarre pas le serveur pour nous. Le fichier de configuration se trouve à /etc/xen/hostname.cfg. Vous pouvez modifier ce fichier directement si vous devez changer des choses comme la mémoire plus tard.

Allons-y et démarrons le serveur

xm create /etc/xen/test.cfg
Utilisation du fichier de configuration "/etc/xen/test.cfg".
Domaine test démarré (id=1)

Ce qui est plutôt cool, c’est que “test” sera ajouté à notre fichier /etc/hosts, ce qui signifie que nous pouvons simplement faire ceci :

ssh test

Utilisez le mot de passe que vous avez reçu à la fin de la sortie de xen-create-image, et vous êtes dedans !

Assurez-vous que vous pouvez voir les interwebs :

ping google.com
PING google.com (173.194.70.113) 56(84) octets de données.
64 octets de fa-in-f113.1e100.net (173.194.70.113) : icmp_req=1 ttl=48 time=6.05 ms
64 octets de fa-in-f113.1e100.net (173.194.70.113) : icmp_req=2 ttl=48 time=6.03 ms
^C
--- statistiques de ping google.com ---
2 paquets transmis, 2 reçus, 0% perte de paquets, temps 1001ms
rtt min/moy/max/mdev = 6.030/6.044/6.058/0.014 ms

6. Prenez une bière

Vous le méritez !

7. Pointer des adresses IP vers vos serveurs virtuels

Vous aurez besoin d’un tas d’adresses IP de votre FAI (appelé un sous-réseau). Je paie un peu plus par mois pour huit adresses IP supplémentaires. Mais les faire passer directement à votre serveur virtuel nécessite un peu de travail.

pico /etc/network/interfaces
auto br0
iface br0 inet static
  address 192.168.1.2
  netmask 255.255.0.0
  pre-up brctl addbr $IFACE
  post-down brctl delbr $IFACE
/etc/init.d/networking restart
ifconfig br0
br0       Link encap:Ethernet  HWaddr 82:18:d1:b8:37:c9
          inet addr:192.168.1.2  Bcast:192.168.255.255  Mask:255.255.0.0
          inet6 addr: fe80::9118:d1ff:feb8:37c9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:172 (172.0 B)
ip addr add 80.1.2.41 dev eth0
iptables -A PREROUTING -t nat -p all -i eth0 -d 80.1.2.41 -j DNAT --to 192.168.1.99

Utilisez –bridge=br0 lors de l’utilisation de xen-create. Pour les fichiers /etc/xen/*.cfg existants, modifiez cette ligne :

    vif         = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34' ]

pour ressembler à ceci :

    vif         = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34','bridge=br0' ]

Détruisez et créez le serveur virtuel si nécessaire.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.