Distribuire istanze di dialoghi SAP con MACCHINE virtuali a disponibilità elevata di SAP ASCS/SCS in Red Hat Enterprise Linux

Questo articolo descrive come installare e configurare un'istanza del server applicazioni primaria (PAS) e dell'istanza della finestra di dialogo AAS (Additional Application Server) nello stesso cluster a disponibilità elevata SAP ASCS/SCS in esecuzione in Red Hat Enterprise Linux (RHEL).

Riferimenti

Panoramica

Questo articolo descrive lo scenario di ottimizzazione dei costi in cui si distribuiscono istanze del server applicazioni primarie (PAS) e delle istanze del server applicazioni aggiuntive (AAS) con le istanze di SAP ASCS/SCS e SAP ERS nella configurazione a disponibilità elevata. Per ridurre al minimo il numero di macchine virtuali per un singolo sistema SAP, è necessario installare PAS e AAS nello stesso host in cui sono in esecuzione SAP ASCS/SCS e SAP ERS. Con la configurazione di SAP ASCS/SCS nella configurazione del cluster a disponibilità elevata, si vuole che ANCHE PAS e AAS vengano gestiti dal cluster. La configurazione è fondamentalmente un'aggiunta alla configurazione del cluster SAP ASCS/SCS già configurata. In questa configurazione PAS e AAS verranno installati in un nome host virtuale e la relativa directory di istanza viene gestita dal cluster.

Per questa configurazione, PAS e AAS richiedono una directory dell'istanza a disponibilità elevata (/usr/sap/<SID>/D<nr>). È possibile posizionare il file system della directory dell'istanza nella stessa risorsa di archiviazione a disponibilità elevata usata per la configurazione dell'istanza di ASCS e ERS. L'architettura presentata presenta NFS in File di Azure o Azure NetApp Files per la directory dell'istanza a disponibilità elevata per l'installazione.

L'esempio illustrato in questo articolo per descrivere la distribuzione usa le informazioni di sistema seguenti:

Nome istanza Numero di istanza Nome host virtuale IP virtuale (porta probe)
ABAP SAP Central Services (ASCS) 00 sapascs 10.90.90.10 (62000)
Server di replica di accodamento (ERS) 01 sapers 10.90.90.9 (62001)
Server applicazioni primario (PAS) 02 sappas 10.90.90.30 (62002)
Server applicazioni aggiuntivo (AAS) 03 sapers 10.90.90.31 (62003)
Identificatore di sistema SAP NW1 --- ---

Nota

Installare istanze di applicazioni SAP aggiuntive in macchine virtuali separate, se si vuole aumentare il numero di istanze.

Architecture of dialog instance installation with SAP ASCS/SCS cluster

Considerazioni importanti per la soluzione di ottimizzazione dei costi

  • Con la configurazione del cluster SAP ASCS/SCS è possibile distribuire solo due istanze di dialogo, PAS e una AAS.
  • Se si vuole aumentare il numero di istanze del sistema SAP con server applicazioni aggiuntivi (ad esempio sapa03 e sapa04), è possibile installarli in macchine virtuali separate. Con PAS e AAS installati in nomi host virtuali, è possibile installare un server applicazioni aggiuntivo usando il nome host fisico o virtuale in macchine virtuali separate. Per altre informazioni su come assegnare il nome host virtuale a una macchina virtuale, vedere il blog Usare i nomi host virtuali SAP con Linux in Azure.
  • Con la distribuzione di PAS e AAS con la configurazione del cluster SAP ASCS/SCS, il numero di istanza di ASCS, ERS, PAS e AAS deve essere diverso.
  • Valutare la possibilità di dimensionare gli SKU delle macchine virtuali in modo appropriato in base alle linee guida per il dimensionamento. È necessario tenere conto del comportamento del cluster in cui più istanze SAP (ASCS, ERS, PAS e AAS) possono essere eseguite in una singola macchina virtuale quando altre macchine virtuali nel cluster non sono disponibili.
  • Le istanze del dialogo (PAS e AAS) in esecuzione con la configurazione del cluster SAP ASCS/SCS devono essere installate usando il nome host virtuale.
  • È necessario usare la stessa soluzione di archiviazione della configurazione del cluster SAP ASCS/SCS per distribuire anche le istanze di PAS e AAS. Ad esempio, se è stato configurato un cluster SAP ASCS/SCS usando NFS nei file di Azure, è necessario usare la stessa soluzione di archiviazione per distribuire PAS e AAS.
  • La directory /usr/sap/<SID>/D<nr> dell'istanza di PAS e AAS deve essere montata nel file system NFS e verrà gestita come risorsa dal cluster.

    Nota

    Per i sistemi SAP J2 edizione Enterprise non è supportato per l'uso /usr/sap/<SID>/J<nr> in NFS in File di Azure.

  • Per installare server applicazioni aggiuntivi in macchine virtuali separate, è possibile usare condivisioni NFS o disco gestito locale per il file system di directory dell'istanza. Se si installano server applicazioni aggiuntivi per il sistema SAP J2 edizione Enterprise, /usr/sap/<SID>/J<nr> in NFS in File di Azure non è supportato.
  • Nella configurazione tradizionale della disponibilità elevata di SAP ASCS/SCS, le istanze del server applicazioni in esecuzione in macchine virtuali separate non sono interessate quando si verifica un effetto sui nodi del cluster SAP ASCS e ERS. Tuttavia, con la configurazione dell'ottimizzazione dei costi, l'istanza di PAS o AAS verrà riavviata quando si verifica un effetto su uno dei nodi del cluster.
  • Fare riferimento a NFS in File di Azure considerazioni e considerazioni su Azure NetApp Files, come si applicano anche le stesse considerazioni per questa configurazione.

Prerequisiti

La configurazione descritta in questo articolo è un'aggiunta alla configurazione del cluster SAP ASCS/SCS già configurata. In questa configurazione, PAS e AAS verranno installati in un nome host virtuale e la relativa directory di istanza viene gestita dal cluster. In base all'archiviazione, seguire la procedura descritta nella guida seguente per configurare SAPInstance la risorsa per l'istanza DI SAP ASCS e SAP ERS nel cluster.

Dopo aver installato ASCS, ERS e Istanza di database con SWPM, seguire questa procedura per installare le istanze di PAS e AAS.

Configurare Azure Load Balancer per PAS e AAS

Questo documento presuppone che il servizio di bilanciamento del carico per la configurazione del cluster SAP ASCS/SCS sia già stato configurato come descritto in Configurare il servizio di bilanciamento del carico di Azure. Nello stesso servizio di bilanciamento del carico di Azure seguire questa procedura per creare indirizzi IP front-end aggiuntivi e regole di bilanciamento del carico per PAS e AAS.

  1. Aprire il servizio di bilanciamento del carico interno creato per la configurazione del cluster SAP ASCS/SCS.
  2. Configurazione IP front-end: creare due indirizzi IP front-end, uno per PAS e un altro per AAS (ad esempio: 10.90.90.30 e 10.90.90.31).
  3. Pool back-end: il pool back-end rimane invariato, in quanto viene distribuito PAS e AAS nello stesso pool back-end.
  4. Regole in ingresso: creare due regole di bilanciamento del carico, una per PAS e un'altra per AAS. Seguire la stessa procedura per entrambe le regole di bilanciamento del carico.
  5. Indirizzo IP front-end: selezionare ip front-end
    1. Pool back-end: selezionare il pool back-end
    2. Controllare "Porte a disponibilità elevata"
    3. Protocollo: TCP
    4. Probe di integrità: creare un probe di integrità con i dettagli seguenti (si applica sia per PAS che per AAS)
      1. Protocollo: TCP
      2. Porta: [ad esempio: 620<Instance-no.> per PAS, 620<Instance-no.> per AAS]
      3. Intervallo: 5
      4. Soglia probe: 2
    5. Timeout di inattività (minuti): 30
    6. Selezionare "Enable Floating IP" (Abilita IP mobile)

Nota

Il numero della proprietà di configurazione del probe di integritàOfProbes, altrimenti noto come "Soglia non integra" nel portale, non viene rispettato. Per controllare il numero di probe consecutivi riusciti o non riusciti, impostare la proprietà "probeThreshold" su 2. Attualmente non è possibile impostare questa proprietà usando portale di Azure, quindi usare l'interfaccia della riga di comando di Azure o il comando di PowerShell.

Importante

L'indirizzo IP mobile non è supportato in una configurazione IP secondaria della scheda di interfaccia di rete negli scenari di bilanciamento del carico. Per informazioni dettagliate, vedere Limitazioni del servizio di bilanciamento del carico di Azure. Se è necessario un indirizzo IP aggiuntivo per la macchina virtuale, distribuire una seconda scheda di interfaccia di rete.

Nota

Quando le macchine virtuali senza indirizzi IP pubblici vengono inserite nel pool back-end del Load Balancer interno standard di Azure (nessun indirizzo IP pubblico), non vi sarà connettività Internet in uscita, a meno che non venga eseguita una configurazione aggiuntiva per consentire il routing a endpoint pubblici. Per informazioni dettagliate su come ottenere la connettività in uscita, vedere Connettività degli endpoint pubblici per le macchine virtuali usando Load Balancer Standard di Azure negli scenari a disponibilità elevata SAP.

Importante

Non abilitare i timestamp TCP nelle macchine virtuali di Azure che si trovano dietro Azure Load Balancer. Se si abilitano i timestamp TCP, i probe di integrità avranno esito negativo. Impostare il parametro net.ipv4.tcp_timestamps su 0. Per informazioni dettagliate, vedere Probe di integrità di Load Balancer.

Preparare i server per l'installazione di PAS e AAS

Gli elementi seguenti sono preceduti dall'indicazione [A] - applicabile a tutti i nodi, [1] - applicabile solo al nodo 1 o [2] - applicabile solo al nodo 2.

  1. [A] Configurare la risoluzione del nome host

    È possibile usare un server DNS o modificare /etc/hosts in tutti i nodi. Questo esempio mostra come usare il file /etc/hosts. Sostituire l'indirizzo IP e il nome host nei comandi seguenti

    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] Creare le directory SAP nella condivisione NFS. Montare temporaneamente la condivisione NFS sapnw1 in una delle macchine virtuali e creare le directory SAP che verranno usate come punti di montaggio annidati.

    1. Se si usa, NFS nei file di Azure

      # 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. Se 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] Creare le directory condivise

    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] Configurare lo spazio SWAP. Quando si installa l'istanza della finestra di dialogo con i servizi centrali, è necessario configurare più spazio di scambio.

    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
    

    Riavviare l'agente per attivare la modifica.

    sudo service waagent restart
    
  5. [A] Aggiungere regole del firewall per PAS e 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
    

Installazione dell'istanza SAP Netweaver PAS

  1. [1] Controllare lo stato del cluster. Prima di configurare la risorsa PAS per l'installazione, assicurarsi che le risorse ASCS e ERS siano configurate e avviate.

    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] Creare un file system, un indirizzo IP virtuale e una risorsa probe di integrità per l'istanza 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
    

    Assicurarsi che lo stato del cluster sia corretto e che tutte le risorse siano avviate. Non è importante in quale nodo sono in esecuzione le risorse.

    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] Modificare la proprietà della cartella dopo il montaggio del /usr/sap/SID/D02 file system.

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

    Installare SAP NetWeaver PAS come radice nel primo nodo usando un nome host virtuale mappato all'indirizzo IP della configurazione front-end del servizio di bilanciamento del carico per il PAS, ad esempio sappas, 10.90.90.30 e il numero di istanza usato per il probe del servizio di bilanciamento del carico, ad esempio 02.

    È possibile usare il parametro sapinst SAPINST_REMOTE_ACCESS_USER per consentire a un utente non ROOT di connettersi 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. Aggiornare il /usr/sap/sapservices file

    Per impedire l'avvio delle istanze dallo script di avvio sapinit, tutte le istanze gestite da pacemaker devono essere impostate come commento dal /usr/sap/sapservices file.

    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] Creare una risorsa cluster 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
    

    Controllare lo stato del cluster

    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. Configurare il vincolo per avviare il gruppo di risorse PAS solo dopo l'avvio delle istanze di ASCS.

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

Installazione dell'istanza di SAP Netweaver AAS

  1. [2] Controllare lo stato del cluster. Prima di configurare la risorsa AAS per l'installazione, assicurarsi che le risorse ASCS, ERS e PAS siano avviate.

    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] Creare un file system, un indirizzo IP virtuale e una risorsa probe di integrità per l'istanza di 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
    

    Assicurarsi che lo stato del cluster sia corretto e che tutte le risorse siano avviate. Non è importante in quale nodo sono in esecuzione le risorse. Quando si arresta g-NW1_PAS gruppo di risorse, tutte le risorse PAS saranno arrestate (disabilitate).

    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] Modificare la proprietà della cartella dopo il montaggio del /usr/sap/SID/D03 file system.

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

    Installare SAP NetWeaver AAS come radice nel secondo nodo usando un nome host virtuale mappato all'indirizzo IP della configurazione front-end del servizio di bilanciamento del carico per IL PAS, ad esempio sapaas, 10.90.90.31 e il numero di istanza usato per il probe del servizio di bilanciamento del carico, ad esempio 03.

    È possibile usare il parametro sapinst SAPINST_REMOTE_ACCESS_USER per consentire a un utente non ROOT di connettersi 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. Aggiornare il /usr/sap/sapservices file

    Per impedire l'avvio delle istanze dallo script di avvio sapinit, tutte le istanze gestite da pacemaker devono essere impostate come commento dal /usr/sap/sapservices file.

    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] Creare una risorsa cluster 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
    

    Controllare lo stato del cluster.

    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. Configurare il vincolo per avviare il gruppo di risorse AAS solo dopo l'avvio delle istanze di ASCS.

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

Post-configurazione per le istanze di PAS e AAS

  1. [1] Affinché PAS e AAS vengano eseguiti in qualsiasi nodo del cluster (sap-cl1 o sap-cl2), è necessario copiare il contenuto di $HOME/.hdb<sid>adm da entrambi i nodi del cluster.

    # 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] Per assicurarsi che le istanze di PAS e AAS non vengano eseguite negli stessi nodi ogni volta che entrambi i nodi sono in esecuzione. Aggiungere un vincolo di corilevazione negativo con il comando seguente :

    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
    

    Il punteggio di -1000 consiste nel garantire che, se è disponibile un solo nodo, entrambe le istanze continuano a essere eseguite nell'altro nodo. Se si vuole mantenere inattiva l'istanza di AAS in tale situazione, è possibile usare per score=-INFINITY applicare questa condizione.

  3. Controllare lo stato del cluster.

    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
    

Testare la configurazione del cluster

Testare accuratamente il cluster pacemaker. Eseguire i test di failover tipici.