Descubre cómo el uso de PowerShell para la gestión de puntos de control en Hyper-V puede ayudarte a optimizar la administración de tu infraestructura virtualizada.
El uso de puntos de control nos permite guardar el estado de una máquina virtual (VM desde ahora) en un momento dado, permitiendo regresar al estado que tenía la VM ese momento en caso de ser necesario.
Esto puede ser de gran utilidad, si por ejemplo queremos asegurarnos de poder volver a un estado previo a la instalación de un software o de la prueba de una configuración concreta.
NOTA: Una instantánea no es un backup completo y puede causar problemas, entre otras cosas en la coherencia de los datos en la replicación de datos con AD DS y otros sistemas.
Uso de PowerShell para la gestión de puntos de control en Hyper-V
Cambiando el tipo de punto de control:
Cuando hablamos de puntos de control debemos saber que disponemos de tres tipos distintos, uno que viene configurado por defecto (el Standard), el modelo Production y el ProductionOnly.
- Punto de Control Standard: Consiste en una instantánea de VM en el que se captura el estado de RAM en ese preciso instante.
- Punto de Control de Production: Basado en el Servicio de Instantáneas de Volumen, realiza la congelación del filesystem para crear una copia de datos coherentes. No se guarda la RAM de la VM. En caso de fallar, lanzará un Punto de Control Standard.
- Punto de Control de ProductionOnly: Es como el anterior, pero en caso de fallar en el proceso, no lanzará un Punto de Control Standard.
Para configurarlos se deberá usar el comando “Set-VM”, un comando usado para configurar opciones de las VM, pasándole como parámetro la máquina virtual sobre la que se quiere actuar y el tipo de Punto de Control (CheckPoint).
Las opciones son las siguientes:
# Set-VM -Name <Nombre_VM> -CheckpointType Standard
# Set-VM -Name <Nombre_VM> -CheckpointType Production
# Set-VM -Name <Nombre_VM> -CheckpointType ProductionOnly
Y, a modo de ejemplo:
# Set-VM -Name WS2016 -CheckpointType Standard
# Set-VM -Name WS2016 -CheckpointType Production
# Set-VM -Name WS2016 -CheckpointType ProductionOnly
Creación de Puntos de Control de Hyper-V mediante PowerShell:
A continuación, debemos conocer el proceso de creación de un punto de control, que en realidad lo podemos crear de varias maneras, así que aquí comentaremos un par de ellas.
Por un lado, podemos crear un punto de control en el que solo pasamos el nombre de la VM y el sistema se encarga de todo:
# Checkpoint-VM -Name <Nombre_VM>
Siendo un ejemplo de ello:
# Checkpoint-VM -Name WS2016
Por otro lado, podemos crear el punto de control especificando el tipo:
# Checkpoint-VM -Name <Nombre_VM> -CheckpointType <Tipo>
Teniendo que dar en este caso el nombre de la máquina virtual y el “CheckpointType” de entre los descritos previamente “Standard”, “Production”, “ProductionOnly”.
Siendo un ejemplo de ello:
# Checkpoint-VM -Name WS2016 -CheckpointType Standard
Además, suelo recomendar que se compruebe lo hecho, y para ello recomiendo listar los puntos de control con el comando “Get-VMCheckpoint” para esa máquina, en este caso:
# Get-VMCheckpoint -Name WS2016
Modificación del nombre de los puntos de control:
Otro punto que nos será muy útil para gestionar los puntos de control es cambiar el nombre de un punto de control, ya que se generan con un nombre en base al tiempo y no es la mejor forma de gestionarlos, siendo mucho más cómodo guardarlos con nombres indicativos de lo que se ha hecho, como, por ejemplo, indicando que es un punto de control previo a una instalación, o actualización, etc.
Para cambiar el nombre usaremos el comando “Rename-VMCheckpoint” de la siguiente manera:
# Rename-VMCheckpoint -VMName <Nombre> -Name <Nombre_Punto_Control> -NewName <Nuevo_Nombre_Punto_Control>
Donde:
- <Nombre>: Nombre de la VM sobre la que estamos operando.
- <Nombre_Punto_Control>: Nombre del punto de control que queremos modificar.
- <Nuevo_Nombre_Punto_Control>: El nuevo nombre que queremos darle al punto de control.
Quedando en nuestro caso de la siguiente forma:
# Rename-VMCheckpoint -VMName W10ENPru01 -Name ‘W10ENPru01 – (25/05/2023 – 12:02:00)’ -NewName ‘W10ENPru01 – Pruebas’
Una vez ejecutado, como siempre digo, se debe hacer la comprobación pertinente, para lo que se podrá usar el comando:
# Getc-VMCheckpoint -VMName <Nombre>
Recuperación de un Punto de Control de Hyper-V mediante PowerShell:
La recuperación de un punto de control consiste en revertir la VM a un punto concreto del tiempo al que pertenece el punto de control que estamos aplicando.
Para ello se debe hacer un listado de los puntos que tenemos para la VM en cuestión, y para ello usaremos el comando siguiente:
# Get-VMCheckpoint -VMName <Nombre>
Siendo “<Nombre>” el nombre de la VM a la que queremos retornar al punto anterior.
Que en nuestro ejemplo queda:
# Get-VMCheckpoint -VMName WS2016
A continuación, tras seleccionar el punto de control que queremos aplicar, deberemos lanzar el comando “Restore-VMCheckpoint” con la siguiente estructura:
# Restore-VMCheckpoint -Name <Nombre_Punto_Control> -VMName <Nombre> -Confirm:$false
Siendo:
- <Nombre>: Nombre de la VM sobre la que estamos operando.
- <Nombre_Punto_Control>: Nombre del punto de control que queremos aplicar.
Quedando en nuestro ejemplo como:
# Restore-VMCheckpoint -Name ‘WS2016 – Punto Prueba’ -VMName WS2016 -Confirm:$false
Exportar Puntos de Control de Hyper-V con PowerShell:
Cuando exportamos un punto de control, lo que estamos haciendo en realidad, es crear una estructura de carpetas en las que se añaden todos los paquetes necesarios para poder mover dicha máquina virtual a otro servidor y poder desplegarlo en su nueva ubicación.
Para desplegarlo en la nueva ubicación, bastará con importar la VM y restaurar el punto de control como una máquina virtual.
Esto podría ser usado como una especie de copia de seguridad para casos extremos en los que hay que proveer de algún mecanismo de “Disaster Recovery”.
Para exportar la máquina, recomendamos empezar por listar los puntos de control disponibles para esa VM y a continuación usar el comando “Export-VMCheckpoint” con la siguiente estructura:
# Export-VMCheckpoint -VMName <Nombre> -Name <Nombre_Punto_Control> -Path <Ruta_Exportacion>
Donde:
- <Nombre>: Nombre de la VM sobre la que estamos operando.
- <Nombre_Punto_Control>: Nombre que daremos al punto de control.
- <Ruta_Exportacion>: La ruta a la que se exporta la VM.
Siendo un ejemplo de esto:
# Export-VMCheckpoint -VMName W10ENPru01 -Name ‘W10ENPru01 – Pruebas’ -Path ‘C:\Datos’
Es importante saber que los ficheros exportados tendrán el mismo tamaño que la máquina virtual de la que se ha hecho la exportación por lo que no se debe abusar de este comando.
Eliminar puntos de control de Hyper-V mediante PowerShell:
Cuando un Punto de Control no es necesario, es buena praxis eliminarlo para no llenar todo de basura. Más teniendo en cuenta que este tipo de elementos terminan por sobrecargar el servidor y hacerlo más lento.
Para hacer el borrado de puntos de control se debe hacer primero un listado de los puntos disponibles para una VM concreta:
# Get-VMCheckpoint -VMName <Nombre>
Donde “<Nombre>” es el nombre de la VM sobre el que queremos consultar.
Una vez listados, se debe seleccionar la que se quiere borrar y se deberá lanzar el siguiente comando:
# Remove-VMCheckpoint -VMName <Nombre> -Name <Nombre_Punto_Control>
Donde “<Nombre>” es el nombre de la VM sobre el que queremos borrar el punto de control y “<Nombre_Punto_Control>” es el punto de control concreto a borrar.
Un ejemplo de esto puede ser:
# Remove-VMCheckpoint -VMName W10ENPru01 -Name ‘W10ENPru01 – Pruebas’
Por último, recomiendo volver a comprobar los puntos de control mediante el comando “Get-VMCheckpoint” para comprobar que hemos eliminado el que queríamos eliminar.
Y con esto habremos hecho más o menos todo lo que se necesita realizar con este tipo de elementos.
Conclusiones:
Tal y como has podido ver en este artículo, uso de PowerShell para la gestión de puntos de control en Hyper-V, el uso de puntos de control de las máquinas virtuales te ayudará de manera notable en la administración de tu infraestructura virtualizada mediante el hipervisor de Microsoft, siendo un modelo casi igual de sencillo de usar que el de interface gráfico, aunque teniendo una ventaja frente a esta por su notable ahorro de tiempo.
Si estás interesado en este tema y quieres hacer pruebas en tu equipo de sobremesa puedes visitar el tutorial Cómo instalar Hyper-V en Windows 10, también puedes consultar el artículo Comandos Powershell para Hyper-v para aprender otros comandos de gestión de Hyper-V con PowerShell.
Además, puedes consultar otros tutoriales y artículos relacionados con Hyper-V.
¡Gracias por leernos!