Questa guida illustra come eseguire il deployment e configurare un ambiente Red Hat Enterprise Linux (RHEL) cluster ad alta disponibilità per SAP HANA 1.0 SPS 12 o versioni successive di scalabilità verticale su Google Cloud.
Questa guida include i passaggi per:
- Configura un bilanciatore del carico di rete passthrough interno per reinstradare il traffico nella evento di errore
- Configurazione di un cluster Pacemaker on RHEL per gestire il SAP sistemi e altre risorse durante un failover
Questa guida include anche i passaggi per configurare la replica di sistema SAP HANA, ma consulta la documentazione SAP per le istruzioni definitive.
Per eseguire il deployment di un sistema SAP HANA senza un cluster Linux ad alta disponibilità o un nodo in standby. utilizza la guida al deployment di SAP HANA.
Per configurare un cluster ad alta disponibilità per SAP HANA su SUSE Linux Enterprise Server (SLES), consulta la guida alla configurazione dei cluster ad alta disponibilità per lo scale up di SAP HANA su SLES.
Questa guida è rivolta agli utenti avanzati di SAP HANA che hanno familiarità con Configurazioni Linux ad alta disponibilità per SAP HANA.
Il sistema di cui questa guida descrive il deployment
Seguendo questa guida, eseguirai il deployment di due istanze SAP HANA e configurerai un cluster ad alta disponibilità su RHEL. Esegui il deployment di ogni istanza SAP HANA su una VM Compute Engine in una zona diversa all'interno della stessa regione. Questa guida non tratta l'installazione di SAP NetWeaver con disponibilità elevata.
Il cluster di cui è stato eseguito il deployment include le seguenti funzioni e caratteristiche:
- Due VM host, ciascuna con un'istanza di SAP HANA
- Replica del sistema SAP HANA sincrona.
- Gestore delle risorse del cluster ad alta disponibilità Pacemaker.
- Un meccanismo di scherma STONITH.
- Riavvio automatico dell'istanza non riuscita come nuova istanza secondaria.
Questa guida ti consente di utilizzare i modelli Cloud Deployment Manager 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 viene utilizzato SAP HANA Studio 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 di 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 Guida alla pianificazione di SAP HANA e Guida alla pianificazione dell'alta disponibilità di SAP HANA.
- Tu o la tua organizzazione disponete di un account Google Cloud e avete creato un progetto per il deployment di SAP HANA. Per informazioni sulla creazione gli account e i progetti Google Cloud, vedi Configurazione dell'Account Google nella guida al deployment 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 Conformità e controlli di sovranità per SAP su Google Cloud.
Il supporto di installazione SAP HANA è archiviato in un bucket Cloud Storage che disponibili nel progetto e nella regione di deployment. Per informazioni su come caricare elementi multimediali di installazione SAP HANA in un bucket Cloud Storage, consulta Download di SAP HANA nel Guida al deployment di SAP HANA.
Se OS Login sia abilitato nei metadati di progetto, devi disabilitare OS Login temporaneamente fino al completamento del deployment. Per il deployment questa procedura configura le chiavi SSH nei metadati dell'istanza. Se l'accesso al sistema operativo è abilitato, le configurazioni delle chiavi SSH basate su metadati vengono e questo deployment non riesce. Al termine del deployment, puoi abilitare di nuovo OS Login.
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:
Creare una rete
Per motivi di sicurezza, crea una nuova rete. Puoi controllare chi ha accesso tramite l'aggiunta di regole firewall o l'utilizzo di un altro metodo di controllo dell'accesso.
Se il progetto ha una rete VPC predefinita, non utilizzarla. Crea invece una tua rete VPC in modo che le uniche regole firewall in vigore siano quelle che crei esplicitamente.
Durante il deployment, le istanze VM in genere richiedono l'accesso a internet per scaricare l'agente di Google Cloud per SAP. Se utilizzi uno dei cluster Linux certificati per SAP disponibili in Google Cloud, anche l'istanza VM richiede l'accesso a internet per registrare la licenza e accedere ai repository dei fornitori di sistemi operativi. Una configurazione con un NAT gateway e con i tag di rete VM supporta questo accesso, anche se le VM di destinazione non hanno e IP esterni.
Per configurare la rete:
Console
- Nella console Google Cloud, vai alla pagina Reti VPC.
- Fai clic su Crea rete VPC.
- Inserisci un nome per la rete.
Il nome deve rispettare le convenzione di denominazione. Le reti VPC utilizzano la convenzione di denominazione di Compute Engine.
- In Modalità di creazione subnet, scegli Personalizzata.
- Nella sezione Nuova subnet, specifica i seguenti parametri di configurazione per
subnet:
- Inserisci un nome per la subnet.
- Per Regione, seleziona la regione Compute Engine in cui vuoi creare la sottorete.
- Per Tipo di stack IP, seleziona IPv4 (stack singolo) e inserisci un IP
dell'intervallo di indirizzi
Formato CIDR,
ad esempio
10.1.0.0/24
.Si tratta della principale Intervallo IPv4 per la subnet. Se prevedi di aggiungere più di una subnet, assegnare intervalli IP CIDR non sovrapposti per ciascuna subnet nella rete. Tieni presente che ogni subnet e i relativi intervalli IP interni sono mappati a una singola regione.
- Fai clic su Fine.
- Per aggiungere altre subnet, fai clic su Aggiungi subnet e ripeti i passaggi precedenti. Puoi aggiungere altre subnet alla rete dopo averla creata.
- Fai clic su Crea.
gcloud
- Vai a Cloud Shell.
- Per creare una nuova rete in modalità subnet personalizzate, esegui:
gcloud compute networks create NETWORK_NAME --subnet-mode custom
Sostituisci
NETWORK_NAME
con il nome della nuova rete. Il nome deve rispettare la convenzione di denominazione. Le reti VPC utilizzano la convenzione di denominazione di Compute Engine.Specifica
--subnet-mode custom
per evitare di utilizzare la modalità automatica predefinita, crea automaticamente una subnet in ogni regione di Compute Engine. Per ulteriori informazioni, consulta la sezione Modalità di creazione subnet. - Crea una subnet e specifica la regione e l'intervallo IP:
gcloud compute networks subnets create SUBNETWORK_NAME \ --network NETWORK_NAME --region REGION --range RANGE
Sostituisci quanto segue:
SUBNETWORK_NAME
: il nome della nuova subnetNETWORK_NAME
: il nome della rete creata nel passaggio precedenteREGION
: la regione in cui vuoi la subnetRANGE
: l'intervallo di indirizzi IP, specificato in formato CIDR, ad esempio10.1.0.0/24
Se prevedi di aggiungere più di una subnet, assegna intervalli IP CIDR non sovrapposti per ogni subnet della rete. Tieni presente che ogni subnet e i relativi intervalli IP interni sono mappati a una singola regione.
- Se vuoi, ripeti il passaggio precedente e aggiungi altre sottoreti.
Configurazione di un gateway NAT
Se devi creare una o più VM senza indirizzi IP pubblici, devi utilizzare la rete Address Translation (NAT) per consentire alle VM di accedere a internet. Utilizza Cloud NAT, uno strumento Servizio gestito software-defined distribuito di Google Cloud che consente alle VM di inviare messaggi in uscita di pacchetti a Internet e riceveranno i corrispondenti pacchetti di risposta in entrata stabiliti. 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 a internet in modo sicuro senza un indirizzo IP pubblico.
aggiungi regole firewall
Per impostazione predefinita, una regola firewall implicita blocca le connessioni in entrata dall'esterno della rete Virtual Private Cloud (VPC). Per consentire le connessioni in entrata, configura una regola firewall per la tua VM. Dopo aver stabilito una connessione in entrata con una VM, il traffico è consentito in entrambe le direzioni su quella 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 del tuo 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 non sei sicuro dell'indirizzo IP da utilizzare, parla all'amministratore di rete della tua azienda.
- Comunicazione tra le VM nella sottorete SAP HANA, inclusa la comunicazione tra i nodi di un sistema SAP HANA scalabile o tra il server di database e i server delle applicazioni in un'architettura a tre livelli. Puoi abilitare la comunicazione tra le VM creando una regola firewall per consentire il traffico che ha origine all'interno della subnet.
Per creare una regola firewall:
Console
Nella console Google Cloud, vai alla pagina Firewall della rete VPC.
Nella parte superiore della pagina, fai clic su Crea regola firewall.
- Nel campo Rete, seleziona la rete in cui si trova la VM individuarlo.
- Nel campo Destinazioni, specifica le risorse di Google Cloud a cui si applica questa regola. Ad esempio, specifica Tutte le istanze nella rete. Oppure per limitare a istanze specifiche su Google Cloud, inserisci i tag in Tag di destinazione specificati.
- Nel campo Filtro origine, seleziona una delle seguenti opzioni:
- Intervalli IP per consentire il traffico in entrata da indirizzi IP specifici. Specifica l'intervallo di indirizzi IP nel campo Intervalli IP di origine.
- Subnet per consentire il traffico in entrata da una determinata una subnet. Specifica il nome della subnet nel seguente Subnet. Puoi utilizzare questa opzione per consentire l'accesso a le VM in una configurazione a 3 livelli o scale out.
- Nella sezione Protocolli e porte, seleziona Protocolli e porte specificati
porte e inserisci
tcp:PORT_NUMBER
.
Fai clic su Crea per creare la regola firewall.
gcloud
Crea una regola firewall utilizzando questo comando:
$
gcloud compute firewall-rules create FIREWALL_NAME
--direction=INGRESS --priority=1000 \
--network=NETWORK_NAME --action=ALLOW --rules=PROTOCOL:PORT \
--source-ranges IP_RANGE --target-tags=NETWORK_TAGS
Deployment delle VM e di SAP HANA
Prima di iniziare a configurare il cluster ad alta disponibilità, definisci ed esegui il deployment delle istanze VM e dei sistemi SAP HANA che fungono da nodi principali e secondari nel cluster ad alta disponibilità.
Per definire ed eseguire il deployment dei sistemi, utilizza lo stesso modello Cloud Deployment Manager impiegato per eseguire il deployment di un sistema SAP HANA nella guida al deployment di SAP HANA.
Tuttavia, per eseguire il deployment di due sistemi anziché uno, devi aggiungere del secondo sistema al file di configurazione copiando di incollare la definizione del primo sistema. Dopo aver creato il secondo devi modificare i nomi delle risorse e delle istanze seconda definizione. Per evitare un errore a livello di zona, specifica nella stessa regione. Tutti gli altri valori delle proprietà nelle due definizioni rimangono invariati.
Una volta eseguito il deployment dei sistemi SAP HANA, puoi definire e configurare nel cluster ad alta disponibilità.
Le istruzioni riportate di seguito utilizzano Cloud Shell, ma sono applicabili in generale a Google Cloud CLI.
Conferma che le quote attuali per risorse come dischi permanenti e Le CPU sono sufficienti per i sistemi SAP HANA che stai per installare. Se le quote sono insufficienti, il deployment non va a buon fine. Per la quota SAP HANA vedi Considerazioni su prezzi e quote per SAP HANA.
Apri Cloud Shell o, se hai installato gcloud CLI sulla workstation locale, apri un terminale.
Scarica il modello di file di configurazione
template.yaml
per SAP HANA ad alta disponibilità alla tua directory di lavoro inserendo quanto segue in Cloud Shell o in gcloud CLI:wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/template.yaml
Se vuoi, rinomina il file
template.yaml
per identificarne la configurazione definisce.Apri il file
template.yaml
nell'editor di codice di Cloud Shell o, se utilizzi gcloud CLI, l'editor di testo che preferisci.Per aprire l'editor di codice di Cloud Shell, fai clic sull'icona a forma di matita nella nell'angolo in alto a destra della finestra del terminale Cloud Shell.
Nel file
template.yaml
, completa la definizione del sistema SAP HANA principale. Specifica i valori delle proprietà sostituendo il tag le parentesi quadre e i relativi contenuti con i valori relativi alla tua installazione. La sono descritte nella tabella seguente.Per creare le istanze VM senza installare SAP HANA, elimina o commenta tutte le righe che iniziano con
sap_hana_
.Proprietà Tipo di dati Descrizione tipo Stringa Specifica la posizione, il tipo e la versione Modello di Deployment Manager da utilizzare durante il deployment.
Il file YAML include due specifiche
type
, una delle quali è commentata. La specificatype
attiva per impostazione predefinita specifica la versione del modello comelatest
. La specificatype
che è oggetto di commenti specifica una specifica versione del modello con un timestamp.Se vuoi che tutti i tuoi implementazioni utilizzino la stessa versione del modello, utilizza la specifica
type
che include il timestamp.instanceName
Stringa Il nome dell'istanza VM attualmente in fase di definizione. Specifica nomi diversi nei campi principali e secondari Definizioni delle VM. I nomi devono essere specificati con lettere minuscole, numeri o trattini. instanceType
Stringa Il tipo di macchina virtuale Compute Engine su cui devi eseguire SAP HANA. Se hai bisogno di un tipo di VM personalizzato, specifica un tipo di VM predefinito con un numero di vCPU più vicino a quello di cui hai bisogno, pur essendo più grande. Dopo il deployment completa, modifica il numero di vCPU e la quantità memoria di Google. zone
Stringa La zona Google Cloud in cui eseguire il deployment della VM che stai definendo. Specifica zone diverse nella stessa regione per le definizioni HANA principali e secondarie. Le zone devono trovarsi nella stessa regione selezionato per la subnet. subnetwork
Stringa Il nome della subnet creata in un passaggio precedente. Se esegui il deployment in un VPC condiviso, specifica questo valore come [SHAREDVPC_PROJECT]/[SUBNETWORK]
. Ad esempio,myproject/network1
.linuxImage
Stringa Il nome dell'immagine o della famiglia di immagini del sistema operativo Linux che utilizzi con SAP HANA. Per specificare una famiglia di immagini, aggiungi il prefisso family/
al nome della famiglia. Ad esempio,family/rhel-7-6-sap-ha
. Per specificare un'immagine specifica, indica solo il nome dell'immagine. Per l'elenco delle immagini e delle famiglie disponibili, consulta la sezione Immagini nella console Google Cloud.linuxImageProject
Stringa Il progetto Google Cloud che contiene l'immagine che vuoi utilizzare. Questo potrebbe essere un tuo progetto o un'immagine Google Cloud progetto, ad esempio rhel-sap-cloud
. Per ulteriori informazioni sui progetti di immagini Google Cloud, consulta la pagina Immagini della documentazione di Compute Engine.sap_hana_deployment_bucket
Stringa Il nome del bucket Google Cloud Storage nel tuo progetto che contiene i file di installazione e revisione SAP HANA che caricato in un passaggio precedente. Eventuali file di revisione dell'upgrade vengono applicati a SAP HANA durante il processo di deployment. sap_hana_sid
Stringa L'ID di sistema (SID) SAP HANA. L'ID deve essere composto da tre caratteri alfanumerici e deve iniziare con una lettera. Tutte le lettere devono essere maiuscole. sap_hana_instance_number
Numero intero Il numero di istanza, da 0 a 99, del sistema SAP HANA. La il valore predefinito è 0. sap_hana_sidadm_password
Stringa La password per amministratore del sistema operativo. Le password devono essere costituite da almeno 8 caratteri e includere almeno una lettera maiuscola, una lettera minuscola e un numero. sap_hana_system_password
Stringa La password per il superutente del database. Le password devono essere composte da almeno 8 caratteri e includerne almeno una lettera maiuscola, una lettera minuscola e un numero. sap_hana_sidadm_uid
Numero intero Il valore predefinito per l'ID utente SID_LCadm
è900
per evitare conflitti tra i gruppi creati dall'utente con SAP HANA. Se necessario, puoi impostare un valore diverso.sap_hana_sapsys_gid
Numero intero L'ID gruppo predefinito per sapsys è 79
. Se specifichi un valore superiore, puoi sostituirlo in base alle tue esigenze.sap_hana_scaleout_nodes
Numero intero Specifica 0
. Queste istruzioni sono per lo scale up di SAP HANA solo nei sistemi operativi.networkTag
Stringa Un tag di rete che rappresenta la tua istanza VM firewall o di routing. Se specifichi publicIP: No
e non specifichi un tag di rete, assicurati di fornire un altro mezzo di accesso a internet.nic_type
Stringa Facoltativo ma consigliato se disponibile per la macchina e la versione del sistema operativo di destinazione. Specifica l'interfaccia di rete da utilizzare con l'istanza VM. Puoi specificare il valore GVNIC
oVIRTIO_NET
. Per utilizzare un NIC virtuale Google (gVNIC), devi specifica un'immagine sistema operativo che supporti gVNIC come valore per la proprietàlinuxImage
. Per l'elenco delle immagini del sistema operativo, vedi Dettagli sul sistema operativo.Se non specifichi un valore per questa proprietà, l'interfaccia di rete viene selezionata automaticamente in base al tipo di macchina specificato per la proprietà
Questo argomento è disponibile nelle versioni dei modelli di Deployment ManagerinstanceType
.202302060649
o versioni successive.publicIP
Booleano Facoltativo. Determina se viene aggiunto un indirizzo IP pubblico dell'istanza VM. Il valore predefinito è Yes
.serviceAccount
Stringa Facoltativo. Specifica un account di servizio da utilizzare dalle VM host e dai programmi in esecuzione sulle VM host. Specifica all'indirizzo email dell'account di servizio. Ad esempio: svc-acct-name@project-id.iam.gserviceaccount.com Per impostazione predefinita, l'account di servizio predefinito in uso. Per ulteriori informazioni, vedi Gestione di identità e accessi per programmi SAP su Google Cloud. Crea la definizione del sistema SAP HANA secondario copiando il valore definizione del sistema principale SAP HANA e incollando la copia dopo la definizione principale del sistema SAP HANA. Guarda l'esempio che segue questi passaggi.
Nella definizione del sistema SAP HANA secondario, specifica valori diversi per il valore seguenti proprietà rispetto a quelle specificate nella definizione di sistema principale SAP HANA:
name
instanceName
zone
Crea le istanze:
gcloud deployment-manager deployments create DEPLOYMENT_NAME --config TEMPLATE_NAME.yaml
Il comando riportato sopra richiama Deployment Manager, che esegue il deployment delle VM, scarica il software SAP HANA dal bucket di archiviazione e installa SAP HANA, il tutto in base alle specifiche del file
template.yaml
.L'elaborazione del deployment prevede due fasi. Nella prima fase, Deployment Manager scrive il proprio stato nella console. Nella seconda fase, gli script di deployment scrivono il proprio stato in Cloud Logging.
Esempio di un file di configurazione template.yaml
completo
L'esempio seguente mostra un file di configurazione template.yaml
completato
che esegue il deployment di due VM
con un sistema SAP HANA installato.
Il file contiene le definizioni di due risorse da eseguire il deployment:
sap_hana_primary
e sap_hana_secondary
. Definizione di ogni risorsa
contiene le definizioni di una VM e di un'istanza SAP HANA.
La definizione della risorsa sap_hana_secondary
è stata creata copiando e incollando la prima definizione, quindi modificando i valori delle proprietà name
, instanceName
e zone
. Tutti gli altri valori delle proprietà nelle due definizioni delle risorse sono uguali.
Le proprietà networkTag
, serviceAccount
, sap_hana_sidadm_uid
e
sap_hana_sapsys_gid
provengono dalla sezione Opzioni avanzate del
modello del file di configurazione. Le proprietà sap_hana_sidadm_uid
e
sap_hana_sapsys_gid
sono incluse per mostrare i relativi valori predefiniti, che vengono utilizzati
perché le proprietà sono commentate.
resources: - name: sap_hana_primary type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py # # By default, this configuration file uses the latest release of the deployment # scripts for SAP on Google Cloud. To fix your deployments to a specific release # of the scripts, comment out the type property above and uncomment the type property below. # # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana/sap_hana.py # properties: instanceName: hana-ha-vm-1 instanceType: n2-highmem-32 zone: us-central1-a subnetwork: example-subnet-us-central1 linuxImage: family/rhel-8-1-sap-ha linuxImageProject: rhel-sap-cloud sap_hana_deployment_bucket: hana2-sp4-rev46 sap_hana_sid: HA1 sap_hana_instance_number: 22 sap_hana_sidadm_password: Tempa55word sap_hana_system_password: Tempa55word sap_hana_scaleout_nodes: 0 networkTag: cluster-ntwk-tag serviceAccount: limited-roles@example-project-123456.iam.gserviceaccount.com # sap_hana_sidadm_uid: 900 # sap_hana_sapsys_gid: 79 - name: sap_hana_secondary type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py # # By default, this configuration file uses the latest release of the deployment # scripts for SAP on Google Cloud. To fix your deployments to a specific release # of the scripts, comment out the type property above and uncomment the type property below. # # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana/sap_hana.py # properties: instanceName: hana-ha-vm-2 instanceType: n2-highmem-32 zone: us-central1-c subnetwork: example-subnet-us-central1 linuxImage: family/rhel-8-1-sap-ha linuxImageProject: rhel-sap-cloud sap_hana_deployment_bucket: hana2-sp4-rev46 sap_hana_sid: HA1 sap_hana_instance_number: 22 sap_hana_sidadm_password: Google123 sap_hana_system_password: Google123 sap_hana_scaleout_nodes: 0 networkTag: cluster-ntwk-tag serviceAccount: limited-roles@example-project-123456.iam.gserviceaccount.com # sap_hana_sidadm_uid: 900 # sap_hana_sapsys_gid: 79
Crea regole firewall che consentano l'accesso alle VM host
Se non l'hai già fatto, crea regole firewall che consentano l'accesso a ogni VM host dalle seguenti origini:
- A scopo di configurazione, la tua workstation locale, un bastion host o un server di jump
- Per l'accesso tra i nodi del cluster, le altre VM host nel cluster ad alta disponibilità
Quando crei regole firewall VPC, specifichi la rete
i tag definiti nel file di configurazione template.yaml
da designare
le VM host come target della regola.
Per verificare il deployment, definisci una regola per consentire le connessioni SSH sulla porta 22 da un bastion host o dalla tua workstation locale.
Per l'accesso tra i nodi del cluster, aggiungi una regola firewall che consenta a tutti di connessione su qualsiasi porta di altre VM nella stessa subnet.
Prima di procedere alla sezione successiva, assicurati che le regole del firewall per la verifica del deployment e per la comunicazione all'interno del cluster siano state create. Per le istruzioni, consulta Aggiungere regole firewall.
Verifica del deployment delle VM e di SAP HANA
Per verificare il deployment, controlla i log di deployment in Cloud Logging e i dischi e i servizi sulle VM degli host principali e secondari.
Nella console Google Cloud, apri Cloud Logging per monitorare l'installazione progressi e verificare la presenza di errori.
Filtra i log:
Esplora log
Nella pagina Esplora log, vai al riquadro Query.
Nel menu a discesa Risorsa, seleziona Globale e poi fai clic su Aggiungi.
Se non vedi l'opzione Globale, nell'editor query inserisci la seguente query:
resource.type="global" "Deployment"
Fai clic su Esegui query.
Visualizzatore log legacy
- Nella pagina Visualizzatore log legacy, dal menu del selettore di base, seleziona Globale come risorsa di logging.
Analizza i log filtrati:
- Se viene visualizzato
"--- Finished"
, significa che l'elaborazione del deployment è completata e puoi procedere al passaggio successivo. Se visualizzi un errore di quota:
Nella piattaforma IAM e Amministratore Quote aumenta le quote che non soddisfano I requisiti SAP HANA elencati nella Guida alla pianificazione di SAP HANA.
Nella pagina Deployment di Deployment Manager, elimina il deployment per ripulire le VM e i dischi permanenti dall'installazione non riuscita.
Esegui di nuovo il deployment.
- Se viene visualizzato
Controlla la configurazione delle VM e 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
. Su ogni VM, assicurati di vedere le directory/hana
, ad esempio/hana/data
.Filesystem Size Used Avail Use% Mounted on /dev/sda2 30G 4.0G 26G 14% / devtmpfs 126G 0 126G 0% /dev tmpfs 126G 0 126G 0% /dev/shm tmpfs 126G 17M 126G 1% /run tmpfs 126G 0 126G 0% /sys/fs/cgroup /dev/sda1 200M 9.7M 191M 5% /boot/efi /dev/mapper/vg_hana-shared 251G 49G 203G 20% /hana/shared /dev/mapper/vg_hana-sap 32G 240M 32G 1% /usr/sap /dev/mapper/vg_hana-data 426G 7.0G 419G 2% /hana/data /dev/mapper/vg_hana-log 125G 4.2G 121G 4% /hana/log /dev/mapper/vg_hanabackup-backup 512G 33M 512G 1% /hanabackup tmpfs 26G 0 26G 0% /run/user/900 tmpfs 26G 0 26G 0% /run/user/899 tmpfs 26G 0 26G 0% /run/user/1000
Passa all'utente amministratore SAP sostituendo
SID_LC
nel seguente con l'ID di sistema specificato nel file di configurazione modello. Utilizza il minuscolo per tutte le lettere.#
su - SID_LCadmAssicurati che i servizi SAP HANA, come
hdbnameserver
,hdbindexserver
e altri sono in esecuzione sull'istanza inserendo il seguente comando:>
HDB infoSe utilizzi RHEL per SAP 9.0 o versioni successive, assicurati che i pacchetti
chkconfig
ecompat-openssl11
siano installati nell'istanza VM.Per ulteriori informazioni di SAP, consulta Nota SAP 3108316 - Red Hat Enterprise Linux 9.x: installazione e configurazione .
Convalida l'installazione dell'agente di Google Cloud per SAP
Dopo aver eseguito il deployment di una VM e installato il sistema SAP, verifica che l'agente di Google Cloud per SAP funzioni correttamente.
Verifica che l'agente Google Cloud per SAP sia in esecuzione
Per verificare che l'agente sia in esecuzione:
Stabilisci una connessione SSH di un'istanza VM host.
Esegui questo comando:
systemctl status google-cloud-sap-agent
Se l'agente funziona correttamente, l'output contiene
active (running)
. Ad esempio:google-cloud-sap-agent.service - Google Cloud Agent for SAP Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2022-12-02 07:21:42 UTC; 4 days ago Main PID: 1337673 (google-cloud-sa) Tasks: 9 (limit: 100427) Memory: 22.4 M (max: 1.0G limit: 1.0G) CGroup: /system.slice/google-cloud-sap-agent.service └─1337673 /usr/bin/google-cloud-sap-agent
Se l'agente non è in esecuzione, riavvialo.
Verifica che l'agente host SAP stia ricevendo le metriche
Per verificare che le metriche dell'infrastruttura siano raccolte l'agente Google Cloud per SAP e inviato correttamente a SAP Host Agent. 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:
- Provider cloud:
Google Cloud Platform
- Accesso a monitoraggio avanzato:
TRUE
- Dettagli sul monitoraggio avanzato:
ACTIVE
- Provider cloud:
Configura il monitoraggio per SAP HANA
Se vuoi, puoi monitorare le tue istanze SAP HANA utilizzando l'agente di Google Cloud per SAP. Dalla versione 2.0, puoi configurare l'agente raccogliere le metriche di monitoraggio SAP HANA e inviarle a Cloud Monitoring. Cloud Monitoring consente di creare dashboard per visualizzare queste metriche, configurare avvisi basati su soglie delle metriche e altro ancora.
Per ulteriori informazioni sulla raccolta delle metriche di monitoraggio SAP HANA utilizzando di Google Cloud per SAP, vedi Raccolta delle metriche di monitoraggio di SAP HANA.
Abilita riavvio rapido 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 SAP HANA riduce i tempi di riavvio nel caso in cui SAP HANA termina, ma il sistema operativo rimane in esecuzione.
Come configurato dagli script di automazione forniti da Google Cloud,
le impostazioni del sistema operativo e del kernel supportano già il riavvio rapido di SAP HANA.
Devi definire il file system tmpfs
e configurare SAP HANA.
Per definire il file system tmpfs
e configurare SAP HANA, puoi seguire
i passaggi manuali o utilizzare lo script dell'automazione
Google Cloud fornisce per abilitare SAP HANA Fast Riavvia. Per maggiori informazioni
informazioni, vedi:
- Passaggi manuali: attivare il riavvio rapido di SAP HANA
- Passaggi automatici: attiva Fast Restart di SAP HANA
Per le istruzioni autorevoli complete per il riavvio rapido di SAP HANA, consulta la documentazione relativa all'opzione di riavvio rapido di SAP HANA.
Passaggi manuali
Configura il file system tmpfs
Una volta eseguito il deployment delle VM host
e dei sistemi SAP HANA di base,
devi creare e montare le directory per i NUMA nodi in tmpfs
file system in-app.
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 di nodo NUMA per ognuno 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 garantire che i punti di montaggio siano disponibili dopo un sistema operativo
esegui riavvio, 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 i limiti per l'utilizzo della memoria
Il file system tmpfs
può aumentare e diminuire dinamicamente.
Per limitare la memoria utilizzata dal file system tmpfs
, puoi impostare un limite di dimensioni per un volume del nodo NUMA con l'opzione size
.
Ad esempio:
mount tmpfsSID0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID
Puoi anche limitare l'utilizzo complessivo della memoria tmpfs
per tutti i nodi NUMA di una determinata istanza SAP HANA e di un determinato nodo del server impostando il parametro persistent_memory_global_allocation_limit
nella sezione [memorymanager]
del file global.ini
.
Configurazione SAP HANA per riavvio rapido
Per configurare SAP HANA per il riavvio rapido, aggiorna il file global.ini
e specificare le tabelle da archiviare
nella memoria permanente.
Aggiorna la sezione [persistence]
nel file global.ini
Configura la sezione [persistence]
nel file SAP HANA global.ini
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 corrisponde a m2-ultramem-208
. Se la tua esecuzione fosse attiva
m2-ultramem-416
, dovrai configurare otto volumi di memoria (0..7).
Riavvia SAP HANA dopo aver modificato il file global.ini
.
SAP HANA può ora utilizzare la località tmpfs
come spazio di memoria permanente.
Specifica le tabelle da archiviare nella memoria persistente
Specifica tabelle o partizioni di colonne specifiche da archiviare nella memoria permanente.
Ad esempio, per attivare la memoria persistente per una tabella esistente, esegui la query SQL:
ALTER TABLE exampletable persistent memory ON immediate CASCADE
Per modificare il valore predefinito per le nuove tabelle, aggiungi il parametro
table_default
nel file indexserver.ini
. Ad esempio:
[persistent_memory] table_default = ON
Per ulteriori informazioni su come controllare le colonne, le tabelle e le visualizzazioni di monitoraggio che forniscono informazioni dettagliate, consulta Memoria persistente SAP HANA.
Passaggi automatici
Lo script di automazione fornito da Google Cloud per abilitare
Riavvio rapido SAP HANA
apporta modifiche alle directory /hana/tmpfs*
, al file /etc/fstab
e
Configurazione SAP HANA. Quando esegui lo script, potresti dover eseguire passaggi aggiuntivi a seconda che si tratti del deployment iniziale del sistema SAP HANA o se stai ridimensionando la macchina a una dimensione NUMA diversa.
Per il deployment iniziale del sistema SAP HANA o per il ridimensionamento della macchina al fine di aumentare il numero di nodi NUMA, assicurati che SAP HANA sia in esecuzione durante l'esecuzione dello script di automazione fornito da Google Cloud per attivare il riavvio rapido di SAP HANA.
Quando redimensioni la macchina per ridurre il numero di nodi NUMA, assicurati che SAP HANA sia interrotta durante l'esecuzione dello script di automazione fornito da Google Cloud per attivare il riavvio rapido di SAP HANA. Dopo l'esecuzione dello script, devi aggiornare manualmente la configurazione di SAP HANA per completare la configurazione del riavvio rapido di SAP HANA. Per ulteriori informazioni, consulta la configurazione di SAP HANA per il riavvio rapido.
Per abilitare il riavvio rapido di SAP HANA, segui questi passaggi:
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 saperne di più su come contattare l'assistenza clienti, vedi Ottenere 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 il secret deve esistere nel progetto Google Cloud contenente la VM host in esecuzione in un'istanza Compute Engine.
sudo ./sap_lib_hdbfr.sh -h 'SID' -s SECRET_NAME
Sostituisci quanto segue:
SID
: specifica il SID in lettere maiuscole lettere. Ad esempio,AHA
.SECRET_NAME
: specifica il nome del secret che corrisponde alla password dell'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 Utente SYSTEM del database SAP HANA.
Se l'esecuzione iniziale è andata a buon fine, dovresti visualizzare un output simile al seguente:
INFO - Script is running in standalone mode ls: cannot access '/hana/tmpfs*': No such file or directory INFO - Setting up HANA Fast Restart for system 'TST/00'. INFO - Number of NUMA nodes is 2 INFO - Number of directories /hana/tmpfs* is 0 INFO - HANA version 2.57 INFO - No directories /hana/tmpfs* exist. Assuming initial setup. INFO - Creating 2 directories /hana/tmpfs* and mounting them INFO - Adding /hana/tmpfs* entries to /etc/fstab. Copy is in /etc/fstab.20220625_030839 INFO - Updating the HANA configuration. INFO - Running command: select * from dummy DUMMY "X" 1 row selected (overall time 4124 usec; server time 130 usec) INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_persistent_memory_volumes') = '/hana/tmpfs0/TST;/hana/tmpfs1/TST;' 0 rows affected (overall time 3570 usec; server time 2239 usec) INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistent_memory', 'table_unload_action') = 'retain'; 0 rows affected (overall time 4308 usec; server time 2441 usec) INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('persistent_memory', 'table_default') = 'ON'; 0 rows affected (overall time 3422 usec; server time 2152 usec)
(Facoltativo) Configura le chiavi SSH sulla VM principale e su quella secondaria
Le chiavi Secure Store (SSFS) SAP HANA devono essere sincronizzate tra nel cluster ad alta disponibilità. Per semplificare la sincronizzazione e consentire file di backup da copiare tra gli host nel cluster ad alta disponibilità, le istruzioni autorizzano le connessioni SSH dirette tra i due host.
È probabile che la tua organizzazione utilizzi delle linee guida che regolano la rete interna
le comunicazioni. Se necessario, al termine del deployment puoi rimuovere
i metadati dalle VM e le chiavi dalla directory authorized_keys
.
Se la configurazione di connessioni SSH dirette non è conforme alle linee guida dell'organizzazione, puoi sincronizzare le chiavi SSFS e trasferire i file utilizzando altri metodi, ad esempio:
- Trasferisci file di dimensioni ridotte tramite la tua workstation locale utilizzando le opzioni di menu Carica file e Scarica file di Cloud Shell. Consulta Gestire i file con Cloud Shell.
- Scambia file utilizzando un bucket Google Cloud Storage. Consulta la sezione Utilizzo degli oggetti nella documentazione di Cloud Storage.
- Utilizza l'agente Backint di Cloud Storage per SAP HANA per eseguire il backup e il ripristino dei database HANA. Consulta Agente Backint di Cloud Storage per SAP HANA.
- Utilizza una soluzione di archiviazione file come Filestore o NetApp Cloud Volumes Service per creare una cartella condivisa. Vedi Opzioni file server.
Per abilitare le connessioni SSH tra le istanze principali e secondarie, segui questi passaggi.
Nella VM host principale:
Accedi tramite SSH alla VM.
Genera una chiave SSH per l'utente che ha bisogno della connessione SSH da host a host. L'utente in genere sei tu.
$
ssh-keygenQuando richiesto, accetta i valori predefiniti premendo Invio.
Aggiorna i metadati della VM principale con sulla chiave SSH per la VM secondaria.
$
gcloud compute instances add-metadata secondary-host-name \ --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" \ --zone secondary-zoneAutorizza se stesso la VM principale
$
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Sulla VM host secondaria:
Accedi tramite SSH alla VM.
Generare una chiave SSH per l'utente che necessita della connessione SSH tra host e host.
$
ssh-keygenAggiorna i metadati della VM secondaria con le informazioni sulla chiave SSH per la VM principale.
$
gcloud compute instances add-metadata primary-host-name \ --metadata "ssh-keys=$(whoami):$(cat ~/.ssh/id_rsa.pub)" \ --zone primary-zoneAutorizza la VM secondaria a se stessa
$
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysVerifica che le chiavi SSH siano configurate correttamente aprendo una connessione SSH dal sistema secondario al sistema principale.
$
ssh primary-host-name
Nella VM host principale, conferma la connessione aprendo una connessione SSH alla VM host secondaria:
$
ssh secondary-host-name
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 ogni tenant.
Il modello di Deployment Manager utilizza /hanabackup/data/SID come directory di backup predefinita.
Per creare 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 dei database:
Per un sistema SAP HANA a database singolo e container:
>
hdbsql -t -u system -p SYSTEM_PASSWORD -i INST_NUM \ "backup data using file ('full')"L'esempio seguente mostra una risposta positiva 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 metodi che puoi utilizzare.
Nell'host principale come
SID_LCadm
, attiva il sistema replica:>
hdbnsutil -sr_enable --name=primary-host-nameNell'host secondario come
SID_LCadm
, interrompi SAP HANA:>
HDB stopNell'host principale, utilizzando lo stesso account utente usato per la configurazione Utilizza SSH tra le VM host, copia i file della chiave sull'host secondario. Per comodità, i comandi seguenti definiscono anche una variabile di ambiente per l'ID account utente:
$
sudo cp /usr/sap/SID/SYS/global/security/rsecssfs ~/rsecssfs -r$
myid=$(whoami)$
sudo chown ${myid} -R /home/"${myid}"/rsecssfs$
scp -r rsecssfs $(whoami)@secondary-host-name:rsecssfs$
rm -r /home/"${myid}"/rsecssfsNell'host secondario, con lo stesso utente del passaggio precedente:
Sostituisci i file di chiavi esistenti nelle directory rsecssfs con i file dell'host principale e imposta le autorizzazioni dei file per limitare l'accesso:
$
SAPSID=SID$
sudo rm /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/data/SSFS_"${SAPSID}".DAT$
sudo rm /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/key/SSFS_"${SAPSID}".KEY$
myid=$(whoami)$
sudo cp /home/"${myid}"/rsecssfs/data/SSFS_"${SAPSID}".DAT \ /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/data/SSFS_"${SAPSID}".DAT$
sudo cp /home/"${myid}"/rsecssfs/key/SSFS_"${SAPSID}".KEY \ /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/key/SSFS_"${SAPSID}".KEY$
sudo chown "${SAPSID,,}"adm:sapsys \ /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/data/SSFS_"${SAPSID}".DAT$
sudo chown "${SAPSID,,}"adm:sapsys \ /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/key/SSFS_"${SAPSID}".KEY$
sudo chmod 644 \ /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/data/SSFS_"${SAPSID}".DAT$
sudo chmod 640 \ /usr/sap/"${SAPSID}"/SYS/global/security/rsecssfs/key/SSFS_"${SAPSID}".KEYEsegui la pulizia dei file nella home directory.
$
rm -r /home/"${myid}"/rsecssfsCome
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:>
HDB start
Convalida della replica del sistema in corso...
Nell'host principale come SID_LCadm
, conferma che SAP
La replica del sistema HANA è 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
.
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) , talvolta definita fluttuante. Indirizzo IP, segue il sistema SAP HANA attivo. Il bilanciatore del carico instrada il traffico inviato al VIP alla VM che attualmente ospita il sistema SAP HANA attivo.
Apri Cloud Shell:
Prenota un indirizzo IP per l'IP virtuale. Questo è il Indirizzo IP utilizzato dalle applicazioni per accedere a SAP HANA. Se ometti il flag
--addresses
, un indirizzo IP nella subnet specificata scelti per te:$
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 all'esempio seguente:
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 dell'host master principale all'una e la VM dell'host master secondario all'altra:
$
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 privata intervallo, 49152-65535, per evitare conflitti con altri servizi. I valori di intervallo di controllo e di timeout sono leggermente più lunghi dei valori predefiniti in modo da aumentare la tolleranza di failover durante gli eventi di migrazione live 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 all'esempio seguente:
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 da Compute Engine
controlli di integrità, 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 l'integrità controlli:
$
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 principali 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 ulteriori informazioni sull'accesso tra regioni al tuo SAP HANA sistema ad alta disponibilità, vedi Bilanciamento del carico TCP/UDP interno.
Testa la configurazione del bilanciatore del carico
Anche se i gruppi di istanza di backend non verranno registrati come integri fino a puoi testare la configurazione del bilanciatore del carico configurando un listener che risponda ai controlli di integrità. Dopo la configurazione un listener, se il bilanciatore del carico è configurato correttamente, Lo stato dei gruppi di istanza di backend diventa integro.
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 il controllo di integrità
una porta.
Su entrambe le VM host, installa l'
socat
utility:$
sudo yum install -y socatAvvia un processo
socat
per ascoltare per 60 secondi sulla porta del 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 modifica temporaneamente il controllo di integrità in modo da usare la porta 22, che ha un listener in grado di rispondere al controllo dello stato 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 minuto o due.
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, reimposta il numero di porta del controllo di integrità originale numero di porta.
Configura 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 ad alta disponibilità, inclusi (è 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
- Replica automatizzata del sistema SAP HANA nello scale up in un cluster di pacemaker
Installa gli agenti del cluster su entrambi i nodi
Completa i seguenti passaggi su entrambi i nodi.
Come utente root, installa i componenti di Pacemaker:
#
yum -y install pcs pacemaker fence-agents-gce resource-agents-gcp resource-agents-sap-hana#
yum update -ySe utilizzi un'immagine RHEL per SAP fornita da Google, questi pacchetti sono già installati, ma potrebbero essere necessari alcuni aggiornamenti.
Imposta la password per l'utente
hacluster
, che viene installato come parte dei pacchetti:#
passwd haclusterSpecifica una password per
hacluster
quando richiesto.Nelle immagini RHEL fornite da Google Cloud, il servizio firewall del sistema operativo è attiva per impostazione predefinita. Configura il servizio firewall per consentire 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-vm-1 systemd[1]: Starting PCS GUI and remote configuration interface... Jun 13 21:17:05 hana-ha-vm-1 systemd[1]: Started PCS GUI and remote configuration interface.
Nel file
/etc/hosts
, aggiungi il nome host completo e l'IP interno di entrambi gli host nel cluster. Ad esempio:127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.0.40 hana-ha-vm-1.us-central1-a.c.example-project-123456.internal hana-ha-vm-1 # Added by Google 10.0.0.41 hana-ha-vm-2.us-central1-c.c.example-project-123456.internal hana-ha-vm-2 169.254.169.254 metadata.google.internal # Added by Google
Per ulteriori informazioni di Red Hat sulla configurazione del file
/etc/hosts
sui nodi del cluster RHEL, visita la pagina https://access.redhat.com/solutions/81123.
Crea il cluster
Con i privilegi di root su entrambi i nodi, autorizza l'utente
hacluster
. Fai clic sulla scheda la versione RHEL per vedere il comando:RHEL 8 e versioni successive
#
pcs host auth primary-host-name secondary-host-nameRHEL 7
#
pcs cluster auth primary-host-name secondary-host-nameQuando richiesto, inserisci il nome utente
hacluster
e la password impostata per l'utentehacluster
.Crea il cluster:
RHEL 8 e versioni successive
#
pcs cluster setup cluster-name primary-host-name secondary-host-nameRHEL 7
#
pcs cluster setup --name cluster-name primary-host-name secondary-host-name
Modifica le impostazioni predefinite di corosync.conf
Modifica il file /etc/corosync/corosync.conf
sull'host principale per impostare un punto di partenza più appropriato per testare la tolleranza ai guasti del cluster HA su Google Cloud.
Su entrambi gli host, utilizza il tuo editor di testo preferito per aprire
/etc/corosync/corosync.conf
file per la modifica:#
/etc/corosync/corosync.confSe
/etc/corosync/corosync.conf
è un nuovo file o è vuoto, puoi controllare la directory/etc/corosync/
per trovare un file di esempio da utilizzare come base per il file corosync.Nella sezione
totem
del file corosync.conf, aggiungi quanto segue con i valori suggeriti mostrati per la tua versione RHEL:RHEL 8 e versioni successive
transport: knet
token: 20000
token_retransmits_before_loss_const: 10
join: 60
max_messages: 20
Ad esempio:
totem { version: 2 cluster_name: hacluster secauth: off transport: knet token: 20000 token_retransmits_before_loss_const: 10 join: 60 max_messages: 20 } ...
RHEL 7
transport: udpu
token: 20000
token_retransmits_before_loss_const: 10
join: 60
max_messages: 20
Ad esempio:
totem { version: 2 cluster_name: hacluster secauth: off transport: udpu token: 20000 token_retransmits_before_loss_const: 10 join: 60 max_messages: 20 } ...
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 --all
Verifica che le nuove impostazioni di corosync siano attive nel cluster utilizzando l'utilità corosync-cmapctl:
#
corosync-cmapctl
Allestisci recinzioni
Le immagini RHEL fornite da Google Cloud includono un agente di fence_gce
fencing specifico per Google Cloud. Utilizzi fence_gce
per creare dispositivi di recinto per ogni VM host.
Per garantire la sequenza corretta di eventi dopo un'azione di recinzione, configura il sistema operativo in modo da ritardare il riavvio di Corosync dopo la recinzione di una VM. Modifica anche 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 il comando fence_gce -h
.
Crea le risorse del dispositivo di recinzione
Nell'host principale come utente root:
Crea un dispositivo di recinzione per ogni VM host:
#
pcs stonith create primary-fence-name fence_gce \ port=primary-host-name \ zone=primary-host-zone \ project=project-id \ pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30 \ op monitor interval="300s" timeout="120s" \ op start interval="0" timeout="60s"#
pcs stonith create secondary-fence-name fence_gce \ port=secondary-host-name \ zone=secondary-host-zone \ project=project-id \ pcmk_reboot_timeout=300 pcmk_monitor_retries=4 \ op monitor interval="300s" timeout="120s" \ op start interval="0" timeout="60s"Limita ogni dispositivo di recinzione all'altra VM host:
#
pcs constraint location primary-fence-name avoids primary-host-name#
pcs constraint location secondary-fence-name avoids secondary-host-name
Sull'host principale come root, testa il dispositivo di recinto secondario:
Arresta la VM host secondaria:
#
fence_gce -o off -n secondary-host-name --zone=secondary-host-zoneSe il comando va a buon fine, perdi la connettività con la VM host secondaria e questa viene visualizzata come interrotta nella pagina Istanze VM nella console Google Cloud. Potresti dover aggiornare la pagina.
Riavvia la VM host secondario:
#
fence_gce -o on -n secondary-host-name --zone=secondary-host-zone
Nell'host secondario, come utente root, testa il dispositivo di recinzione principale ripetendo i passaggi precedenti utilizzando i valori per l'host principale nei comandi.
Su uno degli host come utente root, controlla lo stato del cluster:
#
pcs statusLe risorse di recinzione vengono visualizzate nella sezione delle risorse dello stato del cluster, in modo simile all'esempio seguente:
[root@hana-ha-vm-2 ~]# pcs status Cluster name: hana-ha-cluster Stack: corosync Current DC: hana-ha-vm-1 (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum Last updated: Mon Jun 15 17:19:07 2020 Last change: Mon Jun 15 17:18:33 2020 by root via cibadmin on hana-ha-vm-1 2 nodes configured 2 resources configured Online: [ hana-ha-vm-1 hana-ha-vm-2 ] 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 Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled
Imposta un ritardo per il riavvio di Corosync
Crea un file drop-in
systemd
su entrambi gli host come root che ritarda 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 inserimento sia stato creato:
service corosync status
Dovresti vedere una riga per il file di inserimento, come mostrato nell' 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
Abilita gli hook del provider HA/RE SAP HANA
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 HA/RE SAP HANA richiedono SAP HANA 2.0 SPS 03 o un una versione più recente.
Completa i seguenti passaggi sia sul sito principale che su quello secondario:
Come
SID_LCadm
, interrompi SAP HANA:>
HDB stop
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/srHook execution_order = 1 [trace] ha_dr_saphanasr = info
Come root, crea un file di configurazione personalizzato nella directory
/etc/sudoers.d
eseguendo questo comando. Questo nuovo file di configurazione consenteSID_LCadm
utente per accedere agli attributi del nodo cluster quando viene chiamato il metodo hooksrConnectionChanged()
.>
sudo visudo -f /etc/sudoers.d/20-saphanaNel file
/etc/sudoers.d/20-saphana
, aggiungi il seguente testo:Sostituisci quanto segue:
SITE_A
: il nome del sito del server SAP HANA principaleSITE_B
: il nome del sito del server SAP HANA secondarioSID_LC
: l'SID deve essere specificato in lettere minuscole
crm_mon -A1 | grep site
come utente root sul server SAP HANA principale o secondario.Cmnd_Alias SITEA_SOK = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_A -v SOK -t crm_config -s SAPHanaSR Cmnd_Alias SITEA_SFAIL = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_A -v SFAIL -t crm_config -s SAPHanaSR Cmnd_Alias SITEB_SOK = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_B -v SOK -t crm_config -s SAPHanaSR Cmnd_Alias SITEB_SFAIL = /usr/sbin/crm_attribute -n hana_SID_LC_site_srHook_SITE_B -v SFAIL -t crm_config -s SAPHanaSR SID_LCadm ALL=(ALL) NOPASSWD: SITEA_SOK, SITEA_SFAIL, SITEB_SOK, SITEB_SFAIL Defaults!SITEA_SOK, SITEA_SFAIL, SITEB_SOK, SITEB_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 significa che la riga è un commento.Come
SID_LCadm
, avvia SAP HANA:>
HDB startNell'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_*
Configura le impostazioni predefinite del cluster
Configura soglie e stickiness della migrazione per determinare il numero di failover da tentare prima dell'errore e impostare il sistema in modo che tenti di riavviarlo l'host. Questo valore deve essere impostato su un solo nodo per essere applicato al cluster.
Come utente root su uno degli host, avvia il cluster:
#
pcs cluster start --all #start the clusterConfigura i valori predefiniti delle risorse:
#
pcs resource defaults resource-stickiness=1000#
pcs resource defaults migration-threshold=5000La proprietà
resource-stickiness
controlla la probabilità che un servizio rimanga dove si trova. Valori più alti rendono il servizio più fisso. 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 in un altro host. Il valore 5000 è un valore alto in modo da impedire il failover in situazioni di errore di breve durata.Puoi controllare le impostazioni predefinite della risorsa inserendo
pcs resource defaults
.Configura i valori predefiniti per il timeout delle operazioni delle risorse:
#
pcs resource op defaults timeout=600sPuoi controllare i valori predefiniti dell'operazione Risorsa 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 delle 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
:#
pcs resource create topology_resource_name SAPHanaTopology SID=SID \ InstanceNumber=inst_num \ op start timeout=600 \ op stop timeout=300 \ op monitor interval=10 timeout=600 \ clone clone-max=2 clone-node-max=1 interleave=trueDopo aver creato la risorsa, controlla la configurazione. Aggiungi
-clone
a il nome della risorsa per includere nella risposta le informazioni sul set di clone:RHEL 8 e versioni successive
#
pcs resource config topology_resource_name-cloneRHEL 7
#
pcs resource show topology_resource_name-cloneDovresti vedere un output simile al seguente:
Clone: SAPHanaTopology_HA1_22-clone Meta Attrs: clone-max=2 clone-node-max=1 interleave=true Resource: SAPHanaTopology_HA1_22 (class=ocf provider=heartbeat type=SAPHanaTopology) Attributes: InstanceNumber=22 SID=HA1 Operations: methods interval=0s timeout=5 (SAPHanaTopology_HA1_22-methods-interval-0s) monitor interval=10 timeout=600 (SAPHanaTopology_HA1_22-monitor-interval-10) reload interval=0s timeout=5 (SAPHanaTopology_HA1_22-reload-interval-0s) start interval=0s timeout=600 (SAPHanaTopology_HA1_22-start-interval-0s) stop interval=0s timeout=300 (SAPHanaTopology_HA1_22-stop-interval-0s)
Puoi anche controllare gli attributi del cluster utilizzando il comando crm_mon -A1
.
Crea la risorsa SAPHana
L'agente di risorse SAPHana 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 impostata sutrue
, registra automaticamente la prima primaria come secondaria DUPLICATE_PRIMARY_TIMEOUT scade dopo un takeover. Il valore predefinito èfalse
.Per un cluster multi-livello ad alta disponibilità SAP HANA, 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 multilivello.DUPLICATE_PRIMARY_TIMEOUT
, che imposta la differenza di tempo in secondi tra due timestamp principali se si verifica una situazione di doppio timestamp principale. La Il valore predefinito è7200
.PREFER_SITE_TAKEOVER
, che determina se i riavvii locali vengono già effettuati in precedenza 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 root su uno dei due host, crea la risorsa SAP HANA:
RHEL 8 e versioni successive
#
pcs resource create sap_hana_resource_name SAPHana SID=SID \ InstanceNumber=inst_num \ PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true \ op start timeout=3600 \ op stop timeout=3600 \ op monitor interval=61 role="Slave" timeout=700 \ op monitor interval=59 role="Master" timeout=700 \ op promote timeout=3600 \ op demote timeout=3600 \ promotable meta notify=true clone-max=2 clone-node-max=1 interleave=trueRHEL 7
#
pcs resource create sap_hana_resource_name SAPHana SID=SID \ InstanceNumber=inst_num \ PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true \ op start timeout=3600 \ op stop timeout=3600 \ op monitor interval=61 role="Slave" timeout=700 \ op monitor interval=59 role="Master" timeout=700 \ op promote timeout=3600 \ op demote timeout=3600 \ master meta notify=true clone-max=2 clone-node-max=1 interleave=trueControlla gli attributi della risorsa risultanti:
RHEL 8 e versioni successive
#
pcs resource config sap_hana_resource_nameRHEL 7
#
pcs resource show sap_hana_resource_nameDovresti vedere un output simile all'esempio seguente:
Resource: SAPHana_HA1_22 (class=ocf provider=heartbeat type=SAPHana) Attributes: AUTOMATED_REGISTER=true DUPLICATE_PRIMARY_TIMEOUT=7200 InstanceNumber=22 PREFER_SITE_TAKEOVER=true SID=HA1 Meta Attrs: clone-max=2 clone-node-max=1 interleave=true notify=true Operations: demote interval=0s timeout=3600 (SAPHana_HA1_22-demote-interval-0s) methods interval=0s timeout=5 (SAPHana_HA1_22-methods-interval-0s) monitor interval=61 role=Slave timeout=700 (SAPHana_HA1_22-monitor-interval-61) monitor interval=59 role=Master timeout=700 (SAPHana_HA1_22-monitor-interval-59) promote interval=0s timeout=3600 (SAPHana_HA1_22-promote-interval-0s) reload interval=0s timeout=5 (SAPHana_HA1_22-reload-interval-0s) start interval=0s timeout=3600 (SAPHana_HA1_22-start-interval-0s) stop interval=0s timeout=3600 (SAPHana_HA1_22-stop-interval-0s)
Dopo l'avvio della risorsa, controlla gli attributi del nodo per verificare stato attuale dei database SAP HANA sui nodi:
#
crm_mon -A1Dovresti vedere un output simile al seguente:
Stack: corosync Current DC: hana-ha-vm-2 (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum Last updated: Tue Jun 16 20:07:51 2020 Last change: Tue Jun 16 20:07:26 2020 by root via crm_attribute on hana-ha-vm-1 2 nodes configured 6 resources configured Online: [ hana-ha-vm-1 hana-ha-vm-2 ] Active 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 Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22] Started: [ hana-ha-vm-1 hana-ha-vm-2 ] Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22] Masters: [ hana-ha-vm-1 ] Slaves: [ hana-ha-vm-2 ] Node Attributes: * Node hana-ha-vm-1: + hana_ha1_clone_state : PROMOTED + hana_ha1_op_mode : logreplay + hana_ha1_remoteHost : hana-ha-vm-2 + hana_ha1_roles : 4:P:master1:master:worker:master + hana_ha1_site : hana-ha-vm-1 + hana_ha1_srmode : syncmem + hana_ha1_sync_state : PRIM + hana_ha1_version : 1.00.122.27.1568902538 + hana_ha1_vhost : hana-ha-vm-1 + lpa_ha1_lpt : 1592338046 + master-SAPHana_HA1_22 : 150 * Node hana-ha-vm-2: + hana_ha1_clone_state : DEMOTED + hana_ha1_op_mode : logreplay + hana_ha1_remoteHost : hana-ha-vm-1 + hana_ha1_roles : 4:S:master1:master:worker:master + hana_ha1_site : hana-ha-vm-2 + hana_ha1_srmode : syncmem + hana_ha1_sync_state : SOK + hana_ha1_version : 1.00.122.27.1568902538 + hana_ha1_vhost : hana-ha-vm-2 + lpa_ha1_lpt : 30 + master-SAPHana_HA1_22 : 100
Crea una risorsa indirizzo IP virtuale
Devi creare una risorsa cluster per l'IP virtuale. La risorsa VIP è è localizzato sul sistema operativo principale e non è instradabile 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 resource_name \
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
Crei vincoli per definire quali servizi devono essere avviati per primi e quali devono essere eseguiti insieme sullo stesso host. Ad esempio, l'indirizzo IP deve trovarsi sullo stesso host dell'istanza HANA principale.
Definisci la limitazione dell'ordine di inizio:
RHEL 8 e versioni successive
#
pcs constraint order topology_resource_name-clone \ then sap_hana_resource_name-clone symmetrical=falseRHEL 7
#
pcs constraint order topology_resource_name-clone \ then sap_hana_resource_name-master symmetrical=falseLa specifica di
symmetrical=false
significa che il vincolo si applica a all'avvio e non all'arresto.Tuttavia, poiché hai impostato
interleave=true
per questi in un passaggio precedente, i processi possono essere avviati in parallelo. In altre parole, puoi avviare SAPHana su qualsiasi nodo non appena SAPHanaTopology in esecuzione.Controlla i vincoli:
#
pcs constraintDovresti vedere un output simile al seguente:
Location Constraints: Resource: STONITH-hana-ha-vm-1 Disabled on: Node: hana-ha-vm-1 (score:-INFINITY) Resource: STONITH-hana-ha-vm-2 Disabled on: Node: hana-ha-vm-2 (score:-INFINITY) Ordering Constraints: start SAPHanaTopology_HA1_22-clone then start SAPHana_HA1_22-master (kind:Mandatory) (non-symmetrical) Colocation Constraints: Ticket Constraints:
Installa listener e crea una risorsa per il controllo di integrità
Per configurare una risorsa di controllo di integrità, devi prima installare i listener.
Installa un listener
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. Installa un listener TCP come root sull'istanza master nei sistemi primario e secondario. Queste istruzioni installare e utilizzare 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 che hai utilizzato quando hai creato 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 root, avvia il servizio per verificare che sia corretto configurato:
#
systemctl start haproxy.serviceNella pagina Bilanciatore del carico della console Google Cloud, fai clic su Voce del bilanciatore del carico:
Pagina Bilanciamento del carico
Nella sezione Backend della pagina Dettagli bilanciatore del carico, se il servizio HAProxy sia attivo su entrambi gli host, vedrai
1/1
Colonna Integro di ogni voce del gruppo di istanze.Su ogni host, interrompi il servizio HAProxy:
#
systemctl stop haproxy.serviceDopo aver interrotto il servizio HAProxy su ciascun host,
0/1
viene visualizzato nella Colonna Integro di ogni gruppo di istanze.In seguito, quando viene configurato il controllo di integrità, il cluster riavvia listener sul nodo master.
Crea la risorsa di controllo di integrità
Su entrambi gli host come root, crea una risorsa per il controllo di integrità Servizio HAProxy:
#
pcs resource create healthcheck_resource_name service:haproxy op monitor interval=10s timeout=20sVerifica che il servizio di controllo di integrità sia attivo sulla stessa host come istanza SAP HANA master e risorsa VIP:
#
pcs statusSe la risorsa di controllo dell'integrità non è sull'host principale, spostala con il seguente comando:
#
pcs resource move healthcheck_resource_name target_host_name#
pcs resource clear healthcheck_resource_nameIl comando
pcs resource clear
lascia la risorsa nella nuova posizione, ma rimuove il vincolo di località indesiderato creato dal comandopcs resource move
.Nello stato, la sezione delle risorse dovrebbe essere simile alla seguente: esempio:
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 Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22] Started: [ hana-ha-vm-1 hana-ha-vm-2 ] Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22] Masters: [ hana-ha-vm-1 ] Slaves: [ hana-ha-vm-2 ] rsc_vip_HA1_22 (ocf::heartbeat:IPaddr2): Started hana-ha-vm-1 rsc_healthcheck_HA1 (service:haproxy): Started hana-ha-vm-2
Raggruppa le risorse VIP e di controllo di integrità:
#
pcs resource group add rsc-group-name healthcheck_resource_name vip_resource_nameNello stato del cluster, la sezione delle risorse dovrebbe essere simile all'esempio riportato di seguito:
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 Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22] Started: [ hana-ha-vm-1 hana-ha-vm-2 ] Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22] Masters: [ hana-ha-vm-1 ] Slaves: [ hana-ha-vm-2 ] Resource Group: g-primary rsc_healthcheck_HA1 (service:haproxy): Started hana-ha-vm-1 rsc_vip_HA1_22 (ocf::heartbeat:IPaddr2): Started hana-ha-vm-1
Crea una limitazione che localizzi il nuovo gruppo nello stesso nodo dell'istanza SAP HANA principale.
RHEL 8 e versioni successive
#
pcs constraint colocation add rsc-group-name with master sap_hana_resource_name-clone 4000RHEL 7
#
pcs constraint colocation add rsc-group-name with master sap_hana_resource_name-master 4000I vincoli finali dovrebbero essere simili all'esempio seguente:
# pcs constraint Location Constraints: Resource: STONITH-hana-ha-vm-1 Disabled on: Node: hana-ha-vm-1 (score:-INFINITY) Resource: STONITH-hana-ha-vm-2 Disabled on: Node: hana-ha-vm-2 (score:-INFINITY) Ordering Constraints: start SAPHanaTopology_HA1_22-clone then start SAPHana_HA1_22-master (kind:Mandatory) (non-symmetrical) Colocation Constraints: g-primary with SAPHana_HA1_22-master (score:4000) (rsc-role:Started) (with-rsc-role:Master) Ticket Constraints:
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, tra cui:
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 una
un'interruzione di rete tra i due host nel 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, utilizzando
iptables
sulla host secondario:#
iptables -A INPUT -s PRIMARY_CLUSTER_IP -j DROP; iptables -A OUTPUT -d PRIMARY_CLUSTER_IP -j DROPRiconnettiti a uno dei due host tramite 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 in cluster, quindi l'host arrestato si riavvierà e assumerà il ruolo di 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 ] 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 Clone Set: SAPHanaTopology_HA1_22-clone [SAPHanaTopology_HA1_22] Started: [ hana-ha-vm-1 hana-ha-vm-2 ] Master/Slave Set: SAPHana_HA1_22-master [SAPHana_HA1_22] Masters: [ hana-ha-vm-2 ] Slaves: [ hana-ha-vm-1 ] 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
Configura HANA Active/Active (lettura abilitata)
A partire da SAP HANA 2.0 SPS1, puoi configurare HANA Active/Active (lettura abilitata) in un cluster Pacemaker. Questa opzione è facoltativa.
Per configurare HANA Active/Active (lettura abilitata) in un cluster Pacemaker, completa i seguenti passaggi.
Configura il supporto per il failover di Cloud Load Balancing per l'host secondario
Il servizio bilanciatore del carico di rete passthrough interno con supporto del failover instrada il traffico all'host secondario in un cluster SAP HANA in base a un servizio di controllo di integrità.
Per configurare il supporto del failover per l'host secondario, segui questi passaggi:
Apri Cloud Shell:
Prenota un indirizzo IP per l'IP virtuale eseguendo questo comando.
L'indirizzo IP virtuale (VIP) segue il sistema SAP HANA secondario. Questo è L'indirizzo IP utilizzato dalle applicazioni per accedere all'istanza SAP HANA secondaria di un sistema operativo completo. Il bilanciatore del carico instrada il traffico inviato al VIP alla VM che attualmente ospita il sistema secondario.
Se ometti il flag
--addresses
nel seguente comando, verrà restituito nella subnet specificata viene scelto automaticamente. Per ulteriori informazioni sulla prenotazione di un IP statico, consulta Prenotare un indirizzo IP interno statico.$
gcloud compute addresses create secondary-vip-name \ --region cluster-region --subnet cluster-subnet \ --addresses secondary-vip-addressCrea un controllo di integrità di Compute Engine eseguendo questo comando.
Per la porta utilizzata controllo di integrità, scegli una porta nell'intervallo privato, 49152-65535, per evitare conflitti con altri servizi. La porta deve essere diversa da quella configurata per il controllo di integrità utilizzato per l'accesso al sistema principale HANA. I valori di intervallo di controllo e timeout sono leggermente più lunghi rispetto ai valori 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 secondary-health-check-name \ --port=secondary-healthcheck-port-num \ --proxy-header=NONE --check-interval=10 --timeout=10 --unhealthy-threshold=2 \ --healthy-threshold=2Configura il bilanciatore del carico e il gruppo di failover eseguendo quanto segue tramite comandi SQL.
Qui devi creare un servizio di backend aggiuntivo e utilizzare la stessa istanza creati in precedenza per il servizio di backend dietro l'interfaccia Bilanciatore del carico TCP/UDP per il tuo sistema principale SAP HANA.
Crea il servizio di backend del bilanciatore del carico:
$
gcloud compute backend-services create secondary-backend-service-name \ --load-balancing-scheme internal \ --health-checks secondary-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 principali al servizio di backend:
$
gcloud compute backend-services add-backend secondary-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 secondary-backend-service-name \ --instance-group secondary-ig-name \ --instance-group-zone secondary-zone \ --failover \ --region cluster-regionCreare una regola di forwarding.
Per il flag dell'indirizzo IP, specifica l'indirizzo IP che hai prenotato per il VIP. Se hai bisogno di accedere al sistema secondario HANA dall'esterno del regione specificata nel comando seguente, quindi includi il flag
--allow-global-access
nella definizione della regola di forwarding.$
gcloud compute forwarding-rules create secondary-rule-name \ --load-balancing-scheme internal \ --address secondary-vip-name \ --subnet cluster-subnet \ --region cluster-region \ --backend-service secondary-backend-service-name \ --ports ALLPer ulteriori informazioni sull'accesso tra regioni al tuo SAP HANA sistema ad alta disponibilità, vedi Bilanciamento del carico TCP/UDP interno.
Attiva HANA Active/Active (lettura abilitata)
Nell'host secondario, attiva Active/Active (lettura abilitata) per la replica del sistema SAP HANA seguendo questi passaggi:
Come utente root, metti il cluster in modalità di manutenzione:
$
pcs property set maintenance-mode=trueCome
SID_LCadm
, interrompi SAP HANA:>
HDB stopIn qualità di
SID_LCadm
, registra di nuovo il sistema secondario HANA con la replica del sistema SAP HANA utilizzando la modalità operativalogreplay_readaccess
:>
hdbnsutil -sr_register --remoteHost=primary-host-name --remoteInstance=inst_num \ --replicationMode=syncmem --operationMode=logreplay_readaccess --name=secondary-host-nameCome
SID_LCadm
, avvia SAP HANA:>
HDB startCome
SID_LCadm
, verifica che lo stato della sincronizzazione HANA siaACTIVE
:>
cdpy; python systemReplicationStatus.py --sapcontrol=1 | grep overall_replication_statusDovresti vedere un output simile al seguente esempio:
overall_replication_status=ACTIVE
Configura Pacemaker
Configura il cluster ad alta disponibilità di Pacemaker per Attivo/Attivo (lettura abilitata) eseguendo i seguenti comandi come root:
Configura gli ascoltatori per i controlli di integrità:
Copia e rinomina il file di configurazione
haproxy.service
predefinito per trasformarlo in un file modello per le più istanze di haproxy:# cp /usr/lib/systemd/system/haproxy.service \ /etc/systemd/system/haproxy@.service
Modifica le sezioni [Unit] e [Service] del file haproxy@.service. per includere il parametro istanza %i, come mostrato nell'esempio seguente:
RHEL 7
[Unit] Description=HAProxy Load Balancer %i After=network-online.target
[Service] EnvironmentFile=/etc/sysconfig/haproxy ExecStart=/usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy-%i.cfg -p /run/haproxy-%i.pid $OPTIONS ...
RHEL 8
[Unit] Description=HAProxy Load Balancer %i After=network-online.target Wants=network-online.target
[Service] Environment="CONFIG=/etc/haproxy/haproxy-%i.cfg" "PIDFILE=/run/haproxy-%i.pid" ...
Per ulteriori informazioni di Red Hat sui modelli di unità
systemd
, consulta Utilizzare le unità con istanza.Crea un file di configurazione
haproxy.cfg
per l'istanza principale SAP HANA di un sistema operativo completo. Ad esempio:#
vi /etc/haproxy/haproxy-primary.cfgNel file di configurazione
haproxy-primary.cfg
della tua istanza principale SAP HANA inserisci la configurazione seguente e sostituiscihealthcheck-port-num
con il numero di porta specificato al momento della creazione dell'oggetto Compute Engine controllo di integrità per il sistema primario HANA:global chroot /var/lib/haproxy pidfile /var/run/haproxy-%i.pid user haproxy group haproxy daemon defaults mode tcp log global option dontlognull option redispatch retries 3 timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s maxconn 3000 # Listener for SAP healthcheck listen healthcheck bind *:healthcheck-port-num
Crea un file di configurazione
haproxy.cfg
per il sistema SAP HANA secondario. Ad esempio:#
vi /etc/haproxy/haproxy-secondary.cfgNel file di configurazione
haproxy-secondary.cfg
per SAP HANA secondario, inserisci la seguente configurazione e sostituiscisecondary-healthcheck-port-num
con il numero di porta specificato al momento della creazione dell'oggetto Compute Engine un controllo di integrità per il sistema secondario HANA:global chroot /var/lib/haproxy pidfile /var/run/haproxy-%i.pid user haproxy group haproxy daemon defaults mode tcp log global option dontlognull option redispatch retries 3 timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s maxconn 3000 # Listener for SAP healthcheck listen healthcheck bind *:secondary-healthcheck-port-num
Rimuovi la configurazione del listener esistente da
/etc/haproxy/haproxy.cfg
:#--------------------------------------------------------------------- # Health check listener port for SAP HANA HA cluster #--------------------------------------------------------------------- listen healthcheck bind *:healthcheck-port-num
Ricarica i servizi
systemd
per caricare le modifiche:#
systemctl daemon-reloadVerifica che i due servizi haproxy siano configurati correttamente:
#
systemctl start haproxy@primary#
systemctl start haproxy@secondary#
systemctl status haproxy@primary#
systemctl status haproxy@secondaryLo stato restituito dovrebbe mostrare
haproxy@primary.service
ehaproxy@secondary.service
comeactive (running)
. Di seguito è riportato un esempio di output perhaproxy@primary.service
:● haproxy@primary.service - Cluster Controlled haproxy@primary Loaded: loaded (/etc/systemd/system/haproxy@.service; disabled; vendor preset: disabled) Drop-In: /run/systemd/system/haproxy@primary.service.d └─50-pacemaker.conf Active: active (running) since Fri 2022-10-07 23:36:09 UTC; 1h 13min ago Main PID: 21064 (haproxy-systemd) CGroup: /system.slice/system-haproxy.slice/haproxy@primary.service ├─21064 /usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy-primary.cfg -p /run/hapro... ├─21066 /usr/sbin/haproxy -f /etc/haproxy/haproxy-primary.cfg -p /run/haproxy-primary.pid -... └─21067 /usr/sbin/haproxy -f /etc/haproxy/haproxy-primary.cfg -p /run/haproxy-primary.pid -... Oct 07 23:36:09 hana-ha-vm-1 systemd[1]: Started Cluster Controlled haproxy@primary.
In Cloud Shell, dopo aver atteso alcuni secondi che il controllo di integrità rilevare il listener, controllare l'integrità dei gruppi di istanza di backend sia il servizio di backend principale che quello secondario:
$
gcloud compute backend-services get-health backend-service-name \ --region cluster-region$
gcloud compute backend-services get-health secondary-backend-service-name \ --region cluster-regionDovresti visualizzare un output simile al seguente che mostra la VM su cui stai lavorando,
healthState
èHEALTHY
:--- 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
Interrompi entrambi i servizi per consentire a Pacemaker di gestirli:
#
systemctl stop haproxy@primary#
systemctl stop haproxy@secondaryRipeti i passaggi precedenti su ciascun host nel cluster.
Crea una risorsa IP del cluster locale per l'indirizzo VIP che hai riservato per il sistema secondario:
#
pcs resource create secondary_vip_resource_name \ IPaddr2 ip="secondary-vip-address" nic=eth0 cidr_netmask=32 \ op monitor interval=3600s timeout=60sConfigura il servizio di controllo di integrità dell'helper eseguendo questi comandi.
Il bilanciatore del carico utilizza un listener sulla porta del controllo di integrità di ciascun host determinare dove è in esecuzione l'istanza secondaria del cluster SAP HANA.
Per gestire gli ascoltatori nel cluster, crea una risorsa per l'ascoltatore:
Elimina la risorsa per il servizio di controllo di integrità per l'istanza primaria HANA di sistema:
#
pcs resource delete healthcheck_resource_name --forceAggiungi una nuova risorsa per il servizio di controllo di integrità per l'istanza primaria HANA di sistema:
#
pcs resource create primary_healthcheck_resource_name \ service:haproxy@primary op monitor interval=10s timeout=20sAggiungi una nuova risorsa per il servizio di controllo di integrità per l'account secondario HANA di sistema:
#
pcs resource create secondary_healthcheck_resource_name \ service:haproxy@secondary op monitor interval=10s timeout=20s
Raggruppa le risorse del servizio di controllo di integrità VIP e dell'helper
Aggiungi la nuova risorsa di controllo di integrità al gruppo di risorse esistente per le risorse VIP principali:
#
pcs resource group add rsc-group-name primary_healthcheck_resource_name \ --before vip_resource_nameAggiungi un nuovo gruppo di risorse per raggruppare le risorse del servizio di controllo di integrità VIP e helper per il sistema secondario HANA:
#
pcs resource group add secondary-rsc-group-name \ secondary_healthcheck_resource_name secondary_vip_resource_name
Crea due vincoli di località eseguendo i seguenti comandi:
Questi vincoli hanno lo scopo di garantire che il gruppo di risorse VIP secondario sia collocato sul nodo del cluster corretto:
#
pcs constraint location secondary-rsc-group-name rule score=INFINITY \ hana_sid_sync_state eq SOK and hana_sid_roles eq 4:S:master1:master:worker:master#
pcs constraint location secondary-rsc-group-name rule score=2000 \ hana_sid_sync_state eq PRIM and hana_sid_roles eq 4:P:master1:master:worker:masterEsci dalla modalità di manutenzione del cluster:
#
pcs property set maintenance-mode=falseControlla lo stato del cluster:
#
pcs statusI seguenti esempi mostrano lo stato di un'istanza attiva e configurata correttamente per la replica del sistema SAP HANA con Attivo/Attivo (lettura abilitata). Dovresti vedere un gruppo di risorse aggiuntivo per le risorse VIP del sistema secondario. Nell'esempio seguente, il nome del gruppo di risorse è
g-secondary
.Cluster name: hacluster Stack: corosync Current DC: hana-ha-vm-1 (version 1.1.23-1.el7_9.1-9acf116022) - partition with quorum Last updated: Sat Oct 8 00:37:08 2022 Last change: Sat Oct 8 00:36:57 2022 by root via crm_attribute on hana-test-2 2 nodes configured 10 resource instances configured Online: [ hana-ha-vm-1 hana-ha-vm-2 ] 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 Resource Group: g-primary rsc_healthcheck_HA1-primary (service:haproxy@primary): Started hana-ha-vm-1 rsc_vip_HA1_00 (ocf::heartbeat:IPaddr2): Started hana-ha-vm-1 Clone Set: SAPHanaTopology_HA1_00-clone [SAPHanaTopology_HA1_00] Started: [ hana-ha-vm-1 hana-ha-vm-2 ] Master/Slave Set: SAPHana_HA1_00-master [SAPHana_HA1_00] Masters: [ hana-ha-vm-1 ] Slaves: [ hana-ha-vm-2 ] Clone Set: msl_SAPHana_HA1_HDB00 [rsc_SAPHana_HA1_HDB00] (promotable): Masters: [ hana-ha-vm-1 ] Slaves: [ hana-ha-vm-2 ] Resource Group: g-secondary rsc_healthcheck_HA1-secondary (service:haproxy@secondary): Started hana-ha-vm-2 rsc_vip_HA1_00-secondary (ocf::heartbeat:IPaddr2): Started hana-ha-vm-2
Valuta il tuo carico di lavoro SAP HANA
Per automatizzare i controlli di convalida continua per i carichi di lavoro SAP HANA ad alta disponibilità in esecuzione su Google Cloud, puoi utilizzare Workload Manager.
Workload Manager ti consente di eseguire automaticamente la scansione e la valutazione dei carichi di lavoro SAP HANA ad alta disponibilità in base alle best practice di SAP, Google Cloud e dei fornitori di sistemi operativi. In questo modo puoi migliorare la qualità, le prestazioni e l'affidabilità dei tuoi carichi di lavoro.
Per informazioni sulle best practice utilizzate da Gestore carichi di lavoro Supporta la valutazione dell'alta disponibilità di SAP HANA carichi di lavoro in esecuzione su Google Cloud, Best practice di Workload Manager per SAP. Per informazioni sulla creazione e sull'esecuzione di una valutazione utilizzando Workload Manager, consulta Creare ed eseguire una valutazione.
Risoluzione dei problemi
Per risolvere i problemi relativi alle configurazioni ad alta disponibilità per SAP 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 relativo ai cluster ad alta disponibilità per SAP HANA su RHEL, raccogli le informazioni diagnostiche richieste e contatta l'assistenza clienti Google Cloud. Per ulteriori informazioni, consulta Informazioni diagnostiche sui cluster ad alta disponibilità su RHEL.
Assistenza
Per problemi con l'infrastruttura o i servizi Google Cloud, contatta l'assistenza clienti. Puoi trovare i dati di contatto nella Pagina Panoramica dell'assistenza nella console Google Cloud. Se l'assistenza clienti stabilisce che un problema risiede nei tuoi sistemi SAP, verrai indirizzato a SAP Support.
Per problemi relativi ai prodotti SAP, registra la richiesta di assistenza con
Assistenza SAP.
SAP valuta il ticket di assistenza e, se sembra essere un account Google Cloud,
relativo a un problema dell'infrastruttura, SAP trasferisce il ticket
Componente Google Cloud nel sistema: BC-OP-LNX-GOOGLE
oppure
BC-OP-NT-GOOGLE
.
Requisiti di assistenza
Prima di poter ricevere assistenza per sistemi SAP e Google Cloud infrastruttura e servizi che utilizzano, devi soddisfare i requisiti minimi requisiti dei piani di assistenza.
Per ulteriori informazioni sui requisiti minimi di assistenza per SAP su Google Cloud, consulta:
- Ricevi assistenza per SAP su Google Cloud
- Nota SAP 2456406 - SAP su Google Cloud: prerequisiti per l'assistenza (è 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 al bastion e poi alle istanze SAP HANA tramite un client SSH la 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 questi passaggi:
Cambiare le password temporanee per l'amministratore di sistema SAP HANA e super user del database. Ad esempio:
sudo passwd SID_LCadm
Per informazioni da SAP sulla modifica della password, consulta Reimposta la password utente SYSTEM del database di sistema.
Prima di utilizzare la tua istanza SAP HANA, configura ed esegui il backup della nuova Database SAP HANA.
Se viene eseguito il deployment del sistema SAP HANA su un'interfaccia di rete VirtIO, ti consigliamo di verificare il valore del parametro TCP
/proc/sys/net/ipv4/tcp_limit_output_bytes
è impostato su1048576
. Questa modifica consente di migliorare la velocità effettiva di rete complessiva su VirtIO senza influire sulla latenza di rete.
Per ulteriori informazioni, vedi:
Passaggi successivi
Per saperne di più, consulta la seguente risorsa:
- Installazione e configurazione di un cluster Red Hat Enterprise Linux 7.6 (e versioni successive) ad alta disponibilità su Google Compute Cloud
- Replica automatizzata del sistema SAP HANA nello scale up in un cluster di 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 il monitoraggio delle VM, consulta Guida alle operazioni di SAP HANA