Równoważenie obciążeń serwerów webowych
- 07.04.2009, godz. 19:51
Urządzenia i oprogramowanie do inteligentnej optymalizacji ruchu sieciowego mogą zwiększyć efektywność systemu i ograniczyć koszty.
Kontrolery przyspieszające dostarczanie aplikacji, akceleratory, systemy do zarządzania ruchem sieciowym lub równoważenia obciążeń to praktycznie te same określenia rozwiązań do skalowania i zwiększania wydajności serwerów webowych oraz udostępnianych przez nie aplikacji.
Jeszcze 5, 6 lat temu tego typu systemy były sprzętem kosztującym nawet 100 000 USD i dostępnym tylko dla dużych korporacji. Obecnie są to urządzenia, na które może sobie pozwolić większość średnich, a nawet małych firm, gdyż ceny najprostszych modeli spadły do poziomu nawet 2000 USD.
Jednocześnie jest to sprzęt oferujący takie same, a nawet lepsze funkcje jak drogie rozwiązania sprzed kilku lat: możliwość budowania konfiguracji redundantnych, translację adresów sieciowych NAT, mechanizmy automatycznej kontroli poprawności działania systemu, a często także akcelerację przetwarzania SSL lub przełączania adresów URL.
Na rynku jest dostępna szeroka oferta tego typu systemów, o bardzo różnej funkcjonalności i wydajności. Są to zarówno oprogramowanie, jak i urządzenia (appliance) lub systemy zintegrowane w przełącznikach sieciowych.
Jednak technologie równoważenia obciążeń (load balancing) nie są dobrze znane i popularne wśród potencjalnych użytkowników, którzy przez lata przyzwyczaili się do tego, że są to drogie rozwiązania przeznaczone tylko dla najbogatszych i największych firm. Oprócz tego wybór najlepszych rozwiązań i ich efektywne wdrożenie nie jest rzeczą prostą, ponieważ wymaga zaawansowanej wiedzy o sieciach oraz mechanizmach zarządzania serwerami i aplikacjami.
Do czego służy load balancing
BIG-IP 8800 to przedstawiciel najbardziej zaawansowanej serii przełączników warstw 4-7 oferowany przez F5 Networks. Producent podkreśla, że sprzęt ten jest wyposażony w praktycznie wszystkie funkcje, które mogą być przydatne dla jego użytkowników.
Tego typu podstawowy mechanizm równoważenia obciążeń można łatwo wdrożyć, odpowiednio konfigurując serwer DNS przez dodanie do niego odpowiedniego zestawu adresów IP. Ale jest to mało użyteczne i efektywne rozwiązanie, bo żądania są przesyłane na adres IP niezależnie od tego, czy serwer pracuje czy nie, a droga zapytań nie jest optymalizowana.
Technologia load balancing była więc rozwijana w kierunku optymalizacji przepływu żądań, tak by jak najszybciej trafiały one do odpowiedniego serwera. Wykorzystywane są do tego algorytmy, które decydują gdzie skierować zapytanie, np. czy do serwera najmniej obciążonego przez aktualną liczbę obsługiwanych połączeń, czy też do tego, który najszybciej odpowiada na ping.
Producenci systemów load balancing opracowali wiele własnych zaawansowanych algorytmów i programów agenckich, które są w stanie dostarczyć szczegółowych i dokładnych informacji, w jakim stanie znajduje się serwer, jak bardzo jest aktualnie obciążony, a więc jakiej reakcji na zapytania można od niego oczekiwać.
Do diagnostyki wykorzystywane są zarówno standardowe polecenia ping - sprawdzające, czy łącze sieciowe serwera jest aktywne, jak i bardziej zaawansowane mechanizmy pozwalające kontrolować dostępność i prawidłowość odpowiedzi usług stosujących protokół HTTP lub udostępnianych przez serwery SQL.
Ale liczba funkcji, które są udostępniane przez systemy typu load balancing, może być znacznie większa. Na przykład mechanizmy zabezpieczające przed przepełnieniem bufora, atakami DoS i innymi zagrożeniami, przekierowywanie ruchu do odpowiednich klastrów serwerowych lub kompresja HTTP, buforowanie i konsolidacja żądań TCP/IP.
Coyote Equalizer E550si to urządzenie do równoważenia obciążeń oferowane przez Coyote Point Systems, firmę która już w połowie lat 90. ub. wieku wprowadziła pierwsze komercyjne modele tego typu sprzętu.
Systemy do równoważenia obciążeń można podzielić na dwie podstawowe kategorie: oprogramowanie oferowane również w formie appliances, wykorzystujących standardowe platformy programowe i sprzętowe (Linux, Windows, i86), oraz rozwiązania zintegrowane z przełącznikami, pracujące pod kontrolą firmowych systemów operacyjnych.
Zaletą tych pierwszych jest łatwiejsza możliwość modyfikacji lub dodawania nowych funkcji, a wadą z reguły mniejsza wydajność.
W przypadku oprogramowania zintegrowanego z przełącznikami, funkcje load balancing są dostępne na wszystkich portach, toteż wydajność zależy od ich liczby. Poza tym producent z reguły tak dopasowuje moc przetwarzania sprzętu, aby mechanizmy równoważenia obciążeń nie były jego wąskim gardłem.
Zamiast kupować urządzenia appliance lub przełącznik, można zainstalować w serwerze oprogramowanie load balancing, takie jak WSLB (Windows Server Load Balancing), IPVS (IP Virtual Server) lub BalanceNG dla Linux. Jak jednak zauważają specjaliści, czas pracy administratora niezbędny do prawidłowej konfiguracji i zarządzania takim systemem jest często więcej wart niż sam load balancer.
Najważniejsze rodzaje funkcji
Urządzenia Citrix NetScaler oferują chyba największą liczbę funkcji wśród urządzeń do równoważenia obciążeń dostępnych na rynku.
Kontrola plików cookie
W przypadku interaktywnych serwisów WWW jest ona w praktyce niezbędna do efektywnej pracy, ponieważ serwery mogą wówczas przechowywać informacje dotyczące sesji, takie jak login i hasło, nie udostępniając ich innym serwerom. Bez niej, gdyby użytkownik został przełączony na stronę obsługiwaną przez inny serwer, musiałby potem ponownie się logować.
Dwie podstawowe metody obsługi połączeń wykorzystywane przez urządzenia do równoważenia obciążeń, polegają na kontroli źródłowych adresów IP lub właśnie plików cookie. W pierwszym przypadku load balancer śledzi nadchodzące żądania na podstawie ich adresu IP, a w drugim sprawdza pliki HTTP cookie, by odróżnić użytkowników serwisu.
W ruchu z użyciem HTTP ta druga metoda jest z reguły najlepsza, bo względnie łatwa w konfiguracji i nie stwarza problemów związanych ze śledzeniem adresów IP dużych routerów lub serwerów proxy, które mogą obsługiwać tysiące użytkowników identyfikowanych przez jeden adres IP. Ale jeśli obsługiwane mają być inne protokoły niż HTTP, to kontrola adresów IP jest jedyną skuteczną metodą.
Nawet jeżeli kontrola ruchu HTTP nie jest aktualnie ważną funkcją, to warto żeby load balancer ją obsługiwał, bo z jednej strony może się już wkrótce okazać przydatna, a z drugiej - praktycznie nic nie kosztuje (ceny urządzeń wyposażonych w nią są prawie takie same jak innych). Niektórzy producenci twierdzą jednak, że obsługa plików cookie nie jest potrzebna, a tworzenie aplikacji, które ich wymagają, jest przykładem złego projektowania.
Zestaw funkcji
Jakie funkcje systemu mogą być potrzebne w praktyce i czy oferuje je dany producent.
Rzeczywista cena systemu
Warto przeanalizować, ile kosztuje samo urządzenie, a jaki jest koszt wsparcia technicznego i utrzymania systemu.
Wydajność i skalowalność
Przed decyzją zakupu należy sprawdzić i upewnić się nie tylko, czy urządzenie będzie w stanie obsłużyć obecny ruch sieciowy, ale również czy umożliwi skalowanie wydajności w miarę jego wzrostu w przewidywalnej przyszłości.
Integracja z istniejącą infrastrukturą
Warto upewnić się, czy dane urządzenie będzie współpracować z istniejącym systemem IT oraz oprogramowaniem, a także czy nie pojawią się problemy dotyczące wsparcia ze strony producentów sprzętu i aplikacji.