[217] | 1 | <?xml version="1.0" encoding="iso-8859-1"?>
|
---|
| 2 | <!DOCTYPE chapter PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
|
---|
| 3 | <chapter id="msdfs">
|
---|
| 4 |
|
---|
| 5 | <chapterinfo>
|
---|
| 6 | <author>
|
---|
| 7 | <firstname>Shirish</firstname><surname>Kalele</surname>
|
---|
| 8 | <affiliation>
|
---|
| 9 | <orgname>Samba Team & Veritas Software</orgname>
|
---|
| 10 | <address>
|
---|
| 11 | <email>samba@samba.org</email>
|
---|
| 12 | </address>
|
---|
| 13 | </affiliation>
|
---|
| 14 | </author>
|
---|
| 15 | &author.jht;
|
---|
| 16 |
|
---|
| 17 | <pubdate>12 Jul 2000</pubdate>
|
---|
| 18 | </chapterinfo>
|
---|
| 19 |
|
---|
| 20 | <title>Hosting a Microsoft Distributed File System Tree</title>
|
---|
| 21 |
|
---|
| 22 | <sect1>
|
---|
| 23 | <title>Features and Benefits</title>
|
---|
| 24 |
|
---|
| 25 | <para>
|
---|
| 26 | <indexterm><primary>distributed file system</primary><see>DFS</see></indexterm>
|
---|
| 27 | <indexterm><primary>physical locations</primary></indexterm>
|
---|
| 28 | <indexterm><primary>higher availability</primary></indexterm>
|
---|
| 29 | <indexterm><primary>load balancing</primary></indexterm>
|
---|
| 30 | <indexterm><primary>logical directories</primary></indexterm>
|
---|
| 31 | The distributed file system (DFS) provides a means of separating the logical
|
---|
| 32 | view of files and directories that users see from the actual physical locations
|
---|
| 33 | of these resources on the network. It allows for higher availability, smoother
|
---|
| 34 | storage expansion, load balancing, and so on.
|
---|
| 35 | </para>
|
---|
| 36 |
|
---|
| 37 | <para>
|
---|
| 38 | <indexterm><primary>DFS</primary></indexterm>
|
---|
| 39 | <indexterm><primary>DFS tree</primary></indexterm>
|
---|
| 40 | <indexterm><primary>DFS-aware</primary></indexterm>
|
---|
| 41 | For information about DFS, refer to the <ulink
|
---|
| 42 | url="http://www.microsoft.com/NTServer/nts/downloads/winfeatures/NTSDistrFile/AdminGuide.asp">Microsoft
|
---|
| 43 | documentation</ulink>. This document explains how to host a DFS tree on a UNIX machine (for DFS-aware clients
|
---|
| 44 | to browse) using Samba.
|
---|
| 45 | </para>
|
---|
| 46 |
|
---|
| 47 | <para>
|
---|
| 48 | <indexterm><primary>DFS server</primary></indexterm>
|
---|
| 49 | <indexterm><primary>share-level</primary></indexterm>
|
---|
| 50 | <indexterm><primary>DFS junction</primary></indexterm>
|
---|
| 51 | <indexterm><primary>DFS-aware</primary></indexterm>
|
---|
| 52 | A Samba server can be made a DFS server by setting the global Boolean <smbconfoption name="host msdfs"/>
|
---|
| 53 | parameter in the &smb.conf; file. You designate a share as a DFS root using the share-level Boolean
|
---|
| 54 | <smbconfoption name="msdfs root"/> parameter. A DFS root directory on Samba hosts DFS links in the form of
|
---|
| 55 | symbolic links that point to other servers. For example, a symbolic link
|
---|
| 56 | <filename>junction->msdfs:storage1\share1</filename> in the share directory acts as the DFS junction. When
|
---|
| 57 | DFS-aware clients attempt to access the junction link, they are redirected to the storage location (in this
|
---|
| 58 | case, <parameter>\\storage1\share1</parameter>).
|
---|
| 59 | </para>
|
---|
| 60 |
|
---|
| 61 | <para>
|
---|
| 62 | <indexterm><primary>DFS-aware</primary></indexterm>
|
---|
| 63 | <indexterm><primary>DFS tree</primary></indexterm>
|
---|
| 64 | <indexterm><primary>DFS links</primary></indexterm>
|
---|
| 65 | <indexterm><primary>DFS</primary></indexterm>
|
---|
| 66 | DFS trees on Samba work with all DFS-aware clients ranging from Windows 95 to 200x.
|
---|
| 67 | <link linkend="dfscfg">The following sample configuration</link> shows how to setup a DFS tree on a Samba server.
|
---|
| 68 | In the <filename>/export/dfsroot</filename> directory, you set up your DFS links to
|
---|
| 69 | other servers on the network.
|
---|
| 70 | <screen>
|
---|
| 71 | &rootprompt;<userinput>cd /export/dfsroot</userinput>
|
---|
| 72 | &rootprompt;<userinput>chown root /export/dfsroot</userinput>
|
---|
| 73 | &rootprompt;<userinput>chmod 755 /export/dfsroot</userinput>
|
---|
| 74 | &rootprompt;<userinput>ln -s msdfs:storageA\\shareA linka</userinput>
|
---|
| 75 | &rootprompt;<userinput>ln -s msdfs:serverB\\share,serverC\\share linkb</userinput>
|
---|
| 76 | </screen>
|
---|
| 77 | </para>
|
---|
| 78 |
|
---|
| 79 | <example id="dfscfg">
|
---|
| 80 | <title>smb.conf with DFS Configured</title>
|
---|
| 81 | <smbconfblock>
|
---|
| 82 | <smbconfsection name="[global]"/>
|
---|
| 83 | <smbconfoption name="netbios name">&example.server.samba;</smbconfoption>
|
---|
| 84 | <smbconfoption name="host msdfs ">yes</smbconfoption>
|
---|
| 85 |
|
---|
| 86 | <smbconfsection name="[dfs]"/>
|
---|
| 87 | <smbconfoption name="path">/export/dfsroot</smbconfoption>
|
---|
| 88 | <smbconfoption name="msdfs root">yes</smbconfoption>
|
---|
| 89 | </smbconfblock>
|
---|
| 90 | </example>
|
---|
| 91 |
|
---|
| 92 | <para>
|
---|
| 93 | <indexterm><primary>DFS root</primary></indexterm>
|
---|
| 94 | <indexterm><primary>msdfs links</primary></indexterm>
|
---|
| 95 | <indexterm><primary>symbolic links</primary></indexterm>
|
---|
| 96 | You should set up the permissions and ownership of the directory acting as the DFS root so that only
|
---|
| 97 | designated users can create, delete, or modify the msdfs links. Also note that symlink names should be all
|
---|
| 98 | lowercase. This limitation exists to have Samba avoid trying all the case combinations to get at the link
|
---|
| 99 | name. Finally, set up the symbolic links to point to the network shares you want and start Samba.
|
---|
| 100 | </para>
|
---|
| 101 |
|
---|
| 102 | <para>
|
---|
| 103 | <indexterm><primary>DFS-aware clients</primary></indexterm>
|
---|
| 104 | <indexterm><primary>DFS tree</primary></indexterm>
|
---|
| 105 | Users on DFS-aware clients can now browse the DFS tree on the Samba server at
|
---|
| 106 | <constant>\\samba\dfs</constant>. Accessing links linka or linkb (which appear as directories to the client)
|
---|
| 107 | takes users directly to the appropriate shares on the network.
|
---|
| 108 | </para>
|
---|
| 109 |
|
---|
| 110 | </sect1>
|
---|
| 111 |
|
---|
| 112 | <sect1>
|
---|
| 113 | <title>Common Errors</title>
|
---|
| 114 | <itemizedlist>
|
---|
| 115 | <listitem><para>Windows clients need to be rebooted
|
---|
| 116 | if a previously mounted non-DFS share is made a DFS
|
---|
| 117 | root, or vice versa. A better way is to introduce a
|
---|
| 118 | new share and make it the DFS root.</para>
|
---|
| 119 | </listitem>
|
---|
| 120 |
|
---|
| 121 | <listitem><para>Currently, there's a restriction that msdfs
|
---|
| 122 | symlink names should all be lowercase.</para>
|
---|
| 123 | </listitem>
|
---|
| 124 |
|
---|
| 125 | <listitem><para>For security purposes, the directory
|
---|
| 126 | acting as the root of the DFS tree should have ownership
|
---|
| 127 | and permissions set so only designated users can
|
---|
| 128 | modify the symbolic links in the directory.</para>
|
---|
| 129 | </listitem>
|
---|
| 130 | </itemizedlist>
|
---|
| 131 |
|
---|
| 132 | <sect2>
|
---|
| 133 | <title>MSDFS UNIX Path Is Case-Critical</title>
|
---|
| 134 |
|
---|
| 135 | <para>
|
---|
| 136 | A network administrator sent advice to the Samba mailing list
|
---|
| 137 | after long sessions trying to determine why DFS was not working.
|
---|
| 138 | His advice is worth noting.
|
---|
| 139 | </para>
|
---|
| 140 |
|
---|
| 141 | <para><quote>
|
---|
| 142 | I spent some time trying to figure out why my particular
|
---|
| 143 | DFS root wasn't working. I noted in the documentation that
|
---|
| 144 | the symlink should be in all lowercase. It should be
|
---|
| 145 | amended that the entire path to the symlink should all be
|
---|
| 146 | in lowercase as well.
|
---|
| 147 | </quote></para>
|
---|
| 148 |
|
---|
| 149 | <para>
|
---|
| 150 | <quote>For example, I had a share defined as such:</quote>
|
---|
| 151 | <smbconfblock>
|
---|
| 152 | <smbconfsection name="[pub]"/>
|
---|
| 153 | <smbconfoption name="path">/export/home/Shares/public_share</smbconfoption>
|
---|
| 154 | <smbconfoption name="msdfs root">yes</smbconfoption>
|
---|
| 155 | </smbconfblock>
|
---|
| 156 | <quote>and I could not make my Windows 9x/Me (with the dfs client installed) follow this symlink:</quote>
|
---|
| 157 | <screen>
|
---|
| 158 | damage1 -> msdfs:damage\test-share
|
---|
| 159 | </screen>
|
---|
| 160 | </para>
|
---|
| 161 |
|
---|
| 162 | <para>
|
---|
| 163 | <quote>Running a debug level of 10 reveals:</quote>
|
---|
| 164 | <programlisting>
|
---|
| 165 | [2003/08/20 11:40:33, 5] msdfs/msdfs.c:is_msdfs_link(176)
|
---|
| 166 | is_msdfs_link: /export/home/shares/public_share/* does not exist.
|
---|
| 167 | </programlisting>
|
---|
| 168 | <quote>Curious. So I changed the directory name from <constant>.../Shares/...</constant> to
|
---|
| 169 | <constant>.../shares/...</constant> (along with my service definition) and it worked!</quote>
|
---|
| 170 | </para>
|
---|
| 171 |
|
---|
| 172 | </sect2>
|
---|
| 173 |
|
---|
| 174 | </sect1>
|
---|
| 175 |
|
---|
| 176 | </chapter>
|
---|