ukernel-use-fsblkcnt-20090513
[openafs.git] / doc / xml / AdminGuide / c21473.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <HTML
3 ><HEAD
4 ><TITLE
5 >Administering Client Machines and the Cache Manager</TITLE
6 ><META
7 NAME="GENERATOR"
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
9 REL="HOME"
10 TITLE="AFS Administration Guide"
11 HREF="book1.html"><LINK
12 REL="UP"
13 TITLE="Managing Client Machines"
14 HREF="p21471.html"><LINK
15 REL="PREVIOUS"
16 TITLE="Managing Client Machines"
17 HREF="p21471.html"><LINK
18 REL="NEXT"
19 TITLE="Configuring Client Machines with the package Program"
20 HREF="c23832.html"></HEAD
21 ><BODY
22 CLASS="chapter"
23 BGCOLOR="#FFFFFF"
24 TEXT="#000000"
25 LINK="#0000FF"
26 VLINK="#840084"
27 ALINK="#0000FF"
28 ><DIV
29 CLASS="NAVHEADER"
30 ><TABLE
31 SUMMARY="Header navigation table"
32 WIDTH="100%"
33 BORDER="0"
34 CELLPADDING="0"
35 CELLSPACING="0"
36 ><TR
37 ><TH
38 COLSPAN="3"
39 ALIGN="center"
40 >AFS Administration Guide: Version 3.6</TH
41 ></TR
42 ><TR
43 ><TD
44 WIDTH="10%"
45 ALIGN="left"
46 VALIGN="bottom"
47 ><A
48 HREF="p21471.html"
49 ACCESSKEY="P"
50 >Prev</A
51 ></TD
52 ><TD
53 WIDTH="80%"
54 ALIGN="center"
55 VALIGN="bottom"
56 ></TD
57 ><TD
58 WIDTH="10%"
59 ALIGN="right"
60 VALIGN="bottom"
61 ><A
62 HREF="c23832.html"
63 ACCESSKEY="N"
64 >Next</A
65 ></TD
66 ></TR
67 ></TABLE
68 ><HR
69 ALIGN="LEFT"
70 WIDTH="100%"></DIV
71 ><DIV
72 CLASS="chapter"
73 ><H1
74 ><A
75 NAME="HDRWQ387"
76 ></A
77 >Chapter 10. Administering Client Machines and the Cache Manager</H1
78 ><P
79 >This chapter describes how to administer an AFS client machine, which is any machine from which users can access the AFS
80   filespace and communicate with AFS server processes. (A client machine can simultaneously function as an AFS server machine if
81   appropriately configured.) An AFS client machine has the following characteristics: <UL
82 ><LI
83 ><P
84 >The kernel includes the set of modifications, commonly referred to as the <SPAN
85 CLASS="emphasis"
86 ><I
87 CLASS="emphasis"
88 >Cache Manager</I
89 ></SPAN
90 >, that
91         enable access to AFS files and directories. You can configure many of the Cache Manager's features to suit your users'
92         needs. See <A
93 HREF="c21473.html#HDRWQ390"
94 >Overview of Cache Manager Customization</A
95 >.</P
96 ></LI
97 ><LI
98 ><P
99 >The <SPAN
100 CLASS="bold"
101 ><B
102 CLASS="emphasis"
103 >/usr/vice/etc</B
104 ></SPAN
105 > directory on the local disk stores several configuration files. See
106         <A
107 HREF="c21473.html#HDRWQ392"
108 >Configuration Files in the /usr/vice/etc Directory</A
109 >.</P
110 ></LI
111 ><LI
112 ><P
113 >A cache stores temporary copies of data fetched from AFS file server machines, either in machine memory or on a
114         devoted local disk partition. See <A
115 HREF="c21473.html#HDRWQ394"
116 >Determining the Cache Type, Size, and Location</A
117 > and <A
118 HREF="c21473.html#HDRWQ402"
119 >Setting Other Cache Parameters with the afsd program</A
120 >.</P
121 ></LI
122 ></UL
123 ></P
124 ><P
125 >To learn how to install the client functionality on a machine, see the <SPAN
126 CLASS="emphasis"
127 ><I
128 CLASS="emphasis"
129 >IBM AFS Quick Beginnings</I
130 ></SPAN
131 >.</P
132 ><DIV
133 CLASS="sect1"
134 ><H1
135 CLASS="sect1"
136 ><A
137 NAME="HDRWQ388"
138 >Summary of Instructions</A
139 ></H1
140 ><P
141 >This chapter explains how to perform the following tasks by using the indicated commands:</P
142 ><DIV
143 CLASS="informaltable"
144 ><A
145 NAME="AEN21494"
146 ></A
147 ><TABLE
148 BORDER="0"
149 FRAME="void"
150 CLASS="CALSTABLE"
151 ><COL
152 WIDTH="67*"><COL
153 WIDTH="33*"><TBODY
154 ><TR
155 ><TD
156 >Display cache size set at reboot</TD
157 ><TD
158 ><SPAN
159 CLASS="bold"
160 ><B
161 CLASS="emphasis"
162 >cat /usr/vice/etc/cacheinfo</B
163 ></SPAN
164 ></TD
165 ></TR
166 ><TR
167 ><TD
168 >Display current cache size and usage</TD
169 ><TD
170 ><SPAN
171 CLASS="bold"
172 ><B
173 CLASS="emphasis"
174 >fs getcacheparms</B
175 ></SPAN
176 ></TD
177 ></TR
178 ><TR
179 ><TD
180 >Change disk cache size without rebooting</TD
181 ><TD
182 ><SPAN
183 CLASS="bold"
184 ><B
185 CLASS="emphasis"
186 >fs setcachesize</B
187 ></SPAN
188 ></TD
189 ></TR
190 ><TR
191 ><TD
192 >Initialize Cache Manager</TD
193 ><TD
194 ><SPAN
195 CLASS="bold"
196 ><B
197 CLASS="emphasis"
198 >afsd</B
199 ></SPAN
200 ></TD
201 ></TR
202 ><TR
203 ><TD
204 >Display contents of <SPAN
205 CLASS="bold"
206 ><B
207 CLASS="emphasis"
208 >CellServDB</B
209 ></SPAN
210 > file</TD
211 ><TD
212 ><SPAN
213 CLASS="bold"
214 ><B
215 CLASS="emphasis"
216 >cat /usr/vice/etc/CellServDB</B
217 ></SPAN
218 ></TD
219 ></TR
220 ><TR
221 ><TD
222 >Display list of database server machines from kernel memory</TD
223 ><TD
224 ><SPAN
225 CLASS="bold"
226 ><B
227 CLASS="emphasis"
228 >fs listcells</B
229 ></SPAN
230 ></TD
231 ></TR
232 ><TR
233 ><TD
234 >Change list of database server machines in kernel memory</TD
235 ><TD
236 ><SPAN
237 CLASS="bold"
238 ><B
239 CLASS="emphasis"
240 >fs newcell</B
241 ></SPAN
242 ></TD
243 ></TR
244 ><TR
245 ><TD
246 >Check cell's status regarding setuid</TD
247 ><TD
248 ><SPAN
249 CLASS="bold"
250 ><B
251 CLASS="emphasis"
252 >fs getcellstatus</B
253 ></SPAN
254 ></TD
255 ></TR
256 ><TR
257 ><TD
258 >Set cell's status regarding setuid</TD
259 ><TD
260 ><SPAN
261 CLASS="bold"
262 ><B
263 CLASS="emphasis"
264 >fs setcell</B
265 ></SPAN
266 ></TD
267 ></TR
268 ><TR
269 ><TD
270 >Set server probe interval</TD
271 ><TD
272 ><SPAN
273 CLASS="bold"
274 ><B
275 CLASS="emphasis"
276 >fs checkservers -interval</B
277 ></SPAN
278 ></TD
279 ></TR
280 ><TR
281 ><TD
282 >Display machine's cell membership</TD
283 ><TD
284 ><SPAN
285 CLASS="bold"
286 ><B
287 CLASS="emphasis"
288 >cat /usr/vice/etc/ThisCell</B
289 ></SPAN
290 ></TD
291 ></TR
292 ><TR
293 ><TD
294 >Change machine's cell membership</TD
295 ><TD
296 >Edit <SPAN
297 CLASS="bold"
298 ><B
299 CLASS="emphasis"
300 >/usr/vice/etc/ThisCell</B
301 ></SPAN
302 ></TD
303 ></TR
304 ><TR
305 ><TD
306 >Flush cached file/directory</TD
307 ><TD
308 ><SPAN
309 CLASS="bold"
310 ><B
311 CLASS="emphasis"
312 >fs flush</B
313 ></SPAN
314 ></TD
315 ></TR
316 ><TR
317 ><TD
318 >Flush everything cached from a volume</TD
319 ><TD
320 ><SPAN
321 CLASS="bold"
322 ><B
323 CLASS="emphasis"
324 >fs flushvolume</B
325 ></SPAN
326 ></TD
327 ></TR
328 ><TR
329 ><TD
330 >Update volume-to-mount-point mappings</TD
331 ><TD
332 ><SPAN
333 CLASS="bold"
334 ><B
335 CLASS="emphasis"
336 >fs checkvolumes</B
337 ></SPAN
338 ></TD
339 ></TR
340 ><TR
341 ><TD
342 >Display Cache Manager's server preference ranks</TD
343 ><TD
344 ><SPAN
345 CLASS="bold"
346 ><B
347 CLASS="emphasis"
348 >fs getserverprefs</B
349 ></SPAN
350 ></TD
351 ></TR
352 ><TR
353 ><TD
354 >Set Cache Manager's server preference ranks</TD
355 ><TD
356 ><SPAN
357 CLASS="bold"
358 ><B
359 CLASS="emphasis"
360 >fs setserverprefs</B
361 ></SPAN
362 ></TD
363 ></TR
364 ><TR
365 ><TD
366 >Display client machine addresses to register</TD
367 ><TD
368 ><SPAN
369 CLASS="bold"
370 ><B
371 CLASS="emphasis"
372 >fs getclientaddrs</B
373 ></SPAN
374 ></TD
375 ></TR
376 ><TR
377 ><TD
378 >Set client machine addresses to register</TD
379 ><TD
380 ><SPAN
381 CLASS="bold"
382 ><B
383 CLASS="emphasis"
384 >fs setclientaddrs</B
385 ></SPAN
386 ></TD
387 ></TR
388 ><TR
389 ><TD
390 >Control the display of warning and status messages</TD
391 ><TD
392 ><SPAN
393 CLASS="bold"
394 ><B
395 CLASS="emphasis"
396 >fs messages</B
397 ></SPAN
398 ></TD
399 ></TR
400 ><TR
401 ><TD
402 >Display and change machine's system type</TD
403 ><TD
404 ><SPAN
405 CLASS="bold"
406 ><B
407 CLASS="emphasis"
408 >fs sysname</B
409 ></SPAN
410 ></TD
411 ></TR
412 ><TR
413 ><TD
414 >Enable asynchronous writes</TD
415 ><TD
416 ><SPAN
417 CLASS="bold"
418 ><B
419 CLASS="emphasis"
420 >fs storebehind</B
421 ></SPAN
422 ></TD
423 ></TR
424 ></TBODY
425 ></TABLE
426 ></DIV
427 ></DIV
428 ><DIV
429 CLASS="sect1"
430 ><H1
431 CLASS="sect1"
432 ><A
433 NAME="HDRWQ390"
434 >Overview of Cache Manager Customization</A
435 ></H1
436 ><P
437 >An AFS client machine's kernel includes a set of modifications, commonly referred to as the <SPAN
438 CLASS="emphasis"
439 ><I
440 CLASS="emphasis"
441 >Cache
442     Manager</I
443 ></SPAN
444 >, that enable access to AFS files and directories and communications with AFS server processes. It is common
445     to speak of the Cache Manager as a process or program, and in regular usage it appears to function like one. When configuring
446     it, though, it is helpful to keep in mind that this usage is not strictly accurate.</P
447 ><P
448 >The Cache Manager mainly fetches files on behalf of application programs running on the machine. When an application
449     requests an AFS file, the Cache Manager contacts the Volume Location (VL) Server to obtain a list of the file server machines
450     that house the volume containing the file. The Cache Manager then translates the application program's system call requests into
451     remote procedure calls (RPCs) to the File Server running on the appropriate machine. When the File Server delivers the file, the
452     Cache Manager stores it in a local <SPAN
453 CLASS="emphasis"
454 ><I
455 CLASS="emphasis"
456 >cache</I
457 ></SPAN
458 > before delivering it to the application program.</P
459 ><P
460 >The File Server delivers a data structure called a <SPAN
461 CLASS="emphasis"
462 ><I
463 CLASS="emphasis"
464 >callback</I
465 ></SPAN
466 > along with the file. (To be precise, it
467     delivers a callback for each file fetched from a read/write volume, and a single callback for all data fetched from a read-only
468     volume.) A valid callback indicates that the Cache Manager's cached copy of a file matches the central copy maintained by the
469     File Server. If an application on another AFS client machine changes the central copy, the File Server breaks the callback, and
470     the Cache Manager must retrieve the new version when an application program on its machine next requests data from the file. As
471     long as the callback is unbroken, however, the Cache Manager can continue to provide the cached version of the file to
472     applications on its machine, which eliminates unnecessary network traffic.</P
473 ><P
474 >The indicated sections of this chapter explain how to configure and customize the following Cache Manager features. All
475     but the first (choosing disk or memory cache) are optional, because AFS sets suitable defaults for them. <UL
476 ><LI
477 ><P
478 ><SPAN
479 CLASS="emphasis"
480 ><I
481 CLASS="emphasis"
482 >disk or memory cache</I
483 ></SPAN
484 >. The AFS Cache Manager can use machine memory for caching instead of space
485           on the local disk. Deciding which to use is the most basic configuration decision you must make. See <A
486 HREF="c21473.html#HDRWQ394"
487 >Determining the Cache Type, Size, and Location</A
488 >.</P
489 ></LI
490 ><LI
491 ><P
492 ><SPAN
493 CLASS="emphasis"
494 ><I
495 CLASS="emphasis"
496 >cache size</I
497 ></SPAN
498 >. Cache size probably has the most direct influence on client machine performance. It
499           determines how often the Cache Manager must contact the File Server across the network or discard cached data to make room
500           for newly requested files, both of which affect how quickly the Cache Manager delivers files to users. See <A
501 HREF="c21473.html#HDRWQ394"
502 >Determining the Cache Type, Size, and Location</A
503 >.</P
504 ></LI
505 ><LI
506 ><P
507 ><SPAN
508 CLASS="emphasis"
509 ><I
510 CLASS="emphasis"
511 >cache location</I
512 ></SPAN
513 >. For a disk cache, you can alter the conventional cache directory location
514           (<SPAN
515 CLASS="bold"
516 ><B
517 CLASS="emphasis"
518 >/usr/vice/cache</B
519 ></SPAN
520 >) to take advantage of greater space availability on other disks on the
521           machine. A larger cache can result in faster file delivery. See <A
522 HREF="c21473.html#HDRWQ394"
523 >Determining the Cache Type, Size,
524           and Location</A
525 >.</P
526 ></LI
527 ><LI
528 ><P
529 ><SPAN
530 CLASS="emphasis"
531 ><I
532 CLASS="emphasis"
533 >chunk size and number</I
534 ></SPAN
535 >. The <SPAN
536 CLASS="bold"
537 ><B
538 CLASS="emphasis"
539 >afsd</B
540 ></SPAN
541 > program, which initializes the
542           Cache Manager, allows you to control the size and number of chunks into which a cache is divided, plus related parameters.
543           Setting these parameters is optional, because there are reasonable defaults, but it provides precise control. The AFS
544           distribution includes configuration scripts that set Cache Manager parameters to values that are reasonable for different
545           configurations and usage patterns. See <A
546 HREF="c21473.html#HDRWQ402"
547 >Setting Other Cache Parameters with the afsd
548           program</A
549 >.</P
550 ></LI
551 ><LI
552 ><P
553 ><SPAN
554 CLASS="emphasis"
555 ><I
556 CLASS="emphasis"
557 >knowledge of database server machines</I
558 ></SPAN
559 >. Enable access to a cell's AFS filespace and other
560           services by listing the cell's database server machines in the <SPAN
561 CLASS="bold"
562 ><B
563 CLASS="emphasis"
564 >/usr/vice/etc/CellServDB</B
565 ></SPAN
566 >
567           file on the local disk. See <A
568 HREF="c21473.html#HDRWQ406"
569 >Maintaining Knowledge of Database Server Machines</A
570 >.</P
571 ></LI
572 ><LI
573 ><P
574 ><SPAN
575 CLASS="emphasis"
576 ><I
577 CLASS="emphasis"
578 >setuid privilege</I
579 ></SPAN
580 >. You can control whether the Cache Manager allows programs from a cell to
581           execute with setuid permission. See <A
582 HREF="c21473.html#HDRWQ409"
583 >Determining if a Client Can Run Setuid
584           Programs</A
585 >.</P
586 ></LI
587 ><LI
588 ><P
589 ><SPAN
590 CLASS="emphasis"
591 ><I
592 CLASS="emphasis"
593 >cell membership</I
594 ></SPAN
595 >. Each client belongs to a one cell defined by the local <SPAN
596 CLASS="bold"
597 ><B
598 CLASS="emphasis"
599 >/usr/vice/etc/ThisCell</B
600 ></SPAN
601 > file. Cell membership determines the default cell in which the machine's
602           users are authenticated and in which AFS commands run. See <A
603 HREF="c21473.html#HDRWQ411"
604 >Setting a Client Machine's Cell
605           Membership</A
606 >.</P
607 ></LI
608 ><LI
609 ><P
610 ><SPAN
611 CLASS="emphasis"
612 ><I
613 CLASS="emphasis"
614 >cached file version</I
615 ></SPAN
616 >. AFS's system of callbacks normally guarantees that the Cache Manager has
617           the most current versions of files and directories possible. Nevertheless, you can force the Cache Manager to fetch the
618           most current version of a file from the File Server if you suspect that the cache contains an outdated version. See <A
619 HREF="c21473.html#HDRWQ412"
620 >Forcing the Update of Cached Data</A
621 >.</P
622 ></LI
623 ><LI
624 ><P
625 ><SPAN
626 CLASS="emphasis"
627 ><I
628 CLASS="emphasis"
629 >File Server and Volume Location Server preferences</I
630 ></SPAN
631 >. The Cache Manager sets numerical preference
632           ranks for the interfaces on file server machines and Volume Server (VL) machines. The ranks determine which interface the
633           Cache Manager first attempts to use when fetching data from a volume or from the Volume Location Database (VLDB). The
634           Cache Manager sets default ranks as it initializes, basing them on its network proximity to each interface, but you can
635           modify the preference ranks if you wish. See <A
636 HREF="c21473.html#HDRWQ414"
637 >Maintaining Server Preference Ranks</A
638 >.</P
639 ></LI
640 ><LI
641 ><P
642 ><SPAN
643 CLASS="emphasis"
644 ><I
645 CLASS="emphasis"
646 >interfaces registered with the File Server</I
647 ></SPAN
648 >. If the Cache Manager is multihomed (has multiple
649           interface addresses), you can control which of them it registers for File Servers to use when they initiate RPCs to the
650           client machine. See <A
651 HREF="c21473.html#HDRWQ415"
652 >Managing Multihomed Client Machines</A
653 >.</P
654 ></LI
655 ><LI
656 ><P
657 ><SPAN
658 CLASS="emphasis"
659 ><I
660 CLASS="emphasis"
661 >display of information messages</I
662 ></SPAN
663 >. By default, the Cache Manager sends basic error and
664           informational messages to the client machine's console and to command shells. You can disable the messaging. See <A
665 HREF="c21473.html#HDRWQ416"
666 >Controlling the Display of Warning and Informational Messages</A
667 >.</P
668 ></LI
669 ><LI
670 ><P
671 ><SPAN
672 CLASS="emphasis"
673 ><I
674 CLASS="emphasis"
675 >system type</I
676 ></SPAN
677 >. The Cache Manager records the local machine's AFS system type in kernel memory,
678           and substitutes the value for the @sys variable in pathnames. See <A
679 HREF="c21473.html#HDRWQ417"
680 >Displaying and Setting the
681           System Type Name</A
682 >.</P
683 ></LI
684 ><LI
685 ><P
686 ><SPAN
687 CLASS="emphasis"
688 ><I
689 CLASS="emphasis"
690 >delayed writes</I
691 ></SPAN
692 >. By default, the Cache Manager writes all data to the File Server immediately
693           and synchronously when an application program closes a file. You can enable asynchronous writes, either for an individual
694           file, or all files that the Cache Manager handles, and set how much data remains to be written when the Cache Manager
695           returns control to the closing application. See <A
696 HREF="c21473.html#HDRWQ418"
697 >Enabling Asynchronous Writes</A
698 >.</P
699 ></LI
700 ></UL
701 ></P
702 ><P
703 >You must make all configuration changes on the client machine itself (at the console or over a direct connection such as a
704     <SPAN
705 CLASS="bold"
706 ><B
707 CLASS="emphasis"
708 >telnet</B
709 ></SPAN
710 > connection). You cannot configure the Cache Manager remotely. You must be logged in as
711     the local superuser <SPAN
712 CLASS="bold"
713 ><B
714 CLASS="emphasis"
715 >root</B
716 ></SPAN
717 > to issue some commands, whereas others require no privilege. All files
718     mentioned in this chapter must actually reside on the local disk of each AFS client machine (they cannot, for example, be
719     symbolic links to files in AFS).</P
720 ><P
721 >AFS's <SPAN
722 CLASS="bold"
723 ><B
724 CLASS="emphasis"
725 >package</B
726 ></SPAN
727 > program can simplify other aspects of client machine configuration,
728     including those normally set in the machine's AFS initialization file. See <A
729 HREF="c23832.html"
730 >Configuring Client Machines
731     with the package Program</A
732 >.</P
733 ></DIV
734 ><DIV
735 CLASS="sect1"
736 ><H1
737 CLASS="sect1"
738 ><A
739 NAME="HDRWQ391"
740 >Configuration and Cache-Related Files on the Local Disk</A
741 ></H1
742 ><P
743 >This section briefly describes the client configuration files that must reside in the local <SPAN
744 CLASS="bold"
745 ><B
746 CLASS="emphasis"
747 >/usr/vice/etc</B
748 ></SPAN
749 > directory on every client machine. If the machine uses a disk cache, there must be a
750     partition devoted to cache files; by convention, it is mounted at the <SPAN
751 CLASS="bold"
752 ><B
753 CLASS="emphasis"
754 >/usr/vice/cache</B
755 ></SPAN
756 >
757     directory.</P
758 ><P
759 ><SPAN
760 CLASS="bold"
761 ><B
762 CLASS="emphasis"
763 >Note for Windows users:</B
764 ></SPAN
765 > Some files described in this document possibly do not exist on
766     machines that run a Windows operating system. Also, Windows uses a backslash (<SPAN
767 CLASS="bold"
768 ><B
769 CLASS="emphasis"
770 >\</B
771 ></SPAN
772 >) rather than a
773     forward slash (<SPAN
774 CLASS="bold"
775 ><B
776 CLASS="emphasis"
777 >/</B
778 ></SPAN
779 >) to separate the elements in a pathname.</P
780 ><DIV
781 CLASS="sect2"
782 ><H2
783 CLASS="sect2"
784 ><A
785 NAME="HDRWQ392"
786 >Configuration Files in the /usr/vice/etc Directory</A
787 ></H2
788 ><P
789 >The <SPAN
790 CLASS="bold"
791 ><B
792 CLASS="emphasis"
793 >/usr/vice/etc</B
794 ></SPAN
795 > directory on a client machine's local disk must contain certain
796       configuration files for the Cache Manager to function properly. They control the most basic aspects of Cache Manager
797       configuration.</P
798 ><P
799 >If it is important that the client machines in your cell perform uniformly, it is most efficient to update these files
800       from a central source. The following descriptions include pointers to sections that discuss how best to maintain the files.
801       <DIV
802 CLASS="variablelist"
803 ><DL
804 ><DT
805 ><SPAN
806 CLASS="bold"
807 ><B
808 CLASS="emphasis"
809 >afsd</B
810 ></SPAN
811 ></DT
812 ><DD
813 ><P
814 >The binary file for the program that initializes the Cache Manager. It must run each time the machine reboots in
815               order for the machine to remain an AFS client machine. The program also initializes several daemons that improve Cache
816               Manager functioning, such as the process that handles callbacks.  </P
817 ></DD
818 ><DT
819 ><SPAN
820 CLASS="bold"
821 ><B
822 CLASS="emphasis"
823 >cacheinfo</B
824 ></SPAN
825 ></DT
826 ><DD
827 ><P
828 >A one-line file that sets the cache's most basic configuration parameters: the local directory at which the
829               Cache Manager mounts the AFS filespace, the local disk directory to use as the cache, and how many kilobytes to
830               allocate to the cache.</P
831 ><P
832 >The <SPAN
833 CLASS="emphasis"
834 ><I
835 CLASS="emphasis"
836 >IBM AFS Quick Beginnings</I
837 ></SPAN
838 > explains how to create this file as you install a client
839               machine. To change the cache size on a machine that uses a memory cache, edit the file and reboot the machine. On a
840               machine that uses a disk cache, you can change the cache size without rebooting by issuing the <SPAN
841 CLASS="bold"
842 ><B
843 CLASS="emphasis"
844 >fs setcachesize</B
845 ></SPAN
846 > command. For instructions, see <A
847 HREF="c21473.html#HDRWQ394"
848 >Determining the Cache
849               Type, Size, and Location</A
850 >.  </P
851 ></DD
852 ><DT
853 ><SPAN
854 CLASS="bold"
855 ><B
856 CLASS="emphasis"
857 >CellServDB</B
858 ></SPAN
859 ></DT
860 ><DD
861 ><P
862 >This ASCII file names the database server machines in the local cell and in any foreign cell to which you want
863               to enable access from this machine. (Database server machines are the machines in a cell that run the Authentication,
864               Backup, Protection, and VL Server processes; see <A
865 HREF="c3025.html#HDRWQ92"
866 >Database Server Machines</A
867 >.)</P
868 ><P
869 >The Cache Manager must be able to reach a cell's database server machines to fetch files from its filespace.
870               Incorrect or missing information in the <SPAN
871 CLASS="bold"
872 ><B
873 CLASS="emphasis"
874 >CellServDB</B
875 ></SPAN
876 > file can slow or completely block
877               access. It is important to update the file whenever a cell's database server machines change.</P
878 ><P
879 >As the <SPAN
880 CLASS="bold"
881 ><B
882 CLASS="emphasis"
883 >afsd</B
884 ></SPAN
885 > program initializes the Cache Manager, it loads the contents of the
886               file into kernel memory. The Cache Manager does not read the file between reboots, so to incorporate changes to the
887               file into kernel memory, you must reboot the machine. Alternatively, you can issue the <SPAN
888 CLASS="bold"
889 ><B
890 CLASS="emphasis"
891 >fs
892               newcell</B
893 ></SPAN
894 > command to insert the changes directly into kernel memory without changing the file. It can also be
895               convenient to upgrade the file from a central source. For instructions, see <A
896 HREF="c21473.html#HDRWQ406"
897 >Maintaining
898               Knowledge of Database Server Machines</A
899 >.</P
900 ><P
901 >(The <SPAN
902 CLASS="bold"
903 ><B
904 CLASS="emphasis"
905 >CellServDB</B
906 ></SPAN
907 > file on client machines is not the same as the one kept in the
908               <SPAN
909 CLASS="bold"
910 ><B
911 CLASS="emphasis"
912 >/usr/afs/etc</B
913 ></SPAN
914 > directory on server machines, which lists only the local cell's database
915               server machines. For instructions on maintaining the server <SPAN
916 CLASS="bold"
917 ><B
918 CLASS="emphasis"
919 >CellServDB</B
920 ></SPAN
921 > file, see
922               <A
923 HREF="c3025.html#HDRWQ118"
924 >Maintaining the Server CellServDB File</A
925 >).  </P
926 ></DD
927 ><DT
928 ><SPAN
929 CLASS="bold"
930 ><B
931 CLASS="emphasis"
932 >NetInfo</B
933 ></SPAN
934 ></DT
935 ><DD
936 ><P
937 >This optional ASCII file lists one or more of the network interface addresses on the client machine. If it
938               exists when the Cache Manager initializes, the Cache Manager uses it as the basis for the list of interfaces that it
939               registers with File Servers. See <A
940 HREF="c21473.html#HDRWQ415"
941 >Managing Multihomed Client Machines</A
942 >.  </P
943 ></DD
944 ><DT
945 ><SPAN
946 CLASS="bold"
947 ><B
948 CLASS="emphasis"
949 >NetRestrict</B
950 ></SPAN
951 ></DT
952 ><DD
953 ><P
954 >This optional ASCII file lists one or more network interface addresses. If it exists when the Cache Manager
955               initializes, the Cache Manager removes the specified addresses from the list of interfaces that it registers with File
956               Servers. See <A
957 HREF="c21473.html#HDRWQ415"
958 >Managing Multihomed Client Machines</A
959 >.  </P
960 ></DD
961 ><DT
962 ><SPAN
963 CLASS="bold"
964 ><B
965 CLASS="emphasis"
966 >ThisCell</B
967 ></SPAN
968 ></DT
969 ><DD
970 ><P
971 >This ASCII file contains a single line that specifies the complete domain-style name of the cell to which the
972               machine belongs. Examples are <SAMP
973 CLASS="computeroutput"
974 >abc.com</SAMP
975 > and
976               <SAMP
977 CLASS="computeroutput"
978 >stateu.edu</SAMP
979 >. This value defines the default cell in which the machine's users become
980               authenticated, and in which the command interpreters (for example, the <SPAN
981 CLASS="bold"
982 ><B
983 CLASS="emphasis"
984 >bos</B
985 ></SPAN
986 > command)
987               contact server processes.</P
988 ><P
989 >The <SPAN
990 CLASS="emphasis"
991 ><I
992 CLASS="emphasis"
993 >IBM AFS Quick Beginnings</I
994 ></SPAN
995 > explains how to create this file as you install the AFS client
996               functionality. To learn about changing a client machine's cell membership, see <A
997 HREF="c21473.html#HDRWQ411"
998 >Setting a
999               Client Machine's Cell Membership</A
1000 >.</P
1001 ></DD
1002 ></DL
1003 ></DIV
1004 ></P
1005 ><P
1006 >In addition to these files, the <SPAN
1007 CLASS="bold"
1008 ><B
1009 CLASS="emphasis"
1010 >/usr/vice/etc</B
1011 ></SPAN
1012 > directory also sometimes contains the
1013       following types of files and subdirectories: <UL
1014 ><LI
1015 ><P
1016 >The AFS initialization script, called <SPAN
1017 CLASS="bold"
1018 ><B
1019 CLASS="emphasis"
1020 >afs.rc</B
1021 ></SPAN
1022 > on many system types. In the
1023             conventional configuration specified by the <SPAN
1024 CLASS="emphasis"
1025 ><I
1026 CLASS="emphasis"
1027 >IBM AFS Quick Beginnings</I
1028 ></SPAN
1029 >, it is a symbolic link to the
1030             actual script kept in the same directory as other initialization files used by the operating system.  </P
1031 ></LI
1032 ><LI
1033 ><P
1034 >A subdirectory that houses AFS kernel library files used by a dynamic kernel loading program.  </P
1035 ></LI
1036 ><LI
1037 ><P
1038 >A subdirectory called <SPAN
1039 CLASS="bold"
1040 ><B
1041 CLASS="emphasis"
1042 >C</B
1043 ></SPAN
1044 >, which houses the Cache Manager catalog file called
1045             <SPAN
1046 CLASS="bold"
1047 ><B
1048 CLASS="emphasis"
1049 >afszcm.cat</B
1050 ></SPAN
1051 >. The fstrace program uses the catalog file to translate operation codes into
1052             character strings, which makes the message in the trace log more readable. See <A
1053 HREF="c18360.html#HDRWQ342"
1054 >About the
1055             fstrace Command Suite</A
1056 >.</P
1057 ></LI
1058 ></UL
1059 ></P
1060 ></DIV
1061 ><DIV
1062 CLASS="sect2"
1063 ><H2
1064 CLASS="sect2"
1065 ><A
1066 NAME="HDRWQ393"
1067 >Cache-Related Files</A
1068 ></H2
1069 ><P
1070 >A client machine that uses a disk cache must have a local disk directory devoted to the cache. The conventional mount
1071       point is <SPAN
1072 CLASS="bold"
1073 ><B
1074 CLASS="emphasis"
1075 >/usr/vice/cache</B
1076 ></SPAN
1077 >, but you can use another partition that has more available
1078       space.</P
1079 ><P
1080 >Do not delete or directly modify any of the files in the cache directory. Doing so can cause a kernel panic, from which
1081       the only way to recover is to reboot the machine. By default, only the local superuser <SPAN
1082 CLASS="bold"
1083 ><B
1084 CLASS="emphasis"
1085 >root</B
1086 ></SPAN
1087 >
1088       can read the files directly, by virtue of owning them.</P
1089 ><P
1090 >A client machine that uses a memory cache keeps all of the information stored in these files in machine memory instead.
1091       <DIV
1092 CLASS="variablelist"
1093 ><DL
1094 ><DT
1095 ><SPAN
1096 CLASS="bold"
1097 ><B
1098 CLASS="emphasis"
1099 >CacheItems</B
1100 ></SPAN
1101 ></DT
1102 ><DD
1103 ><P
1104 >A binary-format file in which the Cache Manager tracks the contents of cache chunks (the <SPAN
1105 CLASS="bold"
1106 ><B
1107 CLASS="emphasis"
1108 >V</B
1109 ></SPAN
1110 > files in the directory, described just following), including the file ID number (fID) and the
1111               data version number.  </P
1112 ></DD
1113 ><DT
1114 ><SPAN
1115 CLASS="bold"
1116 ><B
1117 CLASS="emphasis"
1118 >VolumeItems</B
1119 ></SPAN
1120 ></DT
1121 ><DD
1122 ><P
1123 >A binary-format file in which the Cache Manager records the mapping between mount points and the volumes from
1124               which it has fetched data. The Cache Manager uses the information when responding to the <SPAN
1125 CLASS="bold"
1126 ><B
1127 CLASS="emphasis"
1128 >pwd</B
1129 ></SPAN
1130 > command, among others.   </P
1131 ></DD
1132 ><DT
1133 ><SPAN
1134 CLASS="bold"
1135 ><B
1136 CLASS="emphasis"
1137 >Vn</B
1138 ></SPAN
1139 ></DT
1140 ><DD
1141 ><P
1142 >A cache chunk file, which expands to a maximum size (by default, 64 KB) to house data fetched from AFS files.
1143               The number of <SPAN
1144 CLASS="bold"
1145 ><B
1146 CLASS="emphasis"
1147 >V</B
1148 ></SPAN
1149 >n files in the cache depends on the cache size among other factors.
1150               The n is the index assigned to each file; they are numbered sequentially, but the Cache Manager does not necessarily
1151               use them in order or contiguously. If an AFS file is larger than the maximum size for <SPAN
1152 CLASS="bold"
1153 ><B
1154 CLASS="emphasis"
1155 >V</B
1156 ></SPAN
1157 >n files, the Cache Manager divides it across multiple <SPAN
1158 CLASS="bold"
1159 ><B
1160 CLASS="emphasis"
1161 >V</B
1162 ></SPAN
1163 >n
1164               files.</P
1165 ></DD
1166 ></DL
1167 ></DIV
1168 ></P
1169 ></DIV
1170 ></DIV
1171 ><DIV
1172 CLASS="sect1"
1173 ><H1
1174 CLASS="sect1"
1175 ><A
1176 NAME="HDRWQ394"
1177 >Determining the Cache Type, Size, and Location</A
1178 ></H1
1179 ><P
1180 >This section explains how to configure a memory or disk cache, how to display and set the size of either type of cache,
1181     and how to set the location of the cache directory for a disk cache.  </P
1182 ><P
1183 >The Cache Manager uses a disk cache by default, and it is the preferred type of caching. To configure a memory cache,
1184     include the <SPAN
1185 CLASS="bold"
1186 ><B
1187 CLASS="emphasis"
1188 >-memcache</B
1189 ></SPAN
1190 > flag on the <SPAN
1191 CLASS="bold"
1192 ><B
1193 CLASS="emphasis"
1194 >afsd</B
1195 ></SPAN
1196 > command, which is
1197     normally invoked in the machine's AFS initialization file. If configured to use a memory cache, the Cache Manager does no disk
1198     caching, even if the machine has a disk.</P
1199 ><DIV
1200 CLASS="sect2"
1201 ><H2
1202 CLASS="sect2"
1203 ><A
1204 NAME="Header_438"
1205 >Choosing the Cache Size</A
1206 ></H2
1207 ><P
1208 >Cache size influences the performance of a client machine more directly than perhaps any other cache parameter. The
1209       larger the cache, the faster the Cache Manager is likely to deliver files to users. A small cache can impair performance
1210       because it increases the frequency at which the Cache Manager must discard cached data to make room for newly requested data.
1211       When an application asks for data that has been discarded, the Cache Manager must request it from the File Server, and
1212       fetching data across the network is almost always slower than fetching it from the local disk. The Cache Manager never
1213       discards data from a file that has been modified locally but not yet stored back to the File Server. If the cache is very
1214       small, the Cache Manager possible cannot find any data to discard. For more information about the algorithm it uses when
1215       discarding cached data, see <A
1216 HREF="c21473.html#HDRWQ401"
1217 >How the Cache Manager Chooses Data to Discard</A
1218 >).</P
1219 ><P
1220 >The amount of disk or memory you devote to caching depends on several factors. The amount of space available in memory
1221       or on the partition housing the disk cache directory imposes an absolute limit. In addition, you cannot allocate more than 95%
1222       of the space available on the cache directory's partition to a disk cache. The <SPAN
1223 CLASS="bold"
1224 ><B
1225 CLASS="emphasis"
1226 >afsd</B
1227 ></SPAN
1228 > program
1229       exits without starting the Cache Manager and prints an appropriate message to the standard output stream if you violate this
1230       restriction. For a memory cache, you must leave enough memory for other processes and applications to run. If you try to
1231       allocate more memory than is actually available, the <SPAN
1232 CLASS="bold"
1233 ><B
1234 CLASS="emphasis"
1235 >afsd</B
1236 ></SPAN
1237 > program exits without initializing
1238       the Cache Manager and produces the following message on the standard output stream:</P
1239 ><PRE
1240 CLASS="programlisting"
1241 >&#13;   afsd: memCache allocation failure at number KB
1242 </PRE
1243 ><P
1244 >where number is how many kilobytes were allocated just before the failure.</P
1245 ><P
1246 >Within these hard limits, the factors that determine appropriate cache size include the number of users working on the
1247       machine, the size of the files with which they usually work, and (for a memory cache) the number of processes that usually run
1248       on the machine. The higher the demand from these factors, the larger the cache needs to be to maintain good
1249       performance.</P
1250 ><P
1251 >Disk caches smaller than 10 MB do not generally perform well. Machines serving multiple users usually perform better
1252       with a cache of at least 60 to 70 MB. The point at which enlarging the cache further does not really improve performance
1253       depends on the factors mentioned previously, and is difficult to predict.</P
1254 ><P
1255 >Memory caches smaller than 1 MB are nonfunctional, and the performance of caches smaller than 5 MB is usually
1256       unsatisfactory. Suitable upper limits are similar to those for disk caches but are probably determined more by the demands on
1257       memory from other sources on the machine (number of users and processes). Machines running only a few processes possibly can
1258       use a smaller memory cache.</P
1259 ><P
1260 >AFS imposes an absolute limit on cache size in some versions. See the <SPAN
1261 CLASS="emphasis"
1262 ><I
1263 CLASS="emphasis"
1264 >IBM AFS Release Notes</I
1265 ></SPAN
1266 > for the
1267       version you are using.</P
1268 ></DIV
1269 ><DIV
1270 CLASS="sect2"
1271 ><H2
1272 CLASS="sect2"
1273 ><A
1274 NAME="HDRWQ395"
1275 >Displaying and Setting the Cache Size and Location</A
1276 ></H2
1277 ><P
1278 >The Cache Manager determines how big to make the cache by reading the <SPAN
1279 CLASS="bold"
1280 ><B
1281 CLASS="emphasis"
1282 >/usr/vice/etc/cacheinfo</B
1283 ></SPAN
1284 > file as it initializes. As directed in the <SPAN
1285 CLASS="emphasis"
1286 ><I
1287 CLASS="emphasis"
1288 >IBM AFS Quick
1289       Beginnings</I
1290 ></SPAN
1291 >, you must create the file before running the <SPAN
1292 CLASS="bold"
1293 ><B
1294 CLASS="emphasis"
1295 >afsd</B
1296 ></SPAN
1297 > program. The file
1298       also defines the directory on which to mount AFS (by convention, <SPAN
1299 CLASS="bold"
1300 ><B
1301 CLASS="emphasis"
1302 >/afs</B
1303 ></SPAN
1304 >), and the local disk
1305       directory to use for a cache directory.</P
1306 ><P
1307 >To change any of the values in the file, log in as the local superuser <SPAN
1308 CLASS="bold"
1309 ><B
1310 CLASS="emphasis"
1311 >root</B
1312 ></SPAN
1313 >. You must
1314       reboot the machine to have the new value take effect. For instructions, see <A
1315 HREF="c21473.html#HDRWQ398"
1316 >To edit the cacheinfo
1317       file</A
1318 >.</P
1319 ><P
1320 >To change the cache size at reboot without editing the <SPAN
1321 CLASS="bold"
1322 ><B
1323 CLASS="emphasis"
1324 >cacheinfo</B
1325 ></SPAN
1326 > file, include the
1327       <SPAN
1328 CLASS="bold"
1329 ><B
1330 CLASS="emphasis"
1331 >-blocks</B
1332 ></SPAN
1333 > argument to the <SPAN
1334 CLASS="bold"
1335 ><B
1336 CLASS="emphasis"
1337 >afsd</B
1338 ></SPAN
1339 > command; see the command's
1340       reference page in the IBM AFS Administration Reference.</P
1341 ><P
1342 >For a disk cache, you can also use the <SPAN
1343 CLASS="bold"
1344 ><B
1345 CLASS="emphasis"
1346 >fs setcachesize</B
1347 ></SPAN
1348 > command to reset the cache size
1349       without rebooting. The value you set persists until the next reboot, at which time the cache size returns to the value
1350       specified in the <SPAN
1351 CLASS="bold"
1352 ><B
1353 CLASS="emphasis"
1354 >cacheinfo</B
1355 ></SPAN
1356 > file or by the <SPAN
1357 CLASS="bold"
1358 ><B
1359 CLASS="emphasis"
1360 >-blocks</B
1361 ></SPAN
1362 > argument
1363       to the <SPAN
1364 CLASS="bold"
1365 ><B
1366 CLASS="emphasis"
1367 >afsd</B
1368 ></SPAN
1369 > command. For instructions, see <A
1370 HREF="c21473.html#HDRWQ399"
1371 >To change the disk cache
1372       size without rebooting</A
1373 >.</P
1374 ><P
1375 >To display the current cache size and the amount of space the Cache Manager is using at the moment, use the <SPAN
1376 CLASS="bold"
1377 ><B
1378 CLASS="emphasis"
1379 >fs getcacheparms</B
1380 ></SPAN
1381 > command as detailed in <A
1382 HREF="c21473.html#HDRWQ397"
1383 >To display the current cache
1384       size</A
1385 >.</P
1386 ></DIV
1387 ><DIV
1388 CLASS="sect2"
1389 ><H2
1390 CLASS="sect2"
1391 ><A
1392 NAME="HDRWQ396"
1393 >To display the cache size set at reboot</A
1394 ></H2
1395 ><OL
1396 TYPE="1"
1397 ><LI
1398 ><P
1399 >Use a text editor or the <SPAN
1400 CLASS="bold"
1401 ><B
1402 CLASS="emphasis"
1403 >cat</B
1404 ></SPAN
1405 > command to display the contents of the <SPAN
1406 CLASS="bold"
1407 ><B
1408 CLASS="emphasis"
1409 >/usr/vice/etc/cacheinfo</B
1410 ></SPAN
1411 > file. <PRE
1412 CLASS="programlisting"
1413 >&#13;   % <SPAN
1414 CLASS="bold"
1415 ><B
1416 CLASS="emphasis"
1417 >cat /usr/vice/etc/cacheinfo</B
1418 ></SPAN
1419 >
1420 </PRE
1421 ></P
1422 ></LI
1423 ></OL
1424 ></DIV
1425 ><DIV
1426 CLASS="sect2"
1427 ><H2
1428 CLASS="sect2"
1429 ><A
1430 NAME="HDRWQ397"
1431 >To display the current cache size</A
1432 ></H2
1433 ><OL
1434 TYPE="1"
1435 ><LI
1436 ><P
1437 >Issue the <SPAN
1438 CLASS="bold"
1439 ><B
1440 CLASS="emphasis"
1441 >fs getcacheparms</B
1442 ></SPAN
1443 > command on the client machine. <PRE
1444 CLASS="programlisting"
1445 >&#13;   % <SPAN
1446 CLASS="bold"
1447 ><B
1448 CLASS="emphasis"
1449 >fs getcacheparms</B
1450 ></SPAN
1451 >
1452 </PRE
1453 ></P
1454 ><P
1455 >where <SPAN
1456 CLASS="bold"
1457 ><B
1458 CLASS="emphasis"
1459 >getca</B
1460 ></SPAN
1461 > is the shortest acceptable abbreviation of <SPAN
1462 CLASS="bold"
1463 ><B
1464 CLASS="emphasis"
1465 >getcacheparms</B
1466 ></SPAN
1467 >.</P
1468 ><P
1469 >The output shows the number of kilobyte blocks the Cache Manager is using as a cache at the moment the command is
1470           issued, and the current size of the cache. For example:</P
1471 ><PRE
1472 CLASS="programlisting"
1473 >&#13;   AFS using 13709 of the cache's available 15000 1K byte blocks.
1474 </PRE
1475 ></LI
1476 ></OL
1477 ></DIV
1478 ><DIV
1479 CLASS="sect2"
1480 ><H2
1481 CLASS="sect2"
1482 ><A
1483 NAME="HDRWQ398"
1484 >To edit the cacheinfo file</A
1485 ></H2
1486 ><OL
1487 TYPE="1"
1488 ><LI
1489 ><P
1490 >Become the local superuser <SPAN
1491 CLASS="bold"
1492 ><B
1493 CLASS="emphasis"
1494 >root</B
1495 ></SPAN
1496 > on the machine, if you are not already, by issuing
1497           the <SPAN
1498 CLASS="bold"
1499 ><B
1500 CLASS="emphasis"
1501 >su</B
1502 ></SPAN
1503 > command. <PRE
1504 CLASS="programlisting"
1505 >&#13;   % <SPAN
1506 CLASS="bold"
1507 ><B
1508 CLASS="emphasis"
1509 >su root</B
1510 ></SPAN
1511 >
1512    Password: &#60;<VAR
1513 CLASS="replaceable"
1514 >root_password</VAR
1515 >&#62;
1516 </PRE
1517 ></P
1518 ></LI
1519 ><LI
1520 ><P
1521 >Use a text editor to edit the <SPAN
1522 CLASS="bold"
1523 ><B
1524 CLASS="emphasis"
1525 >/usr/vice/etc/cacheinfo</B
1526 ></SPAN
1527 > file, which has three fields,
1528           separated by colons: <UL
1529 ><LI
1530 ><P
1531 >The first field names the local directory on which to mount the AFS filespace. The conventional location is
1532                 <SPAN
1533 CLASS="bold"
1534 ><B
1535 CLASS="emphasis"
1536 >/afs</B
1537 ></SPAN
1538 >.</P
1539 ></LI
1540 ><LI
1541 ><P
1542 >The second field defines the local disk directory to use for the disk cache. The conventional location is the
1543                 <SPAN
1544 CLASS="bold"
1545 ><B
1546 CLASS="emphasis"
1547 >/usr/vice/cache</B
1548 ></SPAN
1549 > directory, but you can specify an alternate directory if another
1550                 partition has more space available. There must always be a value in this field, but the Cache Manager ignores it if
1551                 the machine uses a memory cache.</P
1552 ></LI
1553 ><LI
1554 ><P
1555 >The third field defines cache size as a number of kilobyte (1024-byte) blocks.</P
1556 ></LI
1557 ></UL
1558 ></P
1559 ><P
1560 >The following example mounts the AFS filespace at the <SPAN
1561 CLASS="bold"
1562 ><B
1563 CLASS="emphasis"
1564 >/afs</B
1565 ></SPAN
1566 > directory, names
1567           <SPAN
1568 CLASS="bold"
1569 ><B
1570 CLASS="emphasis"
1571 >/usr/vice/cache</B
1572 ></SPAN
1573 > as the cache directory, and sets cache size to 50,000 KB:</P
1574 ><PRE
1575 CLASS="programlisting"
1576 >&#13;            <SPAN
1577 CLASS="bold"
1578 ><B
1579 CLASS="emphasis"
1580 >/afs:/usr/vice/cache:50000</B
1581 ></SPAN
1582 >
1583           </PRE
1584 ></LI
1585 ></OL
1586 ></DIV
1587 ><DIV
1588 CLASS="sect2"
1589 ><H2
1590 CLASS="sect2"
1591 ><A
1592 NAME="HDRWQ399"
1593 >To change the disk cache size without rebooting</A
1594 ></H2
1595 ><OL
1596 TYPE="1"
1597 ><LI
1598 ><P
1599 >Become the local superuser <SPAN
1600 CLASS="bold"
1601 ><B
1602 CLASS="emphasis"
1603 >root</B
1604 ></SPAN
1605 > on the machine, if you are not already, by issuing
1606           the <SPAN
1607 CLASS="bold"
1608 ><B
1609 CLASS="emphasis"
1610 >su</B
1611 ></SPAN
1612 > command. <PRE
1613 CLASS="programlisting"
1614 >&#13;   % <SPAN
1615 CLASS="bold"
1616 ><B
1617 CLASS="emphasis"
1618 >su root</B
1619 ></SPAN
1620 >
1621    Password: &#60;<VAR
1622 CLASS="replaceable"
1623 >root_password</VAR
1624 >&#62;
1625 </PRE
1626 ></P
1627 ></LI
1628 ><LI
1629 ><P
1630 ><A
1631 NAME="LIWQ400"
1632 ></A
1633 >Issue the <SPAN
1634 CLASS="bold"
1635 ><B
1636 CLASS="emphasis"
1637 >fs setcachesize</B
1638 ></SPAN
1639 > command to set a new disk cache
1640           size.</P
1641 ><DIV
1642 CLASS="note"
1643 ><BLOCKQUOTE
1644 CLASS="note"
1645 ><P
1646 ><B
1647 >Note: </B
1648 >This command does not work for a memory cache.</P
1649 ></BLOCKQUOTE
1650 ></DIV
1651 ><PRE
1652 CLASS="programlisting"
1653 >&#13;   # <SPAN
1654 CLASS="bold"
1655 ><B
1656 CLASS="emphasis"
1657 >fs setcachesize</B
1658 ></SPAN
1659 > &#60;<VAR
1660 CLASS="replaceable"
1661 >size in 1K byte blocks (0 =</VAR
1662 >&#62; reset)&#62;
1663 </PRE
1664 ><P
1665 >where <DIV
1666 CLASS="variablelist"
1667 ><DL
1668 ><DT
1669 ><SPAN
1670 CLASS="bold"
1671 ><B
1672 CLASS="emphasis"
1673 >setca</B
1674 ></SPAN
1675 ></DT
1676 ><DD
1677 ><P
1678 >Is the shortest acceptable abbreviation of <SPAN
1679 CLASS="bold"
1680 ><B
1681 CLASS="emphasis"
1682 >setcachesize</B
1683 ></SPAN
1684 >.</P
1685 ></DD
1686 ><DT
1687 ><SPAN
1688 CLASS="bold"
1689 ><B
1690 CLASS="emphasis"
1691 >size in 1K byte blocks (0 =&#62; reset)</B
1692 ></SPAN
1693 ></DT
1694 ><DD
1695 ><P
1696 >Sets the number of kilobyte blocks to be used for the cache. Specify a positive integer (<SPAN
1697 CLASS="bold"
1698 ><B
1699 CLASS="emphasis"
1700 >1024</B
1701 ></SPAN
1702 > equals 1 MB), or <SPAN
1703 CLASS="bold"
1704 ><B
1705 CLASS="emphasis"
1706 >0</B
1707 ></SPAN
1708 > (zero) to reset the cache size to
1709                   the value specified in the <SPAN
1710 CLASS="bold"
1711 ><B
1712 CLASS="emphasis"
1713 >cacheinfo</B
1714 ></SPAN
1715 > file.</P
1716 ></DD
1717 ></DL
1718 ></DIV
1719 ></P
1720 ></LI
1721 ></OL
1722 ></DIV
1723 ><DIV
1724 CLASS="sect2"
1725 ><H2
1726 CLASS="sect2"
1727 ><A
1728 NAME="Header_444"
1729 >To reset the disk cache size to the default without rebooting</A
1730 ></H2
1731 ><OL
1732 TYPE="1"
1733 ><LI
1734 ><P
1735 >Become the local superuser <SPAN
1736 CLASS="bold"
1737 ><B
1738 CLASS="emphasis"
1739 >root</B
1740 ></SPAN
1741 > on the machine, if you are not already, by issuing
1742           the <SPAN
1743 CLASS="bold"
1744 ><B
1745 CLASS="emphasis"
1746 >su</B
1747 ></SPAN
1748 > command. <PRE
1749 CLASS="programlisting"
1750 >&#13;   % <SPAN
1751 CLASS="bold"
1752 ><B
1753 CLASS="emphasis"
1754 >su root</B
1755 ></SPAN
1756 >
1757    Password: &#60;<VAR
1758 CLASS="replaceable"
1759 >root_password</VAR
1760 >&#62;
1761 </PRE
1762 ></P
1763 ></LI
1764 ><LI
1765 ><P
1766 >Issue the <SPAN
1767 CLASS="bold"
1768 ><B
1769 CLASS="emphasis"
1770 >fs setcachesize</B
1771 ></SPAN
1772 > command to reset the size of the local disk cache (the
1773           command does not work for a memory cache). Choose one of the two following options: <UL
1774 ><LI
1775 ><P
1776 >To reset the cache size to the value specified in the local <SPAN
1777 CLASS="bold"
1778 ><B
1779 CLASS="emphasis"
1780 >cacheinfo</B
1781 ></SPAN
1782 > file,
1783                 specify the value <SPAN
1784 CLASS="bold"
1785 ><B
1786 CLASS="emphasis"
1787 >0</B
1788 ></SPAN
1789 > (zero) <PRE
1790 CLASS="programlisting"
1791 >&#13;   # <SPAN
1792 CLASS="bold"
1793 ><B
1794 CLASS="emphasis"
1795 >fs setcachesize 0</B
1796 ></SPAN
1797 >
1798 </PRE
1799 ></P
1800 ></LI
1801 ><LI
1802 ><P
1803 >To reset the cache size to the value set at the last reboot of the machine, include the <SPAN
1804 CLASS="bold"
1805 ><B
1806 CLASS="emphasis"
1807 >-reset</B
1808 ></SPAN
1809 > flag. Unless the <SPAN
1810 CLASS="bold"
1811 ><B
1812 CLASS="emphasis"
1813 >-blocks</B
1814 ></SPAN
1815 > argument was used on the
1816                 <SPAN
1817 CLASS="bold"
1818 ><B
1819 CLASS="emphasis"
1820 >afsd</B
1821 ></SPAN
1822 > command, this is also the value in the <SPAN
1823 CLASS="bold"
1824 ><B
1825 CLASS="emphasis"
1826 >cacheinfo</B
1827 ></SPAN
1828 > file. <PRE
1829 CLASS="programlisting"
1830 >&#13;   # <SPAN
1831 CLASS="bold"
1832 ><B
1833 CLASS="emphasis"
1834 >fs setcachesize -reset</B
1835 ></SPAN
1836 >
1837 </PRE
1838 ></P
1839 ></LI
1840 ></UL
1841 ></P
1842 ><P
1843 >where <DIV
1844 CLASS="variablelist"
1845 ><DL
1846 ><DT
1847 ><SPAN
1848 CLASS="bold"
1849 ><B
1850 CLASS="emphasis"
1851 >setca</B
1852 ></SPAN
1853 ></DT
1854 ><DD
1855 ><P
1856 >Is the shortest acceptable abbreviation of <SPAN
1857 CLASS="bold"
1858 ><B
1859 CLASS="emphasis"
1860 >setcachesize</B
1861 ></SPAN
1862 >.</P
1863 ></DD
1864 ><DT
1865 ><SPAN
1866 CLASS="bold"
1867 ><B
1868 CLASS="emphasis"
1869 >0</B
1870 ></SPAN
1871 ></DT
1872 ><DD
1873 ><P
1874 >Resets the disk cache size to the value in the third field of the <SPAN
1875 CLASS="bold"
1876 ><B
1877 CLASS="emphasis"
1878 >/usr/vice/etc/cacheinfo</B
1879 ></SPAN
1880 > file.</P
1881 ></DD
1882 ><DT
1883 ><SPAN
1884 CLASS="bold"
1885 ><B
1886 CLASS="emphasis"
1887 >-reset</B
1888 ></SPAN
1889 ></DT
1890 ><DD
1891 ><P
1892 >Resets the cache size to the value set at the last reboot.</P
1893 ></DD
1894 ></DL
1895 ></DIV
1896 ></P
1897 ></LI
1898 ></OL
1899 ></DIV
1900 ><DIV
1901 CLASS="sect2"
1902 ><H2
1903 CLASS="sect2"
1904 ><A
1905 NAME="HDRWQ401"
1906 >How the Cache Manager Chooses Data to Discard</A
1907 ></H2
1908 ><P
1909 >When the cache is full and application programs request more data from AFS, the Cache Manager must flush out cache
1910       chunks to make room for the data. The Cache Manager considers two factors: <OL
1911 TYPE="1"
1912 ><LI
1913 ><P
1914 >How recently an application last accessed the data.</P
1915 ></LI
1916 ><LI
1917 ><P
1918 >Whether the chunk is <SPAN
1919 CLASS="emphasis"
1920 ><I
1921 CLASS="emphasis"
1922 >dirty</I
1923 ></SPAN
1924 >. A dirty chunk contains changes to a file that have not yet been
1925             saved back to the permanent copy stored on a file server machine.</P
1926 ></LI
1927 ></OL
1928 ></P
1929 ><P
1930 >The Cache Manager first checks the least-recently used chunk. If it is not dirty, the Cache Manager discards the data in
1931       that chunk. If the chunk is dirty, the Cache Manager moves on to check the next least recently used chunk. It continues in
1932       this manner until it has created a sufficient number of empty chunks.</P
1933 ><P
1934 >Chunks that contain data fetched from a read-only volume are by definition never dirty, so the Cache Manager can always
1935       discard them. Normally, the Cache Manager can also find chunks of data fetched from read/write volumes that are not dirty, but
1936       a small cache makes it difficult to find enough eligible data. If the Cache Manager cannot find any data to discard, it must
1937       return I/O errors to application programs that request more data from AFS. Application programs usually have a means for
1938       notifying the user of such errors, but not for revealing their cause.</P
1939 ></DIV
1940 ></DIV
1941 ><DIV
1942 CLASS="sect1"
1943 ><H1
1944 CLASS="sect1"
1945 ><A
1946 NAME="HDRWQ402"
1947 >Setting Other Cache Parameters with the afsd program</A
1948 ></H1
1949 ><P
1950 >There are only three cache configuration parameters you must set: the mount directory for AFS, the location of the disk
1951     cache directory, and the cache size. They correspond to the three fields in the <SPAN
1952 CLASS="bold"
1953 ><B
1954 CLASS="emphasis"
1955 >/usr/vice/etc/cacheinfo</B
1956 ></SPAN
1957 > file, as discussed in <A
1958 HREF="c21473.html#HDRWQ394"
1959 >Determining the Cache Type, Size,
1960     and Location</A
1961 >. However, if you want to experiment with fine-tuning cache performance, you can use the arguments on the
1962     <SPAN
1963 CLASS="bold"
1964 ><B
1965 CLASS="emphasis"
1966 >afsd</B
1967 ></SPAN
1968 > command to control several other parameters. This section discusses a few of these
1969     parameters that have the most direct effect on cache performance. To learn more about the <SPAN
1970 CLASS="bold"
1971 ><B
1972 CLASS="emphasis"
1973 >afsd</B
1974 ></SPAN
1975 >
1976     command's arguments, see its reference page in the <SPAN
1977 CLASS="emphasis"
1978 ><I
1979 CLASS="emphasis"
1980 >IBM AFS Administration Reference</I
1981 ></SPAN
1982 >.</P
1983 ><P
1984 >In addition, the AFS initialization script included in the AFS distribution for each system type includes several
1985     variables that set several <SPAN
1986 CLASS="bold"
1987 ><B
1988 CLASS="emphasis"
1989 >afsd</B
1990 ></SPAN
1991 > arguments in a way that is suitable for client machines of
1992     different sizes and usage patterns. For instructions on using the script most effectively, see the section on configuring the
1993     Cache Manager in the <SPAN
1994 CLASS="emphasis"
1995 ><I
1996 CLASS="emphasis"
1997 >IBM AFS Quick Beginnings</I
1998 ></SPAN
1999 >.</P
2000 ><DIV
2001 CLASS="sect2"
2002 ><H2
2003 CLASS="sect2"
2004 ><A
2005 NAME="HDRWQ403"
2006 >Setting Cache Configuration Parameters</A
2007 ></H2
2008 ><P
2009 >The cache configuration parameters with the most direct effect on cache performance include the following: <UL
2010 ><LI
2011 ><P
2012 ><SPAN
2013 CLASS="emphasis"
2014 ><I
2015 CLASS="emphasis"
2016 >total cache size</I
2017 ></SPAN
2018 >. This is the amount of disk space or machine memory available for caching,
2019             as discussed in detail in <A
2020 HREF="c21473.html#HDRWQ394"
2021 >Determining the Cache Type, Size, and Location</A
2022 >.</P
2023 ></LI
2024 ><LI
2025 ><P
2026 ><SPAN
2027 CLASS="emphasis"
2028 ><I
2029 CLASS="emphasis"
2030 >number of cache chunks</I
2031 ></SPAN
2032 >. For a disk cache, each chunk is a <SPAN
2033 CLASS="bold"
2034 ><B
2035 CLASS="emphasis"
2036 >V</B
2037 ></SPAN
2038 >n
2039             file in the local cache directory (see <A
2040 HREF="c21473.html#HDRWQ393"
2041 >Cache-Related Files</A
2042 >). For a memory cache, each
2043             chunk is a set of contiguous blocks allocated in machine memory.</P
2044 ><P
2045 >This parameter does not have as much of an effect on cache performance as total size. However, adjusting it can
2046             influence how often the Cache Manager must discard cached data to make room for new data. Suppose, for example, that you
2047             set the disk cache size to 50 MB and the number of chunks (<SPAN
2048 CLASS="bold"
2049 ><B
2050 CLASS="emphasis"
2051 >V</B
2052 ></SPAN
2053 >n files) to 1,000. If each
2054             of the ten users on the machine caches 100 AFS files that average 20 KB in size, then all 1,000 chunks are full (a chunk
2055             can contain data from only one AFS file) but the cache holds only about 20 MB of data. When a user requests more data
2056             from the File Server, the Cache Manager must discard cached data to reclaim some chunks, even though the cache is filled
2057             to less than 50% of its capacity. In such a situation, increasing the number of chunks enables the Cache Manager to
2058             discard data less often.</P
2059 ></LI
2060 ><LI
2061 ><P
2062 ><SPAN
2063 CLASS="emphasis"
2064 ><I
2065 CLASS="emphasis"
2066 >chunk size</I
2067 ></SPAN
2068 >. This parameter determines the maximum amount of data that can fit in a chunk. If
2069             a cached element is smaller than the chunk size, the remaining space in the chunk is not used (a chunk can hold no more
2070             than one element). If an element cannot fit in a single chunk, it is split across as many chunks as needed. This
2071             parameter also determines how much data the Cache Manager requests at a time from the File Server (how much data per
2072             <SPAN
2073 CLASS="emphasis"
2074 ><I
2075 CLASS="emphasis"
2076 >fetch RPC</I
2077 ></SPAN
2078 >, because AFS uses partial file transfer).</P
2079 ><P
2080 >The main reason to change chunk size is because of its relation to the amount of data fetched per RPC. If your
2081             network links are very fast, it can improve performance to increase chunk size; if the network is especially slow, it
2082             can make sense to decrease chunk size.</P
2083 ></LI
2084 ><LI
2085 ><P
2086 ><SPAN
2087 CLASS="emphasis"
2088 ><I
2089 CLASS="emphasis"
2090 >number of dcache entries in memory</I
2091 ></SPAN
2092 >. The Cache Manager maintains one dcache entry for each
2093             cache chunk, recording a small amount of information, such as the file ID (fID) and version number of the AFS file
2094             corresponding to the chunk.</P
2095 ><P
2096 >For a disk cache, dcache entries reside in the <SPAN
2097 CLASS="bold"
2098 ><B
2099 CLASS="emphasis"
2100 >/usr/vice/cache/CacheItems</B
2101 ></SPAN
2102 > file; a
2103             small number are duplicated in machine memory to speed access.</P
2104 ><P
2105 >For a memory cache, the number of dcache entries equals the number of cache chunks. For a discussion of the
2106             implications of this correspondence, see <A
2107 HREF="c21473.html#HDRWQ405"
2108 >Controlling Memory Cache Configuration</A
2109 >.</P
2110 ></LI
2111 ></UL
2112 ></P
2113 ><P
2114 >For a description of how the Cache Manager determines defaults for number of chunks, chunk size, and number of dcache
2115       entries in a disk cache, see <A
2116 HREF="c21473.html#HDRWQ404"
2117 >Configuring a Disk Cache</A
2118 >; for a memory cache, see <A
2119 HREF="c21473.html#HDRWQ405"
2120 >Controlling Memory Cache Configuration</A
2121 >. The instructions also explain how to use the <SPAN
2122 CLASS="bold"
2123 ><B
2124 CLASS="emphasis"
2125 >afsd</B
2126 ></SPAN
2127 > command's arguments to override the defaults.</P
2128 ></DIV
2129 ><DIV
2130 CLASS="sect2"
2131 ><H2
2132 CLASS="sect2"
2133 ><A
2134 NAME="HDRWQ404"
2135 >Configuring a Disk Cache</A
2136 ></H2
2137 ><P
2138 >The default number of cache chunks (<SPAN
2139 CLASS="bold"
2140 ><B
2141 CLASS="emphasis"
2142 >V</B
2143 ></SPAN
2144 >n files) in a disk cache is calculated by the
2145       <SPAN
2146 CLASS="bold"
2147 ><B
2148 CLASS="emphasis"
2149 >afsd</B
2150 ></SPAN
2151 > command to be the greatest of the following: <UL
2152 ><LI
2153 ><P
2154 >100</P
2155 ></LI
2156 ><LI
2157 ><P
2158 >1.5 times the result of dividing cache size by chunk size (cachesize/chunksize * 1.5)</P
2159 ></LI
2160 ><LI
2161 ><P
2162 >The result of dividing cachesize by 10 MB (cachesize/10240)</P
2163 ></LI
2164 ></UL
2165 ></P
2166 ><P
2167 >You can override this value by specifying a positive integer with the <SPAN
2168 CLASS="bold"
2169 ><B
2170 CLASS="emphasis"
2171 >-files</B
2172 ></SPAN
2173 > argument.
2174       Consider increasing this value if more than 75% of the <SPAN
2175 CLASS="bold"
2176 ><B
2177 CLASS="emphasis"
2178 >V</B
2179 ></SPAN
2180 >n files are already used soon after
2181       the Cache Manager finishes initializing. Consider decreasing it if only a small percentage of the chunks are used at that
2182       point. In any case, never specify a value less than 100, because a smaller value can cause performance problems.</P
2183 ><P
2184 >The following example sets the number of <SPAN
2185 CLASS="bold"
2186 ><B
2187 CLASS="emphasis"
2188 >V</B
2189 ></SPAN
2190 >n files to 2,000:</P
2191 ><PRE
2192 CLASS="programlisting"
2193 >&#13;        <SPAN
2194 CLASS="bold"
2195 ><B
2196 CLASS="emphasis"
2197 >/usr/vice/etc/afsd -files 2000</B
2198 ></SPAN
2199 >
2200       </PRE
2201 ><DIV
2202 CLASS="note"
2203 ><BLOCKQUOTE
2204 CLASS="note"
2205 ><P
2206 ><B
2207 >Note: </B
2208 >It is conventional to place the <SPAN
2209 CLASS="bold"
2210 ><B
2211 CLASS="emphasis"
2212 >afsd</B
2213 ></SPAN
2214 > command in a machine's AFS initialization file,
2215         rather than entering it in a command shell. Furthermore, the values specified in this section are examples only, and are not
2216         necessarily suitable for a specific machine.</P
2217 ></BLOCKQUOTE
2218 ></DIV
2219 ><P
2220 >The default chunk size for a disk cache is 64 KB. In general, the only reason to change it is to adjust to exceptionally
2221       slow or fast networks; see <A
2222 HREF="c21473.html#HDRWQ403"
2223 >Setting Cache Configuration Parameters</A
2224 >. You can use the <SPAN
2225 CLASS="bold"
2226 ><B
2227 CLASS="emphasis"
2228 >-chunksize</B
2229 ></SPAN
2230 > argument to override the default. Chunk size must be a power of 2, so provide an integer
2231       between 0 (zero) and 30 to be used as an exponent of 2. For example, a value of 10 sets chunk size to 1 KB (210 = 1024); a
2232       value of 16 equals the default for disk caches (216 = 64 KB). Specifying a value of 0 (zero) or greater than 30 returns chunk
2233       size to the default. Values less than 10 (1 KB) are not recommended. The following example sets chunk size to 16 KB
2234       (214):</P
2235 ><PRE
2236 CLASS="programlisting"
2237 >&#13;        <SPAN
2238 CLASS="bold"
2239 ><B
2240 CLASS="emphasis"
2241 >/usr/vice/etc/afsd -chunksize 14</B
2242 ></SPAN
2243 >
2244       </PRE
2245 ><P
2246 >For a disk cache, the default number of dcache entries duplicated in memory is one-half the number of chunks specified
2247       with the <SPAN
2248 CLASS="bold"
2249 ><B
2250 CLASS="emphasis"
2251 >-files</B
2252 ></SPAN
2253 > argument, to a maximum of 2,000 entries. You can use the <SPAN
2254 CLASS="bold"
2255 ><B
2256 CLASS="emphasis"
2257 >-dcache</B
2258 ></SPAN
2259 > argument to change the default, even exceeding 2,000 if you wish. Duplicating more than half
2260       the dcache entries in memory is not usually necessary, but sometimes improves performance slightly, because access to memory
2261       is faster than access to disk. The following example sets the number to 750:</P
2262 ><PRE
2263 CLASS="programlisting"
2264 >&#13;        <SPAN
2265 CLASS="bold"
2266 ><B
2267 CLASS="emphasis"
2268 >/usr/vice/etc/afsd -dcache 750</B
2269 ></SPAN
2270 >
2271       </PRE
2272 ><P
2273 >When configuring a disk cache, you can combine the <SPAN
2274 CLASS="bold"
2275 ><B
2276 CLASS="emphasis"
2277 >afsd</B
2278 ></SPAN
2279 > command's arguments in any way.
2280       The main reason for this flexibility is that the setting you specify for disk cache size (in the <SPAN
2281 CLASS="bold"
2282 ><B
2283 CLASS="emphasis"
2284 >cacheinfo</B
2285 ></SPAN
2286 > file or with the <SPAN
2287 CLASS="bold"
2288 ><B
2289 CLASS="emphasis"
2290 >-blocks</B
2291 ></SPAN
2292 > argument) is an absolute maximum
2293       limit. You cannot override it by specifying higher values for the <SPAN
2294 CLASS="bold"
2295 ><B
2296 CLASS="emphasis"
2297 >-files</B
2298 ></SPAN
2299 > or <SPAN
2300 CLASS="bold"
2301 ><B
2302 CLASS="emphasis"
2303 >-chunksize</B
2304 ></SPAN
2305 > arguments, alone or in combination. A related reason is that the Cache Manager does not have
2306       to reserve a set amount of memory on disk. <SPAN
2307 CLASS="bold"
2308 ><B
2309 CLASS="emphasis"
2310 >V</B
2311 ></SPAN
2312 >n files (the chunks in a disk cache) are
2313       initially zero-length, but can expand up to the specified chunk size and shrink again, as needed. If you set the number of
2314       <SPAN
2315 CLASS="bold"
2316 ><B
2317 CLASS="emphasis"
2318 >V</B
2319 ></SPAN
2320 >n files to such a large value that expanding all of them to the full allowable size exceeds
2321       the total cache size, they simply never grow to full size.</P
2322 ></DIV
2323 ><DIV
2324 CLASS="sect2"
2325 ><H2
2326 CLASS="sect2"
2327 ><A
2328 NAME="HDRWQ405"
2329 >Controlling Memory Cache Configuration</A
2330 ></H2
2331 ><P
2332 >Configuring a memory cache differs from configuring a disk cache in that not all combinations of the <SPAN
2333 CLASS="bold"
2334 ><B
2335 CLASS="emphasis"
2336 >afsd</B
2337 ></SPAN
2338 > command's arguments are allowed. This limitation results from the greater interaction between the
2339       configuration parameters in a memory cache than a disk cache. If all combinations are allowed, it is possible to set the
2340       parameters in an inconsistent way. A list of the acceptable and unacceptable combinations follows a discussion of default
2341       values.</P
2342 ><P
2343 >The default chunk size for a memory cache is 8 KB. In general, the only reason to change it is to adjust to
2344       exceptionally slow or fast networks; see <A
2345 HREF="c21473.html#HDRWQ403"
2346 >Setting Cache Configuration Parameters</A
2347 >.</P
2348 ><P
2349 >There is no predefined default for number of chunks in a memory cache. The Cache Manager instead calculates the correct
2350       number by dividing the total cache size by the chunk size. Recall that for a memory cache, all dcache entries must be in
2351       memory. This implies that the number of chunks equals the number of dcache entries in memory, and that there is no default for
2352       number of dcache entries (like the number of chunks, it is calculated by dividing the total size by the chunk size).</P
2353 ><P
2354 >The following are acceptable combinations of the <SPAN
2355 CLASS="bold"
2356 ><B
2357 CLASS="emphasis"
2358 >afsd</B
2359 ></SPAN
2360 > command's arguments when
2361       configuring a memory cache: <UL
2362 ><LI
2363 ><P
2364 ><SPAN
2365 CLASS="bold"
2366 ><B
2367 CLASS="emphasis"
2368 >-blocks</B
2369 ></SPAN
2370 > alone, which overrides the cache size specified in the <SPAN
2371 CLASS="bold"
2372 ><B
2373 CLASS="emphasis"
2374 >/usr/vice/etc/cacheinfo</B
2375 ></SPAN
2376 > file. The Cache Manager divides the value of this argument by the default
2377             chunk size of eight KB to calculate the number of chunks and dcache entries. The following example sets cache size to
2378             five MB (5,120 KB) and the number of chunks to 640 (5,120 divided by 8): <PRE
2379 CLASS="programlisting"
2380 ><SPAN
2381 CLASS="bold"
2382 ><B
2383 CLASS="emphasis"
2384 >/usr/vice/etc/afsd -memcache -blocks 5120</B
2385 ></SPAN
2386 ></PRE
2387 ></P
2388 ></LI
2389 ><LI
2390 ><P
2391 ><SPAN
2392 CLASS="bold"
2393 ><B
2394 CLASS="emphasis"
2395 >-chunksize</B
2396 ></SPAN
2397 > alone, to override the default of eight KB. The chunk size must be a
2398             power of two, so provide an integer between 0 (zero) and 30 to be used as an exponent of two. For example, a value of
2399             ten sets chunk size to 1 KB (210 = 1024); a value of 13 equals the default for memory caches (213 = 8 KB). Specifying a
2400             value of 0 (zero) or greater than 30 returns the chunk size to the default. Values less than ten (equivalent to 1 KB)
2401             are not recommended. The following example sets the chunk size to four KB (212). Assuming a total cache size of four MB
2402             (4,096 KB), the resulting number of chunks is 1024. <PRE
2403 CLASS="programlisting"
2404 ><SPAN
2405 CLASS="bold"
2406 ><B
2407 CLASS="emphasis"
2408 >/usr/vice/etc/afsd -memcache -chunksize 12</B
2409 ></SPAN
2410 ></PRE
2411 ></P
2412 ></LI
2413 ><LI
2414 ><P
2415 ><SPAN
2416 CLASS="bold"
2417 ><B
2418 CLASS="emphasis"
2419 >-blocks</B
2420 ></SPAN
2421 > and <SPAN
2422 CLASS="bold"
2423 ><B
2424 CLASS="emphasis"
2425 >-chunksize</B
2426 ></SPAN
2427 > together override the
2428             defaults for cache size and chunk size. The Cache Manager divides the first by the second to calculate the number of
2429             chunks and dcache entries. For example, the following example sets the cache size to six MB (6,144 KB) and chunksize to
2430             four KB (212), resulting in 1,536 chunks: <PRE
2431 CLASS="programlisting"
2432 ><SPAN
2433 CLASS="bold"
2434 ><B
2435 CLASS="emphasis"
2436 >/usr/vice/etc/afsd -memcache -blocks 6144 -chunksize 12</B
2437 ></SPAN
2438 ></PRE
2439 ></P
2440 ></LI
2441 ></UL
2442 ></P
2443 ><P
2444 >The following arguments or combinations explicitly set the number of chunks and dcache entries. It is best not to use
2445       them, because they set the cache size indirectly, forcing you to perform a hand calculation to determine the size of the
2446       cache. Instead, set the <SPAN
2447 CLASS="bold"
2448 ><B
2449 CLASS="emphasis"
2450 >-blocks</B
2451 ></SPAN
2452 > and <SPAN
2453 CLASS="bold"
2454 ><B
2455 CLASS="emphasis"
2456 >-chunksize</B
2457 ></SPAN
2458 > arguments
2459       alone or in combination; in those cases, the Cache Manager determines the number of chunks and dcache entries itself. Because
2460       the following combinations are not recommended, no examples are included. <UL
2461 ><LI
2462 ><P
2463 >The <SPAN
2464 CLASS="bold"
2465 ><B
2466 CLASS="emphasis"
2467 >-dcache</B
2468 ></SPAN
2469 > argument alone explicitly sets the number of chunks and dcache
2470             entries. The Cache Manager multiples this value times the default chunk size of 8 KB to derive the total cache size
2471             (overriding the value in the <SPAN
2472 CLASS="bold"
2473 ><B
2474 CLASS="emphasis"
2475 >cacheinfo</B
2476 ></SPAN
2477 > file).</P
2478 ></LI
2479 ><LI
2480 ><P
2481 >The combination of <SPAN
2482 CLASS="bold"
2483 ><B
2484 CLASS="emphasis"
2485 >-dcache</B
2486 ></SPAN
2487 > and <SPAN
2488 CLASS="bold"
2489 ><B
2490 CLASS="emphasis"
2491 >-chunksize</B
2492 ></SPAN
2493 > sets
2494             the chunk number and size. The Cache Manager sets the specified values and multiplies them together to obtain total
2495             cache size (overriding the value in the <SPAN
2496 CLASS="bold"
2497 ><B
2498 CLASS="emphasis"
2499 >cacheinfo</B
2500 ></SPAN
2501 > file).</P
2502 ></LI
2503 ></UL
2504 ></P
2505 ><P
2506 >Do not use the following arguments for a memory cache: <UL
2507 ><LI
2508 ><P
2509 ><SPAN
2510 CLASS="bold"
2511 ><B
2512 CLASS="emphasis"
2513 >-files</B
2514 ></SPAN
2515 > alone. This argument controls the number of <SPAN
2516 CLASS="bold"
2517 ><B
2518 CLASS="emphasis"
2519 >V</B
2520 ></SPAN
2521 >n files for a disk cache, but is ignored for a memory cache.</P
2522 ></LI
2523 ><LI
2524 ><P
2525 ><SPAN
2526 CLASS="bold"
2527 ><B
2528 CLASS="emphasis"
2529 >-blocks</B
2530 ></SPAN
2531 > and <SPAN
2532 CLASS="bold"
2533 ><B
2534 CLASS="emphasis"
2535 >-dcache</B
2536 ></SPAN
2537 >. An error message results,
2538             because it is possible to provide values such that dividing the first (total size) by the second (number of chunks)
2539             results in a chunk size that is not a power of two.</P
2540 ></LI
2541 ></UL
2542 ></P
2543 ></DIV
2544 ></DIV
2545 ><DIV
2546 CLASS="sect1"
2547 ><H1
2548 CLASS="sect1"
2549 ><A
2550 NAME="HDRWQ406"
2551 >Maintaining Knowledge of Database Server Machines</A
2552 ></H1
2553 ><P
2554 >For the users of an AFS client machine to access a cell's AFS filespace and other services, the Cache Manager and other
2555     client-side agents must have an accurate list of the cell's database server machines. The affected functions include the
2556     following: <UL
2557 ><LI
2558 ><P
2559 >Accessing files. The Cache Manager contacts the Volume Location (VL) Server to learn which file server machine
2560           houses the volume containing a requested file or directory. If the Cache Manager cannot contact a cell's VL Servers, it
2561           cannot fetch files.</P
2562 ></LI
2563 ><LI
2564 ><P
2565 >Authenticating. The <SPAN
2566 CLASS="bold"
2567 ><B
2568 CLASS="emphasis"
2569 >klog</B
2570 ></SPAN
2571 > program and AFS-modified login utilities contact the
2572           Authentication Server to obtain tokens, which the AFS server processes accept as proof that the user is
2573           authenticated.</P
2574 ></LI
2575 ><LI
2576 ><P
2577 >Creating protection groups. The <SPAN
2578 CLASS="bold"
2579 ><B
2580 CLASS="emphasis"
2581 >pts</B
2582 ></SPAN
2583 > command interpreter contacts the Protection
2584           Server when users create protection groups or request information from the Protection Database.</P
2585 ></LI
2586 ><LI
2587 ><P
2588 >Editing access control lists (ACLs). The <SPAN
2589 CLASS="bold"
2590 ><B
2591 CLASS="emphasis"
2592 >fs</B
2593 ></SPAN
2594 > command interpreter contacts the File
2595           Server that maintains the read/write volume containing a file or directory; the location information comes from the VL
2596           Server.</P
2597 ></LI
2598 ></UL
2599 ></P
2600 ><P
2601 >To enable a machine's users to access a cell, you must list the names and IP addresses of its database server machines in
2602     the <SPAN
2603 CLASS="bold"
2604 ><B
2605 CLASS="emphasis"
2606 >/usr/vice/etc/CellServDB</B
2607 ></SPAN
2608 > file on the machine's local disk. In addition to the machine's
2609     home cell, you can list any foreign cells that you want to enable users to access. (To enable access to a cell's filespace, you
2610     must also mount its <SPAN
2611 CLASS="bold"
2612 ><B
2613 CLASS="emphasis"
2614 >root.cell</B
2615 ></SPAN
2616 > volume in the local AFS filespace; the conventional location is
2617     just under the AFS root directory, <SPAN
2618 CLASS="bold"
2619 ><B
2620 CLASS="emphasis"
2621 >/afs</B
2622 ></SPAN
2623 >. For instructions, see the <SPAN
2624 CLASS="emphasis"
2625 ><I
2626 CLASS="emphasis"
2627 >IBM AFS Quick
2628     Beginnings</I
2629 ></SPAN
2630 >.)</P
2631 ><DIV
2632 CLASS="sect2"
2633 ><H2
2634 CLASS="sect2"
2635 ><A
2636 NAME="Header_451"
2637 >How Clients Use the List of Database Server Machines</A
2638 ></H2
2639 ><P
2640 >As the <SPAN
2641 CLASS="bold"
2642 ><B
2643 CLASS="emphasis"
2644 >afsd</B
2645 ></SPAN
2646 > program runs and initializes the Cache Manager, it reads the contents of
2647       the <SPAN
2648 CLASS="bold"
2649 ><B
2650 CLASS="emphasis"
2651 >CellServDB</B
2652 ></SPAN
2653 > file into kernel memory. The Cache Manager does not consult the file again
2654       until the machine next reboots. In contrast, the command interpreters for the AFS command suites (such as <SPAN
2655 CLASS="bold"
2656 ><B
2657 CLASS="emphasis"
2658 >fs</B
2659 ></SPAN
2660 > and <SPAN
2661 CLASS="bold"
2662 ><B
2663 CLASS="emphasis"
2664 >pts</B
2665 ></SPAN
2666 >) read the <SPAN
2667 CLASS="bold"
2668 ><B
2669 CLASS="emphasis"
2670 >CellServDB</B
2671 ></SPAN
2672 > file
2673       each time they need to contact a database server process.</P
2674 ><P
2675 >When a cell's list of database server machines changes, you must change both the <SPAN
2676 CLASS="bold"
2677 ><B
2678 CLASS="emphasis"
2679 >CellServDB</B
2680 ></SPAN
2681 > file and the list in kernel memory to preserve consistent client performance; some commands
2682       probably fail if the two lists of machines disagree. One possible method for updating both the <SPAN
2683 CLASS="bold"
2684 ><B
2685 CLASS="emphasis"
2686 >CellServDB</B
2687 ></SPAN
2688 > file and kernel memory is to edit the file and reboot the machine. To avoid needing to
2689       reboot, you can instead perform both of the following steps: <OL
2690 TYPE="1"
2691 ><LI
2692 ><P
2693 >Issue the <SPAN
2694 CLASS="bold"
2695 ><B
2696 CLASS="emphasis"
2697 >fs newcell</B
2698 ></SPAN
2699 > command to alter the list in kernel memory directly, making
2700             the changes available to the Cache Manager.</P
2701 ></LI
2702 ><LI
2703 ><P
2704 >Edit the <SPAN
2705 CLASS="bold"
2706 ><B
2707 CLASS="emphasis"
2708 >CellServDB</B
2709 ></SPAN
2710 > file to make the changes available to command interpreters.
2711             For a description of the file's format, see <A
2712 HREF="c21473.html#HDRWQ407"
2713 >The Format of the CellServDB file</A
2714 >.</P
2715 ></LI
2716 ></OL
2717 ></P
2718 ><P
2719 >The consequences of missing or incorrect information in the <SPAN
2720 CLASS="bold"
2721 ><B
2722 CLASS="emphasis"
2723 >CellServDB</B
2724 ></SPAN
2725 > file or kernel
2726       memory are as follows: <UL
2727 ><LI
2728 ><P
2729 >If there is no entry for a cell, the machine's users cannot access the cell.</P
2730 ></LI
2731 ><LI
2732 ><P
2733 >If a cell's entry does not include a database server machine, then the Cache Manager and command interpreters
2734             never attempt to contact the machine. The omission does not prevent access to the cell--as long as the information about
2735             the other database server machines is correct and the server processes, machines, and network are functioning
2736             correctly--but it can put an undue burden on the machines that are listed. If all of the listed machines become
2737             inaccessible to clients, then the cell becomes inaccessible even if the omitted database server machine is functioning
2738             correctly.</P
2739 ></LI
2740 ><LI
2741 ><P
2742 >If a machine's name or address is incorrect, or the machine is not actually running the database server processes,
2743             then requests from clients time out. Users can experience lengthy delays because they have to wait the full timeout
2744             period before the Cache Manager or command interpreter contacts another database server machine.</P
2745 ></LI
2746 ></UL
2747 ></P
2748 ></DIV
2749 ><DIV
2750 CLASS="sect2"
2751 ><H2
2752 CLASS="sect2"
2753 ><A
2754 NAME="HDRWQ407"
2755 >The Format of the CellServDB file</A
2756 ></H2
2757 ><P
2758 >When editing the <SPAN
2759 CLASS="bold"
2760 ><B
2761 CLASS="emphasis"
2762 >/usr/vice/etc/CellServDB</B
2763 ></SPAN
2764 > file, you must use the correct format for
2765       cell and machine entries. Each cell has a separate entry. The first line has the following format:</P
2766 ><PRE
2767 CLASS="programlisting"
2768 >&#13;   &#62;cell_name      #organization
2769 </PRE
2770 ><P
2771 >where cell_name is the cell's complete Internet domain name (for example, <SPAN
2772 CLASS="bold"
2773 ><B
2774 CLASS="emphasis"
2775 >abc.com</B
2776 ></SPAN
2777 >) and
2778       organization is an optional field that follows any number of spaces and the number sign (<SAMP
2779 CLASS="computeroutput"
2780 >#</SAMP
2781 >)
2782       and can name the organization to which the cell corresponds (for example, the ABC Corporation). After the first line comes a
2783       separate line for each database server machine. Each line has the following format:</P
2784 ><PRE
2785 CLASS="programlisting"
2786 >&#13;   IP_address   #machine_name
2787 </PRE
2788 ><P
2789 >where IP_address is the machine's IP address in dotted decimal format (for example, 192.12.105.3). Following any number
2790       of spaces and the number sign (<SAMP
2791 CLASS="computeroutput"
2792 >#</SAMP
2793 >) is machine_name, the machine's fully-qualified hostname
2794       (for example, <SPAN
2795 CLASS="bold"
2796 ><B
2797 CLASS="emphasis"
2798 >db1.abc.com</B
2799 ></SPAN
2800 >). In this case, the number sign does not indicate a comment:
2801       machine_name is a required field.</P
2802 ><P
2803 >The order in which the cells appear is not important, but it is convenient to put the client machine's home cell first.
2804       Do not include any blank lines in the file, not even after the last entry.</P
2805 ><P
2806 >The following example shows entries for two cells, each of which has three database server machines:</P
2807 ><PRE
2808 CLASS="programlisting"
2809 >&#13;   &#62;abc.com       #ABC Corporation (home cell)
2810    192.12.105.3      #db1.abc.com
2811    192.12.105.4      #db2.abc.com
2812    192.12.105.55     #db3.abc.com
2813    &#62;stateu.edu    #State University cell
2814    138.255.68.93     #serverA.stateu.edu
2815    138.255.68.72     #serverB.stateu.edu
2816    138.255.33.154    #serverC.stateu.edu
2817 </PRE
2818 ></DIV
2819 ><DIV
2820 CLASS="sect2"
2821 ><H2
2822 CLASS="sect2"
2823 ><A
2824 NAME="HDRWQ408"
2825 >Maintaining the Client CellServDB File</A
2826 ></H2
2827 ><P
2828 >Because a correct entry in the <SPAN
2829 CLASS="bold"
2830 ><B
2831 CLASS="emphasis"
2832 >CellServDB</B
2833 ></SPAN
2834 > file is vital for consistent client
2835       performance, you must also update the file on each client machine whenever a cell's list of database server machines changes
2836       (for instance, when you follow the instructions in the <SPAN
2837 CLASS="emphasis"
2838 ><I
2839 CLASS="emphasis"
2840 >IBM AFS Quick Beginnings</I
2841 ></SPAN
2842 > to add or remove a
2843       database server machine). To facilitate the client updates, you can use the <SPAN
2844 CLASS="bold"
2845 ><B
2846 CLASS="emphasis"
2847 >package</B
2848 ></SPAN
2849 > program,
2850       which copies files from a central source in AFS to the local disk of client machines. It is conventional to invoke the
2851       <SPAN
2852 CLASS="bold"
2853 ><B
2854 CLASS="emphasis"
2855 >package</B
2856 ></SPAN
2857 > program in a client machine's AFS initialization file so that it runs as the machine
2858       reboots, but you can also issue the <SPAN
2859 CLASS="bold"
2860 ><B
2861 CLASS="emphasis"
2862 >package</B
2863 ></SPAN
2864 > command at any time. For instructions, see <A
2865 HREF="c23832.html#HDRWQ448"
2866 >Running the package program</A
2867 >.</P
2868 ><P
2869 >If you use the <SPAN
2870 CLASS="bold"
2871 ><B
2872 CLASS="emphasis"
2873 >package</B
2874 ></SPAN
2875 > program, the conventional location for your cell's central
2876       source <SPAN
2877 CLASS="bold"
2878 ><B
2879 CLASS="emphasis"
2880 >CellServDB</B
2881 ></SPAN
2882 > file is <SPAN
2883 CLASS="bold"
2884 ><B
2885 CLASS="emphasis"
2886 >/afs/</B
2887 ></SPAN
2888 >cell_name<SPAN
2889 CLASS="bold"
2890 ><B
2891 CLASS="emphasis"
2892 >/common/etc/CellServDB</B
2893 ></SPAN
2894 >, where cell_name is your cell name. </P
2895 ><P
2896 >Creating a symbolic or hard link from <SPAN
2897 CLASS="bold"
2898 ><B
2899 CLASS="emphasis"
2900 >/usr/vice/etc/CellServDB</B
2901 ></SPAN
2902 > to a central source file
2903       in AFS is not a viable option. The <SPAN
2904 CLASS="bold"
2905 ><B
2906 CLASS="emphasis"
2907 >afsd</B
2908 ></SPAN
2909 > program reads the file into kernel memory before the
2910       Cache Manager is completely initialized and able to access AFS.</P
2911 ><P
2912 >Because every client machine has its own copy of the <SPAN
2913 CLASS="bold"
2914 ><B
2915 CLASS="emphasis"
2916 >CellServDB</B
2917 ></SPAN
2918 > file, you can in theory
2919       make the set of accessible cells differ on various machines. In most cases, however, it is best to maintain consistency
2920       between the files on all client machines in the cell: differences between machines are particularly confusing if users
2921       commonly use a variety of machines rather than just one.</P
2922 ><P
2923 >The AFS Product Support group maintains a central <SPAN
2924 CLASS="bold"
2925 ><B
2926 CLASS="emphasis"
2927 >CellServDB</B
2928 ></SPAN
2929 > file that includes all
2930       cells that have agreed to make their database server machines access to other AFS cells. It is advisable to check this file
2931       periodically for updated information. See <A
2932 HREF="c667.html#HDRWQ38"
2933 >Making Your Cell Visible to Others</A
2934 >. </P
2935 ><P
2936 >An entry in the local <SPAN
2937 CLASS="bold"
2938 ><B
2939 CLASS="emphasis"
2940 >CellServDB</B
2941 ></SPAN
2942 > is one of the two requirements for accessing a cell.
2943       The other is that the cell's <SPAN
2944 CLASS="bold"
2945 ><B
2946 CLASS="emphasis"
2947 >root.cell</B
2948 ></SPAN
2949 > volume is mounted in the local filespace, by
2950       convention as a subdirectory of the <SPAN
2951 CLASS="bold"
2952 ><B
2953 CLASS="emphasis"
2954 >/afs</B
2955 ></SPAN
2956 > directory. For instructions, see <A
2957 HREF="c8420.html#HDRWQ213"
2958 >To create a cellular mount point</A
2959 >.</P
2960 ><DIV
2961 CLASS="note"
2962 ><BLOCKQUOTE
2963 CLASS="note"
2964 ><P
2965 ><B
2966 >Note: </B
2967 >The <SPAN
2968 CLASS="bold"
2969 ><B
2970 CLASS="emphasis"
2971 >/usr/vice/etc/CellServDB</B
2972 ></SPAN
2973 > file on a client machine is not the same as the
2974         <SPAN
2975 CLASS="bold"
2976 ><B
2977 CLASS="emphasis"
2978 >/usr/afs/etc/CellServDB</B
2979 ></SPAN
2980 > file on the local disk of a file server machine. The server version
2981         lists only the database server machines in the server machine's home cell, because server processes never need to contact
2982         foreign cells. It is important to update both types of <SPAN
2983 CLASS="bold"
2984 ><B
2985 CLASS="emphasis"
2986 >CellServDB</B
2987 ></SPAN
2988 > file on all machines in
2989         the cell whenever there is a change to your cell's database server machines. For more information about maintaining the
2990         server version of the <SPAN
2991 CLASS="bold"
2992 ><B
2993 CLASS="emphasis"
2994 >CellServDB</B
2995 ></SPAN
2996 > file, see <A
2997 HREF="c3025.html#HDRWQ118"
2998 >Maintaining the Server
2999         CellServDB File</A
3000 >.</P
3001 ></BLOCKQUOTE
3002 ></DIV
3003 ></DIV
3004 ><DIV
3005 CLASS="sect2"
3006 ><H2
3007 CLASS="sect2"
3008 ><A
3009 NAME="Header_454"
3010 >To display the /usr/vice/etc/CellServDB file</A
3011 ></H2
3012 ><OL
3013 TYPE="1"
3014 ><LI
3015 ><P
3016 >Use a text editor or the <SPAN
3017 CLASS="bold"
3018 ><B
3019 CLASS="emphasis"
3020 >cat</B
3021 ></SPAN
3022 > command to display the contents of the <SPAN
3023 CLASS="bold"
3024 ><B
3025 CLASS="emphasis"
3026 >/usr/vice/etc/CellServDB</B
3027 ></SPAN
3028 > file. By default, the mode bits on the file permit anyone to read it.
3029           <PRE
3030 CLASS="programlisting"
3031 >&#13;   % <SPAN
3032 CLASS="bold"
3033 ><B
3034 CLASS="emphasis"
3035 >cat /usr/vice/etc/CellServDB</B
3036 ></SPAN
3037 >
3038 </PRE
3039 ></P
3040 ></LI
3041 ></OL
3042 ></DIV
3043 ><DIV
3044 CLASS="sect2"
3045 ><H2
3046 CLASS="sect2"
3047 ><A
3048 NAME="Header_455"
3049 >To display the list of database server machines in kernel memory</A
3050 ></H2
3051 ><OL
3052 TYPE="1"
3053 ><LI
3054 ><P
3055 >Issue the <SPAN
3056 CLASS="bold"
3057 ><B
3058 CLASS="emphasis"
3059 >fs listcells</B
3060 ></SPAN
3061 > command. <PRE
3062 CLASS="programlisting"
3063 >&#13;   % <SPAN
3064 CLASS="bold"
3065 ><B
3066 CLASS="emphasis"
3067 >fs listcells [&#38;]</B
3068 ></SPAN
3069
3070 </PRE
3071 ></P
3072 ><P
3073 >where <SPAN
3074 CLASS="bold"
3075 ><B
3076 CLASS="emphasis"
3077 >listc</B
3078 ></SPAN
3079 > is the shortest acceptable abbreviation of <SPAN
3080 CLASS="bold"
3081 ><B
3082 CLASS="emphasis"
3083 >listcells</B
3084 ></SPAN
3085 >.</P
3086 ><P
3087 >To have your shell prompt return immediately, include the ampersand (<SPAN
3088 CLASS="bold"
3089 ><B
3090 CLASS="emphasis"
3091 >&#38;</B
3092 ></SPAN
3093 >), which
3094           makes the command run in the background. It can take a while to generate the complete output because the kernel stores
3095           database server machines' IP addresses only, and the <SPAN
3096 CLASS="bold"
3097 ><B
3098 CLASS="emphasis"
3099 >fs</B
3100 ></SPAN
3101 > command interpreter has the
3102           cell's name resolution service (such as the Domain Name Service or a local host table) translate them into hostnames. You
3103           can halt the command at any time by issuing an interrupt signal such as <SPAN
3104 CLASS="bold"
3105 ><B
3106 CLASS="emphasis"
3107 >Ctrl-c</B
3108 ></SPAN
3109 >.</P
3110 ><P
3111 >The output includes a single line for each cell, in the following format:</P
3112 ><PRE
3113 CLASS="programlisting"
3114 >&#13;   Cell cell_name on hosts list_of_hostnames.
3115 </PRE
3116 ><P
3117 >The name service sometimes returns hostnames in uppercase letters, and if it cannot resolve a name at all, it
3118           returns its IP address. The following example illustrates all three possibilities:</P
3119 ><PRE
3120 CLASS="programlisting"
3121 >&#13;   % <SPAN
3122 CLASS="bold"
3123 ><B
3124 CLASS="emphasis"
3125 >fs listcells</B
3126 ></SPAN
3127 >
3128       .
3129       .
3130    Cell abc.com on hosts db1.abc.com db2.abc.com db3.abc.com
3131    Cell stateu.edu on hosts SERVERA.STATEU.EDU SERVERB.STATEU.EDU 
3132                             SERVERC.STATEU.EDU
3133    Cell ghi.org on hosts 191.255.64.111 191.255.64.112
3134       .
3135       .
3136 </PRE
3137 ></LI
3138 ></OL
3139 ></DIV
3140 ><DIV
3141 CLASS="sect2"
3142 ><H2
3143 CLASS="sect2"
3144 ><A
3145 NAME="Header_456"
3146 >To change the list of a cell's database server machines in kernel memory</A
3147 ></H2
3148 ><OL
3149 TYPE="1"
3150 ><LI
3151 ><P
3152 >Become the local superuser <SPAN
3153 CLASS="bold"
3154 ><B
3155 CLASS="emphasis"
3156 >root</B
3157 ></SPAN
3158 > on the machine, if you are not already, by issuing
3159           the <SPAN
3160 CLASS="bold"
3161 ><B
3162 CLASS="emphasis"
3163 >su</B
3164 ></SPAN
3165 > command. <PRE
3166 CLASS="programlisting"
3167 >&#13;   % <SPAN
3168 CLASS="bold"
3169 ><B
3170 CLASS="emphasis"
3171 >su root</B
3172 ></SPAN
3173 >
3174    Password: &#60;<VAR
3175 CLASS="replaceable"
3176 >root_password</VAR
3177 >&#62;
3178 </PRE
3179 ></P
3180 ></LI
3181 ><LI
3182 ><P
3183 >If you a use a central copy of the <SPAN
3184 CLASS="bold"
3185 ><B
3186 CLASS="emphasis"
3187 >CellServDB</B
3188 ></SPAN
3189 > file as a source for client machines,
3190           verify that its directory's ACL grants you the <SPAN
3191 CLASS="bold"
3192 ><B
3193 CLASS="emphasis"
3194 >l</B
3195 ></SPAN
3196 > (<SPAN
3197 CLASS="bold"
3198 ><B
3199 CLASS="emphasis"
3200 >lookup</B
3201 ></SPAN
3202 >), <SPAN
3203 CLASS="bold"
3204 ><B
3205 CLASS="emphasis"
3206 >r</B
3207 ></SPAN
3208 > (<SPAN
3209 CLASS="bold"
3210 ><B
3211 CLASS="emphasis"
3212 >read</B
3213 ></SPAN
3214 >), and <SPAN
3215 CLASS="bold"
3216 ><B
3217 CLASS="emphasis"
3218 >w</B
3219 ></SPAN
3220 > (<SPAN
3221 CLASS="bold"
3222 ><B
3223 CLASS="emphasis"
3224 >write</B
3225 ></SPAN
3226 >) permissions. The conventional directory is <SPAN
3227 CLASS="bold"
3228 ><B
3229 CLASS="emphasis"
3230 >/afs/</B
3231 ></SPAN
3232 >cell_name<SPAN
3233 CLASS="bold"
3234 ><B
3235 CLASS="emphasis"
3236 >/common/etc</B
3237 ></SPAN
3238 >. If necessary, issue the <SPAN
3239 CLASS="bold"
3240 ><B
3241 CLASS="emphasis"
3242 >fs listacl</B
3243 ></SPAN
3244 > command, which is fully described in <A
3245 HREF="c31274.html#HDRWQ572"
3246 >Displaying ACLs</A
3247 >.
3248           <PRE
3249 CLASS="programlisting"
3250 >&#13;   # <SPAN
3251 CLASS="bold"
3252 ><B
3253 CLASS="emphasis"
3254 >fs listacl</B
3255 ></SPAN
3256 > [&#60;<VAR
3257 CLASS="replaceable"
3258 >dir/file path</VAR
3259 >&#62;]
3260 </PRE
3261 >  </P
3262 ></LI
3263 ><LI
3264 ><P
3265 ><A
3266 NAME="LINEWCELL"
3267 ></A
3268 >Issue the <SPAN
3269 CLASS="bold"
3270 ><B
3271 CLASS="emphasis"
3272 >fs newcell</B
3273 ></SPAN
3274 > command to add or change a cell's
3275           entry in kernel memory. Repeat the command for each cell.</P
3276 ><DIV
3277 CLASS="note"
3278 ><BLOCKQUOTE
3279 CLASS="note"
3280 ><P
3281 ><B
3282 >Note: </B
3283 >You cannot use this command to remove a cell's entry completely from kernel memory. In the rare cases when you
3284             urgently need to prevent access to a specific cell, you must edit the <SPAN
3285 CLASS="bold"
3286 ><B
3287 CLASS="emphasis"
3288 >CellServDB</B
3289 ></SPAN
3290 > file
3291             and reboot the machine.</P
3292 ></BLOCKQUOTE
3293 ></DIV
3294 ><PRE
3295 CLASS="programlisting"
3296 >&#13;   # <SPAN
3297 CLASS="bold"
3298 ><B
3299 CLASS="emphasis"
3300 >fs newcell</B
3301 ></SPAN
3302 > &#60;<VAR
3303 CLASS="replaceable"
3304 >cell name</VAR
3305 >&#62; &#60;<VAR
3306 CLASS="replaceable"
3307 >primary servers</VAR
3308 >&#62;+ \
3309                 [<SPAN
3310 CLASS="bold"
3311 ><B
3312 CLASS="emphasis"
3313 >-linkedcell</B
3314 ></SPAN
3315 > &#60;<VAR
3316 CLASS="replaceable"
3317 >linked cell name</VAR
3318 >&#62;]
3319 </PRE
3320 ><P
3321 >where <DIV
3322 CLASS="variablelist"
3323 ><DL
3324 ><DT
3325 ><SPAN
3326 CLASS="bold"
3327 ><B
3328 CLASS="emphasis"
3329 >n</B
3330 ></SPAN
3331 ></DT
3332 ><DD
3333 ><P
3334 >Is the shortest acceptable abbreviation of <SPAN
3335 CLASS="bold"
3336 ><B
3337 CLASS="emphasis"
3338 >newcell</B
3339 ></SPAN
3340 >.</P
3341 ></DD
3342 ><DT
3343 ><SPAN
3344 CLASS="bold"
3345 ><B
3346 CLASS="emphasis"
3347 >cell name</B
3348 ></SPAN
3349 ></DT
3350 ><DD
3351 ><P
3352 >Specifies the complete Internet domain name of the cell for which to record a new list of database server
3353                   machines.</P
3354 ></DD
3355 ><DT
3356 ><SPAN
3357 CLASS="bold"
3358 ><B
3359 CLASS="emphasis"
3360 >primary servers</B
3361 ></SPAN
3362 ></DT
3363 ><DD
3364 ><P
3365 >Specifies the fully-qualified hostname or IP address in dotted-decimal format for each database server
3366                   machine in the cell. The list you provide completely replaces the existing list.</P
3367 ></DD
3368 ><DT
3369 ><SPAN
3370 CLASS="bold"
3371 ><B
3372 CLASS="emphasis"
3373 >-linkedcell</B
3374 ></SPAN
3375 ></DT
3376 ><DD
3377 ><P
3378 >Specifies the complete Internet domain name of the AFS cell to link to a DCE cell for the purposes of DFS
3379                   fileset location. You can use this argument if the machine's AFS users access DFS via the AFS/DFS Migration
3380                   Toolkit Protocol Translator. For instructions, see the <SPAN
3381 CLASS="emphasis"
3382 ><I
3383 CLASS="emphasis"
3384 >IBM AFS/DFS Migration Toolkit Administration
3385                   Guide and Reference</I
3386 ></SPAN
3387 >.</P
3388 ></DD
3389 ></DL
3390 ></DIV
3391 ></P
3392 ></LI
3393 ><LI
3394 ><P
3395 >Add or edit the cell's entry in the local <SPAN
3396 CLASS="bold"
3397 ><B
3398 CLASS="emphasis"
3399 >/usr/vice/etc/CellServDB</B
3400 ></SPAN
3401 > file, using one
3402           of the following three methods. In each case, be sure to obey the formatting requirements described in <A
3403 HREF="c21473.html#HDRWQ407"
3404 >The Format of the CellServDB file</A
3405 >. <UL
3406 ><LI
3407 ><P
3408 >If you maintain a central source version of the <SPAN
3409 CLASS="bold"
3410 ><B
3411 CLASS="emphasis"
3412 >CellServDB</B
3413 ></SPAN
3414 > file and use the
3415                 <SPAN
3416 CLASS="bold"
3417 ><B
3418 CLASS="emphasis"
3419 >package</B
3420 ></SPAN
3421 > program, first use a text editor to alter the central copy of the file.
3422                 Then issue the <SPAN
3423 CLASS="bold"
3424 ><B
3425 CLASS="emphasis"
3426 >package</B
3427 ></SPAN
3428 > command to transfer the contents of the file to the local
3429                 machine. For complete instructions, see <A
3430 HREF="c23832.html#HDRWQ448"
3431 >Running the package program</A
3432 >.
3433                 <PRE
3434 CLASS="programlisting"
3435 >&#13;   # <SPAN
3436 CLASS="bold"
3437 ><B
3438 CLASS="emphasis"
3439 >/etc/package -v -c</B
3440 ></SPAN
3441 > &#60;<VAR
3442 CLASS="replaceable"
3443 >name of package file</VAR
3444 >&#62;
3445 </PRE
3446 ></P
3447 ></LI
3448 ><LI
3449 ><P
3450 >If you maintain a central source <SPAN
3451 CLASS="bold"
3452 ><B
3453 CLASS="emphasis"
3454 >CellServDB</B
3455 ></SPAN
3456 > file but do not use the <SPAN
3457 CLASS="bold"
3458 ><B
3459 CLASS="emphasis"
3460 >package</B
3461 ></SPAN
3462 > program, first use a text editor to alter the central copy of the file. Then use a
3463                 copying command such as the <SPAN
3464 CLASS="bold"
3465 ><B
3466 CLASS="emphasis"
3467 >cp</B
3468 ></SPAN
3469 > command to copy it to the local <SPAN
3470 CLASS="bold"
3471 ><B
3472 CLASS="emphasis"
3473 >/usr/vice/etc/CellServDB</B
3474 ></SPAN
3475 > file.</P
3476 ></LI
3477 ><LI
3478 ><P
3479 >If you do not use a central source <SPAN
3480 CLASS="bold"
3481 ><B
3482 CLASS="emphasis"
3483 >CellServDB</B
3484 ></SPAN
3485 > file, edit the local machine's
3486                 <SPAN
3487 CLASS="bold"
3488 ><B
3489 CLASS="emphasis"
3490 >/usr/vice/etc/CellServDB</B
3491 ></SPAN
3492 > file directly.</P
3493 ></LI
3494 ></UL
3495 ></P
3496 ></LI
3497 ></OL
3498 ></DIV
3499 ></DIV
3500 ><DIV
3501 CLASS="sect1"
3502 ><H1
3503 CLASS="sect1"
3504 ><A
3505 NAME="HDRWQ409"
3506 >Determining if a Client Can Run Setuid Programs</A
3507 ></H1
3508 ><P
3509 >A <SPAN
3510 CLASS="emphasis"
3511 ><I
3512 CLASS="emphasis"
3513 >setuid program</I
3514 ></SPAN
3515 > is one whose binary file has the UNIX setuid mode bit turned on. While a setuid
3516     program runs, the user who initialized it assumes the local identity (UNIX UID) of the binary file's owner, and so is granted
3517     the permissions in the local file system that pertain to the owner. Most commonly, the issuer's assumed identity (often referred
3518     to as <SPAN
3519 CLASS="emphasis"
3520 ><I
3521 CLASS="emphasis"
3522 >effective UID</I
3523 ></SPAN
3524 >) is the local superuser <SPAN
3525 CLASS="bold"
3526 ><B
3527 CLASS="emphasis"
3528 >root</B
3529 ></SPAN
3530 >.</P
3531 ><P
3532 >AFS does not recognize effective UID: if a setuid program accesses AFS files and directories, it uses the current AFS
3533     identity of the user who initialized the program, not of the program's owner. Nevertheless, it can be useful to store setuid
3534     programs in AFS for use on more than one client machine. AFS enables a client machine's administrator to determine whether the
3535     local Cache Manager allows setuid programs to run or not.</P
3536 ><P
3537 >By default, the Cache Manager allows programs from its home cell to run with setuid permission, but denies setuid
3538     permission to programs from foreign cells. A program belongs to the same cell as the file server machine that houses the volume
3539     in which the file resides, as specified in the file server machine's <SPAN
3540 CLASS="bold"
3541 ><B
3542 CLASS="emphasis"
3543 >/usr/afs/etc/ThisCell</B
3544 ></SPAN
3545 >
3546     file. The Cache Manager determines its own home cell by reading the <SPAN
3547 CLASS="bold"
3548 ><B
3549 CLASS="emphasis"
3550 >/usr/vice/etc/ThisCell</B
3551 ></SPAN
3552 > file
3553     at initialization.</P
3554 ><P
3555 >To change a cell's setuid status with respect to the local machine, become the local superuser <SPAN
3556 CLASS="bold"
3557 ><B
3558 CLASS="emphasis"
3559 >root</B
3560 ></SPAN
3561 > and issue the <SPAN
3562 CLASS="bold"
3563 ><B
3564 CLASS="emphasis"
3565 >fs setcell</B
3566 ></SPAN
3567 > command. To determine a cell's current
3568     setuid status, use the <SPAN
3569 CLASS="bold"
3570 ><B
3571 CLASS="emphasis"
3572 >fs getcellstatus</B
3573 ></SPAN
3574 > command.</P
3575 ><P
3576 >When you issue the <SPAN
3577 CLASS="bold"
3578 ><B
3579 CLASS="emphasis"
3580 >fs setcell</B
3581 ></SPAN
3582 > command, you directly alter a cell's setuid status as
3583     recorded in kernel memory, so rebooting the machine is not necessary. However, nondefault settings do not persist across reboots
3584     of the machine unless you add the appropriate <SPAN
3585 CLASS="bold"
3586 ><B
3587 CLASS="emphasis"
3588 >fs setcell</B
3589 ></SPAN
3590 > command to the machine's AFS
3591     initialization file.</P
3592 ><P
3593 >Only members of the <SPAN
3594 CLASS="bold"
3595 ><B
3596 CLASS="emphasis"
3597 >system:administrators</B
3598 ></SPAN
3599 > group can turn on the setuid mode bit on an AFS
3600     file or directory. When the setuid mode bit is turned on, the UNIX <SPAN
3601 CLASS="bold"
3602 ><B
3603 CLASS="emphasis"
3604 >ls -l</B
3605 ></SPAN
3606 > command displays the
3607     third user mode bit as an <SPAN
3608 CLASS="bold"
3609 ><B
3610 CLASS="emphasis"
3611 >s</B
3612 ></SPAN
3613 > instead of an <SPAN
3614 CLASS="bold"
3615 ><B
3616 CLASS="emphasis"
3617 >x</B
3618 ></SPAN
3619 >, but for an AFS
3620     file or directory, the <SPAN
3621 CLASS="bold"
3622 ><B
3623 CLASS="emphasis"
3624 >s</B
3625 ></SPAN
3626 > appears only if setuid permission is enabled for the cell in which the
3627     file resides.  </P
3628 ><DIV
3629 CLASS="sect2"
3630 ><H2
3631 CLASS="sect2"
3632 ><A
3633 NAME="Header_458"
3634 >To determine a cell's setuid status</A
3635 ></H2
3636 ><OL
3637 TYPE="1"
3638 ><LI
3639 ><P
3640 >Issue the <SPAN
3641 CLASS="bold"
3642 ><B
3643 CLASS="emphasis"
3644 >fs getcellstatus</B
3645 ></SPAN
3646 > command to check the setuid status of each desired cell.
3647           <PRE
3648 CLASS="programlisting"
3649 >&#13;   % <SPAN
3650 CLASS="bold"
3651 ><B
3652 CLASS="emphasis"
3653 >fs getcellstatus</B
3654 ></SPAN
3655 > &#60;<VAR
3656 CLASS="replaceable"
3657 >cell name</VAR
3658 >&#62;
3659 </PRE
3660 ></P
3661 ><P
3662 >where <DIV
3663 CLASS="variablelist"
3664 ><DL
3665 ><DT
3666 ><SPAN
3667 CLASS="bold"
3668 ><B
3669 CLASS="emphasis"
3670 >getce</B
3671 ></SPAN
3672 ></DT
3673 ><DD
3674 ><P
3675 >Is the shortest acceptable abbreviation of <SPAN
3676 CLASS="bold"
3677 ><B
3678 CLASS="emphasis"
3679 >getcellstatus</B
3680 ></SPAN
3681 >.</P
3682 ></DD
3683 ><DT
3684 ><SPAN
3685 CLASS="bold"
3686 ><B
3687 CLASS="emphasis"
3688 >cell name</B
3689 ></SPAN
3690 ></DT
3691 ><DD
3692 ><P
3693 >Names each cell for which to report setuid status. Provide the complete Internet domain name or a shortened
3694                   form that distinguishes it from the other cells listed in the local <SPAN
3695 CLASS="bold"
3696 ><B
3697 CLASS="emphasis"
3698 >/usr/vice/etc/CellServDB</B
3699 ></SPAN
3700 > file.</P
3701 ></DD
3702 ></DL
3703 ></DIV
3704 ></P
3705 ></LI
3706 ></OL
3707 ><P
3708 >The output reports the setuid status of each cell: <UL
3709 ><LI
3710 ><P
3711 >the string <SAMP
3712 CLASS="computeroutput"
3713 >no setuid allowed</SAMP
3714 > indicates that the Cache Manager does not allow
3715             programs from the cell to run with <SAMP
3716 CLASS="computeroutput"
3717 >setuid permission</SAMP
3718 ></P
3719 ></LI
3720 ><LI
3721 ><P
3722 >setuid allowed indicates that the Cache Manager allows programs from the cell to run with setuid permission</P
3723 ></LI
3724 ></UL
3725 ></P
3726 ></DIV
3727 ><DIV
3728 CLASS="sect2"
3729 ><H2
3730 CLASS="sect2"
3731 ><A
3732 NAME="Header_459"
3733 >To change a cell's setuid status</A
3734 ></H2
3735 ><OL
3736 TYPE="1"
3737 ><LI
3738 ><P
3739 >Become the local superuser <SPAN
3740 CLASS="bold"
3741 ><B
3742 CLASS="emphasis"
3743 >root</B
3744 ></SPAN
3745 > on the machine, if you are not already, by issuing
3746           the <SPAN
3747 CLASS="bold"
3748 ><B
3749 CLASS="emphasis"
3750 >su</B
3751 ></SPAN
3752 > command. <PRE
3753 CLASS="programlisting"
3754 >&#13;   % <SPAN
3755 CLASS="bold"
3756 ><B
3757 CLASS="emphasis"
3758 >su root</B
3759 ></SPAN
3760 >
3761    Password: &#60;<VAR
3762 CLASS="replaceable"
3763 >root_password</VAR
3764 >&#62;
3765 </PRE
3766 ></P
3767 ></LI
3768 ><LI
3769 ><P
3770 >Issue the <SPAN
3771 CLASS="bold"
3772 ><B
3773 CLASS="emphasis"
3774 >fs setcell</B
3775 ></SPAN
3776 > command to change the setuid status of the cell.
3777           <PRE
3778 CLASS="programlisting"
3779 >&#13;   # <SPAN
3780 CLASS="bold"
3781 ><B
3782 CLASS="emphasis"
3783 >fs setcell</B
3784 ></SPAN
3785 > &#60;<VAR
3786 CLASS="replaceable"
3787 >cell name</VAR
3788 >&#62;+ [<SPAN
3789 CLASS="bold"
3790 ><B
3791 CLASS="emphasis"
3792 >-suid</B
3793 ></SPAN
3794 >] [<SPAN
3795 CLASS="bold"
3796 ><B
3797 CLASS="emphasis"
3798 >-nosuid</B
3799 ></SPAN
3800 >]
3801 </PRE
3802 ></P
3803 ><P
3804 >where <DIV
3805 CLASS="variablelist"
3806 ><DL
3807 ><DT
3808 ><SPAN
3809 CLASS="bold"
3810 ><B
3811 CLASS="emphasis"
3812 >setce</B
3813 ></SPAN
3814 ></DT
3815 ><DD
3816 ><P
3817 >Is the shortest acceptable abbreviation of <SPAN
3818 CLASS="bold"
3819 ><B
3820 CLASS="emphasis"
3821 >setcell</B
3822 ></SPAN
3823 >.</P
3824 ></DD
3825 ><DT
3826 ><SPAN
3827 CLASS="bold"
3828 ><B
3829 CLASS="emphasis"
3830 >cell name</B
3831 ></SPAN
3832 ></DT
3833 ><DD
3834 ><P
3835 >Names each cell for which to change setuid status as specified by the <SPAN
3836 CLASS="bold"
3837 ><B
3838 CLASS="emphasis"
3839 >-suid</B
3840 ></SPAN
3841 >
3842                   or <SPAN
3843 CLASS="bold"
3844 ><B
3845 CLASS="emphasis"
3846 >-nosuid</B
3847 ></SPAN
3848 > flag. Provide each cell's complete Internet domain name or a shortened
3849                   form that distinguishes it from the other cells listed in the local <SPAN
3850 CLASS="bold"
3851 ><B
3852 CLASS="emphasis"
3853 >/usr/vice/etc/CellServDB</B
3854 ></SPAN
3855 > file.</P
3856 ></DD
3857 ><DT
3858 ><SPAN
3859 CLASS="bold"
3860 ><B
3861 CLASS="emphasis"
3862 >-suid</B
3863 ></SPAN
3864 ></DT
3865 ><DD
3866 ><P
3867 >Enables programs from each specified cell to execute with setuid permission. Provide this flag or the
3868                   <SPAN
3869 CLASS="bold"
3870 ><B
3871 CLASS="emphasis"
3872 >-nosuid</B
3873 ></SPAN
3874 > flag, or omit both to disable setuid permission for each cell.</P
3875 ></DD
3876 ><DT
3877 ><SPAN
3878 CLASS="bold"
3879 ><B
3880 CLASS="emphasis"
3881 >-nosuid</B
3882 ></SPAN
3883 ></DT
3884 ><DD
3885 ><P
3886 >Prevents programs from each specified cell from executing with setuid permission. Provide this flag or the
3887                   <SPAN
3888 CLASS="bold"
3889 ><B
3890 CLASS="emphasis"
3891 >-suid</B
3892 ></SPAN
3893 > flag, or omit both to disable setuid permission for each cell.</P
3894 ></DD
3895 ></DL
3896 ></DIV
3897 ></P
3898 ></LI
3899 ></OL
3900 ></DIV
3901 ></DIV
3902 ><DIV
3903 CLASS="sect1"
3904 ><H1
3905 CLASS="sect1"
3906 ><A
3907 NAME="HDRWQ410"
3908 >Setting the File Server Probe Interval</A
3909 ></H1
3910 ><P
3911 >The Cache Manager periodically sends a probe to server machines to verify that they are still accessible. Specifically, it
3912     probes the database server machines in its cell and those file servers that house data it has cached.</P
3913 ><P
3914 >If a server process does not respond to a probe, the client machine assumes that it is inaccessible. By default, the
3915     interval between probes is three minutes, so it can take up to three minutes for a client to recognize that a server process is
3916     once again accessible after it was inaccessible.</P
3917 ><P
3918 >To adjust the probe interval, include the <SPAN
3919 CLASS="bold"
3920 ><B
3921 CLASS="emphasis"
3922 >-interval</B
3923 ></SPAN
3924 > argument to the <SPAN
3925 CLASS="bold"
3926 ><B
3927 CLASS="emphasis"
3928 >fs checkservers</B
3929 ></SPAN
3930 > command while logged in as the local superuser <SPAN
3931 CLASS="bold"
3932 ><B
3933 CLASS="emphasis"
3934 >root</B
3935 ></SPAN
3936 >. The
3937     new interval setting persists until you again issue the command or reboot the machine, at which time the setting returns to the
3938     default. To preserve a nondefault setting across reboots, include the appropriate <SPAN
3939 CLASS="bold"
3940 ><B
3941 CLASS="emphasis"
3942 >fs
3943     checkservers</B
3944 ></SPAN
3945 > command in the machine's AFS initialization file.</P
3946 ><DIV
3947 CLASS="sect2"
3948 ><H2
3949 CLASS="sect2"
3950 ><A
3951 NAME="Header_461"
3952 >To set a client's file server probe interval</A
3953 ></H2
3954 ><OL
3955 TYPE="1"
3956 ><LI
3957 ><P
3958 >Become the local superuser <SPAN
3959 CLASS="bold"
3960 ><B
3961 CLASS="emphasis"
3962 >root</B
3963 ></SPAN
3964 > on the machine, if you are not already, by issuing
3965           the <SPAN
3966 CLASS="bold"
3967 ><B
3968 CLASS="emphasis"
3969 >su</B
3970 ></SPAN
3971 > command. <PRE
3972 CLASS="programlisting"
3973 >&#13;   % <SPAN
3974 CLASS="bold"
3975 ><B
3976 CLASS="emphasis"
3977 >su root</B
3978 ></SPAN
3979 >
3980    Password: &#60;<VAR
3981 CLASS="replaceable"
3982 >root_password</VAR
3983 >&#62;
3984 </PRE
3985 ></P
3986 ></LI
3987 ><LI
3988 ><P
3989 >Issue the <SPAN
3990 CLASS="bold"
3991 ><B
3992 CLASS="emphasis"
3993 >fs checkservers</B
3994 ></SPAN
3995 > command with the <SPAN
3996 CLASS="bold"
3997 ><B
3998 CLASS="emphasis"
3999 >-interval</B
4000 ></SPAN
4001 > argument.   <PRE
4002 CLASS="programlisting"
4003 >&#13;   # <SPAN
4004 CLASS="bold"
4005 ><B
4006 CLASS="emphasis"
4007 >fs checkservers -interval</B
4008 ></SPAN
4009 > &#60;<VAR
4010 CLASS="replaceable"
4011 >seconds between probes</VAR
4012 >&#62;
4013 </PRE
4014 ></P
4015 ><P
4016 >where <DIV
4017 CLASS="variablelist"
4018 ><DL
4019 ><DT
4020 ><SPAN
4021 CLASS="bold"
4022 ><B
4023 CLASS="emphasis"
4024 >checks</B
4025 ></SPAN
4026 ></DT
4027 ><DD
4028 ><P
4029 >Is the shortest acceptable abbreviation of <SPAN
4030 CLASS="bold"
4031 ><B
4032 CLASS="emphasis"
4033 >checkservers</B
4034 ></SPAN
4035 >.</P
4036 ></DD
4037 ><DT
4038 ><SPAN
4039 CLASS="bold"
4040 ><B
4041 CLASS="emphasis"
4042 >-interval</B
4043 ></SPAN
4044 ></DT
4045 ><DD
4046 ><P
4047 >Specifies the number of seconds between probes. Provide an integer value greater than zero.</P
4048 ></DD
4049 ></DL
4050 ></DIV
4051 ></P
4052 ></LI
4053 ></OL
4054 ></DIV
4055 ></DIV
4056 ><DIV
4057 CLASS="sect1"
4058 ><H1
4059 CLASS="sect1"
4060 ><A
4061 NAME="HDRWQ411"
4062 >Setting a Client Machine's Cell Membership</A
4063 ></H1
4064 ><P
4065 >Each client machine belongs to a particular cell, as named in the <SPAN
4066 CLASS="bold"
4067 ><B
4068 CLASS="emphasis"
4069 >/usr/vice/etc/ThisCell</B
4070 ></SPAN
4071 >
4072     on its local disk. The machine's cell membership determines three defaults important to users of the machine: <UL
4073 ><LI
4074 ><P
4075 >The cell for which users of the machine obtain tokens (authenticate) when they use the <SPAN
4076 CLASS="bold"
4077 ><B
4078 CLASS="emphasis"
4079 >login</B
4080 ></SPAN
4081 > program or issue the <SPAN
4082 CLASS="bold"
4083 ><B
4084 CLASS="emphasis"
4085 >klog</B
4086 ></SPAN
4087 > command. There are two effects:
4088           <UL
4089 ><LI
4090 ><P
4091 >The <SPAN
4092 CLASS="bold"
4093 ><B
4094 CLASS="emphasis"
4095 >klog</B
4096 ></SPAN
4097 > program and AFS-modified login utilities contact an Authentication
4098                 Server in the cell named in the <SPAN
4099 CLASS="bold"
4100 ><B
4101 CLASS="emphasis"
4102 >ThisCell</B
4103 ></SPAN
4104 > file.</P
4105 ></LI
4106 ><LI
4107 ><P
4108 >The <SPAN
4109 CLASS="bold"
4110 ><B
4111 CLASS="emphasis"
4112 >klog</B
4113 ></SPAN
4114 > program and AFS-modified login utilities combine the contents of the
4115                 <SPAN
4116 CLASS="bold"
4117 ><B
4118 CLASS="emphasis"
4119 >ThisCell</B
4120 ></SPAN
4121 > file with the password that the user provides, generating an encryption
4122                 key from the combination. The user's entry in the Authentication Database includes an encryption key also generated
4123                 from the combination of password and cell name. If the cell name in the <SPAN
4124 CLASS="bold"
4125 ><B
4126 CLASS="emphasis"
4127 >ThisCell</B
4128 ></SPAN
4129 >
4130                 file is incorrect, users cannot authenticate even if they provide the correct password.</P
4131 ></LI
4132 ></UL
4133 ></P
4134 ></LI
4135 ><LI
4136 ><P
4137 >The cell the Cache Manager considers its local, or home, cell. The Cache Manager allows programs from its local cell
4138           to run with setuid permission, but not programs from foreign cells, as discussed further in <A
4139 HREF="c21473.html#HDRWQ409"
4140 >Determining if a Client Can Run Setuid Programs</A
4141 >.</P
4142 ></LI
4143 ><LI
4144 ><P
4145 >The default database server machines that are contacted by the AFS command interpreters running on this
4146           machine.</P
4147 ></LI
4148 ></UL
4149 ></P
4150 ><DIV
4151 CLASS="sect2"
4152 ><H2
4153 CLASS="sect2"
4154 ><A
4155 NAME="Header_463"
4156 >To display a client machine's cell membership</A
4157 ></H2
4158 ><OL
4159 TYPE="1"
4160 ><LI
4161 ><P
4162 >Use a text editor or the <SPAN
4163 CLASS="bold"
4164 ><B
4165 CLASS="emphasis"
4166 >cat</B
4167 ></SPAN
4168 > command to display the contents of the <SPAN
4169 CLASS="bold"
4170 ><B
4171 CLASS="emphasis"
4172 >/usr/vice/etc/ThisCell</B
4173 ></SPAN
4174 > file. <PRE
4175 CLASS="programlisting"
4176 >&#13;   % <SPAN
4177 CLASS="bold"
4178 ><B
4179 CLASS="emphasis"
4180 >cat /usr/vice/etc/ThisCell</B
4181 ></SPAN
4182 >
4183 </PRE
4184 ></P
4185 ></LI
4186 ></OL
4187 ></DIV
4188 ><DIV
4189 CLASS="sect2"
4190 ><H2
4191 CLASS="sect2"
4192 ><A
4193 NAME="Header_464"
4194 >To set a client machine's cell membership</A
4195 ></H2
4196 ><OL
4197 TYPE="1"
4198 ><LI
4199 ><P
4200 >Become the local superuser <SPAN
4201 CLASS="bold"
4202 ><B
4203 CLASS="emphasis"
4204 >root</B
4205 ></SPAN
4206 > on the machine, if you are not already, by issuing
4207           the <SPAN
4208 CLASS="bold"
4209 ><B
4210 CLASS="emphasis"
4211 >su</B
4212 ></SPAN
4213 > command. <PRE
4214 CLASS="programlisting"
4215 >&#13;   % <SPAN
4216 CLASS="bold"
4217 ><B
4218 CLASS="emphasis"
4219 >su root</B
4220 ></SPAN
4221 >
4222    Password: &#60;<VAR
4223 CLASS="replaceable"
4224 >root_password</VAR
4225 >&#62;
4226 </PRE
4227 ></P
4228 ></LI
4229 ><LI
4230 ><P
4231 >Using a text editor, replace the cell name in the <SPAN
4232 CLASS="bold"
4233 ><B
4234 CLASS="emphasis"
4235 >/usr/vice/etc/ThisCell</B
4236 ></SPAN
4237 >
4238           file.</P
4239 ></LI
4240 ><LI
4241 ><P
4242 ><SPAN
4243 CLASS="bold"
4244 ><B
4245 CLASS="emphasis"
4246 >(Optional.)</B
4247 ></SPAN
4248 > Reboot the machine to enable the Cache Manager to use the new cell name
4249           immediately; the appropriate command depends on the machine's system type. The <SPAN
4250 CLASS="bold"
4251 ><B
4252 CLASS="emphasis"
4253 >klog</B
4254 ></SPAN
4255 >
4256           program, AFS-modified login utilities, and the AFS command interpreters use the new cell name the next time they are
4257           invoked; no reboot is necessary. <PRE
4258 CLASS="programlisting"
4259 >&#13;   # <SPAN
4260 CLASS="bold"
4261 ><B
4262 CLASS="emphasis"
4263 >sync</B
4264 ></SPAN
4265 >
4266    # <SPAN
4267 CLASS="bold"
4268 ><B
4269 CLASS="emphasis"
4270 >shutdown</B
4271 ></SPAN
4272 >
4273 </PRE
4274 ></P
4275 ></LI
4276 ></OL
4277 ></DIV
4278 ></DIV
4279 ><DIV
4280 CLASS="sect1"
4281 ><H1
4282 CLASS="sect1"
4283 ><A
4284 NAME="HDRWQ412"
4285 >Forcing the Update of Cached Data</A
4286 ></H1
4287 ><P
4288 >AFS's callback mechanism normally guarantees that the Cache Manager provides the most current version of a file or
4289     directory to the application programs running on its machine. However, you can force the Cache Manager to discard (flush) cached
4290     data so that the next time an application program requests it, the Cache Manager fetches the latest version available at the
4291     File Server.</P
4292 ><P
4293 >You can control how many file system elements to flush at a time: <UL
4294 ><LI
4295 ><P
4296 >To flush only specific files or directories, use the <SPAN
4297 CLASS="bold"
4298 ><B
4299 CLASS="emphasis"
4300 >fs flush</B
4301 ></SPAN
4302 > command. This command
4303           forces the Cache Manager to discard the data and status information it has cached from the specified files or directories.
4304           It does not discard information from an application program's buffer or information that has been altered locally (changes
4305           made in the cache but not yet saved permanently to the File Server). However, the next time an application requests the
4306           element's data or status information, the Cache Manager has to contact the File Server to get it.</P
4307 ></LI
4308 ><LI
4309 ><P
4310 >To flush everything cached from a certain volume, use the <SPAN
4311 CLASS="bold"
4312 ><B
4313 CLASS="emphasis"
4314 >fs flushvolume</B
4315 ></SPAN
4316 > command.
4317           This command works like the <SPAN
4318 CLASS="bold"
4319 ><B
4320 CLASS="emphasis"
4321 >fs flush</B
4322 ></SPAN
4323 > command, but differs in two ways: <UL
4324 ><LI
4325 ><P
4326 >The Cache Manager discards data for all elements in the cache that come from the same volume as the specified
4327                 files or directories.</P
4328 ></LI
4329 ><LI
4330 ><P
4331 >The Cache Manager discards only data, not status information. This difference has little practical effect, but
4332                 can lead to different output from the <SPAN
4333 CLASS="bold"
4334 ><B
4335 CLASS="emphasis"
4336 >ls</B
4337 ></SPAN
4338 > command when the two different commands
4339                 are used to flush the same element.</P
4340 ></LI
4341 ></UL
4342 ></P
4343 ></LI
4344 ></UL
4345 ></P
4346 ><P
4347 >In addition to callbacks, the Cache Manager has a mechanism for tracking other kinds of possible changes, such as changes
4348     in a volume's location. If a volume moves and the Cache Manager has not accessed any data in it for a long time, the Cache
4349     Manager's volume location record can be wrong. To resynchronize it, use the <SPAN
4350 CLASS="bold"
4351 ><B
4352 CLASS="emphasis"
4353 >fs checkvolumes</B
4354 ></SPAN
4355 >
4356     command. When you issue the command, the Cache Manager creates a new table of mappings between volume names, ID numbers, and
4357     locations. This forces the Cache Manager to reference newly relocated and renamed volumes before it can provide data from
4358     them.</P
4359 ><P
4360 >It is also possible for information about mount points to become corrupted in the cache. Symptoms of a corrupted mount
4361     point included garbled output from the <SPAN
4362 CLASS="bold"
4363 ><B
4364 CLASS="emphasis"
4365 >fs lsmount</B
4366 ></SPAN
4367 > command, and failed attempts to change
4368     directory to or list the contents of a mount point. Use the <SPAN
4369 CLASS="bold"
4370 ><B
4371 CLASS="emphasis"
4372 >fs flushmount</B
4373 ></SPAN
4374 > command to discard a
4375     corrupted mount point. The Cache Manager must refetch the mount point the next time it crosses it in a pathname. (The Cache
4376     Manager periodically refreshes cached mount points, but the only other way to discard them immediately is to reinitialize the
4377     Cache Manager by rebooting the machine.  </P
4378 ><DIV
4379 CLASS="sect2"
4380 ><H2
4381 CLASS="sect2"
4382 ><A
4383 NAME="Header_466"
4384 >To flush certain files or directories</A
4385 ></H2
4386 ><OL
4387 TYPE="1"
4388 ><LI
4389 ><P
4390 >Issue the <SPAN
4391 CLASS="bold"
4392 ><B
4393 CLASS="emphasis"
4394 >fs flush</B
4395 ></SPAN
4396 > command. <PRE
4397 CLASS="programlisting"
4398 >&#13;   % <SPAN
4399 CLASS="bold"
4400 ><B
4401 CLASS="emphasis"
4402 >fs flush</B
4403 ></SPAN
4404 > [&#60;<VAR
4405 CLASS="replaceable"
4406 >dir/file path</VAR
4407 >&#62;+]
4408 </PRE
4409 ></P
4410 ><P
4411 >where <DIV
4412 CLASS="variablelist"
4413 ><DL
4414 ><DT
4415 ><SPAN
4416 CLASS="bold"
4417 ><B
4418 CLASS="emphasis"
4419 >flush</B
4420 ></SPAN
4421 ></DT
4422 ><DD
4423 ><P
4424 >Must be typed in full.</P
4425 ></DD
4426 ><DT
4427 ><SPAN
4428 CLASS="bold"
4429 ><B
4430 CLASS="emphasis"
4431 >dir/file path</B
4432 ></SPAN
4433 ></DT
4434 ><DD
4435 ><P
4436 >Names each file or directory structure to flush from the cache. Omit this argument to flush the current
4437                   working directory. Flushing a directory structure does not flush any files or subdirectories cached from
4438                   it.</P
4439 ></DD
4440 ></DL
4441 ></DIV
4442 ></P
4443 ></LI
4444 ></OL
4445 ></DIV
4446 ><DIV
4447 CLASS="sect2"
4448 ><H2
4449 CLASS="sect2"
4450 ><A
4451 NAME="Header_467"
4452 >To flush all data from a volume</A
4453 ></H2
4454 ><OL
4455 TYPE="1"
4456 ><LI
4457 ><P
4458 >Issue the <SPAN
4459 CLASS="bold"
4460 ><B
4461 CLASS="emphasis"
4462 >fs flushvolume</B
4463 ></SPAN
4464 > command. <PRE
4465 CLASS="programlisting"
4466 >&#13;  % <SPAN
4467 CLASS="bold"
4468 ><B
4469 CLASS="emphasis"
4470 >fs flushvolume</B
4471 ></SPAN
4472 > [&#60;<VAR
4473 CLASS="replaceable"
4474 >dir/file path</VAR
4475 >&#62;+]
4476 </PRE
4477 ></P
4478 ><P
4479 >where <DIV
4480 CLASS="variablelist"
4481 ><DL
4482 ><DT
4483 ><SPAN
4484 CLASS="bold"
4485 ><B
4486 CLASS="emphasis"
4487 >flushv</B
4488 ></SPAN
4489 ></DT
4490 ><DD
4491 ><P
4492 >Is the shortest acceptable abbreviation of <SPAN
4493 CLASS="bold"
4494 ><B
4495 CLASS="emphasis"
4496 >flushvolume</B
4497 ></SPAN
4498 >.</P
4499 ></DD
4500 ><DT
4501 ><SPAN
4502 CLASS="bold"
4503 ><B
4504 CLASS="emphasis"
4505 >dir/file path</B
4506 ></SPAN
4507 ></DT
4508 ><DD
4509 ><P
4510 >Names a file or directory from each volume to flush from the cache. The Cache Manager flushes everything in
4511                   the cache that it has fetched from the same volume. Omit this argument to flush all cached data fetched from the
4512                   volume that contains the current working directory.</P
4513 ></DD
4514 ></DL
4515 ></DIV
4516 ></P
4517 ></LI
4518 ></OL
4519 ></DIV
4520 ><DIV
4521 CLASS="sect2"
4522 ><H2
4523 CLASS="sect2"
4524 ><A
4525 NAME="Header_468"
4526 >To force the Cache Manager to notice other volume changes</A
4527 ></H2
4528 ><OL
4529 TYPE="1"
4530 ><LI
4531 ><P
4532 >Issue the <SPAN
4533 CLASS="bold"
4534 ><B
4535 CLASS="emphasis"
4536 >fs checkvolumes</B
4537 ></SPAN
4538 > command. <PRE
4539 CLASS="programlisting"
4540 >&#13;   % <SPAN
4541 CLASS="bold"
4542 ><B
4543 CLASS="emphasis"
4544 >fs checkvolumes</B
4545 ></SPAN
4546 >
4547 </PRE
4548 ></P
4549 ><P
4550 >where <SPAN
4551 CLASS="bold"
4552 ><B
4553 CLASS="emphasis"
4554 >checkv</B
4555 ></SPAN
4556 > is the shortest acceptable abbreviation of <SPAN
4557 CLASS="bold"
4558 ><B
4559 CLASS="emphasis"
4560 >checkvolumes</B
4561 ></SPAN
4562 >.</P
4563 ></LI
4564 ></OL
4565 ><P
4566 >The following command confirms that the command completed successfully:</P
4567 ><PRE
4568 CLASS="programlisting"
4569 >&#13;   All volumeID/name mappings checked.
4570 </PRE
4571 ></DIV
4572 ><DIV
4573 CLASS="sect2"
4574 ><H2
4575 CLASS="sect2"
4576 ><A
4577 NAME="HDRWQ413"
4578 >To flush one or more mount points</A
4579 ></H2
4580 ><OL
4581 TYPE="1"
4582 ><LI
4583 ><P
4584 >Issue the <SPAN
4585 CLASS="bold"
4586 ><B
4587 CLASS="emphasis"
4588 >fs flushmount</B
4589 ></SPAN
4590 > command. <PRE
4591 CLASS="programlisting"
4592 >&#13;   % <SPAN
4593 CLASS="bold"
4594 ><B
4595 CLASS="emphasis"
4596 >fs flush</B
4597 ></SPAN
4598 > [&#60;<VAR
4599 CLASS="replaceable"
4600 >dir/file path</VAR
4601 >&#62;+]
4602 </PRE
4603 ></P
4604 ><P
4605 >where <DIV
4606 CLASS="variablelist"
4607 ><DL
4608 ><DT
4609 ><SPAN
4610 CLASS="bold"
4611 ><B
4612 CLASS="emphasis"
4613 >flushm</B
4614 ></SPAN
4615 ></DT
4616 ><DD
4617 ><P
4618 >Is the shortest acceptable abbreviation of <SPAN
4619 CLASS="bold"
4620 ><B
4621 CLASS="emphasis"
4622 >flushmount</B
4623 ></SPAN
4624 >.</P
4625 ></DD
4626 ><DT
4627 ><SPAN
4628 CLASS="bold"
4629 ><B
4630 CLASS="emphasis"
4631 >dir/file path</B
4632 ></SPAN
4633 ></DT
4634 ><DD
4635 ><P
4636 >Names each mount point to flush from the cache. Omit this argument to flush the current working directory.
4637                   Files or subdirectories cached from the associated volume are unaffected.</P
4638 ></DD
4639 ></DL
4640 ></DIV
4641 ></P
4642 ></LI
4643 ></OL
4644 ></DIV
4645 ></DIV
4646 ><DIV
4647 CLASS="sect1"
4648 ><H1
4649 CLASS="sect1"
4650 ><A
4651 NAME="HDRWQ414"
4652 >Maintaining Server Preference Ranks</A
4653 ></H1
4654 ><P
4655 >As mentioned in the introduction to this chapter, AFS uses client-side data caching and callbacks to reduce the amount of
4656     network traffic in your cell. The Cache Manager also tries to make its use of the network as efficient as possible by assigning
4657     <SPAN
4658 CLASS="emphasis"
4659 ><I
4660 CLASS="emphasis"
4661 >preference ranks</I
4662 ></SPAN
4663 > to server machines based on their network proximity to the local machine. The ranks bias
4664     the Cache Manager to fetch information from the server machines that are on its own subnetwork or network rather than on other
4665     networks, if possible. Reducing the network distance that data travels between client and server machine tends to reduce network
4666     traffic and speed the Cache Manager's delivery of data to applications.</P
4667 ><P
4668 >The Cache Manager stores two separate sets of preference ranks in kernel memory. The first set of ranks applies to
4669     machines that run the Volume Location (VL) Server process, hereafter referred to as <SPAN
4670 CLASS="emphasis"
4671 ><I
4672 CLASS="emphasis"
4673 >VL Server machines</I
4674 ></SPAN
4675 >. The
4676     second set of ranks applies to machines that run the File Server process, hereafter referred to as <SPAN
4677 CLASS="emphasis"
4678 ><I
4679 CLASS="emphasis"
4680 >file server
4681     machines</I
4682 ></SPAN
4683 >. This section explains how the Cache Manager sets default ranks, how to use the <SPAN
4684 CLASS="bold"
4685 ><B
4686 CLASS="emphasis"
4687 >fs
4688     setserverprefs</B
4689 ></SPAN
4690 > command to change the defaults or set new ranks, and how to use the <SPAN
4691 CLASS="bold"
4692 ><B
4693 CLASS="emphasis"
4694 >fs
4695     getserverprefs</B
4696 ></SPAN
4697 > command to display the current set of ranks.</P
4698 ><DIV
4699 CLASS="sect2"
4700 ><H2
4701 CLASS="sect2"
4702 ><A
4703 NAME="Header_471"
4704 >How the Cache Manager Sets Default Ranks</A
4705 ></H2
4706 ><P
4707 >As the <SPAN
4708 CLASS="bold"
4709 ><B
4710 CLASS="emphasis"
4711 >afsd</B
4712 ></SPAN
4713 > program initializes the Cache Manager, it assigns a preference rank of
4714       10,000 to each of the VL Server machines listed in the local <SPAN
4715 CLASS="bold"
4716 ><B
4717 CLASS="emphasis"
4718 >/usr/vice/etc/CellServDB</B
4719 ></SPAN
4720 > file.
4721       It then randomizes the ranks by adding an integer randomly chosen from the range 0 (zero) to 126. It avoids assigning the same
4722       rank to machines in one cell, but it is possible for machines from different cells to have the same rank. This does not
4723       present a problem in use, because the Cache Manager compares the ranks of only one cell's database server machines at a time.
4724       Although AFS supports the use of multihomed database server machines, the Cache Manager only uses the single address listed
4725       for each database server machine in the local <SPAN
4726 CLASS="bold"
4727 ><B
4728 CLASS="emphasis"
4729 >/usr/vice/etc/CellServDB</B
4730 ></SPAN
4731 > file. Only Ubik can
4732       take advantage of a multihomed database server machine's multiple interfaces.</P
4733 ><P
4734 >The Cache Manager assigns preference ranks to a file server machine when it obtains the server's VLDB record from the VL
4735       Server, the first time that it accesses a volume that resides on the machine. If the machine is multihomed, the Cache Manager
4736       assigns a distinct rank to each of its interfaces (up to the number of interfaces that the VLDB can store for each machine,
4737       which is specified in the <SPAN
4738 CLASS="emphasis"
4739 ><I
4740 CLASS="emphasis"
4741 >IBM AFS Release Notes</I
4742 ></SPAN
4743 >). The Cache Manager compares the interface's IP address
4744       to the local machine's address and applies the following algorithm: <UL
4745 ><LI
4746 ><P
4747 >If the local machine is a file server machine, the base rank for each of its interfaces is 5,000.</P
4748 ></LI
4749 ><LI
4750 ><P
4751 >If the file server machine interface is on the same subnetwork as the local machine, its base rank is
4752             20,000.</P
4753 ></LI
4754 ><LI
4755 ><P
4756 >If the file server machine interface is on the same network as the local machine, or is at the distant end of a
4757             point-to-point link with the local machine, its base rank is 30,000.</P
4758 ></LI
4759 ><LI
4760 ><P
4761 >If the file server machine interface is on a different network than the local machine, or the Cache Manager cannot
4762             obtain network information about it, its base rank is 40,000.</P
4763 ></LI
4764 ></UL
4765 ></P
4766 ><P
4767 >If the client machine has only one interface, the Cache Manager compares it to the server interface's IP address and
4768       sets a rank according to the algorithm. If the client machine is multihomed, the Cache Manager compares each of the local
4769       interface addresses to the server interface, and assigns to the server interface the lowest rank that results from comparing
4770       it to all of the client interfaces.</P
4771 ><P
4772 >After assigning a base rank to a file server machine interface, the Cache Manager adds to it a number randomly chosen
4773       from the range 0 (zero) to 15. As an example, a file server machine interface in the same subnetwork as the local machine
4774       receives a base rank of 20,000, but the Cache Manager records the actual rank as an integer between 20,000 and 20,015. This
4775       process reduces the number of interfaces that have exactly the same rank. As with VL Server machine ranks, it is possible for
4776       file server machine interfaces from foreign cells to have the same rank as interfaces in the local cell, but this does not
4777       present a problem. Only the relative ranks of the interfaces that house a specific volume are relevant, and AFS supports
4778       storage of a volume in only one cell at a time.</P
4779 ></DIV
4780 ><DIV
4781 CLASS="sect2"
4782 ><H2
4783 CLASS="sect2"
4784 ><A
4785 NAME="Header_472"
4786 >How the Cache Manager Uses Preference Ranks</A
4787 ></H2
4788 ><P
4789 >Each preference rank pairs an interface's IP address with an integer that can range from 1 to 65,534. A lower rank
4790       (lower number) indicates a stronger preference. Once set, a rank persists until the machine reboots, or until you use the
4791       <SPAN
4792 CLASS="bold"
4793 ><B
4794 CLASS="emphasis"
4795 >fs setserverprefs</B
4796 ></SPAN
4797 > command to change it.</P
4798 ><P
4799 >The Cache Manager uses VL Server machine ranks when it needs to fetch volume location information from a cell. It
4800       compares the ranks for the cell's VL Server machines and attempts to contact the VL Server process on the machine with the
4801       best (lowest integer) rank. If it cannot reach that VL Server, it tries to contact the VL Server with the next best rank, and
4802       so on. If all of a cell's VL Server machines are inaccessible, the Cache Manager cannot fetch data from the cell.</P
4803 ><P
4804 >Similarly, when the Cache Manager needs to fetch data from a volume, it compares the ranks for the interfaces of
4805       machines that house the volume, and attempts to contact the interface that has the best rank. If it cannot reach the <SPAN
4806 CLASS="bold"
4807 ><B
4808 CLASS="emphasis"
4809 >fileserver</B
4810 ></SPAN
4811 > process via that interface, it tries to contact the interface with the next best integer
4812       rank, and so on. If it cannot reach any of the interfaces for machines that house the volume, it cannot fetch data from the
4813       volume.</P
4814 ></DIV
4815 ><DIV
4816 CLASS="sect2"
4817 ><H2
4818 CLASS="sect2"
4819 ><A
4820 NAME="Header_473"
4821 >Displaying and Setting Preference Ranks</A
4822 ></H2
4823 ><P
4824 >To display the file server machine ranks that the Cache Manager is using, use the <SPAN
4825 CLASS="bold"
4826 ><B
4827 CLASS="emphasis"
4828 >fs
4829       getserverprefs</B
4830 ></SPAN
4831 > command. Include the <SPAN
4832 CLASS="bold"
4833 ><B
4834 CLASS="emphasis"
4835 >-vlservers</B
4836 ></SPAN
4837 > flag to display VL Server machine
4838       ranks instead. By default, the output appears on the standard output stream (stdout), but you can write it to a file instead
4839       by including the <SPAN
4840 CLASS="bold"
4841 ><B
4842 CLASS="emphasis"
4843 >-file</B
4844 ></SPAN
4845 > argument.</P
4846 ><P
4847 >The Cache Manager stores IP addresses rather than hostnames in its kernel list of ranks, but by default the output
4848       identifies interfaces by hostname after calling a translation routine that refers to either the cell's name service (such as
4849       the Domain Name Server) or the local host table. If an IP address appears in this case, it is because the translation attempt
4850       failed. To bypass the translation step and display IP addresses rather than hostnames, include the <SPAN
4851 CLASS="bold"
4852 ><B
4853 CLASS="emphasis"
4854 >-numeric</B
4855 ></SPAN
4856 > flag. This can significantly speed up the output.</P
4857 ><P
4858 >You can use the <SPAN
4859 CLASS="bold"
4860 ><B
4861 CLASS="emphasis"
4862 >fs setserverprefs</B
4863 ></SPAN
4864 > command to reset an existing preference rank, or to
4865       set the initial rank of a file server machine interface or VL Server machine for which the Cache Manager has no rank. The
4866       ranks you set persist until the machine reboots or until you issue the <SPAN
4867 CLASS="bold"
4868 ><B
4869 CLASS="emphasis"
4870 >fs setserverprefs</B
4871 ></SPAN
4872 >
4873       command again. To make a rank persist across a reboot, place the appropriate <SPAN
4874 CLASS="bold"
4875 ><B
4876 CLASS="emphasis"
4877 >fs
4878       setserverprefs</B
4879 ></SPAN
4880 > command in the machine's AFS initialization file.</P
4881 ><P
4882 >As with default ranks, the Cache Manager adds a randomly chosen integer to each rank range that you assign. For file
4883       server machine interfaces, the randomizing number is from the range 0 (zero) to 15; for VL Server machines, it is from the
4884       range 0 (zero) to 126. For example, if you assign a rank of 15,000 to a file server machine interface, the Cache Manager
4885       stores an integer between 15,000 to 15,015.</P
4886 ><P
4887 >To assign VL Server machine ranks, list them after the <SPAN
4888 CLASS="bold"
4889 ><B
4890 CLASS="emphasis"
4891 >-vlserver</B
4892 ></SPAN
4893 > argument to the
4894       <SPAN
4895 CLASS="bold"
4896 ><B
4897 CLASS="emphasis"
4898 >fs setserverprefs</B
4899 ></SPAN
4900 > command.</P
4901 ><P
4902 >To assign file server machine ranks, use or more of the three possible methods: <OL
4903 TYPE="1"
4904 ><LI
4905 ><P
4906 >List them after the <SPAN
4907 CLASS="bold"
4908 ><B
4909 CLASS="emphasis"
4910 >-servers</B
4911 ></SPAN
4912 > argument on the command line.</P
4913 ></LI
4914 ><LI
4915 ><P
4916 >Record them in a file and name it with the <SPAN
4917 CLASS="bold"
4918 ><B
4919 CLASS="emphasis"
4920 >-file</B
4921 ></SPAN
4922 > argument. You can easily
4923             generate a file with the proper format by including the <SPAN
4924 CLASS="bold"
4925 ><B
4926 CLASS="emphasis"
4927 >-file</B
4928 ></SPAN
4929 > argument to the <SPAN
4930 CLASS="bold"
4931 ><B
4932 CLASS="emphasis"
4933 >fs getserverprefs</B
4934 ></SPAN
4935 > command.</P
4936 ></LI
4937 ><LI
4938 ><P
4939 >Provide them via the standard input stream, by including the <SPAN
4940 CLASS="bold"
4941 ><B
4942 CLASS="emphasis"
4943 >-stdin</B
4944 ></SPAN
4945 > flag. This
4946             enables you to feed in values directly from a command or script that generates preferences using an algorithm
4947             appropriate for your cell. It must generate them in the proper format, with one or more spaces between each pair and
4948             between the two parts of the pair. The AFS distribution does not include such a script, so you must write one if you
4949             want to use this method.</P
4950 ></LI
4951 ></OL
4952 ></P
4953 ><P
4954 >You can combine any of the <SPAN
4955 CLASS="bold"
4956 ><B
4957 CLASS="emphasis"
4958 >-servers</B
4959 ></SPAN
4960 >, <SPAN
4961 CLASS="bold"
4962 ><B
4963 CLASS="emphasis"
4964 >-file</B
4965 ></SPAN
4966 >, and
4967       <SPAN
4968 CLASS="bold"
4969 ><B
4970 CLASS="emphasis"
4971 >-stdin</B
4972 ></SPAN
4973 > options on the same command line if you wish. If more than one of them specifies a
4974       rank for the same interface, the one assigned with the <SPAN
4975 CLASS="bold"
4976 ><B
4977 CLASS="emphasis"
4978 >-servers</B
4979 ></SPAN
4980 > argument takes precedence.
4981       You can also provide the <SPAN
4982 CLASS="bold"
4983 ><B
4984 CLASS="emphasis"
4985 >-vlservers</B
4986 ></SPAN
4987 > argument on the same command line to set VL Server
4988       machine ranks at the same time as file server machine ranks.</P
4989 ><P
4990 >The <SPAN
4991 CLASS="bold"
4992 ><B
4993 CLASS="emphasis"
4994 >fs</B
4995 ></SPAN
4996 > command interpreter does not verify hostnames or IP addresses, and so willingly
4997       stores ranks for hostnames and addresses that don't actually exist. The Cache Manager never uses such ranks unless the same
4998       VLDB record for a server machine records the same incorrect information.  </P
4999 ></DIV
5000 ><DIV
5001 CLASS="sect2"
5002 ><H2
5003 CLASS="sect2"
5004 ><A
5005 NAME="Header_474"
5006 >To display server preference ranks</A
5007 ></H2
5008 ><OL
5009 TYPE="1"
5010 ><LI
5011 ><P
5012 >Issue the <SPAN
5013 CLASS="bold"
5014 ><B
5015 CLASS="emphasis"
5016 >fs getserverprefs</B
5017 ></SPAN
5018 > command to display the Cache Manager's preference ranks
5019           for file server machines or VL Server machines. <PRE
5020 CLASS="programlisting"
5021 >&#13;   % <SPAN
5022 CLASS="bold"
5023 ><B
5024 CLASS="emphasis"
5025 >fs getserverprefs</B
5026 ></SPAN
5027 > [<SPAN
5028 CLASS="bold"
5029 ><B
5030 CLASS="emphasis"
5031 >-file</B
5032 ></SPAN
5033 > &#60;<VAR
5034 CLASS="replaceable"
5035 >output to named file</VAR
5036 >&#62;] [<SPAN
5037 CLASS="bold"
5038 ><B
5039 CLASS="emphasis"
5040 >-numeric</B
5041 ></SPAN
5042 >] [<SPAN
5043 CLASS="bold"
5044 ><B
5045 CLASS="emphasis"
5046 >-vlservers</B
5047 ></SPAN
5048 >]
5049 </PRE
5050 ></P
5051 ><P
5052 >where <DIV
5053 CLASS="variablelist"
5054 ><DL
5055 ><DT
5056 ><SPAN
5057 CLASS="bold"
5058 ><B
5059 CLASS="emphasis"
5060 >gp</B
5061 ></SPAN
5062 ></DT
5063 ><DD
5064 ><P
5065 >Is an acceptable alias for <SPAN
5066 CLASS="bold"
5067 ><B
5068 CLASS="emphasis"
5069 >getserverprefs</B
5070 ></SPAN
5071 > (<SPAN
5072 CLASS="bold"
5073 ><B
5074 CLASS="emphasis"
5075 >gets</B
5076 ></SPAN
5077 > is the shortest acceptable abbreviation).</P
5078 ></DD
5079 ><DT
5080 ><SPAN
5081 CLASS="bold"
5082 ><B
5083 CLASS="emphasis"
5084 >-file</B
5085 ></SPAN
5086 ></DT
5087 ><DD
5088 ><P
5089 >Specifies the pathname of the file to which to write the list of ranks. Omit this argument to display the
5090                   list on the standard output stream (stdout).</P
5091 ></DD
5092 ><DT
5093 ><SPAN
5094 CLASS="bold"
5095 ><B
5096 CLASS="emphasis"
5097 >-numeric</B
5098 ></SPAN
5099 ></DT
5100 ><DD
5101 ><P
5102 >Displays the IP address, rather than the hostname, of each ranked machine interface. Omit this flag to have
5103                   the addresses translated into hostnames, which takes longer.</P
5104 ></DD
5105 ><DT
5106 ><SPAN
5107 CLASS="bold"
5108 ><B
5109 CLASS="emphasis"
5110 >-vlservers</B
5111 ></SPAN
5112 ></DT
5113 ><DD
5114 ><P
5115 >Displays ranks for VL Server machines rather than file server machines.</P
5116 ></DD
5117 ></DL
5118 ></DIV
5119 ></P
5120 ><P
5121 >The following example displays file server machine ranks. The <SPAN
5122 CLASS="bold"
5123 ><B
5124 CLASS="emphasis"
5125 >-numeric</B
5126 ></SPAN
5127 > flag is not
5128           used, so the appearance of an IP address indicates that is not currently possible to translate it to a hostname.</P
5129 ><PRE
5130 CLASS="programlisting"
5131 >&#13;   % <SPAN
5132 CLASS="bold"
5133 ><B
5134 CLASS="emphasis"
5135 >fs gp</B
5136 ></SPAN
5137 >
5138    fs5.abc.com         20000
5139    fs1.abc.com         30014
5140    server1.stateu.edu  40011
5141    fs3.abc.com         20001
5142    fs4.abc.com         30001
5143    192.12.106.120      40002
5144    192.12.106.119      40001
5145       .   .   .   .   .     . .
5146 </PRE
5147 ></LI
5148 ></OL
5149 ></DIV
5150 ><DIV
5151 CLASS="sect2"
5152 ><H2
5153 CLASS="sect2"
5154 ><A
5155 NAME="Header_475"
5156 >To set server preference ranks</A
5157 ></H2
5158 ><OL
5159 TYPE="1"
5160 ><LI
5161 ><P
5162 >Become the local superuser <SPAN
5163 CLASS="bold"
5164 ><B
5165 CLASS="emphasis"
5166 >root</B
5167 ></SPAN
5168 > on the machine, if you are not already, by issuing
5169           the <SPAN
5170 CLASS="bold"
5171 ><B
5172 CLASS="emphasis"
5173 >su</B
5174 ></SPAN
5175 > command. <PRE
5176 CLASS="programlisting"
5177 >&#13;   % <SPAN
5178 CLASS="bold"
5179 ><B
5180 CLASS="emphasis"
5181 >su root</B
5182 ></SPAN
5183 >
5184    Password: &#60;<VAR
5185 CLASS="replaceable"
5186 >root_password</VAR
5187 >&#62;
5188 </PRE
5189 ></P
5190 ></LI
5191 ><LI
5192 ><P
5193 >Issue the <SPAN
5194 CLASS="bold"
5195 ><B
5196 CLASS="emphasis"
5197 >fs setserverprefs</B
5198 ></SPAN
5199 > command to set the Cache Manager's preference ranks for
5200           one or more file server machines or VL Server machines. <PRE
5201 CLASS="programlisting"
5202 >&#13;   # <SPAN
5203 CLASS="bold"
5204 ><B
5205 CLASS="emphasis"
5206 >fs setserverprefs</B
5207 ></SPAN
5208 > [<SPAN
5209 CLASS="bold"
5210 ><B
5211 CLASS="emphasis"
5212 >-servers</B
5213 ></SPAN
5214 > &#60;<VAR
5215 CLASS="replaceable"
5216 >fileserver names and ranks</VAR
5217 >&#62;+]  \
5218                        [<SPAN
5219 CLASS="bold"
5220 ><B
5221 CLASS="emphasis"
5222 >-vlservers</B
5223 ></SPAN
5224 > &#60;<VAR
5225 CLASS="replaceable"
5226 >VL server names and ranks</VAR
5227 >&#62;+]  \
5228                        [<SPAN
5229 CLASS="bold"
5230 ><B
5231 CLASS="emphasis"
5232 >-file</B
5233 ></SPAN
5234 > &#60;<VAR
5235 CLASS="replaceable"
5236 >input from named file</VAR
5237 >&#62;] [<SPAN
5238 CLASS="bold"
5239 ><B
5240 CLASS="emphasis"
5241 >-stdin</B
5242 ></SPAN
5243 >]
5244 </PRE
5245 ></P
5246 ><P
5247 >where <DIV
5248 CLASS="variablelist"
5249 ><DL
5250 ><DT
5251 ><SPAN
5252 CLASS="bold"
5253 ><B
5254 CLASS="emphasis"
5255 >sp</B
5256 ></SPAN
5257 ></DT
5258 ><DD
5259 ><P
5260 >Is an acceptable alias for <SPAN
5261 CLASS="bold"
5262 ><B
5263 CLASS="emphasis"
5264 >setserverprefs</B
5265 ></SPAN
5266 > (<SPAN
5267 CLASS="bold"
5268 ><B
5269 CLASS="emphasis"
5270 >sets</B
5271 ></SPAN
5272 > is the shortest acceptable abbreviation).</P
5273 ></DD
5274 ><DT
5275 ><SPAN
5276 CLASS="bold"
5277 ><B
5278 CLASS="emphasis"
5279 >-servers</B
5280 ></SPAN
5281 ></DT
5282 ><DD
5283 ><P
5284 >Specifies one or more pairs of file server machine interface and rank. Identify each interface by its
5285                   fully-qualified hostname or IP address in dotted decimal format. Acceptable ranks are the integers from <SPAN
5286 CLASS="bold"
5287 ><B
5288 CLASS="emphasis"
5289 >1</B
5290 ></SPAN
5291 > to <SPAN
5292 CLASS="bold"
5293 ><B
5294 CLASS="emphasis"
5295 >65534</B
5296 ></SPAN
5297 >. Separate the parts of a pair, and the pairs
5298                   from one another, with one or more spaces.</P
5299 ></DD
5300 ><DT
5301 ><SPAN
5302 CLASS="bold"
5303 ><B
5304 CLASS="emphasis"
5305 >-vlservers</B
5306 ></SPAN
5307 ></DT
5308 ><DD
5309 ><P
5310 >Specifies one or more pairs of VL Server machine and rank. Identify each machine by its fully-qualified
5311                   hostname or IP address in dotted decimal format. Acceptable ranks are the integers from <SPAN
5312 CLASS="bold"
5313 ><B
5314 CLASS="emphasis"
5315 >1</B
5316 ></SPAN
5317 > to <SPAN
5318 CLASS="bold"
5319 ><B
5320 CLASS="emphasis"
5321 >65534</B
5322 ></SPAN
5323 >.</P
5324 ></DD
5325 ><DT
5326 ><SPAN
5327 CLASS="bold"
5328 ><B
5329 CLASS="emphasis"
5330 >-file</B
5331 ></SPAN
5332 ></DT
5333 ><DD
5334 ><P
5335 >Specifies the pathname of a file that contains one more pairs of file server machine interface and rank.
5336                   Place each pair on its own line in the file. Use the same format for interfaces and ranks as with the <SPAN
5337 CLASS="bold"
5338 ><B
5339 CLASS="emphasis"
5340 >-servers</B
5341 ></SPAN
5342 > argument.</P
5343 ></DD
5344 ><DT
5345 ><SPAN
5346 CLASS="bold"
5347 ><B
5348 CLASS="emphasis"
5349 >-stdin</B
5350 ></SPAN
5351 ></DT
5352 ><DD
5353 ><P
5354 >Indicates that pairs of file server machine interface and rank are being provided via the standard input
5355                   stream (stdin). The program or script that generates the pairs must format them in the same manner as for the
5356                   <SPAN
5357 CLASS="bold"
5358 ><B
5359 CLASS="emphasis"
5360 >-servers</B
5361 ></SPAN
5362 > argument.</P
5363 ></DD
5364 ></DL
5365 ></DIV
5366 ></P
5367 ></LI
5368 ></OL
5369 ></DIV
5370 ></DIV
5371 ><DIV
5372 CLASS="sect1"
5373 ><H1
5374 CLASS="sect1"
5375 ><A
5376 NAME="HDRWQ415"
5377 >Managing Multihomed Client Machines</A
5378 ></H1
5379 ><P
5380 >The File Server can choose the interface to which to send a message when it initiates communication with the Cache Manager
5381     on a multihomed client machine (one with more than one network interface and IP address). If that interface is inaccessible, it
5382     automatically switches to an alternate. This improves AFS performance, because it means that the outage of an interface does not
5383     interrupt communication between File Server and Cache Manager.</P
5384 ><P
5385 >The File Server can choose the client interface when it sends two types of messages: <UL
5386 ><LI
5387 ><P
5388 >A message to break the callback that the Cache Manager holds on a cached file</P
5389 ></LI
5390 ><LI
5391 ><P
5392 >A <SPAN
5393 CLASS="emphasis"
5394 ><I
5395 CLASS="emphasis"
5396 >ping</I
5397 ></SPAN
5398 > message to check that the Cache Manager is still accessible and responding; the File
5399           Server sends such a message every few minutes</P
5400 ></LI
5401 ></UL
5402 ></P
5403 ><P
5404 >(The File Server does not choose which client interface to respond to when filling a Cache Manager's request for AFS data.
5405     In that case, it always responds to the client interface via which the Cache Manager sent the request.)</P
5406 ><P
5407 >The Cache Manager compiles the list of eligible interfaces on its client machine automatically as it initializes, and
5408     records them in kernel memory. When the Cache Manager first establishes a connection with the File Server, it sends along the
5409     list of interface addresses. The File Server records the addresses, and uses the one at the top of the list when it needs to
5410     break a callback or send a ping to the Cache Manager. If that interface is inaccessible, the File Server simultaneously sends a
5411     message to all of the other interfaces in the list. Whichever interface replies first is the one to which the File Server sends
5412     future messages.</P
5413 ><P
5414 >You can control which addresses the Cache Manager registers with File Servers by listing them in two files in the
5415     <SPAN
5416 CLASS="bold"
5417 ><B
5418 CLASS="emphasis"
5419 >/usr/vice/etc</B
5420 ></SPAN
5421 > directory on the client machine's local disk: <SPAN
5422 CLASS="bold"
5423 ><B
5424 CLASS="emphasis"
5425 >NetInfo</B
5426 ></SPAN
5427 > and <SPAN
5428 CLASS="bold"
5429 ><B
5430 CLASS="emphasis"
5431 >NetRestrict</B
5432 ></SPAN
5433 >. If the <SPAN
5434 CLASS="bold"
5435 ><B
5436 CLASS="emphasis"
5437 >NetInfo</B
5438 ></SPAN
5439 >
5440     file exists when the Cache Manager initializes, the Cache Manager uses its contents as the basis for the list of interfaces.
5441     Otherwise, the Cache Manager uses the list of interfaces configured with the operating system. It then removes from the list any
5442     addresses that appear in the <SPAN
5443 CLASS="bold"
5444 ><B
5445 CLASS="emphasis"
5446 >/usr/vice/etc/NetRestrict</B
5447 ></SPAN
5448 > file, if it exists. The Cache Manager
5449     records the resulting list in kernel memory.</P
5450 ><P
5451 >You can also use the <SPAN
5452 CLASS="bold"
5453 ><B
5454 CLASS="emphasis"
5455 >fs setclientaddrs</B
5456 ></SPAN
5457 > command to change the list of addresses stored in
5458     the Cache Manager's kernel memory, without rebooting the client machine. The list of addresses you provide on the command line
5459     completely replaces the current list in kernel memory. The changes you make persist only until the client machine reboots,
5460     however. To preserve the revised list across reboots, list the interfaces in the <SPAN
5461 CLASS="bold"
5462 ><B
5463 CLASS="emphasis"
5464 >NetInfo</B
5465 ></SPAN
5466 > file
5467     (and if appropriate, the <SPAN
5468 CLASS="bold"
5469 ><B
5470 CLASS="emphasis"
5471 >NetRestrict</B
5472 ></SPAN
5473 > file) in the local <SPAN
5474 CLASS="bold"
5475 ><B
5476 CLASS="emphasis"
5477 >/usr/vice/etc</B
5478 ></SPAN
5479 > directory. (You can also place the appropriate <SPAN
5480 CLASS="bold"
5481 ><B
5482 CLASS="emphasis"
5483 >fs
5484     setclientaddrs</B
5485 ></SPAN
5486 > command in the machine's AFS initialization script, but that is less efficient: by the time the Cache
5487     Manager reads the command in the script, it has already compiled a list of interfaces.)</P
5488 ><P
5489 >To display the list of addresses that the Cache Manager is currently registering with File Servers, use the <SPAN
5490 CLASS="bold"
5491 ><B
5492 CLASS="emphasis"
5493 >fs getclientaddrs</B
5494 ></SPAN
5495 > command.</P
5496 ><P
5497 >Keep the following in mind when you change the <SPAN
5498 CLASS="bold"
5499 ><B
5500 CLASS="emphasis"
5501 >NetInfo</B
5502 ></SPAN
5503 > or <SPAN
5504 CLASS="bold"
5505 ><B
5506 CLASS="emphasis"
5507 >NetRestrict</B
5508 ></SPAN
5509 > file, or issue the <SPAN
5510 CLASS="bold"
5511 ><B
5512 CLASS="emphasis"
5513 >fs getclientaddrs</B
5514 ></SPAN
5515 > or <SPAN
5516 CLASS="bold"
5517 ><B
5518 CLASS="emphasis"
5519 >fs setclientaddrs</B
5520 ></SPAN
5521 > commands: <UL
5522 ><LI
5523 ><P
5524 >When you issue the <SPAN
5525 CLASS="bold"
5526 ><B
5527 CLASS="emphasis"
5528 >fs setclientaddrs</B
5529 ></SPAN
5530 > command, the revised list of addresses does
5531           not propagate automatically to File Servers with which the Cache Manager has already established a connection. They
5532           continue to use the list that the Cache Manager registered with them when it first established a connection. To force
5533           previously contacted File Servers to use the revised list, you must either reboot each file server machine, or reboot the
5534           client machine after changing its <SPAN
5535 CLASS="bold"
5536 ><B
5537 CLASS="emphasis"
5538 >NetInfo</B
5539 ></SPAN
5540 > file, <SPAN
5541 CLASS="bold"
5542 ><B
5543 CLASS="emphasis"
5544 >NetRestrict</B
5545 ></SPAN
5546 > file, or both.</P
5547 ></LI
5548 ><LI
5549 ><P
5550 >The <SPAN
5551 CLASS="bold"
5552 ><B
5553 CLASS="emphasis"
5554 >fs</B
5555 ></SPAN
5556 > command interpreter verifies that each of the addresses you specify on the
5557           <SPAN
5558 CLASS="bold"
5559 ><B
5560 CLASS="emphasis"
5561 >fs setclientaddrs</B
5562 ></SPAN
5563 > command line is actually configured with the client machine's operating
5564           system. If it is not, the command fails with an error message that marks the address as a <SAMP
5565 CLASS="computeroutput"
5566 >Nonexistent
5567           interface</SAMP
5568 >.</P
5569 ></LI
5570 ><LI
5571 ><P
5572 >As previously noted, the File Server does not use the registered list of addresses when it responds to the Cache
5573           Manager's request for data (as opposed to initiating communication itself). It always attempts to send its reply to the
5574           interface from which the Cache Manager sent the request. If the reply attempt fails, the File Server selects an alternate
5575           route for resending the reply according to its server machine's network routing configuration, not the list of addresses
5576           registered by the Cache Manager.</P
5577 ></LI
5578 ><LI
5579 ><P
5580 >The Cache Manager does not use the list of interfaces when choosing the interface via which to establish a
5581           connection to a File Server.</P
5582 ></LI
5583 ><LI
5584 ><P
5585 >The list of addresses that the <SPAN
5586 CLASS="bold"
5587 ><B
5588 CLASS="emphasis"
5589 >fs getclientaddrs</B
5590 ></SPAN
5591 > command displays is not
5592           necessarily the one that a specific File Server is using, if an administrator has issued the <SPAN
5593 CLASS="bold"
5594 ><B
5595 CLASS="emphasis"
5596 >fs
5597           setclientaddrs</B
5598 ></SPAN
5599 > command since the Cache Manager first contacted that File Server. It determines only which
5600           addresses the Cache Manager registers when connecting to File Servers in future.</P
5601 ></LI
5602 ></UL
5603 ></P
5604 ><DIV
5605 CLASS="sect2"
5606 ><H2
5607 CLASS="sect2"
5608 ><A
5609 NAME="Header_477"
5610 >To create or edit the client NetInfo file</A
5611 ></H2
5612 ><OL
5613 TYPE="1"
5614 ><LI
5615 ><P
5616 >Become the local superuser <SPAN
5617 CLASS="bold"
5618 ><B
5619 CLASS="emphasis"
5620 >root</B
5621 ></SPAN
5622 > on the machine, if you are not already, by issuing
5623           the <SPAN
5624 CLASS="bold"
5625 ><B
5626 CLASS="emphasis"
5627 >su</B
5628 ></SPAN
5629 > command. <PRE
5630 CLASS="programlisting"
5631 >&#13;   % <SPAN
5632 CLASS="bold"
5633 ><B
5634 CLASS="emphasis"
5635 >su root</B
5636 ></SPAN
5637 >
5638    Password: &#60;<VAR
5639 CLASS="replaceable"
5640 >root_password</VAR
5641 >&#62;
5642 </PRE
5643 ></P
5644 ></LI
5645 ><LI
5646 ><P
5647 >Using a text editor, open the <SPAN
5648 CLASS="bold"
5649 ><B
5650 CLASS="emphasis"
5651 >/usr/vice/etc/NetInfo</B
5652 ></SPAN
5653 > file. Place one IP address in
5654           dotted decimal format (for example, <SAMP
5655 CLASS="computeroutput"
5656 >192.12.107.33</SAMP
5657 >) on each line. On the first line, put
5658           the address that you want each File Server to use initially. The order of the remaining machines does not matter, because
5659           if an RPC to the first interface fails, the File Server simultaneously sends RPCs to all of the other interfaces in the
5660           list. Whichever interface replies first is the one to which the File Server then sends pings and RPCs to break
5661           callbacks.</P
5662 ></LI
5663 ><LI
5664 ><P
5665 >If you want the Cache Manager to start using the revised list immediately, either reboot the machine, or use the
5666           <SPAN
5667 CLASS="bold"
5668 ><B
5669 CLASS="emphasis"
5670 >fs setclientaddrs</B
5671 ></SPAN
5672 > command to create the same list of addresses in kernel memory
5673           directly.</P
5674 ></LI
5675 ></OL
5676 ></DIV
5677 ><DIV
5678 CLASS="sect2"
5679 ><H2
5680 CLASS="sect2"
5681 ><A
5682 NAME="Header_478"
5683 >To create or edit the client NetRestrict file</A
5684 ></H2
5685 ><OL
5686 TYPE="1"
5687 ><LI
5688 ><P
5689 >Become the local superuser <SPAN
5690 CLASS="bold"
5691 ><B
5692 CLASS="emphasis"
5693 >root</B
5694 ></SPAN
5695 > on the machine, if you are not already, by issuing
5696           the <SPAN
5697 CLASS="bold"
5698 ><B
5699 CLASS="emphasis"
5700 >su</B
5701 ></SPAN
5702 > command. <PRE
5703 CLASS="programlisting"
5704 >&#13;   % <SPAN
5705 CLASS="bold"
5706 ><B
5707 CLASS="emphasis"
5708 >su root</B
5709 ></SPAN
5710 >
5711    Password: &#60;<VAR
5712 CLASS="replaceable"
5713 >root_password</VAR
5714 >&#62;
5715 </PRE
5716 ></P
5717 ></LI
5718 ><LI
5719 ><P
5720 >Using a text editor, open the <SPAN
5721 CLASS="bold"
5722 ><B
5723 CLASS="emphasis"
5724 >/usr/vice/etc/NetRestrict</B
5725 ></SPAN
5726 > file. Place one IP address
5727           in dotted decimal format on each line. The order of the addresses is not significant. Use the value <SPAN
5728 CLASS="bold"
5729 ><B
5730 CLASS="emphasis"
5731 >255</B
5732 ></SPAN
5733 > as a wildcard that represents all possible addresses in that field. For example, the entry
5734           <SAMP
5735 CLASS="computeroutput"
5736 >192.12.105.255</SAMP
5737 > indicates that the Cache Manager does not register any of the addresses in
5738           the 192.12.105 subnet.</P
5739 ></LI
5740 ><LI
5741 ><P
5742 >If you want the Cache Manager to start using the revised list immediately, either reboot the machine, or use the
5743           <SPAN
5744 CLASS="bold"
5745 ><B
5746 CLASS="emphasis"
5747 >fs setclientaddrs</B
5748 ></SPAN
5749 > command to set a list of addresses that does not included the
5750           prohibited ones.</P
5751 ></LI
5752 ></OL
5753 ></DIV
5754 ><DIV
5755 CLASS="sect2"
5756 ><H2
5757 CLASS="sect2"
5758 ><A
5759 NAME="Header_479"
5760 >To display the list of addresses from kernel memory</A
5761 ></H2
5762 ><OL
5763 TYPE="1"
5764 ><LI
5765 ><P
5766 >Issue the <SPAN
5767 CLASS="bold"
5768 ><B
5769 CLASS="emphasis"
5770 >fs getclientaddrs</B
5771 ></SPAN
5772 > command. <PRE
5773 CLASS="programlisting"
5774 >&#13;   % <SPAN
5775 CLASS="bold"
5776 ><B
5777 CLASS="emphasis"
5778 >fs getclientaddrs</B
5779 ></SPAN
5780
5781 </PRE
5782 ></P
5783 ><P
5784 >where <SPAN
5785 CLASS="bold"
5786 ><B
5787 CLASS="emphasis"
5788 >gc</B
5789 ></SPAN
5790 > is an acceptable alias for <SPAN
5791 CLASS="bold"
5792 ><B
5793 CLASS="emphasis"
5794 >getclientaddrs</B
5795 ></SPAN
5796 >
5797           (<SPAN
5798 CLASS="bold"
5799 ><B
5800 CLASS="emphasis"
5801 >getcl</B
5802 ></SPAN
5803 > is the shortest acceptable abbreviation).</P
5804 ></LI
5805 ></OL
5806 ><P
5807 >The output lists each IP address on its own line, in dotted decimal format.  </P
5808 ></DIV
5809 ><DIV
5810 CLASS="sect2"
5811 ><H2
5812 CLASS="sect2"
5813 ><A
5814 NAME="Header_480"
5815 >To set the list of addresses in kernel memory</A
5816 ></H2
5817 ><OL
5818 TYPE="1"
5819 ><LI
5820 ><P
5821 >Become the local superuser <SPAN
5822 CLASS="bold"
5823 ><B
5824 CLASS="emphasis"
5825 >root</B
5826 ></SPAN
5827 > on the machine, if you are not already, by issuing
5828           the <SPAN
5829 CLASS="bold"
5830 ><B
5831 CLASS="emphasis"
5832 >su</B
5833 ></SPAN
5834 > command. <PRE
5835 CLASS="programlisting"
5836 >&#13;   % <SPAN
5837 CLASS="bold"
5838 ><B
5839 CLASS="emphasis"
5840 >su root</B
5841 ></SPAN
5842 >
5843    Password: &#60;<VAR
5844 CLASS="replaceable"
5845 >root_password</VAR
5846 >&#62;
5847 </PRE
5848 ></P
5849 ></LI
5850 ><LI
5851 ><P
5852 >Issue the <SPAN
5853 CLASS="bold"
5854 ><B
5855 CLASS="emphasis"
5856 >fs setclientaddrs</B
5857 ></SPAN
5858 > command to replace the list of addresses currently in
5859           kernel memory with a new list. <PRE
5860 CLASS="programlisting"
5861 >&#13;   # <SPAN
5862 CLASS="bold"
5863 ><B
5864 CLASS="emphasis"
5865 >fs setclientaddrs</B
5866 ></SPAN
5867 > [<SPAN
5868 CLASS="bold"
5869 ><B
5870 CLASS="emphasis"
5871 >-address</B
5872 ></SPAN
5873 > &#60;<VAR
5874 CLASS="replaceable"
5875 >client network interfaces</VAR
5876 >&#62;+]
5877 </PRE
5878 ></P
5879 ><P
5880 >where <DIV
5881 CLASS="variablelist"
5882 ><DL
5883 ><DT
5884 ><SPAN
5885 CLASS="bold"
5886 ><B
5887 CLASS="emphasis"
5888 >sc</B
5889 ></SPAN
5890 ></DT
5891 ><DD
5892 ><P
5893 >Is an acceptable alias for <SPAN
5894 CLASS="bold"
5895 ><B
5896 CLASS="emphasis"
5897 >setclientaddrs</B
5898 ></SPAN
5899 > (<SPAN
5900 CLASS="bold"
5901 ><B
5902 CLASS="emphasis"
5903 >setcl</B
5904 ></SPAN
5905 > is the shortest acceptable abbreviation).</P
5906 ></DD
5907 ><DT
5908 ><SPAN
5909 CLASS="bold"
5910 ><B
5911 CLASS="emphasis"
5912 >-address</B
5913 ></SPAN
5914 ></DT
5915 ><DD
5916 ><P
5917 >Specifies one or more IP addresses in dotted decimal format (hostnames are not acceptable). Separate each
5918                   address with one or more spaces.</P
5919 ></DD
5920 ></DL
5921 ></DIV
5922 ></P
5923 ></LI
5924 ></OL
5925 ></DIV
5926 ></DIV
5927 ><DIV
5928 CLASS="sect1"
5929 ><H1
5930 CLASS="sect1"
5931 ><A
5932 NAME="HDRWQ416"
5933 >Controlling the Display of Warning and Informational Messages</A
5934 ></H1
5935 ><P
5936 >By default, the Cache Manager generates two types of warning and informational messages: <UL
5937 ><LI
5938 ><P
5939 >It sends <SPAN
5940 CLASS="emphasis"
5941 ><I
5942 CLASS="emphasis"
5943 >user messages</I
5944 ></SPAN
5945 >, which provide user-level status and warning information, to user
5946           screens.</P
5947 ></LI
5948 ><LI
5949 ><P
5950 >It sends <SPAN
5951 CLASS="emphasis"
5952 ><I
5953 CLASS="emphasis"
5954 >console messages</I
5955 ></SPAN
5956 >, which provide system-level status and warning information, to the
5957           client machine's designated console.</P
5958 ></LI
5959 ></UL
5960 ></P
5961 ><P
5962 >You can use the <SPAN
5963 CLASS="bold"
5964 ><B
5965 CLASS="emphasis"
5966 >fs messages</B
5967 ></SPAN
5968 > command to control whether the Cache Manager displays either
5969     type of message, both types, or neither. It is best not to disable messages completely, because they provide useful
5970     information.</P
5971 ><P
5972 >If you want to monitor Cache Manager status and performance more actively, you can use the <SPAN
5973 CLASS="bold"
5974 ><B
5975 CLASS="emphasis"
5976 >afsmonitor</B
5977 ></SPAN
5978 > program to collect an extensive set of statistics (it also gathers File Server statistics). If
5979     you experience performance problems, you can use <SPAN
5980 CLASS="bold"
5981 ><B
5982 CLASS="emphasis"
5983 >fstrace</B
5984 ></SPAN
5985 > suite of commands to gather a
5986     low-level trace of Cache Manager operations, which the AFS Support and Development groups can analyze to help solve your
5987     problem. To learn about both utilities, see <A
5988 HREF="c18360.html"
5989 >Monitoring and Auditing AFS Performance</A
5990 >.  </P
5991 ><DIV
5992 CLASS="sect2"
5993 ><H2
5994 CLASS="sect2"
5995 ><A
5996 NAME="Header_482"
5997 >To control the display of warning and status messages</A
5998 ></H2
5999 ><OL
6000 TYPE="1"
6001 ><LI
6002 ><P
6003 >Become the local superuser <SPAN
6004 CLASS="bold"
6005 ><B
6006 CLASS="emphasis"
6007 >root</B
6008 ></SPAN
6009 > on the machine, if you are not already, by issuing
6010           the <SPAN
6011 CLASS="bold"
6012 ><B
6013 CLASS="emphasis"
6014 >su</B
6015 ></SPAN
6016 > command. <PRE
6017 CLASS="programlisting"
6018 >&#13;   % <SPAN
6019 CLASS="bold"
6020 ><B
6021 CLASS="emphasis"
6022 >su root</B
6023 ></SPAN
6024 >
6025    Password: &#60;<VAR
6026 CLASS="replaceable"
6027 >root_password</VAR
6028 >&#62;
6029 </PRE
6030 ></P
6031 ></LI
6032 ><LI
6033 ><P
6034 >Issue the <SPAN
6035 CLASS="bold"
6036 ><B
6037 CLASS="emphasis"
6038 >fs messages</B
6039 ></SPAN
6040 > command, using the <SPAN
6041 CLASS="bold"
6042 ><B
6043 CLASS="emphasis"
6044 >-show</B
6045 ></SPAN
6046 >
6047           argument to specify the type of messages to be displayed. <PRE
6048 CLASS="programlisting"
6049 >&#13;   # <SPAN
6050 CLASS="bold"
6051 ><B
6052 CLASS="emphasis"
6053 >fs messages -show</B
6054 ></SPAN
6055 > &#60;<SPAN
6056 CLASS="bold"
6057 ><B
6058 CLASS="emphasis"
6059 >user</B
6060 ></SPAN
6061 >|<SPAN
6062 CLASS="bold"
6063 ><B
6064 CLASS="emphasis"
6065 >console</B
6066 ></SPAN
6067 >|<SPAN
6068 CLASS="bold"
6069 ><B
6070 CLASS="emphasis"
6071 >all</B
6072 ></SPAN
6073 >|<SPAN
6074 CLASS="bold"
6075 ><B
6076 CLASS="emphasis"
6077 >none</B
6078 ></SPAN
6079 >&#62;
6080 </PRE
6081 ></P
6082 ><P
6083 >where <DIV
6084 CLASS="variablelist"
6085 ><DL
6086 ><DT
6087 ><SPAN
6088 CLASS="bold"
6089 ><B
6090 CLASS="emphasis"
6091 >me</B
6092 ></SPAN
6093 ></DT
6094 ><DD
6095 ><P
6096 >Is the shortest acceptable abbreviation of <SPAN
6097 CLASS="bold"
6098 ><B
6099 CLASS="emphasis"
6100 >messages</B
6101 ></SPAN
6102 >.</P
6103 ></DD
6104 ><DT
6105 ><SPAN
6106 CLASS="bold"
6107 ><B
6108 CLASS="emphasis"
6109 >-show</B
6110 ></SPAN
6111 ></DT
6112 ><DD
6113 ><P
6114 >Specifies the types of messages to display. Choose one of the following values: <DIV
6115 CLASS="variablelist"
6116 ><DL
6117 ><DT
6118 ><SPAN
6119 CLASS="bold"
6120 ><B
6121 CLASS="emphasis"
6122 >user</B
6123 ></SPAN
6124 ></DT
6125 ><DD
6126 ><P
6127 >Sends user messages to user screens.</P
6128 ></DD
6129 ><DT
6130 ><SPAN
6131 CLASS="bold"
6132 ><B
6133 CLASS="emphasis"
6134 >console</B
6135 ></SPAN
6136 ></DT
6137 ><DD
6138 ><P
6139 >Sends console messages to the console.</P
6140 ></DD
6141 ><DT
6142 ><SPAN
6143 CLASS="bold"
6144 ><B
6145 CLASS="emphasis"
6146 >all</B
6147 ></SPAN
6148 ></DT
6149 ><DD
6150 ><P
6151 >Sends user messages to user screens and console messages to the console (the default if the
6152                           <SPAN
6153 CLASS="bold"
6154 ><B
6155 CLASS="emphasis"
6156 >-show</B
6157 ></SPAN
6158 > argument is omitted).</P
6159 ></DD
6160 ><DT
6161 ><SPAN
6162 CLASS="bold"
6163 ><B
6164 CLASS="emphasis"
6165 >none</B
6166 ></SPAN
6167 ></DT
6168 ><DD
6169 ><P
6170 >Disables messages completely.</P
6171 ></DD
6172 ></DL
6173 ></DIV
6174 ></P
6175 ></DD
6176 ></DL
6177 ></DIV
6178 ></P
6179 ></LI
6180 ></OL
6181 ></DIV
6182 ></DIV
6183 ><DIV
6184 CLASS="sect1"
6185 ><H1
6186 CLASS="sect1"
6187 ><A
6188 NAME="HDRWQ417"
6189 >Displaying and Setting the System Type Name</A
6190 ></H1
6191 ><P
6192 >The Cache Manager stores the system type name of the local client machine in kernel memory. It reads in the default value
6193     from a hardcoded definition in the AFS client software.</P
6194 ><P
6195 >The Cache Manager uses the system name as a substitute for the @sys variable in AFS pathnames. The variable is useful when
6196     creating a symbolic link from the local disk to an AFS directory that houses binaries for the client machine's system type.
6197     Because the @sys variable automatically steers the Cache Manager to the appropriate directory, you can create the same symbolic
6198     link on client machines of different system types. (You can even automate the creation operation by using the package utility
6199     described in <A
6200 HREF="c23832.html"
6201 >Configuring Client Machines with the package Program</A
6202 >.) The link also remains valid
6203     when you upgrade the machine to a new system type.</P
6204 ><P
6205 >Configuration is simplest if you use the system type names that AFS assigns. For a list, see the <SPAN
6206 CLASS="emphasis"
6207 ><I
6208 CLASS="emphasis"
6209 >IBM AFS Release
6210     Notes</I
6211 ></SPAN
6212 >.</P
6213 ><P
6214 >To display the system name stored in kernel memory, use the <SPAN
6215 CLASS="bold"
6216 ><B
6217 CLASS="emphasis"
6218 >sys</B
6219 ></SPAN
6220 > or <SPAN
6221 CLASS="bold"
6222 ><B
6223 CLASS="emphasis"
6224 >fs sysname</B
6225 ></SPAN
6226 > command. To change the name, add the latter command's <SPAN
6227 CLASS="bold"
6228 ><B
6229 CLASS="emphasis"
6230 >-newsys</B
6231 ></SPAN
6232 >
6233     argument.    </P
6234 ><DIV
6235 CLASS="sect2"
6236 ><H2
6237 CLASS="sect2"
6238 ><A
6239 NAME="Header_484"
6240 >To display the system type name</A
6241 ></H2
6242 ><OL
6243 TYPE="1"
6244 ><LI
6245 ><P
6246 >Issue the <SPAN
6247 CLASS="bold"
6248 ><B
6249 CLASS="emphasis"
6250 >fs sysname</B
6251 ></SPAN
6252 > or <SPAN
6253 CLASS="bold"
6254 ><B
6255 CLASS="emphasis"
6256 >sys</B
6257 ></SPAN
6258 > command.
6259           <PRE
6260 CLASS="programlisting"
6261 >&#13;   % <SPAN
6262 CLASS="bold"
6263 ><B
6264 CLASS="emphasis"
6265 >fs sysname</B
6266 ></SPAN
6267
6268    % <SPAN
6269 CLASS="bold"
6270 ><B
6271 CLASS="emphasis"
6272 >sys</B
6273 ></SPAN
6274 >
6275 </PRE
6276 ></P
6277 ></LI
6278 ></OL
6279 ><P
6280 >The output of the <SPAN
6281 CLASS="bold"
6282 ><B
6283 CLASS="emphasis"
6284 >fs sysname</B
6285 ></SPAN
6286 > command has the following format:</P
6287 ><PRE
6288 CLASS="programlisting"
6289 >&#13;   Current sysname is 'system_name'
6290 </PRE
6291 ><P
6292 >The <SPAN
6293 CLASS="bold"
6294 ><B
6295 CLASS="emphasis"
6296 >sys</B
6297 ></SPAN
6298 > command displays the system_name string with no other text.</P
6299 ></DIV
6300 ><DIV
6301 CLASS="sect2"
6302 ><H2
6303 CLASS="sect2"
6304 ><A
6305 NAME="Header_485"
6306 >To change the system type name</A
6307 ></H2
6308 ><OL
6309 TYPE="1"
6310 ><LI
6311 ><P
6312 >Become the local superuser <SPAN
6313 CLASS="bold"
6314 ><B
6315 CLASS="emphasis"
6316 >root</B
6317 ></SPAN
6318 > on the machine, if you are not already, by issuing
6319           the <SPAN
6320 CLASS="bold"
6321 ><B
6322 CLASS="emphasis"
6323 >su</B
6324 ></SPAN
6325 > command. <PRE
6326 CLASS="programlisting"
6327 >&#13;   % <SPAN
6328 CLASS="bold"
6329 ><B
6330 CLASS="emphasis"
6331 >su root</B
6332 ></SPAN
6333 >
6334    Password: &#60;<VAR
6335 CLASS="replaceable"
6336 >root_password</VAR
6337 >&#62;
6338 </PRE
6339 ></P
6340 ></LI
6341 ><LI
6342 ><P
6343 >Issue the <SPAN
6344 CLASS="bold"
6345 ><B
6346 CLASS="emphasis"
6347 >fs sysname</B
6348 ></SPAN
6349 > command, using the <SPAN
6350 CLASS="bold"
6351 ><B
6352 CLASS="emphasis"
6353 >-newsys</B
6354 ></SPAN
6355 >
6356           argument to specify the new name. <PRE
6357 CLASS="programlisting"
6358 >&#13;   # <SPAN
6359 CLASS="bold"
6360 ><B
6361 CLASS="emphasis"
6362 >fs sysname</B
6363 ></SPAN
6364 > &#60;<VAR
6365 CLASS="replaceable"
6366 >new sysname</VAR
6367 >&#62;
6368 </PRE
6369 ></P
6370 ><P
6371 >where <DIV
6372 CLASS="variablelist"
6373 ><DL
6374 ><DT
6375 ><SPAN
6376 CLASS="bold"
6377 ><B
6378 CLASS="emphasis"
6379 >sys</B
6380 ></SPAN
6381 ></DT
6382 ><DD
6383 ><P
6384 >Is the shortest acceptable abbreviation of <SPAN
6385 CLASS="bold"
6386 ><B
6387 CLASS="emphasis"
6388 >sysname</B
6389 ></SPAN
6390 >.</P
6391 ></DD
6392 ><DT
6393 ><SPAN
6394 CLASS="bold"
6395 ><B
6396 CLASS="emphasis"
6397 >new sysname</B
6398 ></SPAN
6399 ></DT
6400 ><DD
6401 ><P
6402 >Specifies the new system type name.</P
6403 ></DD
6404 ></DL
6405 ></DIV
6406 ></P
6407 ></LI
6408 ></OL
6409 ></DIV
6410 ></DIV
6411 ><DIV
6412 CLASS="sect1"
6413 ><H1
6414 CLASS="sect1"
6415 ><A
6416 NAME="HDRWQ418"
6417 >Enabling Asynchronous Writes</A
6418 ></H1
6419 ><P
6420 >By default, the Cache Manager writes all data to the File Server immediately and synchronously when an application program
6421     closes a file. That is, the <SPAN
6422 CLASS="bold"
6423 ><B
6424 CLASS="emphasis"
6425 >close</B
6426 ></SPAN
6427 > system call does not return until the Cache Manager has
6428     actually written all of the cached data from the file back to the File Server. You can enable the Cache Manager to write files
6429     asynchronously by specifying the number of kilobytes of a file that can remain to be written to the File Server when the Cache
6430     Manager returns control to the application.</P
6431 ><P
6432 >Enabling asynchronous writes can be helpful to users who commonly work with very large files, because it usually means
6433     that the application appears to perform faster. However, it introduces some complications. It is best not to enable asynchronous
6434     writes unless the machine's users are sophisticated enough to understand the potential problems and how to avoid them. The
6435     complications include the following: <UL
6436 ><LI
6437 ><P
6438 >In most cases, the Cache Manager returns control to applications earlier than it does by default, but it is not
6439           guaranteed to do so. Users cannot always expect faster performance.</P
6440 ></LI
6441 ><LI
6442 ><P
6443 >If an asynchronous write fails, there is no way to notify the application, because the <SPAN
6444 CLASS="bold"
6445 ><B
6446 CLASS="emphasis"
6447 >close</B
6448 ></SPAN
6449 > system call has already returned with a code indicating success.</P
6450 ></LI
6451 ><LI
6452 ><P
6453 >Asynchronous writing increases the possibility that the user fails to notice when a write operation makes a volume
6454           exceed its quota. As always, the portion of the file that exceeds the quota is lost, as indicated by a message like the
6455           following: <PRE
6456 CLASS="programlisting"
6457 >&#13;   No space left on device
6458 </PRE
6459 ></P
6460 ><P
6461 >To avoid losing data because of insufficient quota, before closing a file users must verify that the volume housing
6462           the file has enough free space to accommodate it.</P
6463 ></LI
6464 ></UL
6465 ></P
6466 ><P
6467 >When you enable asynchronous writes by issuing the <SPAN
6468 CLASS="bold"
6469 ><B
6470 CLASS="emphasis"
6471 >fs storebehind</B
6472 ></SPAN
6473 > command, you set the
6474     number of kilobytes of a file that can still remain to be written to the File Server when the Cache Manager returns control to
6475     the application program. You can apply the setting either to all files manipulated by applications running on the machine, or
6476     only to certain files: <UL
6477 ><LI
6478 ><P
6479 >The setting that applies to all files is called the <SPAN
6480 CLASS="emphasis"
6481 ><I
6482 CLASS="emphasis"
6483 >default store asynchrony</I
6484 ></SPAN
6485 > for the machine,
6486           and persists until the machine reboots. If, for example, you set the default store asynchrony to 10 KB, it means that when
6487           an application closes a file, the Cache Manager can return control to the application as soon as no more than 10 KB of a
6488           file that the application has closed remain to be written to the File Server.</P
6489 ></LI
6490 ><LI
6491 ><P
6492 >The setting for an individual file overrides the default store asynchrony and persists as long as there is an entry
6493           for the file in the internal table that the Cache Manager uses to track information about files. In general, such an entry
6494           persists at least until an application closes the file or exits completely, but the Cache Manager is free to recycle the
6495           entry if the file is inactive and it needs to free up slots in the table. To be sure the entry exists in the table, issue
6496           the <SPAN
6497 CLASS="bold"
6498 ><B
6499 CLASS="emphasis"
6500 >fs storebehind</B
6501 ></SPAN
6502 > command shortly before closing the file.</P
6503 ></LI
6504 ></UL
6505 ></P
6506 ><DIV
6507 CLASS="sect2"
6508 ><H2
6509 CLASS="sect2"
6510 ><A
6511 NAME="Header_487"
6512 >To set the default store asynchrony</A
6513 ></H2
6514 ><OL
6515 TYPE="1"
6516 ><LI
6517 ><P
6518 >Become the local superuser <SPAN
6519 CLASS="bold"
6520 ><B
6521 CLASS="emphasis"
6522 >root</B
6523 ></SPAN
6524 > on the machine, if you are not already, by issuing
6525           the <SPAN
6526 CLASS="bold"
6527 ><B
6528 CLASS="emphasis"
6529 >su</B
6530 ></SPAN
6531 > command. <PRE
6532 CLASS="programlisting"
6533 >&#13;   % <SPAN
6534 CLASS="bold"
6535 ><B
6536 CLASS="emphasis"
6537 >su root</B
6538 ></SPAN
6539 >
6540    Password: &#60;<VAR
6541 CLASS="replaceable"
6542 >root_password</VAR
6543 >&#62;
6544 </PRE
6545 ></P
6546 ></LI
6547 ><LI
6548 ><P
6549 >Issue the <SPAN
6550 CLASS="bold"
6551 ><B
6552 CLASS="emphasis"
6553 >fs storebehind</B
6554 ></SPAN
6555 > command with the <SPAN
6556 CLASS="bold"
6557 ><B
6558 CLASS="emphasis"
6559 >-allfiles</B
6560 ></SPAN
6561 > argument. <PRE
6562 CLASS="programlisting"
6563 >&#13;   # <SPAN
6564 CLASS="bold"
6565 ><B
6566 CLASS="emphasis"
6567 >fs storebehind -allfiles</B
6568 ></SPAN
6569 >  &#60;<VAR
6570 CLASS="replaceable"
6571 >new default (KB)</VAR
6572 >&#62; [<SPAN
6573 CLASS="bold"
6574 ><B
6575 CLASS="emphasis"
6576 >-verbose</B
6577 ></SPAN
6578 >]
6579 </PRE
6580 ></P
6581 ><P
6582 >where <DIV
6583 CLASS="variablelist"
6584 ><DL
6585 ><DT
6586 ><SPAN
6587 CLASS="bold"
6588 ><B
6589 CLASS="emphasis"
6590 >st</B
6591 ></SPAN
6592 ></DT
6593 ><DD
6594 ><P
6595 >Is the shortest acceptable abbreviation of <SPAN
6596 CLASS="bold"
6597 ><B
6598 CLASS="emphasis"
6599 >storebehind</B
6600 ></SPAN
6601 >.</P
6602 ></DD
6603 ><DT
6604 ><SPAN
6605 CLASS="bold"
6606 ><B
6607 CLASS="emphasis"
6608 >-allfiles</B
6609 ></SPAN
6610 ></DT
6611 ><DD
6612 ><P
6613 >Sets the number of kilobytes of data that can remain to be written to the File Server when the Cache Manager
6614                   returns control to the application that closed a file.</P
6615 ></DD
6616 ><DT
6617 ><SPAN
6618 CLASS="bold"
6619 ><B
6620 CLASS="emphasis"
6621 >-verbose</B
6622 ></SPAN
6623 ></DT
6624 ><DD
6625 ><P
6626 >Produces a message that confirms the new setting.</P
6627 ></DD
6628 ></DL
6629 ></DIV
6630 ></P
6631 ></LI
6632 ></OL
6633 ></DIV
6634 ><DIV
6635 CLASS="sect2"
6636 ><H2
6637 CLASS="sect2"
6638 ><A
6639 NAME="Header_488"
6640 >To set the store asynchrony for one or more files</A
6641 ></H2
6642 ><OL
6643 TYPE="1"
6644 ><LI
6645 ><P
6646 >Verify that you have the <SPAN
6647 CLASS="bold"
6648 ><B
6649 CLASS="emphasis"
6650 >w</B
6651 ></SPAN
6652 > (<SPAN
6653 CLASS="bold"
6654 ><B
6655 CLASS="emphasis"
6656 >write</B
6657 ></SPAN
6658 >) permission on
6659           the access control list (ACL) of each file for which you are setting the store asynchrony, by issuing the <SPAN
6660 CLASS="bold"
6661 ><B
6662 CLASS="emphasis"
6663 >fs listacl</B
6664 ></SPAN
6665 > command, which is described fully in <A
6666 HREF="c31274.html#HDRWQ572"
6667 >Displaying ACLs</A
6668 >.
6669           <PRE
6670 CLASS="programlisting"
6671 >&#13;   % <SPAN
6672 CLASS="bold"
6673 ><B
6674 CLASS="emphasis"
6675 >fs listacl</B
6676 ></SPAN
6677 > dir/file path
6678 </PRE
6679 ></P
6680 ><P
6681 >Alternatively, become the local superuser <SPAN
6682 CLASS="bold"
6683 ><B
6684 CLASS="emphasis"
6685 >root</B
6686 ></SPAN
6687 > on the client machine, if you are
6688           not already, by issuing the <SPAN
6689 CLASS="bold"
6690 ><B
6691 CLASS="emphasis"
6692 >su</B
6693 ></SPAN
6694 > command.</P
6695 ><PRE
6696 CLASS="programlisting"
6697 >&#13;   % <SPAN
6698 CLASS="bold"
6699 ><B
6700 CLASS="emphasis"
6701 >su root</B
6702 ></SPAN
6703 >
6704    Password: &#60;<VAR
6705 CLASS="replaceable"
6706 >root_password</VAR
6707 >&#62;
6708 </PRE
6709 ></LI
6710 ><LI
6711 ><P
6712 >Issue the <SPAN
6713 CLASS="bold"
6714 ><B
6715 CLASS="emphasis"
6716 >fs storebehind</B
6717 ></SPAN
6718 > command with the <SPAN
6719 CLASS="bold"
6720 ><B
6721 CLASS="emphasis"
6722 >-kbytes</B
6723 ></SPAN
6724 >
6725           and <SPAN
6726 CLASS="bold"
6727 ><B
6728 CLASS="emphasis"
6729 >-files</B
6730 ></SPAN
6731 > arguments. <PRE
6732 CLASS="programlisting"
6733 >&#13;   # <SPAN
6734 CLASS="bold"
6735 ><B
6736 CLASS="emphasis"
6737 >fs storebehind -kbytes</B
6738 ></SPAN
6739 > &#60;<VAR
6740 CLASS="replaceable"
6741 >asynchrony for specified names</VAR
6742 >&#62; \
6743                     <SPAN
6744 CLASS="bold"
6745 ><B
6746 CLASS="emphasis"
6747 >-files</B
6748 ></SPAN
6749 > &#60;<VAR
6750 CLASS="replaceable"
6751 >specific pathnames</VAR
6752 >&#62;+  \
6753                     [<SPAN
6754 CLASS="bold"
6755 ><B
6756 CLASS="emphasis"
6757 >-verbose</B
6758 ></SPAN
6759 >]
6760 </PRE
6761 ></P
6762 ><P
6763 >where <DIV
6764 CLASS="variablelist"
6765 ><DL
6766 ><DT
6767 ><SPAN
6768 CLASS="bold"
6769 ><B
6770 CLASS="emphasis"
6771 >st</B
6772 ></SPAN
6773 ></DT
6774 ><DD
6775 ><P
6776 >Is the shortest acceptable abbreviation of <SPAN
6777 CLASS="bold"
6778 ><B
6779 CLASS="emphasis"
6780 >storebehind</B
6781 ></SPAN
6782 >.</P
6783 ></DD
6784 ><DT
6785 ><SPAN
6786 CLASS="bold"
6787 ><B
6788 CLASS="emphasis"
6789 >-kbytes</B
6790 ></SPAN
6791 ></DT
6792 ><DD
6793 ><P
6794 >Sets the number of kilobytes of data that can remain to be written to the File Server when the Cache Manager
6795                   returns control to the application that closed a file named by the <SPAN
6796 CLASS="bold"
6797 ><B
6798 CLASS="emphasis"
6799 >-files</B
6800 ></SPAN
6801 >
6802                   argument.</P
6803 ></DD
6804 ><DT
6805 ><SPAN
6806 CLASS="bold"
6807 ><B
6808 CLASS="emphasis"
6809 >-files</B
6810 ></SPAN
6811 ></DT
6812 ><DD
6813 ><P
6814 >Specifies each file for which to set a store asynchrony that overrides the default. Partial pathnames are
6815                   interpreted relative to the current working directory.</P
6816 ></DD
6817 ><DT
6818 ><SPAN
6819 CLASS="bold"
6820 ><B
6821 CLASS="emphasis"
6822 >-verbose</B
6823 ></SPAN
6824 ></DT
6825 ><DD
6826 ><P
6827 >Produces a message that confirms that new setting.</P
6828 ></DD
6829 ></DL
6830 ></DIV
6831 ></P
6832 ></LI
6833 ></OL
6834 ></DIV
6835 ><DIV
6836 CLASS="sect2"
6837 ><H2
6838 CLASS="sect2"
6839 ><A
6840 NAME="Header_489"
6841 >To display the default store asynchrony</A
6842 ></H2
6843 ><OL
6844 TYPE="1"
6845 ><LI
6846 ><P
6847 >Issue the <SPAN
6848 CLASS="bold"
6849 ><B
6850 CLASS="emphasis"
6851 >fs storebehind</B
6852 ></SPAN
6853 > command with no arguments, or with the <SPAN
6854 CLASS="bold"
6855 ><B
6856 CLASS="emphasis"
6857 >-verbose</B
6858 ></SPAN
6859 > flag only. <PRE
6860 CLASS="programlisting"
6861 >&#13;   % <SPAN
6862 CLASS="bold"
6863 ><B
6864 CLASS="emphasis"
6865 >fs storebehind</B
6866 ></SPAN
6867 >  [<SPAN
6868 CLASS="bold"
6869 ><B
6870 CLASS="emphasis"
6871 >-verbose</B
6872 ></SPAN
6873 >]
6874 </PRE
6875 ></P
6876 ><P
6877 >where <DIV
6878 CLASS="variablelist"
6879 ><DL
6880 ><DT
6881 ><SPAN
6882 CLASS="bold"
6883 ><B
6884 CLASS="emphasis"
6885 >st</B
6886 ></SPAN
6887 ></DT
6888 ><DD
6889 ><P
6890 >Is the shortest acceptable abbreviation of <SPAN
6891 CLASS="bold"
6892 ><B
6893 CLASS="emphasis"
6894 >storebehind</B
6895 ></SPAN
6896 >.</P
6897 ></DD
6898 ><DT
6899 ><SPAN
6900 CLASS="bold"
6901 ><B
6902 CLASS="emphasis"
6903 >-verbose</B
6904 ></SPAN
6905 ></DT
6906 ><DD
6907 ><P
6908 >Produces output that reports the default store asynchrony.</P
6909 ></DD
6910 ></DL
6911 ></DIV
6912 ></P
6913 ></LI
6914 ></OL
6915 ></DIV
6916 ><DIV
6917 CLASS="sect2"
6918 ><H2
6919 CLASS="sect2"
6920 ><A
6921 NAME="Header_490"
6922 >To display the store asynchrony for one or more files</A
6923 ></H2
6924 ><OL
6925 TYPE="1"
6926 ><LI
6927 ><P
6928 >Issue the <SPAN
6929 CLASS="bold"
6930 ><B
6931 CLASS="emphasis"
6932 >fs storebehind</B
6933 ></SPAN
6934 > command with the <SPAN
6935 CLASS="bold"
6936 ><B
6937 CLASS="emphasis"
6938 >-files</B
6939 ></SPAN
6940 >
6941           argument only. <PRE
6942 CLASS="programlisting"
6943 >&#13;   % <SPAN
6944 CLASS="bold"
6945 ><B
6946 CLASS="emphasis"
6947 >fs storebehind</B
6948 ></SPAN
6949 > <SPAN
6950 CLASS="bold"
6951 ><B
6952 CLASS="emphasis"
6953 >-files</B
6954 ></SPAN
6955 > &#60;<VAR
6956 CLASS="replaceable"
6957 >specific pathnames</VAR
6958 >&#62;+ 
6959 </PRE
6960 ></P
6961 ><P
6962 >where <DIV
6963 CLASS="variablelist"
6964 ><DL
6965 ><DT
6966 ><SPAN
6967 CLASS="bold"
6968 ><B
6969 CLASS="emphasis"
6970 >st</B
6971 ></SPAN
6972 ></DT
6973 ><DD
6974 ><P
6975 >Is the shortest acceptable abbreviation of <SPAN
6976 CLASS="bold"
6977 ><B
6978 CLASS="emphasis"
6979 >storebehind</B
6980 ></SPAN
6981 >.</P
6982 ></DD
6983 ><DT
6984 ><SPAN
6985 CLASS="bold"
6986 ><B
6987 CLASS="emphasis"
6988 >-files</B
6989 ></SPAN
6990 ></DT
6991 ><DD
6992 ><P
6993 >Specifies each file for which to display the store asynchrony. Partial pathnames are interpreted relative to
6994                   the current working directory.</P
6995 ></DD
6996 ></DL
6997 ></DIV
6998 ></P
6999 ></LI
7000 ></OL
7001 ><P
7002 >The output lists each file separately. If a value has previously been set for the specified files, the output reports
7003       the following:</P
7004 ><PRE
7005 CLASS="programlisting"
7006 >&#13;   Will store up to y kbytes of file asynchronously.
7007    Default store asynchrony is x kbytes.
7008 </PRE
7009 ><P
7010 >If the default store asynchrony applies to a file (because you have not set a <SPAN
7011 CLASS="bold"
7012 ><B
7013 CLASS="emphasis"
7014 >-kbytes</B
7015 ></SPAN
7016 >
7017       value for it), the output reports the following:</P
7018 ><PRE
7019 CLASS="programlisting"
7020 >&#13;   Will store file according to default.
7021    Default store asynchrony is x kbytes.
7022 </PRE
7023 ></DIV
7024 ></DIV
7025 ></DIV
7026 ><DIV
7027 CLASS="NAVFOOTER"
7028 ><HR
7029 ALIGN="LEFT"
7030 WIDTH="100%"><TABLE
7031 SUMMARY="Footer navigation table"
7032 WIDTH="100%"
7033 BORDER="0"
7034 CELLPADDING="0"
7035 CELLSPACING="0"
7036 ><TR
7037 ><TD
7038 WIDTH="33%"
7039 ALIGN="left"
7040 VALIGN="top"
7041 ><A
7042 HREF="p21471.html"
7043 ACCESSKEY="P"
7044 >Prev</A
7045 ></TD
7046 ><TD
7047 WIDTH="34%"
7048 ALIGN="center"
7049 VALIGN="top"
7050 ><A
7051 HREF="book1.html"
7052 ACCESSKEY="H"
7053 >Home</A
7054 ></TD
7055 ><TD
7056 WIDTH="33%"
7057 ALIGN="right"
7058 VALIGN="top"
7059 ><A
7060 HREF="c23832.html"
7061 ACCESSKEY="N"
7062 >Next</A
7063 ></TD
7064 ></TR
7065 ><TR
7066 ><TD
7067 WIDTH="33%"
7068 ALIGN="left"
7069 VALIGN="top"
7070 >Managing Client Machines</TD
7071 ><TD
7072 WIDTH="34%"
7073 ALIGN="center"
7074 VALIGN="top"
7075 ><A
7076 HREF="p21471.html"
7077 ACCESSKEY="U"
7078 >Up</A
7079 ></TD
7080 ><TD
7081 WIDTH="33%"
7082 ALIGN="right"
7083 VALIGN="top"
7084 >Configuring Client Machines with the package Program</TD
7085 ></TR
7086 ></TABLE
7087 ></DIV
7088 ></BODY
7089 ></HTML
7090 >