Curso de VMware 5.5 – Maquinas Virtuales

Hasta ahora en nuestro curso de VMware hemos avanzado en conceptos de virtualización, organización del inventario de objetos en vCenter, almacenamiento, redes, pero todavía no hemos tocado propiamente máquinas virtuales. Las máquinas virtuales son el objeto de la virtualización propiamente y merecen un capítulo propio para aclarar una serie de conceptos importantes de cara a los siguientes capítulos.

Componentes de las maquinas virtuales

Una maquina virtual en sí no es más que un conjunto de archivos que almacenan información relativa a su configuración de hardware, y los datos del disco duro de esta. Entremos un poco más en profundidad en estos componentes.

¿Que contiene cada archivo de una máquina virtual de VMware?

Cuando trabajamos con VMware ESXi, estamos manejando, entre otras muchas cosas, máquinas virtuales (VMs). Estas máquinas virtuales están compuestas por varios archivos almacenados en carpetas dentro de datastores. Tomaremos como ejemplo el vCenter Server Appliance que instalamos en el capítulo anterior del curso de vmware para la certificacion VCP:

  • vcsa55.vmx
    Guarda los datos de configuración de la máquina virtual, desde su dirección MAC, hasta los discos que tiene conectados, etc.
  • vcsa55-3dbf9190.vswp
    Se trata del archivo de swap de la máquina virtual. Puede crecer hasta el tamaño que tiene la memoria RAM de la máquina virtual, por eso tiene asignados los 8192 MB de RAM de la máquina virtual + el overhead (veremos más adelante eso, en el capítulo dedicado a la gestión de memoria).
  • vcsa55.nvram
    Este archivo guarda una copia de la BIOS de la máquina virtual
  • vcsa55.vmsd
    En este archivo se guarda información relativa a los snapshots de la máquina virtual. Solo información relativa a ellos, no los snapshots propiamente.
  • vcsa55.vmx.lck
    Este archivo es un lockfile. Indica que esta máquina virtual se encuentra encendida en algún host.
  • vcsa55.vmxf
    Este archivo contiene informacion de configuración extra para las máquinas virtuales.
  • vmware.log
    Este archivo guarda un log de eventos relacionados con la máquina virtual. Puede ser útil a la hora de hacer resolución de problemas.
  • vcsa55.vmdk
    Contiene una serie de datos de descripción y configuración del siguiente archivo de la lista y correspondiente al primer disco duro de la máquina virtual
  • vcsa55-flat.vmdk
    Se trata del disco duro propiamente de la máquina virtual, un contenedor de datos en el que se almacenan los bytes correspondientes al primer disco duro de la máquina virtual
  • vcsa55_1.vmdk
    Contiene una serie de datos de descripción y configuración del siguiente archivo de la lista y correspondiente al segundo disco duro de la máquina virtual
  • vcsa55_1-flat.vmdk
    Se trata del disco duro propiamente de la máquina virtual, un contenedor de datos en el que se almacenan los bytes correspondientes al segundo disco duro de la máquina virtual
  • vcsa55-Snapshot1.vmsn
    Se trata de un archivo que contiene información relativa al estado del snapshot número 1 de la máquina virtual
  • vcsa55-000001.vmdk
    Se trata del archivo que guarda la configuración de un disco duro auxiliar creado al hacer un snapshot del primer disco duro de la máquina virtual.
  • vcsa55-000001-delta.vmdk
    Se trata del archivo de datos con las diferencias que va habiendo en el primer disco duro de la máquina virtual desde el momento de creación del snapshot.
  • vcsa55_1-000001.vmdk
    Se trata del archivo que guarda la configuración del disco duro auxiliar creado al hacer un snapshot del segundo disco duro de la máquina virtual.
  • vcsa55_1-000001-delta.vmdk
    Se trata del archivo de datos con las diferencias que va habiendo en el segundo disco duro de la máquina virtual desde el momento de creación del snapshot.

vCPU

Se trata de la cantidad de CPUs / cores de CPU a los que tienen acceso las maquinas virtuales. Pueden tratarse de una o más CPUs que se presentan físicamente como sockets o cores (podemos elegirlo). Aparte de configuraciones avanzadas y optimizadas como afinidad NUMA, etc, podemos vernos en la necesidad de presentar las CPUs como cores para respetar un escenario como este:

Hemos comprado un software que se licencia por CPU física, es decir, por socket físico.

Nuestro host de virtualización es un servidor con dos procesadores Xeon de 6 cores cada uno, sin embargo solo podemos utilizar uno de ellos para la maquina virtual si queremos respetar la modalidad de licenciamiento con el fabricante (una modalidad que por otro lado está totalmente obsoleta).

Para esto, daremos a nuestra maquina virtual 1 socket de CPU y 6 cores de CPU. Además, para asegurarnos de que vamos a utilizar solo una cpu física para esta maquina virtual, seleccionaremos CPU AFFINITY 0-5, lo cual hará que solo se utilicen los primeros 6 cores disponibles en el host para esta máquina virtual. De esta manera, la maquina virtual nunca llegará a hacer uso del segundo procesador físico y no estaremos rompiendo estos licenciamientos ridiculos.

Otro escenario es que tengamos un software con la misma licencia limitada a 1 CPU física y queramos hacerle trampas y proporcionarle más cores de los que tienen nuestros procesadores en el host. Siguiendo el ejemplo anterior del Dual Xeon Hexa Core, podríamos hacer creer a la máquina que tiene 1 Socket, pero otorgarle 12 CORES, con lo que aprovecharíamos el doble procesador y el software no rechistaría, pensando que tenemos 1 único procesador con muchos más cores de los que realmente tenemos.

CPU Affinity

Se trata de una opción de configuración de una maquina virtual en VMware que permite seleccionar y limitar el uso de cores del host a una maquina virtual. Si queremos que “maquinavirtual01” se ejecute unica y exclusivamente en los cores 0 y 1 de nuestro host, escribiremos 0,1 en los valores de CPU affinity. Ten presente que esto limita la ejecución de la maquina virtual a estos cores, pero de ninguna manera los reserva para esta maquina virtual en exclusiva. Ademas, estaras limitando el tiempo de cpu que se puede dedicar a los diferentes hilos que componen la maquina virtual en tiempo de ejecucion (worlds) por lo que es posible que termines viendo una merma del rendimiento conforme los diferentes worlds compiten entre si por obtener recursos en caso de saturacion de los cores a los que hemos limitado esa maquina virtual.

CPU affinity además, inhabilita la maquina virtual para ser manejada mediante la funcionalidad DRS automatizada de un cluster y no puede ser habilitado en una maquina virtual que resida en un cluster con DRS ya habilitado.

La recomendación general es que no utilices CPU affinity en tus maquinas virtuales pues puede penalizarte más que los beneficios que te aporte. Además, CPU affinity es una funcionalidad incompatible con vMotion y por tanto con DRS.

vRAM

La vRAM, o RAM virtual, es la cantidad de memoria del host que se asigna a cada máquina virtual para trabajar y, en definitiva, la que este guest verá como disponible. Se puede asignar desde unos pocos MB hasta 2TB de memoria RAM. La recomendación general es que se debe asignar a la máquina virtual tanta memoria como vaya a utilizar, ni más ni menos. No es interesante asignar a un equipo mucha más memoria de la que vaya a utilizar, pues estaremos perjudicando a las demás máquinas virtuales en caso de que ocurra una situación de contención de recursos (falta de recursos).

Disco Duro Virtual

Otro de los componentes básicos de una máquina virtual es su disco duro. Si bien es perfectamente posible ejecutar máquinas virtuales que no dispongan de almacenamiento de este tipo, existen pocos casos prácticos en los que vayamos a querer nuestra máquina virtual arrancando solo desde PXE o una ISO arrancable como un Live CD. Un ejemplo clásico de máquina virtual sin disco duro es aquella en la que montamos una ISO de un Live CD de Linux para probarlo durante un periodo determinado de tiempo y cuya información no nos preocupa perder si la apagamos.

Los discos duros virtuales de una maquina virtual se conectan mediante controladoras, al igual que en un ordenador normal. Disponemos de diferentes tipos de controladoras de disco:

  • Buslogic Parallel IDE
  • LSI Logic Parallel
  • LSI Logic SAS
  • VMware PAravirtual

Podemos conectar hasta 4 controladoras de disco SCSI a una maquina virtual, y 15 discos duros a cada una de ellas, por lo que podremos disponer de un máximo de 60 discos duros conectados a una única máquina virtual. En el caso de controladoras IDE, podremos conectar una única a nuestra maquina virtual, con hasta 4 dispositivos conectados a la misma. Si, por el contrario, elegimos un adaptador Virtual SATA, podremos conectar 4 de este tipo, con 30 dispositivos por cada controladora SATA virtual.

Crear maquinas virtuales

Una tarea habitual en un entorno virtualizado es la creación de máquinas virtuales dentro de nuestro vCenter. La creación de máquinas se realiza de la siguiente manera:

Seleccionaremos el nivel dentro del inventario en el que queremos crear nuestra máquina virtual. El nivel más alto al que podemos crear una máquina virtual es el cluster. Si no tenemos un cluster, crearemos la máquina virtual en un host. Las máquinas virtuales también pueden crearse en resource pools, vApps y carpetas.

Para crear una máquina virtual, haremos click derecho sobre el objeto padre donde queramos alojarla y haremos click en New Virtual Machine

crear maquinas virtuales

Ahora se nos presentara un menú en el que veremos todas las formas que existen para crear una maquina virtual.

crear maquinas virtuales

Repasémoslas:

Create a new virtual machine

La forma tradicional y más manual de crear una máquina virtual. Se te pedirán los valores de configuración de la máquina virtual para que luego procedas a instalarla, es como instalar un servidor físico normal.

Deploy from template

Se utiliza una máquina virtual que previamente has convertido en una plantilla. Suele estar ya instalada y lista para configurar valores como el hostname o su IP. Facilita bastante los despliegues de varias máquinas virtuales.

Clone an existing virtual machine

Puedes usar una máquina virtual ya existente para generar una clonándola. Tiene la ventaja de que tiene el mismo contenido, pero el inconveniente de que las ips, hostnames, configuraciones, son las mismas que las de la máquina que ya tienes. Puede haber conflictos de ips duplicadas, aplicaciones compitiendo por conexiones, etc.

Clone virtual machine to template

Con este método crearemos una plantilla o template a partir de una máquina virtual que ya tenemos lista y preconfigurada. Es requisito para la opcion 2 de este menú.

Clone template to template

Esta funcionalidad nos permite clonar un template o plantilla. Normalmente lo utilizaremos si queremos realizar modificaciones a la plantilla que solemos utilizar para desplegar máquinas virtuales.

Convert template to virtual machine

Esta funcionalidad suele ser complementaria a la anterior. Dado que los templates o plantillas de maquinas virtuales no se pueden encender, necesitamos convertir la plantilla a máquina virtual normal cada vez que vayamos a introducir algún cambio en la misma, como por ejemplo, instalar actualizaciones de sistema o meter nuevas versiones de software para disponer de ellas en futuros despliegues.

En este curso de VMware 5.5 vamos a aprender a crear máquinas virtuales de forma tradicional, pero es importante que conozcas TODAS las formas de creación de máquinas virtuales, incluidos los despliegues con plantillas/templates y la personalización del despliegue usando herramientas como sysprep. Si estás preparando el examen VCP, son preguntas de examen VCP.

Lo primero que se nos pedirá en el asistente de creación de máquinas virtuales será el nombre y ubicación de la misma. Debemos dar un nombre por el que la vayamos a poder identificar. Este nombre será también el nombre de la carpeta que se creará dentro del datastore para almacenar los diferentes archivos que conforman la máquina virtual.

crear maquinas virtuales

Como anteriormente hemos elegido el datacenter virt.es, se nos presenta una lista de los objetos que contiene. Yo he elegido el cluster laboratorio, pero puedes elegir el que se adapte a tus necesidades.

crear maquinas virtuales

La siguiente pantalla nos muestra una selección de los diferentes datastores que tenemos disponibles par almacenar nuestra máquina virtual. Elegiremos uno con suficiente capacidad disponible y debemos tener presente si el resto de nuestros hosts tienen visibilidad del mismo, para funcionalidades posteriores como HA, FT, vMotion…

crear maquinas virtuales

La siguiente pantalla del asistente nos pregunta la versión del hardware virtual que queremos poner a la máquina virtual. Esta elección, aparentemente sencilla, la hará compatible o incompatible con hosts de versiones anteriores a la que seleccionemos. Además, según la versión del cliente vSphere de Windows que utilices, podrás realizar o no acciones como editar las propiedades de la máquina virtual. Como regla general, para mantenernos en el lado seguro, diremos que el Cliente vSphere de Windows solo puede editar máquinas virtuales con hardware versión 8, equivalente a ESXi 5.0. Con las últimas versiones del cliente vSphere, podremos editar máquinas con versión superior de hardware, pero únicamente modificar los parámetros que ya existían en la versión 8 de hardware virtual. Las nuevas capacidades de hardware v9 y hardware v10 no serán editables. El cliente Web no tendrá problema para editar las máquinas virtuales de como máximo, su versión.

crear maquinas virtuales

Elegiremos el tipo de sistema operativo que va a ejecutar nuestro guest. Recordemos que el guest es la máquina virtual que estamos creando. En mi caso, he elegido Linux, y dentro de la familia Linux, el sistema operativo Debian 7.

crear maquinas virtuales

En esta pantalla se nos permitirá ajustar los parámetros que por defecto se recomiendan para el tipo de máquina virtual que hemos seleccionado crear. Pregunta de examen VCP. En mi caso suelo quitar la unidad de floppy, ya que nunca la utilizo.

crear maquinas virtuales

En esta última pantalla revisaremos todos los parámetros antes de crear la máquina virtual. Si estamos de acuerdo con todo, pulsaremos en Finish.

crear maquinas virtuales

Una vez la máquina virtual está creada, haremos click derecho sobre ella y seleccionaremos Power On para ponerla en marcha.

crear maquinas virtuales

Nuestra máquina virtual ya está creada, pero carece de un sistema operativo que arrancar. Pulsaremos el botón que se indica en la imagen para conectarle un archivo .iso en el que tendremos nuestro sistema operativo.

crear maquinas virtuales

Seleccionamos la opción Connect to CD/DVD image on a local disk, si lo tenemos descargado en nuestro ordenador de escritorio.

conectar cd a maquina virtual

La aplicación web solicitará permiso para acceder a nuestro ordenador, para poder montar la iso en la máquina virtual como si de un CD se tratase.

crear maquinas virtuales

Seleccionamos la iso que queramos instalar y pulsamos Open. En mi caso he usado una de lubuntu para el ejemplo, aunque posteriormente he de confesar que me arrepentí y puse kubuntu para probar KDE Plasma 5 🙂

crear maquinas virtuales

Volveremos a la pantalla de Summary para esta vez vamos a fijarnos en un texto que pone “Launch Console”. Haremos click sobre él. Es el equivalente a conectar un monitor y teclado a un servidor tradicional. Desde aquí controlaremos la instalación del sistema operativo en la máquina virtual.

crear maquinas virtuales

Vaya, la máquina virtual ya estaba arrancada y efectivamente ha detectado que no tenemos sistema operativo en el disco duro. Como hemos conectado la imagen ISO a modo de CD con posterioridad, vamos a mandarle un reinicio mediante el botón de Ctrl-Alt-Supr indicado en la imagen

crear maquinas virtuales

Una vez pulsamos, podremos ver como esta vez si arranca desde la ISO y comienza la instalación del sistema operativo.

Crear un template de una maquina virtual

Crear una plantilla puede facilitar enormemente el despliegue de múltiples máquinas virtuales. Una vez tenemos nuestra máquina virtual instalada, seguiremos el siguiente procedimiento para convertirla en plantilla.

Apagar la máquina virtual. Es requisito. Para convertir una máquina virtual preexistente en una template, ha de estar apagada.

Pulsaremos sobre la máquina virtual apagada con el botón derecho del ratón y elegiremos la opción Convert to Template. Esta opción puede estar dentro de All vCenter Actions en el Web Client.

templates maquinas virtuales

¡OJO! Para ver las plantillas tenemos que ir al tab de VMs, ya que no aparecen en el de Hosts and Clusters.

templates maquinas virtuales

Si nos fijamos en el inventario, el icono representativo de los templates es diferente al de las máquinas virtuales. Esto permite diferenciarlas mucho más fácilmente.

plantillas de maquinas virtuales

Crear una plantilla de personalización para despliegues (Customization Specification)

Cuando desplegamos una máquina virtual desde una plantilla, si el sistema operativo está soportado, podemos personalizar aspectos como su hostname, direccionamiento de red, DNS… Esto es una ventaja y hace mucho más ágil el despliegue de máquinas virtuales (te lo dije!)

Debes saber que para personalizar despliegues en Windows, podemos utilizar la herramienta sysprep de microsoft, que permitirá personalizar más a fondo el despliegue.

En mi caso, como voy a desplegar y personalizar una plantilla de Ubuntu, crearé una customization specification para este sistema operativo.

Haremos click en el icono de Home de vSphere Web Client, para posteriormente hacer click en Customization Specification Manager

personalizar despliegue maquina virtual

El asistente de creación de personalización de VMs nos pedirá inicialmente el sistema operativo que vamos a personalizar. Puede ser Windows o Linux. Ten presente que no todos los Linux están soportados.

personalizar despliegue maquina virtual

La siguiente pantalla nos permite personalizar opciones de hostname y dominio de la máquina que vamos a personalizar en tiempo de despliegue. Personalmente, creo que la opción más sensata es elegir el mismo  hostname que el nombre que vamos a dar en el inventario de vCenter a la máquina virtual. Nos ahorrará confusiones para identificar nuestros equipos cuando el entorno crezca.

personalizar despliegue maquina virtual

La siguiente pantalla no tiene ningún secreto y nos pide la zona horaria del equipo.

personalizar despliegue maquina virtual

El siguiente paso es el de configuración de red. Podemos elegir que interfaces se configuran con DHCP y cuales se configuran con una dirección estática o una combinación de ambos si tenemos más de una tarjeta de red. El paso siguiente es también relacionado con la red y consistirá en configurar los servidores  DNS.

personalizar despliegue maquina virtual

El paso final es el habitual de revisar los parámetros antes de finalizar la creación del guest customization specification.

personalizar despliegue maquina virtual

Desplegar una plantilla y personalizarla

Utilizando el guest customization specification que acabamos de crear, desplegaremos la plantilla.

Haremos click derecho encima de la plantilla y seleccionaremos Deploy VM from this Template

desplegar template vmware

Se nos pedirá el nombre que queremos poner a la maquina virtual en el inventario.

desplegar template vmware

El siguiente paso nos pide la ubicación de la máquina virtual.

desplegar template vmware

A continuación, se nos pedirá el datastore donde queremos desplegar la máquina virtual.

desplegar template vmware

El siguiente paso entra directamente en la personalización de la máquina virtual que estamos desplegando.

desplegar template vmware

Se nos permitirá elegir una especificacion de personalización de las que ya existen. En este caso, elegiremos la que hemos creado en el paso anterior.

desplegar template vmware

Revisamos los parámetros y aceptamos si estamos de acuerdo.

desplegar template vmware

Hemos visto como desplegar maquinas virtuales desde una plantilla nos permite disponer de forma ágil, de máquinas virtuales que nacen “iguales” ahorrándonos el paso de instalación del sistema operativo, y que en cuestión de minutos, podemos disponer de varias maquinas virtuales con diferentes hostnames, configuración de red, etc. Se trata de conceptos básicos, pero para quien no quiera meterse en formas de despliegue más complicadas (Orchestrator), le servirá de sobra.

El tiempo de despliegue de la máquina virtual que he usado en el ejemplo ha sido de 3 minutos. En almacenamientos de mayor categoría que el de mi laboratorio, con tecnología flash, se puede disponer de máquinas virtuales listas para la acción en pocos segundos.

desplegar maquinas virtuales

Borrar maquinas virtuales

Para borrar una máquina virtual en VMware, haremos click derecho sobre ella y seleccionaremos Delete From Disk. Si elegimos Remove from Inventory, la máquina virtual desaparecerá del inventario de vCenter, pero permanecerá en el datastore intacta.

Power States

Las maquinas virtuales en VMware pueden tener diferentes estados

  • Encendida (Power On) – La máquina virtual se encuentra en funcionamiento. Una máquina virtual encendida consume recursos de CPU, memoria, disco y red en el hipervisor donde se esté ejecutando.
  • Apagada (Power Off) – La máquina virtual se encuentra apagada y no está consumiendo recursos en el hipervisor. Sin embargo, la máquina virtual sigue consumiendo recursos de disco (espacio) en el almacenamiento donde se encuentre.
  • Suspendida (Suspended) – La máquina virtual se encuentra en estado suspendido. Su memoria RAM se ha volcado a disco duro y después la máquina virtual se ha apagado. Al encenderla, volverá al mismo punto en que estaba antes de suspenderla. Es el equivalente al suspender de un equipo portátil normal.

Además existen los siguientes comandos que hacen cambiar de estado a la maquina virtual:

  • Reset – Es el equivalente a dar un botonazo a la máquina virtual. El reset desconectará las imágenes de CD que tenga conectadas desde la consola la maquina virtual, igual que un power off – power on.
  • Shut Down Guest OS – Manda una orden a las VMware tools para que envíen una señal de apagado ACPI. Esta señal equivale a un apagado ordenado del equipo. Es la opción preferida por delante del apagado de botonazo.
  • Restart Guest OS – Manda una orden a las VMware tools para que envíen una señal de reinicio ACPI. Esta señal equivale a un reinicio desde el sistema operativo y es preferible a  realizar un reset.

 

 

Leave a Comment

Your email address will not be published. Required fields are marked *