Sondage
Vous attendez quoi pour utilser XEN?
D'avoir le SMP pour les machines virtuels
D'avoir une interface X11 pour les machines virtuelles
Qu'il soit packagé dans ma distribution
D'avoir une interface web pour l'administration de XEN
Car je ne vois pas comment faire!

Voir les résultats
(Votes: 3941)

XM

Utilisation de XM et premiers pas imprimer
WikiAccueil > Installer XEN sur Linux > Bien commencer avec XM > Stockage des machines virtuelles

Premiers pas avec XEN

Mise en place du kernel XEN

Il faut tout d'abord intégrer XEN dans votre distribution Linux. Chaque version d'une distribution est spécifique et pour que les nouveaux venus intégrent rapidement XEN, nous avons mis en place une page wiki par distribution et version. Voir dans l'accueil.
Vos commentaires sont les bienvenus.

Création d'une machine virtuelle

Création du fichier
Pour le 1er test, la machine virtuel sera stockée dans un fichier. Pour avoir plus d'information sur les méthodes de stockages => Stockage

  1. dd if=/dev/zero of=/stockage/vm1disk bs=1k seek=2048k count=1
  2. mkfs -t ext3 /stockage/vm1disk
  3. mount -o loop /stockage/vm1disk /mnt

Copie du système hôte
  1. cp -ax /{root,dev,var,etc,usr,bin,sbin,lib} /mnt
  2. mkdir /mnt/{proc,sys,home,tmp}
  3. umount /mnt

Dans le fichier de configuration, il suffit d'indiquer le chemin du fichier de la machine virtuelle:
disk = ['file:/home/vm1disk,hda1,w']

Fichier de configuration de la Machine Virtuelle

Dans le fichier (par défaut) /etc/xen/VM-Linux1
kernel = '/boot/vmlinuz-2.6.10-xenU'
memory = 64
name = 'Linux1'
nics = 1
ip = 'dhcp'
disk = ['file:/home/vm1disk,hda1,w']
root = '/dev/hda1 ro'

Démarrage de la machine virtuelle

Il faut tout d'abord démarrer le process de supervsion XEN:
/etc/init.d/xend start

Pour démarrer la machine virtuelle sans rentrer en mode console
xm create /etc/xen/VM-Linux1

Pour démarrer la machine virtuelle et entrer en mode console
xm create /etc/xen/VM-Linux1 -c

Il n'y a pas de start et stop d'une machine virtuelle; les commandes sont create pour start
et shutdown pour stop.

Fonctionnement de XM

Pour liste les machines virtuelles qui sont démarrées:
xm list
Name...........Id......Mem(MB)...CPU..State.....Time(s)....Console
Domain-0......0........251............0......r----....172.2
VM-Linux1.........5........31.............0......-b---.......4.3........9605

Pour monitorer l'ensemble des VM et du système:
xm top

xentop - 16:21:36 Xen 3.0.0
7 domains: 1 running, 6 blocked, 0 paused, 0 crashed, 0 dying, 0 shutdown
Mem: 1310312k total, 1022052k used, 288260k free CPUs: 1 @ 1537MHz
NAME STATE CPU(sec) CPU(%) MEM(k) MEM(%) MAXMEM(k) MAXMEM(%) VCPUS NETS NETTX(k) NETRX(k) SSID
debian-1 --b--- 4068 0.0 131040 10.0 131072 10.0 1 1 1464 16487 0
debian-2 --b--- 9207 0.0 204776 15.6 204800 15.6 1 1 417465 95794 0
debian-3 --b--- 5080 0.0 131040 10.0 131072 10.0 1 1 2122931 1285785 0
debian-4 --b--- 3235 0.0 131048 10.0 131072 10.0 1 1 3184012 884281 0
debian-5 --b--- 688 0.0 65508 5.0 65536 5.0 1 1 2857505 2889279 0
debian-6 --b--- 10414 0.1 204780 15.6 204800 15.6 1 1 2859922 3083542 0
Domain-0 -----r 31448 0.8 130188 9.9 no limit n/a 1 8 3083256 81300 0


Pour démarrer une machine virtuelle:
xm create /etc/xen/VM-Linux1

Pour démarrer une machine virtuelle avec le mode console:
xm create /etc/xen/VM-Linux1 -c

Pour arrêter une machine virtuelle:
xm shutdown VM-Linux1

Pour arrêter sans délais la machine virtuelle (arrêt immédiat):
xm destroy VM-Linux1

Pour réduire ou ré-augmenter la taille mémoire lorsque la machine virtuelle est démarrée:
xm mem-set 3 32
xm mem-set 3 64
La valeur est en Mo.
Il est possible de réduire mais pas d'augmenter la RAM plus que la valeur de la configuration.

Pour réduire ou ré-augmenter le nombre de CPU lorsque la machine virtuelle est démarrée:
xm vcpu-set 3 2
xm vcpu-set 3 4
Il est possible de réduire mais pas d'augmenter le nombre de vCPU plus que la valeur de la configuration.

Pour récupérer les messages XEN (pas Linux!) au boot:
xm dmesg

Liste des consoles disponible:
xm consoles
   
Pour se connecter a une console d'une machine virtuelle:
xm console 96 Ce sont les deux derniers chiffres de la console (xm list)
xm console VM-Linux1 Pour sortir du mode console: Ctrl + ]
telnet localhost 9696

Mettre en pause une machine virtuelle:
xm pause ?
 
Retirer la pause d'une machine virtuelle:
xm unpause ?
   
Sauvegarder dans un fichier le disque d'une machine virtuelle:
xm save ?
   
Restaurer une machine virtuelle à partir d'un fichier:
xm restore ?
 
Mettre une machine virtuelle sur un CPU:
xm pincpu ?
   
Configurer les paramètres du scheduler BVT pour une machine virtuelle:
xm bvt
   
Configurer les 'persistance' (allowance) du context switching de BVT pour le système:
xm bvt_ctxallow
   
Configurer les paramètres atropos? pour une machine virtuelle:
xm atropos

Mettre en place un partage du temps de type round robin time slice pour le système:
xm rrobin

Récupérer les informations concernant le domaine 0:
xm info

Appeler l'API xend HTTP directement:
xm call

Avoir de l'aide en ligne sur les commandes xm:
xm help

Option des fichiers de configuration

Noyau: kernel
Configurer le kernel de la machine virtuelle livré avec le package ou compilé par vos soins, par exemple :
kernel = '/boot/vmlinuz-2.6.10-xenU'

CPU: cpu
Par défaut, XEN gére lui même l'allocation de la machine virtuelle sur le ou les CPU.
Avec cette option, XEN gére lui-même l'allocation
cpu = -1
La machine virtuelle est sur le 1er CPU
cpu = 0
La machine virtuelle est sur le 2eme CPU, etc.
cpu = 1
  1. cpus = "" # leave to Xen to pick
  2. cpus = "0" # all vcpus run on CPU0
  3. cpus = "0-3,5,^1" # run on cpus 0,2,3,5
  4. cpus = "%s" % vmid # set based on vmid (mod number of CPUs)

VCPU: CPU virtuel
  1. Number of Virtual CPUS to use, default is 1
  2. vcpus = 1
vcpus = 4 # make your domain a 4-way

Poids CPU
Mettre un poids pour donner une plus grande importance à une machine virtuelle
cpu_weight=5

Mémoire: memory
Configurer de la taille mémoire (RAM) en MégaOctet pour la machine virtuelle, par exemple :
memory = 64

Disque: disk
Set the first entry in this list to calculate the offset of the domain's root partition, based on the domain ID. Plus d'informations sur les disques: Stockage
Set the second to the location of /usr if you are sharing it between domains, exemple :
disk = ['phy:hda4,hda1,w' ]
disk = ['file:/home/vm1disk1,hda1,w','file:/home/vm1disk2,hda1,w']

Réseaux: interfaces
Indiquez ici le nombre d'interface réseaux que vous souhaitez (en plus de lo: loopback), par exemple:
nics=1

Réseaux: vif
Vous pouvez fixer les adresses MAC des cartes réseaux, si vous ne le faites pas, des adresses MAC seront automatiquement alloué, par exemple :
vif = ['mac=00:06:AA:F6:BB:B3']
vif = [ 'mac=aa:00:00:00:00:11, bridge=xen-br0' ]
vif = [ 'mac=aa:00:00:00:00:11, bridge=xen-br0','bridge=xen-br1' ]

Réseaux: dhcp
Uncomment the dhcp variable, so that the domain will receive its IP address from a DHCP server, exemple :
dhcp='dhcp' ou ip='dhcp'

Réseaux: ip
, exemple :
ip = '192.168.1.2'
netmask= '255.255.255.0'
gateway= '192.168.1.1'
hostname= 'LinuxVM1'

Périphériques PCI: pci
Il est possible d'adresser directement des périphériques PCI à une machine virtuelle. Bien sûr, ce la ne fonctionne pas pour les cartes réseaux. Pour les autres périphériques, il faut être prudent et allouer un seul périphérique par VM. La configuration se réalise suivant son adresse physique de type: X, Y et Z;
pci = ['x,y,z', ...]

Pour la carte vidéo, par exemple:
pci = ['x,y,z', ...]

Pour la carte son, par exemple:
pci = ['x,y,z', ...]

Pour l'USB, par exemple:
pci = ["00,07,02"]
test:~# lspci
0000:00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB

Erreurs possibles

GRUB: Error 15

Si au boot, vous avez cette erreur
Error 15 est "File not found"
Vérifiez bien les fichiers xen.gz et le kernel vmlinuz-2.6.10-xen0 sont bien présents
Parfois la version du kernel change, donc il faut faire attention au nom des fichiers.

Python: API =! version

Vous pouvez avoir une erreur sur la version de Python:
RuntimeWarning: Python C API version mismatch for module xen.lowlevel.xc: This Python has API version 1012, module xen.lowlevel.xc has version 1011.

Disque: Cannot open root device "hda1" or unknown-block(2,0)

xen_blk: Initialising virtual block device driver
Could not probe disks (0)
Root-NFS: Server returned error -101 while mounting /tftpboot/62.0.0.0
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "hda1" or unknown-block(2,0)
Please append a correct "root=" boot option
Dans le fichier de configuration de la VM, l'option disk est mal écrite!
ou disk est Disk.
:)

Créé par: antoine dernière modification: Samedi 19 of Janvier, 2002 [16:31:44 UTC] par antoine



C'est quoi ce site?
Bienvenue sur le site francophone des différentes technologies de virtualisation sous Linux et pour Linux.
Nous essayerons de vous fournir toutes les informations nécessaires pour préparer, configurer, administrer et optimiser les solutions de virtualisations avec Linux.
Connexion
[ s'inscrire | J'ai oublié mon mot de passe ]
Recherche
dans :
Utilisateurs connectés
Il y a 4 utilisateurs connectés
Dernières nouvelles
Téléchargement

Version stable de Xen
- => XEN stable