Virtualización en Servidores Conceptos básicos
Cuestionamientos Cuando hablamos de virtualización? Por que virtualizar? Alta disponibilidad Tipos de virtualización
Cuándo hablamos de virtualización? En términos generales crear/establecer/simular un recurso que no existe en un entorno físico Dentro de un escenario virtualizado este recurso creado es indistinguible de un recurso real.
Cuándo hablamos de virtualización? En términos de computación no es un concepto nuevo: La memoria virtual pretende que desde el punto de vista de la aplicación la memoria es ilimitada. Un ambiente multi-tarea ambiente multi-tarea da la impresión de múltiples procesos ejecutándose simultáneamente
Cuándo hablamos de virtualización? En este caso nos compete virtualización de sistemas en el cual todo el computador es simulado: Sobre una infraestructura física se crea una o múltiples maquinas virtuales (guest). Los guest tienen hardware del mismo tipo (en diferentes cantidades) El hardware virtual es similar al hardware físico es una diferencia importante con respecto a la emulación. Mientras más similar el hardware virtual al físico mayor rendimiento del equipo físico!!!
Por que virtualizar? Históricamente: Administradores de servicios, vendedores de software, otros, recomiendan e incluso exigen el uso exclusivo de un servidor por cada aplicación. De lo anterior y sin caer en detalles algunos estudios estiman que el servidor promedio utiliza entre 5 y el 15% de los recursos disponibles.
Por que virtualizar? Como respuesta a las consideraciones anteriores: Una aplicación por cada servidor virtual (guest) Multiples guest por cada maquina física (hosts) Aplicación Aplicación Aplicación Aplicación Capa de Virtualización (hypervisor) Arquitectura Física
Por que virtualizar? Entre las bondades de virtualizar encontramos: Correr múltiples VM en un solo servidor físico. La suma de los recursos asignados a los guest puede ser mayor que los recursos del anfitrión (overcommitment) Facilidad en el despliegue de nuevos servidores. Facilidad para copiar o migrar: En frio (Los guest no están corriendo) En caliente (Los guest están encendidas)
Alta disponibilidad Como ya hemos conversado, un sistema de alta disponibilidad opera aun en presencia de una falla (modo degradación). Un ambiente virtual de alta disponibilidad requiere: Múltiples equipos físicos. Múltiples conexiones de red. Sistemas de almacenamiento donde alojar discos virtuales. Mecanismos de monitoreo con capacidad de tomar medidas correctivas en caso de fallas.
Tipos de virtualización Desde el punto de vista del OS invitado (guest) tiene completo control del hardware sobre el que se esta ejecutando. Virtualizar es básicamente abstraer al guest de los recursos físicos. Según como se realiza esta abstracción encontramos: Contenedores (OS virtualization) Paravirtualizacion (paravirtualization) Virtualización completa (full virtualization ó bare metal)
Tipos de virtualización Contenedores (OS virtualization) Ambientes de ejecución aislados entre si que comparten un mismo kernel. Cada contenedor se puede configurar para asignar los recursos que usara en la ejecución de sus procesos (estos recursos los comparte con los demás contenedores) Los recursos de hardware no son virtualizados (el proceso en ejecución accede directo al hardware) No permite el uso de OS diferentes entre el guest y el host. OpenVZ es un ejemplo de OS virtualization.
Tipos de virtualización Paravirtualización (paravirtualization) También el guest ejecuta su propio OS pero es necesario modificarlo. Tambien existe un hypervisor aunque un poco más ligero. A diferencia que full virtualization solo las instrucciones privilegiadas son enviadas al hypervisor. El resto van directas al hardware. Lo anterior crea un menor impacto en el rendimiento y mayor aprovechamiento de recursos. XEN es un ejemplo de virtualización paravirtualizada.
Tipos de virtualización Virtualización completa (full virtualization o bare metal) Una de las más utilizadas. El OS guest no tiene idea alguna de estar corriendo en una plataforma virtual (no es necesario cambios en el software) Existe un hypervisor entre el OS guest y el hardware del hosts El hypervisor se encarga de emular el hardware que necesita el guest. Si el guest requiere ejecutar una instrucción privilegiada el hypevisor se encarga de gestionarla adecuadamente.
Tipos de virtualización Virtualización completa (full virtualization o bare-metal) El guest puede ser para arquitecturas diferentes a la arquitectura del hosts (...este cambio de un tipo de instrucciones a otras genera un alto impacto en el rendimiento del equipo físico..) Cada VM tiene entonces su propio OS. Algunos ejemplos: QUEMU, XEN, Vmware ESX, Virtualbox...
Tipos de virtualización full virtualization o bare metal se apoya en soporte de virtualización a nivel de hardware (Intel VT-x o AMD-V) Algunos ejemplos: KVM - basado en Quemu XEN que puede ejecutar guest con OS no modificado siempre y cuando el host cuente con soporte a nivel de hardware
Capa de (hypervisor) Segun el nivel donde funcione el hypervisor se clasifica como Tipo1 (bare metal) y Tipo2 OS 1 OS 2 OS 3 OS 4 hypervisor Arquitectura Física OS (vm) OS (vm) OS (vm) OS (vm) hypervisor OS (host) Arquitectura Física Tipo1 (bare metal) (e.j. XenServer, Oracle VM Server, Vmware ESX y Hyper-V) Tipo2 (e.j.virtualbox, KVM, otros)
Entonces así.. Un factor de decisión importante entre usar una u otra tecnología esta en la facilidad de manejo de los recursos virtuales a través de un ambiente centralizado de visualización y administración. OpenStack OpenQRM OpenNebula Ganeti Proxmox, otros...
Referencias N. Ruiz, Conceptos básicos de virtualización. WALC 2012 D. Kusnetzky, Virtualization: A Manager's Guide. O'Reilly 2011