Поделиться через


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

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

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

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

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

Обзор

В этой статье описывается конфигурация высокого уровня доступности для 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 NW1

Внимание

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

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

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

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

Агент ресурсов для экземпляра 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 Load Balancer

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

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

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

Примечание.

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

Примечание.

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

Внимание

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

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

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

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

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

NFS в Файлах Azure работает на основе премиум хранилища Файлов Azure. Перед настройкой NFS в службе Файлы Azure см. статью Создание общей папки NFS.

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

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

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

  1. Разверните учетную запись хранения Файлов Azure с именем 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. На вкладке Интеграция частной зоны DNS примите значение по умолчанию Да для параметра Интеграция с частной зоной 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.

Важные рекомендации для NFS на ресурсах Azure Files

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

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

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

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

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

  3. Настройте пул емкости Azure NetApp Files. Следуйте этим инструкциям.

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

  4. Делегируйте подсеть службе Azure NetApp Files, как описано в этих инструкциях.

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

    Учтите, что ресурсы 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 являются функцией квоты тома и уровня обслуживания, как описано в статье Уровни обслуживания для Azure NetApp Files. При определении размера томов Azure NetApp Files для SAP убедитесь, что полученная пропускная способность соответствует требованиям приложения.
  • Служба Azure NetApp Files предлагает политику экспорта. Вы можете управлять клиентами, которым разрешен доступ, и типом доступа (например, чтение и запись или только чтение).
  • Служба Azure NetApp Files пока не поддерживает зоны. Сейчас служба Azure NetApp Files развернута не во всех зонах доступности региона Azure. Учитывайте возможную задержку в некоторых регионах Azure.
  • Тома Azure NetApp Files можно развернуть в виде томов NFSv3 или NFSv4.1. Оба протокола поддерживаются на уровне приложений SAP (ASCS/ERS, серверы приложений SAP).

Настройка ASCS

Далее вы подготовите и установите экземпляры SAP ASCS и ERS.

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

Следуйте указаниям в статье Настройка кластера Pacemaker в SUSE Linux Enterprise Server в Azure, чтобы создать базовый кластер Pacemaker для SAP ASCS.

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

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

  • [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

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

    Временно подключите общую папку NFS sapnw1 к одной из виртуальных машин и создайте каталоги 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 
    

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

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

  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).

    Чтобы разрешить непривилегированному пользователю подключаться к sapinst, можно использовать параметр SAPINST_REMOTE_ACCESS_USERsapinst. Для установки 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, чтобы разрешить непривилегированному пользователю подключаться к 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. Этот шаг применим только, если фреймворк запуска SAP управляется systemd согласно заметке 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…" в версии crmsh 4.4.0+20220708.6ed6b56f-150400.3.3.1 или более поздней, важно проверить конфигурацию ресурсов примитивов SAPStartSrv. Если операция монитора присутствует, ее следует удалить. В то время как SUSE также предлагает удалить операции запуска и остановки, но это не так важно, как операция мониторинга. Дополнительные сведения см. в текстах о последних изменениях пакета crmsh, которые могут привести к неподдерживаемой настройке агента ресурсов SAPStartSrv в кластере SAP NetWeaver HA.

  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/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, выполните следующие инструкции для подготовки каталогов 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 
    

Если вы используете 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, чтобы разрешить непривилегированному пользователю подключаться к sapinst.

sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin

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

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

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

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

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

    Вы можете использовать параметр SAPINST_REMOTE_ACCESS_USER, чтобы разрешить непривилегированному пользователю подключаться к 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. Выполните типовые тесты переключения на резерв.

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