Statistics
| Branch: | Tag: | Revision:

root / doc / design-openvswitch.rst @ 3771161c

History | View | Annotate | Download (2.2 kB)

1 3771161c Sebastian Gebhard
========================
2 3771161c Sebastian Gebhard
Support for Open vSwitch
3 3771161c Sebastian Gebhard
========================
4 3771161c Sebastian Gebhard
5 3771161c Sebastian Gebhard
.. contents:: :depth: 3
6 3771161c Sebastian Gebhard
7 3771161c Sebastian Gebhard
This is a design document detailing the implementation of support for
8 3771161c Sebastian Gebhard
Open vSwitch in the Ganeti tool chain.
9 3771161c Sebastian Gebhard
10 3771161c Sebastian Gebhard
Current state and shortcomings
11 3771161c Sebastian Gebhard
==============================
12 3771161c Sebastian Gebhard
13 3771161c Sebastian Gebhard
At the moment Ganeti's support for Open vSwitch is very basic and 
14 3771161c Sebastian Gebhard
limited to connecting instances to an existing vSwitch.
15 3771161c Sebastian Gebhard
16 3771161c Sebastian Gebhard
The shortcomings of this approach are:
17 3771161c Sebastian Gebhard
18 3771161c Sebastian Gebhard
1. The full functionality (VLANs, QoS and trunking) of Open vSwitch is not used.
19 3771161c Sebastian Gebhard
20 3771161c Sebastian Gebhard
2. Open vSwitch cannot be managed centrally.
21 3771161c Sebastian Gebhard
22 3771161c Sebastian Gebhard
Proposed changes
23 3771161c Sebastian Gebhard
----------------
24 3771161c Sebastian Gebhard
1. Implement functions into gnt-network to manage Open vSwitch through Ganeti gnt-network 
25 3771161c Sebastian Gebhard
   should be able to create, modify and delete vSwitches. The resulting configuration shall 
26 3771161c Sebastian Gebhard
   automatically be done on all members of the node group. Connecting Ethernet devices to
27 3771161c Sebastian Gebhard
   vSwitches should be managed through this interface as well.
28 3771161c Sebastian Gebhard
29 3771161c Sebastian Gebhard
2. Implement VLAN-capabilities: Instances shall have additional information for every NIC: VLAN-ID
30 3771161c Sebastian Gebhard
   and port type. These are used to determine their type of connection to Open vSwitch. This will
31 3771161c Sebastian Gebhard
   require modifying the methods for instance creation and modification
32 3771161c Sebastian Gebhard
33 3771161c Sebastian Gebhard
3. Implement NIC bonding: Functions to bond NICs for performance improvement, load-balancing and 
34 3771161c Sebastian Gebhard
   failover should be added. It is preferable to have a configuration option to determine the 
35 3771161c Sebastian Gebhard
   type of the trunk, as there are different types of trunks (LACP dynamic and static, different 
36 3771161c Sebastian Gebhard
   failover and load-balancing mechanisms)
37 3771161c Sebastian Gebhard
38 3771161c Sebastian Gebhard
4. Set QoS level on per instance basis: Instances shall have an additional information: maximum 
39 3771161c Sebastian Gebhard
   bandwidth and maximum burst. This helps to balance the bandwidth needs between the VMs and to 
40 3771161c Sebastian Gebhard
   ensure fair sharing of the bandwidth.
41 3771161c Sebastian Gebhard
42 3771161c Sebastian Gebhard
Configuration changes
43 3771161c Sebastian Gebhard
+++++++++++++++++++++
44 3771161c Sebastian Gebhard
Instances shall be extended with configuration options for
45 3771161c Sebastian Gebhard
46 3771161c Sebastian Gebhard
- VLAN-ID
47 3771161c Sebastian Gebhard
- port type (access port, trunk, hybrid)
48 3771161c Sebastian Gebhard
- maximum bandwidth
49 3771161c Sebastian Gebhard
- maximum burst rate
50 3771161c Sebastian Gebhard
51 3771161c Sebastian Gebhard
New configuration objects need to be created for the Open vSwitch configuration.
52 3771161c Sebastian Gebhard
53 3771161c Sebastian Gebhard
All these configuration changes need to be made available on the whole node group.
54 3771161c Sebastian Gebhard
55 3771161c Sebastian Gebhard
.. vim: set textwidth=72 :
56 3771161c Sebastian Gebhard
.. Local Variables:
57 3771161c Sebastian Gebhard
.. mode: rst
58 3771161c Sebastian Gebhard
.. fill-column: 72
59 3771161c Sebastian Gebhard
.. End: