7486b66c5b71e229a7445ffd2ab9457d2a078f4e
[obnox/slides/2014-10-lce.git] / base-wiki.wiki
1 %
2 % colors:
3 %  _blue_text text_
4 %  _red_text text_
5 %
6
7 ==== ====[plain]
8
9 %%\transdissolve
10
11 <[center]
12 <[columns]
13 [[[.3\textwidth]]]
14 <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
15 [[[.3\textwidth]]]
16 <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
17 [[[.3\textwidth]]]
18 <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
19 [columns]>
20 [center]>
21
22
23 ==== Samba... ====
24
25 <[center]
26 <<<samba-kisses-better-selection.jpg,height=.8\textheight>>>
27 [center]>
28
29
30 ==== Short History ====
31
32 * 1.9.17: 1996/08
33 * 2.0: 1999/01: domain-member, +SWAT
34 * 2.2: 2001/04: NT4-DC
35 * 3.0: 2003/09: AD-member, Samba4 project started
36 * 3.2: 2008/07: GPLv3, experimental clustering
37 * 3.3: 2009/01: clustering
38 * 3.4: 2009/07: merged S3+S4 code
39 * 3.5: 2010/03: experimental SMB 2.0
40 * 3.6: 2011/09: SMB 2.0
41 * 4.0: 2012/12: AD/DC, SMB 2.0 durable handles, 2.1, 3.0
42 * 4.1: 2013/10: stability
43 * 4.2: soon: AD trusts, performance, scalability, CTDB included
44
45 ==== Release Stream ====
46
47
48 <[center]
49 <<<samba-release-stream_exp.png,width=.8\textwidth>>>
50 [center]>
51
52 ==== Release Planning ====
53
54 <[center]
55 \large
56 @https://wiki.samba.org/index.php/Samba\_Release\_Planning@
57 [center]>
58
59 ==== Samba Team ====
60
61 <[center]
62 <<<samba-team-20141011.png,height=.9\textheight>>>
63 [center]>
64
65 ==== Samba Team ====
66
67 <[center]
68 <<<samba-team-20141011-colorized.png,height=.9\textheight>>>
69 [center]>
70
71
72 ==== Samba File Server Topics / Challenges ====
73
74 # performance: scalable file server
75 #* scale-up: exhaust powerful boxes
76 #* scale-out: flexible all-active clusters
77 #* scale-down: perform well on low-end boxes
78 # interop: multi-protocol access (nfs, afp, ...)
79 # server workloads / SMB features
80 #* tune for: small \# of connections, threaded applications
81 #* Hyper-V, ...
82 #* SMB3 (clustering, RDMA, ...)
83 # special file systems support (gluster, ceph, gpfs, btrfs, ...)
84 # cloud / openstack?...
85 %* (samba $\leftrightarrow$ cifs.ko alternative to nfs?...)
86
87
88 %% ==== Samba File Serving Topics ====
89 %% 
90 %% * Performance
91 %% * Clustering (CTDB)
92 %% * SMB features (SMB3...)
93 %% * Interop (protocols, NFS, AFP, ...)
94 %% * special file systems support (gluster, ceph, gpfs, btrfs...)
95 %% * ...
96
97 %%==== Other Samba Topics ====
98 %%
99 %%* Auth/Domain Member
100 %%* RPC server
101 %%* AD Sever
102 %%* ...
103
104 ==== Performance ====[plain]
105
106 %%\transdissolve
107
108 <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
109
110
111 ==== Performance - low end systems ====
112
113
114 <[block]{Reduction of CPU usage for low profile platforms like arm (SMB2)}
115 * Samba 4.0:
116 ** didn't saturate 1G nic (arm), CPU 100\%
117 * reduced memory allocations
118 * instrument SMB 2.1 multi-credit / large MTU
119 * Samba 4.2:
120 ** saturates 1G nic (arm), CPU $<$ 100\%
121 * ==> continuing
122 [block]>
123
124 ==== Performance - DB performance ====
125
126 <[block]{TDB}
127 * trivial database
128 * used for IPC (smbd processes)
129 * cluster (CTDB): local copies
130 [block]>
131
132 <[block]{hot databases}
133 * @locking.tdb@ (open files)
134 * @brlock.tdb@ (byte range locks)
135 * @notify\_index.tdb@ (for change notify)
136 [block]>
137
138 ==== Performance - DB performance ====
139
140 <[block]{problem 1}
141 * fcntl bty range locks for record locks
142 * contention via single kernel spinlock
143 [block]>
144
145 <[block]{solution}
146 * alternative to fcntl: pthread robust mutexes
147 * ==> massive speedup
148 * ==> included in TDB 1.3.1,  Samba 4.2
149 [block]>
150
151 ==== Performance - DB performance ====
152
153 <[block]{problem 2}
154 * freelist:
155 ** single chain, contended (@locking.tdb@)
156 ** gets fragmented (singly linked)
157 * especially a problem in ctdb-cluster: vacuuming
158 [block]>
159
160 <[block]{improvements}
161 * make use of small per-record freelists (dead records)
162 * add automatic defragmentation upon traversal
163 * ==> included in TDB 1.3.1, Samba 4.2
164 [block]>
165
166 ==== Performance - DB performance ====
167 <[block]{problem 3}
168 * change notify not scalable
169 [block]>
170
171 <[block]{first improvement}
172 * restructured @notify.tdb@ to
173 ** global @notify\_index.tdb@ and
174 ** local @notify.tdb@
175 ** ==> better but still not good enough for some workloads
176 [block]>
177
178 <[block]{next steps}
179 * replace DB-approach by new scalable, async notify daemon using messaging
180 * some false positives do not harm
181 * ==> TODO
182 [block]>
183
184
185 ==== Performance - scaling ====
186
187 <[block]{parellelism}
188 * samba is multi-process:
189 ** smbd child process $\leftrightarrow$ TCP connection
190 ** event-loop in one process
191 * within a smbd process:
192 ** pthread-pool jobs for potentially blocking syscalls
193 ** ==> parallelism for reads/writes
194 ** default for async I/O since Samba 4.0
195 [block]>
196
197 ==== Performance - scaling ====
198
199 <[block]{messaging}
200 * classical messaging:
201 ** messages.tdb and signals between processes
202 ** does not scale well
203 * new massaging in Samba 4.2:
204 ** fast and scalable messaging based on unix datagram messages
205 ** ==> WIP: integrate with AD/DC messaging
206 ** ==> features fd-passing for sockets (SMB3 multi-channel)
207 ** ==> TODO: integrate into CTDB inter-node-messaging
208 [block]>
209
210
211 ==== Interop ====[plain]
212
213 %\transdissolve
214
215 <[center]
216 <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
217 [center]>
218
219
220 ==== Interop-Central ====
221
222 <[block]{multi-protocol access}
223 * nfs (kernel, ganesha, ...)
224 * afp: netatalk
225 * local access
226 * SMB2+ unix-extensions
227 [block]>
228
229
230 ==== File Server Layout/Scope ====
231
232 <[center]
233 <<<samba-layers.jpg,height=.8\textheight>>>
234 [center]>
235
236
237 ==== Interop - Fruit ====
238
239
240 <[columns]
241 [[[.9\textwidth]]]
242 * MacOS 10.9: SMB 2.1 preferred file protocol
243 * @vfs\_fruit@ - new module in Samba 4.2
244 [[[.05\textwidth]]]
245 [columns]>
246
247 <[columns]
248 [[[.55\textwidth]]]
249
250 * spotlight
251 ** indexed search
252 ** dcerpc service
253 ** ==> under review
254 * AAPL
255 ** SMB2 create context
256 ** speed up directory listings
257 ** ==> under review
258
259 [[[.4\textwidth]]]
260 <<<apfel_1280.jpg,width=.9\textwidth>>>
261 [columns]>
262
263 ==== ====[plain]
264
265 <[center]
266 \Large
267 Fruit Demo
268 [center]>
269
270 ==== SMB features ====[plain]
271
272 %\transdissolve
273
274 <[center]
275 <[columns]
276 [[[.6\textwidth]]]
277
278 [[[.3\textwidth]]]
279 <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
280 [columns]>
281 [center]>
282
283
284 ==== SMB features in Samba - SMB2 ====
285
286
287 <[center]
288 <[columns]
289 [[[.7\textwidth]]]
290
291 * SMB 2.0 (Vista / 2008):
292 ** durable file handles [4.0]
293 * SMB 2.1 (Win7 / 2008R2):
294 ** multi-credit / large mtu [4.0]
295 ** dynamic reauthentication [4.0]
296 ** leasing [WIP++]
297 ** resilient file handles [WIP-tracer]
298
299 [[[.3\textwidth]]]
300 <<<durable-crop-colormod-1024,width=.9\textwidth,right>>>
301 [columns]>
302 [center]>
303
304
305 ==== SMB features in Samba - SMB3 ====
306
307
308 <[center]
309 <[columns]
310 [[[.7\textwidth]]]
311
312 * SMB 3.0 (Win8 / 2012):
313 ** new crypto (sign/encrypt) [4.0]
314 ** secure negotiation [4.0]
315 ** durable handles v2 [4.0]
316 ** persistent file handles [WIP.tracer]
317 ** multi-channel [WIP+]
318 ** SMB direct [designed/starting]
319 ** cluster features [designing]
320 *** witness [WIP]
321 ** storage features [WIP]
322 * SMB 3.02 (Win8.1 / 2012R2): [WIP]
323 * SMB 3.1 (Win10 / 2014): [ess.DONE]
324
325 [[[.3\textwidth]]]
326 <<<durable-crop-colormod-1024,width=.9\textwidth,right>>>
327 [columns]>
328 [center]>
329
330
331 %%==== ====[plain]
332 %%
333 %%old
334 %%
335 %
336 %%==== Clusterd Samba / CTDB (SOFS since 2007) ====
337 %%
338 %%<[center]
339 %%<<<design-ctdb-three-nodes.png,width=.9\textwidth>>>
340 %%[center]>
341
342
343
344 %%% === SMB 3.0 ====
345 %%% 
346 %%% \transdissolve
347 %%% 
348 %%% +<2->{
349 %%% * new crypto (signing, transport encryption)
350 %%% * persistent file handles
351 %%% * multi-channel
352 %%% * RDMA transport (SMB direct)
353 %%% * storage features
354 %%% * clustering
355 %%% ** witness
356 %%% ** transparent failover (continuous availability)
357 %%% ** all-active (scale-out)
358 %%% }
359 %%% 
360 %%% ==== SMB3 - Goals ====
361 %%% 
362 %%% \transdissolve
363 %%% 
364 %%% +<2->{
365 %%% * fault tolerance / reliability
366 %%% * performance / throughput / scaling
367 %%% * focus on support for server workloads \\ %
368 %%% (as opposed to workstation workloads)
369 %%% * especially support for:
370 %%% ** Hyper-V
371 %%% ** MS-SQL
372 %%% * goals:
373 %%% ** replace block storage in data center
374 %%% ** block (SCSI) over SMB
375 %%% }
376 %%% 
377 %%% ==== Requirements for Hyper-V ====
378 %%% 
379 %%% \transdissolve
380 %%% 
381 %%% +<2->{
382 %%% * minimum requirements:
383 %%% ** SMB 3.0
384 %%% ** is that really all??? - maybe resilient file handles..
385 %%% }
386 %%% +<3->{
387 %%% * desired features:
388 %%% ** cluster ($\ge 2$ nodes)
389 %%% ** CA / persistent handles
390 %%% ** RDMA / SMB direct
391 %%% ** multi channel
392 %%% }
393
394 %%% ==== SMB Protocol in Samba ====
395 %%% 
396 %%% \transdissolve
397 %%% 
398 %%% +<2->{
399 %%% * Samba $<$ 3.5:
400 %%% ** SMB 1
401 %%% * Samba 3.5:
402 %%% ** experimental incomplete support for SMB 2.0
403 %%% * Samba 3.6:
404 %%% ** official support for SMB 2.0
405 %%% ** missing: durable handles
406 %%% ** default server max proto: SMB 1
407 %%% * Samba 4.0:
408 %%% ** SMB 2.0: complete with durable handles
409 %%% ** SMB 2.1: basis, multi-credit, dynamic reauthentication
410 %%% ** SMB 3.0: basis, crypto, secure negotiation, durable v2
411 %%% ** default server max proto: SMB 3.0
412 %%% * Samba 4.1
413 %%% ** SMB 3.02: basic
414 %%% }
415
416 %%% ====  ==== [plain]
417 %%% <[center]
418 %%% {\Large
419 %%% Technical Details...
420 %%% }
421 %%% [center]>
422
423 %%% ==== ====[plain]
424 %%% 
425 %%% \transdissolve
426 %%% 
427 %%% <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
428 %%% 
429 %%% 
430 %%% 
431
432 ==== Multi-Channel - Windows/Protocol ====
433
434 * find interfaces with interface discovery: \\ %
435 @FSCTL\_QUERY\_NETWORK\_INTERFACE\_INFO@
436 * bind additional TCP (or RDMA) connection (channel) to established SMB3 session (session bind)
437 * windows: uses connections of same (and best quality)
438 * windows: binds only to a single node
439 * replay / retry mechanisms, epoch numbers
440
441 ==== Multi-Channel - Samba ====
442
443 * samba/smbd: multi-process
444 ** process $\Leftrightarrow$ tcp connection
445 ** ==> transfer new connection to existing smbd
446 ** use fd-passing (sendmsg/recvmsg)
447
448 * preparation: messaging rewrite using unix dgm sockets with sendmsg [DONE,4.2]
449 * add fd-passing [DONE,4.2]
450 * transfer connection already in negprot (ClientGUID) [ess.DONE]
451 * implement channel epoch numbers [WIP]
452 * implement interface discovery [WIP]
453
454 ==== Multi-Channel - Samba ====
455
456 <[center]
457 <<<smb3-mc-samba_exp.png,height=.9\textheight>>>
458 [center]>
459
460 ==== ====[plain]
461
462 <[center]
463 \Large
464 Multi-Channel Demo
465 [center]>
466
467 ==== SMB Direct (RDMA) ====
468
469 * windows:
470 ** requires multi-channel
471 ** start with TCP, bind an RDMA channel
472 ** reads and writes use RDMB write/read
473 ** protocol/metadata via send/receive
474
475 * wireshark dissector: [DONE]
476
477 * samba (TODO):
478 ** prereq: multi-channel / fd-passing
479 ** buffer / transport abstractions [TODO]
480 ** _red_problem_: libraries: not fork safe and no fd-passing \\ %
481 ==> central daemon (or kernel module) to serve as RDMA "proxy"
482
483 ==== SMB Direct (RDMA) - Plan ====
484
485 <[center]
486 <<<smb3-rdma-samba_exp.png,height=.9\textheight>>>
487 [center]>
488
489 %%%==== SMB Direct (RDMA) - Plan ====
490 %%%
491 %%%+<2->{
492 %%%* smbd-d (rdma proxy daemon)
493 %%%** listens on unix domain socket (@/var/lib/smbd-d/socket@)
494 %%%** listens for RDMA connection (as told by main smbd)
495 %%%* main smbd:
496 %%%** listens for TCP connections
497 %%%** connects to smbd-d-socket
498 %%%*** request rdma-interfaces, tell smbd-d on which to listen
499 %%%** "accepts" new smb-direct connections on smdb-d-socket
500 %%%}
501 %%%
502 %%%==== SMB Direct (RDMA) - Plan ====
503 %%%
504 %%%+<2->{
505 %%%* client
506 %%%** connects via TCP --> smbd forks child smbd (c)
507 %%%** connects via RDMA to smbd-d
508 %%%* smbd-d
509 %%%** creates socket-pair as rdma-proxy-channel
510 %%%** passes one end of socket-pair to main smbd for accept
511 %%%** sends smb direct packages over proxy-channel
512 %%%* main smbd
513 %%%** upon receiving NegProt: pass proxy-socket to c based on ClientGUID
514 %%%* c
515 %%%** continues proxy-communication with smdb-d
516 %%%}
517 %%%+<3->{
518 %%%* For @rdma\_read@ and @rdma\_write@:
519 %%%** c and smbd-d establish shared memory area
520 %%%}
521
522
523 %%% ==== Persistent Handles ====
524 %%% 
525 %%% \transdissolve
526 %%% 
527 %%% +<2->{
528 %%% * like durable file handles with strong guarantees
529 %%% * framework is already there in samba (by support for durable v2)
530 %%% ** ==> easy to satisfy at the protocol level
531 %%% }
532 %%% +<3->{
533 %%% * the difficulty lies in implementing the guarantees
534 %%% ** need make metadata persistent
535 %%% ** but don't kill performance!
536 %%% ** persistent tdbs !would! kill performance
537 %%% ** ideas:
538 %%% *** need to be sync
539 %%% *** record-level transactions (instead of db-level)
540 %%% *** only replicate to some nodes, not all
541 %%% }
542
543
544 %%==== Clustering Concepts (Windows) ====
545 %%
546 %%\transdissolve
547 %%
548 %%+<2->{
549 %%* Cluster:
550 %%** (``traditional'') failover cluster (active-passive)
551 %%** protocol: @SMB2\_SHARE\_CAP\_CLUSTER@
552 %%** Windows:
553 %%*** runs off a cluster (failover) volume
554 %%*** offers the Witness service
555 %%}
556 %%+<3->{
557 %%* Scale-Out (SOFS):
558 %%** scale-out cluster (all-active!)
559 %%** protocol: @SMB2\_SHARE\_CAP\_SCALEOUT@
560 %%** no client caching
561 %%** Windows: runs off a cluster shared volume (implies cluster)
562 %%}
563 %%+<4->{
564 %%* Continuous Availability (CA):
565 %%**  transparent failover, persistent handles
566 %%**  protocol: @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@
567 %%**  can independently turned on on any cluster share (failover or scale-out)
568 %%** ==> changed client retry behaviour!
569 %%}
570
571 %%% ==== Clustering -- Controlling Flags from Windows ====
572 %%% 
573 %%% \transdissolve
574 %%% 
575 %%% +<2->{
576 %%% * a share on a cluster carries
577 %%% ** @SMB2\_SHARE\_CAP\_CLUSTER@ $\Leftrightarrow$ the shared FS is a cluster volume.
578 %%% }
579 %%% +<3->{
580 %%% * a share on a cluster carries
581 %%% ** @SMB2\_SHARE\_CAP\_SCALEOUT@ $\Leftrightarrow$ the shared FS is a CSV
582 %%% *** implies  @SMB2\_SHARE\_CAP\_CLUSTER@
583 %%% }
584 %%% +<4->{
585 %%% * independently settable on a clustered share:
586 %%% ** @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@
587 %%% *** implies  @SMB2\_SHARE\_CAP\_CLUSTER@
588 %%% }
589 %%% 
590
591 %%==== Clustering -- Server Behaviour ====
592 %%
593 %%\transdissolve
594 %%
595 %%+<2->{
596 %%* @SMB2\_SHARE\_CAP\_CLUSTER@:
597 %%** run witness service (RPC)
598 %%** client can register and get notified about resource changes
599 %%}
600 %%+<3->{
601 %%* @SMB2\_SHARE\_CAP\_SCALEOUT@:
602 %%** do not grant batch oplocks, write leases, handle leases
603 %%** ==> no durable handles unless also CA
604 %%}
605 %%+<4->{
606 %%* @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@:
607 %%** offer persistent handles
608 %%** timeout from durable v2 request
609 %%}
610 %%
611
612 %%==== Clustering -- Client Behaviour (Win8) ====
613 %%
614 %%\transdissolve
615 %%
616 %%
617 %%+<2->{
618 %%* @SMB2\_SHARE\_CAP\_CLUSTER@:
619 %%** clients happily work if witness is not available
620 %%}
621 %%+<3->{
622 %%* @SMB2\_SHARE\_CAP\_SCALEOUT@:
623 %%** clients happily connect if @CLUSTER@ is not set.
624 %%** clients DO request oplocks/leases/durable handles
625 %%** clients are not confused if they get these
626 %%}
627 %%+<4->{
628 %%* @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@:
629 %%** clients happily connect if @CLUSTER@ is not set.
630 %%** clients typically request persistent handle with RWH lease
631 %%}
632
633 %%%+<5->{
634 %%%* Note:\\ %
635 %%%Win8 sends @SMB2\_FLAGS\_REPLAY\_OPERATION@ in writes and reads (from 2nd in a row) \\ %
636 %%%$\Leftrightarrow$ \\ %
637 %%%The server announces @SMB2\_CAP\_PERSISTENT\_HANDLES@.
638 %%%}
639
640 %%% ==== Clustering -- Client Behaviour (Win8) : Retries  ====
641 %%% 
642 %%% +<2->{
643 %%% * Test: Win8 against slightly pimped Samba (2 IPs)
644 %%% }
645 %%% +<3->{
646 %%% * Server-Matrix (on/off):
647 %%% ** persistent handle cap
648 %%% ** durable handles
649 %%% ** cluster share cap
650 %%% ** scale out cap
651 %%% ** ca share cap
652 %%% }
653 %%% +<4->{
654 %%% * The test:
655 %%% ** connect to share with explorer
656 %%% ** start copying file (2G)
657 %%% ** kill smbd
658 %%% ** wait for the client to pop up an error dialog
659 %%% ** click cancel
660 %%% ** stop capture
661 %%% }
662 %%% 
663 %%% ==== Clustering -- Client Behaviour (Win8) : Retries  ====
664 %%% 
665 %%% +<2->{
666 %%% * only two different retry characteristics: CA $\leftrightarrow$ non-CA
667 %%% }
668 %%% +<3->{
669 %%% * non-CA-case
670 %%% ** 3 consecutive attempt rounds:
671 %%% *** for each of the two IPs: \\ %
672 %%% arp IP \\ %
673 %%% three tcp syn attempts to IP with 0.5 sec breaks
674 %%% ** ==> some 2.1 seconds for 1 round
675 %%% ** between attempts:
676 %%% ** dns, ping, arp ... 5.8 seconds
677 %%% ** ==> _red_18 seconds_
678 %%% }
679 %%% +<4->{
680 %%% * CA-Case
681 %%% ** retries attempt rounds from above for _red_14 minutes_
682 %%% }
683 %%% 
684 %%% 
685 %%% 
686 %%% ==== ====[plain]
687 %%% 
688 %%% \transdissolve
689 %%% 
690 %%% <[center]
691 %%% <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
692 %%% [center]>
693 %%% 
694 %%% 
695
696 %%==== Clustering with Samba/CTDB ====
697 %%
698 %%+<2->{
699 %%* all-active SMB-cluster with Samba and CTDB... \\ %
700 %%+<3->{...since 2007! \smiley }
701 %%}
702 %%+<4->{
703 %%* transparent for the client
704 %%** CTDB:
705 %%*** metadata and messaging engine for Samba in a cluster
706 %%*** plus cluster resource manager (IPs, services...)
707 %%** client only sees one ``big'' SMB server
708 %%** we could not change the client!...
709 %%** works ``well enough''
710 %%}
711 %%+<5->{
712 %%* challenge:
713 %%** how to integrate SMB3 clustering with Samba/CTDB
714 %%** good: rather orthogonal
715 %%** ctdb-clustering transparent mostly due to management
716 %%}
717 %%
718 %%==== Witness Service ====
719 %%
720 %%+<2->{
721 %%* an RPC service
722 %%** monitoring of availability of resources (shares, NICs)
723 %%** server asks client to move to another resource
724 %%}
725 %%+<3->{
726 %%* remember:
727 %%** available on a Windows SMB3 share $\Leftrightarrow$ @SMB2\_SHARE\_CAP\_CLUSTER@
728 %%** but clients happily connect w/o witness
729 %%}
730 %%+<4->{
731 %%* status in Samba [WIP (Metze, Gregor Beck)]:
732 %%** async RPC: WIP, good progress ($\Rightarrow$ Metze's talk)
733 %%** wireshark dissector: essentially done
734 %%** client: in @rpcclient@ - done
735 %%** server: dummy PoC / tracer bullet implementation done
736 %%** CTDB: changes / integration needed
737 %%}
738
739
740 %%% ==== ====[plain]
741 %%% 
742 %%% <[center]
743 %%% {\Large
744 %%% !@https://wiki.samba.org/index.php/SMB3@!
745 %%% }
746 %%% [center]>
747 %%% 
748 %%% ==== ====[plain]
749 %%% 
750 %%% \transdissolve
751 %%% 
752 %%% <[center]
753 %%% <[columns]
754 %%% [[[.6\textwidth]]]
755 %%% 
756 %%% [[[.3\textwidth]]]
757 %%% <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
758 %%% [columns]>
759 %%% [center]>
760 %%% 
761
762 ==== SMB features in Samba ====
763
764 <[center]
765 \Large
766 @https://wiki.samba.org/index.php/Samba3/SMB3@
767 [center]>
768
769
770 ==== Misc ====[plain]
771
772 %\transdissolve
773
774 <[center]
775 <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
776 [center]>
777
778 ==== Misc ====
779
780 <[block]{File Systems}
781 * gpfs, gluster, ceph, btrfs...
782 * support through vfs modules
783 * fuse-based: avoid context switches
784 * instrument SMB3 storage features (fsctls)
785 [block]>
786
787 ==== Misc ====
788
789 %%<[block]{Under the hood}
790 %%* restructurings, reconsilations
791 %%* ctdb moved into samba tree
792 %%* published libs: talloc, tdb, tevent ...
793 %%[block]>
794
795 <[block]{Testing}
796 * unprivileged selftest, autobuild
797 * selfcontained testing: wrapper
798 ** socket wrapper
799 ** nss wrapper
800 ** uid wrapper
801 ** resolv wrapper [_red_new_]
802 * externalized as separate projects:
803 ** ==> @http://cwrap.org/@
804 ** git on samba.org
805 ** ==> Andreas Schneider's talk
806 [block]>
807
808
809 ==== Forecast: Cloudy ====
810
811 <[block]{Possible involvement with OpenStack}
812 * SMB storage service for Windows (and other) VMs
813 * SMB3 storage backend for Hyper-V images
814 * also: chances for AD-integration into auth
815 [block]>
816
817 ==== Credits ====
818
819 <[block]{especially but not exclusively}
820 * Volker Lendecke
821 * Stefan Metzmacher
822 * Ralph Böhme
823 * Jeremy Allison
824 * David Disseldorp
825 * Andreas Schneider
826 [block]>
827
828
829 ==== Conclusion ====[plain]
830
831 %%\transdissolve
832
833 <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
834
835
836 ==== Conclusion ====
837
838 <[block]{Remember}
839 * Samba 4.X is quite different from 3.Y
840 [block]>
841
842 <[block]{What's coming?}
843 * Performance: the story continues
844 * Interop: strengthen strenths
845 * SMB(3) features: a lot to come ( ==> cluster, hyper-v, ...)
846 * Some clouds in the sky...
847 [block]>
848
849
850 ==== Thanks for your attention! ====[plain]
851
852 %\transdissolve
853
854 <[center]
855 <[columns]
856 [[[.6\textwidth]]]
857
858 {\Large
859
860 Questions?
861
862 --*4em--
863
864 @obnox\@samba.org@
865
866 @ma\@sernet.de@
867 }
868 [[[.3\textwidth]]]
869 <<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
870
871 [columns]>
872 [center]>
873