NetBricks: Taking the V out of NFV. Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, Scott Shenker UC Berkeley, Google, ICSI

Similar documents
SafeBricks: Shielding Network Functions in the Cloud

BESS: A Virtual Switch Tailored for NFV

ResQ: Enabling SLOs in Network Function Virtualization

A High Performance Packet Core for Next Generation Cellular Networks

Making Network Functions Software-Defined

Stateless Network Functions:

NFVnice: Dynamic Backpressure and Scheduling for NFV Service Chains

Elastic Scaling of Stateful Network Functions

G-NET: Effective GPU Sharing In NFV Systems

1 Network Function Virtualization

PDP : A Flexible and Programmable Data Plane. Massimo Gallo et al.

libvnf: building VNFs made easy

A Comparison of Performance and Accuracy of Measurement Algorithms in Software

Rule-Based Forwarding

VNF Chain Allocation and Management at Data Center Scale

Design Challenges for High Performance, Scalable NFV Interconnects

Open vswitch Extensions with BPF

Revisiting Network Support for RDMA

Introducing the Cray XMT. Petr Konecny May 4 th 2007

SPIN Operating System

Model Checking Dynamic Datapaths

Comparing Open vswitch (OpenFlow) and P4 Dataplanes for Agilio SmartNICs

Recent Advances in Software Router Technologies

OpenNetVM: A Platform for High Performance Network Service Chains

Supporting Fine-Grained Network Functions through Intel DPDK

Stateless Datacenter Load Balancing with Beamer

NFVRG Interim Meeting notes

Scalable Verification of Stateful Networks. Aurojit Panda, Ori Lahav, Katerina Argyraki, Mooly Sagiv, Scott Shenker UC Berkeley, TAU, ICSI

PacketShader: A GPU-Accelerated Software Router

MWC 2015 End to End NFV Architecture demo_

Achieve Low Latency NFV with Openstack*

Software Routers: NetMap

Embark: Securely Outsourcing Middleboxes to the Cloud

PVPP: A Programmable Vector Packet Processor. Sean Choi, Xiang Long, Muhammad Shahbaz, Skip Booth, Andy Keep, John Marshall, Changhoon Kim

Programmable NICs. Lecture 14, Computer Networks (198:552)

Network function virtualization

Be Fast, Cheap and in Control with SwitchKV. Xiaozhou Li

Sc.B. Math Computer Science, Brown University, Providence, RI. Honors in Math Computer Science Advisor: Meinolf Sellmann

Rule based Forwarding (RBF): improving the Internet s flexibility and security. Lucian Popa, Ion Stoica, Sylvia Ratnasamy UC Berkeley Intel Labs

Hash Table Design and Optimization for Software Virtual Switches

Placement Strategies for Virtualized Network Functions in a NFaaS Cloud

Supporting Fine-Grained Network Functions through Intel DPDK

NetVM: High Performance and Flexible Networking Using Virtualization on Commodity Platforms

FlexNIC: Rethinking Network DMA

New Approach to OVS Datapath Performance. Founder of CloudNetEngine Jun Xiao

Demystifying Network Cards

Power Management for Networked Systems

A Look at Intel s Dataplane Development Kit

Software Engineering Intern, Electronic Arts, Redwood City, CA. Developed memory management tools for the PlayStation 3.

Elastic Scaling of Stateful Network Functions

Evaluating the Suitability of Server Network Cards for Software Routers

CSCE 410/611: Virtualization

Fast packet processing in the cloud. Dániel Géhberger Ericsson Research

G-NET: Effective GPU Sharing in NFV Systems

MoonGen. A Scriptable High-Speed Packet Generator. Paul Emmerich. January 31st, 2016 FOSDEM Chair for Network Architectures and Services

Programmable Software Switches. Lecture 11, Computer Networks (198:552)

vsphere Design and Deploy Fast Track v6 Additional Slides

Building a Platform Optimized for the Network Edge

CSCE 410/611: Virtualization!

Virtual Switch Acceleration with OVS-TC

Application Delivery Using Software Defined Networking

I/O Buffering and Streaming

Tailwind: Fast and Atomic RDMA-based Replication. Yacine Taleb, Ryan Stutsman, Gabriel Antoniu, Toni Cortes

Shark. Hive on Spark. Cliff Engle, Antonio Lupher, Reynold Xin, Matei Zaharia, Michael Franklin, Ion Stoica, Scott Shenker

references Virtualization services Topics Virtualization

PASTE: A Network Programming Interface for Non-Volatile Main Memory

High Performance Packet Processing with FlexNIC

Building Efficient and Reliable Software-Defined Networks. Naga Katta

Bringing the Power of ebpf to Open vswitch. Linux Plumber 2018 William Tu, Joe Stringer, Yifeng Sun, Yi-Hung Wei VMware Inc. and Cilium.

CSC258: Computer Organization. Memory Systems

소프트웨어기반고성능침입탐지시스템설계및구현

Forwarding Architecture

Learning with Purpose

E2: A Framework for NFV Applications

High-Speed Forwarding: A P4 Compiler with a Hardware Abstraction Library for Intel DPDK

Agilio OVS Software Architecture

Precision and Accuracy of Packet Generators Who tests the testers?

Backend for Software Data Planes

Introduction to Programming Microsoft.NET Applications with Visual Studio 2008 (C#)

PISCES: A Programmable, Protocol-Independent Software Switch

KVM as The NFV Hypervisor

Architecture for Building Hybrid Kernel-User Space Virtual Network Functions

TOWARDS FAST IP FORWARDING

Optimization Techniques

Network Design Considerations for Grid Computing

GEN: A GPU-Accelerated Elastic Framework for NFV

RPT: Re-architecting Loss Protection for Content-Aware Networks

NETWORK OVERLAYS: AN INTRODUCTION

Microboxes: High Performance NFV with Customizable, Asynchronous TCP Stacks and Dynamic Subscriptions

Data Centers and Cloud Computing. Slides courtesy of Tim Wood

CSE 504: Compiler Design. Runtime Environments

P4-based VNF and Micro-VNF chaining for servers with SmartNICs

Module 10 MULTIMEDIA SYNCHRONIZATION

Accelerating Telco NFV Deployments with DPDK and SmartNICs

ClearSpeed Visual Profiler

JStorm Based Network Analytics Platform. Alibaba Cloud Senior Technical Manager, Biao Lyu

15-744: Computer Networking. Middleboxes and NFV

Data Centers and Cloud Computing. Data Centers

Thomas Lin, Naif Tarafdar, Byungchul Park, Paul Chow, and Alberto Leon-Garcia

Survey of ETSI NFV standardization documents BY ABHISHEK GUPTA FRIDAY GROUP MEETING FEBRUARY 26, 2016

Transcription:

NetBricks: Taking the V out of NFV Aurojit Panda, Sangjin Han, Keon Jang, Melvin Walls, Sylvia Ratnasamy, Scott Shenker UC Berkeley, Google, ICSI

What the heck is NFV?

A Short Introduction to NFV

A Short Introduction to NFV Firewall IDS Cache LB

A Short Introduction to NFV Firewall IDS Cache LB Network Function Chain

Why NFV? Simplifies adding new functionality: Deploy new software.

Why NFV? Simplifies adding new functionality: Deploy new software. Simplifies developing new functionality: Write software vs design hardware

Why NFV? Simplifies adding new functionality: Deploy new software. Simplifies developing new functionality: Write software vs design hardware Reuse management tools from other domains.

Why NFV? Simplifies adding new functionality: Deploy new software. Simplifies developing new functionality: Write software vs design hardware Reuse management tools from other domains. Consolidation: Reduce number of hardware boxes in the network.

Challenges for NFV

Challenges for NFV Running NFs Isolation and Performance

Challenges for NFV Running NFs Isolation and Performance Building NFs High-Level Programming and Performance

Running NFs

Isolation Memory Isolation: Each NF s memory cannot be accessed by other NFs.

Isolation Memory Isolation: Each NF s memory cannot be accessed by other NFs. Packet Isolation: When chained, each NF processes packets in isolation.

Isolation Memory Isolation: Each NF s memory cannot be accessed by other NFs. Packet Isolation: When chained, each NF processes packets in isolation.

Isolation Memory Isolation: Each NF s memory cannot be accessed by other NFs. Packet Isolation: When chained, each NF processes packets in isolation. Performance Isolation: One NF does not affect another s performance.

Isolation Memory Isolation: Each NF s memory cannot be accessed by other NFs. Packet Isolation: When chained, each NF processes packets in isolation. Performance Isolation: One NF does not affect another s performance.

Current Solution Memory Isolation vswitch VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch Copy VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch Copy VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch Copy VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch Copy VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Current Solution Memory Isolation vswitch Copy VM/Container VM/Container VM/Container Packet Isolation NIC... NIC Performance

Isolation Costs Performance

Isolation Costs Performance

Isolation Costs Performance

Isolation Costs Performance

Isolation Costs Performance

Isolation Costs Performance

NetBricks Runtime Architecture Single Process Space NF D NF D NF D NF C NF Z NF C NF Z NF C NF Z NF B NF Y NF B NF Y NF B NF Y NF A NF X NF A NF X NF A NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

NetBricks Runtime Architecture Single Process Space NF D NF D NF D NF C NF Z NF C NF Z NF C NF Z Function NF B NF Y Call NF B NF Y NF B NF Y NF A NF X NF A NF X NF A NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

NetBricks Runtime Architecture Single Process Space NF D NF D NF D NF C NF Z NF C NF Z NF C NF Z NF B NF Y NF B NF Y NF B NF Y NF A NF X NF A NF X NF A NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

NetBricks Runtime Architecture Single Process Space NF D NF D NF D NF C NF Z NF C Run NF Z NF C NF Z to NF B NF Y NF B Completion NF Y NF B NF Y Scheduling NF A NF X NF A NF X NF A NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

NetBricks Runtime Architecture Single Process Space NF D NF D NF D NF C NF B NF Z NF C Run NF Z NF C What about to Isolation? NF Y NF B Completion NF Y NF B Scheduling NF Z NF Y NF A NF X NF A NF X NF A NF X ZCSI Scheduler DPDK Poll for I/O DPDK Poll for I/O DPDK Poll for I/O Poll for I/O NICs

Provide Isolation through Software

ZCSI: Zero Copy Soft Isolation VMs and containers impose cost on packets crossing isolation boundaries. Frequent operation for many NFs which must support 10s of MPPS.

ZCSI: Zero Copy Soft Isolation VMs and containers impose cost on packets crossing isolation boundaries. Frequent operation for many NFs which must support 10s of MPPS. Insight: Use type checking (compile time) and runtime checks for isolation. Isolation costs largely paid at compile time (small runtime costs).

Our Approach Disallow pointer arithmetic in NF code: use safe subset of languages.

Our Approach Disallow pointer arithmetic in NF code: use safe subset of languages. Type checks + array bounds checking provide memory isolation.

Our Approach Disallow pointer arithmetic in NF code: use safe subset of languages. Type checks + array bounds checking provide memory isolation. Build on unique types for packet isolation.

Our Approach Disallow pointer arithmetic in NF code: use safe subset of languages. Type checks + array bounds checking provide memory isolation. Build on unique types for packet isolation. Unique types ensure references destroyed after certain calls.

Our Approach Disallow pointer arithmetic in NF code: use safe subset of languages. Type checks + array bounds checking provide memory isolation. Build on unique types for packet isolation. Unique types ensure references destroyed after certain calls. Ensure only one NF has a reference to a packet.

Our Approach Disallow pointer arithmetic in NF code: use safe subset of languages. Type checks + array bounds checking provide memory isolation. Build on unique types for packet isolation. Unique types ensure references destroyed after certain calls. Ensure only one NF has a reference to a packet. Enables zero copy packet I/O.

Our Approach Disallow pointer arithmetic in NF code: use safe subset of languages. Type checks + array bounds checking provide memory isolation. Build on unique types for packet isolation. Unique types ensure references destroyed after certain calls. Ensure only one NF has a reference to a packet. Enables zero copy packet I/O. All of these features implemented on top of Rust.

Software can provide both Memory and Packet Isolation

Benefits of Software Isolation Enable better consolidation: multiple NFs can share a core.

Benefits of Software Isolation Enable better consolidation: multiple NFs can share a core. Normally hard because of context switch costs (~1µs).

Benefits of Software Isolation Enable better consolidation: multiple NFs can share a core. Normally hard because of context switch costs (~1µs). In our case just a function call (a few cycles at most).

Benefits of Software Isolation Enable better consolidation: multiple NFs can share a core. Normally hard because of context switch costs (~1µs). In our case just a function call (a few cycles at most). Reduce memory and cache pressure for NFV deployments.

Benefits of Software Isolation Enable better consolidation: multiple NFs can share a core. Normally hard because of context switch costs (~1µs). In our case just a function call (a few cycles at most). Reduce memory and cache pressure for NFV deployments. Zero copy I/O => do not need to copy packets around.

Challenges for NFV Running NFs Isolation and Performance Building NFs High-Level Programming and Performance

How to write NFs? Current: NF writers concerned about meeting performance targets

How to write NFs? Current: NF writers concerned about meeting performance targets Low level abstractions (I/O, cache aware data structures) and low level code.

How to write NFs? Current: NF writers concerned about meeting performance targets Low level abstractions (I/O, cache aware data structures) and low level code. Spend lots of time optimizing how abstractions are used to get performance.

How to write NFs? Current: NF writers concerned about meeting performance targets Low level abstractions (I/O, cache aware data structures) and low level code. Spend lots of time optimizing how abstractions are used to get performance. Observation: NFs exhibit common patterns: abstract and optimize these.

How to write NFs? Current: NF writers concerned about meeting performance targets Low level abstractions (I/O, cache aware data structures) and low level code. Spend lots of time optimizing how abstractions are used to get performance. Observation: NFs exhibit common patterns: abstract and optimize these. What happened in other areas

How to write NFs? Current: NF writers concerned about meeting performance targets Low level abstractions (I/O, cache aware data structures) and low level code. Spend lots of time optimizing how abstractions are used to get performance. Observation: NFs exhibit common patterns: abstract and optimize these. What happened in other areas MPI to Map Reduce, etc.

Abstractions Packet Processing Abstractions Parse/Deparse Transform Filter Parse (or undo parsing for) a header from the packet. Operate on the packet header and payload. Drop packet whose header or payload meet some criterion. Byte Stream Processing Abstractions Window Packetize Use a sliding window to gather packet payload and call a function. Segment a byte array into a sequence of packets, Control Flow Group By Shuffle Merge Branch control flow between abstractions. Shuffle packets across processing cores. Merge control from branches. State Abstractions Bounded Consistency State State store with tunable consistency specification. Schedulabe Abstractions Invoke Periodically execute a function.

Shuffle Abstraction Spread packets across cores for scaling + + Core 1 Core 2 + Core 3 + Counters Core 4 Input Mux Counter Demux Output

Shuffle Abstraction Spread packets across cores for scaling + + Might even use + hardware for this. Core 1 Core 2 Core 3 + Counters Core 4 Input Mux Counter Demux Output

Example NF: Maglev Maglev: Load balancer from Google (NSDI 16). Main contribution: a novel consistent hashing algorithm. Most of the work in common optimization: batching, scaling cross core. NetBricks implementation: 105 lines, 2 hours of grad student time. Comparable performance to optimized code

Managing NFs Building and Running NFs

Managing NFs Building and Running NFs E2 (SOSP 15) Stratos FTMB (SIGCOMM 15) FlowTags (NSDI 14)

Managing NFs Building and Running NFs No Isolation E2 (SOSP 15) CoMB (NSDI 12) xomb (ANCS 12) Stratos FTMB (SIGCOMM 15) FlowTags (NSDI 14)

Managing NFs Building and Running NFs No Isolation E2 (SOSP 15) CoMB (NSDI 12) xomb (ANCS 12) Stratos FTMB (SIGCOMM 15) FlowTags (NSDI 14) VM Isolation NetVM (IEEE TNSM) ClickOS (NSDI 14) HyperSwitch (ATC 13) mswitch (SOSR 15)

Managing NFs Building and Running NFs No Isolation E2 (SOSP 15) CoMB (NSDI 12) xomb (ANCS 12) Stratos FTMB (SIGCOMM 15) FlowTags (NSDI 14) VM Isolation NetVM (IEEE TNSM) ClickOS (NSDI 14) HyperSwitch (ATC 13) mswitch (SOSR 15) No Packet Isol.

Conclusion Performance demands for NFV require forwarding 10-100 MPPS. Requires isolation for consolidation. Software isolation is necessary to meet performance requirements. Requires low level optimization, slowing down NF development. Abstract operators + UDF can simplify development without sacrificing performance.

Conclusion Performance demands for NFV require forwarding 10-100 MPPS. Requires isolation for consolidation. Software isolation is necessary to meet performance requirements. Requires low level optimization, slowing down NF development. Abstract operators + UDF can simplify development without sacrificing performance. Code available at http://netbricks.io/

Backup

Both Memory Isolation and I/O Induce Overheads