Skip to content

Commit 0085b0f

Browse files
authored
Add warning about OVS plugin (#241)
* Add warning about OVS plugin * Update ovs-plugin.rst
1 parent 68ff7fd commit 0085b0f

File tree

1 file changed

+37
-34
lines changed

1 file changed

+37
-34
lines changed

source/plugins/ovs-plugin.rst

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,21 @@
1717
The OVS Plugin
1818
==============
1919

20+
.. warning::
21+
The OVS Plugin was not maintained in some CloudStack versions. Please use CloudStack
22+
4.16.0.0 and later. If you wish to use OVS as the default networking backend on Linux,
23+
only follow the Agent Configuration part of this guide.
24+
CloudStack will automatically detect it up based on the configuration in the
25+
agent.properties file. This in spite of the OVS Plugin not being shown in the
26+
Network Service Providers.
27+
28+
2029
Introduction to the OVS Plugin
2130
------------------------------
2231

2332
The OVS plugin is the native SDN
24-
implementations in CloudStack, using GRE isolation method. The plugin can be
25-
used by CloudStack to implement isolated guest networks and to provide
33+
implementations in CloudStack, using GRE isolation method. The plugin can be
34+
used by CloudStack to implement isolated guest networks and to provide
2635
additional services like NAT, port forwarding and load balancing.
2736

2837

@@ -48,12 +57,6 @@ the OVS Plugin.
4857

4958
Table: Supported Services
5059

51-
.. note::
52-
If you wish to use OVS as the default networking backend on Linux,
53-
just follow this guide and CloudStack will automatically pick it up
54-
based on the configuration in the agent.properties file. This in spite
55-
of the OVS Plugin not being shown in the Network Service Providers.
56-
5760
.. note::
5861
The Virtual Networking service was originally called 'Connectivity'
5962
in CloudStack 4.0
@@ -79,19 +82,19 @@ Configuring the OVS Plugin
7982
Prerequisites
8083
~~~~~~~~~~~~~
8184

82-
Before enabling the OVS plugin the hypervisor needs to be install OpenvSwitch.
83-
Default, XenServer has already installed OpenvSwitch. However, you must
84-
install OpenvSwitch manually on KVM. CentOS 6.4 and OpenvSwitch 1.10 are
85+
Before enabling the OVS plugin the hypervisor needs to be install OpenvSwitch.
86+
Default, XenServer has already installed OpenvSwitch. However, you must
87+
install OpenvSwitch manually on KVM. CentOS 6.4 and OpenvSwitch 1.10 are
8588
recommended.
8689

8790
KVM hypervisor:
8891

8992
- CentOS 6.4 is recommended.
9093

91-
- To make sure that the native bridge module will not interfere with
92-
openvSwitch the bridge module should be added to the blacklist. See the
93-
modprobe documentation for your distribution on where to find the blacklist.
94-
Make sure the module is not loaded either by rebooting or executing rmmod
94+
- To make sure that the native bridge module will not interfere with
95+
openvSwitch the bridge module should be added to the blacklist. See the
96+
modprobe documentation for your distribution on where to find the blacklist.
97+
Make sure the module is not loaded either by rebooting or executing rmmod
9598
bridge before executing next steps.
9699

97100

@@ -104,7 +107,7 @@ traffic type.
104107

105108
.. note::
106109
With KVM, the traffic type should be configured with the traffic label
107-
that matches the name of the Integration Bridge on the hypervisor. For
110+
that matches the name of the Integration Bridge on the hypervisor. For
108111
example, you should set the traffic label as following:
109112

110113
- Management & Storage traffic: cloudbr0
@@ -127,7 +130,7 @@ Agent Configuration
127130
- Configure network interfaces:
128131

129132
::
130-
133+
131134
/etc/sysconfig/network-scripts/ifcfg-eth0
132135
DEVICE=eth0
133136
BOOTPROTO=none
@@ -137,7 +140,7 @@ Agent Configuration
137140
TYPE=OVSPort
138141
DEVICETYPE=ovs
139142
OVS_BRIDGE=cloudbr0
140-
143+
141144
/etc/sysconfig/network-scripts/ifcfg-eth1
142145
DEVICE=eth1
143146
BOOTPROTO=none
@@ -147,7 +150,7 @@ Agent Configuration
147150
TYPE=OVSPort
148151
DEVICETYPE=ovs
149152
OVS_BRIDGE=cloudbr1
150-
153+
151154
/etc/sysconfig/network-scripts/ifcfg-cloudbr0
152155
DEVICE=cloudbr0
153156
ONBOOT=yes
@@ -158,15 +161,15 @@ Agent Configuration
158161
GATEWAY=172.16.10.1
159162
NETMASK=255.255.255.0
160163
HOTPLUG=no
161-
164+
162165
/etc/sysconfig/network-scripts/ifcfg-cloudbr1
163166
DEVICE=cloudbr1
164167
ONBOOT=yes
165168
DEVICETYPE=ovs
166169
TYPE=OVSBridge
167170
BOOTPROTO=none
168171
HOTPLUG=no
169-
172+
170173
/etc/sysconfig/network
171174
NETWORKING=yes
172175
HOSTNAME=testkvm1
@@ -175,7 +178,7 @@ Agent Configuration
175178
- Edit /etc/cloudstack/agent/agent.properties
176179

177180
::
178-
181+
179182
network.bridge.type=openvswitch
180183
libvirt.vif.driver=com.cloud.hypervisor.kvm.resource.OvsVifDriver
181184

@@ -286,7 +289,7 @@ Agent configuration
286289
- Edit /etc/cloudstack/agent/agent.properties to enable DPDK support on the agent and on ovs-vstcl commands for port creations as well as the path to OVS ports (usually: /var/run/openvswitch)
287290

288291
::
289-
292+
290293
openvswitch.dpdk.enabled=true
291294
openvswitch.dpdk.ovs.path=OVS_PATH
292295

@@ -295,15 +298,15 @@ Agent should be restarted for actions to take effect.
295298
When the host agent connects to the management server, it sends the list of hosts capabilities. When DPDK support is enabled on the host, the capability with name 'dpdk' is sent to the management server. The list of host capabilities are persisted on the 'capabilities' column on 'hosts' table, and can be retrieved by the 'listHosts' API method:
296299

297300
::
298-
301+
299302
list hosts id=HOST_ID filter=capabilities
300303

301304
Additional VM configurations
302305
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
303306
In order to enable DPDK on VM deployments, users should pass addition configuration to VMs. The required configurations are listed on the next section. Administrators can allow users to pass additional configurations to their VMs by the account scoped setting:
304307

305308
::
306-
309+
307310
enable.additional.vm.configuration
308311

309312
Users are able to pass extra configurations as part of the 'deployVirtualMachine' or 'updateVirtualMachine' API methods.
@@ -323,7 +326,7 @@ Example:
323326
In order to pass the below extra configuration to the VM, named 'config-1'
324327

325328
::
326-
329+
327330
config-1:
328331
<tag>
329332
<inner-tag>VALUE</inner-tag>
@@ -332,26 +335,26 @@ In order to pass the below extra configuration to the VM, named 'config-1'
332335
The 'extraconfig' parameter should receive the UTF-8 URL encoded string:
333336

334337
::
335-
338+
336339
config-1%3A%0A%3Ctag%3E%0A%20%20%20%3Cinner-tag%3EVALUE%3C%2Finner-tag%3E%0A%3C%2Ftag%3E
337340

338341
On 'user_vm_details' table the additional configuration is persisted with key: 'extraconfig-config-1'
339342

340343

341-
Additional configurations to enable DPDK on VMs
344+
Additional configurations to enable DPDK on VMs
342345
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
343346
To enable DPDK on VM deployments:
344347

345348
- Set the global configuration to 'true' (as global setting or account setting)
346349

347350
::
348-
351+
349352
enable.additional.vm.configuration
350353

351354
- Generate the UTF-8 URL encoded additional configuration to enable huge pages and NUMA, examples below:
352355

353356
::
354-
357+
355358
dpdk-hugepages:
356359
<memoryBacking>
357360
<hugepages>
@@ -368,13 +371,13 @@ To enable DPDK on VM deployments:
368371
- Pass the 'extraconfig' parameter to 'deployVirtualMachine' or 'updateVirtualMachine' API methods as a single UTF-8 URL encoded string containing multiple extra configurations (as shown above). Note: if multiple extra configurations are needed, follow the example above and add new sections separated by an empty line, encode the whole string and pass it as a single string to the APIs as 'extraconfig' parameter.
369372

370373
::
371-
374+
372375
deployVirtualMachine extraconfig=dpdk-hugepages%3A%0A%3CmemoryBacking%3E%0A%20%20%20%3Chugepages%3E%0A%20%20%20%20%3C%2Fhugepages%3E%0A%3C%2FmemoryBacking%3E%0A%0Adpdk-numa%3A%0A%3Ccpu%20mode%3D%22host-passthrough%22%3E%0A%20%20%20%3Cnuma%3E%0A%20%20%20%20%20%20%20%3Ccell%20id%3D%220%22%20cpus%3D%220%22%20memory%3D%229437184%22%20unit%3D%22KiB%22%20memAccess%3D%22shared%22%2F%3E%0A%20%20%20%3C%2Fnuma%3E%0A%3C%2Fcpu%3E%0A
373376

374377
- Additionally, users can pass extra configuration named 'dpdk-interface-TAG' to be included on VMs interfaces definition. Example below:
375378

376379
::
377-
380+
378381
dpdk-interface-model:
379382
<model type='virtio'/>
380383

@@ -403,7 +406,7 @@ It is possible to avoid passing additional configuration on each VM deployment,
403406
For example, applying DPDK additional configurations via service offering:
404407

405408
::
406-
409+
407410
create serviceoffering name=<NAME> displaytext=<NAME> serviceofferingdetails[0].key=extraconfig-dpdk-hugepages serviceofferingdetails[0].value=%3CmemoryBacking%3E%20%3Chugepages%2F%3E%20%3C%2FmemoryBacking%3E serviceofferingdetails[1].key=extraconfig-dpdk-numa serviceofferingdetails[1].value=%3Ccpu%20mode%3D%22host-passthrough%22%3E%20%3Cnuma%3E%20%3Ccell%20id%3D%220%22%20cpus%3D%220%22%20memory%3D%229437184%22%20unit%3D%22KiB%22%20memAccess%3D%22shared%22%2F%3E%20%3C%2Fnuma%3E%20%3C%2Fcpu%3E
408411

409412
The preferred DPDK vHost User Mode must be passed as a service offering detail, with special key name: "DPDK-VHOSTUSER". Possible values are: "client" or "server". The following table illustrates the expected behaviour on DPDK ports and VM guest interfaces.
@@ -419,7 +422,7 @@ By default, the server mode is assumed if it is not passed as a service offering
419422
+----------------------+------------------------+-------------------------+
420423

421424
::
422-
425+
423426
create serviceoffering name=<NAME> displaytext=<NAME> serviceofferingdetails[0].key=DPDK-VHOSTUSER serviceofferingdetails[0].value=client serviceofferingdetails[1].key=extraconfig-dpdk-hugepages serviceofferingdetails[1].value=%3CmemoryBacking%3E%20%3Chugepages%2F%3E%20%3C%2FmemoryBacking%3E serviceofferingdetails[2].key=extraconfig-dpdk-numa serviceofferingdetails[2].value=%3Ccpu%20mode%3D%22host-passthrough%22%3E%20%3Cnuma%3E%20%3Ccell%20id%3D%220%22%20cpus%3D%220%22%20memory%3D%229437184%22%20unit%3D%22KiB%22%20memAccess%3D%22shared%22%2F%3E%20%3C%2Fnuma%3E%20%3C%2Fcpu%3E
424427

425428
DPDK VMs live migrations

0 commit comments

Comments
 (0)