|
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:
|