En el laboratorio de hoy queremos empezar una serie de documentos técnicos basados en las operaciones básicas relacionadas con los instantáneas de máquinas virtuales o
Snapshots.
Empezaremos con la base de todo, que es un
Snapshot. Es una captura del estado y la información de una máquina virtual en un momento en el tiempo.
- El estado de funcionamiento es el estado que se encuentra nuestra máquina virtual. Si está encendida, apagada o en suspensión.
- La información de una máquina virtual son los archivos que forman la propia máquina virtual, archivos de los discos duros, memoria RAM, tarjetas de red, etc...
En una máquina virtual podremos realizar varias operaciones de gestión de
Snaps, podremos crear o eliminar
Snapshots, también podremos volver a una instantánea que sea eslabón la nuestra cadena de Snaps o consolidar los snapshot. Podemos también crear árboles o cadenas largas de snapshots.
Al crear un
Snapshot, este estará compuesto de una serie de archivos que vamos a describir a continuación, en primer lugar encontraremos los archivos llamados discos secundarios, y su formato es el siguiente.
<NOMBRE_VM>-<NUMERO>.vmdk
<NOMBRE_VM>-<NUMERO>-delta.vmdk
Los archivos de discos secundarios, se conectarán a nuestra máquina virtual
, con el formato que hemos mostrado, para cada uno de los discos virtuales que tengamos configurados. El numero que enumerará los archivos
.vmdk no tienen porqué ser consecutivos o tener coherencia alguna, este numero se aplica según la disponibilidad.
Estos nuevos discos secundarios podremos usarlos más tarde como discos primarios para discos secundarios de nuevos snapshots.
Si el tamaño de nuestro disco virtual es más grande de los 2TB, el archivo de disco secundario tendrá el siguiente formato.
<NOMBRE_VM>-<NUMERO>-sesparse.vmdk.<NOMBRE_VM>.vmdk
También encontraremos un nuevo archivo con la extensión
.vmsd, se trata de una base de datos con la información de los
Snapshots que tiene nuestra máquina virtual y es la fuente principal de información para
Snapshot Manager.
El archivo contiene una serie de entradas que definen las relaciones entre los
Snapshots y también cuales son los discos secundarios para cada uno de los snapshot.
Su formato es el siguiente.
<NOMBRE_VM>.vmsd
El archivo con extensión
.vmsn tiene la información de la configuración actual de nuestra máquina virtual.
Se mostrará en nuestro Datastore con el siguiente formato.
<NOMBRE_VM>Snapshot<NUMERO>.vmsn
El API que usa
VMware permite tanto los productos propios de VMware como a los de terceros realizar distintas operaciones sobre nuestras máquinas virtuales y con sus snapshots.
Operaciones como:
- CreateSnapshot - Permite crear un snapshot de una máquina virtual de nuestra infraestructura.
- RevertToSnapshot o Go To (GUI vSphere/VI Client) - Cambia el estado de ejecución de una máquina virtual al estado de esta snapshot.
- RemoveSnapshot - Elimina una snapshot y todos los almacenamientos asociados a el.
- RemoveAllSnapshots - Elimina todas las snapshots que tenga una máquina virtual.
- Consolidate - Fusiona toda la jerarquía del árbol de discos secundarios. (Disponible a partir de la versión vSphere 5.0)
Hemos de tener en cuenta también los requisitos de espacio en nuestro datastore, ya que los discos secundarios se sumarán al espacio usado por el disco primario del cual tienen dependencia.
La formula final será.
GB_DISCO_PRIMARIO+TAMAÑO_DISCO_SECUNDARIO+ARCHIVO_.VMSN+SOBRECARGA
Entonces solo nos faltaría ver un ejemplo de como proceder para crear un nuevo
Snapshot.
Seleccionaremos la máquina virtual en la que queremos tomar una instantánea, usando el botón secundario del ratón desplegaremos el menú y seleccionaremos la sección
Snapshot.
Después de haber seleccionado el menú
Snapshot, nos aparecerá un segundo menú donde seleccionaremos la opción
Take Snapshot...
Si estamos tomando un
Snapshot de una maquina virtual como un controlador de dominio por ejemplo, que tenga maquinas virtuales que dependan de si misma, como por ejemplo servidores
Exchange, es muy conveniente ejecutar la instantánea con los servidores parados.
Nos aparecerá la ventana llamada
Take Virtual Machine Snaps... y procederemos a rellenar las opciones en cada uno de los cuadros de text.
El cuadro de texto
Name introduciremos un nombre que nos permita identificar nuestro nuevo Snapshot.
En el cuadro de texto
Description podremos introducir una pequeña descripción de la instantánea.
Si el checkbox de
Snapshot de virtual machine's memory esta marcado, incluiremos en el nuevo snapshot un volcado del estado interno de nuestra máquina virtual.
Este procedimiento conlleva un aumento en el tiempo de creación del snapshot, pero nos permitirá la regresión al estado que tenia la máquina virtual en el momento en que se tomó la snapshot.
Marcando el checkbox
Quiesce guest file system (Needs VMwate Tools installed) conseguiremos si la máquina virtual está encendida durante el lanzamiento del snapshot, poner en modo inactivo el sistema de archivos de la máquina virtual. Esto llevará todos los datos del disco de nuestra máquina virtual a un estado optimo para poder hacer de copias de seguridad.
Finalizada la configuración presionaremos el botón
OK para lanzar nuestro Snap.
Finalizada de la toma del Snapshot, podremos comprobar que dentro de Snapshot Manager aparece la nueva instantánea.
También podemos crear una instantánea mediante linea de comandos de la
vSphere Management Assistant o
vMA, con
vmware-cmd tendremos una interfaz para realizar distintas operaciones sobre una máquina virtual. Podremos obtener información, registrar y eliminar la máquina virtual, trabajar con instantáneas, etc...
vmware-cmd [--help | -q | -v]
Server Operations
vmware-cmd -s <conn_option>
[-l |
-s register <config_file_path> [<datacenter>] [<resource_pool>] |
-s unregister <config_file_path> ]
Virtual Machine Operations
vmware-cmd <conn_option> <config_file_path>
[answer
connectdevice <device_name>
createsnapshot <name> <description> quiesce [0|1] memory [0|1]
disconnectdevice <device_name>
getconfigfile
getguestinfo <variable>
getproductinfo [product|platform|build|majorversion|minorversion]
getstate
gettoolslastactive
getuptime
hassnapshot
reset [soft|hard]
removesnapshots
revertsnapshot
setguestinfo <variable> <value>
start
suspend [soft|hard] ]
Para tomar una nueva instantánea usaremos el comando siguiente.
vmware-cmd -H <vCenter_Server> -U <usuario> -P <contraseña> --vihost <host_ESXi> /vmfs/volumes/Storage/vm/vm.vmx createsnapshot Snap_VM ‘test snapshot 11/02/2016’ 1 0
- -H <host> - Especificaremos el host ESX/ESXi o el servidor de vCenter.
- -U <usuario> - Nombre de usuario con el que nos conectaremos al host, también tiene que tener permisos para realizar la operación.
- -P <contraseña> - Contraseña del usuario que hemos especificado.
- --vihost <esxi_host> - Especificaremos el host de destino si la información especificada en -H es un servidor de vCenter.
- createsnapshot <Nombre_SNAP> <Descripción_SNAP> quiesce [0|1] memory [0|1]
Con la
PowerCli conectamos con el servidor host del que depende la máquina virtual a la que queremos realizar la instantánea con el comando siguiente.
Connect-VIServer NOMBRE_O_IP_HOST -user NOMBRE_USUARIO -password CONTRASEÑA
Una vez hayamos conectado con el host ejecutaremos el comando siguiente para realizar la instantánea.
Get-VM –name NOMBRE_VM | New-Snapshot –name NOMBRE_SNAPSHOT
Podremos comprobar en Snapshot Manager que efectivamente el Snapshot ha sido creado correctamente.
Desde la Cli también podremos tomar una instantánea usando el comando siguiente.
vim-cmd vmsvc/snapshot.create vmid NOMBRE_SNAPSHOT
Espero os sea de utilidad.
Enlaces relacionados