Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
Virtualization
A reference guide for virsch, xm, vmm and xend.
Edición 2.0
Resumen
http://bugzilla.redhat.com/bugzilla/
) contra el componente Virtualization_Guide
.
Capítulo 1. Arquitectura del sistema de virtualización de Red Hat
Capítulo 2. Sistemas operativos soportados
- La tecnología Intel VT-x o AMD-V Pacifica y Vanderpool para virtualización completa o paravirtualización.
- Intel VT-i para ia64
- Sistemas operativos Linux y UNIX incluyendo NetBSD, FreeBSD y Solaris.
- Microsoft Windows as an unmodified guest operating system with Intel Vanderpool or AMD's Pacifica technology.
grep vmx /proc/cpuinfo
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
grep svm /proc/cpuinfo cat /proc/cpuinfo | grep svm
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dt acpi mmx fxsr sse sse2 ss ht tm syscall nx mmtext fxsr_opt rdtscp lm 3dnowext pni cx16 lahf_lm cmp_legacy svm cr8_legacy
Nota
Capítulo 3. Hardware soportado
- Celeron
- Pentium II
- Pentium III
- Pentium IV
- Xeon
- AMD Athlon
- AMD Duron
mem=32G
en la línea de comandos del kernel. Este ejemplo muestra como activar los parámetros apropiados en el archivo grub.conf
:
title Red Hat Enterprise Linux Server (2.6.18-4.elxen) root (hd0, 0) kernel /xen.gz-2.6.18-4-el5 mem=32G module /vmlinuz -2.6.18-4.el5xen ro root=LABEL=/ module /initrd-2.6.18-4.el5xen.img
grep pae /proc/cpuinfo
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 mmx fxsr sse syscall mmtext 3dnowext 3dnow up ts
Capítulo 4. Requisitos del sistema para el componente de virtualización de Red Hat
- RHEL5
- El gestor de arranque GRUB
- Privilegios de root
- Un procesador clase P6 (o anterior)
- El paquete bridge-utils de Linux
- El sistema hotplug de Linux.
- La instalación de desarrollo de zlib
- Python 2.2
- initscripts
Nota
xen-ia64-guest-firmware
package to run a fully virtualized guest. This package is provided in the Supplementary CD and is not installed by default.
Capítulo 5. Iniciando el sistema
service xend start
chkconfig xend
para que xend
sea iniciado durante el proceso de arranque.
Capítulo 6. Configuración de GRUB
/boot/grub/grub.conf
) is used to create a list of operating systems to boot in GRUB's menu interface. When you install the kernel-xen RPM, a post script adds kernel-xen entries to the GRUB configuration file. You can edit the grub.conf
file and enable the following GRUB parameter:
title Red Hat Enterprise Linux Server (2.6.18-3.el5xen) root (hd0; 0) kernel /xen.gz.-2.6.18-3.el5 module /vmlinuz-2.6..18-3.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet module /initrd-2.6.18-3. el5xenxen.img
initrd
y el kernel de Linux. Como el 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 a 800 MB en Domain0:
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
Capítulo 7. Inicio de un dominio huésped
xm
. También se puede utilizar virsh
y el administrador de máquinas virtuales para arrancar sistemas huéspedes. Este ejemplo utiliza el subcomando create
de xm
:
# xm create -c guestdomain1
guestdomain1
es el archivo de configuración para el dominio que está iniciando. La opción -c
se conecta a la consola actual después del proceso de arranque.
Capítulo 8. Arrancar y detener un dominio durante el proceso de arranque
/etc/xen/
. Todos los dominios que serán iniciados durante el proceso de arranque deben tener un enlace simbólico en /etc/xen/auto
.
chkconfig xendomains on
chkconfig xendomains on
no iniciará los daemons automáticamente. Este comando indica que los daemons deben ser iniciados en arranques subsecuentes.
chkconfig xendomains off
chkconfig xendomains off
indica que los dominios no deben ser iniciados en los próximos arranques.
Capítulo 9. Archivos de configuración
/etc/xen
directory.
Tabla 9.1. Archivos de configuración del componente de virtualización de Red Hat
Ítem | Descripción |
---|---|
pae
|
Especifica los datos de configuración para la extensión de la dirección física.
|
apic
|
Especifica los datos de configuración del controlador de interrupciones programable avanzado.
|
memory
|
Especifica el tamaño de la memoria en megabytes.
|
vcpus
|
Especifica el número de CPUs virtuales.
|
console
|
Especifica el número del puerto a donde las consolas del dominio serán exportadas.
|
nic
|
Especifica el número de interfaces de red virtuales.
|
vif
|
Lists the randomly-assigned MAC addresses and bridges assigned to use for the domain's network addresses.
|
disk
|
Lista los dispositivos de bloque a exportar al dominio y exporta los dispositivos físicos al dominio con acceso de solo lectura.
|
dhcp
|
Activa el uso de redes utilizando DHCP.
|
netmask
|
Especifica las máscaras de red configurada.
|
gateway
|
Especifica las puertas de enlace configuradas.
|
acpi
|
Especifica los datos de configuración ACPI (siglas en inglés de Advanced Configuration and Power Interface).
|
Capítulo 10. Administración de CPUs
Capítulo 11. Migración de un dominio
xm migrate domain-id [destination domain]
xm migrate domain-id -l [destination domain]
Capítulo 12. Configuración para el uso de red
dom0
by a point to point link. These devices are vif
<domid>
and <vifid>
. vif1.0
for the first interface in domain 1; vif3.1
for the second interface in domain 3.
network-bridge
and vif-bridge
. xend calls these scripts when certain events occur. Arguments can be passed to the scripts to provide additional contextual information. These scripts are located in the /etc/xen/scripts
directory. You can change script properties by modifying the xend-config.sxp configuration file located in the /etc/xen
directory.
network-bridge
— cuando se inicia o detiene xend este script activa o desactiva la red virtual. A continuación se crea el puente xen—br0
y se mueve eth0
a este puente modificando la ruta como corresponde. Cuando xend finaliza se borra el puente y se remueve eth0
, restaurando el IP original y la configuración del encaminamiento.
vif-bridge
- Este script es llamado por cada interface virtual en el dominio. Configura las reglas del cortafuegos y puede añadir vif
al puente apropiado.
network-route
, network-nat
, vif-route,
y vif-nat
. Estos scripts pueden ser reemplazados con variantes personalizadas.
Capítulo 13. Seguridad en Domain0
- Ejecute el mínimo número necesario de servicios. No incluya demasiados servicios y/o trabajos en domain0. Entre menos servicios estén siendo ejecutados en domain0, más alto será el nivel de seguridad.
- Active SELinux en domain0.
- Utilice un cortafuegos para limitar el tráfico a domain0. Puede establecer un cortafuegos con reglas reject predeterminadas que ayuden a asegurar domain0. También es importante limitar los servicios expuestos a la red.
- No permita que usuario normales tengan acceso a domain0. Si permite que los usuarios normales tengan acceso a domain0, se corre el riesgo de aumentar la vulnerabilidad de domain0. Recuerde, domain0 es privilegiado y su seguridad puede ser comprometida por cuentas no privilegiadas si éstas se permiten.
Capítulo 14. Almacenamiento
Capítulo 15. Administración de máquinas virtuales con virsh
xend/qemu
, debe activar la ejecución de xend/qemu
como servicio. Después de modificar el archivo de configuración respectivo, reinicie el sistema y xend/qemu
será iniciado como un servicio. Como la herramienta xm, virsh se ejecuta desde la línea de comandos.
15.1. Conexión al hipervisor
virsh connect <name>
<name>
is the machine name of the hypervisor. If you want to initiate a read—only connection, append the above command with —readonly
.
15.2. Creación de una máquina virtual
virsh create <path to XML configuration file>
15.3. Configuración de un volcado XML
virsh dumpxml [domain-id | domain-name | domain-uuid]
stdout
. If you save the data to a file, you can use the create
option to recreate the virtual machine.
15.4. Suspensión de una máquina virtual
virsh suspend [domain-id | domain-name |domain-uuid]
resume
option.
15.5. Reanudación de una máquina virtual
virsh resume [domain-id | domain-name | domain-uuid]
15.6. Guardar una máquina virtual
virsh save [domain-name][domain-id | domain-uuid][filename]
restore
option.
15.7. Restauración de la máquina virtual
virsh save
option:
virsh restore [filename]
15.8. Apagado de una máquina virtual
virsh shutdown [domain-id | domain-name | domain-uuid]
on_shutdown
del archivo xmdomain.cfg
.
15.9. Reinicio de una máquina virtual
virsh reboot [domain-id | domain-name | domain-uuid]
on_shutdown
del archivo xmdomain.cfg
.
15.10. Terminar un dominio
virsh destroy [domain-name | domain-id | domain-uuid]
destroy
option only when the virtual machine's operating system is non-responsive. For a paravirtualized virtual machine, you should use the shutdown
option.
15.11. Convertir un nombre de dominio a un ID de dominio
virsh domid [domain-name | domain-uuid]
15.12. Convertir un ID de dominio a un nombre de dominio
virsh domname [domain-name | domain-uuid]
15.13. Convertir un nombre de dominio a un UUID
virsh domuuid [domain-id | domain-uuid]
15.14. Ver información de una máquina virtual
virsh dominfo [domain-id | domain-name | domain-uuid]
15.15. Ver información del nodo
virsh nodeinfo
CPU model x86_64 CPU (s) 8 CPU frequency 2895 Mhz CPU socket(s) 2 Core(s) per socket 2 Threads per core: 2 Numa cell(s) 1 Memory size: 1046528 kb
15.16. Mostrar las máquinas virtuales
virsh list domain-name [ ——inactive | —— -all]
——inactive
lista los dominios inactivos (aquellos que han sido definidos pero que no están actualmente activos). La opción —all
lista todos los dominios, ya sea que éstos estén activos o no. El mensaje de salida será similar al siguiente:
ID Name State ———————————————— 0 Domain0 running 1 Domain202 paused 2 Domain010 inactive 3 Domain9600 crashed
running lists domains currently active on the CPU blocked lists domains that are blocked paused lists domains that are suspended shutdown lists domains that are in process of shutting down shutoff lists domains that are completely down. crashed lists domains that are crashed
15.17. Mostrar información de la CPU virtual
virsh vcpuinfo [domain-id | domain-name | domain-uuid]
15.18. Configurar afinidad de la CPU virtual
virsh vcpupin [domain-id | domain-name | domain-uuid] [vcpu] , [cpulist]
[vcpu]
es el número de la CPU virtual (VCPU) y [cpulist]
es una lista del número de CPUs físicas.
15.19. Configurar la cantidad de CPUs virtuales
virsh setvcpus [domain-name | domain-id | domain-uuid] [count]
15.20. Configurar la asignación de memoria
virsh setmem [domain-id | domain-name] [count]
[count]
in kilobytes. Note that the new count cannot exceed the amount you specified when you created the Virtual Machine. Values lower than 64 MB probably won't work. You can adjust the Virtual Machine memory as necessary.
15.21. Configurar la cantidad máxima de memoria
virsh setmaxmem [domain-name | domain-id | domain-uuid] [count]
15.22. Managing Virtual Networks
virsh net-list
[root@domain ~]# virsh net-list Name State Autostart ----------------------------------------- default active yes vnet1 active yes vnet2 active yes
virsh net-dumpxml [vnet name]
[root@domain ~]# virsh net-dumpxml vnet1 <network> <name>vnet1</name> <uuid>98361b46-1581-acb7-1643-85a412626e70</uuid> <forward dev='eth0'/> <bridge name='vnet0' stp='on' forwardDelay='0' /> <ip address='192.168.100.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.100.128' end='192.168.100.254' /> </dhcp> </ip> </network>
virsh net-autostart [network name]
— Autostart a network specified as [network name]virsh net-create [XML file]
— Generates and starts a new network using a preexisting XML filevirsh net-define [XML file]
— Generates a new network from a preexisting XML file without starting itvirsh net-destroy [network name]
— Destroy a network specified as [network name]virsh net-name [network UUID]
— Convert a specified [network UUID] to a network namevirsh net-uuid [network name
— Convert a specified [network name] to a network UUIDvirsh net-start [name of an inactive network]
— Starts a previously undefined inactive networkvirsh net-undefine [name of an inactive network]
— Undefine an inactive network
Capítulo 16. Administración de máquinas virtuales con xend
xend-config.sxp
, ubicado en el directorio etc/xen
. A continuación se presentan los parámetros editables en el archivo de configuración xend-config.sxp
:
Tabla 16.1. Parámetros configurables de xend en el componente de virtualización de Red Hat
Ítem | Descripción |
---|---|
console-limit
|
Determines the console server's memory buffer limit and assigns values on a per-domain basis
|
min-mem
|
Determina el número mínimo de megabytes reservados para domain0 (el valor no cambia si se introduce 0)
|
dom0 cpus
|
Determina el número de CPU que domain0 usa (al menos una CPU se asigna por defecto)
|
enable-dump
|
Determina que un error ha ocurrido y activa el volcado (0 es el valor predeterminado)
|
external-migration-tool
|
Determina el script o la aplicación que controla la migración de dispositivos externos (los script deben estar en
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 script deben estar 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 (un servidor de socket es un punto de comunicación que maneja conexiones de red de bajo nivel y acepta o rechaza conexiones entrantes)
|
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 la máquinas virtuales a las cuales se les permite la migración de sistemas
|
xend-address
|
Determina la dirección a la cual el servidor de socket del dominio está vinculado.
|
service xend start
service xend stop
service xend restart
service xend status
Capítulo 17. Administración de máquinas virtuales con el administrador de máquinas virtuales
17.1. Arquitectura del administrador de máquinas virtuales
17.2. La ventana Abrir conexión
test:///default
in the URL field beneath. Once in test mode, you can connect to a libvirt dummy hypervisor. Note that although the Remote Xen host screen is visible, the functionality to connect to such a host is not implemented into Red Hat Enterprise Linux 5.1.
Figura 17.1. Virtual Machine Manager Connection window
17.3. Ventana del administrador de máquinas virtuales
Figura 17.2. Virtual Machine Manager main window
17.4. Ventana de detalles de la máquina virtual
Figura 17.3. Virtual Machine Manager Details window
17.5. Consola gráfica de la máquina virtual
Figura 17.4. Ventana de la consola gráfica
17.6. Starting the Virtual Machine Manager
Herramientas del sistema
en Aplicaciones
y seleccione Administrador de máquinas virtuales
.
Figura 17.5. Starting the Virtual Machine Manager
17.7. Crear una nueva máquina virtual
- Crear nuevos dominios.
- Configure or adjust a domain's resource allocation and virtual hardware.
- Resumir los dominios en ejecución con el rendimiento en vivo y las estadísticas de utilización de recursos.
- Mostrar gráficos que muestran la utilización de recursos y rendimiento sobre un periodo de tiempo.
- Utilizar el visor VNC incluido para visualizar una consola gráfica del dominio huésped.
Nota
Procedimiento 17.1. Crear un sistema de operativo huésped
- Seleccione Herramientas del sistema desde Aplicaciones y luego Administrador de máquinas virtuales.La ventana principal del administrador de máquinas virtuales aparecerá.
Figura 17.6. Virtual Machine Manager window
- Desde el menú Archivos seleccione Nueva máquina.
Figura 17.7. Selección de una nueva máquina
Aparecerá el asistente Creación de un nuevo sistema virtual. - Click Forward.
Figura 17.8. Asistente Creación de un nuevo sistema virtual
- Enter the name of the new virtual system and then click Forward.
Figura 17.9. Bautizar el sistema virtual
- Introduzca la ubicación del medio de instalación. La ubicación del archivo kickstart es opcional. Haga clic en Adelante.
Figura 17.10. Ubicar el medio de instalación
- Realice la instalación e una partición física o a un sistema de archivo virtual dentro de un archivo.
Nota
Este ejemplo instala un sistema virtual en un archivo.SELinux policy only allows xen disk images to reside in/var/lib/xen/images
.Open a terminal and create the /xen directory and set the SELinux policy with the commandrestorecon -v /xen
. Specify your location and the size of the virtual disk, then click Forward.Figura 17.11. Asignar espacio de almacenaje
- Select memory to allocate the guest and the number of virtual CPUs then click Forward.
Figura 17.12. Asignar memoria y CPU
- Select Forward to open a console and the files start to install.
Figura 17.13. Asignar memoria y CPU
- Complete la instalación en la ventana proporcionada.
Figura 17.14. Inicio de la instalación
Aviso
When installing Red Hat Enterprise Linux 5.1 on a fully virtualized guest, do not use thekernel-xen
kernel. Using this kernel on fully virtualized guests can cause your system to hang.If you are using an Installation Number when installing Red Hat Enterprise Linux 5.1 on a fully virtualized guest, be sure to deselect theVirtualization
package group during the installation. TheVirtualization
package group option installs thekernel-xen
kernel.Note that paravirtualized guests are not affected by this issue. Paravirtualized guests always use thekernel-xen
kernel. - Type
xm create -c xen-guest
to start the Red Hat Enterprise Linux 5.1 guest. Right click on the guest in the Virtual Machine Manager and choose Open to open a virtual console.Figura 17.15. Red Hat Enterprise Linux 5.1 (guest)
- Introduzca el nombre de usuario y la contraseña para continuar utilizando el administrador de máquinas virtuales.
17.8. Restaurar una máquina guardada
- Desde el menú Archivo, seleccione Restaurar máquina guardada.
Figura 17.16. Restoring a Virtual Machine
- Aparecerá la ventana Restaurar Máquina Virtual
Figura 17.17. Seleccionar Sesión de máquina virtual guardada
- Vaya al directorio correcto y seleccione el archivo de sesión guardado.
- Haga clic en Abrir.
Figura 17.18. La sesión restaurada en el administrador de máquinas virtuales
17.9. Displaying Virtual Machine Details
- En la ventana principal del administrador de máquinas virtuales, resalte la máquina virtual que desea ver.
Figura 17.19. Selección de la máquina virtual a mostrar
- Desde el menú Editar del administrador de máquinas virtuales seleccione Detalles de la máquina (o haga clic en el botón Detalles en la parte inferior de la ventana principal del administrador de máquinas virtuales).
Figura 17.20. El menú Detalles de la máquina virtual
Aparecerá la ventana de información de la máquina virtual. La ventana resume el uso de memoria y CPU para el dominio especificado.Figura 17.21. Resumen de la máquina virtual
- En la ventana de detalles de la máquina virtual, haga clic en la pestaña Hardware.Aparecerá la ventana de información de hardware de la máquina virtual.
Figura 17.22. Detalles del hardware de la máquina virtual
- En la pestaña Hardware, haga clic en Procesador para ver o cambiar la asignación de memoria del procesador actual.
Figura 17.23. Asignación del procesador
- En la pestaña Hardware, haga clic en Memoria para ver o modificar la asignación de memoria RAM actual.
Figura 17.24. Asignaciónde memoria
- En la pestaña Hardware, haga clic en Disco para ver o cambiar la configuración del disco duro actual.
Figura 17.25. Configuración del disco
- En la pestaña Hardware, haga clic en Red para ver o cambiar la configuración de red actual.
Figura 17.26. Configuración de red
17.10. Configuring Status Monitoring
- Desde el menú Editar, seleccione Preferencias.
Figura 17.27. Modificar las preferencias de la máquina virtual
Aparecerá la ventana de preferencias del administrador de máquinas virtuales. - Desde la casilla de selección del área de monitoreo de estado, especifique el tiempo (en segundos) en el cual desea que el sistema se actualice.
Figura 17.28. Configuring Status Monitoring
- Desde el área de la consola especifique cómo abrir la consola y especifique un dispositivo de entrada.
17.11. Mostrar el ID del dominio
- Desde el menú Ver, seleccione la casilla de verificación ID del dominio.
Figura 17.29. ID del dominio
- The Virtual Machine Manager lists the Domain ID's for all domains on your system.
Figura 17.30. ID del dominio
17.12. Desplegando el estado de las máquinas virtuales
- Desde el menú Ver, seleccione la casilla de verificación Estado.
Figura 17.31. Desplegando el estado de las máquinas virtuales
- El administrador de máquinas virtuales lista el estado de todas las máquinas virtuales en su sistema.
Figura 17.32. Desplegando el estado de las máquinas virtuales
17.13. Mostrar CPUs virtuales
- Desde el menú Ver, seleccione la casilla de verificación CPU Virtuales.
Figura 17.33. Mostrar CPUs virtuales
- El administrador de máquinas virtuales lista las CPUs virtuales para todas las máquinas virtuales en su sistema.
Figura 17.34. Mostrar CPUs virtuales
17.14. Mostrar uso del CPU
- Desde el menú Ver seleccione Uso de CPU
Figura 17.35. Mostrar uso del CPU
- El administrador de máquinas virtuales lista el porcentaje de CPU en uso para todas las máquinas virtuales en su sistema.
Figura 17.36. Mostrar uso del CPU
17.15. Mostrar uso de memoria
- Desde la pestaña Ver, seleccione la casilla de verificación Uso de memoria.
Figura 17.37. Mostrar uso de memoria
- El administrador de máquinas virtuales lista el porcentaje de memoria en uso (en megabytes) para todas las máquinas virtuales en su sistema.
Figura 17.38. Mostrar uso de memoria
17.16. Managing a Virtual Network
- From the Edit menu, select Host Details.
Figura 17.39. Selecting Host Details
- This will open the Host Details menu. Click the Virtual Networks tab.
Figura 17.40. Virtual Network Configuration
- All available virtual networks are listed on the left-hand box of the menu. You can edit the configuration of a virtual network by selecting it from this box and editing as you see fit.
17.17. Creating a Virtual Network
- Open the Host Details menu (refer to Sección 17.16, “Managing a Virtual Network”) and click the Add button.
Figura 17.41. Virtual Network Configuration
This will open the Create a new virtual network menu. Click Forward to continue.Figura 17.42. Creating a new virtual network
- Enter an appropriate name for your virtual network and click Forward.
Figura 17.43. Naming your virtual network
- Enter an IPv4 address space for your virtual network and click Forward.
Figura 17.44. Choosing an IPv4 address space
- Define the DHCP range for your virtual network by specifying a Start and End range of IP addresses. Click Forward to continue.
Figura 17.45. Selecting the DHCP range
- Select how the virtual network should connect to the physical network.
Figura 17.46. Connecting to physical network
If you select Forwarding to physical network, choose whether the Destination should be NAT to any physical device or NAT to physical device eth0.Click Forward to continue. - You are now ready to create the network. Check the configuration of your network and click Finish.
Figura 17.47. Ready to create network
- The new virtual network is now available in the Virtual Network tab of the Host Details menu.
Figura 17.48. New virtual network is now available
Capítulo 18. Detección y resolución de errores
18.1. Sinopsis y ubicación de los archivos de registro
- El directorio de configuración principal del componente de virtualización de Red Hat es
/etc/xen/
. Este directorio contiene el daemonxend
y otros archivos de configuración de máquinas virtuales. Los scripts de red también se encuentran en este directorio (en el subdirectorio/scripts
) - Todos los archivos de registro que pueden ser consultados durante la etapa de detección y solución de errores se encuentran en el directorio
/var/log/xen
.
- El directorio predeterminado para todas las imágenes de discos de las máquinas virtuales basadas en archivos es
/var/lib/xen
. - La información del componente de virtualización para el sistema de archivos
/proc
está en el directorio/proc/xen
.
18.2. Descripción de los archivos de registro
xend
y el proceso qemu-dm
, 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 daemonxend
, ya sean éstos eventos normales del sistema o acciones iniciadas por el operador. Todas las operaciones sobre la máquina virtual (crear, apagar, destruir, etc.) aparecen aquí. Elxend.log
es, generalmente, el primer lugar donde se debe buscar información para detectar 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 eventos de error dexend
y los subsistemas de virtualización (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 procesoqemu-dm
para cada huésped virtualizado. Cuando utilice este archivo de registro debe obtener el PID del procesoqemu-dm
utilizando el comandops
. Examine los argumentos del proceso para aislar el procesoqemu-dm
en la máquina virtual. Tenga en cuenta que debe reemplazar el símbolo [PID] con el PID del procesoqemu-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.
18.3. Directorios importantes
- Las imágenes de máquinas virtuales están en el directorio
/var/lib/xen/images
.
- Cuando el daemon
xend
reinicia se actualiza la base de datosxend-database
ubicada en el directorio/var/lib/xen/xend-db
.
- Los volcados de máquinas virtuales (ejecutadas con el comando
xm dump-core
) están en el directorio/var/lib/xen/dumps
.
- El directorio
/etc/xen
contiene archivos de configuración usados para administrar recursos del sistema. El archivo de configuración del daemonxend
se llamaxend-config.sxp
y puede ser usado para implementar cambios a lo largo del sistema y para configurar llamadas de red.
- Los comandos
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/
18.4. Herramientas para la detección y solución de problemas
xentop
xm dmesg
xm log
vmstat
iostat
lsof
XenOprofile
systemTap
crash
sysrq
sysrq t
sysrq w
ifconfig
tcpdump
brctl
brctl
es una herramienta de red que inspecciona y modifica la configuración de los puentes 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? ageing timer 1 fe:ff:ff:ff:ff: yes 0.00 2 fe:ff:ff:fe:ff: yes 0.00 # brctl showstp xenbr0 xenbr0 bridge-id 8000.fefffffffff designated-root 8000.fefffffffff root-port 0 path-cost 0 max-age 20.00 bridge-max-age 20.00 hello-time 2.00 bridge-hello-time 2.00 forward-delay 0.00 bridge-forward-delay 0.00 ageing-time 300.01 hello-timer 1.43 tcn-timer 0.00 topology-change-timer 0.00 gc-timer 0.02
18.5. Detección y solución de errores con los archivos de registro
xend.log
file contains the same basic information as when you run the xm log
command. It resides in the /var/log/
directory. Here is an example log entry for when you create a domain running a kernel:
[2006-12-27 02:23:02 xend] ERROR (SrvBase: 163) op=create: Error creating domain: (0, 'Error') Traceback (most recent call list) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvBase.py" line 107 in_perform val = op_method (op,req) File "/usr/lib/python2.4/site-packages/xen/xend/server/SrvDomainDir.py line 71 in op_create raise XendError ("Error creating domain: " + str(ex)) XendError: Error creating domain: (0, 'Error')
xend-debug.log
, es bastante útil para los administradores de sistemas ya que contiene una información más detallada que la dada en xend.log
. A continuación está el mismo dato de error del problema de creación del dominio:
ERROR: Will only load images built for Xen v3.0 ERROR: Actually saw: GUEST_OS=netbsd, GUEST_VER=2.0, XEN_VER=2.0; LOADER=generic, BSD_SYMTAB' ERROR: Error constructing guest OS
18.6. Detección y solución de errores con la consola serial
grub.conf
para activar la consola serial 38400-bps en /dev/ttyS0
de com1:
title Red Hat Enterprise Linix (2.6.18-8.2080_RHEL5xen0) root (hd0,2) kernel /xen.gz-2.6.18-8.el5 com1=38400,8n1 module /vmlinuz-2.618-8.el5xen ro root=LABEL=/rhgb quiet console=xvc console=tty xencons=xvc module /initrd-2.6.18-8.el5xen.img
sync_console
can help determine a problem that causes hangs with asynchronous hypervisor console output, and the "pnpacpi=off"
works around a problem that breaks input on the serial console. The parameters "console=ttyS0"
and "console=tty"
means that kernel errors get logged with on both the normal VGA console and on the serial console. Then you can install and set up ttywatch
to capture the data on a remote host connected by a standard null-modem cable. For example, on the remote host you could type:
ttywatch --name myhost --port /dev/ttyS0
/dev/ttyS0
hasta /var/log/ttywatch/mihost.log
.
18.7. Acceso de consola del huésped paravirtualizado
xm console [domain name or number]
18.8. Acceso a la consola de un huésped totalmente virtualizado
grub.conf
file, and include the 'console =ttyS0 console=tty0'
parameter. This ensures that the kernel messages are sent to the virtual serial console (and the normal graphical console). If you plan to use the virtual serial console in a full virtualized guest, you must edit the configuration file in the /etc/xen/
directory. On the host domain, you can then access the text console by typing:
xm console
18.9. Implementar persistencia Lun
udev
que implementa persistencia Lun. Antes de implementar persistencia Lun en su sistema, asegúrese de adquirir los UUID apropiados. Una vez obtenga esta información, edite el archivo scsi_id
ubicado en el directorio /etc
para configurar la persistencia Lun. Una vez tenga este archivo abierto en un editor de texto, comente esta línea:
# options=-b
# options=-g
# scsi_id -g -s /block/sdc
[root@devices] # scsi_id -g -s /block/sdc *3600a0b80001327510000015427b625e*
20-names.rules
ubicado en el directorio /etc/udev/rules.d
. las reglas de nombres de dispositivos deben seguir el siguiente formato:
# KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="UUID", NAME="devicename"
KERNEL="sd*", BUS="scsi", PROGRAM="sbin/scsi_id", RESULT="3600a0b80001327510000015427b625e ", NAME="mydevicename"
/dev/sd*
para inspeccionar el UUID dado. Cuando encuentra un dispositivo coincidente, se crea un nodo de dispositivo llamado /dev/devicename
. En este ejemplo, el nodo de dispositivo es /dev/mydevice
. Finalmente, debe anexar el archivo rc.local
ubicado en el directorio /etc
con esta ruta:
/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 estarán en el directorio /dev/mpath
. Estos nombres Lun son persistentes a lo largo de reinicios porque crean los sobrenombres en la identificación wwid del lun.
18.10. Consideraciones referentes a SELinux
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_trans
pone xend
en modo sin restricciones después de reiniciar el daemon. Es mejor desactivar la protección para un daemon en particular y no para todo el sistema. Se aconseja que no se etiqueten los directorios usados en otras partes como xen_image_t
.
18.11. Acceso a los datos en la imagen de disco del huésped
yum install kpartx kpartx -av /dev/xen/guest1 add map guest1p1 : 0 208782 linear /dev/xen/guest1 63 add map guest1p2: 0 16563015 linear /dev/xen/guest1 208845
# kpartx -a /dev/xen/guest1 #vgscan Reading all physical volumes . This may take a while... Found volume group "VolGroup00" using metadata type 1vm2 # vgchange -ay VolGroup00 2 logical volume(s) in volume group VolGroup00 now active. # lvs LV VG Attr Lsize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M # mount /dev/VolGroup00/LogVol00 /mnt/ .... #umount /mnt/ #vgchange -an VolGroup00 #kpartx -d /dev/xen/guest1
vgchange -an
, remueva las particiones con kpartx-d
y borre el dispositivo en bucle con losetup -d
.
18.12. Situaciones comunes en la detección y solución de errores
xend
. Cuando escribe xm list1
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' )
xen-hypervisor
. Para corregir este problema se debe seleccionar el kernel xen-hypervisor
durante el arranque del sistema (o establecer el kernel xen-hypervisor
como el kernel predeterminado en el archivo grub.conf
).
18.13. Errores del dispositivo en bucle
/etc/modprobe.conf
. Cuando se modifique el archivo modprobe.conf
, incluya esta línea:
options loop max_loop=64
phy: block device
o tap:aio
. Para emplear huéspedes respaldados por dispositivos en bucle para un sistema totalmente virtualizado utilice los comandos phy: device
o file: file
.
18.14. Errores durante la creación de huéspedes
"Invalid argument"
error message. This usually means that the kernel image you are trying to boot is incompatible with the hypervisor. An example of this would be if you were attempting to run a non-PAE FC5 kernel on a PAE only FC6 hypervisor.
grub.conf
utiliza el nuevo kernel de forma predeterminada y no el kernel virtualizado.
/etc/sysconfig/kernel/
. Debe asegurarse de que el parámetro kernel-xen
está establecido como la opción predeterminada en el archivo gb.conf
.
18.15. Errores con la consola serial
grub.conf
y cambiar el parámetro del puerto com a:
serial --unit=1 --speed=115200
title RHEL5 i386 Xen (2.6.18-1.2910.el5xen) root (hd0, 8) kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200,8n1 module /boot/vmlinuz-2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=tty console=ttyS1115200 module /boot/initrd-2.8.6.18-12910.el5xen.img title RHEL5 i386 xen (2.6.18.-1.2910.el5xen root (hd0, 8) kernel /boot/xen.gz-2.6.18-1.2910.el5 com2=115200 console=com2l module /boot/vmlinuz2.6.18-1.2910.el5xen to root=LABEL=RHEL5_i386 console=xvc xencons=xvc module /boot/ititrd-2.6.18-1.2910.el5xen.img
grub.conf
deben permitir que la consola virtual funcione apropiadamente. Usted puede utilizar cualquier número para ttyS
y debe funcionar como ttyS0
.
18.16. Errores con el puente de red
/etc/sysconfig/network-scripts
. You should use a process to setup multiple Xen bridges. This is an example config file for a second NIC called 'eth1'
:
#/etc/sysconfig/network-scripts/fcfg-eth1 DEVICE=eth1 BOOTPROTO=static ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 GATEWAY=10.1.1.254 ARP=yes
/etc/xen/scripts/network-bridge
a /etc/xen/scripts/network-bridge.xen
.
/etc/xen/xend-config.sxp
and add a line to your new network bridge script (this example uses "network-virtualization-multi-bridge"
).
xend-config.sxp
, la nueva línea debe reflejar el nuevo script:
network-script network-xen-multi-bridge
network-script network-bridge
xenbr0
y xenbr1
) y los encadena a eth1
y eth0
respectivamente:
# !/bin/sh # network-xen-multi-bridge # Exit if anything goes wrong set -e # First arg is operation. OP=$1 shift script=/etc/xen/scripts/network-bridge.xen case ${OP} in start) $script start vifnum=1 bridge=xenbr1 netdev=eth1 $script start vifnum=0 bridge=xenbr0 netdev=eth0 ;; stop) $script stop vifnum=1 bridge=xenbr1 netdev=eth1 $script stop vifnum=0 bridge=xenbr0 netdev=eth0 ;; status) $script status vifnum=1 bridge=xenbr1 netdev=eth1 $script status vifnum=0 bridge=xenbr0 netdev=eth0 ;; *) echo 'Unknown command: ' ${OP} echo 'Valid commands are: start, stop, status' exit 1 esac
18.17. Configuración de portátiles
ifcfg-dummy0
y está ubicado en el directorio /etc/sysconfig/network-scripts/
DEVICE =dummy0 BOOTPROTO=none ONBOOT=yes USERCTL=no IPV6INIT=no PEERDNS=yes TYPE=Ethernet NETMASK=255.255.255.0 IPADDR=10.1.1.1 ARP=yes
xenbr0
a dummy0
para permitir la conexión de red incluso cuando se esté desconectado de la red física.
xend-config.sxp
file. You must locate the ( network-script 'network-bridge' bridge=xenbr0
) section and add include this in the end of the line:
netdev=dummy0
/etc/sysconfig/
directory to reflect the example below:
NETWORKING=yes HOSTNAME=localhost.localdomain GATEWAY=10.1.1.1 IPADDR=10.1.1.10 NETMASK=255.255.255.0
S99XenLaptopNAT
ubicado en el directorio /etc/rc3.d
para que refleje el ejemplo dado a continuación:
#!/bin/bash # # XenLaptopNAT Startup script for Xen on Laptops # # chkconfig: - 99 01 # description: Start NAT for Xen Laptops # # PATH=/usr/bin:/sbin:/bin:/usr/sbin # export PATH GATEWAYDEV=`ip route | grep default | awk {'print $5'}` iptables -F case "$1" in start) if test -z "$GATEWAYDEV"; then echo "No gateway device found" else echo "Masquerading using $GATEWAYDEV" /sbin/iptables -t nat -A POSTROUTING -o $GATEWAYDEV -j MASQUERADE fi echo "Enabling IP forwarding" echo 1 > /proc/sys/net/ipv4/ip_forward echo "IP forwarding set to `cat /proc/sys/net/ipv4/ip_forward`" echo "done." ;; *) echo "Usage: $0 {start|restart|status}" ;; esac
/etc/rc3.d/S99XenLaptopNAT
modprobe.conf
debe incluir estas líneas:
alias dummy0 dummy options dummy numdummies=1
18.18. Starting Domains Automatically During System Boot
/etc/xen/auto
. Este archivo apunta al archivo de configuración del huésped necesario para iniciar automáticamente. El proceso de arranque es serializado; lo que significa que entre mayor sea el número de huéspedes, más tiempo tomará el proceso de arranque. Este ejemplo muestra cómo utilizar enlaces simbólicos para el huésped rhel5vm01
:
[root@python xen]# cd /etc/xen [root@python xen]# cd auto [root@python auto]# ls [root@python auto]# ln -s ../rhel5vm01 . [root@python auto]# ls -l lrwxrwxrwx 1 root root 14 Dec 14 10:02 rhel5vm01 -> ../rhel5vm01 [root@python auto]#
18.19. Modificar Domain0
grub.conf
configuration file, that resides in the /etc
directory. Because of the large number of domains to manage, many system administrators prefer to use the 'cut and paste' method when editing grub.conf
. If you do this, make sure that you include all five lines in the Virtualization entry (or this will create system errors). If you require Xen hypervisor specific values, you must add them to the 'xen' line. This example represents a correct grub.conf
Virtualization entry:
# boot=/dev/sda/ default=0 timeout=15 #splashimage=(hd0, 0)/grub/splash.xpm.gz hiddenmenu serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen) root (hd0, 0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 module /vmlinuz-2.6.17-1.2519.4.21el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
'dom0_mem=256M'
. This example represents the respective grub.conf
xen entry:
# boot=/dev/sda default=0 timeout=15 #splashimage=(hd0,0)/grubs/splash.xpm.gz hiddenmenu serial --unit=0 --speed =115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console title Red Hat Enterprise Linux Server (2.6.17-1.2519.4.21. el5xen) root (hd0,0) kernel /xen.gz-2.6.17-1.2519.4.21.el5 com1=115200,8n1 dom0_mem=256MB module /vmlinuz-2.6.17-1.2519.4.21.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.17-1.2519.4.21.el5xen.img
18.20. Archivos de configuración del huésped
name = "rhel5vm01" memory = "2048" disk = ['tap:aio:/xen/images/rhel5vm01.dsk,xvda,w',] vif = ["type=ieomu, mac=00:16:3e:09:f0:12 bridge=xenbr0', "type=ieomu, mac=00:16:3e:09:f0:13 ] vnc = 1 vncunused = 1 uuid = "302bd9ce-4f60-fc67-9e40-7a77d9b4e1ed" bootloader = "/usr/bin/pygrub" vcpus=2 on_reboot = "restart" on_crash = "restart"
serial="pty"
is the default for the configuration file. This configuration file example is for a fully-virtualized guest:
name = "rhel5u5-86_64" builder = "hvm" memory = 500 disk = ['file:/xen/images/rhel5u5-x86_64.dsk.hda,w'] vif = [ 'type=ioemu, mac=00:16:3e:09:f0:12, bridge=xenbr0', 'type=ieomu, mac=00:16:3e:09:f0:13, bridge=xenbr1'] uuid = "b10372f9-91d7-ao5f-12ff-372100c99af5' device_model = "/usr/lib64/xen/bin/qemu-dm" kernel = "/usr/lib/xen/boot/hvmloader/" vnc = 1 vncunused = 1 apic = 1 acpi = 1 pae = 1 vcpus =1 serial ="pty" # enable serial console on_boot = 'restart'
18.21. Clonar el archivo de configuración del huésped
uuidgen(1)
command). Then for the vif
entries you must define a unique MAC address for each guest (if you are copying a guest configuration from an existing guest, you can create a script to handle it). For the xen bridge information, if you move an existing guest configuration file to a new host, you must update the xenbr
entry to match your local networking configuration. For the Device entries, you must modify the entries in the 'disk='
section to point to the correct guest image.
/etc/sysconfig/network
file to match the new guest's hostname.
/etc/sysconfig/network-scripts/ifcfg-eth0
para que coincida con la salida del archivo ifconfig eth0
y si está utilizando direcciones IP estáticas, debe modificar la entrada IPADDR.
18.22. Crear un script para generar direcciones MAC
#! /usr/bin/python # macgen.py script generates a MAC address for Xen guests # import random mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] print ':'.join(map(lambda x: "%02x" % x, mac)) Generates e.g.: 00:16:3e:66:f5:77 to stdout
18.23. Configurar la migración en vivo de una máquina virtual
xm migrate
command). Live migration can be done from the same command. However there are some additional modifications that you must do to the xend-config
configuration file. This example identifies the entries that you must modify to ensure a successful migration:
(xend-relocation-server yes)
- The default for this parameter is 'no', which keeps the relocation/migration server deactivated (unless on a trusted network) and the domain virtual memory is exchanged in raw form without encryption.
(xend-relocation-port 8002)
- Este parámetro establece el puerto que
xend
utiliza para realizar la migración. Este valor es correcto, asegúrese, sin embargo, de borrar el comentario que va antes de éste. (xend-relocation-address )
- Este parámetro es la dirección desde la cual se escucha por conexiones de socket de reubicación una vez se active
xend-relocation-server
. Cuando esté escuchando se restringe la migración a una interfaz particular. (xend-relocation-hosts-allow )
- This parameter controls the host that communicates with the relocation port. If the value is empty, then all incoming connections are allowed. You must change this to a space-separated sequences of regular expressions (such as
xend-relocation-hosts-allow- '^localhost\\.localdomain$'
). A host with a fully qualified domain name or IP address that matches these expressions are accepted.
18.24. Interpretación de mensajes de error
failed domain creation due to memory shortage, unable to balloon domain0
xend.log
por 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
command. If domain0 is not ballooned down, you can use the command "xm mem-set Domain-0 NewMemSize"
to check memory.
wrong kernel image: non-PAE kernel on a PAE
[root@smith]# xm create -c va base Using config file "va-base" Error: (22, 'invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] ERRORs (XendDomainInfo:202) Domain construction failed Traceback (most recent call last) File "/usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 195 in create vm.initDomain() File " /usr/lib/python2.4/site-packages/xen/xend/XendDomainInfo.py", line 1363 in initDomain raise VmError(str(exn)) VmError: (22, 'Invalid argument') [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1449] XendDlomainInfo.destroy: domin=1 [2006-12-14 14:55:46 xend.XendDomainInfo 3874] DEBUG (XenDomainInfo: 1457] XendDlomainInfo.destroy:Domain(1)
Unable to open a connection to the Xen hypervisor or daemon
/etc/hosts
. Revise el archivo y verifique si la entrada localhost está activada. A continuación se da un ejemplo de una entrada de localhost 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.log
):
Bridge xenbr1 does not exist!
[root@trumble virt]# xm create r5b2-mySQL01 Using config file " r5b2-mySQL01" Going to boot Red Hat Enterprise Linux Server (2.6.18.-1.2747 .el5xen) kernel: /vmlinuz-2.6.18-12747.el5xen initrd: /initrd-2.6.18-1.2747.el5xen.img Error: Device 0 (vif) could not be connected. Hotplug scripts not working.
xend.log
muestra 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
vif
. Cuando ubique la entrada vif
en el archivo de configuración, asumiendo que esté utilizando xenbr0
como puente predeterminado, asegúrese de que la entrada sea similar a:
# vif = ['mac=00:16:3e:49:1d:11, bridge=xenbr0',]
[root@python xen]# xm shutdown win2k3xen12 [root@python xen]# xm create win2k3xen12 Using config file "win2k3xen12". /usr/lib64/python2.4/site-packages/xenxm/opts.py:520: Deprecation Warning: Non ASCII character '\xc0' in file win2k3xen12 on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details execfile (defconfig, globs, locs,) Error: invalid syntax 9win2k3xen12, line1)
18.25. Recursos de detección y corrección de errores en línea
- Centro de virtualización de Red Hat
http://www.openvirtualization.com
- Documentación de Red Hat Enterprise Linux 5 Beta 2
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/index.html
- Libvirt API
http://www.libvirt.org
- Página principal del proyecto virt-manager
http://virt-manager.et.redhat.com
- Centro de la comunidad Xen
http://www.xensource.com/xen/xen/
- Sinopsis de la tecnología de virtualización
http://virt.kernelnewbies.org
- Proyectos de tecnologías emergentes
http://et.redhat.com
Capítulo 19. Recursos adicionales
19.1. Sitios web útiles
- http://www.cl.cam.ac.uk/research/srg/netos/xen/ — El sitio web del proyecto del administrador de máquinas paravirtualizadas Xen™ del cual Red Hat Virtualization se deriva. Este sitio mantiene los binarios y el código fuente del proyecto Xen. Asimismo contiene información, sinopsis de la arquitectura, documentación y enlaces relacionados con Xen y las tecnologías asociadas.
- http://www.libvirt.org/ — El sitio web oficial para el API de virtualización
libvirt
que interactúa con el marco de trabajo de un sistema operativo huésped. - http://virt-manager.et.redhat.com/ — El sitio web del proyecto para el Administrador de máquinas virtuales (virt-manager), la aplicación gráfica para la administración de máquinas virtuales.
19.2. Documentación instalada
/usr/share/doc/xen-<version-number>/
—. This directory contains a wealth of information about the Xen para-virtualization hypervisor and associated management tools, including a look at various example configurations, hardware-specific information, and the current Xen upstream user documentation.man virsh
and/usr/share/doc/libvirt-<version-number>
— Contains subcommands and options for thevirsh
virtual machine management utility as well as comprehensive information about thelibvirt
virtualization library API./usr/share/doc/gnome-applet-vm-<version-number>
— Documentation for the GNOME graphical panel applet that monitors and manages locally-running virtual machines./usr/share/doc/libvirt-python-<version-number>
— Provides details on the Python bindings for thelibvirt
library. Thelibvirt-python
package allows python developers to create programs that interface with thelibvirt
virtualization management library./usr/share/doc/python-virtinst-<version-number>
— Provides documentation on thevirt-install
command that helps in starting installations of Fedora and Red Hat Enterprise Linux related distributions inside of virtual machines./usr/share/doc/virt-manager-<version-number>
— Provides documentation on the Virtual Machine Manager, which provides a graphical tool for administering virtual machines.
Apéndice A. Laboratorio 1
- Para determinar si su CPU tiene soporte PAE, escriba:
grep pae /proc/cpuinfo
- El siguiente mensaje de salida muestra una CPU con soporte PAE. Si el comando no retorna ningún valor, la CPU no tiene soporte PAE. Todos los ejercicios del laboratorio requieren una CPU i386 con soporte PAE o arquitecturas x86_64 o ia64.
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up est tm2
virt-install
.
virt-install
.
- Para instalar un huésped Xen Red Hat Enterprise Linux 5 Beta 2, escriba en la línea de comandos:
virt-install
. - Cuando se le pregunte si desea instalar un huésped totalmente virtualizado escriba:
no
. - Escriba
rhel5b2-pv1
como el nombre de su máquina virtual. - Escriba 500 como el valor de asignación de RAM
- Escriba
/xen/rhel5b2-pv1.img
como disco (imagen huésped). - Escriba 6 para el tamaño de su disco (imagen huésped).
- Escriba
yes
para activar el soporte gráfico. - Escriba
nfs:server:/ruta/a/rhel5b2
como la ubicación de la instalación. - La instalación iniciará. Proceda normalmente con la instalación.
- Después de la instalación escriba
/etc/xen/rhel5b2-pv1
y realice los siguientes cambios: #vnc=1#vncunused=1sdl=1 - Utilice un editor de textos para modificar
/etc/inittab
y añadirinit 5.#id:3:initdefault:id:5:initdefault:
virt-manager
.
virt-manager
.
- Para instalar el huésped Xen Red Hat Enterprise Linux 5 Beta 2, escriba en la línea de comandos:
virt-manager
. - En la ventana Abrir Conexión, seleccione el anfitrión Xen Local y haga clic en Conectar.
- Start Red Hat's Virtual Machine Manager application, and from the File menu, click on New.
- Haga clic en Adelante.
- Escriba
rhel5b2-pv2
como el nombre de su sistema y haga clic en Adelante. - Seleccione Paravirtualizado y haga clic en Adelante.
- Escriba
nfs:server:/ruta/a/rhel5b2
como la URL del medio de instalación y haga clic en Adelante. - Seleccione
Archivo simple
, escriba/xen/rhel5b2-pv2.img
en la ubicación del archivo. Escoja 6000 MB y haga clic en Adelante. - Escoja 500 como memoria virtual de inicio y como máximo de memoria. Haga clic en Adelante.
- Haga clic en Finalizar
- To determine if your CPU has Intel-VT or AMD-V support, type the following command:
egrep -e 'vmx|svm' /proc/cpuinfo
- El siguiente mensaje de salida muestra una CPU que soporta Intel-VT:
.flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc pni monitor vmx est tm2 xtpr
Si el comando no retorna ningún mensaje, la CPU no soporta Intel-VT o AMD-V. - Para determinar si su CPU tiene soporte Intel-VT o AMD-V, escriba el siguiente comando:
cat /sys/hypervisor/properties/capabilities
- The following output shows that Intel-VT support has been enabled in the BIOS. If the command returns nothing, then go into the BIOS Setup Utlility and look for a setting related to 'Virtualization', i.e. 'Intel(R) Virtualization Technology' under 'CPU' section on a IBM T60p. Enable and save the setting and do a power off to take effect.
xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p
virt-install
:
- Para instalar un huésped Xen Red Hat Enterprise Linux 5 Beta 2, escriba en la línea de comandos:
virt-install
. - Cuando se le pregunte se desea instalar un huésped totalmente virtualizado escriba
yes
. - Escriba
rhel5b2-pv2
como el nombre de su máquina virtual. - Escriba 500 como valor de asignación de memoria.
- Escriba
/xen/rhel5b2-fv1.img
para el disco (imagen huésped). - Escriba 6 para el tamaño de su disco (imagen huésped).
- Escriba
yes
para activar el soporte gráfico. - Escriba
/dev/cdrom
para la imagen de CD virtual. - The VNC viewer appears within the installation window. If there is an error message that says “main: Unable to connect to host: Connection refused (111)”, then type the following command to proceed:
vncviewer localhost:5900
. VNC port 5900 refers to the first Xen guest that is running on VNC. If it doesn't work, you might need to use 5901, 5902, etc.
virt-manager
:
- Para instalar el huésped Xen Red Hat Enterprise Linux 5 Beta 2, escriba en la línea de comandos:
virt-manager
. - En la ventana Abrir Conexión, seleccione el anfitrión Xen Local y haga clic en Conectar.
- Start Red Hat's Virtual Machine Monitor application, and from the File menu, click on New.
- Haga clic en Adelante.
- Escriba
rhel5b2-fv2
como el nombre de su sistema y haga clic en Adelante. - Seleccione Completamente virtualizada y haga clic en Adelante.
- Especifique CD-ROM o DVD e introduzca la ruta al medio de instalación. Especifique la ubicación de la imagen ISO si está realizando una instalación con una imagen ISO. Haga clic en Adelante.
- Seleccione
Archivo simple
, escriba/xen/rhel5b2-fv2.img
en la ubicación del archivo. Escoja 6000 MB y haga clic en Adelante. - Escoja 500 como memoria virtual de inicio y como máximo de memoria. Haga clic en Adelante.
- Haga clic en Finalizar
- Aparecerá la ventana Consola de máquina virtual.
virt-manager
.
virt-manager
.
- Las misma instrucciones usadas en la secuencia 6 son aplicables aquí.
virt-manager
.
virt-manager
.
- Las misma instrucciones usadas en la secuencia 6 son aplicables aquí.
virt-manager
.
virt-manager
:
- Para instalar Windows XP en su anfitrión Red Hat Enterprise Linux 5, escriba en la línea de comandos:
virt-manager
. - En la ventana Abrir Conexión seleccione el anfitrión Xen Local y haga clic en Conectar.
- Start Red Hat's Virtual Machine Manager application, and from the File menu click on New.
- Haga clic en Adelante.
- Escriba
winxp
como el nombre de su sistema y haga clic en Adelante. - Seleccione Completamente virtualizada y haga clic en Adelante.
- Especifique CD-ROM o DVD e introduzca la ruta al medio de instalació. Especifique la ubicación de la imagen ISO si está realizando la instalación desde una imagen ISO. Haga clic en Adelante.
- Seleccione
Archivo simple
, escriba/xen/winxp.img
en la ubicación del archivo. Escoja 6000 MB y haga clic en Adelante. - Escoja 1024 como memoria virtual de inicio y como máximo de memoria. Seleccione 2 para VCPU. Haga clic en Adelante.
- Haga clic en Finalizar
- Aparecerá la ventana Consola de máquina virtual. Proceda normalmente y finalice la instalación.
- Escoja el sistema de archivos FAT para formatear la partición
C:\
. Red Hat Enterprise Linux 5 no viene con los módulos de kernel para NTFS. El montaje o la escritura de archivos a una imagen huésped Xen puede no ser tan sencillo si formatea la partición con el sistema de archivos NTFS. - Después de reiniciar el sistema por primera vez, edite la imagen huésped
winxp
:losetup /dev/loop0 /xen/winxp.imgkpartx -av /dev/loop0mount /dev/mapper/loop0p1 /mntcp -prv $WINDOWS/i386 /mnt/
. Esto solucionará un problema que podría encontrar en una etapa posterior de la instalación de Windows. - Reinicie el huésped Xen manualmente escribiendo
xm create -c winxp/
. - En la ventana del Administrador de máquinas virtuales seleccione el huésped Xen
winxp
y haga clic en Abrir. - Aparecerá la ventana Consola de máquina virtual. Proceda normalmente y finalice la instalación.
- Whenever a 'Files Needed' dialog box appears, change the path
GLOBALROOT\DEVICE\CDROM0\I386
toC:\I386
. Depending on your installation, you may or may not see this problem. You may be prompted for missing files during the installation. Changing the path toC:\I386
should compensate for this problem. - Si la consola de huésped Xen se cuelga, haga clic en
Apagar
. Haga las siguientes modificaciones en /etc/xen/winxp:#vnc=1#vncunused=1sdl=1#vcpus=2
- Repita el paso 14 y proceda con la instalación.
Apéndice B. Laboratorio 2
host1
y host2
.
xm
) y se comunica con xend. Para habilitar la migración entre máquinas, usted debe configurarlo para soportar la migración en vivo:
- Para hacer una copia de seguridad de su archivo
xend-config.sxp
:cp -pr /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.default
- Modifique
/etc/xen/xend-config.sxp
y realice los siguientes cambios:#(xend-unix-server yes)(xend-relocation-server yes)(xend-relocation-port 8002)(xend-relocation-address '')(xend-relocation-hosts-allow '')#(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')
- Reinicie xend :
service xend restart
.
- Modifique
/etc/exports
e incluya la línea:/xen *(rw,sync,no_root_squash)/
- Guarde
/etc/exports
y reinicie el servidor NFS. Asegúrese de que el servidor NFS sea iniciado de forma predeterminada:service nfs start
;chkconfig nfs on
. - Una vez iniciado el servidor NFS en
host1
, se puede montar en host2mount host1:/xen
. - Ahora inicie el huésped Xen en
host1
y seleccionefc6-pv1
(ofc6-pv2
del Laboratorio 1):xm create -c fc6-pv1
- Descargue
gnump3d-2.9.9.9.tar.bz2
desdehttp://www.gnump3d.org/
. Descomprima el archivo tar en el directoriognump3d-2.9.9.9/
, compile e instale la aplicación:tar xvjf gnump3d-2.9.9.9.tar.bz2; cd gnump3d-2.9.9.9/ ; make install
- Create a
/home/mp3
directory and copy TruthHappens.ogg from Red Hat's Truth Happens page tomkdir /home/mp3wget -c http://www.redhat.com/v/ogg/TruthHappens.ogg
- Inicie el servidor streaming escribiendo
command:gnump3d
- En cualquiera de los anfitriones Xen, inicie Movie Player. Si no está instalado, instale los rpm de totem e iso-codecs. Haga clic en aplicaciones, luego en Sonido y Video y finalmente el Movie Player.
- Haga clic en Movie, luego en Abrir ubicación. Introduzca http://guest:8888/TruthHappens.ogg.
- Ejecute el archivo
TruthHappens.ogg
en uno de los dos anfitriones Xen. - Ejecute la migración en vivo desde
host1
ahost2
:xm migrate –live fc6-pv1 host2
- Abra varias ventanas de terminales en ambos anfitriones Xen con el siguiente comando:
watch -n1 xm list
- Observe cómo la migración en vivo inicia. Note cómo la migración en vivo se completa.
gdm
starts up. Run VNC viewer and connect to the Xen guest. Play with the Xen guest when the live migration occurs. Attempt to pause/resume, and save/restore the Xen guest and observe what happens to the VNC viewer. If you connect to the VNC viewer via localhost:590x
, and do a live migration, you won't be able to connect to the VNC viewer again when it dies. This is a known bug.
Apéndice C. Historial de cambios
Historial de revisiones | ||||
---|---|---|---|---|
Revisión 2.0-11.400 | 2013-10-31 | Rüdiger Landmann | ||
| ||||
Revisión 2.0-11 | 2012-07-18 | Anthony Towns | ||
| ||||
Revisión 5.1.0-10 | Fri Aug 3 2007 | Michael Hideo Smith | ||
|