Clústeres Virtuales (guest clustering)

Hola

Como continuación del post en el que hablaba sobre clústeres de Hyper-V (host clustering) y clústeres virtuales (guest clustering), aquí van un par de diagramas de como quedaría una solución con “guest clustering” sobre un host clustering, que, salvo por aspectos puntuales, es válido para cualquier plataforma de virtualización. Si lo quieres reutilizar y te viene bien el Visio original, no dudes en contactar conmigo.

A modo de resumen de aquel post, las controladoras SCSI virtuales que introduce Hyper-V en la máquinas virtuales no nos sirven para montar un bus de almacenamiento compartido apropiado para clustering, ni para Windows Server 2003 ni para Windows server 2008, por lo que cualquier intento de usar VHDs o discos Pass-Through conectados simultáneamente a cualquier controladora virtual de una VM montada en Hyper-V será en vano. Decíamos también que tanto Virtual Server 2005 como diversos productos de vmware emulan en las máquinas virtuales unas controladoras SCSI que si son válidas para formar clústeres de Windows Server 2003, pero que en el caso de Windows Server 2008 solo se soporta Fiber Channel , iSCSI o SAS como bus compartido para un Failover Cluster, con lo que en este caso tampoco nos vale la clásica estrategia. En resumidas cuentas, que el futuro del “guest clustering” con sistemas operativos Microsoft pasa por el uso de iSCSI.

Esto plantea una ventaja y un inconveniente. La ventaja es que el almacenamiento se le presenta a las máquinas virtuales que conforman los nodos del cluster directamente sin pasar por los host de virtualización. La desventaja es que no todo el mundo dispone de almacenamiento que sea capaz de utilizar iSCSI, si bien esto parece que es una tendencia que va a más, a medida de que nos vamos dando cuenta de que habíamos descartado las capacidades del cobre antes de tiempo. Luego volveré sobre este punto.

Este es el esquema de una solución basada en tres hosts que conforman un cluster, sobre el que se albergan un cierto número de servidores virtuales, dos de los cuales forman un cluster virtual:

Clusteres Virtuales

Como se puede observar, los hosts están conectados a la SAN a través de diferentes fabrics de fibra y ethernet, a la que se conectan a través de sus HBAs y NICs (dedicadas). Desde las cabina se presentan un cierto numero de LUNs a los nodos. Las que serán específicas de cada nodo se presentan individualmente, y las que se usarán como almacenamiento compartido del cluster se las presentamos a todos. En estas últimas almacenaremos los VHDs de nuestras máquinas virtuales, aunque alguna puede incluso tener asociada su propia LUN por razones diversas, o porque se vaya a usar en pass-through.

Para formar el almacenamiento compartido del cluster virtual, presentamos desde la cabina los volúmenes que vayamos a necesitar a través de iSCSI. Una vez hecho esto, configuramos los “iSCSI Initiators” del sistema operativo de la máquina virtual para que se conecte al target de la cabina y monte los volúmenes que se les han asignado. Este es el detalle de cómo queda el cluster virtual:

Clusteres Virtuales-detail

Los nodos virtuales en este caso se comportan exactamente igual que lo haría un cluster físico que se montara con iSCSI, y por tanto, se deben seguir las mismas recomendaciones para su configuración. Necesitaremos una par de NICs virtuales para atender a los clientes y para el heartbeat (no represento su conectividad), y es conveniente dedicar una NIC virtual para iSCSI. También sería una buena idea dedicar switches virtuales en el host para conectar a los switches físicos que nos conectan con la cabina.

Como decía, hay muchas ocasiones en las que no tenemos una cabina que “hable” iSCSI, o simplemente en las que no tenemos almacenamiento compartido. Tanto para simular entornos de producción como por mero aprendizaje, es interesante montar tanto clústeres físicos como clústeres virtuales. En ese caso, ¿como nos las apañamos?.

Existe un buen número de Targets iSCSI por software e incluso emuladores de SAN (OpenFiler, OpenNAS, FreeNAS, etc.), que se pueden montar tanto en físico como en virtual. Encontrar uno no nos garantiza el poder formar un cluster de Windows Server 2008 (aunque si 2003), porque muchos de ellos implementan un target NetBSD/FreeBSD que a fecha de hoy no soporta SCSI-3. Tampoco he probado los targets que implementan algunos *nix (SUSE, OpenSolaris, etc.)

Entre los que sé que funcionan (ejemplo 1, ejemplo 2), se encuentran:

Después de releer este ladrillo, no sé si esto será aclaratorio o si simplemente aumenta vuestro nivel de confusión. Espero que no.

Saludos

David Cervigón