I Vi har omtalt forsÞket pÄ Ä bruke Watcher og presentert testrapporten. Slike tester gjennomfÞrer vi periodisk for Ä balansere og for andre kritiske funksjoner i store bedrifts- eller operatÞrskyer.
Den hÞye kompleksiteten i oppgaven kan kreve flere artikler for Ä beskrive prosjektet vÄrt. I dag publiserer vi den andre artikkelen i serien, som omhandler balansering av virtuelle maskiner i skyen.
Litt terminologi
VmWare har introdusert verktĂžyet DRS (Distributed Resource Scheduler) for belastningsbalansering i miljĂžet deres for virtualisering.
Som det stÄr skrevet
«VMware DRS (Distributed Resource Scheduler) er et verktÞy som balanserer beregningsbelastninger med tilgjengelige ressurser i et virtuelt miljÞ. VerktÞyet er en del av virtualiseringspakken kalt VMware Infrastructure.
Med VMware DRS kan brukerne definere regler for fordeling av fysiske ressurser mellom virtuelle maskiner (VM). VerktÞyet kan konfigureres for manuell eller automatisk styring. VMware-resurspuljer kan enkelt legges til, fjernes eller reorganiseres. Ved behov kan ressurspuljer isoleres mellom ulike forretningsenheter. Hvis arbeidsbelastningen pÄ en eller flere virtuelle maskiner endres drastisk, fordeler VMware DRS de virtuelle maskinene mellom de fysiske serverne. Hvis den samlede arbeidsbelastningen avtar, kan noen fysiske servere midlertidig slÄs av, og arbeidsbelastningen konsolideres.
Hvorfor er balansering nĂždvendig?
Vi mener at DRS er en obligatorisk funksjon i skyen, selv om det ikke betyr at DRS mÄ brukes alltid og overalt. Avhengig av formÄlet og behovene til skyen kan det vÊre forskjellige krav til DRS og metodene for balansering. Det kan ogsÄ finnes situasjoner der balansering ikke er nÞdvendig i det hele tatt. Eller til og med kan vÊre skadelig.
For Ä bedre forstÄ hvor og for hvilke kunder DRS er nÞdvendig, la oss vurdere deres mÄl og oppgaver. Skyr kan deles inn i offentlige og private. Her er hovedforskjellene mellom disse skyene og kundenes mÄl.
Private skyer / Store bedriftskunder
Offentlige skyer / SmÄ og mellomstore bedrifter, enkeltpersoner
Hovedkriteriet og mÄlsetningen til operatÞren
Tilby pÄlitelig tjeneste eller produkt
Reduksjon av kostnadene for tjenester i konkurransen pÄ markedet
Krav til tjenesten
PÄlitelighet pÄ alle nivÄer og i alle systemkomponenter
Garanti for ytelse
Prioritering av virtuelle maskiner i flere kategorierÂ
Informasjons- og fysisk datasikkerhet
SLA og dÞgnÄpen stÞtte
Maksimal enkelhet i Ä fÄ tilgang til tjenesten
Relativt enkle tjenester
Ansvar for data ligger hos kunden
Prioritering av VM er ikke nĂždvendig
Informasjonssikkerhet pÄ nivÄ med typiske tjenester, ansvar ligger hos kunden
Det kan oppstÄ avbrudd
Ingen SLA, kvaliteten er ikke garantert
StĂžtte via e-post
Sikkerhetskopiering er ikke obligatorisk
Kundeegenskaper
Et svĂŠrt bredt spekter av applikasjoner.
Legacy-applikasjoner, arvet fra selskapet.
Komplekse tilpassede arkitekturer for hver kunde.
Affinitet regler.
Programvare opererer uten stopp i 7x24-modus.Â
SikkerhetskopieringsverktĂžy "i sanntid."
Forutsigbar syklisk belastning fra kunden.
Typiske applikasjoner â nettverksbalansering, Apache, WEB, VPN, SQL
Applikasjonen kan stoppes for en kort periode
Vil tillate vilkÄrlig distribusjon av VM i skyen
Sikkerhetskopiering utfĂžrt av kunden
Forutsigbar statistisk gjennomsnittlig belastning ved mange kunder.
Konsekvenser for arkitekturen
Geokluster
Sentralisert eller distribuert lagringssystem
Reserverbar lagringskontroller
Lokal datalagring pÄ databehandlingsnoder
MÄl med balanselegging
Jevn fordeling av belastning
Maksimal responsivitet for applikasjonerÂ
Minimalt ventetid ved balanselegging
Balansering kun ved Äpenbar nÞdvendighet
Ta deler av utstyret ut for vedlikehold
Reduksjon av kostnadene for tjenesten og operatĂžrens utgifterÂ
Frakobling av deler av ressursene ved lav belastning
Energibesparelse
Reduksjon av personalkostnader
Vi trekker fĂžlgende konklusjoner:
For private skyer, levert til store bedriftskunder, kan DRS brukes med hensyn til begrensninger:
- informasjonssikkerhet og hensyn til affinitetsregler ved balanselegging;
- tilgjengelighet av tilstrekkelig ressurser i reserve ved ulykker;
- data fra virtuelle maskiner ligger pÄ sentraliserte eller distribuerte lagringssystemer;
- skjelettene av administrasjonsprosedyrer, sikkerhetskopiering og lastbalansering;
- lastbalansering kun innenfor klientens samling av verter;
- lastbalansering kun ved stor ubalanse, de mest effektive og trygge migrasjonene av virtuelle maskiner (fordi migreringen kan mislykkes);
- lastbalansering relatert til «rolige» virtuelle maskiner (migrering av «stÞyende» virtuelle maskiner kan ta lang tid);
- lastbalansering med hensyn til «kostnad» â belastning pĂ„ spesialiserte lagringssystemer og nettverk (ved tilpassede arkitekturer for store kunder);
- lastbalansering med hensyn til de individuelle atferdsmĂžnstrene til hver virtuell maskin;
- lastbalansering helst i ikke-arbeidstid (natt, helger, hĂžytider).
For offentlige skyer, som tilbyr tjenester til smÄ kunder, kan DRS brukes mye oftere, med utvidede funksjoner:
- ingen begrensninger for informasjonssikkerhet og affinitetsregler;
- lastbalansering innenfor skyen;
- lastbalansering til enhver rimelig tid;
- lastbalansering av enhver virtuell maskin;
- lastbalansering av «stÞyende» virtuelle maskiner (for Ä unngÄ Ä forstyrre de andre);
- data fra virtuelle maskiner ligger ofte pÄ lokale disker;
- hÄndtering av gjennomsnittlig ytelse av spesialiserte lagringssystemer og nettverk (arkitekturen av skyen er enhetlig);
- lastbalansering etter generelle regler og eksisterende statistikk for oppfĂžrselen i datasenteret.
Problemens kompleksitet
Kompleksiteten ved lastbalansering er at DRS mÄ hÄndtere et stort antall usikre faktorer:
- oppfĂžrselen til brukerne av hvert av kundens informasjonssystemer;
- algoritmer for drift av servere i informasjonssystemer;
- oppfĂžrselen til databasen sine servere;
- belastning pÄ beregningsressurser, lagringssystemer, nettverk;
- samspillet mellom serverne i kampen om ressursene i skyen.
Belastningen fra mange virtuelle applikasjons- og databaseservere pÄ skyressursene skjer over tid, og konsekvensene kan manifestere seg og overlappe hverandre med uforutsigbare effekter over uforutsigbar tid. Selv for Ä hÄndtere relativt enkle prosesser (for eksempel Ä kontrollere en motor, et vannoppvarmingssystem i et hus) mÄ automatiserte reguleringssystemer bruke kompliserte algoritmer med tilbakemelding.

Oppdraget vÄrt er betydelig mer komplisert, og det finnes en risiko for at systemet ikke vil kunne balansere lasten til etablerte verdier innen rimelig tid, selv om det ikke oppstÄr eksterne pÄvirkninger fra brukere.

Historien om vÄre utviklinger
For Ä lÞse dette problemet bestemte vi oss for Ä ikke starte fra bunnen av, men heller bygge videre pÄ eksisterende erfaringer, og begynte Ä samarbeide med spesialister som hadde erfaring pÄ dette omrÄdet. Heldigvis var vÄr forstÄelse av problematikken helt pÄ linje.
Trinn 1
Vi brukte et system basert pÄ nevralnettverksteknologi, og prÞvde pÄ den mÄten Ä optimalisere ressursene vÄre.
Interessen ved dette stadiet besto i Ä teste ut en ny teknologi, mens viktigheten lÄ i Ä anvende en utradisjonell tilnÊrming til problemlÞsning, der standardmetoder knapt hadde nÄdd sitt metningspunkt under ellers like forhold.
Vi lanserte systemet, og vi begynte faktisk Ä oppnÄ balanse. StÞrrelsen pÄ skyen vÄr gjorde at vi ikke fikk optimale resultater som utviklerne hadde meldt, men det var tydelig at balansen fungerte.
Samtidig hadde vi betydelige begrensninger:
- For Ä trene nevralnettverket er det nÞdvendig at virtuelle maskiner fungerer uten vesentlige endringer i flere uker eller mÄneder.
- Algoritmen er utviklet for optimalisering basert pÄ analysen av tidligere "historiske" data.
- For Ă„ trene nevralnettverket kreves det en betydelig mengde data og beregningsressurser.
- Optimalisering og balanse kan gjĂžres relativt sjelden â hver few timer, noe som er Ă„penbart utilstrekkelig.
Trinn 2
Ettersom vi ikke var fornĂžyd med situasjonen, bestemte vi oss for Ă„ modifisere systemet, og for dette mĂ„tte vi svare pĂ„ det viktigste spĂžrsmĂ„let â hvem lager vi det for?
FĂžrst og fremst â for bedriftskunder. Det betyr at vi trenger et system som fungerer raskt, med de bedriftsmessige begrensningene som bare forenkler implementeringen.
Det andre spĂžrsmĂ„let â hva menes med ordet «raskt»? Etter korte debatter bestemte vi oss for at vi kunne forholde oss til en responstid pĂ„ 5 â 10 minutter, slik at kortvarige topper ikke ville fĂžre systemet inn i resonans.
Det tredje spĂžrsmĂ„let â hvilken stĂžrrelse pĂ„ antall servere skal balanseres?
Dette problemet lĂžste seg selv. Som regel gjĂžr ikke kunder serveraggregater veldig store, og det er i samsvar med anbefalingene i artikkelen om Ă„ begrense aggregatene til 30-40 servere.
I tillegg forenkler vi oppgaven for balansealgoritmen ved Ă„ segmentere serverpoolen.
Det fjerde spĂžrsmĂ„let â hvor godt passer et nevralt nettverk med sin lange lĂŠringsprosess og sjeldne balanseringer for oss? Vi har besluttet Ă„ gĂ„ bort fra det til fordel for enklere operative algoritmer, slik at vi kan fĂ„ resultater pĂ„ sekunder.

Du kan finne beskrivelsen av systemet som bruker slike algoritmer og dets ulemper
Vi har implementert og lansert dette systemet og fĂ„tt lovende resultater â nĂ„ analyserer det regelmessig belastningen i skyen og gir anbefalinger om Ă„ flytte virtuelle maskiner, som i stor grad er korrekte. Selv nĂ„ er det synlig at vi kan oppnĂ„ 10-15% frigjĂžring av ressurser for nye virtuelle maskiner med forbedring av kvaliteten pĂ„ de eksisterende.
Ved oppdagelse av ubalanse i RAM eller CPU gir systemet kommandoer til Tionix-planleggeren om Ä utfÞre levende migrasjon av nÞdvendige virtuelle maskiner. Som det fremgÄr av overvÄkningssystemet, flyttet den virtuelle maskinen fra en (Þvre) vert til en annen (nedre) vert og frigjorde minne pÄ den Þvre verten (markert med gule sirkler), og okkuperte det tilsvarende pÄ den nedre (markert med hvite sirkler).
Akkurat nÄ prÞver vi Ä vurdere effektiviteten til den gjeldende algoritmen mer nÞyaktig og leter etter mulige feil.
Trinn 3
Man skulle tro at vi kunne roe oss ned, vente pÄ bevist effektivitet og avslutte emnet.
Men vi blir drevet til Ä gjennomfÞre et nytt trinn av fÞlgende Äpenbare optimaliseringsmuligheter
- Statistikken, for eksempel, og viser at to- og fireprosessor-systemer er betydelig dÄrligere enn enkeltprosessor-systemer i ytelse. Dette betyr at alle brukere fÄr betydelig lavere avkastning fra CPU, RAM, SSD, LAN, FC i kjÞpte multiprosessorsystemer sammenlignet med enkeltprosessor-systemer.
- Selve ressursplanleggerne kan operere med alvorlige feil, om dette emnet.
- Teknologiane som tilbys av Intel og AMD for overvÄking av RAM og cache gjÞr det mulig Ä studere atferden til virtuelle maskiner og plassere dem slik at «brÄkete» naboer ikke forstyrrer de «rolige» virtuelle maskinene.
- Utvidelse av parametrene (nettverk, lagringssystem, prioritet for virtuell maskin, kostnad ved migrering, samt klarhet for migrering).
Totalt
Resultatet av vÄrt arbeid med Ä forbedre balanseringsalgoritmene har fÞrt til en tydelig konklusjon om at moderne algoritmer kan oppnÄ betydelig optimalisering av ressurser (25-30%) i datasentre, samtidig som kvaliteten pÄ kundeservicen forbedres.
Algoritmen basert pÄ nevrale nettverk er uten tvil interessant, men nÞdvendig med videre utvikling, og pÄ grunn av eksisterende begrensninger er den ikke passende for denne typen oppgaver pÄ volum som er karakteristisk for private skyer. Imidlertid har algoritmen vist gode resultater i offentlige skyer av betydelig stÞrrelse.
Mer informasjon om prosessorer, planleggere og hÞy-nivÄ balansering vil bli delt i de fÞlgende artiklene.
Kilde: habr.com
