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
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:
- Dischi condivisi di Azure
- Uso di SIOS DataKeeper Cluster Edition per creare una risorsa di archiviazione con mirroring, che simula il disco condiviso in cluster
La documentazione non copre il livello del database.
Prerequisiti
Prima di iniziare l'installazione, esaminare questo articolo:
- 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)
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.
- 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.
- 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.
- 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"
- 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 al 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 address 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
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
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 output # DriveLetter FileSystemLabel FileSystem DriveType HealthStatus OperationalStatus SizeRemaining Size # ----------- --------------- ---------- --------- ------------ ----------------- ------------- ---- # S PR1SAP ReFS Fixed Healthy OK 504.98 GB 511.81 GB
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\}
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.
Installare il software SIOS in entrambi i nodi del cluster.
Prima schermata dell'installazione di SIOS DataKeeper
Nella finestra di dialogo selezionare Sì.
DataKeeper segnala che un servizio verrà disabilitato
Nella finestra di dialogo si consiglia di selezionare Domain or Server account (Account di dominio o server).
Selezione dell'utente per SIOS DataKeeper
Specificare il nome utente dell'account di dominio e la password creati per SIOS DataKeeper.
Specificare il nome utente di dominio e la password per l'installazione di SIOS DataKeeper
Installare la chiave di licenza per l'istanza di SIOS DataKeeper, come illustrato nella figura 35.
Specificare la chiave di licenza di SIOS DataKeeper
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.
Avviare lo strumento di configurazione e gestione di DataKeeper e selezionare il collegamento Connect Server (Connetti server).
Strumento di configurazione e gestione di SIOS DataKeeper
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.
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
Creare il processo di replica tra i due nodi.
Creare un processo di replica
Per la creazione di un processo di replica è disponibile una procedura guidata.
Definire il nome del processo di replica.
Definire il nome del processo di replica
Definire i dati di base per il nodo che deve essere il nodo di origine corrente
Definire il nome, l'indirizzo TCP/IP e un volume del disco del nodo di destinazione.
Definire il nome, l'indirizzo TCP/IP e un volume del disco del nodo di destinazione corrente
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.
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.
Definire i dettagli della replica
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.
Selezionare Sì 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.
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:
Gestione cluster di failover visualizza il disco replicato da DataKeeper