Terraform: Sistema de escalamiento horizontal de SAP HANA con guía de implementación de conmutación por error automática de host

En esta guía, se muestra cómo usar Terraform para implementar un sistema de escalamiento horizontal de SAP HANA que incluye la solución de conmutación por error automática de host de SAP HANA. Con Terraform, puedes implementar un sistema que cumpla con los requisitos de compatibilidad de SAP y las prácticas recomendadas de SAP y Compute Engine.

El sistema SAP HANA que se crea incluye un host principal, hasta 15 hosts de trabajador y hasta 3 hosts de reserva, todos dentro de una sola zona de Compute Engine.

El sistema también incluye el administrador de almacenamiento de Google Cloud para los nodos en espera de SAP HANA (administrador de almacenamiento para SAP HANA), que administra la transferencia de dispositivos de almacenamiento al nodo en espera durante una conmutación por error. El administrador de almacenamiento de SAP HANA está instalado en el volumen /shared de SAP HANA.

Para obtener más información de SAP sobre la solución de conmutación por error automática del host, consulta Conmutación por error automática del host

No utilices esta guía si no necesitas la función de conmutación por error automática de host. En su lugar, utiliza la Terraform: guía de implementación de SAP HANA.

Si necesitas implementar SAP HANA en un clúster de alta disponibilidad de Linux, usa una de las siguientes guías:

Esta guía está dirigida a usuarios avanzados de SAP HANA familiarizados con la configuración de escalamiento horizontal de SAP que incluye hosts de reserva de alta disponibilidad, así como sistemas de archivos de red.

Requisitos previos

Antes de crear el sistema de escalamiento horizontal de alta disponibilidad de SAP HANA, asegúrate de que se cumplan los siguientes requisitos previos:

  • Leíste la Guía de planificación de SAP HANA y la Guía de planificación de alta disponibilidad de SAP HANA.
  • Tú o tu organización deben tener una cuenta de Google Cloud y haber creado un proyecto para la implementación de SAP HANA. Para obtener información sobre cómo crear cuentas y proyectos de Google Cloud, consulta Configura la Cuenta de Google en la guía de implementación de SAP HANA.
  • Si necesitas que tu carga de trabajo de SAP se ejecute de acuerdo con los requisitos de residencia de datos, control de acceso, personal de asistencia o reglamentario, debes crear la carpeta de cargas de trabajo de Assured Workloads requerida. Para obtener más información, consulta Cumplimiento y controles soberanos para SAP en Google Cloud.
  • El medio de instalación de SAP HANA se almacena en un bucket de Cloud Storage que está disponible en tu proyecto y región de implementación. Para obtener información sobre cómo subir medios de instalación de SAP HANA a un bucket de Cloud Storage, consulta cómo crear un bucket de Cloud Storage en la guía de implementación de SAP HANA.
  • Debes tener una solución NFS, como la solución administrada de Filestore, para compartir los volúmenes /hana/shared y /hanabackup de SAP HANA entre los hosts en el sistema de escalamiento horizontal de SAP HANA. Especifica los puntos de activación para los servidores NFS en el archivo de configuración de Terraform antes de implementar el sistema. Para implementar servidores NFS de Filestore, consulta Crea instancias.
  • Se debe permitir la comunicación entre todas las VM de la subred de SAP HANA que alojan un nodo de escalamiento horizontal de SAP HANA.

  • Si el Acceso al SO está habilitado en los metadatos del proyecto, debes inhabilitar el Acceso al SO de forma temporal hasta que se complete la implementación. Para fines de implementación, este procedimiento configura las claves SSH en metadatos de instancia. Cuando el acceso al SO está habilitado, la configuración de las claves SSH basada en metadatos se inhabilita y esta implementación falla. Una vez terminada la implementación, puedes volver a habilitar el acceso al SO.

    Para obtener más información, consulte:

Crea una red

Por razones de seguridad, crea una red nueva. Puedes controlar quién tiene acceso con reglas de firewall o a través de otro método de control de acceso.

Si tu proyecto tiene una red de VPC predeterminada, no la uses. En su lugar, crea tu propia red de VPC para que las únicas reglas de firewall vigentes sean aquellas que crees de forma explícita.

Durante la implementación, las instancias de VM suelen requerir acceso a Internet para descargar el agente de Google Cloud para SAP. Si usas una de las imágenes de Linux certificadas por SAP disponibles en Google Cloud, la instancia de VM también requerirá acceso a Internet para registrar la licencia y acceder a repositorios de proveedores de SO. Una configuración con una puerta de enlace NAT y con rótulos identificadores de red de VM admite este acceso, incluso si las VM de destino no tienen IP externas.

Para crear una red de VPC para tu proyecto, completa los siguientes pasos:

  1. Crea una red de modo personalizado. Para obtener más información, consulta Cómo crear una red de modo personalizado.

  2. Crea una subred y especifica la región y el rango de IP a través de el siguiente comando. Para obtener más información, consulta Cómo agregar subredes.

Configura una puerta de enlace NAT

Si necesitas crear una o más VM sin direcciones IP públicas, debes usar la traducción de direcciones de red (NAT) para permitir que las VM accedan a Internet. Usa Cloud NAT, un servicio administrado distribuido y definido por software por Google Cloud que permite que las VM envíen paquetes salientes a Internet y reciban cualquier paquete de respuesta entrante establecido. Como alternativa, puedes configurar una VM independiente como una puerta de enlace NAT.

Para crear una instancia de Cloud NAT para tu proyecto, consulta Usa Cloud NAT.

Después de configurar Cloud NAT para tu proyecto, tus instancias de VM pueden acceder a Internet de forma segura sin una dirección IP pública.

Cómo agregar reglas de firewall

De forma predeterminada, una regla de firewall implícita bloquea las conexiones entrantes desde fuera de tu red de nube privada virtual (VPC). Para permitir conexiones entrantes, establece una regla de firewall para la VM. Después de establecer una conexión entrante con una VM, se permite el tráfico en ambas direcciones a través de esa conexión.

También puedes crear una regla de firewall para permitir el acceso externo a puertos especificados o restringir el acceso entre las VM en la misma red. Si se usa el tipo de red de VPC default, también se aplican algunas reglas predeterminadas adicionales, como la regla default-allow-internal, que permite la conectividad entre VM en la misma red en todos los puertos.

En función de la política de TI que se aplique a tu entorno, es posible que debas aislar o restringir la conectividad a tu host de base de datos, lo que puedes hacer a través de la creación de reglas de firewall.

Según la situación en la que te encuentres, puedes crear reglas de firewall para permitir los siguientes accesos:

  • Los puertos SAP predeterminados que se enumeran en TCP/IP de todos los productos SAP.
  • Conexiones desde tu computadora o tu entorno de red corporativa a tu instancia de VM de Compute Engine. Si no estás seguro de qué dirección IP usar, comunícate con el administrador de red de tu empresa.
  • Comunicación entre las VM de la subred de SAP HANA, incluida la comunicación entre los nodos en un sistema de escalamiento horizontal de SAP HANA o la comunicación entre el servidor de base de datos y los servidores de aplicaciones en una arquitectura de 3 niveles. Puedes habilitar la comunicación entre las VM si creas una regla de firewall para permitir el tráfico que se origina desde la subred.

A fin de crear las reglas de firewall para tu proyecto, consulta Crea reglas de firewall.

Crea de un sistema de escalamiento horizontal de SAP HANA con hosts de reserva

En las instrucciones que aparecen a continuación, realiza lo siguiente:

  • Crea el sistema SAP HANA mediante la invocación de Terraform con un archivo de configuración que completes.
  • Verifica la implementación.
  • Prueba el o los hosts de reserva simulando una falla del host.

Algunos de los pasos de las siguientes instrucciones usan Cloud Shell para ingresar los comandos de gcloud. Si tienes instalada la versión más reciente del SDK de Google Cloud, puedes ingresar los comandos de gcloud desde una terminal local.

Define y crea el sistema SAP HANA

En los siguientes pasos, debes descargar y completar un archivo de configuración de Terraform, usar los comandos estándar de Terraform para inicializar tu directorio de trabajo actual y descargar el complemento del proveedor de Terraform y los archivos de módulos para Google Cloud, y aplicar la configuración, que implementa las VMs, los discos persistentes y las instancias de SAP HANA.

  1. Confirma que tus cuotas actuales de los recursos del proyecto, como los discos persistentes y las CPU, son suficientes para el sistema SAP HANA que estás a punto de instalar. Si tus cuotas no son suficientes, la implementación fallará. Si quieres ver los requisitos de cuota de SAP HANA, consulta las consideraciones de precios y cuotas para SAP HANA.

    Ir a la página de cuotas

  2. Abre Cloud Shell.

    Ir a Cloud Shell

  3. Descarga el archivo de configuración sap_hana_scaleout.tf para el sistema de escalamiento horizontal de alta disponibilidad de SAP HANA en su directorio de trabajo:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_scaleout/terraform/sap_hana_scaleout.tf
  4. Abre el archivo sap_hana_scaleout.tf en el editor de código de Cloud Shell.

    Para abrir el editor de código de Cloud Shell, haz clic en el ícono de lápiz en la esquina superior derecha de la ventana de la terminal de Cloud Shell.

  5. En el archivo sap_hana_scaleout.tf, reemplaza los contenidos dentro de las comillas dobles por los valores de la instalación a fin de actualizar los siguientes valores de argumento. Por ejemplo, puedes reemplazar “ZONE” por “us-central1-f”.

    Argument Tipo de dato Descripción
    source Cadena

    Especifica la ubicación y la versión del módulo de Terraform que se usará durante la implementación.

    El archivo de configuración sap_hana_scaleout.tf incluye dos instancias del argumento source: una que está activa y otra que se incluye como un comentario. El argumento source que está activo de forma predeterminada especifica latest como la versión del módulo. La segunda instancia del argumento source, que de forma predeterminada se desactiva a través de un carácter # inicial, especifica una marca de tiempo que identifica una versión del módulo.

    Si necesitas que todas tus implementaciones usen la misma versión del módulo, quita el carácter # inicial del argumento source que especifica la marca de tiempo de la versión y agrégala al argumento source que especifica latest.

    project_id Cadena Especifica el ID del proyecto de Google Cloud en el que implementarás este sistema. Por ejemplo, my-project-x.
    zone Cadena

    Especifica la zona en la que implementas tu sistema SAP. La zona deben estar en la misma región que seleccionaste para tu subred.

    Por ejemplo, si tu subred se implementa en la región us-central1, puedes especificar una zona como us-central1-a.

    machine_type Cadena Especifica el tipo de máquina virtual (VM) de Compute Engine en el que quieres ejecutar el sistema SAP. Si necesitas un tipo de VM personalizada, especifica un tipo de VM predefinido con una cantidad de CPU virtuales más cercana al número que necesitas sin dejar de ser más grande. Una vez completada la implementación, modifica la cantidad de CPU virtuales y la cantidad de memoria.

    Por ejemplo, n1-highmem-32.

    subnetwork Cadena Especifica el nombre de la subred que creaste en un paso anterior. Si realizas la implementación en una VPC compartida, especifica este valor como SHARED_VPC_PROJECT_ID/SUBNETWORK. Por ejemplo: myproject/network1
    linux_image Cadena Especifica el nombre de la imagen del sistema operativo Linux en la que deseas implementar tu sistema SAP. Por ejemplo: rhel-9-2-sap-ha o sles-15-sp5-sap. Para obtener la lista de imágenes de sistema operativo disponibles, consulta la página Imágenes en la consola de Google Cloud.
    linux_image_project Cadena Especifica el proyecto de Google Cloud que contiene la imagen que especificaste para el argumento linux_image. Este proyecto puede ser uno propio o un proyecto de imagen de Google Cloud. En el caso de una imagen de Compute Engine, especifica rhel-sap-cloud o suse-sap-cloud. Para encontrar el proyecto de imagen de tu sistema operativo, consulta Detalles de los sistemas operativos.
    instance_name Cadena Especifica un nombre para la instancia de VM del host. El nombre solo puede contener minúsculas, números y guiones. Las instancias de VM para los hosts de trabajador y de reserva usan el mismo nombre con una w y el número de host agregado al nombre.
    sap_hana_shared_nfs Cadena Especifica el punto de activación de NFS para el volumen /hana/shared. Por ejemplo, 10.151.91.122:/hana_shared_nfs
    sap_hana_backup_nfs Cadena Especifica el punto de activación de NFS para el volumen /hanabackup. Por ejemplo, 10.216.41.122:/hana_backup_nfs
    sap_hana_deployment_bucket Cadena Para instalar SAP HANA automáticamente en las VMs implementadas, especifica la ruta de acceso del bucket de Cloud Storage que contiene los archivos de instalación de SAP HANA. No incluyas gs:// en la ruta de acceso; solo incluye el nombre del bucket y los nombres de las carpetas. Por ejemplo, my-bucket-name/my-folder.

    El bucket de Cloud Storage debe existir en el proyecto de Google Cloud que especificas para el argumento project_id.

    sap_hana_sid Cadena Para instalar SAP HANA automáticamente en las VMs implementadas, especifica el ID del sistema SAP HANA. Debe constar de tres caracteres alfanuméricos y comenzar con una letra. Todas las letras deben estar en mayúsculas. Por ejemplo, ED1.
    sap_hana_instance_number Integer Opcional. Especifica el número de instancia, de 0 a 99, del sistema SAP HANA. El valor predeterminado es 0.
    sap_hana_sidadm_password Cadena Para instalar SAP HANA automáticamente en las VMs implementadas, especifica una contraseña temporal SIDadm para que las secuencias de comandos de instalación se usen durante la implementación. La contraseña debe tener al menos 8 caracteres y debe incluir al menos una letra mayúscula, una letra minúscula y un número.

    En lugar de especificar la contraseña como texto sin formato, te recomendamos que uses un secreto. Si deseas obtener más información, consulta Administración de contraseñas.

    sap_hana_sidadm_password_secret Cadena Opcional. Si usas Secret Manager para almacenar la contraseña SIDadm, especifica el Nombre del secreto que corresponde a esta contraseña.

    En Secret Manager, asegúrate de que el valor Secret, que es la contraseña, contenga al menos 8 caracteres e incluya al menos una letra mayúscula, una letra minúscula y un número.

    Si deseas obtener más información, consulta Administración de contraseñas.

    sap_hana_system_password Cadena Para instalar SAP HANA automáticamente en las VMs implementadas, especifica una contraseña de superusuario temporal para la secuencia de comandos de instalación que se usará durante la implementación. La contraseña debe tener al menos 8 caracteres y también incluir al menos una letra mayúscula, una letra minúscula y un número.

    En lugar de especificar la contraseña como texto sin formato, te recomendamos que uses un secreto. Si deseas obtener más información, consulta Administración de contraseñas.

    sap_hana_system_password_secret Cadena Opcional. Si usas Secret Manager para almacenar la contraseña del superusuario de la base de datos, especifica el Nombre del secreto que corresponde a esta contraseña.

    En Secret Manager, asegúrate de que el valor Secret, que es la contraseña, contenga al menos 8 caracteres e incluya al menos una letra mayúscula, una letra minúscula y un número.

    Si deseas obtener más información, consulta Administración de contraseñas.

    sap_hana_double_volume_size Booleano Opcional. Para duplicar el tamaño del volumen de HANA, especifica true. Este argumento es útil cuando deseas implementar varias instancias de SAP HANA o una instancia de SAP HANA de recuperación ante desastres en la misma VM. De forma predeterminada, el tamaño del volumen se calcula automáticamente para que sea el tamaño mínimo requerido por la VM, sin dejar de cumplir con los requisitos de certificación y asistencia de SAP. El valor predeterminado es false.
    sap_hana_sidadm_uid Número entero Opcional. Especifica un valor para anular el valor predeterminado del ID de usuario SID_LCadm. El valor predeterminado es 900. Puedes cambiar esto a un valor diferente para mantener la coherencia dentro de tu entorno de SAP.
    sap_hana_sapsys_gid Número entero Opcional. Anula el ID de grupo predeterminado para sapsys. El valor predeterminado es 79.
    sap_hana_worker_nodes Número entero Especifica la cantidad de hosts de trabajador adicionales de SAP HANA que necesitas. Puedes especificar de 1 a 15 hosts de trabajador. No uses las comillas con el valor. El valor predeterminado es 1.
    sap_hana_standby_nodes Número entero Especifica la cantidad de hosts de reserva adicionales de SAP HANA que necesitas. Puedes especificar de 1 a 3 hosts de reserva. No uses las comillas con el valor. El valor predeterminado es 1.
    network_tags Cadena Opcional. Especifica una o más etiquetas de red separadas por comas que desees asociar con tus instancias de VM para un firewall o enrutamiento.

    Si especificas public_ip = false y no especificas una etiqueta de red, asegúrate de proporcionar otro medio de acceso a Internet.

    nic_type Cadena Opcional. Especifica la interfaz de red que se usará con la instancia de VM. Puedes especificar el valor GVNIC o VIRTIO_NET. Para usar una NIC virtual de Google (gVNIC), debes especificar una imagen de SO que admita gVNIC como valor del argumento linux_image. Para obtener la lista de imágenes del SO, consulta Detalles de los sistemas operativos.

    Si no especificas un valor para este argumento, la interfaz de red se selecciona automáticamente según el tipo de máquina que especifiques para el argumento machine_type.

    Este argumento está disponible en el módulo sap_hana versión 202302060649 o posterior.
    disk_type Cadena Opcional. Especifica el tipo predeterminado de disco persistente o Hyperdisk que deseas implementar para todos los volúmenes de SAP en tu implementación. El valor predeterminado es pd-ssd. Los siguientes valores son válidos para este argumento: pd-ssd, pd-balanced, hyperdisk-extreme, hyperdisk-balanced y pd-extreme.

    Ten en cuenta que cuando especificas el valor hyperdisk-extreme o hyperdisk-balanced, el directorio /usr/sap se activa en un disco persistente balanceado independiente (pd-balanced). Esto se debe a que el directorio /usr/sap no requiere un rendimiento tan alto como el directorio /hana/data o /hana/log.

    Puedes anular este tipo de disco predeterminado y los tamaños predeterminados del disco y las IOPS predeterminadas a través de algunos argumentos avanzados. Para obtener más información, navega al directorio de trabajo, ejecuta el comando terraform init y, luego, consulta el archivo /.terraform/modules/sap_hana_scaleout/variables.tf. Antes de usar estos argumentos en producción, asegúrate de probarlos en un entorno de pruebas.

    use_single_shared_data_log_disk Booleano Opcional. El valor predeterminado es false, que le indica a Terraform que implemente un disco persistente o Hyperdisk independiente para cada uno de los siguientes volúmenes de SAP: /hana/data,/hana/log, /hana/shared y /usr/sap. Para activar estos volúmenes de SAP en el mismo disco persistente o Hyperdisk, especifica true.
    public_ip Booleano Opcional. Determina si se agrega o no una dirección IP pública a la instancia de VM. El valor predeterminado es true.
    service_account Cadena Opcional. Especifica la dirección de correo electrónico de una cuenta de servicio administrada por el usuario que usarán las VM del host y los programas que se ejecutan en las VM del host. Por ejemplo: svc-acct-name@project-id.iam.gserviceaccount.com.

    Si especificas este argumento sin un valor o lo omites, la secuencia de comandos de instalación usará la cuenta de servicio predeterminada de Compute Engine. Para obtener más información, consulta la sección sobre administración de identidades y accesos para programas SAP en Google Cloud.

    sap_deployment_debug Booleano Opcional. Solo cuando Atención al cliente de Cloud te solicite habilitar la depuración para tu implementación, especifica true, lo que hace que la implementación genere registros de implementación con verbosidad. El valor predeterminado es false.
    reservation_name Cadena Opcional. A fin de usar una reserva de VM de Compute Engine específica para esta implementación, especifica el nombre de la reserva. De forma predeterminada, la secuencia de comandos de instalación selecciona cualquier reserva de Compute Engine disponible según las siguientes condiciones.

    Para que una reserva se pueda usar, sin importar si especificas un nombre o si la secuencia de comandos de instalación lo selecciona automáticamente, la reserva debe configurarse con lo siguiente:

    • La opción specificReservationRequired se configura como true o, en la consola de Google Cloud, la opción Seleccionar reserva específica está seleccionada.
    • Algunos tipos de máquinas de Compute Engine son compatibles con las plataformas de CPU que no están cubiertas por la certificación de SAP del tipo de máquina. Si la reserva de destino es para cualquiera de los siguientes tipos de máquina, la reserva debe especificar las plataformas de CPU mínimas como se indica:
      • n1-highmem-32: Broadwell de Intel
      • n1-highmem-64: Broadwell de Intel
      • n1-highmem-96: Intel Skylake
      • m1-megamem-96: Intel Skylake
    • Las plataformas de CPU mínimas para todos los demás tipos de máquinas certificados por SAP para su uso en Google Cloud cumplen con el requisito mínimo de CPU de SAP.
    vm_static_ip Cadena Opcional. Especifica una dirección IP estática válida para la instancia de VM. Si no especificas una, se generará una dirección IP de forma automática para la instancia de VM.

    Este argumento está disponible en el módulo sap_hana_scaleout versión 202306120959 o posterior.

    worker_static_ips Lista(Cadena) Opcional. Especifica un arreglo de direcciones IP estáticas válidas para las instancias de trabajador en tu sistema de escalamiento horizontal. Si no especificas un valor para este argumento, se genera una dirección IP de forma automática para cada instancia de VM de trabajador. Por ejemplo, [ "1.0.0.1", "2.3.3.4" ].

    Las direcciones IP estáticas se asignan en el orden de creación de la instancia. Por ejemplo, si eliges implementar 3 instancias de trabajador, pero especificas solo 2 direcciones IP para el argumento worker_static_ips, entonces estas direcciones IP se asignan a las primeras dos instancias de VM que implementa la configuración de Terraform. Para la tercera instancia de VM de trabajador, la dirección IP se genera automáticamente.

    Este argumento está disponible en el módulo sap_hana_scaleout versión 202306120959 o posterior.

    standby_static_ips Lista(Cadena) Opcional. Especifica un arreglo de direcciones IP estáticas válidas para las instancias en espera en tu sistema de escalamiento horizontal. Si no especificas un valor para este argumento, se genera una dirección IP de forma automática para cada instancia de VM en espera. Por ejemplo, [ "1.0.0.1", "2.3.3.4" ].

    Las direcciones IP estáticas se asignan en el orden de creación de la instancia. Por ejemplo, si eliges implementar 3 instancias en espera, pero especificas solo 2 direcciones IP para el argumento standby_static_ips, entonces estas direcciones IP se asignan a las primeras dos instancias de VM que implementa la configuración de Terraform. Para la tercera instancia de VM en espera, la dirección IP se genera de forma automática.

    Este argumento está disponible en el módulo sap_hana_scaleout versión 202306120959 o posterior.

    En el siguiente ejemplo, se muestra un archivo de configuración completado que implementa un sistema de escalamiento horizontal de SAP HANA con tres hosts de trabajador y un host de reserva en la zona us-central1-f. Cada host se instala en una VM n2-highmem-32 que ejecuta un sistema operativo Linux proporcionado por una imagen pública de Compute Engine. Filestore proporciona los volúmenes NFS. Las contraseñas temporales se usan solo durante la implementación y el procesamiento de configuración.

    Para mayor claridad, los comentarios del archivo de configuración se omiten en el ejemplo.

    # ...
    module "hana_scaleout" {
    source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_scaleout/sap_hana_scaleout_module.zip"
    #
    # By default, this source file uses the latest release of the terraform module
    # for SAP on Google Cloud. To fix your deployments to a specific release
    # of the module, comment out the source property above and uncomment the source property below.
    #
    # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana_scaleout/sap_hana_scaleout_module.zip"
    #
    # ...
    #
    project_id = "example-project-123456"
    zone = "us-central1-f"
    machine_type = "n2-highmem-32"
    subnetwork = "example-sub-network-sap"
    linux_image = "sles-15-sp4-sap"
    linux_image_project = "suse-sap-cloud"
    
    instance_name = "hana-scaleout-w-failover"
    sap_hana_shared_nfs = "10.74.146.58:/hana_shr"
    sap_hana_backup_nfs = "10.188.249.170:/hana_bup"
    # ...
    sap_hana_deployment_bucket = "hana2-sp5-rev53"
    sap_hana_sid = "HF0"
    sap_hana_instance_number = 00
    sap_hana_sidadm_password = "TempPa55word"
    sap_hana_system_password = "TempPa55word"
    # ...
    sap_hana_worker_nodes = 3
    sap_hana_standby_nodes = 1
    vm_static_ip = "10.0.0.1"
    worker_static_ips = ["10.0.0.2", "10.0.0.3", "10.0.0.4"]
    standby_static_ips = ["10.0.0.5"]
    # ...
    }
  6. Inicializa tu directorio de trabajo actual y descarga los archivos del módulo y el complemento del proveedor de Terraform para Google Cloud:

    terraform init

    El comando terraform init prepara tu directorio de trabajo para otros comandos de Terraform.

    Para forzar una actualización del complemento de proveedor y los archivos de configuración en tu directorio de trabajo, especifica la marca --upgrade. Si se omite la marca --upgrade y no realizas ningún cambio en tu directorio de trabajo, Terraform usa las copias almacenadas en caché de forma local, incluso si latest se especifica en la URL source.

  7. De manera opcional, crea el plan de ejecución de Terraform:

    terraform plan

    El comando terraform plan muestra los cambios que requiere tu configuración actual. Si omites este paso, el comando terraform apply crea automáticamente un plan nuevo y te solicita que lo apruebes.

  8. Aplica el plan de ejecución:

    terraform apply

    Cuando se te solicite aprobar las acciones, ingresa yes.

    El comando terraform apply configura la infraestructura de Google Cloud. Cuando se inicia la máquina de Compute Engine, la infraestructura de Google Cloud invoca secuencias de comandos de inicio que configuran el sistema operativo y, luego, instalan SAP HANA.

    Mientras Terraform tiene control, los mensajes de estado se escriben en Cloud Shell. Una vez que se invocan las secuencias de comandos, los mensajes de estado se escriben en Logging y se pueden ver en la consola de Google Cloud, como se describe en Verifica los registros de Logging.

    El tiempo de finalización puede variar, pero todo el proceso suele tardar entre 45 minutos y 1 hora.

Verifica la implementación

Para verificar la implementación, revisa los registros de implementación en Cloud Logging, los discos y servicios en las VM de los hosts principales y de trabajador, muestra el sistema en SAP HANA Studio y prueba la apropiación por parte de un host de reserva.

Verifica los registros

  1. En la consola de Google Cloud, abre Cloud Logging para supervisar el progreso de la instalación y verificar si hay errores.

    Ir a Cloud Logging

  2. Filtra los registros:

    Explorador de registros

    1. En la página Explorador de registros, ve al panel Consulta.

    2. En el menú desplegable Recurso, selecciona Global y, luego, haz clic en Agregar.

      Si no ves la opción Global, ingresa la siguiente consulta en el editor de consultas:

      resource.type="global"
      "Deployment"
      
    3. Haz clic en Ejecutar consulta.

    Visor de registros heredado

    • En la página Visor de registros heredado, en el menú del selector básico, selecciona Global como tu recurso de registro.
  3. Analiza los registros filtrados:

    • Si se muestra "--- Finished", el proceso de implementación está completo y puedes continuar con el siguiente paso.
    • Si ves un error de cuota, sigue estos pasos:

      1. En la página Cuotas de IAM y administración, aumenta cualquiera de las cuotas que no cumplan con los requisitos de SAP HANA que se enumeran en la Guía de planificación de SAP HANA.

      2. Abra Cloud Shell.

        Ir a Cloud Shell

      3. Ve al directorio de trabajo y borra la implementación para limpiar las VM y los discos persistentes de la instalación fallida:

        terraform destroy

        Cuando se te solicite aprobar la acción, ingresa yes.

      4. Vuelve a ejecutar tu implementación.

Conéctate a las VM para verificar los discos y servicios de SAP HANA

Una vez finalizada la implementación, confirma que los discos y los servicios de SAP HANA se implementaron correctamente, mediante la verificación de los discos y los servicios del host principal y del host de trabajador.

  1. En la página de instancias de la VM de Compute Engine, conéctate a la VM del host principal y a la VM de un host de trabajador, haciendo clic en el botón SSH en la fila de cada una de las dos instancias de VM.

    Ir a Instancias de VM

    Cuando te conectas al host de trabajador, asegúrate de que no te estás conectando a un host de reserva. Los hosts de reserva utilizan la misma convención de nomenclatura que los hosts de trabajador, pero tienen el sufijo de host de trabajador numerado más alto antes de la primera apropiación. Por ejemplo, si tienes tres hosts de trabajador y un host de reserva, antes de la primera apropiación, el host de reserva tiene el sufijo “w4”.

  2. En cada ventana de la terminal, cambia al usuario raíz.

    sudo su -
  3. En cada ventana de la terminal, visualiza el sistema de archivos de disco.

    df -h

    En el host principal, deberías ver un resultado similar al que aparece a continuación:

    hana-scaleout-w-failover:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G   18M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sdb3                        45G  6.4G   39G  15% /
    /dev/sdb2                        20M  3.0M   17M  15% /boot/efi
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    /dev/mapper/vg_hana_data-data   422G   12G  411G   3% /hana/data/HF0/mnt00001
    /dev/mapper/vg_hana_log-log     128G  7.8G  121G   7% /hana/log/HF0/mnt00001
    tmpfs                            26G     0   26G   0% /run/user/174
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/900
    tmpfs                            26G     0   26G   0% /run/user/1000

    En un host de trabajador, observa que los directorios /hana/data y /hana/log tienen diferentes activaciones:

    hana-scaleout-w-failoverw1:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    /dev/mapper/vg_hana_data-data   422G  593M  422G   1% /hana/data/HF0/mnt00002
    /dev/mapper/vg_hana_log-log     128G  3.2G  125G   3% /hana/log/HF0/mnt00002
    tmpfs                            26G     0   26G   0% /run/user/1000

    En un host de reserva, los directorios de datos y registro no se activan hasta que el host de reserva reemplace un host con errores:

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/1000
  4. En cada ventana de la terminal, cambia al usuario del sistema operativo de SAP HANA. Reemplaza SID_LC por el valor sap_hana_sid que especificaste en el archivo de configuración. El valor SID_LC debe estar en minúsculas.

    su - SID_LCadm
  5. En cada ventana de la terminal, asegúrate de que los servicios de SAP HANA, como hdbnameserver, hdbindexserver y otros, se estén ejecutando en la instancia.

    HDB info

    En el host principal, deberías ver un resultado similar al que aparece en el siguiente ejemplo truncado:

    hana-scaleout-w-failover:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failover:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      25987    25986   0.4      15248       6312 -sh
    hf0adm      26049    25987   0.0      10448       4036  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      26084    26049   0.0      19892       3864      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      22386    22385   0.0      15248       6248 -sh
    hf0adm      19164        1   0.0      13604       3124 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failover
    hf0adm      19171    19164   0.0     481188      84340  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failover/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failover/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failover
    hf0adm      19193    19171   3.4    9616860    3970304      \_ hdbnameserver
    hf0adm      19583    19171   0.3    4636456     206500      \_ hdbcompileserver
    hf0adm      19586    19171   0.3    4883932     235764      \_ hdbpreprocessor
    hf0adm      19624    19171   5.9    9896896    4193620      \_ hdbindexserver -port 30003
    hf0adm      19627    19171   1.2    7920208    1605448      \_ hdbxsengine -port 30007
    hf0adm      20072    19171   0.5    6825984     531884      \_ hdbwebdispatcher
    hf0adm      15053        1   0.0     590628      33208 hdbrsutil  --start --port 30003 --volume 3 --volumesuffix mnt00001/hdb00003.00003 --identifier 1689854702
    hf0adm      14420        1   0.0     590560      33308 hdbrsutil  --start --port 30001 --volume 1 --volumesuffix mnt00001/hdb00001 --identifier 1689854671
    hf0adm      14155        1   0.1     554820      33320 /usr/sap/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failover -D -u hf0adm
    hf0adm      14030        1   0.0      57024      11060 /usr/lib/systemd/systemd --user
    hf0adm      14031    14030   0.0     243164       4036  \_ (sd-pam)

    En un host de trabajador, deberías ver un resultado similar al que aparece en el siguiente ejemplo truncado:

    hana-scaleout-w-failoverw1:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failoverw1:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      16442    16441   0.0      15248       6276 -sh
    hf0adm      17317    16442   0.0      10448       4032  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      17352    17317   0.0      19892       3816      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      11873        1   0.0      13604       3244 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw1
    hf0adm      11880    11873   0.0     477076      84260  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw1/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw1/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failoverw1
    hf0adm      11902    11880   0.8    7738216     784912      \_ hdbnameserver
    hf0adm      12140    11880   0.4    4245828     199884      \_ hdbcompileserver
    hf0adm      12143    11880   0.4    4758024     235448      \_ hdbpreprocessor
    hf0adm      12176    11880   0.6    6046020     534448      \_ hdbwebdispatcher
    hf0adm      12210    11880   2.0    8363976    1743196      \_ hdbindexserver -port 30003
    hf0adm      10452        1   0.0     525100      33640 hdbrsutil  --start --port 30003 --volume 4 --volumesuffix mnt00002/hdb00004.00003 --identifier 1689855202
    hf0adm      10014        1   0.1     554696      31992 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw1 -D -u hf0adm

    En un host de reserva, deberías ver un resultado similar al que aparece en el siguiente ejemplo truncado:

    hana-scaleout-w-failoverw4:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failoverw4:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      15597    15596   0.5      15248       6272 -sh
    hf0adm      15659    15597   0.0      10448       4004  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      15694    15659   0.0      19892       3860      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      10285        1   0.0      13604       3244 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw4
    hf0adm      10292    10285   0.0     478076      84540  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw4/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw4/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failoverw4
    hf0adm      10314    10292   0.6    7468320     729308      \_ hdbnameserver
    hf0adm      10492    10292   0.3    3851320     191636      \_ hdbcompileserver
    hf0adm      10495    10292   0.3    4493296     227884      \_ hdbpreprocessor
    hf0adm      10528    10292   0.4    5381616     509368      \_ hdbwebdispatcher
    hf0adm       9750        1   0.0     620748      32796 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw4 -D -u hf0adm
  6. Si usas RHEL para SAP 9.0 o una versión posterior, asegúrate de que los paquetes chkconfig y compat-openssl11 estén instalados en la instancia de VM.

    Para obtener más información de SAP, consulta la Nota 3108316 de SAP: Red Hat Enterprise Linux 9.x: Instalación y configuración.

Conecta SAP HANA Studio

  1. Conéctate al host principal de SAP HANA desde SAP HANA Studio.

    Puedes conectarte desde una instancia de SAP HANA Studio que esté fuera de Google Cloud o desde una instancia en Google Cloud. Es posible que debas habilitar el acceso a la red entre las VM de destino y SAP HANA Studio.

    Para usar SAP HANA Studio en Google Cloud y habilitar el acceso al sistema SAP HANA, consulta cómo instalar SAP HANA Studio en una VM de Windows de Compute Engine.

  2. En SAP HANA Studio, haz clic en la pestaña Entorno (Landscape) en el panel de administración del sistema predeterminado. Deberías ver una pantalla similar al siguiente ejemplo.

    Captura de pantalla de la vista Entorno de SAP HANA Studio

Limpia y vuelve a intentar la implementación

Si alguno de los pasos de verificación de implementación en las secciones anteriores muestra que la instalación no se realizó de forma correcta, debes deshacer la implementación y volver a intentarlo a través de los siguientes pasos:

  1. Resuelve cualquier error para asegurarte de que tu implementación no vuelva a fallar por el mismo motivo. Si deseas obtener más información para verificar los registros o resolver errores relacionados con la cuota, consulta Verifica los registros.

  2. Abre Cloud Shell o, si instalaste Google Cloud CLI en la estación de trabajo local, abre una terminal.

    Abra Cloud Shell

  3. Ve al directorio que contiene el archivo de configuración de Terraform que usaste para esta implementación.

  4. Borra todos los recursos que forman parte de la implementación a través de la ejecución del siguiente comando:

    terraform destroy

    Cuando se te solicite aprobar la acción, ingresa yes.

  5. Vuelve a intentar la implementación como se indicó antes en esta guía.

Realiza una prueba de conmutación por error

Una vez que confirmaste que el sistema SAP HANA se implementó correctamente, prueba la función de conmutación por error.

Las siguientes instrucciones activan una conmutación por error cuando se cambia el usuario del sistema operativo SAP HANA y cuando se ingresa el comando HDB stop. El comando HDB stop inicia un cierre correcto de SAP HANA y desconecta los discos del host, lo que permite una conmutación por error relativamente rápida.

Para realizar una prueba de conmutación por error, sigue estos pasos:

  1. Conéctate a la VM de un host de trabajador con SSH. Puedes conectarte desde la página de instancias de VM de Compute Engine mediante el clic en el botón SSH para cada instancia de VM, o puedes usar tu método SSH preferido.

    Ir a Instancias de VM

  2. Cambia al usuario del sistema operativo de SAP HANA. En el siguiente comando, reemplaza SID_LC por el valor que especificaste para el argumento sap_hana_sid en tu archivo de configuración de Terraform.

    su - SID_LCadm
  3. Detén SAP HANA para simular una falla, como se indica a continuación:

    HDB stop

    El comando HDB stop inicia un cierre de SAP HANA, lo que activa una conmutación por error. Durante la conmutación por error, los discos se desconectan del host con errores y se vuelven a conectar al host de reserva. El host con errores se reinicia y se convierte en un host de reserva.

  4. Después de dejar que finalice la conmutación por error, vuelve a conectarte mediante SSH al host que reemplazó al que tuvo errores.

  5. Cambia al usuario raíz:

    sudo su -
  6. Muestra la información del sistema de archivos de disco:

    df -h

    Deberías ver un resultado similar al siguiente. Ten en cuenta que los directorios /hana/data y /hana/log del host con errores ahora están activados en el host que lo reemplazó.

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/1000
    /dev/mapper/vg_hana_data-data   422G  593M  422G   1% /hana/data/HF0/mnt00002
    /dev/mapper/vg_hana_log-log     128G  3.2G  125G   3% /hana/log/HF0/mnt00002
  7. En SAP HANA Studio, abre la vista Entorno (Landscape) del sistema SAP HANA para confirmar que la conmutación por error se realizó con éxito:

    • El estado de los hosts involucrados en la conmutación por error debe ser INFO.
    • La columna Función del servidor de índice (real) (Index Server Role [Actual]) debe mostrar el host con errores como el host de reserva nuevo.

    Captura de pantalla de la vista Entorno de SAP HANA Studio

Valida la instalación del agente de Google Cloud para SAP

Después de que hayas implementado una VM y le hayas instalado SAP NetWeaver, valida que el Agente de Google Cloud para SAP funcione de forma correcta.

Verifica que el Agente de Google Cloud para SAP esté en ejecución

Para verificar que el agente esté en ejecución, sigue estos pasos:

  1. Establece una conexión SSH con la instancia de VM del host.

  2. Ejecuta el siguiente comando:

    systemctl status google-cloud-sap-agent

    Si el agente funciona de forma correcta, el resultado contendrá active (running). Por ejemplo:

    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
    

Si el agente no está en ejecución, reinicia el agente.

Verifica que el agente de host SAP reciba métricas

Para verificar que el Agente de Google Cloud para SAP recopile las métricas de infraestructura y que se envíen de forma correcta al agente de host SAP, sigue estos pasos:

  1. En el sistema SAP, ingresa la transacción ST06.
  2. En el panel de descripción general, revisa la disponibilidad y el contenido de los siguientes campos para verificar la configuración completa y correcta de la infraestructura de supervisión de SAP y Google:

    • Proveedor de servicios en la nube: Google Cloud Platform
    • Acceso de supervisión mejorada: TRUE
    • Detalles de supervisión mejorada: ACTIVE

Configura la supervisión para SAP HANA

De manera opcional, puedes supervisar tus instancias de SAP HANA con el agente para SAP de Google Cloud. Desde la versión 2.0, puedes configurar el agente para recopilar las métricas de supervisión de SAP HANA y enviarlas a Cloud Monitoring. Cloud Monitoring te permite crear paneles para visualizar estas métricas, configurar alertas basadas en límites de métricas y mucho más.

Si deseas obtener más información sobre la recopilación de métricas de supervisión de SAP HANA mediante el agente de para SAP de Google Cloud, consulta Recopilación de métricas de supervisión de SAP HANA.

Habilita SAP HANA Fast Restart

Google Cloud recomienda enfáticamente habilitar SAP HANA Fast Restart para cada instancia de SAP HANA, en especial para instancias más grandes. SAP HANA Fast Restart reduce los tiempos de reinicio en caso de que SAP HANA finalice, pero el sistema operativo permanezca en ejecución.

Como se establece en las secuencias de comandos de automatización que proporciona Google Cloud, la configuración del kernel y el sistema operativo ya son compatibles con el reinicio rápido de SAP HANA. Debes definir el sistema de archivos tmpfs y configurar SAP HANA.

Para definir el sistema de archivos tmpfs y configurar SAP HANA, puedes seguir los pasos manuales o usar la secuencia de comandos de automatización que proporciona Google Cloud para habilitar el reinicio rápido de SAP HANA. Para obtener más información, consulta los siguientes vínculos:

Para obtener instrucciones autorizadas completas sobre Fast Restart SAP HANA, consulta la documentación de la opción Fast Restart SAP HANA.

Pasos manuales

Configura el sistema de archivos tmpfs

Después de que las VM del host y los sistemas base de SAP HANA se implementan de forma correcta, debes crear y activar directorios para los nodos de NUMA en el sistema de archivos tmpfs.

Muestra la topología de NUMA de tu VM

Para poder asignar el sistema de archivos tmpfs requerido, debes saber cuántos nodos de NUMA tiene tu VM. Si deseas mostrar los nodos de NUMA disponibles en una VM de Compute Engine, ingresa el siguiente comando:

lscpu | grep NUMA

Por ejemplo, un tipo de VM m2-ultramem-208 tiene cuatro nodos de NUMA, numerados del 0 al 3, como se muestra en el siguiente ejemplo:

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 los directorios de nodos de NUMA

Crea un directorio para cada nodo de NUMA en tu VM y configura los permisos.

Por ejemplo, para cuatro nodos de NUMA que están numerados del 0 al 3:

mkdir -pv /hana/tmpfs{0..3}/SID
chown -R SID_LCadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID
Activa los directorios de nodos de NUMA en tmpfs

Activa los directorios del sistema de archivos tmpfs y especifica una preferencia de nodo de NUMA para cada uno con mpol=prefer:

SID especifica el SID con letras mayúsculas.

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
Actualiza /etc/fstab

Para asegurarte de que los puntos de activación estén disponibles después de reiniciar el sistema operativo, agrega entradas a la tabla del sistema de archivos, /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

Opcional: Establece límites para el uso de memoria

El sistema de archivos tmpfs puede aumentar o reducirse de forma dinámica.

A fin de limitar la memoria que usa el sistema de archivos tmpfs, puedes establecer un límite de tamaño para un volumen de nodo NUMA con la opción size. Por ejemplo:

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID

También puedes limitar el uso de memoria tmpfs general de todos los nodos de NUMA para una instancia determinada de SAP HANA y un nodo del servidor determinado si configuras el parámetro persistent_memory_global_allocation_limit en la sección [memorymanager] del archivo global.ini.

Configuración de SAP HANA para Fast Restart

A fin de configurar SAP HANA para Fast Restart, actualiza el archivo global.ini y especifica las tablas que se almacenarán en la memoria persistente.

Actualiza la sección [persistence] en el archivo global.ini

Configura la sección [persistence] en el archivo global.ini de SAP HANA para hacer referencia a las ubicaciones de tmpfs. Separa cada ubicación de tmpfs con un punto y coma:

[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

En el ejemplo anterior, se especifican cuatro volúmenes de memoria para cuatro nodos de NUMA, que corresponden a m2-ultramem-208. Si ejecutas en el m2-ultramem-416, debes configurar ocho volúmenes de memoria (0..7).

Reinicia SAP HANA después de modificar el archivo global.ini.

SAP HANA ahora puede usar la ubicación de tmpfs como espacio de memoria persistente.

Especifica las tablas que se almacenarán en la memoria persistente

Especifica particiones o tablas de columnas específicas para almacenarlas en la memoria persistente.

Por ejemplo, para activar la memoria persistente en una tabla existente, ejecuta la consulta de SQL:

ALTER TABLE exampletable persistent memory ON immediate CASCADE

Para cambiar el valor predeterminado de las tablas nuevas, agrega el parámetro table_default en el archivo indexserver.ini. Por ejemplo:

[persistent_memory]
table_default = ON

Para obtener más información sobre cómo controlar las columnas, las tablas y qué vistas de supervisión proporcionan información detallada, consulta Memoria persistente de SAP HANA.

Pasos automatizados

La secuencia de comandos de automatización que proporciona Google Cloud para habilitar el reinicio rápido de SAP HANA realiza cambios en los directorios /hana/tmpfs*, el archivo /etc/fstab y la configuración de SAP HANA. Cuando ejecutas la secuencia de comandos, es posible que debas realizar pasos adicionales en función de si esta es la implementación inicial de tu sistema SAP HANA o de cambiar el tamaño de la máquina a un tamaño de NUMA diferente.

Para la implementación inicial de tu sistema SAP HANA o cambio del tamaño de la máquina a fin de aumentar la cantidad de nodos de NUMA, asegúrate de que SAP HANA se ejecute durante la ejecución de la secuencia de comandos de automatización que Google Cloud proporciona para habilitar el reinicio rápido de SAP HANA.

Cuando cambies el tamaño de tu máquina a fin de disminuir la cantidad de nodos de NUMA, asegúrate de que SAP HANA se detenga durante la ejecución de la secuencia de comandos de automatización que proporciona Google Cloud para habilitar el reinicio rápido de SAP HANA. Después de ejecutar la secuencia de comandos, debes actualizar de forma manual la configuración de SAP HANA para completar la configuración de reinicio rápido de SAP HANA. Para obtener más información, consulta Configuración de SAP HANA para un reinicio rápido.

Para habilitar el reinicio rápido de SAP HANA, sigue estos pasos:

  1. Establece una conexión SSH con la VM del host.

  2. Cambiar a la raíz:

    sudo su -

  3. Descarga la secuencia de comandos sap_lib_hdbfr.sh:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
  4. Haz que el archivo sea ejecutable:

    chmod +x sap_lib_hdbfr.sh
  5. Verifica que la configuración no tenga errores:

    vi sap_lib_hdbfr.sh
    ./sap_lib_hdbfr.sh -help

    Si el comando muestra un error, comunícate con el servicio de Atención al cliente de Cloud. Si deseas obtener más información para comunicarte con el equipo de Atención al cliente de Cloud, consulta Obtén asistencia para SAP en Google Cloud.

  6. Ejecuta la secuencia de comandos después de reemplazar el ID del sistema SAP HANA (SID) y la contraseña para el usuario SYSTEM de la base de datos SAP HANA. Para proporcionar la contraseña de forma segura, te recomendamos que uses un secreto en Secret Manager.

    Ejecuta la secuencia de comandos con el nombre de un secreto en Secret Manager. Este secreto debe existir en el proyecto de Google Cloud que contiene tu instancia de VM del host.

    sudo ./sap_lib_hdbfr.sh -h 'SID' -s SECRET_NAME 

    Reemplaza lo siguiente:

    • SID: Especifica el SID con letras mayúsculas. Por ejemplo, AHA.
    • SECRET_NAME: Especifica el nombre del secreto que corresponde a la contraseña del usuario del sistema de la base de datos de SAP HANA. Este secreto debe existir en el proyecto de Google Cloud que contiene tu instancia de VM del host.

    Como alternativa, puedes ejecutar la secuencia de comandos con una contraseña de texto sin formato. Después de habilitar el reinicio rápido de SAP HANA, asegúrate de cambiar la contraseña. No se recomienda usar una contraseña con texto sin formato, ya que tu contraseña se registraría en el historial de línea de comandos de tu VM.

    sudo ./sap_lib_hdbfr.sh -h 'SID' -p 'PASSWORD'

    Reemplaza lo siguiente:

    • SID: Especifica el SID con letras mayúsculas. Por ejemplo, AHA.
    • PASSWORD: Especifica la contraseña para el usuario del sistema de la base de datos de SAP HANA.

Para obtener una ejecución inicial exitosa, deberías ver un resultado similar al siguiente:

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)

Conéctate a SAP HANA

Ten en cuenta que dado que estas instrucciones no utilizan una dirección IP externa para SAP HANA, solo puedes conectarte a las instancias de SAP HANA a través de la instancia de bastión con SSH o del servidor de Windows con SAP HANA Studio.

  • Para conectarte a SAP HANA a través de la instancia de bastión, conéctate al host de bastión y, luego, a las instancias de SAP HANA con el cliente SSH que prefieras.

  • Para conectarte a la base de datos de SAP HANA a través de SAP HANA Studio, usa un cliente de escritorio remoto para conectarte a la instancia de Windows Server. Después de la conexión, instala SAP HANA Studio manualmente y accede a tu base de datos de SAP HANA.

Realiza tareas posteriores a la implementación

Antes de usar tu instancia de SAP HANA, te recomendamos que realices los siguientes pasos posteriores a la implementación: Para obtener más información, consulta la guía de instalación y actualización de SAP HANA.

  1. Cambia las contraseñas temporales para el administrador del sistema de SAP HANA y el superusuario de la base de datos.

  2. Actualiza el software SAP HANA con los últimos parches.

  3. Si tu sistema SAP HANA se implementa en una interfaz de red de VirtIO, te recomendamos que te asegures de que el valor del parámetro de TCP /proc/sys/net/ipv4/tcp_limit_output_bytes esté configurado como 1048576. Esta modificación ayuda a mejorar la capacidad de procesamiento general de la red en la interfaz de red de VirtIO sin afectar la latencia de la red.

  4. Instala cualquier componente adicional, como las bibliotecas de funciones de aplicaciones (AFL) o el acceso a datos inteligentes (SDA).

  5. Si actualizas un sistema SAP HANA existente, carga los datos desde el sistema existente mediante procedimientos estándar de copia de seguridad y restablecimiento, o mediante la replicación del sistema SAP HANA.

  6. Configura y haz una copia de seguridad de tu base de datos de SAP HANA nueva. Para obtener más información, consulta la Guía de operaciones de SAP HANA.

Evalúa la carga de trabajo de SAP HANA

Para automatizar las verificaciones de validación continua de las cargas de trabajo de SAP HANA que se ejecutan en Google Cloud, puedes usar Workload Manager.

Workload Manager te permite analizar y evaluar de forma automática las cargas de trabajo de SAP HANA con las prácticas recomendadas de SAP, Google Cloud y los proveedores del SO. Esto ayuda a mejorar la calidad, el rendimiento y la confiabilidad de tus cargas de trabajo.

Si deseas obtener información sobre las prácticas recomendadas que admite el administrador de cargas de trabajo para evaluar las cargas de trabajo de SAP HANA que se ejecutan en Google Cloud, consulta Prácticas recomendadas de administrador de cargas de trabajo para SAP. Para obtener información sobre cómo crear y ejecutar una evaluación mediante Workload Manager, consulta Crea y ejecuta una evaluación.

¿Qué sigue?