20101218 p nfs status

19

Transcript of 20101218 p nfs status

Page 1: 20101218 p nfs status

pNFS: Parallel NFS

[email protected]@[email protected]@linuxfb.org

Page 2: 20101218 p nfs status

Page 2

Agenda

pNFS Technology OverviewpNFS Technology OverviewpNFS Technology OverviewpNFS Technology Overview

TimelineTimelineTimelineTimeline

Future WorkFuture WorkFuture WorkFuture Work

Discussions & QuestionsDiscussions & QuestionsDiscussions & QuestionsDiscussions & Questions

Page 3: 20101218 p nfs status

Page 3

Traditional NFS limitations

� Single NFS server bottleneck: limited bandwidth & CPU� Multiple NFS servers are separate storage islands

N F S

Page 4: 20101218 p nfs status

Page 4

Proprietary Solutions

� SAN (IBM, EMC, Sun) and Object (IBM, HP, Panasas) file systems:

– Clients bypasses metadata server to access data– Each system is doing differently implementation

� Scalable/cluster NFS servers:– Facilitate scalable aggregate load– Do not provide scalable/parallel bandwidth to a single file

Page 5: 20101218 p nfs status

Page 5

What Is pNFS?

� pNFS protocol– NFSv4.1

� Storage access protocol– File (NFSv4.1)– Block (FC, iSCSI, FCoE)– Object (OSD2)

� Control protocol– Implementation decision

Client

p N F SProtocol

Metadata Server

ControlProtocol

Data Servers

Storage AccessProtocol

Page 6: 20101218 p nfs status

Page 6

pNFS Advantage

� Distributed data access across the storage cluster� Reduce load on NFS server� I/O Acceleration

Page 7: 20101218 p nfs status

Page 7

pNFS Performance

� Linear I/O increase� Client performance limitation is on backend� Numbers taken with EMC MPFS, from which pNFS block

layout derives

Page 8: 20101218 p nfs status

Page 8

pNFS Related Standards

� RFC 5661: NFSv4.1, including pNFS file layout� RFC 5662: NFSv4.1 XDR representation� RFC 5663: pNFS block/volume layout� RFC 5664: pNFS object operations

Page 9: 20101218 p nfs status

Page 9

Other NFSv4.1 Key Features

� EOS (Exactly Once Semantics)� File and directory delegation� No more “silly rename”� Data retention� Session trunking and client ID trunking

Page 10: 20101218 p nfs status

Page 10

pNFS Timeline

� 2004 — CMU, NetApp and Panasas drafted pNFS problem and requirement statements

� 2005 — CITI, EMC, NetApp and Panasas drafted pNFS extensions� 2005 — NetApp and Sun demonstrated pNFS at Connectathon� 2005 — pNFS added to NFSv4.1 draft� 2006-2008 — specification baked

– Bake-a-thons, Connectathon– 26 iterations of NFSv4.1/pNFS spec

� 2009 — RFC submitted� 2010 — RFC published� 2010 — Fedora 10 includes pNFS server/client gits and rpms� 2010 — RHEL6.x is promised to have pNFS

Page 11: 20101218 p nfs status

Page 11

Industry Support

� BlueArc� CITI� CMU� EMC� IBM� LSI

� NetApp� Ohio SuperComputer Center� Panasas� Seagate� StorSpeed� Sun Microsystems (now Oracle)

Page 12: 20101218 p nfs status

Page 12

Linux pNFS Client

� Applications transparency� Fewer support issues for storage vendors� Generic pNFS client with layout driver plugins

pNFS Kernel M odule

ClientApplications

Layout Driver

pNFS Server

S torageProtocol

Control Protocol

N F S v 4.1LayoutGet

LayoutReturn

Page 13: 20101218 p nfs status

Page 13

pNFS Primitives

� Layout– Describes how a file is distributed among storage

� Segment– Each layout has one or more segments. A segment is a distribution

pattern.

� Device– Describes the storage (file server, backend block device, OSD data

server)

� Layout OPs– Layoutget, layoutreturn, layoutcommit, cb_layoutrecall

Page 14: 20101218 p nfs status

Page 14

Linux pNFS Client Driver API

� struct pnfs_layoutdriver_type– layout driver specific functions (segment ops, layout ops)

� struct pnfs_layout_hdr– generic layout header

� struct pnfs_device– generic device

� struct pnfs_layout_segment– generic layout segment

Page 15: 20101218 p nfs status

Page 15

Linux pNFS Merge Plan

� End of 2010– Linux 2.6.37 — Files pNFS client and server

� Feb, 2011– Linux 2.6.38 — Object pNFS client and server

� May, 2011– Linux 2.6.39 — Block pNFS client and server

Page 16: 20101218 p nfs status

Page 16

What Is Expected In NFSv4.x

� File, Block, Object layout driver� Server side copy� Federated file system

Page 17: 20101218 p nfs status

Page 17

Open Issue – Layout stateid, open mode relationship

NFS4ERR_OPENMODELAYOUTGET with IOMODE_RW using layout stateid1

layout stateid1LAYOUTGET with IOMODE_READ using open

stateid2

open stateid2OPEN read-write

CLOSE

layout stateid1LAYOUTGET with IOMODE_READ

open stateid1OPEN read-only

Server ReturnsClient Behavior

Page 18: 20101218 p nfs status

Page 18

Open Issues

� Is LAYOUTRETURN still necessary for forgetful mode? � Slot id is required for every COMPOUND request, but

idempotent non-modifying requests do not really need one� Security issue for block layout� Can File, Object and Block layouts co-exist in the same

storage network?

Page 19: 20101218 p nfs status

Page 19