2012. június 30., szombat

"oVirt or no virt"

Megint melóval kapcsolatos pár gondolatot szeretnék megosztani magammal, nyugodtan hagyjátok figyelmen kívül. Szóval pár dolog, ami az oVirt-ben nagyon szeretném ha fejlődne, de sajna nem fejlődik akármennyit is túlórázok. Ugyanis teljesen mással vagyok elfoglalva, pl újabban python-ban programozok, legalábbis imitálom, a kedvem viszont rohamosan fogy.

VM ütemező

Ha van egy adatközpontod -és ne valami CERN-Google-fakebook mega-vastelepre kell gondolni, hanem akár a sufniba bevágott 6-8 leselejtezett asztali gépből összefabrikált teszt clusterre- amin elfut 20-30 különböző virtuális gép. Szóval már a 20-30 gépnek is kimérni hogy melyik gépen fusson, hogy ne pont egyszerre kezdjék agyonhajtani az egyik vincsit, a hálózatot, satöbbi... ez túl sok meló. Az oVirtben ezeket a dolgokat, hogy CPU-pinning, hosthoz kötés, ezek enterprise virtualizáció néven oké (gondolom az enterprise az ökörséget jelenti). De akár már néhány VM-en is kikisérletezgetni az optimális konfigot, nekem se lenne hozzá kedvem. Ez had legyen a droidok sportja.
Az oVirt VM-ütemezője viszont a memória pillanatnyi kihasználtságán kívül kb mindent figyelmen kívül hagy. Egy ütemezőnek figyelembe kellene vennie:
  • a memóriát természetesen
  • CPU kihasználtság
  • merevlemez használat
  • hálózat használat
  • ÉS nem csak az éppen aktuálisat, hanem az azon a gépen futó VM-ek tipikus terhelését. Például van éjfélkor elindul pár job az egyik VM-en ami generál némi aktivítást, vajon odafér-e mellé még egy másik gép által generált aktivítás is?
Persze nem mondom, király, hogy ki tudod jelölni,hogy melyik gépen fusson a szervered. De mennyivel jobb, ha nem kell vele foglalkoznod. Én már akkor a lehetőségről is lemondanék. Miért akarnék én magam migrálgatni VM-eket egyik dobozról a másikra?

Power save

A másik dolog, amivel nehezen tudok megbarátkozni, hogy az oVirt soha nem kapcsolja ki a hostokat. Ott van minden power management-tel kapcsolatos info, és nem. A használatlan hostokat milyen király lenne egyszerűen kikapcsolni. Kevesebb zaj, nyáron az se rossz ha kevesebbet fűtünk, barátibb villanyszámla, meg addig a csapágy se kopik :-)
Ja és persze kiragaszthatod magadra, hogy zöld vagy mint egy mozgalom és egylet.
Majd ha kell a host, akkor bekapcsolhatjuk automatikusan.

Valamint ha egyszer tényleg kikapcsolná a hostokat az oVirt, akkor nagyon királynak tartanám ha nem csak a szokásos IPMI, DRAC, stb interfaceket használnánk, hanem a primitív wake-on-lant is akár. Wake-on-lan a világon mindenben van, amiben van ethernet csatlakozó. Sajnos amennyivel többe kerül egy IPMI-os interface-szel szállított echte Dell szerver, na annyit nem takarítassz meg a villanyszámlán egyhamar.

VM pool

A VM pool szerintem félbehagyott feature. Pedig király lenne. A VM pool jelenleg ezt csinálja: egy template-ből csinál neked annyi VM-et amennyit akarsz, és nyilvántartja, hogy azok a pool-ba tartoznak. A pool létrejöttekor illetve módosításakor létrehozza a konkrét VM-eket. 
  • Olyan API hivás sincs, hogy "adjál egy VM-et abból a pool-ból"
  • A stabil méret helyett szerintem a maximum és minimum érdkesebb lenne.
  • Olyanok is inkább érdekelnének, hogy az oVirt automatikusan elindítson a pool-ból új VM-eket bizonyos kritériumok esetében. Pl ha minden gép legalább 50 % CPU terhelést kap, stb.
  • Ha azt mondom pool, akkor olyan dolgok halmazára gondolsz, amik közül mindegy, hogy melyiket kapod meg, mind ugyanazt tudja. Szóval szerintem egy olyan pool esetleg hasznosabb lenne, ami nem hozza előre létre a VM-eket, hanem a template-ből bármikor csinálhat egy újat. Mi a fenének foglalják a helyet addig?

VM Set

Ilyesmi nincs az oVirt-ben, szóval ez egy feature request lenne. Nagyon gyakran van olyan, hogy egy project fejlesztői környezetéhez létrehozol hálózatot, X darab virtuális gépet, amik különböző komponenseket futtatnak a rendszerből. Pl valami load ballancer, X db servlet container vagy app szerver, egy adatbázis szerver, vagy esetleg egy fél tucat NoSQL. Szóval azért lenne őket értelme egyben tartani, mert olyan dolgokat lehetne csinálni velük, mint klónozás, hogy a dev környezet szenvedést ne kelljen megismételni N alkalommal. Vagy akár együtt az egészet learchiválnád és lekapcsolnád, amikor a project végetér. Abban is segítene, hogy a set gépei pl elsősorban egymással kommunikálnak, szóval érdemes lehet őket ennek megfelelően pakolni hostokra.


... és így tovább, még van jónéhány ötletem, csak most mingyá hajnalodik.