PowerFlex: Konfiguration av gateway med hög tillgänglighet kan orsaka en fördröjning i kommandoreläet när den primära gatewayen är nere

Summary: API-automatisering på klientsidan eller manuella åtgärder tar längre tid än förväntat att slutföra via den sekundära gatewayen (GW) än via den primära 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

När den primära GW:n har redundansväxlats och tar emot begäranden på den sekundära GW:n tar det längre tid att skicka en begäran för att slutföra åtgärden.

Exempelscenario:

  • En kund använder Cinder (OpenStack) som ett program på klientsidan för kommunikation med backend-lagring.
  • En användare skickar en API-begäran om att skapa en ny volym i systemet.
  • Begäran tas emot på P-GW (primär), överförs till MDM och volymen skapas.
  • Hela operationen från klienten till ett lyckat slutförande tar X sekunder (beroende på användarens nätverk och miljö).
  • Användaren skickar en UNMAP-begäran på den nyligen skapade volymen. 
  • GW-redundans befordrar S-GW (sekundär) för att ta emot begäranden (redundans kan göras manuellt eller som ett resultat av att den primära tjänstens tjänst eller nätverk eller båda slutar fungera).
  • Användaren skickar en annan API-begäran för att skapa en ny volym i systemet.
  • Begäran tas emot på S-GW, överförs till MDM och volymen skapas.
  • Hela åtgärden från klienten till ett lyckat slutförande tar X + Y sekunder.

Exempelscenariot består av tre åtgärder: "Create Volume", "Map Volume" och "Unmap Volume" körs en efter en.
 

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

  


      Påverkan

      API-automatisering på klientsidan eller manuella åtgärder tar längre tid än förväntat att slutföra.

      Cause

      PowerFlex Gateway, som körs på Apache Tomcat, har flera PowerFlex-funktioner, inklusive en REST-gateway, PowerFlex-installationsprogram och SNMP-trapavsändare. För hög tillgänglighet när två Apache Tomcat-instanser (PowerFlex Gateway-servrar) har konfigurerats använder du Apache httpd. För att förhindra en enskild felpunkt i Apache httpd kan du använda en httpd-redundansinstans som klustras med hjälp av en av de många tillgängliga klustringsstackarna.

      I en kundmiljö som använder RHEL för GW:er används Keepalived och HAProxy för rätt konfiguration.

      En delad (virtuell) IP-adress används för båda Apache httpd-servrarna. Båda Apache httpd-servrarna har samma konfiguration, förutom att den ena definieras i Keepalive-konfigurationen som den primära, medan den andra definieras som den sekundära. Om den primära misslyckas blir den sekundära den primära, vilket innebär att användarna inte märker någon förlust av tjänsten.

      I en RHEL/CentOS-miljö övervakar Keepalive-tjänsten PowerFlex Gateway-servrarna och avgör till vilken server klientbegäran ska vidarebefordras. HAProxy och Keepalived konfigureras på RHEL/CentOS för att ge PowerFlex Gateway med hög tillgänglighet.

      The Keepalived  Verktyg med öppen källkod används för keep-alive-komponenten och ansvarar för att övervaka status för HAProxy och konfigurera den virtuella IP-adressen efter behov.
      Mer information om Keepalived finns i http://www.keepalived.org.

      The HAProxy  Verktyg med öppen källkod, som fungerar som en lastbalanserare för PowerFlex Gateway, övervakar PowerFlex-systemen och omdirigerar trafik om en nod slutar fungera.
      Mer information om HAProxy finns i http://www.haproxy.org.

      Standardkonfigurationen för HAProxy är inställd på att ha sekundär GW när du äger den virtuella IP-adressen, för att försöka överföra den mottagna API-begäran till den primära ("retries"-värdet är inställt på 3) och när den är nere fortsätter du att skicka den till serverdelen (MDM).

      Resolution

      Som du kan se i exemplet med HAProxy-konfigurationen nedan är standard-HAProxy under Global settings är värdet "återförsök" inställt på 3, vilket innebär att det försöker försöka utföra kommandona till den primära GW tre gånger under en sekund vardera.

      Det gör återförsöksanropet till den primära GW eftersom under backend siogateway är värdet "balance" inställt på "first", vilket skulle vara den primära GW.

      Att ändra värdena för "läge" och "alternativ" och lägga till "server"-egenskaper är också av yttersta vikt:

      • Värdena "mode" och "option" bör ändras till "http" respektive "httpchk".
      • Egenskaper för "server" bör läggas till med "Check Fall 5 Inter 2000 RISE 2".

      När värdena som nämns ovan har ändrats och lagts till minskar latensen om den inte försvinner helt.

      HAProxy-inställningarna är justerbara för kundernas miljöbehov. Om en kund vill att deras programanrop ska vara snabbare kan de justera HAProxy-inställningarna så att de passar deras affärsbehov.

      Standardkonfigurationsfil för HAProxy:
      haproxy_conf.png

      haproxy.cfg INNAN redigera:

      ...
      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 EFTER redigering:

      ...
      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.