40
Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Embed Size (px)

Citation preview

Page 1: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Present And Future File Serving With Samba

LinuxCon Europe 2014

Michael Adam

Samba Team / SerNet

October 14, 2014

Page 2: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Samba...

Michael Adam SambaFS (2/40)

Page 3: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Short History

I 1.9.17: 1996/08

I 2.0: 1999/01: domain-member, +SWAT

I 2.2: 2001/04: NT4-DC

I 3.0: 2003/09: AD-member, Samba4 project started

I 3.2: 2008/07: GPLv3, experimental clustering

I 3.3: 2009/01: clustering

I 3.4: 2009/07: merged S3+S4 code

I 3.5: 2010/03: experimental SMB 2.0

I 3.6: 2011/09: SMB 2.0

I 4.0: 2012/12: AD/DC, SMB 2.0 durable handles, 2.1, 3.0

I 4.1: 2013/10: stability

I 4.2: soon: AD trusts, performance, scalability, CTDB included

Michael Adam SambaFS (3/40)

Page 4: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Release Stream

Michael Adam SambaFS (4/40)

Page 5: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Release Planning

https://wiki.samba.org/index.php/Samba Release Planning

Michael Adam SambaFS (5/40)

Page 6: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Samba Team

Michael Adam SambaFS (6/40)

Page 7: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Samba Team

Michael Adam SambaFS (7/40)

Page 8: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014
Page 9: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Samba File Server Topics / Challenges

1. performance: scalable file serverI scale-up: exhaust powerful boxesI scale-out: flexible all-active clustersI scale-down: perform well on low-end boxes

2. interop: multi-protocol access (nfs, afp, ...)

3. server workloads / SMB featuresI tune for: small # of connections, threaded applicationsI Hyper-V, ...I SMB3 (clustering, RDMA, ...)

4. special file systems support (gluster, ceph, gpfs, btrfs, ...)

5. cloud / openstack?...

Michael Adam SambaFS (9/40)

Page 10: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Performance

Page 11: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Performance - low end systems

Reduction of CPU usage for low profile platforms like arm (SMB2)

I Samba 4.0:I didn’t saturate 1G nic (arm), CPU 100%

I reduced memory allocations

I instrument SMB 2.1 multi-credit / large MTUI Samba 4.2:

I saturates 1G nic (arm), CPU < 100%

I ⇒ continuing

Michael Adam SambaFS (11/40)

Page 12: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Performance - DB performance

TDB

I trivial database

I used for IPC (smbd processes)

I cluster (CTDB): local copies

hot databases

I locking.tdb (open files)

I brlock.tdb (byte range locks)

I notify index.tdb (for change notify)

Michael Adam SambaFS (12/40)

Page 13: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Performance - DB performance

problem 1

I fcntl byte range locks for record locks

I contention via single kernel spinlock

solution

I alternative to fcntl: pthread robust mutexes

I ⇒ massive speedup

I ⇒ included in TDB 1.3.1, Samba 4.2

Michael Adam SambaFS (13/40)

Page 14: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Performance - DB performance

problem 2

I freelist:I single chain, contended (locking.tdb)I gets fragmented (singly linked)

I especially a problem in ctdb-cluster: vacuuming

improvements

I make use of small per-record freelists (dead records)

I add automatic defragmentation upon traversal

I ⇒ included in TDB 1.3.1, Samba 4.2

Michael Adam SambaFS (14/40)

Page 15: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Performance - DB performance

problem 3

I change notify not scalable

first improvement

I restructured notify.tdb toI global notify index.tdb andI local notify.tdbI ⇒ better but still not good enough for some workloads

next steps

I replace DB-approach by new scalable, async notify daemon usingmessaging

I some false positives do not harm

I ⇒ TODO

Michael Adam SambaFS (15/40)

Page 16: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Performance - scaling

parellelism

I samba is multi-process:I smbd child process ↔ TCP connectionI event-loop in one process

I within a smbd process:I pthread-pool jobs for potentially blocking syscallsI ⇒ parallelism for reads/writesI default for async I/O since Samba 4.0

Michael Adam SambaFS (16/40)

Page 17: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Performance - scaling

messaging

I classical messaging:I messages.tdb and signals between processesI does not scale well

I new massaging in Samba 4.2:I fast and scalable messaging based on unix datagram messagesI ⇒ WIP: integrate with AD/DC messagingI ⇒ features fd-passing for sockets (SMB3 multi-channel)I ⇒ TODO: integrate into CTDB inter-node-messaging

Michael Adam SambaFS (17/40)

Page 18: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Interop

Page 19: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Interop-Central

multi-protocol access

I nfs (kernel, ganesha, ...)

I afp: netatalk

I local access

I SMB2+ unix-extensions

Michael Adam SambaFS (19/40)

Page 20: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

File Server Layout/Scope

Michael Adam SambaFS (20/40)

Page 21: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Interop - Fruit

I MacOS 10.9: SMB 2.1 preferred file protocol

I vfs fruit - new module in Samba 4.2

I spotlightI indexed searchI dcerpc serviceI ⇒ under review

I AAPLI SMB2 create contextI speed up directory listingsI ⇒ under review

Michael Adam SambaFS (21/40)

Page 22: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Fruit Demo

Page 23: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

SMB features

Page 24: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

SMB features in Samba - SMB2

I SMB 2.0 (Vista / 2008):I durable file handles [4.0]

I SMB 2.1 (Win7 / 2008R2):I multi-credit / large mtu [4.0]I dynamic reauthentication [4.0]I leasing [WIP++]I resilient file handles [WIP-tracer]

Michael Adam SambaFS (24/40)

Page 25: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

SMB features in Samba - SMB3

I SMB 3.0 (Win8 / 2012):I new crypto (sign/encrypt) [4.0]I secure negotiation [4.0]I durable handles v2 [4.0]I persistent file handles [WIP.tracer]I multi-channel [WIP+]I SMB direct [designed/starting]I cluster features [designing]

I witness [WIP]

I storage features [WIP]

I SMB 3.02 (Win8.1 / 2012R2): [WIP]

I SMB 3.1 (Win10 / 2014): [ess.DONE]

Michael Adam SambaFS (25/40)

Page 26: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Multi-Channel - Windows/Protocol

I find interfaces with interface discovery:FSCTL QUERY NETWORK INTERFACE INFO

I bind additional TCP (or RDMA) connection (channel) to establishedSMB3 session (session bind)

I windows: uses connections of same (and best quality)

I windows: binds only to a single node

I replay / retry mechanisms, epoch numbers

Michael Adam SambaFS (26/40)

Page 27: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Multi-Channel - Samba

I samba/smbd: multi-processI process ⇔ tcp connectionI ⇒ transfer new connection to existing smbdI use fd-passing (sendmsg/recvmsg)

I preparation: messaging rewrite using unix dgm sockets with sendmsg[DONE,4.2]

I add fd-passing [DONE,4.2]

I transfer connection already in negprot (ClientGUID) [ess.DONE]

I implement channel epoch numbers [WIP]

I implement interface discovery [WIP]

Michael Adam SambaFS (27/40)

Page 28: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Multi-Channel - Samba

Michael Adam SambaFS (28/40)

Page 29: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Multi-Channel Demo

Page 30: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

SMB Direct (RDMA)

I windows:I requires multi-channelI start with TCP, bind an RDMA channelI reads and writes use RDMB write/readI protocol/metadata via send/receive

I wireshark dissector: [DONE]

I samba (TODO):I prereq: multi-channel / fd-passingI buffer / transport abstractions [TODO]I problem: libraries: not fork safe and no fd-passing

⇒ central daemon (or kernel module) to serve as RDMA ”proxy”

Michael Adam SambaFS (30/40)

Page 31: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

SMB Direct (RDMA) - Plan

Michael Adam SambaFS (31/40)

Page 32: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

SMB features in Samba

https://wiki.samba.org/index.php/Samba3/SMB3

Michael Adam SambaFS (32/40)

Page 33: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Misc

Page 34: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Misc

File Systems

I gpfs, gluster, ceph, btrfs...

I support through vfs modules

I fuse-based: avoid context switches

I instrument SMB3 storage features (fsctls)

Michael Adam SambaFS (34/40)

Page 35: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Misc

Testing

I unprivileged selftest, autobuildI selfcontained testing: wrapper

I socket wrapperI nss wrapperI uid wrapperI resolv wrapper [new]

I externalized as separate projects:I ⇒ http://cwrap.org/I git on samba.orgI ⇒ Andreas Schneider’s talk

Michael Adam SambaFS (35/40)

Page 36: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Forecast: Cloudy

Possible involvement with OpenStack

I SMB storage service for Windows (and other) VMs

I SMB3 storage backend for Hyper-V images

I also: chances for AD-integration into auth

Michael Adam SambaFS (36/40)

Page 37: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Credits

especially but not exclusively

I Volker Lendecke

I Stefan Metzmacher

I Ralph Bohme

I Jeremy Allison

I David Disseldorp

I Andreas Schneider

Michael Adam SambaFS (37/40)

Page 38: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Conclusion

Page 39: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Conclusion

Remember

I Samba 4.X is quite different from 3.Y

What’s coming?

I Performance: the story continues

I Interop: strengthen strenths

I SMB(3) features: a lot to come ( ⇒ cluster, hyper-v, ...)

I Some clouds in the sky...

Michael Adam SambaFS (39/40)

Page 40: Present And Future File Serving With Samba - LinuxCon ... · Present And Future File Serving With Samba LinuxCon Europe 2014 Michael Adam Samba Team / SerNet October 14, 2014

Thanks for your attention!

Questions?

[email protected]@sernet.de