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

Windows OS Windows

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

Уровень базы данных в документации не рассматривается.

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

Перед началом установки ознакомьтесь со следующей статьей:

Создание виртуальной машины ASCS

Для кластера SAP ASCS/SCS разверните две виртуальные машины в группе доступности Azure или в зонах доступности Azure в зависимости от используемого типа развертывания. После развертывания виртуальных машин выполните указанные ниже действия.

  • Создайте внутреннюю подсистему балансировки нагрузки Azure для экземпляра SAP ASCS/SCS.
  • Добавьте виртуальные машины Windows в домен AD.

В зависимости от типа развертывания имена узлов и IP-адреса в вашем сценарии могут выглядеть следующим образом:

Развертывание SAP в группе доступности Azure

Роль имени узла Host name Статический IP-адрес Группа доступности Имя ценовой категории диска
Кластер ASCS/SCS первого узла pr1-ascs-10 10.0.0.4 pr1-ascs-avset Premium_LRS
Кластер ASCS/SCS второго узла pr1-ascs-11 10.0.0.5 pr1-ascs-avset
Сетевое имя кластера pr1clust 10.0.0.42 (только для кластера Win 2016) Н/Д
Имя сети кластера ASCS pr1-ascscl 10.0.0.43 Н/Д
Имя сети кластера ERS (только для ERS2) pr1-erscl 10.0.0.44 Н/Д

Развертывание SAP в зонах доступности Azure

Роль имени узла Host name Статический IP-адрес Availability zone Имя ценовой категории диска
Кластер ASCS/SCS первого узла pr1-ascs-10 10.0.0.4 AZ01 Premium_ZRS
Кластер ASCS/SCS второго узла pr1-ascs-11 10.0.0.5 AZ02
Сетевое имя кластера pr1clust 10.0.0.42 (только для кластера Win 2016) Н/Д
Имя сети кластера ASCS pr1-ascscl 10.0.0.43 Н/Д
Имя сети кластера ERS (только для ERS2) pr1-erscl 10.0.0.44 Н/Д

Перечисленные в этом документе шаги будут одинаковыми для обоих типов развертывания. Но если кластер работает в группе доступности, необходимо развертывать LRS для общего диска Azure ценовой категории "Премиум" (Premium_LRS), и если в зоне доступности — ZRS для общего диска Azure ценовой категории "Премиум" (Premium_ZRS).

Примечание.

Группа размещения близкого взаимодействия Azure не требуется для общего диска Azure. Но для развертывания SAP с помощью PPG следуйте приведенным ниже рекомендациям.

  • Если PPG используется для системы SAP, развернутой в регионе, в нее должны входить все виртуальные машины, которые используют общий диск.
  • Если PPG используется для системы SAP, развернутой в зонах, как описано в документе Группы размещения близкого взаимодействия с зональными развертываниями, вы можете подключить хранилище Premium_ZRS к виртуальным машинам, совместно использующим диск.

Создание внутреннего балансировщика нагрузки Azure

Во время настройки виртуальной машины можно создать или выбрать выход из подсистемы балансировки нагрузки в разделе сети. Для архитектуры ENSA1 в Windows потребуется только один виртуальный IP-адрес для SAP ASCS/SCS. С другой стороны, архитектура ENSA2 требует двух виртуальных IP-адресов — один для SAP ASCS/SCS и другой для ERS2. При настройке стандартной внутренней подсистемы балансировки нагрузки для установки высокого уровня доступности SAP ASCS/SCS в Windows следуйте приведенным ниже рекомендациям.

  1. Конфигурация внешнего IP-адреса: создание внешнего IP-адреса (например, 10.0.0.43). Выберите ту же виртуальную сеть и подсеть, что и виртуальные машины ASCS/ERS.
  2. Внутренний пул: создание внутреннего пула и добавление виртуальных машин ASCS и ERS. В этом примере виртуальные машины : pr1-ascs-10 и pr1-ascs-11.
  3. Правила для входящего трафика: создание правила балансировки нагрузки.
    • Внешний IP-адрес: выбор внешнего IP-адреса
    • Серверный пул: выбор внутреннего пула
    • Проверьте "Порты высокой доступности"
    • Протокол: TCP
    • Проба работоспособности: создание пробы работоспособности со следующими сведениями
      • Протокол: TCP
      • Порт: [например: 620<экземпляров нет.> для ASCS]
      • Интервал: 5
      • Пороговое значение пробы: 2
    • Время ожидания простоя (минуты): 30
    • Установите флажок "Включить плавающий IP-адрес"
  4. Применимо только к архитектуре ENSA2: создайте дополнительный интерфейсный IP-адрес (10.0.0.44), правило балансировки нагрузки (используйте 621<экземпляр без> порта пробы работоспособности ERS2, как описано в точке 1 и 3).

Примечание.

Номер свойства конфигурации пробы работоспособностиOfProbes, иначе известный как "Неработоспособное пороговое значение" на портале, не учитывается. Таким образом, чтобы управлять числом успешных или неудачных последовательных проб, задайте для свойства "probeThreshold" значение 2. В настоящее время невозможно задать это свойство с помощью портал Azure, поэтому используйте команду Azure CLI или PowerShell.

Важно!

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

Примечание.

Если во внутренний пул (без общедоступного IP-адреса) внутренней подсистемы балансировки нагрузки Azure (цен. категория "Стандартный") помещаются виртуальные машины без общедоступных IP-адресов, у них не будет исходящего подключения к Интернету, если вы не выполните дополнительную настройку, чтобы разрешить маршрутизацию к общедоступным конечным точкам. Подробные сведения о такой настройке см. в статье Подключение к общедоступной конечной точке для виртуальных машин с помощью Azure Load Balancer (цен. категория "Стандартный") в сценариях SAP с высоким уровнем доступности.

Совет

С помощью шаблона Azure Resource Manager для WSFC для экземпляра SAP ASCS/SCS с общим диском Azure можно автоматизировать подготовку инфраструктуры, используя общий диск Azure для одного идентификатора безопасности SAP с ERS1.
Шаблон Azure ARM создаст две виртуальные машины Windows 2019 или 2016, создаст общий диск Azure и подключит его к виртуальным машинам. Кроме того, будет создана и настроена внутренняя подсистема балансировки нагрузки Azure. Подробные сведения см. в описании шаблона ARM.

Добавление записей реестра на обоих узлах кластера экземпляра ASCS/SCS

Azure Load Balancer может закрывать соединения при превышении тайм-аута простоя. Рабочие процессы SAP открывают подключения к процессу постановки в очередь SAP при первой же необходимости отправить запрос на постановку в очередь или вывод из очереди. Чтобы эти подключения не прерывались, измените значения параметров KeepAliveTime и KeepAliveInterval протокола TCP/IP в обоих узлах кластера. При использовании ERS1 также необходимо добавить параметры профиля SAP, как описано далее в этой статье. В обоих узлах кластера необходимо изменить следующие записи реестра:

  • KeepAliveTime
  • KeepAliveInterval
Путь Имя переменной Тип переменной Значение Документация
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveTime REG_DWORD (десятичное) 120000 KeepAliveTime
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters KeepAliveInterval REG_DWORD (десятичное) 120000 KeepAliveInterval

Чтобы применить изменения, перезапустите оба узла кластера.

Добавление виртуальных машин Windows в домен

После назначения виртуальным машинам статических IP-адресов добавьте эти машины в домен.

Установка и настройка отказоустойчивого кластера Windows

Установите компонент отказоустойчивого кластера Windows.

Выполните в одном из узлов кластера следующую команду:

# 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 }

Когда установка компонента завершится, перезагрузите оба узла кластера.

Тестирование и настройка отказоустойчивого кластера Windows

В Windows 2019 кластер автоматически распознает его работу в Azure и в качестве варианта по умолчанию для IP-адреса управления кластерами использует имя распределенной сети. Поэтому он использует любой из узлов кластера локальные IP-адреса. В результате для кластера не требуется выделенное (виртуальное) имя сети, и не нужно настраивать этот IP-адрес во внутренней подсистеме балансировки нагрузки Azure.

Дополнительные сведения см. в записи блога Windows Server 2019 Failover Clustering New features (Новые возможности отказоустойчивой кластеризации в Windows Server 2019). Выполните в одном из узлов кластера следующую команду:

# 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!"
}

Настройка облачного кворума кластера

При использовании Windows Server 2016 или 2019 рекомендуется настроить облачный следящий компонент Azure в качестве кворума кластера.

Выполните в одном из узлов кластера следующую команду:

$AzureStorageAccountName = "cloudquorumwitness"
Set-ClusterQuorum –CloudWitness –AccountName $AzureStorageAccountName -AccessKey <YourAzureStorageAccessKey> -Verbose

Настройка пороговых значений для отказоустойчивого кластера Windows

После успешной установки отказоустойчивого кластера Windows необходимо настроить ряд пороговых значений с учетом того, что развертывание выполнено в Azure. Параметры, которые необходимо изменить, описаны в записи блога Tuning Failover Cluster Network Thresholds (Настройка пороговых значений сети отказоустойчивого кластера). Предположим, что две виртуальные машины, образующие конфигурацию кластера Windows для ASCS/SCS, находятся в одной подсети. Тогда нужно изменить значения приведенных ниже параметров следующими значениями:

  • SameSubNetDelay = 2000
  • SameSubNetThreshold = 15
  • RouteHistoryLength = 30

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

Настройка общего диска Azure

Этот раздел применим только в том случае, если вы используете общий диск Azure.

Создание и подключение общего диска Azure с помощью PowerShell

Выполните эту команду в одном из узлов кластера. Вам потребуется настроить значения для группы ресурсов, региона Azure, SAPSID и т. д.

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

Форматирование общего диска с помощью PowerShell

  1. Получите номер диска. Выполните следующие команды PowerShell в одном из узлов кластера:

    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. Отформатируйте диск. В этом примере это номер диска 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. Убедитесь в том, что диск теперь отображается как диск кластера.

    # 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. Зарегистрируйте диск в кластере.

    # 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 для общего диска кластера SAP ASCS/SCS

Этот раздел применим только при использовании стороннего программного обеспечения SIOS DataKeeper Cluster Edition для создания зеркало зеркало хранилища, имитируемого общего диска кластера.

На данный момент у вас имеется рабочая конфигурация отказоустойчивого кластера Windows Server в Azure. Чтобы установить экземпляр SAP ASCS/SCS, требуется общий дисковый ресурс. Один из возможных вариантов — SIOS DataKeeper Cluster Edition, стороннее решение для создания общих дисковых ресурсов.

Установка SIOS DataKeeper Cluster Edition для общего диска кластера SAP ASCS/SCS состоит из следующих заданий:

  • При необходимости добавьте платформу Microsoft .NET Framework. Актуальные требования к платформе .NET Framework см. в документации по SIOS.
  • Установка SIOS DataKeeper
  • Настройка SIOS DataKeeper

Установка SIOS DataKeeper

SIOS DataKeeper Cluster Edition нужно установить на обоих узлах в кластере. Чтобы создать виртуальное общее хранилище с помощью SIOS DataKeeper, создайте синхронизированное зеркало и сымитируйте общее хранилище кластера.

Перед установкой программного обеспечения SIOS необходимо создать пользователя домена DataKeeperSvc.

Примечание.

Добавьте пользователя домена DataKeeperSvc в группу локальных администраторов на обоих узлах кластера.

  1. Установите программное обеспечение SIOS на обоих узлах кластера.

    SIOS installer

    Figure 31: First page of the SIOS DataKeeper installation

    Первая страница установки SIOS DataKeeper

  2. В диалоговом окне выберите Да.

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

    Предупреждение DataKeeper об отключении службы

  3. В диалоговом окне мы рекомендуем установить флажок Domain or Server account (Учетная запись домена или сервера).

    Figure 33: User selection for SIOS DataKeeper

    Выбор пользователей для SIOS DataKeeper

  4. Укажите имя учетной записи пользователя домена и пароль, созданные для SIOS DataKeeper.

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

    Введите имя пользователя домена и пароль для установки SIOS DataKeeper

  5. Установите лицензионный ключ для своего экземпляра SIOS DataKeeper, как показано на рис. 35.

    Figure 35: Enter your SIOS DataKeeper license key

    Ввод ключа лицензии на использование SIOS DataKeeper

  6. При появлении запроса перезапустите виртуальную машину.

Настройка SIOS DataKeeper

После установки SIOS DataKeeper на обоих узлах начните настройку параметров. Наша цель — настроить синхронную репликацию данных между дополнительными дисками, подключенными к каждой виртуальной машине.

  1. Запустите инструмент управления и настройки DataKeeper, а затем щелкните Подключение к серверу.

    Figure 36: SIOS DataKeeper Management and Configuration tool

    Средство управления и настройки SIOS DataKeeper

  2. Введите имя или TCP/IP-адрес первого узла, к которому должен подключиться инструмент управления и настройки, а на втором шаге — для второго узла.

    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

    Ввод имени или TCP/IP-адреса первого узла, к которому должен подключаться инструмент управления и настройки, а также второго узла на втором шаге

  3. Создайте задание репликации между двумя узлами.

    Figure 38: Create a replication job

    Создание задания репликации

    Мастер поможет выполнить эту процедуру.

  4. Определите имя задания репликации.

    Figure 39: Define the name of the replication job

    Определение имени задания реплика tion

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

    Определение базовых данных для узла, который должен быть текущим исходным узлом

  5. Определите имя, TCP/IP-адрес и дисковый том целевого узла.

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

    Определение имени, TCP/IP-адреса и тома диска текущего целевого узла

  6. Определите алгоритм сжатия. Для наших целей рекомендуется сжатие потока репликации. Сжатие потока репликации значительно сокращает время повторной синхронизации (особенно в случаях повторной синхронизации). Сжатие использует ресурсы ЦП и памяти виртуальной машины. Чем выше степень сжатия, тем больше том используемых ресурсов ЦП. Этот параметр можно будет откорректировать и изменить позже.

  7. Кроме того, нужно проверить параметр, который позволяет включить синхронный или асинхронный режим репликации. Для защиты конфигураций SAP ASCS/SCS требуется синхронная репликация.

    Figure 42: Define replication details

    Определение сведений о репликации

  8. Определите, следует ли том, реплицируемый с помощью задания репликации, представить в конфигурации кластера WSFC как общий диск. Для конфигурации SAP ASCS/SCS выберите Да, чтобы кластер Windows воспринимал реплицируемый том как общий диск, который можно использовать в качестве тома кластера.

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

    Подтверждение согласия на выбор реплицируемого тома в качестве тома кластера

    После создания тома инструмент управления и настройки DataKeeper отобразят задание репликации как активное.

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

    Синхронная зеркало dataKeeper для общего диска SAP ASCS/SCS активна

    Теперь диск отображается в диспетчере отказоустойчивости кластеров как диск DataKeeper, как показано на рис. 45:

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

    Диспетчер отказоустойчивости кластеров показывает диск, который реплика DataKeeper

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