Storage Networking Fundamentals: An Introduction to Storage Devices, Subsystems, Applications, Management, and File Systems (Vol 1)

The Complete I/O Process for File I/O in a Network

Readers sometimes find it helpful to think about the complete storage process used for file I/O operations. The steps taken to read data using a network file system are shown in Figure 15-2 and are discussed in the following list. Each letter in the list corresponds to a location in the I/O path where there is some interaction involving network filing data access. Notice that most letters show up twice in the list. That's because commands and responses travel the same path, but in opposite directions.

  1. The client application asks the client operating system for a file. The application and the client operating system establish handles to exchange file contents.

  2. The client operating system engages the file I/O redirector and establishes the necessary handles to transfer file contents.

  3. The file I/O redirector in the client communicates over the network with the file service application in the server, requesting the file.

  4. The file service application asks the server operating system for the file and establishes handles for exchanging file contents.

  5. The server operating system engages the server file system and establishes handles for transferring file contents. The server file system locates the file using its internal reference system and submits read I/O commands through the server's operating system kernel.

  6. Read I/O commands are processed by I/O drivers, including any multipathing, volume management, and SCSI-layer device drivers. One or more commands are transmitted over the I/O networks or interconnect buses to storage. All involved storage LUs execute the commands they receive and read data from storage media before making a response and transferring data to the server's operating system.

  7. The operating system passes the aggregated block I/O information to the server file system, which converts the block data to byte streams. The server file system exchanges the file data with the server operating system, which stores the data.

  8. The server operating system exchanges the file data with the file service application.

  9. The file service application in the server communicates with the file I/O redirector in the client and transfers the file data to the client over the network.

  10. The file I/O redirector exchanges the data with the client operating system, which stores the data in memory buffers.

  11. The client operating system exchanges data with the client application.

Figure 15-2. The Process of Reading a File Using a Network File System

Despite the number of steps and the complexity involved, accessing files on file servers can be faster than accessing files locally on disk drives in client systems. This assumes that client systems have relatively slow I/O hardware compared to server I/O hardware. Also, the large amounts of cache memory that can be implemented in servers can make significant performance differences by reading from memory instead of disk.

Категории