NAS is optimized for file I/O; support of any other types of workload I/O is problematic .
NAS software consists of three major components : the micro-kernel OS part, a proprietary file system, and the network software drivers. These are depicted in Figure 9-2.
The operating system for NAS is a UNIX kernel derivative, as indicated in the server discussion. The system is developed with only OS components that enable effective file I/O operations. Components such as memory management, resource management, and process management are all optimized to service file I/O requests . This implementation as a black box architecture renders extreme limitations to initiating other processes, jobs, or activities through the OS. Besides the management tools that the NAS vendor or third-party independent software vendor provides, other processing activities within the server are not available.
Process management is programmed to handle the file I/O processes as the highest priority. Interrupt processing queues and handles other requests secondary to the I/O manager. Various scheduling methods and algorithms are used to optimize these tasks, such as first-in, first-out and random selection by queue. In this manner, all file I/O processes are completed prior to starting any new overhead tasks that the system may require. Balanced among these is the need to manage network processes, as well as handling the overhead of the TCP stack. Given its reentrant functions, several network requests should be processing at any given time. This becomes a balancing act for the OS to handle sufficient network requests with I/O manager activities in order to complete block I/O operation to the storage.
Memory management will be optimized to handle as many file requests as possiblethat means sufficient buffer space and cache management to facilitate the process management schedule. Capacity will play an important role in the capability of the OS to handle interactive requests. Most will be set for read-only operations to cache as many requests on the up-side (network input), and read-ahead buffer on the down-side (storage reads). Interchange will take place as the network process is completed in encapsulating the read request and passing control to the IP process and transmission. As we can see, a significant amount of time is used with TCP and IP process management.
Given the focused job the OS has to do, resource management is fairly static. I/O operations take over all the resources necessary to complete its tasks. Therefore, resource availability takes on a greater level of importance. In addition, the level of controller processing not only plays a significant role in completing the operations but is also fundamental in making resources available to the greatest number of processes. The operations of disk controllers and the further enhancements to controller processing, such as RAID levels and cache management, play significant roles in completing the I/O tasks.
The standard file systems included with NAS devices will support one of two types: the Common Internet File System (CIFs), the Network File System (NFS), or both. In many cases (as shown in Figure 9-3), the standard network file system interfaces with the NAS proprietary file system. Most NAS devices need to do this to manage their own storage. According to the vendors , the implementation of other types of connectivity protocols is supported inherently . As an example, the heterogeneous use of NAS devices to support multiclient access is evolving beyond CIFs through protocols such as SAMBA. Other proprietary network protocols such as Direct Access File System (DAFS) are beginning to emerge as well (see Part II).
Samba is a freeware program that provides end users access to commonly shared resources, and is used primarily to share files and devices between Windows and UNIX systems.