Preparar a infraestrutura do Azure para SAP HA usando um cluster de failover do Windows e um disco compartilhado para SAP ASCS/SCS

Windows OS Mac OS

Este artigo descreve as etapas que você executa para preparar a infraestrutura do Azure para instalar e configurar uma instância SAP ASCS/SCS de alta disponibilidade em um cluster de failover do Windows usando um disco compartilhado de cluster como uma opção para clusterizar uma instância do SAP ASCS. Duas alternativas para disco compartilhado de cluster são apresentadas na documentação:

A documentação não cobre a camada de banco de dados.

Pré-requisitos

Antes de começar a instalação, revise este artigo:

Criar as VMs ASCS

Para o cluster SAP ASCS / SCS, implante duas VMs no conjunto de disponibilidade do Azure ou nas zonas de disponibilidade do Azure com base no tipo de sua implantação. Depois que as VMs forem implantadas:

  • Crie o Azure Internal Load Balancer para instância SAP ASCS /SCS.
  • Adicione VMs do Windows ao domínio do AD.

Com base no seu tipo de implantação, os nomes de host e os endereços IP do cenário seriam como:

Implantação do SAP no conjunto de disponibilidade do Azure

Função de nome do host Nome do anfitrião Endereço IP estático Conjunto de disponibilidade SkuName do disco
Primeiro cluster ASCS/SCS do nó do cluster PR1-ASCS-10 10.0.0.4 PR1-ASCS-Avset Premium_LRS
Segundo cluster ASCS/SCS do nó do cluster PR1-ASCS-11 10.0.0.5 PR1-ASCS-Avset
Nome da rede de cluster PR1CLUSt 10.0.0.42(apenas para cluster do Win 2016) n/d
Nome da rede do cluster ASCS PR1-ASCSCL 10.0.0.43 n/d
Nome da rede do cluster ERS (apenas para ERS2) PR1-ERSCL 10.0.0.44 n/d

Implantação do SAP em zonas de disponibilidade do Azure

Função de nome do host Nome do anfitrião Endereço IP estático Availability zone SkuName do disco
Primeiro cluster ASCS/SCS do nó do cluster PR1-ASCS-10 10.0.0.4 AZ01 Premium_ZRS
Segundo cluster ASCS/SCS do nó do cluster PR1-ASCS-11 10.0.0.5 AZ02
Nome da rede de cluster PR1CLUSt 10.0.0.42(apenas para cluster do Win 2016) n/d
Nome da rede do cluster ASCS PR1-ASCSCL 10.0.0.43 n/d
Nome da rede do cluster ERS (apenas para ERS2) PR1-ERSCL 10.0.0.44 n/d

As etapas mencionadas no documento permanecem as mesmas para ambos os tipos de implantação. Mas se o cluster estiver sendo executado no conjunto de disponibilidade, você precisará implantar o LRS para o disco compartilhado premium (Premium_LRS) do Azure e, se o cluster estiver sendo executado na zona de disponibilidade, implantar o ZRS para o disco compartilhado premium (Premium_ZRS) do Azure.

Nota

O grupo de posicionamento de proximidade do Azure não é necessário para o disco compartilhado do Azure. Mas para a implantação do SAP com PPG, siga as diretrizes abaixo:

  • Se você estiver usando o PPG para o sistema SAP implantado em uma região, todas as máquinas virtuais que compartilham um disco devem fazer parte do mesmo PPG.
  • Se você estiver usando o sistema PPG for SAP implantado em zonas, como descrito no documento Grupos de posicionamento de proximidade com implantações zonais, poderá anexar Premium_ZRS armazenamento a máquinas virtuais que compartilham um disco.

Criar balanceador de carga interno do Azure

Durante a configuração da VM, você pode criar ou selecionar o balanceador de carga de saída na seção de rede. Para a arquitetura ENSA1 no Windows, você precisaria de apenas um endereço IP virtual para SAP ASCS/SCS. Por outro lado, a arquitetura ENSA2 requer dois endereços IP virtuais - um para SAP ASCS/SCS e outro para ERS2. Ao configurar um balanceador de carga interno padrão para a configuração HA do SAP ASCS/SCS no Windows, siga as diretrizes abaixo.

  1. Configuração de IP Frontend: Crie IP frontend (exemplo: 10.0.0.43). Selecione a mesma rede virtual e sub-rede que suas máquinas virtuais ASCS/ERS.
  2. Pool de back-end: crie pool de back-end e adicione VMs ASCS e ERS. Neste exemplo, as VMs são pr1-ascs-10 e pr1-ascs-11.
  3. Regras de entrada: crie uma regra de balanceamento de carga.
    • Endereço IP frontend: Selecione frontend IP
    • Pool de back-end: selecione pool de back-end
    • Marque "Portas de alta disponibilidade"
    • Protocolo: TCP
    • Sonda de saúde: crie uma sonda de saúde com os detalhes abaixo
      • Protocolo: TCP
      • Porta: [por exemplo: 620<Instance-no.> for ASCS]
      • Intervalo: 5
      • Limiar da sonda: 2
    • Tempo limite de inatividade (minutos): 30
    • Marque "Ativar IP flutuante"
  4. Aplicável apenas à arquitetura ENSA2: Crie IP de frontend adicional (10.0.0.44), regra de balanceamento de carga (use 621<Instance-no. para a porta de sonda de integridade ERS2), conforme descrito nos pontos 1 e 3.>

Nota

O número da propriedade de configuração da sonda de integridadeOfProbes, também conhecido como "Limite não íntegro" no Portal, não é respeitado. Portanto, para controlar o número de testes consecutivos bem-sucedidos ou com falha, defina a propriedade "probeThreshold" como 2. Atualmente, não é possível definir essa propriedade usando o portal do Azure, portanto, use o comando CLI do Azure ou PowerShell .

Importante

Um endereço IP flutuante não é suportado em uma configuração de IP secundário de placa de interface de rede (NIC) em cenários de balanceamento de carga. Para obter detalhes, consulte Limitações do Azure Load Balancer. Se você precisar de outro endereço IP para a VM, implante uma segunda NIC.

Nota

Quando VMs sem endereços IP públicos são colocadas no pool de back-end de um balanceador de carga Standard do Azure interno (sem endereço IP público), não haverá conectividade de saída com a Internet, a menos que você execute uma configuração adicional para permitir o roteamento para pontos de extremidade públicos. Para obter detalhes sobre como obter conectividade de saída, consulte Conectividade de ponto de extremidade pública para máquinas virtuais usando o Azure Standard Load Balancer em cenários de alta disponibilidade SAP.

Gorjeta

Com o Modelo do Azure Resource Manager para WSFC para instância SAP ASCS/SCS com Disco Compartilhado do Azure, você pode automatizar a preparação da infraestrutura, usando o Disco Compartilhado do Azure para um SID SAP com ERS1.
O modelo ARM do Azure criará duas VMs do Windows 2019 ou 2016, criará o disco compartilhado do Azure e anexará às VMs. O Balanceador de Carga Interno do Azure também será criado e configurado. Para obter detalhes - consulte o modelo ARM.

Adicionar entradas do Registro em ambos os nós de cluster da instância ASCS/SCS

O Azure Load Balancer pode fechar conexões, se as conexões estiverem ociosas por um período e excederem o tempo limite ocioso. Os processos de trabalho SAP abrem conexões com o processo de enqueue SAP assim que a primeira solicitação de enqueue/dequeue precisa ser enviada. Para evitar interromper essas conexões, altere os valores TCP/IP KeepAliveTime e KeepAliveInterval em ambos os nós do cluster. Se estiver usando ERS1, também é necessário adicionar parâmetros de perfil SAP, conforme descrito mais adiante neste artigo. As seguintes entradas do Registro devem ser alteradas em ambos os nós do cluster:

  • KeepAliveTime
  • KeepAliveInterval
Caminho Nome da variável Tipo de variável valor Documentação
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveTime REG_DWORD (decimal) 120000 KeepAliveTime
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveInterval REG_DWORD (decimal) 120000 KeepAliveInterval

Para aplicar as alterações, reinicie ambos os nós do cluster.

Adicionar as VMs do Windows ao domínio

Depois de atribuir endereços IP estáticos às máquinas virtuais, adicione as máquinas virtuais ao domínio.

Instalar e configurar o cluster de failover do Windows

Instalar o recurso de cluster de failover do Windows

Execute este comando em um dos nós do cluster:

# Hostnames of the Win cluster for SAP ASCS/SCS
$SAPSID = "PR1"
$ClusterNodes = ("pr1-ascs-10","pr1-ascs-11")
$ClusterName = $SAPSID.ToLower() + "clust"

# Install Windows features.
# After the feature installs, manually reboot both nodes
Invoke-Command $ClusterNodes {Install-WindowsFeature Failover-Clustering, FS-FileServer -IncludeAllSubFeature -IncludeManagementTools }

Quando a instalação do recurso for concluída, reinicialize ambos os nós do cluster.

Testar e configurar o cluster de failover do Windows

No Windows 2019, o cluster reconhecerá automaticamente que está sendo executado no Azure e, como opção padrão para IP de gerenciamento de cluster, usa o nome da Rede Distribuída. Portanto, ele usa qualquer um dos nós de cluster endereços IP locais. Como resultado, não há necessidade de um nome de rede dedicado (virtual) para o cluster e não há necessidade de configurar esse endereço IP no Balanceador de Carga Interno do Azure.

Para obter mais informações, consulte Clustering de failover do Windows Server 2019 Novos recursos Execute este comando em um dos nós do cluster:

# Hostnames of the Win cluster for SAP ASCS/SCS
$SAPSID = "PR1"
$ClusterNodes = ("pr1-ascs-10","pr1-ascs-11")
$ClusterName = $SAPSID.ToLower() + "clust"

# IP adress for cluster network name is needed ONLY on Windows Server 2016 cluster
$ClusterStaticIPAddress = "10.0.0.42"

# Test cluster
Test-Cluster –Node $ClusterNodes -Verbose

$ComputerInfo = Get-ComputerInfo

$WindowsVersion = $ComputerInfo.WindowsProductName

if($WindowsVersion -eq "Windows Server 2019 Datacenter"){
    write-host "Configuring Windows Failover Cluster on Windows Server 2019 Datacenter..."
    New-Cluster –Name $ClusterName –Node  $ClusterNodes -Verbose
}elseif($WindowsVersion -eq "Windows Server 2016 Datacenter"){
    write-host "Configuring Windows Failover Cluster on Windows Server 2016 Datacenter..."
    New-Cluster –Name $ClusterName –Node  $ClusterNodes –StaticAddress $ClusterStaticIPAddress -Verbose 
}else{
    Write-Error "Not supported Windows version!"
}

Configurar o quorum da nuvem de cluster

Como você usa o Windows Server 2016 ou 2019, recomendamos configurar o Azure Cloud Witness como quórum de cluster.

Execute este comando em um dos nós do cluster:

$AzureStorageAccountName = "cloudquorumwitness"
Set-ClusterQuorum –CloudWitness –AccountName $AzureStorageAccountName -AccessKey <YourAzureStorageAccessKey> -Verbose

Ajustando os limites do cluster de failover do Windows

Depois de instalar com êxito o cluster de failover do Windows, você precisa ajustar alguns limites para ser adequado para clusters implantados no Azure. Os parâmetros a serem alterados estão documentados em Ajustando limites de rede de cluster de failover. Supondo que suas duas VMs que compõem a configuração de cluster do Windows para ASCS/SCS estejam na mesma sub-rede, altere os seguintes parâmetros para esses valores:

  • SameSubNetDelay = 2000
  • SameSubNetThreshold = 15
  • RouteHistoryLength = 30

Essas configurações foram testadas com os clientes e oferecem um bom compromisso. Eles são resilientes o suficiente, mas também fornecem failover rápido o suficiente para condições reais de erro em cargas de trabalho SAP ou falha de VM.

Configurar o disco compartilhado do Azure

Esta seção só é aplicável se você estiver usando o disco compartilhado do Azure.

Criar e anexar o disco compartilhado do Azure com o PowerShell

Execute este comando em um dos nós do cluster. Você precisará ajustar os valores para seu grupo de recursos, região do Azure, SAPSID e assim por diante.

#############################
# Create Azure Shared Disk
#############################

$ResourceGroupName = "MyResourceGroup"
$location = "MyAzureRegion"
$SAPSID = "PR1"

$DiskSizeInGB = 512
$DiskName = "$($SAPSID)ASCSSharedDisk"

# With parameter '-MaxSharesCount', we define the maximum number of cluster nodes to attach the shared disk
$NumberOfWindowsClusterNodes = 2

# For SAP deployment in availability set, use below storage SkuName
$SkuName = "Premium_LRS"
# For SAP deployment in availability zone, use below storage SkuName
$SkuName = "Premium_ZRS"
   
$diskConfig = New-AzDiskConfig -Location $location -SkuName $SkuName  -CreateOption Empty  -DiskSizeGB $DiskSizeInGB -MaxSharesCount $NumberOfWindowsClusterNodes
$dataDisk = New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $diskConfig

##################################
## Attach the disk to cluster VMs
##################################
# ASCS Cluster VM1
$ASCSClusterVM1 = "$SAPSID-ascs-10"

# ASCS Cluster VM2
$ASCSClusterVM2 = "$SAPSID-ascs-11"

# Add the Azure Shared Disk to Cluster Node 1
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM1 
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

# Add the Azure Shared Disk to Cluster Node 2
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM2
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

Formatar o disco compartilhado com o PowerShell

  1. Obtenha o número do disco. Execute estes comandos do PowerShell em um dos nós do cluster:

    Get-Disk | Where-Object PartitionStyle -Eq "RAW"  | Format-Table -AutoSize 
    # Example output
    # Number Friendly Name     Serial Number HealthStatus OperationalStatus Total Size Partition Style
    # ------ -------------     ------------- ------------ ----------------- ---------- ---------------
    # 2      Msft Virtual Disk               Healthy      Online                512 GB RAW            
    
  2. Formate o disco. Neste exemplo, é o disco número 2.

    # Format SAP ASCS Disk number '2', with drive letter 'S'
    $SAPSID = "PR1"
    $DiskNumber = 2
    $DriveLetter = "S"
    $DiskLabel = "$SAPSID" + "SAP"
    
    Get-Disk -Number $DiskNumber | Where-Object PartitionStyle -Eq "RAW" | Initialize-Disk -PartitionStyle GPT -PassThru |  New-Partition -DriveLetter $DriveLetter -UseMaximumSize | Format-Volume  -FileSystem ReFS -NewFileSystemLabel $DiskLabel -Force -Verbose
    # Example outout
    # DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining      Size
    # ----------- --------------- ---------- --------- ------------ ----------------- -------------      ----
    # S           PR1SAP          ReFS       Fixed     Healthy      OK                    504.98 GB 511.81 GB
    
  3. Verifique se o disco agora está visível como um disco de cluster.

    # List all disks
    Get-ClusterAvailableDisk -All
    # Example output
    # Cluster    : pr1clust
    # Id         : 88ff1d94-0cf1-4c70-89ae-cbbb2826a484
    # Name       : Cluster Disk 1
    # Number     : 2
    # Size       : 549755813888
    # Partitions : {\\?\GLOBALROOT\Device\Harddisk2\Partition2\}
    
  4. Registre o disco no cluster.

    # Add the disk to cluster 
    Get-ClusterAvailableDisk -All | Add-ClusterDisk
    # Example output  
    # Name           State  OwnerGroup        ResourceType 
    # ----           -----  ----------        ------------ 
    # Cluster Disk 1 Online Available Storage Physical Disk
    

SIOS DataKeeper Cluster Edition para o disco de compartilhamento de cluster SAP ASCS/SCS

Esta seção só é aplicável se você estiver usando o software de terceiros SIOS DataKeeper Cluster Edition para criar um armazenamento espelhado que simule o disco compartilhado do cluster.

Agora, você tem uma configuração de cluster de failover do Windows Server em funcionamento no Azure. Para instalar uma instância SAP ASCS/SCS, você precisa de um recurso de disco compartilhado. Uma das opções é usar o SIOS DataKeeper Cluster Edition é uma solução de terceiros que você pode usar para criar recursos de disco compartilhados.

A instalação do SIOS DataKeeper Cluster Edition para o disco de compartilhamento de cluster SAP ASCS/SCS envolve estas tarefas:

Instalar o SIOS DataKeeper

Instale o SIOS DataKeeper Cluster Edition em cada nó do cluster. Para criar armazenamento virtual compartilhado com o SIOS DataKeeper, crie um espelho sincronizado e simule o armazenamento compartilhado em cluster.

Antes de instalar o software SIOS, crie o usuário de domínio DataKeeperSvc.

Nota

Adicione o usuário do domínio DataKeeperSvc ao grupo Administrador Local em ambos os nós do cluster.

  1. Instale o software SIOS em ambos os nós de cluster.

    SIOS installer

    Figure 31: First page of the SIOS DataKeeper installation

    Primeira página da instalação do SIOS DataKeeper

  2. Na caixa de diálogo, selecione Sim.

    Figure 32: DataKeeper informs you that a service will be disabled

    O DataKeeper informa que um serviço será desativado

  3. Na caixa de diálogo, recomendamos que você selecione Domínio ou Conta de servidor.

    Figure 33: User selection for SIOS DataKeeper

    Seleção de usuários para SIOS DataKeeper

  4. Insira o nome de usuário e a senha da conta de domínio que você criou para o SIOS DataKeeper.

    Figure 34: Enter the domain user name and password for the SIOS DataKeeper installation

    Insira o nome de usuário e a senha do domínio para a instalação do SIOS DataKeeper

  5. Instale a chave de licença para sua instância do SIOS DataKeeper, como mostra a Figura 35.

    Figure 35: Enter your SIOS DataKeeper license key

    Insira sua chave de licença SIOS DataKeeper

  6. Quando solicitado, reinicie a máquina virtual.

Configurar o SIOS DataKeeper

Depois de instalar o SIOS DataKeeper em ambos os nós, inicie a configuração. O objetivo da configuração é ter replicação de dados síncrona entre os discos adicionais conectados a cada uma das máquinas virtuais.

  1. Inicie a ferramenta de gerenciamento e configuração do DataKeeper e selecione Conectar servidor.

    Figure 36: SIOS DataKeeper Management and Configuration tool

    Ferramenta de gerenciamento e configuração do SIOS DataKeeper

  2. Insira o nome ou o endereço TCP/IP do primeiro nó ao qual a ferramenta de Gerenciamento e Configuração deve se conectar e, em uma segunda etapa, o segundo nó.

    Figure 37: Insert the name or TCP/IP address of the first node the Management and Configuration tool should connect to, and in a second step, the second node

    Insira o nome ou endereço TCP/IP do primeiro nó ao qual a ferramenta de Gerenciamento e Configuração deve se conectar e, em uma segunda etapa, o segundo nó

  3. Crie o trabalho de replicação entre os dois nós.

    Figure 38: Create a replication job

    Criar um trabalho de replicação

    Um assistente orienta você pelo processo de criação de um trabalho de replicação.

  4. Defina o nome do trabalho de replicação.

    Figure 39: Define the name of the replication job

    Definir o nome do trabalho de replicação

    Figure 40: Define the base data for the node, which should be the current source node

    Defina os dados de base para o nó, que deve ser o nó de origem atual

  5. Defina o nome, o endereço TCP/IP e o volume do disco do nó de destino.

    Figure 41: Define the name, TCP/IP address, and disk volume of the current target node

    Defina o nome, o endereço TCP/IP e o volume do disco do nó de destino atual

  6. Defina os algoritmos de compressão. Em nosso exemplo, recomendamos que você compacte o fluxo de replicação. Especialmente em situações de ressincronização, a compactação do fluxo de replicação reduz drasticamente o tempo de ressincronização. A compactação usa os recursos de CPU e RAM de uma máquina virtual. À medida que a taxa de compressão aumenta, aumenta também o volume de recursos da CPU que são usados. Você pode ajustar essa configuração mais tarde.

  7. Outra configuração que você precisa verificar é se a replicação ocorre de forma assíncrona ou síncrona. Ao proteger as configurações do SAP ASCS/SCS, você deve usar a replicação síncrona.

    Figure 42: Define replication details

    Definir detalhes de replicação

  8. Defina se o volume replicado pelo trabalho de replicação deve ser representado para uma configuração de cluster de failover do Windows Server como um disco compartilhado. Para a configuração SAP ASCS/SCS, selecione Sim para que o cluster do Windows veja o volume replicado como um disco compartilhado que ele pode usar como um volume de cluster.

    Figure 43: Select Yes to set the replicated volume as a cluster volume

    Selecione Sim para definir o volume replicado como um volume de cluster

    Depois que o volume é criado, a ferramenta de Gerenciamento e Configuração do DataKeeper mostra que o trabalho de replicação está ativo.

    Figure 44: DataKeeper synchronous mirroring for the SAP ASCS/SCS share disk is active

    O espelhamento síncrono do DataKeeper para o disco de compartilhamento SAP ASCS/SCS está ativo

    O Gerenciador de Cluster de Failover agora mostra o disco como um disco do DataKeeper, como mostra a Figura 45:

    Figure 45: Failover Cluster Manager shows the disk that DataKeeper replicated

    O Gerenciador de Cluster de Failover mostra o disco que o DataKeeper replicou

Próximos passos