RUSH RENDER QUEUE: HOSTS FILE
(C) Copyright 1995,2000 Greg Ercolano. All rights reserved.
V 102.41 03/05/04
Strikeout text indicates features not yet implemented



Hosts File
$RUSH_DIR/etc/hosts
                                                                                




  File Format  

The $RUSH_DIR/etc/hosts file must contain the names of all hosts that participate in rendering.

The hosts file can be updated on the fly. Simply edit the file, make changes, then use 'rush -push hosts +any' to copy the local changes to all the machines, and the daemons will pick up your modifications within a minute.

The rushadmin tool makes this easy to do; just run rushadmin, click on 'hosts' to edit the file, save when done, and hit 'Send' to send the file to the network. Or you can use these commands.

Rush won't talk to any machine not in the rush hosts file, as a security measure. So be sure all machines (including license servers) are in the rush hosts file on all machines.

The format of the hosts file is single lines of 5 white space separated fields, one line per host:

Blank lines and lines starting with '#' are ignored.


Example Hosts File

    # HOST CACHING
    daemon-hostcache full
    app-hostcache    demand


    #
    # The 'Host' field should contain short names for hosts (aliases are ok),
    # and must be unique.
    #
    # The 'Criteria/Hostgroups' field must *NOT* contain white space, and words are 
    # comma delimited. All hosts must contain '+any' in the Criteria/Hostgroups field.
    #
    #Hostname   Cpus  Ram   MinPri  Criteria/Hostgroups
    #--------   ----  ----  ------  ------------------------------------
    tahoe       2     256   0       +any,+work,sgi,irix,irix6.5
    superior    2     256   0       +any,+work,sgi,irix,irix6.2
    ontario     1     128   0       +any,+work,linux,linux6.0,intel
    erie        1     128   0       +any,+work,sgi,irix,irix6.4
    rf1         2     1024  0       +any,+farm,linux6.2
    rf2         2     1024  0       +any,+farm,linux6.2
    rf3         2     1024  0       +any,+farm,linux6.2
    rf4         2     1024  0       +any,+farm,linux6.2
    rf5         2     1024  0       +any,+farm,linux6.2
    eval1       2     1024  0       +any,+eval,linux7.2
    eval2       2     1024  0       +any,+eval,linux7.2
      

  Daemon-HostCache  

Configures caching hostname-to-ip lookups in the rushd daemon.

Synopsis

    daemon-hostcache none|demand|full

	* none   - No caching. Use the OS for all lookups.
	* demand - Cache on demand, or whenever new hostlist is reloaded.
	* full   - Cache on boot, or whenever hostlist reloaded.
    
Examples
    daemon-hostcache full      # caches hostname lookups on boot
    daemon-hostcache demand    # caches whenever requested
    daemon-hostcache none      # caching disabled
    
Description
Configures caching hostname-to-ip lookups in the rush daemon (rushd). Normally this is set to 'full', so the daemon caches all the hostname lookups in the rush/etc/hosts file as soon as it starts up. This prevents rushd from having to make further hostname queries from the operating system.

If set to 'none', all hostname-to-ip lookups will be done by the operating system on a per-request basis. Useful if IPs are expected to change, but this is not recommended. Also, depending on the operating system, disabling caching will pass all name lookup load onto the operating system, especially if each request involves a network transaction to do the lookup (NIS, DNS).

Since rush can potentially make dozens of hostname lookups per second when jobs are active, it is highly recommended to leave this setting at the default; 'full'.

  App-HostCache  

Configures caching hostname-to-ip lookups in the rush client application.

Synopsis

    app-hostcache none|demand|full

	* none   - No caching. Use OS for all lookups.
	* demand - Cache on demand (default)
	* full   - Cache all hostnames first
    
Examples
    app-hostcache full      # caches all lookups whenever 'rush' is executed
    app-hostcache demand    # caches lookups on demand
    app-hostcache none      # no caching; OS does all hostname lookups
    
Description
Configures caching hostname-to-ip lookups in the rush client (rush). Normally this is set to 'demand', so rush(1) cache the lookups on demand, for the duration of its execution (which is usually short).

There are few situations where any setting other than 'demand' would be useful.

  Hostname  
This is the name of the host, and should be the shortest name possible (e.g., host aliases can be used here).

This is the name that will be used in jobids and other cpu reports, so it is best if short names are used (10 chars or less). Longer names are ok, but will misalign columnar reports. Avoid using FQDN hostnames (e.g., foo.domain.com).

You can optionally specify an alternate network interface other than the default. Just append to the hostname a ':' followed by the name of the interface, e.g.:

    tahoe:tahoe-eth

This says 'tahoe' is the actual name of the machine (ie. hostname(1)), but rush should use tahoe's 'tahoe-eth' network interface for all communications.

  Cpus  
This should be the number of cpus the host has. This is how many processes the host will run at the same time. This value can be larger or smaller than the actual number of physical cpus the machine has.

'0' is an acceptable value that effectively disables the machine from participating in rendering, while allowing the host to remain in the hosts file.

  Ram  
This is the amount of ram the machine has. This value can be less or more than the actual ram the machine has; usually this value takes into account some percentage of the host's swap space as well. This value is used when accepting frames to render; a frame that asks for more ram than the machine has will be turned away.

On multiprocessor machines, this value is a total from which rendering frames subtract their estimated ram use. For instance, if a 4 cpu machine is configured with a Ram value of 512, and 2 frames are currently rendering each with ram values 200, then only 112 will be left for rendering on the other two processors (112 = 512 - ( 200 x 2 ) ).

  MinimumPriority  
Use this value to set a limit on the minimum priority a job must have to render on this machine.

Useful where you want to prevent people from rendering on workstations unless they are of at least a certain priority, or if you want to allow only the local workstation user to submit to their own workstation using a policy enforced priority value.

A value of '0' allows all jobs. A value of '900' will only allow renders with a priority of 900 or above; renders with less than that will be turned away.

  Criteria/Hostgroups  
This is a list of comma separated strings that define platform or operating system specific features for the host. These can be arbitrary alpha-numeric strings that may also contain dashes, underbars and periods, but must not contain any whitespace. '+' characters have the special purpose of leading off a Host Group specification.

The <Criteria/Hostgroups> field might be set to:

+any,linux,linux6.1,prman3.7
These strings can then be used in TD's submit scripts to limit which hosts will render their frames. See the Criteria Submit Script command for more info. All hosts should have a criteria entry that at least contains +any.

Changing the '+any' to '+offline' has the useful effect of temporarily removing a machine from showing up in 'rushtop', 'All Cpus' and 'All Jobs' reports, without removing it from the rush/etc/hosts file. This is useful if a machine will be taken down for service for a short time.

Host Group names are configured in this field, too. To add a hostgroup called +servers to the above example:

+any,linux,linux6.1,prman3.7,+servers