Fixed Helium reference in general-installation.adoc
[docs.git] / manuals / getting-started-guide / src / main / asciidoc / vtn / vtn-install.adoc
1 == VTN Installation Guide
2
3 === Overview
4
5 OpenDaylight Virtual Tenant Network (VTN) is an application that provides multi-tenant virtual network on an SDN controller.
6
7 Conventionally, huge investment in the network systems and operating expenses are needed because the network is configured as a silo for each department and system. Therefore various network appliances must be installed for each tenant and those boxes cannot be shared with others. It is a heavy work to design, implement and operate the entire complex network.
8
9 The uniqueness of VTN is a logical abstraction plane. This enables the complete separation of logical plane from physical plane. Users can design and deploy any desired network without knowing the physical network topology or bandwidth restrictions.
10
11 VTN allows the users to define the network with a look and feel of conventional L2/L3 network. Once the network is designed on VTN, it will automatically be mapped into underlying physical network, and then configured on the individual switch leverage SDN control protocol. The definition of logical plane makes it possible not only to hide the complexity of the underlying network but also to better manage network resources. It achieves reducing reconfiguration time of network services and minimizing network configuration errors. OpenDaylight Virtual Tenant Network (VTN) is an application that provides multi-tenant virtual network on an SDN controller. It provides API for creating a common virtual network irrespective of the physical network.
12
13 It is implemented as two major components
14
15 * <<_vtn_manager,VTN Manager>>
16 * <<_vtn_coordinator,VTN Coordinator>>
17
18 ==== VTN Manager
19 An OpenDaylight Controller Plugin that interacts with other modules to implement the components of the VTN model. It also provides a REST interface to configure VTN components in ODL controller. VTN Manager is implemented as one plugin to the OpenDaylight controller. This provides a REST interface to create/update/delete VTN components. The user command in VTN Coordinator is translated as REST API to VTN Manager by the ODC Driver component. In addition to the above mentioned role, it also provides an implementation to the Openstack L2 Network Functions API.
20
21 ==== VTN Coordinator
22
23 The VTN Coordinator is an external application that provides a REST interface for a user to use the VTN Virtualization. It interacts with VTN Manager plugin to implement the user configuration. It is also capable of multiple controller orchestration. It realizes Virtual Tenant Network (VTN) provisioning in OpenDaylight Controllers (ODC). In the OpenDaylight architecture VTN Coordinator is part of the network application, orchestration and services layer. VTN Coordinator has been implemented as an external application to the OpenDaylight controller. This component is responsible for the VTN virtualization. VTN Coordinator will use the REST interface exposed by the VTN Manger to realize the virtual network using the OpenDaylight controller. It uses OpenDaylight APIs (REST) to construct the virtual network in ODCs. It provides REST APIs for northbound VTN applications and supports virtual networks spanning across multiple ODCs by coordinating across ODCs.
24
25 === Preparing for Installation
26
27 ==== VTN Manager
28
29 ===== Running the Karaf distribution
30
31 Follow the instructions in <<_getting_and_installing_opendaylight_lithium,Getting and Installing OpenDaylight>>.
32
33 ==== VTN Coordinator
34
35 * Arrange a physical/virtual server with any one of the supported 64-bit OS environment.
36 ** RHEL 6 / 7 
37 ** CentOS 6 / 7
38 * Install these packages
39
40   yum install perl-Digest-SHA uuid libxslt libcurl unixODBC json-c
41
42   rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm
43
44   yum install postgresql93-libs postgresql93 postgresql93-server postgresql93-contrib postgresql93-odbc
45
46 === Installing VTN
47
48 ==== VTN Manager
49
50 Install Feature
51
52   feature:install odl-vtn-manager-all
53
54 ==== VTN Coordinator
55
56 * Enter into the externalapps directory in the top directory of Lithium
57
58   cd distribution-karaf-0.2.1-Lithium-SR1/externalapps
59   
60 * Run the below command to extract VTN Coordinator from the tar.bz2 file in the externalapps directory.
61
62   tar –C/ -jxvf distribution.vtn-coordinator-6.0.0.1-Lithium-SR1-bin.tar.bz2
63
64 This will install VTN Coordinator to /usr/local/vtn directory.
65 The name of the tar.bz2 file name varies depending on the version. Please give the same tar.bz2 file name which is there in your directory.
66
67 * Configuring database for VTN Coordinator
68
69   /usr/local/vtn/sbin/db_setup
70
71 * To start the Coordinator
72
73   /usr/local/vtn/bin/vtn_start
74
75 Using VTN REST API:
76
77 Get the version of VTN REST API using the below command, and make sure the setup is working.
78
79   curl --user admin:adminpass -H 'content-type: application/json' -X GET http://<VTN_COORDINATOR_IP_ADDRESS>:8083/vtn-webapi/api_version.json
80
81 The response should be like this, but version might differ:
82
83   {"api_version":{"version":"V1.2"}}
84
85 === Verifying your Installation
86
87 ==== VTN Manager
88
89 * In the karaf prompt, type the below command to ensure that vtn packages are installed.
90
91   feature:list i | grep vtn
92
93 * Run any VTN Manager REST API
94
95   curl --user "admin":"admin" -H "Accept: application/json" -H \"Content-type: application/json" -X GET \http://localhost:8282/controller/nb/v2/vtn/default/vtns
96
97 ==== VTN Coordinator
98
99 * ps –ef | grep unc will list all the vtn apps
100 * Run any REST API for VTN Coordinator version
101
102 === Uninstalling VTN
103
104 ==== VTN Manager
105
106   Feature:uninstall odl-vtnmanager-all
107
108 ==== VTN Coordinator
109
110   /usr/local/vtn/bin/vtn_stop
111
112   Remove the usr/local/vtn folder