# Administration Reference

## fs setserverprefs

Purpose

Sets the Cache Manager's preference ranks for file server or VL Server machines

Synopsis

    fs setserverprefs [-servers <fileserver names and ranks>+]
                      [-vlservers <VL server names and ranks>+]
                      [-file <input from named file>]  [-stdin]  [-help]

    fs sets [-se <fileserver names and ranks>+]  [-vl <VL server names and ranks>+]
            [-f <input from named file>]  [-st]  [-h]

    fs sp [-se <fileserver names and ranks>+]  [-vl <VL server names and ranks>+]
          [-f <input from named file>]  [-st]  [-h]

Description

The fs setserverprefs command sets the local Cache Manager's preference ranks for one or more file server machine interfaces or, if the -vlserver argument is provided, for Volume Location (VL) Server machines. For file server machines, the numerical ranks determine the order in which the Cache Manager attempts to contact the interfaces of machines that are housing a volume. For VL Server machines, the ranks determine the order in which the Cache Manager attempts to contact a cell's VL Servers when requesting VLDB information.

The fs getserverprefs reference page explains how the Cache Manager uses preference ranks when contacting file server machines or VL Server machines. The following paragraphs explain how the Cache Manager calculates default ranks, and how to use this command to change the defaults.

Calculation of Default Preference Ranks

The Cache Manager stores a preference rank in kernel memory as a paired IP address and numerical rank. If a file server machine is multihomed, the Cache Manager assigns a distinct rank to each of the machine's addresses (up to the number of addresses that the VLDB can store per machine, which is specified in the AFS Release Notes). Once calculated, a rank persists until the machine reboots, or until this command is used to change it.

The Cache Manager sets default VL Server preference ranks as it initializes, randomly assigning a rank from the range 10,000 to 10,126 to each of the machines listed in the local /usr/vice/etc/CellServDB file. Machines from different cells can have the same rank, but this does not present a problem because the Cache Manager consults only one cell's ranks at a time.

The Cache Manager sets default preference ranks for file server machine as it fetches volume location information from the VLDB. Each time it learns about file server machine interfaces for which it has not already set ranks, it assigns a rank to each interface. If the local client machine has only one IP address, the Cache Manager compares it to the server interface's IP address and sets a rank according to the following algorithm. If the client machine is multihomed, the Cache Manager applies the algorithm to each of the client machine's addresses and assigns to the file server machine interface the lowest rank that results.

- If the local machine is a file server machine, the base rank for each of its interfaces is 5,000.

- If the file server machine interface is on the same subnetwork as the client interface, its base rank is 20,000.

- If the file server machine interface is on the same network as the client interface, or is at the distant end of a point-to-point link with the client interface, its base rank is 30,000.

- If the file server machine interface is on a different network than the client interface, or the Cache Manager cannot obtain network information about it, its base rank is 40,000.

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 14. 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,014. 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 given volume are relevant, and AFS only supports storage of a volume in one cell at a time.

Setting Non-default Preference Ranks

Use the fs setserverprefs 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. To make a rank persist across a reboot of the local machine, place the appropriate fs setserverprefs command in the machine's AFS initialization file.

Specify each preference rank as a pair of values separated by one or more spaces:

- The first member of the pair is the fully-qualified hostname (for example, fs1.abc.com), or the IP address in dotted decimal format, of a file server machine interface or VL Server machine

- The second member of the pair is an integer. The possible ranks range from 1 through 65535.

As with default ranks, the Cache Manager adds a randomly chosen integer to a rank specified by this command. For file server machine interfaces, the integer is from the range 0 (zero) to 14; for VL Server machines, it is from the range 0 (zero) to 126. For example, if the administrator assigns a rank of 15,000 to a file server machine interface, the Cache Manager stores an integer between 15,000 to 15,014.

There are several ways to provide ranks for file server machine interfaces (but not for VL Server machines):

- On the command line, following the -servers argument.

- In a file named by the -file argument. Place each pair on its own line in the file. Directing the output from the fs getserverprefs command to a file automatically generates a file with the proper format.

- Via the standard input stream, by providing the -stdin flag. This method enables the issuer to feed in values directly from a program or script that generates preference ranks by using an algorithm appropriate to the local cell. The AFS distribution does not include such programs or scripts.

When setting file server machine preference ranks, it is legal to combine the -servers, -file, and -stdin options on a single command line. If different options specify a different rank for the same interface, the Cache Manager stores and uses the rank assigned with the -servers argument.

The -vlservers argument is the only way to assign VL Server machine ranks. It can be combined with one or more of the -servers, -file, and -stdin options, but the Cache Manager applies the values provided for those options to file server machine ranks only.

The fs command interpreter does not verify hostnames or IP addresses, and so assigns preference ranks to invalid machine names or addresses. The Cache Manager never uses such ranks unless the same incorrect information is in the VLDB.

Options

-servers
  Specifies one or more file server machine preference ranks. Each rank pairs the fully-qualified hostname or IP address (in dotted decimal format) of a file server machine's interface with an integer rank, separated by one or more spaces; also separate each pair with one or more spaces. Acceptable values for the rank range from 1 through 65521; a lower value indicates a greater preference. Providing ranks outside this range can have unpredictable results. Providing a value no larger than 65521 guarantees that the rank does not exceed the maximum possible value of 65,535 even if the largest random factor (14) is added.

  This argument can be combined with the -file argument, -stdin flag, or both. If more than one of the arguments sets a rank for the same interface, the rank set by this argument takes precedence. It can also be combined with the -vlservers argument, but does not interact with it.

-vlservers
  Specifies one or more VL Server preference ranks. Each rank pairs the fully-qualified hostname or IP address (in dotted decimal format) of a VL Server machine with an integer rank, separated by one or more spaces; also separate each pair with one or more spaces. Acceptable values for the rank range from 1 through 65521; a lower value indicates a greater preference. Providing ranks outside this range can have unpredictable results. Providing a value no larger than 65521 guarantees that the rank does not exceed the maximum possible value of 65,535 even if the largest random factor (14) is added.

  This argument can be combined with the -servers argument, -file argument, -stdin flag, or any combination of the three, but does not interact with any of them. They apply only to file server machine ranks.

-file
  Specifies the full pathname of a file from which to read pairs of file server machine interfaces and their ranks, using the same notation and range of values as for the -servers argument. In the file, place each pair on its own line and separate the two parts of each pair with one or more spaces.

  This argument can be combined with the -servers argument, -stdin flag, or both. If more than one of the arguments sets a rank for the same interface, the rank set by the -server argument takes precedence. It can also be combined with the -vlservers argument, but does not interact with it.

-stdin
  Reads pairs of file server machine interface and integer rank from the standard input stream. The intended use is to accept input piped in from a user-defined program or script that generates ranks in the appropriate format, but it also accepts input typed to the shell. Format the interface and rank pairs as for the -file argument. If typing at the shell, type <Ctrl-d> after the final newline to complete the input.

  This argument can be combined with the -servers argument, the -file argument, or both. If more than one of the arguments sets a rank for the same interface, the rank set by the -server argument takes precedence. It can also be combined with the -vlservers argument, but does not interact with it.

-help
  Prints the online help for this command. All other valid options are ignored.

Examples

The following command sets the Cache Manager's preference ranks for the file server machines named fs3.abc.com and fs4.abc.com, the latter of which is specified by its IP address, 192.12.105.100. The machines reside in another subnetwork of the local machine's network, so their default base rank is 30,000. To increase the Cache Manager's preference for these machines, the issuer assigns a rank of 25000, to which the Cache Manager adds an integer in the range from 0 to 15.

       # fs setserverprefs -servers fs3.abc.com 25000 192.12.105.100 25000

The following command uses the -servers argument to set the Cache Manager's preference ranks for the same two file server machines, but it also uses the -file argument to read a collection of preference ranks from a file that resides in the local file /etc/fs.prefs:

       # fs setserverprefs -servers fs3.abc.com 25000 192.12.105.100 25000  \
                           -file /etc/fs.prefs

The /etc/fs.prefs file has the following contents and format:

       192.12.108.214        7500
       192.12.108.212        7500
       138.255.33.41         39000
       138.255.33.34         39000
       128.0.45.36           41000
       128.0.45.37           41000

The following command uses the -stdin flag to read preference ranks from the standard input stream. The ranks are piped to the command from a program, calc_prefs, which was written by the issuer to calculate preferences based on values significant to the local cell.

       # calc_prefs | fs setserverprefs -stdin

The following command uses the -vlservers argument to set the Cache Manager's preferences for the VL server machines named fs1.abc.com, fs3.abc.com, and fs4.abc.com to base ranks of 1, 11000, and 65521, respectively:

       # fs setserverprefs -vlservers fs1.abc.com 1 fs3.abc.com 11000  \
                           fs4.abc.com 65521

Privilege Required

The issuer must be logged in as the local superuser root.

Related Information

fs getserverprefs

© IBM Corporation 2000. All Rights Reserved