Disponibilità elevata per SAP NetWeaver su macchine virtuali di Azure su SUSE Linux Enterprise Server con Azure NetApp Files per applicazioni SAP

Questo articolo illustra come configurare la disponibilità elevata per l'applicazione SAP NetWeaver con Azure NetApp Files.

Per le nuove implementazioni in SLES for SAP Applications 15, è consigliabile distribuire la disponibilità elevata per SAP ASCS/ERS in una configurazione di montaggio semplice. La configurazione classica di Pacemaker, basata su file system controllati dal cluster per le directory dei servizi centrali SAP, descritta in questo articolo è ancora supportata.

Nelle configurazioni di esempio, come i comandi di installazione e così via, l'istanza di ASC è il numero 00, il numero di istanza ERS è 01, l'istanza dell'applicazione primaria (PAS) è 02 e l'istanza dell'applicazione (AAS) è 03. Viene usato l'ID del sistema SAP QAS. Il livello del database non è descritto in dettaglio in questo articolo.

Leggere prima di tutto i documenti e le note SAP seguenti:

Panoramica

La disponibilità elevata per SAP NetWeaver Central Services richiede l'archiviazione condivisa. Per ottenere questo risultato in SUSE Linux finora era necessario compilare un cluster NFS a disponibilità elevata separato.

È ora possibile ottenere la disponibilità elevata di SAP Netweaver usando l'archiviazione condivisa, distribuita in Azure NetApp Files. L'uso di Azure NetApp Files per l'archiviazione condivisa elimina la necessità di un cluster NFS aggiuntivo. Pacemaker è ancora necessario per la disponibilità elevata di SAP Netweaver Central Services (ASCS/SCS).

SAP NetWeaver High Availability overview

SAP NetWeaver ASCS, SAP NetWeaver SCS, SAP NetWeaver ERS e il database SAP HANA usano un nome host virtuale e indirizzi IP virtuali. In Azure è necessario un servizio di bilanciamento del carico per usare un indirizzo IP virtuale. È consigliabile usare Load Balancer Standard. La configurazione presentata mostra un servizio di bilanciamento del carico con:

  • Indirizzo IP front-end 10.1.1.20 per ASCS
  • Indirizzo IP front-end 10.1.1.21 per ERS
  • Porta probe 62000 per ASCS
  • Porta probe 62101 per ERS

Configurazione dell'infrastruttura Azure NetApp Files

SAP NetWeaver richiede un'archiviazione condivisa per la directory di trasporto e del profilo. Prima di procedere con la configurazione dell'infrastruttura Azure NetApp Files, acquisire familiarità con la documentazione di Azure NetApp Files. Controllare se l'area di Azure selezionata offre Azure NetApp Files. Il collegamento seguente mostra la disponibilità di Azure NetApp Files per area di Azure: Disponibilità di Azure NetApp Files per area di Azure.

Azure NetApp Files è disponibile in numerose aree di Azure.

Distribuire le risorse di Azure NetApp Files

I passaggi presuppongono che sia già stata eseguita la distribuzione di Rete virtuale di Azure. Le risorse di Azure NetApp Files e tutte le macchine virtuali, in cui le risorse di Azure NetApp Files verranno montate, devono essere distribuite nella stessa istanza di Rete virtuale di Azure o in reti virtuali di Azure con peering.

  1. Creare l'account NetApp nell'area di Azure selezionata, seguendo le istruzioni per creare un account NetApp.
  2. Configurare il pool di capacità di Azure NetApp Files, seguendo le istruzioni su come configurare pool di capacità Azure NetApp Files.
    L'architettura di SAP NetWeaver presentata in questo articolo usa un singolo pool di capacità di Azure NetApp Files, SKU Premium. Lo SKU Premium di Azure NetApp Files è consigliabile per il carico di lavoro dell'applicazione SAP NetWeaver in Azure.
  3. Delegare una subnet ai file di Azure NetApp come descritto nelle istruzioni per delegare una subnet a Azure NetApp Files.
  4. Distribuire volumi di Azure NetApp Files, seguendo le istruzioni per creare un volume per Azure NetApp Files. Distribuire i volumi nella subnet di Azure NetApp Files designata. Gli indirizzi IP dei volumi di Azure NetApp vengono assegnati automaticamente. Le risorse di Azure NetApp Files e le macchine virtuali di Azure devono trovarsi nella stessa istanza di Rete virtuale di Azure o in reti virtuali di Azure con peering. In questo esempio vengono usati due volumi di Azure NetApp Files: sapQAS e trans. I percorsi di file montati nei punti di montaggio corrispondenti sono /usrsapqas/sapmntQAS, /usrsapqas/usrsapQASsys e così via.
    1. volume sapQAS (nfs://10.1.0.4/usrsapqas/sapmntQAS)
    2. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASascs)
    3. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASsys)
    4. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASers)
    5. volume trans (nfs://10.1.0.4/trans)
    6. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASpas)
    7. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASaas)

In questo esempio è stato usato Azure NetApp Files per tutti i file system di SAP NetWeaver per dimostrare come è possibile usare Azure NetApp Files. I file system SAP che non devono essere montati tramite NFS possono anche essere distribuiti come archiviazione su disco di Azure. In questo esempio a-e deve trovarsi in Azure NetApp Files e f-g (ovvero /usr/sap/QAS/D02, /usr/sap/QAS/D03) può essere distribuito come archiviazione su disco di Azure.

Considerazioni importanti

Quando si prende in considerazione Azure NetApp Files per SAP Netweaver sull'architettura a disponibilità elevata SUSE, tenere presenti le considerazioni importanti seguenti:

  • La capacità minima del pool è di 4 TiB. Le dimensioni del pool di capacità possono essere aumentate in incrementi di 1 TiB.
  • Il volume minimo è di 100 GiB.
  • Azure NetApp Files e tutte le macchine virtuali in cui verranno montati i volumi Azure NetApp Files devono trovarsi nella stessa istanza di Rete virtuale di Azure o in reti virtuali con peering nella stessa area. L'accesso ad Azure NetApp Files mediante peering VNET nella stessa area è ora supportato. L'accesso a NetApp di Azure mediante peering globale non è ancora supportato.
  • La rete virtuale selezionata deve avere una subnet delegata ad Azure NetApp Files.
  • Le caratteristiche di velocità effettiva e prestazioni di un volume di Azure NetApp Files sono una funzione della quota del volume e del livello di servizio, come documentato in Livello di servizio per Azure NetApp Files. Durante il dimensionamento dei volumi SAP Azure NetApp, assicurarsi che la velocità effettiva risultante soddisfi i requisiti dell'applicazione.
  • Azure NetApp Files offre criteri di esportazione: è possibile controllare i client consentiti, il tipo di accesso, come ad esempio lettura e scrittura, sola lettura e così via.
  • La funzionalità Azure NetApp Files non è ancora in grado di riconoscere la zona. Attualmente la funzionalità Azure NetApp Files non viene distribuita in tutte le zone di disponibilità in un'area di Azure. Tenere presente le implicazioni di latenza potenziali in alcune aree di Azure.
  • I volumi Azure NetApp Files possono essere distribuiti come volumi NFSv3 o NFSv4.1. Entrambi i protocolli sono supportati per il livello applicazione SAP (server di applicazione SAP, ASCS/ERS).

Preparare l'infrastruttura

L'agente di risorse per l'istanza SAP è incluso in SU edizione Standard Linux Enterprise Server for SAP Applications. Un'immagine per SU edizione Standard Linux Enterprise Server for SAP Applications 12 o 15 è disponibile in Azure Marketplace. È possibile usare l'immagine per distribuire nuove macchine virtuali.

Distribuire macchine virtuali Linux manualmente tramite il portale di Azure

Questo documento presuppone che sia già stato distribuito un gruppo di risorse, azure Rete virtuale e una subnet.

Distribuire macchine virtuali con l'immagine SLES for SAP Applications. Scegliere una versione appropriata dell'immagine SLES supportata per il sistema SAP. È possibile distribuire una macchina virtuale in una delle opzioni di disponibilità, ovvero set di scalabilità di macchine virtuali, zona di disponibilità o set di disponibilità.

Configurare il servizio di bilanciamento del carico di Azure

Durante la configurazione della macchina virtuale, è possibile creare o selezionare l'uscita dal servizio di bilanciamento del carico nella sezione Rete. Seguire questa procedura per configurare un servizio di bilanciamento del carico standard per la configurazione a disponibilità elevata di SAP ASCS e SAP ERS.

Seguire la guida alla creazione del servizio di bilanciamento del carico per configurare un servizio di bilanciamento del carico standard per un sistema SAP a disponibilità elevata usando il portale di Azure. Durante la configurazione del servizio di bilanciamento del carico, prendere in considerazione i punti seguenti.

  1. Configurazione IP front-end: creare due indirizzi IP front-end, uno per ASCS e un altro per ERS. Selezionare la stessa rete virtuale e la stessa subnet delle macchine virtuali ASCS/ERS.
  2. Pool back-end: creare un pool back-end e aggiungere macchine virtuali ASCS e ERS.
  3. Regole in ingresso: creare due regole di bilanciamento del carico, una per ASCS e un'altra per ERS. Seguire la stessa procedura per entrambe le regole di bilanciamento del carico.
    • Indirizzo IP front-end: selezionare ip front-end
    • Pool back-end: selezionare il pool back-end
    • Controllare "Porte a disponibilità elevata"
    • Protocollo: TCP
    • Probe di integrità: creare un probe di integrità con i dettagli seguenti (si applica sia per ASCS che per ERS)
      • Protocollo: TCP
      • Porta: [ad esempio: 620<Instance-no.> per ASCS, 621<Instance-no.> per ERS]
      • Intervallo: 5
      • Soglia probe: 2
    • Timeout di inattività (minuti): 30
    • 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 timestamp TCP nelle macchine virtuali di Azure posizionate 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.
  • Per impedire a saptune di modificare manualmente il valore impostato net.ipv4.tcp_timestamps manualmente da 0 a 1, è necessario aggiornare la versione saptune alla versione 3.1.1 o successiva. Per altri dettagli, vedere saptune 3.1.1 – Do I Need to Update?.

Disabilitare il mapping degli ID (se si usa NFSv4.1)

Le istruzioni riportate in questa sezione sono applicabili solo se si usano volumi Azure NetApp Files con il protocollo NFSv4.1. Eseguire la configurazione su tutte le macchine virtuali, in cui verranno montati volumi Azure NetApp Files NFSv4.1.

  1. Verificare l'impostazione del dominio NFS. Assicurarsi che il dominio sia configurato come dominio predefinito di defaultv4iddomain.com Azure NetApp Files e che il mapping sia impostato su nessuno.

    Importante

    Verificare di impostare il dominio NFS in /etc/idmapd.conf sulla macchina virtuale in modo che corrisponda alla configurazione del dominio predefinito in Azure NetApp Files: defaultv4iddomain.com. In caso di mancata corrispondenza tra la configurazione del dominio nel client NFS (ovvero la macchina virtuale) e nel server NFS, ad esempio la configurazione di Azure NetApp, le autorizzazioni per i file nei volumi Azure NetApp montati nelle VM verranno visualizzate come nobody.

    sudo cat /etc/idmapd.conf
    
    # Example
    [General]
    Verbosity = 0
    Pipefs-Directory = /var/lib/nfs/rpc_pipefs
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    
  2. [A] Verificare nfs4_disable_idmapping. Deve essere impostato su Y. Per creare la struttura di directory in cui nfs4_disable_idmapping si trova, eseguire il comando mount. Non sarà possibile creare manualmente la directory in/sys/modules, perché l'accesso è riservato per il kernel/driver.

    # 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.1.0.4:/sapmnt/qas /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
    

Configurazione di (A)SCS

Successivamente, si prepareranno e si installeranno le istanze di SAP ASCS e ERS.

Creare un cluster Pacemaker

Seguire i passaggi descritti in Configurazione di Pacemaker su SUSE Linux Enterprise Server in Azure per creare un cluster Pacemaker di base per questo server (A)SCS.

Installazione

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] Installare il connettore SUSE

    sudo zypper install sap-suse-cluster-connector
    

    Nota

    Il problema noto relativo all'uso di un trattino nei nomi host è stato risolto con la versione 3.1.1 del pacchetto sap-suse-cluster-connector. Verificare di usare almeno la versione 3.1.1 del pacchetto sap-suse-cluster-connector, se si usano nodi del cluster con un trattino nel nome host. In caso contrario, il cluster non funzionerà.

    Verificare di aver installato la nuova versione del connettore del cluster SAP SUSE. La versione precedente era denominata sap_suse_cluster_connector mentre la nuova è denominata sap-suse-cluster-connector.

    sudo zypper info sap-suse-cluster-connector
    
    # Information for package sap-suse-cluster-connector:
    # ---------------------------------------------------
    # Repository     : SLE-12-SP3-SAP-Updates
    # Name           : sap-suse-cluster-connector
    # Version        : 3.1.0-8.1
    # Arch           : noarch
    # Vendor         : SUSE LLC <https://www.suse.com/>
    # Support Level  : Level 3
    # Installed Size : 45.6 KiB
    # Installed      : Yes
    # Status         : up-to-date
    # Source package : sap-suse-cluster-connector-3.1.0-8.1.src
    # Summary        : SUSE High Availability Setup for SAP Products
    
  2. [A] Aggiornare gli agenti delle risorse SAP

    Per usare la nuova configurazione descritta in questo articolo, è necessaria una patch per il pacchetto resource-agents. È possibile verificare se la patch è già installata con il comando seguente

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

    L'output dovrebbe essere simile al seguente

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

    Se il comando grep non trova il parametro IS_ERS, è necessario installare la patch elencata nella pagina di download su edizione Standard

    # example for patch for SLES 12 SP1
    sudo zypper in -t patch SUSE-SLE-HA-12-SP1-2017-885=1
    
    # example for patch for SLES 12 SP2
    sudo zypper in -t patch SUSE-SLE-HA-12-SP2-2017-886=1
    
  3. [A] Configurare la risoluzione dei nomi 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
    

    Inserire le righe seguenti in /etc/hosts. Modificare l'indirizzo IP e il nome host in base all'ambiente

    # IP address of cluster node 1
    10.1.1.18    anftstsapcl1
    # IP address of cluster node 2
    10.1.1.6     anftstsapcl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.1.1.20    anftstsapvh
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.1.1.21    anftstsapers
    
  4. [1] Creare directory SAP nel volume Azure NetApp Files.

    Montare temporaneamente il volume Azure NetApp Files in una delle macchine virtuali e creare le directory SAP (percorsi di file).

    # mount temporarily the volume
    sudo mkdir -p /saptmp
    # If using NFSv3
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 10.1.0.4:/sapQAS /saptmp
    # If using NFSv4.1
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 10.1.0.4:/sapQAS /saptmp
    # create the SAP directories
    sudo cd /saptmp
    sudo mkdir -p sapmntQAS
    sudo mkdir -p usrsapQASascs
    sudo mkdir -p usrsapQASers
    sudo mkdir -p usrsapQASsys
    sudo mkdir -p usrsapQASpas
    sudo mkdir -p usrsapQASaas
    # unmount the volume and delete the temporary directory
    sudo cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    

Prepararsi per l'installazione di SAP NetWeaver

  1. [A] Creare le directory condivise

    sudo mkdir -p /sapmnt/QAS
    sudo mkdir -p /usr/sap/trans
    sudo mkdir -p /usr/sap/QAS/SYS
    sudo mkdir -p /usr/sap/QAS/ASCS00
    sudo mkdir -p /usr/sap/QAS/ERS01
    
    sudo chattr +i /sapmnt/QAS
    sudo chattr +i /usr/sap/trans
    sudo chattr +i /usr/sap/QAS/SYS
    sudo chattr +i /usr/sap/QAS/ASCS00
    sudo chattr +i /usr/sap/QAS/ERS01
    
  2. [A] Configurare autofs

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    /- /etc/auto.direct
    

    Se si usa NFSv3, creare un file con:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=3,nobind 10.1.0.4:/trans
    /usr/sap/QAS/SYS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/usrsapQASsys
    

    Se si usa NFSv4.1, creare un file con:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/trans
    /usr/sap/QAS/SYS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/usrsapQASsys
    

    Nota

    Assicurarsi di associare la versione del protocollo NFS dei volumi Azure NetApp Files, durante il montaggio dei volumi. Se i volumi Azure NetApp Files vengono creati come volumi NFSv3, usare la configurazione NFSv3 corrispondente. Se i volumi Azure NetApp Files vengono creati come volumi NFSv4.1, seguire le istruzioni per disabilitare il mapping degli ID e assicurarsi di usare la configurazione NFSv4.1 corrispondente. In questo esempio i volumi Azure NetApp Files sono stati creati come volumi NFSv3.

    Riavviare autofs per montare le nuove condivisioni

    sudo systemctl enable autofs
    sudo service autofs restart
    
  3. [A] Configurare il file SWAP

    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
    

    Riavviare l'agente per attivare la modifica

    sudo service waagent restart
    

Installazione di SAP NetWeaver ASCS/ERS

  1. [1] Creare una risorsa IP virtuale e un probe di integrità per l'istanza di ASCS

    Importante

    Sono state rilevate situazioni di test recenti, in cui netcat smette di rispondere alle richieste dovute al backlog e alla limitazione della gestione di una sola connessione. La risorsa netcat smette di essere in ascolto delle richieste del servizio di bilanciamento del carico di Azure e l'IP mobile diventa non disponibile.
    Per i cluster Pacemaker esistenti, in passato era consigliabile sostituire netcat con socat. Attualmente è consigliabile usare l'agente di risorse azure-lb, che fa parte degli agenti di risorse del pacchetto, con i requisiti di versione del pacchetto seguenti:

    • Per SLES 12 SP4/SP5 la versione deve essere almeno resource-agents-4.3.018.a7fb5035-3.30.1.
    • Per SLES 15/15 SP1 la versione deve essere almeno resource-agents-4.3.0184.6ee15eb2-4.13.1.

    Si noti che la modifica richiederà un breve tempo di inattività.
    Per i cluster Pacemaker esistenti, se la configurazione è stata già modificata per usare socat, come descritto in Azure Load-Balancer Detection Hardening (Protezione avanzata dei rilevamenti del servizio di bilanciamento del carico di Azure), non è necessario passare immediatamente all'agente delle risorse azure-lb.

    sudo crm node standby anftstsapcl2
    
    # If using NFSv3
    sudo crm configure primitive fs_QAS_ASCS Filesystem device='10.1.0.4/usrsapqas/usrsapQASascs' directory='/usr/sap/QAS/ASCS00' fstype='nfs' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    # If using NFSv4.1
    sudo crm configure primitive fs_QAS_ASCS Filesystem device='10.1.0.4:/usrsapqas/usrsapQASascs' directory='/usr/sap/QAS/ASCS00' fstype='nfs' options='sec=sys,nfsvers=4.1' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=105s
    
    sudo crm configure primitive vip_QAS_ASCS IPaddr2 \
      params ip=10.1.1.20 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_QAS_ASCS azure-lb port=62000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-QAS_ASCS fs_QAS_ASCS nc_QAS_ASCS vip_QAS_ASCS \
       meta resource-stickiness=3000
    

    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 crm_mon -r
    
    # Node anftstsapcl2: standby
    # Online: [ anftstsapcl1 ]
    # 
    # Full list of resources:
    #
    # Resource Group: g-QAS_ASCS
    #     fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl1
    #     nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl1
    #     vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl1
    # stonith-sbd     (stonith:external/sbd): Started anftstsapcl2
    
  2. [1] Installare SAP NetWeaver ASCS

    Installare SAP NetWeaver ASCS come radice nel primo nodo usando un nome host virtuale mappato all'indirizzo IP della configurazione front-end di bilanciamento del carico per l'istanza ASCS, ad esempio anftstsapvh, 10.1.1.20 e il numero di istanza usato per il probe del bilanciamento del carico, ad esempio 00.

    È possibile usare il parametro sapinst SAPINST_REMOTE_ACCESS_USER per consentire a un utente non ROOT di connettersi a sapinst. È possibile usare il parametro SAPINST_USE_HOSTNAME per installare SAP, usando il nome host virtuale.

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

    Se durante l'installazione non viene creata una sottocartella in /usr/sap/QAS/ASCS00, provare a impostare il proprietario e il gruppo della cartella ASCS00 e riprovare.

    chown qasadm /usr/sap/QAS/ASCS00
    chgrp sapsys /usr/sap/QAS/ASCS00
    
  3. [1] Creare una risorsa IP virtuale e un probe di integrità per l'istanza di ERS.

    sudo crm node online anftstsapcl2
    sudo crm node standby anftstsapcl1
    
    # If using NFSv3
    sudo crm configure primitive fs_QAS_ERS Filesystem device='10.1.0.4:/usrsapqas/usrsapQASers' directory='/usr/sap/QAS/ERS01' fstype='nfs' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    # If using NFSv4.1
    sudo crm configure primitive fs_QAS_ERS Filesystem device='10.1.0.4:/usrsapqas/usrsapQASers' directory='/usr/sap/QAS/ERS01' fstype='nfs' options='sec=sys,nfsvers=4.1' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=105s
    
    sudo crm configure primitive vip_QAS_ERS IPaddr2 \
      params ip=10.1.1.21 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_QAS_ERS azure-lb port=62101 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-QAS_ERS fs_QAS_ERS nc_QAS_ERS vip_QAS_ERS
    

    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 crm_mon -r
    
    # Node anftstsapcl1: standby
    # Online: [ anftstsapcl2 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started anftstsapcl2
    #  Resource Group: g-QAS_ASCS
    #      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl2
    #      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
    #  Resource Group: g-QAS_ERS
    #      fs_QAS_ERS (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_ERS (ocf::heartbeat:azure-lb):      Started anftstsapcl2
    #      vip_QAS_ERS  (ocf::heartbeat:IPaddr2):     Started anftstsapcl2
    
  4. [2] Installare SAP NetWeaver ERS

    Installare SAP NetWeaver ERS come radice nel secondo nodo usando un nome host virtuale mappato all'indirizzo IP della configurazione front-end di bilanciamento del carico per ERS, ad esempio anftstsapers, 10.1.1.21 e il numero di istanza usato per il probe del bilanciamento del carico, ad esempio 01.

    È possibile usare il parametro sapinst SAPINST_REMOTE_ACCESS_USER per consentire a un utente non ROOT di connettersi a sapinst. È possibile usare il parametro SAPINST_USE_HOSTNAME per installare SAP, usando il nome host virtuale.

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

    Nota

    Usare SWPM SP 20 PL 05 o versione successiva. Le versioni precedenti non impostano correttamente le autorizzazioni e l'installazione avrà esito negativo.

    Se durante l'installazione non viene creata una sottocartella in /usr/sap/QAS/ERS01, provare a impostare il proprietario e il gruppo della cartella ERS01 e riprovare.

    chown qasadm /usr/sap/QAS/ERS01
    chgrp sapsys /usr/sap/QAS/ERS01
    
  5. [1] Adattare i profili di istanza ASCS/SCS e ERS

    • Profilo ASCS/SCS

      sudo vi /sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh
      
      # 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 keep alive parameter, if using ENSA1
      enque/encni/set_so_keepalive = true
      

      Sia per ENSA1 che per ENSA2, assicurarsi che i parametri del keepalive sistema operativo siano impostati come descritto nella nota SAP 1410736.

    • Profilo ERS

      sudo vi /sapmnt/QAS/profile/QAS_ERS01_anftstsapers
      
      # 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 ERS profile
      # Autostart = 1
      
  6. [A] Configurare keep-alive

    Le comunicazioni tra il server applicazioni SAP NetWeaver e ASCS/SCS vengono instradate tramite un servizio di bilanciamento del carico software. Il servizio di bilanciamento del carico disconnette le connessioni inattive dopo un timeout configurabile. Per evitare che sia necessario impostare un parametro nel profilo SAP NetWeaver ASCS/SCS, se si usa ENSA1 e modificare le impostazioni di sistema keepalive Linux in tutti i server SAP sia per ENSA1/ENSA2. Per altre informazioni, leggere la nota SAP 1410736.

    # Change the Linux system configuration
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  7. [A] Configurare gli utenti SAP dopo l'installazione

    # Add sidadm to the haclient group
    sudo usermod -aG haclient qasadm
    
  8. [1] Aggiungere i servizi SAP ASCS e ERS al file sapservice

    Aggiungere la voce del servizio ASCS al secondo nodo e copiare la voce del servizio ERS nel primo nodo.

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh anftstsapcl2 "cat >>/usr/sap/sapservices"
    sudo ssh anftstsapcl2 "cat /usr/sap/sapservices" | grep ERS01 | sudo tee -a /usr/sap/sapservices
    
  9. [1] Creare le risorse del cluster SAP.

    A seconda che si esegua un sistema ENSA1 o ENSA2, selezionare la rispettiva scheda per definire le risorse. SAP ha introdotto il supporto per ENSA2, inclusa la replica, in SAP NetWeaver 7.52. A partire da ABAP Platform 1809, ENSA2 viene installato per impostazione predefinita. Per il supporto di ENSA2, vedere SAP Note 2630416.

    sudo crm configure property maintenance-mode="true"
    
    # If using NFSv3
    sudo crm configure primitive rsc_sap_QAS_ASCS00 SAPInstance \
        operations \$id=rsc_sap_QAS_ASCS00-operations \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
        AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If using NFSv4.1
    sudo crm configure primitive rsc_sap_QAS_ASCS00 SAPInstance \
        operations \$id=rsc_sap_QAS_ASCS00-operations \
        op monitor interval=11 timeout=105 on-fail=restart \
        params InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
        AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=105 migration-threshold=1 priority=10
    
    # If using NFSv3   
    sudo crm configure primitive rsc_sap_QAS_ERS01 SAPInstance \
        operations \$id=rsc_sap_QAS_ERS01-operations \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" AUTOMATIC_RECOVER=false IS_ERS=true \
        meta priority=1000
    
    # If using NFSv4.1
    sudo crm configure primitive rsc_sap_QAS_ERS01 SAPInstance \
        operations \$id=rsc_sap_QAS_ERS01-operations \
        op monitor interval=11 timeout=105 on-fail=restart \
        params InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" AUTOMATIC_RECOVER=false IS_ERS=true \
        meta priority=1000
    
    sudo crm configure modgroup g-QAS_ASCS add rsc_sap_QAS_ASCS00
    sudo crm configure modgroup g-QAS_ERS add rsc_sap_QAS_ERS01
    
    sudo crm configure colocation col_sap_QAS_no_both -5000: g-QAS_ERS g-QAS_ASCS
    sudo crm configure location loc_sap_QAS_failover_to_ers rsc_sap_QAS_ASCS00 rule 2000: runs_ers_QAS eq 1
    sudo crm configure order ord_sap_QAS_first_start_ascs Optional: rsc_sap_QAS_ASCS00:start rsc_sap_QAS_ERS01:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online anftstsapcl1
    sudo crm configure property maintenance-mode="false"
    

Se si esegue l'aggiornamento da una versione precedente e si passa al server di accodamento 2, vedere la nota SAP 2641019.

Nota

I timeout più elevati, suggeriti quando si usa NFSv4.1 sono necessari a causa di una pausa specifica del protocollo, correlata ai rinnovi del lease NFSv4.1. Per altre informazioni, vedere Procedura consigliata per NFS in NetApp.

I timeout nella configurazione precedente potrebbero essere necessari per adattarsi alla configurazione SAP specifica.

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 crm_mon -r
  
# Full list of resources:
#
# stonith-sbd     (stonith:external/sbd): Started anftstsapcl2
#  Resource Group: g-QAS_ASCS
#      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl1
#      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl1
#      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl1
#      rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
#  Resource Group: g-QAS_ERS
#      fs_QAS_ERS (ocf::heartbeat:Filesystem):    Started anftstsapcl2
#      nc_QAS_ERS (ocf::heartbeat:azure-lb):      Started anftstsapcl2
#      vip_QAS_ERS        (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
#      rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2

Preparazione del server applicazioni di SAP NetWeaver

Alcuni database richiedono che l'installazione dell'istanza di database venga eseguita in un server applicazioni. Preparare le macchine virtuali del server applicazioni da poter usare in questi casi.

I passaggi seguenti presuppongono che il server applicazioni venga installato in un server diverso dai server ASCS/SCS e HANA. In caso contrario, alcuni dei passaggi seguenti (ad esempio la configurazione della risoluzione dei nomi host) non sono necessari.

Gli elementi seguenti sono preceduti dall'indicazione [A], applicabile a PAS e AAS, [P], applicabile solo a PAS o [S], applicabile solo a AAS.

  1. [A] Configurare il sistema operativo

    Ridurre le dimensioni della cache dirty. Per altre informazioni, vedere Prestazioni di scrittura ridotte sui server SLES 11 12 con RAM di grandi dimensioni.

    sudo vi /etc/sysctl.conf
    
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    
  2. [A] Configurare la risoluzione dei nomi 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
    

    Inserire le righe seguenti in /etc/hosts. Modificare l'indirizzo IP e il nome host in base all'ambiente

    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS/SCS
    10.1.1.20 anftstsapvh
    # IP address of the load balancer frontend configuration for SAP NetWeaver ERS
    10.1.1.21 anftstsapers
    # IP address of all application servers
    10.1.1.15 anftstsapa01
    10.1.1.16 anftstsapa02
    
  3. [A] Creare la directory sapmnt

    sudo mkdir -p /sapmnt/QAS
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/QAS
    sudo chattr +i /usr/sap/trans
    
  4. [P] Creare la directory PAS

    sudo mkdir -p /usr/sap/QAS/D02
    sudo chattr +i /usr/sap/QAS/D02
    
  5. [S] Creare la directory AAS

    sudo mkdir -p /usr/sap/QAS/D03
    sudo chattr +i /usr/sap/QAS/D03
    
  6. [P] Configurare autofs su PAS

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    /- /etc/auto.direct
    

    Se si usa NFSv3, creare un nuovo file con:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=3,nobind 10.1.0.4:/trans
    /usr/sap/QAS/D02 -nfsvers=3,nobind 10.1.0.4:/usrsapqas/usrsapQASpas
    

    Se si usa NFSv4.1, creare un nuovo file con:

    sudo vi /etc/auto.direct
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/trans
    /usr/sap/QAS/D02 -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/usrsapQASpas
    

    Riavviare autofs per montare le nuove condivisioni

    sudo systemctl enable autofs
    sudo service autofs restart
    
  7. [P] Configurare autofs su AAS

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    /- /etc/auto.direct
    

    Se si usa NFSv3, creare un nuovo file con:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=3,nobind 10.1.0.4:/trans
    /usr/sap/QAS/D03 -nfsvers=3,nobind 10.1.0.4:/usrsapqas/usrsapQASaas
    

    Se si usa NFSv4.1, creare un nuovo file con:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/trans
    /usr/sap/QAS/D03 -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/usrsapQASaas
    

    Riavviare autofs per montare le nuove condivisioni

    sudo systemctl enable autofs
    sudo service autofs restart
    
  8. [A] Configurare il file SWAP

    sudo vi /etc/waagent.conf
    
    # 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
    

    Riavviare l'agente per attivare la modifica

    sudo service waagent restart
    

Installare il database

In questo esempio, SAP NetWeaver è installato in SAP HANA. Per questa installazione è possibile usare qualsiasi database supportato. Per altre informazioni su come installare SAP HANA in Azure, vedere Disponibilità elevata di SAP HANA in macchine virtuali di Azure (VM). Per un elenco dei database supportati, vedere la nota SAP 1928533.

  • Eseguire l'installazione dell'istanza del database SAP

    Installare l'istanza del database di SAP NetWeaver come radice usando un nome host virtuale mappato all'indirizzo IP della configurazione front-end di bilanciamento del carico per il database.

    È possibile usare il parametro sapinst SAPINST_REMOTE_ACCESS_USER per consentire a un utente non ROOT di connettersi a sapinst.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    

Installazione del server applicazioni di SAP NetWeaver

Per installare il server applicazioni SAP, seguire questi passaggi.

  1. [A] Per preparare il server applicazioni. Seguire la procedura descritta nel capitolo Preparazione del server applicazioni di SAP NetWeaver sopra riportato.

  2. [A] Installare un server applicazioni di SAP NetWeaver. Installare un server applicazioni di SAP NetWeaver primario o aggiuntivo.

    È possibile usare il parametro sapinst SAPINST_REMOTE_ACCESS_USER per consentire a un utente non ROOT di connettersi a sapinst.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A] Aggiornare l'archivio sicuro di SAP HANA

    Aggiornare l'archivio sicuro di SAP HANA in modo che punti al nome virtuale della configurazione della replica di sistema di SAP HANA.

    Eseguire il comando seguente per ottenere un elenco delle voci

    hdbuserstore List
    

    Viene visualizzato un elenco di tutte le voci, che avrà un aspetto simile al seguente

    DATA FILE       : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.DAT
    KEY FILE        : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 10.1.1.5:30313
      USER: SAPABAP1
      DATABASE: QAS
    

    L'output mostra che l'indirizzo IP della voce predefinita fa riferimento alla macchina virtuale e non all'indirizzo IP del bilanciamento del carico. Questa voce deve essere modificata in modo che faccia riferimento al nome host virtuale del bilanciamento del carico. Verificare di usare la stessa porta (30313 nell'output precedente) e lo stesso nome del database (QAS nell'output precedente).

    su - qasadm
    
    hdbuserstore SET DEFAULT qasdb:30313@QAS SAPABAP1 <password of ABAP schema>
    

Testare la configurazione del cluster

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

Passaggi successivi