Product SiteDocumentation Site

5.3. Virtualización

La virtualización en Fedora 12 incluye cambios principales y nuevas características, que continúan dando soporte a las plataformas Xen, KVM y muchas otras plataformas de máquina virtual.
KVM y QEMU tienen un número de nuevas características en este lanzamiento. El uso de la memoria del invitado KVM y la performance se mejoró al agregar la Memoria de Bajo Nivel de Página Grande de KSM y KVM. La performance del formato de imágen qcow2 fue ampliamente mejorada. El soporte para el enchufado de NIC y SR-IOV en caliente se agregó. Finalmente, gPXE se usa en lugar de etherboot para arranque de invitados PXE.
En el lado de libvirt, se agregaron APIs para la administración de almacenamiento y de la interfase de red. libvirt ahora también corre procesos QEMU sin privilegios.
Una nueva librería(libguestfs) y una herramienta interactiva (guestfish) están disponibles para el acceso y modificación de imágenes de disco de máquinas virtuales.

5.3.1. Mezcla de la Misma Página en el Kernel y Uso de Memoria del Invitado reducida

Kernel SamePage Merging (KSM) permite que las páginas de memoria idénticas sean mezcladas por el kernel en una única página compartida entre uno o más procesos. Esta característica está apalancada por KVM para permitir múltiples, similares, máquinas virtuales invitadas tengan un uso de memoria reducido. Debido a que la memoria es compartida, el uso de memoria combinado de los invitados es reducido.

5.3.2. Memoria de Bajo nivel de Página Grande de KVM

Permiten a los invitados KVM usar la memoria de bajo nivel de página grande para reducir el consumo de memoria y mejorar la performance reduciendo la presión en el caché de la CPU. Los usuarios de invitados KVM que usan la memoria de bajo nivel de página grande deben experimentar una performance mejorada con algunos ahorros en el consumo de memoria del anfitrión. El beneficio de performance es dependiente de la carga de trabajo. El uso de páginas grandes para la memoria del invitado no tiene una parte baja, sin embargo, no se puede intercambiar (al swap) ni agrandar la memoria del invitado.

5.3.3. KVM NIC Hotplug

Las interfazes de red pueden ser agregadas sobre un huésped KVM en funcionamiento usandolibvirt/virt-manager sin necesidad de reiniciar el huésped.

5.3.4. Performance de KVM qcow2

El formato de archivo de imágen de disco nativo de qemu es qcow2. Qcow2 provee características mejoradas sobre imágenes cruda, que incluyen a: imágenes base, muestras congeladas, compresión y encriptación.
Los usuarios que quieran proteger los datos de la máquina invitada de los cuelgues, comúnmente deshabilitan el cacheo de escritura en el equipo. Previamente, esto llevaba a una performance menor en invitados en imágenes qcow2.
La performance de las imágenes de disco qcow2 ha sido ampliamente mejorada. Los usuarios que no usaban qcow2 debido a su performance pobre deben considerar su uso y sacar ventaja de las características adicionales que provee el formato sobre las imágenes cruda de disco.

5.3.5. KVM Huésped ABI Estable

A los invitados KVM se le presenta una plataforma de hardware emulado o interfase binaria de aplicación que incluye (entre otros un modelo de CPU, APIC, PIT, tablas ACPI, controladores IDE/USB/VGA, NICs, etc.). Cuando QEMU sea actualizado a una nueva versión, algunos aspectos de esta plataforma pueden cambiar a medida que se agreguen las capacidades de hardware nuevas. Esto es un problema para invitados Windows donde un cambio de ABI puede necesitar reactivar una instalación.
Las máquinas virtuales huésped son presentadas a través de actualizaciones Abi across QEMU.

5.3.6. Librería libguest para Manipulación de Máquinas Virtuales

Añadido muy tarde en el ciclo de desarrollo de Fedora 11, libguestfs es ahora una característica oficial en FEdora 12. libguestfs es una librería para acceder y modificar imagenes huésped de disco. Usando el Kernel Linuz y el qemu código, libguestfs puede acceder a cualquier tipo de sistemas de archivos de sistemas huésped que Linux y QEMU permitan.
Las siguientes herramientas se proveen o aumentan con libguestfs:
  • Enlaces para los lenguajes de programación OCaml, Perl, Python, Ruby y Java.
  • guestfish - Provee un shell interactivo para editar sistemas de archivo de máquinas virtuales y ejecutar comandos en el contexto del invitado.
  • virt-df - Muestra el espacio libre los sistemas de archivos de máquinas virtuales
  • virt-inspector - Muestra la versión del SO, kernel, controladores, puntos de montajes, aplicaciones, etc. en una máquina virtual.
  • virt-cat - Muestra (cat) cualquier archivo dentro de una máquina virtual.

5.3.7. Administración de las Interfaces de Red

Las configuraciones de red de equipos comúnmente usadas, como puentes, bonds, VLANs y combinaciones sensibles pueden no ser creadas usando la biblioteca de configuración de red de propósito general, netcf. Las mejoras al API de libvirt exponen esta nueva funcionalidad a equipos de administración remota con libvirtd

5.3.8. Virtualización de E/S de Raíz Unica

La Virtualización de E/S de Raíz Unica es una característica PCI que permite crear funciones virtuales (VF) para compartir los recursos de una función física (PF). Los dispositivos VF son asignados al máquinas virtuales invitada y aparecen como dispositivos PCI físicos dentro del invitado. Debido a que el SO invitado está efectivamente manejando el hardware directamente, la performance de E/S es similar al del manejo directo del mismo.

5.3.9. gPXE ahora es por defecto para los Invitados

Los invitados QEMU ahora usan gpxe que es más moderno y actualmente mantenido, en vez de la obsoleta herramienta ethertool para el arranque PXE.

5.3.10. Privilegios de Virt

Se introdujeron cambios en máquinas virtuales QEMU/KVM para mejorar la seguridad del equipo en el caso de una brecha en el binario QEMU.
  • Los permisos en /dev/kvm se actualizaron para permitir que usuarios sin privilegios puedan usar la aceleración por hardware de KVM.
  • Los procesos QEMU lanzados por virt-manager en una instalación de escritorio local ahora corre como el escritorio del usuario.
  • Los procesos QEMU lanzados por el demonio libvirtd con privilegios ahora se corre en una cuenta sin privilegio, usuario 'qemu', grupo 'qemu'.
  • libvirtd cambiará el dueño de cualquier disco asignado a una máquina virtual al iniciar, al usuario 'qemu', grupo 'qemu', excepto para discos de sólo lectura/compartido.
  • Para volver al comportamiento anterior de Fedora de correr las instancias QEMU como 'root', se introducen dos parámetros de configuración en /etc/libvirt/qemu.conf. No se recomienda cambiarlos.
Para más detalles, vaya a:

5.3.11. Administración de Almacenamiento de Virt

La Virtualización de ID N_Port de Canal de Fibra o NPIV permite la creación de múltiples N_Ports virtuales en un único adaptador de bus de equipo físico. Los APIs de dispositivos de nodo de libvirt fueron extendidos para crear y destruir adaptadores virtuales usando NPIV.
Las APIs que permiten el descubrimiento del almacenamiento y la creación de grupos se extendió para descubrir y reexaminar el almacenaje por SCSI-equipo. Los administradores ahora pueden descubrir, configurar y proveer almacenaje para máquinas virtuales sin necesitar muchas herramientas.

5.3.12. Otras Mejoras

5.3.12.1. Kit de Compatibilidad Tecnológica Libvirt
Fedora ahora incluye el kit de compatibilidad tecnológica libvirt (TCK). El TCK es una suite de pruebas funcional que provee informes detallados en una funcionalidad disponible para cada driver libvirt y puede ser usada para identificar fallos o regresiones en el desarrollo de las características de virtualización de Fedora.
5.3.12.2. Repositorio de Tecnología de Virtualización Preliminar
El Repositorio preliminar de virtualización ha sido creado por persona que les gusta probar los más recientes paquetes de virtualización. Este repo es destinado principalmente para ayuda a las pruebas y la experimentación prematura. Esto no está destinado para despliegue de 'producción'.
5.3.12.3. Soporte Xen en el Kernel
El paquete kernel en Fedora 12 soporta el arranque como un invitado domU, pero no funcionará como un dom0 hasta que tal soporte sea provisto por los desarrolladores del kernel. Se está trabajando y se espera que el soporte sea incluído en el kernel 2.6.33 en Fedora 13.
La versión de Fedora más reciente que tiene soporte para dom0 es Fedora 8.
El inicio de un invitado domU de Xen dentro de un anfitrión Fedora 12 requiere un xenner basado en KVM. Xenner corre como kernel invitado y como un emulador pequeño de Xen a la vez, como si fuera un invitado KVM.

KVM requiere las características de virtualización por hardware en el sistema anfitrión.

Los sistemas que no tengan soporte para la virtualización por hardware no tendrán soporte para invitados Xen por el momento.