Disponibilità elevata multi-SID dell'istanza SAP ASCS/SCS con Windows Server Failover Clustering e i dischi condivisi in Azure

Sistema operativo Windows Windows

Se si dispone di una distribuzione SAP, usare un servizio di bilanciamento del carico interno per creare una configurazione cluster Windows per istanze di SAP Central Services, ovvero ASCS/SCS.

Questo articolo si concentra sul passaggio da un'installazione di ASCS/SCS singola a una configurazione di SAP multi-SID tramite l'installazione di istanze aggiuntive in cluster ASCS/SCS di SAP in un cluster di Windows Server Failover Clustering (WSFC) con disco condiviso, usando SIOS per simulare il disco condiviso. Al termine di questo processo, verrà configurato un cluster multi-SID di SAP.

Nota

Questa funzionalità è disponibile solo nel modello di distribuzione Azure Resource Manager.

È previsto un limite sul numero di indirizzi IP front-end privati per ogni servizio di bilanciamento del carico interno di Azure.

Il numero massimo di istanze di SAP ASCS/SCS in un cluster WSFC è uguale al numero massimo di indirizzi IP front-end privati per ogni servizio di bilanciamento del carico interno di Azure.

Per informazioni sui limiti del servizio di bilanciamento del carico, vedere "IP front-end privato per ogni servizio di bilanciamento del carico" in Limiti relativi alle reti - Azure Resource Manager.

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Prerequisiti

È già stato configurato un cluster WSFC da usare per una istanza ASCS/SCS di SAP con la condivisione file, come illustrato nella figura seguente.

Istanza di SAP ASCS/SCS a disponibilità elevata

Importante

Il programma di installazione deve soddisfare le condizioni seguenti:

  • Le istanze di SAP ASCS/SCS devono condividere lo stesso cluster WSFC.
  • Ogni SID DBMS deve avere un cluster WSFC dedicato.
  • I server applicazioni SAP che fanno parte di un SID del sistema SAP devono avere proprie VM dedicate.
  • La combinazione di Enqueue Replication Server 1 ed Enqueue Replication Server 2 nello stesso cluster non è supportata.

Architettura multi-SID di SAP ASCS/SCS con disco gestito

L'obiettivo è l'installazione di più istanze cluster di SAP ABAP ASCS o SAP Java SCS nello stesso cluster WSFC, come illustrato di seguito:

Più istanze in cluster di SAP ASCS/SCS in Azure

Per informazioni sui limiti del servizio di bilanciamento del carico, vedere "IP front-end privato per ogni servizio di bilanciamento del carico" in Limiti relativi alle reti - Azure Resource Manager.

Il panorama generale con due sistemi SAP a disponibilità elevata si presenta come segue:

Configurazione a più SID di SAP a disponibilità elevata con due SID di sistema SAP

Preparare l'infrastruttura per uno scenario di multi-SID di SAP

Per preparare l'infrastruttura, è possibile installare un'istanza aggiuntiva di SAP ASCS/SCS con i parametri seguenti:

Nome parametro Valore
SID di SAP ASCS/SCS pr1-lb-ascs
Servizio di bilanciamento del carico interno di SAP DBMS PR5
Nome host virtuale SAP pr5-sap-cl
Indirizzo IP dell'host virtuale di SAP ASCS/SCS (indirizzo IP aggiuntivo del servizio di bilanciamento del carico di Azure) 10.0.0.50
Numero di istanza di SAP ASCS/SCS 50
Porta di probe del servizio di bilanciamento del carico interno per l'istanza aggiuntiva di SAP ASCS/SCS 62350

Nota

Per le istanze nel cluster di SAP ASCS/SCS, ogni indirizzo IP richiede una porta probe univoca. Ad esempio, se un indirizzo IP su un servizio di bilanciamento del carico interno di Azure usa la porta probe 62300, nessun altro indirizzo IP in tale servizio di bilanciamento del carico può usare la porta probe 62300.

Per gli scopi prefissati viene usata la porta probe 62350 perché la porta probe 62300 è già stata riservata.

È possibile installare le istanze aggiuntive di SAP ASCS/SCS nel cluster WSFC esistente con due nodi:

Ruolo macchina virtuale Nome host macchina virtuale Indirizzo IP statico
Primo nodo del cluster per l'istanza di ASCS/SCS pr1-ascs-0 10.0.0.10
Secondo nodo del cluster per l'istanza di ASCS/SCS pr1-ascs-1 10.0.0.9

Creare un nome host virtuale per l'istanza di SAP ASCS/SCS in cluster sul server DNS

È possibile creare una voce DNS per il nome host virtuale dell'istanza di ASCS/SCS usando i parametri seguenti:

Nuovo nome host virtuale di SAP ASCS/SCS Indirizzo IP associato
pr5-sap-cl 10.0.0.50

Il nuovo nome host e l'indirizzo IP vengono visualizzati in Gestore DNS, come illustrato nella schermata seguente:

Elenco di Gestore DNS che evidenzia la voce DNS definita per il nuovo nome virtuale e indirizzo TCP/IP del cluster SAP ASCS/SCS

Nota

Il nuovo indirizzo IP assegnato al nome host virtuale dell'istanza di ASCS/SCS aggiuntiva deve essere lo stesso nuovo indirizzo IP assegnato ad Azure Load Balancer SAP.

In questo scenario, l'indirizzo IP è 10.0.0.50.

Aggiungere un indirizzo IP a un servizio di bilanciamento del carico interno di Azure esistente usando PowerShell

Per creare più istanze di SAP ASCS/SCS nello stesso cluster WSFC, usare PowerShell per aggiungere un indirizzo IP a un servizio di bilanciamento del carico interno di Azure esistente. Ogni indirizzo IP richiede regole di bilanciamento del carico, una porta probe, un pool di indirizzi IP front-end e un pool back-end propri.

Lo script seguente aggiunge un nuovo indirizzo IP a un servizio di bilanciamento del carico esistente. Aggiornare le variabili PowerShell per l'ambiente. Lo script crea tutte le regole di bilanciamento del carico necessarie per tutte le porte SAP ASCS/SCS.


# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>
Clear-Host
$ResourceGroupName = "SAP-MULTI-SID-Landscape"      # Existing resource group name
$VNetName = "pr2-vnet"                        # Existing virtual network name
$SubnetName = "Subnet"                        # Existing subnet name
$ILBName = "pr2-lb-ascs"                      # Existing ILB name                      
$ILBIP = "10.0.0.50"                          # New IP address
$VMNames = "pr2-ascs-0","pr2-ascs-1"          # Existing cluster virtual machine names
$SAPInstanceNumber = 50                       # SAP ASCS/SCS instance number: must be a unique value for each cluster
[int]$ProbePort = "623$SAPInstanceNumber"     # Probe port: must be a unique value for each IP and load balancer

$ILB = Get-AzLoadBalancer -Name $ILBName -ResourceGroupName $ResourceGroupName

$count = $ILB.FrontendIpConfigurations.Count + 1
$FrontEndConfigurationName ="lbFrontendASCS$count"
$LBProbeName = "lbProbeASCS$count"

# Get the Azure virtual network and subnet
$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName

# Add a second front-end and probe configuration
Write-Host "Adding new front end IP Pool '$FrontEndConfigurationName' ..." -ForegroundColor Green
$ILB | Add-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.Id
$ILB | Add-AzLoadBalancerProbeConfig -Name $LBProbeName  -Protocol Tcp -Port $Probeport -ProbeCount 2 -IntervalInSeconds 10  | Set-AzLoadBalancer

# Get a new updated configuration
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Get an updated LP FrontendIpConfig
$FEConfig = Get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

# Add a back-end configuration into an existing ILB
$BackEndConfigurationName  = "backendPoolASCS$count"
Write-Host "Adding new backend Pool '$BackEndConfigurationName' ..." -ForegroundColor Green
$BEConfig = Add-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB | Set-AzLoadBalancer

# Get an updated config
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Assign VM NICs to the back-end pool
$BEPool = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
foreach($VMName in $VMNames){
        $VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName
        $NICName = ($VM.NetworkInterfaceIDs[0].Split('/') | select -last 1)        
        $NIC = Get-AzNetworkInterface -name $NICName -ResourceGroupName $ResourceGroupName                
        $NIC.IpConfigurations[0].LoadBalancerBackendAddressPools += $BEPool
        Write-Host "Assigning network card '$NICName' of the '$VMName' VM to the backend pool '$BackEndConfigurationName' ..." -ForegroundColor Green
        Set-AzNetworkInterface -NetworkInterface $NIC
        #start-AzVM -ResourceGroupName $ResourceGroupName -Name $VM.Name
}


# Create load-balancing rules
$Ports = "445","32$SAPInstanceNumber","33$SAPInstanceNumber","36$SAPInstanceNumber","39$SAPInstanceNumber","5985","81$SAPInstanceNumber","5$SAPInstanceNumber`13","5$SAPInstanceNumber`14","5$SAPInstanceNumber`16"
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName
$FEConfig = get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$BEConfig = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

Write-Host "Creating load balancing rules for the ports: '$Ports' ... " -ForegroundColor Green

foreach ($Port in $Ports) {

        $LBConfigrulename = "lbrule$Port" + "_$count"
        Write-Host "Creating load balancing rule '$LBConfigrulename' for the port '$Port' ..." -ForegroundColor Green

        $ILB | Add-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig  -BackendAddressPool $BEConfig -Probe $HealthProbe -Protocol tcp -FrontendPort  $Port -BackendPort $Port -IdleTimeoutInMinutes 30 -LoadDistribution Default -EnableFloatingIP   
}

$ILB | Set-AzLoadBalancer

Write-Host "Successfully added new IP '$ILBIP' to the internal load balancer '$ILBName'!" -ForegroundColor Green

Dopo l'esecuzione dello script, i risultati vengono visualizzati nel portale di Azure, come illustrato nello screenshot seguente:

Nuovo pool di indirizzi IP front-end nel portale di Azure

Aggiungere dischi ai computer del cluster e configurare il disco con condivisione cluster SIOS

È necessario aggiungere un nuovo disco con condivisione cluster per ogni istanza di SAP ASCS/SCS aggiuntiva. Attualmente, il disco cluster condiviso Windows Server 2012 R2 WSFC viene usato dalla soluzione software SIOS DataKeeper.

Effettua le operazioni seguenti:

  1. Aggiungere un altro disco o più dischi con la stessa dimensione (da sottoporre a striping) su ciascuno dei nodi del cluster e formattarli.
  2. Configurare la replica di archiviazione con SIOS DataKeeper.

Questa procedura presuppone che SIOS DataKeeper sia già stato installato nei computer del cluster WSFC. Se è stato installato, è ora necessario configurare la replica tra le macchine. Il processo viene descritto in dettaglio nel capitolo Installare SIOS DataKeeper Cluster Edition per il disco di condivisione del cluster SAP ASCS/SCS.

Mirroring sincrono di DataKeeper per il nuovo disco condiviso di SAP ASCS/SCS è attivo

Distribuire le macchine virtuali per i server applicazioni SAP e il cluster DBMS

Per completare la preparazione dell'infrastruttura per il secondo sistema SAP, procedere come segue:

  1. Distribuire macchine virtuali dedicate per i server applicazioni SAP e inserire ognuna di esse nel proprio gruppo di disponibilità dedicato.
  2. Distribuire macchine virtuali dedicate per il cluster DBMS e inserire ognuna di esse nel proprio gruppo di disponibilità dedicato.

Installare un sistema multi-SID di SAP NetWeaver

Per una descrizione completa del processo di installazione di un secondo sistema SAP SID2 vedere Installazione della disponibilità elevata di SAP NetWeaver sul cluster di failover di Windows e sul disco condiviso per l'istanza SAP ASCS/SCS.

La procedura di alto livello è la seguente:

  1. Installare SAP con un'istanza di ASCS/SCS a disponibilità elevata.
    In questo passaggio si sta installando SAP con un'istanza di ASCS/SCS a disponibilità elevata nel nodo 1 del cluster WSFC esistente.

  2. Modificare il profilo SAP dell'istanza di ASCS/SCS.

  3. Configurare una porta probe.
    In questo passaggio si sta configurando una porta probe SAP-SID2-IP della risorsa nel cluster SAP tramite PowerShell. Eseguire questa configurazione in uno dei nodi del cluster SAP ASCS/SCS.

  4. Installare l'istanza del database.
    Per installare il secondo nodo del cluster, seguire i passaggi descritti nella guida all'installazione di SAP.

  5. Installare il secondo nodo del cluster.
    In questo passaggio si sta installando SAP con un'istanza di ASCS/SCS a disponibilità elevata nel nodo 2 del cluster WSFC esistente. Per installare il secondo nodo del cluster, seguire i passaggi descritti nella guida all'installazione di SAP.

  6. Aprire le porte di Windows Firewall per l'istanza di SAP ASCS/SCS e la porta del probe.
    In entrambi i nodi del cluster usati per le istanze di SAP ASCS/SCS si stanno aprendo tutte le porte di Windows Firewall usate da SAP ASCS/SCS. Queste porte di istanze SAP ASCS/SCS sono elencate nel capitolo Porte di SAP ASCS/SCS.

    Per un elenco di tutte le altre porte SAP vedere TCP/IP Ports of All SAP Products (Porte TCP/IP di tutti i prodotti SAP).

    Aprire anche la porta probe del servizio di bilanciamento del carico interno di Azure, ovvero 62350, in questo scenario. È descritto in questo articolo.

  7. Installare il server dell'applicazione primario SAP nella nuova macchina virtuale dedicata come descritto nella guida all'installazione SAP.

  8. Installare il server dell'applicazione SAP aggiuntivo nella nuova macchina virtuale dedicata come descritto nella guida all'installazione SAP.

  9. Testare il failover e la replica SIOS dell'istanza di SAP ASCS/SCS.

Passaggi successivi