Guest SteffenMueller Posted May 22, 2023 Posted May 22, 2023 Setup of SAP Content Server 7.54 with MaxDB in a WSFC environment based on Azure shared disks This blog shows the setup of an independent SAP Content server running on its own resources represented by a WSFC cluster role. The same applies to the MaxDB server instance. Following best practices, the data and log files are placed on distinct disks. The MaxDB binaries are installed on the OS disk. If you have the policy not to install any additional SAP related binaries on C: you can create a local disk for each node with the same drive letter assigned and install all binaries on this drive. Contrary to older Content Server installations, this installation is cluster aware and installs all relevant files in the right places. No manual adjustments and the moving around of binaries are required. Please pay attention to the limitations regarding shared disks which can be found in this article: Share an Azure managed disk across VMs - Azure Virtual Machines | Microsoft Learn This installation is supported with Windows Server 2019 and higher. Installation steps Consult the official SAP documentation and Notes: Installation of SAP Content Server 7.5 and Higher on Windows Please pay attention to the chapters 6 – 8 and the referenced SAP Notes in the SAP Installation manual. Create 2 identical VMs running Windows Server 2019 or higher Add at least 3 Azure shared disks: 1 shared disk is used for the Content Server. 2 shared disks are used for the MaxDB data and log files. Make sure to select the enable shared disk option for each disk you want to share. This is an example for three shared disks. The individual disk size must be chosen according to your sizing. Add the VMs to your Windows AD. Create DNS/host file entries for the clustered Content Server and clustered MaxDB. Create a virtual host name and IP address for the SAP Content Server and MaxDB cluster roles. Install the WSFC software on both nodes. Install the WSFC feature on each cluster node. Initialize the disks with the Computer Manager or PowerShell Initialize and format your disks with the Windows Computer Manager. Create the cluster with the cluster wizard. Create your cluster with the cluster wizard. Starting with Windows Server 2019 a virtual IP address for the cluster is not required any more. The cluster name will be assigned to each cluster node. After a successful installation, 3 disks should show up under disks. Since a cloud witness is not defined at this point, one of the disks will act as quorum disk. This will change after setting up a storage account and configure it as cloud witness. Create storage account and assign it as cloud witness A standard storage account is created to act a cloud witness. The cloud witness is created in the More Actions section of Failover Cluster Manager. After the cloud witness is created, all disks become Available Storage as shown in the screen above. Necessary network settings changes Use PowerShell to change some of the default network parameters. Use SAP SWPM to run First Cluster Node installation. Use SWPM Generic Options - SAP Content Server- High Availability (7.5 and higher) to install the First Cluster Node. Decide where local binaries will be installed. Some customers don't want to install SAP components on the OS disk. In this case you can install a dedicated local drive and install the SAP components there. In this example the OS disk (C:) is used. Provide the virtual hostname as it is defined in your DNS settings. Select the SAP Content Server. Provide the Content Server instance data. Provide the basic parameters for the Content Server configuration. Create an Azure Internal Load Balancer (ILB) with 2 virtual host names and 2 virtual IP addresses The first virtual hostname is used for the Content Server role. The second virtual hostname is used for the MaxDB role. Definition of the Content Server hostname in the Load Balancer configuration. Definition of the MaxDB hostname in the Load Balancer configuration. List of the created virtual hostnames and IP addresses for the ILB. Definition of the Health Probe port for the Content Server. Definition of the Health Probe port for the MaxDB SDB server instance. Create the Probe port for the SAP Content Server (Cluster Role SAP <SID>) Update the probe port for the SAP <SID> role in Windows Server Failover Cluster (WSFC) Actual creation of the Content Server Probe Port. Without this step the Additional Node cannot be installed. Screenshot after successful Probe Port creation Successful creation of the Content Server cluster role. Use SWPM to install the Second Cluster Node This step must be executed on the additional cluster node. Leave the already created cluster roles untouched. SWPM performs all necessary steps (move cluster group etc.) to create the additional cluster node. Use SWPM Generic Options - SAP Content Server- High Availabilty (7.5 and higher) to install the Additional Cluster Node. On the Additional Node the local installation disk is also the C: drive. This is the main step for installing the Additional Cluster Node. Use SWPM to install the First MaxDB Cluster Node This step must be executed on the first cluster node. Use SWPM Generic Options - SAP Content Server- High Availability (Legacy) to install the First MSCS Node. Provide the DB SID (SDB) and the virtual hostname. Provide the passwords for the MaxDB admin users superdba and control. Provide the schema user and password for the Content Server. Provide the basic parameters for MaxDB Choose the location of the MaxDB Log Volumes. Choose the location of the MaxDB Data Volumes. Choose the number and size of the MaxDB Log Files. Choose the number and size of the MaxDB Data Files. Create the Probe Port for SAP MaxDB (Cluster Role MaxDB) Use the following PowerShell script to perform this task. $ProbePort = 62300 # ProbePort of the Azure internal load balancer Clear-Host $SAPClusterRoleName = "MaxDB" $SAPIPresourceName = "MaxDB IP-Address" $SAPIPResourceClusterParameters = Get-ClusterResource $SAPIPresourceName | Get-ClusterParameter $IPAddress = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Address" }).Value $NetworkName = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "Network" }).Value $SubnetMask = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "SubnetMask" }).Value $OverrideAddressMatch = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "OverrideAddressMatch" }).Value $EnableDhcp = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "EnableDhcp" }).Value $OldProbePort = ($SAPIPResourceClusterParameters | Where-Object {$_.Name -eq "ProbePort" }).Value $var = Get-ClusterResource | Where-Object { $_.name -eq $SAPIPresourceName } Write-Host "Current configuration parameters for SAP IP cluster resource '$SAPIPresourceName' are:" -ForegroundColor Cyan Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter Write-Host Write-Host "Current probe port property of the SAP cluster resource '$SAPIPresourceName' is '$OldProbePort'." -ForegroundColor Cyan Write-Host Write-Host "Setting the new probe port property of the SAP cluster resource '$SAPIPresourceName' to '$ProbePort' ..." -ForegroundColor Cyan Write-Host $var | Set-ClusterParameter -Multiple @{"Address"=$IPAddress;"ProbePort"=$ProbePort;"Subnetmask"=$SubnetMask;"Network"=$NetworkName;"OverrideAddressMatch"=$OverrideAddressMatch;"EnableDhcp"=$EnableDhcp} Write-Host $ActivateChanges = Read-Host "Do you want to take restart SAP cluster role '$SAPClusterRoleName', to activate the changes (yes/no)?" if($ActivateChanges -eq "yes"){ Write-Host Write-Host "Activating changes..." -ForegroundColor Cyan Write-Host write-host "Taking SAP cluster IP resource '$SAPIPresourceName' offline ..." -ForegroundColor Cyan Stop-ClusterResource -Name $SAPIPresourceName sleep 5 Write-Host "Starting SAP cluster role '$SAPClusterRoleName' ..." -ForegroundColor Cyan Start-ClusterGroup -Name $SAPClusterRoleName Write-Host "New ProbePort parameter is active." -ForegroundColor Green Write-Host Write-Host "New configuration parameters for SAP IP cluster resource '$SAPIPresourceName':" -ForegroundColor Cyan Write-Host Get-ClusterResource -Name $SAPIPresourceName | Get-ClusterParameter }else { Write-Host "Changes are not activated." } Output of the successful MaxDB Probe Port creation. Use SWPM to install the Second MaxDB Cluster Node This step must be executed on the additional cluster node. Leave already created cluster roles untouched. SWPM performs all necessary steps (move cluster group etc.) to create the additional cluster node. Use SWPM Generic Options - SAP Content Server- High Availability (Legacy) to install the Additional MSCS Node. Provide the same settings you put in for the First Cluster Node Since the MaxDB Software is installed locally, the passwords for user superdba and control need to be supplied again. This screen shows the admin console of the Content Server. The 2 previous screens show the disk assignment to the 2 cluster roles and the cluster roles themselves. For performance reasons, it is advisable to run the 2 cluster roles on the same node. This can be enforced by creating a dependency between the SAP Content Server and the MaxDB SDB instance. Setup the Content Server in the connected SAP ERP or S/4 system This is a screenshot of transaction OAC0 with the connected SAP ERP6 system. With this transaction a content repository can be created. Pushing the CS Admin button leads to the following screen where the connection between the Content Server and the MaxDB is established. This screen shows the Repository Settings. In the top you can see under HTTP server the virtual host name cs9content for the Content Server. Under ContentStorageName the name SDB of the MaxDB instance is supplied. Under ContentStorageHost the virtual host name cs9db of the MaxDB cluster role is supplied. The parameter StorageDriver needs to be set to SAPDBStorage. Finally, the parameter CurrentStorageDriver needs to be set to SAP MaxDB SDB (Unicode). This establishes the connection from the Content Server to the MaxDB SDB instance. Continue reading... Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.