Обеспечение высокого уровня доступности виртуальных машин Azure для SAP NetWeaver на SUSE Linux Enterprise Server с помощью Azure NetApp Files для приложений SAP

В этой статье объясняется, как настроить высокий уровень доступности для приложения SAP NetWeaver с помощью Azure NetApp Files.

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

В примерах конфигураций, команд установки и т. д. экземпляру ASCS задан номер 00, экземпляру ERS — номер 01, экземпляру основного приложения (PAS) — номер 02, экземпляру приложения (AAS) — номер 03. Используется QAS с идентификатором системы SAP. В этой статье нет подробных сведений об уровне базы данных.

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

Обзор

Для обеспечения высокого уровня доступности (HA) центральных служб SAP NetWeaver требуется общее хранилище. Ранее для выполнения этой задачи в SUSE Linux было необходимо создавать отдельный высокодоступный кластер NFS.

Теперь можно достичь высокого уровня доступности SAP Netweaver с помощью общего хранилища, развернутого в Azure NetApp Files. Использование службы Azure NetApp Files для общего хранилища избавляет от необходимости развертывания дополнительного кластера NFS. Для обеспечения высокого уровня доступности центральных служб SAP NetWeaver (ASCS/SCS) по-прежнему требуется Pacemaker.

SAP NetWeaver High Availability overview

SAP NetWeaver ASCS, SAP NetWeaver SCS, SAP NetWeaver ERS и база данных SAP HANA используют виртуальное имя узла и виртуальные IP-адреса. Load Balancer в Azure должен использовать виртуальный IP-адрес. Мы рекомендуем Load Balancer (цен. категория "Стандартный"). В представленной конфигурации показана следующая подсистема балансировки нагрузки:

  • Интерфейсный IP-адрес 10.1.1.20 для ASCS
  • Интерфейсный IP-адрес 10.1.1.21 для ERS
  • Порт пробы 62000 для ASCS
  • Порт пробы 62101 для ERS

Настройка инфраструктуры Azure NetApp Files

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

Служба Azure NetApp Files доступна в нескольких регионах Azure.

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

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

  1. Создайте учетную запись NetApp в выбранном регионе Azure, следуя этим инструкциям.
  2. Настройте пул емкости Azure NetApp Files, следуя инструкциям по настройке пула емкости Azure NetApp Files.
    В архитектуре SAP NetWeaver, представленной в этой статье, используется один пул емкости Azure NetApp Files с номером SKU категории "Премиум". Он является рекомендуемым для рабочей нагрузки приложения SAP NetWeaver в Azure.
  3. Делегируйте подсеть в Azure NetApp Files согласно инструкциям по делегированию подсети в Azure NetApp Files.
  4. Разверните тома Azure NetApp Files, следуя инструкциям по созданию тома для Azure NetApp Files. Разверните тома в выделенной подсети Azure NetApp Files. IP-адреса томов Azure NetApp Files назначаются автоматически. Учтите, что ресурсы Azure NetApp Files и виртуальные машины Azure должны находиться в одной виртуальной сети Azure или в одноранговых виртуальных сетях Azure. В этом примере мы используем два тома Azure NetApp Files: sapQAS и trans. Пути к файлам, подключенным к соответствующим точкам подключения, — /usrsapqas/sapmntQAS, /usrsap qas/usrsapQASsys и т. д.
    1. volume sapQAS (nfs://10.1.0.4/usrsapqas/sapmntQAS)
    2. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASascs)
    3. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASsys)
    4. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASers)
    5. volume trans (nfs://10.1.0.4/trans)
    6. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASpas)
    7. volume sapQAS (nfs://10.1.0.4/usrsapqas/usrsapQASaas)

В этом примере мы использовали Azure NetApp Files для всех файловых систем SAP NetWeaver, чтобы продемонстрировать использование этой службы. Файловые системы SAP, которые не нужно подключать через NFS, можно также развернуть как хранилище дисков Azure. В этом примере a-e должен быть в Azure NetApp Files, а f-g (т. е. /usr/sap/QAS/D02, /usr/sap/QAS/D03) можно развернуть в качестве хранилища дисков Azure.

Важные замечания

При выборе Azure NetApp Files для архитектуры с высоким уровнем доступности SAP NetWeaver в SUSE учитывайте следующие важные моменты.

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

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

Агент ресурсов для экземпляра 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-адрес не поддерживается для вторичных 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 . Необходимо ли обновить?.

Отключите сопоставление идентификаторов (если используется NFSv4.1).

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

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

    Важно!

    Обязательно укажите домен NFS в /etc/idmapd.conf виртуальной машине в соответствии с конфигурацией домена по умолчанию в Azure NetApp Files: defaultv4iddomain.com. В случае несоответствия между конфигурацией домена на клиенте NFS (т. е. виртуальной машине) и NFS-сервере (т. е. конфигурацией Azure NetApp) разрешения для файлов на томах NetApp в Azure, подключенных к виртуальным машинам, будут отображаться как nobody.

    sudo cat /etc/idmapd.conf
    
    # Example
    [General]
    Verbosity = 0
    Pipefs-Directory = /var/lib/nfs/rpc_pipefs
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    
  2. [A] Проверьте параметр nfs4_disable_idmapping. Оно должно иметь значение Y. Чтобы создать структуру каталогов, где nfs4_disable_idmapping находится, выполните команду подключения. Вы не сможете вручную создать каталог в /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.1.0.4:/sapmnt/qas /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
    

Настройка (A)SCS

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

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

Следуйте указаниям в статье Настройка кластера Pacemaker в SUSE Linux Enterprise Server в Azure, чтобы создать базовый кластер Pacemaker для этого (A)SCS-сервера.

Установка

Ниже приведены элементы с префиксами: [A] — применяется ко всем узлам, [1] — применяется только к узлу 1, [2] — применяется только к узлу 2.

  1. [A] Установите соединитель SUSE.

    sudo zypper install sap-suse-cluster-connector
    

    Примечание.

    Известная проблема с использованием тире в именах узлов устранена в версии 3.1.1 пакета sap-suse-cluster-connector. Если вы работаете с узлами кластеров, содержащими тире в имени узла, следует использовать как минимум версию 3.1.1 пакета sap-suse-cluster-connector. Иначе кластер не будет работать.

    Убедитесь, что вы установили новую версию соединителя кластера SAP SUSE. Старая версия называется sap_suse_cluster_connector, а новая — sap-suse-cluster-connector.

    sudo zypper info sap-suse-cluster-connector
    
    # Information for package sap-suse-cluster-connector:
    # ---------------------------------------------------
    # Repository     : SLE-12-SP3-SAP-Updates
    # Name           : sap-suse-cluster-connector
    # Version        : 3.1.0-8.1
    # Arch           : noarch
    # Vendor         : SUSE LLC <https://www.suse.com/>
    # Support Level  : Level 3
    # Installed Size : 45.6 KiB
    # Installed      : Yes
    # Status         : up-to-date
    # Source package : sap-suse-cluster-connector-3.1.0-8.1.src
    # Summary        : SUSE High Availability Setup for SAP Products
    
  2. [A] Обновите агенты ресурсов SAP.

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

    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.

    # example for patch for SLES 12 SP1
    sudo zypper in -t patch SUSE-SLE-HA-12-SP1-2017-885=1
    
    # example for patch for SLES 12 SP2
    sudo zypper in -t patch SUSE-SLE-HA-12-SP2-2017-886=1
    
  3. [A] Установите разрешения имен.

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

    sudo vi /etc/hosts
    

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

    # IP address of cluster node 1
    10.1.1.18    anftstsapcl1
    # IP address of cluster node 2
    10.1.1.6     anftstsapcl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.1.1.20    anftstsapvh
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.1.1.21    anftstsapers
    
  4. [1] Создайте каталоги SAP в томе Azure NetApp Files.

    Временно подключите том Azure NetApp Files к одной из виртуальных машин и создайте каталоги SAP (пути к файлам).

    # mount temporarily the volume
    sudo mkdir -p /saptmp
    # If using NFSv3
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 10.1.0.4:/sapQAS /saptmp
    # If using NFSv4.1
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 10.1.0.4:/sapQAS /saptmp
    # create the SAP directories
    sudo cd /saptmp
    sudo mkdir -p sapmntQAS
    sudo mkdir -p usrsapQASascs
    sudo mkdir -p usrsapQASers
    sudo mkdir -p usrsapQASsys
    sudo mkdir -p usrsapQASpas
    sudo mkdir -p usrsapQASaas
    # unmount the volume and delete the temporary directory
    sudo cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    

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

  1. [A] Создайте общие папки.

    sudo mkdir -p /sapmnt/QAS
    sudo mkdir -p /usr/sap/trans
    sudo mkdir -p /usr/sap/QAS/SYS
    sudo mkdir -p /usr/sap/QAS/ASCS00
    sudo mkdir -p /usr/sap/QAS/ERS01
    
    sudo chattr +i /sapmnt/QAS
    sudo chattr +i /usr/sap/trans
    sudo chattr +i /usr/sap/QAS/SYS
    sudo chattr +i /usr/sap/QAS/ASCS00
    sudo chattr +i /usr/sap/QAS/ERS01
    
  2. [A] Настройте autofs.

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    /- /etc/auto.direct
    

    Если используется NFSv3, создайте файл со следующим текстом:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=3,nobind 10.1.0.4:/trans
    /usr/sap/QAS/SYS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/usrsapQASsys
    

    Если используется NFSv4.1, создайте файл со следующим текстом:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/trans
    /usr/sap/QAS/SYS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/usrsapQASsys
    

    Примечание.

    При подключении томов Azure NetApp Files следует использовать соответствующую версию протокола NFS. Если тома Azure NetApp Files созданы как тома NFSv3, применяйте соответствующую конфигурацию NFSv3. Если тома Azure NetApp Files созданы как тома NFSv4.1, следуйте инструкциям по отключению сопоставления идентификаторов и обязательно используйте соответствующую конфигурацию NFSv4.1. В этом примере тома Azure NetApp Files были созданы как тома NFSv3.

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

    sudo systemctl enable autofs
    sudo service autofs restart
    
  3. [A] Настройте файл подкачки.

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

    Перезапустите агент, чтобы активировать изменения:

    sudo service waagent restart
    

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

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

    Важно!

    В ходе последних тестов были выявлены ситуации, когда netcat перестает отвечать на запросы из-за невыполненной работы и ограничения на обработку только одного подключения. Ресурс netcat прекращает прослушивать запросы Azure Load Balancer, и плавающий IP-адрес становится недоступным.
    Для существующих кластеров Pacemaker ранее рекомендовалось заменять netcat на socat. Сейчас мы рекомендуем использовать агент ресурса azure-lb, который входит в состав пакета resource-agents со следующими требованиями к версии пакета:

    • Минимальная версия для SLES 12 SP4/SP5 — resource-agents-4.3.018.a7fb5035-3.30.1.
    • Минимальная версия для SLES 15/15 с пакетом обновления 1 (SP1) — resource-agents-4.3.0184.6ee15eb2-4.13.1.

    Обратите внимание, что для этого изменения потребуется незначительное время простоя.
    Если конфигурация существующих кластеров Pacemaker уже была изменена для использования socat, как описано в этой статье, немедленно переключаться на агент ресурса azure-lb не нужно.

    sudo crm node standby anftstsapcl2
    
    # If using NFSv3
    sudo crm configure primitive fs_QAS_ASCS Filesystem device='10.1.0.4/usrsapqas/usrsapQASascs' directory='/usr/sap/QAS/ASCS00' fstype='nfs' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    # If using NFSv4.1
    sudo crm configure primitive fs_QAS_ASCS Filesystem device='10.1.0.4:/usrsapqas/usrsapQASascs' directory='/usr/sap/QAS/ASCS00' fstype='nfs' options='sec=sys,nfsvers=4.1' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=105s
    
    sudo crm configure primitive vip_QAS_ASCS IPaddr2 \
      params ip=10.1.1.20 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_QAS_ASCS azure-lb port=62000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-QAS_ASCS fs_QAS_ASCS nc_QAS_ASCS vip_QAS_ASCS \
       meta resource-stickiness=3000
    

    Убедитесь, что состояние кластера — "ОК" и что запущены все ресурсы. Неважно, на каком узле выполняются ресурсы.

    sudo crm_mon -r
    
    # Node anftstsapcl2: standby
    # Online: [ anftstsapcl1 ]
    # 
    # Full list of resources:
    #
    # Resource Group: g-QAS_ASCS
    #     fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl1
    #     nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl1
    #     vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl1
    # stonith-sbd     (stonith:external/sbd): Started anftstsapcl2
    
  2. [1] Установите SAP NetWeaver ASCS.

    Установите SAP NetWeaver ASCS в качестве корневого на первом узле, используя имя виртуального узла, которое сопоставляется с внешним IP-адресом подсистемы балансировки нагрузки ASCS (например, anftstsapvh, 10.1.1.20) и экземпляром номера, который использовался для проверки подсистемы балансировки нагрузки, например 00.

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

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

    Если установка завершилась ошибкой при создании вложенной папки в /usr/sap/QAS/ASCS00, попробуйте задать владельца и группу ASCS папки 00 и повторите заново.

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

    sudo crm node online anftstsapcl2
    sudo crm node standby anftstsapcl1
    
    # If using NFSv3
    sudo crm configure primitive fs_QAS_ERS Filesystem device='10.1.0.4:/usrsapqas/usrsapQASers' directory='/usr/sap/QAS/ERS01' fstype='nfs' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    # If using NFSv4.1
    sudo crm configure primitive fs_QAS_ERS Filesystem device='10.1.0.4:/usrsapqas/usrsapQASers' directory='/usr/sap/QAS/ERS01' fstype='nfs' options='sec=sys,nfsvers=4.1' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=105s
    
    sudo crm configure primitive vip_QAS_ERS IPaddr2 \
      params ip=10.1.1.21 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_QAS_ERS azure-lb port=62101 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-QAS_ERS fs_QAS_ERS nc_QAS_ERS vip_QAS_ERS
    

    Убедитесь, что состояние кластера — "ОК" и что запущены все ресурсы. Неважно, на каком узле выполняются ресурсы.

    sudo crm_mon -r
    
    # Node anftstsapcl1: standby
    # Online: [ anftstsapcl2 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started anftstsapcl2
    #  Resource Group: g-QAS_ASCS
    #      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl2
    #      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
    #  Resource Group: g-QAS_ERS
    #      fs_QAS_ERS (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_ERS (ocf::heartbeat:azure-lb):      Started anftstsapcl2
    #      vip_QAS_ERS  (ocf::heartbeat:IPaddr2):     Started anftstsapcl2
    
  4. [2] Установите SAP NetWeaver ERS.

    Установите SAP NetWeaver ERS в качестве корневого на втором узле, используя имя виртуального узла, которое сопоставляется с внешним IP-адресом подсистемы балансировки нагрузки ERS (например, anftstsapers, 10.1.1.21) и экземпляром номера, который использовался для проверки подсистемы балансировки нагрузки, например 01.

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

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

    Примечание.

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

    Если установка завершилась ошибкой при создании вложенной папки в /usr/sap/QAS/ERS01, попробуйте задать владельца и группу ERS папки 01 и повторите заново.

    chown qasadm /usr/sap/QAS/ERS01
    chgrp sapsys /usr/sap/QAS/ERS01
    
  5. [1] Адаптируйте профили экземпляров ASCS/SCS и ERS.

    • Профиль ASCS/SCS

      sudo vi /sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh
      
      # 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 keep alive parameter, if using ENSA1
      enque/encni/set_so_keepalive = true
      

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

    • Профиль ERS

      sudo vi /sapmnt/QAS/profile/QAS_ERS01_anftstsapers
      
      # 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 ERS profile
      # Autostart = 1
      
  6. [A] Настройте активность.

    Обмен данными между сервером приложений SAP NetWeaver и ASCS/SCS происходит через программный балансировщик нагрузки. Балансировщик нагрузки отключает неактивные подключения по истечении времени ожидания, которое можно настроить. Чтобы исключить такое функционирование, нужно задать соответствующий параметр в профиле SAP NetWeaver ASCS/SCS, если используется 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 qasadm
    
  8. [1] Добавьте службы SAP ASCS и ERS в файл sapservice.

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

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh anftstsapcl2 "cat >>/usr/sap/sapservices"
    sudo ssh anftstsapcl2 "cat /usr/sap/sapservices" | grep ERS01 | sudo tee -a /usr/sap/sapservices
    
  9. [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 using NFSv3
    sudo crm configure primitive rsc_sap_QAS_ASCS00 SAPInstance \
        operations \$id=rsc_sap_QAS_ASCS00-operations \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
        AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If using NFSv4.1
    sudo crm configure primitive rsc_sap_QAS_ASCS00 SAPInstance \
        operations \$id=rsc_sap_QAS_ASCS00-operations \
        op monitor interval=11 timeout=105 on-fail=restart \
        params InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
        AUTOMATIC_RECOVER=false \
        meta resource-stickiness=5000 failure-timeout=105 migration-threshold=1 priority=10
    
    # If using NFSv3   
    sudo crm configure primitive rsc_sap_QAS_ERS01 SAPInstance \
        operations \$id=rsc_sap_QAS_ERS01-operations \
        op monitor interval=11 timeout=60 on-fail=restart \
        params InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" AUTOMATIC_RECOVER=false IS_ERS=true \
        meta priority=1000
    
    # If using NFSv4.1
    sudo crm configure primitive rsc_sap_QAS_ERS01 SAPInstance \
        operations \$id=rsc_sap_QAS_ERS01-operations \
        op monitor interval=11 timeout=105 on-fail=restart \
        params InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" AUTOMATIC_RECOVER=false IS_ERS=true \
        meta priority=1000
    
    sudo crm configure modgroup g-QAS_ASCS add rsc_sap_QAS_ASCS00
    sudo crm configure modgroup g-QAS_ERS add rsc_sap_QAS_ERS01
    
    sudo crm configure colocation col_sap_QAS_no_both -5000: g-QAS_ERS g-QAS_ASCS
    sudo crm configure location loc_sap_QAS_failover_to_ers rsc_sap_QAS_ASCS00 rule 2000: runs_ers_QAS eq 1
    sudo crm configure order ord_sap_QAS_first_start_ascs Optional: rsc_sap_QAS_ASCS00:start rsc_sap_QAS_ERS01:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online anftstsapcl1
    sudo crm configure property maintenance-mode="false"
    

При переходе на более новую версию сервера постановки в очередь 2 см. примечание к SAP 2641019.

Примечание.

Более длительное время ожидания, которое предполагается при использовании NFSv4.1, нужно из-за зависящих от протокола приостановок, связанных с продлением аренды NFSv4.1. Дополнительные сведения см. в статье NFS в netApp Best practices.

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

Убедитесь, что состояние кластера — "ОК" и что запущены все ресурсы. Неважно, на каком узле выполняются ресурсы.

sudo crm_mon -r
  
# Full list of resources:
#
# stonith-sbd     (stonith:external/sbd): Started anftstsapcl2
#  Resource Group: g-QAS_ASCS
#      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl1
#      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl1
#      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl1
#      rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
#  Resource Group: g-QAS_ERS
#      fs_QAS_ERS (ocf::heartbeat:Filesystem):    Started anftstsapcl2
#      nc_QAS_ERS (ocf::heartbeat:azure-lb):      Started anftstsapcl2
#      vip_QAS_ERS        (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
#      rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl2

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

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

В шагах ниже предполагается, что сервер приложений установлен на сервере, отличном от серверов ASCS/SCS и HANA. В противном случае некоторые из приведенных ниже шагов (например, настройка разрешения имен узла) не требуются.

Ниже приведены элементы с префиксами: [A] — применяется к PAS и AAS, [P] — применяется только к PAS, [S] — применяется только к узлу AAS.

  1. [A] Настройка операционной системы

    Уменьшите размер "грязного" кэша. Дополнительные сведения см. в статье Low write performance on SLES 11/12 servers with large RAM (Низкая производительность записи на серверах SLES 11/12 с большим объем ОЗУ).

    sudo vi /etc/sysctl.conf
    
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    
  2. [A] Установите разрешения имен.

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

    sudo vi /etc/hosts
    

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

    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS/SCS
    10.1.1.20 anftstsapvh
    # IP address of the load balancer frontend configuration for SAP NetWeaver ERS
    10.1.1.21 anftstsapers
    # IP address of all application servers
    10.1.1.15 anftstsapa01
    10.1.1.16 anftstsapa02
    
  3. [A] Создайте каталог sapmnt.

    sudo mkdir -p /sapmnt/QAS
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/QAS
    sudo chattr +i /usr/sap/trans
    
  4. [P] Создайте каталог PAS.

    sudo mkdir -p /usr/sap/QAS/D02
    sudo chattr +i /usr/sap/QAS/D02
    
  5. [S] Создайте каталог AAS.

    sudo mkdir -p /usr/sap/QAS/D03
    sudo chattr +i /usr/sap/QAS/D03
    
  6. [P] Настройте autofs в PAS.

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    /- /etc/auto.direct
    

    Если используется NFSv3, создайте файл со следующим текстом:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=3,nobind 10.1.0.4:/trans
    /usr/sap/QAS/D02 -nfsvers=3,nobind 10.1.0.4:/usrsapqas/usrsapQASpas
    

    Если используется NFSv4.1, создайте файл со следующим текстом:

    sudo vi /etc/auto.direct
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/trans
    /usr/sap/QAS/D02 -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/usrsapQASpas
    

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

    sudo systemctl enable autofs
    sudo service autofs restart
    
  7. [P] Настройте autofs в AAS.

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    /- /etc/auto.direct
    

    Если используется NFSv3, создайте файл со следующим текстом:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=3,nobind 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=3,nobind 10.1.0.4:/trans
    /usr/sap/QAS/D03 -nfsvers=3,nobind 10.1.0.4:/usrsapqas/usrsapQASaas
    

    Если используется NFSv4.1, создайте файл со следующим текстом:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/QAS -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/sapmntQAS
    /usr/sap/trans -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/trans
    /usr/sap/QAS/D03 -nfsvers=4.1,nobind,sec=sys 10.1.0.4:/usrsapqas/usrsapQASaas
    

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

    sudo systemctl enable autofs
    sudo service autofs restart
    
  8. [A] Настройте файл подкачки.

    sudo vi /etc/waagent.conf
    
    # Set the property ResourceDisk.EnableSwap to y
    # Create and use swapfile on resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with property ResourceDisk.SwapSizeMB
    # The free space of resource disk varies by virtual machine size. Make sure that you do not set a value that is too big. You can check the SWAP space with command swapon
    # Size of the swapfile.
    ResourceDisk.SwapSizeMB=2000
    

    Перезапустите агент, чтобы активировать изменения:

    sudo service waagent restart
    

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

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

  • Запустите установку экземпляра базы данных SAP.

    Установите экземпляр базы данных SAP NetWeaver в качестве корневого, используя имя виртуального узла, которое сопоставляется с внешним 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. Установите основной или дополнительный сервер приложений SAP NetWeaver.

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A] Обновите безопасное хранилище SAP HANA.

    Обновите безопасное хранилище SAP HANA, чтобы оно указывало на виртуальное имя настройки репликации системы SAP HANA.

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

    hdbuserstore List
    

    Это позволит вывести список всех записей. Он будет выглядеть так:

    DATA FILE       : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.DAT
    KEY FILE        : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 10.1.1.5:30313
      USER: SAPABAP1
      DATABASE: QAS
    

    Выходные данные будут содержать IP-адрес записи по умолчанию, которая указывает на виртуальную машину, а не на IP-адрес балансировщика нагрузки. Эту запись необходимо изменить так, чтобы она указывала на имя виртуального узла балансировщика нагрузки. Убедитесь, что вы используете тот же порт (30313 в выходных данных выше) и имя базы данных (QAS)!

    su - qasadm
    
    hdbuserstore SET DEFAULT qasdb:30313@QAS SAPABAP1 <password of ABAP schema>
    

Проверка настройки кластера

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

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