Jim Harris Principal Software Engineer Intel Data Center Group · PDF file ·...

12
Jim Harris Principal Software Engineer Intel Data Center Group

Transcript of Jim Harris Principal Software Engineer Intel Data Center Group · PDF file ·...

Page 1: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

Jim Harris

Principal Software Engineer

Intel Data Center Group

Page 2: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

2

Legal Disclaimer

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information. The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.

All products, computer systems, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice.This document contains information on products in the design phase of development.

Applies only to halogenated flame retardants and PVC in components. Pursuant to JEP-709, halogens are below 1,000ppm bromine and 1,000ppm chlorine. The replacement of halogenated flame retardants and/or PVC may not be better for the environment.

Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries.*Other names and brands may be claimed as the property of others.Copyright © 2017 Intel Corporation. All rights reserved.

Page 3: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

The Challenge: Media LatencyLatency

(µs)

Technology claims are based on comparisons of latency, density and write cycling metrics amongst memory technologies recorded onpublished specifications of in-market memory products against internal Intel specifications.

0

25

50

75

100

125

150

175

200

10,000

HDD+SAS/S

ATA

SSD NAND+SAS/S

ATA

SSD NAND+NVM

e™

SSD optane™

+NVMe™

kernel driver overhead 1-8%

kernel driver Overhead <0.01%

kernel driver overhead 30%-50%

Drive Latency Controller Latency Driver Latency

Page 4: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

Storage Performance Development Kit (SPDK)What is SPDK?§ Userspace polled-mode drivers, libraries and applications for storage, storage

networking and storage virtualization

§ Leverages DPDK

§ Started in 2013, open sourced in 2015

§ BSD licensed

§ http://SPDK.io

Page 5: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

NVM Express* Driver Throughput Scalability

System Configuration: 2x Intel® Xeon® E5-2695v4 (HT off), Intel® Speed Step enabled, Intel® Turbo Boost Technology disabled, 8x 8GB DDR4 2133 MT/s, 1 DIMM per channel, CentOS* Linux* 7.2, Linux kernel 4.10.0, 8x Intel® P3700 NVMe SSD (800GB), 4x per CPU socket, FW 8DV101H0, I/O workload 4KB random read, Queue Depth: 128 per SSD, Performance measured by Intel using SPDK perf tool, Linux kernel data using Linux AIO

0

500

1000

1500

2000

2500

3000

3500

4000

1 2 3 4 5 6 7 8

Thro

ughp

ut (K

IOps

)

Number of Intel SSD DC P3700

I/O Performance onSingle Intel® Xeon® core

Linux Kernel SPDK

SPDK saturates 8 NVMe SSDs with a single CPU core!

• Systems with multiple NVM Express*

(NVMe) SSDs capable of millions of I/O per second• Results in many cores of software

overhead with kernel-based interrupt-driven driver model• SPDK enables:

- more CPU cycles for storage services- lower I/O latency

Page 6: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

VM Storage Acceleration

• Leverages DPDK vhost• Provides dynamic block

device provisioning • Increase VM Density• Decrease Guest Latency• Works with KVM/QEMU

SPDK

scsi

bdev

vhost-scsiTarget

BlobstoreLogical volume

NVMe Driver

bdev

NVMe

VM

SSD for Datacenter

Page 7: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

SPDK vhost Performance

0

2

4

6

8

Linux SPDK

IO/s (in millions)

0

10

20

30

40

50

Linux QEMU SPDK

QD=1 Latency (in us)

System Configuration: 2S Intel® Xeon® Platinum 8180: 28C, E5-2699v3: 18C, 2.5GHz (HT off), Intel® Turbo Boost Technology enabled, 12x16GB DDR4 2133 MT/s, 1 DIMM per channel, Ubuntu* Server 16.04.2 LTS, 4.11 kernel, 23x Intel® P4800x Optane SSD – 375GB, 1 SPDK lvolstore or LVM lvgroup per SSD, SPDK commit ID c5d8b108f22ab, 46 VMs (CentOS 3.10, 1vCPU, 2GB DRAM, 100GB logical volume), vhost dedicated to 10 coresAs measured by: fio 2.10.1 – Direct=Yes, 4KB random read I/O, Ramp Time=30s, Run Time=180s, Norandommap=1, I/O Engine = libaio, Numjobs=1Legend: Linux: Kernel vhost-scsi QEMU: virtio-blk dataplane SPDK: Userspace vhost-scsi

SPDK up to 3x better efficiency and latency

Page 8: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

PolledModeDrivers

StorageServices

StorageProtocols

iSCSI Target

NVMe-oF*Target

SCSI

vhost-user-scsiTarget

NVMe

NVMe

Blobstore

NVMe-oF*

Initiator

Intel® QuickDataTechnology

Block Device Layer (bdev)

Ceph RBD

Linux AIO

Logical Volumes

NVMePMD

NVMe*

PCIe

Released

v17.10

vhost-user-blkTarget

BlobFSGPT

virtio-scsi

virtio-scsiPMD libpmemblk

Storage Performance Development Kit (SPDK)

Page 9: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

DPDK Key Features for SPDK§ Threads

§ PCIe Device Management

§ Memory Management

§ Rings, Mempools

§ Multi-Process

§ vhost

Page 10: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

Storage v. Packet Processing § PCIe Device Hotplug

§ Runtime v2phys Translation

§ vhost VM Boot

§ Storage is Endpoint Focused

Page 11: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo

SPDK Community

Home Page : http://www.SPDK.io/

Github : https://github.com/spdk/spdk

Trello : https://trello.com/spdk

GerritHub : https://review.gerrithub.io/#/q/project:spdk/spdk+status:open

IRC : https://freenode.net/ we’re on #spdk

Page 12: Jim Harris Principal Software Engineer Intel Data Center Group · PDF file · 2017-12-07instructions marked "reserved" or "undefined." ... Intel® Speed Step enabled, Intel® Turbo