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:
- Dyski udostępnione platformy Azure
- Używanie usługi SIOS DataKeeper Cluster Edition do tworzenia dublowanego magazynu, który symuluje dysk udostępniony klastrowany
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
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.
Definiowanie wpisu DNS dla nazwy wirtualnej klastra SAP ASCS/SCS i adresu TCP/IP
W przypadku korzystania z nowego serwera replikacji enqueue SAP 2, który jest również wystąpieniem klastra, należy zarezerwować w systemie DNS nazwę hosta wirtualnego dla usługi 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.
Definiowanie wpisu DNS dla nazwy wirtualnej klastra SAP ERS2 i adresu TCP/IP
Aby zdefiniować adres IP przypisany do nazwy hosta wirtualnego, wybierz pozycję Domena menedżera>DNS.
Nowa nazwa wirtualna i adres TCP/IP dla konfiguracji klastra SAP ASCS/SCS
Instalowanie pierwszego węzła klastra SAP
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.
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 nawiązywanie połączeń między procesami roboczymi SAP i serwerem kolejki przed zamknięciem, gdy są bezczynne zbyt długo. Parametr SAP nie jest wymagany dla ERS2.
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.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 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 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 {}
}
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.
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:
- Menadżer klastra trybu failover
- Klaster trybu failover PowerShell
$SAPSID = "PR1" # SAP <SID> $SAPClusterGroup = "SAP $SAPSID" Move-ClusterGroup -Name $SAPClusterGroup
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.
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.
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.
Weryfikacja
Po przejściu w tryb failover sprawdź, czy grupa klastra IDENTYFIKATORÓW SID SAP <> jest uruchomiona w węźle klastra 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.
Usługa SIOS DataKeeper replikuje wolumin lokalny z węzła klastra B do węzła klastra A