Обеспечение высокого уровня доступности для SAP NetWeaver на виртуальных машинах Azure с ОС Red Hat Enterprise Linux для приложений SAP с использованием нескольких идентификаторов безопасности

В этой статье описывается, как развернуть несколько высокодоступных систем SAP NetWeaver (с несколькими идентификаторами безопасности) в кластере с двумя узлами на основе виртуальных машин Azure с Red Hat Enterprise Linux для приложений SAP.

Примеры конфигураций приводятся для трех систем SAP NetWeaver 7.50, которые развертываются в одном высокодоступном кластере с двумя узлами. Системы SAP имеют следующие идентификаторы безопасности:

  • NW1: номер экземпляра ASCS 00, имя виртуального узла msnw1ascs. Номер экземпляра ERS 02, имя виртуального узла msnw1ers.
  • NW2: номер экземпляра ASCS 10, имя виртуального узла msnw2ascs. Номер экземпляра ERS 12, имя виртуального узла msnw2ers.
  • NW3: номер экземпляра ASCS 20, имя виртуального узла msnw3ascs. Номер экземпляра ERS 22, имя виртуального узла msnw3ers.

В этой статье не рассматривается уровень базы данных и развертывание общих папок SAP NFS.

В примерах этой статьи используется том Azure NetApp Files с sapMSID для общих папок NFS, тем самым подразумевается, что этот том уже развернут. В примерах предполагается, что том Azure NetApp Files развернут с использованием протокола NFSv3. В них применяются следующие пути к файлам для ресурсов кластера для экземпляров ASCS и ERS в системах SAP NW1,NW2 иNW3:

  • том sapMSID (nfs://10.42.0.4/sapmntNW1)
  • том sapMSID (nfs://10.42.0.4/usrsapNW1ascs)
  • том sapMSID (nfs://10.42.0.4/usrsapNW1sys)
  • том sapMSID (nfs://10.42.0.4/usrsapNW1ers)
  • том sapMSID (nfs://10.42.0.4/sapmntNW2)
  • том sapMSID (nfs://10.42.0.4/usrsapNW2ascs)
  • том sapMSID (nfs://10.42.0.4/usrsapNW2sys)
  • том sapMSID (nfs://10.42.0.4/usrsapNW2ers)
  • том sapMSID (nfs://10.42.0.4/sapmntNW3)
  • том sapMSID (nfs://10.42.0.4/usrsapNW3ascs)
  • том sapMSID (nfs://10.42.0.4/usrsapNW3sys)
  • том sapMSID (nfs://10.42.0.4/usrsapNW3ers)

Прежде чем начать, ознакомьтесь со следующими примечаниями и документацией по SAP:

Обзор

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

Чтобы получить высокий уровень доступности, необходимо предоставить для SAP NetWeaver общее хранилище с высоким уровнем доступности. В этой статье представлены примеры с общими ресурсами SAP, развернутыми в томах NFS службы Azure NetApp Files. Также можно разместить общие папки в кластере GlusterFS с высоким уровнем доступности, который может использоваться несколькими системами SAP.

Diagram shows S A P NetWeaver High Availability overview with Pacemaker cluster and SAP NFS shares.

Важно!

При кластеризации SAP ASCS/ERS с несколькими идентификаторами безопасности с использованием Red Hat Linux в качестве гостевой операционной системы на виртуальных машинах Azure в одном кластере поддерживается только пять идентификаторов безопасности SAP. С каждым новым идентификатором безопасности сложность повышается. Сочетание сервера репликации очереди SAP 1 и сервера репликации очереди SAP 2 в одном кластере не поддерживается. Кластеризация с несколькими идентификаторами безопасности выражается в установке нескольких экземпляров SAP ASCS/ERS с разными идентификаторами безопасности в одном кластере Pacemaker. В настоящее время кластеризация с несколькими идентификаторами безопасности поддерживается только для ASCS/ERS.

Совет

Кластеризация SAP ASCS/ERS с несколькими идентификаторами безопасности — это решение с высоким уровнем сложности. Это решение труднее реализовать. Оно включает в себя больший объем работ по администрированию при техническом обслуживании, например при внесении исправлений для ОС. Перед началом фактической реализации необходимо тщательно разработать план развертывания и учесть все сопутствующие компоненты, такие как виртуальные машины, подключения NFS, виртуальные IP-адреса, конфигурации подсистемы балансировки нагрузки и т. д.

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

  • Интерфейсные IP-адреса для ASCS: 10.3.1.50 (NW1), 10.3.1.52 (NW2) и 10.3.1.54 (NW3).
  • Интерфейсные IP-адреса для ERS: 10.3.1.51 (NW1), 10.3.1.53 (NW2) и 10.3.1.55 (NW3).
  • Порт проверки 62000 для NW1 ASCS, 62010 для NW2 ASCS и 62020 для NW3 ASCS.
  • порт проверки 62102 для NW1 ASCS, 62112 для NW2 ASCS и 62122 для NW3 ASCS.

Важно!

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

Примечание.

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

Важно!

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

Общие папки SAP

Для системы SAP NetWeaver требуется общее хранилище для каталога профиля, транспорта и т. д. Для высокодоступной системы SAP обязательно наличие общих папок с высоким уровнем доступности. Для общих папок SAP необходимо выбрать оптимальную архитектуру. Одним из вариантов является развертывание общих папок на томах NFS Azure NETAPP Files. Благодаря использованию Azure NetApp Files можно получить встроенную возможность обеспечения высокого уровня доступности для общих папок NFS SAP.

Другим вариантом является создание файловой системы GlusterFS на основе виртуальных машин Azure с Red Hat Enterprise Linux для SAP NetWeaver, которая является общей для нескольких систем SAP.

Развертывание первой системы SAP в кластере

После выбора архитектуры для общих папок NFS SAP необходимо выполнить развертывание первой системы SAP в кластере с помощью инструкций из соответствующей документации.

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

Совет

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

Развертывание в кластере дополнительных систем SAP

В этом примере предполагается, что в кластере уже развернута система NW1. В этом примере показано, как развернуть в кластере системы SAPNW2 и NW3.

Ниже описаны префиксы и их значение:

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

Необходимые компоненты

Важно!

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

В этой статье предполагается, что:

  • Кластер Pacemaker уже настроен и запущен.
  • По крайней мере одна система SAP (экземпляр ASCS/ERS) уже развернута и запущена в кластере.
  • Тестирование отказоустойчивости кластера прошло успешно.
  • Общие папки NFS для всех систем SAP развернуты.

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

  1. Добавьте конфигурацию для новой развернутой системы (т. е. NW2 и NW3) в существующую подсистему Azure Load Balancer в соответствии с инструкциями по развертыванию Azure Load Balancer вручную с помощью портала Azure. Настройте IP-адреса, порты проб работоспособности и правила балансировки нагрузки для вашей конфигурации.

  2. [A] Настройте разрешение имен для дополнительных систем SAP. Можно использовать DNS-сервер или внести изменения в файл /etc/hosts на всех узлах. В этом примере показано, как использовать файл /etc/hosts. Настройте IP-адреса и имена узлов в соответствии с вашей средой.

    sudo vi /etc/hosts
    # IP address of the load balancer frontend configuration for NW2 ASCS
    10.3.1.52 msnw2ascs
    # IP address of the load balancer frontend configuration for NW3 ASCS
    10.3.1.54 msnw3ascs
    # IP address of the load balancer frontend configuration for NW2 ERS
    10.3.1.53 msnw2ers
    # IP address of the load balancer frontend configuration for NW3 ERS
    10.3.1.55 msnw3ers
    
  3. [A] Создайте общие каталоги для дополнительных систем SAP NW2 и NW3, развертываемых в кластере.

    sudo mkdir -p /sapmnt/NW2
    sudo mkdir -p /usr/sap/NW2/SYS
    sudo mkdir -p /usr/sap/NW2/ASCS10
    sudo mkdir -p /usr/sap/NW2/ERS12
    sudo mkdir -p /sapmnt/NW3
    sudo mkdir -p /usr/sap/NW3/SYS
    sudo mkdir -p /usr/sap/NW3/ASCS20
    sudo mkdir -p /usr/sap/NW3/ERS22
    
    
    sudo chattr +i /sapmnt/NW2
    sudo chattr +i /usr/sap/NW2/SYS
    sudo chattr +i /usr/sap/NW2/ASCS10
    sudo chattr +i /usr/sap/NW2/ERS12
    sudo chattr +i /sapmnt/NW3
    sudo chattr +i /usr/sap/NW3/SYS
    sudo chattr +i /usr/sap/NW3/ASCS20
    sudo chattr +i /usr/sap/NW3/ERS22
    
  4. [A] Добавьте точки подключения файловых систем /sapmnt/SID и /usr/sap/SID/SYS для дополнительных систем SAP, развертываемых в кластере. В этом примере следует выберите NW2 и NW3.

    Обновите файл /etc/fstab с файловыми системами для других систем SAP, которые развертываются в кластере.

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

  1. Назначьте виртуальные IP-адреса и создайте ресурсы кластера пробы работоспособности для экземпляров ASCS других систем SAP, развертываемых в кластере. В этом примере используются ASCS NW2 и NW3, а также NFS в томах Azure NetApp Files с применением протокола NFSv3.

    sudo pcs resource create fs_NW2_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ascs' \
    directory='/usr/sap/NW2/ASCS10' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW2_ASCS
    
    sudo pcs resource create vip_NW2_ASCS IPaddr2 \
    ip=10.3.1.52 \
     --group g-NW2_ASCS
    
    sudo pcs resource create nc_NW2_ASCS azure-lb port=62010 \
     --group g-NW2_ASCS
    
    sudo pcs resource create fs_NW3_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ascs' \
    directory='/usr/sap/NW3/ASCS20' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
    --group g-NW3_ASCS
    
    sudo pcs resource create vip_NW3_ASCS IPaddr2 \
    ip=10.3.1.54 \
    --group g-NW3_ASCS
    
    sudo pcs resource create nc_NW3_ASCS azure-lb port=62020 \
    --group g-NW3_ASCS
    

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

  2. [1] Установите SAP NetWeaver ASCS.

    Установите SAP NetWeaver ASCS в качестве корневого, используя имя виртуального узла, которое сопоставляется с IP-адресом клиентской конфигурации подсистемы балансировки нагрузки для ASCS. Например, для системы NW2 имя виртуального узла — msnw2ascs, 10.3.1.52, а номер экземпляра, который использовался для пробы подсистемы балансировки нагрузки, например 10. Для системы NW3 имя виртуального узла — msnw3ascs, 10.3.1.54, а номер экземпляра, который использовался для пробы подсистемы балансировки нагрузки, например 20. Запишите, на какой узел кластера выполнена установка ASCS для каждого идентификатора безопасности SAP.

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

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again
    sudo firewall-cmd --zone=public --add-port=4237/tcp
    sudo swpm/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Если установка завершилась ошибкой при создании вложенной папки в /usr/sap/<SID>/ASCS<Instance#>, попробуйте задать владельца <sid>adm и группу sapsys для ASCS<Instance#> и повторите операцию.

  3. [1] Назначьте виртуальные IP-адреса и создайте ресурсы кластера пробы работоспособности для экземпляра ERS дополнительной системы SAP, развертываемой в кластере. Вот пример для ERS NW2 и NW3 с использованием NFS в томах Azure NetApp Files с применением протокола NFSv3.

    sudo pcs resource create fs_NW2_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ers' \
    directory='/usr/sap/NW2/ERS12' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW2_AERS
    
    sudo pcs resource create vip_NW2_AERS IPaddr2 \
    ip=10.3.1.53 \
     --group g-NW2_AERS
    
    sudo pcs resource create nc_NW2_AERS azure-lb port=62112 \
     --group g-NW2_AERS
    
    sudo pcs resource create fs_NW3_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ers' \
    directory='/usr/sap/NW3/ERS22' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW3_AERS
    
    sudo pcs resource create vip_NW3_AERS IPaddr2 \
    ip=10.3.1.55 \
     --group g-NW3_AERS
    
    sudo pcs resource create nc_NW3_AERS azure-lb port=62122 \
     --group g-NW3_AERS
    

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

    Затем убедитесь, что ресурсы созданной группы ERS запущены в узле кластера, отличающегося от того, где установлен экземпляр ASCS для этой же системы SAP. Например, если NW2 ASCS был установлен на rhelmsscl1, убедитесь, что группа ERS NW2 запущена rhelmsscl2. Группу ERS NW2 можно перенести в rhelmsscl2, выполнив следующую команду для одного из ресурсов кластера в группе:

    pcs resource move fs_NW2_AERS rhelmsscl2
    
  4. [2] Установите ERS SAP NetWeaver.

    Установите SAP NetWeaver ERS в качестве корневого на другом узле, используя имя виртуального узла, которое соответствует IP-адресу клиентской конфигурации подсистемы балансировки нагрузки для ERS. Например, для системы NW2 имя виртуального узла — msnw2ers, 10.3.1.53, а номер экземпляра, который использовался для пробы подсистемы балансировки нагрузки, например 12. Например, для системы NW3 имя виртуального узла — msnw3ers, 10.3.1.55 а номер экземпляра, который использовался для пробы подсистемы балансировки нагрузки, например 22.

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

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again
    sudo firewall-cmd --zone=public --add-port=4237/tcp
    sudo swpm/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Примечание.

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

    Если установка завершилась ошибкой при создании вложенной папки в /usr/sap/<NW2>/ERS<Instance#>, попробуйте задать владельца <sid>adm и группу sapsys для папки ERS<Instance#> и повторите операцию.

    Если необходимо перенести группу ERS только что развернутой системы SAP на другой узел кластера, не забудьте удалить ограничение расположения для группы ERS. Вы можете снять это ограничение, выполнив следующую команду. Этот пример приведен для систем SAP NW2 и NW3. Обязательно удалите временные ограничения для того же ресурса, который использовался в команде по перемещению кластерной группы ERS.

    pcs resource clear fs_NW2_AERS
    pcs resource clear fs_NW3_AERS
    
  5. [1] Адаптируйте профили экземпляров ASCS/SCS и ERS для вновь установленных систем SAP. Ниже приводится пример для NW2. Профили ASCS/SCS и ERS нужно адаптировать для всех экземпляров SAP, добавленных в кластер.

    • Профиль ASCS/SCS

      sudo vi /sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs
      
      # Change the restart command to a start command
      #Restart_Program_01 = local $(_EN) pf=$(_PF)
      Start_Program_01 = local $(_EN) pf=$(_PF)
      
      # Add the keep alive parameter, if using ENSA1
      enque/encni/set_so_keepalive = true
      

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

    • Профиль ERS

      sudo vi /sapmnt/NW2/profile/NW2_ERS12_msnw2ers
      
      # 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)
      
      # remove Autostart from ERS profile
      # Autostart = 1
      
  6. [A] Обновите файл /usr/sap/sapservices.

    Чтобы предотвратить запуск экземпляров скриптом запуска sapinit, необходимо закомментировать все экземпляры, управляемые Pacemaker, в файле /usr/sap/sapservices. Приведенный ниже пример предназначен для систем NW2 SAP и NW3.

    # Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ASCS instances. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/NW2/ASCS10/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ASCS10/exe/sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs -D -u nw2adm
    # LD_LIBRARY_PATH=/usr/sap/NW3/ASCS20/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ASCS20/exe/sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs -D -u nw3adm
    # systemctl --no-ask-password start SAPNW2_10 # sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs
    # systemctl --no-ask-password start SAPNW3_20 # sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ERS instances. You should comment out the line(s). 
    #LD_LIBRARY_PATH=/usr/sap/NW2/ERS12/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ERS12/exe/sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers -D -u nw2adm
    #LD_LIBRARY_PATH=/usr/sap/NW3/ERS22/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ERS22/exe/sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers -D -u nw3adm
    # systemctl --no-ask-password start SAPNW2_12 # sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers
    # systemctl --no-ask-password start SAPNW3_22 # sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers
    

    Важно!

    Благодаря системной платформе SAP Startup Framework экземпляры SAP теперь могут управляться системой. Минимальная требуемая версия Red Hat Enterprise Linux (RHEL) — RHEL 8 для SAP. Как описано в примечании SAP 3115048, новая установка ядра SAP с интегрированной системой поддержкой SAP Startup Framework всегда приведет к системному управляемому экземпляру SAP. После обновления ядра SAP существующей установки SAP до ядра, в котором поддерживается системная поддержка SAP Startup Framework, однако некоторые действия вручную необходимо выполнить, как описано в sap Note 3115048 , чтобы преобразовать существующую среду запуска SAP в ту, которая управляется системой.

    При использовании служб Red Hat HA для SAP (конфигурации кластера) для управления экземплярами сервера приложений SAP, такими как SAP ASCS и SAP ERS, необходимо внести дополнительные изменения, чтобы обеспечить совместимость агента ресурсов SAPInstance и новой платформы запуска SAP на основе системы. Поэтому после установки или переключения экземпляров сервера приложений SAP на системное ядро SAP в зависимости от 3115048 SAP, действия, упоминание упоминание в Red Hat КБ A 6884531 должны быть успешно завершены на всех узлах кластера.

  7. [1] Создайте кластерные ресурсы SAP для вновь установленной системы SAP.

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

    Если вы используете архитектуру enqueue server 2 (ENSA2), установите агент ресурсов resource-agents-sap-4.1.1-12.el7.x86_64 или более поздней версии и определите ресурсы для систем NW2 SAP и NW3 следующим образом:

    sudo pcs property set maintenance-mode=true
    
    sudo pcs resource create rsc_sap_NW2_ASCS10 SAPInstance \
    InstanceName=NW2_ASCS10_msnw2ascs START_PROFILE="/sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs" \
    AUTOMATIC_RECOVER=false \
    meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \
    op monitor interval=20 on-fail=restart timeout=60 \
    op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW2_ASCS
    
    sudo pcs resource meta g-NW2_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW2_ERS12 SAPInstance \
    InstanceName=NW2_ERS12_msnw2ers START_PROFILE="/sapmnt/NW2/profile/NW2_ERS12_msnw2ers" \
    AUTOMATIC_RECOVER=false IS_ERS=true \
    op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW2_AERS
    
    sudo pcs constraint colocation add g-NW2_AERS with g-NW2_ASCS -5000
    sudo pcs constraint location rsc_sap_NW2_ASCS10 rule score=2000 runs_ers_NW2 eq 1
    sudo pcs constraint order start g-NW2_ASCS then stop g-NW2_AERS kind=Optional symmetrical=false
    
    sudo pcs resource create rsc_sap_NW3_ASCS20 SAPInstance \
    InstanceName=NW3_ASCS20_msnw3ascs START_PROFILE="/sapmnt/NW3/profile/NW3_ASCS20_msnw3ascs" \
    AUTOMATIC_RECOVER=false \
    meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \
    op monitor interval=20 on-fail=restart timeout=60 \
    op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW3_ASCS
    
    sudo pcs resource meta g-NW3_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW3_ERS22 SAPInstance \
    InstanceName=NW3_ERS22_msnw3ers START_PROFILE="/sapmnt/NW3/profile/NW2_ERS22_msnw3ers" \
    AUTOMATIC_RECOVER=false IS_ERS=true \
    op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW3_AERS
    
    sudo pcs constraint colocation add g-NW3_AERS with g-NW3_ASCS -5000
    sudo pcs constraint location rsc_sap_NW3_ASCS20 rule score=2000 runs_ers_NW3 eq 1
    sudo pcs constraint order start g-NW3_ASCS then stop g-NW3_AERS kind=Optional symmetrical=false
    
    sudo pcs property set maintenance-mode=false
    

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

    Примечание.

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

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

    sudo pcs status
    
    # Online: [ rhelmsscl1 rhelmsscl2 ]
    
    # Full list of resources:
    
    # rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    # Resource Group: g-NW1_ASCS
    #   fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW1_AERS
    #   fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
    #   vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
    #   nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
    #   rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    # Resource Group: g-NW2_ASCS
    #   fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW2_AERS
    #   fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW3_ASCS
    #   fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW3_AERS
    #   fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #  rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    
  8. [A] Добавление правил брандмауэра для ASCS и ERS в обоих узлах. В приведенном ниже примере показаны правила брандмауэра для систем NW2 SAP и NW3.

    # NW1 - ASCS
    sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp
    # NW2 - ERS
    sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp
    # NW3 - ASCS
    sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp
    # NW3 - ERS
    sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp
    

Продолжите установку SAP

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

Тестирование настройки кластера с несколькими идентификаторами безопасности

Следующие тесты являются частью набора тестов, приводимых в руководствах с рекомендациями по Red Hat. Они включены в этот документ для вашего удобства. Полный список тестов кластера см. в следующей документации:

Обязательно ознакомьтесь с рекомендациями из руководств по Red Hat и выполните все дополнительные тесты. Представленные здесь тесты предназначены для кластера с двумя узлами, несколькими идентификаторами безопасности и тремя системами SAP.

  1. Выполните перенос экземпляра ASCS вручную. В этом примере показано, как перенести экземпляр ASCS для системы SAP NW3.

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

    Online: [ rhelmsscl1 rhelmsscl2 ]
    
    Full list of resources:
    
    rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    

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

    pcs resource move rsc_sap_NW3_ASCS200
    # Clear temporary migration constraints
    pcs resource clear rsc_sap_NW3_ASCS20
    
    # Remove failed actions for the ERS that occurred as part of the migration
    pcs resource cleanup rsc_sap_NW3_ERS22
    

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

    Online: [ rhelmsscl1 rhelmsscl2 ]
    
    Full list of resources:
    
    rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    
  2. Имитация сбоя узла.

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

    Online: [ rhelmsscl1 rhelmsscl2 ]
    
    Full list of resources:
    
    rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    

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

    echo c > /proc/sysrq-trigger
    

    Состояние после теста и после повторного запуска узла, на котором произошел сбой, должно выглядеть примерно следующим образом:

    Full list of resources:
    
    rsc_st_azure    (stonith:fence_azure_arm):      Started rhelmsscl2
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    

    Если имеются сообщения о неисправных ресурсах, очистите состояние этих неисправных ресурсов. Например:

    pcs resource cleanup rsc_sap_NW1_ERS02
    

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

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