Edición 5.8
1801 Varsity Drive
Raleigh, NC 27606-2072 USA
Phone: +1 919 754 3700
Phone: 888 733 4281
Fax: +1 919 754 3701
ftpdNegrita monoespaciado
Para ver el contenido del archivomy_next_bestselling_novelen su directorio actual de trabajo, escriba el comandocat my_next_bestselling_novelen el intérprete de comandos de shell y pulse Enter para ejecutar el comando.
Pulse Enter para ejecutar el comando.Pulse Control+Alt+F2 para cambiar a la primera terminal virtual. Pulse Control+Alt+F1 para volver a su sesión de Ventanas-X.
Negrita-monoespaciado. Por ejemplo:
Las clases de archivo relacionadas incluyenfilenamepara sistema de archivos,filepara archivos ydirpara directorios. Cada clase tiene su propio conjunto asociado de permisos.
Seleccionar → → desde la barra del menú principal para lanzar Preferencias de Ratón. En la pestaña de Botones, haga clic en la cajilla ratón de mano izquierda y luego haga clic en para cambiar el botón principal del ratón de la izquierda a la derecha (adecuando el ratón para la mano izquierda).Para insertar un caracter especial en un archivo de gedit, seleccione desde la barra del menú principal → → . Luego, desde la barra de menúes de mapa de caracteres elija → , teclee el nombre del caracter en el campo Búsqueda y haga clic en . El caracter buscado se resaltará en la Tabla de caracteres. Haga doble clic en este caracter resaltado para colocarlo en el campo de Texto para copiar y luego haga clic en el botón de . Ahora regrese a su documento y elija → desde la barra de menú de gedit.
Itálicas-negrita monoespaciado o Itálicas-negrita proporcional
Para conectar a una máquina remota utilizando ssh, tecleesshen un intérprete de comandos de shell. Si la máquina remota esnombredeusuario@dominio.nombreexample.comy su nombre de usuario en esa máquina es john, tecleessh john@example.com.El comandomount -o remountremonta el sistema de archivo llamado. Por ejemplo, para volver a montar el sistema de archivofile-system/home, el comando esmount -o remount /home.Para ver la versión de un paquete actualmente instalado, utilice el comandorpm -q. Éste entregará el resultado siguiente:paquete.paquete-versión-lanzamiento
Publican es un sistema de publicación de DocBook.
romano monoespaciado y se presentan así:
books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs
romano monoespaciado, pero se presentan y resaltan de la siguiente manera:
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.
Tabla de contenidos
NFS, FTP o 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 Sección 18.2, “SELinux y virtualización completas” for details.
yum for more information.
grub.conf file.
virtio, son dispositivos de PCI. Actualmente, los huéspedes están limitados a un máximo de 32 dispositivos de PCI. Algunos dispositivos de PCI son importantes para que el huésped se ejecute y estos dispositivos no pueden removerse. Los dispositivos predeterminados requeridos son:
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, si tiene recursos suficientes.
/etc/modprobe.conf añada la siguiente línea:
options loop max_loop=64
# rmmod loop # modprobe loop
Tabla de contenidos
yum y Red Hat Network (RHN).

virt-manager, libvirt y virt-viewer para instalación.

Personalizar los paquetes (si se requiere)

%packages de su archivo Kickstart, añada el siguiente grupo de paquetes:
%packages @xen
xen-ia64-guest-firmware
rhn_register command y siga las siguientes indicaciones.
yumxen y kernel-xen. El paquete xen contiene el hipervisor y las herramientas básicas de virtualización. El paquete kernel-xen contiene un kernel de Linux modificado que se ejecuta como un huésped de máquina virtual en el hipervisor.
xen y kernel-xen, ejecute:
# yum install xen kernel-xen
xen-ia64-guest-firmware) desde la instalación de DVD complementaria. Este paquete también se puede instalar desde RHN con el comando yum:
# yum install xen-ia64-guest-firmware
python-virtinstvirt-install para crear máquinas virtuales.
libvirtlibvirt es una biblioteca de API que interactúa con hipervisores. libvirt utiliza la infraestructura de virtualización xm y la herramienta de línea de comandos virsh para manejar y controlar las máquinas virtuales.
libvirt-pythonlibvirt.
virt-managervirt-manager, también conocido como el Administrador de máquina virtual, proporciona una herramienta gráfica para administrar máquinas virtuales. Utiliza la biblioteca libvirt como la API de administración.
# yum install virt-manager libvirt libvirt-python python-virtinst

virt-manager, libvirt y virt-viewer para instalación.

Personalizar los paquetes (si se requiere)

%packages de su archivo Kickstart, añada el siguiente grupo de paquetes:
%packages @kvm
rhn_register command y siga las siguientes indicaciones.
yumkvm. El paquete kvm contiene el módulo de kernel de KVM que proporciona el hipervisor KVM en el kernel predeterminado de Red Hat Enterprise Linux .
kvm, ejecute:
# yum install kvm
python-virtinstvirt-install para crear máquinas virtuales.
libvirtlibvirt es una biblioteca de API que interactúa con hipervisores. libvirt utiliza la infraestructura de virtualización xm y la herramienta de línea de comandos virsh para manejar y controlar las máquinas virtuales.
libvirt-pythonlibvirt.
virt-managervirt-manager, también conocido como el Administrador de máquina virtual, proporciona una herramienta gráfica para administrar máquinas virtuales. Utiliza la biblioteca libvirt como la API de administración.
# yum install virt-manager libvirt libvirt-python python-virtinst
virt-install. Ambos métodos están descritos en este capítulo.
virt-install para crear huéspedes virtualizados desde la línea de comando. virt-install, ya sea de forma interactiva o como parte de un script para automatizar la creación de las máquinas virtuales. El uso de virt-install con archivos Kickstart files permite una instalación de máquinas virtuales sin supervisión.
virt-install proporciona un número de opciones que se pueden pasar a la línea de comandos. Para ver una lista completa de opciones ejecute:
$ virt-install --help
virt-install también documenta cada opción de comando y variables importantes.
qemu-img es un comando que puede utilizarse antes de virt-install para configurar opciones de almacenaje.
--vnc option which opens a graphical window for the guest's installation.
rhel3support, desde un CD-ROM, con redes virtuales y con un archivo de 5GB basado en imagen de dispositivo de bloque. Este ejemplo utiliza el hipervisor de 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, también conocido como un Administrador de máquina virtual es una herramienta gráfica para crear y administrar los huéspedes virtualizados.
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 no es el kernel que se está ejecutando en este momento.

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 Sección 18.2, “SELinux y virtualización completas” 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. Capítulo 8, Procedimiento de instalación de sistema operativo de huésped contains step-by-step instructions to installing a variety of common operating systems.
Crear un nuevo puente
/etc/sysconfig/network-scripts/. Este ejemplo crea un archivo llamado ifcfg-installation, el cual crea un puente llamado 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 para ver información sobre puentes de red en el sistema.
# brctl show bridge name bridge id STP enabled interfaces installation 8000.000000000000 no virbr0 8000.000000000000 yes
virbr0 es un puente por defecto utilizado por libvirt para Traducción de dirección de red (NAT) en el dispositivo Ethernet predeterminado.
Añada una interfaz al nuevo puente
BRIDGE al archivo de configuración con el nombre del puente creado en los pasos anteriores.
# 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
Configuración de seguridad
iptables para permitir que todo el tráfico sea reenviado a través del puente.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables. En /etc/sysctl.conf añada las siguientes líneas:
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
Reiniciar libvirt antes de la instalación
libvirt.
# service libvirtd reload
virt-install añada el parámetro de instalación --network=bridge:installation donde installation es el nombre de su puente. Para instalaciones de PXE utilice el parámetro --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 \
Seleccionar PXE

Seleccionar el puente

Iniciar la instalación

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 Sección 7.2, “Creación de huéspedes con virt-manager”.
virt-install. La opción --vnc muestra la instalación gráfica. El nombre de huésped en el ejemplo es rhel5PV, el archivo de imagen de disco es rhel5PV.dsk y el espejo local de un árbol de instalación de Red Hat Enterprise Linux 5 es ftp://10.1.1.1/trees/RHEL5-B2-Server-i386/. Remplace estos valores por valores exactos para su sistema y red.
# 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. El comando rhn_register requiere acceso de root.












virt-install in Sección 8.1, “Instalación de Red Hat Enterprise Linux 5 como huésped para-virtualizado”. If you used the default example the name is rhel5PV.
virsh para volver a arrancar el huésped:
# virsh reboot rhel5PVvirt-manager, seleccionar el nombre de su huésped, y hacer clic en , luego haga clic en .








kdump. The use of kdump is unsupported on para-virtualized guests.







yum command or RHN. Click .




Open virt-manager
virt-manager. Lance la aplicación del desde el menú y el submenú . También, puede ejecutar el comando virt-manager como root.
Seleccione el hipervisor
qemu.
Inicie el asistente de la nueva máquina virtual

Nombre de la máquina virtual

Elija un método de virtualización

Seleccione el método de instalación

Ubicar el medio de instalación

/var/lib/libvirt/images/ directory. Any other location may require additional configuration for SELinux, refer to Sección 18.2, “SELinux y virtualización completas” for details.
Configuración de almacenaje
/var/lib/libvirt/images/ directory. Assign sufficient space for your virtualized guest and any applications the guest requires.

Configuración de redes

Asignación de memoria y CPU

Verificar e iniciar una instalación de un huésped

Instalación de Red Hat Enterprise Linux
Iniciar virt-manager
Dar un nombre al sistema virtual

Elegir el método de virtualización

Elegir el método de instalación

/var/lib/libvirt/images/ directory. Any other location may require additional configuration for SELinux, refer to Sección 18.2, “SELinux y virtualización completas” 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 Sección 18.2, “SELinux y virtualización completas” for details.

/var/lib/libvirt/images/. Si está utilizando una ubicación diferente (tal como /images/ en este ejemplo), añada la política de SELinux y vuélvala a etiquetar antes de continuar con la instalación (más adelante en el documento encontrará información sobre cómo modificar su política de SELinux).
Configurar la red



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 WindowsGuestWindowsGuest es el nombre de su máquina virtual.

virsh reboot Nombre de_huésped_Windows. Al reiniciar la máquina virtual, el mensaje Setup is being restarted muestra:




virt-install command. virt-install can be used instead of virt-manager This process is similar to the Windows XP installation covered in Sección 8.3, “Instalación de Windows XP como huésped completamente virtualizado”.
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 como el Tipo de computador. El cambio de Tipo de computador es requerido por los huéspedes virtualizados de Windows Server 2003.




Abrir virt-manager
virt-manager. Lance la aplicación desde el menú de y el submenú . De modo alterno, puede ejecutar el comando virt-manager como root.
Seleccionar el hipervisor
qemu.
Iniciar el asistente de la nueva máquina virtual

Dar nombre a la máquina virtual

Elegir el método de virtualización

Seleccionar el medio de instalación

Ubicar el medio de instalación


/var/lib/libvirt/images/ directory. Any other location may require additional configuration for SELinux, refer to Sección 18.2, “SELinux y virtualización completas” for details.
Establecer almacenamiento
/var/lib/libvirt/images/ directory. Assign sufficient space for your virtualized guest and any applications the guest requires.

Configurar red

Asignar memoria y CPU

Verificar e iniciar la instalación de huésped

Instalar Windows

Tabla de contenidos
/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, el cual ejecuta una instalación totalmente virtualizada de Red Hat Enterprise Linux con una imagen ubicada en /var/lib/libvirt/images/rhel5FV.img. El hipervisor Xen se utiliza en este ejemplo.
virsh en un huésped en ejecución.
# 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. Los archivos dispersos no se recomiendan, debido a que presentan problemas con la integridad de datos y el rendimiento. Estos archivos se crean mucho más rápido y pueden utilizarse como prueba, pero no deben utilizarse en entornos de producción.
# 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 y el archivo se guarda en el directorio principal de usuario.
# virsh dumpxmlGuest1> ~/Guest1.xml
Guest1.xml en este ejemplo) en un editor de texto. Busque los elementos <disk>, los cuales describen dispositivos de almacenaje. El siguiente es un ejemplo de un elemento de disco:
<disk type='file' device='disk'>
<driver name='tap' type='aio'/>
<source file='/var/lib/libvirt/images/Guest1.img'/>
<target dev='xvda'/>
</disk>
<disk>. Asegúrese de especificar un nombre de dispositivo para el dispositivo de bloque virtual, el cual no está aún en el archivo de configuración. El siguiente es un ejemplo de una entrada que añade un archivo, llamado FileName.img, como un archivo de contenedor de almacenamiento:
<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 para una nueva partición.
# fdisk /dev/sdb Command (m for help):
p para una partición primaria.
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 para una partición de Linux.
Hex code (type L to list codes): 83
Command (m for help):wCommand (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 y si se requiere, persistencia en el host.
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 al comando para dispositivos de disquete.
# virsh attach-diskmyguest/dev/sdb1sdc--driver tap --mode readonly
/dev/sdb on Linux or D: drive, or similar, on Windows. This device may require formatting.
multipath must use Configuración de ruta única. Systems running multipath can use Configuración de multi-rutas.
udev. Only use this procedure for hosts which are not using multipath.
/etc/scsi_id.config.
options=-b sea línea comentada.
# options=-b
options=-g
udev para suponer que todos los dispositivos SCSI conectados retornen un UUID.
scsi_id -g -s /block/sd*. Por ejemplo:
# scsi_id -g -s /block/sd* 3600a0b800013275100000015427b625e
/dev/sdc.
scsi_id -g -s /block/sd* sea idéntica desde el computador que accede al dispositivo.
20-names.rules en el directorio /etc/udev/rules.d. Añada nuevas reglas a este archivo. Todas las reglas se añaden al mismo archivo utilizando el mismo formato. Las reglas siguen el siguiente formato:
KERNEL=="sd[a-z]", BUS=="scsi", PROGRAM="/sbin/scsi_id -g -s /block/%k", RESULT="UUID", NAME="devicename"
UUID y devicename por el UUID recibido anteriormente y el nombre dado para el dispositivo. Esta es una regla para el ejemplo anterior:
KERNEL="sd*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", RESULT="3600a0b800013275100000015427b625e", NAME="rack4row16"
udev ahora busca todos los dispositivos llamados /dev/sd* para el UUID en la regla. Una vez el dispositivo coincidente esté conectado al sistema se le asigna un nombre desde la regla. En un dispositivo con un UUID de 3600a0b800013275100000015427b625e aparecería como /dev/rack4row16.
/etc/rc.local:
/sbin/start_udev
/etc/scsi_id.config, /etc/udev/rules.d/20-names.rules, y /etc/rc.local para los hosts relevantes.
/sbin/start_udev
multipath se utiliza para sistemas con más de una ruta física desde el computador a los dispositivos de almacenaje. multipath ofrece tolerancia a fallos, recuperación de fallos y rendimiento mejorado para dispositivos de almacenamiento de red conectados a sistemas de 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. En el ejemplo a continuación 4 dispositivos están definidos en /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 ejecución, se podrá ver un dispositivo de puente aislado. Este dispositivo no tiene interferencias físicas agregadas desde que utiliza NAT y reenvío IP para conectarse fuera del mundo. No añada nuevas interfaces.
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes
libvirt añade reglas iptables que permiten el tráfico hacia y desde huéspedes añadidos al dispositivo virbr0 en las cadenas INPUT, FORWARD, OUTPUT y POSTROUTING. Luego, libvirt intenta activar el parámetro ip_forward. Otras aplicaciones pueden desactivar ip_forward, por eso la mejor opción es añadir lo siguiente a /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 y cambiando la línea:
(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 define la interfaz de red física establecida como parte de un puente:
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 llamado ifcfg-br0 o parecido. El parámetro br0 es el nombre del puente, éste puede ser cualquier cosa, siempre y cuando el nombre del archivo sea el mismo del parámetro de 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 para permitir que todo el tráfico sea reenviado a través del puente.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables. En /etc/sysctl.conf añada las siguientes líneas:
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. No intente conectar el dispositivo físico a virbr0. El puente virbr0 es únicamente para conectividad de Traducción de dirección de redes (NAT).
virsh (Capítulo 25, Administración de huéspedes con virsh) and virt-manager (Capítulo 26, Manejo de huéspedes con un Administrador de máquinas virtuales (virt-manager)). Those chapters provide a detailed description of the networking configuration tasks using both tools.
system-config-network. Como alternativa, cree un nuevo archivo de configuración llamado ifcfg-ethX en el directorio /etc/sysconfig/network-scripts/ donde X es cualquier número que no esté en uso aún. El siguiente es un ejemplo de archivo de configuración para una segunda interfaz de red llamada 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, a /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 funciona con dispositivos de red virtuales predeterminados en Red Hat Enterprise Linux 5.1 y posteriores.
<interface type='network'> <mac address='AA:AA:AA:AA:AA:AA'/> <source network='default'/> <target dev='vnet0'/> <model type='virtio'/> </interface>
xm, los dispositivos de red virtuales se etiquetan "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 a dummy0, para poder utilizar las redes incluso cuando no esté conectado a una red física. Edite /etc/xen/xend-config.sxp para incluir la entrada netdev=dummy0:
(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 y crear un enlace blando para /etc/rc3.d/S99xenLaptopNAT. Así se inicia automáticamente NAT en tiempo de arranque.
#!/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 en un portátil ejecutando virtualización:
dnsmasq.tgz. The tar archive includes the following files:
nm-dnsmasq puede utilizarse como un script despachador para NetworkManager. Se ejecutará cada vez que NetworkManager detecte un cambio en conectividad y fuerce un reinicio/carga de dnsmasq. Este archivo se debe copiar a /etc/NetworkManager/dispatcher.d/nm-dnsmasq
xenDNSmasq puede ser utilizado como el arranque principal o el cierre del script para /etc/init.d/xenDNSmasq
dnsmasq.conf es una muestra de un archivo de configuración para /etc/dnsmasq.conf
dnsmasq es la imagen binaria para /usr/local/sbin/dnsmasq
/usr/local/sbin/dnsmasq), necesitará editar su archivo de configuración dnsmasq. El archivo se localiza en /etc/dnsmaqs.conf
interface permite a dnsmasq estar atento a solicitudes DHCP y DNS sólo en interfaces especificadas. Pueden ser interfaces tontas, pero no interfaces públicas como también la interfaz local de loopback. Añada otra línea de interface para más de una interfaz. interface=dummy0 es un ejemplo que escucha en la interfaz dummy0.
dhcp-range para habilitar al servidor integrado DHCP, se necesita proveer el rango de direcciones disponibles para arrendamiento y opcionalmente, un tiempo de arrendamiento. Si se tiene más de una red, será necesario repetir esto para cada red en la cual se desea proporcionar el servicio DHCP. Un ejemplo sería (para red 10.1.1.* y tiempo de arrendamiento de 12horas): dhcp-range=10.1.1.10,10.1.1.50,255.255.255.0,12h
dhcp-option para sobrescribir la ruta predeterminada proporcionada por dnsmasq, la cual supone que la ruta es la misma máquina que está ejecutando dnsmasq. Un ejemplo sería dhcp-option=3,10.1.1.1
xenDNSmasq para /etc/init.d
chkconfig --add xenDNSmasq
chkconfig --levels 345 xenDNSmasq on
dnsmasq para reiniciar cada vez que NetworkManager detecte un cambio en conectividad, se puede usar el script proporcionado nm-dnsmasq.
nm-dnsmasq a /etc/NetworkManager/dispatcher.d/
dnsmasq también detectará cambios en su archivo /etc/resolv.conf y los volverá a cargar automáticamente (es decir, si usted inicia una sesión VPN, por ejemplo).
nm-dnsmasq y xenDNSmasq también configurarán NAT si usted tiene huéspedes virtualizados en una red oculta para permitirles acceder a la red pública.
pv-on-hvm, en el paquete de kernel predeterminado. Es decir, que los controladores para-virtualizados están disponibles para huéspedes de Red Hat Enterprise Linux 4.7 y más recientes o 5.3 y posteriores.
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
| Arquitectura de kernel | Red Hat Enterprise Linux 3 | Red Hat Enterprise Linux 4 | Red Hat Enterprise Linux 5 |
|---|---|---|---|
| athlon | Soportadas (AMD) | ||
| athlon-SMP | Soportadas (AMD) | ||
| i32e | Soportadas(Intel) | ||
| i686 | Soportadas(Intel) | Soportadas | Soportadas |
| i686-PAE | Soportadas | ||
| i686-SMP | Soportadas(Intel) | Soportadas | |
| i686-HUGEMEM | Soportadas(Intel) | Soportadas | |
| x86_64 | Soportadas (AMD) | Soportadas | Soportadas |
| x86_64-SMP | Soportadas (AMD) | Soportadas | |
| x86_64-LARGESMP | Soportadas | ||
| Itanium (IA64) | Soportadas |
# rpm -q --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' kernel
kernel-PAE-2.6.18-53.1.4.el5.i686
GRUBGRUB), o un disco que contiene las imágenes de kernel initrd. Es decir, cualquier disco que contenga el directorio o la partición de /boot no puede usar controladores de dispositivos de bloque para-virtualizados.
xen-pci-platform fallará.
| Tipo de kernel de huésped | Tipo de kernel de huésped requerido |
|---|---|
| ia32e (UP y SMP) | x86_64 |
| i686 | i686 |
| i686-SMP | i686 |
| i686-HUGEMEM | i686 |
| Tipo de kernel de huésped | Tipo de kernel de huésped requerido |
|---|---|
| athlon | i686 |
| athlon-SMP | i686 |
| x86_64 | x86_64 |
| x86_64-SMP | x86_64 |
MBR y el gestor de arranque (GRUB), y para la partición de /boot. Esta partición puede ser muy pequeña, puesto que sólo necesita la capacidad suficiente para guardar la partición de /boot.
/, /usr) o volúmenes lógicos.
/boot utilizará los controladores de dispositivos de bloque para-virtualizados.
rpm o yum para instalar los paquetes. La utilidad rpm instalará los cuatro nuevos módulos de kernel en /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 YourGuestNameYourGuestName 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 para su arquitectura de hardware y variante de kernel a su sistema operativo de huésped.
rpm para instalar los paquetes de RPM. Asegúrese de haber identificado correctamente qué paquete necesita para su variante de sistema operativo huésped y arquitectura.
[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 al instalar los módulos del controlador binario debido a MODVERSIONS de Red Enterprise Linux está habilitado. Estas advertencias pueden pasarse por alto.
/etc/modules.conf y asegúrese de tener un alias para eth0 como el de abajo. Si está planeando configurar interfaces múltiples, añada una línea para cada interfaz.
alias eth0 xen-vnif
/etc/rc.local y añada la línea:
insmod /lib/modules/'uname -r'/extra/xenpv/%release/xen-vbd.o
#shutdown -h now” dentro del huésped).
/etc/xen/YourGuestName with a text editor, performing the following changes:
type=ioemu” de la entradas “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 YourGuestNameYourGuestName 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 y modversions en Red Hat Enterprise Linux 3. Para insertar el módulo, ejecute el siguiente comando:
insmod xen_vbd.ko
xen-vbd. Los pasos a continuación cubren cómo crear y registrar los dispositivos de bloque para-virtualizados.
#!/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 para el sistema.
[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 dentro del huésped para montar los dispositivos durante la secuencia de arranque. Añada las siguientes líneas:
/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 y modversions para su variante de arquitectura y kernel de hardware de su sistema operativo de huésped.
rpm para instalar los paquetes RPM. Asegúrese de haber identificado correctamente el paquete que necesita para su variante de sistema operativo de huésped y arquitectura. Se requiere un 'module-init-tools' actualizado para este paquete, el cual está disponible con el kernel de Red Hat Enterprise Linux 4-6-z o más reciente.
[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” dentro del huésped).
/etc/xen/YourGuestsName de la siguiente manera:
type=ioemu” desde la entrada “vif=”.
xen-vbd).
disk=” en el archivo de configuración de huésped. La entrada original “disk=” podría verse como la entrada siguiente.\t
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”para el dispositivo para-virtualizado si se utiliza una imagen basada en archivo.
virsh:
# virsh start YourGuestNamekudzu le pedirá "Mantener o eliminar el dispositivo de red Realtek"y "Configurar el dispositivo de puente-xen". Debe configurar xen-bridge y eliminar el dispositivo de red 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 para el sistema.
[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 dentro del huésped para montar los dispositivos durante la secuencia de arranque. Añada las siguientes líneas:
/dev/xvdb1 /mnt/pvdisk_p1 ext3 defaults 1 2 /dev/xvdb2 /mnt/pvdisk_p2 ext3 defaults 1 2
xen-vbd puede que no se cargue automáticamente. Ejecute el siguiente comando en el huésped, sustituyendo %release con la versión correcta para controladores para-virtualizados.
# insmod /lib/modules/'uname -r'/weak-updates/xenpv/%release/xen_vbd.ko
#shutdown -h now” dentro del huésped).
/etc/xen/<Your GuestsName> así:
type=ioemu” de la entrada “vif=”.
Xen-vbd).
disk=” en archivo de configuración de huésped. La entrada original de “disk=” podría se también como la siguiente entrada.
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” para el dispositivo para-virtualizado si se utiliza una imagen basada en archivo.
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 para el sistema.
[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 dentro del huésped para montar los dispositivos durante la secuencia de arranque. Añada las siguientes líneas:
/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.
8139cp8139tooe1000
/etc/sysconfig/network-scripts directory.
xen_emul_unplug=never
virt-manager abra la ventana de la consola para el huésped e ingrese como root.
/etc/modprobe.conf que contiene la línea “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 Sección 36.4, “Cargar manualmente los controladores para- virtualizados”.
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 remplazando YourGuestName por su nombre de huésped.
vif = [ "mac=00:16:3e:2e:c5:a9,bridge=xenbr0" ]
vif=” del archivo de configuración, similar a la siguiente:
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 en Red Hat Enterprise Linux 3 o /etc/modprobe.conf en Red Hat Enterprise Linux 4 y Red Hat Enterprise Linux 5. Añada un alias a cada nueva interfaz agregada.
alias eth1 xen-vnif
# ifconfig eth1
redhat-config-network en Red Hat Enterprise Linux3 o system-config-network en Red Hat Enterprise Linux 4 y Red Hat Enterprise Linux 5.
/etc/xen/YourGuestName remplazando YourGuestName por el nombre de su huésped. La entrada original puede verse como la siguiente:
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w"]
disk=” en el archivo de configuración. Las entidades de almacenaje que utilizan el controlador para-virtualizado se parecen a la entrada de abajo. El parámetro “tap:aio” le ordena al hipervisor utilizar el controlador para-virtualizado.
disk = [ "file:/var/lib/libvirt/images/rhel5_64_fv.dsk,hda,w",
"tap:aio:/var/lib/libvirt/images/UserStorage1.dsk,xvda,w" ]
disk=” como una lista separada por comas.
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
xvdb” disponible para su sistema.
/etc/fstab dentro del huésped para montar los dispositivos y particiones en tiempo de arranque.
# 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
Descargar los controladores
yum command.
# yum install virtio-win
virtio-win.iso, en el directorio /usr/share/virtio-win/.
Instale los controladores para-virtualizados
virt-manager para montar una imagen de CD-ROM para un huésped de a Windows” to add a CD-ROM image with virt-manager and then install the drivers.
virt-manager para montar una imagen de CD-ROM para un huésped de a 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 como un disquete.
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 Sección 13.4, “Uso de controladores KVM para-virtualizados para nuevos dispositivos”.
<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 o virsh attach-interface se pueden utilizar para añadir dispositivos mediante los controladores para-virtualizados.
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 (Sección 14.1, “Adding a PCI device with virsh” - Step 5);
virt-manager (Sección 14.2, “Adding a PCI device with virt-manager”); or
virt-install (Sección 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 Paso 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 se deben minimizar los efectos del desplazamiento del reloj en todos los casos
constant_tsc está presente. Para determinar si su CPU tiene el indicador constant_tsc, ejecute el siguiente comando:
$ cat /proc/cpuinfo | grep constant_tsc
constant_tsc. Si no hay ninguna salida siga las instrucciones dadas a continuación.
constant_tsc, inhabilite todas las funciones (BZ#513138). Cada sistema tiene varios contadores que sirven para controlar el tiempo. El TSC no es estable en el host, lo cual se debe, algunas veces, a cambios de cpufreq, estado deep C, o migración a un host con un TSC más rápido. Para detener al kernel con estados deep C, añada "processor.max_cstate=1" a las opciones de arranque del kernel al archivo grub.conf en el host:
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 (sólo necesario en sin constant_tsc) editando el archivo de configuración /etc/sysconfig/cpuspeed y cambiando las variables MIN_SPEED y MAX_SPEED a la frecuencia más alta disponible. Los límites válidos se pueden encontrar en los archivos /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies.
| Red Hat Enterprise Linux | Parámetros adicionales de kernel de huésped |
|---|---|
| 5.4 AMD64/Intel 64 con el reloj para-virtualizado | No se requieren parámetros adicionales |
| 5.4 AMD64/Intel 64 sin el reloj para-virtualizado | divider=10 notsc lpj=n |
| 5.4 x86 con el reloj para-virtualizado | No se requieren parámetros adicionales |
| 5.4 x86 sin el reloj para-virtualizado | 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 | No se requieren parámetros adicionales |
| 3.9 x86 | No se requieren parámetros adicionales |
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 utiliza un directorio diferente para las imágenes de máquina virtual, asegúrese de añadir el directorio a su política de SELinux y de etiquetarlo antes de iniciar la instalación.
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 en el grupo de volumen denominado volumegroup.
# lvcreate -nNewVolumeName-L5G volumegroup
NewVolumeName con un sistema de archivos que soporta atributos, tales como ext3.
# mke2fs -j /dev/volumegroup/NewVolumeName
/etc, /var, /sys) o en directorios principales (/home o /root). Este ejemplo utiliza un directorio llamado /virtstorage
# mkdir /virtstorage
# mount /dev/volumegroup/NewVolumeName /virtstoragesemanage fcontext -a -t xen_image_t "/virtstorage(/.*)?"
semanage fcontext -a -t virt_image_t "/virtstorage(/.*)?"
/etc/selinux/targeted/contexts/files/file_contexts.local, el cual hace el cambio persistente. La línea añadida puede ser similar a ésta:
/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 puede establecer el xend al modo ilimitado después de reiniciar el demonio. Es mejor desactivar la protección para un solo demonio que para todo el sistema. Es aconsejable que no vuelva a etiquetar los directorios como xen_image_t, los cuales utilizará en otras partes.
| 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. A continuación se presentan los parámetros que puede activar o desactivar en el archivo de configuración xend-config.sxp.
| Ítem | Descripción |
|---|---|
|
(console-limit)
|
Determines the console server's memory buffer limit and assigns that limit on a per domain basis.
|
|
(min-mem)
|
Determina el número mínimo de megabytes reservados para domain0 (si el valor ingresado es 0, el valor no cambia).
|
|
(dom0-cpus)
|
Determina el número de CPU que domain0 usa (al menos 1 CPU es asignada por defecto).
|
|
(enable-dump)
|
Si está habilitado, cuando se presenta una falla Xen crea un archivo de volcado (el valor predeterminado es 0).
|
|
(external-migration-tool)
|
Determina el script o la aplicación que controla la migración de dispositivos externos. Los scripts deben residir en el directorio
/etc/xen/scripts/external-device-migrate.
|
|
(logfile)
|
Determina la ubicación del archivo del registro (por defecto está en
/var/log/xend.log).
|
|
(loglevel)
|
Filtra los valores para los modos de registro: DEBUG, INFO, WARNING, ERROR o CRITICAL (por defecto es DEBUG).
|
|
(network-script)
|
Determina el script que activa el entorno de red. Los scripts deben residir en el directorio
/etc/xen/scripts/.
|
|
(xend-http-server)
|
Activa el servidor de administración de paquetes de flujo http (el valor predeterminado es 'no').
|
|
(xend-unix-server)
|
Activa el servidor de socket de dominio Unix. El servidor de socket es un punto de comunicación que maneja conexiones de red de bajo nivel y acepta o rechaza conexiones entrantes. El valor predeterminado es 'Yes'.
|
|
(xend-relocation-server)
|
Activa el servidor de ubicación para las migraciones entre máquinas (el valor por defecto es no).
|
|
(xend-unix-path)
|
Determina la ubicación a donde el comando
xend-unix-server envía mensajes de salida (el valor por defecto es /var/lib/xend/xend-socket)
|
|
(xend-port)
|
Determina el puerto que el servidor de administración http utiliza (el valor predeterminado es 8000).
|
|
(xend-relocation-port)
|
Determina el puerto que el servidor de ubicación utiliza (el valor predeterminado es 8002).
|
|
(xend-relocation-address)
|
Determina las direcciones de host permitidas para migración. El valor predeterminado es el de
xend-address.
|
|
(xend-address)
|
Determina la dirección a la cual el servidor de socket del dominio está vinculado. El valor predeterminado permite todas las conexiones.
|
service xend start
service xend stop
service xend restart
service xend status
xend en el tiempo de arranquechkconfig para añadir xend al initscript.
chkconfig --level 345 xend
xend ahora iniciará en los niveles de ejecución 3, 4 y 5.
virsh migrate.
# virsh migrateGuestNamelibvirtURI
--live para el comando virsh migrate.
# virsh migrate--liveGuestNamelibvirtURI
/etc/xen/xend-config.sxp. Por defecto, la migración está desactivada, ya que puede ser un peligro potencial de seguridad si no está configurada correctamente. Abrir el puerto de migración permite a un host sin autorización iniciar una migración o conectarse a los puertos de migración. La autenticación y autorización no están configuradas para solicitudes de migración y el único mecanismo de control se basa en nombres de hosts y direcciones IP. Asegúrese de que el puerto de migración no tenga acceso a hosts no autorizados.
/etc/xen/xend-config.sxp para habilitar la migración. Modifique los valores, cuando sea necesario, y quite los comentarios (el símbolo #) que preceden a los siguientes parámetros:
(xend-relocation-server yes)no. Cambie el valor de xend-relocation-server a yes para habilitar la migración.
(xend-relocation-port 8002)(xend-relocation-port), especifica el puerto que xend debe usar para la interfaz de reubicación, si xend-relocation-server está establecido a yes
xend-relocation-port debe estar en ambos sistemas.
(xend-relocation-address '')(xend-relocation-address) es la dirección donde el xend escucha comandos de migración en la conexión relocation-socket si xend-relocation-server se establece.
(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
(xend-relocation-hosts-allow) debe ser una secuencia de expresiones regulares separadas por espacios. Cualquier host con un nombre de dominio totalmente cualificado o una dirección IP coincidente con una de las expresiones regulares, se acepta.
(xend-relocation-hosts-allow):
(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
# service xend restart
et-virt07 y et-virt08. Ambos servidores utilizan eth1 como la interfaz de red predeterminada, por lo tanto, están usando xenbr1 como puente de red Xen. Se utiliza un disco SCSI conectado localmente (/dev/sdb) en el servidor et-virt07 para almacenamiento compartido con el NFS.
# mkdir /var/lib/libvirt/images # mount /dev/sdb /var/lib/libvirt/images
/var/lib/libvirt/images/, exporte únicamente /var/lib/libvirt/images/ y no/var/lib/xen/, ya que este directorio es utilizado por el demonio xend y otras herramientas. Si comparte /var/lib/xen/ ocasionará una conducta imprevisible.
# 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 starttestvm1Domaintestvm1started
[et-virt07 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1 blocked
[et-virt07 images]# time virsh savetestvm1testvm1.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. Puede agregar el comando time para ver cuánto tiempo se toma la migración:
[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 a et-virt08. Inicie una migración de et-virt07 a 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 verifique en et-virt08 si la máquina virtual ha iniciado:
[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). La migración en vivo se puede hacer con el mismo comando. Sin embargo, hay modificaciones adicionales que se deben llevar a cabo en el archivo de configuración xend-config. Este ejemplo identifica las entradas que deben ser modificadas para asegurar una migración exitosa:
(xend-relocation-server yes)(xend-relocation-port 8002)xend utiliza para la migración. Utilice este valor a menos que su entorno de red requiera un valor específico. Remueva el símbolo de comentario para activarlo.
(xend-relocation-address )xend-relocation-server. El hipervisor Xen sólo escucha el tráfico de migración de red en una interfaz determinada.
(xend-relocation-hosts-allow )(xend-relocation-hosts-allow- '^localhost\\.localdomain$' )>
virsh. El comando migrate acepta parámetros en el siguiente formato:
# virsh migrate --live GuestName DestinationURLGuestName representa el nombre del huésped que usted quiere migrar.
DestinationURL es la URL o el nombre de host del sistema de destino. El sistema de destino debe ejecutar la misma versión de Red Hat Enterprise Linux, estar usando el mismo hipervisor y tener a libvirt en ejecución.
test1.example.com a test2.example.com. Cambie los nombres de host para su entorno. Este ejemplo migra una máquina virtual llamada RHEL4test.
Verificar si el huésped está ejecutándose
test1.example.com, verifique si RHEL4test se está ejecutando:
[root@test1 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
Migrar el huésped
test2.example.com. Añada /system al final de la URL de destino para decirle a libvirt que usted necesita acceso total.
# virsh migrate --live RHEL4test qemu+ssh://test2.example.com/systemEsperar
virsh sólo reporta errores. El huésped continúa ejecutándose en el host fuente hasta migrar completamente.
Verificar si el huésped ha llegado al host de destino
test2.example.com, verifique si RHEL4test se está ejecutando:
[root@test2 ~]# virsh list Id Name State ---------------------------------- 10 RHEL4 running
virt-manager.













ssh o TLS y SSL.
libvirt en túnel en conexión SSH para administrar máquinas remotas. Toda la autenticación se realiza a través de la criptografía de llave pública SSH y contraseñas y frases de acceso reunidas por el agente local SSH. Además la consola VNC para cada máquina virtual de huésped es puesta en túnel a través de 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 y SSH sean configurados, debe poder acceder y administrar las máquinas virtuales de forma remota. También podrá tener acceso a los huéspedes con VNC en este punto.
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. Elimine el comentario en el parámetro de configuración (vnc-tls 1) en el archivo de configuración.
/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 y virsh libvirt en TLS, los certificados CA y de cliente se deben ubicar en /etc/pki. Para mayor información, consulte http://libvirt.org/remote.html
virt-manager user interface, use the '' transport mechanism option when connecting to a host.
virsh, el URI tiene el siguiente formato:
qemu://hostname.guestname/system para KVM.
xen://hostname.guestname/ para Xen.
$HOME/.pki, es decir en los tres archivos siguientes:
ca-cert.pem.
libvirt-vnc o clientcert.pem.
libvirt-vnc o clientkey.pem.
libvirt soporta los siguientes modos de transporte:
/var/run/libvirt/libvirt-sock y /var/run/libvirt/libvirt-sock-ro (para conexiones de sólo lectura).
libvirtd) debe estar ejecutándose en una máquina remota. El puerto 22 debe estar abierto para acceso de SSH. Se debe utilizar una clase de administración de llave SSH (por ejemplo, la utilidad de ssh-agent) de lo contrario, se le pedirá una contraseña.
ext se utiliza para cualquier programa externo que pueda hacer una conexión a una máquina remota por medios que están fuera del ámbito de libvirt. Este parámetro no tiene soporte.
virsh y libvirt para conectar a un host remoto. Los URI también se utilizan con el parámetro --connect para que el comando virsh ejecute comandos sencillos o migraciones en hosts remotos.
driver[+transport]://[username@][hostname][:port]/[path][?extraparameters]
towada, mediante el transporte SSH y el nombre de usuario ccurran.
xen+ssh://ccurran@towada/
towada mediante 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 mediante SSH.
qemu+ssh://towada/system
qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
test+tcp://10.1.1.10:5000/default
| Nombre | Modo de transporte | Descripción | Uso de ejemplo |
|---|---|---|---|
| nombre | todos los modos | El nombre pasado a la función remota virConnectOpen. El nombre se forma generalmente al eliminar transporte, nombre de host, número de puerto, nombre de usuario y parámetros adicionales desde el URI remoto, pero en algunos casos muy complejos puede ser mejor proporcionar explícitamente el nombre. | name=qemu:///system |
| comando | ssh y ext | El comando externo. Para transporte ext este comando es requerido. Para ssh el predeterminado es ssh. La ruta es buscada por el comando. | command=/opt/openssh/bin/ssh |
| socket | unix y ssh | La ruta al socket de dominio de UNIX, la cual sobrescribe la predeterminada. Para transporte ssh, pasa al comando netcat remoto (ver netcat). | socket=/opt/libvirt/run/libvirt/libvirt-sock |
| netcat | ssh |
El comando
netcat sirve para conectar sistemas remotos. El parámetro predeterminado de netcat utiliza el comando nc. Para transporte SSH, libvirt construye un comando SSH de la siguiente manera:
Los parámetros
port, username y hostname se pueden especificar como parte del URI remoto. command, netcat y socket surgen de parámetros adicionales.
| 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 se establece a un valor de no-cero, ssh deja de pedir la contraseña si no puede ingresar automáticamente a una máquina remota (para usar el agente ssh o similar). Utilícelo cuando no tenga acceso a la terminal - por ejemplo, en programas gráficos que utilizan libvirt. | no_tty=1 |
Tabla de contenidos
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 es una herramienta de línea de comando para administrar a los huéspedes y al hipervisor.
virsh se crea en la API de administración libvirt y funciona como una alternativa para el comando xm y el Administrador de huésped gráfico (virt-manager). virsh puede ser utilizado en modo de sólo lectura por usuarios sin privilegios. Se puede utilizar virsh para ejecutar scripts para las máquinas de huésped.
| Comando | Descripción |
|---|---|
help
| Imprime información de ayuda básica. |
list
| Lista todos los huéspedes. |
dumpxml
| Entrega el archivo de configuración XML para el huésped. |
create
| Crea un huésped desde un archivo de configuración XML e inicia el nuevo huésped. |
start
| Inicia un huésped inactivo. |
destroy
| Obliga a un huésped a detenerse. |
define
| Entrega un archivo de configuración XML para un huésped. |
domid
| Displays the guest's ID. |
domuuid
| Displays the guest's UUID. |
dominfo
| Muestra información de huésped. |
domname
| Displays the guest's name. |
domstate
| Muestra el estado de un huésped. |
quit
| Sale de la terminal interactiva. |
reboot
| Reinicia un huésped. |
restore
| Restaura una sesión guardada anteriormente en un archivo. |
resume
| Reanuda un huésped en pausa. |
save
| Guarda el estado de un huésped en un archivo |
shutdown
| Apaga un huésped de forma apropiada. |
suspend
| Pone en pausa a un huésped. |
undefine
| Borra todos los archivos asociados con un huésped. |
migrate
| Migra un huésped a otros host. |
virsh administran los recursos de huésped e hipervisor:
| Comando | Descripción |
|---|---|
setmem
| Establece la memoria asignada para un huésped. |
setmaxmem
| Establece el límite máximo de memoria para el hipervisor. |
setvcpus
| Cambia el número de CPU virtuales asignadas a un huésped. |
vcpuinfo
| Muestra información de CPU virtual sobre un huésped. |
vcpupin
| Controla la afinidad de CPU virtual de un huésped. |
domblkstat
| Muestra las estadísticas de dispositivo de bloque para un huésped en ejecución. |
domifstat
| Muestra estadísticas de interfaz de red para un huésped en ejecución. |
attach-device
| Conecta un dispositivo a un huésped, mediante la definición de un dispositivo en un archivo XML. |
attach-disk
| Conecta un nuevo dispositivo de disco para un huésped. |
attach-interface
| Conecta una nueva interfaz de red para un huésped. |
detach-device
|
Desconecta un dispositivo de un huésped, adquiere la misma clase de descripciones del comando attach-device.
|
detach-disk
| Desconecta un dispositivo de disco desde un huésped. |
detach-interface
| Desconecta una interfaz de red de un huésped. |
virsh:
| Comando | Descripción |
|---|---|
version
|
Muestra la versión de virsh
|
nodeinfo
| Entrega información acerca del hipervisor |
virsh:
# virsh connect {hostname OR URL}<name> es el nombre de la máquina del hipervisor. Para iniciar una conexión de sólo-lectura, añada el comando anterior a -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 Sección 33.1, “Uso de los archivos de configuración XML con 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 Creación de un volcado de máquina virtual XML (archivo de configuración)). To create a guest with virsh from an XML file:
# virsh create configuration_file.xmldumpxml option (refer to Creación de un volcado de máquina virtual XML (archivo de configuración)) 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 (configure vi por defecto).
virsh:
# virsh suspend {domain-id, domain-name or domain-uuid}resume (Reanudar un huésped) option.
virsh mediante la opción resume:
# virsh resume {domain-id, domain-name or domain-uuid}suspend y resume.
virsh:
# virsh save {domain-name, domain-id or domain-uuid} filenamerestore (Restaurar un huésped) option. Save is similar to pause, instead of just pausing a guest the present state of the guest is saved.
virsh save command (Guardar un huésped) using virsh:
# virsh restore filenamevirsh:
# 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(Apagar un huésped) 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 para listar los huéspedes inactivos (es decir, los huéspedes que han sido definidos pero que no están activos) y
--all lista todos los huéspedes. Por ejemplo:
# virsh list --all Id Name State ---------------------------------- 0 Domain-0 running 1 Domain202 paused 2 Domain010 inactive 3 Domain9600 crashed
virsh list se categoriza como uno de los seis estados (listados abajo).
running se refiere a los huéspedes que están actualmente activos en una CPU.
blocked están bloqueados y no se están ejecutando o no son ejecutables. Esto es causado por un huésped esperando en E/S (un estado de espera tradicional) o huéspedes en modo durmiente.
paused lista los dominios que están en pausa. Esto se presenta si un administrador utiliza el botón pause en virt-manager, xm pause o virsh suspend. Cuando un huésped es puesto en pausa, consume memoria y otros recursos, pero no tiene derecho a programación ni recursos de CPU desde el hipervisor.
shutdown es para huéspedes en el proceso de apagado. El huésped recibe una señal de apagado y debe estar en el proceso de detener las operaciones correctamente. Esto puede que no funcione para todos los sistemas operativos, algunos sistemas operativos no responden a estas señales.
dying están en el proceso de muerte, el cual es el estado en el que el dominio no se ha bloqueado o apagado totalmente.
crashed han fallado en la ejecución y ya no funcionan. Este estado sólo puede ocurrir si el huésped ha sido configurado para no reiniciarse en bloqueo.
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 cpulistdomain-id parameter is the guest's ID number or name.
vcpu denota el número de CPU virtualizadas asignadas al huésped. El parámetro vcpu se debe proporcionar.
cpulist es una lista de los números identificadores de CPU físicas separados por comas. El parámetro cpulist determina en cuáles CPU físicas y CPU virtuales se pueden ejecutar.
virsh:
# virsh setvcpus {domain-name, domain-id or domain-uuid} countcount no puede exceder la cuenta de la cantidad que se especificó durante la creación del huésped.
virsh :
# virsh setmem {domain-id or domain-name} count
virsh domblkstat para ver las estadísticas del dispositivo de bloque para un huésped en ejecución.
# virsh domblkstat GuestName block-devicevirsh domifstat para ver las estadísticas de interfaz de red para un huésped en ejecución.
# virsh domifstat GuestName interface-device virsh. Para migrar el dominio a otro host, añada --live para migración en vivo. El comando migrate acepta parámetros en el siguiente formato:
# virsh migrate --live GuestName DestinationURL--live es opcional. Añada el parámetro --live para migraciones en vivo.
GuestName parámetro representa el nombre del huésped que se desea migrar.
DestinationURL es la URL o nombre de host del sistema de destino. El sistema de destino requiere:
libvirt debe ser iniciado.
virsh. Para listar las redes virtuales:
# 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 para administrar redes virtuales son:
virsh net-autostart network-name — Autoinicia una red especificada como nombre_ de_ red.
virsh net-create XMLfile — genera e inicia una nueva red mediante un archivo XML existente.
virsh net-define XMLfile — genera un nuevo dispositivo de red desde un archivo XML existente sin iniciarlo.
virsh net-destroy [network-name] — destruye la red especificada en [nombre de red]
virsh net-name networkUUID — convierte un UUID_de_red determinado a un nombre de red.
virsh net-uuid network-name — convierte un nombre_ de_ red determinado a un UUID de red.
virsh net-start nameOfInactiveNetwork — inicia una red inactiva.
virsh net-undefine nameOfInactiveNetwork — elimina la definición de una red inactiva.
virt-manager), cuadros de diálogos y varios controles de GUI.
virt-manager proporciona una vista gráfica de hipervisores y huéspedes en su sistema y máquinas remotas. El virt-manager sirve para definir tanto los huéspedes para-virtualizados como los completamente virtualizados. El virt-manager puede realizar tareas de administración de virtualización, incluyendo:


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 abra el menú de ; luego y seleccione (virt-manager).
virt-manager aparece.

virt-managervirt-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 Sección 22.1, “Administración remota con SSH”.









virt-manager's preferences window.



















DHCP


xm puede administrar el hipervisor Xen. La mayoría de las operaciones pueden realizarse con las herramientas libvirt, la aplicación virt-manager o el comando virsh. El comando xm no tiene capacidad de comprobación de errores de las herramientas libvirt y no debe ser utilizado para soporte de tareas de libvirt.
xm no funcionan en Red Hat Enterprise Linux 5. La lista a continuación proporciona una visión general de opciones de comandos disponibles y no disponibles.
virsh o de virt-manager en lugar de xm. El comando xm no maneja comprobación de errores muy bien y puede conducir a inestabilidad del sistema o errores en máquinas virtuales. La edición manual de los archivos de configuración Xen es peligrosa y debe evitarse. Utilice este capítulo a su propio riesgo.
xm son los siguientes:
xm help [--long]: muestra las opciones disponibles y el texto de ayuda.
xm list se utiliza para listar dominios activos:
$ 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 ID/NombreDominio: termina una máquina virtual, similar a un apagado.
xm reboot Nombre_de_dominio/ID: reinicia una máquina virtual, se ejecuta a través del proceso normal de apague e inicio.
xm shutdown Nombre_de_dominio/ID: apaga una máquina virtual, ejecuta un procedimiento de apagado normal.
xm pause
xm unpause
xm save
xm restore
xm migrate
xm se utilizan para administrar recursos:
xm mem-set
xm vcpu-list para listar las afinidades de CPU virtualizada:
$ 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 para mostrar los parametros del programador de un dominio determinado:
$ xm sched-credit -d 0
{'cap': 0, 'weight': 256}
$ xm sched-credit -d 13
{'cap': 25, 'weight': 256}
xm se utilizan para la monitorización y solución de errores:
xm top
xm dmesg
xm info
xm log
xm uptime se utiliza para mostrar el tiempo de vida de los huéspedes y hosts:
$ 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 no está soportado actualmente.
/boot/grub/grub.conf), crea la lista de sistemas operativos de la interfaz del menú de arranque GRUB. Al instalar un RPM de kernel-xen un script añade la entrada kernel-xen al archivo de configuración de GRUB que arranca el kernel-xen predeterminado. Edite el archivo grub.conf para modificar el kernel predeterminado o agregar parámetros de kernel adicionales.
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 y el kernel de Linux. Como la entrada del kernel está sobre las otras entradas, éste se carga en memoria primero. El gestor de arranque envía y recibe argumentos de la línea de comandos al hipervisor y al kernel de Linux. Esta entrada de ejemplo muestra cómo se puede restringir la memoria del kernel de Linux Dom0 a 800 MB.
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, contiene una lista de opciones globales y estanzas de imagen. Al instalar el RPM de kernel-xen, un post script de instalación añade la estanza de imagen apropiada a 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 a la opción de línea de comandos del kernel ro la cual hace que el sistema de archivos de root sea montado de sólo lectura hasta que initscripts monte el controlador de root como de lectura-escritura. ELILO copia la línea "root" a la línea de comandos del kernel. Estos se fusionan con la línea append" para crear un línea de comandos completa:
"-- root=/dev/VolGroup00/rhel5_2 ro rhgb quiet"
-- delimitan los argumentos del hipervisor y del kernel. Los argumentos del hipervisor van primero, luego el delimitador --, seguido de los argumentos del kernel. El hipervisor no suele tener argumentos.
--. A continuación, un ejemplo del parámetro de la memoria de hipervisor (mem) y del parámetro quiet para el kernel:
append="dom0_mem=2G -- quiet"
| Parámetro | Descripción |
|---|---|
mem= | El parámetro mem define el uso máximo de RAM del hipervisor. Cualquier RAM adicional en el sistema se omite. El parámetro se puede especificar con el sufijo B, K, M o G; representando bytes, kilobytes, megabytes y gigabytes respectivamente. Si no se especifica ningún sufijo la unidad predeterminada es kilobytes. |
dom0_mem= | dom0_mem= establece la cantidad de RAM asignada a dom0. Los mismos sufijos se mantienen como los del parámetro anterior. El predeterminado en Red Hat Enterprise Linux 5.2 en Itanium® es 4G. |
dom0_max_vcpus= | dom0_max_vcpus= establece el número de CPU a asignar para el hipervisor. El predeterminado en Red Hat Enterprise Linux 5.2 en Itanium® es 4. |
com1= | El parámetro com1= establece los parámetros para la primera línea serial. Por ejemplo, com1=9600,8n1,0x408,5. Las opciones io_base y irq se pueden omitir para dejarlas como las predeterminadas. El parámetro baud se puede establecer como auto para indicar que la configuración del gestor de arranque se debe preservar. El parámetro com1 puede ser omitido si los parámetros están configurados como opciones globales en ELILO o en la configuración de EFI. |
com2= | Establece los parámetros para la segunda línea serial. Consulte la descripción del parámetro com1 arriba. |
console= | El parámetro de console es una lista de preferencias delimitada por comas para las opciones de consola. Las opciones incluyen vga, com1 y com2. Esta configuración debe omitirse porque el hipervisor tiende a heredar la configuración de consola de la 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" para que el kernel y la salida de initscript se generen en la consola. Observe que el doble guión permanece para que la línea que se añade se interprete correctamente como argumentos de hipervisor.
| 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=NOMBRE
| Contraseña para consola de VNC en dominio HVM |
vncviewer=no | yes
|
Genera una escucha de vncviewer para un servidor VNC en el dominio. La dirección de vncviewer se pasa a la línea de comandos de kernel mediante VNC_SERVER=<host>:<port>. El puerto utilizado por VNC es 5500 + DISPLAY. Si es posible, se elige un valor de pantalla con un puerto libre. Sólo cuando VNC=1.
|
vncconsole=no | yes
| Spawn a vncviewer process for the domain's graphical console. Only valid when vnc=1. |
name=NOMBRE
| Nombre de dominio. Debe ser único. |
bootloader=ARCHIVO
| Ruta para el gestor de arranque. |
bootargs=NOMBRE
| Argumentos para pasar al gestor de arranque. |
bootentry=NOMBRE
|
DEPRECIADO. Entrada para arrancar a través del gestor de arranque. Utilice bootargs.
|
kernel=ARCHIVO
| Ruta de imagen de kernel. |
ramdisk=ARCHIVO
| Ruta para ramdisk. |
features=FUNCIONES
| Funciones para habilitar en el kernel de huésped |
builder=FUNCIÓN
| Función para utilizar en la creación del dominio |
memory=MEMORIA
| Memoria de dominio en MB. |
maxmem=MEMORIA
| Memoria de dominio máximo en MB. |
shadow_memory=MEMORIA
| Dominio de memoria oculta en MB |
cpu=CPU
| CPU de hosts VCPU0. |
cpus=CPU
| Las CPU a ejecutar en dominio. |
pae=PAE
| Activar o desactivar PAE del dominio HVM. |
acpi=ACPI
| Activar o desactivar ACPI del dominio HVM. |
apic=APIC
| Activar o desactivar APIC del dominio HVM. |
vcpus=VCPU
| El número de CPU virtuales en dominio. |
cpu_weight=PESO
|
Set the new domain's cpu weight. WEIGHT is a float that controls the domain's share of the cpu.
|
restart=en_reinicio | siempre | nunca
|
Depreciado. Utiliza on_poweroff, on_reboot, y on_crash en su lugar. Si el dominio debe ser reiniciado al salir. - onreboot: reinicia en la salida con reinicio del código de apagado - siempre: siempre reinicie a la salida, ignore el código de salida - nunca: nunca reinicie a la salida, ignore el código de salida
|
on_poweroff=destruir |reiniciar| preservar |destruir
|
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=destruir |reiniciar|preservar|destruir
| 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 | reiniciar | preservar | destruir
| 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
| Crea el dominio de un backend de dispositivo de bloque. |
netif=no | yes
| Crea el dominio de un backend de interfaz de red. |
tpmif=no | yes
| Crea el dominio de un backend de interfaz TPM. |
disk=phy:DEV,VDEV,MODE[,DOM]
|
Añade un dispositivo de disco a un dominio. El dispositivo físico es DEV, el cual es exportado al dominio como VDEV. El disco es de sólo-lectura si MODE es r, lectura-escritura si MODE es w. Si DOM es especificado, éste define el dominio de controlador de backend para el disco. La opción puede repetirse para agregar más de un disco.
|
pci=BUS:DEV.FUNC
|
Añade un dispositivo de PCI a un dominio utilizando los parámetros dados (en hex). Por ejemplo pci=c0:02.1a. La opción puede repetirse para añadir más de un dispositivo PCI.
|
ioports=FROM[-TO]
|
Añade un rango de E/S a un dominio, mediante los parametros dados (en hex). Por ejemplo, ioports=02f8-02ff. La opción puede repetirse para agregar más de un rango de E/S.
|
irq=IRQ
|
Añadir una IRQ (solicitud de interrupción) a un dominio. Por ejemplo irq=7. Esta opción puede repetirse para añadir más de una IRQ.
|
usbport=RUTA
| Añadir un puerto USB físico a un dominio, como es especificado por la ruta a un puerto. Esta opción puede repetirse para añadir más de un puerto. |
vfb=type=
vnclisten=
xauthority=
keymap=MAPA_DE_TECLADO
|
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
|
Añada una interfaz de red con la dirección y puente de MAC determinados. El vif se configura llamando al script de configuración determinado. Si no se especifica el tipo, el predeterminado será netfront y no el dispositivo ioemu. Si MAC no se especifica en forma aleatoria, se utiliza entonces la dirección MAC. Si no está especificada, entonces el backend de red elige su propia dirección MAC. Si el puente no está especificado, se utiliza entonces el primer puente que se encuentre. Si el script no está especificado, se utiliza entonces el script predeterminado. Si el backend no se especifica, se utiliza el dominio de controlador de backend predeterminado. Si vifname no está especificado, la interfaz virtual de backend tendrá el nombre vifD. N donde D es el dominio, ID y N es la ID de interfaz. Esta opción puede repetirse para añadir más de un vif. La especificación de vif aumentará el número de interfaces requeridas.
|
vtpm=instance=INSTANCIA,backend=DOM
|
Añada una interfaz TPM. Al lado del backend utilice la instancia dada como instancia TPM virtual. El número determinado es sólo el número de instancia preferido. El script de hotplug determinará el número de la instancia asignada al dominio. La asociación entre máquina virtual y el número de instancia de TPM puede hallarse en /etc/xen/vtpm.db. Utilice el backend en el dominio dado.
|
access_control=policy=POLÍTICA,etiqueta=ETIQUETA
| Añada una etiqueta de seguridad y una referencia de política de seguridad que lo defina. La referencia de ssid local se calcula en el inicio o reanudación del dominio. En este momento, la política se verifica con la política activa también. Así, la migración a través de las funciones de guardado o restablecimiento se cubren y las etiquetas se crean de forma automática y correcta en el sistema en el que se inicie o reanude un dominio. |
nics=NÚM
| DEPRECIADO. Utilice las entradas vif vacías en su lugar. Establezca el número de interfaces de red. Utilice la opción vif para definir los parámetros de interfaz, de lo contrario se utilizan los predeterminados. La especificación de vifs aumentará el número de interfaces cuando se requiera. |
root=DISPOSITIVO
|
Establece root= parameter en la línea de comandos del kernel. Utilice un dispositivo, e.g. /dev/sda1, o /dev/nfs para root de NFS.
|
extra=ARGUMENTOS
| Establece argumentos adicionales para añadir a la línea de comandos del kernel. |
ip=DIRECCIÓN_IP
| Establece una dirección IP de interfaz de kernel. |
gateway=DIRECCIÓN_IP
| Establece la puerta de enlace IP del kernel. |
netmask=MÁSCARA
| Establece la máscara de red IP del kernel. |
hostname=NOMBRE
| Establece el nombre de host IP del kernel |
interface=INTF
| Establece el nombre de interfaz IP del kernel |
dhcp=off|dhcp
| Establece la opción dhcp de kernel. |
nfs_server=DIRECCIÓN_IP
| Establece la dirección del servidor NFS para root de NFS. |
nfs_root=RUTA
| Establece la ruta del directorio NFS de root. |
device_model=ARCHIVO
| Ruta al programa de modelo de dispositivo. |
fda=ARCHIVO
| Ruta a fda |
fdb=ARCHIVO
| Ruta a fdb |
serial=ARCHIVO
| Ruta a serial, pty o vc |
localtime=no | yes
| RTC establece el tiempo local |
keymap=ARCHIVO
| Establece el tipo de teclado utilizado |
usb=no | yes
| Emula dispositivos USB |
usbdevice=NOMBRE
|
Nombre de un dispositivo USB a añadir
|
stdvga=no | yes
|
Use std vga or Cirrus Logic
graphics
|
isa=no | yes
|
Simula un único sistema ISA
|
boot=a|b|c|d
| Dispositivo de arranque predeterminado |
nographic=no | yes
| ¿Deben los modelos de dispositivos utilizar gráficas? |
soundhw=audiodev
| ¿Los modelos de dispositivo permiten dispositivo de audio? |
vnc
| ¿El modelo de dispositivo usa VNC? |
vncdisplay
| Pantalla VNC a utilizar |
vnclisten
| Dirección para escuchar en servidor de VNC |
vncunused
| Trata de encontrar un puerto sin utilizar para el servidor VNC. Sólo válido cuando vnc=1. |
sdl
| ¿El modelo de dispositivo usa SDL? |
display=PANTALLA
| pantalla X11 a utilizar |
xauthority=XAUTHORITY
| Autoridad X11 a utilizar |
uuid
| xenstore UUID (identificador único universal) a utilizar. Uno será generado de forma aleatoria si esta opción no está estableciad, justo como las direcciones de MAC para interfaces de redes virtuales. Éste debe ser un valor único en todo el grupo. |
| Función de análisis | Argumentos válidos |
|---|---|
set_bool
|
Valores aceptados:
|
set_float
|
Accepts a floating point number with Python's float(). For example:
|
set_int
|
Accepts an integer with Python's int().
|
set_value
|
acepta cualquier valor de Python.
|
append_value
|
acepta cualquier valor de Python y lo añade a el valor anterior almacenado en una matriz.
|
| Parameter | Función de análisis | Valor predeterminado |
|---|---|---|
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
|
Tabla de contenidos
ftpdftpdvirsh para configurar el huésped, TestServer, para que inicie automáticamente cuando el host arranque.
# virsh autostart TestServer
Domain TestServer marked as autostarted
--disable
# virsh autostart --disable TestServer
Domain TestServer unmarked as autostarted
Instale el paquete KVM
# yum install kvm
Verifique cuál kernel está en uso
uname para determinar cuál kernel se está ejecutando:
$ uname -r 2.6.18-159.el5xen
2.6.18-159.el5xen", está ejecutándose en el sistema. Si el kernel predeterminado, "2.6.18-159.el5" está ejecutándose, puede omitir este paso.
Cambiando del kernel Xen al kernel predeterminado
grub.conf determina el kernel de arranque. Para cambiar al kernel predeterminado, edite el archivo /boot/grub/grub.conf como se muestra a continuación.
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 (o al número para el kernel predeterminado):
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
Reinicie para cargar el nuevo kernel
$ lsmod | grep kvm kvm_intel 85992 1 kvm 222368 2 ksm,kvm_intel
kvm y el módulo kvm_intel o kvm_amd están presentes si todo está correcto.
Instale los paquetes de Xen
# yum install kernel-xen xen
Verifique cuál kernel está en uso
uname para determinar cuál comando está ejecutándose.
$ uname -r 2.6.18-159.el5
2.6.18-159.el5", está ejecutándose en el sistema. Es el kernel predeterminado. Si el kernel termina en xen (por ejemplo, 2.6.18-159.el5xen), significa que el kernel de Xen está ejecutándose y puede pasar por alto este paso.
Cambio del kernel predeterminado al kernel Xen
grub.conf determina el kernel de arranque. Para cambiar al kernel predeterminado, edite el archivo /boot/grub/grub.conf como se muestra a continuación.
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 (o al número para el kernel 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
Reinicie para cargar el nuevo kernel
uname:
$ uname -r 2.6.18-159.el5xen
xen al final, significa que el kernel Xen se está ejecutando.
qemu-img sirve para dar formato a varios sistemas de archivo utilizados por Xen y KVM. qemu-img se debe utilizar para dar formato a imágenes de huéspedes virtualizadas, dispositivos de almacenaje adicional y almacenamiento de redes. Las opciones de qemu-img y los usos se listan a continuación.
size y formato format.
# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]
convert sirve para convertir un formato reconocido a otra imagen de formato.
# qemu-img convert [-c] [-e] [-f format]filename[-Ooutput_format]output_filename
filename a imagen de disco output_filename mediante el formato output_format. La imagen de disco puede ser encriptada con la opción -e o comprimida con la opción -c.
qcow" admite encriptación o compresión. La compresión es de sólo lectura, es decir, si un sector comprimido es rescrito, entonces se rescribe como datos descomprimidos.
qcow o cow. Los sectores vacíos son detectados y suprimidos de la imagen de destino.
info muestra información acerca de una imagen de disco. El formato para la opción info debe ser así:
# qemu-img info [-f format] filename
rawqemu-img info para concocer el tamaño real utilizado por la imagen o ls -ls en Unix/Linux.
qcow2 qcow cowcow se incluye sólo para compatibilidad con versiones anteriores. No funciona con 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 desde un sistema ejecutando el paquete de kernel-xen. El archivo grub.conf en su sistema puede variar. La parte importante en el ejemplo a continuación es la sección desde la línea de title hasta la nueva línea siguiente.
#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 Capítulo 28, Configuración de parámetros de arranque de Xen for more information on using virtualization and grub.
dom0_mem=256M a la línea xen en su archivo grub.conf. La siguiente es una versión modificada de un archivo de configuración de GRUB del ejemplo anterior:
#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 que indica un procesador Intel con las extensiones de 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 que indica un procesador AMD con extensiones de 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:" puede aparecer varias veces para cada hiperproceso, núcleo o CPU activos en el sistema.
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 409663guest1 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: yyyyyyyyvirsh vcpuinfo output (the yyyyyyyy value of CPU Affinity) shows that the guest can presently run on any CPU.
# virsh vcpupinguest10 4 # virsh vcpupinguest11 5 # virsh vcpupinguest12 6 # virsh vcpupinguest13 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: -------ymacgen.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 para generar una nueva dirección MAC y UUID para usar en un archivo de configuración de huésped:
# 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 y usos.
rate=10Mb/s rate=250KB/s rate=10MB/s@50ms VIF, se vería de la siguiente manera:
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 o virt-manager:
virsh refer to Configurar la afinidad de la CPU virtual for more information.
virt-manager refer to Sección 26.11, “Mostrar las CPU virtuales” 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
ftpdvsftpd puede proporcionar acceso a árboles de instalación para huéspedes para-virtualizados (por ejemplo, los repositorios de Enterprise Linux 5) u otros datos. SI no ha instalado vsftpd durante la instalación del servidor, puede tomar el paquete RPM desde el directorio Server de sus medios de instalación e instalarlo mediante rpm -ivh vsftpd*.rpm (observe que el paquete RPM debe estar en su directorio actual).
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 no está habilitado, usando 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 para iniciar vsftpd automáticamente para ejecutar los niveles 3, 4 y 5.
chkconfig --list vsftpd para comprobar si el demonio vsftpd ha sido habilitado para iniciar durante el arranque del sistema:
$ chkconfig --list vsftpd vsftpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
service vsftpd start vsftpd para iniciar el servicio vsftpd:
$service vsftpd start vsftpd Starting vsftpd for vsftpd: [ OK ]
udev para implementar persistencia de LUN. Antes de implementar persistencia de Lun en su sistema, asegúrese de adquirir los UUID apropiados. Una vez adquiridos, puede configurar la persistencia de LUN editando el archivo scsi_id, ubicado en el directorio /etc . Una vez tenga este archivo abierto en un editor de texto, quítele el comentario a esta línea:
# options=-b
# options=-g
scsi_id:
# scsi_id -g -s /block/sdc *3600a0b80001327510000015427b625e*
20-names.rules en el directorio /etc/udev/rules.d . Las nuevas reglas para nombrar dispositivos siguen este formato:
# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID", NAME="devicename"
UUID y devicename por la entrada anterior recuperada de UUID. La regla debe parecerse a la siguiente:
KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e", NAME="mydevicename"
/dev/sd* inspeccionar el UUID determinado. Cuando encuentra un dispositivo coincidente, crea un nodo de dispositivo llamado /dev/devicename. Para este ejemplo, el nodo de dispositivo es /dev/mydevice . Por último, añada el archivo /etc/rc.local con la siguiente línea:
/sbin/start_udev
multipath.conf ubicado en el directorio /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 y dev/mpath/oramp4. Los dispositivos residirán en el directorio /dev/mpath . Estos nombres de LUN son persistentes a través de los reinicios, ya que éste crea los nombres de alias en los wwid para cada 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 para iniciar la sesión de GNOME cada vez que vncserver sea iniciado. La primera vez que usted ejecute el script vncserver se le pedirá la contraseña que desee utilizar para su sesión de 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 del archivo /etc/sysconfig/network-scripts/ifcfg-eth0 para que coincida con la salida del archivo ifconfig eth0 y si está utilizando direcciones IP estáticas, debe modificar la entrada IPADDR.
name uuid uuidgen. La siguiente es una muestra de salida UUID:
$ uuidgen a984a14f-4191-4d14-868e-329906b211e5
vifxenbr para que corresponda con su configuración de red local (puede obtener la información de puente mediante el comando brctl show).
disk= para apuntar a la imagen de huésped correcta.
/etc/sysconfig/network HOSTNAME entry to the guest's new hostname.
/etc/sysconfig/network-scripts/ifcfg-eth0 HWADDR para la salida desde ifconfig eth0.
IPADDR si la dirección IP estática es utilizada.
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
Tabla de contenidos
xentop xentop muestra la información en tiempo real sobre un sistema de host y dominios de huéspedes.
xmdmesg y log
vmstat
iostat
lsof
iostat, mpstat y sar vienen en el paquete 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 es una herramienta de red que inspecciona y establece la configuración del puente Ethernet en el Kernel de Virtualización de Linux. Debe tener acceso de root antes de ejecutar estos comandos de ejemplo:
# 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/. Este directorio contiene el demonio xend y otros archivos de configuración de máquinas virtuales. Los archivos de script de red se encuentran en el directorio scripts.
/var/log/xen.
/var/lib/libvirt/images es el directorio predeterminado para todas las imágenes basadas en archivo.
/proc/xen/.
xend y del proceso qemu-dm, contienen dos utilidades que escriben varios archivos de registro en el directorio /var/log/xen:
xend.log es el archivo de registro que contiene todos los datos recogidos por el demonio xend, ya sean éstos eventos normales del sistema o acciones iniciadas por el operador. Todas las operaciones de máquina virtual (crear, apagar, destruir, etc.) aparecen en este registro. xend.log suele ser el primer lugar donde se debe mirar cuando se detecta un evento o problemas de rendimiento. Este archivo contiene entradas detalladas sobre los mensajes de error.
xend-debug.log es el archivo de registro que contiene entradas sobre los errores de eventos de xend y los subsistemas de virtualización (tales como, framebuffer, scripts de Python, etc).
xen-hotplug-log es el archivo de registro que contiene datos sobre los eventos de conexión en caliente. Si un dispositivo o script de red no aparece en línea, el evento será registrado en este archivo.
qemu-dm.[PID].log es el archivo de registro creado por el proceso qemu-dm para cada huésped completamente virtualizado. Cuando utilice este archivo de registro, debe recuperar el PID del proceso qemu-dm con el comando ps para examinar los argumentos del proceso para aislar el proceso qemu-dm en la máquina virtual. Tenga en cuenta que debe remplazar el símbolo [PID] por el PID del proceso de qemu-dm.
virt-manager.log ubicado en el directorio /.virt-manager . Tenga en cuenta que cada vez que inicia el Administrador de máquinas virtuales, el contenido del archivo de registro será sobreescrito. Asegúrese de crear una copia de seguridad de virt-manager.log, antes de reiniciar el Administrador de máquinas virtuales después de un error del sistema.
/var/lib/libvirt/images.
xend, éste actualiza xend-database, ubicada en el directorio /var/lib/xen/xend-db.
xm dump-core) está en el directorio /var/lib/xen/dumps.
/etc/xen contiene los archivos de configuración que sirven para administrar recursos del sistema. El archivo de configuración del demonio xend es /etc/xen/xend-config.sxp. Este archivo puede ser modificado para implementar cambios en el sistema y configurar la red. No obstante, la edición manual de archivos en la carpeta /etc/xen/ no es recomendable.
proc son otro recurso para obtener información del sistema. Estas entradas proc están ubicadas en el directorio /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, es bastante útil para los administradores de sistemas ya que contiene una información aún más detallada que la proporcionada en xend.log . A continuación están los mismos datos de error para el mismo problema de creación del dominio de kernel:
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 puede ayudar a determinar el problema que hace que la salida de consola del hipervisor asíncrono se cuelgue y "pnpacpi=off" trate de solucionar el problema que corrompe la entrada en la consola serial. Los parámetros "console=ttyS0" y "console=tty" indican que los errores del kernel se registran tanto en la consola VGA como en la consola serial. Luego puede instalar y configurar ttywatch para capturar los datos en el host remoto conectado a través de un cable null-modem estándar. Por ejemplo, puede escribir en el host remoto:
ttywatch --name myhost --port /dev/ttyS0
/dev/ttyS0 hasta /var/log/ttywatch/mihost.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, no sucede nada. Escribe virsh list y recibe lo siguiente:
Error: Error connecting to xend: Connection refused. Is xend running?
xend start manualmente, recibe más errores:
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. Para corregir este problema, debe seleccionar el kernel kernel-xen durante el arranque del sistema (o establecer el kernel kernel-xen como el kernel predeterminado en el archivo grub.conf ).
"Invalid argument". Este mensaje generalmente indica que la imagen de kernel que está intentando arrancar, no es compatible con el hipervisor. Por ejemplo, este error podría producirse si está tratando de ejecutar un kernel FC5 no PAE en un hipervisor FC6 PAE.
grub.conf, utiliza el nuevo kernel de forma predeterminada y no el kernel virtualizado.
/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 estableciendo los parámetros apropiados de dispositivo serial.
com1, modifique /boot/grub/grub.conf insertando las líneas com1=115200,8n1, console=tty0 y console=ttyS0,115200 donde se muestra.
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,8n1module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386console=tty0console=ttyS0,115200module /boot/initrd-2.6.18-92.el5xen.img
com2, modifique /boot/grub/grub.conf insertando las líneas com2=115200,8n1 console=com2L, console=tty0 y console=ttyS0,115200 donde se muestra.
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 y así sucesivamente) que seleccionó en el paso anterior.
com2, el parámetro console=ttyS0 en la línea vmlinuz es utilizado. La conducta de cada puerto utilizado comoconsole=ttyS0 no es una conducta estándar de Linux, sino específica del entorno Xen.
virsh console" o en la ventana "Consola serial" de virt-manager. Configure la consola serial virtual con este procedimiento:
/boot/grub/grub.conf así:
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) puede ser configurado para registrar salida de las consolas seriales de huéspedes para-virtualizados.
xend edite /etc/sysconfig/xend. Cambie la entrada:
# 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 en Linux o COM1 en Windows.
/boot/grub/grub.conf insertando la línea "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 porque son huéspedes para-virtualizados.
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" es el valor predeterminado para el archivo de configuración. El siguiente ejemplo es un archivo de configuración de un huésped completamente virtualizado:
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 y virsh create (o virsh edit) para editar los archivos de configuración libvirt (basados en XML), los cuales tienen comprobación de errores y controles de seguridad.
failed domain creation due to memory shortage, unable to balloon domain0
xend.log para este error:
[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 no se contrae lo suficiente, puede utilizar el comando virsh setmem dom0 NewMemSize para comprobar la memoria.
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. Revise el archivo y verifique si la entrada del host local está activada. A continuación se da un ejemplo de una entrada de host local incorrecta:
# 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.logfile):
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 despliega los siguientes errores:
[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/ contienexend.
scripts que contiene los scripts para redes de virtualización.
/var/log/xen/ /var/lib/libvirt/images/ /proc/xen/ cat /proc/partitions" como se muestra a continuación.
# 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 dentro del sistema operativo. Verifíquelo ejecutando lo siguiente (para Red Hat Enterprise Linux 4 y Red Hat Enterprise Linux 5):
cat /etc/modprobe.conf
cat /etc/modules.conf
alias eth0 xen-vnif
alias eth0 xen-vnif) para cada interfaz para-virtualizada para el huésped.
/etc/modprobe.conf. Edite el archivo /etc/modprobe.conf y añádale la siguiente línea:
options loop max_loop=64
phy: block device o tap:aio. Para emplear huéspedes respaldados de dispositivo de bucle para un sistema completamente virtualizado, utilice los comandos phy: device o 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 en su huésped, puede iniciar su huésped:
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 puede fallar en el lanzamiento y desplegar un error tal como: “Unable to open a connection to the Xen hypervisor/daemon”. Esto suele deberse a la falta de una entrada localhost en el archivo /etc/hosts. Verifique si en realidad se tiene una entrada localhost o si falta en /etc/hosts e inserte una nueva entrada para localhost si no está presente. Un archivo incorrecto de /etc/hosts puede parecerse a lo siguiente:
# 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” buscará un archivo de configuración en el directorio actual y luego en /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. Si el comando entrega salida, las extensiones de virtualización ahora están habilitadas. Si no hay salida, puede que su sistema no tenga extensiones de virtualización o la correcta configuración de BIOS habilitada.
virsh command (where GUEST is the guest's name):
# virsh edit GUESTvirsh edit utiliza la variable de shell $EDITOR para determinar el editor a utilizar.
<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 y el proceso qemu-dm.
xend.logxend-debug.logxen-hotplug.logqemu-dm.PID.logqemu-dm el cual se inició para cada huésped completamente virtualizado.
PID es remplazado por el PID del proceso de un proceso relacionado con qemu-dm
PID para un proceso determinado qemu-dm mediante el comando ps y al buscar en los argumentos del proceso se puede identificar la máquina virtual a la que pertenece el proceso qemu-dm.
.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 es la configuración principal para el demonio Xend. El archivo xend-config.sxp habilita o inhabilita la migración y otras funciones no configuradas por libvirt. Utilice las herramientas libvirt para todas las demás funciones.
/var/lib/xen/dump/xm dump-core.
/proc/xen/xen-kernel en los siguientes archivos:
/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 202
You 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:aiotap: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 y ext3, identificadores de dispositivos RAID, iSCSI e identificadores de dispositivo LUN, direcciones MAC e identificadores de máquinas virtuales.


libvirt.
/usr/share/doc/xen-<número-de-versión>/ — Este directorio contiene bastante información sobre el hipervisor de virtualización de Xen y las herramientas de administración asociadas. Incluye ejemplos de configuración, información específica de hardware y la actual documentación de usuario de la línea de desarrollo principal de Xen.
man virsh y /usr/share/doc/libvirt-<número-de-versión> — Contiene comandos y opciones para la utilidad de administración de máquinas virtuales virsh e información sobre la API de la biblioteca de virtualización libvirt.
/usr/share/doc/gnome-applet-vm-<número-de-versión> — Documentación del applet del panel gráfico de GNOME que monitoriza y administra máquinas virtuales locales.
/usr/share/doc/libvirt-python-<número-de-versión> — proporciona información sobre las extensiones de Python de la biblioteca libvirt. El paquete libvirt-python le permite a los programadores de Python crear programas que utilicen la biblioteca de administración de virtualización libvirt.
/usr/share/doc/python-virtinst-<número-de-versión> — proporciona la documentación del comando virt-install que ayuda en el inicio de instalaciones de Fedora y Red Hat Enterprise Linux en máquinas virtuales.
/usr/share/doc/virt-manager-<número-de-versión> — Proporciona documentación sobre el administrador de máquinas virtuales. Éste proporciona una herramienta gráfica para la administración de máquinas virtuales.