[one-users] Custom scheduler for OpenNebula
Borja Sotomayor
borja at borjanet.com
Thu Sep 11 10:09:48 PDT 2008
Hi,
To add to what Ruben said, another example of an external OpenNebula
scheduler is Haizea (http://haizea.cs.uchicago.edu). If you are writing
your own scheduler, you may want to look at the Haizea source code to
see an example of how an external scheduler has to interact with
OpenNebula. The approach is basically what Ruben described:
- Haizea periodically checks the OpenNebula database (using pysqlite,
the SQLite binding for Python) to see if there's any new requests. If
so, it translates that request into a "lease" (which is the resource
provisioning abstraction used by Haizea).
- Haizea schedules the leases, making placement decisions, etc. This
process is internal to Haizea, and doesn't involve OpenNebula.
- As time passes, and Haizea encounters events in the schedule ("start
a VM", "suspend a VM", etc.), it translates those events into something
OpenNebula can understand. Right now, Haizea just runs the "onevm"
command from Python to send commands to OpenNebula (this adds the
constraint that Haizea and OpenNebula have to be running on the same
node; we will eventually use the XML-RPC API to remove that constraint)
At this point, communication between OpenNebula and an external
scheduler flows in just one direction: the scheduler can send commands
to OpenNebula and poll it for new requests, but there is no way for
OpenNebula to send events to the scheduler (e.g., to notify the
scheduler that a new request has arrived, or that a VM has failed,
etc.). This will be solved in future versions of OpenNebula, by allowing
scheduler developers to easily "hook into" OpenNebula events (without
having to modify OpenNebula's source code)
If you have any questions about writing an external scheduler (or about
Haizea's OpenNebula integration code specifically), don't hesitate to ask.
Cheers!
--
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Borja Sotomayor, University of Chicago
Ph.D. Student, Department of Computer Science
Ryerson 257-C, 1100 East 58th Street, Chicago, IL
Haizea: http://haizea.cs.uchicago.edu/
BorjaNet: http://www.borjanet.com/
·····························································
"Dis maschine vill run und run!"
-- Kurt Gödel (on the Turing Machine)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
More information about the Users
mailing list