Vmware: Qué son y como funcionan los snapshot


Ya que me acaban de salvar la vida a estas horas de la madrugada aprovecho y comparto algo de información sobre los snapshot de vmware.

Un snapshot (o imagen instantánea) de un disco es una copia del archivo de disco de la máquina virtual (VMDK) en un momento concreto. Conserva el sistema de archivos del disco y la memoria del sistema de nuestra VM, permitiéndonos volver a esa imagen guardada o snapshot en el caso de que algo vaya mal. Los snapshots pueden ser auténticos salvavidas cuando actualizamos o parcheamos aplicaciones y servidores. Este artículo repasa todo lo que hay que saber sobre el uso de los snapshots con VMware, incluyendo su descripción, funcionamiento y técnicas avanzadas.

Espacio en disco utilizado por un snapshot y ritmo de crecimiento
Si hemos creado más de un snapshot en nuestra máquina virtual (VM), entonces tenemos múltiples puntos de restauración disponibles para revertir o volver a la situación anterior. Al crear un snapshot, lo que anteriormente era grabable se convierte en archivo de solo lectura desde ese momento. Utilizando la tecnología in-file delta se crean nuevos ficheros que contienen todos los cambios (delta) efectuados a los archivos del disco original.

El tamaño de un fichero snapshot no puede rebasar nunca el tamaño del fichero del disco original. Cada vez que se cambia un bloque del disco, se crea un snapshot en el fichero delta, el cual se actualiza de forma sencilla a medida que se efectúan los cambios. Si cambiamos todos los bloques del disco en el servidor después de hacer un snapshot, la instantánea seguirá teniendo el mismo tamaño que el archivo del disco original. Pero hay un overhead adicional (espacio extra) en el disco que contiene la información utilizada para gestionar los snapshots. El overhead máximo del disco varía y depende del tamaño del bloque del Sistema de Archivos de la Máquina Virtual:
Tamaño del bloque
Tamaño máximo  VMDK
Overhead máximo
1 MB
256 GB
2 GB
2 MB
512 GB
4 GB
4 MB
1024 GB
8 GB
8 MB
2048 GB
16 GB
El espacio necesario para el overhead puede causar un fallo en la creación de  snapshots si el disco virtual de la VM se acerca al tamaño máximo VMDK para un volumen VMFS. Por ejemplo, si un disco virtual de VM tiene 512 GB en un volumen VMFS con un tamaño de bloque de 2 MB, entonces el tamaño máximo del snapshot sería de 516 GB (512 GB + 4 GB), lo que superaría el tamaño máximo VMDK  de 512 GB para el volumen VMFS y, por consiguiente, fallaría la creación del snapshot.
MÁS INFORMACIÓN SOBRE SNAPSHOTS CON VMWARE Y COPIAS DE RESPALDO

  • Máquina virtual y guía para snapshots con VMware
  • Preguntas frecuentes sobre respaldo de servidores virtuales y su recuperación
  • Tutorial sobre respaldo de servidores virtuales: aprenda sin sufrir
  • Solución de problemas de rendimiento de VMs y complicaciones en la gestión de la capacidad
  • Tendencias en soluciones de almacenamiento en centros de datos

Por tanto, si tiene usted previsto usar instantáneas, deberá crear VMs con un tamaño de disco virtual inferior al tamaño máximo VMDK por la diferencia de tamaño con el máximo overhead (por ejemplo: 512 GB – 4GB = 508 GB). Los archivos del snapshot serán inicialmente pequeños (16 MB), pero irán creciendo a medida que vayamos escribiendo en los archivos del disco de la VM.
Los snapshots crecen por incrementos de 16 MB para ayudar a reducir los conflictos de reserva SCSI. Cuando se hacen peticiones para cambiar un bloque en el disco original, éste se modifica en el fichero delta. Si el bloque de disco previamente cambiado en un fichero delta se vuelve a modificar, no aumenta el tamaño del fichero delta porque, en realidad, sólo se actualiza el bloque existente en dicho fichero.
El ritmo de crecimiento de un snapshot estará determinado por la cantidad de actividad de escritura en disco que se produzca en el servidor. Los servidores que tienen aplicaciones intensivas de escritura en disco, como SQL y Exchange, experimentarán un crecimiento rápido en el tamaño de sus  archivos snapshot. Por el contrario, los servidores de contenido esencialmente estático y con poca escritura en disco, como los servidores Web y de aplicaciones, crecerán a un ritmo mucho más lento. Cuando creamos múltiples snapshots se crean también nuevos ficheros delta y los anteriores ficheros delta quedan en modo de sólo lectura. Si tenemos múltiples snapshots, cada fichero delta puede crecer potencialmente tanto como el archivo del disco original.
Distintos tipos de ficheros snapshot

  • –delta.vmdk file: Este es el fichero diferencial que se crea cuando hacemos una instantánea de una VM. Se conoce también como fichero redo-log (fichero de recuperación de datos). El fichero delta es un mapa de bits de los cambios efectuados en el VMDK base, y por ello no puede ser nunca mayor que el VMDK base (con excepción del espacio extra reservado para el overhead del snapshot). Se crea un fichero delta por cada snapshot que tomemos en una VM. También se crea un fichero delta extra de ayuda, donde se guardan todos los cambios del disco al eliminar o revertir un snapshot. Estos archivos son eliminados automáticamente al borrar o revertir el snapshot con Snapshot Manager.
  • .vmsd file: Este fichero se utiliza para almacenar metadatos e información sobre los snapshots. Es un fichero en formato texto que contiene información como el nombre que muestra el snapshot, identificador único (UID), nombre del archivo del disco, etc. Inicialmente, se trata de un fichero de 0 bytes hasta que se crea el primer snapshot de una VM. A partir de ese momento va  poblando el fichero y actualizándose cada vez que se toman nuevos snapshots.
    Este fichero no se limpia completamente después de efectuar las instantáneas. Si borramos un snapshot, el fichero sigue incrementando el último identificador único del snapshot para el  snapshot siguiente.
  • .vmsn file: Este es el archivo de estado del snapshot, donde se guarda el estado de ejecución exacto de una máquina virtual en el momento de hacer dicho snapshot. Este fichero puede ser pequeño o grande, dependiendo de si decidimos conservar la memoria de la VM como parte del snapshot. Si optamos por conservar la memoria de la VM, entonces este fichero tendrá unos pocos megabytes más que la memoria RAM máxima asignada a la VM.
    Este archivo es similar al fichero de estado suspendido de VMware (.vmss). Por cada snapshot tomado en la VM se crea un fichero .vmsn; estos ficheros se borran automáticamente al eliminar el snapshot.

Cómo crear snapshots?
Podemos crear snapshots con Snapshot Manager en el vSphere Client, o mediante la utilidad de línea de comandos vmware-cmd directamente en la consola ESX Service Console o bien a través de un vSphere CLI. Este comando permite apagar o encender la máquina virtual. También se puede suspender mientras se crea la instantánea. Si la VM está apagada, no tendremos la opción de hacer un snapshot de la memoria de la VM.

Los snapshots pueden ser gestionados mediante el vSphere Client, ya sea conectándose directamente a un servidor ESX o conectándose a vCenter Server. Si decidimos utilizar el interfaz de línea de comandos (CLI), la sintaxis para crear snapshots será la siguiente: vmware-cmd createsnapshot , i.e. vmware-cmd myvm1.vmx createsnapshot snap1 ‘before upgrade’ 1 1.
Las opciones de quiesce (modo inactivo) y memoria son 1 para sí o 0 para no. Si elegimos 1 para la función quiesce, se desactivará la escritura en el sistema de archivos antes de hacer el snapshot. Si elegimos 1 para la función memoria, se hará un snapshot del estado de la memoria de la VM. Si creamos múltiples snapshots, los anteriores se transforman en archivos de sólo lectura una vez creado el nuevo snapshot.
Cómo eliminar o revertir snapshots?
Cuando eliminamos todos los snapshots de una VM, todos los ficheros delta creados se fusionan con el archivo de disco VMDK original de la VM y luego son borrados. Si decidimos borrar solo un snapshot concreto, entonces únicamente se fusionará o unirá dicho snapshot con su “snapshot padre”. Si optamos por revertir a un snapshot específico, los actuales estados de disco y de memoria son descartados y la VM vuelve al estado revertido. El snapshot al que revertimos se convierte en el nuevo snapshot padre. No obstante, el snapshot padre no es siempre el tomado más recientemente. Si revertimos a un snapshot más antiguo, éste se convierte entonces en el padre del estado actual de la máquina virtual. El snapshot padre se denota siempre mediante la etiqueta inferior “You are here“ (Usted está aquí)en el Snapshot Manager.

Podemos borrar o revertir a snapshots anteriores mediante el vSphere Client o la utilidad de línea de comandos vmware-cmd. Snapshot Manager en el vSphere Client ofrece más flexibilidad y es más sencillo de usar que el vSphere CLI. Una distinción importante entre la opción “Revert to Snapshot” en el vSphere Client y el Snapshot Manager es que la opción “revertir” nos devuelve al último snapshot tomado, mientras que Snapshot Manager nos da la posibilidad de revertir a un snapshot específico que podemos elegir. Esta opción se denomina “Go to” (Ir a)  en Snapshot Manager.

Si utilizamos vmware-cmd, la sintaxis es la siguiente:  vmware-cmd removesnapshots, para eliminar todos los snapshots, o bien vmware-cmd revertsnapshot, para revertir la VM al padre del estado “You are here”. Este padre puede no ser necesariamente el último snapshot tomado. Sin embargo, si debemos borrar o revertir a un snapshot específico, será necesario utilizar vSphere Client.
Si revertimos a un snapshot que no incluye estado de memoria, el servidor se desconectará, y cuando lo volvamos a conectar utilizará el snapshot anterior. Si nuestro snapshot sí incluye estado de memoria, la VM pausará brevemente y volverá a los estados de disco y memoria del snapshot anterior.
En la segunda parte de este artículo hablaremos de temas avanzados sobre snapshots, que incluyen cómo especificar directorios de snapshots alternativos, cómo excluir los discos virtuales de los snapshots, espacio en disco extra necesario para borrar múltiples snapshots, localización de snapshots activos y el efecto de ejecutar snapshots en una VM.

Acerca de albertoarceti
Administrador de sistemas informáticos, y erps en la industria farmacéutica.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: