Migrar disco permanente para hiperdisco no SAP HANA

Este documento descreve como migrar os volumes de Persistent Disk usados pelos bancos de dados do SAP HANA para volumes do Hyperdisk do Google Cloud.

O Hyperdisk, especialmente o Hyperdisk Extreme, oferece melhor desempenho para o SAP HANA do que os tipos de Persistent Disk baseados em SSD.

Para migrar os volumes de Persistent Disk usados pelo banco de dados SAP HANA para volumes do Hyperdisk, use os snapshots de disco do Google Cloud e a opção de reinicialização rápida do SAP HANA.

Analisar as considerações sobre a migração

  • Dados de migração: a opção de reinicialização rápida do SAP HANA é usada como auxiliar. Ele reduz o tempo de inatividade ao aparar os discos, eliminando a necessidade de aguardar o carregamento das tabelas do banco de dados. No entanto, leve em conta o tempo necessário para recarregar o armazenamento de linhas e os tipos de dados de objeto grande binário (BLOB).
  • Tempo de inatividade: embora o processo de migração exija um tempo mínimo de inatividade, a duração real depende do tempo necessário para concluir as seguintes tarefas:

    • Criação de snapshots de disco.

      Para reduzir o tempo de inatividade ao tirar snapshots de disco, é possível tirar snapshots dos discos antes da atividade de migração planejada e, em seguida, tirar alguns snapshots mais próximos da atividade, o que resulta em uma diferença menor entre os snapshots.

    • Criar volumes do Hyperdisk usando os snapshots dos volumes do Persistent Disk.

    • Como recarregar as tabelas do SAP HANA na memória do SAP HANA.

  • Reverter para discos atuais: no caso de qualquer problema durante a migração, é possível reverter para os discos atuais porque eles não são afetados por esse procedimento e permanecem disponíveis até serem excluídos. Para mais informações, consulte Usar discos existentes como alternativa.

Antes de começar

Antes de migrar os volumes Persistent Disk usados pelo seu banco de dados SAP HANA para volumes do Hyperdisk, verifique se as seguintes condições são atendidas:

  • O SAP HANA está sendo executado em instâncias do Compute Engine certificadas pela SAP compatíveis com Hyperdisk.
  • Os volumes /hana/data e /hana/log são hospedados em discos separados.
  • O gerenciamento de volume lógico do Linux é usado para a persistência de armazenamento do SAP HANA. Embora o armazenamento direto possa ser usado, seria necessário o remapeamento explícito de dispositivos pela tabela /etc/fstab.
  • A opção de reinicialização rápida do SAP HANA está ativada para seu sistema SAP HANA.

    Para informações sobre como ativar esse recurso, consulte Como ativar a reinicialização rápida do SAP HANA.

  • Um backup válido do banco de dados SAP HANA está disponível. Esse backup pode ser usado para restaurar o banco de dados, se necessário.

  • Se a instância de destino do Compute Engine fizer parte de um cluster de alta disponibilidade (HA, na sigla em inglês), verifique se ele está no modo de manutenção.

  • Se o banco de dados SAP HANA usar uma implantação de escalonamento horizontal, repita o procedimento deste guia para cada instância do SAP HANA.

  • O banco de dados SAP HANA está em execução.

  • O sistema de arquivos tmpfs está totalmente carregado com o conteúdo dos fragmentos de dados MAIN. Para conferir a utilização do sistema de arquivos, execute o seguinte comando:

    df -Th

    A resposta será semelhante a:

    #  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
    

Migrar volumes de disco permanente para volumes do Hyperdisk

Esta seção descreve como migrar os volumes /hana/data e /hana/log de Persistent Disk para Hyperdisk.

Para ilustrar o processo de migração, é usada a seguinte configuração de exemplo:

  • Tipo de máquina: m2-ultramem-416 (12 TB de memória, 416 vCPUs)
  • Sistema de escalonamento vertical do SAP HANA implantado usando o documento do Google Cloud Terraform: guia de implantação do escalonamento vertical do SAP HANA.
    • SO: SLES para SAP 15 SP1
    • SAP HANA: HANA 2 SPS06, patch 63
    • Tipo de disco padrão: disco permanente SSD (pd-ssd)
    • Os volumes /hana/data e /hana/log são montados em discos separados e criados usando LVM e XFS
    • A opção de reinicialização rápida do SAP HANA está ativada e 6 TB de dados são carregados no banco de dados. Para saber como fazer isso, consulte Como ativar a reinicialização rápida do SAP HANA.

Para migrar volumes Persistent Disk para volumes do Hyperdisk, siga estas etapas:

  1. Interrompa o banco de dados SAP HANA executando o comando HDB stop:

    HDB stop
    

    Como alternativa, execute o comando sapcontrol:

    sapcontrol -nr INSTANCE_NUMBER -function StopSystem HDB
    

    Substitua INSTANCE_NUMBER pelo número da instância do sistema SAP HANA.

    Para mais informações, consulte o documento SAP Como iniciar e interromper sistemas SAP HANA (em inglês).

  2. Desconecte os volumes /hana/data e /hana/log do sistema de arquivos:

    umount /hana/data
    umount /hana/log
    
  3. Determine os discos de nomes que hospedam os volumes /hana/data e /hana/log usando um dos seguintes métodos:

    • Execute o comando ls:

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

      A saída mostra o mapeamento de nomes de disco para dispositivos, semelhante a este exemplo:

      ...
      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
      ...
      
    • Execute o comando gcloud compute instances describe:

      gcloud compute instances describe INSTANCE_NAME
          --zone=ZONE
      

      Substitua:

      • INSTANCE_NAME: o nome da instância de computação.
      • ZONE: a zona da instância de computação.

      A saída mostra detalhes sobre a instância de computação, incluindo os discos anexados a ela. Exemplo:

      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'
      
    • No console do Google Cloud, acesse a página Instâncias de VM do Compute Engine e clique no nome da instância de computação. A seção Armazenamento mostra as informações do disco associado.

  4. Crie snapshots dos discos que hospedam os volumes /hana/data e /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
    

    Substitua:

    • DATA_DISK: o nome do disco que hospeda o volume /hana/data, que é definido como um prefixo para o snapshot do disco de dados.
    • LOG_DISK: o nome do disco que hospeda o volume /hana/log, que é definido como um prefixo para o snapshot do disco de registro.
    • PROJECT_ID: o ID do projeto do Google Cloud em que o disco é implantado
    • SOURCE_DISK_ZONE: a zona do Compute Engine em que o disco é implantado

    Para mais informações sobre como criar snapshots, consulte Criar e gerenciar snapshots de disco.

  5. Usando os snapshots de disco que você criou, crie volumes do Hyperdisk para os volumes /hana/data e /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
    

    Substitua:

    • DATA_DISK: o nome do volume do Persistent Disk que hospeda o volume /hana/data, que é definido como um prefixo para o nome do volume do Hyperdisk criado
    • LOG_DISK: o nome do volume do Persistent Disk que hospeda o volume /hana/log, que é definido como um prefixo para o nome do volume do Hyperdisk criado
    • PROJECT_ID: o ID do projeto do Google Cloud
    • HYPERDISK_TYPE: o tipo de Hyperdisk que você quer criar, como hyperdisk-extreme
    • ZONE: a zona do Compute Engine em que você precisa implantar os volumes do Hyperdisk
    • IOPS_DATA_DISK: as IOPS que você quer definir para o Hyperdisk que está sendo criado para hospedar /hana/data. Você define as IOPS de acordo com seus requisitos de desempenho.
    • IOPS_LOG_DISK: as IOPS que você quer definir para o Hyperdisk que está sendo criado para hospedar /hana/log. Você define as IOPS de acordo com seus requisitos de desempenho.

    Se você estiver criando volumes do Hyperdisk equilibrado (hyperdisk-balanced), também será possível definir a capacidade de processamento.

    Para informações sobre o tamanho mínimo, as IOPS e a capacidade que você precisa definir para usar volumes de hiperdisco com o SAP HANA, consulte a linha correspondente ao tipo de máquina do Compute Engine em Tamanhos mínimos para volumes de Persistent Disk e hiperdisco baseados em SSD.

    Para mais informações sobre como restaurar um disco de um snapshot, consulte Restaurar de um snapshot.

  6. Na instância do Compute Engine que hospeda o banco de dados SAP HANA, desconecte os volumes Persistent Disk que hospedam os volumes /hana/data e /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
    

    Substitua:

    • INSTANCE_NAME: o nome da sua instância do Compute Engine
    • DATA_DISK: o nome do volume do Persistent Disk que hospeda o volume /hana/data que você quer remover.
    • LOG_DISK: o nome do volume do Persistent Disk que hospeda o volume /hana/log que você quer remover.
    • ZONE: a zona do Compute Engine em que o disco é implantado.
  7. Anexe os volumes do Hyperdisk que você criou à instância do Compute Engine que hospeda o banco de dados 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
    

    Substitua:

    • INSTANCE_NAME: o nome da instância do Compute Engine
    • DATA_DISK: o nome do volume do Hyperdisk que você quer usar para hospedar o volume /hana/data
    • LOG_DISK: o nome do volume do Hyperdisk que você quer usar para hospedar o volume /hana/log
    • ZONE: a zona do Compute Engine em que o Hyperdisk é implantado
  8. Para montar os volumes do Hyperdisk, execute as etapas a seguir como root ou um usuário com acesso sudo:

    1. Remova todas as definições de mapeamento de dispositivos para evitar conflitos de mapeamento de dispositivos LVM:

      dmsetup remove_all
      
    2. Verifique todos os discos quanto a grupos de volumes, recrie caches e crie volumes ausentes, incluindo LVM:

      vgscan -v --mknodes
      

      O resultado será assim:

      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. Ative os grupos de volumes:

      vgchange -ay
      

      O resultado será assim:

      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. Verifique se há volumes lógicos:

      lvscan
      

      O resultado será assim:

      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. Ative os discos:

      mount -av
      

      O resultado será assim:

      /                        : 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. Verifique os novos volumes:

    • Verifique a utilização do sistema de arquivos:

      df -Th
      

      O resultado será assim:

      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
      
    • Verifique se os dispositivos estão vinculados aos novos volumes:

      lsblk
      

      O resultado será assim:

      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. Inicie o banco de dados SAP HANA usando um dos seguintes comandos:

    • Execute o comando HDB start:

      HDB start
      
    • Execute o comando sapcontrol:

      sapcontrol -nr INSTANCE_NUMBER -function StartSystem HDB
      

      Substitua INSTANCE_NUMBER pelo número da instância do banco de dados SAP HANA.

      Para mais informações, consulte Como iniciar e interromper sistemas SAP HANA.

Usar discos atuais

Se a migração do disco falhar, será possível usar os volumes do Persistent Disk atuais porque eles contêm os dados como eles existiam antes do início do procedimento de migração.

Para restaurar o banco de dados SAP HANA ao estado original, siga estas etapas:

  1. Interrompa a instância do Compute Engine que hospeda o banco de dados SAP HANA.
  2. Desanexar os volumes do Hyperdisk que você criou.
  3. Anexe novamente os volumes do Persistent Disk à instância de computação.
  4. Inicie a instância de computação.