Klastrácia v Proxmox VE

Klastrácia v Proxmox VE

V predchádzajúcich článkoch sme začali opisovať, čo je Proxmox VE a ako funguje. Dnes sa zameriame na spôsob využitia možnosti klastrovania a ukážeme, aké výhody to prináša.

Čo je vlastne klaster a na čo je potrebný? Klaster (z anglického cluster) je skupina serverov, ktoré sú prepojené vysokorýchlostnými komunikačnými kanálmi a fungujú ako jeden celok pre používateľa. Existuje niekoľko základných scenárov používania klastru:

  • Zabezpečenie vysokej dostupnosti (High-availability).
  • Vyvažovanie záťaže (Vyvažovanie záťaže).
  • Zvýšenie výkonu (Vysoký výkon).
  • Vykonávanie distribuovaných výpočtov (Distribuované výpočty).

Každý scenár má svoje vlastné požiadavky na komponenty klastru. Napríklad pre klaster vykonávajúci distribuované výpočty je hlavným požiadavkom vysoká rýchlosť vykonávania operácií s pohyblivou desatinnou čiarkou a nízka latencia siete. Takéto klastry sa často používajú na vedecké a výskumné účely.

Keďže sme sa dotkli témy distribuovaných výpočtov, stojí za zmienku, že existuje aj pojem gridsystém (z anglického grid — mriežka, sieť). Napriek spoločnej podobnosti by sme nemali zamieňať gridsystém a klaster. Grid nie je klaster v obvyklom zmysle. Na rozdiel od klastra, uzly v gride sú často heterogénne a majú nízku dostupnosť. Takýto prístup zjednodušuje riešenie úloh distribuovaných výpočtov, avšak neumožňuje vytvoriť z uzlov jediné celok.

Jasným príkladom gridsystému je populárna výpočtová platforma BOINC (Berkeley Open Infrastructure for Network Computing). Táto platforma bola pôvodne vytvorená pre projekt SETI@home (Search for Extra-Terrestrial Intelligence at Home), ktorý sa zaoberá problémom hľadania mimozemských civilizácií pomocou analýzy rádiových signálov.

Ako to fungujeObrovský objem údajov získaných z rádioteleskopov je rozdelený na množstvo malých kusov, ktoré sa odosielajú na uzly gridsystému (v projekte SETI@home zohráva úlohu takýchto uzlov počítače dobrovoľníkov). Údaje sa spracovávajú na uzloch a po ukončení spracovania sa vracajú na centrálny server projektu SETI. Týmto spôsobom projekt rieši zložitú globálnu úlohu, pričom nemá k dispozícii požadované výpočtové zdroje.

Teraz, keď máme jasnú predstavu o tom, čo je klaster, navrhujeme zvážiť, ako ho možno vytvoriť a zapojiť. Budeme používať systém virtualizácie s otvoreným zdrojovým kódom Proxmox VE.

Je obzvlášť dôležité predtým, než sa pustíme do vytvárania klasteru, jasne pochopiť obmedzenia a systémové požiadavky Proxmox, a to konkrétne:

  • maximálny počet uzlov v klasteri — 32;
  • všetky uzly musia mať rovnakú verziu Proxmox (existujú výnimky, ale pre produkčné prostredia sa neodporúčajú);
  • ak sa v budúcnosti plánuje využívať funkciu High Availability, klaster musí obsahovať aspoň 3 uzly;
  • na vzájomné prepojenie uzlov musia byť otvorené porty UDP/5404, UDP/5405 pre corosync a TCP/22 pre SSH;
  • latencia v sieti medzi uzlami nesmie presiahnuť 2 ms.

Vytvorenie klastera

Dôležité! Nižšie uvedená konfigurácia je testovacia. Nezabudnite skontrolovať oficiálnu dokumentáciu Proxmox VE.

Aby sme spustili testovací klaster, vzali sme tri servery s nainštalovaným hypervízorom Proxmox, všetky s rovnakou konfiguráciou (2 jadrá, 2 GB operačnej pamäte).

Ak chcete vedieť, ako nainštalovať Proxmox, odporúčame prečítať si náš predchádzajúci článok — Magia virtualizácie: úvodný kurz v Proxmox VE.

Na začiatku, po nainštalovaní OS, jednotlivý server funguje v Standalone-mode.

Klastrácia v Proxmox VE
Vytvoríme klaster stlačením tlačidla Create Cluster v príslušnej sekcii.

Klastrácia v Proxmox VE
Zadáme názov budúceho klasteru a vyberieme aktívne sieťové pripojenie.

Klastrácia v Proxmox VE
Stlačte tlačidlo Create. Server vygeneruje 2048-bitový kľúč a zapíše ho spolu s parametrami nového klasteru do konfiguračných súborov.

Klastrácia v Proxmox VE
Nápis ÚLoha OK potvrdzuje úspešné vykonanie operácie. Teraz, ak sa pozrieme na všeobecné informácie o systéme, vidíme, že server prešiel do režimu klasteru. Zatiaľ klaster pozostáva iba z jedného uzla, čo znamená, že zatiaľ nemá tie možnosti, kvôli ktorým je klaster potrebný.

Klastrácia v Proxmox VE

Pripojenie ku klasteru

Predtým, než sa pripojíme k vytvorenému klasteru, musíme získať informácie potrebné na pripojenie. Na to prejdeme do sekcie Cluster a stlačíme tlačidlo Join Information.

Klastrácia v Proxmox VE
V otvorenom okne nás zaujíma obsah rovnomenného poľa. Ten bude potrebné skopírovať.

Klastrácia v Proxmox VE
Tu sú zakódované všetky potrebné parametre pripojenia: adresa servera pre pripojenie a digitálny odtlačok. Prechádzame na server, ktorý je potrebné pridať do klastrom. Klikneme na tlačidlo Pripojiť do klastra a v otvorenom okne vkladáme skopírovaný obsah.

Klastrácia v Proxmox VE
Polia Adresa partnera a Fingerprint sa automaticky vyplní. Zadajte root heslo pre uzol číslo 1, vyberte sieťové pripojenie a kliknite na tlačidlo Pripojiť.

Klastrácia v Proxmox VE
Počas pripojenia ku klastru sa webová stránka GUI môže prestať aktualizovať. To je v poriadku, jednoducho obnovte stránku. Presne takto pridáme ďalší uzol a nakoniec získame plnohodnotný klaster z 3 fungujúcich uzlov.

Klastrácia v Proxmox VE
Teraz môžeme ovládať všetky uzly klastra z jedného GUI.

Klastrácia v Proxmox VE

Organizácia vysokého prevádzkového zabezpečenia

Proxmox „out of the box“ podporuje funkčnosť organizácie HA pre virtuálne stroje aj pre LXC kontajnery. Nástroj ha-manager detection and response to failures and outages, executing failover from the failed node to the operational one. For the mechanism to work correctly, virtual machines and containers must share a common file storage.

Po aktivácii funkčnosti Vysokého dostupnosti začne softvérový stack ha-manager nepretržite sledovať stav virtuálneho stroja alebo kontajnera a asynchrónne komunikovať s ostatnými uzlami klastra.

Pripojiť zdieľané úložisko

Pre príklad sme vybudovali malé súborové úložisko NFS na adrese 192.168.88.18. Aby všetky uzly klastra mohli používať, je potrebné vykonať nasledujúce úkony.

Vyberáme v menu webového rozhrania Datacenter – Úložisko – Pridať – NFS.

Klastrácia v Proxmox VE
Vyplňte polia ID a Server. V rozbaľovacom zozname Exportovať vyberte požadovaný adresár z dostupných a v zozname Obsah – potrebné typy údajov. Po kliknutí na tlačidlo Pridať bude úložisko pripojené ku všetkým uzlom klastra.

Klastrácia v Proxmox VE
Pri vytváraní virtuálnych strojov a kontajnerov na ktoromkoľvek uzle uvádzame našu úložisko ako úložisko.

Nastavíme HA

Pre príklad vytvoríme kontajner s Ubuntu 18.04 a nastavíme pre neho vysoké zabezpečenie. Po vytvorení a spustení kontajnera prejdeme do sekcie Datacenter – HA – Pridať. V otvorenom poli uvedieme ID virtuálneho stroja/kontajnera a maximálny počet pokusov o reštart a presun medzi uzlami.

Ak tento počet prekročí, hypervízor označí VM ako zlyhanú a prevedie ju do stavu Error, po ktorom prestane vykonávať akékoľvek akcie s ňou.

Klastrácia v Proxmox VE
Po stlačení tlačidla Pridať nástroj ha-manager oznámia všetky uzly klasteru, že VM s uvedeným ID je teraz riadená a v prípade zlyhania je potrebné ju reštartovať na inom uzle.

Klastrácia v Proxmox VE

Urobíme zlyhanie

Aby sme videli, ako presne funguje mechanizmus prepínania, odpojíme nečakane node1 od napájania. Sledujme z iného uzla, čo sa deje s klasterom. Vidíme, že systém zaznamenal zlyhanie.

Klastrácia v Proxmox VE

Funkcia mechanizmu HA neznamená nepretržitú prevádzku VM. Akonáhle uzol "zlyhá", činnosť VM sa dočasne zastaví, kým sa automaticky neprepne na iný uzol.

A tu začína "mágia" — klaster automaticky priradil uzol na vykonávanie našej VM a v priebehu 120 sekúnd bola prevádzka automaticky obnovená.

Klastrácia v Proxmox VE
Odpojíme node2 od napájania. Pozrime sa, či klaster vydrží a či sa VM automaticky vráti do prevádzkového stavu.

Klastrácia v Proxmox VE
Žiaľ, ako vidíme, máme problém s tým, že na jedinom zostávajúcom uzle už nie je kvórum, čo automaticky vypína činnosť HA. V konzole dáme príkaz na núdzové nastavenie kvóra.

pvecm očakávalo 1

Klastrácia v Proxmox VE
Po 2 minútach mechanizmus HA správne zafungoval a nenašiel node2, spustil našu VM na node3.

Klastrácia v Proxmox VE
Akonáhle sme opäť zapli node1 a node2, činnosť klasteru bola úplne obnovená. Všimnite si, že VM sa sama nepresunie späť na node1, ale to sa dá urobiť manuálne.

Zhrnieme to

Povedali sme vám, ako funguje mechanizmus klastrovania v Proxmox, a ukázali sme, ako sa nastavuje HA pre virtuálne stroje a kontajnery. Správne využívanie klastrovania a HA výrazne zvyšuje spoľahlivosť infraštruktúry a zabezpečuje obnovu po zlyhaní.

Pred vytvorením klasteru je potrebné hneď naplánovať, na aké účely bude používaný a do akej miery ho bude potrebné v budúcnosti škálovať. Tiež je potrebné skontrolovať sieťovú infraštruktúru na pripravenosť na prácu s minimálnymi oneskoreniami, aby budúci klaster fungoval bez zlyhaní.

Povedzte nám — využívate možnosti klastrovania v Proxmox? Tešíme sa na vaše komentáre.

Predchádzajúce články na tému hypervízora Proxmox VE:

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster