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

Summary: Автоматизация API на стороне клиента или ручные операции на вторичном шлюзе (GW) занимают больше времени, чем на основном шлюзе.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

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

Пример сценария:

  • Заказчик использует Cinder (OpenStack) в качестве клиентского приложения для обмена данными с хранилищем на стороне клиента.
  • Пользователь отправляет запрос API для создания нового тома в системе.
  • Запрос получен на P-GW (Primary), передан на MDM, и том успешно создан.
  • Вся операция от клиента до успешного завершения занимает X секунд (в зависимости от сети и среды пользователя).
  • Пользователь отправляет запрос отмены сопоставления для вновь созданного тома. 
  • Отработка отказа GW повышает S-GW (Вторичный) для получения запросов (переключение при отказе может быть выполнено вручную или в результате сбоя службы или сети Первичной Стороны).
  • Пользователь отправляет еще один запрос API для создания нового тома в системе.
  • Запрос принимается на S-GW, передается на MDM, и том успешно создан.
  • Вся операция от клиента до успешного завершения занимает X+Y секунд.

Пример сценария состоит из трех операций: Команды «Create Volume», «Map Volume» и «Unmap Volume» выполняются одна за другой.
 

-ГВ

operations.log

2021-06-02 17:09:17,413 [https-jsse-nio-28443-exec-8] INFO  audit - 1.1.1.1:/api/types/Volume/instances {volumeType=ThinProvisioned, name=9g/MBZDNTYioDl1bTD34cw==, storagePoolId=fa75c1c100000000, compressionMethod=Normal, protectionDomainId=0089dc6000000000, volumeSizeInKb=5242880}
2021-06-02 17:09:17,601 [https-jsse-nio-28443-exec-3] INFO  audit - 1.1.1.1:/api/instances/Volume::5b273f9b00000005/action/addMappedSdc {guid=bb77b627-250b-457e-8a0b-fee221ceb941, allowMultipleMappings=TRUE}
2021-06-02 17:09:19,270 [https-jsse-nio-28443-exec-5] INFO  audit - 1.1.1.1:/api/instances/Volume::5b273f9b00000005/action/removeMappedSdc {guid=bb77b627-250b-457e-8a0b-fee221ceb941}

 

cinder-volume.log

2021-06-02 17:09:17.428 136 DEBUG cinder.volume.drivers.dell_emc.powerflex.rest_client [req-747562dc-0abd-472f-bff4-f739c52d88d2 8561f3a4fa914f0283bebe844eaae9ff 16f473111d914314aba5f4a3870a1ec7 - default default] REST Request: https://1.1.1.254:443/api/types/Volume/instances with params {"protectionDomainId": "0089dc6000000000", "storagePoolId": "fa75c1c100000000", "name": "9g/MBZDNTYioDl1bTD34cw==", "volumeType": "ThinProvisioned", "volumeSizeInKb": "5242880", "compressionMethod": "Normal"} _check_response /usr/lib/python3.6/site-packages/cinder/volume/drivers/dell_emc/powerflex/rest_client.py:518
2021-06-02 17:09:17.559 136 INFO os_brick.initiator.connectors.scaleio [req-747562dc-0abd-472f-bff4-f739c52d88d2 8561f3a4fa914f0283bebe844eaae9ff 16f473111d914314aba5f4a3870a1ec7 - default default] map volume request: https://1.1.1.254:443/api/instances/Volume::5b273f9b00000005/action/addMappedSdc
2021-06-02 17:09:19.241 136 INFO os_brick.initiator.connectors.scaleio [req-747562dc-0abd-472f-bff4-f739c52d88d2 8561f3a4fa914f0283bebe844eaae9ff 16f473111d914314aba5f4a3870a1ec7 - default default] Unmap volume request: https://1.1.1.254:443/api/instances/Volume::5b273f9b00000005/action/removeMappedSdc

С-ГВ

operations.log

2021-06-02 16:55:00,452 [https-jsse-nio-28443-exec-9] INFO  audit - 1.1.1.2:/api/types/Volume/instances {volumeType=ThinProvisioned, name=Ik6i/JD8TeKrTHtUg9HQrw==, storagePoolId=fa75c1c100000000, compressionMethod=Normal, protectionDomainId=0089dc6000000000, volumeSizeInKb=5242880}
2021-06-02 16:55:09,665 [https-jsse-nio-28443-exec-4] INFO  audit - 1.1.1.2:/api/instances/Volume::5b273f9a00000004/action/addMappedSdc {guid=bb77b627-250b-457e-8a0b-fee221ceb941, allowMultipleMappings=TRUE}
2021-06-02 16:55:20,373 [https-jsse-nio-28443-exec-9] INFO  audit - 1.1.1.2:/api/instances/Volume::5b273f9a00000004/action/removeMappedSdc {guid=bb77b627-250b-457e-8a0b-fee221ceb941}

 

cinder-volume.log

2021-06-02 16:55:00.461 136 DEBUG cinder.volume.drivers.dell_emc.powerflex.rest_client [req-ece34b6a-497f-4826-9c47-13f76773eaf2 8561f3a4fa914f0283bebe844eaae9ff 16f473111d914314aba5f4a3870a1ec7 - default default] REST Request: https://1.1.1.254:443/api/types/Volume/instances with params {"protectionDomainId": "0089dc6000000000", "storagePoolId": "fa75c1c100000000", "name": "Ik6i/JD8TeKrTHtUg9HQrw==", "volumeType": "ThinProvisioned", "volumeSizeInKb": "5242880", "compressionMethod": "Normal"} _check_response /usr/lib/python3.6/site-packages/cinder/volume/drivers/dell_emc/powerflex/rest_client.py:518
2021-06-02 16:55:00.594 136 INFO os_brick.initiator.connectors.scaleio [req-ece34b6a-497f-4826-9c47-13f76773eaf2 8561f3a4fa914f0283bebe844eaae9ff 16f473111d914314aba5f4a3870a1ec7 - default default] map volume request: https://1.1.1.254:443/api/instances/Volume::5b273f9a00000004/action/addMappedSdc
2021-06-02 16:55:11.320 136 INFO os_brick.initiator.connectors.scaleio [req-ece34b6a-497f-4826-9c47-13f76773eaf2 8561f3a4fa914f0283bebe844eaae9ff 16f473111d914314aba5f4a3870a1ec7 - default default] Unmap volume request: https://1.1.1.254:443/api/instances/Volume::5b273f9a00000004/action/removeMappedSdc

  


      Воздействие

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

      Cause

      Шлюз PowerFlex, работающий на Apache Tomcat, содержит несколько функций PowerFlex, в том числе шлюз REST, установщик PowerFlex и отправитель SNMP-ловушек. Для обеспечения высокой доступности при настройке двух экземпляров Apache Tomcat (серверов PowerFlex Gateway) используйте Apache httpd. Чтобы предотвратить возникновение единой точки отказа в Apache httpd, можно использовать экземпляр httpd для переключения при отказе, который кластеризуется с использованием одного из множества доступных стеков кластеризации.

      В среде заказчика, использующей RHEL для шлюзов, правильная конфигурация использует Keepalive и HAProxy.

      Общий (виртуальный) IP-адрес используется для обоих httpd-серверов Apache. Оба httpd-сервера Apache имеют одинаковую конфигурацию, за исключением того, что один из них определен в конфигурации Keepalived как Primary, а другой — как Secondary. В случае сбоя основной стороны дополнительная сторона становится первичной, что означает, что пользователи не замечают потери обслуживания.

      В среде RHEL/CentOS служба Keepalived осуществляет мониторинг серверов PowerFlex Gateway и определяет, на какой сервер следует переслать клиентский запрос. HAProxy и Keepalived настроены на RHEL/CentOS для обеспечения высокой доступности PowerFlex Gateway.

      Кипалайв  Инструмент с открытым исходным кодом используется для компонента keep-alive и отвечает за мониторинг состояния HAProxy и настройку виртуального IP-адреса по мере необходимости.
      Дополнительные сведения о Keepalived см. в разделе http://www.keepalived.org.

      Функция HAProxy  Инструмент с открытым исходным кодом, который служит в качестве балансировщика нагрузки для шлюза PowerFlex, отслеживает системы PowerFlex и перенаправляет трафик при выходе узла из строя.
      Дополнительные сведения о HAProxy см. в разделе http://www.haproxy.org.

      Конфигурация HAProxy по умолчанию настроена на то, чтобы иметь Secondary GW при владении виртуальным IP-адресом, чтобы повторить попытку передачи полученного запроса API на Primary (значение "retries" установлено в 3), а когда он не работает, чтобы перейти к отправке его на серверную часть (MDM).

      Resolution

      Как видно из приведенного ниже примера конфигурации HAProxy, файл HAProxy по умолчанию в Global settings , значение 'retries' установлено в 3, что означает, что он пытается повторить команды на Primary GW три раза по одной секунде каждый.

      Он выполняет повторный вызов к основному объекту, потому что в backend siogateway 'balance' устанавливается в 'first', что будет Primary GW.

      Изменение значений 'mode' и 'option', а также добавление характеристик 'server' также не имеет первостепенной важности:

      • Значения 'mode' и 'option' должны быть изменены на 'http' и 'httpchk' соответственно.
      • Характеристики 'сервер' должны быть добавлены с 'check fall 5 inter 2000 rise 2'.

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

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

      Файл конфигурации по умолчанию для HAProxy:
      haproxy_conf.png

      haproxy.cfg ДО редактирования:

      ...
      defaults
          retries 3
      ...
      backend powerflexgateway
          mode tcp
          balance first
          option ssl-hello-chk
          server gateway1 1.1.1.1:28443 maxconn 256 ssl verify none
          server gateway2 1.1.1.2:28443 maxconn 256 ssl verify none
      
        

      haproxy.cfg ПОСЛЕ редактирования:

      ...
      defaults
          retries 1
      ...
      backend powerflexgateway
          mode http
          balance first
          option httpchk
          server gateway1 1.1.1.1:28443 maxconn 256 ssl verify none check fall 5 inter 2000 rise 2
          server gateway2 1.1.1.2:28443 maxconn 256 ssl verify none check fall 5 inter 2000 rise 2

      Affected Products

      PowerFlex Software
      Article Properties
      Article Number: 000188121
      Article Type: Solution
      Last Modified: 13 Nov 2025
      Version:  4
      Find answers to your questions from other Dell users
      Support Services
      Check if your device is covered by Support Services.