Migrating release notes from AsciiDoc to reST
[docs.git] / docs / getting-started-guide / project-specific-guides / vtn.rst
1 VTN Installation Guide
2 ======================
3
4 Overview
5 --------
6
7 OpenDaylight Virtual Tenant Network (VTN) is an application that provides multi-tenant virtual network on an SDN controller.
8
9 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.
10
11 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.
12
13 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.
14
15 It is implemented as two major components
16
17 * :ref:`vtn_manager`
18 * :ref:`vtn_coordinator`
19
20 .. _vtn_manager:
21
22 VTN Manager
23 ^^^^^^^^^^^
24
25 An OpenDaylight 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 OpenDaylight. VTN Manager is implemented as one plugin to the OpenDaylight. 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 OpenDaylight Driver component. In addition to the above mentioned role, it also provides an implementation to the OpenStack L2 Network Functions API.
26
27 .. _vtn_coordinator:
28
29 VTN Coordinator
30 ^^^^^^^^^^^^^^^
31
32 The VTN Coordinator is an external application that provides a REST interface for an user to use OpenDaylight VTN Virtualization. It interacts with VTN Manager plugin to implement the user configuration. It is also capable of multiple OpenDaylight orchestration. It realizes VTN provisioning in OpenDaylight instances. In the OpenDaylight architecture VTN Coordinator is part of the network application, orchestration and services layer. VTN Coordinator will use the REST interface exposed by the VTN Manger to realize the virtual network using OpenDaylight. It uses OpenDaylight APIs (REST) to construct the virtual network in OpenDaylight instances. It provides REST APIs for northbound VTN applications and supports virtual networks spanning across multiple OpenDaylight by coordinating across OpenDaylight.
33
34 Preparing for Installation
35 --------------------------
36
37 VTN Manager
38 ^^^^^^^^^^^
39
40 Follow the instructions in :ref:`install_odl`.
41
42 VTN Coordinator
43 ^^^^^^^^^^^^^^^
44
45 #. Arrange a physical/virtual server with any one of the supported 64-bit OS environment.
46
47    * RHEL 7
48    * CentOS 7
49    * Fedora 20 / 21 / 22
50
51 #. Install these packages::
52
53       yum install perl-Digest-SHA uuid libxslt libcurl unixODBC json-c bzip2
54       rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm
55       yum install postgresql93-libs postgresql93 postgresql93-server postgresql93-contrib postgresql93-odbc
56
57 Installing VTN
58 --------------
59
60 VTN Manager
61 ^^^^^^^^^^^
62
63 Install Feature::
64
65    feature:install odl-vtn-manager-neutron odl-vtn-manager-rest
66
67 .. note:: The above command will install all features of VTN Manager.
68           You can install only REST or Neutron also.
69
70 VTN Coordinator
71 ^^^^^^^^^^^^^^^
72
73 * Enter into the externalapps directory in the top directory of Beryllium::
74
75      cd distribution-karaf-0.4.0-Beryllium/externalapps
76
77 * Run the below command to extract VTN Coordinator from the tar.bz2 file in the externalapps directory::
78
79      tar –C/ -jxvf distribution.vtn-coordinator-6.2.0-Beryllium-bin.tar.bz2
80
81 This will install VTN Coordinator to /usr/local/vtn directory.
82 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.
83
84 * Configuring database for VTN Coordinator::
85
86      /usr/local/vtn/sbin/db_setup
87
88 * To start the Coordinator::
89
90      /usr/local/vtn/bin/vtn_start
91
92 Using VTN REST API:
93
94 Get the version of VTN REST API using the below command, and make sure the setup is working::
95
96    curl --user admin:adminpass -H 'content-type: application/json' -X GET http://<VTN_COORDINATOR_IP_ADDRESS>:8083/vtn-webapi/api_version.json
97
98 The response should be like this, but version might differ::
99
100    {"api_version":{"version":"V1.2"}}
101
102 Verifying your Installation
103 ---------------------------
104
105 VTN Manager
106 ^^^^^^^^^^^
107
108 * In the karaf prompt, type the below command to ensure that vtn packages are installed::
109
110      feature:list | grep vtn
111
112 * Run any VTN Manager REST API::
113
114      curl --user "admin":"admin" -H "Accept: application/json" -H "Content-type: application/json" -X GET http://localhost:8181/restconf/operational/vtn:vtns
115
116 VTN Coordinator
117 ^^^^^^^^^^^^^^^
118
119 .. code-block:: shell
120
121    ps –ef | grep unc will list all the vtn apps
122    Run any REST API for VTN Coordinator version
123
124 Uninstalling VTN
125 ----------------
126
127 VTN Manager
128 ^^^^^^^^^^^
129
130 .. code-block:: shell
131
132    feature:uninstall odl-vtnmanager-all
133
134 VTN Coordinator
135 ^^^^^^^^^^^^^^^
136
137 #. Stop VTN::
138
139       /usr/local/vtn/bin/vtn_stop
140
141 #. Remove the ``usr/local/vtn`` folder