Sei sulla pagina 1di 8

Virtualizacin con KVM

Virtualizacin con KVM


Introduccin

Desde hace unos aos se viene hablando en informtica del
concepto de Virtualizacin como forma de ahorrar costes en las

empresas aprovechando al mximo los recursos hardware de
que dispone.

La virtualizacin consiste en una abstraccin de los recursos de
una computadora, creando una capa intermedia entre el
hardware de la mquina fsica y el sistema operativo de la
mquina virtual, dividiendo los recursos entre varios entornos de
ejecucin.

Entre los distintos distribuidores de software para la


virtualizacin, el lder indiscutible a da de hoy es VMware, qu
distribuye una solucin propietaria, y muy completa.

Sin embargo, en el mundo del software libre, existe una


alternativa muy buena al software de virtualizacin de VMware.
Esta alternativa es KVM.

KVM, siglas de Kernel-based Virtual Machine, es una solucin


completa de virtualizacin para GNU/Linux sobre una
arquitectura x86. Consiste en un mdulo del kernel, kvm.ko, que
provee la infraestructura del ncleo de virtualizacin y de un
mdulo especfico para el procesador, kvm-intel.ko, para
procesadores de la familia Intel, y, kvm-amd.ko, para
procesadores de la familia AMD.

Usando KVM, se pueden ejecutar mltiples mquinas virtuales


que se ejecutan sin modificar las imgenes de GNU/Linux o
Windows. Cada mquina virtual tiene su propio hardware
virtualizado: una tarjeta de red, disco duro, tarjeta grfica, etc.

El componente del kernel de KVM est includo en la lnea


principal del kernel de Linux desde la versin 2.6.20.

Prerrequisitos
Antes de instalar KVM hay que revisar algunas caractersticas
de la mquina en la que se va a instalar para comprobar que es
posible ejecutarlo en ella.

Revisar que la CPU soporta la virtualizacin del hardware


Para ejecutar KVM se necesita un procesador que soporte la
virtualizacin del hardware. Intel y AMD han desarrollado
extensiones para sus procesadores, llamadas respectivamente
Intel-VT-x (nombre en cdigo Vanderpool) y AMD-V (nombre en
cdigo Pacfica).

1 de 8 Para comprobar si tu procesador soporta alguno de ellos, debes


Virtualizacin con KVM

cdigo Pacfica).

Para comprobar si tu procesador soporta alguno de ellos, debes


revisar la salida de este comando:

egrep -c '(vmx|svm)' /proc/cpuinfo

Si la salida es 0 significa que tu CPU no soporta la virtualizacin


de hardware.

Si la salida es 1 o ms significa que si la soporta. Pero an


debes asegurarte que el soporte para la virtualizacin est
habilitado en la BIOS de tu ordenador.

Por defecto, si has arrancado dentro con un kernel XEN no se


mostrar la salida con el comando egrep. Para ver si est
habilitado o no desde XEN hay que usar este otro comando:

cat /sys/hypervisor/properties
/capabilities

Debes buscar hvm en la salida.

Alternativamente, se puede usar este otro comando ejecutado


con privilegios de superusuario.

kvm-ok

Que mostrar por la pantalla una salida como esta:

INFO: /dev/kvm exists


KVM acceleration can be used

Si en vez de eso, se muestra:

INFO: Your CPU does not support KVM


extensions
KVM acceleration can NOT be used

An puedes ejecutar mquinas virtuales, pero con mucho menor


rendimiento que usando las extensiones KVM.

NOTA: El mensaje KVM acceleration can/can NOT be used es


engaoso y slo significa que KVM est disponible, no que est
soportado.

Usar un kernel de 64-bit (si es posible)

Ejecutar KVM en un sistema operativo con un kernel de 64-bit en


el ordenador anfitrin es recomendable, aunque no
imprescindible
1. Para proveer ms de 2GB de memoria RAM para las
mquinas virtuales se debe usar un kernel de 64-bit. Con un
kernel de 32-bit ese es el lmite mximo.
2. En un sistema operativo anfitrin de 64-bit se pueden alojar
mquinas virtuales de 64 o 32-bit. Si el anfitrin es de 32-bit
slo se pueden alojar mquinas virtuales de 32-bit.
Para comprobar si el procesador es de 64-bit hay que revisar la
salida de este comando:

egrep -c ' lm ' /proc/cpuinfo

Si la salida es 0 significa que el procesador es de 32-bit.


2 de 8
Virtualizacin con KVM

egrep -c ' lm ' /proc/cpuinfo

Si la salida es 0 significa que el procesador es de 32-bit.

Si es 1 o mayor, es de 64-bit.

Por ltimo, comprobaremos si el kernel que est corriendo es de


64-bit. Teclearemos este comando:

uname -r

x86_64 indica que se est ejecutando un kernel de 64-bit. Si ve


i386, i486, i586 o i686 es que se est ejecutando un kernel de
32-bit.

Instalacin
Para realizar la instalacin de KVM en Ubuntu se puede optar
por elegir durante el proceso de instalacin la opcin de instalar
el Servidor de virtualizacin (Virt Host) o, si se va a realizar la
instalacin en un ordenador con el sistema instalado, instalar el
meta-paquete ubuntu-virt-server:

$sudo apt-get install ubuntu-


virt-server

La instalacin de este meta-paquete instala en el sistema, entre


otros, los siguientes paquetes:
kvm: es la solucin de virtualizacin que se compone de
una serie de mdulos para el ncleo de Linux. Usa QEMU.
libvirt-bin: son unas herramientas para administrar kvm y
libvirt.
bridge-utils: sirve para poder utilizar la red local como una
red virtual.
Una vez terminada la instalacin del meta-paquete, se puede
comprobar que todo ha salido correctamente utilizando el
siguiente comando en la consola:

virsh -c qemu:///system list

Lo que proporcionara una salida en la terminal como esta:

Id Nombre Estado
---------------------------------------

Por ltimo, hay que asegurarse de que el usuario que va a crear


y gestionar las mquinas virtuales sea incluido en el grupo
libvirtd.

$sudo adduser $USER libvirtd

Administracin desde la consola


Para administrar las mquinas virtuales desde la consola se
dispone de unas utilidades que se instalan automticamente
junto a los paquetes libvirt-bin y virtinst. Estos paquetes se han
instalado si se han seguido los pasos de este artculo, an as
es conveniente instalar un paquete adicional, el virt-viewer:

$sudo apt-get install virt-viewer

Crear una mquina virtual: para crear una nueva mquina


virtual utilizaremos el comando siguiente (por claridad se pone
en distintas lneas, pero el comando ha de escribirse en una
sla lnea):
3 de 8
Virtualizacin con KVM

virtual utilizaremos el comando siguiente (por claridad se pone


en distintas lneas, pero el comando ha de escribirse en una
sla lnea):

$sudo virt-install
--connect qemu:///system
--name=ldap-server
--hvm
--ram 1024
--disk /var/lib/libvirt/images/ldap-server_disk.img,size=40
--network bridge=virbr0
--cdrom=/var/downloads/isos/ubuntu-12.04.1-server-amd64.iso
--vnc
--os-type=linux
--os-variant=ubuntuprecise

En este comando los prametros ms relevantes son:


connect: conexin a un hipervisor, para KVM se suele
poner qemu:///system si se est ejecutando como mdulo
del kernel.
name: nombre para la mquina virtual.
hvm: para indicar que utilice toda las caractersticas de
virtualizacin. Si quisiramos utilizar paravirtualizacin se
usara el parmetro --paravirt.
ram: cantidad de memoria RAM asignada a la mquina
virtual en MB.
disk: ruta donde se almacenar el disco de la mquina
virtual y su tamao en GB:
network: conexin de red que utilizar. Si no se especifica
utiliza la conexin por defecto y hace NAT. La opcin de
bridge es slo para mquinas anfitriones que tienen definida
una IP esttica.
cdrom: imagen ISO que arrancar como si estuviera
insertada en un lector de CD-ROM.
os-type: tipo de sistema operativo que se va a instalar.
os-variant: versin del sistema operativo.

Por supuesto, para una completa descripcin de este comando


no estara de ms consultar el manual (man virt-install).

Gestin de una mquina virtual: para gestionar mquinas


virtuales desde la lnea de comandos utilizaremos el comando
virsh. Las opciones que se pueden usar con este comando son
muchas, aqu slo mostrar las ms bsicas, para consultar
todas las opciones, como siempre, recomiendo mirar el manual
(man virsh) o usar la propia ayuda del comando.

Arrancar una mquina virtual: suponiendo


que ldap-server es el nombre de la mquina (o
dominio como lo llama virsh).

virsh start ldap-server

Marcar el huesped para que se inicie


automticamente: si queremos que el
huesped se inicie automticamente cuando se
arranque el anfitrin, debemos especificarlo
usando:

virsh autostart
ldap-server
4 de 8
Virtualizacin con KVM

virsh autostart
ldap-server

Apagar una mquina virtual: para apagar el


husped amablemente.

virsh shutdown
ldap-server

Forzar apagado una mquina virtual: hay


situaciones en las que el comando anterior no
apaga la mquina virtual, entonces slo nos
queda la opcin de apagarlo a la fuerza. O sea,
el equivalente a quitarle el cable de
alimentacin.

virsh destroy
ldap-server

Ver los dominios registrados en el servidor:


podemos listar los dominios (mquinas
virtuales) registrados en el servidor.

virsh list

Con esto terminamos la seccin de administracin de mquinas


virtuales usando la lnea de comandos. No est todo de lo que
se dispone, pero como ya dije para saber ms se debe consultar
el manual y/o la ayuda de cada comando.

Administracin desde entorno grfico


Si se dispone de entorno grfico, la administracin de las
mquinas virtuales se hace ms cmoda e intuitiva que usando
los comandos de la consola. Existe una gran variedad de
interfaces grficas o no que nos permiten la administracin de
nuestras mquinas virtuales, para ver una lista de ellas se
puede consultar en la pgina oficial de KVM
.

Por su sencillez y facilidad de uso he optado por usar el Virtual


Machine Manager, adems de ser desarrollado por el mismo
equipo de libvirt y patrocinado por Red Hat. Para instalarlo
podemos buscar Gestor de mquinas virtuales en el Centro de
Software de Ubuntu, o bien, ejecutar el comando:

$sudo apt-get install virt-manager

Nos instalar el gestor de mquinas virtuales en la seccin de


herramientas del sistema. Para arrancar el programa picamos
sobre el icono:

Al abrir el Gestor de mquinas virtuales se nos muestra una


pantalla con la lista de mquinas virtuales que hay creadas en el
sistema y el estado en que se encuentra. Tal y como se muestra
en la siguiente imagen.

5 de 8
Virtualizacin con KVM

en la siguiente imagen.

Se pueden realizar las siguientes acciones picando sobre los


iconos de la barra de herramientas (o usando la opcin del men
correspondiente):
Aadir una nueva mquina virtual: en el programa lo
llama aadir una nueva conexin, pero viene a ser lo
mismo. Para ellos picamos sobre el botn de la barra de

herramientas

. Esta accin nos abrir un asistente con


el que podemos crear una nueva mquina virtual
Abrir una mquina existente: con una de las mquinas ya
creadas seleccionadas, si picamos sobre el botn

nos abre un cuadro de dilogo en el que


se puede acceder a las caractersticas de la mquina
virtual. Por defecto abre el cuadro de dilogo con la consola
de acceso a la mquina virtual, tal como se muestra en esta
imagen para una mquina virtual con el CentOS 6.2
instalado.

6 de 8
Virtualizacin con KVM

Las funcionalidades a las que se puede acceder desde este


cuadro de dilogo las explicar un poco ms abajo.
Arrancar una mquina virtual: si la mquina virtual que se
tiene seleccionada en la lista de mquinas esta apagada
(no iniciada), podemos arrancarla picando sobre el icono:

.
Pausar la mquina virtua: si se desea pausar la ejecucin
de la mquina virtual, es decir, la mquina sigue en
funcinamiento pero se para la ejecucin de la misma,

debemos dar con el ratn sobre el botn:

Parar una mquina virtual: en el caso de que la mquina


virtual que hay seleccionada en la lista est iniciada,

podemos pararla picando sobre el botn:

.
A la derecha del icono podemos desplegar una lista de
acciones referentes al modo de apagado de la mquina:
reiniciar, apagado, forzar apagado. Elegiremos el que ms
nos conviene. Sin embargo, en caso de tener que apagar
una mquina virtual, en mi opinin, se debe apagar desde la
propia mquina para que el apagado sea correcto. Slo
utilizar esta posibilidad de apagado cuando desde la propia
mquina virtual no sea posible.
Todas las acciones descritas en el prrafo anterior se pueden
realizar desde la pantalla principal del Gestor de mquinas
virtuales. Sin embargo, en el cuadro de dilogo de una mquina
abierta podemos, adems de interactuar con la mquina a
travs de la consola, acceder a estas otras opciones:
Mostrar detalles del hardware: aunque sea virtualizado,
cada mquina virtual dispone de su propio hardware:
procesadores, memoria, tarjeta de vdeo... Si deseamos
ver esos detalles de la mquina, en el cuadro de dilogo de

la propia mquina se puede picar sobre el botn

, con lo que podremos ver y


cambiar el hardware. La imagen de la pantalla de los
detalles es como esta:

7 de 8
Virtualizacin con KVM

detalles es como esta:

Mostrar la consola: si estamos en la vista de detalles y


queremos volver a la vista de la consola picamos sobre el

icono:

Modo de pantalla completa: para mostrar la mquina


ocupando toda la pantalla, en la vista de la consola,

picamos sobre el icono

. Si estamos en modo
de pantalla completa y queremos volver al modo normal,
debemos desplazar el ratn hasta la parte superior, lo que
har que nos aparezca un icono sobre el que picaremos
para volver al modo normal.
Con estas explicaciones termino el artculo. No estn, ni con
mucho, explicadas todas las acciones que podemos realizar
sobre las mquinas virtuales. Les convido a probar e investigar
todo lo que puedan y no se olviden de consultar la
documentacin cada vez que tengan dudas.

8 de 8

Potrebbero piacerti anche