OpenStack and xcat

From CS486wiki
Jump to navigationJump to search

This wiki page is for the development of XCAT/OpenStack Senior Project for IBM.

Documentation

xCat Wiki : http://sourceforge.net/apps/mediawiki/xcat/index.php?title=Main_Page

zVM 5.4.0 SMAPI book : http://publib.boulder.ibm.com/infocenter/zvm/v5r4/index.jsp?topic=/com.ibm.zvm.v54.dmse6/hcsl8b30.htm

Open Stack : http://www.openstack.org/

z/VM System Management Application Programming SMAPI functions tie into lots of different z/VM systems management tasks, so here's a link to the particular SMAPI functions for connectivity: http://publib.boulder.ibm.com/infocenter/zvm/v6r2/index.jsp?topic=%2Fcom.ibm.zvm.v620.dmse6%2Fhcsl8c1134.htm&path=6_18_3_1_9


Design proposal

INTRODUCTION

This is a design proposal for our project that aims to make it possible to make a connection between Openstack and xCat.

CURRENT SITUATION

Currently we cannot establish a connection from an Openstack client to an xCat client. There is no plugin for xCat to make this connection.

At this stage of the development we have installed Openstack on our computers. We have researched the Openstack functions that we should use for making the connection. We are also researching the xCat functions.

GOALS

Our project's main goal is to create a connection between Openstack and xCat. We will develop a plugin for xCat that will make this connection possible. We should be able to connect to xCat installation on the Watson mainframe from our workstations which has Openstack installed.

PLANNING

We plan to develop the plugin to be able to create connections for virtual switches. The Openstack plugin OpenvSwitch provides the necessary environment required through virtual switches. The coding of the plugin will be done in Python because xCat is mostly Python based so it will be easy to run on.

PROCESS

First we will research the xCat functions that we will extend and write a plugin for(This part is mostly done at this point). After we finish the research part, we will start coding the plugin itself. The development process of the code will be done with Python. After we complete the first version of the code, we will start the debugging process and iterate on the code itself until all the bugs are corrected. After we finish debugging the code, we will test the plugin to see if it meets the requirements. Finally, we will deliver the plugin. Entire development process will also be documented here on this wiki as well as the documentation for the plugin itself.

OpenStack

What is OpenStack: http://en.wikipedia.org/wiki/Openstack

OpenStack website: http://www.openstack.org/

API reference: http://api.openstack.org/api-ref.html

OpenStack Modules

NOVA

NOVA is the compute module for the OpenStack. It is the main controller part of the project and it is written in Python and designed to be horizontally scalable.

QUANTUM

QUANTUM is the network module for the OpenStack. It is responsible for managing networks and IP addresses in the cloud. It also has support for plugins.

SWIFT and CINDER

These two modules are used for storage. SWIFT is used for object storage while CINDER is used for block storage.


These modules cover the three main aspects of OpenStack: Compute, Networking and Storage. There are many more smaller modules for other parts of the OpenStack but we will mainly focus on these modules for our project.


Guides and Documents

Quantum API guide: http://docs.openstack.org/api/openstack-network/2.0/content/

Nova developer guide: http://docs.openstack.org/api/openstack-compute/2/content/

Presentation on Quantum and it's plugins: http://www.xlcloud.org/bin/download/Download/Presentations/XLCloud-Networking_Needs_Quantum.pdf


Quantum Plugins

Quantum has support for plugins and there are many plugins right now that add to and extend many of the networking functions of Quantum. Some of them are:

Open vSwitch Plugin: http://openvswitch.org/

Cisco UCS/Nexus Plugin: https://wiki.openstack.org/wiki/Cisco-quantum

Linux Bridge Plugin: https://wiki.openstack.org/wiki/Quantum-Linux-Bridge-Plugin

Nicira Network Virtualization Platform (NVP) Plugin: http://nicira.com/en/network-virtualization-platform

Ryu OpenFlow Controller Plugin: http://osrg.github.io/ryu/