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 OS 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:

La documentación no abarca el nivel de base de datos.

Requisitos previos

Antes de comenzar la instalación, revise 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.

  1. Configuración de IP de front-end: cree una 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.
  2. 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.
  3. 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: creación de 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"
  4. Aplicable solo a la arquitectura de 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.

Importante

No se admite una dirección IP flotante en una configuración ip secundaria de tarjeta de interfaz de red (NIC) en escenarios de equilibrio de carga. Para ver detalles, consulte Limitaciones de Azure Load Balancer. Si necesita otra dirección IP para la VM, implemente una segunda NIC.

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 Valor 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 como 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

  1. 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            
    
  2. 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
    
  3. 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\}
    
  4. 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 del 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.

  1. Instale el software SIOS en ambos nodos del clúster.

    SIOS installer

    Figure 31: First page of the SIOS DataKeeper installation

    Primera página de la instalación de SIOS DataKeeper

  2. En el cuadro de diálogo, seleccione .

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

    Información de DataKeeper de la próxima deshabilitación de un servicio

  3. En el cuadro de diálogo, se recomienda seleccionar Cuenta de dominio o de servidor.

    Figure 33: User selection for SIOS DataKeeper

    Selección del usuario para SIOS DataKeeper

  4. Escriba el nombre de usuario y la contraseña de la cuenta de dominio que creó para SIOS DataKeeper.

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

    Introducción del nombre de usuario y contraseña de dominio para la instalación de SIOS DataKeeper

  5. Instale la clave de licencia para la instancia de SIOS DataKeeper, tal como aparece en la figura 35.

    Figure 35: Enter your SIOS DataKeeper license key

    Especificación de la clave de licencia de SIOS DataKeeper

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

  1. Inicie la herramienta de configuración y administración de DataKeeper y, luego, seleccione Servidor de conexión.

    Figure 36: SIOS DataKeeper Management and Configuration tool

    Herramienta de configuración y administración de SIOS DataKeeper

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

    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

    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.

  3. Cree el trabajo de replicación entre los dos nodos.

    Figure 38: Create a replication job

    Creación de un trabajo de replicación

    Un asistente le guía por el proceso de crear un trabajo de replicación.

  4. Defina el nombre del trabajo de replicación.

    Figure 39: Define the name of the replication job

    Definición del nombre del trabajo de replicación

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

    Definición de los datos básicos para el nodo que debe ser el nodo de origen actual

  5. Defina el nombre, la dirección TCP/IP y el volumen de disco del nodo de destino.

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

    Definición del nombre, la dirección TCP/IP y el volumen de disco del nodo de destino actual

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

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

    Figure 42: Define replication details

    Definición de los detalles de la replicación

  8. 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 de manera que el clúster de Windows vea el volumen replicado como un disco compartido que puede usar como volumen de clúster.

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

    Selección de 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.

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

    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:

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

    El Administrador de clústeres de conmutación por error muestra el disco que DataKeeper replicó

Pasos siguientes