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