Sdílet prostřednictvím


Instalace vysoké dostupnosti SAP NetWeaver na cluster s Windows s podporou převzetí služeb při selhání a na sdílený disk pro instanci SAP ASCS/SCS v Azure

Tento článek popisuje, jak nainstalovat a nakonfigurovat systém SAP s vysokou dostupností v Azure pomocí clusteru s podporou převzetí služeb při selhání Windows Serveru a sdíleného disku clusteru pro clustering instance SAP ASCS/SCS. Jak je popsáno v průvodci architekturou: Cluster instance SAP ASCS/SCS v clusteru s podporou převzetí služeb při selhání s Windows pomocí sdíleného disku clusteru existují dvě alternativy pro sdílený disk clusteru:

Požadavky

Než začnete s instalací, projděte si tyto dokumenty:

Nepopisujeme nastavení DBMS v tomto článku, protože nastavení se liší v závislosti na používaném systému DBMS. Předpokládáme, že problémy s vysokou dostupností dbMS jsou řešeny funkcemi, které podporují různí dodavatelé DBMS pro Azure. Příklady jsou alwayson nebo zrcadlení databáze pro databáze SQL Server a Oracle Data Guard pro databáze Oracle. Scénáře vysoké dostupnosti pro DBMS nejsou popsané v tomto článku.

Pokud různé služby DBMS komunikují s clusterovanou konfigurací SAP ASCS nebo SCS v Azure, neexistují žádné zvláštní aspekty.

Poznámka:

Postupy instalace systémů SAP NetWeaver ABAP, systémů Java a systémů ABAP+Java jsou téměř stejné. Nejvýznamnější rozdíl spočívá v tom, že systém SAP ABAP má jednu instanci ASCS. Systém SAP Java má jednu instanci SCS. Systém SAP ABAP+Java má jednu instanci ASCS a jednu instanci SCS spuštěnou ve stejné skupině clusteru s podporou převzetí služeb při selhání Microsoftu. Všechny rozdíly v instalaci pro každý zásobník instalace SAP NetWeaver jsou explicitně zmíněny. Můžete předpokládat, že zbývající kroky jsou stejné.

Instalace SAP s instancí ASCS/SCS s vysokou dostupností

Důležité

Pokud k prezentaci sdíleného disku používáte SIOS, neumisťujte stránkový soubor na zrcadlené svazky SIOS DataKeeper. Stránkovací soubor můžete ponechat na dočasné jednotce D virtuálního počítače Azure, což je výchozí nastavení. Pokud tam ještě není, přesuňte stránkovací soubor Windows na jednotku D virtuálního počítače Azure.

Instalace SAP s vysokou dostupností instance ASCS/SCS zahrnuje tyto úlohy:

  • Vytvořte název virtuálního hostitele pro clusterovanou instanci SAP ASCS/SCS.
  • Nainstalujte SAP na první uzel clusteru.
  • Upravte profil SAP instance ASCS/SCS.
  • Přidejte port sondy.
  • Otevřete port sondy brány Windows Firewall.

Vytvoření virtuálního hostitele pro clusterovanou instanci SAP ASCS/SCS

  1. Ve Správci DNS systému Windows vytvořte položku DNS pro název virtuálního hostitele instance ASCS/SCS.

    Důležité

    IP adresa, kterou přiřadíte k názvu virtuálního hostitele instance ASCS/SCS, musí být stejná jako IP adresa, kterou jste přiřadili službě Azure Load Balancer.

    Obrázek 1: Definování položky DNS pro virtuální název clusteru SAP ASCS/SCS a TCP/IP adresu

    Definujte položku DNS pro virtuální název clusteru SAP ASCS/SCS a ADRESU TCP/IP.

  2. Pokud používáte nový server replikace SAP Enqueue 2, který je také clusterovaná instance, musíte v DNS rezervovat také název virtuálního hostitele pro ERS2.

    Důležité

    IP adresa, kterou přiřadíte k názvu virtuálního hostitele instance ERS2, musí být druhá IP adresa, kterou jste přiřadili službě Azure Load Balancer.

    Obrázek 1A: Definování položky DNS pro virtuální název clusteru SAP ASCS/SCS a ADRESU TCP/IP

    Definujte položku DNS pro virtuální název clusteru SAP ERS2 a ADRESU TCP/IP.

  3. Pokud chcete definovat IP adresu přiřazenou k názvu virtuálního hostitele, vyberte doménu správce>DNS.

    Obrázek 2: Nový virtuální název a ADRESA TCP/IP pro konfiguraci clusteru SAP ASCS/SCS

    Nový virtuální název a TCP/IP adresa pro konfiguraci clusteru SAP ASCS/SCS

Instalace prvního uzlu clusteru SAP

  1. Na uzlu clusteru A spusťte první možnost uzlu clusteru. Vyberte:

    • Systém ABAP: Instance ASCS číslo 00
    • Systém Java: SCS instance číslo 01
    • ABAP+Java system: ASCS instance číslo 00 a SCS instance číslo 01

    Důležité

    Nezapomeňte, že konfigurace v pravidlech vyrovnávání zatížení interního nástroje pro vyrovnávání zatížení Azure (pokud používáte skladovou položku Basic) a vybraná čísla instancí SAP se musí shodovat.

  2. Postupujte podle postupu instalace popsaného v SAP. Ujistěte se, že v možnosti počáteční instalace "První uzel clusteru" jako možnost konfigurace zvolte "Sdílený disk clusteru".

Tip

Dokumentace k instalaci SAP popisuje, jak nainstalovat první uzel clusteru ASCS/SCS.

Úprava profilu SAP instance ASCS/SCS

Pokud máte Server replikace Enqueue 1, přidejte parametr enque/encni/set_so_keepalive profilu SAP, jak je popsáno níže. Parametr profilu zabraňuje ukončení připojení mezi pracovními procesy SAP a serverem fronty, když jsou nečinné příliš dlouho. Parametr SAP se pro ERS2 nevyžaduje.

  1. Přidejte tento parametr profilu do profilu instance SAP ASCS/SCS, pokud používáte ERS1.

    enque/encni/set_so_keepalive = TRUE
    

    V případě ERS1 i ERS2 se ujistěte, že keepalive jsou parametry operačního systému nastavené tak, jak je popsáno v poznámce SAP 1410736.

  2. Pokud chcete použít změny parametru profilu SAP, restartujte instanci SAP ASCS/SCS.

Přidání portu sondy

Pomocí funkce sondy interního nástroje pro vyrovnávání zatížení můžete zajistit, aby celá konfigurace clusteru fungovala se službou Azure Load Balancer. Interní nástroj pro vyrovnávání zatížení Azure obvykle distribuuje příchozí úlohy rovnoměrně mezi zúčastněné virtuální počítače.

V některých konfiguracích clusteru to ale nebude fungovat, protože je aktivní jenom jedna instance. Druhá instance je pasivní a nemůže přijmout žádnou z úloh. Funkce sondy pomáhá, když interní nástroj pro vyrovnávání zatížení Azure zjistí, která instance je aktivní, a cílí pouze na aktivní instanci.

Důležité

V této ukázkové konfiguraci je ProbePort nastavený na 620nr. Pro instanci SAP ASCS s číslem 00 je to 62000. Budete muset upravit konfiguraci tak, aby odpovídala vašim číslům instancí SAP a identifikátoru SID SAP.

Pokud chcete přidat port sondy, spusťte tento modul PowerShellu na jednom z virtuálních počítačů clusteru:

  • Pro instanci SAP ASC/SCS

    Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62000
    
  • Pokud používáte ERS2, což je cluster. Pro ERS1 není potřeba konfigurovat port sondy, protože není clusterovaný.

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

Kód funkce Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource by vypadal takto:

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

Otevření portu sondy brány Windows Firewall

Na obou uzlech clusteru otevřete port sondy brány Windows Firewall. Pomocí následujícího skriptu otevřete port sondy brány Windows Firewall. Aktualizujte proměnné PowerShellu pro vaše prostředí.
Pokud používáte ERS2, budete také muset otevřít port brány firewall pro port sondy 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

Instalace instance databáze

Pokud chcete nainstalovat instanci databáze, postupujte podle postupu popsaného v dokumentaci k instalaci SAP.

Instalace druhého uzlu clusteru

Pokud chcete nainstalovat druhý cluster, postupujte podle kroků popsaných v průvodci instalací SAP.

Instalace primárního aplikačního serveru SAP

Nainstalujte instanci <primárního aplikačního serveru (PAS) SID-di-0> na virtuální počítač, který jste určili k hostování PAS. V Azure nejsou žádné závislosti. Pokud používáte SIOS, neexistují žádná nastavení specifická pro DataKeeper.

Instalace dalšího aplikačního serveru SAP

Nainstalujte další aplikační server SAP (AAS) na všechny virtuální počítače, které jste určili k hostování instance aplikačního serveru SAP.

Testování převzetí služeb při selhání instance SAP ASCS/SCS

U popsaných testů převzetí služeb při selhání předpokládáme, že SAP ASCS je aktivní na uzlu A.

  1. Ověřte, že systém SAP dokáže úspěšně převzít služby při selhání z uzlu A na uzel B. Zvolte jednu z těchto možností, abyste zahájili převzetí služeb při selhání skupiny clusteru SAP <SID> z uzlu clusteru A do uzlu clusteru B:

    • Správce clusteru s podporou převzetí služeb při selhání
    • PowerShell clusteru s podporou převzetí služeb při selhání
    $SAPSID = "PR1"     # SAP <SID>
    
    $SAPClusterGroup = "SAP $SAPSID"
    Move-ClusterGroup -Name $SAPClusterGroup
    
    
  2. Restartujte uzel clusteru A v hostovaném operačním systému Windows. Tím se zahájí automatické převzetí služeb při selhání skupiny clusteru SAP <SID> z uzlu A na uzel B.

  3. Restartujte uzel clusteru A z webu Azure Portal. Tím se zahájí automatické převzetí služeb při selhání skupiny clusteru SAP <SID> z uzlu A na uzel B.

  4. Restartujte uzel clusteru A pomocí Azure PowerShellu. Tím se zahájí automatické převzetí služeb při selhání skupiny clusteru SAP <SID> z uzlu A na uzel B.

  5. Ověření

    • Po převzetí služeb při selhání ověřte, že skupina clusteru SAP <SID> běží na uzlu clusteru B.

      Obrázek 8: Ve Správci clusteru s podporou převzetí služeb při selhání běží skupina clusteru SAP <SID> na uzlu clusteru B

      Ve Správci clusteru s podporou převzetí služeb při selhání je skupina clusteru SAP <SID> spuštěná na uzlu clusteru B.

    • Po převzetí služeb při selhání ověřte, že je sdílený disk nyní připojený k uzlu clusteru B.

    • Po převzetí služeb při selhání ověřte, že siOS DataKeeper replikuje data ze zdrojové jednotky svazku S na uzlu clusteru B na cílovou jednotku svazku S na uzlu clusteru A.

      Obrázek 9: SiOS DataKeeper replikuje místní svazek z uzlu clusteru B do uzlu clusteru A

      SiOS DataKeeper replikuje místní svazek z uzlu clusteru B do uzlu clusteru A.