<strong><br></strong><ul><li><p><span style="font-size:small"><strong>Name</strong> : Syed Armani</span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Contact/Email</strong>: <a href="mailto:dce3062@gmail.com">dce3062@gmail.com</a>, irc: <a href="http://irc.oftc.net#syed">irc.oftc.net#syed</a></span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Background</strong>: I am a
Computer Science student from INDIA, I have good exposure of working
with different languages like C/C++, Python, Shell Scripting, etc. I am
also comfortable with Linux System Administration and Networking. I have
sound understanding of different components of OpenStack and their
architecture. I am following OpenStack since its inception. As well as I
am very well connected to the OpenStack community.</span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Project title: </strong> Package an OpenStack Use Case.</span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Project details</strong>: Nova+Quantum multi-tier network provisioning with OpenvSwitch .</span></p>
</li></ul>
<p><span style="font-size:small">This use case discuss the ability of
Quantum to let a cloud tenant create rich multi-tier network topologies
connecting Nova VMs. The components involved are:</span></p>
<ul><li><span style="font-size:small">Quantum running OpenvSwitch plugin.</span></li><li><span style="font-size:small">Nova running Quantum Manager as its Network Manager.</span></li><li><span style="font-size:small">Simple Quantum Orchestrator that speaks to Quantum/Nova API's.</span></li>
<li><span style="font-size:small">Single Node Setup.</span></li><li><span style="font-size:small">Nova using KVM for Compute.</span></li></ul>
<p><span style="font-size:small"><strong>Scenario</strong></span></p>
<ul><li><span style="font-size:small">Tenants can dynamically create
network via API and spawn VM, User Creates a Layer-2 network i.e.
create-network dmz-net, web-net, db-net</span></li><li><span style="font-size:small"><em><span><span style="font-style:normal">Quantum returns network identifier, ‘xyz’.</span></span></em> </span></li><li>
<p style="margin-bottom:0cm"><span style="font-size:small">User
Creates a VM using Cloud Controller API (e.g.: POST /Servers) and
specifies a network for the VM’s virtual NICs in the create server
request. </span></p>
</li><li>
<p style="margin-bottom:0cm"><span style="font-size:small"><em><span><span style="font-style:normal">The Cloud Controller dispatches the call to the Compute Service which creates the VM.</span></span></em> </span></p>
</li><li>
<p style="margin-bottom:0cm"><span style="font-size:small">Compute Service tells Quantum to create a logical port on the ‘xyz’ network. </span></p>
</li><li>
<p style="margin-bottom:0cm"><span style="font-size:small"><em><span><span style="font-style:normal">Quantum creates the logical port and returns the port number.</span></span></em> </span></p>
</li><li>
<p style="margin-bottom:0cm"><span style="font-size:small">Compute
Service instructs Quantum to plug the VM’s Virtual NIC into the
previously created port; The Virtual NIC's unique identifier is provided
in the request body. </span></p>
</li><li>
<p style="margin-bottom:0cm"><span style="font-size:small"><em><span><span style="font-style:normal">Quantum
invokes the OpenvSwitch plugin to attach the Virtual NIC to the logical
network. This operation might require the OpenvSwitch plugin to contact
the hypervisor on which the VM has been created in order to setup
networking according to the technology adopted by the OpenvSwitch
plugin.</span></span></em> </span></p>
</li><li>
<p style="margin-bottom:0cm"><span style="font-size:small">User can
verify that the attachment has been plugged into the network by querying
Quantum for attachments for the ‘xyz’ network. </span></p>
</li><li>
<p style="margin-bottom:0cm"><span style="font-size:small"><em><span><span style="font-style:normal">Quantum
returns a list of currently configured attachments, together with their
state (e.g.: in Progress, Attached/DOWN, Attached/UP, Failed).</span></span></em></span></p>
</li><li>
<p style="margin-bottom:0cm"><span style="font-size:small">When creating VMs, Tenants can specify the vNICs and the network they connect to.</span><br><span style="font-size:small">create-server image = fw-img nics = dmz-net</span><br>
<span style="font-size:small">create-server image = web-img nics = web-net, db-net</span><br><span style="font-size:small">create-server image = db-img nics=db-net</span></p>
</li></ul>
<p><span style="font-size:small">Once you wait for the VMs to boot,
you can access them directly using SSH from the local machine, which
acts as the gateway and DHCP server for VMs. </span></p>
<p><br><strong><span style="font-size:small"><span style="text-decoration:underline">Quantum + Nova API flow</span></span></strong></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Calibri,sans-serif;font-size:small"> <span>API Client Quantum Server Nova Server </span> </span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span><br> Create Network (POST /tenant1/network) </span> </span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>---------------------------------------------------------------><br></span></span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>Network UUID: ‘abc’</span></span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span><</span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>---------------------------------------------------------------</span></span><br>
<br></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>Create Server (POST /tenant1/server)</span></span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>---------------------------------------------------------------------------------------------------><br>
</span></span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>Server UUID: ‘def’</span></span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span><</span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>---------------------------------------------------------------------------------------------------<br>
<br></span></span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>Get Server Interface(s) (GET /tenant1/server/def/interface)<br> </span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>---------------------------------------------------------------------------------------------------</span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>></span></span></p>
<p style="margin-bottom:0cm" align="LEFT"> </p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>Server Interface UUID List: [ ‘ghi’ ]<br> <</span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>---------------------------------------------------------------------------------------------------<br>
<br></span></span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>Create Port on Network (POST /tenant1/network/abc/port)<br> </span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>---------------------------------------------------------------</span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>><br>
<br></span></span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>Port UUID ‘jkl’<br> <</span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>---------------------------------------------------------------<br>
<br></span></span></p>
<p style="margin-bottom:0cm" align="LEFT"><span style="font-family:Times New Roman,serif;font-size:small"> <span>Attach Interface to port (PUT /tenant1/network/abc/port/jkl) { ‘attachment’ : ‘ghi’ }<br> </span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>---------------------------------------------------------------</span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>></span></span></p>
<p style="margin-bottom:0cm"> <span style="font-family:Times New Roman,serif;font-size:small"><span>Success</span></span></p>
<p style="margin-bottom:0cm"><span style="font-family:Times New Roman,serif;font-size:small"> <span><</span></span><span style="font-family:Times New Roman,serif;font-size:small"><span>---------------------------------------------------------------<br>
<br></span></span><span style="font-size:small">To view allocated IP's run “show” at cmd, Vms can be reached directly using SSH or VNC. </span><span style="font-size:small">To
clear all existing setup , run “Delete” at cmd. This setup will give
Tenant control of Network topology, Advanced services like firewall can
be inserted. Tenants can create multiple private networks using
OpenvSwitch plugin, plugin take the networking decision. The plugin may
use drivers to communicate the results of this decision to different
devices, i.e. It may configure the VLAN on a vSwitch port and tell the
upstream physical switch to trunk the VLAN.</span></p>
<p style="margin-bottom:0cm"> </p>
<p style="margin-bottom:0cm"> </p>
<ul><li>
<p><span style="font-size:small"><strong>Synopsis</strong>: OpenStack
Nova currently have very limited support for complex networking
scenarios. Quantum along with various plugins help the System
Adminstrators to implement complex networking scenarios like multi-tier
network creation with Quantum, Creating multiple private virtual
networks, Attaching virtual ports to virtual interfaces in cloud.
Nova+Quantum with OpenvSwitch packages can help the debian users to
easily manage cloud tenants and give them control to create multi-tier
L2 networks.</span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Benefits to Debian</strong> :
Cloud computing is not a trend anymore, it has become neccessity for
today's Data centers. System Administrators and DevOps using debian to
deploy their private/public cloud infrastructure will have more options
in the form of debian packages. It will be easy for them to deploy
complex multi-tier networking in their private or public cloud
deployments. More options in the form of debian packages will help
Debian GNU/Linux to become a leader in the cloud. </span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Deliverables</strong>: OpenStack Packages implementing the Use Case described above with proper documentation of HOWTOs and manual steps. </span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Project schedule</strong>: I can start working from first week of May 2012. The project will take approximately 3 months.</span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Exams and other commitments</strong>: I will be having University Exams in June. </span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Other summer plans</strong>: No other plans.</span></p>
</li></ul>
<ul><li>
<p><span style="font-size:small"><strong>Why Debian?</strong>: Debian
is the Universal Operating System.I have been using Debian based distros
since my first introduction with Linux based operating systems. I have
learned a lot since then. It will be a pleasure to work with Debian
community and contribute to the growth of Debian in Cloud arena. </span></p>
</li></ul>