Terraform: guida alla configurazione del cluster ad alta disponibilità per SAP NetWeaver su SLES

Questa guida mostra come automatizzare il deployment di un cluster SUSE Linux Enterprise Server (SLES) ad alta disponibilità (HA) ottimizzato per le prestazioni per SAP NetWeaver. La configurazione di montaggio semplice è fornita anche per SLES 15 per SAP e versioni successive.

La guida utilizza Terraform per eseguire il deployment di due macchine virtuali (VM) Compute Engine, un indirizzo IP virtuale (VIP) con un'implementazione di bilanciatore del carico di rete 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 informazioni sul deployment di VM Compute Engine per SAP NetWeaver non specifiche per la disponibilità elevata, consulta la guida al deployment di SAP NetWeaver specifica per il tuo sistema operativo.

Per configurare un cluster ad alta disponibilità per SAP HANA su Red Hat Enterprise Linux (RHEL), consulta la guida alla configurazione manuale del cluster ad alta disponibilità per SAP NetWeaver su RHEL.

Questa guida è rivolta agli utenti avanzati di SAP NetWeaver che hanno familiarità con le configurazioni di disponibilità elevata di Linux per SAP NetWeaver.

Il sistema di cui questa guida illustra il deployment

Seguendo questa guida, eseguirai il deployment di due istanze SAP NetWeaver e configurerai un cluster HA su SLES. Esegui il deployment di ogni istanza SAP NetWeaver su una VM Compute Engine in una zona diversa all'interno della stessa regione. Questa guida non tratta l'installazione ad alta disponibilità del database sottostante.

Panoramica di un cluster Linux ad alta disponibilità per un sistema SAP NetWeaver a un nodo

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

  • Due VM host, una per l'istanza ASCS attiva e una per l'istanza attiva dell'Enqueue Replicator ENSA2 o dell'Enqueue Replication Server ENSA1. Entrambe le istanze ENSA2 ed ENSA1 sono indicate come ERS.
  • Il gestore delle risorse del cluster ad alta disponibilità Pacemaker.
  • Un meccanismo di isolamento STONITH.
  • Riavvio automatico dell'istanza non riuscita come nuova istanza secondaria.

Prerequisiti

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

Salvo ove richiesto per l'ambiente Google Cloud, le informazioni riportate in questa guida sono coerenti con le seguenti guide correlate di SUSE:

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 creare una rete VPC per il tuo progetto, completa i seguenti passaggi:

  1. Crea una rete in modalità personalizzata. Per saperne di più, consulta Creare una rete in modalità personalizzata.

  2. Crea una subnet e specifica la regione e l'intervallo IP. Per ulteriori informazioni, consulta la sezione Aggiunta di subnet.

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, le connessioni in entrata dall'esterno della rete Google Cloud sono bloccate. Per consentire le connessioni in entrata, configura una regola firewall per la tua VM. Le regole firewall regolano solo le nuove connessioni in entrata a una VM. Dopo aver stabilito una connessione con una VM, il traffico è consentito in entrambe le direzioni su quella connessione.

Puoi creare una regola firewall per consentire l'accesso a porte specifiche o per consentire l'accesso tra le VM nella stessa sottorete.

Crea regole firewall per consentire l'accesso per elementi quali:

  • Le porte predefinite utilizzate da SAP NetWeaver, come documentato in Porte 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.
  • Comunicazione tra VM in una configurazione a 3 livelli, scalabile o ad alta disponibilità. Ad esempio, se esegui il deployment di un sistema a tre livelli, nella sottorete avrai almeno due VM: la VM per SAP NetWeaver e un'altra VM per il server di database. Per abilitare la comunicazione tra le due VM, devi creare una regola firewall per consentire il traffico proveniente dalla sottorete.
  • Controlli di integrità di Cloud Load Balancing.

Per creare le regole firewall per il progetto, consulta la sezione Creare regole firewall.

Creazione di un cluster Linux ad alta disponibilità per SAP NetWeaver

Le istruzioni riportate di seguito utilizzano un file di configurazione Terraform per creare un cluster SLES con due sistemi SAP NetWeaver, un sistema SAP NetWeaver principale con un solo host su un'istanza VM e un sistema SAP NetWeaver di riserva su un'altra istanza VM nella stessa regione Compute Engine.

Definisci le opzioni di configurazione per il cluster ad alta disponibilità SAP NetWeaver in un file di configurazione Terraform.

  1. Apri Cloud Shell.

    Vai a Cloud Shell

  2. Scarica il file di configurazione sap_nw_ha.tf per il cluster di disponibilità elevata SAP NetWeaver nella tua directory di lavoro:

    $ wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_nw_ha/terraform/sap_nw_ha.tf
  3. Apri il file sap_nw_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 di Cloud Shell.

  4. Nel file sap_nw_ha.tf, aggiorna i valori degli argomenti sostituendo i contenuti all'interno delle virgolette doppie con i valori per l'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 sap_nw_ha.tf include due istanze dell'argomento source: una attiva e una inclusa come commento. L'argomento source attivo per impostazione predefinita specifica latest come versione del modulo. La seconda istanza dell'argomento source, che per impostazione predefinita è disattivata da un carattere # iniziale, specifica un timestamp che identifica una versione del modulo.

    Se vuoi che tutti i tuoi deployment utilizzino 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 esegui il deployment di questo sistema. Ad esempio, my-project-x.
    machine_type Stringa Specifica il tipo di macchina virtuale (VM) 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 essendo più grande. Al termine del deployment, modifica il numero di vCPU e la quantità di memoria.

    Ad esempio, n1-highmem-32.

    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 principale del nome della rete. Ad esempio, HOST_PROJECT_ID/NETWORK_NAME.

    subnetwork Stringa Specifica il nome della sottorete creata in un passaggio precedente. Se effettui 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, sles-15-sp5-sap. Per l'elenco delle immagini del 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. Questo progetto potrebbe essere il tuo progetto o un progetto di immagini Google Cloud. Per un'immagine Compute Engine, specifica suse-sap-cloud. Per trovare il progetto immagine per il tuo sistema operativo, consulta Dettagli del sistema operativo.
    sap_primary_instance Stringa Specifica un nome per l'istanza VM per il sistema SAP NetWeaver principale. Questa è la posizione iniziale dell'ASCS. Il nome può contenere lettere minuscole, numeri o trattini e non deve superare i 13 caratteri.
    sap_primary_zone Stringa Specifica una zona in cui è stato eseguito il deployment del sistema SAP NetWeaver principale. Le zone principali e secondarie devono trovarsi nella stessa regione. Ad esempio, us-east1-b.
    sap_secondary_instance Stringa Specifica un nome per l'istanza VM per il sistema SAP NetWeaver secondario. Questa è la posizione iniziale dell'ERS. Il nome può contenere lettere minuscole, numeri o trattini e non deve superare i 13 caratteri.
    sap_secondary_zone Stringa Specifica una zona in cui è dipiegato il sistema SAP NetWeaver secondario. Le zone principali e secondarie devono trovarsi nella stessa regione. Ad esempio, us-east1-c.
    nfs_path Stringa Specifica il punto di montaggio NFS per il file system condiviso. Ad esempio, 10.163.58.114:/ssd_nfs.
    sap_sid Stringa Specifica un ID sistema SAP. L'ID deve essere composto da tre caratteri alfanumerici e deve iniziare con una lettera. Tutte le lettere devono essere in maiuscolo. Ad esempio, ED1.
    hc_firewall_rule_name Stringa Facoltativo. Specifica un nome per la regola firewall per il controllo di integrità. Il valore predefinito è SAP_SID-hc-allow.
    hc_network_tag Stringa Facoltativo. Specifica uno o più tag di rete separati da virgola da associare alle istanze VM per la regola firewall del controllo di integrità. Il valore predefinito è SAP_SID-hc-allow-tag.
    scs_inst_group_name Stringa Facoltativo. Specifica un nome per il gruppo di istanze ASCS. Il valore predefinito è SAP_SID-scs-ig.
    scs_hc_name Stringa Facoltativo. Specifica un nome per il controllo di integrità dell'ASCS. Il valore predefinito è SAP_SID-scs-hc.
    scs_hc_port Stringa Facoltativo. Specifica una porta per il controllo di integrità dell'ASCS. Per evitare conflitti con altri servizi, designa il numero di porta per il controllo di integrità di ASCS nell'intervallo privato 49152-65535. Il valore predefinito è 60000.
    scs_vip_address Stringa Facoltativo. Specifica un indirizzo IP non utilizzato all'interno della subnet specificata in precedenza in subnetwork da utilizzare come indirizzo IP virtuale per l'istanza ASCS. Se non viene specificato nulla, gli script di deployment selezionano automaticamente un indirizzo IP non utilizzato dalla subnet specificata.
    scs_vip_name Stringa Facoltativo. Specifica un nome per l'IP virtuale dell'ASCS. Il valore predefinito è SAP_SID-scs-vip.
    scs_backend_svc_name Stringa Facoltativo. Specifica un nome per il servizio di backend ASCS. Il valore predefinito è SAP_SID-scs-backend-svc.
    scs_forw_rule_name Stringa Facoltativo. Specifica un nome per la regola di forwarding ASCS. Il valore predefinito è SAP_SID-scs-fwd-rule.
    ers_inst_group_name Stringa Facoltativo. Specifica un nome per il gruppo di istanze ERS. Il valore predefinito è SAP_SID-ers-ig.
    ers_hc_name Stringa Facoltativo. Specifica un nome per il controllo di integrità ERS. Il valore predefinito è SAP_SID-ers-hc.
    ers_hc_port Stringa Facoltativo. Specifica una porta per il controllo di integrità di ERS. Per evitare conflitti con altri servizi, designa il numero di porta per controllo di integrità di ERS nell'intervallo privato 49152-65535. Il valore predefinito è 60010.
    ers_vip_address Stringa Facoltativo. Specifica un indirizzo IP non utilizzato all'interno della subnet specificata in subnetwork in precedenza da utilizzare come indirizzo IP virtuale per l'istanza ERS. Se non viene specificato nulla, gli script di deployment selezionano automaticamente un indirizzo IP non utilizzato dalla subnet specificata.
    ers_vip_name Stringa Facoltativo. Specifica un nome per l'IP virtuale ERS. Il valore predefinito è SAP_SID-ers-vip.
    ers_backend_svc_name Stringa Facoltativo. Specifica un nome per il servizio di backend ERS. Il valore predefinito è SAP_SID-ers-backend-svc.
    ers_forw_rule_name Stringa Facoltativo. Specifica un nome per la regola di forwarding ERS. Il valore predefinito è SAP_SID-ers-fwd-rule.
    usr_sap_size Numero intero Facoltativo. Specifica la dimensione del disco /usr/sap in GB. La dimensione minima è di 8 GB. Il valore predefinito è 8.
    swap_size Numero intero Facoltativo. Specifica le dimensioni del volume dello scambio in GB. La dimensione minima è di 8 GB. Il valore predefinito è 8.
    sap_scs_instance_number Stringa Facoltativo. Specifica il numero di istanza ASCS. sap_scs_instance_number debe essere un numero di due cifre. Se devi specificare un numero di una sola cifra, aggiungi un 0 davanti al numero. Ad esempio: 07. Il valore predefinito è 00.
    sap_ers_instance_number Stringa Facoltativo. Specifica il numero di istanza ERS. sap_ers_instance_number debe essere un numero di due cifre. Se devi specificare un numero di una sola cifra, aggiungi un 0 davanti al numero. Ad esempio: 07. Il valore predefinito è 10.
    sap_nw_abap Booleano Facoltativo. Specifica se stai eseguendo il deployment di uno stack ABAP o di uno stack Java di SAP NetWeaver. Per uno stack Java di SAP NetWeaver, specifica false. Il valore predefinito è true.
    pacemaker_cluster_name Stringa Facoltativo. Specifica un nome per il cluster pacemaker. Il valore predefinito è SAP_SID-cluster.
    public_ip Booleano Facoltativo. Per creare un indirizzo IP pubblico effimero per le istanze VM, imposta public_ip su true. Il valore predefinito è false.
    service_account Stringa Facoltativo. Specifica l'indirizzo email di un account di servizio gestito dall'utente da utilizzare 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 ulteriori informazioni, consulta Gestione di identità e accessi per i programmi SAP su Google Cloud.

    network_tags Stringa Facoltativo. Specifica uno o più tag di rete separati da virgola da associare alle tue istanze VM a fini di firewall o routing.

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

    Se public_ip = false e non specifichi un tag di rete, assicurati di fornire un altro mezzo di accesso a internet.

    sap_deployment_debug Booleano Facoltativo. Solo quando lassistenza clienti Google Cloud ti chiede di attivare il debug per il tuo deployment, specifica true, che consente al deployment di generare log dettagliati. Il valore predefinito è false.
    primary_reservation_name Stringa Facoltativo. Per utilizzare una prenotazione VM Compute Engine specifica per il provisioning dell'istanza VM che ospita l'istanza SAP HANA principale del tuo cluster HA, specifica il nome della prenotazione. Per impostazione predefinita, lo script di installazione seleziona qualsiasi prenotazione Compute Engine disponibile in base alle seguenti condizioni.

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

    • L'opzione specificReservationRequired è impostata su true o, nella console Google Cloud, è selezionata l'opzione Seleziona una prenotazione specifica.
    • Alcuni tipi di macchine Compute Engine supportano piattaforme CPU non coperte dalla certificazione SAP del tipo di macchina. Se la prenotazione di destinazione riguarda uno dei seguenti tipi di macchine, 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 minimo della CPU di SAP.
    secondary_reservation_name Stringa Facoltativo. Per utilizzare una prenotazione VM Compute Engine specifica per il provisioning dell'istanza VM che ospita l'istanza SAP HANA secondaria del tuo cluster HA, specifica il nome della prenotazione. Per impostazione predefinita, lo script di installazione seleziona qualsiasi prenotazione Compute Engine disponibile in base alle seguenti condizioni.

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

    • L'opzione specificReservationRequired è impostata su true o, nella console Google Cloud, è selezionata l'opzione Seleziona una prenotazione specifica.
    • Alcuni tipi di macchine Compute Engine supportano piattaforme CPU non coperte dalla certificazione SAP del tipo di macchina. Se la prenotazione di destinazione riguarda uno dei seguenti tipi di macchine, 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 minimo della CPU di SAP.
    can_ip_forward Booleano

    Specifica se è consentito l'invio e la ricezione di pacchetti con IP di origine o di destinazione non corrispondenti, in modo che una VM possa comportarsi come un router. Il valore predefinito è true.

    Se intendi utilizzare i bilanciatori del carico interni di Google solo per gestire gli IP virtuali per le VM di cui è stato eseguito il deployment, imposta il valore su false. Un bilanciatore del carico interno viene disegnato automaticamente come parte dei modelli di alta disponibilità.

    L'esempio seguente mostra un file di configurazione completo che definisce un cluster ad alta disponibilità per SAP NetWeaver. Il cluster utilizza un bilanciatore del carico di rete passthrough interno per gestire l'IP virtuale.

    Terraform esegue il deployment delle risorse Google Cloud definite nel file di configurazione, dopodiché gli script prendono il controllo per configurare il sistema operativo e il cluster ad alta disponibilità Linux.

    Per chiarezza, i commenti nel file di configurazione sono omessi nell'esempio.

       # ...
         module "sap_nw_ha" {
         source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_nw_ha/sap_nw_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/202201240926/terraform/sap_nw_ha/sap_nw_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"
    
       sap_primary_instance = "example-nw1"
       sap_primary_zone = "us-central1-a"
    
       sap_secondary_instance = "example-nw2"
       sap_secondary_zone = "us-central1-c"
    
       nfs_path = "10.223.55.130:/pr1_nw"
    
       sap_sid = "PR1"
       # ...
    }
  5. Inizializza la directory di lavoro corrente e scarica i file del plug-in e del modulo del provider Terraform per Google Cloud:

    terraform init

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

    Per forzare l'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 modifiche alla directory di lavoro, Terraform utilizza le copie memorizzate nella cache locale, anche se latest è specificato nell'URL source.

    terraform init --upgrade 
  6. Se vuoi, 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.

  7. Applica il piano di esecuzione:

    terraform apply

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

    Il comando terraform apply configura l'infrastruttura Google Cloud e poi passa il controllo a uno script che configura il cluster ad alta disponibilità in base agli argomenti definiti nel file di configurazione di Terraform.

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

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

Verifica del deployment del sistema SAP NetWeaver ad alta disponibilità

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

  • Controlla i log
  • Controlla la configurazione della VM

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. Dal 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 NetWeaver elencati nella guida alla pianificazione di SAP NetWeaver.

      2. Apri Cloud Shell.

        Vai a Cloud Shell

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

        terraform destroy

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

      4. Esegui di nuovo il deployment.

Controlla la configurazione della VM

  1. Dopo aver eseguito il deployment delle istanze VM 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.

  2. Passa all'utente root.

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

    example-nw1:~ # df -h
      Filesystem                             Size  Used Avail Use% Mounted on
      ...
      /dev/mapper/vg_usrsap-vol              8.0G   41M  8.0G   1% /usr/sap
      /dev/mapper/vg_sapmnt-vol              8.0G   41M  8.0G   1% /sapmnt
      10.233.55.130:/pr1_nw/sapmntPR1       1007G     0  956G   0% /sapmnt/PR1
      10.223.55.130:/pr1_nw/usrsaptrans     1007G     0  956G   0% /usr/sap/trans
      10.223.55.130:/pr1_nw/usrsapPR1       1007G     0  956G   0% /usr/sap/PR1
      ...
      
    autofs viene configurato automaticamente durante il deployment per montare le directory dei file condivisi comuni al primo accesso alle directory dei file. Il montaggio delle directory ASCSASCS_INSTANCE_NUMBER e ERSERS_INSTANCE_NUMBER è gestito dal software del cluster, che viene configurato anche durante il deployment.

  4. Controlla lo stato del nuovo cluster inserendo il comando status:

    crm status

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

    example-nw1:~ # crm status
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-nw1 (version 2.0.4+20200616.2deceaa3a-3.6.1-2.0.4+20200616.2deceaa3a) - partition with quorum
      * Last updated: Fri Jun 18 05:47:48 2021
      * Last change:  Fri Jun 18 05:41:32 2021 by root via cibadmin on example-nw1
      * 2 nodes configured
      * 8 resource instances configured
    Node List:
      * Online: [ example-nw1 example-nw2 ]
    Full List of Resources:
      * fence-PR1-example-nw1     (stonith:fence_gce):           Started example-nw2
      * fence-PR1-example-nw2     (stonith:fence_gce):           Started example-nw1
      * file-system-PR1-ASCS00    (ocf::heartbeat:Filesystem):      Started example-nw1
      * file-system-PR1-ERS10     (ocf::heartbeat:Filesystem):      Started example-nw2
      * health-check-PR1-ASCS00   (ocf::heartbeat:anything):        Started example-nw1
      * health-check-PR1-ERS10    (ocf::heartbeat:anything):        Started example-nw2
      * vip-PR1-ASCS00      (ocf::heartbeat:IPaddr2):             Started example-nw1
      * vip-PR1-ERS10       (ocf::heartbeat:IPaddr2):             Started example-nw2

    Se utilizzi una configurazione di montaggio semplice, vedrai un output simile all'esempio seguente:

    Stack: corosync
    Current DC: example-nw1 (version 1.1.24+20201209.8f22be2ae-3.12.1-1.1.24+20201209.8f22be2ae) - partition with quorum
    Last updated: Wed Sep 26 19:10:10 2024
    Last change: Tue Sep 25 23:48:35 2024 by root via cibadmin on example-nw1
    2 nodes configured
    8 resource instances configured
    Node List:
      * Online: [ example-nw1 example-nw2 ]
    Full list of resources:
     * fence-PR1-example-nw1     (stonith:fence_gce):           Started example-nw2
      * fence-PR1-example-nw2     (stonith:fence_gce):           Started example-nw1
      * health-check-PR1-ASCS00   (ocf::heartbeat:anything):        Started example-nw1
      * health-check-PR1-ERS10    (ocf::heartbeat:anything):        Started example-nw2
      * vip-PR1-ASCS00      (ocf::heartbeat:IPaddr2):             Started example-nw1
      * vip-PR1-ERS10       (ocf::heartbeat:IPaddr2):             Started example-nw2
  5. Testa la configurazione del bilanciatore del carico ASCS ed ERS utilizzando l'utilitàsocat:

    1. Su ogni istanza VM, avvia temporaneamente un processo socat che restituisce il proprio nome host:

      socat TCP-LISTEN:80,bind=0.0.0.0,fork,reuseaddr,crlf SYSTEM:"echo HTTP/1.0 200; echo Content-Type\: text/plain; echo; echo $(hostname)" & 
    2. Su ogni nodo, utilizza curl e prova a raggiungere i seguenti indirizzi IP e hostname. Gli indirizzi IP e i nomi host sono disponibili in /etc/hosts.

      • 127.0.0.1
      • localhost
      • ASCS_VIRTUAL_HOST_NAME
      • ASCS_IP_ADDRESS
      • ERS_VIRTUAL_HOST_NAME
      • ERS_IP_ADDRESS
      • Nome VIP SCS, specificato per il parametro scs_vip_name
      • Indirizzo IP VIP SCS, specificato per il parametro scs_vip_address
      • Nome VIP ERS, specificato per il parametro ers_vip_name
      • Indirizzo IP VIP ERS, specificato per il parametro ers_vip_address

    Di seguito è riportato un esempio di output di questo test:

    example-nw1:~ # cat /etc/hosts
    ...
    10.128.1.182 example-nw1.c.myproject.internal example-nw1
    10.128.1.169 example-nw2.c.myproject.internal example-nw2
    10.128.1.46 pr1-scs-vip.c.myproject.internal pr1-scs-vip
    10.128.0.75 pr1-ers-vip.c.myproject.internal pr1-ers-vip
    example-nw1:~ # curl 127.0.0.1
    example-nw1
    example-nw1:~ # curl localhost
    example-nw1
    example-nw1:~ # curl example-nw1
    example-nw1
    example-nw1:~ # curl 10.128.1.182
    example-nw1
    example-nw1:~ # curl example-nw2
    example-nw2
    example-nw1:~ # curl 10.128.1.169
    example-nw2
    example-nw1:~ # curl pr1-scs-vip
    example-nw1
    example-nw1:~ # curl 10.128.1.46
    example-nw1
    example-nw1:~ # curl pr1-ers-vip
    example-nw2
    example-nw1:~ # curl 10.128.0.75
    example-nw2

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

  1. Risolvi gli errori.

  2. Apri Cloud Shell.

    Vai a Cloud Shell

  3. Vai alla directory contenente il file di configurazione Terraform.

  4. Elimina il deployment:

    terraform destroy

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

  5. Esegui di nuovo il deployment.

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 di servizi cloud: Google Cloud Platform
    • Accesso al monitoraggio avanzato: TRUE
    • Dettagli sul monitoraggio migliorato: ACTIVE

Installa ASCS ed ERS

La sezione seguente illustra solo i requisiti e i consigli specifici per l'installazione di SAP NetWeaver su Google Cloud.

Per istruzioni di installazione complete, consulta la documentazione di SAP NetWeaver.

Prepararsi all'installazione

Per garantire la coerenza nel cluster e semplificare l'installazione, prima di installare i componenti ASCS ed ERS di SAP NetWeaver, definisci gli utenti, i gruppi e le autorizzazioni e metti il server secondario in modalità standby.

  1. Rimuovi il cluster dalla modalità di manutenzione:

    # crm configure property maintenance-mode="false"

  2. Su entrambi i server, come utente root, inserisci i seguenti comandi, specificando gli ID utente e gruppo appropriati per il tuo ambiente:

    # groupadd -g GID_SAPINST sapinst
    # groupadd -g GID_SAPSYS sapsys
    # useradd -u UID_SIDADM SID_LCadm -g sapsys
    # usermod -a -G sapinst SID_LCadm
    # useradd -u UID_SAPADM sapadm -g sapinst
    
    # chown SID_LCadm:sapsys /usr/sap/SID/SYS
    # chown SID_LCadm:sapsys /sapmnt/SID -R
    # chown SID_LCadm:sapsys /usr/sap/trans -R
    # chown SID_LCadm:sapsys /usr/sap/SID/SYS -R
    # chown SID_LCadm:sapsys /usr/sap/SID -R

    Se utilizzi una configurazione di montaggio semplice , esegui invece i seguenti comandi su entrambi i server come utente root. Specifica gli ID utente e gruppo appropriati per il tuo ambiente.

    # groupadd -g GID_SAPINST sapinst
    # groupadd -g GID_SAPSYS sapsys
    # useradd -u UID_SIDADM SID_LCadm -g sapsys
    # usermod -a -G sapinst SID_LCadm
    # useradd -u UID_SAPADM sapadm -g sapinst
    
    # chown SID_LCadm:sapsys /usr/sap/SID
    # chown SID_LCadm:sapsys /sapmnt/SID -R
    # chown SID_LCadm:sapsys /usr/sap/trans -R
    # chown SID_LCadm:sapsys /usr/sap/SID -R
    # chown SID_LCadm:sapsys /usr/sap/SID/SYS

    Sostituisci quanto segue:

    • GID_SAPINST: specifica l'ID gruppo Linux per lo strumento di provisioning SAP.
    • GID_SAPSYS: specifica l'ID gruppo Linux per l'utente SAPSYS.
    • UID_SIDADM: specifica l'ID utente Linux per l'amministratore del sistema SAP (SID).
    • SID_LC: specifica l'ID sistema (SID). Utilizza le lettere minuscole.
    • UID_SAPADM: specifica l'ID utente per l'agente di hosting SAP.
    • SID: specifica l'ID sistema (SID). Utilizza le lettere maiuscole per tutte le lettere.

    Ad esempio, di seguito è riportato uno schema di numerazione pratico per GID e UID:

    Group sapinst      1001
    Group sapsys       1002
    Group dbhshm       1003
    
    User  en2adm       2001
    User  sapadm       2002
    User  dbhadm       2003

Installa il componente ASCS

  1. Sul server secondario, inserisci il seguente comando per metterlo in modalità standby:

    # crm_standby -v on -N ${HOSTNAME};

    La modalità standby del server secondario consente di consolidare tutte le risorse del cluster sul server principale, semplificando l'installazione.

  2. Verifica che il server secondario sia in modalità standby:

    # crm status

    L'output è simile al seguente esempio:

    Stack: corosync
     Current DC: nw-ha-vm-1 (version 1.1.24+20201209.8f22be2ae-3.12.1-1.1.24+20201209.8f22be2ae) - partition with quorum
     Last updated: Thu May 27 17:45:16 2021
     Last change: Thu May 27 17:45:09 2021 by root via crm_attribute on nw-ha-vm-2
    
     2 nodes configured
     8 resource instances configured
    
     Node nw-ha-vm-2: standby
     Online: [ nw-ha-vm-1 ]
    
     Full list of resources:
    
      fencing-rsc-nw-aha-vm-1        (stonith:fence_gce):    Stopped
      fencing-rsc-nw-aha-vm-2        (stonith:fence_gce):    Started nw-ha-vm-1
      filesystem-rsc-nw-aha-scs      (ocf::heartbeat:Filesystem):    Started nw-ha-vm-1
      filesystem-rsc-nw-aha-ers      (ocf::heartbeat:Filesystem):    Started nw-ha-vm-1
      health-check-rsc-nw-ha-scs     (ocf::heartbeat:anything):      Started nw-ha-vm-1
      health-check-rsc-nw-ha-ers     (ocf::heartbeat:anything):      Started nw-ha-vm-1
      vip-rsc-nw-aha-scs     (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-1
      vip-rsc-nw-aha-ers     (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-1
    

    Se utilizzi una configurazione di montaggio semplice, l'output è simile al seguente:

    Stack: corosync
     Current DC: nw-ha-vm-1 (version 1.1.24+20201209.8f22be2ae-3.12.1-1.1.24+20201209.8f22be2ae) - partition with quorum
     Last updated: Wed Sep 26 19:30:10 2024
     Last change: Tue Sep 25 23:58:35 2024 by root via crm_attribute on nw-ha-vm-2
    
     2 nodes configured
     8 resource instances configured
    
     Node nw-ha-vm-2: standby
     Online: [ nw-ha-vm-1 ]
    
     Full list of resources:
    
      fencing-rsc-nw-aha-vm-1        (stonith:fence_gce):    Stopped
      fencing-rsc-nw-aha-vm-2        (stonith:fence_gce):    Started nw-ha-vm-1
      health-check-rsc-nw-ha-scs     (ocf::heartbeat:anything):      Started nw-ha-vm-1
      health-check-rsc-nw-ha-ers     (ocf::heartbeat:anything):      Started nw-ha-vm-1
      vip-rsc-nw-aha-scs     (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-1
      vip-rsc-nw-aha-ers     (ocf::heartbeat:IPaddr2):       Started nw-ha-vm-1
    
  3. Sul server principale, come utente root, modifica la directory in una directory di installazione temporanea, ad esempio /tmp, per installare l'istanza ASCS eseguendo SAP Software Provisioning Manager (SWPM).

    • Per accedere all'interfaccia web di SWPM, devi disporre della password per l'utente root. Se i tuoi criteri IT non consentono all'amministratore SAP di accedere alla password di root, puoi utilizzare SAPINST_REMOTE_ACCESS_USER.

    • Quando avvii SWPM, utilizza il parametro SAPINST_USE_HOSTNAME per specificare il nome host virtuale che hai definito per l'indirizzo VIP ASCS nel file /etc/hosts.

      Ad esempio:

      cd /tmp; /mnt/nfs/install/SWPM/sapinst SAPINST_USE_HOSTNAME=vh-aha-scs
    • Nella pagina di conferma finale del SWPM, assicurati che il nome dell'host virtuale sia corretto.

  4. Al termine della configurazione, estrarre la VM secondaria dalla modalità standby:

    # crm_standby -v off -N ${HOSTNAME}; # On SECONDARY

Installa il componente ERS

  1. Sul server principale, come utente root o SID_LCadm, interrompi il servizio ASCS.

    # su - SID_LCadm -c "sapcontrol -nr ASCS_INSTANCE_NUMBER -function Stop"
    # su - SID_LCadm -c "sapcontrol -nr ASCS_INSTANCE_NUMBER -function StopService"
  2. Sul server principale, inserisci il seguente comando per metterlo in modalità standby:

    # crm_standby -v on -N ${HOSTNAME};

    La modalità standby del server principale consente di consolidare tutte le risorse del cluster sul server secondario, semplificando l'installazione.

  3. Verifica che il server principale sia in modalità standby:

    # crm status

  4. Sul server secondario, come utente root, modifica la directory in una directory di installazione temporanea, ad esempio /tmp, per installare l'istanza ERS eseguendo SAP Software Provisioning Manager (SWPM).

    • Utilizza lo stesso utente e la stessa password per accedere a SWPM che hai utilizzato quando hai installato il componente ASCS.

    • Quando avvii SWPM, utilizza il parametro SAPINST_USE_HOSTNAME per specificare il nome host virtuale che hai definito per l'indirizzo VIP ERS nel file /etc/hosts.

      Ad esempio:

      cd /tmp; /mnt/nfs/install/SWPM/sapinst SAPINST_USE_HOSTNAME=vh-aha-ers
    • Nella pagina di conferma finale del SWPM, assicurati che il nome dell'host virtuale sia corretto.

  5. Rimuovi la VM principale dallo stato di standby per attivarle entrambe:

    # crm_standby -v off -N ${HOSTNAME};

Configura i servizi SAP

Devi verificare che i servizi siano configurati correttamente, controllare le impostazioni nei profili ASCS ed ERS e aggiungere l'utente SID_LCadm al gruppo di utenti haclient.

Conferma le voci del servizio SAP

  1. Su entrambi i server, verifica che il file /usr/sap/sapservices contenga voci sia per i servizi ASCS sia per ERS. Per farlo, puoi utilizzare l'integrazione di systemV o systemd.

    Puoi aggiungere le voci mancanti utilizzando il comando sapstartsrv con le opzioni pf=PROFILE_OF_THE_SAP_INSTANCE e -reg.

    Per ulteriori informazioni su queste integrazioni, consulta le seguenti note SAP:

    systemV

    Di seguito è riportato un esempio di come vengono visualizzate le voci per i servizi ASCS ed ERS nel file /usr/sap/sapservices quando utilizzi l'integrazione systemV:

    # LD_LIBRARY_PATH=/usr/sap/hostctrl/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH
    /usr/sap/hostctrl/exe/sapstartsrv \
    pf=/usr/sap/SID/SYS/profile/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME \
    -D -u SID_LCadm
    /usr/sap/hostctrl/exe/sapstartsrv \
    pf=/usr/sap/SID/SYS/profile/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
    -D -u SID_LCadm

    systemd

    1. Verifica che il file /usr/sap/sapservices contenga voci per i servizi ASCS ed ERS. Di seguito è riportato un esempio di come queste voci vengono visualizzate nel file /usr/sap/sapservices quando utilizzi l'integrazione systemd:

      systemctl --no-ask-password start SAPSID_ASCS_INSTANCE_NUMBER # sapstartsrv pf=/usr/sap/SID/SYS/profile/SID_ASCSASCS_INSTANCE_NUMBER_SID_LCascs
      systemctl --no-ask-password start SAPSID_ERS_INSTANCE_NUMBER # sapstartsrv pf=/usr/sap/SID/SYS/profile/SID_ERSERS_INSTANCE_NUMBER_SID_LCers
    2. Disattiva l'integrazione di systemd nelle istanze ASCS ed ERS:

      # systemctl disable SAPSID_ASCS_INSTANCE_NUMBER.service
      # systemctl stop SAPSID_ASCS_INSTANCE_NUMBER.service
      # systemctl disable SAPSID_ERS_INSTANCE_NUMBER.service
      # systemctl stop SAPSID_ERS_INSTANCE_NUMBER.service
    3. Verifica che l'integrazione di systemd sia disattivata:

      # systemctl list-unit-files | grep sap

      Un output simile all'esempio seguente indica che l'integrazione di systemd è disattivata. Tieni presente che alcuni servizi, come saphostagent e saptune, sono abilitati e alcuni sono disattivati.

      SAPSID_ASCS_INSTANCE_NUMBER.service disabled
      SAPSID_ERS_INSTANCE_NUMBER.service disabled
      saphostagent.service enabled
      sapinit.service generated
      saprouter.service disabled
      saptune.service enabled

      Per ulteriori informazioni, consulta il documento SUSE Disattivazione dei servizi systemd delle istanze SAP ASCS ed ERS.

Interrompi i servizi SAP

  1. Sul server secondario, arresta il servizio ERS:

    # su - SID_LCadm -c "sapcontrol -nr ERS_INSTANCE_NUMBER -function Stop"
    # su - SID_LCadm -c "sapcontrol -nr ERS_INSTANCE_NUMBER -function StopService"
  2. Su ogni server, verifica che tutti i servizi siano stati arrestati:

    # su - SID_LCadm -c "sapcontrol -nr ASCS_INSTANCE_NUMBER -function GetSystemInstanceList"
    # su - SID_LCadm -c "sapcontrol -nr ERS_INSTANCE_NUMBER -function GetSystemInstanceList"

    Dovresti vedere un output simile al seguente esempio:

    GetSystemInstanceList
    FAIL: NIECONN_REFUSED (Connection refused), NiRawConnect failed in plugin_fopen()

Attiva sapping e sappong

Poiché le procedure di avvio e arresto nel cluster sono gestite da Pacemaker, devi assicurarti che sapstartsrv non venga avviato automaticamente durante l'avvio del sistema. Durante l'avvio del sistema, sapping viene eseguito prima di sapinit, che nasconde i file sapservices. Al termine di sapinit, sappong mostra nuovamente i file sapservices.

Per attivare questo flusso, devi abilitare i servizi systemd sapping e sappong utilizzando i seguenti comandi:

# systemctl enable sapping sappong
# systemctl status sapping sappong

Modificare i profili ASCS ed ERS

  1. Su entrambi i server, passa alla directory del profilo utilizzando uno dei seguenti comandi:

    # cd /usr/sap/SID/SYS/profile
    # cd /sapmnt/SID/profile
  2. Se necessario, puoi trovare i nomi dei file dei profili ASCS e ERS elencando i file nella directory del profilo o utilizzando i seguenti formati:

    SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME
    SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME
  3. Attiva il pacchetto sap-suse-cluster-connector aggiungendo le seguenti righe ai profili delle istanze ASCS ed ERS:

    #-----------------------------------------------------------------------
    # SUSE HA library
    #-----------------------------------------------------------------------
    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
  4. Se utilizzi ENSA1, attiva la funzione keepalive impostando quanto segue nel profilo ASCS:

    enque/encni/set_so_keepalive = true

    Per ulteriori informazioni, consulta la Nota SAP 1410736 - TCP/IP: impostazione dell'intervallo di keepalive.

  5. Se necessario, modifica i profili ASCS ed ERS per modificare il comportamento di avvio del server di coda e del server di replica di coda.

    ENSA1

    Nella sezione "Avvia il server di coda SAP" del profilo ASCS, se visualizzi Restart_Program_NN, modifica "Restart" in "Start", come mostrato nell'esempio seguente.

    Start_Program_01 = local $(_EN) pf=$(_PF)

    Nella sezione "Avvia il server di replica in coda" del profilo ERS, se visualizzi Restart_Program_NN, modifica "Restart" in "Start", come mostrato nell'esempio seguente.

    Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)

    ENSA2

    Nella sezione "Avvia il server di coda SAP" del profilo ASCS, se visualizzi Restart_Program_NN, modifica "Restart" in "Start", come mostrato nell'esempio seguente.

    Start_Program_01 = local $(_ENQ) pf=$(_PF)

    Nella sezione "Avvia replicatore in coda" del profilo ERS, se visualizzi Restart_Program_NN, modifica "Restart" in "Start", come mostrato nell'esempio seguente.

    Start_Program_00 = local $(_ENQR) pf=$(_PF) ...

Aggiungi l'utente sidadm al gruppo di utenti haclient

Quando hai installato sap-suse-cluster-connector, l'installazione ha creato un gruppo di utenti sap-suse-cluster-connector.haclient Per consentire all'utente SID_LCadm di lavorare con il cluster, aggiungilo al gruppo di utenti haclient.

  1. Su entrambi i server, aggiungi l'utente SID_LCadm al gruppo di utenti haclient:

    # usermod -aG haclient SID_LCadm

Configura le risorse del cluster per ASCS ed ERS

  1. Con accesso come utente root da uno dei server, imposta il cluster in modalità di manutenzione:

    # crm configure property maintenance-mode="true"
  2. Verifica che il cluster sia in modalità di manutenzione:

    # crm status

    Se il cluster è in modalità di manutenzione, lo stato include le seguenti righe:

                  *** Resource management is DISABLED ***
    The cluster will not attempt to start, stop or recover services
  3. Se utilizzi una configurazione Montaggio semplice, crea le risorse del cluster sapstartsrv per i servizi ASCS ed ERS. Se non utilizzi una configurazione di montaggio semplice, salta questo passaggio.

    1. Per ASCS, crea un file di configurazione denominato sapstartsrv_scs.txt con il seguente contenuto:

      primitive rsc_SAPStartSrv_SID_ASCSINSTANCENUMBER ocf:suse:SAPStartSrv \
      params InstanceName=SID_ASCSINSTANCE_NUMBER_ASCS_VIRTUAL_HOSTNAME
    2. Per caricare la configurazione per ASCS, esegui il comando seguente:

      # crm configure load update sapstartsrv_scs.txt
    3. Per ERS, crea un file di configurazione denominato sapstartsrv_ers.txt con i seguenti contenuti:

      primitive rsc_SAPStartSrv_SID_ERSINSTANCENUMBER ocf:suse:SAPStartSrv \
      params InstanceName=SID_ERSINSTANCE_NUMBER_ERS_VIRTUAL_HOSTNAME
    4. Per caricare la configurazione per ERS, esegui il seguente comando:

      # crm configure load update sapstartsrv_ers.txt
  4. Crea le risorse del cluster per i servizi ASCS ed ERS:

    ENSA1

    1. Crea la risorsa cluster per l'istanza ASCS. Il valore di InstanceName è il nome del profilo dell'istanza generato da SWPM quando hai installato ASCS.

      # crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
           START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=60 \
           migration-threshold=1 priority=10

      Se utilizzi una configurazione di montaggio semplice, eseguite invece il seguente comando:

      # crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
           START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
        meta resource-stickiness=5000 failure-timeout=60 \
           migration-threshold=1 priority=10
    2. Crea la risorsa cluster per l'istanza ERS. Il valore di InstanceName è il nome del profilo dell'istanza generato da SWPM quando hai installato ERS. Il parametro IS_ERS=true indica a Pacemaker di impostare il flag runsersSID su 1 sul nodo in cui è attivo il sistema ERS.

      # crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME  \
           START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false IS_ERS=true \
        meta priority=1000

      Se utilizzi una configurazione di montaggio semplice, eseguite invece il seguente comando:

      # crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME  \
           START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false MINIMAL_PROBE=true IS_ERS=true \
        meta priority=1000
    3. Conferma la configurazione appena creata:

      # crm configure show ASCS_INSTANCE_RESOURCE ERS_INSTANCE_RESOURCE

      L'output è simile al seguente esempio:

      primitive ASCS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false \
      meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
      
      
      primitive ERS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false IS_ERS=true \
      meta priority=1000
      

      Se utilizzi una configurazione di montaggio semplice, l'output è simile al seguente esempio:

      primitive ASCS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
      meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
      
      
      primitive ERS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false MINIMAL_PROBE=true IS_ERS=true \
      meta priority=1000
      

    ENSA2

    1. Crea la risorsa cluster per l'istanza ASCS. Il valore di InstanceName è il nome del profilo dell'istanza generato da SWPM quando hai installato ASCS.

      # crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
           START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=60

      Se utilizzi una configurazione di montaggio semplice, esegui invece il seguente comando:

      # crm configure primitive ASCS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME \
           START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
        meta resource-stickiness=5000 failure-timeout=60
    2. Crea la risorsa cluster per l'istanza ERS. Il valore di InstanceName è il nome del profilo dell'istanza generato da SWPM quando hai installato ERS.

      # crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME  \
           START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false IS_ERS=true

      Se utilizzi una configurazione di montaggio semplice, esegui invece il seguente comando:

      # crm configure primitive ERS_INSTANCE_RESOURCE SAPInstance \
        operations \$id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME  \
           START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" \
           AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \
           meta priority=1000
    3. Conferma la configurazione appena creata:

      # crm configure show ASCS_INSTANCE_RESOURCE ERS_INSTANCE_RESOURCE

      L'output è simile al seguente esempio:

      primitive ASCS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false \
      meta resource-stickiness=5000 failure-timeout=60
      
      
      primitive ERS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false IS_ERS=true \
      

      Se utilizzi una configurazione di montaggio semplice, l'output è simile al seguente:

      primitive ASCS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ASCS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
      meta resource-stickiness=5000 failure-timeout=60 \
      migration-threshold=1 priority=10
      
      
      primitive ERS_INSTANCE_RESOURCE SAPInstance \
      operations $id=ERS_INSTANCE_RSC_OPERATIONS_NAME \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME START_PROFILE="/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME" AUTOMATIC_RECOVER=false MINIMAL_PROBE=true IS_ERS=true \
      meta priority=1000

Configura i gruppi di risorse e i vincoli di località

  1. Raggruppa le risorse ASCS ed ERS. Puoi visualizzare i nomi di tutte le risorse definite in precedenza inserendo il comando crm resource status:

    • # crm configure group ASCS_RESOURCE_GROUP ASCS_FILE_SYSTEM_RESOURCE \
        ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE \
        ASCS_INSTANCE_RESOURCE \
        meta resource-stickiness=3000
      Se utilizzi una configurazione di montaggio semplice, esegui invece il seguente comando:
      # crm configure group ASCS_RESOURCE_GROUP ASCS_SAPSTARTSRV_RESOURCE \
        ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE \
        ASCS_INSTANCE_RESOURCE \
        meta resource-stickiness=3000
      Sostituisci quanto segue:
      • ASCS_RESOURCE_GROUP: specifica un nome di gruppo univoco per le risorse del cluster ASCS. Puoi garantire l'unicità utilizzando una convenzione come SID_LC_ASCSINSTANCE_NUMBER_group. Ad esempio, nw1_ASCS00_group.
      • ASCS_FILE_SYSTEM_RESOURCE: specifica il nome della risorsa cluster che hai definito in precedenza per il file system ASCS. Questa variabile segnaposto non è applicabile se utilizzi una configurazione di montaggio semplice.
      • ASCS_SAPSTARTSRV_RESOURCE: specifica il nome della risorsa del cluster che hai definito in precedenza per "sapstartsrv" dell'ASCS. Questa variabile segnaposto è applicabile solo se utilizzi una configurazione di montaggio semplice.
      • ASCS_HEALTH_CHECK_RESOURCE: specifica il nome della risorsa del cluster che hai definito per il controllo di integrità dell'ASCS in precedenza.
      • ASCS_VIP_RESOURCE: specifica il nome della risorsa cluster che hai definito in precedenza per l'IP virtuale ASCS.
      • ASCS_INSTANCE_RESOURCE: specifica il nome della risorsa del cluster che hai definito in precedenza per l'istanza ASCS.
    • # crm configure group ERS_RESOURCE_GROUP ERS_FILE_SYSTEM_RESOURCE \
        ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE \
        ERS_INSTANCE_RESOURCE
      Se utilizzi una configurazione Montaggio semplice, esegui invece il seguente comando:
      # crm configure group ERS_RESOURCE_GROUP ERS_SAPSTARTSRV_RESOURCE \
        ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE \
        ERS_INSTANCE_RESOURCE
      Sostituisci quanto segue:
      • ERS_RESOURCE_GROUP: specifica un nome di gruppo univoco per le risorse del cluster ERS. Puoi garantire l'unicità utilizzando una convenzione come "SID_ERSinstance number_group". Ad esempio, nw1_ERS10_group.
      • ERS_SAPSTARTSRV_RESOURCE: specifica il nome della risorsa del cluster che hai definito in precedenza per "sapstartsrv" ERS. Questa variabile segnaposto è applicabile solo se utilizzi una configurazione di montaggio semplice.
      • ERS_FILE_SYSTEM_RESOURCE: specifica il nome della risorsa del cluster che hai definito in precedenza per il file system ERS. Questa variabile segnaposto non è applicabile se utilizzi una configurazione di montaggio semplice.
      • ERS_HEALTH_CHECK_RESOURCE: specifica il nome della risorsa del cluster che hai definito per il controllo di integrità ERS in precedenza.
      • ERS_VIP_RESOURCE: specifica il nome della risorsa cluster che hai definito in precedenza per l'IP virtuale ERS.
      • ERS_INSTANCE_RESOURCE: specifica il nome della risorsa cluster che hai definito in precedenza per l'istanza ERS.
  2. Conferma la configurazione appena creata:

    # crm configure show type:group

    L'output è simile al seguente esempio:

    group ERS_RESOURCE_GROUP ERS_FILE_SYSTEM_RESOURCE ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE ERS_INSTANCE_RESOURCE
    group ASCS_RESOURCE_GROUP ASCS_FILE_SYSTEM_RESOURCE ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE ASCS_INSTANCE_RESOURCE \
            meta resource-stickiness=3000

    Se utilizzi una configurazione di montaggio semplice, l'output è simile all'esempio seguente:

    group ERS_RESOURCE_GROUP ERS_SAPSTARTSRV_RESOURCE ERS_HEALTH_CHECK_RESOURCE ERS_VIP_RESOURCE ERS_INSTANCE_RESOURCE
    group ASCS_RESOURCE_GROUP ASCS_SAPSTARTSRV_RESOURCE ASCS_HEALTH_CHECK_RESOURCE ASCS_VIP_RESOURCE ASCS_INSTANCE_RESOURCE
  3. Crea i vincoli di co-localizzazione:

    ENSA1

    1. Crea un vincolo di co-locazione che impedisca alle risorse ASCS di funzionare sullo stesso server delle risorse ERS:

      # crm configure colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP
    2. Configura ASCS in modo che esegui il failover sul server su cui è in esecuzione ERS, come stabilito dal flag runsersSID uguale a 1:

      # crm configure location LOC_SCS_SID_FAILOVER_TO_ERS ASCS_INSTANCE_RESOURCE \
      rule 2000: runs_ers_SID eq 1
    3. Configura ASCS in modo che venga avviato prima che ERS si trasferisca sull'altro server dopo un failover:

      # crm configure order ORD_SAP_SID_FIRST_START_ASCS \
       Optional: ASCS_INSTANCE_RESOURCE:start \
       ERS_INSTANCE_RESOURCE:stop symmetrical=false
    4. Conferma la configurazione appena creata:

      # crm configure show type:colocation type:location type:order

      Dovresti vedere un output simile al seguente esempio:

      order ORD_SAP_SID_FIRST_START_ASCS Optional: ASCS_INSTANCE_RESOURCE:start ERS_INSTANCE_RESOURCE:stop symmetrical=false
      colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP
      location LOC_SCS_SID_FAILOVER_TO_ERS ASCS_INSTANCE_RESOURCE \
      rule 2000: runs_ers_SID eq 1

    ENSA2

    1. Crea un vincolo di co-locazione che impedisca alle risorse ASCS di funzionare sullo stesso server delle risorse ERS:

      # crm configure colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP
    2. Configura ASCS in modo che venga avviato prima che ERS si trasferisca sull'altro server dopo un failover:

      # crm configure order ORD_SAP_SID_FIRST_START_ASCS \
       Optional: ASCS_INSTANCE_RESOURCE:start \
       ERS_INSTANCE_RESOURCE:stop symmetrical=false
    3. Conferma la configurazione appena creata:

      # crm configure show type:colocation type:order

      Dovresti vedere un output simile al seguente esempio:

      colocation PREVENT_SCS_ERS_COLOC -5000: ERS_RESOURCE_GROUP ASCS_RESOURCE_GROUP
      order ORD_SAP_SID_FIRST_START_ASCS  Optional: ASCS_INSTANCE_RESOURCE:start ERS_INSTANCE_RESOURCE:stop symmetrical=false
  4. Disattiva la modalità di manutenzione.

    # crm configure property maintenance-mode="false"

Convalida e testa il cluster

Questa sezione mostra come eseguire i seguenti test:

  • Verificare la presenza di errori di configurazione
  • Verifica che le risorse ASCS ed ERS cambino server correttamente durante i failover
  • Verifica che le serrature vengano conservate
  • Simula un evento di manutenzione di Compute Engine per assicurarti che migrazione live non attivi un failover

Controlla la configurazione del cluster

  1. Con accesso come utente root su uno dei server, controlla su quali nodi sono in esecuzione le risorse:

    # crm status

    Nell'esempio seguente, le risorse ASCS vengono eseguite sul server nw-ha-vm-1 e le risorse ERS vengono eseguite sul server nw-ha-vm-2.

    Cluster Summary:
      * Stack: corosync
      * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum
      * Last updated: Thu May 20 16:58:46 2021
      * Last change:  Thu May 20 16:57:31 2021 by ahaadm via crm_resource on nw-ha-vm-2
      * 2 nodes configured
      * 10 resource instances configured
    
    Node List:
      * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Active Resources:
      * fencing-rsc-nw-aha-vm-1     (stonith:fence_gce):     Started nw-ha-vm-2
      * fencing-rsc-nw-aha-vm-2     (stonith:fence_gce):     Started nw-ha-vm-1
      * Resource Group: ascs-aha-rsc-group-name:
        * filesystem-rsc-nw-aha-ascs (ocf::heartbeat:Filesystem):     Started nw-ha-vm-1
        * health-check-rsc-nw-ha-ascs        (ocf::heartbeat:anything):       Started nw-ha-vm-1
        * vip-rsc-nw-aha-ascs        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-1
        * ascs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-1
      * Resource Group: ers-aha-rsc-group-name:
        * filesystem-rsc-nw-aha-ers (ocf::heartbeat:Filesystem):     Started nw-ha-vm-2
        * health-check-rsc-nw-ha-ers        (ocf::heartbeat:anything):       Started nw-ha-vm-2
        * vip-rsc-nw-aha-ers        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-2
        * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-2

    Se utilizzi una configurazione di montaggio semplice, l'output è simile al seguente esempio:

    Cluster Summary:
      * Stack: corosync
      * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum
      * Last updated: Thu Sep 20 19:44:26 2024
      * Last change:  Thu Sep 20 19:53:41 2024 by ahaadm via crm_resource on nw-ha-vm-2
      * 2 nodes configured
      * 10 resource instances configured
    
    Node List:
      * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Active Resources:
      * fencing-rsc-nw-aha-vm-1     (stonith:fence_gce):     Started nw-ha-vm-2
      * fencing-rsc-nw-aha-vm-2     (stonith:fence_gce):     Started nw-ha-vm-1
      * Resource Group: ascs-aha-rsc-group-name:
        * SAPStartSrv-rsc-nw-aha-ascs (ocf::heartbeat:SAPStartSrv):     Started nw-ha-vm-1
        * health-check-rsc-nw-ha-ascs        (ocf::heartbeat:anything):       Started nw-ha-vm-1
        * vip-rsc-nw-aha-ascs        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-1
        * ascs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-1
      * Resource Group: ers-aha-rsc-group-name:
        * SAPStartSrv-rsc-nw-aha-ers (ocf::heartbeat:SAPStartSrv):     Started nw-ha-vm-2
        * health-check-rsc-nw-ha-ers        (ocf::heartbeat:anything):       Started nw-ha-vm-2
        * vip-rsc-nw-aha-ers        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-2
        * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-2
    
  2. Passa all'utente SID_LCadm:

    # su - SID_LCadm
  3. Controlla la configurazione del cluster. Per INSTANCE_NUMBER, specifica il numero di istanza dell'istanza ASCS o ERS attiva sul server in cui stai inserendo il comando:

    > sapcontrol -nr INSTANCE_NUMBER -function HAGetFailoverConfig

    HAActive deve essere TRUE, come mostrato nell'esempio seguente:

    20.05.2021 01:33:25
    HAGetFailoverConfig
    OK
    HAActive: TRUE
    HAProductVersion: SUSE Linux Enterprise Server for SAP Applications 15 SP2
    HASAPInterfaceVersion: SUSE Linux Enterprise Server for SAP Applications 15 SP2 (sap_suse_cluster_connector 3.1.2)
    HADocumentation: https://www.suse.com/products/sles-for-sap/resource-library/sap-best-practices/
    HAActiveNode: nw-ha-vm-1
    HANodes: nw-ha-vm-1, nw-ha-vm-2

  4. Come SID_LCadm, controlla se sono presenti errori nella configurazione:

    > sapcontrol -nr INSTANCE_NUMBER -function HACheckConfig

    Dovresti vedere un output simile al seguente esempio:

    20.05.2021 01:37:19
    HACheckConfig
    OK
    state, category, description, comment
    SUCCESS, SAP CONFIGURATION, Redundant ABAP instance configuration, 0 ABAP instances detected
    SUCCESS, SAP CONFIGURATION, Redundant Java instance configuration, 0 Java instances detected
    SUCCESS, SAP CONFIGURATION, Enqueue separation, All Enqueue server separated from application server
    SUCCESS, SAP CONFIGURATION, MessageServer separation, All MessageServer separated from application server
    SUCCESS, SAP STATE, SCS instance running, SCS instance status ok
    SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version (vh-ascs-aha_AHA_00), SAPInstance includes is-ers patch
    SUCCESS, SAP CONFIGURATION, Enqueue replication (vh-ascs-aha_AHA_00), Enqueue replication enabled
    SUCCESS, SAP STATE, Enqueue replication state (vh-ascs-aha_AHA_00), Enqueue replication active

  5. Sul server in cui ASCS è attivo, come SID_LCadm, simula un failover:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function HAFailoverToNode ""
  6. Come utente root, se segui il failover utilizzando crm_mon, dovresti vedere ASCS spostarsi sull'altro server, ERS arrestarsi su quel server e poi ERS spostarsi sul server su cui era in esecuzione ASCS.

Simulare un failover

Testa il cluster simulando un errore sull'host principale. Utilizza un sistema di test o esegui il test sul sistema di produzione prima di rilasciarlo per l'utilizzo.

Puoi simulare un errore in diversi modi, ad esempio:

  • shutdown -r (sul nodo attivo)
  • ip link set eth0 down
  • echo c > /proc/sysrq-trigger

Queste istruzioni utilizzano ip link set eth0 down per mettere offline l'interfaccia di rete, in quanto convalidano sia il failover sia il fencing.

  1. Esegui il backup del sistema.

  2. Con accesso come utente root sull'host con l'istanza SCS attiva, metti offline l'interfaccia di rete:

    # ip link set eth0 down
  3. Riconnettiti a uno degli host utilizzando SSH e passa all'utente root.

  4. Inserisci crm status per confermare che l'host principale è ora attivo sulla VM che in precedenza conteneva l'host secondario. Il riavvio automatico è abilitato nel cluster, quindi l'host fermato si riavvierà e assumerà il ruolo di host secondario, come mostrato nell'esempio seguente.

    Cluster Summary:
    * Stack: corosync
    * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum
    * Last updated: Fri May 21 22:31:32 2021
    * Last change:  Thu May 20 20:36:36 2021 by ahaadm via crm_resource on nw-ha-vm-1
    * 2 nodes configured
    * 10 resource instances configured
    
    Node List:
    * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Full List of Resources:
    * fencing-rsc-nw-aha-vm-1     (stonith:fence_gce):     Started nw-ha-vm-2
    * fencing-rsc-nw-aha-vm-2     (stonith:fence_gce):     Started nw-ha-vm-1
    * Resource Group: scs-aha-rsc-group-name:
      * filesystem-rsc-nw-aha-scs (ocf::heartbeat:Filesystem):     Started nw-ha-vm-2
      * health-check-rsc-nw-ha-scs        (ocf::heartbeat:anything):       Started nw-ha-vm-2
      * vip-rsc-nw-aha-scs        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-2
      * scs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-2
    * Resource Group: ers-aha-rsc-group-name:
      * filesystem-rsc-nw-aha-ers (ocf::heartbeat:Filesystem):     Started nw-ha-vm-1
      * health-check-rsc-nw-ha-ers        (ocf::heartbeat:anything):       Started nw-ha-vm-1
      * vip-rsc-nw-aha-ers        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-1
      * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-1

    Se utilizzi una configurazione di montaggio semplice, vedrai un output simile a quanto segue:

    Cluster Summary:
     * Stack: corosync
     * Current DC: nw-ha-vm-2 (version 2.0.4+20200616.2deceaa3a-3.3.1-2.0.4+20200616.2deceaa3a) - partition with quorum
     * Last updated: Wed Sep 26 19:10:10 2024
     * Last change:  Tue Sep 25 23:48:35 2024 by ahaadm via crm_resource on nw-ha-vm-1
     * 2 nodes configured
     * 10 resource instances configured
    
    Node List:
     * Online: [ nw-ha-vm-1 nw-ha-vm-2 ]
    
    Full List of Resources:
     * fencing-rsc-nw-aha-vm-1     (stonith:fence_gce):     Started nw-ha-vm-2
     * fencing-rsc-nw-aha-vm-2     (stonith:fence_gce):     Started nw-ha-vm-1
     * Resource Group: scs-aha-rsc-group-name:
       * SAPStartSrv-rsc-nw-aha-scs (ocf::heartbeat:SAPStartSrv):     Started nw-ha-vm-2
       * health-check-rsc-nw-ha-scs        (ocf::heartbeat:anything):       Started nw-ha-vm-2
       * vip-rsc-nw-aha-scs        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-2
       * scs-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-2
     * Resource Group: ers-aha-rsc-group-name:
       * SAPStartSrv-rsc-nw-aha-ers (ocf::heartbeat:SAPStartSrv):     Started nw-ha-vm-1
       * health-check-rsc-nw-ha-ers        (ocf::heartbeat:anything):       Started nw-ha-vm-1
       * vip-rsc-nw-aha-ers        (ocf::heartbeat:IPaddr2):        Started nw-ha-vm-1
       * ers-aha-instance-rsc-name (ocf::heartbeat:SAPInstance):    Started nw-ha-vm-1
    

Verificare che le voci di blocco vengano conservate

Per verificare che le voci di blocco vengano conservate durante un failover, seleziona prima la scheda relativa alla tua versione di Enqueue Server e segui la procedura per generare le voci di blocco, simula un failover e verifica che le voci di blocco vengano conservate dopo che ASCS è stato riattivato.

ENSA1

  1. Come SID_LCadm, sul server in cui è attivo ERS, genera voci di blocco utilizzando il programma enqt:

    > enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 11 NUMBER_OF_LOCKS
  2. Come SID_LCadm, sul server in cui è attivo ASCS, verifica che le voci di blocco siano registrate:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

    Se hai creato 10 blocchi, dovresti vedere un output simile all'esempio riportato di seguito:

    locks_now: 10
  3. Come SID_LCadm, sul server in cui è attivo ERS, avvia la funzione di monitoraggio OpCode=20 del programma enqt:

    > enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 20 1 1 9999

    Ad esempio:

    > enqt pf=/sapmnt/AHA/profile/AHA_ERS10_vh-ers-aha 20 1 1 9999
  4. Se ASCS è attivo, riavvia il server.

    Sul server di monitoraggio, quando Pacemaker interrompe ERS per spostarlo sull'altro server, dovresti vedere un output simile al seguente.

    Number of selected entries: 10
    Number of selected entries: 10
    Number of selected entries: 10
    Number of selected entries: 10
    Number of selected entries: 10
  5. Quando il monitoraggio di enqt si interrompe, esci dal monitoraggio inserendo Ctrl + c.

  6. Se vuoi, come utente root su uno dei server, monitora il failover del cluster:

    # crm_mon
  7. In qualità di SID_LCadm, dopo aver verificato che le serrature sono state trattene, rilasciale:

    > enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 12 NUMBER_OF_LOCKS
  8. Come SID_LCadm, sul server in cui è attivo ASCS, verifica che le voci di blocco siano state rimosse:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

ENSA2

  1. Come SID_LCadm, sul server in cui ASCS è attivo, genera voci di blocco utilizzando il programma enq_adm:

    > enq_admin --set_locks=NUMBER_OF_LOCKS:X:DIAG::TAB:%u pf=/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAME
  2. Come SID_LCadm, sul server in cui è attivo ASCS, verifica che le voci di blocco siano registrate:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

    Se hai creato 10 blocchi, dovresti vedere un output simile all'esempio riportato di seguito:

    locks_now: 10
  3. Se ERS è attivo, verifica che le voci di blocco siano state replicate:

    > sapcontrol -nr ERS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

    Il numero di blocchi restituiti deve essere lo stesso dell'istanza ASCS.

  4. Se ASCS è attivo, riavvia il server.

  5. Se vuoi, come utente root su uno dei server, monitora il failover del cluster:

    # crm_mon
  6. Come SID_LCadm, sul server su cui è stato riavviato ASCS, verifica che le voci di blocco siano state conservate:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now
  7. Come SID_LCadm, sul server in cui è attivo ERS, dopo aver verificato che le serrature sono state conservate, liberale:

    > enq_admin --release_locks=NUMBER_OF_LOCKS:X:DIAG::TAB:%u pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME
  8. Come SID_LCadm, sul server in cui è attivo ASCS, verifica che le voci di blocco siano state rimosse:

    > sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now

    Dovresti vedere un output simile all'esempio riportato di seguito:

    locks_now: 0

Simulare un evento di manutenzione Compute Engine

Simula un evento di manutenzione di Compute Engine per assicurarti che la migrazione live non attivi un failover.

I valori di timeout e intervallo utilizzati in queste istruzioni tengono conto della durata delle migrazioni in tempo reale. Se utilizzi valori più brevi nella configurazione del cluster, il rischio che migrazione live possa attivare un failover è maggiore.

Per testare la tolleranza del cluster per migrazione live:

  1. Sul nodo principale, attiva un evento di manutenzione simulato utilizzando il seguente comando gcloud CLI:

    # gcloud compute instances simulate-maintenance-event PRIMARY_VM_NAME
  2. Verifica che il nodo principale non cambi:

    # crm status

Valutare il carico di lavoro SAP NetWeaver

Per automatizzare i controlli di convalida continua per i carichi di lavoro SAP NetWeaver con disponibilità elevata in esecuzione su Google Cloud, puoi utilizzare Workload Manager.

Workload Manager consente di eseguire automaticamente la scansione e la valutazione dei carichi di lavoro SAP NetWeaver con disponibilità elevata in base alle best practice di SAP, Google Cloud e dei fornitori di sistemi operativi. In questo modo puoi migliorare la qualità, le prestazioni e l'affidabilità dei tuoi carichi di lavoro.

Per informazioni sulle best practice supportate da Workload Manager per la valutazione dei carichi di lavoro SAP NetWeaver con disponibilità elevata in esecuzione su Google Cloud, consulta le best practice di Workload Manager per SAP. Per informazioni sulla creazione e sull'esecuzione di una valutazione utilizzando Workload Manager, consulta Creare ed eseguire una valutazione.

Risoluzione dei problemi

Per risolvere i problemi relativi alle configurazioni ad alta disponibilità per SAP NetWeaver, consulta la sezione Risoluzione dei problemi relativi alle configurazioni ad alta disponibilità per SAP.

Raccogliere informazioni diagnostiche per i cluster ad alta disponibilità di SAP NetWeaver

Se hai bisogno di aiuto per risolvere un problema con i cluster ad alta disponibilità per SAP NetWeaver, raccogli le informazioni di diagnostica necessarie e contatta l'assistenza clienti Google Cloud.

Per raccogliere le informazioni di diagnostica, consulta Informazioni di diagnostica sui cluster ad alta disponibilità su SLES.

Assistenza

Per problemi con i servizi o l'infrastruttura di Google Cloud, contatta l'assistenza clienti. Puoi trovare i dati di contatto nella pagina Panoramica dell'assistenza nella console Google Cloud. Se l'assistenza clienti stabilisce che il problema riguarda i tuoi sistemi SAP, ti verrà consigliato di rivolgerti all'assistenza SAP.

Per problemi relativi ai prodotti SAP, registra la richiesta di assistenza con l'assistenza SAP. SAP valuta il ticket di assistenza e, se sembra essere un problema dell'infrastruttura Google Cloud, lo trasferisce al componente Google Cloud appropriato nel proprio sistema: BC-OP-LNX-GOOGLE o BC-OP-NT-GOOGLE.

Requisiti di assistenza

Prima di poter ricevere assistenza per i sistemi SAP e per l'infrastruttura e i servizi Google Cloud che utilizzano, devi soddisfare i requisiti minimi del piano di assistenza.

Per ulteriori informazioni sui requisiti minimi di assistenza per SAP su Google Cloud, consulta:

Eseguire le attività di post-deployment

Prima di utilizzare il sistema SAP NetWeaver, ti consigliamo di eseguire il backup del nuovo sistema SAP NetWeaver HA.

Per ulteriori informazioni, consulta la Guida alle operazioni di SAP NetWeaver.

Passaggi successivi

Per ulteriori informazioni su disponibilità elevata, SAP NetWeaver e Google Cloud, consulta le seguenti risorse: