Terraform : guide de déploiement du système SAP HANA à évolutivité horizontale avec basculement automatique des hôtes

Ce guide explique comment utiliser Terraform pour déployer un système SAP HANA à évolutivité horizontale qui inclut la solution de reprise après sinistre par basculement automatique des hôtes SAP HANA. Avec Terraform, vous pouvez déployer un système qui répond aux exigences de compatibilité SAP, et respecte les bonnes pratiques de SAP et de Compute Engine.

Le système SAP HANA obtenu comprend 1 hôte maître, 15 hôtes de calcul au maximum et jusqu'à 3 hôtes de secours, qui sont tous situés dans une même zone Compute Engine.

Le système comprend également le gestionnaire d'espace de stockage Google Cloud pour les nœuds de secours SAP HANA (gestionnaire d'espace de stockage pour SAP HANA), qui gère le transfert d'appareils de stockage sur le nœud de secours lors d'un basculement. Le gestionnaire d'espace de stockage pour SAP HANA est installé dans le volume SAP HANA /shared. Pour en savoir plus sur le gestionnaire d'espace de stockage pour SAP HANA et les autorisations IAM requises, consultez la section Gestionnaire d'espace de stockage pour SAP HANA.

Pour en savoir plus sur la solution de basculement automatique des hôtes, consultez la page Basculement automatique des hôtes.

N'utilisez pas ce guide si vous n'avez pas besoin de la fonctionnalité de basculement automatique des hôtes. Consultez plutôt la page Terraform : guide de déploiement de SAP HANA.

Si vous devez déployer SAP HANA dans un cluster Linux haute disponibilité, utilisez l'un des guides suivants :

Ce guide est destiné aux utilisateurs avancés de SAP HANA qui sont familiarisés avec les configurations à évolutivité horizontale SAP incluant des hôtes de secours pour la haute disponibilité, ainsi que des systèmes de fichiers réseau.

Prérequis

Avant de créer le système à évolutivité horizontale et haute disponibilité SAP HANA, assurez-vous que les prérequis suivants sont respectés :

  • Vous avez lu le guide de planification SAP HANA et le guide de planification de la haute disponibilité pour SAP HANA.
  • Vous ou votre organisation disposez d'un compte Google Cloud et avez créé un projet pour le déploiement de SAP HANA. Pour en savoir plus sur la création de comptes et de projets Google Cloud, consultez la section Configurer votre compte Google dans le guide de déploiement de SAP HANA.
  • Si vous souhaitez que votre charge de travail SAP s'exécute conformément aux exigences liées à la résidence des données, au contrôle des accès, au personnel d'assistance ou à la réglementation, vous devez créer le dossier Assured Workloads requis. Pour en savoir plus, consultez la page Contrôles de conformité et de souveraineté pour SAP sur Google Cloud.
  • Le support d'installation de SAP HANA se trouve dans un bucket Cloud Storage disponible dans votre projet et votre région de déploiement. Pour en savoir plus sur l'importation de support d'installation SAP HANA dans un bucket Cloud Storage, consultez la section Créer un bucket Cloud Storage dans le guide de déploiement de SAP HANA.
  • Vous disposez d'une solution NFS, telle que la solution Filestore, pour partager les volumes SAP HANA /hana/shared et /hanabackup entre les hôtes du système à évolutivité horizontale SAP HANA. Vous devez spécifier les points de montage des serveurs NFS dans le fichier de configuration de Terraform pour pouvoir déployer le système. Pour déployer des serveurs Filestore NFS, consultez la page Créer des d'instances.
  • La communication doit être autorisée entre toutes les VM du sous-réseau SAP HANA qui hébergent un nœud SAP HANA à évolutivité horizontale.

  • Si OS Login est activé dans les métadonnées de votre projet, vous devrez le désactiver temporairement jusqu'à la fin du déploiement. Pour le déploiement, cette procédure configure les clés SSH dans les métadonnées d'instance. Lorsque OS Login est activé, les configurations de clé SSH basées sur les métadonnées sont désactivées et le déploiement échoue. Une fois le déploiement terminé, vous pouvez réactiver OS Login.

    Pour en savoir plus, consultez les pages suivantes :

Créer un réseau

Pour des raisons de sécurité, nous vous recommandons de créer un réseau, dont vous contrôlez les accès en ajoutant des règles de pare-feu ou toute autre méthode.

Si votre projet dispose d'un réseau VPC par défaut, ne l'utilisez pas. À la place, créez votre propre réseau VPC afin que les seules règles de pare-feu appliquées soient celles que vous créez explicitement.

Lors du déploiement, les instances de VM nécessitent généralement un accès à Internet pour télécharger l'agent Google Cloud pour SAP. Si vous utilisez l'une des images Linux certifiées SAP disponibles dans Google Cloud, l'instance de VM requiert également l'accès à Internet pour enregistrer la licence et accéder aux dépôts des fournisseurs d'OS. Une configuration comprenant une passerelle NAT et des tags réseau de VM permet aux VM cibles d'accéder à Internet même si elles ne possèdent pas d'adresses IP externes.

Pour créer un réseau VPC pour votre projet, procédez comme suit :

  1. Créez un réseau en mode personnalisé. Pour plus d'informations, consultez la section Créer un réseau en mode personnalisé.

  2. Créez un sous-réseau, puis spécifiez la région et la plage d'adresses IP. Pour plus d'informations, consultez la section Ajouter des sous-réseaux.

Configurer une passerelle NAT

Si vous avez besoin de créer une ou plusieurs VM sans adresse IP publique, vous devez utiliser la traduction d'adresse réseau (NAT) pour permettre aux VM d'accéder à Internet. Utilisez Cloud NAT, un service géré distribué et défini par logiciel de Google Cloud, qui permet aux VM d'envoyer des paquets sortants vers Internet et de recevoir tous les paquets de réponses entrants établis correspondants. Vous pouvez également configurer une VM distincte en tant que passerelle NAT.

Pour créer une instance Cloud NAT pour votre projet, consultez la page Utiliser Cloud NAT.

Une fois que vous avez configuré Cloud NAT pour votre projet, vos instances de VM peuvent accéder en toute sécurité à Internet sans adresse IP publique.

Ajouter des règles de pare-feu

Par défaut, une règle de pare-feu implicite bloque les connexions entrantes provenant de l'extérieur de votre réseau VPC (Virtual Private Cloud, cloud privé virtuel). Pour autoriser les connexions entrantes, configurez une règle de pare-feu pour votre VM. Une fois qu'une connexion entrante est établie avec une VM, le trafic est autorisé dans les deux sens via cette connexion.

Vous pouvez également créer une règle de pare-feu pour autoriser l'accès externe à des ports spécifiés ou pour limiter l'accès entre plusieurs VM d'un même réseau. Si le type de réseau VPC default est utilisé, d'autres règles par défaut s'appliquent également, telles que la règle default-allow-internal, qui permet la connectivité entre les VM d'un même réseau sur tous les ports.

En fonction de la stratégie informatique applicable à votre environnement, vous devrez peut-être isoler votre hôte de base de données, ou en restreindre la connectivité, en créant des règles de pare-feu.

Selon votre scénario, vous pouvez créer des règles de pare-feu afin d'autoriser l'accès pour ce qui suit :

  • Ports SAP par défaut répertoriés dans le tableau listant les ports TCP/IP de tous les produits SAP.
  • Connexions à partir de votre ordinateur ou de votre environnement de réseau d'entreprise à votre instance de VM Compute Engine. Si vous ne savez pas quelle adresse IP utiliser, contactez l'administrateur réseau de votre entreprise.
  • Communication entre VM sur le sous-réseau SAP HANA, y compris la communication entre les nœuds d'un système à évolutivité horizontale SAP HANA ou la communication entre le serveur de base de données et les serveurs d'applications dans une architecture à trois niveaux. Pour activer la communication entre VM, vous pouvez créer une règle de pare-feu autorisant le trafic provenant du sous-réseau.

Consultez la section Créer des règles de pare-feu pour savoir comment créer des règles de pare-feu.

Créer un système SAP HANA à évolutivité horizontale avec des hôtes de secours

Dans la procédure ci-dessous, vous allez effectuer les opérations suivantes :

  • Créez le système SAP HANA en appelant Terraform avec un fichier de configuration rempli.
  • Vérifier le déploiement
  • Tester un ou plusieurs hôtes de secours en simulant une défaillance d'un hôte

Certaines des étapes des instructions suivantes utilisent Cloud Shell pour saisir les commandes gcloud. Si la dernière version de Google Cloud SDK est installée, vous pouvez saisir les commandes gcloud à partir d'un terminal local.

Définir et créer le système SAP HANA

Dans la procédure ci-dessous, vous allez télécharger et compléter un fichier de configuration Terraform, utiliser les commandes Terraform standards pour initialiser votre répertoire de travail actuel, télécharger le plug-in du fournisseur Terraform et les fichiers de modules pour Google Cloud, puis appliquer la configuration qui déploie les VM, les disques persistants et les instances SAP HANA.

  1. Vérifiez que vos quotas actuels pour les ressources de projet, telles que les disques persistants et les processeurs, sont suffisants pour le système SAP HANA que vous êtes sur le point d'installer. Si les quotas sont insuffisants, le déploiement échoue. Pour connaître les exigences de quota de SAP HANA, consultez la section Remarques relatives aux tarifs et aux quotas applicables à SAP HANA.

    Accéder à la page "Quotas"

  2. Ouvrez Cloud Shell.

    Accéder à Cloud Shell

  3. Téléchargez le fichier de configuration sap_hana_scaleout.tf pour le système à évolutivité horizontale et à haute disponibilité SAP HANA dans votre répertoire de travail :

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_scaleout/terraform/sap_hana_scaleout.tf
  4. Ouvrez le fichier sap_hana_scaleout.tf dans l'éditeur de code Cloud Shell.

    Pour ce faire, cliquez sur l'icône en forme de crayon située dans l'angle supérieur droit de la fenêtre du terminal Cloud Shell.

  5. Dans le fichier sap_hana_scaleout.tf, mettez à jour les valeurs d'argument suivantes en remplaçant le contenu entre guillemets doubles par les valeurs de votre installation. Par exemple, vous pouvez remplacer "ZONE" par "us-central1-f".

    Argument Type de données Description
    source Chaîne

    Spécifie l'emplacement et la version du module Terraform à utiliser lors du déploiement.

    Le fichier de configuration sap_hana_scaleout.tf comprend deux instances de l'argument source : l'une active et l'autre incluse en tant que commentaire. L'argument source actif par défaut spécifie latest comme version de module. La deuxième instance de l'argument source, qui est désactivée par défaut par un caractère # de début, spécifie un horodatage qui identifie une version de module.

    Si vous avez besoin que tous vos déploiements utilisent la même version de module, supprimez le caractère # de début de l'argument source qui spécifie l'horodatage de la version, puis ajoutez-le à l'argument source spécifiant latest.

    project_id Chaîne Indiquez l'ID de votre projet Google Cloud dans lequel vous déployez ce système. Par exemple, my-project-x.
    zone Chaîne

    Spécifiez la zone dans laquelle vous déployez votre système SAP. Cette zone doit se trouver dans la même région que celle que vous avez sélectionnée pour votre sous-réseau.

    Par exemple, si votre sous-réseau est déployé dans la région us-central1, vous pouvez spécifier une zone telle que us-central1-a.

    machine_type Chaîne Spécifiez le type de machine virtuelle (VM) Compute Engine sur lequel vous devez exécuter votre système SAP. Si vous avez besoin d'un type de VM personnalisé, spécifiez un type de VM prédéfini avec un nombre de processeurs virtuels le plus proche possible de la quantité dont vous avez besoin tout en étant légèrement supérieur. Une fois le déploiement terminé, modifiez le nombre de processeurs virtuels et la quantité de mémoire.

    Par exemple, n1-highmem-32.

    subnetwork Chaîne Spécifiez le nom du sous-réseau que vous avez créé à une étape précédente. Si vous procédez au déploiement sur un VPC partagé, spécifiez cette valeur en tant que SHARED_VPC_PROJECT_ID/SUBNETWORK. Exemple : myproject/network1.
    linux_image Chaîne Indiquez le nom de l'image du système d'exploitation Linux sur laquelle vous souhaitez déployer votre système SAP. Par exemple, rhel-9-2-sap-ha ou sles-15-sp5-sap. Pour obtenir la liste des images de système d'exploitation disponibles, consultez la page Images dans la console Google Cloud.
    linux_image_project Chaîne Spécifiez le projet Google Cloud qui contient l'image que vous avez spécifiée pour l'argument linux_image. Ce projet peut être votre propre projet ou un projet d'image Google Cloud. Pour une image Compute Engine, spécifiez rhel-sap-cloud ou suse-sap-cloud. Pour trouver le projet d'image correspondant à votre système d'exploitation, consultez la page Détails des systèmes d'exploitation.
    instance_name Chaîne Spécifiez un nom pour l'instance de VM hôte. Le nom peut contenir des lettres minuscules, des chiffres et des traits d'union. Les instances de VM des hôtes de calcul et de secours utilisent le même nom, auquel sont ajoutés la lettre w et le numéro d'hôte.
    sap_hana_shared_nfs Chaîne Spécifiez le point d'installation NFS du volume /hana/shared. Par exemple, 10.151.91.122:/hana_shared_nfs.
    sap_hana_backup_nfs Chaîne Spécifiez le point d'installation NFS du volume /hanabackup. Par exemple, 10.216.41.122:/hana_backup_nfs.
    sap_hana_deployment_bucket Chaîne Pour installer automatiquement SAP HANA sur les VM déployées, spécifiez le chemin du bucket Cloud Storage contenant les fichiers d'installation de SAP HANA. N'incluez pas gs:// dans le chemin. Incluez uniquement le nom du bucket et celui des dossiers. Exemple : my-bucket-name/my-folder.

    Le bucket Cloud Storage doit exister dans le projet Google Cloud que vous spécifiez pour l'argument project_id.

    sap_hana_sid Chaîne Pour installer automatiquement SAP HANA sur les VM déployées, spécifiez l'ID système SAP HANA. L'ID doit comporter trois caractères alphanumériques et commencer par une lettre. Toutes les lettres doivent être en majuscules. Par exemple, ED1.
    sap_hana_instance_number Entier Facultatif. Spécifiez le numéro d'instance (0 à 99) du système SAP HANA. La valeur par défaut est 0.
    sap_hana_sidadm_password Chaîne Pour installer automatiquement SAP HANA sur les VM déployées, spécifiez un mot de passe SIDadm temporaire pour les scripts d'installation à utiliser lors du déploiement. Le mot de passe doit contenir au moins huit caractères et inclure au moins une lettre majuscule, une lettre minuscule et un chiffre.

    Au lieu de spécifier le mot de passe en texte brut, nous vous recommandons d'utiliser un secret. Pour en savoir plus, consultez la section Gestion des mots de passe.

    sap_hana_sidadm_password_secret Chaîne Facultatif. Si vous utilisez Secret Manager pour stocker le mot de passe SIDadm, spécifiez le nom du secret correspondant à ce mot de passe.

    Dans Secret Manager, assurez-vous que la valeur du secret, qui correspond au mot de passe, contient au moins huit caractères et au moins une lettre majuscule, une lettre minuscule et un chiffre.

    Pour en savoir plus, consultez la section Gestion des mots de passe.

    sap_hana_system_password Chaîne Pour installer automatiquement SAP HANA sur les VM déployées, spécifiez le mot de passe temporaire d'un super-utilisateur de base de données pour les scripts d'installation à utiliser lors du déploiement. Le mot de passe doit contenir au moins huit caractères et inclure au moins une lettre majuscule, une lettre minuscule et un chiffre.

    Au lieu de spécifier le mot de passe en texte brut, nous vous recommandons d'utiliser un secret. Pour en savoir plus, consultez la section Gestion des mots de passe.

    sap_hana_system_password_secret Chaîne Facultatif. Si vous utilisez Secret Manager pour stocker le mot de passe du super-utilisateur de la base de données, spécifiez le nom du secret correspondant à ce mot de passe.

    Dans Secret Manager, assurez-vous que la valeur du secret, qui correspond au mot de passe, contient au moins huit caractères et au moins une lettre majuscule, une lettre minuscule et un chiffre.

    Pour en savoir plus, consultez la section Gestion des mots de passe.

    sap_hana_double_volume_size Booléen Facultatif. Pour doubler la taille du volume HANA, spécifiez true. Cet argument est utile lorsque vous souhaitez déployer plusieurs instances SAP HANA ou une instance SAP HANA de reprise après sinistre sur la même VM. Par défaut, la taille du volume est calculée automatiquement pour correspondre à la taille minimale requise pour votre VM, tout en respectant les exigences de certification et de compatibilité SAP. La valeur par défaut est false.
    sap_hana_sidadm_uid Entier Facultatif. Spécifiez une valeur pour remplacer la valeur par défaut de l'ID de l'utilisateur administrateur SID_LC. La valeur par défaut est 900. Vous pouvez la remplacer par une autre valeur pour garantir la cohérence dans votre environnement SAP.
    sap_hana_sapsys_gid Entier Facultatif. Remplace l'ID de groupe par défaut défini pour sapsys. La valeur par défaut est 79.
    sap_hana_worker_nodes Entier Spécifiez le nombre d'hôtes de calcul SAP HANA supplémentaires dont vous avez besoin. Vous pouvez spécifier 1 à 15 hôtes de calcul. Ne mettez pas la valeur entre guillemets. La valeur par défaut est 1.
    sap_hana_standby_nodes Entier Spécifiez le nombre d'hôtes de secours SAP HANA supplémentaires dont vous avez besoin. Vous pouvez spécifier 1 à 3 hôtes de secours. Ne mettez pas la valeur entre guillemets. La valeur par défaut est de 1.
    network_tags Chaîne Facultatif. Spécifiez un ou plusieurs tags réseau séparés par une virgule que vous souhaitez associer à vos instances de VM à des fins de routage ou de pare-feu.

    Si vous spécifiez public_ip = false et ne spécifiez pas de tag réseau, veillez à fournir un autre moyen d'accès à Internet.

    nic_type Chaîne Facultatif. Spécifie l'interface réseau à utiliser avec l'instance de VM. Vous pouvez spécifier la valeur GVNIC ou VIRTIO_NET. Pour utiliser une carte d'interface réseau virtuelle Google (gVNIC), vous devez spécifier une image de l'OS compatible avec gVNIC comme valeur de l'argument linux_image. Pour obtenir la liste des images de l'OS, consultez la section Détails des systèmes d'exploitation.

    Si vous ne spécifiez pas de valeur pour cet argument, l'interface réseau est automatiquement sélectionnée en fonction du type de machine que vous spécifiez pour l'argument machine_type.

    Cet argument est disponible dans la version 202302060649, ou ultérieure, du module sap_hana.
    disk_type Chaîne Facultatif. Spécifiez le type de volume Persistent Disk ou Hyperdisk par défaut que vous souhaitez déployer pour les volumes de données et de journaux SAP de votre déploiement. Pour en savoir plus sur le déploiement de disque par défaut effectué par les configurations Terraform fournies par Google Cloud, consultez la page Déploiement de disque par Terraform.

    Voici des valeurs valides pour cet argument : pd-ssd, pd-balanced, hyperdisk-extreme, hyperdisk-balanced et pd-extreme.

    Vous pouvez remplacer ce type de disque par défaut, ainsi que la taille de disque par défaut et les IOPS par défaut à l'aide de certains arguments avancés. Pour en savoir plus, accédez à votre répertoire de travail, exécutez la commande terraform init, puis consultez le fichier /.terraform/modules/sap_hana_scaleout/variables.tf. Avant d'utiliser ces arguments en production, veillez à les tester dans un environnement hors production.

    use_single_shared_data_log_disk Booléen Facultatif. La valeur par défaut est false, qui indique à Terraform de déployer un disque persistant ou un hyperdisque distinct pour chacun des volumes SAP suivants : /hana/data ,/hana/log ,/hana/shared et/usr/sap. Pour installer ces volumes SAP sur le même disque persistant ou hyperdisque, spécifiez true.
    public_ip Booléen Facultatif. Détermine si une adresse IP publique est ajoutée ou non à votre instance de VM. La valeur par défaut est true.
    service_account Chaîne Facultatif. Spécifiez l'adresse e-mail d'un compte de service géré par l'utilisateur qui sera utilisée par les VM hôtes et par les programmes qui s'exécutent sur celles-ci. Par exemple, svc-acct-name@project-id.iam.gserviceaccount.com.

    Si vous spécifiez cet argument sans valeur ou si vous l'omettez, le script d'installation utilise le compte de service Compute Engine par défaut. Pour en savoir plus, consultez la page Gestion de l'authentification et des accès pour les programmes SAP sur Google Cloud.

    sap_deployment_debug Booléen Facultatif. Lorsque Cloud Customer Care vous demande d'activer le débogage pour votre déploiement, spécifiez true, qui permet au déploiement de générer des journaux de déploiement détaillés. La valeur par défaut est false.
    reservation_name Chaîne Facultatif. Pour utiliser une réservation de VM Compute Engine spécifique pour ce déploiement, spécifiez le nom de la réservation. Par défaut, le script d'installation sélectionne toute réservation Compute Engine disponible en fonction des conditions suivantes.

    Que vous définissiez son nom ou que le script d'installation le sélectionne automatiquement, la réservation doit être définie comme suit pour être utilisable :

    • L'option specificReservationRequired est définie sur true ou, dans la console Google Cloud, l'option Sélectionner une réservation spécifique est sélectionnée.
    • Certains types de machines Compute Engine sont compatibles avec les plates-formes de processeur qui ne sont pas couvertes par la certification SAP de ce type de machine. Si la réservation cible concerne l'un des types de machines suivants, la réservation doit spécifier les plates-formes de processeur minimales, comme indiqué :
      • n1-highmem-32 : Intel Broadwell
      • n1-highmem-64 : Intel Broadwell
      • n1-highmem-96 : Intel Skylake
      • m1-megamem-96 : Intel Skylake
    • Les plates-formes de processeur minimales pour tous les autres types de machines certifiés par SAP pour une utilisation sur Google Cloud sont conformes à la configuration minimale requise de processeur SAP.
    vm_static_ip Chaîne Facultatif. Spécifiez une adresse IP statique valide pour l'instance de VM. Si vous n'en spécifiez pas, une adresse IP est automatiquement générée pour votre instance de VM.

    Cet argument est disponible dans la version 202306120959, ou ultérieure, du module sap_hana_scaleout.

    worker_static_ips List(String) Facultatif. Spécifiez un tableau d'adresses IP statiques valides pour les instances de nœuds de calcul de votre système à scaling horizontal. Si vous ne spécifiez pas de valeur pour cet argument, une adresse IP est automatiquement générée pour chaque instance de VM de nœud de calcul. Par exemple, [ "1.0.0.1", "2.3.3.4" ].

    Les adresses IP statiques sont attribuées dans l'ordre de création des instances. Par exemple, si vous choisissez de déployer trois instances de nœud de calcul, mais ne spécifiez que deux adresses IP pour l'argument worker_static_ips, ces adresses IP sont attribuées aux deux premières instances de VM que la configuration Terraform déploie. Pour la troisième instance de VM de nœud de calcul, l'adresse IP est générée automatiquement.

    Cet argument est disponible dans la version 202306120959, ou ultérieure, du module sap_hana_scaleout.

    standby_static_ips List(String) Facultatif. Spécifiez un tableau d'adresses IP statiques valides pour les instances de secours de votre système à scaling horizontal. Si vous ne spécifiez pas de valeur pour cet argument, une adresse IP est générée automatiquement pour chaque instance de VM de secours. Par exemple, [ "1.0.0.1", "2.3.3.4" ].

    Les adresses IP statiques sont attribuées dans l'ordre de création des instances. Par exemple, si vous choisissez de déployer trois instances de secours, mais ne spécifiez que deux adresses IP pour l'argument standby_static_ips, ces adresses IP sont attribuées aux deux premières instances de VM que la configuration Terraform déploie. Pour la troisième instance de VM de secours, l'adresse IP est générée automatiquement.

    Cet argument est disponible dans la version 202306120959, ou ultérieure, du module sap_hana_scaleout.

    L'exemple ci-dessous montre un fichier de configuration terminé permettant de déployer un système SAP HANA à évolutivité horizontale avec trois hôtes de calcul et un hôte de secours dans la us-central1-f. Chaque hôte est installé sur une VM n2-highmem-32 qui exécute un système d'exploitation Linux fourni par une image publique Compute Engine. Les volumes NFS sont fournis par Filestore. Les mots de passe temporaires ne sont utilisés que lors du traitement de la configuration et du déploiement.

    Pour plus de clarté, les commentaires du fichier de configuration sont omis dans l'exemple.

    # ...
    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. Initialisez votre répertoire de travail actuel et téléchargez le plug-in du fournisseur Terraform et les fichiers de modules pour Google Cloud :

    terraform init

    La commande terraform init prépare votre répertoire de travail pour d'autres commandes Terraform.

    Pour forcer l'actualisation du plug-in du fournisseur et des fichiers de configuration dans votre répertoire de travail, spécifiez l'option --upgrade. Si l'option --upgrade est omise et que vous n'apportez aucune modification à votre répertoire de travail, Terraform utilise les copies mises en cache localement, même si latest est spécifié dans l'URL source.

  7. Vous pouvez également créer le plan d'exécution Terraform :

    terraform plan

    La commande terraform plan affiche les modifications requises par votre configuration actuelle. Si vous ignorez cette étape, la commande terraform apply crée automatiquement un plan et vous invite à l'approuver.

  8. Appliquez le plan d'exécution :

    terraform apply

    Lorsque vous êtes invité à approuver les actions, saisissez yes.

    La commande terraform apply configure l'infrastructure Google Cloud. Lorsque la machine Compute Engine démarre, l'infrastructure Google Cloud appelle des scripts de démarrage qui configurent le système d'exploitation et installent SAP HANA.

    Lorsque Terraform a le contrôle, les messages d'état sont écrits dans Cloud Shell. Une fois les scripts appelés, les messages d'état sont écrits dans Logging et peuvent être consultés dans la console Google Cloud, comme décrit dans la section Vérifier les journaux Logging.

    La durée d'exécution peut varier, mais l'ensemble du processus prend généralement entre 45 minutes et 1 heure.

Vérifier le déploiement

Pour vérifier le déploiement, vérifiez les journaux de déploiement dans Cloud Logging, vérifiez les disques et services sur les VM des hôtes principaux et de calcul, affichez le système dans SAP HANA Studio et testez la reprise par un hôte de secours.

Vérifier les journaux

  1. Dans la console Google Cloud, ouvrez Cloud Logging pour surveiller la progression de l'installation et rechercher les erreurs.

    Accéder à CloudLogging

  2. Filtrez les journaux :

    Explorateur de journaux

    1. Sur la page Explorateur de journaux, accédez au volet Requête.

    2. Dans le menu déroulant Ressource, sélectionnez Global, puis cliquez sur Ajouter.

      Si l'option Global n'apparaît pas, saisissez la requête suivante dans l'éditeur de requête :

      resource.type="global"
      "Deployment"
      
    3. Cliquez sur Exécuter la requête.

    Ancienne visionneuse de journaux

    • Sur la page Ancienne visionneuse de journaux, dans le menu de sélection de base, sélectionnez Global comme ressource de journalisation.
  3. Analysez les journaux filtrés :

    • Si "--- Finished" s'affiche, le traitement du déploiement est terminé, et vous pouvez passer à l'étape suivante.
    • Si vous rencontrez une erreur de quota :

      1. Sur la page Quotas de IAM & Admin, augmentez les quotas qui ne répondent pas aux exigences de SAP HANA décrites dans le guide de planification SAP HANA.

      2. Ouvrez Cloud Shell.

        Accéder à Cloud Shell

      3. Accédez à votre répertoire de travail et supprimez le déploiement pour nettoyer les VM et les disques persistants de l'installation ayant échoué :

        terraform destroy

        Lorsque vous êtes invité à approuver l'action, saisissez yes.

      4. Réexécutez le déploiement.

Se connecter aux VM pour contrôler les disques et les services SAP HANA

Une fois le déploiement terminé, assurez-vous que les disques et les services SAP HANA sont correctement déployés. Pour ce faire, contrôlez les disques et les services de l'hôte maître et d'un hôte de calcul.

  1. Sur la page "Instances de VM" Compute Engine, connectez-vous à la VM de l'hôte maître et à la VM d'un hôte de calcul en cliquant sur le bouton "SSH" qui se trouve sur la ligne de chacune des deux instances de VM.

    Accéder à la page "Instances de VM"

    Veillez à bien vous connecter à l'hôte de calcul, et non à un hôte de secours. Les hôtes de secours utilisent la même convention de dénomination que les hôtes de calcul, mais le suffixe d'hôte de calcul le plus élevé avant la première reprise est ajouté à leur nom. Par exemple, si vous utilisez trois hôtes de calcul et un hôte de secours, avant la première reprise, le suffixe de l'hôte de secours est "w4".

  2. Dans chaque fenêtre de terminal, connectez-vous en tant qu'utilisateur racine.

    sudo su -
  3. Dans chaque fenêtre de terminal, affichez le système de fichiers du disque.

    df -h

    Sur l'hôte maître, un résultat semblable au suivant doit s'afficher :

    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

    Sur un hôte de calcul, vous pouvez constater que les répertoires /hana/data et /hana/log ont des points de montage différents :

    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

    Sur un hôte de secours, les répertoires data et log ne sont pas montés tant que l'hôte ne prend pas le relais d'un hôte défaillant :

    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. Dans chaque fenêtre de terminal, connectez-vous en tant qu'utilisateur du système d'exploitation SAP HANA. Remplacez SID_LC par la valeur sap_hana_sid que vous avez spécifiée dans le fichier de configuration. La valeur SID_LC doit être en minuscules.

    su - SID_LCadm
  5. Dans chaque fenêtre de terminal, assurez-vous que les services SAP HANA, tels que hdbnameserver, hdbindexserver et d'autres, s'exécutent sur l'instance.

    HDB info

    Sur l'hôte maître, la sortie qui s'affiche doit être semblable à la sortie dans l'exemple tronqué suivant :

    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)

    Sur un hôte de calcul, la sortie qui s'affiche doit être semblable à la sortie dans l'exemple tronqué suivant :

    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

    Sur un hôte de secours, la sortie qui s'affiche doit être semblable à la sortie dans l'exemple tronqué suivant :

    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 vous utilisez RHEL pour SAP 9.0 ou une version ultérieure, assurez-vous que les packages chkconfig et compat-openssl11 sont installés sur votre instance de VM.

    Pour en savoir plus, consultez la note SAP 3108316 – Red Hat Enterprise Linux 9.x : installation et configuration.

Connecter SAP HANA Studio

  1. Connectez-vous à l'hôte maître SAP HANA à partir de SAP HANA Studio.

    Vous pouvez vous connecter à partir d'une instance de SAP HANA Studio située en dehors de Google Cloud ou d'une instance sur Google Cloud. Vous devrez peut-être activer l'accès réseau entre les VM cibles et SAP HANA Studio.

    Pour utiliser SAP HANA Studio sur Google Cloud et autoriser l'accès au système SAP HANA, consultez la section Installer SAP HANA Studio sur une VM Windows Compute Engine.

  2. Dans SAP HANA Studio, cliquez sur l'onglet Landscape (Environnement) dans le panneau d'administration système par défaut. Un écran semblable à l'exemple suivant doit s'afficher :

    Capture d'écran de la vue Landscape (Environnement) dans SAP HANA Studio

Nettoyer et réessayer le déploiement

Si l'une des étapes de vérification du déploiement des sections précédentes indique que l'installation a échoué, vous devez annuler votre déploiement et réessayer en procédant comme suit :

  1. Corrigez les erreurs pour vous assurer que votre déploiement n'échouera pas à nouveau pour la même raison. Pour en savoir plus sur la vérification des journaux ou la résolution des erreurs liées aux quotas, consultez la section Vérifier les journaux.

  2. Ouvrez Cloud Shell ou, si vous avez installé Google Cloud CLI sur votre poste de travail local, ouvrez un terminal.

    Ouvrir Cloud Shell

  3. Accédez au répertoire contenant le fichier de configuration Terraform que vous avez utilisé pour ce déploiement.

  4. Supprimez toutes les ressources faisant partie de votre déploiement en exécutant la commande suivante :

    terraform destroy

    Lorsque vous êtes invité à approuver l'action, saisissez yes.

  5. Relancez le déploiement comme indiqué précédemment dans ce guide.

Effectuer un test de basculement

Après avoir vérifié que le système SAP HANA a bien été déployé, testez la fonction de basculement.

Les instructions suivantes déclenchent un basculement en vous connectant en tant qu'utilisateur du système d'exploitation SAP HANA et en saisissant la commande HDB stop. La commande HDB stop lance un arrêt progressif de SAP HANA et dissocie les disques de l'hôte, ce qui permet un basculement relativement rapide.

Pour effectuer un test de basculement, procédez comme suit :

  1. Connectez-vous à la VM d'un hôte de calcul à l'aide de SSH. Vous pouvez vous connecter à partir de la page Instances de VM de Compute Engine en cliquant sur le bouton "SSH" de chaque instance de VM, ou bien en utilisant la méthode SSH de votre choix.

    Accéder à la page "Instances de VM"

  2. Connectez-vous en tant qu'utilisateur du système d'exploitation SAP HANA. Dans la commande suivante, remplacez SID_LC par la valeur que vous avez spécifiée pour l'argument sap_hana_sid dans votre fichier de configuration Terraform.

    su - SID_LCadm
  3. Simulez une défaillance en arrêtant SAP HANA :

    HDB stop

    La commande HDB stop provoque l'arrêt de SAP HANA, ce qui déclenche un basculement. Pendant le basculement, les disques sont dissociés de l'hôte défaillant et réassociés à l'hôte de secours. L'hôte défaillant est redémarré et devient un hôte de secours.

  4. Attendez que l'opération de reprise se termine, puis reconnectez-vous via SSH à l'hôte ayant pris le relais de l'hôte défaillant.

  5. Passez en utilisateur racine :

    sudo su -
  6. Affichez les informations du système de fichiers du disque :

    df -h

    Des résultats semblables aux lignes suivantes devraient s'afficher. Notez que les répertoires /hana/data et /hana/log de l'hôte défaillant sont désormais montés sur l'hôte qui a pris le relais.

    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. Dans SAP HANA Studio, ouvrez la vue Landscape (Environnement) du système SAP HANA, puis vérifiez les points suivants pour vous assurer que le basculement a bien été effectué :

    • L'état des hôtes impliqués dans le basculement doit être INFO.
    • Dans la colonne Index Server Role (Actual) (Rôle du serveur d'index (actuel)), l'hôte défaillant doit désormais s'afficher en tant que nouvel hôte de secours.

    Capture d'écran de la vue Landscape (Environnement) dans SAP HANA Studio

Vérifier l'installation de l'agent Google Cloud pour SAP

Après avoir déployé une VM et installé le système SAP, vérifiez que l'agent Google Cloud pour SAP fonctionne correctement.

Vérifier que l'agent Google Cloud pour SAP est en cours d'exécution

Pour vérifier que l'agent est en cours d'exécution, procédez comme suit :

  1. Établissez une connexion SSH avec votre instance Compute Engine.

  2. Exécutez la commande suivante :

    systemctl status google-cloud-sap-agent

    Si l'agent fonctionne correctement, la sortie contient active (running). Exemple :

    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 l'agent n'est pas en cours d'exécution, redémarrez-le.

Vérifier que l'agent hôte SAP reçoit les métriques

Pour vérifier que les métriques d'infrastructure sont collectées par l'agent Google Cloud pour SAP et envoyées correctement à l'agent hôte SAP, procédez comme suit :

  1. Dans votre système SAP, saisissez la transaction ST06.
  2. Dans le volet de synthèse, vérifiez la disponibilité et le contenu des champs suivants pour vous assurer de la configuration de façon correcte et complète de l'infrastructure de surveillance SAP et Google :

    • Fournisseur cloud : Google Cloud Platform
    • Accès à la surveillance améliorée : TRUE
    • Détails de la surveillance améliorée : ACTIVE

Configurer la surveillance pour SAP HANA

Vous pouvez éventuellement surveiller vos instances SAP HANA à l'aide de l'agent Google Cloud pour SAP. À partir de la version 2.0, vous pouvez configurer l'agent de sorte qu'il collecte les métriques de surveillance SAP HANA et les envoie à Cloud Monitoring. Cloud Monitoring vous permet de créer des tableaux de bord pour visualiser ces métriques, de configurer des alertes en fonction de seuils de métriques, etc.

Pour en savoir plus sur la collecte des métriques de surveillance SAP HANA à l'aide de l'agent Google Cloud pour SAP, consultez Collecte des métriques de surveillance SAP HANA.

Activer le redémarrage rapide de SAP HANA

Google Cloud recommande fortement d'activer le redémarrage rapide SAP HANA pour chaque instance de SAP HANA, en particulier pour les instances de grande capacité. Le redémarrage rapide de SAP HANA réduit le temps de redémarrage en cas d'arrêt de SAP HANA, mais le système d'exploitation reste en cours d'exécution.

Comme configuré par les scripts d'automatisation fournis par Google Cloud, les paramètres du système d'exploitation et du noyau sont déjà compatibles avec le redémarrage rapide de SAP HANA. Vous devez définir le système de fichiers tmpfs et configurer SAP HANA.

Pour définir le système de fichiers tmpfs et configurer SAP HANA, vous pouvez suivre les étapes manuelles ou utiliser le script d'automatisation fourni par Google Cloud pour activer le redémarrage rapide de SAP HANA. Pour en savoir plus, consultez les pages suivantes :

Pour obtenir des instructions faisant autorité sur la fonction de redémarrage rapide SAP HANA, consultez la documentation sur les options de redémarrage rapide de SAP HANA.

Étapes manuelles

Configurer le système de fichiers tmpfs

Une fois les VM hôtes et les systèmes SAP HANA de base déployés, vous devez créer et installer des répertoires pour les nœuds NUMA du système de fichiers tmpfs.

Afficher la topologie NUMA de votre VM

Pour pouvoir mapper le système de fichiers tmpfs requis, vous devez connaître la quantité de nœuds NUMA dont dispose votre VM. Pour afficher les nœuds NUMA disponibles sur une VM Compute Engine, saisissez la commande suivante :

lscpu | grep NUMA

Par exemple, un type de VM m2-ultramem-208 comporte quatre nœuds NUMA, numérotés de 0 à 3, comme illustré dans l'exemple suivant :

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
Créer les répertoires de nœuds NUMA

Créez un répertoire pour chaque nœud NUMA de votre VM et définissez les autorisations.

Par exemple, pour quatre nœuds NUMA numérotés de 0 à 3 :

mkdir -pv /hana/tmpfs{0..3}/SID
chown -R SID_LCadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID
Installer les répertoires de nœuds NUMA dans tmpfs

Montez les répertoires du système de fichiers tmpfs et spécifiez une préférence de nœud NUMA pour chacun avec mpol=prefer :

SID : spécifiez le SID en majuscules.

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
Mettre à jour /etc/fstab

Pour vous assurer que les points d'installation sont disponibles après un redémarrage du système d'exploitation, ajoutez des entrées dans la table du système de fichiers, /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

Facultatif : définir des limites à l'utilisation de la mémoire

Le système de fichiers tmpfs peut augmenter ou diminuer de manière dynamique.

Pour limiter la mémoire utilisée par le système de fichiers tmpfs, vous pouvez définir une limite de taille pour un volume de nœuds NUMA en utilisant l'option size. Exemple :

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

Vous pouvez également limiter l'utilisation globale de la mémoire tmpfs pour tous les nœuds NUMA d'une instance SAP HANA donnée et d'un nœud de serveur donné en définissant le paramètre persistent_memory_global_allocation_limit dans la section [memorymanager] du fichier global.ini.

Configuration de SAP HANA pour le redémarrage rapide

Pour configurer SAP HANA pour le redémarrage rapide, mettez à jour le fichier global.ini et spécifiez les tables à stocker dans la mémoire persistante.

Mettre à jour la section [persistence] du fichier global.ini

Configurez la section [persistence] du fichier SAP HANA global.ini de manière à référencer les emplacements tmpfs. Séparez chaque emplacement tmpfs par un point-virgule :

[persistence]
basepath_datavolumes = /hana/data
basepath_logvolumes = /hana/log
basepath_persistent_memory_volumes = /hana/tmpfs0/SID;/hana/tmpfs1/SID;/hana/tmpfs2/SID;/hana/tmpfs3/SID

L'exemple précédent spécifie quatre volumes de mémoire pour quatre nœuds NUMA, ce qui correspond à m2-ultramem-208. Si vous l'exécutez sur m2-ultramem-416, vous devez configurer huit volumes de mémoire (de 0 à 7).

Redémarrez SAP HANA après avoir modifié le fichier global.ini.

SAP HANA peut désormais utiliser l'emplacement tmpfs comme espace de mémoire persistant.

Spécifier les tables à stocker en mémoire persistante

Spécifiez des tables ou partitions de colonne spécifiques à stocker en mémoire persistante.

Par exemple, pour activer la mémoire persistante pour une table existante, exécutez la requête SQL :

ALTER TABLE exampletable persistent memory ON immediate CASCADE

Pour modifier la valeur par défaut des nouvelles tables, ajoutez le paramètre table_default dans le fichier indexserver.ini. Exemple :

[persistent_memory]
table_default = ON

Pour en savoir plus sur le contrôle des colonnes et des tables ainsi que sur les vues de surveillance qui fournissent des informations détaillées, consultez la page Mémoire persistante SAP HANA.

Étapes automatisées

Le script d'automatisation fourni par Google Cloud pour activer le redémarrage rapide de SAP HANA apporte des modifications aux répertoires /hana/tmpfs*, au fichier /etc/fstab et à la configuration de SAP HANA. Lorsque vous exécuterez le script, vous devrez peut-être effectuer des étapes supplémentaires selon qu'il s'agit du déploiement initial de votre système SAP HANA ou que vous redimensionnez votre machine sur une autre taille NUMA.

Pour le déploiement initial de votre système SAP HANA ou le redimensionnement de la machine pour augmenter le nombre de nœuds NUMA, assurez-vous que SAP HANA est en cours d'exécution pendant l'exécution du script d'automatisation fourni par Google Cloud pour activer le redémarrage rapide de SAP HANA.

Lorsque vous redimensionnez votre machine pour réduire le nombre de nœuds NUMA, assurez-vous que SAP HANA est arrêté pendant l'exécution du script d'automatisation fourni par Google Cloud pour permettre le redémarrage rapide de SAP HANA. Une fois le script exécuté, vous devez mettre à jour manuellement la configuration SAP HANA pour terminer la configuration du redémarrage rapide de SAP HANA. Pour en savoir plus, consultez la section Configuration de SAP HANA pour le redémarrage rapide.

Pour activer le redémarrage rapide de SAP HANA, procédez comme suit :

  1. Établissez une connexion SSH avec votre VM hôte.

  2. Passez en mode root :

    sudo su -

  3. Téléchargez le script sap_lib_hdbfr.sh :

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
  4. Rendez le fichier exécutable :

    chmod +x sap_lib_hdbfr.sh
  5. Vérifiez que le script ne comporte aucune erreur :

    vi sap_lib_hdbfr.sh
    ./sap_lib_hdbfr.sh -help

    Si la commande renvoie une erreur, contactez le Cloud Customer Care. Pour en savoir plus sur la procédure à suivre pour contacter le service client, consultez la page Obtenir de l'aide concernant SAP sur Google Cloud.

  6. Exécutez le script après avoir remplacé l'ID système (SID) et le mot de passe SAP HANA de l'utilisateur système de la base de données SAP HANA. Pour fournir le mot de passe en toute sécurité, nous vous recommandons d'utiliser un secret dans Secret Manager.

    Exécutez le script en utilisant le nom d'un secret dans Secret Manager. Ce secret doit exister dans le projet Google Cloud qui contient votre instance de VM hôte.

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

    Remplacez les éléments suivants :

    • SID : spécifiez le SID en majuscules. Par exemple, AHA.
    • SECRET_NAME : spécifiez le nom du secret correspondant au mot de passe de l'utilisateur système de la base de données SAP HANA. Ce secret doit exister dans le projet Google Cloud qui contient votre instance de VM hôte.

    Vous pouvez également exécuter le script en utilisant un mot de passe en texte brut. Une fois le redémarrage rapide de SAP HANA activé, veillez à modifier votre mot de passe. L'utilisation d'un mot de passe en texte brut n'est pas recommandée, car celui-ci serait enregistré dans l'historique de ligne de commande de votre VM.

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

    Remplacez les éléments suivants :

    • SID : spécifiez le SID en majuscules. Par exemple, AHA.
    • PASSWORD : spécifiez le mot de passe de l'utilisateur système de la base de données SAP HANA.

Dans le cas d'une exécution initiale réussie, vous devez obtenir une sortie semblable à celle-ci :

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)

Se connecter à SAP HANA

Étant donné qu'aucune adresse IP externe n'est utilisée pour SAP HANA dans ces instructions, vous ne pouvez vous connecter aux instances SAP HANA que via l'instance bastion à l'aide de SSH ou via le serveur Windows à l'aide de SAP HANA Studio.

  • Pour vous connecter à SAP HANA via l'instance bastion, connectez-vous à l'hôte bastion, puis aux instances SAP HANA à l'aide du client SSH de votre choix.

  • Pour vous connecter à la base de données SAP HANA via SAP HANA Studio, utilisez un client Bureau à distance pour vous connecter à l'instance Windows Server. Une fois la connexion établie, installez SAP HANA Studio manuellement, puis accédez à votre base de données SAP HANA.

Effectuer des tâches post-déploiement

Avant d'utiliser votre instance SAP HANA, nous vous recommandons d'effectuer les étapes de post-déploiement ci-dessous. Pour en savoir plus, consultez le guide d'installation et de mise à jour de SAP HANA.

  1. Modifiez les mots de passe temporaires de l'administrateur système et du super-utilisateur de la base de données SAP HANA.

  2. Mettez à jour le logiciel SAP HANA avec les derniers correctifs.

  3. Si votre système SAP HANA est déployé sur une interface réseau VirtIO, nous vous recommandons de vous assurer que la valeur du paramètre TCP /proc/sys/net/ipv4/tcp_limit_output_bytes est définie sur 1048576. Cette modification permet d'améliorer le débit réseau global sur l'interface réseau VirtIO sans affecter la latence du réseau.

  4. Installez des composants supplémentaires tels que les bibliothèques Application Function Library (AFL) ou Smart Data Access (SDA).

  5. Si vous mettez à niveau un système SAP HANA existant, chargez les données à partir du système existant à l'aide de procédures de sauvegarde et de restauration standards ou en utilisant la réplication du système SAP HANA.

  6. Configurez et sauvegardez votre nouvelle base de données SAP HANA. Pour en savoir plus, consultez le Guide d'utilisation de SAP HANA.

Évaluer votre charge de travail SAP HANA

Pour automatiser les vérifications de validation continues pour vos charges de travail SAP HANA exécutées sur Google Cloud, vous pouvez utiliser le gestionnaire de charges de travail.

Le gestionnaire de charges de travail vous permet d'analyser et d'évaluer automatiquement vos charges de travail SAP HANA en fonction des bonnes pratiques des fournisseurs SAP, Google Cloud et OS. Cela permet d'améliorer la qualité, les performances et la fiabilité de vos charges de travail.

Pour en savoir plus sur les bonnes pratiques compatibles avec le gestionnaire de charges de travail pour évaluer les charges de travail SAP HANA exécutées sur Google Cloud, consultez la page Bonnes pratiques pour le gestionnaire de charges de travail SAP. Pour en savoir plus sur la création et l'exécution d'une évaluation à l'aide du gestionnaire de charges de travail, consultez la page Créer et exécuter une évaluation.

Étapes suivantes