Qemu (Copiado y Pegado de la Pagina)

6 09 2007

Virtualización con Xen & QEmu
Xen & QEmu
“No hay cuchara… No hay cuchara… ;)”
Xen & QEmu
Dos herramientas para hacer que nada sea lo que parece
Author: Javier Bértoli

Qué vamos a tratar de ver
Introducción
Qué es todo ésto de la “virtualización” (ah!, las buzzwords… 😉
Qué tipos de virtualización existen
Xen
Un paseo rápido por la virtualización con Xen
Cómo instalar un Xen server
Cómo crear y configurar los servidores virtuales
Qemu
Qué tipo de virtualización ofrece
Cómo instalar qemu
Cómo instalar un servidor virtual en qemu
Y a jug ^H^H^H trabajar
Configuraciones posibles
Utilizaciones prácticas
Qué es la virtualización?
En esta categoría se engloban una variedad de técnicas que se aplican a distintos niveles en el mundo de la computación.

En cuanto a la aplicación del término referido a hardware, es una técnica de manejo de recursos que consiste en aplicar una capa de abstración a los mismos, separándolo del sistema operativo y/o de las aplicaciones que corren sobre este último.

Es una metodología de trabajo en la que los recursos de hardware son divididos en múltiples entornos de ejecución, aplicando uno o más conceptos o tecnologías, tales como particionado de software, tiempo compartido, simulación de máquina total o parcial, emulación, calidad de servicop y muchas otras.

Esta forma de trabajo existe desde hace más de 40 años, conocida a comienzos de los años ’60 como “time sharing”.

Proyecto Atlas IBM M44/44X CP/CMS LTSS (Livermore Time-Sharing System) CTSS (Cray Time-Sharing System) NLTSS (New Livermore Time-Sharing System)

Criterios para un VMM
(Popek & Goldberg Virtualization Requirements, 1974)
Equivalencia (Fidelidad): Comportamiento idéntico en virtual y real.
Control de Recursos (Seguridad): El VMM debe tener control TOTAL del hardware.
Eficiencia (Performance): Una gran cantidad de instrucciones de máquina deben ejecutarse sin intervención del VMM.
Tipos virtualización de hardware
Existen muchos tipos de “virtualización”, dependiendo de quién o a qué se refiere. En cuanto a “virtualización de hardware”, los más comunes hoy en día son:

Emulation / Full virtualization

Paravirtualization

Hardware enabled virtualization

Procesadores Intel con Intel Virtualization Technology (Intel VT)
Procesadores AMD con Pacifica (AMD-V)
– “Papi, papi!!!” ¿Puedo? ¿Puedo?!?!?!?!?

– Si hijo, si la salida de

“egrep ‘^flags.*(vmx|svm)’ /proc/cpuinfo“

devuelve algo, si 😉

Virtualización a nivel de partes del hardware

Virtualización a nivel de aplicaciones

Virtualización con Xen
Xen ofrece la posibilidad de virtualizar en modo de paravirtualización y, más recientemente, ofrece la posibilidad de virtualización asistida por hardware

Cómo trabaja?
Xen es un Virtual Machine Monitor (VMM) (llamado “hypervisor”) que corre en el anillo 0 del CPU, desplazando al sistema operativo a uno de los anillos de supervisor no ocupados en la arquitectura x86 (1 o 2)

El “hypervisor” se encarga de abstraer los recursos que sean necesarios de forma que las distintas máquinas virtuales no colisionen en su acceso a los recursos de hardware.

Qué instalar
Elija su distribución preferida, y corra el instalador de paquetes de su gusto. En Debian, sería algo así como:

apt-get install xen-linux-system-2.6.18-5-xen-686

que instalará cosas como:

– linux-image-2.6.18-5-xen-686
– linux-modules-2.6.18-5-xen-686
– xen-hypervisor-3.0.3-1-686
– xen-ioemu-3.0.3-1
– xen-tools
– xen-utils-3.0.3-1
– xen-utils-common

Luego de ésto, reiniciar la PC para que levante el hypervisor y listo.

Cómo crear y configurar los servidores virtuales
Para crear los servidores virtuales existen una serie de herramientas disponibles en las xen-tools:

xen-create-image –verbose –size 1024M \
–hostname=domU1.intranet \
–passwd –debootstrap

Crea una imagen con las características determinadas en la línea de comandos y las determinadas en la configuración de las xen-tools

También se puede usar una imagen raw creada con Qemu.

Ahora, una configuración básica para nuestro domU
En un archivo llamado /etc/xen/[domu].cfg, ponemos:

#
# Kernel + memory size
#
kernel = ‘/boot/vmlinuz-2.6.20-1-xen-amd64′
#extra=’acpi=on’
ramdisk = ‘/boot/initrd.img-2.6.20-1-xen-amd64’
memory = ‘128’
vcpus = 2

#
# Disk device(s).
#
root = ‘/dev/sda1 ro’
disk = [ ‘file:/srv/xendomains/domU1/domU1_rootfs.img,sda1,w’,
‘file:/srv/xendomains/domU1/domU1_swap.img,sda2,w’ ]

#
# Hostname
#
name = ‘domU1’

#
# Networking
#
# xenbr0 == intranet
# xenbr1 == DMZ
#
vif = [ ‘bridge=xenbr1, vifname=domU1.1 ,ip=172.16.255.10, mac=00:16:3E:11:01:10’ ]
#vif = [ ‘bridge=xenbr0, vifname=domU1.0 ,ip=172.16.0.10, mac=00:16:3e:00:00:0c’ ]

#
# Behaviour
#
on_poweroff = ‘destroy’
on_reboot = ‘restart’
on_crash = ‘restart’

Y lo lanzamos…
Una vez que tenemos la configuración y la imagen del domU, estamos listos para lanzar nuestra máquina virtual:

xm create [-c] domU1.cfg

Si está corriendo, podemos verificarlo con el comando:

xm list

que devolverá algo como

Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 248 2 r—– 130602.7
domU1 14 128 2 -b—- 2510.3

Virtualización con Qemu
Qemu ofrece emulación de hardware, lo cual lo vuelve útil en algunos ambientes e impráctico en otros.

El kernel de linux ha incorporado código de qemu/bochs, para proveer soporte de virtualización total con KVM (Kernel-based Virtual Machine).

Existe una posibilidad intermedia donde nosotros, los pobres NO POSEEDORES de hardware con virtualización nativa podemos estar, que es Qemu + módulo de kqemu

Cómo trabaja?
Qemu trabaja principalmente en el Anillo 3 (User mode) de los CPUs x86.

Como tal, es una aplicación sin acceso irrestricto al hardware.

Si bien ésto lo hace más lenta, gracias a las bios creadas por la gente de bochs y continuadas por la gente de Qemu, es posible emular distintas arquitecturas de hardware sin ningún tipo de problemas.

Qué instalar
Elija su distribución preferida, y corra el instalador de paquetes de su gusto. En Debian, sería algo así como:

apt-get install qemu

que instalará cosas como:

bochsbios
vgabios
openhackware

Y listo. Disfrute…

Cómo crear y configurar los servidores virtuales
Para crear los servidores virtuales, es necesario seguir dos o tres pasos. Por ejemplo, para instalar un linux:

1- Crear un archivo que contenga la imagen que queremos crear:

qemu-img create disco.img 2048M

2- Poner un cd instalador en el CD-ROM y bootear qemu desde ahí:

qemu -m 512 \
-hda disco.img \
-cdrom /dev/cdrom \
-boot d

3- Si sólo tenemos una imagen (ISO) del instalador:

qemu -m 512 \
-hda disco.img \
-cdrom /path/a/la/imagen.iso \
-boot d

Y ahora, las cosas que podemos hacer…
Xen y Qemu son muy versátiles, lo que permite armar con ellos configuraciones muy “locas”, con fines educativos, económicos, de investigación, etc.

Por ejemplo:

Reducción de costos de hardware
Aumentar la seguridad de aplicaciones
Eliminar la interacción no deseada de las aplicaciones
Evaluar software sin riesgos
Configurar alta disponibilidad
Mejorar el ciclo de desarrollo/testeo/producción
Lo que quie-ra! 🙂
Más información
De lo que hablamos:

Sitio oficial de Xen: http://www.xensource.com
Listas de correo sobre Xen: http://lists.xensource.com
Sitio oficial de Qemu: http://www.qemu.org
Otros emuladores:

Sitio de VMWare: http://www.vmware.com
Nuestro nunca bien ponderado…

Google: http://www.google.com
Y por último, donde todos deberían entrar:

No a la matriculación obligatoria: http://noalamatricula.wordpress.com/about
Gracias por el aguante!

Anuncios