Miesięcznik informatyków i menedżerów IT sektora publicznego

Kamil Folga

Równoważenie obciążenia w sieci

Serwery ważnych usług powinny charakteryzować się nie tylko dużą wydajnością, ale także niezawodnością. W tej roli doskonale sprawdzi się klaster serwerów z rozwiązaniami LVS lub HAProxy, wykorzystujący mechanizmy równoważenia obciążenia.

Coraz częściej jeden serwer nie jest w stanie obsłużyć dużej liczby zapytań przychodzących od użytkowników sieci. Jeżeli nasze serwery usługowe są przechowywane u dostawcy, należy wykupić usługę skalowania zasobów, aby zapewnić odpowiednią wydajność. Jeżeli usługa jest realizowana wewnątrz urzędu, dobrym pomysłem jest wykorzystanie mechanizmów równoważenia obciążenia (load-balancing). Najpopularniejsze rozwiązania oferujące te mechanizmy to LVS (Linux Virtual Server) oraz HAProxy (High Availability Proxy). LVS działa w warstwie 4 (transportowej) modelu OSI/ISO, co pozwala zastosować ten mechanizm w przypadku praktycznie każdego protokołu. Z kolei HAProxy działa w warstwie 7 modelu OSI/ISO, co ogranicza jego zastosowanie, ale zapewnia obsługę specyficznych wdrożeń.

Metoda rr

Trójwarstwowa architektura równoważenia obciążenia składa się z następujących elementów:

  •     Load Balancer (serwer LB – przykładowo LVS lub HAProxy), który rozdziela zapytania przychodzące od klientów do rzeczywistych serwerów,
  •     klaster serwerów rzeczywistych, na których uruchomione zostają usługi pracujące w sieci,
  •     pamięć masowa i bazy danych, które są współdzielone przez serwery pracujące w klastrze, umożliwiające udostępnianie identycznych danych oraz usług.

Serwer LB jest zawsze jednym punktem kontaktu dla klastra. Do niego kierowane są zapytania od klientów oraz przesyłane dalej do serwerów rzeczywistych. Dystrybucja ruchu do serwerów rzeczywistych wykorzystuje określone algorytmy równoważenia obciążenia. Niezależnie od tego, jaki serwer w klastrze zostanie wybrany, klient powinien uzyskać identyczne odpowiedzi. Algorytmy równoważenia obciążenia pozwalają zdecydować, jak będzie dystrybuowany ruch pomiędzy serwerami.

Podstawową metodą balansowania jest round-robin (rr). W tej konfiguracji do każdego z serwerów ruch jest przekazywany po kolei. Możemy jednak ustawić wagę porcji danych dla każdego serwera. W szczególnych przypadkach należy wykorzystać algorytm rozpoznający sesje użytkowników i zawsze kierujący zapytania danego klienta do tego samego serwera. Liczba węzłów (serwerów rzeczywistych) w klastrze może być zmienna, zależnie od aktualnego obciążenia. Jeżeli zaobserwujemy, że system jest mocno obciążony, możemy dodać nowe serwery. Dla większość usług internetowych kolejne zapytania klientów nie muszą być wzajemnie powiązane, więc mogą być obsługiwane przez niezależne serwery. W sytuacji, gdy konieczne jest powiązanie sesji użytkowników i kierowanie określonego użytkownika zawsze na ten sam serwer, należy wykorzystać do tego celu odpowiednie mechanizmy.

Linux Virtual Server

Rozwiązanie LVS umożliwia wyrównanie obciążenia pomiędzy wieloma serwerami organizacji za pomocą warstwy czwartej modelu OSI/ISO. Główny serwer LB (LVS) jest uruchomiony na systemie Linux. Serwery rzeczywiste mogą wspierać dowolny system operacyjny, ale wymagana jest łączność IP z serwerem głównym LB. Wirtualny serwer LVS to wysoce skalowalny klaster rzeczywistych serwerów. Architektura klastra jest w pełni przezroczysta dla klienta. Oznacza to, że klient łączy się zawsze z jednym adresem IP, pomimo faktu kierowania ruchu do różnych serwerów rzeczywistych. Klient traktuje klaster LVS jako jeden bardzo wydajny serwer.

Podstawowymi elementami LVS są rzeczywiste serwery oraz serwer LB (równoważący obciążenia). Istnieje możliwość dodawania nowych węzłów (serwerów rzeczywistych) do klastra. System jest rekonfigurowany automatycznie. Dodanie lub usunięcie węzła następuje automatycznie w wyniku procesu sprawdzania węzłów. Rzeczywiste serwery mogą łączyć się z serwerem LB przez sieć lokalną, a także WAN. Do przekazywania pakietów do serwerów rzeczywistych LVS wykorzystuje trzy mechanizmy: NAT, tunelowanie IP oraz bezpośredni routing.

[...]

Autor zawodowo zajmuje się informatyką ze specjalizacją w zakresie sieci bezprzewodowych oraz systemów transmisji głosu. Publikuje w magazynach komputerowych.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma. Zapraszamy do składania zamówień na prenumeratę i numery archiwalne.
 
 

Polecamy

Biblioteka Informacja Publiczna

Specjalistyczne publikacje książkowe dla pracowników administracji publicznej

więcej