Terraform: guida alla configurazione del cluster ad alta disponibilità SAP HANA

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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

La guida utilizza Terraform per eseguire il deployment di due macchine virtuali (VM) Compute Engine, due sistemi di scale up SAP HANA, un indirizzo IP virtuale (VIP) con un'implementazione di bilanciatore del carico TCP/UDP interno e un cluster ad alta disponibilità basato su sistema operativo, tutto in base alle best practice di Google Cloud, SAP e il fornitore del sistema operativo.

Uno dei sistemi SAP HANA funziona come sistema principale e attivo e le altre funzioni come sistema secondario in standby. Esegui il deployment di entrambi i sistemi SAP HANA all'interno della stessa area geografica, idealmente in zone diverse.

Panoramica di un cluster Linux ad alta disponibilità per un sistema di scale up SAP HANA a nodo singolo

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

  • Il gestore di risorse del cluster ad alta disponibilità di Pacemaker.
  • Un meccanismo di scherma Google Cloud.
  • Un IP virtuale (VIP) che utilizza un'implementazione del bilanciatore del carico interno TCP di livello 4, tra cui:
    • Una prenotazione dell'indirizzo IP che selezioni per il VIP
    • Due gruppi di istanze Compute Engine
    • Un bilanciatore del carico interno TCP
    • Un controllo di integrità di Compute Engine
  • Nei cluster RHEL HA:
    • Il cappello rosso ad alta disponibilità
    • Agente di risorse Red Hat e pacchetti di recinzioni
  • Nei cluster SLES HA:
    • Il pattern ad alta disponibilità di SUSE.
    • Il pacchetto dell'agente di risorsa 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 cluster ad alta disponibilità Linux o host in standby, utilizza la Terraform: SAP HANA Deployment Guide.

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

Prerequisiti

Prima di creare il cluster ad alta disponibilità SAP HANA, 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 tuo progetto ha una rete VPC predefinita, non utilizzarla. Crea invece la 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 Monitoring di Google. Se utilizzi una delle immagini Linux con certificazione SAP disponibili da Google Cloud, l'istanza VM richiede anche l'accesso a Internet per registrare la licenza e accedere ai repository dei fornitori del sistema operativo. La configurazione con un gateway NAT e con i tag di rete VM supporta l'accesso, anche se le VM di destinazione non hanno IP esterni.

Per creare una rete VPC per il tuo progetto, completa i seguenti passaggi:

  1. Creare una rete in modalità personalizzata. Per scoprire di più, consulta Creazione di una rete in modalità personalizzata.

  2. Crea una subnet e specifica l'area geografica e l'intervallo IP. Per saperne di più, consulta Aggiunta di subnet.

Configurazione di un gateway NAT

Se devi creare una o più VM senza indirizzi IP pubblici, devi utilizzare la traduzione dell'indirizzo di rete (NAT) per consentire alle VM di accedere a Internet. Utilizza Cloud NAT, un servizio gestito distribuito e software-defined di Google Cloud che consente alle VM di inviare pacchetti in uscita a Internet e di ricevere i 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 tuo progetto, le istanze VM possono accedere in modo sicuro a Internet senza un indirizzo IP pubblico.

Aggiunta di regole firewall

Per impostazione predefinita, una regola firewall implicita blocca le connessioni in entrata dall'esterno della rete VPC (Virtual Private Cloud). 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 viene consentito in entrambe le direzioni su quella 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 lo stato dei nodi dei cluster e un'altra che consente ai nodi cluster di comunicare tra loro.

Se non utilizzi una rete VPC condivisa, devi creare la regola firewall per la comunicazione tra i nodi, ma non per i controlli di integrità. Il file di configurazione Terraform crea la regola firewall per i controlli di integrità, che puoi modificare dopo il completamento del deployment, se necessario.

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

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

A seconda del criterio IT applicabile al tuo ambiente, potresti dover isolare o limitare in altro modo la connettività all'host del tuo database, operazione che puoi eseguire creando regole firewall.

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

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

Per creare le regole firewall per il progetto, consulta la pagina Creazione di regole firewall.

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

Le istruzioni seguenti utilizzano il file di configurazione Terraform per creare un cluster RHEL o SLES con due sistemi SAP HANA, un sistema primario host single-host SAP HANA su un'istanza VM e un sistema SAP HANA in standby su un'altra istanza VM nella stessa area geografica di Compute Engine. I sistemi SAP HANA utilizzano la replica sincrona del sistema e il sistema standby precarica i dati replicati.

Puoi definire le opzioni di configurazione per il cluster ad alta disponibilità SAP HANA in un file di configurazione Terraform.

  1. Verifica che le quote attuali per le risorse, come i dischi permanenti e le CPU, siano sufficienti per i sistemi SAP HANA che stai per installare. Se le quote non sono sufficienti, il deployment non riesce. Per i requisiti della quota SAP HANA, consulta Prezzi e considerazioni sulla quota per SAP HANA.

    Vai alla pagina Quote

  2. Apri Cloud Shell.

    Vai a Cloud Shell

  3. Scarica il file di configurazione sap_hana_ha.tf per il cluster ad alta disponibilità SAP HANA nella tua directory di lavoro:

    $ wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_ha/terraform/sap_hana_ha.tf
  4. Apri il file sap_hana_ha.tf nell'editor di codice di Cloud Shell.

    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 Cloud Shell.

  5. Nel file sap_hana_ha.tf, aggiorna i valori dell'argomento sostituendo il contenuto tra virgolette doppie con i valori dell'installazione. Gli argomenti sono descritti nella tabella seguente.

    Argomento Tipo di dati Descrizione
    source Stringa

    Specifica la posizione e la versione del modulo Terraform da utilizzare durante il deployment.

    Il file di configurazione DEPLOYMENT_TYPE.tf include due istanze dell'argomento source: una attiva e un'altra inclusa come commento. L'argomento source attivo che per impostazione predefinita specifica latest come versione del modulo. La seconda istanza dell'argomento source, che è disattivata per impostazione predefinita da un carattere # iniziale, specifica un timestamp che identifica una versione del modulo.

    Se tutti i tuoi deployment devono utilizzare la stessa versione del modulo, rimuovi il carattere # iniziale dall'argomento source che specifica il timestamp della versione e aggiungilo all'argomento source che specifica latest.

    project_id Stringa Specifica l'ID del progetto Google Cloud in cui stai eseguendo il deployment di questo sistema.
    machine_type Stringa Specifica il tipo di macchina virtuale (VM) di Compute Engine su cui devi eseguire il sistema SAP. Se hai bisogno di un tipo di VM personalizzata, specifica un tipo di VM predefinito con un numero di vCPU più vicino al numero di cui hai bisogno, pur aumentando la dimensione. Al termine del deployment, modifica il numero di vCPU e la quantità di memoria.
    network Stringa Specifica il nome della rete in cui devi creare il bilanciatore del carico che gestisce il VIP.

    Se utilizzi una rete VPC condivisa, devi aggiungere l'ID del progetto host come directory padre del nome della rete. Ad esempio: HOST_PROJECT_ID/NETWORK_NAME.

    subnetwork Stringa Specifica il nome della subnet che hai creato nel passaggio precedente. Se stai eseguendo il deployment in un VPC condiviso, specifica questo valore come SHARED_VPC_PROJECT_ID/SUBNETWORK. Ad esempio, myproject/network1.
    linux_image Stringa Specifica il nome dell'immagine del sistema operativo Linux su cui vuoi eseguire il deployment del sistema SAP. Ad esempio, rhel-8-4-sap-ha o sles-15-sp3-sap. Per l'elenco delle immagini di sistema operativo disponibili, consulta la pagina Immagini nella console Google Cloud.
    linux_image_project Stringa Specifica il progetto Google Cloud che contiene l'immagine che hai specificato per l'argomento linux_image. Potrebbe essere il tuo progetto o un progetto immagine di Google Cloud. Per un'immagine Compute Engine, specifica rhel-sap-cloud o suse-sap-cloud. Per trovare il progetto immagine per il tuo sistema operativo, consulta i dettagli del sistema operativo.
    primary_instance_name Stringa Specifica un nome per l'istanza VM per il sistema SAP HANA principale. Il nome può contenere lettere minuscole, numeri o trattini.
    primary_zone Stringa Specifica una zona in cui viene eseguito il deployment del sistema SAP HANA principale. Le zone primarie e secondarie devono trovarsi nella stessa regione.
    secondary_instance_name Stringa Specifica un nome per l'istanza VM per il sistema SAP HANA secondario. Il nome può contenere lettere minuscole, numeri o trattini.
    secondary_zone Stringa Specifica una zona in cui viene eseguito il deployment del sistema SAP HANA secondario. Le zone primarie e secondarie devono trovarsi nella stessa regione.
    sap_hana_deployment_bucket Stringa Per installare automaticamente SAP HANA sulle VM di cui è stato eseguito il deployment, specifica il nome del bucket Cloud Storage nel progetto Cloud che contiene i file di installazione di SAP HANA.
    sap_hana_sid Stringa Per installare automaticamente SAP HANA sulle VM di cui è stato eseguito il deployment, specifica l'ID di sistema SAP HANA. L'ID deve contenere tre caratteri alfanumerici e iniziare con una lettera. Tutte le lettere devono essere maiuscole.
    sap_hana_instance_number Numero intero Facoltativi. Specifica il numero di istanza, da 0 a 99, del sistema SAP HANA. Il valore predefinito è 0.
    sap_hana_sidadm_password Stringa Per installare automaticamente SAP HANA sulle VM di cui è stato eseguito il deployment, specifica una password temporanea SIDadm per gli script di installazione da utilizzare durante il deployment. La password deve contenere almeno 8 caratteri e almeno una lettera maiuscola, una lettera minuscola e un numero.

    Non specificare una password se utilizzi Secret Manager per archiviare la password di SIDadm. Specifica invece il nome segreto per l'argomento sap_hana_sidadm_password_secret.

    sap_hana_sidadm_password_secret Stringa Facoltativi. Se utilizzi Secret Manager per archiviare la password di SIDadm, specifica il Nome del secret che corrisponde alla password.

    In Secret Manager, assicurati che il valore Secret, ovvero la password, contenga almeno 8 caratteri e includa almeno una lettera maiuscola, una lettera minuscola e un numero.

    Non specificare un valore per sap_hana_sidadm_password_secret se specifichi un valore per l'argomento sap_hana_sidadm_password.

    Per maggiori informazioni, consulta la pagina Gestione delle password.
    sap_hana_system_password Stringa Per installare automaticamente SAP HANA sulle VM di cui è stato eseguito il deployment, specifica una password super user temporanea del database per gli script di installazione da utilizzare durante il deployment. La password deve contenere almeno 8 caratteri, almeno una lettera maiuscola, una lettera minuscola e un numero.

    Non specificare una password se utilizzi Secret Manager per archiviare la password del super user del database. Specifica invece il nome del secret per l'argomento sap_hana_system_password_secret.

    sap_hana_system_password_secret Stringa Facoltativi. Se utilizzi Secret Manager per archiviare la password del super user del database, specifica il Nome del secret corrispondente a questa password.

    In Secret Manager, assicurati che il valore Secret, ovvero la password, contenga almeno 8 caratteri e includa almeno una lettera maiuscola, una lettera minuscola e un numero.

    Non specificare un valore per sap_hana_system_password_secret se specifichi un valore per l'argomento sap_hana_system_password.

    Per maggiori informazioni, consulta la pagina Gestione delle password.
    sap_hana_double_volume_size Booleano Facoltativi. Per raddoppiare la dimensione del volume HANA, specifica true. Questo argomento è utile quando vuoi eseguire il deployment di più istanze SAP HANA o di un'istanza SAP HANA di ripristino di emergenza sulla stessa VM. Per impostazione predefinita, la dimensione del volume viene calcolata automaticamente come dimensione minima richiesta per le dimensioni della tua VM, pur rispettando i requisiti di certificazione e assistenza di SAP. Il valore predefinito è false.
    sap_hana_backup_size Numero intero Facoltativi. Specifica le dimensioni del volume /hanabackup in GB. Se non specifichi questo argomento o non lo imposti su 0, lo script di installazione esegue il provisioning dell'istanza di Compute Engine con un volume di backup HANA due volte la memoria totale.
    sap_hana_sidadm_uid Numero intero Facoltativi. Specifica un valore per sostituire il valore predefinito di SID_LCUser-ID AMD. Il valore predefinito è 900. Puoi modificare questo valore in modo che sia coerente per il tuo panorama SAP.
    sap_hana_sapsys_gid Numero intero Facoltativi. Esegue l'override dell'ID gruppo predefinito per sapsys. Il valore predefinito è 79.
    sap_vip Stringa Specifica l'indirizzo IP che utilizzerai per il VIP. L'indirizzo IP deve essere compreso nell'intervallo di indirizzi IP assegnati alla tua subnet. Il file di configurazione Terraform riserva questo indirizzo IP al posto tuo.
    primary_instance_group_name Stringa Facoltativi. Specifica il nome del gruppo di istanze non gestite per il nodo primario. Il nome predefinito è ig-PRIMARY_INSTANCE_NAME.
    secondary_instance_group_name Stringa Facoltativi. Specifica il nome del gruppo di istanze non gestite per il nodo secondario. Il nome predefinito è ig-SECONDARY_INSTANCE_NAME.
    loadbalancer_name Stringa Facoltativi. Specifica il nome del bilanciatore del carico TCP/UDP interno. Il nome predefinito è lb-SAP_HANA_SID-ilb.
    network_tags Stringa Facoltativi. Specifica uno o più tag di rete separati da virgole che vuoi associare alle istanze VM a scopo firewall o di routing.

    Un tag di rete per i componenti ILB viene aggiunto automaticamente ai tag di rete di VM.

    public_ip Booleano Facoltativi. Determina se un indirizzo IP pubblico viene aggiunto o meno all'istanza VM. Il valore predefinito è true.
    service_account Stringa Facoltativi. Specifica l'indirizzo email di un account di servizio gestito dall'utente che deve essere utilizzato dalle VM host e dai programmi in esecuzione sulle VM host. Ad esempio, svc-acct-name@project-id.iam.gserviceaccount.com.

    Se specifichi questo argomento senza un valore o lo ometti, lo script di installazione utilizza l'account di servizio predefinito di Compute Engine. Per maggiori informazioni, consulta la pagina sulla gestione di identità e accessi per programmi SAP su Google Cloud.

    sap_deployment_debug Booleano Facoltativi. Solo quando l'assistenza clienti di Cloud richiede di abilitare il debug per il deployment, specifica true, in modo che il deployment generi log di deployment dettagliati. Il valore predefinito è false.
    primary_reservation_name Stringa Facoltativi. Per utilizzare una prenotazione VM di Compute Engine specifica per il provisioning dell'istanza VM che ospita l'istanza SAP HANA del cluster principale ad alta disponibilità, specifica il nome della prenotazione. Per impostazione predefinita, lo script di installazione seleziona qualsiasi prenotazione di Compute Engine disponibile in base alle condizioni seguenti.

    Affinché una prenotazione sia utilizzabile, indipendentemente dal fatto che tu abbia specificato un nome o se lo script di installazione lo selezioni automaticamente, la prenotazione deve essere impostata con quanto segue:

    • L'opzione specificReservationRequired è impostata su true oppure, nella console di Google Cloud, è selezionata l'opzione Seleziona prenotazione specifica.
    • Alcuni tipi di macchine Compute Engine supportano piattaforme CPU non coperte dalla certificazione SAP del tipo di macchina. Se la prenotazione target è per uno dei seguenti tipi di macchine, la prenotazione deve specificare le piattaforme CPU minime come indicato:
      • n1-highmem-32: Intel Broadwell
      • n1-highmem-64: Intel Broadwell
      • n1-highmem-96: Intel Skylake
      • m1-megamem-96: Intel Skylake
    • Le piattaforme CPU minime per tutti gli altri tipi di macchine certificate da SAP per l'utilizzo su Google Cloud sono conformi al requisito CPU minimo di SAP.
    secondary_reservation_name Stringa Facoltativi. Per utilizzare una prenotazione VM di Compute Engine specifica per il provisioning dell'istanza VM che ospita l'istanza SAP HANA secondaria del cluster ad alta disponibilità, specifica il nome della prenotazione. Per impostazione predefinita, lo script di installazione seleziona qualsiasi prenotazione di Compute Engine disponibile in base alle condizioni seguenti.

    Affinché una prenotazione sia utilizzabile, indipendentemente dal fatto che tu abbia specificato un nome o se lo script di installazione lo selezioni automaticamente, la prenotazione deve essere impostata con quanto segue:

    • L'opzione specificReservationRequired è impostata su true oppure, nella console di Google Cloud, è selezionata l'opzione Seleziona prenotazione specifica.
    • Alcuni tipi di macchine Compute Engine supportano piattaforme CPU non coperte dalla certificazione SAP del tipo di macchina. Se la prenotazione target è per uno dei seguenti tipi di macchine, la prenotazione deve specificare le piattaforme CPU minime come indicato:
      • n1-highmem-32: Intel Broadwell
      • n1-highmem-64: Intel Broadwell
      • n1-highmem-96: Intel Skylake
      • m1-megamem-96: Intel Skylake
    • Le piattaforme CPU minime per tutti gli altri tipi di macchine certificate da SAP per l'utilizzo su Google Cloud sono conformi al requisito CPU minimo di SAP.

    Gli esempi seguenti mostrano un file di configurazione completato che definisce un cluster ad alta disponibilità per SAP HANA. Il cluster utilizza il bilanciamento del carico TCP/UDP interno per gestire il VIP.

    Terraform esegue il deployment delle risorse Google Cloud definite nel file di configurazione, quindi gli script vengono sostituiti per configurare il sistema operativo, installare SAP HANA, configurare la replica e configurare il cluster Linux ad alta disponibilità.

    Fai clic su RHEL o SLES per visualizzare un esempio specifico del sistema operativo. Per chiarezza, i commenti nel file di configurazione sono omessi negli esempi.

    RHEL

        # ...
        module "sap_hana_ha" {
        source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_ha/sap_hana_ha_module.zip"
        #
        # By default, this source file uses the latest release of the terraform module
        # for SAP on Google Cloud.  To fix your deployments to a specific release
        # of the module, comment out the source argument above and uncomment the source argument below.
        #
        # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana_ha/sap_hana_ha_module.zip"
        #
        # ...
        #
        project_id = "example-project-123456"
        machine_type = "n2-highmem-32"
        network = "example-network"
        subnetwork = "example-subnet-us-central1"
        linux_image = "rhel-8-4-sap-ha"
        linux_image_project = "rhel-sap-cloud"
    
        primary_instance_name = "example-ha-vm1"
        primary_zone = "us-central1-a"
    
        secondary_instance_name = "example-ha-vm2"
        secondary_zone = "us-central1-c"
        # ...
        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"
        # ...
        sap_vip = 10.0.0.100
        primary_instance_group_name = ig-example-ha-vm1
        secondary_instance_group_name = ig-example-ha-vm2
        loadbalancer_name = lb-ha1
        # ...
        network_tags = hana-ha-ntwk-tag
        service_account = "sap-deploy-example@example-project-123456.iam.gserviceaccount.com"
        # ...
        

    LES

        # ...
        module "sap_hana_ha" {
        source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_ha/sap_hana_ha_module.zip"
        #
        # By default, this source file uses the latest release of the terraform module
        # for SAP on Google Cloud.  To fix your deployments to a specific release
        # of the module, comment out the source argument above and uncomment the source argument below.
        #
        # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana_ha/sap_hana_ha_module.zip"
        #
        # ...
        #
        project_id = "example-project-123456"
        machine_type = "n2-highmem-32"
        network = "example-network"
        subnetwork = "example-subnet-us-central1"
        linux_image = "sles-15-sp3-sap"
        linux_image_project = "suse-sap-cloud"
    
        primary_instance_name = "example-ha-vm1"
        primary_zone = "us-central1-a"
    
        secondary_instance_name = "example-ha-vm2"
        secondary_zone = "us-central1-c"
        # ...
        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"
        # ...
        sap_vip = 10.0.0.100
        primary_instance_group_name = ig-example-ha-vm1
        secondary_instance_group_name = ig-example-ha-vm2
        loadbalancer_name = lb-ha1
        # ...
        network_tags = hana-ha-ntwk-tag
        service_account = "sap-deploy-example@example-project-123456.iam.gserviceaccount.com"
        # ...
        
  6. Inizializza la tua directory di lavoro attuale e scarica il plug-in del provider Terraform e i file del modulo per Google Cloud:

    terraform init

    Il comando terraform init prepara la tua directory di lavoro per gli altri comandi Terraform.

    Per forzare un aggiornamento del plug-in del provider e dei file di configurazione nella directory di lavoro, specifica il flag --upgrade. Se il flag --upgrade viene omesso e non apporti alcuna modifica alla directory di lavoro, Terraform utilizza le copie memorizzate nella cache locale, anche se latest è specificato nell'URL source.

    terraform init --upgrade 
  7. Facoltativamente, crea il piano di esecuzione Terraform:

    terraform plan

    Il comando terraform plan mostra le modifiche richieste dalla configurazione attuale. Se salti questo passaggio, il comando terraform apply crea automaticamente un nuovo piano e ti chiede di approvarlo.

  8. Applica il piano di esecuzione:

    terraform apply

    Quando ti viene chiesto di approvare le azioni, inserisci yes.

    Il comando terraform apply imposta l'infrastruttura di Google Cloud, quindi controlla manualmente lo script che configura il cluster ad alta disponibilità e installa SAP HANA in base agli argomenti definiti nel file di configurazione terraform.

    Mentre Terraform ha il controllo, i messaggi di stato vengono scritti in Cloud Shell. Dopo il richiamo degli script, i messaggi di stato vengono scritti in Logging e sono visualizzabili in Google Cloud Console, come descritto nella sezione Controllare i log.

Verifica del deployment del sistema ad alta disponibilità HANA

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

  • Controllo del logging
  • Controllo della configurazione della VM e dell'installazione SAP HANA
  • Controllo della configurazione del cluster in corso...
  • Controllo del bilanciatore del carico e integrità dei gruppi di istanze
  • Controllo del sistema SAP HANA utilizzando SAP HANA Studio
  • Esecuzione di 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. Filtrare i log:

    Esplora log

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

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

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

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

    Visualizzatore log legacy

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

    • Se viene visualizzato "--- Finished", l'elaborazione del deployment è completa e puoi andare al passaggio successivo.
    • Se viene visualizzato un errore di quota:

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

      2. Apri Cloud Shell.

        Vai a Cloud Shell

      3. Vai alla directory di lavoro ed elimina il deployment per pulire le VM e i dischi permanenti dall'installazione non riuscita:

        terraform destroy

        Quando ti viene chiesto di approvare l'azione, inserisci yes.

      4. Esegui nuovamente il deployment.

Verifica la configurazione della VM e dell'installazione SAP HANA

  1. Dopo che il sistema SAP HANA ha eseguito il deployment 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 puoi utilizzare il metodo SSH preferito.

    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

    LES

    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 di stato specifico per il tuo sistema operativo:

    RHEL

    pcs status

    LES

    crm status

    Dovresti vedere risultati simili all'esempio seguente, in cui vengono avviate entrambe le istanze VM 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

    LES

    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. Cambia l'utente amministratore SAP sostituendo SID_LC nel comando seguente con il valore sap_hana_sid che hai specificato nel file sap_hana_ha.tf. Il valore SID_LC deve essere minuscolo.

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

    HDB info
    

Controlla la configurazione del cluster

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

Fai clic sulla scheda relativa al 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 esegui RHEL 7.7 o versioni precedenti, la definizione delle risorse 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 anziché 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
     }
    

LES

  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 l'integrità 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 in Google Cloud Console:

    Vai a Cloud Load Balancing

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

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

    Mostra la pagina dei dettagli del bilanciatore del carico con il gruppo di istanze primarie attive indicato da "1/1" e il secondario secondario attivo 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 tuoi 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 il sistema, specifica l'indirizzo IP mobile come nome host.
    • Nel riquadro Proprietà connessione, per l'autenticazione utente del database, specifica il nome del super user del database e la password che hai specificato per l'argomento sap_hana_system_password nel file sap_hana_ha.tf.

    Per informazioni da 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 tuo sistema HANA HANA, visualizza la panoramica del sistema facendo doppio clic sul nome di sistema nel riquadro di navigazione sul lato sinistro della finestra.

    Screenshot del riquadro di navigazione in SAP HANA Studio

  3. In Informazioni generali nella scheda Panoramica, verifica che:

    • Lo stato operativo mostra "Tutti i servizi avviati".
    • Lo Stato di replica del 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 replica di sistema in Informazioni generali. La replica sincrona è indicata da SYNCMEM nella colonna REPLICATION_MODE della scheda Replica di sistema.

    Screenshot della scheda Stato di replica del sistema in SAP HANA Studio

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

  1. Risolvi gli errori.

  2. Apri Cloud Shell.

    Vai a Cloud Shell

  3. Vai alla directory che contiene il file di configurazione Terraform per eseguire il deployment di SAP HANA.

  4. Elimina il deployment:

    terraform destroy

    Quando ti viene chiesto di approvare l'azione, inserisci yes.

  5. Ricrea le istanze, come descritto nella sezione precedente.

Eseguire un test di failover

Per eseguire un test di failover, procedi nel seguente modo:

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

  2. Al prompt dei comandi, inserisci questo 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 all'host utilizzando SSH e passa all'utente root.

  4. Verifica che l'host principale sia ora attivo sulla VM utilizzata per contenere l'host secondario. Il riavvio automatico è abilitato nel cluster, quindi l'host interrotto si riavvia e assume il ruolo di host secondario.

    RHEL

    pcs status

    LES

    crm status

    I seguenti esempi mostrano che i ruoli su ciascun host sono cambiati.

    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 ]
    

    LES

    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 nella console, verifica che la nuova istanza principale attiva mostri "1/1" nella colonna Integrità. 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 Stato di integrità.

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

  7. Fai clic sul link Stato replica di sistema per confermare che gli host principali e secondari abbiano cambiato host e siano attivi.

    Screenshot della scheda Stato di replica del sistema in SAP HANA Studio

Convalida dell'installazione dell'agente Monitoring

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

Verifica dell'esecuzione dell'agente di monitoraggio di Google

Per verificare che l'agente Monitoring sia in esecuzione, segui questi passaggi:

  1. Stabilisci una connessione SSH con la tua VM host.

  2. Esegui questo comando:

    sudo systemctl status google-sapnetweavermonitoring-agent 

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

    google-sapnetweavermonitoring-agent.service - Google Cloud monitoring agent for SAP NetWeaver
    Loaded: loaded (/usr/lib/systemd/system/google-sapnetweavermonitoring-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Thu 2021-09-02 07:21:42 UTC; 742ms ago
    Main PID: 10723 (java)
    Tasks: 26 (limit: 512)
    CGroup: /system.slice/google-sapnetweavermonitoring-agent.service
           └─10723 /usr/sap/google-sapnetweavermonitoring-agent/jre/bin/java -Xms32m -Xmx64m -cp /usr/sap/google-sapnetweavermonitoring-age...
    

Se l'agente Monitoring non è in esecuzione, consulta la sezione relativa alla Guida alle operazioni sul riavvio dell'agente Monitoring di Google.

Verifica che SAP Host Agent stia ricevendo metriche

Per verificare che le metriche dell'infrastruttura siano raccolte e inviate correttamente all'agente host SAP, segui questi passaggi:

  1. Nel sistema SAP, inserisci la transazione ST06.

  2. Nel riquadro Panoramica, verifica la disponibilità e il contenuto dei seguenti campi per la configurazione end-to-end corretta dell'infrastruttura SAP e di monitoraggio di Google:

    • Cloud Provider: Google Cloud Platform
    • Accesso a Monitoring avanzato: TRUE
    • Dettagli di Monitoring avanzati: ACTIVE

Abilita riavvio rapido SAP HANA

Google Cloud consiglia fortemente di abilitare SAP HANA a riavvio rapido 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 venga terminato, ma il sistema operativo rimane in esecuzione.

Come configurato dagli script di automazione offerti da Google Cloud, il sistema operativo e le impostazioni del kernel supportano già SAP HANA Fast Riavvia. 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 abilitare il riavvio rapido di SAP HANA. Per ulteriori informazioni, consulta:

Per le istruzioni autorevoli complete sul riavvio rapido di SAP HANA, consulta la documentazione dell'opzione Riavvio rapido SAP HANA.

Passaggi manuali per abilitare il riavvio rapido di SAP HANA

Configura il file system tmpfs

Dopo aver eseguito correttamente 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.

Visualizza la topologia NUMA della tua VM

Prima di poter mappare il file system tmpfs richiesto, devi conoscere il numero di nodi NUMA della tua VM. Per visualizzare i nodi NUMA disponibili su una VM di 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 di nodo NUMA per ciascuna di esse con mpol=prefer:

mount tmpfsSID_UC0 -t tmpfs -o mpol=prefer:0 /hana/tmpfs0/SID_UC
mount tmpfsSID_UC1 -t tmpfs -o mpol=prefer:1 /hana/tmpfs1/SID_UC
mount tmpfsSID_UC2 -t tmpfs -o mpol=prefer:2 /hana/tmpfs2/SID_UC
mount tmpfsSID_UC3 -t tmpfs -o mpol=prefer:3 /hana/tmpfs3/SID_UC
Aggiorna /etc/fstab

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

tmpfsSID_UC0 /hana/tmpfs0/SID_UC tmpfs rw,relatime,mpol=prefer:0
tmpfsSID_UC1 /hana/tmpfs1/SID_UC tmpfs rw,relatime,mpol=prefer:1
tmpfsSID_UC1 /hana/tmpfs2/SID_UC tmpfs rw,relatime,mpol=prefer:2
tmpfsSID_UC1 /hana/tmpfs3/SID_UC tmpfs rw,relatime,mpol=prefer:3
Facoltativo: impostare limiti di utilizzo della memoria

Il file system tmpfs può aumentare e diminuire in modo dinamico.

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 tmpfsSID_UC0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID_UC

Puoi anche limitare l'utilizzo complessivo della memoria di tmpfs per tutti i nodi NUMA per una determinata istanza SAP HANA e un determinato nodo 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 Fast Riavvia, aggiorna il file global.ini e specifica le tabelle da archiviare in memoria permanente.

Aggiorna la sezione [persistence] nel file global.ini

Configura la sezione [persistence] nel file global.ini 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_UC;/hana/tmpfs1/SID_UC;/hana/tmpfs2/SID_UC;/hana/tmpfs3/SID_UC

L'esempio precedente specifica quattro volumi di memoria per quattro nodi NUMA, che corrispondono al m2-ultramem-208. Se eseguissi l'esecuzione su m2-ultramem-416, dovresti configurare otto volumi di memoria (0..7).

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

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

Specifica le tabelle da archiviare in una memoria permanente

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

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

ALTER TABLE exampletable persistent memory ON immediate CASCADE

Per modificare l'impostazione predefinita 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 quali viste di monitoraggio forniscono informazioni dettagliate, consulta la memoria permanente di SAP HANA.

Script di automazione: attivazione di SAP HANA Fast Riavvia

Lo script di automazione fornito da Google Cloud per abilitare 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 tuo sistema SAP HANA o del ridimensionamento della tua macchina a una dimensione NUMA diversa.

Per il deployment iniziale del sistema SAP HANA o il ridimensionamento della macchina per 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 abilitare SAP HANA Fast Riavvia.

Quando ridimensioni la macchina per ridurre il numero di nodi NUMA, assicurati che SAP HANA sia arrestato durante l'esecuzione dello script di automazione fornito da Google Cloud per abilitare SAP HANA Fast Riavvia. Dopo aver eseguito lo script, devi aggiornare manualmente la configurazione SAP HANA per completare la configurazione SAP HANA Fast Riavvia. Per ulteriori informazioni, consulta la pagina relativa alla configurazione di SAP HANA per il riavvio rapido.

Per abilitare il riavvio rapido SAP HANA, segui questi passaggi:

  1. Stabilisci una connessione SSH con la tua VM host.

  2. Passa alla directory principale:

    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 il file eseguibile:

    chmod +x sap_lib_hdbfr.sh
  5. Verifica che lo script non presenti 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, vedi Ricevere assistenza per SAP su Google Cloud.

  6. Esegui lo script dopo aver sostituito l'ID di sistema (SID) e la password di SAP HANA per l'utente del SISTEMA 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.

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

    Sostituisci quanto segue:

    • SID: specifica il SID con lettere maiuscole. Ad esempio, AHA.
    • SECRET_NAME: specifica il nome del secret che corrisponde alla password dell'utente SYSTEM del database SAP HANA.

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

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

    Sostituisci quanto segue:

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

Per una riuscita esecuzione iniziale, dovresti vedere 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)

Configurare l'agente Google Monitoring per SAP HANA

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

Per monitorare un cluster ad alta disponibilità, installa l'agente Monitoring su un'istanza VM all'esterno del cluster. Specifica l'indirizzo IP mobile del cluster come indirizzo IP dell'istanza host da monitorare.

Per ulteriori informazioni sulla configurazione e la configurazione dell'agente Monitoring di 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 il bastion instance utilizzando SSH o tramite il server Windows tramite SAP HANA Studio.

  • Per connetterti a SAP HANA tramite l'istanza bastion, connettiti al bastion host e quindi alle istanze SAP HANA utilizzando un client SSH a 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.

Esecuzione di attività post-deployment

Prima di utilizzare l'istanza SAP HANA, ti consigliamo di eseguire i seguenti passaggi 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 super user database.

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

  3. Installa eventuali componenti aggiuntivi come Librerie delle funzioni applicazioni (AFL) o Accesso ai dati intelligenti (SDA).

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

Passaggi successivi