Instalar o SAP NetWeaver HA em um cluster de failover do Windows e disco compartilhado para uma instância SAP ASCS/SCS no Azure
Este artigo descreve como instalar e configurar um sistema SAP de alta disponibilidade no Azure usando um cluster de failover do Windows Server e um disco compartilhado de cluster para clusterizar uma instância SAP ASCS/SCS. Conforme descrito no Guia de arquitetura: Agrupar uma instância SAP ASCS/SCS em um cluster de failover do Windows usando um disco compartilhado de cluster, há duas alternativas para o disco compartilhado de cluster:
- Discos partilhados do Azure
- Usando o SIOS DataKeeper Cluster Edition para criar armazenamento espelhado, que simulará disco compartilhado clusterizado
Pré-requisitos
Antes de iniciar a instalação, revise estes documentos:
Não descrevemos a configuração do DBMS neste artigo porque as configurações variam dependendo do sistema DBMS que você usa. Assumimos que as preocupações de alta disponibilidade com o DBMS são resolvidas com as funcionalidades que diferentes fornecedores de DBMS suportam para o Azure. Exemplos são Always On ou espelhamento de banco de dados para bancos de dados SQL Server e Oracle Data Guard para Oracle. Os cenários de alta disponibilidade para o DBMS não são abordados neste artigo.
Não há considerações especiais quando diferentes serviços DBMS interagem com uma configuração SAP ASCS ou SCS clusterizada no Azure.
Nota
Os procedimentos de instalação dos sistemas SAP NetWeaver ABAP, sistemas Java e sistemas ABAP+Java são quase idênticos. A diferença mais significativa é que um sistema SAP ABAP tem uma instância ASCS. O sistema SAP Java tem uma instância SCS. O sistema SAP ABAP+Java tem uma instância ASCS e uma instância SCS em execução no mesmo grupo de clusters de failover da Microsoft. Todas as diferenças de instalação para cada pilha de instalação do SAP NetWeaver são explicitamente mencionadas. Você pode assumir que o restante das etapas são as mesmas.
Instalar o SAP com uma instância ASCS/SCS de alta disponibilidade
Importante
Se você usar o SIOS para apresentar o disco compartilhado, não coloque seu arquivo de paginação nos volumes espelhados do SIOS DataKeeper. Você pode deixar seu arquivo de paginação na unidade temporária D de uma máquina virtual do Azure, que é o padrão. Se ainda não estiver lá, mova o arquivo de página do Windows para a unidade D da sua máquina virtual do Azure.
A instalação do SAP com uma instância ASCS/SCS de alta disponibilidade envolve estas tarefas:
- Crie um nome de host virtual para a instância SAP ASCS/SCS clusterizada.
- Instale o SAP no primeiro nó do cluster.
- Modifique o perfil SAP da instância ASCS/SCS.
- Adicione uma porta de teste.
- Abra a porta de investigação do firewall do Windows.
Criar um nome de host virtual para a instância SAP ASCS/SCS clusterizada
No gerenciador de DNS do Windows, crie uma entrada DNS para o nome do host virtual da instância ASCS/SCS.
Importante
O endereço IP que você atribui ao nome do host virtual da instância ASCS/SCS deve ser o mesmo que o endereço IP que você atribuiu ao Balanceador de Carga do Azure.
Defina a entrada DNS para o nome virtual do cluster SAP ASCS/SCS e o endereço TCP/IP
Se estiver usando o novo SAP Enqueue Replication Server 2, que também é instância clusterizada, você precisará reservar no DNS um nome de host virtual para ERS2 também.
Importante
O endereço IP que você atribui ao nome do host virtual da instância ERS2 deve ser o segundo endereço IP que você atribuiu ao Balanceador de Carga do Azure.
Defina a entrada DNS para o nome virtual do cluster SAP ERS2 e o endereço TCP/IP
Para definir o endereço IP atribuído ao nome do host virtual, selecione Domínio do Gerenciador>DNS.
Novo nome virtual e endereço TCP/IP para configuração de cluster SAP ASCS/SCS
Instalar o primeiro nó de cluster SAP
Execute a primeira opção de nó de cluster no nó de cluster A. Selecione:
- Sistema ABAP: número de instância ASCS 00
- Sistema Java: número de instância SCS 01
- Sistema ABAP+Java: número de instância ASCS 00 e número de instância SCS 01
Importante
Lembre-se de que a configuração nas regras de balanceamento de carga interno do Azure (se estiver usando SKU Básico) e os números de instância SAP selecionados devem corresponder.
Siga o procedimento de instalação descrito pelo SAP. Certifique-se na opção de instalação inicial "First Cluster Node", para escolher "Cluster Shared Disk" como opção de configuração.
Gorjeta
A documentação de instalação do SAP descreve como instalar o primeiro nó de cluster ASCS/SCS.
Modificar o perfil SAP da instância ASCS/SCS
Se você tiver o Enqueue Replication Server 1, adicione o parâmetro enque/encni/set_so_keepalive
de perfil SAP conforme descrito abaixo. O parâmetro profile impede que as conexões entre os processos de trabalho SAP e o servidor enqueue sejam fechadas quando estiverem ociosas por muito tempo. O parâmetro SAP não é necessário para ERS2.
Adicione este parâmetro de perfil ao perfil de instância SAP ASCS/SCS, se estiver usando ERS1.
enque/encni/set_so_keepalive = TRUE
Para ERS1 e ERS2, certifique-se de que os parâmetros do
keepalive
SO estão definidos conforme descrito na nota 1410736 do SAP.Para aplicar as alterações de parâmetros do perfil SAP, reinicie a instância SAP ASCS/SCS.
Adicionar uma porta de sonda
Use a funcionalidade de teste do balanceador de carga interno para fazer com que toda a configuração do cluster funcione com o Balanceador de Carga do Azure. O balanceador de carga interno do Azure geralmente distribui a carga de trabalho de entrada igualmente entre as máquinas virtuais participantes.
No entanto, isso não funcionará em algumas configurações de cluster porque apenas uma instância está ativa. A outra instância é passiva e não pode aceitar nenhuma carga de trabalho. Uma funcionalidade de teste ajuda quando o balanceador de carga interno do Azure deteta qual instância está ativa e direciona apenas a instância ativa.
Importante
Neste exemplo de configuração, o ProbePort é definido como 620Nr. Para a instância SAP ASCS com o número 00 é 62000. Você precisará ajustar a configuração para corresponder aos números de instância do SAP e ao SID do SAP.
Para adicionar uma porta de teste, execute este módulo do PowerShell em uma das VMs de cluster:
Para a instância SAP ASC/SCS
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62000
Se estiver usando ERS2, que está agrupado. Não há necessidade de configurar a porta de teste para ERS1, pois ela não está clusterizada.
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62001 -IsSAPERSClusteredInstance $True
O código para a função Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource
seria parecido com:
function Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource {
<#
.SYNOPSIS
Set-AzureLoadBalancerHealthProbePortOnSAPClusterIPResource will set a new Azure Load Balancer Health Probe Port on 'SAP $SAPSID IP' cluster resource.
.DESCRIPTION
Set-AzureLoadBalancerHealthProbePortOnSAPClusterIPResource will set a new Azure Load Balancer Health Probe Port on 'SAP $SAPSID IP' cluster resource.
It will also restart SAP Cluster group (default behavior), to activate the changes.
You need to run it on one of the SAP ASCS/SCS Windows cluster nodes.
Expectation is that SAP group is installed with official SWPM installation tool, which will set default expected naming convention for:
- SAP Cluster Group: 'SAP $SAPSID'
- SAP Cluster IP Address Resource: 'SAP $SAPSID IP'
.PARAMETER SAPSID
SAP SID - 3 characters staring with letter.
.PARAMETER ProbePort
Azure Load Balancer Health Check Probe Port.
.PARAMETER RestartSAPClusterGroup
Optional parameter. Default value is '$True', so SAP cluster group will be restarted to activate the changes.
.PARAMETER IsSAPERSClusteredInstance
Optional parameter.Default value is '$False'.
If set to $True , then handle clustered new SAP ERS2 instance.
.EXAMPLE
# Set probe port to 62000, on SAP cluster resource 'SAP AB1 IP', and restart the SAP cluster group 'SAP AB1', to activate the changes.
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000
.EXAMPLE
# Set probe port to 62000, on SAP cluster resource 'SAP AB1 IP'. SAP cluster group 'SAP AB1' IS NOT restarted, therefore changes are NOT active.
# To activate the changes you need to manually restart 'SAP AB1' cluster group.
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 -RestartSAPClusterGroup $False
.EXAMPLE
# Set probe port to 62001, on SAP cluster resource 'SAP AB1 ERS IP'. SAP cluster group 'SAP AB1 ERS' IS restarted, to activate the changes.
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID AB1 -ProbePort 62000 -IsSAPERSClusteredInstance $True
#>
[CmdletBinding()]
param(
[Parameter(Mandatory=$True)]
[ValidateNotNullOrEmpty()]
[ValidateLength(3,3)]
[string]$SAPSID,
[Parameter(Mandatory=$True)]
[ValidateNotNullOrEmpty()]
[int] $ProbePort,
[Parameter(Mandatory=$False)]
[bool] $RestartSAPClusterGroup = $True,
[Parameter(Mandatory=$False)]
[bool] $IsSAPERSClusteredInstance = $False
)
BEGIN{}
PROCESS{
try{
if($IsSAPERSClusteredInstance){
#Handle clustered SAP ERS Instance
$SAPClusterRoleName = "SAP $SAPSID ERS"
$SAPIPresourceName = "SAP $SAPSID ERS IP"
}else{
#Handle clustered SAP ASCS/SCS Instance
$SAPClusterRoleName = "SAP $SAPSID"
$SAPIPresourceName = "SAP $SAPSID IP"
}
$SAPIPResourceClusterParameters = Get-ClusterResource $SAPIPresourceName | Get-ClusterParameter
$IPAddress = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Address" }).Value
$NetworkName = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Network" }).Value
$SubnetMask = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "SubnetMask" }).Value
$OverrideAddressMatch = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "OverrideAddressMatch" }).Value
$EnableDhcp = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "EnableDhcp" }).Value
$OldProbePort = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "ProbePort" }).Value
$var = Get-ClusterResource | Where-Object { $_.name -eq $SAPIPresourceName }
Write-Output "Current configuration parameters for SAP IP cluster resource '$SAPIPresourceName' are:"
Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter
Write-Output " "
Write-Output "Current probe port property of the SAP cluster resource '$SAPIPresourceName' is '$OldProbePort'."
Write-Output " "
Write-Output "Setting the new probe port property of the SAP cluster resource '$SAPIPresourceName' to '$ProbePort' ..."
Write-Output " "
$var | Set-ClusterParameter -Multiple @{"Address"=$IPAddress;"ProbePort"=$ProbePort;"Subnetmask"=$SubnetMask;"Network"=$NetworkName;"OverrideAddressMatch"=$OverrideAddressMatch;"EnableDhcp"=$EnableDhcp}
Write-Output " "
if($RestartSAPClusterGroup){
Write-Output ""
Write-Output "Activating changes..."
Write-Output " "
Write-Output "Taking SAP cluster IP resource '$SAPIPresourceName' offline ..."
Stop-ClusterResource -Name $SAPIPresourceName
sleep 5
Write-Output "Starting SAP cluster role '$SAPClusterRoleName' ..."
Start-ClusterGroup -Name $SAPClusterRoleName
Write-Output "New ProbePort parameter is active."
Write-Output " "
Write-Output "New configuration parameters for SAP IP cluster resource '$SAPIPresourceName':"
Write-Output " "
Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter
}else
{
Write-Output "SAP cluster role '$SAPClusterRoleName' is not restarted, therefore changes are not activated."
}
}
catch{
Write-Error $_.Exception.Message
}
}
END {}
}
Abra a porta de investigação do firewall do Windows
Abra uma porta de investigação do firewall do Windows em ambos os nós do cluster. Use o script a seguir para abrir uma porta de investigação do firewall do Windows. Atualize as variáveis do PowerShell para seu ambiente.
Se estiver usando o ERS2, você também precisará abrir a porta do firewall para a porta do teste ERS2.
$ProbePort = 62000 # ProbePort of the Azure internal load balancer
New-NetFirewallRule -Name AzureProbePort -DisplayName "Rule for Azure Probe Port" -Direction Inbound -Action Allow -Protocol TCP -LocalPort $ProbePort
Instalar a instância do banco de dados
Para instalar a instância do banco de dados, siga o processo descrito na documentação de instalação do SAP.
Instalar o segundo nó do cluster
Para instalar o segundo cluster, siga as etapas descritas no guia de instalação do SAP.
Instalar o SAP Primary Application Server
Instale a instância <do Servidor de Aplicativos Principal (PAS) SID-di-0> na máquina virtual que você designou para hospedar o PAS. Não há dependências no Azure. Se estiver usando o SIOS, não haverá configurações específicas do DataKeeper.
Instalar o servidor de aplicativos adicional SAP
Instale um SAP Additional Application Server (AAS) em todas as máquinas virtuais que você designou para hospedar uma instância do SAP Application Server.
Testar o failover da instância SAP ASCS/SCS
Para os testes de failover descritos, assumimos que o SAP ASCS está ativo no nó A.
Verifique se o sistema SAP pode fazer failover com êxito do nó A para o nó B Escolha uma destas opções para iniciar um failover do grupo de clusters SAP SID> do nó de cluster A para o <nó de cluster B:
- Gerenciador de Cluster de Failover
- Failover Cluster PowerShell
$SAPSID = "PR1" # SAP <SID> $SAPClusterGroup = "SAP $SAPSID" Move-ClusterGroup -Name $SAPClusterGroup
Reinicie o nó de cluster A no sistema operacional convidado do Windows. Isso inicia um failover automático do grupo de clusters SAP <SID> do nó A para o nó B.
Reinicie o nó de cluster A a partir do portal do Azure. Isso inicia um failover automático do grupo de clusters SAP <SID> do nó A para o nó B.
Reinicie o nó de cluster A usando o Azure PowerShell. Isso inicia um failover automático do grupo de clusters SAP <SID> do nó A para o nó B.
Verificação
Após o failover, verifique se o grupo de clusters do SAP <SID> está em execução no nó B do cluster.
No Gerenciador de Cluster de Failover, o grupo de clusters SAP <SID> está sendo executado no nó de cluster B
Após o failover, verifique se o disco compartilhado agora está montado no nó B do cluster.
Após o failover, se estiver usando o SIOS, verifique se o SIOS DataKeeper está replicando dados da unidade de volume de origem S no nó de cluster B para a unidade de volume de destino S no nó de cluster A.
O SIOS DataKeeper replica o volume local do nó de cluster B para o nó de cluster A