[vmchecker-dev] [USO/RL][RSoC2010] Integrare USO/RL în vmchecker (and more)

Lucian Adrian Grijincu lucian.grijincu at gmail.com
Tue May 18 18:36:17 EEST 2010


2010/5/17 Calin Iorgulescu <calin.iorgulescu at gmail.com>:
> Ca primă idee mă gândeam ca studenții să aibă posibilitatea să urce prin
> vmchecker MD5-ul arhivei cu mașina virtuală pe care a fost rezolvată tema,
> arhiva urmând să fie urcată pe un server ales de noi ulterior. Astfel pe git
> să fie puse doar fișierele MD5, nu întregile arhive.


Nu văd nicio valoare în MD5.
Pot să pună un document cu calea către mașina virtuală corespunzătoare.


> În momentul în care
> arhiva este urcată, studentul să aibă posibilitatea de a lansa spre
> evaluarea acea mașină, alegând-o dintr-o listă de fișiere din home-ul său de
> pe server (credtis to VladD for the ideea).

Mai greu de implementat partea asta: trebuie modificată interfața web
și făcut ceva special-purpose pentru vmchecker-uso.


> Pentru a evita abuzurile, mă
> gândesc fiecare student să aibă o limită de 3 submit-uri, după care pentru
> alte submit-uri să contacteze echipa.

Dacă prin submituri te referi la uploadul de fișiere prin interfața
web, chestia asta se poate face foarte ușor în vmchecker.
Dacă te referi la limitarea de urcări de mașini virtuale, aici nu știu
cât de ușor e.


Pe mașina de storage, studenții se autentifică prin LDAP (în loc de
/etc/passwd + /etc/shaddow). Fiecare are un $HOME și o cotă.
Drepturile sunt 0700 ca să nu se copieze.

După ce studentul suie fișierul cu calea către mașina virtuală, se
pornește procesul normal: testerul și ce a suit studentul e trimis pe
mașina de testare.
Queue-managerul de pe mașina virtuală primește submisia și pornește un
commander dependent de temă -- în cazul ăsta commanderul de USO.



> Pentru evaluarea arhivei ar trebui ca aceasta să fie copiată de pe
> storage-ul ales, despachetată și apoi înscrisă în VMWare Server, rulată, și
> apoi făcută unregister. Aici ar fi util de știut exact cât de mult ar trebui
> modificat vmchecker pentru a putea funcționa și pe alte mașini virtuale, nu
> doar pe cea "stas".

Commanderul copiază tema de unde a scris-o studentul și pornește
testarea -- asta poate fi o problemă: copierea unei mașini de 2GB va
dura măcar 3 minute -- testarea încă vreo două măcar: înregistrare
mașină în vmware, bootare, inițializare interfețe, inițializare vmware
tools *, copiere tester, rulare tester, preluare rezultate, închidere
și ștergere mașină.

Vmware tools poate prezenta o problemă: pentru a funcționa trebuie
instalat în mașina virtuală, dar instalarea nu e un proces automant și
nici nu poate fi făcut prin ssh (în procesul de instalare se resetează
interfețele de rețea omorând toate conexiunile ssh). O soluție e să
obligați studenții să instaleze vmware tools. Problema e (din câte
știu -- s-ar putea să mă înșel) că orice versiune de tools nu e
compatibilă cu orice vmware și trebuie să obligați studenții să aibă o
acceeași versiune.

Altă variantă e ca testele să se facă complet peste ssh ca vmware
tools să nu intre în discuție. Asta presupune cunoscut username-ul și
IP-ul unei interfețe sau numele mașinii (avahi).


> Ca o a doua parte, în funcție de timp/resurse/apreciere, ar fi posibilitatea
> de a avea în spate mai multe mașini cu VMWare Server pe care să se evalueze
> temele "distribuit". Un sistem de acest tip, doar că barbar, a fost folosit
> anul acesta pentru corectare, împărțirea arhivelor făcându-se manual (Ex.:
> stația 1: a-l, stația 2: m-s etc.). Acest lucru ar ușura și ar face mult mai
> rapidă corectarea temelor.

Asta se poate face destul de ușor: se definesc o serie de mașini de
testare și interfața web trimite pe varii mașini la testare.


> Aș fi vrut opinia voastră în sensul cât de utilă/fezabilă este această idee.
> So, what say you?


Se poate face, problema e că trebuie modificat destul cod pentru a
suporta toate treburile astea.
Eu o să fiu foarte ocupat cu GSoC la vară și nu voi fi prea mult
disponibil, de asta n-am înscris vmchecker la RSoC -- niciunul din
dezvoltatorii vmchecker nu este disponibil în vara asta.

Oricum codul a fost îmbunătățit mult anul ăsta și e mult mai ușor de
lucrat cu el.
Partea de backend (python) e 30% comentarii.

Dacă vrei să lucrezi pe vmchecker putem să ne întâlnim să discutăm mai detaliat.

-- 
 .
..: Lucian


More information about the vmchecker-dev mailing list