Virtualización

Anuncio
Virtualización
…15º Aniversario!!!
Virtualización
Donosti, Jueves 1 de octubre 2009
IÑIGO LOSADA
Director de Comunicaciones y Sistemas
[email protected]
Virtualización
…15º Aniversario!!!
Introducción
• La virtualización es una tecnología que
fue desarrollada por IBM en los años 60.
El primer ordenador diseñado
específicamente para virtualización fue
el mainframe IBM S/360 Modelo 67
• El S.O. VM (Virtual Machine) de IBM
(1972) es una familia de sistemas
operativos usados en el System/370,
System/390, zSeries y System z9 en
mainframes
Virtualización
…15º Aniversario!!!
Introducción
• Los sistemas operativos incluidos eran:
• La familia OS (OS/360, OS/VS1, OS/VS2,
MVS, OS/390, y el actual z/OS)
• La familia DOS (DOS/360, DOS/VSE, y el
actual z/VSE)
• La virtualización es un término que se
refiere a la abstracción de los recursos
de un ordenador llamado Hypervisor o
VMM (Virtual Machine Monitor)
Virtualización
…15º Aniversario!!!
Introducción
• El VMM crea una capa de la abstracción
entre el hardware de la máquina física (host)
y el sistema operativo de la máquina virtual
(virtual machine, guest)
• El VMM maneja los recursos de las
máquinas físicas de manera que el usuario
pueda crear varias máquinas virtuales
presentando a cada una de ellas una interfaz
del hardware que sea compatible con el
sistema operativo elegido
Virtualización
…15º Aniversario!!!
Introducción
• Cada VM (máquina virtual) trabaja de
manera separada en un espacio de
usuario con su propio esquema de
direccionamiento, dispositivos virtuales,
etc…
• La máquina virtual generalmente es un
sistema operativo completo que corre
como si estuviera instalado en una
plataforma de hardware autónoma
Virtualización
…15º Aniversario!!!
Formas de virtualizar
• Emulación del hardware
• Virtualización del hardware (nativa o
total)
• Paravirtualización
• Virtualización a nivel de Sistema
Operativo
Virtualización
…15º Aniversario!!!
Emulación de hardware
• La CPU y otros componentes de
hardware como chips de E/S, tarjetas
de video, red, etc son emulados
• Productos:
• Bochs
• QEMU
• MS Virtual PC para MAC (PowerPC)
Virtualización
…15º Aniversario!!!
Emulación de hardware
• Ventajas:
• El S.O. invitado no necesita ser
modificado (se puede emular una CPU
x86 en una máquina PowerPC o al
revés)
• Inconvenientes:
• Pérdida de prestaciones importante al
emular las instrucciones de hardware de
la CPU emulada a la CPU nativa
Virtualización
…15º Aniversario!!!
Virtualización de hardware (total o
nativa)
• La CPU no se emula. Se emula el resto del
hardware (chips de E/S, tarjetas, etc...)
• Productos:
• VMware Worstation y Server
• Parallels Desktop
• VirtualBox
• Xen 3 con soporte de CPU Intel-VT o AMD-V
• KVM con soporte de CPU Intel-VT o AMD-V
Virtualización
…15º Aniversario!!!
Virtualización de hardware (total o
nativa)
• Ventajas:
• El S.O. invitado (guest) no necesita modificarse
• Mejores prestaciones que con la emulación del hardware
• Inconvenientes:
• La arquitectura de la CPU debe ser igual en el S.O. central
y el invitado
• Mucha sobrecarga (overhead) importante: Intel VT y AMD-V
para intentar reducirla
• El S.O. invitado (guest) no necesita modificarse
• Mejores prestaciones que con la emulación del hardware
Virtualización
…15º Aniversario!!!
Paravirtualización
• Es una técnica de virtualización que consiste en
crear un interface de software a las máquinas
virtuales
Virtualización
…15º Aniversario!!!
Paravirtualización
• Permite que las VM's tengan unas
prestaciones cercanas al hardware no
virtualizado
• Si el S.O. invitado puede comunicarse
con el “hypervisor” para indicarle lo que
quiere hacer, coopera y mejora las
prestaciones en cada máquina virtual
Virtualización
…15º Aniversario!!!
Paravirtualización
• Productos:
• Xen 3
• En 2005 VMware propone la especificación VMI o
Virtual Machine Interface (http://
www.vmware.com/pdf/vmi_specs.pdf) como una
especificación abierta
• Es un interface de paravirtualización, un
mecanismo entre el S.O. invitado (guest) y el
hypervisor. De esta forma, una sencilla versión
binaria del S.O. puede correr en un hypervisor en
modo paravirtualizado
Virtualización
…15º Aniversario!!!
Paravirtualización
• Inconveniente:
• Los S.O. invitados (guest) deben ser
modificados para correr paravirtualizados
• La arquitectura de la CPU debe ser igual en
el S.O. central y el invitado
• Ventajas:
• Prestaciones, tiempo de arranque
• Permite compartir recursos en forma
colaborativa sin modificar el S.O. central
Virtualización
…15º Aniversario!!!
Paravirtualización: paravirt-ops
• Es un entorno de trabajo (Framework)
• En Linux está en el kernel desde la
versión 2.6.20
• Es una paravirtualización transparente
de plataforma-cruzada
• Interface abierto soportado por IBM,
Red Hat, VMware y Xensource
• Soportado por VMware Workstation 6
Virtualización
…15º Aniversario!!!
Paravirtualización: paravirt-ops
• Incorpora muchos de los conceptos de VMI
incluyendo el soporte de paravirtualización
transparente
• Un S.O. paravirtualizado Linux correrá en
cualquier hypervisor que lo soporte
• Incluye soporte del interface VMI de VMware
• Ubuntu 7.04 ha sido la primera distribución
Linux en soportar paravirt-ops
Virtualización
…15º Aniversario!!!
Hypervisor
• El corazón de la virtualización es un
programa de control o hypervisor que
funciona en la máquina física y que crea
el entorno virtual incluyendo el hardware,
las operaciones de E/S, control de
prioridades, almacenamiento virtual,
etc ...
• En los sistemas basados en Hypervisor
(como Xen) el S.O. (Linux por ejemplo)
no tiene total control del hardware
Virtualización
…15º Aniversario!!!
Hypervisor
• El software hypervisor es quien controla
algunas cosas como las siguientes:
• Planificación del tiempo de la CPU
• Localización de la memoria física y
protección y separación entre las máquinas
virtuales
• Control de interrupciones
• Paso de mensajes y comunicación entre las
máquinas virtuales
Virtualización
…15º Aniversario!!!
Hypervisor
• En el caso de Xen, una de las máquinas
virtuales se encarga del hardware
(tarjetas de red, video, drivers, etc...)
• Las otras máquinas virtuales se
comunican con esta máquina virtual
privilegiada llamada (domain 0) para
manipular los dispositivos virtuales. Un
Hypervisor es una especie de
microkernel
Virtualización
…15º Aniversario!!!
Hypervisor
• Los hypervisores se pueden clasificar de dos
tipos:
• Hypervisor tipo 1: También denominado nativo,
unhosted o sobre el metal desnudo (bare metal).
Es software que se ejecuta directamente sobre el
hardware, para ofrecer la funcionalidad descrita
• Hypervisor tipo 2: También denominado hosted.
Es software que se ejecuta sobre un sistema
operativo para ofrecer la funcionalidad descrita
Virtualización
…15º Aniversario!!!
Hypervisor
• El hypervisor classic type 1 fue el CP/CMS,
desarrollado en IBM en los 60, antecesor
del actual z/VM
• Actualmente lo usan productos como Xen
(Open Source), Citrix XenServer, Oracle
VM, VMware's ESX Server, IBM's POWER
Hypervisor (PR/SM), Microsoft's Hyper-V
Parallels Server, and Sun's Logical Domains
Hypervisor
Virtualización
…15º Aniversario!!!
Hypervisor
• El hypervisor classic type 2 es un software
que corre dentro de un S.O. Un S.O.
invitado (guest) corre en un tercer nivel por
encima del hardware
• Actualmente lo usan productos como
VMware Server (conocido como GSX),
VMware Workstation, VMware Fusion,
QEMU (Open Source), Virtual PC y
Microsoft Virtual Server, VirtualBox,
Parallels Workstation y Parallels Desktop
Virtualización
…15º Aniversario!!!
Virtualización a nivel de S.O.
• No hay emulación
• Hay un único kernel para el S.O. anfitrión (host) y
el S.O. invitado (guest)
• Productos:
• OpenVZ/Virtuozzo
• Jaulas de FreeBSD
• Solaris Containers
• Parallels Virtuozzo Containers
Virtualización
…15º Aniversario!!!
Virtualización a nivel de S.O.
• El kernel permite a múltiples instancias
(llamadas containers, VEs or VPSs)
aisladas en espacio de usuario (en lugar
de solo una) correr como un servidor real
• En sistemas Unix esta tecnología podría
verse como una extensión avanzada del
mecanismo chroot
Virtualización
…15º Aniversario!!!
Virtualización a nivel de S.O.
Virtualización
…15º Aniversario!!!
Virtualización a nivel de S.O.
Virtualización
…15º Aniversario!!!
Virtualización a nivel de S.O.
• Ventajas:
• Muy buenas prestaciones ya que no hay
emulación y los programas en la partición
virtual usan las llamadas al sistema
normales
• Arranque muy rápido de los S.O. invitados
• Alta densidad de S.O. invitados
Virtualización
…15º Aniversario!!!
Virtualización a nivel de S.O.
• Inconvenientes:
• El S.O. anfitrión e invitados deben ser iguales
• Menos flexible que otras soluciones
• No indicado para entornos de pruebas
• Si cae el S.O. caen todos los sistemas
virtualizados
Virtualización
…15º Aniversario!!!
Virtualización a nivel de S.O. vs
Hypervisor
Virtualización
…15º Aniversario!!!
Tecnologías de virtualización hard
en la CPU
•
•
•
•
AMD Pacifica x86 virtualization (AMD-V)
IBM Advanced POWER virtualization
Intel Vanderpool x86 virtualization (IVT)
Hitachi's Virtage hardware virtualization,
disponible es su línea de servidores
BladeSymphony
• Sun Microsystems UltraSPARC T1
hypervisor
Virtualización
…15º Aniversario!!!
El entorno ideal: máxima flexibilidad
Virtualización
…15º Aniversario!!!
El entorno ideal: máxima flexibilidad
Datacenter flexible:
•Transparencia en el uso de recursos.
•Uso eficiente de recursos hardware y software
Virtualización
…15º Aniversario!!!
El entorno ideal: máxima flexibilidad
Datacenter flexible:
•Transparencia en el uso de recursos.
•Uso eficiente de recursos hardware y software
POOL DE RECURSOS
Disco, CPU, memoria, red
Virtualización
…15º Aniversario!!!
Escenarios de virtualización
Consolidación de
Servidores
Pruebas y desarrollo
Continuidad del negocio
Delegaciones Remotas
Virtualización
…15º Aniversario!!!
Por qué utilizar la virtualización
• Para consolidar servidores y
almacenamiento
• Gestionar mejor los recursos informáticos
• Flexibilizar los recursos físicos
• Reducir costes
• Aumentar el aprovechamiento de los
recursos
• Facilitar migraciones y recuperación ante
desastres
• Implantar alta disponibilidad
Virtualización
…15º Aniversario!!!
Por qué utilizar la virtualización
• Simplificar la infraestructura
• Desplegar aplicaciones más rápidamente
• Independizar el S.O. (con aplicaciones y
datos) del hardware.El mundo del PC es
demasiado dinámico (incluso caótico)
• Facilitar la gestión de los administradores de
sistemas
• Plan de contingencia más sencillo
• Nos “obliga” a crear una estructura
redundante desde el inicio del proyecto
Virtualización
…15º Aniversario!!!
Por qué utilizar la virtualización
• Procedimiento de marcha atrás ante cambios
de soft, parches, actualizaciones
• Antes de hacer cualquier cambio en los el
sistema, podemos hacer fotos o snapshots
para poder volver atrás
• El punto anterior nos ayuda en la seguridad
de nuestros servidores. Lo normal es que
para evitar problemas no hagamos
actualizaciones de seguridad en los
servidores
Virtualización
…15º Aniversario!!!
Por qué utilizar la virtualización
•
•
•
•
•
•
•
Reducir espacio físico ocupado
Reducir el calor generado
Reducir el consumo de electricidad
Reducir el consumo de aire acondicionado
Disminuir el número de servidores
Crear entornos independientes de desarrollo
Implementar nuevas aplicaciones sin parar
producción
Virtualización
…15º Aniversario!!!
Por qué utilizar la virtualización
• Migración P2V: de físico a virtual.
Permite crear una copia exacta de un
ordenador sin alterar datos
• Conociendo el formato del disco duro
virtual podemos actuar en los ficheros
del mismo desde el S.O anfitrión. El
S.O. anfitrión puede “detectar” acciones
sospechosas o peligrosas en la VM
Virtualización
…15º Aniversario!!!
Consolidar servidores
• Esto permite que servicios que normalmente
se tengan que ejecutar en ordenadores
distintos, se puedan ejecutar en la misma
máquina de manera completamente aislada
y compartiendo los recursos de un único
ordenador.
• La consolidación de servidores a menudo
contribuye a reducir el coste total de las
instalaciones necesarias para mantener los
servicios, dado que permiten ahorrar en
hardware
Virtualización
…15º Aniversario!!!
Recomendaciones para el host
• Hosts x64 versus x86
• Los hosts x64 tienen mejor gestión de
memoria
• Los hosts x64 son más rápidos para ciertas
operaciones
• Solo VMs de 32-bits soportadas en algún
software
• Intel VT/ AMD V
• Mejora el rendimiento de la instalación
• Mejora el rendimiento de las VM
Virtualización
…15º Aniversario!!!
Recomendaciones para el host
• CPUs multi-core
• Los Cores se usan para balancear las
diferentes threads de las diferentes
VMs
• Mejor rendimiento que el hyperthreading
• Memoria
• Reservar 512 MB para el
funcionamiento del S.O
Virtualización
…15º Aniversario!!!
Recomendaciones para el host
• Almacenamiento
• Separar el S.O. en un partición diferente
• Utilizar los discos más rápidos que sea
posible
• Utilizar RAID 0 para el almacenamiento de
los VHD. Para tolerancia a fallos usar RAID
0+1 o RAID 5
• El mejor rendimiento de E/S para discos lo
dan los discos SCSI de tamaño fijo.
Virtualización
…15º Aniversario!!!
Recomendaciones para el host
• Red
• Usar múltiples NIC Gigabit
• Dedicar una NIC al Host
• Dedicar NICs a VMs
• Planificar las redes virtuales,
estandarizando sus nombres en todos
los servidores de Virtualización
• Dedicar una NIC al host
Virtualización
…15º Aniversario!!!
Planificación de la CPU
• Procesador:
• Requerimientos de CPU = nº de CPUs x
velocidad de CPU x Utilización de CPU
• 2 procesadores x 2000 MHz x 10% uso=
~400 Mhz
• Tener en cuenta los picos
Virtualización
…15º Aniversario!!!
Planificación de la CPU
• Cálculo de la capacidad de CPU del
destino:
• Capacidad total de CPU = nº de
procesadores x velocidad de CPU
• 2 CPUs x 3600 MHz = 7200 MHz
• Reservar un 25% para el host
• 0,25 x 7200 = 1800 MHz
• 7200 -1800 = ~5400 MHz disponibles para las
máquinas virtuales
Virtualización
…15º Aniversario!!!
Planificación de la red
• Requerimientos de ancho de banda:
• Ancho de Banda = número de VMs x
velocidad de la NIC x utilización de la NIC
• 12 VMs x 100 Mb/s x 40% = 480 Mb/s
• 4 VMs x 1000 Mb/s x 25% = 1000 Mb/s
• Necesidad Total = 1480 Mb/s
• Tener en cuenta los picos
Virtualización
…15º Aniversario!!!
Planificación de la red
• Cálculo de la capacidad de las NIC del
host:
• Suponemos que el host tiene una NIC
dedicada
• Capacidad Total del Host = nº de NICs x
velocidad de la NIC
• 2 NICs x 1000 Mb/s = 2000 Mb/s
• Suponiendo un 75% de eficiencia de una
Ethernet GB
• 75 x 2000 = 1500 Mb/s disponibles para
virtualización
Virtualización
…15º Aniversario!!!
Planificación de la memoria
• Requerimientos de memoria
• Memoria necesaria = nº de VMs x (VM RAM +
32 MB)
• 12 VMs x (1024 MB + 32 MB) = 12672 MB
• 4 VMs x (2048 MB + 32 MB) = 8320 MB
• Total necesario = 20992 MB or 21 GB
(redondeado al alza)
• Considerar el uso actual de memoria
del propio host y planificar según
estas cifras
Virtualización
…15º Aniversario!!!
Planificación del almacenamiento
• Requerimientos
• Espacio de disco en uso
• Tamaño total de disco
• Cantidad de memoria de las VMs
• Cambios en el fichero de paginación
• La cantidad de memoria determina el espacio que
ocupan los ficheros de estado salvado
• Determinar si se utilizaran discos UNDO
• Requiere espacio adicional. Como mínimo el tamaño
del fichero de paginación
Virtualización
…15º Aniversario!!!
Planificación del almacenamiento
• Sumar:
• El uso de disco total de todas las VMs
• La memoria asignada para calcular el tamaño
total de los ficheros de Save State
• El espacio necesario para los discos UNDO
• Un 30% adicional para rendimiento y
operaciones de desfragmentación
Virtualización
…15º Aniversario!!!
Inconvenientes de la virtualización
• Un único punto de fallo para todas las máquinas
virtuales que corren sobre un único servidor
físico
• Nos fuerza a diseñar un entorno más redundante
(¿inconveniente o ventaja?)
• Un fallo de hardware afecta a todas las
máquinas virtuales
• Si nos roban el servidor anfitrión, nos roban
TODOS los servidores virtuales
Virtualización
…15º Aniversario!!!
Inconvenientes de la virtualización
• Soluciones:
• Utilización de servidores físicos con un
nivel importante de redundancia (disco,
memoria, hub, hba (host bus adapter),
fuente de alimentación)
• Replicación de los servidores físicos en
una misma localización o en
localizaciones distantes físicamente
Virtualización
…15º Aniversario!!!
Contingencia en entornos virtuales
• Una máquina virtual en el mundo real
está contenida en un único fichero de
datos y en otro de configuración
• Con sólo tener una copia de respaldo del
fichero podemos tener una segunda
máquina de backup
Virtualización
…15º Aniversario!!!
Contingencia en entornos virtuales
• Mediante la utilización de almacenamiento
compartido (SAN) podemos migrar una
máquina virtual de un servidor físico a otro
sin pérdida de visibilidad de la máquina por
los usuarios
• Podemos implementar técnicas de clustering
tanto a nivel de servidores físicos como a
nivel de servidores virtuales si las
aplicaciones así lo requieren
Virtualización
…15º Aniversario!!!
Lo más nuevo y lo próximo: VDI
• VDI (Virtual Desktop Infraestructure) o
virtualización del escritorio. Se invoca una
ejecución remota en el servidor de una
instancia Windows (o Linux) que envía la
pantalla a través de la red
• Los protocolos habituales para esto ICA y RDP
con una frecuencia de 100 ms. eran suficientes
para aplicaciones gráficas Windows
Virtualización
…15º Aniversario!!!
Lo más nuevo y lo próximo: VDI
• ICA y RDP no son tan eficientes para
aplicaciones gráficas intensivas (el
famoso Aero), 3D y para sincronizar
audio y vídeo
• Hay nuevas técnicas más sofisticadas
como: “screen scrape”, redirección
multimedia y aceleración por hardware...
Virtualización
…15º Aniversario!!!
Lo más nuevo y lo próximo: VDI
• Citrix usa su tecnología de display llamada
“SpeedScreen”
• Wyse usa su tecnología TCX
• Qumranet (creadores de KVM) usan su
protocolo SPICE
• Hay un standard abierto propuesto de VESA
llamado “Net2Display”. Sería un protocolo de
display remoto como ICA, RDP, VNC, X…
Virtualización
…15º Aniversario!!!
Lo más nuevo y lo próximo: libvirt y
virsh
• Es una librería de C para gestionar las máquinas
virtuales en Linux (Qemu, KVM, Xen, VirtualBox,
OpenVZ)
• Proporciona un interface en línea de comandos,
configuración basada en xml
• Libvirt dispone de enlaces de programa para C/C
++ y Python, de manera que puede incorporarse
fácilmente al conjunto de herramientas de gestión
existentes
Virtualización
…15º Aniversario!!!
Lo más nuevo y lo próximo: virtio
• Virtio: standard Linux para drivers de disco y
red http://www.linux-kvm.org/page/
WindowsGuestDrivers
• Es diferente aunque parecido en arquitectura
a los drivers paravirtualizados de Xen (virtio
es full virtualization)
• RedHat los anunció bajo GPLv2
Virtualización
…15º Aniversario!!!
Lo más nuevo y lo próximo: OVF
• Open Virtualization Format: es un
entorno de trabajo abierto independiente
de la plataforma de software de
virtualización
• Originalmente propuesto por VMware y
XenSource con contribuciones de Dell,
HP, IBM y Microsoft. Aceptado como
standard DMTF del 23/03/2009
Virtualización
…15º Aniversario!!!
Lo más nuevo y lo próximo: OVF
• Habilita la portabilidad y el despliegue
simplificado de los Appliances virtuales
• Seguro, abierto, portable y eficiente
• La unidad de empaquetado y distribución
(ó OVF package) puede contener uno o
más sistema virtuales, cada uno de los
cuales puede desplegarse a una VM
Virtualización
…15º Aniversario!!!
Lo más nuevo y lo próximo: Nested
virtualization
• Habitual en mainframes y con varios niveles de
jerarquía
• La CPU virtualizada incluye las extensiones de
virtualización
• Significa que el guest puede correr un Hipervisor
• Útil para depurar y probar Hipervisores y para
Hypervisores “embebidos”
Virtualización
…15º Aniversario!!!
Enlaces de interés
• http://www.vmware.com/interfaces/
paravirtualization.html
• http://en.wikipedia.org/wiki/Paravirtualization
• http://www.cl.cam.ac.uk/research/srg/netos/xen/
• http://www.linuxjournal.com/article/8540
• http://openvz.org
• http://en.wikipedia.org/wiki/Hypervisor
• http://www.linuxtag.org/2007/fileadmin/linuxtag/
downloads/besucher/slides/LinuxTag2007slides_OpenVZ_Fischer.pdf
Virtualización
…15º Aniversario!!!
Enlaces de interés
•
•
•
•
•
•
•
•
http://en.wikipedia.org/wiki/X86_virtualization
http://www.linux-kvm.org
http://www.xen.org
http://www.vmware.com
http://www.parallels.com
http://www.intel.com/technology/virtualization/
http://www.amd.com/virtualization
http://en.wikipedia.org/wiki/Power_Architecture
Virtualización
…15º Aniversario!!!
IÑIGO LOSADA
Director de Comunicaciones y Sistemas
[email protected]
Ibe/X Servicios Informáticos, S.L.
http://www.ibex.es
(….15º Aniversario!!!)
Descargar