Każdemu po równo

Windows 2000 Advanced Server wyposażono w mechanizmy pozwalające zwiększyć wydajność i zapewnić ciągłą pracę serwisów internetowych.

Windows 2000 Advanced Server wyposażono w mechanizmy pozwalające zwiększyć wydajność i zapewnić ciągłą pracę serwisów internetowych.

Najważniejszym komponentem Windows 2000 wspomagającym pracę administratorów serwisów internetowych jest usługa Network Load Balancing. Komponent ten nie jest nowy. Dotychczas dostępny był jednak pod nazwą Windows Load Balancing Service wyłącznie w wersji Enterprise systemu Windows NT Server 4.0. W Windows 2000 jest on integralną częścią systemów Windows 2000 Advanced Server i Datacenter Server. Nie otrzymają go natomiast nabywcy Windows 2000 Server.

Network Load Balancing jest oparty na technologii przejętej przez Microsoft w sierpniu 1998 r. firmy Valence Research, która dostarczała oprogramowanie Convoy Cluster dla Windows NT. W odróżnieniu od innych technologii klastrowych Network Load Balancing zapewnia jedynie równomierną dystrybucję zapytań realizowanych za pośrednictwem protokołu TCP/IP między wieloma serwerami realizu-jącymi tę samą usługę. Nie pozwala jednak realizować jednego zadania jednocześnie przez kilka serwerów, np. obsługi jednej aplikacji czy automatycznego przenoszenia aplikacji pomiędzy serwerami w chwili, gdy jeden z nich ulegnie awarii.

Network Load Balancing jest usługą przeznaczoną dla administratorów serwisów internetowych. Udostępnia pod jednym wirtualnym numerem IP wiele serwerów udostępniających np. tę samą stronę WWW. Dzięki temu awaria pojedynczego serwera lub chociażby konieczność jego chwilowego wyłączenia w celu rekonfiguracji nie powoduje automatycznie zniknięcia strony WWW z Internetu. Jej udostępnianiem w tym czasie zajmują się pozostałe serwery, pracujące w klastrze i mające jej lokalną kopię.

Sposób na problemy

Podstawową zaletą usług Network Load Balancing (NLB) jest fakt, że nie wymagają one do pracy dodatkowych urządzeń, tak jak w przypadku klastrów budowanych na bazie oprogramowania Microsoft Cluster Server. Serwery uczestniczące w klastrze NLB nie współdzielą dysków. Wystarczy, że zainstalowane są na nich te same serwisy systemowe, realizujące usługi internetowe, oraz że na lokalnych dyskach będzie umieszczona kopia udostępnianych danych, np. ta sama strona WWW.

NLB jest sposobem na zwiększanie nie tylko dostępności serwisów internetowych, lecz także ich wydajności. Administrator może bowiem połączyć w klaster NLB maksymalnie 32 serwery, co pozwala obsłużyć równolegle bardzo dużą liczbę zapytań. Dla użytkownika wszystkie serwery widoczne są pod jednym numerem IP, a NLB zajmuje się przydzielaniem zapytań poszczególnym serwerom w zależności od stopnia ich obciążenia.

NLB ma jeszcze jedną zaletę w stosunku do tradycyjnych metod dystrybucji obciążenia, takich jak zastosowanie rozwiązania Round Robin DNS. NLB wie o każdej awarii występującej w ramach klastra, dzięki czemu potrafi wyłączać poszczególne serwery z grona tych, które poprawnie udostępniają serwisy internetowe.

IP i priorytety

Każdy serwer pracujący w ramach klastra NLB musi mieć przydzielony podstawowy numer IP (Primary IP), który będzie wykorzystywany do komunikacji w ramach klastra i nierozerwalnie związany jest z wirtualnym numerem IP, pod którym jest widoczny w sieci cały klaster. Może mieć także przydzielony (co jest zalecane) dedykowany numer IP (Dedicated IP), który jest wykorzystywany do zwykłej komunikacji danego serwera z siecią. W praktyce wygląda to tak, że komunikacja inicjowana z dedykowanego numeru IP nigdy nie jest dystrybuowana pomiędzy maszynami pracującymi w klastrze. Gdy pakiety przychodzą z innego adresu, zawsze podlegają zasadom dystrybucji obciążenia.

Każdy serwer pracujący w klastrze NLB ma nadawany własny priorytet, który jest reprezentowany liczbą 1-32. Maszyna, która ma najwyższy priorytet (najniższą liczbowo wartość), jest podstawowym serwerem, do którego kierowane są wszystkie zapytania nie podlegające dystrybucji obciążenia. Decyzję o tym, jakie zapytania nie powinny podlegać dystrybucji, podejmuje administrator. W szczególności może to dotyczyć specyficznej aplikacji pracującej tylko na jednej maszynie w klastrze.

Dla dobra aplikacji

Mechanizmem odpowiedzialnym za ustalenie zasad dystrybucji obciążenia są tzw. Port rules, czyli reguły określające sposób obsługi transmisji na poszczególnych portach TCP. Administrator może ustalić, czy komunikacja na danym porcie, np. 80, ma być obsługiwana tylko przez jeden konkretny serwer (Single-host load balancing), czy też zapytania mają być rozkładane na wszystkie serwery pracujące w klastrze (Multiple-host load balancing). W pierwszym przypadku możliwe jest rozdzielenie konkretnych typów transmisji (w zależności od numeru portu TCP) pomiędzy różne serwery pracujące w ramach klastra, co oznacza, że każdą z tych transmisji będzie obsługiwać zawsze ten sam serwer. W drugim - wszystkie serwery będą obciążane zapytaniami równomiernie bez względu na rodzaj zapytań.

W trybie Multiple-host administrator może ustawić jeszcze jeden istotny parametr, ważny z punktu widzenia pracujących na poszczególnych serwerach aplikacji. Parametr ten, nazywany Client Affinity, umożliwia określenie sposobu, w jaki poszczególne serwery pracujące w klastrze mają "przyzwyczajać się" do obsługi tych samych klientów (transmisji z tych samych numerów IP). Gdy parametr Client Affinity nie jest ustawiony, klaster NLB każde zapytanie przesłane nawet z jednego numeru IP dystrybuuje równomiernie między serwerami pracującymi w klastrze. W efekcie powoduje to, że przesłanie do klienta jednej strony WWW wyposażonej w grafikę trwa znacznie krócej niż gdyby transmisję realizował jeden serwer. Taka dystrybucja zapytań spod jednego numeru IP ma jednak wady. Przykładowo, jeśli użytkownik przeglądarki korzysta z aplikacji internetowej udostępnianej przez serwer WWW, to prawdopodobnie kilka kolejnych zapytań użytkownika trafi do różnych serwerów, a co za tym idzie - nie zostanie on obsłużony poprawnie. Tak jest np. gdy aplikacja internetowa posługuje się mechanizmem przechowywania stanu sesji użytkownika na serwerze, co jest powszechnie wykorzystywane w sklepach internetowych z obsługą protokołu SSL.

Dlatego też standardowo NLB pracuje w trybie Single-client Affinity, polegającym na tym, że wszystkie zapytania przesyłane w określonym czasie z jednego numeru IP są obsługiwane przez ten sam serwer. Klastry NLB mogą być również skonfigurowane w taki sposób, by pracowały w trybie Class C Affinity, polegającym na tym, że zapytania z całej podsieci klasy C (255 adresów IP) są obsługiwane przez jeden serwer. Wymagane może to być wtedy, gdy komunikacja przeglądarek z klastrem NLB jest realizowana za pośrednictwem firewalla lub routera z translacją adresów NAT, które mogą "wypuszczać" cały ruch z sieci lokalnej za pośrednictwem kilku, kilkunastu bądź kilkudziesięciu dynamicznie mapowanych numerów IP.

Pewnym usprawnieniem umożliwiającym swobodne dystrybuowanie zapytań między serwerami mogłoby być zmodyfikowanie istniejących aplikacji internetowych w taki sposób, aby stan sesji przechowywały nie na serwerze, lecz np. w cookie, instalowanym na komputerze użytkownika. Wtedy niezależnie od tego, do którego serwera trafiłoby zapytanie, zawsze po odczytaniu lokalnego cookie wiedziałby on, w jaki sposób powinien obsłużyć to zapytanie. Uzyskanie takiej funkcji wymaga jednak istotnych modyfikacji aplikacji internetowych.

Najlepiej dwa w jednym

Microsoft zaleca stosowanie kombinacji własnych rozwiązań klastrowych. Sugeruje, by rozbudowane serwisy internetowe udostępniały protokoły, takie jak HTTP, za pośrednictwem klastrów Net-work Load Balancing i komunikowały się np. z bazami danych pracującymi w ramach klastrów Microsoft Cluster Server. Rozwiązanie takie zapewni nie tylko dostępność serwerów WWW, lecz także związanych z nimi serwerów i aplikacji bazodanowych.

Ważną zaletą usług Network Load Balancing zawartych w Windows 2000 jest fakt, iż są one w pełni kompatybilne z usługą Windows NT Load Balancing Service (WLBS), co oznacza, że w ramach jednego klastra NLB mogą pracować zarówno serwery z systemem Windows 2000 Advanced Server lub Datacenter Server, jak i Windows NT Server 4.0 Enterprise Edition.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200