Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 el 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 tamaños de máquina virtual (VM) 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 de solución de problemas para 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 de HANA (DB).
En la arquitectura presentada, puede implementar el sistema /hana/shared
de archivos compartido de HANA mediante Azure NetApp Files o un recurso compartido NFS en Azure Files. Cada nodo de HANA dentro del mismo sitio de replicación del sistema de HANA monta el sistema de archivos compartido de HANA a través de NFS. 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. Instalará SAP HANA 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 implementa todos los sistemas de archivos HANA en Azure NetApp Files, para sistemas de producción, donde el rendimiento es una clave, se recomienda evaluar y considerar el uso del grupo de volúmenes de aplicaciones de Azure NetApp Files para SAP HANA.
Advertencia
No se admite la implementación /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 a 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 y la red virtual de Azure con tres subredes: 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 como creador de mayoría: hana-s-mm
Implemente las máquinas virtuales como nodos de SAP DB mediante tamaños de máquina virtual certificados para SAP HANA, como se muestra en plataformas IaaS certificadas para SAP HANA. Asegúrese de que las redes aceleradas están habilitadas al implementar los nodos de base de datos de HANA.
Para el nodo mayoritario, puede implementar una máquina virtual pequeña, ya que esta máquina virtual no ejecuta ningún recurso 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 Azure client
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 SUSE Linux Enterprise Server (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
Nota:
No es necesario instalar el paquete de la CLI de Azure en los nodos de HANA para ejecutar el
az
comando . Puede ejecutarlo desde cualquier máquina que tenga instalada la CLI o usar Azure Cloud Shell.
Inicie las máquinas virtuales de base de datos HANA.
Configurar el Balanceador de Carga de Azure
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 interfaz de red de la
client
subred al agregar las máquinas virtuales en el grupo de back-end. - El conjunto completo de comandos de Azure CLI y PowerShell agrega las máquinas virtuales con la principal interfaz de red en el pool 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 un equilibrador de carga estándar de Azure estándar (sin dirección IP pública), no hay conectividad saliente a Internet a menos que se realice una configuración adicional para habilitar el enrutamiento a puntos de conexión públicos. Para más información sobre cómo configurar la conectividad de salida, consulte la conectividad con el punto de conexión público para máquinas virtuales mediante 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 en un recurso NFS compartido 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
Has elegido implementar /hana/shared
en compartición NFS en Azure Files o volumen NFS en Azure NetApp Files.
Implementación de la infraestructura de Azure NetApp Files
Implemente 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:
- compartir hn1-shared-s1 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1)
- compartir 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
Configura y prepara tu sistema operativo realizando los siguientes 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, consulte la nota de SAP 2382421.
[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 de 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 compartidos de Azure NetApp Files en las máquinas virtuales de la base de datos HANA de SITE2.
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 compartidos de Azure NetApp Files en las máquinas virtuales de la base de datos HANA de SITE2.
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
Preparar los datos y registrar los sistemas de archivos locales
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.
Debe ejecutar los pasos para crear los volúmenes de registro y datos locales en cada máquina virtual de base de datos de 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 sugiere crear un volumen con bandas para mejorar el rendimiento de E/S y alinear los tamaños de bandas con los valores documentados en configuraciones de almacenamiento de VM para SAP HANA. El argumento-i
debe ser el número de volúmenes físicos subyacentes, y el argumento-I
es el tamaño de banda. 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 franja para el volumen de datos es 256 KiB. Se utiliza un volumen físico para el volumen de registro, por lo tanto, no se utilizan explícitamente interruptores-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 en SAP HANA para conocer las configuraciones de almacenamiento recomendadas, incluidos los tamaños de tira 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.
Para un clúster de escalabilidad horizontal, asegúrese de que los parámetros siguientes se establecen correctamente:
- No establezca
quorum expected-votes
en 2, ya que no es un clúster de dos nodos. - Asegúrese de que la propiedad
concurrent-fencing=true
del clúster está establecida, de modo que la barrera de nodos esté deserializada. - El recurso stonith-sbd debe incluir el parámetro
pcmk_action_limit=-1
con el valor negativo 1 (ilimitado) para permitir acciones stonith deserializadas.
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
root
del comandopasswd
.[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, que son necesarios para HANA 2.0 SP4 y versiones posteriores. Para obtener más información, consulte la nota de SAP 2593824 para su 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 para la subred que se utiliza para la comunicación interna entre los nodos de HANA../hdblcm --internal_network=10.23.1.128/26
b. Introduzca los siguientes valores en la línea de comandos:
- 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 ¿Desea agregar hosts al sistema: escriba n
- En Id. de SAP HANA del sistema: escriba HN1
- En Instance number (Número de instancia) [00]: escriba 03.
- En 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 Ubicación de los volúmenes de registro [/hana/log/HN1]: presione Entrar para aceptar el valor predeterminado
- En ¿Restringir la asignación máxima de memoria? [n]: escriba n
- En 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.
- Para 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. Introduzca los siguientes valores en la línea de comandos:
- En Elegir una acción: escriba 2 (para agregar hosts).
- En Escribe nombres de host separados por comas para 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 Seleccionar 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 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 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 de clave de almacenamiento seguro del 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.
Implementación de agentes de recursos de HANA
SUSE proporciona dos paquetes de software diferentes para que el agente de recursos de Pacemaker administre SAP HANA. Los paquetes de software SAPHanaSR-ScaleOut y SAPHanaSR-angi usan sintaxis y parámetros ligeramente diferentes y no son compatibles. Consulte las notas de la versión y la documentación de SUSE para más información y diferencias entre SAPHanaSR-angi y SAPHanaSR-ScaleOut. En este documento se describen ambos paquetes en pestañas independientes de las secciones respectivas.
Advertencia
No reemplace el paquete SAPHanaSR-ScaleOut por SAPHanaSR-angi en un clúster ya configurado. La actualización de SAPHanaSR a SAPHanaSR-angi requiere un procedimiento específico. Para más información, consulte la entrada de blog de SUSE How to upgrade to SAPHanaSR-angi (Actualización a SAPHanaSR-angi).
- [A] Instalación de los paquetes de alta disponibilidad de SAP HANA:
Nota:
SAPHanaSR-angi tiene un requisito de versión mínima de SAP HANA 2.0 SPS 05 y SUSE SLES para SAP Applications 15 SP4 o superior.
Ejecute el siguiente comando en todas las máquinas virtuales del clúster, incluido el creador de mayoría para instalar los paquetes de alta disponibilidad:
sudo zypper install SAPHanaSR-angi
sudo zypper in -t pattern ha_sles
Configuración de proveedores de alta disponibilidad y recuperación ante desastres (HA/DR) de SAP HANA
Los proveedores de HA/DR de SAP HANA optimizan la integración con el clúster y mejoran la detección cuando se requiera una conmutación por error del clúster. El script de enlace principal es susHanaSR (para SAPHanaSR-angi) o SAPHanaSrMultiTarget (para el paquete SAPHanaSR-ScaleOut). Es obligatorio para la integración de clústeres configurar el gancho de Python susHanaSR/SAPHanaSrMultiTarget. Para HANA 2.0 SPS 05 y versiones posteriores, se recomienda implementar susHanaSR/SAPHanaSrMultiTarget y los enlaces susChkSrv.
El enlace susChkSrv amplía la funcionalidad del proveedor principal de alta disponibilidad susHanaSR/SAPHanaSrMultiTarget. Actúa cuando el proceso de HANA hdbindexserver se bloquea. 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. La acción desencadena una conmutación por error en el período de tiempo de espera configurado 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 nodo de clúster que ejecuta HANA de forma independiente. La acción configurada elimina HANA o cerca de la máquina virtual afectada, que desencadena una conmutación por error en el período de tiempo de espera configurado.
[1,2] Detenga HANA en ambos sitios de replicación del sistema. Ejecute como <sid>adm:
sapcontrol -nr 03 -function StopSystem
[1,2] Instale los enlaces del proveedor de alta disponibilidad de HANA. Los ganchos deben instalarse en ambos sitios de base de datos HANA.
[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_sushanasr] provider = susHanaSR path = /usr/share/SAPHanaSR-angi execution_order = 1 [ha_dr_provider_suschksrv] provider = susChkSrv path = /usr/share/SAPHanaSR-angi execution_order = 3 action_on_lost = kill [trace] ha_dr_sushanasr = info ha_dr_suschksrv = info
SUSE entrega los enlaces de alta disponibilidad de forma predeterminada en el
/usr/share/SAPHanaSR-angi
directorio. El uso de la ubicación estándar garantiza que el paquete del sistema operativo actualice automáticamente el código de enlace de Python y HANA usa el código actualizado en el siguiente reinicio. Como alternativa, puede especificar su propia ruta de acceso, como/hana/shared/myHooks
, para desacoplar las actualizaciones del sistema operativo de la versión de enlace que use.[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 siguiente comando como raíz. Reemplace <sid> por el id. de sistema SAP en minúsculas, <SID> por el id. de sistema SAP en mayúsculas y <siteA/B> por los nombres de sitio de HANA elegidos.
cat << EOF > /etc/sudoers.d/20-saphana # SAPHanaSR-angi requirements for HA/DR hook scripts Cmnd_Alias SOK_SITEA = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_<siteA> -v SOK -t crm_config -s SAPHanaSR Cmnd_Alias SFAIL_SITEA = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_<siteA> -v SFAIL -t crm_config -s SAPHanaSR Cmnd_Alias SOK_SITEB = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_<siteB> -v SOK -t crm_config -s SAPHanaSR Cmnd_Alias SFAIL_SITEB = /usr/sbin/crm_attribute -n hana_<sid>_site_srHook_<siteB> -v SFAIL -t crm_config -s SAPHanaSR Cmnd_Alias HELPER_TAKEOVER = /usr/bin/SAPHanaSR-hookHelper --sid=<SID> --case=checkTakeover Cmnd_Alias HELPER_FENCE = /usr/bin/SAPHanaSR-hookHelper --sid=<SID> --case=fenceMe <sid>adm ALL=(ALL) NOPASSWD: SOK_SITEA, SFAIL_SITEA, SOK_SITEB, SFAIL_SITEB, HELPER_TAKEOVER, HELPER_FENCE
Para más información sobre cómo implementar el enlace de replicación del sistema de SAP HANA, consulte Configuración de proveedores de alta disponibilidad y recuperación ante desastres de HANA.
- [1,2] Inicie SAP HANA en ambos sitios de replicación. Ejecute como <sid>adm.
sapcontrol -nr 03 -function StartSystem
- [1] Compruebe la instalación del enlace. Ejecute el siguiente comando como adm de <sap-sid> en el sitio de replicación del sistema de HANA activo:
cdtrace
grep HADR.*load.*susHanaSR nameserver_*.trc | tail -3
# Example output
# nameserver_hana-s1-db1.30301.453.trc:[140145]{-1}[-1/-1] 2025-05-26 07:51:34.677221 i ha_dr_provider HADRProviderManager.cpp(00083) : loading HA/DR Provider 'susHanaSR' from /usr/share/SAPHanaSR-angi
grep susHanaSR.*init nameserver_*.trc | tail -3
# Example output
# nameserver_hana-s1-db1.30301.453.trc:[140157]{-1}[-1/-1] 2025-05-26 07:51:34.724422 i ha_dr_susHanaSR susHanaSR.py(00042) : susHanaSR.init() version 1.001.1
- [AH] Compruebe la instalación del enlace susChkSrv. Ejecute el siguiente comando como <sap-sid>adm en cualquier nodo de HANA:
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 el recurso de topología de HANA. Asegúrese de que el clúster está en modo de mantenimiento.
sudo crm configure property maintenance-mode=true
# Replace <placeholders> with your instance number and HANA system ID
sudo crm configure primitive rsc_SAPHanaTopology_<SID>_HDB<InstNum> ocf:suse:SAPHanaTopology \
op monitor interval="50" timeout="600" \
op start interval="0" timeout="600" \
op stop interval="0" timeout="300" \
params SID="<SID>" InstanceNumber="<InstNum>"
sudo crm configure clone cln_SAPHanaTopology_<SID>_HDB<InstNum> rsc_SAPHanaTopology_<SID>_HDB<InstNum> \
meta clone-node-max="1" interleave="true"
- [1] A continuación, cree el recurso de instancia de HANA.
# Replace <placeholders> with your instance number and HANA system ID
sudo crm configure primitive rsc_SAPHanaController_<SID>_HDB<InstNum> ocf:suse:SAPHanaController \
op start interval="0" timeout="3600" \
op stop interval="0" timeout="3600" \
op promote interval="0" timeout="900" \
op demote interval="0" timeout="320" \
op monitor interval="60" role="Promoted" timeout="700" \
op monitor interval="61" role="Unpromoted" timeout="700" \
params SID="<SID>" InstanceNumber="<InstNum>" PREFER_SITE_TAKEOVER="true" \
DUPLICATE_PRIMARY_TIMEOUT="7200" AUTOMATED_REGISTER="false" \
HANA_CALL_TIMEOUT="120"
sudo crm configure clone mst_SAPHanaController_<SID>_HDB<InstNum> rsc_SAPHanaController_<SID>_HDB<InstNum> \
meta clone-node-max="1" interleave="true" promotable="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 Sí, de modo que después de tomar el control, la replicación del sistema pueda reanudarse automáticamente.
- [1] Creación de agentes de recursos del sistema de archivos para /hana/shared
SAPHanaSR-angi agrega un nuevo agente de recursos SAPHanaFilesystem para supervisar el acceso de lectura y escritura a /hana/shared/SID. El sistema operativo estático monta el sistema de archivos /hana/shared/SID con cada host que tenga entradas en /etc/fstab. SAPHanaFilesystem y Pacemaker no montan el sistema de archivos para HANA.
# Replace <placeholders> with your instance number and HANA system ID
sudo crm configure primitive rsc_SAPHanaFilesystem_<SID>_HDB<InstNum> ocf:suse:SAPHanaFilesystem \
op start interval="0" timeout="10" \
op stop interval="0" timeout="20" \
op monitor interval="120" timeout="120" \
params SID="<SID>" InstanceNumber="<InstNum>" ON_FAIL_ACTION="fence"
sudo crm configure clone cln_SAPHanaFilesystem_<SID>_HDB<InstNum> rsc_SAPHanaFilesystem_<SID>_HDB<InstNum> \
meta clone-node-max="1" interleave="true"
# Add a location constraint to not run filesystem check on majority maker VM
sudo crm configure location loc_SAPHanaFilesystem_not_on_majority_maker cln_SAPHanaFilesystem_<SID>_HDB<InstNum> -inf: hana-s-mm
- [1] Continúe con los recursos de clúster para direcciones IP virtuales y restricciones.
# Replace <placeholders> with your instance number and HANA system ID, and respective IP address and load balancer port
sudo crm configure primitive rsc_ip_<SID>_HDB<InstNum> ocf:heartbeat:IPaddr2 \
op start timeout=60s on-fail=fence \
op monitor interval="10s" timeout="20s" \
params ip="10.23.0.27"
sudo crm configure primitive rsc_nc_<SID>_HDB<InstNum> azure-lb port=62503 \
op monitor timeout=20s interval=10 \
meta resource-stickiness=0
sudo crm configure group g_ip_<SID>_HDB<InstNum> rsc_ip_<SID>_HDB<InstNum> rsc_nc_<SID>_HDB<InstNum>
Cree las restricciones de clúster.
# Colocate the IP with primary HANA node
sudo crm configure colocation col_saphana_ip_<SID>_HDB<InstNum> 4000: g_ip_<SID>_HDB<InstNum>:Started \
mst_SAPHanaController_<SID>_HDB<InstNum>:Promoted
# Start HANA Topology before HANA instance
sudo crm configure order ord_SAPHana_<SID>_HDB<InstNum> Optional: cln_SAPHanaTopology_<SID>_HDB<InstNum> \
mst_SAPHanaController_<SID>_HDB<InstNum>
# HANA resources don't run on the majority maker node
sudo crm configure location loc_SAPHanaController_not_on_majority_maker mst_SAPHanaController_<SID>_HDB<InstNum> -inf: hana-s-mm
sudo crm configure location loc_SAPHanaTopology_not_on_majority_maker cln_SAPHanaTopology_<SID>_HDB<InstNum> -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 han iniciado todos los recursos.
# Cleanup any failed resources - the following command is example
sudo 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(rimario) o S(ecundario).
sudo SAPHanaSR-showAttr
Global cib-update dcid prim sec sid topology
----------------------------------------------------------
global 0.165361.0 7 HANA_S2 HANA_S1 HN1 ScaleOut
Resource promotable
-------------------------------------------
msl_SAPHanaController_HN1_HDB03 true
cln_SAPHanaTopology_HN1_HDB03
Site lpt lss mns opMode srHook srMode srPoll srr
----------------------------------------------------------------------
HANA_S2 1748611494 4 hana-s2-db1 logreplay PRIM sync PRIM P
HANA_S1 10 4 hana-s1-db1 logreplay SOK sync SFAIL S
Host clone_state roles score site srah version vhost
----------------------------------------------------------------------------------------------
hana-s1-db1 DEMOTED master1:master:worker:master 100 HANA_S1 - 2.00.074.00 hana-s1-db1
hana-s1-db2 DEMOTED slave:slave:worker:slave -12200 HANA_S1 - 2.00.074.00 hana-s1-db2
hana-s1-db3 DEMOTED slave:slave:worker:slave -12200 HANA_S1 - 2.00.074.00 hana-s1-db3
hana-s2-db1 PROMOTED master1:master:worker:master 150 HANA_S2 - 2.00.074.00 hana-s2-db1
hana-s2-db2 DEMOTED slave:slave:worker:slave -10000 HANA_S2 - 2.00.074.00 hana-s2-db2
hana-s2-db3 DEMOTED slave:slave:worker:slave -10000 HANA_S2 - 2.00.074.00 hana-s2-db3
hana-mm hana-mm
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. SAPHanaSR-angi permite más opciones para una acción más rápida durante un evento de clúster. Consulte la documentación de SUSE para obtener más información sobre el parámetro ON_FAIL_ACTION de SAPHanaController, el agente opcional SAPHanaSR-alert-fencing y otras opciones. La implementación debe ir seguida de pruebas de clústeres exhaustivas adicionales en su entorno.
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 las pruebas documentadas en Alta disponibilidad para SAP HANA en las VM de Azure en SLES y en Escenario optimizado para rendimiento 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 montado nfS en una de las máquinas virtuales del sitio primario, se producirá un error en la operación de supervisión que realiza la operación de lectura y escritura en el
/hana/shared
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 al otro sitio de replicación del sistema HANA.
Si establece AUTOMATED_REGISTER="false", debe configurar la replicación del sistema de SAP HANA en el sitio secundario después de la adquisición. 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).