Migra Persistent Disk a Hyperdisk para SAP HANA

En este documento, se describe cómo puedes migrar los volúmenes de Persistent Disk que usan tus bases de datos de SAP HANA a volúmenes de Hyperdisk de Google Cloud.

Hyperdisk, en especial Hyperdisk Extreme, proporciona un mejor rendimiento para SAP HANA que los tipos de Persistent Disk basados en SSD.

Para migrar los volúmenes de Persistent Disk que usa tu base de datos de SAP HANA a volúmenes de Hyperdisk, usa las instantáneas de disco y la opción de reinicio rápido de SAP HANA de Google Cloud.

Revisa las consideraciones sobre la migración

  • Datos de migración: La opción de reinicio rápido de SAP HANA se usa como ayuda. Reduce el tiempo de inactividad mientras se rallan los discos, ya que elimina la necesidad de esperar a que se carguen las tablas de la base de datos. Sin embargo, asegúrate de tener en cuenta el tiempo necesario para volver a cargar el almacén de filas y los tipos de datos del objeto binario grande (BLOB).
  • Tiempo de inactividad: Aunque el proceso de migración requiere un tiempo de inactividad mínimo, la duración real del tiempo de inactividad depende del tiempo que se tarda en completar las siguientes tareas:

    • Crear instantáneas de disco

      Para reducir el tiempo de inactividad mientras tomas instantáneas de disco, puedes tomar instantáneas de los discos antes de la actividad de migración planificada y, luego, tomar algunas instantáneas adicionales más cerca de la actividad, lo que genera una diferencia menor entre las instantáneas.

    • Crear volúmenes de Hyperdisk con las instantáneas de los volúmenes de Persistent Disk

    • Vuelve a cargar las tablas de SAP HANA en la memoria de SAP HANA.

  • Reversión a 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 volúmenes de Persistent Disk que usa tu base de datos de SAP HANA a volúmenes de Hyperdisk, asegúrate de que se cumplan las siguientes condiciones:

  • SAP HANA se ejecuta en instancias de Compute Engine certificadas por SAP que admiten Hyperdisk.
  • Los volúmenes /hana/data y /hana/log se alojan en discos separados.
  • La administración de volumen lógico de Linux se usa para la persistencia de almacenamiento de SAP HANA. Si bien se puede usar el almacenamiento directo, se requeriría una reasignación explícita de dispositivo a través de la tabla /etc/fstab.
  • La opción de reinicio rápido de SAP HANA está habilitada para tu sistema SAP HANA.

    Para obtener información sobre cómo habilitar esta función, consulta Habilita el reinicio rápido de SAP HANA.

  • 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.

  • El sistema de archivos tmpfs está cargado por completo con el contenido de los fragmentos de datos de MAIN. Para ver el uso del sistema de archivos, ejecuta el siguiente comando:

    df -Th

    El resultado es similar al siguiente ejemplo.

    #  df -Th
    Filesystem                        Type      Size  Used Avail Use% Mounted on
    ...
    /dev/mapper/vg_hana_shared-shared xfs       1.0T   56G  968G   6% /hana/shared
    /dev/mapper/vg_hana_data-data     xfs        14T  5.7T  8.2T  41% /hana/data
    /dev/mapper/vg_hana_log-log       xfs       512G  7.2G  505G   2% /hana/log
    /dev/mapper/vg_hana_usrsap-usrsap xfs        32G  276M   32G   1% /usr/sap
    tmpfsDB10                         tmpfs     5.7T  800G  4.9T  14% /hana/tmpfs0/DB1
    tmpfsDB11                         tmpfs     5.7T  796G  4.9T  14% /hana/tmpfs1/DB1
    tmpfsDB12                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs2/DB1
    tmpfsDB13                         tmpfs     5.7T  780G  4.9T  14% /hana/tmpfs3/DB1
    tmpfsDB14                         tmpfs     5.7T  816G  4.9T  15% /hana/tmpfs4/DB1
    tmpfsDB15                         tmpfs     5.7T  780G  4.9T  14% /hana/tmpfs5/DB1
    tmpfsDB16                         tmpfs     5.7T  816G  4.9T  15% /hana/tmpfs6/DB1
    tmpfsDB17                         tmpfs     5.7T  780G  4.9T  14% /hana/tmpfs7/DB1
    

Migra volúmenes de Persistent Disk a volúmenes de Hyperdisk

En esta sección, se describe cómo migrar los volúmenes /hana/data y /hana/log de los volúmenes de Persistent Disk a los volúmenes de Hyperdisk.

Para ilustrar el proceso de migración, se usa la siguiente configuración de ejemplo:

  • Tipo de máquina: m2-ultramem-416 (12 TB de memoria, 416 CPU virtuales)
  • Sistema de escalamiento vertical de SAP HANA implementado con el documento de Google Cloud Terraform: Guía de implementación de escalamiento vertical de SAP HANA
    • SO: SLES para SAP 15 SP1
    • SAP HANA: parche 63 de HANA 2 SPS06
    • Tipo de disco predeterminado: disco persistente SSD (pd-ssd)
    • Los volúmenes /hana/data y /hana/log se activan en discos separados y se compilan mediante LVM y XFS
    • La opción de reinicio rápido de SAP HANA está habilitada y se cargan 6 TB de datos en la base de datos. Para obtener información sobre cómo hacerlo, consulta Habilita el reinicio rápido de SAP HANA.

Para migrar volúmenes de Persistent Disk a volúmenes de Hyperdisk, sigue estos pasos:

  1. Ejecuta el comando HDB stop para detener la base de datos de SAP HANA:

    HDB stop
    

    Como alternativa, puedes ejecutar el comando sapcontrol:

    sapcontrol -nr INSTANCE_NUMBER -function StopSystem HDB
    

    Reemplaza INSTANCE_NUMBER por el número de instancia de tu sistema SAP HANA.

    Para obtener más información, consulta el documento de SAP Inicia y detén sistemas de SAP HANA.

  2. Desactiva los volúmenes /hana/data y /hana/log del sistema de archivos:

    umount /hana/data
    umount /hana/log
    
  3. Determina los nombres de los discos que alojan los volúmenes /hana/data y /hana/log con cualquiera de los siguientes métodos:

    • Ejecuta el comando ls:

      ls -l /dev/disk/by-id/
      

      El resultado muestra la asignación de nombres de disco a los dispositivos, similar al siguiente ejemplo:

      ...
      lrwxrwxrwx 1 root root  9 May 18 20:14 google-hana-vm-data00001 -> ../../sdb
      lrwxrwxrwx 1 root root  9 May 18 20:14 google-hana-vm-log00001 -> ../../sdc
      ...
      
    • Ejecuta el comando gcloud compute instances describe:

      gcloud compute instances describe INSTANCE_NAME
          --zone=ZONE
      

      Reemplaza lo siguiente:

      • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.
      • ZONE: La zona de la instancia de procesamiento.

      En el resultado, se muestran detalles sobre la instancia de procesamiento, incluidos los discos que se le adjuntan. Por ejemplo:

      gcloud compute instances describe hana-vm --zone europe-west4-a
      ...
      disks:
      - autoDelete: false
      deviceName: hana-vm-shared00001
      diskSizeGb: '1024'
      - autoDelete: false
      deviceName: hana-vm-usrsap00001
      diskSizeGb: '32'
      - autoDelete: false
      deviceName: hana-vm-data00001
      diskSizeGb: '14093'
      - autoDelete: false
      deviceName: hana-vm-log00001
      diskSizeGb: '512'
      
    • En la consola de Google Cloud, ve a la página Instancias de VM de Compute Engine y haz clic en el nombre de la instancia de procesamiento. En la sección Almacenamiento, se muestra la información del disco asociado.

  4. Crea instantáneas de los discos que alojan los volúmenes /hana/data y /hana/log:

    gcloud compute snapshots create DATA_DISK-snapshot \
      --project=PROJECT_ID \
      --source-disk-zone=SOURCE_DISK_ZONE  \
      --source-disk=DATA_DISK \
    gcloud compute snapshots create LOG_DISK-snapshot \
      --project=PROJECT_ID \
      --source-disk-zone=SOURCE_DISK_ZONE \
      --source-disk=LOG_DISK
    

    Reemplaza lo siguiente:

    • DATA_DISK: Es el nombre del disco que aloja el volumen /hana/data, que se establece como prefijo para la instantánea del disco de datos.
    • LOG_DISK: Es el nombre del disco que aloja el volumen /hana/log, que se establece como prefijo para la instantánea del disco de registro.
    • PROJECT_ID: El ID del proyecto de Google Cloud en el que se implementa el disco.
    • SOURCE_DISK_ZONE: Es la zona de Compute Engine en la que se implementa el disco.

    Para obtener más información sobre cómo crear instantáneas, consulta Crea y administra instantáneas de discos.

  5. Con las instantáneas de disco que creaste, crea volúmenes de Hyperdisk para los volúmenes /hana/data y /hana/log:

    gcloud compute disks create DATA_DISK-hd \
         --project=PROJECT_ID \
         --zone=ZONE \
         --type=HYPERDISK_TYPE \
         --provisioned-iops=IOPS_DATA_DISK \
         --source-snapshot=DATA_DISK-snapshot \
     gcloud compute disks create LOG_DISK-hd \
         --project=PROJECT_ID \
         --zone=ZONE \
         --type=HYPERDISK_TYPE \
         --provisioned-iops=IOPS_LOG_DISK \
         --source-snapshot=LOG_DISK-snapshot
    

    Reemplaza lo siguiente:

    • DATA_DISK: Es el nombre del volumen de Persistent Disk que aloja el volumen /hana/data, que se establece como prefijo del nombre del volumen de Hyperdisk que creas.
    • LOG_DISK: Es el nombre del volumen de Persistent Disk que aloja el volumen /hana/log, que se establece como prefijo del nombre del volumen de Hyperdisk que creas.
    • PROJECT_ID: el ID del proyecto de Google Cloud
    • HYPERDISK_TYPE: Es el tipo de Hyperdisk que deseas crear, como hyperdisk-extreme.
    • ZONE: La zona de Compute Engine en la que debes implementar los volúmenes de Hyperdisk.
    • IOPS_DATA_DISK: 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.
    • IOPS_LOG_DISK: Son las IOPS que deseas establecer para el hiperdisco que creas para alojar /hana/log. Debes configurar los IOPS según tus requisitos de rendimiento.

    Si creas volúmenes de Hyperdisk Balanced (hyperdisk-balanced), también puedes establecer su capacidad de procesamiento.

    Para obtener información sobre el tamaño mínimo, las IOPS y la capacidad de procesamiento que debes configurar para usar volúmenes de Hyperdisk con SAP HANA, consulta la fila correspondiente a tu tipo de máquina de Compute Engine en Tamaños mínimos para Persistent Disk basado en SSD y los volúmenes de Hyperdisk.

    Para obtener más información sobre cómo restablecer un disco a partir de una instantánea, consulta Restablece a partir de una instantánea.

  6. Desde la instancia de Compute Engine que aloja tu base de datos de SAP HANA, desconecta los volúmenes de Persistent Disk que alojan tus volúmenes /hana/data y /hana/log:

    gcloud compute instances detach-disk INSTANCE_NAME \
      --disk=DATA_DISK \
      --zone=ZONE
    gcloud compute instances detach-disk INSTANCE_NAME \
      --disk=LOG_DISK \
      --zone=ZONE
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: el nombre de tu instancia de Compute Engine
    • DATA_DISK: Es el nombre del volumen de Persistent Disk que aloja tu volumen /hana/data, que deseas desconectar.
    • LOG_DISK: Es el nombre del volumen de Persistent Disk que aloja tu volumen /hana/log, que deseas desconectar.
    • ZONE: Es la zona de Compute Engine en la que se implementa el disco.
  7. Conecta los volúmenes de Hyperdisk que creaste a la instancia de Compute Engine que aloja tu base de datos de SAP HANA:

    gcloud compute instances attach-disk INSTANCE_NAME \
        --disk=DATA_DISK-hd \
        --zone=ZONE
    gcloud compute instances attach-disk INSTANCE_NAME \
       --disk=LOG_DISK-hd \
        --zone=ZONE
    

    Reemplaza lo siguiente:

    • INSTANCE_NAME: Es el nombre de la instancia de Compute Engine.
    • DATA_DISK: Es el nombre del volumen de Hyperdisk que deseas usar para alojar el volumen /hana/data.
    • LOG_DISK: Es el nombre del volumen de Hyperdisk que deseas usar para alojar el volumen /hana/log.
    • ZONE: La zona de Compute Engine en la que se implementa Hyperdisk
  8. Para activar los volúmenes de Hyperdisk, sigue estos pasos como root o un usuario que tenga acceso sudo:

    1. Quita todas las definiciones de asignación de dispositivos para evitar conflictos de asignación de dispositivos de LVM:

      dmsetup remove_all
      
    2. Analiza todos los discos para detectar grupos de volumen, vuelve a compilar cachés y crea volúmenes faltantes, incluido LVM:

      vgscan -v --mknodes
      

      El resultado es similar a este:

      Scanning all devices to initialize lvmetad.
      Reading volume groups from cache.
      Found volume group "vg_hana_data" using metadata type lvm2
      Found volume group "vg_hana_shared" using metadata type lvm2
      Found volume group "vg_hana_log" using metadata type lvm2
      Found volume group "vg_hana_usrsap" using metadata type lvm2
      
    3. Activa los grupos de volúmenes:

      vgchange -ay
      

      El resultado es similar a este:

      1 logical volume(s) in volume group "vg_hana_data" now active
      1 logical volume(s) in volume group "vg_hana_shared" now active
      1 logical volume(s) in volume group "vg_hana_log" now active
      1 logical volume(s) in volume group "vg_hana_usrsap" now active
      
    4. Analiza volúmenes lógicos:

      lvscan
      

      El resultado es similar a este:

      ACTIVE            '/dev/vg_hana_data/data' [13.76 TiB] inherit
      ACTIVE            '/dev/vg_hana_shared/shared' [1024.00 GiB] inherit
      ACTIVE            '/dev/vg_hana_log/log' [512.00 GiB] inherit
      ACTIVE            '/dev/vg_hana_usrsap/usrsap' [32.00 GiB] inherit
      
    5. Activa los discos:

      mount -av
      

      El resultado es similar a este:

      /                        : ignored
      /boot/efi                : already mounted
      /hana/shared             : already mounted
      /hana/data               : already mounted
      /hana/log                : already mounted
      /usr/sap                 : already mounted
      swap                     : ignored
      /hana/tmpfs0/DB1         : already mounted
      /hana/tmpfs1/DB1         : already mounted
      /hana/tmpfs2/DB1         : already mounted
      /hana/tmpfs3/DB1         : already mounted
      /hana/tmpfs4/DB1         : already mounted
      /hana/tmpfs5/DB1         : already mounted
      /hana/tmpfs6/DB1         : already mounted
      /hana/tmpfs7/DB1         : already mounted
      
  9. Verifica los volúmenes nuevos:

    • Verifica el uso del sistema de archivos:

      df -Th
      

      El resultado es similar a este:

      Filesystem                        Type      Size  Used Avail Use% Mounted on
      ...
      /dev/mapper/vg_hana_shared-shared xfs       1.0T   56G  968G   6% /hana/shared
      /dev/mapper/vg_hana_usrsap-usrsap xfs        32G  277M   32G   1% /usr/sap
      tmpfsDB10                         tmpfs     5.7T  784G  4.9T  14% /hana/tmpfs0/DB1
      tmpfsDB11                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs1/DB1
      tmpfsDB12                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs2/DB1
      tmpfsDB13                         tmpfs     5.7T  782G  4.9T  14% /hana/tmpfs3/DB1
      tmpfsDB14                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs4/DB1
      tmpfsDB15                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs5/DB1
      tmpfsDB16                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs6/DB1
      tmpfsDB17                         tmpfs     5.7T  782G  4.9T  14% /hana/tmpfs7/DB1
      /dev/mapper/vg_hana_log-log       xfs       512G  7.2G  505G   2% /hana/log
      /dev/mapper/vg_hana_data-data     xfs        14T  5.7T  8.2T  41% /hana/data
      
    • Verifica que los dispositivos estén vinculados a los volúmenes nuevos:

      lsblk
      

      El resultado es similar a este:

      NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      ...
      sdd                       8:48   0    1T  0 disk
      └─vg_hana_shared-shared 254:0    0 1024G  0 lvm  /hana/shared
      sde                       8:64   0   32G  0 disk
      └─vg_hana_usrsap-usrsap 254:3    0   32G  0 lvm  /usr/sap
      sdf                       8:80   0 13.8T  0 disk
      └─vg_hana_data-data     254:1    0 13.8T  0 lvm  /hana/data
      sdg                       8:96   0  512G  0 disk
      └─vg_hana_log-log       254:2    0  512G  0 lvm  /hana/log
      
  10. Inicia tu base de datos de SAP HANA con uno de los siguientes comandos:

    • Ejecuta el comando HDB start:

      HDB start
      
    • Ejecuta el comando sapcontrol:

      sapcontrol -nr INSTANCE_NUMBER -function StartSystem HDB
      

      Reemplaza INSTANCE_NUMBER por el número de instancia de tu base de datos de SAP HANA.

      Para obtener más información, consulta Inicia y detén sistemas de SAP HANA.

Recurrir a discos existentes

Si la migración del disco falla, puedes usar los volúmenes de Persistent Disk 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:

  1. Detén la instancia de Compute Engine que aloja tu base de datos de SAP HANA.
  2. Desconecta los volúmenes de Hyperdisk que creaste.
  3. Vuelve a conectar los volúmenes de Persistent Disk existentes a la instancia de procesamiento.
  4. Inicia la instancia de procesamiento.