Veeam Backup Free Edition ha sido la herramienta gratuita de Veeam más popular, en su mayoría gracias a su funcionalidad VeeamZIP: capacidad para realizar backups completos interactivos de una cantidad ilimitada de VMs. Sin embargo, VeeamZIP siempre ha tenido una limitación pequeña pero irritante: la incapacidad de programar la realización de backups regulares. De hecho, debido al hecho de que VeeamZIP solo puede ser activada de manera interactiva, simplemente no hay medios en la interfaz del usuario para programarla como a los trabajos de backup regulares. Si le ha sucedido esto, se alegrará al saber que a partir de la Actualización 2, ¡éste ya no será el caso! En áreas como los foros de Veeam, nuestro compromiso en Twitter y demás áreas; hemos reconocido la inquietud y decidido abordarla mediante la disponibilidad de cmdlet de Start-VBRZip PowerShell en Free Edition.
Cómo funciona
Como se indicó anteriormente, la funcionalidad principal de Veeam Backup Free Edition es la capacidad de realizar backups con VeeamZIP de sus VMs (y, por supuesto, recuperar VMs, archivos de invitados y elementos de aplicaciones desde dichos backups). VeeamZIP siempre produce un archivo de backup completo (.vbk) que actúa como un punto de restauración independiente. Free Edition le permite almacenar el archivo de backup en un repositorio de backup, en una carpeta local o en un almacenamiento de red.
Cuando realiza un backup con VeeamZIP, puede comenzar el proceso de backup de la VM seleccionada de manera inmediata. Este tipo de backup requiere de una configuración mínima, y como tal es extremadamente fácil de activar manualmente.
Con la actualización 2, ahora puede escribir un script simple de PowerShell (aquí para VMware y aquí para Hyper-V) que inicia la actividad de VeeamZIP para una VM seleccionada, y establece el programa que usted desee para la misma mediante el Programador de Windows. ¡Incluso hemos creado el siguiente script de muestra que no solo activará los backups de VeeamZIP de las VMs requeridas, sino que también le enviará por correo electrónico un informe con un formato agradable con los resultados del backup!
Parámetros del script
El script es capaz de realizar un backup ad-hoc de las VMs seleccionadas que se alojan tanto en el host independiente como en el clúster o en el servidor de vCenter. Antes de ejecutar el script, debe proveer tres parámetros obligatorios: nombres de las VMs a las cuales se les realizará backup, los host donde se alojan dichas VMs y el directorio donde se deben almacenar los archivos de backup. Tenga en cuenta que este script fue actualizado el 18/5 debido a los comentarios.
##################################################################
# Variables definidas por los usuarios
##################################################################
# Nombres de las VMs a las cuales se les realizará backup separados por coma (obligatorio). Por ejemplo, $VMNames = “VM1”,”VM2”
$VMNames = ""
# Nombre del host de vCenter o del host independiente en las cuales se alojan las VMs a las que se les realizará backup (obligatorio)
$HostName = ""
# Directorio en el cual se almacenarán los backups de las VMs (obligatorio; por ejemplo, C:\Backup)
$Directory = ""
De manera opcional, puede cambiar el nivel de compresión y la retención deseada, desactivar el quiescence de VMware, activar el cifrado o incluso las configuraciones de notificaciones:
# Nivel deseado de compresión (opcional, valores posibles: 0 - Ninguno, 4 - Deduplicación simple, 5 - Óptimo, 6 - Alto, 9 - Extremo)
$CompressionLevel = "5"
# Desactivar VM cuando se toma una snapshot (opcional; las Herramientas de VMware o los Componentes de integración de Hyper-V son necesarios para esta opción en el SO del invitado; valores posibles: $True/$False)
$EnableQuiescence = $True
# Proteger backup resultante con una clave de cifrado (Opcional; $True/$False)
$EnableEncryption = $False
# Clave de cifrado (opcional; ruta a una cadena segura)
$EncryptionKey = ""
# Configuración de retención (opcional; de manera predeterminada, los archivos de VeeamZIP no son eliminado y se conservan en la ubicación especificada durante un período indefinido de tiempo.
# Valores posibles: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = "Never"
Si desea obtener un informe por correo electrónico una vez finalizado el backup, debe completar de manera adicional la siguiente configuración de notificaciones.
##################################################################
# Configuración de notificaciones
##################################################################
# Activar notificaciones (opcional)
$EnableNotification = $True
# Correo electrónico al servidor SMTP
$SMTPServer = ""
# Correo electrónico DE
$EmailFrom = ""
# Correo electrónico PARA
$EmailTo = ""
# Asunto del correo electrónico
$EmailSubject = ""
El informe por correo electrónico resultante lucirá de la siguiente manera:
Name | Start Time | End Time | Result | Details |
CentOS-tiny_2015-03-26T180459 | 3/26/2015 6:04:59 PM | 3/26/2015 6:07:17 PM | Warning | Processing finished with warnings at 3/26/2015 6:07:13 PM Cannot use VMware Tools quiescence because VMware Tools are not found. |
CentOS-tiny_replica_2015-03-26T180720 | 3/26/2015 6:07:20 PM | 3/26/2015 6:11:20 PM | Success | Processing finished at 3/26/2015 6:11:18 PM |
Todas las configuraciones anteriormente mencionadas pueden ser configuradas mediante el ajuste de ciertas variables en sus valores correspondientes. Por ejemplo, para activar el cifrado, debe establecer un valor $True (booleano) a la variable $EnableEncryption, y proveer la clave de cifrado (consulte el siguiente capítulo). Además, si desea que los archivos de backup se eliminen después de dos semanas, debe establecer el valor “In2Weeks” (cadena) en la variable $Retention, etc. No hay necesidad de recordar qué hace cada una de las variables y qué valores son aceptables. Para su conveniencia, el script de muestra incluye una descripción breve de cada variable.
Cifrado
Volviendo al cifrado, la seguridad de los datos es crítica para la estrategia de backup. Los datos del backup deben ser protegidos contra el acceso no autorizado, especialmente cuando se respaldan datos sensibles de VMs en una ubicación remota o se los archiva en cintas. Para mantener sus datos a salvo, puede cifrar sus backups de VeeamZIP. Como se explicó anteriormente, se requiere de la selección de un archivo que contenga la contraseña del cifrado.
Por supuesto, puede proveer la contraseña a un script como una simple cadena de texto. Sin embargo, las cadenas regulares son inseguras (por decir lo menos), ya que son almacenadas en la memoria como un texto simple. Como resultado, la mayoría de los cmdlets de PowerShell no aceptarán las contraseñas en esta forma.
Una cadena segura es una mejor opción. Este tipo es igual a la cadena regular, pero su contenido está cifrado en la memoria. Utiliza un cifrado reversible para que la contraseña pueda ser descifrada cuando sea necesario, pero solo por el principal que la haya cifrado. Para crear una cadena segura, necesita abrir la consola PS e ingresar las siguientes dos líneas. Cuando se ejecuta, el código le solicitará una contraseña y, a continuación, guardarla como cadena segura en un archivo:
$SecurePassword =
Read-Host -Prompt
"Enter password" -AsSecureString
$SecurePassword |
ConvertFrom-SecureString
> “Directory where secure string should be stored; C:\SecureString.txt, for instance”
Después, especificar la ruta del archivo recientemente creado en el script principal:
# Proteger backup resultante con una clave de cifrado (Opcional; $True/$False)
$EnableEncryption = $True
# Clave de cifrado (opcional; ruta a una cadena segura)
$EncryptionKey = "C:\SecureString.txt"
Programación del script
Antes de programar el script, asegúrese de intentar iniciarlo manualmente para asegurarse que tenga el rendimiento esperado.
La manera más fácil de programar el script para realizar backups periódicos automáticamente es utilizar el Programador de Tareas de Windows. Simplemente diríjase a la herramienta Programador de Tareas y cree una nueva tarea básica:
Asigne un nombre y una descripción a la misma para poder recordar fácilmente la función de dicha tarea.
La siguiente página es el Desencadenador de la Tarea. Es muy básico y claro. Las opciones disponibles son bastantes flexibles (desde la ejecución de backups varias veces al día o una vez al mes), por lo que puede especificar cualquier valor que cumpla con sus requisitos de RPO. La mayoría de las personas utilizan los backups diarios:
Establezca la hora de inicio de la tarea para las horas no laborales. En este ejemplo, la tarea se ejecuta cada noche a las 22:00 PM comenzando el 22 de abril de 2015.
En la posterior página de Acciones, especifique que desea que la tarea programada Ejecute un programa y haga clic en Siguiente.
En el panel de Ejecutar un programa, coloca el siguiente comando en Programa/script:
Powershell –archivo “Ruta al archivo Veeamzip.ps1”
¡Eso es todo! Pero es posible que queramos abrir la tarea una vez creada para realizar un par de cambios adicionales. Para hacerlo, seleccione el diálogo Abrir las propiedades de dicha tarea cuando hago clic en finalizar:
Dado que la tarea se ejecutará en un servidor, donde es posible que el usuario no haya iniciado sesión cuando se realiza la tarea, resulta útil activar la tarea para que se ejecute independientemente si el usuario inició sesión o no asociando las credenciales del usuario a la tarea.
Una vez finalizado, haga clic derecho sobre el trabajo y seleccione Ejecutar para asegurarse que la tarea se complete de manera adecuada:
¡PowerShell les ofrece a los usuarios lo que siempre desearon de Veeam Backup Free Edition!
Ahora que está preparado con esta nueva y excelente capacidad, debería poder lograr el tan deseado objetivo: realizar backups programados con el uso de Veeam Backup Free Edition, el cual ofrece muchas más funciones de backup y recuperación que las soluciones alternativas de backup gratuitas basadas en scripts.