' works correctly, then update rush's.
The lowest level cache is the ARP cache, eg. 'arp -a', which associates IP addresses
to MAC addresses. When ARP is wrong, nothing works. Even 'ping [newipaddress]' may hang
or fail, because they'll still be trying the old MAC address. When you change the IP
of a machine, all the other machines will still have the old IP in their ARP caches.
These caches usually time out after 15 minutes, so by the time you read this article,
those caches probably will have flushed out. You can view the arp caches on the
remote machines with 'arp -a', and you can remove old IP entries with 'arp -d',
and they'll fix themselves. This should get 'ping [newipaddress]' to work correctly.
The next higher level of cache is DNS hostname/IP caching. If these are wrong,
'ping [ipaddress]' will work, but 'ping [hostname]' will show the wrong IP.
Different OS's have different ways to flush these high level caches:
- OSX (10.1 through 10.4): lookupd -flushcache (See 'man lookupd')
- OSX (10.5 and up): Lookupd was removed from the OS. See replacement.
- Windows (all releases): ipconfig /flushdns (See 'man lookupd')
- Linux: Most linux distros don't have an IP cache by default, unless 'nscd' was enabled.
If 'nsd' is on, you can clear its cache by restarting it, eg.
/etc/init.d/nscd restart See 'man nscd'.
Once the DNS name caching daemons have been fixed, 'ping [hostname]' should work
and show the correct IP. Once that's working, you can tell rush to flush the daemon's
hostname-to-IP caches by either:
- (New in 102.42)
Use 'rush -reload hosts +any -t 3'
to tell all the machines to reload their hosts files.
-- or --
- Change the date stamp on the license server's $RUSH_DIR/etc/hosts file
by just loading it in an editor and then re-saving it, then push the changed
file to the network with 'rush -push +any', so that all
the daemons see the changed datestamp, and reload the hosts file, flushing the
caches.
The rush daemons cache hostname-to-ip-address lookups for all the hosts in the
rush hostlist for speed. This prevents load on your DNS or NIS servers, since
rush makes many hostname/ip lookups when managing jobs.
You can view the daemon's hostname/IP cache by invoking:
'rush -lah <hostname>'.
This will show you daemon's IP cache, which you can compare to the "realtime"
hostname-to-ip-lookups report 'rush -lah' to check for
discrepencies.
In cases where render nodes can't get a license from the license server because
the node's IP address changed, the license server might have an old cache,
and you'll want to run that command
on the license server, where <hostname> is hostname of the
license server.
You can tell all machines to flush their caches by either using:
This will show you the rush hostlist according to the daemon on the named machine,
including it's cached IP address lookup information. In cases where render nodes
can't get a license from the license server because the license server has an old
cache, you'll want to run that command
on the license server, where <hostname> is hostname of the
license server.