Solaris 2.6 introduced a feature called client failover that allows a client to mount a read-only file system from an alternate server should the primary server become unavailable. There are many reasons why a server might not respond to a mount attempt, including the obvious one that the server has crashed. However, when you network or server has exceeded its capacity to respond to client requests in a timely manner, the mount command will timeout and the effect is the same as a crash. With client failover set up, the client switches over without changing any of the processes your clients run differently than the original server would have.
Failover file servers work because they use read-only file system, so there is no issue of updates involved. The data is static and doesn't have to be replicated except when the source is changed, which for this feature is assumed to be infrequently. The file systems for both the primary and the failover system must in fact be identical or the failover does not succeed. You also can't failover a CacheFS file system because there is additional information in the CacheFS that cannot be updated at the time of failover.
To specify client failover you name additional hosts for that file system in the /etc/vfstab file, or by using the automounter utility. To specify an alternative failover server in vfstab, use the following entry:
Server1,server2:/export/share/local - /usr/local nfs –no –o
Then with the mount command you would specify client failover as follows:
# mount –F nfs –r server1,server2:/export/share/man usr/man
Be aware that you can't use different versions of NFS to make this work when you use the command line or vfstab entry. With autofs you can mix NFS v. and v.3 servers.
Ideal uses of client failover are reference servers like the Answer Book.
Barrie Sosinsky is president of consulting company Sosinsky and Associates (Medfield MA). He has written extensively on a variety of computer topics. His company specializes in custom software (database and Web related), training and technical documentation.
This was first published in May 2003