Virtualizaci´on de Servidores
KVM: Kernel-based Virtual Machine
Proyecto de Innovaci´on
.
Implantaci´on y puesta a punto de la infraestructura
de un cloud computing privado para el despliegue de
servicios en la nube
IES Gonzalo Nazareno
Dos Hermanas (Sevilla)
IES Los Albares
Cieza (Murcia)
IES La Campi˜na
Arahal (Sevilla)
IES Ingeniero de la Cierva
Murcia
1 de 141
¿Qu´e vamos a ver? (1)
Conceptos B´asicos
Usando KVM
Instalaci´on
Configuraci´on Inicial
Gesti´on de M´aquinas Virtuales
Almacenamiento: pools y vol´umenes
Formatos de im´agenes
Virtual Networking
KSM
Herramientas
2 de 141
Virtualizaci´on de Servidores: KVM
¿Por d´onde vamos?
Conceptos B´asicos
3 de 141
Contextualizaci´on (1)
Virtualizaci´on de Servidores
• La virtualizaci´on de servidores se ha convertido en muy poco
tiempo en una tecnolog´ıa confiable y una soluci´on muy extendida
en servidores x86.
• KVM, Kernel-based Virtual Machine, es uno de los ´ultimos
hipervisores en hacer su entrada en el mercado, ya abarrotado, de
la virtualizaci´on.
• Como otros hipervidores tipo 1, se integra en un sistema operativo
existente, principalmente Linux, aunque tambi´en se ha portado a
FreeBSD y Illumos (antes OpenSolaris).
• Originariamente solo en arquitecturas x86, portado actualmente a
S/390, PowerPC, IA-64 y en progreso a ARM.
• KVM presenta ciertas peculiaridades ´unicas en su arquitectura.
3 de 141
KVM (1)
¿Qu´e es KVM?
KVM
KVM (Kernel-based Virtual Machine) es un hipervisor tipo 1 que
proporciona una soluci´on completa de virtualizaci´on para el SO Linux
en arquitecturas x86 que cuenten con las extensiones de virtualizaci´on
Intel VT/AMD-V.
Cuando se carga el m´odulo KVM, Linux se convierte en un hipervisor
“bare-metal” (tipo 1) capaz de ejecutar varias m´aquinas virtuales
(VM) aisladas. KVM hospeda las VMs como procesos, por lo que
cada VM puede beneficiarse de todas las caracter´ısticas del kernel de
Linux, incluyendo todas aquellas referentes al hardware, seguridad,
almacenamiento, etc.
4 de 141
Origen de KVM (1)
Un poco de historia
• KVM se inici´o como un proyecto Open Source por la empresa
israel´ı Qumranet.
◦ Curiosamente se inici´o como un proyecto centrado en una soluci´on
VDI para clientes Windows.
• Qumranet fue adquirida en 2008 por Red Hat.
• Red Hat ha centrado su estrategia en KVM para definirlo como la
mejor soluci´on de virtualizaci´on en el mundo Open Source.
◦ En RHEL 5 (Red Hat Enterprise Linux), la soluci´on de virtualizaci´on
escogida era Xen, en RHEL 6 se abandon´o por KVM.
• KVM se implementa como un m´odulo en el kernel de Linux. Se
integr´o en la rama principal del kernel de Linux en la versi´on
2.6.20, en el a˜no 2007. Actualmente es el hipervisor de
virtualizaci´on oficial del kernel de Linux.
5 de 141
Origen de KVM (2)
Un poco de historia
• IBM tambi´en es una de las empresas que apuesta fuerte por KVM.
◦ Ha contribuido en ´areas como la gesti´on de memoria, mejoras en el
rendimiento y el subsistema de E/S virtual. IBM tiene a un gran
n´umero de desarrolladores trabajando sobre KVM y lo ofrece como
soluci´on en su portfolio de software para servidores.
• Otras distribuciones de Linux tambi´en comenzaron a invertir en
KVM e incluirlo en sus distribuciones como el caso de SUSE
´o Ubuntu.
6 de 141
Linux y KVM (1)
Soporte oficial
KVM se incluy´o oficialmente en la rama principal del kernel en la
versi´on 2.6.20 (lanzada en febrero de 2007). Implicaciones:
• KVM forma ahora parte integral del kernel de Linux, por lo que
aparece en todas las distribuciones ya que todas llevan un kernel
m´as actual que el 2.6.20. Que forme parte y tenga capacidades, no
implica que haya soporte comercial ni que se incluyan las
herramientas necesarias.
• KVM es capaz de aprovecharse de la comunidad en torno a Linux,
cualquier mejora sobre el kernel, es una mejora que beneficia a
KVM. Cualquier desarrollador de Linux puede tambi´en beneficiarse
del uso de KVM.
7 de 141
Linux y KVM (2)
Soporte oficial
• El n´umero de versi´on de KVM depende de la versi´on del kernel de
Linux. El kernel 2.6.35 ser´a la revisi´on n´umero 15 de KVM.
Vendedores comerciales s´ı pueden incluir sus propios n´umeros de
versi´on en KVM.
• KVM hereda todos los drivers y el amplio soporte hardware de
Linux, permitiendo poder ejecutarse en cualquier plataforma x86
donde Linux lo haga. Actualmente se est´an realizando ports de
KVM a otras arquitecturas.
8 de 141
KVM (1)
Arquitectura
• KVM es un m´odulo cargable del kernel que permite al SO Linux
actuar un hipervisor “bare metal” tipo 1.
• Un hipervisor puede verse como un SO especializado en la
ejecuci´on de m´aquinas virtuales.
◦ Pero un hipervisor tipo 1 tambi´en tiene que tratar con otras tareas
m´as est´andares como gesti´on de memoria, planificaci´on de procesos,
drivers de dispositivos, E/S.
• El enfoque de KVM es:
◦ Implementar dentro del m´odulo todo lo referente a la gesti´on de VM.
◦ No reinventar la rueda y permitir que todo lo dem´as lo realice un SO
probado y eficaz como Linux.
9 de 141
KVM (1)
Venntajas del enfoque m´odulo+SO
• Los desarrolladores de KVM centran su atenci´on optimizar la
ejecuci´on de procesos que representan m´aquinas virtuales.
• No se replican esfuerzos entre los desarrolladores de KVM y los del
kernel.
• Todos los avances dentro de kernel de Linux como SO, se aplican
simult´aneamente en KVM:
◦ Planificaci´on, control de recursos y gesti´on de memoria.
• Bajo KVM en Linux, las VM son simplemente procesos, cualquier mejora
de Linux en la gesti´on de procesos se aplica directamente en la gesti´on
de VM.
◦ Almacenamiento.
dispositivo de Linux.
10 de 141
• Las im´agenes de disco de las VM se tratan como cualquier otro fichero o
KVM (2)
Venntajas del enfoque m´odulo+SO
• Se puede utilizar para las im´agenes cualquier tipo de almacenamiento
soportado actualmente por Linux: discos locales, una gran variedad de
sistemas de ficheros, sistemas NAS, iSCSI, SAN, etc.
• Cualquier mejora en la pila de almacenamiento ser´a aprovechada por
KVM.
◦ Soporte de hardware.
• KVM hereda todo el ecosistema de dispositivos Linux. KVM
podr´a acceder a cualquier dispositivo soportado por Linux.
• QEMU se utiliza para proporcionar los dispostivos de E/S que las
m´aquinas virtuales “ven”.
• Las mejoras de Linux en cuanto a n´umero de CPUs/cores y grandes
cantidades de RAM, permiten a KVM escalar tal como Linux escala.
◦ Seguridad.
11 de 141
KVM (3)
Venntajas del enfoque m´odulo+SO
• KVM tambi´en puede aprovecharse del modelo de seguridad de Linux
proporcionado tanto por SELinux como por AppArmor. Ambos
proporcionan, b´asicamente, “sandboxes” donde encerrar los procesos. Si
un proceso se ve comprometido, esto no afectar´a al resto del sistema.
Este concepto se aplica de la misma forma a las VM, ya que una VM es
tambi´en un proceso.
• La seguridad proporcionada por SELinux y AppArmor aisla a las VM
entre s´ı y a las VM del hipervisor.
12 de 141
KVM (1)
Arquitectura
13 de 141
KVM (1)
Extensiones nativas para x86
• KVM necesita de forma obligatoria las extensiones de virtualizaci´on
incluidas por Intel y AMD:
◦ Intel Virtualization Technology (Intel VT-x), codename Vanderpool
◦ AMD Virtualization (AMD-V), codename Pacifica (2006).
(2005).
• Permiten a los hipervisores un rendimiento mayor en modo
virtualizaci´on completa.
• De esta forma la virtualizaci´on completa es mucho m´as f´acil de
implementar y ofrece un mayor rendimiento.
• B´asicamente estas extensiones a˜naden un nuevo modo de ejecuci´on
que permiten la ejecuci´on de SSOO invitados sin modificar de
forma eficiente, pero sin dar un control total a ciertos recursos
como la memoria y el procesador.
14 de 141
KVM (2)
Extensiones nativas para x86
• Aunque el procesador la incluya, hay que activarla en BIOS.
15 de 141
KVM y Windows (1)
Aunque KVM est´e muy fuertemente ligado a Linux, el soporte de
Windows como invitado es algo fundamental.
• El origen del soporte de Windows est´a en las misma ra´ıces del
proyecto KVM.
• Qumranet inici´o el desarrollo de KVM pensando en la
virtualizaci´on de escritorios Windows.
• M´as tarde, en 2009, Red Hat firm´o con Microsoft un acuerdo de
interoperabilidad, por el que acordaron probar y soportar sus SSOO
sobre los hipervisores de la otra compa˜n´ıa.
• De esta forma se asegura el rendimiento de los SSOO invitados
as´ı como buenas “maneras” entre ambas empresas.
• SUSE y Microsoft firmaron un acuerdo parecido.
Como invitados funcionan las siguientes versiones de Windows:
16 de 141
KVM y Windows (2)
• Windows Server (2008/2008R2/2003/2000), Windows 7, Windows
Vista, Windows XP, Windows NT.
17 de 141
Gesti´on de la virtualizaci´on (1)
Xen: una historia tumultuosa
Un aspecto clave para el ´exito de un despliegue en virtualizaci´on es la
gesti´on.
• Uno de los aspectos que ha impedido el ´exito de Xen ha sido el no
presentar una interfaz de gesti´on ´unica, lo que llev´o a varias
versiones de Xen en el mercado incompatibles entre s´ı.
Xen era el hipervisor por defecto en RHEL 5, Red Hat lo
reemplaz´o completamente por KVM en RHEL 6.
18 de 141
Gesti´on de la virtualizaci´on (1)
Los est´andares son buenos
Linux y KVM se han estandarizado a trav´es de libvirt y libguestfs,
usadas como APIs base para la gesti´on de las m´aquinas virtuales y de
las im´agenes.
• Adem´as, libvirt es capaz de gestionar no solo a KVM, sino a otros
hipervisores como Xen, VMware ESX, VMware
Workstation/Player, OpenVZ, MS Hyper-V, VirtualBox, etc.
• Muchas de las herramientas utilizadas de alto nivel como virsh
´o virt-manager han sido construidas sobre la librer´ıa base libvirt.
19 de 141
Gesti´on de la virtualizaci´on (1)
KVM y libvirt: arquitectura
Figura: c(cid:13)IBM DeveloperWorks https://www.ibm.com/developerworks/
20 de 141
Caracter´ısticas principales (1)
Lo que KVM ofrece
Las caracter´ısticas principales de KVM son:
• Seguridad
◦ Bajo KVM, cada m´aquina virtual se implementa como un proceso.
◦ KVM se aprovecha del model
Comentarios de: Virtualización de Servidores KVM: Kernel-based Virtual Machine (0)
No hay comentarios