本主题讨论了一些问题以及如何解决这些问题。
在使用 NSX 负载平衡时,通常会出现以下问题:
- TCP 端口(例如,端口 443)上的负载平衡无法正常工作。
- 验证拓扑。有关详细信息,请参见《NSX 管理指南》。
- 验证是否可以执行 ping 操作以访问虚拟服务器 IP 地址,或者查看上游路由器以确保填充了 ARP 表。
- 在 UI 中验证配置。
- 在 CLI 中验证配置。
- 捕获数据包。
- 未利用负载平衡池的某个成员。
- 验证服务器是否位于池中并启用以及监控运行状况。
- Edge 流量未实现负载平衡。
- 验证池和持久性配置。如果配置了持久性并使用少量客户端,您可能会发现未将连接平均分配到后端池成员。
- 第 7 层负载平衡引擎停止。
- 运行状况监控引擎停止。
- 启用负载平衡器服务。请参阅《NSX 管理指南》。
- 池成员监控状态为“警告/严重”。
- 验证是否可以从负载平衡器中访问应用程序服务器。
- 验证应用程序服务器防火墙或 DFW 是否允许流量通过。
- 确保应用程序服务器能够响应指定的运行状况探查。
- 池成员处于“非活动”状态。
- 验证是否在池配置中启用了池成员。
- 第 7 层粘性表与备用 Edge 不同步。
- 确保配置了 HA。
- 具有客户端连接,但无法完成应用程序事务。
- 验证是否在应用程序配置文件中配置了正确的持久性。
- 如果应用程序仅使用池中的一个服务器(而不是两个),则很可能会出现持久性问题。
基本故障排除
- 在 vSphere Web Client 中检查负载平衡器配置状态:
- 单击网络和安全 > NSX Edge (Networking & Security > NSX Edges)。
- 双击一个 NSX Edge。
- 单击管理 (Manage),然后单击负载平衡器 (Load Balancer)选项卡。
- 检查负载平衡器状态和配置的日志记录级别。
- 在排除负载平衡器服务故障之前,请在 NSX Manager 上运行以下命令以确保该服务已启动并正在运行:
nsxmgr> show edge edge-4 service loadbalancer haIndex: 0 ----------------------------------------------------------------------- Loadbalancer Services Status: L7 Loadbalancer : running ----------------------------------------------------------------------- L7 Loadbalancer Statistics: STATUS PID MAX_MEM_MB MAX_SOCK MAX_CONN MAX_PIPE CUR_CONN CONN_RATE CONN_RATE_LIMIT MAX_CONN_RATE running 1580 0 2081 1024 0 0 0 0 0 ----------------------------------------------------------------------- L4 Loadbalancer Statistics: MAX_CONN ACT_CONN INACT_CONN TOTAL_CONN 0 0 0 0 Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn
注: 您可以运行 show edge all 以查找 NSX Edge 名称。
解决配置问题
如果 NSX 用户界面或 REST API 调用拒绝负载平衡器配置操作,则会将其归类为配置问题。
解决数据层面问题
NSX Manager 接受负载平衡器配置,但在客户端和 Edge 负载平衡服务器之间出现连接或性能问题。数据层面问题还包括负载平衡器运行时 CLI 问题以及负载平衡器系统事件问题。
- 使用以下 REST API 调用将 NSX Manager 中的 Edge 日志记录级别从 INFO 更改为 TRACE 或 DEBUG。
URL: https://NSX_Manager_IP/api/1.0/services/debug/loglevel/com.vmware.vshield.edge?level=TRACE Method: POST
- 在 vSphere Web Client 中检查池成员状态。
- 单击网络和安全 > NSX Edge (Networking & Security > NSX Edges)。
- 双击一个 NSX Edge。
- 单击管理 (Manage),然后单击负载平衡器 (Load Balancer)选项卡。
- 单击池 (Pools)以查看配置的负载平衡器池摘要。
- 选择负载平衡器池。单击显示池统计信息 (Show Pool Statistics),然后验证池状态是否为“已启动”。
- 通过使用以下 REST API 调用,您可以从 NSX Manager 中获取更详细的负载平衡器池配置统计信息:
URL: https://NSX_Manager_IP/api/4.0/edges/{edgeId}/loadbalancer/statistics Method: GET <?xml version="1.0" encoding="UTF-8"?> <loadBalancerStatusAndStats> <timeStamp>1463507779</timeStamp> <pool> <poolId>pool-1</poolId> <name>Web-Tier-Pool-01</name> <member> <memberId>member-1</memberId> <name>web-01a</name> <ipAddress>172.16.10.11</ipAddress> <status>UP</status> <lastStateChangeTime>2016-05-16 07:02:00</lastStateChangeTime> <bytesIn>0</bytesIn> <bytesOut>0</bytesOut> <curSessions>0</curSessions> <httpReqTotal>0</httpReqTotal> <httpReqRate>0</httpReqRate> <httpReqRateMax>0</httpReqRateMax> <maxSessions>0</maxSessions> <rate>0</rate> <rateLimit>0</rateLimit> <rateMax>0</rateMax> <totalSessions>0</totalSessions> </member> <member> <memberId>member-2</memberId> <name>web-02a</name> <ipAddress>172.16.10.12</ipAddress> <status>UP</status> <lastStateChangeTime>2016-05-16 07:02:01</lastStateChangeTime> <bytesIn>0</bytesIn> <bytesOut>0</bytesOut> <curSessions>0</curSessions> <httpReqTotal>0</httpReqTotal> <httpReqRate>0</httpReqRate> <httpReqRateMax>0</httpReqRateMax> <maxSessions>0</maxSessions> <rate>0</rate> <rateLimit>0</rateLimit> <rateMax>0</rateMax> <totalSessions>0</totalSessions> </member> <status>UP</status> <bytesIn>0</bytesIn> <bytesOut>0</bytesOut> <curSessions>0</curSessions> <httpReqTotal>0</httpReqTotal> <httpReqRate>0</httpReqRate> <httpReqRateMax>0</httpReqRateMax> <maxSessions>0</maxSessions> <rate>0</rate> <rateLimit>0</rateLimit> <rateMax>0</rateMax> <totalSessions>0</totalSessions> </pool> <virtualServer> <virtualServerId>virtualServer-1</virtualServerId> <name>Web-Tier-VIP-01</name> <ipAddress>172.16.10.10</ipAddress> <status>OPEN</status> <bytesIn>0</bytesIn> <bytesOut>0</bytesOut> <curSessions>0</curSessions> <httpReqTotal>0</httpReqTotal> <httpReqRate>0</httpReqRate> <httpReqRateMax>0</httpReqRateMax> <maxSessions>0</maxSessions> <rate>0</rate> <rateLimit>0</rateLimit> <rateMax>0</rateMax> <totalSessions>0</totalSessions> </virtualServer> </loadBalancerStatusAndStats>
-
要从命令行中检查负载平衡器统计信息,请在 NSX Edge 上运行以下命令。
对于特定的虚拟服务器:先运行 show service loadbalancer virtual 以获取虚拟服务器名称,然后运行 show statistics loadbalancer virtual <virtual-server-name>。
对于特定的 TCP 池:先运行 show service loadbalancer pool 以获取池名称,然后运行 show statistics loadbalancer pool <pool-name>。
- 查看负载平衡器统计信息以查找故障迹象。