OpenStack and xcat: Difference between revisions

From CS486wiki
Jump to navigationJump to search
Content deleted Content added
No edit summary   (change visibility)
No edit summary   (change visibility)
Line 124: Line 124:


Now we are all set to develop with devStack. A good way to start getting to know devStack is to run exercise.sh script in the devStack directory. This script will run 13 exercises which we can inspect by looking at the script itself. After the script runs it will show how the exercises resulted in.
Now we are all set to develop with devStack. A good way to start getting to know devStack is to run exercise.sh script in the devStack directory. This script will run 13 exercises which we can inspect by looking at the script itself. After the script runs it will show how the exercises resulted in.

== OpenVswitch Information ==

Latest distribution: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=snapshot;sf=tgz;h=HEAD

This link will create a tar ball of the latest distribution and download it to your computer.

The github for these files is: " git://openvswitch.org/openvswitch " so we can download all the files directly to our Linux server.

Installation notes: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=INSTALL;hb=HEAD

Revision as of 19:46, 5 May 2013

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/


OpenStack Installation

Platform

OpenStack only supports Linux platform and the compatible distributions are Cloudscaling, Debian, Fedora, Piston Cloud Computing, Red Hat, SwiftStack, SUSE, Ubuntu and Stackops. Many of these platforms now include OpenStack in their distribution. However, for development purposes we have to install devStack which is the developer distribution of OpenStack.

devStack Installation on VM

1. First of all we need to get a minimal Linux distribution. The best choices we have are either Ubuntu or Fedora. Download latest distributions from their website. We also need a VM software to create and run VMs. There are many of these software out there but the one we used is Oracle's Oracle VM Virtual Box. After we get the VM running and have it install the Linux distribution we chose we move onto installing devStack itself. This part takes around 30 minutes depending on the Linux distribution chosen and your internet connection.


2. Installing devStack is quite easy, but it is also quite long. First thing is we need to download devStack from the github at: git://github.com/openstack-dev/devstack.git . To do this we go to our Linux machine and type "git clone git://github.com/openstack-dev/devstack.git" into the command line. This command will go to the github and run the install script there which will then download devStack to your VM and install it. This part takes around 10 minutes to complete depending on your internet connection.


3. Installation is over but deployment is not, we need to run the stack.sh script of the devStack which does too many things to cover here but here is a link to it: http://devstack.org/stack.sh.html . To run it we first need to navigate to the devStack directory with the command "cd devStack" then all we need to do is run the command "./stack.sh". After this command is run stack.sh script starts running and this part will take a very long time. After all the script is run there will be information about what the script has done on the screen for a quick recap of them. This part takes around 1-2 hours depending on the speed of your VM and your internet connection.


4. devStack is now ready for use but before we can use it we need to configure localrc file so we can set our user settings. To do this we first create the file with a simple text editor like nano. We used nano for this part so the command for this is "nano localrc" and also we need to run this command while in devStack directory which, after stack.sh runs, should be where we are. This opens up a text editor screen and we need to enter some basic configurations for user settings. The file should look like this:


ADMIN_PASSWORD=youradminpw

MYSQL_PASSWORD=yourdbpw

RABBIT_PASSWORD=yourrabbitpw

SERVICE_PASSWORD=$ADMIN_PASSWORD

HOST_IP=w.x.y.z


These settings are very basic and there are a lot more that can be done within localrc file. Here is a link to the page that contains the extra settings that can be set in this file: http://devstack.org/localrc.html

After we enter these settings with our text editor all we need to do is save and exit the editor and return to the devStack directory.

Now we are all set to develop with devStack. A good way to start getting to know devStack is to run exercise.sh script in the devStack directory. This script will run 13 exercises which we can inspect by looking at the script itself. After the script runs it will show how the exercises resulted in.

OpenVswitch Information

Latest distribution: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=snapshot;sf=tgz;h=HEAD

This link will create a tar ball of the latest distribution and download it to your computer.

The github for these files is: " git://openvswitch.org/openvswitch " so we can download all the files directly to our Linux server.

Installation notes: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=INSTALL;hb=HEAD