SAP NetWeaver de alta disponibilidad con montaje sencillo y NFS en SLES para máquinas virtuales de aplicaciones SAP

En este artículo, se describe cómo implementar y configurar máquinas virtuales (VM) de Azure, cómo instalar el marco del clúster y cómo instalar un sistema SAP NetWeaver de alta disponibilidad con una estructura de montaje sencillo. Puede implementar la arquitectura presentada mediante uno de los siguientes servicios del sistema de archivos de red (NFS) nativo de Azure:

Se espera que la configuración de montaje simple sea el valor predeterminado para las nuevas implementaciones en SLES para SAP Applications 15.

Requisitos previos

Las siguientes guías contienen toda la información necesaria para configurar un sistema de alta disponibilidad de NetWeaver:

Información general

En este artículo se describe una configuración de alta disponibilidad para ASCS con una estructura de montaje sencilla. Para implementar la capa de aplicación de SAP, necesita directorios compartidos como /sapmnt/SID, /usr/sap/SID y /usr/sap/trans, que son de alta disponibilidad. Puede implementar estos sistemas de archivos en NFS en Azure FilesoAzure NetApp Files.

Todavía necesita un clúster de Pacemaker para ayudar a proteger los componentes de un único punto de error, como SAP Central Services (SCS) y ASCS.

En comparación con la configuración clásica del clúster de Pacemaker, con la implementación de montaje sencillo, el clúster no administra los sistemas de archivos. Esta configuración solo se admite en SLES para aplicaciones SAP 15 y versiones posteriores. En este artículo no se trata detalladamente la capa de base de datos.

En las configuraciones de ejemplo y los comandos de instalación, se usan los siguientes números de instancia.

Nombre de instancia Número de instancia
ASCS 00
Servidor de replicación en cola (ERS) 01
Servidor de aplicaciones principal (PAS) 02
Servidor de aplicaciones adicional (AAS) 03
Identificador del sistema SAP NW1

Importante

La configuración con estructura de montaje sencillo solo se admite en SLES para aplicaciones SAP 15 y versiones posteriores.

Diagram that shows SAP NetWeaver high availability with simple mount and NFS.

En este diagrama se muestra una arquitectura típica de alta disponibilidad de SAP NetWeaver con montaje sencillo. Los sistemas de archivos "sapmnt" y "saptrans" se implementan en los NFS nativos de Azure: recursos compartidos de NFS en Azure Files o volúmenes NFS en Azure NetApp Files. Un clúster de Pacemaker protege los servicios centrales de SAP. Las máquinas virtuales en clúster están detrás de un equilibrador de carga de Azure. El clúster de Pacemaker no administra los sistemas de archivos, a diferencia de la configuración clásica de Pacemaker.

Preparación de la infraestructura

El agente de recursos para SAP Instance se incluye en SUSE Linux Enterprise Server para SAP Applications. En Azure Marketplace se puede encontrar una imagen para SUSE Linux Enterprise Server para SAP Applications 12 o 15. Puede usar la imagen para implementar nuevas máquinas virtuales.

Implementación manual de VM de Linux mediante Azure Portal

Este documento asume que ya ha implementado un grupo de recursos, Azure Virtual Network y una subred.

Implemente máquinas virtuales con SLES para la imagen de SAP Applications. Elija una versión adecuada de la imagen de SLES compatible con el sistema SAP. Puede implementar la máquina virtual en cualquiera de las opciones de disponibilidad: conjunto de escalado de máquinas virtuales, zona de disponibilidad o conjunto de disponibilidad.

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 los pasos siguientes para configurar un equilibrador de carga estándar para la configuración de alta disponibilidad de ASCS de SAP y ERS de SAP.

Siga la guía de creación del 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.

  1. Configuración de IP de front-end: cree dos direcciones IP de front-end, una para ASCS y otra para ERS. Seleccione la misma red virtual y subred que las máquinas virtuales ASCS/ERS.
  2. Grupo de back-end: cree un grupo de back-end y agregue máquinas virtuales ASCS y ERS.
  3. Reglas de entrada: cree dos reglas de equilibrio de carga, una para ASCS y otra para ERS. Siga los mismos pasos para ambas reglas de equilibrio de carga.
    • Dirección IP de front-end: selección de IP de front-end
    • Grupo de back-end: selección del grupo de back-end
    • Comprobación de "Puertos de alta disponibilidad"
    • Protocolo: TCP
    • Sondeo de estado: cree un sondeo de estado con los detalles siguientes (se aplica tanto para ASCS como para ERS)
      • Protocolo: TCP
      • Puerto: [por ejemplo: 620<Instance-no.> para ASCS, 621<Instance-no.> para ERS]
      • Intervalo: 5
      • Umbral de sondeo: 2
    • Tiempo de espera de inactividad (minutos): 30
    • Active "Habilitar IP flotante"

Nota:

No se respeta la propiedad de configuración del sondeo de estado numberOfProbes, también conocida como "umbral incorrecto" en el Portal. Por lo tanto, 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 puede usar la CLI de Azure o el comando de PowerShell.

Importante

No se admite una dirección IP flotante en una configuración de IP secundaria de tarjeta de interfaz de red (NIC) en escenarios de equilibrio de carga. Para ver detalles, consulte Limitaciones de Azure Load Balancer. Si necesita otra dirección IP para la VM, implemente una segunda NIC.

Nota:

Cuando las máquinas virtuales sin direcciones IP públicas se colocan en el grupo de back-end de una instancia interna de Standard Load Balancer (sin dirección IP pública), no habrá conectividad saliente a Internet, a menos que se realice una configuración adicional para permitir el enrutamiento a puntos de conexión públicos. Para más información sobre cómo conseguir conectividad saliente, consulte 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 máquinas virtuales 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 en 0. Para más información, consulte Sondeos de estado de Load Balancer.
  • Para evitar que saptune cambie el valor net.ipv4.tcp_timestamps establecido manualmente de 0 a nuevamente 1, debe actualizar 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 NFS nativos de Azure para hospedar los directorios compartidos de SAP. Puede implementar un recurso compartido NFS en Azure Files o implementar un volumen NFS en Azure NetApp Files. NFS en 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. Seleccione solo una de las opciones.

Implementación de una cuenta de almacenamiento de Azure Files y recursos compartidos de NFS

NFS de Azure Files se ejecuta con almacenamiento prémium de Azure Files. Antes de configurar NFS en Azure Files, consulte Creación de un recurso compartido de NFS.

Existen dos opciones de redundancia dentro de una región de Azure:

Compruebe si la región de Azure seleccionada ofrece NFSv4.1 en Azure Files con la redundancia adecuada. Consulte la disponibilidad de Azure Files en cada región de Azure para el almacenamiento de archivos prémium. Si el escenario tiene ZRS, asegúrese de que la región de Azure permite utilizar recursos compartidos de archivos prémium con ZRS.

Se recomienda acceder a la cuenta de almacenamiento de Azure mediante un punto de conexión privado de Azure. Asegúrese de implementar el punto de conexión de la cuenta de almacenamiento de Azure Files, y las máquinas virtuales donde se deben montar los recursos compartidos de NFS, en la misma red virtual de Azure o en redes virtuales de Azure emparejadas.

  1. Implemente una cuenta de almacenamiento de Azure Files denominada sapnfsafs. En este ejemplo se usa ZRS. Si no conoce bien este proceso, consulte Creación de una cuenta de almacenamiento en Azure Portal.
  2. En la pestaña Aspectos básicos, use esta configuración:
    1. En Nombre de cuenta de almacenamiento, escriba sapnfsafs.
    2. En Rendimiento, seleccione Premium.
    3. En Tipo de cuenta prémium, seleccione FileStorage.
    4. En Replicación, seleccione Redundancia de zona (ZRS).
  3. Seleccione Next (Siguiente).
  4. En la pestaña Opciones avanzadas, desactive Requerir transferencia segura para API REST. Si no desactiva esta opción, no podrá montar el recurso compartido de NFS en la máquina virtual. Se agotará el tiempo de espera de la operación de montaje.
  5. Seleccione Siguiente.
  6. En la sección Redes, configure estas opciones:
    1. En Conectividad de red, en Método de conectividad, seleccione Punto de conexión privado.
    2. En Punto de conexión privado, seleccione Agregar un punto de conexión privado.
  7. En el panel Crear punto de conexión privado, seleccione la suscripción, el grupo de recursos y la ubicación. A continuación, realice las siguientes selecciones:
    1. En Nombre, escriba sapnfsafs_pe.
    2. En Subrecurso de almacenamiento, seleccione archivo.
    3. En Redes, en Red virtual, seleccione la red virtual y la subred que se van a usar. De nuevo, puede usar la red virtual donde están las máquinas virtuales de SAP o una red virtual emparejada.
    4. En Integración de DNS privado, acepte la opción predeterminada en Integrar con la zona DNS privada. Asegúrese de seleccionar la zona DNS privada.
    5. Seleccione Aceptar.
  8. Seleccione la pestaña Redes y Siguiente.
  9. En la pestaña Protección de datos, deje todos los valores predeterminados.
  10. Seleccione Revisar y crear para validar la configuración.
  11. Espere a que se complete la validación. Corrija los problemas antes de continuar.
  12. En la pestaña Revisar y crear, seleccione Crear.

A continuación, implemente los recursos compartidos de NFS en la cuenta de almacenamiento que ha creado. En este ejemplo, hay dos recursos compartidos de NFS, sapnw1 y saptrans.

  1. Inicie sesión en Azure Portal.
  2. Seleccione o busque las cuentas de almacenamiento.
  3. En la página Cuentas de almacenamiento, seleccione sapnfsafs.
  4. En el menú de recursos de sapnfsafs, seleccione Recursos compartidos de archivos en Almacenamiento de datos.
  5. En la página Recursos compartidos de archivos, seleccione Recurso compartido de archivos y, luego, haga lo siguiente:
    1. En Nombre, escriba sapnw1, saptrans.
    2. Seleccione el tamaño adecuado para el recurso compartido. A la hora de calcular el tamaño, tenga en cuenta los datos almacenados en el recurso compartido, los requisitos de E/S por segundo (IOPS) y los requisitos de rendimiento. Para más información, consulte este artículo sobre los objetivos de los recursos compartidos de archivos de Azure.
    3. Seleccione NFS como protocolo.
    4. Seleccione No root Squash (Sin squash raíz). De lo contrario, al montar los recursos compartidos en las máquinas virtuales, no podrá ver el propietario ni el grupo de archivos.

Los sistemas de archivos SAP que no tienen que montarse mediante NFS también se pueden implementar en Azure Disk Storage. En este ejemplo, puede implementar /usr/sap/NW1/D02 y /usr/sap/NW1/D03 en Azure Disk Storage.

Consideraciones importantes sobre NFS en los recursos compartidos de Azure Files

Cuando planee la implementación con NFS en Azure Files, tenga en cuenta los siguientes puntos importantes:

  • El tamaño mínimo del recurso compartido es 100 gibibytes (GiB). Solo se paga por la capacidad de los recursos compartidos aprovisionados.
  • El tamaño de los recursos compartidos de NFS no solo depende de los requisitos de capacidad, sino también de los requisitos de IOPS y de los requisitos de rendimiento. Para más información, consulte Destinos de los recursos compartidos de archivos de Azure.
  • Pruebe la carga de trabajo para validar el tamaño y asegurarse de que se ajusta a los objetivos de rendimiento. Para más información sobre la resolución de los problemas de rendimiento con NFS en Azure Files, consulte Solución de problemas de rendimiento de recursos compartidos de archivos de Azure.
  • En el caso de los sistemas SAP J2EE, no se admite la colocación de /usr/sap/<SID>/J<nr> en NFS en Azure Files.
  • Si el sistema SAP tiene una gran carga de trabajos por lotes, es posible que tenga millones de registros de trabajos. Si los registros de trabajos por lotes de SAP se almacenan en el sistema de archivos, preste especial atención al tamaño del recurso compartido sapmnt. A partir de SAP_BASIS 7.52, los registros de trabajos por lotes se almacenarán de forma predeterminada en la base de datos. Para más información, consulte Registro de trabajos en la base de datos.
  • Implemente un recurso compartido sapmnt diferente para cada sistema SAP.
  • No use el recurso compartido sapmnt para ninguna otra actividad, como las interfaces.
  • No use el recurso compartido saptrans para ninguna otra actividad, como las interfaces.
  • Evite agrupar los recursos compartidos de demasiados sistemas SAP en una sola cuenta de almacenamiento. También hay objetivos de escalabilidad y rendimiento para las cuentas de almacenamiento. Además, debe tener cuidado para no superar los límites de la cuenta de almacenamiento.
  • En general, no agrupe los recursos compartidos de más de cinco sistemas SAP en una sola cuenta de almacenamiento. Esta guía le ayuda a evitar que sobrepase los límites de la cuenta de almacenamiento y simplifica el análisis del rendimiento.
  • En general, evite mezclar recursos compartidos, como sapmnt, de sistemas SAP que sean de producción y no producción en la misma cuenta de almacenamiento.
  • Es conveniente que realice la implementación en SLES 15 SP2 o una versión posterior para aprovechar las mejoras del cliente de NFS.
  • Utilice un punto de conexión privado. En el improbable caso de que se produzca un error en una zona, las sesiones de NFS se redirigirán automáticamente a una zona en buen estado. No será necesario que vuelva a montar los recursos compartidos de NFS en las máquinas virtuales.
  • Si va a implementar las máquinas virtuales en diferentes zonas de disponibilidad, use una cuenta de almacenamiento con ZRS en las regiones de Azure que admitan esta funcionalidad.
  • En la actualidad, Azure Files no admite la replicación automática entre regiones para escenarios de recuperación ante desastres.

Implementación de recursos de Azure NetApp Files

  1. Compruebe que el servicio Azure NetApp Files está disponible en la región de Azure que prefiera.

  2. Cree la cuenta de Azure NetApp Files en la región de Azure seleccionada. Siga estas instrucciones.

  3. Configure el grupo de capacidad de Azure NetApp Files. Siga estas instrucciones.

    La arquitectura de SAP NetWeaver que se presenta en este artículo usa un único grupo de capacidad de Azure NetApp Files, SKU Premium. Se recomienda usar SKU Premium de Azure NetApp Files para cargas de trabajo de aplicaciones de SAP NetWeaver en Azure.

  4. Delegue una subred en Azure NetApp Files, como se describe en estas instrucciones.

  5. Implemente volúmenes de Azure NetApp Files siguiendo estas instrucciones. Implemente los volúmenes en la subred de Azure NetApp Files designada. Las direcciones IP de los volúmenes de Azure NetApp se asignan automáticamente.

    Tenga en cuenta que los recursos de Azure NetApp Files y las VM de Azure deben estar en la misma red virtual de Azure o en redes virtuales de Azure emparejadas. En este ejemplo se usan dos volúmenes de Azure NetApp Files: sapnw1 y trans. Las rutas de acceso de archivo que se montan en los puntos de montaje correspondientes son:

    • Volumen sapnw1 (nfs://10.27.1.5/sapnw1/sapmntNW1)
    • Volumen sapnw1 (nfs://10.27.1.5/sapnw1/usrsapNW1)
    • Volumen trans (nfs://10.27.1.5/trans)

Los sistemas de archivos SAP que no tienen que ser compartidos, también se pueden implementar en Azure Disk Storage. Por ejemplo, /usr/sap/NW1/D02 y /usr/sap/NW1/D03 se podrían implementar como almacenamiento en disco de Azure.

Consideraciones importantes sobre NFS en los recursos compartidos de Azure NetApp Files

A la hora de considerar Azure NetApp Files para la arquitectura de alta disponibilidad de SAP Netweaver, tenga en cuenta los siguientes aspectos importantes:

  • El grupo de capacidad mínima es 4 tebibytes (TiB). Puede aumentar el tamaño del grupo de capacidad en incrementos de 1 TiB.
  • El volumen mínimo es de 100 GiB.
  • Azure NetApp Files y todas las máquinas virtuales en las que se van a montar los volúmenes de Azure NetApp Files deben estar en la misma red virtual de Azure o en redes virtuales emparejadas de la misma región. Se admite el acceso de Azure NetApp Files mediante emparejamiento de red virtual en la misma región. Aún no se admite el acceso de Azure NetApp Files a través del emparejamiento global.
  • La red virtual seleccionada debe tener una subred delegada en Azure NetApp Files.
  • El rendimiento y las características de rendimiento de un volumen de Azure NetApp Files es una función de la cuota del volumen y del nivel de servicio, como se documenta en Nivel de servicio para Azure NetApp Files. Al ajustar el tamaño de los volúmenes de Azure NetApp Files para SAP, asegúrese de que el rendimiento resultante cumpla los requisitos de la aplicación.
  • Azure NetApp Files ofrece una directiva de exportación. Puede controlar los clientes permitidos y el tipo de acceso (por ejemplo, lectura y escritura o solo lectura).
  • Azure NetApp Files no depende aún de la zona. En la actualidad, la característica Azure NetApp Files no se implementa en todas las zonas de disponibilidad de una región de Azure. Tenga en cuenta las posibles implicaciones de latencia en algunas regiones de Azure.
  • Los volúmenes de Azure NetApp Files se pueden implementar como volúmenes NFSv3 o NFSv4.1. Los dos protocolos son compatibles con el nivel de aplicación de SAP (ASCS/ERS, servidores de aplicaciones de SAP).

Configuración de ASCS

A continuación, preparará e instalará las instancias de SAP ASCS y ERS.

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 SAP (A)SCS.

Prepararse para la instalación

Los siguientes elementos llevan delante:

  • [A]: aplicable a todos los nodos.
  • [1]: aplicable solo al nodo 1.
  • [2]: aplicable solo al nodo 2.
  1. [A]: instale la última versión del conector de SUSE.

    sudo zypper install sap-suse-cluster-connector
    
  2. [A]: instale el agente de recursos sapstartsrv.

    sudo zypper install sapstartsrv-resource-agents
    
  3. [A]: actualice los agentes de recursos de SAP.

    Para usar la configuración que se describe en este artículo, necesita una revisión del paquete resource-agents. Para comprobar si la revisión ya está instalada, use el siguiente comando.

    sudo grep 'parameter name="IS_ERS"' /usr/lib/ocf/resource.d/heartbeat/SAPInstance
    

    La salida debe ser similar al ejemplo siguiente.

    <parameter name="IS_ERS" unique="0" required="0">;
    

    Si el comando grep no encuentra el parámetro IS_ERS, debe instalar la revisión que aparece en la página de descarga de SUSE.

    Importante

    Debe instalar al menos la versión 0.91 de sapstartsrv-resource-agents y resource-agents 4.x de noviembre de 2021.

  4. [A]: configure la resolución nombres de host.

    Puede usar un servidor DNS o modificar /etc/hosts en todos los nodos. En este ejemplo se muestra cómo utilizar el archivo /etc/hosts.

    sudo vi /etc/hosts
    

    Inserte las líneas siguientes en /etc/hosts. Cambie la dirección IP y el nombre de host para que coincidan con su entorno.

     # IP address of cluster node 1
     10.27.0.6    sap-cl1
     # IP address of cluster node 2
     10.27.0.7     sap-cl2
     # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
     10.27.0.9   sapascs
     # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
     10.27.0.10    sapers
    
  5. [A]: configure el archivo SWAP.

    sudo vi /etc/waagent.conf
    
    # Check if the ResourceDisk.Format property is already set to y, and if not, set it.
    ResourceDisk.Format=y
    
    # Set the ResourceDisk.EnableSwap property to y.
    # Create and use the SWAP file on the resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with the ResourceDisk.SwapSizeMB property.
    # The free space of resource disk varies by virtual machine size. Don't set a value that's too big. You can check the SWAP space by using the swapon command.
    ResourceDisk.SwapSizeMB=2000
    

    Reinicie el agente para activar el cambio.

    sudo service waagent restart
    

Prepare los directorios de SAP si usa NFS en Azure Files

  1. [1] Cree los directorios de SAP en el recurso compartido de NFS.

    Monte temporalmente el recurso compartido de NFS sapnw1 en una de las máquinas virtuales y cree los directorios de SAP que se usarán como puntos de montaje anidados.

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    sudo mount -t nfs sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    # Unmount the volume and delete the temporary directory.
    cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  2. [A]: cree los directorios compartidos.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans   
    
  3. [A]: monte los sistemas de archivos.

    Con la configuración de montaje sencillo, el clúster de Pacemaker no controla los sistemas de archivos.

    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1 nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1/ /usr/sap/NW1 nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab   
    # Mount the file systems.
    mount -a 
    

Preparación de los directorios de SAP si se usa NFS en Azure NetApp Files

Las instrucciones de esta sección solo se aplican si se usan volúmenes de Azure NetApp Files con el protocolo NFSv4.1. Realice la configuración en todas las máquinas virtuales donde se vayan a montar los volúmenes NFSv4.1 de Azure NetApp Files.

  1. [A]: deshabilite la asignación del identificador de NFSv4.

    1. Compruebe la configuración del dominio NFS. Asegúrese de que el dominio esté configurado como dominio predeterminado de Azure NetApp Files, defaultv4iddomain.com. Compruebe también que la asignación está establecida en nobody.

      sudo cat /etc/idmapd.conf
      # Examplepython-azure-mgmt-compute
      [General]
      Verbosity = 0
      Pipefs-Directory = /var/lib/nfs/rpc_pipefs
      Domain = defaultv4iddomain.com
      [Mapping]
      Nobody-User = nobody
      Nobody-Group = nobody
      
    2. Comprobar nfs4_disable_idmapping Se debe establecer en Y.

      Para crear la estructura de directorio en la que se encuentra nfs4_disable_idmapping, ejecute el comando mount. No podrá crear manualmente el directorio en /sys/modules, ya que el acceso está reservado para el kernel y los controladores.

      # 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.27.1.5:/sapnw1 /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
      
  2. [1]: monte el volumen de Azure NetApp Files temporalmente en una de las máquinas virtuales y cree los directorios de SAP (rutas de acceso de archivos).

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    # If you're using NFSv3:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 10.27.1.5:/sapnw1 /saptmp
    # If you're using NFSv4.1:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 10.27.1.5:/sapnw1 /saptmp
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    # Unmount the volume and delete the temporary directory.
    sudo cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  3. [A]: cree los directorios compartidos.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans
    
  4. [A]: monte los sistemas de archivos.

    Con la configuración de montaje sencillo, el clúster de Pacemaker no controla los sistemas de archivos.

    # If you're using NFSv3:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/sapnw1/usrsapNW1 /usr/sap/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=3,hard 0 0" >> /etc/fstab
    # If you're using NFSv4.1:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/sapnw1/usrsapNW1 /usr/sap/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    # Mount the file systems.
    mount -a 
    

Instalación de ASCS y ERS de SAP NetWeaver

  1. [1]: cree un recurso de IP virtual y un sondeo de estado para la instancia de ASCS.

    Importante

    Se recomienda usar el agente de recursos azure-lb, que forma parte del paquete resource-agents con una versión mínima de resource-agents-4.3.0184.6ee15eb2-4.13.1.

    sudo crm node standby sap-cl2   
    sudo crm configure primitive vip_NW1_ASCS IPaddr2 \
      params ip=10.27.0.9 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ASCS azure-lb port=62000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ASCS nc_NW1_ASCS vip_NW1_ASCS \
      meta resource-stickiness=3000
    

    Asegúrese de que el estado del clúster sea el correcto y de que se iniciaron todos los recursos. No es importante cuál sea el nodo en que se ejecuten los recursos.

    sudo crm_mon -r
    # Node sap-cl2: standby
    # Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl1
    # Resource Group: g-NW1_ASCS
    #  nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #  vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    
  2. [1]: instale ASCS de SAP NetWeaver como raíz en el primer nodo.

    Use un nombre de host virtual que se asigne a la dirección IP de la configuración de front-end del equilibrador de carga para ASCS (por ejemplo, sapascs, 10.27.0.9) y el número de instancia que usó para el sondeo del equilibrador de carga (por ejemplo, 00).

    Puede usar el parámetro SAPINST_REMOTE_ACCESS_USER de sapinst para permitir que un usuario no raíz se conecte a sapinst. Puede usar el parámetro SAPINST_USE_HOSTNAME para instalar SAP con el nombre de host virtual.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<virtual_hostname>
    

    Si la instalación no deja crear una subcarpeta en /usr/sap/NW1/ASCS00, establezca el propietario y el grupo de la carpeta ASCS00 e inténtelo de nuevo.

    chown nw1adm /usr/sap/NW1/ASCS00
    chgrp sapsys /usr/sap/NW1/ASCS00
    
  3. [1]: cree un recurso de IP virtual y un sondeo de estado para la instancia de ERS.

    sudo crm node online sap-cl2
    sudo crm node standby sap-cl1
    
    sudo crm configure primitive vip_NW1_ERS IPaddr2 \
      params ip=10.27.0.10 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ERS azure-lb port=62101 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ERS nc_NW1_ERS vip_NW1_ERS
    

    Asegúrese de que el estado del clúster sea el correcto y de que se iniciaron todos los recursos. No es importante cuál sea el nodo en que se ejecuten los recursos.

    sudo crm_mon -r
    
    # Node sap-cl1: standby
    # Online: [ sap-cl2 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #  Resource Group: g-NW1_ERS
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ERS  (ocf::heartbeat:IPaddr2):     Started sap-cl2
    
  4. [2]: instale ERS de SAP NetWeaver como raíz en el segundo nodo.

    Use un nombre de host virtual que se asigne a la dirección IP de la configuración de front-end del equilibrador de carga para ERS (por ejemplo, sapers, 10.27.0.10) y el número de instancia que usó para el sondeo del equilibrador de carga (por ejemplo, 01).

    Puede usar el parámetro sapinst para permitir que un usuario no raíz se conecte a SAPINST_REMOTE_ACCESS_USER. Puede usar el parámetro SAPINST_USE_HOSTNAME para instalar SAP con el nombre de host virtual.

    <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Nota

    Use SWPM SP 20 PL 05 o superior. Las versiones anteriores no establecen los permisos correctamente y hacen que se produzca un error en la instalación.

    Si la instalación no deja crear una subcarpeta en /usr/sap/NW1/ERS01, establezca el propietario y el grupo de la carpeta ERS01 e inténtelo de nuevo.

    chown nw1adm /usr/sap/NW1/ERS01
    chgrp sapsys /usr/sap/NW1/ERS01
    
  5. [1]: adapte el perfil de instancia de ASCS.

    sudo vi /sapmnt/NW1/profile/NW1_ASCS00_sapascs
    
    # Change the restart command to a start command.
    # Restart_Program_01 = local $(_EN) pf=$(_PF).
    Start_Program_01 = local $(_EN) pf=$(_PF)
    
    # Add the following lines.
    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # Add the keepalive parameter, if you're using ENSA1.
    enque/encni/set_so_keepalive = true
    

    En el caso del servidor de puesta en cola independiente 1 y 2 (ENSA1 y ENSA2), asegúrese de que los parámetros del sistema operativo keepalive se establecen como se describe en la nota de SAP 1410736.

    Ahora, adapte el perfil de la instancia de ERS.

    sudo vi /sapmnt/NW1/profile/NW1_ERS01_sapers
    
    # Change the restart command to a start command.
    # Restart_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID).
    Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
    
    # Add the following lines.
    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # Remove Autostart from the ERS profile.
    # Autostart = 1
    
  6. [A]: configure keepalive.

    La comunicación entre el servidor de aplicaciones de SAP NetWeaver y ASCS se enruta mediante un equilibrador de carga de software. El equilibrador de carga desconecta las conexiones inactivas después de un tiempo de expiración que se puede configurar.

    Para evitar esta desconexión, si usa ENSA1, debe usar un parámetro en el perfil de ASCS de SAP NetWeaver. Cambie la configuración keepalive del sistema Linux en todos los servidores SAP de ENSA1 y ENSA2. Para más información, lea la nota de SAP 1410736.

    # Change the Linux system configuration.
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  7. [A]: configure los usuarios de SAP después de la instalación.

    # Add sidadm to the haclient group.
    sudo usermod -aG haclient nw1adm
    
  8. [1]: agregue los servicios ASCS y ERS SAP al archivo sapservice.

    Agregue la entrada del servicio ASCS al segundo nodo y copie la entrada del servicio ERS en el primer nodo.

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh sap-cl2 "cat >>/usr/sap/sapservices"
    sudo ssh sap-cl2 "cat /usr/sap/sapservices" | grep ERS01 | sudo tee -a /usr/sap/sapservices
    
  9. [A]: habilite sapping y sappong. El agente sapping se ejecuta antes que sapinit para ocultar el archivo /usr/sap/sapservices. El agente sappong se ejecuta después de sapinit para mostrar el archivo sapservices durante el arranque de la máquina virtual. SAPStartSrv no se inicia automáticamente para una instancia de SAP en tiempo de arranque, ya que el clúster de Pacemaker lo administra.

    sudo systemctl enable sapping
    sudo systemctl enable sappong
    
  10. [1]: cree los recursos del clúster de SAP.

    En función de si ejecuta un sistema ENSA1 o ENSA2, seleccione la pestaña correspondiente para definir los recursos. SAP introdujo compatibilidad con ENSA2, incluida la replicación, en SAP NetWeaver 7.52. A partir de la plataforma ABAP 1809, ENSA2 se instala de forma predeterminada. Para información sobre la compatibilidad con ENSA2, consulte la nota de SAP 2630416.

    sudo crm configure property maintenance-mode="true"
    
    sudo crm configure primitive rsc_sapstartsrv_NW1_ASCS00 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ASCS00_sapascs
    
    sudo crm configure primitive rsc_sapstartsrv_NW1_ERS01 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ERS01_sapers
    
    # If you're using NFS on Azure Files or NFSv3 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If you're using NFS on Azure Files or NFSv3 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \
     meta priority=1000
    
    # If you're using NFSv4.1 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
     op monitor interval=11 timeout=105 on-fail=restart \
     params InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If you're using NFSv4.1 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
     op monitor interval=11 timeout=105 on-fail=restart \
     params InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \
     meta priority=1000
    
    sudo crm configure modgroup g-NW1_ASCS add rsc_sapstartsrv_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ERS add rsc_sapstartsrv_NW1_ERS01
    sudo crm configure modgroup g-NW1_ERS add rsc_sap_NW1_ERS01
    
    sudo crm configure colocation col_sap_NW1_no_both -5000: g-NW1_ERS g-NW1_ASCS
    sudo crm configure location loc_sap_NW1_failover_to_ers rsc_sap_NW1_ASCS00 rule 2000: runs_ers_NW1 eq 1
    sudo crm configure order ord_sap_NW1_first_start_ascs Optional: rsc_sap_NW1_ASCS00:start rsc_sap_NW1_ERS01:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online sap-cl1
    sudo crm configure property maintenance-mode="false"
    

Si está actualizando desde una versión anterior y va a cambiar a ENSA2, consulte la nota de SAP 2641019.

Asegúrese de que el estado del clúster sea el correcto y de que se iniciaron todos los recursos. No es importante cuál sea el nodo en que se ejecuten los recursos.

sudo crm_mon -r
# Full list of resources:
# 
# stonith-sbd     (stonith:external/sbd): Started sap-cl2
#  Resource Group: g-NW1_ASCS
#      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
#      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
#      rsc_sapstartsrv_NW1_ASCS00 (ocf::suse:SAPStartSrv):        Started sap-cl1
#      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
#  Resource Group: g-NW1_ERS
#      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
#      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started sap-cl2
#      rsc_sapstartsrv_NW1_ERS01  (ocf::suse:SAPStartSrv):        Started sap-cl2
#      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1

Preparación del servidor de aplicaciones de SAP

Algunas bases de datos requieren que la instalación de la instancia de base de datos se ejecute en un servidor de aplicaciones. Prepare las máquinas virtuales del servidor de aplicaciones para poder ejecutar la instalación de la base de datos.

En los pasos siguientes comunes se supone que instala el servidor de aplicaciones en un servidor distinto de los servidores ASCS y HANA:

  1. Configure la resolución de nombres de host.

    Puede usar un servidor DNS o modificar /etc/hosts en todos los nodos. En este ejemplo se muestra cómo utilizar el archivo /etc/hosts.

    sudo vi /etc/hosts
    

    Inserte las líneas siguientes en /etc/hosts. Cambie la dirección IP y el nombre de host para que coincidan con su entorno.

    10.27.0.6   sap-cl1
    10.27.0.7   sap-cl2
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
    10.27.0.9   sapascs
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
    10.27.0.10  sapers
    10.27.0.8   sapa01
    10.27.0.12  sapa02
    
  2. Configure el archivo SWAP.

    sudo vi /etc/waagent.conf
    
    # Set the ResourceDisk.EnableSwap property to y.
    # Create and use the SWAP file on the resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file by using the ResourceDisk.SwapSizeMB property.
    # The free space of the resource disk varies by virtual machine size. Don't set a value that's too big. You can check the SWAP space by using the swapon command.
    ResourceDisk.SwapSizeMB=2000
    

    Reinicie el agente para activar el cambio.

    sudo service waagent restart
    

Preparación de directorios de SAP

Si usa NFS en Azure Files, siga estas instrucciones para preparar los directorios de SAP en las máquinas virtuales del servidor de aplicaciones de SAP:

  1. Cree los puntos de montaje.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  2. Monte los sistemas de archivos.

    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab   
    # Mount the file systems.
    mount -a 
    

Si usa NFS en Azure NetApp Files, siga estas instrucciones para preparar los directorios de SAP en las máquinas virtuales del servidor de aplicaciones de SAP:

  1. Cree los puntos de montaje.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
    
  2. Monte los sistemas de archivos.

    # If you're using NFSv3:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=3, hard 0 0" >> /etc/fstab
    # If you're using NFSv4.1:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab    
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    # Mount the file systems.
    mount -a 
    

Instale la base de datos.

En este ejemplo, SAP NetWeaver se instala en SAP HANA. En esta instalación puede usar todas las bases de datos admitidas. Para más información sobre cómo instalar SAP HANA en Azure, consulte Alta disponibilidad de SAP HANA en Azure Virtual Machines. Para ver una lista de las bases de datos admitidas, consulte la nota de SAP 1928533.

Instale la instancia de base de datos de SAP NetWeaver como raíz con un nombre de host virtual que se asigne a la dirección IP de la configuración de front-end del equilibrador de carga para la base de datos. Puede usar el parámetro sapinst para permitir que un usuario no raíz se conecte a SAPINST_REMOTE_ACCESS_USER.

sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin

Instalación del servidor de aplicaciones de SAP NetWeaver

Siga estos pasos para instalar un servidor de aplicaciones de SAP.

  1. [A]: prepare el servidor de aplicaciones.

    Siga los pasos descritos en Preparación del servidor de aplicaciones de SAP NetWeaver.

  2. [A]: instale un servidor de aplicaciones de SAP NetWeaver principal o adicional.

    Puede usar el parámetro sapinst para permitir que un usuario no raíz se conecte a SAPINST_REMOTE_ACCESS_USER.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A]: actualice el almacenamiento seguro de SAP HANA para que apunte al nombre virtual de la configuración de la replicación del sistema SAP HANA.

    Ejecute el siguiente comando para mostrar las entradas.

    hdbuserstore List
    

    El comando debería mostrar todas las entradas, que deberían ser parecidas a la de este ejemplo.

    DATA FILE       : /home/nw1adm/.hdb/sapa01/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/sapa01/SSFS_HDB.KEY
    
    KEY DEFAULT 
      ENV : 10.27.0.4:30313
      USER: SAPABAP1
      DATABASE: NW1
    

    En este ejemplo, la dirección IP de la entrada predeterminada apunta a la máquina virtual, y no al equilibrador de carga. Cambie la entrada para que apunte al nombre de host virtual del equilibrador de carga. Asegúrese de usar el mismo puerto y el mismo nombre de base de datos. Por ejemplo, 30313 y NW1 en la salida de ejemplo.

    su - nw1adm
    hdbuserstore SET DEFAULT nw1db:30313@NW1 SAPABAP1 <password of ABAP schema>
    

Prueba de la configuración del clúster

Pruebe exhaustivamente el clúster de Pacemaker. Ejecute las pruebas de conmutación por error habituales.

Pasos siguientes