Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



17.08.2018

Kontrola dostępu

Axis A1601
14.08.2018

Zabezpieczenia prognostyczne

Sophos Email Security Advanced
10.08.2018

Polski Azure Stack...

Beyond.pl Data Center 2
07.08.2018

Zarządzanie urządzeniami...

Quest KACE Cloud MDM, KACE Systems Deployment Appliance (SDA)
03.08.2018

Multimodalny OS

SUSE Linux Enterprise 15
27.07.2018

Skalowalne all-flash

QSAN XCubeFAS XF2026D
24.07.2018

Interaktywne kioski

Pyramid Polytouch 32
20.07.2018

Laserowe benefity

Brother TonerBenefit
17.07.2018

Laptop konwertowalny

HP ProBook x360 440 G1

Równoważenie obciążenia i wysoka dostępność w Linuksie

Data publikacji: 21-03-2018 Autor: Grzegorz Kuczyński
SCHEMAT 1. TESTOWE ŚRODOWISKO...

Keepalived to demon dla systemu Linux, który oferuje mechanizmy zwiększonej dostępności dla usług sieciowych. Dzięki niemu możemy uruchomić własne środowisko HA wraz z równoważeniem obciążenia (load balancing) dla usług warstwy czwartej, które mogą być uruchamiane na różnych platformach systemowych.

Korzystając z systemu GNU/Linux, niewielkim kosztem możemy skonfigurować wysoko dostępne środowisko, którego zadaniem będzie zapewnienie nieprzerwanego dostępu do dostarczanych usług. Osiągnięcie takiego efektu wymaga redundancji wszystkich elementów występujących pomiędzy dostawcą łącza internetowego a naszą usługą. Ponadto powinniśmy mieć dwóch niezależnych dostawców łącza oraz zapasowe serwery naszej usługi. Budowa środowiska high availability to obszerny temat – w artykule skupimy się na tej części zagadnień, które dotyczą wszystkiego, co znajduje się „pomiędzy” ISP a serwowanymi usługami. Zadanie to można zrealizować za pomocą wspomnianego demona keepalived. W rzeczywistości jest on tylko wrapperem dwóch mechanizmów systemu Linux, jakimi są IP Virtual Server (IPVS) oraz protokół Virtual Redundancy Routing Protocol (VRRP).

> RÓŻNE MECHANIZMY, KILKA KONFIGURACJI

Na początek bardzo istotne jest, aby zrozumieć, za co odpowiada dany komponent, ponieważ demona keepalived można konfigurować w różnych zakresach. Dla przykładu protokół VRRP odpowiada za mechanizm potocznie nazywany failover i dotyczy głównie routingu. Dzięki niemu adres IP, pod którym dostępna jest wirtualna usługa, potrafi migrować na zapasową maszynę podczas awarii podstawowej. Z kolei mechanizm jądra IPVS, należący do projektu Linux Virtual Server (LVS), eksponuje wirtualne usługi, które przekierowują dany port do rzeczywistych serwerów. Najważniejszym jednak zadaniem mechanizmu LVS jest load balancing. Co ciekawe, LVS oferuje również mechanizm failover, ponieważ w przypadku braku dostępności jednego z serwerów usług LVS przestanie do niego przełączać połączenia do czasu, aż ponownie stanie się on dostępny.

Konfiguracja środowiska złożonego ze wspomnianych komponentów wydaje się oferować te same możliwości co klastry. Jednak należy wyraźnie zaznaczyć, że klastry są zupełnie innym rozwiązaniem. Linux Virtual Server może przekierowywać przychodzące połączenia na jeden z wielu dostępnych rzeczywistych serwerów (real servers), przy czym żaden z nich nie wie o istnieniu innych – działają one niezależnie. Natomiast klaster jest oprogramowaniem, które potrafi zarządzać zadaniami i zasobami zbiorczo na podłączonych do niego nodach. Podobnie ma się wykorzystanie protokołu VRRP, który do zapewnienia zapasowej ścieżki potrzebuje zapasowego hosta, który podczas prawidłowej pracy środowiska jest niewykorzystywany i tylko czeka na przejęcie zadań głównego hosta.

> PROTOKÓŁ VRRP

Jest to protokół powszechnie wykorzystywany w urządzeniach takich firm jak Cisco czy Mikrotik. Dostępna jest też implementacja dla systemu Linux. Zadaniem protokołu jest stworzenie wirtualnego routera na kilku fizycznych maszynach, który jest identyfikowany za pomocą wspólnego ID. Wszystkie instancje wirtualnego routera mają skonfigurowany ten sam adres IP, który mają uaktywnić, gdy przestaną dostawać powiadomienia od routera ustawionego w roli master. W danej grupie routerów wirtualnych tylko ten ze stanem master obsługuje wcześniej ustalony adres IP. Zaletą protokołu VRRP jest to, że automatycznie wprowadza zmiany w pozostałych routerach, gdy jeden z nich zawiedzie. W ten sposób otrzymujemy failover routera, który przekazuje połączenia do usług. Keepalived implementuje ten protokół w systemie Linux z użyciem najwydajniejszych mechanizmów przełączania. Ponadto pozwala definiować dodatkowe akcje, które mają być wykonane, gdy dana instancje wirtualnego routera zostanie aktywowana bądź deaktywowana.

> LINUX VIRTUAL SERVER

IPVS w rzeczywistości jest modułem jądra o nazwie ip_vs. Za jego pomocą można uruchomić wirtualną usługę, która będzie przekazywana na wskazane serwery. Podczas tej operacji IPVS korzysta z określonego algorytmu rozkładania obciążenia. Instalując keepalived, automatycznie zostanie zainstalowane narzędzie do obsługi LVS o nazwie ipvsadm. Choć keepalived automatycznie konfiguruje wirtualne serwery, to za pomocą wspomnianego narzędzia można też to zrobić ręcznie. LVS obsługuje dwa protokoły transportowe – TCP i UDP, trzy metody przekazywania połączeń – NAT, tunnel, direct oraz osiem algorytmów rozkładania połączeń (load balancing).

> MIGRACJA IP W SYSTEMIE LINUX

Mimo że demon keepalived zrobi wszystko za nas, nie zwalnia nas to z konieczności posiadania wiedzy, jak działają niektóre mechanizmy. W środowisku, które będziemy budować, powtarzać się będzie jeden schemat – chodzi o automatyczne przenoszenie adresu IP z jednego hosta na drugi. Wiążą się z tym pewne niuanse dotyczące działania sieci i tego, jak system operacyjny tę sieć obsługuje. Optymalna metoda sprowadza się do tego, aby zrobić to jak najszybciej, przy wywoływaniu jak najmniejszej liczby zmian w całej sieci.

[...]

Autor zawodowo zajmuje się informatyką. Jest członkiem społeczności open source, prow adzi blog nt. systemu GNU/Linux.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2013 Presscom / Miesięcznik "IT Professional"