You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by we...@apache.org on 2013/06/10 19:27:02 UTC

[08/50] [abbrv] git commit: updated refs/heads/disk_io_throttling to 8b8a0d3

my gsoc proposal document

Signed-off-by: Sebastien Goasguen <ru...@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/disk_io_throttling
Commit: 1bdb6266c6b263684db229accd4f0a4a330f203a
Parents: cc7e9ee
Author: tuna <ng...@gmail.com>
Authored: Thu Jun 6 23:46:18 2013 +0700
Committer: Sebastien Goasguen <ru...@gmail.com>
Committed: Fri Jun 7 02:59:17 2013 -0400

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


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>