Ya han pasado 4 años desde la creación de este blog, en Mayo de 2015. Por esas fechas, el contenido que subia era indiscriminado, pero siempre centrado en temas de tecnología. Básicamente, me fijé en que las webs habituales repetian la misma noticia, a veces sin cambiar siquiera el texto de la fuente original, si acaso con una revision por Google traductor. Asi que me dije: ¿por qué no poner mi propia recopilación de noticias, no solo para mi, tambien para los amigos?
Así nació eltrasterodeit.blogspot.com. La idea no era monetizar la web, sino divertirme subiendo contenido, en el formato más simple y facil para la web, que a mi parecer, sigue siendo blogger. Si, luego aparecieron banners de anuncios, pero os aseguro que no dan ni para un gadget que comprar y analizar, con lo que sigo manteniendolo por amor al arte, como se suele decir.
Posteriormente, empezaron a aparecer algunos artículos más tecnicos. Esto es en parte a mi decisión de utilizar el blog como "cuaderno de notas", un sitio donde guardar mis recursos y truquillos, y poder compartirlos con más gente. Despues de todo, algunas de las soluciones utilizadas para solventar problemas serán válidas para cualquiera que lo lea y que se haya tropezado, o tropezará, con las mismas piedras en sus labores informáticas.
Tras una paradita de un año donde apenas pude subir contenido, aqui estoy, renovando un poco la fachada de la web, y tratando de subir contenido más "maduro". Esto es, menos noticias comunes, solo algunas importantes o interesantes, y más artículos técnicos, como los últimos de Veeam, AWS, VMware y, si me da el cuerpo, algo de Nagios.
La decisión de cambiar el nombre a la web ha sido puramente estética. Hace años, blogger no se llevaba tan bien como ahora con la redirección a un dominio propio, agravándose esto con el cambio constante e inevitable de todas las webs a https. Ahora considero que blogger ha alcanzado la suficiente madurez en este punto, y es por esta razón que decidí poner un nombre un poquito más atrayente (al menos a mi parecer) a la web.
Tampoco es un cambio muy radical, ¡apenas la cabecera y el nombre de dominio! Aunque no descarto liarme la manta a la cabeza y darle un lavado de cara para dejarla un poquito más profesional...ya veremos. Mientras...prefiero seguir empleando los escasos momentos disponibles en seguir subiendo contenido, con la esperanza de ayudar a mis lectores.
Y no os doy más la lata, espero que sigais disfrutando del blog, tanto como yo alimentándolo.
viernes, 29 de junio de 2018
Configurar AWS CLI
En un post anterior vimos como realizar la instalación del interfaz de linea de comandos en un equipo Windows. Pero todavía queda realizar otra operacion muy importante para poder comunicar con nuestra cuenta de AWS: la configuracion de la interfaz.
Básicamente, debemos introducir los datos a tener en cuenta siempre que se realice una sentencia con CLI a nuestro entorno, para no tener que estar introduciéndolos cada vez que queramos hacer algo. Y lo que nos va a pedir es un ID de usuario, su secret access Key, la región por defecto de trabajo, y el formato de salida, que puede ser json, text or table. Ahora lo vemos.
Lo primero de todo, abrimos una consola de comandos, y escribimos "aws configure". Con eso valdria. Pero a lo mejor, quieres configurar distintos perfiles, en ese caso, la sentencia seria "aws configure --profile nombredelperfil"
Aqui, como ves, utilizo una cuenta "admin", a la que le he dado una serie de permisos para funcionar en AWS en distintas áreas.
Y la sentencia introducida para llamar al configurador es: "aws configure --profile admin"
Lo siguiente que nos pedirá para esa cuenta es el Access Key para ese usuario. El access Key, como lo siguiente que solicitará, el secret access key, lo descargaste a la hora de crear el usuario. Si no es asi, no desesperes. Debemos entrar en AWS con el usuario administrador, o con el usuario admin en este caso, nos desplazamos a IAM / Users, y en la pestaña "security credentials" puedes crear una nueva access key. En ningún caso puedes ver la que se creó en el pasado, si no la anotaste.
Después de las credenciales, te solicitará la región por defecto. Las regiones son, actualmente, las siguientes:
De esta lista, como puedes ver en la primera imagen, sólo hay que introducir el nombre de la region, por ejemplo "eu-west-1" y pulsar intro.
Ya lo último que te pide es introducir el formato de salida. Las opciones a configurar son json, text o table. Si no indicas nada y lo dejas en "none", utilizará json.
Con estos pasos, queda realizada la configuración. Dos notas al respecto:
Básicamente, debemos introducir los datos a tener en cuenta siempre que se realice una sentencia con CLI a nuestro entorno, para no tener que estar introduciéndolos cada vez que queramos hacer algo. Y lo que nos va a pedir es un ID de usuario, su secret access Key, la región por defecto de trabajo, y el formato de salida, que puede ser json, text or table. Ahora lo vemos.
Lo primero de todo, abrimos una consola de comandos, y escribimos "aws configure". Con eso valdria. Pero a lo mejor, quieres configurar distintos perfiles, en ese caso, la sentencia seria "aws configure --profile nombredelperfil"
Aqui, como ves, utilizo una cuenta "admin", a la que le he dado una serie de permisos para funcionar en AWS en distintas áreas.
Y la sentencia introducida para llamar al configurador es: "aws configure --profile admin"
Lo siguiente que nos pedirá para esa cuenta es el Access Key para ese usuario. El access Key, como lo siguiente que solicitará, el secret access key, lo descargaste a la hora de crear el usuario. Si no es asi, no desesperes. Debemos entrar en AWS con el usuario administrador, o con el usuario admin en este caso, nos desplazamos a IAM / Users, y en la pestaña "security credentials" puedes crear una nueva access key. En ningún caso puedes ver la que se creó en el pasado, si no la anotaste.
click para ampliar |
Code | Nombre |
---|---|
us-east-1 |
US East (N. Virginia)
|
us-east-2 |
EE.UU. Este (Ohio)
|
us-west-1 |
EE.UU. Oeste (Norte de California)
|
us-west-2 |
EE.UU. Oeste (Oregón)
|
ca-central-1 |
Canadá (Central)
|
eu-central-1 |
UE (Fráncfort)
|
eu-west-1 |
UE (Irlanda)
|
eu-west-2 |
UE (Londres)
|
eu-west-3 |
UE (París)
|
ap-northeast-1 |
Asia Pacífico (Tokio)
|
ap-northeast-2 |
Asia Pacífico (Seúl)
|
ap-northeast-3 |
Asia Pacífico (Osaka-local)
|
ap-southeast-1 |
Asia Pacífico (Singapur)
|
ap-southeast-2 |
Asia Pacífico (Sídney)
|
ap-south-1 |
Asia Pacífico (Mumbai)
|
sa-east-1 |
América del Sur (São Paulo)
|
De esta lista, como puedes ver en la primera imagen, sólo hay que introducir el nombre de la region, por ejemplo "eu-west-1" y pulsar intro.
Ya lo último que te pide es introducir el formato de salida. Las opciones a configurar son json, text o table. Si no indicas nada y lo dejas en "none", utilizará json.
Con estos pasos, queda realizada la configuración. Dos notas al respecto:
- Siempre puedes volver a lanzar el comando "aws configure" si quieres introducir nuevos valores
- Tanto el archivo de configuracion como el de credenciales, con la secret access key, quedan almacenados en 2 archivos, en la ruta c:\Users\%profilename%\.aws\credentials en Windows. Así que cuidadito con la seguridad de la máquina.
jueves, 28 de junio de 2018
Instalar la consola de linea de comandos (CLI) de AWS en Windows
AWS no es sólo acceder a su portal y a partir de ahí montar tus vm´s con EC2, o tus buckets y tus VPCs, tienes también bastante componente de gestión vía linea de comandos para todos sus elementos, para acelerar en algunos casos las labores frente al uso de la interfaz gráfica, o bien porque simplemente, no hay interfaz gráfica que permita hacer determinadas funcionalidades.
Así que vamos a ver cómo instalar la interfaz de linea de comandos (CLI) en Windows. Hay 2 maneras de hacerlo. La fácil, y la dificil. La dificil tiene la ventaja de que si quieres actualizar la consola, es más fácil. Si no prevés hacerlo, ve al modo fácil.
Modo facil: instalador .msi.
Disponemos de varios instaladores .msi para Windows. Nos saltamos las versiones de 32 bit, y vemos que disponemos de 2 versiones de instaladores. Lo que funcionan con Python 3, y l oque van con Python 2. Python 2 es MUY antiguo, asi que excepto que no tengais más remedio, yo iria a la versión 3. Aqui tienes el enlace de descarga. Las instrucciones son simples, doble click sobre el instalador, y seguir las instrucciones en pantalla.
Modo complicado: instalando mediante linea d comandos de python.
Lo primero, descargamos Python 3.6 desde la web de descargas de Python.
Ejecutamos el instalador, y marcamos "Add Python 3.7 to PATH", esto es muy importante. El resto es el siguiente-siguiente-siguiente de siempre.
Una vez hemos instalado Python, no está de más abrir una ventana de comandos y lanzar esas dos sentencias: "python --version" y "pip --version" (sin comillas), para verificar que hemos innstalado Python adecuadamente. Si está bien, devberia salir algo como esto:
Bien, ahora vamos con la instalacion del CLI. Es bien simple, sólo escribimos la siguiente sentencia: "pip install awscli". Tras el proceso de instalacion, puede salirte esta advertencia:
Por si acaso, vamos a añadir el PATH que no sugiere. Para ello, ejecutamos "sysdm.cpl" y nos vamos a la pestaña "opciones avanzadas". Pinchamos ahí, y seguidamente en la casilla "variables de entorno". Ahí agregaremos el PATH que nos indica el pantallazo de arriba, o el que os haya salido a vosotros. El PATH es %USERPROFILE%\AppData\Local\Programs\Python\Python36\Scripts
Ya para rematar, verificamos que se ha instalado correctamente, con el comando "aws --version"
A partir de ahora, para actualizar, solo debes ejecutar el comando "pip install --user --upgrade awscli"
Si decidiste optar por el métido de instalacion fácil, para actualizar te va a tocar ir a "agregar o quitar programas" de Windows (appwiz.cpl), desinstalar la consola y reinstalar la nueva versión. Todo un latazo. Por eso recomiendo la instalación complicada. Ademas, si te vas a meter en AWS, vas a acabar picando código en python y json "for sure".
Así que vamos a ver cómo instalar la interfaz de linea de comandos (CLI) en Windows. Hay 2 maneras de hacerlo. La fácil, y la dificil. La dificil tiene la ventaja de que si quieres actualizar la consola, es más fácil. Si no prevés hacerlo, ve al modo fácil.
Modo facil: instalador .msi.
Disponemos de varios instaladores .msi para Windows. Nos saltamos las versiones de 32 bit, y vemos que disponemos de 2 versiones de instaladores. Lo que funcionan con Python 3, y l oque van con Python 2. Python 2 es MUY antiguo, asi que excepto que no tengais más remedio, yo iria a la versión 3. Aqui tienes el enlace de descarga. Las instrucciones son simples, doble click sobre el instalador, y seguir las instrucciones en pantalla.
Modo complicado: instalando mediante linea d comandos de python.
Lo primero, descargamos Python 3.6 desde la web de descargas de Python.
Ejecutamos el instalador, y marcamos "Add Python 3.7 to PATH", esto es muy importante. El resto es el siguiente-siguiente-siguiente de siempre.
Una vez hemos instalado Python, no está de más abrir una ventana de comandos y lanzar esas dos sentencias: "python --version" y "pip --version" (sin comillas), para verificar que hemos innstalado Python adecuadamente. Si está bien, devberia salir algo como esto:
Bien, ahora vamos con la instalacion del CLI. Es bien simple, sólo escribimos la siguiente sentencia: "pip install awscli". Tras el proceso de instalacion, puede salirte esta advertencia:
Por si acaso, vamos a añadir el PATH que no sugiere. Para ello, ejecutamos "sysdm.cpl" y nos vamos a la pestaña "opciones avanzadas". Pinchamos ahí, y seguidamente en la casilla "variables de entorno". Ahí agregaremos el PATH que nos indica el pantallazo de arriba, o el que os haya salido a vosotros. El PATH es %USERPROFILE%\AppData\Local\Programs\Python\Python36\Scripts
Ya para rematar, verificamos que se ha instalado correctamente, con el comando "aws --version"
A partir de ahora, para actualizar, solo debes ejecutar el comando "pip install --user --upgrade awscli"
Si decidiste optar por el métido de instalacion fácil, para actualizar te va a tocar ir a "agregar o quitar programas" de Windows (appwiz.cpl), desinstalar la consola y reinstalar la nueva versión. Todo un latazo. Por eso recomiendo la instalación complicada. Ademas, si te vas a meter en AWS, vas a acabar picando código en python y json "for sure".
miércoles, 27 de junio de 2018
Cambiar el puerto de escucha de RDP en Windows
Aquí va un pequeño truco para acceder a tu equipo Windows por RDP (el escritorio remoto de toda la vida) por un puerto distinto al habitual, el 3389.
Una de las utilizades más prácticas a este uso son la de poder conectar a varias maquinas por RDP si salen por una única IP fija, ya que el truco estaría en hacer NAT al puerto adecuado en la conexion a esa IP fija. Un ejemplo: pongamos que tienes una unica ip fija, 10.10.10.10, por la que sales a internet. Dentro, en tu instalación, tienes, desde una vm con tu web, pasando por, pongamos, 2 vm´s a las que tienes que acceder desde fuera.
Sin una vpn que te facilite la tarea, si intentas conectar a esa ip 10.10.10.10 por el puerto 3389, como mucho, te llevará a una máquina, suponiendo que hayas creado una regla NAT en el router que redirija esa conexion a una vm. Pero tenemos varias VM´s. La forma de hacerlo es conectar, entonces por RDP, pero utilizando puertos distintos al 3389, y configurando esto en el NAT, para redirigir conforme quieras. Por seguir con el ejemplo: supón que en tu red, las 2 vm´s tienen las ip´s 192.168.1.2 (la llamaremos VM1) y 192.168.1.3 (la llamaremos VM2).
La VM1 tiene el rdp configurado al 3389, y una nat que dice que las conexiones entrantes a 10.10.10.10 por el puerto 3389 vayan a la ip 192.168.1.2, puerto 3389. Esto es facil.
Pero para la VM2, no podemos redireccionar la conexion externa al puerto RDP, porque ya está redireccionado a la VM1. Asi que le cambiamos el puerto RDP.
Para ello, en la VM2, en Inicio, vamos a "Ejecutar", y escribimos regedit.
Luego vamos a:
HKEY_LOCAL_MACHINE>
System>
CurrentControlSet>
Control>
TerminalServer>
WinStations>
RDP-Tcp
Aquí dentro buscamos la clave PortNumber. Cambiamos a base decimal, y ponemos el nuevo puerto que quieras utilizar, por ejemplo, 1111
Aceptamos y cerramos. Ya solo queda acceder a la maquina utilizando el nuevo puerto. Si accedemos a ella desde la red de la empresa, abrimos RDP y ponemos la ip de la Vm2, pero especificando el puerto. O sea, 192.168.1.2:1111. Y para acceder desde fuera, pondriamos la ip fija, con el puerto de rdp nuevo, o sea, 10.10.10.10:1111. ¡Pero no olvides que tienes que hacer una NAT en el router para hacer esta redireccion!
Una de las utilizades más prácticas a este uso son la de poder conectar a varias maquinas por RDP si salen por una única IP fija, ya que el truco estaría en hacer NAT al puerto adecuado en la conexion a esa IP fija. Un ejemplo: pongamos que tienes una unica ip fija, 10.10.10.10, por la que sales a internet. Dentro, en tu instalación, tienes, desde una vm con tu web, pasando por, pongamos, 2 vm´s a las que tienes que acceder desde fuera.
Sin una vpn que te facilite la tarea, si intentas conectar a esa ip 10.10.10.10 por el puerto 3389, como mucho, te llevará a una máquina, suponiendo que hayas creado una regla NAT en el router que redirija esa conexion a una vm. Pero tenemos varias VM´s. La forma de hacerlo es conectar, entonces por RDP, pero utilizando puertos distintos al 3389, y configurando esto en el NAT, para redirigir conforme quieras. Por seguir con el ejemplo: supón que en tu red, las 2 vm´s tienen las ip´s 192.168.1.2 (la llamaremos VM1) y 192.168.1.3 (la llamaremos VM2).
La VM1 tiene el rdp configurado al 3389, y una nat que dice que las conexiones entrantes a 10.10.10.10 por el puerto 3389 vayan a la ip 192.168.1.2, puerto 3389. Esto es facil.
Pero para la VM2, no podemos redireccionar la conexion externa al puerto RDP, porque ya está redireccionado a la VM1. Asi que le cambiamos el puerto RDP.
Para ello, en la VM2, en Inicio, vamos a "Ejecutar", y escribimos regedit.
Luego vamos a:
HKEY_LOCAL_MACHINE>
System>
CurrentControlSet>
Control>
TerminalServer>
WinStations>
RDP-Tcp
Aquí dentro buscamos la clave PortNumber. Cambiamos a base decimal, y ponemos el nuevo puerto que quieras utilizar, por ejemplo, 1111
Aceptamos y cerramos. Ya solo queda acceder a la maquina utilizando el nuevo puerto. Si accedemos a ella desde la red de la empresa, abrimos RDP y ponemos la ip de la Vm2, pero especificando el puerto. O sea, 192.168.1.2:1111. Y para acceder desde fuera, pondriamos la ip fija, con el puerto de rdp nuevo, o sea, 10.10.10.10:1111. ¡Pero no olvides que tienes que hacer una NAT en el router para hacer esta redireccion!
lunes, 25 de junio de 2018
Construye tu propia Game Boy por 30€
A modo de celebración del 10 aniversario de la plataforma Odroid, han sacado a la venta un kit de componentes que incluye una placa especial aniversario preparada para que puedas ensamblar todos los componentes a modo de una Game Boy.
Realmente esta es solo una de las funciones del proyecto, puesto que la idea es aprender cómo funcionan todos los elementos, a la vez que puedas divertirte. Y para ello, no solo puedes darle al invento la funcionalidad de un emulador de roms, sino que también te sirve para aprender su programación básica dia a dia, permitiendote también montarte tu propio juego de tetris, o montarte una estacion meteorológica portatil, o simplemente, aprender a añadirle una pantalla adicional... o yo que se, controlar via wifi las funciones de la placa, o comunicacion via terminal por bluetooth. Infinidad de posibilidades, vaya.
Aqui podeis ver un ejemplo de los ocmponentes que recibirás, pero tranquilo, porque hay mil totoriales sobre su montaje, para que no sufras mucho. Por ejemplo, en ESTE enlace, tienes uno bastante majo.
Os dejo un vídeo del juguetito en cuestión ya montado,
Y otro video más práctico donde se ve el paquete completo que recibes, y el montaje del mismo:
De todas maneras, lo mejor es pasarse por la web, AQUI, donde también puedes realizar la compra del Kit. Por cierto, puntualmente, está disponible en Amazon EEUU, en ESTE enlace, pero ahora mismo, está agotado. Por cierto, admiten pago con Paypal.
Con esto, tienes diversión asegurada para todo el verano, no solo con los emuladores, también con los proyectos a realizar con esta placa.
Realmente esta es solo una de las funciones del proyecto, puesto que la idea es aprender cómo funcionan todos los elementos, a la vez que puedas divertirte. Y para ello, no solo puedes darle al invento la funcionalidad de un emulador de roms, sino que también te sirve para aprender su programación básica dia a dia, permitiendote también montarte tu propio juego de tetris, o montarte una estacion meteorológica portatil, o simplemente, aprender a añadirle una pantalla adicional... o yo que se, controlar via wifi las funciones de la placa, o comunicacion via terminal por bluetooth. Infinidad de posibilidades, vaya.
Aqui podeis ver un ejemplo de los ocmponentes que recibirás, pero tranquilo, porque hay mil totoriales sobre su montaje, para que no sufras mucho. Por ejemplo, en ESTE enlace, tienes uno bastante majo.
Os dejo un vídeo del juguetito en cuestión ya montado,
Y otro video más práctico donde se ve el paquete completo que recibes, y el montaje del mismo:
De todas maneras, lo mejor es pasarse por la web, AQUI, donde también puedes realizar la compra del Kit. Por cierto, puntualmente, está disponible en Amazon EEUU, en ESTE enlace, pero ahora mismo, está agotado. Por cierto, admiten pago con Paypal.
Con esto, tienes diversión asegurada para todo el verano, no solo con los emuladores, también con los proyectos a realizar con esta placa.
Creando copias de backup programadas con VeeamZIP
Ey, un momento... ¿Pero una de las pegas de VeeamZip no es que no se pueden programar copias, ya que es un software gratuito? Bueno...si, no se podía... hasta la segunda actualización de Veeam Backup 9.5, donde se ha agregado esta funcionalidad mediante cmdlets, lanzables con Start-VBRZIP en Powershell.
Veeam te facilita incluso el script preparado para descargar y configurar los parámetros conforme a tus necesidades. Aqui tienes el Script para VMware y para Hyper-V listos. De todas formas hago aqui el copypaste del script, para que le eches un ojo antes de descargarlo. Verás que es simple.
# Author: Vladimir Eremin
# Created Date: 3/24/2015
# http://forums.veeam.com/member31097.html
#
##################################################################
# User Defined Variables
##################################################################
# Names of VMs to backup separated by comma (Mandatory). For instance, $VMNames = “VM1”,”VM2”
$VMNames = ""
# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = ""
# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = ""
# Desired compression level (Optional; Possible values: 0 - None, 4 - Dedupe-friendly, 5 - Optimal, 6 - High, 9 - Extreme)
$CompressionLevel = "5"
# Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$EnableQuiescence = $True
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $True
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = ""
# Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time.
# Possible values: Never , Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = "Never"
##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# Email SMTP server
$SMTPServer = ""
# Email FROM
$EmailFrom = ""
# Email TO
$EmailTo = ""
# Email subject
$EmailSubject = ""
##################################################################
# Email formatting
##################################################################
$style = "<style>BODY{font-family: Arial; font-size: 10pt;}"
$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }"
$style = $style + "TD{border: 1px solid black; padding: 5px; }"
$style = $style + "</style>"
##################################################################
# End User Defined Variables
##################################################################
#################### DO NOT MODIFY PAST THIS LINE ################
Asnp VeeamPSSnapin
$Server = Get-VBRServer -name $HostName
$MesssagyBody = @()
foreach ($VMName in $VMNames)
{
$VM = Find-VBRViEntity -Name $VMName -Server $Server
If ($EnableEncryption)
{
$EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString)
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey
}
Else
{
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
}
If ($EnableNotification)
{
$TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
$FailedSessions = $TaskSessions | where {$_.status -eq "EWarning" -or $_.Status -eq "EFailed"}
if ($FailedSessions -ne $Null)
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={$FailedSessions.Title}})
}
Else
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})
}
}
}
If ($EnableNotification)
{
$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}
Por cierto, aunque lo indica la cabecera, no está de mas agradecerle el esfuerzo a Vladimir Eremin, un crack de Veeam y Powershell.
Yo me suelo cargar la parte de email formatting y notification settings porque la notificación la realizo posteriormente con otro sistema, pero esto va por gustos. En fin, seguimos:
En rojo, las partes que debes modificar conforme a tu sistema.
Hay una parte, $EnableEncryption = $True y $EncryptionKey = "" que hacen referencia a la introduccion de un sistema de encriptado e copias, altamente recomendado, por seguridad. Pero esta parte del script está incompleta. Es decir, si pones $EnableEncryption = $False, no hay problema, pero si pones True, previamente, en Powershell, necesitas ingresar las siguientes lineas:
Despues de esto, en el script, manteniendo la encriptacion en $True, en la siguiente linea, la de $EncryptionKey, introduces la ruta del .txt que indicaste previamente. Esto es así porque powershell no admite contraseñas en cadenas regulares.
Vamos ahora con la parte de la programación de la tarea programada para la ejecucion del script. A estas alturas de la película no voy a explicar cómo se crea una tarea programada, pero sí indicaré el único punto delicado de la configuración, la acción "Ejecutar un programa". El programador de tareas ejecuta por defecto CMD, no powershell, asi que hay que llamar a Powershell e indicarle como añadido la ruta del archivo a ejecutar:
O bien, lo haces como un parámetro agregado a la invocacion del programa, así:
¡No tiene mas! Visto asi parece complicado, pero es muy sencillo, de veras. A ver si saco tiempo, y para el siguiente post indico cómo enlazar esta copia completa de la VM con un sistema de almacenamiento en la nube, permitiendonos dejar así unas copias perfectas para cubrir una contingencia tipo Disaster Recovery.
Por si acaso, una vez realizada la programación, ejecutala a mano. Nunca está de más asegurarse de que la tarea funciona.
Veeam te facilita incluso el script preparado para descargar y configurar los parámetros conforme a tus necesidades. Aqui tienes el Script para VMware y para Hyper-V listos. De todas formas hago aqui el copypaste del script, para que le eches un ojo antes de descargarlo. Verás que es simple.
# Author: Vladimir Eremin
# Created Date: 3/24/2015
# http://forums.veeam.com/member31097.html
#
##################################################################
# User Defined Variables
##################################################################
# Names of VMs to backup separated by comma (Mandatory). For instance, $VMNames = “VM1”,”VM2”
$VMNames = ""
# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = ""
# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = ""
# Desired compression level (Optional; Possible values: 0 - None, 4 - Dedupe-friendly, 5 - Optimal, 6 - High, 9 - Extreme)
$CompressionLevel = "5"
# Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$EnableQuiescence = $True
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $True
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = ""
# Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time.
# Possible values: Never , Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = "Never"
##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# Email SMTP server
$SMTPServer = ""
# Email FROM
$EmailFrom = ""
# Email TO
$EmailTo = ""
# Email subject
$EmailSubject = ""
##################################################################
# Email formatting
##################################################################
$style = "<style>BODY{font-family: Arial; font-size: 10pt;}"
$style = $style + "TABLE{border: 1px solid black; border-collapse: collapse;}"
$style = $style + "TH{border: 1px solid black; background: #dddddd; padding: 5px; }"
$style = $style + "TD{border: 1px solid black; padding: 5px; }"
$style = $style + "</style>"
##################################################################
# End User Defined Variables
##################################################################
#################### DO NOT MODIFY PAST THIS LINE ################
Asnp VeeamPSSnapin
$Server = Get-VBRServer -name $HostName
$MesssagyBody = @()
foreach ($VMName in $VMNames)
{
$VM = Find-VBRViEntity -Name $VMName -Server $Server
If ($EnableEncryption)
{
$EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString)
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey
}
Else
{
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
}
If ($EnableNotification)
{
$TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
$FailedSessions = $TaskSessions | where {$_.status -eq "EWarning" -or $_.Status -eq "EFailed"}
if ($FailedSessions -ne $Null)
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={$FailedSessions.Title}})
}
Else
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})
}
}
}
If ($EnableNotification)
{
$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}
Por cierto, aunque lo indica la cabecera, no está de mas agradecerle el esfuerzo a Vladimir Eremin, un crack de Veeam y Powershell.
Yo me suelo cargar la parte de email formatting y notification settings porque la notificación la realizo posteriormente con otro sistema, pero esto va por gustos. En fin, seguimos:
En rojo, las partes que debes modificar conforme a tu sistema.
Hay una parte, $EnableEncryption = $True y $EncryptionKey = "" que hacen referencia a la introduccion de un sistema de encriptado e copias, altamente recomendado, por seguridad. Pero esta parte del script está incompleta. Es decir, si pones $EnableEncryption = $False, no hay problema, pero si pones True, previamente, en Powershell, necesitas ingresar las siguientes lineas:
$SecurePassword = Read-Host -Prompt
"Enter password" -AsSecureString
$SecurePassword | ConvertFrom-SecureString
> “Directorio donde la clave debería almacenarse; C:\SecureString.txt, for instance”
Despues de esto, en el script, manteniendo la encriptacion en $True, en la siguiente linea, la de $EncryptionKey, introduces la ruta del .txt que indicaste previamente. Esto es así porque powershell no admite contraseñas en cadenas regulares.
Vamos ahora con la parte de la programación de la tarea programada para la ejecucion del script. A estas alturas de la película no voy a explicar cómo se crea una tarea programada, pero sí indicaré el único punto delicado de la configuración, la acción "Ejecutar un programa". El programador de tareas ejecuta por defecto CMD, no powershell, asi que hay que llamar a Powershell e indicarle como añadido la ruta del archivo a ejecutar:
O bien, lo haces como un parámetro agregado a la invocacion del programa, así:
Powershell -file "aqui la ruta del archivo .ps1" sin comillas |
¡No tiene mas! Visto asi parece complicado, pero es muy sencillo, de veras. A ver si saco tiempo, y para el siguiente post indico cómo enlazar esta copia completa de la VM con un sistema de almacenamiento en la nube, permitiendonos dejar así unas copias perfectas para cubrir una contingencia tipo Disaster Recovery.
Por si acaso, una vez realizada la programación, ejecutala a mano. Nunca está de más asegurarse de que la tarea funciona.
viernes, 22 de junio de 2018
VeeamZip: ¡el backup gratis de VMs existe!
Ultimamente se está produciendo un giro al software gratuito por parte de las grandes empresas, viendolo como un método de entrada de su producto para las grandes licencias a futuro, lo que es una política bastante acertada. Muchas veces las empresas necesitan previamente un producto de prueba para valorar sus ventajas y debilidades. Otras, simplemente, la empresa es pequeña y no requiere el nivel de complejidad de determinados productos. Y aquí entra VeeamZip.
VeeamZip es una herramienta que viene incluida en Veeam Backup & Replication, pero que a la vez es lo que Veeam facilita como Veeam Backup Free Edition. Y es brutal. Para no tener coste, es una herramienta que te permite realizar copias de tus máquinas virtuales al punto de obtener granularidad a nivel de archivo, por si solo necesitas recuperar un pequeño dato, y no toda la VM. Pero ademas, los backups que realizas contienen los datos de configuración de las máquinas, contenido en un único archivo .vbx. Esto es simplemente perfecto, puesto que el archivo obtenido puede ser fácilmente movido o copiado a cualquier medio que quieras, como un flashdrive, o incluso a la nube. Ademas, el archivo resultante tiene un peso reducido, e incluso permite ajustar el nivel de compresión del mismo. En definitiva, crea un archivo único con todos los datos necesarios para poder hacer una restauración completa, ideal para casos de Disaster Recovery.
Pero tiene todavía más ventajas. Permite realizar el backup de tus VMs en caliente, sin necesidad de apagar la máquina. Y si esta dispone de las correspondientes VM Tools, con quiescencia de archivos, incluso, para asegurarte un backup consistente y sin errores.
Incluso permite realizar un Storage vMotion (un movimiento de la VM de un datastore a otro, incluso de datastore local a compartido y viceversa) incluso si normalmente no puedes sin apagar la maquina, como puede pasar si tu licencia de VMware es por ejemplo una Essentials.
Puedes probarlo accediendo al enlace de descarga desde AQUI. Necesitarás registrarte con Veeam para obtener el enlace de descarga. Aunque, ya que VeeamZip es como un añadido a Veeam Backup, te recomiendo que mires mi anterior post, cómo conseguir una licencia Free para Veeam, y pruebes directamente la versión full.
Puedes obtener algo más de info en su web, https://www.veeam.com/es-lat/virtual-machine-backup-solution-free.html ya que esto que te comento es un resumen "rapidito" de sus ventajas. De todas formas, VeeamZip es tan condenadamente simple que te recomiendo que lo instales y juegues un poco con él, ya que le tomarás el pulso a la aplicacion más rapido que leyendo las 4 cosas de su web.
Una única pega: No permite crear tareas programadas, lo tienes que ejecutar de manera manual. Pero incluso esto también tiene solución, estate atento a los nuevos post sobre Veeam en el blog ;)
VeeamZip es una herramienta que viene incluida en Veeam Backup & Replication, pero que a la vez es lo que Veeam facilita como Veeam Backup Free Edition. Y es brutal. Para no tener coste, es una herramienta que te permite realizar copias de tus máquinas virtuales al punto de obtener granularidad a nivel de archivo, por si solo necesitas recuperar un pequeño dato, y no toda la VM. Pero ademas, los backups que realizas contienen los datos de configuración de las máquinas, contenido en un único archivo .vbx. Esto es simplemente perfecto, puesto que el archivo obtenido puede ser fácilmente movido o copiado a cualquier medio que quieras, como un flashdrive, o incluso a la nube. Ademas, el archivo resultante tiene un peso reducido, e incluso permite ajustar el nivel de compresión del mismo. En definitiva, crea un archivo único con todos los datos necesarios para poder hacer una restauración completa, ideal para casos de Disaster Recovery.
Pero tiene todavía más ventajas. Permite realizar el backup de tus VMs en caliente, sin necesidad de apagar la máquina. Y si esta dispone de las correspondientes VM Tools, con quiescencia de archivos, incluso, para asegurarte un backup consistente y sin errores.
Incluso permite realizar un Storage vMotion (un movimiento de la VM de un datastore a otro, incluso de datastore local a compartido y viceversa) incluso si normalmente no puedes sin apagar la maquina, como puede pasar si tu licencia de VMware es por ejemplo una Essentials.
Puedes probarlo accediendo al enlace de descarga desde AQUI. Necesitarás registrarte con Veeam para obtener el enlace de descarga. Aunque, ya que VeeamZip es como un añadido a Veeam Backup, te recomiendo que mires mi anterior post, cómo conseguir una licencia Free para Veeam, y pruebes directamente la versión full.
Puedes obtener algo más de info en su web, https://www.veeam.com/es-lat/virtual-machine-backup-solution-free.html ya que esto que te comento es un resumen "rapidito" de sus ventajas. De todas formas, VeeamZip es tan condenadamente simple que te recomiendo que lo instales y juegues un poco con él, ya que le tomarás el pulso a la aplicacion más rapido que leyendo las 4 cosas de su web.
Una única pega: No permite crear tareas programadas, lo tienes que ejecutar de manera manual. Pero incluso esto también tiene solución, estate atento a los nuevos post sobre Veeam en el blog ;)
jueves, 21 de junio de 2018
Cómo conseguir una licencia Free para Veeam
No hay sensacion más incómoda al trabajar con una aplicacion que has instalado para su evaluación y quizá posterior uso en la empresa, que ésta se encuentre limitada, complicándote su análisis y aprendizaje. Quizá por eso algunas empresas se han percatado de ello y facilitan licencias Full por "x" dias.
En el caso que nos atañe, vamos a ver cómo obtener una licencia gratuita para Veeam Availability Suite, lo que nos permitirá jugar tanto con Veeam Backup & Recovery como con Veeam One.
Es importante indicar que esta licencia que vamos a obtener es NFR, o lo que es lo mismo, "Not For Resale". Lo que quiere decir que tiene una serie de limitaciones, que son estas:
Pasamos a los requisitos para solicitar la licencia. Que son bien fáciles, he de decir.
Básicamente debes ser un profesional de IT certificado, y el tipo de certificación es bastante laxo. basta son ser vExpert, VCP, VCAP, VCI, VCDX, VMUG Leader, VTEC, VMCE, MVP, MCSE, MCSA, MCT, Cisco Champion, u "Other".
El único problema que se te puede presentar es que requieres un e-mail de empresa para realizar la solicitud, no valen cuentas gmail, hotmail o similares. Lamentablemente no se si sirven cuentas de correo universitario.
La web a la que tienes que ir para iniciar la solicitud es:
https://go.veeam.com/free-nfr-veeam-availability-suite
Tras completar el formulario, recibirás un mail con esta estructura:
Como ves, el mail incluye no solo la licencia, sino que con los datos facilitados te dan de alta en su portal, y te incluyen también los enlaces de descarga directamente del software Veeam Availability suite, que se compone de 2 ISOs.
A modo de curiosidad, tamto el soporte como algunos de los recursos disponibles en el portal están en castellano.
¡Venga, que ya tienes tarea para este verano!
En el caso que nos atañe, vamos a ver cómo obtener una licencia gratuita para Veeam Availability Suite, lo que nos permitirá jugar tanto con Veeam Backup & Recovery como con Veeam One.
Es importante indicar que esta licencia que vamos a obtener es NFR, o lo que es lo mismo, "Not For Resale". Lo que quiere decir que tiene una serie de limitaciones, que son estas:
- Sólo se puede usar con fines de prueba, tanto da si es en un entorno doméstico, un "lab" de la empresa, o simplemente con la idea de formarse en el uso de la aplicacion. Esto es, que mientras no la uses para un entorno de producción empresarial, te sirve.
- La segunda limitación es al número de sockets: sólo 2 sockets, pero en la combinación de hipervisores que prefieras: con esto quiero decir que si tu entorno de pruebas está conformado por un ESXi por un lado y un Windows Server con Hyper-V por el otro, mientras sólo tengan 1 socket cada maquina (que no procesador, esto es, si la maquina es virtual puedes montarte 1 socket con 8 procesadores tranquilamente), la licencia agrupará ambos sistemas.
Pasamos a los requisitos para solicitar la licencia. Que son bien fáciles, he de decir.
Básicamente debes ser un profesional de IT certificado, y el tipo de certificación es bastante laxo. basta son ser vExpert, VCP, VCAP, VCI, VCDX, VMUG Leader, VTEC, VMCE, MVP, MCSE, MCSA, MCT, Cisco Champion, u "Other".
El único problema que se te puede presentar es que requieres un e-mail de empresa para realizar la solicitud, no valen cuentas gmail, hotmail o similares. Lamentablemente no se si sirven cuentas de correo universitario.
La web a la que tienes que ir para iniciar la solicitud es:
https://go.veeam.com/free-nfr-veeam-availability-suite
Tras completar el formulario, recibirás un mail con esta estructura:
Click para agrandar, porque si no, no se ve nada |
A modo de curiosidad, tamto el soporte como algunos de los recursos disponibles en el portal están en castellano.
¡Venga, que ya tienes tarea para este verano!
Simulador de consumo de espacio de backups
Una de las tareas más complicadas a la hora de preparar el backup de tu infraestructura es el cálculo estimado del consumo de espacio necesario para realizarlo, especialmente si hablamos de soluciones de backup a disco, como las que ofrecen inicialmente VDP, Veeam o Nakivo, sin entrar luego en soluciones más complicadas de replicación o backup a cinta.
Así que una pequeña herramienta pensada originalmente para el cálculo de backups incrementales con copias full activas sobre Veeam Backup, nos viene al pelo. Esta herramienta la puedes encontrar AQUI,
y como ves, facilita todos los valores estándar para programar una copia en Veeam, y algunos extra, que tendrás que seguir introduciendo un poco "a ojo", como el parámetro "data after reduction".
Tengo la sensación que no realiza los cálculos contando con la deduplicación de datos, ni la que pueda realizar Windows sobre el almacenamiento, ni la que pueda realizar el espacio en datastore para Veeam, suponiendo que disponga de esta tecnología.
Por ejemplo, para la copia simulada de la primera imagen, nos da los resultados que se pueden ver aquí encima.Pero bueno, también hay que tener en cuenta que prevemos un peso inicial de 1 Tb, con 3 full images.
En la cabecera de la web disponeis de toda la info para ver cómo se realizan los cálculos, asó como el código empleado. Es un proyecto de Github, que podeis encontrar aquí: https://github.com/tdewin/rps/issues
Por cierto, viendo la documentacion del proyecto, ya se están planteando como tarea la consideracion de un ratio de deduplicación, que dejaría las estimaciones "clavadas". ¡Veremos si avanza el proyecto!
Así que una pequeña herramienta pensada originalmente para el cálculo de backups incrementales con copias full activas sobre Veeam Backup, nos viene al pelo. Esta herramienta la puedes encontrar AQUI,
y como ves, facilita todos los valores estándar para programar una copia en Veeam, y algunos extra, que tendrás que seguir introduciendo un poco "a ojo", como el parámetro "data after reduction".
Tengo la sensación que no realiza los cálculos contando con la deduplicación de datos, ni la que pueda realizar Windows sobre el almacenamiento, ni la que pueda realizar el espacio en datastore para Veeam, suponiendo que disponga de esta tecnología.
Por ejemplo, para la copia simulada de la primera imagen, nos da los resultados que se pueden ver aquí encima.Pero bueno, también hay que tener en cuenta que prevemos un peso inicial de 1 Tb, con 3 full images.
En la cabecera de la web disponeis de toda la info para ver cómo se realizan los cálculos, asó como el código empleado. Es un proyecto de Github, que podeis encontrar aquí: https://github.com/tdewin/rps/issues
Por cierto, viendo la documentacion del proyecto, ya se están planteando como tarea la consideracion de un ratio de deduplicación, que dejaría las estimaciones "clavadas". ¡Veremos si avanza el proyecto!
lunes, 18 de junio de 2018
Crear un Backup Job en Veeam Backup
Vamos a ver la tarea más básica en Veeam: crear una tarea de backup. Bueno, ¡por algo hay que empezar para montar nuestro entorno de backup!
Para ello abrimos las aplicación, y pinchamos en la pestaña home, arriba del todo. Es fácil, como ves, los conceptos simples de Veeam se mueven sobre 3 únicos apartados, la pestaña de menú, a la izquierda del todo, la pestaña Home, donde gestionas las tareas de backup, y la pestaña server, para agregar servidores que deban ser protegidos.
En esta ocasión, pinchamos sobre "backup job", y seleccionamos VMware vSphere. Esto iniciará un wizard de configuración.
La primera pantalla nos solicitará el nombre de la copia. Como programaremos una tarea diaria, la llamaremos "diaria", y pulsamos Next.
Llegamos a la pantalla donde agregaremos las VM´s a ser protegidas. Solo tienes un par de botones disponibles, prácticamente. Añadir y excluir VM´s. Así que hacemos click en "add", y se desplegará una ventana con los host que agregamos previamente. Puedes seleccionar varias VM´s de forma simultánea, y le damos a "add". Se nos agregarán como podeis ver en la pantalla superior, y pulsamos Next.
Aquí tenemos mucha miga. Y no sólo porque llegamos a la pantalla de la programación del backup, sino porque incluye muchas opciones adicionales. Por ejemplo, en la pantalla principal, nos indica la configuracion del proxy si tenemos, el repositorio donde quieres crear las copias, las políticas de retención, e incluso si quieres, en esta misma tarea, generar un segundo destino para alojar copias, para mayor seguridad.
Pero si pinchamos en el botón "advanced", además nos permite configurar diversos modos de ejecucion de las tareas incrementales, como "reversal incremental", que permite ir generando un full backup constantemente, al inyectar la incremental en la imagen de Full Backup (aunque avisa que este es un proceso más lento), la incremental recomendada de toda la vida, que incluye ya marcada por defecto una casilla para hacer un full backup sintético cuando se le pida, pero por defecto marca el sábado. Y adicionalmente, en la misma pestaña inicial, la posibilidad de realizar Full backups activos en las fechas que le indiques.
Todo esto, solo en la pestaña Backup del campo advanced. Luego tienes 6 pestañas más, que nombro brevemente, por agilizar este post, que si no, queda demasiado denso: La pestaña "maintenance", para programar chequeos de los archivos y evitar su corrupcion, la pestaña Storage para configurar deduplicación, compresion y encriptacion, la pestaña SNMP si quieres programar notificaciones de las tareas, la pestaña vSphere para utilizar la posibilidad de la quiescencia de archivos proporcionada por las vm-tools, la pestaña "integracion" para seleccionar si los snapshots van a ser los de VMware o los de Veeam, y "Scripts", para lanzar un script antes o despues de comenzar la tarea programada. Simplemente, brutal. Sinceramente, no se me ocurre una contingencia que no pueda cubrir una simple tarea básica.
En la siguiente pantalla nos encontramos con algunas opciones más referentes al proceso de backup sobre la VM a proteger, relacionadas con funciones de las opciones avanzadas, como la quiescencia de archivos. Si utilizas estas opciones, solicitará el uso de credenciales para el acceso a las VM´s (recomendable credenciales de dominio).
La pantalla de scheduling es la típica de todos los programas. No hay mucho que decir aqui.
Una vez apliques, aparecerá una pantalla resumen del backup que te permitirá su ejecucion en el momento, si deseas una copia adicional para ya mismo. No es muy recomendable que hagas esto si no configuraste previamente el "aware processing" de dos pasos más atrás.
Y con esto, y el botón Finish, ¡tenemos lista nuestra tarea básica de copia!
Para ello abrimos las aplicación, y pinchamos en la pestaña home, arriba del todo. Es fácil, como ves, los conceptos simples de Veeam se mueven sobre 3 únicos apartados, la pestaña de menú, a la izquierda del todo, la pestaña Home, donde gestionas las tareas de backup, y la pestaña server, para agregar servidores que deban ser protegidos.
En esta ocasión, pinchamos sobre "backup job", y seleccionamos VMware vSphere. Esto iniciará un wizard de configuración.
La primera pantalla nos solicitará el nombre de la copia. Como programaremos una tarea diaria, la llamaremos "diaria", y pulsamos Next.
Llegamos a la pantalla donde agregaremos las VM´s a ser protegidas. Solo tienes un par de botones disponibles, prácticamente. Añadir y excluir VM´s. Así que hacemos click en "add", y se desplegará una ventana con los host que agregamos previamente. Puedes seleccionar varias VM´s de forma simultánea, y le damos a "add". Se nos agregarán como podeis ver en la pantalla superior, y pulsamos Next.
Aquí tenemos mucha miga. Y no sólo porque llegamos a la pantalla de la programación del backup, sino porque incluye muchas opciones adicionales. Por ejemplo, en la pantalla principal, nos indica la configuracion del proxy si tenemos, el repositorio donde quieres crear las copias, las políticas de retención, e incluso si quieres, en esta misma tarea, generar un segundo destino para alojar copias, para mayor seguridad.
Pero si pinchamos en el botón "advanced", además nos permite configurar diversos modos de ejecucion de las tareas incrementales, como "reversal incremental", que permite ir generando un full backup constantemente, al inyectar la incremental en la imagen de Full Backup (aunque avisa que este es un proceso más lento), la incremental recomendada de toda la vida, que incluye ya marcada por defecto una casilla para hacer un full backup sintético cuando se le pida, pero por defecto marca el sábado. Y adicionalmente, en la misma pestaña inicial, la posibilidad de realizar Full backups activos en las fechas que le indiques.
Todo esto, solo en la pestaña Backup del campo advanced. Luego tienes 6 pestañas más, que nombro brevemente, por agilizar este post, que si no, queda demasiado denso: La pestaña "maintenance", para programar chequeos de los archivos y evitar su corrupcion, la pestaña Storage para configurar deduplicación, compresion y encriptacion, la pestaña SNMP si quieres programar notificaciones de las tareas, la pestaña vSphere para utilizar la posibilidad de la quiescencia de archivos proporcionada por las vm-tools, la pestaña "integracion" para seleccionar si los snapshots van a ser los de VMware o los de Veeam, y "Scripts", para lanzar un script antes o despues de comenzar la tarea programada. Simplemente, brutal. Sinceramente, no se me ocurre una contingencia que no pueda cubrir una simple tarea básica.
En la siguiente pantalla nos encontramos con algunas opciones más referentes al proceso de backup sobre la VM a proteger, relacionadas con funciones de las opciones avanzadas, como la quiescencia de archivos. Si utilizas estas opciones, solicitará el uso de credenciales para el acceso a las VM´s (recomendable credenciales de dominio).
La pantalla de scheduling es la típica de todos los programas. No hay mucho que decir aqui.
Una vez apliques, aparecerá una pantalla resumen del backup que te permitirá su ejecucion en el momento, si deseas una copia adicional para ya mismo. No es muy recomendable que hagas esto si no configuraste previamente el "aware processing" de dos pasos más atrás.
Y con esto, y el botón Finish, ¡tenemos lista nuestra tarea básica de copia!
viernes, 15 de junio de 2018
Test de rendimiento entre disco básico y seccionado
Vamos a realizar una pequeña prueba de rendimiento utilizando Crystal DiskMark para medir el rendimiento de un disco básico de Windows para luego montar un disco dinámico creado a partir de varios volúmenes individuales, pero todos en el mismo datastore.
Para ello vamos a montar unos cuantos discos de 10 GB que luego unificaremos, y uno de 50 Gb. Abrimos el administrador de discos de Windows, inicializamos los discos (boton derecho->inicializar) y seguidamente, sobre cualquiera de los discos, seleccionamos la opción de "Nuevo volumen seccionado"
La razón de hacer esto es una simple prueba de velocidad. Tal y como indica el wizard en la creación del volumen seccionado, lo que ocnseguimos con esto es que los datos se almacenen en secciones de varios discos, obteniendo un acceso más rápido a los datos en comparación con un volumen simple o distribuido.
Esto, cuando los discos son físicos, basicamente lo que consigues es acceder más rápidamente a los datos, por el simple hecho de haber más cabezales en los discos buscando y leyendo. Pero aqui lo que tenemos es un conjunto de discos virtuales que, aunque no están limitados en IOPs, sí que están limitados por las capacidades físicas del datastore que los aloja.
El último disco agregado, aunque es de 50 Gb, finalmente lo dejaremos en 40 GB formateados para que haya similitud de tamaño disponible con los discos seccionados.
¿Cual será el resultado? ¡Vamos a verlo! Lanzaremos 3 test, sobre el disco C: con el sistema operativo, sobre el disco E:, seccionado, y sobre el F:, que es como el C: pero sin lecturas causadas por el sistema operativo. Por cierto, dejo la explicacion que encuentras directamente en la web de Crystal Disk Mark sobre los distintos test que realiza la aplicacion:
Aqui tenemos el resultado del disco C:. Unos resultados normalitos, para un datastore de discos SAS, con los resultados habituales, como son una alta lectura secuencial, pero con pérdidas en el resto de lecturas.
La sorpresa llega con el disco seccionado. Como se ve rápidamente, el acceso secuencial a disco se pierde, implicando esto que la copia de, por ejemplo, archivos de gran tamaño, va a ir curiosamente más lenta. Pero a cambio el acceso de datos aleatorio se dispara, llegando a casi 20.000 IOPs, que no está nada mal!
Vamos con el último disco de nuestro test, la unidad F: a partir de un volumen simple MBR.
Pues los resultados tampoco distan mucho del disco seccionado! Lo extraño es la caida de lectura-escritura frente al disco C: La posible explicación del rendimiento de C: frente a F: puede ser al trabajo de caché del disco de sistema, que influye directamente en las lecturas/escrituras del test. Quizá si trabajasemos con un archivo de pruebas de tamaño mucho más grande, los resultados serian distintos. El problema es que tambien se falsearían las lecturas de datos no secuenciales.
De manera que creo que podemos entender que los discos seccionados permiten una ganancia de IOPs sobre todo en escritura y posiblemente no tanto en lectura, en base a las distintas funciones de cacheo, paginacion, ballooning memory y demas con los que pueda trabajar VMware y el propio Windows con el fin de mejorar tiempos de respuesta.
Para cualquier duda, consulta aclaracion o corrección, ¡no dudeis en comentar!
Para ello vamos a montar unos cuantos discos de 10 GB que luego unificaremos, y uno de 50 Gb. Abrimos el administrador de discos de Windows, inicializamos los discos (boton derecho->inicializar) y seguidamente, sobre cualquiera de los discos, seleccionamos la opción de "Nuevo volumen seccionado"
La razón de hacer esto es una simple prueba de velocidad. Tal y como indica el wizard en la creación del volumen seccionado, lo que ocnseguimos con esto es que los datos se almacenen en secciones de varios discos, obteniendo un acceso más rápido a los datos en comparación con un volumen simple o distribuido.
Esto, cuando los discos son físicos, basicamente lo que consigues es acceder más rápidamente a los datos, por el simple hecho de haber más cabezales en los discos buscando y leyendo. Pero aqui lo que tenemos es un conjunto de discos virtuales que, aunque no están limitados en IOPs, sí que están limitados por las capacidades físicas del datastore que los aloja.
El último disco agregado, aunque es de 50 Gb, finalmente lo dejaremos en 40 GB formateados para que haya similitud de tamaño disponible con los discos seccionados.
¿Cual será el resultado? ¡Vamos a verlo! Lanzaremos 3 test, sobre el disco C: con el sistema operativo, sobre el disco E:, seccionado, y sobre el F:, que es como el C: pero sin lecturas causadas por el sistema operativo. Por cierto, dejo la explicacion que encuentras directamente en la web de Crystal Disk Mark sobre los distintos test que realiza la aplicacion:
- All : All Test (“Seq Q32T1”, “4K Q8T8”, “4K Q32T1”, “4K Q1T1”)
- Seq Q32T1: Sequential (Block Size=128KiB) Read/Write with multi Queues & Threads
- 4K Q8T8: Random 4KiB Read/Write with multi Queues & Threads
- 4K Q32T1: Random 4KiB Read/Write with multi Queues & Threads
- 4K Q1T1: Random 4KiB Read/Write with multi Queues & Threads
Aqui tenemos el resultado del disco C:. Unos resultados normalitos, para un datastore de discos SAS, con los resultados habituales, como son una alta lectura secuencial, pero con pérdidas en el resto de lecturas.
La sorpresa llega con el disco seccionado. Como se ve rápidamente, el acceso secuencial a disco se pierde, implicando esto que la copia de, por ejemplo, archivos de gran tamaño, va a ir curiosamente más lenta. Pero a cambio el acceso de datos aleatorio se dispara, llegando a casi 20.000 IOPs, que no está nada mal!
Vamos con el último disco de nuestro test, la unidad F: a partir de un volumen simple MBR.
Pues los resultados tampoco distan mucho del disco seccionado! Lo extraño es la caida de lectura-escritura frente al disco C: La posible explicación del rendimiento de C: frente a F: puede ser al trabajo de caché del disco de sistema, que influye directamente en las lecturas/escrituras del test. Quizá si trabajasemos con un archivo de pruebas de tamaño mucho más grande, los resultados serian distintos. El problema es que tambien se falsearían las lecturas de datos no secuenciales.
De manera que creo que podemos entender que los discos seccionados permiten una ganancia de IOPs sobre todo en escritura y posiblemente no tanto en lectura, en base a las distintas funciones de cacheo, paginacion, ballooning memory y demas con los que pueda trabajar VMware y el propio Windows con el fin de mejorar tiempos de respuesta.
Para cualquier duda, consulta aclaracion o corrección, ¡no dudeis en comentar!
Suscribirse a:
Entradas (Atom)