Integration of Globus Nimbus and OpenNEbula
This page contains download information and instructions about the integration of Globus Nimbus (formerly known as Virtual Workspace Service) and OpenNEbula. On the Nimbus side, changes have been made on Workspace Service component. (Read the Nimbus FAQ to learn about its components)
Note that although the current version of Nimbus is TP2.0, all changes have been made on v. 1.3.3.1
This integration was developed by William Voorsluys from GRIDS Lab at the University of Melbourne, Australia during Google Summer of Code 2008
Please have at look at Nimbus and OpenNEbula before going further on this integration.
Download
Packages
Nimbus Workspace Service | Source code
Changes on OpenNEbula (see Ticket 33) | Download
OpenNEbula Java API | jar Source code
This API is required only if you are planning to develop a new Java application on top of OpenNEbula. If you are only interested in the Nimbus Workspace Service, you don't need to download this package
SVN access
The OpenNEbula Java API http://svn.opennebula.org/contrib/onejava/trunk
Modified Nimbus Workspace Service v. 1.3.3.1 http://svn.globus.org/repos/gsoc/william/virtual-workspaces/trunk
Installation instructions
Prerequisites
For a basic testing installation on a single machine: Xen, Java 1.5 and Globus Toolkit 4.0.8. See OpenNEbula's prerequisites for a full installation. Also check Globus Nimbus prerequisites
Steps
- Install OpenNEbula
Follow OpenNEbula documentation for this purpose.
- Install the Nimbus Workspace Service frontend
No Nimbus backends need to be installed, since ONE replaces them completely.
Package is available from this page.
Follow the Nimbus admin docs. In summary, basic steps are:
Log in as 'globus' and enter:
export GLOBUS_LOCATION=/path/to/globus-location cd workspace-service-nebula-TP1.3.3.1-src ant deploy
Download and copy sample configuration files to conf directory:
cd /path/to/globus-location/etc/workspace-service tar xzf ws-one-sample-config.tar.gz (contains jndi-config.xml and ONE configuration folder)
The above commands will also install the workspace client at /path/to/globus-location/bin/workspace
Run
- Start Globus container
- Run client
grid-proxy-init
workspace --deploy --file workspace.epr --metadata hellonebula.xml -s https://localhost:8443/wsrf/services/WorkspaceFactoryService --deploy-duration 120 --deploy-mem 128 --numnodes 1 --deploy-state
Issues/Limitations
- Sometimes it is necessary to go to the base installation directory
(workspace-service-nebula-TP1.3.3.1-src) and type 'ant resetDB'. I don't know why but sometimes after shutting the container down it can't be restarted unless the DB is reset.
- Networking
Like in a regular OpenNebula installation, DHCP configuration must be manually done. I prepared the code to deal with network associations, but to make networking fully automatic, some python scripts from the original workspace backend should be ported to our integration code.
Changed code
Workspace Service
I will include here a description of all changes made in the Workspace Service.
- New Tasks
I have extended WorkspaceRequest to create various ONE VM specific tasks, such as start, suspend, resume, etc. Tasks related to propagation have been completely disabled since ONE relies on NFS for propagation image to cluster nodes.
- New Slot Management implementation
I have extended DefaultSlotManagement and adapted it to ONE needs to create OpenNebulaSlotManagement. The new slot manager queries ONE's XML-RPC API to figure out whether there are enough resources for a request or not. If more that one cluster can handle the request, it chooses the least loaded.
- New BindingAdapter
I have extended DefaultBindingAdapter to create OpenNebulaBindingAdapter.
- Changes on negotiable.xsd
I have also modified the this XML schema to allow passing generic "name, value" parameters to the scheduler. This additions have been already discusses on this list.
OpenNEbula
Some changes were made according to ticket 33
To Do
Some improvements are needed on this integration, including:
- Port the integration code to Nimbus Workspace Service TP 2.0, taking advantage of the new RM API
- Improve the Slot Management implementation by handling CPU percentage as well (it currently handles memory restrictions only)
Attachments
-
opennebula-1.0.jar
(43.3 kB) - added by williamvoor
4 months ago.
Java API
