
High Availability
NFS's versatility can be further exploited, other than just in the ways we've described so far. NFS can be set up to be HA (Highly Available). The concept behind HA is simple: have redundant servers that can take over in the event of a system crash, or other catastrophic error.
While the internals of HA itself are complicated, here is a conceptual diagram of how HA can work:

From the top down, the system is set up like this. The NFS server is actually a tandem of servers that are set up to be completely redundant. Each server has two connections to your server network. There are two connections between the computers, for them to exchange data between them. Finally there are two connections to two fully redundant disk arrays.
Each server has one interface, known as the service interface, which is unique to that server. This is for administration only, and this IP address will not transfer over to the other server in the event of a failure. The other interface on each machine, however, is the production interface. If one of the servers stops responding, then the other server will take over that server's IP address and begin taking requests for it. Since the machines have been communicating over the heartbeat networks, the server that is taking over the service can begin serving the data immediately. Since this entire process takes a few seconds, the NFS service never becomes unavailable.
This may seem like an extraordinary amount of work for just an NFS server, however, for many production servers, downtime is never available. If you would like to upgrade the amount of memory in these servers, however, all you would need to do is "fail" the NFS services over to the other machine, turn the machine off, change the RAM, turn it on, and put the NFS services back. So without any downtime, you have the ability to completely change your servers! Not to mention that you can balance the load between the servers, so that under normal operation, they can each handle roughly half the load.
Links
History
http://www.sun.com/sun-on-net/history.html - A history of NFS, and Sun Microsystems
RFC's
http://www.cis.ohio-state.edu/hypertext/information/rfc.html - A good resource for finding RFC's
NFS version 2--RFC1094
NFS version 3--RFC1813
WebNFS--RFC2054
NT NFS Vendors
http://www.hummingbird.com/ - Hummingbird Communications, Ltd.
http://www.ssc-corp.com/nfs/ - Shaffer Solutions.
http://www.sun.com/ - Sun Microsystems.
http://www.wrq.com/ - WRQ Inc.
Glossary of Terms
Auto.home - auto.home is an NIS map that contains information about servers that are available for mount on an on-demand basis.
Automount - a method of mounting a remote filesystem on an on-demand basis.
Filehandles - Byte strings that allow programs to access files and directories. NFS passes around filehandles to clients, which clients use to access the server's files and directories.
mount - used in conjunction with unmount. The process of making an NFS volume available to the local machine.
NFS - The Network File System. Developed by Sun Microsystems, it a cross-platform standard of File Access, and the standard in the Unix environment.
NIS/NIS+ - Network Information Systems. Developed by Sun Microsystems, it is a method of sharing data from servers to clients. NFS auto.home data can be stored here.
portmapper - part of the NFS server. It translates sharenames into unique ports on the server. Since the port numbers change whenever the server is rebooted, or new shares are added, the NFS client needs to talk to the portmapper every time it wishes to make a new connection.
Samba - A Unix daemon that, like NFS, offers File Access. Samba, however, offers SMB services, much like a Windows server.
SMB - Server Message Block. The protocol used between Windows servers, and Windows clients. Can be used from Unix servers, to Windows clients with the use of Samba on the Unix server.
SMCC - Sun Microsystems Computer Corporation
YP - Yellow Pages. See NIS/NIS+.
GID - Group ID. A part of Posix permissions that determine groups of users. NFS files have a GID assigned to them.
UID - User ID. The numerical number assigned to a user in Unix permissions. NFS uses UID's to determine permissions on files and directories.
UID space - Computers who share a common password file, or more importantly, a common mapping of UID's to users. In a single UID space, each user will have a unique UID.
unmount - the exact opposite of mount. It removes an NFS share from the system, freeing its resources.
|