PDF de programación - Virtualización basada en el kernel con KVM

Imágen de pdf Virtualización basada en el kernel con KVM

Virtualización basada en el kernel con KVMgráfica de visualizaciones

Publicado el 5 de Abril del 2018
302 visualizaciones desde el 5 de Abril del 2018
863,4 KB
3 paginas
Creado hace 13a (01/01/2007)
PORTADA ¥ KVM

Virtualizacin basada en el kernel con KVM

VIRTUALIZACIN
PROFUNDA

S
p
e
c
t
r
a
l
-

l
i

a

D
e
s
i
g
n

,


F
o
t
o

KVM introduce al kernel en el terreno de juego de la virtualizacin.

Explicamos por qu el mundo Linux se est interesando tanto por esta

prometedora alternativa. POR AMIT SHAH

En Diciembre de 2006, Linus Torvalds

anunci que las nuevas versiones del
kernel Linux incluiran la herra-
mienta de virtualizacin conocida como
KVM (Kernel Virtual Machine Monitor), una
tecnologa de reciente aparicin. Su repen-
tina aceptacin se debe al poder del modelo
de virtualizacin basado en el kernel. La vir-
tualizacin basada en el kernel ofrece ciertas
ventajas potenciales, entre las que se
encuentran un mejor rendimiento y un
soporte ms uniforme para el entorno Linux
al completo. Este artculo muestra el funcio-
namiento de KVM y nos ayuda a iniciarnos
en la creacin de nuestro propio sistema vir-
tual basado en KVM.

Al Estilo KVM
En un escenario de virtualizacin tpico, un
componente conocido como hypervisor
ofrece una interfaz entre el sistema husped
y su anfitrin. El hypervisor reside en lo alto
del sistema anfitrin, encargndose de la pla-
nificacin de las tareas y la gestin de la
memoria de cada husped. KVM integra el
hypervisor en el kernel, reduciendo as las
redundancias y acelerando los tiempos de

ejecucin. Un controlador de KVM se comu-
nica con el kernel actuando como interfaz
para una mquina virtual en espacio de
usuario. La programacin de las tareas y la
gestin de la memoria son manejadas a tra-
vs del mismo kernel. Un pequeo mdulo
del kernel Linux presenta el modo husped,
instala tablas de pginas para l y emula
determinadas instrucciones clave.

Las versiones actuales de KVM vienen con
una versin modificada del emulador Qemu
que gestiona la E/S y opera como una resi-
dencia virtual para el sistema husped
(Figura 1). El sistema husped se ejecuta
dentro de Qemu, mientras que Qemu se eje-
cuta a su vez en espacio de usuario. El
entorno resultante es parecido al escenario
representado en la Figura 2, en el que varios
procesos de mquina virtual se ejecutan
cerca de otras tareas de espacio de usuario
gestionadas directamente por el kernel. Cada
husped consta de dos partes: la parte de
espacio de usuario (Qemu) y la parte hus-
ped (el husped en s mismo). Los procesa-
dores virtuales de dentro de una mquina
virtual son simples hilos del proceso del anfi-
trin.

Este modelo encaja muy bien en la menta-
lidad Unix de hacer una cosa y hacerla bien.
Lo que hace el mdulo KVM es activar el
modo husped y gestionar los accesos vir-
tualizados a los registros. Desde la perspec-
tiva de un usuario, casi no hay diferencia
entre ejecutar una mquina virtual Qemu
con KVM deshabilitado y hacerlo con KVM
habilitado, a excepcin claro est del signifi-
cativo aumento de velocidad.

KVM sigue la filosofa de desarrollo y
publicacin sobre la que se construye Linux:
publicar pronto y a menudo. La ltima ver-
sin estable es parte del kernel Linux 2.6.x, y
sus modificaciones aparecen como 2.6.x.y.
Las fuentes de KVM se mantienen en un
rbol git. Para obtener la ltima versin de
KVM o el ltimo rbol, podemos dirigirnos a
la wiki de KVM [1].

Uso de KVM
Como KVM slo explota los avances de
hardware ms recientes, debemos asegurar-
nos de tener un procesador capaz de sopor-
tar la extensiones de virtualizacin. Para ave-
riguarlo:

egrep ^flags.*(vmx|svm) U
/proc/cpuinfo

Si se produce alguna salida es porque nues-
tra CPU tiene lo necesario para ejecutar
KVM.

34

Nmero 36

W W W . L I N U X - M A G A Z I N E . E S

uno con sus ventajas y
la
desventajas. Ver
documentacin
de
Qemu.

Una vez creado el
archivo de imagen ya
estamos listos para ins-
talar un sistema hus-
ped en l. Primero
insertamos los mdu-
los de KVM en el ker-
nel si es que los hemos
compilado
como
mdulos.

Figura 1: KVM trae una versin modificada del emulador Qemu.

$ sudo modprobe kvm
$ sudo modprobe kvm-intel
$ qemu-system-x86_64 -boot d U
-cdrom /images/debian-etch.iso U
-hda debian-etch.img

o bien

$ sudo modprobe kvm
sudo modprobe kvm-amd
$ qemu-system-x86_64 -boot d U
-cdrom /images/debian-etch.iso U
-hda debian-etch.img

Este comando arranca una sesin de MV. La
ventana muestra QEMU/KVM en la barra de
ttulo, lo que significa que KVM est acti-
vado. Una vez finalizada la instalacin,
podemos iniciar el husped con

$ qemu-system-x86_64 U
debian-etch.img

Bien, ya tenemos el hardware, estamos a
mitad de camino. Ahora necesitamos ejecutar
un kernel Linux 2.6 reciente. Si ya dispone-
mos de un kernel Linux reciente con KVM
compilado en l o como mdulo, podemos
usarlo si no queremos compilar los mdulos
nosotros mismos. De cualquier modo, el pro-
yecto KVM recomienda usar la ltima versin
del sitio web, ya que KVM adquiere continua-
mente nuevas funcionalidades y correcciones
(sin mencionar nuevos bugs, que podran
afectarnos en cualquier momento).

Descargamos las fuentes de KVM de la
pgina de descarga de KVM [2]. El tarball
est formado por dos partes. La carpeta ker-
nel/ contiene las fuentes para los mdulos
del kernel. Los otros archivos son la parte de
espacio de usuario, una versin ligeramente
modificada de Qemu. Si descargamos el tar-
ball de KVM y lo instalamos, no lo debemos
tener compilado en el kernel; en caso contra-
rio, el mdulo compilado fallar al iniciarse.
La compilacin de las utilidades en espa-
cio de usuario requiere varias libreras. El lis-
tado detallado y las instrucciones se encuen-
tran en la wiki de KVM [3].

Habremos de usar el compilador GCC 3;
parte del cdigo de Qemu no se lleva bien con
GCC 4, que es el compilador predeterminado
en las distribuciones Linux ms recientes.

Una vez tenemos el mdulo del kernel y
las herramientas de espacio de usuario insta-
lados (compilados o instalados desde los
paquetes de nuestra distribucin), lo primero
que hemos de hacer es crear el archivo que
albergar el sistema operativo husped. Es
fcil :

$ qemu-img create -f qcow U
debian-etch.img 10G

Esto crea un archivo de 10 GB llamado
debian-etch.img en formato qcow. Tambin
se soportan otros formatos de archivo, cada

Administracin de Spam ¥ PORTADA
KVM ¥ PORTADA
Ibm y Sun ¥ EVALUACIN

Tambin podemos pasar el parmetro -m
para ver la cantidad de RAM obtenida por la
MV. El valor predeterminado es 128 MB. Las
versiones ms recientes de KVM soportan el
intercambio de memoria del husped, por lo
que la RAM destinada al husped no queda
inerte en el anfitrin.

Puede que ocasionalmente se produzcan
errores al ejecutar MVs con KVM. La salida
mostrada en los registros de error del kernel
del anfitrin pueden ayudarnos a encontrar
posibles soluciones al problema si ste ya ha
sido consultado con anterioridad. Tambin
puede que se solucionen actualizando a la
ltima versin de KVM.

En caso de no hallar una solucin,
pasando la opcin -no-kvm a Qemu haremos
que ste arranque sin soporte para KVM. Si
no se soluciona el problema significa que
ste se encuentra en Qemu, y no en KVM.
Otra alternativa es pasar el parmetro -no-
kvm-irqchip al arrancar una MV. Podemos
preguntar tambin en la lista de correo de
KVM [4].

Monitor Qemu
El monitor de Qemu es accesible mediante la
combinacin de teclado Ctrl+Alt+2 mien-
tras se encuentra seleccionada la ventana de
Qemu. Con el monitor se puede acceder a
ciertos comandos de depurado que nos pue-
den ayudar a determinar el estado de la MV.
Por ejemplo, info registers muestra los conte-
nidos de los registros de la CPU virtual. Tam-
bin podemos adjuntar dispositivos USB a
una MV usando los comandos del monitor
de Qemu.

Tipos de Monitores para Mquinas Virtuales

Las distintas soluciones para
la
creacin de mquinas virtuales pueden
categorizarse del siguiente modo:
¥ Hypervisores nativos: Un hypervi-
sor nativo est asociado al sistema
operativo. Una
implementacin
basada en software completa nece-
sita un planificador, un subsistema
de gestin de memoria y un modelo
de E/S de dispositivos a exportar al
sistema
hospedado.
Algunos ejemplos son VMWare ESX
server, Xen, KVM e IBM mainframes.
En IBM mainframes, el monitor de la
mquina virtual es una parte
integrada en la arquitectura.

operativo

¥ Contenedores: En este tipo de vir-
tualizacin, el sistema operativo
husped y el anfitrin comparten el
mismo kernel. Se asignan nombres

de espacio diferentes para los distin-
tos huspedes. Por ejemplo, los
identificadores de procesos, descrip-
tores de archivo, etc., son virtual-
izados en el sentido de que un PID
obtenido de un proceso en el sis-
tema husped slo es vlido dentro
del mismo. El husped puede tener
diferentes espacios de usuari
  • Links de descarga
http://lwp-l.com/pdf10201

Comentarios de: Virtualización basada en el kernel con KVM (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad