Revision 3771161c

b/doc/design-draft.rst
19 19
   design-device-uuid-name.rst
20 20
   design-internal-shutdown.rst
21 21
   design-glusterfs-ganeti-support.rst
22
   design-openvswitch.rst
22 23

  
23 24
.. vim: set textwidth=72 :
24 25
.. Local Variables:
b/doc/design-openvswitch.rst
1
========================
2
Support for Open vSwitch
3
========================
4

  
5
.. contents:: :depth: 3
6

  
7
This is a design document detailing the implementation of support for
8
Open vSwitch in the Ganeti tool chain.
9

  
10
Current state and shortcomings
11
==============================
12

  
13
At the moment Ganeti's support for Open vSwitch is very basic and 
14
limited to connecting instances to an existing vSwitch.
15

  
16
The shortcomings of this approach are:
17

  
18
1. The full functionality (VLANs, QoS and trunking) of Open vSwitch is not used.
19

  
20
2. Open vSwitch cannot be managed centrally.
21

  
22
Proposed changes
23
----------------
24
1. Implement functions into gnt-network to manage Open vSwitch through Ganeti gnt-network 
25
   should be able to create, modify and delete vSwitches. The resulting configuration shall 
26
   automatically be done on all members of the node group. Connecting Ethernet devices to
27
   vSwitches should be managed through this interface as well.
28

  
29
2. Implement VLAN-capabilities: Instances shall have additional information for every NIC: VLAN-ID
30
   and port type. These are used to determine their type of connection to Open vSwitch. This will
31
   require modifying the methods for instance creation and modification
32

  
33
3. Implement NIC bonding: Functions to bond NICs for performance improvement, load-balancing and 
34
   failover should be added. It is preferable to have a configuration option to determine the 
35
   type of the trunk, as there are different types of trunks (LACP dynamic and static, different 
36
   failover and load-balancing mechanisms)
37

  
38
4. Set QoS level on per instance basis: Instances shall have an additional information: maximum 
39
   bandwidth and maximum burst. This helps to balance the bandwidth needs between the VMs and to 
40
   ensure fair sharing of the bandwidth.
41

  
42
Configuration changes
43
+++++++++++++++++++++
44
Instances shall be extended with configuration options for
45

  
46
- VLAN-ID
47
- port type (access port, trunk, hybrid)
48
- maximum bandwidth
49
- maximum burst rate
50

  
51
New configuration objects need to be created for the Open vSwitch configuration.
52

  
53
All these configuration changes need to be made available on the whole node group.
54

  
55
.. vim: set textwidth=72 :
56
.. Local Variables:
57
.. mode: rst
58
.. fill-column: 72
59
.. End:

Also available in: Unified diff