The invention pertains to managing a network storage device and more particularly to prioritizing transactions at the network storage device.
Computer readable data is commonly stored on devices connected over a network to centralize access to the data. Until recently, use of the storage device was limited by the speed of the network connection. However, as network connections have become faster, the focus has shifted to increasing the speed and efficiency of the network storage device itself.
Network storage devices come in many forms. For example, a direct attached storage (DAS) device is attached to the network through a server. Use of the DAS device is therefore limited by the speed of the server. Network attached storage (NAS) devices improve the performance and efficiency of storage on the network by attaching directly to the network and making use of the NAS device independent of the server speed. That is, data is transferred directly between the NAS device and clients on the network via industry standard network protocols (e.g., TCP/IP). However, various clients on the network may require use of the same NAS device, requiring that access to the NAS device be managed to optimize the speed and efficiency thereof.
Use of the NAS device may be on a first-in, first-out (FIFO) basis. For example, two or more transactions may be received at the NAS device. Where the first transaction is received first in time, the first transaction is processed by the NAS device ahead of the second transaction. However, use of the NAS device on a FIFO basis is not always efficient. For example, the first transaction may be to write backup data to the storage device while the second transaction may be a request to view a video clip stored on the NAS device. Thus, writing the backup data will take priority over retrieving the video clip, thereby interrupting transmission of the video clip and causing it to appear shaky as it is viewed by the second client.
Alternatively, multiple NAS devices on the network may each be designated for exclusive use by particular groups of users, applications, etc. For example, one NAS device may be designated for data backup, while the other NAS devices may each be designated for particular projects. Or for example, each NAS device may be designated for exclusive use by individual users or groups of users. However, such an approach can become costly, such as where additional storage devices must be purchased for each new project. In addition, such an approach may make inefficient use of the available NAS devices. That is, transactions at one or more NAS devices may be intermittent or non-existent at times (e.g., where data is only backed-up during off-peak hours), while transactions at other storage devices may be continuous during those same times (e.g., where stored data is repeatedly accessed for a particular project). As such, one or more NAS devices may be idle while at the same time, another NAS device experiences very high demand.
Therefore, a need exists to manage the NAS devices at the device level. Where there are multiple NAS devices on a network, a need also exists to centralize management of the NAS devices while maintaining control at the device level.
The inventors have devised apparatus and methods for managing a network storage device (e.g., a network attached storage (NAS) device, a storage area network (SAN), etc.), at the network storage device itself. Preferably a usage policy (or policies) is centrally generated at a policy management server and distributed to one or more network storage devices to prioritize transactions at the network storage device.
An embodiment of the apparatus for managing a network storage device is preferably embodied in computer readable program code stored on computer readable storage medium. Preferably, the storage medium is contained within the network storage device. A usage policy is also stored on the computer readable storage medium. The computer readable program code (e.g., a software agent) may comprise program code for prioritizing a transaction at the network storage device based on the usage policy. For example, incoming transactions may be ordered among other transactions in a queue for access to storage at the network storage device. Or for example, outgoing transactions may be assigned a priority for handling at the storage device and/or elsewhere on the network. Preferably, the usage policy includes a number of rules which define a number of priorities based on meta data associated with the transaction, wherein the program code assigns one of the priorities to the transaction when the transaction satisfies at least one of the rules. Also preferably, the transaction is a packetized signal including at least one data packet and at least one meta data packet, wherein the program code reads the at least one meta data packet and assigns a priority for ordering the transaction among other transactions based on the assigned priority. In addition, the usage policy preferably also includes a number of default rules.
Another embodiment of the apparatus for managing a network storage device is also preferably embodied in computer readable program code residing in computer readable storage medium. Preferably, the storage medium at which the program code resides is at a policy management server and program code is provided for distributing the usage policy to the network storage device. The computer readable program code may comprise program code for defining a usage policy for prioritizing a transaction at the network storage device. Preferably, a setup utility is also provided for installing the program code for defining a usage policy on a policy management server, and for installing the program code for prioritizing the transaction at the network storage device.
An embodiment of the method for managing access to a network storage device may comprise: receiving a transaction at the network storage device; and prioritizing the transaction at the network storage device based at least in part on a usage policy. For example, prioritizing the transaction may comprise ordering the transaction among other transactions in a queue for access to storage at the network storage device. Or for example, prioritizing the transaction may comprise assigning a priority to outgoing transactions for handling at the storage device and/or elsewhere on the network. In addition, the method may further comprise: reading meta data from the transaction; and comparing the meta data to a number of rules defined in the usage policy, wherein prioritizing the transaction is based on the meta data satisfying at least one of the number of rules.
Another embodiment of the method for managing access to a network storage device may comprise: generating a usage policy for the network storage device; and distributing the usage policy to the network storage device for prioritizing transactions at the network storage device.
As such, the apparatus and methods of the invention prioritize transactions at the device level. Prioritizing transactions as such increases the efficiency of the storage device by processing higher priority transactions before lower priority transactions are processed (e.g., based on a queue managed at the storage device according to the usage policy; when routed elsewhere on the network; etc.). In addition, the apparatus and method of the invention centralize management of multiple storage devices on the network by generating the usage policies for each storage device at the policy management server and distributing them to the individual storage devices.
These and other important advantages of the present invention will be further explained in, or will become apparent from, the accompanying description, drawings and claims.
Illustrative and presently preferred embodiments of the invention are illustrated in the drawings in which:
An apparatus for managing a number of storage devices (e.g., NAS devices 20-24) is shown in
The NAS device 20 may be connected over a network such as the Internet, an Intranet, etc. (e.g., wide area network (WAN) 60, LAN 40, 41, etc.) to another network and/or to a client terminal 70. In addition, a policy management server 80 for generating a usage policy 250 (
The policy management server 80 and the terminal 70 can be any suitable computer (e.g., having an INTEL PENTIUM® processor) such as a desktop personal computer, a laptop, a handheld computer (e.g., a PALM PILOT®), a wireless device, etc. However, the policy management server 80 need not be exclusively designated for generating usage policies 250 and can in some embodiments be used as a terminal 70, and vice versa. Likewise, the storage device is preferably a packet-based NAS device 20, however, it can be any suitable network storage device now known (e.g., a DAS with associated server-based agent, Fibre Channel Storage Area Network (SAN), etc.), or a device later developed.
It is understood that the apparatus shown in
It is further understood that the NAS device 20 can be partitioned in any suitable manner. For example, the NAS device 20 may include directories and/or subdirectories created thereon. Or for example, the NAS device 20 may even be partitioned (e.g., similar to hard disk drive partitions on a personal computer (PC)). Indeed, access to particular partitions of the NAS device 20 may be restricted (e.g., requiring a passcode for access thereto). In addition, multiple associated NAS devices (e.g., 22-24 in
Preferably, the usage policy 250 for each NAS device 20 on the network (e.g., WAN 60 and/or LAN 40) is generated at a single policy management server 80 and transmitted to the individual NAS devices 20-24, as discussed above with respect to
An exemplary usage policy 250 is shown in
The transactions 200-202, 205 preferably include a data field 210-212, 215 and a meta data field 220-222, 225, such as a user ID, group ID, originating application, port, a target ID, etc., or a combination thereof. The transaction 200-202, 205 may comprise, for example, single-bit or multi-bit packets or fields, and may include any suitable meta data. Indeed, the transactions 200-202, 205 may even include a requested priority. In such an embodiment where the transactions 200-202, 205 includes a requested priority, the transactions 200-202, 205 can be routed based strictly on the requested priority, thus overriding the rules 300, based on a combination of factors (e.g., only where the user ID is “administrator”, the rules 300 are overridden in favor of the requested priority), based on the priority of pending transactions 200-202, 205 (e.g., transactions already in the queue 275), etc.
It is understood that the meta data 220-222, 225 can be assigned to the transactions 200-202, 205 using suitable program code at the NAS device 20, the terminal 70 or elsewhere on the network (e.g., WAN 60, LAN 40), such as on a server (e.g., 50). For example, the program code may mark the transactions 200-202, 205 with a user ID, a project ID, a combination thereof, etc. As such, the agent 30 assigns a priority to the transaction 200-202, 205 when the meta data and/or the requested priority satisfies at least one of the conditions 310 defined in the usage policy 250 (e.g., based on an identified target). In any event, the agent 30 reads the meta data 220-222, 225 and determines whether any of the conditions 310 are satisfied. The agent 30 then assigns a corresponding priority 320 to the transactions 200-202, 205. The agent 30 may place the transactions 200-202, 205 into the queue 275 based on the assigned priority and relative to any other transactions 200-202, 205 pending in queue 275. Alternately, for outgoing transactions 205, the agent 30 may assign a corresponding priority 320 (e.g., in priority field 227) based on the rules 300-303 (e.g., based on the target) and place the outgoing transactions 205 onto the network 60 (i.e., for routing over the network 60 according to the assigned priority).
It is understood that the priority may be assigned to the transactions 200-202, 205 by the agent 30 in a designated priority field (e.g., field 227 on outgoing transaction 205), or otherwise (e.g., as part of the meta data). Alternately, for incoming transactions 200-202, the transaction itself need not be marked with a priority, and instead, the agent 30 may manage the priority of the transactions 200-202 using the queue 275.
It is also understood that the program code for marking the transactions 200-202, 205 may assign the meta data 220-222, 225 based on the user logon, the originating application, the time of day, a user-requested priority, the purpose for accessing the NAS device 20, etc. Likewise, the meta data may be assigned by an administrator, by a user, determined based on the originating application or originating terminal, a user ID, etc. In addition, the meta data may be any suitable indicator, such as a user ID, a directory, an application ID, a requested priority such as “urgent” or a scale value such as “seven” (e.g., on a scale of one to ten).
As an illustration of the invention, the incoming transactions 200-202 in
The agent 30 receives the transactions 200-202 and reads the respective meta data from the packets 220-222. Table 2 shows the satisfied conditions 310 that are defined in the usage policy 250 (
As such, the corresponding priorities 320 defined in the usage policy 250 are assigned to the respective transactions 200-202 and the transactions 200-202 are placed in the queue 275 in the order of priority and granted access to the NAS device 20 in the same order, as shown in
For example, the transaction 200 is given the highest priority, placed first in the queue 275, and granted access to the NAS device 20 first (e.g., to the storage component 299 thereof), followed by transaction 202, which is followed by transaction 201. In addition, transactions currently being executed may be allowed to finish, or may be held and reprioritized based on the newly received transactions.
In another illustration, the ranking or position in the queue 275 is determined based on the target of the transaction 200-202. In this embodiment, the target may not only specify a NAS device 20 (e.g., by IP address), but also specify a particular portion of or partition on the NAS device 20 (e.g., directories “/video” and “/backup”) or an associated storage device (e.g., 23 in
In yet another illustration, the ranking or position in the queue 275 is determined by more than one parameter included in the meta data 220-222 (e.g., a user ID and a target) (
It is understood that the examples given above are merely illustrative of the invention. For example, the priority “best available” can be defined to give priority to one transaction over another transaction having a “low” or “medium” priority, or even assign it the highest priority of any transaction in the queue 275. Similarly, the corresponding priority can be defined as “high”, “best available”, etc. (e.g., as shown in
It is also understood that the transactions need not arrive at the agent 30 simultaneously to be accorded the respective priority. For example, where the transaction 200 in the above examples arrives at the agent 30 after the transaction 202, the agent 30 may move the earlier queued transaction 202 so that the later arriving, but higher priority transaction 200 is moved ahead in the queue 275.
Furthermore, the agent 30 may assign a priority 227 to the outgoing transactions 205 similarly to that illustrated in the above examples, wherein the outgoing transactions 205 are handled on the network 60 according to the assigned priority 227. For example, the transactions 205 may be handled by one or more network components (e.g., a router, not shown) according at least in part to the assigned priority (e.g., using a queue at the network component). In addition, the outgoing transactions 205 may also be placed into an outgoing queue (not shown) at the NAS device 20 itself based on the assigned priority prior to being placed onto the network 60. The outgoing queue may be the same as that provided for incoming transactions 200-202, or an altogether separate queue specifically designated for outgoing transactions 205.
It is understood that the scope of the invention is contemplated to include: 1) assigning priority to only incoming transactions 200-202; 2) assigning priority to only outgoing transactions 205; and 3) assigning priority to both incoming transactions 200-202 and outgoing transactions 205.
One embodiment of a method for managing a NAS device 20 according to the invention is shown in
Another embodiment of a method for managing a NAS device 20 according to the invention is shown in
It is to be understood that the steps shown in
While illustrative and presently preferred embodiments of the invention have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.
Number | Name | Date | Kind |
---|---|---|---|
5592612 | Birk | Jan 1997 | A |
6157963 | Courtright et al. | Dec 2000 | A |
6249291 | Popp et al. | Jun 2001 | B1 |
6289383 | Rhine | Sep 2001 | B1 |
6330572 | Sitka | Dec 2001 | B1 |
6332140 | Rhine | Dec 2001 | B1 |
6449688 | Peters et al. | Sep 2002 | B1 |
6453356 | Sheard et al. | Sep 2002 | B1 |
6466980 | Lumelsky et al. | Oct 2002 | B1 |
6487594 | Bahlmann | Nov 2002 | B1 |
6571354 | Parks et al. | May 2003 | B1 |
6578076 | Putzolu | Jun 2003 | B1 |
6597956 | Aziz et al. | Jul 2003 | B1 |
6601101 | Lee et al. | Jul 2003 | B1 |
6633835 | Moran et al. | Oct 2003 | B1 |
6640278 | Nolan et al. | Oct 2003 | B1 |
6654814 | Britton et al. | Nov 2003 | B1 |
6654830 | Taylor et al. | Nov 2003 | B1 |
6697924 | Swank | Feb 2004 | B2 |
6779016 | Aziz et al. | Aug 2004 | B1 |
6802064 | Yao et al. | Oct 2004 | B1 |
6816903 | Rakoshitz et al. | Nov 2004 | B1 |
6839766 | Parnafes et al. | Jan 2005 | B1 |
6912627 | Matsunami et al. | Jun 2005 | B2 |
6941465 | Palekar et al. | Sep 2005 | B1 |
6948060 | Ramanathan | Sep 2005 | B1 |
6957433 | Umberger et al. | Oct 2005 | B2 |
6988133 | Zavalkovsky et al. | Jan 2006 | B1 |
7006512 | Yang et al. | Feb 2006 | B2 |
7023825 | Haumont et al. | Apr 2006 | B1 |
7039053 | Freed et al. | May 2006 | B1 |
7046261 | Popp et al. | May 2006 | B2 |
7050396 | Cohen et al. | May 2006 | B1 |
7185073 | Gai et al. | Feb 2007 | B1 |
7191190 | Debique et al. | Mar 2007 | B2 |
7346677 | Mohaban et al. | Mar 2008 | B1 |
7428583 | Lortz et al. | Sep 2008 | B1 |
20010023453 | Sundqvist | Sep 2001 | A1 |
20010039576 | Kanada | Nov 2001 | A1 |
20020004816 | Vange et al. | Jan 2002 | A1 |
20020007374 | Marks et al. | Jan 2002 | A1 |
20020007376 | Popp et al. | Jan 2002 | A1 |
20020010798 | Ben-Shaul et al. | Jan 2002 | A1 |
20020049778 | Bell et al. | Apr 2002 | A1 |
20020087694 | Daoud et al. | Jul 2002 | A1 |
20020089929 | Tallegas et al. | Jul 2002 | A1 |
20020099914 | Matsunami et al. | Jul 2002 | A1 |
20020107949 | Rawson, III | Aug 2002 | A1 |
20020107971 | Bailey et al. | Aug 2002 | A1 |
20020107989 | Johnson et al. | Aug 2002 | A1 |
20020133539 | Monday | Sep 2002 | A1 |
20020141427 | McAlpine | Oct 2002 | A1 |
20020143948 | Maher et al. | Oct 2002 | A1 |
20030097443 | Gillett et al. | May 2003 | A1 |
20030126265 | Aziz et al. | Jul 2003 | A1 |
20030154112 | Neiman et al. | Aug 2003 | A1 |
20030163609 | Abdo et al. | Aug 2003 | A1 |
20030236837 | Johnson et al. | Dec 2003 | A1 |
20030236861 | Johnson et al. | Dec 2003 | A1 |
20030236919 | Johnson et al. | Dec 2003 | A1 |
20040109410 | Chase et al. | Jun 2004 | A1 |
20040205206 | Naik et al. | Oct 2004 | A1 |
20060095686 | Miller et al. | May 2006 | A1 |
Entry |
---|
Mahon, et al., Requirements for a Policy Management System, draft-ietf-policy-req-01.txt (http://www.ietf.org/proceedings/99nov/I-D/draft-ietf-policy-req-01.txt), Internet Draft, IETF, 1999, p. 69. |
Gibson, Garth A. and Van Meter, Rodney. Network attached storage architecture Nov. 2000 Communications of the ACM, vol. 43 Issue 11, p. 42. |
Comer, Douglas E., Internetworking with TCP/IP, vol. 1: Principles, Protocols, and Architecture, 3rd Edition. 1995. Prentice-Hall, Inc., pp. 92-93. |
Purimetla, B., et al. Priority assignment in real-time active databases. Sep. 28-30, 1994. Proceedings of the Third International Conference on Parallel and Distributed Information Systems, 1994. pp. 176-184. |
Number | Date | Country | |
---|---|---|---|
20020188733 A1 | Dec 2002 | US |