Arrakis: The Operating System is the Control Plane

Slides:



Advertisements
Similar presentations
Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
Advertisements

Chap 2 System Structures.
ECE 526 – Network Processing Systems Design Software-based Protocol Processing Chapter 7: D. E. Comer.
VIA and Its Extension To TCP/IP Network Yingping Lu Based on Paper “Queue Pair IP, …” by Philip Buonadonna.
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
CS4315A. Berrached:CMS:UHD1 Operating System Structures Chapter 3.
CS533 Concepts of OS Class 16 ExoKernel by Constantia Tryman.
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
High Performance Logging System for Embedded UNIX and GNU/Linux Applications IEEE RTCSA 2013 (8/21/13) Cisco Systems Jaein Jeong.
Xen and the Art of Virtualization. Introduction  Challenges to build virtual machines Performance isolation  Scheduling priority  Memory demand  Network.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
CS533 Concepts of Operating Systems Jonathan Walpole.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
High Performance User-Level Sockets over Gigabit Ethernet Pavan Balaji Ohio State University Piyush Shivam Ohio State University.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Background: Operating Systems Brad Karp UCL Computer Science CS GZ03 / M th November, 2008.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Next Generation Operating Systems Zeljko Susnjar, Cisco CTG June 2015.
Intel Research & Development ETA: Experience with an IA processor as a Packet Processing Engine HP Labs Computer Systems Colloquium August 2003 Greg Regnier.
Improving the Reliability of Commodity Operating Systems Michael M. Swift, Brian N. Bershad, Henry M. Levy Presented by Ya-Yun Lo EECS 582 – W161.
Presented by: Xianghan Pei
Major OS Components CS 416: Operating Systems Design, Spring 2001 Department of Computer Science Rutgers University
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Advisor: Hung Shi-Hao Presenter: Chen Yu-Jen
Introduction to Operating Systems Concepts
Virtualization for Cloud Computing
Virtual Machine Monitors
Introduction to Operating Systems
Kernel Design & Implementation
Agenda Hardware Virtualization Concepts
Is Virtualization ready for End-to-End Application Performance?
Operating System Structure
Module 12: I/O Systems I/O hardware Application I/O Interface
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Chapter 8: Main Memory.
Operating Systems : Overview
CS 6560: Operating Systems Design
The Mach System Sri Ramkrishna.
Alternative system models
Operating System Structure
Multi-PCIe socket network device
Introduction to Operating Systems
EECS 582 Midterm Review Mosharaf Chowdhury EECS 582 – F16.
OS Virtualization.
PASTE: A Networking API for Non-Volatile Main Memory
Software Defined Networking (SDN)
OSDI ‘14 Best Paper Award Adam Belay George Prekas Ana Klimovic
Chapter 2: System Structures
Operating System Concepts
CS703 - Advanced Operating Systems
Mid Term review CSC345.
Operating Systems : Overview
Chapter 2: Operating-System Structures
Chapter 2: The Linux System Part 5
CSE 451: Operating Systems Autumn 2003 Lecture 2 Architectural Support for Operating Systems Hank Levy 596 Allen Center 1.
EXOKERNEL Gabriel Beltran John Blackman David Martin Kurt Rohrbacher
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
OS Components and Structure
Software - Operating Systems
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 2: Operating-System Structures
Interrupts and Interrupt Handling
Module 12: I/O Systems I/O hardwared Application I/O Interface
SocksDirect: Datacenter Sockets can be Fast and Compatible
Kernel Bypass Sujay Jayakar (dsj36) 11/17/2016.
Presentation transcript:

Arrakis: The Operating System is the Control Plane Simon Peter, Jialin Li, Irene Zhang, Dan R. K. Ports, et al. presented by Jimmy You EECS 582 – F16

Background Today’s hardware is fast! Typical commodity desktop (Dell PowerEdge R520 ~$1000): 10G NIC ~2us / 1KB pkt 6-core CPU RAID w/ 1G cache ~25 us / 1KB write EECS 582 – F16

Background But Data Center is not as fast as hardware. 8.7 us 163 us EECS 582 – F16

Background Who is dragging? EECS 582 – F16

Background Who is dragging? System Calls are slow: epoll : 27% time of read recv : 11% time of read send : 37% time of read fsync : 84% time of write EECS 582 – F16

Motivation Design Goals: Skip kernel for data-plane operations (low overhead) Retain classical server OS features (transparency) Appropriate OS/hardware abstractions (virtualization) EECS 582 – F16

Hardware I/O virtualization Already de facto on NICs Multiplexing: SR-IOV: split into virtual NICs, each w/ own queues, registers, etc. Protection: IOMMU (e.g. intel VT-d): devices use virtual memory of apps Packet Filter: control the I/O I/O Scheduling: Rate limiting, packet scheduling EECS 582 – F16

Traditional OS Apps Kernel Hardware Libs API Multiplexing Naming Resource limit Access Ctrl I/O Scheduling Protection I/O Processing Libs EECS 582 – F16

Skipping the kernel Apps Kernel Hardware Libs API Multiplexing Naming Resource limit Access Ctrl I/O Scheduling Protection I/O Processing Libs EECS 582 – F16

Skipping the kernel Apps Libs Kernel Hardware API Multiplexing Naming Resource limit Access Ctrl I/O Scheduling Protection I/O Processing EECS 582 – F16

Skipping the kernel Control Plane Data Plane Apps Control libos User Space Data HW Space “Kernel” Virtual Interface Control Data Hardware EECS 582 – F16

Hardware Model NICs (Multiplexing, Protection, Scheduling) Storage VSIC (Virtual Storage Interface Controller) each w/ queues etc. VSA (Virtual Storage Areas) mapped to physical devices associated with VSICs VSA & VSIC : many-to-many mapping Assumes NICs can filter/demux flows at a level (e.g. packet headers). May not be currently available features. EECS 582 – F16

Control Plane Interface VIC (Virtual Interface Card) Apps can create/delete VICs, associate them to doorbells doorbells (like interrupt?) associated with events on VICs filter creation e.g. create_filter(rx,*,tcp.port == 80) In terms of main components EECS 582 – F16

Control Plane Features Access control enforced by filters infrequently invoked (during set-up etc.) Resource limiting send commands to hardware I/O schedulers Naming VFS in kernel actual storage implemented in apps EECS 582 – F16

Network Data Interface Apps send/receive directly through sets of queues filters applied for multiplexing doorbell used for asynchronous notification (e.g. packet arrival) both native (w/ zero-copy) and POSIX are implemented EECS 582 – F16

Storage Data Interface VSA supports read, write, flush persistent data structure (log, queue) modified Redis by 109 LOC operations immediately persistent on disk eliminate marshaling (layout in memory = in disk) data structure specific caching & early allocation EECS 582 – W16

Evaluation UDP echo server Memcached key-value store Redis NoSQL store HTTP load balancer (haproxy) IP-layer middle box Performance isolation (rate limiting) EECS 582 – W16

Case 1: UDP echo EECS 582 – W16

Case 2: Memcached Note the drop of 6 core. Due to barrelfish EECS 582 – W16

Case 3: Redis NoSQL EECS 582 – W16

Case 3: Redis NoSQL cont’d 9 us 4 us 163 us 31 us Adapted from the original presentation at OSDI’14 EECS 582 – W16

Case 4: HTTP load balancer (haproxy) Background activity of Barrelfish EECS 582 – W16

Case 5: IP-layer middlebox Linux stack does not scale at all. Raw IP sockets carry no connection information. Not mentioning why Arrakis doesn’t scale EECS 582 – W16

Case 6: Performance Isolation EECS 582 – W16

Conclusion Pros: Cons: much better raw performance (for I/O intensive Data Center apps) Redis: up to 9x throughput and 81% speedup Memcached: scales to 3x throughput Cons: some features require hardware functionality that is no yet available require modification of applications not clear about storage abstractions not easy to track behaviors inside the hardware By “raw” performance I mean Lantency/Throughput. Which may or may not translate into other metrics. EECS 582 – W16

Discussion Related work (IX, Exokernel, Multikernel, etc.) Is Arrakis trading “OS features” for raw performance? How will new techniques change this trade-off? (SDN, NetFPGA) And of course, how much does raw performance matter? Security concerns EECS 582 – W16

Related Work 90’s library Oses Kernel-bypass Exokernel, SPIN, Nemesis Kernel-bypass U-Net, Infiniband, Netmap, Moneta-D High-performance I/O stacks mTCP, OpenOnLoad, Sandstorm, Aerie IX, Dune; Barrelfish (Multikernel) Adapted from the original presentation at OSDI’14 EECS 582 – W16

IX, Arrakis, Exokernel, Multikernel Arrakis is like Exokernel built on Barrelfish (multikernel) IX Arrakis Reduce SysCall overhead Adaptive batching Run to completion No SysCall in data-plane Hardware virtualization No IOMMU No SR-IOV Expect more than what we have Enforcement of network I/O policy Under software control Rely on hardware IX: run to completion, adaptive batching EECS 582 – W16

raw performance vs. (everything else) Two potential (and maybe diverging) direction: Be hardware-dependent (NetFPGA etc.) Be software-controllable (SDN etc.) 60’s switchboard operator Modern Operating Systems EECS 582 – W16

Security concerns Will bypassing the kernel be safe? … EECS 582 – W16