KVM: The Kernel Virtual Machine
Virtualizando con GNU/Linux
Versión 1.0
Juan Matias Granda –
[email protected]
Algunos derechos reservados: Licencia GFDL 2008
http://gugs.sindominio.net/licencias/gfdl1.2es.html
http://www.gnu.org/copyleft/fdl.html
traducción NO oficial al español:
Introducción:
KVM es una solución para implementar virtualización completa con Linux
sobre hardware x86. Está formada por un módulo del núcleo (con el nombre
kvm.ko) y herramientas en el espacio de usuario, siendo en su totalidad
software libre. El componente KVM para el núcleo está incluido en Linux desde
la versión 2.6.20.
KVM permite ejecutar máquinas virtuales utilizando imágenes de disco
que contienen sistemas operativos sin modificar. Cada máquina virtual tiene su
propio hardware virtualizado: una tarjeta de red, discos duros, tarjetas gráfica,
etc.
Lo que se verá en este documento son todos los pasos necesarios para
montar un Servidor de maquinas virtuales por medio de KVM y las
herramientas necesarias para poder administrar tanto al servidor como así
también a sus respectivas maquinas virtuales.
Reuniendo lo necesario
Hardware a utilizar
El hardware a utilizar es muy importante ya que no todos los equipos
permiten realizar este tipo de virtualización, para ello el procesador del equipo
deberá tener una de las siguientes micro instrucciones:
Procesadores Intel: INTEL-VT
Procesadores AMD: AMD-V
•
•
•
Para comprobar si nuestro equipo posee alguna de estas micro
instrucciones deberemos ejecutar en consola:
$ egrep '(vmx|svm)' /proc/cpuinfo
Lo que nos devolverá algo como:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm
constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3
cx16 xtpr lahf_lm ida
Esto es así ya que grep encontró la micro instrucción “vmx” en el
microprocesador del equipo, si hubiera sido un equipo AMD, la micro
instrucción a encontrar sería “svm”.
Si bash no nos devolvió nada quiere decir que el equipo no podrá correr
KVM.
Software a utilizar
Si todo ha ido bien en el punto anterior, el Software a usar sera el
siguiente:
• Ubuntu Linux 8.04.1 Server Edition, arquitectura 64bits.
• Kernel Linux 2.6.24 (versión del manual: 2.6.24-21-generic).
•
•
libvirt0 0.4.0 (versión del manual: 0.4.0-2ubuntu8 ).
virt-manager 0.5.3 (versión del manual: 0.5.3-0ubuntu9).
todo el software a utilizar se encuentra en los repositorios de Ubuntu, ya
que Ubuntu eligió a KVM como sistema de virtualización, lo que nos asegura un
buen rendimiento.
Instalando y Configurando
Instalando KVM y herramientas necesarias
La instalación de KVM y sus herramientas es prácticamente sencillo, solo
deberemos ejecutar:
$ sudo apt-get install kvm libvirt-bin virt-manager
libvirt-bin: trae el demonio libvirtd el cual se usara para administrar KVM.
•
• Kvm: el emulador x86.
• Virt-manager: Interfaz gráfica que nos permitirá crear y administrar las
maquinas virtuales.
Con esto ya tendremos corriendo nuestro KVM, pero antes de utilizarlo
deberemos hacer un par de configuraciones previas.
Incorporando usuarios al grupo libvirtd
Para poder administrar KVM debemos ingresar el/los usuario(s)
administrador al grupo libvird, para ello:
$ sudo adduser `id -un` libvirtd
El comando `id -un` nos devolverá el usuario que estamos utilizando en
estos momentos, cabe aclarar que para poder agregarlo el mismo debe poder
hacer uso del comando sudo.
Si deseamos agregar mas usuario, debemos cambiar el comando `id -un`
por el nombre del usuario, por ejemplo:
$ sudo adduser admin2 libvirtd
Recuerde que para que los nuevos grupos sean agregados a su usuario
deberá loguearse nuevamente, NO en el entorno gráfico, sino en las consolas
que este usando en ese momento.
NOTA: Este punto no es del todo necesario si es que vamos a utilizar virt-
manager (ya que lo correremos con permiso de root), pero se pretende
enseñar en una nueva versión del manual herramientas como virsh, las cuales
nos permitiran administrar KVM usando nuestro usuario y no root.
Creando bridged network (red virtuales usando puente )
Para que las máquinas virtuales puedan tener conexión a redes físicas
reales, debemos crear puentes o bridges entre las placas reales (eth0, eth1,
etc) y placas virtuales que crearemos (br0, br1, etc).
Como vamos a modificar la configuración de la red, seria conveniente
parar el sistema de red un momento:
invoke-rc.d networking stop
Luego editamos el archivo “ /etc/network/interfaces “ y agregamos las
siguientes lineas al final del mismo:
auto br0
iface br0 inet static
address 192.168.1.200
network 192.168.0.0
netmask 255.255.0.0
broadcast 192.168.255.255
gateway 192.168.2.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
bridge_maxwait 5
Suponemos que el lector comprende las lineas agregadas, la única que
vale la pena explicar es:
bridge_ports eth0
La cual nos esta diciendo que la placa asociada a la placa bridge virtual
es la placa “real” eth0.
Una vez creadas todas las placas bridge que necesitamos, reiniciamos el
sistema de red:
$ sudo /etc/init.d/networking restart
virt-manager: Creando VMs
virt-manager (Virtual Machine Manager) es una aplicación de escritorio
para administrar maquinas virtuales. La misma presenta un sumario de los
“dominios” o maquinas virtuales que están corriendo, mostrando la
performance y sus estadísticas. virt-manager posee un Wizard para la creación
de nuevas VM, permitiendo configurar y ajustar los recursos y hardware virtual
de las mismas. Este programa también posee embebido un cliente VNC para
ver gráficamente los dominios que se estén corriendo.
virt-manager aún se encuentra en desarrollo (y que software no?) por eso
encontraremos ciertas fallas en el, como así también la falta de traducción a
nuestro idioma nativo, el español.
Corriendo el virt-manager
Al programa lo ejecutaremos con sudo ya que sino habrá ciertas
características inhabilitadas:
$ sudo virt-manager
imagen 1
En la imagen 1 podemos observar que tenemos un host cargado de
forma predeterminada, el localhost, al cual virt-manager no se encuentra
conectado (ver estatus “disconnected”), para conectarnos y poder trabajar
sobre nuestro KVM del localhost, haremos click derecho sobre el host y
seleccionaremos “conectar”. Ahora el estado ha cambiado a “active” y ya nos
muestra la cantidad de CPUs que posee el equipo, en este caso 2 (imagen 2).
imagen 2
Creando una Maquina Virtual
Una vez conectados al host, se nos habilitará el botón “nuevo”, el cual al
hacer click nos permitirá crear una máquina virtual (desde ahora VM).
imagen 3
Eligiendo un nombre
Lo primero que se nos preguntará sera el nombre de la nueva VM
(imagen 4).
imagen 4
Método de virtualización
Se nos preguntará el método de virtualización (ya que virt-manager
puede ser utilizado con Xen veremos que se encuentra una opción
“Paravirtualized”, la cual no esta habilitada para KVM) aquí dejaremos todo
como esta, manteniendo la arquitectura del CPU en x86_64 y habilitada la
aceleración por hardware (imagen 5).
imagen 5
Medio de instalación y tipo de host
Podremos elegir entre 3 métodos para instalar el nuevo sistema
Imagen ISO.
operativo de nuestra VM:
•
• CD-ROM o DVD.
• Booteo por red.
El tipo de Host a elegir dependerá del sistema operativo que querramos
instalar, en este ejemplo seleccionaremos como “OS Type” a Linux y como “OS
Variant” a Ubuntu Hardy (imagen 6).
imagen 6
Seleccionando el medio de almacenamiento
Para almacenar los datos de nuestra VM, podremos elegir entre una
partición real o un simple archivo o “disco virtual”.
Cuando elegimos un disco virtual deberemos especificar el tamaño
máximo que tendrá y si se debe reservar todo el espacio asignado al crearlo o
que vaya creciendo incrementalmente a medida que se use (imagen 7).
imagen 7
Eligiendo la conexión de red
Tendremos dos métodos de red para nuestra VM, una red virtual, entre el
host y la VM (“Virtual Network”) y la otra que nos permite conectar la VM a un
dispositivo físico del host, permitiendo conectar la VM a redes fisicas reales
usando de puente el host donde esta alojada esta(“Shared physical device”).
En este punto seleccionaremos en “Shared physical device” la placa de
red virtual “br0” creada previamente (imagen 8).
Veremos un punto también llamado “set fixed MAC...” esto nos permitirá
modificar la MAC address de la placa de red a utilizar.
imagen 8
Cantidad de memoria y CPU
En este punto deberemos seleccionar la cantidad de memoria ram que
será asignada a nuestra VM.
Aquí veremos que podemos elegir la cantidad máxima de memoria y la
cantidad de memoria reservada al inicio, esto es así por Xen (recuerden que la
aplicación sirve para administrar host con Xen o KVM), KVM no permite aún
manejar memoria incremental, así que en este punto se asignara en los 2
campos la misma cantidad de memoria.
Con respecto a los Virtual CPUs que utilizaremos queda a criterio de cada
uno (imagen 9).
imagen 9
Finalizando
Lo ultimo que resta es ver si todos los datos ingresados son los correctos,
al dar click en “Finish” se creara la VM (imagen 10).
imagen 10
imagen 11
virt-manager: Administrando Vms
Ya tenemos nues
Comentarios de: KVM: The Kernel Virtual Machine (0)
No hay comentarios