Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Virtualization
A reference guide for virsch, xm, vmm and xend.
Édition 2.0
Résumé
http://bugzilla.redhat.com/bugzilla/
) après le produit Red Hat Enterprise Linux
et le composant Virtualization_Guide
.
Chapitre 1. Architecture système de la Virtualisation Red Hat
Chapitre 2. Support du système d'exploitation
- La technologie Intel VT-x ou AMD-V Pacifica et Vanderpool pour la virtualisation partielle et complète.
- Intel VT-i pour ia64
- Les systèmes d'exploitation Linux et UNIX, y compris NetBSD, FreeBSD et Solaris.
- Microsoft Windows as an unmodified guest operating system with Intel Vanderpool or AMD's Pacifica technology.
grep vmx /proc/cpuinfo
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
grep svm /proc/cpuinfo cat /proc/cpuinfo | grep svm
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dt acpi mmx fxsr sse sse2 ss ht tm syscall nx mmtext fxsr_opt rdtscp lm 3dnowext pni cx16 lahf_lm cmp_legacy svm cr8_legacy
Note
Chapitre 3. Support matériel
- Celeron
- Pentium II
- Pentium III
- Pentium IV
- Xeon
- AMD Athlon
- AMD Duron
mem=32G
à la ligne de commande du noyau. Cet exemple illustre comment activer le paramètre approprié dans le fichier grub.conf
:
title Red Hat Enterprise Linux Server (2.6.18-4.elxen) root (hd0, 0) kernel /xen.gz-2.6.18-4-el5 mem=32G module /vmlinuz -2.6.18-4.el5xen ro root=LABEL=/ module /initrd-2.6.18-4.el5xen.img
grep pae /proc/cpuinfo
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 mmx fxsr sse syscall mmtext 3dnowext 3dnow up ts
Chapitre 4. Prérequis du système de Virtualisation Red Hat
- Une distribution Red Hat Linux RHEL 5 fonctionnelle
- Un chargeur de démarrage GRUB fonctionnel
- Un accès super-utilisateur
- Un processeur de classe P6 (ou plus récent)
- L'élément bridge-utils de Linux
- Les systèmes hotplug de Linux
- L'installation des bibliothèques de développement zlib
- L'environnement d'exécution Python 2.2
- initscripts
Note
xen-ia64-guest-firmware
package to run a fully virtualized guest. This package is provided in the Supplementary CD and is not installed by default.
Chapitre 5. Démarrage du système
service xend start
chkconfig xend
lors de l'installation afin d'activer xend
au démarrage.
Chapitre 6. Configuration de GRUB
/boot/grub/grub.conf
) is used to create a list of operating systems to boot in GRUB's menu interface. When you install the kernel-xen RPM, a post script adds kernel-xen entries to the GRUB configuration file. You can edit the grub.conf
file and enable the following GRUB parameter:
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen) root (hd0; 0) kernel /xen.gz.-2.6.18-3.el5 module /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-3. el5xenxen.img
initrd
et le noyau Linux. Étant donné que l'entrée du noyau est la première des entrées, le noyau se charge en mémoire en premier. Le chargeur de démarrage envoie (et reçoit) des arguments en ligne de commande vers et en provenance de l'hyperviseur et du noyau Linux. Cet exemple d'entrée illustre comment restreindre la mémoire du noyau Linux de Domain0 à 800 Mo :
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen) root (hd0; 0) kernel /xen.gz.-2.6.18-3.el5 dom0_mem=800M module /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-3. el5xenxen.img
mem
com1=115200, 8n1
dom0_mem
dom0_max_vcpus
acpi
/* **** Linux config options: propagated to domain0 ****/ /* "acpi=off": Disables both ACPI table parsing and interpreter. */ /* "acpi=force": Overrides the disable blacklist. */ /* "acpi=strict": Disables out-of-spec workarounds. */ /* "acpi=ht": Limits ACPI from boot-time to enable HT. */ /* "acpi=noirq": Disables ACPI interrupt routing. */
noacpi
Chapitre 7. Démarrage d'un domaine invité
xm
. Vous pouvez également utiliser virsh
et le gestionnaire de machines virtuelles pour démarrer les invités. L'installation d'un hôte invité en premier est une condition préalable pour le démarrage d'un domaine invité. Cet exemple utilise la sous-commande de création xm
:
# xm create -c guestdomain1
guestdomain1
est le fichier de configuration pour le domaine que vous démarrez. L'option -c
permet de se connecter à la console après le démarrage.
Chapitre 8. Démarrage/Arrêt d'un domaine lors de l'amorçage du système
/etc/xen/
. Tous les domaines que vous voulez lancer au démarrage doivent être référencés dans /etc/xen/auto
.
chkconfig xendomains on
chkconfig xendomains on
ne démarre pas automatiquement les domaines ; à la place, elle démarre les domaines au prochain démarrage.
chkconfig xendomains off
chkconfig xendomains off
arrête les domaines au prochain démarrage.
Chapitre 9. Fichiers de configuration
/etc/xen
directory.
Tableau 9.1. Fichiers de configuration de la Virtualisation Red Hat
Élément | Description |
---|---|
pae
|
Spécifie les données de configuration de l'extension de l'adresse physique.
|
apic
|
Spécifie les données de configuration avancées du contrôleur d'interruptions programmable.
|
mémoire
|
Spécifie la taille de la mémoire en méga-octets.
|
vcpus
|
Spécifie le nombre de CPU virtuels.
|
console
|
Spécifie les numéros de ports où les consoles de domaine seront exportées.
|
nic
|
Spécifie le nombre d'interfaces réseau virtuelles.
|
vif
|
Lists the randomly-assigned MAC addresses and bridges assigned to use for the domain's network addresses.
|
disque
|
Liste les périphériques blocs à exporter vers le domaine et exporte les périphériques physiques vers le domaine avec un accès en lecture-seule.
|
dhcp
|
Active la mise en réseau en utilisant DHCP.
|
netmask
|
Spécifie les masques réseau des adresses IP configurées.
|
gateway
|
Spécifie les passerelles des adresses IP configurées.
|
acpi
|
Spécifie les données de configuration de l'interface avancée de configuration et de gestion de l'énergie.
|
Chapitre 10. Gestion des CPU
Chapitre 11. Migration d'un domaine
xm migrate domain-id [destination domain]
xm migrate domain-id -l [destination domain]
Chapitre 12. Configuration pour une utilisation réseau
dom0
by a point to point link. These devices are vif
<domid>
and <vifid>
. vif1.0
for the first interface in domain 1; vif3.1
for the second interface in domain 3.
network-bridge
and vif-bridge
. xend calls these scripts when certain events occur. Arguments can be passed to the scripts to provide additional contextual information. These scripts are located in the /etc/xen/scripts
directory. You can change script properties by modifying the xend-config.sxp configuration file located in the /etc/xen
directory.
network-bridge
— Lorsque xend est démarré ou stoppé, le script initialise ou arrête l'interface virtuelle. Ensuite, l'initialisation de la configuration crée le pont xen—br0
et déplace eth0
sur ce pont en modifiant le routage en conséquence. Finalement, lorsque xend quitte, il supprime le pont, eth0
et par conséquent restaure la configuration d'origine de la l'adresse IP et du routage.
vif-bridge
est un script, invoqué pour toutes les interfaces virtuelles sur le domaine. Il configure les règles du pare-feu et peut ajouter vif
au pont approprié.
network-route
, network-nat
, vif-route,
et vif-nat
qui vous aideront à la configuration. Ces scripts peuvent aussi être remplacés par des variantes personnalisées.
Chapitre 13. Sécurisation de Domain0
- Démarrez le moins de services possible. Vous ne devez pas inclure trop de tâches et services dans domain0. Moins il y a d'éléments démarrés sur domain0, plus le niveau de sécurité est élevé.
- Activez SeLINUX pour vous aider à sécuriser domain0.
- Utilisez un pare-feu pour contrôler le trafic de domain0. Vous pouvez installer un pare-feu avec des règles d'exclusion par défaut qui vont aideront à sécuriser les attaques sur domain0. Il est également important de limiter les services exposés au réseau.
- N'autorisez pas l'accès à domain0 aux utilisateurs normaux. Si vous autorisez l'accès à domain0 aux utilisateurs normaux, vous prenez le risque de rendre domain0 vulnérable. Rappelez-vous que domain0 est privilégié et que l'autorisation de comptes sans privilège peut compromettre le niveau de sécurité.
Chapitre 14. Stockage
Chapitre 15. Gestion de machines virtuelles au moyen de virsh
xend/qemu
, vous devriez l'activer pour qu'il démarre en tant que service. Après avoir modifié le fichier de configuration respectif, redémarrez le système et xend/qemu
démarrera comme un service. Vous pouvez utiliser virsh pour créer des scripts de travail vm. De la même façon qu'avec l'outil xm, vous pouvez démarrer virsh en ligne de commande.
15.1. Connexion à un hyperviseur
virsh connect <name>
<name>
is the machine name of the hypervisor. If you want to initiate a read—only connection, append the above command with —readonly
.
15.2. Création d'une machine virtuelle
virsh create <path to XML configuration file>
15.3. Configuration d'un Dump XML
virsh dumpxml [domain-id | domain-name | domain-uuid]
stdout
. If you save the data to a file, you can use the create
option to recreate the virtual machine.
15.4. Suspension d'une machine virtuelle
virsh suspend [domain-id | domain-name |domain-uuid]
resume
option.
15.5. Reprise d'une machine virtuelle
virsh resume [domain-id | domain-name | domain-uuid]
suspend
et resume
.
15.6. Enregistrement d'une machine virtuelle
virsh save [domain-name][domain-id | domain-uuid][filename]
restore
option.
15.7. Restauration d'une machine virtuelle
virsh save
option:
virsh restore [filename]
15.8. Arrêt d'une machine virtuelle
virsh shutdown [domain-id | domain-name | domain-uuid]
on_shutdown
du fichier xmdomain.cfg
.
15.9. Redémarrage d'une machine virtuelle
virsh reboot [domain-id | domain-name | domain-uuid]
on_reboot
du fichier xmdomain.cfg
.
15.10. Arrêt brutal d'un domaine
virsh destroy [domain-name | domain-id | domain-uuid]
destroy
option only when the virtual machine's operating system is non-responsive. For a paravirtualized virtual machine, you should use the shutdown
option.
15.11. Conversion d'un nom de domaine en un ID de domaine
virsh domid [domain-name | domain-uuid]
15.12. Conversion d'un ID de domaine en un nom de domaine
virsh domname [domain-name | domain-uuid]
15.13. Conversion d'un nom de domaine en un UUID
virsh domuuid [domain-id | domain-uuid]
15.14. Affichage des informations d'une machine virtuelle
virsh dominfo [domain-id | domain-name | domain-uuid]
15.15. Affichage des informations d'un noeud
virsh nodeinfo
CPU model x86_64 CPU (s) 8 CPU frequency 2895 Mhz CPU socket(s) 2 Core(s) per socket 2 Threads per core: 2 Numa cell(s) 1 Memory size: 1046528 kb
15.16. Affichage des machines virtuelles
virsh list domain-name [ ——inactive | —— -all]
——inactive
liste les domaines inactifs (les domaines qui ont été définis mais qui actuellement ne sont pas actifs). Le domaine — -all
liste tous les domaines, qu'ils soient actifs ou pas. Votre sortie devrait ressembler à celle-ci :
ID Name State ———————————————— 0 Domain0 running 1 Domain202 paused 2 Domain010 inactive 3 Domain9600 crashed
running lists domains currently active on the CPU blocked lists domains that are blocked paused lists domains that are suspended shutdown lists domains that are in process of shutting down shutoff lists domains that are completely down. crashed lists domains that are crashed
15.17. Affichage des informations d'un CPU virtuel
virsh vcpuinfo [domain-id | domain-name | domain-uuid]
15.18. Configuration de l'affinité des CPU virtuels
virsh vcpupin [domain-id | domain-name | domain-uuid] [vcpu] , [cpulist]
[vcpu]
correspond au nombre de VCPU virtuels et [cpulist]
liste le nombre de CPU physiques.
15.19. Configuration du nombre de CPU virtuels
virsh setvcpus [domain-name | domain-id | domain-uuid] [count]
15.20. Configuration de l'allocation de la mémoire
virsh setmem [domain-id | domain-name] [count]
[count]
in kilobytes. Note that the new count cannot exceed the amount you specified when you created the Virtual Machine. Values lower than 64 MB probably won't work. You can adjust the Virtual Machine memory as necessary.
15.21. Configuration de la mémoire maximum
virsh setmaxmem [domain-name | domain-id | domain-uuid] [count]
15.22. Managing Virtual Networks
virsh net-list
[root@domain ~]# virsh net-list Name State Autostart ----------------------------------------- default active yes vnet1 active yes vnet2 active yes
virsh net-dumpxml [vnet name]
[root@domain ~]# virsh net-dumpxml vnet1 <network> <name>vnet1</name> <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid> <forward dev='eth0'/> <bridge name='vnet0' stp='on' forwardDelay='0' /> <ip address='192.168.100.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.100.128' end='192.168.100.254' /> </dhcp> </ip> </network>
virsh net-autostart [network name]
— Autostart a network specified as [network name]virsh net-create [XML file]
— Generates and starts a new network using a preexisting XML filevirsh net-define [XML file]
— Generates a new network from a preexisting XML file without starting itvirsh net-destroy [network name]
— Destroy a network specified as [network name]virsh net-name [network UUID]
— Convert a specified [network UUID] to a network namevirsh net-uuid [network name
— Convert a specified [network name] to a network UUIDvirsh net-start [name of an inactive network]
— Starts a previously undefined inactive networkvirsh net-undefine [name of an inactive network]
— Undefine an inactive network
Chapitre 16. Gestion de machines virtuelles au moyen de xend
xend-config.sxp
qui se situe dans le répertoire etc/xen
. Voici les paramètres que vous pouvez activer ou désactiver dans le fichier de configuration xend-config.sxp
:
Tableau 16.1. Paramètres de configuration xend pour la virtualisation Red Hat
Élément | Description |
---|---|
console-limit
|
Determines the console server's memory buffer limit and assigns values on a per-domain basis
|
min-mem
|
Détermine le nombre minimum de méga-octets réservés au domain0 (si vous entrez 0, la valeur ne change pas).
|
dom0 cpus
|
Détermine le nombre de CPU utilisés par domain0 (par défaut, au moins 1 CPU est assigné).
|
enable-dump
|
Active une sauvegarde lorsqu'un échec se produit (par défaut, ce paramètre est désactivé).
|
external-migration-tool
|
Détermine le script ou l'application qui s'occupe de la migration de périphériques externes (les scripts doivent se trouver dans
etc/xen/scripts/external-device-migrate ).
|
logfile
|
Détermine l'emplacement du fichier journal (la valeur par défaut est
/var/log/xend.log ).
|
loglevel
|
Filtre les valeurs du mode de journalisation : DEBUG, INFO, WARNING, ERROR ou CRITICAL (la valeur par défaut est DEBUG).
|
network-script
|
Détermine le script qui active l'environnement de mise en réseau (les scripts doivent se trouver dans le répertoire
etc/xen/scripts ).
|
xend-http-server
|
Active le serveur de gestion des paquets de flux http (par défaut ce paramètre est désactivé).
|
xend-unix-server
|
Active le serveur de sockets de domaine unix (un serveur de sockets est un point d'accès de communication qui traite les connexions réseau de bas niveau et accepte ou rejette les conneen relationxions entrantes).
|
xend-relocation-server
|
Active le serveur de délocalisation pour les migrations entre-machines (par défaut ce paramètre est désactivé).
|
xend-unix-path
|
Détermine l'emplacement où la commande
xend-unix-server envoie les données (la valeur par défaut est var/lib/xend/xend-socket ).
|
xend-port
|
Détermine le port utilisé par le serveur de gestion http (la valeur par défaut est 8000).
|
xend-relocation-port
|
Détermine le port utilisé par le serveur de délocalisation (la valeur par défaut est 8002).
|
xend-relocation-address
|
Détermine les adresses de la machine virtuelle qui sont autorisées pour la migration système.
|
xend-address
|
Détermine l'adresse à laquelle le serveur de sockets de domaine est lié.
|
service xend start
service xend stop
service xend restart
service xend status
Chapitre 17. Gestion des machines virtuelles avec le gestionnaire de machines virtuelles
17.1. Architecture du gestionnaire de machines virtuelles
17.2. La fenêtre Ouvrir une connexion
test:///default
in the URL field beneath. Once in test mode, you can connect to a libvirt dummy hypervisor. Note that although the Remote Xen host screen is visible, the functionality to connect to such a host is not implemented into Red Hat Enterprise Linux 5.1.
Figure 17.1. Virtual Machine Manager Connection window
17.3. La fenêtre Gestionnaire de machines virtuelles
Figure 17.2. Virtual Machine Manager main window
17.4. La fenêtre Détails d'une machine virtuelle
Figure 17.3. Virtual Machine Manager Details window
17.5. La console graphique d'une machine virtuelle
Figure 17.4. La fenêtre de console graphique
17.6. Starting the Virtual Machine Manager
Applications
, cliquez sur Outils de système
et sélectionnez Gestionnaire de machines virtuelles
.
Figure 17.5. Starting the Virtual Machine Manager
17.7. Création d'une nouvelle machine virtuelle
- Créer de nouveaux domaines
- Configure or adjust a domain's resource allocation and virtual hardware.
- Analyser les domaines en cours d'exécution avec les statistiques de performance et d'utilisation des ressources
- Afficher les graphiques qui illustrent les performances et l'utilisation des ressources dans le temps
- Utiliser le client VNC embarqué (visionneuse) qui présente une console graphique complète au domaine invité
Note
Procédure 17.1. Création d'un système d'exploitation invité
- À partir du menu Applications, sélectionnez Outils de système et Gestionnaire de machines virtuelles.La fenêtre principale du gestionnaire de machines virtuelles apparaît.
Figure 17.6. Virtual Machine Manager window
- À partir du menu Fichier, sélectionnez Nouvelle machine.
Figure 17.7. Sélection d'une nouvelle machine
L'assistant de création d'un nouveau système virtuel apparaît. - Click Forward.
Figure 17.8. Assistant de création d'un nouveau système virtuel
- Enter the name of the new virtual system and then click Forward.
Figure 17.9. Nommage du système virtuel
- Saisissez l'emplacement de votre support d'installation. L'emplacement du fichier kickstart est optionnel. Cliquez sur Suivant.
Figure 17.10. Emplacement du support d'installation
- Installez-le sur une partition de disque physique ou sur un système de fichiers virtuels dans un fichier.
Note
Cet exemple installe un système virtuel dans un fichier.SELinux policy only allows xen disk images to reside in/var/lib/xen/images
.Open a terminal and create the /xen directory and set the SELinux policy with the commandrestorecon -v /xen
. Specify your location and the size of the virtual disk, then click Forward.Figure 17.11. Assigner l'espace de stockage
- Select memory to allocate the guest and the number of virtual CPUs then click Forward.
Figure 17.12. Allocation mémoire et CPU
- Select Forward to open a console and the files start to install.
Figure 17.13. Allocation mémoire et CPU
- Poursuivez votre installation avec la fenêtre qui apparaît.
Figure 17.14. L'installation commence...
Avertissement
When installing Red Hat Enterprise Linux 5.1 on a fully virtualized guest, do not use thekernel-xen
kernel. Using this kernel on fully virtualized guests can cause your system to hang.If you are using an Installation Number when installing Red Hat Enterprise Linux 5.1 on a fully virtualized guest, be sure to deselect theVirtualization
package group during the installation. TheVirtualization
package group option installs thekernel-xen
kernel.Note that paravirtualized guests are not affected by this issue. Paravirtualized guests always use thekernel-xen
kernel. - Type
xm create -c xen-guest
to start the Red Hat Enterprise Linux 5.1 guest. Right click on the guest in the Virtual Machine Manager and choose Open to open a virtual console.Figure 17.15. Red Hat Enterprise Linux 5.1 (guest)
- Saisissez le nom d'utilisateur et le mot de passe pour continuer à utiliser le gestionnaire de machines virtuelles.
17.8. Restauration d'une machine enregistrée
- À partir du menu Fichier, sélectionnez Restaurer une machine enregistrée.
Figure 17.16. Restoring a Virtual Machine
- La fenêtre principale de restauration d'une machine virtuelle apparaît.
Figure 17.17. Sélection de la session d'une machine virtuelle enregistrée
- Naviguez dans le répertoire approprié et sélectionnez le fichier enregistré.
- Cliquez sur Ouvrir.
Figure 17.18. La session du gestionnaire de machines virtuelles restaurée
17.9. Displaying Virtual Machine Details
- Dans la fenêtre principale du gestionnaire de machines virtuelles, sélectionnez la machine virtuelle que vous voulez afficher.
Figure 17.19. Sélection d'une machine virtuelle à afficher
- À partir du menu Modifier du gestionnaire de machines virtuelles, sélectionnez Détails de la machine (ou cliquez sur le bouton Détails au bas de la fenêtre principale du gestionnaire de machines virtuelles).
Figure 17.20. Menu Affichage des détails d'une machine virtuelle
La fenêtre d'aperçu des détails d'une machine virtuelle apparaît. Cette fenêtre résume l'utilisation du CPU et de la mémoire pour le/les domaine(s) spécifié(s).Figure 17.21. Affichage de l'aperçu des détails d'une machine virtuelle
- Sur la fenêtre des détails d'une machine virtuelle, cliquez sur l'onglet Matériel.La fenêtre des détails du matériel d'une machine virtuelle apparaît.
Figure 17.22. Affichage des détails du matériel d'une machine virtuelle
- Sur l'onglet Matériel, cliquez sur Processeur pour voir ou changer l'allocation mémoire du processeur.
Figure 17.23. Affichage de l'allocation processeur
- Sur l'onglet Matériel, cliquez sur Memoire pour voir ou changer l'allocation de la mémoire RAM.
Figure 17.24. Affichage de l'allocation mémoire
- Sur l'onglet Hardware, cliquez sur Disque pour voir ou changer la configuration du disque dur.
Figure 17.25. Affichage de la configuration du disque
- Sur l'onglet Matériel, cliquez sur Réseau pour voir ou changer la configuration du réseau.
Figure 17.26. Affichage de la configuration du réseau
17.10. Configuring Status Monitoring
- À partir du menu Modifier, sélectionner Préférences.
Figure 17.27. Modification des préférences d'une machine virtuelle
La fenêtre des préférences du gestionnaire de machines virtuelles apparaît. - À partir de la boîte de dialogue de surveillance des états, spécifiez le délai d'attente (en secondes) avant que le système soit mis à jour.
Figure 17.28. Configuring Status Monitoring
- À partir de la zone des consoles, spécifiez la façon d'ouvrir une console ainsi qu'un périphérique d'entrée.
17.11. Affichage de l'ID du domaine
- À partir du menu Affichage, sélectionnez la case à cocher ID du domaine.
Figure 17.29. Affichage des ID de domaine
- The Virtual Machine Manager lists the Domain ID's for all domains on your system.
Figure 17.30. Affichage des ID de domaine
17.12. Affichage de l'état d'une machine virtuelle
- À partir du menu Affichage, sélectionnez la case à cocher États.
Figure 17.31. Affichage de l'état d'une machine virtuelle
- Le gestionnaire de machines virtuelles liste l'état de toutes les machines virtuelles de votre système :
Figure 17.32. Affichage de l'état d'une machine virtuelle
17.13. Affichage des CPU virtuels
- À partir du menu Affichage, sélectionnez la case à cocher CPU virtuels.
Figure 17.33. Affichage des CPU virtuels
- Le gestionnaire de machines virtuelles liste les CPU virtuels pour toutes les machines virtuelles sur votre système.
Figure 17.34. Affichage des CPU virtuels
17.14. Affiche de l'utilisation CPU
- À partir du menu Affichage, sélectionnez la case à cocher Utilisation CPU.
Figure 17.35. Affiche de l'utilisation CPU
- Le gestionnaire de machines virtuelles liste le pourcentage de CPU en cours d'utilisation de toutes les machines virtuelles de votre système.
Figure 17.36. Affiche de l'utilisation CPU
17.15. Affichage de l'utilisation mémoire
- À partir du menu Affichage, sélectionnez la case à cocher Utilisation mémoire.
Figure 17.37. Affichage de l'utilisation mémoire
- Le gestionnaire de machines virtuelles liste le pourcentage de mémoire en cours d'utilisation (en méga-octets) de toutes les machines virtuelles de votre système.
Figure 17.38. Affichage de l'utilisation mémoire
17.16. Managing a Virtual Network
- From the Edit menu, select Host Details.
Figure 17.39. Selecting Host Details
- This will open the Host Details menu. Click the Virtual Networks tab.
Figure 17.40. Virtual Network Configuration
- All available virtual networks are listed on the left-hand box of the menu. You can edit the configuration of a virtual network by selecting it from this box and editing as you see fit.
17.17. Creating a Virtual Network
- Open the Host Details menu (refer to Section 17.16, « Managing a Virtual Network ») and click the Add button.
Figure 17.41. Virtual Network Configuration
This will open the Create a new virtual network menu. Click Forward to continue.Figure 17.42. Creating a new virtual network
- Enter an appropriate name for your virtual network and click Forward.
Figure 17.43. Naming your virtual network
- Enter an IPv4 address space for your virtual network and click Forward.
Figure 17.44. Choosing an IPv4 address space
- Define the DHCP range for your virtual network by specifying a Start and End range of IP addresses. Click Forward to continue.
Figure 17.45. Selecting the DHCP range
- Select how the virtual network should connect to the physical network.
Figure 17.46. Connecting to physical network
If you select Forwarding to physical network, choose whether the Destination should be NAT to any physical device or NAT to physical device eth0.Click Forward to continue. - You are now ready to create the network. Check the configuration of your network and click Finish.
Figure 17.47. Ready to create network
- The new virtual network is now available in the Virtual Network tab of the Host Details menu.
Figure 17.48. New virtual network is now available
Chapitre 18. Résolution des pannes de la Virtualisation Red Hat
18.1. Vue d'ensemble sur les fichiers journaux et emplacements
- Le répertoire de configuration principale de la Virtualisation Red Hat est
/etc/xen/
. Ce répertoire contient le démonxend
et autres fichiers de configuration de machines virtuelles. Les fichiers de script de mise en réseau résident également ici (dans le sous-répertoire/scripts
). - Tous les fichiers journaux que vous consulterez dans le but de résoudre des pannes résident dans le répertoire
/var/log/xen
.
- Il est utile de savoir que le répertoire par défaut pour toutes les images disque des fichiers basés sur les machines virtuelles résident dans le répertoire
/var/lib/xen
. - Les informations sur la Virtualisation Red Hat pour le système de fichiers
/proc
résident dans le répertoire/proc/xen/
.
18.2. Descriptions des fichiers journaux
xend
et le processus qemu-dm
, deux utilitaires qui écrivent de multiples fichiers journaux dans le répertoire /var/log/xen/
:
xend.log
est le fichier journal qui contient les données collectées par le démonxend
, que ce soit un évènement système ordinaire, ou une action initiée par l'opérateur. Toutes les opérations des machines virtuelles comme créer, fermer, supprimer etc. apparaissent à cet endroit. Lexend.log
est généralement le premier endroit où vous pouvez tracer les problèmes d'évènement ou de performance. Il contient des entrées détaillées et les conditions créant des messages d'erreur.xend-debug.log
est le fichier qui contient des données d'erreurs dans les évènements à partir dexend
et les sous-systèmes de virtualisation (comme la mémoire tampon, les scripts Python, etc.).
xen-hotplug-log
est le fichier journal contenant les données des évènements "hotplug". Si un périphérique ou un script réseau ne vient pas en ligne, l'évènement apparaît ici.qemu-dm.[PID].log
est le fichier journal créé par le processusqemu-dm
pour chaque invité pleinement virtualisé. Quand vous utilisez ce fichier journal, vous devez récupérer le processus PIDqemu-dm
en utilisant la commandeps
pour examiner les arguments du processus afin d'isoler le processusqemu-dm
sur la machine virtuelle. Notez que vous devez remplacer le symbole [PID] par le processus PIDqemu-dm
.
virt-manager.log
qui réside dans le répertoire /.virt-manager
. Notez que chaque fois que vous démarrer le gestionnaire de machines virtuelles, il surcharge le contenu des fichiers journaux existants. Assurez-vous de sauvegarder le fichier virt-manager.log
avant de redémarrer le gestionnaire de machines virtuelles après une erreur système.
18.3. Emplacements importants dans les répertoires
- Les images de machines virtuelles résident dans le répertoire
/var/lib/xen/images
.
- Quand vous redémarrez le démon
xend
, il met à jour laxend-database
qui réside dans le répertoire/var/lib/xen/xend-db
.
- Les vidages de la machine virtuelle (que vous exécutez avec la commande
xm dump-core
) résident dans le répertoire/var/lib/xen/dumps
.
- Le répertoire
/etc/xen
contient les fichiers de configuration que vous utilisez pour gérer les ressources système. Le fichier de configuration du démonxend
est appeléxend-config.sxp
et vous pouvez utiliser ce fichier pour implémenter les modifications sur tout le système et configurer les callouts de mise en réseau.
- Les commandes
proc
sont une autre ressource qui vous permet de rassembler des informations système. Ces entrées proc résident dans le répertoire/proc/xen
:
/proc/xen/capabilities
/proc/xen/balloon
/proc/xen/xenbus/
18.4. Outils de résolution des pannes
xentop
xm dmesg
xm log
vmstat
iostat
lsof
XenOprofile
systemTap
crash
sysrq
sysrq t
sysrq w
ifconfig
tcpdump
brctl
brctl
est un outil de mise en réseau qui inspecte et configure la configuration de pont ethernet dans le noyau de Virtualisation Linux. Vous devez posséder un accès super-utilisateur avant d'exécuter ces exemples de commandes :
# brctl show bridge-name bridge-id STP enabled interfaces ----------------------------------------------------------------------------- xenbr0 8000.feffffff no vif13.0 xenbr1 8000.ffffefff yes pddummy0 xenbr2 8000.ffffffef no vif0.0 # brctl showmacs xenbr0 port-no mac-addr local? ageing timer 1 fe:ff:ff:ff:ff: yes 0.00 2 fe:ff:ff:fe:ff: yes 0.00 # brctl showstp xenbr0 xenbr0 bridge-id 8000.fefffffffff designated-root 8000.fefffffffff root-port 0 path-cost 0 max-age 20.00 bridge-max-age 20.00 hello-time 2.00 bridge-hello-time 2.00 forward-delay 0.00 bridge-forward-delay 0.00 ageing-time 300.01 hello-timer 1.43 tcn-timer 0.00 topology-change-timer 0.00 gc-timer 0.02
18.5. Résolution des pannes avec les fichiers journaux
xend.log
file contains the same basic information as when you run the xm log
command. It resides in the /var/log/
directory. Here is an example log entry for when you create a domain running a kernel:
[2006-12-27 02:23:02 xend] ERROR (SrvBase: 163) op=create: Error creating domain: (0, 'Error') Traceback (most recent call list) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvBase.py" line 107 in_perform val = op_method (op,req) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py line 71 in op_create raise XendError ("Error creating domain: " + str(ex)) XendError: Error creating domain: (0, 'Error')
xend-debug.log
, est très utile aux administrateurs système puisqu'il contient des informations encore plus détaillées que le xend.log
. Voici les mêmes données d'erreurs que pour le même problème de création de domaine de noyau :
ERROR: Will only load images built for Xen v3.0 ERROR: Actually saw: GUEST_OS=netbsd, GUEST_VER=2.0, XEN_VER=2.0; LOADER=generic, BSD_SYMTAB' ERROR: Error constructing guest OS
18.6. Résolution des pannes avec la console série
grub.conf
pour activer une console série 38400-bps sur com1 /dev/ttyS0
:
title Red Hat Enterprise Linix (2.6.18-8.2080_RHEL5xen0) root (hd0,2) kernel /xen.gz-2.6.18-8.el5 com1=38400,8n1 module /vmlinuz-2.618-8.el5xen ro root=LABEL=/rhgb quiet console=xvc console=tty xencons=xvc module /initrd-2.6.18-8.el5xen.img
sync_console
can help determine a problem that causes hangs with asynchronous hypervisor console output, and the "pnpacpi=off"
works around a problem that breaks input on the serial console. The parameters "console=ttyS0"
and "console=tty"
means that kernel errors get logged with on both the normal VGA console and on the serial console. Then you can install and set up ttywatch
to capture the data on a remote host connected by a standard null-modem cable. For example, on the remote host you could type:
ttywatch --name myhost --port /dev/ttyS0
/dev/ttyS0
vers le fichier /var/log/ttywatch/myhost.log
.
18.7. Accès à la console de l'invité paravirtualisé
xm console [domain name or number]
domain100
représente un nom ou un nombre en exécution. Vous pouvez également utiliser le gestionnaire de machines virtuelles pour afficher la console texte virtuelle. Dans la fenêtre des informations sur la machine virtuelle, sélectionnez Console série à partir du menu Affichage.
18.8. Accès à la console de l'invité pleinement virtualisé
grub.conf
file, and include the 'console =ttyS0 console=tty0'
parameter. This ensures that the kernel messages are sent to the virtual serial console (and the normal graphical console). If you plan to use the virtual serial console in a full virtualized guest, you must edit the configuration file in the /etc/xen/
directory. On the host domain, you can then access the text console by typing:
xm console
18.9. Implementation de la persistance Lun
udev
pour implémenter la persistance lun. Avant d'implémenter la persistance lun sur votre système, assurez-vous d'obtenir les UUID corrects. Une fois que vous les avez obtenus, vous pouvez configurer la persistance lun en éditant le fichier scsi_id
qui réside dans le répertoire /etc
. Une fois que ce fichier est ouvert dans l'éditeur de texte, vous devez décommenter cette ligne.
# options=-b
# options=-g
# scsi_id -g -s /block/sdc
[root@devices] # scsi_id -g -s /block/sdc *3600a0b80001327510000015427b625e*
20-names.rules
qui réside dans le répertoire /etc/udev/rules.d
. Les règles de nommage de périphérique que vous créez ici devraient suivre ce format :
# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID", NAME="devicename"
KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e ", NAME="mydevicename"
/dev/sd*
pour inspecter un UUID donné. Quand il trouve un périphérique correspondant, il crée un noeud de périphérique appelé /dev/devicename
. Pour cet exemple, le noeud de périphérique est /dev/mydevice
. Enfin, vous devez ajouter le fichier rc.local
qui réside dans le répertoire /etc
avec ce chemin :
/sbin/start_udev
multipath.conf
qui réside dans le répertoire /etc/
:
multipath { wwid 3600a0b80001327510000015427b625e alias oramp1 } multipath { wwid 3600a0b80001327510000015427b6 alias oramp2 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp3 } multipath { wwid 3600a0b80001327510000015427b625e alias oramp4 }
/dev/mpath/oramp1
, /dev/mpath/oramp2
, /dev/mpath/oramp3
, et dev/mpath/oramp4
. Les périphériques résideront dans le répertoire /dev/mpath
. Ces noms lun sont persistants sur les redémarrages car cela crée les noms d'alias sur le wwid des lun.
18.10. Considérations avec SELinux
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_trans
place xend
dans un mode unconfined (sans limitation) après le redémarrage du démon. Il est recommandé de désactiver la protection pour un démon unique plutôt que pour tout le système. De même il vaut mieux ne pas ré-étiqueter les répertoires comme xen_image_t
que vous utiliserez ailleurs.
18.11. Accès aux données sur l'image disque de l'invité
yum install kpartx kpartx -av /dev/xen/guest1 add map guest1p1 : 0 208782 linear /dev/xen/guest1 63 add map guest1p2: 0 16563015 linear /dev/xen/guest1 208845
# kpartx -a /dev/xen/guest1 #vgscan Reading all physical volumes . This may take a while... Found volume group "VolGroup00" using metadata type 1vm2 # vgchange -ay VolGroup00 2 logical volume(s) in volume group VolGroup00 now active. # lvs LV VG Attr Lsize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M # mount /dev/VolGroup00/LogVol00 /mnt/ .... #umount /mnt/ #vgchange -an VolGroup00 #kpartx -d /dev/xen/guest1
vgchange -an
, supprimer les partitions avec kpartx-d
et supprimer le périphérique loop avec losetup -d
quand vous terminez.
18.12. Situations fréquentes dans la résolution des pannes
xend
, il ne se passe rien. Vous saisissez xm list1
et vous recevez ce qui suit :
Error: Error connecting to xend: Connection refused. Is xend running?
xend
manuellement et vous obtenez des erreurs supplémentaires :
Error: Could not obtain handle on privileged command interfaces (2 = No such file or directory) Traceback (most recent call last:) File "/usr/sbin/xend/", line 33 in ? from xen.xend.server. import SrvDaemon File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDaemon.py" , line 26 in ? from xen.xend import XendDomain File "/usr//lib/python2.4/site-packages/xen/xend/XendDomain.py" , line 33, in ? from xen.xend import XendDomainInfo File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line37, in ? import images File "/usr/lib/python2.4/site-packages/xen/xend/image.py" , line30, in ? xc = xen.lowlevel.xc.xc () RuntimeError: (2, 'No such file or directory' )
xen-hypervisor kernel
. Pour corriger cela, vous devez sélectionner le noyau xen-hypervisor
au moment du lancement (ou configurer par défaut, le noyau xen-hypervisor
dans votre fichier grub.conf
).
18.13. Erreurs de périphériques loop
/etc/modprobe.conf
. Quand vous modifiez ce fichier modprobe.conf
, vous devez inclure cette ligne :
options loop max_loop=64
phy: block device
ou tap:aio
. Pour employer des invités supportés par un périphérique loop pour un système totalement virtualisé, utilisez le fichier phy: device
ou les commandes file: file
.
18.14. Erreurs de création d'invités
"Invalid argument"
error message. This usually means that the kernel image you are trying to boot is incompatible with the hypervisor. An example of this would be if you were attempting to run a non-PAE FC5 kernel on a PAE only FC6 hypervisor.
grub.conf
redevient directement un noyau bare-metal au lieu d'un noyau de virtualisation.
/etc/sysconfig/kernel/
. Vous devez vous assurer que le paramètre kernel-xen
est configuré comme l'option par défaut dans votre fichier gb.conf
.
18.15. Erreurs de la console série
grub.conf
et modifier les paramètres de port com à :
serial --unit=1 --speed=115200
title RHEL5 i386 Xen (2.6.18-1.2910.el5xen) root (hd0, 8) kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200,8n1 module /boot/vmlinuz-2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=tty console=ttyS1115200 module /boot/initrd-2.8.6.18-12910.el5xen.img title RHEL5 i386 xen (2.6.18.-1.2910.el5xen root (hd0, 8) kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200 console=com2l module /boot/vmlinuz2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=xvc xencons=xvc module /boot/ititrd-2.6.18-1.2910.el5xen.img
grub.conf
devraient activer votre console série pour qu'elle fonctionne correctement. Vous devriez être en mesure d'utiliser tout nombre pour le ttyS
et il devrait fonctionner comme ttyS0
.
18.16. Erreurs de pont réseau
/etc/sysconfig/network-scripts
. You should use a process to setup multiple Xen bridges. This is an example config file for a second NIC called 'eth1'
:
#/etc/sysconfig/network-scripts/fcfg-eth1 DEVICE=eth1 BOOTPROTO=static ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 GATEWAY=10.1.1.254 ARP=yes
/etc/xen/scripts/network-bridge
sur /etc/xen/scripts/network-bridge.xen
.
/etc/xen/xend-config.sxp
and add a line to your new network bridge script (this example uses "network-virtualization-multi-bridge"
).
xend-config.sxp
, la nouvelle ligne devrait refléter votre nouveau script :
network-script network-xen-multi-bridge
network-script network-bridge
xenbr0
et xenbr1
) et les attache à eth1
et eth0
, respectivement :
# !/bin/sh # network-xen-multi-bridge # Exit if anything goes wrong set -e # First arg is operation. OP=$1 shift script=/etc/xen/scripts/network-bridge.xen case ${OP} in start) $script start vifnum=1 bridge=xenbr1 netdev=eth1 $script start vifnum=0 bridge=xenbr0 netdev=eth0 ;; stop) $script stop vifnum=1 bridge=xenbr1 netdev=eth1 $script stop vifnum=0 bridge=xenbr0 netdev=eth0 ;; status) $script status vifnum=1 bridge=xenbr1 netdev=eth1 $script status vifnum=0 bridge=xenbr0 netdev=eth0 ;; *) echo 'Unknown command: ' ${OP} echo 'Valid commands are: start, stop, status' exit 1 esac
18.17. Configurations des ordinateurs portables
ifcfg-dummy0
et réside dans le répertoire /etc/sysconfig/network-scripts/
:
DEVICE =dummy0 BOOTPROTO=none ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 ARP=yes
xenbr0
à dummy0
pour permettre la connexion réseau même lorsque la connexion au réseau physique n'est pas établie.
xend-config.sxp
file. You must locate the ( network-script 'network-bridge' bridge=xenbr0
) section and add include this in the end of the line:
netdev=dummy0
/etc/sysconfig/
directory to reflect the example below:
NETWORKING=yes HOSTNAME=localhost.localdomain GATEWAY=10.1.1.1 IPADDR=10.1.1.10 NETMASK=255.255.255.0
S99XenLaptopNAT
qui réside dans le répertoire /etc/rc3.d
pour refléter l'exemple ci-dessous :
#!/bin/bash # # XenLaptopNAT Startup script for Xen on Laptops # # chkconfig: - 99 01 # description: Start NAT for Xen Laptops # # PATH=/usr/bin:/sbin:/bin:/usr/sbin # export PATH GATEWAYDEV=`ip route | grep default | awk {'print $5'}` iptables -F case "$1" in start) if test -z "$GATEWAYDEV"; then echo "No gateway device found" else echo "Masquerading using $GATEWAYDEV" /sbin/iptables -t nat -A POSTROUTING -o $GATEWAYDEV -j MASQUERADE fi echo "Enabling IP forwarding" echo 1 > /proc/sys/net/ipv4/ip_forward echo "IP forwarding set to `cat /proc/sys/net/ipv4/ip_forward`" echo "done." ;; *) echo "Usage: $0 {start|restart|status}" ;; esac
/etc/rc3.d/S99XenLaptopNAT
.
modprobe.conf
, vous devez inclure ces lignes :
alias dummy0 dummy options dummy numdummies=1
18.18. Starting Domains Automatically During System Boot
/etc/xen/auto
. Ce fichier pointe vers les fichiers de configuration des invités que vous devez démarrer automatiquement. Le processus de démarrage est sérialisé, c'est-à-dire que plus le nombre d'invités est élevé, plus le processus de lancement prendra de temps. Cet exemple vous montre comment utiliser les liens symboliques pour l'invité rhel5vm01
:
[root@python xen]# cd /etc/xen [root@python xen]# cd auto [root@python auto]# ls [root@python auto]# ln -s ../rhel5vm01 . [root@python auto]# ls -l lrwxrwxrwx 1 root root 14 Dec 14 10:02 rhel5vm01 -> ../rhel5vm01 [root@python auto]#
18.19. Modification de Domain0
grub.conf
configuration file, that resides in the /etc
directory. Because of the large number of domains to manage, many system administrators prefer to use the 'cut and paste' method when editing grub.conf
. If you do this, make sure that you include all five lines in the Virtualization entry (or this will create system errors). If you require Xen hypervisor specific values, you must add them to the 'xen' line. This example represents a correct grub.conf
Virtualization entry:
# boot=/dev/sda/ default=0 timeout=15 #splashimage=(hd0, 0)/grub/splash.xpm.gz hiddenmenu serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen) root (hd0, 0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 module /vmlinuz-2.6.17-1.2519.4.21el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
'dom0_mem=256M'
. This example represents the respective grub.conf
xen entry:
# boot=/dev/sda default=0 timeout=15 #splashimage=(hd0,0)/grubs/splash.xpm.gz hiddenmenu serial --unit=0 --speed =115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen) root (hd0,0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 dom0_mem=256MB module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
18.20. Fichiers de configuration des invités
name = "rhel5vm01" memory = "2048" disk = ['tap:aio:/xen/images/rhel5vm01.dsk,xvda,w',] vif = ["type=ieomu, mac=00:16:3e:09:f0:12 bridge=xenbr0', "type=ieomu, mac=00:16:3e:09:f0:13 ] vnc = 1 vncunused = 1 uuid = "302bd9ce-4f60-fc67-9e40-7a77d9b4e1ed" bootloader = "/usr/bin/pygrub" vcpus=2 on_reboot = "restart" on_crash = "restart"
serial="pty"
is the default for the configuration file. This configuration file example is for a fully-virtualized guest:
name = "rhel5u5-86_64" builder = "hvm" memory = 500 disk = ['file:/xen/images/rhel5u5-x86_64.dsk.hda,w'] vif = [ 'type=ioemu, mac=00:16:3e:09:f0:12, bridge=xenbr0', 'type=ieomu, mac=00:16:3e:09:f0:13, bridge=xenbr1'] uuid = "b10372f9-91d7-ao5f-12ff-372100c99af5' device_model = "/usr/lib64/xen/bin/qemu-dm" kernel = "/usr/lib/xen/boot/hvmloader/" vnc = 1 vncunused = 1 apic = 1 acpi = 1 pae = 1 vcpus =1 serial ="pty" # enable serial console on_boot = 'restart'
18.21. Clonage des fichiers de configuration des invités
uuidgen(1)
command). Then for the vif
entries you must define a unique MAC address for each guest (if you are copying a guest configuration from an existing guest, you can create a script to handle it). For the xen bridge information, if you move an existing guest configuration file to a new host, you must update the xenbr
entry to match your local networking configuration. For the Device entries, you must modify the entries in the 'disk='
section to point to the correct guest image.
/etc/sysconfig/network
file to match the new guest's hostname.
/etc/sysconfig/network-scripts/ifcfg-eth0
pour faire correspondre la sortie du fichier ifconfig eth0
et si vous utilisez des adresses IP statiques, vous devez modifier l'entrée IPADDR.
18.22. Creation d'un script pour générer des adresses MAC
#! /usr/bin/python # macgen.py script generates a MAC address for Xen guests # import random mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] print ':'.join(map(lambda x: "%02x" % x, mac)) Generates e.g.: 00:16:3e:66:f5:77 to stdout
18.23. Configuration de la migration en direct de machines virtuelles
xm migrate
command). Live migration can be done from the same command. However there are some additional modifications that you must do to the xend-config
configuration file. This example identifies the entries that you must modify to ensure a successful migration:
(xend-relocation-server yes)
- The default for this parameter is 'no', which keeps the relocation/migration server deactivated (unless on a trusted network) and the domain virtual memory is exchanged in raw form without encryption.
(xend-relocation-port 8002)
- Ce paramètre détermine le port utilisé par
xend
pour la migration. La valeur est correcte, veuillez simplement vous assurer que vous enlevez le commentaire qui est placé devant. (xend-relocation-address )
- Ce paramètre représente l'adresse qui écoute les connexions socket de délocalisation. À l'écoute, elle restreint la migration vers une interface particulière.
(xend-relocation-hosts-allow )
- This parameter controls the host that communicates with the relocation port. If the value is empty, then all incoming connections are allowed. You must change this to a space-separated sequences of regular expressions (such as
xend-relocation-hosts-allow- '^localhost\\.localdomain$'
). A host with a fully qualified domain name or IP address that matches these expressions are accepted.
18.24. Interprétation des messages d'erreur
failed domain creation due to memory shortage, unable to balloon domain0
xend.log
suite à cette erreur :
[2006-12-21] 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 Kib free; 0 to scrub; need 1048576; retries: 20 [2006-12-21] 20:33:31 xend. XendDomainInfo 3198] ERROR (XendDomainInfo: 202 Domain construction failed
xm list Domain0
command. If domain0 is not ballooned down, you can use the command "xm mem-set Domain-0 NewMemSize"
to check memory.
wrong kernel image: non-PAE kernel on a PAE
[root@smith]# xm create -c va base Using config file "va-base" Error: (22, 'invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERRORs (XendDomainInfo:202) Domain construction failed Traceback (most recent call last) File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195 in create vm.initDomain() File " /usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1363 in initDomain raise VmError(str(exn)) VmError: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1449] XendDlomainInfo.destroy: domin=1 [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1457] XendDlomainInfo.destroy:Domain(1)
Unable to open a connection to the Xen hypervisor or daemon
/etc/hosts
. Vérifiez le fichier et vérifiez que l'entrée de l'hôte local est activée. Voici un exemple d'entrée d'hôte local incorrecte :
# Do not remove the following line, or various programs # that require network functionality will fail. localhost.localdomain localhost
# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost localhost.localdomain. localhost
xen-xend.log file
) :
Bridge xenbr1 does not exist!
[root@trumble virt]# xm create r5b2-mySQL01 Using config file " r5b2-mySQL01" Going to boot Red Hat Enterprise Linux Server (2.6.18.-1.2747 .el5xen) kernel: /vmlinuz-2.6.18-12747.el5xen initrd: /initrd-2.6.18-1.2747.el5xen.img Error: Device 0 (vif) could not be connected. Hotplug scripts not working.
xend.log
affiche les erreurs suivantes :
[2006-11-14 15:07:08 xend 3875] DEBUG (DevController:143) Waiting for devices vif [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:149) Waiting for 0 [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback /local/domain/0/backend/vif/2/0/hotplug-status [2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1449) XendDomainInfo.destroy: domid=2 [2006-11-14 15:08:09 xend.XendDomainInfo 3875] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(2) [2006-11-14 15:07:08 xend 3875] DEBUG (DevController:464) hotplugStatusCallback /local/domain/0/backend/vif/2/0/hotplug-status
vif
. Quand vous localisez l'entrée vif
du fichier de configuration, en supposant que vous utilisiez xenbr0
comme pont par défaut, assurez-vous que l'entrée appropriée ressemble à ce qui suit :
# vif = ['mac=00:16:3e:49:1d:11, bridge=xenbr0',]
[root@python xen]# xm shutdown win2k3xen12 [root@python xen]# xm create win2k3xen12 Using config file "win2k3xen12". /usr/lib64/python2.4/site-packages/xenxm/opts.py:520: Deprecation Warning: Non ASCII character '\xc0' in file win2k3xen12 on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details execfile (defconfig, globs, locs,) Error: invalid syntax 9win2k3xen12, line1)
18.25. Ressources de résolution des pannes en ligne
- Centre de Virtualisation Red Hat
http://www.openvirtualization.com
- Documentation Red Hat Enterprise Linux 5 Beta 2
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/index.html
- API Libvirt
http://www.libvirt.org
- Page accueil du projet virt-manager
http://virt-manager.et.redhat.com
- Centre de la communauté Xen
http://www.xensource.com/xen/xen/
- Vue d'ensemble des technologies de virtualisation
http://virt.kernelnewbies.org
- Projets de technologies émergeants
http://et.redhat.com
Chapitre 19. Ressources supplémentaires
19.1. Sites Web utiles
- http://www.cl.cam.ac.uk/research/srg/netos/xen/ — Le site Web du projet concernant Xen™, le gestionnaire de machines pour la virtualisation partielle à partir duquel la Red Hat Virtualization est dérivée. Le site maintient en amont le code source et les bibliothèques du projet Xen et contient également des informations, des aperçus de l'architecture, de la documentation et des liens en relation à Xen et ses technologies associées.
- http://www.libvirt.org/ — Le site Web officiel pour l'API de virtualisation
libvirt
qui interagit avec le framework de virtualisation d'un SE hôte. - http://virt-manager.et.redhat.com/ — Le site Web du projet concernant Gestionnaire de machines virtuelles (virt-manager), l'application graphique pour la gestion des machines virtuelles.
19.2. Documentation installée
/usr/share/doc/xen-<version-number>/
—. This directory contains a wealth of information about the Xen para-virtualization hypervisor and associated management tools, including a look at various example configurations, hardware-specific information, and the current Xen upstream user documentation.man virsh
and/usr/share/doc/libvirt-<version-number>
— Contains subcommands and options for thevirsh
virtual machine management utility as well as comprehensive information about thelibvirt
virtualization library API./usr/share/doc/gnome-applet-vm-<version-number>
— Documentation for the GNOME graphical panel applet that monitors and manages locally-running virtual machines./usr/share/doc/libvirt-python-<version-number>
— Provides details on the Python bindings for thelibvirt
library. Thelibvirt-python
package allows python developers to create programs that interface with thelibvirt
virtualization management library./usr/share/doc/python-virtinst-<version-number>
— Provides documentation on thevirt-install
command that helps in starting installations of Fedora and Red Hat Enterprise Linux related distributions inside of virtual machines./usr/share/doc/virt-manager-<version-number>
— Provides documentation on the Virtual Machine Manager, which provides a graphical tool for administering virtual machines.
Annexe A. Exercice 1
- Afin de déterminer si votre CPU comporte la prise en charge PAE, saisissez :
grep pae /proc/cpuinfo
- La sortie suivante illustre un CPU qui possède la prise en charge PAE. Si la commande ne retourne rien, le CPU ne possède pas de prise en charge PAE. Tous les exercices de ce chapitre requièrent un CPU i386 avec extension PAE ou x86_64 ou ia64 pour fonctionner.
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up est tm2
virt-install
.
virt-install
.
- Pour installer votre invité Xen Red Hat Enterprise Linux 5 Beta 2, à l'invite de commande, saisissez :
virt-install
. - Lorsqu'on vous demande d'installer un invité pleinement virtualisé, saisissez :
no
. - Saisissez
rhel5b2-pv1
pour le nom de votre machine virtuelle. - Saisissez 500 pour l'allocation de la mémoire RAM.
- Saisissez
/xen/rhel5b2-pv1.img
pour votre disque (image invité). - Saisissez 6 pour la taille de votre disque (image invité).
- Saisissez
yes
pour activer la prise en charge graphique. - Saisissez
nfs:server:/path/to/rhel5b2
pour votre emplacement d'installation. - L'installation commence. Complétez votre installation comme prévu.
- Après la finalisation de l'installation, saisissez
/etc/xen/rhel5b2-pv1
et effectuez les modifications suivantes : #vnc=1#vncunused=1sdl=1 - Utilisez un éditeur de texte pour modifier
/etc/inittab
et ajoutez ceci au fichier :init 5.#id:3:initdefault:id:5:initdefault:
virt-manager
.
virt-manager
.
- Pour installer votre invité paravirtualisé Xen Red Hat Enterprise Linux 5 Beta 2, à l'invite de commande, saisissez :
virt-manager
. - Dans la fenêtre Ouvrir la connexion, sélectionnez l'hôte Xen local et cliquez sur Connecter.
- Start Red Hat's Virtual Machine Manager application, and from the File menu, click on New.
- Cliquez sur Continuer.
- Saisissez
rhel5b2-pv2
pour le nom de votre système et cliquez surContinuer. - Sélectionnez Paravirtualisé et cliquez sur Continuer.
- Saisissez
nfs:server:/path/to/rhel5b2
pour l'URL de votre média d'installation et cliquez sur Continuer. - Sélectionnez
Fichier unique
, saisissez/xen/rhel5b2-pv2.img
pour l'emplacement de votre fichier. Choisissez 6000 Mo et cliquez sur Continuer. - Choisissez 500 pour la mémoire de votre MV lors du démarrage et la mémoire maximum, et cliquez sur Continuer.
- Cliquez sur Arrêter.
- To determine if your CPU has Intel-VT or AMD-V support, type the following command:
egrep -e 'vmx|svm' /proc/cpuinfo
- La sortie suivante indique un CPU qui prend en charge Intel-VT :
.flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pni monitor vmx est tm2 xtpr
Si la commande ne retourne rien le CPU ne prend pas en charge Intel-VT ou AMD-V. - Pour déterminer si votre CPU prend en charge Intel-VT ou AMD-V, saisissez la commande suivante :
cat /sys/hypervisor/properties/capabilities
- The following output shows that Intel-VT support has been enabled in the BIOS. If the command returns nothing, then go into the BIOS Setup Utlility and look for a setting related to 'Virtualization', i.e. 'Intel(R) Virtualization Technology' under 'CPU' section on a IBM T60p. Enable and save the setting and do a power off to take effect.
xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
virt-install
:
- Pour installer votre invité Xen Red Hat Enterprise Linux 5 Beta 2, à l'invite de commande, saisissez :
virt-install
. - Quand on vous demande d'installer un invité pleinement virtualisé, saisissez
yes
. - Saisissez
rhel5b2-pv2
pour un nom de machine virtuelle. - Saisissez 500 pour l'allocation de la mémoire.
- Saisissez
/xen/rhel5b2-fv1.img
pour votre disque (image invité). - Saisissez 6 pour la taille de votre disque (image invité).
- Saisissez
yes
pour activer la prise en charge graphique. - Saisissez
/dev/cdrom
pour l'image du CD virtuel. - The VNC viewer appears within the installation window. If there is an error message that says “main: Unable to connect to host: Connection refused (111)”, then type the following command to proceed:
vncviewer localhost:5900
. VNC port 5900 refers to the first Xen guest that is running on VNC. If it doesn't work, you might need to use 5901, 5902, etc.
virt-manager
:
- Pour installer votre invité paravirtualisé Xen Red Hat Enterprise Linux 5 Beta 2, à l'invite de commande, saisissez :
virt-manager
. - Dans la fenêtre Ouvrir la connexion, sélectionnez l'hôte Xen local et cliquez sur Connecter.
- Start Red Hat's Virtual Machine Monitor application, and from the File menu, click on New.
- Cliquez sur Continuer.
- Saisissez
rhel5b2-fv2
pour votre nom de système et cliquez sur Continuer. - Sélectionnez Pleinement virtualisé et cliquez sur Continuer.
- Spécifiez CD-ROM ou DVD et entrez le chemin du média d'installation. Spécifiez l'emplacement de l'image ISO si vous installez à partir d'une image ISO. Cliquez sur Continuer
- Sélectionnez Fichier unique, saisissez
/xen/rhel5b2-fv2.img
pour l'emplacement de votre fichier. Spécifiez 6000 Mo et cliquez sur Continuer. - Choisissez 500 pour la mémoire de votre MV lors du démarrage et la mémoire maximum, et cliquez sur Continuer.
- Cliquez sur Arrêter.
- La fenêtre Console de la machine virtuelle s'affiche.
virt-manager
.
virt-manager
:
- Les mêmes instructions que pour la séquence 6 sont applicables ici.
virt-manager
virt-manager
:
- Les mêmes instructions que pour la séquence 6 sont applicables ici.
virt-manager
.
virt-manager
:
- Pour installer votre Red Hat Enterprise Linux 5 sur votre hôte Windows XP, à l'invite de commande, saisissez :
virt-manager
. - Dans la fenêtre Ouvrir la connexion, sélectionnez l'hôte Xen local, et cliquez sur Connecter.
- Start Red Hat's Virtual Machine Manager application, and from the File menu click on New.
- Cliquez sur Continuer.
- Saisissez
winxp
pour votre nom de système et cliquez sur Continuer. - Sélectionnez Pleinement virtualisé et cliquez sur Continuer.
- Spécifiez CD-ROM ou DVD et entrez le chemin du média d'installation. Spécifiez l'emplacement de l'image ISO si vous installez à partir d'une image ISO. Cliquez sur Continuer.
- Sélectionnez Fichier unique, saisissez
/xen/winxp.img
pour l'emplacement de votre fichier. Spécifiez 6000 Mo et cliquez sur Continuer. - Sélectionnez 1024 pour la mémoire de votre MV lors du démarrage et la mémoire maximum, et sélectionnez 2 pour les VCPU. Cliquez sur Continuer.
- Cliquez sur Arrêter.
- La fenêtre Console de la machine virtuelle s'affiche. Effectuez les opérations comme prévu et terminez votre installation.
- Choisissez de formater la partition
C:\
dans un format de système de fichiers FAT. Red Hat Enterprise Linux 5 ne comporte pas de modules de noyau NTFS. Si vous formatez la partition dans un format de système de fichiers NTFS, monter ou écrire des fichiers dans l'image de l'invité Xen n'est pas aussi simple. - Après le redémarrage du système pour la première fois, éditez l'image de l'invité
winxp
:losetup /dev/loop0 /xen/winxp.imgkpartx -av /dev/loop0mount /dev/mapper/loop0p1 /mntcp -prv $WINDOWS/i386 /mnt/
. Cela résout un problème potentiel dans l'installation de Windows. - Redémarrez l'invité Xen manuellement en saisissant :
xm create -c winxp/
. - Dans la fenêtre du Gestionnaire de machines virtuelles, sélectionnez l'invité Xen
winxp
et cliquez sur Ouvrir. - La console de la machine virtuelle s'affiche. Effectuez les opérations comme prévu et complétez l'installation.
- Whenever a 'Files Needed' dialog box appears, change the path
GLOBALROOT\DEVICE\CDROM0\I386
toC:\I386
. Depending on your installation, you may or may not see this problem. You may be prompted for missing files during the installation. Changing the path toC:\I386
should compensate for this problem. - Si la console de l'invité Xen se bloque, cliquez sur
arrêter
et effectuez les modifications suivantes dans/etc/xen/winxp:#vnc=1#vncunused=1sdl=1#vcpus=2
- Répétez l'étape 14 et effectuez votre installation comme prévu.
Annexe B. Exercice 2
host1
et host2
.
xm
) et communique avec xend. Pour activer la migration en direct entre-machines vous devez le configurer de façon à ce qu'il prenne en charge la migration en direct :
- Pour sauvegarder votre fichier
xend-config.sxp
:cp -pr /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.default
- Éditez
/etc/xen/xend-config.sxp
et effectuez les modifications suivantes :#(xend-unix-server yes)(xend-relocation-server yes)(xend-relocation-port 8002)(xend-relocation-address '')(xend-relocation-hosts-allow '')#(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
- Redémarrez
xend:service
etxend restart
.
- Éditez
/etc/exports
et ajoutez la ligne :/xen *(rw,sync,no_root_squash)/
- Enregistrez
/etc/exports
et redémarrez le serveur NFS. Assurez-vous que le serveur NFS démarre pardefault:service nfs startchkconfig nfs on
. - Après avoir démarré le serveur NFS sur
host1
vous pouvez le monter surhost2:mount host1:/xen
. - Maintenant démarrez l'invité Xen sur
host1
et sélectionnezfc6-pv1
(oufc6-pv2
depuis l'exercice 1) :xm create -c fc6-pv1
- Téléchargez le tarball
gnump3d-2.9.9.9.tar.bz2
depuishttp://www.gnump3d.org/
. Désempaquetez le tarball et dans le répertoiregnump3d-2.9.9.9/
, compilez et installez legnump3d application:tar xvjf gnump3d-2.9.9.9.tar.bz2cd gnump3d-2.9.9.9/make install
- Create a
/home/mp3
directory and copy TruthHappens.ogg from Red Hat's Truth Happens page tomkdir /home/mp3wget -c http://www.redhat.com/v/ogg/TruthHappens.ogg
- Démarrez le serveur de flux en saisissant :
command:gnump3d
- Sur l'un des deux hôtes Xen, exécutez Movie Player. S'il n'est pas installé, installez le totem et les rpms iso-codecs avant d'exécuter Movie Player. Cliquez sur Applications, ensuite Son & Vidéo et enfin Movie Player.
- Cliquez sur Movie, ensuite Ouvrir l'emplacement. Entrez http://guest:8888/TruthHappens.ogg.
- Exécutez le fichier
TruthHappens.ogg
sur l'un des deux hôtes Xen. - Effectuez la migration en direct de
host1
àhost2
:xm migrate –live fc6-pv1 host2
- Ouvrez des terminaux à fenêtres multiples sur les deux hôtes Xen avec la commande suivante :
watch -n1 xm list
- Observez le commencement de la migration en direct. Notez la durée de la migration.
gdm
starts up. Run VNC viewer and connect to the Xen guest. Play with the Xen guest when the live migration occurs. Attempt to pause/resume, and save/restore the Xen guest and observe what happens to the VNC viewer. If you connect to the VNC viewer via localhost:590x
, and do a live migration, you won't be able to connect to the VNC viewer again when it dies. This is a known bug.
Annexe C. Historique des versions
Historique des versions | ||||
---|---|---|---|---|
Version 2.0-11.400 | 2013-10-31 | Rüdiger Landmann | ||
| ||||
Version 2.0-11 | 2012-07-18 | Anthony Towns | ||
| ||||
Version 5.1.0-10 | Fri Aug 3 2007 | Michael Hideo Smith | ||
|