Consolidar VM al borrar snapshot con powercli

Siguiendo la estela de los scripts de snapshot, recordamos que creamos uno que nos decía los que teníamos operativos en la plataforma (aquí), y otro que nos los eliminaba pasados unos días (aquí), y ambos script nos mandaban un mail para avisarnos de la finalización de la tarea.

Os voy a poner el ultimo que será mas bien un pequeño anexo al último de los scripts, y es buscar que maquinas necesitan consolidar sus disco y si lo necesitan los consolida para evitar problemas de un futuro.

Voy a explicar cómo funcionan los snapshot y así os pongo en antecedentes de el porque a veces se necesita consolidar los discos.

Cuando toma una snapshot, captura el estado de la configuración de la máquina virtual y el disco virtual. Si está tomando un snapshot de la memoria, también captura el estado de la memoria de la máquina virtual. Estos estados se guardan en archivos que residen con los archivos base de la máquina virtual.

Hacer un take snapshot crea archivos .vmdk , -delta.vmdk , .vmsd y .vmsn . De forma predeterminada, el primer y todos los discos delta se almacenan con el archivo .vmdk “original” . Los archivos .vmsd y .vmsn se almacenan en el directorio de la máquina virtual. Hago este apunte porque a veces tenemos separados los discos en diferentes datastores

Archivos delta

Como sabemos el .vmdk es el que puede escribir el sistema operativo,  nuestro disco “original”. Bien, el disco delta representa la diferencia entre el estado actual del disco virtual y el estado que existía en el momento en que se tomó el snapshot anterior. Cuando hacemos un snapshot, se conserva el estado del disco virtual, el sistema operativo invitado deja de escribir en él y delta, que sería como el disco actual.

Un disco delta tiene dos archivos. Un archivo que contiene información sobre el disco virtual, y la información de la relación disco original-discos delta. El otro es un archivo correspondiente que contiene los datos sin procesar.

Archivo flat

Un archivo -flat.vmdk que es uno de los dos archivos que componen el disco base. El archivo flat contiene los datos sin procesar del disco base.

Archivo vmsd

El archivo .vmsd, es la bbdd de snapshot y contiene información sobre el diseño del snapshot y apunta a nuestro delta de nuestra máquina virtual. Esta base de datos la consulta nuestra plataforma, y enumera las snapshots de la máquina virtual.

Archivo vmsn

Un archivo .vmsn que incluye el estado activo de la máquina virtual. La captura del estado de la memoria de la máquina virtual nos permite volver a un estado de máquina virtual encendida. Con los snapshots que no son de memoria, solo puede volver a un estado de máquina virtual apagada. Las snapshots de memoria tardan más en crearse que las snapshots que no son de memoria. El tiempo que tarda el ESXi en escribir la memoria en el disco depende de la cantidad de memoria que la máquina virtual esté configurada para usar.

La presencia de discos delta redundantes puede afectar negativamente al rendimiento de la máquina virtual. Podemos combinar estos discos sin afectar una dependencia de datos. Después de la consolidación, se eliminan los discos redundantes, lo que mejora el rendimiento de la máquina virtual y ahorra espacio de almacenamiento.

La consolidación de snapshots es útil cuando los discos de snapshots no se comprimen después de una operación Eliminar o Eliminar todo. Esto puede suceder, por ejemplo, si elimina un snapshot, pero su disco asociado no se confirma en el disco base.

Una vez explicado el concepto base de que compone un snapshot.

Con esta linea comprobamos qué máquinas virtuales necesitan consolidación

Get-VM | Where-Object {$_.Extensiondata.Runtime.ConsolidationNeeded}

Después de eso, podemos consolidar todas las máquinas virtuales que lo necesitan

Get-VM | Where-Object {$_.Extensiondata.Runtime.ConsolidationNeeded} | foreach {$_.ExtensionData.ConsolidateVMDisks_Task()}

Estas 2 líneas podemos agregarlas a los scripts anteriores y hacer el informe completo.

Espero que os sirva

Deja un comentario