Alta disponibilidade de vários SIDs da instância do SAP ASCS/SCS com clustering de failover do Windows Server e disco compartilhado no Azure

Windows OS Windows

Se tiver uma implantação do SAP, você deverá usar um balanceador de carga interno para criar uma configuração de cluster do Windows para instâncias do SAP Central Services (ASCS/SCS).

Este artigo aborda como passar de uma instalação ASCS/SCS única para uma configuração de vários SIDs do SAP com a instalação de instâncias em cluster do SAP ASCS/SCS adicionais em um cluster WSFC (Clustering de Failover do Windows Server) existente com disco compartilhado, usando SIOS para simular disco compartilhado. Quando esse processo for concluído, você terá configurado um cluster multi-SID SAP.

Observação

Esse recurso está disponível apenas no modelo de implantação do Azure Resource Manager.

Há um limite para o número de IPs de front-end privado para cada balanceador de carga interno do Azure.

O número máximo de instâncias do SAP ASCS/SCS em um cluster WSFC é igual ao número máximo de IPs de front-end privado para cada balanceador de carga interno do Azure.

Para saber mais sobre limites do balanceador de carga, confira a seção "IP de front-end privado por balanceador de carga" em Limites de rede: Azure Resource Manager.

Importante

Não há suporte para IP flutuante em uma configuração de IP de adaptador de rede secundário em cenários de balanceamento de carga. Confira Limitações do Azure Load Balancer para mais detalhes. Se você precisar de um endereço IP adicional para a VM, implante um segundo adaptador de rede.

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

Você já configurou um cluster WSFC utilizado para uma instância SAP ASCS/SCS usando o compartilhamento de arquivos, conforme mostrado neste diagrama.

High-availability SAP ASCS/SCS instance

Importante

A instalação deve atender às seguintes condições:

  • As instâncias do SAP ASCS/SCS deverão compartilhar o mesmo cluster WSFC.
  • Cada SID do DBMS (sistema de gerenciamento de banco de dados) deve ter seu próprio cluster WSFC dedicado.
  • Os servidores de aplicativos SAP que pertencem a um SID do sistema SAP deverão ter suas próprias VMs dedicadas.
  • Não há suporte para uma combinação do Servidor de Replicação de Enfileiramento 1 e do Servidor de Replicação de Enfileiramento 2 no mesmo cluster.

Arquitetura de vários SIDs do SAP ASCS/SCS com disco compartilhado

A meta é instalar várias instâncias clusterizadas do SAP ABAP ASCS ou do SAP Java SCS no mesmo cluster WSFC, conforme ilustrado aqui:

Multiple SAP ASCS/SCS clustered instances in Azure

Para saber mais sobre limites do balanceador de carga, confira a seção "IP de front-end privado por balanceador de carga" em Limites de rede: Azure Resource Manager.

O cenário completo com dois sistemas SAP de alta disponibilidade seria assim:

SAP high-availability multi-SID setup with two SAP system SIDs

Prepare a infraestrutura para um cenário de vários SIDs do SAP

Para preparar sua infra-estrutura, é possível instalar uma instância do SAP ASCS/SCS adicional com os seguintes parâmetros:

Nome do parâmetro Valor
SID do SAP ASCS/SCS pr1-lb-ascs
Balanceador de carga interno de DBMS SAP PR5
Nome do host virtual do SAP pr5-sap-cl
Endereço IP do host virtual do SAP ASCS/SCS (endereço IP adicional do Azure Load Balancer) 10.0.0.50
Número da instância do SAP ASCS/SCS 50
Porta de investigação ILB para uma instância do SAP ASCS/SCS adicional 62350

Observação

Para instâncias de cluster SAP ASCS/SCS, cada endereço IP exige uma porta de investigação única. Por exemplo, se um endereço IP em um balanceador de carga interno do Azure usar a porta de investigação 62300, nenhum outro endereço IP nesse balanceador de carga poderá usar a porta de investigação 62300.

Para nosso fim, como a porta de investigação 62300 já está reservada, estamos usando a porta de investigação 62350.

É possível instalar instâncias do SAP ASCS/SCS adicionais no cluster WSFC existente com dois nós:

Função da máquina virtual Nome do host de máquina virtual Endereço IP estático
Primeiro nó de cluster para a instância do ASCS/SCS pr1-ascs-0 10.0.0.10
Segundo nó de cluster para a instância do ASCS/SCS pr1-ascs-1 10.0.0.9

Criar um nome de host virtual para a instância do SAP ASCS/SCS clusterizada no servidor DNS

É possível criar uma entrada DNS para o nome de host virtual da instância do ASCS/SCS usando os seguintes parâmetros:

Novo nome de host virtual do SAP ASCS/SCS Endereço IP associado
pr5-sap-cl 10.0.0.50

O novo nome de host e endereço IP são exibidos no Gerenciador DNS, conforme mostrado na seguinte captura de tela:

DNS Manager list highlighting the defined DNS entry for the new SAP ASCS/SCS cluster virtual name and TCP/IP address

Observação

O novo endereço IP atribuído ao nome de host virtual da instância do ASCS/SCS adicional deve ser igual ao novo endereço IP atribuído ao Azure Load Balancer do SAP.

Em nosso cenário, o endereço IP é 10.0.0.50.

Adicionar um endereço IP a um balanceador de carga interno do Azure existente usando o PowerShell

Para criar mais de uma instância do SAP ASCS/SCS no mesmo cluster WSFC, use o PowerShell para adicionar um endereço IP a um balanceador de carga interno do Azure existente. Cada endereço IP requer suas próprias regras de balanceamento de carga, porta de investigação, pool IP de front-end e pool de back-end.

O script a seguir adiciona um novo endereço IP a um balanceador de carga existente. Atualize as variáveis do PowerShell para seu ambiente. O script cria todas as regras de balanceamento de carga necessárias para todas as portas do SAP ASCS/SCS.


# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>
Clear-Host
$ResourceGroupName = "SAP-MULTI-SID-Landscape"      # Existing resource group name
$VNetName = "pr2-vnet"                        # Existing virtual network name
$SubnetName = "Subnet"                        # Existing subnet name
$ILBName = "pr2-lb-ascs"                      # Existing ILB name                      
$ILBIP = "10.0.0.50"                          # New IP address
$VMNames = "pr2-ascs-0","pr2-ascs-1"          # Existing cluster virtual machine names
$SAPInstanceNumber = 50                       # SAP ASCS/SCS instance number: must be a unique value for each cluster
[int]$ProbePort = "623$SAPInstanceNumber"     # Probe port: must be a unique value for each IP and load balancer

$ILB = Get-AzLoadBalancer -Name $ILBName -ResourceGroupName $ResourceGroupName

$count = $ILB.FrontendIpConfigurations.Count + 1
$FrontEndConfigurationName ="lbFrontendASCS$count"
$LBProbeName = "lbProbeASCS$count"

# Get the Azure virtual network and subnet
$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName

# Add a second front-end and probe configuration
Write-Host "Adding new front end IP Pool '$FrontEndConfigurationName' ..." -ForegroundColor Green
$ILB | Add-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.Id
$ILB | Add-AzLoadBalancerProbeConfig -Name $LBProbeName  -Protocol Tcp -Port $Probeport -ProbeCount 2 -IntervalInSeconds 10  | Set-AzLoadBalancer

# Get a new updated configuration
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Get an updated LP FrontendIpConfig
$FEConfig = Get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

# Add a back-end configuration into an existing ILB
$BackEndConfigurationName  = "backendPoolASCS$count"
Write-Host "Adding new backend Pool '$BackEndConfigurationName' ..." -ForegroundColor Green
$BEConfig = Add-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB | Set-AzLoadBalancer

# Get an updated config
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Assign VM NICs to the back-end pool
$BEPool = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
foreach($VMName in $VMNames){
        $VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName
        $NICName = ($VM.NetworkInterfaceIDs[0].Split('/') | select -last 1)        
        $NIC = Get-AzNetworkInterface -name $NICName -ResourceGroupName $ResourceGroupName                
        $NIC.IpConfigurations[0].LoadBalancerBackendAddressPools += $BEPool
        Write-Host "Assigning network card '$NICName' of the '$VMName' VM to the backend pool '$BackEndConfigurationName' ..." -ForegroundColor Green
        Set-AzNetworkInterface -NetworkInterface $NIC
        #start-AzVM -ResourceGroupName $ResourceGroupName -Name $VM.Name
}


# Create load-balancing rules
$Ports = "445","32$SAPInstanceNumber","33$SAPInstanceNumber","36$SAPInstanceNumber","39$SAPInstanceNumber","5985","81$SAPInstanceNumber","5$SAPInstanceNumber`13","5$SAPInstanceNumber`14","5$SAPInstanceNumber`16"
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName
$FEConfig = get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$BEConfig = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

Write-Host "Creating load balancing rules for the ports: '$Ports' ... " -ForegroundColor Green

foreach ($Port in $Ports) {

        $LBConfigrulename = "lbrule$Port" + "_$count"
        Write-Host "Creating load balancing rule '$LBConfigrulename' for the port '$Port' ..." -ForegroundColor Green

        $ILB | Add-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig  -BackendAddressPool $BEConfig -Probe $HealthProbe -Protocol tcp -FrontendPort  $Port -BackendPort $Port -IdleTimeoutInMinutes 30 -LoadDistribution Default -EnableFloatingIP   
}

$ILB | Set-AzLoadBalancer

Write-Host "Successfully added new IP '$ILBIP' to the internal load balancer '$ILBName'!" -ForegroundColor Green

Depois que o script tiver sido executado, os resultados serão exibidos no portal do Azure, conforme mostrado na seguinte captura de tela:

New front-end IP pool in the Azure portal

Adicionar discos a computadores de cluster e configurar o disco de compartilhamento do cluster SIOS

É necessário adicionar um novo disco de compartilhamento de cluster para cada nova instância do SAP ASCS/SCS adicional. Para o Windows Server 2012 R2, o disco de compartilhamento do cluster WSFC atualmente em uso é a solução de software SIOS DataKeeper.

Faça o seguinte:

  1. Inclua discos adicionais com o mesmo tamanho (que você precisa distribuir) para cada um dos nós de cluster e formate-os.
  2. Configure a replicação de armazenamento com SIOS DataKeeper.

Este procedimento pressupõe que você já tenha instalado o SIOS DataKeeper em computadores do cluster WSFC. Se você o tiver instalado, agora será necessário configurar a replicação entre os computadores. O processo é descrito em detalhes em Instalar SIOS DataKeeper Cluster Edition para o disco compartilhado do cluster do SAP ASCS/SCS.

DataKeeper synchronous mirroring for the new SAP ASCS/SCS share disk

Implantar VMs em servidores de aplicativos SAP e cluster DBMS

Para concluir a preparação da infraestrutura para o segundo sistema SAP, faça o seguinte:

  1. Implante VMs dedicadas para os servidores de aplicativos SAP e coloque cada uma em seu próprio grupo de disponibilidade dedicado.
  2. Implante VMs dedicadas para o cluster DBMS e coloque cada uma em seu próprio grupo de disponibilidade dedicado.

Instalar um sistema de vários SIDs do SAP NetWeaver

Para obter uma descrição do processo de instalação de um sistema SAP SID2 segundo completa, confira Instalação de alta disponibilidade do SAP NetWeaver no Cluster de Failover do Windows e disco compartilhado para uma instância do SAP ASCS/SCS.

O procedimento de alto nível é o seguinte:

  1. Instalar o SAP com uma instância ASCS/SCS de alta disponibilidade.
    Nesta etapa, instale o SAP com uma instância do ASCS/SCS de alta disponibilidade no nó de cluster WSFC existente 1.

  2. Modificar o perfil SAP da instância do ASCS/SCS.

  3. Configurar uma porta de investigação.
    Nesta etapa, você configurará uma porta de investigação SAP-SID2-IP do recurso do cluster SAP usando o PowerShell. Execute essa configuração em um dos nós do cluster SAP ASCS/SCS.

  4. Instalar a instância de banco de dados.
    Para instalar o segundo cluster, siga as etapas no guia de instalação do SAP.

  5. Instalar o segundo nó de cluster.
    Nesta etapa, instale o SAP com uma instância do ASCS/SCS de alta disponibilidade no nó de cluster WSFC existente 2. Para instalar o segundo cluster, siga as etapas no guia de instalação do SAP.

  6. Abra portas do Firewall do Windows para a Instância do SAP ASCS/SCS e a ProbePort.
    Em ambos os nós de cluster usados para as instâncias do SAP ASCS/SCS, abra todas as portas do Firewall do Windows usadas pelo SAP ASCS/SCS. Essas portas da instância SAP ASCS/SCS são listadas no capítulo Portas do SAP ASCS/SCS.

    Para obter uma lista de todas as outras portas do SAP, confira Portas TCP/IP de todos os produtos SAP.

    Além disso, abra a porta de investigação do balanceador de carga interno do Azure, que, neste cenário, é 62350. Ela é descrita neste artigo.

  7. Instale o servidor de aplicativos primário SAP na nova VM dedicada, conforme descrito no guia de instalação do SAP.

  8. Instale o servidor de aplicativos adicional SAP na nova VM dedicada, conforme descrito no guia de instalação do SAP.

  9. Teste o failover da instância do SAP ASCS/SCS e a replicação do SIOS.

Próximas etapas