lce14: content
authorMichael Adam <obnox@samba.org>
Sun, 12 Oct 2014 00:44:12 +0000 (02:44 +0200)
committerMichael Adam <obnox@samba.org>
Sun, 12 Oct 2014 00:44:12 +0000 (02:44 +0200)
apfel_1280.jpg [new file with mode: 0644]
base-wiki.wiki

diff --git a/apfel_1280.jpg b/apfel_1280.jpg
new file mode 100644 (file)
index 0000000..4fee275
Binary files /dev/null and b/apfel_1280.jpg differ
index 94327d0..deaa6a9 100644 (file)
@@ -227,8 +227,17 @@ Reduction of CPU usage for low profile platforms like arm (SMB2)
 
 ==== Interop - Apple  ====
 
+
+<[columns]
+[[[.9\textwidth]]]
 * MacOS 10.9: SMB 2.1 preferred file protocol
 * @vfs\_fruit@ - new module in Samba 4.2
+[[[.05\textwidth]]]
+[columns]>
+
+<[columns]
+[[[.55\textwidth]]]
+
 * spotlight
 ** indexed search
 ** dcerpc service
@@ -238,10 +247,13 @@ Reduction of CPU usage for low profile platforms like arm (SMB2)
 ** speed up directory listings
 ** ==> under review
 
+[[[.4\textwidth]]]
+<<<apfel_1280.jpg,width=.9\textwidth>>>
+[columns]>
 
 ==== SMB features ====[plain]
 
-\transdissolve
+%\transdissolve
 
 <[center]
 <[columns]
@@ -253,7 +265,12 @@ Reduction of CPU usage for low profile platforms like arm (SMB2)
 [center]>
 
 
-==== SMB Features ====
+==== SMB features in Samba ====
+
+
+%<[center]
+%<[columns]
+%[[[.7\textwidth]]]
 
 * SMB 2.0:
 ** durable file handles [4.0]
@@ -261,12 +278,12 @@ Reduction of CPU usage for low profile platforms like arm (SMB2)
 ** multi-credit / large mtu [4.0]
 ** dynamic reauthentication [4.0]
 ** leasing [WIP++]
-** resilient file handles [ever?]
+** resilient file handles [tracer]
 * SMB 3.0:
 ** new crypto (sign/encrypt) [4.0]
 ** secure negotiation [4.0]
 ** durable handles v2 [4.0]
-** persistent file handles [planning]
+** persistent file handles [tracer]
 ** multi-channel [WIP+]
 ** SMB direct [designed/starting]
 ** cluster features [designing]
@@ -274,18 +291,22 @@ Reduction of CPU usage for low profile platforms like arm (SMB2)
 ** storage features [WIP]
 * SMB 3.1: [WIP]
 
-
-==== ====[plain]
-
-old
+%[[[.3\textwidth]]]
+%<<<durable-crop-colormod-1024,width=.9\textwidth,right>>>
+%[columns]>
+%[center]>
 
 
-==== Clusterd Samba / CTDB (SOFS since 2007) ====
-
-
-<[center]
-<<<design-ctdb-three-nodes.png,width=.9\textwidth>>>
-[center]>
+%%==== ====[plain]
+%%
+%%old
+%%
+%
+%%==== Clusterd Samba / CTDB (SOFS since 2007) ====
+%%
+%%<[center]
+%%<<<design-ctdb-three-nodes.png,width=.9\textwidth>>>
+%%[center]>
 
 
 
@@ -361,12 +382,12 @@ old
 %%% ** SMB 3.02: basic
 %%% }
 
-====  ==== [plain]
-<[center]
-{\Large
-Technical Details...
-}
-[center]>
+%%% ====  ==== [plain]
+%%% <[center]
+%%% {\Large
+%%% Technical Details...
+%%% }
+%%% [center]>
 
 %%% ==== ====[plain]
 %%% 
@@ -383,8 +404,8 @@ Technical Details...
 * find interfaces with interface discovery: \\ %
 @FSCTL\_QUERY\_NETWORK\_INTERFACE\_INFO@
 * bind additional TCP (or RDMA) connection (channel) to established SMB3 session (session bind)
-* bind (TCP) connections of same quality
-* bind only to a single node
+* windows: uses connections of same (and best quality)
+* windows: binds only to a single node
 * replay / retry mechanisms, epoch numbers
 }
 
@@ -397,11 +418,11 @@ Technical Details...
 ** use fd-passing (sendmsg/recvmsg)
 }
 +<3->{
-* preparation: messaging rewrite using unix dgm sockets with sendmsg [DONE,Volker]
-* add fd-passing [WIP]
-* transfer connection already in negprot (ClientGUID) [TODO]
-* implement channel epoch numbers [started]
-* implemnt interface discovery [TODO]
+* preparation: messaging rewrite using unix dgm sockets with sendmsg [DONE,4.2]
+* add fd-passing [DONE,4.2]
+* transfer connection already in negprot (ClientGUID) [ess.DONE]
+* implement channel epoch numbers [WIP]
+* implement interface discovery [WIP]
 }
 
 ==== SMB Direct (RDMA) ====
@@ -414,7 +435,7 @@ Technical Details...
 ** protocol/metadata via send/receive
 }
 +<3->{
-* wireshark dissector: [DONE (Metze)]
+* wireshark dissector: [DONE]
 }
 +<4->{
 * samba (TODO):
@@ -427,20 +448,37 @@ Technical Details...
 ==== SMB Direct (RDMA) - Plan ====
 
 +<2->{
-* smbd-d (?) listens for RDMA connection
-* main smbd listens for TCP connection
-* main smbd listens (for RDMA) via unix socket connect to smbd-d
-* client connects via TCP --> smbd forks child smbd (c1)
-* client connects via RDMA to smbd-d
-* smbd-d notifies main smbd and transfers connection info
-* smbd forks child (c2) that inherits connection to smbd-d
-* c2 smbd passes [connection to smbd-d] to c1 (via ClientGUID) and exits 
-* c1 establishes mmap area with smbd-d
-* client does rdma calls to smbd-d
-** metadata and protocol calls are transferred via socket to tcp-smbd
-** rdma read/write directly to tcp-smbd via mmap area
+* smbd-d (rdma proxy daemon)
+** listens on unix domain socket (@/var/lib/smbd-d/socket@)
+** listens for RDMA connection (as told by main smbd)
+* main smbd:
+** listens for TCP connections
+** connects to smbd-d-socket
+*** request rdma-interfaces, tell smbd-d on which to listen
+** "accepts" new smb-direct connections on smdb-d-socket
+}
+
+==== SMB Direct (RDMA) - Plan ====
+
++<2->{
+* client
+** connects via TCP --> smbd forks child smbd (c)
+** connects via RDMA to smbd-d
+* smbd-d
+** creates socket-pair as rdma-proxy-channel
+** passes one end of socket-pair to main smbd for accept
+** sends smb direct packages over proxy-channel
+* main smbd
+** upon receiving NegProt: pass proxy-socket to c based on ClientGUID
+* c
+** continues proxy-communication with smdb-d
+}
++<3->{
+* For @rdma\_read@ and @rdma\_write@:
+** c and smbd-d establish shared memory area
 }
 
+
 %%% ==== Persistent Handles ====
 %%% 
 %%% \transdissolve
@@ -462,32 +500,32 @@ Technical Details...
 %%% }
 
 
-==== Clustering Concepts (Windows) ====
-
-\transdissolve
-
-+<2->{
-* Cluster:
-** (``traditional'') failover cluster (active-passive)
-** protocol: @SMB2\_SHARE\_CAP\_CLUSTER@
-** Windows:
-*** runs off a cluster (failover) volume
-*** offers the Witness service
-}
-+<3->{
-* Scale-Out (SOFS):
-** scale-out cluster (all-active!)
-** protocol: @SMB2\_SHARE\_CAP\_SCALEOUT@
-** no client caching
-** Windows: runs off a cluster shared volume (implies cluster)
-}
-+<4->{
-* Continuous Availability (CA):
-**  transparent failover, persistent handles
-**  protocol: @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@
-**  can independently turned on on any cluster share (failover or scale-out)
-** ==> changed client retry behaviour!
-}
+%%==== Clustering Concepts (Windows) ====
+%%
+%%\transdissolve
+%%
+%%+<2->{
+%%* Cluster:
+%%** (``traditional'') failover cluster (active-passive)
+%%** protocol: @SMB2\_SHARE\_CAP\_CLUSTER@
+%%** Windows:
+%%*** runs off a cluster (failover) volume
+%%*** offers the Witness service
+%%}
+%%+<3->{
+%%* Scale-Out (SOFS):
+%%** scale-out cluster (all-active!)
+%%** protocol: @SMB2\_SHARE\_CAP\_SCALEOUT@
+%%** no client caching
+%%** Windows: runs off a cluster shared volume (implies cluster)
+%%}
+%%+<4->{
+%%* Continuous Availability (CA):
+%%**  transparent failover, persistent handles
+%%**  protocol: @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@
+%%**  can independently turned on on any cluster share (failover or scale-out)
+%%** ==> changed client retry behaviour!
+%%}
 
 %%% ==== Clustering -- Controlling Flags from Windows ====
 %%% 
@@ -508,47 +546,48 @@ Technical Details...
 %%% *** implies  @SMB2\_SHARE\_CAP\_CLUSTER@
 %%% }
 %%% 
-==== Clustering -- Server Behaviour ====
-
-\transdissolve
-
-+<2->{
-* @SMB2\_SHARE\_CAP\_CLUSTER@:
-** run witness service (RPC)
-** client can register and get notified about resource changes
-}
-+<3->{
-* @SMB2\_SHARE\_CAP\_SCALEOUT@:
-** do not grant batch oplocks, write leases, handle leases
-** ==> no durable handles unless also CA
-}
-+<4->{
-* @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@:
-** offer persistent handles
-** timeout from durable v2 request
-}
-
-
-==== Clustering -- Client Behaviour (Win8) ====
-
-\transdissolve
 
+%%==== Clustering -- Server Behaviour ====
+%%
+%%\transdissolve
+%%
+%%+<2->{
+%%* @SMB2\_SHARE\_CAP\_CLUSTER@:
+%%** run witness service (RPC)
+%%** client can register and get notified about resource changes
+%%}
+%%+<3->{
+%%* @SMB2\_SHARE\_CAP\_SCALEOUT@:
+%%** do not grant batch oplocks, write leases, handle leases
+%%** ==> no durable handles unless also CA
+%%}
+%%+<4->{
+%%* @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@:
+%%** offer persistent handles
+%%** timeout from durable v2 request
+%%}
+%%
 
-+<2->{
-* @SMB2\_SHARE\_CAP\_CLUSTER@:
-** clients happily work if witness is not available
-}
-+<3->{
-* @SMB2\_SHARE\_CAP\_SCALEOUT@:
-** clients happily connect if @CLUSTER@ is not set.
-** clients DO request oplocks/leases/durable handles
-** clients are not confused if they get these
-}
-+<4->{
-* @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@:
-** clients happily connect if @CLUSTER@ is not set.
-** clients typically request persistent handle with RWH lease
-}
+%%==== Clustering -- Client Behaviour (Win8) ====
+%%
+%%\transdissolve
+%%
+%%
+%%+<2->{
+%%* @SMB2\_SHARE\_CAP\_CLUSTER@:
+%%** clients happily work if witness is not available
+%%}
+%%+<3->{
+%%* @SMB2\_SHARE\_CAP\_SCALEOUT@:
+%%** clients happily connect if @CLUSTER@ is not set.
+%%** clients DO request oplocks/leases/durable handles
+%%** clients are not confused if they get these
+%%}
+%%+<4->{
+%%* @SMB2\_SHARE\_CAP\_CONTINUOUS\_AVAILABILITY@:
+%%** clients happily connect if @CLUSTER@ is not set.
+%%** clients typically request persistent handle with RWH lease
+%%}
 
 %%%+<5->{
 %%%* Note:\\ %
@@ -613,48 +652,48 @@ Technical Details...
 %%% 
 %%% 
 
-==== Clustering with Samba/CTDB ====
-
-+<2->{
-* all-active SMB-cluster with Samba and CTDB... \\ %
-+<3->{...since 2007! \smiley }
-}
-+<4->{
-* transparent for the client
-** CTDB:
-*** metadata and messaging engine for Samba in a cluster
-*** plus cluster resource manager (IPs, services...)
-** client only sees one ``big'' SMB server
-** we could not change the client!...
-** works ``well enough''
-}
-+<5->{
-* challenge:
-** how to integrate SMB3 clustering with Samba/CTDB
-** good: rather orthogonal
-** ctdb-clustering transparent mostly due to management
-}
-
-==== Witness Service ====
-
-+<2->{
-* an RPC service
-** monitoring of availability of resources (shares, NICs)
-** server asks client to move to another resource
-}
-+<3->{
-* remember:
-** available on a Windows SMB3 share $\Leftrightarrow$ @SMB2\_SHARE\_CAP\_CLUSTER@
-** but clients happily connect w/o witness
-}
-+<4->{
-* status in Samba [WIP (Metze, Gregor Beck)]:
-** async RPC: WIP, good progress ($\Rightarrow$ Metze's talk)
-** wireshark dissector: essentially done
-** client: in @rpcclient@ - done
-** server: dummy PoC / tracer bullet implementation done
-** CTDB: changes / integration needed
-}
+%%==== Clustering with Samba/CTDB ====
+%%
+%%+<2->{
+%%* all-active SMB-cluster with Samba and CTDB... \\ %
+%%+<3->{...since 2007! \smiley }
+%%}
+%%+<4->{
+%%* transparent for the client
+%%** CTDB:
+%%*** metadata and messaging engine for Samba in a cluster
+%%*** plus cluster resource manager (IPs, services...)
+%%** client only sees one ``big'' SMB server
+%%** we could not change the client!...
+%%** works ``well enough''
+%%}
+%%+<5->{
+%%* challenge:
+%%** how to integrate SMB3 clustering with Samba/CTDB
+%%** good: rather orthogonal
+%%** ctdb-clustering transparent mostly due to management
+%%}
+%%
+%%==== Witness Service ====
+%%
+%%+<2->{
+%%* an RPC service
+%%** monitoring of availability of resources (shares, NICs)
+%%** server asks client to move to another resource
+%%}
+%%+<3->{
+%%* remember:
+%%** available on a Windows SMB3 share $\Leftrightarrow$ @SMB2\_SHARE\_CAP\_CLUSTER@
+%%** but clients happily connect w/o witness
+%%}
+%%+<4->{
+%%* status in Samba [WIP (Metze, Gregor Beck)]:
+%%** async RPC: WIP, good progress ($\Rightarrow$ Metze's talk)
+%%** wireshark dissector: essentially done
+%%** client: in @rpcclient@ - done
+%%** server: dummy PoC / tracer bullet implementation done
+%%** CTDB: changes / integration needed
+%%}
 
 
 %%% ==== ====[plain]
@@ -679,13 +718,55 @@ Technical Details...
 %%% [center]>
 %%% 
 
+
+==== Misc ====[plain]
+
+%\transdissolve
+
+<[center]
+<<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
+[center]>
+
+==== Misc ====
+
+<[block]{File Systems}
+* gpfs, gluster, ceph, btrfs...
+* support through vfs modules
+* fuse-based: avoid context switches
+* instrument SMB3 storage features (fsctls)
+[block]>
+
+==== Misc ====
+
+%%<[block]{Under the hood}
+%%* restructurings, reconsilations
+%%* ctdb moved into samba tree
+%%* published libs: talloc, tdb, tevent ...
+%%[block]>
+
+<[block]{Testing}
+* unprivileged selftest, autobuild
+* selfcontained testing: wrapper
+** socket wrapper
+** nss wrapper
+** uid wrapper
+** resolv wrapper [_red_new_]
+* externalized as separate projects:
+** ==> @http://cwrap.org/@
+** git on samba.org
+** ==> Adreas Schneider's talk
+[block]>
+
+
 ==== ====[plain]
 
 \transdissolve
 
 <[center]
 <[columns]
-[[[.6\textwidth]]]
+[[[.5\textwidth]]]
+<<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
+[[[.4\textwidth]]]
 
 {\Large
 
@@ -699,20 +780,6 @@ Questions?
 
 }
 
-[[[.3\textwidth]]]
-<<<samba-chilli-flavour-crop-bright-1280.jpg,height=.8\textheight>>>
 [columns]>
 [center]>
 
-%%% %%%% <[center]
-%%% %%%% 
-%%% %%%% {\Large
-%%% %%%% 
-%%% %%%% @obnox\@samba.org / ma\@sernet.de@
-%%% %%%% 
-%%% %%%% \vspace*{1em}
-%%% %%%% 
-%%% %%%% %%%<<<ernie-und-bert-1.jpg,width=.65\textwidth>>>
-%%% %%%% <<<samba-kisses-better-selection.jpg,width=.6\textwidth>>>
-%%% %%%% }
-%%% %%%% [center]>