Usiłuję zdecydować między zastosowaniem rozwiązania równoważenia obciążenia warstwy 4 dla mojego centrum danych lub rozwiązaniem warstwy 7. Niestety (dla mojego rozsądku) mój przypadek użycia jest na tyle prosty, że oba rozwiązania działałyby dobrze, unikając większości słabości i nie wykorzystując w rzeczywistości mocnych stron. Niezależnie od tego, z jakiego rozwiązania się skorzystamy, musi ono mieć wysoką dostępność i wysoką przepustowość. Ale planujemy go używać tylko do równoważenia obciążenia klastra serwerów internetowych, z których żaden nie ma żadnych wymagań dotyczących „lepkiego” zarządzania sesjami (cookie lub IP), złożonych reguł przepisywania - lub, w tym przypadku, jakichkolwiek reguł przepisywania w wszystko.
Elementy równoważące obciążenie zostaną podłączone do dwóch przełączników, oba z niezależnym połączeniem do warstwy agregacji centrum danych i połączone ze sobą za pomocą drzewa Rapid Spanning Tree i dowolnego zastrzeżonego protokołu używanego przez przełączniki do wirtualizacji. Równoważniki obciążenia będą również połączone ze sobą za pomocą kabla krosowego. Wszystkie serwery w klastrze są podłączone do obu przełączników. Wszystko, co muszą zrobić moduły równoważące obciążenie, to skierować na nich ruch.
Ponieważ jest to tylko HTTP, mogę użyć rozwiązania równoważenia obciążenia warstwy 7, takiego jak HAProxy lub nginx. Ale mógłbym również użyć projektu LVS z ldirectord lub keepalived lub cokolwiek innego.
Próbowałem rozbić zalety i wady, jak je widzę, ale to kończy się na praniu. Co byś polecił i dlaczego? Czy coś brakuje?
Biorąc pod uwagę brak korzyści dla ciebie z równoważenia L7, zdecydowałbym się na równoważenie L4. Jestem wielkim fanem tego, aby upraszczać to tak prosto, jak to możliwe, nie poświęcając zbyt wiele.
L7 wymaga, aby moduły równoważące sprawdzały nagłówki http w pakietach, które je przechodzą pod kątem odpowiedniego routingu, dodając dodatkowy narzut i marginalny wzrost opóźnienia dla użytkownika końcowego. Wydaje mi się to bezcelowym wydatkiem, jeśli dzięki temu nic nie zyskasz.
źródło
Niektórzy dostawcy DNS mają prostą funkcję przełączania awaryjnego. Wspomniałeś, jakie są twoje wymagania, a nie jakie są, ale jeśli wszystko, czego potrzebujesz, to okrągły robin z przełączaniem awaryjnym, jeśli coś jest nie tak, możesz użyć np. Przełączania awaryjnego zoneedit.com . W zależności od potrzeb HA, które mogą być wystarczająco dobre, możesz pominąć cały poziom w swojej architekturze.
źródło