Hyper-V 2012 R2, Alta Disponibilidad Low Cost

Aquí va una entrada larga pero espero que os parezca interesante. Como la cosa está malita y se supone que ya estamos empezando a salir de la famosa crisis (y creo que queda mucho para salir, por desgracia), vamos a montar un entorno en el que tengamos alta disponibilidad para evitar que nuestras máquinas virtuales se queden sin servicio en ningún momento y todo por el mínimo importe jejejeje. No usaremos ninguna consola tipo System Center (muy caro), lo cual no nos proporcionara sus características pero podremos montar un entorno como el siguiente. Quiero destacar que esta entrada vendría bien para Pymes o empresas con poco presupuesto.

Servidores que vamos a usar:
-RAIKAGE: Windows Server 2012 R2 con el rol de controlador de dominio
-VM2012R2-SAN: Windows Server 2012 R2 que hará de servidor de destino iSCSI
-HV2012R2-C1: Windows Server 2012 R2 con el rol de Hyper-V, formará parte del cluster.
-HV2012R2-C2: Windows Server 2012 R2 con el rol de Hyper-V, formará parte del cluster.

En esta entrada me voy a enfocar solo en montar una estructura para un Failover Clúster pero no explicare como montar el Quorum o redes dedicadas para cada necesidad para evitar hacer una entrada demasiado larga, en la siguiente entrada entro más en detalle por si queréis cogerla como ejemplo Failover Cluster (Cluster de conmutación por error) en Hyper-V R2 con VMM 2008 R2 .Normalmente intento ponerlo todo aunque sea repetido, pero por tema de tiempo me veo obligado a hacerlo de esta manera. Intentaré que no sea así en futuras entradas. En resumen, la estructura que vamos a montar es funcional pero no óptima para ponerla en producción. Si deseamos que lo sea solo debemos de agregar redes para que se usen específicamente para algunos trabajos y un disco de Quorum, insisto en que lo explico todo en el artículo antes mencionado.

Cabina iSCSI
Lo primero que vamos a hacer es crear una cabina iSCSI con un Windows Server 2012 R2, ya hicimos lo mismo con un Windows Server 2008 R2 con iSCSI Software Target 3.3 (http://elinformatiku.es/?p=462). Ahora en Windows Server 2012 R2 iSCSI Target viene como un role propio del sistema operativo.
Sobre el servidor que vaya a hacer de cabina, en mi caso es una máquina virtual que se llama VM2012R-SAN agregamos el role Servidor del destino iSCSI (iSCSI Target Server).

Agregamos características.

Pinchamos en Confirmación.

Instalar.

Una vez finalizada la instalación nos dirigimos al Administrador del servidor, pinchamos en Servicios de archivos y de almacenamiento.

Sobre iSCSI pinchamos en Crear un disco virtual iSCSI. Recordar que la consola del Administrador del servidor es un poco bobaca, si pinchamos y nos sale el asistente para instalar los roles, cerramos y pinchamos sobre el botón de actualizar y ahora sí debería de salir el asistente que deseamos.

Seleccionamos donde queremos guardar el disco virtual iSCSI, seleccionamos el servidor y el volumen donde se almacenaría. Recordar que esto es solo un laboratorio y voy a guardar los discos virtuales en el mismo disco que está el SO, no es lo recomendable, lo suyo es tener discos destinados a este propósito. Podemos personalizar la ruta, en mi caso he dejado la de por defecto. Siguiente.

Asignamos un nombre al disco virtual y una descripción (esto no es obligatorio), Siguiente.

Le asignamos un tamaño y como esto es un laboratorio voy a marca que el disco virtual se expanda dinámicamente (irá ocupando espacio según se usa), en entornos productivos se debe de seleccionar siempre fijo para que ocupe y reserve su espacio.

Creamos un destino iSCSI.

Asignamos un nombre de destino y Siguiente.

Si nuestros servidores son Windows Server 2012 podremos usar su nombre FQDN para identificar el iniciador, Agregar.

Nos mostrara el iniciador del servidor seleccionado, ahora vamos a agregar el otro servidor de nuestro clúster, solo tenemos que pinchar en Agregar y volver a hacer el mismo paso anterior. Siguiente.

Si queremos agregar seguridad podemos hacer que las comunicaciones se autentiquen. Siguiente.

Vemos el resumen y pinchamos en Crear.

Cuando esté completado nos dejará Cerrar.

En el Administrador del servidor podremos ver el disco virtual iSCSI creado y el destino.

Si pinchamos con el botón secundario sobre el VHD podremos ver las distintas acciones que podemos hacer sobre ese VHD, hay que destacar la opción de expandirlo.

Vincular el destino iSCSI a nuestros servidores clientes
Sobre uno de los servidores donde vamos a usar el disco iSCSI, yo lo voy a hacer sobre el host HV2012R2-C1 abrimos el Panel de control y abrimos el Iniciador iSCSI, también podemos buscarlo en la pantalla de inicio simplemente escribiendo el nombre.

Pinchamos en Si para que nos inicie el servicio automáticamente.

Sobre la pestaña Detección pinchamos sobre Detectar portal.

Introducimos el nombre de la cabina y Aceptamos.

Quedará así.

Sobre la pestaña Destinos seleccionamos el destino (si no nos aparece pinchamos sobre actualizar) y pinchamos en Conectar.

Aceptamos.

Nos fijamos que el destino ha cambiado a Conectado.

Si vamos al Administrador de discos veremos que nos aparece el disco.

Lo primero que haremos con el sería ponerle en línea.

Inicializamos el disco.

Aceptamos.

Creamos partición.

Siguiente.

Siguiente.

Le asignamos una letra. Siguiente.

Asignamos una etiqueta, Siguiente.

Finalizar.

Ahora añadiremos este mismo disco al segundo Host del clúster. Sobre el host HV2012R2-C2. Abrimos el Panel de control y abrimos el Iniciador iSCSI, también podemos buscarlo en la pantalla de inicio simplemente escribiendo el nombre.

Pinchamos en Si para que nos inicie el servicio automáticamente.

Sobre la pestaña Detección pinchamos sobre Detectar portal.

Introducimos el nombre de la cabina y Aceptamos.

Quedará así.

Sobre la pestaña Destinos seleccionamos el destino (si no nos aparece pinchamos sobre actualizar) y pinchamos en Conectar.

Aceptamos.

Nos fijamos que el destino ha cambiado a Conectado.

Si vamos al Administrador de discos veremos que nos aparece el disco, pero no está en línea.

Lo ponemos en Linea.

Y le asignamos una letra, el resto de pasos no hacen falta porque ya los realizamos desde el otro Host.

Instalación y configuración de la Característica de Windows Clúster de conmutación por error (Failover Clustering)
Los pasos son los mismos en los dos Host (HV2012R2-C1 y HV2012R2-C2). Solo lo voy a mostrar con uno de ellos, HV2012R2-C1.

Abrimos el Administrador del servidor, Agregar roles y características.

Seleccionamos el servidor y pinchamos directamente sobre Características. Seleccionamos Clúster de conmutación por error. Agregamos las características que nos especifica. Siguiente.

Marcamos que reinicie automáticamente e Instalar.

Repitiendo estos pasos en el otro servidor ya tendremos instalada la característica de Clúster de conmutación por error en ambos servidores.

Ahora vamos a abrir la consola Administrador de clústeres de conmutación por error (Failover CLuster Manager). Podemos encontrarla en Panel de Control/Herramientas Administrativas, en el menú de herramientas del Administrador del propio servidor o buscándolo en el menú de inicio.

Ahora en la consola pinchamos con el botón derecho sobre el árbol del administrador de clústeres y seleccionamos Crear Clúster.

Siguiente.

Agregamos los dos servidores.

Ejecutamos las pruebas de validación. Siguiente.

Siguiente.

Ejecutar todas.

Podemos ver todas las pruebas que se van a realizar. Siguiente.

Al finalizar podremos ver un informe donde podemos ver las advertencias y errores, si pinchamos sobre ellos nos pondrá el motivo del error para solucionarlo. A mí me dio una advertencia porque los host solo tienen una tarjeta de red. Finalizar.

Una vez pasadas las pruebas, Pondremos un nombre al clúster y le asignaremos una IP. Siguiente.

Siguiente

Finalizamos.

Ahora si vamos a la consola de Usuarios y equipos del dominio veremos que ha creado un equipo con el nombre del clúster y su respectiva entrada en el DNS.

Sobre la consola del Administrador de Clústeres veremos que nos ha creado el nuevo clúster.

Habilitar Volúmenes Compartidos de Cluster 2.0 (CSV, Cluster Shared Volumen)
Esta es una de las novedades que trae Windows Server 2012 y lo que permite en resumidas cuentas es que más de un nodo pueda acceder a un almacenamiento. Con esto podremos crear un clúster de máquinas virtuales.

Abrimos la consola del Administrador de Clústeres, expandimos el árbol de nuestro clúster, almacenamiento, discos. Sobre el disco que hemos creado al principio de la entrada, pinchamos con el botón secundario y pinchamos sobre Agregar a volúmenes compartidos de clúster, también podemos encontrarlo sobre las acciones del disco.

Seguro que os quedáis esperando a que salga una ventada de algo, pues no ;-). Si vamos a las propiedades del disco podremos ver que ha asignado el disco del clúster a una ruta del disco del Host, y no a una unidad directamente. La ruta que ha generado es C:\ClusterStorage\Volume1.

Si abrimos el administrador veremos que en el disco el sistema de ficheros pone CSVFS (CSV Proxy File System (la P no aparece)) en vez de NTFS. El disco sigue funcionando como NTFS pero de esta manera permite que las aplicaciones sepan que se está trabajando con un disco CSV.

Configurar CSV Cache para entornos de Hyper-V
Una de las novedades de CSV es la de habilitar CSV Cache. Cuando está configurado CSV Cache usa memoria RAM para cachear la información, aportando un alto rendimiento a las aplicaciones. Como máximo se puede usar el 20% de la RAM. El valor por defecto que aplica es 512 MB pero es suficiente para casi todos los escenarios.

Para saber que memoria asignada usaremos el siguiente comando de PowerShell.
(Get-Cluster). BlockCacheSize

Para modificarlo cambia el comando de la versión 2012 y 2012 R2.
Con Windows Server 2012:
(Get-Cluster). SharedVolumeBlockCacheSizeInMB = 1024
Con Windows Server 2012 R2:
(Get-Cluster). BlockCacheSize = 1024

Ahora vamos a activarlo. Primero miramos el nombre de nuestro CSV.
Get-ClusterSharedVolume

Para activarlo también cambia el comando de la versión 2012 y 2012 R2.
Con Windows Server 2012:
Get-ClusterSharedVolume “Disco de clúster1” | Set-ClusterParameter CsvEnableBlockCache 1
Con Windows Server 2012 R2:
Get-ClusterSharedVolume “Disco de clúster1” | Set-ClusterParameter EnableBlockCache 1

Tal y como nos advierte debemos de Desconectar y volver a conectar el disco. Desconectamos.

Si.

Una vez Sin conexión volvemos a Poner en conexión.

Con este último paso tendríamos habilitado por completo el CSV Cache.

Crear una máquina virtual en alta disponibilidad
Ahora que ya tenemos el clúster montado vamos a crear una Máquina virtual en alta disponibilidad para que en el caso de que por cualquier circunstancia se desconecte uno de los host que pertenece al clúster la máquina siga funcionando en otro host del clúster. Para ello y algo muy importante es que tanto la máquina virtual y el almacenamiento se guarde en un disco del clúster.
Abrimos la consola Administrador de clústeres de conmutación por error, pinchamos en Roles con el botón secundario y seleccionamos Nueva Máquina Virtual.

Seleccionamos en que Host del clúster queremos que se cree la máquina.

Siguiente.

Le asignamos un nombre y le decimos que guarde la máquina en un disco del clúster.

Generación 2 por ejemplo.

Yo dispongo de poca RAM en los Host así que lo dejo con 512.

Le ponemos conexión a la red para hacer pruebas luego (recordar que deben de tener todos los host las mismas redes o las redes que usen las máquinas). Siguiente.

Guardamos el almacenamiento en el disco del clúster.

Dejamos el SO para después.

Finalizar.

Automáticamente configurará la alta disponibilidad en la máquina y nos mostrará un informe por si fallase o hubiera que tener algo en cuenta. Finalizar.

Y ya tenemos nuestra máquina preparada para instalar el SO.

Ahora podemos manejar la máquina virtual como si se hiciera desde la consola de Hyper-V. No voy a poner como se instala el SO para no alargar.

Live Migration en un entorno de Cluster
Ahora que ya tenemos la máquina virtual en alta disponibilidad vamos a ver como migrar de host la misma con live migration. En la entrada Hyper-V 2012 R2, Migración en vivo (Live Migration) explico cómo funciona live migration en un entorno que no sea de clúster. El funcionamiento sobre un clúster y una máquina en alta disponibilidad cambia respecto a un entorno no clúster. En un entorno de clúster los archivos de la máquina están en un disco o discos al cual tienen acceso todos los nodos del clúster y lo único que cambia es quien gestiona la máquina, la migración es casi instantánea.
Sobre cada Host deberemos de activar el Live Migration (en mi caso HV2012R2-C1 y HV2012R2-C2). En la consola de Hyper-V pinchamos con el botón secundario sobre cada host y pinchamos en Configuración de Hyper-V.

Vamos a Migraciones en vivo lo dejamos todo según las imágenes. Recordar que si queréis indagar más en el tema de la redes y personalizarlo más lo explico en el anterior enlace.

Ahora nos vamos de nuevo a la consola Administrador de clústeres de conmutación por error.
Pinchamos con el botón secundario sobre Redes y pinchamos en Configuración de Migración en vivo. Con esto le indicaremos que red queremos que se realice el Live Migration. Como explique al principio la opción lo más óptima es dedicar una red solo a esto, pero simplemente voy a mostrar cómo se configura la opción.

Seleccionamos la red que queremos usar, en este ejemplo solo tengo una. Aceptamos.

Ahora nos dirigimos a la máquina, botón secundario, Mover, Migración en vivo, Seleccionar nodo. Veréis que también tenemos otra opción que se llama migración rápida. La diferencia entre ambos es que con la Migración en vivo no se pierde conectividad y en la Migración rápida hay un pequeño micro corte.

Le indicamos a que servidor queremos que pase a ser propietario.

El cambio tiene que ser instantáneo, en mi caso no ha sido así, ¿y eso? pues porque estoy virtualizando los host de Hyper-V sobre VMware Workstation y la máquina sobre la que lo tengo es bastante limitada L (es lo que tiene ser pobre XD). Veremos que el estado de la máquina pone: Migración en vivo. Una vez finalizada podremos ver que ha cambiado el nodo propietario.

Aquí tenéis una muestra del corte que ha sufrido, que se supone que en un entorno optimo no debería de pasar.

Para mover la máquina por PowerShell seria:
Move-VM “nombre de la máquina virtual” “Servidor de destino”
Move-VM “VM8-1” HV2012R2-C2get-help move-vm

Prioridad de inicio de las Máquinas Virtuales de un Cluster
Creo que se entiende con el título, pero debemos de darnos cuenta que normalmente necesitaremos que unas máquinas levantes antes que otras, como por ejemplo, lo primero que necesitaremos que levante sería el controlador de dominio. Imaginaros que tenéis virtualizada una máquina que haga de cabina de iSCSI y esta suministra discos a un clúster de máquinas virtuales, necesitaremos que primero encienda la cabina y después los nodos del clúster.
Solo tendremos que pinchar con el botón secundario sobre la máquina virtual y decirle si queremos que tenga Alta, Media, Baja prioridad o que no arranque automáticamente.

Bueno, sé que ha sido una entrada muy larga pero espero que os merezca la pena. Agradecería que comentarais si os ha gustado y si preferís que las entradas sean así de largas o que se dividan en varias entradas, gracias!!!!!

Para esta entrada me he documentado con el libro Windows Server 2012 Hyper-V Cookbook, de la web oficial TechNet de Microsoft (http://technet.microsoft.com/es-ES/) y del gran blog de Guillermo Delprato (http://windowserver.wordpress.com/)

 

4 pensamientos en “Hyper-V 2012 R2, Alta Disponibilidad Low Cost

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *