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

Virtualizacion

  • 1.
    EXPERIENCIAS DE VIRTUALIZACIÓN EN CICA Juan Carlos Rubio Pineda
  • 2.
  • 3.
    Virtualización 1)¿Qué es? 2)Soluciones devirtualización: Tipos 3)Alternativas elegidas en CICA 4)demo
  • 4.
    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.
  • 5.
    2) Tipos • Lostipos 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)
  • 6.
    Tipos • Emulación osimulació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.
  • 7.
    Tipos • Virtualización nativay 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
  • 8.
    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.
  • 9.
    Tipos • Virtualización anivel 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.
  • 10.
    3) Alternativas elegidasen 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.
  • 11.
  • 12.
  • 13.
  • 14.
    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
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
    VMWare ESXi: M.Virtuales.
  • 21.
  • 22.
    VMWare ESXi: • VmwareESXi 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.
  • 23.
    Vmware ESXi: consola •La consola muestra esta imagen:
  • 24.
    Vmware ESXi: consola •Una vez en la consola, pulsamos ALT+F1, y aparece:
  • 25.
    Vmware ESXi: consola •Seguimos sin prompt. No se visualiza lo que se escribe, pero si tecleamos: − Unsupported + <ENTER> − Aparecerá el Tech Support Mode:
  • 26.
    Vmware ESXi: consola •Si escribimos la contraseña del servidor, tenemos:
  • 27.
    Vmware ESXi: consola •Ahora editamos /etc/inetd.conf y habilitamos ssh:
  • 28.
    Linux V-Server • Esuna 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.
  • 29.
    Linux V-Server • Linuxv-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.
  • 30.
    OpenVz • El procesode 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.
  • 31.
    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.
  • 32.
    Proxmox • Funcionalidad deun “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.
  • 33.
  • 34.
    Proxmox • Estado deuna máquina virtual
  • 35.
  • 36.
    Proxmox • Estado delas máquinas de un cluster con 3 nodos:
  • 37.
    OpenQRM • Gestiona diferentesplataformas de virtualización
  • 38.
    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.
  • 39.
    Comparativa • Comparativa dealternativas de Virtualización S.O.
  • 40.
    Symbolic • Symbolic esuna 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
  • 41.
    Symbolic • Symbolic permiteautomatizar 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).
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
    Demo • Colinux +Nomachine NX