Slide 1

Slide 1 text

Stephen Finucane ([email protected]) OpenStack Software Engineer, Intel Shannon

Slide 2

Slide 2 text

Intel Legal Notices and Disclaimers Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Learn more at intel.com, or from the OEM or retailer. No computer system can be absolutely secure. Tests document performance of components on a particular test, in specific systems. Differences in hardware, software, or configuration will affect actual performance. Consult other sources of information to evaluate performance as you consider your purchase. For more complete information about performance and benchmark results, visit http://www.intel.com/performance. Intel, the Intel logo and others are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others. © 2016 Intel Corporation. 2

Slide 3

Slide 3 text

3 Previous BrightTALK Talks ▪ EPA Features in OpenStack Kilo – https://www.brighttalk.com/webcast/12229/181563 ▪ Enabling ODL for Network Operators – https://www.brighttalk.com/webcast/12229/203981 ▪ Open vSwitch with DPDK in OVS 2.4.0 – https://www.brighttalk.com/webcast/12229/194949 ▪ DPDK 16.04 New Features – https://www.brighttalk.com/webcast/12229/198051

Slide 4

Slide 4 text

4 Previous “Other” Talks ▪ Noobs Guide to OVS-DPDK (FOSDEM) – https://fosdem.org/2016/schedule/event/n00b_dpdk/ ▪ OVS, DPDK and Software Dataplane Acceleration (OVS Conference) – https://fosdem.org/2016/schedule/event/ovs_dpdk/ ▪ OVS in OPNFV (OVS Conference) – https://www.youtube.com/watch?v=vPmenYdCWsg ▪ OVS Learn Action Firewall (OpenStack Austin Summit) – https://www.openstack.org/videos/video/tired-of-iptables-based-security-groups- heres-how-to-gain-tremendous-speed-with-open-vswitch-instead

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

6 NFV, n. Abbreviation for Network Functions Virtualization: an initiative to virtualize the network services that are now being carried out by proprietary, dedicated hardware.

Slide 7

Slide 7 text

7 NFV, n. Abbreviation for Network functions virtualization: an initiative to virtualize the network services that are now being carried out by proprietary, dedicated hardware. tl;dr: Telco != Enterprise

Slide 8

Slide 8 text

8 Enterprise vs. Telco Primary Use Cases Enterprise Apps Telco VNFs Networking 10 Gig, Varied Packets 40 Gig, Small Packets Scale Local or Limited Massively Distributed Regulation Little or None High Hardware Offload ✘ ✔ Software Out-of-Box Custom* Why? Lowered costs, improved agility, …

Slide 9

Slide 9 text

9 An NFV Platform Open Source Software Stack OpenStack OVS + DPDK QEMU + libvirt Linux + KVM

Slide 10

Slide 10 text

10 An NFV Platform Open Source Software Stack OpenStack OVS + DPDK QEMU + libvirt Linux + KVM

Slide 11

Slide 11 text

Why? 0 1 2 3 4 5 6 7 8 9 10 64 256 Throughput (Mbps) Phy-VM-Phy Performance Comparison Native OVS OVS with DPDK (One Core) OVS with DPDK (One core, HT) 11

Slide 12

Slide 12 text

Why? 0 1 2 3 4 5 6 7 8 9 10 64 256 Throughput (Mbps) Phy-VM-Phy Performance Comparison Native OVS OVS with DPDK (One Core) OVS with DPDK (One core, HT) 12

Slide 13

Slide 13 text

13 DPDK + OVS + (OpenStack) Neutron DPDK (fast, userspace packet processing libraries) + OVS (the leading open source virtual switch in OpenStack) + Neutron (Networking-as-a-Service for OpenStack) = Fast, DPDK-accelerated network interfaces in OpenStack

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

What is networking-ovs-dpdk 15

Slide 16

Slide 16 text

16 networking-ovs-dpdk’s evolution Kilo Deployment OVS agent ML2 driver Liberty Deployment OVS agent ML2 driver SG driver Mitaka Deployment OVS agent ML2 driver SG driver Newton TBD…

Slide 17

Slide 17 text

17 networking-ovs-dpdk ❑ Deployment scripts ▪ DevStack ❑ OVS-DPDK agent ❑ ML2 driver neutron n/a Initial release (Kilo)

Slide 18

Slide 18 text

18 networking-ovs-dpdk ❑ Deployment scripts ▪ DevStack, Puppet ❑ ML2 driver ❑ SG driver neutron ❑ OVS agent support Liberty release cycle

Slide 19

Slide 19 text

19 networking-ovs-dpdk ❑ Deployment scripts ▪ DevStack, Puppet ❑ SG driver neutron ❑ OVS agent support ❑ ML2 driver support Mitaka release cycle

Slide 20

Slide 20 text

20 OVS Agent OVS Host OVS Agent OVSDB Server Controller Neutron Server ML2 OVS Mech Driver AMQP

Slide 21

Slide 21 text

21 OVS-DPDK and Neutron datapath_types=[netdev, ...] iface_types=[dpdkvhostuser, ...] …becomes... vif_type=vif_vhostuser OVSDB Neutron

Slide 22

Slide 22 text

22 Using it… neutron port-create $NETWORK_ID nova interface-attach --port-id $PORT_ID $INSTANCE_ID

Slide 23

Slide 23 text

23 iptables-based Security Group Driver Linux Bridge tap vEth br-int (OVS) vEth

Slide 24

Slide 24 text

24 iptables-based Security Group Driver Linux Bridge tap vEth br-int (OVS) vEth

Slide 25

Slide 25 text

25 iptables-based Security Group Driver Linux Bridge tap vEth br-int (OVS) vEth

Slide 26

Slide 26 text

26 “Learn action”-based Security Group Driver br-int (OVS) tap

Slide 27

Slide 27 text

27 Performance 0 1 2 3 4 5 6 7 8 9 10 64 128 256 512 1024 1280 1518 Throughput (Mbps) Security Group Performance Comparison OVS 2.4, iptables DPDK, no firewall, OVS 2.4 DPDK, "learn action" implementation, OVS 2.4

Slide 28

Slide 28 text

28 In summary, networking-ovs-dpdk… WAS a fork of the OVS agent and a new ML2 driver IS a collection of deployment scripts and a security group driver (everything else is upstream)

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

30 The short version enable_plugin networking-ovs-dpdk \ https://github.com/openstack/networking-ovs-dpdk \ master

Slide 31

Slide 31 text

31 The long version 1. Install OVS with DPDK 2. Configure Neutron, e.g. ml2_conf.ini [OVS] datapath_type=netdev ... 3. Start Neutron Open vSwitch agent 4. Configure VM to use huge pages openstack flavor set FLAVOR_NAME hw:mem_page_size=large 5. Boot VMs

Slide 32

Slide 32 text

32 Useful info ▪ Flavour aggregates – OVS and OVS-DPDK can coexist peacefully ▪ DevStack vs. Puppet – Deployment or development? ▪ Multi-queue support – Can be configured – nice performance boost ▪ L3 support (e.g. DVR) – Performance is currently sub-optimal

Slide 33

Slide 33 text

33 Other projects ▪ networking-odl – OpenDaylight (ODL) caches datapath type and supported interfaces – networking-odl replaces the OVS agent – query the ODL topology API instead ▪ networking-ovn – Supports configurable VIF type – all or nothing

Slide 34

Slide 34 text

34 Future work ▪ Accelerate L3 networking (example: DVR) – Performance is currently sub-optimal ▪ Upstream security group driver for OVS with DPDK – This is out-of-tree currently – need to compare with conntrack solutions ▪ Integrate of vif_vhostuser into os-vif ▪ Add support for OVS-DPDK powered QoS in Neutron ▪ Add support for VLAN-aware VMs in Neutron ▪ Add support for other deployment methods

Slide 35

Slide 35 text

35 Call to action

Slide 36

Slide 36 text

36 Call to action

Slide 37

Slide 37 text

37 Call to action

Slide 38

Slide 38 text

Stephen Finucane ([email protected]), OpenStack Software Engineer, Intel Shannon

Slide 39

Slide 39 text

No content