rdma and nvm programming model - openfabrics alliance · march 15 – 18, 2015 #ofadevworkshop 5...

17
RDMA and NVM Programming Model #OFADevWorkshop

Upload: others

Post on 10-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

RDMA and NVM

Programming Model

#OFADevWorkshop

Page 2: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

NVM.PM.File.Map, Sync,

OptimizedFlush

• Map

– Associates memory addresses with open file

– Caller may request specific address

• Sync

– Flush CPU cache for indicated range

– Additional Sync types

• Optimized Flush – multiple ranges from user space

• Optimized Flush and Verify – Optimized flush with read back

from media

March 15 – 18, 2015 #OFADevWorkshop 2

Page 3: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

Low Latency Remote

OptimizedFlush

• Remote Access for HA examines OptimizedFlush

implementation

– Goal is to minimize latency

– Requires at least 2 round trips with today’s

implementations

– Main issue is assurance of durability at remote site.

• Use today’s RDMA to explore this use case

– Agnostic to specific implementation (IB, ROCE, iWARP)

– Optimal implementation may not actually be RDMA

March 15 – 18, 2015 #OFADevWorkshop 3

Page 4: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

Recovery AND Consistency

• Application level goal is recovery from failure

– Requires robust local and remote error handling

– High Availability (as opposed to High Durability) requires

application involvement.

• Consistency is an application specific constraint

– Uncertainty of data state after failure

– Crash consistency

– Higher order consistency points

– Atomicity of Aligned Fundamental Data Types

March 15 – 18, 2015 #OFADevWorkshop 4

Page 5: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

Application Recovery Scenarios

March 15 – 18, 2015 #OFADevWorkshop 5

Sce

nar

io

Re

du

nd

ancy

fre

shn

ess

Exce

pti

on

Ap

plic

atio

n b

ackt

rack

w

ith

ou

t re

star

t

Serv

er

Re

star

t

Serv

er

Failu

re

In Line Recovery Better than sync

Precise and contained

NA No No

Backtracking Recovery Consistency point

Imprecise and contained

Yes No No

Local application restart Consistency point

Not contained No NA No

NA NA Yes No

Application Failover Consistency point

NA NA NA Yes

Page 6: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

Remote Access Hardware

March 15 – 18, 2015 #OFADevWorkshop 6

DIMMDIMM

CPU

DIMMS &

NVDIMMSIO

DIMMDIMM

CPU

DIMMS &

NVDIMMSIO

Network Adapter

(RNIC)

Network Adapter

(RNIC)

Network

Switch(s)

Server

Server

Page 7: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

Software Context Example

March 15 – 18, 2015 #OFADevWorkshop 7

• Standard file API

• NVM Programming Model optimized flush

• RAID software for HA – user space libraries

– local file system

– remote file system • via network file system

client and NIC

Page 8: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

HW/SW View for Data Flow

Sequence Diagram

March 15 – 18, 2015 #OFADevWorkshop 8

RN

IC

RN

IC

Page 9: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

Various Virtual Address Spaces

March 15 – 18, 2015 #OFADevWorkshop 9

Mapping controlled

by client peer OS

Mapping controlled by RNIC

Mapping controlled

by server peer OS

Only the “Device” address

spaces must match

• Sufficiently to allow

restoration and failover

• Orchestrated by peer

file/operating systems

Page 10: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

March 15 – 18, 2015 #OFADevWorkshop 10

RDMA Flow for HA

Optimized Flush

Flush to guarantee

durability and HA

Optimized Flush

triggers dis-contiguous

RDMA writes

Map triggers RDMA

Registration

Sequence Diagram actors:

PM aware application

2 hosts mirroring PM

RDMA Adapter (Rnic)

Page 11: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

March 15 – 18, 2015 #OFADevWorkshop 11

RDMA Flow for HA

Optimized Flush

Flush to guarantee

durability and HA

Optimized Flush

triggers dis-contiguous

RDMA writes

Map triggers RDMA

Registration

Sequence Diagram actors:

PM aware application

2 hosts mirroring PM

RDMA Adapter (Rnic)

Page 12: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

March 15 – 18, 2015 #OFADevWorkshop 12

RDMA Flow for HA

Optimized Flush

Flush to guarantee

durability and HA

Optimized Flush

triggers dis-contiguous

RDMA writes

Map triggers RDMA

Registration

Sequence Diagram actors:

PM aware application

2 hosts mirroring PM

RDMA Adapter (Rnic)

Page 13: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

March 15 – 18, 2015 #OFADevWorkshop 13

RDMA Flow for HA

Optimized Flush

Flush to guarantee

durability and HA

Optimized Flush

triggers dis-contiguous

RDMA writes

Map triggers RDMA

Registration

Sequence Diagram actors:

PM aware application

2 hosts mirroring PM

RDMA Adapter (Rnic)

Page 14: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

March 15 – 18, 2015 #OFADevWorkshop 14

RDMA Flow for HA

Optimized Flush

Flush to guarantee

durability and HA

Optimized Flush

triggers dis-contiguous

RDMA writes

Map triggers RDMA

Registration

Sequence Diagram actors:

PM aware application

2 hosts mirroring PM

RDMA Adapter (Rnic)

Page 15: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

March 15 – 18, 2015 #OFADevWorkshop 15

RDMA Flow for HA

MORE Optimized Flush

Piggybacked with

remote flush

Optimized Flush

triggers multi-range

RDMA writes

Map triggers RDMA

Registration

Sequence Diagram actors:

PM aware application

2 hosts mirroring PM

RDMA Adapter (Rnic)

Page 16: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

Work in progress –

Remote access for High Availability

• Use case: High Availability Memory Mapped Files

– Built on V1.1 NVM.PM.FILE OptimizedFlush action

– RDMA copy from local to remote PM

• Requirements:

– Assurance of remote durability

– Efficient byte range transfers

– Efficient large transfers

– Atomicity of fundamental data types

– Resource recovery and hardware fencing after failure

• NVM PM Remote Access for High Availability

March 15 – 18, 2015 #OFADevWorkshop 16

Page 17: RDMA and NVM Programming Model - OpenFabrics Alliance · March 15 – 18, 2015 #OFADevWorkshop 5 ario s n ack art art e In Line Recovery Better than sync Precise and contained NA

#OFADevWorkshop

Thank You