Alta disponibilidad para el sistema de escalabilidad horizontal de SAP HANA con HSR en SUSE Linux Enterprise Server
En este artículo se describe cómo implementar un sistema SAP HANA de alta disponibilidad en una configuración de escalabilidad horizontal con replicación del sistema HANA (HSR) y Pacemaker en máquinas virtuales (VM) de Azure SUSE Linux Enterprise Server. Los sistemas de archivos compartidos de la arquitectura presentada se montan en NFS y los proporciona Azure NetApp Files o recurso compartido NFS en Azure Files.
En las configuraciones de ejemplo, como en los comandos de instalación, la instancia de HANA es 03 y el identificador del sistema de HANA es HN1.
Antes de comenzar, consulte las siguientes notas y documentos de SAP:
- Documentación sobre Azure NetApp Files
- Documentación de Azure Files
- Nota de SAP 1928533, que incluye:
- Una lista de los tamaños de máquina virtual de Azure que se admiten para la implementación de software de SAP
- Información importante sobre la capacidad para los tamaños de máquina virtual de Azure
- Software de SAP admitido y combinaciones de sistema operativo y base de datos
- La versión del kernel de SAP necesaria para Windows y Linux en Microsoft Azure.
- Nota de SAP 2015553: enumera los requisitos previos para las implementaciones de software de SAP admitidas por SAP en Azure.
- Nota de SAP 2205917: configuraciones recomendadas del sistema operativo para SUSE Linux Enterprise Server para SAP Applications.
- Nota de SAP 1944799: contiene guías de SAP para SUSE Linux Enterprise Server para SAP Applications.
- Nota de SAP 2178632: contiene información detallada sobre todas las métricas de supervisión notificadas para SAP en Azure.
- Nota de SAP 2191498: incluye la versión de SAP Host Agent necesaria para Linux en Azure.
- Nota de SAP 2243692: contiene información sobre las licencias de SAP en Linux en Azure.
- Nota de SAP 1984787: contiene información general sobre SUSE Linux Enterprise Server 12.
- Nota de SAP 1999351: contiene información adicional sobre la solución de problemas de la extensión de supervisión mejorada de Azure para SAP.
- Nota de SAP 1900823: incluye información sobre los requisitos de almacenamiento de SAP HANA.
- SAP Community Wiki (wiki de la comunidad de SAP): Contiene todas las notas de SAP que se requieren para Linux.
- Planeación e implementación de Azure Virtual Machines para SAP en Linux
- Implementación de Azure Virtual Machines para SAP en Linux
- Implementación de DBMS de Azure Virtual Machines para SAP en Linux
- Guías de procedimientos recomendados para la alta disponibilidad de SUSE SAP: contiene toda la información necesaria para configurar la alta disponibilidad de NetWeaver y la replicación del sistema local de SAP HANA (para usarse como base de referencia; proporcionan información mucho más detallada).
- Notas de la versión de la Extensión 12 SP5 de alta disponibilidad para SUSE
- Control de recursos compartidos de NFS con errores en el clúster de alta disponibilidad de SUSE para la replicación del sistema HANA
- Volúmenes NFS v4.1 en Azure NetApp Files para SAP HANA
Información general
Un método para lograr la alta disponibilidad de HANA para las instalaciones de escalabilidad horizontal de HANA es configurar la replicación del sistema HANA y proteger la solución con el clúster de Pacemaker para permitir la conmutación por error automática. Cuando se produce un error en un nodo activo, el clúster conmuta por error los recursos de HANA al otro sitio.
La configuración presentada muestra tres nodos de HANA en cada sitio, más el nodo para lograr la mayoría que sirve para evitar el escenario de split-brain. Las instrucciones se pueden adaptar para incluir más máquinas virtuales como nodos de base de datos HANA.
El sistema /hana/shared
de archivos compartidos de HANA en la arquitectura presentada se puede proporcionar mediante Azure NetApp Files o el recurso compartido NFS en Azure Files. El sistema de archivos compartidos de HANA está montado en NFS en cada nodo de HANA en el mismo sitio de replicación del sistema de HANA. Los sistemas de archivos /hana/data
y /hana/log
son sistemas de archivos locales y no se comparten entre los nodos de la base de datos HANA. SAP HANA se instalará en modo no compartido.
Para las configuraciones de almacenamiento de SAP HANA recomendadas, consulte Configuraciones de almacenamiento de máquinas virtuales de Azure en SAP HANA.
Importante
Si se implementan todos los sistemas de archivos de HANA en Azure NetApp Files, en el caso de los sistemas de producción, donde el rendimiento es una clave, se recomienda evaluar y considerar el uso de un grupo de volúmenes de aplicación de Azure NetApp Files para SAP HANA.
Advertencia
No se admite la implementación de /hana/data
y /hana/log
en NFS en Azure Files.
En el diagrama anterior, se representan tres subredes dentro de una red virtual de Azure, siguiendo las recomendaciones de la red de SAP HANA:
- Para la comunicación del cliente:
client
10.23.0.0/24 - Para la comunicación interna entre nodos de HANA:
inter
10.23.1.128/26 - Para la replicación del sistema HANA:
hsr
10.23.1.192/26
Como /hana/data
y /hana/log
se han implementado en discos locales, no es necesario implementar una subred independiente ni tarjetas de red virtual independientes para la comunicación con el almacenamiento.
Si usa Azure NetApp Files, los volúmenes NFS para /hana/shared
, se implementan en una subred independiente, delegada en Azure NetApp Files: anf
10.23.1.0/26.
Preparación de la infraestructura
En las instrucciones siguientes, se supone que ya ha creado el grupo de recursos, la red virtual de Azure con tres subredes de la red de Azure: client
, inter
y hsr
.
Implementación de máquinas virtuales Linux en Azure Portal
Implemente las máquinas virtuales de Azure.
Para la configuración presentada en este documento, implemente siete máquinas virtuales:
- tres máquinas virtuales que actúan como nodos de la base de datos HANA para la replicación del sitio 1 de HANA: hana-s1-db1, hana-s1-db2 y hana-s1-db3
- tres máquinas virtuales que actúan como nodos de la base de datos HANA para la replicación del sitio 2 de HANA: hana-s2-db1, hana-s2-db2 y hana-s2-db3
- una máquina virtual pequeña que sirve para obtener la mayoría: hana-s-mm
Las máquinas virtuales, implementadas como nodos de base de datos de SAP HANA, deben tener la certificación de SAP para HANA, tal como se publica en el directorio de hardware de SAP HANA. Al implementar los nodos de base de datos HANA, asegúrese de que se ha seleccionado la red acelerada.
Para el nodo que sirve para lograr la mayoría, puede implementar una máquina virtual pequeña, ya que esta máquina virtual no ejecuta ninguno de los recursos de SAP HANA. La máquina virtual para lograr la mayoría se usa en la configuración del clúster para obtener un número impar de nodos de clúster en un escenario de split-brain. La máquina virtual para lograr la mayoría solo necesita una interfaz de red virtual en la subred
client
en este ejemplo.Implemente discos administrados locales para
/hana/data
y/hana/log
. La configuración de almacenamiento mínima recomendada para/hana/data
y/hana/log
se describe en Configuraciones de almacenamiento de máquinas virtuales de Azure en SAP HANA.Implemente la interfaz de red principal para cada máquina virtual en la subred de la red virtual
client
.
Cuando la máquina virtual se implementa mediante Azure Portal, el nombre de la interfaz de red se genera automáticamente. Para simplificar, en estas instrucciones haremos referencia a las interfaces de red principales, generadas automáticamente, que están conectadas a la subred de la red virtual de Azureclient
como hana-s1-db1-client, hana-s1-db2-client, hana-s1-db3-client, etcétera.Importante
- Asegúrese de que el sistema operativo seleccionado esté certificado por SAP para SAP HANA en los tipos específicos de VM que use. Para obtener una lista de los tipos de VM certificados para SAP HANA y las versiones de sistema operativo correspondientes, consulte el sitio Plataformas de IaaS certificadas para SAP HANA. Haga clic en los detalles del tipo de VM de la lista para obtener la lista completa de las versiones de sistema operativo compatibles con SAP HANA para ese tipo.
- Si decide implementar
/hana/shared
en NFS en Azure Files, se recomienda implementar en SLES 15 SP2 y versiones posteriores.
Cree seis interfaces de red, una para cada máquina virtual de base de datos HANA, en la subred de la red virtual
inter
(en este ejemplo, hana-s1-db1-inter, hana-s1-db2-inter, hana-s1-db3-inter, hana-s2-db1-inter, hana-s2-db2-inter y hana-s2-db3-inter).Cree seis interfaces de red, una para cada máquina virtual de base de datos HANA, en la subred de la red virtual
hsr
(en este ejemplo, hana-s1-db1-hsr, hana-s1-db2-hsr, hana-s1-db3-hsr, hana-s2-db1-hsr, hana-s2-db2-hsr y hana-s2-db3-hsr).Conexión de las interfaces de red virtual recién creadas a las máquinas virtuales correspondientes:
- Vaya a la máquina virtual en Azure Portal.
- En el menú de la izquierda, seleccione Máquinas virtuales. Filtre por el nombre de máquina virtual (por ejemplo, hana-s1-db1) y luego seleccione la máquina virtual.
- En el panel Información general, seleccione Detener para desasignar la máquina virtual.
- Seleccione Redes y adjunte la interfaz de red. En la lista desplegable Adjuntar interfaz de red, seleccione las interfaces de red ya creadas para las subredes
inter
yhsr
. - Seleccione Guardar.
- Repita los pasos del b al e para las demás máquinas virtuales (en nuestro ejemplo, hana-s1-db2, hana-s1-db3, hana-s2-db1, hana-s2-db2 y hana-s2-db3).
- Deje las máquinas virtuales en estado detenido por ahora. A continuación, habilitaremos la opción Redes aceleradas para todas las interfaces de red que se acaban de conectar.
Habilite redes aceleradas para las interfaces de red adicionales de las subredes
inter
yhsr
. Para ello, siga estos pasos:Abra Azure Cloud Shell en Azure Portal.
Ejecute los siguientes comandos para habilitar las redes aceleradas para las interfaces de red adicionales, conectadas a las subredes
inter
yhsr
.az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db1-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db2-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db3-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db1-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db2-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db3-inter --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db1-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db2-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db3-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db1-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db2-hsr --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db3-hsr --accelerated-networking true
Inicie las máquinas virtuales de base de datos HANA.
Configurar Azure Load Balancer
Durante la configuración de la máquina virtual, tiene una opción para crear o seleccionar salir del equilibrador de carga en la sección de redes. Siga estos pasos para configurar el equilibrador de carga estándar para la configuración de alta disponibilidad de la base de datos de HANA.
Nota:
- Para el escalado horizontal de HANA, seleccione la NIC para la subred
client
al agregar las máquinas virtuales en el grupo de back-end. - El conjunto completo de comandos en la CLI de Azure y PowerShell agrega las máquinas virtuales con la NIC principal en el grupo de back-end.
Siga los pasos descritos en Creación de un equilibrador de carga para configurar un equilibrador de carga estándar para un sistema SAP de alta disponibilidad mediante Azure Portal. Durante la configuración del equilibrador de carga, tenga en cuenta los siguientes puntos:
- Configuración de IP de front-end: cree una dirección IP de front-end. Seleccione el mismo nombre de red virtual y subred que las máquinas virtuales de la base de datos.
- Grupo de back-end: cree un grupo de back-end y agregue máquinas virtuales de base de datos.
- Reglas de entrada: cree una regla de equilibrio de carga. Siga los mismos pasos para ambas reglas de equilibrio de carga.
- Dirección IP de front-end: seleccione una dirección IP de front-end.
- Grupo de back-end: seleccione un grupo de back-end.
- Puertos de alta disponibilidad: seleccione esta opción.
- Protocolo: seleccione TCP.
- Sondeo de estado: cree un sondeo de estado con los detalles siguientes:
- Protocolo: seleccione TCP.
- Puerto: por ejemplo, 625<instance-no.>.
- Intervalo: escriba 5.
- Umbral de sondeo: escriba 2.
- Tiempo de espera de inactividad (minutos): Escriba 30.
- Habilitar IP flotante: seleccione esta opción.
Nota:
No se respeta la propiedad de configuración del sondeo de estado numberOfProbes
, también conocida como Umbral incorrecto en el portal. Para controlar el número de sondeos consecutivos correctos o erróneos, establezca la propiedad probeThreshold
en 2
. Actualmente no es posible establecer esta propiedad mediante Azure Portal, por lo que debe usar la CLI de Azure o el comando de PowerShell.
Nota:
Cuando las máquinas virtuales sin direcciones IP públicas se colocan en el grupo de back-end de Standard Load Balancer interno (sin dirección IP pública), no hay conectividad saliente de Internet, a menos que se realice una configuración adicional para permitir el enrutamiento a puntos de conexión públicos. Para obtener más información sobre cómo obtener conectividad saliente, vea Conectividad de punto de conexión público para máquinas virtuales con Azure Standard Load Balancer en escenarios de alta disponibilidad de SAP.
Importante
- No habilite las marcas de tiempo TCP en VM de Azure que se encuentren detrás de Azure Load Balancer. Si habilita las marcas de tiempo TCP provocará un error en los sondeos de estado. Establezca el parámetro
net.ipv4.tcp_timestamps
en0
. Para más información, consulte Sondeos de estado de Load Balancer y la nota de SAP 2382421. - Para evitar que saptune cambie el valor
net.ipv4.tcp_timestamps
establecido manualmente de0
a nuevamente1
, actualice la versión de saptune a la versión 3.1.1 o posterior. Para más información, consulte saptune 3.1.1: ¿Necesito actualizar?
Implementar NFS
Hay dos opciones para implementar el NFS nativo de Azure para /hana/shared
. Puede implementar un volumen NFS en Azure NetApp Files o un recurso compartido NFS en Azure Files. Azure Files admite el protocolo NFSv4.1, NFS en Azure NetApp Files admite NFSv4.1 y NFSv3.
En las secciones siguientes se describen los pasos para implementar NFS: tendrá que seleccionar solo una de las opciones.
Sugerencia
Eligió implementar /hana/shared
en recurso NFS en Azure Files o volumen NFS en Azure NetApp Files.
Implementación de la infraestructura de Azure NetApp Files
Implemente los volúmenes de Azure NetApp Files para el sistema de archivos /hana/shared
. Necesita un volumen /hana/shared
independiente para cada sitio de replicación del sistema HANA. Para más información, consulte Configuración de la infraestructura de Azure NetApp Files.
En este ejemplo, se usan los siguientes volúmenes de Azure NetApp Files:
- volumen HN1-shared-s1 (nfs://10.23.1.7/HN1-shared-s1)
- volumen HN1-shared-s2 (nfs://10.23.1.7/HN1-shared-s2)
Implementación de NFS en infraestructura de Azure Files
Implemente recursos compartidos NFS de Azure Files para el sistema de archivos /hana/shared
. Necesitará un recurso compartido NFS de Azure Files /hana/shared
independiente para cada sitio de replicación del sistema HANA. Para más información, consulte Creación de un recurso compartido NFS.
En este ejemplo, se usaron los siguientes recursos compartidos NFS de Azure Files:
- share hn1-shared-s1 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1)
- share hn1-shared-s2 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2)
Configuración y preparación del sistema operativo
Las instrucciones de las secciones siguientes tienen como prefijo una de las siguientes abreviaturas:
- [A]: aplicable a todos los nodos, incluido el creador de mayoría
- [AH]: Aplicable a todos los nodos de base de datos HANA
- [M]: aplicable solo al nodo creador de mayoría
- [AH1]: Aplicable a todos los nodos de base de datos HANA en el sitio 1
- [AH1]: Aplicable a todos los nodos de base de datos HANA en el sitio 2
- [1]: Aplicable solo al nodo 1 de base de datos HANA, sitio 1
- [2]: Aplicable solo al nodo 1 de base de datos HANA, sitio 2
Configure y prepare el sistema operativo. Para ello, siga estos pasos:
[A] Mantenga los archivos de host en las máquinas virtuales. Incluya las entradas para todas las subredes. En este ejemplo se agregaron las siguientes entradas a
/etc/hosts
.# Client subnet 10.23.0.19 hana-s1-db1 10.23.0.20 hana-s1-db2 10.23.0.21 hana-s1-db3 10.23.0.22 hana-s2-db1 10.23.0.23 hana-s2-db2 10.23.0.24 hana-s2-db3 10.23.0.25 hana-s-mm # Internode subnet 10.23.1.132 hana-s1-db1-inter 10.23.1.133 hana-s1-db2-inter 10.23.1.134 hana-s1-db3-inter 10.23.1.135 hana-s2-db1-inter 10.23.1.136 hana-s2-db2-inter 10.23.1.137 hana-s2-db3-inter # HSR subnet 10.23.1.196 hana-s1-db1-hsr 10.23.1.197 hana-s1-db2-hsr 10.23.1.198 hana-s1-db3-hsr 10.23.1.199 hana-s2-db1-hsr 10.23.1.200 hana-s2-db2-hsr 10.23.1.201 hana-s2-db3-hsr
[A] Cree el archivo de configuración /etc/sysctl.d/MS-AZ.conf con las opciones de configuración de Microsoft para Azure.
vi /etc/sysctl.d/ms-az.conf # Add the following entries in the configuration file net.ipv6.conf.all.disable_ipv6 = 1 net.ipv4.tcp_max_syn_backlog = 16348 net.ipv4.conf.all.rp_filter = 0 sunrpc.tcp_slot_table_entries = 128 vm.swappiness=10
Sugerencia
Evite establecer net.ipv4.ip_local_port_range y net.ipv4.ip_local_reserved_ports explícitamente en los archivos de configuración de sysctl para permitir que el agente de host de SAP administre los intervalos de puertos. Para más información, vea la nota 2382421.
[A] SUSE ofrece agentes de recursos especiales para SAP HANA y, de forma predeterminada, los agentes para la escalabilidad vertical de SAP HANA están instalados. Desinstale los paquetes para el escalado vertical, si están instalados, e instale los paquetes para el escenario de escalabilidad horizontal de SAP HANA. El paso debe realizarse en todas las máquinas virtuales del clúster, incluido el creador de mayoría.
Nota:
Se debe instalar la versión 0.181 o posterior de SAPHanaSR-ScaleOut.
# Uninstall scale-up packages and patterns sudo zypper remove patterns-sap-hana sudo zypper remove SAPHanaSR SAPHanaSR-doc yast2-sap-ha # Install the scale-out packages and patterns sudo zypper in SAPHanaSR-ScaleOut SAPHanaSR-ScaleOut-doc sudo zypper in -t pattern ha_sles
[AH] Preparación de las VM: aplique la configuración recomendada según la nota de SAP 2205917 para las aplicaciones de SAP de SUSE Linux Enterprise Server.
Preparación de los sistemas de archivos
Ha elegido implementar los directorios compartidos de SAP en un recurso compartido NFS en Azure Files o volumen NFS en Azure NetApp Files.
Montaje de los sistemas de archivos compartidos (NFS de Azure NetApp Files)
En este ejemplo, los sistemas de archivos de HANA compartidos se implementan en Azure NetApp Files y se montan en NFSv4.1. Siga los pasos de esta sección solo si usa NFS en Azure NetApp Files.
[AH] Prepare el sistema operativo para ejecutar SAP HANA en sistemas NetApp con NFS, tal como se describe en la nota de SAP 3024346 - Configuración de Linux Kernel para NetApp NFS. Cree el archivo de configuración /etc/sysctl.d/91-NetApp-HANA.conf para la configuración de NetApp.
vi /etc/sysctl.d/91-NetApp-HANA.conf # Add the following entries in the configuration file net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 131072 16777216 net.ipv4.tcp_wmem = 4096 16384 16777216 net.core.netdev_max_backlog = 300000 net.ipv4.tcp_slow_start_after_idle=0 net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_moderate_rcvbuf = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_sack = 1
[AH] Ajuste la configuración de sunrpc, como se recomienda en la nota de SAP 3024346 - Configuración de Linux Kernel para NetApp NFS.
vi /etc/modprobe.d/sunrpc.conf # Insert the following line options sunrpc tcp_max_slot_table_entries=128
[AH] Cree puntos de montaje para los volúmenes de bases de datos HANA.
mkdir -p /hana/shared
[AH] Compruebe la configuración del dominio NFS. Asegúrese de que el dominio esté configurado como dominio predeterminado de Azure NetApp Files, es decir,
defaultv4iddomain.com
, y que la asignación se haya establecido en nobody.
Este paso solo es necesario si usa Azure NetAppFiles NFSv4.1.Importante
Asegúrese de establecer el dominio NFS de
/etc/idmapd.conf
en la máquina virtual para que coincida con la configuración de dominio predeterminada en Azure NetApp Files:defaultv4iddomain.com
. Si hay alguna discrepancia entre la configuración de dominio del cliente NFS (es decir, la máquina virtual) y el servidor NFS (es decir la configuración de Azure NetApp), los permisos de archivos en volúmenes de Azure NetApp que estén montados en las máquinas virtuales se mostrarán comonobody
.sudo cat /etc/idmapd.conf # Example [General] Domain = defaultv4iddomain.com [Mapping] Nobody-User = nobody Nobody-Group = nobody
[AH] Compruebe
nfs4_disable_idmapping
. Debe establecerse en S. Para crear la estructura de directorio en la que se encuentranfs4_disable_idmapping
, ejecute el comando mount. No podrá crear manualmente el directorio en /sys/modules, ya que el acceso está reservado para el kernel o los controladores.
Este paso solo es necesario si usa Azure NetAppFiles NFSv4.1.# Check nfs4_disable_idmapping cat /sys/module/nfs/parameters/nfs4_disable_idmapping # If you need to set nfs4_disable_idmapping to Y mkdir /mnt/tmp mount 10.23.1.7:/HN1-share-s1 /mnt/tmp umount /mnt/tmp echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping # Make the configuration permanent echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
[AH1] Monte los volúmenes de Azure NetApp Files compartidos en las máquinas virtuales de base de datos HANA del sitio 1.
sudo vi /etc/fstab # Add the following entry 10.23.1.7:/HN1-shared-s1 /hana/shared nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount all volumes sudo mount -a
[AH2] Monte los volúmenes de Azure NetApp Files compartidos en las máquinas virtuales de base de datos HANA del sitio 2.
sudo vi /etc/fstab # Add the following entry 10.23.1.7:/HN1-shared-s2 /hana/shared nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount the volume sudo mount -a
[AH] Compruebe que los sistemas de archivos
/hana/shared/
correspondientes estén montados en todas las máquinas virtuales de base de datos HANA con la versión del protocolo NFS NFSv4.1.sudo nfsstat -m # Verify that flag vers is set to 4.1 # Example from SITE 1, hana-s1-db1 /hana/shared from 10.23.1.7:/HN1-shared-s1 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.19,local_lock=none,addr=10.23.1.7 # Example from SITE 2, hana-s2-db1 /hana/shared from 10.23.1.7:/HN1-shared-s2 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.22,local_lock=none,addr=10.23.1.7
Montaje de los sistemas de archivos compartidos (NFS de Azure Files)
En este ejemplo, los sistemas de archivos de HANA compartidos se implementan en NFS de Azure Files. Siga los pasos de esta sección solo si usa NFS en Azure Files.
[AH] Cree puntos de montaje para los volúmenes de bases de datos HANA.
mkdir -p /hana/shared
[AH1] Monte los volúmenes de Azure NetApp Files compartidos en las máquinas virtuales de base de datos HANA del sitio 1.
sudo vi /etc/fstab # Add the following entry sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1 /hana/shared nfs nfsvers=4.1,sec=sys 0 0 # Mount all volumes sudo mount -a
[AH2] Monte los volúmenes de Azure NetApp Files compartidos en las máquinas virtuales de base de datos HANA del sitio 2.
sudo vi /etc/fstab # Add the following entries sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 /hana/shared nfs nfsvers=4.1,sec=sys 0 0 # Mount the volume sudo mount -a
[AH] Compruebe que los sistemas de archivos
/hana/shared/
correspondientes estén montados en todas las máquinas virtuales de base de datos HANA con la versión del protocolo NFS NFSv4.1.sudo nfsstat -m # Example from SITE 1, hana-s1-db1 sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1 Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.19,local_lock=none,addr=10.23.0.35 # Example from SITE 2, hana-s2-db1 sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.22,local_lock=none,addr=10.23.0.35
Preparación de los sistemas de archivos locales de registro y datos
En la configuración presentada, los sistemas de archivos /hana/data
y /hana/log
están implementados en el disco administrado y conectados localmente a cada máquina virtual de base de datos HANA.
Tendrá que ejecutar los pasos necesarios para crear los volúmenes locales de datos y de registro en cada máquina virtual de base de datos HANA.
Configure el diseño de disco con el Administrador de volúmenes lógicos (LVM) . En el ejemplo siguiente se supone que cada máquina virtual HANA tiene tres discos de datos conectados que se usan para crear dos volúmenes.
[AH] Enumere todos los discos disponibles:
ls /dev/disk/azure/scsi1/lun*
Salida de ejemplo:
/dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 /dev/disk/azure/scsi1/lun2
[AH] Cree volúmenes físicos para todos los discos que quiera usar:
sudo pvcreate /dev/disk/azure/scsi1/lun0 sudo pvcreate /dev/disk/azure/scsi1/lun1 sudo pvcreate /dev/disk/azure/scsi1/lun2
[AH] Cree un grupo de volúmenes para los archivos de datos. Use un grupo de volúmenes para los archivos de registro y otro para el directorio compartido de SAP HANA:\
sudo vgcreate vg_hana_data_HN1 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1 sudo vgcreate vg_hana_log_HN1 /dev/disk/azure/scsi1/lun2
[AH] Cree los volúmenes lógicos.
Cuando se usa
lvcreate
sin el modificador-i
, se crea un volumen lineal. Se recomienda crear un volumen seccionado para mejorar el rendimiento de E/S y, después, alinear los tamaños de sección con los valores documentados en Configuraciones de almacenamiento de máquinas virtuales de Azure en SAP HANA. El argumento-i
debe ser el número de volúmenes físicos subyacentes y-I
, el tamaño de la sección. En este documento, se usan dos volúmenes físicos para el volumen de datos, por lo que el modificador-i
se establece en 2. El tamaño de sección para el volumen de datos es 256 KiB. Se usa un volumen físico para el volumen de registro, así que no se usa explícitamente ningún modificador-i
o-I
para los comandos del volumen de registro.Importante
Use el modificador
-i
y establézcalo en el número del volumen físico subyacente cuando se usa más de un volumen físico para cada volumen de datos o de registro. Use el modificador-I
para especificar el tamaño de las secciones al crear un volumen seccionado.
Consulte Configuraciones de almacenamiento de máquinas virtuales de Azure en SAP HANA para conocer las configuraciones de almacenamiento recomendadas, incluidos los tamaños de sección y el número de discos.sudo lvcreate -i 2 -I 256 -l 100%FREE -n hana_data vg_hana_data_HN1 sudo lvcreate -l 100%FREE -n hana_log vg_hana_log_HN1 sudo mkfs.xfs /dev/vg_hana_data_HN1/hana_data sudo mkfs.xfs /dev/vg_hana_log_HN1/hana_log
[AH] Cree los directorios de montaje y copie el UUID de todos los volúmenes lógicos:
sudo mkdir -p /hana/data/HN1 sudo mkdir -p /hana/log/HN1 # Write down the ID of /dev/vg_hana_data_HN1/hana_data and /dev/vg_hana_log_HN1/hana_log sudo blkid
[AH] Cree entradas
fstab
para los volúmenes lógicos y móntelos:sudo vi /etc/fstab
Inserte la siguiente línea en el archivo
/etc/fstab
:/dev/disk/by-uuid/UUID of /dev/mapper/vg_hana_data_HN1-hana_data /hana/data/HN1 xfs defaults,nofail 0 2 /dev/disk/by-uuid/UUID of /dev/mapper/vg_hana_log_HN1-hana_log /hana/log/HN1 xfs defaults,nofail 0 2
Monte los nuevos volúmenes:
sudo mount -a
Creación de un clúster de Pacemaker
Siga los pasos de Configuración de Pacemaker en SUSE Linux Enterprise Server en Azure para crear un clúster de Pacemaker básico para este servidor HANA. Incluya todas las máquinas virtuales, inclusive la que sirve para obtener la mayoría en el clúster.
Importante
No establezca quorum expected-votes
en 2, ya que no es un clúster de dos nodos.
Asegúrese de que la propiedad de clúster concurrent-fencing
esté habilitada, de modo que se deserialicen las barreras de nodo.
Instalación
En este ejemplo para implementar SAP HANA en la configuración de escalabilidad horizontal con HSR en máquinas virtuales de Azure, usamos HANA 2.0 SP5.
Preparación de la instalación de HANA
[AH] Antes de realizar la instalación de HANA, establezca la contraseña raíz. Puede deshabilitar la contraseña raíz una vez completada la instalación. Ejecute como
passwd
del comandoroot
.[1,2] Cambie los permisos para
/hana/shared
.chmod 775 /hana/shared
[1] Compruebe que puede iniciar sesión a través de SSH en las máquinas virtuales de base de datos HANA en hana-s1-db2 y hana-s1-db3 del sitio, sin que se le pida una contraseña. Si ese no es el caso, intercambie las claves SSH tal como se describe en Habilitación del acceso SSH a través de la clave pública.
ssh root@hana-s1-db2 ssh root@hana-s1-db3
[2] Compruebe que puede iniciar sesión a través de SSH en las máquinas virtuales de base de datos HANA en hana-s2-db2 y hana-s2-db3 del sitio, sin que se le pida una contraseña.
Si ese no es el caso, intercambie las claves ssh.ssh root@hana-s2-db2 ssh root@hana-s2-db3
[AH] Instale paquetes adicionales, necesarios para HANA 2.0 SP4 y versiones posteriores. Para obtener más información, consulte las notas de SAP 2593824 para la versión de SLES.
# In this example, using SLES12 SP5 sudo zypper install libgcc_s1 libstdc++6 libatomic1
Instalación de HANA en el primer nodo de cada sitio
[1] Instale SAP HANA. Para ello, siga las instrucciones de la guía de instalación y actualización de SAP HANA 2.0. En las instrucciones que se indican a continuación, se muestra la instalación de SAP HANA en el primer nodo del sitio 1.
a. Inicie el programa hdblcm como
root
desde el directorio de software de instalación de HANA. Use el parámetrointernal_network
y pase el espacio de direcciones a la subred que se usa para la comunicación interna entre nodos de HANA../hdblcm --internal_network=10.23.1.128/26
b. Escriba los siguientes valores en el símbolo del sistema:
- En Elegir una acción: escriba 1 (para la instalación)
- En Additional components for installation (Componentes adicionales para la instalación): especifique 2, 3
- Para la ruta de instalación: presione Entrar (el valor predeterminado es/Hana/Shared).
- En Local Host Name (Nombre de host local): presione Entrar para aceptar el valor predeterminado.
- En Do you want to add hosts to the system? (¿Desea agregar hosts al sistema): escriba y.
- En SAP HANA ID (Id. de SAP HANA) del sistema: escriba HN1.
- En Instance number (Número de instancia) [00]: escriba 03.
- En Local Host Worker Group (Grupo de trabajo de host local) [valor predeterminado]: presione Entrar para aceptar el valor predeterminado.
- En Select System Usage / Enter index [4] (Seleccionar uso del sistema o especificar el índice [4]): escriba 4 (para personalizar).
- En Location of Data Volumes (Ubicación de los volúmenes de datos) [/hana/data/HN1]: presione Entrar para aceptar el valor predeterminado.
- En Location of Log Volumes (Ubicación de los volúmenes de registro) [/hana/log/HN1]: presione Entrar para aceptar el valor predeterminado.
- En Restrict maximum memory allocation? [n]: escriba n
- En Certificate Host Name For Host hana-s1-db1 (Nombre de host del certificado para el host hana-s1-db1) [hana-s1-db1]: presione Entrar para aceptar el valor predeterminado.
- En SAP Host Agent User (sapadm) Password [Contraseña del usuario del agente de host de SAP (sapadm)]: escriba la contraseña.
- En Confirm SAP Host Agent User (sapadm) Password [Confirmar contraseña de usuario del agente de host de SAP (sapadm)]: escriba la contraseña.
- En System Administrator (hn1adm) Password (Contraseña del administrador del sistema (hn1adm)): escriba la contraseña.
- En System Administrator Home Directory (Directorio principal de administrador del sistema) [/usr/sap/HN1/home]: presione Entrar para aceptar el valor predeterminado.
- En System Administrator Login Shell (Shell de inicio de sesión de administrador del sistema) [/bin/sh]: presione Entrar para aceptar el valor predeterminado.
- En System Administrator User ID (Id. de usuario de administrador del sistema) [1001]: presione Entrar para aceptar el valor predeterminado.
- En Enter ID of User Group (sapsys) [Escriba el id. del grupo de usuarios (sapsys)] [79]: presione Entrar para aceptar el valor predeterminado.
- En System Database User (system) Password (Contraseña de usuario de base de datos del sistema (sistema)): escriba la contraseña del sistema.
- En Confirm System Database User (system) Password (Confirmar la contraseña del usuario (sistema) de la base de datos del sistema): escriba la contraseña del sistema.
- En ¿Reiniciar el sistema tras el reinicio de la máquina? [n]: escriba n
- En Do you want to continue (y/n) (¿Desea continuar (sí/no)?): valide el resumen y, si todo es correcto, especifique s.
[2] Repita el paso anterior para instalar SAP HANA en el primer nodo del sitio 2.
[1,2] Compruebe global.ini.
Muestre global.ini y asegúrese de que la configuración de la comunicación interna entre nodos de SAP HANA esté presente. Compruebe la sección de communication. Debe tener el espacio de direcciones para la subred
inter
, ylisteninterface
debe estar establecido en.internal
. Compruebe la sección internal_hostname_resolution. Debe tener las direcciones IP de las máquinas virtuales de HANA que pertenezcan a la subredinter
.sudo cat /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini # Example from SITE1 [communication] internal_network = 10.23.1.128/26 listeninterface = .internal [internal_hostname_resolution] 10.23.1.132 = hana-s1-db1 10.23.1.133 = hana-s1-db2 10.23.1.134 = hana-s1-db3
[1,2] Prepare
global.ini
para la instalación en un entorno no compartido, como se describe en la nota de SAP 2080991.sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini [persistence] basepath_shared = no
[1,2] Reinicie SAP HANA para activar los cambios.
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem
[1,2] Compruebe que la interfaz de cliente utilizará las direcciones IP de la subred
client
para la comunicación.# Execute as hn1adm /usr/sap/HN1/HDB03/exe/hdbsql -u SYSTEM -p "password" -i 03 -d SYSTEMDB 'select * from SYS.M_HOST_INFORMATION'|grep net_publicname # Expected result - example from SITE 2 "hana-s2-db1","net_publicname","10.23.0.22"
Para más información sobre cómo comprobar la configuración, consulte la nota de SAP 2183363 - Configuration of SAP HANA internal network (Configuración de la red interna de SAP HANA).
[AH] Cambie los permisos en los directorios de datos y de registro para evitar errores de instalación de HANA.
sudo chmod o+w -R /hana/data /hana/log
[1] Instale los nodos secundarios de HANA. Las instrucciones de ejemplo de este paso son para el sitio 1.
a. Inicie el programa residente hdblcm como
root
.cd /hana/shared/HN1/hdblcm ./hdblcm
b. Escriba los siguientes valores en el símbolo del sistema:
- En Elegir una acción: escriba 2 (para agregar hosts).
- En Enter comma-separated host names to add (Escriba los nombres de host separados por comas que se deben agregar): hana-s1-db2, hana-s1-db3.
- En Additional components for installation (Componentes adicionales para la instalación): especifique 2, 3
- En Enter Root User Name [root] (Escriba el nombre de usuario raíz [raíz]): presione Entrar para aceptar el valor predeterminado.
- En Select roles for host 'hana-s1-db2' [1] (Seleccione los roles para el host "hana-s1-db2" [1]): 1 (para trabajo)
- En Enter Host Failover Group for host 'hana-s1-db2' [default] (Escriba el grupo de conmutación por error de host para el host "hana-s1-db2" [predeterminado]): presione Entrar para aceptar el valor predeterminado.
- En Enter Storage Partition Number for host 'hana-s1-db2' [<<asignar automáticamente>>], presione Introducir para aceptar el valor predeterminado.
- En Enter Worker Group for host 'hana-s1-db2' [default] (Escriba el grupo de trabajo para el host "hana-s1-db2" [predeterminado]): presione Entrar para aceptar el valor predeterminado.
- En Select roles for host 'hana-s1-db3' [1] (Seleccione los roles para el host "hana-s1-db3" [1]): 1 (para trabajo)
- En Enter Host Failover Group for host 'hana-s1-db3' [default] (Escriba el grupo de conmutación por error de host para el host "hana-s1-db3" [predeterminado]): presione Entrar para aceptar el valor predeterminado.
- En Enter Storage Partition Number for host 'hana-s1-db3' [<<asignar automáticamente>>], presione Introducir para aceptar el valor predeterminado.
- En Enter Worker Group for host 'hana-s1-db3' [default] (Escriba el grupo de trabajo para el host "hana-s1-db3" [predeterminado]): presione Entrar para aceptar el valor predeterminado.
- En System Administrator (hn1adm) Password (Contraseña del administrador del sistema (hn1adm)): escriba la contraseña.
- En Enter SAP Host Agent User (sapadm) Password [Escriba la contraseña del usuario del agente de host de SAP (sapadm)]: escriba la contraseña.
- En Confirm SAP Host Agent User (sapadm) Password [Confirmar contraseña de usuario del agente de host de SAP (sapadm)]: escriba la contraseña.
- En Certificate Host Name For Host hana-s1-db2 (Nombre de host del certificado para el host hana-s1-db2) [hana-s1-db2]: presione Entrar para aceptar el valor predeterminado.
- En Certificate Host Name For Host hana-s1-db3 (Nombre de host del certificado para el host hana-s1-db3) [hana-s1-db3]: presione Entrar para aceptar el valor predeterminado.
- En Do you want to continue (y/n) (¿Desea continuar (sí/no)?): valide el resumen y, si todo es correcto, especifique s.
[2] Repita el paso anterior para instalar los nodos de SAP HANA secundarios en el sitio 2.
Configuración de la Replicación del sistema de SAP HANA 2.0
[1] Configure la replicación del sistema en el sitio 1:
Haga una copia de seguridad de las bases de datos como hn1adm:
hdbsql -d SYSTEMDB -u SYSTEM -p "passwd" -i 03 "BACKUP DATA USING FILE ('initialbackupSYS')" hdbsql -d HN1 -u SYSTEM -p "passwd" -i 03 "BACKUP DATA USING FILE ('initialbackupHN1')"
Copie los archivos PKI de sistema en el sitio secundario:
scp /usr/sap/HN1/SYS/global/security/rsecssfs/data/SSFS_HN1.DAT hana-s2-db1:/usr/sap/HN1/SYS/global/security/rsecssfs/data/ scp /usr/sap/HN1/SYS/global/security/rsecssfs/key/SSFS_HN1.KEY hana-s2-db1:/usr/sap/HN1/SYS/global/security/rsecssfs/key/
Cree el sitio principal:
hdbnsutil -sr_enable --name=HANA_S1
[2] Configure la replicación del sistema en el sitio 2:
Registre el segundo sitio para iniciar la replicación del sistema. Ejecute el siguiente comando como <hanasid>adm:
sapcontrol -nr 03 -function StopWait 600 10 hdbnsutil -sr_register --remoteHost=hana-s1-db1 --remoteInstance=03 --replicationMode=sync --name=HANA_S2 sapcontrol -nr 03 -function StartSystem
[1] Comprobación del estado de replicación
Compruebe el estado de replicación y espere hasta que todas las bases de datos estén sincronizadas.
sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py" # | Database | Host | Port | Service Name | Volume ID | Site ID | Site Name | Secondary | Secondary | Secondary | Secondary | Secondary | Replication | Replication | Replication | # | | | | | | | | Host | Port | Site ID | Site Name | Active Status | Mode | Status | Status Details | # | -------- | ------------- | ----- | ------------ | --------- | ------- | --------- | ------------- | --------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- | # | HN1 | hana-s1-db3 | 30303 | indexserver | 5 | 1 | HANA_S1 | hana-s2-db3 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # | SYSTEMDB | hana-s1-db1 | 30301 | nameserver | 1 | 1 | HANA_S1 | hana-s2-db1 | 30301 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # | HN1 | hana-s1-db1 | 30307 | xsengine | 2 | 1 | HANA_S1 | hana-s2-db1 | 30307 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # | HN1 | hana-s1-db1 | 30303 | indexserver | 3 | 1 | HANA_S1 | hana-s2-db1 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # | HN1 | hana-s1-db2 | 30303 | indexserver | 4 | 1 | HANA_S1 | hana-s2-db2 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # # status system replication site "2": ACTIVE # overall system replication status: ACTIVE # # Local System Replication State # # mode: PRIMARY # site id: 1 # site name: HANA_S1
[1,2] Cambie la configuración de HANA para que la comunicación para la replicación del sistema HANA se direccione a través de las interfaces de red virtual de replicación del sistema HANA.
Detenga HANA en ambos sitios
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB
Edite global. ini para agregar la asignación de host para la replicación del sistema HANA: use las direcciones IP de la subred
hsr
.sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini #Add the section [system_replication_hostname_resolution] 10.23.1.196 = hana-s1-db1 10.23.1.197 = hana-s1-db2 10.23.1.198 = hana-s1-db3 10.23.1.199 = hana-s2-db1 10.23.1.200 = hana-s2-db2 10.23.1.201 = hana-s2-db3
Inicie HANA en ambos sitios
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem HDB
Para más información, vea Resolución del nombre de host para la replicación del sistema.
Creación de recursos del sistema de archivos
Cree un recurso de clúster de un sistema de archivos ficticio, que supervisará y notificará los errores, en caso de que haya un problema al acceder al sistema de archivos /hana/shared
montado en NFS. Esto permite que el clúster desencadene la conmutación por error, en caso de que se produzca un problema al acceder a /hana/shared
. Para más información, vea Control de recursos compartidos de NFS con errores en el clúster de alta disponibilidad de SUSE para la replicación del sistema HANA.
[1] Coloque Pacemaker en modo de mantenimiento, como preparación para la creación de los recursos de clúster de HANA.
crm configure property maintenance-mode=true
[1,2] Cree el directorio en el sistema de archivos montado en NFS /hana/compartido, que se usará en el recurso de supervisión del sistema de archivos especial. Los directorios deben crearse en ambos sitios.
mkdir -p /hana/shared/HN1/check
[AH] Cree el directorio que se usará para montar el recurso de supervisión del sistema de archivos especial. El directorio debe crearse en todos los nodos del clúster de HANA.
mkdir -p /hana/check
[1] Cree los recursos de clúster del sistema de archivos.
crm configure primitive fs_HN1_HDB03_fscheck Filesystem \ params device="/hana/shared/HN1/check" \ directory="/hana/check" fstype=nfs4 \ options="bind,defaults,rw,hard,proto=tcp,noatime,nfsvers=4.1,lock" \ op monitor interval=120 timeout=120 on-fail=fence \ op_params OCF_CHECK_LEVEL=20 \ op start interval=0 timeout=120 op stop interval=0 timeout=120 crm configure clone cln_fs_HN1_HDB03_fscheck fs_HN1_HDB03_fscheck \ meta clone-node-max=1 interleave=true crm configure location loc_cln_fs_HN1_HDB03_fscheck_not_on_mm \ cln_fs_HN1_HDB03_fscheck -inf: hana-s-mm
El atributo
OCF_CHECK_LEVEL=20
se agrega a la operación de supervisión, de modo que las operaciones de supervisión realicen una prueba de lectura/escritura en el sistema de archivos. Sin este atributo, la operación de supervisión solo comprueba que el sistema de archivos esté montado. Esto puede ser un problema porque, cuando se pierde la conectividad, el sistema de archivos puede permanecer montado, a pesar de que no se pueda acceder.El atributo
on-fail=fence
también se agrega a la operación de supervisión. Con esta opción, si se produce un error en la operación de supervisión en un nodo, ese nodo se delimita inmediatamente.
Implementación de los enlaces de alta disponibilidad de HANA SAPHanaSrMultiTarget y susChkSrv
Este paso importante sirve para optimizar la integración con el clúster y la detección cuando es posible realizar una conmutación por error del clúster. Se recomienda encarecidamente configurar el enlace de Python SAPHanaSrMultiTarget. Para HANA 2.0 SP5 y versiones posteriores, se recomienda implementar los enlaces SAPHanaSrMultiTarget y susChkSrv.
Nota:
El proveedor de alta disponibilidad SAPHanaSrMultiTarget reemplaza SAPHanaSR para el escalado horizontal de HANA. SAPHanaSR se describió en la versión anterior de este documento.
Consulte la entrada de blog de SUSE sobre los cambios con el nuevo enlace de alta disponibilidad de HANA.
Los pasos proporcionados para el enlace SAPHanaSrMultiTarget son para una nueva instalación. La actualización de un entorno existente desde SAPHanaSR al proveedor SAPHanaSrMultiTarget requiere varios cambios y no se describen en este documento. Si el entorno existente no usa ningún tercer sitio para la recuperación ante desastres y no se usa la replicación del sistema de varios destinos de HANA, el proveedor de alta disponibilidad SAPHanaSR puede permanecer en uso.
SusChkSrv amplía la funcionalidad del proveedor de alta disponibilidad SAPHanaSrMultiTarget principal. Actúa en la situación en la que se bloquea el proceso de HANA hdbindexserver. Si un único proceso se bloquea, normalmente HANA intenta reiniciarlo. El reinicio del proceso de indexserver puede tardar mucho tiempo, durante el cual la base de datos de HANA no responde. Con susChkSrv implementado, se ejecuta una acción inmediata y configurable en lugar de esperar a que el proceso de hdbindexserver se reinicie en el mismo nodo. En el escalado horizontal de HANA, susChkSrv actúa para cada máquina virtual de HANA de forma independiente. La acción configurada eliminará HANA o cercará la máquina virtual afectada, lo que desencadenará una conmutación por error en el período de tiempo de espera configurado.
Se requiere SUSE SLES 15 SP1 o superior para el funcionamiento de ambos enlaces de alta disponibilidad de HANA. En la tabla siguiente se muestran otras dependencias.
Enlace de alta disponibilidad de SAP HANA | Versión de HANA necesaria | SAPHanaSR-ScaleOut necesario |
---|---|---|
SAPHanaSrMultiTarget | HANA 2.0 SPS4 o superior | 0.180 o superior |
susChkSrv | HANA 2.0 SPS5 o superior | 0.184.1 o superior |
Pasos para implementar ambos enlaces:
[1,2] Detenga HANA en ambos sitios de replicación del sistema. Ejecute como <sid>adm:
sapcontrol -nr 03 -function StopSystem
[1,2] Ajuste
global.ini
en cada uno de los sitios del clúster. Si no se cumplen los requisitos previos para el enlace susChkSrv, no se debe configurar todo el bloque[ha_dr_provider_suschksrv]
.
Puede ajustar el comportamiento de susChkSrv con el parámetro action_on_lost. Los valores válidos son[ ignore | stop | kill | fence ]
.# add to global.ini on both sites. Do not copy global.ini between sites. [ha_dr_provider_saphanasrmultitarget] provider = SAPHanaSrMultiTarget path = /usr/share/SAPHanaSR-ScaleOut execution_order = 1 [ha_dr_provider_suschksrv] provider = susChkSrv path = /usr/share/SAPHanaSR-ScaleOut execution_order = 3 action_on_lost = kill [trace] ha_dr_saphanasrmultitarget = info
La ubicación predeterminada de los enlaces de alta disponibilidad tal y como la entrega SUSE es /usr/share/SAPHanaSR-ScaleOut. El uso de la ubicación estándar aporta una ventaja, que el código de enlace de Python se actualiza automáticamente mediante las actualizaciones del sistema operativo o del paquete y que HANA lo usa en el siguiente reinicio. Con una ruta de acceso opcional propia, como /hana/shared/myHooks, puede desacoplar las actualizaciones del sistema operativo de la versión de enlace usada.
[AH] El clúster requiere la configuración de sudoers en los nodos de clúster para <sid>adm. En este ejemplo, esto se consigue mediante la creación de un archivo nuevo. Ejecute el comando como
root
y adapte los valores de hn1 con el SID correcto en minúscula.cat << EOF > /etc/sudoers.d/20-saphana # SAPHanaSR-ScaleOut needs for HA/DR hook scripts so1adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_hn1_site_srHook_* so1adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_hn1_gsh * so1adm ALL=(ALL) NOPASSWD: /usr/sbin/SAPHanaSR-hookHelper --sid=hn1 * EOF
[1,2] Inicie SAP HANA en ambos sitios de replicación. Ejecute como <sid>adm.
sapcontrol -nr 03 -function StartSystem
[A] Compruebe que la instalación del enlace está activa en todos los nodos del clúster. Ejecute como <sid>adm.
cdtrace grep HADR.*load.*SAPHanaSrMultiTarget nameserver_*.trc | tail -3 # Example output # nameserver_hana-s1-db1.31001.000.trc:[14162]{-1}[-1/-1] 2023-01-26 12:53:55.728027 i ha_dr_provider HADRProviderManager.cpp(00083) : loading HA/DR Provider 'SAPHanaSrMultiTarget' from /usr/share/SAPHanaSR-ScaleOut/ grep SAPHanaSr.*init nameserver_*.trc | tail -3 # Example output # nameserver_hana-s1-db1.31001.000.trc:[17636]{-1}[-1/-1] 2023-01-26 16:30:19.256705 i ha_dr_SAPHanaSrM SAPHanaSrMultiTarget.py(00080) : SAPHanaSrMultiTarget.init() CALLING CRM: <sudo /usr/sbin/crm_attribute -n hana_hn1_gsh -v 2.2 -l reboot> rc=0 # nameserver_hana-s1-db1.31001.000.trc:[17636]{-1}[-1/-1] 2023-01-26 16:30:19.256739 i ha_dr_SAPHanaSrM SAPHanaSrMultiTarget.py(00081) : SAPHanaSrMultiTarget.init() Running srHookGeneration 2.2, see attribute hana_hn1_gsh too
Compruebe la instalación del enlace susChkSrv. Ejecute como <sid>adm.
cdtrace egrep '(LOST:|STOP:|START:|DOWN:|init|load|fail)' nameserver_suschksrv.trc # Example output # 2023-01-19 08:23:10.581529 [1674116590-10005] susChkSrv.init() version 0.7.7, parameter info: action_on_lost=fence stop_timeout=20 kill_signal=9 # 2023-01-19 08:23:31.553566 [1674116611-14022] START: indexserver event looks like graceful tenant start # 2023-01-19 08:23:52.834813 [1674116632-15235] START: indexserver event looks like graceful tenant start (indexserver started)
Creación de recursos de clúster de SAP HANA
[1] Cree recursos de clúster de HANA. Ejecute los siguientes comandos como
root
.Asegúrese de que el clúster ya esté en modo de mantenimiento.
A continuación, cree el recurso de topología de HANA.
sudo crm configure primitive rsc_SAPHanaTopology_HN1_HDB03 ocf:suse:SAPHanaTopology \ op monitor interval="10" timeout="600" \ op start interval="0" timeout="600" \ op stop interval="0" timeout="300" \ params SID="HN1" InstanceNumber="03" sudo crm configure clone cln_SAPHanaTopology_HN1_HDB03 rsc_SAPHanaTopology_HN1_HDB03 \ meta clone-node-max="1" target-role="Started" interleave="true"
A continuación, cree el recurso de instancia de HANA.
Nota:
Este artículo contiene referencias a términos que Microsoft ya no utiliza. Cuando se eliminen estos términos del software, se eliminarán de este artículo.
sudo crm configure primitive rsc_SAPHana_HN1_HDB03 ocf:suse:SAPHanaController \ op start interval="0" timeout="3600" \ op stop interval="0" timeout="3600" \ op promote interval="0" timeout="3600" \ op monitor interval="60" role="Master" timeout="700" \ op monitor interval="61" role="Slave" timeout="700" \ params SID="HN1" InstanceNumber="03" PREFER_SITE_TAKEOVER="true" \ DUPLICATE_PRIMARY_TIMEOUT="7200" AUTOMATED_REGISTER="false" sudo crm configure ms msl_SAPHana_HN1_HDB03 rsc_SAPHana_HN1_HDB03 \ meta clone-node-max="1" master-max="1" interleave="true"
Importante
Se recomienda como procedimiento recomendado que solo establezca AUTOMATED_REGISTER en no mientras realice pruebas de conmutación por error exhaustivas, para evitar que la instancia principal con errores se registre automáticamente como secundaria. Una vez que las pruebas de conmutación por error se hayan completado correctamente, establezca AUTOMATED_REGISTER en yes, de modo que, después de la toma de control, la replicación del sistema se pueda reanudar automáticamente.
Cree una dirección IP virtual y los recursos asociados.
sudo crm configure primitive rsc_ip_HN1_HDB03 ocf:heartbeat:IPaddr2 \ op monitor interval="10s" timeout="20s" \ params ip="10.23.0.27" sudo crm configure primitive rsc_nc_HN1_HDB03 azure-lb port=62503 \ op monitor timeout=20s interval=10 \ meta resource-stickiness=0 sudo crm configure group g_ip_HN1_HDB03 rsc_ip_HN1_HDB03 rsc_nc_HN1_HDB03
Cree las restricciones de clúster.
# Colocate the IP with HANA master sudo crm configure colocation col_saphana_ip_HN1_HDB03 4000: g_ip_HN1_HDB03:Started \ msl_SAPHana_HN1_HDB03:Master # Start HANA Topology before HANA instance sudo crm configure order ord_SAPHana_HN1_HDB03 Optional: cln_SAPHanaTopology_HN1_HDB03 \ msl_SAPHana_HN1_HDB03 # HANA resources don't run on the majority maker node sudo crm configure location loc_SAPHanaCon_not_on_majority_maker msl_SAPHana_HN1_HDB03 -inf: hana-s-mm sudo crm configure location loc_SAPHanaTop_not_on_majority_maker cln_SAPHanaTopology_HN1_HDB03 -inf: hana-s-mm
[1] Configure las propiedades de clúster adicionales.
sudo crm configure rsc_defaults resource-stickiness=1000 sudo crm configure rsc_defaults migration-threshold=50
[1] Coloque el clúster fuera del modo de mantenimiento. Asegúrese de que el estado del clúster sea el correcto y de que se iniciaron todos los recursos.
# Cleanup any failed resources - the following command is example crm resource cleanup rsc_SAPHana_HN1_HDB03 # Place the cluster out of maintenance mode sudo crm configure property maintenance-mode=false
[1] Compruebe la comunicación entre el enlace de alta disponibilidad de HANA y el clúster, mostrando la SOK de estado para el SID y ambos sitios de replicación con el estado P(rimary) o S(econdary).
sudo /usr/sbin/SAPHanaSR-showAttr # Expected result # Global cib-time maintenance prim sec sync_state upd # --------------------------------------------------------------------- # HN1 Fri Jan 27 10:38:46 2023 false HANA_S1 - SOK ok # # Sites lpt lss mns srHook srr # ----------------------------------------------- # HANA_S1 1674815869 4 hana-s1-db1 PRIM P # HANA_S2 30 4 hana-s2-db1 SWAIT S
Nota
Los tiempos de espera de la configuración anterior son solo ejemplos y puede ser necesario adaptarlos a la configuración específica de HANA. Por ejemplo, puede que necesite aumentar el tiempo de espera de inicio si la base de datos de SAP HANA tarda más en iniciarse.
Prueba de la conmutación por error de SAP HANA
Nota:
Este artículo contiene referencias a términos que Microsoft ya no utiliza. Cuando se eliminen estos términos del software, se eliminarán también de este artículo.
Antes de iniciar una prueba, compruebe el estado del clúster y de la replicación del sistema SAP HANA.
a. Compruebe que no haya acciones de clúster con errores.
#Verify that there are no failed cluster actions crm status # Example #7 nodes configured #24 resource instances configured # #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # #Full list of resources: # # stonith-sbd (stonith:external/sbd): Started hana-s-mm # Clone Set: cln_fs_HN1_HDB03_fscheck [fs_HN1_HDB03_fscheck] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Stopped: [ hana-s-mm ] # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Stopped: [ hana-s-mm ] # Master/Slave Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03] # Masters: [ hana-s1-db1 ] # Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Stopped: [ hana-s-mm ] # Resource Group: g_ip_HN1_HDB03 # rsc_ip_HN1_HDB03 (ocf::heartbeat:IPaddr2): Started hana-s1-db1 # rsc_nc_HN1_HDB03 (ocf::heartbeat:azure-lb): Started hana-s1-db1
b. Compruebe que la replicación del sistema SAP HANA esté sincronizada.
# Verify HANA HSR is in sync sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py" #| Database | Host | Port | Service Name | Volume ID | Site ID | Site Name | Secondary | Secondary | Secondary | Secondary | Secondary | Replication | Replication | Replication | #| | | | | | | | Host | Port | Site ID | Site Name | Active Status | Mode | Status | Status Details | #| -------- | ------------ | ----- | ------------ | --------- | ------- | --------- | ------------ | --------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- | #| SYSTEMDB | hana-s1-db1 | 30301 | nameserver | 1 | 1 | HANA_S1 | hana-s2-db1 | 30301 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | #| HN1 | hana-s1-db1 | 30307 | xsengine | 2 | 1 | HANA_S1 | hana-s2-db1 | 30307 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | #| HN1 | hana-s1-db1 | 30303 | indexserver | 3 | 1 | HANA_S1 | hana-s2-db1 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | #| HN1 | hana-s1-db3 | 30303 | indexserver | 4 | 1 | HANA_S1 | hana-s2-db3 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | #| HN1 | hana-s1-db2 | 30303 | indexserver | 5 | 1 | HANA_S1 | hana-s2-db2 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | # #status system replication site "1": ACTIVE #overall system replication status: ACTIVE # #Local System Replication State #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # #mode: PRIMARY #site id: 1 #site name: HANA_S1
Le recomendamos validar exhaustivamente la configuración del clúster de SAP HANA; para ello, realice pruebas documentadas en alta disponibilidad para SAP HANA en las VM de Azure en SLES y en el escenario de rendimiento optimizado para la escalabilidad horizontal de replicación de SLES.
Compruebe la configuración del clúster para un escenario de error, cuando un nodo pierde el acceso al recurso compartido de NFS (
/hana/shared
).Los agentes de recursos de SAP HANA dependen de los archivos binarios, almacenados en
/hana/shared
para realizar operaciones durante la conmutación por error. El sistema de archivos/hana/shared
se monta en NFS en la configuración presentada. Una prueba que puede realizar, es crear una regla de firewall temporal para bloquear el acceso al sistema de archivos montado en NFS/hana/shared
en una de las VM del sitio principal. Este enfoque valida que el clúster va a poder realizar la conmutación por error, si se pierde el acceso a/hana/shared
en el sitio de replicación del sistema activo.Resultado esperado: al bloquear el acceso al sistema de archivos
/hana/shared
montado en NFS en una de las VM del sitio principal, se producirá un error en la operación de supervisión que realiza la operación de lectura y escritura en el sistema de archivos, ya que no puede acceder al sistema de archivos y desencadenará la conmutación por error de recursos de HANA. Se espera el mismo resultado cuando el nodo de HANA pierde el acceso al recurso compartido de NFS.Puede comprobar el estado de los recursos del clúster ejecutando
crm_mon
ocrm status
. Estado del recurso antes de iniciar la prueba:# Output of crm_mon #7 nodes configured #24 resource instances configured # #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # #Active resources: # #stonith-sbd (stonith:external/sbd): Started hana-s-mm # Clone Set: cln_fs_HN1_HDB03_fscheck [fs_HN1_HDB03_fscheck] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Master/Slave Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03] # Masters: [ hana-s1-db1 ] # Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Resource Group: g_ip_HN1_HDB03 # rsc_ip_HN1_HDB03 (ocf::heartbeat:IPaddr2): Started hana-s2-db1 # rsc_nc_HN1_HDB03 (ocf::heartbeat:azure-lb): Started hana-s2-db1
Para simular un error para
/hana/shared
:- Si usa NFS en Azure NetApp Files, confirme primero la dirección IP del volumen de Azure NetApp Files
/hana/shared
en el sitio primario. Para hacerlo, ejecutedf -kh|grep /hana/shared
. - Si usa NFS en Azure Files, determine primero la dirección IP del punto de conexión privado de la cuenta de almacenamiento.
A continuación, configure una regla de firewall temporal para bloquear el acceso a la dirección IP del sistema de archivos NFS
/hana/shared
mediante la ejecución del siguiente comando en una de las VM del sitio de replicación del sistema principal de HANA.En este ejemplo, el comando se ejecutó en hana-s1-db1 para el volumen
/hana/shared
de Azure NetApp Files.iptables -A INPUT -s 10.23.1.7 -j DROP; iptables -A OUTPUT -d 10.23.1.7 -j DROP
Los recursos del clúster se migran a otro sitio de replicación del sistema HANA.
Si establece AUTOMATED_REGISTER = "false", tendrá que configurar la replicación del sistema SAP HANA en el sitio secundario. En este caso, puede ejecutar estos comandos para volver a configurar SAP HANA como secundario.
# Execute on the secondary su - hn1adm # Make sure HANA is not running on the secondary site. If it is started, stop HANA sapcontrol -nr 03 -function StopWait 600 10 # Register the HANA secondary site hdbnsutil -sr_register --name=HANA_S1 --remoteHost=hana-s2-db1 --remoteInstance=03 --replicationMode=sync # Switch back to root and cleanup failed resources crm resource cleanup SAPHana_HN1_HDB03
El estado de los recursos, después de la prueba:
# Output of crm_mon #7 nodes configured #24 resource instances configured # #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # #Active resources: # #stonith-sbd (stonith:external/sbd): Started hana-s-mm # Clone Set: cln_fs_HN1_HDB03_fscheck [fs_HN1_HDB03_fscheck] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Master/Slave Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03] # Masters: [ hana-s2-db1 ] # Slaves: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db2 hana-s2-db3 ] # Resource Group: g_ip_HN1_HDB03 # rsc_ip_HN1_HDB03 (ocf::heartbeat:IPaddr2): Started hana-s2-db1 # rsc_nc_HN1_HDB03 (ocf::heartbeat:azure-lb): Started hana-s2-db1
- Si usa NFS en Azure NetApp Files, confirme primero la dirección IP del volumen de Azure NetApp Files
Pasos siguientes
- Planeamiento e implementación de Azure Virtual Machines para SAP
- Implementación de Azure Virtual Machines para SAP
- Implementación de DBMS de Azure Virtual Machines para SAP
- Volúmenes NFS v4.1 en Azure NetApp Files para SAP HANA
- Para más información sobre cómo establecer la alta disponibilidad y planear la recuperación ante desastres de SAP HANA en VM de Azure, consulte Alta disponibilidad de SAP HANA en Azure Virtual Machines (VM).