If we view the NAS software components - micro-kernel , file systems, and storage software-as a composite I/O manager, similar to how we viewed the NAS hardware, we uncover a tremendous value bundled into a single device. Along with a composite of I/O related functions is the value of providing a distributed solution as complex as file I/O through existing networks. This is an important distinction to identify as the difference between a NAS product is compared to a Do It Yourself (DYI) commodity server being retrofitted to function as a shared file server. Consider the following major functions that the NAS device provides, which the user consequently doesn't have to worry about.
Remote File Processing The ability for an application's file I/O requests to be handled through the network and serviced by a multipurpose file system.
Operating System Optimization The functions of an I/O optimized OS that is pre-configured, bundled, and RAID ready. Includes I/O optimization for task, memory, and scheduling management.
File System Ubiquity Provides the levels of support necessary to process multiple file protocols and is optimized within a single file system.
File Read/Write Processing Provides the ability to effectively, reliably, and securely store and retrieve application data from a remote network location.
In the previous chapter, we defined three NAS processing models. These were contrasted with NAS hardware considerations which provided some insight into the general hardware requirements and capacities for each. The following discussion can be used in conjunction with this information to balance the software considerations and requirements for each of the NAS processing models. Support for each of these models stresses particular elements of the NAS software and, as such, should be evaluated carefully as workloads increase with each model and as software requirements grow from Sfp processing into enterprise-level Cfp models.
The following represents some key considerations as simple file processing grows into more complex processing requirements. Using these categorizations as guidelines, they can provide valuable insight into the types of NAS devices required for departmental and data center file processing workloads.
Simple File Processing (Sfp) essentially extends the client's F/S, which should be accomplished with as little overhead as possible. This requires a simple micro-kernel implementation with the minimum enhancements. Processing is characterized by read-only synchronous processing with minimum queuing; however, with this processing model effective buffer and cache management is noticeable.
Quality File Processing (Qfp), which processes files with added value for more reliability and integrity, adds extra overhead as activity builds the importance of effective interrupt processing, device drivers, and interaction among user- mode, kernel mode, and device-driver processing. Also, the sophistication and usage of Authorized Control Lists (ACL) for security and the ability to provide significant reliability with asynchronous processing and RAID levels is an important consideration of the NAS software for this processing model. Increased transactional workloads now point to additional TCP processing, which will leverage effective redirector functions.
Complex File Processing (Cfp) is the processing of files with the added value of user/ application-defined prioritization as well as access to other file and storage systems. As with hardware components, this will be the greatest challenge as all elements of an I/O manager are stressed to their limits. Consequently, the ability to provide effective and efficient storage protection, device driver communications, queue management, and complex redirector processing is paramount.
The workloads for NAS devices have been characterized as file-oriented I/O operations performed on behalf of remote applications executing somewhere within a network. An important distinction in considering these workloads is the evolution of NAS devices as they take on a wider scope of I/O operations in supporting applications that require more than just file access. These workloads have been traditionally difficult for appliance- or black box-oriented RTOS machines, given their limited flexibility in performing operations outside of file access and I/O. Two major areas that NAS is beginning to support are database products and native data protection products.
Database processing, both in the context of the relational model and static model, typically exists where the database engine executes on a local application server and the user data exists on the same server using directly connected storage systems. When the user data in the form of tables are moved to a remote server or storage system, this becomes problematic given the integrated processing that occurs within the database engine and its associated tables (see Chapter 8). Making things more complicated in a remote setting are the required components to support transactional type processing in the form of log files and lock management.
The Static Database Model defines a database system that is distributed with a specific application. These bundled databases operate only with the application they are distributed with and consequently are closed to modification and use as a general purpose database. They are often referred to as embedded databases, or runtime databases, and are used with business applications that range from e-mail, Enterprise Resource Planning (ERP), to Customer Resource Management (CRM).
Activities have been underway to ease the restrictions of running databases on NAS devices. First are the combined efforts of the NAS vendors and database companies. This has resulted in configurations where the database engine continues to reside on a commodity server; however, the data tables are remotely stored on the NAS device. This comes with many caveats, such as the support of these configurations by the database and NAS vendors , given the complexity of the solution and limited user expertise. Another major consideration is the limitations of database processing that can be sustained in these configurations. Additional discussions in Chapter 19 will provide more detail on these implementations .
Data protection products such as backup and recovery software, mirroring, and data archiving are all used to support integrated data center maintenance functions. These functions are integrated into data protection activities and policies supported through software that function throughout a wide segment of operational environments-for example, mainframe configurations, UNIX configurations, and Windows network server environments. If a device doesn't easily fit into one of these categories, the likelihood that existing software products will effectively support it is low. Such has been the case for NAS devices. The reasons are straightforward given the RTOS nature of the NAS device and the additional processing that has to take place when executing data protection software on any server. Optimized NAS devices do not have the capacity and functions to run general-purpose backup and recovery as well as other data-protection solutions.
To overcome the limitations of data protection within NAS environments, NAS vendors and third-party storage software vendors have been working to provide native NAS solutions-that is, solutions that are integrated into the NAS devices. From the NAS vendors themselves , they have been enhancing their enterprise-level devices to provide physical connectivity to tape devices, allowing the ability to copy and archive data to tape directly from the NAS device. Although this is an effective way to handle the protection of data stored on the device, the consideration is the integration or new development of an IT tape library. Will the new tape units integrate into an existing tape library and how will they be protected and accessed are two questions for consideration regarding this NAS data protection solution.
There are two other enhancements to the integration of data protection activities for NAS that increase its level of enterprise reliability and availability support. These are mirroring and snapshot. Mirroring, a level of RAID storage functionality previously discussed, allows NAS devices to participate in a high availability processing strategy by providing the necessary support for real-time backup of data. This can be done locally or configured remotely to function as a disaster recovery solution. The snapshot function allows similar operations, however it provides a level of data redundancy, usually locally, that permits the processing of applications to continue even as the data is copied for backup purposes. The snapshot function essentially takes a 'snapshot' of an existing file system and maintains this copy according to the timing of the snapshot itself. This can work in conjunction with other data protection methods , such as mirroring, to ensure multiple data protection strategies are implemented.