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

Sistema operativo Windows Windows

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

La documentazione non copre il livello del database.

Prerequisiti

Prima di iniziare l'installazione, esaminare 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 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 Nome host Indirizzo IP statico Set di disponibilità SkuName disco
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 di cluster ASCS pr1-ascscl 10.0.0.43 n/d
Nome di rete di cluster ERS (solo per ERS2) pr1-erscl 10.0.0.44 n/d

Distribuzione SAP nelle zone di disponibilità di Azure

Ruolo nome host Nome host Indirizzo IP statico Zona di disponibilità SkuName disco
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 di cluster ASCS pr1-ascscl 10.0.0.43 n/d
Nome di rete di 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

Gruppo di posizionamento di prossimità di Azure non è necessario per il disco condiviso di Azure. Tuttavia, per la distribuzione SAP con PPG, attenersi alle 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 l'archiviazione Premium_ZRS alle macchine virtuali che condividono un disco.

Creare il bilanciamento del carico interno di Azure

Durante la configurazione della macchina virtuale, è possibile creare o selezionare il servizio di bilanciamento del carico esistente 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 bilanciamento del carico interno standard per la configurazione a disponibilità elevata di SAP ASCS/SCS in Windows, seguire queste linee guida.

  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<N. istanza> per ASCS]
      • Intervallo: 5
      • Soglia probe: 2
    • Timeout di inattività (minuti): 30
    • Selezionare "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<N. istanza> per la porta probe di integrità ERS2), come descritto nel punto 1 e 3.

Nota

La proprietà di configurazione del probe di integrità numberOfProbes, altrimenti nota nel portale come "Soglia non integra", non viene rispettata. Per controllare il numero di probe consecutivi riusciti o non riusciti, impostare la proprietà "probeThreshold" su 2. Non è attualmente possibile impostare questa proprietà usando il portale di Azure, quindi usare l’interfaccia della riga di comando di Azure o il comando di PowerShell.

Nota

Se vengono inserite macchine virtuali senza indirizzi IP pubblici nel pool back-end di Load Balancer Standard interno ad Azure (nessun indirizzo IP pubblico), non sarà presente alcuna connettività Internet in uscita, a meno che non venga eseguita una configurazione aggiuntiva per consentire il routing a endpoint pubblici. Per informazioni dettagliate su come ottenere la connettività in uscita, vedere Connettività degli endpoint pubblici per le macchine virtuali usando Load Balancer Standard di Azure negli scenari a 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 Resource Manager creerà due macchine virtuali Windows 2019 o 2016, creerà un disco condiviso di Azure e si connetterà alle macchine virtuali. Verrà anche creato e configurato il bilanciamento del carico interno di Azure. Per informazioni dettagliate, vedere il modello di Resource Manager.

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

Azure Load Balancer può chiudere le connessioni, se queste sono inattive per un periodo e superano il timeout di inattività. I processi di lavoro SAP aprono le connessioni 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 avere 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à di cluster di failover Windows

Eseguire il comando seguente 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 la sua esecuzione in Azure e, come opzione predefinita per l'IP di gestione del cluster, userà 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 Nuove funzionalità dei cluster di failover Windows Server 2019 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 del cloud cluster

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

Eseguire il comando seguente 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 rappresentano un buon compromesso. Sono abbastanza resilienti, ma forniscono anche un 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 il comando seguente in uno dei nodi del cluster. Sarà necessario modificare i valori per il gruppo di risorse, l'area di Azure, SAPSID 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 disco numero 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 funzionante di Windows Server Failover Clustering 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 per creare le 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 SIOS per i requisiti di .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.

    Programma di installazione SIOS

    Figura 31: Prima schermata dell'installazione di SIOS DataKeeper

    Prima schermata dell'installazione di SIOS DataKeeper

  2. Nella finestra di dialogo selezionare .

    Figura 32: DataKeeper segnala che un servizio verrà disabilitato

    DataKeeper segnala che un servizio verrà disabilitato

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

    Figura 33: Selezione dell'utente per SIOS DataKeeper

    Selezione dell'utente per SIOS DataKeeper

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

    Figura 34: Specificare il nome utente di dominio e la password per l'installazione di SIOS DataKeeper

    Specificare 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.

    Figura 35: Specificare la chiave di licenza di SIOS DataKeeper

    Specificare la chiave di licenza di 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).

    Figura 36: Strumento di configurazione e gestione di SIOS DataKeeper

    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.

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

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

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

    Figura 38: Creare un processo di replica

    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.

    Figura 39: Definire il nome del processo di replica

    Definire il nome del processo di replica

    Figura 40: Definire i dati di base per il nodo che deve essere il nodo di origine corrente

    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.

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

    Definire il nome, l'indirizzo TCP/IP e un 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.

    Figura 42: Definire i dettagli della replica

    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.

    Figura 43: Selezionare Yes per impostare il volume replicato come volume del cluster

    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.

    Figura 44: Il mirroring sincrono di DataKeeper per il disco condiviso di SAP ASCS/SCS è attivo

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

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

    Figura 45: Gestione cluster di failover visualizza il disco replicato da DataKeeper

    Gestione cluster di failover visualizza il disco replicato da DataKeeper

Passaggi successivi