Klastrowanie w Proxmox VE

Klastrowanie w Proxmox VE

W poprzednich artykułach zaczęliśmy rozmawiać o tym, czym jest Proxmox VE i jak działa. Dziś porozmawiamy o tym, jak można wykorzystać możliwość klastrowania i pokażemy, jakie daje korzyści.

Co to jest klaster i dlaczego jest potrzebny? Klaster (z angielskiego klastra) to grupa serwerów połączonych szybkimi kanałami komunikacyjnymi, pracujących i wyglądających dla użytkownika jako jedna całość. Istnieje kilka głównych scenariuszy korzystania z klastra:

  • Zapewnianie tolerancji na błędy (duża dostępność).
  • Równoważenie obciążenia (Równoważenie obciążenia).
  • Wzrost produktywności (wysoka wydajność).
  • Wykonywanie obliczeń rozproszonych (Przetwarzanie rozproszone).

Każdy scenariusz ma swoje własne wymagania wobec członków klastra. Przykładowo dla klastra wykonującego obliczenia rozproszone głównym wymaganiem jest duża prędkość operacji zmiennoprzecinkowych i małe opóźnienia sieci. Klastry takie są często wykorzystywane do celów badawczych.

Skoro poruszyliśmy temat przetwarzania rozproszonego, chciałbym zauważyć, że istnieje również coś takiego jak system siatki (z angielskiej siatki - krata, sieć). Pomimo ogólnego podobieństwa nie należy mylić systemu sieci z klastrem. Grid nie jest klastrem w zwykłym tego słowa znaczeniu. W przeciwieństwie do klastra, węzły wchodzące w skład sieci są najczęściej heterogeniczne i charakteryzują się niską dostępnością. Takie podejście upraszcza rozwiązywanie problemów przetwarzania rozproszonego, ale nie pozwala na tworzenie pojedynczej całości z węzłów.

Uderzającym przykładem systemu grid jest popularna platforma obliczeniowa BOIN (Berkeley Otwarta infrastruktura dla obliczeń sieciowych). Platforma ta została pierwotnie stworzona na potrzeby projektu SETI @ home (Search for Extra-Terrestrial Intelligence at Home), zajmującej się problemem poszukiwania inteligencji pozaziemskiej poprzez analizę sygnałów radiowych.

Jak to działaOgromna ilość danych otrzymanych z radioteleskopów jest rozbijana na wiele małych fragmentów, które następnie przesyłane są do węzłów systemu grid (w projekcie SETI@home rolę takich węzłów pełnią komputery ochotnicze). Dane przetwarzane są w węzłach i po zakończeniu przetwarzania przesyłane są do centralnego serwera projektu SETI. Tym samym projekt rozwiązuje najbardziej złożony problem globalny, nie dysponując wymaganą mocą obliczeniową.

Teraz, gdy już dobrze rozumiemy, czym jest klaster, proponujemy rozważyć, w jaki sposób można go utworzyć i wykorzystać. Będziemy korzystać z systemu wirtualizacji typu open source Proxmox VE.

Szczególnie ważne jest dokładne zrozumienie ograniczeń i wymagań systemowych Proxmox przed przystąpieniem do tworzenia klastra, a mianowicie:

  • maksymalna liczba węzłów w klastrze - 32;
  • wszystkie węzły muszą mieć ta sama wersja Proxmox (są wyjątki, ale nie są zalecane do produkcji);
  • jeżeli w przyszłości planowane jest wykorzystanie funkcjonalności High Availability to klaster powinien ją posiadać co najmniej 3 węzły;
  • porty muszą być otwarte, aby węzły mogły się ze sobą komunikować UDP/5404, UDP/5405 dla corosync i TCP/22 dla SSH;
  • opóźnienie sieci pomiędzy węzłami nie powinno przekraczać 2 ms.

Utwórz klaster

Ważny! Poniższa konfiguracja jest konfiguracją testową. Nie zapomnij sprawdzić oficjalna dokumentacja Proxmox V.E.

Do uruchomienia klastra testowego wzięliśmy trzy serwery z zainstalowanym hypervisorem Proxmox w tej samej konfiguracji (2 rdzenie, 2 GB RAM).

Jeśli chcesz wiedzieć, jak zainstalować Proxmox, zalecamy przeczytanie naszego poprzedniego artykułu - Magia wirtualizacji: kurs wprowadzający do Proxmox VE.

Początkowo po zainstalowaniu systemu operacyjnego uruchamiany jest pojedynczy serwer tryb samodzielny.

Klastrowanie w Proxmox VE
Utwórz klaster klikając przycisk Utwórz klaster w odpowiedniej sekcji.

Klastrowanie w Proxmox VE
Ustalamy nazwę przyszłego klastra i wybieramy aktywne połączenie sieciowe.

Klastrowanie w Proxmox VE
Kliknij przycisk Utwórz. Serwer wygeneruje 2048-bitowy klucz i zapisze go wraz z parametrami nowego klastra do plików konfiguracyjnych.

Klastrowanie w Proxmox VE
Napis ZADANIE OK oznacza pomyślne zakończenie operacji. Teraz przeglądając ogólne informacje o systemie widać, że serwer przeszedł w tryb klastrowy. Jak na razie klaster składa się tylko z jednego węzła, czyli nie ma jeszcze możliwości, do których klaster jest potrzebny.

Klastrowanie w Proxmox VE

Dołączenie do klastra

Przed połączeniem się z utworzonym klastrem musimy uzyskać informacje umożliwiające dokończenie połączenia. Aby to zrobić, przejdź do sekcji Grupa i naciśnij przycisk Dołącz do informacji.

Klastrowanie w Proxmox VE
W oknie, które się otworzy interesuje nas zawartość pola o tej samej nazwie. Trzeba będzie go skopiować.

Klastrowanie w Proxmox VE
Zakodowane są tutaj wszystkie niezbędne parametry połączenia: adres serwera do połączenia oraz cyfrowy odcisk palca. Udajemy się do serwera, który ma zostać uwzględniony w klastrze. Naciskamy przycisk Dołącz do Klastra i w oknie, które się otworzy, wklej skopiowaną treść.

Klastrowanie w Proxmox VE
Pola Adres równorzędny и Odcisk palca zostaną wypełnione automatycznie. Wprowadź hasło roota dla węzła nr 1, wybierz połączenie sieciowe i naciśnij przycisk Dołącz do rejestru.

Klastrowanie w Proxmox VE
Podczas procesu dołączania do klastra strona internetowa GUI może przestać się aktualizować. Wszystko OK, wystarczy odświeżyć stronę. Dokładnie w ten sam sposób dodajemy kolejny węzeł i w efekcie otrzymujemy pełnoprawny klaster 3 działających węzłów.

Klastrowanie w Proxmox VE
Teraz możemy kontrolować wszystkie węzły klastra z jednego GUI.

Klastrowanie w Proxmox VE

Organizacja wysokiej dostępności

Proxmox od razu po wyjęciu z pudełka obsługuje funkcjonalność organizacji HA zarówno dla maszyn wirtualnych, jak i kontenerów LXC. Pożytek ha-manager wykrywa i obsługuje błędy i awarie, wykonując przełączanie awaryjne z uszkodzonego węzła na działający. Aby mechanizm działał poprawnie konieczne jest, aby maszyny wirtualne i kontenery miały wspólny magazyn plików.

Po aktywowaniu funkcjonalności High Availability stos oprogramowania ha-manager będzie stale monitorował stan maszyny wirtualnej lub kontenera i asynchronicznie współdziałał z innymi węzłami klastra.

Dołączanie pamięci udostępnionej

Jako przykład wdrożyliśmy mały udział plików NFS pod adresem 192.168.88.18. Aby wszystkie węzły klastra mogły z niego korzystać, należy wykonać następujące manipulacje.

Wybierz z menu interfejsu internetowego Centrum danych – Pamięć – Dodaj – NFS.

Klastrowanie w Proxmox VE
Wypełnij pola ID и serwer. Na liście rozwijanej Export wybierz żądany katalog z dostępnych i na liście Treść — wymagane typy danych. Po naciśnięciu przycisku Dodaj magazyn zostanie podłączony do wszystkich węzłów klastra.

Klastrowanie w Proxmox VE
Podczas tworzenia maszyn wirtualnych i kontenerów na dowolnym z węzłów określamy nasze przechowywanie jako magazyn.

Konfigurowanie HA

Na przykład utwórzmy kontener z Ubuntu 18.04 i skonfigurujmy dla niego High Availability. Po utworzeniu i uruchomieniu kontenera przejdź do sekcji Datacenter-HA-Add. W polu, które zostanie otwarte, podaj identyfikator maszyny wirtualnej/kontenera oraz maksymalną liczbę prób ponownego uruchomienia i przemieszczania się pomiędzy węzłami.

Jeżeli ta liczba zostanie przekroczona, hypervisor oznaczy maszynę wirtualną jako uszkodzoną i ustawi ją w stan Błąd, po czym przestanie wykonywać na niej jakiekolwiek działania.

Klastrowanie w Proxmox VE
Po naciśnięciu przycisku Dodaj użyteczność ha-manager powiadomi wszystkie węzły klastra, że ​​teraz maszyna wirtualna o podanym identyfikatorze jest kontrolowana i w przypadku awarii należy ją zrestartować na innym węźle.

Klastrowanie w Proxmox VE

Zróbmy awarię

Aby zobaczyć jak dokładnie działa mechanizm przełączający, wyłączmy nieprawidłowo zasilanie węzła 1. Patrzymy z innego węzła, co dzieje się z klastrem. Widzimy, że system naprawił awarię.

Klastrowanie w Proxmox VE

Działanie mechanizmu HA nie oznacza ciągłości VM. Gdy tylko węzeł „upadnie”, działanie maszyny wirtualnej zostanie tymczasowo zatrzymane do czasu automatycznego ponownego uruchomienia w innym węźle.

I tu zaczyna się „magia” – klaster automatycznie przypisał węzeł do uruchomienia naszej VM i w ciągu 120 sekund praca została automatycznie przywrócona.

Klastrowanie w Proxmox VE
Gasimy węzeł 2 na żywieniu. Zobaczmy, czy klaster przetrwa i czy maszyna wirtualna automatycznie powróci do stanu roboczego.

Klastrowanie w Proxmox VE
Niestety, jak widzimy, mamy problem z tym, że na jedynym ocalałym węźle nie ma już kworum, co automatycznie wyłącza HA. Wydajemy polecenie wymuszenia instalacji kworum w konsoli.

pvecm expected 1

Klastrowanie w Proxmox VE
Po 2 minutach mechanizm HA zadziałał poprawnie i nie znajdując węzła2 uruchomił naszą maszynę wirtualną na węźle3.

Klastrowanie w Proxmox VE
Gdy tylko ponownie włączyliśmy węzeł 1 i węzeł 2, klaster został w pełni przywrócony. Należy pamiętać, że maszyna wirtualna nie migruje samodzielnie do węzła 1, ale można to zrobić ręcznie.

Podsumowując

Opowiedzieliśmy Ci, jak działa mechanizm klastrowania Proxmox, a także pokazaliśmy, jak HA jest skonfigurowany dla maszyn wirtualnych i kontenerów. Właściwe wykorzystanie klastrowania i HA znacznie zwiększa niezawodność infrastruktury, a także zapewnia odzyskiwanie po awarii.

Przed utworzeniem klastra należy od razu zaplanować do jakich celów będzie on wykorzystywany i jak bardzo będzie trzeba go skalować w przyszłości. Trzeba także sprawdzić infrastrukturę sieciową pod kątem gotowości do pracy z minimalnymi opóźnieniami, aby przyszły klaster działał bezawaryjnie.

Powiedz nam – czy korzystasz z możliwości klastrowania Proxmox? Czekamy na Was w komentarzach.

Poprzednie artykuły na temat hypervisora ​​Proxmox VE:

Źródło: www.habr.com

Dodaj komentarz