Disponibilità elevata di SAP HANA in Macchine virtuali di Azure (VM)

In locale è possibile usare la replica di sistema HANA oppure l'archiviazione condivisa per stabilire la disponibilità elevata per SAP HANA. Attualmente è supportata solo l'impostazione della replica di sistema HANA in Azure. La replica SAP HANA è costituita da un nodo master e almeno un nodo slave. Le modifiche ai dati nel nodo master vengono replicate nei nodi slave in modo sincrono o asincrono.

Questo articolo descrive come distribuire le macchine virtuali, configurare le macchine virtuali, installare il framework del cluster e installare e configurare la replica di sistema SAP HANA. Nelle configurazioni di esempio, nei comandi di installazione e così via vengono usati il numero di istanza 03 e l'ID di sistema HANA HDB.

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 ottimizzato per le 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.

Distribuzione di Linux

L'agente delle risorse per SAP HANA è incluso in SUSE Linux Enterprise Server for SAP Applications. Azure Marketplace contiene un'immagine per SUSE Linux Enterprise Server for SAP Applications 12 con BYOS (Bring Your Own Subscription) che è possibile usare per distribuire nuove macchine virtuali.

Distribuzione manuale

  1. Creare un gruppo di risorse
  2. Creare una rete virtuale
  3. Creare due account di archiviazione
  4. Creare un set di disponibilità
    Impostare il numero massimo di domini di aggiornamento
  5. Creare un servizio di bilanciamento del carico (interno)
    Selezionare la rete virtuale del passaggio precedente
  6. Creare la macchina virtuale 1
    https://portal.azure.com/#create/suse-byos.sles-for-sap-byos12-sp1
    SLES For SAP Applications 12 SP1 (BYOS)
    Selezionare l'account di archiviazione 1
    Selezionare il set di disponibilità
  7. Creare la macchina virtuale 2
    https://portal.azure.com/#create/suse-byos.sles-for-sap-byos12-sp1
    SLES For SAP Applications 12 SP1 (BYOS)
    Selezionare l'account di archiviazione 2
    Selezionare il set di disponibilità
  8. Aggiungere dischi dati
  9. Configurare il servizio di bilanciamento del carico
    1. Creare un pool di indirizzi IP front-end
      1. Aprire il servizio di bilanciamento del carico, selezionare Pool di indirizzi IP front-end e fare clic su Aggiungi
      2. Immettere il nome del nuovo pool di indirizzi IP front-end (ad esempio, hana-frontend)
        1. Fare clic su OK.
      3. Dopo aver creato il nuovo pool di indirizzi IP front-end, annotare il relativo indirizzo IP
    2. Creare un pool back-end
      1. Aprire il servizio di bilanciamento del carico, selezionare Pool back-end e fare clic su Aggiungi
      2. Immettere il nome del nuovo pool back-end (ad esempio, hana-backend)
      3. Fare clic su Aggiungi una macchina virtuale
      4. Selezionare il set di disponibilità creato in precedenza
      5. Selezionare le macchine virtuali del cluster SAP HANA
      6. Fare clic su OK.
    3. Creare un probe di integrità
      1. Aprire il servizio di bilanciamento del carico, selezionare Probe integrità e fare clic su Aggiungi
        1. Immettere il nome del nuovo probe integrità (ad esempio, hana-hp)
        2. Selezionare TCP come protocollo, la porta 62503, mantenere 5 per Intervallo e impostare il valore di Soglia di non integrità su 2
        3. Fare clic su OK.
    4. Creare le regole di bilanciamento del carico
      1. Aprire il servizio di bilanciamento del carico, selezionare Regole di bilanciamento del carico e fare clic su Aggiungi
      2. Immettere il nome della nuova regola di bilanciamento del carico (ad esempio, hana-lb-30315)
      3. Selezionare l'indirizzo IP front-end, il pool back-end e il probe integrità creati in precedenza (ad esempio, hana-frontend)
      4. Mantenere il protocollo TCP, immettere la porta 30315
      5. Aumentare il timeout di inattività a 30 minuti
        1. Assicurarsi di abilitare l'indirizzo IP mobile
      6. Fare clic su OK.
      7. Ripetere i passaggi precedenti per la porta 30317

Eseguire la distribuzione con un modello

È 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 database o il modello con convergenza nel portale di Azure. Il modello di database consente di creare solo le regole di bilanciamento del carico per un database, mentre il modello con convergenza crea anche le regole di bilanciamento del carico per un'istanza di ASCS/SCS ed ERS (solo Linux). Se si prevede di installare un sistema basato su SAP NetWeaver e si vuole installare anche l'istanza di ASCS/SCS nelle stesse macchine, usare il modello con convergenza.
  2. Immettere i parametri seguenti
    1. ID sistema SAP
      Immettere l'ID del sistema SAP che si vuole installare. L'ID verrà usato come prefisso per le risorse distribuite.
    2. Tipo di stack (applicabile solo se si usa il modello con convergenza)
      Selezionare il tipo di stack SAP NetWeaver
    3. Tipo di sistema operativo
      Selezionare una delle distribuzioni Linux. Per questo esempio, selezionare SLES 12 BYOS
    4. Tipo di database
      Selezionare HANA
    5. 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
    6. Disponibilità del sistema
      Selezionare la disponibilità elevata.
    7. Nome utente e password amministratore
      Verrà creato un nuovo utente con cui è possibile accedere alla macchina
    8. Subnet nuova o esistente
      Determina se devono essere create una nuova rete virtuale e una nuova subnet o deve essere usata una subnet esistente. Se è già presente una rete virtuale connessa alla rete locale, selezionare "existing".
    9. ID subnet
      ID della subnet a cui devono essere connesse le macchine virtuali. Selezionare la subnet della rete virtuale Express Route o VPN per connettere la macchina virtuale alla rete locale. L'ID si presenta in genere come segue: /subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/<virtual network name>/subnets/<subnet name>

Configurazione della disponibilità elevata di Linux

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] Solo SLES per SAP BYOS - Registrare SLES per poter usare i repository
  2. [A] Solo SLES per SAP BYOS - Aggiungere il modulo cloud pubblico
  3. [A] Aggiornare SLES

    sudo zypper update
    
  4. [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
    
  5. [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
    
  6. [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
    
  7. [A] Installare l'estensione per la disponibilità elevata

    sudo zypper install sle-ha-release fence-agents
    
  8. [A] Configurare il layout dei dischi

    1. LVM
      In genere è consigliabile usare LVM per i volumi che archiviano i dati e file di log. 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/sdc
        sudo pvcreate /dev/sdd
        sudo pvcreate /dev/sde
        sudo pvcreate /dev/sdf
        
      • 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/sdc /dev/sdd
        sudo vgcreate vg_hana_log /dev/sde
        sudo vgcreate vg_hana_shared /dev/sdf
        
      • 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
        # 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 fstab per i tre volumi logici
        
        sudo vi /etc/fstab
        
        Inserire questa riga in /etc/fstab
        
        /dev/disk/by-uuid/<UUID of /dev/vg_hana_data/hana_data> /hana/data xfs  defaults,nofail  0  2
        /dev/disk/by-uuid/<UUID of /dev/vg_hana_log/hana_log> /hana/log xfs  defaults,nofail  0  2
        /dev/disk/by-uuid/<UUID of /dev/vg_hana_shared/hana_shared> /hana/shared xfs  defaults,nofail  0  2
        
      • Montare i nuovi volumi
        
        sudo mount -a
        
    2. 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 fdisk /dev/sdc
      sudo mkfs.xfs /dev/sdc1
      
      # <a name="write-down-the-id-of-devsdc1"></a>Annotare l'ID di /dev/sdc1
      sudo /sbin/blkid sudo vi /etc/fstab
      

      Insert this line to /etc/fstab

      
      /dev/disk/by-uuid/<UUID> /hana xfs  defaults,nofail  0  2
      

      Create the target directory and mount the disk.

      sudo mkdir /hana
      sudo mount -a
      
  9. [A] Configurare la risoluzione dei nomi host per tutti gli 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 host 1> <hostname of host 1>
     <IP address of host 2> <hostname of host 2>
     
  10. [1] Installare il cluster

    sudo ha-cluster-init
    
    # Do you want to continue anyway? [y/N] -> y
    # Network address to bind to (e.g.: 192.168.1.0) [10.79.227.0] -> ENTER
    # Multicast address (e.g.: 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
    
  11. [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 (e.g.: 192.168.1.1) [] -> IP address of node 1 e.g. 10.0.0.5
    # /root/.ssh/id_dsa already exists - overwrite? [y/N] N
    
  12. [A] Modificare la password hacluster in modo in modo da usare la stessa password

    sudo passwd hacluster
    
  13. [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 {
         ring0_addr:     < ip="" address="" of="" node="" 1="">
       }
       node {
         ring0_addr:     < ip="" address="" of="" node="" 2=""> 
       } 
     }
     logging {
       [...]
     

    Riavviare quindi il servizio corosync

    sudo service corosync restart
    
  14. [A] Installare pacchetti HANA a disponibilità elevata

    sudo zypper install SAPHanaSR
    

Installazione di SAP HANA

Seguire il 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.

  1. [A] Eseguire hdblcm dal DVD di HANA
    • Scegliere l'installazione -> 1
    • Selezionare i componenti aggiuntivi per l'installazione -> 1
    • Immettere il percorso di installazione [/hana/shared]: -> INVIO
    • Immettere il nome host locale [..]: -> INVIO
    • Aggiungere altri host al sistema? (y/n) [n]: -> INVIO
    • Immettere l'ID di sistema SAP HANA:
    • Immettere il numero di istanza [00]:
      Numero di istanza di HANA. Usare 03 se è stato usato il modello di Azure o è stato seguito l'esempio precedente
    • Selezionare la modalità di database/immettere l'indice [1]: -> INVIO
    • Selezionare l'utilizzo del sistema/immettere l'indice [4]:
      Selezionare l'utilizzo del sistema
    • Immettere il percorso dei volumi di dati [/hana/data/HDB]: -> INVIO
    • Immettere il percorso dei volumi di log [/hana/log/HDB]: -> INVIO
    • Limitare l'allocazione massima della memoria? [n]: -> INVIO
    • Immettere il nome host del certificato per l'host '...' [...]: -> INVIO
    • Immettere la password dell'utente agente host SAP (sapadm):
    • Confermare la password dell'utente agente host SAP (sapadm):
    • Immettere la password dell'amministratore di sistema (hdbadm):
    • Confermare la password dell'amministratore di sistema (hdbadm):
    • Immettere la home directory dell'amministratore di sistema [/usr/sap/HDB/home]: -> INVIO
    • Immettere la shell di accesso dell'amministratore di sistema [/bin/sh]: -> INVIO
    • Immettere l'ID utente dell'amministratore di sistema [1001]: -> INVIO
    • Immettere l'ID del gruppo di utenti (sapsys) [79]: -> INVIO
    • Immettere la password dell'utente del database (SYSTEM):
    • Confermare la password dell'utente del database (SYSTEM):
    • Riavviare il sistema dopo il riavvio della macchina? [n]: -> INVIO
    • Continuare? (y/n):
      Convalidare il riepilogo e immettere y per continuare
  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 radice)
    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 radice)

    
     PATH="$PATH:/usr/sap/HDB/HDB03/exe"
     hdbuserstore SET hdbhaloc localhost:30315 hdbhasync passwd
     
  5. [1] Eseguire il backup del database (come radice)
    
     PATH="$PATH:/usr/sap/HDB/HDB03/exe"
     hdbsql -u system -i 03 "BACKUP DATA USING FILE ('initialbackup')" 
     
  6. [1] Passare all'utente sapsid (ad esempio hdbadm) e creare il sito primario.
    
     su - hdbadm
     hdbnsutil -sr_enable –-name=SITE1
     
  7. [2] Passare all'utente sapsid (ad esempio hdbadm) e creare il sito secondario.
    
     su - hdbadm
     sapcontrol -nr 03 -function StopWait 600 10
     hdbnsutil -sr_register --remoteHost=saphanavm1 --remoteInstance=03 --replicationMode=sync --name=SITE2 
     

Configurare il framework del cluster

Modificare le impostazioni predefinite

sudo vi crm-defaults.txt
# enter the following to crm-defaults.txt

property $id="cib-bootstrap-options" \
  no-quorum-policy="ignore" \
  stonith-enabled="true" \
  stonith-action="reboot" \
  stonith-timeout="150s"
rsc_defaults $id="rsc-options" \
  resource-stickiness="1000" \
  migration-threshold="5000"
op_defaults $id="op-options" \
  timeout="600"


# Caricare ora il file nel cluster
sudo crm configure load update crm-defaults.txt

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.

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

sudo vi crm-fencing.txt
# enter the following to crm-fencing.txt
# replace the bold string with your subscription id, resource group, tenant id, service principal id and password

primitive rsc_st_azure_1 stonith:fence_azure_arm \
    params subscriptionId="subscription id" resourceGroup="resource group" tenantId="tenant id" login="login id" passwd="password"

primitive rsc_st_azure_2 stonith:fence_azure_arm \
    params subscriptionId="subscription id" resourceGroup="resource group" tenantId="tenant id" login="login id" passwd="password"

colocation col_st_azure -2000: rsc_st_azure_1:Started rsc_st_azure_2:Started


# Caricare ora il file nel cluster
sudo crm configure load update crm-fencing.txt

Creare risorse SAP HANA

sudo vi crm-saphanatop.txt
# enter the following to crm-saphana.txt
# replace the bold string with your instance number and HANA system id

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"

clone cln_SAPHanaTopology_HDB_HDB03 rsc_SAPHanaTopology_HDB_HDB03 \
    meta is-managed="true" clone-node-max="1" target-role="Started" interleave="true"


# Caricare ora il file nel cluster
sudo crm configure load update crm-saphanatop.txt
sudo vi crm-saphana.txt
# enter the following to crm-saphana.txt
# replace the bold string with your instance number, HANA system id and the frontend IP address of the Azure load balancer. 

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"

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"

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.21" 
primitive rsc_nc_HDB_HDB03 anything \ 
    params binfile="/usr/bin/nc" cmdline_options="-l -k 62503" \ 
    op monitor timeout=20s interval=10 depth=0 
group g_ip_HDB_HDB03 rsc_ip_HDB_HDB03 rsc_nc_HDB_HDB03

colocation col_saphana_ip_HDB_HDB03 2000: g_ip_HDB_HDB03:Started \ 
    msl_SAPHana_HDB_HDB03:Master  
order ord_SAPHana_HDB_HDB03 2000: cln_SAPHanaTopology_HDB_HDB03 \ 
    msl_SAPHana_HDB_HDB03


# Caricare ora il file nel cluster
sudo crm configure load update crm-saphana.txt

Testare la configurazione del cluster

Il capitolo seguente descrive come testare la configurazione. Ogni test presuppone che ci si trovi nella radice e che il master SAP HANA sia in esecuzione nella macchina virtuale saphanavm1.

Test di isolamento

È possibile testare la configurazione dell'agente di isolamento disabilitando l'interfaccia di rete nel nodo saphanavm1.


sudo ifdown eth0

La macchina virtuale dovrebbe ora venire riavviata o arrestata, a seconda della configurazione del cluster. Se si imposta stonith-action su off, la macchina virtuale verrà arrestata e verrà eseguita la migrazione delle risorse alla macchina virtuale in esecuzione.

Una volta riavviata la macchina virtuale, la risorsa SAP HANA non verrà avviata come secondaria se si imposta AUTOMATED_REGISTER="false". In questo caso, è necessario configurare l'istanza di HANA come secondaria eseguendo il comando seguente:


su - hdbadm

# Stop the HANA instance just in case it is running
sapcontrol -nr 03 -function StopWait 600 10
hdbnsutil -sr_register --remoteHost=saphanavm2 --remoteInstance=03 --replicationMode=sync --name=SITE1

# switch back to root and cleanup the failed state
exit
crm resource cleanup msl_SAPHana_HDB_HDB03 saphanavm1

Test di un failover manuale

È possibile testare un failover manuale arrestando il servizio pacemaker nel nodo saphanavm1.


service pacemaker stop

Dopo il failover, è possibile avviare nuovamente il servizio. La risorsa SAP HANA in saphanavm1 non verrà avviata come secondaria se si imposta AUTOMATED_REGISTER="false". In questo caso, è necessario configurare l'istanza di HANA come secondaria eseguendo il comando seguente:


service pacemaker start
su - hdbadm

# Stop the HANA instance just in case it is running
sapcontrol -nr 03 -function StopWait 600 10
hdbnsutil -sr_register --remoteHost=saphanavm2 --remoteInstance=03 --replicationMode=sync --name=SITE1 


# switch back to root and cleanup the failed state
exit
crm resource cleanup msl_SAPHana_HDB_HDB03 saphanavm1

Test di una migrazione

È possibile eseguire la migrazione del nodo master SAP HANA eseguendo il comando seguente


crm resource migrate msl_SAPHana_HDB_HDB03 saphanavm2
crm resource migrate g_ip_HDB_HDB03 saphanavm2

In questo modo, dovrebbe venire eseguita la migrazione del nodo master SAP HANA e del gruppo che contiene l'indirizzo IP virtuale di saphanavm2. La risorsa SAP HANA in saphanavm1 non verrà avviata come secondaria se si imposta AUTOMATED_REGISTER="false". In questo caso, è necessario configurare l'istanza di HANA come secondaria eseguendo il comando seguente:


su - hdbadm

# Stop the HANA instance just in case it is running
sapcontrol -nr 03 -function StopWait 600 10
hdbnsutil -sr_register --remoteHost=saphanavm2 --remoteInstance=03 --replicationMode=sync --name=SITE1 

La migrazione crea vincoli di posizione che devono essere eliminati di nuovo.


crm configure edited

# delete location contraints that are named like the following contraint. You should have two contraints, one for the SAP HANA resource and one for the IP address group.
location cli-prefer-g_ip_HDB_HDB03 g_ip_HDB_HDB03 role=Started inf: saphanavm2

È anche necessario eseguire la pulizia di stato della risorsa nodo secondario


# switch back to root and cleanup the failed state
exit
crm resource cleanup msl_SAPHana_HDB_HDB03 saphanavm1

Passaggi successivi