virtualizacion
DESCRIPTION
Slides about my experiences in virtualizationTRANSCRIPT
EXPERIENCIAS DE VIRTUALIZACIÓN EN CICA
Juan Carlos Rubio Pineda
Creative-commons
Virtualización
1)¿Qué es?
2)Soluciones de virtualización: Tipos
3)Alternativas elegidas en CICA
4)demo
1) ¿Qué es?• VIRTUALIZACIÓN:
− Término amplio que se refiere a la abstracción de los recursos de la computadora.
− Permite recrear computadoras NO FÍSICAS sobre una capa de software especial instalada en una computadora REAL.
− Es posible recrear un conjunto de hardware completo, o bien espacios de nombres (namespaces) dentro del mismo sistema operativo (jaula aislada).
− Según las necesidades, y arquitecturas REALES subyacentes, nos puede convenir unos tipos u otros.
2) Tipos• Los tipos más interesantes son:
− Emulación o simulación− Virtualización nativa y virtualización completa− Paravirtualización− Virtualización a nivel del sistema operativo− Virtualización de aplicaciones (Citrix)
Tipos• Emulación o simulación:
− la máquina virtual simula un hardware completo, admitiendo un sistema operativo “guest” sin modificar, para una CPU completamente diferente.
− Ejemplos:• Bochs, • Qemu sin aceleración: Ampliamente usado. Muy interesante, porque
las imágenes que creamos pueden ser usadas en VirtualBox o VMWare.
− Acelerador qvm86 (discontinuado)− Acelerador kqemu
• JPC: Emulador 100% Java. Inspirado en Bochs y Qemu. Inmaduro.− Desventajas: Lento. No apto para producción.
Tipos• Virtualización nativa y virtualización completa:
− Completa: la máquina virtual simula un hardware subyacente completo para permitir un sistema operativo “guest” sin modificar que se ejecuta de forma aislada.
− El S.O. De la VM que se instale debe ser del mismo tipo de CPU que la máquina física subyacente.
− La virtualización completa NATIVA sólo fue posible a través de los añadidos AMD-V e INTEL VT.
• Podemos comprobar si las tenemos con un: • cat /proc/cpuinfo | grep vmx
− Ejemplos:• VMware Workstation• VMware Server• Parallels Desktop• VirtualBox
Tipos• Paravirtualización:
− La máquina virtual no simula un hardware sino que ofrece una API especial que solo puede usarse mediante la modificación del sistema operativo “guest”.
− La plataforma de virtualización tiene una capa de software denominada virtual machine monitor (VMM), también conocido como hypervisor, que se ocupa de mostrar los distintos S.O. emplazados en la computadora real.
− La llamada del sistema al hypervisor tiene el nombre de “hypercall” en Xen y Parallels Workstation.
• Desventajas: en el caso de Xen Server 4, y con nuestra arquitectura, no es posible migrar máquinas en producción de nuestro servidor Xeon 2 a un Amd Opteron.
Tipos• Virtualización a nivel del sistema operativo:
− virtualizar un servidor físico a nivel del sistema operativo permitiendo múltiples servidores virtuales aislados y seguros correr en un solo servidor físico.
− El entorno del sistema operativo “guest” comparte el mismo sistema operativo que el del sistema “host” (el mismo kernel del sistema operativo es usado para implementar el entorno del “guest”).
− Las aplicaciones que corren en un entorno “guest” dado lo ven como un sistema autónomo.
− Ejemplos: • Linux-VServer, Virtuozzo, OpenVZ, UML (user mode linux), Solaris
Containers y FreeBSD Jails.
3) Alternativas elegidas en CICA
• Las alternativas que usamos en CICA, son:− Xen Server 4.0 y Xen 3.4.0 libre− VMWare ESXi 3− VirtualBox (uso particular en nuestros Pcs)− Openvz− Linux v-server − Colinux: demos y cursos. Con una distro que hemos
preparado, podemos ejecutar un linux completamente funcional y sin instalación desde un pendrive o HDD externo.
Xen
Xen
Xen
Xen• Ventajas:
− El rendimiento de las máquinas es bueno− La consola de administración es muy intuitiva, y permite crear
VM de forma muy rápida (si lo hacemos desde plantillas).
• Inconvenientes:− La consola no permite el acceso separado para gestión
compartida. Si accedemos a un servidor Xen, controlamos todas sus máquinas sin excepción.
− Nuestra instalación se basó en una CPU Xeon 2, con cuellos de botella en el acceso de memoria (corregido en los Nehalem). Quisimos pasarlo a un AMD (Con Hypertransport), y no se podían migrar las máquinas de una arquitectura a otra.
• Para nosotros, esto es muy inflexible.− La consola de administración sólo funciona en windows
Vmware ESXi: cliente
Vmware ESXi:conexión
VMWare ESXi:Estadísticas
VMWare ESXi: consola
VMWare ESXi: Resumen
VMWare ESXi: M. Virtuales.
VMWare ESXi: recursos
VMWare ESXi: • Vmware ESXi se instala en una máquina, quedando el
servidor, en principio, como una “caja negra”
• En la versión completa de Vmware Server, existe una “consola” que permite administrar la máquina. Es un Red Hat Enterprise.
• En la versión sin coste de Vmware ESXi, esa consola ha sido eliminada.− La “consola” resultante, es una pantalla amarilla y negra con
un menú de opciones.− No obstante, existe una “consola escondida” que puede
habilitarse para teclear comandos y elaborar scripts al modo tradicional.
Vmware ESXi: consola• La consola muestra esta imagen:
Vmware ESXi: consola• Una vez en la consola, pulsamos ALT+F1, y aparece:
Vmware ESXi: consola• Seguimos sin prompt. No se visualiza lo que se escribe,
pero si tecleamos:− Unsupported + <ENTER>− Aparecerá el Tech Support Mode:
Vmware ESXi: consola• Si escribimos la contraseña del servidor, tenemos:
Vmware ESXi: consola• Ahora editamos /etc/inetd.conf y habilitamos ssh:
Linux V-Server• Es una especie de chroot avanzado.
• Está basado en el concepto “Security Contexts”:− Permite crear Virtual Private Servers (VPS) independientes
que se ejecutan simultáneamente sobre un único servidor físico.
− Crea parcelas con el “user-space”.− La mayoría de las distribuciones Linux, no están atadas a un
kernel especial• Linux V-Server usa este hecho para permitir que varias distribuciones
se ejecuten simultáneamente en un único kernel, sin acceso directo al hardware, compartiendo los recursos de un modo muy eficiente.
• Kernel, utilidades y scripts en repositorio debian• Facilidad de manejo y tecnología madura.• Al igual que openvz, no requiere de una CPU con soporte a
virtualización AMD-V o INTEL VT.• Como no virtualiza TODO, el número de VM's por máquina física se
incrementa muchísimo.
Linux V-Server• Linux v-server: desde cero bajo un Debian 5 Lenny:
− aptitude install linux-image-vserver-686 util-vserver ssh− REINICIAR (el instalador habrá incluído en grub una entrada
para el nuevo kernel vserver, con el que DEBEMOS arrancar)− Lo comprobamos con uname-r, mostrando: 2.6.26-2-
vserver-686− Creamos una máquina, desde la red, y sin plantillas, así:
• vserver vserver1 build \• -m debootstrap --context 42 \• --hostname vserver1.mydomain.com \• --interface eth0:192.168.1.10/24 \ • -- -d lenny -m http://ftp.es.debian.org/debian
− La arrancamos con vserver vserver1 start− Entramos en la máquina con vserver vserver1 enter− Con 1GB de RAM, da para entre 20-30 VSERVERS.
OpenVz• El proceso de instalación es similar.
• Las máquinas deben tomar un identificador numérico (por ejemplo, 101), en lugar de un nombre (por ejemplo, vserver1).
• El comando “maestro” de este software es vzctl.
• Suponiendo que hubiéramos instalado plantillas, con este comando creamos una máquina:
• # vzctl create 101 --ostemplate fedora-core-4 -–config vps.basic
• Con 1GB de RAM da para entre 20-30 Vms
• Es más complejo de administrar y de retocar ciertos parámetros cuando el rendimiento decae.
ProxMox Virtual Environment• Es una plataforma Open Source para ejecutar Virtual
Appliances y máquinas virtuales.
• Puede ser instalado desde cero como una iso de un linux corriente.
• Funcionalidades:− Virtualización por contenedores mediante openvz o completa
con KVM.− Consola Web de gestión− Cluster VE (Virtual Environment)− Backup/Restore mediante interfaz Web− Permite “Appliances” (plantillas).− Incorpora una utilidad, dab (Debian Appliance Builder) para
construir plantillas.
• En CICA, está en estudio.
Proxmox• Funcionalidad de un “cluster” proxmox:
− Gestión web centralizada− Un login y password para acceder a TODOS los nodos y
TODAS las VM's.− Vista de consola de todas las VM's.− Posibilidad de migrar VM's entre nodos físicos.− Almacén de plantillas de VM's sincronizado
• Pero NO proporciona:− Alta disponibilidad.
Proxmox• Creación de una máquina:
Proxmox• Estado de una máquina virtual
Proxmox• Cluster con 2 nodos
Proxmox• Estado de las máquinas de un cluster con 3 nodos:
OpenQRM• Gestiona diferentes plataformas de virtualización
OpenQRM• En teoría, es capaz de gestionar la creación de VM's y
recursos de:− VMWares ESXi y Server− Xen− Linux V-server
• En la práctica, no hemos conseguido que realice su trabajo correctamente.
• Actualmente la tenemos descartada, en favor de ProxMox.
Comparativa• Comparativa de alternativas de Virtualización S.O.
Symbolic• Symbolic es una plataforma de gestión de datacenters.
− Incluye puppet: lenguage declarativo para expresar configuraciones de sistema, un servidor y un cliente para distribuirlo y una biblioteca para configuraciones.
• Manual• Pesado
− Incluye cobbler: permite disponer de un servidor para instalaciones rápidas a través de red, admitiendo:
• Instalaciones por PXE• Reinstalaciones• Instalaciones en red• Instalaciones virtualizadas
− Admite Xen, Qemu, KVM− Incluye una consola gráfica para gestionar todo a golpe de
ratón
Symbolic• Symbolic permite automatizar y facilitar:
− Creación de clústeres− Live Migration de VM's entre nodos− Creación de VM's y su gestión− IMPORTANTE: Admite creación de scripts que pueden
permitir migraciones u otras operaciones a medida.
• Symbolic usa XML-RPC para comunicar los nodos, una base de datos HSQLDB y una aplicación Java que puede desplegarse en un contenedor de servlets (tomcat).
Symbolic• Creación de una VM:
Symbolic• Creación de una VM (II)
Symbolic• Creación de una VM (III)
Symbolic• Cluster:
Symbolic• Live Migration
Demo• Colinux + Nomachine NX