В posledný článok hovorili sme o našich pokusoch používať Watcher a poskytli sme testovaciu správu. Takéto testy pravidelne vykonávame na vyváženie a iné kritické funkcie veľkého podniku alebo operátorského cloudu.
Vysoká zložitosť riešeného problému môže vyžadovať niekoľko článkov na popis nášho projektu. Dnes uverejňujeme druhý článok zo série venovaný balansovaniu virtuálnych strojov v cloude.
Nejaká terminológia
Spoločnosť VmWare predstavila utilitu DRS (Distributed Resource Scheduler) na vyváženie zaťaženia virtualizačného prostredia, ktoré vyvinuli a ponúkali.
Ako píše searchvmware.techtarget.com/definition/VMware-DRS „VMware DRS (Distributed Resource Scheduler) je nástroj, ktorý vyrovnáva výpočtovú záťaž s dostupnými zdrojmi vo virtuálnom prostredí. Nástroj je súčasťou virtualizačného balíka s názvom VMware Infrastructure.
Pomocou VMware DRS používatelia definujú pravidlá pre distribúciu fyzických zdrojov medzi virtuálne stroje (VM). Nástroj je možné nakonfigurovať na manuálne alebo automatické ovládanie. Fondy zdrojov VMware možno jednoducho pridávať, odstraňovať alebo reorganizovať. V prípade potreby možno fondy zdrojov izolovať medzi rôznymi obchodnými jednotkami. Ak sa pracovná záťaž na jednom alebo viacerých virtuálnych strojoch dramaticky zmení, VMware DRS prerozdelí virtuálne stroje medzi fyzické servery. Ak sa celková pracovná záťaž zníži, niektoré fyzické servery môžu byť dočasne prepnuté do režimu offline a pracovné zaťaženie sa skonsoliduje."
Prečo je potrebná rovnováha?
Podľa nášho názoru je DRS nevyhnutnou cloudovou funkciou, aj keď to neznamená, že DRS sa musí používať vždy a všade. V závislosti od účelu a potrieb cloudu môžu existovať rôzne požiadavky na DRS a metódy vyvažovania. Môžu nastať situácie, keď balansovanie vôbec nie je potrebné. Alebo dokonca škodlivé.
Aby sme lepšie porozumeli tomu, kde a pre ktorých klientov je DRS potrebná, zvážme ich ciele a zámery. Cloudy možno rozdeliť na verejné a súkromné. Tu sú hlavné rozdiely medzi týmito cloudmi a cieľmi zákazníkov.
Privátne cloudy / klienti pre veľkých podnikov
Verejné cloudy / Stredné a malé firmy, ľudia
Hlavné kritérium a ciele prevádzkovateľa
Poskytovanie spoľahlivej služby alebo produktu
Znižovanie nákladov na služby v boji na konkurenčnom trhu
Požiadavky na služby
Spoľahlivosť na všetkých úrovniach a vo všetkých systémových prvkoch
Zaručený výkon
Uprednostnite virtuálne stroje do niekoľkých kategórií
Bezpečnosť informácií a fyzických údajov
SLA a XNUMX/XNUMX podpora
Maximálna jednoduchosť prijímania služby
Relatívne jednoduché služby
Zodpovednosť za údaje nesie klient
Nevyžaduje sa žiadne uprednostňovanie virtuálnych počítačov
Informačná bezpečnosť na úrovni štandardných služieb, zodpovednosť na klientovi
Môžu sa vyskytnúť poruchy
Žiadna SLA, kvalita nie je zaručená
E-mailová podpora
Zálohovanie nie je potrebné
Vlastnosti klienta
Veľmi široká škála aplikácií.
Staršie aplikácie zdedené v spoločnosti.
Komplexné vlastné architektúry pre každého klienta.
vzájomná interakcia serverov v boji o cloudové zdroje.
K zaťaženiu veľkého množstva virtuálnych aplikačných serverov a databáz na cloudových zdrojoch dochádza v priebehu času, dôsledky sa môžu prejaviť a vzájomne sa prekrývať s nepredvídateľným efektom v nepredvídateľnom čase. Dokonca aj na riadenie relatívne jednoduchých procesov (napríklad na riadenie motora, systému ohrevu vody v domácnostiach) musia automatické riadiace systémy používať zložité proporcionálne-integrálne-diferenciačné algoritmy so spätnou väzbou.
Naša úloha je o mnoho rádov zložitejšia a existuje riziko, že systém nebude schopný v primeranom čase vyrovnať záťaž na stanovené hodnoty, a to aj bez vonkajších vplyvov používateľov.
História nášho vývoja
Aby sme tento problém vyriešili, rozhodli sme sa nezačínať od nuly, ale stavať na existujúcich skúsenostiach a začali sme komunikovať so špecialistami so skúsenosťami v tejto oblasti. Našťastie sa naše chápanie problému úplne zhodovalo.
Krok 1
Použili sme systém založený na technológii neurónových sietí a snažili sme sa na jeho základe optimalizovať naše zdroje.
Záujmom tejto etapy bolo testovanie novej technológie a jej dôležitosť spočívala v aplikovaní neštandardného prístupu k riešeniu problému, kde sa za ostatných okolností štandardné prístupy prakticky vyčerpali.
Spustili sme systém a skutočne sme začali bilancovať. Rozsah nášho cloudu nám neumožnil získať optimistické výsledky, ktoré uviedli vývojári, ale bolo jasné, že vyvažovanie funguje.
Zároveň sme mali dosť vážne obmedzenia:
Na trénovanie neurónovej siete musia virtuálne stroje bežať bez výrazných zmien niekoľko týždňov alebo mesiacov.
Algoritmus je navrhnutý pre optimalizáciu založenú na analýze skorších „historických“ údajov.
Trénovanie neurónovej siete vyžaduje pomerne veľké množstvo dát a výpočtových zdrojov.
Optimalizáciu a vyváženie je možné vykonať pomerne zriedkavo – raz za niekoľko hodín, čo zjavne nestačí.
Krok 2
Keďže sme neboli spokojní so stavom veci, rozhodli sme sa systém upraviť a k tomu odpovedať hlavná otázka – pre koho to robíme?
Prvý - pre firemných klientov. To znamená, že potrebujeme systém, ktorý funguje rýchlo, s tými podnikovými obmedzeniami, ktoré len zjednodušujú implementáciu.
Druhá otázka – čo myslíš pod slovom „okamžite“? Na základe krátkej debaty sme sa rozhodli, že by sme mohli začať s dobou odozvy 5–10 minút, aby krátkodobé rázy neuviedli systém do rezonancie.
Tretia otázka – akú veľkosť vyváženého počtu serverov zvoliť?
Tento problém sa vyriešil sám. Klienti zvyčajne nerobia veľké agregácie serverov, čo je v súlade s odporúčaniami v článku obmedziť agregácie na 30 až 40 serverov.
Okrem toho segmentovaním serverového fondu zjednodušujeme úlohu vyrovnávacieho algoritmu.
Štvrtá otázka – ako vhodná je pre nás neurónová sieť s jej dlhým procesom učenia a vzácnym balansovaním? Rozhodli sme sa ho opustiť v prospech jednoduchších operačných algoritmov, aby sme dosiahli výsledky v priebehu niekoľkých sekúnd.
Je možné nájsť popis systému, ktorý používa takéto algoritmy a jeho nevýhody tu
Tento systém sme implementovali a spustili a dosiahli sme povzbudivé výsledky – teraz pravidelne analyzuje zaťaženie cloudu a dáva odporúčania na presun virtuálnych strojov, ktoré sú z veľkej časti správne. Už teraz je jasné, že môžeme dosiahnuť 10-15% uvoľnenie zdrojov pre nové virtuálne stroje a zároveň zlepšiť kvalitu práce tých existujúcich.
Keď sa zistí nerovnováha v RAM alebo CPU, systém vydá príkazy plánovaču Tionix, aby vykonal živú migráciu požadovaných virtuálnych strojov. Ako je zrejmé z monitorovacieho systému, virtuálny stroj sa presunul z jedného (horného) na druhého (dolného) hostiteľa a uvoľnil pamäť na hornom hostiteľovi (zvýraznený žltými krúžkami), respektíve obsadil ho na spodnom hostiteľovi (zvýraznený bielou farbou). kruhy).
Teraz sa snažíme presnejšie posúdiť efektivitu súčasného algoritmu a snažíme sa v ňom nájsť možné chyby.
Krok 3
Zdá sa, že sa na to dá upokojiť, počkať na preukázanú účinnosť a uzavrieť tému.
K uskutočneniu novej etapy nás však tlačia nasledujúce zrejmé možnosti optimalizácie
Štatistiky napr. tu и tu ukazuje, že dvoj- a štvorprocesorové systémy majú výrazne nižší výkon ako jednoprocesorové systémy. To znamená, že všetci používatelia dostávajú podstatne menej výstupu z CPU, RAM, SSD, LAN, FC zakúpených vo viacprocesorových systémoch v porovnaní s jednoprocesorovými systémami.
Technológie ponúkané spoločnosťami Intel a AMD na monitorovanie RAM a vyrovnávacej pamäte umožňujú študovať správanie virtuálnych strojov a umiestniť ich tak, aby „hluční“ susedia nezasahovali do „tichých“ virtuálnych strojov.
Rozšírenie množiny parametrov (sieť, úložný systém, priorita virtuálneho stroja, náklady na migráciu, jeho pripravenosť na migráciu).
Celkom
Výsledkom našej práce na zdokonaľovaní balančných algoritmov bol jednoznačný záver, že pomocou moderných algoritmov je možné dosiahnuť výraznú optimalizáciu zdrojov dátového centra (25-30%) a zároveň zlepšiť kvalitu zákazníckeho servisu.
Algoritmus založený na neurónových sieťach je určite zaujímavým riešením, ktoré si však vyžaduje ďalší vývoj a vzhľadom na existujúce obmedzenia nie je vhodný na riešenie tohto druhu problémov na objemoch typických pre privátne cloudy. Algoritmus zároveň ukázal dobré výsledky vo verejných oblakoch významnej veľkosti.
Viac o možnostiach procesorov, plánovačov a vyvažovaní na vysokej úrovni vám povieme v nasledujúcich článkoch.