Migrer un disque persistant vers Hyperdisk pour SAP HANA

Ce document explique comment migrer les volumes de disques persistants utilisés par vos bases de données SAP HANA vers des volumes Google Cloud Hyperdisk.

Hyperdisk, en particulier Hyperdisk Extreme, offre de meilleures performances pour SAP HANA que les types de disques persistants basés sur SSD.

Pour migrer les volumes de disques persistants utilisés par votre base de données SAP HANA vers des volumes Hyperdisk, vous devez utiliser les instantanés de disque de Google Cloud et l'option de redémarrage rapide SAP HANA.

Examiner les considérations sur la migration

  • Données de migration: l'option Fast Restart de SAP HANA est utilisée comme assistant. Elle réduit les temps d'arrêt lors du grattage des disques en éliminant le besoin d'attendre le chargement des tables de votre base de données. Toutefois, veillez à prendre en compte le temps nécessaire pour recharger le magasin de lignes et les types de données BLOB (Binary Large Object).
  • Temps d'arrêt: bien que le processus de migration nécessite un temps d'arrêt minimal, la durée réelle du temps d'arrêt dépend du temps nécessaire pour effectuer les tâches suivantes:

    • Créer des instantanés de disque

      Pour réduire les temps d'arrêt tout en prenant des instantanés de disque, vous pouvez prendre des instantanés des disques avant l'activité de migration planifiée, puis prendre des instantanés supplémentaires plus près de l'activité, ce qui réduit légèrement les différences entre les instantanés.

    • Créer des volumes Hyperdisk à l'aide des instantanés de vos volumes Persistent Disk.

    • Actualisation des tables SAP HANA dans la mémoire SAP HANA

  • Revenir aux disques existants: en cas de problème pendant la migration, vous pouvez revenir aux disques existants, car ils ne sont pas affectés par cette procédure et sont disponibles jusqu'à ce que vous les supprimiez vous-même. Pour en savoir plus, consultez la section Recourir aux disques existants.

Avant de commencer

Avant de migrer les volumes de disques persistants utilisés par votre base de données SAP HANA vers des volumes Hyperdisk, assurez-vous que les conditions suivantes sont remplies:

  • SAP HANA s'exécute sur des instances Compute Engine certifiées par SAP compatibles avec l'hyperdisque.
  • Les volumes /hana/data et /hana/log sont hébergés sur des disques distincts.
  • La gestion du volume logique Linux est utilisée pour la persistance du stockage SAP HANA. Bien que le stockage direct puisse être utilisé, il nécessite un remappage explicite des appareils via la table /etc/fstab.
  • L'option Fast Restart de SAP HANA est activée pour votre système SAP HANA.

    Pour savoir comment activer cette fonctionnalité, consultez la section Activer le redémarrage rapide de SAP HANA.

  • Une sauvegarde valide de la base de données SAP HANA est disponible. Cette sauvegarde peut être utilisée pour restaurer la base de données, si nécessaire.

  • Si l'instance Compute Engine cible fait partie d'un cluster à haute disponibilité (HA), assurez-vous que le cluster est en mode de maintenance.

  • Si votre base de données SAP HANA utilise un déploiement à scaling horizontal, répétez la procédure décrite dans ce guide pour chaque instance SAP HANA.

  • La base de données SAP HANA est opérationnelle.

  • Le système de fichiers tmpfs est entièrement chargé avec le contenu des fragments de données MAIN. Pour afficher l'utilisation du système de fichiers, exécutez la commande suivante:

    df -Th

    Le résultat ressemble à celui de l'exemple ci-dessous.

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

Migrer des volumes de disques persistants vers des volumes Hyperdisk

Cette section explique comment migrer les volumes /hana/data et /hana/log des volumes de disques persistants vers des volumes Hyperdisk.

Pour illustrer le processus de migration, l'exemple de configuration suivant est utilisé:

  • Type de machine: m2-ultramem-416 (12 To de mémoire, 416 processeurs virtuels)
  • Système SAP HANA à scaling à la hausse déployé à l'aide du document Google Cloud Terraform: Guide de déploiement d'un scaling à la hausse SAP HANA.
    • OS: SLES pour SAP 15 SP1
    • SAP HANA: HANA 2 SPS06, correctif 63
    • Type de disque par défaut: SSD Persistent Disk (pd-ssd)
    • Les volumes /hana/data et /hana/log sont installés sur des disques distincts et sont créés à l'aide de LVM et de XFS
    • L'option de redémarrage rapide SAP HANA est activée et 6 To de données sont chargés dans la base de données. Pour savoir comment procéder, consultez la section Activer le redémarrage rapide de SAP HANA.

Pour migrer des volumes de disque persistant vers des volumes Hyperdisk, procédez comme suit:

  1. Arrêtez la base de données SAP HANA en exécutant la commande HDB stop:

    HDB stop
    

    Vous pouvez également exécuter la commande sapcontrol:

    sapcontrol -nr INSTANCE_NUMBER -function StopSystem HDB
    

    Remplacez INSTANCE_NUMBER par le numéro d'instance de votre système SAP HANA.

    Pour en savoir plus, consultez le document SAP Démarrer et arrêter des systèmes SAP HANA.

  2. Désinstallez les volumes /hana/data et /hana/log du système de fichiers:

    umount /hana/data
    umount /hana/log
    
  3. Déterminez les noms des disques hébergeant les volumes /hana/data et /hana/log à l'aide de l'une des méthodes suivantes:

    • Exécutez la commande ls :

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

      La sortie affiche le mappage des noms de disques sur les appareils, comme dans l'exemple suivant:

      ...
      lrwxrwxrwx 1 root root  9 May 18 20:14 google-hana-vm-data00001 -> ../../sdb
      lrwxrwxrwx 1 root root  9 May 18 20:14 google-hana-vm-log00001 -> ../../sdc
      ...
      
    • Exécutez la commande gcloud compute instances describe :

      gcloud compute instances describe INSTANCE_NAME
          --zone=ZONE
      

      Remplacez les éléments suivants :

      • INSTANCE_NAME: nom de l'instance de calcul.
      • ZONE: zone de l'instance de calcul.

      La sortie affiche des informations sur l'instance de calcul, y compris les disques qui y sont associés. Exemple :

      gcloud compute instances describe hana-vm --zone europe-west4-a
      ...
      disks:
      - autoDelete: false
      deviceName: hana-vm-shared00001
      diskSizeGb: '1024'
      - autoDelete: false
      deviceName: hana-vm-usrsap00001
      diskSizeGb: '32'
      - autoDelete: false
      deviceName: hana-vm-data00001
      diskSizeGb: '14093'
      - autoDelete: false
      deviceName: hana-vm-log00001
      diskSizeGb: '512'
      
    • Dans la console Google Cloud, accédez à la page Instances de VM Compute Engine, puis cliquez sur le nom de l'instance Compute. La section Stockage affiche les informations sur le disque associé.

  4. Créez des instantanés des disques hébergeant les volumes /hana/data et /hana/log:

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

    Remplacez les éléments suivants :

    • DATA_DISK: nom du disque qui héberge le volume /hana/data, qui est défini comme préfixe de l'instantané du disque de données.
    • LOG_DISK: nom du disque hébergeant le volume /hana/log, qui est défini comme préfixe de l'instantané du disque de journal.
    • PROJECT_ID: ID du projet Google Cloud dans lequel le disque est déployé
    • SOURCE_DISK_ZONE: zone Compute Engine dans laquelle le disque est déployé

    Pour en savoir plus sur la création d'instantanés, consultez la page Créer et gérer des instantanés de disque.

  5. À l'aide des instantanés de disque que vous avez créés, créez des volumes Hyperdisk pour les volumes /hana/data et /hana/log:

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

    Remplacez les éléments suivants :

    • DATA_DISK: nom du volume de disque persistant qui héberge le volume /hana/data, qui est défini comme préfixe du nom du volume Hyperdisk que vous créez.
    • LOG_DISK: nom du volume de disque persistant qui héberge le volume /hana/log, qui est défini comme préfixe du nom du volume Hyperdisk que vous créez.
    • PROJECT_ID : ID du projet Google Cloud
    • HYPERDISK_TYPE: type d'hyperdisque que vous souhaitez créer, par exemple hyperdisk-extreme
    • ZONE: zone Compute Engine dans laquelle vous devez déployer les volumes Hyperdisk
    • IOPS_DATA_DISK: IOPS que vous souhaitez définir pour l'hyperdisque que vous créez pour héberger /hana/data. Vous définissez les IOPS en fonction de vos exigences de performances.
    • IOPS_LOG_DISK: IOPS que vous souhaitez définir pour l'hyperdisque que vous créez pour héberger /hana/log. Vous définissez les IOPS en fonction de vos exigences de performances.

    Si vous créez des volumes Hyperdisk Balanced (hyperdisk-balanced), vous pouvez également définir leur débit.

    Pour en savoir plus sur la taille, les IOPS et le débit minimaux que vous devez définir pour utiliser des volumes Hyperdisk avec SAP HANA, consultez la ligne correspondant à votre type de machine Compute Engine dans la section Tailles minimales pour les volumes Persistent Disk et Hyperdisk basés sur SSD.

    Pour en savoir plus sur la restauration d'un disque à partir d'un instantané, consultez la section Restaurer à partir d'un instantané.

  6. Depuis l'instance Compute Engine qui héberge votre base de données SAP HANA, détachez les volumes de disques persistants qui hébergent vos volumes /hana/data et /hana/log:

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

    Remplacez les éléments suivants :

    • INSTANCE_NAME: nom de votre instance Compute Engine
    • DATA_DISK: nom du volume de disque persistant hébergeant votre volume /hana/data, que vous souhaitez dissocier.
    • LOG_DISK: nom du volume de disque persistant hébergeant votre volume /hana/log, que vous souhaitez dissocier.
    • ZONE: zone Compute Engine dans laquelle le disque est déployé
  7. Associez les volumes Hyperdisk que vous avez créés à l'instance Compute Engine qui héberge votre base de données SAP HANA:

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

    Remplacez les éléments suivants :

    • INSTANCE_NAME: nom de l'instance Compute Engine.
    • DATA_DISK: nom du volume Hyperdisk que vous souhaitez utiliser pour héberger le volume /hana/data.
    • LOG_DISK: nom du volume Hyperdisk que vous souhaitez utiliser pour héberger le volume /hana/log.
    • ZONE: zone Compute Engine dans laquelle l'hyperdisque est déployé
  8. Pour installer les volumes Hyperdisk, procédez comme suit en tant que root ou en tant qu'utilisateur disposant d'un accès sudo:

    1. Supprimez toutes les définitions de mappage d'appareils pour éviter les conflits de mappage d'appareils LVM:

      dmsetup remove_all
      
    2. Analysez tous les disques pour les groupes de volumes, recompilez les caches et créez les volumes manquants, y compris LVM:

      vgscan -v --mknodes
      

      Le résultat ressemble à ce qui suit :

      Scanning all devices to initialize lvmetad.
      Reading volume groups from cache.
      Found volume group "vg_hana_data" using metadata type lvm2
      Found volume group "vg_hana_shared" using metadata type lvm2
      Found volume group "vg_hana_log" using metadata type lvm2
      Found volume group "vg_hana_usrsap" using metadata type lvm2
      
    3. Activez les groupes de volumes:

      vgchange -ay
      

      Le résultat ressemble à ce qui suit :

      1 logical volume(s) in volume group "vg_hana_data" now active
      1 logical volume(s) in volume group "vg_hana_shared" now active
      1 logical volume(s) in volume group "vg_hana_log" now active
      1 logical volume(s) in volume group "vg_hana_usrsap" now active
      
    4. Recherchez des volumes logiques:

      lvscan
      

      Le résultat ressemble à ce qui suit :

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

      mount -av
      

      Le résultat ressemble à ce qui suit :

      /                        : ignored
      /boot/efi                : already mounted
      /hana/shared             : already mounted
      /hana/data               : already mounted
      /hana/log                : already mounted
      /usr/sap                 : already mounted
      swap                     : ignored
      /hana/tmpfs0/DB1         : already mounted
      /hana/tmpfs1/DB1         : already mounted
      /hana/tmpfs2/DB1         : already mounted
      /hana/tmpfs3/DB1         : already mounted
      /hana/tmpfs4/DB1         : already mounted
      /hana/tmpfs5/DB1         : already mounted
      /hana/tmpfs6/DB1         : already mounted
      /hana/tmpfs7/DB1         : already mounted
      
  9. Vérifiez les nouveaux volumes:

    • Vérifiez l'utilisation du système de fichiers:

      df -Th
      

      Le résultat ressemble à ce qui suit :

      Filesystem                        Type      Size  Used Avail Use% Mounted on
      ...
      /dev/mapper/vg_hana_shared-shared xfs       1.0T   56G  968G   6% /hana/shared
      /dev/mapper/vg_hana_usrsap-usrsap xfs        32G  277M   32G   1% /usr/sap
      tmpfsDB10                         tmpfs     5.7T  784G  4.9T  14% /hana/tmpfs0/DB1
      tmpfsDB11                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs1/DB1
      tmpfsDB12                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs2/DB1
      tmpfsDB13                         tmpfs     5.7T  782G  4.9T  14% /hana/tmpfs3/DB1
      tmpfsDB14                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs4/DB1
      tmpfsDB15                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs5/DB1
      tmpfsDB16                         tmpfs     5.7T  783G  4.9T  14% /hana/tmpfs6/DB1
      tmpfsDB17                         tmpfs     5.7T  782G  4.9T  14% /hana/tmpfs7/DB1
      /dev/mapper/vg_hana_log-log       xfs       512G  7.2G  505G   2% /hana/log
      /dev/mapper/vg_hana_data-data     xfs        14T  5.7T  8.2T  41% /hana/data
      
    • Vérifiez que les appareils sont associés aux nouveaux volumes:

      lsblk
      

      Le résultat ressemble à ce qui suit :

      NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
      ...
      sdd                       8:48   0    1T  0 disk
      └─vg_hana_shared-shared 254:0    0 1024G  0 lvm  /hana/shared
      sde                       8:64   0   32G  0 disk
      └─vg_hana_usrsap-usrsap 254:3    0   32G  0 lvm  /usr/sap
      sdf                       8:80   0 13.8T  0 disk
      └─vg_hana_data-data     254:1    0 13.8T  0 lvm  /hana/data
      sdg                       8:96   0  512G  0 disk
      └─vg_hana_log-log       254:2    0  512G  0 lvm  /hana/log
      
  10. Démarrez votre base de données SAP HANA à l'aide de l'une des commandes suivantes:

    • Exécutez la commande HDB start :

      HDB start
      
    • Exécutez la commande sapcontrol :

      sapcontrol -nr INSTANCE_NUMBER -function StartSystem HDB
      

      Remplacez INSTANCE_NUMBER par le numéro d'instance de votre base de données SAP HANA.

      Pour en savoir plus, consultez la section Démarrer et arrêter des systèmes SAP HANA.

Recourir aux disques existants

Si la migration du disque échoue, vous pouvez utiliser les volumes de disque persistant existants, car ils contiennent les données telles qu'elles existaient avant le début de la procédure de migration.

Pour restaurer votre base de données SAP HANA à son état d'origine, procédez comme suit:

  1. Arrêtez l'instance Compute Engine qui héberge votre base de données SAP HANA.
  2. Dissociez les volumes Hyperdisk que vous avez créés.
  3. Réassociez les volumes de disques persistants existants à l'instance de calcul.
  4. Démarrez l'instance de calcul.