Édition 5.8
1801 Varsity Drive
Raleigh, NC 27606-2072 USA
Phone: +1 919 754 3700
Phone: 888 733 4281
Fax: +1 919 754 3701
ftpd
Caractères gras à espacement fixe
Pour consulter le contenu du fichiermon_nouvel_ouvrage_littéraire
qui se situe dans votre dossier courant, saisissez la commandecat mon_nouvel_ouvrage_littéraire
à la demande du terminal et appuyez sur Entrée pour exécuter la commande.
Appuyez sur Entrée pour exécuter la commande.Appuyez sur Ctrl+Alt+F2 pour passer au premier terminal virtuel. Appuyer sur Ctrl+Alt+F1 pour retournez à votre session X-Windows.
caractères gras à espacement fixe
. Par exemple :
Les classes de fichiers comprennent le nom de classefilesystem
pour les noms de fichier,file
pour les fichiers etdir
pour les dossiers. Chaque classe correspond à un ensemble de permissions associées.
Sélectionnez Préférences de la souris. À partir de l'onglet Boutons, cliquez sur la case à cocher Pour gaucher puis cliquez sur pour faire passer le bouton principal de la souris de la gauche vers la droite (ce qui permet l'utilisation de la souris par la main gauche).→ → à partir de la barre du menu principal pour lancer lesPour insérer un caractère spécial dans un fichier gedit, choisissez → → à partir de la barre du menu principal. Ensuite, sélectionnez → à partir de la barre de menu de Table de caractères, saisissez le nom du caractère dans le champ Rechercher puis cliquez sur . Le caractère que vous recherchez sera surligné dans la Table de caractères. Double-cliquez sur le caractère surligné pour l'insérer dans le champ Texte à copier, puis cliquez sur le bouton . Maintenant, revenez à votre document et sélectionnez → à partir de la barre de menu de gedit.
Italique gras à espacement fixe
ou Italique gras proportionnel
Pour se connecter à une machine distante en utilisant ssh, saisissezssh
après l'invite de commande de la console. Si la machine distante estnom d'utilisateur
@domain.name (nom.domaine)
exemple.com
et que votre nom d'utilisateur pour cette machine est john, saisissezssh john@example.com
.La commandemount -o remount
monte le système de fichiers nommé. Ainsi, pour montersystème de fichiers
/home
dans le système de fichiers, la commande estmount -o remount /home
.Pour connaître la version d'un paquet actuellement installé, utilisez la commanderpm -q
. Elle vous permettra de retourner le résultat suivant :paquet
.
version-de-paquet
Publican est un système de publication DocBook.
Romains à espacement fixe
et présentées ainsi :
books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs
romains à espacement fixe
mais sont présentés et surlignés comme suit :
package org.jboss.book.jca.ex1; import javax.naming.InitialContext; public class ExClient { public static void main(String args[]) throws Exception { InitialContext iniCtx = new InitialContext(); Object ref = iniCtx.lookup("EchoBean"); EchoHome home = (EchoHome) ref; Echo echo = home.create(); System.out.println("Created Echo"); System.out.println("Echo.echo('Hello') = " + echo.echo("Hello")); } }
5
.
NFS
, FTP
ou HTTP
.
/var/lib/libvirt/images/
directory by default. If you use a different directory you must label the new directory according to SELinux policy. Refer to Section 18.2, « SELinux et virtualisation » for details.
yum
for more information.
grub.conf
file.
virtio
sont des périphériques PCI. Actuellement, les invités sont limités à un maximum de 32 périphériques PCI. certains périphériques PCI sont critiques à l'exécution de l'invité et ne peuvent donc pas être supprimés. Les périphériques nécessaires par défaut sont :
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes the host system could be compromised.
/dev/sdb
). Virtualized guests with access to block devices may be able to access other block devices on the system or modify volume labels which can be used to compromise the host system. Use partitions (for example, /dev/sdb1
) or LVM volumes to prevent this issue.
phy
qu'il peut contenir s'il possède suffisamment de ressources.
/etc/modprobe.conf
, ajouter la ligne suivante :
options loop max_loop=64
# rmmod loop # modprobe loop
Table des matières
yum
et le Red Hat Network (RHN).
virt-manager
, libvirt
et virt-viewer
, ainsi que toutes les dépendances pour l'installation.
Personnaliser les paquetages (si nécessaire)
%packages
de votre fichier Kickstart, ajouter le groupe de paquetages suivant :
%packages @xen
xen-ia64-guest-firmware
rhn_register
et suivre les invites.
yum
xen
et kernel-xen
. Le paquetage xen
contient l'hyperviseur ainsi que des outils basiques de virtualisation. Le paquetage kernel-xen
comprend un noyau linux modifié qui opère comme un invité de machine virtuelle sur l'hyperviseur.
xen
et kernel-xen
, exécuter:
# yum install xen kernel-xen
xen-ia64-guest-firmware
) du DVD d'installation supplémentaire. Ce paquetage peut aussi être installé à partir de RHN à l'aide de la commande yum
:
# yum install xen-ia64-guest-firmware
python-virtinst
virt-install
pour créer des machines virtuelles.
libvirt
libvirt
est une bibliothèque API pour interagir avec les hyperviseurs. libvirt
utilise le framework de virtualisation xm
et l'outil de ligne de commande virsh
afin de gérer et de contrôler les machines virtuelles.
libvirt-python
libvirt
.
virt-manager
virt-manager
, aussi connu sous le nom de Gestionnaire de machines virtuelles(de l'anglais, Virtual Machine Manager), offre un outil graphique pour administrer les machines virtuelles. Il utilise la bibliothèque libvirt
pour la gestion d'API.
# yum install virt-manager libvirt libvirt-python python-virtinst
virt-manager
, libvirt
et virt-viewer
pour l'installation.
Personnaliser les paquetages (si nécessaire)
%packages
de votre fichier Kickstart, ajouter le groupe de paquetages suivant :
%packages @kvm
rhn_register
et suivre les invites.
yum
kvm
. Le paquetage kvm
contient le module du noyau KVM offrant l'hyperviseur KVM sur le noyau par défaut de Red Hat Enterprise Linux.
kvm
, exécuter :
# yum install kvm
python-virtinst
virt-install
pour créer des machines virtuelles.
libvirt
libvirt
est une bibliothèque API pour interagir avec les hyperviseurs. libvirt
utilise le framework de virtualisation xm
et l'outil de ligne de commande virsh
afin de gérer et de contrôler les machines virtuelles.
libvirt-python
libvirt
.
virt-manager
virt-manager
, aussi connu sous le nom de Gestionnaire de machines virtuelles(de l'anglais, Virtual Machine Manager), offre un outil graphique pour administrer les machines virtuelles. Il utilise la bibliothèque libvirt
pour la gestion d'API.
# yum install virt-manager libvirt libvirt-python python-virtinst
virt-install
. Ces deux méthodes sont couvertes dans ce chapitre.
virt-install
pour créer des invités virtualisés depuis la ligne de commande. virt-install
peut être utilisée de manière interactive, ou avec un script, pour automatiser la création des machines virtuelles. En utilisant virt-install
avec les fichiers Kickstart, on peut réaliser une installation de machines virtuelles automatisée.
virt-install
offre un certain nombre d'options que l'on peut passer sur la ligne de commande. Pour voir une liste complète des options, exécutez :
$ virt-install --help
virt-install
documente toutes les options de commande et les variables importantes.
qemu-img
est une commande apparentée qui peut être utilisée avant virt-install
afin de configurer les options de stockage.
--vnc
option which opens a graphical window for the guest's installation.
rhel3support
. L'exemple utilise l'hyperviseur KVM.
# virt-install --accelerate --hvm --connect qemu:///system \ --network network:default \ --name rhel3support --ram=756\ --file=/var/lib/libvirt/images/rhel3support.img \ --file-size=6 --vnc --cdrom=/dev/sr0
# virt-install --name fedora11 --ram 512 --file=/var/lib/libvirt/images/fedora11.img \ --file-size=3 --vnc --cdrom=/var/lib/libvirt/images/fedora11.iso
virt-manager
, aussi connu sous le nom de Virtual Machine Manager, est un outil graphique pour la création et la gestion d'invités virtualisés.
Open virt-manager
virt-manager
. Launch the application from the menu and submenu. Alternatively, run the virt-manager
command as root.
Optional: Open a remote hypervisor
Create a new guest
New guest wizard
Name the virtual machine
Choose virtualization method
kernel-xen
n'est pas le noyau en cours d'exécution.
Select the installation method
.iso
file).
HTTP
, FTP
or NFS
.
HTTP
, FTP
or NFS
. The installation media URL must contain a Red Hat Enterprise Linux installation tree. This tree is hosted using NFS
, FTP
or HTTP
.
Installation media selection
ISO image or physical media installation
Network install tree installation
NFS
, FTP
or HTTP
. Optionally, a kickstart file can be specified to automated the installation. Kernel parameters can also be specified if required.
Network boot (PXE)
Storage setup
/var/lib/libvirt/images/
directory by default. In the default configuration, other directory locations for file-based images are prohibited by SELinux. If you use a different directory you must label the new directory according to SELinux policy. Refer to Section 18.2, « SELinux et virtualisation » for details.
/var/lib/libvirt/images/
. If you are using a different location (such as /images/
in this example) make sure it is added to your SELinux policy and relabeled before you continue with the installation (later in the document you will find information on how to modify your SELinux policy).
Network setup
Memory and CPU allocation
Verify and start guest installation
virt-manager
. Chapitre 8, Procédure d'installation du système d'exploitation des invités contains step-by-step instructions to installing a variety of common operating systems.
Création d'un nouveau pont
/etc/sysconfig/network-scripts/
. Cet exemple crée un fichier nommé ifcfg-installation
qui fait un pont nommé installation
.
# cd /etc/sysconfig/network-scripts/ # vim ifcfg-installation DEVICE=installation TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes
TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
ifup installation
command can start the individual bridge but it is safer to test the entire network restarts properly.
# service network restart
brctl show
pour voir les détails sur les ponts réseau du système.
# brctl show bridge name bridge id STP enabled interfaces installation 8000.000000000000 no virbr0 8000.000000000000 yes
virbr0
est le pont par défaut utilisé par libvirt
pour le NAT (de l'anglais, Network Address Translation) sur le périphérique Ethernet par défaut.
Ajouter une interface au nouveau pont
BRIDGE
au fichier de configuration avec le nom du pont créé lors des étapes précédentes.
# Intel Corporation Gigabit Network Connection DEVICE=eth1 BRIDGE=installation BOOTPROTO=dhcp HWADDR=00:13:20:F7:6E:8E ONBOOT=yes
# service network restart
brctl show
:
# brctl show bridge name bridge id STP enabled interfaces installation 8000.001320f76e8e no eth1 virbr0 8000.000000000000 yes
Configuration de la sécurité
iptables
afin de permettre à tout le trafic d'être transféré à travers le pont.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
. Ajouter les lignes suivantes dans /etc/sysctl.conf
:
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
.
# sysctl -p /etc/sysctl.conf
Redémarrer libvirt avant l'installation
libvirt
.
# service libvirtd reload
virt-install
, ajouter le paramètre d'installation --network=bridge:installation
, où installation
est le nom de votre pont. Pour des installation PXE, utiliser le paramètre --pxe
.
# virt-install --accelerate --hvm --connect qemu:///system \ --network=bridge:installation --pxe\ --name EL10 --ram=756 \ --vcpus=4 --os-type=linux --os-variant=rhel5 --file=/var/lib/libvirt/images/EL10.img \
Sélectionner PXE
Sélectionner le pont
Démarrer l'installation
virsh update-device Guest1 ~/Guest1.xml
(substituting your guest's name and XML file), and select OK to continue past this step.
kernel-xen
.
virt-manager
, refer to the procedure in Section 7.2, « Création d'invités avec virt-manager ».
virt-install
. L'option --vnc
montre l'installation graphique. Le nom de l'invité dans l'exemple est rhel5PV
, le fichier de l'image de disque est rhel5PV.dsk
et le miroir local de l'arbre d'installation est ftp://10.1.1.1/trees/RHEL5-B2-Server-i386/
. Remplacer ces valeurs par des valeurs précises pour votre système et pour votre réseau.
# virt-install -nrhel5PV
-r 500 \ -f /var/lib/libvirt/images/rhel5PV.dsk
-s 3 --vnc -p \ -lftp://10.1.1.1/trees/RHEL5-B2-Server-i386/
DHCP
(as shown below) or a static IP address:
Installation Number
:
rhn_register
. La commande rhn_register
nécessite d'avoir un accès super-utilisateur.
virt-install
in Section 8.1, « Installer Red Hat Enterprise Linux 5 en tant qu'invité partiellement virtualisé. ». If you used the default example the name is rhel5PV
.
virsh
pour redémarrer l'invité :
# virsh reboot rhel5PV
virt-manager
, sélectionnez le nom de votre invité, cliquez sur , puis sur .
kdump
. The use of kdump
is unsupported on para-virtualized guests.
yum
command or RHN. Click .
Ouvrir virt-manager
virt-manager
. Lancer l'application à partir du menu et du sous-menu . Sinon, exécuter la commande virt-manager
en tant que super-utilisateur.
Sélectionner l'hyperviseur
qemu
.
Démarrer l'assistant de nouvelle machine virtuelle
Nommer la machine virtuelle
Choisir une méthode de virtualisation
Sélectionner la méthode d'installation
Trouver le média d'installation
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Section 18.2, « SELinux et virtualisation » for details.
Installation du stockage
/var/lib/libvirt/images/
directory. Assign sufficient space for your virtualized guest and any applications the guest requires.
Installation de réseau
Allocation de mémoire et CPU
Vérifier et démarrer l'installation de l'invité
Installation de Red Hat Enterprise Linux
Démarrage de virt-manager
Nommer votre système virtuel
Choisir une méthode de virtualisation
Choisir une méthode d'installation
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Section 18.2, « SELinux et virtualisation » for details.
Choose installation image
/var/lib/libvirt/images/
directory by default. In the default configuration, other directory locations for file-based images are prohibited by SELinux. If you use a different directory you must label the new directory according to SELinux policy. Refer to Section 18.2, « SELinux et virtualisation » for details.
/var/lib/libvirt/images/
. Si vous utilisez une location différente (comme /images/
dans cet exemple), veillez à ce qu'elle soit ajoutée à votre politique SELinux et qu'elle soit renommée avant de continuer l'installation (vous trouverez plus loin dans le document des informations sur la façon de modifier la politique SELinux)
Installation du réseau
HAL
, once you get the dialog box in the Windows install select the 'Generic i486 Platform
' tab. Scroll through selections with the Up and Down arrows.
# virsh start WindowsGuest
WindowsGuest
est le nom de votre machine virtuelle.
virsh reboot WindowsGuestName
. Quand vous redémarrerez la machine virtuelle, vous verrez le message Setup is being restarted
:
virt-install
command. virt-install
can be used instead of virt-manager
This process is similar to the Windows XP installation covered in Section 8.3, « Installer Windows XP en tant qu'invité totalement virtualisé ».
virt-install
for installing Windows Server 2003 as the console for the Windows guest opens the virt-viewer
window promptly. The examples below installs a Windows Server 2003 guest with the virt-install
command.
Xen virt-install
# virt-install --virt-type=xen -hvm \ --name windows2003sp1 --file=/var/lib/libvirt/images/windows2003sp2.img \ --file-size=6 \ --cdrom=/var/lib/libvirt/images/ISOs/WIN/en_windows_server_2003_sp1.iso \ --vnc --ram=1024
KVM virt-install
# virt-install --accelerate --hvm --connect qemu:///system \ --name rhel3support \ --network network:default \ --file=/var/lib/libvirt/images/windows2003sp2.img \ --file-size=6 \ --cdrom=/var/lib/libvirt/images/ISOs/WIN/en_windows_server_2003_sp1.iso \ --vnc --ram=1024
Standard PC
pour le Type d'ordinateur. Changer le Type d'ordinateur est nécessaire pour les invités virtualisés Windows Server 2003.
Ouvrir virt-manager
virt-manager
. Lancer l'application à partir du menu , et du sous-menu . Autrement, exécuter la commande virt-manager
en tant que super-utilisateur.
Sélectionner l'hyperviseur
qemu
.
Lancer l'assistant de nouvelle machine virtuelle
Nommer la machine virtuelle
Choisir une méthode de virtualisation
Sélectionner la méthode d'installation
Localiser le média d'installation
/var/lib/libvirt/images/
directory. Any other location may require additional configuration for SELinux, refer to Section 18.2, « SELinux et virtualisation » for details.
Installation du stockage
/var/lib/libvirt/images/
directory. Assign sufficient space for your virtualized guest and any applications the guest requires.
Installation du réseau
Allocation mémoire et CPU
Vérifier et démarrer l'installation de l'invitéXen
Installation de Windows
Table des matières
/dev/xvd[a to z][1 to 15]
/dev/xvdb13
/dev/xvd[a to i][a to z][1 to 15]
/dev/xvdbz13
/dev/sd[a to p][1 to 15]
/dev/sda1
/dev/hd[a to t][1 to 63]
/dev/hdd3
dd
command. Replace /dev/fd0
with the name of a floppy device and name the disk appropriately.
# dd if=/dev/fd0 of=~/legacydrivers.img
virt-manager
exécutant une installation Red Hat Enterprise Linux totalement virtualisée avec une image située dans /var/lib/libvirt/images/rhel5FV.img
. L'hyperviseur Xen est utilisé dans cet exemple.
virsh
sur un invité en cours d'exécution.
# virsh dumpxml rhel5FV > rhel5FV.xml
# dd if=/dev/zero of=/var/lib/libvirt/images/rhel5FV-floppy.img bs=512 count=2880
<disk type='file' device='floppy'> <source file='/var/lib/libvirt/images/rhel5FV-floppy.img'/> <target dev='fda'/> </disk>
virsh shutdown
command instead.
# virsh destroy rhel5FV
# virsh create rhel5FV.xml
dd
. Les fichiers dispersés ne sont pas recommandés suite à des problèmes liés à l'intégrité des données et à la performance. Les fichiers dispersés sont créés bien plus rapidement et peuvent être utilisés en tant que tests mais pas ne devraient pas être utilisés dans un environnement de production.
# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M seek=4096 count=0
# dd if=/dev/zero of=/var/lib/libvirt/images/FileName.img bs=1M count=4096
Guest1
et le fichier est sauvegardé dans le répertoire de base de l'utilisateur.
# virsh dumpxmlGuest1
> ~/Guest1
.xml
Guest1.xml
) dans un éditeur de texte. Puis trouvez les éléments <disk>
. Voici un exemple d'élément de disque :
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/Guest1.img'/> <target dev='xvda'/> </disk>
<disk>
. Veillez à bien spécifier un nom de périphérique pour les attributs du périphérique virtuel de traitement par blocs. Ces attributs doivent être uniques pour chaque fichier de configuration d'invité. L'exemple suivant est une section d'un fichier de configuration qui contient un conteneur de stockage basé sur fichiers supplémentaire nommé FileName.img
.
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/Guest1.img'/> <target dev='xvda'/> </disk> <disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/var/lib/libvirt/images/FileName.img'/> <target dev='hda'/> </disk>
# virsh create Guest1.xml
FileName.img
as the device called /dev/sdb
. This device requires formatting from the guest. On the guest, partition the device into one primary partition for the entire device then format the device.
n
pour une nouvelle partition.
# fdisk /dev/sdb Command (m for help):
p
pour une partition primaire.
Command action e extended p primary partition (1-4)
1
.
Partition number (1-4): 1
Enter
.
First cylinder (1-400, default 1):
Enter
.
Last cylinder or +size or +sizeM or +sizeK (2-400, default 400):
t
.
Command (m for help): t
1
.
Partition number (1-4): 1
83
pour une partition linux.
Hex code (type L to list codes): 83
Command (m for help):w
Command (m for help):q
ext3
.
# mke2fs -j /dev/sdb1
# mount /dev/sdb1 /myfiles
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes the host system could be compromised.
/dev/sdb
). Virtualized guests with access to block devices may be able to access other block devices on the system or modify volume labels which can be used to compromise the host system. Use partitions (for example, /dev/sdb1
) or LVM volumes to prevent this issue.
multipath
et persistance sur l'hôte si nécessaire.
virsh attach
command. Replace: myguest
with your guest's name, /dev/sdb1
with the device to add, and sdc
with the location for the device on the guest. The sdc
must be an unused device name. Use the sd*
notation for Windows guests as well, the guest will recognize the device correctly.
--type cdrom
parameter to the command for CD-ROM or DVD devices.
--type floppy
à la commande pour les lecteurs de disquettes.
# virsh attach-diskmyguest
/dev/sdb1
sdc
--driver tap --mode readonly
/dev/sdb
on Linux or D: drive
, or similar, on Windows. This device may require formatting.
multipath
must use Configuration de chemin d'accès unique. Systems running multipath
can use Configuration chemins d'accès-multiples.
udev
. Only use this procedure for hosts which are not using multipath
.
/etc/scsi_id.config
.
options=-b
est bien mise en commentaire.
# options=-b
options=-g
udev
pour assumer que tous les périphériques SCSI attachés retourneront un UUID (UID unique).
scsi_id -g -s /block/sd*
. Par exemple :
# scsi_id -g -s /block/sd* 3600a0b800013275100000015427b625e
/dev/sdc
.
scsi_id -g -s /block/sd*
est identique à celle de l'ordinateur qui accède au périphérique.
20-names.rules
dans le répertoire /etc/udev/rules.d
. Ajoutez de nouvelles règles à ce fichier. Toutes les règles sont ajoutées au même fichier en utilisant le même format. Les règles suivent ce format :
KERNEL=="sd[a-z]", BUS=="scsi", PROGRAM="/sbin/scsi_id -g -s /block/%k", RESULT="UUID
", NAME="devicename
"
UUID
et devicename
avec le UUID extrait ci-dessus, et le nom désiré pour le périphérique. Dans l'exemple ci-dessus, la règle ressemblerait à ce qui suit :
KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT="3600a0b800013275100000015427b625e", NAME="rack4row16"
udev
cherche maintenant tous les périphériques nommés /dev/sd*
pour l'UUID dans la règle. Une fois qu'un périphérique correspondant est connecté au système, le nom de la règle lui est assigné. Un périphérique avec un UUID de 3600a0b800013275100000015427b625e apparaîtrait comme /dev/rack4row16
.
/etc/rc.local
:
/sbin/start_udev
/etc/scsi_id.config
, /etc/udev/rules.d/20-names.rules
, et /etc/rc.local
sur tous les hôtes correspondants.
/sbin/start_udev
multipath
est utilisé pour les systèmes ayant plus d'un chemin d'accès physique depuis l'ordinateur vers les périphériques de stockage. multipath
offre un certaine tolérance aux défauts, des basculements ainsi qu'une performance améliorée pour les périphériques attachés aux systèmes Red Hat Enterprise Linux.
multipath
environment requires defined alias names for your multipath devices. Each storage device has a UUID which acts as a key for the aliased names. Identify a device's UUID using the scsi_id
command.
# scsi_id -g -s /block/sdc
/dev/mpath
. Dans l'exemple ci-dessous, 4 périphériques sont définis dans /etc/multipath.conf
:
multipaths { multipath { wwid 3600805f30015987000000000768a0019 alias oramp1 } multipath { wwid 3600805f30015987000000000d643001a alias oramp2 } mulitpath { wwid 3600805f3001598700000000086fc001b alias oramp3 } mulitpath { wwid 3600805f300159870000000000984001c alias oramp4 } }
/dev/mpath/oramp1
, /dev/mpath/oramp2
, /dev/mpath/oramp3
and /dev/mpath/oramp4
. Once entered, the mapping of the devices' WWID to their new names are now persistent after rebooting.
virsh
with the attach-disk
parameter.
# virsh attach-disk [domain-id] [source] [target] --driver file --type cdrom --mode readonly
The source
and target
parameters are paths for the files and devices, on the host and guest respectively. The source
parameter can be a path to an ISO file or the device from the /dev
directory.
libvirt
installation provides NAT based connectivity to virtual machines out of the box. This is the so called 'default virtual network'. Verify that it is available with the virsh net-list --all
command.
# virsh net-list --all Name State Autostart ----------------------------------------- default active yes
# virsh net-define /usr/share/libvirt/networks/default.xml
/usr/share/libvirt/networks/default.xml
# virsh net-autostart default Network default marked as autostarted
# virsh net-start default Network default started
libvirt
est en cours d'exécution, vous remarquerez un périphérique de pont isolé. Il n'y a aucune interface ajoutée à ce périphérique, car celui-ci utilise les transferts NAT et IP pour se connecter au monde extérieur. N'ajoutez pas de nouvelles interfaces.
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes
libvirt
ajoute des règles iptables
qui permettent le mouvement en provenance et en direction des invités attachés au périphérique virbr0
dans les chaînes INPUT
, FORWARD
, OUTPUT
et POSTROUTING
. libvirt
tente ensuite d'activer le paramètre ip_forward
. Certaines autres applications peuvent désactiver ip_forward
, ainsi la meilleure solution est d'ajotuer la ligne suivante à /etc/sysctl.conf
.
net.ipv4.ip_forward = 1
<interface type='network'> <source network='default'/> </interface>
<interface type='network'> <source network='default'/> <mac address='00:16:3e:1a:b3:4a'/> </interface>
/etc/xen/xend-config.sxp
et en changeant la ligne :
(network-script network-bridge)
(network-script /bin/true)
/etc/sysconfig/network-scripts/
directory):
# chkconfig NetworkManager off # chkconfig network on # service NetworkManager stop # service network start
NM_CONTROLLED=no
" to the ifcfg-*
scripts used in the examples. If you do not either set this parameter or disable NetworkManager entirely, any bridge configuration will be overwritten and lost when NetworkManager next starts.
/etc/sysconfig/network-scripts
:
# cd /etc/sysconfig/network-scripts
ifcfg-eth0
définit l'interface réseau physique qui est paramétrée comme faisant partie d'un pont :
DEVICE=eth0 # change the hardware address to match the hardware address your NIC uses HWADDR=00:16:76:D6:C9:45 ONBOOT=yes BRIDGE=br0
MTU
variable to the end of the configuration file.
MTU=9000
/etc/sysconfig/network-scripts
appelé ifcfg-br0
ou autre nom similaire. Le br0
est le nom du pont, ceci peut être ce que l'on veut, tant que le nom du fichier est le même que celui du paramètre DEVICE.
DEVICE=br0 TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes DELAY=0
ifcfg-br0
file). Network access will not function as expected if IP address details are configured on the physical interface that the bridge is connected to.
TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
# service network restart
iptables
afin de permettre à la totalité du trafic d'être transféré à travers le pont.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
, ajoutez les lignes suivantes dans /etc/sysctl.conf
:
net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
sysctl
.
# sysctl -p /etc/sysctl.conf
libvirt
.
# service libvirtd reload
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes br0 8000.000e0cb30550 no eth0
virbr0
. Ne tentez pas d'attacher un périphérique physique à virbr0
. Le pont virbr0
ne sert que pour la connectivité NAT (de l'anglais, Network Address Translation).
virsh
(Chapitre 25, Gestion d'invités au moyen de virsh) and virt-manager
(Chapitre 26, Gestion des invités avec le gestionnaire de machines virtuelles (virt-manager)). Those chapters provide a detailed description of the networking configuration tasks using both tools.
system-config-network
. Sinon, vous pouvez aussi créer un nouveau fichier de configuration nommé ifcfg-ethX
dans le répertoire /etc/sysconfig/network-scripts/
, dans lequel X
sera n'importe quel chiffre qui n'est pas déjà en cours d'utilisation. Vous trouverez ci-dessous un exemple de fichier de configuration pour la seconde interface de réseau intitulée eth1
$ cat /etc/sysconfig/network-scripts/ifcfg-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
vers /etc/xen/scripts/network-bridge.xen
.
/etc/xen/xend-config.sxp
and add the line (network-xen-multi-bridge)
. A typical xend-config.sxp
file should have the following line. Comment this line out. Use the # symbol to comment out lines.
network-script network-bridge
network-xen-multi-bridge
parameter to enable multiple network bridges.
#network-script network-bridge network-script network-xen-multi-bridge
network-xen-multi-bridge.sh
in the /etc/xen/scripts/
directory. A sample scripts is below, this example script will create two Xen network bridges (xenbr0 and xenbr1) one will be attached to eth1 and the other one to eth0. If you want to create additional bridges just follow the example in the script and copy nad paste the lines as required:
#!/bin/sh # network-xen-multi-bridge # Exit if anything goes wrong. set -e # First arg is the 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
# chmod +x /etc/xen/scripts/network-xen-multi-bridge.sh
# service network restart
virt-manager
. NetworkManager fonctionne avec des périphériques de réseaux virtuels par défaut sur Red Hat Enterprise Linux 5.1 et autres versions plus récentes.
<interface type='network'> <mac address='AA:AA:AA:AA:AA:AA'/> <source network='default'/> <target dev='vnet0'/> <model type='virtio'/> </interface>
xm
, les périphériques de réseau virtuels sont étiquettés "vif
".
ifup
or ifdown
calls to the network interface it is using. In addition wireless network cards do not work well in a virtualization environment due to Xen's (default) bridged network usage.
dummy0
. This will also allow you to use a hidden IP address space for your guests.
/etc/modprobe.conf
alias dummy0 dummy options dummy numdummies=1
/etc/sysconfig/network-scripts/ifcfg-dummy0
:
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
, de façon à pouvoir utiliser le réseau même lorsque vous n'êtes pas connecté à un réseau physique. Modifiez /etc/xen/xend-config.sxp
pour inclure la saisie /etc/xen/xend-config.sxp
:
(network-script 'network-bridge bridge=xenbr0 netdev=dummy0')
/etc/sysconfig/network
in the guest and modify the default gateway to point to dummy0
. If you are using a static IP, set the guest's IP address to exist on the same subnet as dummy0
.
NETWORKING=yes HOSTNAME=localhost.localdomain GATEWAY=10.1.1.1 IPADDR=10.1.1.10 NETMASK=255.255.255.0
/etc/init.d/xenLaptopNAT
et créer un lien symbolique dans /etc/rc3.d/S99xenLaptopNAT
. Cela a pour effet de démarrer NAT automatiquement pendant la phase de lancement.
#!/bin/bash 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
dnsmasq
sur un ordinateur portable exécutant une virtualisation :
dnsmasq.tgz
. The tar archive includes the following files:
nm-dnsmasq
peut être utilisé comme script de répartition pour le NetworkManager (gestionnaire de réseau). Il sera exécuté à chaque fois que le NetworkManager détecte un changement de connexité et force un redémarrage/rechargement de dnsmasq. Il peut être copié dans /etc/NetworkManager/dispatcher.d/nm-dnsmasq
xenDNSmasq
peut être utilisé comme script principal de démarrage ou de fermeture de /etc/init.d/xenDNSmasq
dnsmasq.conf
est un exemple de fichier de configuration pour/etc/dnsmasq.conf
dnsmasq
est une image binaire de /usr/local/sbin/dnsmasq
/usr/local/sbin/dnsmasq
), vous devrez modifier votre fichier de configuration dnsmasq. Le fichier est situé dans /etc/dnsmaqs.conf
interface
permet à dnsmasq
d'écouter les demandes DHCP
et DNS
sur des interfaces spécifiques uniquement. Il peut s'agir d'interfaces fictives mais pas de vos interfaces publiques en plus de votre interface locale de bouclage. Répétez la ligne interface
pour plus d'une interface. interface=dummy0
est une exemple qui écoute l'interface dummy0
.
dhcp-range
pour activer le serveur intégré DHCP
, vous devez fournir le groupe d'adresses disponibles à louer et éventuellement la durée de location. Si vous avez plus d'un réseau, vous devrez répéter l'opération pour chaque réseau pour lequel vous souhaitez offrir le service DHCP
. Par exemple (pour le réseau 10.1.1.* et une durée de 12h): dhcp-range=10.1.1.10,10.1.1.50,255.255.255.0,12h
dhcp-option
pour remplacer la route par défaut fournie par dnsmasq, qui assume que le router est la même machine que celle qui exécute dnsmasq. Un exemple serait dhcp-option=3,10.1.1.1
xenDNSmasq
vers /etc/init.d
chkconfig --add xenDNSmasq
chkconfig --levels 345 xenDNSmasq on
dnsmasq
de façon à ce qu'il redémarre à chaque fois que NetworkManager détecte un changement de connexité, vous pouvez utiliser le script nm-dnsmasq
.
nm-dnsmasq
dans /etc/NetworkManager/dispatcher.d/
dnsmasq
détectera aussi les changements dans votre fichier /etc/resolv.conf
et les rechargera automatiquement (par exemple, lorsque vous démarrez une session VNP).
nm-dnsmasq
et xenDNSmasq
installeront également NAT si vos invités virtuels sont placés dans un réseau caché afin de leur permettre d'accéder au réseau public.
pv-on-hvm
, dans le paquetage du noyau par défaut. Cela signifie que les pilotes paravirtualisés sont disponibles pour Red Hat Enterprise Linux 4.7 et versions plus récentes ou pour Red Hat Enterprise Linux5.3 et versions plus récentes.
kmod-xenpv
.
kmod-xenpv
,
modules-init-tools
(for versions prior to Red Hat Enterprise Linux 4.6z you require modules-init-tools-3.1-0.pre5.3.4.el4_6.1
or greater), and
modversions
.
kmod-xenpv
.
/lib
file system.
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' kernel
Architecture de noyau | Red Hat Enterprise Linux 3 | Red Hat Enterprise Linux 4 | Red Hat Enterprise Linux 5 |
---|---|---|---|
athlon | Supporté (AMD) | ||
athlon-SMP | Supporté (AMD) | ||
i32e | Supporté (Intel) | ||
i686 | Supporté (Intel) | Supporté | Supporté |
i686-PAE | Supporté | ||
i686-SMP | Supporté (Intel) | Supporté | |
i686-HUGEMEM | Supporté (Intel) | Supporté | |
x86_64 | Supporté (AMD) | Supporté | Supporté |
x86_64-SMP | Supporté (AMD) | Supporté | |
x86_64-LARGESMP | Supporté | ||
Itanium (IA64) | Supporté |
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' kernel
kernel-PAE-2.6.18-53.1.4.el5.i686
GRUB
.GRUB
), ou un disque qui contient les images du noyau initrd
. Donc, tout disque qui contient un répertoire ou une partition /boot
ne peut pas utiliser les pilotes de périphériques en bloc paravirtualisés.
xen-pci-platform
échouera.
Type de noyau d'hôte | Type de noyau d'hôte requis |
---|---|
ia32e (UP et SMP) | x86_64 |
i686 | i686 |
i686-SMP | i686 |
i686-HUGEMEM | i686 |
Type de noyau d'hôte | Type de noyau d'hôte requis |
---|---|
athlon | i686 |
athlon-SMP | i686 |
x86_64 | x86_64 |
x86_64-SMP | x86_64 |
MBR
, le chargeur d'amorçage (GRUB
), et pour la partition /boot
. Cette partition peut être très petite, car elle ne nécessite seulement d'avoir la capacité de contenir la partition /boot
.
/
, /usr
) ou bien pour les volumes logiques.
/boot
.
rpm
ou yum
pour installer les paquetages. L'utilitaire rpm
installera les quatre nouveaux modules de noyaux suivants dans /lib/modules/[%kversion][%kvariant]/extra/xenpv/%release
:
xen_platform_pci.ko
,
xen_balloon.ko
,
xen_vbd.ko
,
xen_vnif.ko
.
xen-vbd
) disk driver.
<disk type='file' device='disk'> <driver name='file'/> <source file='/dev/hda6'/> <target dev='hda'/> </disk>
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/dev/hda6'/> <target dev='xvda'/> </disk>
# xm start YourGuestName
YourGuestName
is the name of the configuration file or the guest operating system's name as defined in its configuration file in the name = "os_name" parameter.
kernel-2.4.21-60.EL
for all the required headers.
kmod-xenpv
correspondant à l'architecture de votre matériel et à la variante de noyau du système d'exploitation de votre invité.
rpm
pour installer les paquetages RPM. Veillez d'avoir bien identifié le paquetage dont vous avez besoin pour la variante et l'architecture du système d'exploitation de votre invité.
[root@rhel3]# rpm -ivh kmod-xenpv*
[root@rhel3]# mkdir -p /lib/modules/'uname -r'/extra/xenpv [root@rhel3]# cp -R /lib/modules/2.4.21-52.EL[%kvariant]/extra/xenpv/%release \ /lib/modules/'uname -r'/extra/xenpv [root@rhel3]# depmod -ae [root@rhel3]# modprobe xen-vbd [root@rhel3]# modprobe xen-vnif
insmod
au moment de l'installation des modules binaires du pilote, dû au fait que l'application MODVERSIONS de Red Hat Enterprise Linux 3 est activée. Ces avertissements peuvent être ignorés.
/etc/modules.conf
et assurez-vous que vous avez un alias pour eth0
comme celui qui figure ci-dessous. Si vous envisagez de configurer plusieurs interfaces, ajouter une ligne supplémentaire pour chaque interface.
alias eth0 xen-vnif
/etc/rc.local
et ajouter la ligne de commande:
insmod /lib/modules/'uname -r'/extra/xenpv/%release/xen-vbd.o
#shutdown -h now
” dans l'invité).
/etc/xen/YourGuestName
with a text editor, performing the following changes:
type=ioemu
” de “vif=
”.
xen-vbd
) .
<disk type='file' device='disk'> <driver name='file'/> <source file='/dev/hda6'/> <target dev='hda'/> </disk>
<disk type='file' device='disk'> <driver name='tap' type='aio'/> <source file='/dev/hda6'/> <target dev='xvda'/> </disk>
# xm start YourGuestName
YourGuestName
is the name of the configuration file or the guest operating system's name as defined in its configuration file in the name = "os_name" parameter.
weak-modules
et modversions
n'est pas offert pour Red Hat Enterprise Linux 3. Pour insérrer le module, exécuter la commande ci-dessous.
insmod xen_vbd.ko
xen-vbd
. Les étapes suivantes expliquent comment créer et enregistrer les périphériques en bloc virtualisés.
#!/bin/sh module="xvd" mode="664" major=`awk "\\$2==\"$module\" {print \\$1}" /proc/devices` # < mknod for as many or few partitions on xvd disk attached to FV guest > # change/add xvda to xvdb, xvbd, etc. for 2nd, 3rd, etc., disk added in # in xen config file, respectively. mknod /dev/xvdb b $major 16 mknod /dev/xvdb1 b $major 17 mknod /dev/xvdb2 b $major 18 chgrp disk /dev/xvd* chmod 0660 /dev/xvd*
# mknod /dev/xvdc b $major 16 # mknod /dev/xvdc1 b $major 17
# mknod /dev/xvdd b $major 32 # mknod /dev/xvdd1 b $major 33
[root@rhel3]# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 16 64000 xvdb 202 17 32000 xvdb1 202 18 32000 xvdb2 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
” est disponible pour le système.
[root@rhel3]# mkdir /mnt/pvdisk_p1 [root@rhel3]# mkdir /mnt/pvdisk_p2
[root@rhel3]# mount /dev/xvdb1 /mnt/pvdisk_p1 [root@rhel3]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel3]# df /mnt/pvdisk_p1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvdb1 32000 15 31985 1% /mnt/pvdisk_p1
/etc/fstab
dans l'invité pour monter les périphériques lors de la séquence de démarrage. Ajouter les lignes suivantes :
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
dom0
), the "noapic
" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf
entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
kmod-xenpv
, modules-init-tools
et modversions
correspondants à l'architecture de votre matériel et à la variante de noyau du système d'exploitation de votre invité.
rpm
pour installer les paquetages RPM. Veillez d'avoir bien identifié les paquetages dont vous avez besoin pour la variante et l'architecture de votre système d'exploitation invité. Il est nécessaire de faire une mise à jour du module-init-tools, disponible dans le noyau Red Hat Enterprise Linux 4-6-z et au delà.
[root@rhel4]# rpm -ivh modversions [root@rhel4]# rpm -Uvh module-init-tools [root@rhel4]# rpm -ivh kmod-xenpv*
cat /etc/modprobe.conf
to verify you have an alias for eth0
like the one below. If you are planning to configure multiple interfaces add an additional line for each interface. If it does not look like the entry below change it.
alias eth0 xen-vnif
#shutdown -h now
” dans l'invité).
/etc/xen/YourGuestsName
des manières suivantes:
type=ioemu
” de “vif=
”.
xen-vbd
) .
disk=
” du fichier de configuration de l'invité. L'entrée de départ “disk=
” pourrait également ressembler à l'entrée suivante.
disk = [ "file:/var/lib/libvirt/images/rhel4_64_fv.dsk,hda,w"]
disk = [ "file:/var/lib/libvirt/images/rhel3_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage.dsk,xvda,w" ]
tap:aio
” pour le périphérique paravirtualisé si une image basée-fichier est utilisée.
virsh
:
# virsh start YourGuestName
kudzu
vous demandera "Conserver ou supprimer le périphérique Realtek Network " et "Configure le xen-bridge ". Vous devez configurer xen-bridge
et effacer le périphérique de réseau Realtek.
dom0
), the "noapic
" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf
entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
[root@rhel4]# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 0 64000 xvdb 202 1 32000 xvdb1 202 2 32000 xvdb2 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
” est disponible pour le système.
[root@rhel4]# mkdir /mnt/pvdisk_p1 [root@rhel4]# mkdir /mnt/pvdisk_p2
[root@rhel4]# mount /dev/xvdb1 /mnt/pvdisk_p1 [root@rhel4]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel4]# df /mnt/pvdisk_p1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvdb1 32000 15 31985 1% /mnt/pvdisk_p1
/etc/fstab
dans l'invité pour monter les périphériques lors de la séquence de démarrage. Ajouter les lignes suivantes :
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
xen-vbd
n'est pas chargé automatiquement, lancer la commande suivante dans l'invité. Substituer %version par la version qui convient pour les pilotes paravirtualisés.
# insmod /lib/modules/'uname -r'/weak-updates/xenpv/%release/xen_vbd.ko
#shutdown -h now
” dans l'invité).
/etc/xen/YourGuestsName
des manières suivantes:
type=ioemu
” de “vif=
”.
xen-vbd
) .
disk=
” du fichier de configuration de l'invité. L'entrée de départ “disk=
” pourrait également ressembler à l'entrée suivante.
disk = [ "file:/var/lib/libvirt/images/rhel4_64_fv.dsk,hda,w"]
disk = [ "file:/var/lib/libvirt/images/rhel3_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage.dsk,xvda,w" ]
tap:aio
” pour le périphérique paravirtualisé si une image basée-fichier est utilisée.
virsh
:
# virsh start YourGuestName
[root@rhel5]# ifconfig eth0
[root@rhel5]# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 0 64000 xvdb 202 1 32000 xvdb1 202 2 32000 xvdb2 253 0 8257536 dm-0 253 1 2031616 dm-1
xvdb
” est disponible pour le système.
[root@rhel5]# mkdir /mnt/pvdisk_p1 [root@rhel5]# mkdir /mnt/pvdisk_p2
[root@rhel5]# mount /dev/xvdb1 /mnt/pvdisk_p1 [root@rhel5]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel5]# df /mnt/pvdisk_p1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvdb1 32000 15 31985 1% /mnt/pvdisk_p1
/etc/fstab
dans l'invité pour monter les périphériques lors de la séquence démarrage. Ajouter les lignes suivantes :
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
dom0
), the "noapic
" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf
entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
/etc/modprobe.d/blacklist
file. Blacklist 8139cp
and 8139too
for the RealTek 8139 and e1000
for the virtualized Intel e1000 NIC.
8139cp
8139too
e1000
/etc/sysconfig/network-scripts
directory.
xen_emul_unplug=never
virt-manager
, ouvrir la fenêtre de la console pour l'invité et connectez en tant que root
.
/etc/modprobe.conf
contienne la ligne de commande “alias eth0 xen-vnif
”.
# cat /etc/modprobe.conf alias eth0 xen-vnif
eth0
execute “# ifconfig eth0
”. If you receive an error about the device not existing you should load the modules manually as outlined in Section 36.4, « Charger manuellement les pilotes paravirtualisés ».
ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:00:00:6A:27:3A BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:630150 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:109336431 (104.2 MiB) TX bytes:846 (846.0 b)
# system-config-network
”. Click on the “ ” button to start the network card configuration.
ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:16:3E:49:E4:E0 inet addr:192.168.78.180 Bcast:192.168.79.255 Mask:255.255.252.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:630150 errors:0 dropped:0 overruns:0 frame:0 TX packets:501209 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:109336431 (104.2 MiB) TX bytes:46265452 (44.1 MiB)
/etc/xen/YourGuestName
en remplaçant YourGuestName
par le nom de votre invité.
vif = [ "mac=00:16:3e:2e:c5:a9,bridge=xenbr0" ]
vif=
” dans la section du fichier de configuration.
vif = [ "mac=00:16:3e:2e:c5:a9,bridge=xenbr0", "mac=00:16:3e:2f:d5:a9,bridge=xenbr0" ]
# echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python
/etc/modules.conf
dans Red Hat Enterprise Linux 3 ou /etc/modprobe.conf
dans Red Hat Enterprise Linux 4 et Red Hat Enterprise Linux 5. Ajouter un nouvel alias pour chaque interface que vous avez ajoutée.
alias eth1 xen-vnif
# ifconfig eth1
redhat-config-network
sur Red Hat Enterprise Linux 3 ou system-config-network
sur Red Hat Enterprise Linux 4 et Red Hat Enterprise Linux 5.
/etc/xen/YourGuestName
en remplaçant YourGuestName
par le nom de votre invité. La saisie d'origine ressemble certainement à celle qui suit.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w"]
disk=
” du fichier de configuration. La saisie de mise à jour de l'entité de stockage du pilote paravirtualisé ressemblerait à ce qui suit. Noter l'utilisation de “tap:aio
”.pour le périphérique paravirtualisé si une image basée fichier est utilisée.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage1.dsk,xvda,w" ]
disk=
” dans une liste avec une virgule de séparation.
xvd
' device, that is for your second storage entity it would be 'xvdb
' instead of 'xvda
'.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w", "tap:aio:/var/lib/libvirt/images/UserStorage1.dsk,xvda,w", "tap:aio:/var/lib/libvirt/images/UserStorage2.dsk,xvdb,w" ]
# cat /proc/partitions major minor #blocks name 3 0 10485760 hda 3 1 104391 hda1 3 2 10377990 hda2 202 0 64000 xvda 202 1 64000 xvdb 253 0 8257536 dm-0 253 1 2031616 dm-1
/etc/fstab
dans les invités pour monter les périphériques et les partitions en cours d'initialisation.
# mkdir /mnt/pvdisk_xvda # mkdir /mnt/pvdisk_xvdb # mount /dev/xvda /mnt/pvdisk_xvda # mount /dev/xvdb /mnt/pvdisk_xvdb # df /mnt Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda 64000 15 63985 1% /mnt/pvdisk_xvda /dev/xvdb 64000 15 63985 1% /mnt/pvdisk_xvdb
Téléchargez les pilotes
yum
command.
# yum install virtio-win
virtio-win.iso
, dans le répertoire /usr/share/virtio-win/
.
Installez les pilotes paravirtualisés
virt-manager
pour monter une image CD-ROM pour un invité Windows » to add a CD-ROM image with virt-manager
and then install the drivers.
virt-manager
pour monter une image CD-ROM pour un invité WindowsOpen virt-manager and the virtualized guest
virt-manager
, select your virtualized guest from the list by double clicking the guest name.
Open the hardware tab
Select the device type
Select the ISO file
/usr/share/virtio-win/virtio-win.iso
.
Disc assigned
Reboot
Open My Computer
Select the correct installation files
RHEV-Block.msi
for 32-bit guests or RHEV-Block64.msi
for 64-bit guests),
RHEV-Network.msi
for 32-bit guests or RHEV-Block64.msi
for 64-bit guests),
Install the block device driver
Start the block device driver installation
RHEV-Block.msi
or RHEV-Block64.msi
.
Confirm the exception
Finish
Install the network device driver
Start the network device driver installation
RHEV-Network.msi
or RHEV-Network64.msi
.
Performance setting
Value | Action |
---|---|
0 | Disable TCP timestamps and window scaling. |
1 | Enable TCP window scaling. |
2 | Enable TCP timestamps. |
3 | Enable TCP timestamps and window scaling. |
Confirm the exception
Finish
Reboot
viostor.vfd
en tant que disquette.
Windows Server 2003
Windows Server 2008
virtio
driver instead of virtualized IDE driver. This example edits libvirt configuration files. Alternatively, virt-manager
, virsh attach-disk
or virsh attach-interface
can add a new device using the para-virtualized drivers Section 13.4, « Utilisation de pilotes paravirtualisés KVM pour de nouveaux périphériques. ».
<disk type='file' device='disk'> <source file='/var/lib/libvirt/images/disk1.img'/> <target dev='vda' bus='ide'/> </disk>
virtio
.
<disk type='file' device='disk'>
<source file='/var/lib/libvirt/images/disk1.img'/>
<target dev='vda' bus='virtio'/>
</disk>
virt-manager
.
virsh attach-disk
ou virsh attach-interface
peuvent être utilisées pour attacher des périphériques en utilisant les pilotes paravirtualisés.
virt-manager
.
Enable the Intel VT-d extensions
Activate Intel VT-d in the kernel
intel_iommu=on
parameter to the kernel line of the kernel line in the /boot/grub/grub.conf
file.
grub.conf
file with Intel VT-d activated.
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-190.el5) root (hd0,0) kernel /vmlinuz-2.6.18-190.el5 ro root=/dev/VolGroup00/LogVol00 intel_iommu=on initrd /initrd-2.6.18-190.el5.img
Ready to use
Enable AMD IOMMU extensions
iommu=on
parameter to the hypervisor command line. Modify the /boot/grub/grub.conf
file as follows to enable PCI passthrough:
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-192.el5) root (hd0,0) kernel /xen.gz-2.6.18-192.el5 iommu=on module /vmlinuz-2.6.18-192.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.18-190.el5xen.img
pci_8086_3a6c
, and a fully virtualized guest named win2k3
.
Identify the device
virsh nodedev-list
command lists all devices attached to the system. The --tree
option is useful for identifying devices attached to the PCI device (for example, disk controllers and USB controllers).
# virsh nodedev-list --tree
# virsh nodedev-list | grep pci
****
is a four digit hexadecimal code):
pci_8086_****
lspci
output to lspci -n
(which turns off name resolution) output can assist in deriving which device has which device identifier code.
virsh nodedev-dumpxml
command:
# virsh nodedev-dumpxml pci_8086_3a6c <device> <name>pci_8086_3a6c</name> <parent>computer</parent> <capability type='pci'> <domain>0</domain> <bus>0</bus> <slot>26</slot> <function>7</function> <id='0x3a6c'>82801JD/DO (ICH10 Family) USB2 EHCI Controller #2</product> <vendor id='0x8086'>Intel Corporation</vendor> </capability> </device>
# virsh nodedev-dettach pci_8086_3a6c Device pci_8086_3a6c dettached
$ printf %x 0 0 $ printf %x 26 1a $ printf %x 7 7
bus='0x00' slot='0x1a' function='0x7'
virsh edit
(or virsh attach device) and add a device entry in the <devices>
section to attach the PCI device to the guest. Only run this command on offline guests. Red Hat Enterprise Linux does not support hotplugging PCI devices at this time.
# virsh edit win2k3
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x00' slot='0x1a' function='0x7'/>
</source>
</hostdev>
ehci
driver is loaded by default for the USB PCI controller.
$ readlink /sys/bus/pci/devices/0000\:00\:1d.7/driver ../../../bus/pci/drivers/ehci_hcd
$ virsh nodedev-dettach pci_8086_3a6c
$ readlink /sys/bus/pci/devices/0000\:00\:1d.7/driver ../../../bus/pci/drivers/pci-stub
# setsebool -P virt_use_sysfs 1
# virsh start win2k3
virt-manager
tool. The following procedure adds a 2 port USB controller to a virtualized guest.
Identify the device
virsh nodedev-list
command lists all devices attached to the system. The --tree
option is useful for identifying devices attached to the PCI device (for example, disk controllers and USB controllers).
# virsh nodedev-list --tree
# virsh nodedev-list | grep pci
****
is a four digit hexadecimal code):
pci_8086_****
lspci
output to lspci -n
(which turns off name resolution) output can assist in deriving which device has which device identifier code.
Detach the PCI device
# virsh nodedev-dettach pci_8086_3a6c Device pci_8086_3a6c dettached
Power off the guest
Open the hardware settings
Add the new device
Select a PCI device
Confirm the new device
--host-device
parameter.
Identify the PCI device
virsh nodedev-list
command lists all devices attached to the system. The --tree
option is useful for identifying devices attached to the PCI device (for example, disk controllers and USB controllers).
# virsh nodedev-list --tree
# virsh nodedev-list | grep pci
****
is a four digit hexadecimal code):
pci_8086_****
lspci
output to lspci -n
(which turns off name resolution) output can assist in deriving which device has which device identifier code.
Add the device
virsh nodedev
command as the value for the --host-device
parameter.
# virt-install \
-n hostdev-test -r 1024 --vcpus 2 \
--os-variant fedora11 -v --accelerate \
-l http://download.fedoraproject.org/pub/fedora/linux/development/x86_64/os \
-x 'console=ttyS0 vnc' --nonetworks --nographics \
--disk pool=default,size=8 \
--debug --host-device=pci_8086_10bd
Complete the installation
/etc/modprobe.conf
hides the device from dom0. Either the bnx2
module must be reloaded or the host must be restarted.
install bnx2 /sbin/modprobe pciback; /sbin/modprobe --first-time --ignore-install bnx2 options pciback hide=(0000:09:00.0)
/etc/modprobe.conf
to hide multiple devices.
options pciback hide=(0000:09:00.0)(0000:0a:04.1)
virsh
(Section 14.1, « Adding a PCI device with virsh » - Step 5);
virt-manager
(Section 14.2, « Adding a PCI device with virt-manager »); or
virt-install
(Section 14.3, « PCI passthrough with virt-install »)
/boot/grub/grub.conf
file to enable SR-IOV. To enable SR-IOV with Xen for Intel systems append the pci_pt_e820_access=on
parameter to the kernel.
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-192.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-192.el5 iommu=1 module /vmlinuz-2.6.18-192.el5xen ro root=/dev/VolGroup00/LogVol00 pci_pt_e820_access=on module /initrd-2.6.18-192.el5xen.img
Enable Intel VT-d in BIOS and in the kernel
Verify support
lspci
command to verify if the device was detected.
# lspci 03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
Start the SR-IOV kernel modules
modprobe
command. The Intel 82576 network interface card uses the igb
driver kernel module.
# modprobe igb [<option>=<VAL1>,<VAL2>,] # lsmod |grep igb igb 87592 0 dca 6708 1 igb
Activate Virtual Functions
max_vfs
parameter of the igb
module allocates the maximum number of Virtual Functions. The max_vfs
parameter causes the driver to spawn, up to the value of the parameter in, Virtual Functions. For this particular card the valid range is 0
to 7
.
# modprobe -r igb
max_vfs
set to 1
or any number of Virtual Functions up to the maximum supported by your device.
# modprobe igb max_vfs=1
Inspect the new Virtual Functions
lspci
command, list the newly added Virtual Functions attached to the Intel 82576 network device.
# lspci | grep 82576 03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01) 03:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
-n
parameter of the lspci
command.
# lspci -n | grep 03:00.0 03:00.0 0200: 8086:10c9 (rev 01) # lspci -n | grep 03:10.0 03:10.0 0200: 8086:10ca (rev 01)The Physical Function corresponds to
8086:10c9
and the Virtual Function to 8086:10ca
.
Find the devices with virsh
virsh nodedev-list
command to list available host devices.
# virsh nodedev-list | grep 8086
pci_8086_10c9
pci_8086_10c9_0
pci_8086_10ca
pci_8086_10ca_0
[output truncated]
Get advanced details
pci_8086_10c9
is one of the Physical Functions and pci_8086_10ca_0
is the first corresponding Virtual Function for that Physical Function. Use the virsh nodedev-dumpxml
command to get advanced output for both devices.
# virsh nodedev-dumpxml pci_8086_10ca # virsh nodedev-dumpxml pci_8086_10ca_0 <device> <name>pci_8086_10ca_0</name> <parent>pci_8086_3408</parent> <driver> <name>igbvf</name> </driver> <capability type='pci'> <domain>0</domain> <bus>3</bus> <slot>16</slot> <function>1</function> <product id='0x10ca'>82576 Virtual Function</product> <vendor id='0x8086'>Intel Corporation</vendor> </capability> </device>
pci_8086_10ca_0
to the guest in Étape 8. Note the bus
, slot
and function
parameters of the Virtual Function, these are required for adding the device.
Add the Virtual Function to the guest
virsh nodedev-dumpxml pci_8086_10ca_0
command to calculate the values for the configuration file. Convert slot and function values to hexadecimal values (from decimal) to get the PCI bus addresses. Append "0x" to the beginning of the output to tell the computer that the value is a hexadecimal number.
printf
utility to convert decimal values to hexadecimal values.
$ printf %x 3 3 $ printf %x 16 10 $ printf %x 1 1
bus='0x03' slot='0x10' function='0x01'
virsh edit
command. This example edits a guest named MyGuest
.
# virsh edit MyGuest
devices
section of the XML configuration file.
<hostdev mode='subsystem' type='pci' managed='yes'> <source> <address bus='0x03' slot='0x10' function='0x01'/> </source> </hostdev>
Restart
# virsh start MyGuest
# virsh start test error: Failed to start domain test error: internal error unable to start guest: char device redirected to /dev/pts/2 get_real_device: /sys/bus/pci/devices/0000:03:10.0/config: Permission denied init_assigned_device: Error: Couldn't get real device (03:10.0)! Failed to initialize assigned device host=03:10.0
ntpd
:
# service ntpd start
# chkconfig ntpd on
ntpd
devrait minimiser les effets des variations de l'horloge dans tous les cas de figure.
constant_tsc
est présente. Pour déterminer si votre CPU possède la balise constant_tsc
, exécutez la commande suivante :
$ cat /proc/cpuinfo | grep constant_tsc
constant_tsc
. Si aucune sortie ne vous est retournée, veuillez suivre les instructions ci-dessous.
constant_tsc
, veuillez désactiver toutes les fonctionnalités de gestion de l'alimentation (BZ#513138). Chaque système possède un certain nombre de compteurs pour garder trace de l'heure. Le TSC n'est pas toujours stable sur l'hôte, ce qui peut parfois être causé par les changements de cpufreq
, par un état deep C, ou par une migration vers un hôte ayant un TSC plus rapide. Pour arrêter les états deep C, qui peuvent provoquer l'arrêt du TSC, ajoutez "processor.max_cstate=1
" aux options de démarrage du noyau dans le fichier grub.conf
sur l'hôte :
term Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet processor.max_cstate=1
cpufreq
(seulement nécessaire sur les hôtes n'ayant pas constant_tsc
) en modifiant le fichier de configuration /etc/sysconfig/cpuspeed
et en réglant les variables MIN_SPEED
et MAX_SPEED
sur les plus hautes fréquences disponibles. Les limites valides peuvent être trouvées dans les fichiers /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
.
Red Hat Enterprise Linux | Paramètres noyau supplémentaires de l'invité |
---|---|
5.4 AMD64/Intel 64 avec horloge paravirtualisée | Paramètres supplémentaires non-requis |
5.4 AMD64/Intel 64 sans horloge paravirtualisée | divider=10 notsc lpj=n |
5.4 x86 avec horloge paravirtualisée | Paramètres supplémentaires non-requis |
5.4 x86 sans horloge paravirtualisée | divider=10 clocksource=acpi_pm lpj=n |
5.3 AMD64/Intel 64 | divider=10 notsc |
5.3 x86 | divider=10 clocksource=acpi_pm |
4.8 AMD64/Intel 64 | notsc divider=10 |
4.8 x86 | clock=pmtmr divider=10 |
3.9 AMD64/Intel 64 | Paramètres supplémentaires non-requis |
3.9 x86 | Paramètres supplémentaires non-requis |
boot.ini
:
/use pmtimer
boot.ini
file is no longer used from Windows Vista and newer. Windows Vista, Windows Server 2008 and Windows 7 use the Boot Configuration Data Editor (bcdedit.exe
) to modify the Windows boot parameters.
{default}
in the example below) should be changed if the system UUID is different than the default boot device.
C:\Windows\system32>bcdedit /set {default} USEPLATFORMCLOCK on The operation completed successfully
# setenforce 1
AutoFS
, NFS
, FTP
, HTTP
, NIS
, telnetd
, sendmail
etc...
/var/lib/libvirt/images/
. Si vous utilisez un répertoire distinct pour vos images de machines virtuelles, veillez à inclure votre répertoire dans votre politique SELinux et n'oubliez pas d'en changer le nom avant de démarrer l'installation.
vsftpd
.
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes.
/dev/sdb
). Use partitions (for example, /dev/sdb1
) or LVM volumes.
virt_image_t
label applied to them. The /var/lib/libvirt/images
directory has this label applied to it and its contents by default. This does not mean that images must be stored in this directory; images can be stored anywhere, provided they are labeled with virt_image_t
.
NewVolumeName
sur le groupe de volumes nommé volumegroup
.
# lvcreate -nNewVolumeName
-L5G volumegroup
NewVolumeName
avec un système de fichiers qui supporte les attributs étendus, tel que ext3.
# mke2fs -j /dev/volumegroup/NewVolumeName
/etc
, /var
, /sys
) ou dans les répertoires de base (/home
ou /root
). Cet exemple utilise un répertoire nommé /virtstorage
# mkdir /virtstorage
# mount /dev/volumegroup/NewVolumeName /virtstorage
semanage fcontext -a -t xen_image_t "/virtstorage(/.*)?"
semanage fcontext -a -t virt_image_t "/virtstorage(/.*)?"
/etc/selinux/targeted/contexts/files/file_contexts.local
, rendant ainsi le changement persistant. La ligne ajoutée peut ressembler à ce qui suit :
/virtstorage(/.*)? system_u:object_r:xen_image_t:s0
/dev/volumegroup/NewVolumeName
with the correct label:
# semanage fcontext -a -t xen_image_t /dev/volumegroup/NewVolumeName # restorecon /dev/volumegroup/NewVolumeName
# semanage fcontext -a -t xen_image_t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_t
place xend
dans un mode non confiné 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.
SELinux Boolean | Description |
---|---|
allow_unconfined_qemu_transition | Default: off. This boolean controls whether KVM guests can be transitioned to unconfined users. |
qemu_full_network | Default: on. This boolean controls full network access to KVM guests. |
qemu_use_cifs | Default: on. This boolean controls KVM's access to CIFS or Samba file systems. |
qemu_use_comm | Default: off. This boolean controls whether KVM can access serial or parallel communications ports. |
qemu_use_nfs | Default: on. This boolean controls KVM's access to NFS file systems. |
qemu_use_usb | Default: on. This boolean allows KVM to access USB devices. |
net.ipv4.ip_forward = 1
) is required for virtual bridge devices. Note that installing libvirt enables this variable so it will be enabled when the virtualization packages are installed unless it was manually disabled.
xend
/etc/xen/xend-config.sxp
.Voici les paramètres que vous pouvez activer ou désactiver dans le fichier de configuration xend-config.sxp
:
Élément | Description |
---|---|
(console-limit)
|
Determines the console server's memory buffer limit and assigns that limit on a per domain basis.
|
(min-mem)
|
Détermine le nombre minimum de mégaoctets 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)
|
Si activé, Xen crée un fichier de vidage lorsqu'un échec se produit (la valeur par défaut est 0).
|
(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 le répertoire
/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 connexions entrantes. La valeur par défaut est réglée sur "Yes".
|
(xend-relocation-server)
|
Active le serveur de réadressage 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 réadressage (la valeur par défaut est 8002).
|
(xend-relocation-address)
|
Détermine les adresses de l'hôte qui sont autorisées pour la migration. La valeur par défaut est la valeur de l'adresse
xend-address .
|
(xend-address)
|
Détermine l'adresse à laquelle le serveur de sockets de domaine est lié. La valeur par défaut autorise toutes les connexions.
|
service xend start
service xend stop
service xend restart
service xend status
xend
au démarrage.chkconfig
pour ajouter le xend
au fichier initscript
.
chkconfig --level 345 xend
xend
va maintenant démarrer aux niveaux d'exécution 3, 4 et 5.
virsh migrate
.
# virsh migrateGuestName
libvirtURI
--live
pour la commande virsh migrate
.
# virsh migrate--liveGuestName
libvirtURI
/etc/xen/xend-config.sxp
. Par défaut, la migration est désactivée en raison des effets potentiellement indésirables affectant la sécurité en cas de mauvaise configuration. L'ouverture du port de migration permettrait à des hôtes non autorisés d'initier une migration ou une connexion à des ports de migration. Comme il n'existe pas de système d'authentification et d'autorisation spécifique aux requêtes de migration, et que le seul mécanisme de contrôle est basé sur les noms d'hôte et les adresses IP, il faut faire attention à ce que les ports de migration ne soient pas accessibles aux hôtes non autorisés.
/etc/xen/xend-config.sxp
pour permettre la migration. Modifier les valeurs si nécessaire, et supprimer les commentaires (avec le symbole #
) précédant les paramètres suivants :
(xend-relocation-server yes)
no
. Changer la valeur de xend-relocation-server
sur yes
afin d'activer la migration.
(xend-relocation-port 8002)
(xend-relocation-port)
, spécifie le port xend
qui doit être utilisé pour l'interface de relocation, si xend-relocation-server
est configuré avec yes
xend-relocation-port
doit être ouvert sur les deux systèmes.
(xend-relocation-address '')
(xend-relocation-address)
, le xend
écoute les commande de migrations sur la connexion relocation-socket
pour voir si xend-relocation-server
est installé.
(xend-relocation-address)
parameter restricts the migration server to only listen to a specific interface. The default value in /etc/xen/xend-config.sxp
is an empty string(''
). This value should be replaced with a single, valid IP address. For example:
(xend-relocation-address '10.0.0.1')
(xend-relocation-hosts-allow '')
(xend-relocation-hosts-allow 'hosts')
parameter controls which hostnames can communicate on the relocation port.
xend-relocation-hosts-allow
option to restrict access to the migration server.
xend-relocation-port
et xend-relocation-address
.
(xend-relocation-hosts-allow)
doit être une séquence d'expressions régulières séparées par des espaces. Tout hôte qui possède un nom de domaine totalement qualifié ou une adresse IP qui correspond à l'une de ces expressions régulières, sera accepté.
(xend-relocation-hosts-allow)
:
(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
# service xend restart
et-virt07
et et-virt08
), utilisant tous les deux eth1
comme interface de réseau par défaut, et donc qui utilisent xenbr1
comme pont de réseau Xen. Nous utilisons un disque SCSI attaché localement (/dev/sdb
) sur et-virt07
pour le stockage partagé en utilisant NFS.
# mkdir /var/lib/libvirt/images # mount /dev/sdb /var/lib/libvirt/images
/var/lib/libvirt/images/
, faites bien attention d'uniquement exporter /var/lib/libvirt/images/
et non pas /var/lib/xen/
, car ce répertoire est utilisé par le démon xend
ainsi que par d'les autoutils Xen. Partager /var/lib/xen/
risque d'entraîner un comportement ivisiictible.
# cat /etc/exports /var/lib/libvirt/images *(rw,async,no_root_squash)
# showmount -e et-virt07 Export list for et-virt07: /var/lib/libvirt/images *
# virt-install -p -f /var/lib/libvirt/images/testvm1
.dsk -s 5 -n\testvm1
--vnc -r 1024 -l http://example.com/RHEL5-tree\ Server/x86-64/os/ -b xenbr1
[et-virt08 ~]# brctl show bridge name bridge id STP enabled interfaces xenbr1 8000.feffffffffff no peth1 vif0.1
[et-virt07 ~]# brctl show bridge name bridge id STP enabled interfaces xenbr1 8000.feffffffffff no peth1 vif0.1
[et-virt07 ~]# grep xend-relocation /etc/xen/xend-config.sxp |grep -v '#' (xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '') (xend-relocation-hosts-allow '')
[et-virt08 ~]# grep xend-relocation /etc/xen/xend-config.sxp |grep -v '#' (xend-relocation-server yes) (xend-relocation-port 8002) (xend-relocation-address '') (xend-relocation-hosts-allow '')
[et-virt07 ~]# lsof -i :8002 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME python 3445 root 14u IPv4 10223 TCP *:teradataordbms (LISTEN)
[et-virt08 ~]# lsof -i :8002 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME python 3252 root 14u IPv4 10901 TCP *:teradataordbms (LISTEN)
/var/lib/libvirt/images
directory is available and mounted with networked storage on both hosts. Shared, networked storage is required for migrations.
[et-virt08 ~]# df /var/lib/libvirt/images Filesystem 1K-blocks Used Available Use% Mounted on et-virt07:/var/lib/libvirt/images 70562400 2379712 64598336 4% /var/lib/libvirt/images
[et-virt08 ~]# file /var/lib/libvirt/images/testvm1
.dsk /var/lib/libvirt/images/testvm1
.dsk: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 208782 sectors; partition 2: ID=0x8e, starthead 0, startsector 208845, 10265535 sectors, code offset 0x48
[et-virt08 ~]# touch /var/lib/libvirt/images/foo [et-virt08 ~]# rm -f /var/lib/libvirt/images/foo
[et-virt07 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
[et-virt07 ~]# virsh starttestvm1
Domaintestvm1
started
[et-virt07 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
[et-virt07 images]# time virsh savetestvm1
testvm1
.sav real 0m15.744s user 0m0.188s sys 0m0.044s
[et-virt07 images]# ls -lrttestvm1
.sav -rwxr-xr-x 1 root root 1075657716 Jan 12 06:46testvm1
.sav
[et-virt07 images]# virsh list Id Name State ---------------------------------- Domain-0 running
[et-virt07 images]# virsh restore testvm1
.sav
[et-virt07 images]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
domain-id
from et-virt08
to et-virt07
. The hostname you are migrating to and <domain-id> must be replaced with valid values. This example uses the et-virt08
host which must have SSH access to et-virt07
[et-virt08 ~]# xm migrate --live testvm1
et-virt07
et-virt08
[et-virt08 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
et-virt07
:
[et-virt07 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
running
#!/bin/bash while true do touch /var/tmp/$$.log echo `hostname` >> /var/tmp/$$.log echo `date` >> /var/tmp/$$.log cat /var/tmp/$$.log df /var/tmp ls -l /var/tmp/$$.log sleep 3 done
et-virt07
:
[et-virt08 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
et-virt07
. Vous pouvez ajouter la commande time
pour voir combien de temps la migration dure:
[et-virt08 ~]# xm migrate --live testvm1
et-virt07
# ./doit dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 62 Jan 12 02:26 /var/tmp/2279.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:30 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 124 Jan 12 02:26 /var/tmp/2279.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:30 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:33 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 186 Jan 12 02:26 /var/tmp/2279.log Fri Jan 12 02:26:45 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:48 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:51 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:54:57 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:55:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:55:03 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 744 Jan 12 06:55 /var/tmp/2279.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:26:27 EST 2007
et-virt08
:
[et-virt08 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
et-virt07
:
[et-virt07 images]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
et-virt07
vers et-virt08
. Initiater une migration de et-virt07
vers et-virt08
:
[et-virt07 images]# xm migrate --live testvm1
et-virt08
[et-virt07 images]# virsh list Id Name State ---------------------------------- Domain-0 running
# ./doit dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 62 Jan 12 06:57 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 124 Jan 12 06:57 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 186 Jan 12 06:57 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:00 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 248 Jan 12 02:30 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:03 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 310 Jan 12 02:30 /var/tmp/2418.log dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:53 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:57:56 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 06:58:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:00 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:03 EST 2007 dhcp78-218.lab.boston.redhat.com Fri Jan 12 02:30:06 EST 2007 Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 2983664 2043120 786536 73% / -rw-r--r-- 1 root root 372 Jan 12 02:30 /var/tmp/2418.log
et-virt07
vérifiez sur et-virt08
que la machine virtuelle a bien demarré:
[et-virt08 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
[et-virt08 ~]# time virsh migrate --live testvm1
et-virt07
real 0m10.378s
user 0m0.068s
sys 0m0.052s
xm migrate
command). Une migration en direct peut être effectuée à partir de la même commande. Toutefois, il y a quelques modifications à apporter au fichier de configuration xend-config
. Cet exemple identifie les entrées à modifier afin que la migration soit réussie :
(xend-relocation-server yes)
(xend-relocation-port 8002)
xend
utilise pour migrer. Utiliser cette valeur sauf si l'environnement réseau requiert une valeur personnalisée. Supprimer le symbole de commentaire pour l'activer.
(xend-relocation-address )
xend-relocation-server
. L'hyperviseur Xen n'écoute que le trafic réseau sur l'interface spécifiée.
(xend-relocation-hosts-allow )
(xend-relocation-hosts-allow- '^localhost\\.localdomain$' )>
virsh
. La commande migrate
accepte les paramètres dans le format suivant :
# virsh migrate --live GuestName DestinationURL
GuestName
représente le nom de l'invité que vous souhaitez migrer.
DestinationURL
est l'URL ou le nom d'hôte du système destinataire. Le système destinataire doit exécuter la même version de Red Hat Enterprise Linux, utiliser le même hyperviseur, et doit avoir libvirt
en cours d'exécution.
test1.example.com
à test2.example.com
. Changez les noms d'hôtes pour votre environnement. Cet exemple migre une machine virtuelle nommée RHEL4test
.
Vérifier que l'invité est en cours d'exécution :
test1.example.com
, vérifiez que RHEL4test
est bien en cours d'exécution :
[root@test1 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
Migrez l'invité
test2.example.com
. Ajoutez ensuite /system
à la fin de l'URL de destination afin de dire à libvirt que vous avez besoin d'un accès total.
# virsh migrate --live RHEL4test qemu+ssh://test2.example.com/system
Attendez
virsh
ne rapporte que les erreurs. L'invité continue de s'exécuter sur l'hôte source jusqu'à ce que la migration soit complète.
Vérifiez si l'invité est sur l'hôte destinataire
test2.example.com
, vérifiez que RHEL4test
est bien en cours d'exécution :
[root@test2 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
virt-manager
.
ssh
ou TLS et SSL.
ssh
offre un protocole de réseau crypté qui peut procurer des fonctions de gestion sécurisées vers des serveurs de virtualisation à distance. Cette méthode utilise la connexion de gestion libvirt
traitée par transmission tunnel sur une connexion SSH pour gérer les machines distantes. L'authentification est réalisée en utilisant la cryptographie de clé publique SSH ainsi que des mots de passe ou phrases passe rassemblés par votre agent SSH local. En addition, la console VNC de chaque machine virtuelle invitée est traitée par transmission tunnel sur SSH.
virt-manager
virt-manager
must run as the user who owns the keys to connect to the remote host. That means, if the remote systems are managed by a non-root user virt-manager
must be run in unprivileged mode. If the remote systems are managed by the local root user then the SSH keys must be own and created by root.
virt-manager
.
Optional: Changing user
$ su -
Generating the SSH key pair
virt-manager
is used. This example uses the default key location, in the ~/.ssh/
directory.
$ ssh-keygen -t rsa
Coping the keys to the remote hosts
root@example.com
).
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@example.com root@example.com's password: Now try logging into the machine, with "ssh 'root@example.com'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting
Optional: Add the passphrase to the ssh-agent
ssh-agent
, if required. On the local host, use the following command to add the passphrase (if there was one) to enable password-less login.
# ssh-add ~/.ssh/id_rsa.pub
libvirt
(libvirtd
)libvirt
daemon provide an interface for managing virtual machines. You must have the libvirtd
daemon installed and running on every remote host that needs managing.
$ ssh root@somehost
# chkconfig libvirtd on
# service libvirtd start
libvirtd
et SSH soient configurés, vous devrez pouvoir accéder ou gérer à distance vos machines virtuelles. Vous devriez également pouvoir accéder à vos invités par la commande VNC
à ce niveau.
libvirt
management connection opens a TCP port for incoming connections, which is securely encrypted and authenticated based on x509 certificates. In addition the VNC console for each guest virtual machine will be setup to use TLS with x509 certificate authentication.
libvirt
/etc/xen/xend-config.sxp
. Supprimer le commentaire sur le paramètre de configuration (vnc-tls 1)
dans le fichier de configuration.
/etc/xen/vnc
directory needs the following 3 files:
ca-cert.pem
- The CA certificate
server-cert.pem
- The Server certificate signed by the CA
server-key.pem
- The server private key
(vnc-x509-verify 1)
parameter.
virt-manager
et virsh
libvirt
de TLS, les certificats client et CA doivent être placés dans /etc/pki
. Pour davantage d'informations sur ce sujet veuillez consulter http://libvirt.org/remote.html
virt-manager
user interface, use the ' ' transport mechanism option when connecting to a host.
virsh
, l'URI a le format suivant :
qemu://hostname.guestname/system
pour KVM.
xen://hostname.guestname/
pour Xen.
$HOME/.pki
, c'est à dire les trois fichiers suivants:
ca-cert.pem
- Le certificate CA.
libvirt-vnc
ou clientcert.pem
- Le certificat client signé par le CA.
libvirt-vnc
ou clientkey.pem
- La clé privée du client.
libvirt
prend en charge les modes de transports suivants :
/var/run/libvirt/libvirt-sock
et /var/run/libvirt/libvirt-sock-ro
(pour les connections à lecture-seule).
libvirtd
) doit être en cours d'exécution sur la machine distante. Le port 22 doit être ouvert pour permettre l'accès SSH. Vous devriez utiliser une sorte de gestion de clés ssh (par exemple, l'utilitaire ssh-agent
), sinon vous devrez saisir un mot de passe.
ext
est utilisé pour tout programme externe qui peut se connecter aux machines distantes en utilisant des moyens autres que ceux de libvirt. Ce paramètre n'est pas pris en charge.
virsh
et libvirt
pour se connecter à un hôte distant. Les URI peuvent aussi être utilisés avec le paramètre --connect
pour la commande virsh
afin d'exécuter des commandes ou migrations uniques sur des hôtes distants.
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]
towada
, à l'aide du transport SSH et du nom d'utilisateur SSH ccurran
.
xen+ssh://ccurran@towada/
towada
à l'aide de TLS.
xen://towada/
towada
using TLS. The no_verify=1
tells libvirt not to verify the server's certificate.
xen://towada/?no_verify=1
towada
à l'aide de SSH.
qemu+ssh://towada/system
qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
test+tcp://10.1.1.10:5000/default
Nom | Mode de transport | Description | Exemple d'utilisation |
---|---|---|---|
name | tous les modes | Nom passé à la fonction à distance virConnectOpen. Le nom est normalement formé en supprimant le transport, le nom d'hôte, le numéro du port, le nom d'utilisateur ainsi que d'autres paramètres supplémentaires depuis l'URI distant, mais dans certains cas très complexes, il peut s'avérer qu'il vaille mieux de fournir le nom de manière explicite. | name=qemu:///system |
commande | ssh et ext | Commande externe. Ceci est requis pour le transport ext. Pour ssh, il s'agit par défaut de ssh. La commande est cherchée dans le PATH. | command=/opt/openssh/bin/ssh |
socket | unix et ssh | Chemin d'accès au socket de domaine UNIX, qui remplace celui par défaut. Pour le transport ssh, ceci est passé à la commande à distance netcat (voir netcat). | socket=/opt/libvirt/run/libvirt/libvirt-sock |
netcat | ssh |
La commande
netcat peut être utilisée afin de se connecter à des systèmes distants. Le paramètre netcat par défaut utilise la commande nc . Pour le transport SSH, libvirt construit une commande SSH en utilisant la forme ci-dessous :
Les paramètres
port , username et hostname peuvent être spécifiés comme faisant partie de l'URI distant. command , netcat et socket proviennent d'autres paramètres supplémentaires.
| netcat=/opt/netcat/bin/nc |
no_verify | tls | If set to a non-zero value, this disables client checks of the server's certificate. Note that to disable server checks of the client's certificate or IP address you must change the libvirtd configuration. | no_verify=1 |
no_tty | ssh | Si réglé sur une valeur différente de zéro, ceci empêche ssh de demander un mot de passe si la connexion automatique à une machine distante n'est pas possible (pour l'utilisation de ssh-agent ou similaire). Utiliser ceci lorsque vous n'avez pas accès à un terminal - par exemple dans un programme graphique utilisant libvirt. | no_tty=1 |
Table des matières
vmstat
iostat
lsof
# lsof -i :5900 xen-vncfb 10635 root 5u IPv4 218738 TCP grumble.boston.redhat.com:5900 (LISTEN)
qemu-img
systemTap
crash
xen-gdbserver
sysrq
sysrq t
sysrq w
sysrq c
brtcl
# brctl show bridge name bridge id STP enabled interfaces xenbr0 8000.feffffffffff no vif13.0 pdummy0 vif0.0
# brctl showmacs xenbr0 port no mac addr is local? aging timer 1 fe:ff:ff:ff:ff:ff yes 0.00
# brctl showstp xenbr0 xenbr0 bridge id 8000.feffffffffff designated root 8000.feffffffffff 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 aging time 300.01 hello timer 1.43 tcn timer 0.00 topology change timer 0.00 gc timer 0.02 flags vif13.0 (3) port id 8003 state forwarding designated root 8000.feffffffffff path cost 100 designated bridge 8000.feffffffffff message age timer 0.00 designated port 8003 forward delay timer 0.00 designated cost 0 hold timer 0.43 flags pdummy0 (2) port id 8002 state forwarding designated root 8000.feffffffffff path cost 100 designated bridge 8000.feffffffffff message age timer 0.00 designated port 8002 forward delay timer 0.00 designated cost 0 hold timer 0.43 flags vif0.0 (1) port id 8001 state forwarding designated root 8000.feffffffffff path cost 100 designated bridge 8000.feffffffffff message age timer 0.00 designated port 8001 forward delay timer 0.00 designated cost 0 hold timer 0.43 flags
ifconfig
tcpdump
ps
pstree
top
kvmtrace
kvm_stat
xentop
xm dmesg
xm log
virsh
est un outil d'interface de ligne de commande utilisé pour gérer les invités et l'hyperviseur.
libvirt
et opère comme une alternative à la commande xm et au gestionnaire graphique d'invités (virt-manager
). virsh
peut être utilisé en mode lecture seule par les utilisateurs non-privilégiés. Vous pouvez aussi utiliser virsh
pour exécuter des scripts pour les machines invitées.
Commande | Description |
---|---|
help
| Impression des informations d'aide de base. |
list
| Liste tous les invités. |
dumpxml
| Affichage des fichiers de configuration pour l'invité. |
create
| Création d'un invité depuis un fichier de configuration XML et démarrage du nouvel invité. |
start
| Démarrage d'un invité inactif. |
destroy
| Force un invité à s'arrêter. |
define
| Affichage d'un fichier de configuration XML pour un invité. |
domid
| Displays the guest's ID. |
domuuid
| Displays the guest's UUID. |
dominfo
| Affichage des informations des invités. |
domname
| Displays the guest's name. |
domstate
| Affichage de l'état d'un invité. |
quit
| Quitter le terminal interactif. |
reboot
| Redémarrage d'un invité. |
restore
| Restauration d'un invité précédemment enregistré stocké dans un fichier. |
resume
| Reprise d'un invité mis sur pause. |
save
| Enregistre l'état présent d'un invité sur un fichier. |
shutdown
| Arrêt gracieux d'un invité. |
suspend
| Mise sur pause d'un invité. |
undefine
| Supprime tous les fichiers associés à un invité. |
migrate
| Migration d'un invité vers un autre hôte. |
virsh
suivantes gèrent l'invité et les ressources des hyperviseurs :
Commande | Description |
---|---|
setmem
| Paramètre la mémoire allouée pour un invité. |
setmaxmem
| Limite la quantité de mémoire maximum pour l'hyperviseur. |
setvcpus
| Change le nombre de CPU virtuels assignés à un invité. |
vcpuinfo
| Affichage des informations de CPU virtuels d'un invité. |
vcpupin
| Configure l'affinité des CPU virtuels d'un invité. |
domblkstat
| Affichage des statistiques de périphérique de traitement par blocs pour un invité en cours d'exécution. |
domifstat
| Affichage des statistiques d'interface réseau pour un invité en cours d'exécution. |
attach-device
| Attache un périphérique à un invité en utilisant une définition de périphérique dans un fichier XML. |
attach-disk
| Attache un nouveau périphérique de disque à un invité. |
attach-interface
| Attache une nouvelle interface réseau à un invité. |
detach-device
|
Détache un périphérique d'un invité, nécessite le même tyoe de description XML que la commande attach-device .
|
detach-disk
| Détache un périphérique de disque d'un invité. |
detach-interface
| Détache une interface réseau d'un invité. |
virsh
:
Commande | Description |
---|---|
version
|
Affiche la version de virsh :
|
nodeinfo
| Affiche les informations relatives à l'hyperviseur |
virsh
:
# virsh connect {hostname OR URL}
<name>
est le nom de la machine de l'hyperviseur. Si vous voulez initier une connexion en lecture-seule, exécutez la commande ci-dessus avec -readonly
.
virsh
:
# virsh dumpxml {domain-id, domain-name or domain-uuid}
stdout
). You can save the data by piping the output to a file. An example of piping the output to a file called guest.xml
:
# virsh dumpxmlThis fileGuestID
>guest.xml
guest.xml
can recreate the guest (refer to Editing a guest's configuration file. You can edit this XML configuration file to configure additional devices or to deploy additional guests. Refer to Section 33.1, « Utilisation de fichiers de configuration XML à l'aide de virsh » for more information on modifying files created with virsh dumpxml
.
virsh dumpxml
:
# virsh dumpxml r5b2-mySQL01 <domain type='xen' id='13'> <name>r5b2-mySQL01</name> <uuid>4a4c59a7ee3fc78196e4288f2862f011</uuid> <bootloader>/usr/bin/pygrub</bootloader> <os> <type>linux</type> <kernel>/var/lib/libvirt/vmlinuz.2dgnU_</kernel> <initrd>/var/lib/libvirt/initrd.UQafMw</initrd> <cmdline>ro root=/dev/VolGroup00/LogVol00 rhgb quiet</cmdline> </os> <memory>512000</memory> <vcpu>1</vcpu> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <interface type='bridge'> <source bridge='xenbr0'/> <mac address='00:16:3e:49:1d:11'/> <script path='vif-bridge'/> </interface> <graphics type='vnc' port='5900'/> <console tty='/dev/pts/4'/> </devices> </domain>
dumpxml
option (refer to Création d'un vidage XML de machine virtuelle (fichier de configuration)). To create a guest with virsh
from an XML file:
# virsh create configuration_file.xml
dumpxml
option (refer to Création d'un vidage XML de machine virtuelle (fichier de configuration)) guests can be edited either while they run or while they are offline. The virsh edit
command provides this functionality. For example, to edit the guest named softwaretesting
:
# virsh edit softwaretesting
$EDITOR
(réglé par défaut sur vi
).
virsh
:
# virsh suspend {domain-id, domain-name or domain-uuid}
resume
(Reprise d'une machine virtuelle ) option.
virsh
à l'aide de l'option resume
:
# virsh resume {domain-id, domain-name or domain-uuid}
suspend
et resume
.
virsh
:
# virsh save {domain-name, domain-id or domain-uuid} filename
restore
(Restauration d'un invité) option. Save is similar to pause, instead of just pausing a guest the present state of the guest is saved.
virsh save
command (Sauvegarder un invité) using virsh
:
# virsh restore filename
virsh
:
# virsh shutdown {domain-id, domain-name or domain-uuid}
on_shutdown
parameter in the guest's configuration file.
virsh
:
#virsh reboot {domain-id, domain-name or domain-uuid}
on_reboot
element in the guest's configuration file.
virsh
:
# virsh destroy {domain-id, domain-name or domain-uuid}
virsh destroy
can corrupt guest file systems . Use the destroy
option only when the guest is unresponsive. For para-virtualized guests, use the shutdown
option(Arrêt d'un invité) instead.
# virsh domid {domain-name or domain-uuid}
# virsh domname {domain-id or domain-uuid}
# virsh domuuid {domain-id or domain-name}
virsh domuuid
:
# virsh domuuid r5b2-mySQL01 4a4c59a7-ee3f-c781-96e4-288f2862f011
virsh
with the guest's domain ID, domain name or UUID you can display information on the specified guest:
# virsh dominfo {domain-id, domain-name or domain-uuid}
virsh dominfo
:
# virsh dominfo r5b2-mySQL01 id: 13 name: r5b2-mysql01 uuid: 4a4c59a7-ee3f-c781-96e4-288f2862f011 os type: linux state: blocked cpu(s): 1 cpu time: 11.0s max memory: 512000 kb used memory: 512000 kb
# virsh nodeinfo
virsh nodeinfo
:
# 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
virsh
:
# virsh list
--inactive
liste les invités inactifs (les invités qui ont été définis mais qui ne sont pas actuellement actifs), et
--all
, qui liste tous les invité. Par exemple :
# virsh list --all Id Name State ---------------------------------- 0 Domain-0 running 1 Domain202 paused 2 Domain010 inactive 3 Domain9600 crashed
virsh list
est catégorisée comme étant un des six états (listés ci-dessous).
running
fait référence aux invités qui sont actuellement actifs sur un CPU.
blocked
sont bloqués, et ne sont pas en cours d'exécution ou ne peuvent pas être exécutés. Ceci est provoqué par un invité attendant des E/S (un statut d'attente traditionnel) ou par des invités en mode veille.
paused
liste les domaines qui sont en pause. Ceci arrive lorsqu'un administrateur utilise le bouton pause dans virt-manager
, xm pause
ou virsh suspend
. Lorsqu'un invité est mis sur pause, il consomme de la mémoire ainsi que d'autres ressources, mais il est inéligible pour la planification et les ressources CPU de l'hyperviseur.
shutdown
sert aux invités en train de s'éteindre. L'invité reçoit un signal d'arrêt et devrait être en train de procéder à un arrêt gracieux de ses opérations. Ceci peut ne pas fonctionner sur tous les systèmes d'exploitation ; certains systèmes ne répondent pas à ces signaux.
dying
sont hors-service, ce qui est un état dans lequel le domaine ne s'est pas complètement arrêté ou dans lequel il est en échec.
crashed
ont échoué en cours d'exécution et n'ont plus cours. Cet état n'arrive que si l'invité a été configuré de manière a ne pas redémarrer lorsqu'il se trouve en échec.
virsh
:
# virsh vcpuinfo {domain-id, domain-name or domain-uuid}
virsh vcpuinfo
:
# virsh vcpuinfo r5b2-mySQL01 VCPU: 0 CPU: 0 State: blocked CPU time: 0.0s CPU Affinity: yy
# virsh vcpupin domain-id vcpu cpulist
domain-id
parameter is the guest's ID number or name.
vcpu
dénombre combien de CPU virtualisés sont alloués à l'invité. Le paramètre vcpu
doit être fourni.
vcpu
est une liste des numéros d'identifiant de CPU physiques séparés par des virgules. Le paramètre cpulist
détermine sur quels CPU peuvent être exécutés les VCPU.
virsh
:
# virsh setvcpus {domain-name, domain-id or domain-uuid} count
count
ne peut pas excéder le compte au-dessus du montant spécifié lorsque l'invité a été créé.
virsh
:
# virsh setmem {domain-id or domain-name} count
virsh domblkstat
afin d'afficher les statistiques de périphériques de traitement par blocs pour un invité en cours d'exécution.
# virsh domblkstat GuestName block-device
virsh domifstat
afin d'afficher les statistiques d'interface réseau pour un invité en cours d'exécution.
# virsh domifstat GuestName interface-device
virsh
. Migrer un domaine vers un autre hôte. Ajoutez --live pour une migration en direct. La commande migrate
accepte des paramètres sous le format suivant :
# virsh migrate --live GuestName DestinationURL
--live
est optionnel. Ajoutez-le pour des effectuer des migrations en direct.
GuestName
représente le nom de l'invité que vous souhaitez migrer.
DestinationURL
est l'URL ou le nom d'hôte du système destinataire. Le système destinataire requiert :
libvirt
doit être démarré.
virsh
. Pour faire la liste des réseaux:
# virsh net-list
# virsh net-list Name State Autostart ----------------------------------------- default active yes vnet1 active yes vnet2 active yes
# virsh net-dumpxml NetworkName
# 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
— Démarre automatiquement un réseau appelé network-name
.
virsh net-create XMLfile
— génère et initie un nouveau réseau en utilisant un fichier XML préexistant.
virsh net-define XMLfile
— génère un nouveau périphérique réseau à partir d'un fichier XML préexistant sans le démarrer.
virsh net-destroy network-name
— détruit un réseau spécifié comme network-name
.
virsh net-name networkUUID
— convertit un réseau spécifié network UUID
en un nom de réseau.
virsh net-uuid network-name
— convertit un nom de réseau network name
en un réseau UUID.
virsh net-start nameOfInactiveNetwork
— démarre un réseau inactif.
virsh net-undefine nameOfInactiveNetwork
— supprime la définition d'un réseau inactif.
virt-manager
)
virt-manager
offre une vue graphique des hyperviseurs et de l'invité sur votre système ainsi que sur des machines distantes. Vous pouvez utiliser virt-manager
pour définir les invités paravirtualisés ainsi que les invités totalement virtualisés. virt-manager
peut effectuer des tâches de gestion de virtualisation, y compris :
virt-manager
. The UUID field displays the globally unique identifier for the virtual machines.
dom0
)'s loopback address (127.0.0.1
). This ensures only those with shell privileges on the host can access virt-manager and the virtual machine through VNC.
virt-manager
sticky key capability to send these sequences. To use this capability, you must press any modifier key (Ctrl or Alt) 3 times and the key you specify gets treated as active until the next non-modifier key is pressed. You can then send Ctrl-Alt-F11 to the guest by entering the key sequence 'Ctrl Ctrl Ctrl Alt+F1'.
virt-manager
, it is not possible to use this sticky key feature to send a Sysrq key combination to a guest.
virt-manager
, ouvrez le menu , puis le menu et sélectionnez (virt-manager
).
virt-manager
apparaît.
virt-manager
virt-manager
can be started remotely using ssh as demonstrated in the following command:
ssh -X host's address
[remotehost]# virt-manager
Using ssh
to manage virtual machines and hosts is discussed further in Section 22.1, « Gestion à distance avec SSH ».
virt-manager
's preferences window.
DHCP
xm
peut gérer l'hyperviseur Xen. La plupart des opérations peuvent être effectuées avec les outils libvrit, l'application virt-manager ou la commande virsh
. La commande xm
ne possède pas la fonctionnalité de vérification d'erreur des outils libvirt et ne devrait pas être utilisée pour des tâches pouvant être accomplies par les outils libvirt.
xm
ne fonctionnent pas dans Red Hat Enterprise Linux 5. La liste ci-dessous présente une vue d'ensemble sur les options de commande disponible et non-disponibles.
virsh
ou virt-manager
au lieu de xm
. La commande xm
ne prend pas très bien en charge la vérification d'erreur ou les erreurs de fichiers de configuration et celles-ci peuvent provoquer une instabilité du système ou des erreurs dans les machines virtuelles. La modification manuelle des fichiers de configuration Xen est dangereuse et devrait être évitée. Utilisez ce chapitre à vos risques et périls.
xm
:
xm help [--long]
: aperçu des options disponibles et de help text.
xm list
pour répertorier les domaines actifs:
$ xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 520 2 r----- 1275.5 r5b2-mySQL01 13 500 1 -b---- 16.1
xm create [-c] DomainName/ID
: start a virtual machine. If the -c option is used, the start up process will attach to the guest's console.
xm console DomainName/ID
: attach to a virtual machine's console.
xm destroy DomainName/ID
: arrête une machine virtuelle, tout comme si on l'éteignait.
xm reboot DomainName/ID
: relance une machine virtuelle, fonctionne à travers le système normal d'arrêt/démarrage.
xm shutdown DomainName/ID
: arrête une machine virtuelle, exécute une procédure normale d'arrêt.
xm pause
xm unpause
xm save
xm restore
xm migrate
xm
pour gérer les ressources:
xm mem-set
xm vcpu-list
pour lister les affinités des CPU virtuels :
$ xm vcpu-list Name ID VCPUs CPU State Time(s) CPU Affinity Domain-0 0 0 0 r-- 708.9 any cpu Domain-0 0 1 1 -b- 572.1 any cpu r5b2-mySQL01 13 0 1 -b- 16.1 any cpu
xm vcpu-pin
xm vcpu-set
xm sched-credit
pour afficher les paramètres d'ordonnancement pour un domaine donné:
$ xm sched-credit -d 0 {'cap': 0, 'weight': 256} $ xm sched-credit -d 13 {'cap': 25, 'weight': 256}
xm
pour contrôler et résoudre les pannes.
xm top
xm dmesg
xm info
xm log
xm uptime
pour afficher le temps de disponibilité des invités et des hôtes:
$ xm uptime Name ID Uptime Domain-0 0 3:42:18 r5b2-mySQL01 13 0:06:27
xm sysrq
xm dump-core
xm rename
xm domid
xm domname
xm vnet-list
n'est pas actuellement supportée.
/boot/grub/grub.conf
) crée une liste des systèmes d'exploitation dans l'interface de menu de démarrage GRUB. Lorsque vous installez le RPM kernel-xen
, un script ajoute des entrées kernel-xen
au fichier de configuration GRUB, qui démarrera kernel-xen
par défaut. Modifiez le fichier grub.conf
afin de modifier le noyau par défaut ou pour ajouter des paramètres de noyau supplémentaires.
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
/etc/elilo.conf
, contient une liste des options globales et des strophes d'images (image stanzas). Lorsque vous installez le RPM kernel-xen
, un script de post installation ajoute la strophe d'image qui convient sur elilo.conf
.
image=vmlinuz-2.6.18-92.el5xen vmm=xen.gz-2.6.18-92.el5 label=linux initrd=initrd-2.6.18-92.el5xen.img read-only root=/dev/VolGroup00/rhel5_2 append="-- rhgb quiet"
image
parameter indicates the following lines apply to a single boot selection. This stanza defines a hypervisor (vmm
), initrd
, and command line arguments (read-only
, root
and append
) to the hypervisor and kernel. When ELILO is loaded during the boot sequence, the image is labeled linux
.
read-only
à l'option de la ligne de commande du noyau ro
, ce qui entraîne à ce que le système de fichiers superutilisateur (root) soit monté en lecture-seule jusqu'à ce que les initscripts
montent le root drive en lecture-écriture. ELILO copie la ligne "root
" dans la ligne de commande du noyau. Elles sont fusionnées à la ligne de commande "append
" pour construire une ligne de commande complète :
"-- root=/dev/VolGroup00/rhel5_2 ro rhgb quiet"
--
déterminent les arguments de l'hyperviseur et du noyau. Les arguments de l'hyperviseur en premier, puis les délimiteurs --
, suivis par les arguments du noyau. L'hyperviseur ne possède généralement pas d'arguments.
--
. Exemple de paramètre de mémoire d'hyperviseur (mem
) et de paramètre quiet
pour le noyau :
append="dom0_mem=2G -- quiet"
Paramètre | Description |
---|---|
mem= | Le paramètre mem détermine l'utilisation RAM maximum de l'hyperviseur. Toute RAM supplémentaire ajoutée au système sera ignorée. Le paramètre peut être spécifié à l'aide du suffixe B, K, M ou G, qui représente les octets (Bytes), les Kilo-octets, les Méga-octets et les Giga-octets respectivement. S'il n'y a pas de suffixe de spécifié, l'unité choisie par défaut est le kilo-octet. |
dom0_mem= | dom0_mem= détermine le montant de RAM allouée à dom0. Les mêmes suffixes que pour le paramètre mem, sont respectés. Le montant par défaut dans Red Hat Enterprise Linux 5.2 est de 4G pour Itanium®. |
dom0_max_vcpus= | dom0_max_vcpus= détermine le nombre de CPU à allouer à l'hyperviseur. Le nombre par défaut est de 4 Itanium® dans Red Hat Enterprise Linux 5.2. |
com1= | com1= détermine les paramètres pour la première ligne de la série. Par exemple, com1=9600,8n1,0x408,5 . Les options io_base et irq peuvent être omises si on souhaite garder les valeurs standard par défaut. Le paramètre baud peut être fixé en auto pour indiquer que la configuration du chargeur d'amorçage doit être préservée. Le paramètre com1 peut être omis si les paramètres de la série sont configurés en tant qu'options globales dans ELILO ou dans la configuration EFI. |
com2= | Déterminer les paramètres pour la deuxième ligne de série. Voir la description du paramètre com1 ci dessus. |
console= | La console est une liste de préférences délimitée par une virgule, pour les options de console. Les options incluent vga, com1 et com2. Cette configuration devrait être omise car l'hyperviseur tentera d'hériter les paramètres de la console EFI. |
image=vmlinuz-2.6.18-92.el5xen vmm=xen.gz-2.6.18-92.el5 label=linux initrd=initrd-2.6.18-92.el5xen.img read-only root=/dev/VolGroup00/rhel5_2 append="dom0_mem=2G dom0_max_vcpus=2 --"
rhgb quiet
" de façon à ce que le noyau et la sortie initscript
soient générés sur la console. Notez que les guillemets subsistent pour que la ligne de commande ajoutée soit convenablement interprétée en tant qu'arguments d'hyperviseur.
Item | Description |
---|---|
pae
|
Specifies the physical address extension configuration data.
|
apic
|
Specifies the advanced programmable interrupt controller configuration data.
|
memory
|
Specifies the memory size in megabytes.
|
vcpus
|
Specifies the numbers of virtual CPUs.
|
console
|
Specifies the port numbers to export the domain consoles to.
|
nic
|
Specifies the number of virtual network interfaces.
|
vif
|
Lists the randomly-assigned MAC addresses and bridges assigned to use for the domain's network addresses.
|
disk
|
Lists the block devices to export to the domain and exports physical devices to domain with read only access.
|
dhcp
|
Enables networking using DHCP.
|
netmask
|
Specifies the configured IP netmasks.
|
gateway
|
Specifies the configured IP gateways.
|
acpi
|
Specifies the advanced configuration power interface configuration data.
|
libvirt
configuration files for most tasks. Some users may need Xen configuration files which contain the following standard variables. Configuration items within these files must be enclosed in single quotes('). These configuration files reside in the /etc/xen
directory.
xm create --help_config
.
Parameter
|
Description
|
---|---|
vncpasswd =NAME
| Mot de passe pour la console VNC sur le domaine HVM. |
vncviewer=no | yes
|
Démarrer un vncviewer à l'écoute d'un serveur vnc dans le domaine. L'adresse du vncviewer est transmise au domaine sur la ligne de commande du noyau en utilisant VNC_SERVER=<host>:<port> . Le port utilisé par vnc est 5500 + DISPLAY. Une valeur d'affichage avec port libre est choisie si possible. Valide uniquement quand vnc=1.
|
vncconsole =no | yes
| Spawn a vncviewer process for the domain's graphical console. Only valid when vnc=1. |
name =NAME
| Nom de domaine. Doit être unique. |
bootloader =FILE
| Chemin d'accès au chargeur d'amorçage. |
bootargs =NAME
| Arguments à passer au chargeur d'amorçage. |
bootentry =NAME
|
DEPRECATED. Entrée pour démarrer à partir du chargeur d'amorçage. Utiliser bootargs .
|
kernel =FILE
| Chemin d'accès à l'image du noyau. |
ramdisk =FILE
| Chemin d'accès au ramdisk. |
features =FEATURES
| Fonctionalités pour activer un noyau d'invité. |
builder =FUNCTION
| Fonctionalité utilisée pour construire un domaine. |
memory =MEMORY
| Mémoire de domaine en Mo. |
maxmem =MEMORY
| Mémoire de domaine maximum en Mo. |
shadow_memory =MEMORY
| Mémoire fantôme de domaine en Mo. |
cpu =CPU
| CPU hôte de VCPU0. |
cpus =CPUS
| CPUS pour exécuter le domaine |
pae =PAE
| Désactiver ou activer PAE du domaine HVM. |
acpi =ACPI
| Désactiver ou activer ACPI du domaine HVM. |
apic =APIC
| Désactiver ou activer PAE du domaine HVM. |
vcpus =VCPUs
| Nombre de CPUS virtuels dans le domaine. |
cpu_weight =WEIGHT
|
Set the new domain's cpu weight. WEIGHT is a float that controls the domain's share of the cpu.
|
restart =onreboot | always | never
|
A éviter. Utiliser on_poweroff, on_reboot , et on_crash à la place. Si le domaine devait être redémarré après la sortie. - onreboot : redémarrer après la sortie avec le code de fermeture de session reboot - always : toujours redémarrer après la sortie, ignorer le code de sortie - never : ne jamais redémarrer après la sortie, ignorer le code de sortie
|
on_poweroff =destroy | restart | preserve | destroy
|
Behavior when a domain exits with reason 'poweroff '. - destroy: the domain is cleaned up as normal; - restart: a new domain is started in place of the old one; - preserve: no clean-up is done until the domain is manually destroyed (using xm destroy, for example); - rename-restart: the old domain is not cleaned up, but is renamed and a new domain started in its place.
|
on_reboot =destroy | restart | preserve | destroy
| Behavior when a domain exits with reason 'reboot'. - destroy: the domain is cleaned up as normal; - restart: a new domain is started in place of the old one; - preserve: no clean-up is done until the domain is manually destroyed (using xm destroy, for example); - rename-restart: the old domain is not cleaned up, but is renamed and a new domain started in its place. |
on_crash =destroy | restart | preserve | destroy
| Behavior when a domain exits with reason 'crash'. - destroy: the domain is cleaned up as normal; - restart: a new domain is started in place of the old one; - preserve: no clean-up is done until the domain is manually destroyed (using xm destroy, for example); - rename-restart: the old domain is not cleaned up, but is renamed and a new domain started in its place. |
blkif =no | yes
| Transformer le domaine en périphérique dorsal. |
netif =no | yes
| Transformer le domaine en interface dorsale de réseau. |
tpmif =no | yes
| Transformer le domaine en interface dorsale TPM |
disk =phy:DEV,VDEV,MODE[,DOM]
|
Ajouter un lecteur de disques à un domaine. Le périphérique physique est DEV , qui est exporté dans le domaine en tant que VDEV . Le disque est en lecture-seule si MODE indique r , lecture-écriture si MODE indique w . Si DOM est spécifié, il détermine le domaine du pilote principal à utiliser pour le disque. L'option pourra être répétée pour ajouter plus d'un disque.
|
pci =BUS:DEV.FUNC
|
Ajouter un périphérque PCI à un domaine, en utilisant les paramètres donnés (dans hex). Par exemple, pci=c0:02.1a . L'option pourra être répétée pour ajouter plus d'un appareil pci.
|
ioports =FROM[-TO]
|
Ajouter une fourchette E/S héritée à un domaine, en utilisant les params donnés (en hex). Par exemple ioports=02f8-02ff . Cette option pourra être répétée pour ajouter plus d'une fourchette e/s.
|
irq =IRQ
|
Ajouter une interruption (IRQ for Interrupt Request / demande d'interrupotion) à un domaine. Par exemple irq=7 . Cette option pourra être répétée pour ajouter plus d'un IRQ.
|
usbport =PATH
| Ajouter une port physique USB à un domaine, comme indiqué par le chemin qui mène à ce port. Cette option pourra être répétée pour ajouter plus d'un seul port. |
vfb=type=
vnclisten=
xauthority=
keymap =KEYMAP
|
Make the domain a framebuffer backend. The backend type should be either sdl or vnc . For type=vnc , connect an external vncviewer. The server will listen on ADDR (default 127.0.0.1) on port N+5900. N defaults to the domain id. If vncunused=1 , the server will try to find an arbitrary unused port above 5900. For type=sdl , a viewer will be started automatically using the given DISPLAY and XAUTHORITY , which default to the current user's ones.
|
vif=type=
script= =NAME
|
Ajouter une interface de réseau avec le pont et l'adresse MAC donnés. Le vif est configuré en appelant le script de configuration. Si le type n'est pas spécifié, le périphérique par défaut est netfront et non pas ioemu. Si l'adresse mac n'est pas spécifiée, une adresse MAC choisie au hasard sera utilisée. Si le pont n'est pas spécifié, le premier pont trouvé est utilisé. Si le script n'est pas spécifié, le script par défaut est utilisé. Si le backend n'est pas spécifié, le domaine du pilote backend par défaut est utilisé. Si le vifname n'est pas spécifié, l'interface virtuelle du backend aura nommé vifD.N avec D pour le domaine id et N pour l'interface id. Cette option peut être répétée pour ajouter plus d'un vif. Préciser les vifs augmentera le nombre d'interfaces au fur et à mesure des besoins.
|
vtpm=instance= INSTANCE ,backend=DOM
|
Ajouter une interface TPM. Sur la partie backend, utiliser l'instance donnée en tant qu'instance TPM virtuelle. Le nombre donnée est simplement le nombre préferré d'instances. Le script hotplug déterminera le nombre d'instances qui seront assignées au domaine. L'association entre le nombre d'instances de TPM et la machine virtuelle peut être trouvée dans /etc/xen/vtpm.db . Utiliser le backend dans le domaine donné.
|
access_control=policy= POLICY ,label=LABEL
| Ajouter le label sécurité et la référence de politique de sécurité qui le définit. La référence ssid locale est calculée lorsqu'on démarre ou arrête le domaine. A ce moment là, la politique est contrôlée par rapport à la politique active. Ainsi, on couvre la migration entre les fonctions de sauvegarde et de restauration et les labels locaux sont automatiquement créés convenablement sur le système dans lequel le domaine est démarré ou terminé. |
nics =NUM
| A EVITER. Utiliser des entrés vif à la place. Déterminer le nombre d'interfaces de réseaux. Utiliser l'option vif pour déterminer les paramètres d'interface, sinon les paramètres par défaut seront utilisés. Spécifier les vifs augmente le nombre d'interfaces suivant les besoins. |
root =DEVICE
|
Spécifie root = paramètre sur la ligne de commande du noyau. Utiliser un périphérique, par ex. /dev/sda1 , ou /dev/nfs pour le root NFS.
|
extra =ARGS
| Spécifie des arguments supplémentaires à ajouter à la ligne de commande du noyau. |
ip =IPADDR
| Spécifie l'adresse de l'interface IP du noyau. |
gateway =IPADDR
| Spécifie la passerelle de l'adresse IP configurée. |
netmask =MASK
| Spécifie le masque réseau de l'adresse IP configurée. |
hostname =NAME
| Spécifie le nom d'hôte IP du noyau. |
interface =INTF
| Spécifie le nom de l'interface IP du noyau. |
dhcp =off|dhcp
| Spécifie l'option dhcp du noyau. |
nfs_server =IPADDR
| Spécifie l'adresse du serveur NFS pour le root NFS. |
nfs_root =PATH
| Spécifie le chemin d'accès au répertoire root NFS. |
device_model =FILE
| Chemin d'accès au programme modèle du périphérique. |
fda =FILE
| Chemin d'accès à fda |
fdb =FILE
| Chemin d'accès fdb |
serial =FILE
| Chemin d'accès au sériel (serial) ou pty ou vc |
localtime =no | yes
| Est-ce que RTC est bien configuré à l'heure locale |
keymap =FILE
| Configurer le clavier utilisé |
usb =no | yes
| Emuler les USB |
usbdevice =NAME
|
Nom des USB à ajouter
|
stdvga =no | yes
|
Use std vga or Cirrus Logic
graphics
|
isa =no | yes
|
Simuler un système spécifiquement ISA
|
boot =a|b|c|d
| Périphérique d'amorçage par défaut |
nographic =no | yes
| Est ce que les modèles de périphériques doivent utiliser des graphiques? |
soundhw =audiodev
| Est-ce que les modèles de périphériques doivent activer les périphériques audio ? |
vnc
| Est-ce que les modèles de périphériques doivent utiliser VNC? |
vncdisplay
| Affichage VNC à utiliser |
vnclisten
| Adresse d'écoute pour le serveur VNC |
vncunused
| Essayer de trouver un port non utilisé pour le serveur VNC. Valide uniquement pour vnc=1. |
sdl
| Est-ce que le modèle de périphérique utilise SDL? |
display =DISPLAY
| Affichage X11 à afficher |
xauthority =XAUTHORITY
| Authorité X11 à utiliser |
uuid
| xenstore UUID (universally unique identifier / identifiant universel unique) à utiliser. Sera généré au hasard si cette option n'est pas configurée, tout comme les adresses MAC dans le cas des interfaces de réseau virtuel. On doit utiliser une valeur unique pour l'ensemble des terminaux. |
Fonction parser | Arguments valides |
---|---|
set_bool
|
Valeurs acceptées:
|
set_float
|
Accepts a floating point number with Python's float(). For example:
|
set_int
|
Accepts an integer with Python's int().
|
set_value
|
accepte toute valeur Python.
|
append_value
|
accepte toute valeur Python, et l'adjoint à toute valeur précédente, stockée dans un tableau (array).
|
Parameter | Fonction parser | Valeurs par défaut |
---|---|---|
name
|
setter
|
default value
|
vncpasswd
|
set_value
|
None
|
vncviewer
|
set_bool
|
None
|
vncconsole
|
set_bool
|
None
|
name
|
set_value
|
None
|
bootloader
|
set_value
|
None
|
bootargs
|
set_value
|
None
|
bootentry
|
set_value
|
None
|
kernel
|
set_value
|
None
|
ramdisk
|
set_value
|
''
|
features
|
set_value
|
''
|
builder
|
set_value
|
'linux'
|
memory
|
set_int
|
128
|
maxmem
|
set_int
|
None
|
shadow_memory
|
set_int
|
0
|
cpu
|
set_int
|
None
|
cpus
|
set_value
|
None
|
pae
|
set_int
|
0
|
acpi
|
set_int
|
0
|
apic
|
set_int
|
0
|
vcpus
|
set_int
|
1
|
cpu_weight
|
set_float
|
None
|
restart
|
set_value
|
None
|
on_poweroff
|
set_value
|
None
|
on_reboot
|
set_value
|
None
|
on_crash
|
set_value
|
None
|
blkif
|
set_bool
|
0
|
netif
|
set_bool
|
0
|
tpmif
|
append_value
|
0
|
disk
|
append_value
|
[]
|
pci
|
append_value
|
[]
|
ioports
|
append_value
|
[]
|
irq
|
append_value
|
[]
|
usbport
|
append_value
|
[]
|
vfb
|
append_value
|
[]
|
vif
|
append_value
|
[]
|
vtpm
|
append_value
|
[]
|
access_control
|
append_value
|
[]
|
nics
|
set_int
|
-1
|
root
|
set_value
|
''
|
extra
|
set_value
|
''
|
ip
|
set_value
|
''
|
gateway
|
set_value
|
''
|
netmask
|
set_value
|
''
|
hostname
|
set_value
|
''
|
interface
|
set_value
|
"eth0"
|
dhcp
|
set_value
|
'off'
|
nfs_server
|
set_value
|
None
|
nfs_root
|
set_value
|
None
|
device_model
|
set_value
|
''
|
fda
|
set_value
|
''
|
fdb
|
set_value
|
''
|
serial
|
set_value
|
''
|
localtime
|
set_bool
|
0
|
keymap
|
set_value
|
''
|
usb
|
set_bool
|
0
|
usbdevice
|
set_value
|
''
|
stdvga
|
set_bool
|
0
|
isa
|
set_bool
|
0
|
boot
|
set_value
|
'c'
|
nographic
|
set_bool
|
0
|
soundhw
|
set_value
|
''
|
vnc
|
set_value
|
None
|
vncdisplay
|
set_value
|
None
|
vnclisten
|
set_value
|
None
|
vncunused
|
set_bool
|
1
|
sdl
|
set_value
|
None
|
display
|
set_value
|
None
|
xauthority
|
set_value
|
None
|
uuid
|
set_value
|
None
|
Table des matières
ftpd
ftpd
virsh
pour paramétrer un invité, TestServer
, afin qu'il démarre automatiquement lors du lancement de l'hôte.
# virsh autostart TestServer
Domain TestServer marked as autostarted
--disable
# virsh autostart --disable TestServer
Domain TestServer unmarked as autostarted
Installer le paquetage KVM
# yum install kvm
Vérifier quel noyau est en cours d'utilisation
uname
afin de déterminer quel noyau est en cours d'exécution :
$ uname -r 2.6.18-159.el5xen
2.6.18-159.el5xen
", est en cours d'exécution sur le système. Si le noyau par défaut, "2.6.18-159.el5
", est en cours d'exécution, vous pouvez ignorer la sous-étape.
Passer du noyau Xen au noyau par défaut
grub.conf
détermine quel noyau est démarré. pour changer le noyau par défaut, modifier le fichier /boot/grub/grub.conf
comme indiqué ci-dessous.
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
0
(ou sur la valeur du noyau par défaut) :
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
Redémarrer afin de lancer le nouveau noyau
$ lsmod | grep kvm kvm_intel 85992 1 kvm 222368 2 ksm,kvm_intel
kvm
, et soit le module kvm_intel
, soit le module kvm_amd
sont présent si tout a bien fonctionné.
Installer les paquetages Xen
# yum install kernel-xen xen
Vérifier quel noyau est en cours d'utilisation
uname
afin de déterminer quel noyau est en cours d'exécution.
$ uname -r 2.6.18-159.el5
2.6.18-159.el5
", est en cours d'exécution sur le système. Il s'agit du noyau par défaut. Si le noyau possède xen
à la fin (par exemple, 2.6.18-159.el5xen
), alors le noyau Xen est en cours d'exécution et vous pouvez ignorer la sous-étape.
Passer du noyau par défaut au noyau Xen
grub.conf
détermine quel noyau est démarré. pour changer le noyau par défaut, modifier le fichier /boot/grub/grub.conf
comme indiqué ci-dessous.
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
1
(ou sur la valeur pour le noyau Xen) :
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-159.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-159.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-159.el5.img
title Red Hat Enterprise Linux Server (2.6.18-159.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-159.el5
module /vmlinuz-2.6.18-159.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-159.el5xen.img
Redémarrer afin de lancer le nouveau noyau
uname
:
$ uname -r 2.6.18-159.el5xen
xen
à la fin, alors le noyau Xen est en cours d'utilisation.
qemu-img
est utile au formatage de divers systèmes de fichiers utilisés par Xen et KVM. qemu-img
devrait être utilisé pour le formatage d'images d'invités virtualisés, de périphérique de stockage supplémentaires, et de stockage réseau. Les options et utilisations qemu-img
sont listées ci-dessous.
size
et de format format
.
# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]
convert
est utilisée pour convertir un format reconnu vers un autre format d'image.
# qemu-img convert [-c] [-e] [-f format]filename
[-Ooutput_format
]output_filename
filename
en image disque output_filename
en utilisant le formatage output_format
. L'image disque peut être optionnellement cryptée avec l'option -e
ou compressée avec l'option -c
.
qcow
" prend en charge le cryptage ou la compression. La compression est uniquement en lecture-seule. Ce qui veut dire que si un secteur compressé est réécrit, alors il sera réécrit sans être compressé.
qcow
ou cow
. Les secteurs vides sont détectés et supprimés de l'image de destination.
info
affiche des informations sur une image disque. Le format de l'option info
est comme suit :
# qemu-img info [-f format] filename
raw
qemu-img info
afin de connaître la taille réelle utilisée par l'image, ou ls -ls
sur Unix/Linux.
qcow2
qcow
cow
cow
est uniquement inclus pour faciliter la compatibilité avec des versions plus anciennes. Il ne fonctionne pas avec Windows.
vmdk
cloop
(0.5 * RAM) + (overcommit ratio * RAM) = Recommended swap size
/etc/grub.conf
file to use the virtualization kernel. You must use the xen
kernel to use the Xen hypervisor. Copy your existing xen
kernel entry make sure you copy all of the important lines or your system will panic upon boot (initrd
will have a length of '0
'). If you require xen
hypervisor specific values you must append them to the xen
line of your grub entry.
grub.conf
d'un système exécutant le paquetage kernel-xen. grub.conf
peut varier sur votre système. La partie importante dans l'exemple ci-dessous est la section à partir de la ligne title
jusqu'à la prochaine nouvelle ligne.
#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.21.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
grub.conf
...grub.conf
could look very different if it has been manually edited before or copied from an example. Read Chapitre 28, Configuration des paramètres d'amorçage du noyau Xen for more information on using virtualization and grub.
dom0_mem=256M
à xen
dans votre fichier grub.conf
. Une version modifiée du fichier de configuration grub dans l'exemple précédent:
#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 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
$ grep -E 'svm|vmx' /proc/cpuinfo
vmx
, indiquant la présence d'un processeur Intel avec les extensions Intel VT :
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
svm
, indiquant la présence d'un processeur AMD avec les extensions AMD-V :
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc
flags:
" peut apparaître plusieurs fois pour chaque hyperthread, chaque coeur, ou chaque CPU sur le système.
For users of the KVM hypervisor
kvm
modules are loaded in the kernel:
# lsmod | grep kvm
kvm_intel
or kvm_amd
then the kvm
hardware virtualization modules are loaded and your system meets requirements. sudo
virsh
command can output a full list of virtualization system capabilities. Run virsh capabilities
as root to receive the complete list.
kpartx
tool, covered by this section, to mount the guest file system as a loop device which can then be accessed.
kpartx
command creates device maps from partition tables. Each guest storage image has a partition table embedded in the file.
# yum install kpartx
guest1.img
.
# kpartx -l /var/lib/libvirt/images/guest1.img
loop0p1 : 0 409600 /dev/loop0 63
loop0p2 : 0 10064717 /dev/loop0 409663
guest1
is a Linux guest. The first partition is the boot partition and the second partition is an EXT3 containing the root partition.
/dev/mapper/
.
# kpartx -a /var/lib/libvirt/images/guest1.img
# ls /dev/mapper/ loop0p1 loop0p2
loopXpY
.
/mnt/guest1
for mounting the partition.
# mkdir /mnt/guest1
# mount /dev/mapper/loop0p1
/mnt/guest1 -o loop,ro
/mnt/guest1
directory. Read or copy the files.
# umount /mnt/tmp
# kpartx -d /var/lib/libvirt/images/guest1.img
guest1.img
to the recognized devices in the /dev/mapper/
directory.
# kpartx -a /var/lib/libvirt/images/guest1.img
vgscan
command to find the new volume groups.
# vgscan Reading all physical volumes . This may take a while... Found volume group "VolGroup00" using metadata type lvm2
VolGroup00
by default) with the vgchange -ay
command.
# vgchange -ay VolGroup00 2 logical volumes in volume group VolGroup00 now active.
lvs
command to display information about the new volumes. The volume names (the LV
column) are required to mount the volumes.
# lvs LV VG Attr Lsize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M
/dev/VolGroup00/LogVol00
in the /mnt/guestboot/
directory.
# mount /dev/VolGroup00/LogVol00 /mnt/guestboot
/mnt/guestboot
directory. Read or copy the files.
# umount /mnt/
VolGroup00
# vgchange -an VolGroup00
# kpartx -d /var/lib/libvirt/images/guest1.img
virsh nodeinfo
command provides information about how many sockets, cores and hyperthreads there are attached a host.
# virsh nodeinfo CPU model: x86_64 CPU(s): 8 CPU frequency: 1000 MHz CPU socket(s): 2 Core(s) per socket: 4 Thread(s) per core: 1 NUMA cell(s): 1 Memory size: 8179176 kB
virsh capabilities
to get additional output data on the CPU configuration.
# virsh capabilities
<capabilities>
<host>
<cpu>
<arch>x86_64</arch>
</cpu>
<migration_features>
<live/>
<uri_transports>
<uri_transport>tcp</uri_transport>
</uri_transports>
</migration_features>
<topology>
<cells num='2'>
<cell id='0'>
<cpus num='4'>
<cpu id='0'/>
<cpu id='1'/>
<cpu id='2'/>
<cpu id='3'/>
</cpus>
</cell>
<cell id='1'>
<cpus num='4'>
<cpu id='4'/>
<cpu id='5'/>
<cpu id='6'/>
<cpu id='7'/>
</cpus>
</cell>
</cells>
</topology>
<secmodel>
<model>selinux</model>
<doi>0</doi>
</secmodel>
</host>
[ Additional XML removed ]
</capabilities>
virsh freecell
command to display the free memory on all NUMA nodes.
# virsh freecell 0: 2203620 kB 1: 3354784 kB
virsh capabilities
command) about NUMA topology.
virsh capabilities
output.
<topology> <cells num='2'> <cell id='0'> <cpus num='4'> <cpu id='0'/> <cpu id='1'/> <cpu id='2'/> <cpu id='3'/> </cpus> </cell> <cell id='1'> <cpus num='4'> <cpu id='4'/> <cpu id='5'/> <cpu id='6'/> <cpu id='7'/> </cpus> </cell> </cells> </topology>
<cell id='1'>
, has physical CPUs 4 to 7.
cpuset
attribute to the configuration file.
virsh edit
.
vcpus
element.
<vcpus>4</vcpus>
cpuset
attribute with the CPU numbers for the relevant NUMA cell.
<vcpus cpuset='4-7'>4</vcpus>
virt-install
provisioning tool provides a simple way to automatically apply a 'best fit' NUMA policy when guests are created.
cpuset
option for virt-install
can use a CPU set of processors or the parameter auto
. The auto
parameter automatically determines the optimal CPU locking using the available NUMA data.
--cpuset=auto
with the virt-install
command when creating new guests.
virsh vcpuinfo
and virsh vcpupin
commands can perform CPU affinity changes on running guests.
virsh vcpuinfo
command gives up to date information about where each virtual CPU is running.
guest1
is a guest with four virtual CPUs is running on a KVM host.
# virsh vcpuinfo guest1
VCPU: 0
CPU: 3
State: running
CPU time: 0.5s
CPU Affinity: yyyyyyyy
VCPU: 1
CPU: 1
State: running
CPU Affinity: yyyyyyyy
VCPU: 2
CPU: 1
State: running
CPU Affinity: yyyyyyyy
VCPU: 3
CPU: 2
State: running
CPU Affinity: yyyyyyyy
virsh vcpuinfo
output (the yyyyyyyy
value of CPU Affinity
) shows that the guest can presently run on any CPU.
# virsh vcpupinguest1
0 4 # virsh vcpupinguest1
1 5 # virsh vcpupinguest1
2 6 # virsh vcpupinguest1
3 7
virsh vcpuinfo
command confirms the change in affinity.
# virsh vcpuinfo guest1
VCPU: 0
CPU: 4
State: running
CPU time: 32.2s
CPU Affinity: ----y---
VCPU: 1
CPU: 5
State: running
CPU time: 16.9s
CPU Affinity: -----y--
VCPU: 2
CPU: 6
State: running
CPU time: 11.9s
CPU Affinity: ------y-
VCPU: 3
CPU: 7
State: running
CPU time: 14.6s
CPU Affinity: -------y
macgen.py
. Now from that directory you can run the script using ./macgen.py
and it will generate a new MAC address. A sample output would look like the following:
$ ./macgen.py 00:16:3e:20:b0:11 #!/usr/bin/python # macgen.py script to generate a MAC address for virtualized guests on Xen # import random # def randomMAC(): mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] return ':'.join(map(lambda x: "%02x" % x, mac)) # print randomMAC()
python-virtinst
pour générer une nouvelle adresse MAC et UUID
pour utiliser dans un fichier de configuration d'invité:
# echo 'import virtinst.util ; print\ virtinst.util.uuidToString(virtinst.util.randomUUID())' | python # echo 'import virtinst.util ; print virtinst.util.randomMAC()' | python
#!/usr/bin/env python # -*- mode: python; -*- print "" print "New UUID:" import virtinst.util ; print virtinst.util.uuidToString(virtinst.util.randomUUID()) print "New MAC:" import virtinst.util ; print virtinst.util.randomMAC() print ""
rate
” parameter part of the VIF
entries can throttle virtualized guests.
rate
rate=
option can be added to the VIF=
entry in a virtual machine configuration file to limit a virtual machine's network bandwidth or specify a specific time interval for a time window.
rate=
:
rate
et utilisations.
rate=10Mb/s
rate=250KB/s
rate=10MB/s@50ms
VIF
ressemblerait à ce qui suit:
vif = [ 'rate=10MB/s , mac=00:16:3e:7a:55:1c, bridge=xenbr1']
rate
entry would limit the virtual machine's interface to 10MB/s for outgoing traffic
virsh
ou avec virt-manager
:
virsh
refer to Configuration de l'affinité des CPU virtuels for more information.
virt-manager
refer to Section 26.11, « Affichage des processeurs virtuels » for more information.
/boot/grub/grub.conf
. Managing several or more hosts configuration files quickly becomes difficult. System administrators often prefer to use the 'cut and paste' method for editing multiple grub.conf
files. If you do this, ensure you include all five lines in the Virtualization entry (or this will create system errors). Hypervisor specific values are all found on 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 is the grub.conf
with the hypervisor's memory entry modified.
# 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
ftpd
vsftpd
offre un accès aux aborescences d'installation pour les invités paravirtualisés (par exemple pour les dépôts Red Hat Enterprise Linux 5) ou autress données. Si vous n'avez pas installé vsftpd
pendant l'installation du serveur, vous pouvez saisir le paquetage RPM dans le répertoire Server
de votre medium d'installation et l'installer en utilisant rpm -ivh vsftpd*.rpm
(noter que le paquetage RPM doit figurer dans le répertoire actuel).
vsftpd
, edit /etc/passwd
using vipw
and change the ftp user's home directory to the directory where you are going to keep the installation trees for your para-virtualized guests. An example entry for the FTP user would look like the following:
ftp:x:14:50:FTP User:/xen/pub:/sbin/nologin
vsftpd
n'est pas activé en utilisant chkconfig --list vsftpd
:
$ chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig --levels 345 vsftpd on
pour démarrer vsftpd automatiquement pour exécuter les niveaux 3, 4 et 5.
chkconfig --list vsftpd
pour vérifier que le démon vsftdp
a bien été activé pour démarrer lors de l'initialisation du système :
$ chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
service vsftpd start vsftpd
pour démarrer le service vsftpd:
$service vsftpd start vsftpd Starting vsftpd for vsftpd: [ OK ]
udev
pour implémenter la persistence LUN. Avant d'implémenter la persistence LUN dans votre système, assurez- vous d'avoir bien acquis les UUID uniques qui conviennent. Une fois que vous les aurez acquis, vous pourrez configurer la persistence LUN en modifiant le fichier scsi_id
qui réside dans le répertoire /etc
. Une fois que vous avez ouvert ce dossier dans l'éditeur de textes, vous devrez commenter cette ligne:
# options=-b
# options=-g
scsi_id
:
# 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 nomenclature pour le nom doivent suivre le format suivant :
# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID
", NAME="devicename
"
UUID
et devicename
existants et le nom du périphérique avec l'UUID ci-dessus. La règle de nomenclature devrait ressembler à ceci:
KERNEL="sd*
", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e
", NAME="mydevicename
"
/dev/sd*
pour inspecter les UUID donnés. Lorsqu'il trouve un périphérique qui correspond, il crée un noeud de périphérique intitulé /etc/udev/rules.d
. Pour cet exemple, le noeud de périphérique est /dev/mydevice
. Finalement, vous aurez besoin d'adjoindre au fichier /etc/rc.local
la ligne suivante:
/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ésident dans le répertoire /dev/mpath
. Les noms LUN sont persistants après les redémarrages car cela crée des noms aliasés sur le wwid de chacun des LUN.
/sbin/service smartd stop /sbin/chkconfig --del smartd
/var/lib/xen
, the usually named vmlinuz.******
and initrd.******
. These files are the initrd and vmlinuz files from virtual machines which either failed to boot or failed for some other reason. These files are temporary files extracted from virtual machine's boot disk during the start up sequence. These files should be automatically removed after the virtual machine is shut down cleanly. Then you can safely delete old and stale copies from this directory.
vino-preferences
.
~/.vnc/xstartup
pour démarrer la session GNOME quand vncserver démarre. La première fois que le script vncserver est exécuté, on vous demandera le mot de passe que vous souhaitez pour la session VNC.
xstartup
:
#!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources #xsetroot -solid grey #vncconfig -iconic & #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #twm & if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then eval `dbus-launch --sh-syntax –exit-with-session` echo "D-BUS per-session daemon address is: \ $DBUS_SESSION_BUS_ADDRESS" fi exec gnome-session
uuidgen
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.
HWADDR
du fichier /etc/sysconfig/network-scripts/ifcfg-eth0
pour qu'il corresponde à la sortie du fichier ifconfig eth0
et si vous utilisez les adresses IP statiques, vous devrez modifier la saisie IPADDR
.
name
uuid
uuidgen
. Echantillon de sortie UUID:
$ uuidgen a984a14f-4191-4d14-868e-329906b211e5
vif
xenbr
pour correspondre à votre configuration de réseau local (vous obtiendrez l'information de pont en utilisant la commande brctl show
).
brctl show
. pour pointer à l'image d'invité qui convient.
/etc/sysconfig/network
HOSTNAME
entry to the guest's new hostname
.
/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR
à la sortie de ifconfig eth0
IPADDR
si une adresse IP statique est utilisée.
libvirt
.
libvirt
.
virsh
can handle XML configuration files. You may want to use this to your advantage for scripting large deployments with special options. You can add devices defined in an XML file to a running para-virtualized guest. For example, to add a ISO file as hdc
to a running guest create an XML file:
# cat satelliteiso.xml <disk type="file" device="disk"> <driver name="file"/> <source file="/var/lib/libvirt/images/rhn-satellite-5.0.1-11-redhat-linux-as-i386-4-embedded-oracle.iso"/> <target dev="hdc"/> <readonly/> </disk>Run
virsh attach-device
to attach the ISO as hdc
to a guest called "satellite" :
# virsh attach-device satellite satelliteiso.xml
Table des matières
xentop
xentop
affiche des informations en temps réel sur le système hôte et sur les domaines invités.
xm
dmesg
et log
vmstat
iostat
lsof
iostat
, mpstat
et sar
sont fournies par le paquetage sysstat
.
XenOprofile
systemtap
crash
sysrq
sysrq t
sysrq w
ifconfig
tcpdump
tcpdump
command 'sniffs' network packets. tcpdump
is useful for finding network abnormalities and problems with network authentication. There is a graphical version of tcpdump
named wireshark
.
brctl
brctl
est un outil de mise en réseau qui inspecte et configure la configuration de pont éthernet 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? aging 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 aging-time 300.01 hello-timer 1.43 tcn-timer 0.00 topology-change-timer 0.00 gc-timer 0.02
Server
de Red Hat Enterprise Linux 5.
yum install vnc
command.
yum install vnc-server
.
/etc/xen/
. Ce répertoire contient le démon xend
et d'autres fichiers de configuration de machines virtuelles. Les fichiers des scripts de mise en réseau se trouvent dans le répertoire /scripts
.
/var/log/xen
.
/var/lib/libvirt/images
.
/proc/xen/
.
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 toutes les données collectées par le démon xend
, 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. Le xend.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 des messages d'erreur.
xend-debug.log
est le fichier journal qui contient des données d'erreurs dans les évènements à partir de xend
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 processus qemu-dm
pour chaque invité pleinement virtualisé. Quand vous utilisez ce fichier journal, vous devez récupérer le processus PID qemu-dm
en utilisant la commande ps
pour examiner les arguments du processus afin d'isoler le processus qemu-dm
sur la machine virtuelle. Notez que vous devez remplacer le symbole [PID] par le processus PID qemu-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.
/var/lib/libvirt/images
.
xend
, il met à jour la xend-database
qui réside dans le répertoire /var/lib/xen/xend-db
.
xm dump-core
) résident dans le répertoire /var/lib/xen/dumps
.
/etc/xen
contient les fichiers de configuration que vous utilisez pour gérer les ressources système. Le fichier de configuration du démon xend
est appelé /etc/xen/xend-config.sxp
. Ce fichier peut être modifié pour implémenter les modifications sur tout le système et pour configurer la mise en réseau. Cependant, la modification manuelle des fichiers dans le dossier /etc/xen/
est déconseillée.
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/
xend.log
file contains the same basic information as when you run the xm log
command. This log is found 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
grub.conf
file to enable a 38400-bps serial console on com1
/dev/ttyS0
:
title Red Hat Enterprise Linux (2.6.18-8.2080_xen0) 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
peut vous aider à déterminer un problème qui cause des "hangs" (suspensions de système) avec des sorties de console d'hyperviseur asynchrone, et le "pnpacpi=off"
se charge d'un problème qui casse les saisies sur la console série. Les paramètres "console=ttyS0"
et "console=tty"
signifient que les erreurs de noyau sont journalisées avec à la fois la console VGA normale et la console série. Ensuite vous pouvez installer et paramétrer ttywatch
pour capturer les données sur un hôte distant connecté avec un cable "null-modem" standard. Par exemple, sur l'hôte distant vous pouvez saisir :
ttywatch --name myhost --port /dev/ttyS0
/dev/ttyS0
vers le fichier /var/log/ttywatch/myhost.log
.
# virsh console [guest name, ID or UUID]
virt-manager
to display the virtual text console. In the guest console window, select Serial Console from the View menu.
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). To use the guest's serial console, you must edit the libvirt configuration file configuration file. On the host, access the serial console with the following command:
# virsh console
virt-manager
to display the virtual text console. In the guest console window, select Serial Console from the View menu.
xend
, il ne se passe rien. Saisissez virsh list
et vous recevrez ce qui suit :
Error: Error connecting to xend: Connection refused. Is xend running?
xend start
manuellement et vous obtenez des messages d'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' )
kernel-xen
. Pour corriger cela, vous devez sélectionner le noyau kernel-xen
au moment du lancement (ou configurer kernel-xen
par défaut dans le fichier grub.conf
).
"Invalid argument"
. Cela signifie en général que l'image noyau que vous tentez de lancer est incompatible avec l'hyperviseur. Un exemple de cela serait si vous tentiez d'exécuter un noyau non-PAE FC5 sur un hyperviseur FC6 uniquement PAE.
grub.conf
redevient directement un noyau bare-metal au lieu d'un noyau de virtualisation.
/etc/sysconfig/kernel/
directory. You must ensure that kernel-xen
parameter is set as the default option in your grub.conf
file.
/boot/grub/grub.conf
en choisissant les paramètres de périphérique série appropriés.
com1
, modifier /boot/grub/grub.conf
en insérant les lignes com1=115200,8n1
, console=tty0
et console=ttyS0,115200
comme indiqué.
title Red Hat Enterprise Linux 5 i386 Xen (2.6.18-92.el5xen) root (hd0, 8) kernel /boot/xen.gz-2.6.18-92.el5com1=115200,8n1
module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386console=tty0
console=ttyS0,115200
module /boot/initrd-2.6.18-92.el5xen.img
com2
, modifier /boot/grub/grub.conf
en insérant les lignes com2=115200,8n1 console=com2L
, console=tty0
et console=ttyS0,115200
comme indiqué.
title Red Hat Enterprise Linux 5 i386 Xen (2.6.18-92.el5xen) root (hd0, 8) kernel /boot/xen.gz-2.6.18-92.el5 com2=115200,8n1 console=com2L module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386 console=tty0 console=ttyS0,115200 module /boot/initrd-2.6.18-92.el5xen.img
com1
, com2
, etc.) que vous avez spécifié lors de l'étape précédente.
com2
, le paramètre console=ttyS0
sur la ligne vmlinuz
est utilisé. Le comportement de chaque port utilisé comme console=ttyS0
n'est pas un comportement Linux standard et est spécifique à l'environnement Xen.
virsh console
" ou dans la fenêtre "Serial Console" de virt-manager
. Paramétrer la console série virtuelle à l'aide de la procédure suivante :
/boot/grub/grub.conf
comme suit :
Red Hat Enterprise Linux 5 i386 Xen (2.6.18-92.el5xen) root (hd0, 0) kernel /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386 console=xvc0 initrd /boot/initrd-2.6.18-92.el5xen.img
xend
) peut être configuré pour journaliser les sorties de consoles série des invités paravirtualisés.
xend
, modifier /etc/sysconfig/xend
. Changer l'entrée :
# Log all guest console output (cf xm console) #XENCONSOLED_LOG_GUESTS=no
# Log all guest console output (cf xm console) XENCONSOLED_LOG_GUESTS=yes
/var/log/xen/console
.
virsh console
".
ttyS0
sur Linux, ou COM1
sur Windows.
/boot/grub/grub.conf
en insérant la ligne "console=tty0 console=ttys0,115200
".
title Red Hat Enterprise Linux Server (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/volgroup00/logvol00
console=tty0 console=ttys0,115200
initrd /initrd-2.6.18-92.el5.img
virsh console
".
/var/log/xen/console
.
virt-manager
or virt-install
tools on Red Hat Enterprise Linux 5, the guests configuration files are created automatically in the /etc/xen
directory.
name = "rhel5vm01" memory = "2048" disk = ['tap:aio:/var/lib/libvirt/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"
est la valeur par défaut pour le fichier de configuration. Cet exemple de fichier de configuration est pour l'invité pleinement virtualisé :
name = "rhel5u5-86_64" builder = "hvm" memory = 500 disk = ['/var/lib/libvirt/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'
virsh dumpxml
et virsh create
(ou virsh edit
) pour modifier les fichiers de configuration libvirt
(basés-XML) qui ont des fonctions de vérification d'erreurs et de vérification de sécurité.
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
. Si dom0 n'est pas réduit, vous pouvez utiliser la commande virsh setmem dom0 NewMemSize
pour vérifier la mémoire.
wrong kernel image: non-PAE kernel on a PAE
# 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: domain=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!
# xm create mySQL01 Using config file " 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
/etc/xen
directory. For example, editing the guest mySQL01
# vim /etc/xen/mySQL01
Locate the vif
entry. Assuming you are using xenbr0
as the default bridge, the proper entry should resemble the following:
# vif = ['mac=00:16:3e:49:1d:11, bridge=xenbr0',]
# xm shutdown win2k3xen12 # 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)
/etc/xen/
comprendxend
.
scripts
qui contient les scripts de pour réseaux virtuels.
/var/log/xen/
/var/lib/libvirt/images/
/proc/xen/
cat /proc/partitions
" comme ci-dessous.
# cat /proc/partitions major minor #blocks name 202 16 104857600 xvdb 3 0 8175688 hda
/etc/inittab
:
1:12345:respawn:/sbin/mingetty xvc0
Xen Virtual Ethernet
dans le système d'exploitation de l'invité. Vérifier ceci (pour Red Hat Enterprise Linux 4 et Red Hat Enterprise Linux 5) en exécutant :
cat /etc/modprobe.conf
cat /etc/modules.conf
alias eth0 xen-vnif
alias eth0 xen-vnif
) pour chaque interface paravirtualisée pour l'invité.
/etc/modprobe.conf
. Modifier /etc/modprobe.conf
et y ajouter la ligne suivante :
options loop max_loop=64
phy: block device
ou tap:aio
Pour utiliser des invités équipés de périphériques en boucle sur un système complètement virtualisé, utiliser les commandes phy: device
ou file: file
.
dom0
has not ballooned down enough to provide space for a recently created or started guest. In your /var/log/xen/xend.log
, an example error message indicating this has occurred:
[2006-11-21 20:33:31 xend 3198] DEBUG (balloon:133) Balloon: 558432 KiB free; 0 to scrub; need 1048576; retries: 20. [2006-11-21 20:33:52 xend.XendDomainInfo 3198] ERROR (XendDomainInfo:202) Domain construction failedYou can verify the amount of memory currently used by
dom0
with the command “xm list Domain-0
”. If dom0
is not ballooned down you can use the command “xm mem-set Domain-0 NewMemSize
” where NewMemSize
should be a smaller value.
# xm create testVM Using config file "./testVM". Going to boot Red Hat Enterprise Linux Server (2.6.18-1.2839.el5) kernel: /vmlinuz-2.6.18-1.2839.el5 initrd: /initrd-2.6.18-1.2839.el5.img Error: (22, 'Invalid argument')In the above error you can see that the kernel line shows that the system is trying to boot a non kernel-xen kernel. The correct entry in the example is ”
kernel: /vmlinuz-2.6.18-1.2839.el5xen
”.
/etc/grub.conf
.
kernel-xen
est installé sur votre invité, vous pouvez lancer l'invité :
xm create -c GuestName
GuestName
is the name of the guest. The previous command will present you with the GRUB boot loader screen and allow you to select the kernel to boot. You will have to choose the kernel-xen kernel to boot. Once the guest has completed the boot process you can log into the guest and edit /etc/grub.conf
to change the default boot kernel to your kernel-xen. Simply change the line “default=X
” (where X is a number starting at '0
') to correspond to the entry with your kernel-xen line. The numbering starts at '0
' so if your kernel-xen entry is the second entry you would enter '1
' as the default,for example “default=1
”.
# xm create -c va-base Using config file "va-base". Error: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERROR (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 (XendDomainInfo:1449) XendDomainInfo.destroy: domid=1 [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XendDomainInfo:1457) XendDomainInfo.destroyDomain(1)If you need to run a 32 bit or non-PAE kernel you will need to run your guest as a fully-virtualized virtual machine. The rules for hypervisor compatibility are:
Your CPU does not support long mode. Use a 32 bit distribution
. This problem is caused by a missing or incorrect pae
setting. Ensure you have an entry “pae=1
” in your guest's configuration file.
virt-manager
peut échouer au démarrage et afficher une erreur comme “Unable to open a connection to the Xen hypervisor/daemon
”. Cela est normalement dû à une saisie manquante localhost
dans le fichier /etc/hosts
. Vérifiez que vous avez bien saisi localhost
et s'il y a une saisie manquante dans /etc/hosts
, et insérez une nouvelle saisie dans localhost
si elle n'est pas présente. Un /etc/hosts
éronné peut ressembler à ce qui suit :
# 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
Applying Intel CPU microcode update: FATAL: Module microcode not found. ERROR: Module microcode does not exist in /proc/modulesAs the virtual machine is running on virtual CPUs there is no point updating the microcode. Disabling the microcode update for your virtual machines will stop this error:
/sbin/service microcode_ctl stop /sbin/chkconfig --del microcode_ctl
xm create
” cherchera un fichier de configuration dans votre répertoire courant, puis dans /etc/xen
# xm shutdown win2k3xen12 # xm create win2k3xen12 Using config file "win2k3xen12". /usr/lib64/python2.4/site-packages/xen/xm/opts.py:520: DeprecationWarning: 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 (win2k3xen12, line 1)
Enabling the virtualization extensions in BIOS
cat /proc/cpuinfo | grep vmx svm
. S'il en résulte en une sortie, alors les extensions de virtualisation sont activées. S'il n'y a pas de sortie, le paramètre des extensions de virtualisation de votre système ou le paramètre BIOS n'est peut-être pas activé.
virsh
command (where GUEST
is the guest's name):
# virsh edit GUEST
virsh edit
utilise la variable shell $EDITOR
afin de déterminer quel éditeur utiliser.
<interface type='network'>
[output truncated]
<model type='rtl8139' />
</interface>
'rtl8139'
to 'e1000'
. This will change the driver from the rtl8139 driver to the e1000 driver.
<interface type='network'>
[output truncated]
<model type='e1000'
/>
</interface>
# virsh dumpxml GUEST > /tmp/guest.xml
# cp /tmp/guest.xml /tmp/new-guest.xml # vi /tmp/new-guest.xml
<interface type='network'>
[output truncated]
<model type='e1000' />
</interface>
# virsh define /tmp/new-guest.xml # virsh start new-guest
/var/log/xen/
xend
et le processus qemu-dm.
xend.log
xend-debug.log
xen-hotplug.log
qemu-dm.PID
.log
qemu-dm
qui est démarré pour chaque invité totalement virtualisé.
PID
sera remplacé par le PID
du processus lié au qemu-dm relatif
PID
correspondant à un processus qemu-dm
particulier en utilisant la commande ps
et en regardant à quels arguments de processus qemu-dm
la machine virtuelle peut être identifiée.
.virt-manager
in the user's home
directory whom ran virt-manager. This directory will usually be ~/.virt-manager/virt-manager
.
/var/lib/libvirt/images/
/var/lib/xen/xend-db/
/etc/xen/
/etc/xen/xend-config.sxp
est la configuration principale du démon xend. Le fichier xend-config.sxp
est utilisé pour activer ou désactiver les migrations ainsi que d'autres fonctionnalités qui ne sont pas configurées par libvirt
. Utlisez les outils libvirt
pour toutes les autres fonctionnalités.
/var/lib/xen/dump/
xm dump-core
.
/proc/xen/
xen-kernel
dans les fichiers suivants :
/proc/xen/capabilities
/proc/xen/privcmd
/proc/xen/balloon
/proc/xen/xenbus
/proc/xen/xsd_port
/proc/xen/xsd_kva
# insmod xen-platform-pci.o Warning: kernel-module version mismatch xen-platform-pci.o was compiled for kernel version 2.4.21-52.EL while this kernel is version 2.4.21-50.EL xen-platform-pci.o: unresolved symbol __ioremap_R9eac042a xen-platform-pci.o: unresolved symbol flush_signals_R50973be2 xen-platform-pci.o: unresolved symbol pci_read_config_byte_R0e425a9e xen-platform-pci.o: unresolved symbol __get_free_pages_R9016dd82 [...]The solution is to use the correct RPM package for your hardware architecture for the para-virtualized drivers.
Warning: kernel-module version mismatch xen-platform-pci.o was compiled for kernel version 2.4.21-52.EL while this kernel is version 2.4.21-50.EL Warning: loading xen-platform-pci.o will taint the kernel: forced load See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module xen-platform-pci loaded, with warnings
# cd /lib/modules/`uname -r`/ # find . -name 'xen_*.ko' -print
# insmod \ /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_platform_pci.ko # insmod /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_balloon.ko # insmod /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_vnif.ko # insmod /lib/modules/'uname -r'/{LocationofPV-drivers}/xen_vbd.ko
/var/log/messages
# grep -E "vif|vbd|xen" /var/log/messages xen_mem: Initialising balloon driver vif vif-0: 2 parsing device/vif/0/mac vbd vbd-768: 19 xlvbd_add at /local/domain/0/backend/vbd/21/76 vbd vbd-768: 19 xlvbd_add at /local/domain/0/backend/vbd/21/76 xen-vbd: registered block device major 202You can also use the
lsmod
command to list the loaded para-virtualized drivers. It should output a list containing the xen_vnif
, xen_vbd
, xen_platform_pci
and xen_balloon
modules.
# lsmod|grep xen xen_vbd 19168 1 xen_vnif 28416 0 xen_balloon 15256 1 xen_vnif xen_platform_pci 98520 3 xen_vbd,xen_vnif,xen_balloon,[permanent]
type=ioemu
' part of 'vif
=' line in your guest's configuration file.
domU
refers to the guest operating systems which run on the host system (the dom0 domain).
/dev/VolGroup00/LogVol02
),
/dev/sda5
), and
/dev/sda
).
tap:aio
tap:aio
parameter sets the Xen hypervisor to use an advanced access mode designed for safety and performance. File-based, are accessed using a kernel thread and a user-space process. The tap:aio
method respects guest flush requests which makes it safer than the file
driver. The virtualization tools use tap:aio
by default for accessing file-based guest disks on the Xen Hypervisor.
ext2
et ext3
, les identificateurs de périphériques RAID, iSCSI et LUN, les adresses MAC et les identificateurs de machines virtuelles.
libvirt
.
/usr/share/doc/xen-<version-number>
/
—. est le répertoire contenant beaucoup d'informations à propos de l'hyperviseur de virtualisation partielle Xen et les outils de gestion associés, y compris un aperçu des différents exemples de configurations, des informations spécifiques au matériel et la documentation utilisateur en amont de Xen.
man virsh
et /usr/share/doc/libvirt-<version-number>
— contiennent des sous-commandes et des options pour l'utilitaire de gestion de la machine virtuelle virsh
ainsi que des informations détaillées à propos de la bibliothèque de virtualisation API libvirt
.
/usr/share/doc/gnome-applet-vm-<version-number>
— Contient de la documentation sur l'applet graphique du tableau de bord GNOME qui contrôle et gère les machines virtuelles qui sont exécutées en local.
/usr/share/doc/libvirt-python-<version-number>
— Fournit des détails sur les associations Python pour la bibliothèque libvirt
. Le paquetage libvirt-python
permet aux développeurs python de créer des programmes qui s'interfacent avec la bibliothèque de gestion de la virtualisation libvirt
.
/usr/share/doc/python-virtinst-<version-number>
— Fournit de la documentation sur la commande virt-install
qui aide au démarrage d'installations de distributions Fedora et Red Hat Enterprise Linux au sein des machines virtuelles.
/usr/share/doc/virt-manager-<version-number>
— Fournit de la documentation sur le gestionnaire de machines virtuelles qui fournit un outil graphique pour administrer les machines virtuelles.