SAP ASCS/SCS instance multi-SID high availability with Windows Server Failover Clustering and file share on Azure

Windows OS Windows

You can manage multiple virtual IP addresses by using an Azure internal load balancer.

If you have an SAP deployment, you can use an internal load balancer to create a Windows cluster configuration for SAP Central Services (ASCS/SCS) instances.

This article focuses on how to move from a single ASCS/SCS installation to an SAP multi-SID configuration by installing additional SAP ASCS/SCS clustered instances into an existing Windows Server Failover Clustering (WSFC) cluster with file share. When this process is completed, you have configured an SAP multi-SID cluster.

Note

This feature is available only in the Azure Resource Manager deployment model.

There is a limit on the number of private front-end IPs for each Azure internal load balancer.

The maximum number of SAP ASCS/SCS instances in one WSFC cluster is equal to the maximum number of private front-end IPs for each Azure internal load balancer.

The configuration introduced in this documentation is not yet supported to be used for Azure Availability Zones

For more information about load-balancer limits, see the "Private front-end IP per load balancer" section in Networking limits: Azure Resource Manager. Also consider using the Azure Standard Load Balancer SKU instead of the basic SKU of the Azure load balancer.

Prerequisites

You have already configured a WSFC cluster to use for one SAP ASCS/SCS instance by using file share, as shown in this diagram.

Figure 1: An SAP ASCS/SCS instance and SOFS deployed in two clusters

Figure 1: An SAP ASCS/SCS instance and SOFS deployed in two clusters

Important

The setup must meet the following conditions:

  • The SAP ASCS/SCS instances must share the same WSFC cluster.
  • Different SAP Global Hosts file shares belonging to different SAP SIDs must share the same SOFS cluster.
  • The SAP ASCS/SCS instances and the SOFS shares must not be combined in the same cluster.
  • Each database management system (DBMS) SID must have its own dedicated WSFC cluster.
  • SAP application servers that belong to one SAP system SID must have their own dedicated VMs.
  • A mix of Enqueue Replication Server 1 and Enqueue Replication Server 2 in the same cluster is not supported.

SAP ASCS/SCS multi-SID architecture with file share

The goal is to install multiple SAP Advanced Business Application Programming (ASCS) or SAP Java (SCS) clustered instances in the same WSFC cluster, as illustrated here:

Figure 2: SAP multi-SID configuration in two clusters

Figure 2: SAP multi-SID configuration in two clusters

The installation of an additional SAP <SID2> system is identical to the installation of one <SID> system. Two additional preparation steps are required on the ASCS/SCS cluster as well as on the file share SOFS cluster.

Prepare the infrastructure for an SAP multi-SID scenario

Prepare the infrastructure on the domain controller

Create the domain group <Domain>\SAP_<SID2>_GlobalAdmin, for example, with <SID2> = PR2. The domain group name is <Domain>\SAP_PR2_GlobalAdmin.

Prepare the infrastructure on the ASCS/SCS cluster

You must prepare the infrastructure on the existing ASCS/SCS cluster for a second SAP <SID>:

  • Create a virtual host name for the clustered SAP ASCS/SCS instance on the DNS server.
  • Add an IP address to an existing Azure internal load balancer by using PowerShell.

These steps are described in Infrastructure preparation for an SAP multi-SID scenario.

Prepare the infrastructure on an SOFS cluster by using the existing SAP Global Host

You can reuse the existing <SAPGlobalHost> and Volume1 of the first SAP <SID1> system.

Figure 3: Multi-SID SOFS is the same as the SAP Global Host name

Figure 3: Multi-SID SOFS is the same as the SAP Global Host name

Important

For the second SAP <SID2> system, the same Volume1 and the same <SAPGlobalHost> network name are used. Because you have already set SAPMNT as the share name for various SAP systems, to reuse the <SAPGlobalHost> network name, you must use the same Volume1.

The file path for the <SID2> global host is C:\ClusterStorage\Volume1\usr\sap<SID2>\SYS.

For the <SID2> system, you must prepare the SAP Global Host ..\SYS.. folder on the SOFS cluster.

To prepare the SAP Global Host for the <SID2> instance, execute the following PowerShell script:

##################
# SAP multi-SID
##################

$SAPSID2 = "PR2"
$DomainName2 = "SAPCLUSTER"
$SAPSIDGlobalAdminGroupName2 = "$DomainName2\SAP_" + $SAPSID2 + "_GlobalAdmin"

# SAP ASCS/SCS cluster nodes
$ASCSCluster2Node1 = "ja1-ascs-0"
$ASCSCluster2Node2 = "ja1-ascs-1"

# Define the SAP ASCS/SCS cluster node computer objects
$ASCSCluster2ObjectNode1 = "$DomainName2\$ASCSCluster2Node1$"
$ASCSCluster2ObjectNode2 = "$DomainName2\$ASCSCluster2Node2$"

# Create usr\sap\.. folders on CSV
$SAPGlobalFolder2 = "C:\ClusterStorage\Volume1\usr\sap\$SAPSID2\SYS"
New-Item -Path $SAPGlobalFolder2 -ItemType Directory

# Add permissions for the SAP SID2 system
Grant-SmbShareAccess -Name sapmnt -AccountName $SAPSIDGlobalAdminGroupName2, $ASCSCluster2ObjectNode1, $ASCSCluster2ObjectNode2 -AccessRight Full -Force


$UsrSAPFolder = "C:\ClusterStorage\Volume1\usr\sap\"

# Set file and folder security
$Acl = Get-Acl $UsrSAPFolder

# Add the security object of the SAP_<sid>_GlobalAdmin group
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule($SAPSIDGlobalAdminGroupName2,"FullControl", 'ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)

# Add the security object of the clusternode1$ computer object
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule($ASCSCluster2ObjectNode1,"FullControl",'ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)

# Add the security object of the clusternode2$ computer object
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule($ASCSCluster2ObjectNode2,"FullControl",'ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)

# Set security
Set-Acl $UsrSAPFolder $Acl -Verbose

Prepare the infrastructure on the SOFS cluster by using a different SAP Global Host

You can configure the second SOFS (for example, the second SOFS cluster role with <SAPGlobalHost2> and a different Volume2 for the second <SID2>).

Figure 4: Multi-SID SOFS is the same as the SAP GLOBAL host name 2

Figure 4: Multi-SID SOFS is the same as SAP GLOBAL host name 2

To create the second SOFS role with <SAPGlobalHost2>, execute this PowerShell script:

# Create SOFS with SAP Global Host Name 2
$SAPGlobalHostName = "sapglobal2"
Add-ClusterScaleOutFileServerRole -Name $SAPGlobalHostName

Create the second Volume2. Execute this PowerShell script:

New-Volume -StoragePoolFriendlyName S2D* -FriendlyName SAPPR2 -FileSystem CSVFS_ReFS -Size 5GB -ResiliencySettingName Mirror

Figure 5: Second Volume2 in Failover Cluster Manager

Figure 5: Second Volume2 in Failover Cluster Manager

Create an SAP Global folder for the second <SID2>, and set file security.

Execute this PowerShell script:

# Create a folder for <SID2> on a second Volume2 and set file security
$SAPSID = "PR2"
$DomainName = "SAPCLUSTER"
$SAPSIDGlobalAdminGroupName = "$DomainName\SAP_" + $SAPSID + "_GlobalAdmin"

# SAP ASCS/SCS cluster nodes
$ASCSClusterNode1 = "ascs-1"
$ASCSClusterNode2 = "ascs-2"

# Define SAP ASCS/SCS cluster node computer objects
$ASCSClusterObjectNode1 = "$DomainName\$ASCSClusterNode1$"
$ASCSClusterObjectNode2 = "$DomainName\$ASCSClusterNode2$"

# Create usr\sap\.. folders on CSV
$SAPGlobalFolder = "C:\ClusterStorage\Volume2\usr\sap\$SAPSID\SYS"
New-Item -Path $SAPGlobalFOlder -ItemType Directory

$UsrSAPFolder = "C:\ClusterStorage\Volume2\usr\sap\"

# Set file and folder security
$Acl = Get-Acl $UsrSAPFolder

# Add the file security object of the SAP_<sid>_GlobalAdmin group
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule($SAPSIDGlobalAdminGroupName,"FullControl", 'ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)

# Add the security object of the clusternode1$ computer object
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule($ASCSClusterObjectNode1,"FullControl",'ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)

# Add the security object of the clusternode2$ computer object
$Ar = New-Object  system.security.accesscontrol.filesystemaccessrule($ASCSClusterObjectNode2,"FullControl",'ContainerInherit,ObjectInherit', 'None', 'Allow')
$Acl.SetAccessRule($Ar)

# Set security
Set-Acl $UsrSAPFolder $Acl -Verbose

To create a SAPMNT file share on Volume2 with the <SAPGlobalHost2> host name for the second SAP <SID2>, start the Add File Share wizard in Failover Cluster Manager.

Right-click the saoglobal2 SOFS cluster group, and then select Add File Share.

Figure 6: Start the "Add File Share" wizard

Figure 6: Start "Add File Share" wizard


Figure 7: "Select SMB Share – Quick"

Figure 7: Select "SMB Share – Quick"


Figure 8: Select "sapglobalhost2" and specify path on Volume2

Figure 8: Select "sapglobalhost2" and specify path on Volume2


Figure 9: Set file share name to "sapmnt"

Figure 9: Set file share name to "sapmnt"


Figure 10: Disable all settings

Figure 10: Disable all settings


Assign Full control permissions to files and sapmnt share for:

  • The SAP_<SID>_GlobalAdmin domain user group
  • Computer object of ASCS/SCS cluster nodes ascs-1$ and ascs-2$

Figure 11: Assign Full control permissions to user group and computer accounts

Figure 11: Assign "Full control" to user group and computer accounts


Figure 12: Select "Create"

Figure 12: Select "Create"


Figure 13: The second sapmnt bound to sapglobal2 host and Volume2 is created

Figure 13: The second sapmnt bound to sapglobal2 host and Volume2 is created


Install SAP NetWeaver multi-SID

Install SAP <SID2> ASCS/SCS and ERS instances

Follow the same installation and configuration steps as described earlier for one SAP <SID>.

Install DBMS and SAP application servers

Install DBMS and SAP application Servers as described earlier.

Next steps