Në Ne kemi folur për përpjekjet për të përdorur Watcher dhe kemi paraqitur një raport provash. Ne realizojmë këto teste periodikisht për balancimin dhe funksione të tjera kritike të një cloud-i të madh korporativ ose operator.
Kompleksiteti i lartë i detyrës që po zgjidhim, ndoshta do të kërkojë disa artikuj për të përshkruar projektin tonë. Sot publikojmë artikullin e dytë të serisë, i cili është dedikuar balancimit të makinave virtuale në cloud.
Pak terminologji
Kompania VmWare ka futur utilitarin DRS (Planifikuesi i Burimeve të Distribuara) për balancimin e ngarkesës në ambientin e virtualizimit që e zhvillon dhe e ofron.
Siç shkruan
«VMware DRS (Planifikuesi i Burimeve të Distribuara) është një utilitar që balancojë ngarkesat llogaritëse me burimet e disponueshme në një ambient virtual. Ky utilitar është pjesë e paketës së virtualizimit e quajtur VMware Infrastructure.
Me anë të VMware DRS, përdoruesit përcaktojnë rregullat për shpërndarjen e burimeve fizike midis makinave virtuale (VM). Utilitari mund të konfigurohet për menaxhim manual ose automatizuar. Puset e burimeve VMware mund të shtohen, hiqen ose riorganizohen lehtësisht. Nëse dëshirohet, puset e burimeve mund të izolohet midis njësive të ndryshme të biznesit. Nëse ngarkesa e punës në një ose disa makina virtuale ndryshon ndjeshëm, VMware DRS riorganizon makinat virtuale midis serverëve fizikë. Nëse ngarkesa totale e punës zvogëlohet, disa serverë fizikë mund të çaktivizohen përkohësisht dhe ngarkesa e punës të konsolidohet.
Pse është e nevojshme balancimi?
Sipas mendimit tonë, DRS është një funksion i domosdoshëm i cloud-it, megjithëse kjo nuk do të thotë se DRS duhet të përdoret gjithmonë dhe kudo. Në varësi të qëllimit dhe nevojave të cloud-it, mund të ekzistojnë kërkesa të ndryshme për DRS dhe metodat e balancimit. Ndoshta ekzistojnë situata kur balancimi nuk është aspak i nevojshëm. Ose madje dëmshpërblyes.
Për të kuptuar më mirë se ku dhe për cilët klientë DRS është e nevojshme, le të shqyrtojmë qëllimet dhe detyrat e tyre. Cloud-et mund të ndahen në publike dhe private. Këtu janë dallimet kryesore midis këtyre cloud-eve dhe qëllimeve të klientëve.
Cloud-et private / Klientët e mëdhenj korporativë
Cloud-et publike / Bizneset e mesme dhe të vogla, individë
Kriteri kryesor dhe qëllimet e operatorëve
Ofrimi i një shërbimi ose produkti të besueshëm
Reducimi i kostove të shërbimeve në luftën në tregun e konkurrencës
Kërkesat për shërbimin
Besueshmëria në të gjitha nivelet dhe në të gjithë elementët e sistemit
Performanca e garantuar
Prioritizimi i makinave virtuale nĂ« disa kategoriÂ
Siguria informative dhe fizike e të dhënave
SLA dhe mbështetje 24/7
Thjeshtësia maksimale në marrjen e shërbimit
Shërbime relativisht të thjeshta
Përgjegjësia për të dhënat bie mbi klientin
Prioritizimi i VM nuk është i nevojshëm
Siguria informative në nivelin e shërbimeve standarde, përgjegjësia mbi klientin
Mund të ketë ndërprerje
Nuk ka SLA, cilësia nuk garantizohet
Mbështetje përmes postës
Backup-i nuk është i detyrueshëm
Karakteristikat e klientit
Një spektër shumë të gjerë aplikacionesh.
Aplikacione të trashëguara, të trasheguara në kompani.
Arkitektura komplekse të personalizuara për çdo klient.
Rregullat e afinitetit.
Funksionimi i softuerit pa ndĂ«rprerje nĂ« modin 7x24.Â
Mjetet e backup-it 'në fluks'.
Ngarkesa ciklike e parashikueshme e klientit.
Aplikacione standarde â balancimi i rrjetit, Apache, WEB, VPN, SQL
Mund të ketë ndërprerje aplikacioni për një kohë të caktuar
Ndërprerja e rastit e VM në cloud lejohet
Backup-i nga klienti
Ngarkesa e parashikueshme, në mes të klientëve është statistikisht e mesme.
Pasojat për arkitekturën
Gjeoklasterizimi
Sistemi ruajtĂ«s (SĂH) i centralizuar ose i shpĂ«rndarĂ«
SRK e rezervuar
Ruajtja lokale e të dhënave në nyjat kompjuterike
Qëllimet e balancimit
Shpërndarja e barabartë e ngarkesës
Reagimi maksimal i aplikacioneveÂ
Koha minimale e vonesës në balancim
Balancimi vetëm në rast të nevojës së qartë
Dërgimi i një pjese të pajisjeve në mirëmbajtje parandalues
Reducimi i kostove tĂ« shĂ«rbimit dhe shpenzimeve tĂ« operatoritÂ
Shkëputja e një pjese të burimeve në rast ngarkese të ulët
Kursimi i energjisë elektrike
Zvogëlimi i shpenzimeve për personelin
Ne bëjmë këto përfundime për veten:
Për cloud-et private, të ofruara për klientët e mëdhenj korporativë, DRS mund të aplikohet duke marrë parasysh kufizimet:
- siguria informative dhe marrja parasysh e rregullave të afinitetit gjatë balancimit;
- prania në rezervë e një volumi të mjaftueshëm burimesh në rast aksidenti;
- të dhënat e makinave virtuale janë në sistemin ruajtës të centralizuar ose të shpërndarë;
- shpërndarja në kohë e procedurave të administrimit, kopjimit të sigurt dhe balancimit;
- balancimi vetëm brenda grumbullit të hosteve të klientëve;
- balancimi vetëm në rast të një disbalancimi të rëndë, migrimet më efektive dhe më të sigurta të VM (sepse migrimi mund të përfundojë me dështim);
- balancimi në lidhje me makinat virtuale "të qeta" (migrimi i makinave virtuale "të zhurmshme" mund të zgjasë shumë);
- balancimi duke marrĂ« parasysh "kostot" â ngarkesat nĂ« storage dhe rrjet (nĂ« arkitekturĂ« tĂ« personalizuar pĂ«r klientĂ« tĂ« mĂ«dhenj);
- balancimi duke marrë parasysh karakteristikat individuale të sjelljes së çdo VM;
- balancimi preferohet të bëhet në kohë joaktive (nata, fundjavat, festat).
Për re publike, që ofrojnë shërbime për klientë të vegjël, DRS mund të aplikohet shumë më shpesh, me mundësi të zgjeruara:
- mungesa e kufizimeve të sigurisë informative dhe rregullave të afinitetit;
- balancimi brenda re;
- balancimi në çdo kohë të arsyeshme;
- balancimi i çdo VM;
- balancimi i makinave virtuale "të zhurmshme" (për të mos shqetësuar të tjerët);
- të dhënat e makinave virtuale shpesh ndodhen në disqe lokale;
- marrja në konsideratë e përformancës së mesatare të storage dhe rrjetit (arkitektura e re është e njëjtë);
- balancimi në përputhje me rregullat e përgjithshme dhe statistikën aktuale të sjelljes së qendrës së të dhënave.
Vështirësia e problemit
Vështirësia e balancimit qëndron në faktin se DRS duhet të punojë me një numër të madh faktorësh të pasigurt:
- sjellja e përdoruesve të çdo prej sistemeve informative të klientëve;
- algoritmet e funksionimit të serverëve të sistemeve informative;
- sjellja e serverëve të DBMS;
- ngarkesa në resurset kompjuterike, storage, rrjet;
- ndërveprimi i serverëve me njëri-tjetrin në luftë për resurset e re.
Ngarkesa e një numri të madh të serverëve virtualë të aplikacioneve dhe të dhënave mbi resurset e re proiston në kohë, pasojat mund të shfaqen dhe të mbivendosen me njëra-tjetrën me një efekt të papërshkrueshëm në një kohë të paparashikueshme. Edhe për menaxhimin e proceseve relativisht të thjeshta (përshembull, për menaxhimin e motorit, sistemit të ngrohjes me ujë të shtëpisë) sistemet e rregullimit automatik duhet të përdorin algoritme të komplikuara me feedback.

Detyra jonë është shumë më e ndërlikuar dhe ekziston rreziku që sistemi të mos arrijë të balancojë ngarkesën në nivelet e qëndrueshme brenda një kohe të arsyeshme, madje edhe nëse nuk ka ndikime të jashtme nga përdoruesit.

Historia e zhvillimeve tona
Për të zgjidhur këtë problem, vendosëm të mos fillonim nga e para, por të mbështeteshim në përvojën ekzistuese dhe të bashkëpunonim me specialistët që kanë përvojë në këtë fushë. Për fat, kuptimi i problemit ishte plotësisht në përputhje me ne.
Faza 1
Ne përdorëm një sistem të bazuar në teknologjinë e rrjeteve neurale dhe provuam të optimizonim burimet tona mbi atë bazë.
Interesi i këtij tregu ishte provimi i teknologjisë së re, ndërsa rëndësia e tij qëndronte në aplikimin e një qasjeje të pazakonshme për zgjidhjen e problemit, ku në kushte të tjera të barabarta, qasjet standarde ishin praktiksht shteruar.
Ne lansuam sistemin dhe vërtet filluam balancimin. Shkalla e reve tona nuk na lejoi të merrnim rezultate optimiste të shpallura nga zhvilluesit, por ishte e qartë se balancimi funksiononte.
Megjithatë, kishim disa kufizime të rëndësishme:
- Për të trajnuar rrjetin neural, është e nevojshme që makinat virtuale të funksionojnë pa ndryshime të ndjeshme për javë ose muaj.
- Algoritmi është projektuar për optimizim mbi bazën e analizës së të dhënave "historike" më të hershme.
- Për trajnimin e rrjetit neural kërkohet një volum i konsiderueshëm të dhënash dhe burimesh kompjuterike.
- Optimizimi dhe balancimi mund tĂ« bĂ«hen relativisht rrallĂ« â njĂ« herĂ« çdo disa orĂ«, qĂ« Ă«shtĂ« padyshim e pamjaftueshme.
Stage 2
Duke qenĂ« se ne nuk ishim tĂ« kĂ«naqur me situatĂ«n, vendosĂ«m tĂ« modifikonim sistemin, dhe pĂ«r kĂ«tĂ« duhej tĂ« pĂ«rgjigjeshim nĂ« pyetjen kryesore â pĂ«r kĂ« e bĂ«jmĂ« atĂ«?
Fillimisht â pĂ«r klientĂ«t korporatĂ«. KĂ«shtu, na nevojitet njĂ« sistem qĂ« funksionon shpejt, me ato kufizime korporative qĂ« vetĂ«m e thjeshtojnĂ« realizimin.
Pyetja e dytĂ« â çfarĂ« kuptojmĂ« me fjalĂ«n "shpejt"? Si rezultat i disa debatĂ«ve tĂ« shkurtra, vendosĂ«m se mund tĂ« mbĂ«shtetemi nĂ« njĂ« kohĂ« reagimi 5 â 10 minuta, qĂ« skakrricimet e pĂ«rkohshme tĂ« mos e çorientonin sistemin.
PĂ«rgjigjja e tretĂ« â çfarĂ« madhĂ«sie tĂ« sasisĂ« sĂ« serverĂ«ve pĂ«r balancim duhet tĂ« zgjidhim?
Kjo çështje zgjidhte vetvetiu. Si rregull, klientët nuk e bëjnë grumbujt e serverëve shumë të mëdhenj, dhe kjo është në përputhje me rekomandimet nga artikulli për të kufizuar grumbujt në 30-40 serverë.
Për më tepër, duke segmentuar rezervuarin e serverëve, ne i lehtësojmë algoritmit të balancimit detyrën.
Pyetja e katĂ«rt â sa e pĂ«rshtatshme Ă«shtĂ« rrjeti nervor me procesin e tij tĂ« gjatĂ« tĂ« mĂ«simit dhe balancimet e rralla? Ne morĂ«m vendimin pĂ«r tĂ« hequr dorĂ« nga ai nĂ« favor tĂ« algoritmeve mĂ« tĂ« thjeshta operative, qĂ« tĂ« marrim rezultate brenda sekondash.

Me përshkrimin e sistemit që përdor këta algoritma dhe disavantazhet e tij, mund të njiheni
Ne e kemi implementuar dhe lançuar kĂ«tĂ« sistem dhe kemi marrĂ« rezultate premtuese â tani ai analizon rregullisht ngarkesĂ«n e re tĂ« qeverisjes dhe jep rekomandime pĂ«r zhvendosjen e makinave virtuale, tĂ« cilat janĂ« nĂ« shumĂ« raste tĂ« sakta. Edhe tani duket se ne mund tĂ« arrijmĂ« njĂ« lirimin e burimeve prej 10-15% pĂ«r makina virtuale tĂ« reja me pĂ«rmirĂ«simin e cilĂ«sisĂ« sĂ« punĂ«s sĂ« atyre ekzistuese.
Kur zbulohet një disbalancë në RAM ose CPU, sistemi jep urdhra në planifikuesin Tionix për kryerjen e migracionit të gjallë të makinave virtuale të nevojshme. Siç duket nga sistemi i monitorimit, makina virtuale është zhvendosur nga një host (i sipërm) në një tjetër (në të poshtme) dhe ka liruar kujtesën në hostin e sipërm (të shënuara me rreth të verdhë), duke e zënë atë përkatësisht në të poshtmen (të shënuara me rreth të bardhë).
Tani po përpiqemi të vlerësojmë më saktë efikasitetin e algoritmit aktual dhe po përpiqemi të gjejmë gabimet e mundshme në të.
Stage 3
Duket se mund të qetësohemi me këtë, të presim efikasitetin e provuar dhe të mbyllim temën.
Por na shtyjnë drejt një faze të re të mundësive të dukshme për optimizim
- Statistika, për shembull, dhe tregon se sistemet me dy dhe katër procesorë janë ndjeshëm më pak efikase se ato me një procesor. Pra, të gjithë përdoruesit marrin një kthim shumë më të ulët nga CPU, RAM, SSD, LAN, FC që janë blerë në sisteme multinocionale, krahasuar me ato me një procesor.
- Vetë planifikuesit e burimeve mund të punojnë me gabime të rënda, në lidhje me këtë temë.
- Teknologjitë e ofruara nga kompanitë Intel dhe AMD për monitorimin e RAM-it dhe cache-it lejojnë studimin e sjelljes së makinave virtuale dhe vendosjen e tyre në mënyrë që fqinjët "zhurmshëm" të mos pengojnë jetesën e makinave virtuale "të qeta".
- Zgjerimi i grupit të parametrave (rrjeti, ruajtja, prioriteti i makinës virtuale, kostoja e migrimit, gatishmëria për migrim).
Përveç kësaj
Rezultati i punës sonë për përmirësimin e algoritmeve të balancimit rezultoi në një konkluzion të qartë se përmes algoritmeve moderne mund të arrihet optimizim i konsiderueshëm i burimeve (25-30%) të centreve të të dhënave dhe njëkohësisht të rritet cilësia e shërbimeve për klientët.
Algoritmi i bazuar në rrjetet nervore, ashtu siç është, padyshim që është një zgjidhje interesante, por që ka nevojë për zhvillim të mëtejshëm dhe për shkak të kufizimeve ekzistuese nuk është i përshtatshëm për zgjidhjen e këtij lloji të detyrave në volumin tipik për re private. Megjithatë, në re publike të mëdha, algoritmi ka treguar rezultate të mira.
Më shumë në lidhje me mundësitë e procesorëve, planifikuesve dhe balancimit në nivele të larta do të tregojmë në artikujt e ardhshëm.
Burimi: habr.com
