Update content
[obnox/slides/2016-05-sambaxp.git] / intro-history.wiki
1 <[sambabg]
2
3
4 ==== ====[plain]
5
6 <[center]
7 \Large
8 '''Introduction'''
9 [center]>
10
11 [frame]>
12 [sambabg]>
13
14 ==== ====[plain]
15
16 <[center]
17 <<<smb-auto-crop1.png,width=.6\textwidth>>>
18 [center]>
19
20 ==== SMB - mini history ====
21
22 * SMB: created around 1983 by Barry Feigenbaum, IBM
23 * SMB in Lan Manager: around 1990
24 * SMB in Windows for Workgroups: from 1992
25 * SMB --> CIFS: 1996
26 * SMB on TCP port 445: 2000 - Windows 2000
27 * SMB 2.0: 2006 - Windows Vista
28 * SMB 2.1: 2009 - Windows 7/Server 2008R2
29 * SMB 3.0: 2012 - Windows 8/Server 2012
30 * SMB 3.0.2: 2014 - Windows 8.1/Server 2012R2
31 * SMB 3.1.1: 2015 - Windows 10/Server 2016
32
33 ==== ====[plain]
34
35 <[center]
36 <<<samba-flavour-1-cut-1280.jpg,height=.9\textheight>>>
37 [center]>
38
39 ==== Samba - History ====
40
41 *<2-> 1992/01: start of the project
42 *<2-> 1.5: 1993/12: (nbserver)
43 *<2-> 1.9.16: 1996/05: CVS, Samba Team
44 *<2-> 2.0: 1999/01: domain-member, +SWAT
45 *<2-> 2.2: 2001/04: NT4-DC
46 *<2-> 3.0: 2003/09: AD-member, Samba4 project started
47 *<2-> 3.2: 2008/07: GPLv3, experimental clustering
48 *<2-> 3.3: 2009/01: clustering [with CTDB]
49 *<2-> 3.4: 2009/07: merged S3+S4 code
50 *<2-> 3.5: _blue_2010_/03: _blue_experimental SMB 2.0_
51 *<2-> 3.6: _blue_2011_/09: _blue_SMB 2.0_
52 *<2-> 4.0: _blue_2012_/12: AD/DC, _blue_SMB 2.0 durable handles, 2.1, 3.0_
53 *<2-> 4.1: 2013/10: stability
54 *<2-> 4.2: _blue_2015_/03: AD trusts, _blue_SMB2.1 leases_, perf, include CTDB
55 *<2-> 4.3: _blue_2015_/09: spotlight, new ChangeNotify, _blue_SMB 3.0.2, 3.1.1_
56 *<3-> 4.4: _red_2016_/03: _red_SMB3 Multi-Channel (experimental)_, ...
57
58 ==== ====[plain]
59
60 <[center]
61 \Large
62 Apologies to our friends from Microsoft for writing "Multi-Channel"! ... \smiley
63 [center]>
64
65 ==== ====[plain]
66
67 <[center]
68 \Large
69 But hey... How can we ''partly'' implement an SMB version?
70 [center]>
71
72
73 ==== SMB2 Capabilities - Negotiate ====
74
75 * SMB2\_CAP\_DFS (3.5, 3.6)
76 * SMB2\_CAP\_LEASING (4.2)
77 * SMB2\_CAP\_LARGE\_MTU (4.0)
78 * \textcolor{blue}{SMB2\_CAP\_MULTI\_CHANNEL} (4.4)
79 * \textcolor{red}{SMB2\_CAP\_PERSISTENT\_HANDLES}
80 * \textcolor{red}{SMB2\_CAP\_DIRECTORY\_LEASING}
81 * SMB2\_CAP\_ENCRYPTION (4.0)
82
83 ==== Other 'optional' SMB2 features ====
84
85 * Some create contexts - ok to ignore, e.g.:
86 ** durable handles (best-effort concept)
87 * fsctl/ioctls - ok (?) to return errors, e.g.:
88 ** FSCTL\_QUERY\_NETWORK\_INTERFACE\_INFO
89 ** FSCTL\_LMR\_REQ\_RESILIENCY
90
91 ==== ====[plain]
92
93 <[center]
94 \Large
95 So what's the big deal about SMB3?
96 [center]>
97
98
99 ==== SMB3 - what's the big deal? ====
100
101 +<2->{
102 <[block]{SMB3 (2012) introduced SMB clustering:}
103 * Clustering - Witness (HA / faster fail-over)
104 * Continuous Availability - Persistent Handles (guarantees!)
105 * Scale Out (all-active access)
106 [block]>
107 }
108
109 +<3->{
110 <[block]{Additionally:}
111 * Transport encryption
112 * Multi-Channel
113 * RDMA transport (SMB Direct)
114 [block]>
115 }
116
117 +<4->{
118 <[block]{from workstation to server workload}
119 * databases (sql...)
120 * virtualtization (hyper-v)
121 * ...
122 [block]>
123 }
124
125 %%% ==== SMB Features - in Samba ====
126 %%% 
127 %%% * SMB 2.0:
128 %%% ** durable file handles [4.0]
129 %%% * SMB 2.1:
130 %%% ** multi-credit / large mtu [4.0]
131 %%% ** dynamic reauthentication [4.0]
132 %%% ** leasing [4.2]
133 %%% ** resilient file handles [PoC]
134 %%% * SMB 3.0:
135 %%% ** new crypto (sign/encrypt) [4.0]
136 %%% ** secure negotiation [4.0]
137 %%% ** durable file handles v2 [4.0]
138 %%% ** _red_multi-channel_ [4.4 (experimental)]
139 %%% ** persistent file handles [design/PoC]
140 %%% ** SMB direct [design]
141 %%% ** cluster features [design]
142 %%% *** witness [WIP+]
143 %%% * SMB 3.0.2: [4.3]
144 %%% * SMB 3.1.1:
145 %%% ** negotiate contexts, preauth: [4.3]
146
147 [frame]>