Top Banner
OpenStack Enhancements to Support NFV Use Cases Steve Gordon, Red Hat Adrian Hoban, Intel Alan Kavanagh, Ericsson
57

OpenStack Enhancements to Support NFV Use Cases

Jan 29, 2017

Download

Documents

phungtu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: OpenStack Enhancements to Support NFV Use Cases

OpenStack Enhancements to Support NFV Use Cases

Steve Gordon, Red Hat

Adrian Hoban, Intel

Alan Kavanagh, Ericsson

Page 2: OpenStack Enhancements to Support NFV Use Cases

o OpenStack Engagement Model for NFV

o Kilo Extensions for NFV

o Evolving the Cloud to Support NFV

Agenda

2

Page 3: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

OpenStack Engagement Model for NFV

Page 4: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

How did we get here?

Page 5: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

ETSI NFV ISG

●Decoder ring:oEuropean Telecommunication Standards Institute

oNetwork Function Virtualization

oIndustry Specification Group

●Putting the standards in standards body!

Page 6: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

ETSI NFV ISG

●Phase 1:oConvergence on network operator requirements

oIncluding applicable existing standards

oDeveloping new requirements to stimulate innovation

and open ecosystem of vendors

Page 7: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

ETSI NFV ISG

●Phase 2:oGrow an interoperable VNF ecosystem

oThoroughly specify reference points and requirements

defined in Phase 1

oAchieve broader industry engagement

oClarify how NFV intersects with SDN and related

standards/industry/open source initiatives.

Page 8: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

NFV ARCHITECTURE

Page 9: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

Open Platform for NFV (OPNFV)

●Establishing open source reference platform

including:oNFV Infrastructure (NFVI)

oVirtual Infrastructure Management (VIM)

●Focused on:oConsistency, performance, interoperability between

components.

oWorking with existing upstream communities.

Page 10: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

NFV ARCHITECTURE

Initial OPNFV

Focus

Page 11: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

Open Platform for NFV (OPNFV)

●Growing list of projects:oRequirements projects

E.g. Fault Management

oIntegration and Testing projects

E.g. IPv6 enabled OPNFV

oCollaborative Development projects

E.g. Software Fastpath Service Quality Metrics

oDocumentation projects

Page 12: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

Telco Working Group

●Mission:oIdentify Telco/NFV use cases

oDefine and prioritize requirements internally

oHarmonize inputs into OpenStack projects

Blueprint/patch creation, submission, and review.

●Move discussion closer to OpenStack

projects.

Page 13: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

OpenStack

●Large community of technical contributors in

wide array of loosely governed projects.

●NFV requirements fall across many of these.

●Require buy in from these diverse groups of

contributors.

Page 14: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

OpenStack

●Most projects moving to “specification”

process for approval of major changes

●Ingredients of a good specification:oProblem description incl. use cases

oConcrete design proposal

oSomeone to implement!

Page 15: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

Working Together

Success!

Page 16: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

Current State

●Overlap exists between various groups in:oMission

oMembership

oScope

oActivities

●Navigating can be tough!

Page 17: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

Working from both ends

●ETSI NFV

●OPNFV

●Telco Working Group

●OpenStack

Page 18: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

Working from both ends

●ETSI NFV

●OPNFV

●Telco Working Group

●OpenStack

Merging of “Worlds” happens here!

Page 19: OpenStack Enhancements to Support NFV Use Cases

19

Kilo Extensions for NFVBased on OpenStack community contributions & collaborations

Page 20: OpenStack Enhancements to Support NFV Use Cases

Non Uniform Memory Architecture (NUMA)o Memory Proximity

o Performance and latency characteristics differ depending on the core a process is executing on and where the memory a process is accessing is located.

ProcessorSocket 1

ProcessorSocket 0

CORE CORE CORE CORE

CORE CORE CORE COREApplication

Process

Application Process

Application Process

Application Process

Me

mo

ry

Me

mo

ry

Server

Optimising placement for memory proximity enables greater performance & efficiency

20

Page 21: OpenStack Enhancements to Support NFV Use Cases

Filter Extensions: NUMA

o numa_topology_filter

o Helps to co-locate CPU core allocations to a single socket (when possible)

o Resource tracks core/socket consumption and filters to available subset of suitable platforms.

21

ProcessorSocket 1

ProcessorSocket 0

CORE CORE CORE CORE

CORE CORE CORE COREApplication

Process

Application Process

Application Process

Application Process

Me

mo

ry

Me

mo

ry

Server

Co-location helps with cache efficiency for faster inter-process data communication

Page 22: OpenStack Enhancements to Support NFV Use Cases

o numa_topology_filter

o Helps to co-locate CPU core allocations to a single socket (when possible)

o Resource tracks core/socket consumption and filters to available subset of suitable platforms.

Filter Extensions: NUMA

ProcessorSocket 1

ProcessorSocket 0

CORE CORE CORE CORE

CORE CORE CORE COREApplication

Process

Application Process

Application Process

Application Process

Me

mo

ry

Me

mo

ry

Server

Enables the OSes to allocate local memory for greater performance & efficiency

22

Page 23: OpenStack Enhancements to Support NFV Use Cases

o Adds ability to select the socket based on the I/O device requirement

o E.g. What if you’d prefer network access on NIC B

Filter Extensions: NUMA – I/O Awareness

23

ProcessorSocket 1

ProcessorSocket 0

CORE CORE CORE CORE

CORE CORE CORE COREApplication

Process

Application Process

Application Process

Application Process

Me

mo

ry

Me

mo

ry

ServerNIC BNIC A

Page 24: OpenStack Enhancements to Support NFV Use Cases

Filter Extensions: NUMA – I/O Awareness

Enables improved I/O performance24

ProcessorSocket 1

ProcessorSocket 0

CORE CORE CORE CORE

CORE CORE CORE COREApplication

Process

Application Process

Application Process

Application Process

Me

mo

ry

Me

mo

ry

ServerNIC BNIC A

o Adds ability to select the socket based on the I/O device requirement

o E.g. What if you’d prefer/require network access on NIC B?

Page 25: OpenStack Enhancements to Support NFV Use Cases

Simultaneous Multi-Threading (SMT)

• SMTo On Intel platforms, run 2 threads at the same time per

core• Take advantage of wide execution engine

o Keep it fed with multiple threadso Hide latency of a single thread

• Power efficient performance featureo Very low die area costo Can provide significant performance benefit

depending on applicationo Much more efficient than adding an entire core

Tim

e (p

roc.

cycl

es)

w/o SMT SMT

Note: Each

box represents

a processor

execution unit

SMT enhances performance and energy efficiency

25

Page 26: OpenStack Enhancements to Support NFV Use Cases

Simultaneous Multi-Threading (SMT)

o Sample Linux enumeration of cores

o Linux scheduler (in the host) manages work load (process) allocation to CPUs

ProcessorSocket 1

ProcessorSocket 0

Execution Unit Execution Unit Execution Unit Execution Unit

Execution Unit Execution Unit Execution Unit Execution Unit

Server

pCPU 0 pCPU 4 pCPU 1 pCPU 5 pCPU 8 pCPU 12 pCPU 9 pCPU 13

pCPU 2 pCPU 6 pCPU 3 pCPU 7 pCPU 10 pCPU 14 pCPU 11 pCPU 15

26

Page 27: OpenStack Enhancements to Support NFV Use Cases

CPU Pinning – “Prefer” Policy (In Kilo)

ProcessorSocket 1

ProcessorSocket 0

Execution Unit Execution Unit Execution Unit Execution Unit

Execution Unit Execution Unit Execution Unit Execution Unit

Server

pCPU 0 pCPU 4 pCPU 1 pCPU 5 pCPU 8 pCPU 12 pCPU 9 pCPU 13

pCPU 2 pCPU 6 pCPU 3 pCPU 7 pCPU 10 pCPU 14 pCPU 11 pCPU 15

Guest OS A

vCPU 0 vCPU 1

Guest OS B

vCPU 0 vCPU 1

Prefer Policy: Place vCPUs on pCPU siblings (when SMT is enabled)

27

Page 28: OpenStack Enhancements to Support NFV Use Cases

CPU Pinning – “Separate” Policy (For Liberty)

ProcessorSocket 1

ProcessorSocket 0

Execution Unit Execution Unit Execution Unit Execution Unit

Execution Unit Execution Unit Execution Unit Execution Unit

Server

pCPU 0 pCPU4 pCPU 1 pCPU 5 pCPU 8 pCPU 12 pCPU 9 pCPU 13

pCPU 2 pCPU 6 pCPU 3 pCPU 7 pCPU 10 pCPU 14 pCPU 11 pCPU 15

Guest OS A

vCPU 0 vCPU 1

Guest OS B

vCPU 0 vCPU 1

Separate Policy: Scheduler will not place vCPUs from same guest on pCPU siblings

28

Page 29: OpenStack Enhancements to Support NFV Use Cases

CPU Pinning – “Isolate” Policy (For Liberty)

ProcessorSocket 1

ProcessorSocket 0

Execution Unit Execution Unit Execution Unit Execution Unit

Execution Unit Execution Unit Execution Unit Execution Unit

Server

pCPU 0 pCPU4 pCPU 1 pCPU 5 pCPU 8 pCPU 12 pCPU 9 pCPU 13

pCPU 2 pCPU 6 pCPU 3 pCPU 7 pCPU 10 pCPU 14 pCPU 11 pCPU 15

Guest OS A

vCPU 0 vCPU 1

Guest OS B

vCPU 0 vCPU 1

Isolate Policy: Nova will not place vCPUs from any pCPU that has an allocated sibling

29

Page 30: OpenStack Enhancements to Support NFV Use Cases

CPU Pinning – “Avoid” Policy (For Liberty)

ProcessorSocket 1

ProcessorSocket 0

Execution Unit Execution Unit Execution Unit Execution Unit

Execution Unit Execution Unit Execution Unit Execution Unit

Server

pCPU 0 pCPU 4 pCPU 1 pCPU 5 pCPU 8 pCPU 12 pCPU 9 pCPU 13

pCPU 2 pCPU 6 pCPU 3 pCPU 7 pCPU 10 pCPU 14 pCPU 11 pCPU 15

Guest OS A

vCPU 0 vCPU 1

Guest OS B

vCPU 0 vCPU 1

Avoid Policy: Nova scheduler will not place the guest on a host with SMT enabled

30

Page 31: OpenStack Enhancements to Support NFV Use Cases

No

Huge Page Tables• Translation Lookaside Buffer (TLB)

o Memory component that accelerates address translation.

o Caches a subset of address translations from the page table.

• Huge page table sizes (e.g. 1 GB)

o TLB caches a greater range of memory translations

o Helps reduces TLB misses.

Memory Address Translation Request

Page Entry in Cache?

TLB Cache Small (4KB) & Huge (1GB) Page Entries

Small page table entries (4KB) can result in a greater number of TLB misses

Check TLB Cache

Yes

Fast Translation

Fetch Page Table from memory

31

Page 32: OpenStack Enhancements to Support NFV Use Cases

Optimize Host for NFV- Huge Page Table and CPU Isolation

• Edit /etc/default/grub

• GRUB_CMDLINE_LINUX="intel_iommu=on

default_hugepagesz=2MB hugepagesz=1G

hugepages=8 isolcpus= 1, 2, 3, 5, 6, 7,

9, 10, 11, 13, 14, 15”

• sudo grub-mkconfig -o /boot/grub/grub.cfg

• sudo reboot

Compute Node(s)

32

Page 33: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: Create Host Aggregate• Create aggregate for NFV usage

• nova aggregate-create nfv-aggregate

• nova aggregate-set-metadata nfv-aggregate

nfv=true

• Add hosts to the NFV aggregate

33

Page 34: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: Create Host Aggregate• N.B.: Good practice to create an aggregate for non-NFV use

cases• nova aggregate-create default-usage

• nova aggregate-set-metadata default-usage

nfv=false

• Update all other flavours to include the meta-data• nova flavor-key <flavour-name> set

aggregate_instance_extra_specs:nfv=false

• Add hosts to the default aggregate

34

Page 35: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: /etc/nova/nova.conf

[default]

pci_alias={"name":"niantic",”vendor_id”:

”8086”, "product_id":"10fd"}

pci_passthrough_whitelist={"address":"00

00:08:00.0","physical_network":“physnetN

FV"}

35

Page 36: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: /etc/nova/nova.conf

[default]

scheduler_default_filters = RamFilter,

ComputeFilter, AvailabilityZoneFilter,

ComputeCapabilitiesFilter,

ImagePropertiesFilter,

AggregateInstanceExtraSpecFilter,

PciPassthroughFilter, NUMATopologyFilter

36

Page 37: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: /etc/nova/nova.conf

[libvirt]

cpu_mode=host-model or host-passthrough

vcpu_pin_set=1,2,3,5,6,7,9,10,11,13,14,15

37

Page 38: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: ml2_conf.ini

• Configure

/etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]

tenant_network_types = vlan

type_drivers = vlan

mechanism_drivers =

openvswitch,sriovnicswitch

[ml2_type_vlan]

network_vlan_ranges = physnetNFV:50:100

38

Page 39: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: ml2_conf_sriov.ini

• Configure

/etc/neutron/plugins/ml2/ml2_conf_sriov.ini

[ml2_sriov]

supported_pci_vendor_devs = 8086:10fb

agent_required = False

[sriov_nic]

physical_device_mappings =

physnetNFV:eth1

39

Page 40: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: Create VNF Flavor• nova flavor-create nfv-node auto 1024 0 4

• nova flavor-key nfv-node set

hw:cpu_policy=dedicated

hw:cpu_threads_policy=prefer

capabilities:cpu_info:features=aes

pci_passthrough:alias=niantic:1

aggregate_instance_extra_specs:nfv=true

40

Page 41: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: Create VNF Flavor• nova flavor-key nfv-node set

hw:numa_nodes=1

hw:numa_cpus.0=0,1,2,3

hw:numa_mempolicy=strict

hw:numa_mem.0=1024

hw:mem_page_size=2048

41

Page 42: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: Create Network• neutron net-create –provider:physical_network

=physnetNFV -provider:network_type=vlan NFV-

network

• neutron subnet-create NFV-network <CIDR> –

name <Subnet_Name> –allocation-

pool=<start_ip>, end=<end_ip>

• neutron port-create NFV-network --

binding:vnic-type direct

42

Page 43: OpenStack Enhancements to Support NFV Use Cases

Optimize for NFV: Boot VNF VM

• nova boot --flavor nfv-node --image <image> -

-nic port-id=<from port-create command> <vm

name>

43

Page 44: OpenStack Enhancements to Support NFV Use Cases

Other Notable Changes:

• New ML2 OVS driver for ovs+netdev-dpdk

o High Performance User Space based vSwitching

o High Performance path to the VM (vHost User), with new VIF type in Nova.

NIC

DPDKLibraries

Polled Mode Driver

DPDK netdev

Kernel Packet Processing

User Space Forwarding

socketTAP

netdev

ovs-switchd

qemu

VMvirtio

vHost

Tunnels

44

• Available on stackforge/networking-ovs-dpdk

• Supports DVR in VLAN and VXLAN modes

Page 45: OpenStack Enhancements to Support NFV Use Cases

Other Notable Changes:

o VLAN Trunking API Extension

o New network property that indicates requirement for transparent VLANs

o ML2 drivers that indicate that they do not support transparent VLANs or do not have the attribute will fail to create the transparent network.

o LB, VXLAN and GRE drivers support VLAN transparent networks

o The VLAN and OVS drivers do not support VLAN transparent networks

o Service VM Port Security (Disable) Extension

o Neutron's security group always applies anti-spoof rules on the VMs.

o This allows traffic to originate and terminate at the VM as expected, but prevents traffic to pass through the VM. Disabling security is required in cases where the VM routes traffic through it.

45

Page 46: OpenStack Enhancements to Support NFV Use Cases

Ericsson | Page 46

VNF Deployment Considerations& Future Work

Page 47: OpenStack Enhancements to Support NFV Use Cases

Ericsson | Page 47

Evolution of node delivery

Optimized

App

Optimized

App

Page 48: OpenStack Enhancements to Support NFV Use Cases

Ericsson | Page 48

Customized application and Hardware

Custom Hardware

Platform

APPLICATION

Host OS

Bin/Libs

Optimized Host OS

for custom hardware

Application designed based

on Custom hardware and OS

Optimized

Service

Page 49: OpenStack Enhancements to Support NFV Use Cases

Ericsson | Page 49

HDS 8000

Application running on Industry Standard High Volume Standard

Industry Standard Hardware

APPLICATION

Host OS

Bin/Libs

Optimized Host OS

Application designed based

on x86 PlatformOptimized

VNF on

Bare metal

Page 50: OpenStack Enhancements to Support NFV Use Cases

Ericsson | Page 50

Type 2 Hardware Virtualization

Physical Server

APP

Bin/Libs

Hypervisor

Guest

OS

APP

Bin/Libs

Guest

OS

VM VM

Host OS

Virtual

Machine

App run inside VM

Any Guest

H/w Emulation: Expose Instruction

Set to Guest OS

CPU Support for Virtualization

Intel® VT-x, Intel® VT-d: H/W Emulation

Page 51: OpenStack Enhancements to Support NFV Use Cases

Ericsson | Page 51

Linux Containers

Containers share same OS Kernel and

are separated by “Name Spaces”Physical Server

APP

Bin/Libs

APP

Bin/Libs

Container Container

Host OS

Linux Containers on bare metal

Application sharing common

libraries and Kernel

Page 52: OpenStack Enhancements to Support NFV Use Cases

Ericsson | Page 52

Containers inside VM

Physical Server

VM-1

APP

Bin/Libs

APP

Bin/Libs

Container Container

Guest OS

Hypervisor

APP

Bin/Libs

APP

Bin/Libs

Container Container

Guest OS

VM-2

Page 53: OpenStack Enhancements to Support NFV Use Cases

Ericsson | Page 53

Which deployment option?

• Provides density and

isolation to run different

“Guest OS”

• Virtualising the h/w

platform for VNF’s to

run on any x86 machine

• Platform Resources e.g.

CPU and Memory can

be shared or dedicated

and allocated to

different VNF’s

Hypervisor

Which deployment option suits my vnf?

baremetal

• Applications that

consume all resources

on the blade and mission

critical applications

• Infrastructure

applications that perform

high user plane and

control plane packet

processing

• Dedicated resource

isolation due to

regulatory requirement

• No hypervisor license

fee, i.e.CAPEX

reduction, removes

overhead and potential

layers of failure

container

• Suitable for VNF/Apps

that can share a

common kernel

• Offers high form of

density and removal of

multiple guest and

hypervisor overheads

• H/W acceleration

support in progress

• Reduced isolation

compared to VM’s

answer

• All 3 Deployment

options are needed

• VNF/Apps will

benefit differently

in each

deployment option

• By supporting all 3

deployment

options in an IaaS

Manager, we can

support all

possible VNF/Apps

type deployment

models

Page 54: OpenStack Enhancements to Support NFV Use Cases

Summary

• Transparent collaboration between ETSI-NFV, OPNFV, Telco-WG and OpenStack core projects vital to enabling OpenStack for NFV.

• Making steady but meaningful progress on NFV enablement.

• Hypervisor, bare metal and container deployment options in an IaaS system are needed to support all possible VNF/Apps types.

54

Page 55: OpenStack Enhancements to Support NFV Use Cases

55

Q&A

Page 56: OpenStack Enhancements to Support NFV Use Cases

<PRESENTATION TITLE>

References - Contributing

●ETSI:ohttps://portal.etsi.org/TBSiteMap/NFV/NFVMembership.aspx

●OPNFV:ohttps://www.opnfv.org/developers/how-participate

●TelcoWG:ohttps://wiki.openstack.org/wiki/TelcoWorkingGroup

●OpenStack:ohttps://wiki.openstack.org/wiki/How_To_Contribute

Page 57: OpenStack Enhancements to Support NFV Use Cases

Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at [intel.com].

Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products.

Intel, the Intel logo, Intel® Advanced Encryption Standard New Instructions (Intel® AES-NI) 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.

© 2015 Intel Corporation.

57

Intel Disclaimers