이 항목에서는 몇 가지 문제와 해결 방법을 살펴봅니다.
다음 문제는 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)를 클릭하여 풀 상태가 UP인지 확인하십시오.
- 다음 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>을 실행합니다.
- 로드 밸런서 통계에서 실패 표시를 확인하십시오.