Prepare a infraestrutura do Azure para alta disponibilidade do SAP usando o cluster de failover do Windows e o disco compartilhado para a instância SAP ASCS/SCS

Windows OS Windows

Este artigo descreve as etapas para preparar a infraestrutura do Azure para instalar e configurar uma instância de ASCS/SCS SAP de alta disponibilidade em um cluster de failover do Windows usando um disco compartilhado de cluster como uma opção para clustering de um Instância SAP ASCS. Duas alternativas para o disco compartilhado do 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, analise este artigo:

Criar as VMs do ASCS

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

  • Crie o Azure Load Balancer interno para a instância do SAP ASCS/SCS.
  • Adicionar 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 de host Nome do host Endereço IP estático Conjunto de disponibilidade SkuName de disco
Primeiro cluster ASCS/SCS do nó de cluster pr1-ascs-10 10.0.0.4 pr1-ascs-avset Premium_LRS
Segundo cluster ASCS/SCS do nó de cluster pr1-ascs-11 10.0.0.5 pr1-ascs-avset
Nome da rede de clusters pr1clust 10.0.0.42 (somente para cluster do Win 2016) N/D
Nome da rede do cluster de ASCS pr1-ascscl 10.0.0.43 N/D
Nome de rede de cluster de ERS (somente para ERS2) pr1-erscl 10.0.0.44 N/D

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

Função de nome de host Nome do host Endereço IP estático Zona de disponibilidade SkuName de disco
Primeiro cluster ASCS/SCS do nó de cluster pr1-ascs-10 10.0.0.4 AZ01 Premium_ZRS
Segundo cluster ASCS/SCS do nó de cluster pr1-ascs-11 10.0.0.5 AZ02
Nome da rede de clusters pr1clust 10.0.0.42 (somente para cluster do Win 2016) N/D
Nome da rede do cluster de ASCS pr1-ascscl 10.0.0.43 N/D
Nome de rede de cluster de ERS (somente 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 em execução no conjunto de disponibilidade, você precisará implantar o LRS para o disco compartilhado premium (Premium_LRS) do Azure e se o cluster estiver em execução na zona de disponibilidade, implante o ZRS para disco compartilhado premium (Premium_ZRS) do Azure.

Observação

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

  • Se você estiver usando o sistema PPG para 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 PPG para o sistema SAP implantado entre zonas, como descrito no documento Grupos de posicionamento por proximidade com implantações zonais, você poderá anexar Premium_ZRS armazenamento a máquinas virtuais que compartilham um disco.

Criar um 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 de front-end: Criar IP de front-end (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 de front-end: Selecione IP de front-end
    • Pool de back-end: selecione o pool de back-end
    • Verifique "Portas de alta disponibilidade"
    • Protocolo: TCP
    • Sonda de integridade: crie uma sonda de integridade com detalhes abaixo
      • Protocolo: TCP
      • Porta: [por exemplo: 620<Instance-no.> for ASCS]
      • Intervalo: 5
      • Limite da sonda: 2
    • Tempo limite ocioso (minutos): 30
    • Marque "Ativar IP flutuante"
  4. Aplicável apenas à arquitetura ENSA2: Criar IP de front-end adicional (10.0.0.44), regra de balanceamento de carga (use 621<Instance-no. para porta de teste de integridade ERS2), conforme descrito nos pontos 1 e 3.>

Observação

A propriedade de configuração Investigação de integridade, também conhecida como "Limite não íntegro" no portal, não é respeitada. Portanto, para controlar o número de testes consecutivos bem-sucedidos ou com falha, defina a propriedade "probeThreshold" como 2. No momento, não é possível definir essa propriedade usando o portal do Azure, portanto, use o comando CLI do Azure ou PowerShell .

Importante

Não há suporte para um endereço IP flutuante em uma configuração IP secundária de placa de interface de rede (NIC) 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 segunda NIC.

Observação

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

Dica

Com o Modelo do Azure Resource Manager para WSFC para instância SAP ASCS/SCS com o Disco Compartilhado do Azure, você pode automatizar a preparação da infraestrutura, usando o Disco Compartilhado do Azure para um SAP SID com ERS1.
O modelo do ARM do Azure criará duas VMs do Windows 2019 ou 2016, criará um disco compartilhado do Azure e anexará às VMs. O Azure Load Balance interno será criado e configurado também. Para mais informações, confira o modelo do ARM.

Adicione entradas de registro em ambos os nós de cluster da instância ASCS/SCS

O Azure Load Balancer pode fechar conexões ociosas por um período e que excederem o tempo limite de ociosidade. Os processos de trabalho do SAP abrem conexões com o processo de enfileiramento do SAP assim que a primeira solicitação para enfileirar/desenfileirar precisa ser enviada. Para evitar a interrupção dessas conexões, altere os valores KeepAliveTime e KeepAliveInterval do TCP/IP em ambos os nós de cluster. Se estiver usando o ERS1, também é necessário adicionar parâmetros de perfil SAP, conforme descrito posteriormente neste artigo. As seguintes entradas de registro devem ser alteradas em ambos os nós de 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 os dois nós do cluster.

Adicionar as VMs 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 o 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 }

Depois de concluir a instalação do recurso, reinicialize os dois 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, usará 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 mais informações, confira Novos recursos de cluster de failover do Windows Server 2019. Execute este comando em um dos nós de 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 quorum de cluster de nuvem

Como você usa o Windows Server 2016 ou 2019, recomendamos configurar a testemunha de nuvem do Azure, como quorum de cluster.

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

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

Ajustar os limites do cluster de failover do Windows

Depois de instalar o cluster de failover do Windows, você precisa ajustar alguns limites para serem adequados aos clusters implantados no Azure. Os parâmetros a serem alterados estão documentados no blog Ajustar os limites de rede de cluster de failover. Supondo que as duas VMs que criam a configuração de Cluster do Windows para ASCS/SCS estejam na mesma sub-rede, os parâmetros a seguir precisam ser alterados para estes valores:

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

Essas configurações foram testadas com 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 o 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 esses 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 disco de compartilhamento de cluster do 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 simula o disco compartilhado do cluster.

Agora, você tem uma configuração de clustering de failover do Windows Server em funcionamento no Azure. Mas para instalar uma instância do 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 para criar recursos de disco compartilhados.

Instalar o SIOS DataKeeper Cluster Edition para o disco de compartilhamento de cluster do SAP ASCS/SCS envolve as seguintes tarefas:

  • Adicione o Microsoft .NET Framework se necessário. Confira a documentação do SIOS para ver os requisitos de estrutura .NET mais atualizados
  • Instalar SIOS DataKeeper
  • Configurar o SIOS DataKeeper

Instalar SIOS DataKeeper

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

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

Observação

Adicione esse usuário DataKeeperSvc ao grupo Administradores locais em ambos os nós do cluster.

  1. Instale o software SIOS em ambos os nós do 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 a você que um serviço será desabilitado

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

    Figure 33: User selection for SIOS DataKeeper

    Seleção do usuário para o SIOS DataKeeper

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

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

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

  5. Instale a chave de licença para o SIOS DataKeeper conforme mostrado na Figura 35.

    Figure 35: Enter your SIOS DataKeeper license key

    Insira a chave da licença do 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, você precisará iniciar a configuração. O objetivo da configuração é ter a replicação de dados síncrona entre os discos adicionais anexados a cada uma das máquinas virtuais.

  1. Inicie a ferramenta de Configuração e Gerenciamento de 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 endereço TCP/IP do primeiro nó ao qual a ferramenta de Gerenciamento e Configuração deve se conectar e, em uma segunda etapa, as informações do 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

    Inserir 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, as informações do segundo nó

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

    Figure 38: Create a replication job

    Criar trabalho de replicação

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

  4. Definir 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

    Definir 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 de disco do nó de destino.

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

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

  6. Defina os algoritmos de compactação. Em nosso exemplo, recomendamos que você compacte o fluxo de replicação. Particularmente em situações de ressincronização, a compactação do fluxo de replicação reduz consideravelmente o tempo de ressincronização. A compactação utiliza os recursos de CPU e RAM de uma máquina virtual. Conforme aumenta a taxa de compactação, aumenta o volume de recursos de CPU usados. Você pode ajustar essa configuração mais tarde.

  7. Outra configuração que precisa ser verificada é se a replicação é executada de modo síncrono ou assíncrono. Quando você protege configurações SAP ASCS/SCS, deve usar a replicação síncrona.

    Figure 42: Define replication details

    Definir detalhes de replicação

  8. Defina se o volume que é replicado pelo trabalho de replicação deve ser representado em uma configuração de cluster Clustering de Failover do Windows Server como um disco compartilhado. Para a configuração do SAP ASCS/SCS, escolha Sim para que o cluster do Windows veja o volume replicado como disco compartilhado que pode ser usado como volume de cluster.

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

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

    Depois que o volume é criado, a ferramenta de Configuração e Gerenciamento 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 do SAP ASCS/SCS está ativo

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

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

    O Gerenciador de Cluster de Failover mostra o disco do DataKeeper replicado

Próximas etapas