INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD...

48
2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 1 INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Namjae Jeon Samsung Electronics Hyunchul Lee LG Electronics

Transcript of INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD...

Page 1: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 1

INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD

Namjae Jeon

Samsung Electronics

Hyunchul Lee

LG Electronics

Page 2: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 2

TOPIC

Introduction

Architecture

Performance/Stability/Compatibility

SMB over RDMA

Plans

Page 3: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 3

INTRODUCTION

Page 4: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 4

Fill the blank of kernel SMB Server

KERNEL

USERSPACE

NFS NFSD CIFSSMB

SERVERCIFSD

NFS

GaneshaSAMBA

Page 5: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 5

Full SMB stack support

SMB1 ~ 3.1.1 version support

SMB1, 2.0 optional and disabled by default

Pending SMB2 notify

fsnotify functions are not exported

raise a request to export them

Page 6: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 6

Supported Features

Authentication support

NTLM/NTLMv2

Performance features

Oplock/lease, compounding, copy offload and SMBDirect

Security features

Signing (HMAC-SHA256, AES-CMAC)

Encryption (AES-CCM/GCM)

Page 7: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 7

linux-cifsd project

Github Repos

https://github.com/cifsd-team/cifsd

https://github.com/cifsd-team/cifsd-tools

Mailing-list

[email protected]

Supported Linux kernel versions

Linux 4.1 kernel or later

Page 8: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 8

Test automation

Use Travis CI

Github integration to test per pull request

Build test

Linux 4.1 kernel and The latest Linus-tree

Stability test

Xfstests(72)

Smbtorture(180)

Page 9: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 9

DCERPC

Need minimum implementation

Commands needed to work as file server

DCERPC engine is located in userspace

DCE/RPC response is prepared from the user space

passed over to kcifsd kernel thread

Page 10: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 10

Configuration

User configure parameters in smb.conf

Format is compatible with samba’s one

Minimum implementation

Select what user generally use a lot

Add more parameters users requested

List-up supported parameter list in smb.conf.example in cifsd-tools

Page 11: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 11

SMB1 disabled by default

Keeping for clients which doesn’t switch

to SMB2 yet

Planning to remove SMB1 in cifsd when contributing to mainline

Page 12: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 12

OpenWRT Built-in cifsd

OpenWRT is wireless router open source project

Built-in cifsd as file sharing function

OpenWRT had built-in Samba, Why ?

Easy cross compile without special handling

Small binary size(page 16)

Low CPU usage and better performance

Page 13: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 13

KEY CONCEPTS

Page 14: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 14

In-kernel server

No system call cost

Shorter path to use VFS and network stack

no duplicate memory allocation

(Filesystem metadata)

Page 15: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 15

Optimized SMB over RDMA

Page 16: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 16

Oplock lease/better handling

Client 1 Client 2

Kernel Space SMB Server (CIFSD)

(Uniform Address Space)

kcifsd/1

Open “File”

Open OK – Oplock

granted

Open “File”

Oplock Break Request

Oplock Break Response

kcifsd/2

Global data

Open OK – Oplock

granted

Client 1 Client 2

User Space SMB Server (SAMBA)

smbd/1 smbd/2

Open “File”

Open OK – Oplock

granted

Open “File”IPC Message –

Oplock Break Request

IPC Message –

Oplock Break DoneOpen OK – Oplock

granted

Oplock Break Request

Oplock Break

Response

Different Address Space

Page 17: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 17

Minimal SMB3 server

0 20000 40000 60000 80000 100000 120000 140000 160000

cifsd(only SMB3)

cifsd

nfsd+lockd

nfsd+lockd+sunrpc

samba 4.10.6

Code line count comparison

The line of code

Page 18: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 18

Lightweight file share

Reported by Andy Walsh(OpenWRT)

Binary Size Main Extra Total

cifsd 128KB(cifsd

kmod, tools)

61KB(crypto

kmods) +

872KB(glib2)

1061KB

samba4 6MB(samba libs,

server package)

64KB(libtirpc,

etc)

6064KB

Page 19: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 19

ARCHITECTURE

Page 20: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 20

User and Kernel thread

ucifsd (User-level thread)Work related to non-performance, more memory/more resource feature. i.e. DCERPC, user/share management, configuration.

kcifsd(Kernel-level thread)Work related to performance, It contain SMBengine, transport, server handler, oplock/lease.

USERSPACE

KERNELSPACE

Page 21: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 21

IPC between kernel/user

Use Netlink interface

Specify a few command-setName Purpose

CIFSD_EVENT_HEARTBEAT_REQUEST Monitor cifsd is alive

CIFSD_EVENT_STARTING_UP

CIFSD_EVENT_SHUTTING_DOWN

Transfer the initial information necessary for

the start and shutdown

CIFSD_EVENT_LOGIN_REQUEST

CIFSD_EVENT_LOGIN_RESPONSE

Transfer the user account / password

information necessary for login

CIFSD_EVENT_SHARE_CONFIG_REQUEST

CIFSD_EVENT_SHARE_CONFIG_RESPONSE

Transfer the share configuration

CIFSD_EVENT_TREE_CONNECT_RESPONSE

CIFSD_EVENT_TREE_DISCONNECT_REQUEST

Transfer the tree connect info

CIFSD_EVENT_RPC_REQUEST

CIFSD_EVENT_RPC_RESPONSE

Transfer DCERPC requests

Page 22: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 22

Architecture

NETLINK/SYSFS Interface

SOCKET

(445)

kcifsd/0 (forker thread)

kcifsd/2

kcifsd/1

kcifsd/N

NTLM NTLMv2

Kerberous

Authentication

SMB1 SMB2

SMB2.1

SMB3.1.1

SMB3

Dialects

V

F

S

Local

Filesystem

C

L

I

E

N

T

ucifsd

DCE/RPCShare configuration ID/PW configuration

smb.conf (config file)

cifspwd.db (ID/PW

file)cifsuseradd

Page 23: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 23

Components

NETLINK INTERFACE

SO

CK

ET

Vir

tual F

ilesy

stem

EXT4

XFS

NTFS

TRANSPORT IPC

Oplock/lease

AUTH

VF

S A

BS

TR

AC

TIO

N

SMB 1/2/3

Engine

VFS

CACHE(File,

INODE)

SE

RV

ER

TR

AN

FS

PO

RT

SM

BD

RD

MA

TR

AN

FS

PO

RT

TC

P

Crypto

Page 24: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 24

PERFORMANCE

Page 25: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 25

Test Environment

Direct connection on TWO PC

Tools : IOZONE, fileop, bench-oplock

Client : CIFS Client(SMB3.11)

Share : tmpfs

SMB Server : samba 4.7.6 and cifsd

Page 26: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 262019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 26

Single Read/Write iozone throughput

Record length (KB)

0

10000

20000

30000

40000

50000

60000

70000

80000

90000

100000

4 8 16 32 64 128

samba read

cifsd read

samba write

cifsd writeKilo

byte

/second

Page 27: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 272019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 27

Multi Read/Write iozone throughput

Record length (KB)

0

20000

40000

60000

80000

100000

120000

1 2 4 8 16

samba read

cifsd read

samba write

cifsd writeKilo

byte

/second

Page 28: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 282019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 28

Fileop throughput

0

500

1000

1500

2000

2500

3000

3500

4000

4500

samba

cifsd

Op

s/s

econd

+13%

+16% +22%

+33%

+28%

+18%+21%

+37%

+9% +11%+12%

+28%

+12%

+9% +10%

Page 29: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 292019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 29

File lookup time(ls –l)

0

200

400

600

800

1000

1200

1400

1000 5000 10000 50000

samba

cifsd

Number of files

Tim

e (

millis

econd) -44

%

Page 30: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 302019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 30

Bench oplock

0

200

400

600

800

1000

1200

1400

1600

1800

samba

cifsdOp

s/s

econd

+47%

Page 31: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 312019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 31

CPU Usage

0

1

2

3

4

5

6

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98

Playing a 4K moviempstat –p ALL 2

cifsd samba

Page 32: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 322019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 32

CPU Usage

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

Playing a 4k movie

samba

cifsdCP

U u

sage A

vg

(%)

-32%

Page 33: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 33

Compatibility

SMB CLIENT VERSIONS CIFSD SUPPORTED

Windows XP (SMB 1.0)

Windows Vista (SMB 2 .0)

Windows 7 (SMB 2.1)

Windows 8 (SMB 3.0)

Windows 10 (SMB 3.1.1)

MacOS(~ High Sierra)

Ubuntu File Explorer

Linux CIFS Client(linux v5.3-rc6)

Page 34: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 34

Stability

XFSTESTS

Total : 82, PASS : 82

Detail test result link

SMB TORTURE

Total : 311, PASS : 205, FAIL : 11, N/S : 95

Detail test result link

Page 35: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 35

Catching up cifs’s new features

SMB Direct

Posix extension mode bit

GCM encryption

rsize and wsize increase

Test Automation

Page 36: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 36

Hardware Acceleration

Performance advantage through HW acceleration

Accelerate encryption(AES-GCM) performance with AES-NI support in kernel

0

5

10

15

20

25

30

dd if=dev/zero of=aes.bin bs=128kcount=1024

AES

AES-NI

MB

/seco

nd

Page 37: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 37

SMB over RDMA

Page 38: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © LG Electronics. All Rights Reserved. 38

SMB Direct

New transport protocol for supporting

SMB over RDMA Introduced in SMB 3.0 (Windows Server 2012)

Operates over Reliable RDMA transports

Infiniband, RoCE, iWARP

Defines transport framing for SMB exchange

Page 39: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © LG Electronics. All Rights Reserved. 39

SMB Direct

Negotiate capabilities

Version, message size, credits

Supports datagram-type send / receive

for the exchange of SMB messages

RDMA send / receive

Fragmentation / Reassembly

Credits management

Page 40: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © LG Electronics. All Rights Reserved. 40

SMB Direct

Supports remote direct data placement

for moving data between memory

buffers on each peer

RDMA read / write

Memory registration and advertisement ofthe location to another peer

Remote memory invalidation (SMB 3.02)

Page 41: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © LG Electronics. All Rights Reserved. 41

SMB Direct and TCP

kcifsd/1

SMB

Engine

TCP

(445)

SMB

Direct

(5445)kcifsd/2

client

client

Page 42: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © LG Electronics. All Rights Reserved. 42

Send SMB3 Response

Client Server

SMB

SMB Direct

1. Wait for send credit &

Segment

3. Reassemble

2. Gather and post

RDMA sends at once

Page 43: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © LG Electronics. All Rights Reserved. 43

Transfer File Data

Client Server

SMB

SMB Direct

1. Advertise memory location

message data buffer message data buffer

2. Post RDMA

reads

Page 44: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © LG Electronics. All Rights Reserved. 44

Test Environment

Client / Server PC

Intel i7-3770k 3.90GHz

16GB RAM

Mellanox ConnectX-2 10G

Direct connection on two PC

Linux kernel v5.2 cifs client (SMB 3.02)

fio

Page 45: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © LG Electronics. All Rights Reserved. 45

Write Throughput

Page 46: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © LG Electronics. All Rights Reserved. 46

Read Throughput

Page 47: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 47

Plans

Windows Protocol Testsuite

SMB2 notify

WinACL support

Check compatibility with different NICs

Support Multichannel

Page 48: INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD · INTRODUCE IN-KERNEL SMB3 SERVER CALLED CIFSD Author: khauser Created Date: 9/24/2019 4:18:11 AM ...

2019 Storage Developer Conference. © Samsung Electronics. All Rights Reserved. 48

The end, Thank you!Any question?