e545ae749a259984b2b77f08190f54d84d8c09e0
[obnox/slides/2016-02-devconf.git] / smb3.wiki
1 ==== SMB3 ====
2
3 Improvements of SMB3 over SMB2 include:
4 * Transport encryption
5 * SMB Direct (SMB over RDMA)
6 * SMB Multichannel (multiple connections per session)
7 * Witness Service (connection monitoring and transparent failover)
8
9
10 ==== SMB Features - in Samba ====
11
12 * SMB 2.0:
13 ** durable file handles [4.0]
14 * SMB 2.1:
15 ** multi-credit / large mtu [4.0]
16 ** dynamic reauthentication [4.0]
17 ** leasing [4.2]
18 ** resilient file handles [PoC]
19 * SMB 3.0:
20 ** new crypto (sign/encrypt) [4.0]
21 ** secure negotiation [4.0]
22 ** durable handles v2 [4.0]
23 ** persistent file handles [planning/PoC]
24 ** multi-channel [WIP++ (4.4...)]
25 ** SMB direct [designed/starting]
26 ** cluster features [designing]
27 *** witness [WIP+]
28 ** storage features [WIP]
29 * SMB 3.1.1:
30 ** basic support [4.3]
31
32
33 ==== Witness - General ====
34
35 New DCE/RPC Service to “witness” availability of other services, in particular SMB3 connections
36 * Prompt and explicit notifications about failures in highly available systems
37 * Allows Continuous Availability of SMB shares in clustered environments (together with persistent handles)
38 * Controlled way of dealing with reconnects instead of detecting failures due to timeouts
39 * Available since SMB3 (Windows 8 / Windows Server 2012)
40 * More advanced failover mechanism than Tickle-ACK that is used within CTDB
41
42 ==== Witness - Samba ====
43
44 Currently under development in Samba
45 * PoC implementation available, currently development on hold until new DCE/RPC async infrastructure is available
46 * WIP branch: \\ %
47   https://git.samba.org/?p=gd/samba/.git;a=shortlog;h=refs/heads/master-witness
48
49 Samba Witness service will cause Windows clients to reconnect:
50 * when client admin tool is used
51 * when CTDB (or any other cluster resource control manager) moves resources or IP addresses
52
53 ==== Witness - Failover with SMB3 in a Samba/CTDB cluster ====
54
55 <[center]
56 <<<design-ctdb-three-nodes-with-witness-step0.png, width=.95\textwidth>>>
57 [center]>
58
59 ==== Witness - Failover with SMB3 in a Samba/CTDB cluster ====
60
61 <[center]
62 <<<design-ctdb-three-nodes-with-witness-step1.png, width=.95\textwidth>>>
63 [center]>
64
65 ==== Witness - Failover with SMB3 in a Samba/CTDB cluster ====
66
67 <[center]
68 <<<design-ctdb-three-nodes-with-witness-step2.png, width=.95\textwidth>>>
69 [center]>
70
71 ==== Witness - Failover with SMB3 in a Samba/CTDB cluster ====
72
73 <[center]
74 <<<design-ctdb-three-nodes-with-witness-step3.png, width=.95\textwidth>>>
75 [center]>
76
77 ==== Witness - Failover with SMB3 in a Samba/CTDB cluster ====
78
79 <[center]
80 <<<design-ctdb-three-nodes-with-witness-step4.png, width=.95\textwidth>>>
81 [center]>
82
83 ==== Witness - Failover with SMB3 in a Samba/CTDB cluster ====
84
85 <[center]
86 <<<design-ctdb-three-nodes-with-witness-step5.png, width=.95\textwidth>>>
87 [center]>