Inject slides from vault
authorMichael Adam <obnox@samba.org>
Mon, 9 May 2016 13:09:29 +0000 (15:09 +0200)
committerMichael Adam <obnox@samba.org>
Mon, 9 May 2016 13:09:29 +0000 (15:09 +0200)
52 files changed:
.gitignore [new file with mode: 0644]
BASENAME [new file with mode: 0644]
Logo_RH_RGB_Default.png [new file with mode: 0755]
Makefile [new file with mode: 0644]
Samba_Logo_4c-grey-bbbbbb-256.png [new file with mode: 0644]
abstract.txt [new file with mode: 0644]
beamercolorthemeobnoxsamba.sty [new file with mode: 0644]
beamerouterthemeobnoxinfolines.sty [new file with mode: 0644]
beamerthemeObnoxSamba.sty [new file with mode: 0644]
content.wiki [new file with mode: 0644]
design-ctdb-three-nodes-with-witness-step0.dia [new file with mode: 0644]
design-ctdb-three-nodes-with-witness-step1.dia [new file with mode: 0644]
design-ctdb-three-nodes-with-witness-step2a.dia [new file with mode: 0644]
design-ctdb-three-nodes-with-witness-step2b.dia [new file with mode: 0644]
design-ctdb-three-nodes-with-witness-step3a.dia [new file with mode: 0644]
design-ctdb-three-nodes-with-witness-step3b.dia [new file with mode: 0644]
design-ctdb-three-nodes-with-witness-step4.dia [new file with mode: 0644]
design-ctdb-three-nodes-with-witness-step5.dia [new file with mode: 0644]
document.part1.wiki [new file with mode: 0644]
document.part2.wiki [new file with mode: 0644]
document.part3.wiki [new file with mode: 0644]
feet-sand-1280.png [new file with mode: 0644]
ho.class.wiki [new file with mode: 0644]
ho2.class.wiki [new file with mode: 0644]
info.wiki [new file with mode: 0644]
intro-history.wiki [new file with mode: 0644]
multichannel.wiki [new file with mode: 0644]
next.wiki [new file with mode: 0644]
persistent.wiki [new file with mode: 0644]
pr.class.wiki [new file with mode: 0644]
redhat-logo.png [new file with mode: 0644]
samba-kisses-better-selection.jpg [new file with mode: 0644]
samba-layers-exp.jpg [new file with mode: 0644]
samba.png [new file with mode: 0644]
samba_bg.png [new file with mode: 0644]
samba_bg_cut.png [new file with mode: 0644]
samba_bg_cut.xcf [new file with mode: 0644]
smb-direct.wiki [new file with mode: 0644]
smb3-mc-daemons-n1.dia [new file with mode: 0644]
smb3-mc-daemons-n1a.dia [new file with mode: 0644]
smb3-mc-daemons-n2.dia [new file with mode: 0644]
smb3-mc-daemons-n3.dia [new file with mode: 0644]
smb3-mc-samba-v2.dia [new file with mode: 0644]
smb3-mc-samba-v2.old.dia [new file with mode: 0644]
smb3-mc-samba.dia [new file with mode: 0644]
smb3-mc-samba.old.dia [new file with mode: 0644]
smb3-rdma-samba-v2.dia [new file with mode: 0644]
smb3-rdma-samba-v2.old.dia [new file with mode: 0644]
smb3-rdma-samba.dia [new file with mode: 0644]
smb3.wiki [new file with mode: 0644]
thanks.wiki [new file with mode: 0644]
witness.wiki [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..d38c149
--- /dev/null
@@ -0,0 +1,2 @@
+*.swp
+*~
diff --git a/BASENAME b/BASENAME
new file mode 100644 (file)
index 0000000..50cc2fb
--- /dev/null
+++ b/BASENAME
@@ -0,0 +1 @@
+smb3-multi-channel-in-samba
diff --git a/Logo_RH_RGB_Default.png b/Logo_RH_RGB_Default.png
new file mode 100755 (executable)
index 0000000..a0d8296
Binary files /dev/null and b/Logo_RH_RGB_Default.png differ
diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..c777c72
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,212 @@
+TARGET_BASE_NAME := $(shell cat BASENAME)
+
+TARGET_PR = $(TARGET_BASE_NAME).pr
+TARGET_HO = $(TARGET_BASE_NAME).ho
+TARGET_HO2 = $(TARGET_BASE_NAME).ho2
+
+TARGET = $(TARGET_BASE_NAME)
+
+IMAGE_MC_V1 = smb3-mc-samba
+IMAGE_MC_V2 = smb3-mc-samba-v2
+IMAGE_MC_DAEMONS_N1 = smb3-mc-daemons-n1
+IMAGE_MC_DAEMONS_N1A = smb3-mc-daemons-n1a
+IMAGE_MC_DAEMONS_N2 = smb3-mc-daemons-n2
+IMAGE_MC_DAEMONS_N3 = smb3-mc-daemons-n3
+IMAGE_RDMA_V2 = smb3-rdma-samba-v2
+# IMAGE_CTDB_3N = design-ctdb-three-nodes
+IMAGE_CTDB_3N_WITNESS_STEP0 = design-ctdb-three-nodes-with-witness-step0
+IMAGE_CTDB_3N_WITNESS_STEP1 = design-ctdb-three-nodes-with-witness-step1
+IMAGE_CTDB_3N_WITNESS_STEP2A = design-ctdb-three-nodes-with-witness-step2a
+IMAGE_CTDB_3N_WITNESS_STEP2B = design-ctdb-three-nodes-with-witness-step2b
+IMAGE_CTDB_3N_WITNESS_STEP3A = design-ctdb-three-nodes-with-witness-step3a
+IMAGE_CTDB_3N_WITNESS_STEP3B = design-ctdb-three-nodes-with-witness-step3b
+IMAGE_CTDB_3N_WITNESS_STEP4 = design-ctdb-three-nodes-with-witness-step4
+IMAGE_CTDB_3N_WITNESS_STEP5 = design-ctdb-three-nodes-with-witness-step5
+# IMAGE_CTDB_DAEMONS = ctdb-design-daemons
+# IMAGE_SAMBA_LAYERS = samba-layers
+# IMAGE_SAMBA_RELEASES = samba-release-stream
+# 
+DIAIMAGES_BASE := $(IMAGE_MC_V1) \
+                 $(IMAGE_MC_V2) \
+                 $(IMAGE_MC_DAEMONS_N1) \
+                 $(IMAGE_MC_DAEMONS_N1A) \
+                 $(IMAGE_MC_DAEMONS_N2) \
+                 $(IMAGE_MC_DAEMONS_N3)\
+                 $(IMAGE_RDMA_V2) \
+                 $(IMAGE_CTDB_3N_WITNESS_STEP0) \
+                 $(IMAGE_CTDB_3N_WITNESS_STEP1) \
+                 $(IMAGE_CTDB_3N_WITNESS_STEP2A) \
+                 $(IMAGE_CTDB_3N_WITNESS_STEP2B) \
+                 $(IMAGE_CTDB_3N_WITNESS_STEP3A) \
+                 $(IMAGE_CTDB_3N_WITNESS_STEP3B) \
+                 $(IMAGE_CTDB_3N_WITNESS_STEP4) \
+                 $(IMAGE_CTDB_3N_WITNESS_STEP5)
+#                $(IMAGE_CTDB_3N) \
+#                $(IMAGE_CTDB_DAEMONS) \
+#                $(IMAGE_SAMBA_LAYERS) \
+#                $(IMAGE_SAMBA_RELEASES)
+
+#DIAIMAGES_BASE :=
+
+DIAIMAGES :=     $(foreach image, $(DIAIMAGES_BASE), $(image).dia)
+DIAIMAGES_PNG := $(foreach image, $(DIAIMAGES_BASE), $(image).png)
+DIAIMAGES_SVG := $(foreach image, $(DIAIMAGES_BASE), $(image).svg)
+DIAIMAGES_FIG := $(foreach image, $(DIAIMAGES_BASE), $(image).fig)
+
+#IMAGES = $(DIAIMAGES_PNG) \
+#       regedit.png \
+#       ctdb-status.png \
+#       ctdb-status-1.png \
+#       ctdb-ip.png \
+#       ctdb-ip-1.png \
+#       smbstatus.png
+
+IMAGES = $(DIAIMAGES_PNG)
+
+
+EXTRA_WIKI_FILES = \
+                  intro-history.wiki \
+                  smb3.wiki \
+                  multichannel.wiki \
+                  smb-direct.wiki \
+                  witness.wiki \
+                  persistent.wiki \
+                  next.wiki \
+                  thanks.wiki
+
+
+CMN_DEPS = Makefile $(IMAGES)
+
+CMN_DEPS_WIKI = $(CMN_DEPS) document.part1.wiki document.part2.wiki document.part3.wiki content.wiki info.wiki
+
+CMN_DEPS_TEX = $(CMN_DEPS) beamercolorthemeobnoxsamba.sty beamerouterthemeobnoxinfolines.sty beamerthemeObnoxSamba.sty
+
+CONTENT_DEPS_WIKI = $(CMN_DEPS) content.wiki $(EXTRA_WIKI_FILES)
+
+COMMON_DEPS = $(CMN_DEPS)
+
+VIEWER = evince
+SHOW = yes
+
+.SUFFIXES: .tex .pdf .dia .png .fig .svg .wiki
+
+.PHONY: all
+
+all: pr
+
+
+.PHONY: pr $(TARGET_PR)
+
+pr: $(TARGET_PR)
+
+$(TARGET_PR): $(TARGET_PR).pdf
+       if [ "$(SHOW)" = "yes" ]; then $(VIEWER) $@.pdf ; fi &
+
+$(TARGET_PR).pdf: $(CMN_DEPS) pr.pdf
+       cp pr.pdf $@
+
+pr.pdf: $(CMN_DEPS_TEX) pr.tex
+
+pr.tex: pr.wiki $(CONTENT_DEPS_WIKI)
+
+pr.wiki: $(CMN_DEPS_WIKI) pr.class.wiki
+       cat document.part1.wiki pr.class.wiki document.part2.wiki info.wiki document.part3.wiki > $@
+
+
+.PHONY: ho $(TARGET_HO)
+
+ho: $(TARGET_HO)
+
+$(TARGET_HO): $(TARGET_HO).pdf
+       if [ "$(SHOW)" = "yes" ]; then $(VIEWER) $@.pdf ; fi &
+
+$(TARGET_HO).pdf: $(CMN_DEPS) ho.pdf
+       cp ho.pdf $@
+
+ho.pdf: $(CMN_DEPS_TEX) ho.tex
+
+ho.tex: ho.wiki $(CONTENT_DEPS_WIKI)
+
+ho.wiki: $(CMN_DEPS_WIKI) ho.class.wiki
+       cat document.part1.wiki ho.class.wiki document.part2.wiki info.wiki document.part3.wiki > $@
+
+
+.PHONY: ho2 $(TARGET_HO2)
+
+ho2: $(TARGET_HO2)
+
+$(TARGET_HO2): $(TARGET_HO2).pdf
+       if [ "$(SHOW)" = "yes" ]; then $(VIEWER) $@.pdf ; fi &
+
+$(TARGET_HO2).pdf: $(CMN_DEPS) ho2.pdf
+       cp ho2.pdf $@
+
+ho2.pdf: $(CMN_DEPS_TEX) ho2.tex
+
+ho2.tex: ho2.wiki $(CONTENT_DEPS_WIKI)
+
+ho2.wiki: $(CMN_DEPS_WIKI) ho2.class.wiki
+       cat document.part1.wiki ho2.class.wiki document.part2.wiki info.wiki document.part3.wiki > $@
+
+
+
+.wiki.tex:
+       wiki2beamer $< > $@
+
+.tex.pdf:
+       pdflatex $<
+       pdflatex $<
+       #if [ "$(SHOW)" = "yes" ]; then $(VIEWER) $@ ; fi &
+
+.dia.png:
+       @dia -e $@ -s x1280 $<
+
+.dia.fig:
+       @dia -e $@ $<
+
+.dia.svg:
+       @dia -e $@ $<
+
+
+.PHONY: png fig svg images
+
+png: $(DIAIMAGES_PNG)
+
+fig: $(DIAIMAGES_FIG)
+
+svg: $(DIAIMAGES_SVG)
+
+images: $(IMAGES)
+
+
+.PHONY: archive
+
+archive: $(TARGET).tar.gz
+
+$(TARGET).tar.gz: $(TARGET).tar
+       @echo "Creating $@"
+       @rm -f $(TARGET).tar.gz
+       @gzip $(TARGET).tar
+
+
+# make $(TARGET).tar phony - it vanishes by gzipping...
+.PHONY: $(TARGET).tar
+
+$(TARGET).tar: pr ho ho2
+       @echo "Creating $@"
+       @git archive --prefix=$(TARGET)/ HEAD > $@
+       @rm -rf $(TARGET)
+       @mkdir $(TARGET)
+       @cp $(TARGET_PR).pdf $(TARGET)
+       @cp $(TARGET_HO).pdf $(TARGET)
+       @cp $(TARGET_HO2).pdf $(TARGET)
+       @tar rf $@ $(TARGET)/$(TARGET_PR).pdf
+       @tar rf $@ $(TARGET)/$(TARGET_HO).pdf
+       @tar rf $@ $(TARGET)/$(TARGET_HO2).pdf
+
+
+
+.PHONY: clean
+
+clean:
+       @git clean -f
diff --git a/Samba_Logo_4c-grey-bbbbbb-256.png b/Samba_Logo_4c-grey-bbbbbb-256.png
new file mode 100644 (file)
index 0000000..69e0591
Binary files /dev/null and b/Samba_Logo_4c-grey-bbbbbb-256.png differ
diff --git a/abstract.txt b/abstract.txt
new file mode 100644 (file)
index 0000000..e7ced26
--- /dev/null
@@ -0,0 +1,29 @@
+SMB3 Multi-Channel in Samba ... Now Really!
+
+Event: sambaXP 2016
+
+Submission Type: Presentation
+
+Category: Developer
+
+Abstract:
+
+Multi-Channel is arguably the most universally useful feature of SMB3
+that can be enabled as a capability: It applies to both clustered and
+non-clustered servers and is the prerequisite for supporting RDMA
+transport with SMB Direct.
+
+I have presented about SMB3 Multi-Channel in Samba a couple of times
+by now, have presented on ideas, designs and even demoed early
+prototypes. Now the impending version 4.4 of Samba wil finally bring
+Multi-Channel to the filed! (Small print: The majorty of the code
+has been merged upstream, and we are currently working hard to
+complete the missing pieces for Samba 4.4.0.)
+
+After recapping teh basics of Multi-Channel, the talk will explain
+Samba's implementation, addressing challenges and how they have been
+solved. It then details on the recent developments in the area.
+Also, the challenges of integrating Multi-Channel with Samba's
+CTDB clustering are discussed. The presentation will contain a demo
+of the latest code.
+
diff --git a/beamercolorthemeobnoxsamba.sty b/beamercolorthemeobnoxsamba.sty
new file mode 100644 (file)
index 0000000..5e1e18e
--- /dev/null
@@ -0,0 +1,62 @@
+% Copyright 2004 by Madhusudan Singh <madhusudan.singh@gmail.com>
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the file doc/licenses/LICENSE for more details.
+
+
+\mode<presentation>
+
+% color definitions
+
+\definecolor{darkred}{rgb}{0.8,0,0}
+
+\definecolor{rhgrey}{RGB}{204,204,204}
+\definecolor{rhgrey1}{RGB}{190,190,190}
+\definecolor{rhgrey2}{RGB}{224,224,224}
+\definecolor{rhred}{RGB}{204,0,0}
+\definecolor{rhred2}{RGB}{173,35,57}
+\definecolor{rhred3}{RGB}{151,37,55}
+\definecolor{rhred4}{RGB}{138,10,7}
+
+
+%\setbeamercolor{section in toc}{fg=black,bg=white}
+\setbeamercolor{section in toc}{fg=black}
+\setbeamercolor{alerted text}{fg=darkred!80!gray}
+%\setbeamercolor*{palette primary}{fg=darkred!60!black,bg=gray!30!white}
+\setbeamercolor*{palette primary}{fg=darkred!60!black}
+%\setbeamercolor*{palette secondary}{fg=darkred!70!black,bg=gray!15!white}
+\setbeamercolor*{palette secondary}{fg=darkred!70!black}
+%\setbeamercolor*{palette tertiary}{bg=darkred!80!black,fg=gray!10!white}
+\setbeamercolor*{palette tertiary}{bg=darkred!80!black,fg=gray!10!white}
+%\setbeamercolor*{palette quaternary}{fg=darkred,bg=gray!5!white}
+\setbeamercolor*{palette quaternary}{fg=darkred}
+
+\setbeamercolor*{sidebar}{fg=darkred,bg=gray!15!white}
+
+\setbeamercolor*{palette sidebar primary}{fg=darkred!10!black}
+\setbeamercolor*{palette sidebar secondary}{fg=white}
+\setbeamercolor*{palette sidebar tertiary}{fg=darkred!50!black}
+\setbeamercolor*{palette sidebar quaternary}{fg=gray!10!white}
+
+%\setbeamercolor*{titlelike}{parent=palette primary}
+\setbeamercolor{titlelike}{parent=palette primary,fg=darkred}
+%\setbeamercolor{frametitle}{bg=gray!10!white}
+%\setbeamercolor{frametitle right}{bg=gray!60!white}
+%%\setbeamercolor{frametitle}{bg=white}
+%%\setbeamercolor{frametitle right}{bg=white}
+
+
+\setbeamercolor{structure}{fg=rhred4}
+\setbeamercolor{local structure}{fg=rhgrey1}
+\setbeamercolor{alerted text}{fg=rhred}
+
+\setbeamercolor*{separation line}{}
+\setbeamercolor*{fine separation line}{}
+
+\setbeamercolor{title}{bg=}
+\mode
+<all>
diff --git a/beamerouterthemeobnoxinfolines.sty b/beamerouterthemeobnoxinfolines.sty
new file mode 100644 (file)
index 0000000..de41bcb
--- /dev/null
@@ -0,0 +1,107 @@
+% Copyright 2011 by Michael Adam <obnox@samba.org>
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the file doc/licenses/LICENSE for more details.
+
+\mode<presentation>
+
+%\setbeamercolor*{author in head/foot}{parent=palette tertiary}
+%\setbeamercolor*{author in head/foot}{parent=palette primary,bg=white}
+\setbeamercolor*{author in head/foot}{parent=palette primary}
+\setbeamercolor*{title in head/foot}{parent=palette secondary}
+\setbeamercolor*{date in head/foot}{parent=palette primary}
+
+\setbeamercolor*{logo in head/foot}{parent=palette tertiary}
+\setbeamercolor*{logo in head/foot}{parent=palette primary}
+
+\pgfdeclareimage[width=16mm]{Samba-Logo}{Samba_Logo_4c-grey-bbbbbb-256}
+\pgfdeclareimage[width=16mm]{RedHat-Logo}{Logo_RH_RGB_Default}
+\pgfdeclareimage[width=\paperwidth,height=\paperheight]{Samba-BG}{samba_bg}
+
+%%%%\defbeamertemplate*{footline}{obnoxinfolines theme}
+%%\defbeamertemplate*{headline}{obnoxinfolines theme}
+%%{
+%%  \leavevmode%
+%%  \hbox{%
+%%  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
+%%    \usebeamerfont{author in head/foot}\insertshortauthor~~(\insertshortinstitute)
+%%  \end{beamercolorbox}%
+%%  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
+%%    \usebeamerfont{title in head/foot}\insertshorttitle
+%%  \end{beamercolorbox}%
+%%  \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
+%%    \usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em}
+%%    \insertframenumber{} / \inserttotalframenumber\hspace*{2ex}
+%%  \end{beamercolorbox}}%
+%%  \vskip0pt%
+%%}
+
+%% %%\defbeamertemplate*{headline}{obnoxinfolines theme}
+%% \defbeamertemplate*{footline}{obnoxinfolines theme}
+%% {
+%%   \leavevmode%
+%%   \hbox{%
+%%   \begin{beamercolorbox}[wd=.5\paperwidth,ht=5ex,dp=1ex,left]{xy}%
+%%     \hspace*{2ex} \hbox{\pgfuseimage{Samba-Logo}}
+%%   \end{beamercolorbox}%
+%%   \begin{beamercolorbox}[wd=.5\paperwidth,ht=5ex,dp=1ex,right]{xy}%
+%%   \hbox{\pgfuseimage{sernet}}
+%%     \hspace*{2ex}\end{beamercolorbox}}%
+%%   \vskip0pt%
+%% }
+
+%%\defbeamertemplate*{headline}{obnoxinfolines theme}
+\defbeamertemplate*{footline}{obnoxinfolines theme}
+{
+  \leavevmode%
+  \hbox{%
+  \begin{beamercolorbox}[wd=.2\paperwidth,ht=5ex,dp=1ex,left]{xy}%
+    \hspace*{2ex} \hbox{\pgfuseimage{Samba-Logo}}
+  \end{beamercolorbox}%
+  \begin{beamercolorbox}[wd=.3\paperwidth,ht=5ex,dp=1ex,center]{author in head/foot}%
+    \usebeamerfont{author in head/foot}\scriptsize\insertshortauthor{}\hspace*{2ex}
+  \end{beamercolorbox}%
+  \begin{beamercolorbox}[wd=.3\paperwidth,ht=5ex,dp=1ex,center]{author in head/foot}%
+    \usebeamerfont{author in head/foot}\scriptsize%
+     \insertshorttitle{} (\insertframenumber{}/\inserttotalframenumber)\hspace*{2ex}
+  \end{beamercolorbox}%
+  \begin{beamercolorbox}[wd=.2\paperwidth,ht=5ex,dp=1ex,right]{xy}%
+  \hbox{\pgfuseimage{RedHat-Logo}}
+    \hspace*{2ex}\end{beamercolorbox}}%
+  \vskip0pt%
+}
+
+
+%%\addtobeamertemplate{frametitle}{
+%%    \begin{textblock*}{\paperwidth}(-4mm,0pt)
+%%        \includegraphics[width=\paperwidth,height=1cm]{samba_bg_cut}
+%%    \end{textblock*}
+%%}
+%%
+%%\addtobeamertemplate{footline}{
+%%    \begin{textblock*}{\paperwidth}(0pt,0pt)
+%%        \includegraphics[width=\paperwidth,height=0.5cm]{samba_bg_cut}
+%%    \end{textblock*}
+%%}
+
+
+%%\setbeamersize{text margin left=1em,text margin right=1em}
+
+\usepackage{textpos}
+
+\addtobeamertemplate{title page}
+{
+  \begin{textblock*}{\paperwidth}(-3em,0pt)
+    \pgfuseimage{Samba-BG}
+    %\includegraphics[width=\paperwidth,height=\paperheight]{samba_bg.png}
+  \end{textblock*}
+}
+
+%\setbeamertemplate{background canvas}{\pgfuseimage{Samba-BG}}
+
+\mode
+<all>
diff --git a/beamerthemeObnoxSamba.sty b/beamerthemeObnoxSamba.sty
new file mode 100644 (file)
index 0000000..49a1418
--- /dev/null
@@ -0,0 +1,81 @@
+% Copyright 2011 by Michael Adam  <obnox@samba.org>
+% Copyright 2004 by Madhusudan Singh <madhusudan.singh@gmail.com>
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the file doc/licenses/LICENSE for more details.
+
+
+\mode<presentation>
+
+\useoutertheme{obnoxinfolines}
+\usecolortheme{obnoxsamba}
+
+\setbeamertemplate{navigation symbols}{}
+
+%%\useinnertheme[shadow=true]{rounded}
+\useinnertheme{rectangles}
+% centered squares:
+%\setbeamertemplate{itemize item}{\rule[0.7ex]{0.7ex}{0.7ex}}
+\setbeamertemplate{itemize item}{\rule[0.5ex]{0.5ex}{0.5ex}}
+%\setbeamertemplate{itemize subitem}{\small\rule[0.6ex]{0.6ex}{0.6ex}}
+\setbeamertemplate{itemize subitem}{\small\rule[0.5ex]{0.5ex}{0.5ex}}
+\setbeamertemplate{itemize subsubitem}{\small\rule[0.5ex]{0.5ex}{0.5ex}}
+
+
+\setbeamerfont{block title}{size={}}
+%\setbeamercolor{titlelike}{parent=structure,bg=white}
+\setbeamercolor{titlelike}{parent=structure}
+
+
+
+% blocks
+\setbeamercolor{block title}{fg=white,bg=rhred4!90}
+\setbeamercolor{block title alerted}{use=alerted text,use=block title,fg=alerted text.fg!30!block title.fg,bg=block title.bg}
+\setbeamercolor{block title example}{use=example text,use=block title,fg=example text.fg!30!block title.fg,bg=block title.bg}
+
+\setbeamercolor{block body}{parent=normal text,bg=rhgrey2!50}
+\setbeamercolor{block body alerted}{parent=normal text,use=block title alerted,use=block body,fg=alerted text.fg!50!fg,bg=block body.bg}
+\setbeamercolor{block body example}{parent=normal text,use=block title example,use=block body,fg=example text.fg!40!fg,bg=block body.bg}
+
+\setbeamertemplate{blocks}[rounded]
+% blocks
+
+\newenvironment{sambabg}{
+       \setbeamertemplate{background canvas}%
+               {\includegraphics[width=\paperwidth,height=\paperheight]{samba_bg.png}}
+}
+{
+}
+
+\newcommand{\Sambabg}[1]{
+    \begin{sambabg}%
+    #1%
+    \end{sambabg}%
+}
+
+\renewcommand{\sectionpage}{\usebeamertemplate*{section page}}
+
+\newcommand{\fancySectionOpens}{
+\AtBeginSection[]%
+{
+    \Sambabg{\frame{\sectionpage}}
+}
+}
+
+%\fancySectionOpens
+
+
+%\newcommand{\fancyPartOpens}{
+%\AtBeginPart%
+%{
+%    \Sambabg{\frame{\partpage}}
+%}
+%}
+
+%\fancyPartOpens
+
+\mode<all>
diff --git a/content.wiki b/content.wiki
new file mode 100644 (file)
index 0000000..f58c1b7
--- /dev/null
@@ -0,0 +1,34 @@
+%
+% colors:
+%  _blue_text text_
+%  _red_text text_
+%
+
+==== agenda ====
+
+* History of SMB
+* History of Samba
+* SMB 2+
+* SMB 2+ in Samba
+* SMB3 Multi-Channel
+* Outlook: SMB3 over RDMA
+* Outlook: SMB3 Clustering/Witness
+* Outlook: SMB3 Persistent Handles
+
+[frame]>
+
+>>>intro-history.wiki<<<
+
+>>>smb3.wiki<<<
+
+>>>multichannel.wiki<<<
+
+>>>smb-direct.wiki<<<
+
+>>>witness.wiki<<<
+
+>>>persistent.wiki<<<
+
+>>>next.wiki<<<
+
+>>>thanks.wiki<<<
diff --git a/design-ctdb-three-nodes-with-witness-step0.dia b/design-ctdb-three-nodes-with-witness-step0.dia
new file mode 100644 (file)
index 0000000..ab98e2b
Binary files /dev/null and b/design-ctdb-three-nodes-with-witness-step0.dia differ
diff --git a/design-ctdb-three-nodes-with-witness-step1.dia b/design-ctdb-three-nodes-with-witness-step1.dia
new file mode 100644 (file)
index 0000000..e3a1ed3
Binary files /dev/null and b/design-ctdb-three-nodes-with-witness-step1.dia differ
diff --git a/design-ctdb-three-nodes-with-witness-step2a.dia b/design-ctdb-three-nodes-with-witness-step2a.dia
new file mode 100644 (file)
index 0000000..2a1f4a8
Binary files /dev/null and b/design-ctdb-three-nodes-with-witness-step2a.dia differ
diff --git a/design-ctdb-three-nodes-with-witness-step2b.dia b/design-ctdb-three-nodes-with-witness-step2b.dia
new file mode 100644 (file)
index 0000000..fdb33a4
Binary files /dev/null and b/design-ctdb-three-nodes-with-witness-step2b.dia differ
diff --git a/design-ctdb-three-nodes-with-witness-step3a.dia b/design-ctdb-three-nodes-with-witness-step3a.dia
new file mode 100644 (file)
index 0000000..d3683b0
Binary files /dev/null and b/design-ctdb-three-nodes-with-witness-step3a.dia differ
diff --git a/design-ctdb-three-nodes-with-witness-step3b.dia b/design-ctdb-three-nodes-with-witness-step3b.dia
new file mode 100644 (file)
index 0000000..12475c6
Binary files /dev/null and b/design-ctdb-three-nodes-with-witness-step3b.dia differ
diff --git a/design-ctdb-three-nodes-with-witness-step4.dia b/design-ctdb-three-nodes-with-witness-step4.dia
new file mode 100644 (file)
index 0000000..6ba4363
Binary files /dev/null and b/design-ctdb-three-nodes-with-witness-step4.dia differ
diff --git a/design-ctdb-three-nodes-with-witness-step5.dia b/design-ctdb-three-nodes-with-witness-step5.dia
new file mode 100644 (file)
index 0000000..fda2dc9
Binary files /dev/null and b/design-ctdb-three-nodes-with-witness-step5.dia differ
diff --git a/document.part1.wiki b/document.part1.wiki
new file mode 100644 (file)
index 0000000..a2d1454
--- /dev/null
@@ -0,0 +1 @@
+<[autotemplate]
diff --git a/document.part2.wiki b/document.part2.wiki
new file mode 100644 (file)
index 0000000..837bdf4
--- /dev/null
@@ -0,0 +1,20 @@
+%documentclass={beamer}
+usepackage=[utf8]{inputenc}
+%usepackage={listings}
+%usepackage={wasysym}
+usetheme={ObnoxSamba}
+usepackage={pgf}
+usepackage={multimedia}
+%%%\usepackage{verbatim}
+setbeamercovered={dynamic}
+%setbeamercovered={transparent}
+titleframe=True
+% note: currently a custom mod to wiki2beamer
+titleframeopts=[plain]
+% default info:
+title=[shrt ttl]{Long Title \\ \ }
+subtitle={Event}
+date={custom date}
+author={The Author}
+institute={Affiliation}
+% custom info can follow here:
diff --git a/document.part3.wiki b/document.part3.wiki
new file mode 100644 (file)
index 0000000..9cabda5
--- /dev/null
@@ -0,0 +1,3 @@
+[autotemplate]>
+
+>>>content.wiki<<<
diff --git a/feet-sand-1280.png b/feet-sand-1280.png
new file mode 100644 (file)
index 0000000..ebd2a53
Binary files /dev/null and b/feet-sand-1280.png differ
diff --git a/ho.class.wiki b/ho.class.wiki
new file mode 100644 (file)
index 0000000..b714b7d
--- /dev/null
@@ -0,0 +1,2 @@
+documentclass=[handout]{beamer}
+usepackage={pgfpages}
diff --git a/ho2.class.wiki b/ho2.class.wiki
new file mode 100644 (file)
index 0000000..44dc094
--- /dev/null
@@ -0,0 +1,3 @@
+documentclass=[handout]{beamer}
+usepackage={pgfpages}
+pgfpagesuselayout={2 on 1}
diff --git a/info.wiki b/info.wiki
new file mode 100644 (file)
index 0000000..3f69fee
--- /dev/null
+++ b/info.wiki
@@ -0,0 +1,5 @@
+title=[SMB3 MC in Samba]{SMB3 Multi-Channel in Samba\\ \ }
+subtitle={... Now Really!}
+date={2016-05-11}
+author={Michael Adam}
+institute={Red Hat / samba.org}
diff --git a/intro-history.wiki b/intro-history.wiki
new file mode 100644 (file)
index 0000000..f9a5e07
--- /dev/null
@@ -0,0 +1,93 @@
+<[sambabg]
+
+==== ====[plain]
+
+<[center]
+\Large
+'''Intro / History'''
+[center]>
+
+[frame]>
+[sambabg]>
+
+==== SMB - the alien protocol ====
+
+* SMB - Server Message Block
+* 1983: created by Barry Feigenbaum, IBM \\ %
+Turn DOS INT 21h local file access into network
+* Microsoft:
+** Lan Manager (from 1990)
+** Windows for Workgroups (from 1992)
+* On top of NetBIOS, TCP port 139
+* from Windows 2000: directly on TCP port 445
+
+==== SMB versions $>$ 1 ====
+
+* SMB 2.0: 2006 - Windows Vista
+* SMB 2.1: 2009 - Windows 7/Server 2008R2
+* SMB 3.0: 2012 - Windows 8/Server 2012
+* SMB 3.0.2: 2014 - Windows 8.1/Server 2012R2
+* SMB 3.1.1: 2015 - Windows 10/Server 2016
+
+==== Enter Samba ... ====
+
+* ... implements SMB ...
+* ... ''old'' Open Source project ...
+* ... opens windows to a wider world ... \smiley
+* ...
+
+==== Samba... ====
+
+<[center]
+<<<samba-kisses-better-selection.jpg,height=.8\textheight>>>
+[center]>
+
+
+==== Samba... ====
+
+<[block]
+{According to openhub.net, Samba}
+"...has had 101,614 commits made by 363 contributors
+representing 1,637,229 lines of code"
+[block]>
+* present on millions of NAS devices and routers
+* one of the oldest OSS projects (24 years)
+* large codebase and small but very active development team
+
+==== Samba - History ====
+
+* 1992/01: start of the project
+* 1.5: 1993/12: (nbserver)
+* 1.9.16: 1996/05: CVS, Samba Team
+* 2.0: 1999/01: domain-member, +SWAT
+* 2.2: 2001/04: NT4-DC
+* 3.0: 2003/09: AD-member, Samba4 project started
+* 3.2: 2008/07: GPLv3, experimental clustering
+* 3.3: 2009/01: clustering [with CTDB]
+* 3.4: 2009/07: merged S3+S4 code
+* 3.5: 2010/03: experimental SMB 2.0
+* 3.6: 2011/09: SMB 2.0
+* 4.0: 2012/12: AD/DC, SMB 2.0 durable handles, 2.1, 3.0
+* 4.1: 2013/10: stability
+* 4.2: 2015/03: AD trusts, SMB2.1 leases, perf, include CTDB
+* 4.3: 2015/09: spotlight, new FileChangeNotify, SMB 3.1.1
+* 4.4: 2016/03: Multi-Channel core, ...
+
+==== Samba - Today ====
+
+* Performant, scalable SMB file server \\ %
+  ==> Ongoing SMB3 implementation
+* Active Directory domain member with @winbindd@ \\ %
+  ==> flexible, performant, clusterable
+* Full Active Directory Domain Controller \\ %
+  (Kerberos KDC, LDAP, DNS, Trusted Domains, etc) \\ %
+  "AWS Directory Service" is powered by Samba AD
+* Established SMB clients for Linux: \\ %
+  cifs.ko, libsmbclient (nautilus, dolphin, konqueror)
+* Comprehensive testsuite \\ %
+  ==> wrappers now published outside of Samba: cwrap.org
+* IDL compiler, autogenerated DCE/RPC code \\ %
+  ==> another 1,141,095 lines of code % wc -l bin/default/{source3,source4,""}/librpc/gen_ndr/{*.c,*.h}
+* Powerful python(3) bindings, partly autogenerated
+
+[frame]>
diff --git a/multichannel.wiki b/multichannel.wiki
new file mode 100644 (file)
index 0000000..93ab0b2
--- /dev/null
@@ -0,0 +1,304 @@
+<[sambabg]
+
+==== ====[plain]
+
+<[center]
+\Large
+'''Multi-Channel'''
+[center]>
+
+[frame]>
+[sambabg]>
+
+
+==== Multi-Channel - General ====
+
+<[block]{multiple transport connections in one SMB(3) session}
+* '''channel''': transport connection bound to a session
+* client decides which connections to bind and to use
+* session is valid as long as at least one channel is intact
+[block]>
+
+<[block]{two purposes}
+# increase throughput:
+#* use multiple connections of same type
+# improve fault tolerance:
+#* channel failure: replay/retry detection
+%%#* session is valid as long as one channel is still intact
+[block]>
+
+==== Multi-Channel - General ====
+
+<[block]{use case: channels of different type/quality}
+* use only the channels of best quality
+* fall back to inferior channels if superior ones fail
+* e.g.: laptop switching between WiFi and LAN (?)
+[block]>
+
+==== Multi-Channel - Windows/Protocol ====
+
+# establish initial session on TCP connection
+# find interfaces with interface discovery: \\ %
+@FSCTL\_QUERY\_NETWORK\_INTERFACE\_INFO@
+# bind additional TCP (or later RDMA) connection (channel) to established SMB3 session (''session bind'')
+# Windows: uses connections of same (and best) quality
+# Windows: binds only to a single node
+# replay / retry mechanisms, epoch numbers
+
+==== Multi-Channel $\in$ Samba ====
+
+<[block]{samba/smbd: multi-process}
+* '''Originally:''' process $\Leftrightarrow$ TCP connection
+*<0> '''Idea:''' transfer new TCP connection to existing smbd
+*<0> '''How?''' ==> use fd-passing (sendmsg/recvmsg)
+*<0> '''When?'''
+** ''Natural choice'': at SessionSetup (Bind)
+** !Idea!: as early as possible, based on ClientGUID \\ %
+==> per ClientGUID single process model
+%%*<0> !But!: This may not work! \frownie
+[block]>
+
+==== Multi-Channel $\in$ Samba ====
+
+<[center]
+<<<smb3-mc-daemons-n1.png,width=.9\textwidth>>>
+[center]>
+
+==== Multi-Channel $\in$ Samba ====
+
+<[block]{samba/smbd: multi-process}
+* '''Originally:''' process $\Leftrightarrow$ TCP connection
+* '''Idea:''' transfer new TCP connection to existing smbd
+*<0> '''How?''' ==> use fd-passing (sendmsg/recvmsg)
+*<0> '''When?'''
+** ''Natural choice'': at SessionSetup (Bind)
+** !Idea!: as early as possible, based on ClientGUID \\ %
+==> per ClientGUID single process model
+%%*<0> !But!: There may be problems! ... \frownie
+[block]>
+
+
+==== Multi-Channel $\in$ Samba ====
+
+-<1>{
+<[center]
+<<<smb3-mc-daemons-n1a.png,width=.9\textwidth>>>
+[center]>
+}
+
+-<2>{
+<[center]
+<<<smb3-mc-daemons-n2.png,width=.9\textwidth>>>
+[center]>
+}
+
+-<3>{
+<[center]
+<<<smb3-mc-daemons-n3.png,width=.9\textwidth>>>
+[center]>
+}
+
+
+==== Multi-Channel $\in$ Samba ====
+
+<[block]{samba/smbd: multi-process}
+* '''Originally:''' process $\Leftrightarrow$ TCP connection
+* '''Idea:''' transfer new TCP connection to existing smbd
+* '''How?''' ==> use fd-passing (sendmsg/recvmsg)
+*<2-> '''When?'''
+** ''Natural choice'': at SessionSetup (Bind)
+** !Idea!: as early as possible, based on ClientGUID \\ %
+==> per ClientGUID single process model
+%%*<0> !But!: There may be problems! ... \frownie
+[block]>
+
+
+==== Multi-Channel $\in$ Samba : pass by ClientGUID ====
+
+<[center]
+%%<<<smb3-mc-samba_exp.png,height=.9\textheight>>>
+<<<smb3-mc-samba.png,height=.9\textheight>>>
+[center]>
+
+
+==== Multi-Channel $\in$ Samba : pass by ClientGUID ====
+
+<[block]{Wait a minute - what about performance?}
+* Single process...
+* But we use short-lived worker-pthreads for I/O ops!
+* Benchmarks and tunings still to be done.
+[block]>
+
+%%%% ==== Multi-Channel $\in$ Samba ====
+%%%% 
+%%%% <[block]{samba/smbd: multi-process}
+%%%% * '''Orignally:''' process $\Leftrightarrow$ TCP connection
+%%%% * '''Idea:''' transfer new TCP connection to existing smbd
+%%%% * '''How?''' ==> use fd-passing (sendmsg/recvmsg)
+%%%% * '''When?'''
+%%%% ** ''Natural choice'': at SessionSetup (Bind)
+%%%% ** ''Idea'': as early as possible, based on ClientGUID \\ %
+%%%% ==> per ClientGUID single process model
+%%%% * !But!: There may be problems! ... \frownie
+%%%% [block]>
+%%%% 
+%%%% 
+%%%% ==== The Relevance of the ClientGUID ====
+%%%% 
+%%%% +<1->{
+%%%% <[block]{Assumption was:}
+%%%% * All channels in a session have the same ClientGUID
+%%%% * The server enforces this
+%%%% [block]>
+%%%% }
+%%%% 
+%%%% +<2->{
+%%%% <[block]{Evidence from [MS-SMB2]:}
+%%%% * 3.3.5.9 Receiving an SMB2 CREATE Request:
+%%%% ** sets Open.ClientGuid to Connection.ClientGuid
+%%%% ** replay detection checks \\ %
+%%%% Open.ClientGuid == Connection.ClientGuid
+%%%% * 3.3.5.9.7/12 Durable (v2) Reconnect Create Context:
+%%%% ** check Open.ClientGuid == Connection.ClientGuid
+%%%% [block]>
+%%%% }
+%%%% 
+%%%% +<3->{
+%%%% <[block]{The truth is...}
+%%%% The Windows server does not enforce it!
+%%%% [block]>
+%%%% }
+%%%% 
+%%%% 
+%%%% ==== The Relevance of the ClientGUID ====
+%%%% 
+%%%% <[block]{Windows behaviour according to MS}
+%%%% * The server does NOT enforce same ClientGUID in a session.
+%%%% * But clients can be expected to do it.
+%%%% * But it is not explicitly documented like this.
+%%%% [block]>
+%%%% 
+%%%% +<2->{
+%%%% <[block]{The good news:}
+%%%% There will be documentation notes:
+%%%% * Things will not work as expected when clients behave differently.
+%%%% * It is OK for a server to enforce equality of ClientGUID within session.
+%%%% [block]>
+%%%% }
+%%%% 
+%%%% ==== More digression on ClientGUID : Leases ====
+%%%% 
+%%%% <[block]{According to [MS-SMB2]}
+%%%% * Server Global data Structures:
+%%%% ** GlobalLeaseTableList indexed by ClientGuid (3.3.1.5)
+%%%% *** LeaseTable indexed by LeaseKey (3.3.1.11)
+%%%% * Requesting a lease (3.3.1.4):
+%%%% ** Object store takes an abstract ClientLeaseId
+%%%% *** Win7: combination of ClientGuid and LeaseKey
+%%%% *** Win8+: LeaseKey
+%%%% * Object store indicates a lease break (3.3.4.7):
+%%%% ** smb server uses ClientGuid and LeaseKey given by ObjectStore
+%%%% 
+%%%%  ==> !Inconsistent\! -- What to do?!
+%%%% [block]>
+%%%% 
+%%%% 
+%%%% ==== Multi-Channel $\in$ Samba : pass by SessionID (plan B) ====
+%%%% 
+%%%% <[center]
+%%%% <<<smb3-mc-samba-v2.png,height=.9\textheight>>>
+%%%% [center]>
+
+
+==== Multi-Channel $\in$ Samba : Status ====
+
++<2->{
+# messaging rewrite using unix dgm sockets with sendmsg [DONE,4.2]
+# add fd-passing to messaging [DONE,4.2]
+# preparations in internal structures [DONE,4.4]
+# prepare code to cope with multiple channels [DONE,4.4]
+# implement smbd message to pass a tcp socket [DONE,4.4]
+# transfer connection in Negotiate (by ClientGUID) [DONE,4.4]
+# implement session bind [DONE,4.4]
+# implement channel epoch numbers [DONE,4.4]
+# implement interface discovery [DONE(linux/conf),4.4]
+# implement test cases [WIP(isn't it always?... $\smiley$)]
+# implement fd-passing in socket-wrapper [WIP]
+# implement lease break replay [TODO]
+}
+
+==== Multi-Channel $\in$ Samba : Details from @smbXsrv.idl@ ====
+%%==== @MSG\_SMBXSRV\_CONNECTION\_PASS@ ====
+
+<[block]{for @MSG\_SMBXSRV\_CONNECTION\_PASS@}
+<[code]
+typedef struct {
+    NTTIME                 initial_connect_time;
+    GUID                   client_guid;
+    hyper                  seq_low;
+    DATA_BLOB              negotiate_request;
+} smbXsrv_connection_pass0;
+[code]>
+[block]>
+
+%%==== Internal Structures (@smbXsrv.idl@) ====
+==== Multi-Channel $\in$ Samba : Details from @smbXsrv.idl@ ====
+
+
+<[block]{layering before}
+<[code]
+smbXsrv_session
+  ->smbXsrv_connection
+[code]>
+[block]>
+
+<[block]{layering now}
+<[code]
+smbXsrv_session
+  ->smbXsrv_client
+    ->smbXsrv_connections
+[code]>
+[block]>
+
+
+%%% ==== Multi-Channel $\in$ Samba : Status ====
+%%% 
+%%% <[block]{WIP code}
+%%% * @git://git.samba.org/obnox/samba/samba-obnox.git@
+%%% * branch: @master-multi-channel-obnox@
+%%% [block]>
+
+
+==== Multi-Channel $\in$ Samba: TODOs ====
+
+* Replay lease breaks upon channel failure (server $\rightarrow$ client)
+* teach socket\_wrapper fd-passing ( ==> selftest...)
+* clustering integration (CTDB)
+
+==== Multi-Channel $\in$ Samba : Clustering/CTDB ====
+
++<2->{
+<[block]{Special considerations}
+* channels of one session only to one node !
+* do not bind connections to CTDB public IPs (can move)!
+* ==> !add static IPs on public interfaces! \\ %
+use these for interface discovery
+[block]>
+}
+
+
+
+[frame]>
+
+<[sambabg]
+
+
+==== ====[plain]
+
+<[center]
+\Large
+Multi-Channel Demo
+[center]>
+
+[frame]>
+[sambabg]>
diff --git a/next.wiki b/next.wiki
new file mode 100644 (file)
index 0000000..23ef8ff
--- /dev/null
+++ b/next.wiki
@@ -0,0 +1,22 @@
+<[sambabg]
+
+==== ====[plain]
+
+<[center]
+\Large
+'''Wrapping up...'''
+[center]>
+
+[frame]>
+[sambabg]>
+
+==== What's next ? ====
+
+* SMB3 Multi-Channel: finishing moves
+* SMB3 Witness service: async RPC
+* SMB3 Persistent Handles / CA
+* SMB3 over RDMA (SMB direct)
+* Multi-Protocol access (NFS, SMB...)
+* SMB2+ Unix Extensions ==> _red_See Jeremy's Talk!_
+
+[frame]>
diff --git a/persistent.wiki b/persistent.wiki
new file mode 100644 (file)
index 0000000..41a35a6
--- /dev/null
@@ -0,0 +1,30 @@
+<[sambabg]
+
+==== ====[plain]
+
+<[center]
+\Large
+'''Outlook: persistent handles'''
+[center]>
+
+[frame]>
+[sambabg]>
+
+==== Persistent File Handles ====
+
+* available on 'Continuously Available' SMB3 shares
+* allows disconnected clients to reconnect
+* like durable handles, but with strong guarantees!
+
+==== Persistent Handles : Challenges ====
+
+* protocol is easy
+* persistence/guarantees are hard
+* strategies:
+** filesystem spcific
+** generic, with tdb extensions
+
+
+
+[frame]>
+
diff --git a/pr.class.wiki b/pr.class.wiki
new file mode 100644 (file)
index 0000000..305180b
--- /dev/null
@@ -0,0 +1 @@
+documentclass={beamer}
diff --git a/redhat-logo.png b/redhat-logo.png
new file mode 100644 (file)
index 0000000..3ee786b
Binary files /dev/null and b/redhat-logo.png differ
diff --git a/samba-kisses-better-selection.jpg b/samba-kisses-better-selection.jpg
new file mode 100644 (file)
index 0000000..dc60f9b
Binary files /dev/null and b/samba-kisses-better-selection.jpg differ
diff --git a/samba-layers-exp.jpg b/samba-layers-exp.jpg
new file mode 100644 (file)
index 0000000..c103aeb
Binary files /dev/null and b/samba-layers-exp.jpg differ
diff --git a/samba.png b/samba.png
new file mode 100644 (file)
index 0000000..fdc9c84
Binary files /dev/null and b/samba.png differ
diff --git a/samba_bg.png b/samba_bg.png
new file mode 100644 (file)
index 0000000..51a96b5
Binary files /dev/null and b/samba_bg.png differ
diff --git a/samba_bg_cut.png b/samba_bg_cut.png
new file mode 100644 (file)
index 0000000..b14b7ec
Binary files /dev/null and b/samba_bg_cut.png differ
diff --git a/samba_bg_cut.xcf b/samba_bg_cut.xcf
new file mode 100644 (file)
index 0000000..32bf764
Binary files /dev/null and b/samba_bg_cut.xcf differ
diff --git a/smb-direct.wiki b/smb-direct.wiki
new file mode 100644 (file)
index 0000000..0087872
--- /dev/null
@@ -0,0 +1,47 @@
+<[sambabg]
+
+==== ====[plain]
+
+<[center]
+\Large
+'''Outlook: SMB Direct'''
+[center]>
+
+[frame]>
+[sambabg]>
+
+
+==== SMB Direct : SMB3 over RDMA ====
+
+<[block]{Windows/Protocol}
+* requires multi-channel
+* start with TCP, bind an RDMA channel
+* SMB Direct: small wrapper protocol to put SMB into RDMA
+* reads and writes use RDMA write/read
+* protocol/metadata via send/receive
+[block]>
+
+==== SMB Direct $\in$ Samba ====
+
+* wireshark dissector: [DONE]
+
+* Samba:
+** prereq: multi-channel [ess.DONE]
+** buffer / transport abstractions [WIP]
+
+* _red_problem_ with RDMA libraries:
+** not fork safe
+** no fd-passing
+
+* ==> central RDMA proxy
+** PoC/dev: user space daemon
+** production: kernel module
+
+
+==== SMB Direct $\in$ Samba ====
+
+<[center]
+<<<smb3-rdma-samba-v2.png,height=.9\textheight>>>
+[center]>
+
+[frame]>
diff --git a/smb3-mc-daemons-n1.dia b/smb3-mc-daemons-n1.dia
new file mode 100644 (file)
index 0000000..0b014e8
Binary files /dev/null and b/smb3-mc-daemons-n1.dia differ
diff --git a/smb3-mc-daemons-n1a.dia b/smb3-mc-daemons-n1a.dia
new file mode 100644 (file)
index 0000000..727214d
Binary files /dev/null and b/smb3-mc-daemons-n1a.dia differ
diff --git a/smb3-mc-daemons-n2.dia b/smb3-mc-daemons-n2.dia
new file mode 100644 (file)
index 0000000..445f9f0
Binary files /dev/null and b/smb3-mc-daemons-n2.dia differ
diff --git a/smb3-mc-daemons-n3.dia b/smb3-mc-daemons-n3.dia
new file mode 100644 (file)
index 0000000..9b27f28
Binary files /dev/null and b/smb3-mc-daemons-n3.dia differ
diff --git a/smb3-mc-samba-v2.dia b/smb3-mc-samba-v2.dia
new file mode 100644 (file)
index 0000000..d9d0af0
Binary files /dev/null and b/smb3-mc-samba-v2.dia differ
diff --git a/smb3-mc-samba-v2.old.dia b/smb3-mc-samba-v2.old.dia
new file mode 100644 (file)
index 0000000..d77e334
Binary files /dev/null and b/smb3-mc-samba-v2.old.dia differ
diff --git a/smb3-mc-samba.dia b/smb3-mc-samba.dia
new file mode 100644 (file)
index 0000000..b5c23db
Binary files /dev/null and b/smb3-mc-samba.dia differ
diff --git a/smb3-mc-samba.old.dia b/smb3-mc-samba.old.dia
new file mode 100644 (file)
index 0000000..08877a0
Binary files /dev/null and b/smb3-mc-samba.old.dia differ
diff --git a/smb3-rdma-samba-v2.dia b/smb3-rdma-samba-v2.dia
new file mode 100644 (file)
index 0000000..88f905f
Binary files /dev/null and b/smb3-rdma-samba-v2.dia differ
diff --git a/smb3-rdma-samba-v2.old.dia b/smb3-rdma-samba-v2.old.dia
new file mode 100644 (file)
index 0000000..a5cc6b5
Binary files /dev/null and b/smb3-rdma-samba-v2.old.dia differ
diff --git a/smb3-rdma-samba.dia b/smb3-rdma-samba.dia
new file mode 100644 (file)
index 0000000..413197b
Binary files /dev/null and b/smb3-rdma-samba.dia differ
diff --git a/smb3.wiki b/smb3.wiki
new file mode 100644 (file)
index 0000000..ce1e0f4
--- /dev/null
+++ b/smb3.wiki
@@ -0,0 +1,50 @@
+<[sambabg]
+
+==== ====[plain]
+
+<[center]
+\Large
+'''SMB3'''
+[center]>
+
+[frame]>
+[sambabg]>
+
+==== SMB3 ====
+
+<[block]{SMB3 (2012) introduced SMB clustering:}
+* Clustering - Witness
+* Continuous Availability - Persistent Handles
+* Scale Out
+[block]>
+
+<[block]{Additionally:}
+* Transport encryption
+* Multi-Channel
+* RDMA transport (SMB Direct)
+[block]>
+
+
+==== SMB Features - in Samba ====
+
+* SMB 2.0:
+** durable file handles [4.0]
+* SMB 2.1:
+** multi-credit / large mtu [4.0]
+** dynamic reauthentication [4.0]
+** leasing [4.2]
+** resilient file handles [PoC]
+* SMB 3.0:
+** new crypto (sign/encrypt) [4.0]
+** secure negotiation [4.0]
+** durable file handles v2 [4.0]
+** persistent file handles [design/PoC]
+** multi-channel [4.4 (experimental)]
+** SMB direct [design]
+** cluster features [design]
+*** witness [WIP+]
+* SMB 3.0.2: [4.3]
+* SMB 3.1.1:
+** negotiate contexts, preauth: [4.3]
+
+[frame]>
diff --git a/thanks.wiki b/thanks.wiki
new file mode 100644 (file)
index 0000000..cb381ae
--- /dev/null
@@ -0,0 +1,37 @@
+<[sambabg]
+==== Thanks for your attention! ====[plain]
+
+%\transdissolve
+
+<[center]
+<[columns]
+[[[.6\textwidth]]]
+
+{\Large
+
+Questions?
+
+--*3em--
+
+@obnox\@samba.org@
+
+%--*.5em--
+%
+%@madam\@redhat.com@
+
+--*.5em--
+
+@obnox\@redhat.com@
+
+}
+[[[.3\textwidth]]]
+<<<feet-sand-1280.png,height=.8\textheight>>>
+
+[columns]>
+[center]>
+
+\footnotesize
+@https://git.samba.org/?p=obnox/slides/2016-04-vault.git@
+
+[frame]>
+[sambabg]>
diff --git a/witness.wiki b/witness.wiki
new file mode 100644 (file)
index 0000000..7f2fd3a
--- /dev/null
@@ -0,0 +1,89 @@
+<[sambabg]
+
+==== ====[plain]
+
+<[center]
+\Large
+'''Outlook: clustering / witness'''
+[center]>
+
+[frame]>
+[sambabg]>
+
+==== Witness - General ====
+
+* New DCE/RPC Service to “witness” availability of IPs, shares, ...
+* ==> Faster fail-over of clients in the cluster
+* Prompt, explicit, and controlled notifications about failures \ %
+  (CTDB tickle-ACKs are implicit)
+* Available since SMB3 (Windows 8 / Windows Server 2012)
+
+==== Witness - Failover with SMB3 in a Samba/CTDB cluster ====
+
+-<1>{
+<[center]
+<<<design-ctdb-three-nodes-with-witness-step0.png, width=.95\textwidth>>>
+[center]>
+}
+
+-<2>{
+<[center]
+<<<design-ctdb-three-nodes-with-witness-step1.png, width=.95\textwidth>>>
+[center]>
+}
+
+-<3>{
+<[center]
+<<<design-ctdb-three-nodes-with-witness-step2a.png, width=.95\textwidth>>>
+[center]>
+}
+
+-<4>{
+<[center]
+<<<design-ctdb-three-nodes-with-witness-step2b.png, width=.95\textwidth>>>
+[center]>
+}
+
+-<5>{
+<[center]
+<<<design-ctdb-three-nodes-with-witness-step3a.png, width=.95\textwidth>>>
+[center]>
+}
+
+-<6>{
+<[center]
+<<<design-ctdb-three-nodes-with-witness-step3b.png, width=.95\textwidth>>>
+[center]>
+}
+
+-<7>{
+<[center]
+<<<design-ctdb-three-nodes-with-witness-step4.png, width=.95\textwidth>>>
+[center]>
+}
+
+-<8>{
+<[center]
+<<<design-ctdb-three-nodes-with-witness-step5.png, width=.95\textwidth>>>
+[center]>
+}
+
+==== Witness - Samba ====
+
+<[block]{Currently under development in Samba}
+* PoC implementation available
+* TODO(wip): new _red_async_ DCE/RPC infrastructure
+* {\footnotesize @https://wiki.samba.org/index.php/Samba3/ \\ %
+   SMB2\#Witness\_Notification\_Protocol@}
+* WIP branch: \\ %
+  {\footnotesize @https://git.samba.org/?p=gd/samba/.git;a=shortlog; \\ %
+   h=refs/heads/master-witness@}
+[block]>
+
+<[block]{Samba Witness service will cause Windows clients to reconnect...}
+* when client admin tool is used
+* when CTDB (or any other cluster resource control manager) moves resources or IP addresses
+[block]>
+
+[frame]>
+