This invention relates to a switch apparatus inserted logically between a client and file servers. More particularly, the invention relates to an apparatus, system, method and computer program ideal for use in a system that provides a file access service in the form of a single file system in which a plurality of file systems are virtualized as seen by the client.
By way of example, Network Attached Storage (NAS) is used as a network storage system that makes it possible to access file systems from a plurality of hosts using a standard protocol such as NFS (Network File System)/CIFS (Common Internet File System). A network storage system such as NAS provides a file access service that allows a remote client to write and read data to and from storage managed by the remote client per se.
Conventional network storage systems are not equipped with a standard arrangement (mechanism) that allows the system to behave as if it were a single apparatus in which there is cooperation between file servers and NAS devices. For this reason, services provided to a client are closed within an independent apparatus.
A file server comes equipped with a quota system that limits the amount of use (where an allocation of amount of use is referred to as a “quota”) of storage resources with which a device is furnished. The units of management generally are user, group and directory. If writing of data exceeds a preset limit amount on storage use, it is possible for an administrator to exercise control in such a manner that further writing of data cannot be performed. For example, when an allocation routine for allocating data blocks in an operating system receives a request for a new block, a quota check routine is called and the request is checked by the quota check routine. The latter surveys the quota that corresponds to the owner of the particular file. If the amount of use is below the quota, the request is allowed and the amount of allocation is added to the statistics on amount of use. If the amount of use by the file owner has reached the limit, the request is denied, failure is sent back just as if the file system were full and the allocation program does not allocate the requested block.
A user-managed quota is managed based upon a user identifier [the UID of a UNIX (registered trademark) system], and a quota is set on the number of files or blocks owned by the user. Further, a group-managed quota is managed based upon a group identifier [the GID of a UNIX (registered trademark) system], and a quota is set on the number of files or blocks possessed by the group. A directory-managed quota is set with respect to the number of files or blocks under a directory.
Quotas include a hard quota (a hard limit, in which an error is the result when data is written in excess of the quota), and a soft quota (a soft limit, in which if the upper limit of the quota is being approached, the user is so notified).
The user-managed quota structure (record) is provided in correspondence with, e.g., the user identifier and includes information such as the hard and soft limits of blocks, the numbers of blocks and files presently allocated to the user, and number of warnings remaining to be issued to the user until a soft limit is enforced as a hard limit.
Examples of quota management functions are a function that sets the object to be limited in terms of amount of storage used as well as the limit amount, and a function for acquiring information relating to the amount of storage used (rate of use in which the set limit amount serves as the upper limit) by the object set.
Management for setting a quota can employ a management interface with which an already existing NAS device or file server is equipped. By using a management interface, the system administrator may carry out remote log in via a network or local log in. Interfaces include a CLI (Command Line Interface), a GUI (Graphical User Interface), an API (Application Program Interface) loaded in an apparatus individually, and an API loaded as an industrial standard.
Arrangements that integrate NAS devices and file servers and provide a file service of a Single System Image (SSI) in virtual terms are known as file-service virtualization techniques (for example, see the specifications of Japanese Patent Kokai Publications Nos. JP-P2003-203029A and JP-P2004-54607A, referred to as Patent Documents 1 and 2, respectively, below). As shown in
A virtual file system, however, is not equipped with a quota control function for limiting amounts of use of storage resources of a plurality of file servers with respect to a client in integrated fashion, and a quota control function that can be used by individual file servers or NAS devices-cannot be utilized effectively.
Further, in a system equipped with a plurality of file servers and NAS devices that do not possess mutually linked functions, it is desirable to implement a function that cooperates quota control of respective file servers and NAS devices and performs resource management virtually as a single quota.
Accordingly, it is an object of the present invention to provide an apparatus, system and method that make it possible to limit use of storage resources of a plurality of file systems in integrated fashion in a network storage system equipped with a plurality of file systems.
Another object of the present invention is to provide an apparatus, system, method and computer program that make it possible to limit use of storage resources of a plurality of file systems in integrated fashion in a network storage system in which a plurality of file systems have been virtualized with respect to a terminal and file access has been made possible in the form of a single file system.
The above and other objects are attained in accordance with a first aspect of the present invention by providing a file access service system comprising: at least one terminal; a plurality of file service providing units each having a function for limiting amount of use of a respective storage resource; and an intermediate unit inserted between the terminal and the plurality of file service providing units; wherein the intermediate unit has means which, on the basis of a set value of amount of use of a storage resource that has been set in the intermediate unit, is for setting a set value that limits amount of use of each storage resource in a respective one of the plurality of file service providing units. In the present invention, the intermediate unit finds amount of use of each storage resource periodically in each of the plurality of file service providing units and, based upon the findings, controls the set value of the amount of use of the storage resource in at least one of the plurality of file service providing units.
Preferably, in the system according to the present invention, the set value of the amount of use of storage resources in each of the plurality of file service providing units is made fixed and, if the overall amount of use of storage resources exceeds the set value that has been set in the intermediate unit, then the set value of amount of use of at least one storage resource of the plurality of file service providing units is changed.
Preferably, in the system according to the present invention, the set value of amount of use of storage resources in each of the plurality of file service providing units is made variable and the set value of amount of use of at least one storage resource of the plurality of file service providing units is changed in accordance with amount of data used.
Preferably, the system further comprises means for exercising control to fix a set value of amount of use of a storage resource of each of the plurality of file service providing units and, in accordance with the amount of use of the storage resource of one file service providing unit, cause data to migrate from this file service providing unit to another file service providing unit.
According to another aspect of the present invention, the above and other objects are attained by providing a file access service system comprising: at least one terminal; a plurality of file systems; and an intermediate unit, which is inserted logically between the terminal and the plurality of file systems, for providing a file access service in which the plurality of file systems are accessed freely as a single file system (referred to as a “virtual file system”) as seen by the terminal; wherein the intermediate unit has control means for managing amount of use of storage resources of the virtual file system.
Preferably, in the system according to the present invention, the control means has means for setting a set value with respect to respective each of the plurality of file systems that construct the virtual file system, wherein the set value limits amount of use of each storage resource of each of the plurality of file systems.
In the system according to the present invention, the storage resources preferably include files and blocks that constitute a file-system resource; and
In the system according to the present invention, said control means preferably controls to vary at least one set value that limits amount of use of each storage resource of each of said file systems in accordance with amount of use of the storage resource in each of said file systems and the set value that limits amount of use of storage resources of said virtual file system.
In the system according to the present invention, the control means preferably manages a set value that limits amount of use of storage resources of the aggregate of the plurality of file systems that construct the virtual file system, wherein if a total value of amounts of use of storage resources of respective ones of the plurality of file systems that construct the virtual file system exceeds the set value that limits amount of use of storage resources of the virtual file system, then the control means changes at least one of the set values that limit amounts of use of storage resources that have been set in respective ones of the plurality of file systems.
Preferably, in the present invention, the set value that limits amount of use of each storage resource of each of the plurality of file systems that construct the virtual file system is set to a value that satisfies a condition that a total value obtained by adding up each of the set values is equal to a set value that limits amount of use of the storage resources of the virtual file system, or to a set value obtained by adding a prescribed amount of slack to the value that satisfies the above-mentioned condition.
Preferably, in the system according to the present invention, if the amount of use of a storage resource exceeds a prescribed percentage of the set value in at least one file system among the plurality of file systems that construct the virtual file system, control is exercised to cause the data of this one file system to migrate to another file system.
Preferably, in the system according to the present invention, said control means:
Preferably, in the system according to the present invention, said control means periodically transmits a query request concerning amount of use of storage resources in any unit of management from among user, group and directory units of management to said file systems that construct said virtual file system;
Preferably, in the system according to the present invention, if said control means receives notification that amount of use of a storage resource from at least of said file systems has exceeded the set value, then said control means responds to this notification by re-setting the set value relating to amount of use of the storage resource of the at least one file system of said file systems.
Preferably, in the system according to the present invention, if amount of use of a storage resource in each of said file systems has exceeded the set value that has been set in said file system, then said file system exercises control to deny a request to access said file system from said terminal.
Preferably, in the system according to the present invention, the control means performs a periodic survey for acquiring amount of use of each storage resource in each of the plurality of file systems and, if a total value of amounts of use of storage resources in the plurality of file systems acquired by the survey exceeds a set value relating to amount of use of storage resources of the virtual file system, exercises control in such a manner that at least one of the plurality of file systems is caused to shift to a grace period of a predetermined length.
Preferably, in the system according to the present invention, the set value that limits amount of use of each storage resource of each of said file systems that construct said virtual file system is determined based upon a set value that limits amount of use of the storage resources of said virtual file system.
Preferably, in the system according to the present invention, a common set value is set for each of said file systems that construct said virtual file system.
Preferably, in the system according to the present invention, at least one of said file systems prohibits writing of data from said file system to said terminal after the grace period expires.
Preferably, in the system according to the present invention, if amount of use of storage resources of said virtual file system has reached a predetermined prescribed upper-limit value during the grace period, control is exercised so as to terminate the grace period and prohibit writing of data to said file systems that construct said virtual file system.
Preferably, in the system according to the present invention, the set value comprises:
Preferably, in the system according to the present invention, a set value of amount of use of a storage resource that has been set in said intermediate unit is adopted as the soft limit, and the hard limit is set to a value obtained by multiplying the soft limit by number of file systems virtualized.
Preferably, in the system according to the present invention, a set value of amount of use of a storage resource that has been set in said intermediate unit is adopted as the soft limit, and the hard limit is set to a value that is the result of subtracting a prescribed value from a value obtained by multiplying the soft limit by number of file systems virtualized.
Preferably, in the system according to the present invention, a set value of amount of use of a storage resource that has been set in said intermediate unit is adopted as the soft limit, and the hard limit is set to a value that is equal to the soft limit.
Preferably, in the system according to the present invention, the control means resets the set value that limits amount of use of at least one storage resource of the plurality of file systems after the grace period.
Preferably, in the system according to the present invention, if amount of use of a storage resource of said file system has reached a predetermined upper-limit value during the grace period, said file system terminates the grace period and notifies said terminal of a quota error of said file system via said intermediate unit.
Preferably, in the system according to the present invention, if amount of use of a storage resource of said file system has reached a predetermined upper-limit value during the grace period, said control means exercises control for prohibiting writing of data to said file system for a prescribed period of time from expiration of the grace period to execution of the next survey of amount of use of storage resources.
Preferably, in the system according to the present invention, if amount of use of a storage resource in at least one file system among said file systems that construct said virtual file system has exceeded a prescribed percentage of the set value, said control means exercises control for causing an object of a prescribed storage capacity of said one file system to migrate to another file system.
Preferably, in the system according to the present invention, said intermediate unit comprises a switch apparatus inserted logically between said terminal, which constitutes a client, and servers constructing respective ones of said file systems; and
Preferably, in the system according to the present invention, said switch apparatus has means for transferring an object-related request, which has been transmitted from the client, to the server that manages the object;
Preferably, in the system according to the present invention, said switch apparatus has a pseudo file system for managing directory trees of said file systems as a single consolidated directory tree obtained by combining the directory trees, and stores and manages information concerning a first junction of directory trees in the consolidated directory tree.
Preferably, in the system according to the present invention, said servers are NAS (Network Attached Storage) devices, and said switch apparatus performs allocation of said servers utilizing prescribed layer information.
Preferably, in the system according to the present invention, a command for checking a quota in each of said NAS devices is transmitted from said switch apparatus to said NAS devices; and
According to another aspect of the present invention, the foregoing objects are attained by providing a quota management method in a network file system having at least one terminal, a plurality of file service providing units each having a function for limiting amount of use of a respective storage resource, and an intermediate unit inserted between the terminal and the plurality of file service providing units, the method comprising a step of the causing the intermediate unit to set a set value that limits amount of use of each storage resource in a respective one of the file service providing units based upon a set value of amount of use of a storage resource that has been set in the intermediate unit. In the present invention, the intermediate unit surveys amount of use of each storage resource periodically in each of the plurality of file service providing units and, based upon the result of survey, controls the set values of amounts of use of respective ones of the storage resources in the plurality of file service providing units.
Preferably, in the method of present invention, the set value of the amount of use of a storage resource of the plurality of file service providing units is fixed and, if the overall amount of use of storage resources exceeds the set value that has been set in the intermediate unit, the set value of amount of use of at least one storage resource of the plurality of file service providing units is changed.
Preferably, in the method of present invention, the set value of amount of use of a storage resource of each of the plurality of file service providing units is made variable and the set value of amount of use of at least one storage resource of the plurality of file service providing units is changed in accordance with amount of data used.
Preferably, the method further comprises steps of exercising control to fix a set value of amount of use of a storage resource of each of the plurality of file service providing units and causing data to migrate from one file service providing unit to another file service providing unit in accordance with the amount of use of the storage resource of the file service providing unit.
Preferably, in the method according to the present invention, said intermediate unit provides a file access service in which said file systems are accessed freely as a virtual file system constituting a single file system as seen by said terminal.
Preferably, the method according to the present invention, further comprises the steps of:
According to another aspect of the present invention, the above and other objects are attained by providing a switch apparatus connected for communication to at least one client and to a plurality of servers each having means for limiting amount of use of a storage resource of a respective file system, the switch apparatus receiving a file-access request from the client, assigning and transferring the file-access request to a suitable server utilizing prescribed layer information, receiving a response to the file-access request transmitted from the server, and transferring the response to the client that was the source of the file-access request, wherein the switch apparatus includes a pseudo file system for managing directory trees of the plurality of file systems as a single consolidated directory tree obtained by combining the directory trees, and provides a file access service in which the file systems of the plurality of servers are accessed freely as a single file system (referred to as a “virtual file system”) as seen by the client; the switch apparatus having control means for managing amount of use of storage resources of the virtual file system.
Preferably, in the switch apparatus according to the present invention, said control means includes means for setting a set value with respect to each of said file systems that construct said virtual file system, wherein the set value limits amount of use of each storage resource of each of said file systems.
Preferably, in the switch apparatus according to the present invention, the storage resources include files and blocks that constitute a file-system resource; and
Preferably, in the switch apparatus according to the present invention, said control means varies and controls at least one set value that limits amount of use of each storage resource of each of said file systems in accordance with amount of use of the storage resource in each of said file systems and the set value that limits amount of use of storage resources of said virtual file system.
Preferably, in the switch apparatus according to the present invention, said control means:
Preferably, in the switch apparatus according to the present invention, said control means:
Preferably, in the switch apparatus according to the present invention, if said control means receives notification that amount of use of a storage resource from at least of said file systems has exceeded the set value, then said control means responds to this notification by re-setting the set value that limits amount of use of the storage resources of each of said file systems.
Preferably, in the switch apparatus according to the present invention, said control means has means for acquiring amount of use of the plurality of storage resources by performing a periodic survey of amount of use of storage resources in each of said file systems, and exercising control in such a manner that at least one of said file systems is caused to shift to a grace period of a predetermined length if a total value of amounts of use of storage resources of said file systems exceeds a set value that limits amount of use of storage resources of said virtual file system.
Preferably, in the switch apparatus according to the present invention, the set value that limits amount of use of each storage resource of each of said file systems that construct said virtual file system is set based upon a set value that limits amount of use of the storage resources of said virtual file system.
Preferably, in the switch apparatus according to the present invention, a common set value is set for each of said file systems that construct said virtual file system.
Preferably, in the switch apparatus according to the present invention, the set value that limits amount of use of storage resource of each of said file systems that construct said virtual file system is set to a value such that the sum total of the set values will become the set value of said virtual file system or to a value obtained by adding a prescribed amount of slack to said value.
Preferably, in the switch apparatus according to the present invention, said server exercises control for prohibiting writing of data from the client to said file systems after the grace period expires.
Preferably, in the switch apparatus according to the present invention, if amount of use of a storage resource of each of said file systems has reached a predetermined prescribed upper-limit value during the grace period, said server terminates the grace period and prohibits writing of data from the client.
Preferably, in the switch apparatus according to the present invention, the set value comprises:
Preferably, in the switch apparatus according to the present invention, a set value of amount of use of a storage resource that has been set in said switch apparatus is adopted as the soft limit, and the hard limit is set to a value obtained by multiplying the soft limit by number of file systems virtualized.
Preferably, in the switch apparatus according to the present invention, a set value of amount of use of a storage resource that has been set in said switch apparatus is adopted as the soft limit, and the hard limit is set to a value that is the result of subtracting a prescribed amount from a value obtained by multiplying the soft limit by number of file systems virtualized.
Preferably, in the switch apparatus according to the present invention, a set value of amount of use of a storage resource that has been set in said switch apparatus is adopted as the soft limit, and the hard limit is set to a value that is equal to the soft limit.
Preferably, in the switch apparatus according to the present invention, after the grace period expires, said control means re-sets the set value that limits amount of use of at least one storage resource of said file systems.
Preferably, in the switch apparatus according to the present invention, if amount of use of a storage resource has reached a predetermined upper-limit value during the grace period of said file system, said file system terminates the grace period and notifies the client of a quota error.
Preferably, in the switch apparatus according to the present invention, if amount of use of a storage resource has reached a predetermined upper-limit value during the grace period of the file system, said control means exercises control for prohibiting writing of data to said file system until the next survey of amount of use of storage resources at most even if amount of use of the storage resource has diminished after expiration of the grace period.
Preferably, in the switch apparatus according to the present invention, if amount of use of a storage resource of at least one file system among said file systems that construct said virtual file system has exceeded a prescribed percentage of the set value, said control means causes an object of a prescribed storage capacity of said one file system to migrate to another file system.
Preferably, in the switch apparatus according to the present invention, said switch apparatus stores and manages information concerning a junction of directory trees in the consolidated directory tree.
According to another aspect of the present invention, the above and other objects are attained by providing a computer program run by a computer constituting a switch apparatus connected for communication to at least one client and to a plurality of servers each having means for limiting amount of use of a storage resource of a respective file system, the switch apparatus receiving a file-access request from the client, assigning and transferring the file-access request to a suitable server utilizing prescribed layer information, receiving a response to the file-access request transmitted from the server, and transferring the response to the client that was the source of the file-access request, wherein the switch apparatus includes a pseudo file system for managing directory trees of the plurality of file systems as a single consolidated directory tree obtained by combining the directory trees, and provides a file access service in which the file systems of the plurality of servers are accessed freely as a single file system (referred to as a “virtual file system”) as seen by the client; wherein the program causes the computer to execute processing for managing amount of use of storage resources of the virtual file system.
Preferably, in the program according to the present invention, the computer is caused to execute processing for setting a set value with respect to each of said file systems that construct said virtual file system, wherein the set value limits amount of use of each storage resource of each of said file systems.
Preferably, in the program according to the present invention, the computer is caused to execute processing for varying and controlling at least one set value that limits amount of use of each storage resource of each of said file systems in accordance with amount of use of the storage resource in each of said file systems and the set value that limits amount of use of storage resources of said virtual file system.
Preferably, in the program according to the present invention, the computer is caused to execute processing for periodically transmitting a query request concerning amount of use of storage resources to said file systems, acquiring amount of use of storage resources sent back as a response to the query request from respective one of said file systems; and totaling amounts of use of storage resources of respective one of said file systems, thereby acquiring information relating to amount of use of storage resources of said virtual file system.
Preferably, in the program according to the present invention, the computer is caused to execute processing for exercising control in such a manner that said file systems are caused to shift to a grace period of a predetermined length if a total value of amounts of use of storage resources of said file systems exceeds a set value that limits amount of use of storage resources of said virtual file system.
Preferably, in the program according to the present invention, the computer is caused to execute processing for re-setting the set value that limits amount of use of at least one storage resource of said file systems after the grace period expires.
The meritorious effects of the present invention are summarized as follows.
In accordance with the present invention, quota control among a plurality of file service providing units is made possible and storage management is facilitated and made more efficient.
Further, the burden of storage management and the labor involved in management can be reduced in a system that provides a virtual file system.
Still other objects and advantages of the present invention will become readily apparent to those skilled in this art from the following detailed description in conjunction with the accompanying drawings wherein only the preferred embodiments of the invention are shown and described, simply by way of illustration of the best mode contemplated of carrying out this invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawing and description are to be regarded as illustrative in nature, and not as restrictive.
A preferred mode of practicing the present invention will now be described with reference to the drawings.
In the present invention, an administrator sets a quota in an intermediate unit that virtually consolidates a plurality of file servers or NAS (Network Attached Storage) devices. In accordance with the quota set by the administrator, the intermediate unit sets quotas with respect to the file servers that construct a virtual file system. NAS will be described as an example below, although this does not impose a particular limitation upon the present invention.
Preferably, the intermediate unit periodically carries out inquiry (survey) to the NAS devices with regard to amount of use of storage and performs quota control based upon the result of survey. Several methods are used in control, as set forth below.
(a) In a case where the value of a quota setting of a NAS device is fixed and the overall amount of data used exceeds the set value, the value of the NAS quota setting is changed.
(b) The value of a quota setting of a NAS device is made variable and the value of the NAS quota setting is changed is accordance with the amount of data used.
(c) The quota setting of a NAS device is fixed and data is caused to migrate to another NAS device by on-line migration in accordance with the amount of data used.
Quota control can take on various forms. In a case where the set value of the quota of a server (NAS device) 3 is fixed and the overall amount of data used has exceeded the set value, the set value of the quota of the server (NAS device) 3 is changed. In another example, the set value of the quota of a server (NAS device) 3 is made variable and the set value of the quota of the server (NAS device) 3 is changed in accordance with the amount of data used. In a further example, the set value of the quota of a server (NAS device) 3 is fixed and data is caused to migrate to another server (NAS device) by on-line migration in accordance with the amount of data used.
Thus, the present invention is such that in a virtual file system in which a plurality of file systems are virtualized by a switch and a client is provided with a file access service as a single file system, the switch surveys the amount of use of storage resources of the plurality of file systems that constitute the virtual file system, compares the result of the survey of amount of storage resource used with a predetermined control rule and changes, in variable fashion, a set value of a limit on the amount of storage resource used in each file system, thereby making it possible to limit the amount of storage resource used in each file system to a value close to a set value of amount of storage resource used in the virtual file system. The invention will now be described in line with an embodiment thereof.
In the embodiment set forth below, the present invention will be described in accordance with an example in which the invention is applied to a virtual file system in which a plurality of file systems are virtualized by a switch and a client is provided with a file access service as a single file system.
Management of correspondence between object IDs and servers in the switch 100 will be described as the basic technique employed by the switch 100 to conceal the existence of the plurality of servers 3 from the clients 1 (for the details, refer to Patent Document 1, etc., mentioned above). The switch 100 receives a file-access request from client 1 and assigns and transfers the file-access request to a suitable server 3. The switch 100 receives a response to the file-access requests transmitted from the server 3 and transfers the response to the client 1 that transmitted the file-access request. In the file-access request, the client 1 designates an object identifying ID (referred to as an “object ID”) of a directory or file that is to be accessed, and accesses the object managed by the server 3. The object ID is generated by the server 3, and the client 1 has a list of accessible objects. The client 1 transmits a request that designates the access path to the object from the list and initially acquires the object ID of the accessible object from the response data from server 3. Further, with regard to an object disposed hierarchically below an object for which the object ID has already been acquired by the client 1, the client 1 transmits the already acquired object ID and a request that designates the name of the object to undergo file access and acquires the object ID from the response to this request.
In the network file system according to the present embodiment, the existence of the server 3 is concealed from the client 1 by the switch 100. A file-access request from the client 1 is transmitted to the switch 100, and the switch 100 receives the file-access request from the client 1 and assigns and transfers (routes) the file-access request to the suitable server 3. The switch 100 receives the response to this file-access request transmitted from the server 3 and transfers (routes) the response to the client 1 that transmitted the file-access request. Since an object ID generated by a server 3 generally is composed of a data string that can be interpreted only by the server 3 that generated it, the switch 100 and client 1 cannot interpret this data. Further, as long as the client 1 receives a response from the server 3 and does not acquire the object ID contained in the response, the client 1 cannot manipulate the object that corresponds to this object ID.
Accordingly, in the present embodiment, the switch 100 inserts server identification information, which is for distinguishing the transmission-source server 3 from another server 3, in an object ID contained in response data transmitted from the transmission-source server 3, re-constructs a packet by the response containing the object ID in which the server identification information has been inserted and transfers the re-constructed packet to the client 1. The client 1 transmits the file-access request, which contains the object ID in which the server identification information has been inserted, to the switch 100. By referring to the server identification information that has been inserted into this object ID, the switch 100 is capable of specifying the destination server to which the file-access request is to be transferred. It should be noted that when the switch 100 transfers the file-access request to the server 3, it converts the object ID having the inserted server identification information to the original object ID generated by the server 3. By providing the switch 100 with this function, distributed processing by a plurality of servers in a network file system is made possible.
The packet processing unit 103 analyzes a packet received from the client 1 and server 3 via the network 2, outputs data contained in the packet to the file access management unit 102, packetizes the data that has been output from the file access management unit 102 and transmits the packet to the client 1 and server 3 via the network 2.
The file access management unit 102 receives and analyzes the data that has been output from the packet processing unit 103 and decides the routing destination of the packet received by the packet processing unit 103.
In accordance with the packet routing destination decided by the file access management unit 102, the object ID rewrite unit 101 rewrites the object ID contained in the above-mentioned data.
The pseudo file system 105 is a system for combining a plurality of directory trees constituted by respective file systems 4 of the plurality of servers 3 shown in
The file system supplementary processing unit 104 executes supplementary processing in a case where a file-access request from the client 1 necessitates file access across a plurality of transmission destinations such as the plurality of servers 3 or plurality of file systems 4.
Based upon the limit value of amount of use of storage resources that has been set in the switch 100, the quota management unit 106 carries out the setting of a set value (quota) for limiting amount of use of storage resources, with respect to the plurality of servers 3.
Further, the quota management unit 106 exercises control to acquire periodic amounts of use of storage resources from the plurality of servers 3, calculate a total value of the amounts of use of the storage resources of the file systems of the plurality of servers 3 and, based upon the result of calculation and the limit value of amount of use of storage resources of the virtual file system, change the set value that limits the amount of use of the storage resources of the servers 3.
Furthermore, the quota management unit 106 monitors quota error of the servers 3 (acquires quota error from the servers 3).
In the present embodiment, it may be so arranged that the processing and functions of the object ID rewrite unit 101, file access management unit 102, packet processing unit 103 and quota management unit 106 in the switch 100 of
In the present embodiment, quota management per se in each individual file system is performed by each server 3 (user/group, directory, etc.), and the quota management unit 106 of the switch 100 issues instructions, which are for controlling the quota of each file system, based upon the amount of use of storage resources of the virtual file system and the set value thereof.
In addition to a function for assigning file-access request packets and answer packets suitably to the clients 1 or servers 3, the switch 100 has a function for consolidating a plurality of directory trees, which have been formed in the file systems 4 of the plurality of servers 3, into a directory tree of the pseudo file system 105, whereby the arrangement behaves as if only the pseudo file system 105 of the switch 100 is being accessed without the clients 1 being aware of the existence of the individual file systems 4 in the plurality of servers 3.
The pseudo file system 105 freely combines the tree structures of the plurality of directory trees in the file systems 4 publicly disclosed by the servers 3 as being accessible via the network 2 and maps these to one directory tree.
In the switch 100, the pseudo file system 105 manages only the tree structure of the directory tree 200 of the pseudo file system. The data of the object, attribute information and tree structures other than of the junctions in the file systems 4 are all managed on the side of the servers 3. The switch 100 executes processing for deciding the names only of the tree portions that connect the plurality of file systems 4 and leaves processing regarding the other tree portions (portions other than the junctions) to the servers 3.
In the present embodiment, a limit value on the amount of use of storage resources of the file system in management units of at least any of user, group and director units is set in the switch 100 in relation to the virtual file system (pseudo file system) obtained by consolidating the file systems of the plurality of servers 3.
Command/management information 1066 in a storage unit 1060 includes a quota setting command, a command for collecting amount of use and polling time information of a periodic survey.
A quota management table 1067 of the virtual file system has a quota management table relating to a system obtained by virtualizing a plurality of file systems into a single system. For example, as shown in
A control rule 1065 stores a rule as to what method should be used to perform quota management of each file system. For example, the control rule 1065 contains information to perform quota management by any of the following, which have been described above: (a) fixing the value of a quota setting, (b) varying the value of a quota setting and (c) fixing the value of a quota setting and causing data to migrate.
A command setting (transfer) unit 1062 controls transfer of:
A controlling unit 1061 has a timer (not shown) and exercises control to transmit the amount-of-use inquiry command to the servers 3 periodically through the command setting (transfer) unit 1062.
An amount-of-use acquisition/calculation unit 1063 acquires information on amount of use transmitted from the server 3 as a response to the amount-of-use inquiry command, totals the acquired amount of use for the plurality of file systems that construct the virtual file system, compares the total with a set value in the quota management table 1067 of the virtual file system and updates the present amount of use in the quota management table 1067 by the total value. It should be noted that the servers 3 constructing the virtual system are managed using a server management table (not shown) in the file access management unit 102 (
If the total value of present amount of use exceeds the value of the quota setting of the virtual file system, the controlling unit 1061 re-sets the quota with respect to the servers 3 in accordance with the control rule 1065.
A quota error monitoring unit 1064 monitors quota errors from the servers 3. When a quota error is acquired from a server 3, the quota error monitoring unit 1064 performs the necessary control, such as notifying the client 1 and setting a command sent to the server 3, via the controlling unit 1061.
It is assumed that the plurality of servers 3 and switch 100 constructing the network file system of the present embodiment share user information and group information logged in to the servers 3. With regard to the servers 3, the switch 100 has a list of user identification information for file access by an NFS protocol, and has a quota record corresponding to the user identification information, which has the structure shown in
In each server 3, the setting of quotas is performed in each of user, group and directory units locally on a per-server basis.
On the other hand, in a case where a quota is set from the switch 100 to a server 3, log-in to the server 3 is performed remotely and the quota setting is made using the command of the server 3 to which log-in has been performed. In a case where functions and commands differ for the plurality of servers 3, commands for acquiring amount of use, setting quotas and changing quotas are stored beforehand as the command/management information 1066 in the storage unit 1060 of the switch 100 in correspondence with the identification information of each server 3 for every server that constructs the virtual file server. In a case where the plurality of servers 3 have the same functions, file system layers and operating systems, the commands for acquiring amount of use, setting quotas and changing quotas are made to correspond to one type of server.
Information on the duration of the survey of amount of storage used performed periodically by the switch 100 with regard to the servers 3 is set in the command/management information 1066 and is set as time-out information in a timer (not shown) of the controlling unit 1061. The controlling unit 1061 exercises control to transmit the amount-of-use inquiry command to each server 3 when a time-out occurs.
Depending upon the file server, a specific API is provided and not just setting/information acquisition means by remote log-in. Commands are transferred directly from the remote location to perform the setting of quotas. The command setting (transfer) unit 1062 of the switch transfers commands that comply with the APIs.
In the Linux environment, for example, the amount-of-use inquiry is such that list information is acquired by the following two commands:
Further, the following is set as a quota setting:
File servers having the Linux operating system also have a soft limit (=value of the quota setting; a threshold value that assures writing of the minimum amount and issues an alarm if the setting is exceeded), a hard limit (greater than the soft limit; a threshold value at which writing can no longer be performed), and a grace period (time from attainment of the soft limit to time at which writing becomes impossible). The setting of these parameters is carried out. It should be noted that quotas of different management units, such as user and group units, are not consolidated and managed.
In the present embodiment, settings in the servers by the administrator are as follows in relation to quotas:
The information set in the switch 100 is as follows:
As for the setting of each server, it may be so arranged that a grace period is not provided at the server 3. Instead, the setting may be such that after the hard limit is reached at the server, writing in excess of this quantity is prohibited and a quota error is sent back immediately.
In the virtual file system environment in which the switch 100 of the present embodiment is used, the soft limit of the server 3 is adopted as an upper-limit value that the switch 100 sets with respect to the server 3, and the hard limit of the server 3 is adopted as an upper-limit value which is the soft limit +α (where α represents slack).
In the present embodiment, the grace period of the server 3 is made a period of time that is longer than the duration of the survey of amount of use of storage resources set in the switch 100.
In the present embodiment, it may be so arranged that the status of the amount of use of the storage resources of server 3 acquired periodically by the switch 100 is displayed and output in the form of a list at the client 1 or at an administrator terminal connected locally to the switch 100.
In the example shown in
The soft limit of the virtual file system is 100 GB, and the hard limit is (soft limit)×(number of virtual file systems)=100 GB×2=200 GB.
As shown in
As shown in
As shown in
It should be noted that the control illustrated in
value of quota setting of each file system=(value of quota setting: soft limit)−(total value of amounts of use of storage of other file systems constituting the virtual file system)+α
If the quota upper-limit value of each file system is reached in the grace period, the termination of the grace-period state is set using a quota-error response as a key.
In the example shown in
On the other hand, the hard limit is made variable and the following is assumed to hold:
(soft limit)<(hard limit)<(soft limit)×(number of virtual file systems)
In this example, the hard limit is greater than 100 GB and less than 100 GB×2=200 GB.
As shown in
As shown in
If the total value of amount of use of storage resources of file systems A and B has reached the quota setting (exclusive of the slack) after the second survey, a transition is made to the grace-period state, as shown in
As shown in
An access-lock period will be described next. In a case where amount of use of storage resources has fallen below the value of the quota setting following the end of the grace period, there is a period of time that passes until the next survey of amount of use of storage resources is performed. This period of time is referred to as an “access-lock period”. After the value of the quota setting of each file system becomes identical with the amount of use of storage resources in each file system following expiration of the grace period in the access-lock period, writing cannot necessarily be performed even if the amount of use of storage resource is made less than the value of the quota setting by deleting a file. After the amount of use of storage resource becomes an amount less than the value of the quota setting, writing cannot necessarily be carried out until the next survey of amount of use of storage resources ends. The access-lock period is longer than zero and is shorter than the interval of the inquiry of amount of use of storage resources.
With the control shown in
y=FS×Quota
With the control shown in
y=FS×Quota−(FS−1)×X
In other words, the hard limit (y) is varied in dependence upon the amount of storage used.
Another embodiment of the present invention will now be described. This embodiment is such that on-line migration is made in cooperation in with quota management the switch. According to the present embodiment, the value set in the NAS switch is adopted as the soft limit of the virtual file system, and the hard limit is fixed at the soft limit.
If a value that is a prescribed percentage (70 to 90%) or greater of the quota setting value of each file system is attained, on-line migration is executed so as to render the amount constant. The amount that undergoes on-line migration is decided in such a manner that the amount of storage used in the file system that is the source of the migration will become the amount of storage used in the file system that is the destination of the migration. Although on-line migration is performed frequently, the hard limit can be maintained at the soft limit (the value of the quota setting). In the present embodiment, the unit of quota management is assumed to be solely the directory. The object to undergo migration is determining autonomously. Directories shifted at the time of on-line migration undergo the shift in order starting from the directory of the lowermost layer. Alternatively, the shift is performed in an order that is outside a specific area. In another option, directory candidates shifted may be decided by an algorithm such as LRU (Least Recently Used).
In the present embodiment, migration is not performed if the amount of storage resources used has exceeded the quota setting value (exclusive of slack) of each file system or has exceeded the setting value by more than the amount of the slack.
Based upon the amount of storage used in each server 3 and the value of the quota setting, the data migration processor 107 causes the migration of data among the plurality of servers 3 without changing the directory structure of the consolidated directory tree in the pseudo file system 105.
While maintaining the tree structure of the consolidated directory tree that has been constructed in the pseudo file system 105, the switch 100 causes data to migrate upon copying the tree structure, the basis of which is the laid open directory of each server 3 constituting the consolidated directory tree, to another server A, after which the switch 100 changes the mapping of the tree structure to thereby conceal the migration of the data from the client 1 and diminish capacity inadequacy in the storage unit 5 of the servers 5 while holding the structure of the consolidated directory tree unchanged (for the details, see Patent Document 1).
By way of example, in the pseudo file system 105 illustrated in
As shown in
As a result of the second survey of amount of storage resources used, the amounts of storage used in file systems A and B are 40 GB and 20 GB, respectively, as shown in
After on-line migration is executed, the amounts of storage used in file systems A and B become 30 GB and 30 GB, respectively, as illustrated in
After on-line migration is executed, a second survey is conducted. If, after the second survey, the amount of storage used has attained the value of the quota setting, then the slack α is eliminated and the amounts of storage become 50 GB and 50 GB, as illustrated in
As many apparently widely different embodiments of the present invention can be made without departing from the spirit and scope thereof, it is to be understood that the invention is not limited to the specific embodiments thereof except as defined in the appended claims.
It should be noted that other objects, features and aspects of the present invention will become apparent in the entire disclosure and that modifications may be done without departing the gist and scope of the present invention as disclosed herein and claimed as appended herewith.
Also it should be noted that any combination of the disclosed and/or claimed elements, matters and/or items may fall under the modifications aforementioned.
Number | Date | Country | Kind |
---|---|---|---|
2004-278001 | Sep 2004 | JP | national |