Deployment Manager: guia de configuração de cluster de alta disponibilidade para escalonamento vertical do SAP HANA

Este guia mostra como automatizar a implantação do SAP HANA em um cluster de alta disponibilidade Red Hat Enterprise Linux (RHEL) ou SUSE Linux Enterprise Server (SLES) que usa o balanceamento de carga interno de rede de passagem para gerenciar o endereço IP virtual (VIP).

O guia usa o Cloud Deployment Manager para implantar duas máquinas virtuais (VMs) do Compute Engine, dois sistemas de escalonar verticalmente do SAP HANA, um endereço IP virtual (VIP) com uma implementação de balanceador de carga de rede de passagem interna e um cluster de HA baseado em SO, tudo de acordo com as práticas recomendadas do Google Cloud, SAP e do fornecedor do SO.

Para usar o Terraform e automatizar a implantação de um cluster de alta disponibilidade no SAP HANA, consulte o Guia de configuração de clusters de alta disponibilidade do Terraform: SAP HANA.

Um dos sistemas SAP HANA funciona como o sistema primário ativo e o outro como sistema secundário em espera. Implante os dois sistemas SAP HANA na mesma região, de preferência em diferentes zonas.

Visão geral de um cluster de alta disponibilidade do Linux para um sistema SAP HANA de escalonamento vertical e nó único

O cluster implantado inclui as seguintes funções e recursos:

  • O gerenciador de recursos do cluster de alta disponibilidade do Pacemaker
  • Um mecanismo de isolamento do Google Cloud
  • Um IP virtual (VIP) que usa uma implementação de balanceador de carga interno TCP de nível 4, incluindo:
    • Uma reserva do endereço IP que você seleciona para o VIP
    • Dois grupos de instâncias do Compute Engine
    • Um balanceador de carga interno de TCP
    • Uma verificação de integridade do Compute Engine
  • Nos clusters de alta disponibilidade do RHEL:
    • O padrão de alta disponibilidade do Red Hat
    • O agente de recursos e pacotes de isolamento do Red Hat
  • Em clusters de alta disponibilidade do SLES:
    • O padrão de alta disponibilidade do SUSE
    • O pacote de agente de recursos SUSE SAPHanaSR
  • Replicação síncrona do sistema
  • Memória pré-carregada
  • Reinicialização automática da instância com falha como nova instância secundária

Para implantar um sistema SAP HANA sem um cluster de alta disponibilidade do Linux ou hosts em espera, use o Guia de implantação do SAP HANA.

Este guia é para usuários avançados do SAP HANA familiarizados com as configurações de alta disponibilidade do Linux para SAP HANA.

Pré-requisitos

Antes de criar o cluster de alta disponibilidade do SAP HANA, verifique se os pré-requisitos a seguir são atendidos:

Como criar uma rede

Por motivos de segurança, crie uma nova rede. Para controlar quem tem acesso a ela, adicione regras de firewall ou use outro método de controle de acesso.

Caso o projeto tenha uma rede VPC padrão, não a use. Em vez disso, crie sua própria rede VPC para que as únicas regras de firewall aplicadas sejam aquelas criadas explicitamente por você.

Durante a implantação, as instâncias de VM normalmente exigem acesso à Internet para fazer o download do agente do Google Cloud para SAP. Se você estiver usando uma das imagens Linux certificadas pelo SAP disponíveis no Google Cloud, a instância da VM também exigirá acesso à Internet para registrar a licença e acessar repositórios de fornecedor do sistema operacional. Uma configuração com um gateway NAT e tags de rede da VM é compatível com esse acesso, mesmo se as VMs de destino não tiverem IPs externos.

Para configurar a rede:

Console

  1. No Console do Google Cloud, acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.
  3. Digite um Nome para a rede.

    O nome precisa seguir a convenção de nomenclatura. As redes VPC usam a convenção de nomenclatura do Compute Engine.

  4. Em Modo de criação da sub-rede, escolha Custom.
  5. Na seção Nova sub-rede, especifique os parâmetros de configuração a seguir para uma sub-rede:
    1. Insira um Nome para a sub-rede.
    2. Em Região, selecione a região do Compute Engine em que você quer criar a sub-rede.
    3. Em Tipo de pilha de IP, selecione IPv4 (pilha única) e insira um intervalo de endereços IP no formato CIDR. , como 10.1.0.0/24.

      Esse é o intervalo principal de IPv4 da sub-rede. Se você planeja adicionar mais de uma sub-rede, atribua intervalos IP CIDR não sobrepostos para cada sub-rede na rede. Observe que cada sub-rede e os respectivos intervalos IP internos são mapeados para uma única região.

    4. Clique em Concluído.
  6. Para adicionar mais sub-redes, clique em Adicionar sub-rede e repita as etapas anteriores. É possível adicionar mais sub-redes à rede depois de criá-la.
  7. Clique em Criar.

gcloud

  1. Acesse o Cloud Shell.

    Acesse o Cloud Shell

  2. Para criar uma nova rede no modo de sub-redes personalizadas, execute:
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    Substitua NETWORK_NAME pelo nome da nova rede. O nome precisa seguir a convenção de nomenclatura. As redes VPC usam a convenção de nomenclatura do Compute Engine.

    Especifique --subnet-mode custom para evitar o uso do modo automático padrão, que cria automaticamente uma sub-rede em cada região do Compute Engine. Para mais informações, consulte Modo de criação da sub-rede.

  3. Crie uma sub-rede e especifique a região e o intervalo de IP:
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

    Substitua:

    • SUBNETWORK_NAME: o nome da nova sub-rede.
    • NETWORK_NAME: o nome da rede que você criou na etapa anterior;
    • REGION: a região em que você quer a sub-rede;
    • RANGE: o intervalo de endereços IP, especificado no formato CIDR. Por exemplo, 10.1.0.0/24

      Se você planeja adicionar mais de uma sub-rede, atribua intervalos IP CIDR não sobrepostos para cada sub-rede na rede. Observe que cada sub-rede e os respectivos intervalos IP internos são mapeados para uma única região.

  4. Se quiser, repita o passo anterior e adicione mais sub-redes.

Como configurar um gateway NAT

Se você precisar criar uma ou mais VMs sem endereços IP públicos, será necessário usar a conversão de endereços de rede (NAT) para permitir que as VMs acessem a Internet. Use o Cloud NAT, um serviço gerenciado distribuído e definido pelo software do Google Cloud que permite que as VMs enviem pacotes de saída para a Internet e recebam todos os pacotes de resposta de entrada estabelecidos. Se preferir, é possível configurar uma VM separada como um gateway NAT.

Para criar uma instância do Cloud NAT para seu projeto, consulte Como usar o Cloud NAT.

Depois de configurar o Cloud NAT para seu projeto, as instâncias de VM poderão acessar a Internet com segurança sem um endereço IP público.

Como adicionar regras de firewall

Por padrão, uma regra de firewall implícita bloqueia conexões de entrada de fora da rede de nuvem privada virtual (VPC). Para permitir conexões de entrada, configure uma regra de firewall para sua VM. Depois que uma conexão de entrada for estabelecida com uma VM, será permitido o tráfego nas duas direções nessa conexão.

Os clusters de alta disponibilidade para SAP HANA exigem pelo menos duas regras de firewall, uma que permite que a verificação de integridade do Compute Engine verifique a integridade dos nós do cluster e outra que permite que os nós do cluster se comuniquem entre si.

Se você não estiver usando uma rede VPC compartilhada, precisará criar a regra de firewall para a comunicação entre os nós, mas não para as verificações de integridade. O modelo do Deployment Manager cria a regra de firewall para as verificações de integridade, que podem ser modificadas após a conclusão da implantação, se necessário.

Se você estiver usando uma rede VPC compartilhada, um administrador de rede precisará criar as duas regras de firewall no projeto host.

Também é possível criar uma regra de firewall para permitir o acesso externo a portas especificadas ou para restringir o acesso entre as VMs na mesma rede. Se o tipo de rede VPC default for usado, algumas regras padrão complementares também serão aplicadas, como a regra default-allow-internal, que permite a conectividade entre VMs na mesma rede em todas as portas.

Dependendo da política de TI que for aplicada ao ambiente, pode ser necessário isolar ou então restringir a conectividade com o host do banco de dados, o que pode ser feito criando regras de firewall.

Dependendo do seu cenário, é possível criar regras de firewall para permitir o acesso para estes itens:

  • Portas padrão do SAP listadas no TCP/IP de Todos os Produtos SAP.
  • Conexões do seu computador ou do ambiente de rede corporativa para a instância de VM do Compute Engine. Se você não tiver certeza do endereço IP a ser usado, fale com o administrador de redes da sua empresa.
  • Conexões SSH com a instância da VM, incluindo o SSH no navegador;
  • Conexão com a VM por meio de uma ferramenta de terceiros no Linux. Crie uma regra para permitir o acesso da ferramenta pelo seu firewall.

Para criar uma regra de firewall:

Console

  1. No console do Google Cloud, acesse a página Firewall da rede VPC.

    Acessar o Firewall

  2. Na parte superior da página, clique em Criar regra de firewall.

    • No campo Rede, selecione a rede em que a VM está localizada.
    • No campo Destinos, especifique os recursos no Google Cloud a que esta regra se aplica. Por exemplo, especifique Todas as instâncias na rede. Ou, para limitar a regra a instâncias específicas no Google Cloud, insira tags em Tags de destino especificado.
    • No campo Filtro de origem, selecione uma das opções a seguir:
      • Intervalos de IP para permitir tráfego de entrada de endereços IP específicos. Especifique o intervalo de endereços IP no campo Intervalos de IPs de origem.
      • Sub-redes para permitir tráfego de entrada de uma determinada sub-rede. Especifique o nome da sub-rede no campo Sub-redes a seguir. É possível usar esta opção para permitir acesso entre as VMs na configuração em três níveis ou de escalonamento horizontal.
    • Na seção Protocolos e portas, selecione Portas e protocolos especificados e insira tcp:PORT_NUMBER.
  3. Clique em Criar para criar a regra de firewall.

gcloud

Crie uma regra de firewall usando o seguinte comando:

$ 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

Como criar um cluster de alta disponibilidade do Linux com o SAP HANA instalado

As instruções a seguir usam o Cloud Deployment Manager para criar um cluster do RHEL ou do SLES com dois sistemas SAP HANA: um sistema SAP HANA primário de host único em uma instância de VM e um sistema SAP HANA em espera em outra instância de VM na mesma região do Compute Engine. Os sistemas SAP HANA usam replicação síncrona, e o sistema em espera pré-carrega os dados replicados.

Defina as configurações do cluster de alta disponibilidade do SAP HANA em um modelo de arquivo de configuração do Deployment Manager.

As instruções a seguir são para o Cloud Shell, mas, no geral, se aplicam à Google Cloud CLI.

  1. Confirme se as cotas atuais para recursos, como discos permanentes e CPUs, são suficientes para os sistemas SAP HANA que você está prestes a instalar. Se as cotas não forem suficientes, a implantação falhará. Para saber os requisitos de cotas do SAP HANA, consulte Considerações sobre preços e cotas para SAP HANA.

    Acessar a página de cotas

  2. Abra o Cloud Shell ou, se tiver instalado a Google Cloud CLI na estação de trabalho local, abra um terminal.

    Acessar o Cloud Shell

  3. Faça o download do modelo do arquivo de configuração template.yaml do cluster de alta disponibilidade do SAP HANA para o diretório de trabalho usando o seguinte comando no Cloud Shell ou no CLI gcloud:

    $ wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana_ha_ilb/template.yaml
  4. Você tem a opção de renomear o arquivo template.yaml para identificar a configuração que ele define.

  5. Abra o arquivo template.yaml no editor de código do Cloud Shell ou, se estiver usando o gcloud, o editor de texto de sua escolha.

    Para abrir o editor de código, clique no ícone de lápis, no canto superior direito da janela do terminal do Cloud Shell.

  6. No arquivo template.yaml, atualize os valores da propriedade substituindo os colchetes e o conteúdo deles pelos valores da instalação. As propriedades estão descritas na tabela a seguir.

    Para criar as instâncias de VM sem instalar o SAP HANA, exclua ou comente todas as linhas que começam com sap_hana_.

    Propriedade Tipo de dados Descrição
    type String

    Especifica o local, o tipo e a versão do modelo do Deployment Manager a ser usado durante a implantação.

    O arquivo YAML inclui duas especificações type, uma delas comentada. A especificação type que está ativa por padrão especifica a versão do modelo como latest. A especificação type comentada especifica uma versão de modelo específica com carimbo de data/hora.

    Se você precisar que todas as suas implantações usem a mesma versão de modelo, use a especificação type que inclui o carimbo de data/hora.

    primaryInstanceName String O nome da instância da VM do sistema SAP HANA principal. Especifique o nome usando letras minúsculas, números e hífens.
    secondaryInstanceName String O nome da instância da VM do sistema SAP HANA secundário. Especifique o nome usando letras minúsculas, números e hífens.
    primaryZone String A zona em que o sistema SAP HANA principal está implantado. As zonas principal e secundária precisam estar na mesma região.
    secondaryZone String A zona em que o sistema SAP HANA secundário será implantado. As zonas principal e secundária precisam estar na mesma região.
    instanceType String O tipo de máquina virtual do Compute Engine em que é necessário executar o SAP HANA. Se você precisar de um tipo de VM personalizado, especifique um tipo de VM predefinido com um número de vCPUs o mais próximo possível do necessário, mesmo que maior. Após a conclusão da implantação, modifique o número de vCPUs e a quantidade de memória..
    network String O nome da rede em que o balanceador de carga que gerencia o VIP será criado.

    Se você estiver usando uma rede VPC compartilhada, será preciso adicionar o código do projeto host como um diretório pai do nome da rede. Exemplo, host-project-id/network-name.

    subnetwork String O nome da sub-rede que você está usando para seu cluster de alta disponibilidade.

    Se você estiver usando uma rede VPC compartilhada, será preciso adicionar o ID do projeto host como um diretório pai do nome da sub-rede. Exemplo, host-project-id/subnetwork-name.

    linuxImage String Nome da imagem do sistema operacional Linux ou da família de imagens que você está usando com o SAP HANA. Para especificar uma família de imagens, adicione o prefixo family/ ao nome da família. Por exemplo, family/rhel-8-2-sap-ha ou family/sles-15-sp2-sap. Para definir uma imagem específica, determine somente o nome da imagem. Para ver a lista de famílias de imagens disponíveis, consulte a página Imagens no Console do Cloud.
    linuxImageProject String O projeto do Google Cloud que contém a imagem que você usará. Talvez seja seu próprio projeto ou um projeto de imagem do Google Cloud. Para o RHEL, especifique rhel-sap-cloud. Para o SLES, especifique suse-sap-cloud. Para ver uma lista de projetos de imagem do Google Cloud, consulte a página Imagens na documentação do Compute Engine.
    sap_hana_deployment_bucket String Nome do bucket do Cloud Storage no projeto que contém os arquivos de instalação do SAP HANA enviados em uma etapa anterior.
    sap_hana_sid String ID do sistema SAP HANA. O ID precisa ter três caracteres alfanuméricos e começar com uma letra. Todas as letras precisam ser maiúsculas.
    sap_hana_instance_number Inteiro Número da instância, 0 a 99, do sistema SAP HANA. O padrão é 0.
    sap_hana_sidadm_password String Uma senha temporária para o administrador do sistema operacional a ser usada durante a implantação. Quando a implantação estiver concluída, altere a senha. As senhas precisam ter no mínimo oito caracteres e incluir pelo menos uma letra maiúscula, uma letra minúscula e um número.
    sap_hana_system_password String Uma senha temporária para o superusuário do banco de dados. Quando a implantação estiver concluída, altere a senha. As senhas precisam ter pelo menos oito caracteres e incluir pelo menos uma letra maiúscula, uma letra minúscula e um número.
    sap_vip String O endereço IP que você usará para o VIP. O endereço IP precisa estar dentro do intervalo de endereços IP atribuídos à sub-rede. O modelo do Deployment Manager reserva esse endereço IP para você. Em um cluster de alta disponibilidade ativo, esse endereço IP é sempre atribuído à instância ativa do SAP HANA.
    primaryInstanceGroupName String Define o nome do grupo de instâncias não gerenciadas para o nó principal. Se você omitir o parâmetro, o nome padrão será ig-primaryInstanceName.
    secondaryInstanceGroupName String Define o nome do grupo de instâncias não gerenciadas para o nó secundário. Se você omitir esse parâmetro, o nome padrão será ig-secondaryInstanceName.
    loadBalancerName String Define o nome do balanceador de carga interno do TCP.
    nic_type String Opcional, mas recomendado se disponível para a máquina de destino e a versão do SO. Especifica a interface de rede a ser usada com a instância de VM. É possível especificar o valor GVNIC ou VIRTIO_NET. Para usar uma NIC virtual do Google (gVNIC), especifique uma imagem do SO compatível com gVNIC como o valor da propriedade linuxImage. Confira a lista de imagens do SO em Detalhes do sistema operacional.

    Se você não especificar um valor para essa propriedade, a interface de rede será selecionada automaticamente com base no tipo de máquina especificado para a propriedade instanceType.

    Esse argumento está disponível nas versões 202302060649 ou posteriores do modelo do Deployment Manager.

    Os exemplos a seguir mostram o modelo de arquivo de configuração concluído que define um cluster de alta disponibilidade para o SAP HANA. O cluster usa um balanceador de carga de rede de passagem interno para gerenciar o VIP.

    O Deployment Manager implanta os recursos do Google Cloud definidos no arquivo de configuração e, em seguida, os scripts assumem a configuração do sistema operacional, instalam o SAP HANA, configuram a replicação e configuram o cluster de alta disponibilidade do Linux.

    Clique em RHEL ou SLES para ver o exemplo específico de seu sistema operacional.

    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. Crie as instâncias:

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

    O comando acima invoca o Deployment Manager, que configura a infraestrutura do Google Cloud e controla o processo para um script que instala e configura o cluster do SAP HANA e o HA.

    Enquanto o Deployment Manager tem controle, as mensagens de status são gravadas no Cloud Shell. Depois que o script é invocado, as mensagens de status são gravadas no Logging e podem ser visualizadas no Console do Google Cloud, conforme descrito em Verificar os registros do Logging.

    O tempo até a conclusão pode variar, mas o processo todo geralmente leva menos de 30 minutos.

Como verificar a implantação do sistema HANA de alta disponibilidade

A verificação de um cluster de alta disponibilidade do SAP HANA envolve vários procedimentos diferentes:

  • Como verificar a geração de registros
  • Como verificar a configuração da VM e a instalação do SAP HANA
  • Como verificar a configuração do cluster
  • Como verificar o balanceador de carga e a integridade dos grupos de instâncias
  • Como verificar o sistema SAP HANA usando o SAP HANA Studio
  • Como realizar um teste de failover

Verificar os registros

  1. No console do Google Cloud, abra o Cloud Logging para monitorar o progresso da instalação e verificar se há erros.

    Acesse o Cloud Logging

  2. Filtre os registros:

    Explorador de registros

    1. Na página Explorador de registros, acesse o painel Consulta.

    2. No menu suspenso Recurso, selecione Global e clique em Adicionar.

      Se a opção Global não for exibida, insira a seguinte consulta no editor de consultas:

      resource.type="global"
      "Deployment"
      
    3. Clique em Run query.

    Visualizador de registros legado

    • Na página Visualizador de registros legado, no menu de seleção básico, selecione Global como o recurso de registros.
  3. Analise os registros filtrados:

    • Se "--- Finished" for exibido, o processamento do Deployment Manager estará concluído e será possível prosseguir para a próxima etapa.
    • Se você vir um erro de cota:

      1. Na página Cotas do IAM e Admin, aumente as cotas que não atendem aos requisitos do SAP HANA listados no Guia de planejamento do SAP HANA.

      2. Na página Implantações do Deployment Manager, exclua a implantação para limpar as VMs e discos permanentes da instalação com falha.

      3. Execute a implantação novamente.

Verificar a configuração da VM e a instalação do SAP HANA

  1. Depois de implantar o sistema SAP HANA sem erros, conecte-se a cada VM usando SSH. Na página Instâncias de VM do Compute Engine, clique no botão "SSH" para cada instância de VM ou use seu método de SSH preferido.

    Botão SSH na página "Instâncias de VM" do Compute Engine.

  2. Mude para o usuário raiz.

    sudo su -
  3. No prompt de comando, insira df -h. Verifique se você vê uma saída que inclui os diretórios /hana, como /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. Verifique o status do novo cluster digitando o comando de status específico para seu sistema operacional:

    RHEL

    pcs status

    SLES

    crm status

    Você verá resultados semelhantes ao exemplo a seguir, em que ambas as instâncias da VM são iniciadas e example-ha-vm1 é a instância primária ativa:

    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. Se quiser alterar para o usuário administrador do SAP, substitua SID_LC no comando a seguir pelo valor SID especificado no modelo de arquivo de configuração. Todas as letras devem ser minúsculas.

    su - SID_LCadm
    
  6. Para verificar se os serviços do SAP HANA, como hdbnameserver, hdbindexserver e outros, estão sendo executados na instância, digite o seguinte comando:

    HDB info
    
  7. Se você estiver usando o RHEL for SAP 9.0 ou posterior, verifique se os pacotes chkconfig e compat-openssl11 estão instalados na instância de VM.

    Para mais informações da SAP, consulte a Nota SAP 3108316 – Red Hat Enterprise Linux 9.x: instalação e configuração .

Verificar a configuração do cluster

Verifique as configurações de parâmetros do cluster. Verifique as configurações exibidas pelo software do cluster e as configurações dos parâmetros no arquivo de configuração do cluster. Compare suas configurações com as dos exemplos abaixo, que foram criadas pelos scripts de automação usados neste guia.

Clique na guia do seu sistema operacional.

RHEL

  1. Exiba as configurações de recursos do cluster:

    pcs config show

    O exemplo a seguir mostra as configurações de recursos que são criadas pelos scripts de automação no RHEL 8.1 e nas versões posteriores.

    Se você estiver executando o RHEL 7.7 ou uma versão anterior, a definição de recurso Clone: SAPHana_HA1_00-clone não incluirá Meta Attrs: promotable=true.

     Cluster Name: hacluster
     Corosync Nodes:
      example-rha-vm1 example-rha-vm2
     Pacemaker Nodes:
      example-rha-vm1 example-rha-vm2
    
     Resources:
      Group: g-primary
       Resource: rsc_healthcheck_HA1 (class=service type=haproxy)
        Operations: monitor interval=10s timeout=20s (rsc_healthcheck_HA1-monitor-interval-10s)
                    start interval=0s timeout=100 (rsc_healthcheck_HA1-start-interval-0s)
                    stop interval=0s timeout=100 (rsc_healthcheck_HA1-stop-interval-0s)
       Resource: rsc_vip_HA1_00 (class=ocf provider=heartbeat type=IPaddr2)
        Attributes: cidr_netmask=32 ip=10.128.15.100 nic=eth0
        Operations: monitor interval=3600s timeout=60s (rsc_vip_HA1_00-monitor-interval-3600s)
                    start interval=0s timeout=20s (rsc_vip_HA1_00-start-interval-0s)
                    stop interval=0s timeout=20s (rsc_vip_HA1_00-stop-interval-0s)
      Clone: SAPHanaTopology_HA1_00-clone
       Meta Attrs: clone-max=2 clone-node-max=1 interleave=true
       Resource: SAPHanaTopology_HA1_00 (class=ocf provider=heartbeat type=SAPHanaTopology)
        Attributes: InstanceNumber=00 SID=HA1
        Operations: methods interval=0s timeout=5 (SAPHanaTopology_HA1_00-methods-interval-0s)
                    monitor interval=10 timeout=600 (SAPHanaTopology_HA1_00-monitor-interval-10)
                    reload interval=0s timeout=5 (SAPHanaTopology_HA1_00-reload-interval-0s)
                    start interval=0s timeout=600 (SAPHanaTopology_HA1_00-start-interval-0s)
                    stop interval=0s timeout=300 (SAPHanaTopology_HA1_00-stop-interval-0s)
      Clone: SAPHana_HA1_00-clone
       Meta Attrs: promotable=true
       Resource: SAPHana_HA1_00 (class=ocf provider=heartbeat type=SAPHana)
        Attributes: AUTOMATED_REGISTER=true DUPLICATE_PRIMARY_TIMEOUT=7200 InstanceNumber=00 PREFER_SITE_TAKEOVER=true SID=HA1
        Meta Attrs: clone-max=2 clone-node-max=1 interleave=true notify=true
        Operations: demote interval=0s timeout=3600 (SAPHana_HA1_00-demote-interval-0s)
                    methods interval=0s timeout=5 (SAPHana_HA1_00-methods-interval-0s)
                    monitor interval=61 role=Slave timeout=700 (SAPHana_HA1_00-monitor-interval-61)
                    monitor interval=59 role=Master timeout=700 (SAPHana_HA1_00-monitor-interval-59)
                    promote interval=0s timeout=3600 (SAPHana_HA1_00-promote-interval-0s)
                    reload interval=0s timeout=5 (SAPHana_HA1_00-reload-interval-0s)
                    start interval=0s timeout=3600 (SAPHana_HA1_00-start-interval-0s)
                    stop interval=0s timeout=3600 (SAPHana_HA1_00-stop-interval-0s)
    
     Stonith Devices:
      Resource: STONITH-example-rha-vm1 (class=stonith type=fence_gce)
       Attributes: pcmk_delay_max=30 pcmk_monitor_retries=4 pcmk_reboot_timeout=300 port=example-rha-vm1 project=sap-certification-env zone=us-central1-a
       Operations: monitor interval=300s timeout=120s (STONITH-example-rha-vm1-monitor-interval-300s)
                   start interval=0 timeout=60s (STONITH-example-rha-vm1-start-interval-0)
      Resource: STONITH-example-rha-vm2 (class=stonith type=fence_gce)
       Attributes: pcmk_monitor_retries=4 pcmk_reboot_timeout=300 port=example-rha-vm2 project=sap-certification-env zone=us-central1-c
       Operations: monitor interval=300s timeout=120s (STONITH-example-rha-vm2-monitor-interval-300s)
                   start interval=0 timeout=60s (STONITH-example-rha-vm2-start-interval-0)
     Fencing Levels:
    
     Location Constraints:
       Resource: STONITH-example-rha-vm1
         Disabled on: example-rha-vm1 (score:-INFINITY) (id:location-STONITH-example-rha-vm1-example-rha-vm1--INFINITY)
       Resource: STONITH-example-rha-vm2
         Disabled on: example-rha-vm2 (score:-INFINITY) (id:location-STONITH-example-rha-vm2-example-rha-vm2--INFINITY)
     Ordering Constraints:
       start SAPHanaTopology_HA1_00-clone then start SAPHana_HA1_00-clone (kind:Mandatory) (non-symmetrical) (id:order-SAPHanaTopology_HA1_00-clone-SAPHana_HA1_00-clone-mandatory)
     Colocation Constraints:
       g-primary with SAPHana_HA1_00-clone (score:4000) (rsc-role:Started) (with-rsc-role:Master) (id:colocation-g-primary-SAPHana_HA1_00-clone-4000)
     Ticket Constraints:
    
     Alerts:
      No alerts defined
    
     Resources Defaults:
      migration-threshold=5000
      resource-stickiness=1000
     Operations Defaults:
      timeout=600s
    
     Cluster Properties:
      cluster-infrastructure: corosync
      cluster-name: hacluster
      dc-version: 2.0.2-3.el8_1.2-744a30d655
      have-watchdog: false
      stonith-enabled: true
      stonith-timeout: 300s
    
     Quorum:
       Options:
    
  2. Exiba o arquivo de configuração do cluster, corosync.conf:

    cat /etc/corosync/corosync.conf

    O exemplo a seguir mostra os parâmetros que os scripts de automação definem para o RHEL 8.1 e versões mais recentes.

    Se você estiver usando o RHEL 7.7 ou uma versão mais antiga, o valor de transport: será udpu em vez de knet:

     totem {
         version: 2
         cluster_name: hacluster
         transport: knet
         join: 60
         max_messages: 20
         token: 20000
         token_retransmits_before_loss_const: 10
         crypto_cipher: aes256
         crypto_hash: sha256
     }
    
     nodelist {
         node {
             ring0_addr: example-rha-vm1
             name: example-rha-vm1
             nodeid: 1
         }
    
         node {
             ring0_addr: example-rha-vm2
             name: example-rha-vm2
             nodeid: 2
         }
     }
    
     quorum {
         provider: corosync_votequorum
         two_node: 1
     }
    
     logging {
         to_logfile: yes
         logfile: /var/log/cluster/corosync.log
         to_syslog: yes
         timestamp: on
     }
    

SLES

  1. Exiba as configurações de recursos do cluster:

    crm config show

    Os scripts de automação usados neste guia criam as configurações de recursos mostradas no exemplo a seguir:

     node 1: example-ha-vm1 \
             attributes hana_ha1_op_mode=logreplay lpa_ha1_lpt=1635380335 hana_ha1_srmode=syncmem hana_ha1_vhost=example-ha-vm1 hana_ha1_remoteHost=example-ha-vm2 hana_ha1_site=example-ha-vm1
     node 2: example-ha-vm2 \
             attributes lpa_ha1_lpt=30 hana_ha1_op_mode=logreplay hana_ha1_vhost=example-ha-vm2 hana_ha1_site=example-ha-vm2 hana_ha1_srmode=syncmem hana_ha1_remoteHost=example-ha-vm1
     primitive STONITH-example-ha-vm1 stonith:external/gcpstonith \
             op monitor interval=300s timeout=120s \
             op start interval=0 timeout=60s \
             params instance_name=example-ha-vm1 gcloud_path="/usr/bin/gcloud" logging=yes pcmk_reboot_timeout=300 pcmk_monitor_retries=4 pcmk_delay_max=30
     primitive STONITH-example-ha-vm2 stonith:external/gcpstonith \
             op monitor interval=300s timeout=120s \
             op start interval=0 timeout=60s \
             params instance_name=example-ha-vm2 gcloud_path="/usr/bin/gcloud" logging=yes pcmk_reboot_timeout=300 pcmk_monitor_retries=4
     primitive rsc_SAPHanaTopology_HA1_HDB00 ocf:suse:SAPHanaTopology \
             operations $id=rsc_sap2_HA1_HDB00-operations \
             op monitor interval=10 timeout=600 \
             op start interval=0 timeout=600 \
             op stop interval=0 timeout=300 \
             params SID=HA1 InstanceNumber=00
     primitive rsc_SAPHana_HA1_HDB00 ocf:suse:SAPHana \
             operations $id=rsc_sap_HA1_HDB00-operations \
             op start interval=0 timeout=3600 \
             op stop interval=0 timeout=3600 \
             op promote interval=0 timeout=3600 \
             op demote interval=0 timeout=3600 \
             op monitor interval=60 role=Master timeout=700 \
             op monitor interval=61 role=Slave timeout=700 \
             params SID=HA1 InstanceNumber=00 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=true
     primitive rsc_vip_hc-primary anything \
             params binfile="/usr/bin/socat" cmdline_options="-U TCP-LISTEN:60000,backlog=10,fork,reuseaddr /dev/null" \
             op monitor timeout=20s interval=10s \
             op_params depth=0
     primitive rsc_vip_int-primary IPaddr2 \
             params ip=10.128.15.101 cidr_netmask=32 nic=eth0 \
             op monitor interval=3600s timeout=60s
     group g-primary rsc_vip_int-primary rsc_vip_hc-primary
     ms msl_SAPHana_HA1_HDB00 rsc_SAPHana_HA1_HDB00 \
             meta notify=true clone-max=2 clone-node-max=1 target-role=Started interleave=true
     clone cln_SAPHanaTopology_HA1_HDB00 rsc_SAPHanaTopology_HA1_HDB00 \
             meta clone-node-max=1 target-role=Started interleave=true
     location LOC_STONITH_example-ha-vm1 STONITH-example-ha-vm1 -inf: example-ha-vm1
     location LOC_STONITH_example-ha-vm2 STONITH-example-ha-vm2 -inf: example-ha-vm2
     colocation col_saphana_ip_HA1_HDB00 4000: g-primary:Started msl_SAPHana_HA1_HDB00:Master
     order ord_SAPHana_HA1_HDB00 Optional: cln_SAPHanaTopology_HA1_HDB00 msl_SAPHana_HA1_HDB00
     property cib-bootstrap-options: \
             have-watchdog=false \
             dc-version="1.1.24+20210811.f5abda0ee-3.18.1-1.1.24+20210811.f5abda0ee" \
             cluster-infrastructure=corosync \
             cluster-name=hacluster \
             maintenance-mode=false \
             stonith-timeout=300s \
             stonith-enabled=true
     rsc_defaults rsc-options: \
             resource-stickiness=1000 \
             migration-threshold=5000
     op_defaults op-options: \
             timeout=600
    
  2. Exiba o arquivo de configuração do cluster, corosync.conf:

    cat /etc/corosync/corosync.conf

    Os scripts de automação usados neste guia especificam as configurações de parâmetros no arquivo corosync.conf, conforme mostrado no exemplo a seguir:

     totem {
       version: 2
       secauth: off
       crypto_hash: sha1
       crypto_cipher: aes256
       cluster_name: hacluster
       clear_node_high_bit: yes
       token: 20000
       token_retransmits_before_loss_const: 10
       join: 60
       max_messages: 20
       transport: udpu
       interface {
         ringnumber: 0
         bindnetaddr: 10.128.1.63
         mcastport: 5405
         ttl: 1
       }
     }
     logging {
       fileline: off
       to_stderr: no
       to_logfile: no
       logfile: /var/log/cluster/corosync.log
       to_syslog: yes
       debug: off
       timestamp: on
       logger_subsys {
         subsys: QUORUM
         debug: off
       }
     }
     nodelist {
       node {
         ring0_addr: example-ha-vm1
         nodeid: 1
       }
       node {
         ring0_addr: example-ha-vm2
         nodeid: 2
       }
     }
     quorum {
       provider: corosync_votequorum
       expected_votes: 2
       two_node: 1
     }
    

Verificar o balanceador de carga e a integridade dos grupos de instâncias

Para confirmar se o balanceador de carga e a verificação de integridade foram configurados corretamente, verifique o balanceador de carga e os grupos de instâncias no Console do Google Cloud.

  1. Abra a página Balanceamento de carga no Console do Google Cloud:

    Acessar o Cloud Load Balancing

  2. Na lista de balanceadores de carga, confirme se um balanceador de carga foi criado para seu cluster de alta disponibilidade.

  3. Na página Detalhes do balanceador de carga, na coluna Íntegro em Grupo de instâncias, na seção Back-end, confirme que um dos grupos de instâncias mostra "1/1" e o outro mostra "0/1". Depois de um failover, o indicador de integridade "1/1" alterna para o novo grupo de instâncias ativo.

    Mostra a página de detalhes do balanceador de carga com o grupo de instâncias principal ativo
indicado por "1/1" e o secundário indicado por "0/1".

Verificar o sistema SAP HANA usando o SAP HANA Studio

É possível usar o Cockpit do SAP HANA ou o SAP HANA Studio para monitorar e gerenciar os sistemas SAP HANA em um cluster de alta disponibilidade.

  1. Conecte-se ao sistema HANA usando o SAP HANA Studio. Ao definir a conexão, especifique os seguintes valores:

    • No painel "Specify System", especifique o endereço IP flutuante como o nome do host.
    • No painel "Connection Properties", para a autenticação do usuário do banco de dados, especifique o nome de superusuário do banco de dados e a senha definida para a propriedade sap_hana_system_password no arquivo template.yaml.

    Para mais informações da SAP sobre a instalação do SAP HANA Studio, consulte o Guia de instalação e atualização do SAP HANA Studio (em inglês).

  2. Depois que o SAP HANA Studio estiver conectado ao sistema HANA de alta disponibilidade, exiba a visão geral do sistema clicando duas vezes no nome do sistema no painel de navegação no lado esquerdo da janela.

    Captura de tela do painel de navegação do SAP HANA Studio

  3. Em "General Information", na guia "Overview", verifique se:

    • o campo "Operational Status" mostra "All services started";
    • o campo "System Replication Status" mostra "All services are active and in sync".

    Captura de tela da guia "Overview" do SAP HANA Studio

  4. Confirme o modo de replicação clicando no link System Replication Status em "General Information". A replicação síncrona é indicada por SYNCMEM na coluna REPLICATION_MODE, na guia "System Replication".

    Captura de tela da guia "System Replication Status" do SAP HANA Studio

Se qualquer uma das etapas de validação mostrar que a instalação falhou, faça o seguinte:

  1. Resolva os erros.
  2. Exclua a implantação da página Implantações.
  3. Recrie as instâncias, conforme descrito no último passo da seção anterior.

Executar um teste de failover

Para executar um teste de failover:

  1. Conecte-se à VM principal usando SSH. É possível fazer isso na página Instâncias de VM do Compute Engine, clicando no botão "SSH" para cada instância da VM ou usando seu método SSH preferido.

  2. No prompt de comando, digite o seguinte comando:

    sudo ip link set eth0 down

    O comando ip link set eth0 down aciona um failover ao interromper as comunicações com o host principal.

  3. Reconecte-se ao host usando o SSH e mude para o usuário raiz

  4. Confirme se o host principal está ativo na VM que costumava conter o host secundário. A reinicialização automática está ativada no cluster. Portanto, o host parado será reiniciado e assumirá a função de host secundário.

    RHEL

    pcs status

    SLES

    crm status

    Os exemplos a seguir mostram que os papéis em cada host foram alternados.

    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. Na página Detalhes do balanceador de carga no console, confirme se a nova instância primária ativa mostra "1/1" na coluna Íntegro. Se necessário, atualize a página.

    Acessar o Cloud Load Balancing

    Exemplo:

    Mostra a página de detalhes do balanceador de carga com a instância "ig-example-ha-vm2"
mostrando "1/1" na coluna "Íntegro".

  6. No SAP HANA Studio, para confirmar se você ainda está conectado ao sistema, clique duas vezes na entrada do sistema no painel de navegação para atualizar as informações.

  7. Clique no link System Replication Status para confirmar se os hosts principal e secundário foram trocados e estão ativos.

    Captura de tela da guia "System Replication Status" do SAP HANA Studio

Valide a instalação do agente do Google Cloud para SAP

Depois de implantar uma VM e instalar o sistema SAP, confirme se o agente do Google Cloud para SAP está funcionando corretamente.

Verificar se o agente do Google Cloud para SAP está em execução

Para verificar se o agente está em execução, siga estas etapas:

  1. Estabeleça uma conexão SSH com a instância do Compute Engine.

  2. Execute este comando:

    systemctl status google-cloud-sap-agent

    Se o agente estiver funcionando corretamente, a saída conterá active (running). Por exemplo:

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

Se o agente não estiver em execução, reinicie-o.

Verificar se o SAP Host Agent está recebendo métricas

Para verificar se as métricas de infraestrutura são coletadas pelo agente do Google Cloud para SAP e enviadas corretamente ao agente de host da SAP, siga estas etapas:

  1. No sistema SAP, insira a transação ST06.
  2. No painel de visão geral, verifique a disponibilidade e o conteúdo dos seguintes campos para a configuração completa da infraestrutura de monitoramento da SAP e do Google:

    • Provedor de nuvem: Google Cloud Platform
    • Acesso ao monitoramento avançado: TRUE
    • Detalhes do monitoramento avançado: ACTIVE

Configurar o monitoramento para o SAP HANA

Como opção, monitore as instâncias do SAP HANA usando o agente do Google Cloud para SAP. A partir da versão 2.0, é possível configurar o agente para coletar as métricas de monitoramento do SAP HANA e enviá-las para o Cloud Monitoring. O Cloud Monitoring permite criar painéis para visualizar essas métricas, configurar alertas com base em limites de métrica e muito mais.

Para monitorar um cluster de alta disponibilidade usando o agente do Google Cloud para SAP, siga as orientações fornecidas em Configuração de alta disponibilidade para o agente.

Para mais informações sobre a coleta de métricas de monitoramento do SAP HANA usando o agente do Google Cloud para SAP, consulte Coleta de métricas de monitoramento do SAP HANA.

Ativar a reinicialização rápida do SAP HANA

O Google Cloud recomenda fortemente ativar a reinicialização rápida do SAP HANA para cada instância do SAP HANA, especialmente para instâncias maiores. A reinicialização rápida do SAP HANA reduz os tempos de reinicialização caso o SAP HANA seja encerrado, mas o sistema operacional continua em execução.

Conforme definido pelos scripts de automação que o Google Cloud fornece, as configurações do sistema operacional e do kernel já aceitam o Inicialização rápida do SAP HANA. Você precisa definir o sistema de arquivos tmpfs e configurar o SAP HANA.

Para definir o sistema de arquivos tmpfs e configurar o SAP HANA, siga as etapas manuais ou use o script de automação fornecido pelo Google Cloud para ativar a reinicialização rápida do SAP HANA. Para mais informações, veja:

Para receber instruções completas sobre a reinicialização rápida do SAP HANA, consulte a documentação da opção de reinicialização rápida do SAP HANA.

Etapas manuais

Configurar o sistema de arquivos tmpfs

Depois que as VMs do host e os sistemas SAP HANA de base forem implantados, você precisará criar e ativar diretórios para os nós NUMA no sistema de arquivos tmpfs.

Exibir a topologia de NUMA da sua VM

Antes de mapear o sistema de arquivos tmpfs necessário, você precisa saber quantos nós NUMA sua VM tem. Para exibir os nós NUMA disponíveis em uma VM do Compute Engine, digite o seguinte comando:

lscpu | grep NUMA

Por exemplo, um tipo de VM m2-ultramem-208 tem quatro nós NUMA, numerados de 0 a 3, conforme mostrado no exemplo a seguir:

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
Criar os diretórios de nós NUMA

Crie um diretório para cada nó NUMA na sua VM e defina as permissões.

Por exemplo, para quatro nós NUMA numerados de 0 a 3:

mkdir -pv /hana/tmpfs{0..3}/SID
chown -R SID_LCadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID
Montar os diretórios de nó NUMA em tmpfs

Monte os diretórios do sistema de arquivos tmpfs e especifique uma preferência de nó NUMA para cada um com mpol=prefer:

SID especifica o SID com letras maiúsculas.

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
Atualizar /etc/fstab

Para garantir que os pontos de montagem estejam disponíveis após uma reinicialização do sistema operacional, adicione entradas à tabela do sistema de arquivos, /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

Opcional: defina limites de uso de memória

O sistema de arquivos tmpfs pode aumentar e diminuir dinamicamente.

Para limitar a memória usada pelo sistema de arquivos tmpfs, defina um limite de tamanho para um volume de nó NUMA com a opção size. Por exemplo:

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

Também é possível limitar o uso geral da memória tmpfs para todos os nós NUMA de uma determinada instância do SAP HANA e de um determinado nó do servidor definindo o parâmetro persistent_memory_global_allocation_limit na seção [memorymanager] do arquivo global.ini.

Configuração do SAP HANA para reinicialização rápida

Para configurar o SAP HANA para reinicialização rápida, atualize o arquivo global.ini e especifique as tabelas a serem armazenadas na memória permanente.

Atualize a seção [persistence] no arquivo global.ini

Configure a seção [persistence] no arquivo global.ini do SAP HANA para fazer referência aos locais tmpfs. Separe cada local tmpfs com um ponto e vírgula:

[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

O exemplo anterior especifica quatro volumes de memória para quatro nós NUMA, que correspondem a m2-ultramem-208. Se você estivesse executando no m2-ultramem-416, seria necessário configurar oito volumes de memória (0..7).

Reinicie o SAP HANA depois de modificar o arquivo global.ini.

O SAP HANA agora pode usar o local tmpfs como espaço de memória permanente.

Especificar as tabelas a serem armazenadas na memória permanente

Especifique tabelas ou partições específicas de coluna para armazenar na memória permanente.

Por exemplo, para ativar a memória permanente de uma tabela atual, execute a consulta SQL:

ALTER TABLE exampletable persistent memory ON immediate CASCADE

Para alterar o padrão de novas tabelas, adicione o parâmetro table_default no arquivo indexserver.ini. Por exemplo:

[persistent_memory]
table_default = ON

Para mais informações sobre como controlar colunas, tabelas e quais visualizações de monitoramento fornecem informações detalhadas, consulte Memória permanente do SAP HANA.

Etapas automatizadas

O script de automação que o Google Cloud fornece para ativar a Inicialização rápida do SAP HANA faz mudanças nos diretórios /hana/tmpfs*, /etc/fstab e na configuração do SAP HANA. Ao executar o script, talvez seja necessário executar etapas adicionais, dependendo se essa é a implantação inicial do seu sistema SAP HANA ou se você está redimensionando sua máquina para um tamanho de NUMA diferente.

Para a implantação inicial do seu sistema SAP HANA ou redimensionar a máquina para aumentar o número de nós NUMA, verifique se o SAP HANA está em execução durante a execução do script de automação que o Google Cloud fornece para permitir a reinicialização rápida do SAP HANA.

Ao redimensionar a máquina para diminuir o número de nós NUMA, verifique se o SAP HANA é interrompido durante a execução do script de automação fornecido pelo Google Cloud para ativar a reinicialização rápida do SAP HANA. Depois que o script for executado, você precisará atualizar manualmente a configuração do SAP HANA para concluir a configuração de reinício rápido do SAP HANA. Para mais informações, consulte Configuração do SAP HANA para reinício rápido.

Para ativar o reinício rápido do SAP HANA, siga estas etapas:

  1. Estabeleça uma conexão SSH com sua VM do host.

  2. Mudar para raiz:

    sudo su -

  3. Faça o download do script sap_lib_hdbfr.sh:

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
  4. Torne o arquivo executável:

    chmod +x sap_lib_hdbfr.sh
  5. Verifique se o script não tem erros:

    vi sap_lib_hdbfr.sh
    ./sap_lib_hdbfr.sh -help

    Se o comando retornar um erro, entre em contato com o Cloud Customer Care. Para mais informações sobre como entrar em contato com o Customer Care, consulte Como receber suporte para a SAP no Google Cloud.

  6. Execute o script depois de substituir o ID do sistema (SID) do SAP HANA e a senha do usuário SYSTEM do banco de dados do SAP HANA. Para fornecer a senha com segurança, recomendamos que você use uma chave secreta no Gerenciador de secrets.

    Execute o script usando o nome de um secret no Secret Manager. Esse secret precisa existir no projeto do Google Cloud que contém a instância de VM do host.

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

    Substitua:

    • SID: especifique o SID com letras maiúsculas. Por exemplo, AHA.
    • SECRET_NAME: especifique o nome do secret que corresponde à senha do usuário do SYSTEM do banco de dados do SAP HANA. Esse secret precisa existir no projeto do Google Cloud que contém a instância de VM do host.

    Outra opção é executar o script com uma senha de texto simples. Depois que a reinicialização rápida do SAP HANA estiver ativada, altere sua senha. Não é recomendável usar uma senha de texto simples, porque ela seria registrada no histórico de linha de comando da VM.

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

    Substitua:

    • SID: especifique o SID com letras maiúsculas. Por exemplo, AHA.
    • PASSWORD: especifique a senha do usuário do SYSTEM do banco de dados SAP HANA.

Para uma execução inicial bem-sucedida, você verá uma saída semelhante a esta:

INFO - Script is running in standalone mode
ls: cannot access '/hana/tmpfs*': No such file or directory
INFO - Setting up HANA Fast Restart for system 'TST/00'.
INFO - Number of NUMA nodes is 2
INFO - Number of directories /hana/tmpfs* is 0
INFO - HANA version 2.57
INFO - No directories /hana/tmpfs* exist. Assuming initial setup.
INFO - Creating 2 directories /hana/tmpfs* and mounting them
INFO - Adding /hana/tmpfs* entries to /etc/fstab. Copy is in /etc/fstab.20220625_030839
INFO - Updating the HANA configuration.
INFO - Running command: select * from dummy
DUMMY
"X"
1 row selected (overall time 4124 usec; server time 130 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_persistent_memory_volumes') = '/hana/tmpfs0/TST;/hana/tmpfs1/TST;'
0 rows affected (overall time 3570 usec; server time 2239 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistent_memory', 'table_unload_action') = 'retain';
0 rows affected (overall time 4308 usec; server time 2441 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('persistent_memory', 'table_default') = 'ON';
0 rows affected (overall time 3422 usec; server time 2152 usec)

Configurar o agente de monitoramento do Google para o SAP HANA

É possível configurar o agente de monitoramento do Google para o SAP HANA, que coleta métricas do SAP HANA e as envia para o Monitoring. Com o Monitoring, é possível criar painéis para as métricas, configurar alertas personalizados com base em limites de métricas e muito mais.

Para monitorar um cluster de alta disponibilidade, instale o agente de monitoramento em uma instância de VM fora do cluster. Especifique o endereço IP flutuante do cluster como o endereço IP da instância do host a ser monitorada.

Para mais informações sobre como definir e configurar o agente de monitoramento do Google para o SAP HANA, consulte este guia do usuário.

Conectar-se ao SAP HANA

Como essas instruções não usam um endereço IP externo para o SAP HANA, só será possível se conectar às instâncias do SAP HANA por meio da instância Bastion usando SSH ou por meio do Windows Server usando o SAP HANA Studio.

  • Para se conectar ao SAP HANA por meio da instância Bastion, conecte-se ao Bastion Host e depois às instâncias do SAP HANA usando o cliente SSH de sua escolha.

  • Para se conectar ao banco de dados SAP HANA por meio do SAP HANA Studio, use um cliente de área de trabalho remota para se conectar à instância do Windows Server. Após a conexão, instale o SAP HANA Studio (em inglês) manualmente e acesse o banco de dados SAP HANA.

Configurar o HANA ativo/ativo (ativado para leitura)

A partir do SAP HANA 2.0 SPS1, é possível configurar o HANA Active/Active (Read Enabled) em um cluster do Pacemaker. Para instruções, consulte:

Como realizar tarefas de pós-implantação

Antes de usar sua instância do SAP HANA, recomendamos que você siga os passos de pós-implantação a seguir. Para mais informações, consulte o guia de instalação e atualização do SAP HANA (em inglês).

  1. Altere as senhas temporárias do superusuário do sistema SAP HANA e do superusuário do banco de dados.

  2. Atualize o software SAP HANA com os patches mais recentes.

  3. Instale todos os componentes extras, como o Application Function Libraries (AFL) ou o Smart Data Access (SDA).

  4. Configure e faça o backup do seu novo banco de dados SAP HANA. Para mais informações, consulte o guia de operações do SAP HANA.

A seguir