|
| ||
|
Summary NFS fully satisfies enterprise requirements for global file sharing. It supports global workgroups by keeping file systems located worldwide continuously and transparently accessible to users. An industry leader in performance, NFS provides fast access to file information as well as the scalability to support small to large network environments. Because it relies on a flexible and extensible security architecture, it enables administrators to choose the security solution that fits their environment today and to have more options in the future. The ability to administer NFS centrally reduces the time and effort it takes to perform a variety of routine administration tasks. Finally, for mission critical environments, a highly available NFS implementation is provided. These features together with the vast array of multi-vendor NFS products to choose from and a rapidly growing licensee and installed base, reaffirm that NFS is the right choice for integrating the heterogeneous enterprise both now and in the future. Feature SummaryTable 1 NFS Feature Summary ![]() ![]()
Appendix A: NFS FundamentalsAppendix A: NFS FundamentalsThe Mechanics of NFSNFS employs a client/server architecture and therefore consists of a client program, a server program and a protocol that is used to communicate between the two over the network. This section describes the mechanics of NFS distributed file sharing technology including how servers share their file systems, and how clients are able to access these file systems transparently. The NFS ServerThe role of the NFS server is to allow its disk file systems to be accessed (in other words "shared") by other machines (clients) on the network. The process whereby a server makes its file systems available to be shared is called exporting, and the directories that are made available are referred to as exported file systems. In order to export a file system, the system administrator must edit a configuration file and specify three things:
At system start up time a system dependent program (the share program on Solaris 2.X systems) is invoked that opens and reads the information in this configuration file. This program then informs the servers operating system kernel about the permissions applicable to each exported file hierarchy. A special background processes (mountd and nfsd) are invoked and wait to receive client NFS requests to access the server's file systems. After this process is complete, the server is ready to accept client requests to access its file systems. The NFS ClientNFS clients gain access to server files by mounting the servers exported file systems. The mount process results in integrating the remote file system into the client's file system "tree" (see Figure 9). An enhanced client side service called the automounter automatically and transparently mounts and unmounts file systems on an "as needed" basis. From the user perspective, this creates an environment where server file systems are continuously accessible. Automounter Maps and the NFS NamespaceIn order for the automounter to mount a file system it needs maps that tell it what to do. A map associates a client "name" (pathname) with a file system that resides on a remote server. These client names are also called mounts or mount points because they represent the points at which server file systems will be mounted. Collectively these mount points represent the file system namespace, or in other words the names clients use to access server file systems. In the example in Figure 9, the client name or mount point is "/home/sallyb" and the server file system is "server1:/export/home/sallyb". After the mount process is complete, users on the client system will be able to access files on server1:/export/home/sallyb by simply referencing the pathname /home/sallyb. (Note that to clients running MSDOS or WindowsTM, NFS mounts look like additional drives, e.g. D:, E:, F:, etc.)
From this description it is easy to see why configuring and maintaining automounter maps and thus the NFS namespace is at the heart of NFS administration. To reduce time and effort required to administer NFS, maps are stored and therefore administered centrally in a name service. On Solaris, either NIS+, NIS or system files may be used to store map information depending on what is installed on the network. More extensive information on managing the NFS namespace can be found in the section called "Automounter Maps and the NFS Namespace" on page 23. The Role of the AutomounterAs stated previously, the automounter's job is to transparently mount file systems on an "as needed" basis. It can detect when a user is trying to access a file system that is not already mounted, and can react by mounting the file system according to the information provided in the map. The automounter also automatically unmounts file systems that have not been referenced in over 5 minutes. The automounter consists of three components: the automount command, the automount daemon process called the automountd, and a special purpose virtual file system (VFS [16])) called the autofs. Figure 8 on page 23 shows the components of the automounter. At system start up time, the automount command is invoked. It reads a master configuration map called auto_master and creates mount points in the /etc/mnttab table of mount points. Afterwards, if a user on the client system references one of those mount points (for example by trying to cd to it), autofs calls automountd and asks it to actually mount the file system. The automountd establishes communication with the NFS daemon process (nfsd) on the server, looks up the right server:path reference (for example server1:/export/home/sallyb) in /etc/mnttab, and mounts the file system at the appropriate client mount point (for example /home/sally) within the autofs file system. From then on, automount and autofs are out of the picture until and unless the file system is unmounted. At times it may become necessary to change map information to reflect server resource reallocation on the network For more information on how the automounter enables changes to be administered easily and non-disruptively, see the section called "The Automounter" on page 22. The NFS ProtocolThe NFS protocol consists of a set of remote procedures enabling clients to manipulate remote files and directories on server systems as if they were local. Using the NFS protocol routines, clients send requests for file operations to servers, and servers respond by attempting to perform the operation (provided the user has proper permission) and then sending back successful results or error values. The NFS protocol includes a full spectrum of file operations including read, write, rename, and mkdir to name only a few. The first version of NFS, NFS Version 1, was never released. The second version of NFS, NFS Version 2, is widely implemented on a variety of operating system and hardware platforms and comprises a large majority of the existing installed base today [17]). In 1993, a new revision of the NFS protocol, NFS Version 3, was designed and tested for the first time. NFS Version 3 offers many improvements over NFS Version 2. This topic is discussed in the section called "A New Revision to the NFS Protocol--NFS Version 3" on page 7. Fast Error RecoveryThe NFS protocol was designed for fast error recovery. The parameters to each NFS procedure call contain all of the information necessary to complete it. This not only enables NFS to recover more quickly from system and network failures, it also makes NFS easier to administer. Machine and Transport Protocol IndependenceNFS is transport independent which means it is not tied to a particular transport protocol. It can run over multiple existing protocols such as UDP and TCP today, as well as having the potential to run over new protocols in the future. The NFS protocol gains its transport protocol independence by virtue of fact that it is built on top of the Sun developed transport independent remote procedure call (TI-RPC) [18]) technology. All of the NFS procedures are implemented as TI-RPC based remote procedure calls. Because NFS utilizes the Sun eXternal Data Representation (XDR) [19]), it is machine and language independent. XDR defines the size, byte order, and alignment of basic data types such as integer, array, union, etc. so that data can be exchanged between systems with different byte ordering conventions. Now that you have a basic understanding of how NFS works, please continue by referring to the main text of this document. Appendix B: Multi-Vendor NFS ProductsTable 2 Sample List of Vendors Offering NFS Products --------------------------------------------- Vendor OS Platform --------------------------------------------- Amdahl UTS Apple A/UX Beame and Whiteside DOS, Windows? BSDI Unix Cray UNICOS DEC Ultrix, VMS Dell SVR4 FTP Software DOS, Windows, OS/2 Frontier Technology DOS, Windows Hewlett-Packard HP-UX IBM AIX, MVS Intel Unix ICL Unix Net Manage DOS, Windows Nixdorf TOS 35 Novell Netware OSF OSF1 Santa Cruz Operation SCO Unix (SCO) SunSoft Solaris, DOS, Windows Silicon Graphics IRIX Process Software VMS Sony NeWS Texas Instruments TI SVR3.2 TGV VMS --------------------------------------------- Glossary
ReferencesBhide, A., E.Elnozahy, S. Morgan, "A Highly Available Network File Server", Winter USENIX Conference Proceedings, USENIX Association, Berkeley, CA January 1991 Blaze, M., "Key Management in an Encrypting File System", Winter USENIX Conference Proceedings, USENIX Association, Berkeley, CA June 1994 Borr, A. and C. Wilhelmy, "Highly Available Data Services for UNIX Client- Server Networks: Why Fault Tolerant Hardware isn't the Answer", Hardware and Software Architectures for Fault Tolerance: Experiences and Perspectives, Lecture Notes in Computer Science, Vol. 774, pp.285-304, Springer-Verlag, Berlin, 1994 Cache File System White Paper, URL:http:/www.sun.com/software/Products/Solaris-white- papers/cachefs_wp.html Callaghan, Brent, NFS: A Technical Update, Sun Microsystems Press, 1995 Callaghan, Brent, and Tom Lyon, "The Automounter", Winter USENIX Conference Proceedings, USENIX Association, Berkeley, CA, January 1989 Callaghan, Brent, and Satinder Singh, "The Autofs Automounter", Summer USENIX Conference Proceedings, USENIX Association, Berkeley, CA, June 1993 Digital Equipment Corporation, "Guide to Prestoserve", DEC OSF/1 Prestoserve Product Documentation, Order number AA-PQTOA-TE, March 1993 Hitz, D., J. Lau, M. Malcolm, File System Design for an NFS File Server Appliance, Winter USENIX Conference Proceedings, USENIX Association, Berkeley, CA, January 1994 Keith, Bruce and Wittle, Mark, "LADDIS: The Next Generation in NFS File Server Benchmarking", Summer USENIX Conference Proceedings, USENIX Association, Berkeley, CA, June 1993 Khanna, Raman, Distributed Computing Implementation and Management Strategies, Prentice Hall, 1993 Kleiman, S.R., "Vnodes: An architecture for Multiple File System Types in Sun Unix", USENIX Conference Proceedings, Atlanta, Summer 1986 Linn, J., "Generic Security Service Application Program Interface", RFC-1508, September, 1993 Macklem, Rick, "Lessons Learned Tuning the 4.3BSD Reno Implementation of the NFS Protocol", Winter USENIX Conference Proceedings, USENIX Association, Berkeley, CA, January 1991 Macklem, Rick, "Not Quite NFS, Soft Cache Consistency for NFS", Winter USENIX Conference Proceedings, USENIX Association, Berkeley, CA, January 1994 Minnich, Ronald, "The AutoCacher: A File Cache Which Operates at the NFS Level", Winter USENIX Conference Proceedings, USENIX Association, Berkeley, CA, January 1994 Moran, J., R. Sandberg, D. Coleman., J. Kepecs, B. Lyon, "Breaking Through the NFS Performance Barrier", Proceedings of the 1990 Spring UNIX Users Group, Munich, Germany, pp. 199-206, April 1990 Pawlowski, B., Chet Juszczak, Peter Staubach, Carl Smith, Diane Lebel, David Hitz, "NFS Version 3 Design and Implementation", Winter USENIX Conference Proceedings, USENIX Association, Berkeley, CA, January 1994 Schneier, Bruce, Applied Cryptography, John Wiley and Sons, 1994 Stern, Hal, Managing NFS and NIS, O'Reilly, June 1991 Sun Microsystems, Inc., "Network Filesystem Specification", RFC-1094, DDN Network Information Center, SRI International, Menlo Park, CA (This is the NFS Version 2 specification) Sun Microsystems, Inc., "Remote Procedure Call Specification", RFC-1094, DDN Network Information Center, SRI International, Menlo Park, CA (This is the remote procedure protocol specification) Sun Microsystems, Inc., External Data Representation Specification, RFC-1094, DDN Network Information Center, SRI International, Menlo Park, CA (This is the proposed standard for canonical format for data exchange used with RPC) SunSoft, "The NFS Version 3 Protocol Specification", Internet locations: ftp.uu.net:/networking/ip/nfs/NFSV3.spec.ps.Z bcm.tmc.edu:/nfs/nfsv3.ps.Z gatekeeper.dec.com:/pub/standards/nfs/nfsv3.ps.Z Welch, Brent B., "Measured Performance of Caching in the Sprite Network File System", University of California, Berkeley X/Open Company, Ltd., X/Open CAE Specification: Protocols for X/Open Internetworking: XNFS, X/Open Company Ltd., Apex Plaza, Forbury Road, Reading Berkshire, RG1 1AX, United Kingdom, 1991 (This is an invaluable reference for NFS Version 2 and accompanying protocols including the Lock Manager and the Portmapper)
X/Open Company, Ltd., Developer's Specification: Protocols for X/Open PC
Interworking: (PC)NFS, X/Open Company Ltd., Apex Plaza, Forbury Road,
Reading Berkshire, RG1 1AX, United Kingdom, 1990
Footnote 16
Footnote 17
Footnote 18
Footnote 19 | ||
Copyright 1996 Sun Microsystems, Inc., 2550 Garcia Ave., Mtn. View, CA 94043-1100 USA. All rights reserved.