Questa guida mostra come eseguire il deployment e configurare manualmente un cluster Red Hat Enterprise Linux (RHEL) ad alta disponibilità (HA) per un sistema SAP HANA scalabile su Google Cloud che utilizza un bilanciatore del carico di rete passthrough interno per gestire l'indirizzo IP virtuale (VIP).
Questa guida include i passaggi per:
- Configurazione di un bilanciatore del carico di rete passthrough interno per reindirizzare il traffico in caso di guasto
- Configurazione di un cluster Pacemaker su RHEL per gestire i sistemi SAP e altre risorse durante un failover
Questa guida include anche i passaggi per la configurazione della replica del sistema SAP HANA, ma consulta la documentazione di SAP per le istruzioni definitive.
Per eseguire il deployment di un sistema SAP HANA senza un cluster ad alta disponibilità Linux o un host di node di standby, consulta la guida al deployment di SAP HANA.
Questa guida è rivolta agli utenti SAP HANA esperti che hanno familiarità con le configurazioni ad alta disponibilità di Linux per SAP HANA.
Il sistema di cui questa guida descrive il deployment
Seguendo questa guida, eseguirai il deployment di un sistema SAP HANA HA multi-nodo configurato per la ridondanza completa della zona con un'istanza aggiuntiva che agisce come maggioritario, noto anche come nodo di pareggio, che garantisce il mantenimento del quorum del cluster in caso di perdita di una zona.
Il deployment finale è costituito dalle seguenti risorse:
- Un sito principale e uno secondario in cui ogni istanza ha una controparte zonale.
- Due siti configurati per la replica sincrona.
- Una singola istanza di calcolo che agisce come maker di maggioranza.
- Un gestore delle risorse di cluster ad alta disponibilità Pacemaker con un meccanismo di isolamento.
- Uno o più dischi permanenti per i volumi di dati e log di SAP HANA collegati a ogni istanza SAP HANA.
Questa guida ti consente di utilizzare i modelli Terraform forniti da Google Cloud per eseguire il deployment delle macchine virtuali (VM) Compute Engine e delle istanze SAP HANA, in modo da garantire che le VM e i sistemi SAP HANA di base soddisfino i requisiti di supportabilità di SAP e siano conformi alle best practice attuali.
In questa guida, SAP HANA Studio viene utilizzato per testare la replica del sistema SAP HANA. Se preferisci, puoi utilizzare SAP HANA Cockpit. Per informazioni sull'installazione di SAP HANA Studio, consulta:
- Installazione di SAP HANA Studio su una VM Windows Compute Engine
- Guida all'installazione e all'aggiornamento di SAP HANA Studio
Prerequisiti
Prima di creare il cluster SAP HANA ad alta disponibilità, assicurati che siano soddisfatti i seguenti prerequisiti:
- Hai letto la guida alla pianificazione di SAP HANA e la guida alla pianificazione dell'alta disponibilità di SAP HANA.
- Tu o la tua organizzazione avete un Google Cloud account e avete creato un progetto per il deployment di SAP HANA. Per informazioni sulla creazione diGoogle Cloud account e progetti, consulta Configurare l'Account Google nella Guida all'implementazione di SAP HANA.
- Se vuoi che il tuo carico di lavoro SAP venga eseguito in conformità con la residenza dei dati, il controllo dell'accesso, il personale di assistenza o i requisiti normativi, devi creare la cartella Assured Workloads richiesta. Per ulteriori informazioni, consulta Controlli di conformità e sovranità per SAP su Google Cloud.
I media di installazione di SAP HANA sono archiviati in un bucket Cloud Storage disponibile nel progetto e nella regione di deployment. Per informazioni su come caricare i media di installazione di SAP HANA in un bucket Cloud Storage, consulta Downloading SAP HANA (Download di SAP HANA) nella Guida al deployment di SAP HANA.
Se OS Login è abilitato nei metadati del progetto, devi disattivarlo temporaneamente 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 delle chiavi SSH basate su metadati vengono disabilitate e questo deployment non va a buon fine. Al termine del deployment, puoi riattivare l'accesso al sistema operativo.
Per ulteriori informazioni, vedi:
Se utilizzi il DNS interno della VPC, il valore della variabile
vmDnsSetting
nei metadati del progetto deve essereGlobalOnly
oZonalPreferred
per abilitare la risoluzione dei nomi dei nodi nelle varie zone. L'impostazione predefinita divmDnsSetting
èZonalOnly
. Per ulteriori informazioni, consulta:Disponi di una soluzione NFS, come la soluzione Filestore gestita, per condividere i volumi SAP HANA
/hana/shared
e/hanabackup
tra gli host nel sistema SAP HANA scalabile orizzontalmente. Per eseguire il deployment dei server NFS Filestore, consulta Creare istanze.- Tieni presente che i siti principali e secondari devono avere accesso ai propri percorsi NFS dedicati per evitare di sovrascrivere i dati. Per utilizzare una singola istanza Filestore, devi configurare il deployment in modo che utilizzi sottodirectory distinte come percorso di montaggio.
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 Compute Engine in genere richiedono l'accesso a internet per scaricare l'agente per SAP di Google Cloud. Se utilizzi una delle immagini Linux certificate da SAP disponibili su Google Cloud, l'istanza di calcolo 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 tag di rete VM supporta questo accesso, anche se le istanze di calcolo 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 saperne di più, consulta Creare una rete in modalità personalizzata.
-
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 Google Cloud servizio gestito software-defined distribuito che consente alle VM di inviare pacchetti in uscita su internet e di ricevere eventuali pacchetti di risposta in entrata stabiliti corrispondenti. In alternativa, puoi configurare una VM separata come gateway NAT.
Per creare un'istanza Cloud NAT per il tuo progetto, consulta Utilizzo di Cloud NAT.
Dopo aver configurato Cloud NAT per il progetto, le istanze VM possono accedere in sicurezza a internet senza un indirizzo IP pubblico.
aggiungi regole firewall
Per impostazione predefinita, una regola del firewall implicita blocca le connessioni in entrata dall'esterno della tua rete Virtual Private Cloud (VPC). Per consentire le connessioni in entrata, configura una regola firewall per la tua VM. Dopo aver stabilito una connessione in entrata con una VM, il traffico è consentito in entrambe le direzioni tramite la connessione.
Puoi anche creare una regola firewall per consentire l'accesso esterno a porte specifiche o per limitare l'accesso tra le VM sulla stessa rete. Se viene utilizzato il tipo di rete VPC default
, vengono applicate anche alcune regole predefinite aggiuntive, come la regola default-allow-internal
, che consente la connettività tra le VM sulla stessa rete su tutte le porte.
A seconda dei criteri IT applicabili al tuo ambiente, potresti dover isolare o limitare in altro modo la connettività all'host del database, cosa che puoi fare creando regole firewall.
A seconda dello scenario, puoi creare regole firewall per consentire l'accesso per:
- Le porte SAP predefinite elencate in TCP/IP di tutti i prodotti SAP.
- Connessioni dal tuo computer o dall'ambiente di rete aziendale all'istanza VM Compute Engine. Se hai dubbi su quale indirizzo IP utilizzare, rivolgiti all'amministratore di rete della tua azienda.
Per creare le regole firewall per il progetto, consulta la sezione Creare regole firewall.
Deployment delle VM e di SAP HANA
In questa guida viene utilizzato un file di configurazione Terraform fornito da Google Cloud per eseguire il deployment di quanto segue:
- Due sistemi SAP HANA corrispondenti, ciascuno con due o più istanze VM.
- Una singola istanza di creatore della maggioranza, nota anche come nodo di pareggio, che garantisce il mantenimento del quorum del cluster in caso di perdita di una zona.
I sistemi SAP HANA utilizzano la replica asincrona del sistema in modo che uno dei sistemi SAP HANA funzioni come sistema principale attivo e l'altro come sistema secondario in standby. Esegui il deployment di entrambi i sistemi SAP HANA all'interno della stessa regione, idealmente in zone diverse.
Se hai bisogno di un sistema scalabile orizzontalmente con host di riserva per il failover automatico dell'host SAP HANA, consulta la guida al deployment di Terraform: sistema SAP HANA scalabile orizzontalmente con failover automatico dell'host.
Definisci le opzioni di configurazione per il cluster SAP HANA ad alta disponibilità in un file di configurazione Terraform.
Le istruzioni riportate di seguito utilizzano Cloud Shell, ma sono applicabili in generale a un terminale locale con Terraform installato e configurato con il provider Google.
Verifica che le quote attuali per risorse come i dischi permanenti e le CPU siano sufficienti per i sistemi SAP HANA che stai per installare. Se le quote non sono sufficienti, il deployment non va a buon fine.
Per i requisiti delle quote SAP HANA, consulta Considerazioni su prezzi e quote per SAP HANA.
Apri Cloud Shell o il terminale locale.
Scarica il file di configurazione
manual_sap_hana_scaleout_ha.tf
nella tua directory di lavoro eseguendo il seguente comando in Cloud Shell o nel terminale:$
wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_ha/terraform/manual_sap_hana_scaleout_ha.tfApri il file
manual_sap_hana_scaleout_ha.tf
nell'editor di codice Cloud Shell o, se utilizzi il terminale, apri il file in un editor di testo di tua scelta.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.
Nel file
manual_sap_hana_scaleout_ha.tf
, aggiorna i valori degli argomenti sia persap_hana_primary
che persap_hana_secondary
sostituendo i contenuti all'interno delle virgolette doppie con i valori per la tua 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
manual_sap_hana_scaleout_ha.tf
include due istanze dell'argomentosource
: una attiva e una inclusa come commento. L'argomentosource
attivo per impostazione predefinita specificalatest
come versione del modulo. La seconda istanza dell'argomentosource
, 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'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 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 a quello 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 esempiomyproject/network1
.linux_image
Stringa Specifica il nome dell'immagine del sistema operativo Linux su cui vuoi eseguire il deployment del sistema SAP. Ad esempio, rhel-9-2-sap-ha
osles-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
. Può trattarsi del tuo progetto o di un Google Cloud progetto di immagini. Per un'immagine Compute Engine, specificarhel-sap-cloud
osuse-sap-cloud
. Per trovare il progetto immagine per il tuo sistema operativo, consulta Dettagli del sistema operativo.primary_instance_name
Stringa Specifica un nome per l'istanza VM del sistema SAP HANA principale. Il nome può contenere lettere minuscole, numeri o trattini. primary_zone
Stringa Specifica una zona in cui è dipiegato il sistema SAP HANA principale. Le zone primaria e secondaria devono trovarsi nella stessa regione. Ad esempio, us-east1-c
.secondary_instance_name
Stringa Specifica un nome per l'istanza VM del sistema SAP HANA secondario. Il nome può contenere lettere minuscole, numeri o trattini. secondary_zone
Stringa Specifica una zona in cui è dipiegato il sistema SAP HANA secondario. Le zone principali e secondarie devono trovarsi nella stessa regione. Ad esempio, us-east1-b
.sap_hana_deployment_bucket
Stringa Per installare automaticamente SAP HANA sulle VM di cui è stato eseguito il deployment, specifica il percorso del bucket Cloud Storage contenente i file di installazione di SAP HANA. Non includere gs://
nel percorso; includi solo il nome del bucket e i nomi di eventuali cartelle. Ad esempio,my-bucket-name/my-folder
.Il bucket Cloud Storage deve esistere nel progetto Google Cloud specificato per l'argomento
project_id
.sap_hana_scaleout_nodes
Numero intero Specifica il numero di host worker necessari nel sistema di scalabilità. Per eseguire il deployment di un sistema scalabile, devi avere almeno un host worker. Terraform crea gli host worker oltre all'istanza SAP HANA principale. Ad esempio, se specifichi
3
, nel sistema di scalabilità vengono dispieghe quattro istanze SAP HANA.sap_hana_sid
Stringa Per installare automaticamente SAP HANA sulle VM di cui è stato eseguito il deployment, specifica l'ID sistema SAP HANA. L'ID deve essere composto da tre caratteri alfanumerici e deve iniziare con una lettera. Tutte le lettere devono essere in maiuscolo. Ad esempio, ED1
.sap_hana_instance_number
Numero intero Facoltativo. Specifica il numero di istanza, da 0 a 99, del sistema SAP HANA. Il valore predefinito è 0
.sap_hana_sidadm_password
Stringa Per installare automaticamente SAP HANA sulle VM di cui è stato eseguito il deployment, specifica una password SIDadm
temporanea da utilizzare per gli script di installazione durante il deployment. La password deve contenere almeno 8 caratteri e includere almeno una lettera maiuscola, una lettera minuscola e un numero.Anziché specificare la password in testo normale, ti consigliamo di utilizzare un secret. Per saperne di più, consulta Gestione delle password.
sap_hana_sidadm_password_secret
Stringa Facoltativo. Se utilizzi Secret Manager per archiviare la password SIDadm
, specifica il nome del segreto corrispondente a questa password.In Secret Manager, assicurati che il valore della chiave, ovvero la password, contenga almeno 8 caratteri e includa almeno una lettera maiuscola, una lettera minuscola e un numero.
Per saperne di più, consulta Gestione delle password.
sap_hana_system_password
Stringa Per installare automaticamente SAP HANA sulle VM di cui è stato eseguito il deployment, specifica una password temporanea per il superutente del database da utilizzare dagli script di installazione durante il deployment. La password deve contenere almeno 8 caratteri e includere almeno una lettera maiuscola, una lettera minuscola e un numero. Anziché specificare la password in testo normale, ti consigliamo di utilizzare un secret. Per saperne di più, consulta Gestione delle password.
sap_hana_system_password_secret
Stringa Facoltativo. Se utilizzi Secret Manager per archiviare la password del superutente del database, specifica il nome del segreto corrispondente a questa password. In Secret Manager, assicurati che il valore della chiave, ovvero la password, contenga almeno 8 caratteri e includa almeno una lettera maiuscola, una lettera minuscola e un numero.
Per saperne di più, consulta Gestione delle password.
sap_hana_double_volume_size
Booleano Facoltativo. Per raddoppiare le dimensioni del volume HANA, specifica true
. Questo argomento è utile quando vuoi eseguire il deployment di più istanze SAP HANA o di un'istanza SAP HANA di ripristino di emergenza sulla stessa VM. Per impostazione predefinita, le dimensioni del volume vengono calcolate automaticamente in base alle dimensioni minime richieste per la VM, soddisfacendo al contempo i requisiti di certificazione e assistenza SAP. Il valore predefinito èfalse
.sap_hana_backup_size
Numero intero Facoltativo. Specifica le dimensioni del volume /hanabackup
in GB. Se non specifichi questo argomento o lo imposti su0
, lo script di installazione esegue laProvisioning dell'istanza Compute Engine con un volume di backup HANA pari al doppio della memoria totale.sap_hana_sidadm_uid
Numero intero Facoltativo. Specifica un valore per sostituire il valore predefinito dell'SID_LCID utente amministratore. Il valore predefinito è 900
. Puoi impostare un valore diverso per garantire la coerenza all'interno del tuo panorama SAP.sap_hana_sapsys_gid
Numero intero Facoltativo. Sostituisce l'ID gruppo predefinito per sapsys
. Il valore predefinito è79
.sap_vip
Stringa Specifica l'indirizzo IP che utilizzerai per il VIP. L' indirizzo IP deve rientrare nell'intervallo di indirizzi IP assegnati alla subnet. Il file di configurazione Terraform riserva questo indirizzo IP per te. primary_instance_group_name
Stringa Facoltativo. Specifica il nome del gruppo di istanze non gestite per il nodo principale. Il nome predefinito è ig-PRIMARY_INSTANCE_NAME
.secondary_instance_group_name
Stringa Facoltativo. Specifica il nome del gruppo di istanze non gestite per il nodo secondario. Il nome predefinito è ig-SECONDARY_INSTANCE_NAME
.loadbalancer_name
Stringa Facoltativo. Specifica il nome del bilanciatore del carico di rete passthrough interno. Il nome predefinito è lb-SAP_HANA_SID-ilb
.network_tags
Stringa Facoltativo. Specifica uno o più tag di rete separati da virgola da associare alle istanze VM per finalità di firewall o routing. Se specifichi
public_ip = false
e non specifichi un tag di rete, assicurati di fornire un altro mezzo di accesso a internet.nic_type
Stringa Facoltativo. Specifica l'interfaccia di rete da utilizzare con l'istanza VM. Puoi specificare il valore GVNIC
oVIRTIO_NET
. Per utilizzare una scheda di rete virtuale Google (gVNIC), devi specificare un'immagine del sistema operativo che supporti gVNIC come valore per l'argomentolinux_image
. Per l'elenco delle immagini del sistema operativo, consulta Dettagli del sistema operativo.Se non specifichi un valore per questo argomento, l'interfaccia di rete viene selezionata automaticamente in base al tipo di macchina specificato per l'argomento
Questo argomento è disponibile nella versione del modulomachine_type
.sap_hana
202302060649
o successive.disk_type
Stringa Facoltativo. Specifica il tipo predefinito di volume del disco permanente o Hyperdisk da eseguire per i dati SAP e i volumi dei log nel deployment. Per informazioni sul deployment predefinito del disco eseguito dalle configurazioni Terraform fornite da Google Cloud, consulta Deployment del disco da parte di Terraform. Di seguito sono riportati i valori validi per questo argomento:
pd-ssd
,pd-balanced
,hyperdisk-extreme
,hyperdisk-balanced
, epd-extreme
. Nei deployment di SAP HANA con scalabilità verticale, viene disegnato anche un disco permanente bilanciato separato per la directory/hana/shared
.Puoi eseguire l'override di questo tipo di disco predefinito, della dimensione del disco predefinita e delle IOPS predefinite utilizzando alcuni argomenti avanzati. Per ulteriori informazioni, vai alla tua directory di lavoro, quindi esegui il comando
terraform init
e consulta il file/.terraform/modules/manual_sap_hana_scaleout_ha/variables.tf
. Prima di utilizzare questi argomenti in produzione, assicurati di testarli in un ambiente non di produzione.use_single_shared_data_log_disk
Booleano Facoltativo. Il valore predefinito è false
, che indica a Terraform di eseguire il deployment di un disco persistente o Hyperdisk separato per ciascuno dei seguenti volumi SAP:/hana/data
,/hana/log
,/hana/shared
e/usr/sap
. Per montare questi volumi SAP sullo stesso disco permanente o Hyperdisk, specificatrue
.include_backup_disk
Booleano Facoltativo. Questo argomento è applicabile ai deployment di SAP HANA scalabili verticalmente. Il valore predefinito è true
, che indica a Terraform di eseguire il deployment di un disco separato per ospitare la directory/hanabackup
.Il tipo di disco è determinato dall'argomento
backup_disk_type
. Le dimensioni di questo disco sono determinate dall'argomentosap_hana_backup_size
.Se imposti il valore per
include_backup_disk
sufalse
, non viene disegnato alcun disco per la directory/hanabackup
.public_ip
Booleano Facoltativo. Determina se un indirizzo IP pubblico viene aggiunto o meno all'istanza VM. Il valore predefinito è true
.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 saperne di più, consulta Gestione di identità e accessi per i programmi SAP su Google Cloud.
sap_deployment_debug
Booleano Facoltativo. Solo quando l'assistenza clienti di 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 sutrue
o, nella console Google Cloud, è selezionata l'opzione Seleziona prenotazione specifica. -
Alcuni tipi di macchine Compute Engine supportano piattaforme CPU non coperte dalla certificazione SAP del tipo di macchina. Se la prenotazione di destinazione riguarda uno dei seguenti tipi di macchine, deve specificare le piattaforme CPU minime 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 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 sutrue
o, nella console Google Cloud, è selezionata l'opzione Seleziona prenotazione specifica. -
Alcuni tipi di macchine Compute Engine supportano piattaforme CPU non coperte dalla certificazione SAP del tipo di macchina. Se la prenotazione di destinazione riguarda uno dei seguenti tipi di macchine, deve specificare le piattaforme CPU minime 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 certificate da SAP per l'utilizzo su Google Cloud sono conformi al requisito minimo della CPU di SAP.
primary_static_ip
Stringa Facoltativo. Specifica un indirizzo IP statico valido per l'istanza VM principale nel tuo cluster ad alta disponibilità. Se non ne specifichi uno, verrà generato automaticamente un indirizzo IP per l'istanza VM. Ad esempio, 128.10.10.10
.Questo argomento è disponibile nella versione
sap_hana_ha
del modulo202306120959
o successive.secondary_static_ip
Stringa Facoltativo. Specifica un indirizzo IP statico valido per l'istanza VM secondaria nel cluster ad alta disponibilità. Se non ne specifichi uno, verrà generato automaticamente un indirizzo IP per l'istanza VM. Ad esempio, 128.11.11.11
.Questo argomento è disponibile nella versione
sap_hana_ha
del modulo202306120959
o successive.primary_worker_static_ips
Elenco(Stringa) Facoltativo. Specifica un array di indirizzi IP statici validi per le istanze worker nell'istanza principale del sistema SAP HANA HA scalabile. Se non specifichi un valore per questo argomento, viene generato automaticamente un indirizzo IP per ogni istanza VM worker. Ad esempio, [ "1.0.0.1", "2.3.3.4" ]
.Gli indirizzi IP statici vengono assegnati nell'ordine di creazione delle istanze. Per esempio, se scegli di eseguire il deployment di 3 istanze di worker, ma specifichi solo 2 indirizzi IP per l'argomento
primary_worker_static_ips
, questi indirizzi IP vengono assegnati alle prime due istanze VM di cui viene eseguito il deployment dalla configurazione Terraform. Per la terza istanza VM worker, l'indirizzo IP viene generato automaticamente.Questo argomento è disponibile nella versione
sap_hana_ha
del modulo202307270727
o successive.secondary_worker_static_ips
Elenco(Stringa) Facoltativo. Specifica un array di indirizzi IP statici validi per le istanze worker nell'istanza secondaria del sistema HA scalabile SAP HANA. Se non specifichi un valore per questo argomento, viene generato automaticamente un indirizzo IP per ogni istanza VM worker. Ad esempio, [ "1.0.0.2", "2.3.3.5" ]
.Gli indirizzi IP statici vengono assegnati nell'ordine di creazione delle istanze. Per esempio, se scegli di eseguire il deployment di 3 istanze di worker, ma specifichi solo 2 indirizzi IP per l'argomento
secondary_worker_static_ips
, questi indirizzi IP vengono assegnati alle prime due istanze VM di cui viene eseguito il deployment dalla configurazione Terraform. Per la terza istanza VM worker, l'indirizzo IP viene generato automaticamente.Questo argomento è disponibile nella versione
sap_hana_ha
del modulo202307270727
o successive.Gli esempi riportati di seguito mostrano file di configurazione completi che definiscono un cluster ad alta disponibilità per un sistema SAP HANA scalabile orizzontalmente. Il cluster utilizza un bilanciatore del carico di rete passthrough interno per gestire l'IP virtuale.
Terraform esegue il deployment delle Google Cloud risorse definite nel file di configurazione, dopodiché gli script prendono il controllo per configurare il sistema operativo e installare SAP HANA.
-
L'opzione
Nello stesso file
manual_sap_hana_scaleout_ha.tf
, aggiorna i valori degli argomenti permajority_maker
. Gli argomenti sono descritti nella tabella seguente.Argomento Tipo di dati Descrizione project
Stringa Specifica l'ID del progetto Google Cloud in cui esegui il deployment di questo sistema. majority_maker_instance_name
Stringa Specifica un nome per l'istanza VM Compute Engine che funge da originatore della maggioranza.
Questo argomento è disponibile nella versione
sap_hana_ha
del modulo202307270727
o successive.majority_maker_instance_type
Stringa Specifica il tipo di macchina virtuale (VM) Compute Engine da utilizzare per l'istanza di creator di maggioranza. Ad esempio, n1-highmem-32
.Se vuoi utilizzare un tipo di VM personalizzata, specifica un tipo di VM predefinito con un numero di vCPU più vicino a quello di cui hai bisogno, pur essendo più grande. Al termine del deployment, modifica il numero di vCPU e la quantità di memoria.
Questo argomento è disponibile nella versione
sap_hana_ha
del modulo202307270727
o successive.majority_maker_zone
Stringa Specifica una zona in cui è dipiegato l'istanza VM del creatore di maggioranza. Questa zona deve trovarsi nella stessa regione delle zone primaria e secondaria. Ad esempio, us-east1-d
.Google Cloud consiglia di eseguire il deployment dell'istanza VM del creatore della maggioranza in una zona diversa da quella dei sistemi SAP HANA principali e secondari.
Questo argomento è disponibile nella versione
sap_hana_ha
del modulo202307270727
o successive.majority_maker_linux_image
Stringa Utilizzando gli stessi valori del passaggio precedente, specifica il percorso completo dell'immagine come "linux_image_project/linux_image"
. Ad esempio"rhel-sap-cloud/rhel-9-0-sap-v20230708"
.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 esempiomyproject/network1
.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 saperne di più, consulta Gestione di identità e accessi per i programmi SAP su Google Cloud.
metadata_startup_script
Stringa Non modificare questo argomento. Per impostazione predefinita, il creatore della maggioranza scarica lo script di avvio più recente per preparare l'istanza al clustering di Pacemaker. Per chiarezza, i commenti nella configurazione di esempio riportata di seguito sono omessi.
module "sap_hana_primary" {
source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/sap_hana_module.zip"
project_id = "example-project-123456"
zone = "us-west1-a"
machine_type = "n1-highmem-32"
subnetwork = "default"
linux_image = "rhel-9-0-sap-v20230711"
linux_image_project = "rhel-sap-cloud"
instance_name = "hana-ha-1"
sap_hana_sid = "HA1"
sap_hana_deployment_bucket = "my-hana-bucket"
sap_hana_sidadm_password_secret = "hana_sid_adm_pwd"
sap_hana_system_password_secret = "hana_sys_pwd"
sap_hana_scaleout_nodes = 1
sap_hana_shared_nfs = "10.10.10.1:/hana_scaleout/hana_a/shared"
sap_hana_backup_nfs = "10.10.10.1:/hana_scaleout/hana_a/backup"
}
module "sap_hana_secondary" {
source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/sap_hana_module.zip"
project_id = "example-project-123456"
zone = "us-west1-b"
machine_type = "n1-highmem-32"
subnetwork = "default"
linux_image = "rhel-9-0-sap-v20230711"
linux_image_project = "rhel-sap-cloud"
instance_name = "hana-ha-2"
sap_hana_sid = "HA1"
sap_hana_deployment_bucket = "my-hana-bucket"
sap_hana_sidadm_password_secret = "hana_sid_adm_pwd"
sap_hana_system_password_secret = "hana_sys_pwd"
sap_hana_scaleout_nodes = 1
sap_hana_shared_nfs = "10.10.10.2:/hana_scaleout/hana_b/shared"
sap_hana_backup_nfs = "10.10.10.2:/hana_scaleout/hana_b/backup"
}
resource "google_compute_instance" "majority_maker" {
project = "example-project-123456"
# majority_maker_instance_name
name = "majority-maker"
# majority_maker_instance_type
machine_type = "n1-standard-8"
# majority_maker_zone
zone = "us-west1-c"
boot_disk {
initialize_params {
# majority_maker_linux_image
image = "rhel-sap-cloud/rhel-9-0-sap-v20230711"
}
}
network_interface {
# network or subnetwork
network = "default"
}
service_account {
# service_account (Optional)
# email = svc-acct-name@project-id.iam.gserviceaccount.com.
scopes = ["cloud-platform"]
}
# Do not edit
metadata_startup_script = "curl -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_majoritymaker/startup.sh | bash -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_majoritymaker/startup.sh"
}
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 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' Google Cloud infrastruttura e poi passa il controllo a uno script che configura il cluster ad alta disponibilità e installa SAP HANA in base agli argomenti definiti nel file di configurazione Terraform.Mentre Terraform ha il controllo, i messaggi di stato vengono scritti in Cloud Shell. Dopo 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.
Verifica del deployment del sistema HANA HA
Controlla i log
Nella console Google Cloud, apri Cloud Logging per monitorare l'avanzamento dell'installazione e verificare la presenza di errori.
Filtra i log:
Esplora log
Nella pagina Esplora log, vai al riquadro Query.
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"
Fai clic su Esegui query.
Visualizzatore log legacy
- Nella pagina Visualizzatore log legacy, seleziona Globale come risorsa di registrazione nel menu del selettore di base.
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:
Nella pagina IAM e amministrazione Quote, aumenta le quote che non soddisfano i requisiti di SAP HANA elencati nella guida alla pianificazione di SAP HANA.
Apri Cloud Shell.
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
.Esegui di nuovo il deployment.
- Se viene visualizzato
Controlla la configurazione della VM e dell'installazione di SAP HANA
Dopo aver eseguito il deployment del sistema SAP HANA senza errori, connettiti a ogni VM utilizzando SSH. Nella pagina Istanze VM di Compute Engine, puoi fare clic sul pulsante SSH per ogni istanza VM oppure utilizzare il metodo SSH che preferisci.
Passa all'utente root.
sudo su -
Al prompt dei comandi, inserisci
df -h
. Assicurati di visualizzare un output che includa le directory/hana
, ad esempio/hana/data
.[root@example-ha-vm1 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 126G 0 126G 0% /dev tmpfs 126G 54M 126G 1% /dev/shm tmpfs 126G 25M 126G 1% /run tmpfs 126G 0 126G 0% /sys/fs/cgroup /dev/sda2 30G 5.4G 25G 18% / /dev/sda1 200M 6.9M 193M 4% /boot/efi /dev/mapper/vg_hana-shared 251G 52G 200G 21% /hana/shared /dev/mapper/vg_hana-sap 32G 477M 32G 2% /usr/sap /dev/mapper/vg_hana-data 426G 9.8G 417G 3% /hana/data /dev/mapper/vg_hana-log 125G 7.0G 118G 6% /hana/log /dev/mapper/vg_hanabackup-backup 512G 9.3G 503G 2% /hanabackup tmpfs 26G 0 26G 0% /run/user/900 tmpfs 26G 0 26G 0% /run/user/899 tmpfs 26G 0 26G 0% /run/user/1003
Ripulisci e riprova a eseguire il deployment
Se uno dei passaggi di verifica del deployment nelle sezioni precedenti indica che l'installazione non è andata a buon fine, devi annullare il deployment e riprovare completando i seguenti passaggi:
Risolvi eventuali errori per assicurarti che il deployment non fallisca di nuovo per lo stesso motivo. Per informazioni su come controllare i log o risolvere gli errori relativi alla quota, consulta Controllare i log.
Apri Cloud Shell o, se hai installato Google Cloud CLI sulla tua workstation locale, apri un terminale.
Vai alla directory contenente il file di configurazione Terraform utilizzato per questo deployment.
Elimina tutte le risorse che fanno parte del deployment eseguendo il seguente comando:
terraform destroy
Quando ti viene chiesto di approvare l'azione, inserisci
yes
.Riprova il deployment come indicato in precedenza in questa guida.
Convalida l'installazione dell'agente per SAP di Google Cloud
Dopo aver eseguito il deployment di tutte le istanze e installato il sistema SAP, verifica che Agent for SAP diGoogle Cloudfunzioni correttamente.
Verifica che l'agente per SAP di Google Cloudsia in esecuzione
Per verificare che l'agente sia in esecuzione:
Stabilisci una connessione SSH con la tua istanza Compute Engine.
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 diGoogle Cloudper SAP e inviate correttamente all'agente host SAP, segui questi passaggi:
- Nel sistema SAP, inserisci la transazione
ST06
. Nel riquadro di panoramica, controlla la disponibilità e i contenuti dei seguenti campi per la configurazione end-to-end corretta dell'infrastruttura di monitoraggio di SAP e Google:
- Fornitore cloud:
Google Cloud Platform
- Accesso al monitoraggio avanzato:
TRUE
- Dettagli sul monitoraggio migliorati:
ACTIVE
- Fornitore cloud:
Configurare il monitoraggio per SAP HANA
Se vuoi, puoi monitorare le tue istanze SAP HANA utilizzando Agente per SAP diGoogle Cloud. Dalla versione 2.0, puoi configurare l'agente per raccogliere le metriche di monitoraggio di SAP HANA e inviarle a Cloud Monitoring. Cloud Monitoring ti consente di creare dashboard per visualizzare queste metriche, configurare avvisi in base alle soglie delle metriche e altro ancora.
Per ulteriori informazioni sulla raccolta delle metriche di monitoraggio di SAP HANA utilizzando Agente per SAP diGoogle Cloud, consulta la raccolta delle metriche di monitoraggio di SAP HANA.
(Facoltativo) Crea un elenco di istanze per l'automazione basata su script
Per automatizzare parzialmente alcune delle attività ripetitive durante la configurazione del sistema SAP HANA e del cluster Pacemaker, puoi utilizzare gli script bash. In questa guida, questi script bash vengono utilizzati per velocizzare la configurazione del sistema SAP HANA e del cluster Pacemaker. Questi script richiedono un elenco di tutte le istanze VM di cui è stato eseguito il deployment e delle relative zone.
Per attivare questa automazione, crea un file denominato nodes.txt
e includi i dettagli di tutte le istanze VM di cui è stato eseguito il deployment nel seguente formato: nome della zona, spazio vuoto e nome dell'istanza VM. In questa guida viene utilizzato il seguente file di esempio:
# cat nodes.txt us-west1-a hana-ha-vm-1 us-west1-a hana-ha-vm-1w1 us-west1-a hana-ha-vm-1w2 us-west1-b hana-majoritymaker us-west1-c hana-ha-vm-2 us-west1-c hana-ha-vm-2w1 us-west1-c hana-ha-vm-2w2
Configurare l'accesso SSH senza password
Per configurare il cluster Pacemaker e sincronizzare le chiavi del secure store SAP HANA (SSFS), è necessario l'accesso SSH senza password tra tutti i nodi, inclusa l'istanza di maggioranza. Per l'accesso SSH senza password, devi aggiungere le chiavi pubbliche SSH ai metadati delle istanze di tutte le istanze di cui è stato eseguito il deployment.
Il formato dei metadati è USERNAME: PUBLIC-KEY-VALUE
.
Per saperne di più sull'aggiunta di chiavi SSH alle VM, consulta Aggiungere chiavi SSH alle VM che utilizzano chiavi SSH basate su metadati.
Procedura manuale
Per ogni istanza nei sistemi principali e secondari, nonché per l'istanza del creatore di maggioranza, raccoglie la chiave pubblica per l'utente
root
.gcloud compute ssh --quiet --zone ZONE_ID INSTANCE_NAME -- sudo cat /root/.ssh/id_rsa.pub
Anteponi la chiave alla stringa
root:
e scrivi la chiave come nuova riga nel file denominatopublic-ssh-keys.txt
, ad esempio:root:ssh-rsa AAAAB3NzaC1JfuYnOI1vutCs= root@INSTANCE_NAME
Dopo aver raccolto tutte le chiavi pubbliche SSH, caricale come metadati in tutte le istanze:
gcloud compute instances add-metadata --metadata-from-file ssh-keys=public-ssh-keys.txt --zone ZONE_ID INSTANCE_NAME
Passaggi automatici
In alternativa, per automatizzare la procedura di configurazione dell'accesso SSH senza password per tutte le istanze elencate in nodes.txt
, svolgi i seguenti passaggi dalla console Google Cloud:
Crea un elenco di chiavi pubbliche di tutte le istanze di cui è stato eseguito il deployment:
while read -u10 ZONE HOST ; do echo "Collecting public-key from $HOST"; { echo 'root:'; gcloud compute ssh --quiet --zone $ZONE $HOST --tunnel-through-iap -- sudo cat /root/.ssh/id_rsa.pub; } | tr -ds '\n' " " >> public-ssh-keys.txt; done 10< nodes.txt
Assegna le chiavi pubbliche SSH come voci di metadati a tutte le istanze:
while read -u10 ZONE HOST ; do echo "Adding public keys to $HOST"; gcloud compute instances add-metadata --metadata-from-file ssh-keys=public-ssh-keys.txt --zone $ZONE $HOST; done 10< nodes.txt
Disattivare l'avvio automatico di SAP HANA
Procedura manuale
Per ogni istanza SAP HANA nel cluster, assicurati che l'avvio automatico di SAP HANA sia disattivato. Per i failover, Pacemaker gestisce l'avvio e l'arresto delle istanze SAP HANA in un cluster.
Su ogni host, come SID_LCadm, interrompi SAP HANA:
>
HDB stopSu ogni host, apri il profilo SAP HANA utilizzando un editor, ad esempio vi:
vi /usr/sap/SID/SYS/profile/SID_HDBINST_NUM_HOST_NAME
Imposta la proprietà
Autostart
su0
:Autostart=0
Salva il profilo.
Su ogni host, avvia SAP HANA come SID_LCadm:
>
HDB start
Passaggi automatici
In alternativa, per disattivare l'avvio automatico di SAP HANA per tutte le istanze elencate in
nodes.txt
,
esegui il seguente script dalla console Google Cloud:
while read -u10 ZONE HOST ; do gcloud compute ssh --verbosity=none --zone $ZONE $HOST -- "echo Setting Autostart=0 on \$HOSTNAME; sudo sed -i 's/Autostart=1/Autostart=0/g' /usr/sap/SID/SYS/profile/SID_HDBINST_NUM_\$HOSTNAME"; done 10< nodes.txt
Attivare il riavvio rapido di SAP HANA
Google Cloud Consiglia vivamente di attivare il riavvio rapido di SAP HANA per ogni istanza di SAP HANA, in particolare per le istanze più grandi. Il riavvio rapido di SAP HANA riduce il tempo di riavvio nel caso in cui SAP HANA si arresti, ma il sistema operativo rimanga in esecuzione.
Come configurato dagli script di automazione forniti,
le impostazioni del sistema operativo e del kernel supportano già il riavvio rapido di SAP HANA. Google Cloud
Devi definire il file system tmpfs
e configurare SAP HANA.
Per definire il file system tmpfs
e configurare SAP HANA, puoi seguire i passaggi manuali o utilizzare lo script di automazione fornito daGoogle Cloud per attivare il riavvio rapido di SAP HANA. Per ulteriori informazioni, consulta:
- Passaggi manuali: attivare il riavvio rapido di SAP HANA
- Passaggi automatici: attiva Fast Restart di SAP HANA
Per istruzioni autorevoli complete su SAP HANA Fast Restart, consulta la documentazione dell'opzione SAP HANA Fast Restart.
Procedura manuale
Configura il file system tmpfs
Dopo aver eseguito il deployment delle VM host e dei sistemi SAP HANA di base,
devi creare e montare le directory per i nodi NUMA nel file system tmpfs
.
Mostra la topologia NUMA della VM
Prima di poter mappare il file system tmpfs
richiesto, devi sapere quanti nodi NUMA sono presenti nella tua VM. Per visualizzare i nodi NUMA disponibili su una VM Compute Engine, inserisci il seguente comando:
lscpu | grep NUMA
Ad esempio, un tipo di VM m2-ultramem-208
ha quattro nodi NUMA,
numerati da 0 a 3, come mostrato nell'esempio seguente:
NUMA node(s): 4 NUMA node0 CPU(s): 0-25,104-129 NUMA node1 CPU(s): 26-51,130-155 NUMA node2 CPU(s): 52-77,156-181 NUMA node3 CPU(s): 78-103,182-207
Crea le directory dei nodi NUMA
Crea una directory per ogni nodo NUMA nella VM e imposta le autorizzazioni.
Ad esempio, per quattro nodi NUMA numerati da 0 a 3:
mkdir -pv /hana/tmpfs{0..3}/SID chown -R SID_LCadm:sapsys /hana/tmpfs*/SID chmod 777 -R /hana/tmpfs*/SID
Monta le directory dei nodi NUMA su tmpfs
Monta le directory del file system tmpfs
e specifica
una preferenza per il nodo NUMA per ciascuna con mpol=prefer
:
SID specifica il SID con lettere maiuscole.
mount tmpfsSID0 -t tmpfs -o mpol=prefer:0 /hana/tmpfs0/SID mount tmpfsSID1 -t tmpfs -o mpol=prefer:1 /hana/tmpfs1/SID mount tmpfsSID2 -t tmpfs -o mpol=prefer:2 /hana/tmpfs2/SID mount tmpfsSID3 -t tmpfs -o mpol=prefer:3 /hana/tmpfs3/SID
Aggiorna /etc/fstab
Per assicurarti che i punti di montaggio siano disponibili dopo il riavvio del sistema operativo, aggiungi voci alla tabella del file system, /etc/fstab
:
tmpfsSID0 /hana/tmpfs0/SID tmpfs rw,relatime,mpol=prefer:0 tmpfsSID1 /hana/tmpfs1/SID tmpfs rw,relatime,mpol=prefer:1 tmpfsSID1 /hana/tmpfs2/SID tmpfs rw,relatime,mpol=prefer:2 tmpfsSID1 /hana/tmpfs3/SID tmpfs rw,relatime,mpol=prefer:3
(Facoltativo) Imposta limiti per l'utilizzo della memoria
Il file system tmpfs
può aumentare e diminuire dinamicamente.
Per limitare la memoria utilizzata dal file system tmpfs
, puoi impostare un limite di dimensioni per un volume del nodo NUMA con l'opzione size
.
Ad esempio:
mount tmpfsSID0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID
Puoi anche limitare l'utilizzo complessivo della memoria tmpfs
per tutti i nodi NUMA per una determinata istanza SAP HANA e un determinato nodo del server impostando il parametro persistent_memory_global_allocation_limit
nella sezione [memorymanager]
del file global.ini
.
Configurazione di SAP HANA per il riavvio rapido
Per configurare SAP HANA per il riavvio rapido, aggiorna il file global.ini
e specifica le tabelle da archiviare nella memoria persistente.
Aggiorna la sezione [persistence]
nel file global.ini
Configura la sezione [persistence]
nel file global.ini
di SAP HANA
per fare riferimento alle località tmpfs
. Separa ogni località tmpfs
con un punto e virgola:
[persistence] basepath_datavolumes = /hana/data basepath_logvolumes = /hana/log basepath_persistent_memory_volumes = /hana/tmpfs0/SID;/hana/tmpfs1/SID;/hana/tmpfs2/SID;/hana/tmpfs3/SID
L'esempio precedente specifica quattro volumi di memoria per quattro nodi NUMA,
che corrispondono a m2-ultramem-208
. Se esegui la tua esecuzione su m2-ultramem-416
, devi configurare otto volumi di memoria (0-7).
Riavvia SAP HANA dopo aver modificato il file global.ini
.
Ora SAP HANA può utilizzare la posizione tmpfs
come spazio di memoria permanente.
Specifica le tabelle da archiviare nella memoria persistente
Specifica tabelle o partizioni di colonne specifiche da archiviare nella memoria persistente.
Ad esempio, per attivare la memoria persistente per una tabella esistente, esegui la query SQL:
ALTER TABLE exampletable persistent memory ON immediate CASCADE
Per modificare il valore predefinito per le nuove tabelle, aggiungi il parametro
table_default
nel file indexserver.ini
. Ad esempio:
[persistent_memory] table_default = ON
Per ulteriori informazioni su come controllare le colonne, le tabelle e le visualizzazioni di monitoraggio che forniscono informazioni dettagliate, consulta Memoria persistente SAP HANA.
Passaggi automatici
Lo script di automazione fornito Google Cloud per attivare il riavvio rapido di SAP HANA apporta modifiche alle directory /hana/tmpfs*
, al file /etc/fstab
e alla configurazione di SAP HANA. Quando esegui lo script, potresti dover eseguire passaggi aggiuntivi a seconda che si tratti del deployment iniziale del sistema SAP HANA o se stai ridimensionando la macchina a una dimensione NUMA diversa.
Per il deployment iniziale del sistema SAP HANA o per il ridimensionamento della macchina al fine di aumentare il numero di nodi NUMA, assicurati che SAP HANA sia in esecuzione durante l'esecuzione dello script di automazione fornito per attivare il riavvio rapido di SAP HANA. Google Cloud
Quando redimensioni la macchina per ridurre il numero di nodi NUMA, assicurati che SAP HANA sia interrotta durante l'esecuzione dello script di automazione che consente di attivare il riavvio rapido di SAP HANA. Google Cloud Dopo l'esecuzione dello script, devi aggiornare manualmente la configurazione di SAP HANA per completare la configurazione del riavvio rapido di SAP HANA. Per ulteriori informazioni, consulta la configurazione di SAP HANA per il riavvio rapido.
Per attivare il riavvio rapido di SAP HANA:
Stabilisci una connessione SSH con la VM host.
Passa al root:
sudo su -
Scarica lo script
sap_lib_hdbfr.sh
:wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
Rendi eseguibile il file:
chmod +x sap_lib_hdbfr.sh
Verifica che lo script non contenga errori:
vi sap_lib_hdbfr.sh ./sap_lib_hdbfr.sh -help
Se il comando restituisce un errore, contatta l'assistenza clienti Google Cloud. Per ulteriori informazioni su come contattare l'assistenza clienti, consulta Ricevere assistenza per SAP su Google Cloud.
Esegui lo script dopo aver sostituito l'ID sistema (SID) e la password di SAP HANA per l'utente SYSTEM del database SAP HANA. Per fornire la password in modo sicuro, ti consigliamo di utilizzare un secret in Secret Manager.
Esegui lo script utilizzando il nome di un secret in Secret Manager. Questo segreto deve esistere nel progetto Google Cloud che contiene l'istanza VM di hosting.
sudo ./sap_lib_hdbfr.sh -h 'SID' -s SECRET_NAME
Sostituisci quanto segue:
SID
: specifica l'SID con lettere maiuscole. Ad esempio,AHA
.SECRET_NAME
: specifica il nome del segreto corrispondente alla password per l'utente SYSTEM del database SAP HANA. Questo segreto deve esistere nel progetto Google Cloud che contiene l'istanza VM host.
In alternativa, puoi eseguire lo script utilizzando una password in testo normale. Dopo aver attivato il riavvio rapido di SAP HANA, assicurati di cambiare la password. L'utilizzo di una password in testo normale non è consigliato perché la password verrà registrata nella cronologia della riga di comando della VM.
sudo ./sap_lib_hdbfr.sh -h 'SID' -p 'PASSWORD'
Sostituisci quanto segue:
SID
: specifica l'SID con lettere maiuscole. Ad esempio,AHA
.PASSWORD
: specifica la password per l'utente SYSTEM del database SAP HANA.
Se l'esecuzione iniziale è andata a buon fine, dovresti vedere un output simile al seguente:
INFO - Script is running in standalone mode ls: cannot access '/hana/tmpfs*': No such file or directory INFO - Setting up HANA Fast Restart for system 'TST/00'. INFO - Number of NUMA nodes is 2 INFO - Number of directories /hana/tmpfs* is 0 INFO - HANA version 2.57 INFO - No directories /hana/tmpfs* exist. Assuming initial setup. INFO - Creating 2 directories /hana/tmpfs* and mounting them INFO - Adding /hana/tmpfs* entries to /etc/fstab. Copy is in /etc/fstab.20220625_030839 INFO - Updating the HANA configuration. INFO - Running command: select * from dummy DUMMY "X" 1 row selected (overall time 4124 usec; server time 130 usec) INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_persistent_memory_volumes') = '/hana/tmpfs0/TST;/hana/tmpfs1/TST;' 0 rows affected (overall time 3570 usec; server time 2239 usec) INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistent_memory', 'table_unload_action') = 'retain'; 0 rows affected (overall time 4308 usec; server time 2441 usec) INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('persistent_memory', 'table_default') = 'ON'; 0 rows affected (overall time 3422 usec; server time 2152 usec)
Passaggi automatici
Per automatizzare questa procedura, utilizza nodes.txt
e i seguenti script dalla console Google Cloud:
Genera un file
hosts.txt
con un elenco di indirizzi IP e nomi host:while read -u10 ZONE HOST ; do gcloud compute instances list --filter="name=( 'NAME' $HOST )" --format="csv[separator=' ',no-heading](networkInterfaces[0].networkIP,name)" >> hosts.txt; done 10< nodes.txt
Verifica che il file
hosts.txt
sia simile al seguente esempio:10.138.0.1 rhel-hana-primary 10.138.0.2 rhel-hana-primaryw1 10.138.0.3 rhel-hana-secondary 10.138.0.4 rhel-hana-secondaryw1 10.138.0.5 rhel-sap-mm
Su tutti gli host del cluster, incluso il maggioritario, aggiorna il file
/etc/hosts
in modo da includere i nomi host e gli indirizzi IP interni di tutte le istanze del cluster Pacemaker.while read -u10 ZONE HOST ; do gcloud compute ssh --tunnel-through-iap --quiet $HOST --zone $ZONE -- "sudo tee -a /etc/hosts" < hosts.txt; done 10< nodes.txt
Esegui il backup dei database
Crea i backup dei database per avviare la registrazione del database per la replica del sistema SAP HANA e creare un punto di recupero.
Se hai più database tenant in una configurazione MDC, esegui il backup di ciascun database tenant.
Il modello Deployment Manager utilizza /hanabackup/data/SID come directory di backup predefinita.
Per creare i backup dei nuovi database SAP HANA:
Nell'host principale, passa a
SID_LCadm
. A seconda dell'immagine del sistema operativo, il comando potrebbe essere diverso.sudo -i -u SID_LCadm
Crea backup del database:
Per un sistema SAP HANA con un singolo contenitore del database:
>
hdbsql -t -u system -p SYSTEM_PASSWORD -i INST_NUM \ "backup data using file ('full')"L'esempio seguente mostra una risposta corretta da un nuovo sistema SAP HANA:
0 rows affected (overall time 18.416058 sec; server time 18.414209 sec)
Per un sistema di contenitori multidatabase (MDC) SAP HANA, crea un backup del database di sistema e di tutti i database dei tenant:
>
hdbsql -t -d SYSTEMDB -u system -p SYSTEM_PASSWORD -i INST_NUM \ "backup data using file ('full')">
hdbsql -t -d SID -u system -p SYSTEM_PASSWORD -i INST_NUM \ "backup data using file ('full')"
L'esempio seguente mostra una risposta corretta da un nuovo sistema SAP HANA:
0 rows affected (overall time 16.590498 sec; server time 16.588806 sec)
Verifica che la modalità di logging sia impostata su normale:
>
hdbsql -u system -p SYSTEM_PASSWORD -i INST_NUM \ "select value from "SYS"."M_INIFILE_CONTENTS" where key='log_mode'"Dovresti vedere:
VALUE "normal"
Attiva la replica del sistema SAP HANA
Nell'ambito dell'attivazione della replica del sistema SAP HANA, devi copiare i dati e i file chiave per gli archivi sicuri SAP HANA sul file system (SSFS) dall'hosting primario all'hosting secondario. Il metodo utilizzato da questa procedura per copiare i file è solo uno dei possibili metodi che puoi utilizzare.
Nell'host principale come
SID_LCadm
, attiva la replica del sistema:>
hdbnsutil -sr_enable --name=PRIMARY_HOST_NAMESul computer host secondario:
Come
SID_LCadm
, interrompi SAP HANA:>
sapcontrol -nr INST_NUM -function StopSystemCome utente root, archivia i dati e i file di chiavi SSFS esistenti:
#
cd /usr/sap/SID/SYS/global/security/rsecssfs/#
mv data/SSFS_SID.DAT data/SSFS_SID.DAT-ARC#
mv key/SSFS_SID.KEY key/SSFS_SID.KEY-ARCCopia il file di dati dall'host principale:
#
scp -o StrictHostKeyChecking=no \ PRIMARY_HOST_NAME:/usr/sap/SID/SYS/global/security/rsecssfs/data/SSFS_SID.DAT \ /usr/sap/SID/SYS/global/security/rsecssfs/data/SSFS_SID.DATCopia il file della chiave dall'host principale:
#
scp -o StrictHostKeyChecking=no \ PRIMARY_HOST_NAME:/usr/sap/SID/SYS/global/security/rsecssfs/key/SSFS_SID.KEY \ /usr/sap/SID/SYS/global/security/rsecssfs/key/SSFS_SID.KEYAggiorna la proprietà dei file:
#
chown SID_LCadm:sapsys /usr/sap/SID/SYS/global/security/rsecssfs/data/SSFS_SID.DAT#
chown SID_LCadm:sapsys /usr/sap/SID/SYS/global/security/rsecssfs/key/SSFS_SID.KEYAggiorna le autorizzazioni per i file:
#
chmod 644 /usr/sap/SID/SYS/global/security/rsecssfs/data/SSFS_SID.DAT#
chmod 640 /usr/sap/SID/SYS/global/security/rsecssfs/key/SSFS_SID.KEYCome SID_LCadm, registra il sistema SAP HANA secondario con la replica del sistema SAP HANA:
>
hdbnsutil -sr_register --remoteHost=PRIMARY_HOST_NAME --remoteInstance=INST_NUM \ --replicationMode=syncmem --operationMode=logreplay --name=SECONDARY_HOST_NAMECome SID_LCadm, avvia SAP HANA:
>
sapcontrol -nr INST_NUM -function StartSystem
Convalida della replica del sistema
Nell'host principale come SID_LCadm
, verifica che la replica del sistema SAP HANA sia attiva eseguendo il seguente script Python:
$
python $DIR_INSTANCE/exe/python_support/systemReplicationStatus.py
Se la replica è configurata correttamente, tra gli altri indicatori, vengono visualizzati i seguenti valori per i servizi xsengine
, nameserver
e indexserver
:
- Il valore
Secondary Active Status
èYES
- Il valore
Replication Status
èACTIVE
Inoltre, overall system replication status
mostra ACTIVE
.
Attivare i hook del provider SAP HANA HA/DR
Red Hat consiglia di attivare i hook del provider SAP HANA HA/DR, che consentono a SAP HANA di inviare notifiche per determinati eventi e migliorano il rilevamento degli errori. Gli hook del provider SAP HANA HA/DR richiedono SAP HANA 2.0 SPS 03 o una versione successiva.
Sia sul sito principale che su quello secondario, completa i seguenti passaggi:
Come
SID_LCadm
, interrompi SAP HANA:>
sapcontrol -nr 00 -function StopSystem
Come utente root o
SID_LCadm
, apri il fileglobal.ini
per la modifica:>
vi /hana/shared/SID/global/hdb/custom/config/global.iniAggiungi le seguenti definizioni al file
global.ini
:[ha_dr_provider_SAPHanaSR] provider = SAPHanaSR path = /usr/share/SAPHanaSR-ScaleOut/ execution_order = 1 [ha_dr_provider_chksrv] provider = ChkSrv path = /usr/share/SAPHanaSR-ScaleOut/ execution_order = 2 action_on_lost = stop [trace] ha_dr_saphanasr = info ha_dr_chksrv = info
Come utente root, crea un file di configurazione personalizzato nella directory
/etc/sudoers.d
eseguendo il seguente comando. Questo nuovo file di configurazione consente all'utenteSID_LCadm
di accedere agli attributi del nodo del cluster quando viene chiamato il metodo di hooksrConnectionChanged()
.>
visudo -f /etc/sudoers.d/20-saphanaNel file
Sostituisci/etc/sudoers.d/20-saphana
, aggiungi il seguente testo:SID_LC
con l'ID cliente in lettere minuscole.Cmnd_Alias SOK = /usr/sbin/crm_attribute -n hana_SID_LC_glob_srHook -v SOK -t crm_config -s SAPHanaSR Cmnd_Alias SFAIL = /usr/sbin/crm_attribute -n hana_SID_LC_glob_srHook -v SFAIL -t crm_config -s SAPHanaSR SID_LCadm ALL=(ALL) NOPASSWD: SOK, SFAIL Defaults!SOK, SFAIL !requiretty
Nel file
/etc/sudoers
, assicurati che sia incluso il seguente testo:#includedir /etc/sudoers.d
Tieni presente che
#
in questo testo fa parte della sintassi e non indica che la riga è un commento.Come
SID_LCadm
, avvia SAP HANA:>
sapcontrol -nr 00 -function StartSystemNell'host principale come
SID_LCadm
, testa lo stato riportato dallo script di hook:>
cdtrace>
awk '/ha_dr_SAPHanaSR.*crm_attribute/ { printf "%s %s %s %s\n",$2,$3,$5,$16 }' nameserver_*
Configurare il supporto del failover di Cloud Load Balancing
Il servizio bilanciatore del carico di rete passthrough interno con supporto del failover instrada il traffico all'host attivo in un cluster SAP HANA in base a un servizio di controllo di integrità.
Prenota un indirizzo IP per l'IP virtuale
L'indirizzo IP virtuale (VIP), a volte indicato come indirizzo IP mobile, segue il sistema SAP HANA attivo. Il bilanciatore del carico indirizza il traffico inviato all'indirizzo VIP alla VM che attualmente ospita il sistema SAP HANA attivo.
Apri Cloud Shell:
Prenota un indirizzo IP per l'IP virtuale. Si tratta dell'indirizzo IP utilizzato dalle applicazioni per accedere a SAP HANA. Se ometti il flag
--addresses
, viene scelto per te un indirizzo IP nella subnet specificata:$
gcloud compute addresses create VIP_NAME \ --region CLUSTER_REGION --subnet CLUSTER_SUBNET \ --addresses VIP_ADDRESSPer saperne di più sulla prenotazione di un indirizzo IP statico, consulta Prenotazione di un indirizzo IP interno statico.
Conferma la prenotazione dell'indirizzo IP:
$
gcloud compute addresses describe VIP_NAME \ --region CLUSTER_REGIONDovresti vedere un output simile al seguente esempio:
address: 10.0.0.19 addressType: INTERNAL creationTimestamp: '2020-05-20T14:19:03.109-07:00' description: '' id: '8961491304398200872' kind: compute#address name: vip-for-hana-ha networkTier: PREMIUM purpose: GCE_ENDPOINT region: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1 selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/addresses/vip-for-hana-ha status: RESERVED subnetwork: https://www.googleapis.com/compute/v1/projects/example-project-123456/regions/us-central1/subnetworks/example-subnet-us-central1
Crea gruppi di istanze per le VM host
In Cloud Shell, crea due gruppi di istanze non gestite e assegna la VM host principale a uno e la VM host secondaria all'altro:
$
gcloud compute instance-groups unmanaged create PRIMARY_IG_NAME \ --zone=PRIMARY_ZONE$
gcloud compute instance-groups unmanaged add-instances PRIMARY_IG_NAME \ --zone=PRIMARY_ZONE \ --instances=PRIMARY_HOST_NAME$
gcloud compute instance-groups unmanaged create SECONDARY_IG_NAME \ --zone=SECONDARY_ZONE$
gcloud compute instance-groups unmanaged add-instances SECONDARY_IG_NAME \ --zone=SECONDARY_ZONE \ --instances=SECONDARY_HOST_NAMEConferma la creazione dei gruppi di istanze:
$
gcloud compute instance-groups unmanaged listDovresti vedere un output simile al seguente esempio:
NAME ZONE NETWORK NETWORK_PROJECT MANAGED INSTANCES hana-ha-ig-1 us-central1-a example-network example-project-123456 No 1 hana-ha-ig-2 us-central1-c example-network example-project-123456 No 1
Crea un controllo di integrità Compute Engine
In Cloud Shell, crea il controllo di integrità. Per la porta utilizzata dal controllo di integrità, scegli una porta nell'intervallo privato, 49152-65535, per evitare conflitti con altri servizi. I valori di intervallo di controllo e timeout sono leggermente più lunghi di quelli predefiniti per aumentare la tolleranza al failover durante gli eventi di migrazione in tempo reale di Compute Engine. Se necessario, puoi modificare i valori:
$
gcloud compute health-checks create tcp HEALTH_CHECK_NAME --port=HEALTHCHECK_PORT_NUM \ --proxy-header=NONE --check-interval=10 --timeout=10 --unhealthy-threshold=2 \ --healthy-threshold=2Conferma la creazione del controllo di integrità:
$
gcloud compute health-checks describe HEALTH_CHECK_NAMEDovresti vedere un output simile al seguente esempio:
checkIntervalSec: 10 creationTimestamp: '2020-05-20T21:03:06.924-07:00' healthyThreshold: 2 id: '4963070308818371477' kind: compute#healthCheck name: hana-health-check selfLink: https://www.googleapis.com/compute/v1/projects/example-project-123456/global/healthChecks/hana-health-check tcpHealthCheck: port: 60000 portSpecification: USE_FIXED_PORT proxyHeader: NONE timeoutSec: 10 type: TCP unhealthyThreshold: 2
Crea una regola firewall per i controlli di integrità
Definisci una regola firewall per una porta nell'intervallo privato che consenta l'accesso alle VM host dagli intervalli IP utilizzati dai controlli di salute di Compute Engine, 35.191.0.0/16
e 130.211.0.0/22
. Per saperne di più, consulta Creare regole firewall per i controlli di integrità.
Se non ne hai già uno, aggiungi un tag di rete alle VM host. Questo tag di rete viene utilizzato dalla regola firewall per i controlli di integrità.
$
gcloud compute instances add-tags PRIMARY_HOST_NAME \ --tags NETWORK_TAGS \ --zone PRIMARY_ZONE$
gcloud compute instances add-tags SECONDARY_HOST_NAME \ --tags NETWORK_TAGS \ --zone SECONDARY_ZONESe non ne hai già una, crea una regola firewall per consentire i controlli di integrità:
$
gcloud compute firewall-rules create RULE_NAME \ --network NETWORK_NAME \ --action ALLOW \ --direction INGRESS \ --source-ranges 35.191.0.0/16,130.211.0.0/22 \ --target-tags NETWORK_TAGS \ --rules tcp:HLTH_CHK_PORT_NUMAd esempio:
gcloud compute firewall-rules create fw-allow-health-checks \ --network example-network \ --action ALLOW \ --direction INGRESS \ --source-ranges 35.191.0.0/16,130.211.0.0/22 \ --target-tags cluster-ntwk-tag \ --rules tcp:60000
Configura il bilanciatore del carico e il gruppo di failover
Crea il servizio di backend del bilanciatore del carico:
$
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme internal \ --health-checks HEALTH_CHECK_NAME \ --no-connection-drain-on-failover \ --drop-traffic-if-unhealthy \ --failover-ratio 1.0 \ --region CLUSTER_REGION \ --global-health-checksAggiungi il gruppo di istanze principale al servizio di backend:
$
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group PRIMARY_IG_NAME \ --instance-group-zone PRIMARY_ZONE \ --region CLUSTER_REGIONAggiungi il gruppo di istanze di failover secondario al servizio di backend:
$
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group SECONDARY_IG_NAME \ --instance-group-zone SECONDARY_ZONE \ --failover \ --region CLUSTER_REGIONCreare una regola di forwarding. Per l'indirizzo IP, specifica l'indirizzo IP che hai riservato per il VIP. Se devi accedere al sistema SAP HANA dall'esterno della regione specificata di seguito, includi il flag
--allow-global-access
nella definizione:$
gcloud compute forwarding-rules create RULE_NAME \ --load-balancing-scheme internal \ --address VIP_ADDRESS \ --subnet CLUSTER_SUBNET \ --region CLUSTER_REGION \ --backend-service BACKEND_SERVICE_NAME \ --ports ALLPer saperne di più sull'accesso tra regioni al sistema SAP HANA ad alta disponibilità, consulta Bilanciamento del carico TCP/UDP interno.
Testa la configurazione del bilanciatore del carico
Anche se i gruppi di istanze di backend non verranno registrati come integri fino a più tardi, puoi testare la configurazione del bilanciatore del carico impostando un listener per rispondere ai controlli di integrità. Dopo aver configurato un ascoltatore, se il bilanciatore del carico è configurato correttamente, lo stato dei gruppi di istanze di backend diventa Stabile.
Le sezioni seguenti presentano diversi metodi che puoi utilizzare per testare la configurazione.
Test del bilanciatore del carico con l'utilità socat
Puoi utilizzare l'utilità socat
per ascoltare temporaneamente sulla porta di controllo di stato.
Installa l'
socat
utility su entrambe le VM host master principali e secondarie:$
sudo yum install -y socatAvvia un processo
socat
per ascoltare per 60 secondi sulla porta di controllo di integrità:$
sudo timeout 60s socat - TCP-LISTEN:HLTH_CHK_PORT_NUM,forkIn Cloud Shell, dopo aver atteso qualche secondo affinché il controllo di integrità rilevi il listener, controlla lo stato dei gruppi di istanze di backend:
$
gcloud compute backend-services get-health BACKEND_SERVICE_NAME \ --region CLUSTER_REGIONDovresti vedere un output simile al seguente:
--- backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instanceGroups/hana-ha-ig-1 status: healthStatus: ‐ healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/hana-ha-vm-1 ipAddress: 10.0.0.35 port: 80 kind: compute#backendServiceGroupHealth --- backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/hana-ha-ig-2 status: healthStatus: ‐ healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/hana-ha-vm-2 ipAddress: 10.0.0.34 port: 80 kind: compute#backendServiceGroupHealth
Test del bilanciatore del carico utilizzando la porta 22
Se la porta 22 è aperta per le connessioni SSH sulle VM host, puoi modificare temporaneamente il controllo di integrità in modo che utilizzi la porta 22, che ha un listener in grado di rispondere al controllo di integrità.
Per utilizzare temporaneamente la porta 22:
Fai clic sul controllo di integrità nella console:
Fai clic su Modifica.
Nel campo Porta, imposta il numero di porta su 22.
Fai clic su Salva e attendi un paio di minuti.
In Cloud Shell, controlla lo stato dei gruppi di istanze di backend:
$
gcloud compute backend-services get-health BACKEND_SERVICE_NAME \ --region CLUSTER_REGIONDovresti vedere un output simile al seguente:
--- backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instanceGroups/hana-ha-ig-1 status: healthStatus: ‐ healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-a/instances/hana-ha-vm-1 ipAddress: 10.0.0.35 port: 80 kind: compute#backendServiceGroupHealth --- backend: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instanceGroups/hana-ha-ig-2 status: healthStatus: ‐ healthState: HEALTHY instance: https://www.googleapis.com/compute/v1/projects/example-project-123456/zones/us-central1-c/instances/hana-ha-vm-2 ipAddress: 10.0.0.34 port: 80 kind: compute#backendServiceGroupHealth
Al termine, ripristina il numero di porta del controllo di integrità.
Configurare Pacemaker
La procedura seguente configura l'implementazione Red Hat di un cluster Pacemaker su VM Compute Engine per SAP HANA.
La procedura si basa sulla documentazione di Red Hat per la configurazione di cluster ad alta disponibilità, tra cui (è richiesto un abbonamento a Red Hat):
- Installazione e configurazione di un cluster ad alta disponibilità Red Hat Enterprise Linux 7.6 (e versioni successive) su Google Cloud
- Replicazione automatica del sistema SAP HANA in scale-out in un cluster pacemaker
Procedura manuale
Completa i seguenti passaggi su tutti gli host. Nell'immagine RHEL per SAP fornita da Google, alcuni pacchetti sono già installati, ma sono necessarie alcune modifiche aggiuntive.
Come utente root, rimuovi l'agente di risorse SAP HANA Scale-Up preinstallato nell'immagine:
#
yum -y remove resource-agents-sap-hanaInstalla Pacemaker e gli agenti delle risorse mancanti:
#
yum -y install pcs pacemaker fence-agents-gce resource-agents-gcp resource-agents-sap-hana-scaleoutUpdate packages to latest version:
#
yum update -yImposta la password per l'utente
hacluster
, creato nell'ambito dei pacchetti:#
passwd haclusterSpecifica una password per
hacluster
quando richiesto.Nelle immagini RHEL for SAP fornite da Google Cloud, il servizio firewall del sistema operativo è attivo per impostazione predefinita. Configura il servizio firewall per consentire il traffico ad alta disponibilità:
#
firewall-cmd --permanent --add-service=high-availability#
firewall-cmd --reloadAvvia il servizio pcs e configuralo in modo che venga avviato all'avvio:
#
systemctl start pcsd.service#
systemctl enable pcsd.serviceControlla lo stato del servizio pcs:
#
systemctl status pcsd.serviceDovresti vedere un output simile al seguente:
● pcsd.service - PCS GUI and remote configuration interface Loaded: loaded (/usr/lib/systemd/system/pcsd.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-06-13 21:17:05 UTC; 25s ago Docs: man:pcsd(8) man:pcs(8) Main PID: 31627 (pcsd) CGroup: /system.slice/pcsd.service └─31627 /usr/bin/ruby /usr/lib/pcsd/pcsd Jun 13 21:17:03 hana-ha-1 systemd[1]: Starting PCS GUI and remote configuration interface... Jun 13 21:17:05 hana-ha-1 systemd[1]: Started PCS GUI and remote configuration interface.
Passaggi automatici
Per automatizzare questa procedura, puoi utilizzare nodes.txt
e lo script seguente dalla console Google Cloud.
Al prompt, inserisci una password da utilizzare per l'utente hacluster
creato durante l'installazione degli agenti di risorse Pacemaker.
echo "Set password for hacluster user:"; read -r HA_PASSWD; while read -u10 HOST ; do gcloud compute ssh --tunnel-through-iap --quiet --zone $HOST -- "sudo yum -y remove resource-agents-sap-hana; sudo yum -y install pcs pacemaker fence-agents-gce resource-agents-sap-hana-scaleout resource-agents-gcp; sudo yum update -y; sudo firewall-cmd --permanent --add-service=high-availability; sudo firewall-cmd --reload; sudo systemctl start pcsd.service; sudo systemctl enable pcsd.service; yes $HA_PASSWD | sudo passwd hacluster"; done 10< nodes.txt
Aggiorna il file /etc/hosts
Su tutti gli host del cluster, incluso il maggioritario, aggiorna il file /etc/hosts
in modo da includere i nomi host e gli indirizzi IP interni di tutte le istanze del cluster Pacemaker.
L'output del file /etc/hosts
dovrebbe essere simile all'esempio riportato di seguito:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.138.0.1 rhel-hana-primary.us-west1-a.c.project-name.internal rhel-hana-primary # Added by Google 169.254.169.254 metadata.google.internal # Added by Google 10.138.0.1 rhel-hana-primary 10.138.0.2 rhel-hana-primaryw1 10.138.0.3 rhel-hana-secondary 10.138.0.4 rhel-hana-secondaryw1 10.138.0.5 rhel-sap-mm
Per ulteriori informazioni di Red Hat sulla configurazione del file /etc/hosts
sui nodi del cluster RHEL, consulta https://access.redhat.com/solutions/81123
Crea il cluster
Con accesso come utente root sull'host master principale, autorizzi l'utente
hacluster
. È importante includere in questo comando tutti gli host del cluster, che devono far parte del cluster.RHEL 8.0 e versioni successive
pcs host auth primary-master-name primary-worker-name(s) secondary-master-name secondary-worker-name(s) majority-maker-name
RHEL 7.6 e versioni successive
pcs cluster auth primary-master-name primary-worker-name(s) secondary-master-name secondary-worker-name(s) majority-maker-name
Quando richiesto, inserisci il nome utente
hacluster
e la password impostata per l'utentehacluster
nella sezione precedente.Imposta il cluster in modalità di manutenzione.
pcs property set maintenance-mode=true
Genera e sincronizza la configurazione di corosync.
RHEL 8.0 e versioni successive
pcs cluster setup scale_out_hsr primary-master-name primary-worker-name(s) secondary-master-name secondary-worker-name(s) majority-maker-name
RHEL 7.6 e versioni successive
pcs cluster setup --start --name hanascaleoutsr primary-master-name primary-worker-name(s) secondary-master-name secondary-worker-name(s) majority-maker-name
Modifica le impostazioni predefinite di corosync.conf
Apri il file
/etc/corosync/corosync.conf
utilizzando un editor a tua scelta.Rimuovi il parametro
consensus
.Modifica i restanti parametri in base ai consigli di Google Cloud.
La tabella seguente mostra i parametritotem
per i quali Google Cloud viene consigliato di impostare dei valori, nonché l'impatto della modifica dei valori. Per i valori predefiniti di questi parametri, che possono variare da una distribuzione Linux all'altra, consulta la documentazione della tua distribuzione Linux.Parametro Valore consigliato Impatto della modifica del valore secauth
off
Disattiva l'autenticazione e la crittografia di tutti i messaggi totem
.join
60 (ms) Aumenta il tempo di attesa del nodo per i messaggi join
nel protocollo di adesione.max_messages
20 Aumenta il numero massimo di messaggi che possono essere inviati dal nodo dopo aver ricevuto il token. token
20000 (ms) Aumenta il tempo di attesa del nodo per un token di protocollo
totem
prima che il nodo dichiari una perdita di token, assuma un errore del nodo e inizi a intervenire.L'aumento del valore del parametro
token
rende il cluster più tollerante nei confronti di eventi infrastrutturali temporanei, come una migrazione live. Tuttavia, può anche far sì che il cluster impieghi più tempo per rilevare e recuperare da un errore del nodo.Il valore del parametro
token
determina anche il valore predefinito del parametroconsensus
, che controlla il tempo di attesa di un nodo per il raggiungimento del consenso prima di tentare di ristabilire l'appartenenza alla configurazione.consensus
N/D Specifica, in millisecondi, il tempo di attesa per il raggiungimento del consenso prima di iniziare un nuovo ciclo di configurazione dell'appartenenza.
Ti consigliamo di omettere questo parametro. Quando il parametro
Se specifichi esplicitamente un valore perconsensus
non è specificato, Corosync imposta il relativo valore su 1,2 volte il valore del parametrotoken
. Se utilizzi il valore consigliato20000
per il parametrotoken
, il parametroconsesus
viene impostato con il valore24000
.consensus
, assicurati che sia24000
o1.2*token
, a seconda del valore maggiore.token_retransmits_before_loss_const
10 Aumenta il numero di ritrasmissioni del token tentate dal nodo prima di concludere che il nodo destinatario ha avuto un errore e di intervenire. transport
- Per SLES:
udpu
- Per RHEL 8 o versioni successive:
knet
- Per RHEL 7:
udpu
Specifica il meccanismo di trasporto utilizzato da corosync. - Per SLES:
Dall'host che contiene il file
corosync.conf
modificato, sincronizza la configurazione di corosync nel cluster:RHEL 8 e versioni successive
#
pcs cluster sync corosyncRHEL 7
#
pcs cluster syncImposta il cluster in modo che si avvii automaticamente:
#
pcs cluster enable --all#
pcs cluster start --allVerifica che le nuove impostazioni di corosync siano attive nel cluster utilizzando l'utilità corosync-cmapctl:
#
corosync-cmapctl
Imposta un ritardo per il riavvio di Corosync
Procedura manuale
Su tutti gli host come utente root, crea un file drop-in
systemd
che ritardi l'avvio di Corosync per garantire la sequenza corretta di eventi dopo il riavvio di una VM protetta:systemctl edit corosync.service
Aggiungi le seguenti righe al file:
[Service] ExecStartPre=/bin/sleep 60
Salva il file ed esci dall'editor.
Ricarica la configurazione del gestore systemd.
systemctl daemon-reload
Verifica che il file di plug-in sia stato creato:
service corosync status
Dovresti vedere una riga per il file plug-in, come nell'esempio seguente:
● corosync.service - Corosync Cluster Engine Loaded: loaded (/usr/lib/systemd/system/corosync.service; disabled; vendor preset: disabled) Drop-In: /etc/systemd/system/corosync.service.d └─override.conf Active: active (running) since Tue 2021-07-20 23:45:52 UTC; 2 days ago
Passaggi automatici
In alternativa, per automatizzare questa procedura per tutte le istanze elencate in nodes.txt
, esegui il seguente script dalla console Google Cloud:
while read -u10 HOST; do gcloud compute ssh --tunnel-through-iap --quiet --zone $HOST -- "sudo mkdir -p /etc/systemd/system/corosync.service.d/; sudo echo -e '[Service]\nExecStartPre=/bin/sleep 60' | sudo tee -a /etc/systemd/system/corosync.service.d/override.conf; sudo systemctl daemon-reload"; done 10< nodes.txt
Configurare la recinzione
Le immagini RHEL fornite da Google Cloud includono un agente di recinzione
chiamato fence_gce
, specifico per Google Cloud. Utilizza fence_gce
per creare dispositivi di recinzione per ogni VM host.
Per assicurarti che venga eseguita la sequenza corretta di eventi dopo un'azione di recinzione, devi configurare il sistema operativo in modo da ritardare il riavvio di Corosync dopo la recinzione di una VM. Devi anche regolare il timeout di Pacemaker per i riavvii in modo da tenere conto del ritardo.
Per visualizzare tutte le opzioni disponibili con l'agente di recinzione fence_gce
,
esegui fence_gce -h
.
Procedura manuale
Nell'host principale, come utente root, crea i dispositivi di recinzione per tutti gli host, incluso il creatore della maggioranza:
pcs stonith create STONITH-host-name fence_gce \ port=host-name \ zone=host-zone \ project=project-id \ pcmk_host_list=host-name pcmk_reboot_timeout=300 pcmk_monitor_retries=4 \ op monitor interval="300s" timeout="120s" \ op start interval="0" timeout="60s"
Imposta il vincolo di posizione per i dispositivi di recinzione:
pcs constraint location STONITH-host-name avoids host-name
Ripeti i due passaggi precedenti per tutti gli altri host nei cluster principali e secondari e per l'host del produttore di maggioranza inserendo valori appropriati per le variabili host-name e host-zone.
Passaggi automatici
Per automatizzare questa procedura, devi utilizzare il file
nodes.txt
e lo script riportato di seguito dalla console Google Cloud:
while read -u10 ZONE HOST; do gcloud compute ssh $HOST --tunnel-through-iap --quiet --zone $ZONE -- "sudo pcs stonith create STONITH-$HOST fence_gce project=project-id port=$HOST zone=$ZONE pcmk_host_list=$HOST pcmk_reboot_timeout=300 pcmk_monitor_retries=4 op monitor interval=300s timeout=120s op start interval=0 timeout=60s && sudo pcs constraint location STONITH-$HOST avoids $HOST"; done 10< nodes.txt
Impostare i valori predefiniti del cluster
Configura le soglie di migrazione e l'aderenza per determinare il numero di passaggi di failover da tentare prima del fallimento e per impostare il sistema in modo che provi prima a riavviare sull'host corrente. Questo valore deve essere impostato su un solo nodo per essere applicato al cluster.
Come utente root da qualsiasi host, imposta i valori predefiniti della risorsa:
RHEL 8.0 e versioni successive
#
pcs resource defaults update resource-stickiness=1000#
pcs resource defaults update migration-threshold=5000RHEL 7.6 e versioni successive
#
pcs resource defaults resource-stickiness=1000#
pcs resource defaults migration-threshold=5000La proprietà
resource-stickiness
controlla la probabilità che un servizio rimanga in esecuzione dove si trova. I valori più elevati rendono il servizio più stabile. Un valore1000
indica che il servizio è molto stabile.La proprietà
migration-threshold
specifica il numero di errori che devono verificarsi prima che un servizio venga eseguito su un altro host. Un valore di 5000 è sufficientemente elevato per evitare il failover per situazioni di errore di durata più breve.Puoi controllare i valori predefiniti della risorsa inserendo
pcs resource defaults
.Imposta i valori predefiniti per il timeout delle operazioni sulle risorse:
RHEL 8.0 e versioni successive
#
pcs resource op defaults update timeout=600sRHEL 7.6 e versioni successive
#
pcs resource op defaults timeout=600sPuoi controllare i valori predefiniti delle operazioni sulle risorse inserendo
pcs resource op defaults
.Imposta le seguenti proprietà del cluster:
#
pcs property set stonith-enabled="true"#
pcs property set stonith-timeout="300s"Puoi controllare le impostazioni della proprietà con
pcs property list
.
Crea la risorsa SAPHanaTopology
La risorsa SAPHanaTopology
recupera lo stato e la configurazione della replica del sistema HANA sui nodi. Controlla anche l'agente host SAP.
Come utente root su uno degli host, crea la risorsa
SAPHanaTopology
:RHEL 8.0 e versioni successive
#
pcs resource create rsc_SAPHanaTopology_SID_HDBinstNr SAPHanaTopology SID=SID \ InstanceNumber=inst_num \ op methods interval=0s timeout=5 \ op monitor interval=10 timeout=600 \ clone meta clone-node-max=1 interleave=trueRHEL 7.6 e versioni successive
#
pcs resource create rsc_SAPHanaTopology_SID_HDBinstNr SAPHanaTopologyScaleOut SID=SID \ InstanceNumber=inst_num \ op start timeout=600 \ op stop timeout=300 \ op monitor interval=10 timeout=600#
pcs resource clone rsc_SAPHanaTopology_SID_HDBinstNr meta clone-node-max=1 interleave=trueDopo aver creato la risorsa, controlla la configurazione. Aggiungi
-clone
al nome della risorsa per includere le informazioni del set di cloni nella risposta.RHEL 8.0 e versioni successive
#
pcs resource config rsc_SAPHanaTopology_SID_HDBinstNr-cloneDovresti vedere un output simile al seguente:
Clone: SAPHanaTopology_HA1_00-clone Meta Attrs: clone-node-max=1 interleave=true Resource: SAPHanaTopology_HA1_00 (class=ocf provider=heartbeat type=SAPHanaTopology) Attributes: InstanceNumber=00 SID=HA1 Operations: methods interval=0s timeout=5 (SAPHanaTopology_HA1_00-methods-interval-0s) monitor interval=10 timeout=600 (SAPHanaTopology_HA1_00-monitor-interval-10) start interval=0s timeout=600 (SAPHanaTopology_HA1_00-start-interval-0s) stop interval=0s timeout=300 (SAPHanaTopology_HA1_00-stop-interval-0s)
RHEL 7.6 e versioni successive
#
pcs resource show rsc_SAPHanaTopology_SID_HDBinstNr-cloneDovresti vedere un output simile al seguente:
Clone: rsc_SAPHanaTopology_HA1_HDB00-clone Meta Attrs: clone-node-max=1 interleave=true Resource: rsc_SAPHanaTopology_HA1_HDB00 (class=ocf provider=heartbeat type=SAPHanaTopologyScaleOut) Attributes: InstanceNumber=00 SID=HA1 Meta Attrs: clone-node-max=1 interleave=true Operations: methods interval=0s timeout=5 (rsc_SAPHanaTopology_HA1_HDB00-methods-interval-0s) monitor interval=10 timeout=600 (rsc_SAPHanaTopology_HA1_HDB00-monitor-interval-10) start interval=0s timeout=600 (rsc_SAPHanaTopology_HA1_HDB00-start-interval-0s) stop interval=0s timeout=300 (rsc_SAPHanaTopology_HA1_HDB00-stop-interval-0s)
Puoi anche controllare gli attributi del cluster utilizzando il comando crm_mon -A1
.
Crea la risorsa SAPHanaController
L'agente di risorse SAPHanaController gestisce i database configurati per la replica del sistema SAP HANA.
I seguenti parametri nella definizione della risorsa SAPHana sono facoltativi:
AUTOMATED_REGISTER
, che, se impostato sutrue
, registra automaticamente l'attributo precedente come secondario quando il valore DUPLICATE_PRIMARY_TIMEOUT scade dopo un'acquisizione. Il valore predefinito èfalse
.Per un cluster SAP HANA HA multilivello, se utilizzi una versione precedente a SAP HANA 2.0 SP03, imposta
AUTOMATED_REGISTER
sufalse
. In questo modo, un'istanza recuperata non tenterà di registrarsi autonomamente per la replica a un sistema HANA che ha già un target di replica configurato. Per SAP HANA 2.0 SP03 o versioni successive, puoi impostareAUTOMATED_REGISTER
sutrue
per le configurazioni SAP HANA che utilizzano la replica di sistema a più livelli.DUPLICATE_PRIMARY_TIMEOUT
, che imposta la differenza di tempo in secondi tra due timestamp principali se si verifica una situazione di doppio timestamp principale. Il valore predefinito è7200
.PREFER_SITE_TAKEOVER
, che determina se vengono tentati i riavvii locali prima dell'avvio del failover. Il valore predefinito èfalse
.
Per ulteriori informazioni su questi parametri, consulta Installare e configurare un cluster ad alta disponibilità Red Hat Enterprise Linux 7.6 (e versioni successive) su Google Cloud. È necessario un abbonamento Red Hat.
Come utente root su uno degli host, crea la risorsa SAPHanaController:
RHEL 8.0 e versioni successive
#
pcs resource create rsc_SAPHana_SID_HDBinstNr SAPHanaController SID=SID \ InstanceNumber=inst_num \ PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true \ op demote interval=0s timeout=320 \ op methods interval=0s timeout=5 \ op monitor interval=59 \ role="Master" timeout=700 \ op monitor interval=61 \ role="Slave" timeout=700 \ op promote interval=0 timeout=3600 \ op start interval=0 timeout=3600 \ op stop interval=0 timeout=3600e#
pcs resource promotable rsc_SAPHana_SID_HDBinstNr meta master-max="1" clone-node-max=1 interleave=trueRHEL 7.6 e versioni successive
#
pcs resource create rsc_SAPHana_SID_HDBinstNr SAPHanaController SID=SID \ InstanceNumber=inst_num \ PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true \ op start interval=0 timeout=3600 \ op stop interval=0 timeout=3600 \ op promote interval=0 timeout=3600 \ op monitor interval=60 \ role="Master" timeout=700 \ op monitor interval=61 \ role="Slave" timeout=700#
pcs resource master msl_rsc_SAPHana_SID_HDBinstNr rsc_SAPHana_SID_HDBinstNr master-max="1" clone-node-max=1 interleave=trueControlla gli attributi della risorsa risultanti:
RHEL 8.0 e versioni successive
#
pcs resource config rsc_SAPHana_SID_HDBinstNr-cloneDovresti vedere un output simile al seguente esempio:
Resource: SAPHana_HA1_00 (class=ocf provider=heartbeat type=SAPHanaController) Attributes: AUTOMATED_REGISTER=true DUPLICATE_PRIMARY_TIMEOUT=7200 InstanceNumber=00 PREFER_SITE_TAKEOVER=true SID=HA1 Operations: demote interval=0s timeout=320 (SAPHana_HA1_00-demote-interval-0s) methods interval=0s timeout=5 (SAPHana_HA1_00-methods-interval-0s) monitor interval=59 role=Master timeout=700 (SAPHana_HA1_00-monitor-interval-59) promote interval=0 timeout=3600 (SAPHana_HA1_00-promote-interval-0) reload interval=0s timeout=5 (SAPHana_HA1_00-reload-interval-0s) start interval=0 timeout=3600 (SAPHana_HA1_00-start-interval-0) stop interval=0 timeout=3600 (SAPHana_HA1_00-stop-interval-0) monitor interval=61 role=Slave timeout=700 (SAPHana_HA1_00-monitor-interval-61)
RHEL 7.6 e versioni successive
#
pcs resource show msl_rsc_SAPHana_SID_HDBinstNrDovresti vedere un output simile al seguente esempio:
Master: msl_rsc_SAPHana_HA1_HDB00 Meta Attrs: clone-node-max=1 interleave=true master-max=1 Resource: rsc_SAPHana_HA1_HDB00 (class=ocf provider=heartbeat type=SAPHanaController) Attributes: AUTOMATED_REGISTER=true DUPLICATE_PRIMARY_TIMEOUT=7200 InstanceNumber=00 PREFER_SITE_TAKEOVER=true SID=HA1 Operations: demote interval=0s timeout=320 (rsc_SAPHana_HA1_HDB00-demote-interval-0s) methods interval=0s timeout=5 (rsc_SAPHana_HA1_HDB00-methods-interval-0s) monitor interval=60 role=Master timeout=700 (rsc_SAPHana_HA1_HDB00-monitor-interval-60) monitor interval=61 role=Slave timeout=700 (rsc_SAPHana_HA1_HDB00-monitor-interval-61) promote interval=0 timeout=3600 (rsc_SAPHana_HA1_HDB00-promote-interval-0) start interval=0 timeout=3600 (rsc_SAPHana_HA1_HDB00-start-interval-0) stop interval=0 timeout=3600 (rsc_SAPHana_HA1_HDB00-stop-interval-0)
Crea una risorsa indirizzo IP virtuale
Devi creare una risorsa cluster per l'IP virtuale. La risorsa VIP è localizzata nel sistema operativo principale e non è routeabile da altri host. Il bilanciatore del carico instrada il traffico inviato al VIP all'host di backend in base al controllo di integrità.
Come utente root su entrambi gli host:
#
pcs resource create rsc_ip_SAPHANA_SID_HDBinstNr \
IPaddr2 ip="vip-address" nic=eth0 cidr_netmask=32 \
op monitor interval=3600s timeout=60s
Il valore vip-address
corrisponde allo stesso indirizzo IP
prenotato in precedenza e specificato nella regola di inoltro per il
front-end del bilanciatore del carico. Modifica l'interfaccia di rete in base alle esigenze della tua configurazione.
Crea i vincoli
Creando vincoli, puoi definire quali servizi devono essere avviati per primi e quali devono essere eseguiti contemporaneamente sullo stesso host.
Definisci la limitazione dell'ordine di inizio:
RHEL 8.0 e versioni successive
#
pcs constraint order start rsc_SAPHanaTopology_SID_HDBinstNr-clone then start rsc_SAPHana_SID_HDBinstNr-cloneRHEL 7.6
#
pcs constraint order rsc_SAPHanaTopology_SID_HDBinstNr-clone then rsc_SAPHana_SID_HDBinstNr-masterConfigure the majority maker to avoid taking an an active role in the cluster environment:
RHEL 8.0 and later
#
pcs constraint location rsc_SAPHana_SID_HDBinstNr-clone avoids majority-maker-name#
pcs constraint location rsc_SAPHanaTopology_SID_HDBinstNr-clone avoids majoritymakerRHEL 7.6
#
pcs constraint location msl_rsc_SAPHana_SID_HDBinstNr avoids majoritymaker#
pcs constraint location rsc_SAPHanaTopology_SID_HDBinstNr-clone avoids majoritymakerControlla i vincoli:
#
pcs constraintDovresti vedere un output simile al seguente:
Location Constraints: Resource: STONITH-hana-ha-1 Disabled on: hana-ha-1 (score:-INFINITY) Resource: STONITH-hana-ha-1w1 Disabled on: hana-ha-1w1 (score:-INFINITY) Resource: STONITH-hana-ha-2 Disabled on: hana-ha-2 (score:-INFINITY) Resource: STONITH-hana-ha-2w1 Disabled on: hana-ha-2w1 (score:-INFINITY) Resource: STONITH-majority-maker Disabled on: majority-maker (score:-INFINITY) Resource: rsc_SAPHanaTopology_HA1_HDB00-clone Disabled on: majority-maker (score:-INFINITY) Resource: rsc_SAPHana_HA1_HDB00-master Disabled on: majority-maker (score:-INFINITY) Ordering Constraints: start rsc_SAPHanaTopology_HA1_HDB00-clone then start rsc_SAPHana_HA1_HDB00-master (kind:Mandatory)
Installa gli ascoltatori e crea una risorsa di controllo di integrità
Per configurare una risorsa di controllo di integrità, devi prima installare i listener.
Installa un ascoltatore
Il bilanciatore del carico utilizza un listener sulla porta di controllo di integrità di ciascun host per determinare dove è in esecuzione l'istanza principale del cluster SAP HANA. 1. Come utente root nell'istanza principale sui sistemi principali e secondari, installa un listener TCP. Queste istruzioni installano e utilizzano HAProxy come listener.
#
yum install haproxy
Apri il file di configurazione
haproxy.cfg
per la modifica:#
vi /etc/haproxy/haproxy.cfgNella sezione defaults del file
haproxy.cfg
, cambiamode
intcp
.Dopo la sezione predefiniti, crea una nuova sezione aggiungendo:
#--------------------------------------------------------------------- # Health check listener port for SAP HANA HA cluster #--------------------------------------------------------------------- listen healthcheck bind *:healthcheck-port-num
La porta di associazione è la stessa utilizzata per creare il controllo di integrità.
Al termine, gli aggiornamenti dovrebbero essere simili al seguente esempio:
#--------------------------------------------------------------------- # common defaults that all the 'listen' and 'backend' sections will # use if not designated in their block #--------------------------------------------------------------------- defaults mode tcp log global option tcplog option dontlognull option http-server-close # option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 #--------------------------------------------------------------------- # Set up health check listener for SAP HANA HA cluster #--------------------------------------------------------------------- listen healthcheck bind *:60000
Su ogni host, come utente root, avvia il servizio per verificare che sia configurato correttamente:
#
systemctl start haproxy.serviceNella pagina Bilanciatore del carico della console Google Cloud, fai clic sulla voce del bilanciatore del carico:
Pagina di bilanciamento del carico
Nella sezione Backend della pagina Dettagli bilanciatore del carico, se il servizio HAProxy è attivo su entrambi gli host, nella colonna Intatto di ogni voce del gruppo di istanze viene visualizzato
1/1
.Su ogni host, interrompi il servizio HAProxy:
#
systemctl stop haproxy.serviceDopo aver interrotto il servizio HAProxy su ogni host, nella colonna Intatto di ogni gruppo di istanze viene visualizzato
0/1
.In seguito, quando il controllo dell'integrità è configurato, il cluster riavvia il listener sul nodo principale.
Crea la risorsa di controllo di integrità
Da qualsiasi host come utente root, crea una risorsa di controllo di integrità per il servizio HAProxy:
#
pcs resource create hc_SID_HDBinstNr service:haproxy op monitor interval=10s timeout=20sRaggruppa le risorse VIP e di controllo di integrità:
#
pcs resource group add rsc-group-name hc_SID_HDBinstNr rsc_ip_SAPHANA_SID_HDBinstNrCrea una limitazione che colloca il gruppo nello stesso nodo dell'istanza SAP HANA principale.
RHEL 8.0 e versioni successive
#
pcs constraint colocation add rsc-group-name with master rsc_SAPHana_SID_HDBinstNr-cloneRHEL 7.6 e versioni successive
#
pcs constraint colocation add rsc-group-name with master msl_rsc_SAPHana_SID_HDBinstNrCrea una limitazione dell'ordine per avviare il gruppo solo dopo la promozione di HANA:
#
pcs constraint order promote rsc_SAPHana_SID_HDBinstNr-clone then start rsc-group-nameI vincoli finali dovrebbero essere simili all'esempio seguente:
# pcs constraint Location Constraints: Resource: STONITH-hana-ha-1 Disabled on: hana-ha-1 (score:-INFINITY) Resource: STONITH-hana-ha-1w1 Disabled on: hana-ha-1w1 (score:-INFINITY) Resource: STONITH-hana-ha-2 Disabled on: hana-ha-2 (score:-INFINITY) Resource: STONITH-hana-ha-2w1 Disabled on: hana-ha-2w1 (score:-INFINITY) Resource: STONITH-majority-maker Disabled on: majority-maker (score:-INFINITY) Resource: rsc_SAPHanaTopology_HA1_HDB00-clone Disabled on: majority-maker (score:-INFINITY) Resource: rsc_SAPHana_HA1_HDB00-master Disabled on: majority-maker (score:-INFINITY) Ordering Constraints: start rsc_SAPHanaTopology_HA1_HDB00-clone then start rsc_SAPHana_HA1_HDB00-master (kind:Mandatory) promote rsc_SAPHana_HA1_HDB00-clone then start g-primary (kind:Mandatory) (id:order-rsc_SAPHana_HA1_HDB00-clone-g-primary-mandatory) Colocation Constraints: g-primary with rsc_SAPHana_HA1_HDB00-master (score:INFINITY) (rsc-role:Started) (with-rsc-role:Master) Ticket Constraints:
Completare la configurazione
Rimuovere il cluster dalla modalità di manutenzione.
pcs property set maintenance-mode=false
Dopo aver avviato la risorsa, controlla gli attributi dei nodi per visualizzare lo stato corrente dei database SAP HANA sui nodi:
#
crm_mon -A1Dovresti vedere un output simile al seguente:
RHEL 8.0 e versioni successive
Cluster Summary: Stack: corosync Current DC: hana-ha-2w1 (version 2.0.5-9.el8_4.7-ba59be7122) - partition with quorum Last updated: Wed Oct 11 17:59:51 2023 Last change: Wed Oct 11 17:59:48 2023 by hacluster via crmd on hana-ha-2 5 nodes configured 17 resource instances configured Node List: Online: [ hana-ha-1 hana-ha-1w1 hana-ha-2 hana-ha-2w1 dru-somm ] Active Resources: STONITH-hana-ha-1 (stonith:fence_gce): Started hana-ha-2 STONITH-hana-ha-1w1 (stonith:fence_gce): Started hana-ha-1 STONITH-hana-ha-2 (stonith:fence_gce): Started hana-ha-2w1 STONITH-hana-ha-2w1 (stonith:fence_gce): Started dru-somm STONITH-dru-somm (stonith:fence_gce): Started hana-ha-1 Clone Set: SAPHanaTopology_HA1_00-clone [SAPHanaTopology_HA1_00]: Started: [ hana-ha-1 hana-ha-1w1 hana-ha-2 hana-ha-2w1 ] Clone Set: SAPHana_HA1_00-clone [SAPHana_HA1_00]-(promotable): Slaves: [ hana-ha-1w1 hana-ha-2w1 ] Resource Group: g-primary: healthcheck_HA1 (service:haproxy): Started hana-ha-1 ip_SAPHANA_HA1_00 (ocf::heartbeat:IPaddr2): Started hana-ha-1 Node Attributes: Node: hana-ha-1: hana_ha1_clone_state : PROMOTED hana_ha1_gra : 2.0 hana_ha1_remoteHost : hana-ha-2w1 hana_ha1_roles : master1:master:worker:master hana_ha1_site : hana-ha-1 hana_ha1_sra : - hana_ha1_srmode : syncmem hana_ha1_vhost : hana-ha-1 master-SAPHana_HA1_00 : 5 Node: hana-ha-1w1: hana_ha1_clone_state : DEMOTED hana_ha1_gra : 2.0 hana_ha1_remoteHost : hana-ha-2w1 hana_ha1_roles : slave:slave:worker:slave hana_ha1_site : hana-ha-1 hana_ha1_srmode : syncmem hana_ha1_vhost : hana-ha-1w1 master-SAPHana_HA1_00 : -INFINITY Node: hana-ha-2: hana_ha1_clone_state : DEMOTED hana_ha1_gra : 2.0 hana_ha1_remoteHost : hana-ha-1w1 hana_ha1_roles : master1:master:worker:master hana_ha1_site : hana-ha-2 hana_ha1_sra : - hana_ha1_srmode : syncmem hana_ha1_vhost : hana-ha-2 master-SAPHana_HA1_00 : 100 Node: hana-ha-2w1: hana_ha1_clone_state : DEMOTED hana_ha1_gra : 2.0 hana_ha1_remoteHost : hana-ha-1w1 hana_ha1_roles : slave:slave:worker:slave hana_ha1_site : hana-ha-2 hana_ha1_srmode : syncmem hana_ha1_vhost : hana-ha-2w1 master-SAPHana_HA1_00 : -12200 Node: dru-somm: hana_ha1_remoteHost : hana-ha-2w1 hana_ha1_srmode : syncmem
RHEL 7.6 e versioni successive
Stack: corosync Current DC: majority-maker (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum Last updated: Wed Oct 11 17:58:07 2023 Last change: Wed Oct 11 17:57:57 2023 by hacluster via crmd on hana-ha-2w1 5 nodes configured 17 resource instances configured Online: [ hana-ha-1 hana-ha-1w1 hana-ha-2 hana-ha-2w1 majority-maker ] Active resources: STONITH-hana-ha-1 (stonith:fence_gce): Started hana-ha-1w1 STONITH-hana-ha-1w1 (stonith:fence_gce): Started hana-ha-2 STONITH-hana-ha-2 (stonith:fence_gce): Started hana-ha-1 STONITH-hana-ha-2w1 (stonith:fence_gce): Started majority-maker STONITH-majority-maker (stonith:fence_gce): Started hana-ha-1w1 Master/Slave Set: msl_rsc_SAPHana_HA1_HDB00 [rsc_SAPHana_HA1_HDB00] rsc_SAPHana_HA1_HDB00 (ocf::heartbeat:SAPHanaController): Master hana-ha-1 (Monitoring) Slaves: [ hana-ha-1w1 hana-ha-2 hana-ha-2w1 ] Clone Set: rsc_SAPHanaTopology_HA1_HDB00-clone [rsc_SAPHanaTopology_HA1_HDB00] Started: [ hana-ha-1 hana-ha-1w1 hana-ha-2 hana-ha-2w1 ] Resource Group: g-primary hc_HA1_HDB00 (service:haproxy): Started hana-ha-1 rsc_ip_SAPHANA_HA1_HDB00 (ocf::heartbeat:IPaddr2): Started hana-ha-1 Node Attributes: Node hana-ha-1: hana_ha1_clone_state : PROMOTED hana_ha1_remoteHost : hana-ha-2 hana_ha1_roles : master1:master:worker:master hana_ha1_site : hana-ha-1 hana_ha1_srmode : syncmem hana_ha1_vhost : hana-ha-1 master-rsc_SAPHana_HA1_HDB00 : 150 Node hana-ha-1w1: hana_ha1_clone_state : DEMOTED hana_ha1_remoteHost : hana-ha-2w1 hana_ha1_roles : slave:slave:worker:slave hana_ha1_site : hana-ha-1 hana_ha1_srmode : syncmem hana_ha1_version : 2.00.052.00.1599235305 hana_ha1_vhost : hana-ha-1w1 master-rsc_SAPHana_HA1_HDB00 : -10000 Node hana-ha-2: hana_ha1_clone_state : DEMOTED hana_ha1_remoteHost : hana-ha-2w1 hana_ha1_roles : master1:master:worker:master hana_ha1_site : hana-ha-2 hana_ha1_srmode : syncmem hana_ha1_vhost : hana-ha-2 master-rsc_SAPHana_HA1_HDB00 : 100 Node hana-ha-2w1: hana_ha1_clone_state : DEMOTED hana_ha1_remoteHost : hana-ha-1 hana_ha1_roles : slave:slave:worker:slave hana_ha1_site : hana-ha-2 hana_ha1_srmode : syncmem hana_ha1_vhost : hana-ha-2w1 master-rsc_SAPHana_HA1_HDB00 : -12200 Node majority-maker: hana_ha1_srmode : syncmem
Se sono presenti risorse del cluster non riuscite, potrebbe essere necessario eseguire il comando successivo:
pcs resource cleanup
Test del 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.
Esegui il backup del sistema prima del test.
Puoi simulare un errore in diversi modi, ad esempio:
HDB stop
HDB kill
reboot
(sul nodo attivo)ip link set eth0 down
per le istanze con una singola interfaccia di reteiptables ... DROP
per le istanze con più interfacce di reteecho c > /proc/sysrq-trigger
Queste istruzioni utilizzano ip link set eth0 down
o iptables
per simulare un'interruzione della rete tra i due host del cluster. Utilizza il comando ip link
su un'istanza con una singola interfaccia di rete e il comando iptables
su istanze con una o più interfacce di rete. Il test convalida sia il failover sia il fencing. Se le tue istanze hanno più interfacce di rete definite, utilizza il comando iptables
sull'host secondario per eliminare il traffico in entrata e in uscita in base all'IP utilizzato dall'host principale per la comunicazione del cluster, simulando così una perdita di connessione di rete con l'host principale.
Nell'host attivo, come utente root, metti offline l'interfaccia di rete:
#
ip link set eth0 downIn alternativa, se sono attive più interfacce di rete, utilizza
iptables
sull'iptables
sull'host secondario:#
iptables -A INPUT -s PRIMARY_CLUSTER_IP -j DROP; iptables -A OUTPUT -d PRIMARY_CLUSTER_IP -j DROPRiconnettiti a uno degli host utilizzando SSH e passa all'utente root.
Inserisci
pcs 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 name: hana-ha-cluster Stack: corosync Current DC: hana-ha-vm-2 (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum Last updated: Wed Jun 17 01:04:36 2020 Last change: Wed Jun 17 01:03:58 2020 by root via crm_attribute on hana-ha-vm-2 2 nodes configured 8 resources configured Online: [ hana-ha-vm-1 hana-ha-vm-2 hana-ha-vm-1w1 hana-ha-vm-2w1] Full list of resources: STONITH-hana-ha-vm-1 (stonith:fence_gce): Started hana-ha-vm-2 STONITH-hana-ha-vm-2 (stonith:fence_gce): Started hana-ha-vm-1 STONITH-hana-ha-vm-1w1 (stonith:fence_gce): Started hana-ha-vm-2w1 STONITH-hana-ha-vm-1w1 (stonith:fence_gce): Started hana-ha-vm-mm STONITH-hana-ha-vm-mm (stonith:fence_gce): Started hana-ha-vm-1w1 Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22] Started: [ hana-ha-vm-1 hana-ha-vm-2 hana-ha-vm-1w1 hana-ha-vm-2w1 Stopped: [ hana-ha-vm-mm ] ] Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22] Masters: [ hana-ha-vm-2 ] Slaves: [ hana-ha-vm-1 hana-ha-vm-1w1 hana-ha-vm-2w1 Stopped: [ hana-ha-vm-mm ] ] Resource Group: g-primary rsc_healthcheck_HA1 (service:haproxy): Started hana-ha-vm-2 rsc_vip_HA1_22 (ocf::heartbeat:IPaddr2): Started hana-ha-vm-2 Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled
Risoluzione dei problemi
Per risolvere i problemi relativi alle configurazioni ad alta disponibilità per SAP HANA su RHEL, consulta Risoluzione dei problemi relativi alle configurazioni ad alta disponibilità per SAP.
Ricevere assistenza per SAP HANA su RHEL
Se hai bisogno di aiuto per risolvere un problema con i cluster ad alta disponibilità per SAP HANA su RHEL, raccogli le informazioni di diagnostica richieste e contatta l'assistenza clienti Google Cloud. Per ulteriori informazioni, consulta Informazioni diagnostiche sui cluster ad alta disponibilità su RHEL.
Assistenza
Per problemi relativi all' Google Cloud infrastruttura o ai servizi, 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 Google Cloud
problema di infrastruttura, lo trasferisce al componenteGoogle 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'Google Cloud infrastruttura e i servizi 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
- Nota SAP 2456406 - SAP on Google Cloud Platform: Support Prerequisites (è richiesto un account utente SAP)
Connessione a SAP HANA
Se le VM host non hanno un indirizzo IP esterno per SAP HANA, puoi connetterti alle istanze SAP HANA solo tramite l'istanza bastione utilizzando SSH o tramite il server Windows tramite SAP HANA Studio.
Per connetterti a SAP HANA tramite l'istanza bastion, connettiti all'host bastion e poi alle istanze SAP HANA utilizzando un client SSH di tua scelta.
Per connetterti al database SAP HANA tramite SAP HANA Studio, utilizza un client desktop remoto per connetterti all'istanza Windows Server. Dopo la connessione, installa manualmente SAP HANA Studio e accedi al tuo database SAP HANA.
Attività di post-deployment
Dopo aver completato il deployment, completa i passaggi che seguono:
Modifica le password temporanee per l'amministratore di sistema SAP HANA e per il superutente del database. Ad esempio:
sudo passwd SID_LCadm
Per informazioni di SAP sulla modifica della password, vedi Reimpostare la password utente SYSTEM del database di sistema.
Prima di utilizzare l'istanza SAP HANA, configura e esegui il backup del nuovo database SAP HANA.
Se il sistema SAP HANA è dipiegato su un'interfaccia di rete VirtIO, ti consigliamo di assicurarti che il valore del parametro TCP
/proc/sys/net/ipv4/tcp_limit_output_bytes
sia impostato su1048576
. Questa modifica contribuisce a migliorare la velocità effettiva complessiva della rete sull'interfaccia di rete VirtIO senza influire sulla latenza della rete.
Per ulteriori informazioni, vedi:
Passaggi successivi
Per ulteriori informazioni, consulta la seguente risorsa:
- Installazione e configurazione di un cluster ad alta disponibilità Red Hat Enterprise Linux 7.6 (e versioni successive) su Google Compute Cloud
- Replicazione automatica del sistema SAP HANA in scale-up in un cluster pacemaker
- Criteri di assistenza per i cluster ad alta disponibilità RHEL - Requisiti generali per la recinzione/STONITH
- Guida alla pianificazione dell'alta disponibilità di SAP HANA
- Guida alla pianificazione del ripristino di emergenza di SAP HANA
- Per ulteriori informazioni sull'amministrazione e sul monitoraggio delle VM, consulta la Guida alle operazioni di SAP HANA.