Terraform: guia de configuração de cluster de alta disponibilidade 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 Terraform para implantar duas máquinas virtuais (VMs) do Compute Engine, dois sistemas de escalonamento vertical do SAP HANA, um endereço IP virtual (VIP) com uma implementação de balanceador de carga de rede interno de passagem e um cluster de HA baseado em SO, tudo de acordo com as práticas recomendadas pelo Google Cloud, pela SAP e pelo fornecedor do SO.

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

Se você precisar de um sistema de escalonamento horizontal com hosts em espera para failover automático do host do SAP HANA, consulte Terraform: sistema de escalonamento horizontal do SAP HANA com guia de implantação de failover automático do host do Google Analytics.

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 é destinado a 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 criar uma rede VPC para o projeto, siga estas etapas:

  1. Crie uma rede de modo personalizado. Para mais informações, consulte Como criar uma rede de modo personalizado.

  2. Crie uma sub-rede e especifique a região e o intervalo de IP. Para mais informações, consulte Como adicionar 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 arquivo de configuração do Terraform cria a regra de firewall para as verificações de integridade, que pode ser modificada 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 as regras de firewall para seu projeto, consulte Como criar regras de firewall.

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

As instruções a seguir usam o arquivo de configuração do Terraform 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 opções de configuração do cluster de alta disponibilidade do SAP HANA em um arquivo de configuração do Terraform.

  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 forem insuficientes, 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 "Cotas"

  2. Abra o Cloud Shell.

    Abrir o Cloud Shell

  3. Faça o download do arquivo de configuração sap_hana_ha.tf para o cluster de alta disponibilidade do SAP HANA no diretório de trabalho:

    $ wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_ha/terraform/sap_hana_ha.tf
  4. Abra o arquivo sap_hana_ha.tf no editor de código do Cloud Shell.

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

  5. No arquivo sap_hana_ha.tf, atualize os valores do argumento substituindo o conteúdo dentro das aspas duplas pelos valores da sua instalação. Os argumentos são descritos na tabela a seguir.

    Argumento Tipo de dado Descrição
    source String

    Especifica o local e a versão do módulo do Terraform a serem usados durante a implantação.

    O arquivo de configuração sap_hana_ha.tf inclui duas instâncias do argumento source: uma que está ativa e outra incluída como um comentário. O argumento source, que é ativo por padrão, especifica latest como a versão do módulo. A segunda instância do argumento source, que, por padrão, é desativada por um caractere # inicial, especifica um carimbo de data/hora que identifica uma versão do módulo.

    Se você precisar que todas as implantações usem a mesma versão do módulo, remova o caractere # líder do argumento source que especifica o carimbo de data/hora da versão e o adiciona aos source que especifica latest.

    project_id String Especifique o ID do projeto do Google Cloud em que você está implantando esse sistema. Por exemplo, my-project-x.
    machine_type String Especifique o tipo de máquina virtual (VM) do Compute Engine em que você precisa executar o sistema SAP. 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.

    Por exemplo, n1-highmem-32.

    network String Especifique o nome da rede em que você precisa criar o balanceador de carga que gerencia o VIP.

    Se você estiver usando uma rede VPC compartilhada, será preciso adicionar o ID do projeto host como um diretório pai do nome da rede. Por exemplo, HOST_PROJECT_ID/NETWORK_NAME.

    subnetwork String O nome da sub-rede criada em um passo anterior. Se você estiver implantando em uma VPC compartilhada, especifique esse valor como SHARED_VPC_PROJECT_ID/SUBNETWORK. Por exemplo, myproject/network1.
    linux_image String Especifique o nome da imagem do sistema operacional Linux em que você quer implantar o sistema SAP. Por exemplo, rhel-9-2-sap-ha ou sles-15-sp5-sap. Para ver a lista de imagens do sistema operacional disponíveis, consulte a página Imagens no console do Google Cloud.
    linux_image_project String Especifique o projeto do Google Cloud que contém a imagem que você especificou para o argumento linux_image. Talvez seja seu próprio projeto ou um projeto de imagem do Google Cloud. Para uma imagem do Compute Engine, especifique rhel-sap-cloud ou suse-sap-cloud. Para encontrar o projeto de imagem do sistema operacional, consulte Detalhes do sistema operacional.
    primary_instance_name String Especifique um nome da instância de VM para o sistema SAP HANA principal. O nome pode conter letras minúsculas, números ou hífens.
    primary_zone String Especifique uma zona em que o sistema SAP HANA principal está implantado. As zonas principal e secundária precisam estar na mesma região. Por exemplo, us-east1-c
    secondary_instance_name String Especifique um nome da instância de VM para o sistema secundário do SAP HANA. O nome pode conter letras minúsculas, números ou hífens.
    secondary_zone String Especifique uma zona em que o sistema secundário do SAP HANA está implantado. As zonas principal e secundária precisam estar na mesma região. Por exemplo, us-east1-b
    sap_hana_deployment_bucket String Para instalar automaticamente o SAP HANA nas VMs implantadas, especifique o caminho do bucket do Cloud Storage que contém os arquivos de instalação do SAP HANA. Não inclua gs:// no caminho. Inclua apenas o nome do bucket e os nomes das pastas. Por exemplo, my-bucket-name/my-folder.

    O bucket do Cloud Storage precisa existir no projeto do Google Cloud especificado para o argumento project_id.

    sap_hana_sid String Para instalar automaticamente o SAP HANA nas VMs implantadas, especifique o ID do sistema SAP HANA. O ID precisa ter três caracteres alfanuméricos e começar com uma letra. Todas as letras precisam estar em maiúsculas. Por exemplo, ED1.
    sap_hana_instance_number Inteiro Opcional. Especifique o número da instância, de 0 a 99, do sistema SAP HANA. O padrão é 0.
    sap_hana_sidadm_password String Para instalar automaticamente o SAP HANA nas VMs implantadas, especifique uma senha temporária SIDadm para os scripts de instalação a serem usados durante a implantação. A senha precisa conter pelo menos oito caracteres e incluir pelo menos uma letra maiúscula, uma letra minúscula e um número.

    Em vez de especificar uma senha como texto simples, recomendamos o uso de um secret. Para mais informações, consulte Gerenciamento de senhas.

    sap_hana_sidadm_password_secret String Opcional. Se você estiver usando o Secret Manager para armazenar aSIDadm e depois especifique o Nome do secret que corresponde a essa senha.

    No Secret Manager, verifique se o valor do Secret, que é a senha, contém pelo menos oito caracteres e inclui pelo menos uma letra maiúscula, uma minúscula e um número.

    Para mais informações, consulte Gerenciamento de senhas.

    sap_hana_system_password String Para instalar automaticamente o SAP HANA nas VMs implantadas, especifique uma senha temporária de superusuário do banco de dados para os scripts de instalação usarem durante a implantação. A senha precisa conter pelo menos oito caracteres e incluir pelo menos uma letra maiúscula, uma letra minúscula e um número.

    Em vez de especificar uma senha como texto simples, recomendamos o uso de um secret. Para mais informações, consulte Gerenciamento de senhas.

    sap_hana_system_password_secret String Opcional. Se você estiver usando o Secret Manager para armazenar a senha de superusuário do banco de dados, especifique o Nome do secret que corresponde a essa senha.

    No Secret Manager, verifique se o valor do Secret, que é a senha, contém pelo menos oito caracteres e inclui pelo menos uma letra maiúscula, uma minúscula e um número.

    Para mais informações, consulte Gerenciamento de senhas.

    sap_hana_double_volume_size Booleano Opcional. Para duplicar o tamanho do volume do HANA, especifique true. Esse argumento é útil quando você quer implantar várias instâncias do SAP HANA ou uma instância de recuperação de desastres do SAP HANA na mesma VM. Por padrão, o tamanho do volume é calculado automaticamente para ser o tamanho mínimo necessário para o tamanho da VM, sem deixar de atender aos requisitos de certificação e suporte da SAP. O valor padrão é false.
    sap_hana_backup_size Inteiro Opcional. Especifique o tamanho do volume /hanabackup em GB. Se você não especificar ou definir esse argumento como 0, o script de instalação vai provisionar a instância do Compute Engine com um volume de backup do HANA duas vezes maior que a memória total.
    sap_hana_sidadm_uid Inteiro Opcional. Especifique um valor para substituir o valor padrão do ID do usuário SID_LCadm. O valor padrão é 900. É possível alterá-lo para um valor diferente para maior consistência no cenário da SAP.
    sap_hana_sapsys_gid Inteiro Opcional. Substitui o ID do grupo padrão para sapsys. O valor padrão é 79.
    sap_vip String Especifique 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 à sua sub-rede. O arquivo de configuração do Terraform reserva esse endereço IP para você.
    primary_instance_group_name String Opcional. Define o nome do grupo de instâncias não gerenciadas para o nó principal.a O nome padrão é ig-PRIMARY_INSTANCE_NAME.
    secondary_instance_group_name String Opcional. Define o nome do grupo de instâncias não gerenciadas para o nó secundário. O nome padrão é ig-SECONDARY_INSTANCE_NAME.
    loadbalancer_name String Opcional. Especifique o nome do balanceador de carga de rede de passagem interno. O nome padrão é lb-SAP_HANA_SID-ilb.
    network_tags String Opcional. Especifique uma ou mais tags de rede separadas por vírgula que você quer associar às suas instâncias de VM para fins de firewall ou roteamento.

    Uma tag de rede para os componentes do ILB é adicionada automaticamente às Tags de rede da VM.

    nic_type String Opcional. Especifique 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), você precisa especificar uma imagem do SO compatível com gVNIC como o valor do argumento linux_image. Para conferir a lista de imagens do SO, consulte Detalhes do sistema operacional.

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

    Este argumento está disponível na versão 202302060649 do módulo sap_hana ou posterior.
    disk_type String Opcional. Especifique o tipo padrão de disco permanente ou Hyperdisk que você quer implantar para todos os volumes SAP na implantação. O valor padrão é pd-ssd. Os seguintes valores são válidos para esse argumento: pd-ssd, pd-balanced, hyperdisk-extreme, hyperdisk-balanced e pd-extreme.

    Quando você especifica o valor hyperdisk-extreme ou hyperdisk-balanced, o diretório /usr/sap é montado em um disco permanente equilibrado separado (pd-balanced). Isso ocorre porque o diretório /usr/sap não requer um desempenho tão alto quanto o diretório /hana/data ou /hana/log. Nas implantações de escalonamento vertical do SAP HANA, um disco permanente equilibrado e separado também é implantado no diretório /hana/shared.

    É possível modificar esse tipo de disco padrão e o tamanho do disco padrão associado e as IOPS padrão usando alguns argumentos avançados. Para ver mais informações, navegue até seu diretório de trabalho, execute o comando terraform init e veja o arquivo /.terraform/modules/sap_hana_ha/variables.tf. Antes de usar esses argumentos na produção, é preciso testá-los em um ambiente de teste.

    use_single_shared_data_log_disk Booleano Opcional. O valor padrão é false, que direciona o Terraform para implantar um disco permanente ou hiperdisco separado para cada um dos seguintes volumes SAP: /hana/data ,/hana/log e/hana/shared e/usr/sap. Para montar esses volumes SAP no mesmo disco permanente ou Hyperdisk, especifique true.
    include_backup_disk Booleano Opcional. Esse argumento é aplicável a implantações de escalonamento vertical do SAP HANA. O valor padrão é true, que direciona o Terraform a implantar um disco permanente HDD padrão para hospedar o diretório /hanabackup. O tamanho desse disco é determinado pelo argumento sap_hana_backup_size.

    Se você definir o valor de include_backup_disk como false, nenhum disco será implantado no diretório /hanabackup.

    backup_disk_type String Opcional. Em implantações de escalonamento vertical, especifique o tipo de disco permanente ou hiperdisco que você quer implantar para o volume /hanabackup. Por padrão, é implantado um disco permanente equilibrado (pd-balanced). Os seguintes valores são válidos para esse argumento: pd-ssd, pd-balanced, pd-standard, hyperdisk-extreme, hyperdisk-balanced e pd-extreme.

    Este argumento está disponível na versão 202307061058 do módulo sap_hana_ha ou posterior.

    enable_fast_restart Booleano Opcional. Esse argumento determina se a opção de reinicialização rápida do SAP HANA está ativada para sua implantação. O valor padrão é true. O Google Cloud recomenda ativar a opção de reinicialização rápida do SAP HANA.

    Este argumento está disponível na versão 202309280828 do módulo sap_hana_ha ou posterior.

    public_ip Booleano Opcional. Determina se um endereço IP público é adicionado na sua instância de VM. O valor padrão é true.
    service_account String Opcional. Especifique o endereço de e-mail de uma conta de serviço gerenciada pelo usuário que será usada pelas VMs do host e pelos programas executados nas VMs do host. Por exemplo, svc-acct-name@project-id.iam.gserviceaccount.com.

    Se você especificar esse argumento sem um valor ou omiti-lo, o script de instalação usará a conta de serviço padrão do Compute Engine. Para mais informações, consulte Gerenciamento de identidade e acesso para programas SAP no Google Cloud.

    sap_deployment_debug Booleano Opcional. Somente quando o Cloud Customer Care solicitar que você ative a depuração da sua implantação, especifique true, o que faz com que a implantação gere registros de implantação detalhados. O valor padrão é false.
    primary_reservation_name String Opcional. Para usar uma reserva de VM do Compute Engine específica para provisionar a instância da VM que hospeda a instância principal do SAP HANA do cluster de alta disponibilidade, especifique o nome da reserva. Por padrão, o script de instalação seleciona qualquer reserva disponível do Compute Engine com base nas condições a seguir.

    Para que uma reserva seja utilizável, independentemente de você especificar um nome ou o script de instalação a selecionar automaticamente, a reserva precisa ser definida com o seguinte:

    • A opção specificReservationRequired está definida como true ou, no console do Google Cloud, a opção Selecionar uma reserva específica está selecionada.
    • Alguns tipos de máquina do Compute Engine são compatíveis com plataformas de CPU que não são cobertas pela certificação SAP do tipo de máquina. Se a reserva de destino for de qualquer um dos seguintes tipos de máquina, a reserva precisará especificar as plataformas mínimas de CPU, conforme indicado:
      • n1-highmem-32: Intel Broadwell
      • n1-highmem-64: Intel Broadwell
      • n1-highmem-96: Intel Skylake
      • m1-megamem-96: Intel Skylake
    • As plataformas de CPU mínimas para todos os outros tipos de máquina que são certificadas pela SAP para uso no Google Cloud estão em conformidade com o requisito de CPU mínimo da SAP.
    secondary_reservation_name String Opcional. Para usar uma reserva de VM específica do Compute Engine para provisionar a instância da VM que hospeda a instância secundária do SAP HANA do cluster de alta disponibilidade, especifique o nome da reserva. Por padrão, o script de instalação seleciona qualquer reserva disponível do Compute Engine com base nas condições a seguir.

    Para que uma reserva seja utilizável, independentemente de você especificar um nome ou o script de instalação a selecionar automaticamente, a reserva precisa ser definida com o seguinte:

    • A opção specificReservationRequired está definida como true ou, no console do Google Cloud, a opção Selecionar uma reserva específica está selecionada.
    • Alguns tipos de máquina do Compute Engine são compatíveis com plataformas de CPU que não são cobertas pela certificação SAP do tipo de máquina. Se a reserva de destino for de qualquer um dos seguintes tipos de máquina, a reserva precisará especificar as plataformas mínimas de CPU, conforme indicado:
      • n1-highmem-32: Intel Broadwell
      • n1-highmem-64: Intel Broadwell
      • n1-highmem-96: Intel Skylake
      • m1-megamem-96: Intel Skylake
    • As plataformas de CPU mínimas para todos os outros tipos de máquina que são certificadas pela SAP para uso no Google Cloud estão em conformidade com o requisito de CPU mínimo da SAP.
    primary_static_ip String Opcional. Especifique um endereço IP estático válido para a instância de VM primária no cluster de alta disponibilidade. Se não houver uma especificação, um endereço IP será gerado automaticamente para sua instância de VM. Por exemplo, 128.10.10.10.

    Este argumento está disponível na versão 202306120959 do módulo sap_hana_ha ou posterior.

    secondary_static_ip String Opcional. Especifique um endereço IP estático válido para a instância de VM secundária no cluster de alta disponibilidade. Se não houver uma especificação, um endereço IP será gerado automaticamente para sua instância de VM. Por exemplo, 128.11.11.11.

    Este argumento está disponível na versão 202306120959 do módulo sap_hana_ha ou posterior.

    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. Para esclarecer, os comentários no arquivo de configuração são omitidos nos exemplos.

    RHEL

        # ...
        module "sap_hana_ha" {
        source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_ha/sap_hana_ha_module.zip"
        #
        # By default, this source file uses the latest release of the terraform module
        # for SAP on Google Cloud.  To fix your deployments to a specific release
        # of the module, comment out the source argument above and uncomment the source argument below.
        #
        # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana_ha/sap_hana_ha_module.zip"
        #
        # ...
        #
        project_id = "example-project-123456"
        machine_type = "n2-highmem-32"
        network = "example-network"
        subnetwork = "example-subnet-us-central1"
        linux_image = "rhel-8-4-sap-ha"
        linux_image_project = "rhel-sap-cloud"
    
        primary_instance_name = "example-ha-vm1"
        primary_zone = "us-central1-a"
    
        secondary_instance_name = "example-ha-vm2"
        secondary_zone = "us-central1-c"
        # ...
        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"
        # ...
        sap_vip = 10.0.0.100
        primary_instance_group_name = ig-example-ha-vm1
        secondary_instance_group_name = ig-example-ha-vm2
        loadbalancer_name = lb-ha1
        # ...
        network_tags = hana-ha-ntwk-tag
        service_account = "sap-deploy-example@example-project-123456.iam.gserviceaccount.com"
        primary_static_ip = "10.0.0.1"
        secondary_static_ip = "10.0.0.2"
        enable_fast_restart = true
        # ...
        }

    SLES

        # ...
        module "sap_hana_ha" {
        source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_ha/sap_hana_ha_module.zip"
        #
        # By default, this source file uses the latest release of the terraform module
        # for SAP on Google Cloud.  To fix your deployments to a specific release
        # of the module, comment out the source argument above and uncomment the source argument below.
        #
        # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana_ha/sap_hana_ha_module.zip"
        #
        # ...
        #
        project_id = "example-project-123456"
        machine_type = "n2-highmem-32"
        network = "example-network"
        subnetwork = "example-subnet-us-central1"
        linux_image = "sles-15-sp3-sap"
        linux_image_project = "suse-sap-cloud"
    
        primary_instance_name = "example-ha-vm1"
        primary_zone = "us-central1-a"
    
        secondary_instance_name = "example-ha-vm2"
        secondary_zone = "us-central1-c"
        # ...
        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"
        # ...
        sap_vip = 10.0.0.100
        primary_instance_group_name = ig-example-ha-vm1
        secondary_instance_group_name = ig-example-ha-vm2
        loadbalancer_name = lb-ha1
        # ...
        network_tags = hana-ha-ntwk-tag
        service_account = "sap-deploy-example@example-project-123456.iam.gserviceaccount.com"
        primary_static_ip = "10.0.0.1"
        secondary_static_ip = "10.0.0.2"
        enable_fast_restart = true
        # ...
        }
  6. Inicialize seu diretório de trabalho atual e faça o download do plug-in do provedor do Terraform e dos arquivos do módulo para o Google Cloud:

    terraform init

    O comando terraform init prepara seu diretório de trabalho para outros comandos do Terraform.

    Para forçar uma atualização do plug-in do provedor e dos arquivos de configuração no diretório de trabalho, especifique a sinalização --upgrade. Se a --upgrade sinalização é omitida e você não faz alterações no seu diretório de trabalho, o Terraform usa as cópias em cache local, mesmo selatest é especificado nasource URL

    terraform init --upgrade 
  7. Como opção, crie o plano de execução do Terraform:

    terraform plan

    O comando terraform plan mostra as alterações exigidas pela configuração atual. Se você pular essa etapa, o comando terraform apply criará automaticamente um novo plano e solicitará que você o aprove.

  8. Aplique o plano de execução:

    terraform apply

    Quando for solicitada a aprovação das ações, digite yes.

    O comando terraform apply configura a infraestrutura do Google Cloud e, em seguida, controla manualmente um script que configura o cluster de alta disponibilidade e instala o SAP HANA de acordo com os argumentos definidos no arquivo de configuração do Terraform.

    Embora o Terraform tenha 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.

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. Abra o Cloud Shell.

        Acessar o Cloud Shell

      3. Acesse seu diretório de trabalho e exclua a implantação para limpar as VMs e os discos permanentes da instalação com falha:

        terraform destroy

        Quando for solicitada a aprovação da ação, digite yes.

      4. 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. Altere para o usuário administrador do SAP substituindo SID_LC no seguinte comando pelo valor de sap_hana_sid que você especificou no arquivo sap_hana_ha.tf. O valor SID_LC precisa estar em letras 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 "Especificar o sistema", especifique o endereço IP flutuante como o nome do host.
    • No painel "Propriedades de conexão", para autenticação do usuário do banco de dados, especifique o nome do superusuário do banco de dados e a senha que você especificou para o argumento sap_hana_system_password no arquivo sap_hana_ha.tf.

    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.

  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

Limpar e tentar implantar novamente

Se alguma das etapas de verificação de implantação nas seções anteriores mostrar que a instalação não foi concluída, desfaça a implantação e tente novamente seguindo as etapas a seguir:

  1. Resolva os erros para garantir que a implantação não falhe novamente pelo mesmo motivo. Para mais informações sobre como verificar os registros ou resolver erros relacionados a cotas, consulte Verificar os registros.

  2. Abra o Cloud Shell ou, se você instalou a CLI do Google Cloud na sua estação de trabalho local, abra um terminal.

    Abrir o Cloud Shell

  3. Acesse o diretório que contém o arquivo de configuração do Terraform que você usou nesta implantação.

  4. Exclua todos os recursos que fazem parte da implantação executando o seguinte comando:

    terraform destroy

    Quando for solicitada a aprovação da ação, digite yes.

  5. Tente fazer a implantação novamente, conforme indicado anteriormente neste guia.

Executar um teste de failover

Para executar um teste de failover, siga estas etapas:

  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 da VM do host.

  2. Execute este comando:

    systemctl status google-cloud-sap-agent

    Se o agente estiver funcionando corretamente, a saída conterá active (running). 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.

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. Se o sistema SAP HANA for implantado em uma interface de rede VirtIO, recomendamos que você garanta que o valor do parâmetro TCP /proc/sys/net/ipv4/tcp_limit_output_bytes esteja definido como 1048576. Essa modificação ajuda a melhorar a capacidade geral da rede na interface de rede VirtIO sem afetar a latência da rede.

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

  5. 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.

Avaliar sua carga de trabalho do SAP HANA

Para automatizar verificações de validação contínua para suas cargas de trabalho de alta disponibilidade do SAP HANA em execução no Google Cloud, use o Gerenciador de carga de trabalho.

O Gerenciador de carga de trabalho permite verificar e avaliar automaticamente suas cargas de trabalho de alta disponibilidade do SAP HANA em relação às práticas recomendadas de fornecedores da SAP, do Google Cloud e do SO. Isso ajuda a melhorar a qualidade, o desempenho e a confiabilidade das cargas de trabalho.

Para informações sobre as práticas recomendadas compatíveis com o Gerenciador de cargas de trabalho para avaliar cargas de trabalho de alta disponibilidade do SAP HANA em execução no Google Cloud, consulte Práticas recomendadas do Gerenciador de cargas de trabalho para SAP. Para informações sobre como criar e executar uma avaliação usando o Gerenciador de cargas de trabalho, consulte Criar e executar uma avaliação.

A seguir