Nichtflüchtigen Speicher zu Hyperdisk für SAP HANA migrieren

In diesem Dokument wird beschrieben, wie Sie die von Ihren SAP HANA-Datenbanken verwendeten Persistent Disk-Volumes zu Google Cloud Hyperdisk-Volumes migrieren.

Hyperdisk, insbesondere Hyperdisk Extreme, bietet eine bessere Leistung für SAP HANA als die SSD-basierten nichtflüchtigen Speichertypen.

Zum Migrieren der von Ihrer SAP HANA-Datenbank verwendeten Persistent Disk-Volumes zu Hyperdisk-Volumes verwenden Sie die Laufwerk-Snapshots von Google Cloud und die Option „Schnellneustart“ für SAP HANA.

Hinweise zur Migration

  • Migrationsdaten: Die Option „Schneller SAP HANA-Neustart“ wird als Hilfsmittel verwendet. Dadurch werden Ausfallzeiten beim Aufteilen der Laufwerke reduziert, da nicht auf das Laden der Datenbanktabellen gewartet werden muss. Berücksichtigen Sie jedoch die Zeit, die zum erneuten Laden des Zeilenspeichers und der BLOB-Datentypen (Binary Large Object) erforderlich ist.
  • Ausfallzeit: Obwohl der Migrationsprozess minimale Ausfallzeiten erfordert, hängt die tatsächliche Dauer der Ausfallzeit von der Zeit ab, die für die Ausführung der folgenden Aufgaben benötigt wird:

    • Laufwerk-Snapshots erstellen

      Um die Ausfallzeiten beim Erstellen von Laufwerk-Snapshots zu reduzieren, können Sie Snapshots der Laufwerke vor der geplanten Migrationsaktivität erstellen und dann einige weitere Snapshots kurz vor der Aktivität aufnehmen. Dadurch ist der Unterschied zwischen den Snapshots geringer.

    • Hyperdisk-Volumes mit den Snapshots Ihrer Persistent Disk-Volumes erstellen.

    • SAP HANA-Tabellen in den SAP HANA-Speicher neu laden.

  • Zurück zu vorhandenen Laufwerken: Bei einem Problem während der Migration können Sie die vorhandenen Laufwerke wiederherstellen, da sie von diesem Verfahren nicht betroffen sind und bis zum Löschen verfügbar sind. Weitere Informationen finden Sie unter Zu vorhandenen Laufwerken wechseln.

Hinweise

Prüfen Sie vor der Migration der von Ihrer SAP HANA-Datenbank verwendeten Persistent Disk-Volumes zu Hyperdisk-Volumes, ob die folgenden Bedingungen erfüllt sind:

  • SAP HANA wird auf SAP-zertifizierten Compute Engine-Instanzen ausgeführt, die Hyperdisk unterstützen.
  • Die Volumes /hana/data und /hana/log werden auf separaten Laufwerken gehostet.
  • Die logische Linux-Volume-Verwaltung wird für die Persistenz von SAP HANA-Speichern verwendet. Es kann zwar direkter Speicher verwendet werden, doch wäre eine explizite Neuzuordnung des Geräts über die Tabelle /etc/fstab erforderlich.
  • Die Option „Schneller SAP HANA-Neustart“ ist für Ihr SAP HANA-System aktiviert.

    Informationen zum Aktivieren finden Sie unter SAP HANA Fast Restart aktivieren.

  • Eine gültige Sicherung der SAP HANA-Datenbank ist verfügbar. Mit dieser Sicherung kann die Datenbank bei Bedarf wiederhergestellt werden.

  • Wenn die Ziel-Compute Engine-Instanz Teil eines Hochverfügbarkeitsclusters (HA) ist, achten Sie darauf, dass sich der Cluster im Wartungsmodus befindet.

  • Wenn für Ihre SAP HANA-Datenbank eine Bereitstellung mit horizontaler Skalierung verwendet wird, wiederholen Sie die Schritte in dieser Anleitung für jede SAP HANA-Instanz.

  • Die SAP HANA-Datenbank ist einsatzbereit.

  • Das Dateisystem tmpfs ist vollständig mit dem Inhalt der Datenfragmente MAIN geladen. Mit dem folgenden Befehl können Sie die Dateisystemauslastung einsehen:

    df -Th

    Die Ausgabe sieht etwa so aus wie im folgenden Beispiel.

    #  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
    

Persistent Disk-Volumes zu Hyperdisk-Volumes migrieren

In diesem Abschnitt wird beschrieben, wie Sie die /hana/data- und /hana/log-Volumes von Persistent Disk-Volumes zu Hyperdisk-Volumes migrieren.

Zur Veranschaulichung des Migrationsprozesses wird die folgende Beispielkonfiguration verwendet:

  • Maschinentyp: m2-ultramem-416 (12 TB Arbeitsspeicher, 416 vCPUs)
  • SAP HANA-Systeme zur vertikalen Skalierung, die mit dem Google Cloud-Dokument Terraform-Bereitstellungsleitfaden für SAP HANA zur vertikalen Skalierung bereitgestellt werden.
    • Betriebssystem: SLES for SAP 15 SP1
    • SAP HANA: HANA 2 SPS06, Patch 63
    • Standardlaufwerkstyp: Nichtflüchtiger SSD-Speicher (pd-ssd)
    • Die Volumes /hana/data und /hana/log werden auf separaten Laufwerken bereitgestellt und mit LVM und XFS erstellt
    • Die SAP HANA Fast Restart-Option ist aktiviert und 6 TB Daten werden in die Datenbank geladen. Weitere Informationen dazu finden Sie unter SAP HANA Fast Restart aktivieren.

Gehen Sie folgendermaßen vor, um Persistent Disk-Volumes zu Hyperdisk-Volumes zu migrieren:

  1. Stoppen Sie die SAP HANA-Datenbank mit dem Befehl HDB stop:

    HDB stop
    

    Alternativ können Sie den Befehl sapcontrol ausführen:

    sapcontrol -nr INSTANCE_NUMBER -function StopSystem HDB
    

    Ersetzen Sie INSTANCE_NUMBER durch die Instanznummer für Ihr SAP HANA-System.

    Weitere Informationen finden Sie im SAP-Dokument SAP HANA-Systeme starten und beenden.

  2. Heben Sie die Bereitstellung der Volumes /hana/data und /hana/log aus dem Dateisystem auf:

    umount /hana/data
    umount /hana/log
    
  3. Ermitteln Sie die Namen der Laufwerke, auf denen die /hana/data- und /hana/log-Volumes gehostet werden, mit einer der folgenden Methoden:

    • Führen Sie den Befehl ls aus:

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

      Die Ausgabe zeigt die Zuordnung von Laufwerksnamen zu Geräten, ähnlich wie im folgenden Beispiel:

      ...
      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
      ...
      
    • Führen Sie den gcloud compute instances describe-Befehl aus:

      gcloud compute instances describe INSTANCE_NAME
          --zone=ZONE
      

      Ersetzen Sie Folgendes:

      • INSTANCE_NAME: der Name der Compute-Instanz.
      • ZONE: die Zone der Compute-Instanz.

      Die Ausgabe enthält Details zur Compute-Instanz, einschließlich der zugewiesenen Laufwerke. Beispiel:

      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'
      
    • Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen der Compute Engine und klicken Sie auf den Namen der Compute-Instanz. Unter Speicher werden die zugehörigen Laufwerksinformationen angezeigt.

  4. Erstellen Sie Snapshots der Laufwerke, auf denen die Volumes /hana/data und /hana/log gehostet werden:

    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
    

    Ersetzen Sie Folgendes:

    • DATA_DISK: Der Name des Laufwerks, auf dem das /hana/data-Volume gehostet wird. Dieser wird als Präfix für den Snapshot des Datenlaufwerks festgelegt.
    • LOG_DISK: Der Name des Laufwerks, auf dem das /hana/log-Volume gehostet wird. Dieser wird als Präfix für den Snapshot des Loglaufwerks festgelegt.
    • PROJECT_ID: die ID des Google Cloud-Projekts, in dem das Laufwerk bereitgestellt wird
    • SOURCE_DISK_ZONE: die Compute Engine-Zone, in der das Laufwerk bereitgestellt ist

    Weitere Informationen zum Erstellen von Snapshots finden Sie unter Laufwerk-Snapshots erstellen und verwalten.

  5. Erstellen Sie mit den von Ihnen erstellten Laufwerk-Snapshots Hyperdisk-Volumes für die Volumes /hana/data und /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
    

    Ersetzen Sie Folgendes:

    • DATA_DISK: der Name des Persistent Disk-Volumes, auf dem das Volume /hana/data gehostet ist, das als Präfix für den Namen des von Ihnen erstellten Hyperdisk-Volumes festgelegt wird
    • LOG_DISK: der Name des Persistent Disk-Volumes, auf dem das Volume /hana/log gehostet ist, das als Präfix für den Namen des von Ihnen erstellten Hyperdisk-Volumes festgelegt ist
    • PROJECT_ID: die ID des Google Cloud-Projekts
    • HYPERDISK_TYPE: die Art der Hyperdisk, die Sie erstellen möchten, z. B. hyperdisk-extreme
    • ZONE: die Compute Engine-Zone, in der Sie die Hyperdisk-Volumes bereitstellen müssen
    • IOPS_DATA_DISK: die IOPS, die Sie für den erstellten Hyperdisk festlegen möchten, um /hana/data zu hosten. Sie legen die IOPS gemäß Ihren Leistungsanforderungen fest.
    • IOPS_LOG_DISK: die IOPS, die Sie für den erstellten Hyperdisk festlegen möchten, um /hana/log zu hosten. Sie legen die IOPS gemäß Ihren Leistungsanforderungen fest.

    Wenn Sie Hyperdisk Balanced-Volumes (hyperdisk-balanced) erstellen, können Sie auch den Durchsatz festlegen.

    Informationen zur Mindestgröße, zu den IOPS und zum Durchsatz, die Sie für die Verwendung von Hyperdisk-Volumes mit SAP HANA festlegen müssen, finden Sie in der Zeile, die Ihrem Compute Engine-Maschinentyp in Mindestgrößen für SSD-basierte Persistent Disk- und Hyperdisk-Volumes entspricht.

    Weitere Informationen zum Wiederherstellen eines Laufwerks aus einem Snapshot finden Sie unter Aus einem Snapshot wiederherstellen.

  6. Trennen Sie von der Compute Engine-Instanz, auf der Ihre SAP HANA-Datenbank gehostet wird, die Volumes des nichtflüchtigen Speichers, auf denen die Volumes /hana/data und /hana/log gehostet werden:

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

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: der Name Ihrer Compute Engine-Instanz
    • DATA_DISK: Name des Persistent Disk-Volumes, auf dem sich das /hana/data-Volume befindet, das Sie trennen möchten
    • LOG_DISK: Name des Persistent Disk-Volumes, auf dem sich das /hana/log-Volume befindet, das Sie trennen möchten
    • ZONE: die Compute Engine-Zone, in der das Laufwerk bereitgestellt ist
  7. Hängen Sie die von Ihnen erstellten Hyperdisk-Volumes an die Compute Engine-Instanz an, auf der Ihre SAP HANA-Datenbank gehostet wird:

    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
    

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: der Name der Compute Engine-Instanz
    • DATA_DISK: der Name des Hyperdisk-Volumes, auf dem das Volume /hana/data gehostet werden soll
    • LOG_DISK: der Name des Hyperdisk-Volumes, auf dem das Volume /hana/log gehostet werden soll
    • ZONE: die Compute Engine-Zone, in der der Hyperdisk bereitgestellt wird
  8. Führen Sie die folgenden Schritte als root oder als Nutzer mit sudo-Zugriff aus, um die Hyperdisk-Volumes bereitzustellen:

    1. Entfernen Sie alle Definitionen der Gerätezuordnung, um Konflikte bei der LVM-Gerätezuordnung zu vermeiden:

      dmsetup remove_all
      
    2. Scannen Sie alle Laufwerke nach Volume-Gruppen, erstellen Sie Caches neu und erstellen Sie fehlende Volumes, einschließlich LVM:

      vgscan -v --mknodes
      

      Die Ausgabe sieht in etwa so aus:

      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. Aktivieren Sie die Volume-Gruppen:

      vgchange -ay
      

      Die Ausgabe sieht in etwa so aus:

      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. Suchen Sie nach logischen Volumes:

      lvscan
      

      Die Ausgabe sieht in etwa so aus:

      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. Stellen Sie die Laufwerke bereit:

      mount -av
      

      Die Ausgabe sieht in etwa so aus:

      /                        : 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. Prüfen Sie die neuen Volumes:

    • Prüfen Sie die Dateisystemauslastung:

      df -Th
      

      Die Ausgabe sieht in etwa so aus:

      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
      
    • Prüfen Sie, ob die Geräte mit den neuen Volumes verknüpft sind:

      lsblk
      

      Die Ausgabe sieht in etwa so aus:

      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. Starten Sie Ihre SAP HANA-Datenbank mit einem der folgenden Befehle:

    • Führen Sie den Befehl HDB start aus:

      HDB start
      
    • Führen Sie den Befehl sapcontrol aus:

      sapcontrol -nr INSTANCE_NUMBER -function StartSystem HDB
      

      Ersetzen Sie INSTANCE_NUMBER durch die Instanznummer für Ihre SAP HANA-Datenbank.

      Weitere Informationen finden Sie unter SAP HANA-Systeme starten und beenden.

Auf vorhandene Laufwerke zurückgreifen

Wenn die Laufwerksmigration fehlschlägt, können Sie die vorhandenen Volumes des persistenten Laufwerks verwenden, da sie die Daten enthalten, die vor dem Start der Migration vorhanden waren.

So stellen Sie Ihre SAP HANA-Datenbank in den ursprünglichen Zustand wieder her:

  1. Beenden Sie die Compute Engine-Instanz, auf der Ihre SAP HANA-Datenbank gehostet wird.
  2. Trennen Sie die von Ihnen erstellten Hyperdisk-Volumes.
  3. Hängen Sie die vorhandenen Persistent Disk-Volumes wieder an die Compute-Instanz an.
  4. Starten Sie die Compute-Instanz.