Efektívna virtualizácia I.


  • Zdieľať na Google+

Operačná pamäť je dôležitý parameter virtuálneho servera. Štandardne sa objednáva konkrétna veľkosť podľa požiadaviek zákazníka. Nie každý vopred vie, koľko jej bude potrebovať. Pri objednaní zjavne dostatočného množstva môžu pri nárazových udalostiach nastať prvé problémy ako spomalenie, v horšom prípadne nefunkčnosť webu. Pri objednaní väčšej pamäte je na mieste otázka, prečo toľko platiť za niečo, čo väčšinu času nepoužívame. Ukážme si, aké máme iné možnosti a ponúknime riešenie.

Jednoduchá situácia. Máte web hostovaný na vlastnom virtuále a objednali ste si 256 MB RAM, čo vám na štandardnú prevádzku stačí a je to lacné. Raz za čas sa niečo deje a návštevníci bombardujú, sťahujú, refreshujú, pozerajú videá, kupujú posledné lístky, hľadajú super lacný parfém v e-shope…  Alebo pastnete na web aktuálny článok a chce si ho prečítať celá republika. Lacných 256 MB RAM je zrazu zahltených požiadavkami surferov. Operačnému systému neostáva nič iné, ako swapovať na disk. Horšie je to s ľuďmi, ktorí berú Váš web ako samozrejmosť. Začnú byť nervózni, načítavanie je pomalé alebo žiadne, databáza padá a najhoršie, všetci to poznáme, brzdí to biznis a nerobí práve dobré meno.

Poviete si, že toto sa už nesmie opakovať. Admin oznámi, že ak by sme vtedy mali 1400 MB RAM, všetko by fungovalo bez problémov. Ľahká matematika. 1400 – 256 = treba doobjednať k virtuálu niečo cez giga RAM. Celý výpadok trvá 2 hodiny a stane sa dvakrát do mesiaca. V ostatnom čase 256 MB bohate stačí. Pre pár extrémov platiť zbytočne veľkú RAM, keď ju väčšinu času nevyužijete? Alebo objednávať RAM navyše len na jeden deň? Na ktorý? Veštica nepomôže.

Týmto komplikáciám rozumieme. Radi by sme Vás odbremenili od rozhodovania sa, aká konfigurácia pamäte je tá správna. Pripravili sme nový virtuálny server, ktorý sa prispôsobuje potrebám aplikácií. Štandardne bude mať k dispozícií 256 RAM a v prípade, že zaznamenáme zvýšenú potrebu RAM, tak vám dynamicky a za behu pridáme presne toľko, koľko potrebujete. Samozrejme bez reštartovania a akéhokoľvek zastavenia virtuálneho servera. Okamžite, ako prestanete pridelenú RAM používať, odoberieme ju a budeme čakať ďalej, či ju niekto iný nebude potrebovať. Všetko automaticky a inteligentne riadené, bez zásahu administrátora. Jednoducho tak môžete zabrániť nedostupnosti webu v prípade, že ho surferi nečakane vyťažili, alebo sa poistíte pred neplánovanými udalosťami.

Nový virtuálny server sme pracovne nazvali Unlimited Virtual Server – používajte to, čo práve potrebujete, za jednotnú cenu. V najbližších dňoch poskytneme niekoľko takýchto virtuálov na testovanie zadarmo. Budete si môcť zaťažiť stroj s 256 MB RAM čímkoľvek, čo zaberie oveľa viac MB. Potom môžete sledovať ako sa postupne zväčšuje operačná pamäť.

Ako to funguje? Odkiaľ tú „ramku navyše“ zoberieme? Z analýzy dlhodobej prevádzky sme zistili, že na fyzickom stroji, kde beží viac virtuálov, je nevyužitej RAM dostatok. Zároveň existuje množstvo strojov, ktorým by sa z času na čas viac RAM veľmi hodilo. Prispôsobením virtualizačnej technológie pre takéto účely, inteligentným a spravodlivým prerozdeľovaním pamäte, môžeme obmedziť riziko nedostupnosti kvôli jej nedostatku.

Obdobné nápady sú dnes realizované viacmenej na akademickej pôde. Hlavné dôvody praktickej realizácie sú jednoduchšia a spoľahlivejšia prevádzka webu a maximálne úsporné využitie prostriedkov. V ďalšej fáze sa budeme venovať dynamickému prideľovaniu výpočtového času.

Matej Petrík
Matej Sokol


Tento projekt vznikol po tom, ako nás oslovili dvaja študenti informatiky so svojim zaujímavým nápadom, ktorý sa rozhodli technologicky priviesť do života. WebSupport iniciatívu šikovných ľudí vždy nadšene oceňuje  a víta, takže sme nadviazali spoluprácu.

Po poskytnutí úvodnej konzultácie sme zastrešovali a zastrešujeme projekt materiálne aj odborne. Chalani boli u nás usmerňovaní sériou konzultácií. A tak Vám v spolupráci s Matejom Petríkom a Matejom Sokolom môžeme priniesť túto službu na odskúšanie.

Projekt sa volá Rambler a spúšťame jeho testovanie u zákazníkov, ktorí o neho prejavia záujem. Pre zapojenie sa do testingu, stačí poslať mail na rambler@websupport.sk

Komentáre

  • Brown
    Odpovedať
    Autor
    Brown

    Znie to super, ale ak to spravne chapem, je to cele zatial iba v stadiu testovania. Ake su garancie, ze to bude naozaj fungovat aj pri ostrej prevadzke deiatok webov? Existuje nejaka statistika spolahlivosti?

    • NoName
      Odpovedať
      Autor
      NoName

      dane testovanie by prave malo podat informacie o danej spolahlivosti. bez testov sa ta statistika nevyprodukuje.

      v kazdom pripade, ak niekto nieco chce testovat, tak by sa nemal spoliehat nato, ze by mohol prist o data (podobne ako pri testovani gmail). treba si aj tak riesit zalohu. 😉

  • Zuzana Urbanova
    Odpovedať
    Autor
    Zuzana Urbanova

    mylim sa, alebo to o com pisete (loadbalancing), vie Xen uz cca 5 rokov?

    • Matej Petrik
      Odpovedať
      Autor
      Matej Petrik

      nie je to presne loadbalancing. spravnejsi pojem je skorej „dynamic memory balancig“ – s tym ze myslime na spravodlivost pridelenia RAM userom + dat iba to co treba – konkretne tento problem riesili tipci akademicky na MTU v Michigane minuly rok. Snazili sme sa ziskat od nich nejake infosky, kam to az dotiahli, zatial sa nam neozvali :(.

      • Zuzana Urbanova
        Odpovedať
        Autor
        Zuzana Urbanova

        vdaka za info:)

        este sa spytam, pre koho presne ma byt ta sluzba urcena? prevadzkovatelov jednoduchych webov? lebo pri prenajme povedzme komplexnej infrastruktury su polozky ako navysenie RAM o 1 GB uplne zanedbatelne.. (radovo niekolko eur/dolarov)

        • Matej Petrik
          Odpovedať
          Autor
          Matej Petrik

          pre vsetkych, ktori nevedia kolko RAM presne potrebuju – ako alternativa k existujucej ponuke virtualov od WS, hlavne ak clovek chce niekedy aj viac RAM, ale nechce mesacne za to platit zbytocne vela. Jedna sa hlavne o weby/aplikacie/cokolvek, kde je riziko narazov. Pri mesacnej platbe za RAM na virtual to nie je az take zanedbatelne (napr. 2 giga vs. 256 MB).

          Ide nam najma o to, aby sme udrzali server „up“ pristupnymi prostriedkami. Pracujeme aj na dalsich metodach, ale to az neskor :).

          Ak niekto vie ze potrebuje napr. 4 giga a vie ze to presne staci na bezchybnu prevadzku a bude to nonstop vyuzite, tak pre neho to nie je.

    • Jan Garaj – software developer+server admin = devil
      Odpovedať
      Autor
      Jan Garaj – software developer+server admin = devil

      XenServer vie Dynamic Memory Control ani nie pol roka – od verzie 5.6
      http://www.thegenerationv.com/2010/04/xenserver-56-preview-part-1-dynamic.html

  • Patrik Cevela
    Odpovedať
    Autor
    Patrik Cevela

    Taketo daco testujem na Hyper-V R2 SP1 clustri. Sprava sa to velmi elegantne a pekne to reaguje na poziadavky firemneho RDSka.

  • Tomas
    Odpovedať
    Autor
    Tomas

    Ako sa premietne toto riesenie na cene virtualneho servera?

    Nenastava v takomto pripade, ze v spicke je vyuzitie pamate (z pohladu fy. stroja) vyssie, ako mimo spicky – a teda mimo spicku je na stroji pravidelne nevyuzita pamat, ktoru „nik neplati“?

    Je riesenie urcene pre OS GNU/Linux, alebo sa da pouzit napr na *BSD, Unix, …?

    • Matej Petrik
      Odpovedať
      Autor
      Matej Petrik

      Cena bude stanovena po testovacej prevadzke. Spicka je rozna – kazdy virtual ma spicku inokedy, cize vyuzitie RAM fyzickym strojom je v rovnomerne – overene na spatnych datach o prevadzke virtualov. Ine jadro (BSD, Unix) nie je testovane, ale individualne to vieme riesit.

  • Erythros
    Odpovedať
    Autor
    Erythros

    Jak toto řešení hodláte účtovat? Pokud to chápu dobře, všechny servery budou začínat na nějaké základní hodnotě RAM a v případě, že nějaká aplikace (typicky Apache či databáze) bude potřebovat více, tak hostitelský systém poskytne virtuálnímu stroji určitý standardizovaný díl další operační paměti (protože neví, kolik jí ta aplikace bude potřebovat) s nějakým spožděním (asi když bude hranice využité paměti atakovat míru blízkou vyčerpání přidělené kvóty). A takto postupně to může jít do nekonečna, respektive do velice konečného bodu fyzicky dostupné paměti daného stroje. Předpokládám, že celá služba bude účtována zpětně na základě právě počtu a míry navýšení paměti, takže takový „cloud“ model?

    Také si moc nedokážu představit tento systém na jednotlivých strojích autonomně. Na jednom stroji. Jednotlivé virtuální servery sice můžou mít špičku návštěvnosti v různou dobu a tedy vyžadovat paměť v jiných časových úsecích, které se třeba nemusejí překrývat, ale rozhodně se na to nelze spolehnout. Může se stát, že aplikace budou potřebovat přidělit další paměť ve stejnou dobu a ona v tu chvíli jednoduše fyzicky dostupná nebude. Takže se nějak „spravedlivě“ rozdělí to, co dostupné. A zákazník má dost velký problém, jelikož už při objednávání toho produktu počítal s elasticitou a místo 512 MB si objednal 256 MB RAM – chtěl přece ušetřit. V konečném důsledku tedy stejně ten systém musí běžet v clusteru, kde je dostatek dostupné – i když vetšinou nevyužité – pmaěti právě pro tyto situace. Je ale pravda, že tato rezerva může být o něco nižší než kdyby měl každý virtuální server přímo přidělen svůj díl.

    Mohli byste tedy prochu rozepsat obchodní a technické řešení tohoto produktu? Děkuji.

    • Zuzana Urbanova
      Odpovedať
      Autor
      Zuzana Urbanova

      tu sa asi zhodneme na jednom, napad to nie je zly, ale pripada mi to ako lahko zneuzitelna sluzba pre spekulantov (bez urazky pre tvorcov riesenia).

    • Matej Petrik
      Odpovedať
      Autor
      Matej Petrik

      to erythros:
      dakujem za otazky.

      uctovanie – rozmysalme o roznych modeloch (pausal, doplnujuca volba k existujucim virtualom, spotrebovana ram)

      sposob pridavania ram – pridavame/odoberame tolko, aby aktualne vyuzitie RAM k celkovej ram bolo co najvyssie ale stale optimalne (bez swapovania).

      pridanie neexistujecej ram – toto sa nestane bez ohladu na virt. technologiu (otestovane)

      spravodlivost – kazdy dostava ram, tak aby to bolo voci vsetkym vps na fyzickom stroji spravodlive.

      k obchodnemu a technickemu rieseniu: obchodne sa to este vykrystalizuje, bude zavisiet od prebiehajuceho testovania zo zakaznikmi – ako je spomenute k utctovaniu. technicke riesenie nie je potrebne zverejnovat, dolezite pre zakaznika je, ze jeho VPS je monitorovana z hladiska pouzita ram.

      to Zuzana:
      dakujem. na spekulantov, zaskodnikov a hocijaky sposob nespravodlivosti sme mysleli. V akomkolvek (aj ked vsetci budu v spicke a ziadat naraz vela RAM) case garantujeme, ze to co zakaznikovi pridame je spravodlivo prepocitane voci dotknutym VPS a voci nemu.

      kazdopadne dakujeme za otazky 🙂

      • NoName
        Odpovedať
        Autor
        NoName

        uctovanie:
        – jedna z moznosti je vytvorit sluzbu virtualny server/workstation s dynamickou pamatou. tento server ma dajme tomu implicitne nastavene 512 RAM a jednojadrovy procesor. ak je meratelny cas, pocas ktoreho klient vyuziva viacej pamate ako je implicitne dane, tak sa mu moze tento cas merat nejakou casovou tarifikacnou jednotkou. a klient moze zaplatit len za ten cas, kedy tu rozsirenu pamat v ramci potreby vyuzil.
        – druha moznost je taka, ze uzivatel neplati za rozsirenu pamat, ale ma pausal pri ktorom vyuziva pamat od 512MB az do (napr.) 2GB RAM pomocou Fair Use Policy pravidiel. klient sice nema garantovane, ze bude mat v case spicky virtualnych serverov svoju pamat, ale mozno by to splnalo ucel podobne ako je to pri internetoch, ktore su sice (napr.) aj 100Mbps, ale neznamena to „100 megabitova linka“, ale znamena to „linka do 100 megabit“. v takom pripade bude na firme ako si poriesi rozlozenie virtualnych serverov a ich potrieb na roznych serveroch. pokial je jedno datacentrum, tak tam sa stabilita dynamickej pamate zvysuje rovnako ako rastie pamat daneho datacentra (servera, clustra, ci gridu).

        v kazdom pripade dynamicke pridelovanie pamate virtualnym masinam je jedna z najpodstatnejsich veci pri cloud computingu, ktoru treba mat v merku (:)

  • Marek Lompart
    Odpovedať
    Autor
    Marek Lompart

    Hmm ja mám u vás 2 GB RAM … APACHE si berie koľko sa mu ráči čiže aj 1,4 GB bez toho aby bol niekto na weboch. Čiže neviem či táto technológia obmedzuje aj APACHE lebo pre weby by mi stačilo aj 1 GB RAM.
    Každopádne ak by sa dalo určite by som túto službu využil.

    • Matej Petrik
      Odpovedať
      Autor
      Matej Petrik

      zdravim,

      troska bokom. 1,4 giga na apache je velmi vela, bez navstevy – mozno je s tym nejaky problem. Kazdopadne ak viete ze potrebujete 1,4 giga vzdy tak si to nutne objednajte. Tymto budeme rozmyslat, ci ramblera budeme do buducna nastavovat pre rozne hranice garantovanej RAM – kazdemu vyhovuje daco ine. Rambler s garantovanymi 256 MB RAM nie je o tom objednat si ho a dufat, ze vam nonstop poskytne 1,4 giga. V buducnosti sak predpokladame, ze si objednate 1,4 giga a rambler Vam bude vediet poskytnut viac.

    • NoName
      Odpovedať
      Autor
      NoName

      no to znie zaujimavo toto vase tvrdenie, ako vam virtualny server s apachom beru 1,4GB RAM bez trafiku, ci poziadavok nejakych navstevnikov. pocitam s tym, ze tam bude pravdepodobne nejaky premrsteny OS. Neviem co pouzivate, ale podla tej zozratej ramky (co je vela aj na W7 s Apachom) tam mate asi Win, ci Linux typu Red Hat, ci SuSE, alebo iny server OS, na ktorom bezi prilis vela nevyuzitych procesov, alebo nieco o com neviete.

      alebo nejaky tucny web so schopnostou samozamstnavania sa? :P)