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 или Azure NetApp Files.

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

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

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

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

Важно!

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

Diagram that shows SAP NetWeaver high availability with simple mount and NFS.

На этой схеме показана типовая архитектура SAP NetWeaver с высоким уровнем доступности за счет простого подключения. Файловые системы sapmnt и saptrans развертываются в собственных общих папках NFS Azure: общих папках NFS в Файлах Azure или томах 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 виртуальная сеть и подсеть.

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

Настройка Azure Load Balancer

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

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

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

Примечание.

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

Важно!

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

Примечание.

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

Важно!

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

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

Существует два варианта развертывания собственных ресурсов NFS Azure для размещения общих каталогов SAP. Вы можете развернуть общую папку NFS в Файлах Azure или развернуть том 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 NFS версии 4.1 в Файлах Azure с соответствующей избыточностью. Проверьте доступность Файлов Azure по регионам Azure в хранилище файлов ценовой категории "Премиум". Если в вашем сценарии используются преимущества ZRS, убедитесь в том, что в регионе Azure поддерживаются общие папки ценовой категории "Премиум" с ZRS.

Для обращения к учетной записи хранения Azure рекомендуется использовать частную конечную точку Azure. Не забудьте развернуть конечную точку учетной записи хранения Файлов Azure и виртуальные машины, на которых необходимо подключить общие папки 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

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

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

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

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

    Учтите, что ресурсы 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-4.3.0184.6ee15eb2-4.13.1, входящий в состав пакета resource-agents.

    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, можно использовать параметр sapinstSAPINST_REMOTE_ACCESS_USER. Для установки 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, можно использовать параметр SAPINST_REMOTE_ACCESS_USER. Для установки 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_CT_RUN)/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_CT_RUN)/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] Включите sapping и sappong. Агент sapping запускается перед sapinit, чтобы скрыть файл /usr/sap/sapservices. Агент sappong запускается после sapinit, чтобы отменить скрытие файла sapservices во время загрузки виртуальной машины. SAPStartSrv не запускается автоматически для экземпляра SAP во время загрузки, так как управление им осуществляет кластер Pacemaker.

    sudo systemctl enable sapping
    sudo systemctl enable sappong
    
  10. [1] Создайте кластерные ресурсы SAP.

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

    sudo crm configure property maintenance-mode="true"
    
    sudo crm configure primitive rsc_sapstartsrv_NW1_ASCS00 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ASCS00_sapascs
    
    sudo crm configure primitive rsc_sapstartsrv_NW1_ERS01 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ERS01_sapers
    
    # 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"
    

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

sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin

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

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

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

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

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

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

    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. Выполните типовые тесты отработки отказа.

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