Windows Server 2008 R2의 NLB(네트워크 부하 분산) 기능은 웹, FTP, 방화벽, 프록시, VPN(가상 사설망), 기타 업무상 중요한 서버에 사용되는 응용 프로그램과 같은 인터넷 서버 응용 프로그램의 가용성과 확장성을 향상시킵니다. Windows Server 2008 R2이 실행되는 단일 컴퓨터는 제한된 수준의 서버 안정성 및 확장 가능한 성능을 제공합니다. 그러나 NLB는 Windows Server 2008 R2의 제품 중 하나를 실행하는 둘 이상의 컴퓨터의 리소스를 단일 가상 클러스터에 결합하여 웹 서버 및 기타 업무상 중요한 서버가 필요로 하는 안정성과 성능을 제공할 수 있습니다.
위의 다이어그램은 두 개의 연결된 네트워크 부하 분산 클러스터를 보여줍니다. 첫 번째 클러스터는 두 개의 호스트로 구성되고 두 번째 클러스터는 네 개의 호스트로 구성되어 있습니다. 다음 예에서는 NLB의 사용 방법을 보여줍니다.
각 호스트에서는 필요한 서버 응용 프로그램(예: 웹, FTP 및 텔넷 서버)의 별도 복사본이 실행됩니다. NLB는 클러스터의 호스트에 들어오는 클라이언트 요청을 분산합니다. 각 호스트가 처리할 부하 가중치를 필요에 따라 구성할 수 있습니다. 클러스터에 호스트를 동적으로 추가하여 증가하는 부하를 처리할 수도 있습니다. 뿐만 아니라 NLB는 모든 트래픽을 지정된 단일 호스트(기본 호스트라고 함)로 보낼 수 있습니다.
NLB는 클러스터의 모든 컴퓨터에 동일한 클러스터 IP 주소 집합을 사용하여 주소가 지정될 수 있도록 하고 각 호스트의 고유한 전용 IP 주소 집합을 유지 관리합니다. 부하 분산 응용 프로그램의 경우 특정 호스트가 실패하거나 오프라인 상태가 되면 아직 작동 중인 컴퓨터 간에 부하가 자동으로 다시 분산됩니다. 특정 컴퓨터가 예기치 않게 실패하거나 오프라인 상태가 되면 실패했거나 오프라인 상태인 서버의 활성 연결이 끊어집니다. 그러나 의도적으로 호스트의 작동을 중단시키는 경우에는 컴퓨터를 오프라인 상태로 만들기 전에 drainstop 명령을 사용하여 모든 활성 연결을 지원할 수 있습니다. 어떠한 경우든 오프라인 상태의 컴퓨터는 준비가 되면 클러스터에 투명하게 다시 가입하여 작업 부하의 일부를 다시 처리하므로 클러스터의 다른 컴퓨터들이 처리해야 할 트래픽이 줄어듭니다.
NLB 클러스터의 호스트는 하트비트 메시지를 교환하여 클러스터의 구성원 자격에 대한 데이터를 일관되게 유지 관리합니다. 기본적으로 호스트가 5초 내에 하트비트 메시지를 보내지 못하면 실패한 것입니다. 특정 호스트가 실패하면 클러스터의 나머지 호스트가 수렴하고 다음을 수행합니다.
-
클러스터의 활성 구성원으로 남아 있는 호스트를 설정합니다.
-
우선 순위가 가장 높은 호스트를 새 기본 호스트로 선택합니다.
-
남아 있는 호스트가 새 클라이언트 요청을 모두 처리하도록 합니다.
수렴하는 동안 남아 있는 호스트는 일관된 하트비트를 찾습니다. 하트비트를 보내지 못한 호스트가 하트비트를 일관되게 제공하기 시작하면 수렴하는 동안 클러스터에 다시 가입됩니다. 클러스터에 가입하려고 하는 새 호스트는 수렴을 트리거하기도 하는 하트비트 메시지를 보냅니다. 모든 클러스터 호스트가 현재 클러스터 구성원 자격에 동의하면 클라이언트 부하가 나머지 호스트로 재분산되고 수렴이 완료됩니다.
수렴은 일반적으로 몇 초 정도면 끝나므로 클러스터로 인한 클라이언트 서비스 중단은 최소화됩니다. 수렴하는 동안 활성 상태로 남아 있는 호스트는 기존 연결에 영향을 주지 않으면서 클라이언트 요청을 계속 처리합니다. 모든 호스트가 여러 하트비트 기간 동안 클러스터 구성원 자격 및 분산 맵의 일관된 보기를 보고하면 수렴은 끝납니다.
NLB의 새로운 기능
Windows Server 2008 R2에서 NLB는 다음과 같이 향상되었습니다.
- 확장 선호도. 확장 옵션은 NLB 클러스터의 구성이 변경될 때 클라이언트 선호도를 유지합니다. 또한 이 옵션을 사용하면 클라이언트와 호스트 간에 기존 활성 연결이 없더라도 클라이언트에서 클러스터 호스트에 대한 선호도를 유지할 수 있습니다.
- NLB 클러스터용 Windows PowerShell. Windows PowerShell은 새로운 명령줄 셸이자 스크립팅 언어입니다. Windows PowerShell은 시스템 관리 작업의 자동화 속도를 높입니다. Windows PowerShell을 사용하여 NLB 클러스터를 관리할 수 있습니다. NLB 클러스터용 Windows PowerShell을 사용하는 방법에 대한 자세한 내용은
https://go.microsoft.com/fwlink/?LinkID=140180(페이지는 영문일 수 있음) 을 참조하십시오. -
롤링 업그레이드 지원. NLB는 Windows Server 2003에서 Windows Server 2008 R2로, 그리고 Windows Server 2008에서 Windows Server 2008 R2로의 롤링 업그레이드를 지원합니다. 롤링 업그레이드에 대한 정보를 비롯하여 NLB에 대한 배포 정보는
https://go.microsoft.com/fwlink/?LinkID=87253(페이지는 영문일 수 있음) 을 참조하십시오.
NLB 구성
NLB는 Windows 네트워킹 드라이버로 실행됩니다. NLB는 TCP/IP 네트워킹 스택에 대해 투명하게 작동합니다.
위의 다이어그램은 일반적인 NLB 호스트 구성에서 NLB와 다른 소프트웨어 구성 요소 간의 관계를 보여줍니다.
네트워크 부하 분산의 기능
NLB에는 다음과 같은 기능이 있습니다.
확장성
확장성이란 증가하는 성능 요구에 맞추어 컴퓨터, 서비스 또는 응용 프로그램을 얼마나 유연하게 확장할 수 있는지를 나타내는 척도입니다. NLB 클러스터의 경우 확장성이란 클러스터의 전체 부하가 해당 용량을 초과할 때 기존 클러스터에 하나 이상의 시스템을 단계적으로 추가하는 기능을 말합니다. NLB는 다음 작업을 수행하여 확장성을 지원할 수 있습니다.
-
개별 TCP/IP 서비스에 대한 부하 요청을 NLB 클러스터에 분산시킵니다.
-
단일 클러스터에서 최대 32대의 컴퓨터를 지원합니다.
-
동일한 클라이언트 또는 몇몇 클라이언트에서 요청하는 여러 서버의 부하를 여러 개의 클러스터 호스트에 분산시킵니다.
-
부하가 증가할 때 NLB 클러스터를 작동 중단시키지 않고 클러스터에 호스트를 추가할 수 있도록 지원합니다.
-
부하가 감소할 때 클러스터에서 호스트를 제거할 수 있도록 지원합니다.
-
완벽하게 파이프라인된 구현을 통해 성능을 높이고 오버헤드를 낮춥니다. 파이프라이닝은 이전에 보낸 요청에 대한 응답을 기다리지 않고 NLB 클러스터로 요청을 보낼 수 있도록 합니다.
고가용성
가용성이 높은 시스템은 가동 중지 시간을 최소화하면서 적절한 수준의 서비스를 안정적으로 제공합니다. NLB에는 고가용성을 제공하기 위해 다음 작업을 자동으로 수행할 수 있는 기본 제공 기능이 포함되어 있습니다.
-
실패했거나 오프라인 상태가 된 클러스터 호스트 검색 및 복구
-
호스트가 추가 또는 제거될 때 네트워크 부하 분산
-
10초 내에 복구 및 작업 부하 재분산
관리 효율성
NLB는 다음과 같은 관리 효율성 기능을 제공합니다.
-
NLB 관리자를 사용하여 단일 컴퓨터에서 여러 NLB 클러스터와 클러스터 호스트를 관리 및 구성할 수 있습니다.
-
포트 관리 규칙을 사용하여 단일 IP 포트 또는 포트 그룹에 대한 부하 분산 동작을 지정할 수 있습니다.
-
웹 사이트마다 다른 포트 규칙을 정의할 수 있습니다. 여러 응용 프로그램이나 웹 사이트에 대해 동일한 부하 분산 서버 집합을 사용할 경우 포트 규칙은 대상 가상 IP 주소(가상 클러스터 사용)를 기반으로 합니다.
-
선택적 단일 호스트 규칙을 사용하여 클라이언트 요청을 모두 단일 호스트로 보낼 수 있습니다. NLB는 클라이언트 요청을 특정 응용 프로그램이 실행되는 특정 호스트로 라우팅합니다.
-
특정 IP 포트에 대해 원치 않는 네트워크 액세스를 차단할 수 있습니다.
-
멀티캐스트 모드로 작동될 때 클러스터 호스트에서 IGMP(Internet Group Management Protocol) 지원을 사용하도록 설정하여 스위치 초과를 제어할 수 있습니다.
-
셸 명령이나 스크립트를 사용하여 Windows가 실행되는 네트워크 컴퓨터에서 NLB 동작을 원격으로 시작, 중지 및 제어할 수 있습니다.
-
Windows 이벤트 로그를 보고 NLB 이벤트를 확인할 수 있습니다. NLB는 모든 동작 및 클러스터 변경 내용을 이벤트 로그에 기록합니다.
사용 편리성
NLB는 편리한 사용을 위해 다음과 같은 다양한 기능을 제공합니다.
-
NLB는 표준 Windows 네트워킹 드라이버 구성 요소로 설치됩니다.
-
NLB를 사용하도록 설정하고 실행하기 위해 하드웨어를 변경할 필요가 없습니다.
-
NLB 관리자를 사용하여 새 NLB 클러스터를 만들 수 있습니다.
-
NLB 관리자를 사용하여 단일 원격 컴퓨터 또는 로컬 컴퓨터에서 모든 클러스터의 호스트 및 여러 클러스터를 구성하고 관리할 수 있습니다.
-
NLB는 클라이언트가 단일 논리 인터넷 이름과 가상 IP 주소(클러스터 IP 주소라고도 함)를 사용하여 클러스터에 액세스할 수 있도록 합니다(각 컴퓨터의 개별 이름은 유지됨). NLB를 통해 멀티홈 서버에 대해 여러 개의 가상 IP 주소를 지정할 수 있습니다.
참고 가상 클러스터의 경우 멀티홈 서버가 아니더라도 여러 개의 가상 IP 주소를 가질 수 있습니다.
-
NLB는 여러 네트워크 어댑터에 바인딩될 수 있으므로 각 호스트에서 여러 개의 독립 클러스터를 구성할 수 있습니다. 여러 네트워크 어댑터에 대한 지원은 단일 네트워크 어댑터에 여러 클러스터를 구성할 수 있는 가상 클러스터와는 다릅니다.
-
서버 응용 프로그램을 NLB 클러스터에서 실행하기 위해 수정할 필요가 없습니다.
-
클러스터 호스트가 실패한 다음 다시 온라인 상태가 되면 해당 호스트가 클러스터에 자동으로 추가되도록 NLB를 구성할 수 있습니다. 추가된 호스트는 클라이언트의 새 서버 요청 처리를 시작할 수 있게 됩니다.
-
다른 호스트의 클러스터 작동을 중단시키지 않으면서 예방 유지 관리를 위해 컴퓨터를 오프라인 상태로 만들 수 있습니다.