Questa guida mostra come automatizzare il deployment di un cluster ad alta disponibilità (HA) SUSE Linux Enterprise Server (SLES) ottimizzato per le prestazioni per SAP NetWeaver.
La guida utilizza Terraform per eseguire il deployment di due macchine virtuali (VM) Compute Engine, un indirizzo IP virtuale (VIP) con un'implementazione del bilanciatore del carico di rete passthrough interno e un cluster ad alta disponibilità basato sul sistema operativo, il tutto secondo le best practice di Google Cloud, SAP e il fornitore del sistema operativo.
Per informazioni sul deployment delle VM di Compute Engine per SAP NetWeaver non specifiche per l'alta disponibilità, 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 dei cluster ad alta disponibilità per SAP NetWeaver su RHEL.
Questa guida è rivolta agli utenti avanzati di SAP NetWeaver che hanno familiarità con le configurazioni Linux ad alta disponibilità per SAP NetWeaver.
Il sistema di cui viene eseguito il deployment in questa guida
Seguendo questa guida, eseguirai il deployment di due istanze SAP NetWeaver e configurerai un cluster ad alta disponibilità su SLES. Il deployment di ogni istanza SAP NetWeaver su una VM di Compute Engine si trova in una zona diversa all'interno della stessa regione. Un'installazione ad alta disponibilità del database sottostante non è trattata in questa guida.
Il cluster di cui è stato eseguito il deployment include le seguenti funzioni e caratteristiche:
- Due VM host, una per l'istanza ASCS attiva e una per l'istanza attiva di ENSA2 Enqueue Replicator o ENSA1 Enqueue Replication Server (ENSA1). Entrambe le istanze ENSA2 ed ENSA1 sono definite ERS.
- Il gestore delle risorse del cluster ad alta disponibilità di Pacemaker.
- Un meccanismo di recinzione STONITH.
- Riavvio automatico dell'istanza non riuscita come nuova istanza secondaria.
Prerequisiti
Prima di creare il cluster ad alta disponibilità SAP NetWeaver, assicurati che siano soddisfatti i seguenti prerequisiti:
- Hai letto la guida alla pianificazione di SAP NetWeaver e la Guida alla pianificazione dell'alta disponibilità per SAP NetWeaver su Google Cloud.
- Tu o la tua organizzazione disponete di un account Google Cloud e avete creato un progetto per il deployment di SAP NetWeaver. Per informazioni sulla creazione di account e progetti Google Cloud, consulta Creazione di un progetto nella guida al deployment di SAP NetWeaver per Linux.
- Se hai bisogno che il carico di lavoro SAP venga eseguito in conformità con la residenza dei dati, controllo dell'accesso, il personale di assistenza o i requisiti normativi, devi creare la cartella Assured Workloads richiesta. Per maggiori informazioni, consulta la pagina relativa ai controlli di conformità e sovranità per SAP su Google Cloud.
Se utilizzi il DNS interno VPC, il valore della variabile
vmDnsSetting
nei metadati del progetto deve essereGlobalOnly
oZonalPreferred
per abilitare la risoluzione dei nomi dei nodi in più zone. L'impostazione predefinita divmDnsSetting
èZonalOnly
. Per saperne di più, consulta:Hai configurato una condivisione file utilizzando una soluzione di archiviazione file condivisa NFS, come Filestore Enterprise.
Se l'opzione OS Login è abilitata nei metadati del progetto, devi disabilitare temporaneamente OS Login fino al completamento del deployment. Ai fini del deployment, questa procedura configura le chiavi SSH nei metadati dell'istanza. Quando l'accesso al sistema operativo è abilitato, le configurazioni di chiavi SSH basate su metadati vengono disabilitate e il deployment non va a buon fine. Al termine del deployment, puoi abilitare di nuovo OS Login.
Per ulteriori informazioni, vedi:
Informazioni correlate da SUSE
Ad eccezione di dove richiesto per l'ambiente Google Cloud, le informazioni contenute in questa guida sono coerenti con le seguenti guide correlate di SUSE:
- SAP NetWeaver Enqueue Replication 1 Cluster ad alta disponibilità - Guida alla configurazione per SAP NetWeaver 7.40 e 7.50 | SUSE Linux Enterprise Server per applicazioni SAP 12
- SAP NetWeaver Enqueue Replication 1 Cluster ad alta disponibilità - Guida alla configurazione per SAP NetWeaver 7.40 e 7.50 | SUSE Linux Enterprise Server per applicazioni SAP 15
- SAP S/4 HANA - Cluster ad alta disponibilità enqueue 2 - Guida alla configurazione | SUSE Linux Enterprise Server per applicazioni SAP 12
- SAP S/4 HANA - Cluster ad alta disponibilità enqueue 2 - Guida alla configurazione | SUSE Linux Enterprise Server per applicazioni SAP 15
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 la tua rete VPC in modo che le uniche regole firewall in vigore siano quelle create in modo esplicito.
Durante il deployment, le istanze VM richiedono in genere l'accesso a internet per scaricare l'agente di Google Cloud per SAP. Se utilizzi una delle immagini Linux certificate per SAP disponibili in Google Cloud, l'istanza VM richiede anche l'accesso a internet per poter registrare la licenza e accedere ai repository dei fornitori di sistemi operativi. Una configurazione con un gateway NAT e con 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:
-
Crea una rete in modalità personalizzata. Per ulteriori informazioni, consulta la sezione Creazione di una rete in modalità personalizzata.
-
Crea una subnet e specifica la regione e l'intervallo IP. Per saperne di più, consulta Aggiungere subnet.
Configurazione di un gateway NAT
Se devi creare una o più VM senza indirizzi IP pubblici, devi utilizzare Network Address Translation (NAT) per consentire alle VM di accedere a internet. Utilizza Cloud NAT, un servizio gestito software-defined distribuito e software-defined di Google Cloud che consente alle VM di inviare pacchetti in uscita a internet e 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 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, 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 alle porte specificate o per consentire l'accesso tra VM nella stessa subnet.
Crea regole firewall per consentire l'accesso a:
- Le porte predefinite utilizzate da SAP NetWeaver, come documentato in Porte TCP/IP di tutti i prodotti SAP.
- Connessioni dal tuo computer o dal tuo ambiente di rete aziendale all'istanza VM di Compute Engine. Se hai dubbi su quale indirizzo IP usare, rivolgiti all'amministratore di rete della tua azienda.
- Comunicazione tra VM in una configurazione a 3 livelli, con scale out o ad alta disponibilità. Ad esempio, se esegui il deployment di un sistema a tre livelli, avrai almeno due VM nella tua subnet: 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 che ha origine dalla subnet.
- Controlli di integrità di Cloud Load Balancing.
Per creare le regole firewall per il tuo progetto, consulta Creazione delle regole firewall.
Creazione di un cluster Linux ad alta disponibilità per SAP NetWeaver
Le seguenti istruzioni utilizzano un file di configurazione Terraform per creare un cluster SLES con due sistemi SAP NetWeaver, un sistema SAP NetWeaver principale con singolo host su un'istanza VM e un sistema SAP NetWeaver in standby su un'altra istanza VM nella stessa regione Compute Engine.
Puoi definire le opzioni di configurazione per il cluster ad alta disponibilità SAP NetWeaver in un file di configurazione Terraform.
Apri Cloud Shell.
Scarica il file di configurazione
sap_nw_ha.tf
per il cluster ad alta disponibilità SAP NetWeaver nella tua directory di lavoro:$
wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_nw_ha/terraform/sap_nw_ha.tfApri il file
sap_nw_ha.tf
nell'editor di codice di Cloud Shell.Per aprire l'editor di codice Cloud Shell, fai clic sull'icona a forma di matita nell'angolo in alto a destra della finestra del terminale Cloud Shell.
Nel file
sap_nw_ha.tf
, aggiorna i valori dell'argomento sostituendo i contenuti tra virgolette doppie con i valori dell'installazione. Gli argomenti sono descritti nella tabella seguente.Argomento Tipo di dati Descrizione source
Stringa Specifica la località e la versione del modulo Terraform da utilizzare durante il deployment.
Il file di configurazione
sap_nw_ha.tf
include due istanze dell'argomentosource
: una attiva e l'altra inclusa come commento. L'argomentosource
attivo per impostazione predefinita specificalatest
come versione del modulo. La seconda istanza dell'argomentosource
, che per impostazione predefinita viene disattivata da un carattere#
iniziale, specifica un timestamp che identifica la versione di un modulo.Se tutti i deployment devono utilizzare la stessa versione del modulo, rimuovi il carattere
#
iniziale dall'argomentosource
che specifica il timestamp della versione e aggiungilo all'argomentosource
che specificalatest
.project_id
Stringa Specifica l'ID del progetto Google Cloud in cui stai eseguendo il deployment del sistema. Ad esempio, my-project-x
.machine_type
Stringa Specifica il tipo di macchina virtuale (VM) Compute Engine su cui devi eseguire il tuo 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 necessario, 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 è necessario 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 creata in un passaggio precedente. Se esegui 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 in cui vuoi eseguire il deployment del tuo 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 contenente l'immagine che hai specificato per l'argomento linux_image
. Può trattarsi di un tuo progetto personale o di un progetto di immagini Google Cloud. Per un'immagine Compute Engine, specificasuse-sap-cloud
. Per trovare il progetto di 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 tua posizione ASCS iniziale. 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 viene eseguito il deployment del sistema SAP NetWeaver principale. Le zone primarie 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 tua posizione ERS iniziale. 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 viene eseguito il deployment del sistema SAP NetWeaver secondario. Le zone primarie 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 virgole da associare alle tue istanze VM per la regola firewall per il 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à ASCS. Il valore predefinito è SAP_SID-scs-hc
.scs_hc_port
Stringa Facoltativo. Specifica una porta per il controllo di integrità ASCS. Per evitare conflitti con altri servizi, indica il numero di porta per il controllo di integrità ASCS nell'intervallo privato, 49152-65535. Il valore predefinito è 60000
.scs_vip_address
Stringa Facoltativo. Specifica un indirizzo IP inutilizzato all'interno della subnet specificata su subnetwork
in precedenza da utilizzare come indirizzo IP virtuale per l'istanza ASCS. Se non viene specificato nulla, gli script di deployment selezionano automaticamente un indirizzo IP inutilizzato dalla subnet specificata.scs_vip_name
Stringa Facoltativo. Specifica un nome per l'IP virtuale 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 per 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à ERS. Per evitare conflitti con altri servizi, designa il numero di porta per il controllo di integrità ERS nell'intervallo privato, 49152-65535. Il valore predefinito è 60010
.ers_vip_address
Stringa Facoltativo. Specifica un indirizzo IP inutilizzato all'interno della subnet specificata su 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 inutilizzato 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 le dimensioni del disco /usr/sap
in GB. La dimensione minima è 8 GB. Il valore predefinito è8
.sap_mnt_size
Numero intero Facoltativo. Specifica le dimensioni del disco /sapmnt
in GB. La dimensione minima è 8 GB. Il valore predefinito è8
.swap_size
Numero intero Facoltativo. Specifica le dimensioni del volume di scambio in GB. La dimensione minima è 8 GB. Il valore predefinito è 8
.sap_scs_instance_number
Stringa Facoltativo. Specifica il numero di istanza ASCS. Il campo sap_scs_instance_number
deve essere un numero a due cifre. Se devi specificare un numero di una sola cifra, aggiungi un0
davanti al numero. Ad esempio:07
. Il valore predefinito è00
.sap_ers_instance_number
Stringa Facoltativo. Specifica il numero di istanza ERS. Il campo sap_ers_instance_number
deve essere un numero a due cifre. Se devi specificare un numero di una sola cifra, aggiungi un0
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 gruppo di pacemaker. Il valore predefinito è SAP_SID-cluster
.public_ip
Booleano Facoltativo. Per creare un indirizzo IP pubblico temporaneo per le istanze VM, imposta public_ip
sutrue
. Il valore predefinito èfalse
.service_account
Stringa Facoltativo. 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 oppure lo ometti, lo script di installazione utilizza l'account di servizio predefinito di Compute Engine. Per maggiori informazioni, consulta Gestione di identità e accessi per programmi SAP su Google Cloud.
network_tags
Stringa Facoltativo. Specifica uno o più tag di rete separati da virgole da associare alle tue istanze VM per scopi di firewall o di 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 per accedere a internet.sap_deployment_debug
Booleano Facoltativo. Solo quando l'assistenza clienti Google Cloud richiede l'attivazione del debug per il deployment, specifica true
in modo che il deployment generi log di deployment dettagliati. Il valore predefinito èfalse
.primary_reservation_name
Stringa Facoltativo. Per utilizzare una prenotazione VM di Compute Engine specifica per il provisioning dell'istanza VM che ospita l'istanza SAP HANA principale 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 seguenti condizioni. Affinché una prenotazione sia utilizzabile, indipendentemente dal fatto che tu specifichi un nome o venga selezionato automaticamente dallo script di installazione, la prenotazione deve essere impostata con quanto segue:
-
L'opzione
specificReservationRequired
è impostata sutrue
oppure, nella console Google Cloud, è selezionata l'opzione Seleziona una prenotazione specifica. -
Alcuni tipi di macchine Compute Engine supportano le piattaforme CPU non coperte dalla certificazione SAP del tipo di macchina. Se la prenotazione target è per uno dei seguenti tipi di macchina, la prenotazione deve specificare il numero minimo di piattaforme CPU, come indicato:
n1-highmem-32
: Intel Broadwelln1-highmem-64
: Intel Broadwelln1-highmem-96
: Intel Skylakem1-megamem-96
: Intel Skylake
Le piattaforme CPU minime per tutti gli altri tipi di macchine certificati da SAP per l'utilizzo su Google Cloud sono conformi al requisito minimo di CPU SAP.
secondary_reservation_name
Stringa Facoltativo. 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 seguenti condizioni. Affinché una prenotazione sia utilizzabile, indipendentemente dal fatto che tu specifichi un nome o venga selezionato automaticamente dallo script di installazione, la prenotazione deve essere impostata con quanto segue:
-
L'opzione
specificReservationRequired
è impostata sutrue
oppure, nella console Google Cloud, è selezionata l'opzione Seleziona una prenotazione specifica. -
Alcuni tipi di macchine Compute Engine supportano le piattaforme CPU non coperte dalla certificazione SAP del tipo di macchina. Se la prenotazione target è per uno dei seguenti tipi di macchina, la prenotazione deve specificare il numero minimo di piattaforme CPU, come indicato:
n1-highmem-32
: Intel Broadwelln1-highmem-64
: Intel Broadwelln1-highmem-96
: Intel Skylakem1-megamem-96
: Intel Skylake
Le piattaforme CPU minime per tutti gli altri tipi di macchine certificati da SAP per l'utilizzo su Google Cloud sono conformi al requisito minimo di CPU SAP.
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 il VIP.
Terraform esegue il deployment delle risorse Google Cloud definite nel file di configurazione, dopodiché gli script assumono il controllo per configurare il sistema operativo e configurare il cluster ad alta disponibilità di Linux.
Per maggiore chiarezza, i commenti nel file di configurazione vengono 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" # ... }
-
L'opzione
Inizializza la tua directory di lavoro attuale e scarica il plug-in e i file dei moduli del provider Terraform per Google Cloud:
terraform init
Il comando
terraform init
prepara la directory di lavoro per 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 modifiche alla directory di lavoro, Terraform utilizza le copie memorizzate nella cache locale, anche selatest
è specificato nell'URLsource
.terraform init --upgrade
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 comandoterraform apply
crea automaticamente un nuovo piano e ti chiede di approvarlo.Applica il piano di esecuzione:
terraform apply
Quando ti viene chiesto di approvare le azioni, inserisci
yes
.Il comando
terraform apply
configura l'infrastruttura di Google Cloud, quindi passa il controllo a uno script che configura il cluster ad alta disponibilità 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 aver richiamato gli 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 l'intero processo richiede in genere meno di 30 minuti.
Verifica del deployment del sistema SAP NetWeaver ad alta disponibilità
La verifica di un cluster SAP NetWeaver ad alta disponibilità prevede diverse procedure:
- Controlla i log
- Controlla la configurazione della VM
Controlla i log
Nella console Google Cloud, apri Cloud Logging per monitorare l'avanzamento dell'installazione e verificare l'eventuale presenza di errori.
Filtra i log:
Esplora log
Nella pagina Esplora log, vai al riquadro Query.
Nel menu a discesa Risorsa, seleziona Globale e fai clic su Aggiungi.
Se non vedi l'opzione Globale, inserisci la seguente query nell'Editor query:
resource.type="global" "Deployment"
Fai clic su Esegui query.
Visualizzatore log legacy
- Nella pagina Visualizzatore log legacy, dal menu del selettore di base, seleziona Globale come risorsa di logging.
Analizza i log filtrati:
- Se viene visualizzato
"--- Finished"
, l'elaborazione del deployment è completata e puoi andare al passaggio successivo. Se viene visualizzato un errore di quota:
Nella pagina Quote di IAM e amministrazione, aumenta le quote che non soddisfano i requisiti di SAP NetWeaver elencati nella guida alla pianificazione di SAP NetWeaver.
Apri Cloud Shell.
Vai alla 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
.Esegui nuovamente il deployment.
- Se viene visualizzato
Controlla la configurazione della VM
Dopo che il deployment delle istanze VM è stato eseguito 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 o utilizzare il tuo metodo SSH preferito.
Passa all'utente root.
sudo su -
Al prompt dei comandi, inserisci
df -h
. Assicurati di visualizzare un output che includa le directory/usr/sap
, come/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/usrsapPR1ASCS00 1007G 0 956G 0% /usr/sap/PR1/ASCS00 ...
autofs
viene configurato automaticamente durante il deployment per montare le directory dei file condivise comuni al primo accesso a queste directory. Il montaggio delle directoryASCSASCS_INSTANCE_NUMBER
eERSERS_INSTANCE_NUMBER
è gestito dal software del cluster, configurato anche durante il deployment.Controlla lo stato del nuovo cluster inserendo il comando di stato:
crm status
Dovresti vedere risultati simili al seguente esempio, 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
Testa la configurazione del bilanciatore del carico ASCS ed ERS utilizzando l'utilità
socat
:Su ogni istanza VM, avvia temporaneamente un processo
socat
che restituisca 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)" &
Su ciascun nodo, utilizza
curl
e prova a raggiungere i seguenti indirizzi IP e nomi host. 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 ERS VIP, 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:
Risolvi gli errori.
Apri Cloud Shell.
Vai alla directory che contiene il file di configurazione di Terraform.
Elimina il deployment:
terraform destroy
Quando ti viene chiesto di approvare l'azione, inserisci
yes
.Esegui nuovamente il deployment.
Convalida l'installazione dell'agente di Google Cloud per SAP
Dopo aver eseguito il deployment di una VM e aver installato il sistema SAP, verifica che l'agente per SAP di Google Cloud funzioni correttamente.
Verifica che l'agente di Google Cloud per SAP sia in esecuzione
Per verificare che l'agente sia in esecuzione:
Stabilisci una connessione SSH con la tua istanza VM host.
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 stia ricevendo le metriche
Per verificare che le metriche dell'infrastruttura vengano raccolte dall'agente per SAP di Google Cloud e inviate correttamente all'agente host SAP, segui questi passaggi:
- Nel tuo sistema SAP, inserisci la transazione
ST06
. Nel riquadro Panoramica, controlla la disponibilità e il contenuto dei seguenti campi per la corretta configurazione end-to-end dell'infrastruttura di monitoraggio SAP e Google:
- Cloud Provider:
Google Cloud Platform
- Accesso a Monitoring avanzato:
TRUE
- Dettagli sul monitoraggio avanzato:
ACTIVE
- Cloud Provider:
Installare ASCS ed ERS
La seguente sezione illustra solo i requisiti e i suggerimenti 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 in tutto il cluster e semplificare l'installazione, prima di installare i componenti SAP NetWeaver ASCS ed ERS, definisci gli utenti, i gruppi e le autorizzazioni e imposta il server secondario in modalità standby.
Esci dalla modalità di manutenzione del cluster:
#
crm configure property maintenance-mode="false"Su entrambi i server come root, inserisci i comandi seguenti, 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 -RSostituisci 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 minuscolo per tutte le lettere.UID_SAPADM
: specifica l'ID utente per l'agente host SAP.SID
: specifica l'ID sistema (SID). Usa lettere maiuscole per tutte le lettere.
Ad esempio, quanto riportato di seguito mostra uno schema di numerazione GID e UID pratico:
Group sapinst 1001 Group sapsys 1002 Group dbhshm 1003 User en2adm 2001 User sapadm 2002 User dbhadm 2003
Installa il componente ASCS
Sul server secondario, inserisci il comando seguente per attivare la modalità standby del server secondario:
#
crm_standby -v on -N ${HOSTNAME};L'attivazione della modalità standby del server secondario consolida tutte le risorse del cluster sul server principale, semplificando l'installazione.
Verifica che il server secondario sia in modalità standby:
#
crm statusDovresti vedere un 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
Sul server principale in qualità di utente root, imposta 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, è necessaria la password dell'utente
root
. Se il criterio IT non consente all'amministratore SAP di accedere alla password root, puoi utilizzareSAPINST_REMOTE_ACCESS_USER
.Quando avvii SWPM, utilizza il parametro
SAPINST_USE_HOSTNAME
per specificare il nome dell'host virtuale 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 finale di conferma di SWPM, assicurati che il nome host virtuale sia corretto.
Al termine della configurazione, disattiva la modalità standby della VM secondaria:
#
crm_standby -v off -N ${HOSTNAME}; # On SECONDARY
Installare il componente ERS
Sul server principale come 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"Sul server principale, inserisci questo comando per attivare la modalità standby del server principale:
#
crm_standby -v on -N ${HOSTNAME};L'attivazione della modalità standby del server principale consolida tutte le risorse del cluster sul server secondario, semplificando l'installazione.
Verifica che il server principale sia in modalità standby:
#
crm statusSul server secondario in qualità di utente root, modifica la directory in una directory di installazione temporanea, ad esempio
/tmp
, per installare l'istanza ERS eseguendo il 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 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 finale di conferma di SWPM, assicurati che il nome host virtuale sia corretto.
Disattiva la VM principale dalla modalità standby per attivarle entrambe:
#
crm_standby -v off -N ${HOSTNAME};
Configurare i servizi SAP
Devi confermare che i servizi sono 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
Su entrambi i server, verifica che il file
/usr/sap/sapservices
contenga voci per i servizi ASCS e ERS. A questo scopo, puoi utilizzare l'integrazionesystemV
osystemd
.Puoi aggiungere le voci mancanti utilizzando il comando
sapstartsrv
con le opzionipf=PROFILE_OF_THE_SAP_INSTANCE
e-reg
.Per ulteriori informazioni su queste integrazioni, consulta le seguenti note SAP:
systemV
Di seguito è riportato un esempio delle voci per i servizi ASCS ed ERS nel file
/usr/sap/sapservices
quando utilizzi l'integrazionesystemV
:#
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_LCadmsystemd
Verifica che il file
/usr/sap/sapservices
contenga le voci per i servizi ASCS e ERS. Di seguito è riportato un esempio di come queste voci vengono visualizzate nel file/usr/sap/sapservices
quando utilizzi l'integrazionesystemd
: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
Disabilita l'integrazione di
systemd
sulle istanze ASCS e 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.serviceVerifica che l'integrazione di
systemd
sia disabilitata:#
systemctl list-unit-files | grep sapUn output simile all'esempio seguente indica che l'integrazione
systemd
è disabilitata. Tieni presente che alcuni servizi, comesaphostagent
esaptune
, sono abilitati, mentre altri sono disabilitati.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 Disabilitazione dei servizi
systemd
delle istanze ASCS e ERS SAP.
Arresta i servizi SAP
Sul server secondario, interrompi 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"Verifica che tutti i servizi siano arrestati su ogni server:
#
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()
Modifica i profili ASCS ed ERS
In entrambi i server, passa alla directory del profilo utilizzando uno dei seguenti comandi:
#
cd /usr/sap/SID/SYS/profile#
cd /sapmnt/SID/profileSe necessario, puoi trovare i nomi dei file dei tuoi profili ASCS ed 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
Abilita 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
Se utilizzi ENSA1, abilita 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 keepalive.
Se necessario, modifica i profili ASCS ed ERS per cambiare il comportamento di avvio del server di enqueue e del server di replica di enqueue.
ENSA1
Nella sezione "Avvia server di accoda SAP" del profilo ASCS, se vedi
Restart_Program_NN
, cambia "Restart
" in "Start
", come mostrato nell'esempio che segue.Start_Program_01 = local $(_EN) pf=$(_PF)
Nella sezione "Avvia server di replica accodato" del profilo ERS, se vedi
Restart_Program_NN
, modifica "Restart
" in "Start
", come mostrato nell'esempio che segue.Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
ENSA2
Nella sezione "Avvia server di accoda SAP" del profilo ASCS, se vedi
Restart_Program_NN
, cambia "Restart
" in "Start
", come mostrato nell'esempio che segue.Start_Program_01 = local $(_ENQ) pf=$(_PF)
Nella sezione "Start enqueue replicator" (Avvia replicatore in coda) del profilo ERS, se vedi
Restart_Program_NN
, modifica "Restart
" in "Start
", come mostrato nell'esempio che segue.Start_Program_00 = local $(_ENQR) pf=$(_PF) ...
Aggiungi l'utente sidadm
al gruppo di utenti haclient
Quando hai installato sap-suse-cluster-connector
, è stato creato un gruppo di utenti haclient
. Per consentire all'SID_LCutente Adm di lavorare
con il cluster, aggiungilo al gruppo di utenti haclient
.
Su entrambi i server, aggiungi l'SID_LCutente Adm al gruppo di utenti
haclient
:#
usermod -aG haclient SID_LCadm
Configura le risorse del cluster per ASCS ed ERS
Come root di entrambi i server, imposta il cluster in modalità di manutenzione:
#
crm configure property maintenance-mode="true"Verifica che il custer sia in modalità di manutenzione:
#
crm statusSe 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
Crea le risorse del cluster per i servizi ASCS ed ERS:
ENSA1
Crea la risorsa cluster per l'istanza ASCS. Il valore di
InstanceName
è il nome del profilo di istanza generato da SWPM quando hai installato ASCS.#
crm configure primitive ASCS_INSTANCE_RSC_NAME 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=10Creare la risorsa cluster per l'istanza ERS. Il valore di
InstanceName
è il nome del profilo di istanza generato da SWPM quando hai installato ERS. Il parametroIS_ERS=true
indica a Pacemaker di impostare il flagrunsersSID
su1
sul nodo in cui l'ERS è attiva.#
crm configure primitive ERS_INSTANCE_RSC_NAME 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
ENSA2
Crea la risorsa cluster per l'istanza ASCS. Il valore di
InstanceName
è il nome del profilo di istanza generato da SWPM quando hai installato ASCS.#
crm configure primitive ASCS_INSTANCE_RSC_NAME 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=60Creare la risorsa cluster per l'istanza ERS. Il valore di
InstanceName
è il nome del profilo di istanza generato da SWPM quando hai installato ERS.#
crm configure primitive ERS_INSTANCE_RSC_NAME 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
Configura i gruppi di risorse e i vincoli di località
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_RSC_GROUP_NAME ASCS_FILE_SYSTEM_RSC_NAME \ ASCS_HEALTH_CHECK_RSC_NAME ASCS_VIP_RSC_NAME \ ASCS_INSTANCE_RSC_NAME \ meta resource-stickiness=3000Sostituisci 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_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.ASCS_HEALTH_CHECK_RESOURCE
: specifica il nome della risorsa cluster che hai definito in precedenza per il controllo di integrità ASCS.ASCS_VIP_RESOURCE
: specifica il nome della risorsa cluster che hai definito in precedenza per il VIP ASCS.ASCS_INSTANCE_RESOURCE
: specifica il nome della risorsa cluster che hai definito in precedenza per l'istanza ASCS.
#
crm configure group ERS_RSC_GROUP_NAME ERS_FILE_SYSTEM_RSC_NAME \ ERS_HEALTH_CHECK_RSC_NAME ERS_VIP_RSC_NAME \ ERS_INSTANCE_RSC_NAMESostituisci 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_FILE_SYSTEM_RESOURCE
: specifica il nome della risorsa cluster che hai definito in precedenza per il file system ERS.ERS_HEALTH_CHECK_RESOURCE
: specifica il nome della risorsa cluster che hai definito in precedenza per il controllo di integrità ERS.ERS_VIP_RESOURCE
: specifica il nome della risorsa cluster che hai definito in precedenza per il VIP ERS.ERS_INSTANCE_RESOURCE
: specifica il nome della risorsa cluster che hai definito in precedenza per l'istanza ERS.
Crea i vincoli di colocation:
ENSA1
Crea un vincolo di colocation che impedisca l'esecuzione delle risorse ASCS sullo stesso server delle risorse ERS:
#
crm configure colocation PREVENT_ASCS_ERS_COLOC -5000: ERS_RSC_GROUP_NAME ASCS_RSC_GROUP_NAMEConfigura l'ASCS per il failover al server su cui è in esecuzione l'ERS, in base al flag
runsersSID
uguale a1
:#
crm configure location LOC_ASCS_SID_FAILOVER_TO_ERS ASCS_INSTANCE_RSC_NAME \ rule 2000: runs_ers_SID eq 1Configura ASCS in modo che inizi prima che ERS passi all'altro server dopo un failover:
#
crm configure order ORD_SAP_SID_FIRST_START_ASCS \ Optional: ASCS_INSTANCE_RSC_NAME:start \ ERS_INSTANCE_RSC_NAME:stop symmetrical=false
ENSA2
Crea un vincolo di colocation che impedisca l'esecuzione delle risorse ASCS sullo stesso server delle risorse ERS:
#
crm configure colocation PREVENT_ASCS_ERS_COLOC -5000: ERS_RSC_GROUP_NAME ASCS_RSC_GROUP_NAMEConfigura ASCS in modo che inizi prima che ERS passi all'altro server dopo un failover:
#
crm configure order ORD_SAP_SID_FIRST_START_ASCS \ Optional: ASCS_INSTANCE_RSC_NAME:start \ ERS_INSTANCE_RSC_NAME:stop symmetrical=false
Disattiva la modalità di manutenzione.
#
crm configure property maintenance-mode="false"Verifica la configurazione dei gruppi, dei vincoli di colocation e dell'ordine:
#
crm config showL'output dovrebbe includere righe simili a quelle dell'esempio seguente:
ENSA1
group ers-aha-rsc-group-name filesystem-rsc-nw-aha-ers health-check-rsc-nw-ha-ers vip-rsc-nw-aha-ers ers-aha-instance-rsc-name group scs-aha-rsc-group-name filesystem-rsc-nw-aha-scs health-check-rsc-nw-ha-scs vip-rsc-nw-aha-scs scs-aha-instance-rsc-name \ meta resource-stickiness=3000 colocation prevent-aha-scs-ers-coloc -5000: ers-aha-rsc-group-name scs-aha-rsc-group-name location fencing-rsc-nw-aha-vm-1-loc fencing-rsc-nw-aha-vm-1 -inf: nw-ha-vm-1 location fencing-rsc-nw-aha-vm-2-loc fencing-rsc-nw-aha-vm-2 -inf: nw-ha-vm-2 location loc-sap-AHA-failover-to-ers scs-aha-instance-rsc-name \ rule 2000: runs_ers_AHA eq 1
ENSA2
group ers-aha-rsc-group-name filesystem-rsc-nw-aha-ers health-check-rsc-nw-ha-ers vip-rsc-nw-aha-ers ers-aha-instance-rsc-name group scs-aha-rsc-group-name filesystem-rsc-nw-aha-scs health-check-rsc-nw-ha-scs vip-rsc-nw-aha-scs scs-aha-instance-rsc-name \ meta resource-stickiness=3000 location fencing-location-nw-aha-vm-1 fencing-rsc-nw-aha-vm-1 -inf: nw-ha-vm-1 location fencing-location-nw-aha-vm-2 fencing-rsc-nw-aha-vm-2 -inf: nw-ha-vm-2 order ord-sap-AHA-first-start-ascs Optional: scs-aha-instance-rsc-name:start ers-aha-instance-rsc-name:stop symmetrical=false colocation prevent-aha-scs-ers-coloc -5000: ers-aha-rsc-group-name scs-aha-rsc-group-name
Convalida e testa il cluster
Questa sezione mostra come eseguire i seguenti test:
- Verifica la presenza di errori di configurazione
- Conferma che le risorse ASCS ed ERS passino correttamente ai server durante i failover
- Conferma che le serrature vengono conservate
- Simula un evento di manutenzione di Compute Engine per assicurarti che la migrazione live non attivi un failover
Controlla la configurazione del cluster
Come root su entrambi i server, controlla su quali nodi sono in esecuzione le tue risorse:
#
crm statusNell'esempio seguente, le risorse ASCS sono in esecuzione sul server
nw-ha-vm-1
e le risorse ERS sono in esecuzione sul servernw-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
Passa all'utente
SID_LCadm
:#
su - SID_LCadmControlla la configurazione del cluster. Per
INSTANCE_NUMBER
, specifica il numero di istanza dell'istanza ASCS o ERS attiva sul server in cui inserisci il comando:>
sapcontrol -nr INSTANCE_NUMBER -function HAGetFailoverConfigHAActive
deve essereTRUE
, 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
In qualità di
SID_LCadm
, verifica la presenza di errori nella configurazione:>
sapcontrol -nr INSTANCE_NUMBER -function HACheckConfigDovresti 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
Sul server in cui è attivo l'ASCS, ad esempio
SID_LCadm
, simula un failover:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function HAFailoverToNode ""Come root, se segui il failover utilizzando
crm_mon
, dovresti vedere che l'ASCS viene spostato sull'altro server, l'ERS si arresta sul server in questione, quindi l'ERS passa al server su cui era in esecuzione l'ASCS.
Simulare un failover
Testa il cluster simulando un errore sull'host principale. Utilizza un sistema di test o esegui il test sul tuo sistema di produzione prima di rilasciare il sistema per l'uso.
Puoi simulare un errore in diversi modi, tra cui:
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, perché convalida sia il failover sia la recinzione.
Esegui il backup del sistema.
Come root sull'host con l'istanza SCS attiva, porta l'interfaccia di rete offline:
#
ip link set eth0 downRiconnettiti a uno degli host tramite SSH e passa all'utente root.
Inserisci
crm status
per confermare che l'host principale sia ora attivo sulla VM che conteneva l'host secondario. Il riavvio automatico è abilitato nel cluster, pertanto l'host interrotto verrà riavviato 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
Conferma che le voci di blocco vengono conservate
Per confermare che le voci di blocco vengano mantenute durante un failover, seleziona innanzitutto la scheda della tua versione del server di enqueue e segui la procedura per generare voci di blocco, simulare un failover e confermare che le voci di blocco vengano conservate dopo la nuova attivazione di ASCS.
ENSA1
Come
SID_LCadm
, sul server in cui ERS è attiva, genera voci di blocco utilizzando il programmaenqt
:>
enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 11 NUMBER_OF_LOCKSIn qualità di
SID_LCadm
, sul server in cui ASCS è attivo, verifica che siano registrate le voci di blocco:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_nowSe hai creato 10 blocchi, dovresti vedere un output simile al seguente esempio:
locks_now: 10
Come
SID_LCadm
, sul server in cui ERS è attiva, avvia la funzione di monitoraggioOpCode=20
del programmaenqt
:>
enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 20 1 1 9999Ad esempio:
>
enqt pf=/sapmnt/AHA/profile/AHA_ERS10_vh-ers-aha 20 1 1 9999Se ASCS è attivo, riavvia il server.
Sul server di monitoraggio, quando Pacemaker interrompe l'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
Quando il monitor
enqt
si arresta, esci dal monitor inserendoCtrl + c
.Facoltativamente, come root su entrambi i server, monitora il failover del cluster:
#
crm_monCome
SID_LCadm
, dopo aver confermato che le serrature sono state conservate, rilasciale:>
enqt pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAME 12 NUMBER_OF_LOCKSIn qualità di
SID_LCadm
, sul server in cui ASCS è attivo, verifica che le voci di blocco vengano rimosse:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_now
ENSA2
Come
SID_LCadm
, sul server in cui ASCS è attivo, genera voci di blocco utilizzando il programmaenq_adm
:>
enq_admin --set_locks=NUMBER_OF_LOCKS:X:DIAG::TAB:%u pf=/PATH_TO_PROFILE/SID_ASCSASCS_INSTANCE_NUMBER_ASCS_VIRTUAL_HOST_NAMEIn qualità di
SID_LCadm
, sul server in cui ASCS è attivo, verifica che siano registrate le voci di blocco:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_nowSe hai creato 10 blocchi, dovresti vedere un output simile al seguente esempio:
locks_now: 10
Se la ERS è attiva, verifica che le voci di blocco siano state replicate:
>
sapcontrol -nr ERS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_nowIl numero di blocchi restituiti deve essere uguale a quello dell'istanza ASCS.
Se ASCS è attivo, riavvia il server.
Facoltativamente, come root su entrambi i server, monitora il failover del cluster:
#
crm_monCome
SID_LCadm
, sul server in cui è stato riavviato ASCS, verifica che le voci di blocco siano state conservate:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_nowCome
SID_LCadm
, sul server su cui ERS è attiva, dopo aver confermato che i blocchi sono stati conservati, rilasciali:>
enq_admin --release_locks=NUMBER_OF_LOCKS:X:DIAG::TAB:%u pf=/PATH_TO_PROFILE/SID_ERSERS_INSTANCE_NUMBER_ERS_VIRTUAL_HOST_NAMEIn qualità di
SID_LCadm
, sul server in cui ASCS è attivo, verifica che le voci di blocco vengano rimosse:>
sapcontrol -nr ASCS_INSTANCE_NUMBER -function EnqGetStatistic | grep locks_nowDovresti vedere un output simile al seguente esempio:
locks_now: 0
Simula un evento di manutenzione di 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 live. Se utilizzi valori più brevi nella configurazione del cluster, il rischio che la migrazione live possa attivare un failover è maggiore.
Per testare la tolleranza del tuo cluster per la migrazione live:
Sul nodo primario, attiva un evento di manutenzione simulato utilizzando il seguente comando gcloud CLI:
#
gcloud compute instances simulate-maintenance-event PRIMARY_VM_NAMEConferma che il nodo primario non cambi:
#
crm status
Valutazione del carico di lavoro SAP NetWeaver
Per automatizzare i controlli di convalida continua dei carichi di lavoro ad alta disponibilità SAP NetWeaver in esecuzione su Google Cloud, puoi utilizzare Workload Manager.
Workload Manager consente di analizzare e valutare automaticamente i carichi di lavoro ad alta disponibilità di SAP NetWeaver in base alle best practice dei fornitori di SAP, Google Cloud e di sistemi operativi. Ciò consente di migliorare qualità, prestazioni e affidabilità dei carichi di lavoro.
Per informazioni sulle best practice supportate da Workload Manager per la valutazione dei carichi di lavoro ad alta disponibilità di SAP NetWeaver in esecuzione su Google Cloud, consulta Best practice di Workload Manager per SAP. Per informazioni sulla creazione e sull'esecuzione di una valutazione utilizzando Gestore carichi di lavoro, consulta Creare ed eseguire una valutazione.
Risoluzione dei problemi
Per risolvere i problemi relativi alle configurazioni ad alta disponibilità per SAP NetWeaver, consulta Risoluzione dei problemi relativi alle configurazioni ad alta disponibilità per SAP.
Raccogli informazioni diagnostiche per i cluster ad alta disponibilità 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 richieste e contatta l'assistenza clienti Google Cloud.
Per raccogliere informazioni diagnostiche, consulta Informazioni diagnostiche sui cluster ad alta disponibilità su SLES.Assistenza
In caso di problemi con l'infrastruttura o i servizi Google Cloud, contatta l'assistenza clienti. Puoi trovare le informazioni di contatto nella pagina Panoramica dell'assistenza nella console Google Cloud. Se l'assistenza clienti stabilisce che un problema risiede nei tuoi sistemi SAP, ti indirizzerà all'assistenza SAP.
Per problemi relativi ai prodotti SAP, registra la tua richiesta di assistenza con l'assistenza SAP.
SAP valuta il ticket di assistenza e, se sembra trattarsi di un problema dell'infrastruttura di Google Cloud, lo trasferisce al componente Google Cloud BC-OP-LNX-GOOGLE
o BC-OP-NT-GOOGLE
.
Requisiti per l'assistenza
Prima di poter ricevere assistenza per i sistemi SAP, nonché 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:
- Ricevere assistenza per SAP su Google Cloud
- SAP Note 2456406 - SAP on Google Cloud Platform: Support Prerequisites (È richiesto un account utente SAP)
Esecuzione di attività post-deployment
Prima di utilizzare il sistema SAP NetWeaver, ti consigliamo di eseguire il backup del nuovo sistema SAP NetWeaver ad alta disponibilità.
Per ulteriori informazioni, consulta la guida alle operazioni di SAP NetWeaver.
Passaggi successivi
Per ulteriori informazioni sull'alta disponibilità, su SAP NetWeaver e Google Cloud, consulta le seguenti risorse:
Guida alla pianificazione della disponibilità elevata per SAP NetWeaver su Google Cloud
Per ulteriori informazioni sull'amministrazione e sul monitoraggio delle VM, consulta la Guida operativa di SAP NetWeaver