Implementación de un clúster de Pacemaker para SQL Server en Linux
Se aplica a:
SQL Server (todas las versiones admitidas): Linux
En este tutorial se documentan las tareas necesarias para implementar un clúster de Pacemaker de Linux para un grupo de disponibilidad Always On (AG) de SQL Server o una instancia de clúster de conmutación por error (FCI). A diferencia de la pila ligada estrechamente de Windows Server/SQL Server, la creación de clústeres de Pacemaker, así como la configuración de grupos de disponibilidad (AG) en Linux, se pueden realizar antes o después de la instalación de SQL Server. La integración y configuración de los recursos para la parte de Pacemaker de una implementación de AG o FCI se realiza una vez configurado el clúster.
Importante
Un AG con un tipo de clúster de Ninguno no requiere un clúster de Pacemaker, ni se puede administrar mediante Pacemaker.
- Instalar el complemento de alta disponibilidad e instalar Pacemaker.
- Preparar los nodos para Pacemaker (solo RHEL y Ubuntu).
- Implementar un clúster de Pacemaker.
- Instalar los paquetes de SQL Server HA y Agente SQL Server.
Requisito previo
Instale el complemento de alta disponibilidad
Use la siguiente sintaxis para instalar los paquetes que componen el complemento de alta disponibilidad (HA) para cada distribución de Linux.
Red Hat Enterprise Linux (RHEL)
Registre el servidor con la siguiente sintaxis. Se le pedirá un nombre de usuario y una contraseña válidos.
sudo subscription-manager registerEnumere los grupos disponibles para el registro.
sudo subscription-manager list --availableEjecute el siguiente comando para asociar la alta disponibilidad de RHEL con la suscripción
sudo subscription-manager attach --pool=<PoolID>donde PoolId es el identificador de grupo para la suscripción de alta disponibilidad del paso anterior.
Habilite el repositorio para poder usar el complemento de alta disponibilidad.
sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpmsInstale Pacemaker.
sudo yum install pacemaker pcs fence-agents-all resource-agents
Ubuntu
sudo apt-get install pacemaker pcs fence-agents resource-agents
SUSE Linux Enterprise Server (SLES)
Instale el patrón de alta disponibilidad en YaST o hágalo como parte de la instalación principal del servidor. La instalación se puede realizar con una ISO/DVD como origen u obteniéndola en línea.
Nota
En SLES, el complemento de alta disponibilidad se inicializa cuando se crea el clúster.
Preparar los nodos para Pacemaker (solo RHEL y Ubuntu)
Pacemaker utiliza un usuario creado en la distribución denominada hacluster. El usuario se crea cuando se instala el complemento de alta disponibilidad en RHEL y Ubuntu.
En cada servidor que sirva como nodo del clúster de Pacemaker, cree la contraseña para un usuario que vaya a usar el clúster. El nombre que se usa en los ejemplos es hacluster, pero se puede usar cualquier nombre. El nombre y la contraseña deben ser los mismos en todos los nodos que participan en el clúster de Pacemaker.
sudo passwd haclusterEn cada nodo que va a formar parte del clúster de Pacemaker, habilite e inicie el servicio
pcsdcon los siguientes comandos (RHEL y Ubuntu):sudo systemctl enable pcsd sudo systemctl start pcsdDespués, ejecute
sudo systemctl status pcsdpara asegurarse que
pcsdse inicia.Habilite el servicio Pacemaker en cada nodo posible del clúster de Pacemaker.
sudo systemctl start pacemakerEn Ubuntu, verá un error:
Inicio predeterminado de Pacemaker no contiene niveles de ejecución, anulando.
Este error es un problema conocido. A pesar del error, la habilitación del servicio Pacemaker se realiza correctamente y este error se solucionará en algún momento en el futuro.
A continuación, cree e inicie el clúster de Pacemaker. Hay una diferencia entre RHEL y Ubuntu en este paso. En ambas distribuciones, la instalación de
pcsconfigura un archivo de configuración predeterminado para el clúster de Pacemaker; en RHEL, al ejecutar este comando, se destruye cualquier configuración existente y se crea un nuevo clúster.
Implementar un clúster de Pacemaker
En esta sección se documenta cómo crear y configurar el clúster para cada distribución de Linux.
RHEL
Autorice los nodos
sudo pcs cluster auth <Node1 Node2 ... NodeN> -u haclusterdonde NodeX es el nombre del nodo.
Creación del clúster
sudo pcs cluster setup --name <PMClusterName Nodelist> --start --all --enabledonde PMClusterName es el nombre asignado al clúster de Pacemaker y nodeList es la lista de nombres de los nodos separados por un espacio.
Ubuntu
La configuración de Ubuntu es similar a la de RHEL. Con todo, hay una diferencia importante: la instalación de los paquetes de Pacemaker crea una configuración base para el clúster y habilita e inicia pcsd. Si intenta configurar el clúster de Pacemaker siguiendo exactamente las instrucciones de RHEL, obtendrá un error. Para corregir este problema, siga los pasos que se indican a continuación:
Quite la configuración predeterminada de Pacemaker de cada nodo.
sudo pcs cluster destroySiga los pasos de la sección RHEL para crear el clúster de Pacemaker.
SLES
El proceso para crear un clúster de Pacemaker es completamente diferente en SLES que en RHEL y Ubuntu. En los pasos siguientes se documenta cómo crear un clúster con SLES.
Inicie el proceso de configuración del clúster mediante la ejecución de
sudo ha-cluster-initen uno de los nodos. Es posible que se le pida que NTP no esté configurado y que no se encuentre ningún dispositivo guardián. De esta manera, podrá poner en marcha el proceso. El guardián está relacionado con STONITH si usa barreras integradas de SLES que se basan en el almacenamiento. NTP y el guardián se pueden configurar más adelante.
Se le pedirá que configure Corosync. Se le pedirá la dirección de red a la que se va a enlazar, así como la dirección y el puerto de multidifusión. La dirección de red es la subred que está usando; por ejemplo, 192.191.190.0. Puede aceptar los valores predeterminados en cada solicitud o cambiarlos si es necesario.
A continuación, se le preguntará si desea configurar SBD, que es la barrera basada en disco. Esta configuración se puede realizar más adelante si lo desea. Si SBD no está configurado, a diferencia de RHEL y Ubuntu,
stonith-enabledse establecerá de forma predeterminada en false.Por último, se le preguntará si desea configurar una dirección IP para la administración. Esta dirección IP es opcional, pero funciona de forma similar a la dirección IP de un clúster de conmutación por error de Windows Server (WSFC) ya que crea una dirección IP en el clúster que se va a usar para conectarse a la misma a través de HA Web Konsole (HAWK). Esta configuración también es opcional.
Para asegurarse de que el clúster está en funcionamiento
sudo crm statusCambie la contraseña de hacluster con
sudo passwd haclusterSi ha configurado una dirección IP para la administración, puede probarla en un explorador, que también prueba el cambio de contraseña de hacluster.

En otro servidor SLES que será un nodo del clúster, ejecute
sudo ha-cluster-joinCuando se le pida, escriba el nombre o la dirección IP del servidor que se ha configurado como primer nodo del clúster en los pasos anteriores. El servidor se agrega como un nodo al clúster existente.
Compruebe que el nodo se ha agregado; para ello, envíe
sudo crm status
- Cambie la contraseña de hacluster con
sudo passwd hacluster
- Repita los pasos del 8 al 11 para el resto de los servidores que se van a agregar al clúster.
Instalación de los paquetes de SQL Server HA y Agente SQL Server
Use los siguientes comandos para instalar el paquete de SQL Server HA y el Agente SQL Server, si aún no están instalados. La instalación del paquete HA después de la instalación de SQL Server requiere reiniciar SQL Server para que pueda utilizarse. En estas instrucciones se da por supuesto que los repositorios de los paquetes de Microsoft ya se han configurado, ya que debe instalarse SQL Server en este momento.
Nota
- Si no va a usar el Agente SQL Server para el trasvase de registros o cualquier otro uso, no es necesario instalarlo, por lo que se puede omitir el paquete mssql-server-agent.
- Los otros paquetes opcionales para SQL Server en Linux, la búsqueda de texto completo de SQL Server (mssql-server-fts) y SQL Server Integration Services (mssql-server-is) no se requieren para la alta disponibilidad, ya sea para una FCI o un AG.
RHEL
sudo yum install mssql-server-ha mssql-server-agent
sudo systemctl restart mssql-server
Ubuntu
sudo apt-get install mssql-server-ha mssql-server-agent
sudo systemctl restart mssql-server
SLES
sudo zypper install mssql-server-ha mssql-server-agent
sudo systemctl restart mssql-server
Pasos siguientes
En este tutorial, ha aprendido a implementar un clúster de Pacemaker para SQL Server en Linux. Ha aprendido a:
- Instalar el complemento de alta disponibilidad e instalar Pacemaker.
- Preparar los nodos para Pacemaker (solo RHEL y Ubuntu).
- Implementar un clúster de Pacemaker.
- Instalar los paquetes de SQL Server HA y Agente SQL Server.
Para crear y configurar un grupo de disponibilidad para SQL Server en Linux, consulte: