COSA # 50: ADMINISTRAR VMs EN HYPER-V
Bien amigos, dentro de esta serie de entregas acerca del Cloud OS de Microsoft, hoy les voy a hablar en particular de algunas de las cosas que se pueden hacer con Powershell para administrar mi plataforma de virtualización con Hyper-V.
Supongan por ejemplo que una vez a la semana deben apagar las máquinas virtuales para hacer un backup en frío o copia de seguridad de los VHDs y archivos de configuración de dichas máquinas (.XML). Con un simple script de Powershell pueden hacer esta tarea y a su volver a prenderlas cuando sea necesario y la tarea haya finalizado.
Basta con programar posteriormente una tarea recurrente que ejecute el proceso de apagado y de encendido de las VMs.
Antes de mostrar lo anterior, exploremos un poco las opciones para Hyper-V en Powershell. Para ello abrimos una sesión de Powershell ISE (para más detalles de cómo hacerlo vean este Post) y buscamos los comandos relacionados con Hyper-V como se ve en la siguiente imagen:
Como lo ven hay muchos comandos relacionados con el tema.
Si quiero listar mis máquinas virtuales, pues usar el comando Get-VM y veré un resultado similar al siguiente:
Observen que en este caso hay tres máquinas encendidas, que son las que dicen Running en la columna State.
Ahora supongamos que queremos ver la configuración de memoria de una máquina en particular, bien sea que esté apagada o encendida, para ello usamos el comando Get-VMMemory <Nombre máquina>. Ejemplo:
Ya mi máquina lleva un tiempo arriba y quiero ver la estadísticas de rendimiento… muy bien pero antes debo habilitarlas pues por defecto no se encuentran habilitadas, así que primero debo hacerlo. El comando para ver estadísticas es Measure-VM <Nombre Máquina> pero si lo ejecutan antes de habilitar las estadísticas generará un error así que primero hay que ejecutar Enable-VMResourceMetering <Nombre Máquina>.
Veámoslo en la práctica, primero habilito las estadísticas en este ejemplo con Enable-VMResourceMetering "CentOS 6.5 Thin" a mi máquina a la cual quiero sacar todas las estadísticas:
Bueno, como lo ven aparentemente “no pasa nada” sólo se ejecuta el comando pero ya estamos listos.
Ahora sí ejecutamos el comando Measure-VM "CentOS 6.5 Thin" y veamos el resultado:
Bueno, esta es una máquina de prueba así que el uso de recursos se ve muy tranquilo.
Esto está muy entretenido pero volvamos a lo que propuse al principio que es apagar y prender VMs. En realidad es muy sencillo: Stop-VM apaga la máquina virtual y Start-VM la enciende. Veamos:
Observen que se apagó la VM y como para confirmar ejecuté el comando Get-VM.
Veamos un ejemplo de apagado aunque ya pueden intuir lo que va a pasar:
Bueno, y si queremos poner eso en scripts (muy pero muy sencillos, sin validaciones adicionales) se haría así: un script que se llame por ejemplo apagarVMS.ps1 y que contenga la lista de máquinas a apagar y otro denominado encenderVMS.ps1 que contenga a su vez la lista de máquinas a encender.
Y si quiero que se haga de manera automática programo una tarea de apagado y otra de encendido usando el Task Scheduler o Programador de Tareas. simplemente lo invoco con la tecla Windows+R y escribo taskschd.msc:
Una vez allí programamos una tarea. Mi máquina está en Inglés así que las imágenes se ven en Inglés pero en Español es muy similar.
Voy a poner las imágenes puesto que hablan por sí solas:
se hace clic derecho y se selecciona Create Basic Task:
Aquí le asignamos un nombre a la tarea:
En este ejemplo decidí que la tarea se va a hacer semanalmente:
Los domingos:
Aquí se le dice que se va a ejecutar un programa:
Mi script se encuentra en c:\tmp y se llama apagarVMS.ps1
Se presiona Finish para completar la tarea
Aquí ya se ve que la tarea quedó programada
Bueno, espero lo hayan disfrutado.
Si quieren hacer que el backup se haga en la nube de Azure, les recomiendo este Post
Recuerden que pueden descargar Windows Server 2012 R2 en http://technet.microsoft.com/en-us/evalcenter/dn205286.aspx
¡Nos vemos en la próxima!
COSA # 31: CRECER DINAMICAMENTE LOS DISCOS DE UNA MAQUINA VIRTUAL “EN CALIENTE”
Continuando con nuestra serie de “Cosas” que puedes hacer con Cloud OS, hoy les voy a mostrar una funcionalidad bastante interesante que permite crecer –o decrecer- el tamaño de los discos VHDX de una máquina virtual.
Esta funcionalidad es propia de Windows Server 2012 R2 cuando se tiene el rol de Hyper-V instalado en una máquina física y allí se crean máquinas virtuales (VMs). La condición para poder crecer “En Caliente” una VM es que dicha VM sea Generación 2. En Windows Server 2012 R2 existe la posibilidad de tener VMs Generación 1 y Generación 2.
Las de Generación 1 son las que existen desde que se tiene Hyper-V como rol en Windows Server, incluso Windows Server 2008. En este tipo de máquinas el disco de arranque del sistema operativo debe ser del tipo IDE. En las VMs Generación 2 se puede tener Arranque Seguro (Secure Boot), Arranque por SCSI (SCSI Boot) y Arranque por red (PXE Boot) con una tarjeta de red que lo soporte. Por ahora este tipo de máquinas Generación 2 deben tener como sistema operativo Windows Server 2012 o Windows 8 de 64 bits.
Hasta el momento no hay soporte para máquinas Linux, de modo que no se pueden instalar como Generación 2 en Hyper-V de Windows Server 2012 R2. Sin embargo si agrego un disco VHDX adicional a una VM Linux como dispositivo SCSI puedo crecerlo “En Caliente” sin apagar la VM.
Para mayor información acerca de esta y otras características de Server 2012 R2 pueden consultar http://technet.microsoft.com/es-co/library/dn282278.aspx
Ahora les voy a mostrar 2 maneras de hacerlo en una VM, la primera de ellas usando modo gráfico a través de la consola de Hyper-V y luego usando Powershell.
Cuando la máquina se crea por primera vez hay que especificar bajo que especificaciones se va a crear, es decir si va a ser Generación 1 o Generación 2 (Este proceso es irreversibe, si se escoge una u otra opción después no se puede cambiar a la otra)
Ahora sí vamos a crecer el disco. Una vez creada la VM hay que hacer clic derecho en dicha VM y se selecciona Settings
Ahora en los Settings de la VM observen que tiene un disco y es del tipo SCSI:
Si lo quiero crecer, selecciono el disco y hago clic en Edit:
Observen que recibo la advertencia de que podría experimentar pérdida de datos cuando estoy creciendo discos diferenciales y tienen discos “hijos” asociados, también cuando tengo archivos .AVHD o .AHVDX que son los generados cuando hago un snapshot de una VM y por último cuando la VM está involucrada en un proceso de replicación de alguna naturaleza, en caso tal debería eliminar el proceso de replicación.
Presionamos Next y observen que me pregunta si voy a compactar el Disco o a Expandirlo:
En mi ejercicio lo voy a Expandir. De una vez me pregunta por el tamaño al cual quiero expandirlo, con un máximo de 64 TB. Mi disco original es de 40 GB y lo voy a llevar hasta 50 GB:
Una vez presione Next, estamos listos para empezar la operación, así que presiono Finish y el proceso arranca:
Es algo en realidad muy rápido, ahora veo en la máquina que ya tengo 10 GB adicionales en mi máquina:
Como lo ven, son 10 GB adicionales a mi disco de 40 GB. La única manera de que estos nuevos 10 GB hagan parte de mi disco es haciendo que mi disco sea dinámico (Igual sucede en Linux, sólo con discos que hagan parte de un Volume Group puedo lograr este crecimiento.
la ventaja que tengo en Windows Server 2012 R2 es que puedo convertir en disco dinámico la unidad C:\ –Cosa que no se podía lograr en versiones anteriores de Windows- así que procedo a convertirlo en dinámico:
Observen que hice clic derecho en el disco 0 y seleccioné Convert to Dynamic Disk:
Selecciono el disco, presiono OK y luego Convert:
Observen la advertencia de que luego de la conversión no voy a poder arrancar otros sistemas operativos que estén en ese disco, excepto el sistema operativo de arranque, presiono Yes:
Tardará unos instantes dependiendo del tamaño del disco y cuando finalicen observen que el color usado para representar el disco cambió, además del tipo pues ahora es dinámico:
Para extenderlo, hago clic derecho en el disco y selecciono Extend Volume:
Presiono Next ante el asistente:
Ya el disco se encuentra seleccionado por defecto y es el único disponible para ampliar, así que presiono Next:
Presiono Finish:
Ya el disco quedó ampliado a un total de 50 GB (49.48 GB)
Ahora veamos el procedimiento usando Powershell. Lo primero que hago es abrir una sesión de Powershell con privilegios de administrador:
Ahora ejecuto el comando Resize-VHD -Path "C:\VMs\VHDs\Server 2012 R2 - 01.vhdx" -SizeBytes 55GB
En este ejemplo la ruta del disco a crecer es "C:\VMs\VHDs" y el disco se llama "Server 2012 R2 - 01.vhdx", de igual forma se va a crecer a 55 GB, de un tamaño de 50 GB que tenía antes:
Tan pronto termine (es muy rápido) extiendo el disco usando el mismo procedimiento arriba descrito. Observen que el disco ya se creció en 5 GB:
¿Está bien bueno cierto? Espero les haya gustado.
No olviden que para saber más acerca de la estrategia de Microsoft alrededor de Cloud OS pueden consultar el siguiente link http://www.microsoft.com/en-us/server-cloud/cloud-os/default.aspx
Ahora bien, si quieren disminuir un VHDX lo pueden hacer usando el comando de Powershell Resize-VHD –Path c:\BaseVHDX.vhdx –ToMinimumSize (Más información Aquí)
Nos vemos en la próxima…
COSA # 72: VER EL DESEMPEÑO DE LA MAQUINA EN SERVER MANAGER
Hola amigos hoy les voy a mostrar una funcionalidad bastante útil de Server Manager en Windows Server 2012 R2, la cual nos permite tener una vision del desempeño de la máquina en cuanto a las variables más importantes como lo son CPU, Disco, Memoria y Red.
Esta funcionalidad hay que activarla en Server Manager para que empiece a operar y así poder tener dichos gráficos.
Se activa de una manera muy simple, como se ve en la siguiente secuencia:
Se selecciona la máquina a la cual se le va activar la funcionalidad
Se hacer clic derecho y se selecciona Start Performance Counters
¡Y listos!
Si quieren ver el proceso y los gráficos obtenidos, pueden ver el siguiente video para más información.
Recuerden que estamos en la era del Cloud OS de Microsoft, así que no esperen para conocer más en http://www.microsoft.com/es-es/server-cloud/default.aspx#fbid=xMUOqhH2UpF