2005/08/26

Network Load Balancing

NLB(네트워크 로드 균형 조정) 서비스는 웹, FTP, 방화벽, 프록시, VPN 및 기타 업무에 중요한 서버에 사용되는 응용 프로그램과 같은 인터넷 서버 프로그램의 가용성 및 확장성을 향상시킵니다.



첫째 클러스터는 두 대의 호스트로 구성되어 있고 둘째 클러스터는 네 대의 NLB 호스트로 구성되어 있습니다. 각 호스트는 웹, FTP 및 텔넷 서버 응용 프로그램 등 필요한 개별 서버 응용 프로그램의 복사본을 실행합니다.



NLB드라이버는 위에서 보는 바와 같은 구조를 가지고 있다. 네트워크 어댑터가 LAN에 연결되어 있고 그 네트워크 윗 계층에 네트워크 어댑터 드라이버가 있으며 또 그 위에 NLB 드라이버가 존재한다. NLB드라이버는 로드밸런싱을 위한 가상 IP가 지정된다. 이 가상 IP는 각 호스트마다 동일한 값을 가지게 된다.

L4스위치와 달리, NLB는 모든 호스트에 똑 같은 요청이 브로트캐스트를 통해서 전달되며, 브로드캐스트를 통해 받은 요청은 각 NLB규칙에 따라서 특정 호스트에서 받아서 처리하며 나머지 호스트는 네트워크 드라이버 계층에서 Drop 처리된다.

만약 여러개의 네트워크 어댑터가 설치되어 있는 경우 다음과 같이 여러 네트워크 어댑터에 바인딩되므로 각 호스트에서 여러 독립 클러스터를 구성할 수 있습니다.



클러스터 성능을 최적화하려면 각 네트워크 로드 균형 조정 호스트에 네트워크 어댑터를 하나 더 설치하는 것이 좋습니다. 이렇게 구성하면 한 네트워크 어댑터가 클러스터의 일부로 서버에 대한 네트워크 트래픽을 처리하고 다른 네트워크 어댑터는 호스트 간 통신에 사용됩니다.


컨버젼시(Convergence)

NLB내 모든 호스트들은 1초에 한 번씩 모든 호스트에 브로드케스트 패킷을 보냅니다. 이 패킷은 Heart-beat 신호로서 다른 호스트에게 자신의 상태를 알립니다.

만약 NLB내 특정 호스트에서 5초동안 5번의 신호를 연속해서 보내지 않으면 그 호스트는 오프라인 되었다고 판단하고, 새로운 Heart-beat가 감지되었을 경우 새로운 호스트가 추가 되었다고 판단이 되면 컨버젼시가 일어납니다.

그럴경우 NLB는 감지되는 감지되는 호스트들로 NLB를 다시 구성하게 됩니다. 이러한 작업은 보통 10초 정도에 끝나게 됩니다.

Heart-beat 에 관련값을 설정은 HKLM\System\CurrentControlSet\Service\WLBS\Parameters 에서 Heart-beat를 보내는 간격은 AliveMsgPeriod, 장애를 판단하는 Heart-beat는 AliveMsgTolerance 에서 변경이 가능합니다.


NLB구성(Configuration)



? IP 주소 매개 변수 : 이 주소는 가상 IP 주소이며 클러스터의 모든 호스트에 대해 동일하게 설정해야 합니다. 또한 TCP/IP 등록정보에서 위 가상IP를 추가해 줍니다.

? 네트워크 주소 : 02-BF-00-00-00-00 는 클러스터 IP주소를 16진수로 변경하여 호스트의 MAC주소를 설정합니다.

? 유니캐스트 : 모든 호스트에 설정되는 가상IP 주소는 모두 동일한 MAC 주소를 갖게 됩니다. 그러면 모든 클러스터 호스트들은 주 IP주소를 통해 같은 클라이언트 요청을 받게 됩니다.

ipconfig를 통해서 네트워크 어댑터의 MAC주소가 변경되어 있음을 확인할수 있습니다.
Physical Address ............ : 02-BF-0A-00-00-0A
IP Address .................. : 10.0.0.10
Subnet Mask ................. : 255.0.0.0
IP Address .................. : 10.0.0.80
Subnet Mask ................. : 255.0.0.0

이럴경우 문제점이 발생합니다.

첫째는 모든 호스트가 동일한 MAC 주소를 할당받기 때문에, 호스트간 패킷을 주고 받을수 없게 됩니다. 이에 대한 해결책은 별도의 네트워크 어댑터를 추가해서 Heart-beat와, 관리작업을 할 수 있습니다. 물론 각 이더넷 별로 기능이 나눠지므로 성능개선 효과도 있습니다.

두번째는 L2 스위치에 연결된 경우 동일한 MAC주소가 발견될 경우 MAC주소 등록이 실패하게 되며, 이로 통신이 불가능하게 됩니다. 해결방법은 다음 kb를 참고하시면 됩니다.

[계층 2 스위치에 연결된 WLBS 호스트를 위한 옵션 구성]
[스위치를 통해 가상 IP 주소에 네트워크 로드 균형 조정]

? 멀티캐스트 : 멀터캐스트는 클러스터IP주소의 MAC과 원래 IP주소의 MAC을 가지고 있어 호스트간 통신이 가능합니다. 또한 별도의 네트워크 어댑터를 추가하지 않아도 되는 장점이 있습니다. 다만, 라우터에서 멀티캐스트를 지원하는지 확인을 해봐야 하며, 지원하지 않는 다면 라우터에 정적ARP를 추가해 주어야 한다. Cisco 라우터가 이에 해당됩니다.



? 우선 순위(고유 호스트 ID) : 이 매개 변수는 각 호스트의 고유 ID를 지정합니다. 1 부터 32 까지 순위를 지정하며 현재 클러스터 구성원 중 우선 순위가 가장 낮은 호스트가 포트 규칙에 의해 처리되지 않는 클러스터 네트워크 트래픽을 모두 처리합니다.

? 전용 IP 주소 :클러스터와 관계없는 네트워크 트래픽에 사용되는 호스트의 고유 IP 주소를 지정합니다. 이 IP주소 또한 TCP/IP 등록정보의 IP주소에 등록되어 있는 주소이어야 합니다. 단일 네트워크 어댑터를 사용하여 클러스터 간 트래픽과 전용 IP 주소로의 다른 네트워크 트래픽을 모두 처리하는 경우에만 전용 IP 주소를 참조합니다.



주의 - 규칙 수 및 종류는 클러스터의 각 호스트에 대해 동일해야 합니다. 다른 호스트들과 규칙 수가 다른 호스트가 클러스터에 가입하려고 하면 클러스터의 구성원으로 받아들여지지 않습니다.
? 포트규칙-클러스터IP주소 : 포트 규칙이 적용될 클러스터 IP 주소를 지정합니다. 모두를 선택할 경우 모든 클러스터 호스트에 동일하게 포트 규칙이 적용됩니다.

? 포트규칙-포트범위 및 프로토콜 : 포트 규칙을 적용할 TCP/UDP 포트 범위를 지정합니다. 예로 HTTP의 경우 시작 80에서 끝 80을 TCP에 대해서 지정하면 됩니다.

? 포트규칙-필터링모드 :

다중호스트:클러스터 내의 여러 호스트가 관련 포트 규칙이 적용되는 네트워크 트래픽을 처리합니다.

선호도/없음 - 여러 클러스터 호스트가 같은 클라이언트 IP 주소로부터의 여러 연결을 처리할 수 있도록 지정합니다. 네트워크 로드 균형 조정에서 IP 조각을 올바르게 처리하려면 프로토콜 설정에서 UDP 또는 모두를 선택할 때 없음을 사용하면 안 됩니다.

선호도/단일 - 같은 클라이언트 IP 주소로부터의 여러 요청을 같은 클러스터 호스트로 보내도록 지정합니다. 이 옵션이 기본 선호도 설정입니다. 세션유지가 필요한경우 단일 또는 클래스 C 선호도를 지정해야 합니다.

선호도/클래스 - 네트워크 로드 균형 조정이 같은 TCP/IP 클래스 C 주소 범위로부터의 여러 요청을 같은 클러스터 호스트로 보내도록 지정합니다. 이 기능이 필요하지 않은 경우에는 단일 선호도를 사용하여 성능을 최대한 향상시킬 수 있습니다.

단일 또는 클래스 C 선호도를 사용하면 단일 클러스터 호스트가 같은 클라이언트 세션에 속한 모든 연결을 처리합니다. 이것은 클러스터 호스트에서 실행하는 서버 응용 프로그램이 "server cookies"와 같은 연결 간 세션 상태를 유지할 경우 중요합니다.

뿐만 아니라 백 엔드 데이터베이스에는 세션 상태가 유지되지 않는다는 점도 중요합니다. 백 엔드 데이터베이스에서는 여러 컴퓨터와 관련된 다양한 트랜잭션이 발생하기 때문입니다. 연결이 종료되면 세션 상태도 종료됩니다.

선호도를 사용할 수 없게 설정하면 같은 클라이언트로부터의 여러 연결을 여러 클러스터 호스트에서 동시에 처리하기 때문에 로드 균형 조정 성능이 향상됩니다. 성능을 최대한 향상시키려면 클라이언트 선호도가 필요하지 않은 경우 없음 옵션을 사용하여 이를 해제합니다. 그러나 네트워크 로드 균형 조정에서 IP 조각을 올바르게 처리하려면 프로토콜 설정에서 UDP 또는 모두를 선택할 경우에는 없음을 선택하면 안 됩니다.


로드가중치 - 로드 조정 네트워크 트래픽 중 해당 호스트가 처리해야 하는 상대적 용량을 지정합니다.

단일호스트:클러스터의 단일 호스트가 관련 포트 규칙이 적용되는 네트워크 트래픽을 지정된 처리 우선 순위에 따라 처리하도록 지정합니다. 이 값은 클러스터 호스트마다 고유한 값이 지정되어야 합니다.

이 포트 범위 사용 안함:관련 포트 규칙이 적용되는 모든 네트워크 트래픽이 차단되도록 지정합니다.



25-TechNetB_masthead_ltr.gif


댓글 없음:

댓글 쓰기

가장 많이 본 글