Disponibilità elevata per SAP NetWeaver su macchina virtuali di Azure in SUSE Linux Enterprise Server for SAP applications

Questo articolo descrive come distribuire le macchine virtuali, configurare le macchine virtuali, installare il framework del cluster e installare un sistema SAP NetWeaver 7.50 a disponibilità elevata. Nelle configurazioni di esempio, nei comandi di installazione e così via vengono usati il numero di istanza ASCS 00, il numero di istanza ERS 02 e l'ID del sistema SAP NWS. I nomi delle risorse (ad esempio macchine virtuali e reti virtuali) nell'esempio presuppongono che sia stato usato il modello convergente con l'ID del sistema SAP NWS per creare le risorse.

Leggere prima di tutto le note e i documenti seguenti relativi a SAP

  • Nota SAP 1928533, contenente:

    • Elenco delle dimensioni delle VM di Azure supportate per la distribuzione di software SAP
    • Importanti informazioni sulla capacità per le dimensioni delle VM di Azure
    • Software SAP e combinazioni di sistemi operativi e database supportati
    • Versione del kernel SAP richiesta per Windows e Linux in Microsoft Azure
  • La nota SAP 2015553 elenca i prerequisiti per le distribuzioni di software SAP supportate da SAP in Azure.

  • La nota SAP 2205917 contiene le impostazioni consigliate del sistema operativo per SUSE Linux Enterprise Server for SAP Applications
  • La nota SAP 1944799 contiene linee guida per SAP HANA per SUSE Linux Enterprise Server for SAP Applications
  • La nota SAP 2178632 contiene informazioni dettagliate su tutte le metriche di monitoraggio segnalate per SAP in Azure.
  • La nota SAP 2191498 contiene la versione dell'agente host SAP per Linux necessaria in Azure.
  • La nota SAP 2243692 contiene informazioni sulle licenze SAP in Linux in Azure.
  • La nota SAP 1984787 contiene informazioni generali su SUSE Linux Enterprise Server 12.
  • La nota SAP 1999351 contiene informazioni aggiuntive sulla risoluzione dei problemi per l'estensione di monitoraggio avanzato di Azure per SAP.
  • Community WIKI SAP contiene tutte le note su SAP necessarie per Linux.
  • Pianificazione e implementazione di Macchine virtuali di Azure per SAP in Linux
  • Distribuzione di Macchine virtuali di Azure per SAP in Linux (questo articolo)
  • Distribuzione DBMS di Macchine virtuali di Azure per SAP in Linux
  • SAP HANA SR Performance Optimized Scenario (Scenario di ottimizzazione delle prestazioni di SAP HANA SR)
    La guida contiene tutte le informazioni necessarie per configurare la replica di sistema SAP HANA in locale. Usare la guida per le indicazioni di base.
  • Highly Available NFS Storage with DRBD and Pacemaker (Archiviazione NFS a disponibilità elevata con DRBD e Pacemaker) La guida contiene tutte le informazioni necessarie per configurare un server NFS a disponibilità elevata. Usare la guida per le indicazioni di base.

Panoramica

Per ottenere la disponibilità elevata, SAP NetWeaver richiede un server NFS. Il server NFS viene configurato in un cluster separato e può essere usato da più sistemi SAP.

Panoramica della disponibilità elevata di SAP NetWeaver

Il server NFS, SAP NetWeaver ASCS, SAP NetWeaver SCS, SAP NetWeaver ERS e il database SAP HANA usano un nome host virtuale e indirizzi IP virtuali. Per usare un indirizzo IP virtuale in Azure, occorre il bilanciamento del carico. L'elenco seguente mostra la configurazione del bilanciamento del carico.

Server NFS

  • Configurazione front-end
    • Indirizzo IP 10.0.0.4
  • Configurazione back-end
    • Connessione alle interfacce di rete primarie di tutte le macchine virtuali che devono far parte del cluster NFS
  • Porta probe
    • Porta 61000
  • Regole di bilanciamento del carico
    • 2049 TCP
    • 2049 UDP

(A)SCS

  • Configurazione front-end
    • Indirizzo IP 10.0.0.10
  • Configurazione back-end
    • Connessione alle interfacce di rete primarie di tutte le macchine virtuali che devono far parte del cluster (A)SCS/ERS
  • Porta probe
    • Porta 620<nr>
  • Regole di bilanciamento del carico
    • 32<nr> TCP
    • 36<nr> TCP
    • 39<nr> TCP
    • 81<nr> TCP
    • 5<nr>13 TCP
    • 5<nr>14 TCP
    • 5<nr>16 TCP

ERS

  • Configurazione front-end
    • Indirizzo IP 10.0.0.11
  • Configurazione back-end
    • Connessione alle interfacce di rete primarie di tutte le macchine virtuali che devono far parte del cluster (A)SCS/ERS
  • Porta probe
    • Porta 621<nr>
  • Regole di bilanciamento del carico
    • 33<nr> TCP
    • 5<nr>13 TCP
    • 5<nr>14 TCP
    • 5<nr>16 TCP

SAP HANA

  • Configurazione front-end
    • Indirizzo IP 10.0.0.12
  • Configurazione back-end
    • Connessione alle interfacce di rete primarie di tutte le macchine virtuali che devono far parte del cluster HANA
  • Porta probe
    • Porta 625<nr>
  • Regole di bilanciamento del carico
    • 3<nr>15 TCP
    • 3<nr>17 TCP

Configurazione di un server NFS a disponibilità elevata

Distribuzione di Linux

Azure Marketplace contiene un'immagine per SUSE Linux Enterprise Server for SAP Applications 12 che è possibile usare per distribuire nuove macchine virtuali. È possibile usare uno dei modelli di avvio rapido di GitHub per distribuire tutte le risorse necessarie. Il modello consente di distribuire le macchine virtuali, il servizio di bilanciamento del carico, il set di disponibilità e così via. Per distribuire il modello, seguire questi passaggi:

  1. Aprire il modello di file server di SAP nel portale di Azure
  2. Immettere i parametri seguenti
    1. Prefisso della risorsa
      Immettere il prefisso che si vuole usare. Il valore viene usato come prefisso per le risorse distribuite.
    2. Tipo di sistema operativo
      Selezionare una delle distribuzioni Linux. Per questo esempio, selezionare SLES 12
    3. Nome utente e password amministratore
      Verrà creato un nuovo utente con cui è possibile accedere alla macchina
    4. ID subnet
      ID della subnet a cui devono essere connesse le macchine virtuali. Lasciare vuoto se si vuole creare una nuova rete virtuale o selezionare la subnet della rete virtuale Express Route o VPN per connettere la macchina virtuale alla rete locale. L'ID in genere è simile al seguente: /subscriptions/<ID sottoscrizione>/resourceGroups/<nome gruppo risorse>/providers/Microsoft.Network/virtualNetworks/<nome rete virtuale>/subnets/<nome subnet>

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] Aggiornare SLES

    
    sudo zypper update
    
  2. [1] Abilitare l'accesso SSH

    
    sudo ssh-keygen -tdsa
    
    # Enter file in which to save the key (/root/.ssh/id_dsa): -> ENTER
    # Enter passphrase (empty for no passphrase): -> ENTER
    # Enter same passphrase again: -> ENTER
    
    # copy the public key
    sudo cat /root/.ssh/id_dsa.pub
    
  3. [2] Abilitare l'accesso SSH

    
    sudo ssh-keygen -tdsa
    
    # insert the public key you copied in the last step into the authorized keys file on the second server
    sudo vi /root/.ssh/authorized_keys
    
    # Enter file in which to save the key (/root/.ssh/id_dsa): -> ENTER
    # Enter passphrase (empty for no passphrase): -> ENTER
    # Enter same passphrase again: -> ENTER
    
    # copy the public key   
    sudo cat /root/.ssh/id_dsa.pub
    
  4. [1] Abilitare l'accesso SSH

    
    # insert the public key you copied in the last step into the authorized keys file on the first server
    sudo vi /root/.ssh/authorized_keys
    
  5. [A] Installare l'estensione per la disponibilità elevata

    
    sudo zypper install sle-ha-release fence-agents
    
  6. [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 NFS
    10.0.0.4 nws-nfs
    
  7. [1] Installare il cluster

    
    sudo ha-cluster-init
    
    # Do you want to continue anyway? [y/N] -> y
    # Network address to bind to (for example: 192.168.1.0) [10.79.227.0] -> ENTER
    # Multicast address (for example: 239.x.x.x) [239.174.218.125] -> ENTER
    # Multicast port [5405] -> ENTER
    # Do you wish to use SBD? [y/N] -> N
    # Do you wish to configure an administration IP? [y/N] -> N
    
  8. [2] Aggiungere un nodo al cluster

     
    sudo ha-cluster-join
    
    # WARNING: NTP is not configured to start at system boot.
    # WARNING: No watchdog device found. If SBD is used, the cluster will be unable to start without a watchdog.
    # Do you want to continue anyway? [y/N] -> y
    # IP address or hostname of existing node (for example: 192.168.1.1) [] -> IP address of node 1 for example 10.0.0.10
    # /root/.ssh/id_dsa already exists - overwrite? [y/N] N
    
  9. [A] Modificare la password hacluster in modo da usare la stessa password

     
    sudo passwd hacluster
    
  10. [A] Configurare corosync per usare un altro trasporto e aggiungere nodelist In caso contrario, il cluster non funzionerà.

     
    sudo vi /etc/corosync/corosync.conf   
    

    Aggiungere il seguente contenuto in grassetto nel file.

     
    [...]
      interface { 
         [...] 
      }
      transport:      udpu
    } 
    nodelist {
      node {
       # IP address of prod-nfs-0
       ring0_addr:10.0.0.5
      }
      node {
       # IP address of prod-nfs-1
       ring0_addr:10.0.0.6
      } 
    }
    logging {
      [...]
    

    Riavviare quindi il servizio corosync

    
    sudo service corosync restart
    
  11. [A] Installare i componenti drbd

    
    sudo zypper install drbd drbd-kmp-default drbd-utils
    
  12. [A] Creare una partizione per il dispositivo drbd

    
    sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/sdc'
    
  13. [A] Creare le configurazioni LVM

    
    sudo pvcreate /dev/sdc1   
    sudo vgcreate vg_NFS /dev/sdc1
    sudo lvcreate -l 100%FREE -n NWS vg_NFS
    
  14. [A] Creare il dispositivo drbd NFS

    
    sudo vi /etc/drbd.d/NWS_nfs.res
    

    Inserire la configurazione per il nuovo dispositivo drbd e uscire

    
    resource NWS_nfs {
       protocol     C;
       disk {
          on-io-error       pass_on;
       }
       on prod-nfs-0 {
          address   10.0.0.5:7790;
          device    /dev/drbd0;
          disk      /dev/vg_NFS/NWS;
          meta-disk internal;
       }
       on prod-nfs-1 {
          address   10.0.0.6:7790;
          device    /dev/drbd0;
          disk      /dev/vg_NFS/NWS;
          meta-disk internal;
       }
    }
    

    Creare il dispositivo drbd e avviarlo

    
    sudo drbdadm create-md NWS_nfs
    sudo drbdadm up NWS_nfs
    
  15. [1] Saltare la sincronizzazione iniziale

    
    sudo drbdadm new-current-uuid --clear-bitmap NWS_nfs
    
  16. [1] Impostare il nodo primario

    
    sudo drbdadm primary --force NWS_nfs
    
  17. [1] Attendere il completamento della sincronizzazione dei nuovi dispositivi drbd

    
    sudo cat /proc/drbd
    
    # version: 8.4.6 (api:1/proto:86-101)
    # GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by abuild@sheep14, 2016-05-09 23:14:56
    # 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    #    ns:0 nr:0 dw:0 dr:912 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
    
  18. [1] Creare i file system nei dispositivi drbd

    
    sudo mkfs.xfs /dev/drbd0
    

Configurare il framework del cluster

  1. [1] Modificare le impostazioni predefinite

    
    sudo crm configure
    
    crm(live)configure# rsc_defaults resource-stickiness="1"
    
    crm(live)configure# commit
    crm(live)configure# exit
    
  2. [1] Aggiungere il dispositivo drbd NFS alla configurazione del cluster

    
    sudo crm configure
    
    crm(live)configure# primitive drbd_NWS_nfs \
      ocf:linbit:drbd \
      params drbd_resource="NWS_nfs" \
      op monitor interval="15" role="Master" \
      op monitor interval="30" role="Slave"
    
    crm(live)configure# ms ms-drbd_NWS_nfs drbd_NWS_nfs \
      meta master-max="1" master-node-max="1" clone-max="2" \
      clone-node-max="1" notify="true" interleave="true"
    
    crm(live)configure# commit
    crm(live)configure# exit
    
  3. [1] Creare il server NFS

    
    sudo crm configure
    
    crm(live)configure# primitive nfsserver \
      systemd:nfs-server \
      op monitor interval="30s"
    
    crm(live)configure# clone cl-nfsserver nfsserver interleave="true"
    
    crm(live)configure# commit
    crm(live)configure# exit
    
  4. [1] Creare le risorse del file system NFS

    
    sudo crm configure
    
    crm(live)configure# primitive fs_NWS_sapmnt \
      ocf:heartbeat:Filesystem \
      params device=/dev/drbd0 \
      directory=/srv/nfs/NWS  \
      fstype=xfs \
      op monitor interval="10s"
    
    crm(live)configure# group g-NWS_nfs fs_NWS_sapmnt
    
    crm(live)configure# order o-NWS_drbd_before_nfs inf: \
      ms-drbd_NWS_nfs:promote g-NWS_nfs:start
    
    crm(live)configure# colocation col-NWS_nfs_on_drbd inf: \
      g-NWS_nfs ms-drbd_NWS_nfs:Master
    
    crm(live)configure# commit
    crm(live)configure# exit
    
  5. [1] Creare le esportazioni NFS

    
    sudo mkdir /srv/nfs/NWS/sidsys
    sudo mkdir /srv/nfs/NWS/sapmntsid
    sudo mkdir /srv/nfs/NWS/trans
    
    sudo crm configure
    
    crm(live)configure# primitive exportfs_NWS \
      ocf:heartbeat:exportfs \
      params directory="/srv/nfs/NWS" \
      options="rw,no_root_squash" \
      clientspec="*" fsid=0 \
      wait_for_leasetime_on_stop=true \
      op monitor interval="30s"
    
    crm(live)configure# modgroup g-NWS_nfs add exportfs_NWS
    
    crm(live)configure# commit
    crm(live)configure# exit
    
  6. [1] Creare una risorsa IP virtuale e un probe di integrità per il bilanciamento del carico interno

    
    sudo crm configure
    
    crm(live)configure# primitive vip_NWS_nfs IPaddr2 \
      params ip=10.0.0.4 cidr_netmask=24 \
      op monitor interval=10 timeout=20
    
    crm(live)configure# primitive nc_NWS_nfs anything \
      params binfile="/usr/bin/nc" cmdline_options="-l -k 61000" \
      op monitor timeout=20s interval=10 depth=0
    
    crm(live)configure# modgroup g-NWS_nfs add nc_NWS_nfs
    crm(live)configure# modgroup g-NWS_nfs add vip_NWS_nfs
    
    crm(live)configure# commit
    crm(live)configure# exit
    

Creare il dispositivo STONITH

Il dispositivo STONITH usa un'entità servizio per l'autorizzazione in Microsoft Azure. Per creare un'entità servizio, seguire questa procedura.

  1. Passare a https://portal.azure.com
  2. Aprire il pannello Azure Active Directory
    Passare a Proprietà e annotare l'ID directory. Si tratta dell'ID tenant.
  3. Fare clic su Registrazioni per l'app
  4. Fare clic su Aggiungi.
  5. Immettere un nome, selezionare il tipo di applicazione "App Web/API", immettere un URL di accesso (ad esempio http://localhost) e fare clic su Crea
  6. L'URL di accesso non viene usato e può essere qualsiasi URL valido
  7. Selezionare la nuova app e fare clic su Chiavi nella scheda Impostazioni
  8. Immettere una descrizione per una nuova chiave, selezionare "Non scade mai" e fare clic su Salva
  9. Annotare il valore. Viene usato come password per l'entità servizio
  10. Annotare l'ID applicazione. Viene usato come nome utente (ID di accesso nella procedura seguente) dell'entità servizio

L'entità servizio non ha le autorizzazioni per accedere alle risorse di Azure per impostazione predefinita. È necessario concedere all'entità servizio le autorizzazioni per avviare e arrestare (deallocare) tutte le macchine virtuali del cluster.

  1. Passare a https://portal.azure.com
  2. Aprire il pannello Tutte le risorse
  3. Selezionare la macchina virtuale
  4. Fare clic su Controllo di accesso (IAM)
  5. Fare clic su Aggiungi.
  6. Selezionare il ruolo Proprietario
  7. Immettere il nome dell'applicazione creata in precedenza
  8. Fare clic su OK.

[1] Creare il dispositivo STONITH

Dopo aver modificato le autorizzazioni per le macchine virtuali, è possibile configurare i dispositivi STONITH nel cluster.


sudo crm configure

# replace the bold string with your subscription id, resource group, tenant id, service principal id and password

crm(live)configure# primitive rsc_st_azure_1 stonith:fence_azure_arm \
   params subscriptionId="subscription id" resourceGroup="resource group" tenantId="tenant id" login="login id" passwd="password"

crm(live)configure# primitive rsc_st_azure_2 stonith:fence_azure_arm \
   params subscriptionId="subscription id" resourceGroup="resource group" tenantId="tenant id" login="login id" passwd="password"

crm(live)configure# colocation col_st_azure -2000: rsc_st_azure_1:Started rsc_st_azure_2:Started

crm(live)configure# commit
crm(live)configure# exit

[1] Abilitare l'uso di un dispositivo STONITH


sudo crm configure property stonith-enabled=true 

Configurazione di (A)SCS

Distribuzione di Linux

Azure Marketplace contiene un'immagine per SUSE Linux Enterprise Server for SAP Applications 12 che è possibile usare per distribuire nuove macchine virtuali. L'immagine del marketplace contiene l'agente delle risorse per SAP NetWeaver.

È possibile usare uno dei modelli di avvio rapido di GitHub per distribuire tutte le risorse necessarie. Il modello consente di distribuire le macchine virtuali, il servizio di bilanciamento del carico, il set di disponibilità e così via. Per distribuire il modello, seguire questi passaggi:

  1. Aprire il modello ASCS/SCS a più SID o il modello convergente nel portale di Azure. Il modello ASCS/SCS consente di creare solo le regole di bilanciamento del carico per le istanze ASCS/SCS e ERS di SAP NetWeaver (solo Linux), mentre il modello convergente crea anche le regole di bilanciamento del carico per un database, ad esempio Microsoft SQL Server o SAP HANA. Se si prevede di installare un sistema basato su SAP NetWeaver e si vuole installare anche il database nelle stesse macchine, usare il modello convergente.
  2. Immettere i parametri seguenti
    1. Prefisso di risorsa (solo modello ASCS/SCS a più SID)
      Immettere il prefisso che si vuole usare. Il valore viene usato come prefisso per le risorse distribuite.
    2. ID del sistema SAP (solo modello convergente)
      Immettere l'ID del sistema SAP che si vuole installare. L'ID viene usato come prefisso per le risorse distribuite.
    3. Tipo di stack
      Selezionare il tipo di stack SAP NetWeaver
    4. Tipo di sistema operativo
      Selezionare una delle distribuzioni Linux. Per questo esempio, selezionare SLES 12 BYOS
    5. Tipo di database
      Selezionare HANA
    6. Dimensioni del sistema SAP
      Quantità di SAPS forniti dal nuovo sistema. Se non si è certi del numero di SAPS necessari per il sistema, chiedere all'integratore di sistemi o al partner tecnologico SAP.
    7. Disponibilità del sistema
      Selezionare la disponibilità elevata.
    8. Nome utente e password amministratore
      Verrà creato un nuovo utente con cui è possibile accedere alla macchina
    9. ID subnet
      ID della subnet a cui devono essere connesse le macchine virtuali. Lasciare vuoto se si vuole creare una nuova rete virtuale o selezionare la stessa subnet usata o creata come parte della distribuzione del server NFS. L'ID in genere è simile al seguente: /subscriptions/<ID sottoscrizione>/resourceGroups/<nome gruppo risorse>/providers/Microsoft.Network/virtualNetworks/<nome rete virtuale>/subnets/<nome subnet>

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] Aggiornare SLES

    
    sudo zypper update
    
  2. [1] Abilitare l'accesso SSH

    
    sudo ssh-keygen -tdsa
    
    # Enter file in which to save the key (/root/.ssh/id_dsa): -> ENTER
    # Enter passphrase (empty for no passphrase): -> ENTER
    # Enter same passphrase again: -> ENTER
    
    # copy the public key
    sudo cat /root/.ssh/id_dsa.pub
    
  3. [2] Abilitare l'accesso SSH

    
    sudo ssh-keygen -tdsa
    
    # insert the public key you copied in the last step into the authorized keys file on the second server
    sudo vi /root/.ssh/authorized_keys
    
    # Enter file in which to save the key (/root/.ssh/id_dsa): -> ENTER
    # Enter passphrase (empty for no passphrase): -> ENTER
    # Enter same passphrase again: -> ENTER
    
    # copy the public key   
    sudo cat /root/.ssh/id_dsa.pub
    
  4. [1] Abilitare l'accesso SSH

    
    # insert the public key you copied in the last step into the authorized keys file on the first server
    sudo vi /root/.ssh/authorized_keys
    
  5. [A] Installare l'estensione per la disponibilità elevata

    
    sudo zypper install sle-ha-release fence-agents
    
  6. [A] Aggiornare gli agenti delle risorse SAP

    È necessaria una patch per il pacchetto degli agenti delle risorse per usare la nuova configurazione descritta in questo articolo. È 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 indicata nella pagina di download di SUSE

    
    # 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
    
  7. [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 NFS
    10.0.0.4 nws-nfs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS/SCS
    10.0.0.10 nws-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ERS
    10.0.0.11 nws-ers
    # IP address of the load balancer frontend configuration for database
    10.0.0.12 nws-db
    
  8. [1] Installare il cluster

    
    sudo ha-cluster-init
    
    # Do you want to continue anyway? [y/N] -> y
    # Network address to bind to (for example: 192.168.1.0) [10.79.227.0] -> ENTER
    # Multicast address (for example: 239.x.x.x) [239.174.218.125] -> ENTER
    # Multicast port [5405] -> ENTER
    # Do you wish to use SBD? [y/N] -> N
    # Do you wish to configure an administration IP? [y/N] -> N
    
  9. [2] Aggiungere un nodo al cluster

     
    sudo ha-cluster-join
    
    # WARNING: NTP is not configured to start at system boot.
    # WARNING: No watchdog device found. If SBD is used, the cluster will be unable to start without a watchdog.
    # Do you want to continue anyway? [y/N] -> y
    # IP address or hostname of existing node (for example: 192.168.1.1) [] -> IP address of node 1 for example 10.0.0.10
    # /root/.ssh/id_dsa already exists - overwrite? [y/N] N
    
  10. [A] Modificare la password hacluster in modo da usare la stessa password

     
    sudo passwd hacluster
    
  11. [A] Configurare corosync per usare un altro trasporto e aggiungere nodelist In caso contrario, il cluster non funzionerà.

     
    sudo vi /etc/corosync/corosync.conf   
    

    Aggiungere il seguente contenuto in grassetto nel file.

     
    [...]
      interface { 
         [...] 
      }
      transport:      udpu
    } 
    nodelist {
      node {
       # IP address of nws-cl-0
       ring0_addr:     10.0.0.14
      }
      node {
       # IP address of nws-cl-1
       ring0_addr:     10.0.0.13
      } 
    }
    logging {
      [...]
    

    Riavviare quindi il servizio corosync

    
    sudo service corosync restart
    
  12. [A] Installare i componenti drbd

    
    sudo zypper install drbd drbd-kmp-default drbd-utils
    
  13. [A] Creare una partizione per il dispositivo drbd

    
    sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/sdc'
    
  14. [A] Creare le configurazioni LVM

    
    sudo pvcreate /dev/sdc1   
    sudo vgcreate vg_NWS /dev/sdc1
    sudo lvcreate -l 50%FREE -n NWS_ASCS vg_NWS
    sudo lvcreate -l 50%FREE -n NWS_ERS vg_NWS
    
  15. [A] Creare il dispositivo drbd SCS

    
    sudo vi /etc/drbd.d/NWS_ascs.res
    

    Inserire la configurazione per il nuovo dispositivo drbd e uscire

    
    resource NWS_ascs {
       protocol     C;
       disk {
          on-io-error       pass_on;
       }
       on nws-cl-0 {
          address   10.0.0.14:7791;
          device    /dev/drbd0;
          disk      /dev/vg_NWS/NWS_ASCS;
          meta-disk internal;
       }
       on nws-cl-1 {
          address   10.0.0.13:7791;
          device    /dev/drbd0;
          disk      /dev/vg_NWS/NWS_ASCS;
          meta-disk internal;
       }
    }
    

    Creare il dispositivo drbd e avviarlo

    
    sudo drbdadm create-md NWS_ascs
    sudo drbdadm up NWS_ascs
    
  16. [A] Creare il dispositivo drbd ERS

    
    sudo vi /etc/drbd.d/NWS_ers.res
    

    Inserire la configurazione per il nuovo dispositivo drbd e uscire

    
    resource NWS_ers {
       protocol     C;
       disk {
          on-io-error       pass_on;
       }
       on nws-cl-0 {
          address   10.0.0.14:7792;
          device    /dev/drbd1;
          disk      /dev/vg_NWS/NWS_ERS;
          meta-disk internal;
       }
       on nws-cl-1 {
          address   10.0.0.13:7792;
          device    /dev/drbd1;
          disk      /dev/vg_NWS/NWS_ERS;
          meta-disk internal;
       }
    }
    

    Creare il dispositivo drbd e avviarlo

    
    sudo drbdadm create-md NWS_ers
    sudo drbdadm up NWS_ers
    
  17. [1] Saltare la sincronizzazione iniziale

    
    sudo drbdadm new-current-uuid --clear-bitmap NWS_ascs
    sudo drbdadm new-current-uuid --clear-bitmap NWS_ers
    
  18. [1] Impostare il nodo primario

    
    sudo drbdadm primary --force NWS_ascs
    sudo drbdadm primary --force NWS_ers
    
  19. [1] Attendere il completamento della sincronizzazione dei nuovi dispositivi drbd

    
    sudo cat /proc/drbd
    
    # version: 8.4.6 (api:1/proto:86-101)
    # GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by abuild@sheep14, 2016-05-09 23:14:56
    # 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    #     ns:93991268 nr:0 dw:93991268 dr:93944920 al:383 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
    # 1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    #     ns:6047920 nr:0 dw:6047920 dr:6039112 al:34 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
    # 2: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    #     ns:5142732 nr:0 dw:5142732 dr:5133924 al:30 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
    
  20. [1] Creare i file system nei dispositivi drbd

    
    sudo mkfs.xfs /dev/drbd0
    sudo mkfs.xfs /dev/drbd1
    

Configurare il framework del cluster

[1] Modificare le impostazioni predefinite


   sudo crm configure

   crm(live)configure# rsc_defaults resource-stickiness="1"

   crm(live)configure# commit
   crm(live)configure# exit
   

Prepararsi per l'installazione di SAP NetWeaver

  1. [A] Creare le directory condivise

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

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

    Creare un file con

    
    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/NWS -nfsvers=4,nosymlink,sync nws-nfs:/sapmntsid
    /usr/sap/trans -nfsvers=4,nosymlink,sync nws-nfs:/trans
    /usr/sap/NWS/SYS -nfsvers=4,nosymlink,sync nws-nfs:/sidsys
    

    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
    
    # 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 il bilanciamento del carico interno

    
    sudo crm node standby nws-cl-1
    sudo crm configure
    
    crm(live)configure# primitive drbd_NWS_ASCS \
      ocf:linbit:drbd \
      params drbd_resource="NWS_ascs" \
      op monitor interval="15" role="Master" \
      op monitor interval="30" role="Slave"
    
    crm(live)configure# ms ms-drbd_NWS_ASCS drbd_NWS_ASCS \
      meta master-max="1" master-node-max="1" clone-max="2" \
      clone-node-max="1" notify="true"
    
    crm(live)configure# primitive fs_NWS_ASCS \
      ocf:heartbeat:Filesystem \
      params device=/dev/drbd0 \
      directory=/usr/sap/NWS/ASCS00  \
      fstype=xfs \
      op monitor interval="10s"
    
    crm(live)configure# primitive vip_NWS_ASCS IPaddr2 \
      params ip=10.0.0.10 cidr_netmask=24 \
      op monitor interval=10 timeout=20
    
    crm(live)configure# primitive nc_NWS_ASCS anything \
      params binfile="/usr/bin/nc" cmdline_options="-l -k 62000" \
      op monitor timeout=20s interval=10 depth=0
    
    crm(live)configure# group g-NWS_ASCS nc_NWS_ASCS vip_NWS_ASCS fs_NWS_ASCS \
       meta resource-stickiness=3000
    
    crm(live)configure# order o-NWS_drbd_before_ASCS inf: \
      ms-drbd_NWS_ASCS:promote g-NWS_ASCS:start
    
    crm(live)configure# colocation col-NWS_ASCS_on_drbd inf: \
      ms-drbd_NWS_ASCS:Master g-NWS_ASCS
    
    crm(live)configure# commit
    crm(live)configure# exit
    

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

    
    sudo crm_mon -r
    
    # Node nws-cl-1: standby
    # Online: [ nws-cl-0 ]
    # 
    # Full list of resources:
    # 
    #  Master/Slave Set: ms-drbd_NWS_ASCS [drbd_NWS_ASCS]
    #      Masters: [ nws-cl-0 ]
    #      Stopped: [ nws-cl-1 ]
    #  Resource Group: g-NWS_ASCS
    #      nc_NWS_ASCS        (ocf::heartbeat:anything):      Started nws-cl-0
    #      vip_NWS_ASCS       (ocf::heartbeat:IPaddr2):       Started nws-cl-0
    #      fs_NWS_ASCS        (ocf::heartbeat:Filesystem):    Started nws-cl-0
    
  2. [1] Installare SAP NetWeaver ASCS

    Installare SAP NetWeaver ASCS come root 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 nws ascs, 10.0.0.10 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.

    
    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [1] Creare una risorsa IP virtuale e un probe di integrità per il bilanciamento del carico interno

    
    sudo crm node standby nws-cl-0
    sudo crm node online nws-cl-1
    sudo crm configure
    
    crm(live)configure# primitive drbd_NWS_ERS \
      ocf:linbit:drbd \
      params drbd_resource="NWS_ers" \
      op monitor interval="15" role="Master" \
      op monitor interval="30" role="Slave"
    
    crm(live)configure# ms ms-drbd_NWS_ERS drbd_NWS_ERS \
      meta master-max="1" master-node-max="1" clone-max="2" \
      clone-node-max="1" notify="true"
    
    crm(live)configure# primitive fs_NWS_ERS \
      ocf:heartbeat:Filesystem \
      params device=/dev/drbd1 \
      directory=/usr/sap/NWS/ERS02  \
      fstype=xfs \
      op monitor interval="10s"
    
    crm(live)configure# primitive vip_NWS_ERS IPaddr2 \
      params ip=10.0.0.11 cidr_netmask=24 \
      op monitor interval=10 timeout=20
    
    crm(live)configure# primitive nc_NWS_ERS anything \
     params binfile="/usr/bin/nc" cmdline_options="-l -k 62102" \
     op monitor timeout=20s interval=10 depth=0
    
    crm(live)configure# group g-NWS_ERS nc_NWS_ERS vip_NWS_ERS fs_NWS_ERS
    
    crm(live)configure# order o-NWS_drbd_before_ERS inf: \
      ms-drbd_NWS_ERS:promote g-NWS_ERS:start
    
    crm(live)configure# colocation col-NWS_ERS_on_drbd inf: \
      ms-drbd_NWS_ERS:Master g-NWS_ERS
    
    crm(live)configure# commit
    # WARNING: Resources nc_NWS_ASCS,nc_NWS_ERS,nc_NWS_nfs violate uniqueness for parameter "binfile": "/usr/bin/nc"
    # Do you still want to commit (y/n)? y
    
    crm(live)configure# exit
    
    

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

    
    sudo crm_mon -r
    
    # Node nws-cl-0: standby
    # Online: [ nws-cl-1 ]
    # 
    # Full list of resources:
    # 
    #  Master/Slave Set: ms-drbd_NWS_ASCS [drbd_NWS_ASCS]
    #      Masters: [ nws-cl-1 ]
    #      Stopped: [ nws-cl-0 ]
    #  Resource Group: g-NWS_ASCS
    #      nc_NWS_ASCS        (ocf::heartbeat:anything):      Started nws-cl-1
    #      vip_NWS_ASCS       (ocf::heartbeat:IPaddr2):       Started nws-cl-1
    #      fs_NWS_ASCS        (ocf::heartbeat:Filesystem):    Started nws-cl-1
    #  Master/Slave Set: ms-drbd_NWS_ERS [drbd_NWS_ERS]
    #      Masters: [ nws-cl-1 ]
    #      Stopped: [ nws-cl-0 ]
    #  Resource Group: g-NWS_ERS
    #      nc_NWS_ERS (ocf::heartbeat:anything):      Started nws-cl-1
    #      vip_NWS_ERS        (ocf::heartbeat:IPaddr2):       Started nws-cl-1
    #      fs_NWS_ERS (ocf::heartbeat:Filesystem):    Started nws-cl-1
    
  4. [2] Installare SAP NetWeaver ERS

    Installare SAP NetWeaver ERS come root nel secondo nodo usando un nome host virtuale mappato all'indirizzo IP della configurazione front-end di bilanciamento del carico per ERS, ad esempio nws-ers, 10.0.0.11 e il numero di istanza usato per il probe del 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.

    
    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
    Nota

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

  5. [1] Adattare i profili di istanza ASCS/SCS e ERS

    • Profilo ASCS/SCS
     
    sudo vi /sapmnt/NWS/profile/NWS_ASCS00_nws-ascs
    
    # 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
    enque/encni/set_so_keepalive = true
    
    • Profilo ERS
     
    sudo vi /sapmnt/NWS/profile/NWS_ERS02_nws-ers
    
    # Add the following lines
    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
  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 questo comportamento, è necessario impostare un parametro nel profilo ASCS/SCS di SAP NetWeaver e modificare le impostazioni di sistema di Linux. Per altre informazioni, leggere la nota SAP 1410736.

    Il parametro del profilo ASCS/SCS enque/encni/set_so_keepalive è già stato aggiunto nell'ultimo passaggio.

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

    
    # Add sidadm to the haclient group
    sudo usermod -aG haclient nwsadm   
    
  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 nws-cl-1 "cat >>/usr/sap/sapservices"
    sudo ssh nws-cl-1 "cat /usr/sap/sapservices" | grep ERS02 | sudo tee -a /usr/sap/sapservices
    
  9. [1] Creare le risorse del cluster SAP

    
    sudo crm configure property maintenance-mode="true"
    
    sudo crm configure
    
    crm(live)configure# primitive rsc_sap_NWS_ASCS00 SAPInstance \
     operations $id=rsc_sap_NWS_ASCS00-operations \
     op monitor interval=11 timeout=60 on_fail=restart \
     params InstanceName=NWS_ASCS00_nws-ascs START_PROFILE="/sapmnt/NWS/profile/NWS_ASCS00_nws-ascs" \
     AUTOMATIC_RECOVER=false \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    crm(live)configure# primitive rsc_sap_NWS_ERS02 SAPInstance \
     operations $id=rsc_sap_NWS_ERS02-operations \
     op monitor interval=11 timeout=60 on_fail=restart \
     params InstanceName=NWS_ERS02_nws-ers START_PROFILE="/sapmnt/NWS/profile/NWS_ERS02_nws-ers" AUTOMATIC_RECOVER=false IS_ERS=true \
     meta priority=1000
    
    crm(live)configure# modgroup g-NWS_ASCS add rsc_sap_NWS_ASCS00
    crm(live)configure# modgroup g-NWS_ERS add rsc_sap_NWS_ERS02
    
    crm(live)configure# colocation col_sap_NWS_no_both -5000: g-NWS_ERS g-NWS_ASCS
    crm(live)configure# location loc_sap_NWS_failover_to_ers rsc_sap_NWS_ASCS00 rule 2000: runs_ers_NWS eq 1
    crm(live)configure# order ord_sap_NWS_first_start_ascs Optional: rsc_sap_NWS_ASCS00:start rsc_sap_NWS_ERS02:stop symmetrical=false
    
    crm(live)configure# commit
    crm(live)configure# exit
    
    sudo crm configure property maintenance-mode="false"
    sudo crm node online nws-cl-0
    

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

    
    sudo crm_mon -r
    
    # Online: [ nws-cl-0 nws-cl-1 ]
    # 
    # Full list of resources:
    # 
    #  Master/Slave Set: ms-drbd_NWS_ASCS [drbd_NWS_ASCS]
    #      Masters: [ nws-cl-0 ]
    #      Slaves: [ nws-cl-1 ]
    #  Resource Group: g-NWS_ASCS
    #      nc_NWS_ASCS        (ocf::heartbeat:anything):      Started nws-cl-0
    #      vip_NWS_ASCS       (ocf::heartbeat:IPaddr2):       Started nws-cl-0
    #      fs_NWS_ASCS        (ocf::heartbeat:Filesystem):    Started nws-cl-0
    #      rsc_sap_NWS_ASCS00 (ocf::heartbeat:SAPInstance):   Started nws-cl-0
    #  Master/Slave Set: ms-drbd_NWS_ERS [drbd_NWS_ERS]
    #      Masters: [ nws-cl-1 ]
    #      Slaves: [ nws-cl-0 ]
    #  Resource Group: g-NWS_ERS
    #      nc_NWS_ERS (ocf::heartbeat:anything):      Started nws-cl-1
    #      vip_NWS_ERS        (ocf::heartbeat:IPaddr2):       Started nws-cl-1
    #      fs_NWS_ERS (ocf::heartbeat:Filesystem):    Started nws-cl-1
    #      rsc_sap_NWS_ERS02  (ocf::heartbeat:SAPInstance):   Started nws-cl-1
    

Creare il dispositivo STONITH

Il dispositivo STONITH usa un'entità servizio per l'autorizzazione in Microsoft Azure. Per creare un'entità servizio, seguire questa procedura.

  1. Passare a https://portal.azure.com
  2. Aprire il pannello Azure Active Directory
    Passare a Proprietà e annotare l'ID directory. Si tratta dell'ID tenant.
  3. Fare clic su Registrazioni per l'app
  4. Fare clic su Aggiungi.
  5. Immettere un nome, selezionare il tipo di applicazione "App Web/API", immettere un URL di accesso (ad esempio http://localhost) e fare clic su Crea
  6. L'URL di accesso non viene usato e può essere qualsiasi URL valido
  7. Selezionare la nuova app e fare clic su Chiavi nella scheda Impostazioni
  8. Immettere una descrizione per una nuova chiave, selezionare "Non scade mai" e fare clic su Salva
  9. Annotare il valore. Viene usato come password per l'entità servizio
  10. Annotare l'ID applicazione. Viene usato come nome utente (ID di accesso nella procedura seguente) dell'entità servizio

L'entità servizio non ha le autorizzazioni per accedere alle risorse di Azure per impostazione predefinita. È necessario concedere all'entità servizio le autorizzazioni per avviare e arrestare (deallocare) tutte le macchine virtuali del cluster.

  1. Passare a https://portal.azure.com
  2. Aprire il pannello Tutte le risorse
  3. Selezionare la macchina virtuale
  4. Fare clic su Controllo di accesso (IAM)
  5. Fare clic su Aggiungi.
  6. Selezionare il ruolo Proprietario
  7. Immettere il nome dell'applicazione creata in precedenza
  8. Fare clic su OK.

[1] Creare il dispositivo STONITH

Dopo aver modificato le autorizzazioni per le macchine virtuali, è possibile configurare i dispositivi STONITH nel cluster.


sudo crm configure

# replace the bold string with your subscription id, resource group, tenant id, service principal id and password

crm(live)configure# primitive rsc_st_azure_1 stonith:fence_azure_arm \
   params subscriptionId="subscription id" resourceGroup="resource group" tenantId="tenant id" login="login id" passwd="password"

crm(live)configure# primitive rsc_st_azure_2 stonith:fence_azure_arm \
   params subscriptionId="subscription id" resourceGroup="resource group" tenantId="tenant id" login="login id" passwd="password"

crm(live)configure# colocation col_st_azure -2000: rsc_st_azure_1:Started rsc_st_azure_2:Started

crm(live)configure# commit
crm(live)configure# exit

[1] Abilitare l'uso di un dispositivo STONITH

Abilitare l'uso di un dispositivo STONITH


sudo crm configure property stonith-enabled=true 

Installare il database

In questo esempio viene installata e configurata una replica di sistema di SAP HANA. SAP HANA verrà eseguito nello stesso cluster di SAP NetWeaver ASCS/SCS ed ERS. È anche possibile installare SAP HANA in un cluster dedicato. Per altre informazioni, vedere Disponibilità elevata di SAP HANA in macchine virtuali di Azure (VM).

Prepararsi per l'installazione di SAP HANA

È in genere consigliabile usare LVM per i volumi che archiviano i dati e file di log. A scopo di test, è anche possibile scegliere di archiviare i dati e i file di log direttamente in un disco normale.

  1. [A] LVM
    L'esempio seguente presuppone che le macchine virtuali abbiano quattro dischi dati collegati che devono essere usati per creare due volumi.

    Creare i volumi fisici per tutti i dischi da usare.

    
    sudo pvcreate /dev/sdd
    sudo pvcreate /dev/sde
    sudo pvcreate /dev/sdf
    sudo pvcreate /dev/sdg
    

    Creare un gruppo di volumi per i file di dati, un gruppo di volumi per i file di log e uno per la directory condivisa di SAP HANA

    
    sudo vgcreate vg_hana_data /dev/sdd /dev/sde
    sudo vgcreate vg_hana_log /dev/sdf
    sudo vgcreate vg_hana_shared /dev/sdg
    

    Creare i volumi logici

    
    sudo lvcreate -l 100%FREE -n hana_data vg_hana_data
    sudo lvcreate -l 100%FREE -n hana_log vg_hana_log
    sudo lvcreate -l 100%FREE -n hana_shared vg_hana_shared
    sudo mkfs.xfs /dev/vg_hana_data/hana_data
    sudo mkfs.xfs /dev/vg_hana_log/hana_log
    sudo mkfs.xfs /dev/vg_hana_shared/hana_shared
    

    Creare le directory di montaggio e copiare l'UUID di tutti i volumi logici

    
    sudo mkdir -p /hana/data
    sudo mkdir -p /hana/log
    sudo mkdir -p /hana/shared
    sudo chattr +i /hana/data
    sudo chattr +i /hana/log
    sudo chattr +i /hana/shared
    # write down the id of /dev/vg_hana_data/hana_data, /dev/vg_hana_log/hana_log and /dev/vg_hana_shared/hana_shared
    sudo blkid
    

    Creare voci autofs per i tre volumi logici

    
    sudo vi /etc/auto.direct
    

    Inserire questa riga in sudo vi /etc/auto.direct

    
    /hana/data -fstype=xfs :UUID=<UUID of /dev/vg_hana_data/hana_data>
    /hana/log -fstype=xfs :UUID=<UUID of /dev/vg_hana_log/hana_log>
    /hana/shared -fstype=xfs :UUID=<UUID of /dev/vg_hana_shared/hana_shared>
    

    Montare i nuovi volumi

    
    sudo service autofs restart 
    
  2. [A] Dischi normali

    Per sistemi demo o di piccole dimensioni, è possibile inserire i dati e i file di log HANA su un disco. I comandi seguenti creano una partizione in /dev/sdc e la formattano con XFS.

    sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/sdd'
    sudo mkfs.xfs /dev/sdd1
    
    # write down the id of /dev/sdd1
    sudo /sbin/blkid
    sudo vi /etc/auto.direct
    

    Inserire questa riga in /etc/auto.direct

    
    /hana -fstype=xfs :UUID=<UUID>
    

    Creare la directory di destinazione e montare il disco.

    
    sudo mkdir /hana
    sudo chattr +i /hana
    sudo service autofs restart
    

Installazione di SAP HANA

I passaggi seguenti sono basati sul capitolo 4 della guida SAP HANA SR Performance Optimized Scenario (Scenario di ottimizzazione delle prestazioni di SAP HANA SR) per installare la replica di sistema di SAP HANA. È consigliabile leggerlo prima di continuare l'installazione.

  1. [A] Eseguire hdblcm dal DVD di HANA

    
    sudo hdblcm --sid=HDB --number=03 --action=install --batch --password=<password> --system_user_password=<password for system user>
    
    sudo /hana/shared/HDB/hdblcm/hdblcm --action=configure_internal_network --listen_interface=internal --internal_network=10.0.0/24 --password=<password for system user> --batch
    
  2. [A] Aggiornare l'agente host SAP

    Scaricare l'archivio dell'agente host SAP più recente dal sito SAP Softwarecenter ed eseguire il comando seguente per aggiornare l'agente. Sostituire il percorso dell'archivio in modo da puntare al file scaricato.

    
    sudo /usr/sap/hostctrl/exe/saphostexec -upgrade -archive <path to SAP Host Agent SAR> 
    
  3. [1] Creare la replica HANA (come root)

    Eseguire il comando indicato di seguito. Assicurarsi di sostituire le stringhe in grassetto (ID di sistema HANA HDB e numero di istanza 03) con i valori dell'installazione di SAP HANA.

    
    PATH="$PATH:/usr/sap/HDB/HDB03/exe"
    hdbsql -u system -i 03 'CREATE USER hdbhasync PASSWORD "passwd"' 
    hdbsql -u system -i 03 'GRANT DATA ADMIN TO hdbhasync' 
    hdbsql -u system -i 03 'ALTER USER hdbhasync DISABLE PASSWORD LIFETIME' 
    
  4. [A] Creare una voce di archivio chiavi (come root)

    
    PATH="$PATH:/usr/sap/HDB/HDB03/exe"
    hdbuserstore SET hdbhaloc localhost:30315 hdbhasync <passwd>
    
  5. [1] Eseguire il backup del database (come root)

    
    PATH="$PATH:/usr/sap/HDB/HDB03/exe"
    hdbsql -u system -i 03 "BACKUP DATA USING FILE ('initialbackup')" 
    
  6. [1] Passare all'utente sapsid HANA e creare il sito primario.

    
    su - hdbadm
    hdbnsutil -sr_enable –-name=SITE1
    
  7. [2] Passare all'utente sapsid HANA e creare il sito secondario.

    
    su - hdbadm
    sapcontrol -nr 03 -function StopWait 600 10
    hdbnsutil -sr_register --remoteHost=nws-cl-0 --remoteInstance=03 --replicationMode=sync --name=SITE2 
    
  8. [1] Creare le risorse del cluster SAP HANA

    Prima di tutto, creare la topologia.

    
    sudo crm configure
    
    # replace the bold string with your instance number and HANA system id
    
    crm(live)configure# primitive rsc_SAPHanaTopology_HDB_HDB03   ocf:suse:SAPHanaTopology \
      operations $id="rsc_sap2_HDB_HDB03-operations" \
      op monitor interval="10" timeout="600" \
      op start interval="0" timeout="600" \
      op stop interval="0" timeout="300" \
      params SID="HDB" InstanceNumber="03"
    
    crm(live)configure# clone cln_SAPHanaTopology_HDB_HDB03 rsc_SAPHanaTopology_HDB_HDB03 \
      meta is-managed="true" clone-node-max="1" target-role="Started" interleave="true"
    
    crm(live)configure# commit
    crm(live)configure# exit
    

    Creare poi le risorse SAP HANA

    
    sudo crm configure
    
    # replace the bold string with your instance number, HANA system id and the frontend IP address of the Azure load balancer. 
    
    crm(live)configure# primitive rsc_SAPHana_HDB_HDB03 ocf:suse:SAPHana \
      operations $id="rsc_sap_HDB_HDB03-operations" \
      op start interval="0" timeout="3600" \
      op stop interval="0" timeout="3600" \
      op promote interval="0" timeout="3600" \
      op monitor interval="60" role="Master" timeout="700" \
      op monitor interval="61" role="Slave" timeout="700" \
      params SID="HDB" InstanceNumber="03" PREFER_SITE_TAKEOVER="true" \
      DUPLICATE_PRIMARY_TIMEOUT="7200" AUTOMATED_REGISTER="false"
    
    crm(live)configure# ms msl_SAPHana_HDB_HDB03 rsc_SAPHana_HDB_HDB03 \
      meta is-managed="true" notify="true" clone-max="2" clone-node-max="1" \
      target-role="Started" interleave="true"
    
    crm(live)configure# primitive rsc_ip_HDB_HDB03 ocf:heartbeat:IPaddr2 \ 
      meta target-role="Started" is-managed="true" \ 
      operations $id="rsc_ip_HDB_HDB03-operations" \ 
      op monitor interval="10s" timeout="20s" \ 
      params ip="10.0.0.12" 
    
    crm(live)configure# primitive rsc_nc_HDB_HDB03 anything \ 
      params binfile="/usr/bin/nc" cmdline_options="-l -k 62503" \ 
      op monitor timeout=20s interval=10 depth=0 
    
    crm(live)configure# group g_ip_HDB_HDB03 rsc_ip_HDB_HDB03 rsc_nc_HDB_HDB03
    
    crm(live)configure# colocation col_saphana_ip_HDB_HDB03 2000: g_ip_HDB_HDB03:Started \ 
      msl_SAPHana_HDB_HDB03:Master  
    
    crm(live)configure# order ord_SAPHana_HDB_HDB03 2000: cln_SAPHanaTopology_HDB_HDB03 \ 
      msl_SAPHana_HDB_HDB03
    
    crm(live)configure# commit
    crm(live)configure# exit
    

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

    
    sudo crm_mon -r
    
    # Online: [ nws-cl-0 nws-cl-1 ]
    # 
    # Full list of resources:
    # 
    #  Master/Slave Set: ms-drbd_NWS_ASCS [drbd_NWS_ASCS]
    #      Masters: [ nws-cl-1 ]
    #      Slaves: [ nws-cl-0 ]
    #  Resource Group: g-NWS_ASCS
    #      nc_NWS_ASCS        (ocf::heartbeat:anything):      Started nws-cl-1
    #      vip_NWS_ASCS       (ocf::heartbeat:IPaddr2):       Started nws-cl-1
    #      fs_NWS_ASCS        (ocf::heartbeat:Filesystem):    Started nws-cl-1
    #      rsc_sap_NWS_ASCS00 (ocf::heartbeat:SAPInstance):   Started nws-cl-1
    #  Master/Slave Set: ms-drbd_NWS_ERS [drbd_NWS_ERS]
    #      Masters: [ nws-cl-0 ]
    #      Slaves: [ nws-cl-1 ]
    #  Resource Group: g-NWS_ERS
    #      nc_NWS_ERS (ocf::heartbeat:anything):      Started nws-cl-0
    #      vip_NWS_ERS        (ocf::heartbeat:IPaddr2):       Started nws-cl-0
    #      fs_NWS_ERS (ocf::heartbeat:Filesystem):    Started nws-cl-0
    #      rsc_sap_NWS_ERS02  (ocf::heartbeat:SAPInstance):   Started nws-cl-0
    #  Clone Set: cln_SAPHanaTopology_HDB_HDB03 [rsc_SAPHanaTopology_HDB_HDB03]
    #      Started: [ nws-cl-0 nws-cl-1 ]
    #  Master/Slave Set: msl_SAPHana_HDB_HDB03 [rsc_SAPHana_HDB_HDB03]
    #      Masters: [ nws-cl-0 ]
    #      Slaves: [ nws-cl-1 ]
    #  Resource Group: g_ip_HDB_HDB03
    #      rsc_ip_HDB_HDB03   (ocf::heartbeat:IPaddr2):       Started nws-cl-0
    #      rsc_nc_HDB_HDB03   (ocf::heartbeat:anything):      Started nws-cl-0
    # rsc_st_azure_1  (stonith:fence_azure_arm):      Started nws-cl-0
    # rsc_st_azure_2  (stonith:fence_azure_arm):      Started nws-cl-1
    
  9. [1] Installare l'istanza del database di SAP NetWeaver

    Installare l'istanza del database di SAP NetWeaver come root usando un nome host virtuale mappato all'indirizzo IP della configurazione front-end di bilanciamento del carico per il database, ad esempio nws-db e 10.0.0.12.

    È 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. I passaggi seguenti presuppongono che il server applicazioni venga installato in un server diverso dai server ASCS/SCS e HANA. Diversamente, alcuni dei passaggi seguenti non sono necessari, ad esempio la configurazione della risoluzione dei nomi host.

  1. 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 NFS
    10.0.0.4 nws-nfs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS/SCS
    10.0.0.10 nws-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ERS
    10.0.0.11 nws-ers
    # IP address of the load balancer frontend configuration for database
    10.0.0.12 nws-db
    # IP address of the application server
    10.0.0.8 nws-di-0
    
  2. Creare la directory sapmnt

    
    sudo mkdir -p /sapmnt/NWS
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NWS
    sudo chattr +i /usr/sap/trans
    
  3. Configurare autofs

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

    Creare un nuovo file con

    
    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/NWS -nfsvers=4,nosymlink,sync nws-nfs:/sapmntsid
    /usr/sap/trans -nfsvers=4,nosymlink,sync nws-nfs:/trans
    

    Riavviare autofs per montare le nuove condivisioni

    
    sudo systemctl enable autofs
    sudo service autofs restart
    
  4. 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
    
  5. Installare il 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
    
  6. 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.

    
    su - nwsadm
    hdbuserstore SET DEFAULT nws-db:30315 SAPABAP1 <password of ABAP schema>
    

Passaggi successivi