Fundamentals of Network File Systems


Network file systems were introduced in 1985 by Sun Microsystems with Network File Systems (NFSs). NFS allowed teams of users working on Sun UNIX workstations to exchange data files over a LAN without having to use removable storage diskettes or tapes. In fact, NFS allowed systems to be made that had no local storage whatsoever (diskless workstations) by allowing systems to load the operating system over a network. NFS was an immediate success and was quickly adopted throughout the UNIX industry as a standard for storing and sharing files. Today NFS is one of the oldest and most widely used standards in network storage.

Soon afterward many similar and competing network file storage products were introduced by companies in the PC LAN industry, such as Novell, Banyan, 3-Com, IBM, and Microsoft. A class of software products known as network operating systems (NOSs) emerged that allowed groups of users to share storage resources and printers connected to server systems. Today, network file systems are primarily sold as optional features for commercial UNIX, Linux, and Windows operating systems.

NOTE

The term network file system is used generically in this chapter to refer to all software products that provide network filing services. References to the NFS standard simply use the acronym NFS. Hopefully the context will be clear enough to avoid confusion.


Network file systems use a simple client/server relationship model between client systems running applications that create and manipulate data and the server systems that store it and manage the access to it. This relationship is shown in Figure 15-1.

Figure 15-1. Client/Server Network Storage Model


A Review of Block I/O and File I/O

Chapter 2, "Establishing a Context for Understanding Storage Networks," discusses both block and file I/O briefly. Up to this point in the book, most of the I/O descriptions and technologies have involved block (storing-level) I/O. In the remaining chapters, many of the I/O concepts involve file I/O. Clients exchanging data with network file servers use the extensions to basic file I/O operations that are discussed in this chapter.

File I/O processes involve the way applications interact with file systems to create and access data. While the file system maintains all information about where files are stored in a block address space, applications have only names to identify their data. Applications locate files by their full or relative path names and access the data within files using the file system semantics and application programming interfaces (APIs). Before an application accesses data within a file, it first opens it for access, and then it performs file I/O operations on the contents of the file. File I/O operations can be performed on the entire contents of a file or on certain byte ranges within the file. The file system is responsible for converting byte ranges within files to the blocks where the data is stored in a storage address space.

In contrast, block I/O involves system architectures with initiators, targets, and logical units that have nothing to do with most applications. Unlike file I/O, where the application and file system provide a context that identifies the data, block I/O processes have no context for the data that is being transmitted.

Network File System Clients

The role and functions of the client in network file systems should not be underestimated. While most of the storage functions are determined by file server software, the functions of servers need to match the capabilities and usage methods of client systems. Economic pressures to reduce costs on client machines and use client software that ships with the operating system have significantly influenced the client/server relationship.

File I/O Redirection

Client systems access files in the network through a file system facility called I/O redirection. I/O redirection is responsible for two primary functions: it presents files that can be accessed over the network in the client's interface, and it establishes communications with network file servers for transparently accessing data. I/O redirection interacts with the system kernel to assume responsibility for file I/O operations performed over the network. Essentially, file redirection performs the same type of functions that the local file system does, but it does so remotely with a file system service located in a server.

Network file systems normally appear as a logical drive letter in the client system, such as H: or I:. Network file systems can also be represented with server and directory namesfor instance, as a directory called Jay on a server named Kramer.

Remote-Mounting the Network File System

The process of a client I/O redirector establishing communications with a network file system is called a remote mount. The remote mount process usually includes some type of network login process to ensure the client is authenticated to access the network file system.

The term originates from the mount process that is used by file systems and operating systems to ensure the two are ready to work together within an individual system.

File Server Systems

Network file systems are practically synonymous with file server system hardware. File serving can place a considerable load on a systemparticularly the I/O and storage components and subsystems within a server system. Therefore, network file system software is typically installed on heavy-duty systems designed for extended reliability, much larger storage capacities, and better I/O performance.

File servers can use Small Computer Systems Interface (SCSI), Advanced Technology Attachment (ATA), Serial ATA (SATA), or Fibre Channel as their storage interconnect. There is nothing particularly unusual or difficult about a file server using a SAN to communicate with storage on the storing (block) level. The filing-level function between a client and a server is fundamentally different from the storing-level function between a server and its storage. The physical network can be the same, but the protocol interaction is completely different.

File Server Software and the Network Filing Service

File server software typically runs on server systems as a tightly integrated application on a common operating system. Windows, UNIX, and Linux desktop systems can be converted into file servers with the addition of file server software. UNIX and Linux operating systems typically come with optional NFS software, while Microsoft Windows Server software is an additional software package that upgrades a desktop system to become a server.

File server software provides a service that manages client access to files. A file system on the server controls how storage blocks are allocated and how the storage address space is used. This approach allows many clients to share the same storage address space but maintains control of detailed file system operations such as space allocation on the server.

In fact, it is a bit paradoxical that the thing we refer to as a network file system often does not include a file system, but instead includes a file service that provides access to another existing file system. For example, even though the acronym NFS stands for network file system, NFS does not create a new or different file system on the server when it is installed. Instead, its file service prescribes the manner in which clients access files in an existing file system.

The file service runs as a high-priority application that requests files using an operating system interface, just the same as any other application. The operating system passes requests to the file system, and the file system retrieves the data as requested. More than most other kinds of applications, these file services have many more file operations to track, requiring more system memory to store file handles and other I/O processing data.

NOTE

File servers need lots of memory for running the file service and for caching data for clients. Just say "Fill 'er up" when buying memory for file server systems.


Of course, there are variations to the scenario just described. Network file systems can also be designed with a unique integrated file system and operating system combination that are more or less inseparable because you would never use one without the other.

The Server File System

As discussed in the preceding section, the file system used by a network file system can be an existing standard file system or an integrated, specialized file system. It's important to understand that the characteristics of the server's file system apply to the data that is stored in it. The file system naming conventions, attributes, locking methods, access permissions, and interface semantics are all part of the data that is stored on behalf of client systems.

Client file systems and server file systems may differ, which can create problems. Applications written for a particular operating system platform assume the native file system will be used to store the application's data and metadata according to specified formats. However, if the server file system does not support the same metadata formats, some of the assumptions made by the client application could be incorrect. For instance, it is possible for a file's name to be altered or to have its access permissions changed by the server system. Most file server file systems have evolved to allow data to be stored on them from a variety of clients, but problems still occur.

On a different matter, it is highly recommended that server file systems use journaling for recovery purposes as well as to decrease the time needed to reboot the server following an unexpected shutdown.



Storage Networking Fundamentals(c) An Introduction to Storage Devices, Subsystems, Applications, Management, a[... ]stems
Storage Networking Fundamentals: An Introduction to Storage Devices, Subsystems, Applications, Management, and File Systems (Vol 1)
ISBN: 1587051621
EAN: 2147483647
Year: 2006
Pages: 184
Authors: Marc Farley

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net