1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
|
<HTML
><HEAD
><TITLE
>Hosting a Microsoft Distributed File System tree on Samba</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.57"></HEAD
><BODY
CLASS="ARTICLE"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN1"
>Hosting a Microsoft Distributed File System tree on Samba</A
></H1
><HR></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN3"
>Instructions</A
></H1
><P
>The Distributed File System (or Dfs) provides a means of
separating the logical view of files and directories that users
see from the actual physical locations of these resources on the
network. It allows for higher availability, smoother storage expansion,
load balancing etc. For more information about Dfs, refer to <A
HREF="http://www.microsoft.com/NTServer/nts/downloads/winfeatures/NTSDistrFile/AdminGuide.asp"
TARGET="_top"
> Microsoft documentation</A
>. </P
><P
>This document explains how to host a Dfs tree on a Unix
machine (for Dfs-aware clients to browse) using Samba.</P
><P
>To enable SMB-based DFS for Samba, configure it with the
<TT
CLASS="PARAMETER"
><I
>--with-msdfs</I
></TT
> option. Once built, a
Samba server can be made a Dfs server by setting the global
boolean <A
HREF="smb.conf.5.html#HOSTMSDFS"
TARGET="_top"
><TT
CLASS="PARAMETER"
><I
> host msdfs</I
></TT
></A
> parameter in the <TT
CLASS="FILENAME"
>smb.conf
</TT
> file. You designate a share as a Dfs root using the share
level boolean <A
HREF="smb.conf.5.html#MSDFSROOT"
TARGET="_top"
><TT
CLASS="PARAMETER"
><I
> msdfs root</I
></TT
></A
> parameter. A Dfs root directory on
Samba hosts Dfs links in the form of symbolic links that point
to other servers. For example, a symbolic link
<TT
CLASS="FILENAME"
>junction->msdfs:storage1\share1</TT
> in
the share directory acts as the Dfs junction. When Dfs-aware
clients attempt to access the junction link, they are redirected
to the storage location (in this case, \\storage1\share1).</P
><P
>Dfs trees on Samba work with all Dfs-aware clients ranging
from Windows 95 to 2000.</P
><P
>Here's an example of setting up a Dfs tree on a Samba
server.</P
><P
><PRE
CLASS="PROGRAMLISTING"
># The smb.conf file:
[global]
netbios name = SAMBA
host msdfs = yes
[dfs]
path = /export/dfsroot
msdfs root = yes
</PRE
></P
><P
>In the /export/dfsroot directory we set up our dfs links to
other servers on the network.</P
><P
><TT
CLASS="PROMPT"
>root# </TT
><TT
CLASS="USERINPUT"
><B
>cd /export/dfsroot</B
></TT
></P
><P
><TT
CLASS="PROMPT"
>root# </TT
><TT
CLASS="USERINPUT"
><B
>chown root /export/dfsroot</B
></TT
></P
><P
><TT
CLASS="PROMPT"
>root# </TT
><TT
CLASS="USERINPUT"
><B
>chmod 755 /export/dfsroot</B
></TT
></P
><P
><TT
CLASS="PROMPT"
>root# </TT
><TT
CLASS="USERINPUT"
><B
>ln -s msdfs:storageA\\shareA linka</B
></TT
></P
><P
><TT
CLASS="PROMPT"
>root# </TT
><TT
CLASS="USERINPUT"
><B
>ln -s msdfs:serverB\\share,serverC\\share linkb</B
></TT
></P
><P
>You should set up the permissions and ownership of
the directory acting as the Dfs root such that only designated
users can create, delete or modify the msdfs links. Also note
that symlink names should be all lowercase. This limitation exists
to have Samba avoid trying all the case combinations to get at
the link name. Finally set up the symbolic links to point to the
network shares you want, and start Samba.</P
><P
>Users on Dfs-aware clients can now browse the Dfs tree
on the Samba server at \\samba\dfs. Accessing
links linka or linkb (which appear as directories to the client)
takes users directly to the appropriate shares on the network.</P
><DIV
CLASS="SECT2"
><HR><H2
CLASS="SECT2"
><A
NAME="AEN38"
>Notes</A
></H2
><P
></P
><UL
><LI
><P
>Windows clients need to be rebooted
if a previously mounted non-dfs share is made a dfs
root or vice versa. A better way is to introduce a
new share and make it the dfs root.</P
></LI
><LI
><P
>Currently there's a restriction that msdfs
symlink names should all be lowercase.</P
></LI
><LI
><P
>For security purposes, the directory
acting as the root of the Dfs tree should have ownership
and permissions set so that only designated users can
modify the symbolic links in the directory.</P
></LI
></UL
></DIV
></DIV
></DIV
></BODY
></HTML
>
|