Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come installare e configurare un sistema SAP a disponibilità elevata in Azure usando un cluster di failover di Windows Server e un disco condiviso del cluster per il clustering di un'istanza di SAP ASCS/SCS. Come descritto in Guida architettura: Eseguire il cluster di un'istanza ASCS/SCS SAP su un cluster di failover di Windows usando un disco condiviso del cluster, ci sono due alternative per il disco condiviso del cluster:
Uso SIOS DataKeeper Cluster Edition per creare una risorsa di archiviazione con mirroring che simula un disco condiviso in cluster
Prerequisiti
Prima di iniziare l'installazione, esaminare questi documenti:
Architecture guide: Cluster an SAP ASCS/SCS instance on a Windows failover cluster by using a cluster shared disk(Guida all'architettura: clustering di un'istanza ASCS/SCS di SAP in un cluster di failover Windows che usa un disco condiviso del cluster)
In questo articolo non viene trattata la configurazione del sistema DBMS perché varia a seconda del sistema DBMS usato. Si presuppone che i problemi di disponibilità elevata del sistema DBMS vengano risolti con le funzionalità supportate dai diversi fornitori di sistemi DBMS per Azure, Gli esempi includono Always On o il mirroring dei database per SQL Server, e Oracle Data Guard per i database Oracle. Gli scenari di disponibilità elevata per DBMS non sono trattati in questo articolo.
Non esistono particolari considerazioni per il caso in cui servizi DBMS differenti interagiscano con una configurazione ASCS o SCS di SAP in cluster in Azure.
Nota
La procedura di installazione dei sistemi SAP NetWeaver ABAP, Java e ABAP + Java è praticamente identica. La differenza principale è che un sistema SAP ABAP ha un'istanza di ASCS. Il sistema SAP Java ha un'istanza di SCS. Il sistema SAP ABAP + Java ha un'istanza di ASCS e un'istanza di SCS in esecuzione nello stesso gruppo cluster di failover Microsoft. Eventuali differenze di installazione per ogni stack di installazione di SAP NetWeaver verranno indicate in modo esplicito. È possibile presupporre che il resto dei passaggi sia lo stesso.
Installare SAP con un'istanza ASCS/SCS a disponibilità elevata
Importante
Se si usa SIOS per presentare il disco condiviso, non posizionare il file di pagina nei volumi con mirroring SIOS DataKeeper. È possibile lasciare il file di pagina nell'unità temporanea D: di una macchina virtuale di Azure, ovvero l'impostazione predefinita. Se non è già presente, spostare il file di paging di Windows nell'unità D: della macchina virtuale di Azure.
L'installazione di SAP con un'istanza di ASCS/SCS a disponibilità elevata prevede queste attività:
- Creare un nome host virtuale per l'istanza ASCS/SCS di SAP in cluster.
- Installare SAP nel primo nodo del cluster.
- Modificare il profilo SAP dell'istanza di ASCS/SCS.
- Aggiungere una porta probe.
- Apri la porta di sondaggio di Windows Firewall.
Creare un nome host virtuale per l'istanza ASCS/SCS di SAP in cluster
In Gestione DNS di Windows, creare una voce DNS per il nome host virtuale dell'istanza ASCS/SCS. Per esempio:
Definire la voce DNS per il nome virtuale del cluster SAP ASCS/SCS e l'indirizzo TCP/IP
Importante
L'indirizzo IP assegnato al nome host virtuale dell'istanza di ASCS/SCS deve corrispondere all'indirizzo IP assegnato ad Azure Load Balancer.
Se si utilizza il nuovo SAP Enqueue Replication Server 2, che è anche un'istanza clusterizzata, è necessario riservare anche in DNS un nome host virtuale per ERS2.
Importante
L'indirizzo IP assegnato al nome host virtuale dell'istanza di ERS2 deve essere il secondo indirizzo IP assegnato ad Azure Load Balancer.
Definire la voce DNS per il nome virtuale del cluster SAP ERS2 e l'indirizzo TCP/IP
Per definire l'indirizzo IP assegnato al nome host virtuale in Gestione DNS:
Espandere la zona.
Aprire la voce necessaria per definire l'indirizzo IP.
Nuovo nome virtuale e indirizzo TCP/IP per la configurazione del cluster SAP ASCS/SCS
Installare il primo nodo del cluster SAP
Eseguire l'opzione del primo nodo di cluster sul nodo A del cluster. Selezionare:
- Per il sistema ABAP: ASCS numero di istanza 00
- Per il sistema Java: SCS numero di istanza 01
- Per il sistema ABAP + Java: ASCS numero di istanza 00 e SCS numero di istanza 01
Importante
La configurazione nelle regole di bilanciamento del carico interno del servizio di bilanciamento del carico di Azure (se si usa uno SKU Basic) e i numeri di istanza SAP selezionati devono corrispondere.
Seguire la procedura di installazione descritta da SAP. Assicurarsi che nell'opzione di avvio dell'installazione in "Primo nodo del cluster" sia selezionato "Disco condiviso cluster" come opzione di configurazione.
Suggerimento
La documentazione di installazione di SAP descrive come installare il primo nodo del cluster ASCS/SCS.
Modificare il profilo SAP dell'istanza di ASCS/SCS
Se si dispone di Enqueue Replication Server 1, aggiungere il parametro enque/encni/set_so_keepalivedel profilo SAP . Questo parametro impedisce la chiusura delle connessioni tra i processi di lavoro SAP e il server di accodamento quando rimangono inattivi per un tempo eccessivo. Il parametro SAP non è necessario per ERS2.
Aggiungere questo parametro di profilo al profilo di istanza di SAP ASCS/SCS, se si usa ERS1.
enque/encni/set_so_keepalive = TRUEPer ERS1 e ERS2, assicurarsi che i parametri del
keepalivesistema operativo siano impostati come descritto in SAP Note 1410736.Per applicare le modifiche al parametro del profilo SAP, riavviare l'istanza di SAP ASCS/SCS.
Aggiungere una porta probe
Usare la funzionalità probe del load balance interno per il corretto funzionamento della configurazione del cluster con Azure Load Balancer. Il servizio di bilanciamento del carico interno di Azure distribuisce in genere il carico di lavoro in ingresso equamente tra le macchine virtuali partecipanti.
Tuttavia, la distribuzione del carico di lavoro non funziona in alcune configurazioni del cluster perché è attiva una sola istanza. L'altra istanza è passiva e non può accettare nessun carico di lavoro. Una funzionalità probe aiuta quando il servizio di bilanciamento del carico interno di Azure rileva quale istanza è attiva e ha come destinazione solo l'istanza attiva.
Importante
In questa configurazione di esempio, ProbePort è impostato su 620Nr. Per l'istanza di SAP ASCS con numero 00,** è 62000. È necessario modificare la configurazione in modo che corrisponda ai numeri di istanza SAP e al SID SAP.
Per aggiungere una porta probe, eseguire questo modulo di PowerShell in una delle macchine virtuali del cluster:
Per l'istanza di SAP ASC/SCS
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62000
Se si usa ERS2, che è un sistema a cluster. Non è necessario configurare la porta del probe per ERS1, perché non è in cluster.
Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource -SAPSID SID -ProbePort 62001 -IsSAPERSClusteredInstance $True
Il codice per la funzione Set-AzureLoadBalancerHealthCheckProbePortOnSAPClusterIPResource sarà simile al seguente:
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 {}
}
Apri la porta sonda di Windows Firewall
Aprire una porta probe di Windows Firewall in entrambi i nodi del cluster. Usare lo script seguente per aprire una porta probe di Windows Firewall. Aggiornare le variabili PowerShell per l'ambiente. Se si usa ERS2, è necessario aprire la porta del firewall per la porta probe 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
Installare l'istanza del database
Per installare l'istanza del database, seguire il processo descritto nella documentazione sull'installazione di SAP.
Installare il secondo nodo del cluster
Per installare il secondo cluster, seguire la procedura descritta nella guida all'installazione di SAP.
Installare il server applicazioni primario SAP
Installare l'istanza del server applicazioni primario (PAS) <SID>-di-0 nella macchina virtuale designata per ospitare il PAS. Non sono presenti dipendenze in Azure. Se si usa SIOS, non sono presenti impostazioni specifiche di DataKeeper.
Installare il server applicazioni aggiuntivo SAP
Installare un server applicazioni aggiuntivo SAP (AAS) in tutte le macchine virtuali designate per ospitare un'istanza del server applicazioni SAP.
Testare il failover dell'istanza SAP ASCS/SCS
Per i test di failover descritti, si presuppone che SAP ASCS sia attivo nel nodo A.
Verificare che il sistema SAP possa eseguire correttamente il failover dal nodo A al nodo B.
Scegliere una di queste opzioni per avviare un failover del gruppo di cluster <SID> di SAP dal nodo A al nodo B del cluster:
- Gestione cluster di failover
- Cmdlet di PowerShell per cluster di failover
$SAPSID = "PR1" # SAP <SID> $SAPClusterGroup = "SAP $SAPSID" Move-ClusterGroup -Name $SAPClusterGroupRiavviare il nodo A del cluster all'interno del sistema operativo guest Windows. In questo modo viene avviato un failover automatico del gruppo di cluster SAP<SID>dal nodo A al nodo B.
Riavviare il nodo A del cluster dal portale di Azure. In questo modo viene avviato un failover automatico del gruppo di cluster SAP <SID> dal nodo A al nodo B.
Riavviare il nodo A del cluster usando Azure PowerShell. In questo modo viene avviato un failover automatico del gruppo di cluster SAP <SID> dal nodo A al nodo B.
Dopo il failover, verificare che il gruppo di cluster SAP <SID> sia in esecuzione nel nodo B del cluster.
In Gestione cluster di failover, il gruppo di cluster <SID> SAP è in esecuzione nel nodo B del cluster
- Dopo il failover, verificare che il disco condiviso sia ora montato nel nodo B del cluster.
- Dopo il failover, se si usa SIOS, verificare che SIOS DataKeeper stia replicando i dati dall'unità del volume di origine S: nel nodo B del cluster all'unità del volume di destinazione S: nel nodo A del cluster.
SIOS DataKeeper replica il volume locale dal nodo B del cluster al nodo A del cluster