Preparación de la infraestructura de Azure para alta disponibilidad de SAP con un clúster de conmutación por error de Windows y un disco compartido para ASCS/SCS de SAP
Windows
Este artículo describe los pasos que debe seguir para preparar la infraestructura de Azure para instalar y configurar una instancia de ASCS/SCS de SAP de alta disponibilidad en un clúster de conmutación por error de Windows mediante el uso de un disco compartido de clúster como una opción de agrupación en clústeres de una instancia de ASCS de SAP. En la documentación se presentan dos alternativas para el disco compartido de clúster:
- Discos compartidos de Azure
- Uso de SIOS DataKeeper Cluster Edition para crear un almacenamiento reflejado, que simule el disco compartido en clúster
La documentación no abarca el nivel de base de datos.
Requisitos previos
Antes de comenzar la instalación, consulte este artículo:
Creación de las máquinas virtuales de ASCS
Para el clúster de ASCS/SCS de SAP, implemente dos máquinas virtuales en el conjunto de disponibilidad de Azure o en las zonas de disponibilidad de Azure según el tipo de implementación que tenga. Una vez implementadas las máquinas virtuales:
- Cree el equilibrador de carga interno de Azure para la instancia de ASCS/SCS de SAP.
- Agregue máquinas virtuales de Windows al dominio de AD.
En función del tipo de implementación, los nombres de host y las direcciones IP del escenario serían las siguientes:
Implementación de SAP en el conjunto de disponibilidad de Azure
Rol de nombre de host | Nombre de host | Dirección IP estática | Conjunto de disponibilidad | SkuName de disco |
---|---|---|---|---|
Primer clúster ASCS/SCS de nodo de clúster | pr1-ascs-10 | 10.0.0.4 | pr1-ascs-avset | Premium_LRS |
Segundo clúster ASCS/SCS de nodo de clúster | pr1-ascs-11 | 10.0.0.5 | pr1-ascs-avset | |
Nombre de red del clúster | pr1clust | 10.0.0.42 (solo para el clúster de Win 2016) | N/D | |
Nombre de red del clúster de ASCS | pr1-ascscl | 10.0.0.43 | N/D | |
Nombre de red del clúster de ERS (solo para ERS2) | pr1-erscl | 10.0.0.44 | N/D |
Implementación de SAP en zonas de disponibilidad de Azure
Rol de nombre de host | Nombre de host | Dirección IP estática | Zona de disponibilidad | SkuName de disco |
---|---|---|---|---|
Primer clúster ASCS/SCS de nodo de clúster | pr1-ascs-10 | 10.0.0.4 | AZ01 | Premium_ZRS |
Segundo clúster ASCS/SCS de nodo de clúster | pr1-ascs-11 | 10.0.0.5 | AZ02 | |
Nombre de red del clúster | pr1clust | 10.0.0.42 (solo para el clúster de Win 2016) | N/D | |
Nombre de red del clúster de ASCS | pr1-ascscl | 10.0.0.43 | N/D | |
Nombre de red del clúster de ERS (solo para ERS2) | pr1-erscl | 10.0.0.44 | N/D |
Los pasos mencionados en el documento siguen siendo los mismos para ambos tipos de implementación. Pero si el clúster se ejecuta en un conjunto de disponibilidad, debe implementar LRS para el disco compartido prémium de Azure (Premium_LRS) y, si el clúster se ejecuta en la zona de disponibilidad, implemente ZRS para el disco compartido prémium de Azure (Premium_ZRS).
Nota
El grupo de selección de ubicación por proximidad de Azure no es necesario para el disco compartido de Azure. Pero para la implementación de SAP con PPG, siga las instrucciones siguientes:
- Si utiliza un grupo con ubicación por proximidad implementado en una región para el sistema SAP, todas las máquinas virtuales que comparten un disco deben formar parte del mismo grupo.
- Si usa un grupo con ubicación por proximidad para el sistema SAP implementado en zonas como se describe en el documento Grupos de selección de ubicación por proximidad con implementaciones zonales, puede asociar almacenamiento Premium_ZRS a máquinas virtuales que comparten un disco.
Creación de una instancia de Azure Internal Load Balancer
Durante la configuración de la máquina virtual, puede crear o seleccionar salir del equilibrador de carga en la sección redes. Para la arquitectura ENSA1 en Windows, solo necesitaría una dirección IP virtual para ASCS/SCS de SAP. Por otro lado, la arquitectura ENSA2 requiere dos direcciones IP virtuales: una para ASCS/SCS de SAP y otra para ERS2. Al configurar un equilibrador de carga interno estándar para la configuración de alta disponibilidad de ASCS/SCS de SAP en Windows, siga las instrucciones siguientes.
- Configuración de IP de front-end: Crear dirección IP de front-end (ejemplo: 10.0.0.43). Seleccione la misma red virtual y subred que las máquinas virtuales ASCS/ERS.
- Grupo de back-end: cree un grupo de back-end y agregue máquinas virtuales ASCS y ERS. En este ejemplo, las máquinas virtuales son pr1-ascs-10 y pr1-ascs-11.
- Reglas de entrada: cree una regla de equilibrio de carga.
- Dirección IP de front-end: selección de IP de front-end
- Grupo de back-end: selección del grupo de back-end
- Comprobación de "Puertos de alta disponibilidad"
- Protocolo: TCP
- Sondeo de estado: cree un sondeo de estado con los detalles siguientes:
- Protocolo: TCP
- Puerto: [por ejemplo: 620<Instance-no.> para ASCS]
- Intervalo: 5
- Umbral de sondeo: 2
- Tiempo de espera de inactividad (minutos): 30
- Active "Habilitar IP flotante"
- Aplicable solo a la arquitectura ENSA2: cree una dirección IP de front-end adicional (10.0.0.44), regla de equilibrio de carga (use 621<Instance-no.> para el puerto de sondeo de estado ERS2), como se describe en el punto 1 y 3.
Nota:
No se respeta la propiedad de configuración del sondeo de estado numberOfProbes, también conocida como "umbral incorrecto" en el Portal. Por lo tanto, para controlar el número de sondeos consecutivos correctos o erróneos, establezca la propiedad "probeThreshold" en 2. Actualmente no es posible establecer esta propiedad mediante Azure Portal, por lo que puede usar la CLI de Azure o el comando de PowerShell.
Nota:
Cuando las máquinas virtuales sin direcciones IP públicas se colocan en el grupo de back-end de una instancia interna de Standard Load Balancer (sin dirección IP pública), no habrá conectividad saliente a Internet, a menos que se realice una configuración adicional para permitir el enrutamiento a puntos de conexión públicos. Para más información sobre cómo conseguir conectividad saliente, consulte Conectividad de punto de conexión público para máquinas virtuales con Azure Standard Load Balancer en escenarios de alta disponibilidad de SAP.
Sugerencia
Con la plantilla de Azure Resource Manager para WSFC para la instancia de ASCS/SCS de SAP con un disco compartido de Azure, puede automatizar la preparación de la infraestructura mediante el uso del disco compartido de Azure para un SID de SAP con ERS1.
La plantilla de Resource Manager de Azure creará dos máquinas virtuales Windows 2019 o 2016, creará un disco compartido de Azure y se conectará a las máquinas virtuales. También se creará y configurará el equilibrador de carga interno de Azure.
Para obtener más información, consulte la plantilla de Resource Manager.
Incorporación de entradas del registro en ambos nodos de la instancia de ASCS/SCS
Azure Load Balancer pueden cerrar conexiones, si las conexiones están inactivas durante un período y superan el tiempo de espera de inactividad. Los proceso de trabajo de SAP abren conexiones con el proceso de puesta en cola de SAP tan pronto como se deba enviar la primera solicitud para poner en cola y para quitar de la cola. Para evitar interrumpir estas conexiones, cambie los valores de KeepAliveTime y KeepAliveInterval de TCP/IP en ambos nodos del clúster. Si usa ERS1, también es necesario agregar parámetros de perfil de SAP, como se describe más adelante en este artículo. Se deben cambiar las siguientes entradas del registro en ambos nodos del clúster:
- KeepAliveTime
- KeepAliveInterval
Ruta de acceso | Nombre de la variable | Tipo de variable | Value | Documentación |
---|---|---|---|---|
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters | KeepAliveTime | REG_DWORD (Decimal) | 120000 | KeepAliveTime |
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters | KeepAliveInterval | REG_DWORD (Decimal) | 120000 | KeepAliveInterval |
Para aplicar los cambios, reinicie ambos nodos del clúster.
Incorporación de las máquinas virtuales de Windows al dominio
Después de asignar direcciones IP estáticas a las máquinas virtuales, agregue las máquinas virtuales al dominio.
Instalación y configuración de un clúster de conmutación por error de Windows
Instalación de la característica del clúster de conmutación por error de Windows
Ejecute este comando en uno de los nodos del clúster:
# 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 }
Una vez completada la instalación de la característica, reinicie ambos nodos del clúster.
Prueba y configuración de un clúster de conmutación por error de Windows
En Windows 2019, el clúster reconocerá automáticamente que se ejecuta en Azure y, como opción predeterminada para la dirección IP de administración de clústeres, usa el nombre de red distribuida. Por lo tanto, usa cualquiera de los nodos de clúster direcciones IP locales. Como resultado, no es necesario un nombre de red dedicado (virtual) para el clúster y no es necesario configurar esta dirección IP en Azure Internal Load Balancer.
Para más información, consulte Windows Server 2019 Failover Clustering New features (Nuevas características de clústeres de conmutación por error de Windows Server 2019). Ejecute este comando en uno de los nodos del clúster:
# 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!"
}
Configuración del cuórum de nube del clúster
A medida que use Windows Server 2016 o 2019, se recomienda configurar el testigo en la nube de Azure como cuórum del clúster.
Ejecute este comando en uno de los nodos del clúster:
$AzureStorageAccountName = "cloudquorumwitness"
Set-ClusterQuorum –CloudWitness –AccountName $AzureStorageAccountName -AccessKey <YourAzureStorageAccessKey> -Verbose
Ajuste de los umbrales del clúster de conmutación por error de Windows
Después de instalar correctamente el clúster de conmutación por error de Windows, debe ajustar algunos umbrales para que sea adecuado para los clústeres implementados en Azure. Los parámetros que se van a cambiar se documentan en Ajuste de los umbrales de la red en clúster de conmutación por error. Suponiendo que las dos máquinas virtuales que forman la configuración del clúster de Windows para ASCS/SCS están en la misma subred, los parámetros siguientes deben cambiarse a estos valores:
- SameSubNetDelay = 2000
- SameSubNetThreshold = 15
- RouteHistoryLength = 30
Esta configuración se ha probado con clientes y ofrece un buen compromiso. Son lo suficientemente resistentes, pero también proporcionan conmutación por error lo suficientemente rápida para condiciones de error reales en cargas de trabajo de SAP o errores de máquina virtual.
Configuración de un disco compartido de Azure
Esta sección solo es aplicable si usa el disco compartido de Azure.
Creación y conexión de un disco compartido de Azure con PowerShell
Ejecute este comando en uno de los nodos del clúster. Deberá ajustar los valores del grupo de recursos, la región de Azure, SAPSID, etc.
#############################
# 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
Formato del disco compartido con PowerShell
Obtenga el número de disco. Ejecute los comandos de PowerShell en uno de los nodos del clúster:
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
Aplique formato al disco. En este ejemplo, es el número de 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
Compruebe que el disco esté ahora visible como disco de clúster.
# 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\}
Registre el disco en el clúster.
# 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 para un disco compartido de clúster de ASCS/SCS de SAP
Esta sección solo es aplicable si usa el software de terceros SIOS DataKeeper Cluster Edition para crear un almacenamiento reflejado que simula el disco compartido de clúster.
Ahora tiene una configuración de clústeres de conmutación por error de Windows Server activa en Azure. Para instalar una instancia de ASCS/SCS de SAP, necesita un recurso de disco compartido. SIOS DataKeeper Cluster Edition es una solución de terceros que puede usar para crear recursos de disco compartido.
Para instalar SIOS DataKeeper Cluster Edition en un disco compartido de clúster de ASCS/SCS de SAP, siga estos pasos:
- Agregue Microsoft .NET Framework, si se necesita. Consulte la documentación de SIOS para ver los requisitos de .NET Framework más actualizados.
- Instalación de SIOS DataKeeper
- Configuración de SIOS DataKeeper
Instalación de SIOS DataKeeper
Instale SIOS DataKeeper Cluster Edition en cada nodo del clúster. Con SIOS DataKeeper, para crear el almacenamiento compartido virtual, cree un reflejo sincronizado y, luego, simule el almacenamiento compartido de clúster.
Antes de instalar el software de SIOS, cree el usuario de dominio DataKeeperSvc.
Nota
Agregue el usuario DataKeeperSvc al grupo de administradores locales en ambos nodos del clúster.
Instale el software SIOS en ambos nodos del clúster.
Primera página de la instalación de SIOS DataKeeper
En el cuadro de diálogo, seleccione Sí.
Información de DataKeeper de la próxima deshabilitación de un servicio
En el cuadro de diálogo, se recomienda seleccionar Cuenta de dominio o de servidor.
Selección del usuario para SIOS DataKeeper
Escriba el nombre de usuario y la contraseña de la cuenta de dominio que creó para SIOS DataKeeper.
Introducción del nombre de usuario y contraseña de dominio para la instalación de SIOS DataKeeper
Instale la clave de licencia para la instancia de SIOS DataKeeper, tal como aparece en la figura 35.
Especificación de la clave de licencia de SIOS DataKeeper
Cuando se le solicite, reinicie la máquina virtual.
Configuración de SIOS DataKeeper
Después de instalar SIOS DataKeeper en ambos nodos, inicie la configuración. El objetivo de la configuración es conseguir la replicación sincrónica de datos entre los discos adicionales conectados a cada una de las máquinas virtuales.
Inicie la herramienta de configuración y administración de DataKeeper y, luego, seleccione Servidor de conexión.
Herramienta de configuración y administración de SIOS DataKeeper
Escriba el nombre o la dirección TCP/IP del primer nodo al que se debe conectar la herramienta de configuración y administración y, en un segundo paso, el segundo nodo.
Inserción del nombre o la dirección TCP/IP del primer nodo al que se debe conectar la herramienta de configuración y administración y, en un segundo paso, el segundo nodo.
Cree el trabajo de replicación entre los dos nodos.
Creación de un trabajo de replicación
Un asistente le guía por el proceso de crear un trabajo de replicación.
Defina el nombre del trabajo de replicación.
Definición del nombre del trabajo de replicación
Definición de los datos básicos para el nodo que debe ser el nodo de origen actual
Defina el nombre, la dirección TCP/IP y el volumen de disco del nodo de destino.
Definición del nombre, la dirección TCP/IP y el volumen de disco del nodo de destino actual
Defina los algoritmos de compresión. En el ejemplo, se recomienda comprimir el flujo de replicación. Especialmente en situaciones de resincronización, la compresión del flujo de replicación reduce considerablemente el tiempo que se tarda en resincronizar. La compresión usa los recursos de CPU y RAM de una máquina virtual. A medida que aumenta la tasa de compresión, también aumenta el volumen de los recursos de CPU usados. Puede ajustar esta configuración más adelante.
Otra configuración que debe comprobar es si la replicación se ejecuta de forma sincrónica o asincrónica. Cuando proteja configuraciones de ASCS/SCS de SAP, debe usar la replicación sincrónica.
Definición de los detalles de la replicación
Defina si el volumen que el trabajo de replicación replica se debe representar en una configuración de clúster de conmutación por error de Windows Server como disco compartido. Para la configuración de ASCS/SCS de SAP, seleccione Sí de manera que el clúster de Windows vea el volumen replicado como un disco compartido que puede usar como volumen de clúster.
Selección de Sí para establecer el volumen replicado como volumen de clúster
Una vez creado el volumen, la herramienta de configuración y administración de DataKeeper muestra que el trabajo de replicación está activo.
El reflejo sincrónico de DataKeeper para el disco compartido de ASCS/SCS de SAP está activo
Ahora, el Administrador de clústeres de conmutación por error muestra el disco como un disco de DataKeeper, tal como aparece en la figura 45:
El Administrador de clústeres de conmutación por error muestra el disco que DataKeeper replicó