Обеспечение высокого уровня доступности с несколькими идентификаторами безопасности для экземпляра SAP ASCS/SCS с помощью отказоустойчивой кластеризации Windows Server и общего диска в Azure

Windows OS Windows

Если у вас есть развертывание SAP, чтобы создать конфигурацию кластера Windows для экземпляров SAP Central Services (ASCS/SCS), необходимо использовать внутреннюю подсистему балансировки нагрузки.

В этой статье основное внимание уделяется переходу от отдельной установки ASCS/SCS к конфигурации SAP с несколькими идентификаторами безопасности путем установки дополнительных кластеризованных экземпляров SAP ASCS/SCS в существующем отказоустойчивом кластере Windows Server (WSFC) с общим диском, где для имитации общего диска используется SIOS. Выполнив эти действия, вы настроите кластер SAP с несколькими ИД безопасности.

Примечание.

Эта функция доступна только в модели развертывания с помощью Azure Resource Manager.

Существует ограничение на число частных внешних IP-адресов для каждой внутренней подсистемы балансировки нагрузки Azure.

Максимальное количество экземпляров SAP ASCS/SCS в одном кластере WSFC равно максимальному количеству частных внешних IP-адресов на одну внутреннюю подсистему балансировки нагрузки Azure.

Дополнительные сведения об ограничениях подсистемы балансировки нагрузки см. в разделе Ограничения сети — Azure Resource Manager.

Важно!

Плавающий IP-адрес не поддерживается для вторичных IP-конфигураций сетевых карт в сценариях с балансировкой нагрузки. Дополнительные сведения см. в статье Ограничения подсистемы балансировки нагрузки Azure. Если для виртуальной машины требуется дополнительный IP-адрес, следует развернуть вторую сетевую карту.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Необходимые компоненты

Вы уже настроили кластер WSFC, который используется для одного экземпляра SAP ASCS/SCS, с помощью файлового ресурса, как показано на этой схеме.

High-availability SAP ASCS/SCS instance

Важно!

Установка должна соответствовать двум таким условиям:

  • Экземпляры SAP ASCS/SCS должны совместно использовать один кластер WSFC.
  • Для каждого идентификатора безопасности системы управления базами данных (СУБД) должен быть выделен кластер WSFC.
  • Серверы приложений SAP, связанные с одним ИД безопасности системы SAP, должны размещаться на выделенных виртуальных машинах.
  • Не поддерживается сочетание сервера постановки в очередь для репликации 1 и сервера постановки в очередь репликации 2 в одном кластере.

Архитектура SAP ASCS/SCS с несколькими идентификаторами безопасности и общим диском

Цель описанных здесь действий — установить несколько кластеризованных экземпляров SAP ABAP ASCS или SAP Java SCS в одном кластере WSFC, как показано на этой схеме:

Multiple SAP ASCS/SCS clustered instances in Azure

Дополнительные сведения об ограничениях подсистемы балансировки нагрузки см. в разделе Ограничения сети — Azure Resource Manager.

Общая картина с двумя системами SAP высокого уровня доступности будет выглядеть следующим образом:

SAP high-availability multi-SID setup with two SAP system SIDs

Подготовка инфраструктуры для сценария SAP с несколькими ИД безопасности

Для подготовки инфраструктуры можно установить дополнительный экземпляр SAP ASCS/SCS со следующими параметрами.

Имя параметра Значение
ИД безопасности SAP ASCS/SCS pr1-lb-ascs
Внутренний балансировщик нагрузки экземпляра СУБД SAP PR5
Имя виртуального узла SAP pr5-sap-cl
IP-адрес виртуального узла SAP ASCS/SCS (IP-адрес дополнительной подсистемы Azure Load Balancer) 10.0.0.50
Количество экземпляров SAP ASCS/SCS 50
Порт пробы внутренней подсистемы балансировки нагрузки для дополнительного экземпляра SAP ASCS/SCS 62350

Примечание.

В случае с экземплярами кластера SAP ASCS/SCS каждому IP-адресу требуется уникальный порт пробы. Например, если один IP-адрес во внутренней подсистеме балансировки нагрузки Azure использует порт пробы 62300, другой IP-адрес не может использовать этот порт.

Так как порт пробы 62300 уже зарезервирован, для наших целей мы используем порт пробы 62350.

Установить дополнительные экземпляры SAP ASCS/SCS можно в существующем кластере WSFC с двумя узлами:

Роль виртуальной машины Имя узла виртуальной машины Статический IP-адрес
1-й узел кластера для экземпляра ASCS/SCS pr1-ascs-0 10.0.0.10
2-й узел кластера для экземпляра ASCS/SCS pr1-ascs-1 10.0.0.9

Создание имени виртуального узла для кластеризованного экземпляра SAP ASCS/SCS на DNS-сервере

Вы можете создать запись DNS для имени виртуального узла экземпляра ASCS/SCS с использованием следующих параметров.

Новое имя виртуального узла SAP ASCS/SCS Связанный IP-адрес
pr5-sap-cl 10.0.0.50

Новое имя узла и IP-адрес отображаются в диспетчере DNS, как показано на следующем снимке экрана:

DNS Manager list highlighting the defined DNS entry for the new SAP ASCS/SCS cluster virtual name and TCP/IP address

Примечание.

Новый IP-адрес, назначаемый имени виртуального узла дополнительного экземпляра ASCS/SCS, должен совпадать с новым IP-адресом, который назначен подсистеме Azure Load Balancer для SAP.

В нашем сценарии используется IP-адрес 10.0.0.50.

Добавление IP-адреса в существующую внутреннюю подсистему балансировки нагрузки Azure с помощью PowerShell

Чтобы создать несколько экземпляров SAP ASCS/SCS в одном кластере WSFC, добавьте дополнительный IP-адрес в существующую внутреннюю подсистему балансировки Azure с помощью PowerShell. Каждому IP-адресу требуются собственные правила балансировки нагрузки, порт пробы, пул внешних IP-адресов и внутренний пул.

Следующий сценарий добавляет новый IP-адрес в имеющийся балансировщик нагрузки. Обновите переменные PowerShell для своей среды. Этот скрипт создает все необходимые правила балансировки нагрузки для всех портов SAP ASCS/SCS.


# Select-AzSubscription -SubscriptionId <xxxxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx>
Clear-Host
$ResourceGroupName = "SAP-MULTI-SID-Landscape"      # Existing resource group name
$VNetName = "pr2-vnet"                        # Existing virtual network name
$SubnetName = "Subnet"                        # Existing subnet name
$ILBName = "pr2-lb-ascs"                      # Existing ILB name                      
$ILBIP = "10.0.0.50"                          # New IP address
$VMNames = "pr2-ascs-0","pr2-ascs-1"          # Existing cluster virtual machine names
$SAPInstanceNumber = 50                       # SAP ASCS/SCS instance number: must be a unique value for each cluster
[int]$ProbePort = "623$SAPInstanceNumber"     # Probe port: must be a unique value for each IP and load balancer

$ILB = Get-AzLoadBalancer -Name $ILBName -ResourceGroupName $ResourceGroupName

$count = $ILB.FrontendIpConfigurations.Count + 1
$FrontEndConfigurationName ="lbFrontendASCS$count"
$LBProbeName = "lbProbeASCS$count"

# Get the Azure virtual network and subnet
$VNet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName
$Subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $VNet -Name $SubnetName

# Add a second front-end and probe configuration
Write-Host "Adding new front end IP Pool '$FrontEndConfigurationName' ..." -ForegroundColor Green
$ILB | Add-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -PrivateIpAddress $ILBIP -SubnetId $Subnet.Id
$ILB | Add-AzLoadBalancerProbeConfig -Name $LBProbeName  -Protocol Tcp -Port $Probeport -ProbeCount 2 -IntervalInSeconds 10  | Set-AzLoadBalancer

# Get a new updated configuration
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Get an updated LP FrontendIpConfig
$FEConfig = Get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

# Add a back-end configuration into an existing ILB
$BackEndConfigurationName  = "backendPoolASCS$count"
Write-Host "Adding new backend Pool '$BackEndConfigurationName' ..." -ForegroundColor Green
$BEConfig = Add-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB | Set-AzLoadBalancer

# Get an updated config
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName

# Assign VM NICs to the back-end pool
$BEPool = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
foreach($VMName in $VMNames){
        $VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName
        $NICName = ($VM.NetworkInterfaceIDs[0].Split('/') | select -last 1)        
        $NIC = Get-AzNetworkInterface -name $NICName -ResourceGroupName $ResourceGroupName                
        $NIC.IpConfigurations[0].LoadBalancerBackendAddressPools += $BEPool
        Write-Host "Assigning network card '$NICName' of the '$VMName' VM to the backend pool '$BackEndConfigurationName' ..." -ForegroundColor Green
        Set-AzNetworkInterface -NetworkInterface $NIC
        #start-AzVM -ResourceGroupName $ResourceGroupName -Name $VM.Name
}


# Create load-balancing rules
$Ports = "445","32$SAPInstanceNumber","33$SAPInstanceNumber","36$SAPInstanceNumber","39$SAPInstanceNumber","5985","81$SAPInstanceNumber","5$SAPInstanceNumber`13","5$SAPInstanceNumber`14","5$SAPInstanceNumber`16"
$ILB = Get-AzLoadBalancer -Name $ILBname -ResourceGroupName $ResourceGroupName
$FEConfig = get-AzLoadBalancerFrontendIpConfig -Name $FrontEndConfigurationName -LoadBalancer $ILB
$BEConfig = Get-AzLoadBalancerBackendAddressPoolConfig -Name $BackEndConfigurationName -LoadBalancer $ILB
$HealthProbe  = Get-AzLoadBalancerProbeConfig -Name $LBProbeName -LoadBalancer $ILB

Write-Host "Creating load balancing rules for the ports: '$Ports' ... " -ForegroundColor Green

foreach ($Port in $Ports) {

        $LBConfigrulename = "lbrule$Port" + "_$count"
        Write-Host "Creating load balancing rule '$LBConfigrulename' for the port '$Port' ..." -ForegroundColor Green

        $ILB | Add-AzLoadBalancerRuleConfig -Name $LBConfigRuleName -FrontendIpConfiguration $FEConfig  -BackendAddressPool $BEConfig -Probe $HealthProbe -Protocol tcp -FrontendPort  $Port -BackendPort $Port -IdleTimeoutInMinutes 30 -LoadDistribution Default -EnableFloatingIP   
}

$ILB | Set-AzLoadBalancer

Write-Host "Successfully added new IP '$ILBIP' to the internal load balancer '$ILBName'!" -ForegroundColor Green

После выполнения скрипта результаты отобразятся на портале Azure, как показано на следующем снимке экрана:

New front-end IP pool in the Azure portal

Добавление дисков на компьютеры кластера и настройка общего диска для кластера SIOS

Для каждого дополнительного экземпляра SAP ASCS/SCS необходимо добавить новый общий диск кластера. Для общего диска кластера WSFC Windows Server 2012 R2 сейчас используется программное решение SIOS DataKeeper.

Выполните следующие действия.

  1. Добавьте дополнительный диск (или несколько дисков одного размера, которые необходимо чередовать) к каждому узлу кластера и отформатируйте их.
  2. Настройте репликацию хранилища с помощью SIOS DataKeeper.

Для выполнения этой процедуры необходимо установить SIOS DataKeeper на компьютерах кластера WSFC. Если это программное решение установлено, теперь нужно настроить репликацию между компьютерами. Этот процесс подробно описан в руководстве по установке SIOS DataKeeper Cluster Edition для создания общего диска кластера SAP ASCS/SCS.

DataKeeper synchronous mirroring for the new SAP ASCS/SCS share disk

Развертывание виртуальных машин для серверов приложений SAP и кластера СУБД

Чтобы завершить подготовку инфраструктуры для второй системы SAP, необходимо сделать следующее.

  1. Разверните выделенные виртуальные машины для серверов приложений SAP и поместите каждую из них в отдельную выделенную группу доступности.
  2. Разверните выделенные виртуальные машины для кластера СУБД и поместите каждую из них в отдельную выделенную группу доступности.

Установка системы SAP NetWeaver с несколькими идентификаторами безопасности

Полный процесс установки второй системы SAP SID2 см. в руководстве по установке высокодоступной системы SAP NetWeaver с использованием отказоустойчивого кластера Windows и общего диска для экземпляра SAP ASCS/SCS.

Основные действия:

  1. Установите SAP с экземпляром ASCS/SCS высокого уровня доступности.
    На этом шаге устанавливается SAP с высокодоступным экземпляром ASCS/SCS на существующем узле 1 кластера WSFC.

  2. Изменение профиля SAP для экземпляра ASCS/SCS.

  3. Настройка порта пробы.
    На этом шаге настраивается порт пробы SAP-SID2-IP кластерного ресурса SAP с помощью PowerShell. Настройку следует выполнять на одном из узлов кластера SAP ASCS/SCS.

  4. Установка экземпляра базы данных.
    Чтобы установить второй кластер, выполните действия, описанные в руководстве по установке SAP.

  5. Установка второго узла кластера.
    На этом шаге устанавливается SAP с высокодоступным экземпляром ASCS/SCS на существующем узле 2 кластера WSFC. Чтобы установить второй кластер, выполните действия, описанные в руководстве по установке SAP.

  6. Откройте порты брандмауэра Windows для экземпляра SAP ASCS/SCS и порта пробы.
    На обоих узлах кластера, используемых для экземпляров SAP ASCS/SCS, откройте все порты брандмауэра Windows, используемые SAP ASCS/SCS. Эти порты экземпляров SAP ASCS/SCS перечислены в описании портов SAP ASCS/SCS.

    Список остальных портов TCP/IP для всех продуктов SAP см. здесь.

    Кроме того, откройте порт пробы внутренней подсистемы балансировки нагрузки Azure. В нашем случае это порт 62350. Он описан в этой статье.

  7. Установите основной сервер приложений SAP на новой выделенной виртуальной машине, как описано в руководстве по установке SAP.

  8. Установите дополнительный сервер приложений SAP на новой выделенной виртуальной машине, как описано в руководстве по установке SAP.

  9. Тестирование отработки отказа экземпляра SAP ASCS/SCS и репликации SIOS.

Следующие шаги