NLB - wysoka dostępność i skalowalność usług

Niemal w każdej infrastrukturze IT znajdują się serwery świadczące różnego rodzaju usługi dla użytkowników wewnętrznych lub zewnętrznych. Nie ma znaczenia, czy jest to dostęp do stron i aplikacji WWW opartych na IIS, serwer terminali, FTP, proxy, czy VPN. Każdy administrator musi liczyć się z wystąpieniem problemów z dostępem oraz nadmiernym obciążeniem ruchu sieciowego w przypadku pojedynczego serwera.

Dlatego odpowiednio wcześnie należy zadbać o możliwie największą odporność na awarię danej usługi. Z pomocą przychodzi funkcja Network Load Balancig (NLB), czyli równoważenie obciążeń sieciowych. W odróżnieniu od sprzętowych rozwiązań tego typu, niewątpliwą zaletą NLB jest to, że jest dostępna jako standardowy składnik w systemach Microsoft Windows Server i nie wymaga żadnych modyfikacji sprzętowych.

Trochę teorii

NLB pozwala rozdzielić ruch sieciowy na dwa lub więcej serwerów, które dla świadczonej usługi mając identyczną zawartość - bez względu na to, z którym serwerem skomunikuje się klient, w odpowiedzi dostanie te same dane. Równoważenie obciążenia sieciowego przydziela wirtualny adres IP, wspólny dla wszystkich hostów z NLB. Kiedy żądanie klienta dociera do takiego klastra to wirtualny adres IP jest mapowany do rzeczywistego adresu węzła (wg ustawień konfiguracji i dostępności serwera). Każdy host ma swoją lustrzaną kopię danych, udostępnianych przez usługę biorąca udział w równoważeniu obciążenia (IIS, FTP).

Zobacz również:

Działanie Newtork Load Balancing polega na tym, że połączenie kierowane na adres klastra trafia do wszystkich węzłów. Następnie serwery-węzły ustalają, który z nich obsłuży połączenie, po czym reszta przy użyciu filtrów NLB będzie odrzucać pakiety przychodzące od klienta w danym połączeniu.

Schemat dwóch klastrów NLB

Schemat dwóch klastrów NLB

Jak wspomnieliśmy wcześniej hosty w klastrze są adresowane przy użyciu jednego wirtualnego adresu IP, ponadto funkcja ta obsługuje także dedykowane dla każdego z serwerów, unikatowe adresy IP. Gdy host w klastrze NLB ulega awarii (lub zmienia status na offline) i połączenia z nim zostają utracone, to obsługę równoważenia połączenia przejmują pozostałe znajdujące w trybie online. Gdy węzeł powróci do trybu online, to - w sposób niezauważalny dla użytkownika - przypisuje się go ponownie do obsługi równoważenia obciążenia. Do utrzymania prawidłowych danych członkostwa w klastrze NLB hosty wymieniają między sobą komunikaty impulsu. Gdy węzeł nie udzieli odpowiedzi w ciągu kilku sekund, to przyjmuje się, że przechodzi on w stan offline, po czym następuje proces zbieżności, w czasie którego ustalane jest, które hosty mają status aktywnych. Dodatkowo, wybierany jest serwer o najwyższym priorytecie i ustawiany jako domyślny. To zapewniać obsługę ruchu w ramach usługi Network Load Balancing jedynie przez sprawne hosty.

Network Load Balancing można skonfigurować do pracy z serwerami terminalowymi i Forefront TMG (lub ISA Server). W praktyce mechanizm ten często stosuje się do zapewnienia wysokiej dostępności oraz do rozłożenia obciążenia dla produktów opartych na Internet Information Services (np: Sharepoint Server 1020, Exchange Server 2010 - Client Access Array lub AD Right Management Services).