Una de las nuevas características de Hyper-V en Windows Server 2012 R2 es la posibilidad de que dos máquinas virtuales puedan compartir un disco virtual (VHDX) lo que permite la creación de “Failover Cluster” virtual sin necesidad de acceso del cluster virtual a iSCSI o fibra óptica
En primer momento me pareció algo sencillo y rápido de demostrar, pero me llevé una sorpresa, no es tan así, hay muchos detalles a tener en cuenta y procedimientos a ejecutar
Lo que necesitaremos serán cuatro máquinas para crear un Failover Cluster, donde luego crearemos nuestro Cluster Virtual que compartirán un disco VHDX
Para mostrar el objetivo, un dibujo muestra más que mil palabras
Para crear el Failover Cluster usaremos cuatro máquinas con Windows Server 2012 R2:
- Controlador de Dominio: DC1
- Nodo1 del Cluster con Hyper-V: HYPER1 (Inicial con 3 placas de red)
- Nodo2 del Cluster con Hyper-V: HYPER2 (Inicial con 3 placas de red)
- Servidor en grupo de trabajo emulando una SAN: SAN
La configuración básica de cada uno de los equipos está detallada en la siguiente tabla. Las cuatro máquinas sobre fondo celeste son las máquinas reales, mientras que las otras dos (GuestNodo1 y GuestNodo2) serán los nodos del Cluster virtual
Las dos máquinas HYPER1 e HYPER2 deben soportar Hyper-V. Como hemos comentado en otras ocasiones pueden tratarse de máquinas reales, o como en mi caso, todo está virtualizado sobre VMware Workstation ya que permite Hyper-V en una máquina virtual
Recuerdo para el que no tenga VMware Workstation que se pueden bajar versiones de prueba de 30 días
Como infraestructura incial, que supongo que nadie que lea esto tendrá dudas en crear, tenemos creado el Dominio, y agregadas al mismo las máquinas HYPER1 e HYPER2
Como una forma de facilitar la configuración, y no confundirse, incialmente la creo con una única placa de red, uno la máquina al Dominio, y luego agrego "HeartbeatNet" y "SanNet". Recién más adelante, agregaré "HeartbeatCluster Network"
También he modificado la “Default Domain Policy” de forma tal que las redes desconocidas las tome como privadas para evitarnos problemas con los cortafuegos y las comunicaciones entre los nodos del Cluster. Esto se hace de forma muy sencilla modificando la “Default Domain Policy” como muestra la siguiente pantalla
En las siguientes pantallas pueden observar la configuración inicial de red de HYPER1 e HYPER2. Como es mi costumbre, y recomiendo, he renombrado las interfaces de red, ya que usaremos varias (4) y es muy importante no confundirlas
Es importante notar que salvo la interfaz que conecta al Dominio (DomainNet), en las otras se debe desactivar la registración en DNS
El paso siguiente, y siempre en HYPER1 e HYPER2 es agregar la funcionalidad Hyper-V que no mostraré las capturas ya que entiendo que nadie que esté leyendo esto tenga dudas de cómo hacerlo. La única consideración es que no he creado ninguna red virtual durante la instalación, sino que lo he hecho posteriormente a la instalación a fin de asegurarme sobre a qué placa se conectará
Es muy importante que este “External Switch” se cree sobre la conexión “Domain Net”, lo cual podemos verificar viendo que sólo quedó marcada la opción del protocolo correspondiente
Dejemos por unos momentos estas dos máquinas virtuales, y configuremos el equipo SAN
A este equipo le he configurado dos discos virtuales que ofrecerá a los “iSCSI Initiators” (HYPER1 e HYPER2); uno chico que se usará como disco “Witness” (Testigo), y otro que guardará el VHDX compartido para almacenamiento
Si alguien no recuerda la configuración de una SAN puede consultar: Windows Server 2012: Failover Cluster para Hyper-V (Parte 2 – Configurando la SAN)
Lo mismo para la configuración de los “iSCI Initiators) que haremos sobre HYPER1 e HYPER2, consultando: Windows Server 2012: Failover Cluster para Hyper-V (Parte 3 – Configurando los iSCSI Initiators)
En la siguente figura podemos ver la configuración en el equipo SAN
Luego en HYPER1 ponemos los discos “Online”, los inicializamos y creamos los volúmenes correspondientes
Luego, en HYPER2 solamente nos toca ponerlos “Online”
Siempre en HYPER1 e HYPER2, agregaré la última placa de red (la cuarta) que dedicaremos a la comunicación de los nodos del Cluster virtual que luego crearemos
La he denominado “GuestCluster” y he configurado las direcciones IP de acuerdo a la tabla al principio de la nota (HYPER1: 192.168.5.1/24 – HYPER2: 192.168.5.2/24)
El paso siguiente es instalar la funcionalidad Hyper-V en ambos nodos, que no demostraré cómo se hace ¿todos saben cómo no es cierto?
Y comenzaremos a la creación del Cluster real sobre HYPER1 e HYPER2
Validaré la configuración por las dudas
Me faltó una captura de pantalla: simplemente “Next”
Y comenzamos la creación del Cluster
Le asignamos nombre y dirección de red
Verificamos que ambos nodos estén “Online”
Verificamos que fueron asignados correctamente los discos (El más chico como “Witness”)
Y configuramos el disco de almacenamiento como “Cluster Shared Volume”
Por último y no sólo para por ser prolijo, sino para evitar confusiones, en cada una de las interfaces de red las he renombrado y asignado su uso. La “pista” para saber cuál es cuál es mirando el direccionamiento IP de cada una
Resumiendo lo hecho hasta ahora: ya tenemos creado y configuradas las redes que necesitaremos en las máquinas reales; y ya está creado y configurado el Cluster con las mismas
En la próxima nota continuaremos el tema creando el “Cluster Virtual”
Comments
Fatal error: Uncaught Error: Call to undefined function ereg() in F:\blogs.itpro.es\wp-content\themes\notesil\functions.php:333 Stack trace: #0 F:\blogs.itpro.es\wp-content\themes\notesil\functions.php(35): notesil_commenter_link() #1 F:\blogs.itpro.es\wp-includes\class-walker-comment.php(179): notes_comments(Object(WP_Comment), Array, 1) #2 F:\blogs.itpro.es\wp-includes\class-wp-walker.php(145): Walker_Comment->start_el('', Object(WP_Comment), 1, Array) #3 F:\blogs.itpro.es\wp-includes\class-walker-comment.php(139): Walker->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #4 F:\blogs.itpro.es\wp-includes\class-wp-walker.php(387): Walker_Comment->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #5 F:\blogs.itpro.es\wp-includes\comment-template.php(2174): Walker->paged_walk(Array, '5', 0, 0, Array) #6 F:\blogs.itpro.es\wp-content\themes\notesil\comments.php(25): wp_list_comments('type=comment&ca...') #7 F:\blogs.itpro.es\wp-includes\comment-template.php(1512): require('F:\\blogs.itpro....') #8 F:\ in F:\blogs.itpro.es\wp-content\themes\notesil\functions.php on line 333