Revision 20029b6e doc/design-openvswitch.rst

b/doc/design-openvswitch.rst
10 10
Current state and shortcomings
11 11
==============================
12 12

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

  
16 16
The shortcomings of this approach are:
......
21 21

  
22 22
Proposed changes
23 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 
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 26
   automatically be done on all members of the node group. Connecting Ethernet devices to
27 27
   vSwitches should be managed through this interface as well.
28 28

  
......
30 30
   and port type. These are used to determine their type of connection to Open vSwitch. This will
31 31
   require modifying the methods for instance creation and modification
32 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 
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 36
   failover and load-balancing mechanisms)
37 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 
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 40
   ensure fair sharing of the bandwidth.
41 41

  
42
Configuration changes
43
+++++++++++++++++++++
42
Configuration changes for VLANs
43
+++++++++++++++++++++++++++++++
44
nicparams shall be extended by a value "vlan" that will store the VLAN information for each NIC.
45
This parameter will only be used if nicparams[constants.NIC_MODE] == constants.NIC_MODE_OVS,
46
since it doesn't make sense in other modes.
47

  
48
Each VLAN the NIC belongs to shall be stored in this single value. The format of storing this information
49
is the same as the one which is used in Xen 4.3, since Xen 4.3 comes with functionality to support
50
OpenvSwitch.
51

  
52
This parameter will, at first, only be implemented for Xen and will have no effects on other hypervisors.
53
Support for KVM will be added in the future.
54

  
55
Example:
56
switch1 will connect the VM to the default VLAN of the switch1.
57
switch1.3 means that the VM is connected to an access port of VLAN 3.
58
switch1.2:10:20 means that the VM is connected to a trunk port on switch1, carrying VLANs 2, 10 and 20.
59

  
60
This configuration string is split at the dot and stored in nicparams[constants.NIC_LINK] and
61
nicparams[constants.NIC_VLAN] respectively.
62

  
63
For Xen hypervisors, this information can be concatenated again and stored in the vif config as
64
the bridge parameter and will be fully compatible with vif-openvswitch as of Xen 4.3.
65

  
66
Users of older Xen versions should be able to grab vif-openvswitch from the Xen repo and use it
67
(tested in 4.2).
68

  
69
The differentiation between access port and trunk port is given by the number of VLANs that are
70
specified.
71

  
72
gnt-instance modify shall be able to add or remove single VLANs from the vlan string without users needing
73
to specify the complete new string.
74

  
75
Configuration changes for QoS
76
+++++++++++++++++++++++++++++
44 77
Instances shall be extended with configuration options for
45 78

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

  

Also available in: Unified diff