NSX Edge 로드 밸런서는 여러 서버에 네트워크 트래픽을 분산시켜 최적의 리소스 사용을 달성하고, 중복성을 제공하고, 리소스 활용률을 분산시킵니다.
NSX 로드 밸런서는 계층 4 및 계층 7 로드 밸런싱 엔진을 지원합니다. 계층 4 로드 밸런서는 패킷 기반으로, 빠른 경로 처리를 제공하고, 계층 7 로드 밸런서는 HTTP 소켓 기반으로, 백엔드 서비스에 대한 고급 트래픽 조작 및 DDOS 완화를 허용합니다.
연결 기반의 로드 밸런싱은 TCP 및 UDP 계층에서 구현됩니다. 연결 기반의 로드 밸런싱은 연결을 중지하거나 전체 요청을 버퍼링하지 않으며, 패킷을 조작한 후에 선택된 서버로 패킷을 직접 전송합니다. TCP 및 UDP 세션은 단일 세션에 대한 패킷이 동일한 서버로 전달되도록 로드 밸런서에서 유지됩니다. 연결 기반 로드 밸런싱은 가속화 비활성 TCP 및 UDP 가상 IP를 사용하거나 가속화 활성 TCP 가상 IP를 사용하여 수행됩니다.
소켓 기반 로드 밸런싱은 소켓 인터페이스 위에서 구현됩니다. 단일 요청에 대해 클라이언트 쪽 연결과 서버 쪽 연결의 두 연결이 설정됩니다. 서버 쪽 연결은 서버를 선택한 후에 설정됩니다. HTTP 소켓 기반 구현의 경우 선택 사항인 L7 조작을 통해 전체 요청이 선택한 서버로 전송되기 전에 수신됩니다. HTTPS 소켓 기반 구현의 경우 클라이언트 쪽 연결 또는 서버 쪽 연결에서 인증 정보가 교환됩니다. 소켓 기반 로드 밸런싱은 TCP, HTTP 및 HTTPS 가상 서버의 기본 모드입니다.
NSX 로드 밸런서의 핵심 개념에는 다음이 포함됩니다.
- 가상 서버
- IP, 포트, 프로토콜 및 애플리케이션 프로파일의 고유 조합(예: TCP 또는 UDP)으로 나타내는 애플리케이션 서비스를 추상화한 것입니다.
- 서버 풀
- 백엔드 서버의 그룹입니다.
- 서버 풀 멤버
- 백엔드 서버를 풀의 멤버로 나타냅니다.
- 서비스 모니터
- 백엔드 서버의 상태를 입증하는 방법을 정의합니다.
- 애플리케이션 프로파일
- 지정된 애플리케이션에 대한 TCP, UDP, 지속성 및 인증서 구성을 나타냅니다.
먼저 로드 밸런서에 대한 전역 옵션을 설정하여 시작하고 백엔드 서버 멤버의 서버 풀을 생성한 후 서비스 모니터를 해당 풀에 연결하여 백엔드 서버를 효율적으로 관리하고 공유합니다.
그런 다음 애플리케이션 프로파일을 생성하여 클라이언트 SSL, 서버 SSL, x-forwarded-for 또는 지속성과 같은 로드 밸런서의 일반적인 애플리케이션 동작을 정의합니다. 지속성은 로드 밸런싱 알고리즘을 실행하지 않고 동일한 풀 멤버로 발송되어야 하는 비슷한 특성(예: 소스 IP 또는 쿠키)을 포함하는 후속 요청을 전송합니다. 가상 서버 간에 애플리케이션 프로파일을 다시 사용할 수 있습니다.
그런 다음 트래픽 조작에 대해 요청별로 다른 풀에서 처리될 수 있게 특정 URL 또는 호스트 이름을 일치시키는 것과 같은 애플리케이션별 설정을 구성하는 선택적 애플리케이션 규칙을 생성합니다. 그다음으로 애플리케이션에 관련된 서비스 모니터를 생성하거나 이전에 생성한 서비스 모니터를 사용합니다.
경우에 따라 L7 가상 서버의 고급 기능을 지원하기 위한 애플리케이션 규칙을 생성할 수 있습니다. 애플리케이션 규칙의 일부 사용 사례에는 컨텐츠 스위칭, 헤더 조작, 보안 규칙 및 DOS 보호가 포함됩니다.
마지막으로 서버 풀, 애플리케이션 프로파일 및 잠재적 애플리케이션 규칙을 연결하는 가상 서버를 생성합니다.
가상 서버가 요청을 수신하면 로드 밸런싱 알고리즘에서는 풀 멤버 구성 및 런타임 상태를 고려합니다. 그런 다음 알고리즘에서 해당 풀을 계산하여 하나 이상의 멤버로 구성되는 트래픽을 분산합니다. 풀 멤버 구성에는 가중치, 최대 연결 및 조건 상태와 같은 설정이 포함됩니다. 런타임 상태에는 현재 연결, 응답 시간 및 상태 검사 상태 정보가 포함됩니다. 계산 방법에는 라운드 로빈, 가중 라운드 로빈, 최소 연결, 소스 IP 해시, 가중 최소 연결, URL, URI 또는 HTTP 헤더가 있을 수 있습니다.
각 풀은 연결된 서비스 모니터에 의해 모니터링됩니다. 로드 밸런서가 풀 멤버의 문제를 발견하면 해당 멤버는 [다운] 상태로 표시됩니다. 서버 풀에서 풀 멤버를 선택할 때만 UP 서버가 선택됩니다. 서버 풀이 서비스 모니터로 구성되지 않으면 모든 풀 멤버가 UP로 간주됩니다.
로드 밸런서 문제 해결에 대한 자세한 내용은 "NSX 문제 해결 가이드" 를 참조하십시오.