cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From seb...@apache.org
Subject [1/2] git commit: updated refs/heads/master to 4f07679
Date Fri, 07 Jun 2013 07:02:11 GMT
Updated Branches:
  refs/heads/master c2ac4090d -> 4f07679d4


my gsoc proposal document

Signed-off-by: Sebastien Goasguen <runseb@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/1bdb6266
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/1bdb6266
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/1bdb6266

Branch: refs/heads/master
Commit: 1bdb6266c6b263684db229accd4f0a4a330f203a
Parents: cc7e9ee
Author: tuna <ng.tuna@gmail.com>
Authored: Thu Jun 6 23:46:18 2013 +0700
Committer: Sebastien Goasguen <runseb@gmail.com>
Committed: Fri Jun 7 02:59:17 2013 -0400

----------------------------------------------------------------------
 docs/en-US/gsoc-tuna.xml |  203 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 203 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1bdb6266/docs/en-US/gsoc-tuna.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/gsoc-tuna.xml b/docs/en-US/gsoc-tuna.xml
index 68032a8..0988734 100644
--- a/docs/en-US/gsoc-tuna.xml
+++ b/docs/en-US/gsoc-tuna.xml
@@ -25,4 +25,207 @@
 <chapter id="gsoc-tuna">
         <title>Nguyen's 2013 GSoC Proposal</title>
         <para>This chapter describes Nguyen 2013 Google Summer of Code project within
the &PRODUCT; ASF project. It is a copy paste of the submitted proposal.</para>
+	<section id="add-xen-xcp-support-for-gre-sdn-controller">
+		<title>Add Xen/XCP support for GRE SDN controller</title>
+		<para>
+			"This project aims to enhance the current native SDN controller in supporting Xen/XCP
and integrate successfully the open source SDN controller (FloodLight) driving Open vSwitch
through its interfaces."
+		</para>
+	</section>
+	<section id="Abstract">
+		<title>Abstract</title>
+		<para>
+			SDN, standing for Software-Defined Networking, is an approach to building data network
equipments and softwares. It were invented by ONRC, Stanford University. SDN basically decouples
the control from physical networking boxes and given to a software application called a controller.
SDN has three parts: controller, protocols and switch; In which, OpenFlow is an open standard
to deploy innovative protocols. Nowaday, more and more datacenters use SDN instead of traditional
physical networking boxes. For example, Google announced that they completely built its own
 switches and SDN confrollers for use in its internal backbone network.
+		</para>
+		<para>
+			OpenvSwitch, an open source software switch, is widely used as a virtual switch in virtualized
server environments. It can currently run on any Linux-based virtualization platform, such
as: KVM, Xen (XenServer, XCP, Xen hypervisor), VirtualBox... It also has been ported to a
number of different operating  systems  and  hardware  platforms:  Linux,  FreeBSD,  Windows
 and  even  non-POSIX embedded systems. In cloud computing IaaS, using OpenvSwitch instead
of Linux bridge on compute nodes becomes an inevitable trend because of its powerful features
and the ability of OpenFlow integration as well.
+		</para>
+		<para>
+			In CloudStack, we already have a native SDN controller. With KVM hypervisor, developers
can easily install  OpenvSwitch  module;  whereas,  Xen  even  has  a  build-in  one.  The
 combination  of SDN controller and OpenvSwitch gives us many advanced things. For example,
creating GRE tunnels as an isolation method instead of VLAN is a good try. In this project,
we are planning to support GRE tunnels in Xen/XCP hypervisor with the native SDN controller.
When it's done, substituting open-sources SDN controllers (floodlight, beacon, pox, nox) for
the current one is an amazing next step.
+		</para>
+	</section>
+	<section id="design-desription">
+		<title>Design description</title>
+		<para>
+			CloudStack currently has a native SDN Controller that is used to build meshes of GRE tunnels
between Xen hosts. There consists of 4 parts: OVS tunnel manager, OVS Dao/VO, Command/Answer
and Ovs tunnel plugin. The details are as follow:
+		</para>
+		<para>
+			<emphasis role="bold">OVS tunnel manager:</emphasis> Consist of OvsElement
and OvsTunnelManager.
+		</para>
+		<para>
+			OvsElement is used for controlling Ovs tunnel lifecycle (prepare, release)
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>prepare(network, nic, vm, dest): create tunnel for vm on network to dest</para>
+			</listitem>
+			<listitem>
+				<para>release(network, nic, vm): destroy tunnel for vm on network</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			OvsTunnelManager  drives  bridge  configuration  and  tunnel  creation  via  calling 
respective commands to Agent.	
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>destroyTunnel(vm, network): call OvsDestroyTunnelCommand to destroy  tunnel
for vm on network</para>
+			</listitem>
+			<listitem>
+				<para>createTunnel(vm, network, dest): call OvsCreateTunnelCommand to create  tunnel
for vm on network to dest</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			<emphasis role="bold">OVS tunnel plugin:</emphasis> These are ovstunnel and
ovs-vif-flows.py script, writen as XAPI plugin. The OVS tunnel manager will call them via
XML-RPC.
+		</para>
+		<para>
+			Ovstunnel plugin calls corresponding vsctl commands for setting up the OVS bridge, creating
GRE tunnels or destroying them.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>setup_ovs_bridge()</para>
+			</listitem>
+			<listitem>
+				<para>destroy_ovs_bridge()</para>
+			</listitem>
+			<listitem>
+				<para>create_tunnel()</para>
+			</listitem>
+			<listitem>
+				<para>destroy_tunnel()</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Ovs-vif-flow.py clears or applies rule for VIFs every time it is plugged or unplugged
from a OVS bridge.	
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>clear_flow()</para>
+			</listitem>
+			<listitem>
+				<para>apply_flow()</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			<emphasis role="bold">OVS command/answer:</emphasis> It is designed under
the format of requests and answers between Manager and Plugin. These commands will correspondence
exactly the mentioned manipulations.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>OvsSetupBridgeCommand</para>
+			</listitem>
+			<listitem>
+				<para>OvsSetupBridgeAnswer</para>
+			</listitem>
+			<listitem>
+				<para>OvsDestroyBridgeCommand</para>
+			</listitem>
+			<listitem>
+				<para>OvsDestroyBridgeAnswer</para>
+			</listitem>
+			<listitem>
+				<para>OvsCreateTunnelCommand</para>
+			</listitem>
+			<listitem>
+				<para>OvsCreateTunnelAnswer</para>
+			</listitem>
+			<listitem>
+				<para>OvsDestroyTunnelCommand</para>
+			</listitem>
+			<listitem>
+				<para>OvsDestroyTunnelAnswer</para>
+			</listitem>
+			<listitem>
+				<para>OvsFetchInterfaceCommand</para>
+			</listitem>
+			<listitem>
+				<para>OvsFetchInterfaceAnswer</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			<emphasis role="bold">OVS Dao/VO</emphasis> 
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>OvsTunnelInterfaceDao</para>
+			</listitem>
+			<listitem>
+				<para>OvsTunnelInterfaceVO</para>
+			</listitem>
+			<listitem>
+				<para>OvsTunnelNetworkDao</para>
+			</listitem>
+			<listitem>
+				<para>OvsTunnelNetworkVO</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	<section id="integrate-floodLight-as-sdn-controller">
+		<title>Integrate FloodLight as SDN controller</title>
+		<para>
+			I think that we maybe deploy FloodLight Server as a new SystemVM.  This VM acts like current
SystemVMs. One Floodlight SystemVM per Zone, so it can manage for virtual switches under this
zone.
+		</para>
+	</section>
+	<section id="Deliverables">
+		<title>Deliverables</title>
+		<para>
+			GRE has been used as isolation method in CloudStack when deploy with Xen/XCP hosts.
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>User set sdn.ovs.controller parameter in Global Setting to true. He deploys
Advance Networking and chooses GRE as isolation method</para>
+			</listitem>
+			<listitem>
+				<para>Make use of Floodlight instead of native SDN controller.</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	<section id="About-me">
+		<title>About me</title>
+		<para>
+			My name is Nguyen Anh Tu, a young and enthusiastic researcher in Cloud Computing Center
- Viettel Research and Development Institute, Vietnam. Since last year, we has built Cloud
Platform based on CloudStack, starting with version 3.0.2. As the results, some advanced modules
were successfully developed, consists of:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>Encrypt Data Volume for VMs.</para>
+			</listitem>
+			<listitem>
+				<para>Dynamic Allocate Memory for VMs by changing policy on Squeeze Daemon.</para>
+			</listitem>
+			<listitem>
+				<para>AutoScale without using NetScale.</para>
+			</listitem>
+			<listitem>
+				<para>Deploy a new SystemVM type for Intrustion Detection System.</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Given the working experience and recent researches, I have obtained remarkably the understanding
of specific knowledges to carry on this project, details as follow: 
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>Java source code on CloudStack: Design Pattern, Spring framework.</para>
+			</listitem>
+			<listitem>
+				<para>Bash, Python programming.</para>
+			</listitem>
+			<listitem>
+				<para>XAPI plugin.</para>
+			</listitem>
+			<listitem>
+				<para>XML-RPC.</para>
+			</listitem>
+			<listitem>
+				<para>OpenVSwitch on Xen.</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Other knowledges: 
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>XAPI RRD, XenStore.</para>
+			</listitem>
+			<listitem>
+				<para>Ocaml Programming (XAPI functions).</para>
+			</listitem>
+		</itemizedlist>
+	</section>
 </chapter>


Mime
View raw message