Changpeng Liu. Cloud Storage Software Engineer. Intel Data Center Group

Similar documents
Accelerating NVMe I/Os in Virtual Machine via SPDK vhost* Solution Ziye Yang, Changpeng Liu Senior software Engineer Intel

Changpeng Liu. Senior Storage Software Engineer. Intel Data Center Group

Changpeng Liu, Cloud Software Engineer. Piotr Pelpliński, Cloud Software Engineer

Accelerating NVMe-oF* for VMs with the Storage Performance Development Kit

SPDK China Summit Ziye Yang. Senior Software Engineer. Network Platforms Group, Intel Corporation

THE STORAGE PERFORMANCE DEVELOPMENT KIT AND NVME-OF

Jim Harris. Principal Software Engineer. Intel Data Center Group

NVMe Over Fabrics: Scaling Up With The Storage Performance Development Kit

Ziye Yang. NPG, DCG, Intel

Ben Walker Data Center Group Intel Corporation

Intel Architecture 2S Server Tioga Pass Performance and Power Optimization

Intel SSD Data center evolution

MDev-NVMe: A NVMe Storage Virtualization Solution with Mediated Pass-Through

Jim Harris. Principal Software Engineer. Data Center Group

Jim Harris Principal Software Engineer Intel Data Center Group

Daniel Verkamp, Software Engineer

Storage Performance Development Kit (SPDK) Daniel Verkamp, Software Engineer

Andreas Schneider. Markus Leberecht. Senior Cloud Solution Architect, Intel Deutschland. Distribution Sales Manager, Intel Deutschland

Ed Warnicke, Cisco. Tomasz Zawadzki, Intel

Munara Tolubaeva Technical Consulting Engineer. 3D XPoint is a trademark of Intel Corporation in the U.S. and/or other countries.

Applying Polling Techniques to QEMU

Re-Architecting Cloud Storage with Intel 3D XPoint Technology and Intel 3D NAND SSDs

Userspace NVMe Driver in QEMU

Mohan J. Kumar Intel Fellow Intel Corporation

OPENSHMEM AND OFI: BETTER TOGETHER

Storage Performance Tuning for FAST! Virtual Machines

Accelerate block service built on Ceph via SPDK Ziye Yang Intel

Ceph BlueStore Performance on Latest Intel Server Platforms. Orlando Moreno Performance Engineer, Intel Corporation May 10, 2018

VDPA: VHOST-MDEV AS NEW VHOST PROTOCOL TRANSPORT

April 2 nd, Bob Burroughs Director, HPC Solution Sales

Accelerate Finger Printing in Data Deduplication Xiaodong Liu & Qihua Dai Intel Corporation

Fast-track Hybrid IT Transformation with Intel Data Center Blocks for Cloud

Scott Oaks, Oracle Sunil Raghavan, Intel Daniel Verkamp, Intel 03-Oct :45 p.m. - 4:30 p.m. Moscone West - Room 3020

FAST FORWARD TO YOUR <NEXT> CREATION

Intel optane memory as platform accelerator. Vladimir Knyazkin

Ultimate Workstation Performance

Re- I m a g i n i n g D a t a C e n t e r S t o r a g e a n d M e m o r y

Future of datacenter STORAGE. Carol Wilder, Niels Reimers,

Building an Open Memory-Centric Computing Architecture using Intel Optane Frank Ober Efstathios Efstathiou Oracle Open World 2017 October 3, 2017

Andrzej Jakowski, Armoun Forghan. Apr 2017 Santa Clara, CA

Intel s Architecture for NFV

Are You Insured Against Your Noisy Neighbor Sunku Ranganath, Intel Corporation Sridhar Rao, Spirent Communications

SPDK Blobstore: A Look Inside the NVM Optimized Allocator

Ravindra Babu Ganapathi

Jim Pappas Director of Technology Initiatives, Intel Vice-Chair, Storage Networking Industry Association (SNIA) December 07, 2018

Achieve Low Latency NFV with Openstack*

Intel Speed Select Technology Base Frequency - Enhancing Performance

Virtuozzo Hyperconverged Platform Uses Intel Optane SSDs to Accelerate Performance for Containers and VMs

unleashed the future Intel Xeon Scalable Processors for High Performance Computing Alexey Belogortsev Field Application Engineer

12th ANNUAL WORKSHOP 2016 NVME OVER FABRICS. Presented by Phil Cayton Intel Corporation. April 6th, 2016

DPDK Vhost/Virtio Performance Report Release 18.11

Välkommen. Intel Anders Huge

Intel Open Network Platform Release 2.0 Hardware and Software Specifications Application Note. SDN/NFV Solutions with Intel Open Network Platform

DPDK Vhost/Virtio Performance Report Release 18.05

Fast forward. To your <next>

Out-of-band (OOB) Management of Storage Software through Baseboard Management Controller Piotr Wysocki, Kapil Karkra Intel

H.J. Lu, Sunil K Pandey. Intel. November, 2018

Small File I/O Performance in Lustre. Mikhail Pershin, Joe Gmitter Intel HPDD April 2018

Quo Vadis Virtio? Michael S. Tsirkin Red Hat

Intel Xeon Processor E v3 Family

Virtio-blk Performance Improvement

The Path to DPDK Speeds for AF XDP

Hubert Nueckel Principal Engineer, Intel. Doug Nelson Technical Lead, Intel. September 2017

DEVITO AUTOMATED HIGH-PERFORMANCE FINITE DIFFERENCES FOR GEOPHYSICAL EXPLORATION

Accelerating Data Center Workloads with FPGAs

Live Migration of vgpu

A Userspace Packet Switch for Virtual Machines

Data and Intelligence in Storage Carol Wilder Intel Corporation

Hardware and Software Co-Optimization for Best Cloud Experience

DPDK Performance Report Release Test Date: Nov 16 th 2016

IXPUG 16. Dmitry Durnov, Intel MPI team

March NVM Solutions Group

INTEL HPC DEVELOPER CONFERENCE FUEL YOUR INSIGHT

Extremely Fast Distributed Storage for Cloud Service Providers

Tackling the Management Challenges of Server Consolidation on Multi-core System

Intel tools for High Performance Python 데이터분석및기타기능을위한고성능 Python

Colin Cunningham, Intel Kumaran Siva, Intel Sandeep Mahajan, Oracle 03-Oct :45 p.m. - 5:30 p.m. Moscone West - Room 3020

Red Hat Enterprise Virtualization Hypervisor Roadmap. Bhavna Sarathy Senior Technology Product Manager, Red Hat

Essential Performance and Advanced Security

Intel Xeon Phi Coprocessor. Technical Resources. Intel Xeon Phi Coprocessor Workshop Pawsey Centre & CSIRO, Aug Intel Xeon Phi Coprocessor

IFS RAPS14 benchmark on 2 nd generation Intel Xeon Phi processor

LS-DYNA Performance on Intel Scalable Solutions

KVM as The NFV Hypervisor

Design of Vhost-pci - designing a new virtio device for inter-vm communication

Real-Time Systems and Intel take industrial embedded systems to the next level

6th Generation Intel Core Processor Series

LNet Roadmap & Development. Amir Shehata Lustre * Network Engineer Intel High Performance Data Division

Sample for OpenCL* and DirectX* Video Acceleration Surface Sharing

Total Cost of Ownership Analysis for a Wireless Access Gateway

DPDK Vhost/Virtio Performance Report Release 17.08

MICHAL MROZEK ZBIGNIEW ZDANOWICZ

Achieving 2.5X 1 Higher Performance for the Taboola TensorFlow* Serving Application through Targeted Software Optimization

Intel SSD DC P3700 & P3600 Series

OpenMPDK and unvme User Space Device Driver for Server and Data Center

KVM Virtualized I/O Performance

Fast packet processing in linux with af_xdp

Crosstalk between VMs. Alexander Komarov, Application Engineer Software and Services Group Developer Relations Division EMEA

Live Migration of vgpu

Case Study. Optimizing an Illegal Image Filter System. Software. Intel Integrated Performance Primitives. High-Performance Computing

Status Update About COLO (COLO: COarse-grain LOck-stepping Virtual Machines for Non-stop Service)

Transcription:

Changpeng Liu Cloud Storage Software Engineer Intel Data Center Group

Notices & Disclaimers 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. Tests document performance of components on a particular test, in specific systems. Differences in hardware, software, or configuration will affect actual performance. For more complete information about performance and benchmark results, visit http://www.intel.com/benchmarks. 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. For more complete information visit http://www.intel.com/benchmarks. Benchmark results were obtained prior to implementation of recent software patches and firmware updates intended to address exploits referred to as "Spectre" and "Meltdown." Implementation of these updates may make these results inapplicable to your device or system. Intel Advanced Vector Extensions (Intel AVX)* provides higher throughput to certain processor operations. Due to varying processor power characteristics, utilizing AVX instructions may cause a) some parts to operate at less than the rated frequency and b) some parts with Intel Turbo Boost Technology 2.0 to not achieve any or maximum turbo frequencies. Performance varies depending on hardware, software, and system configuration and you can learn more at http://www.intel.com/go/turbo. Intel's compilers may or may not optimize to the same degree for non-intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Cost reduction scenarios described are intended as examples of how a given Intel-based product, in the specified circumstances and configurations, may affect future costs and provide cost savings. Circumstances will vary. Intel does not guarantee any costs or cost reduction. Intel does not control or audit third-party benchmark data or the web sites referenced in this document. You should visit the referenced web site and confirm whether referenced data are accurate. 2018 Intel Corporation. Intel, the Intel logo, and Intel Xeon are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as property of others.

Agenda Introduction Implementation Benchmarks Future work 3

4

Try NVMe interface inside your VM Common virtual block devices used in Guest VM -Virtio SCSI/block Controllers, NVMe Controllers Existing NVMe virtualization in QEMU - QEMU emulated NVMe Device (file based NVMe backend) - QEMU NVMe Block Driver based on VFIO (exclusive access by QEMU) Benefits of NVMe -Multiple Queues support, integrated with Linux generic block MQ driver directly -Faster data path, no SCSI middle layer driver involved -Industry commands set support, can support DISCARD/WRITE ZEROES commands Intel Builders 5

Spdk vhost target SUMMARY QEMU Released Separate Patch for QEMU QEMU Guest 1 Vhost SCSI Driver Guest 2 Guest 3 Vhost BLK Driver Vhost NVMe Driver Virtio SCSI Controller Virtio BLK Controller NVMe Controller Kernel kvm SPDK Vhost Target SCSI BLK NVMe BDEV Intel Builders 6

Virtio vs. nvme Available Ring Both Use Ring Data Structures for IO Submission Queue Available Index TAIL Intel Builders 7

Virtio-scsi and nvme protocol format comparison ADDR LEN FLAGS SCSI_REQ NVMe_Req NEXT ADDR LEN FLAGS DATA DATA NEXT ADDR LEN FLAGS SCSI_RSP NVMe_Rsp NEXT (16 * 3 + SCSI_Req + SCSI_Rsp + Data) Bytes (NVMe_Req + Data + NVMe_Rsp) Bytes Intel Builders 8

What if combine vhost and nvme together? QEMU SPDK vhost QEMU SPDK vhost Guest VM Virtio Controller vhost eventfd UNIX domain socket virtio DPDK vhost Guest VM NVMe Controller vhost eventfd UNIX domain socket NVMe DPDK vhost virtqueue Shared Guest VM Memory Host Memory sq cq Shared Guest VM Memory Host Memory Intel Builders 9

10

Vhost-nvme diagram QEMU Guest VM NVMe Controller SPDK Vhost-NVMe NVMe NVMe IO Queue Poller s q c q Admin Queue vhost UNIX Domain Socket DPDK vhost NS1 BDEV NS2 BDEV NS BDEV Kernel kvm sq cq Shared Guest VM Memory Intel Builders 11

create io queue Guest: Create IO Queue SPDK: Start to Create IO Queue QSIZE QID CQID QPRIO PC PRP1 Guest: Submit to Admin, Write DB QEMU: Pick up Admin Command QEMU: Send via Domain Socket SPDK: Memory Translation SPDK: Both Guest and SPDK see same IO Queue now sq Intel Builders 12

new feature to address guest nvme performance issue Submit a new IO MMIO Writes happened, which will cause VM_EXIT Write SQ1 Shadow SQ 1 SQ 1 Doorbell Doorbell NVMe 1.3 New Feature: Optional Admin Command support for Doorbell Buffer Config, only used for emulated NVMe controllers, Guest can update shadow doorbell buffer instead of submission queue s doorbell registers Intel Builders 13

shadow doorbell buffer Start End Description 00h 03h Submission Queue 0 Tail Doorbell or Eventidx (Admin) 04h 07h Completion Queue 0 Head Doorbell or Eventidx (Admin) 08h 0Bh Submission Queue 1 Tail Doorbell or Eventidx 0Ch 0Fh Completion Queue 1 Head Doorbell or Eventidx Command PRP1 PRP2 Description Shadow doorbell memory address, updated by Guest NVMe Driver Eventidx memory address, updated by SPDK vhost target Intel Builders 14

15

600 500 400 300 200 100 0 1 VM with 1 NVMe SSD IOPS (K) 1 QEMU-NVME Vhost-SCSI Vhost-BLK Vhost-NVMe 300 250 200 150 100 50 0 CPU Utilization (%) Guest Usr Guest Sys QEMU-NVMe Vhost-BLK Host Usr Vhost-SCSI Vhost-NVMe Host Sys KVM Events 200000000 150000000 100000000 50000000 0 QEMU-NVMe Vhost-SCSI Vhost-BLK Vhost-NVMe System Configuration: 2 * Intel Xeon E5 2699v4 @ 2.2GHz; 128GB, 2667 DDR4, 6 memory Channels; SSD: Intel Optane P4800X, FW: E2010324, 375GiB; Bios: HT disabled, Turbo disabled; OS: Fedora 25, kernel 4.16.0. 1 VM, VM config : 4 vcpu 4GB memory, 4 IO queues; VM OS: Fedora 27, kernel 4.16.5-200, blk-mq enabled; Software: QEMU-2.12.0 with SPDK Vhost-NVMe driver patch, IO distribution: 1 vhost-cores for SPDK, FIO 3.3, io depth=32, numjobs=4, direct=1, block size=4k,total tested data size=400gib Intel Builders 16

8 vms with 4 nvme ssds IOPS (K) Latency (us) 3000 2500 2500 2000 1500 1000 500 20% 2000 26% 1500 1000 500 0 randread 0 randread Vhost-SCSI Vhost-BLK Vhost-NVMe Vhost-SCSI Vhost-BLK Vhost-NVMe System Configuration: 2 * Intel Xeon E5 2699v4 @ 2.2GHz; 256GB, 2667 DDR4, 6 memory Channels; SSD: Intel DC P4510, FW: VDV10110, 2TiB; BIOS: HT disabled, Turbo disabled; Host OS: CentOS 7, kernel 4.16.7. 8 VMs, VM config : 4 vcpu 4GB memory, 4 IO queues; Guest OS: Fedora 27, kernel 4.16.5-200, blk-mq enabled; Software: QEMU- 2.12.0 with SPDK Vhost-NVMe driver patch, IO distribution: 2 vhost-cores for SPDK, FIO 3.3, io depth=128, numjobs=4, direct=1, block size=4k,runtime=300s,ramp_time=60s; SSDs well preconditioned with 2 hours randwrites before randread tests. Intel Builders 17

Future work Interrupt Coalescing Admin commands processed in vhost target Migration support and upstreaming QEMU host driver Only can be used for Linux kernel driver new than 4.12 or SPDK Intel Builders 18

19