Preparare l'infrastruttura di Azure per la disponibilità elevata di SAP con un cluster di failover Windows e dischi condivisi per SAP ASCS/SCS

Windows OS Windows

Questo articolo descrive i passaggi da eseguire per preparare l'infrastruttura di Azure per l'installazione e la configurazione di un'istanza DI SAP ASCS/SCS a disponibilità elevata in un cluster di failover Windows usando un disco condiviso del cluster come opzione per il clustering di un'istanza di SAP ASCS. Nella documentazione sono presentate due alternative per il disco condiviso del cluster:

La documentazione non copre il livello del database.

Prerequisiti

Prima di iniziare l'installazione, vedere questo articolo:

Creare le macchine virtuali ASCS

Per il cluster SAP ASCS/SCS distribuire due macchine virtuali nel set di disponibilità di Azure o nelle zone di disponibilità di Azure in base al tipo di distribuzione. Dopo aver distribuito le macchine virtuali:

  • Creare il servizio di bilanciamento del carico interno di Azure per l'istanza di SAP ASCS /SCS.
  • Aggiungere macchine virtuali Windows al dominio di Active Directory.

In base al tipo di distribuzione, i nomi host e gli indirizzi IP dello scenario saranno simili ai seguenti:

Distribuzione SAP nel set di disponibilità di Azure

Ruolo nome host Host name Indirizzo IP statico Set di disponibilità Disk SkuName
Cluster ASCS/SCS del primo nodo del cluster pr1-ascs-10 10.0.0.4 pr1-ascs-avset Premium_LRS
Cluster ASCS/SCS del secondo nodo del cluster pr1-ascs-11 10.0.0.5 pr1-ascs-avset
Nome rete di cluster pr1clust 10.0.0.42(solo per il cluster Win 2016) n/d
Nome di rete del cluster ASCS pr1-ascscl 10.0.0.43 n/d
Nome di rete del cluster ERS (solo per ERS2) pr1-erscl 10.0.0.44 n/d

Distribuzione SAP nelle zone di disponibilità di Azure

Ruolo nome host Host name Indirizzo IP statico Zona di disponibilità Disk SkuName
Cluster ASCS/SCS del primo nodo del cluster pr1-ascs-10 10.0.0.4 AZ01 Premium_ZRS
Cluster ASCS/SCS del secondo nodo del cluster pr1-ascs-11 10.0.0.5 AZ02
Nome rete di cluster pr1clust 10.0.0.42(solo per il cluster Win 2016) n/d
Nome di rete del cluster ASCS pr1-ascscl 10.0.0.43 n/d
Nome di rete del cluster ERS (solo per ERS2) pr1-erscl 10.0.0.44 n/d

I passaggi indicati nel documento rimangono invariati per entrambi i tipi di distribuzione. Tuttavia, se il cluster è in esecuzione nel set di disponibilità, è necessario distribuire l'archiviazione con ridondanza locale per il disco condiviso Premium di Azure (Premium_LRS) e se il cluster è in esecuzione nella zona di disponibilità, distribuire LRS per il disco condiviso Premium di Azure (Premium_ZRS).

Nota

Il gruppo di posizionamento di prossimità di Azure non è necessario per il disco condiviso di Azure. Tuttavia, per la distribuzione SAP con PPG, seguire le linee guida seguenti:

  • Se si usa PPG per il sistema SAP distribuito in un'area, tutte le macchine virtuali che condividono un disco devono far parte dello stesso PPG.
  • Se si usa PPG per il sistema SAP distribuito tra zone come descritto nel documento Gruppi di posizionamento di prossimità con distribuzioni di zona, è possibile collegare Premium_ZRS archiviazione alle macchine virtuali che condividono un disco.

Creare un servizio di bilanciamento del carico interno di Azure

Durante la configurazione della macchina virtuale, è possibile creare o selezionare l'uscita dal servizio di bilanciamento del carico nella sezione Rete. Per l'architettura ENSA1 in Windows, è necessario un solo indirizzo IP virtuale per SAP ASCS/SCS. D'altra parte, l'architettura ENSA2 richiede due indirizzi IP virtuali, uno per SAP ASCS/SCS e un altro per ERS2. Quando si configura un servizio di bilanciamento del carico interno standard per la configurazione a disponibilità elevata di SAP ASCS/SCS in Windows, seguire le linee guida seguenti.

  1. Configurazione IP front-end: creare un indirizzo IP front-end (ad esempio: 10.0.0.43). Selezionare la stessa rete virtuale e la stessa subnet delle macchine virtuali ASCS/ERS.
  2. Pool back-end: creare un pool back-end e aggiungere macchine virtuali ASCS e ERS. In questo esempio le macchine virtuali sono pr1-ascs-10 e pr1-ascs-11.
  3. Regole in ingresso: creare una regola di bilanciamento del carico.
    • Indirizzo IP front-end: selezionare ip front-end
    • Pool back-end: selezionare il pool back-end
    • Controllare "Porte a disponibilità elevata"
    • Protocollo: TCP
    • Probe di integrità: creare un probe di integrità con i dettagli seguenti
      • Protocollo: TCP
      • Porta: [ad esempio: 620<Instance-no.> per ASCS]
      • Intervallo: 5
      • Soglia probe: 2
    • Timeout di inattività (minuti): 30
    • Selezionare "Enable Floating IP" (Abilita IP mobile)
  4. Applicabile solo all'architettura ENSA2: creare un indirizzo IP front-end aggiuntivo (10.0.0.44), una regola di bilanciamento del carico (usare 621<Instance-no.> per la porta probe di integrità ERS2), come descritto nel punto 1 e 3.

Nota

Il numero della proprietà di configurazione del probe di integritàOfProbes, altrimenti noto come "Soglia non integra" nel portale, non viene rispettato. Per controllare il numero di probe consecutivi riusciti o non riusciti, impostare la proprietà "probeThreshold" su 2. Attualmente non è possibile impostare questa proprietà usando portale di Azure, quindi usare l'interfaccia della riga di comando di Azure o il comando di PowerShell.

Importante

Un indirizzo IP mobile non è supportato in una configurazione IP secondaria della scheda di interfaccia di rete (NIC) in scenari di bilanciamento del carico. Per informazioni dettagliate, vedere Limitazioni di Azure Load Balancer. Se è necessario un altro indirizzo IP per la macchina virtuale, distribuire una seconda scheda di interfaccia di rete.

Nota

Quando le macchine virtuali senza indirizzi IP pubblici vengono inserite nel pool back-end di un servizio di bilanciamento del carico Di Azure Standard (nessun indirizzo IP pubblico), non ci sarà connettività Internet in uscita, a meno che non si esegua una configurazione aggiuntiva per consentire il routing agli endpoint pubblici. Per informazioni dettagliate su come ottenere la connettività in uscita, vedere Connettività degli endpoint pubblici per le macchine virtuali con Azure Load Balancer Standard in scenari di disponibilità elevata SAP.

Suggerimento

Con il modello di Azure Resource Manager per WSFC per l'istanza di SAP ASCS/SCS con disco condiviso di Azure, è possibile automatizzare la preparazione dell'infrastruttura usando il disco condiviso di Azure per un SID SAP con ERS1.
Il modello di Azure RESOURCE Manager creerà due macchine virtuali Windows 2019 o 2016, creerà un disco condiviso di Azure e si connetterà alle macchine virtuali. Il servizio di bilanciamento del carico interno di Azure verrà creato e configurato anche. Per informazioni dettagliate, vedere il modello di Resource Manager.

Aggiungere voci del Registro di sistema in entrambi i nodi del cluster dell'istanza di ASCS/SCS

Azure Load Balancer può chiudere le connessioni, se le connessioni sono inattive per un periodo e superano il timeout di inattività. Il lavoro SAP elabora connessioni aperte al processo di accodamento SAP non appena deve essere inviata la prima richiesta di accodamento/rimozione dalla coda. Per evitare di interrompere queste connessioni, modificare i valori KeepAliveTime e KeepAliveInterval TCP/IP in entrambi i nodi del cluster. Se si usa ERS1, è anche necessario aggiungere parametri del profilo SAP, come descritto più avanti in questo articolo. Le voci del Registro di sistema seguenti devono essere modificate in entrambi i nodi del cluster:

  • KeepAliveTime
  • KeepAliveInterval
Percorso Nome variabile Tipo variabile Valore Documentazione
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters KeepAliveTime REG_DWORD (decimale) 120000 KeepAliveTime
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters KeepAliveInterval REG_DWORD (decimale) 120000 KeepAliveInterval

Per applicare le modifiche, riavviare entrambi i nodi del cluster.

Aggiungere le macchine virtuali Windows al dominio

Dopo aver assegnato indirizzi IP statici alle macchine virtuali, aggiungere le macchine virtuali al dominio.

Installare e configurare il cluster di failover di Windows

Installare la funzionalità cluster di failover di Windows

Eseguire questo comando in uno dei nodi del cluster:

# Hostnames of the Win cluster for SAP ASCS/SCS
$SAPSID = "PR1"
$ClusterNodes = ("pr1-ascs-10","pr1-ascs-11")
$ClusterName = $SAPSID.ToLower() + "clust"

# Install Windows features.
# After the feature installs, manually reboot both nodes
Invoke-Command $ClusterNodes {Install-WindowsFeature Failover-Clustering, FS-FileServer -IncludeAllSubFeature -IncludeManagementTools }

Al termine dell'installazione della funzionalità, riavviare entrambi i nodi del cluster.

Testare e configurare il cluster di failover di Windows

In Windows 2019 il cluster riconoscerà automaticamente che è in esecuzione in Azure e come opzione predefinita per l'IP di gestione del cluster, usa il nome di rete distribuita. Pertanto, usa uno qualsiasi dei nodi del cluster indirizzi IP locali. Di conseguenza, non è necessario un nome di rete dedicato (virtuale) per il cluster e non è necessario configurare questo indirizzo IP in Azure Internal Load Balancer.

Per altre informazioni, vedere Windows Server 2019 Failover Clustering New features Eseguire questo comando in uno dei nodi del cluster:

# Hostnames of the Win cluster for SAP ASCS/SCS
$SAPSID = "PR1"
$ClusterNodes = ("pr1-ascs-10","pr1-ascs-11")
$ClusterName = $SAPSID.ToLower() + "clust"

# IP adress for cluster network name is needed ONLY on Windows Server 2016 cluster
$ClusterStaticIPAddress = "10.0.0.42"

# Test cluster
Test-Cluster –Node $ClusterNodes -Verbose

$ComputerInfo = Get-ComputerInfo

$WindowsVersion = $ComputerInfo.WindowsProductName

if($WindowsVersion -eq "Windows Server 2019 Datacenter"){
    write-host "Configuring Windows Failover Cluster on Windows Server 2019 Datacenter..."
    New-Cluster –Name $ClusterName –Node  $ClusterNodes -Verbose
}elseif($WindowsVersion -eq "Windows Server 2016 Datacenter"){
    write-host "Configuring Windows Failover Cluster on Windows Server 2016 Datacenter..."
    New-Cluster –Name $ClusterName –Node  $ClusterNodes –StaticAddress $ClusterStaticIPAddress -Verbose 
}else{
    Write-Error "Not supported Windows version!"
}

Configurare il quorum cloud del cluster

Quando si usa Windows Server 2016 o 2019, è consigliabile configurare Controllo cloud di Azure come quorum del cluster.

Eseguire questo comando in uno dei nodi del cluster:

$AzureStorageAccountName = "cloudquorumwitness"
Set-ClusterQuorum –CloudWitness –AccountName $AzureStorageAccountName -AccessKey <YourAzureStorageAccessKey> -Verbose

Ottimizzazione delle soglie del cluster di failover di Windows

Dopo aver installato correttamente il cluster di failover di Windows, è necessario modificare alcune soglie in modo che siano adatte per i cluster distribuiti in Azure. I parametri da modificare sono documentati nel blog Tuning Failover Cluster Network Thresholds (Definire le soglie di rete per il cluster di failover). Supponendo che le due VM che compongono la configurazione del cluster Windows per ASCS/SCS siano nella stessa subnet, modificare i parametri seguenti impostando i valori indicati:

  • SameSubNetDelay = 2000
  • SameSubNetThreshold = 15
  • RouteHistoryLength = 30

Queste impostazioni sono state testate con i clienti e offrono un buon compromesso. Sono abbastanza resilienti, ma forniscono anche failover sufficientemente veloce per le condizioni di errore reali nei carichi di lavoro SAP o negli errori delle macchine virtuali.

Configurare il disco condiviso di Azure

Questa sezione è applicabile solo se si usa il disco condiviso di Azure.

Creare e collegare un disco condiviso di Azure con PowerShell

Eseguire questo comando in uno dei nodi del cluster. Sarà necessario modificare i valori per il gruppo di risorse, l'area di Azure, S piattaforma di strumenti analitici ID e così via.

#############################
# Create Azure Shared Disk
#############################

$ResourceGroupName = "MyResourceGroup"
$location = "MyAzureRegion"
$SAPSID = "PR1"

$DiskSizeInGB = 512
$DiskName = "$($SAPSID)ASCSSharedDisk"

# With parameter '-MaxSharesCount', we define the maximum number of cluster nodes to attach the shared disk
$NumberOfWindowsClusterNodes = 2

# For SAP deployment in availability set, use below storage SkuName
$SkuName = "Premium_LRS"
# For SAP deployment in availability zone, use below storage SkuName
$SkuName = "Premium_ZRS"
   
$diskConfig = New-AzDiskConfig -Location $location -SkuName $SkuName  -CreateOption Empty  -DiskSizeGB $DiskSizeInGB -MaxSharesCount $NumberOfWindowsClusterNodes
$dataDisk = New-AzDisk -ResourceGroupName $ResourceGroupName -DiskName $DiskName -Disk $diskConfig

##################################
## Attach the disk to cluster VMs
##################################
# ASCS Cluster VM1
$ASCSClusterVM1 = "$SAPSID-ascs-10"

# ASCS Cluster VM2
$ASCSClusterVM2 = "$SAPSID-ascs-11"

# Add the Azure Shared Disk to Cluster Node 1
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM1 
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

# Add the Azure Shared Disk to Cluster Node 2
$vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $ASCSClusterVM2
$vm = Add-AzVMDataDisk -VM $vm -Name $DiskName -CreateOption Attach -ManagedDiskId $dataDisk.Id -Lun 0
Update-AzVm -VM $vm -ResourceGroupName $ResourceGroupName -Verbose

Formattare il disco condiviso con PowerShell

  1. Ottenere il numero del disco. Eseguire questi comandi di PowerShell in uno dei nodi del cluster:

    Get-Disk | Where-Object PartitionStyle -Eq "RAW"  | Format-Table -AutoSize 
    # Example output
    # Number Friendly Name     Serial Number HealthStatus OperationalStatus Total Size Partition Style
    # ------ -------------     ------------- ------------ ----------------- ---------- ---------------
    # 2      Msft Virtual Disk               Healthy      Online                512 GB RAW            
    
  2. Formattare il disco. In questo esempio si tratta del numero di disco 2.

    # Format SAP ASCS Disk number '2', with drive letter 'S'
    $SAPSID = "PR1"
    $DiskNumber = 2
    $DriveLetter = "S"
    $DiskLabel = "$SAPSID" + "SAP"
    
    Get-Disk -Number $DiskNumber | Where-Object PartitionStyle -Eq "RAW" | Initialize-Disk -PartitionStyle GPT -PassThru |  New-Partition -DriveLetter $DriveLetter -UseMaximumSize | Format-Volume  -FileSystem ReFS -NewFileSystemLabel $DiskLabel -Force -Verbose
    # Example outout
    # DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining      Size
    # ----------- --------------- ---------- --------- ------------ ----------------- -------------      ----
    # S           PR1SAP          ReFS       Fixed     Healthy      OK                    504.98 GB 511.81 GB
    
  3. Verificare che il disco sia ora visibile come disco del cluster.

    # List all disks
    Get-ClusterAvailableDisk -All
    # Example output
    # Cluster    : pr1clust
    # Id         : 88ff1d94-0cf1-4c70-89ae-cbbb2826a484
    # Name       : Cluster Disk 1
    # Number     : 2
    # Size       : 549755813888
    # Partitions : {\\?\GLOBALROOT\Device\Harddisk2\Partition2\}
    
  4. Registrare il disco nel cluster.

    # Add the disk to cluster 
    Get-ClusterAvailableDisk -All | Add-ClusterDisk
    # Example output  
    # Name           State  OwnerGroup        ResourceType 
    # ----           -----  ----------        ------------ 
    # Cluster Disk 1 Online Available Storage Physical Disk
    

SIOS DataKeeper Cluster Edition per il disco di condivisione del cluster SAP ASCS/SCS

Questa sezione è applicabile solo se si usa il software di terze parti SIOS DataKeeper Cluster Edition per creare un'archiviazione con mirroring che simula il disco condiviso del cluster.

È ora disponibile una configurazione di clustering di failover di Windows Server in Azure. Per installare un'istanza di SAP ASCS/SCS, è necessaria una risorsa disco condiviso. Una delle opzioni consiste nell'usare SIOS DataKeeper Cluster Edition è una soluzione di terze parti che è possibile usare per creare risorse disco condiviso.

L'installazione di SIOS DataKeeper Cluster Edition per il disco di condivisione del cluster SAP ASCS/SCS prevede queste attività:

  • Aggiungere Microsoft .NET Framework, se necessario. Vedere la documentazione di SIOS per i requisiti .NET Framework più aggiornati
  • Installare SIOS DataKeeper
  • Configurare SIOS DataKeeper

Installare SIOS DataKeeper

Installare SIOS DataKeeper Cluster Edition in ogni nodo del cluster. Per creare una risorsa di archiviazione condivisa virtuale con SIOS DataKeeper, creare un mirror sincronizzato e quindi simulare la risorsa di archiviazione condivisa del cluster.

Prima di installare il software SIOS, creare l'utente di dominio DataKeeperSvc.

Nota

Aggiungere l'utente DataKeeperSvc al gruppo Administrators locale in entrambi i nodi del cluster.

  1. Installare il software SIOS in entrambi i nodi del cluster.

    SIOS installer

    Figure 31: First page of the SIOS DataKeeper installation

    Prima pagina dell'installazione di SIOS DataKeeper

  2. Nella finestra di dialogo selezionare .

    Figure 32: DataKeeper informs you that a service will be disabled

    DataKeeper informa che un servizio verrà disabilitato

  3. Nella finestra di dialogo si consiglia di selezionare Domain or Server account (Account di dominio o server).

    Figure 33: User selection for SIOS DataKeeper

    Selezione utente per SIOS DataKeeper

  4. Specificare il nome utente dell'account di dominio e la password creati per SIOS DataKeeper.

    Figure 34: Enter the domain user name and password for the SIOS DataKeeper installation

    Immettere il nome utente di dominio e la password per l'installazione di SIOS DataKeeper

  5. Installare la chiave di licenza per l'istanza di SIOS DataKeeper, come illustrato nella figura 35.

    Figure 35: Enter your SIOS DataKeeper license key

    Immettere il codice di licenza SIOS DataKeeper

  6. Quando richiesto, riavviare la macchina virtuale.

Configurare SIOS DataKeeper

Dopo l'installazione di SIOS DataKeeper su entrambi i nodi, avviare la configurazione. L'obiettivo della configurazione è eseguire la replica di dati sincrona tra i dischi aggiuntivi collegati a ogni macchina virtuale.

  1. Avviare lo strumento di configurazione e gestione di DataKeeper e selezionare il collegamento Connect Server (Connetti server).

    Figure 36: SIOS DataKeeper Management and Configuration tool

    Strumento di configurazione e gestione di SIOS DataKeeper

  2. Inserire il nome o l'indirizzo TCP/IP del primo nodo cui deve connettersi lo strumento di configurazione e gestione; eseguire l'operazione in un altro passaggio per il secondo nodo.

    Figure 37: Insert the name or TCP/IP address of the first node the Management and Configuration tool should connect to, and in a second step, the second node

    Inserire il nome o l'indirizzo TCP/IP del primo nodo a cui deve connettersi lo strumento gestione e configurazione e, in un secondo passaggio, il secondo nodo

  3. Creare il processo di replica tra i due nodi.

    Figure 38: Create a replication job

    Creare un processo di replica

    Per la creazione di un processo di replica è disponibile una procedura guidata.

  4. Definire il nome del processo di replica.

    Figure 39: Define the name of the replication job

    Definire il nome del processo di replica

    Figure 40: Define the base data for the node, which should be the current source node

    Definire i dati di base per il nodo, che deve essere il nodo di origine corrente

  5. Definire il nome, l'indirizzo TCP/IP e un volume del disco del nodo di destinazione.

    Figure 41: Define the name, TCP/IP address, and disk volume of the current target node

    Definire il nome, l'indirizzo TCP/IP e il volume del disco del nodo di destinazione corrente

  6. Definire gli algoritmi di compressione. Nell'esempio è consigliabile comprimere il flusso di replica. Soprattutto in caso di risincronizzazione, la compressione del flusso di replica riduce notevolmente il tempo necessario per l'operazione. La compressione usa le risorse di CPU e RAM di una macchina virtuale. Con l'aumentare del tasso di compressione aumenta anche il volume delle risorse di CPU usate. È possibile modificare questa impostazione in un secondo momento.

  7. Un'altra impostazione da verificare è se la replica viene eseguita in modalità sincrona o asincrona. Per proteggere le configurazioni di SAP ASCS/SCS, è necessario usare la replica sincrona.

    Figure 42: Define replication details

    Definire i dettagli della replica

  8. Definire se il volume replicato dal processo di replica deve essere rappresentato in una configurazione di cluster Windows Server Failover Cluster come disco condiviso. Per la configurazione di SAP ASCS/SCS è necessario scegliere Yes in modo che il cluster di Windows rilevi il volume replicato come disco condiviso che può essere usato come volume del cluster.

    Figure 43: Select Yes to set the replicated volume as a cluster volume

    Selezionare per impostare il volume replicato come volume del cluster

    Dopo aver creato il volume, lo strumento di configurazione e gestione di DataKeeper mostra che il processo di replica è attivo.

    Figure 44: DataKeeper synchronous mirroring for the SAP ASCS/SCS share disk is active

    Il mirroring sincrono di DataKeeper per il disco di condivisione SAP ASCS/SCS è attivo

    Gestione cluster di failover visualizza ora il disco come disco di DataKeeper, come illustrato nella figura 45:

    Figure 45: Failover Cluster Manager shows the disk that DataKeeper replicated

    Gestione cluster di failover mostra il disco replicato da DataKeeper

Passaggi successivi