Поделиться через


Высокая доступность виртуальных машин Azure для SAP NetWeaver на Red Hat Enterprise Linux

В этой статье описывается, как развернуть виртуальные машины, настроить виртуальные машины, установить платформу кластера и установить высокодоступную систему SAP NetWeaver 7.50.

В примерах конфигураций и команд установки используется номер экземпляра ASCS 00, номер ERS 02 и идентификатор системы SAP ID NW1. Имена ресурсов (например, виртуальных машин и виртуальных сетей) в примере предполагают, что для создания ресурсов использовался шаблон ASCS/SCS с префиксом ресурса NW1.

Предварительные условия

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

Обзор

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

Схема, показывающая общие сведения о высокой доступности SAP NetWeaver.

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

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

Настройка GlusterFS

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

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

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

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

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

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

Настройка Azure Load Balancer

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

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

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

Примечание.

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

Примечание.

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

Внимание

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

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

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

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

Выполните действия, описанные в статье "Настройка Pacemaker на Red Hat Enterprise Linux в Azure ", чтобы создать базовый кластер Pacemaker для этого сервера (A)SCS.

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

Следующие элементы имеют префикс:

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

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

    sudo vi /etc/hosts
    

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

    # IP addresses of the GlusterFS nodes
    10.0.0.40 glust-0
    10.0.0.41 glust-1
    10.0.0.42 glust-2
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS
    10.0.0.7 nw1-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS
    10.0.0.8 nw1-aers
    
  2. [A] Создайте общие папки.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    sudo mkdir -p /usr/sap/NW1/SYS
    sudo mkdir -p /usr/sap/NW1/ASCS00
    sudo mkdir -p /usr/sap/NW1/ERS02
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    sudo chattr +i /usr/sap/NW1/SYS
    sudo chattr +i /usr/sap/NW1/ASCS00
    sudo chattr +i /usr/sap/NW1/ERS02
    
  3. [A] Установите клиент GlusterFS и другие необходимые пакеты.

    sudo yum -y install glusterfs-fuse resource-agents resource-agents-sap
    
  4. [A] Проверьте версию resource-agents-sap.

    Убедитесь, что версия установленного resource-agents-sap пакета не менее 3.9.5-124.el7.

    sudo yum info resource-agents-sap
    
    # Loaded plugins: langpacks, product-id, search-disabled-repos
    # Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
    # Installed Packages
    # Name        : resource-agents-sap
    # Arch        : x86_64
    # Version     : 3.9.5
    # Release     : 124.el7
    # Size        : 100 k
    # Repo        : installed
    # From repo   : rhel-sap-for-rhel-7-server-rpms
    # Summary     : SAP cluster resource agents and connector script
    # URL         : https://github.com/ClusterLabs/resource-agents
    # License     : GPLv2+
    # Description : The SAP resource agents and connector script interface with
    #          : Pacemaker to allow SAP instances to be managed in a cluster
    #          : environment.
    
  5. [A]: добавьте записи монтирования.

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    glust-0:/NW1-sapmnt /sapmnt/NW1 glusterfs backup-volfile-servers=glust-1:glust-2 0 0
    glust-0:/NW1-trans /usr/sap/trans glusterfs backup-volfile-servers=glust-1:glust-2 0 0
    glust-0:/NW1-sys /usr/sap/NW1/SYS glusterfs backup-volfile-servers=glust-1:glust-2 0 0
    

    Подключите новые общие ресурсы.

    sudo mount -a
    
  6. [A] Настройте файл подкачки.

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

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

    sudo service waagent restart
    
  7. [A] Настройка RHEL.

    На основе версии RHEL выполните конфигурацию, указанную в заметке SAP 2002167, заметке SAP 2772999 или заметке SAP 3108316.

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

  1. [1] Настройте свойства кластера по умолчанию.

    pcs resource defaults resource-stickiness=1
    pcs resource defaults migration-threshold=3
    
  2. [1] Создайте виртуальный IP-адрес и пробу работоспособности для экземпляра ASCS.

    sudo pcs node standby nw1-cl-1
    
    sudo pcs resource create fs_NW1_ASCS Filesystem device='glust-0:/NW1-ascs' \
      directory='/usr/sap/NW1/ASCS00' fstype='glusterfs' \
      options='backup-volfile-servers=glust-1:glust-2' \
      --group g-NW1_ASCS
    
    sudo pcs resource create vip_NW1_ASCS IPaddr2 \
      ip=10.0.0.7 \
      --group g-NW1_ASCS
    
    sudo pcs resource create nc_NW1_ASCS azure-lb port=62000 \
      --group g-NW1_ASCS
    

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

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

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

    Вы можете использовать параметр sapinstSAPINST_REMOTE_ACCESS_USER, чтобы разрешить пользователю без прав root подключиться к 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
    

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

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

    sudo pcs node unstandby nw1-cl-1
    sudo pcs node standby nw1-cl-0
    
    sudo pcs resource create fs_NW1_AERS Filesystem device='glust-0:/NW1-aers' \
      directory='/usr/sap/NW1/ERS02' fstype='glusterfs' \
      options='backup-volfile-servers=glust-1:glust-2' \
     --group g-NW1_AERS
    
    sudo pcs resource create vip_NW1_AERS IPaddr2 \
      ip=10.0.0.8 \
     --group g-NW1_AERS
    
    sudo pcs resource create nc_NW1_AERS azure-lb port=62102 \
     --group g-NW1_AERS
    

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

    sudo pcs status
    
    # Node nw1-cl-0: standby
    # Online: [ nw1-cl-1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
    
  5. [2] Установите ERS SAP NetWeaver.

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

    Вы можете использовать параметр sapinstSAPINST_REMOTE_ACCESS_USER, чтобы разрешить не root-пользователю подключаться к 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
    

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

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

    • Профиль ASCS/SCS:

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

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

    • Профиль ERS:

      sudo vi /sapmnt/NW1/profile/NW1_ERS02_nw1-aers
      
      # Change the restart command to a start command
      #Restart_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
      Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
      
      # remove Autostart from ERS profile
      # Autostart = 1
      
  7. [A] Настройка Keep-Alive.

    Обмен данными между сервером приложений SAP NetWeaver и ASCS/SCS происходит через программный балансировщик нагрузки. Балансировщик нагрузки отключает неактивные подключения по истечении времени ожидания, которое можно настроить. Чтобы предотвратить это действие, задайте параметр в профиле SAP NetWeaver ASCS/SCS, если вы используете ENSA1. Измените системные параметры Linux keepalive на всех серверах SAP как для ENSA1, так и для ENSA2. Дополнительные сведения см. в заметке SAP 1410736.

    # Change the Linux system configuration
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  8. [A] Обновите /usr/sap/sapservices файл.

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

    sudo vi /usr/sap/sapservices
    
    # On the node where you installed the ASCS, comment out the following line
    # LD_LIBRARY_PATH=/usr/sap/NW1/ASCS00/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ASCS00/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ASCS00_nw1-ascs -D -u nw1adm
    
    # On the node where you installed the ERS, comment out the following line
    # LD_LIBRARY_PATH=/usr/sap/NW1/ERS02/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ERS02/exe/sapstartsrv pf=/usr/sap/NW1/ERS02/profile/NW1_ERS02_nw1-aers -D -u nw1adm
    
  9. [1] Создайте кластерные ресурсы SAP.

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

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

    sudo pcs property set maintenance-mode=true
    
    sudo pcs resource create rsc_sap_NW1_ASCS00 SAPInstance \
    InstanceName=NW1_ASCS00_nw1-ascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs" \
    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-NW1_ASCS
    
    sudo pcs resource meta g-NW1_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW1_ERS02 SAPInstance \
    InstanceName=NW1_ERS02_nw1-aers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS02_nw1-aers" \
    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-NW1_AERS
    
    sudo pcs constraint colocation add g-NW1_AERS with g-NW1_ASCS -5000
    sudo pcs constraint location rsc_sap_NW1_ASCS00 rule score=2000 runs_ers_NW1 eq 1
    sudo pcs constraint order start g-NW1_ASCS then stop g-NW1_AERS kind=Optional symmetrical=false
    
    sudo pcs node unstandby nw1-cl-0
    sudo pcs property set maintenance-mode=false
    

    Примечание.

    Если вы обновляете более раннюю версию и переходите на сервер постановки в очередь 2, см. заметку SAP 2641322.

    Примечание.

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

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

    sudo pcs status
    
    # Online: [ nw1-cl-0 nw1-cl-1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
    #      rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  10. [A] Добавление правил брандмауэра для ASCS и ERS в обоих узлах.

    # Probe Port of ASCS
    sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp
    # Probe Port of ERS
    sudo firewall-cmd --zone=public --add-port={62102,3202,3302,50213,50214,50216}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62102,3202,3302,50213,50214,50216}/tcp
    

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

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

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

  1. Настройте разрешение имен хостов.

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

    sudo vi /etc/hosts
    

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

    # IP addresses of the GlusterFS nodes
    10.0.0.40 glust-0
    10.0.0.41 glust-1
    10.0.0.42 glust-2
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS
    10.0.0.7 nw1-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS
    10.0.0.8 nw1-aers
    # IP address of the load balancer frontend configuration for database
    10.0.0.13 nw1-db
    
  2. sapmnt Создайте каталог.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  3. Установите клиент GlusterFS и другие требования.

    sudo yum -y install glusterfs-fuse uuidd
    
  4. Добавить записи монтирования.

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    glust-0:/NW1-sapmnt /sapmnt/NW1 glusterfs backup-volfile-servers=glust-1:glust-2 0 0
    glust-0:/NW1-trans /usr/sap/trans glusterfs backup-volfile-servers=glust-1:glust-2 0 0
    

    Подключите новые сетевые ресурсы.

    sudo mount -a
    
  5. Настройте файл подкачки.

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

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

    sudo service waagent restart
    

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

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

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

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

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    

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

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

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

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

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

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

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

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

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

    Выполните следующую команду, чтобы вывести список записей как <sapsid>adm:

    hdbuserstore List
    

    Все записи должны быть перечислены и выглядеть примерно так:

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

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

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

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

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

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

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

    [root@nw1-cl-0 ~]# pcs resource move rsc_sap_NW1_ASCS00
    
    [root@nw1-cl-0 ~]# pcs resource clear rsc_sap_NW1_ASCS00
    
    # Remove failed actions for the ERS that occurred as part of the migration
    [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
    

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  2. Имитация сбоя узла.

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

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

    [root@nw1-cl-1 ~]# echo b > /proc/sysrq-trigger
    

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

    Online: [ nw1-cl-0 nw1-cl-1 ]
    
    Full list of resources:
    
    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
    Failed Actions:
    * rsc_sap_NW1_ERS02_monitor_11000 on nw1-cl-0 'not running' (7): call=45, status=complete, exitreason='',
        last-rc-change='Tue Aug 21 13:52:39 2018', queued=0ms, exec=0ms
    

    Примечание.

    Если вы используете SBD в качестве механизма STONITH, может случиться так, что после перезагрузки, когда узел пытается повторно присоединиться к кластеру, он получает сообщение "нас якобы изолировали" в /var/log/messages, и завершаются службы Pacemaker и Corosync. Чтобы устранить проблему, можно выполнить обходное решение, описанное в RedHat KB Узел завершает работу Pacemaker после ограничения и перезапуска Corosync и Pacemaker. Однако в Azure установите задержку в 150 секунд для запуска службы Corosync. Убедитесь, что эти действия применяются ко всем узлам кластера.

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

    [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
    

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
  3. Блокировать сетевое взаимодействие.

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

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

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

    Если узлы кластера не могут взаимодействовать друг с другом, существует риск сценария разделения мозга. В таких ситуациях узлы кластера пытаются одновременно изолировать друг друга, что приводит к гонке по изоляции. Чтобы избежать этой ситуации, рекомендуется задать свойство priority-fencing-delay в конфигурации кластера (применимо только для pacemaker-2.0.4-6.el8 или более поздней версии).

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

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

     # If the iptables rule set on the server gets reset after a reboot, the rules will be cleared out. In case they have not been reset, please proceed to remove the iptables rule using the following command.
     iptables -D INPUT -s 10.0.0.8 -j DROP; iptables -D OUTPUT -d 10.0.0.8 -j DROP
    
  4. Убейте процесс сервера сообщений.

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

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

    [root@nw1-cl-0 ~]# pgrep -f ms.sapNW1 | xargs kill -9
    

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

    [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ASCS00
    [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
    

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  5. Убейте процесс сервера постановки в очередь.

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

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

    #If using ENSA1 
    [root@nw1-cl-1 ~]# pgrep -f en.sapNW1 | xargs kill -9
    
    #If using ENSA2
    [root@nw1-cl-1 ~]# pgrep -f enq.sapNW1 | xargs kill -9
    

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

    [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ASCS00
    [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
    

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
  6. Завершите процесс сервера очереди репликации.

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

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

    #If using ENSA1
    [root@nw1-cl-1 ~]# pgrep -f er.sapNW1 | xargs kill -9
    
    #If using ENSA2
    [root@nw1-cl-1 ~]# pgrep -f enqr.sapNW1 | xargs kill -9
    

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

    [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
    

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
  7. Убьет процесс вложенного запроса sapstartsrv .

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

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

    [root@nw1-cl-0 ~]# pgrep -fl ASCS00.*sapstartsrv
    # 59545 sapstartsrv
    
    [root@nw1-cl-0 ~]# kill -9 59545
    

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

    rsc_st_azure    (stonith:fence_azure_arm):      Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_AERS
         fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

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