I deployment di SAP HANA su Google Cloud utilizzano il layout del disco unificato o il layout del disco suddiviso. Nel layout del disco unificato, viene utilizzato un singolo disco per ospitare tutti i filesystem SAP HANA. Nel layout del disco suddiviso, ogni sistema di file SAP HANA è ospitato su un disco separato. Per informazioni su questi layout dei dischi, consulta Layout dei dischi supportati.
Google Cloud consiglia di utilizzare il layout del disco suddiviso per i seguenti motivi:
- Consente l'ottimizzazione indipendente delle prestazioni dei dischi per i file system, in particolare per
/hana/data
e/hana/log
e, in particolare, quando utilizzi Hyperdisk. - Semplifica la manutenzione.
Per illustrare la procedura di migrazione, questa guida presuppone un sistema di esempio e esegue la migrazione dei file system SAP HANA da un singolo volume del disco permanente a un volume Hyperdisk per ogni file system. Puoi utilizzare questa procedura anche per eseguire la migrazione dei sistemi di file SAP HANA a singoli volumi Persistent Disk.
Esamina le considerazioni sulla migrazione
- Durata della migrazione dei dati: per un sistema SAP HANA HA, puoi ridurre la durata della migrazione dei dati annullando la registrazione del nodo secondario, eliminando i database dei tenant e recuperando i log. La procedura descritta in questa guida utilizza questo approccio.
- Tempo di riposo: per un sistema SAP HANA HA, esegui prima la migrazione del database secondario, impostalo come nuovo database principale e poi esegui la migrazione del precedente database principale. In questo modo, il tempo di riposo è ridotto al minimo.
- Ripristino dei dischi esistenti: in caso di problemi durante la migrazione, puoi ripristinare i dischi esistenti perché non sono interessati da questa procedura e sono disponibili finché non li elimini manualmente. Per maggiori informazioni, consulta la sezione Eseguire il fallback ai dischi esistenti.
Prima di iniziare
Prima di eseguire la migrazione dei file system SAP HANA ospitati su un singolo disco su un disco per ogni file system, assicurati che siano soddisfatte le seguenti condizioni:
- SAP HANA è in esecuzione su istanze Compute Engine certificate da SAP che supportano Hyperdisk.
- È disponibile un backup valido del database SAP HANA. Questo backup può essere utilizzato per ripristinare il database, se necessario.
- Se l'istanza Compute Engine di destinazione fa parte di un cluster ad alta disponibilità (HA), assicurati che il cluster sia in modalità di manutenzione.
- Se il database SAP HANA utilizza un deployment scalabile orizzontalmente, ripeti la procedura descritta in questa guida per ogni istanza SAP HANA.
- Il database SAP HANA è attivo e funzionante. Per i sistemi HA, assicurati che la replica sia attiva tra le istanze principale e secondaria del database.
- Per ridurre il tempo di copia dei dati, rimuovi eventuali backup o supporti non necessari dai volumi SAP HANA di cui esegui la migrazione.
Verifica che i file system SAP HANA di cui stai eseguendo la migrazione siano ospitati su un singolo disco eseguendo il seguente comando:
lsblk
L'output è simile al seguente esempio. L'output potrebbe essere diverso da questo esempio a seconda della convenzione di denominazione dei file system SAP HANA o se l'istanza di calcolo supporta l'interfaccia di disco NVMe (non-volatile memory express).
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 30G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 20M 0 part /boot/efi └─sda3 8:3 0 30G 0 part / sdb 8:16 0 2.3T 0 disk ├─vg_hana-shared 254:0 0 850G 0 lvm /hana/shared ├─vg_hana-sap 254:1 0 32G 0 lvm /usr/sap ├─vg_hana-log 254:2 0 425G 0 lvm /hana/log └─vg_hana-data 254:3 0 1T 0 lvm /hana/data sdc 8:32 0 1.7T 0 disk └─vg_hanabackup-backup 254:4 0 1.7T 0 lvm /hanabackup
Sistema SAP di esempio
Per illustrare la procedura di migrazione, questa guida:
- Si assume un esempio di deployment SAP HANA scalabile verso l'alto ad alta disponibilità (HA) in cui un singolo volume del disco permanente ospita i file system
/hana/data
,/hana/log
,/hana/shared
e/usr/sap
. - Esegue la migrazione dei file system a singoli volumi Hyperdisk, che è simile nella configurazione al sistema SAP HANA scalabile verticale HA di cui è stato eseguito il deployment da Terraform: guida alla configurazione del cluster SAP HANA scalabile verticale ad alta disponibilità.
Il seguente diagramma mostra l'architettura del sistema di esempio prima e dopo la migrazione dei relativi file system:
I dettagli di configurazione del sistema SAP di esempio sono i seguenti:
- Tipo di macchina:
n2-highmem-128
- Sistema operativo: SLES for SAP 15 SP5
- SAP HANA: HANA 2 SPS07, Rev 78
- Tipo di disco utilizzato dal sistema: disco permanente SSD (
pd-ssd
) I volumi
/hana/data
,/hana/log
,/hana/shared
e/usr/sap
sono mounted sullo stesso disco e sono configurati nelle impostazioni di persistenza per SAP HANA. Di seguito è riportato un esempio di impostazioni di persistenza per i volumi/hana/data
e/hana/log
di un sistema SAP HANA con SIDABC
:[persistence] basepath_datavolumes = /hana/data/ABC basepath_logvolumes = /hana/log/ABC
Esegui la migrazione dei file system a singoli volumi Hyperdisk
Per eseguire la migrazione dei file system di un deployment SAP HANA scalabile verticale ad alta disponibilità da un singolo volume del disco permanente a un volume Hyperdisk per ogni file system, svolgi i seguenti passaggi:
- Prepara l'istanza secondaria per la migrazione.
- Esegui la migrazione dell'istanza secondaria.
- Esegui la promozione dell'istanza secondaria.
- Esegui la migrazione dell'istanza principale precedente.
Prepara l'istanza secondaria per la migrazione
Imposta il cluster HA in modalità di manutenzione:
crm maintenance on
Verifica che la replica del sistema HANA (HSR) sia attiva:
/usr/sap/ABC/HDB00/exe/python_support> python systemReplicationStatus.py
L'output è simile al seguente esempio:
/usr/sap/ABC/HDB00/exe/python_support> python systemReplicationStatus.py |Database |Host |Port |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary |Secondary |Replication |Replication |Replication |Secondary | | | | | | | | |Host |Port |Site ID |Site Name |Active Status |Mode |Status |Status Details |Fully Synced | |-------- |----------- |----- |------------ |--------- |------- |--------- |--------- |--------- |--------- |----------- |------------- |----------- |----------- |-------------- |------------ | |SYSTEMDB |example-vm1 |30001 |nameserver | 1 | 1 |example-vm1 |example-vm2 | 30001 | 2 |example-vm2 |YES |SYNCMEM |ACTIVE | | True | |ABC |example-vm1 |30007 |xsengine | 2 | 1 |example-vm1 |example-vm2 | 30007 | 2 |example-vm2 |YES |SYNCMEM |ACTIVE | | True | |ABC |example-vm1 |30003 |indexserver | 3 | 1 |example-vm1 |example-vm2 | 30003 | 2 |example-vm2 |YES |SYNCMEM |ACTIVE | | True | status system replication site "2": ACTIVE overall system replication status: ACTIVE Local System Replication State ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mode: PRIMARY site id: 1 site name: example-vm1
Annullare la registrazione dell'istanza secondaria del database SAP HANA:
hdbnsutil -sr_unregister
L'output mostra che l'istanza secondaria del database è stata annullata correttamente:
abcadm@example-vm2:/usr/sap/ABC/HDB00> hdbnsutil -sr_unregister unregistering site ... done. Performing Final Memory Release with 10 threads. Finished Final Memory Release successfully.
Nell'istanza secondaria del sistema SAP HANA, elimina tutti i database dell'utente e recupera i log:
Interrompi un database del tenant:
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "ALTER SYSTEM STOP DATABASE TENANT_DB_SID"
Sostituisci quanto segue:
INSTANCE_NUMBER
: il numero di istanze del database del tenantSYSTEM_DB_PASSWORD
: la password del database di sistemaTENANT_DB_SID
: l'SID del database del tenant, dove le lettere sono in maiuscolo
Elimina il database del tenant che hai interrotto:
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "DROP DATABASE TENANT_DB_SID"
Log di recupero:
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "ALTER SYSTEM RECLAIM LOG"
Ripeti i passaggi precedenti per tutti i database tenant nell'istanza secondaria del sistema SAP HANA.
L'esempio seguente mostra una risposta corretta:
0 rows affected (overall time 9032.460 msec; server time 9032.273 msec)
Arresta l'istanza secondaria del sistema SAP HANA:
sapcontrol -nr INSTANCE_NUMBER -function Stop
Esegui la migrazione dell'istanza secondaria
Crea un disco per ogni file system SAP HANA. Per il sistema di esempio assunto da questa procedura, crea 4 dischi, uno per
/hana/data
,/hana/log
,/hana/shared
e/usr/sap
.Per impostare le dimensioni del disco per ogni file system, puoi utilizzare le informazioni sulle dimensioni visualizzate nell'output del comando
lsblk
per il tuo sistema.Per informazioni sulle dimensioni minime consigliate del disco, sulle IOPS e sul throughput che contribuiscono a soddisfare i requisiti di prestazioni di SAP HANA, consulta Dimensioni minime per i volumi Hyperdisk e dei dischi permanenti basati su SSD.
gcloud compute disks create USR_SAP_DISK_NAME \ --project=PROJECT_ID \ --type=USR_SAP_DISK_TYPE \ --size=USR_SAP_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=USR_SAP_DISK_IOPS gcloud compute disks create SHARED_DISK_NAME \ --project=PROJECT_ID \ --type=SHARED_DISK_TYPE \ --size=SHARED_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=SHARED_DISK_IOPS gcloud compute disks create DATA_DISK_NAME \ --project=PROJECT_ID \ --type=DATA_DISK_TYPE \ --size=DATA_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=DATA_DISK_IOPS gcloud compute disks create LOG_DISK_NAME \ --project=PROJECT_ID \ --type=LOG_DISK_TYPE \ --size=LOG_DISK_SIZE \ --zone=ZONE \ --provisioned-iops=LOG_DISK_IOPS
Sostituisci quanto segue:
USR_SAP_DISK_NAME
: il nome da impostare per il disco che ospita il volume/usr/sap
PROJECT_ID
: l'ID del tuo progetto Google CloudUSR_SAP_DISK_TYPE
: il tipo di Hyperdisk che vuoi implementare per ospitare il volume/usr/sap
, ad esempiohyperdisk-extreme
.USR_SAP_DISK_SIZE
: la dimensione che vuoi impostare per il disco che ospita il volume/usr/sap
ZONE
: la zona Compute Engine in cui vuoi eseguire il deployment dei nuovi dischiUSR_SAP_DISK_IOPS
: le IOPS che vuoi impostare per l'hyperdisk che stai creando per ospitare/hana/data
. Imposti le IOPS in base ai tuoi requisiti di prestazioni.SHARED_DISK_NAME
: il nome da impostare per il disco che ospita il volume/hana/shared
SHARED_DISK_TYPE
: il tipo di Hyperdisk che vuoi implementare per ospitare il volume/hana/shared
, ad esempiohyperdisk-extreme
.SHARED_DISK_SIZE
: la dimensione che vuoi impostare per il disco che ospita il volume/hana/shared
SHARED_DISK_IOPS
: le IOPS che vuoi impostare per il disco che ospita il volume/hana/shared
DATA_DISK_NAME
: il nome da impostare per il disco che ospita il volume/hana/data
DATA_DISK_TYPE
: il tipo di Hyperdisk che vuoi implementare per ospitare il volume/hana/data
, ad esempiohyperdisk-extreme
DATA_DISK_SIZE
: la dimensione che vuoi impostare per il disco che ospita il volume/hana/data
DATA_DISK_IOPS
: le IOPS da impostare per il disco che ospita il volume/hana/data
LOG_DISK_NAME
: il nome da impostare per il disco che ospita il volume/hana/log
LOG_DISK_TYPE
: il tipo di Hyperdisk che vuoi implementare per ospitare il volume/hana/log
, ad esempiohyperdisk-extreme
LOG_DISK_SIZE
: la dimensione che vuoi impostare per il disco che ospita il volume/hana/log
LOG_DISK_IOPS
: le IOPS che vuoi impostare per il disco che ospita il volume/hana/log
Collega i dischi che hai creato all'istanza Compute Engine che ospita l'istanza secondaria del tuo database SAP HANA:
gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=USR_SAP_DISK_NAME \ --zone=ZONE gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=SHARED_DISK_NAME \ --zone=ZONE gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=DATA_DISK_NAME \ --zone=ZONE gcloud compute instances attach-disk SECONDARY_INSTANCE_NAME \ --disk=LOG_DISK_NAME \ --zone=ZONE
Sostituisci
SECONDARY_INSTANCE_NAME
con il nome di Compute Engine che ospita l'istanza secondaria del database SAP HANA.Per utilizzare la gestione dei volumi logici (LVM), completa i seguenti passaggi:
Crea volumi fisici per i nuovi dischi che hai creato e collegato:
pvcreate USR_SAP_PV_NAME pvcreate SHARED_PV_NAME pvcreate DATA_PV_NAME pvcreate LOG_PV_NAME
Sostituisci quanto segue:
USR_SAP_PV_NAME
: il percorso del dispositivo effettivo del disco che hai creato per ospitare il volume/usr/sap
SHARED_PV_NAME
: il percorso del dispositivo effettivo del disco che hai creato per ospitare il volume/hana/shared
DATA_PV_NAME
: il percorso del dispositivo effettivo del disco che hai creato per ospitare il volume/hana/data
LOG_PV_NAME
: il percorso del dispositivo effettivo del disco che hai creato per ospitare il volume/hana/log
Crea gruppi di volumi:
vgcreate vg_hana_usrsap USR_SAP_PV_NAME vgcreate vg_hana_shared SHARED_PV_NAME vgcreate vg_hana_data DATA_PV_NAME vgcreate vg_hana_log LOG_PV_NAME
Crea volumi logici:
lvcreate -l 100%FREE -n usrsap vg_hana_usrsap lvcreate -l 100%FREE -n shared vg_hana_shared lvcreate -l 100%FREE -n data vg_hana_data lvcreate -l 100%FREE -n log vg_hana_log
Crea il file system:
mkfs -t xfs /dev/vg_hana_usrsap/usrsap mkfs -t xfs /dev/vg_hana_shared/shared mkfs -t xfs /dev/vg_hana_data/data mkfs -t xfs /dev/vg_hana_log/log
Crea directory temporanee per i file system SAP HANA:
mkdir -p /tmp/usr/sap mkdir -p /tmp/hana/shared mkdir -p /tmp/hana/data mkdir -p /tmp/hana/log
Monta i volumi appena creati utilizzando le directory temporanee:
mount -o logbsize=256k /dev/vg_hana_usrsap/usrsap /tmp/usr/sap mount -o logbsize=256k /dev/vg_hana_shared/shared /tmp/hana/shared mount -o logbsize=256k /dev/vg_hana_data/data /tmp/hana/data mount -o logbsize=256k /dev/vg_hana_log/log /tmp/hana/log
Trasferisci i dati dal volume del disco permanente di origine ai dischi che hai creato. A questo scopo puoi utilizzare
rsync
, gli snapshot LVM o qualsiasi altro metodo. L'esempio seguente utilizza l'utilitàrsync
per il trasferimento dei dati:rsync -avz --progress /usr/sap/ /tmp/usr/sap/ rsync -avz --progress /hana/shared/ /tmp/hana/shared/ rsync -avz --progress /hana/data/ /tmp/hana/data/ rsync -avz --progress /hana/log/ /tmp/hana/log/
Smonta i volumi logici precedenti per i file system SAP HANA:
umount /usr/sap umount /hana/shared umount /hana/data umount /hana/log
Smonta i volumi temporanei che hai creato per i file system SAP HANA:
umount /tmp/usr/sap umount /tmp/hana/shared umount /tmp/hana/data umount /tmp/hana/log
Dall'istanza Compute Engine che ospita l'istanza secondaria del tuo database SAP HANA, scollega il volume del disco permanente che ospitava i tuoi file system SAP HANA:
gcloud compute instances detach-disk SECONDARY_INSTANCE_NAME --disk=SOURCE_DISK_NAME \ --zone=ZONE
Sostituisci
SOURCE_DISK_NAME
con il nome del volume del disco persistente che ospitava i file system SAP HANA che vuoi scollegare dall'istanza di calcolo.In qualità di utente root o di un utente con accesso
sudo
, aggiorna le voci/etc/fstab
. Di seguito è riportato un esempio di come devono essere aggiornate le voci:/dev/vg_hana_shared/shared /hana/shared xfs defaults,nofail,logbsize=256k 0 2 /dev/vg_hana_usrsap/sap /usr/sap xfs defaults,nofail,logbsize=256k 0 2 /dev/vg_hana_data/data /hana/data xfs defaults,nofail,logbsize=256k 0 2 /dev/vg_hana_log/log /hana/log xfs defaults,nofail,logbsize=256k 0 2
Monta i volumi logici appena creati:
mount -a
Verifica le informazioni sullo spazio utilizzato dai file system:
df -h
L'output è simile al seguente:
# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 8.0K 4.0M 1% /dev tmpfs 638G 35M 638G 1% /dev/shm tmpfs 171G 458M 170G 1% /run tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup /dev/sdb3 30G 6.4G 24G 22% / /dev/sdb2 20M 3.0M 17M 15% /boot/efi /dev/mapper/vg_hanabackup-backup 1.7T 13G 1.7T 1% /hanabackup tmpfs 86G 0 86G 0% /run/user/0 /dev/mapper/vg_hana_usrsap-usrsap 32G 277M 32G 1% /usr/sap /dev/mapper/vg_hana_shared-shared 850G 54G 797G 7% /hana/shared /dev/mapper/vg_hana_data-data 1.1T 5.4G 1.1T 1% /hana/data /dev/mapper/vg_hana_log-log 475G 710M 475G 1% /hana/log
Promuovi l'istanza secondaria
Come utente
SID_LCadm
, registra l'istanza secondaria del tuo database SAP HANA con la replica di sistema SAP HANA:hdbnsutil -sr_register --remoteHost=PRIMARY_INSTANCE_NAME \ --remoteInstance=PRIMARY_INSTANCE_NUMBER \ --replicationMode=syncmem --operationMode=logreplay \ --name=SECONDARY_INSTANCE_NAME
Sostituisci quanto segue:
PRIMARY_INSTANCE_NAME
: il nome dell'istanza Compute Engine che ospita l'istanza principale del sistema SAP HANAPRIMARY_INSTANCE_NUMBER
: il numero dell'istanza principale del sistema SAP HANASECONDARY_INSTANCE_NAME
: il nome dell'istanza Compute Engine che ospita l'istanza secondaria del sistema SAP HANA
Avvia l'istanza secondaria del database SAP HANA:
HDB start
In alternativa, puoi utilizzare il comando
sapcontrol
per avviare l'istanza secondaria:sapcontrol -nr INSTANCE_NUMBER -function StartSystem
Nell'istanza principale del database SAP HANA, come utente
SID_LCadm
, verifica che la replica di sistema SAP HANA sia attiva:python $DIR_INSTANCE/exe/python_support/systemReplicationStatus.py
Dopo aver verificato che la replica di sistema sia attiva, imposta l'istanza secondaria del database SAP HANA come nuova istanza principale:
crm resource move msl_SAPHana_SID_HDBINSTANCE_NUMBER SECONDARY_INSTANCE_NAME
L'output è simile al seguente esempio:
INFO: Move constraint created for msl_SAPHana_ABC_HDB00 to example-vm2 INFO: Use `crm resource clear msl_SAPHana_ABC_HDB00` to remove this constraint
Controlla lo stato del cluster HA:
crm status
L'output è simile al seguente esempio:
example-vm1:~ # crm status Status of pacemakerd: 'Pacemaker is running' (last updated 2025-02-04 10:08:16Z) Cluster Summary: * Stack: corosync * Current DC: example-vm1 (version 2.1.5+20221208.a3f44794f-150500.6.20.1-2.1.5+20221208.a3f44794f) - partition with quorum * Last updated: Tue Feb 4 10:08:16 2025 * Last change: Tue Feb 4 10:07:47 2025 by root via crm_attribute on example-vm2 * 2 nodes configured * 8 resource instances configured Node List: * Online: [ example-vm1 example-vm2 ] Full List of Resources: * STONITH-example-vm1 (stonith:fence_gce): Started example-vm2 * STONITH-example-vm2 (stonith:fence_gce): Started example-vm1 * Resource Group: g-primary: * rsc_vip_int-primary (ocf::heartbeat:IPaddr2): Started example-vm2 * rsc_vip_hc-primary (ocf::heartbeat:anything): Started example-vm2 * Clone Set: cln_SAPHanaTopology_ABC_HDB00 [rsc_SAPHanaTopology_ABC_HDB00]: * Started: [ example-vm1 example-vm2 ] * Clone Set: msl_SAPHana_ABC_HDB00 [rsc_SAPHana_ABC_HDB00] (promotable): * Masters: [ example-vm2 ] * Slaves: [ example-vm1 ]
Come utente root o utente con accesso
sudo
, rimuovi la limitazione che garantisce che la risorsa non sia impostata per preferire un'istanza Compute Engine specifica:crm resource clear msl_SAPHana_SID_HDBINSTANCE_NUMBER
L'output è simile al seguente:
INFO: Removed migration constraints for msl_SAPHana_ABC_HDB00
Esegui la migrazione dell'istanza principale precedente
Per eseguire la migrazione dell'istanza principale precedente del sistema SAP HANA, ripeti le procedure descritte nelle sezioni precedenti.
Rimuovi il cluster HA dalla modalità di manutenzione:
crm maintenance off
Ripristino dei dischi esistenti
Se la migrazione del disco non va a buon fine, puoi utilizzare i volumi Persistent Disk esistenti perché contengono i dati esistenti prima dell'inizio della procedura di migrazione.
Per ripristinare il database SAP HANA allo stato originale, svolgi i seguenti passaggi:
- Arresta l'istanza Compute Engine che ospita il database SAP HANA.
- Scollega i volumi Hyperdisk che hai creato.
- Ricollega il volume del disco permanente esistente all'istanza di calcolo.
- Avvia l'istanza di calcolo.
Esegui la pulizia
Dopo aver eseguito la migrazione dei file system SAP HANA a singoli dischi, ripulisci le risorse relative al volume del disco permanente che stavi utilizzando. Sono inclusi gli snapshot del disco e il disco stesso.
Per informazioni su come eliminare gli snapshot dei dischi, consulta Gestire gli snapshot dei dischi.
Per eliminare il volume del disco permanente utilizzato dal sistema SAP HANA, puoi eseguire il comando
gcloud compute disks delete
:gcloud compute disks delete SOURCE_DISK_NAME --ZONE=ZONE