1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 4//EN">
<HTML><HEAD>
<TITLE>Administration Guide</TITLE>
<!-- Begin Header Records ========================================== -->
<!-- /tmp/idwt3570/auagd000.scr converted by idb2h R4.2 (359) ID -->
<!-- Workbench Version (AIX) on 2 Oct 2000 at 11:42:14 -->
<META HTTP-EQUIV="updated" CONTENT="Mon, 02 Oct 2000 11:42:13">
<META HTTP-EQUIV="review" CONTENT="Tue, 02 Oct 2001 11:42:13">
<META HTTP-EQUIV="expires" CONTENT="Wed, 02 Oct 2002 11:42:13">
</HEAD><BODY>
<!-- (C) IBM Corporation 2000. All Rights Reserved -->
<BODY bgcolor="ffffff">
<!-- End Header Records ============================================ -->
<A NAME="Top_Of_Page"></A>
<H1>Administration Guide</H1>
<HR><P ALIGN="center"> <A HREF="../index.htm"><IMG SRC="../books.gif" BORDER="0" ALT="[Return to Library]"></A> <A HREF="auagd002.htm#ToC"><IMG SRC="../toc.gif" BORDER="0" ALT="[Contents]"></A> <A HREF="auagd014.htm"><IMG SRC="../prev.gif" BORDER="0" ALT="[Previous Topic]"></A> <A HREF="#Bot_Of_Page"><IMG SRC="../bot.gif" BORDER="0" ALT="[Bottom of Topic]"></A> <A HREF="auagd016.htm"><IMG SRC="../next.gif" BORDER="0" ALT="[Next Topic]"></A> <A HREF="auagd026.htm#HDRINDEX"><IMG SRC="../index.gif" BORDER="0" ALT="[Index]"></A> <P>
<P>
<A NAME="IDX7308"></A>
<A NAME="IDX7309"></A>
<HR><H1><A NAME="HDRWQ387" HREF="auagd002.htm#ToC_431">Administering Client Machines and the Cache Manager</A></H1>
<P>This chapter describes how to administer an AFS client
machine, which is any machine from which users can access the AFS filespace
and communicate with AFS server processes. (A client machine can
simultaneously function as an AFS server machine if appropriately
configured.) An AFS client machine has the following
characteristics:
<UL>
<P><LI>The kernel includes the set of modifications, commonly referred to as the
Cache Manager, that enable access to AFS files and directories. You can
configure many of the Cache Manager's features to suit your users'
needs. See <A HREF="#HDRWQ390">Overview of Cache Manager Customization</A>.
<P><LI>The <B>/usr/vice/etc</B> directory on the local disk stores several
configuration files. See <A HREF="#HDRWQ392">Configuration Files in the /usr/vice/etc Directory</A>.
<P><LI>A cache stores temporary copies of data fetched from AFS file server
machines, either in machine memory or on a devoted local disk
partition. See <A HREF="#HDRWQ394">Determining the Cache Type, Size, and Location</A> and <A HREF="#HDRWQ402">Setting Other Cache Parameters with the afsd program</A>.
</UL>
<P>To learn how to install the client functionality on a machine, see the
<I>IBM AFS Quick Beginnings</I>.
<HR><H2><A NAME="HDRWQ388" HREF="auagd002.htm#ToC_432">Summary of Instructions</A></H2>
<P>This chapter explains how to perform the following tasks by
using the indicated commands:
<BR>
<TABLE WIDTH="100%">
<TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Display cache size set at reboot
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>cat /usr/vice/etc/cacheinfo</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Display current cache size and usage
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs getcacheparms</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Change disk cache size without rebooting
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs setcachesize</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Initialize Cache Manager
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>afsd</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Display contents of <B>CellServDB</B> file
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>cat /usr/vice/etc/CellServDB</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Display list of database server machines from kernel memory
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs listcells</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Change list of database server machines in kernel memory
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs newcell</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Check cell's status regarding setuid
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs getcellstatus</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Set cell's status regarding setuid
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs setcell</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Set server probe interval
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs checkservers -interval</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Display machine's cell membership
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>cat /usr/vice/etc/ThisCell</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Change machine's cell membership
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%">Edit <B>/usr/vice/etc/ThisCell</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Flush cached file/directory
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs flush</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Flush everything cached from a volume
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs flushvolume</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Update volume-to-mount-point mappings
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs checkvolumes</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Display Cache Manager's server preference ranks
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs getserverprefs</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Set Cache Manager's server preference ranks
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs setserverprefs</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Display client machine addresses to register
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs getclientaddrs</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Set client machine addresses to register
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs setclientaddrs</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Control the display of warning and status messages
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs messages</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Display and change machine's system type
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs sysname</B>
</TD></TR><TR>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="67%">Enable asynchronous writes
</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="33%"><B>fs storebehind</B>
</TD></TR></TABLE>
<HR><H2><A NAME="HDRWQ390" HREF="auagd002.htm#ToC_433">Overview of Cache Manager Customization</A></H2>
<A NAME="IDX7310"></A>
<A NAME="IDX7311"></A>
<A NAME="IDX7312"></A>
<P>An AFS client machine's kernel includes a set of modifications,
commonly referred to as the <I>Cache Manager</I>, that enable access to
AFS files and directories and communications with AFS server processes.
It is common to speak of the Cache Manager as a process or program, and in
regular usage it appears to function like one. When configuring it,
though, it is helpful to keep in mind that this usage is not strictly
accurate.
<P>The Cache Manager mainly fetches files on behalf of application programs
running on the machine. When an application requests an AFS file, the
Cache Manager contacts the Volume Location (VL) Server to obtain a list of the
file server machines that house the volume containing the file. The
Cache Manager then translates the application program's system call
requests into remote procedure calls (RPCs) to the File Server running on the
appropriate machine. When the File Server delivers the file, the Cache
Manager stores it in a local <I>cache</I> before delivering it to the
application program.
<P>The File Server delivers a data structure called a <I>callback</I>
along with the file. (To be precise, it delivers a callback for each
file fetched from a read/write volume, and a single callback for all data
fetched from a read-only volume.) A valid callback indicates that the
Cache Manager's cached copy of a file matches the central copy maintained
by the File Server. If an application on another AFS client machine
changes the central copy, the File Server breaks the callback, and the Cache
Manager must retrieve the new version when an application program on its
machine next requests data from the file. As long as the callback is
unbroken, however, the Cache Manager can continue to provide the cached
version of the file to applications on its machine, which eliminates
unnecessary network traffic.
<P>The indicated sections of this chapter explain how to configure and
customize the following Cache Manager features. All but the first
(choosing disk or memory cache) are optional, because AFS sets suitable
defaults for them.
<UL>
<P><LI><I>disk or memory cache</I>. The AFS Cache Manager can use
machine memory for caching instead of space on the local disk. Deciding
which to use is the most basic configuration decision you must make.
See <A HREF="#HDRWQ394">Determining the Cache Type, Size, and Location</A>.
<P><LI><I>cache size</I>. Cache size probably has the most direct
influence on client machine performance. It determines how often the
Cache Manager must contact the File Server across the network or discard
cached data to make room for newly requested files, both of which affect how
quickly the Cache Manager delivers files to users. See <A HREF="#HDRWQ394">Determining the Cache Type, Size, and Location</A>.
<P><LI><I>cache location</I>. For a disk cache, you can alter the
conventional cache directory location (<B>/usr/vice/cache</B>) to take
advantage of greater space availability on other disks on the machine.
A larger cache can result in faster file delivery. See <A HREF="#HDRWQ394">Determining the Cache Type, Size, and Location</A>.
<P><LI><I>chunk size and number</I>. The <B>afsd</B> program,
which initializes the Cache Manager, allows you to control the size and number
of chunks into which a cache is divided, plus related parameters.
Setting these parameters is optional, because there are reasonable defaults,
but it provides precise control. The AFS distribution includes
configuration scripts that set Cache Manager parameters to values that are
reasonable for different configurations and usage patterns. See <A HREF="#HDRWQ402">Setting Other Cache Parameters with the afsd program</A>.
<P><LI><I>knowledge of database server machines</I>. Enable access to
a cell's AFS filespace and other services by listing the cell's
database server machines in the <B>/usr/vice/etc/CellServDB</B> file on
the local disk. See <A HREF="#HDRWQ406">Maintaining Knowledge of Database Server Machines</A>.
<P><LI><I>setuid privilege</I>. You can control whether the Cache
Manager allows programs from a cell to execute with setuid permission.
See <A HREF="#HDRWQ409">Determining if a Client Can Run Setuid Programs</A>.
<P><LI><I>cell membership</I>. Each client belongs to a one cell
defined by the local <B>/usr/vice/etc/ThisCell</B> file. Cell
membership determines the default cell in which the machine's users are
authenticated and in which AFS commands run. See <A HREF="#HDRWQ411">Setting a Client Machine's Cell Membership</A>.
<P><LI><I>cached file version</I>. AFS's system of callbacks
normally guarantees that the Cache Manager has the most current versions of
files and directories possible. Nevertheless, you can force the Cache
Manager to fetch the most current version of a file from the File Server if
you suspect that the cache contains an outdated version. See <A HREF="#HDRWQ412">Forcing the Update of Cached Data</A>.
<P><LI><I>File Server and Volume Location Server preferences</I>. The
Cache Manager sets numerical preference ranks for the interfaces on file
server machines and Volume Server (VL) machines. The ranks determine
which interface the Cache Manager first attempts to use when fetching data
from a volume or from the Volume Location Database (VLDB). The Cache
Manager sets default ranks as it initializes, basing them on its network
proximity to each interface, but you can modify the preference ranks if you
wish. See <A HREF="#HDRWQ414">Maintaining Server Preference Ranks</A>.
<P><LI><I>interfaces registered with the File Server</I>. If the Cache
Manager is multihomed (has multiple interface addresses), you can control
which of them it registers for File Servers to use when they initiate RPCs to
the client machine. See <A HREF="#HDRWQ415">Managing Multihomed Client Machines</A>.
<P><LI><I>display of information messages</I>. By default, the Cache
Manager sends basic error and informational messages to the client
machine's console and to command shells. You can disable the
messaging. See <A HREF="#HDRWQ416">Controlling the Display of Warning and Informational Messages</A>.
<P><LI><I>system type</I>. The Cache Manager records the local
machine's AFS system type in kernel memory, and substitutes the value for
the <VAR>@sys</VAR> variable in pathnames. See <A HREF="#HDRWQ417">Displaying and Setting the System Type Name</A>.
<P><LI><I>delayed writes</I>. By default, the Cache Manager writes all
data to the File Server immediately and synchronously when an application
program closes a file. You can enable asynchronous writes, either for
an individual file, or all files that the Cache Manager handles, and set how
much data remains to be written when the Cache Manager returns control to the
closing application. See <A HREF="#HDRWQ418">Enabling Asynchronous Writes</A>.
</UL>
<P>You must make all configuration changes on the client machine itself (at
the console or over a direct connection such as a <B>telnet</B>
connection). You cannot configure the Cache Manager remotely.
You must be logged in as the local superuser <B>root</B> to issue some
commands, whereas others require no privilege. All files mentioned in
this chapter must actually reside on the local disk of each AFS client machine
(they cannot, for example, be symbolic links to files in AFS).
<P>AFS's <B>package</B> program can simplify other aspects of client
machine configuration, including those normally set in the machine's AFS
initialization file. See <A HREF="auagd016.htm#HDRWQ419">Configuring Client Machines with the package Program</A>.
<HR><H2><A NAME="HDRWQ391" HREF="auagd002.htm#ToC_434">Configuration and Cache-Related Files on the Local Disk</A></H2>
<A NAME="IDX7313"></A>
<A NAME="IDX7314"></A>
<A NAME="IDX7315"></A>
<A NAME="IDX7316"></A>
<A NAME="IDX7317"></A>
<P>This section briefly describes the client configuration files that must
reside in the local <B>/usr/vice/etc</B> directory on every client
machine. If the machine uses a disk cache, there must be a partition
devoted to cache files; by convention, it is mounted at the
<B>/usr/vice/cache</B> directory.
<P><B>Note for Windows users:</B> Some files described in this
document possibly do not exist on machines that run a Windows operating
system. Also, Windows uses a backslash
( <B>\</B> ) rather than a forward slash
( <B>/</B> ) to separate the elements in a
pathname.
<P><H3><A NAME="HDRWQ392" HREF="auagd002.htm#ToC_435">Configuration Files in the /usr/vice/etc Directory</A></H3>
<P>The <B>/usr/vice/etc</B> directory on a client
machine's local disk must contain certain configuration files for the
Cache Manager to function properly. They control the most basic aspects
of Cache Manager configuration.
<P>If it is important that the client machines in your cell perform uniformly,
it is most efficient to update these files from a central source. The
following descriptions include pointers to sections that discuss how best to
maintain the files.
<DL>
<A NAME="IDX7318"></A>
<A NAME="IDX7319"></A>
<A NAME="IDX7320"></A>
<A NAME="IDX7321"></A>
<A NAME="IDX7322"></A>
<P><DT><B>afsd
</B><DD>The binary file for the program that initializes the Cache Manager.
It must run each time the machine reboots in order for the machine to remain
an AFS client machine. The program also initializes several daemons
that improve Cache Manager functioning, such as the process that handles
callbacks.
<A NAME="IDX7323"></A>
<A NAME="IDX7324"></A>
<P><DT><B>cacheinfo
</B><DD>A one-line file that sets the cache's most basic configuration
parameters: the local directory at which the Cache Manager mounts the
AFS filespace, the local disk directory to use as the cache, and how many
kilobytes to allocate to the cache.
<P>The <I>IBM AFS Quick Beginnings</I> explains how to create this file as
you install a client machine. To change the cache size on a machine
that uses a memory cache, edit the file and reboot the machine. On a
machine that uses a disk cache, you can change the cache size without
rebooting by issuing the <B>fs setcachesize</B> command. For
instructions, see <A HREF="#HDRWQ394">Determining the Cache Type, Size, and Location</A>.
<A NAME="IDX7325"></A>
<A NAME="IDX7326"></A>
<P><DT><B>CellServDB
</B><DD>This ASCII file names the database server machines in the local cell and
in any foreign cell to which you want to enable access from this
machine. (Database server machines are the machines in a cell that run
the Authentication, Backup, Protection, and VL Server processes; see <A HREF="auagd008.htm#HDRWQ92">Database Server Machines</A>.)
<P>The Cache Manager must be able to reach a cell's database server
machines to fetch files from its filespace. Incorrect or missing
information in the <B>CellServDB</B> file can slow or completely block
access. It is important to update the file whenever a cell's
database server machines change.
<P>As the <B>afsd</B> program initializes the Cache Manager, it loads the
contents of the file into kernel memory. The Cache Manager does not
read the file between reboots, so to incorporate changes to the file into
kernel memory, you must reboot the machine. Alternatively, you can
issue the <B>fs newcell</B> command to insert the changes directly into
kernel memory without changing the file. It can also be convenient to
upgrade the file from a central source. For instructions, see <A HREF="#HDRWQ406">Maintaining Knowledge of Database Server Machines</A>.
<P>(The <B>CellServDB</B> file on client machines is not the same as the
one kept in the <B>/usr/afs/etc</B> directory on server machines, which
lists only the local cell's database server machines. For
instructions on maintaining the server <B>CellServDB</B> file, see <A HREF="auagd008.htm#HDRWQ118">Maintaining the Server CellServDB File</A>).
<A NAME="IDX7327"></A>
<A NAME="IDX7328"></A>
<P><DT><B>NetInfo
</B><DD>This optional ASCII file lists one or more of the network interface
addresses on the client machine. If it exists when the Cache Manager
initializes, the Cache Manager uses it as the basis for the list of interfaces
that it registers with File Servers. See <A HREF="#HDRWQ415">Managing Multihomed Client Machines</A>.
<A NAME="IDX7329"></A>
<A NAME="IDX7330"></A>
<P><DT><B>NetRestrict
</B><DD>This optional ASCII file lists one or more network interface
addresses. If it exists when the Cache Manager initializes, the Cache
Manager removes the specified addresses from the list of interfaces that it
registers with File Servers. See <A HREF="#HDRWQ415">Managing Multihomed Client Machines</A>.
<A NAME="IDX7331"></A>
<A NAME="IDX7332"></A>
<P><DT><B>ThisCell
</B><DD>This ASCII file contains a single line that specifies the complete
domain-style name of the cell to which the machine belongs. Examples
are <TT>abc.com</TT> and <TT>stateu.edu</TT>. This
value defines the default cell in which the machine's users become
authenticated, and in which the command interpreters (for example, the
<B>bos</B> command) contact server processes.
<P>The <I>IBM AFS Quick Beginnings</I> explains how to create this file as
you install the AFS client functionality. To learn about changing a
client machine's cell membership, see <A HREF="#HDRWQ411">Setting a Client Machine's Cell Membership</A>.
</DL>
<P>In addition to these files, the <B>/usr/vice/etc</B> directory also
sometimes contains the following types of files and subdirectories:
<UL>
<A NAME="IDX7333"></A>
<A NAME="IDX7334"></A>
<A NAME="IDX7335"></A>
<A NAME="IDX7336"></A>
<P><LI>The AFS initialization script, called <B>afs.rc</B> on many
system types. In the conventional configuration specified by the
<I>IBM AFS Quick Beginnings</I>, it is a symbolic link to the actual
script kept in the same directory as other initialization files used by the
operating system.
<A NAME="IDX7337"></A>
<A NAME="IDX7338"></A>
<P><LI>A subdirectory that houses AFS kernel library files used by a dynamic
kernel loading program.
<A NAME="IDX7339"></A>
<A NAME="IDX7340"></A>
<P><LI>A subdirectory called <B>C</B>, which houses the Cache Manager catalog
file called <B>afszcm.cat</B>. The fstrace program uses the
catalog file to translate operation codes into character strings, which makes
the message in the trace log more readable. See <A HREF="auagd013.htm#HDRWQ342">About the fstrace Command Suite</A>.
</UL>
<P><H3><A NAME="HDRWQ393" HREF="auagd002.htm#ToC_436">Cache-Related Files</A></H3>
<A NAME="IDX7341"></A>
<A NAME="IDX7342"></A>
<A NAME="IDX7343"></A>
<A NAME="IDX7344"></A>
<A NAME="IDX7345"></A>
<P>A client machine that uses a disk cache must have a local disk directory
devoted to the cache. The conventional mount point is
<B>/usr/vice/cache</B>, but you can use another partition that has more
available space.
<P>Do not delete or directly modify any of the files in the cache
directory. Doing so can cause a kernel panic, from which the only way
to recover is to reboot the machine. By default, only the local
superuser <B>root</B> can read the files directly, by virtue of owning
them.
<P>A client machine that uses a memory cache keeps all of the information
stored in these files in machine memory instead.
<DL>
<A NAME="IDX7346"></A>
<A NAME="IDX7347"></A>
<P><DT><B>CacheItems
</B><DD>A binary-format file in which the Cache Manager tracks the contents of
cache chunks (the <B>V</B> files in the directory, described just
following), including the file ID number (fID) and the data version
number.
<A NAME="IDX7348"></A>
<A NAME="IDX7349"></A>
<P><DT><B>VolumeItems
</B><DD>A binary-format file in which the Cache Manager records the mapping
between mount points and the volumes from which it has fetched data.
The Cache Manager uses the information when responding to the <B>pwd</B>
command, among others.
<A NAME="IDX7350"></A>
<A NAME="IDX7351"></A>
<A NAME="IDX7352"></A>
<P><DT><B>V<VAR>n</VAR>
</B><DD>A cache chunk file, which expands to a maximum size (by default, 64 KB) to
house data fetched from AFS files. The number of <B>V</B><VAR>n</VAR>
files in the cache depends on the cache size among other factors. The
<VAR>n</VAR> is the index assigned to each file; they are numbered
sequentially, but the Cache Manager does not necessarily use them in order or
contiguously. If an AFS file is larger than the maximum size for
<B>V</B><VAR>n</VAR> files, the Cache Manager divides it across multiple
<B>V</B><VAR>n</VAR> files.
</DL>
<HR><H2><A NAME="HDRWQ394" HREF="auagd002.htm#ToC_437">Determining the Cache Type, Size, and Location</A></H2>
<P>This section explains how to configure a memory or disk
cache, how to display and set the size of either type of cache, and how to set
the location of the cache directory for a disk cache.
<A NAME="IDX7353"></A>
<A NAME="IDX7354"></A>
<P>The Cache Manager uses a disk cache by default, and it is the preferred
type of caching. To configure a memory cache, include the
<B>-memcache</B> flag on the <B>afsd</B> command, which is normally
invoked in the machine's AFS initialization file. If configured to
use a memory cache, the Cache Manager does no disk caching, even if the
machine has a disk.
<P><H3><A NAME="Header_438" HREF="auagd002.htm#ToC_438">Choosing the Cache Size</A></H3>
<A NAME="IDX7355"></A>
<P>Cache size influences the performance of a client machine more directly
than perhaps any other cache parameter. The larger the cache, the
faster the Cache Manager is likely to deliver files to users. A small
cache can impair performance because it increases the frequency at which the
Cache Manager must discard cached data to make room for newly requested
data. When an application asks for data that has been discarded, the
Cache Manager must request it from the File Server, and fetching data across
the network is almost always slower than fetching it from the local
disk. The Cache Manager never discards data from a file that has been
modified locally but not yet stored back to the File Server. If the
cache is very small, the Cache Manager possible cannot find any data to
discard. For more information about the algorithm it uses when
discarding cached data, see <A HREF="#HDRWQ401">How the Cache Manager Chooses Data to Discard</A>).
<P>The amount of disk or memory you devote to caching depends on several
factors. The amount of space available in memory or on the partition
housing the disk cache directory imposes an absolute limit. In
addition, you cannot allocate more than 95% of the space available on the
cache directory's partition to a disk cache. The <B>afsd</B>
program exits without starting the Cache Manager and prints an appropriate
message to the standard output stream if you violate this restriction.
For a memory cache, you must leave enough memory for other processes and
applications to run. If you try to allocate more memory than is
actually available, the <B>afsd</B> program exits without initializing the
Cache Manager and produces the following message on the standard output
stream:
<PRE> afsd: memCache allocation failure at <VAR>number</VAR> KB
</PRE>
<P>where <VAR>number</VAR> is how many kilobytes were allocated just before the
failure.
<P>Within these hard limits, the factors that determine appropriate cache size
include the number of users working on the machine, the size of the files with
which they usually work, and (for a memory cache) the number of processes that
usually run on the machine. The higher the demand from these factors,
the larger the cache needs to be to maintain good performance.
<P>Disk caches smaller than 10 MB do not generally perform well.
Machines serving multiple users usually perform better with a cache of at
least 60 to 70 MB. The point at which enlarging the cache further does
not really improve performance depends on the factors mentioned previously,
and is difficult to predict.
<P>Memory caches smaller than 1 MB are nonfunctional, and the performance of
caches smaller than 5 MB is usually unsatisfactory. Suitable upper
limits are similar to those for disk caches but are probably determined more
by the demands on memory from other sources on the machine (number of users
and processes). Machines running only a few processes possibly can use
a smaller memory cache.
<P>AFS imposes an absolute limit on cache size in some versions. See
the <I>IBM AFS Release Notes</I> for the version you are using.
<P><B></B>
<P><H3><A NAME="HDRWQ395" HREF="auagd002.htm#ToC_439">Displaying and Setting the Cache Size and Location</A></H3>
<A NAME="IDX7356"></A>
<A NAME="IDX7357"></A>
<A NAME="IDX7358"></A>
<A NAME="IDX7359"></A>
<A NAME="IDX7360"></A>
<A NAME="IDX7361"></A>
<A NAME="IDX7362"></A>
<A NAME="IDX7363"></A>
<A NAME="IDX7364"></A>
<A NAME="IDX7365"></A>
<A NAME="IDX7366"></A>
<A NAME="IDX7367"></A>
<A NAME="IDX7368"></A>
<A NAME="IDX7369"></A>
<A NAME="IDX7370"></A>
<A NAME="IDX7371"></A>
<A NAME="IDX7372"></A>
<A NAME="IDX7373"></A>
<A NAME="IDX7374"></A>
<A NAME="IDX7375"></A>
<A NAME="IDX7376"></A>
<P>The Cache Manager determines how big to make the cache by reading the
<B>/usr/vice/etc/cacheinfo</B> file as it initializes. As directed
in the <I>IBM AFS Quick Beginnings</I>, you must create the file before
running the <B>afsd</B> program. The file also defines the
directory on which to mount AFS (by convention, <B>/afs</B>), and the
local disk directory to use for a cache directory.
<P>To change any of the values in the file, log in as the local superuser
<B>root</B>. You must reboot the machine to have the new value take
effect. For instructions, see <A HREF="#HDRWQ398">To edit the cacheinfo file</A>.
<P>To change the cache size at reboot without editing the <B>cacheinfo</B>
file, include the <B>-blocks</B> argument to the <B>afsd</B>
command; see the command's reference page in the <I>IBM AFS
Administration Reference</I>.
<P>For a disk cache, you can also use the <B>fs setcachesize</B> command
to reset the cache size without rebooting. The value you set persists
until the next reboot, at which time the cache size returns to the value
specified in the <B>cacheinfo</B> file or by the <B>-blocks</B>
argument to the <B>afsd</B> command. For instructions, see <A HREF="#HDRWQ399">To change the disk cache size without rebooting</A>.
<P>To display the current cache size and the amount of space the Cache Manager
is using at the moment, use the <B>fs getcacheparms</B> command as
detailed in <A HREF="#HDRWQ397">To display the current cache size</A>.
<P><H3><A NAME="HDRWQ396" HREF="auagd002.htm#ToC_440">To display the cache size set at reboot</A></H3>
<OL TYPE=1>
<P><LI>Use a text editor or the <B>cat</B> command to display the contents of
the <B>/usr/vice/etc/cacheinfo</B> file.
<PRE> % <B>cat /usr/vice/etc/cacheinfo</B>
</PRE>
</OL>
<A NAME="IDX7377"></A>
<A NAME="IDX7378"></A>
<A NAME="IDX7379"></A>
<A NAME="IDX7380"></A>
<A NAME="IDX7381"></A>
<A NAME="IDX7382"></A>
<P><H3><A NAME="HDRWQ397" HREF="auagd002.htm#ToC_441">To display the current cache size</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs getcacheparms</B> command on the client
machine.
<PRE> % <B>fs getcacheparms</B>
</PRE>
<P>where <B>getca</B> is the shortest acceptable abbreviation of
<B>getcacheparms</B>.
<P>The output shows the number of kilobyte blocks the Cache Manager is using
as a cache at the moment the command is issued, and the current size of the
cache. For example:
<PRE> AFS using 13709 of the cache's available 15000 1K byte blocks.
</PRE>
</OL>
<A NAME="IDX7383"></A>
<A NAME="IDX7384"></A>
<A NAME="IDX7385"></A>
<A NAME="IDX7386"></A>
<A NAME="IDX7387"></A>
<P><H3><A NAME="HDRWQ398" HREF="auagd002.htm#ToC_442">To edit the cacheinfo file</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Use a text editor to edit the <B>/usr/vice/etc/cacheinfo</B> file,
which has three fields, separated by colons:
<UL>
<P><LI>The first field names the local directory on which to mount the AFS
filespace. The conventional location is <B>/afs</B>.
<P><LI>The second field defines the local disk directory to use for the disk
cache. The conventional location is the <B>/usr/vice/cache</B>
directory, but you can specify an alternate directory if another partition has
more space available. There must always be a value in this field, but
the Cache Manager ignores it if the machine uses a memory cache.
<P><LI>The third field defines cache size as a number of kilobyte (1024-byte)
blocks.
</UL>
<P>The following example mounts the AFS filespace at the <B>/afs</B>
directory, names <B>/usr/vice/cache</B> as the cache directory, and sets
cache size to 50,000 KB:
<PRE> <B>/afs:/usr/vice/cache:50000</B>
</PRE>
</OL>
<A NAME="IDX7388"></A>
<A NAME="IDX7389"></A>
<A NAME="IDX7390"></A>
<A NAME="IDX7391"></A>
<A NAME="IDX7392"></A>
<A NAME="IDX7393"></A>
<P><H3><A NAME="HDRWQ399" HREF="auagd002.htm#ToC_443">To change the disk cache size without rebooting</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI><A NAME="LIWQ400"></A>Issue the <B>fs setcachesize</B> command to set a new disk
cache size.
<TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">This command does not work for a memory cache.
</TD></TR></TABLE>
<PRE> # <B>fs setcachesize</B> <<VAR>size in 1K byte blocks (0 => reset)</VAR>>
</PRE>
<P>where
<DL>
<P><DT><B><B>setca</B>
</B><DD>Is the shortest acceptable abbreviation of <B>setcachesize</B>.
<P><DT><B><VAR>size in 1K byte blocks (0 => reset)</VAR>
</B><DD>Sets the number of kilobyte blocks to be used for the cache.
Specify a positive integer (<B>1024</B> equals 1 MB), or <B>0</B>
(zero) to reset the cache size to the value specified in the
<B>cacheinfo</B> file.
</DL>
</OL>
<A NAME="IDX7394"></A>
<A NAME="IDX7395"></A>
<A NAME="IDX7396"></A>
<A NAME="IDX7397"></A>
<A NAME="IDX7398"></A>
<A NAME="IDX7399"></A>
<P><H3><A NAME="Header_444" HREF="auagd002.htm#ToC_444">To reset the disk cache size to the default without rebooting</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Issue the <B>fs setcachesize</B> command to reset the size of the
local disk cache (the command does not work for a memory cache). Choose
one of the two following options:
<UL>
<P><LI>To reset the cache size to the value specified in the local
<B>cacheinfo</B> file, specify the value <B>0</B> (zero)
<PRE> # <B>fs setcachesize 0</B>
</PRE>
<P><LI>To reset the cache size to the value set at the last reboot of the
machine, include the <B>-reset</B> flag. Unless the
<B>-blocks</B> argument was used on the <B>afsd</B> command, this is
also the value in the <B>cacheinfo</B> file.
<PRE> # <B>fs setcachesize -reset</B>
</PRE>
</UL>
<P>where
<DL>
<P><DT><B><B>setca</B>
</B><DD>Is the shortest acceptable abbreviation of <B>setcachesize</B>.
<P><DT><B>0
</B><DD>Resets the disk cache size to the value in the third field of the
<B>/usr/vice/etc/cacheinfo</B> file.
<P><DT><B>-reset
</B><DD>Resets the cache size to the value set at the last reboot.
</DL>
</OL>
<P><H3><A NAME="HDRWQ401" HREF="auagd002.htm#ToC_445">How the Cache Manager Chooses Data to Discard</A></H3>
<P>When the cache is full and application programs request more
data from AFS, the Cache Manager must flush out cache chunks to make room for
the data. The Cache Manager considers two factors:
<OL TYPE=1>
<P><LI>How recently an application last accessed the data.
<P><LI>Whether the chunk is <I>dirty</I>. A dirty chunk contains
changes to a file that have not yet been saved back to the permanent copy
stored on a file server machine.
</OL>
<P>The Cache Manager first checks the least-recently used chunk. If it
is not dirty, the Cache Manager discards the data in that chunk. If the
chunk is dirty, the Cache Manager moves on to check the next least recently
used chunk. It continues in this manner until it has created a
sufficient number of empty chunks.
<P>Chunks that contain data fetched from a read-only volume are by definition
never dirty, so the Cache Manager can always discard them. Normally,
the Cache Manager can also find chunks of data fetched from read/write volumes
that are not dirty, but a small cache makes it difficult to find enough
eligible data. If the Cache Manager cannot find any data to discard, it
must return I/O errors to application programs that request more data from
AFS. Application programs usually have a means for notifying the user
of such errors, but not for revealing their cause.
<HR><H2><A NAME="HDRWQ402" HREF="auagd002.htm#ToC_446">Setting Other Cache Parameters with the afsd program</A></H2>
<P>There are only three cache configuration parameters you must
set: the mount directory for AFS, the location of the disk cache
directory, and the cache size. They correspond to the three fields in
the <B>/usr/vice/etc/cacheinfo</B> file, as discussed in <A HREF="#HDRWQ394">Determining the Cache Type, Size, and Location</A>. However, if you want to experiment with fine-tuning
cache performance, you can use the arguments on the <B>afsd</B> command to
control several other parameters. This section discusses a few of these
parameters that have the most direct effect on cache performance. To
learn more about the <B>afsd</B> command's arguments, see its
reference page in the <I>IBM AFS Administration Reference</I>.
<P>In addition, the AFS initialization script included in the AFS distribution
for each system type includes several variables that set several
<B>afsd</B> arguments in a way that is suitable for client machines of
different sizes and usage patterns. For instructions on using the
script most effectively, see the section on configuring the Cache Manager in
the <I>IBM AFS Quick Beginnings</I>.
<P><H3><A NAME="HDRWQ403" HREF="auagd002.htm#ToC_447">Setting Cache Configuration Parameters</A></H3>
<P>The cache configuration parameters with the most direct
effect on cache performance include the following:
<UL>
<P><LI><I>total cache size.</I> This is the amount of disk space or
machine memory available for caching, as discussed in detail in <A HREF="#HDRWQ394">Determining the Cache Type, Size, and Location</A>.
<P><LI><I>number of cache chunks.</I> For a disk cache, each chunk is
a <B>V</B><VAR>n</VAR> file in the local cache directory (see <A HREF="#HDRWQ393">Cache-Related Files</A>). For a memory cache, each chunk is a set of
contiguous blocks allocated in machine memory.
<P>This parameter does not have as much of an effect on cache performance as
total size. However, adjusting it can influence how often the Cache
Manager must discard cached data to make room for new data. Suppose,
for example, that you set the disk cache size to 50 MB and the number of
chunks (<B>V</B><VAR>n</VAR> files) to 1,000. If each 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 can contain data from only one AFS file) but
the cache holds only about 20 MB of data. When a user requests more
data from the File Server, the Cache Manager must discard cached data to
reclaim some chunks, even though the cache is filled to less than 50% of its
capacity. In such a situation, increasing the number of chunks enables
the Cache Manager to discard data less often.
<P><LI><I>chunk size.</I> This parameter determines the maximum amount
of data that can fit in a chunk. If a cached element is smaller than
the chunk size, the remaining space in the chunk is not used (a chunk can hold
no more than one element). If an element cannot fit in a single chunk,
it is split across as many chunks as needed. This parameter also
determines how much data the Cache Manager requests at a time from the File
Server (how much data per <I>fetch RPC</I>, because AFS uses partial file
transfer).
<P>The main reason to change chunk size is because of its relation to the
amount of data fetched per RPC. If your network links are very fast, it
can improve performance to increase chunk size; if the network is
especially slow, it can make sense to decrease chunk size.
<P><LI><I>number of dcache entries in memory.</I> The Cache Manager
maintains one dcache entry for each cache chunk, recording a small amount of
information, such as the file ID (fID) and version number of the AFS file
corresponding to the chunk.
<P>For a disk cache, dcache entries reside in the
<B>/usr/vice/cache/CacheItems</B> file; a small number are duplicated
in machine memory to speed access.
<P>For a memory cache, the number of dcache entries equals the number of cache
chunks. For a discussion of the implications of this correspondence,
see <A HREF="#HDRWQ405">Controlling Memory Cache Configuration</A>.
</UL>
<P>For a description of how the Cache Manager determines defaults for number
of chunks, chunk size, and number of dcache entries in a disk cache, see <A HREF="#HDRWQ404">Configuring a Disk Cache</A>; for a memory cache, see <A HREF="#HDRWQ405">Controlling Memory Cache Configuration</A>. The instructions also explain
how to use the <B>afsd</B> command's arguments to override the
defaults.
<P><H3><A NAME="HDRWQ404" HREF="auagd002.htm#ToC_448">Configuring a Disk Cache</A></H3>
<P>The default number of cache chunks (<B>V</B><VAR>n</VAR>
files) in a disk cache is calculated by the <B>afsd</B> command to be the
greatest of the following:
<UL>
<P><LI>100
<P><LI>1.5 times the result of dividing cache size by chunk size
(<VAR>cachesize</VAR>/<VAR>chunksize</VAR> * 1.5)
<P><LI>The result of dividing cachesize by 10 MB (<VAR>cachesize</VAR>/10240)
</UL>
<P>You can override this value by specifying a positive integer with the
<B>-files</B> argument. Consider increasing this value if more than
75% of the <B>V</B><VAR>n</VAR> files are already used soon after the Cache
Manager finishes initializing. Consider decreasing it if only a small
percentage of the chunks are used at that point. In any case, never
specify a value less than 100, because a smaller value can cause performance
problems.
<P>The following example sets the number of <B>V</B><VAR>n</VAR> files to
2,000:
<PRE> <B>/usr/vice/etc/afsd -files 2000</B>
</PRE>
<TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">It is conventional to place the <B>afsd</B> command in a machine's
AFS initialization file, rather than entering it in a command shell.
Furthermore, the values specified in this section are examples only, and are
not necessarily suitable for a specific machine.
</TD></TR></TABLE>
<P>The default chunk size for a disk cache is 64 KB. In general, the
only reason to change it is to adjust to exceptionally slow or fast
networks; see <A HREF="#HDRWQ403">Setting Cache Configuration Parameters</A>. You can use the <B>-chunksize</B>
argument to override the default. Chunk size must be a power of 2, so
provide an integer 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 (2<SUP>10</SUP> =
1024); a value of 16 equals the default for disk caches (2<SUP>16</SUP> =
64 KB). Specifying a value of 0 (zero) or greater than 30 returns chunk
size to the default. Values less than 10 (1 KB) are not
recommended. The following example sets chunk size to 16 KB
(2<SUP>14</SUP>):
<PRE> <B>/usr/vice/etc/afsd -chunksize 14</B>
</PRE>
<P>For a disk cache, the default number of dcache entries duplicated in memory
is one-half the number of chunks specified with the <B>-files</B>
argument, to a maximum of 2,000 entries. You can use the
<B>-dcache</B> argument to change the default, even exceeding 2,000 if you
wish. Duplicating more than half the dcache entries in memory is not
usually necessary, but sometimes improves performance slightly, because access
to memory is faster than access to disk. The following example sets the
number to 750:
<PRE> <B>/usr/vice/etc/afsd -dcache 750</B>
</PRE>
<P>When configuring a disk cache, you can combine the <B>afsd</B>
command's arguments in any way. The main reason for this
flexibility is that the setting you specify for disk cache size (in the
<B>cacheinfo</B> file or with the <B>-blocks</B> argument) is an
absolute maximum limit. You cannot override it by specifying higher
values for the <B>-files</B> or <B>-chunksize</B> arguments, alone or
in combination. A related reason is that the Cache Manager does not
have to reserve a set amount of memory on disk. <B>V</B><VAR>n</VAR>
files (the chunks in a disk cache) are initially zero-length, but can expand
up to the specified chunk size and shrink again, as needed. If you set
the number of <B>V</B><VAR>n</VAR> files to such a large value that
expanding all of them to the full allowable size exceeds the total cache size,
they simply never grow to full size.
<P><H3><A NAME="HDRWQ405" HREF="auagd002.htm#ToC_449">Controlling Memory Cache Configuration</A></H3>
<P>Configuring a memory cache differs from configuring a disk
cache in that not all combinations of the <B>afsd</B> command's
arguments are allowed. This limitation results from the greater
interaction between the configuration parameters in a memory cache than a disk
cache. If all combinations are allowed, it is possible to set the
parameters in an inconsistent way. A list of the acceptable and
unacceptable combinations follows a discussion of default values.
<P>The default chunk size for a memory cache is 8 KB. In general, the
only reason to change it is to adjust to exceptionally slow or fast
networks; see <A HREF="#HDRWQ403">Setting Cache Configuration Parameters</A>.
<P>There is no predefined default for number of chunks in a memory
cache. The Cache Manager instead calculates the correct number by
dividing the total cache size by the chunk size. Recall that for a
memory cache, all dcache entries must be in memory. This implies that
the number of chunks equals the number of dcache entries in memory, and that
there is no default for number of dcache entries (like the number of chunks,
it is calculated by dividing the total size by the chunk size).
<P>The following are acceptable combinations of the <B>afsd</B>
command's arguments when configuring a memory cache:
<UL>
<P><LI><B>-blocks</B> alone, which overrides the cache size specified in the
<B>/usr/vice/etc/cacheinfo</B> file. The Cache Manager divides the
value of this argument by the default chunk size of eight KB to calculate the
number of chunks and dcache entries. The following example sets cache
size to five MB (5,120 KB) and the number of chunks to 640 (5,120 divided by
8):
<PRE> <B>/usr/vice/etc/afsd -memcache -blocks 5120</B>
</PRE>
<P><LI><B>-chunksize</B> alone, to override the default of eight KB.
The chunk size must be a 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 ten
sets chunk size to 1 KB (2<SUP>10</SUP> = 1024); a value of 13 equals the
default for memory caches (2<SUP>13</SUP> = 8 KB). Specifying a value
of 0 (zero) or greater than 30 returns the chunk size to the default.
Values less than ten (equivalent to 1 KB) are not recommended. The
following example sets the chunk size to four KB (2<SUP>12</SUP>).
Assuming a total cache size of four MB (4,096 KB), the resulting number of
chunks is 1024.
<PRE> <B>/usr/vice/etc/afsd -memcache -chunksize 12</B>
</PRE>
<P><LI><B>-blocks</B> and <B>-chunksize</B> together override the
defaults for cache size and chunk size. The Cache Manager divides the
first by the second to calculate the number of chunks and dcache
entries. For example, the following example sets the cache size to six
MB (6,144 KB) and chunksize to four KB (2<SUP>12</SUP>), resulting in 1,536
chunks:
<PRE> <B>/usr/vice/etc/afsd -memcache -blocks 6144 -chunksize 12</B>
</PRE>
</UL>
<P>The following arguments or combinations explicitly set the number of chunks
and dcache entries. It is best not to use them, because they set the
cache size indirectly, forcing you to perform a hand calculation to determine
the size of the cache. Instead, set the <B>-blocks</B> and
<B>-chunksize</B> arguments alone or in combination; in those cases,
the Cache Manager determines the number of chunks and dcache entries
itself. Because the following combinations are not recommended, no
examples are included.
<UL>
<P><LI>The <B>-dcache</B> argument alone explicitly sets the number of chunks
and dcache entries. The Cache Manager multiples this value times the
default chunk size of 8 KB to derive the total cache size (overriding the
value in the <B>cacheinfo</B> file).
<P><LI>The combination of <B>-dcache</B> and <B>-chunksize</B> sets the
chunk number and size. The Cache Manager sets the specified values and
multiplies them together to obtain total cache size (overriding the value in
the <B>cacheinfo</B> file).
</UL>
<P>Do not use the following arguments for a memory cache:
<UL>
<P><LI><B>-files</B> alone. This argument controls the number of
<B>V</B><VAR>n</VAR> files for a disk cache, but is ignored for a memory
cache.
<P><LI><B>-blocks</B> and <B>-dcache</B>. An error message
results, because it is possible to provide values such that dividing the first
(total size) by the second (number of chunks) results in a chunk size that is
not a power of two.
</UL>
<HR><H2><A NAME="HDRWQ406" HREF="auagd002.htm#ToC_450">Maintaining Knowledge of Database Server Machines</A></H2>
<A NAME="IDX7400"></A>
<A NAME="IDX7401"></A>
<A NAME="IDX7402"></A>
<A NAME="IDX7403"></A>
<A NAME="IDX7404"></A>
<A NAME="IDX7405"></A>
<A NAME="IDX7406"></A>
<A NAME="IDX7407"></A>
<A NAME="IDX7408"></A>
<P>For the users of an AFS client machine to access a cell's AFS
filespace and other services, the Cache Manager and other client-side agents
must have an accurate list of the cell's database server machines.
The affected functions include the following:
<UL>
<P><LI>Accessing files. The Cache Manager contacts the Volume Location
(VL) Server to learn which file server machine houses the volume containing a
requested file or directory. If the Cache Manager cannot contact a
cell's VL Servers, it cannot fetch files.
<P><LI>Authenticating. The <B>klog</B> program and AFS-modified login
utilities contact the Authentication Server to obtain tokens, which the AFS
server processes accept as proof that the user is authenticated.
<P><LI>Creating protection groups. The <B>pts</B> command interpreter
contacts the Protection Server when users create protection groups or request
information from the Protection Database.
<P><LI>Editing access control lists (ACLs). The <B>fs</B> command
interpreter contacts the File Server that maintains the read/write volume
containing a file or directory; the location information comes from the
VL Server.
</UL>
<P>To enable a machine's users to access a cell, you must list the names
and IP addresses of its database server machines in the
<B>/usr/vice/etc/CellServDB</B> file on the machine's local
disk. In addition to the machine's 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 must also mount its
<B>root.cell</B> volume in the local AFS filespace; the
conventional location is just under the AFS root directory,
<B>/afs</B>. For instructions, see the <I>IBM AFS Quick
Beginnings</I>.)
<P><H3><A NAME="Header_451" HREF="auagd002.htm#ToC_451">How Clients Use the List of Database Server Machines</A></H3>
<P>As the <B>afsd</B> program runs and initializes the Cache Manager,
it reads the contents of the <B>CellServDB</B> file into kernel
memory. The Cache Manager does not consult the file again until the
machine next reboots. In contrast, the command interpreters for the AFS
command suites (such as <B>fs</B> and <B>pts</B>) read the
<B>CellServDB</B> file each time they need to contact a database server
process.
<P>When a cell's list of database server machines changes, you must
change both the <B>CellServDB</B> file and the list in kernel memory to
preserve consistent client performance; some commands probably fail if
the two lists of machines disagree. One possible method for updating
both the <B>CellServDB</B> file and kernel memory is to edit the file and
reboot the machine. To avoid needing to reboot, you can instead perform
both of the following steps:
<OL TYPE=1>
<P><LI>Issue the <B>fs newcell</B> command to alter the list in kernel memory
directly, making the changes available to the Cache Manager.
<P><LI>Edit the <B>CellServDB</B> file to make the changes available to
command interpreters. For a description of the file's format, see <A HREF="#HDRWQ407">The Format of the CellServDB file</A>.
</OL>
<P>The consequences of missing or incorrect information in the
<B>CellServDB</B> file or kernel memory are as follows:
<UL>
<P><LI>If there is no entry for a cell, the machine's users cannot access
the cell.
<P><LI>If a cell's entry does not include a database server machine, then
the Cache Manager and command interpreters never attempt to contact the
machine. The omission does not prevent access to the cell--as long
as the information about the other database server machines is correct and the
server processes, machines, and network are functioning correctly--but it
can put an undue burden on the machines that are listed. If all of the
listed machines become inaccessible to clients, then the cell becomes
inaccessible even if the omitted database server machine is functioning
correctly.
<P><LI>If a machine's name or address is incorrect, or the machine is not
actually running the database server processes, then requests from clients
time out. Users can experience lengthy delays because they have to wait
the full timeout period before the Cache Manager or command interpreter
contacts another database server machine.
</UL>
<P><H3><A NAME="HDRWQ407" HREF="auagd002.htm#ToC_452">The Format of the CellServDB file</A></H3>
<A NAME="IDX7409"></A>
<A NAME="IDX7410"></A>
<P>When editing the <B>/usr/vice/etc/CellServDB</B> file, you must use the
correct format for cell and machine entries. Each cell has a separate
entry. The first line has the following format:
<PRE> ><VAR>cell_name</VAR> #<VAR>organization</VAR>
</PRE>
<P>where <VAR>cell_name</VAR> is the cell's complete Internet domain name
(for example, <B>abc.com</B>) and <VAR>organization</VAR> is an
optional field that follows any number of spaces and the number sign
(<TT>#</TT>) and can name the organization to which the cell corresponds
(for example, the ABC Corporation). After the first line comes a
separate line for each database server machine. Each line has the
following format:
<PRE> <VAR>IP_address</VAR> #<VAR>machine_name</VAR>
</PRE>
<P>where <VAR>IP_address</VAR> is the machine's IP address in dotted
decimal format (for example, 192.12.105.3).
Following any number of spaces and the number sign (<TT>#</TT>) is
<VAR>machine_name</VAR>, the machine's fully-qualified hostname (for
example, <B>db1.abc.com</B>). In this case, the
number sign does not indicate a comment: <VAR>machine_name</VAR> is a
required field.
<P>The order in which the cells appear is not important, but it is convenient
to put the client machine's home cell first. Do not include any
blank lines in the file, not even after the last entry.
<P>The following example shows entries for two cells, each of which has three
database server machines:
<PRE> >abc.com #ABC Corporation (home cell)
192.12.105.3 #db1.abc.com
192.12.105.4 #db2.abc.com
192.12.105.55 #db3.abc.com
>stateu.edu #State University cell
138.255.68.93 #serverA.stateu.edu
138.255.68.72 #serverB.stateu.edu
138.255.33.154 #serverC.stateu.edu
</PRE>
<P><H3><A NAME="HDRWQ408" HREF="auagd002.htm#ToC_453">Maintaining the Client CellServDB File</A></H3>
<A NAME="IDX7411"></A>
<A NAME="IDX7412"></A>
<P>Because a correct entry in the <B>CellServDB</B> file is vital for
consistent client performance, you must also update the file on each client
machine whenever a cell's list of database server machines changes (for
instance, when you follow the instructions in the <I>IBM AFS Quick
Beginnings</I> to add or remove a database server machine). To
facilitate the client updates, you can use the <B>package</B> program,
which copies files from a central source in AFS to the local disk of client
machines. It is conventional to invoke the <B>package</B> program
in a client machine's AFS initialization file so that it runs as the
machine reboots, but you can also issue the <B>package</B> command at any
time. For instructions, see <A HREF="auagd016.htm#HDRWQ448">Running the package program</A>.
<P>If you use the <B>package</B> program, the conventional location for
your cell's central source <B>CellServDB</B> file is
<B>/afs/</B><VAR>cell_name</VAR><B>/common/etc/CellServDB</B>, where
<VAR>cell_name</VAR> is your cell name.
<A NAME="IDX7413"></A>
<P>Creating a symbolic or hard link from <B>/usr/vice/etc/CellServDB</B>
to a central source file in AFS is not a viable option. The
<B>afsd</B> program reads the file into kernel memory before the Cache
Manager is completely initialized and able to access AFS.
<P>Because every client machine has its own copy of the <B>CellServDB</B>
file, you can in theory make the set of accessible cells differ on various
machines. In most cases, however, it is best to maintain consistency
between the files on all client machines in the cell: differences
between machines are particularly confusing if users commonly use a variety of
machines rather than just one.
<P>The AFS Product Support group maintains a central <B>CellServDB</B>
file that includes all cells that have agreed to make their database server
machines access to other AFS cells. It is advisable to check this file
periodically for updated information. See <A HREF="auagd007.htm#HDRWQ38">Making Your Cell Visible to Others</A>.
<A NAME="IDX7414"></A>
<P>An entry in the local <B>CellServDB</B> is one of the two requirements
for accessing a cell. The other is that the cell's
<B>root.cell</B> volume is mounted in the local filespace, by
convention as a subdirectory of the <B>/afs</B> directory. For
instructions, see <A HREF="auagd010.htm#HDRWQ213">To create a cellular mount point</A>.
<TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">The <B>/usr/vice/etc/CellServDB</B> file on a client machine is not the
same as the <B>/usr/afs/etc/CellServDB</B> file on the local disk of a
file server machine. The server version lists only the database server
machines in the server machine's home cell, because server processes
never need to contact foreign cells. It is important to update both
types of <B>CellServDB</B> file on all machines in the cell whenever there
is a change to your cell's database server machines. For more
information about maintaining the server version of the <B>CellServDB</B>
file, see <A HREF="auagd008.htm#HDRWQ118">Maintaining the Server CellServDB File</A>.
</TD></TR></TABLE>
<A NAME="IDX7415"></A>
<A NAME="IDX7416"></A>
<A NAME="IDX7417"></A>
<A NAME="IDX7418"></A>
<A NAME="IDX7419"></A>
<P><H3><A NAME="Header_454" HREF="auagd002.htm#ToC_454">To display the /usr/vice/etc/CellServDB file</A></H3>
<OL TYPE=1>
<P><LI>Use a text editor or the <B>cat</B> command to display the contents of
the <B>/usr/vice/etc/CellServDB</B> file. By default, the mode bits
on the file permit anyone to read it.
<PRE> % <B>cat /usr/vice/etc/CellServDB</B>
</PRE>
</OL>
<A NAME="IDX7420"></A>
<A NAME="IDX7421"></A>
<P><H3><A NAME="Header_455" HREF="auagd002.htm#ToC_455">To display the list of database server machines in kernel memory</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs listcells</B> command.
<PRE> % <B>fs listcells [&]</B>
</PRE>
<P>where <B>listc</B> is the shortest acceptable abbreviation of
<B>listcells</B>.
<P>To have your shell prompt return immediately, include the ampersand
(<B>&</B>), which makes the command run in the background. It
can take a while to generate the complete output because the kernel stores
database server machines' IP addresses only, and the <B>fs</B>
command interpreter has the cell's name resolution service (such as the
Domain Name Service or a local host table) translate them into
hostnames. You can halt the command at any time by issuing an interrupt
signal such as <B>Ctrl-c</B>.
<P>The output includes a single line for each cell, in the following
format:
<PRE> Cell <VAR>cell_name</VAR> on hosts <VAR>list_of_hostnames</VAR>.
</PRE>
<P>The name service sometimes returns hostnames in uppercase letters, and if
it cannot resolve a name at all, it returns its IP address. The
following example illustrates all three possibilities:
<PRE> % <B>fs listcells</B>
.
.
Cell abc.com on hosts db1.abc.com db2.abc.com db3.abc.com
Cell stateu.edu on hosts SERVERA.STATEU.EDU SERVERB.STATEU.EDU
SERVERC.STATEU.EDU
Cell ghi.org on hosts 191.255.64.111 191.255.64.112
.
.
</PRE>
</OL>
<A NAME="IDX7422"></A>
<A NAME="IDX7423"></A>
<A NAME="IDX7424"></A>
<A NAME="IDX7425"></A>
<A NAME="IDX7426"></A>
<A NAME="IDX7427"></A>
<A NAME="IDX7428"></A>
<A NAME="IDX7429"></A>
<A NAME="IDX7430"></A>
<A NAME="IDX7431"></A>
<A NAME="IDX7432"></A>
<P><H3><A NAME="Header_456" HREF="auagd002.htm#ToC_456">To change the list of a cell's database server machines in kernel memory</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>If you a use a central copy of the <B>CellServDB</B> file as a source
for client machines, verify that its directory's ACL grants you the
<B>l</B> (<B>lookup</B>), <B>r</B> (<B>read</B>), and
<B>w</B> (<B>write</B>) permissions. The conventional directory
is <B>/afs/</B><VAR>cell_name</VAR><B>/common/etc</B>. If
necessary, issue the <B>fs listacl</B> command, which is fully described
in <A HREF="auagd020.htm#HDRWQ572">Displaying ACLs</A>.
<PRE> # <B>fs listacl</B> [<<VAR>dir/file path</VAR>>]
</PRE>
<A NAME="IDX7433"></A>
<A NAME="IDX7434"></A>
<P><LI><A NAME="LINEWCELL"></A>Issue the <B>fs newcell</B> command to add or change a
cell's entry in kernel memory. Repeat the command for each
cell.
<TABLE><TR><TD ALIGN="LEFT" VALIGN="TOP"><B>Note:</B></TD><TD ALIGN="LEFT" VALIGN="TOP">You cannot use this command to remove a cell's entry completely from
kernel memory. In the rare cases when you urgently need to prevent
access to a specific cell, you must edit the <B>CellServDB</B> file and
reboot the machine.
</TD></TR></TABLE>
<PRE> # <B>fs newcell</B> <<VAR>cell name</VAR>> <<VAR>primary servers</VAR>><SUP>+</SUP> \
[<B>-linkedcell</B> <<VAR>linked cell name</VAR>>]
</PRE>
<P>where
<DL>
<P><DT><B>n
</B><DD>Is the shortest acceptable abbreviation of <B>newcell</B>.
<P><DT><B><VAR>cell name</VAR>
</B><DD>Specifies the complete Internet domain name of the cell for which to
record a new list of database server machines.
<P><DT><B><VAR>primary servers</VAR>
</B><DD>Specifies the fully-qualified hostname or IP address in dotted-decimal
format for each database server machine in the cell. The list you
provide completely replaces the existing list.
<P><DT><B>-linkedcell
</B><DD>Specifies the complete Internet domain name of the AFS cell to link to a
DCE cell for the purposes of DFS fileset location. You can use this
argument if the machine's AFS users access DFS via the AFS/DFS Migration
Toolkit Protocol Translator. For instructions, see the <I>IBM AFS/DFS
Migration Toolkit Administration Guide and Reference</I>.
</DL>
<P><LI>Add or edit the cell's entry in the local
<B>/usr/vice/etc/CellServDB</B> file, using one of the following three
methods. In each case, be sure to obey the formatting requirements
described in <A HREF="#HDRWQ407">The Format of the CellServDB file</A>.
<UL>
<P><LI>If you maintain a central source version of the <B>CellServDB</B> file
and use the <B>package</B> program, first use a text editor to alter the
central copy of the file. Then issue the <B>package</B> command to
transfer the contents of the file to the local machine. For complete
instructions, see <A HREF="auagd016.htm#HDRWQ448">Running the package program</A>.
<PRE> # <B>/etc/package -v -c</B> <<VAR>name of package file</VAR>>
</PRE>
<P><LI>If you maintain a central source <B>CellServDB</B> file but do not use
the <B>package</B> program, first use a text editor to alter the central
copy of the file. Then use a copying command such as the <B>cp</B>
command to copy it to the local <B>/usr/vice/etc/CellServDB</B>
file.
<P><LI>If you do not use a central source <B>CellServDB</B> file, edit the
local machine's <B>/usr/vice/etc/CellServDB</B> file directly.
</UL>
</OL>
<HR><H2><A NAME="HDRWQ409" HREF="auagd002.htm#ToC_457">Determining if a Client Can Run Setuid Programs</A></H2>
<A NAME="IDX7435"></A>
<A NAME="IDX7436"></A>
<A NAME="IDX7437"></A>
<P>A <I>setuid program</I> is one whose binary file has the UNIX setuid
mode bit turned on. While a setuid program runs, the user who
initialized it assumes the local identity (UNIX UID) of the binary file's
owner, and so is granted the permissions in the local file system that pertain
to the owner. Most commonly, the issuer's assumed identity (often
referred to as <I>effective UID</I>) is the local superuser
<B>root</B>.
<P>AFS does not recognize effective UID: if a setuid program accesses
AFS files and directories, it uses the current AFS identity of the user who
initialized the program, not of the program's owner. Nevertheless,
it can be useful to store setuid programs in AFS for use on more than one
client machine. AFS enables a client machine's administrator to
determine whether the local Cache Manager allows setuid programs to run or
not.
<P>By default, the Cache Manager allows programs from its home cell to run
with setuid permission, but denies setuid permission to programs from foreign
cells. A program belongs to the same cell as the file server machine
that houses the volume in which the file resides, as specified in the file
server machine's <B>/usr/afs/etc/ThisCell</B> file. The Cache
Manager determines its own home cell by reading the
<B>/usr/vice/etc/ThisCell</B> file at initialization.
<P>To change a cell's setuid status with respect to the local machine,
become the local superuser <B>root</B> and issue the <B>fs setcell</B>
command. To determine a cell's current setuid status, use the
<B>fs getcellstatus</B> command.
<P>When you issue the <B>fs setcell</B> command, you directly alter a
cell's setuid status as recorded in kernel memory, so rebooting the
machine is not necessary. However, nondefault settings do not persist
across reboots of the machine unless you add the appropriate <B>fs
setcell</B> command to the machine's AFS initialization file.
<P>Only members of the <B>system:administrators</B> group can turn
on the setuid mode bit on an AFS file or directory. When the setuid
mode bit is turned on, the UNIX <B>ls -l</B> command displays the third
user mode bit as an <B>s</B> instead of an <B>x</B>, but for an AFS
file or directory, the <B>s</B> appears only if setuid permission is
enabled for the cell in which the file resides.
<A NAME="IDX7438"></A>
<A NAME="IDX7439"></A>
<P><H3><A NAME="Header_458" HREF="auagd002.htm#ToC_458">To determine a cell's setuid status</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs getcellstatus</B> command to check the setuid status
of each desired cell.
<PRE> % <B>fs getcellstatus</B> <<VAR>cell name</VAR>>
</PRE>
<P>where
<DL>
<P><DT><B><B>getce</B>
</B><DD>Is the shortest acceptable abbreviation of
<B>getcellstatus</B>.
<P><DT><B><VAR>cell name</VAR>
</B><DD>Names each cell for which to report setuid status. Provide the
complete Internet domain name or a shortened form that distinguishes it from
the other cells listed in the local <B>/usr/vice/etc/CellServDB</B>
file.
</DL>
</OL>
<P>The output reports the setuid status of each cell:
<UL>
<P><LI>the string <TT>no setuid allowed</TT> indicates that the Cache Manager
does not allow programs from the cell to run with setuid permission
<P><LI><TT>setuid allowed</TT> indicates that the Cache Manager allows programs
from the cell to run with setuid permission
</UL>
<A NAME="IDX7440"></A>
<A NAME="IDX7441"></A>
<P><H3><A NAME="Header_459" HREF="auagd002.htm#ToC_459">To change a cell's setuid status</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Issue the <B>fs setcell</B> command to change the setuid status of the
cell.
<PRE> # <B>fs setcell</B> <<VAR>cell name</VAR>><SUP>+</SUP> [<B>-suid</B>] [<B>-nosuid</B>]
</PRE>
<P>where
<DL>
<P><DT><B><B>setce</B>
</B><DD>Is the shortest acceptable abbreviation of <B>setcell</B>.
<P><DT><B><VAR>cell name</VAR>
</B><DD>Names each cell for which to change setuid status as specified by the
<B>-suid</B> or <B>-nosuid</B> flag. Provide each cell's
complete Internet domain name or a shortened form that distinguishes it from
the other cells listed in the local <B>/usr/vice/etc/CellServDB</B>
file.
<P><DT><B><B>-suid</B>
</B><DD>Enables programs from each specified cell to execute with setuid
permission. Provide this flag or the <B>-nosuid</B> flag, or omit
both to disable setuid permission for each cell.
<P><DT><B><B>-nosuid</B>
</B><DD>Prevents programs from each specified cell from executing with setuid
permission. Provide this flag or the <B>-suid</B> flag, or omit
both to disable setuid permission for each cell.
</DL>
</OL>
<HR><H2><A NAME="HDRWQ410" HREF="auagd002.htm#ToC_460">Setting the File Server Probe Interval</A></H2>
<A NAME="IDX7442"></A>
<A NAME="IDX7443"></A>
<A NAME="IDX7444"></A>
<P>The Cache Manager periodically sends a probe to server machines to verify
that they are still accessible. Specifically, it probes the database
server machines in its cell and those file servers that house data it has
cached.
<P>If a server process does not respond to a probe, the client machine assumes
that it is inaccessible. By default, the interval between probes is
three minutes, so it can take up to three minutes for a client to recognize
that a server process is once again accessible after it was
inaccessible.
<P>To adjust the probe interval, include the <B>-interval</B> argument to
the <B>fs checkservers</B> command while logged in as the local superuser
<B>root</B>. The new interval setting persists until you again
issue the command or reboot the machine, at which time the setting returns to
the default. To preserve a nondefault setting across reboots, include
the appropriate <B>fs checkservers</B> command in the machine's AFS
initialization file.
<P><H3><A NAME="Header_461" HREF="auagd002.htm#ToC_461">To set a client's file server probe interval</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Issue the <B>fs checkservers</B> command with the <B>-interval</B>
argument.
<A NAME="IDX7445"></A>
<A NAME="IDX7446"></A>
<P>
<PRE> # <B>fs checkservers -interval</B> <<VAR>seconds between probes</VAR>>
</PRE>
<P>where
<DL>
<P><DT><B><B>checks</B>
</B><DD>Is the shortest acceptable abbreviation of <B>checkservers</B>.
<P><DT><B>-interval
</B><DD>Specifies the number of seconds between probes. Provide an integer
value greater than zero.
</DL>
</OL>
<HR><H2><A NAME="HDRWQ411" HREF="auagd002.htm#ToC_462">Setting a Client Machine's Cell Membership</A></H2>
<A NAME="IDX7447"></A>
<A NAME="IDX7448"></A>
<A NAME="IDX7449"></A>
<A NAME="IDX7450"></A>
<A NAME="IDX7451"></A>
<A NAME="IDX7452"></A>
<P>Each client machine belongs to a particular cell, as named in the
<B>/usr/vice/etc/ThisCell</B> on its local disk. The machine's
cell membership determines three defaults important to users of the
machine:
<UL>
<P><LI>The cell for which users of the machine obtain tokens (authenticate) when
they use the <B>login</B> program or issue the <B>klog</B>
command. There are two effects:
<UL>
<P><LI>The <B>klog</B> program and AFS-modified login utilities contact an
Authentication Server in the cell named in the <B>ThisCell</B>
file.
<P><LI>The <B>klog</B> program and AFS-modified login utilities combine the
contents of the <B>ThisCell</B> file with the password that the user
provides, generating an encryption key from the combination. The
user's entry in the Authentication Database includes an encryption key
also generated from the combination of password and cell name. If the
cell name in the <B>ThisCell</B> file is incorrect, users cannot
authenticate even if they provide the correct password.
</UL>
<P><LI>The cell the Cache Manager considers its local, or home, cell. The
Cache Manager allows programs from its local cell to run with setuid
permission, but not programs from foreign cells, as discussed further in <A HREF="#HDRWQ409">Determining if a Client Can Run Setuid Programs</A>.
<P><LI>The default database server machines that are contacted by the AFS command
interpreters running on this machine.
</UL>
<P><H3><A NAME="Header_463" HREF="auagd002.htm#ToC_463">To display a client machine's cell membership</A></H3>
<OL TYPE=1>
<P><LI>Use a text editor or the <B>cat</B> command to display the contents of
the <B>/usr/vice/etc/ThisCell</B> file.
<PRE> % <B>cat /usr/vice/etc/ThisCell</B>
</PRE>
</OL>
<P><H3><A NAME="Header_464" HREF="auagd002.htm#ToC_464">To set a client machine's cell membership</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Using a text editor, replace the cell name in the
<B>/usr/vice/etc/ThisCell</B> file.
<P><LI><B>(Optional.)</B> Reboot the machine to enable the Cache
Manager to use the new cell name immediately; the appropriate command
depends on the machine's system type. The <B>klog</B> program,
AFS-modified login utilities, and the AFS command interpreters use the new
cell name the next time they are invoked; no reboot is necessary.
<PRE> # <B>sync</B>
# <B>shutdown</B>
</PRE>
</OL>
<HR><H2><A NAME="HDRWQ412" HREF="auagd002.htm#ToC_465">Forcing the Update of Cached Data</A></H2>
<A NAME="IDX7453"></A>
<A NAME="IDX7454"></A>
<A NAME="IDX7455"></A>
<A NAME="IDX7456"></A>
<A NAME="IDX7457"></A>
<A NAME="IDX7458"></A>
<A NAME="IDX7459"></A>
<A NAME="IDX7460"></A>
<P>AFS's callback mechanism normally guarantees that the Cache Manager
provides the most current version of a file or directory to the application
programs running on its machine. However, you can force the Cache
Manager to discard (flush) cached data so that the next time an application
program requests it, the Cache Manager fetches the latest version available at
the File Server.
<P>You can control how many file system elements to flush at a time:
<UL>
<P><LI>To flush only specific files or directories, use the <B>fs flush</B>
command. This command forces the Cache Manager to discard the data and
status information it has cached from the specified files or
directories. It does not discard information from an application
program's buffer or information that has been altered locally (changes
made in the cache but not yet saved permanently to the File Server).
However, the next time an application requests the element's data or
status information, the Cache Manager has to contact the File Server to get
it.
<P><LI>To flush everything cached from a certain volume, use the <B>fs
flushvolume</B> command. This command works like the <B>fs
flush</B> command, but differs in two ways:
<UL>
<P><LI>The Cache Manager discards data for all elements in the cache that come
from the same volume as the specified files or directories.
<P><LI>The Cache Manager discards only data, not status information. This
difference has little practical effect, but can lead to different output from
the <B>ls</B> command when the two different commands are used to flush
the same element.
</UL>
</UL>
<P>In addition to callbacks, the Cache Manager has a mechanism for tracking
other kinds of possible changes, such as changes 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 Manager's volume location record
can be wrong. To resynchronize it, use the <B>fs checkvolumes</B>
command. When you issue the command, the Cache Manager creates a new
table of mappings between volume names, ID numbers, and locations. This
forces the Cache Manager to reference newly relocated and renamed volumes
before it can provide data from them.
<P>It is also possible for information about mount points to become corrupted
in the cache. Symptoms of a corrupted mount point included garbled
output from the <B>fs lsmount</B> command, and failed attempts to change
directory to or list the contents of a mount point. Use the <B>fs
flushmount</B> command to discard a corrupted mount point. The Cache
Manager must refetch the mount point the next time it crosses it in a
pathname. (The Cache Manager periodically refreshes cached mount
points, but the only other way to discard them immediately is to reinitialize
the Cache Manager by rebooting the machine.
<A NAME="IDX7461"></A>
<A NAME="IDX7462"></A>
<P><H3><A NAME="Header_466" HREF="auagd002.htm#ToC_466">To flush certain files or directories</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs flush</B> command.
<PRE> % <B>fs flush</B> [<<VAR>dir/file path</VAR>><SUP>+</SUP>]
</PRE>
<P>where
<DL>
<P><DT><B><B>flush</B>
</B><DD>Must be typed in full.
<P><DT><B><VAR>dir/file path</VAR>
</B><DD>Names each file or directory structure to flush from the cache.
Omit this argument to flush the current working directory. Flushing a
directory structure does not flush any files or subdirectories cached from
it.
</DL>
</OL>
<A NAME="IDX7463"></A>
<A NAME="IDX7464"></A>
<P><H3><A NAME="Header_467" HREF="auagd002.htm#ToC_467">To flush all data from a volume</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs flushvolume</B> command.
<PRE> % <B>fs flushvolume</B> [<<VAR>dir/file path</VAR>><SUP>+</SUP>]
</PRE>
<P>where
<DL>
<P><DT><B><B>flushv</B>
</B><DD>Is the shortest acceptable abbreviation of <B>flushvolume</B>.
<P><DT><B><VAR>dir/file path</VAR>
</B><DD>Names a file or directory from each volume to flush from the cache.
The Cache Manager flushes everything in the cache that it has fetched from the
same volume. Omit this argument to flush all cached data fetched from
the volume that contains the current working directory.
</DL>
</OL>
<A NAME="IDX7465"></A>
<A NAME="IDX7466"></A>
<P><H3><A NAME="Header_468" HREF="auagd002.htm#ToC_468">To force the Cache Manager to notice other volume changes</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs checkvolumes</B> command.
<PRE> % <B>fs checkvolumes</B>
</PRE>
<P>where <B>checkv</B> is the shortest acceptable abbreviation of
<B>checkvolumes</B>.
</OL>
<P>The following command confirms that the command completed
successfully:
<PRE> All volumeID/name mappings checked.
</PRE>
<A NAME="IDX7467"></A>
<A NAME="IDX7468"></A>
<P><H3><A NAME="HDRWQ413" HREF="auagd002.htm#ToC_469">To flush one or more mount points</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs flushmount</B> command.
<PRE> % <B>fs flush</B> [<<VAR>dir/file path</VAR>><SUP>+</SUP>]
</PRE>
<P>where
<DL>
<P><DT><B><B>flushm</B>
</B><DD>Is the shortest acceptable abbreviation of <B>flushmount</B>.
<P><DT><B><VAR>dir/file path</VAR>
</B><DD>Names each mount point to flush from the cache. Omit this argument
to flush the current working directory. Files or subdirectories cached
from the associated volume are unaffected.
</DL>
</OL>
<HR><H2><A NAME="HDRWQ414" HREF="auagd002.htm#ToC_470">Maintaining Server Preference Ranks</A></H2>
<A NAME="IDX7469"></A>
<A NAME="IDX7470"></A>
<A NAME="IDX7471"></A>
<A NAME="IDX7472"></A>
<A NAME="IDX7473"></A>
<A NAME="IDX7474"></A>
<P>As mentioned in the introduction to this chapter, AFS uses client-side data
caching and callbacks to reduce the amount of network traffic in your
cell. The Cache Manager also tries to make its use of the network as
efficient as possible by assigning <I>preference ranks</I> to server
machines based on their network proximity to the local machine. The
ranks bias the Cache Manager to fetch information from the server machines
that are on its own subnetwork or network rather than on other networks, if
possible. Reducing the network distance that data travels between
client and server machine tends to reduce network traffic and speed the Cache
Manager's delivery of data to applications.
<P>The Cache Manager stores two separate sets of preference ranks in kernel
memory. The first set of ranks applies to machines that run the Volume
Location (VL) Server process, hereafter referred to as <I>VL Server
machines</I>. The second set of ranks applies to machines that run
the File Server process, hereafter referred to as <I>file server
machines</I>. This section explains how the Cache Manager sets
default ranks, how to use the <B>fs setserverprefs</B> command to change
the defaults or set new ranks, and how to use the <B>fs getserverprefs</B>
command to display the current set of ranks.
<P><H3><A NAME="Header_471" HREF="auagd002.htm#ToC_471">How the Cache Manager Sets Default Ranks</A></H3>
<P>As the <B>afsd</B> program initializes the Cache Manager, it
assigns a preference rank of 10,000 to each of the VL Server machines listed
in the local <B>/usr/vice/etc/CellServDB</B> file. It then
randomizes the ranks by adding an integer randomly chosen from the range 0
(zero) to 126. It avoids assigning the same rank to machines in one
cell, but it is possible for machines from different cells to have the same
rank. This does not present a problem in use, because the Cache Manager
compares the ranks of only one cell's database server machines at a
time. Although AFS supports the use of multihomed database server
machines, the Cache Manager only uses the single address listed for each
database server machine in the local <B>/usr/vice/etc/CellServDB</B>
file. Only Ubik can take advantage of a multihomed database server
machine's multiple interfaces.
<P>The Cache Manager assigns preference ranks to a file server machine when it
obtains the server's VLDB record from the VL Server, the first time that
it accesses a volume that resides on the machine. If the machine is
multihomed, the Cache Manager assigns a distinct rank to each of its
interfaces (up to the number of interfaces that the VLDB can store for each
machine, which is specified in the <I>IBM AFS Release Notes</I>).
The Cache Manager compares the interface's IP address to the local
machine's address and applies the following algorithm:
<UL>
<P><LI>If the local machine is a file server machine, the base rank for each of
its interfaces is 5,000.
<P><LI>If the file server machine interface is on the same subnetwork as the
local machine, its base rank is 20,000.
<P><LI>If the file server machine interface is on the same network as the local
machine, or is at the distant end of a point-to-point link with the local
machine, its base rank is 30,000.
<P><LI>If the file server machine interface is on a different network than the
local machine, or the Cache Manager cannot obtain network information about
it, its base rank is 40,000.
</UL>
<P>If the client machine has only one interface, the Cache Manager compares it
to the server interface's IP address and sets a rank according to the
algorithm. If the client machine is multihomed, the Cache Manager
compares each of the local interface addresses to the server interface, and
assigns to the server interface the lowest rank that results from comparing it
to all of the client interfaces.
<P>After assigning a base rank to a file server machine interface, the Cache
Manager adds to it a number randomly chosen from the range 0 (zero) to
15. As an example, a file server machine interface in the same
subnetwork as the local machine 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 process reduces the number of interfaces that have exactly
the same rank. As with VL Server machine ranks, it is possible for file
server machine interfaces from foreign cells to have the same rank as
interfaces in the local cell, but this does not present a problem. Only
the relative ranks of the interfaces that house a specific volume are
relevant, and AFS supports storage of a volume in only one cell at a
time.
<P><H3><A NAME="Header_472" HREF="auagd002.htm#ToC_472">How the Cache Manager Uses Preference Ranks</A></H3>
<P>Each preference rank pairs an interface's IP address with an
integer that can range from 1 to 65,534. A lower rank (lower number)
indicates a stronger preference. Once set, a rank persists until the
machine reboots, or until you use the <B>fs setserverprefs</B> command to
change it.
<P>The Cache Manager uses VL Server machine ranks when it needs to fetch
volume location information from a cell. It compares the ranks for the
cell's VL Server machines and attempts to contact the VL Server process
on the machine with the best (lowest integer) rank. If it cannot reach
that VL Server, it tries to contact the VL Server with the next best rank, and
so on. If all of a cell's VL Server machines are inaccessible, the
Cache Manager cannot fetch data from the cell.
<P>Similarly, when the Cache Manager needs to fetch data from a volume, it
compares the ranks for the interfaces of machines that house the volume, and
attempts to contact the interface that has the best rank. If it cannot
reach the <B>fileserver</B> process via that interface, it tries to
contact the interface with the next best integer rank, and so on. If it
cannot reach any of the interfaces for machines that house the volume, it
cannot fetch data from the volume.
<P><H3><A NAME="Header_473" HREF="auagd002.htm#ToC_473">Displaying and Setting Preference Ranks</A></H3>
<P>To display the file server machine ranks that the Cache Manager is
using, use the <B>fs getserverprefs</B> command. Include the
<B>-vlservers</B> flag to display VL Server machine ranks instead.
By default, the output appears on the standard output stream (stdout), but you
can write it to a file instead by including the <B>-file</B>
argument.
<P>The Cache Manager stores IP addresses rather than hostnames in its kernel
list of ranks, but by default the output identifies interfaces by hostname
after calling a translation routine that refers to either the cell's name
service (such as the Domain Name Server) or the local host table. If an
IP address appears in this case, it is because the translation attempt
failed. To bypass the translation step and display IP addresses rather
than hostnames, include the <B>-numeric</B> flag. This can
significantly speed up the output.
<P>You can use the <B>fs setserverprefs</B> command to reset an existing
preference rank, or to set the initial rank of a file server machine interface
or VL Server machine for which the Cache Manager has no rank. The ranks
you set persist until the machine reboots or until you issue the <B>fs
setserverprefs</B> command again. To make a rank persist across a
reboot, place the appropriate <B>fs setserverprefs</B> command in the
machine's AFS initialization file.
<P>As with default ranks, the Cache Manager adds a randomly chosen integer to
each rank range that you assign. For file server machine interfaces,
the randomizing number is from the range 0 (zero) to 15; for VL Server
machines, it is from the range 0 (zero) to 126. For example, if you
assign a rank of 15,000 to a file server machine interface, the Cache Manager
stores an integer between 15,000 to 15,015.
<P>To assign VL Server machine ranks, list them after the <B>-vlserver</B>
argument to the <B>fs setserverprefs</B> command.
<P>To assign file server machine ranks, use or more of the three possible
methods:
<OL TYPE=1>
<P><LI>List them after the <B>-servers</B> argument on the command
line.
<P><LI>Record them in a file and name it with the <B>-file</B>
argument. You can easily generate a file with the proper format by
including the <B>-file</B> argument to the <B>fs getserverprefs</B>
command.
<P><LI>Provide them via the standard input stream, by including the
<B>-stdin</B> flag. This enables you to feed in values directly
from a command or script that generates preferences using an algorithm
appropriate for your cell. It must generate them in the proper format,
with one or more spaces between each pair and between the two parts of the
pair. The AFS distribution does not include such a script, so you must
write one if you want to use this method.
</OL>
<P>You can combine any of the <B>-servers</B>, <B>-file</B>, and
<B>-stdin</B> options on the same command line if you wish. If more
than one of them specifies a rank for the same interface, the one assigned
with the <B>-servers</B> argument takes precedence. You can also
provide the <B>-vlservers</B> argument on the same command line to set VL
Server machine ranks at the same time as file server machine ranks.
<P>The <B>fs</B> command interpreter does not verify hostnames or IP
addresses, and so willingly stores ranks for hostnames and addresses that
don't actually exist. The Cache Manager never uses such ranks
unless the same VLDB record for a server machine records the same incorrect
information.
<A NAME="IDX7475"></A>
<A NAME="IDX7476"></A>
<P><H3><A NAME="Header_474" HREF="auagd002.htm#ToC_474">To display server preference ranks</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs getserverprefs</B> command to display the Cache
Manager's preference ranks for file server machines or VL Server
machines.
<PRE> % <B>fs getserverprefs</B> [<B>-file</B> <<VAR>output to named file</VAR>>] [<B>-numeric</B>] [<B>-vlservers</B>]
</PRE>
<P>where
<DL>
<P><DT><B>gp
</B><DD>Is an acceptable alias for <B>getserverprefs</B> (<B>gets</B> is
the shortest acceptable abbreviation).
<P><DT><B>-file
</B><DD>Specifies the pathname of the file to which to write the list of
ranks. Omit this argument to display the list on the standard output
stream (stdout).
<P><DT><B>-numeric
</B><DD>Displays the IP address, rather than the hostname, of each ranked machine
interface. Omit this flag to have the addresses translated into
hostnames, which takes longer.
<P><DT><B>-vlservers
</B><DD>Displays ranks for VL Server machines rather than file server
machines.
</DL>
<P>The following example displays file server machine ranks. The
<B>-numeric</B> flag is not used, so the appearance of an IP address
indicates that is not currently possible to translate it to a hostname.
<P>
<PRE> % <B>fs gp</B>
fs5.abc.com 20000
fs1.abc.com 30014
server1.stateu.edu 40011
fs3.abc.com 20001
fs4.abc.com 30001
192.12.106.120 40002
192.12.106.119 40001
. . . . . . .
</PRE>
</OL>
<A NAME="IDX7477"></A>
<A NAME="IDX7478"></A>
<A NAME="IDX7479"></A>
<P><H3><A NAME="Header_475" HREF="auagd002.htm#ToC_475">To set server preference ranks</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Issue the <B>fs setserverprefs</B> command to set the Cache
Manager's preference ranks for one or more file server machines or VL
Server machines.
<PRE> # <B>fs setserverprefs</B> [<B>-servers</B> <<VAR>fileserver names and ranks</VAR>><SUP>+</SUP>] \
[<B>-vlservers</B> <<VAR>VL server names and ranks</VAR>><SUP>+</SUP>] \
[<B>-file</B> <<VAR>input from named file</VAR>>] [<B>-stdin</B>]
</PRE>
<P>where
<DL>
<P><DT><B>sp
</B><DD>Is an acceptable alias for <B>setserverprefs</B> (<B>sets</B> is
the shortest acceptable abbreviation).
<P><DT><B>-servers
</B><DD>Specifies one or more pairs of file server machine interface and
rank. Identify each interface by its fully-qualified hostname or IP
address in dotted decimal format. Acceptable ranks are the integers
from <B>1</B> to <B>65534</B>. Separate the parts of a pair,
and the pairs from one another, with one or more spaces.
<P><DT><B>-vlservers
</B><DD>Specifies one or more pairs of VL Server machine and rank. Identify
each machine by its fully-qualified hostname or IP address in dotted decimal
format. Acceptable ranks are the integers from <B>1</B> to
<B>65534</B>.
<P><DT><B>-file
</B><DD>Specifies the pathname of a file that contains one more pairs of file
server machine interface and rank. Place each pair on its own line in
the file. Use the same format for interfaces and ranks as with the
<B>-servers</B> argument.
<P><DT><B>-stdin
</B><DD>Indicates that pairs of file server machine interface and rank are being
provided via the standard input stream (stdin). The program or script
that generates the pairs must format them in the same manner as for the
<B>-servers</B> argument.
</DL>
</OL>
<HR><H2><A NAME="HDRWQ415" HREF="auagd002.htm#ToC_476">Managing Multihomed Client Machines</A></H2>
<A NAME="IDX7480"></A>
<A NAME="IDX7481"></A>
<A NAME="IDX7482"></A>
<A NAME="IDX7483"></A>
<A NAME="IDX7484"></A>
<A NAME="IDX7485"></A>
<P>The File Server can choose the interface to which to send a message when it
initiates communication with the Cache Manager on a multihomed client machine
(one with more than one network interface and IP address). If that
interface is inaccessible, it automatically switches to an alternate.
This improves AFS performance, because it means that the outage of an
interface does not interrupt communication between File Server and Cache
Manager.
<P>The File Server can choose the client interface when it sends two types of
messages:
<UL>
<P><LI>A message to break the callback that the Cache Manager holds on a cached
file
<P><LI>A <I>ping</I> message to check that the Cache Manager is still
accessible and responding; the File Server sends such a message every few
minutes
</UL>
<P>(The File Server does not choose which client interface to respond to when
filling a Cache Manager's request for AFS data. In that case, it
always responds to the client interface via which the Cache Manager sent the
request.)
<P>The Cache Manager compiles the list of eligible interfaces on its client
machine automatically as it initializes, and records them in kernel
memory. When the Cache Manager first establishes a connection with the
File Server, it sends along the list of interface addresses. The File
Server records the addresses, and uses the one at the top of the list when it
needs to break a callback or send a ping to the Cache Manager. If that
interface is inaccessible, the File Server simultaneously sends a message to
all of the other interfaces in the list. Whichever interface replies
first is the one to which the File Server sends future messages.
<P>You can control which addresses the Cache Manager registers with File
Servers by listing them in two files in the <B>/usr/vice/etc</B> directory
on the client machine's local disk: <B>NetInfo</B> and
<B>NetRestrict</B>. If the <B>NetInfo</B> file exists when the
Cache Manager initializes, the Cache Manager uses its contents as the basis
for the list of interfaces. Otherwise, the Cache Manager uses the list
of interfaces configured with the operating system. It then removes
from the list any addresses that appear in the
<B>/usr/vice/etc/NetRestrict</B> file, if it exists. The Cache
Manager records the resulting list in kernel memory.
<P>You can also use the <B>fs setclientaddrs</B> command to change the
list of addresses stored in the Cache Manager's kernel memory, without
rebooting the client machine. The list of addresses you provide on the
command line completely replaces the current list in kernel memory. The
changes you make persist only until the client machine reboots,
however. To preserve the revised list across reboots, list the
interfaces in the <B>NetInfo</B> file (and if appropriate, the
<B>NetRestrict</B> file) in the local <B>/usr/vice/etc</B>
directory. (You can also place the appropriate <B>fs
setclientaddrs</B> command in the machine's AFS initialization script,
but that is less efficient: by the time the Cache Manager reads the
command in the script, it has already compiled a list of interfaces.)
<P>To display the list of addresses that the Cache Manager is currently
registering with File Servers, use the <B>fs getclientaddrs</B>
command.
<P>Keep the following in mind when you change the <B>NetInfo</B> or
<B>NetRestrict</B> file, or issue the <B>fs getclientaddrs</B> or
<B>fs setclientaddrs</B> commands:
<UL>
<P><LI>When you issue the <B>fs setclientaddrs</B> command, the revised list
of addresses does not propagate automatically to File Servers with which the
Cache Manager has already established a connection. They continue to
use the list that the Cache Manager registered with them when it first
established a connection. To force previously contacted File Servers to
use the revised list, you must either reboot each file server machine, or
reboot the client machine after changing its <B>NetInfo</B> file,
<B>NetRestrict</B> file, or both.
<P><LI>The <B>fs</B> command interpreter verifies that each of the addresses
you specify on the <B>fs setclientaddrs</B> command line is actually
configured with the client machine's operating system. If it is
not, the command fails with an error message that marks the address as a
<TT>Nonexistent interface</TT>.
<P><LI>As previously noted, the File Server does not use the registered list of
addresses when it responds to the Cache Manager's request for data (as
opposed to initiating communication itself). It always attempts to send
its reply to the interface from which the Cache Manager sent the
request. If the reply attempt fails, the File Server selects an
alternate route for resending the reply according to its server machine's
network routing configuration, not the list of addresses registered by the
Cache Manager.
<P><LI>The Cache Manager does not use the list of interfaces when choosing the
interface via which to establish a connection to a File Server.
<P><LI>The list of addresses that the <B>fs getclientaddrs</B> command
displays is not necessarily the one that a specific File Server is using, if
an administrator has issued the <B>fs setclientaddrs</B> command since the
Cache Manager first contacted that File Server. It determines only
which addresses the Cache Manager registers when connecting to File Servers in
future.
</UL>
<A NAME="IDX7486"></A>
<A NAME="IDX7487"></A>
<A NAME="IDX7488"></A>
<A NAME="IDX7489"></A>
<P><H3><A NAME="Header_477" HREF="auagd002.htm#ToC_477">To create or edit the client NetInfo file</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Using a text editor, open the <B>/usr/vice/etc/NetInfo</B>
file. Place one IP address in dotted decimal format (for example,
<TT>192.12.107.33</TT>) on each line. On the
first line, put the address that you want each File Server to use
initially. The order of the remaining machines does not matter, because
if an RPC to the first interface fails, the File Server simultaneously sends
RPCs to all of the other interfaces in the list. Whichever interface
replies first is the one to which the File Server then sends pings and RPCs to
break callbacks.
<P><LI>If you want the Cache Manager to start using the revised list immediately,
either reboot the machine, or use the <B>fs setclientaddrs</B> command to
create the same list of addresses in kernel memory directly.
</OL>
<A NAME="IDX7490"></A>
<A NAME="IDX7491"></A>
<A NAME="IDX7492"></A>
<A NAME="IDX7493"></A>
<P><H3><A NAME="Header_478" HREF="auagd002.htm#ToC_478">To create or edit the client NetRestrict file</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Using a text editor, open the <B>/usr/vice/etc/NetRestrict</B>
file. Place one IP address in dotted decimal format on each
line. The order of the addresses is not significant. Use the
value <B>255</B> as a wildcard that represents all possible addresses in
that field. For example, the entry
<TT>192.12.105.255</TT> indicates that the Cache
Manager does not register any of the addresses in the 192.12.105
subnet.
<P><LI>If you want the Cache Manager to start using the revised list immediately,
either reboot the machine, or use the <B>fs setclientaddrs</B> command to
set a list of addresses that does not included the prohibited ones.
</OL>
<A NAME="IDX7494"></A>
<A NAME="IDX7495"></A>
<P><H3><A NAME="Header_479" HREF="auagd002.htm#ToC_479">To display the list of addresses from kernel memory</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs getclientaddrs</B> command.
<PRE> % <B>fs getclientaddrs</B>
</PRE>
<P>where <B>gc</B> is an acceptable alias for <B>getclientaddrs</B>
(<B>getcl</B> is the shortest acceptable abbreviation).
</OL>
<P>The output lists each IP address on its own line, in dotted decimal
format.
<A NAME="IDX7496"></A>
<A NAME="IDX7497"></A>
<P><H3><A NAME="Header_480" HREF="auagd002.htm#ToC_480">To set the list of addresses in kernel memory</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Issue the <B>fs setclientaddrs</B> command to replace the list of
addresses currently in kernel memory with a new list.
<PRE> # <B>fs setclientaddrs</B> [<B>-address</B> <<VAR>client network interfaces</VAR>><SUP>+</SUP>]
</PRE>
<P>where
<DL>
<P><DT><B>sc
</B><DD>Is an acceptable alias for <B>setclientaddrs</B> (<B>setcl</B> is
the shortest acceptable abbreviation).
<P><DT><B>-address
</B><DD>Specifies one or more IP addresses in dotted decimal format (hostnames are
not acceptable). Separate each address with one or more spaces.
</DL>
</OL>
<HR><H2><A NAME="HDRWQ416" HREF="auagd002.htm#ToC_481">Controlling the Display of Warning and Informational Messages</A></H2>
<A NAME="IDX7498"></A>
<A NAME="IDX7499"></A>
<P>By default, the Cache Manager generates two types of warning and
informational messages:
<UL>
<P><LI>It sends <I>user messages</I>, which provide user-level status and
warning information, to user screens.
<P><LI>It sends <I>console messages</I>, which provide system-level status
and warning information, to the client machine's designated
console.
</UL>
<P>You can use the <B>fs messages</B> command to control whether the Cache
Manager displays either type of message, both types, or neither. It is
best not to disable messages completely, because they provide useful
information.
<P>If you want to monitor Cache Manager status and performance more actively,
you can use the <B>afsmonitor</B> program to collect an extensive set of
statistics (it also gathers File Server statistics). If you experience
performance problems, you can use <B>fstrace</B> suite of commands to
gather a low-level trace of Cache Manager operations, which the AFS Support
and Development groups can analyze to help solve your problem. To learn
about both utilities, see <A HREF="auagd013.htm#HDRWQ323">Monitoring and Auditing AFS Performance</A>.
<A NAME="IDX7500"></A>
<A NAME="IDX7501"></A>
<P><H3><A NAME="Header_482" HREF="auagd002.htm#ToC_482">To control the display of warning and status messages</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Issue the <B>fs messages</B> command, using the <B>-show</B>
argument to specify the type of messages to be displayed.
<PRE> # <B>fs messages -show</B> <<B>user</B>|<B>console</B>|<B>all</B>|<B>none</B>>
</PRE>
<P>where
<DL>
<P><DT><B>me
</B><DD>Is the shortest acceptable abbreviation of <B>messages</B>.
<P><DT><B>-show
</B><DD>Specifies the types of messages to display. Choose one of the
following values:
<DL>
<P><DT><B>user
</B><DD>Sends user messages to user screens.
<P><DT><B>console
</B><DD>Sends console messages to the console.
<P><DT><B>all
</B><DD>Sends user messages to user screens and console messages to the console
(the default if the <B>-show</B> argument is omitted).
<P><DT><B>none
</B><DD>Disables messages completely.
</DL>
</DL>
</OL>
<HR><H2><A NAME="HDRWQ417" HREF="auagd002.htm#ToC_483">Displaying and Setting the System Type Name</A></H2>
<A NAME="IDX7502"></A>
<A NAME="IDX7503"></A>
<P>The Cache Manager stores the system type name of the local client machine
in kernel memory. It reads in the default value from a hardcoded
definition in the AFS client software.
<P>The Cache Manager uses the system name as a substitute for the
<VAR>@sys</VAR> variable in AFS pathnames. The variable is useful when
creating a symbolic link from the local disk to an AFS directory that houses
binaries for the client machine's system type. Because the
<VAR>@sys</VAR> variable automatically steers the Cache Manager to the
appropriate directory, you can create the same symbolic link on client
machines of different system types. (You can even automate the creation
operation by using the package utility described in <A HREF="auagd016.htm#HDRWQ419">Configuring Client Machines with the package Program</A>.) The link also remains valid when you upgrade the
machine to a new system type.
<P>Configuration is simplest if you use the system type names that AFS
assigns. For a list, see the <I>IBM AFS Release Notes</I>.
<P>To display the system name stored in kernel memory, use the <B>sys</B>
or <B>fs sysname</B> command. To change the name, add the latter
command's <B>-newsys</B> argument.
<A NAME="IDX7504"></A>
<A NAME="IDX7505"></A>
<A NAME="IDX7506"></A>
<A NAME="IDX7507"></A>
<P><H3><A NAME="Header_484" HREF="auagd002.htm#ToC_484">To display the system type name</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs sysname</B> or <B>sys</B> command.
<PRE> % <B>fs sysname</B>
% <B>sys</B>
</PRE>
</OL>
<P>The output of the <B>fs sysname</B> command has the following
format:
<PRE> Current sysname is '<VAR>system_name</VAR>'
</PRE>
<P>The <B>sys</B> command displays the <VAR>system_name</VAR> string with no
other text.
<P><H3><A NAME="Header_485" HREF="auagd002.htm#ToC_485">To change the system type name</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Issue the <B>fs sysname</B> command, using the <B>-newsys</B>
argument to specify the new name.
<PRE> # <B>fs sysname</B> <<VAR>new sysname</VAR>>
</PRE>
<P>where
<DL>
<P><DT><B>sys
</B><DD>Is the shortest acceptable abbreviation of <B>sysname</B>.
<P><DT><B><VAR>new sysname</VAR>
</B><DD>Specifies the new system type name.
</DL>
</OL>
<HR><H2><A NAME="HDRWQ418" HREF="auagd002.htm#ToC_486">Enabling Asynchronous Writes</A></H2>
<A NAME="IDX7508"></A>
<A NAME="IDX7509"></A>
<A NAME="IDX7510"></A>
<P>By default, the Cache Manager writes all data to the File Server
immediately and synchronously when an application program closes a
file. That is, the <B>close</B> system call does not return until
the Cache Manager has actually written all of the cached data from the file
back to the File Server. You can enable the Cache Manager to write
files asynchronously by specifying the number of kilobytes of a file that can
remain to be written to the File Server when the Cache Manager returns control
to the application.
<P>Enabling asynchronous writes can be helpful to users who commonly work with
very large files, because it usually means that the application appears to
perform faster. However, it introduces some complications. It is
best not to enable asynchronous writes unless the machine's users are
sophisticated enough to understand the potential problems and how to avoid
them. The complications include the following:
<UL>
<P><LI>In most cases, the Cache Manager returns control to applications earlier
than it does by default, but it is not guaranteed to do so. Users
cannot always expect faster performance.
<P><LI>If an asynchronous write fails, there is no way to notify the application,
because the <B>close</B> system call has already returned with a code
indicating success.
<P><LI>Asynchronous writing increases the possibility that the user fails to
notice when a write operation makes a volume exceed its quota. As
always, the portion of the file that exceeds the quota is lost, as indicated
by a message like the following:
<PRE> No space left on device
</PRE>
<P>To avoid losing data because of insufficient quota, before closing a file
users must verify that the volume housing the file has enough free space to
accommodate it.
</UL>
<P>When you enable asynchronous writes by issuing the <B>fs
storebehind</B> command, you set the number of kilobytes of a file that can
still remain to be written to the File Server when the Cache Manager returns
control to the application program. You can apply the setting either to
all files manipulated by applications running on the machine, or only to
certain files:
<UL>
<P><LI>The setting that applies to all files is called the <I>default store
asynchrony</I> for the machine, and persists until the machine
reboots. If, for example, you set the default store asynchrony to 10
KB, it means that when an application closes a file, the Cache Manager can
return control to the application as soon as no more than 10 KB of a file that
the application has closed remain to be written to the File Server.
<P><LI>The setting for an individual file overrides the default store asynchrony
and persists as long as there is an entry for the file in the internal table
that the Cache Manager uses to track information about files. In
general, such an entry persists at least until an application closes the file
or exits completely, but the Cache Manager is free to recycle the 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 the <B>fs storebehind</B> command
shortly before closing the file.
</UL>
<A NAME="IDX7511"></A>
<A NAME="IDX7512"></A>
<P><H3><A NAME="Header_487" HREF="auagd002.htm#ToC_487">To set the default store asynchrony</A></H3>
<OL TYPE=1>
<P><LI>Become the local superuser <B>root</B> on the machine, if you are not
already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Issue the <B>fs storebehind</B> command with the <B>-allfiles</B>
argument.
<PRE> # <B>fs storebehind -allfiles</B> <<VAR>new default (KB)</VAR>> [<B>-verbose</B>]
</PRE>
<P>where
<DL>
<P><DT><B>st
</B><DD>Is the shortest acceptable abbreviation of <B>storebehind</B>.
<P><DT><B>-allfiles
</B><DD>Sets the number of kilobytes of data that can remain to be written to the
File Server when the Cache Manager returns control to the application that
closed a file.
<P><DT><B>-verbose
</B><DD>Produces a message that confirms the new setting.
</DL>
</OL>
<A NAME="IDX7513"></A>
<A NAME="IDX7514"></A>
<P><H3><A NAME="Header_488" HREF="auagd002.htm#ToC_488">To set the store asynchrony for one or more files</A></H3>
<OL TYPE=1>
<P><LI>Verify that you have the <B>w</B> (<B>write</B>) permission on the
access control list (ACL) of each file for which you are setting the store
asynchrony, by issuing the <B>fs listacl</B> command, which is described
fully in <A HREF="auagd020.htm#HDRWQ572">Displaying ACLs</A>.
<PRE> % <B>fs listacl</B> <VAR>dir/file path</VAR>
</PRE>
<P>Alternatively, become the local superuser <B>root</B> on the client
machine, if you are not already, by issuing the <B>su</B> command.
<PRE> % <B>su root</B>
Password: <VAR>root_password</VAR>
</PRE>
<P><LI>Issue the <B>fs storebehind</B> command with the <B>-kbytes</B>
and <B>-files</B> arguments.
<PRE> # <B>fs storebehind -kbytes</B> <<VAR>asynchrony for specified names</VAR>> \
<B>-files</B> <<VAR>specific pathnames</VAR>><SUP>+</SUP> \
[<B>-verbose</B>]
</PRE>
<P>where
<DL>
<P><DT><B>st
</B><DD>Is the shortest acceptable abbreviation of <B>storebehind</B>.
<P><DT><B>-kbytes
</B><DD>Sets the number of kilobytes of data that can remain to be written to the
File Server when the Cache Manager returns control to the application that
closed a file named by the <B>-files</B> argument.
<P><DT><B>-files
</B><DD>Specifies each file for which to set a store asynchrony that overrides the
default. Partial pathnames are interpreted relative to the current
working directory.
<P><DT><B>-verbose
</B><DD>Produces a message that confirms that new setting.
</DL>
</OL>
<A NAME="IDX7515"></A>
<A NAME="IDX7516"></A>
<P><H3><A NAME="Header_489" HREF="auagd002.htm#ToC_489">To display the default store asynchrony</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs storebehind</B> command with no arguments, or with the
<B>-verbose</B> flag only.
<PRE> % <B>fs storebehind </B> [<B>-verbose</B>]
</PRE>
<P>where
<DL>
<P><DT><B>st
</B><DD>Is the shortest acceptable abbreviation of <B>storebehind</B>.
<P><DT><B>-verbose
</B><DD>Produces output that reports the default store asynchrony.
</DL>
</OL>
<A NAME="IDX7517"></A>
<A NAME="IDX7518"></A>
<P><H3><A NAME="Header_490" HREF="auagd002.htm#ToC_490">To display the store asynchrony for one or more files</A></H3>
<OL TYPE=1>
<P><LI>Issue the <B>fs storebehind</B> command with the <B>-files</B>
argument only.
<PRE> % <B>fs storebehind</B> <B>-files</B> <<VAR>specific pathnames</VAR>><SUP>+</SUP>
</PRE>
<P>where
<DL>
<P><DT><B>st
</B><DD>Is the shortest acceptable abbreviation of <B>storebehind</B>.
<P><DT><B>-files
</B><DD>Specifies each file for which to display the store asynchrony.
Partial pathnames are interpreted relative to the current working
directory.
</DL>
</OL>
<P>The output lists each file separately. If a value has previously
been set for the specified files, the output reports the following:
<PRE> Will store up to <VAR>y</VAR> kbytes of <VAR>file</VAR> asynchronously.
Default store asynchrony is <VAR>x</VAR> kbytes.
</PRE>
<P>If the default store asynchrony applies to a file (because you have not set
a <B>-kbytes</B> value for it), the output reports the following:
<PRE> Will store <VAR>file</VAR> according to default.
Default store asynchrony is <VAR>x</VAR> kbytes.
</PRE>
<HR><P ALIGN="center"> <A HREF="../index.htm"><IMG SRC="../books.gif" BORDER="0" ALT="[Return to Library]"></A> <A HREF="auagd002.htm#ToC"><IMG SRC="../toc.gif" BORDER="0" ALT="[Contents]"></A> <A HREF="auagd014.htm"><IMG SRC="../prev.gif" BORDER="0" ALT="[Previous Topic]"></A> <A HREF="#Top_Of_Page"><IMG SRC="../top.gif" BORDER="0" ALT="[Top of Topic]"></A> <A HREF="auagd016.htm"><IMG SRC="../next.gif" BORDER="0" ALT="[Next Topic]"></A> <A HREF="auagd026.htm#HDRINDEX"><IMG SRC="../index.gif" BORDER="0" ALT="[Index]"></A> <P>
<!-- Begin Footer Records ========================================== -->
<P><HR><B>
<br>© <A HREF="http://www.ibm.com/">IBM Corporation 2000.</A> All Rights Reserved
</B>
<!-- End Footer Records ============================================ -->
<A NAME="Bot_Of_Page"></A>
</BODY></HTML>
|