Déploiement automatisé de SAP HANA à haute disponibilité avec mise en œuvre d'une IPV d'équilibreur de charge

Ce guide explique comment automatiser le déploiement de SAP HANA dans un cluster à haute disponibilité (HA) Red Hat Enterprise Linux (RHEL) ou SUSE Linux Enterprise Server (SLES) utilisant l'équilibrage de charge TCP/UDP interne pour gérer l'adresse IP virtuelle (VIP).

Ce guide utilise Cloud Deployment Manager pour déployer deux machines virtuelles (VM) Compute Engine, deux systèmes à évolutivité verticale SAP HANA, une adresse IP virtuelle avec mise en œuvre d'un équilibreur de charge et un cluster à haute disponibilité basé sur le système d'exploitation, le tout conformément aux bonnes pratiques de Google Cloud, de SAP et du fournisseur du système d'exploitation.

L'un des systèmes SAP HANA fonctionne en tant que système principal, actif, et l'autre en tant que système secondaire, de secours. Vous déployez les deux systèmes SAP HANA dans la même région, de préférence dans différentes zones.

Présentation d'un cluster Linux à haute disponibilité pour un système pouvant évoluer à la hausse SAP HANA à nœud unique

Le cluster déployé inclut les fonctions et fonctionnalités suivantes :

  • Le gestionnaire de ressources de cluster à haute disponibilité Pacemaker
  • Un mécanisme de cloisonnement Google Cloud
  • Une adresse IP virtuelle (VIP) avec mise en œuvre d'un équilibreur de charge interne TCP de niveau 4, y compris :
    • Une réservation de l'adresse IP que vous choisissez comme adresse IP virtuelle
    • Deux groupes d'instances Compute Engine
    • Un équilibreur de charge interne TCP
    • Une vérification de l'état Compute Engine
  • Dans les clusters RHEL à haute disponibilité :
    • Le modèle à haute disponibilité Red Hat
    • Packages d'agent de ressources et de cloisonnement Red Hat
  • Dans les clusters SLES à haute disponibilité :
    • Le modèle à haute disponibilité SUSE
    • Le package d'agents de ressources SUSE SAPHanaSR
  • La réplication de système synchrone
  • La précharge de mémoire
  • Le redémarrage automatique de l'instance ayant échoué en tant que nouvelle instance secondaire

Pour déployer un système SAP HANA sans cluster Linux à haute disponibilité ni hôtes de secours, suivez le guide de déploiement de SAP HANA.

Ce guide est destiné aux utilisateurs avancés de SAP HANA qui connaissent bien les configurations Linux à haute disponibilité pour SAP HANA.

Prérequis

Avant de créer le cluster à haute disponibilité SAP HANA, assurez-vous que les conditions préalables suivantes sont remplies :

  • 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.
  • 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 savoir comment importer le support d'installation de SAP HANA dans un bucket Cloud Storage, consultez la section relative au téléchargement de SAP HANA dans le Guide de déploiement de SAP HANA.

  • 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. À des fins de déploiement, cette procédure configure les clés SSH dans les métadonnées de l'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 :

  • Si vous utilisez un DNS interne de VPC, la valeur de la variable VmDnsSetting dans les métadonnées de votre projet doit être GlobalOnly ou ZonalPreferred afin de permettre la résolution des noms de nœuds entre zones. Le paramètre par défaut de VmDnsSetting est ZonalOnly. 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 Monitoring de Google. 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 configurer la mise en réseau, procédez comme suit :

  1. Accédez à Cloud Shell.

    Accéder à Cloud Shell

  2. Pour créer un réseau en mode de sous-réseau personnalisé, exécutez la commande suivante :

    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    Remplacez NETWORK_NAME par le nom du nouveau réseau. Seuls les minuscules, les chiffres et le tiret (-) sont autorisés.

    Spécifiez --subnet-mode custom pour éviter d'utiliser le mode automatique par défaut, qui crée automatiquement un sous-réseau dans chaque région Compute Engine. Pour en savoir plus, consultez la section Mode de création du sous-réseau.

  3. Créez un sous-réseau, et spécifiez la région et la plage d'adresses IP :

    gcloud compute networks subnets create SUBNETWORK_NAME \
            --network NETWORK_NAME --region REGION --range RANGE

    Remplacez l'élément suivant :

    • SUBNETWORK_NAME : nom du nouveau sous-réseau.
    • NETWORK_NAME : nom du réseau que vous avez créé à l'étape précédente.
    • REGION : région dans laquelle vous souhaitez créer le sous-réseau.
    • RANGE : plage d'adresses IP spécifiée au format CIDR (par exemple, 10.1.0.0/24). Si vous envisagez d'ajouter plusieurs sous-réseaux, attribuez à chacun d'eux des plages d'adresses IP CIDR qui ne se chevauchent pas. Notez que chaque sous-réseau et ses plages d'adresses IP internes sont mappés sur une seule région.
  4. Si vous le souhaitez, répétez l'étape précédente et ajoutez d'autres 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 cloud privé virtuel (VPC). 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.

Les clusters à haute disponibilité pour SAP HANA nécessitent au moins deux règles de pare-feu, une permettant la vérification de l'état des nœuds du cluster et une autre permettant aux nœuds du cluster de communiquer entre eux.

Si vous n'utilisez pas de réseau VPC partagé, vous devez créer la règle de pare-feu destinée à la communication entre les nœuds, et non aux vérifications de l'état. Le modèle Deployment Manager crée la règle de pare-feu destinées aux vérifications de l'état, que vous pouvez modifier une fois le déploiement terminé, si nécessaire.

Si vous utilisez un réseau VPC partagé, un administrateur réseau doit créer les deux règles de pare-feu dans le projet hôte.

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.
  • Connexions SSH à votre instance de VM, y compris les connexions SSH à partir de votre navigateur.
  • Connexion à votre VM à l'aide d'un outil tiers sous Linux. Créez une règle autorisant l'accès de l'outil via votre pare-feu.

Pour créer une règle de pare-feu, procédez comme suit :

Console

  1. Dans Cloud Console, accédez à la page Règles de pare-feu.

    OUVRIR LA PAGE "RÈGLES DE PARE-FEU"

  2. En haut de la page, cliquez sur Créer une règle de pare-feu.

    • Dans le champ Réseau, sélectionnez le réseau sur lequel se trouve votre VM.
    • Dans le champ Cibles, spécifiez les ressources Google Cloud auxquelles cette règle s'applique. Par exemple, spécifiez Toutes les instances du réseau. Pour limiter la règle à des instances spécifiques sur Google Cloud, saisissez des tags dans le champ Tags cibles spécifiés.
    • Dans le champ Filtre source, sélectionnez l'une des options suivantes :
      • Plages IP pour autoriser le trafic entrant provenant d'adresses IP spécifiques. Indiquez la plage d'adresses IP dans le champ Plages d'adresses IP sources.
      • Sous-réseaux pour autoriser le trafic entrant depuis un sous-réseau particulier. Spécifiez le nom du sous-réseau dans le champ Sous-réseaux suivant. Utilisez cette option pour autoriser l'accès entre plusieurs VM dans une configuration à trois niveaux ou évolutive.
    • Dans la section Protocoles et ports, sélectionnez Protocoles et ports spécifiés, puis saisissez tcp:[PORT_NUMBER].
  3. Cliquez sur Créer pour créer la règle de pare-feu.

gcloud

Créez une règle de pare-feu à l'aide de la commande suivante :

$ gcloud compute firewall-rules create firewall-name
--direction=INGRESS --priority=1000 \
--network=network-name --action=ALLOW --rules=protocol:port \
--source-ranges ip-range --target-tags=network-tags

Créer un cluster Linux à haute disponibilité avec SAP HANA installé

Les instructions suivantes utilisent Cloud Deployment Manager pour créer un cluster RHEL ou SLES avec deux systèmes SAP HANA : un système SAP HANA principal, à un seul hôte, sur une instance de VM, et un système SAP HANA de secours sur une autre instance de VM de la même région Compute Engine. Les systèmes SAP HANA utilisent la réplication de système synchrone, et le système de secours précharge les données répliquées.

Définissez des options de configuration pour le cluster à haute disponibilité SAP HANA dans un modèle de fichier de configuration Deployment Manager.

Les instructions suivantes utilisent Cloud Shell, mais sont généralement applicables au SDK Cloud.

  1. Vérifiez que vos quotas actuels pour les ressources, telles que les disques persistants et les processeurs, sont suffisants pour les systèmes SAP HANA que vous allez installer. Si vos quotas sont insuffisants, le déploiement échoue. Pour connaître les exigences en matière de quotas 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 ou, si vous avez installé le SDK Cloud sur votre poste de travail local, ouvrez un terminal.

    Accéder à Cloud Shell

  3. Téléchargez dans votre répertoire de travail le modèle de fichier de configuration template.yaml pour le cluster SAP HANA à haute disponibilité. Pour ce faire, saisissez la commande suivante dans le SDK Cloud ou dans Cloud Shell :

    $ wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_ha_ilb/template.yaml
  4. Renommez éventuellement le fichier template.yaml pour identifier la configuration qu'il définit.

  5. Ouvrez le fichier template.yaml dans l'éditeur de code Cloud Shell ou, si vous utilisez le SDK Cloud, dans l'éditeur de texte de votre choix.

    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.

  6. Dans le fichier template.yaml, mettez à jour les valeurs de propriété en remplaçant les crochets et leur contenu par les valeurs de votre installation. Ces propriétés sont décrites dans le tableau ci-dessous.

    Pour créer des instances de VM sans installer SAP HANA, supprimez ou commentez toutes les lignes commençant par sap_hana_.

    Valeur Type de données Description
    saisir Chaîne

    Spécifie l'emplacement, le type et la version du modèle Deployment Manager à utiliser lors du déploiement.

    Le fichier YAML comprend deux spécifications type, dont l'une est laissée en commentaire. La spécification type qui est active par défaut spécifie la version du modèle en tant que latest. La spécification type qui est laissée en commentaire spécifie une version de modèle spécifique avec un horodatage.

    Si tous vos déploiements doivent utiliser la même version de modèle, utilisez la spécification type qui inclut l'horodatage.

    primaryInstanceName Chaîne Nom de l'instance de VM du système SAP HANA principal. Le nom ne doit contenir que des lettres minuscules, des chiffres ou des traits d'union.
    secondaryInstanceName Chaîne Nom de l'instance de VM du système SAP HANA secondaire. Le nom ne doit contenir que des lettres minuscules, des chiffres ou des traits d'union.
    primaryZone Chaîne Zone dans laquelle le système SAP HANA principal est déployé. Les zones principale et secondaire doivent se trouver dans la même région.
    secondaryZone Chaîne Zone dans laquelle le système SAP HANA secondaire sera déployé. Les zones principale et secondaire doivent se trouver dans la même région.
    instanceType Chaîne Type de machine virtuelle Compute Engine nécessaire à l'exécution de SAP HANA. Si vous avez besoin d'un type de VM personnalisé, spécifiez un type de VM prédéfini doté d'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.
    network Chaîne Nom du réseau dans lequel créer l'équilibreur de charge qui gère l'adresse IP virtuelle.

    Si vous utilisez un réseau VPC partagé, vous devez ajouter l'ID du projet hôte en guise de répertoire parent du nom du réseau. Par exemple : host-project-id/network-name.

    subnetwork Chaîne Nom du sous-réseau que vous utilisez pour votre cluster à haute disponibilité.

    Si vous utilisez un réseau VPC partagé, vous devez ajouter l'ID du projet hôte en guise de répertoire parent du nom du sous-réseau. Par exemple : host-project-id/subnetwork-name.

    linuxImage Chaîne Nom de la famille d'images ou de l'image du système d'exploitation Linux que vous utilisez avec SAP HANA. Pour spécifier une famille d'images, ajoutez le préfixe family/ au nom de la famille. Par exemple, family/rhel-8-2-sap-ha ou family/sles-15-sp2-sap. Pour spécifier une image donnée, indiquez uniquement son nom. Pour obtenir la liste des familles d'images disponibles, consultez la page Images dans Cloud Console.
    linuxImageProject Chaîne Le projet Google Cloud qui contient l'image que vous allez utiliser. Ce projet peut être votre propre projet ou un projet d'image Google Cloud. Pour RHEL, spécifiez rhel-sap-cloud. Pour SLES, spécifiez suse-sap-cloud. Pour obtenir la liste des projets d'image GCP, consultez la page Images dans la documentation Compute Engine.
    sap_hana_deployment_bucket Chaîne Nom du bucket de stockage GCP de votre projet contenant les fichiers d'installation de SAP HANA que vous avez importés précédemment.
    sap_hana_sid Chaîne ID du système SAP HANA. L'ID doit comporter trois caractères alphanumériques et commencer par une lettre. Les lettres doivent être saisies en majuscules.
    sap_hana_instance_number Entier Numéro d'instance (0 à 99) du système SAP HANA. La valeur par défaut est 0.
    sap_hana_sidadm_password Chaîne Un mot de passe temporaire à utiliser par l'administrateur du système d'exploitation lors du déploiement. Une fois le déploiement terminé, modifiez le mot de passe. Les mots de passe doivent comporter au moins huit caractères et inclure au moins une lettre majuscule, une lettre minuscule et un chiffre.
    sap_hana_system_password Chaîne Un mot de passe temporaire pour le super-utilisateur de la base de données. Une fois le déploiement terminé, modifiez le mot de passe. Les mots de passe doivent comporter au moins huit caractères et inclure au moins une lettre majuscule, une lettre minuscule et un chiffre..
    sap_vip Chaîne Adresse IP utilisée en guise d'adresse IP virtuelle. L'adresse IP doit être comprise dans la plage d'adresses IP attribuées à votre sous-réseau. Le modèle Deployment Manager réserve cette adresse IP pour vous. Dans un cluster à haute disponibilité actif, cette adresse IP est toujours attribuée à l'instance SAP HANA active.
    primaryInstanceGroupName Chaîne Définit le nom du groupe d'instances non géré pour le nœud principal. Si vous omettez le paramètre, le nom par défaut est ig-primaryInstanceName.
    secondaryInstanceGroupName Chaîne Définit le nom du groupe d'instances non géré pour le nœud secondaire. Si vous omettez ce paramètre, le nom par défaut est ig-secondaryInstanceName.
    loadBalancerName Chaîne Définit le nom de l'équilibreur de charge interne TCP.

    Les exemples suivants montrent un modèle de fichier de configuration terminé qui définit un cluster à haute disponibilité pour SAP HANA. Le cluster gère l'adresse IP virtuelle à l'aide de l'équilibrage de charge TCP/UDP interne.

    Deployment Manager déploie les ressources Google Cloud définies dans le fichier de configuration, puis les scripts prennent le relais pour configurer le système d'exploitation, installer SAP HANA, configurer la réplication et configurer le cluster Linux à haute disponibilité.

    Cliquez sur RHEL ou SLES pour afficher l'exemple spécifique à votre système d'exploitation.

    RHEL

    resources:
    - name: sap_hana_ha
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_ha_ilb/sap_hana_ha.py
      #
      # By default, this configuration file uses the latest release of the deployment
      # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
      # of the scripts, comment out the type property above and uncomment the type property below.
      #
      # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana_ha_ilb/sap_hana_ha.py
      #
      properties:
        primaryInstanceName: example-ha-vm1
        secondaryInstanceName: example-ha-vm2
        primaryZone: us-central1-a
        secondaryZone: us-central1-c
        instanceType: n2-highmem-32
        network: example-network
        subnetwork: example-subnet-us-central1
        linuxImage: family/rhel-8-1-sap-ha
        linuxImageProject: rhel-sap-cloud
        # SAP HANA parameters
        sap_hana_deployment_bucket: my-hana-bucket
        sap_hana_sid: HA1
        sap_hana_instance_number: 00
        sap_hana_sidadm_password: TempPa55word
        sap_hana_system_password: TempPa55word
        # VIP parameters
        sap_vip: 10.0.0.100
        primaryInstanceGroupName: ig-example-ha-vm1
        secondaryInstanceGroupName: ig-example-ha-vm2
        loadBalancerName: lb-ha1
        # Additional optional properties
        networkTag: hana-ha-ntwk-tag
        serviceAccount: sap-deploy-example@example-project-123456.iam.gserviceaccount.com

    SLES

    resources:
    - name: sap_hana_ha
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_ha_ilb/sap_hana_ha.py
      #
      # By default, this configuration file uses the latest release of the deployment
      # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
      # of the scripts, comment out the type property above and uncomment the type property below.
      #
      # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana_ha_ilb/sap_hana_ha.py
      #
      properties:
        primaryInstanceName: example-ha-vm1
        secondaryInstanceName: example-ha-vm2
        primaryZone: us-central1-a
        secondaryZone: us-central1-c
        instanceType: n2-highmem-32
        network: example-network
        subnetwork: example-subnet-us-central1
        linuxImage: family/sles-15-sp1-sap
        linuxImageProject: suse-sap-cloud
        # SAP HANA parameters
        sap_hana_deployment_bucket: my-hana-bucket
        sap_hana_sid: HA1
        sap_hana_instance_number: 00
        sap_hana_sidadm_password: TempPa55word
        sap_hana_system_password: TempPa55word
        # VIP parameters
        sap_vip: 10.0.0.100
        primaryInstanceGroupName: ig-example-ha-vm1
        secondaryInstanceGroupName: ig-example-ha-vm2
        loadBalancerName: lb-ha1
        # Additional optional properties
        networkTag: hana-ha-ntwk-tag
        serviceAccount: sap-deploy-example@example-project-123456.iam.gserviceaccount.com
  7. Créez les instances :

    $ gcloud deployment-manager deployments create deployment-name --config template-name.yaml

    La commande ci-dessus appelle Deployment Manager, qui configure l'infrastructure Google Cloud, puis contrôle manuellement un script qui installe et configure SAP HANA et le cluster à haute disponibilité.

    Lorsque Deployment Manager exerce un 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 Cloud Console, 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 moins de 30 minutes.

Vérifier le déploiement de votre système à haute disponibilité HANA

La vérification d'un cluster à haute disponibilité SAP HANA implique plusieurs procédures différentes :

  • Vérifier la journalisation
  • Vérifier la configuration de la VM et l'installation de SAP HANA
  • Vérifier l'équilibreur de charge et l'état des groupes d'instances
  • Vérifier le système SAP HANA à l'aide de SAP HANA Studio
  • Effectuer un test de basculement

Vérifier les journaux

  1. Ouvrez Logging pour rechercher les erreurs et surveiller la progression de l'installation.

    Accéder à CloudLogging

  2. Sur la page Explorateur de journaux, sélectionnez Global comme ressource dans le générateur de requêtes, puis exécutez la requête.

    • Si "--- Finished" s'affiche pour les deux instances de VM, passez à l'étape suivante.

      Affichage de Logging

    • Si les journaux contiennent des erreurs :

      1. Corrigez les erreurs.

        En cas d'erreurs de quota, accédez à la page IAM et quotas d'administration de Cloud Console et augmentez le quota de sorte qu'il ne corresponde pas aux exigences de SAP HANA. qui sont répertoriées dans le guide de planification SAP HANA.

      2. Sur la page Déploiements de Deployment Manager dans Cloud Console, supprimez le déploiement pour supprimer l'installation ayant échoué de l'ensemble de l'infrastructure.

      3. Relancez Deployment Manager.

Vérifier la configuration de la VM et l'installation de SAP HANA

  1. Une fois le système SAP HANA déployé sans erreur, connectez-vous à chaque VM à l'aide du protocole SSH. Sur la page VM instances (Instances de VM) de Compute Engine, cliquez sur le bouton SSH de votre instance de VM ou utilisez la méthode SSH de votre choix.

    Bouton SSH sur la page "VM instances" (Instances de VM) de Compute Engine

  2. Connectez-vous en tant qu'utilisateur racine.

    sudo su -
  3. À l'invite de commande, saisissez df -h. Assurez-vous d'obtenir un résultat comprenant les répertoires /hana, par exemple /hana/data.

    RHEL

    [root@example-ha-vm1 ~]# df -h
    Filesystem                        Size  Used Avail Use% Mounted on
    devtmpfs                          126G     0  126G   0% /dev
    tmpfs                             126G   54M  126G   1% /dev/shm
    tmpfs                             126G   25M  126G   1% /run
    tmpfs                             126G     0  126G   0% /sys/fs/cgroup
    /dev/sda2                          30G  5.4G   25G  18% /
    /dev/sda1                         200M  6.9M  193M   4% /boot/efi
    /dev/mapper/vg_hana-shared        251G   52G  200G  21% /hana/shared
    /dev/mapper/vg_hana-sap            32G  477M   32G   2% /usr/sap
    /dev/mapper/vg_hana-data          426G  9.8G  417G   3% /hana/data
    /dev/mapper/vg_hana-log           125G  7.0G  118G   6% /hana/log
    /dev/mapper/vg_hanabackup-backup  512G  9.3G  503G   2% /hanabackup
    tmpfs                              26G     0   26G   0% /run/user/900
    tmpfs                              26G     0   26G   0% /run/user/899
    tmpfs                              26G     0   26G   0% /run/user/1003

    SLES

    example-ha-vm1:~ # df -h
    Filesystem                        Size  Used Avail Use% Mounted on
    devtmpfs                          126G  8.0K  126G   1% /dev
    tmpfs                             189G   54M  189G   1% /dev/shm
    tmpfs                             126G   34M  126G   1% /run
    tmpfs                             126G     0  126G   0% /sys/fs/cgroup
    /dev/sda3                          30G  5.4G   25G  18% /
    /dev/sda2                          20M  2.9M   18M  15% /boot/efi
    /dev/mapper/vg_hana-shared        251G   50G  202G  20% /hana/shared
    /dev/mapper/vg_hana-sap            32G  281M   32G   1% /usr/sap
    /dev/mapper/vg_hana-data          426G  8.0G  418G   2% /hana/data
    /dev/mapper/vg_hana-log           125G  4.3G  121G   4% /hana/log
    /dev/mapper/vg_hanabackup-backup  512G  6.4G  506G   2% /hanabackup
    tmpfs                              26G     0   26G   0% /run/user/473
    tmpfs                              26G     0   26G   0% /run/user/900
    tmpfs                              26G     0   26G   0% /run/user/0
    tmpfs                              26G     0   26G   0% /run/user/1003
  4. Vérifiez l'état du nouveau cluster en saisissant la commande d'état spécifique à votre système d'exploitation :

    RHEL

    pcs status

    SLES

    crm status

    Un résultat semblable à l'exemple suivant devrait s'afficher, dans lequel les deux instances de VM sont démarrées, et où example-ha-vm1 correspond à l'instance principale active :

    RHEL

    [root@example-ha-vm1 ~]# pcs status
    Cluster name: hacluster
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm1 (version 2.0.3-5.el8_2.4-4b1f869f0f) - partition with quorum
      * Last updated: Wed Jul  7 23:05:11 2021
      * Last change:  Wed Jul  7 23:04:43 2021 by root via crm_attribute on example-ha-vm2
      * 2 nodes configured
      * 8 resource instances configured
    
    Node List:
      * Online: [ example-ha-vm1 example-ha-vm2 ]
    
    Full List of Resources:
      * STONITH-example-ha-vm1      (stonith:fence_gce):    Started example-ha-vm2
      * STONITH-example-ha-vm2      (stonith:fence_gce):    Started example-ha-vm1
      * Resource Group: g-primary:
        * rsc_healthcheck_HA1       (service:haproxy):      Started example-ha-vm2
        * rsc_vip_HA1_00    (ocf::heartbeat:IPaddr2):       Started example-ha-vm2
      * Clone Set: SAPHanaTopology_HA1_00-clone [SAPHanaTopology_HA1_00]:
        * Started: [ example-ha-vm1 example-ha-vm2 ]
      * Clone Set: SAPHana_HA1_00-clone [SAPHana_HA1_00] (promotable):
        * Masters: [ example-ha-vm2 ]
        * Slaves: [ example-ha-vm1 ]
    
    Failed Resource Actions:
      * rsc_healthcheck_HA1_start_0 on example-ha-vm1 'error' (1): call=29, status='complete', exitreason='', last-rc-change='2021-07-07 21:07:35Z', queued=0ms, exec=2097ms
      * SAPHana_HA1_00_monitor_61000 on example-ha-vm1 'not running' (7): call=44, status='complete', exitreason='', last-rc-change='2021-07-07 21:09:49Z', queued=0ms, exec=0ms
    
    Daemon Status:
      corosync: active/enabled
      pacemaker: active/enabled
      pcsd: active/enabled

    SLES

    example-ha-vm1:~ # crm status
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm1 (version 2.0.4+20200616.2deceaa3a-3.9.1-2.0.4+20200616.2deceaa3a) - partition with quorum
      * Last updated: Wed Jul  7 22:57:59 2021
      * Last change:  Wed Jul  7 22:57:03 2021 by root via crm_attribute on example-ha-vm1
      * 2 nodes configured
      * 8 resource instances configured
    
    Node List:
      * Online: [ example-ha-vm1 example-ha-vm2 ]
    
    Full List of Resources:
      * STONITH-example-ha-vm1      (stonith:external/gcpstonith):   Started example-ha-vm2
      * STONITH-example-ha-vm2      (stonith:external/gcpstonith):   Started example-ha-vm1
      * Resource Group: g-primary:
        * rsc_vip_int-primary       (ocf::heartbeat:IPaddr2):        Started example-ha-vm1
        * rsc_vip_hc-primary        (ocf::heartbeat:anything):       Started example-ha-vm1
      * Clone Set: cln_SAPHanaTopology_HA1_HDB00 [rsc_SAPHanaTopology_HA1_HDB00]:
        * Started: [ example-ha-vm1 example-ha-vm2 ]
      * Clone Set: msl_SAPHana_HA1_HDB00 [rsc_SAPHana_HA1_HDB00] (promotable):
        * Masters: [ example-ha-vm1 ]
        * Slaves: [ example-ha-vm2 ]
  5. Connectez-vous en tant qu'administrateur SAP en remplaçant [SID] dans la commande suivante par la valeur [SID] que vous avez spécifiée dans le modèle de fichier de configuration.

    su - [SID]adm
    
  6. Assurez-vous que les services SAP HANA, tels que hdbnameserver, hdbindexserver et autres services, s'exécutent sur l'instance en saisissant la commande suivante :

    HDB info
    

Vérifier l'équilibreur de charge et l'état des groupes d'instances

Pour vérifier que l'équilibreur de charge et la vérification de l'état ont été correctement configurés, vérifiez l'équilibreur de charge et les groupes d'instances dans Cloud Console.

  1. Ouvrez la page Équilibrage de charge dans Cloud Console :

    Accéder à Cloud Load Balancing

  2. Dans la liste des équilibreurs de charge, vérifiez qu'un équilibreur de charge a été créé pour votre cluster à haute disponibilité.

  3. Sur la page d'Informations sur l'équilibreur de charge, dans la colonne Opérationnel sous Groupe d'instances, dans la section Backend, confirmez que l'un des groupes d'instances indique "1/1" et l'autre "0/1". Après un failover, l'indicateur opérationnel "1/1" bascule sur le nouveau groupe d'instances actif.

    Affiche la page d'informations de l'équilibreur de charge où le groupe d'instances principal actif est indiqué par "1/1" et le serveur secondaire inactif est indiqué par "0/1".

Vérifier le système SAP HANA à l'aide de SAP HANA Studio

Vous pouvez utiliser SAP HANA Cockpit ou SAP HANA Studio pour surveiller et gérer vos systèmes SAP HANA dans un cluster à haute disponibilité.

  1. Connectez-vous au système HANA à l'aide de SAP HANA Studio. Lors de la définition de la connexion, spécifiez les valeurs suivantes :

    • Dans le volet "Specify System" (Spécifier le système), spécifiez l'adresse IP flottante comme nom d'hôte.
    • Dans le volet "Connection Properties" (Propriétés de connexion), pour l'authentification de l'utilisateur de la base de données, spécifiez le nom de super-utilisateur de la base de données, ainsi que le mot de passe que vous avez spécifié pour la propriété sap_hana_system_password dans le fichier template.yaml.

    Pour en savoir plus sur l'installation de SAP HANA Studio, consultez sur le site de SAP le Guide d'installation et de mise à jour de SAP HANA Studio.

  2. Une fois SAP HANA Studio connecté à votre système à haute disponibilité HANA, affichez la vue d'ensemble du système en double-cliquant sur le nom du système dans le volet de navigation situé sur la gauche de la fenêtre.

    Capture d'écran du volet de navigation dans SAP HANA Studio

  3. Dans l'onglet "Overview" (Aperçu), sous "General Information" (Informations générales), vérifiez les éléments suivants :

    • L'élément "Operational Status" (État opérationnel) indique "All services started" (Tous les services sont démarrés).
    • L'élément "System Replication Status" (État de la réplication du système) indique "All services are active and in sync" (Tous les services sont actifs et synchronisés).

    Capture d'écran de l'onglet "Overview" (Aperçu) dans SAP HANA Studio

  4. Confirmez le mode de réplication en cliquant sur le lien System Replication Status (État de la réplication du système) sous "General Information" (Informations générales). La réplication synchrone est indiquée par SYNCMEM dans la colonne REPLICATION_MODE (Mode de réplication) de l'onglet "System Replication" (Réplication système).

    Capture d'écran de l'onglet "System Replication Status" (État de la réplication du système) dans SAP HANA Studio

Si l'une des étapes de validation indique que l'installation a échoué, procédez comme suit :

  1. Corrigez les erreurs.
  2. Supprimez le déploiement de la page Déploiements.
  3. Recréez les instances, tel que décrit à la dernière étape de la section précédente.

Effectuer un test de basculement

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

  1. Connectez-vous à la VM principale à 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. Vous avez également la possibilité d'utiliser la méthode SSH de votre choix.

  2. À l'invite, saisissez la commande suivante :

    sudo ip link set eth0 down

    La commande ip link set eth0 down déclenche un basculement en coupant les communications avec l'hôte principal.

  3. Reconnectez-vous à l'un des hôtes à l'aide de SSH, puis connectez-vous en tant qu'utilisateur racine.

  4. Confirmez que l'hôte principal est désormais actif sur la VM qui contenait l'hôte secondaire. Le redémarrage automatique est activé dans le cluster. Par conséquent, l'hôte arrêté redémarre et prend le rôle d'hôte secondaire.

    RHEL

    pcs status

    SLES

    crm status

    Les exemples suivants montrent que les rôles de chaque hôte ont été inversés.

    RHEL

    [root@example-ha-vm1 ~]# pcs status
    Cluster name: hacluster
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm1 (version 2.0.3-5.el8_2.3-4b1f869f0f) - partition with quorum
      * Last updated: Fri Mar 19 21:22:07 2021
      * Last change:  Fri Mar 19 21:21:28 2021 by root via crm_attribute on example-ha-vm2
      * 2 nodes configured
      * 8 resource instances configured
    
    Node List:
      * Online: [ example-ha-vm1 example-ha-vm2 ]
    
    Full List of Resources:
      * STONITH-example-ha-vm1  (stonith:fence_gce):    Started example-ha-vm2
      * STONITH-example-ha-vm2  (stonith:fence_gce):    Started example-ha-vm1
      * Resource Group: g-primary:
        * rsc_healthcheck_HA1   (service:haproxy):  Started example-ha-vm2
        * rsc_vip_HA1_00    (ocf::heartbeat:IPaddr2):   Started example-ha-vm2
      * Clone Set: SAPHanaTopology_HA1_00-clone [SAPHanaTopology_HA1_00]:
        * Started: [ example-ha-vm1 example-ha-vm2 ]
      * Clone Set: SAPHana_HA1_00-clone [SAPHana_HA1_00] (promotable):
        * Masters: [ example-ha-vm2 ]
        * Slaves: [ example-ha-vm1 ]
    

    SLES

    example-ha-vm2:~ #
    Cluster Summary:
      * Stack: corosync
      * Current DC: example-ha-vm2 (version 2.0.4+20200616.2deceaa3a-3.9.1-2.0.4+20200616.2deceaa3a) - partition with quorum
      * Last updated: Thu Jul  8 17:33:44 2021
      * Last change:  Thu Jul  8 17:33:07 2021 by root via crm_attribute on example-ha-vm2
      * 2 nodes configured
      * 8 resource instances configured
    
    Node List:
      * Online: [ example-ha-vm1 example-ha-vm2 ]
    
    Full List of Resources:
      * STONITH-example-ha-vm1      (stonith:external/gcpstonith):   Started example-ha-vm2
      * STONITH-example-ha-vm2      (stonith:external/gcpstonith):   Started example-ha-vm1
      * Resource Group: g-primary:
        * rsc_vip_int-primary       (ocf::heartbeat:IPaddr2):        Started example-ha-vm2
        * rsc_vip_hc-primary        (ocf::heartbeat:anything):       Started example-ha-vm2
      * Clone Set: cln_SAPHanaTopology_HA1_HDB00 [rsc_SAPHanaTopology_HA1_HDB00]:
        * Started: [ example-ha-vm1 example-ha-vm2 ]
      * Clone Set: msl_SAPHana_HA1_HDB00 [rsc_SAPHana_HA1_HDB00] (promotable):
        * Masters: [ example-ha-vm2 ]
        * Slaves: [ example-ha-vm1 ]
  5. Sur la page d'informations sur l'équilibreur de charge de la console, confirmez que la nouvelle instance principale active affiche "1/1" dans la colonne Opérationnel. Rechargez la page si nécessaire.

    Accéder à Cloud Load Balancing

    Exemple :

    Affiche la page d'informations sur l'équilibreur de charge où l'instance "ig-example-ha-vm2" affiche "1/1" dans la colonne "Opérationnel".

  6. Dans SAP HANA Studio, confirmez que vous êtes toujours connecté au système en double-cliquant sur l'entrée du système dans le volet de navigation afin d'actualiser les informations système.

  7. Cliquez sur le lien System Replication Status (État de la réplication du système) pour confirmer que les hôtes principal et secondaire ont changé de VM et sont actifs.

    Capture d'écran de l'onglet "System Replication Status" (État de la réplication du système) dans SAP HANA Studio

Facultatif : Activer le redémarrage rapide de SAP HANA

Google Cloud recommande d'activer le redémarrage rapide SAP HANA pour chaque instance de SAP HANA, en particulier pour les instances plus importantes.

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

Pour obtenir les instructions complètes faisant autorité pour le redémarrage rapide de SAP HANA, consultez la documentation sur l'option de redémarrage rapide de SAP HANA.

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 le nombre de nœuds NUMA de 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 SIDadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID

Installer les répertoires de nœuds NUMA sur 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 :

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 à l'aide de 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 un redémarrage rapide

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

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

Configurez la section [persistence] du fichier SAP HANA global.ini pour 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écutiez sur m2-ultramem-416, vous auriez à configurer huit volumes de mémoire (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 dans la mémoire persistante

Spécifiez des tables ou des partitions de colonne spécifiques à stocker dans la 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 savoir comment contrôler les colonnes, les tables et les vues de surveillance qui fournissent des informations détaillées, consultez la page Mémoire persistante SAP HANA.

Configurer l'agent de surveillance Google pour SAP HANA

Si vous le souhaitez, vous pouvez configurer l'agent de surveillance Google pour SAP HANA, qui collecte les statistiques de SAP HANA et les envoie à Monitoring. Monitoring vous permet de créer des tableaux de bord pour visualiser vos métriques, de configurer des alertes personnalisées en fonction de seuils de métriques, etc.

Pour surveiller un cluster à haute disponibilité, installez l'agent de surveillance sur une instance de VM en dehors du cluster. Spécifiez l'adresse IP flottante du cluster en tant qu'adresse IP de l'instance hôte à surveiller.

Pour plus d'informations sur la configuration de l'agent de surveillance Google pour SAP HANA, consultez le Guide de l'utilisateur de l'agent de surveillance SAP HANA.

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 de suivre la procédure 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 du système SAP HANA.

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

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

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

Étape suivante