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

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

Ссылки

Обзор

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

Для этой конфигурации PAS и AAS необходим каталог экземпляров с высоким уровнем доступности (/usr/sap/<SID>/D<nr>). Вы можете разместить файловую систему каталога экземпляра в том же высокодоступном хранилище, которое использовалось для конфигурации экземпляра ASCS и ERS. Представленная архитектура демонстрирует NFS в Файлы Azure или Azure NetApp Files для каталога экземпляров с высоким уровнем доступности для установки.

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

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

Diagram that shows the architecture of dialog instance installation with an SAP ASCS/SCS cluster.

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

  • С помощью настройки кластера SAP ASCS/SCS можно развернуть только два экземпляра диалоговых окон, PAS и один AAS.
  • Если вы хотите масштабировать систему 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 не поддерживается.

  • Чтобы установить дополнительные серверы приложений на отдельных виртуальных машинах, можно использовать общие папки NFS или локальный управляемый диск для файловой системы каталогов экземпляра. Если вы устанавливаете дополнительные серверы приложений для системы SAP J2EE, /usr/sap/<SID>/J<nr> в NFS на Файлы Azure не поддерживается.
  • В традиционной конфигурации SAP ASCS/SCS с высоким уровнем доступности экземпляры сервера приложений, работающие на отдельных виртуальных машинах, не затрагиваются, если на узлы кластера SAP ASCS и ERS не влияют. Но при настройке оптимизации затрат экземпляр PAS или AAS перезапускается при наличии влияния на один из узлов в кластере.
  • Рекомендации по Файлы Azure и рекомендации по Azure NetApp Files см. в NFS, так как к этой настройке применяются те же рекомендации.

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

Конфигурация, описанная в этой статье, является дополнением к уже настроенной конфигурации кластера 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<экземпляров no.> для PAS и 620<экземпляров no. для AAS.>
      3. Интервал. Введите 5.
      4. Пороговое значение пробы: введите 2.
    5. Время ожидания простоя (минуты): введите 30.
    6. Включите плавающий IP-адрес: выберите этот параметр.

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

Внимание

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

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

Внимание

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

Подготовка серверов к установке 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
    

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

  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 --group g-NW1_PAS
    sudo pcs resource create nc_NW1_PAS azure-lb port=62002 --group g-NW1_PAS
    
    # 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' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40 \
      --group g-NW1_PAS
    
    # 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 \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \ 
      op monitor interval=200 timeout=40 \
      --group g-NW1_PAS
    
    # 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' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-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. Обновите файл /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 \
     --group g-NW1_PAS
    
    # 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 \
     --group g-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
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  7. Настройте ограничение для запуска группы ресурсов PAS только после запуска экземпляра ASCS.

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

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

  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 --group g-NW1_AAS
    sudo pcs resource create nc_NW1_AAS azure-lb port=62003 --group g-NW1_AAS
    
    # 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' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40 \
      --group g-NW1_AAS
    
    # 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 \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \ 
      op monitor interval=200 timeout=40 \
      --group g-NW1_AAS
    
    # 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' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-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 в качестве корневого узла на втором узле с помощью имени виртуального узла, которое сопоставляется с IP-адресом конфигурации внешнего интерфейса подсистемы балансировки нагрузки для PAS. Например, используйте 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. Обновите файл /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 \
     --group g-NW1_AAS
    
    # 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 \
     --group g-NW1_AAS
    

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

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

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

Действия после настройки экземпляров 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. Проверьте состояние кластера.

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