Instalowanie oprogramowania SAP NetWeaver HA w klastrze trybu failover systemu Windows i dysku udostępnionym dla wystąpienia sap ASCS/SCS na platformie Azure

W tym artykule opisano sposób instalowania i konfigurowania systemu SAP o wysokiej dostępności na platformie Azure przy użyciu klastra trybu failover systemu Windows Server i udostępnionego dysku klastra na potrzeby klastrowania wystąpienia sap ASCS/SCS. Zgodnie z opisem w przewodniku po architekturze: Klaster wystąpienia SAP ASCS/SCS w klastrze trybu failover systemu Windows przy użyciu udostępnionego dysku klastra, istnieją dwie alternatywy dla dysku udostępnionego klastra:

Wymagania wstępne

Przed rozpoczęciem instalacji przejrzyj następujące dokumenty:

W tym artykule nie opisano konfiguracji systemu DBMS, ponieważ konfiguracje różnią się w zależności od używanego systemu DBMS. Zakładamy, że problemy związane z wysoką dostępnością w systemie DBMS są rozwiązywane z funkcjami, które są obsługiwane przez różnych dostawców systemu DBMS dla platformy Azure. Przykłady to Zawsze włączone lub dublowanie bazy danych dla baz danych SQL Server i Oracle Data Guard dla baz danych Oracle. Scenariusze wysokiej dostępności dla systemu DBMS nie zostały omówione w tym artykule.

Nie ma żadnych specjalnych zagadnień, gdy różne usługi DBMS współdziałają z klastrowaną konfiguracją sap ASCS lub SCS na platformie Azure.

Uwaga

Procedury instalacji systemów SAP NetWeaver ABAP, systemów Java i ABAP+Java są prawie identyczne. Najważniejszą różnicą jest to, że system SAP ABAP ma jedno wystąpienie usługi ASCS. System SAP Java ma jedno wystąpienie SCS. System SAP ABAP+Java ma jedno wystąpienie usługi ASCS i jedno wystąpienie scS uruchomione w tej samej grupie klastra trybu failover firmy Microsoft. Wszelkie różnice instalacji dla każdego stosu instalacji oprogramowania SAP NetWeaver są jawnie wymienione. Można założyć, że pozostałe kroki są takie same.

Instalowanie oprogramowania SAP przy użyciu wystąpienia usługi ASCS/SCS o wysokiej dostępności

Ważne

Jeśli używasz protokołu SIOS do prezentowania dysku udostępnionego, nie umieszczaj pliku stronicowania na woluminach dublowanych usługi SIOS DataKeeper. Możesz pozostawić plik strony na dysku tymczasowym D maszyny wirtualnej platformy Azure, która jest domyślna. Jeśli jeszcze go nie ma, przenieś plik stronicowania systemu Windows na dysk D maszyny wirtualnej platformy Azure.

Instalowanie oprogramowania SAP przy użyciu wystąpienia usługi ASCS/SCS o wysokiej dostępności obejmuje następujące zadania:

  • Utwórz nazwę hosta wirtualnego dla klastrowanego wystąpienia sap ASCS/SCS.
  • Zainstaluj oprogramowanie SAP w pierwszym węźle klastra.
  • Zmodyfikuj profil SAP wystąpienia usługi ASCS/SCS.
  • Dodaj port sondy.
  • Otwórz port sondy zapory systemu Windows.

Tworzenie nazwy hosta wirtualnego dla klastrowanego wystąpienia sap ASCS/SCS

  1. W Menedżerze systemu Windows DNS utwórz wpis DNS dla nazwy hosta wirtualnego wystąpienia usługi ASCS/SCS.

    Ważne

    Adres IP przypisany do nazwy hosta wirtualnego wystąpienia usługi ASCS/SCS musi być taki sam jak adres IP przypisany do usługi Azure Load Balancer.

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

    Definiowanie wpisu DNS dla nazwy wirtualnej klastra SAP ASCS/SCS i adresu TCP/IP

  2. Jeśli używasz nowego serwera replikacji enqueue SAP 2, który jest również wystąpieniem klastra, należy również zarezerwować w systemie DNS nazwę hosta wirtualnego dla ERS2.

    Ważne

    Adres IP przypisany do nazwy hosta wirtualnego wystąpienia usługi ERS2 musi być drugim adresem IP przypisanym do usługi Azure Load Balancer.

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

    Definiowanie wpisu DNS dla nazwy wirtualnej klastra SAP ERS2 i adresu TCP/IP

  3. Aby zdefiniować adres IP przypisany do nazwy hosta wirtualnego, wybierz pozycję Domena menedżera>DNS.

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

    Nowa nazwa wirtualna i adres TCP/IP dla konfiguracji klastra SAP ASCS/SCS

Instalowanie pierwszego węzła klastra SAP

  1. Wykonaj pierwszą opcję węzła klastra w węźle klastra A. Wybierz:

    • System ABAP: numer wystąpienia usługi ASCS 00
    • System Java: wystąpienie scS numer 01
    • ABAP+System Java: numer wystąpienia usługi ASCS 00 i wystąpienie scS numer 01

    Ważne

    Należy pamiętać, że konfiguracja w regułach wewnętrznego równoważenia obciążenia modułu równoważenia obciążenia platformy Azure (w przypadku korzystania z jednostki SKU w warstwie Podstawowa) i wybranych numerów wystąpień SAP musi być zgodna.

  2. Postępuj zgodnie z opisaną procedurą instalacji systemu SAP. Upewnij się, że w opcji rozpocznij instalację "Pierwszy węzeł klastra", aby wybrać opcję "Dysk udostępniony klastra" jako opcję konfiguracji.

Napiwek

W dokumentacji instalacji oprogramowania SAP opisano sposób instalowania pierwszego węzła klastra USŁUGI ASCS/SCS.

Modyfikowanie profilu SAP wystąpienia usługi ASCS/SCS

Jeśli masz serwer replikacji w kolejce 1, dodaj parametr enque/encni/set_so_keepalive profilu SAP zgodnie z poniższym opisem. Parametr profilu uniemożliwia zamykanie połączeń między procesami roboczymi SAP a serwerem kolejki, gdy są one bezczynne zbyt długo. Parametr SAP nie jest wymagany dla wersji ERS2.

  1. Dodaj ten parametr profilu do profilu wystąpienia sap ASCS/SCS, jeśli jest używany protokół ERS1.

    enque/encni/set_so_keepalive = true
    

    W przypadku obu systemów ERS1 i ERS2 upewnij się, że keepalive parametry systemu operacyjnego są ustawione zgodnie z opisem w notatce SAP 1410736.

  2. Aby zastosować zmiany parametrów profilu SAP, uruchom ponownie wystąpienie SAP ASCS/SCS.

Dodawanie portu sondy

Użyj funkcji sondy wewnętrznego modułu równoważenia obciążenia, aby cała konfiguracja klastra działała z usługą Azure Load Balancer. Wewnętrzny moduł równoważenia obciążenia platformy Azure zwykle dystrybuuje obciążenie przychodzące równomiernie między uczestniczącymi maszynami wirtualnymi.

Jednak nie będzie to działać w niektórych konfiguracjach klastra, ponieważ tylko jedno wystąpienie jest aktywne. Drugie wystąpienie jest pasywne i nie może zaakceptować żadnego z obciążeń. Funkcja sondy pomaga, gdy wewnętrzny moduł równoważenia obciążenia platformy Azure wykrywa, które wystąpienie jest aktywne, i dotyczy tylko aktywnego wystąpienia.

Ważne

W tej przykładowej konfiguracji parametr ProbePort ma ustawioną wartość 620Nr. W przypadku wystąpienia sap ASCS o numerze 00 jest to 620 00. Musisz dostosować konfigurację tak, aby odpowiadała numerom wystąpień sap i identyfikatorowi SID systemu SAP.

Aby dodać port sondy, uruchom ten moduł programu PowerShell na jednej z maszyn wirtualnych klastra:

  • W przypadku wystąpienia usługi SAP ASC/SCS

    Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62000
    
  • W przypadku korzystania z usługi ERS2, która jest klastrowana. Nie ma potrzeby konfigurowania portu sondy dla usługi ERS1, ponieważ nie jest ona klastrowana.

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

Kod funkcji Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource wygląda następująco:

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

Otwieranie portu sondy zapory systemu Windows

Otwórz port sondy zapory systemu Windows w obu węzłach klastra. Użyj następującego skryptu, aby otworzyć port sondy zapory systemu Windows. Zaktualizuj zmienne programu PowerShell dla środowiska.
Jeśli używasz protokołu ERS2, musisz również otworzyć port zapory dla portu 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

Instalowanie wystąpienia bazy danych

Aby zainstalować wystąpienie bazy danych, postępuj zgodnie z procesem opisanym w dokumentacji instalacji oprogramowania SAP.

Instalowanie drugiego węzła klastra

Aby zainstalować drugi klaster, wykonaj kroki opisane w przewodniku instalacji oprogramowania SAP.

Instalowanie podstawowego serwera aplikacji SAP

Zainstaluj wystąpienie <podstawowego serwera aplikacji (PAS) SID-di-0> na maszynie wirtualnej, która została wyznaczona do hostowania PAS. Nie ma żadnych zależności na platformie Azure. W przypadku korzystania z usługi SIOS nie ma żadnych ustawień specyficznych dla usługi DataKeeper.

Instalowanie dodatkowego serwera aplikacji SAP

Zainstaluj dodatkowy serwer aplikacji SAP (AAS) na wszystkich maszynach wirtualnych wyznaczonych do hostowania wystąpienia programu SAP Application Server.

Testowanie trybu failover wystąpienia SAP ASCS/SCS

W przypadku opisanych testów trybu failover przyjęto założenie, że usługa SAP ASCS jest aktywna w węźle A.

  1. Sprawdź, czy system SAP może pomyślnie przejść w tryb failover z węzła A do węzła B Wybierz jedną z tych opcji, aby zainicjować tryb failover <grupy klastra SAP SID> z węzła klastra A do węzła klastra B:

    • Menedżer klastra trybu failover
    • Klaster trybu failover PowerShell
    $SAPSID = "PR1"     # SAP <SID>
    
    $SAPClusterGroup = "SAP $SAPSID"
    Move-ClusterGroup -Name $SAPClusterGroup
    
    
  2. Uruchom ponownie węzeł klastra A w systemie operacyjnym gościa systemu Windows. Spowoduje to zainicjowanie automatycznego przejścia w tryb failover grupy klastra IDENTYFIKATORÓW SID> SYSTEMU SAP <z węzła A do węzła B.

  3. Uruchom ponownie węzeł klastra A z witryny Azure Portal. Spowoduje to zainicjowanie automatycznego przejścia w tryb failover grupy klastra IDENTYFIKATORÓW SID> SYSTEMU SAP <z węzła A do węzła B.

  4. Uruchom ponownie węzeł klastra A przy użyciu programu Azure PowerShell. Spowoduje to zainicjowanie automatycznego przejścia w tryb failover grupy klastra IDENTYFIKATORÓW SID> SYSTEMU SAP <z węzła A do węzła B.

  5. Weryfikacja

    • Po przejściu w tryb failover sprawdź, czy grupa klastra IDENTYFIKATORÓW SID SAP <> jest uruchomiona w węźle klastra B.

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

      W Menedżerze klastra trybu failover grupa klastra IDENTYFIKATORÓW SID> SAP <jest uruchomiona w węźle klastra B

    • Po przejściu w tryb failover sprawdź, czy dysk udostępniony jest teraz zainstalowany w węźle klastra B.

    • Po przejściu w tryb failover, jeśli używasz protokołu SIOS, sprawdź, czy usługa SIOS DataKeeper replikuje dane ze źródłowego dysku woluminu S w węźle klastra B do docelowego dysku woluminu S w węźle klastra A.

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

      Usługa SIOS DataKeeper replikuje wolumin lokalny z węzła klastra B do węzła klastra A