Debe configurar el software del clúster para registrar cada nodo del clúster como miembro del clúster. Dentro del proceso de configuración, también puede configurar recursos de fencing y STONITH (Shoot The Other Node In The Head) a fin de garantizar la uniformidad en el clúster.
IMPORTANTE:Los procedimientos descritos en esta sección utilizan comandos rcopenais y openais, que funcionan solo con SLES 11 SP4. Para SLES 12 SP2 y versiones posteriores, utilice el comando systemctl pacemaker.service.
Por ejemplo, para el comando /etc/rc.d/openais start, utilice el comando systemctl start pacemaker.service.
Utilice el siguiente procedimiento para la configuración del clúster:
Para esta solución, debe utilizar direcciones IP privadas para las comunicaciones internas del clúster y utilizará unidifusión para minimizar la necesidad de solicitar direcciones de multidifusión de un administrador de red. Debe utilizar además un destino iSCSI configurado en la misma máquina virtual de SLES que alberga el almacenamiento compartido para que sirva como dispositivo SBD (Split Brain Detection) para fines de fencing.
Configuración de SBD
Conéctese a storage03 e inicie una sesión de la consola. Use el siguiente comando para crear un archivo en blanco de cualquier tamaño:
dd if=/dev/zero of=/sbd count=<file size> bs=<bit size>
Por ejemplo, ejecute el comando siguiente para crear un archivo de 1 MB lleno de ceros copiados desde el pseudodispositivo /dev/zero:
dd if=/dev/zero of=/sbd count=1024 bs=1024
Ejecute YaST desde la línea de comandos o la interfaz gráfica del usuario: /sbin/yast
Seleccione Servicios de red > Destino iSCSI.
Haga clic en Destinos y seleccione el destino existente.
SeleccioneEditar. La interfaz del usuario presentará una lista de LUN (unidades) que están disponibles.
Seleccione Añadir para añadir un LUN nuevo.
Deje el número LUN 2. Busque en el cuadro de diálogo Vía y seleccione el archivo /sbd que ha creado.
Deje las demás opciones en sus valores por defecto y luego seleccione Aceptar y después Siguiente; a continuación haga clic de nuevo en Siguiente para seleccionar las opciones de autenticación por defecto.
Haga clic en Finalizar para salir de la configuración. Si es necesario, reinicie los servicios. Salga de YaST.
NOTA:Los pasos siguientes requieren que cada nodo del clúster sea capaz de resolver el nombre de host de todos los demás nodos del clúster (el servicio de sincronización de archivos csync2 fallará si no es el caso). Si no se configura el DNS o no está disponible, añada entradas para cada host en el archivo/etc/hosts que enumeren cada dirección IP junto con su nombre de host (tal como lo indica el comando de nombre de host). Asegúrese además de no asignar un nombre de host a una dirección IP de retrobucle.
Realice los siguientes pasos para exponer un destino iSCSI para el dispositivo SBD en el servidor en la dirección IP 10.0.0.3 (storage03).
Configuración de nodos
Conéctese a un nodo del clúster (node01) y abra una consola:
Ejecute YaST.
Abra Network Services (Servicios de red) > iSCSI Initiator (Iniciador de iSCSI).
Seleccione Connected Targets (Destinos conectados) y luego el destino iSCSI que configuró anteriormente.
Seleccione la opción Log Out (Salir) para salir del destino.
Cambie a la pestaña Destinos descubiertos y seleccione el Destino y vuelva a entrar para actualizar la lista de dispositivos (deje la opción de inicio automático y deseleccione Sin autenticación).
Seleccione OK para salir de la herramienta del Iniciador de iSCSI.
AbraSystem (Sistema) > Partitioner (Particionador) e identifique el dispositivo SBD como el 1MB IET-VIRTUAL-DISK. Aparecerá como /dev/sdd o similar; observe cuál.
Salga de YaST.
Ejecute el comando ls -l /dev/disk/by-id/ y observe la ID del dispositivo que está vinculada al nombre del dispositivo identificado anteriormente.
(Condicional) Ejecute uno de los comandos siguientes:
Si utiliza SLES 11 SP4:
sleha-init
Si utiliza SLES 12 SP1 o versiones posteriores:
ha-cluster-init
Cuando se le pregunte a qué dirección de red desea vincularlo, especifique la dirección IP de NIC externa (172.16.0.1).
Acepte la dirección de multidifusión y el puerto por defecto. Más tarde sobrescribiremos estos valores.
Introduzca s para habilitar SBD y luego especifique /dev/disk/by-id/<device id>, donde<device id> es el ID que identificó anteriormente (puede usar el tabulador para completar automáticamente la vía).
(Condicional) Introduzca N cuando se le indique lo siguiente:
Do you wish to configure an administration IP? [y/N]
Para configurar una dirección IP de administración, proporcione la dirección IP virtual duranteConfiguración de recursos
Complete el asistente y asegúrese de que no se generen errores.
Inicie YaST.
Seleccione High Availability (Alta disponibilidad) > Cluster (Clúster) (o simplemente Clúster en algunos sistemas).
En el cuadro de la izquierda, asegúrese de que se haya seleccionado Communication Channels (Canales de comunicación).
Desplácese hasta la línea superior de configuración y cambie la selección de udp a udpu (esto inhabilita multidifusión y selecciona unidifusión).
Seleccione la opción para Add a Member Address (Añadir una dirección de miembro) y especifique este nodo (172.16.0.1), luego repita y añada el otro o los otros nodos del clúster: 172.16.0.2.
Seleccione Finalizar para completar la instalación.
Salga de YaST.
Ejecute el comando /etc/rc.d/openais restart para reiniciar los servicios de clúster con el nuevo protocolo de sincronización.
Conéctese a cada nodo de clúster adicional (node02) y abra una consola:
Ejecute YaST.
Abra Network Services (Servicios de red) > iSCSI Initiator (Iniciador de iSCSI).
Seleccione Connected Targets (Destinos conectados) y luego el destino iSCSI que configuró anteriormente.
Seleccione la opción Log Out (Salir) para salir del destino.
Cambie a la pestaña Destinos descubiertos y seleccione el Destino y vuelva a entrar para actualizar la lista de dispositivos (deje la opción de inicio automático y deseleccione Sin autenticación).
Seleccione OK para salir de la herramienta del Iniciador de iSCSI.
(Condicional) Ejecute uno de los comandos siguientes:
Si utiliza SLES 11 SP4:
sleha-join
Si utiliza SLES 12 SP1 o versiones posteriores:
ha-cluster-join
Introduzca la dirección IP del primer nodo del clúster.
(Condicional) Si el clúster no se inicia correctamente, realice los siguientes pasos:
Ejecute el comando crm status para comprobar si se han unido los nodos. Si no se han unido los nodos, reinicie todos los nodos del clúster.
Copie manualmente el archivo /etc/corosync/corosync.conf de node01 a node02, o ejecute csync2 -x -v en el node01, o bien configure manualmente el clúster en node02 a través de YaST.
(Condicional) Si se produce un error a la hora de sincronizar todos los archivos cuando ejecuta el comando csync2 - x - v en el paso 1, lleve a cabo el procedimiento siguiente:
Borre la base de datos csync2 del directorio /var/lib/csync2 de todos los nodos.
En todos los nodos, actualice la base de datos csync2 con el fin de que coincida con el sistema de archivos, pero sin marcar ningún elemento para su sincronización con otros servidores:
csync2 -cIr /
En el nodo activo, realice lo siguiente:
Encuentre todas las diferencias entre los nodos activos y pasivos, y marque esas diferencias para la sincronización:
csync2 -TUXI
Restaure la base de datos para forzar al nodo activo a anular cualquier conflicto:
csync2 -fr /
Inicie la sincronización en todos los nodos:
csync2 -xr /
En todos los nodos, compruebe que se sincronizan todos los archivos:
csync2 -T
Este comando solo muestra los archivos que no se han sincronizado.
Ejecute el siguiente comando en node02:
Para SLES 11 SP4:
/etc/rc.d/openais start
Para SLES 12 SP1 y versiones posteriores:
systemctl start pacemaker.service
(Condicional) Si el servicio xinetd no añade correctamente el nuevo servicio csync2, el guión no funcionará correctamente. El servicio xinetd es necesario para que el otro nodo pueda sincronizar los archivos de configuración del clúster hasta este nodo. Si ve errores como csync2 run failed, podría tener este problema.
Para solucionar este problema, ejecute el comandokill -HUP `cat /var/run/xinetd.init.pid y luego vuelva a ejecutar el guión sleha-join.
Ejecute crm_mon en cada nodo del clúster para verificar que el clúster funcione correctamente. También puede usar "hawk", la consola Web, para verificar el clúster. El nombre de usuario por defecto es hacluster y la contraseña linux.
(Condicional) Dependiendo de su entorno, realice las siguientes tareas para modificar otros parámetros:
Para asegurarse de que un fallo en un nodo de un clúster formado por dos nodos no detenga inesperadamente todo el clúster, defina la opción global de clúster no-quorum-policy en ignore:
crm configure property no-quorum-policy=ignore
NOTA:Si el clúster tiene más de dos nodos, no defina esta opción.
Para asegurarse de que el gestor de recursos permita a los recursos ejecutarse en su lugar y desplazarse, defina la opción global de clúster default-resource-stickiness en 1:
crm configure property default-resource-stickiness=1.