Abstract:
A system and method for providing policy-based data management and control on a NAS device deployed on a network. When a user makes a request to store, read, or manipulate data on the NAS device, the NAS device provides an indication of this request to a management tool running on a remote system. The management tool reviews the request in light of its previously established policy-based data storage management configuration and subsequently informs the NAS device to either accept or not accept the user&#39;s request to store, read or modify data on the NAS device.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority, and is a Continuation-In-Part of co-pending U.S. patent application Ser. No. 12/342,836, entitled “System and Method for Policy Based Control of NAS Storage Devices”, and U.S. Patent Application No. 61/017,318, filed on Dec. 28, 2007, entitled “System and Method for Policy Based Control of NAS Storage Devices” the contents of which are incorporated herein by reference in their entirety for all purposes. 
     
    
     TECHNICAL FIELD 
       [0002]    The present invention relates to data storage devices and more particularly, relates to a system and method for providing a data management policy for network-attached storage (NAS) devices. 
       BACKGROUND INFORMATION 
       [0003]    A network-attached storage (NAS) device is a server that is dedicated to nothing more than file storing and sharing. A NAS device does not provide any of the activities that a general-purpose server in an application server system typically provides, such as e-mail, authentication or file management. NAS devices allow more hard disk storage space to be added to a network that already utilizes “traditional” servers without affecting other aspects of the network. With a NAS device, storage is not a part of multifunction “server”. Instead, in this storage-centric design, the NAS device serves to only store and deliver data to the user. A logical NAS can exist anywhere in a local or wide-area network and can be made up of multiple networked or clustered physical NAS devices. 
         [0004]    Unfortunately, experience has shown that the more storage that is attached to a network the more information a user will attempt to store. Storage hardware and data growth continues at a phenomenal rate, consuming more and more of the IT budget. Although storage is relatively inexpensive, it is still a resource that must be managed and the only way to moderate the need to grow data storage and thereby reduce costs is to control what gets on the storage system and its disposition (i.e. retention) once there. Consequently, storage capacity management tools are a critical component to address this runaway growth. 
         [0005]    Several companies, such as NTP Software (NTPS), the licensee of the present invention, provide such data storage management tools. NTPS&#39;s QFS® software is one such tool that allows system managers to set and enforce policies that control how much storage a user can consume, what types of data they can store, and how long they can keep it. Such policy based data storage management helps lower the cost of data storage and prolongs the life of existing hardware. 
         [0006]    Unfortunately, however, generic NAS devices inherently support only limited data storage management tools and indeed to date, there is no comprehensive policy based management software available for these generic NAS devices. Further, the single purpose operating system built into the NAS device does not and cannot support such management software without substantial modifications. 
         [0007]    Accordingly, what is needed is a system and method for facilitating the application of a data storage management policy on a NAS device. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]    These and other features and advantages of the present invention will be better understood by reading the following detailed description, taken together with the drawings wherein: 
           [0009]      FIG. 1  is block diagram of a system implementing the policy-based data storage management system and method of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0010]    The present invention will be explained in connection with an exemplary system  10 ,  FIG. 1 , including a user device  12 , a NAS device  14  and software, hereafter called “management tool”  16 , that serves to manage storage policies. The user device  12 , NAS device  14  and management tool  16  are coupled together over a local or wide area network by means of a network communication path  18  which may be a wired or wireless network path. The user device  12  may be any form of computing or data processing device requiring access to data stored on the NAS device  14  such as a computer, laptop, PDA or cell phone enabled device or the like. The management tool  16  is preferably implemented as computer software located on a server computer that is a separate machine from the NAS device, and this server machine may also perform other functions and provide other features to the network such as hosting storage reporting and billing software or other network services typically provided by a server. Alternatively, the management tool  16  may also physically reside on or with a NAS device, all without limiting the scope of the present invention. 
         [0011]    As mentioned above, NAS devices  14  appear as “black boxes” to the network in that they do not have sophisticated processing or decision-making capabilities but rather, simply store data on request and/or provide requested information stored on the device. Accordingly, the present invention provides such management and control over stored data using management tool  16 . 
         [0012]    In accordance with one aspect of the present invention, the operating system  10  (not described but well known in the art) of the NAS device  14  is configured such that the management tool  16  will be called or invoked whenever a user device  12  makes a request to store, read or manipulate data which will be performed on a NAS device  14 . The management tool  16  thereafter will control storing data on the NAS device through the FPolicy interface  23  on the NAS device  14 . FPolicy  23  is an example of an interface designed by NetApp, Inc. of California for controlling access to files stored on their NetApp brand NAS devices. 
         [0013]    The “configuration” of the management tool component  16  will be initiated through a registration process with the NAS device  14 . This does not entail loading any software on the NAS device  14 . Rather, it entails logging into the NAS device with an account that has administrative privileges and creating the configuration that allows the management tool  16  to register and manage the NAS device  14 . Registration encompasses telling the NAS device  14  that the management tool  16  is to be notified before the NAS device  14  proceeds with certain requests for operations by a user. Examples of these requests for operations are file opens, creates, deletes, renames, and closes. Once the management tool  16  is registered, the NAS device  14  will notify the management tool component  16  through an RPC call each time a user attempts to perform certain operations on a file on the NAS Device  14 , such as open a file, modify a file, save a file or the like. For purposes of this application, a “user” includes but is not limited to a human being or a computer software application that needs access to data stored on the NAS device  14 . The management tool component  16  must determine whether the user  12  should be allowed access to the file or not and respond appropriately to the NAS Device. The FPolicy interface  23  provides the mechanism for the management tool component  16  to interface with NAS device  14  and allow or deny users to store, read, or manipulate data based on compliance with policies established in the management tool by authorized individuals. 
         [0014]    Accordingly, when the user  12  issues a request  20  to the NAS device to read, modify or store data, the NAS device  14  determines that this request is one of the pre-configured requests that must be forwarded to the management tool  16  first and therefore invokes a call  22  to the management tool  16 . The management tool  16  is a policy-based data storage management tool such as the NTP QFS Software described above. The management tool  16  will review the request issued by the user and provide an indication  24  to the NAS device as to whether or not the NAS device will be allowed to service the request  20  of the user. If the NAS device cannot service the user request, it will provide an indication  26  to the user  12  that such a request cannot be honored. 
         [0015]    From a more technical perspective, the NAS device operating system detects that an action is being taken to store, read, or manipulate data. Because the present invention has been set up to communicate with the NAS device operating system via an application programming interface (Fpolicy  23 ) as described above, the management tool  16  which performs the policy-based NAS device management is made aware of the actions that are requested, determines if such actions are in compliance with established policies which are stored in a database as part of the management tool  16 , then commands the NAS device to accept or deny the action requested by the initiating user device  12 . These established policies have been previously configured by system administrators via a user interface supplied as part of the management tool  16 . 
         [0016]    An example of such a policy would be one that in effect stated “John Doe cannot store MP 3  type files in directory ABC”. When the NAS device  14  denies a user request, it will indicate as such to the user. The management tool can also notify the user along with other various parties via a message in email or other communication mechanisms of the attempt and/or denial. The denial may be based on criteria other than based on the simple identity of the user. For example, it may be that no MP3 files are allowed in a particular folder or that the folder in question has reached its maximum allowable size, a user has been terminated, etc. The elements of a policy can be anything the system can determine. 
         [0017]    Accordingly, the present invention facilitates the provision of a robust, well defined, policy based data storage device control over a storage device that would otherwise lack such robust control. 
         [0018]    It should be recognized that the embodiments disclosed herein may be configured to operate using any number of protocols known to those skilled in the art. For example, in particular embodiments, the user device  12  and NAS device  14  may be configured to communicate using the conventional CIFS (Common Internet File System) Protocol, which is a network file sharing protocol commonly used by Windows-based devices. Although its primary purpose is file sharing, additional functionality may include the following: dialect negotiation; identifying other (e.g., Microsoft SMB Protocol) servers on the network, and/or network browsing; printing over a network; file, directory, and share access authentication; file and record locking; file and directory change notification; extended file attribute handling; and unicode support; etc. CIFS is a connection oriented protocol, which facilitates file sharing by its inclusion of connection (e.g., state) information such as the identity of the “owner” of a particular file and whether or not a file is currently open or otherwise in use by another user. Thus, CIFS and any number of other connection oriented protocols may be particularly well suited for use with embodiments of the present invention. 
         [0019]    However, it may also be desirable to provide embodiments capable of handling communication from devices configured for using conventional “connectionless” protocols. For example, many UNIX-based devices communicate using the NFS (Network File System) protocol. Those skilled in the art will recognize that NFS is a relatively old network protocol that allows a user on a client computer to access files over a network in a manner similar to how local storage is accessed. In conventional NFS applications, a client machine may seek access to data stored on another machine (the NFS server). The server may then implement NFS daemon processes in order to make its data available to clients. The server administrator may then determine what to make available, exporting the names and parameters of directories. Server security administration ensures that it can recognize and approve validated clients. Users on the client machine may then view and interact with file systems on the server within the parameters permitted. 
         [0020]    However, as mentioned above, the conventional NFS protocol is connectionless, and thus lacks the connection information desired to implement sophisticated policy based control of NAS devices as taught hereinabove. An alternate embodiment of the present invention, shown in  FIG. 1 , addresses this aspect by providing a series of file extensions for the NFS protocol, which are configured to convey various connection information, e.g., of the type commonly provided by the CIFS protocol. In this alternate embodiment, User Device  12 ′ and NAS device  14 ′ are configured to communicate using the NFS protocol as modified with these connection oriented NFS file extensions (the “NFS/Extension” protocol). Thus, in this alternate embodiment, NAS Device  14 ′ is configured to receive requests  20 ′ in the connection oriented NFS/extension protocol from user device  12 ′. NAS Device  14 ′ may then extract connection information from the connection oriented NFS/Extension requests  20 ′, which is then used in communications with Management Tool  16  in the manner discussed hereinabove. Similarly, the NAS Device  14 ′ may send connection oriented NFS/Extension communications  26 ′ back to the user device  12 ′. In this manner, the various aforementioned requests for operations (e.g., file opens, creates, modifies, saves, deletes, renames, and closes, etc.) may be effected using the NFS protocol. 
         [0021]    It should be recognized that in various embodiments, management tool  16  and Framework Software  23  may be configured to communicate with one another using this modified NFS/extension protocol. Such communication, however, is not required. Rather, in particular embodiments, the NFS/Extension protocol may be used primarily by the user device  12 ′ and NAS device  14 ′, without requiring such use by Management Tool  16 . In this regard, user device  12 ′ and NAS device  14 ′ may be configured to communicate using the NFS/extension protocol, to decode the NFS/extension to obtain the desired connection information, and then communicate the connection information to management tool  16  in any number of conventional formats, such as, for example, various Win32 APIs, RPCs, and TCP/IP sockets, etc. 
         [0022]    Embodiments of the present invention may thus be configured to employ connectionless protocols, such as the conventional NFS protocol, modified as disclosed herein to include CIFS-style connection extensions, to effectively handle various user requests from non-Windows-based user devices  12 ′. These embodiments enable file connection information to be communicated from the user device  12 ′ to the NAS device  14 ′. This connection information may then be communicated to management tool  16 , using any convenient protocol(s), to effect any of the aforementioned operations, such as file opens, creates, modifies, saves, deletes, renames, and closes, etc., in accordance with the relatively sophisticated policy based control schemes discussed hereinabove. 
         [0023]    Modifications and substitutions by one of ordinary skill in the art are considered to be within the scope of the present invention, which is not to be limited except by the allowed claims and their legal equivalents.