35
Jim Harris Principal Software Engineer Data Center Group

Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

Jim Harris

Principal Software Engineer

Data Center Group

Page 2: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 2

By Edmund Garman from Salem, Oregon, USA - Waikiki, Honolulu PanoramaCC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=39574339

Page 3: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 3

Agenda

• Community Growth• Feature Growth• Looking Forward

Page 4: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 4

• Community Growth• Feature Growth• Looking Forward

Page 5: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 5

SPDK Patch Commit StatisticsVersion Range Total

CommitsNon-Intel Committers

Non-IntelCommit %

v16.06 .. v17.07 2221 22 2.7%

v17.07 .. v18.07 3152 37 9.0%

v18.07 .. v19.07 3524 58 16.8%

Page 6: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 6

SPDK Patch Commit StatisticsVersion Range Total

CommitsNon-Intel Committers

Non-IntelCommit %

v16.06 .. v17.07 2221 22 2.7%

v17.07 .. v18.07 3152 37 9.0%

v18.07 .. v19.07 3524 58 16.8%

Last 12 months+57% Non-Intel Committers

2x Non-Intel Commits

Last 3 YearsOver 1/3 of Non-Intel Committers from PRC!

Page 7: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 7

Community Growth

+33% YoY+247% since Jan’17

Page 8: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 8

• Community Growth• Feature Growth• Looking Forward

Page 9: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit

Drivers

StorageServices

StorageProtocols

iSCSI Target

NVMe-oF*Target

SCSI

vhost-scsiTarget

NVMe

NVMe Devices

Blobstore

FabricsInitiator

Intel® QuickDataTechnology

Driver

Block Device Abstraction (bdev)

Ceph RBD

Linux AIO

Logical Volumes

3rd Party

NVMe

PCIe

vhost-blkTarget

BlobFS

Integration

RocksDB

Ceph

Tools

fio

PMDKblk

virtio(scsi/blk)

VPP TCP/IP

QEMU

QoS

Linux nbdRDMA

RDMA

Recently Added Features

iSCSI

vhost-nvmeTarget

virtio

virtio-PCIe

vhost-user

nvme-cli

Added since 18.07

9

SPDK 18.07

Page 10: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit

Drivers

StorageServices

StorageProtocols

iSCSI Target

NVMe-oF*Target

SCSI

vhost-scsiTarget

NVMe

NVMe Devices

Blobstore

FabricsInitiator

Intel® QuickDataTechnology

Driver

Block Device Abstraction (bdev)

Ceph RBD

Linux AIO

Logical Volumes

3rd Party

NVMe

PCIe

vhost-blkTarget

BlobFS

Integration

RocksDB

Ceph

Tools

fio

PMDKblk

virtio(scsi/blk)

VPP TCP/IP

QEMU

QoS

Linux nbdRDMA

TCP

RDMA

TCP

Recently Added Features

iSCSI

vhost-nvmeTarget

virtio

virtio-PCIe

vhost-user

nvme-cli

Added since 18.07

10

SPDK 18.07

Page 11: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 11

NVMe/TCPNVMe TP ratified November 2018

SPDK added TCP transport for

NVMe driver

NVMe-oF target

Supports alternative TCP stack implementations

Page 12: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit

Drivers

StorageServices

StorageProtocols

iSCSI Target

NVMe-oF*Target

SCSI

vhost-scsiTarget

NVMe

NVMe Devices

Blobstore

FabricsInitiator

Intel® QuickDataTechnology

Driver

Block Device Abstraction (bdev)

Ceph RBD

Linux AIO

Logical Volumes

3rd Party

NVMe

PCIe

vhost-blkTarget

BlobFS

Integration

RocksDB

Ceph

Tools

fio

PMDKblk

virtio(scsi/blk)

VPP TCP/IP

QEMU

QoS

Linux nbdRDMA

Crypto

TCP

RDMA

TCP

Recently Added Features

iSCSI

vhost-nvmeTarget

virtio

virtio-PCIe

vhost-user

nvme-cli

Added since 18.07

12

SPDK 18.07

Page 13: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 13

CryptoHardware Accelerators

• Intel® QuickAssistAccelerator

Optimized Software

• ISA-L

DPDKFramework

NVMe bdev

NVMe Controller

Namespace

Logical Volume Store

lvolbdev

lvolbdev

lvolbdev

cryptobdev

cryptobdev

cryptobdevKEYKEYKEY

cryptodev

Page 14: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit

Drivers

StorageServices

StorageProtocols

iSCSI Target

NVMe-oF*Target

SCSI

vhost-scsiTarget

NVMe

NVMe Devices

Blobstore

FabricsInitiator

Intel® QuickDataTechnology

Driver

Block Device Abstraction (bdev)

Ceph RBD

Linux AIO

Logical Volumes

3rd Party

NVMe

PCIe

vhost-blkTarget

BlobFS

Integration

RocksDB

Ceph

Tools

fio

PMDKblk

virtio(scsi/blk)

VPP TCP/IP

QEMU

Cinder

QoS

Linux nbdRDMA

Crypto

TCP

RDMA

TCP

Recently Added Features

iSCSI

vhost-nvmeTarget

virtio

virtio-PCIe

vhost-user

nvme-cli

Added since 18.07

14

SPDK 18.07

Page 15: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 15

CinderProvision ephemeral storage using SPDK

• NVMe-oF target

• Logical volumes

• Dynamic configuration via JSON-RPC

Kubernetes integration in progress

Page 16: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit

Drivers

StorageServices

StorageProtocols

iSCSI Target

NVMe-oF*Target

SCSI

vhost-scsiTarget

NVMe

NVMe Devices

Blobstore

FabricsInitiator

Intel® QuickDataTechnology

Driver

Block Device Abstraction (bdev)

Ceph RBD

Linux AIO

Logical Volumes

3rd Party

NVMe

PCIe

vhost-blkTarget

BlobFS

Integration

RocksDB

Ceph

Tools

fio

PMDKblk

virtio(scsi/blk)

VPP TCP/IP

QEMU

Cinder

QoS

Linux nbdRDMA

Crypto

TCP

RDMA

TCP

Recently Added Features

iSCSI

vhost-nvmeTarget

virtio

virtio-PCIe

vhost-user

nvme-cli

Added since 18.07

16

Open ChannelFTL

SPDK 18.07

Page 17: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 17

Open Channel BLOCK FTLHost FTL enabling smart data placement

• Based on OC2.0 specification

Block FTL support added to bdev nvme module

Page 18: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit

Drivers

StorageServices

StorageProtocols

iSCSI Target

NVMe-oF*Target

SCSI

vhost-scsiTarget

NVMe

NVMe Devices

Blobstore

FabricsInitiator

Intel® QuickDataTechnology

Driver

Block Device Abstraction (bdev)

Ceph RBD

Linux AIO

Logical Volumes

3rd Party

NVMe

PCIe

vhost-blkTarget

BlobFS

Integration

RocksDB

Ceph

Tools

fio

PMDKblk

virtio(scsi/blk)

VPP TCP/IP

QEMU

Cinder

QoS

Linux nbdRDMA

Crypto

TCP

RDMA

TCP

Recently Added Features

iSCSI

vhost-nvmeTarget

virtio

virtio-PCIe

vhost-user

nvme-cli

Added since 18.07

18

Open ChannelFTL

OCF

OCFCache

SPDK 18.07

Page 19: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 19

Open Cas FrameworkBlock Caching Library

Open Sourced in Q4’18

SPDK integration added v19.01

Page 20: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit

Drivers

StorageServices

StorageProtocols

iSCSI Target

NVMe-oF*Target

SCSI

vhost-scsiTarget

NVMe

NVMe Devices

Blobstore

FabricsInitiator

Intel® QuickDataTechnology

Driver

Block Device Abstraction (bdev)

Ceph RBD

Linux AIO

Logical Volumes

3rd Party

NVMe

PCIe

vhost-blkTarget

BlobFS

Integration

RocksDB

Ceph

Tools

fio

PMDKblk

virtio(scsi/blk)

VPP TCP/IP

QEMU

Cinder

QoS

Linux nbdRDMA

Crypto

TCP

RDMA

TCP

Recently Added Features

iSCSI

spdk-cli

vhost-nvmeTarget

virtio

virtio-PCIe

vhost-user

nvme-cli

Added since 18.07

20

Open ChannelFTL

OCF

OCFCache

SPDK 18.07

Page 21: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 21

Spdk-cli

Page 22: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit

Drivers

StorageServices

StorageProtocols

iSCSI Target

NVMe-oF*Target

SCSI

vhost-scsiTarget

NVMe

NVMe Devices

Blobstore

FabricsInitiator

Intel® QuickDataTechnology

Driver

Block Device Abstraction (bdev)

Ceph RBD

Linux AIO

Logical Volumes

3rd Party

NVMe

PCIe

vhost-blkTarget

BlobFS

Integration

RocksDB

Ceph

Tools

fio

PMDKblk

virtio(scsi/blk)

VPP TCP/IP

QEMU

Cinder

QoS

Linux nbdRDMA

Crypto

TCP

RDMA

TCP

SPDK Architecture

iSCSI

spdk-cli

vhost-nvmeTarget

virtio

virtio-PCIe

vhost-user

nvme-cli

Added since 18.07

22

CompressOpen Channel

FTL

OCF

OCFCache

SPDK 18.07

Page 23: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 23

Block compression

23

DPDK Framework

compressbdev

compressdevPMDK

lvol bdev

DPDK Framework for compression algorithms

Accelerators or Optimized SW

PMDK for persistent memory access

For compression metadata

SPDK Logical Volumes for storage

For realizing capacity savings

Page 24: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 24

• Community Growth• Feature Growth• Looking Forward

Page 25: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 25

Rack Scale ArchitectureRack

Compute Node

S{DL Storage Node

NVMe-oF Target

Compute NodeCompute NodeCompute NodeCompute NodeCompute Node

Linux NVMe Fabrics Driver

Application

Logical Volumes

Pooled Volumes

NVMe DriverNVMeSSDNVMeSSDNVMeSSD

QoS

RPC Configuration

Listener

OrchestrationService

SPDK Storage Node

NVMe-oF Target

Logical Volumes

Pooled Volumes

NVMe DriverNVMeSSDNVMeSSDNVMeSSD

RPC Configuration

Listener

SPDK Software

3rd Party Software

Page 26: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 26

SMART NICSPresent NVMe Interface to Host

Use SPDK to emulate NVMe

• Block services (crypto, logical volumes)

• Forward across network

• Or “local” SSD

PCIe

Smart NIC

SoC

nvme target

bdev services

Host CPU

Hypervisor (i.e. QEMU)

VM

nvme driver

Host Application

nvme driver

PCIe

nvme driver

NVMe SSD

Ethernet

SPDK Software

Page 27: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 27

Dynamic schedulingPolled mode = cores always 100%!

Differentiation now between “core” and “thread”

• spdk_thread is a lightweight thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

Page 28: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 28

Dynamic schedulingPolled mode = cores always 100%!

Differentiation now between “core” and “thread”

• spdk_thread is a lightweight thread

Dynamically move spdk_threads to enable putting cores to sleep

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

Page 29: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit 29

Dynamic schedulingPolled mode = cores always 100%!

Differentiation now between “core” and “thread”

• spdk_thread is a lightweight thread

Dynamically move spdk_threads to enable putting cores to sleep

Scale CPU frequency to reduce power

• i.e. Intel Speed Select Technology

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

spdk_thread

Page 30: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & VTune™ Amplifier Summit

NVMe SSD

Block Device Abstraction (bdev)

StandardNamespace

Zoned Storage

30

NVMe SSD

ZonedNamespace

Provides additional capabilities and responsibilities on host to enable:

• Smart data placement on flash

• Better isolation

• Better quality of service

NVMe standardization in progress

Open Channel via adapters

Block-OrientedApplication

FTL-OrientedApplication

ZonedBlock Device

StandardBlock Device

Page 31: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & Vtune™ Summit 31

Future WorkBlock Indirection

Replication and Parity

Even better performance!

Page 32: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & Vtune™ Summit 32

Call to ActionTake advantage of talks and demos to learn more about SPDK

and PMDK and VTuneTM Amplifier

Join the SPDK Community

• Submit patches! (https://spdk.io/development/)

• Submit issues! (https://github.com/spdk/spdk/issues)

• Ask a question! (https://spdk.io/community/)

• E-mail, Slack, community meetings

Page 33: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration
Page 34: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration

SPDK, PMDK & Vtune™ Summit 34

Backup

Page 35: Jim Harris Principal Software Engineer Data Center Group...Block Device Abstraction (bdev) Ceph RBD Linux AIO Logical Volumes 3rd Party NVMe PCIe vhost-blk Target BlobFS Integration