Развертывание экземпляров диалогового окна SAP с помощью высокодоступных виртуальных машин SAP ASCS/SCS на RHEL

В этой статье описывается установка и настройка экземпляров диалоговых окон основного сервера приложений (PAS) и дополнительных экземпляров сервера приложений (AAS) в существующем кластере высокой доступности, работающем в Red Hat Enterprise Linux (RHEL). Экземпляры PAS и AAS выполняются на тех же виртуальных машинах (ВМ), что и службы Advanced Business Application Programming SAP Central Services (ASCS) или SAP Central Services (SCS).

Развернув PAS и AAS на одних и том же виртуальных машинах, что и SAP ASCS/SCS и сервер репликации enqueue (ERS), можно свести к минимуму количество виртуальных машин для одной системы SAP. Кластер управляет экземплярами PAS и AAS вместе с ASCS и ERS и использует сетевую общую папку (NFS) на Azure Files или Azure NetApp Files для каталога экземпляров с высокой доступностью.

Ссылки

Overview

Эта конфигурация является дополнением к уже настроенной настройке кластера SAP ASCS/SCS. PAS и AAS устанавливаются на виртуальные имена узлов, а каждый каталог экземпляра управляется /usr/sap/<SID>/D<nr> как ресурс кластера. Файловая система каталога экземпляра размещается на том же высокодоступном хранилище, которое использовалось для конфигурации экземпляров ASCS и ERS.

В следующем примере описывается развертывание и используется эта системная информация:

Имя экземпляра Номер экземпляра Имя виртуального узла Виртуальный IP-адрес (порт пробы)
Центральные службы SAP ABAP (ASCS) 00 sapascs 10.90.90.10 (62000)
Сервер управления очередью для репликации (ERS) 01 sapers 10.90.90.9 (62001)
Основной сервер приложений (PAS) 02 sappas 10.90.90.30 (62002)
Дополнительный сервер приложений (AAS) 03 sapers 10.90.90.31 (62003)
Идентификатор системы SAP NW1 --- ---

Примечание

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

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

Важные рекомендации по оптимизации затрат

  • Вы можете развернуть только два экземпляра диалоговых серверов — PAS и один AAS — с настройкой кластера SAP ASCS/SCS.

  • Если вы хотите масштабировать систему SAP с дополнительными серверами приложений (например , sapa03 и sapa04), их можно установить на отдельных виртуальных машинах. Так как PAS и AAS устанавливаются на имена виртуальных узлов, можно установить больше серверов приложений с помощью физического или виртуального имени узла в отдельных виртуальных машинах. Чтобы узнать, как назначить виртуальной машине имя виртуального узла, см. статью "Использование имен виртуальных узлов SAP" в Linux в Azure.

  • При развертывании PAS и AAS с настройкой кластера SAP ASCS/SCS номера экземпляров ASCS, ERS, PAS и AAS должны отличаться.

  • Определите размер SKU виртуальных машин в соответствии с рекомендациями по выбору размера. Если другая виртуальная машина в кластере недоступна, необходимо учитывать поведение кластера, в котором несколько экземпляров SAP (ASCS, ERS, PAS и AAS) могут выполняться на одной виртуальной машине.

  • Необходимо установить диалоговые экземпляры (PAS и AAS), работающие в конфигурации кластера SAP ASCS/SCS, используя виртуальное имя хоста.

  • Для развертывания экземпляров PAS и AAS необходимо также использовать то же самое решение для хранения данных, которое применяется в конфигурации кластера SAP ASCS/SCS. Например, если вы настроили кластер SAP ASCS/SCS с помощью NFS в Службе файлов Azure, необходимо использовать то же решение хранилища для развертывания PAS и AAS.

  • Каталог /usr/sap/<SID>/D<nr> экземпляров PAS и AAS должен быть подключен к файловой системе NFS и управляется в качестве ресурса кластером.

    Примечание

    Для систем SAP J2EE размещение /usr/sap/<SID>/J<nr> на NFS в Azure Files не поддерживается.

  • Чтобы установить дополнительные серверы приложений на отдельных виртуальных машинах, можно использовать общие папки NFS или локальный управляемый диск для файловой системы каталогов экземпляра. Если вы устанавливаете дополнительные серверы приложений для системы SAP J2EE, /usr/sap/<SID>/J<nr> на основе NFS в Azure Files не поддерживается.

  • В традиционной конфигурации SAP ASCS/SCS с высоким уровнем доступности экземпляры сервера приложений, работающие на отдельных виртуальных машинах, не затрагиваются, если проблема влияет на узлы кластера SAP ASCS и ERS. Но при настройке оптимизации затрат экземпляр PAS или AAS перезапускается, когда проблема влияет на один из узлов кластера.

  • Рекомендации по Файлы Azure и рекомендации по Azure NetApp Files см. в NFS, так как к этой настройке применяются те же рекомендации.

Prerequisites

Конфигурация, описанная в этой статье, является дополнением к уже настроенной настройке кластера SAP ASCS/SCS. В этой конфигурации PAS и AAS устанавливаются для виртуальных имен узлов. Кластер управляет каталогами экземпляров. В зависимости от вашего хранилища выполните действия, описанные в следующих статьях, чтобы настроить SAPInstance ресурс для экземпляра SAP ASCS и SAP ERS в кластере.

После установки экземпляров ASCS, ERS и базы данных с помощью диспетчера подготовки программного обеспечения (SWPM) выполните следующие действия, чтобы установить экземпляры PAS и AAS.

Настройка Azure Load Balancer для PAS и AAS

В этой статье предполагается, что вы уже настроили подсистему балансировки нагрузки для настройки кластера SAP ASCS/SCS, как описано в разделе "Настройка Azure Load Balancer". В том же экземпляре Azure Load Balancer выполните следующие действия, чтобы создать дополнительные интерфейсные IP-адреса и правила балансировки нагрузки для PAS и AAS.

  1. Откройте внутреннюю подсистему балансировки нагрузки, созданную для настройки кластера SAP ASCS/SCS.
  2. Конфигурация ВНЕШНЕГО IP-адреса: создайте два интерфейсных IP-адреса, один для PAS и другой для AAS (например, 10.90.90.30 и 10.90.90.31).
  3. Серверный пул: этот пул остается неизменным, поскольку вы выполняете развертывание PAS и AAS на одном и том же серверном пуле.
  4. Правила для входящего трафика: создайте два правила балансировки нагрузки, один для PAS и другой для AAS. Выполните те же действия для обоих правил балансировки нагрузки.
  5. Внешний IP-адрес: выберите внешний IP-адрес.
    1. Серверный пул: выберите внутренний пул.
    2. Порты высокой доступности: выберите этот параметр.
    3. Протокол. Выберите TCP.
    4. Проба работоспособности: создайте пробу работоспособности со следующими сведениями (применяется как для PAS, так и для AAS):
      1. Протокол. Выберите TCP.
      2. Порт: например, 620<экземпляр-№> для PAS и 620<экземпляр-№> для AAS.
      3. Интервал. Введите 5.
      4. Пороговое значение пробы: введите 2.
    5. Время ожидания простоя (минуты): введите 30.
    6. Включите плавающий IP-адрес: выберите этот параметр.

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

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

Важно

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

Подготовка серверов к установке PAS и AAS

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

Когда шаги в этой статье отмечены следующими префиксами:

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

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

    sudo vi /etc/hosts
    
    # IP address of cluster node 1
    10.90.90.7    sap-cl1
    # IP address of cluster node 2
    10.90.90.8     sap-cl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.90.90.10   sapascs
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.90.90.9    sapers
    # IP address of the load balancer frontend configuration for SAP Netweaver PAS
    10.90.90.30   sappas
    # IP address of the load balancer frontend configuration for SAP Netweaver AAS
    10.90.90.31   sapaas
    
  2. [1] Создайте каталоги SAP в общей папке NFS. Временно подключите общую папку NFS sapnw1 на одной из виртуальных машин и создайте каталоги SAP, которые будут использоваться в качестве вложенных точек подключения.

    1. Если вы используете NFS в файлах Azure:

      # mount temporarily the volume
      sudo mkdir -p /saptmp
      sudo mount -t nfs sapnfs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
      
      # create the SAP directories
      sudo cd /saptmp
      sudo mkdir -p usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # unmount the volume and delete the temporary directory
      cd ..
      sudo umount /saptmp
      sudo rmdir /saptmp
      
    2. Если вы используете Azure NetApp Files:

      # mount temporarily the volume
      sudo mkdir -p /saptmp
      
      # If using NFSv3
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=3,tcp 10.90.91.5:/sapnw1 /saptmp
      # If using NFSv4.1
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=4.1,sec=sys,tcp 10.90.91.5:/sapnw1 /saptmp
      
      # create the SAP directories
      sudo cd /saptmp
      sudo mkdir -p usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # unmount the volume and delete the temporary directory
      sudo cd ..
      sudo umount /saptmp
      sudo rmdir /saptmp
      
  3. [A] Создайте общие папки.

    sudo mkdir -p /usr/sap/NW1/D02
    sudo mkdir -p /usr/sap/NW1/D03
    
    sudo chattr +i /usr/sap/NW1/D02
    sudo chattr +i /usr/sap/NW1/D03
    
  4. [A] Настройте пространство буфера. При установке экземпляра диалогового окна с центральными службами необходимо настроить больше места подкачки.

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

    Чтобы активировать изменение, перезапустите агент.

    sudo service waagent restart
    
  5. [A] Добавьте правила брандмауэра для PAS и AAS.

    # Probe and gateway port for PAS and AAS
    sudo firewall-cmd --zone=public --add-port={62002,62003,3302,3303}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62002,62003,3303,3303}/tcp
    

Установите экземпляр SAP NetWeaver PAS

  1. [1] Проверьте состояние кластера. Перед настройкой ресурса PAS для установки убедитесь, что ресурсы ASCS и ERS настроены и запущены.

    sudo pcs status
    
    # Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    
  2. [1] Создайте файловую систему, виртуальный IP-адрес и ресурсы пробы работоспособности для экземпляра PAS.

    sudo pcs node standby sap-cl2
    sudo pcs resource create vip_NW1_PAS IPaddr2 ip=10.90.90.30
    sudo pcs resource create nc_NW1_PAS azure-lb port=62002
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_PAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      fast_stop=no op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe \
      fast_stop=no op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      fast_stop=no op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105
    
    sudo pcs resource group add g-NW1_PAS vip_NW1_PAS nc_NW1_PAS fs_NW1_PAS
    

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

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    
  3. [1] Измените владение /usr/sap/SID/D02 папкой после подключения файловой системы.

    sudo chown nw1adm:sapsys /usr/sap/NW1/D02
    
  4. [1] Установите SAP NetWeaver PAS.

    Установите SAP NetWeaver PAS в качестве корневого каталога на первом узле. Используйте имя виртуального узла, которое сопоставляется с IP-адресом интерфейсной конфигурации подсистемы балансировки нагрузки для PAS. Например, используйте sappas, 10.90.90.30, и номер экземпляра, который вы использовали для проверки балансировщика нагрузки, например, 02.

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

    # 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=<pas_virtual_hostname>
    
  5. [1] Обновите /usr/sap/sapservices файл.

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

    sudo vi /usr/sap/sapservices
    
    # On the node where PAS is installed, comment out the following lines.
    # LD_LIBRARY_PATH=/usr/sap/NW1/D02/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D02/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D02_sappas -D -u nw1adm
    
  6. [1] Создайте ресурс кластера PAS.

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=60
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=105
    
    sudo pcs resource group add g-NW1_PAS rsc_sap_NW1_PAS02
    

    Проверьте состояние кластера.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  7. [1] Настройте ограничение для запуска группы ресурсов PAS только после запуска экземпляра ASCS.

    sudo pcs constraint order g-NW1_ASCS then g-NW1_PAS kind=Optional symmetrical=false
    

Установите экземпляр SAP NetWeaver AAS

  1. [2] Проверьте состояние кластера. Перед настройкой ресурса AAS для установки убедитесь, что ресурсы ASCS, ERS и PAS запущены.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  2. [2] Создание файловой системы, виртуального IP-адреса и ресурсов пробы работоспособности для экземпляра AAS.

    sudo pcs node unstandby sap-cl2
    # Disable PAS resource as it will fail on sap-cl2 due to missing environment variables like hdbuserstore.
    sudo pcs resource disable g-NW1_PAS
    sudo pcs node standby sap-cl1
    # Execute below command to cleanup resource, if required
    pcs resource cleanup rsc_sap_NW1_ERS01
    
    sudo pcs resource create vip_NW1_AAS IPaddr2 ip=10.90.90.31
    sudo pcs resource create nc_NW1_AAS azure-lb port=62003
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_AAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      fast_stop=no op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe \
      fast_stop=no op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      fast_stop=no op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105
    
    sudo pcs resource group add g-NW1_AAS vip_NW1_AAS nc_NW1_AAS fs_NW1_AAS
    

    Убедитесь, что состояние кластера нормально и все ресурсы запущены. Неважно, на каком узле выполняются ресурсы. Так как группа ресурсов g-NW1_PAS остановлена, все ресурсы PAS остановлены в состоянии (отключено).

    sudo pcs status
    
    # Node List:
    #   Node sap-cl1: standby
    #   Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    
  3. [2] Измените владение /usr/sap/SID/D03 папкой после подключения файловой системы.

    sudo chown nw1adm:sapsys /usr/sap/NW1/D03
    
  4. [2] Установите SAP NetWeaver AAS.

    Установите SAP NetWeaver AAS с правами root на втором узле. Используйте имя виртуального узла, которое сопоставляется с IP-адресом интерфейсной конфигурации подсистемы балансировки нагрузки для AAS. Например, используйте sapaas, 10.90.90.31, и номер экземпляра, используемый для проверки подсистемы балансировки нагрузки, например, 03.

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

    # 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=<aas_virtual_hostname>
    
  5. [2] Обновите /usr/sap/sapservices файл.

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

    sudo vi /usr/sap/sapservices
    
    # On the node where AAS is installed, comment out the following lines.
    #LD_LIBRARY_PATH=/usr/sap/NW1/D03/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D03/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D03_sapaas -D -u nw1adm
    
  6. [2] Создайте ресурс кластера AAS.

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=60
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=105
    
    sudo pcs resource group add g-NW1_AAS rsc_sap_NW1_AAS03
    

    Проверьте состояние кластера.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl1: standby
    #   Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    
  7. [2] Настройте ограничение для запуска группы ресурсов AAS только после запуска экземпляра ASCS.

    sudo pcs constraint order g-NW1_ASCS then g-NW1_AAS kind=Optional symmetrical=false
    

Настройка параметров после установки для PAS и AAS

После установки PAS и AAS выполните следующие действия, чтобы позволить экземплярам запускаться на любом узле кластера.

  1. [1] Для PAS и AAS, чтобы запуститься на любом узле кластера (sap-cl1 или sap-cl2), необходимо скопировать содержимое в $HOME/.hdb из <sid>adm обоих узлов кластера.

    # Check current content of /home/nw1adm/.hdb on sap-cl1
    sap-cl1:nw1adm > ls -ltr $HOME/.hdb
    drwx------. 2 nw1adm sapsys 66 Aug  8 19:11 sappas
    drwx------. 2 nw1adm sapsys 84 Aug  8 19:12 sap-cl1
    # Check current content of /home/nw1adm/.hdb on sap-cl2
    sap-cl2:nw1adm > ls -ltr $HOME/.hdb
    total 0
    drwx------. 2 nw1adm sapsys 64 Aug  8 20:25 sap-cl2
    drwx------. 2 nw1adm sapsys 66 Aug  8 20:26 sapaas
    
    # As PAS and AAS is installed using virtual hostname, you need to copy virtual hostname directory in /home/nw1adm/.hdb
    # Copy sappas directory from sap-cl1 to sap-cl2
    sap-cl1:nw1adm > scp -r sappas nw1adm@sap-cl2:/home/nw1adm/.hdb
    # Copy sapaas directory from sap-cl2 to sap-cl1. Execute the command from the same sap-cl1 host.
    sap-cl1:nw1adm > scp -r nw1adm@sap-cl2:/home/nw1adm/.hdb/sapaas .
    
  2. [1] Чтобы убедиться, что экземпляры PAS и AAS не выполняются на одном узле при каждом запуске обоих узлов, добавьте отрицательное ограничение совместного размещения с помощью следующей команды:

    sudo pcs constraint colocation add g-NW1_AAS with g-NW1_PAS score=-1000
    sudo pcs node unstandby sap-cl1
    sudo pcs resource enable g-NW1_PAS
    

    Оценка -1000 гарантирует, что если доступен только один узел, оба экземпляра продолжат работать на другом узле. Если вы хотите сохранить экземпляр AAS в такой ситуации, можно использовать score=-INFINITY для принудительного применения этого условия.

  3. [A] Проверьте состояние кластера.

    sudo pcs status
    
    # Node List:
    #   Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    

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

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