none
[openafs-wiki.git] / AFSLore / WindowsConfigurationReferenceGuide.mdwn
1 # <a name="Configuration Reference Guide"></a> Configuration Reference Guide
2
3 <div>
4   <ul>
5     <li><a href="#Configuration Reference Guide"> Configuration Reference Guide</a><ul>
6         <li><a href="#Introduction"> Introduction</a></li>
7         <li><a href="#Credentials Manager"> Credentials Manager</a><ul>
8             <li><a href="#Command Line Options"> Command Line Options</a></li>
9             <li><a href="#Tokens"> Tokens</a></li>
10             <li><a href="#Drive Letters"> Drive Letters</a></li>
11             <li><a href="#Advanced"> Advanced</a></li>
12             <li><a href="#System Tray"> System Tray</a></li>
13           </ul>
14         </li>
15         <li><a href="#Client Configuration"> Client Configuration</a><ul>
16             <li><a href="#General"> General</a></li>
17             <li><a href="#Drive Letters"> Drive Letters</a></li>
18             <li><a href="#Preferences"> Preferences</a></li>
19             <li><a href="#AFS Cells"> AFS Cells</a></li>
20             <li><a href="#Advanced"> Advanced</a><ul>
21                 <li><a href="#Logon Settings"> Logon Settings</a></li>
22                 <li><a href="#Diagnostic"> Diagnostic</a></li>
23                 <li><a href="#Global Drives"> Global Drives</a></li>
24                 <li><a href="#Binding"> Binding</a></li>
25                 <li><a href="#Miscellaneous"> Miscellaneous</a></li>
26               </ul>
27             </li>
28           </ul>
29         </li>
30         <li><a href="#Settings Without a User Interfac"> Settings Without a User Interface</a><ul>
31             <li><a href="#Tokens For Roaming Profiles"> Tokens For Roaming Profiles</a></li>
32             <li><a href="#Netbios Name"> Netbios Name</a></li>
33             <li><a href="#Encryption of Network Traffic"> Encryption of Network Traffic</a></li>
34             <li><a href="#Freelance Client Support"> Freelance Client Support</a></li>
35             <li><a href="#Hiding Dot-Files"> Hiding Dot-Files</a></li>
36             <li><a href="#Hiding the \\AFS\all Share"> Hiding the <tt>\\AFS\all</tt> Share</a></li>
37             <li><a href="#Tweaking the SMB Connections"> Tweaking the SMB Connections</a></li>
38             <li><a href="#Connection Timeouts"> Connection Timeouts</a></li>
39             <li><a href="#Tweaking RPC Traffic"> Tweaking RPC Traffic</a></li>
40             <li><a href="#Enabling Debug Trace Events"> Enabling Debug Trace Events</a></li>
41             <li><a href="#Restricting the Number of Utiliz"> Restricting the Number of Utilized CPUs</a></li>
42           </ul>
43         </li>
44         <li><a href="#Windows Registry Keys of _OpenAF"> Windows Registry Keys of OpenAFS</a></li>
45       </ul>
46     </li>
47   </ul>
48 </div>
49
50 ## <a name="Introduction"></a> Introduction
51
52 Once you have installed [[OpenAFS]] for Windows onto your computer, there are two programs you will be concerned with: The first one is the AFS Client (Credentials Manager), the second is the AFS Client Configuration program. Many of the options in [[OpenAFS]] can be set from both programs. This is a source of confusion, which this guide will try to sort out.
53
54 Because this is a reference, the programs will be described in order, screen by screen. At the end, files and Windows Registry keys will be described.
55
56 ## <a name="Credentials Manager"></a> Credentials Manager
57
58 This program is located in `C:\Program Files\OpenAFS\Client\Program\afscreds.exe` (default location). It is used for managing end-user tasks. This includes obtaining tickets and setting up per-user drive mappings.
59
60 ### <a name="Command Line Options"></a> Command Line Options
61
62 If you intend to run `afscreds.exe` from a command line, the following options may be of interrest to you. NB: The flags are case-insensitive, and can begin with either **_-_** (� la Unix) or **_/_** (old Windows style).
63
64 <dl>
65   <dt> -A</dt>
66   <dd> Auto Initialize. Starts the AFS service if it is stopped. Tries to obtain tokens when the Credentials Manager is started. </dd>
67   <dt> -E</dt>
68   <dd> Exit. Terminate another, already running, instance of Credentials Manager. Then exit this instance. </dd>
69   <dt> -I</dt>
70   <dd> Install in Startup. Make the Credentials Manager start when the user logs in. </dd>
71   <dt> -M</dt>
72   <dd> Renew Drive Mappings. Unmaps all drive mappings and then remaps them when the Credentials Manager is started. </dd>
73   <dt> -N</dt>
74   <dd> Net Change Detect. Tells the Credentials Manager to ask the user for new tokens if a network interface changes its IP address. </dd>
75   <dt> -Q</dt>
76   <dd> Quiet. Do not notify the user if the AFS service is not started when the Credentials Manager is begin started. </dd>
77   <dt> -S</dt>
78   <dd> Show Tokens. Open the tokens window on start. </dd>
79   <dt> -U</dt>
80   <dd> Uninstall. Remove Credentials Manager from Startup. The Credentials Manager will no longer start automatically when the user logs in. </dd>
81   <dt> -X</dt>
82   <dd> Remap All. Remap all drives, including global drives. </dd>
83   <dt> -Z</dt>
84   <dd> Unmap All. Unmaps all per-user drives. </dd>
85 </dl>
86
87 ### <a name="Tokens"></a> Tokens
88
89 <img src="http://www.e.kth.se/~tommie/openafs/screens/afscreds/tokens.png" width="467" height="238" /> The Tokens Tab displays brief information about your AFS tokens. It shows your current cell, and when the tokens expire. It lets you obtain (or renew) tokens (kauth/kinit in Unix) and make it sound an alarm if they will be expiring any time soon. If you have sensitive information in AFS, you can discard (kdestroy) tokens when away. Of course, [[OpenAFS]] discards the tokens automatically when you log out. This window also shows what version of [[OpenAFS]] you are currently running.
90
91 ### <a name="Drive Letters"></a> Drive Letters
92
93 <img src="http://www.e.kth.se/~tommie/openafs/screens/afscreds/drive-letters.png" width="467" height="238" /> A fundamental entity in the Microsoft Windows operating systems is the **_drive_**. A drive is identified by one letter and a colon. To mask a network file system as a drive is called to "map a drive".
94
95 Mapping a drive in [[OpenAFS]] requires you to know three things. You will have to know what drive you want to map, what AFS path to map from, and what to call the mapping. The first two should be obivous. If you are used to Unix, however, note that the AFS Path is written using backslash, not slash. You also have the option to automatically reconnect the drive on login.
96
97 The Description field is not as obvious. It is an **_identifier_** for the mapping, and is called a **_submount_**. It is not a free text description. The same restrictions apply to the description as to any name of a Windows share. See the [[WindowsTroubleshootingGuide]] for more information on submounts.
98
99 ### <a name="Advanced"></a> Advanced
100
101 <img src="http://www.e.kth.se/~tommie/openafs/screens/afscreds/advanced.png" width="467" height="238" /> If you are an administrator, you will want to use this tab eventually. You can check the status of the AFS service, start it if needed and configure global parameters. Pressing "Configure AFS Client" brings up the "AFS Client Configuration" program, which is described in a later section.
102
103 You should always start the AFS service when the computer starts up. Otherwise, you will have to start the service manually. This is equivalent to using the "Services" tab of Windows Administration Tools". This applies to all users.
104
105 The "Always show the AFS Client icon in the taskbar" option sets whether the Credentials Manager should be started on each login or not.
106
107 ### <a name="System Tray"></a> System Tray
108
109 <img src="http://www.e.kth.se/~tommie/openafs/screens/windows/taskbar.png" width="135" height="26" /> A padlock is the icon for AFS Credentials Manager. It is locked when you have valid tokens, and has a small red cross when you do not.
110
111 Clicking it brings the Credentials Manager up. Right-clicking opens a three-item menu. "Remove Icon..." will ask if you want to stop the AFS service or not. The Credentials Manager will then exit.
112
113 ## <a name="Client Configuration"></a> Client Configuration
114
115 This program is located in `C:\Program Files\OpenAFS\Common\afs_config.exe` (default location). The configuration utility can perform most operations of the Credentials Manager, and more. In fact, the Client Configuration is not able to obtain tokens, but everything else can be updated with it.
116
117 When installed, [[OpenAFS]] also installs this program as a Control Panel applet, called "AFS Client Configuration". No matter how you call it, the functionality is the same.
118
119 ### <a name="General"></a> General
120
121 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/general.png" width="356" height="495" /> The General Tab of the AFS Client Configuration provide roughly the same functionality as the Advanced Tab of the Credentials Manager. The Cell Name identifies the default authentication cell. The `root.afs` volume of this cell is used to identify which cells to present at the root. Your default cell must have AFSDB-records in DNS, or/and be listed in [[CellServDB]] (see AFS Cells below). At the bottom, you will find the same Start / Stop Service as in the Credentials Manager.
122
123 The three other options are:
124
125 - **Obtain AFS tokens when logging into Windows** enables the Integrated Logon feature.
126 - **Provide an AFS Light Gateway** gives you access to the [[OpenAFS]] submounts from other computers.
127 - **Show the AFS Client icon in the taskbar** will start the Credentials Manager if it is not already running.
128
129 ### <a name="Drive Letters"></a> Drive Letters
130
131 Mapping drives and creating submounts work the same way as for the Credentials Manager. Please refer to the section above.
132
133 ### <a name="Preferences"></a> Preferences
134
135 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/preferences.png" width="356" height="495" /> Since AFS can mirror both files and volume information on several servers, there must be a way to determine which server to contact. In [[OpenAFS]] for Windows, this is specified using the Server Preferences screen. Normally, you will never need to manually change the preferences of the servers. However, if you are doing load balance testing or if you are stress testing a server, you may set the preferences here.
136
137 You can also import the rankings from a file. The file is a text file with one line per server. Whitespaces separate the server name from the rankning number. Note that the servers are imported to the active list (File Server or Volume Location Server).
138
139 ### <a name="AFS Cells"></a> AFS Cells
140
141 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/afscells.png" width="356" height="495" /> Before [[OpenAFS]] was able to handle AFSDB-records in DNS, the [[CellServDB]] file contained the explicit mappings between cells and servers. The AFS Cells Tab shows the cells currently in the [[CellServDB]]. You add a cell and list its associated servers. Most large sites copy the [[CellServDB]] directly from the network, to keep it in sync.
142
143 ### <a name="Advanced"></a> Advanced
144
145 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/advanced.png" width="356" height="495" /> Finally, the Advanced Tab. This is where you configure the heart of [[OpenAFS]] for Windows. Most of these settings already have a best-practice value. Be warned that changing these settings can cause [[OpenAFS]] to be slow, or to stop working at all.
146
147 In the Cache Configuration section, there are four options:
148
149 - **Cache Size** determines the maximum disk cache size. The disk cache is a file, and it will always have the chosen size. I.e. it will not shrink if possible. The defualt is 20 MB. If you are editing large files, you may want to increase the cache size. Note that [[OpenAFS]] for Windows does not have a **_persistent cache_**. This means the cache will be flushed each time the [[OpenAFS]] service stops. The Unix versions of [[OpenAFS]] does have a persistent cache.
150 - **Cache Path** holds the path to the file acting as disk cache. The default is `C:\AFSCache`.
151 - **Chunk Size** is the smallest transfer unit. The cache works by caching chunks of files, contrary to entire files. It should be set to a size which is fast to transfer over the network, yet large enough to avoid lots and lots of transfers. The default is 32 kB. It must be an even power of two.
152 - **Status Cache** describes file meta information caching. 1000 entries is the default.
153
154 #### <a name="Logon Settings"></a> Logon Settings
155
156 Change the behaviour of the Integrated Logon feature. The login retry interval sets how long (in seconds) [[OpenAFS]] will try to obtain initial tokens. Fail Logins Silently controls whether you will get a message box telling the reason for the failure, or not.
157
158 Setting "Fail Logins Silently" to "No" also affects the function of the retry interval. When the interval has passed, you will be given a question to start the timer over or not. If you choose to start over, another retry interval will be used to try and obtain the tokens.
159
160 #### <a name="Diagnostic"></a> Diagnostic
161
162 Due to the complexity of [[OpenAFS]], the error and trace logging facilites have evolved into a detailed tracer of execution. The buffer is a ring, and the default size is 5000 kB. You can read this buffer using the `osidebug` program.
163
164 "Trap On Panic" is used during development. It is only useful if the AFS service crashes. If set to "Yes" (default), a crashed service will start the system debugger. (Actually, it sends an IRQ 3.) Note that the option is ignored if the system does not have a debugger installed.
165
166 "Report Session Startups" will let the AFS service send an event to the Windows Event Log each time a new SMB/CIFS session is started. Default is "No".
167
168 #### <a name="Global Drives"></a> Global Drives
169
170 In a highly networked environment, it is not uncommon to read login scripts from the network. This, of course, requires the scripts to be accessible by login time. Since the per-user drive mappings are executed **_after_** the scripts are executed, the global drive mappings can be used. These affect all users, and can only be modified by an Administrator.
171
172 #### <a name="Binding"></a> Binding
173
174 Before [[OpenAFS]] for Windows began to use the Microsoft Loop Back Adapter, it used physical network interfaces to bind to. In certain situations, the default choice may be a bad choice. For instance, when the network interface connects directly to the Internet, this would be a bad idea. With the Loop Back Adapter, this is no longer an issue.
175
176 #### <a name="Miscellaneous"></a> Miscellaneous
177
178 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/adv_misc.png" width="336" height="301" /> These settings are hardly ever changed. They control system specific settings.
179
180 - **Probe Interval** determines how often to check file servers. AFS is designed through the principle of callbacks. The file servers are obligued to notify each client if a subscribed file changes. This setup is not guaranteed to work if the servers loose the subscription list. Therefore, the client must probe the servers as often as possible. **_Note: Currently this setting is not permanently stored in the Windows Registry. It is only induced in a running AFS Client Service._**
181 - **Background Threads** controls how many AFS network threads will be running. One thread is able to handle one request from an AFS server at any time. Default is four threads.
182 - **Service Threads** controls how many SMB/CIFS threads will be running. If your computer is a single user machine, not doing any video or audio editing, a low number should suffice. It is possible that a higher number will get better performance for many parallel file accesses. Default is two threads.
183 - **System Name** is the value of "@sys". It should never be changed. Default is currently "i386\_nt40" for Windows NT/2000/XP/2003.
184 - **Mount Directory** is really "Mount Root". It is used when resolving symlinks. Microsoft Windows does not know of symbolic links, why the AFS Client Service must convert them. If a symlink target begins with the **_Mount Directory_** string, it will be transformed into an absolute path of the form `\\AFS\ALL\...`. Default is `/afs`. There is generally no need to modify this value.
185 - **Root Volume** is the name of the root volume of the default cell. Default is `root.afs`, and is the recommended AFS root volume name.
186
187 ## <a name="Settings Without a User Interfac"></a> Settings Without a User Interface
188
189 Currently, some options have not yet been given a proper user interface. These can be changed directly in the Windows Registry using `regedit`.
190
191 ### <a name="Tokens For Roaming Profiles"></a> Tokens For Roaming Profiles
192
193 The AFS service is capable of retaining the user's tokens some time after logging out. This enables a slow transfer of the user's roaming profile to be successfully completed. The registry keys can be found under `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`. The values in question are called `LogoffTokenTransfer` (type DWORD) and `LogoffTokenTransferTimeout` (type QWORD).
194
195 Setting `LogoffTokenTransfer` to 1 makes the AFS service keep the tokens for `LogoffTokenTransferTimeout` seconds.
196
197 ### <a name="Netbios Name"></a> Netbios Name
198
199 As the AFS service publishes its services as SMB/CIFS shares, there must be a name of this service. The `NetbiosName` (type expanding string) value of `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` can change this. The default is "AFS". Change this to "%COMPUTERNAME%-AFS" to revert to the old behaviour.
200
201 ### <a name="Encryption of Network Traffic"></a> Encryption of Network Traffic
202
203 Historically, AFS did not support encrypted network traffic. This has changed in recent years. The support is off by default in order to be compatible with old servers. You enable and disable encryption through the value `SecurityLevel` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` set to 1 to enable and 0 to disable.
204
205 ### <a name="Freelance Client Support"></a> Freelance Client Support
206
207 This option can be set during installation. After installation, a registry entry must be edited. It can be found in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` and is called `FreelanceClient` (type DWORD). Set it to 1 to enable Freelance Mode. See the [[WindowsQuickStartGuide]] for more information on Freelance Mode. Default is off.
208
209 ### <a name="Hiding Dot-Files"></a> Hiding Dot-Files
210
211 On Unix, a dot-file is a file which begins with the dot character. It is semantically similar to the Hidden attribute used in Windows. This feature is enabled by default and marks all dot-files with the Hidden attribute. The value `HideDotFiles` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` can disable it (by giving it the value 0).
212
213 ### <a name="Hiding the \\AFS\all Share"></a> Hiding the `\\AFS\all` Share
214
215 The share `all` is exported by default, and is defined as the root volume of the default cell. If you do not want this share to be defined, you can set `AllSubmount` (type DWORD) to 0, in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`.
216
217 ### <a name="Tweaking the SMB Connections"></a> Tweaking the SMB Connections
218
219 Four values in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` affect the SMB connections:
220
221 - `MaxMpxRequests` (type DWORD) is the maximum number of multiplexed SMB requests that can be made. Default is 50.
222 - `MaxVCPerServer` (type DWORD) is the maximum number of SMB virtual circuits. Default is 100.
223 - `NoFindLanaByName` (type DWORD) disables the attempt to identity the network adapter to use by looking for an adapter with a display name of "AFS", if set to 1. Default is 0.
224 - `SMBAuthType` (type DWORD) defines the type of SMB authentication which must be present in order for the Windows SMB client to connect to the AFS Client Service's SMB server. The values are
225   - No authentication required (0)
226   - NTLM authentication required (1)
227   - Extended (GSS SPNEGO) authentication required (2, default)
228
229 Heavily loaded clients may need to increase the first two values.
230
231 ### <a name="Connection Timeouts"></a> Connection Timeouts
232
233 In `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`, two values control when connections are considered dead.
234
235 - `ConnDeadTimeout` (type DWORD) Default is 60 seconds.
236 - `HardDeadTimeout` (type DWORD) Default is 120 seconds, and it must be at least twice the `ConnDeadTimeout` value.
237
238 ### <a name="Tweaking RPC Traffic"></a> Tweaking RPC Traffic
239
240 In `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`, two values control how RX transfers data.
241
242 - `RxNoJumbo` (type DWORD) If enabled, does not send or indicate that we are able to send or receive RX jumbograms. Default is 0, which means jumbograms are used.
243 - `RxMaxMTU` (type DWORD) If set to anything other than -1, uses that value as the maximum MTU supported by the RX interface. In order to enable [[OpenAFS]] to operate across the Cisco IPSec VPN client, this value must be set to 1264 or smaller. Default is -1, the maximum.
244
245 ### <a name="Enabling Debug Trace Events"></a> Enabling Debug Trace Events
246
247 Normally, the `TraceOption` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` is 0, meaning no traces will be output to the Application Event Log. Setting it to 1 enables trace output.
248
249 ### <a name="Restricting the Number of Utiliz"></a> Restricting the Number of Utilized CPUs
250
251 For most part, the [[OpenAFS]] client can use as many processors as available. It has, however, showed that Hyperthreaded Pentium 4 systems can cause the [[OpenAFS]] service to crash. If you have such a system, you should set `MaxCPUs` (type DWORD) (in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`) to 1. The default is undefined, and means all processors may be used.
252
253 ## <a name="Windows Registry Keys of _OpenAF"></a> Windows Registry Keys of [[OpenAFS]]
254
255 During the preparation of this release of [[OpenAFS]], a lot of changes have been made to the way configuration is stored. The work is still not finished, why the list of registry keys currently used can be found [here](http://web.mit.edu/~jaltman/Public/OpenAFS/registry.txt).