PowerFlex : La configuration haute disponibilité de la passerelle peut entraîner un retard dans le relais de commande lorsque la passerelle principale est en panne

Summary: L’automatisation de l’API côté client ou les opérations manuelles prennent plus de temps que prévu sur la passerelle secondaire (GW) que via la passerelle principale.

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

Une fois que la passerelle principale est basculée et reçoit des demandes sur la passerelle secondaire, l’envoi d’une demande prend plus de temps pour terminer l’opération.

Exemple de scénario :

  • Un client utilise Cinder (OpenStack) en tant qu’application côté client pour la communication sur le stockage back-end.
  • Un utilisateur envoie une demande d’API pour créer un nouveau volume sur le système.
  • La demande est reçue sur P-GW (principale), transmise au MDM, et le volume est créé avec succès.
  • L’ensemble de l’opération, depuis le client jusqu’à sa réussite prend X secondes (en fonction du réseau et de l’environnement des utilisateurs).
  • L’utilisateur envoie une demande de suppression de mappages sur le volume nouvellement créé. 
  • Le basculement de passerelle promeut la S-GW (secondaire) pour recevoir des demandes (le basculement peut être effectué manuellement ou à la suite d’une panne du service ou du réseau du principal, ou des deux).
  • L’utilisateur envoie une autre demande d’API pour créer un nouveau volume sur le système.
  • La demande est reçue sur S-GW, transmise au MDM, et le volume est créé avec succès.
  • L’opération complète, depuis le client jusqu’à sa finalisation, prend X+Y secondes.

L’exemple de scénario consiste en trois opérations : Les options « Create Volume », « Map Volume » et « Unmap Volume » s’exécutent l’une après l’autre.
 

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

  


      Impact

      L’automatisation des API côté client ou les opérations manuelles prennent plus de temps que prévu.

      Cause

      La passerelle PowerFlex, qui s’exécute sur Apache Tomcat, héberge plusieurs fonctionnalités PowerFlex, notamment une passerelle REST, le programme d’installation PowerFlex et l’expéditeur de traps SNMP. Pour la haute disponibilité lorsque deux instances Apache Tomcat (serveurs de passerelle PowerFlex) sont configurées, utilisez Apache httpd. Pour éviter un point unique de défaillance dans Apache httpd, vous pouvez utiliser une instance httpd de basculement qui est mise en cluster à l’aide de l’une des nombreuses piles de clustering disponibles.

      Dans l’environnement d’un client qui utilise RHEL pour les passerelles, la configuration correcte utilise Keepalived et HAProxy.

      Une adresse IP partagée (virtuelle) est utilisée pour les deux serveurs Apache httpd. Les deux serveurs httpd Apache ont la même configuration, sauf que l’un est défini dans la configuration Keepalived comme le serveur principal, tandis que l’autre est défini comme le serveur secondaire. En cas de défaillance du serveur principal, le serveur secondaire devient le serveur principal, ce qui signifie que les utilisateurs ne constatent aucune perte de service.

      Dans un environnement RHEL/CentOS, le service Keepalived surveille les serveurs de la passerelle PowerFlex et détermine vers quel serveur transférer la demande du client. HAProxy et Keepalived sont configurés sur RHEL/CentOS pour fournir une haute disponibilité à la passerelle PowerFlex.

      Le Keepalived  Outil Open Source est utilisé pour le composant keep-alive et est responsable de la surveillance de l’état de HAProxy et de la configuration de l’adresse IP virtuelle en fonction des besoins.
      Pour plus d’informations sur Keepalived, reportez-vous à la section http://www.keepalived.org.

      Le HAProxy  Outil Open Source, qui sert d’équilibreur de charge pour la passerelle PowerFlex, surveille les systèmes PowerFlex et redirige le trafic en cas de panne d’un nœud.
      Pour plus d’informations sur HAProxy, reportez-vous à http://www.haproxy.org.

      La configuration par défaut de HAProxy est définie pour avoir la passerelle secondaire lors de la possession de l’adresse IP virtuelle, pour réessayer de transmettre la demande d’API reçue au principal (la valeur « rettries » est définie sur 3) et, lorsqu’elle est arrêtée, pour l’envoyer au back-end (MDM).

      Resolution

      Comme on peut le voir dans l’exemple de configuration HAProxy ci-dessous, le HAProxy par défaut sous le Global settings , la valeur 'retries' est définie sur 3, ce qui signifie qu’elle tente de réessayer les commandes vers la GW principale trois fois pendant une seconde chacune.

      Il effectue l’appel de nouvelle tentative vers la passerelle principale, car sous le backend siogateway , la valeur 'balance' est définie sur 'first', qui serait la GW primaire.

      De même, il n’est pas de la plus haute importance de modifier les valeurs de 'mode' et 'option' et d’ajouter des caractéristiques de 'server' :

      • Les valeurs 'mode' et 'option' doivent être remplacées respectivement par 'http' et 'httpchk'.
      • Les caractéristiques 'serveur' doivent être ajoutées avec 'check fall 5 inter 2000 rise 2'.

      Une fois que les valeurs mentionnées ci-dessus sont modifiées et ajoutées, la latence diminue, voire disparaît complètement.

      Les paramètres HAProxy sont réglables en fonction des besoins environnementaux des clients. Si un client a besoin que ses appels d’application soient plus rapides, il peut ajuster les paramètres HAProxy pour répondre aux besoins de l’entreprise.

      Fichier de configuration par défaut pour HAProxy :
      haproxy_conf.png

      haproxy.cfg AVANT l’édition :

      ...
      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 AFTER edit :

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