Abstract:
A NAS load balancing system for distributing NAS loads of a NAS unit including a plurality of nodes and accessed via a network by multiple NAS clients is disclosed. In the NAS load balancing system, the NAS unit has multiple virtual IP addresses.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     The present application is a U.S. continuation application filed under 35 U.S.C. 111(a) claiming benefit under 35 U.S.C. 120 and 365(c) of a PCT International Application No. PCT/JP2002/012787, filed on Dec. 5, 2002, the entire contents of which are hereby incorporated by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to NAS (network attached storage) load (work load) balancing systems, and more particularly to a technique for constructing a NAS system capable of sharing loads between composing nodes and thereby improving operability and performance by automatically routing a request issued from a NAS client to an appropriate node, considering the file access locality of the NAS client, in a NAS unit composed of multiple nodes such as computers and designed so that the same file can be accessed from any node. 
     2. Description of the Related Art 
       FIG. 1  is a schematic diagram illustrating a conventional NAS system in which a conventional NAS unit  1000  and a NAS client group are connected via a network  110  such as an IP network. Referring to  FIG. 1 , the NAS system includes the NAS unit  1000 , the network  110 , and computers  111 ,  112 , and  113  forming the NAS client group. 
     The NAS unit  1000  includes a storage unit  104 , multiple nodes  1010 ,  1020 , and  1030 , and a dispatcher unit  105 . The dispatcher unit  105  is known as a method of distributing loads among the nodes  1010 ,  1020 , and  1030 . 
     According to this method, one logical IP address (LIP 1 ) is defined for the NAS unit  1000 , and each of the computers (NAS clients)  111 ,  112 , and  113  issues a file operation request to this logical IP address. As described above, the dedicated computer called “dispatcher unit  105 ,” which is a special apparatus managing IP address conversion, is provided in the NAS unit  1000 . The dispatcher unit  105  converts the logical IP address, which is the destination of the request issued by the NAS client  111 ,  112 , or  113 , into a unique physical IP address (MAC 1 , MAC 2 , or MAC 3 ) determined node by node in the NAS unit  1000 . As a result, the dispatcher unit  105  routes the request to the destination node. 
     This conventional method can provide access that can make the internal node configuration of the NAS unit  1000  transparent to the NAS clients  111  through  113 , but increases the cost of the NAS unit  1000 . Further, there is a disadvantage in performance in that overhead accompanying IP address conversion affects the throughput of the NAS unit  1000 . For instance, there is a problem in that if the requests from the NAS clients  111  through  113  reach the NAS unit  1000  at such a frequency as to exceed the processing capacity of the dispatcher unit  105 , the throughput of the NAS unit  1000  cannot be increased with scalability no matter how many nodes the NAS unit  1000  has. 
       FIG. 2  is a schematic diagram illustrating a conventional NAS system where the conventional NAS unit  1000  and the NAS client group are connected via the network  110  without employment of the dispatcher unit  105  of  FIG. 1 . In  FIG. 2 , the same elements as those of  FIG. 1  are referred to by the same numerals. 
     Referring to  FIG. 2 , the NAS unit  1000  includes the multiple nodes  1010 ,  1020 , and  1030  and the storage unit  104 . The nodes  1010 ,  1020 , and  1030  have their own IP addresses (IP 1 , IP 2 , and IP 3 , respectively). When the computers  111  through  113  forming the NAS client group access the NAS unit  1000 , each of the NAS clients (computers)  111  through  113  uses any fixed one of the IP addresses (IP 1 , IP 2 , and IP 3 ) assigned to the nodes  1010  through  103  so as to always access the storage unit  104  in the NAS unit  1000  via the same single node. For instance, the NAS client  111  always accesses the storage unit  104  via the node  1010 , the NAS client  112  always accesses the storage unit  104  via the node  1020 , and the NAS client  113  always accesses the storage unit  104  via the node  1030 . 
     However, there is a problem in that when each of the NAS clients  111  through  113  always accesses the storage unit  104  via the same node in the NAS unit  1000 , loads cannot be balanced among the nodes  1010 ,  1020 , and  1030 . 
     SUMMARY OF THE INVENTION 
     Accordingly, it is a general object of the present invention to provide a NAS load balancing system in which the above-described disadvantages are eliminated. 
     A more specific object of the present invention is to provide a NAS load balancing system capable of distributing loads between composing nodes by automatically routing a request issued from a NAS client to an appropriate node without having a dispatcher unit in a NAS unit composed of multiple nodes. 
     The above objects of the present invention are achieved by a NAS load balancing system for distributing NAS loads of a NAS unit including a plurality of nodes and accessed via a network by multiple NAS clients, wherein the NAS unit has a plurality of virtual IP addresses. 
     According to one aspect of the present invention, a request issued from a NAS client is automatically routed to an appropriate node, so that loads can be balanced between composing nodes without employment of a dispatcher unit. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Other objects, features and advantages of the present invention will become more apparent from the following detailed description when read in conjunction with the accompanying drawings, in which: 
         FIG. 1  is a schematic diagram illustrating a conventional NAS system in which a conventional NAS unit and a NAS client group are connected via a network; 
         FIG. 2  is a schematic diagram illustrating another conventional NAS system where the conventional NAS unit and the NAS client group are connected via the network without employment of a dispatcher unit in the NAS unit; 
         FIG. 3  is a schematic diagram illustrating a NAS system in which a NAS unit and the NAS client group are connected via the network according to an embodiment of the present invention; 
         FIG. 4  is a flowchart illustrating an operational algorithm of a NAS main body of the NAS unit according to the embodiment of the present invention; 
         FIG. 5  is a flowchart illustrating an operational algorithm of a statistical data collector of the NAS unit according to the embodiment of the present invention; 
         FIG. 6  is a flowchart illustrating an operational algorithm of a real IP determinator of the NAS unit according to the embodiment of the present invention; and 
         FIG. 7  is a flowchart illustrating an operational algorithm of a destination changer of the NAS unit according to the embodiment of the present invention; 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     A description is given below, with reference to the accompanying drawings, of an embodiment of the present invention. 
       FIG. 3  is a schematic diagram illustrating a NAS system in which a NAS unit  100  and the NAS clients  111 ,  112 , and  113  forming a NAS client group are connected via the network  110  according to the embodiment of the present invention. The NAS clients  111  through  113  forming a NAS client group are computers sharing the NAS unit  100 . 
     The NAS unit  100  includes multiple nodes  101 ,  102 , and  103  and the storage unit  104 . The nodes  101  through  103  include NAS main bodies  121 ,  131 , and  141 , respectively; statistical data collectors  122 ,  132 , and  142 , respectively; and destination changers  123 ,  133 , and  143 , respectively. The node  103  further includes a real IP determinator (a physical IP address determinator)  144 . 
     An overview is given of the operation of each element. 
     First, a description is given of the NAS clients  111  through  113  forming a NAS client group. 
     Each of the NAS clients  111  through  113  includes a widely used general computer and an existing program operable on the computer. Each of the NAS clients  111  through  113  is assigned a logical IP address LIP-x (x is a number determined NAS client by NAS client) that is the representative IP address of the NAS unit  100  to the corresponding computer (NAS client). In the case of  FIG. 3 , the NAS clients  111 ,  112 , and  113  are assigned LIP 1 , LIP 2 , and LIP 3 , respectively. 
     When the NAS clients  111  through  113  access the NAS unit  100 , the NAS clients  111  through  113  transmit a request to their respective logical IP addresses. For instance, this transmission of the request is indicated by reference numeral  151  in  FIG. 3 . Each logical IP address corresponds to one of the MAC or physical addresses (MAC 1 , MAC 2 , and MAC 3 ) of the nodes  101 ,  102 , and  103  of the NAS unit  100 . The request from each of the NAS clients  111  through  113  is transmitted to one of the nodes  101  through  103  having the MAC address corresponding to its logical IP address. The logical IP addresses and the corresponding MAC addresses are correlated in the same manner as by a well-known mechanism for correlating real IP addresses with MAC addresses. 
     Next, a description is given of the NAS main bodies  121 ,  131 , and  141  of the nodes  101 ,  102 , and  103 , respectively, in the NAS unit  100 . 
     The NAS main bodies  121 ,  131 , and  141  are programs for processing a file operation request transmitted from the NAS client  111 ,  112 , or  113 . If the nodes  101 ,  102 , and  103  of the NAS unit  100  have a symmetric configuration, there is no difference between the nodes  101 ,  102 , and  103  of the NAS unit  100 . Accordingly, with respect to any file, the NAS client  111 ,  112 , or  113  can process the file at the same cost via any of the nodes  101 ,  102 , and  103 . 
     On the other hand, if the nodes  101 ,  102 , and  103  of the NAS unit  100  have an asymmetric configuration, the cost differs between the nodes  101 ,  102 , and  103 , depending on a file to be processed. A predetermined group of files can be processed at a minimum cost while an extra cost is required for the other files, depending on which of the nodes  101 ,  102 , and  103  to go through to access the NAS unit  100 . In this case, the number of a node that enables processing at a minimum cost (a primary node number) is recorded for each file in metadata. The present invention is adjusted to be applicable in either one of the above-described characteristics of the underlying file system. 
     Next, a description is given of the statistical data collectors  122 ,  132 , and  142  of the nodes  101 ,  102 , and  103 , respectively, in the NAS unit  100 . The statistical data collectors  122 ,  132 , and  142  accumulate performance data reported from the NAS main bodies  121 ,  131 , and  141 , respectively, and store statistical data logical IP address by logical IP address. For instance, this data reporting is indicated by reference numeral  152  in  FIG. 3 . The statistical data collectors  122 ,  132 , and  142  transmit the results of the accumulated statistical data to the real IP determinator  144  provided in the node  103  at regular time intervals. 
     Next, a description is given of the real IP determinator  144  provided in the node  103 . The real IP determinator  144  of the node  103  further aggregates the statistical data transmitted from the statistical data collectors  122 ,  132 , and  142  in the nodes  101 ,  102 , and  103 , respectively, of the NAS unit  100 . For instance, this data transmission is indicated by reference numeral  153  in  FIG. 3 . Then, the real IP determinator  144  creates a “logical IP address-real IP address conversion table” showing an optimum logical IP address-real IP address correspondence in accordance with, for instance, a below-described algorithm at regular time intervals, and transmits the created table to the destination changers  123 ,  133 , and  143  of the nodes  101 ,  102 , and  103 , respectively, in the NAS unit  100 . For instance, this transmission is indicated by reference numeral  154  in  FIG. 3 . 
     Next, a description is given of the destination changers  123 ,  133 , and  143  of the nodes  101 ,  102 , and  103 , respectively, in the NAS unit  100 . Each of the destination changers  123 ,  133 , and  143  changes the destination of the logical IP address in accordance with the optimum “logical IP address-real IP address conversion table” transmitted from the real IP determinator  144  provided in the node  103 . For instance, this changing of the destination is indicated by reference numeral  155  in  FIG. 3 . 
     Next, a detailed description is given, with reference to  FIGS. 4 through 7 , of the operational algorithms of the NAS main bodies  121 ,  131 , and  141 , the statistical data collectors  122 ,  132 , and  142 , and the destination changers  123 ,  133 , and  143  of the nodes  101 ,  102 , and  103 , respectively, in the NAS unit  100 , and the operational algorithm of the real IP determinator  144  of the node  103 . 
     First, a description is given of an operation of the NAS main bodies  121 ,  131 , and  141 .  FIG. 4  is a flowchart illustrating an operational algorithm of the NAS main bodies  121 ,  131 , and  141 . 
     Referring to the algorithm of  FIG. 4 , in step S 401 , the NAS main bodies  121 ,  131 , and  141  start operations. 
     Next, in step S 402 , for instance, the NAS main body  121  receives a file operation request from one of the NAS clients  111 ,  112 , and  113  via the network  110 . For instance, in  FIG. 3 , the NAS main body  121  receives a file operation request from the NAS client  112  via the network  110 . 
     Next, in step S 403 , each of the NAS main bodies  121 ,  131 , and  141  obtains a file that is a target of processing of the received request (a target file) based on the received request. 
     Next, in step S 404 , it is checked whether the primary node (node-P) of the target file exists. The primary node refers to an optimum processing node for the unit of a file whose processing cost is the lowest in the case of an asymmetric-type NAS unit as described above. If the primary node number (node-P) of the target file does not exist, step S 405  is entered. If the primary node number (node-P) of the target file exists, step S 406  is entered. 
     Next, in step S 405 , the NAS main body ( 121 ,  131 , or  141 ) substitutes its own node number for the primary node number (node-P). 
     Next, in step S 406 , the NAS main bodies  121 ,  131 , and  141  transmit collected statistical data to the corresponding statistical data collectors  122 ,  132 , and  142 . The collected statistical data includes the logical IP address of a destination from a NAS client, the IP address of the requesting NAS client, and the primary node number (or the node number of a node receiving a request in the case of a symmetrical-type NAS unit). 
     Next, in step S 407 , the NAS main bodies  121 ,  131 , and  141  perform file operations requested of the corresponding nodes  101 ,  102 , and  103  by the NAS clients. 
     Finally, in step S 408 , the NAS main bodies  121 ,  131 , and  141  transmit, to the corresponding requesting NAS clients, responses to the file operation requests therefrom. Thereafter, each of the NAS main bodies  121 ,  131 , and  141  awaits a file operation request in order to receive a request from the next NAS client. 
     Next, a description is given of an operation of the statistical data collectors  122 ,  132 , and  142 .  FIG. 5  is a flowchart illustrating an operational algorithm of the statistical data collectors  122 ,  132 , and  142 . 
     Referring to the algorithm of  FIG. 5 , in step S 501 , the statistical data collectors  122 ,  132 , and  142  start operations. 
     Next, in step S 502 , each of the statistical data collectors  122 ,  132 , and  142  stores statistical data transmitted from the corresponding NAS main body ( 121 ,  131 , or  141 ) logical IP address by logical IP address and primary node number (node-P) by primary node number. That is, each of the statistical data collectors  122 ,  132 , and  142  stores the number of file operation requests as statistical data logical IP address by logical IP address and primary node number (node-P) by primary node number. At the same time, each of the statistical data collectors  122 ,  132 , and  142  stores the total number of file operations requests as statistical data. 
     Next, in step S 503 , it is checked whether a predetermined period of time has passed since transmission of previously collected statistical data to the real IP determinator  144  provided in the node  103 . If the predetermined period of time has not passed, step S 506  is entered and the operation ends. If the predetermined period of time has passed, step S 504  is entered. 
     In step S 504 , currently collected statistical data is transmitted to the real IP determinator  144  provided in the node  103 . 
     Next, in step S 505 , a present time at which the currently collected statistical data is transmitted to the real IP determinator  144  provided in the node  103  is saved as a new collection time of statistical data for the next invocation. 
     Then, in step S 506 , the operation ends. 
     Next, a description is given of an operation of the real IP determinator  144 .  FIG. 6  is a flowchart illustrating an operational algorithm of the real IP determinator  144 . In this embodiment, the following description of the algorithm is given of the case of an asymmetric-type NAS unit in particular. According to this algorithm, the statistical data transmitted from the statistical data collectors  122 ,  132 , and  142  of the nodes  101 ,  102 , and  103 , respectively, are further aggregated, and an optimum “logical IP address-real IP address conversion table” is created at regular time intervals and transferred to the destination changers  123 ,  133 , and  143 , respectively, of the nodes  101 ,  102 , and  103 . 
     Referring to the algorithm of  FIG. 6 , in step S 601 , the real IP determinator  144  starts operation. 
     Next, in step S 602 , the real IP determinator  144  receives the statistical data described with reference to  FIG. 5  from the statistical data collectors  122 ,  132 , and  142  of the nodes  101 ,  102 , and  103 , respectively, in the NAS unit  100 . 
     Next, in step S 603 , the real IP determinator  144  obtains the total number of requests to the destination logical IP address by logical IP address and primary node number (node-P) by primary node number. 
     Next, in step S 604 , it is checked whether a predetermined period of time has passed since a previous aggregation. If the predetermined period of time has not passed since the previous aggregation, the operation returns to step S 602  so that the real IP determinator  144  continues to receive the statistical data. Meanwhile, if the predetermined period of time has passed since the previous aggregation, step S 605  is entered. 
     Next, in step S 605 , it is checked whether processing is completed with respect to all the logical IP addresses. If the processing is completed with respect to all the logical IP addresses, the operation returns to step S 602  so that the real IP determinator  144  continues to receive the statistical data. Meanwhile, if there is an unprocessed logical IP address, step S 606  is entered so that the processing continues on the unprocessed logical IP address. 
     Step S 606  includes steps S 607 , S 608 , and S 609 . 
     In step S 607 , the total number of requests to the logical IP address (LIP-i) is accumulated over all primary nodes and determined as “req-total.” 
     Next, in steps S 608  and S 609 , a primary node number (next-pr) that has received the largest number of the requests to the logical IP address (LIP-i), and the corresponding number of requests (max-req-no) are obtained. That is, in step S 608 , it is checked whether a condition (max-req-no&gt;TOTAL[LIPi, p-node]) holds. If the condition (max-req-no&gt;TOTAL[LIPi, p-node]) holds, the operation proceeds to step S 610 . On the other hand, if the condition does not hold, the operation proceeds to step S 609 . 
     In step S 609 , a candidate for the destination (next-pr) of the logical IP address (LIP-i) is determined. At the same time, the maximum number of requests (max-req-no) is determined as the total value of the requests to this primary node TOTAL[LIPi, p-node]. 
     Next, in step S 610 , cur-pr is determined as the node (LIP-i) to which the logical IP address is currently assigned. 
     Next, in step S 611 , it is checked whether the two primary node numbers cur-pr and next-pr are not equal. If cur-pr and next-pr are equal, the operation proceeds to step S 605 . If cur-pr and next-pr are not equal, the operation proceeds to step S 612 . 
     Next, in step S 612 , it is checked whether (max-req-no&gt;½*req-total) holds. If this condition does not hold, the operation proceeds to step S 605 . If this condition holds, the operation proceeds to step S 613 . 
     Next, in step S 613 , the real IP determinator  144  of the node  103  instructs the destination changer ( 123 ,  133 , or  143 ) of the corresponding node  101 ,  102 , or  103  to change the destination of the logical IP address (LIP-i) from the current primary node number cur-pr to the primary node number next-pr. 
     Then, the operation proceeds to step S 605  so that the real IP determinator  144  continues to perform processing for the next logical IP address. 
     As described above, the description is given of the algorithm in the case of an asymmetrical-type NAS unit. On the other hand, in the case of a symmetric-type NAS unit, the number of requests is counted node by node. If there is a great difference between the counted numbers, “logical IP address-real IP address pairs” are set so as to approximately equalize the numbers of processing requests of the nodes, and are transmitted to the destination changers  123 ,  133 , and  143 . 
     In this example algorithm, an attempt is made to collect as many requests from the NAS clients  111  through  113  as possible to a node of a minimum processing cost for simplification of description. However, it is easy to modify the algorithm so that the processing loads of the nodes are equalized in consideration of the processing costs. 
     Next, a description is given of an operation of the destination changers  123 ,  133 , and  143 .  FIG. 7  is a flowchart illustrating an operational algorithm of the destination changers  123 ,  133 , and  143 . 
     Referring to the algorithm of  FIG. 7 , in step S 701 , the corresponding destination changer  123 ,  133 , or  143  starts to change the destination of the logical IP address. 
     Next, in step S 702 , a message is transmitted to a node using cur-pr so as to temporarily suspend all sessions using the logical IP address (LIP-i). Here, the term “suspend” means to stack requests addressed to the logical IP address (LIP-i). 
     Next, in step S 703 , in order to switch the destination of the specified logical IP address LIP-i to a MAC address corresponding to next-pr, an IP switching message having a “MAC address-Lip-i pair” as an argument is transmitted to the network  110 . Thereafter, an optimum “logical IP address-real IP address conversion table” after the change is transmitted to all of the NAS clients  111 ,  112 , and  113 , so that the corresponding NAS client is informed that the real IP address corresponding to the logical IP address has been changed. Thereafter, the NAS unit  100  can be accessed with this real IP address. However, the upper layer of the corresponding NAS client can still access the NAS unit  100  with the existing logical IP address. 
     This switching of the logical IP address may be performed using a well known method such as a method using gratuitous ARP (address resolution protocol). The gratuitous ARP is an ARP response in the case where there is no ARP request. That is, the gratuitous ARP is an ARP response that causes each host on a network to receive the ARP response and refresh an ARP cache when the ARP response is addressed to broadcast hardware addresses. 
     Next, in step S 704 , all sessions from all the corresponding NAS clients to LIP-i are closed. As a result, the temporarily suspended requests are discarded, and the corresponding NAS clients are notified that the sessions are disconnected. Each of the corresponding NAS clients reestablishes sessions to LIP-i and retransmits file operation requests when receiving this notification. Accordingly, the requests are directed to the new node next-pr from the corresponding NAS clients. 
     Finally, in step S 705 , the destination changer  123 ,  133 , or  143  ends operation. 
     According to the embodiment of the present invention, a NAS unit includes a storage unit and multiple nodes. Each node includes a NAS main body, a statistical data collector, and a destination changer. One of the nodes further includes a real IP determinator. 
     The NAS main body processes a file operation request issued from a NAS client, and returns a response thereto. 
     The statistical data collector collects the statistics of the request issued from the NAS client with respect to each destination logical IP address. In the case of an asymmetrical-type NAS unit (a NAS unit of a type that has a processing node [primary node] attribute optimum for the unit of a file and whose processing cost increases when processing is performed by not a primary node but another node), the collection is performed primary node by primary node as well as logical IP address by logical IP address. 
     The real IP determinator evaluates the data collected by the statistical data collector at regular time intervals, and changes the destination retained by the NAS client through the destination changer. 
     The destination changer reports a real MAC address corresponding to the logical IP address of the NAS unit retained by the NAS client to the NAS client. As a result, the destination real IP address of requests issued by the NAS client is switched on the NAS client side without employment of special dispatching hardware. 
     According to one aspect of the present invention, a request issued from a NAS client is automatically routed to an appropriate node using the above-described configuration, so that loads can be balanced between composing nodes without employment of a dispatcher unit. 
     The present invention is not limited to the specifically disclosed embodiment, and variations and modifications may be made without departing from the scope of the present invention.