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
ftpd
Negrita monoespaciado
Para ver el contenido del archivomy_next_bestselling_novel
en su directorio actual de trabajo, escriba el comandocat my_next_bestselling_novel
en 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 incluyenfilename
para sistema de archivos,file
para archivos ydir
para directorios. Cada clase tiene su propio conjunto asociado de permisos.
Seleccionar 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).→ → desde la barra del menú principal para lanzarPara 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, tecleessh
en un intérprete de comandos de shell. Si la máquina remota esnombredeusuario
@dominio.nombre
example.com
y su nombre de usuario en esa máquina es john, tecleessh john@example.com
.El comandomount -o remount
remonta 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.
yum
xen
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-virtinst
virt-install
para crear máquinas virtuales.
libvirt
libvirt
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-python
libvirt
.
virt-manager
virt-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.
yum
kvm
. 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-virtinst
virt-install
para crear máquinas virtuales.
libvirt
libvirt
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-python
libvirt
.
virt-manager
virt-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 rhel5PV
virt-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 WindowsGuest
WindowsGuest
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):w
Command (m for help):q
ext3
.
# mke2fs -j /dev/sdb1
# mount /dev/sdb1 /myfiles
fstab
file, the initrd
file or used by the kernel command line. If less privileged users, especially virtualized guests, have write access to whole partitions or LVM volumes the host system could be compromised.
/dev/sdb
). Virtualized guests with access to block devices may be able to access other block devices on the system or modify volume labels which can be used to compromise the host system. Use partitions (for example, /dev/sdb1
) or LVM volumes to prevent this issue.
multipath
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/sdb1
sdc
--driver tap --mode readonly
/dev/sdb
on Linux or D: drive
, or similar, on Windows. This device may require formatting.
multipath
must use 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
GRUB
GRUB
), 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 YourGuestName
YourGuestName
is the name of the configuration file or the guest operating system's name as defined in its configuration file in the name = "os_name" parameter.
kernel-2.4.21-60.EL
for all the required headers.
kmod-xenpv
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 YourGuestName
YourGuestName
is the name of the configuration file or the guest operating system's name as defined in its configuration file in the name = "os_name" parameter.
weak-modules
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 YourGuestName
kudzu
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.
8139cp
8139too
e1000
/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 /virtstorage
semanage fcontext -a -t xen_image_t "/virtstorage(/.*)?"
semanage fcontext -a -t virt_image_t "/virtstorage(/.*)?"
/etc/selinux/targeted/contexts/files/file_contexts.local
, 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 migrateGuestName
libvirtURI
--live
para el comando virsh migrate
.
# virsh migrate--liveGuestName
libvirtURI
/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 starttestvm1
Domaintestvm1
started
[et-virt07 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
[et-virt07 images]# time virsh savetestvm1
testvm1
.sav real 0m15.744s user 0m0.188s sys 0m0.044s
[et-virt07 images]# ls -lrttestvm1
.sav -rwxr-xr-x 1 root root 1075657716 Jan 12 06:46testvm1
.sav
[et-virt07 images]# virsh list Id Name State ---------------------------------- Domain-0 running
[et-virt07 images]# virsh restore testvm1
.sav
[et-virt07 images]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
domain-id
from et-virt08
to et-virt07
. The hostname you are migrating to and <domain-id> must be replaced with valid values. This example uses the et-virt08
host which must have SSH access to et-virt07
[et-virt08 ~]# xm migrate --live testvm1
et-virt07
et-virt08
[et-virt08 ~]# virsh list Id Name State ---------------------------------- Domain-0 running
et-virt07
:
[et-virt07 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
running
#!/bin/bash while true do touch /var/tmp/$$.log echo `hostname` >> /var/tmp/$$.log echo `date` >> /var/tmp/$$.log cat /var/tmp/$$.log df /var/tmp ls -l /var/tmp/$$.log sleep 3 done
et-virt07
:
[et-virt08 ~]# virsh list
Id Name State
----------------------------------
Domain-0 running
testvm1
blocked
et-virt07
. 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 DestinationURL
GuestName
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/system
Esperar
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.xml
dumpxml
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} filename
restore
(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 filename
virsh
:
# virsh shutdown {domain-id, domain-name or domain-uuid}
on_shutdown
parameter in the guest's configuration file.
virsh
:
#virsh reboot {domain-id, domain-name or domain-uuid}
on_reboot
element in the guest's configuration file.
virsh
:
# virsh destroy {domain-id, domain-name or domain-uuid}
virsh destroy
can corrupt guest file systems . Use the destroy
option only when the guest is unresponsive. For para-virtualized guests, use the shutdown
option(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 cpulist
domain-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} count
count
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-device
virsh 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-manager
virt-manager
can be started remotely using ssh as demonstrated in the following command:
ssh -X host's address
[remotehost]# virt-manager
Using ssh
to manage virtual machines and hosts is discussed further in 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
ftpd
ftpd
virsh
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
raw
qemu-img info
para concocer el tamaño real utilizado por la imagen o ls -ls
en Unix/Linux.
qcow2
qcow
cow
cow
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 409663
guest1
is a Linux guest. The first partition is the boot partition and the second partition is an EXT3 containing the root partition.
/dev/mapper/
.
# kpartx -a /var/lib/libvirt/images/guest1.img
# ls /dev/mapper/ loop0p1 loop0p2
loopXpY
.
/mnt/guest1
for mounting the partition.
# mkdir /mnt/guest1
# mount /dev/mapper/loop0p1
/mnt/guest1 -o loop,ro
/mnt/guest1
directory. Read or copy the files.
# umount /mnt/tmp
# kpartx -d /var/lib/libvirt/images/guest1.img
guest1.img
to the recognized devices in the /dev/mapper/
directory.
# kpartx -a /var/lib/libvirt/images/guest1.img
vgscan
command to find the new volume groups.
# vgscan Reading all physical volumes . This may take a while... Found volume group "VolGroup00" using metadata type lvm2
VolGroup00
by default) with the vgchange -ay
command.
# vgchange -ay VolGroup00 2 logical volumes in volume group VolGroup00 now active.
lvs
command to display information about the new volumes. The volume names (the LV
column) are required to mount the volumes.
# lvs LV VG Attr Lsize Origin Snap% Move Log Copy% LogVol00 VolGroup00 -wi-a- 5.06G LogVol01 VolGroup00 -wi-a- 800.00M
/dev/VolGroup00/LogVol00
in the /mnt/guestboot/
directory.
# mount /dev/VolGroup00/LogVol00 /mnt/guestboot
/mnt/guestboot
directory. Read or copy the files.
# umount /mnt/
VolGroup00
# vgchange -an VolGroup00
# kpartx -d /var/lib/libvirt/images/guest1.img
virsh nodeinfo
command provides information about how many sockets, cores and hyperthreads there are attached a host.
# virsh nodeinfo CPU model: x86_64 CPU(s): 8 CPU frequency: 1000 MHz CPU socket(s): 2 Core(s) per socket: 4 Thread(s) per core: 1 NUMA cell(s): 1 Memory size: 8179176 kB
virsh capabilities
to get additional output data on the CPU configuration.
# virsh capabilities
<capabilities>
<host>
<cpu>
<arch>x86_64</arch>
</cpu>
<migration_features>
<live/>
<uri_transports>
<uri_transport>tcp</uri_transport>
</uri_transports>
</migration_features>
<topology>
<cells num='2'>
<cell id='0'>
<cpus num='4'>
<cpu id='0'/>
<cpu id='1'/>
<cpu id='2'/>
<cpu id='3'/>
</cpus>
</cell>
<cell id='1'>
<cpus num='4'>
<cpu id='4'/>
<cpu id='5'/>
<cpu id='6'/>
<cpu id='7'/>
</cpus>
</cell>
</cells>
</topology>
<secmodel>
<model>selinux</model>
<doi>0</doi>
</secmodel>
</host>
[ Additional XML removed ]
</capabilities>
virsh freecell
command to display the free memory on all NUMA nodes.
# virsh freecell 0: 2203620 kB 1: 3354784 kB
virsh capabilities
command) about NUMA topology.
virsh capabilities
output.
<topology> <cells num='2'> <cell id='0'> <cpus num='4'> <cpu id='0'/> <cpu id='1'/> <cpu id='2'/> <cpu id='3'/> </cpus> </cell> <cell id='1'> <cpus num='4'> <cpu id='4'/> <cpu id='5'/> <cpu id='6'/> <cpu id='7'/> </cpus> </cell> </cells> </topology>
<cell id='1'>
, has physical CPUs 4 to 7.
cpuset
attribute to the configuration file.
virsh edit
.
vcpus
element.
<vcpus>4</vcpus>
cpuset
attribute with the CPU numbers for the relevant NUMA cell.
<vcpus cpuset='4-7'>4</vcpus>
virt-install
provisioning tool provides a simple way to automatically apply a 'best fit' NUMA policy when guests are created.
cpuset
option for virt-install
can use a CPU set of processors or the parameter auto
. The auto
parameter automatically determines the optimal CPU locking using the available NUMA data.
--cpuset=auto
with the virt-install
command when creating new guests.
virsh vcpuinfo
and virsh vcpupin
commands can perform CPU affinity changes on running guests.
virsh vcpuinfo
command gives up to date information about where each virtual CPU is running.
guest1
is a guest with four virtual CPUs is running on a KVM host.
# virsh vcpuinfo guest1
VCPU: 0
CPU: 3
State: running
CPU time: 0.5s
CPU Affinity: yyyyyyyy
VCPU: 1
CPU: 1
State: running
CPU Affinity: yyyyyyyy
VCPU: 2
CPU: 1
State: running
CPU Affinity: yyyyyyyy
VCPU: 3
CPU: 2
State: running
CPU Affinity: yyyyyyyy
virsh vcpuinfo
output (the yyyyyyyy
value of CPU Affinity
) shows that the guest can presently run on any CPU.
# virsh vcpupinguest1
0 4 # virsh vcpupinguest1
1 5 # virsh vcpupinguest1
2 6 # virsh vcpupinguest1
3 7
virsh vcpuinfo
command confirms the change in affinity.
# virsh vcpuinfo guest1
VCPU: 0
CPU: 4
State: running
CPU time: 32.2s
CPU Affinity: ----y---
VCPU: 1
CPU: 5
State: running
CPU time: 16.9s
CPU Affinity: -----y--
VCPU: 2
CPU: 6
State: running
CPU time: 11.9s
CPU Affinity: ------y-
VCPU: 3
CPU: 7
State: running
CPU time: 14.6s
CPU Affinity: -------y
macgen.py
. Now from that directory you can run the script using ./macgen.py
and it will generate a new MAC address. A sample output would look like the following:
$ ./macgen.py 00:16:3e:20:b0:11 #!/usr/bin/python # macgen.py script to generate a MAC address for virtualized guests on Xen # import random # def randomMAC(): mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] return ':'.join(map(lambda x: "%02x" % x, mac)) # print randomMAC()
python-virtinst
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
ftpd
vsftpd
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
vif
xenbr
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.
xm
dmesg
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,8n1
module /boot/vmlinuz-2.6.18-92.el5xen ro root=LABEL=VG_i386console=tty0
console=ttyS0,115200
module /boot/initrd-2.6.18-92.el5xen.img
com2
, 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 GUEST
virsh 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.log
xend-debug.log
xen-hotplug.log
qemu-dm.PID
.log
qemu-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 202You can also use the
lsmod
command to list the loaded para-virtualized drivers. It should output a list containing the xen_vnif
, xen_vbd
, xen_platform_pci
and xen_balloon
modules.
# lsmod|grep xen xen_vbd 19168 1 xen_vnif 28416 0 xen_balloon 15256 1 xen_vnif xen_platform_pci 98520 3 xen_vbd,xen_vnif,xen_balloon,[permanent]
type=ioemu
' part of 'vif
=' line in your guest's configuration file.
domU
refers to the guest operating systems which run on the host system (the dom0 domain).
/dev/VolGroup00/LogVol02
),
/dev/sda5
), and
/dev/sda
).
tap:aio
tap:aio
parameter sets the Xen hypervisor to use an advanced access mode designed for safety and performance. File-based, are accessed using a kernel thread and a user-space process. The tap:aio
method respects guest flush requests which makes it safer than the file
driver. The virtualization tools use tap:aio
by default for accessing file-based guest disks on the Xen Hypervisor.
ext2
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.