Virtualización.

Vamos a hablar sobre como la virtualización permite utilizar la capacidad no utilizada por nuestros ordenadores. CUando VMWare lanzó su primer hivervisor en 2001, muchos lo vieron como un juego, pocos entendieron el impacto que tendría en la gestión de los CPDs. En la actualidad, no se puede hablar de CPD sin hablar de virtualización de servieores. EL 60-80% de las empresas ya la han implementado o lo tienen pensado para el próximo año. La virtualización será la tendencia de mayor impacto en los próximos años.

El rendimiento de los servidores x86 aumenta rápido, pero la mayor parte de su poder se malgasta, ya que tradicionalmente se utiliza un modelo de un servidor para una aplicación. Del 80 al 90% de la utilización de los servidores a nivel mundial se pierde. IDC estima que se gastan 50 centavos en energía y refrigeración por cada dolar que se inverte en servidores. Así mismo por cada dolar que se invirte en una infraestructura se gastan 8 dólares en mantenimiento y gestión. En la actualidad se estima que el promedio de consolidación es de 10 a 1, es decir, que de media hay 10 cargas de trabajo virtual por cada servidor físico. Este ratio de consolidación permite ahorrar un 22% en hardware y un 23% en los costes anuales. El ahorro se da en coste energético y en administración.

En un contexto clásico, existe un servidor por aplicación. Esto conlleva a un desperdicio importante de los recursos. Por ejemplo, en un entorno de CPD normal, puede haber un controlador de dominio Active Directory consumiendo un 10% de CPU, un servidor de impresión consumiendo solo 2% de CPU, un servidor web consumiendo un 50%, etc. De media, un enfoque clásico supone un consumo medio del 5-10% de CPU.

Para solventar el problema se utiliza la virtualización.

La virtualización se consigue mediante un software que particional un servidor físico. En la imagen anterior, podemos ver dos modelos. En el modelo de la derecha, se ejecuta un hipervisor llamado nativo, unhosted, bare metal o de tipo 1(el nombre hipervisor es la extensión del términio supervisor de los S.O.). Se trata de software que se ejecuta directamente sobre el hardware. Un software como WMware ESX cuenta con unas 150000 líneas de código, frente a los 50 a 70 millones de líneas de código fuente que puede tener un S.O. como Windows Server o RHEL.

En el modelo de la izquierda, podemos ver un hipervisor hosted o de tipo 2. En este caso, el software de virtualización se ejecuta sobre el sistema operativo host.

La virtualización tiene tres propiedades fundamentales:

  • Independencia al hardware: la capa de virtualización aisla al sistema operativo Guest del hardware físico de la máquina. Esto permite mover una máquina virtual de un entorno con un harware específico, a otro entorno con otro hardware diferente, sin que la máquina virtual requiera cambios de configuración del hardware, ya que el hardware virtual es independiente del hardware físico.
  • Encapsulación: la virtualización encapsula tanto aplicaciones como sistemas operativos, lo que permite tratar la máquina del mismo modo que un archivo. Es decir, se puede mover, copiar, replicar la máquina a otra máquina física remota.
  • Aislamiento: lo que ocurre en una máquina virtual no afecta a las otras máquinas virtuales. Es decir, si se produce un "kernel panic" en el S.O. guest número 1, sencillamente se puede detener y reiniciar sin que los otros S.O. guest deban hacerlo también.

Los fabricantes princiapales son VMWare (con ESXi, ESX, Workstation, Server y Player), Xen, Citrix XenServer, Microsoft Hyper-V Server, Oracle VirtualBox, QEMULas tecnologías de virtualización son variadas.

Virtualbox

El manual de VirtualBox está aquí.

Copiar un disco con otro nombre para volver a usarlo no funcionará, debido a la coincidencia de los UUID. Por ello es preciso que la nueva imagen disponga un UUID diferente. Una alternativa es clonar la imagen del disco. Para clonar una imagen, se pueden utilizar dos estrategias. La primera es VBoxManage clonevdi imagen1.vdi imagen2.vdi. La segunda, y más profana pero funcional, es en primer lugar cp imagen1.vdi imagen2.vdi y luego VBoxManage internalcommands setvdiuuid imagen2.vdi

Instalando Windows Server 2008

Aprovechando que vamos a instalar Windows Server 2008, vamos ver algo sobre las ediciones disponibles. Siempre que Microsoft crea un nuevo sistema operativo, ofrece diferentes versiones según las necesidades del usuario final. Las cinco ediciones son:

Windows Server 2008 Standard

La edición Standard es la más adecuada para la mayoría de los casos. Está optimizado para proporcionar servicios de dominio, como DNS, DHCP, networking y servicios de impresión. También puede soportar servicios de archivos distribuidos (DFS) de un espacio de nombres, así como ADFS.

Esta edición soporta multiprocesamiento simétrico (SMP) de dos y cuatro vías. Puede manejar como máximo 4GB de memoria en 32 bits y 32 GB en 64 bits.

Windows Server 2008 Enterprise

Se trada de una edición pensada para uso multidepartamental. Al contrario que Windows Server Standard, soporta clustering de hasta 8 nodos y configuraciones de memoria extensa (VLM), soportando hasta 64 GB en 32 bits y 2 TB en 64 bits. También permite usar Federation Services y Federation Services Proxy con ADFS. También permite usar múltiples espacios de nombres DFS.

Windows Server 2008 Datacenter

Esta edición está pensada para alojar sistemas críticos y soluciones que utilizan como mínimo 8 procesadores y un máximo de 32 en para arquitecturas de 32-bits y 64 para arquitecturas de 64 bits.. Incluye todas las características de Windows Server Enterprise.

No podemos ir a comprar una licencia de Server 2008 Datacenter a la tienda de la esquina, ya que solo se puede adquirir como parte de un sistema hardware propietario. Para usar Server 2008 Datacenter, se debe elegir un fabricante de hardware que no solo cumple los requerimientos de un mínimo de 8 procesadores, sino que también ha superado el testeo y certificación de calidad de Microsoft (WHQL - ver www.windowsservercatalog.com).

Windows Web Server 2008

Esta cuarta opción soporta hasta 2GB de RAM, y 2 CPUs como máximo. Al igual que las otras ediciones de Server 2008, soporta IIS 7.0, ASP.NET, y el entorno .NET. Sin embargo no soporta muchas de las características de las otras ediciones. Especialmente notoria es la ausencia de Active Directory (como servicio. Web Server puede ser miembro de un dominio AD). Sí incluye en cambio, caracterísitcas como NLB, DFS, EFS o RDP. Cosas que no podemos hacer con un Web Server son enrutamiento, servicios de impresión o Terminal Services (sí podemos conectarnos en remoto vía RDP, pero no ejecutar aplicaciones via TS).

Características de configuración extendidas de VirtualBox

Cuando se configura una máquina en VirtualBox, la mayoría de opciones son muy intuitivas. Hay algunas que no lo son tanto. Se trata, de las características extendidas del sistema. Algunas de ellas son:

  • Habilitar IO APIC: Advanced Programmable Interrupt Controllers (APICs) es una característica de las arquitecturas x86 modernas que permite a los SOs usar más de 16 IRQs, evitando de este modo las interrupciones compartidas
  • EFI: Extensible Firmware Interface, sustituto a largo plazo de BIOS.
  • Reloj hardware en tiempo UTC: Muchos sistemas operativos (basados en UNIX) utilizan una configuración UTC del rejoj del sistema, y a partir de ella se obtiene la hora local. Esta opción se marcará por defecto cuando creemos una máquina GNU/Linux.
  • Habilitar dispositivo apuntador absoluto: Es la opción a marcar si pensamos utilizar una tableta USB
  • Habilitar PAE/NX: Si se habilita, un microprocesador x86 admitirá hasta 64 GB de RAM (en vez de los 4 GB habituales)
  • Habilitar VT-x/AMD-V: En caso de que el microprocesador soporte dicho juego de instrucciones, mejorará el rendimiento.
  • Habilitar paginación anidada: es una técnica de virtualización por hardware que puede mejorar la gestión de la memoria. Se podrá activar, pero solo tendrá efecto si el microprocesador soporta esta característica.
  • Usar la cache de anfitrión de E/S: con esta opción habilitamos la escritura postergada en disco virtual. Esto puede por un lado mejorar la velocidad de transferencia de datos, pero también puede degenerar en errores de disco en sistemas GNU/Linux. Además, en caso de apagado abrupto, el sistema puede quedar inconsistente.

Otros aspectos que debemos conocer son la compartición de carpetas con el sistema host, o la compartición via USB. La primera de estas características permite compartir un directorio en el anfitrión para ser accedido por el huésped. La segunda permite usar almacenamiento USB conectado al host. Estas características sólo se pueden utilizar si el huésped tiene instaladas las Guest Additions.

Para compartir una carpeta, desplegamos el menú "Dispositivos\Carpetas compartidas". Desde allí podemos añadir una carpeta compartida, y establecer por ejemplo si queremos que esté montada de manera permanente.

Para acceder desde Windows podemos utilizar una ruta UNC a la máquina "ficticia" VBoxSvr. Es decir, si la carpeta compartida se llama "Docs", entonces la ruta UNC será \\VBoxSvr\Docs. Vía comando, podemos utilizar "net use w: \\vboxsvr\Docs".

En sistemas GNU/Linux usaremos "mount -t vboxsf Docs /mnt"

Para acceder a un dispositivo de almacenamiento USB, basta con insertarlo mientras la máquina virtual está apagada. Entonces, editamos la configuración de la máquina, y en la pestaña USB, agregamos un filtro para el dispositivo.

Actividades

Actividad 1. Instala una máquina virtual, instalando sobre ella Windows Server 2008 o bien Windows 7.

Actividad 2. Configura la red en modo puente, y asegúrate de que tienes conectividad. Para comprobarlo, puedes hacer ping a la puerta de enlace.

Actividad 3. Instala las Guest Additions y comparte una carpeta en el host. Accede a ella desde la máquina virtual.

Actividad 4. Clona el disco de la máquina virtual, creando otro otro disco. Arranca una segunda máquina virtual con el nuevo disco y asegúrate de que tienen conectividad entre ellos. Aunque por defecto bloquean el tráfico ICMP, sí que anotan las entradas ARP, lo que te indicará si la máquina está al otro lado.

Actividad 5. Toma una instantanea del sistema recién instalado. Después realiza un cambio sencillo en el sistema (por ejemplo, cambia el fondo de pantalla). Acto seguido haz algo que pueda deteriorar el sistema. Por ejemplo puedes abrir una consola de comandos como administrador y ejecutar el siguiente comando: "bcdedit /delete {bootmgr} /f". Reinicia y comprobarás que el sistema no arranca. Ahora restaura la "instantánea" tomada anteriormente y comprueba si se puede iniciar.