Virtualización en Ubuntu 12.04 con KVM

El procedimiento permite realizar virtualización en Ubuntu 12.04 con KVM.

KVM o Kernel-based Virtual Machine, (en español, Máquina virtual basada en el núcleo) es una solución para implementar virtualización completa con Linux. 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, tarjeta gráfica, etc.
KVM fue creado, y está mantenido, por Qumranet.

(Extraído de Wikipedia)

Requisitos de Hardware:

Procesador x86, o x86_64, con soporte para virtualización. La tecnología de virtualización recibe la denominación VT en Intel y SVM en AMD.
KVM puede ejecutar huéspedes Linux/Unix/Windows de 32 o 64 bits.

(Extraído de Wikipedia)

Estado actual de desarrollo:

KVM utiliza una versión modificada de QEMU como front-end. Se está trabajando para utilizar más características de la Virtualization Technology presente en las últimas CPUs de Intel (Core 2 Duo E6300 en adelante para equipos de escritorio y Core 2 Duo T5600 y superiores para equipos portátiles) y AMD. Se han realizado pruebas de rendimiento con Xen (utilizando virtualización hardware en lugar de paravirtualización) y, para algunas cargas de trabajo, ha resultado ser más rápido. Para otras, no tanto.4
Una de las características que KVM posee es el «overcommit» que es el uso de memoria excediendo aún la memoria física del host.

(Extraído de Wikipedia)

Verificaciones previas:

No todos los equipos soportan virtualización por hardware.  Para verificar que el equipo soporta debe ejecutarse el comando:

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

Y devolver un valor 1 o superior  Se debe verificar que la virtualización este habilitada desde el bios.

Es conveniente virtualizar en equipos con soporte a 64bit ya que permiten administrar  procesos de mayor tamaño, que es uno de los elementos que van a limitar a la máquinas virtuales.

Para validar si el equipo soporta kernels de 64bits.

< egrep -c ' lm ' /proc/cpuinfo

Debe devolver un valor igual o mayor a 1.

Procedimiento:

El primer paso a realizar es asegurarse de que el equipo este actualizado.

< sudo aptitude update
< sudo aptitude safe-upgrade

Y a continuación se deben instalar los siguientes paquetes necesarios para virtualizar.

< sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virt-viewer

Al usuario que vaya a administrar las máquinas virtuales se le debe agregar al grupo

El primer paso a realizar es actualizar el sistema.

< sudo aptitude update
< sudo aptitude safe-upgrade

Y a continuación se deben instalar los siguientes paquetes.

< sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager virt-viewer

Finalizada la instalación de los paquetes, el usuario se debe volver a loguear para que la nueva sesión pertenezca al grupo libvirtd.

< usermod usuario -a -G libvirtd

Finalizado el procedimiento, el usuario se debe volver a loguear para que la nueva sesión pertenezca al grupo de administradores de máquinas virtuales.

Configuración de Red:

Partiendo de un archivo original “/etc/network/interfaces” ( Configurado acorde a la necesidad de la red local )

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
	address 192.168.21.150
	network 192.168.21.0
	netmask	255.255.255.0
	broadcast 192.168.21.255
	gateway 192.168.21.1

Se configura el “Bridge” (puente) para que sea utilizado por las máquinas virtuales.  Recuerde adaptar eso a las necesidades de su red.

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
	address 192.168.21.150
	network 192.168.21.0
	netmask 255.255.255.0
	broadcast 192.168.21.255
	gateway 192.168.21.1
	bridge_ports eth0
	bridge_fd 9
	bridge_hello 2
	bridge_maxage 12
	bridge_stp off

ADMINISTRACIÓN:

Crear una máquina virtual desde consola:

Para crear una máquina virtual desde consola se ejecutar la siguiente línea.

Los valores típicos a configurar son:

  • name => nombre
  • ram => cantidad de memoria asignada al equipo virtual
  • disk => ubicación donde se va a crear la imagen del disco (debe existir el directorio donde se va a crear el archivo.
  • network => red a utiliza
  • cdrom => origen de la instalación
  • –os-variant => El sistema operativo a instalar (introduce optimizaciones para el mismo, la lista de opciones se pueden ver ejecutando “man virt-install”).
sudo virt-install 
 --connect qemu:///system 
 --name=ldap 
 --hvm
 --ram 512
 --disk /var/vms/ldap.img,size=20
 --network bridge=br0
 --cdrom=/var/downloads/isos/ubuntu-12.04.1-server-amd64.iso
 --vnc
 --noautoconsole
 --os-type=linux
 --os-variant=ubuntuprecise

Consola:

Con el comando virsh podemos ejecutar acciones sobre las máquinas virtuales:

< virsh
> Welcome to virsh, the virtualization interactive terminal.
>
> Type:  'help' for help with commands
>        'quit' to quit

comandos básicos:

  • autostart [NombreHuesped] -> Marca al huesped para ser iniciado automaticamente cuando se inicia el anfitrión.
  • define [ArchivoDefinicion] -> Actualiza o incorpora la configuración del huesped cuando se modifica el xml que lo define (/etc/libvirt/qemu/huesped.xml)
  • destroy [NombreHuesped] -> Apaga el huesped desconctandolo (equivalente a tirar el cable de alimentación)
  • list -> lista los huéspedes registrados en el servidor.
  • shutdow [NombreHuesped] -> apaga el huesped amablemente
  • start [NombreHuesped] -> inicia el huésped

Instalación del huésped:

Este procedimiento se realiza tipicamente desde la estación de trabajo o desde el mismo servidor si tiene la interface gráfica instalada.

Se debe ejecutar el comando virt-manager (si no esta instalada ejecutar “sudo apt-get install virt-manager”)

< virt-manager

Desplegará la siguiente ventana.

Para conectarse al servidor se debe definir la conexión en el Menú “File” -> “Add Connection”

Seleccionar la opción “Connect to remote host”, definir nombre de usuario y nombre del servidor (o dirección ip).

Una vez que se conecte al servidor, se mostrarán las máquinas virtuales instaladas en el equipo.

Realizando doble click sobre una se despliega la una ventana con lo que mostraría un equipo físico por el monitor.

 

4 pensamientos en “Virtualización en Ubuntu 12.04 con KVM

Deja un comentario