Magazine

VMware vSphere: Archivos de una máquina virtual

Publicado el 12 enero 2015 por Pipearaque

Hola que tal

Como muchos conocerán, una máquina virtual o "vm" es un contenedor por software que permite instalar un sistema operativo y aplicativos. También se puede definir como un conjunto de hardware virtual en donde se instala un sistema operativo y aplicativos. También es cierto que una máquina virtual es 100% software y reproduce ciertos atributos x86, como CPU, RAM, Discos, Red, etc.

Cuando se crea una máquina virtual, en el datastore elegido como destino se creará un folder y dentro de este se almacenarán archivos que la componen. El folder tendrá como nombre el dado a la máquina virtual. Casi que todos los archivos dentro del folder comenzarán o tendrán el nombre dado a la máquina virtual.

Archivos de una máquina virtual

Donde VM_name es el nombre de la máquina virtual. Si por ejemplo se crea una máquina virtual llamada Andrés01-1, en el inventario de vCenter Server se vería bajo ese nombre:

El Folder de la máquina virtual también debe reflejar esto mismo. Finalmente los archivos de la VM deberían casi todos tener este nombre:

Descripción de los archivos de las máquinas virtuales
  • Información de configuración, tales como Advanced power settings, resoruce settings, vmware tools settings, power managment options.
  • Settings de Hardware Virtual.
  • Settings avanzados de la máquina virtual.

Una vista de cómo se constituye este fichero es la siguiente:

La fórmula de .vswp es:

.vswp = RAM Asignada - RAM Reservada

Donde:

  • RAM Asignada es la memoria RAM configurada a una máquina virtual. Esta memoria podría ser menor, igual o mayor a la memoria física del ESXi.
  • RAM Reservada: Reservar memoria es garantizar memoria física a una máquina virtual. La reservación por defecto es cero salvo que se especifique lo contrario.

Si por ejemplo se tiene una máquina virtual con 8GB y su reservación es cero, el archivo de intercambio será de 8GB. Si se reservara 2 GB de RAM en el mismo ejemplo ahora se tiene un tamaño .vswp de 6GB. El archivo Swap es un parámetro que se tiene en cuenta en el momento de diseñar el tamaño de los datastores. Estos archivos pueden ser migrados si se requiere. Para conocer cómo visitar el siguiente post:

Finalmente es necesario aclarar dos cosas. La primera es que hacer swapping afecta negativamente el performance de las máquinas virtuales. Es mucho más rápido leer/escribir en memoria física que en disco. Algunos administradores de VMware construyen un datastore con discos de estado sólido SDD para albergar los .vswp de las máquinas virtuales y así reducir el impacto de leer/escribir en disco. Lo segundo y también importante es que aunque los .vswp son creados junto a las máquinas virtuales, el que realmente lo emplea son los ESXi. Cuando un Host agota toda su memoria física el último método de reclamación de memoria es hacer swapping y es aquí cuando entran a funcionar estos ficheros. Dicho de otra forma, cuando una máquina virtual es encendida, un archivo .vswp es creado, el cual puede ser empleado en vez de la memoria física si el ESXi agota todo este recurso.

Finalmente es importante resaltar que si una máquina virtual no puede crear este fichero entonces no puede ser encendida. Por ejemplo, si se tiene una VM con 32 GB de RAM y reside enun datastore de 8 GB de tamaño, lamentablemente no hay espeacio para crear este fichero y la máquina virtual no se puede encender. Para conocer cómo remediar esta situación, podrá ver el siguiente post:

Cómo impedir que una Máquina virtual cree el .vswp

  • Cantidad de vCPUs.
  • Tamaño de la Memoria RAM.

Entre más vCPUs o memoria RAM sea asignada a una máquina virtual mayor es el memory overhead. En este caso no hay una fórmula pero si una tabla que muestra la cantidad de memory overhead necesaria para que una máquina virtual pueda encender:

Desde la versión 5.0 VMware introduce el fichero MVX VSWP, el cual permite reducir la cantidad de memory overhead del ESXi y llevarla a disco, aumentando así el radio de consolidación de las máquinas virtuales por Host. Es decir que al igual que con el .vswp. el vmx-VM_name.vswp será usado solo por el ESXi cuando la memoria física se haya agotado.

BIOS File (.nvram) : El archivo de BIOS es un fichero en binario cuya función es idéntica a la que realiza la BIOS o EFI de un servidor. Almacena también datos de configuración de la BIOS, como password, orden de arranque, etc. Si este fichero se elimina o pierde VMware crea uno desde cero en el próximo arranque de la máquina virtual.

Para información acerca de cómo ingresar a la BIOS de una máquina virtual, visitar:

Por defecto VMware mantiene hasta 6 archivos de log al mismo tiempo. Para más información acerca de los ficheros de Logs visitar el siguiente Post:

Para conocer más acerca de RDM visitar:

  • Archivo descriptor (está siendo explicando en este punto) y cuya extensión es solo .vmdk.
  • Archivo plano (en donde se guardarán los datos) y cuya extensión es flat.vmdk.

A continuación un ejemplo de cómo se vería este archivo:

Al observar la figura 6, del archivo .vmdk también se puede decir que es muy liviano en cuanto a peso se refiere ya que solo contiene datos que describen la geometría y tamaño del disco, tales como un apuntador hacia el flat.vmdk, información sobre cilindros, heads, sectores y tipo de adaptador, entre otros. De forma sencilla el .vmdk describe al disco -flat.vmdk.

Existirá un .vmdk por cada disco virtual asignado a una máquina virtual. Si por ejemplo una máquina virtual cuenta con 16 discos virtuales entonces contará con 16 .vmdk. Esto mismo aplica para el -flat.vmdk.

Disk Data File (-flat.vmdk) : El fichero de datos de disco es donde se guardan finalmente los datos y es el segundo componente de un disco virtual, aparte del descriptor o .vmdk. Este archivo tiene un peso que depende tanto del tamaño del disco virtual como también del tipo de disco (Thin o Thick).

  • Cuando se saca una máquina virtual de la suspensión se escribe el contenido del .vmss en la memoria de la máquina virtual pero el fichero .vmss no es eliminado en ese momento. Esto significa que el vmss seguirá existiendo incluso si el sistema operativo de la máquina virtual es reiniciado. Una forma de eliminar el contenido del fichero .vmss es reiniciando o apagando y volviendo a encender la máquina virtual. En el ejemplo anterior, si una VM con 512 MB es suspendida, el .vmss será de aproximadamente 512 MB. Al ser sacada de la suspención el .vmss de 512 MB seguirá existiendo en el datastorer solo hasta cuando sea apagada o reiniciada la máquina virtual.
  • Si una máquina virtual es suspendida de nuevo y el archivo .vmss ya existía, éste será reutilizado en vez de eliminarlo y recrear otro. En el ejemplo, si una VM con 512 MB es suspendida se crea un .vmss con aproximandamente 512 MB. Al sacarlo de la suspensión el fichero sigue existiendo solo hasta cuando se apague o reinicie la VM. Si la máquina se vuelve a suspender y el .vmss ya existía entonces este mismo será reutilizado.
  • Si el archivo .vmss es eliminado mientras la VM se encuentre suspendida, la máquina virtual iniciará normalmente pero no desde el estado guardado con la suspensión.

Snapshot Data File (.vmsd): El fichero de datos de snapshot es un archivo metadata en texto plano que almacena información acerca de los snapshots tomados a una máquina virtual. Sin importar cuántos snapshots sean tomados a una VM tan solo existirá un .vmsd, el cual va creciendo en tamaño a medida que sean tomados snapshots a la máquina virtual.

.vmsd almacena:

  • El nombre del .vmsn y delta.vmdk de cada snapshot tomado a una máquina virtual.
  • Nombres de los snapshots.
  • Descripción de los snapshots.
  • UID de los snapshots.

Es importante resaltar también que si no hay snapshots este fichero no contiene nada y por ende pesa 0 bytes.

En un ejemplo se tiene una máquina virtual llamada Andres01-1 y sobre esta han sido tomado los siguientes snapshots:

  • Nombre: Snap1. Descripción: Test1.
  • Nombre: Snap2. Descripción: Test2.
  • Nombre: Snap3. Descripción: Test3.

El fichero .vmsd se vería de la siguiente manera:

Finalmente aunque los snapshots sean eliminados el .vmsd retiene la información del último UID y al crear nuevos incrementa en 1 ese valor. En el mismo ejemplo al ser creados tres snapshots se tiene hasta el UID=3. Este sería el último UID en caso de ser eliminados. Si se crea un nuevo snapshot este tendrá como UID=4.

Snapshot State File (.vmsn): Cuando se desea tomar un snapshot opcionalmente cabe la posibilidad de capturar también el estado de la memoria de la máquina virtual. Si esto es así en el fichero .vmsn se almacena el estado de la memoria de la VM.

Se creará un .vmsn por cada snapshot que se tome (si la opción "snapshot the virtual machine's memory") es seleccionada. Estos ficheros serán eliminados automáticamente al eliminar los snapshots.

El tamaño de este archivo es aproximadamente igual al de la memoria RAM asignada a la máquina virtual ya que se copia el con tenido de la memoria como también la memoria vacía.

En un ejemplo suponer que se tienen 3 snapshots tomados con las siguientes características:

  • Nombre: Snap1. Descripción: Test1. Sin Memoria.
  • Nombre: Snap2. Descripción: Test2. Con memoria.
  • Nombre: Snap3. Descripción: Test3. Con Memoria.

Es evidente que al no capturar la memoria se ahorra espacio en el datastore pero su funcionalidad a veces inclina la balanza a utilizarlo. Suponer que actualmente se está en el Snap 3 y desea saltar al Snap 1. Como el Snap 1 no tiene memoria al saltar a ese punto la máquina virtual se apaga, ya que no hay memoria que sustente el estado activo de la VM. A continuación la máquina virtual es encendida y despúes de 5 minutos se salta al Snap 2. En este caso la máquina virtual no se apaga y se muestra el estado de la máquina virtual del Snap 2.

Snapshot Disk File (delta.vmdk): Una máquina virtual tendrá tantos .vmdk y -flat.vmdk como discos virtuales tenga. Si por ejemplo una VM cuenta con tan solo un disco virtual esta tendrá dos archivos:

Si a esta máquina virtual se le toma un snapshot el disco original (flat.vmdk) es puesto en solo lectura y todos los nuevos datos serán almacenados en un nuevo fichero conocido como el delta.vmk. El tamaño inicial de estos archivos es de 16 MB y crecerán bajo demanda en incrementos de 16 MB.

Existirá un delta.vmdk y un descriptor propio de ese fichero por cads snapshot creado. Si por ejemplo una máquina virtual cuenta con dos snapshots sus archivos se verían de la siguiente manera:

En la figura 9 notar:

Número 1: Hace referencia al .vmdk y flat.vmdk originales de la máquina virtual.

Número 2: 000001.vmdk y 000002.vmdk. Son los archivos descriptores de los archivos 000001-delta.vmdk y 000002-delta.vmdk respectivamente.

Número 3: 000001-delta.vmdk y 000002-delta.vmdk son los archivos delta en donde son guardados los cambios.

Finalmente, los archivos delta son eliminados automáticamente al eliminar los snapshots.

Nota: No todos los archivos de una máquina virtual fueron tratados en este post.

Un saludo!!!

VMware vSphere: Archivos de una máquina virtual

Soy Andrés Felipe Araque D. Ingeniero dse Telecomunicaciones y apasionado por la Virtualización y VMware.

VMware vSphere: Archivos de una máquina virtual

Tags: Máquinas Virtuales


Volver a la Portada de Logo Paperblog