Implementar instancias de diálogo de SAP con máquinas virtuales de alta disponibilidad de ASCS/SCS de SAP en RHEL

En este artículo se describe cómo instalar y configurar el servidor de aplicaciones principal (PAS) y las instancias de diálogo de servidor de aplicaciones adicional (AAS) en el mismo clúster de alta disponibilidad de los servicios centrales de ABAP SAP (ASCS)/los servicios centrales de SAP (SCS) que se ejecuta en Red Hat Enterprise Linux (RHEL).

Referencias

Información general

En este artículo se describe el escenario de optimización de costos en el que se implementan instancias de diálogo de PAS y AAS con instancias de SAP ASCS/SCS y servidor de replicación en cola (ERS) en una configuración de alta disponibilidad. Para minimizar el número de máquinas virtuales de un único sistema SAP, quiere instalar PAS y AAS en el mismo host donde se ejecutan ASCS/SCS y SAP ERS. Con ASCS/SCS de SAP configurados en una configuración del clúster de alta disponibilidad, también quiere que PAS y AAS se administren mediante clústeres. La configuración es básicamente una adición a la configuración del clúster de ASCS/SCS de SAP ya configurada. En esta configuración, PAS y AAS se instalan en un nombre de host virtual y el clúster administra su directorio de instancia.

Para esta configuración, PAS y AAS requieren un directorio de instancia de alta disponibilidad (/usr/sap/<SID>/D<nr>). Puede colocar el sistema de archivos de directorio de instancias en el mismo almacenamiento de alta disponibilidad que ha usado para la configuración de la instancia de ASCS y ERS. La arquitectura presentada muestra NFS en Azure Files o Azure NetApp Files para un directorio de instancia de alta disponibilidad para la configuración.

En el ejemplo que se muestra en este artículo para describir la implementación se usa la siguiente información del sistema:

Nombre de instancia Número de instancia Nombre de host virtual IP virtual (puerto de sondeo)
ABAP SAP Central Services (ASCS) 00 sapascs 10.90.90.10 (62000)
Servidor de replicación en cola (ERS) 01 sapers 10.90.90.9 (62001)
Servidor de aplicaciones principal (PAS) 02 sappas 10.90.90.30 (62002)
Servidor de aplicaciones adicional (AAS) 03 sapers 10.90.90.31 (62003)
Identificador del sistema SAP NW1 --- ---

Nota:

Instale más instancias de aplicación de SAP en máquinas virtuales independientes si quiere escalar horizontalmente.

Diagram that shows the architecture of dialog instance installation with an SAP ASCS/SCS cluster.

Consideraciones importantes para la solución de optimización de costos

  • Solo se pueden implementar dos instancias de diálogo, PAS y una AAS, con una configuración del clúster de ASCS/SCS de SAP.
  • Si quiere escalar horizontalmente el sistema SAP con más servidores de aplicaciones (como sapa03 y sapa04), puede instalarlos en máquinas virtuales independientes. Con PAS y AAS instalados en nombres de host virtuales, puede instalar más servidores de aplicaciones mediante un nombre de host físico o virtual en máquinas virtuales independientes. Para obtener más información sobre cómo asignar un nombre de host virtual a una máquina virtual, consulte el blog Uso de nombres de host virtuales de SAP con Linux en Azure.
  • Con una implementación de PAS y AAS con una configuración del clúster de ASCS/SCS de SAP, el número de instancia de ASCS, ERS, PAS y AAS debe ser diferente.
  • Considere la posibilidad de cambiar el tamaño de las SKU de máquina virtual según las directrices de ajuste de tamaño. Debe tener en cuenta el comportamiento del clúster en el que se pueden ejecutar varias instancias de SAP (ASCS, ERS, PAS y AAS) en una sola máquina virtual cuando otra máquina virtual del clúster no está disponible.
  • Las instancias de diálogo (PAS y AAS) que se ejecutan con una configuración del clúster de ASCS/SCS de SAP deben instalarse mediante un nombre de host virtual.
  • También debe usar la misma solución de almacenamiento de la configuración del clúster de ASCS/SCS de SAP para implementar instancias de PAS y AAS. Por ejemplo, si ha configurado un clúster de ASCS/SCS de SAP mediante NFS en Azure Files, se debe usar la misma solución de almacenamiento para implementar PAS y AAS.
  • Se debe montar el directorio de instancia /usr/sap/<SID>/D<nr> de PAS y AAS en un sistema de archivos NFS y el clúster lo administrará como un recurso.

    Nota:

    En el caso de los sistemas SAP J2EE, /usr/sap/<SID>/J<nr> no se puede colocar en la característica NFS de Azure Files.

  • Para instalar más servidores de aplicaciones en máquinas virtuales independientes, puede usar recursos compartidos NFS o un disco administrado local para un sistema de archivos de directorio de instancia. Si va a instalar más servidores de aplicaciones para un sistema SAP J2EE, no se admite /usr/sap/<SID>/J<nr> en NFS en Azure Files.
  • En una configuración tradicional de alta disponibilidad de ASCS/SCS de SAP, las instancias del servidor de aplicaciones que se ejecutan en máquinas virtuales independientes no se ven afectadas cuando hay algún efecto en los nodos de clúster de ASCS y ERS de SAP. Pero con la configuración de optimización de costos, la instancia de PAS o AAS se reinicia cuando hay un efecto en uno de los nodos del clúster.
  • Consulte Consideraciones sobre NFS en Azure Files y Consideraciones de Azure NetApp Files porque se aplican las mismas consideraciones a esta configuración.

Requisitos previos

La configuración descrita en este artículo es una adición a la configuración de clúster de ASCS/SCS de SAP ya configurada. En esta configuración, PAS y AAS se instalan en un nombre de host virtual y el clúster administra su directorio de instancia. En función del almacenamiento, use los pasos descritos en los artículos siguientes para configurar el recurso de SAPInstance para la instancia de ASCS de SAP y ERS de SAP en el clúster.

Después de instalar la instancia de ASCS, ERS y Database mediante Software Provisioning Manager (SWPM), siga los pasos siguientes para instalar las instancias de PAS y AAS.

Configuración de Azure Load Balancer para PAS y AAS

En este artículo se da por supuesto que ya configuró el equilibrador de carga para la configuración del clúster de ASCS/SCS de SAP, tal como se describe en Configuración de Azure Load Balancer. En la misma instancia de Azure Load Balancer, siga estos pasos para crear más direcciones IP de front-end y reglas de equilibrio de carga para PAS y AAS.

  1. Abra el equilibrador de carga interno que se ha creado para la configuración del clúster de ASCS/SCS de SAP.
  2. Configuración de IP de front-end: cree dos direcciones IP de front-end, una para PAS y otra para AAS (por ejemplo, 10.90.90.30 y 10.90.90.31).
  3. Grupo de back-end: este grupo sigue siendo el mismo porque estamos implementando PAS y AAS en el mismo grupo de back-end.
  4. Reglas de entrada: cree dos reglas de equilibrio de carga, una para PAS y otra para AAS. Siga los mismos pasos para ambas reglas de equilibrio de carga.
  5. Dirección IP de front-end: seleccione la dirección IP de front-end.
    1. Grupo de back-end: seleccione el grupo de back-end.
    2. Puertos de alta disponibilidad: seleccione esta opción.
    3. Protocolo: seleccione TCP.
    4. Sondeo de estado: crear un sondeo de estado con los siguientes detalles (se aplica tanto a PAS como a AAS):
      1. Protocolo: seleccione TCP.
      2. Puerto: por ejemplo, 620<Instance-no.> para PAS y 620<Instance-no.> para AAS.
      3. Intervalo: escriba 5.
      4. Umbral de sondeo: escriba 2.
    5. Tiempo de espera de inactividad (minutos): escriba 30.
    6. Habilitar IP flotante: seleccione esta opción.

La propiedad de configuración del sondeo de estado numberOfProbes, lo que se conoce como umbral incorrecto en Azure Portal, no se respeta. 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. Use la CLI de Azure o el comando de PowerShell.

Importante

La dirección IP flotante no se admite en una configuración de IP secundaria de NIC en escenarios de equilibrio de carga. Para obtener más información, consulte Limitaciones de Azure Load Balancer. Si necesita más direcciones IP para las máquinas virtuales, implemente una segunda NIC.

Cuando las máquinas virtuales sin direcciones IP públicas se colocan en el grupo de back-end de una instancia de Azure Load Balancer estándar (sin dirección IP pública), no hay conectividad saliente a Internet a menos que se realicen más configuraciones para permitir el enrutamiento a puntos de conexión públicos. Para conocer los pasos sobre cómo lograr la conectividad de salida, consulte Conectividad de 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 en 0. Para más información, consulte Sondeos de estado de Load Balancer.

Preparación de servidores para la instalación de PAS y AAS

Si los pasos de este documento se marcan con los siguientes prefijos, el significado es el siguiente:

  • [A]: aplicable a todos los nodos.
  • [1]: solo aplicable al nodo 1.
  • [2]: solo aplicable al nodo 2.
  1. [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. Reemplace la dirección IP y el nombre de host en los siguientes comandos:

    sudo vi /etc/hosts
    
    # IP address of cluster node 1
    10.90.90.7    sap-cl1
    # IP address of cluster node 2
    10.90.90.8     sap-cl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.90.90.10   sapascs
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.90.90.9    sapers
    # IP address of the load balancer frontend configuration for SAP Netweaver PAS
    10.90.90.30   sappas
    # IP address of the load balancer frontend configuration for SAP Netweaver AAS
    10.90.90.31   sapaas
    
  2. [1] Cree los directorios de SAP en el recurso compartido de NFS. Monte el recurso compartido de NFS sapnw1 temporalmente en una de las máquinas virtuales, y cree los directorios de SAP que se usarán como puntos de montaje anidados.

    1. Si usa NFS en Azure Files:

      # mount temporarily the volume
      sudo mkdir -p /saptmp
      sudo mount -t nfs sapnfs.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 usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # unmount the volume and delete the temporary directory
      cd ..
      sudo umount /saptmp
      sudo rmdir /saptmp
      
    2. Si usa Azure NetApp Files:

      # mount temporarily the volume
      sudo mkdir -p /saptmp
      
      # If using NFSv3
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=3,tcp 10.90.91.5:/sapnw1 /saptmp
      # If using NFSv4.1
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=4.1,sec=sys,tcp 10.90.91.5:/sapnw1 /saptmp
      
      # create the SAP directories
      sudo cd /saptmp
      sudo mkdir -p usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # 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 /usr/sap/NW1/D02
    sudo mkdir -p /usr/sap/NW1/D03
    
    sudo chattr +i /usr/sap/NW1/D02
    sudo chattr +i /usr/sap/NW1/D03
    
  4. [A] Configure el espacio de intercambio. Al instalar una instancia de diálogo con servicios centrales, debe configurar más espacio de intercambio.

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

    Reinicie el agente para activar el cambio.

    sudo service waagent restart
    
  5. [A] Agregue reglas de firewall para PAS y AAS.

    # Probe and gateway port for PAS and AAS
    sudo firewall-cmd --zone=public --add-port={62002,62003,3302,3303}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62002,62003,3303,3303}/tcp
    

Instalación de una instancia de PAS de SAP Netweaver

  1. [1] Compruebe el estado del clúster. Antes de configurar un recurso PAS para la instalación, asegúrese de que los recursos de ASCS y ERS estén configurados e iniciados.

    sudo pcs status
    
    # Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    
  2. [1] Cree recursos de sistema de archivos, IP virtual y sondeo de estado para la instancia de PAS.

    sudo pcs node standby sap-cl2
    sudo pcs resource create vip_NW1_PAS IPaddr2 ip=10.90.90.30 --group g-NW1_PAS
    sudo pcs resource create nc_NW1_PAS azure-lb port=62002 --group g-NW1_PAS
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_PAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40 \
      --group g-NW1_PAS
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \ 
      op monitor interval=200 timeout=40 \
      --group g-NW1_PAS
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_PAS
    

    Asegúrese de que el estado del clúster sea el correcto y que se iniciaron todos los recursos. No es importante en qué nodo se ejecutan los recursos.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    
  3. [1] Cambie la propiedad de la carpeta /usr/sap/SID/D02 después de montar el sistema de archivos.

    sudo chown nw1adm:sapsys /usr/sap/NW1/D02
    
  4. [1] Instale PAS en SAP Netweaver.

    Instale PAS de SAP NetWeaver como raíz en el primer nodo mediante un nombre de host virtual que se asigna a la dirección IP de la configuración de front-end del equilibrador de carga para el PAS. Por ejemplo, use sappas, 10.90.90.30 y el número de instancia que usó para el sondeo del equilibrador de carga, por ejemplo 02.

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

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again.
    sudo firewall-cmd --zone=public  --add-port=4237/tcp
    
    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<pas_virtual_hostname>
    
  5. Actualice el archivo /usr/sap/sapservices.

    Para evitar que el script de arranque sapinit inicie las instancias, todas las instancias que sean administradas por Pacemaker se deben marcar como comentario en el archivo /usr/sap/sapservices.

    sudo vi /usr/sap/sapservices
    
    # On the node where PAS is installed, comment out the following lines. 
    # LD_LIBRARY_PATH=/usr/sap/NW1/D02/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D02/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D02_sappas -D -u nw1adm
    
  6. [1] Cree el recurso de clúster de PAS.

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=60 \
     --group g-NW1_PAS
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=105 \
     --group g-NW1_PAS
    

    Compruebe el estado del clúster.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  7. Configure una restricción para iniciar el grupo de recursos PAS solo después de iniciar la instancia de ASCS.

    sudo pcs constraint order g-NW1_ASCS then g-NW1_PAS kind=Optional symmetrical=false
    

Instalación de una instancia de AAS de SAP Netweaver

  1. [2] Compruebe el estado del clúster. Antes de configurar un recurso de AAS para la instalación, asegúrese de que se inician los recursos de ASCS, ERS y PAS.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  2. [2] Cree recursos de sistema de archivos, IP virtual y sondeo de estado para la instancia de AAS.

    sudo pcs node unstandby sap-cl2
    # Disable PAS resource as it will fail on sap-cl2 due to missing environment variables like hdbuserstore. 
    sudo pcs resource disable g-NW1_PAS
    sudo pcs node standby sap-cl1
    # Execute below command to cleanup resource, if required
    pcs resource cleanup rsc_sap_NW1_ERS01
    
    sudo pcs resource create vip_NW1_AAS IPaddr2 ip=10.90.90.31 --group g-NW1_AAS
    sudo pcs resource create nc_NW1_AAS azure-lb port=62003 --group g-NW1_AAS
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_AAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40 \
      --group g-NW1_AAS
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \ 
      op monitor interval=200 timeout=40 \
      --group g-NW1_AAS
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_AAS
    

    Asegúrese de que el estado del clúster sea el correcto y que se iniciaron todos los recursos. No es importante en qué nodo se ejecutan los recursos. Dado que se detiene el grupo de recursos g-NW1_PAS, todos los recursos PAS se detienen en el estado (deshabilitado).

    sudo pcs status
    
    # Node List:
    #   Node sap-cl1: standby
    #   Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    
  3. [2] Cambie la propiedad de la carpeta /usr/sap/SID/D03 después de montar el sistema de archivos.

    sudo chown nw1adm:sapsys /usr/sap/NW1/D03
    
  4. [2] Instale un AAS de SAP Netweaver.

    Instale un AAS de SAP NetWeaver como raíz en el segundo nodo mediante un nombre de host virtual que se asigna a la dirección IP de la configuración de front-end del equilibrador de carga para el PAS. Por ejemplo, use sapaas, 10.90.90.31 y el número de instancia que usó para el sondeo del equilibrador de carga, por ejemplo, 03.

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

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again.
    sudo firewall-cmd --zone=public  --add-port=4237/tcp
    
    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<aas_virtual_hostname>
    
  5. Actualice el archivo /usr/sap/sapservices.

    Para evitar que el script de arranque sapinit inicie las instancias, todas las instancias que sean administradas por Pacemaker se deben marcar como comentario en el archivo /usr/sap/sapservices.

    sudo vi /usr/sap/sapservices
    
    # On the node where AAS is installed, comment out the following lines. 
    #LD_LIBRARY_PATH=/usr/sap/NW1/D03/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D03/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D03_sapaas -D -u nw1adm
    
  6. [2] Cree un recurso de clúster de AAS.

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=60 \
     --group g-NW1_AAS
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=105 \
     --group g-NW1_AAS
    

    Compruebe el estado del clúster.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl1: standby
    #   Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    
  7. Configure una restricción para iniciar el grupo de recursos de AAS solo después de iniciar la instancia de ASCS.

    sudo pcs constraint order g-NW1_ASCS then g-NW1_AAS kind=Optional symmetrical=false
    

Configuración posterior a las instancias de PAS y AAS

  1. [1] Para que PAS y AAS se ejecuten en cualquier nodo de clúster (sap-cl1 o sap-cl2), el contenido en $HOME/.hdb de <sid>adm de ambos nodos de clúster se debe copiar.

    # Check current content of /home/nw1adm/.hdb on sap-cl1
    sap-cl1:nw1adm > ls -ltr $HOME/.hdb
    drwx------. 2 nw1adm sapsys 66 Aug  8 19:11 sappas
    drwx------. 2 nw1adm sapsys 84 Aug  8 19:12 sap-cl1
    # Check current content of /home/nw1adm/.hdb on sap-cl2
    sap-cl2:nw1adm > ls -ltr $HOME/.hdb
    total 0
    drwx------. 2 nw1adm sapsys 64 Aug  8 20:25 sap-cl2
    drwx------. 2 nw1adm sapsys 66 Aug  8 20:26 sapaas
    
    # As PAS and AAS is installed using virtual hostname, you need to copy virtual hostname directory in /home/nw1adm/.hdb
    # Copy sappas directory from sap-cl1 to sap-cl2
    sap-cl1:nw1adm > scp -r sappas nw1adm@sap-cl2:/home/nw1adm/.hdb
    # Copy sapaas directory from sap-cl2 to sap-cl1. Execute the command from the same sap-cl1 host. 
    sap-cl1:nw1adm > scp -r nw1adm@sap-cl2:/home/nw1adm/.hdb/sapaas . 
    
  2. [1] Para asegurarse de que las instancias de PAS y AAS no se ejecutan en los mismos nodos cada vez que se ejecutan ambos nodos, agregue una restricción de coubicación negativa con el siguiente comando:

    sudo pcs constraint colocation add g-NW1_AAS with g-NW1_PAS score=-1000
    sudo pcs node unstandby sap-cl1
    sudo pcs resource enable g-NW1_PAS
    

    La puntuación de -1000 es para garantizar que, si solo hay un nodo disponible, ambas instancias seguirán ejecutándose en el otro nodo. Si desea mantener la instancia de AAS inactiva en esta situación, puede usar score=-INFINITY para aplicar esta condición.

  3. Compruebe el estado del clúster.

    sudo pcs status
    
    # Node List:
    #   Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    

Prueba de la configuración del clúster

Pruebe exhaustivamente el clúster de Pacemaker mediante la ejecución de las pruebas de conmutación por error típicas.