высокодоступный SAP NetWeaver с простым монтированием и NFS на SLES для виртуальных машин с приложениями SAP

В этой статье описывается, как развертывать и настраивать виртуальные машины Azure (VMs), устанавливать платформу кластера и устанавливать высокодоступную (HA) систему SAP NetWeaver с простой структурой монтирования. Представленную архитектуру можно реализовать с помощью одной из следующих Azure собственных служб файловой системы сети (NFS):

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

В этой статье описывается конфигурация высокого уровня доступности для ASCS с простой структурой подключения. Чтобы развернуть уровень приложений SAP, нужно использовать общие каталоги, такие как /sapmnt/SID, /usr/sap/SID и /usr/sap/trans, которые имеют высокий уровень доступности. Эти файловые системы можно развернуть в NFS на Azure FilesилиAzure NetApp Files.

По-прежнему необходимо иметь кластер Pacemaker для защиты от единой точки отказа, включая такие компоненты, как центральные службы SAP (СCS) и ASCS.

В отличие от классической конфигурации кластера Pacemaker, при развертывании с простым подключением файловые системы не управляются кластером. Эта конфигурация поддерживается только в SLES для приложений SAP версии 15 и более поздней версии. В этой статье нет подробных сведений об уровне базы данных.

В примерах конфигураций и команд установки используются следующие номера экземпляров.

Имя экземпляра Номер экземпляра
ASCS 00
Сервер управления очередью для репликации (ERS) 01
Основной сервер приложений (PAS) 02
Дополнительный сервер приложений (AAS) 03
Идентификатор системы SAP СЗ1

Внимание

Конфигурация с простой структурой подключения поддерживается только в SLES для приложений SAP версии 15 и более поздней версии.

Схема с высоким уровнем доступности SAP NetWeaver с простым подключением и NFS.

На диаграмме показана типовая архитектура высокой доступности SAP NetWeaver с простым подключением. Файловые системы `sapmnt` и `saptrans` развертываются на родной для Azure NFS, на NFS разделах Azure Files или томах NFS на Azure NetApp Files. Кластер Pacemaker защищает центральные службы SAP. Кластеризованные виртуальные машины находятся за подсистемой балансировки нагрузки Azure. В отличие от классической конфигурации Pacemaker кластер Pacemaker не управляет файловыми системами.

Предварительные условия

В следующих руководствах содержатся все необходимые сведения для настройки системы высокого уровня доступности NetWeaver:

Подготовка инфраструктуры

Агент ресурсов для экземпляра SAP включен в SUSE Linux Enterprise Server для приложений SAP. Образ SUSE Linux Enterprise Server для приложений SAP 12 или 15 доступен в Azure Marketplace. Образ можно использовать для развертывания новых виртуальных машин.

Развертывание виртуальных машин Linux вручную с помощью портала Azure

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

Развертывание виртуальных машин с помощью образа SLES для приложений SAP. Выберите подходящую версию образа SLES, поддерживаемую для системы SAP. Вы можете развернуть виртуальную машину в любом из вариантов доступности — масштабируемый набор виртуальных машин, зону доступности или группу доступности.

Настройка подсистемы балансировки нагрузки Azure

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

Следуйте инструкциям create load balancer, чтобы настроить стандартную подсистему балансировки нагрузки для системы SAP с высоким уровнем доступности с помощью портала Azure. Во время настройки подсистемы балансировки нагрузки рассмотрите следующие моменты.

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

Примечание.

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

Примечание.

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

Внимание

  • Не включайте метки времени TCP на виртуальных машинах Azure, размещенных за Azure Load Balancer. Включение меток времени TCP приводит к сбою тестов работоспособности. Установите для параметра net.ipv4.tcp_timestamps значение 0. Для подробностей, смотрите в разделе Load Balancer тесты работоспособности.
  • Чтобы предотвратить изменение значения saptune, установленного вручную от net.ipv4.tcp_timestamps к 0, необходимо обновить 1 до версии 3.1.1 или более поздней. Дополнительные сведения см. в разделе Saptune 3.1.1 . Необходимо ли обновить?.

Развертывание NFS

Существует два варианта развертывания нативных NFS Azure для размещения общих каталогов SAP. Вы можете развернуть общую папку NFS в Azure Files или развернуть том NFS на Azure NetApp Files. NFS в Azure Files поддерживает протокол NFSv4.1. NFS в Azure NetApp Files поддерживает как NFSv4.1, так и NFSv3.

В следующих разделах описаны шаги по развертыванию NFS. Выберите один из следующих вариантов.

Развертывание учетной записи хранения Azure Files и общих папок NFS

NFS на Azure Files выполняется поверх хранилища Azure Files класса Premium. Перед настройкой NFS на Azure Files, см. статью Как создать общую папку NFS.

Существует два варианта избыточности в регионе Azure:

Убедитесь, что выбранный регион Azure поддерживает NFSv4.1 на Azure Files с соответствующим уровнем избыточности. Просмотрите доступность Azure Files по регионам Azure для хранилища файлов Premium Files Storage. Если ваш сценарий использует ZRS, убедитесь, что общие папки класса Premium с ZRS поддерживаются в регионе Azure.

Мы рекомендуем получать доступ к аккаунту хранения Azure через частную конечную точку Azure. Не забудьте развернуть точку доступа учетной записи хранения Azure Files и виртуальные машины, в которых необходимо подключить общие папки NFS, в той же виртуальной сети Azure или в одноранговых виртуальных сетях Azure.

  1. Разверните учетную запись хранения Azure Files с именем sapnfsafs. В этом примере используется ZRS. Если вы не знакомы с процессом, ознакомьтесь с Создание учетной записи хранения на портале Azure.
  2. На вкладке "Основные сведения" используйте следующие параметры:
    1. В поле Имя учетной записи хранения введите sapnfsafs.
    2. Для параметра Производительность выберите значение Премиум.
    3. Для параметра Тип учетной записи уровня Премиум выберите значение Хранилище файлов.
    4. Для параметра Репликация выберите Избыточность между зонами (ZRS).
  3. Нажмите кнопку Далее.
  4. На вкладке Дополнительно снимите флажок Требовать безопасного перемещения для REST API. Если этот параметр не отключен, вы не сможете подключить NFS-экспорт к виртуальной машине (операция подключения не завершится из-за превышения времени ожидания).
  5. Нажмите кнопку Далее.
  6. В разделе "Сеть" настройте следующие параметры:
    1. На вкладке Подключение к сети для параметра Метод подключения выберите значение Частная конечная точка.
    2. На вкладке Частная конечная точка нажмите Добавить частную конечную точку.
  7. В области Создание частной конечной точки выберите свою подписку, группу ресурсов и расположение. Затем выберите следующее:
    1. В поле Имя введите sapnfsafs_pe.
    2. В разделе Подресурс хранилища выберите файл.
    3. На вкладке Сеть в разделе Виртуальная сеть выберите виртуальную сеть и подсеть, которые будут использоваться. Опять же, можно использовать виртуальную сеть, в которой находятся виртуальные машины SAP, или одноранговую виртуальную сеть.
    4. В разделе Интеграция с Private DNS примите параметр по умолчанию «Yes» для интеграции с зоной Private DNS. Обязательно выберите свою частную зону DNS.
    5. Нажмите ОК.
  8. Снова откройте вкладку Сеть и нажмите кнопку Далее.
  9. На вкладке Защита данных используйте все параметры по умолчанию.
  10. Выберите Проверка и создание, чтобы проверить свою конфигурацию.
  11. Дождитесь завершения проверки. Устраните все проблемы, прежде чем продолжить.
  12. На вкладке Проверить и создать выберите Создать.

Затем разверните NFS-ресурсы в учетной записи хранения, которую вы создали. В этом примере существуют две общие папки NFS, sapnw1 и saptrans.

  1. Войдите на портал Azure.
  2. Выберите или найдите учетные записи хранения.
  3. На странице Учетные записи хранения выберите sapnfsafs.
  4. В меню ресурсов для sapnfsafs выберите Общие папки в разделе Хранилище данных.
  5. На странице общих папок выберите общую папку, а затем:
    1. В поле Имя введите sapnw1, saptrans.
    2. Выберите соответствующий размер для совместного использования. Примите во внимание размер данных, хранящихся в разделяемой области, число операций ввода-вывода в секунду (IOPS) и требования к пропускной способности. Дополнительные сведения см. в разделе Цели файлового хранилища Azure.
    3. Выберите протокол NFS.
    4. Выберите параметр Без корневого сжатия. В противном случае при подключении общих папок на виртуальных машинах вы не увидите владельца файлов или группу.

Файловые системы SAP, которые не требуют подключения через NFS, также можно развернуть на дисковом хранилище Azure. В этом примере можно развернуть /usr/sap/NW1/D02 и /usr/sap/NW1/D03 на дисковом хранилище Azure.

Примечание.

Azure Files NFS поддерживает шифрование в транзитном режиме (EiT). Если вы хотите использовать EiT, ознакомьтесь с шифрованием NFS на этапе передачи для SAP в системах Azure Files, чтобы узнать о настройке и развертывании.

Важные соображения по NFS для общих ресурсов Azure Files

При планировании развертывания с помощью NFS на Azure Files рассмотрите следующие важные моменты:

  • Минимальный размер части — 100 ГиБ. Вы платите только за емкость предоставленных долей.
  • Определяйте размер общих папок NFS не только на основе требований к емкости, но и с учетом требований к IOPS и пропускной способности. Дополнительные сведения см. в разделе Цели общего доступа к файлам Azure.
  • Протестируйте рабочую нагрузку, чтобы проверить размер и убедиться в том, что он соответствует вашим целевым показателям производительности. Чтобы узнать, как устранять проблемы с производительностью NFS в Azure Files, обратитесь к статье Устранение проблем с производительностью общей файловой системы Azure.
  • Для систем SAP J2EE размещение /usr/sap/<SID>/J<nr> на NFS в Azure Files не поддерживается.
  • Если в вашей системе SAP выполняется большое число пакетных заданий, количество журналов заданий может исчисляться миллионами. Если журналы пакетных заданий SAP хранятся в файловой системе, обратите особое внимание на размер раздела sapmnt. Начиная с SAP_BASIS версии 7.52 пакетные журналы по умолчанию хранятся в базе данных. Дополнительные сведения см. в разделе «Job sign» в базе данных.
  • Создайте отдельную общую папку sapmnt для каждой системы SAP.
  • Не используйте общую папку sapmnt ни для каких других действий, например, для интерфейсов.
  • Не используйте общую папку saptrans ни для каких других действий, например, для интерфейсов.
  • Избегайте консолидации долей для слишком большого количества систем SAP в одной учетной записи для хранения данных. Также существуют целевые показатели масштабируемости и производительности для учетных записей хранения. Будьте осторожны, чтобы не превышать ограничения учетной записи хранения.
  • Как правило, не следует консолидировать доли для более чем пяти систем SAP в одной учетной записи для хранения. Это позволит избежать превышения ограничений учетной записи хранения и упростит анализ производительности.
  • Как правило, избегайте смешивания общих папок, таких как sapmnt для непроизводственных и производственных систем SAP в одной учетной записи хранения.
  • Рекомендуется выполнить развертывание в SLES 15 SP2 или более поздней версии, чтобы получить преимущества усовершенствований клиента NFS.
  • Используйте частную конечную точку. В случае маловероятного зонального сбоя ваши сеансы NFS будут автоматически перенаправлены в работоспособную зону. Переподключать NFS-ресурсы на свои виртуальные машины не требуется.
  • Если вы развертываете виртуальные машины в зонах доступности, используйте учетную запись хранилища с ZRS в регионах Azure, поддерживающих ZRS.
  • Azure Files в настоящее время не поддерживает автоматическую репликацию между регионами для сценариев аварийного восстановления.

Развертывание ресурсов Azure NetApp Files

  1. Убедитесь, что служба Azure NetApp Files доступна в выбранном регионе Azure.

  2. Создать учетную запись NetApp в выбранном регионе Azure.

  3. Создайте пул емкости для Azure NetApp Files.

    Архитектура SAP NetWeaver, представленная в этой статье, использует один пул ресурсов Azure NetApp Files класса Premium. Мы рекомендуем использовать Azure NetApp Files Premium SKU для рабочих нагрузок приложений SAP NetWeaver в Azure.

  4. Делегировать подсеть на Azure NetApp Files.

  5. Создайте том NFS для Azure NetApp Files. Разверните тома в указанной подсети Azure NetApp Files . IP-адреса томов NetApp Azure назначаются автоматически.

    Помните, что ресурсы Azure NetApp Files и виртуальные машины Azure должны находиться в одной и той же виртуальной сети Azure или в одноранговых виртуальных сетях Azure. В этом примере используются два тома Azure NetApp Files: sapnw1 и trans. Пути файлов, подключенные к соответствующим точкам монтирования, следующие:

    • Том sapnw1 (nfs://10.27.1.5/sapnw1/sapmntNW1)
    • Том sapnw1 (nfs://10.27.1.5/sapnw1/usrsapNW1)
    • Том trans (nfs://10.27.1.5/trans)

Файловые системы SAP, к которым не требуется предоставлять общий доступ, также можно развернуть в Azure дисковом хранилище. Например, /usr/sap/NW1/D02 и /usr/sap/NW1/D03 можно развернуть как хранилище дисков Azure.

Важные аспекты для NFS на Azure NetApp Files

При рассмотрении Azure NetApp Files для архитектуры SAP NetWeaver в высокодоступной конфигурации следует учитывать следующие важные аспекты:

  • Минимальный размер пула емкости равен 4 ТиБ. Размер пула емкости можно увеличивать на 1 ТиБ.
  • Минимальный размер тома — 100 ГиБ.
  • Azure NetApp Files и все виртуальные машины, на которых подключены томы Azure NetApp Files, должны находиться в одной виртуальной сети Azure. Если они не в одной виртуальной сети, они должны находиться в одноранговых виртуальных сетях в одном регионе. Доступ к Azure NetApp Files через пиринг виртуальной сети в том же регионе поддерживается. Доступ к Azure NetApp Files через глобальную пиринговую сеть на данный момент не поддерживается.
  • Выбранная виртуальная сеть должна иметь делегированную подсеть для Azure NetApp Files.
  • Характеристики пропускной способности и производительности тома Azure NetApp Files зависят от квоты тома и уровня обслуживания, как описано в Service level for Azure NetApp Files. При изменении размера томов Azure NetApp Files для SAP убедитесь, что полученная пропускная способность соответствует требованиям приложения.
  • Azure NetApp Files предлагает политику export. Вы можете управлять клиентами, которым разрешен доступ, и типом доступа (например, чтение и запись или только чтение).
  • Azure NetApp Files пока не поддерживает учет зон. В настоящее время Azure NetApp Files не развертывается во всех зонах доступности в регионе Azure. Учитывайте потенциальное влияние задержки в некоторых регионах Azure.
  • Azure NetApp Files тома можно развернуть как тома NFSv3 или NFSv4.1. Оба протокола поддерживаются на уровне приложений SAP (ASCS/ERS, серверы приложений SAP).

Настройка ASCS

Следующим шагом является подготовка и установка экземпляров SAP ASCS и ERS.

Создание кластера Pacemaker

Чтобы создать базовый кластер Pacemaker для SAP ASCS, выполните действия, описанные в Setting Pacemaker на SUSE Linux Enterprise Server в Azure.

Подготовка к установке

Следующие элементы имеют префикс:

  • [A]: применимо ко всем узлам;
  • [1]: применимо только к узлу 1;
  • [2]: применимо только к узлу 2;
  1. [A] Установите последнюю версию соединителя SUSE.

    sudo zypper install sap-suse-cluster-connector
    
  2. [A] Установите агент ресурсов sapstartsrv.

    sudo zypper install sapstartsrv-resource-agents
    
  3. [A] Обновите агенты ресурсов SAP.

    Чтобы использовать конфигурацию, описанную в этой статье, необходимо установить исправление для пакета resource-agents. Вы можете проверить, установлено ли исправление, выполнив следующую команду.

    sudo grep 'parameter name="IS_ERS"' /usr/lib/ocf/resource.d/heartbeat/SAPInstance
    

    Результат должен быть аналогичен следующему примеру.

    <parameter name="IS_ERS" unique="0" required="0">;
    

    Если команде grep не удается найти параметр IS_ERS, необходимо установить исправление, указанное на странице скачивания SUSE.

    Внимание

    Необходимо установить по крайней мере sapstartsrv-resource-agents версии 0.91 и resource-agents версии 4.x с ноября 2021 г.

  4. [A] Настройте разрешение имени хоста.

    Можно использовать DNS-сервер или внести изменения в /etc/hosts на всех узлах. В этом примере показано, как использовать файл /etc/hosts.

    sudo vi /etc/hosts
    

    Вставьте следующие строки в /etc/hosts. Измените IP-адрес и имя узла в соответствии с параметрами среды.

    # IP address of cluster node 1
    10.27.0.6    sap-cl1
    
    # IP address of cluster node 2
    10.27.0.7     sap-cl2
    
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
    10.27.0.9   sapascs
    
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
    10.27.0.10    sapers
    
  5. [A] Настройте файл подкачки.

    sudo vi /etc/waagent.conf
    
    # Check if the ResourceDisk.Format property is already set to y, and if not, set it.
    ResourceDisk.Format=y
    
    # Set the ResourceDisk.EnableSwap property to y.
    # Create and use the SWAP file on the resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with the ResourceDisk.SwapSizeMB property.
    # The free space of resource disk varies by virtual machine size. Don't set a value that's too big. You can check the SWAP space by using the swapon command.
    ResourceDisk.SwapSizeMB=2000
    

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

    sudo service waagent restart
    

Подготовка каталогов SAP, если вы используете NFS на Azure Files

  1. [1] Создайте каталоги SAP в общей папке NFS.

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

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    sudo mount -t nfs sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
    
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    
    # Unmount the volume and delete the temporary directory.
    cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  2. [A] Создайте общие папки.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans
    
  3. [A] Подключите файловые системы.

    В простой конфигурации подключения кластер Pacemaker не управляет файловыми системами.

    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1 nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1/ /usr/sap/NW1 nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    
    # Mount the file systems.
    mount -a
    

    Примечание.

    Для файловых систем с поддержкой EiT используйте aznfs в качестве типа файловой системы в синтаксисе команды подключения. Ознакомьтесь с шифрованием NFS в Azure Files для SAP в системах Azure, чтобы узнать, как подключать файловые системы и включать шифрование данных в транзите (EiT).

Подготовка каталогов SAP, если вы используете NFS на Azure NetApp Files

Инструкции в этом разделе применимы только в томах Azure NetApp Files с протоколом NFSv4.1. Выполните настройку на всех виртуальных машинах, где подключены тома NFSv4.1 Azure NetApp Files.

  1. [A] Отключите сопоставление идентификаторов.

    1. Проверьте параметр домена NFS. Убедитесь, что домен настроен в качестве домена Azure NetApp Files по умолчанию, defaultv4iddomain.com. Также убедитесь, что для сопоставления задано значение nobody.

      sudo cat /etc/idmapd.conf
      # Examplepython-azure-mgmt-compute
      [General]
      Verbosity = 0
      Pipefs-Directory = /var/lib/nfs/rpc_pipefs
      Domain = defaultv4iddomain.com
      [Mapping]
      Nobody-User = nobody
      Nobody-Group = nobody
      
    2. Проверьте nfs4_disable_idmapping. Оно должно иметь значение Y.

      Чтобы создать структуру каталогов, в которой находится параметр nfs4_disable_idmapping, выполните команду mount. Невозможно вручную создать каталог /sys/modules , так как доступ зарезервирован для ядра и драйверов.

      # Check nfs4_disable_idmapping.
      cat /sys/module/nfs/parameters/nfs4_disable_idmapping
      # If you need to set nfs4_disable_idmapping to Y:
      mkdir /mnt/tmp
      mount 10.27.1.5:/sapnw1 /mnt/tmp
      umount  /mnt/tmp
      echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping
      # Make the configuration permanent.
      echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
      
  2. [1] Временно подключите том Azure NetApp Files к одной из виртуальных машин, а затем создайте каталоги SAP (пути к файлам).

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    
    # If you're using NFSv3:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 10.27.1.5:/sapnw1 /saptmp
    
    # If you're using NFSv4.1:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 10.27.1.5:/sapnw1 /saptmp
    
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    
    # Unmount the volume and delete the temporary directory.
    sudo cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  3. [A] Создайте общие папки.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans
    
  4. [A] Подключите файловые системы.

    В простой конфигурации подключения кластер Pacemaker не управляет файловыми системами.

    # If you're using NFSv3:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/sapnw1/usrsapNW1 /usr/sap/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=3,hard 0 0" >> /etc/fstab
    
    # If you're using NFSv4.1:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/sapnw1/usrsapNW1 /usr/sap/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    
    # Mount the file systems.
    mount -a
    

Установка SAP NetWeaver ASCS и ERS

  1. [1] Создайте виртуальный IP-адрес и пробу работоспособности для экземпляра ASCS.

    Внимание

    Мы рекомендуем использовать агент ресурсов azure-lb, который входит в состав пакета resource-agents с минимальной версией resource-agents-4.3.0184.6ee15eb2-4.13.1.

    sudo crm node standby sap-cl2
    sudo crm configure primitive vip_NW1_ASCS IPaddr2 \
      params ip=10.27.0.9 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ASCS azure-lb port=62000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ASCS nc_NW1_ASCS vip_NW1_ASCS \
      meta resource-stickiness=3000
    

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

    sudo crm_mon -r
    # Node sap-cl2: standby
    # Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl1
    # Resource Group: g-NW1_ASCS
    #  nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #  vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    
  2. [1] Установите SAP NetWeaver ASCS от имени привилегированного пользователя (root) на первом узле.

    Используйте имя виртуального узла, которое сопоставляется с IP-адресом интерфейсной конфигурации подсистемы балансировки нагрузки для ASCS (например, sapascs, 10.27.0.9) и номер экземпляра, который использовался для пробы подсистемы балансировки нагрузки (например, 00).

    Вы можете использовать параметр sapinstSAPINST_REMOTE_ACCESS_USER, чтобы разрешить пользователю без прав root подключиться к sapinst. Для установки SAP можно использовать параметр SAPINST_USE_HOSTNAME с именем виртуального узла.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<virtual_hostname>
    

    Если во время установки не удалось создать вложенную папку в /usr/sap/NW1/ASCS00, попробуйте задать владельца и группу папки ASCS00 и повторить попытку.

    chown nw1adm /usr/sap/NW1/ASCS00
    chgrp sapsys /usr/sap/NW1/ASCS00
    
  3. [1] Создайте виртуальный IP-ресурс и инструмент проверки работоспособности для экземпляра ERS.

    sudo crm node online sap-cl2
    sudo crm node standby sap-cl1
    
    sudo crm configure primitive vip_NW1_ERS IPaddr2 \
      params ip=10.27.0.10 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ERS azure-lb port=62101 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ERS nc_NW1_ERS vip_NW1_ERS
    

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

    sudo crm_mon -r
    
    # Node sap-cl1: standby
    # Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #  Resource Group: g-NW1_ERS
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ERS  (ocf::heartbeat:IPaddr2):     Started sap-cl2
    
  4. [2] Установите SAP NetWeaver ERS с правами суперпользователя на втором узле.

    Используйте имя виртуального узла, которое сопоставляется с IP-адресом интерфейсной конфигурации подсистемы балансировки нагрузки для ERS (например, sapers, 10.27.0.10) и номер экземпляра, который использовался для пробы подсистемы балансировки нагрузки (например, 01).

    Вы можете использовать параметр SAPINST_REMOTE_ACCESS_USER, чтобы разрешить пользователю без прав root подключаться к sapinst. Для установки SAP можно использовать параметр SAPINST_USE_HOSTNAME с именем виртуального узла.

    <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Примечание.

    Используйте SWPM SP 20 PL 05 или более поздней версии. В более ранних версиях разрешения устанавливаются неправильно, что приводит к сбою установки.

    Если во время установки не удалось создать вложенную папку в /usr/sap/NW1/ERS01, попробуйте задать владельца и группу папки ERS01 и повторить попытку.

    chown nw1adm /usr/sap/NW1/ERS01
    chgrp sapsys /usr/sap/NW1/ERS01
    
  5. [1] Адаптируйте профиль экземпляра ASCS.

    sudo vi /sapmnt/NW1/profile/NW1_ASCS00_sapascs
    
    # Change the restart command to a start command.
    # Restart_Program_01 = local $(_EN) pf=$(_PF).
    Start_Program_01 = local $(_EN) pf=$(_PF)
    
    # Add the following lines.
    service/halib = $(DIR_EXECUTABLE)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # Add the keepalive parameter, if you're using ENSA1.
    enque/encni/set_so_keepalive = TRUE
    

    Убедитесь, что параметры ОС keepalive для автономных серверов постановки в очередь 1 и 2 (ENSA1 и ENSA2) заданы так, как указано в примечании SAP 1410736.

    Теперь настройте профиль экземпляра ERS.

    sudo vi /sapmnt/NW1/profile/NW1_ERS01_sapers
    
    # Change the restart command to a start command.
    # Restart_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID).
    Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
    
    # Add the following lines.
    service/halib = $(DIR_EXECUTABLE)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # Remove Autostart from the ERS profile.
    # Autostart = 1
    
  6. [A] Настройте keepalive.

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

    Чтобы избежать отключения, необходимо задать параметр в профиле SAP NetWeaver ASCS, если используется ENSA1. Измените системные параметры Linux keepalive на всех серверах SAP как для ENSA1, так и для ENSA2. Для получения дополнительной информации см. Заметку SAP 1410736.

    # Change the Linux system configuration.
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  7. [A] Настройте пользователей SAP после установки.

    # Add sidadm to the haclient group.
    sudo usermod -aG haclient nw1adm
    
  8. [1] Добавьте службы SAP ASCS и ERS в файл sapservice.

    Добавьте запись службы ASCS во второй узел и скопируйте запись службы ERS в первый узел.

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh sap-cl2 "cat >>/usr/sap/sapservices"
    sudo ssh sap-cl2 "cat /usr/sap/sapservices" | grep ERS01 | sudo tee -a /usr/sap/sapservices
    
  9. [A] Отключение systemd служб сервера ASCS и ERS SAP. Этот шаг применим только в том случае, если systemd управляет платформой запуска SAP в соответствии с заметкой SAP 3115048.

    Примечание.

    При управлении экземплярами SAP, такими как SAP ASCS и SAP ERS, используя конфигурацию кластера SLES, необходимо внести другие изменения, чтобы интегрировать кластер с собственной системой запуска SAP на основе systemd; чтобы управляющие процедуры не компрометировали стабильность кластера. После установки или переключения платформы запуска SAP на настройку с поддержкой systemd, как указано в SAP Note 3115048, следует отключить systemd службы для экземпляров SAP ASCS и ERS.

    # Stop ASCS and ERS instances using <sid>adm
    sapcontrol -nr 00 -function Stop
    sapcontrol -nr 00 -function StopService
    
    sapcontrol -nr 01 -function Stop
    sapcontrol -nr 01 -function StopService
    
    # Execute below command on VM where you have performed ASCS instance installation (e.g. sap-cl1)
    sudo systemctl disable SAPNW1_00
    
    # Execute below command on VM where you have performed ERS instance installation (e.g. sap-cl2)
    sudo systemctl disable SAPNW1_01
    
  10. [A] Включите sapping и sappong. Агент sapping запускается перед sapinit, чтобы скрыть файл /usr/sap/sapservices. Агент sappong запускается после sapinit, чтобы отменить скрытие файла sapservices во время загрузки виртуальной машины. SAPStartSrv не запускается автоматически для экземпляра SAP во время загрузки, так как управление им осуществляет кластер Pacemaker.

    sudo systemctl enable sapping
    sudo systemctl enable sappong
    
  11. [1] Создайте SAPStartSrv ресурс для ASCS и ERS, создав файл и загрузив файл.

    vi crm_sapstartsrv.txt
    

    Введите следующий текст crm_sapstartsrv.txt и сохраните его:

    primitive rsc_sapstartsrv_NW1_ASCS00 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ASCS00_sapascs
    
    primitive rsc_sapstartsrv_NW1_ERS01 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ERS01_sapers
    

    Загрузите файл с помощью следующей команды:

    sudo crm configure load update crm_sapstartsrv.txt
    

    Примечание.

    Если вы настроили ресурс SAPStartSrv с помощью crm configure primitive команды в оболочке CRM версииcrmsh 4.4.0+20220708.6ed6b56f-150400.3.3.1 или более поздней, важно проверить конфигурацию примитивов ресурсов SAPStartSrv. Если операция монитора присутствует, ее следует удалить. В то время как SUSE также предлагает удаление операций запуска и остановки, они не столь важны, как операция мониторинга. Дополнительные сведения см. в последних изменениях crmsh пакета в SUSE KB000021423.

  12. [1] Создайте кластерные ресурсы SAP.

    В зависимости от того, выполняется ли система ENSA1 или ENSA2, выберите соответствующую вкладку, чтобы определить ресурсы. SAP представила поддержку ENSA2, включая репликацию, в SAP NetWeaver версии 7.52. Начиная с ABAP Platform 1809, ENSA2 устанавливается по умолчанию. Сведения о поддержке ENSA2 см. в примечании SAP 2630416.

    sudo crm configure property maintenance-mode="true"
    
    # If you're using NFS on Azure Files or NFSv3 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If you're using NFS on Azure Files or NFSv3 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \
     meta priority=1000
    
    # If you're using NFSv4.1 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
     op monitor interval=11 timeout=105 on-fail=restart \
     params InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If you're using NFSv4.1 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
     op monitor interval=11 timeout=105 on-fail=restart \
     params InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \
     meta priority=1000
    
    sudo crm configure modgroup g-NW1_ASCS add rsc_sapstartsrv_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ERS add rsc_sapstartsrv_NW1_ERS01
    sudo crm configure modgroup g-NW1_ERS add rsc_sap_NW1_ERS01
    
    sudo crm configure colocation col_sap_NW1_no_both -5000: g-NW1_ERS g-NW1_ASCS
    sudo crm configure location loc_sap_NW1_failover_to_ers rsc_sap_NW1_ASCS00 rule 2000: runs_ers_NW1 eq 1
    sudo crm configure order ord_sap_NW1_first_start_ascs Optional: rsc_sap_NW1_ASCS00:start rsc_sap_NW1_ERS01:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online sap-cl1
    sudo crm configure property maintenance-mode="false"
    

При обновлении с более старой версии и переходе на ENSA2, см. примечание SAP 2641019.

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

sudo crm_mon -r
# Full list of resources:
#
# stonith-sbd     (stonith:external/sbd): Started sap-cl2
#  Resource Group: g-NW1_ASCS
#      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
#      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
#      rsc_sapstartsrv_NW1_ASCS00 (ocf::suse:SAPStartSrv):        Started sap-cl1
#      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
#  Resource Group: g-NW1_ERS
#      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
#      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started sap-cl2
#      rsc_sapstartsrv_NW1_ERS01  (ocf::suse:SAPStartSrv):        Started sap-cl2
#      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1

Примечание.

Кластер SAP ASCS/ERS можно расширить с 2 узла до 3-узла с 3-м узлом в качестве свободного узла для отработки отказа служб ASCS или ERS.

  • Настройка 3 узла может использоваться только для систем SAP с помощью SAP Enqueue Replication Server 2 (ENSA2).
  • Свойство priority-fencing-delay кластера не должно использоваться в кластере с 3 узлами.

Подготовка сервера приложений SAP

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

В описанных ниже основных шагах предполагается, что сервер приложений установлен на сервере, отличном от серверов ASCS/SCS и HANA:

  1. Настройте разрешение имени хоста.

    Можно использовать DNS-сервер или внести изменения в /etc/hosts на всех узлах. В этом примере показано, как использовать файл /etc/hosts.

    sudo vi /etc/hosts
    

    Вставьте следующие строки в /etc/hosts. Измените IP-адрес и имя узла в соответствии с параметрами среды.

    10.27.0.6   sap-cl1
    10.27.0.7   sap-cl2
    
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
    10.27.0.9   sapascs
    
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
    10.27.0.10  sapers
    10.27.0.8   sapa01
    10.27.0.12  sapa02
    
  2. Настройте файл подкачки.

    sudo vi /etc/waagent.conf
    
    # Set the ResourceDisk.EnableSwap property to y.
    # Create and use the SWAP file on the resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file by using the ResourceDisk.SwapSizeMB property.
    # The free space of the resource disk varies by virtual machine size. Don't set a value that's too big. You can check the SWAP space by using the swapon command.
    ResourceDisk.SwapSizeMB=2000
    

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

    sudo service waagent restart
    

Подготовка каталогов SAP

Если вы используете NFS на Azure Files, используйте следующие инструкции для подготовки каталогов SAP на виртуальных машинах сервера приложений SAP:

  1. Создайте точки подключения.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  2. Подключите файловые системы.

    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    
    # Mount the file systems.
    mount -a
    

    Примечание.

    Для файловых систем с поддержкой EiT используйте aznfs в качестве типа файловой системы в синтаксисе команды подключения. Ознакомьтесь с шифрованием NFS при передаче данных для SAP в системах Azure, чтобы узнать, как включить шифрование при передаче и подключить файловые системы.

Если вы используете NFS на Azure NetApp Files, выполните следующие инструкции по подготовке каталогов SAP на виртуальных машинах сервера приложений SAP:

  1. Создайте точки подключения.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  2. Подключите файловые системы.

    # If you're using NFSv3:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=3, hard 0 0" >> /etc/fstab
    
    # If you're using NFSv4.1:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    
    # Mount the file systems.
    mount -a
    

Установка базы данных

В этом примере SAP NetWeaver устанавливается на SAP HANA. Для этой установки можно использовать любую поддерживаемую базу данных. Дополнительные сведения об установке SAP HANA в Azure см. в статье Доступность SAP HANA на виртуальных машинах Azure. Список поддерживаемых баз данных см. в примечании SAP 1928533.

Установите экземпляр базы данных SAP NetWeaver от имени привилегированного пользователя (root), используя имя виртуального узла, которое сопоставляется с IP-адресом интерфейсной конфигурации подсистемы балансировки нагрузки для базы данных Вы можете использовать параметр SAPINST_REMOTE_ACCESS_USER, чтобы разрешить пользователю без прав root подключаться к sapinst.

sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin

Установка сервера приложений SAP NetWeaver

Для установки сервера приложений SAP выполните следующие действия:

  1. [A] Подготовьте сервер приложений.

    Выполните действия, описанные в разделе Подготовка сервера приложений SAP NetWeaver.

  2. [A] Установите основной или дополнительный сервер приложений SAP NetWeaver.

    Вы можете использовать параметр SAPINST_REMOTE_ACCESS_USER, чтобы разрешить пользователю без прав root подключаться к sapinst.

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A] обновите безопасное хранилище SAP HANA, чтобы указать виртуальное имя установки репликации системы SAP HANA.

    Чтобы получить список записей, выполните следующую команду:

    hdbuserstore List
    

    Эта команда должна выводить список всех записей, как в этом примере.

    DATA FILE       : /home/nw1adm/.hdb/sapa01/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/sapa01/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 10.27.0.4:30313
      USER: SAPABAP1
      DATABASE: NW1
    

    В этом примере IP-адрес точек входа по умолчанию указывает на виртуальную машину, а не на подсистему балансировки нагрузки. Измените запись так, чтобы она указывала на имя виртуального узла балансировщика нагрузки. Убедитесь в том, что используются одни и те же номер порта и имя базы данных. Например, используйте 30313 и NW1 в примере выходных данных.

    su - nw1adm
    hdbuserstore SET DEFAULT nw1db:30313@NW1 SAPABAP1 <password of ABAP schema>
    

Проверка настроенного кластера

Тщательно протестируйте кластер Pacemaker. Выполните типичные тесты переключения при отказе.

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