[one-users] Custom scheduler for OpenNebula

Borja Sotomayor borja at borjanet.com
Thu Sep 11 10:09:48 PDT 2008


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.

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