thumb
Równoważenie obciążenia (ang. load balancing) – technika rozpraszania obciążenia pomiędzy wiele procesorów, komputerów, dysków, połączeń sieciowych lub innych zasobów.
Przykładowy system load balancing mógłby zapewniać bezawaryjną i optymalną pracę na N-aplikacjach znajdujących się na bliźniaczych M-serwerach (zawierających równoważne aplikacje). Podczas gdy wielu użytkowników wysyła wiele żądań, trafiają one najpierw do SLB (), który analizuje obciążenie na poszczególnych M-serwerach. Następnie dokonuje optymalnego wyboru – odsyłając użytkownika do jednego z serwerów do konkretnej aplikacji – według żądania.
Optymalny wybór zazwyczaj ma prowadzić do równomiernego obciążenia wszystkich bliźniaczych serwerów. SLB zapewnia że awaria jednego z serwerów nie jest odczuwalna przez użytkowników aplikacji.
Użycie wielu komponentów z równoważeniem obciążenia zamiast pojedynczego komponentu może zwiększyć niezawodność pomimo redundancji. Równoważenie obciążenia jest zazwyczaj obsługiwane przez specjalne oprogramowanie lub sprzęt, takie jak np. przełącznik wielowarstwowy lub serwer DNS.
Zastosowanie Jednym z najczęstszych przypadków użycia równoważenia obciążenia, jest zapewnienie obsługi pojedynczej usługi przez wiele serwerów, nazywanych farmą serwerów lub klastrem serwerów. Powszechnie, systemy równoważenia obciążenia stosowane są w popularnych stronach Web, wielkich sieciach IRC, szerokopasmowych stronach FTP, serwerach NNTP i serwerach DNS. Kilka systemów równoważenia obciążenia stosuje się w obsłudze baz danych, i jako takie nazywane są bazodanowymi równoważeniami obciążenia. W serwisach internetowych, obsługą równoważenia obciążenia zajmuje się specjalny program, który nasłuchuje porty wyjściowe klientów podłączone do serwisu. Program przekazuje żądanie od klienta do jednego z dostępnych serwerów, i oczekuje na jego odpowiedź. Umożliwia to przekazanie odpowiedzi klientowi bez powiadamiania go o wewnętrznym rozdzielaniu funkcji. Jednocześnie zabezpiecza to przed bezpośrednim dostępem klienta do wszystkich dostępnych serwerów, co z kolei umożliwia ukrycie wewnętrznej struktury systemu i zapobiegnięcie atakom na systemowe zasoby lub uzyskanie nieautoryzowanego dostępu do niepowiązanych serwisów działających na innych portach.
Kilka programów obsługujących równoważenie obciążenia zapewnia wykonanie specjalnych instrukcji w przypadku, gdy nie ma dostępnych żadnych zasobów.Na przykład przekazanie do innego programu obsługującego równoważenia obciążenia lub wyświetlenie informacji o braku możliwości obsługi żądania.
Metody Round robin DNS Round robin DNS to metoda niewymagająca ani dodatkowego oprogramowania, ani osobnego węzła pośredniczącego. Jednej nazwie domenowej przypisuje się w strefie kilka rekordów adresowych wskazujących różne serwery, a serwer nazw podaje je w zmiennej kolejności w kolejnych odpowiedziach. Rozdział ruchu opiera się na założeniu, że klient połączy się z pierwszym adresem z otrzymanej listy. Rozwiązanie nie wymaga żadnych zmian w protokole DNS, ponieważ specyfikacja nie narzuca kolejności rekordów w odpowiedzi.
W odróżnieniu od modułu równoważącego, który pośredniczy w ruchu, technika ta udostępnia klientom adresy wszystkich serwerów. Nie uwzględnia również ich rzeczywistego obciążenia, ponieważ kolejność zmienia się cyklicznie, niezależnie od tego, jak zajęte są poszczególne maszyny. Odpowiedzi DNS są ponadto zapamiętywane przez serwery pośredniczące na czas określony wartością TTL, więc podział ruchu jest tym zgrubniejszy, im dłuższy jest ten czas. Sama rotacja nie wykrywa też awarii – serwer, który przestał działać, będzie wskazywany klientom aż do wygaśnięcia rekordu. O ostatecznej kolejności decyduje wreszcie sam klient, który może otrzymane adresy przestawić. Współcześnie reguły takiego porządkowania opisuje RFC 6724, zalecające wybór adresu o najdłuższym wspólnym prefiksie z adresem źródłowym i zachowanie kolejności otrzymanej z DNS dopiero wtedy, gdy wcześniejsze reguły nie rozstrzygną wyboru.
Delegowanie DNS Inną, bardziej efektywną, techniką równoważenia obciążenia DNS jest delegowanie np. www.example.org jako poddomeny obsługiwanej przez te same serwery, które obsługują samą witrynę internetową. Technika działa szczególnie dobrze, gdy serwery są rozrzucone geograficznie. Dla tego przykładu: one.example.org A 192.0.2.1 two.example.org A 203.0.113.2 www.example.org NS one.example.org www.example.org NS two.example.org Adresy IP rozwijane są odpowiednio:na serwerze one: @ in a 192.0.2.1 na serwerze two: @ in a 203.0.113.2 W ten sposób, kiedy serwer jest wyłączony, jego DNS nie udzielając odpowiedzi spowoduje, że nie zostanie do niego przekazane żądanie wykonania usługi. Jeśli łącze do jednego serwera jest przeciążone, zawodność DNS zapewnia obniżenie żądań HTTP przekazywanych do niego. Ponadto najczęściej, najszybsza odpowiedź jest uzyskiwana od najbliższego serwera, co zapewnia czułość geograficzną systemu równoważenia obciążenia. Krótki czas życia pakietu (TTL) pomaga zapewnić szybkie przekazanie obciążenia w przypadku, gdy serwer przestanie być dostępny. Na uwagę zasługuje fakt, że ta technika umożliwia przełączanie pojedynczych klientów pomiędzy serwerami w trakcie trwania sesji.
Request Counting Algorytm równoważenia obciążenia oparty na idei przesyłania zapytań do węzłów w ilości opartej na zdefiniowanym wcześniej wskaźniku udziału. W sytuacji gdy wartość wskaźnika udziałów na wszystkich serwerach jest równy, każdy z nich otrzyma proporcjonalną liczbę zapytań. W przypadku gdy wskaźniki udziałów zadeklarowane zostaną różnie dla różnych serwerów – algorytm skieruje odpowiednio więcej lub mniej zapytań do danego serwera. Asymetryczna deklaracja udziałów pozwala dostosować liczbę zapytań jakie przetwarza serwer do jego mocy.
Podsumowanie Programy równoważenia obciążenia stosują szeroki wachlarz algorytmów szeregowania aby wykryć, do którego z dostępnych serwerów przekazać żądanie klienta. Najprostsze algorytmy oparte są na losowym wybieraniu lub round robin. Bardziej zaawansowane programy równoważenia obciążenia opierają się na dodatkowych czynnikach takich jak statystyka obciążenia, aktualny czas odpowiedzi, liczba aktywnych połączeń, lokalizacja geograficzna. Bardzo zaawansowane, wydajne systemy mogą używać wielowarstwowego równoważenia obciążenia.
Jako dodatek do sprzętowych rozwiązań równoważenia obciążenia, dostępne są programowe rozwiązania nawet jako otwarte oprogramowanie.
Zobacz też IEEE 802.1aq Agregacja łączy - IEEE 802.1AX
Przypisy
Kategoria:Obliczenia rozproszone Kategoria:Sieci komputerowe