Высокий уровень доступности sap NetWeaver на виртуальных машинах Azure на SUSE Linux Enterprise Server для приложений SAP

В этой статье описывается, как развернуть виртуальные машины, настроить виртуальные машины, установить платформу кластера и установить высокодоступную систему на основе платформы SAP NetWeaver или SAP ABAP. В примерах конфигураций используется номер экземпляра ASCS 00, номер экземпляра ERS 02 и идентификатор системы SAP NW1.

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

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

  • Заметка SAP 1928533, которая имеет следующее:
    • Список размеров Azure виртуальных машин, поддерживаемых для развертывания программного обеспечения SAP
    • Важные сведения о емкости для размеров виртуальных машин Azure
    • сведения о поддерживаемом программном обеспечении SAP и сочетаниях операционных систем и баз данных;
    • Требуемая версия ядра SAP для Windows и Linux в Microsoft Azure
  • Примечание SAP 2015553 содержит предварительные требования для развертываний программного обеспечения SAP, поддерживаемых SAP, в Azure.
  • Примечание SAP 2205917 рекомендует параметры ОС для SUSE Linux Enterprise Server для приложений SAP
  • Примечание SAP 1944799 содержит SAP HANA рекомендации по SUSE Linux Enterprise Server для приложений SAP
  • Примечание SAP 2178632 содержит подробные сведения обо всех метриках мониторинга, сообщаемых для SAP в Azure.
  • Примечание SAP 2191498 имеет необходимую версию агента узла SAP для Linux в Azure.
  • Примечание SAP 2243692 содержит сведения о лицензировании SAP в Linux в Azure.
  • примечание к SAP 1984787, содержащее общие сведения о SUSE Linux Enterprise Server 12;
  • Примечание SAP 1999351 содержит другие сведения об устранении неполадок для расширения расширенного мониторинга Azure для SAP.
  • вики-сайт сообщества SAP, содержащий все необходимые примечания к SAP для Linux;
  • Azure Virtual Machines планирование и внедрение для SAP на Linux
  • развертывание Azure Virtual Machines для SAP в Linux
  • развертывание СУБД Azure Virtual Machines для SAP в Linux
  • SUSE SAP HA Best Practices Guides Руководства содержат все необходимые сведения для настройки netweaver HA и SAP HANA локальной репликации системы. Придерживайтесь этих общих рекомендаций. Они содержат намного более подробные сведения.
  • Заметки о выпуске расширения SUSE высокого уровня доступности 12 SP3

Обзор

Чтобы добиться высокого уровня доступности, SAP NetWeaver необходим NFS-сервер. Сервер NFS настраивается в отдельном кластере, а несколько систем SAP могут использовать его.

Общие сведения о высоком уровне доступности SAP NetWeaver

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

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

Настройка сервера NFS высокой доступности

Примечание.

Мы рекомендуем развернуть одну из встроенных служб Azure NFS: NFS на Azure Files или тома NFS ANF для хранения общих данных в системе SAP с высокой доступностью. Помните, что мы уменьшаем внимание к эталонным архитектурам SAP, используя кластеры NFS.
Руководства по настройке SAP для высокодоступной системы SAP NW с собственными службами NFS:

SAP NetWeaver требует общее хранилище для каталога транспорта и профилей. Прочтите Высокая доступность для NFS на виртуальных машинах Azure в SUSE Linux Enterprise Server по настройке сервера NFS для SAP NetWeaver.

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

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

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

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

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

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

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

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

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

Примечание.

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

Примечание.

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

Внимание

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

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

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

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

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

Установка

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

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

    sudo zypper install sap-suse-cluster-connector
    

    Примечание.

    Известная проблема с использованием тире в именах узлов устранена в версии 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
    <b>Version        : 3.0.0-2.2</b>
    Arch           : noarch
    Vendor         : SUSE LLC <https://www.suse.com/>
    Support Level  : Level 3
    Installed Size : 41.6 KiB
    <b>Installed      : Yes</b>
    Status         : up-to-date
    Source package : sap-suse-cluster-connector-3.0.0-2.2.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
    
    # Insert the following lines to /etc/hosts. Change the IP address and hostname to match your environment
    # IP address of the load balancer frontend configuration for NFS
    10.0.0.4 nw1-nfs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS
    10.0.0.7 nw1-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS
    10.0.0.8 nw1-aers
    # IP address of the load balancer frontend configuration for database
    10.0.0.13 nw1-db
    

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

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

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

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

    Создайте файл со следующим текстом:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/NW1 -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sapmntsid
    /usr/sap/trans -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/trans
    /usr/sap/NW1/SYS -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sidsys
    

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

    sudo systemctl enable autofs
    sudo service autofs restart
    
  3. [A] Настройте файл SWAP.

    Создайте файл подкачки, как указано в Создание файла SWAP для виртуальной машины Azure Linux

    #!/bin/sh
    
    # Percent of space on the ephemeral disk to dedicate to swap. Here 30% is being used. Modify as appropriate.
    PCT=0.3
    
    # Location of swap file. Modify as appropriate based on location of ephemeral disk.
    LOCATION=/mnt
    
    if [ ! -f ${LOCATION}/swapfile ]
    then
    
        # Get size of the ephemeral disk and multiply it by the percent of space to allocate
        size=$(/bin/df -m --output=target,avail | /usr/bin/awk -v percent="$PCT" -v pattern=${LOCATION} '$0 ~ pattern {SIZE=int($2*percent);print SIZE}')
        echo "$size MB of space allocated to swap file"
    
         # Create an empty file first and set correct permissions
        /bin/dd if=/dev/zero of=${LOCATION}/swapfile bs=1M count=$size
        /bin/chmod 0600 ${LOCATION}/swapfile
    
        # Make the file available to use as swap
        /sbin/mkswap ${LOCATION}/swapfile
    fi
    
    # Enable swap
    /sbin/swapon ${LOCATION}/swapfile
    /sbin/swapon -a
    
    # Display current swap status
    /sbin/swapon -s
    

    Сделайте файл исполняемым.

    chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
    

    Остановите и запустите виртуальную машину. Остановка и запуск виртуальной машины требуется только в первый раз после создания ФАЙЛА SWAP.

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

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

    Внимание

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

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

    Для этого изменения требуется краткое время простоя.
    Для существующих кластеров Pacemaker, если конфигурация уже была изменена для использования socat, как описано в укрепления обнаружения Azure Load-Balancer, нет необходимости немедленно переключаться на ресурсный агент Azure-LB.

    sudo crm node standby nw1-cl-1
    
    sudo crm configure primitive fs_NW1_ASCS Filesystem device='nw1-nfs:/NW1/ASCS' directory='/usr/sap/NW1/ASCS00' fstype='nfs4' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ASCS IPaddr2 \
      params ip=10.0.0.7 \
      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 fs_NW1_ASCS nc_NW1_ASCS vip_NW1_ASCS \
       meta resource-stickiness=3000
    

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

    sudo crm_mon -r
    
    # Node nw1-cl-1: standby
    # Online: [ nw1-cl-0 ]
    # 
    # Full list of resources:
    # 
    # stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
    
  2. [1] Установите SAP NetWeaver ASCS.

    Установите SAP NetWeaver ASCS с правами root на первом узле, используя виртуальное имя хоста, которое сопоставляется с IP-адресом конфигурации внешнего интерфейса балансировщика нагрузки для ASCS, например nw1-ascs, 10.0.0.7, и номером экземпляра, который вы использовали для проверки балансировщика нагрузки, например 00.

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

    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 nw1-cl-1
    sudo crm node standby nw1-cl-0
    
    sudo crm configure primitive fs_NW1_ERS Filesystem device='nw1-nfs:/NW1/ASCSERS' directory='/usr/sap/NW1/ERS02' fstype='nfs4' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ERS IPaddr2 \
      params ip=10.0.0.8 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ERS azure-lb port=62102 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ERS fs_NW1_ERS nc_NW1_ERS vip_NW1_ERS
    

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

    sudo crm_mon -r
    
    # Node nw1-cl-0: standby
    # Online: [ nw1-cl-1 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
    #  Resource Group: g-NW1_ERS
    #      fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
    #      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
    
  4. [2] Установите SAP NetWeaver ERS.

    Установите SAP NetWeaver ERS с правами суперпользователя на втором узле, используя виртуальное имя хоста, которое соответствует IP-адресу фронтенд-конфигурации системы балансировки нагрузки для ERS, например nw1-aers, 10.0.0.8, и номер экземпляра, который вы использовали для запроса балансировщика нагрузки, например 02.

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

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

    Примечание.

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

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

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

    • Профиль ASCS/SCS

      sudo vi /sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs
      
      # 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 keep alive parameter, if using ENSA1
      enque/encni/set_so_keepalive = TRUE
      

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

    • Профиль ERS

      sudo vi /sapmnt/NW1/profile/NW1_ERS02_nw1-aers
      
      # 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 ERS profile
      # Autostart = 1
      
  6. [A] Настройте Keep Alive.

    Обмен данными между сервером приложений SAP NetWeaver и ASCS/SCS происходит через программный балансировщик нагрузки. Балансировщик нагрузки отключает неактивные подключения по истечении времени ожидания, которое можно настроить. Чтобы предотвратить это отключение, необходимо задать параметр в профиле SAP NetWeaver ASCS/SCS, если используется ENSA1, и изменить параметры системы keepalive Linux на всех серверах 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 nw1-cl-1 "cat >>/usr/sap/sapservices"
    sudo ssh nw1-cl-1 "cat /usr/sap/sapservices" | grep ERS02 | sudo tee -a /usr/sap/sapservices
    
  9. [A] Отключение systemd служб сервера ASCS и ERS SAP. Этот шаг применим только в том случае, если система управляет платформой запуска SAP в соответствии с заметками SAP 3115048

    Примечание.

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

    # Stop ASCS and ERS instances using <sid>adm
    sapcontrol -nr 00 -function Stop
    sapcontrol -nr 00 -function StopService
    
    sapcontrol -nr 01 -function Stop
    sapcontrol -nr 01 -function StopService
    
    # Execute below command on VM where you have performed ASCS instance installation (e.g. nw1-cl-0)
    sudo systemctl disable SAPNW1_00
    # Execute below command on VM where you have performed ERS instance installation (e.g. nw1-cl-1)
    sudo systemctl disable SAPNW1_01
    
  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_sap_NW1_ASCS00 SAPInstance \
      operations \$id=rsc_sap_NW1_ASCS00-operations \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=NW1_ASCS00_nw1-ascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs" \
      AUTOMATIC_RECOVER=false \
      meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    sudo crm configure primitive rsc_sap_NW1_ERS02 SAPInstance \
      operations \$id=rsc_sap_NW1_ERS02-operations \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=NW1_ERS02_nw1-aers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS02_nw1-aers" AUTOMATIC_RECOVER=false IS_ERS=true \
      meta priority=1000
    
    sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ERS add rsc_sap_NW1_ERS02
    
    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_ERS02:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online nw1-cl-0
    sudo crm configure property maintenance-mode="false"
    

Если вы переходите с более старой версии и переключаетесь на сервер очереди 2, см. SAP-примечание 2641019.

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

sudo crm_mon -r
 
# Online: [ nw1-cl-0 nw1-cl-1 ]
#
# Full list of resources:
#
# stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
#  Resource Group: g-NW1_ASCS
#      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
#      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
#      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
#      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
#  Resource Group: g-NW1_ERS
#      fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
#      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
#      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
#      rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0

Примечание.

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

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

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

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

В следующих распространенных шагах предполагается, что вы устанавливаете сервер приложений на сервер, который отличается от серверов ASCS и HANA.

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

    Уменьшите размер "грязного" кэша. Дополнительные сведения см. в статье 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. Настройка разрешения имен хоста

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

    sudo vi /etc/hosts
    

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

    # IP address of the load balancer frontend configuration for NFS
    10.0.0.4 nw1-nfs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS/SCS
    10.0.0.7 nw1-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ERS
    10.0.0.8 nw1-aers
    # IP address of the load balancer frontend configuration for database
    10.0.0.13 nw1-db
    # IP address of all application servers
    10.0.0.20 nw1-di-0
    10.0.0.21 nw1-di-1
    
  3. Создайте каталог sapmnt:

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  4. Настройте autofs:

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

    Создайте файл со следующим текстом:

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/NW1 -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sapmntsid
    /usr/sap/trans -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/trans
    

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

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

    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 Virtual Machines (виртуальных машинах). Список поддерживаемых баз данных см. в примечании SAP 1928533.

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

    Установите экземпляр базы данных SAP NetWeaver в качестве корневого адреса, используя имя виртуального узла, которое сопоставляется с IP-адресом конфигурации внешнего интерфейса подсистемы балансировки нагрузки для базы данных, например nw1-db и 10.0.0.13.

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

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

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

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

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

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

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

    Установите основной и дополнительный сервер приложений SAP NetWeaver:

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

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

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

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

    hdbuserstore List
    

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

    DATA FILE       : /home/nw1adm/.hdb/nw1-di-0/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/nw1-di-0/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 10.0.0.14:30313
      USER: SAPABAP1
      DATABASE: HN1
    

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

    su - nw1adm
    hdbuserstore SET DEFAULT nw1-db:30313@HN1 SAPABAP1 <password of ABAP schema>
    

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

Следующие тесты являются копией тестовых случаев из рекомендаций по SUSE. Они копируются для удобства. Всегда читайте руководства по рекомендациям и выполняйте все дополнительные тесты, которые могли быть добавлены.

  1. Тестирование HAGetFailoverConfig, HACheckConfig и HACheckFailoverConfig

    Выполните следующие команды <sapsid>adm на узле, где в данный момент выполняется экземпляр ASCS. Если команды заканчиваются с ошибкой, такой как "FAIL: Недостаточно памяти", это может быть вызвано использованием дефисов в имени вашего узла. Эта ошибка является известной проблемой, и она должна быть исправлена SUSE в пакете sap-suse-cluster-connector.

    nw1-cl-0:nw1adm 54> sapcontrol -nr 00 -function HAGetFailoverConfig
    
    # 15.08.2018 13:50:36
    # HAGetFailoverConfig
    # OK
    # HAActive: TRUE
    # HAProductVersion: Toolchain Module
    # HASAPInterfaceVersion: Toolchain Module (sap_suse_cluster_connector 3.0.1)
    # HADocumentation: https://www.suse.com/products/sles-for-sap/resource-library/sap-best-practices/
    # HAActiveNode:
    # HANodes: nw1-cl-0, nw1-cl-1
    
    nw1-cl-0:nw1adm 55> sapcontrol -nr 00 -function HACheckConfig
    
    # 15.08.2018 14:00:04
    # HACheckConfig
    # OK
    # state, category, description, comment
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP instance configuration, 2 ABAP instances detected
    # SUCCESS, SAP CONFIGURATION, Redundant Java instance configuration, 0 Java instances detected
    # SUCCESS, SAP CONFIGURATION, Enqueue separation, All Enqueue server separated from application server
    # SUCCESS, SAP CONFIGURATION, MessageServer separation, All MessageServer separated from application server
    # SUCCESS, SAP CONFIGURATION, ABAP instances on multiple hosts, ABAP instances on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP SPOOL service configuration, 2 ABAP instances with SPOOL service detected
    # SUCCESS, SAP STATE, Redundant ABAP SPOOL service state, 2 ABAP instances with active SPOOL service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP SPOOL service on multiple hosts, ABAP instances with active ABAP SPOOL service on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP BATCH service configuration, 2 ABAP instances with BATCH service detected
    # SUCCESS, SAP STATE, Redundant ABAP BATCH service state, 2 ABAP instances with active BATCH service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP BATCH service on multiple hosts, ABAP instances with active ABAP BATCH service on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP DIALOG service configuration, 2 ABAP instances with DIALOG service detected
    # SUCCESS, SAP STATE, Redundant ABAP DIALOG service state, 2 ABAP instances with active DIALOG service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP DIALOG service on multiple hosts, ABAP instances with active ABAP DIALOG service on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP UPDATE service configuration, 2 ABAP instances with UPDATE service detected
    # SUCCESS, SAP STATE, Redundant ABAP UPDATE service state, 2 ABAP instances with active UPDATE service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP UPDATE service on multiple hosts, ABAP instances with active ABAP UPDATE service on multiple hosts detected
    # SUCCESS, SAP STATE, SCS instance running, SCS instance status ok
    # SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version (nw1-ascs_NW1_00), SAPInstance includes is-ers patch
    # SUCCESS, SAP CONFIGURATION, Enqueue replication (nw1-ascs_NW1_00), Enqueue replication enabled
    # SUCCESS, SAP STATE, Enqueue replication state (nw1-ascs_NW1_00), Enqueue replication active
    
    nw1-cl-0:nw1adm 56> sapcontrol -nr 00 -function HACheckFailoverConfig
    
    # 15.08.2018 14:04:08
    # HACheckFailoverConfig
    # OK
    # state, category, description, comment
    # SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version, SAPInstance includes is-ers patch
    
  2. Миграция экземпляра ASCS вручную

    Состояние ресурсов перед запуском теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

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

    nw1-cl-0:~ # crm resource migrate rsc_sap_NW1_ASCS00 force
    # INFO: Move constraint created for rsc_sap_NW1_ASCS00
    
    nw1-cl-0:~ # crm resource unmigrate rsc_sap_NW1_ASCS00
    # INFO: Removed migration constraints for rsc_sap_NW1_ASCS00
    
    # Remove failed actions for the ERS that occurred as part of the migration
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Состояние ресурсов после теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  3. Проверка HAFailoverToNode

    Состояние ресурсов перед запуском теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Чтобы перенести экземпляр ASCS, выполните следующие команды как <sapsid>adm.

    nw1-cl-0:nw1adm 55> sapcontrol -nr 00 -host nw1-ascs -user nw1adm <password> -function HAFailoverToNode ""
    
    # run as root
    # Remove failed actions for the ERS that occurred as part of the migration
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    # Remove migration constraints
    nw1-cl-0:~ # crm resource clear rsc_sap_NW1_ASCS00
    #INFO: Removed migration constraints for rsc_sap_NW1_ASCS00
    

    Состояние ресурсов после теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
  4. Имитирование сбоя узла

    Состояние ресурсов перед запуском теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

    Запустите следующую команду от имени root на узле, где выполняется экземпляр ASCS.

    nw1-cl-0:~ # echo b > /proc/sysrq-trigger
    

    Если вы используете SBD, Pacemaker не должен автоматически запускаться на вышедшем из строя узле. Состояние после повторного запуска узла должно выглядеть так:

    Online: [ nw1-cl-1 ]
    OFFLINE: [ nw1-cl-0 ]
    
    Full list of resources:
    
    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
    Failed Actions:
    * rsc_sap_NW1_ERS02_monitor_11000 on nw1-cl-1 'not running' (7): call=219, status=complete, exitreason='none',
        last-rc-change='Wed Aug 15 14:38:38 2018', queued=0ms, exec=0ms
    

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

    # run as root
    # list the SBD device(s)
    nw1-cl-0:~ # cat /etc/sysconfig/sbd | grep SBD_DEVICE=
    # SBD_DEVICE="/dev/disk/by-id/scsi-36001405772fe8401e6240c985857e116;/dev/disk/by-id/scsi-36001405034a84428af24ddd8c3a3e9e1;/dev/disk/by-id/scsi-36001405cdd5ac8d40e548449318510c3"
    
    nw1-cl-0:~ # sbd -d /dev/disk/by-id/scsi-36001405772fe8401e6240c985857e116 -d /dev/disk/by-id/scsi-36001405034a84428af24ddd8c3a3e9e1 -d /dev/disk/by-id/scsi-36001405cdd5ac8d40e548449318510c3 message nw1-cl-0 clear
    
    nw1-cl-0:~ # systemctl start pacemaker
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Состояние ресурсов после теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  5. Блокировка сетевого взаимодействия

    Состояние ресурсов перед запуском теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

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

    # Execute iptable rule on nw1-cl-0 (10.0.0.5) to block the incoming and outgoing traffic to nw1-cl-1 (10.0.0.6)
    iptables -A INPUT -s 10.0.0.6 -j DROP; iptables -A OUTPUT -d 10.0.0.6 -j DROP
    

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

    При настройке устройства ограждения рекомендуется сконфигурировать свойство pcmk_delay_max. Таким образом, в случае сценария разделённого мозга кластер вводит случайную задержку, до значения pcmk_delay_max в процедуру ограждения на каждом узле. Узел с самой короткой задержкой выбирается для ограждения.

    Кроме того, в конфигурации ENSA 2, для придания приоритета узлу, на котором размещен ресурс ASCS, над другим узлом в сценарии разветвления, рекомендуется настроить свойство priority-fencing-delay в кластере. Включение свойства priority-fencing-delay позволяет кластеру ввести дополнительную задержку в действии блокировки специально для узла, на котором размещён ресурс ASCS, что позволяет узлу ASCS получить приоритет при блокировке.

    Примечание.

    Свойство priority-fencing-delay применяется только к конфигурации кластера с двумя узлами, работающей с ENSA2.

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

    # If the iptables rule set on the server gets reset after a reboot, the rules will be cleared out. In case they have not been reset, please proceed to remove the iptables rule using the following command.
    iptables -D INPUT -s 10.0.0.6 -j DROP; iptables -D OUTPUT -d 10.0.0.6 -j DROP
    
  6. Проверка перезапуска экземпляра ASCS вручную

    Состояние ресурсов перед запуском теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Создайте блокировку энкуэ, например, изменяя пользователя в транзакции su01. Выполните следующие команды как <sapsid>adm на узле, где запущен экземпляр ASCS. Команды останавливают экземпляр ASCS и затем снова запускают его. Если используется архитектура сервера постановки в очередь 1, блокировка очереди должна быть потеряна в этом тесте. Если используется архитектура сервера постановки запросов в очередь 2, постановка в очередь будет сохранена.

    nw1-cl-1:nw1adm 54> sapcontrol -nr 00 -function StopWait 600 2
    

    Инстанция ASCS теперь должна быть отключена в Pacemaker.

    rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Stopped (disabled)
    

    Снова запустите экземпляр ASCS на этом же узле.

    nw1-cl-1:nw1adm 54> sapcontrol -nr 00 -function StartWait 600 2
    

    Блокировка постановки в очередь для транзакции su01 должна быть снята, а бэкенд должен быть сброшен. Состояние ресурсов после теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  7. Завершение процесса сервера сообщений

    Состояние ресурсов перед запуском теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

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

    nw1-cl-1:~ # pgrep -f ms.sapNW1 | xargs kill -9
    

    Если вы остановите сервер сообщений только раз, его перезапустит служба sapstart. Если убивать его достаточно часто, Pacemaker в конечном итоге перемещает экземпляр ASCS на другой узел (применимо к ENSA1). Выполните следующие команды от имени root для очистки состояния ресурсов экземпляра ASCS и ERS после теста.

    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Состояние ресурсов после теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
  8. Убить процесс сервера постановки в очередь

    Состояние ресурсов перед запуском теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

    Выполните следующие команды от имени пользователя root на узле, где выполняется экземпляр ASCS, чтобы завершить работу сервера экспедирования.

    nw1-cl-0:~ # 
    #If using ENSA1
    pgrep -f en.sapNW1 | xargs kill -9
    #If using ENSA2
    pgrep -f enq.sapNW1 | xargs kill -9
    

    Экземпляр ASCS должен немедленно переключиться на другой узел (применимо к ENSA1). После запуска экземпляра ASCS экземпляр ERS должен также отработать отказ. Выполните следующие команды от имени root для очистки состояния ресурсов экземпляра ASCS и ERS после теста.

    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Состояние ресурсов после теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  9. Завершение процесса сервера постановки в очередь для репликации

    Состояние ресурсов перед запуском теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Выполните следующую команду от имени привилегированного пользователя на узле, где выполняется экземпляр ERS, чтобы завершить работу процесса сервера постановки в очередь для репликации.

    nw1-cl-0:~ # pgrep -f er.sapNW1 | xargs kill -9
    

    Если вы выполните команду только раз, sapstart перезапустит процесс. Если запустить его достаточно часто, sapstart не перезагрузит процесс, и ресурс будет находиться в остановленном состоянии. Выполните следующие команды от имени пользователя root для очистки состояния ресурсов экземпляра ERS после теста.

    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Состояние ресурсов после теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  10. Завершить процесс sapstartsrv

    Состояние ресурсов перед запуском теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Выполните следующие команды в качестве привилегированного пользователя на узле, где выполняется ASCS.

    nw1-cl-1:~ # pgrep -fl ASCS00.*sapstartsrv
    # 59545 sapstartsrv
    
    nw1-cl-1:~ # kill -9 59545
    

    Процесс sapstartsrv всегда должен перезапускаться с помощью агента ресурсов Pacemaker. Состояние ресурсов после теста:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

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