Edición 1
ftpd
Negrita monoespaciado
To see the contents of the filemy_next_bestselling_novel
in your current working directory, enter thecat my_next_bestselling_novel
command at the shell prompt and press Enter to execute the command.
Press Enter to execute the command.Press Ctrl+Alt+F1 to switch to the first virtual terminal. Press Ctrl+Alt+F7 to return to your X-Windows session.
Mono-spaced Bold
. For example:
File-related classes includefilesystem
for file systems,file
for files, anddir
for directories. Each class has its own associated set of permissions.
Choose Mouse Preferences. In the Buttons tab, click the Left-handed mouse check box and click to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand).from the main menu bar to launchTo insert a special character into a gedit file, choose from the main menu bar. Next, choose from the Character Map menu bar, type the name of the character in the Search field and click . The character you sought will be highlighted in the Character Table. Double-click this highlighted character to place it in the Text to copy field and then click the button. Now switch back to your document and choose from the gedit menu bar.
Mono-spaced Bold Italic
or Proportional Bold Italic
To connect to a remote machine using ssh, typessh
at a shell prompt. If the remote machine isusername
@domain.name
example.com
and your username on that machine is john, typessh john@example.com
.Themount -o remount
command remounts the named file system. For example, to remount thefile-system
/home
file system, the command ismount -o remount /home
.To see the version of a currently installed package, use therpm -q
command. It will return a result as follows:package
.
package-version-release
When the Apache HTTP Server accepts requests, it dispatches child processes or threads to handle them. This group of child processes or threads is known as a server-pool. Under Apache HTTP Server 2.0, the responsibility for creating and maintaining these server-pools has been abstracted to a group of modules called Multi-Processing Modules (MPMs). Unlike other modules, only one module from the MPM group can be loaded by the Apache HTTP Server.
romano monoespaciado
y presentada así:
libros Escritorio documentación borradores mss fotos cosas svn libros_tests Escritorio1 descargas imágenes notas 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")); } }
Tabla de contenidos
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 paquete:
%packages @kvm
yum
kvm
. El paquete kvm
contiene el módulo de kernel de KVM que proporciona el hipervisor KVM en el kernel predeterminado de 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 se describen 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
, la cual abre la ventana gráfica para la instalación del huésped.
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.
# virt-manager &
virt-manager
abre una ventana de interfaz de usuario gráfica. Varios funciones no están disponibles para usuarios sin privilegios de root o de sudo
, incluyendo el botón y no podrá crear un nuevo huésped virtualizado.
kernel-xen
el kernel no se está ejecutando en este momento.
HTTP
, FTP
, o NFS
. Los medios de instalación URL deben contener un árbol de instalación de Fedora. Este árbol es alojado mediante NFS
, FTP
, o HTTP
. Los servicios de red y los archivos se pueden alojar mediante servicios de red en el equipo, o en otro espejo.
.iso
), monte la imagen de CD-ROM y host con uno de los protocolos mencionados.
/var/lib/xen/images/
. Cualquier otra ubicación de directorio para imágenes basadas en archivo está prohibida por SELinux. Si ejecuta SELinux en modo impositivo, consulte la Sección 7.1, “SELinux y virtualización completas” para obtener mayor información acerca de la instalación de huéspedes.
/var/lib/xen/images/
. Si está utilizando una ubicación diferente (tal como /xen/images/
en este ejemplo) asegúrese de que su política de de SELinux este añadida y etiquetada antes de continuar con la instalación (más adelante encontrará en el documento cómo modificar su política de SELinux).
virt-manager
. El Capítulo 3, Procedimiento de instalación de sistema operativo de huésped contiene instrucciones paso a paso para instalar una variedad de sistemas operativos comunes.
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'.
Start the new bridge. # ifup installation
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
to allow all traffic to be forwarded across the bridge.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
rules. In /etc/sysctl.conf
append the following lines:
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
daemon.
# service libvirtd reload
virt-install
añadir el parámetro de instalación --network=bridge:BRIDGENAME
donde la instalación es el nombre de su puente. Para instalaciones 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
kernel-xen
.
virt-manager
están en Sección 2.2, “Creación de huéspedes con virt-manager”.
virt-install
. La opción --vnc
muestra la instalación gráfica. El nombre del 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/CentOS5-B2-Server-i386/
. Remplace estos valores por valores exactos para su sistema y su red.
# virt-install -nrhel5PV
-r 500 \ -f /var/lib/libvirt/images/rhel5PV.dsk
-s 3 --vnc -p \ -lftp://10.1.1.1/trees/CentOS5-B2-Server-i386/
DHCP
(como se muestra abajo) o una dirección IP estática:
Installation Number
:
rhn_register
. El comando rhn_register
requiere acceso de root.
# rhn_register
virt-install
en Sección 3.1, “Instalación de Red Hat Enterprise Linux 5 como huésped para-virtualizado”. Si utilizó un ejemplo predeterminado el nombre es rhel5PV
.
reinicie virsh rhel5PV
virt-manager
, seleccionar el nombre de su huésped, y hacer clic en , luego haga clic en .
kdump
si es necesario.
Open virt-manager
virt-manager
. Launch the application from the menu and submenu. Alternatively, run the virt-manager
command as root.
Select the hypervisor
qemu
.
Start the new virtual machine wizard
Name the virtual machine
Choose a virtualization method
Select the installation method
Locate installation media
/var/lib/libvirt/images/
. Cualquier otra ubicación puede necesitar una configuración adicional de SELinux, consulte los detalles en Sección 7.1, “SELinux y virtualización completas”.
Storage setup
/var/lib/libvirt/images/
. Asigne el almacenamiento suficiente para su huésped virtualizado. Asigne espacio suficiente para su huésped virtualizado y cualquier aplicación que se requiera
Presione para continuar.
Network setup
Memory and CPU allocation
Verify and start guest installation
Instalación de Linux
Starting virt-manager
Dando un nombre al sistema virtual
Elección de un método de virtualización
Elección de un método de instalación
/var/lib/libvirt/images/
. Cualquier otra ubicación puede requerir una configuración adicional para SELinux. Para obtener mayor información, consulte Sección 7.1, “SELinux y virtualización completas”.
/var/lib/libvirt/images/
. Otras ubicaciones de directorio para imágenes basadas en archivo están prohibidas por SELinux. Si usted ejecuta SELinux en modo obediente, consulte Sección 7.1, “SELinux y virtualización completas” para obtener mayor información sobre la instalación de invitados.
/var/lib/libvirt/images/
. Si está utilizando una ubicación diferente (tal como /images/
en este ejemplo),asegúrese de que haya añadido su política de SELinux y de volverla 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)
Network setup
HAL
, una vez obtenga su cuadro de de diálogo en la instalación de Windows seleccione la pestaña de Generic i486 Platform
(vaya a través de las selecciones con las flechas de Arriba y Abajo.
# virsh start WindowsGuest
WindowsGuest
es el nombre de su máquina virtual.
virsh reboot Nombre d_huésped_Windows
. Cuando reinicie la máquina virtual verá el mensaje Setup is being restarted
:
virt-install
. virt-install
puede utilizarse en lugar de virt-manager. Este proceso es similar a la instalación Windows XP descrita en Sección 3.3, “Instalación de Windows XP como huésped completamente virtualizado”.
virt-install
para instalar Windows Server 2003 puesto que la consola para el huésped de Windows abre el la ventana vort-viewer rápidamente. A continuación, un ejemplo del uso de virt-install
para instalar el huésped de Windows Server 2003:
virt-install
.
# virt-install -hvm -s 5 -f /var/lib/libvirt/images/windows2003spi1.dsk \ -n windows2003sp1 -cdrom=/ISOs/WIN/en_windows_server_2003_sp1.iso \ -vnc -r 1024
Standard PC
como el Tipo de computador. Esto es el único paso no estándar que se requiere.
Open virt-manager
virt-manager
. Launch the application from the menu and submenu. Alternatively, run the virt-manager
command as root.
Select the hypervisor
qemu
.
Start the new virtual machine wizard
Name the virtual machine
Choose a virtualization method
Select the installation method
Locate installation media
/var/lib/libvirt/images/
. Cualquier otra ubicación puede requerir una configuración adicional para SELinux. Para obtener mayor información, consulte Sección 7.1, “SELinux y virtualización completas”.
Storage setup
/var/lib/libvirt/images/
. Asigne almacenamiento suficiente para su huésped virtualizado. Asigne suficiente espacio para su huésped virtualizado y cualquier aplicación que éste requiera.
Presione para continuar.
Network setup
Memory and CPU allocation
Verify and start guest installation
Instalación de Windows
dd
. Remplace /dev/fd0 por el nombre de un disquete y dele el nombre apropiado al disco.
# dd if=/dev/fd0 of=~/legacydrivers.img
virt-manager
, el cual ejecuta una instalación totalmente virtualizada del Linux para Empresas de Red Hat 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 stop 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 para ensayar, 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 las entradas que comienzan por "disk=
". Esta entrada se asemeja:
>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 que ha especificado un nombre de dispositivo para el dispositivo de bloque virtual, el cual no está aún en el archivo de configuaració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
como el dispositivo llamado /dev/hdb
. Este dispositivo requiere formato desde el huésped. En el huésped, divida el dispositivo en una partición primaria para todo el dispositivo luego de formato al dispositivo.
n
para una nueva partición.
# fdisk /dev/hdb Command (m for help):
p
para una partición primaria.
Command action e extended p primary partition (1-4)
1
.
Número de partición (1-4): 1
Enter
.
Primer cilindro (1-400, predeterminado 1):
Enter
.
Último cilindro o +tamaño o +tamañoM o +tamañoK (2-400, default 400):
t
.
Comando (m para ayuda): t
1
.
Número de partición (1-4): 1
83
para una partición Linux.
Código Hex (tipo L para listar códigos): 83
Comando (m para ayuda):w
Comando (m para ayuda):q
ext3
.
# mke2fs -j /dev/hdb
# mount /dev/hdb1 /myfiles
multipath
y se requiere persistencia en el host.
virsh attach
. Remplace: myguest
por el nombre de su huésped's, /dev/hdb1
por el dispositivo a añadir, y hdc
por la ubicación para el dispositivo en el huésped. El hdc
debe ser un nombre de dispositivo no utilizado. Use la anotación hd*
para huéspedes de Windows también, el huésped reconocerá correctamente el dispositivo.
--type hdd
al comando para dispositivos de CD-ROM o DVD.
--type floppy
al comando para dispositivos de disquete.
# virsh attach-diskmyguest
/dev/hdb1
hdc
--driver tap --mode readonly
/dev/hdb
en Linux o D: drive
, o similar, en Windows. Este dispositivo puede requerir formateo.
multipath
, deben utilizar Configuración de ruta única. Los sistemas que estén ejecutando multipath
, pueden utilizar Configuración de multi-rutas.
udev
. Sólo utilice este procedimiento para hosts que no estén utilizando multipath
.
/etc/scsi_id.config
.
options=-b
no esté 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*", BUS="scsi", PROGRAM="/sbin/scsi_id -g -s", 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 al dispositivo 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
es utilizado para sistemas que posean más de una ruta física desde el computador hacia los dispositivos de almacenamiento. multipath
ofrece tolerancia a fallos, recuperación de fallos y rendimiento mejorado para dispositivos de almacenamiento de red conectados a sistemas Linux.
multipath
, se deben definir los sobrenombres para el dispositivo multipath. Cada dispositivo de almacenaje tiene un UUID que actúa como una llave para los nombres con alias. Identifique un UUID de dispositivo's mediante el comando scsi_id
.
# 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
y /dev/mpath/oramp4
. Una vez introducidos, la asignación de los WWID de dispositivos a sus nuevos nombres será persistente después del reinicio.
virsh
con el parámetro attach-disk
.
# virsh attach-disk [id-dominio] [fuente] [destino] --archivo de controlador --tipo cdrom --modo sólolectura
Los parámetros fuente
y destino
son rutas para los archivos y dispositivos, en el host y huésped respectivamente. El parámetro fuente
puede ser una ruta para un archivo ISO o el dispositivo desde el directorio /dev
.
# setenforce 1
AutoFS
, NFS
, FTP
, HTTP
, NIS
, telnetd
, sendmail
, etc.).
/var/lib/libvirt/images/
. Si utiliza un directorio diferente para las imágenes de la máquina virtual, asegúrese de añadir el directorio a su política de SELinux y de re-etiquetarlo antes de iniciar la instalación.
vsftpd
.
/var/lib/libvirt/images
.
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 "/virtualization(/.*)?"
semanage fcontext -a -t virt_image_t "/virtualization(/.*)?"
/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
/virtstorage
) y todos los archivos bajo él para xen_image_t
(restorecon
y setfiles
leen los archivos en /etc/selinux/targeted/contexts/files/
).
# restorecon -R -v /virtualization
# semanage fcontext -a -t xen_image _t -f -b /dev/sda2 # restorecon /dev/sda2
xend_disable_t
puede establecer el xend
al modo incomunicado 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.
libvirt
proporciona conectividad basada en NAT para máquinas virtuales fuera de la caja. Está es la que se denomina 'default virtual network'. Verifique su disponibilidad con el comando virsh net-list --all
.
# 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)
# chkconfig NetworkManager off # chkconfig network on # service NetworkManager stop # service network start
NM_CONTROLLED=no
" a los scripts ifcfg-*
utilizados en los ejemplos.
/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
al final del archivo de configuración.
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
TYPE=Bridge
, is case-sensitive. It must have uppercase 'B' and lower case 'ridge'.
# service network restart
iptables
to allow all traffic to be forwarded across the bridge.
# iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT # service iptables save # service iptables restart
iptables
rules. In /etc/sysctl.conf
append the following lines:
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
daemon.
# 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).
Descargar los controladores
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” para agregar una imagen de CD-ROM con virt-manager
.
virt-manager
para montar una imagen de CD-ROM para un huésped de a Windowsvirt-manager
, seleccione su huésped virtualizado desde la lista de máquinas virtuales y pulse el botón .
/usr/share/xenpv-win
si utilizó yum
para instalar los paquetes de controlador para-virtualizado.
viostor.vfd
como un disquete
Windows Server 2003
Windows Server 2008
virtio
en lugar del controlador virtualizado IDE. Este ejemplo modifica los archivos de configuración libvirt. Como alternativa, virt-manager
, virsh attach-disk
o virsh attach-interface
pueden añadir un nuevo dispositivo mediante los controladores para-virtualizados Uso de controladores KVM para-virtualizados para nuevos dispositivos.
<disk type='file' device='disk'> <source file='/var/lib/libvirt/images/disk1.img'/> <target dev='hda' bus='ide'/> </disk>
virtio
.
<disk type='file' device='disk'>
<source file='/var/lib/libvirt/images/disk1.img'/>
<target dev='hda' 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
.
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 | Description |
---|---|
(console-limit)
|
Determina el límite del buffer de memoria del servidor de consola xend_unix_server y asigna valores para cada dominio.
|
(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)
|
Determina que un error ha ocurrido y activa el volcado (0 es el valor predeterminado).
|
(external-migration-tool)
|
Determina el script o la aplicación que controla la migración de dispositivos externos (los scripts deben estar en
etc/xen/scripts/external-device-migrate ).
|
(logfile)
|
Determina la ubicación del archivo del registro (por defecto está en
/var/log/xend.log ).
|
(loglevel)
|
Filtra los valores para los modos de registro: DEBUG, INFO, WARNING, ERROR o CRITICAL (por defecto es DEBUG).
|
(network-script)
|
Determina el script que activa el entorno de red (los script deben estar en el directorio
etc/xen/scripts ).
|
(xend-http-server)
|
Activa el servidor de administración de paquetes de flujo http (el valor predeterminado es no).
|
(xend-unix-server)
|
Activa el servidor de socket de dominio Unix, el cual es un 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
no iniciará en los niveles de ejecución 3, 4 y 5.
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 huésped, 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 los estados deep C, que pueden detener el TSC, añada "processor.max_cstate=1
" a las opciones de arranque del kernel en GRUB en el host:
term Fedora (vmlinuz-2.6.29.6-217.2.3.fc11)
root (hd0,0)
kernel /vmlinuz-vmlinuz-2.6.29.6-217.2.3.fc11 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 del kernel 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 |
/use pmtimer
virsh
. El comando migrate
acepta parámetros en el siguiente formato:
# virsh migrate --live GuestName DestinationURL
GuestName
parameter represents the name of the guest which you want to migrate.
DestinationURL
parameter is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have libvirt
running.
test1.bne.redhat.com
a test2.bne.redhat.com
. Cambie los nombres de los equipos para su entorno. Este ejemplo migra una máquina virtual llamada CentOS4test
.
Verificar que el huésped esté ejecutándose
test1.bne.redhat.com
, verifique si CentOS4test
se esté ejecutando:
[root@test1 ~]# virsh list Id Name State ---------------------------------- 10 CentOS4 running
Migrar el huésped
test2.bne.redhat.com
. Añada /system
al final de la URL de destino para decirle a libvirt que usted necesita acceso total.
# virsh migrate --live CentOS4test qemu+ssh://test2.bne.redhat.com/system
Espere
virsh
sólo reporta errores. El huésped continúa ejecutándose en el host fuente hasta migrar completamente.
Verificar que el huésped haya llegado al host de destino
test2.bne.redhat.com
, verifique que CentOS4test
esté en ejecución:
[root@test2 ~]# virsh list Id Name State ---------------------------------- 10 CentOS4 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
que es utilizada. Si ssh
ya está configurado puede saltarse este paso con el comando:
$ ssh-keygen -t rsa
virt-manager
necesita una copia de la llave pública en cada máquina remota ejecutando libvirt
. Copie el archivo $HOME/.ssh/id_rsa.pub
desde la máquina que desea utilizar para administración remota mediante el comando scp
:
$ scp $HOME/.ssh/id_rsa.pub root@somehost:/root/key-dan.pub
ssh
para conectar a las máquinas remotas como root y agregar el archivo que usted copió a la lista de llaves autorizadas. Si el usuario de root en el host remoto no tiene aún una lista de llaves autorizadas, asegúrese que los permisos de archivos estén configurados correctamente.
$ ssh root@somehost
# mkdir /root/.ssh
# chmod go-rwx /root/.ssh
# cat /root/key-dan.pub >> /root/.ssh/authorized_keys
# chmod go-rw /root/.ssh/authorized_keys
libvirt
(libvirtd
)libvirt
proporciona una interfaz para administrar las máquinas virtuales. Se debe tener el demonio libvirtd
instalado y en ejecución en cada equipo remoto que se necesite administrar. Para poder utilizar el paquete de Fedora kernel-xen
se necesitan especificaciones adicionales.
$ ssh root@somehost
# chkconfig libvirtd on
# service libvirtd start
libvirtd
y SSH sean configurados, se debe poder acceder y administrar las máquinas virtuales de forma remota. También se podrá tener acceso a los huéspedes con VNC
en este punto.
libvirt
abre un puerto TCP para conexiones de entrada, el cual está cifrado y autenticado de modo seguro basado en certificados x509. Además la consola de VNC para cada máquina de huésped virtual estará configurada para usar TLS con autenticación de certificado x509.
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
necesita los siguientes tres archivos:
ca-cert.pem
- El certificado CA
server-cert.pem
- El certificado de servidor firmado por CA
server-key.pem
- La llave de servidor privada
(vnc-x509-verify 1)
.
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
, utilice la opción de mecanismo de transporte cuando se conecte a un 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
) o se le pedirá una contraseña.
Un Identificador de recursos uniforme, URI (siglas en Ingles para Uniform Resource Identifier) es utilizado por 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
mediante TLS. El parámetro no_verify=1
le pide a libvirt no verificar el certificado del servidor.
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 | Description | Uso de ejemplo |
---|---|---|---|
name | todos los modos | El nombre pasad o 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 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, este pasa al comando netcat remoto (ver netcat). | socket=/opt/libvirt/run/libvirt/libvirt-sock |
netcat | ssh | El nombre del comando netcat en la máquina remota. El predeterminado es nc. Para transporte dessh, construcciones libvirt y comando ssh, lo que se ve así: comando -p puerto [-l nombre_de_usuario] nombre_de-host netcat -U socket en puerto, nombre_de_usuario, el nombre de host puede especificarse como parte del URI remoto y comando, netcat y socket salen de los parámetros adicionales o (predeterminados). | netcat=/opt/netcat/bin/nc |
no_verify | tls | Si se establece a un valor de no-cero, desactiva la verificación de clientes del certificado del servidor. Observe que para desactivar la verificación del servidor del certificado del cliente o la dirección IP, se debe cambiar la configuración de libvirtd. | 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 | Description |
---|---|
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
| Muestra el ID de huésped. |
domuuid
| Muestra el UUID de huésped. |
dominfo
| Muestra información de huésped. |
domname
| Muestra nombre de huésped. |
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
se utilizan para administrar recursos del hipervisor:
Comando | Description |
---|---|
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 | Description |
---|---|
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 hiperviso. 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
). Se pueden guardar los datos si entuba la salida del comando a un archivo. Un ejemplo de entubado de la salida a un archivo llamado huésped.xml
:
# virsh dumpxmlEste archivoID_Huésped
>huésped.xml
huésped.xml
puede volver a crear el huésped (Edición de un archivo de configuración de huésped.). Puede editar este archivo de configuración XML para configurar dispositivos adicionales o para utilizar huéspedes adicionales. Consulte la Sección 18.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
(consulte Creación de un volcado de máquina virtual XML (archivo de configuración)). Para crear un huésped desde un archivo XML con virsh
:
# virsh create configuration_file.xml
dumpxml
(consulte Creación de un volcado de máquina virtual XML (archivo de configuración)), los huéspedes pueden ser editados o bien cuando estén en ejecución, o bien cuando estén desconectados. El comando virsh edit
proporciona esta funcionalidad. Por ejemplo, para editar el huésped llamado softwaretesting
:
# virsh edit softwaretesting
$EDITOR
(configure vi
por defecto).
virsh
:
# virsh suspend {domain-id, domain-name or domain-uuid}
resume
(Reanudar un huésped).
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). 'Guardar' funciona en forma similar a realizar una pausa: en vez de simplemente poner en pausa a un huésped, el estado actual del huésped es guardado.
virsh save
(Guardar un huésped) mediante virsh
:
# virsh restore filename
virsh
:
# virsh shutdown {domain-id, domain-name or domain-uuid}
on_shutdown
en el archivo de configuración del huésped
virsh
:
#virsh reboot {domain-id, domain-name or domain-uuid}
on_reboot
en el archivo de configuración del huésped.
virsh
:
# virsh destroy {domain-id, domain-name or domain-uuid}
virsh destroy
, pueden llegar a corromperse los sistemas de archivo del huésped. Utilice la opción destroy
sólo si el huésped no responde. Para huéspedes para-virtualizados, utilice en su lugar la opción shutdown
(Apagar un huésped).
# 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
con el ID de dominio de huésped, nombre de domino o UUID se puede ver la información sobre un huésped específico:
# 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, domain-name or domain-uuid} vcpu, cpulist
vcpu
es el número de VCPU virtual y cpulist
lista el número de CPU.
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
parameter represents the name of the guest which you want to migrate.
DestinationURL
parameter is the URL or hostname of the destination system. The destination system must run the same version of Fedora, be using the same hypervisor and have libvirt
running.
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 nombre-de_red
— 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 [nombre de red]
— destruye la red especificada en [nombre de red]
virsh net-name networkUUID
— convierte un UUID_de_red
determinado para un nombre de red.
virsh net-uuid nombre_de _red
— convierte un nombre_ de_ red
determinado para un UUID de red.
virsh net-start nombre_de_red_inactiva
— inicia una red inactiva.
virsh net-undefine nombre_de_una_red_inactiva
— elimina la definición de una red inactiva.
virt-manager
), cuadros de diálogos y varios controles GUI.
virt-manager
proporciona una vista gráfica de hipervores 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
. El campo de UUID muestra un identificador único universal para las máquinas virtuales.
virt-manager
127.0.0.1
) del equipo local (dom0
). Esto garantiza que sólo quienes tengan privilegios de consola en el equipo, puedan acceder a virt-manager y a la máquina virtual, a través de VNC.
virt-manager
para enviar este tipo de secuencias. Debe presionar cualquier tecla modificadora (como Ctrl o Alt) tres veces y la tecla especificada será tratada como activa hasta que se presione la siguiente tecla no modificadora. Luego puede enviar Ctrl-Alt-F11 al huésped ingresando la secuencia de teclas 'Ctrl Ctrl Ctrl Alt+F1'.
virt-manager
abra el menú de ; luego y seleccione (virt-manager
).
virt-manager
aparece.
virt-manager
virt-manager
puede ser iniciado de modo remoto mediante ssh como se demuestra en el siguiente comando:
ssh -X dirección del equipo
[equipo_remoto]# virt-manager
El uso de ssh
para manejar equipos y máquinas virtuales se explica más adelante en la Sección 13.1, “Administración remota con SSH”.
DHCP
Tabla de contenidos
ftpd
ftpd
virsh
para configurar un huésped , TestServer
para que se inicie automáticamente cuando el host arranque.
# virsh autostart TestServer
Domain TestServer marked as autostarted
--disable
parameter
# 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.23.14-107.fc8xen
2.6.23.14-107.fc8xen
" se está ejecutando en el sistema. Si el kernel predeterminado, "2.6.23.14-107.fc8
" se está ejecutando, puede omitir este subpaso.
Cambiando del kernel de 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 Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
0
(o al número para el kernel predeterminado):
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.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.23.14-107.fc8
2.6.23.14-107.fc8
" se está ejecutando en el sistema. Este es el kernel predeterminado. Si el kernel tiene xen
al final (por ejemplo, 2.6.23.14-107.fc8xen
) entonces el kernel Xen se está ejecutando y puede omitir este subpaso.
Cambio de kernel predeterminado a 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 Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
1
(o al número para el kernel Xen):
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.14-107.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.14-107.fc8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.23.14-107.fc82.6.23.14-107.fc8.img
title Fedora (2.6.23.14-107.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.23.14-107.fc8
module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.23.14-107.fc8xen.img
Reinicie para cargar el nuevo kernel
uname
:
$ uname -r 2.6.23.14-107.fc8xen
xen
al final quiere decir que el kernel de Xen se está ejecutando.
qemu-img
es utilizada 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.
# qemu-img create [-6] [-e] [-b base_image] [-f format] filename [size]
# qemu-img convert [-c] [-e] [-f format] filename [-O output_format] output_filename
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 como sigue:
# 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 por compatibilidad con versiones anteriores. No funciona con Windows.
vmdk
cloop
pdflush
se inicia el proceso. pdflush
mata los procesos para liberar memoria para que el sistema no se bloquee. pdflush
puede destruir huéspedes virtualizados u otros procesos de sistema que pueden causar errores y dejar huéspedes virtualizados que no se pueden arrancar.
(0.5 * RAM) + (overcommit ratio * RAM) = Recommended swap size
/etc/grub.conf
para usar el kernel de virtualización. Debe utilizar el kernel xen
para el hipervisor Xen. Copie su entrada de kernel existente xen
, asegúrese de que haya copiado todas las líneas importantes o de lo contrario su sistema entrará en pánico tras el arranque (initrd
tendrá una longitud de '0
'). Si requiere valores específicos del hipervisor xen
, debe añadirlos a la línea de xen
de la entrada de GRUB.
grub.conf
desde un sistema ejecutando el paquete de kernel-xen. El archivogrub.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 siguiente nueva línea.
#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 Fedora (2.6.23.14-107.fc8xen) root (hd0,0) kernel /xen.gz-2.6.23.14-107.fc8 com1=115200,8n1 module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.23.14-107.fc8xen.img
grub.conf
...grub.conf
puede verse muy diferente si ha sido editado en forma manual o si ha sido copiado desde un ejemplo.
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 Fedora (2.6.23.14-107.fc8xen) root (hd0,0) kernel /xen.gz-2.6.23.14-107.fc8 com1=115200,8n1 dom0_mem=256MB module /vmlinuz-2.6.23.14-107.fc8xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.23.14-107.fc8xen.img
$ grep -E 'svm|vmx' /proc/cpuinfo
vmx
indicando 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
indicando 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.
#!/bin/bash declare -i IS_HVM=0 declare -i IS_PARA=0 check_hvm() { IS_X86HVM="$(strings /proc/acpi/dsdt | grep int-xen)" if [ x"${IS_X86HVM}" != x ]; then echo "Guest type is full-virt x86hvm" IS_HVM=1 fi } check_para() { if $(grep -q control_d /proc/xen/capabilities); then echo "Host is dom0" IS_PARA=1 else echo "Guest is para-virt domU" IS_PARA=1 fi } if [ -f /proc/acpi/dsdt ]; then check_hvm fi if [ ${IS_HVM} -eq 0 ]; then if [ -f /proc/xen/capabilities ] ; then check_para fi fi if [ ${IS_HVM} -eq 0 -a ${IS_PARA} -eq 0 ]; then echo "Baremetal platform" fi
virsh capabilites
.
macgen.py
. Ahora desde ese directorio, podrá ejecutar el script mediante ./macgen.py
y éste generará una nueva dirección MAC. Una muestra de salida se vería como la siguiente:
#!/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 ""
ftpd
vsftpd
puede proporcionar acceso a árboles de instalación para huéspedes para-virtualizados u otros datos. Si no ha instalado vsftpd
durante la instalación del servidor, puede tomar el paquete RPM desde su directorio Server
de sus medios de instalación e instálelo mediante rpm -ivh vsftpd*.rpm
(observe que el paquete RPM debe estar en su directorio actual).
vsftpd
, edite /etc/passwd
mediante vipw
y cambie el directorio principal del usuario de FTP al directorio en donde piensa guardar sus árboles de instalación para los huéspedes para-virtualizados. Una entrada de ejemplo para el usuario de FTP se vería de la siguiente manera:
ftp:x:14:50:FTP User:/xen/pub:/sbin/nologin
vsftpd
inicie automáticamente durante el arranque del sistema utilice la utilidad chkconfig para permitir el arranque automático de vsftpd
.
vsftpd
no esté habilitada, mediante 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 que inicie automáticamente vsftpd y ejecute los niveles 3, 4 y 5.
chkconfig --list vsftpd
para comprobar si vsftdp ha sido habilitado para que inicie 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:
$service vsftpd start vsftpd Starting vsftpd for vsftpd: [ OK ]
udev
para implementar persistencia LUN. Antes de implementar persistencia 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, quite 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 dado. 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 de los LUN.
/sbin/service smartd stop /sbin/chkconfig --del smartd
uuidgen
. Luego para las entradas de vif
, debe definir una dirección MAC única para cada huésped (si está copiando una configuración desde un huésped, puede crear un script que maneje esta tarea). Para la información del puente de Xen, si desplazó el archivo de configuración de un huésped existente a un nuevo anfitrión, debe actualizar la entrada xenbr
para que coincida con la configuración de la red local. Para las entradas de dispositivos, debe modificar las entradas en la sección 'disk='
para que apunten a la imagen de huésped correcta.
/etc/sysconfig/network
para que coincida con el nombre de host del nuevo huésped.
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
del nuevo hostname
de huésped.
/etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR
para la salida desde from ifconfig eth0
.
IPADDR
si la dirección IP estática es utilizada.
libvirt
.
libvirt
.
virsh
puede manejar los archivos de configuración XML. Puede utilizarlo como una ventaja para escribir implementaciones grandes con opciones especiales. Puede agregar dispositivos definidos en un archivo XML a un huésped virtualizado en ejecución. Por ejemplo, para añadir un archivo ISO como hdc
a un huésped en ejecución, cree un archivo XML:
# 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>Ejecute
virsh attach-device
para conectar el ISO como hdc
para un huésped llamado "satellite" :
# virsh attach-device satellite satelliteiso.xml
/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
.
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 el BIOS configurado correcto habilitado.
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 librería libvirt
. El paquete libvirt-python
le permite a los programadores de Python crear programas que utilicen la librería de administración de virtualización libvirt
.
/usr/share/doc/python-virtinst-<version-number>
— proporciona la documentación del comando virt-install
que ayuda en el inicio de instalaciones de Fedora y otras distribuciones de 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.
Historial de revisiones | |||
---|---|---|---|
Revisión 12.1.3 | Mon Oct 12 2009 | ||
|
dom0
se refiere a la instancia del equipo Linux ejecutando el Hipervisor, que facilita la virtualización de sistemas operativos huéspedes. Dom0 se ejecuta en y administra hardware físico, además de asignar recursos tanto para sí mismo como para los sistemas operativos huéspedes.
domU
se refiere al sistema operativo huésped, el cual se ejecuta en el sistema anfitrión (Dominios).
ext2
y ext3
, identificadores de dispositivos RAID, iSCSI e identificadores de dispositivo LUN, direcciones MAC e identificadores de máquinas virtuales.