Las implementaciones de SAP HANA en Google Cloud usan el diseño de disco unificado o el diseño de disco dividido. En el diseño de disco unificado, se usa un solo disco para alojar todos los sistemas de archivos de SAP HANA. En el diseño de disco dividido, cada sistema de archivos de SAP HANA se aloja en un disco independiente. Para obtener información sobre estos diseños de disco, consulta Diseños de disco compatibles.
Google Cloud recomienda que uses el diseño de disco dividido por los siguientes motivos:
- Permite la optimización independiente del rendimiento del disco para los sistemas de archivos, en particular para
/hana/data
y/hana/log
, y en especial cuando usas Hyperdisk. - Simplifica el mantenimiento.
Para ilustrar el procedimiento de migración, en esta guía se supone un sistema de ejemplo y se migran los sistemas de archivos de SAP HANA de un solo volumen de Persistent Disk a un volumen de Hyperdisk para cada sistema de archivos. Puedes usar este procedimiento para migrar también los sistemas de archivos de SAP HANA a volúmenes individuales de Persistent Disk.
Revisa las consideraciones sobre la migración
- Duración de la migración de datos: En un sistema SAP HANA con alta disponibilidad, puedes disminuir la duración de la migración de datos si cancelas el registro del nodo secundario, descartas sus bases de datos de inquilino y, luego, reclamas los registros. El procedimiento que se describe en esta guía usa este enfoque.
- Tiempo de inactividad: En un sistema SAP HANA con alta disponibilidad, primero debes migrar la base de datos secundaria, convertirla en la nueva base de datos principal y, luego, migrar la base de datos principal anterior. Esto ayuda a lograr un tiempo de inactividad mínimo.
- Volver a los discos existentes: En caso de cualquier problema durante la migración, puedes volver a los discos existentes porque no se ven afectados por este procedimiento y están disponibles hasta que los borres. Para obtener más información, consulta Cómo recurrir a discos existentes.
Antes de comenzar
Antes de migrar los sistemas de archivos de SAP HANA que se alojan en un solo disco a un disco para cada sistema de archivos, asegúrate de que se cumplan las siguientes condiciones:
- SAP HANA se ejecuta en instancias de Compute Engine certificadas por SAP que admiten Hyperdisk.
- Hay una copia de seguridad válida de la base de datos de SAP HANA disponible. Esta copia de seguridad se puede usar para restablecer la base de datos, si es necesario.
- Si la instancia de Compute Engine de destino es parte de un clúster de alta disponibilidad (HA), asegúrate de que el clúster esté en modo de mantenimiento.
- Si tu base de datos de SAP HANA usa una implementación de escalamiento horizontal, repite el procedimiento de esta guía para cada instancia de SAP HANA.
- La base de datos de SAP HANA está en funcionamiento. En el caso de los sistemas de HA, asegúrate de que la replicación esté activa entre las instancias principal y secundaria de tu base de datos.
- Para acortar el tiempo de copia de datos, quita las copias de seguridad o los medios innecesarios de los volúmenes de SAP HANA que migrarás.
Ejecuta el siguiente comando para validar que los sistemas de archivos de SAP HANA que migras se almacenen en un solo disco:
lsblk
El resultado es similar al siguiente ejemplo. Tu resultado puede diferir de este ejemplo según la convención de nombres que uses para los sistemas de archivos de SAP HANA o si tu instancia de procesamiento admite la interfaz de disco de memoria no volátil express (NVMe).
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
Ejemplo de sistema SAP
Para ilustrar el procedimiento de migración, esta guía hace lo siguiente:
- Se supone un ejemplo de implementación de alta disponibilidad (HA) de escalamiento vertical de SAP HANA en el que un solo volumen de disco persistente aloja los sistemas de archivos
/hana/data
,/hana/log
,/hana/shared
y/usr/sap
. - Migra los sistemas de archivos a volúmenes de Hyperdisk individuales, que tienen una configuración similar al sistema de alta disponibilidad de escalamiento vertical de SAP HANA que se implementa en la Guía de configuración de clústeres de alta disponibilidad de escalamiento vertical de SAP HANA de Terraform.
En el siguiente diagrama, se muestra la arquitectura del sistema de ejemplo antes y después de la migración de sus sistemas de archivos:
Los detalles de configuración del sistema de SAP de ejemplo son los siguientes:
- Tipo de máquina:
n2-highmem-128
- SO: SLES para SAP 15 SP5
- SAP HANA: HANA 2 SPS07, rev. 78
- Tipo de disco que usa el sistema: disco persistente SSD (
pd-ssd
) Los volúmenes
/hana/data
,/hana/log
,/hana/shared
y/usr/sap
se activan en el mismo disco y se configuran en la configuración de persistencia de SAP HANA. El siguiente es un ejemplo de la configuración de persistencia para los volúmenes/hana/data
y/hana/log
de un sistema SAP HANA con el SIDABC
:[persistence] basepath_datavolumes = /hana/data/ABC basepath_logvolumes = /hana/log/ABC
Migra sistemas de archivos a volúmenes individuales de Hyperdisk
Para migrar los sistemas de archivos de una implementación de HA de escalamiento vertical de SAP HANA de un solo volumen de disco persistente a un volumen de Hyperdisk para cada sistema de archivos, sigue estos pasos:
- Prepara la instancia secundaria para la migración.
- Migra la instancia secundaria.
- Asciende la instancia secundaria.
- Migra la instancia principal anterior.
Prepara la instancia secundaria para la migración
Configura el clúster de HA en modo de mantenimiento:
crm maintenance on
Valida si la replicación del sistema HANA (HSR) está activa:
/usr/sap/ABC/HDB00/exe/python_support> python systemReplicationStatus.py
El resultado es similar al siguiente ejemplo.
/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
Cancela el registro de la instancia secundaria de tu base de datos de SAP HANA:
hdbnsutil -sr_unregister
En el resultado, se muestra que la instancia secundaria de la base de datos se desregistró de forma correcta:
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.
En la instancia secundaria de tu sistema SAP HANA, descarta todas las bases de datos del inquilino y reclama los registros:
Detén una base de datos de usuario:
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "ALTER SYSTEM STOP DATABASE TENANT_DB_SID"
Reemplaza lo siguiente:
INSTANCE_NUMBER
: El número de instancia de la base de datos del usuarioSYSTEM_DB_PASSWORD
: La contraseña de la base de datos del sistemaTENANT_DB_SID
: El SID de la base de datos del usuario, en el que las letras están en mayúsculas
Borra la base de datos del usuario que detuviste:
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "DROP DATABASE TENANT_DB_SID"
Recupera los registros:
hdbsql -n localhost:3INSTANCE_NUMBER13 -u SYSTEM -p "SYSTEM_DB_PASSWORD" -j "ALTER SYSTEM RECLAIM LOG"
Repite los pasos anteriores para todas las bases de datos de usuarios en la instancia secundaria de tu sistema de SAP HANA.
En el siguiente ejemplo, se muestra una respuesta correcta:
0 rows affected (overall time 9032.460 msec; server time 9032.273 msec)
Detén la instancia secundaria de tu sistema SAP HANA:
sapcontrol -nr INSTANCE_NUMBER -function Stop
Migra la instancia secundaria
Crea un disco para cada sistema de archivos de SAP HANA. Para el sistema de ejemplo que asume este procedimiento, crea 4 discos, uno para
/hana/data
,/hana/log
,/hana/shared
y/usr/sap
.Para establecer el tamaño del disco para cada sistema de archivos, puedes usar la información de tamaño que ves en el resultado del comando
lsblk
de tu sistema.Para obtener información sobre el tamaño mínimo recomendado de disco, las IOPS y la capacidad de procesamiento que ayudan a cumplir con los requisitos de rendimiento de SAP HANA, consulta Tamaños mínimos para los volúmenes de Hyperdisk y Persistent Disk basados en 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
Reemplaza lo siguiente:
USR_SAP_DISK_NAME
: Es el nombre que deseas establecer para el disco que aloja el volumen/usr/sap
.PROJECT_ID
: El ID de tu Google Cloud proyectoUSR_SAP_DISK_TYPE
: Es el tipo de Hyperdisk que deseas implementar para alojar el volumen/usr/sap
, comohyperdisk-extreme
.USR_SAP_DISK_SIZE
: Es el tamaño que deseas establecer para el disco que aloja el volumen/usr/sap
.ZONE
: Es la zona de Compute Engine en la que deseas implementar los discos nuevos.USR_SAP_DISK_IOPS
: Son las IOPS que deseas establecer para el hiperdisco que creas para alojar/hana/data
. Debes configurar los IOPS según tus requisitos de rendimiento.SHARED_DISK_NAME
: Es el nombre que deseas establecer para el disco que aloja el volumen/hana/shared
.SHARED_DISK_TYPE
: Es el tipo de Hyperdisk que deseas implementar para alojar el volumen/hana/shared
, comohyperdisk-extreme
.SHARED_DISK_SIZE
: Es el tamaño que deseas establecer para el disco que aloja el volumen/hana/shared
.SHARED_DISK_IOPS
: Las IOPS que deseas establecer para el disco que aloja el volumen/hana/shared
DATA_DISK_NAME
: Es el nombre que deseas establecer para el disco que aloja el volumen/hana/data
.DATA_DISK_TYPE
: Es el tipo de Hyperdisk que deseas implementar para alojar el volumen/hana/data
, comohyperdisk-extreme
.DATA_DISK_SIZE
: Es el tamaño que deseas establecer para el disco que aloja el volumen/hana/data
.DATA_DISK_IOPS
: Las IOPS que deseas establecer para el disco que aloja el volumen/hana/data
LOG_DISK_NAME
: Es el nombre que deseas establecer para el disco que aloja el volumen/hana/log
.LOG_DISK_TYPE
: Es el tipo de Hyperdisk que deseas implementar para alojar el volumen/hana/log
, comohyperdisk-extreme
.LOG_DISK_SIZE
: Es el tamaño que deseas establecer para el disco que aloja el volumen/hana/log
.LOG_DISK_IOPS
: Las IOPS que deseas establecer para el disco que aloja el volumen/hana/log
Conecta los discos que creaste a la instancia de Compute Engine que aloja la instancia secundaria de tu base de datos de 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
Reemplaza
SECONDARY_INSTANCE_NAME
por el nombre de Compute Engine que aloja la instancia secundaria de tu base de datos de SAP HANA.Para usar la administración de volúmenes lógicos (LVM), completa los siguientes pasos:
Crea volúmenes físicos para los discos nuevos que creaste y conectaste:
pvcreate USR_SAP_PV_NAME pvcreate SHARED_PV_NAME pvcreate DATA_PV_NAME pvcreate LOG_PV_NAME
Reemplaza lo siguiente:
USR_SAP_PV_NAME
: Es la ruta de acceso real del dispositivo del disco que creaste para alojar el volumen/usr/sap
.SHARED_PV_NAME
: Es la ruta de acceso real del dispositivo del disco que creaste para alojar el volumen/hana/shared
.DATA_PV_NAME
: Es la ruta de acceso real del dispositivo del disco que creaste para alojar el volumen/hana/data
.LOG_PV_NAME
: Es la ruta de acceso real del dispositivo del disco que creaste para alojar el volumen/hana/log
.
Crea grupos de volúmenes:
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 volúmenes lógicos:
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 el sistema de archivos:
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 directorios temporales para los sistemas de archivos de SAP HANA:
mkdir -p /tmp/usr/sap mkdir -p /tmp/hana/shared mkdir -p /tmp/hana/data mkdir -p /tmp/hana/log
Activa los volúmenes recién creados con los directorios temporales:
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
Transfiere los datos del volumen de Persistent Disk de origen a los discos que creaste. Para ello, puedes usar
rsync
, instantáneas de LVM o cualquier otro método. En el siguiente ejemplo, se usa la utilidadrsync
para la transferencia de datos: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/
Desmonta los volúmenes lógicos más antiguos de los sistemas de archivos de SAP HANA:
umount /usr/sap umount /hana/shared umount /hana/data umount /hana/log
Desactiva los volúmenes temporales que creaste para los sistemas de archivos de SAP HANA:
umount /tmp/usr/sap umount /tmp/hana/shared umount /tmp/hana/data umount /tmp/hana/log
En la instancia de Compute Engine que aloja la instancia secundaria de tu base de datos de SAP HANA, desconecta el volumen de disco persistente que alojaba tus sistemas de archivos de SAP HANA:
gcloud compute instances detach-disk SECONDARY_INSTANCE_NAME --disk=SOURCE_DISK_NAME \ --zone=ZONE
Reemplaza
SOURCE_DISK_NAME
por el nombre del volumen de disco persistente que alojaba tus sistemas de archivos de SAP HANA, que deseas desconectar de la instancia de procesamiento.Como usuario raíz o un usuario que tenga acceso
sudo
, actualiza las entradas/etc/fstab
. El siguiente es un ejemplo de cómo se deben actualizar las entradas:/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
Activa los volúmenes lógicos recién creados:
mount -a
Verifica la información sobre el espacio que usan los sistemas de archivos:
df -h
El resultado es similar a este:
# 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
Asciende la instancia secundaria
Como usuario de
SID_LCadm
, registra la instancia secundaria de tu base de datos de SAP HANA con la replicación del sistema SAP HANA:hdbnsutil -sr_register --remoteHost=PRIMARY_INSTANCE_NAME \ --remoteInstance=PRIMARY_INSTANCE_NUMBER \ --replicationMode=syncmem --operationMode=logreplay \ --name=SECONDARY_INSTANCE_NAME
Reemplaza lo siguiente:
PRIMARY_INSTANCE_NAME
: Es el nombre de la instancia de Compute Engine que aloja la instancia principal de tu sistema SAP HANA.PRIMARY_INSTANCE_NUMBER
: El número de instancia de la instancia principal de tu sistema SAP HANASECONDARY_INSTANCE_NAME
: Es el nombre de la instancia de Compute Engine que aloja la instancia secundaria de tu sistema SAP HANA.
Inicia la instancia secundaria de tu base de datos de SAP HANA:
HDB start
Como alternativa, puedes usar el comando
sapcontrol
para iniciar la instancia secundaria:sapcontrol -nr INSTANCE_NUMBER -function StartSystem
En la instancia principal de tu base de datos de SAP HANA, como usuario de
SID_LCadm
, confirma que la replicación del sistema SAP HANA esté activa:python $DIR_INSTANCE/exe/python_support/systemReplicationStatus.py
Después de confirmar que la replicación del sistema está activa, establece la instancia secundaria de tu base de datos de SAP HANA como la nueva instancia principal:
crm resource move msl_SAPHana_SID_HDBINSTANCE_NUMBER SECONDARY_INSTANCE_NAME
El resultado es similar al siguiente ejemplo.
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
Verifica el estado de tu clúster de alta disponibilidad:
crm status
El resultado es similar al siguiente ejemplo.
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 ]
Como usuario raíz o usuario con acceso
sudo
, quita la restricción que garantiza que tu recurso no esté configurado para preferir una instancia específica de Compute Engine:crm resource clear msl_SAPHana_SID_HDBINSTANCE_NUMBER
El resultado es similar a este:
INFO: Removed migration constraints for msl_SAPHana_ABC_HDB00
Migra la instancia principal anterior
Para migrar la instancia principal anterior de tu sistema SAP HANA, repite los procedimientos que se proporcionan en las secciones anteriores.
Quita el clúster de HA del modo de mantenimiento:
crm maintenance off
Recurrir a discos existentes
Si la migración del disco falla, puedes usar los volúmenes de disco persistente existentes, ya que contienen los datos como existían antes de que comenzara el procedimiento de migración.
Para restablecer la base de datos de SAP HANA a su estado original, sigue estos pasos:
- Detén la instancia de Compute Engine que aloja tu base de datos de SAP HANA.
- Desconecta los volúmenes de Hyperdisk que creaste.
- Vuelve a conectar el volumen de disco persistente existente a la instancia de procesamiento.
- Inicia la instancia de procesamiento.
Limpia
Una vez que hayas migrado correctamente tus sistemas de archivos SAP HANA a discos individuales, limpia los recursos relacionados con el volumen de disco persistente que estabas usando. Esto incluye las instantáneas de disco y el disco en sí.
Para obtener información sobre cómo borrar instantáneas de disco, consulta Administra instantáneas de discos.
Para borrar el volumen de disco persistente que usaba tu sistema SAP HANA, puedes ejecutar el comando
gcloud compute disks delete
:gcloud compute disks delete SOURCE_DISK_NAME --ZONE=ZONE