Alta disponibilidade de instância SAP ASCS/SCS multi-SID com Clustering de Failover do Windows Server e disco compartilhado no Azure

Windows OS Mac OS

Se você tiver uma implantação SAP, 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 se concentra em como passar de uma única instalação ASCS/SCS para uma configuração SAP multi-SID instalando instâncias clusterizadas SAP ASCS/SCS adicionais em um cluster WSFC (Windows Server Failover Clustering) existente com disco compartilhado, usando SIOS para simular disco compartilhado. Quando esse processo estiver concluído, você terá configurado um cluster SAP multi-SID.

Nota

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

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

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

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

Importante

O IP flutuante não é suportado em uma configuração de IP secundário da NIC em cenários de balanceamento de carga. Para obter detalhes, consulte Limitações do balanceador de carga do Azure. Se você precisar de um endereço IP adicional para a VM, implante uma segunda NIC.

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

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

High-availability SAP ASCS/SCS instance

Importante

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

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

Arquitetura multi-SID SAP ASCS/SCS com disco compartilhado

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

Multiple SAP ASCS/SCS clustered instances in Azure

Para obter mais informações sobre limites do balanceador de carga, consulte a seção "IP 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 ficaria assim:

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

Preparar a infraestrutura para um cenário SAP multi-SID

Para preparar sua infraestrutura, você pode instalar uma instância adicional do SAP ASCS/SCS com os seguintes parâmetros:

Nome do parâmetro valor
SAP ASCS/SCS SID PR1-LB-ASCs
Balanceador de carga interno SAP DBMS PR5
Nome do host virtual SAP PR5-SAP-CL
Endereço IP do host virtual SAP ASCS/SCS (endereço IP adicional do balanceador de carga do Azure) 10.0.0.50
Número da instância SAP ASCS/SCS 50
Porta de sonda ILB para instância adicional SAP ASCS/SCS 62350

Nota

Para instâncias de cluster SAP ASCS/SCS, cada endereço IP requer uma porta de teste exclusiva. Por exemplo, se um endereço IP em um balanceador de carga interno do Azure usa a porta de teste 62300, nenhum outro endereço IP nesse balanceador de carga pode usar a porta de teste 62300.

Para nossos propósitos, como a porta de sonda 62300 já está reservada, estamos usando a porta de sonda 62350.

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

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

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

Você pode criar uma entrada DNS para o nome do host virtual da instância ASCS/SCS usando os seguintes parâmetros:

Novo nome de host virtual 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 captura de tela a seguir:

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

Nota

O novo endereço IP atribuído ao nome do host virtual da instância ASCS/SCS adicional deve ser o mesmo que o novo endereço IP atribuído ao balanceador de carga do SAP Azure.

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 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 teste, pool de IP front-end e pool 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 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 for executado, os resultados serão exibidos no portal do Azure, conforme mostrado na captura de tela a seguir:

New front-end IP pool in the Azure portal

Adicionar discos a máquinas de cluster e configurar o disco de compartilhamento de cluster SIOS

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

Efetue o seguinte procedimento:

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

Este procedimento pressupõe que você já tenha instalado o SIOS DataKeeper nas máquinas de cluster WSFC. Se você o tiver instalado, deverá configurar a replicação entre as máquinas. O processo é descrito em detalhes em Instalar o SIOS DataKeeper Cluster Edition para o disco de compartilhamento de cluster SAP ASCS/SCS.

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

Implantar VMs para servidores de aplicativos SAP e o 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 multi-SID SAP NetWeaver

Para obter uma descrição do processo completo de instalação de um segundo sistema SAP SID2, consulte Instalação do SAP NetWeaver HA no cluster de failover do Windows e disco compartilhado para uma instância SAP ASCS/SCS.

O procedimento de alto nível é o seguinte:

  1. Instale o SAP com uma instância ASCS/SCS de alta disponibilidade.
    Nesta etapa, você está instalando o SAP com uma instância ASCS/SCS de alta disponibilidade no nó de cluster WSFC 1 existente.

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

  3. Configure uma porta de sonda.
    Nesta etapa, você está configurando uma porta de teste SAP-SID2-IP de recurso de cluster SAP usando o PowerShell. Execute essa configuração em um dos nós de cluster SAP ASCS/SCS.

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

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

  6. Abra as portas do Firewall do Windows para a instância SAP ASCS/SCS e a porta de teste.
    Em ambos os nós de cluster usados para instâncias SAP ASCS/SCS, você está abrindo todas as portas do Firewall do Windows usadas pelo SAP ASCS/SCS. Essas portas de instância SAP ASCS/SCS estão listadas no capítulo Portas SAP ASCS / SCS.

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

    Abra também a porta de teste do balanceador de carga interno do Azure, que é 62350 em nosso cenário. É descrito 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 de instância SAP ASCS/SCS e a replicação SIOS.

Próximos passos