PowerFlex: Die Konfiguration der hohen Verfügbarkeit des Gateways kann zu einer Verzögerung des Befehlsrelais führen, wenn das primäre Gateway ausgefallen ist

Summary: Clientseitige API-Automatisierung oder manuelle Vorgänge dauern länger als erwartet über das sekundäre Gateway (GW) als über das primäre 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

Sobald ein Failover der primären Gateway-Instanz durchgeführt wurde und Anforderungen auf der sekundären Storage-Instanz eingehen, dauert das Senden einer Anforderung länger, um den Vorgang abzuschließen.

Beispielszenario:

  • Ein Kunde verwendet Cinder (OpenStack) als clientseitige Anwendung für die Back-end-Storage-Kommunikation.
  • Ein Nutzer sendet eine API-Anforderung, um ein neues Volume auf dem System zu erstellen.
  • Die Anforderung wird auf P-GW (Primary) empfangen, an den MDM übertragen und das Volume wird erfolgreich erstellt.
  • Der gesamte Vorgang vom Client bis zum erfolgreichen Abschluss dauert X Sekunden (abhängig vom Netzwerk und der Umgebung des Benutzers).
  • Der Nutzer sendet eine UNMAP-Anforderung an das neu erstellte Volume. 
  • Beim GW-Failover wird S-GW (sekundär) auf den Empfang von Anforderungen hochgestuft (das Failover kann manuell oder als Ergebnis eines Ausfalls des Dienstes oder Netzwerks des primären Server oder beider erfolgen).
  • Der Nutzer sendet eine weitere API-Anforderung, um ein neues Volume auf dem System zu erstellen.
  • Die Anforderung wird auf S-GW empfangen, an den MDM übertragen und das Volume wird erfolgreich erstellt.
  • Der gesamte Vorgang vom Client bis zum erfolgreichen Abschluss dauert X+Y Sekunden.

Das Beispielszenario besteht aus drei Vorgängen: "Create Volume", "Map Volume" und "Unmap Volume" werden nacheinander ausgeführt.
 

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

  


      Auswirkungen

      Die clientseitige API-Automatisierung oder manuelle Vorgänge dauern länger als erwartet.

      Cause

      Das PowerFlex Gateway, das auf Apache Tomcat ausgeführt wird, hostet mehrere PowerFlex-Funktionen, einschließlich eines REST-Gateways, des PowerFlex-Installationsprogramms und des SNMP-Trap-Senders. Wenn zwei Apache Tomcat-Instanzen (PowerFlex Gateway-Server) konfiguriert sind, verwenden Sie für hohe Verfügbarkeit Apache httpd. Um einen Single Point of Failure in Apache HTTPD zu verhindern, können Sie eine Failover-HTTPD-Instanz verwenden, die mit einem der vielen verfügbaren Clustering-Stacks geclustert wird.

      In der Umgebung eines Kunden, die RHEL für die Storage-Kanäle verwendet, verwendet die richtige Konfiguration Keepalived und HAProxy.

      Eine gemeinsame (virtuelle) IP-Adresse wird für beide Apache httpd-Server verwendet. Beide Apache HTTPD-Server haben die gleiche Konfiguration, mit der Ausnahme, dass einer in der Keepawed-Konfiguration als primärer Server definiert ist, während der andere als sekundärer Server definiert ist. Wenn der primäre Server ausfällt, wird der sekundäre zum primären Server, was bedeutet, dass die Nutzer keinen Serviceverlust bemerken.

      In einer RHEL/CentOS-Umgebung überwacht der Keepalive-Service die PowerFlex Gateway -Server und bestimmt, an welchen Server die Clientanfrage weitergeleitet werden soll. HAProxy und Keepalived werden unter RHEL/CentOS konfiguriert, um PowerFlex Gateway hohe Verfügbarkeit zu bieten.

      Die Keepalived  Open-Source-Tool wird für die Keep-Alive-Komponente verwendet und ist für die Überwachung des Status von HAProxy und die Konfiguration der virtuellen IP-Adresse nach Bedarf verantwortlich.
      Weitere Informationen zu Keepalived finden Sie unter http://www.keepalived.org.

      Der HAProxy  Open-Source-Tool, der als Load Balancer für das PowerFlex Gateway dient, überwacht die PowerFlex-Systeme und leitet den Datenverkehr um, wenn ein Node ausfällt.
      Weitere Informationen zu HAProxy finden Sie unter http://www.haproxy.org.

      Die Standardkonfiguration von HAProxy ist so festgelegt, dass der sekundäre GW beim Besitz der virtuellen IP erneut versucht, die empfangene API-Anforderung an den primären zu übertragen (der Wert "retries" ist auf 3 festgelegt) und wenn er ausgefallen ist, um sie an das Backend (MDM) zu senden.

      Resolution

      Wie in der Beispiel-HAProxy-Konfiguration unten zu sehen ist, ist der Standard-HAProxy unter dem Global settings wird der Wert für 'retries' auf 3 gesetzt, was bedeutet, dass versucht wird, die Befehle an das primäre Gateway dreimal für jeweils eine Sekunde zu wiederholen.

      Er führt den Wiederholungsaufruf an das primäre Gateway durch, da unter dem backend siogateway wird der Wert "balance" auf "first" gesetzt, was dem primären GW entspricht.

      Das Ändern der Werte für 'mode' und 'option' und das Hinzufügen von 'server'-Merkmalen sind ebenfalls von größter Wichtigkeit:

      • Die Werte "mode" und "option" sollten in "http" bzw. "httpchk" geändert werden.
      • Die Merkmale "Server" sollten mit "check Fall 5 Inter 2000 RISE 2" ergänzt werden.

      Sobald die oben genannten Werte geändert und hinzugefügt werden, verringert sich die Latenz, wenn nicht sogar vollständig.

      Die HAProxy-Einstellungen können an die Umgebungsanforderungen des Kunden angepasst werden. Wenn ein Kunde seine Anwendungsaufrufe beschleunigen muss, kann er die HAProxy-Einstellungen an seine Geschäftsanforderungen anpassen.

      Standardkonfigurationsdatei für HAProxy:
      haproxy_conf.png

      haproxy.cfg VOR der Bearbeitung:

      ...
      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 NACH der Bearbeitung:

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