Deployment Manager: guida alla configurazione del cluster SAP HANA scalabile verticalmente ad alta disponibilità

Questa guida mostra come automatizzare il deployment di SAP HANA in un cluster di alta disponibilità (HA) Red Hat Enterprise Linux (RHEL) o SUSE Linux Enterprise Server (SLES) che utilizza un bilanciatore del carico di rete passthrough interno per gestire l'indirizzo IP virtuale (VIP).

La guida utilizza Cloud Deployment Manager per eseguire il deployment di due macchine virtuali (VM) Compute Engine, due sistemi SAP HANA scalabili, un indirizzo IP virtuale (VIP) con un'implementazione di Network Load Balancer passthrough interno e un cluster HA basato sul sistema operativo, il tutto in base alle best practice di Google Cloud, SAP e del fornitore del sistema operativo.

Per utilizzare Terraform per automatizzare il deployment di un cluster ad alta disponibilità per SAP HANA, consulta Terraform: guida alla configurazione del cluster ad alta disponibilità SAP HANA.

Uno dei sistemi SAP HANA funziona come sistema principale attivo e l'altro come sistema secondario in standby. Esegui il deployment di entrambi i sistemi SAP HANA nella stessa regione, idealmente in zone diverse.

Panoramica di un cluster Linux ad alta disponibilità per un sistema SAP HANA scalabile verticalmente a un nodo

Il cluster di cui è stato eseguito il deployment include le seguenti funzioni e funzionalità:

  • Il gestore delle risorse del cluster ad alta disponibilità Pacemaker.
  • Un meccanismo di recinzione di Google Cloud.
  • Un indirizzo IP virtuale (VIP) che utilizza un'implementazione di bilanciatore del carico TCP interno di livello 4, tra cui:
    • Una prenotazione dell'indirizzo IP selezionato per il VIP
    • Due gruppi di istanze Compute Engine
    • Un bilanciatore del carico interno TCP
    • Un controllo di integrità Compute Engine
  • Nei cluster RHEL ad alta disponibilità:
    • Il pattern di alta disponibilità di Red Hat
    • L'agente delle risorse Red Hat e i pacchetti di recinzione
  • Nei cluster ad alta disponibilità SLES:
    • Il pattern di alta disponibilità di SUSE.
    • Il pacchetto dell'agente di risorse SUSE SAPHanaSR.
  • Replica sincrona del sistema.
  • Precaricamento della memoria.
  • Riavvio automatico dell'istanza non riuscita come nuova istanza secondaria.

Per eseguire il deployment di un sistema SAP HANA senza un cluster ad alta disponibilità Linux o host di riserva, consulta la Guida al deployment di SAP HANA.

Questa guida è rivolta agli utenti SAP HANA esperti che hanno familiarità con le configurazioni ad alta disponibilità di Linux per SAP HANA.

Prerequisiti

Prima di creare il cluster SAP HANA ad alta disponibilità, assicurati che siano soddisfatti i seguenti prerequisiti:

Creare una rete

Per motivi di sicurezza, crea una nuova rete. Puoi controllare chi ha accesso aggiungendo regole firewall o utilizzando un altro metodo di controllo dell'accesso.

Se il progetto ha una rete VPC predefinita, non utilizzarla. Crea invece una tua rete VPC in modo che le uniche regole firewall in vigore siano quelle che crei esplicitamente.

Durante il deployment, le istanze VM in genere richiedono l'accesso a internet per scaricare l'agente di Google Cloud per SAP. Se utilizzi una delle immagini Linux certificate da SAP disponibili su Google Cloud, l'istanza VM richiede anche l'accesso a internet per registrare la licenza e accedere ai repository del fornitore del sistema operativo. Una configurazione con un gateway NAT e con i tag di rete VM supporta questo accesso, anche se le VM di destinazione non hanno IP esterni.

Per configurare la rete:

Console

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.
  3. Inserisci un nome per la rete.

    Il nome deve rispettare la convenzione di denominazione. Le reti VPC utilizzano la convenzione di denominazione di Compute Engine.

  4. In Modalità di creazione subnet, scegli Personalizzata.
  5. Nella sezione Nuova subnet, specifica i seguenti parametri di configurazione per una subnet:
    1. Inserisci un nome per la subnet.
    2. Per Regione, seleziona la regione Compute Engine in cui vuoi creare la sottorete.
    3. In Tipo di stack IP, seleziona IPv4 (stack singolo) e poi inserisci un intervallo di indirizzi IP nel formato CIDR, ad esempio 10.1.0.0/24.

      Si tratta dell'intervallo IPv4 principale per la subnet. Se prevedi di aggiungere più di una subnet, assegni intervalli IP CIDR non sovrapposti per ogni subnet della rete. Tieni presente che ogni subnet e i relativi intervalli IP interni sono mappati a una singola regione.

    4. Fai clic su Fine.
  6. Per aggiungere altre subnet, fai clic su Aggiungi subnet e ripeti i passaggi precedenti. Puoi aggiungere altre subnet alla rete dopo averla creata.
  7. Fai clic su Crea.

gcloud

  1. Vai a Cloud Shell.

    Vai a Cloud Shell

  2. Per creare una nuova rete in modalità di subnet personalizzate, esegui:
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    Sostituisci NETWORK_NAME con il nome della nuova rete. Il nome deve rispettare la convenzione di denominazione. Le reti VPC utilizzano la convenzione di denominazione di Compute Engine.

    Specifica --subnet-mode custom per evitare di utilizzare la modalità automatica predefinita, che crea automaticamente una subnet in ogni regione Compute Engine. Per ulteriori informazioni, consulta la sezione Modalità di creazione subnet.

  3. Crea una subnet e specifica la regione e l'intervallo IP:
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

    Sostituisci quanto segue:

    • SUBNETWORK_NAME: il nome della nuova subnet
    • NETWORK_NAME: il nome della rete creata nel passaggio precedente
    • REGION: la regione in cui vuoi la subnet
    • RANGE: l'intervallo di indirizzi IP, specificato in formato CIDR, ad esempio 10.1.0.0/24

      Se prevedi di aggiungere più di una subnet, assegna intervalli IP CIDR non sovrapposti per ogni subnet della rete. Tieni presente che ogni subnet e i relativi intervalli IP interni sono mappati a una singola regione.

  4. Se vuoi, ripeti il passaggio precedente e aggiungi altre sottoreti.

Configurazione di un gateway NAT

Se devi creare una o più VM senza indirizzi IP pubblici, devi utilizzare la Network Address Translation (NAT) per consentire alle VM di accedere a internet. Utilizza Cloud NAT, un servizio gestito software-defined distribuito di Google Cloud che consente alle VM di inviare pacchetti in uscita a internet e di ricevere eventuali pacchetti di risposta in entrata stabiliti corrispondenti. In alternativa, puoi configurare una VM separata come gateway NAT.

Per creare un'istanza Cloud NAT per il tuo progetto, consulta Utilizzo di Cloud NAT.

Dopo aver configurato Cloud NAT per il progetto, le istanze VM possono accedere in sicurezza a internet senza un indirizzo IP pubblico.

aggiungi regole firewall

Per impostazione predefinita, una regola firewall implicita blocca le connessioni in entrata dall'esterno della rete Virtual Private Cloud (VPC). Per consentire le connessioni in entrata, configura una regola firewall per la tua VM. Dopo aver stabilito una connessione in entrata con una VM, il traffico è consentito in entrambe le direzioni tramite la connessione.

I cluster ad alta disponibilità per SAP HANA richiedono almeno due regole firewall, una che consente al controllo di integrità di Compute Engine di verificare l'integrità dei nodi del cluster e un'altra che consente ai nodi del cluster di comunicare tra loro.

Se non utilizzi una rete VPC condivisa, devi creare la regola del firewall per la comunicazione tra i nodi, ma non per i controlli di integrità. Il modello Deployment Manager crea la regola firewall per i controlli di integrità, che puoi modificare, se necessario, al termine del deployment.

Se utilizzi una rete VPC condivisa, un amministratore di rete deve creare entrambe le regole del firewall nel progetto host.

Puoi anche creare una regola firewall per consentire l'accesso esterno a porte specifiche o per limitare l'accesso tra le VM sulla stessa rete. Se viene utilizzato il tipo di rete VPC default, vengono applicate anche alcune regole predefinite aggiuntive, come la regola default-allow-internal, che consente la connettività tra le VM sulla stessa rete su tutte le porte.

A seconda dei criteri IT applicabili al tuo ambiente, potresti dover isolare o limitare in altro modo la connettività all'host del database, cosa che puoi fare creando regole firewall.

A seconda dello scenario, puoi creare regole firewall per consentire l'accesso per:

  • Le porte SAP predefinite elencate in TCP/IP di tutti i prodotti SAP.
  • Connessioni dal tuo computer o dall'ambiente di rete aziendale all'istanza VM Compute Engine. Se hai dubbi su quale indirizzo IP utilizzare, rivolgiti all'amministratore di rete della tua azienda.
  • Connessioni SSH all'istanza VM, incluso SSH nel browser.
  • Connessione alla VM utilizzando uno strumento di terze parti in Linux. Crea una regola per consentire l'accesso dello strumento tramite il firewall.

Per creare una regola firewall:

Console

  1. Nella console Google Cloud, vai alla pagina Firewall della rete VPC.

    Vai a Firewall

  2. Nella parte superiore della pagina, fai clic su Crea regola firewall.

    • Nel campo Rete, seleziona la rete in cui si trova la VM.
    • Nel campo Destinazioni, specifica le risorse di Google Cloud a cui si applica questa regola. Ad esempio, specifica Tutte le istanze nella rete. In alternativa, per limitare la regola a istanze specifiche su Google Cloud, inserisci i tag in Tag target specificati.
    • Nel campo Filtro origine, seleziona una delle seguenti opzioni:
      • Intervalli IP per consentire il traffico in entrata da indirizzi IP specifici. Specifica l'intervallo di indirizzi IP nel campo Intervalli IP di origine.
      • Subnet per consentire il traffico in entrata da una determinata subnet. Specifica il nome della sottorete nel seguente Subnet. Puoi utilizzare questa opzione per consentire l'accesso tra le VM in una configurazione a 3 livelli o scalabile.
    • Nella sezione Protocolli e porte, seleziona Protocolli e porte specificati e inserisci tcp:PORT_NUMBER.
  3. Fai clic su Crea per creare la regola firewall.

gcloud

Crea una regola firewall utilizzando il seguente comando:

$ gcloud compute firewall-rules create FIREWALL_NAME
--direction=INGRESS --priority=1000 \
--network=NETWORK_NAME --action=ALLOW --rules=PROTOCOL:PORT \
--source-ranges IP_RANGE --target-tags=NETWORK_TAGS

Creazione di un cluster Linux ad alta disponibilità con SAP HANA installato

Le istruzioni riportate di seguito utilizzano Cloud Deployment Manager per creare un cluster RHEL o SLES con due sistemi SAP HANA: un sistema SAP HANA singolo-host primario su un'istanza VM e un sistema SAP HANA di riserva su un'altra istanza VM nella stessa regione Compute Engine. I sistemi SAP HANA utilizzano la replica di sistema sincrona e il sistema di standby precarica i dati replicati.

Le opzioni di configurazione per il cluster SAP HANA ad alta disponibilità vengono definite in un modello di file di configurazione di Deployment Manager.

Le istruzioni riportate di seguito utilizzano Cloud Shell, ma sono applicabili in generale a Google Cloud CLI.

  1. Verifica che le quote attuali per risorse come i dischi permanenti e le CPU siano sufficienti per i sistemi SAP HANA che stai per installare. Se le tue quote non sono sufficienti, il deployment non riesce. Per i requisiti relativi alle quote di SAP HANA, consulta Considerazioni su prezzi e quote per SAP HANA.

    Vai alla pagina Quote

  2. Apri Cloud Shell o, se hai installato Google Cloud CLI sulla tua workstation locale, apri un terminale.

    Vai a Cloud Shell

  3. Scarica il modello di file di configurazione template.yaml per il cluster SAP HANA ad alta disponibilità nella tua directory di lavoro inserendo il seguente comando nella CLI Cloud Shell o gcloud:

    $ wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_ha_ilb/template.yaml
  4. Se vuoi, rinomina il file template.yaml per identificare la configurazione che definisce.

  5. Apri il file template.yaml nell'editor di codice Cloud Shell o, se utilizzi l'interfaccia alla gcloud CLI, nell'editor di testo che preferisci.

    Per aprire l'editor di codice di Cloud Shell, fai clic sull'icona a forma di matita nell'angolo in alto a destra della finestra del terminale di Cloud Shell.

  6. Nel file template.yaml, aggiorna i valori delle proprietà sostituendo le parentesi e i relativi contenuti con i valori per la tua installazione. Le proprietà sono descritte nella tabella seguente.

    Per creare le istanze VM senza installare SAP HANA, elimina o commenta tutte le righe che iniziano con sap_hana_.

    Proprietà Tipo di dati Descrizione
    type Stringa

    Specifica la posizione, il tipo e la versione del modello Deployment Manager da utilizzare durante il deployment.

    Il file YAML include due specifiche type, una delle quali è commentata. La specifica type attiva per impostazione predefinita specifica la versione del modello come latest. La specifica type commentata specifica una versione del modello specifica con un timestamp.

    Se vuoi che tutti i tuoi implementazioni utilizzino la stessa versione del modello, utilizza la specifica type che include il timestamp.

    primaryInstanceName Stringa Il nome dell'istanza VM per il sistema SAP HANA principale. Specifica il nome con lettere minuscole, numeri o trattini.
    secondaryInstanceName Stringa Il nome dell'istanza VM per il sistema SAP HANA secondario. Specifica il nome con lettere minuscole, numeri o trattini.
    primaryZone Stringa La zona in cui è dipiegato il sistema SAP HANA principale. Le zone primarie e secondarie devono trovarsi nella stessa regione.
    secondaryZone Stringa La zona in cui verrà eseguito il deployment del sistema SAP HANA secondario. Le zone principali e secondarie devono trovarsi nella stessa regione.
    instanceType Stringa Il tipo di macchina virtuale Compute Engine su cui devi eseguire SAP HANA. Se hai bisogno di un tipo di VM personalizzato, specifica un tipo di VM predefinito con un numero di vCPU più vicino a quello di cui hai bisogno, pur essendo più grande. Al termine del deployment, modifica il numero di vCPU e la quantità di memoria.
    network Stringa Il nome della rete in cui creare il bilanciatore del carico che gestisce il VIP.

    Se utilizzi una rete VPC condivisa, devi aggiungere l'ID del progetto host come directory principale del nome della rete. Ad esempio, host-project-id/network-name.

    subnetwork Stringa Il nome della sottorete che utilizzi per il cluster HA.

    Se utilizzi una rete VPC condivisa, devi aggiungere l'ID del progetto host come directory principale del nome della subnet. Ad esempio, host-project-id/subnetwork-name.

    linuxImage Stringa Il nome dell'immagine o della famiglia di immagini del sistema operativo Linux in uso con SAP HANA. Per specificare una famiglia di immagini, aggiungi il prefisso family/ al nome della famiglia. Ad esempio, family/rhel-8-2-sap-ha o family/sles-15-sp2-sap. Per specificare un'immagine specifica, specifica solo il nome dell'immagine. Per l'elenco delle famiglie di immagini disponibili, consulta la pagina Immagini nella console Cloud.
    linuxImageProject Stringa Il progetto Google Cloud che contiene l'immagine che vuoi utilizzare. Questo progetto potrebbe essere il tuo progetto o un progetto di immagini Google Cloud. Per RHEL, specifica rhel-sap-cloud. Per SLES, specifica suse-sap-cloud. Per un elenco dei progetti di immagini Google Cloud, consulta la pagina Immagini nella documentazione di Compute Engine.
    sap_hana_deployment_bucket Stringa Il nome del bucket Cloud Storage nel progetto che contiene i file di installazione di SAP HANA che hai caricato in un passaggio precedente.
    sap_hana_sid Stringa L'ID sistema SAP HANA. L'ID deve essere composto da tre caratteri alfanumerici e deve iniziare con una lettera. Tutte le lettere devono essere in maiuscolo.
    sap_hana_instance_number Numero intero Il numero di istanza, compreso tra 0 e 99, del sistema SAP HANA. Il valore predefinito è 0.
    sap_hana_sidadm_password Stringa Una password temporanea per l'amministratore del sistema operativo da utilizzare durante il deployment. Al termine del deployment, cambia la password. Le password devono essere composte da almeno otto caratteri e includere almeno una lettera maiuscola, una lettera minuscola e un numero.
    sap_hana_system_password Stringa Una password temporanea per il superutente del database. Al termine del deployment, cambia la password. Le password devono essere costituite da almeno 8 caratteri e includere almeno una lettera maiuscola, una lettera minuscola e un numero.
    sap_vip Stringa L'indirizzo IP che utilizzerai per il VIP. L' indirizzo IP deve rientrare nell'intervallo di indirizzi IP assegnati alla subnet. Il modello Deployment Manager riserva questo indirizzo IP per te. In un cluster HA attivo, questo indirizzo IP viene sempre assegnato all'istanza SAP HANA attiva.
    primaryInstanceGroupName Stringa Definisce il nome del gruppo di istanze non gestite per il nodo principale. Se ometti il parametro, il nome predefinito è ig-primaryInstanceName.
    secondaryInstanceGroupName Stringa Definisce il nome del gruppo di istanze non gestite per il nodo secondario. Se ometti questo parametro, il nome predefinito è ig-secondaryInstanceName.
    loadBalancerName Stringa Definisce il nome del bilanciatore del carico interno TCP.
    nic_type Stringa Facoltativo, ma consigliato se disponibile per la macchina e la versione del sistema operativo di destinazione. Specifica l'interfaccia di rete da utilizzare con l'istanza VM. Puoi specificare il valore GVNIC o VIRTIO_NET. Per utilizzare una Google Virtual NIC (gVNIC), devi specificare un'immagine del sistema operativo che supporti gVNIC come valore per la proprietà linuxImage. Per l'elenco delle immagini del sistema operativo, vedi Dettagli del sistema operativo.

    Se non specifichi un valore per questa proprietà, l'interfaccia di rete viene selezionata automaticamente in base al tipo di macchina specificato per la proprietà instanceType.

    Questo argomento è disponibile nelle versioni dei modelli di Deployment Manager 202302060649 o successive.

    Gli esempi seguenti mostrano il modello di file di configurazione completato che definisce un cluster ad alta disponibilità per SAP HANA. Il cluster utilizza un bilanciatore del carico di rete passthrough interno per gestire l'IP virtuale.

    Deployment Manager esegue il deployment delle risorse Google Cloud definite nel file di configurazione, dopodiché gli script prendono il controllo per configurare il sistema operativo, installare SAP HANA, configurare la replica e configurare il cluster Linux HA.

    Fai clic su RHEL o SLES per visualizzare l'esempio specifico per il tuo sistema operativo.

    RHEL

    resources:
    - name: sap_hana_ha
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_ha_ilb/sap_hana_ha.py
      #
      # By default, this configuration file uses the latest release of the deployment
      # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
      # of the scripts, comment out the type property above and uncomment the type property below.
      #
      # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana_ha_ilb/sap_hana_ha.py
      #
      properties:
        primaryInstanceName: example-ha-vm1
        secondaryInstanceName: example-ha-vm2
        primaryZone: us-central1-a
        secondaryZone: us-central1-c
        instanceType: n2-highmem-32
        network: example-network
        subnetwork: example-subnet-us-central1
        linuxImage: family/rhel-8-1-sap-ha
        linuxImageProject: rhel-sap-cloud
        # SAP HANA parameters
        sap_hana_deployment_bucket: my-hana-bucket
        sap_hana_sid: HA1
        sap_hana_instance_number: 00
        sap_hana_sidadm_password: TempPa55word
        sap_hana_system_password: TempPa55word
        # VIP parameters
        sap_vip: 10.0.0.100
        primaryInstanceGroupName: ig-example-ha-vm1
        secondaryInstanceGroupName: ig-example-ha-vm2
        loadBalancerName: lb-ha1
        # Additional optional properties
        networkTag: hana-ha-ntwk-tag
        serviceAccount: sap-deploy-example@example-project-123456.iam.gserviceaccount.com

    SLES

    resources:
    - name: sap_hana_ha
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_ha_ilb/sap_hana_ha.py
      #
      # By default, this configuration file uses the latest release of the deployment
      # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
      # of the scripts, comment out the type property above and uncomment the type property below.
      #
      # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana_ha_ilb/sap_hana_ha.py
      #
      properties:
        primaryInstanceName: example-ha-vm1
        secondaryInstanceName: example-ha-vm2
        primaryZone: us-central1-a
        secondaryZone: us-central1-c
        instanceType: n2-highmem-32
        network: example-network
        subnetwork: example-subnet-us-central1
        linuxImage: family/sles-15-sp1-sap
        linuxImageProject: suse-sap-cloud
        # SAP HANA parameters
        sap_hana_deployment_bucket: my-hana-bucket
        sap_hana_sid: HA1
        sap_hana_instance_number: 00
        sap_hana_sidadm_password: TempPa55word
        sap_hana_system_password: TempPa55word
        # VIP parameters
        sap_vip: 10.0.0.100
        primaryInstanceGroupName: ig-example-ha-vm1
        secondaryInstanceGroupName: ig-example-ha-vm2
        loadBalancerName: lb-ha1
        # Additional optional properties
        networkTag: hana-ha-ntwk-tag
        serviceAccount: sap-deploy-example@example-project-123456.iam.gserviceaccount.com
  7. Crea le istanze:

    $ gcloud deployment-manager deployments create deployment-name --config template-name.yaml

    Il comando riportato sopra richiama Deployment Manager, che configura l'infrastruttura Google Cloud e poi passa il controllo a uno script che installa e configura SAP HANA e il cluster HA.

    Mentre Deployment Manager ha il controllo, i messaggi di stato vengono scritti in Cloud Shell. Dopo l'esecuzione degli script, i messaggi di stato vengono scritti in Logging e sono visualizzabili nella console Google Cloud, come descritto in Controllare i log.

    Il tempo di completamento può variare, ma l'intera procedura richiede in genere meno di 30 minuti.

Verifica del deployment del sistema HANA HA

La verifica di un cluster SAP HANA HA prevede diverse procedure:

  • Controllo del logging
  • Controllo della configurazione della VM e dell'installazione di SAP HANA
  • Controllo della configurazione del cluster
  • Controllare il bilanciatore del carico e l'integrità dei gruppi di istanze
  • Controllo del sistema SAP HANA utilizzando SAP HANA Studio
  • Eseguire un test di failover

Controlla i log

  1. Nella console Google Cloud, apri Cloud Logging per monitorare l'avanzamento dell'installazione e verificare la presenza di errori.

    Vai a Cloud Logging

  2. Filtra i log:

    Esplora log

    1. Nella pagina Esplora log, vai al riquadro Query.

    2. Nel menu a discesa Risorsa, seleziona Globale e poi fai clic su Aggiungi.

      Se non vedi l'opzione Globale, nell'editor di query inserisci la seguente query:

      resource.type="global"
      "Deployment"
      
    3. Fai clic su Esegui query.

    Visualizzatore log legacy

    • Nella pagina Visualizzatore log legacy, seleziona Globale come risorsa di logging nel menu del selettore di base.
  3. Analizza i log filtrati:

    • Se viene visualizzato "--- Finished", significa che l'elaborazione del deployment è completata e puoi procedere al passaggio successivo.
    • Se viene visualizzato un errore relativo alla quota:

      1. Nella pagina IAM e amministrazione Quote, aumenta le quote che non soddisfano i requisiti di SAP HANA elencati nella guida alla pianificazione di SAP HANA.

      2. Nella pagina Deployment di Deployment Manager, elimina il deployment per ripulire le VM e i dischi permanenti dall'installazione non riuscita.

      3. Esegui di nuovo il deployment.

Controlla la configurazione della VM e dell'installazione di SAP HANA

  1. Dopo aver eseguito il deployment del sistema SAP HANA senza errori, connettiti a ogni VM utilizzando SSH. Nella pagina Istanze VM di Compute Engine, puoi fare clic sul pulsante SSH per ogni istanza VM oppure utilizzare il metodo SSH che preferisci.

    Pulsante SSH nella pagina delle istanze VM di Compute Engine.

  2. Passa all'utente root.

    sudo su -
  3. Al prompt dei comandi, inserisci df -h. Assicurati di visualizzare un output che includa le directory /hana, ad esempio /hana/data.

    RHEL

    [root@example-ha-vm1 ~]# df -h
    Filesystem                        Size  Used Avail Use% Mounted on
    devtmpfs                          126G     0  126G   0% /dev
    tmpfs                             126G   54M  126G   1% /dev/shm
    tmpfs                             126G   25M  126G   1% /run
    tmpfs                             126G     0  126G   0% /sys/fs/cgroup
    /dev/sda2                          30G  5.4G   25G  18% /
    /dev/sda1                         200M  6.9M  193M   4% /boot/efi
    /dev/mapper/vg_hana-shared        251G   52G  200G  21% /hana/shared
    /dev/mapper/vg_hana-sap            32G  477M   32G   2% /usr/sap
    /dev/mapper/vg_hana-data          426G  9.8G  417G   3% /hana/data
    /dev/mapper/vg_hana-log           125G  7.0G  118G   6% /hana/log
    /dev/mapper/vg_hanabackup-backup  512G  9.3G  503G   2% /hanabackup
    tmpfs                              26G     0   26G   0% /run/user/900
    tmpfs                              26G     0   26G   0% /run/user/899
    tmpfs                              26G     0   26G   0% /run/user/1003

    SLES

    example-ha-vm1:~ # df -h
    Filesystem                        Size  Used Avail Use% Mounted on
    devtmpfs                          126G  8.0K  126G   1% /dev
    tmpfs                             189G   54M  189G   1% /dev/shm
    tmpfs                             126G   34M  126G   1% /run
    tmpfs                             126G     0  126G   0% /sys/fs/cgroup
    /dev/sda3                          30G  5.4G   25G  18% /
    /dev/sda2                          20M  2.9M   18M  15% /boot/efi
    /dev/mapper/vg_hana-shared        251G   50G  202G  20% /hana/shared
    /dev/mapper/vg_hana-sap            32G  281M   32G   1% /usr/sap
    /dev/mapper/vg_hana-data          426G  8.0G  418G   2% /hana/data
    /dev/mapper/vg_hana-log           125G  4.3G  121G   4% /hana/log
    /dev/mapper/vg_hanabackup-backup  512G  6.4G  506G   2% /hanabackup
    tmpfs                              26G     0   26G   0% /run/user/473
    tmpfs                              26G     0   26G   0% /run/user/900
    tmpfs                              26G     0   26G   0% /run/user/0
    tmpfs                              26G     0   26G   0% /run/user/1003
  4. Controlla lo stato del nuovo cluster inserendo il comando status specifico per il tuo sistema operativo:

    RHEL

    pcs status

    SLES

    crm status

    Dovresti vedere risultati simili all'esempio seguente, in cui entrambe le istanze VM sono avviate e example-ha-vm1 è l'istanza principale attiva:

    RHEL

    [root@example-ha-vm1 ~]# pcs status
    Cluster name: hacluster
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm1 (version 2.0.3-5.el8_2.4-4b1f869f0f) - partition with quorum
      * Last updated: Wed Jul  7 23:05:11 2021
      * Last change:  Wed Jul  7 23:04:43 2021 by root via crm_attribute on example-ha-vm2
      * 2 nodes configured
      * 8 resource instances configured
    
    Node List:
      * Online: [ example-ha-vm1 example-ha-vm2 ]
    
    Full List of Resources:
      * STONITH-example-ha-vm1      (stonith:fence_gce):    Started example-ha-vm2
      * STONITH-example-ha-vm2      (stonith:fence_gce):    Started example-ha-vm1
      * Resource Group: g-primary:
        * rsc_healthcheck_HA1       (service:haproxy):      Started example-ha-vm2
        * rsc_vip_HA1_00    (ocf::heartbeat:IPaddr2):       Started example-ha-vm2
      * Clone Set: SAPHanaTopology_HA1_00-clone [SAPHanaTopology_HA1_00]:
        * Started: [ example-ha-vm1 example-ha-vm2 ]
      * Clone Set: SAPHana_HA1_00-clone [SAPHana_HA1_00] (promotable):
        * Masters: [ example-ha-vm2 ]
        * Slaves: [ example-ha-vm1 ]
    
    Failed Resource Actions:
      * rsc_healthcheck_HA1_start_0 on example-ha-vm1 'error' (1): call=29, status='complete', exitreason='', last-rc-change='2021-07-07 21:07:35Z', queued=0ms, exec=2097ms
      * SAPHana_HA1_00_monitor_61000 on example-ha-vm1 'not running' (7): call=44, status='complete', exitreason='', last-rc-change='2021-07-07 21:09:49Z', queued=0ms, exec=0ms
    
    Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled

    SLES

    example-ha-vm1:~ # crm status
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm1 (version 2.0.4+20200616.2deceaa3a-3.9.1-2.0.4+20200616.2deceaa3a) - partition with quorum
      * Last updated: Wed Jul  7 22:57:59 2021
      * Last change:  Wed Jul  7 22:57:03 2021 by root via crm_attribute on example-ha-vm1
      * 2 nodes configured
      * 8 resource instances configured
    
    Node List:
      * Online: [ example-ha-vm1 example-ha-vm2 ]
    
    Full List of Resources:
      * STONITH-example-ha-vm1      (stonith:external/gcpstonith):   Started example-ha-vm2
      * STONITH-example-ha-vm2      (stonith:external/gcpstonith):   Started example-ha-vm1
      * Resource Group: g-primary:
        * rsc_vip_int-primary       (ocf::heartbeat:IPaddr2):        Started example-ha-vm1
        * rsc_vip_hc-primary        (ocf::heartbeat:anything):       Started example-ha-vm1
      * Clone Set: cln_SAPHanaTopology_HA1_HDB00 [rsc_SAPHanaTopology_HA1_HDB00]:
        * Started: [ example-ha-vm1 example-ha-vm2 ]
      * Clone Set: msl_SAPHana_HA1_HDB00 [rsc_SAPHana_HA1_HDB00] (promotable):
        * Masters: [ example-ha-vm1 ]
        * Slaves: [ example-ha-vm2 ]
  5. Passa all'utente amministratore SAP sostituendo SID_LC nel seguente comando con il valore SID specificato nel modello del file di configurazione. Utilizza le lettere minuscole.

    su - SID_LCadm
    
  6. Assicurati che i servizi SAP HANA, come hdbnameserver, hdbindexserver e altri, siano in esecuzione nell'istanza inserendo il seguente comando:

    HDB info
    
  7. Se utilizzi RHEL per SAP 9.0 o versioni successive, assicurati che i pacchettichkconfig e compat-openssl11 siano installati nell'istanza VM.

    Per ulteriori informazioni di SAP, consulta Nota SAP 3108316 - Red Hat Enterprise Linux 9.x: installazione e configurazione .

Controlla la configurazione del cluster

Controlla le impostazioni dei parametri del cluster. Controlla sia le impostazioni visualizzate dal software del cluster sia le impostazioni dei parametri nel file di configurazione del cluster. Confronta le tue impostazioni con quelle degli esempi riportati di seguito, che sono state create dagli script di automazione utilizzati in questa guida.

Fai clic sulla scheda del tuo sistema operativo.

RHEL

  1. Visualizza le configurazioni delle risorse del cluster:

    pcs config show

    L'esempio seguente mostra le configurazioni delle risorse create dagli script di automazione su RHEL 8.1 e versioni successive.

    Se utilizzi RHEL 7.7 o versioni precedenti, la definizione della risorsa Clone: SAPHana_HA1_00-clone non include Meta Attrs: promotable=true.

     Cluster Name: hacluster
     Corosync Nodes:
      example-rha-vm1 example-rha-vm2
     Pacemaker Nodes:
      example-rha-vm1 example-rha-vm2
    
     Resources:
      Group: g-primary
       Resource: rsc_healthcheck_HA1 (class=service type=haproxy)
        Operations: monitor interval=10s timeout=20s (rsc_healthcheck_HA1-monitor-interval-10s)
                    start interval=0s timeout=100 (rsc_healthcheck_HA1-start-interval-0s)
                    stop interval=0s timeout=100 (rsc_healthcheck_HA1-stop-interval-0s)
       Resource: rsc_vip_HA1_00 (class=ocf provider=heartbeat type=IPaddr2)
        Attributes: cidr_netmask=32 ip=10.128.15.100 nic=eth0
        Operations: monitor interval=3600s timeout=60s (rsc_vip_HA1_00-monitor-interval-3600s)
                    start interval=0s timeout=20s (rsc_vip_HA1_00-start-interval-0s)
                    stop interval=0s timeout=20s (rsc_vip_HA1_00-stop-interval-0s)
      Clone: SAPHanaTopology_HA1_00-clone
       Meta Attrs: clone-max=2 clone-node-max=1 interleave=true
       Resource: SAPHanaTopology_HA1_00 (class=ocf provider=heartbeat type=SAPHanaTopology)
        Attributes: InstanceNumber=00 SID=HA1
        Operations: methods interval=0s timeout=5 (SAPHanaTopology_HA1_00-methods-interval-0s)
                    monitor interval=10 timeout=600 (SAPHanaTopology_HA1_00-monitor-interval-10)
                    reload interval=0s timeout=5 (SAPHanaTopology_HA1_00-reload-interval-0s)
                    start interval=0s timeout=600 (SAPHanaTopology_HA1_00-start-interval-0s)
                    stop interval=0s timeout=300 (SAPHanaTopology_HA1_00-stop-interval-0s)
      Clone: SAPHana_HA1_00-clone
       Meta Attrs: promotable=true
       Resource: SAPHana_HA1_00 (class=ocf provider=heartbeat type=SAPHana)
        Attributes: AUTOMATED_REGISTER=true DUPLICATE_PRIMARY_TIMEOUT=7200 InstanceNumber=00 PREFER_SITE_TAKEOVER=true SID=HA1
        Meta Attrs: clone-max=2 clone-node-max=1 interleave=true notify=true
        Operations: demote interval=0s timeout=3600 (SAPHana_HA1_00-demote-interval-0s)
                    methods interval=0s timeout=5 (SAPHana_HA1_00-methods-interval-0s)
                    monitor interval=61 role=Slave timeout=700 (SAPHana_HA1_00-monitor-interval-61)
                    monitor interval=59 role=Master timeout=700 (SAPHana_HA1_00-monitor-interval-59)
                    promote interval=0s timeout=3600 (SAPHana_HA1_00-promote-interval-0s)
                    reload interval=0s timeout=5 (SAPHana_HA1_00-reload-interval-0s)
                    start interval=0s timeout=3600 (SAPHana_HA1_00-start-interval-0s)
                    stop interval=0s timeout=3600 (SAPHana_HA1_00-stop-interval-0s)
    
     Stonith Devices:
      Resource: STONITH-example-rha-vm1 (class=stonith type=fence_gce)
       Attributes: pcmk_delay_max=30 pcmk_monitor_retries=4 pcmk_reboot_timeout=300 port=example-rha-vm1 project=sap-certification-env zone=us-central1-a
       Operations: monitor interval=300s timeout=120s (STONITH-example-rha-vm1-monitor-interval-300s)
                   start interval=0 timeout=60s (STONITH-example-rha-vm1-start-interval-0)
      Resource: STONITH-example-rha-vm2 (class=stonith type=fence_gce)
       Attributes: pcmk_monitor_retries=4 pcmk_reboot_timeout=300 port=example-rha-vm2 project=sap-certification-env zone=us-central1-c
       Operations: monitor interval=300s timeout=120s (STONITH-example-rha-vm2-monitor-interval-300s)
                   start interval=0 timeout=60s (STONITH-example-rha-vm2-start-interval-0)
     Fencing Levels:
    
     Location Constraints:
       Resource: STONITH-example-rha-vm1
         Disabled on: example-rha-vm1 (score:-INFINITY) (id:location-STONITH-example-rha-vm1-example-rha-vm1--INFINITY)
       Resource: STONITH-example-rha-vm2
         Disabled on: example-rha-vm2 (score:-INFINITY) (id:location-STONITH-example-rha-vm2-example-rha-vm2--INFINITY)
     Ordering Constraints:
       start SAPHanaTopology_HA1_00-clone then start SAPHana_HA1_00-clone (kind:Mandatory) (non-symmetrical) (id:order-SAPHanaTopology_HA1_00-clone-SAPHana_HA1_00-clone-mandatory)
     Colocation Constraints:
       g-primary with SAPHana_HA1_00-clone (score:4000) (rsc-role:Started) (with-rsc-role:Master) (id:colocation-g-primary-SAPHana_HA1_00-clone-4000)
     Ticket Constraints:
    
     Alerts:
      No alerts defined
    
     Resources Defaults:
      migration-threshold=5000
      resource-stickiness=1000
     Operations Defaults:
      timeout=600s
    
     Cluster Properties:
      cluster-infrastructure: corosync
      cluster-name: hacluster
      dc-version: 2.0.2-3.el8_1.2-744a30d655
      have-watchdog: false
      stonith-enabled: true
      stonith-timeout: 300s
    
     Quorum:
       Options:
    
  2. Visualizza il file di configurazione del cluster, corosync.conf:

    cat /etc/corosync/corosync.conf

    L'esempio seguente mostra i parametri impostati dagli script di automazione per RHEL 8.1 e versioni successive.

    Se utilizzi RHEL 7.7 o versioni precedenti, il valore di transport: è udpu invece di knet:

     totem {
         version: 2
         cluster_name: hacluster
         transport: knet
         join: 60
         max_messages: 20
         token: 20000
         token_retransmits_before_loss_const: 10
         crypto_cipher: aes256
         crypto_hash: sha256
     }
    
     nodelist {
         node {
             ring0_addr: example-rha-vm1
             name: example-rha-vm1
             nodeid: 1
         }
    
         node {
             ring0_addr: example-rha-vm2
             name: example-rha-vm2
             nodeid: 2
         }
     }
    
     quorum {
         provider: corosync_votequorum
         two_node: 1
     }
    
     logging {
         to_logfile: yes
         logfile: /var/log/cluster/corosync.log
         to_syslog: yes
         timestamp: on
     }
    

SLES

  1. Visualizza le configurazioni delle risorse del cluster:

    crm config show

    Gli script di automazione utilizzati da questa guida creano le configurazioni delle risorse mostrate nell'esempio seguente:

     node 1: example-ha-vm1 \
             attributes hana_ha1_op_mode=logreplay lpa_ha1_lpt=1635380335 hana_ha1_srmode=syncmem hana_ha1_vhost=example-ha-vm1 hana_ha1_remoteHost=example-ha-vm2 hana_ha1_site=example-ha-vm1
     node 2: example-ha-vm2 \
             attributes lpa_ha1_lpt=30 hana_ha1_op_mode=logreplay hana_ha1_vhost=example-ha-vm2 hana_ha1_site=example-ha-vm2 hana_ha1_srmode=syncmem hana_ha1_remoteHost=example-ha-vm1
     primitive STONITH-example-ha-vm1 stonith:external/gcpstonith \
             op monitor interval=300s timeout=120s \
             op start interval=0 timeout=60s \
             params instance_name=example-ha-vm1 gcloud_path="/usr/bin/gcloud" logging=yes pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30
     primitive STONITH-example-ha-vm2 stonith:external/gcpstonith \
             op monitor interval=300s timeout=120s \
             op start interval=0 timeout=60s \
             params instance_name=example-ha-vm2 gcloud_path="/usr/bin/gcloud" logging=yes pcmk_reboot_timeout=300 pcmk_monitor_retries=4
     primitive rsc_SAPHanaTopology_HA1_HDB00 ocf:suse:SAPHanaTopology \
             operations $id=rsc_sap2_HA1_HDB00-operations \
             op monitor interval=10 timeout=600 \
             op start interval=0 timeout=600 \
             op stop interval=0 timeout=300 \
             params SID=HA1 InstanceNumber=00
     primitive rsc_SAPHana_HA1_HDB00 ocf:suse:SAPHana \
             operations $id=rsc_sap_HA1_HDB00-operations \
             op start interval=0 timeout=3600 \
             op stop interval=0 timeout=3600 \
             op promote interval=0 timeout=3600 \
             op demote interval=0 timeout=3600 \
             op monitor interval=60 role=Master timeout=700 \
             op monitor interval=61 role=Slave timeout=700 \
             params SID=HA1 InstanceNumber=00 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true
     primitive rsc_vip_hc-primary anything \
             params binfile="/usr/bin/socat" cmdline_options="-U TCP-LISTEN:60000,backlog=10,fork,reuseaddr /dev/null" \
             op monitor timeout=20s interval=10s \
             op_params depth=0
     primitive rsc_vip_int-primary IPaddr2 \
             params ip=10.128.15.101 cidr_netmask=32 nic=eth0 \
             op monitor interval=3600s timeout=60s
     group g-primary rsc_vip_int-primary rsc_vip_hc-primary
     ms msl_SAPHana_HA1_HDB00 rsc_SAPHana_HA1_HDB00 \
             meta notify=true clone-max=2 clone-node-max=1 target-role=Started interleave=true
     clone cln_SAPHanaTopology_HA1_HDB00 rsc_SAPHanaTopology_HA1_HDB00 \
             meta clone-node-max=1 target-role=Started interleave=true
     location LOC_STONITH_example-ha-vm1 STONITH-example-ha-vm1 -inf: example-ha-vm1
     location LOC_STONITH_example-ha-vm2 STONITH-example-ha-vm2 -inf: example-ha-vm2
     colocation col_saphana_ip_HA1_HDB00 4000: g-primary:Started msl_SAPHana_HA1_HDB00:Master
     order ord_SAPHana_HA1_HDB00 Optional: cln_SAPHanaTopology_HA1_HDB00 msl_SAPHana_HA1_HDB00
     property cib-bootstrap-options: \
             have-watchdog=false \
             dc-version="1.1.24+20210811.f5abda0ee-3.18.1-1.1.24+20210811.f5abda0ee" \
             cluster-infrastructure=corosync \
             cluster-name=hacluster \
             maintenance-mode=false \
             stonith-timeout=300s \
             stonith-enabled=true
     rsc_defaults rsc-options: \
             resource-stickiness=1000 \
             migration-threshold=5000
     op_defaults op-options: \
             timeout=600
    
  2. Visualizza il file di configurazione del cluster, corosync.conf:

    cat /etc/corosync/corosync.conf

    Gli script di automazione utilizzati da questa guida specificano le impostazioni dei parametri nel file corosync.conf come mostrato nell'esempio seguente:

     totem {
       version: 2
       secauth: off
       crypto_hash: sha1
       crypto_cipher: aes256
       cluster_name: hacluster
       clear_node_high_bit: yes
       token: 20000
       token_retransmits_before_loss_const: 10
       join: 60
       max_messages: 20
       transport: udpu
       interface {
         ringnumber: 0
         bindnetaddr: 10.128.1.63
         mcastport: 5405
         ttl: 1
       }
     }
     logging {
       fileline: off
       to_stderr: no
       to_logfile: no
       logfile: /var/log/cluster/corosync.log
       to_syslog: yes
       debug: off
       timestamp: on
       logger_subsys {
         subsys: QUORUM
         debug: off
       }
     }
     nodelist {
       node {
         ring0_addr: example-ha-vm1
         nodeid: 1
       }
       node {
         ring0_addr: example-ha-vm2
         nodeid: 2
       }
     }
     quorum {
       provider: corosync_votequorum
       expected_votes: 2
       two_node: 1
     }
    

Controlla il bilanciatore del carico e lo stato dei gruppi di istanze

Per verificare che il bilanciatore del carico e il controllo di integrità siano stati configurati correttamente, controlla il bilanciatore del carico e i gruppi di istanze nella console Google Cloud.

  1. Apri la pagina Bilanciamento del carico nella console Google Cloud:

    Vai a Cloud Load Balancing

  2. Nell'elenco dei bilanciatori del carico, verifica che sia stato creato un bilanciatore del carico per il cluster HA.

  3. Nella pagina Dettagli del bilanciatore del carico, nella colonna Integro in Gruppo di istanze nella sezione Backend, verifica che uno dei gruppi di istanze mostri "1/1" e l'altro "0/1". Dopo un failover, l'indicatore di stato "1/1" passa al nuovo gruppo di istanze attive.

    Mostra la pagina dei dettagli del bilanciatore del carico con il gruppo di istanze principali attivo indicato da "1/1" e quello secondario inattivo indicato da "0/1".

Controllare il sistema SAP HANA utilizzando SAP HANA Studio

Puoi utilizzare SAP HANA Cockpit o SAP HANA Studio per monitorare e gestire i sistemi SAP HANA in un cluster ad alta disponibilità.

  1. Connettiti al sistema HANA utilizzando SAP HANA Studio. Quando definisci la connessione, specifica i seguenti valori:

    • Nel riquadro Specifica sistema, specifica l'indirizzo IP dinamico come Nome host.
    • Nel riquadro Proprietà connessione, per l'autenticazione utente del database, specifica il nome del superutente del database e la password specificata per la proprietà sap_hana_system_password nel file template.yaml.

    Per informazioni di SAP sull'installazione di SAP HANA Studio, consulta la Guida all'installazione e all'aggiornamento di SAP HANA Studio.

  2. Dopo aver collegato SAP HANA Studio al sistema HANA HA, visualizza la panoramica del sistema facendo doppio clic sul nome del sistema nel riquadro di navigazione sul lato sinistro della finestra.

    Screenshot del riquadro di navigazione in SAP HANA Studio

  3. Nella sezione Informazioni generali della scheda Panoramica, verifica che:

    • Lo stato di operatività mostra "Tutti i servizi avviati".
    • Lo stato della replica di sistema mostra "Tutti i servizi sono attivi e sincronizzati".

    Screenshot della scheda Panoramica in SAP HANA Studio

  4. Conferma la modalità di replica facendo clic sul link Stato della replica di sistema nella sezione Informazioni generali. La replica sincrona è indicata daSYNCMEM nella colonna REPLICATION_MODE della scheda Replica di sistema.

    Screenshot della scheda Stato replica del sistema in SAP HANA Studio

Se uno dei passaggi di convalida indica che l'installazione non è riuscita:

  1. Risolvi gli errori.
  2. Elimina il deployment dalla pagina Deployment.
  3. Ricrea le istanze, come descritto nell'ultimo passaggio della sezione precedente.

Esegui un test di failover

Per eseguire un test di failover:

  1. Connettiti alla VM principale tramite SSH. Puoi connetterti dalla pagina delle istanze VM di Compute Engine facendo clic sul pulsante SSH per ogni istanza VM oppure puoi utilizzare il metodo SSH che preferisci.

  2. Al prompt dei comandi, inserisci il seguente comando:

    sudo ip link set eth0 down

    Il comando ip link set eth0 down attiva un failover interrompendo le comunicazioni con l'host principale.

  3. Riconnettiti a uno degli host utilizzando SSH e passa all'utente root.

  4. Verifica che l'host principale sia ora attivo sulla VM che in precedenza conteneva l'host secondario. Il riavvio automatico è abilitato nel cluster, quindi l'host arrestato si riavvierà e assumerà il ruolo di host secondario.

    RHEL

    pcs status

    SLES

    crm status

    Gli esempi riportati di seguito mostrano che i ruoli su ciascun host sono stati scambiati.

    RHEL

    [root@example-ha-vm1 ~]# pcs status
    Cluster name: hacluster
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm1 (version 2.0.3-5.el8_2.3-4b1f869f0f) - partition with quorum
      * Last updated: Fri Mar 19 21:22:07 2021
      * Last change:  Fri Mar 19 21:21:28 2021 by root via crm_attribute on example-ha-vm2
      * 2 nodes configured
      * 8 resource instances configured
    
    Node List:
      * Online: [ example-ha-vm1 example-ha-vm2 ]
    
    Full List of Resources:
      * STONITH-example-ha-vm1  (stonith:fence_gce):    Started example-ha-vm2
      * STONITH-example-ha-vm2  (stonith:fence_gce):    Started example-ha-vm1
      * Resource Group: g-primary:
        * rsc_healthcheck_HA1   (service:haproxy):  Started example-ha-vm2
        * rsc_vip_HA1_00    (ocf::heartbeat:IPaddr2):   Started example-ha-vm2
      * Clone Set: SAPHanaTopology_HA1_00-clone [SAPHanaTopology_HA1_00]:
        * Started: [ example-ha-vm1 example-ha-vm2 ]
      * Clone Set: SAPHana_HA1_00-clone [SAPHana_HA1_00] (promotable):
        * Masters: [ example-ha-vm2 ]
        * Slaves: [ example-ha-vm1 ]
    

    SLES

    example-ha-vm2:~ #
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm2 (version 2.0.4+20200616.2deceaa3a-3.9.1-2.0.4+20200616.2deceaa3a) - partition with quorum
      * Last updated: Thu Jul  8 17:33:44 2021
      * Last change:  Thu Jul  8 17:33:07 2021 by root via crm_attribute on example-ha-vm2
      * 2 nodes configured
      * 8 resource instances configured
    
    Node List:
      * Online: [ example-ha-vm1 example-ha-vm2 ]
    
    Full List of Resources:
      * STONITH-example-ha-vm1      (stonith:external/gcpstonith):   Started example-ha-vm2
      * STONITH-example-ha-vm2      (stonith:external/gcpstonith):   Started example-ha-vm1
      * Resource Group: g-primary:
        * rsc_vip_int-primary       (ocf::heartbeat:IPaddr2):        Started example-ha-vm2
        * rsc_vip_hc-primary        (ocf::heartbeat:anything):       Started example-ha-vm2
      * Clone Set: cln_SAPHanaTopology_HA1_HDB00 [rsc_SAPHanaTopology_HA1_HDB00]:
        * Started: [ example-ha-vm1 example-ha-vm2 ]
      * Clone Set: msl_SAPHana_HA1_HDB00 [rsc_SAPHana_HA1_HDB00] (promotable):
        * Masters: [ example-ha-vm2 ]
        * Slaves: [ example-ha-vm1 ]
  5. Nella pagina Dettagli del bilanciatore del carico della console, verifica che la nuova istanza principale attiva mostri "1/1" nella colonna Intatto. Aggiorna la pagina, se necessario.

    Vai a Cloud Load Balancing

    Ad esempio:

    Mostra la pagina dei dettagli del bilanciatore del carico con l'istanza "ig-example-ha-vm2" che mostra "1/1" nella colonna Integrità.

  6. In SAP HANA Studio, verifica di essere ancora connesso al sistema facendo clic due volte sulla voce del sistema nel riquadro di navigazione per aggiornare le informazioni del sistema.

  7. Fai clic sul link Stato della replica di sistema per verificare che gli host principali e secondari siano stati scambiati e siano attivi.

    Screenshot della scheda Stato replica del sistema in SAP HANA Studio

Convalida l'installazione dell'agente di Google Cloud per SAP

Dopo aver eseguito il deployment di una VM e installato il sistema SAP, verifica che l'agente di Google Cloud per SAP funzioni correttamente.

Verificare che l'agente di Google Cloud per SAP sia in esecuzione

Per verificare che l'agente sia in esecuzione:

  1. Stabilisci una connessione SSH con la tua istanza Compute Engine.

  2. Esegui questo comando:

    systemctl status google-cloud-sap-agent

    Se l'agente funziona correttamente, l'output contiene active (running). Ad esempio:

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

Se l'agente non è in esecuzione, riavvialo.

Verificare che l'agente host SAP riceva le metriche

Per verificare che le metriche dell'infrastruttura vengano raccolte dall'agente di Google Cloud per SAP e inviate correttamente all'agente host SAP, segui questi passaggi:

  1. Nel sistema SAP, inserisci la transazione ST06.
  2. Nel riquadro di panoramica, controlla la disponibilità e i contenuti dei seguenti campi per la configurazione end-to-end corretta dell'infrastruttura di monitoraggio di SAP e Google:

    • Fornitore cloud: Google Cloud Platform
    • Accesso al monitoraggio avanzato: TRUE
    • Dettagli sul monitoraggio avanzato: ACTIVE

Configurare il monitoraggio per SAP HANA

Se vuoi, puoi monitorare le tue istanze SAP HANA utilizzando l'agente di Google Cloud per SAP. Dalla versione 2.0, puoi configurare l'agente per raccogliere le metriche di monitoraggio di SAP HANA e inviarle a Cloud Monitoring. Cloud Monitoring ti consente di creare dashboard per visualizzare queste metriche, configurare avvisi in base alle soglie delle metriche e altro ancora.

Per monitorare un cluster HA utilizzando l'agente per SAP di Google Cloud, assicurati di seguire le indicazioni riportate in Configurazione ad alta disponibilità per l'agente.

Per ulteriori informazioni sulla raccolta delle metriche di monitoraggio di SAP HANA utilizzando l'agente di Google Cloud per SAP, consulta la raccolta delle metriche di monitoraggio di SAP HANA.

Attivare il riavvio rapido di SAP HANA

Google Cloud consiglia vivamente di attivare il riavvio rapido di SAP HANA per ogni istanza di SAP HANA, in particolare per le istanze più grandi. Il riavvio rapido di SAP HANA riduce il tempo di riavvio nel caso in cui SAP HANA si arresti, ma il sistema operativo rimanga in esecuzione.

Come configurato dagli script di automazione forniti da Google Cloud, le impostazioni del sistema operativo e del kernel supportano già il riavvio rapido di SAP HANA. Devi definire il file system tmpfs e configurare SAP HANA.

Per definire il file system tmpfs e configurare SAP HANA, puoi seguire i passaggi manuali o utilizzare lo script di automazione fornito da Google Cloud per attivare il riavvio rapido di SAP HANA. Per ulteriori informazioni, consulta:

Per istruzioni autorevoli complete su SAP HANA Fast Restart, consulta la documentazione dell'opzione SAP HANA Fast Restart.

Passaggi manuali

Configura il file system tmpfs

Dopo aver eseguito il deployment delle VM host e dei sistemi SAP HANA di base, devi creare e montare le directory per i nodi NUMA nel file system tmpfs.

Mostra la topologia NUMA della VM

Prima di poter mappare il file system tmpfs richiesto, devi sapere quanti nodi NUMA sono presenti nella tua VM. Per visualizzare i nodi NUMA disponibili su una VM Compute Engine, inserisci il seguente comando:

lscpu | grep NUMA

Ad esempio, un tipo di VM m2-ultramem-208 ha quattro nodi NUMA, numerati da 0 a 3, come mostrato nell'esempio seguente:

NUMA node(s):        4
NUMA node0 CPU(s):   0-25,104-129
NUMA node1 CPU(s):   26-51,130-155
NUMA node2 CPU(s):   52-77,156-181
NUMA node3 CPU(s):   78-103,182-207
Crea le directory dei nodi NUMA

Crea una directory per ogni nodo NUMA nella VM e imposta le autorizzazioni.

Ad esempio, per quattro nodi NUMA numerati da 0 a 3:

mkdir -pv /hana/tmpfs{0..3}/SID
chown -R SID_LCadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID
Monta le directory dei nodi NUMA su tmpfs

Monta le directory del file system tmpfs e specifica una preferenza per il nodo NUMA per ciascuna con mpol=prefer:

SID specifica il SID con lettere maiuscole.

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0 /hana/tmpfs0/SID
mount tmpfsSID1 -t tmpfs -o mpol=prefer:1 /hana/tmpfs1/SID
mount tmpfsSID2 -t tmpfs -o mpol=prefer:2 /hana/tmpfs2/SID
mount tmpfsSID3 -t tmpfs -o mpol=prefer:3 /hana/tmpfs3/SID
Aggiorna /etc/fstab

Per assicurarti che i punti di montaggio siano disponibili dopo un riavvio del sistema operativo, aggiungi voci alla tabella del file system, /etc/fstab:

tmpfsSID0 /hana/tmpfs0/SID tmpfs rw,relatime,mpol=prefer:0
tmpfsSID1 /hana/tmpfs1/SID tmpfs rw,relatime,mpol=prefer:1
tmpfsSID1 /hana/tmpfs2/SID tmpfs rw,relatime,mpol=prefer:2
tmpfsSID1 /hana/tmpfs3/SID tmpfs rw,relatime,mpol=prefer:3

(Facoltativo) Imposta limiti per l'utilizzo della memoria

Il file system tmpfs può aumentare e diminuire dinamicamente.

Per limitare la memoria utilizzata dal file system tmpfs, puoi impostare un limite di dimensioni per un volume del nodo NUMA con l'opzione size. Ad esempio:

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID

Puoi anche limitare l'utilizzo complessivo della memoria tmpfs per tutti i nodi NUMA di una determinata istanza SAP HANA e di un determinato nodo del server impostando il parametro persistent_memory_global_allocation_limit nella sezione [memorymanager] del file global.ini.

Configurazione di SAP HANA per il riavvio rapido

Per configurare SAP HANA per il riavvio rapido, aggiorna il file global.ini e specifica le tabelle da archiviare nella memoria persistente.

Aggiorna la sezione [persistence] nel file global.ini

Configura la sezione [persistence] nel file global.ini di SAP HANA per fare riferimento alle località tmpfs. Separa ogni località tmpfs con un punto e virgola:

[persistence]
basepath_datavolumes = /hana/data
basepath_logvolumes = /hana/log
basepath_persistent_memory_volumes = /hana/tmpfs0/SID;/hana/tmpfs1/SID;/hana/tmpfs2/SID;/hana/tmpfs3/SID

L'esempio precedente specifica quattro volumi di memoria per quattro nodi NUMA, che corrispondono a m2-ultramem-208. Se esegui la tua esecuzione su m2-ultramem-416, devi configurare otto volumi di memoria (0-7).

Riavvia SAP HANA dopo aver modificato il file global.ini.

Ora SAP HANA può utilizzare la posizione tmpfs come spazio di memoria permanente.

Specifica le tabelle da archiviare nella memoria persistente

Specifica tabelle o partizioni di colonne specifiche da archiviare nella memoria permanente.

Ad esempio, per attivare la memoria persistente per una tabella esistente, esegui la query SQL:

ALTER TABLE exampletable persistent memory ON immediate CASCADE

Per modificare il valore predefinito per le nuove tabelle, aggiungi il parametro table_default nel file indexserver.ini. Ad esempio:

[persistent_memory]
table_default = ON

Per ulteriori informazioni su come controllare le colonne, le tabelle e le visualizzazioni di monitoraggio che forniscono informazioni dettagliate, consulta Memoria persistente SAP HANA.

Passaggi automatici

Lo script di automazione fornito da Google Cloud per attivare il riavvio rapido di SAP HANA apporta modifiche alle directory /hana/tmpfs*, al file /etc/fstab e alla configurazione di SAP HANA. Quando esegui lo script, potresti dover eseguire passaggi aggiuntivi a seconda che si tratti del deployment iniziale del sistema SAP HANA o se stai ridimensionando la macchina a una dimensione NUMA diversa.

Per il deployment iniziale del sistema SAP HANA o per il ridimensionamento della macchina al fine di aumentare il numero di nodi NUMA, assicurati che SAP HANA sia in esecuzione durante l'esecuzione dello script di automazione fornito da Google Cloud per attivare il riavvio rapido di SAP HANA.

Quando redimensioni la macchina per ridurre il numero di nodi NUMA, assicurati che SAP HANA sia interrotta durante l'esecuzione dello script di automazione fornito da Google Cloud per attivare il riavvio rapido di SAP HANA. Dopo l'esecuzione dello script, devi aggiornare manualmente la configurazione di SAP HANA per completare la configurazione del riavvio rapido di SAP HANA. Per ulteriori informazioni, consulta la configurazione di SAP HANA per il riavvio rapido.

Per attivare il riavvio rapido di SAP HANA, segui questi passaggi:

  1. Stabilisci una connessione SSH con la VM host.

  2. Passa al root:

    sudo su -

  3. Scarica lo script sap_lib_hdbfr.sh:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
  4. Rendi eseguibile il file:

    chmod +x sap_lib_hdbfr.sh
  5. Verifica che lo script non contenga errori:

    vi sap_lib_hdbfr.sh
    ./sap_lib_hdbfr.sh -help

    Se il comando restituisce un errore, contatta l'assistenza clienti Google Cloud. Per ulteriori informazioni su come contattare l'assistenza clienti, consulta Assistenza per SAP su Google Cloud.

  6. Esegui lo script dopo aver sostituito l'ID sistema (SID) e la password di SAP HANA per l'utente SYSTEM del database SAP HANA. Per fornire la password in modo sicuro, ti consigliamo di utilizzare un secret in Secret Manager.

    Esegui lo script utilizzando il nome di un secret in Secret Manager. Questo segreto deve esistere nel progetto Google Cloud che contiene l'istanza VM di hosting.

    sudo ./sap_lib_hdbfr.sh -h 'SID' -s SECRET_NAME 

    Sostituisci quanto segue:

    • SID: specifica l'SID con lettere maiuscole. Ad esempio, AHA.
    • SECRET_NAME: specifica il nome del segreto corrispondente alla password per l'utente SYSTEM del database SAP HANA. Questo segreto deve esistere nel progetto Google Cloud che contiene l'istanza VM host.

    In alternativa, puoi eseguire lo script utilizzando una password in testo normale. Dopo aver attivato il riavvio rapido di SAP HANA, assicurati di cambiare la password. L'utilizzo di una password in testo normale non è consigliato perché la password verrà registrata nella cronologia della riga di comando della VM.

    sudo ./sap_lib_hdbfr.sh -h 'SID' -p 'PASSWORD'

    Sostituisci quanto segue:

    • SID: specifica l'SID con lettere maiuscole. Ad esempio, AHA.
    • PASSWORD: specifica la password per l'utente SYSTEM del database SAP HANA.

Se l'esecuzione iniziale è andata a buon fine, dovresti visualizzare un output simile al seguente:

INFO - Script is running in standalone mode
ls: cannot access '/hana/tmpfs*': No such file or directory
INFO - Setting up HANA Fast Restart for system 'TST/00'.
INFO - Number of NUMA nodes is 2
INFO - Number of directories /hana/tmpfs* is 0
INFO - HANA version 2.57
INFO - No directories /hana/tmpfs* exist. Assuming initial setup.
INFO - Creating 2 directories /hana/tmpfs* and mounting them
INFO - Adding /hana/tmpfs* entries to /etc/fstab. Copy is in /etc/fstab.20220625_030839
INFO - Updating the HANA configuration.
INFO - Running command: select * from dummy
DUMMY
"X"
1 row selected (overall time 4124 usec; server time 130 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_persistent_memory_volumes') = '/hana/tmpfs0/TST;/hana/tmpfs1/TST;'
0 rows affected (overall time 3570 usec; server time 2239 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistent_memory', 'table_unload_action') = 'retain';
0 rows affected (overall time 4308 usec; server time 2441 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('persistent_memory', 'table_default') = 'ON';
0 rows affected (overall time 3422 usec; server time 2152 usec)

Configura l'agente di monitoraggio di Google per SAP HANA

Se vuoi, puoi configurare l'agente di monitoraggio Google per SAP HANA, che raccoglie le metriche da SAP HANA e le invia a Monitoring. Il monitoraggio ti consente di creare dashboard per le tue metriche, configurare avvisi personalizzati in base alle soglie delle metriche e altro ancora.

Per monitorare un cluster HA, installa l'agente di monitoraggio su un'istanza VM al di fuori del cluster. Specifica l'indirizzo IP dinamico del cluster come indirizzo IP dell'istanza host da monitorare.

Per ulteriori informazioni sull'impostazione e sulla configurazione dell'agente di monitoraggio Google per SAP HANA, consulta la Guida dell'utente dell'agente di monitoraggio SAP HANA.

Connettiti a SAP HANA

Tieni presente che, poiché queste istruzioni non utilizzano un indirizzo IP esterno per SAP HANA, puoi connetterti alle istanze SAP HANA solo tramite l'istanza bastione utilizzando SSH o tramite il server Windows tramite SAP HANA Studio.

  • Per connetterti a SAP HANA tramite l'istanza bastion, connettiti all'host bastion e poi alle istanze SAP HANA utilizzando un client SSH di tua scelta.

  • Per connetterti al database SAP HANA tramite SAP HANA Studio, utilizza un client desktop remoto per connetterti all'istanza Windows Server. Dopo la connessione, installa manualmente SAP HANA Studio e accedi al tuo database SAP HANA.

Configura HANA Active/Active (lettura abilitata)

A partire da SAP HANA 2.0 SPS1, puoi configurare HANA Active/Active (Read Enabled) in un cluster Pacemaker. Per istruzioni, vedi:

Eseguire le attività di post-deployment

Prima di utilizzare l'istanza SAP HANA, ti consigliamo di eseguire i seguenti passaggi di post-deployment. Per ulteriori informazioni, consulta la Guida all'installazione e all'aggiornamento di SAP HANA.

  1. Modifica le password temporanee per l'amministratore di sistema SAP HANA e per il superutente del database.

  2. Aggiorna il software SAP HANA con le patch più recenti.

  3. Installa eventuali componenti aggiuntivi come le librerie di funzioni per le applicazioni (AFL) o l'accesso ai dati intelligenti (SDA).

  4. Configura e esegui il backup del nuovo database SAP HANA. Per ulteriori informazioni, consulta la guida alle operazioni di SAP HANA.

Passaggi successivi