PowerFlex: Конфігурація шлюзу з високою доступністю може спричинити затримку в командному ретрансляторі, коли основний шлюз не працює

Summary: Автоматизація API на стороні клієнта або ручні операції займають більше часу, ніж очікувалося, через вторинний шлюз (GW), ніж через основний 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 (первинний), передається на MDM, і том успішно створюється.
  • Вся операція від клієнта до успішного завершення займає X секунд (залежно від мережі та середовища користувача).
  • Користувач надсилає запит UNMAP на новостворений том. 
  • Резервування GW підвищує S-GW (вторинний) до прийому запитів (резервування може бути виконане вручну або внаслідок відключення сервісу чи мережі основного пристрою, або обох варіантів).
  • Користувач надсилає ще один запит API, щоб створити новий том у системі.
  • Запит отримується на S-GW, передається на MDM, і том успішно створюється.
  • Вся операція від клієнта до успішного завершення займає X+Y секунд.

Приклад сценарію складається з трьох операцій: "Create Volume", "Map Volume" та "Unmap Volume" виконуються одна за одною.
 

P-GW

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

S-GW

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 для GW, правильна конфігурація використовує Keepalived і HAProxy.

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

      У середовищі RHEL/CentOS сервіс Keepalived моніторить сервери шлюзу PowerFlex і визначає, на який сервер переадресувати запит клієнта. HAProxy та Keepalived налаштовані на RHEL/CentOS для забезпечення високої доступності PowerFlex Gateway.

      Кіпалівів  Інструмент з відкритим кодом використовується для компонента keep-alive і відповідає за моніторинг стану HAProxy та налаштування віртуальної IP-адреси за потреби.
      Для отримання додаткової інформації про Keepalived дивіться http://www.keepalived.org.

      The HAProxy  Інструмент з відкритим кодом, який слугує балансувальником навантаження для PowerFlex Gateway, моніторить системи PowerFlex і перенаправляє трафік у разі відключення вузла.
      Для отримання додаткової інформації про HAProxy див. http://www.haproxy.org.

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

      Resolution

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

      Він виконує повторний виклик Primary GW, бо під backend siogateway розділу, значення 'баланс' встановлюється на 'перший', що є первинним 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.