Las opiniones reflejadas en este Blog son personales. La información se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.
O lo que es lo mismo, cómo evitar que dos máquinas virtuales coincidan en el mismo nodo de un cluster. Esto puede tener ciertas aplicaciones para aumentar la alta disponibilidad y la tolerancia a fallos de lo que quiera que sea que este corriendo por encima. Por ejemplo:
Esto obviamente se puede hacer solo si tenemos más de dos nodos en el cluster, y generalmente se logra mediante la configuración de los “Possible Owners” del grupo. A mayor número de nodos, más podemos confiar en que de este modo disminuya la probabilidad de que ciertos grupos coincidan en el mismo host.
Si queremos un mayor grado de control podemos usar una propiedad pública que puede tener todo grupo de cluster llamada AntiAffinityClasNames. Dicha propiedad puede almacenar un cierto numero de cadenas de caracteres que actúan a modo de etiquetas de modo que si en ese nodo está corriendo un grupo con una etiqueta coincidente, pasaremos al siguiente “possible owner”. Se especifica mediante este simple comando:
Siguiendo los ejemplos anteriores supongamos que en un cluster tenemos dos VMs que son dos controladores de dominio, que están definidas en dos grupos de cluster llamados DC1 y DC2. Además, DC2 es también a su vez un nodo de un cluster virtual de tres nodos, nodo1, nodo2 y DC2 (estupenda mala idea, pero si no no me sale el ejemplo). Entonces:
De este modo, DC1 y DC2 evitarán coincidir porque tienen "NoAjuntoAOtroDC" y nodo1, nodo2 y DC2 también se evitarán porque tienen ”NoAjuntoAOtroNodo”.
Es importante mencionar que aquí la palabra evitar no significa una prohibición total. Es decir, en caso de ser necesario, en última instancia los grupos pueden acabar por levantarse en el mismo nodo. Basta con probarlo en un cluster con solo dos nodos. La propiedad no evita el failover en ningún caso al no existir mas posibles propietarios que el único nodo que queda vivo.
La descripción exacta del comportamiento del sistema de failover, un artículo un poco más extenso sobre todo esto, y la descripción de la propiedad AntiAffinityClasNames se pueden encontrar en estos enlaces:
Como reza el título, esto vale para cualquier tipo de grupo de recursos de cluster, y no solamente para VMs en HA. Huelga decir que estamos hablando de tolerancia a fallos. Los movimientos de maquinas virtuales entre nodos, manuales o automáticos, pueden llegar a tener una riqueza en su control mucho más fina.
Saludos
David Cervigón