1 | <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 20. Hosting a Microsoft Distributed File System Tree</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="The Official Samba 3.5.x HOWTO and Reference Guide"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="prev" href="InterdomainTrusts.html" title="Chapter 19. Interdomain Trust Relationships"><link rel="next" href="classicalprinting.html" title="Chapter 21. Classical Printing Support"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 20. Hosting a Microsoft Distributed File System Tree</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="InterdomainTrusts.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="classicalprinting.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 20. Hosting a Microsoft Distributed File System Tree"><div class="titlepage"><div><div><h2 class="title"><a name="msdfs"></a>Chapter 20. Hosting a Microsoft Distributed File System Tree</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Shirish</span> <span class="surname">Kalele</span></h3><div class="affiliation"><span class="orgname">Samba Team & Veritas Software<br></span><div class="address"><p><br>
|
---|
2 | <code class="email"><<a class="email" href="mailto:samba@samba.org">samba@samba.org</a>></code><br>
|
---|
3 | </p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jht@samba.org">jht@samba.org</a>></code></p></div></div></div></div><div><p class="pubdate">12 Jul 2000</p></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="msdfs.html#id386537">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="msdfs.html#id386927">Common Errors</a></span></dt><dd><dl><dt><span class="sect2"><a href="msdfs.html#id386956">MSDFS UNIX Path Is Case-Critical</a></span></dt></dl></dd></dl></div><div class="sect1" title="Features and Benefits"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id386537"></a>Features and Benefits</h2></div></div></div><p>
|
---|
4 | <a class="indexterm" name="id386544"></a>
|
---|
5 | <a class="indexterm" name="id386554"></a>
|
---|
6 | <a class="indexterm" name="id386560"></a>
|
---|
7 | <a class="indexterm" name="id386567"></a>
|
---|
8 | <a class="indexterm" name="id386574"></a>
|
---|
9 | The distributed file system (DFS) provides a means of separating the logical
|
---|
10 | view of files and directories that users see from the actual physical locations
|
---|
11 | of these resources on the network. It allows for higher availability, smoother
|
---|
12 | storage expansion, load balancing, and so on.
|
---|
13 | </p><p>
|
---|
14 | <a class="indexterm" name="id386587"></a>
|
---|
15 | <a class="indexterm" name="id386593"></a>
|
---|
16 | <a class="indexterm" name="id386600"></a>
|
---|
17 | For information about DFS, refer to the <a class="ulink" href="http://www.microsoft.com/NTServer/nts/downloads/winfeatures/NTSDistrFile/AdminGuide.asp" target="_top">Microsoft
|
---|
18 | documentation</a>. This document explains how to host a DFS tree on a UNIX machine (for DFS-aware clients
|
---|
19 | to browse) using Samba.
|
---|
20 | </p><p>
|
---|
21 | <a class="indexterm" name="id386618"></a>
|
---|
22 | <a class="indexterm" name="id386625"></a>
|
---|
23 | <a class="indexterm" name="id386632"></a>
|
---|
24 | <a class="indexterm" name="id386638"></a>
|
---|
25 | A Samba server can be made a DFS server by setting the global Boolean <a class="link" href="smb.conf.5.html#HOSTMSDFS" target="_top">host msdfs</a>
|
---|
26 | parameter in the <code class="filename">smb.conf</code> file. You designate a share as a DFS root using the share-level Boolean
|
---|
27 | <a class="link" href="smb.conf.5.html#MSDFSROOT" target="_top">msdfs root</a> parameter. A DFS root directory on Samba hosts DFS links in the form of
|
---|
28 | symbolic links that point to other servers. For example, a symbolic link
|
---|
29 | <code class="filename">junction->msdfs:storage1\share1</code> in the share directory acts as the DFS junction. When
|
---|
30 | DFS-aware clients attempt to access the junction link, they are redirected to the storage location (in this
|
---|
31 | case, <em class="parameter"><code>\\storage1\share1</code></em>).
|
---|
32 | </p><p>
|
---|
33 | <a class="indexterm" name="id386695"></a>
|
---|
34 | <a class="indexterm" name="id386702"></a>
|
---|
35 | <a class="indexterm" name="id386708"></a>
|
---|
36 | <a class="indexterm" name="id386715"></a>
|
---|
37 | DFS trees on Samba work with all DFS-aware clients ranging from Windows 95 to 200x.
|
---|
38 | <a class="link" href="msdfs.html#dfscfg" title="Example 20.1. smb.conf with DFS Configured">The following sample configuration</a> shows how to setup a DFS tree on a Samba server.
|
---|
39 | In the <code class="filename">/export/dfsroot</code> directory, you set up your DFS links to
|
---|
40 | other servers on the network.
|
---|
41 | </p><pre class="screen">
|
---|
42 | <code class="prompt">root# </code><strong class="userinput"><code>cd /export/dfsroot</code></strong>
|
---|
43 | <code class="prompt">root# </code><strong class="userinput"><code>chown root /export/dfsroot</code></strong>
|
---|
44 | <code class="prompt">root# </code><strong class="userinput"><code>chmod 755 /export/dfsroot</code></strong>
|
---|
45 | <code class="prompt">root# </code><strong class="userinput"><code>ln -s msdfs:storageA\\shareA linka</code></strong>
|
---|
46 | <code class="prompt">root# </code><strong class="userinput"><code>ln -s msdfs:serverB\\share,serverC\\share linkb</code></strong>
|
---|
47 | </pre><p>
|
---|
48 | </p><div class="example"><a name="dfscfg"></a><p class="title"><b>Example 20.1. smb.conf with DFS Configured</b></p><div class="example-contents"><table border="0" summary="Simple list" class="simplelist"><tr><td> </td></tr><tr><td><em class="parameter"><code>[global]</code></em></td></tr><tr><td><a class="indexterm" name="id386820"></a><em class="parameter"><code>netbios name = GANDALF</code></em></td></tr><tr><td><a class="indexterm" name="id386832"></a><em class="parameter"><code>host msdfs = yes</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[dfs]</code></em></td></tr><tr><td><a class="indexterm" name="id386852"></a><em class="parameter"><code>path = /export/dfsroot</code></em></td></tr><tr><td><a class="indexterm" name="id386864"></a><em class="parameter"><code>msdfs root = yes</code></em></td></tr></table></div></div><br class="example-break"><p>
|
---|
49 | <a class="indexterm" name="id386878"></a>
|
---|
50 | <a class="indexterm" name="id386885"></a>
|
---|
51 | <a class="indexterm" name="id386892"></a>
|
---|
52 | You should set up the permissions and ownership of the directory acting as the DFS root so that only
|
---|
53 | designated users can create, delete, or modify the msdfs links. Also note that symlink names should be all
|
---|
54 | lowercase. This limitation exists to have Samba avoid trying all the case combinations to get at the link
|
---|
55 | name. Finally, set up the symbolic links to point to the network shares you want and start Samba.
|
---|
56 | </p><p>
|
---|
57 | <a class="indexterm" name="id386905"></a>
|
---|
58 | <a class="indexterm" name="id386912"></a>
|
---|
59 | Users on DFS-aware clients can now browse the DFS tree on the Samba server at
|
---|
60 | <code class="constant">\\samba\dfs</code>. Accessing links linka or linkb (which appear as directories to the client)
|
---|
61 | takes users directly to the appropriate shares on the network.
|
---|
62 | </p></div><div class="sect1" title="Common Errors"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id386927"></a>Common Errors</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Windows clients need to be rebooted
|
---|
63 | if a previously mounted non-DFS share is made a DFS
|
---|
64 | root, or vice versa. A better way is to introduce a
|
---|
65 | new share and make it the DFS root.</p></li><li class="listitem"><p>Currently, there's a restriction that msdfs
|
---|
66 | symlink names should all be lowercase.</p></li><li class="listitem"><p>For security purposes, the directory
|
---|
67 | acting as the root of the DFS tree should have ownership
|
---|
68 | and permissions set so only designated users can
|
---|
69 | modify the symbolic links in the directory.</p></li></ul></div><div class="sect2" title="MSDFS UNIX Path Is Case-Critical"><div class="titlepage"><div><div><h3 class="title"><a name="id386956"></a>MSDFS UNIX Path Is Case-Critical</h3></div></div></div><p>
|
---|
70 | A network administrator sent advice to the Samba mailing list
|
---|
71 | after long sessions trying to determine why DFS was not working.
|
---|
72 | His advice is worth noting.
|
---|
73 | </p><p><span class="quote">“<span class="quote">
|
---|
74 | I spent some time trying to figure out why my particular
|
---|
75 | DFS root wasn't working. I noted in the documentation that
|
---|
76 | the symlink should be in all lowercase. It should be
|
---|
77 | amended that the entire path to the symlink should all be
|
---|
78 | in lowercase as well.
|
---|
79 | </span>”</span></p><p>
|
---|
80 | <span class="quote">“<span class="quote">For example, I had a share defined as such:</span>”</span>
|
---|
81 | </p><table border="0" summary="Simple list" class="simplelist"><tr><td> </td></tr><tr><td><em class="parameter"><code>[pub]</code></em></td></tr><tr><td><a class="indexterm" name="id386993"></a><em class="parameter"><code>path = /export/home/Shares/public_share</code></em></td></tr><tr><td><a class="indexterm" name="id387005"></a><em class="parameter"><code>msdfs root = yes</code></em></td></tr></table><p>
|
---|
82 | <span class="quote">“<span class="quote">and I could not make my Windows 9x/Me (with the dfs client installed) follow this symlink:</span>”</span>
|
---|
83 | </p><pre class="screen">
|
---|
84 | damage1 -> msdfs:damage\test-share
|
---|
85 | </pre><p>
|
---|
86 | </p><p>
|
---|
87 | <span class="quote">“<span class="quote">Running a debug level of 10 reveals:</span>”</span>
|
---|
88 | </p><pre class="programlisting">
|
---|
89 | [2003/08/20 11:40:33, 5] msdfs/msdfs.c:is_msdfs_link(176)
|
---|
90 | is_msdfs_link: /export/home/shares/public_share/* does not exist.
|
---|
91 | </pre><p>
|
---|
92 | <span class="quote">“<span class="quote">Curious. So I changed the directory name from <code class="constant">.../Shares/...</code> to
|
---|
93 | <code class="constant">.../shares/...</code> (along with my service definition) and it worked!</span>”</span>
|
---|
94 | </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="InterdomainTrusts.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="optional.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="classicalprinting.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 19. Interdomain Trust Relationships </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 21. Classical Printing Support</td></tr></table></div></body></html>
|
---|