ElastixWorld 2013 - Taller
Expositor: Alfio Muñoz
Alteknativa
Descripción
Un taller práctico de cómo utilizar técnicas avanzadas de virtualización con software libre. En el taller se mostrará como tener un Elastix operacional en 5 segundos luego de encendido, como crear diferentes plantillas para diferentes escenarios y tener alta disponibilidad para maquinas virtuales.
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
Virtualización Avanzada con Elastix
2. ¿Qué es la virtualización?
• Es la combinación de hardware y software que permite a una única
máquina comportarse como si fueran varias máquinas.
5. HYPERVISOR
• El hipervisor permite la virtualización en el nivel
de hardware en dispositivos sin sistema
operativo, como: CPU, memoria e interfaces de
red.
• El software del hipervisor se ubica directamente
entre el hardware físico y el sistema operativo.
6. HYPERVISOR(2)
• Los hipervisores pueden adoptar una
arquitectura de micronúcleo.
• También pueden tener una arquitectura
monolítica
7. HYPERVISOR(3)
• Un hipervisor de micronúcleo solo incluye las
funciones básicas e inmutables como
memoria física y la programación de los
procesadores.
• Los controladores (Drivers) de los dispositivos
y los otros componentes mutables se
encuentran fuera del hipervisor.
8. HYPERVISOR(4)
• Los hipervisores monolíticos implementan
todas las funciones mencionadas, adicional los
controladores de los dispositivos.
• Es capaz de convertir los dispositivos físicos en
recursos virtuales disponibles para el uso de
las máquinas virtuales.
11. Emulación
• Una capa de virtualización encima del sistema
operativo host.
• Este sistema operativo host es responsable de
administrar el hardware.
• Los sistemas operativos invitados se instalan
encima del nivel de virtualización.
• En Linux existen varios emuladores pero los
mas conocidos son: qemu, Bochs, VirtualBox y
Virtuozzo
13. Virtualización Completa.
• En la virtualización completa, las instrucciones
que no son críticas se ejecutan directamente
en el hardware
• Mientras que las instrucciones críticas se
descubren y reemplazan con intercepciones
en el VMM para emularlas en software.
14. Virtualización Completa(2)
• 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.
• Existen herramientas para poder hacer una
virtualización completa XEN, KVM, Local
Domains y VMWARE.
15. Paravirtualización
• La paravirtualización tiene que modificar el
sistema operativo invitado.
• Una máquina virtual paravirtualizada
proporciona APIs especiales que requieren de
modificaciones considerables en las
aplicaciones de usuario.
• La degradación del rendimiento es un
problema fundamental de los sistemas
virtualizados.
16. KVM Y OPENVZ
• KVM solucion muy estable de virtualizacion
Opensource
• OpenVz es virtualizacion y no es virtualizacion,
veremos mas adelante que es.
18. KVM
• KVM, el sistema oficial de virtualización
del kernel de Linux.
• Es un módulo del kernel que convierte el SO Linux
en un hypervisor. Se ha portado a FreeBSD.
• Creado por Quramnet -comprado por RH en 2008
• Soporta x86 (32 y 64 bits), S/390, PowerPC, IA-64
y ARM en proceso
• Utiliza el API estándar del kernel
• Sistema de virtualización oficial de RHEL
20. KVM(1)
• KVM, basado en Qemu (emulación)
pero modificado para virtualización
• Necesidad de soporte en el procesador instruc
ciones Intel-VT, AMD-V
• Al cargarse el módulo KVM, se convierte en un
hypervisor “bare-metal”
• Soporte de drivers paravirtualizados para mejo
rar el rendimiento
22. KVM Sistemas Operativos
• Soporta como sistemas operativos invitados:
•
•
•
•
•
Linux
Windows
OpenBSD
FreeBSD
Solaris
24. OpenVZ
• OpenVZ es una tecnología de virtualización en
el nivel de sistema operativo para Linux.
• OpenVZ permite que un servidor físico ejecute
múltiples instancias de sistemas operativos
aislados, conocidos como Servidores Privados
Virtuales (SPV o VPS en inglés) o Entornos
Virtuales (EV).
25. OpenVZ
• OpenVZ es capaz de alojar cientos de Entornos
Virtuales en hardware decente (las principales
limitaciones son RAM y CPU).
• Ofrece menor flexibilidad en la elección del
sistema operativo, tanto los huéspedes como
los anfitriones deben ser Linux aunque las
distribuciones de GNU/Linux pueden ser
diferentes en diferentes Evs.
26. Openvz
• OpenVZ es capaz de crear máquinas virtuales
en menos de un minuto.
• Luego de creadas, pueden estar 100%
funcional en 5 Segs o menos (encendido y
apagado)
• No se puede instalar con CDs o con ISO los
guest, se utilizan plantillas ya creadas.
28. Power Example
• Las medidas fueron hechas en una máquina
con 768 MiB (¾ GiB) de RAM; cada EV estaba
ejecutando el conjunto usual de
procesos: init, syslogd, crond, sshd y Apache.
Los daemons de apache estaban sirviendo
páginas estáticas, que fueron transmitidas por
http_load, y se midió el primer tiempo de
respuesta.
30. Power Example
• Como se puede ver, según el número de EV crece,
el tiempo de respuesta se hace más alto a causa
de la disminución de la memoria RAM y el
excesivo swappeo.
• En este escenario es posible ejecutar hasta 120
EVs en ¾ GiB de RAM. Esto
se extrapola linealmente, de manera que es
posible ejecutar hasta aproximadamente 320 EVs
en un equipo con 2 GiB de RAM.
31. Elastix virtualization – OpenVZ or
VMWare or KVM?
• VMWare and KVM Los dos proveen una
virtualizacion completa lo cual es una capa
entre el Hardware y el VPS que esto emula el
hardware y provee a la maquina virtual acceso
a el.
• El sistema operativo invitado no sabe que esta
corriendo en un VPS
32. Elastix virtualization – OpenVZ or
VMWare or KVM?(1)
• Esta segregacion es buena pero agrega una
capa entre el VPS y el Hardware de capa
inferior.
• Esto en la mayoria de los casos puede agregar
problemas con el Timing lo que es algo critico
en Elastix.
33. Elastix virtualization – OpenVZ or
VMWare or KVM?(2)
• OpenVZ utiliza una virtualizacion tipo sistema
operativo en donde todo el hardware del
equipo corre en un kernel compartido para
todos los VPS.
• El rendimiento de OpenVZ en comparacion
con las demas soluciones comerciales va
desde un 20% a un 25%
34. OPENVZ Benchmark Description
• vConsolidate benchmark fue desarrollado por
Intel en cooperacion con otros vendedores.
• Corre separadamente cargas de trabajo con
Java (SPECjbb test), Mail, Web and Database
VMs running concurrently.
• Cada grupo de esas VMs es llamado CSU Consolidation Stack Unit.
35. Hardware utilizado
• Hardware:
• Server: 4xHexCore Intel Xeon (2.66 GHz), 64 GB RAM,
HP MSA1500 SAN Storage, 8 SATA (7200 RPM) Disks in
RAID0
• Client: 4xHexCore Intel Xeon (2.136 GHz), 32 GB RAM
• Network: 10 Gbit direct server
Platform:
• Virtualization Software:ESXi4.1upd1, XenServer5.6fp1,
HyperV (R2), OpenVZ (RH5) 2.6.18-028stab085.3
• Guest OS: Centos 5.5 x86_64
36. Software and Tunings
• Each VM/CT was configured with 1 vCPU, 1 GB
RAM
• Custom vConsolidate profile was used: 4 load
threads for Java workload, 4 load threads for
Db workload and 8 threads for Web workload
(standard settings).
• Firewall was turned off
• All other settings were left as defaults
39. Resultados OpenVZ
• Consolidation Stack Unit
• Basado en transactions/sec for Db,
requests/sec for Web and java operations/sec
for Java.
41. Proxmox Virtual Environment
• es un proyecto de código abierto, desarrollado
y mantenido por Proxmox Server Solutions.
• completa plataforma de virtualización basada
en sistemas de código abierto que permite la
virtualización tanto sobre OpenVZ como KVM.
42. Proxmox Virtual Environment
• Es una distribución bare-metal, basada en
Debian con solo los servicios básicos para de
esta forma obtener un mejor rendimiento.
• una interfaz gráfica muy sencilla.
• Permite la migración en vivo de maquinas
virtuales, clustering de servidores, backups
automáticos y conexión a un NAS/SAN con
NFS, iSCSI, etc…