Configuración de la alta disponibilidad en SUSE mediante el dispositivo de barrera
En este artículo, vamos a explicar los pasos necesarios para configurar la alta disponibilidad (HA) en HANA (instancias grandes) en el sistema operativo SUSE mediante el dispositivo de barrera.
Nota
Esta guía se obtiene como resultado de probar correctamente la configuración en el entorno de instancias grandes de Microsoft HANA. El equipo de administración de servicios de Microsoft para HANA (instancias grandes) no admite el sistema operativo. Para solucionar problemas o aclarar el nivel del sistema operativo, póngase en contacto con SUSE.
El equipo de administración de servicios de Microsoft configura y admite totalmente el dispositivo de barrera. Puede ayudar a solucionar problemas de dispositivos de barrera.
Prerrequisitos
Para configurar la alta disponibilidad con los clústeres de SUSE, siga estos pasos:
- Aprovisione HANA (instancias grandes).
- Instale y registre el sistema operativo con las revisiones más recientes.
- Conecte los servidores de HANA (instancias grandes) al servidor SMT para obtener revisiones y paquetes.
- Configure el protocolo de tiempo de redes (servidor de tiempo de NTP).
- Lea y comprenda la documentación más reciente de SUSE sobre la configuración de alta disponibilidad.
Detalles de la configuración
Esta guía utiliza la siguiente configuración:
- Sistema operativo: SLES 12 SP1 para SAP
- Instancias grandes de HANA: 2xS192 (cuatro zócalos, 2 TB)
- Versión de HANA: HANA 2.0 SP1
- Nombres de servidor: sapprdhdb95 (node1) y sapprdhdb96 (node2)
- Dispositivo de barrera: basado en iSCSI
- NTP en uno de los nodos de HANA (instancias grandes)
Si configura HANA (instancias grandes) con la replicación del sistema de HANA, puede solicitar al equipo de administración de servicios de Microsoft que configure el dispositivo de barrera. Debe hacerlo en el momento del aprovisionamiento.
Si ya es un cliente con HANA (instancias grandes) aprovisionado, también puede solicitar la configuración del dispositivo de barrera. Proporcione la siguiente información al equipo de Microsoft Service Management en el formulario de solicitud de servicio (SRF). Puede obtener el formulario SRF a través del director técnico de su cuenta o de su contacto de Microsoft para la incorporación de HANA (instancias grandes).
- Nombre y dirección IP del servidor (por ejemplo, myhanaserver1 y 10.35.0.1)
- Ubicación (por ejemplo, Este de EE. UU.)
- Nombre del cliente (por ejemplo, Microsoft)
- Identificador del sistema HANA (SID) (por ejemplo, H11)
Una vez configurado el dispositivo de barrera, el equipo de Microsoft Service Management le proporcionará el nombre del SBD y la dirección IP del almacenamiento iSCSI. Puede usar esta información para la configuración de barrera.
Siga los pasos de las secciones siguientes para configurar la alta disponibilidad mediante el dispositivo de barrera.
Identificación del dispositivo SBD
Nota
Esta sección solo se aplica a los clientes actuales. Si es un cliente nuevo, el equipo de Microsoft Service Management le dará el nombre del dispositivo SBD, así que puede omitir esta sección.
Modifique /etc/iscsi/initiatorname.isci para:
iqn.1996-04.de.suse:01:<Tenant><Location><SID><NodeNumber>
Microsoft Service Management proporciona esta cadena. Modifique el archivo en ambos nodos. Sin embargo, el número de nodo es distinto en cada uno.
Defina
node.session.timeo.replacement_timeout=5
ynode.startup = automatic
para modificar /etc/iscsi/iscsid.conf. Modifique el archivo en ambos nodos.Ejecute el comando de detección siguiente en ambos nodos.
iscsiadm -m discovery -t st -p <IP address provided by Service Management>:3260
Los resultados muestran cuatro sesiones.
Ejecute el siguiente comando en ambos nodos para iniciar sesión en el dispositivo iSCSI.
iscsiadm -m node -l
Los resultados muestran cuatro sesiones.
Use el siguiente comando para ejecutar el script rescan-scsi-bus.sh para volver a examinar. Este script muestra los nuevos discos creados para usted. Ejecútelo en ambos nodos.
rescan-scsi-bus.sh
Los resultados deberían mostrar un número LUN superior a cero (por ejemplo: 1, 2, etc.).
Para obtener el nombre del dispositivo, ejecute el comando siguiente en ambos nodos.
fdisk –l
En los resultados, elija el dispositivo con el tamaño de 178 MiB.
Inicialización del dispositivo SBD
Use el siguiente comando para inicializar el dispositivo SBD en ambos nodos.
sbd -d <SBD Device Name> create
Use el siguiente comando en ambos nodos para comprobar lo que se ha escrito en el dispositivo.
sbd -d <SBD Device Name> dump
Configuración del clúster de HA de SUSE
Use el comando siguiente para comprobar si los patrones ha_sles y SAPHanaSR-doc están instalados en ambos nodos. En caso negativo, instálelos.
zypper in -t pattern ha_sles zypper in SAPHanaSR SAPHanaSR-doc
Configure el clúster mediante el comando
ha-cluster-init
o el asistente de yast2. En este ejemplo, se usa el asistente de yast2. Realice este paso solamente en el nodo principal.Vaya a yast2>Alta disponibilidad>Clúster
En el cuadro de diálogo que aparece sobre la instalación del paquete hawk, seleccione Cancelar, ya que el paquete halk2 ya está instalado.
En el cuadro de diálogo que aparece, seleccione Continuar.
El valor esperado es el número de nodos implementados (en este caso, 2). Seleccione Next (Siguiente).
Agregue los nombres de nodo y, a continuación, seleccione Add suggested files (Agregar archivos sugeridos).
Seleccione Turn csync2 ON (Activar csync2).
Seleccione Generate Pre-Shared-Keys (Generar claves compartidas previamente).
En el mensaje emergente que aparece, seleccione Aceptar.
La autenticación se realiza con las direcciones IP y las claves compartidas previamente en Csync2. El archivo de clave se genera con
csync2 -k /etc/csync2/key_hagroup
.Copie manualmente el archivo key_hagroup para todos los miembros del clúster después de crearlo. Asegúrese de copiar el archivo de node1 a node2. Luego, seleccione Siguiente.
En la opción predeterminada, el arranque está desactivado. Actívelo para que se inicie el servicio Pacemaker con el arranque. Puede elegir según los requisitos de configuración.
Seleccione Siguiente para completar la configuración del clúster.
Configuración del guardián Softdog
Agregue la siguiente línea a /etc/init.d/boot.local en ambos nodos.
modprobe softdog
Use el comando siguiente para actualizar el archivo /etc/sysconfig/sbd en ambos nodos.
SBD_DEVICE="<SBD Device Name>"
Cargue el módulo de kernel en ambos nodos, para lo que debe ejecutar el siguiente comando.
modprobe softdog
Use el comando siguiente para asegurarse de que softdog se está ejecutando en ambos nodos.
lsmod | grep dog
Use el siguiente comando para iniciar el dispositivo SBD en ambos nodos.
/usr/share/sbd/sbd.sh start
Use el siguiente comando para probar el demonio de SBD en ambos nodos.
sbd -d <SBD Device Name> list
Los resultados muestran dos entradas después de la configuración en ambos nodos.
Envíe el mensaje de prueba siguiente a uno de los nodos.
sbd -d <SBD Device Name> message <node2> <message>
En el segundo nodo (node2), use el siguiente comando para comprobar el estado del mensaje.
sbd -d <SBD Device Name> list
Para adoptar la configuración de SBD, actualice el archivo /etc/sysconfig/sbd como se indica a continuación en ambos nodos.
SBD_DEVICE=" <SBD Device Name>" SBD_WATCHDOG="yes" SBD_PACEMAKER="yes" SBD_STARTMODE="clean" SBD_OPTS=""
Use el comando siguiente para iniciar el servicio Pacemaker en el nodo principal (node1).
systemctl start pacemaker
Si se produce un error en el servicio Pacemaker, consulte la sección Escenario 5: Error de servicio Pacemaker más adelante en este artículo.
Unión del nodo al clúster
Ejecute el siguiente comando en node2 para que dicho nodo se una al clúster.
ha-cluster-join
Si recibe un error al unirse al clúster, consulte la sección Escenario 6: Node2 no se puede unir al clúster más adelante en este artículo.
Validación del clúster
Use los comandos siguientes para comprobar y, opcionalmente, iniciar el clúster por primera vez en ambos nodos.
systemctl status pacemaker systemctl start pacemaker
Ejecute el siguiente comando para comprobar que ambos nodos están en línea. También puede ejecutarlo en cualquiera de los nodos del clúster.
crm_mon
También puede iniciar sesión en hawk para comprobar el estado del clúster:
https://\<node IP>:7630
. El usuario predeterminado es hacluster y la contraseña es linux. Si es necesario, puede cambiar la contraseña con el comandopasswd
.
Configuración de las propiedades y los recursos del clúster
Esta sección describe los pasos para configurar los recursos del clúster. En este ejemplo, puede configurar los recursos siguientes. Puede configurar el resto (si es necesario) haciendo referencia a la guía de HA de SUSE.
- Arranque del clúster
- Dispositivo de barrera
- Dirección IP virtual
Realice la configuración solo en el nodo principal.
Cree el archivo de arranque del clúster y configúrelo agregando el texto siguiente.
sapprdhdb95:~ # vi crm-bs.txt # enter the following to crm-bs.txt property $id="cib-bootstrap-options" \ no-quorum-policy="ignore" \ stonith-enabled="true" \ stonith-action="reboot" \ stonith-timeout="150s" rsc_defaults $id="rsc-options" \ resource-stickiness="1000" \ migration-threshold="5000" op_defaults $id="op-options" \ timeout="600"
Use el comando siguiente para agregar la configuración al clúster.
crm configure load update crm-bs.txt
Configure el dispositivo de barrera. Para hacerlo, agregue el recurso, cree el archivo y especifique el texto que se indica a continuación.
# vi crm-sbd.txt # enter the following to crm-sbd.txt primitive stonith-sbd stonith:external/sbd \ params pcmk_delay_max="15"
Use el comando siguiente para agregar la configuración al clúster.
crm configure load update crm-sbd.txt
Para agregar la dirección IP virtual para el recurso, cree el archivo y agregue el texto siguiente.
# vi crm-vip.txt primitive rsc_ip_HA1_HDB10 ocf:heartbeat:IPaddr2 \ operations $id="rsc_ip_HA1_HDB10-operations" \ op monitor interval="10s" timeout="20s" \ params ip="10.35.0.197"
Use el comando siguiente para agregar la configuración al clúster.
crm configure load update crm-vip.txt
Use el comando
crm_mon
para validar los recursos.Los resultados muestran los dos recursos.
También puede comprobar el estado en https://<dirección IP del nodo>:7630/cib/live/state.
Prueba del proceso de conmutación por error
Para probar el proceso de conmutación por error, use el siguiente comando para detener el servicio Pacemaker en node1.
Service pacemaker stop
Los recursos conmutan por error en node2.
Detenga el servicio Pacemaker en node2. Los recursos conmutarán por error en node1.
Este es el estado antes de la conmutación por error:
Este es el estado después de la conmutación por error:
Solución de problemas
En esta sección se describen los escenarios de error que pueden producirse durante la instalación.
Escenario 1: Nodo de clúster no en línea
Si alguno de los nodos no se muestra en línea en el administrador de clústeres, puede intentar probar el procedimiento siguiente para que esté en línea.
Utilice el siguiente comando para iniciar el servicio iSCSI.
service iscsid start
Use el siguiente comando para iniciar sesión en ese nodo de iSCSI.
iscsiadm -m node -l
La salida esperada tiene el siguiente aspecto:
sapprdhdb45:~ # iscsiadm -m node -l Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] (multiple) Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] (multiple) Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] (multiple) Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] (multiple) Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] successful. Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] successful. Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] successful. Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] successful.
Escenario 2: Yast2 no muestra la vista gráfica
En este artículo, se usa la pantalla gráfica de yast2 para configurar el clúster de alta disponibilidad. Si yast2 no se abre con la ventana gráfica como se muestra y devuelve un error Qt, siga estos pasos para instalar los paquetes necesarios. Si se abre con la ventana gráfica, puede omitir los pasos.
Este es un ejemplo de error de Qt.
Este es un ejemplo de la salida que se espera:
Asegúrese de haber iniciado sesión como usuario "raíz" y contar con la configuración SMT para descargar e instalar los paquetes.
Vaya a yast>Software>Software Management (Administración de software) >Dependencias y seleccione Instalar paquetes recomendados.
Nota
Debe realizar los pasos en ambos nodos para poder acceder a la vista gráfica de yast2 desde los dos nodos.
La captura de pantalla siguiente muestra la pantalla que se espera.
En Dependencias, seleccione Instalar paquetes recomendados.
Revise los cambios y seleccione Aceptar.
La instalación de paquetes continúa.
Seleccione Next (Siguiente).
Cuando aparezca la pantalla Installation Successfully Finished (Instalación completada correctamente), seleccione Finalizar.
Use los siguientes comandos para instalar los paquetes libqt4 y libyui-qt.
zypper -n install libqt4
zypper -n install libyui-qt
Ahora, Yast2 puede abrir la vista gráfica.
Escenario 3: Yast2 no muestra la opción de alta disponibilidad
Para que la opción de alta disponibilidad esté visible en el centro de control de yast2, debe instalar los otros paquetes.
Vaya a Yast2>Software>Software Management (Administración de software). A continuación, seleccione Software>Actualización en línea.
Seleccione patrones para los siguientes elementos. Seleccione Aceptar.
- Base del servidor SAP HANA
- Compilador C/C++ y herramientas
- Alta disponibilidad
- Base del servidor de aplicaciones de SAP
En la lista de paquetes que se han cambiado para resolver dependencias, seleccione Continuar.
En la página de estado Performing Installation (Realizando la instalación), seleccione Siguiente.
Una vez completada la instalación, aparece un informe de instalación. Seleccione Finalizar.
Escenario 4: HANA no se instala debido a un error en los ensamblados de GCC
Si se produce un error en la instalación de HANA, es posible que reciba el siguiente error.
Para corregir el problema, instale las bibliotecas libgcc_sl y libstdc++6 como se muestra en la captura de pantalla siguiente.
Escenario 5: Error del servicio Pacemaker
Aparece la siguiente información si el servicio Pacemaker no se puede iniciar.
sapprdhdb95:/ # systemctl start pacemaker
A dependency job for pacemaker.service failed. See 'journalctl -xn' for details.
sapprdhdb95:/ # journalctl -xn
-- Logs begin at Thu 2017-09-28 09:28:14 EDT, end at Thu 2017-09-28 21:48:27 EDT. --
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync configuration map
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync configuration ser
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync cluster closed pr
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync cluster quorum se
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync profile loading s
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [MAIN ] Corosync Cluster Engine exiting normally
Sep 28 21:48:27 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager
-- Subject: Unit pacemaker.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit pacemaker.service has failed.
--
-- The result is dependency.
sapprdhdb95:/ # tail -f /var/log/messages
2017-09-28T18:44:29.675814-04:00 sapprdhdb95 corosync[57600]: [QB ] withdrawing server sockets
2017-09-28T18:44:29.676023-04:00 sapprdhdb95 corosync[57600]: [SERV ] Service engine unloaded: corosync cluster closed process group service v1.01
2017-09-28T18:44:29.725885-04:00 sapprdhdb95 corosync[57600]: [QB ] withdrawing server sockets
2017-09-28T18:44:29.726069-04:00 sapprdhdb95 corosync[57600]: [SERV ] Service engine unloaded: corosync cluster quorum service v0.1
2017-09-28T18:44:29.726164-04:00 sapprdhdb95 corosync[57600]: [SERV ] Service engine unloaded: corosync profile loading service
2017-09-28T18:44:29.776349-04:00 sapprdhdb95 corosync[57600]: [MAIN ] Corosync Cluster Engine exiting normally
2017-09-28T18:44:29.778177-04:00 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager.
2017-09-28T18:44:40.141030-04:00 sapprdhdb95 systemd[1]: [/usr/lib/systemd/system/fstrim.timer:8] Unknown lvalue 'Persistent' in section 'Timer'
2017-09-28T18:45:01.275038-04:00 sapprdhdb95 cron[57995]: pam_unix(crond:session): session opened for user root by (uid=0)
2017-09-28T18:45:01.308066-04:00 sapprdhdb95 CRON[57995]: pam_unix(crond:session): session closed for user root
Para corregirlo, elimine la siguiente línea del archivo /usr/lib/systemd/system/fstrim.timer:
Persistent=true
Escenario 6: Node2 no se puede unir al clúster
Aparece el siguiente error si hay un problema al unir node2 al clúster existente mediante el comando ha-cluster-join.
ERROR: Can’t retrieve SSH keys from <Primary Node>
Cómo solucionarlo:
Ejecute los siguientes comandos en ambos nodos.
ssh-keygen -q -f /root/.ssh/id_rsa -C 'Cluster Internal' -N '' cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
Confirme que node2 se ha agregado al clúster.
Pasos siguientes
Puede encontrar más información sobre la configuración de alta disponibilidad de SUSE en los siguientes artículos:
- Escenario de rendimiento optimizado para la replicación del sistema de SAP HANA (sitio web de SUSE)
- Dispositivos de barreras y barreras (sitio web de SUSE)
- Prepárese para usar el clúster de Pacemaker para SAP HANA: parte 1 (aspectos básicos), blog de SAP
- Prepárese para usar el clúster de Pacemaker para SAP HANA: parte 2 (error en ambos nodos), blog de SAP
- Copia de seguridad y restauración del sistema operativo