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
• 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)
6. 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.
7. 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
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 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.
10. 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.
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
22. 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.
25. Vmware ESXi: consola
• Seguimos sin prompt. No se visualiza lo que se escribe,
pero si tecleamos:
− Unsupported + <ENTER>
− Aparecerá el Tech Support Mode:
28. 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.
29. 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.
30. 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.
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 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.
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.
40. 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
41. 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).