SAP NetWeaver HA installeren op een Windows-failovercluster en gedeelde schijf voor een SAP ASCS/SCS-exemplaar in Azure

In dit artikel wordt beschreven hoe u een SAP-systeem met hoge beschikbaarheid in Azure installeert en configureert met behulp van een Windows Server-failovercluster en een gedeelde clusterschijf voor het clusteren van een SAP ASCS/SCS-exemplaar. Zoals beschreven in architectuurhandleiding: Cluster een SAP ASCS/SCS-exemplaar op een Windows-failovercluster met behulp van een gedeelde clusterschijf, zijn er twee alternatieven voor gedeelde clusterschijven:

Vereisten

Raadpleeg deze documenten voordat u begint met de installatie:

We beschrijven de DBMS-installatie in dit artikel niet, omdat setups variëren, afhankelijk van het DBMS-systeem dat u gebruikt. We gaan ervan uit dat problemen met hoge beschikbaarheid met dbMS worden aangepakt met de functionaliteiten die verschillende DBMS-leveranciers ondersteunen voor Azure. Voorbeelden zijn AlwaysOn of databasespiegeling voor SQL Server en Oracle Data Guard voor Oracle-databases. De scenario's voor hoge beschikbaarheid voor DBMS worden niet behandeld in dit artikel.

Er zijn geen speciale overwegingen wanneer verschillende DBMS-services communiceren met een geclusterde SAP ASCS- of SCS-configuratie in Azure.

Notitie

De installatieprocedures van SAP NetWeaver ABAP-systemen, Java-systemen en ABAP+Java-systemen zijn bijna identiek. Het belangrijkste verschil is dat een SAP ABAP-systeem één ASCS-exemplaar heeft. Het SAP Java-systeem heeft één SCS-exemplaar. Het SAP ABAP+Java-systeem heeft één ASCS-exemplaar en één SCS-exemplaar dat wordt uitgevoerd in dezelfde Microsoft-failoverclustergroep. Eventuele installatieverschillen voor elke SAP NetWeaver-installatiestack worden expliciet vermeld. U kunt ervan uitgaan dat de rest van de stappen hetzelfde zijn.

SAP installeren met een ASCS/SCS-exemplaar met hoge beschikbaarheid

Belangrijk

Als u SIOS gebruikt om gedeelde schijven te presenteren, plaatst u het paginabestand niet op de gespiegelde SIOS DataKeeper-volumes. U kunt het paginabestand op het tijdelijke station D van een virtuele Azure-machine laten staan. Dit is de standaardinstelling. Als dit nog niet is gebeurd, verplaatst u het Windows-paginabestand naar station D van uw virtuele Azure-machine.

Het installeren van SAP met een ASCS/SCS-exemplaar met hoge beschikbaarheid omvat deze taken:

  • Maak een virtuele hostnaam voor het geclusterde SAP ASCS/SCS-exemplaar.
  • Installeer SAP op het eerste clusterknooppunt.
  • Wijzig het SAP-profiel van het ASCS/SCS-exemplaar.
  • Voeg een testpoort toe.
  • Open de windows-firewalltestpoort.

Een virtuele hostnaam maken voor het geclusterde SAP ASCS/SCS-exemplaar

  1. Maak in Windows DNS-beheer een DNS-vermelding voor de naam van de virtuele host van het ASCS/SCS-exemplaar.

    Belangrijk

    Het IP-adres dat u toewijst aan de naam van de virtuele host van het ASCS/SCS-exemplaar, moet hetzelfde zijn als het IP-adres dat u hebt toegewezen aan Azure Load Balancer.

    Figure 1: Define the DNS entry for the SAP ASCS/SCS cluster virtual name and TCP/IP address

    Definieer de DNS-vermelding voor de virtuele naam van het SAP ASCS/SCS-cluster en het TCP/IP-adres

  2. Als u de nieuwe SAP Enqueue Replication Server 2 gebruikt, die ook een geclusterd exemplaar is, moet u ook een virtuele hostnaam voor ERS2 reserveren in DNS.

    Belangrijk

    Het IP-adres dat u toewijst aan de naam van de virtuele host van het ERS2-exemplaar, moet het tweede IP-adres zijn dat u hebt toegewezen aan Azure Load Balancer.

    Figure 1A: Define the DNS entry for the SAP ASCS/SCS cluster virtual name and TCP/IP address

    Definieer de DNS-vermelding voor de virtuele naam van het SAP ERS2-cluster en het TCP/IP-adres

  3. Als u het IP-adres wilt definiëren dat is toegewezen aan de naam van de virtuele host, selecteert u DNS Manager-domein>.

    Figure 2: New virtual name and TCP/IP address for SAP ASCS/SCS cluster configuration

    Nieuwe virtuele naam en TCP/IP-adres voor SAP ASCS/SCS-clusterconfiguratie

Het eerste SAP-clusterknooppunt installeren

  1. Voer de eerste clusterknooppuntoptie uit op clusterknooppunt A. Selecteer:

    • ABAP-systeem: ASCS-exemplaarnummer00
    • Java-systeem: SCS-exemplaarnummer 01
    • ABAP+Java-systeem: ASCS-exemplaarnummer00 en SCS-exemplaarnummer01

    Belangrijk

    Houd er rekening mee dat de configuratie in de interne load balancer-taakverdelingsregels van Azure (als u basic-SKU gebruikt) en de geselecteerde SAP-exemplaarnummers overeenkomen.

  2. Volg de beschreven SAP-installatieprocedure. Zorg ervoor dat u in de startinstallatieoptie 'Eerste clusterknooppunt' kiest als configuratieoptie 'Gedeelde clusterschijf'.

Fooi

In de SAP-installatiedocumentatie wordt beschreven hoe u het eerste ASCS/SCS-clusterknooppunt installeert.

Het SAP-profiel van het ASCS/SCS-exemplaar wijzigen

Als u Replicatieserver 1 in de wachtrij hebt, voegt u de SAP-profielparameter enque/encni/set_so_keepalive toe, zoals hieronder wordt beschreven. De profielparameter voorkomt dat verbindingen tussen SAP-werkprocessen en de wachtrijserver worden gesloten wanneer ze te lang inactief zijn. De SAP-parameter is niet vereist voor ERS2.

  1. Voeg deze profielparameter toe aan het SAP ASCS/SCS-exemplaarprofiel als u ERS1 gebruikt.

    enque/encni/set_so_keepalive = true
    

    Voor zowel ERS1 als ERS2 moet u ervoor zorgen dat de parameters van het keepalive besturingssysteem zijn ingesteld zoals beschreven in SAP-opmerking 1410736.

  2. Als u de parameterwijzigingen voor het SAP-profiel wilt toepassen, start u het SAP ASCS/SCS-exemplaar opnieuw op.

Een testpoort toevoegen

Gebruik de testfunctionaliteit van de interne load balancer om de volledige clusterconfiguratie te laten werken met Azure Load Balancer. De interne Load Balancer van Azure distribueert meestal de binnenkomende werkbelasting gelijkmatig tussen deelnemende virtuele machines.

Dit werkt echter niet in sommige clusterconfiguraties omdat er slechts één exemplaar actief is. Het andere exemplaar is passief en kan geen enkele workload accepteren. Een testfunctionaliteit helpt wanneer de interne Load Balancer van Azure detecteert welk exemplaar actief is en alleen gericht is op het actieve exemplaar.

Belangrijk

In deze voorbeeldconfiguratie is ProbePort ingesteld op 620Nr. Voor SAP ASCS-exemplaar met nummer 00 is dit 62000. U moet de configuratie aanpassen zodat deze overeenkomt met uw SAP-exemplaarnummers en uw SAP-SID.

Als u een testpoort wilt toevoegen, voert u deze PowerShell-module uit op een van de cluster-VM's:

  • In het geval van SAP ASC/SCS-exemplaar

    Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62000
    
  • Als u ERS2 gebruikt, die is geclusterd. Er hoeft geen testpoort te worden geconfigureerd voor ERS1, omdat deze niet is geclusterd.

    Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62001 -IsSAPERSClusteredInstance $True
    

De code voor de functie Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource ziet er als volgt uit:

 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 clsutered 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 manualy 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 {}
 }

De windows-firewalltestpoort openen

Open een Windows Firewall-testpoort op beide clusterknooppunten. Gebruik het volgende script om een Windows Firewall-testpoort te openen. Werk de PowerShell-variabelen voor uw omgeving bij.
Als u ERS2 gebruikt, moet u ook de firewallpoort openen voor de ERS2-testpoort.

  $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

Het database-exemplaar installeren

Als u het database-exemplaar wilt installeren, volgt u het proces dat wordt beschreven in de SAP-installatiedocumentatie.

Het tweede clusterknooppunt installeren

Als u het tweede cluster wilt installeren, volgt u de stappen die worden beschreven in de SAP-installatiehandleiding.

De PRIMAIRE SAP-toepassingsserver installeren

Installeer de SID-di-0> van het primaire toepassingsserverexemplaren <(PAS) op de virtuele machine die u hebt aangewezen om het PAS te hosten. Er zijn geen afhankelijkheden van Azure. Als u SIOS gebruikt, zijn er geen DataKeeper-specifieke instellingen.

De SAP-extra toepassingsserver installeren

Installeer een SAP Additional Application Server (AAS) op alle virtuele machines die u hebt aangewezen om een SAP Application Server-exemplaar te hosten.

De failover van het SAP ASCS-/SCS-exemplaar testen

Voor de beschreven failovertests wordt ervan uitgegaan dat SAP ASCS actief is op knooppunt A.

  1. Controleer of het SAP-systeem een failover van knooppunt A naar knooppunt B kan uitvoeren. Kies een van deze opties om een failover van de SAP <SID-clustergroep> te starten van clusterknooppunt A naar clusterknooppunt B:

    • Failoverclusterbeheer
    • PowerShell voor failovercluster
    $SAPSID = "PR1"     # SAP <SID>
    
    $SAPClusterGroup = "SAP $SAPSID"
    Move-ClusterGroup -Name $SAPClusterGroup
    
    
  2. Start het clusterknooppunt A opnieuw op binnen het Windows-gastbesturingssysteem. Hiermee wordt een automatische failover van de SAP <SID-clustergroep> gestart van knooppunt A naar knooppunt B.

  3. Start clusterknooppunt A opnieuw vanuit Azure Portal. Hiermee wordt een automatische failover van de SAP <SID-clustergroep> gestart van knooppunt A naar knooppunt B.

  4. Start clusterknooppunt A opnieuw op met behulp van Azure PowerShell. Hiermee wordt een automatische failover van de SAP <SID-clustergroep> gestart van knooppunt A naar knooppunt B.

  5. Verificatie

    • Controleer na een failover of de SAP <SID-clustergroep> wordt uitgevoerd op clusterknooppunt B.

      Figure 8: In Failover Cluster Manager, the SAP <SID> cluster group is running on cluster node B

      In Failoverclusterbeheer wordt de SAP <SID-clustergroep> uitgevoerd op clusterknooppunt B

    • Controleer na een failover of de gedeelde schijf nu is gekoppeld op clusterknooppunt B.

    • Als u na een failover SIOS gebruikt, controleert u of SIOS DataKeeper gegevens repliceert van bronvolumestation S op clusterknooppunt B naar doelvolumestation S op clusterknooppunt A.

      Figure 9: SIOS DataKeeper replicates the local volume from cluster node B to cluster node A

      SIOS DataKeeper repliceert het lokale volume van clusterknooppunt B naar clusterknooppunt A