Virtualización
Qué se gana al poner una capa de abstracción sobre el hardware, en qué se diferencian los hipervisores de tipo 1 y de tipo 2, qué más se virtualiza además de la máquina, qué formatos de disco y de máquina virtual hay que reconocer, cómo se opera un entorno virtual y dónde acaba una máquina virtual y empieza un contenedor.
Qué es virtualizar y qué se gana con ello
Virtualizar es crear una abstracción: presentar como disponible un recurso que físicamente no está ahí, pero que se comporta igual que si lo estuviera. Se consigue insertando una capa de software entre los recursos reales (procesador, memoria, red, disco) y quien los usa, de forma que esos recursos se puedan repartir entre varios sin que ninguno se entere de que los está compartiendo. Donde antes había una máquina física, pasa a haber varias máquinas lógicas.
Esa capa de software se llama hipervisor, y también monitor de máquina virtual por sus siglas inglesas VMM. Es la pieza que decide qué porción de procesador, de memoria y de red le toca a cada máquina virtual y que impide que una invada a otra.
- Aprovechamiento del hardware: un servidor físico moderno está la mayor parte del tiempo ocioso, y consolidar en él varias máquinas virtuales convierte esa capacidad desaprovechada en servicio.
- Aislamiento: cada máquina virtual tiene su sistema operativo y sus aplicaciones, de modo que si una se cuelga o se compromete las demás siguen funcionando.
- Aprovisionamiento y administración: crear un servidor deja de ser una compra y un montaje para ser una operación de minutos, y los recursos asignados se amplían o se reducen según haga falta.
La progresión que se suele enunciar es de lo físico a lo virtual y de ahí a la nube. Lo que caracteriza a la nube frente a la simple virtualización es que la demanda se atiende sola y se factura por consumo, con autoescalado cuando la carga sube. En un centro de datos virtualizado se puede uno quedar sin recursos porque los servidores físicos son los que son; en la nube pública eso, a efectos prácticos, no pasa, y lo que se encuentra uno es la factura.
El hipervisor, o VMM, es la capa que multiplexa el hardware real entre varias máquinas lógicas y las mantiene aisladas entre sí.
Para el examen
Qué es: repartir una máquina física entre varias lógicas
Qué se gana: aprovechamiento, aislamiento y facilidad para mover y clonar
Hipervisores de tipo 1 y de tipo 2
La clasificación se decide mirando qué hay justo debajo del hipervisor en la pila. En los dos casos, por encima van las máquinas virtuales, cada una con su sistema operativo invitado y sus aplicaciones; lo que cambia es el suelo sobre el que se apoya el hipervisor.
| Tipo 1, nativo o bare metal | Tipo 2, alojado | |
|---|---|---|
| La pila, de abajo arriba | Hardware, hipervisor, máquinas virtuales. | Hardware, sistema operativo anfitrión, hipervisor, máquinas virtuales. |
| Diseño | Está pensado y optimizado para virtualizar: es su única función. | Es un programa más instalado sobre un sistema operativo de propósito general. |
| Rendimiento | Mejor: no hay una capa intermedia que atravesar en cada operación. | Peor: cada acceso al hardware pasa por el sistema anfitrión. |
| Dónde se usa | Servidores y centros de proceso de datos. | Puestos de trabajo, pruebas, laboratorio y uso doméstico. |
| Productos | VMware ESXi, Microsoft Hyper-V, Xen, XCP-ng y KVM. | VMware Workstation y Player, Oracle VirtualBox y Parallels en Mac. |
Hyper-V es el caso que se usa para hacer trampa en las preguntas. Se instala desde Windows, así que a primera vista parece de tipo 2. No lo es: al activar la característica, el sistema se reordena y el hipervisor pasa a situarse directamente sobre el hardware, mientras que el Windows desde el que se instaló queda convertido en una máquina virtual privilegiada por encima de él. La regla, por tanto, no es cómo se instala sino dónde acaba situándose.
Nada de esto funcionaría con un rendimiento aceptable sin ayuda del procesador. Intel llama VT-x a las extensiones de virtualización de la CPU, VT-d a las de entrada y salida y VT-c a las de red; el equivalente de AMD es AMD-V. Son capacidades del hardware, no programas, y si están desactivadas en la configuración de la máquina el hipervisor no arranca o va a paso de tortuga.
Tipo 1: el hipervisor toca el hardware. Tipo 2: hay un sistema operativo anfitrión entre medias. Hyper-V es de tipo 1 aunque se instale desde Windows.
Para el examen
Tipo 1: corre sobre el hierro: ESXi, Hyper-V, KVM
Tipo 2: corre sobre un sistema operativo anfitrión: VirtualBox, VMware Workstation
Virtualización del almacenamiento y del respaldo
No solo se virtualizan máquinas. La misma idea, poner una capa que abstraiga el recurso real, se aplica al almacenamiento, y ahí el reparto es el mismo que en el subtema anterior: se puede abstraer a nivel de bloque o a nivel de fichero.
| Nivel | Dónde se hace | Ejemplo |
|---|---|---|
| Bloque | En el propio servidor | El gestor de volúmenes lógicos, LVM, que agrupa discos y presenta volúmenes que se amplían y se reducen sin tocar las particiones. Se estudia en el tema de administración de sistemas operativos. |
| Bloque | En el dispositivo | La controladora RAID, que presenta un único volumen al sistema operativo y le oculta cuántos discos hay debajo. |
| Bloque | En la red | La SAN y la SAN virtual, donde el servidor recibe unidades lógicas talladas por la cabina y no sabe de qué discos físicos salen. |
| Fichero | En un equipo dedicado | El NAS, que comparte carpetas por NFS, SMB o AFP y se encarga él del sistema de ficheros. |
También se virtualiza el respaldo, y ahí el nombre que se pregunta es el de librería virtual de cintas. Consiste en presentar al programa de copias la misma interfaz que tendría una librería de cintas robotizada, mientras que detrás lo que hay son discos. Se hizo así por una razón muy práctica: permitía ganar la velocidad y el acceso directo del disco sin cambiar el programa de copias ni los procedimientos, que estaban escritos para cintas.
Virtualizar almacenamiento es siempre lo mismo: quien lo usa deja de saber, y de necesitar saber, en qué disco físico está su dato.
Para el examen
Aprovisionamiento fino: asigna el espacio según se usa, no de golpe
Su riesgo: se vende más de lo que hay: exige vigilar la ocupación real
Virtualización del puesto de usuario
La tercera familia de virtualización no está en el centro de datos sino en la mesa del usuario, y tiene dos grados distintos que conviene separar porque se preguntan enfrentados.
- Virtualización del escritorio: el escritorio completo del usuario, con su sistema operativo y todos sus programas, se ejecuta en el centro de datos y lo que el usuario tiene delante es solo una pantalla remota. La infraestructura que lo hace posible se conoce por sus siglas inglesas VDI. Productos característicos: VMware Horizon y Citrix XenDesktop.
- Virtualización de aplicaciones: no se entrega un escritorio entero, solo el acceso a una aplicación concreta, que se ejecuta en el servidor y se muestra en el equipo del usuario como si fuera local. Producto característico: Citrix XenApp.
Lo que gana con esto un administrador es control: los datos no salen del centro de datos, el puesto pasa a ser un terminal reemplazable, y actualizar o parchear un programa se hace en un sitio y no en trescientos equipos. Lo que se paga es dependencia total de la red y una inversión inicial considerable en servidores.
Aviso sobre las siglas VDI, porque es una trampa habitual: significan infraestructura de escritorio virtual, pero también son la extensión de los ficheros de disco de VirtualBox. Si la pregunta habla de escritorios, es lo primero; si habla de formatos de fichero, es lo segundo.
Para el examen
VDI: entrega el escritorio completo desde el centro de datos
Virtualización de aplicaciones: entrega solo el programa
Formatos de disco y de máquina virtual
Hay dos cosas distintas que se guardan en fichero y que conviene no mezclar: el disco duro virtual, que es donde vive el sistema de ficheros de la máquina, y el paquete de distribución de una máquina entera, que además del disco lleva la descripción de su hardware virtual.
| Extensión | Qué es | De quién |
|---|---|---|
| VMDK | Fichero de disco duro virtual. | VMware. Su especificación está publicada, y por eso otros productos lo leen. |
| VHD y VHDX | Fichero de disco duro virtual. | Microsoft, es el formato de Hyper-V. |
| VDI | Fichero de disco duro virtual. | Oracle VirtualBox. |
| OVF | Formato abierto de virtualización: paquete de distribución de una máquina virtual, con su descriptor y sus discos. Es lo que permite distribuir un servicio ya montado, lo que se llama dispositivo virtual. | Norma del organismo DMTF, no de un fabricante. |
| OVA | Lo mismo que OVF pero empaquetado todo en un único fichero contenedor TAR, para moverlo cómodamente. | Mismo estándar. |
| VMEM | Imagen de la RAM de la máquina virtual, volcada a disco al dejarla en pausa. | VMware. |
Una precisión sobre la palabra abierto, porque los apuntes la reparten mal. VMDK es el formato propietario de VMware con la especificación publicada, que no es lo mismo. El formato realmente abierto de esta lista es OVF, que es una norma de un organismo de normalización y no de una empresa, y por eso es el que se usa para intercambiar máquinas entre plataformas de distintos fabricantes.
VMDK, VHD y VDI son discos, uno por fabricante. OVF y OVA no son discos: son el paquete con el que se distribuye una máquina virtual completa, y OVA es el OVF metido en un TAR.
Para el examen
VMware: VMDK
Hyper-V: VHD y VHDX
KVM y VirtualBox: QCOW2 y VDI
Formatos de intercambio: OVF y OVA
Lo que se administra en un entorno virtual
Una vez montado el hipervisor, el trabajo diario de administración es distinto del de un parque de máquinas físicas, y hay cuatro operaciones que definen la diferencia.
- Plantillas y clonado. Una máquina bien configurada se convierte en plantilla, y a partir de ella se crean copias idénticas en minutos. Es lo que hace que aprovisionar un servidor deje de ser un proyecto.
- Instantáneas. Se congela el estado de la máquina antes de un cambio arriesgado y se puede volver a él si algo sale mal. Es una red de seguridad para una actualización, no un respaldo.
- Migración en caliente. Una máquina virtual se traslada de un servidor físico a otro sin apagarla, lo que permite vaciar un servidor para repararlo o repartir la carga sin cortar el servicio.
- Conversión de físico a virtual. Un servidor físico existente se convierte en máquina virtual, que es como se hacen las consolidaciones de parques antiguos.
De las cuatro, la que hay que entender bien es la instantánea, porque se confunde con una copia de seguridad y no lo es. Vive en el mismo almacenamiento que la máquina, así que si se pierde la cabina se pierden las dos; degrada el rendimiento mientras existe, porque cada escritura tiene que registrarse aparte; y si se deja olvidada semanas puede llegar a llenar el almacenamiento. Lo correcto es usarla para lo que es, una marcha atrás de horas, y respaldar con el programa de copias.
Una instantánea de máquina virtual no es una copia de seguridad: comparte destino con el original y se degrada con el tiempo.
Para el examen
Instantáneas: NO son copias de seguridad
Por qué: dependen del disco original
Su efecto si se acumulan: degradan el rendimiento
Virtualizar frente a contenerizar
Junto a la virtualización clásica ha crecido otra forma de aislar aplicaciones que a veces se llama virtualización ligera, y la comparación entre las dos es donde se cierra este subtema. La diferencia se ve enfrentando las dos pilas.
| Máquina virtual | Contenedor | |
|---|---|---|
| La pila, de abajo arriba | Hardware, hipervisor, y encima cada máquina con su sistema operativo invitado completo y su aplicación. | Hardware, sistema operativo anfitrión, motor de contenedores, y encima cada contenedor solo con su aplicación y sus utilidades. |
| Qué se virtualiza | El hardware. Cada invitado cree tener una máquina para él. | El sistema operativo. Todos los contenedores comparten el mismo núcleo del anfitrión. |
| Qué lleva dentro | Un sistema operativo entero, con su núcleo. | La aplicación y la paquetería mínima que necesite, pero no el núcleo. |
| Peso y arranque | Gigabytes y arranque de minuto. | Megabytes y arranque de segundos. |
| Aislamiento | Fuerte: son máquinas separadas y pueden llevar sistemas operativos distintos. | Menor: al compartir núcleo, todos los contenedores tienen que ser compatibles con él. |
| Para qué encaja mejor | Servicios completos que necesitan un sistema entero, como un gestor de bases de datos, un servidor de correo o un DNS. | Aplicaciones, y sobre todo servicios pequeños que se despliegan y se reproducen muchas veces. |
La consecuencia que hay que llevar aprendida es la del núcleo. Como el contenedor no lleva el suyo, no puede ejecutarse sobre un anfitrión de familia distinta sin ayuda de una máquina virtual por debajo, y no sirve para todo lo que sirve una máquina virtual. A cambio, al no arrastrar un sistema operativo entero, arranca casi al instante y se distribuye con muchísima menos carga.
Los contenedores, su ciclo de vida, su orquestación y sus productos son materia del tema siguiente del programa oficial, dedicado a contenedores y microservicios. Aquí basta con saber dónde acaba una máquina virtual y por qué las dos tecnologías conviven en lugar de sustituirse.
La máquina virtual virtualiza el hardware y lleva su propio núcleo; el contenedor virtualiza el sistema operativo y comparte el núcleo del anfitrión.
Para el examen
Máquina virtual: lleva sistema operativo completo
Contenedor: comparte el núcleo del anfitrión
Consecuencia: arranca en segundos y ocupa mucho menos