PowerFlex:当主网关关闭时,网关高可用性配置可能会导致命令中继延迟

Summary: 与通过主网关 GW 相比,通过辅助网关 (GW) 完成客户端 API 自动化或手动作所需的时间比预期的要长。

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

主 GW 故障切换并在次要 GW 上收到请求后,发送请求需要更长时间才能完成作。

示例情景:

  • 客户使用 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 Gateway 在 Apache Tomcat 上运行,托管多个 PowerFlex 功能,包括 REST 网关、PowerFlex 安装程序和 SNMP 陷阱发送器。要在配置两个 Apache Tomcat 实例(PowerFlex Gateway 服务器)时获得高可用性,请使用 Apache httpd。为了防止 Apache httpd 中出现单点故障,您可以使用故障转移 httpd 实例,该实例使用许多可用的群集堆栈之一进行群集。

      在将 RHEL 用于 GW 的客户环境中,正确的配置使用 Keepalived 和 HAProxy。

      共享(虚拟)IP 地址用于两个 Apache httpd 服务器。两个 Apache httpd 服务器具有相同的配置,不同之处在于,一个服务器在 Keepalived 配置中定义为主服务器,而另一个服务器定义为辅助服务器。如果主节点发生故障,辅助节点将成为主节点,这意味着用户不会注意到任何服务丢失。

      在 RHEL/CentOS 环境中,Keepalived 服务会监视 PowerFlex Gateway服务器并确定将客户端请求转发到哪个服务器。在 RHEL/CentOS 上配置了 HAProxy 和 Keepalived 以提供 PowerFlex Gateway高可用性。

      The Keepalived  开源工具 用于保持活动组件,负责监控 HAProxy 的状态并根据需要配置虚拟 IP 地址。
      有关 Keepalived 的更多信息,请参阅 http://www.keepalived.org

      The HAProxy  开源工具,它充当 PowerFlex Gateway的负载平衡器,监视 PowerFlex 系统并在节点宕机时重定向流量。
      有关 HAProxy 的详细信息,请参阅 http://www.haproxy.org

      HAProxy 的默认配置设置为在拥有虚拟 IP 时具有辅助 GW,以重新尝试将收到的 API 请求传输到主 GW(“retries”值设置为 3),并在关闭时继续将其发送到后端 (MDM)。

      Resolution

      从下面的 HAProxy 配置示例中可以看出,默认 HAProxy 位于 Global settings 部分,则 'retries' 值设置为 3,这意味着它会尝试对主 GW 重试命令 3 次,每次 1 秒。

      它会对主 GW 执行重试调用,因为在此下 backend siogateway 部分中,“balance”值设置为“first”,即主 GW。

      更改“mode”“option”的值, 并添加“server”特征也并非最重要:

      • mode” 和“ option” 值应分别更改为“http”和“httpchk”。
      • server”特征应添加“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.