Disponibilità elevata di SAP HANA in Macchine virtuali di Azure (VM)High Availability of SAP HANA on Azure Virtual Machines (VMs)

In locale è possibile usare la replica di sistema HANA oppure l'archiviazione condivisa per stabilire la disponibilità elevata per SAP HANA.On-premises, you can use either HANA System Replication or use shared storage to establish high availability for SAP HANA. Attualmente è supportata solo l'impostazione della replica di sistema HANA in Azure.We currently only support setting up HANA System Replication on Azure. La replica SAP HANA è costituita da un nodo master e almeno un nodo slave.SAP HANA Replication consists of one master node and at least one slave node. Le modifiche ai dati nel nodo master vengono replicate nei nodi slave in modo sincrono o asincrono.Changes to the data on the master node are replicated to the slave nodes synchronously or asynchronously.

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.This article describes how to deploy the virtual machines, configure the virtual machines, install the cluster framework, install and configure SAP HANA System Replication. 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.In the example configurations, installation commands etc. instance number 03 and HANA System ID HDB is used.

Leggere prima di tutto le note e i documenti seguenti relativi a SAPRead the following SAP Notes and papers first

Distribuzione di LinuxDeploying Linux

L'agente delle risorse per SAP HANA è incluso in SUSE Linux Enterprise Server for SAP Applications.The resource agent for SAP HANA is included 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.The Azure Marketplace contains an image for SUSE Linux Enterprise Server for SAP Applications 12 with BYOS (Bring Your Own Subscription) that you can use to deploy new virtual machines.

Distribuzione manualeManual Deployment

  1. Creare un gruppo di risorseCreate a Resource Group
  2. Creare una rete virtualeCreate a Virtual Network
  3. Creare due account di archiviazioneCreate two Storage Accounts
  4. Creare un set di disponibilitàCreate an Availability Set
    Impostare il numero massimo di domini di aggiornamentoSet max update domain
  5. Creare un servizio di bilanciamento del carico (interno)Create a Load Balancer (internal)
    Selezionare la rete virtuale del passaggio precedenteSelect VNET of step above
  6. Creare la macchina virtuale 1Create Virtual Machine 1
    https://portal.azure.com/#create/suse-byos.sles-for-sap-byos12-sp1https://portal.azure.com/#create/suse-byos.sles-for-sap-byos12-sp1
    SLES For SAP Applications 12 SP1 (BYOS)SLES For SAP Applications 12 SP1 (BYOS)
    Selezionare l'account di archiviazione 1Select Storage Account 1
    Selezionare il set di disponibilitàSelect Availability Set
  7. Creare la macchina virtuale 2Create Virtual Machine 2
    https://portal.azure.com/#create/suse-byos.sles-for-sap-byos12-sp1https://portal.azure.com/#create/suse-byos.sles-for-sap-byos12-sp1
    SLES For SAP Applications 12 SP1 (BYOS)SLES For SAP Applications 12 SP1 (BYOS)
    Selezionare l'account di archiviazione 2Select Storage Account 2
    Selezionare il set di disponibilitàSelect Availability Set
  8. Aggiungere dischi datiAdd Data Disks
  9. Configurare il servizio di bilanciamento del caricoConfigure the load balancer
    1. Creare un pool di indirizzi IP front-endCreate a frontend IP pool
      1. Aprire il servizio di bilanciamento del carico, selezionare Pool di indirizzi IP front-end e fare clic su AggiungiOpen the load balancer, select frontend IP pool and click Add
      2. Immettere il nome del nuovo pool di indirizzi IP front-end (ad esempio, hana-frontend)Enter the name of the new frontend IP pool (for example hana-frontend)
        1. Fare clic su OK.Click OK
      3. Dopo aver creato il nuovo pool di indirizzi IP front-end, annotare il relativo indirizzo IPAfter the new frontend IP pool is created, write down its IP address
    2. Creare un pool back-endCreate a backend pool
      1. Aprire il servizio di bilanciamento del carico, selezionare Pool back-end e fare clic su AggiungiOpen the load balancer, select backend pools and click Add
      2. Immettere il nome del nuovo pool back-end (ad esempio, hana-backend)Enter the name of the new backend pool (for example hana-backend)
      3. Fare clic su Aggiungi una macchina virtualeClick Add a virtual machine
      4. Selezionare il set di disponibilità creato in precedenzaSelect the Availability Set you created earlier
      5. Selezionare le macchine virtuali del cluster SAP HANASelect the virtual machines of the SAP HANA cluster
      6. Fare clic su OK.Click OK
    3. Creare un probe di integritàCreate a health probe
      1. Aprire il servizio di bilanciamento del carico, selezionare Probe integrità e fare clic su AggiungiOpen the load balancer, select health probes and click Add
        1. Immettere il nome del nuovo probe integrità (ad esempio, hana-hp)Enter the name of the new health probe (for example hana-hp)
        2. Selezionare TCP come protocollo, la porta 62503, mantenere 5 per Intervallo e impostare il valore di Soglia di non integrità su 2Select TCP as protocol, port 62503, keep Interval 5 and Unhealthy threshold 2
        3. Fare clic su OK.Click OK
    4. Creare le regole di bilanciamento del caricoCreate load balancing rules
      1. Aprire il servizio di bilanciamento del carico, selezionare Regole di bilanciamento del carico e fare clic su AggiungiOpen the load balancer, select load balancing rules and click Add
      2. Immettere il nome della nuova regola di bilanciamento del carico (ad esempio, hana-lb-30315)Enter the name of the new load balancer rule (for example 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)Select the frontend IP address, backend pool and health probe you created earlier (for example hana-frontend)
      4. Mantenere il protocollo TCP, immettere la porta 30315Keep protocol TCP, enter port 30315
      5. Aumentare il timeout di inattività a 30 minutiIncrease idle timeout to 30 minutes
        1. Assicurarsi di abilitare l'indirizzo IP mobileMake sure to enable Floating IP
      6. Fare clic su OK.Click OK
      7. Ripetere i passaggi precedenti per la porta 30317Repeat the steps above for port 30317

Eseguire la distribuzione con un modelloDeploy with template

È possibile usare uno dei modelli di avvio rapido di GitHub per distribuire tutte le risorse necessarie.You can use one of the quick start templates on github to deploy all required resources. 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:The template deploys the virtual machines, the load balancer, availability set etc. Follow these steps to deploy the template:

  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).Open the database template or the converged template on the Azure Portal The database template only creates the load-balancing rules for a database whereas the converged template also creates the load-balancing rules for an ASCS/SCS and ERS (Linux only) instance. 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.If you plan to install an SAP NetWeaver based system and you also want to install the ASCS/SCS instance on the same machines, use the converged template.
  2. Immettere i parametri seguentiEnter the following parameters
    1. ID sistema SAPSap System Id
      Immettere l'ID del sistema SAP che si vuole installare.Enter the SAP system Id of the SAP system you want to install. L'ID verrà usato come prefisso per le risorse distribuite.The Id will be used as a prefix for the resources that are deployed.
    2. Tipo di stack (applicabile solo se si usa il modello con convergenza)Stack Type (only applicable if you use the converged template)
      Selezionare il tipo di stack SAP NetWeaverSelect the SAP NetWeaver stack type
    3. Tipo di sistema operativoOs Type
      Selezionare una delle distribuzioni Linux.Select one of the Linux distributions. Per questo esempio, selezionare SLES 12 BYOSFor this example, select SLES 12 BYOS
    4. Tipo di databaseDb Type
      Selezionare HANASelect HANA
    5. Dimensioni del sistema SAPSap System Size
      Quantità di SAPS forniti dal nuovo sistema.The amount of SAPS the new system will provide. Se non si è certi del numero di SAPS necessari per il sistema, chiedere all'integratore di sistemi o al partner tecnologico SAPIf you are not sure how many SAPS the system will require, please ask your SAP Technology Partner or System Integrator
    6. Disponibilità del sistemaSystem Availability
      Selezionare la disponibilità elevata.Select HA
    7. Nome utente e password amministratoreAdmin Username and Admin Password
      Verrà creato un nuovo utente con cui è possibile accedere alla macchinaA new user is created that can be used to log on to the machine.
    8. Subnet nuova o esistenteNew Or Existing Subnet
      Determina se devono essere create una nuova rete virtuale e una nuova subnet o deve essere usata una subnet esistente.Determines whether a new virtual network and subnet should be created or an existing subnet should be used. Se è già presente una rete virtuale connessa alla rete locale, selezionare "existing".If you already have a virtual network that is connected to your on-premises network, select existing.
    9. ID subnetSubnet Id
      ID della subnet a cui devono essere connesse le macchine virtuali.The ID of the subnet to which the virtual machines should be connected to. Selezionare la subnet della rete virtuale Express Route o VPN per connettere la macchina virtuale alla rete locale.Select the subnet of your VPN or Express Route virtual network to connect the virtual machine to your on-premises network. 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>The ID usually looks like /subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/<virtual network name>/subnets/<subnet name>

Configurazione della disponibilità elevata di LinuxSetting up Linux HA

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.The following items are prefixed with either [A] - applicable to all nodes, [1] - only applicable to node 1 or [2] - only applicable to node 2.

  1. [A] Solo SLES per SAP BYOS - Registrare SLES per poter usare i repository[A] SLES for SAP BYOS only - Register SLES to be able to use the repositories
  2. [A] Solo SLES per SAP BYOS - Aggiungere il modulo cloud pubblico[A] SLES for SAP BYOS only - Add public-cloud module
  3. [A] Aggiornare SLES[A] Update SLES

    sudo zypper update
    
  4. [1] Abilitare l'accesso SSH[1] Enable ssh access

    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[2] Enable ssh access

    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[1] Enable ssh access

    # 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[A] Install HA extension

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

    1. LVMLVM
      In genere è consigliabile usare LVM per i volumi che archiviano i dati e file di log.We generally recommend to use LVM for volumes that store data and log files. L'esempio seguente presuppone che le macchine virtuali abbiano quattro dischi dati collegati che devono essere usati per creare due volumi.The example below assumes that the virtual machines have four data disks attached that should be used to create two volumes.
      • Creare i volumi fisici per tutti i dischi da usare.Create physical volumes for all disks that you want to use.
        
        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 HANACreate a volume group for the data files, one volume group for the log files and one for the shared directory of 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 logiciCreate the logical volumes
        
        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 logiciCreate the mount directories and copy the UUID of all logical volumes
        
        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 logiciCreate fstab entries for the three logical volumes
        
        sudo vi /etc/fstab
        
        Inserire questa riga in /etc/fstabInsert this line to /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 volumiMount the new volumes
        
        sudo mount -a
        
    2. Dischi normaliPlain Disks
      Per sistemi demo o di piccole dimensioni, è possibile inserire i dati e i file di log HANA su un disco.For small or demo systems, you can place your HANA data and log files on one disk. I comandi seguenti creano una partizione in /dev/sdc e la formattano con XFS.The following commands create a partition on /dev/sdc and format it with xfs.

      sudo fdisk /dev/sdc
      sudo mkfs.xfs /dev/sdc1
      
      # <a name="write-down-the-id-of-devsdc1"></a><span data-ttu-id="86e1f-241">Annotare l'ID di /dev/sdc1</span><span class="sxs-lookup"><span data-stu-id="86e1f-241">write down the id of /dev/sdc1</span></span>
      <span data-ttu-id="86e1f-242">sudo /sbin/blkid sudo vi /etc/fstab</span><span class="sxs-lookup"><span data-stu-id="86e1f-242">sudo /sbin/blkid  sudo vi /etc/fstab</span></span>
      

      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[A] Setup host name resolution for all hosts
    È possibile usare un server DNS o modificare /etc/hosts in tutti i nodi.You can either use a DNS server or modify the /etc/hosts on all nodes. Questo esempio mostra come usare il file /etc/hosts.This example shows how to use the /etc/hosts file. Sostituire l'indirizzo IP e il nome host nei comandi seguentiReplace the IP address and the hostname in the following commands

    sudo vi /etc/hosts
    

    Inserire le righe seguenti in /etc/hosts.Insert the following lines to /etc/hosts. Modificare l'indirizzo IP e il nome host in base all'ambienteChange the IP address and hostname to match your environment

    
     <IP address of host 1> <hostname of host 1>
     <IP address of host 2> <hostname of host 2>
     
  10. [1] Installare il cluster[1] Install 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[2] Add node to 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[A] Change hacluster password to the same password

    sudo passwd hacluster
    
  13. [A] Configurare corosync per usare un altro trasporto e aggiungere nodelist.[A] Configure corosync to use other transport and add nodelist. In caso contrario, il cluster non funzionerà.Cluster will not work otherwise.

    sudo vi /etc/corosync/corosync.conf    
    

    Aggiungere il seguente contenuto in grassetto nel file.Add the following bold content to the 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 corosyncThen restart the corosync service

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

    sudo zypper install SAPHanaSR
    

Installazione di SAP HANAInstalling 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.Follow chapter 4 of the SAP HANA SR Performance Optimized Scenario guide to install SAP HANA System Replication.

  1. [A] Eseguire hdblcm dal DVD di HANA[A] Run hdblcm from the HANA DVD
    • Scegliere l'installazione -> 1Choose installation -> 1
    • Selezionare i componenti aggiuntivi per l'installazione -> 1Select additional components for installation -> 1
    • Immettere il percorso di installazione [/hana/shared]: -> INVIOEnter Installation Path [/hana/shared]: -> ENTER
    • Immettere il nome host locale [..]: -> INVIOEnter Local Host Name [..]: -> ENTER
    • Aggiungere altri host al sistema?Do you want to add additional hosts to the system? (y/n) [n]: -> INVIO(y/n) [n]: -> ENTER
    • Immettere l'ID di sistema SAP HANA: <SID of HANA e.g. HDB>Enter SAP HANA System ID: <SID of HANA e.g. HDB>
    • Immettere il numero di istanza [00]:Enter Instance Number [00]:
      Numero di istanza di HANA.HANA Instance number. Usare 03 se è stato usato il modello di Azure o è stato seguito l'esempio precedenteUse 03 if you used the Azure Template or followed the example above
    • Selezionare la modalità di database/immettere l'indice [1]: -> INVIOSelect Database Mode / Enter Index [1]: -> ENTER
    • Selezionare l'utilizzo del sistema/immettere l'indice [4]:Select System Usage / Enter Index [4]:
      Selezionare l'utilizzo del sistemaSelect the system Usage
    • Immettere il percorso dei volumi di dati [/hana/data/HDB]: -> INVIOEnter Location of Data Volumes [/hana/data/HDB]: -> ENTER
    • Immettere il percorso dei volumi di log [/hana/log/HDB]: -> INVIOEnter Location of Log Volumes [/hana/log/HDB]: -> ENTER
    • Limitare l'allocazione massima della memoria?Restrict maximum memory allocation? [n]: -> INVIO[n]: -> ENTER
    • Immettere il nome host del certificato per l'host "..." [...]: -> INVIOEnter Certificate Host Name For Host '...' [...]: -> ENTER
    • Immettere la password dell'utente agente host SAP (sapadm):Enter SAP Host Agent User (sapadm) Password:
    • Confermare la password dell'utente agente host SAP (sapadm):Confirm SAP Host Agent User (sapadm) Password:
    • Immettere la password dell'amministratore di sistema (hdbadm):Enter System Administrator (hdbadm) Password:
    • Confermare la password dell'amministratore di sistema (hdbadm):Confirm System Administrator (hdbadm) Password:
    • Immettere la home directory dell'amministratore di sistema [/usr/sap/HDB/home]: -> INVIOEnter System Administrator Home Directory [/usr/sap/HDB/home]: -> ENTER
    • Immettere la shell di accesso dell'amministratore di sistema [/bin/sh]: -> INVIOEnter System Administrator Login Shell [/bin/sh]: -> ENTER
    • Immettere l'ID utente dell'amministratore di sistema [1001]: -> INVIOEnter System Administrator User ID [1001]: -> ENTER
    • Immettere l'ID del gruppo di utenti (sapsys) [79]: -> INVIOEnter ID of User Group (sapsys) [79]: -> ENTER
    • Immettere la password dell'utente del database (SYSTEM):Enter Database User (SYSTEM) Password:
    • Confermare la password dell'utente del database (SYSTEM):Confirm Database User (SYSTEM) Password:
    • Riavviare il sistema dopo il riavvio della macchina?Restart system after machine reboot? [n]: -> INVIO[n]: -> ENTER
    • Continuare?Do you want to continue? (y/n):(y/n):
      Convalidare il riepilogo e immettere y per continuareValidate the summary and enter y to continue
  2. [A] Aggiornare l'agente host SAP[A] Upgrade SAP Host Agent
    Scaricare l'archivio dell'agente host SAP più recente dal sito SAP Softwarecenter ed eseguire il comando seguente per aggiornare l'agente.Download the latest SAP Host Agent archive from the SAP Softwarecenter and run the following command to upgrade the agent. Sostituire il percorso dell'archivio in modo da puntare al file scaricato.Replace the path to the archive to point to the file you downloaded.

    sudo /usr/sap/hostctrl/exe/saphostexec -upgrade -archive <path to SAP Host Agent SAR>
    
  3. [1] Creare la replica HANA (come radice)[1] Create HANA replication (as root)
    Eseguire il comando indicato di seguito.Run the following command. 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.Make sure to replace bold strings (HANA System ID HDB and instance number 03) with the values of your SAP HANA installation.

    
     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)[A] Create keystore entry (as root)

    
     PATH="$PATH:/usr/sap/HDB/HDB03/exe"
     hdbuserstore SET hdbhaloc localhost:30315 hdbhasync passwd
     
  5. [1] Eseguire il backup del database (come radice)[1] Backup database (as root)
    
     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.[1] Switch to the sapsid user (for example hdbadm) and create the primary site.
    
     su - hdbadm
     hdbnsutil -sr_enable –-name=SITE1
     
  7. [2] Passare all'utente sapsid (ad esempio hdbadm) e creare il sito secondario.[2] Switch to the sapsid user (for example hdbadm) and create the secondary site.
    
     su - hdbadm
     sapcontrol -nr 03 -function StopWait 600 10
     hdbnsutil -sr_register --remoteHost=saphanavm1 --remoteInstance=03 --replicationMode=sync --name=SITE2 
     

Configurare il framework del clusterConfigure Cluster Framework

Modificare le impostazioni predefiniteChange the default settings

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 clusternow we load the file to the cluster
sudo crm configure load update crm-defaults.txtsudo crm configure load update crm-defaults.txt

Creare il dispositivo STONITHCreate STONITH device

Il dispositivo STONITH usa un'entità servizio per l'autorizzazione in Microsoft Azure.The STONITH device uses a Service Principal to authorize against Microsoft Azure. Per creare un'entità servizio, seguire questa procedura.Please follow these steps to create a Service Principal.

  1. Passare a https://portal.azure.comGo to https://portal.azure.com
  2. Aprire il pannello Azure Active DirectoryOpen the Azure Active Directory blade
    Passare a Proprietà e annotare l'ID directory. Si tratta dell'ID tenant.Go to Properties and write down the Directory Id. This is the tenant id.
  3. Fare clic su Registrazioni per l'appClick App registrations
  4. Fare clic su Aggiungi.Click Add
  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 CreaEnter a Name, select Application Type "Web app/API", enter a sign-on URL (for example http://localhost) and click Create
  6. L'URL di accesso non viene usato e può essere qualsiasi URL validoThe sign-on URL is not used and can be any valid URL
  7. Selezionare la nuova app e fare clic su Chiavi nella scheda ImpostazioniSelect the new App and click Keys in the Settings tab
  8. Immettere una descrizione per una nuova chiave, selezionare "Non scade mai" e fare clic su SalvaEnter a description for a new key, select "Never expires" and click Save
  9. Annotare il valore.Write down the Value. Viene usato come password per l'entità servizioIt is used as the password for the Service Principal
  10. Annotare l'ID applicazione. Viene usato come nome utente (ID di accesso nella procedura seguente) dell'entità servizioWrite down the Application Id. It is used as the username (login id in the steps below) of the Service Principal

L'entità servizio non ha le autorizzazioni per accedere alle risorse di Azure per impostazione predefinita.The Service Principal does not have permissions to access your Azure resources by default. È necessario concedere all'entità servizio le autorizzazioni per avviare e arrestare (deallocare) tutte le macchine virtuali del cluster.You need to give the Service Principal permissions to start and stop (deallocate) all virtual machines of the cluster.

  1. Passare a https://portal.azure.comGo to https://portal.azure.com
  2. Aprire il pannello Tutte le risorseOpen the All resources blade
  3. Selezionare la macchina virtualeSelect the virtual machine
  4. Fare clic su Controllo di accesso (IAM)Click Access control (IAM)
  5. Fare clic su Aggiungi.Click Add
  6. Selezionare il ruolo ProprietarioSelect the role Owner
  7. Immettere il nome dell'applicazione creata in precedenzaEnter the name of the application you created above
  8. Fare clic su OK.Click OK

Dopo aver modificato le autorizzazioni per le macchine virtuali, è possibile configurare i dispositivi STONITH nel cluster.After you edited the permissions for the virtual machines, you can configure the STONITH devices in the 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 clusternow we load the file to the cluster
sudo crm configure load update crm-fencing.txtsudo crm configure load update crm-fencing.txt

Creare risorse SAP HANACreate SAP HANA resources

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 clusternow we load the file to the cluster
sudo crm configure load update crm-saphanatop.txtsudo 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 clusternow we load the file to the cluster
sudo crm configure load update crm-saphana.txtsudo crm configure load update crm-saphana.txt

Testare la configurazione del clusterTest cluster setup

Il capitolo seguente descrive come testare la configurazione.The following chapter describe how you can test your setup. Ogni test presuppone che ci si trovi nella radice e che il master SAP HANA sia in esecuzione nella macchina virtuale saphanavm1.Every test assumes that you are root and the SAP HANA master is running on the virtual machine saphanavm1.

Test di isolamentoFencing Test

È possibile testare la configurazione dell'agente di isolamento disabilitando l'interfaccia di rete nel nodo saphanavm1.You can test the setup of the fencing agent by disabling the network interface on node saphanavm1.


sudo ifdown eth0

La macchina virtuale dovrebbe ora venire riavviata o arrestata, a seconda della configurazione del cluster.The virtual machine should now get restarted or stopped depending on your cluster configuration. Se si imposta stonith-action su off, la macchina virtuale verrà arrestata e verrà eseguita la migrazione delle risorse alla macchina virtuale in esecuzione.If you set the stonith-action to off, the virtual machine will be stopped and the resources are migrated to the running virtual machine.

Una volta riavviata la macchina virtuale, la risorsa SAP HANA non verrà avviata come secondaria se si imposta AUTOMATED_REGISTER="false".Once you start the virtual machine again, the SAP HANA resource will fail to start as secondary if you set AUTOMATED_REGISTER="false". In questo caso, è necessario configurare l'istanza di HANA come secondaria eseguendo il comando seguente:In this case, you need to configure the HANA instance as secondary by executing the following command:


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 manualeTesting a manual failover

È possibile testare un failover manuale arrestando il servizio pacemaker nel nodo saphanavm1.You can test a manual failover by stopping the pacemaker service on node saphanavm1.


service pacemaker stop

Dopo il failover, è possibile avviare nuovamente il servizio.After the failover, you can start the service again. La risorsa SAP HANA in saphanavm1 non verrà avviata come secondaria se si imposta AUTOMATED_REGISTER="false".The SAP HANA resource on saphanavm1 will fail to start as secondary if you set AUTOMATED_REGISTER="false". In questo caso, è necessario configurare l'istanza di HANA come secondaria eseguendo il comando seguente:In this case, you need to configure the HANA instance as secondary by executing the following command:


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 migrazioneTesting a migration

È possibile eseguire la migrazione del nodo master SAP HANA eseguendo il comando seguenteYou can migrate the SAP HANA master node by executing the following command


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.This should migrate the SAP HANA master node and the group that contains the virtual IP address to saphanavm2. La risorsa SAP HANA in saphanavm1 non verrà avviata come secondaria se si imposta AUTOMATED_REGISTER="false".The SAP HANA resource on saphanavm1 will fail to start as secondary if you set AUTOMATED_REGISTER="false". In questo caso, è necessario configurare l'istanza di HANA come secondaria eseguendo il comando seguente:In this case, you need to configure the HANA instance as secondary by executing the following command:


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.The migration creates location contraints that need to be deleted again.


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 secondarioYou also need to cleanup the state of the secondary node resource


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

Passaggi successiviNext steps