Poproszono mnie o przebudowanie infrastruktury równoważenia obciążenia w centrum danych.
Pierwotnym żądaniem było obciążenie serwerów FTP równoważenia. Próbowałem to zrobić przy użyciu bieżącego modułu równoważenia obciążenia ( Piranha / LVS
), ale nie uruchomiłem go. Nie tylko dlatego, że jest mało dokumentacji dla tego oprogramowania. Ponieważ Piranha
jest to uznawane za przestarzałe, przeszedłem do niego HAProxy
po kilku dniach prób, co wykonało pracę w ułamku czasu Piranha
.
Mam więc równoważenie obciążenia FTP (tryb pasywny). Teraz poproszono mnie o zastąpienie całego modułu równoważenia obciążenia Piranha w centrum danych. W obecnej konfiguracji Piranii mamy kilka serwerów WWW, serwerów IIS .... aaa i DNS .
Nie o to chodzi:
HAProxy
wydaje się być powszechnie używanym LB, ale nie jest w stanie sobie z tym poradzićUDP load balancing
. To jest bummer, ponieważ lubię jak to HAProxy
działa. Więc często googlowałem i natknąłem się na kilka rzeczy. Większość osób wydaje się używać LVS
jako LB dla DNS (TCP / UDP). Niektóre wykorzystują dlbDNS
, niektóre wykorzystują lbnamed
, a niektóre wykorzystują netfilter / iptables
.
Ponieważ chciałbym pozostać przy HAProxy
serwerach FTP, HTTP, IIS, pomyliłem się co do używania go obok siebie LVS
.
Wymagania:
2 instancje LB z przełączaniem awaryjnym
2 serwery DNS (już istnieją) z przełączaniem awaryjnym
Wiele serwerów zaplecza (http, aplikacja itp.)
Pytania:
czy to jest możliwe? Czy równoważenie obciążenia UDP na serwerach DNS jest nawet konieczne? Czy jest jakiś zasób, który mógłby mi pokazać, jak zacząć? A może istnieje rozwiązanie LB, które jest w stanie nie tylko obsługiwać protokół TCP / HTTP, ale także równoważenie obciążenia UDP?
PS: Rozwiązanie LB powinno być sprzętowe i otwarte / licencja GPL / wolne od kosztów.
Każda pomoc lub prowadząca do odpowiednich zasobów jest bardzo mile widziana!
źródło
Odpowiedzi:
Nie ładuj salda DNS.
Jest to niezwykle lekki protokół - potrzebujesz ogromnej ilości ruchu, aby potrzebować więcej niż jednego urządzenia (w takim przypadku i tak będziesz po prostu wąskim gardłem w module równoważenia obciążenia), a wbudowana jest odporność, ponieważ możesz używać wielu rekordów NS w twojej delegacji (inne serwery będą używane, jeśli ktoś nie działa).
źródło
Nie podobają mi się te pytania i odpowiedzi, ponieważ tak naprawdę nie ustalono, o jakim typie serwera DNS mówisz. Istnieją pewne znaczące nieporozumienia, jeśli chodzi o odporność rekurencyjnego DNS i ważne jest, aby osoby poruszające się za pośrednictwem wyszukiwarek nie odchodziły od tej dyskusji z fałszywym poczuciem bezpieczeństwa.
Autorytatywny DNS : w przypadku autorytatywnych serwerów DNS powszechna wiedza na temat odporności DNS jest dość prosta. Tak długo, jak masz wiele autorytatywnych serwerów DNS, które są geograficznie nadmiarowe, nic ci nie jest. Głównym powodem dodania wysokiej dostępności dla poszczególnych adresów IP jest to, że hostujesz wiele autorytatywnych stref. Pozwala to na zwiększenie liczby serwerów bez konieczności zmiany ustawień rejestratora dla każdej hostowanej domeny.
Rekurencyjny DNS : zawsze używaj jakiejś formy rozwiązania wysokiej dostępności. (BGP, urządzenie itp.) Tutaj możesz wpaść w poważne kłopoty. Wszystkie biblioteki resolvera nie są sobie równe: klienci DNS systemu Windows będą zaokrąglać początkowy serwer używany między zapytaniami, ale większość systemów opartych na Uniksie zawsze będzie kolejno przeglądać listę. Jeszcze mniej wiadomo, że te biblioteki uniksowe będą musiały przekroczyć limit czasu dla każdej kombinacji domen wyszukiwania przed przejściem na następny serwer. Jeśli skonfigurowano wiele domen wyszukiwania, a pierwszy serwer w kolejności wyszukiwania resolvera jest martwy, może to powodować znaczne opóźnienia w rozpoznawaniu DNS dla każdego pojedynczego żądania: więcej niż wystarczająco, aby spowodować problemy w aplikacjach o znaczeniu krytycznym.
Jeśli chodzi o rekurencyjny DNS, pamiętaj, że twoja infrastruktura serwera jest tak odporna, jak najbardziej konfiguracja klienta Braindead. W miarę rozwoju firmy jest to coś, nad czym nigdy nie masz kontroli. Nie przyjmuj żadnych założeń projektowych w oparciu o homogeniczne środowisko systemu operacyjnego serwera, ponieważ rzeczy rzadko pozostają takie same w rozwijającej się firmie. To na pewno ugryzie kogoś, jeśli nie planujesz tego z wyprzedzeniem.
źródło
Obecnie możesz korzystać
dnsdist
z PowerDNSZ README
https://github.com/PowerDNS/pdns/tree/master/pdns/dnsdistdist
Udostępniają repozytoria dla popularnych systemów operacyjnych: https://repo.powerdns.com/
źródło