PDF de programación - Creación de maquinas virtuales utilizando kvm-qemu

Imágen de pdf Creación de maquinas virtuales utilizando kvm-qemu

Creación de maquinas virtuales utilizando kvm-qemugráfica de visualizaciones

Publicado el 22 de Noviembre del 2019
148 visualizaciones desde el 22 de Noviembre del 2019
362,5 KB
8 paginas
Creado hace 192d (30/05/2019)
Documentación - Virtualizacion - # 1

Creación de maquinas virtuales utilizando kvm-qemu
{{>TOC}}
Gestión de máquinas virtuales
Por consola

- [[gestion-maq-virt| Gestión de máquinas virtuales por consola]]
Gráficamente

Para gestionar las Máquinas virtuales gráficamente desde un Ubuntu con X, podemos instalar el meta-paquete ‘ubuntu-virt-mgmt’,
que instala el paquete ‘virt-manager’ y ‘virt-viewer’ en nuestro desktop para gestionar y crear las máquinas y acceder (por VNC) a los
guests.

1. Instalar

sudo apt-get install ubuntu-virt-mgmt

2. Configurar conexión
- Una vez instalado hay que ir a Archivo -> Añadir conexión: KVM/Qemu / ssh / ... etc etc
¿Por qué utilizar kvm-quemu?
Básicamente podemos considerar 3 tipos de virtualización: emulación, virtualización completa (Full Virtualization) y
paravirtualización:
Emulación:

La emulación se basa en crear máquinas virtuales que emulan el hardware de una o varias plataformas hardware distintas. Este tipo
de virtualización es la más costosa y la menos eficiente, ya que obliga a simular completamente el comportamiento de la plataforma
hardware a emular e implica también que cada instrucción que se ejecute en estas plataformas sea traducida al hardware real.
Sin embargo la emulación tiene características interesantes, como poder ejecutar un sistema operativo diseñado para una plataforma
concreta sobre otra plataforma, sin tener que modificarlo, o en el desarrollo de firmware para dispositivos hardware, donde se pueden
comenzar estos desarrollos sin tener que esperar a tener disponible el hardware real.

Uno de los ejemplos más destacados de la actualidad es QEMU. QEMU, entre otras cosas, permite emular diferentes plataformas
Hardware como x86, x86-64, PowerPC, SPARC o MIPS. Así pues, podríamos tener dentro de un servidor linux varios equipos x86 o
PowerPC, corriendo diferentes versiones de Linux.
Virtualización completa

Con este término se denominan aquellas soluciones que permiten ejecutar sistemas operativos huesped (Guest), sin tener que
modificarlos, sobre un sistema anfitrión (Host), utilizando en medio un Hypervisor o Virtual Machine Monitor que permite compartir el
hardware real. Esta capa intermedia es la encargada de monitorizar los sistemas huesped con el fin de capturar determinadas
instrucciones protegidas de acceso al hardware, que no pueden realizar de forma nativa al no tener acceso directo a él.
Su principal ventaja es que los sistemas operativos pueden ejecutarse sin ninguna modificación sobre la plataforma, aunque como
inconveniente frente a la emulación, el sistema operativo debe estar soportado en la arquitectura virtualizada.

En lo que respecta al rendimiento, éste es significativamente mayor que en la emulación, pero menor que en una plataforma nativa,
debido a la monitorización y la mediación del hypervisor. Sin embargo, recientes incorporaciones técnicas en las plataformas x86
hechas por Intel y AMD, como son Intel VT y AMD-V, han permitido que soluciones basadas en la virtualización completa se
acerquen prácticamente al rendimiento nativo.

Un par de ejemplos significativos son VMware y KVM.

Hay que tener en cuenta también que la virtualización completa no se refiere a todo el conjunto de hardware disponible en un equipo,
sino a sus componentes principales, básicamente el procesador y memoria. De esta forma, otros periféricos como tarjetas gráficas,
de red o de sonido, no se virtualizan. Las máquinas huesped no disponen de los mismos dispositivos que el anfitrión, sino de otros

30/05/2019

1/8

virtuales genéricos. Por ejemplo, si se dispone de una tarjeta nVidia GeForce en el anfitrión, los equipos huesped no verán esta
tarjeta sino una genérica Cirrus.
Paravirtualización

La paravirtualización surgió como una forma de mejorar la eficiencia de las máquinas virtuales y acercarlo al rendimiento nativo. Para
ello se basa en que los sistemas virtualizados (huesped) deben estar basados en sistemas operativos especialmente modificados
para ejecutarse sobre un Hypervisor. De esta forma no es necesario que éste monitorice todas las instrucciones, sino que los
sistemas operativos huesped y anfitrión colaboran en la tarea.
Uno de los componentes más destacados de esta familia es XEN, el cual fue mi principal candidato durante bastante tiempo. Permite
paravirtualización utilizando sistemas operativos modificados, y virtualización completa sobre procesadores con tecnología Intel-VT o
AMD-V. Para la gestión de las máquinas virtuales existen aplicaciones propietarias e incluso alguna open-source como ConVirt, que
permite gestionar también desde un único sitio las máquinas virtuales de diferentes servidores, realizar tareas sobre ellas, o
modificar sus configuraciones.

Cabría destacar otro tipo de productos para virtualizar que son aplicaciones de escritorio para virtualizar (OS level Virtualization),
como Vmware-player y VirtualBox. Estos tipos de virtualización están muy bien para virtualizar Sistemas Operativos en nuestro
escritorio y hacer pruebas puntuales pero no para estar siempre ejecutándose. Ya que son programas que requieren tener las X
(Desktop), comparten los recursos del Host y no están indicados para ser ejecutados con un servicio o demonio del sistema en un
servidor y su rendimiento es menor.
Características de KVM
Como he explicado en uno de los puntos anteriores, KVM es uno de los productos que en estos momentos ofrece virtualización
completa, permitiendo a priori ejecutar, como huesped, cualquier sistema operativo para plataformas x86 sin tener que haberlo
modificado previamente. Para ello se basa en las nuevas instrucciones Intel-VT y AMD-V, por lo que será necesario disponer de un
equipo con un procesador que las soporte para poder utilizarlo.

Sin embargo, esto es algo que también permite XEN, entonces, ¿qué ventaje tiene KVM?. Pues la principal ventaja es que viene
incluido como un módulo del kernel desde la versión 2.6.20 de Linux, por lo que no es necesario instalar ningún software específico.
Si se dispone de una máquina con el procesador adecuado y se instala un linux basado en este kernel, se dispondrán
automáticamente de los servicios de virtualización. Es de esperar por tanto, que esta tecnología evolucione bastante rápido y que
aparezcan herramientas que permitan sacarle más provecho.

El funcionamiento de KVM se basa en que el módulo introduce un nuevo modo de ejecución aparte de los habituales kernel y user
mode, con el nombre “guest mode”. Este modo se utiliza para ejecutar todo el código de los huesped que no sea de entrada/salida
(I/O), mientras que el modo “user mode” se utiliza para la I/O de los huesped.

Como nota final, KVM utiliza también QEMU para realizar la virtualización, pero no como emulación, sino únicamente como
herramienta para realizar la carga de las máquinas virtuales.
Instalación
Pasos preliminares

Primero para comprobar que nuestra máquina soporta virtualización ejecutamos el siguiente comando:

kvm-ok
INFO: Your CPU supports KVM extensions
INFO: /dev/kvm exists
KVM acceleration can be used

Si no soporta virtualización saldría:

INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used

También lo podemos comprobar ejecutando:

egrep '(vmx|svm)' --color=always /proc/cpuinfo

Hay que usar un Host 64 bits siempre que sea posible, ya que en uno de 32 bits estaremos limitados a poner un máximo de 2Gb de

30/05/2019

2/8

RAM por máquina virtual (limite en 64 bits?) y un host 64 bits puede albergar guests 64 y 32 bits, mientras que un un host 32 bits,
solo puede albergar máquinas virtuales de 32 bits.

Para comprobar que tenemos un procesador 64 bits, ejecutamos:

grep ' lm ' /proc/cpuinfo

Si no sale nada es que no tenemos un host 64 bits.

También hemos de comprobar que tenemos una distribución de 64 bits. Para ello ejecutamos:

uname -m

y nos ha de salir ‘x86_64?.
Si ves que te sale 386, i486, i586 o i686, es que estas ejecutando una distro con un kernel 32 bits.
Instalación

Se utiliza Ubuntu Server 10.04

Para instalar KVM en Ubuntu lo podemos hacer seleccionándolo durante la instalación (Virt Host o algo así) o si ya tenemos instalado
un servidor instalamos este meta-paquete:

sudo aptitude install ubuntu-virt-server

Que instala entre otros los paquetes ‘kvm libvirt-bin ubuntu-vm-builder bridge-utils’.
- kvm – es la solución de virtualización que se compone de una serie de módulos para el núcleo linux.Usa QEMU
- libvirt-bin – son unas herramientas para administrar kvm y libvirt.
- bridge-utils – sirve usar la red local con la red virtual

Podemos comprobar que todo ha ido bien ejecutando:

virsh -c qemu:///system list

Y nos debe salir:

Id Name State
----------------------------------

NOTA:
Nos aseguramos que el usuario que va a crear y gestionar las VM’s sea incluido en el grupo libvirtd.
En Lucid por defecto lo hace si no, lo haríamos a mano:

adduser $USER libvirtd

Configurar la red

Hay varias maneras de permitir acceder al interfaz de red físico del host desde las diferentes VM’s.
La forma predefinida es en modo ‘usermode’, el cual usa el protocolo SLIRP para acceder por NAT al la red (de esta forma las VM’s
no pueden tener el mismo rango de red que el host).
La mejor forma es hacer un bridge. De esta forma la red de las diferentes VM’s pueden estar en el mismo rango de red que el Host.
Para ello instalamos las bridge-utils:

aptitude install bridge-utils

Y configuramos la red:

#The loopback network interface
auto lo
iface lo inet loopback

30/05/2019

3/8

auto br0
iface br0 inet static
address 192.168.1.3 # pon los datos que tengas tu
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

Finalmente reiniciamos la red con un:

/etc/init.d/networking restart

Y ya deberíamos ver un interfaz de red br0
Instalar y manejar VM’s

Para crear y
  • Links de descarga
http://lwp-l.com/pdf16953

Comentarios de: Creación de maquinas virtuales utilizando kvm-qemu (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