31
Where Does SPDK Fit in the NVMe-oF Landscape? Live Webcast January 9, 2020 10:00 am PT

Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

Where Does SPDK Fitin the NVMe-oF™ Landscape?

Live WebcastJanuary 9, 2020

10:00 am PT

Page 2: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved. 2

Today’s Presenters

Presenter:Ben Walker

Intel

Presenter: Jim Harris

Intel

Moderator: Tim LustigMellanox

Page 3: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

SNIA-At-A-Glance

3

Page 4: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

NSF Technologies

4

Page 5: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

SNIA Legal Notice

The material contained in this presentation is copyrighted by the SNIA unless otherwise noted. Member companies and individual members may use this material in presentations and literature under the following conditions:

Any slide or slides used must be reproduced in their entirety without modificationThe SNIA must be acknowledged as the source of any material used in the body of any document containing material from these presentations.

This presentation is a project of the SNIA.Neither the author nor the presenter is an attorney and nothing in this presentation is intended to be, or should be construed as legal advice or an opinion of counsel. If you need legal advice or a legal opinion please contact your attorney.The information presented herein represents the author's personal opinion and current understanding of the relevant issues involved. The author, the presenter, and the SNIA do not assume any responsibility or liability for damages arising out of any reliance on or use of this information.

NO WARRANTIES, EXPRESS OR IMPLIED. USE AT YOUR OWN RISK.

5

Page 6: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Agenda

Overview of the SPDK ProjectKey NVMe-oF Use Cases with SPDKSPDK NVMe-oF Architecture and DesignPerformance DataQ&A

Page 7: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Overview of the SPDK Project

Page 8: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

What is SPDK?

Storage Performance Development KitOpen source projectFramework for highly performant and efficient storage softwareUserspace and polled mode programming modelSpecial focus on NVM Express (and NVMe over Fabrics!)Includes storage networking and storage virtualizationDiscrete libraries and fully-functional applications

8

Page 9: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

What is SPDK?

Project History2013: SPDK starts as an internal project at Intel2015: NVMe driver released on GitHub2016: First contributor outside of Intel2017: First core maintainer outside of Intel2018: NVMe/TCP support released in-step with specification2019: 700+ patches from 50+ contributors outside of Intel

9

Page 10: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Architecture Diagram

10

Page 11: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Key NVMe-oF Use Cases with SPDK

Page 12: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Determining Factors

Performance and efficiency requirementsSPDK capable of up to millions of IOPs per CPU core

Integration with existing softwareSPDK provides well-defined APIs for integrating custom modules

CustomizationSPDK enables use of optional or vendor-specific NVMe features with little or no performance impact

LicensingSPDK is BSD licensed

12

Page 13: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Use Cases

NVMe-oF targetBasic block servicesCustom block services

Including integrating existing block storage stacks

Custom transportsPolled mode access to remote storage

13

NVMe-oF*Target

RDMA

TCP

FC

bdevnvme(PCIe)

bdev

custom

custom

bdevlvol

bdev

nvme(RDMA, TCP)

Page 14: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Where is SPDK not suited?

Reduced performance requirementsKernel-based interrupt-driven storage software is typically sufficient for lower IOPs workloads

Integration with legacy softwareSPDK APIs designed for asynchronous operation with relatively fixed number of threads

Support requirementsKernel-based solutions may provide paid support options that are not available with SPDK

General purpose filesystem requirements14

Page 15: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

SPDK NVMe-oF Architecture and Design

Page 16: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

NVMe-oF Target Architecture

16

Namespace

Subsystem

Controller

Controller

Transport(RDMA)

Subsystem

Controller

Controller

Transport(TCP)

Poll Group

Poll Group

Poll Group

Page 17: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

NVMe-oF Primitives

§ spdk_nvmf_tgt§ spdk_nvmf_subsystem§ spdk_nvmf_transport

TCP FC RDMA

SubsystemSubsystem

SubsystemSubsystem

Global Scope Target

17

Page 18: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

NVMe-oF Subsystems

§ Subsystems are global§ Controller – Network session§ Namespace – Set of logical blocks

§ Subsystems are access control lists

SubsystemSubsystem

SubsystemController

NamespaceNamespaceNamespace

Entry

18

Page 19: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

NVMe-oF Primitives

§ spdk_nvmf_poll_group§ spdk_nvmf_subsystem_poll_group§ spdk_nvmf_transport_poll_group

Poll Group

Subsystem Poll GroupSubsystem Poll

GroupTransport Poll Group

Subsystem Poll GroupSubsystem Poll

GroupSubsystem Poll Group

Per-thread Scope

19

Page 20: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Poll Group

NVMe-oF Transport Poll Groups

§ Per-thread collection of transport data§ TCP: NVMe-oF queue pair is a socket§ Uses a transport-specific mechanism

to efficiently poll the group§ TCP: epoll/kqueue

§ The queue pairs are not necessarily for the same controller/subsystem/host

SubsystemSubsystem

SubsystemNVMe-oFQueue Pairs

Transport Poll Group

Poll Group

20

Page 21: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Poll Group

NVMe-oF Subsystem Poll Groups

• Per-thread collection of subsystem data

§ Contains thread-unique I/O channels for each namespace in the subsystem.

§ Think of an I/O channel as an NVMequeue pair for the local device.

SubsystemSubsystemSubsystem

I/O Channel

Subsystem Poll Group

21

Page 22: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Accepting a New Connection

spdk_nvmf_tgt_accept()

new_qpair_fn(qpair)spdk_nvmf_poll_group_add(qpair)

22

Page 23: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Performing an I/O

Poll

Parse

Look Up

Submit

§ No Locks!§ Touches only thread-local data

(cache friendly)!§ Lookups are all array math!

Poll group checks for incoming

requestsRequest is associated with a

subsystem and targets a

namespaceLook up I/O channel for

subsystem + namespace in

subsystem poll group

Use I/O channel to submit I/O to

bdev layer

23

Page 24: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

NVMe-oF Host Architecture

Same library/API as local PCIe NVMe driverPluggable TransportsNo poll groups

Doing a spdk_nvme_connect() creates an spdk_nvme_ctrlr (network session) which includes the admin qpair.I/O qpairs are polled directly

Page 25: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Performance Data

Page 26: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

NVMe-oF Performance: TCP

Random read/write 70/30 @ 4K QD=64

0

500

1000

1500

2000

2500

3000

3500

4000

4500

0 5 10 15 20 25 30

I/Ops

(th

ousa

nds)

CPU Cores

I/Ops

0

2000

4000

6000

8000

10000

12000

14000

0 5 10 15 20 25 30

Avg

Lat

(us

)

CPU Cores

Latency

https://dqtibwqq6s6ux.cloudfront.net/download/performance-reports/SPDK_vhost_perf_report_1910.pdf

Page 27: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

NVMe-oF Performance: RDMA

Random read/write 70/30 @ 4K QD=64

https://dqtibwqq6s6ux.cloudfront.net/download/performance-reports/SPDK_19.04_NVMeOF_RDMA_benchmark_report.pdf

0

500

1000

1500

2000

2500

3000

3500

4000

0 1 2 3 4 5 6 7

I/Ops

(th

ousa

nds)

CPU Cores

I/Ops

0100

200300

400500

600700

800900

1000

0 1 2 3 4 5 6 7

Avg

Lat

(us

)

CPU Cores

Latency

Page 28: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Q&A

Page 29: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

After This Webcast

Please rate this webcast and provide us with feedbackThis webcast and a PDF of the slides will be posted to the SNIA Networking Storage Forum (NSF) website and available on-demand at www.snia.org/forums/nsf/knowledge/webcastsA full Q&A from this webcast, including answers to questions we couldn't get to today, will be posted to the SNIA-NSF blog: sniansfblog.orgFollow us on Twitter @SNIANSF

29

Page 30: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

More Resources

Let’s Talk Fabrics – NVMe over FabricsSNIAVideo YouTube: https://youtu.be/HfcZwkPzj4w

What NVMe/TCP Means for Networked StorageOn-Demand Webcast: https://www.brighttalk.com/webcast/663/344698

Under the Hood with NVMe over FabricsOn-Demand Webcast: https://www.brighttalk.com/webcast/663/175515

What’s New in NVM Express: SNIAVideo YouTube: https://youtu.be/m8nq2BzawNk

The Performance Impact of NVMe and NVMe over FabricsOn-Demand Webcast: https://www.brighttalk.com/webcast/663/132761

SPDK Performance Reportshttps://spdk.io/doc

Links to SPDK Summit presentations not covered todayhttps://spdk.io/blog

30

Page 31: Where Does SPDK Fit in the NVMe-oF Landscape? · 2020-01-09 · Where Does SPDK Fit in the NVMe-oF™ Landscape? Live Webcast January 9, 2020 10:00 am PT

© 2020 Storage Networking Industry Association. All Rights Reserved.

Thank You

31