El presente artículo describe la instalación de un Failover Cluster en Windows Server 2008 R2 con Almacenamiento Asimétrico y Nodos de Respaldo sin Voto para Mayoría, una configuración típica con SQL Server 2012 AlwaysON Availability Groups.
Téngase en cuenta que el alcance del presente artículo no incluye la instalación de SQL Server 2012 ni la configuración de AlwaysON. Esas son tareas posteriores, que deberan ser realizadas después de la correcta configuración del Cluster, y que intentaré incluir en un futuro artículo.
Antes de comenzar la lectura del presente artículo, es muy recomendable haber leído el artículo anterior, SQL Server 2012 AlwaysON Availabity Groups (AG), el cual describe los conceptos necesarios para poder comprender mejor esta tecnología y evitar dudas innecesarias durante esta lectura. Dicho esto, empezamos.
Descripción del entorno de Laboratorio y algunas consideraciones de Diseño
Partimos de un entorno de Laboratorio formado por un Dominio de Directorio Activo (guillesql.local, con nombre NetBIOS de GUILLESQL) formado por un único Controlador de Dominio ejecutando Windows Server 2003 R2 SP2 (VDC01).
Sobre este dominio, tenemos tres máquinas denominadas VSQL2012A, VSQL2012B y VSQL2012C, todas ellas ejecutando Windows Server 2008 R2.
Las máquinas VSQL2012A y VSQL2012B tienen un disco local C, y un par de Discos Compartidos (F y Q), mientras que la máquina VSQL2012C tan sólo tiene un par de discos locales (C y F), por lo que montaremos un Failover Cluster con Almacenamiento Asimétrico.
Por otro lado, el objetivo del presente Failover Cluster es montar una Instancia de SQL Server en Cluster (FCI) para aportar HA (formada por VSQL2012A y VSQL2012B) junto con una tercera Instancia de SQL Server en Standalone (VSQL2012C) para propósitos de DR.
Debido a que el tercer Nodo (VSQL2012C) tan sólo se quiere utilizar para DR, no se desea que pueda tener Voto para formar Mayoría en el Cluster, de tal modo, que una indisponibilidad en dicho Nodo (VSQL2012C) o incluso un problema de comunicaciones que lo deje aislado, no afecte al cálculo de la Mayoría, evitando indisponibilidades innecesarias. Por este motivo, vamos a utilizar un FileShare como Quorum, que junto con los otros dos Nodos (VSQL2012A y VSQL2012B) nos permite que tengamos tres posibles Votos, ya que VSQL2012C lo configuraremos para que no tenga Voto.
Pasos Previos a la Instalación
Antes de empezar deberemos de instalar el Service Pack 1 de Windows Server 2008 R2, si es que aún no lo tenemos instalado. Entre otros motivos, el Service Pack 1 nos permitirá poder utilizar el Almacenamiento Asimétrico en nuestro Failover Cluster.
Del mismo, para poder configurar qué Nodos del Cluster deseamos que tengan o que no tengan Voto, deberemos instalar en todos los Nodos del Failover Cluster el siguiente HotFix (require reinicio): A hotfix is available to let you configure a cluster node that does not have quorum votes in Windows Server 2008 and in Windows Server 2008 R2
Además, deberemos añadir en todos los servidores, las siguientes dos Características (Features), ya sea utilizando la interfaz gráfica o por comandos: El .NET Framework 3.5.1 (requerido para la posterior instalación de SQL Server) y el Failover Clustering.
Además, deberemos de solicitar un Nombre y una Dirección IP para nuestro Cluster, ya que los necesitaremos para poder crear el Cluster. En nuestro caso de ejemplo, utilizaremos el nombre VSQL2012CLUS y la dirección IP 192.168.69.20.
Del mismo modo, necesitaremos solicitar la creación de un Share para utilizar como FileShare Witness en el Failover Cluster, el cual, debe tener permisos de lectura/escritura para las cuentas de equipo correspondientes a los Nodos del Cluster. En nuestro caso de ejemplo, utilizaremos un Share ubicado en el Controlador de Dominio del Laboratorio, cuya ruta UNC es la siguiente: \\vdc01\ShrWitnessSQL2012
Realizado todo esto, estamos en situación de poder a realizar nuestra configuración.
Instalando un Failover Cluster de 3 Nodos para AlwaysON: una instancia en Cluster y otra Standalone
Lo primero que vamos a hacer es crear el Cluster. Para ello, abriremos la Herramienta Administrativa de Failover Cluster Manager, y utilizaremos la opción Create a Cluster.
Se mostrará el Wizard para la creación del Cluster (Create Cluster Wizard). En la pantalla de bienvenida, click Next para continuar.
En la pantalla Select Servers, deberemos seleccionar los tres servidores que van a formar nuestro Cluster (VSQL2012A, VSQL2012B y VSQL2012C), tal y como se muestra en la siguiente pantalla capturada. Click Next para continuar.
Como no hemos pasado aún el Test de Validación de nuestro Cluster (Cluster Configuration Validation Test), en la pantalla Validation Warning nos pregunta si deseamos pasarlo ahora. Indicamos que Yes, y click en Next para continuar.
Realizado esto, se mostrará el Asistente para Validar la Configuración del Cluster (Validate a Configuration Wizard). En la pantalla de bienvenida, click Next para continuar.
En la pantalla Testing Options, seleccionaremos que deseamos ejecutar todos los tests. Click Next para continuar.
En la pantalla Confirmation revisaremos el detalle de las opciones de la validación que vamos a realizar, y seguidamente click Next para continuar.
La validación puede tardar unos minutos, tras lo cuáles finalizará y se mostrará la pantalla Summary, en la cual podremos ver un resumen de la validación realizada, así como podremos acceder a un Report con información más detallada de dicha validación. En nuestro caso de ejemplo, haremos click en el botón View Report para continuar.
En nuestro caso de ejemplo, comprobamos que tan sólo teníamos un par de Warnings en la categoría Storage, relacionados con los discos correspondientes al Almacenamiento Asimétrico, es decir, un par de discos compartidos que tan sólo son visibles por un par de Nodos (VSQL2012A y VSQL2012B), mientras que no son visibles por el tercer Nodo de respaldo (VSQL2012C). La existencia de Almacenamiento Asimétrico se muestra como un Warning. En nuestro caso, el Almacenamiento Asimétrico es justo lo que deseamos, por lo que podemos dar por hecho que nuestro Cluster cumple satisfactoriamente con los requisitos de validación.
Cerraremos el Report, y volveremos al asistente de creación de nuestro Cluster.
En la pantalla Confirmation, revisamos que todos los datos son correctos. Click Next para continuar.
La creación del Cluster puede tardar unos minutos, durante los cuales, se mostrará la pantalla Summary, con el resultado de la creación del Cluster. Cabe destacar, que por defecto, la gestión del Quorum será por Mayoría de Nodos (Node Mayority).
Ya hemos creado nuestro Cluster. Próximo paso, configurar el Quorum.
Configurar el Quorum de nuestro Failover Cluster
A continuación vamos a configurar un FileShare como Witness, de tal modo que tenga un voto adicional, y seguidamente, vamos a configurar el Nodo VSQL2012C para que no tenga voto. De este modo, habrá tres posibles votos, los Nodos VSQL2012A y VSQL2012B junto con el FileShare. Esto significa, que ante una indisponibilidad del Nodo de respaldo (VSQL2012C), nuestro Cluster será capaz de aguantar aún otro fallo (ej: una caída del FileShare Witness, o una caída de uno de los Nodos del Cluster), ya que seguirá teniendo Mayoría. Si no hacemos todo esto, en caso de una indisponibilidad del Nodo de respaldo, la caída de otro de los Nodos implicaría una pérdida de servicio, ya que al no tener mayoría, el servicio de Cluster se pararía.
Dicho esto, para configurar el Quorum incluyendo un FileShare, vamos a utilizar la opción Configure Cluster Quorum Settings del Failover Cluster Manager.
En la página de bienvenida del asistente de configuración del Quorum (Configure Cluster Quorum Wizard), click Next para continuar.
En la pantalla Select Quorum Configuration, seleccionaremos la opción Node and File Share Majority. Clic Next para continuar.
En la pantalla Configure File Share Witness, especificaremos la ruta UNC del File Share que deseamos utilizar. Debemos recordar que todos los Nodos del Cluster deben tener concedido acceso de Lectura/Escritura para sus Cuentas de Equipo sobre dicho Recurso. Click Next para continuar.
Revisaremos la información de resumen, y si todo está OK, click en Next para cambiar la configuración de Quorum del Cluster.
En unos escasos segundos, el Cluster habrá quedado configurado con el FileShare Witness, conforme a nuestras necesidades. Click Finish.
OK. Con esto, ahora tendremos cuatro posibles Votos, uno por cada Nodo del Cluster más un Voto adicional correspondiente al FileShare Witness. El siguiente paso, es configurar el Nodo de Respaldo (VSQL2012C) para que no tenga Voto, de tal modo que quede un número impar de posibles Votos, y además que el Nodo de Respaldo no afecte a la Mayoría, evitando indisponibilidades innecesarias.
Para configurar el Nodo de Respaldo (VSQL2012C) para que no tenga Voto, una vez instalado el HotFix KB2494036, deberemos configurar la propiedad NodeWeight del Nodo en cuestión utilizando PowerShell, de forma similar a como se muestra en la siguiente pantalla capturada.
Como podemos ver, utilizando PowerShell también podemos consultar qué Nodos tienen Voto en nuestro Cluster. En cualquier caso, para un Administrador de SQL, quizás resulte más fácil utilizar el AlwaysON Dashboard, para a través de la opción View Cluster Quorum Information, consultar la configuración de Quorum de nuestro Cluster.
Incluso podemos añadir esta información directamente al AlwaysON Dashboard, para tenerla más accesible.
Despedida y Cierre
Hasta aquí llega el presente artículo, en el cual hemos podido ver cómo realizar la instalación y configuración del Failover Cluster previo a la instalación de SQL Server 2012 con AlwaysON Availabity Groups, incluyendo una configuración de Almacenamiento Simétrico y una configuración de Quorum con un FileShare Witness y Nodos sin Voto. Una configuración bastante típica, al trabajar con SQL Server 2012 AlwaysON, y además, didácticamente muy interesante.
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.