This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2008-224866, filed on Sep. 2, 2008, the entire contents of which are incorporated herein by reference.
The embodiment discusses herein is directed to a technology for automatically setting a load balancer to a server applied with a virtualization technology.
In recent years, demands for implementing outsourcing of information processing systems of service enterprises and the like are increased, and the market thereof is expanded. A data center collectively undertaking such outsourcing includes a server node pool configured by a plurality of servers. Then, service programs for processing customers' services of which outsourcings are consigned are discretely allocated to the plurality of servers configuring the server node pool, according to functions thereof, and also, these servers are physically network-connected.
In the server node pool described above, in order to separately administrate the services of the plurality of customers, a technology for setting a virtual machine environment in each server is generalized. To be specific, in each server, as a virtual operating system (hereunder, “operating system” is to be referred to as an OS (operating system), i.e., virtual OS, and the same rule will be applied to other operating systems), a host OS being a basis in the virtual machine environment is operated, and also, a guest OS as an environment for executing the service program is operated. Thus, even in the case where the service programs for the plurality of customers are processed on the same server, it is possible to avoid that data processed by the service programs for the customers are mixed among the customers. Further, in such a server node pool, since the physical network among the servers is shared by the plurality of customers, in order to avoid information leakage among the customers, unauthorized access and the like, a method described below is further adopted. Namely, the physical network among the servers is sectioned in L2 (Layer-2) sections using a VLAN (Virtual Local Area Network) technology or is sectioned using a VPN (Virtual Private Network) technology to thereby virtually divide the physical network, so that a virtual intranet is set up for each customer (refer to Japanese National Publication of International Patent Application No. 2004-503011).
Here, in the server node pool, it becomes necessary to perform load balancing in order to avoid concentration of processing load on a specific server. Then, in general, as a method of performing the load balancing among the servers, there has been used a method of once concentrating a processing request on a load balancer to distribute the processing request among the respective servers from the load balancer. However, in the case where the processing request is distributed as in the above, there is a problem in that traffic is concentrated in the load balancer itself to thereby cause a bottleneck. Therefore, in recent years, there has been practically applied a technology for incorporating a software load balancer into each server and distributing the processing request to thereby transmit it to the other servers, by means of a function of the software load balancer.
However, the application of such a software load balancer in the server node pool has the following problems. Namely, it is necessary to perform load balancing setting to each server into which the software load balancer is to be incorporated. However, since the servers configured the server node pool are large in number and the number of servers being objects into which the software load balancers are incorporated is obviously large, a burden required for the load balancing setting work is large. Further, in the case where a plurality of guest OS operate in one server, it is difficult to specify a guest OS in which server executes the service program which processes the processing request to be load-balanced, and also, contents of the load balancing setting are complicated. Furthermore, when the guest OS operating in each server is modified, it is necessary to modify the setting of the software load balancer corresponding to the modification of the guest OS. However, because the burden in the load balancing setting work is large, it is also difficult to flexibly correspond to the modification of server configuration.
According to an aspect of the embodiment, a computer connected to a plurality of servers each including a virtual machine environment in which a host OS capable of loading a software load balancer therein in response to an instruction and a guest OS executing a service program, are operable as virtual OS, performs following processes. Namely, a server in which the guest OS for executing a transmission source service program of a processing request being a load balancing object operates, is determined as a setting objective server of the software load balancer. Further, a server in which the guest OS for executing a transmission target service program of the processing request to be load balanced operates, is determined as a load balancing objective server. Then, an instruction is transmitted to the setting objective server to load the software load balancer into the host OS thereof. Still further, an instruction is transmitted to the software load balancer to set the load balancing objective server, as information to be used for the load balancing of transmission data from the transmission source service program.
The objects and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
In the plurality of servers 20 configuring the server node pool, service programs for processing the services of plural customers who consigned outsourcing to the data center are arranged. Further, each server 20 is provided with a virtual machine environment capable of operating a virtual OS. Furthermore, the servers 20 establish the VPN connection to one another in P2P (Peer to Peer) using a virtual (private) network (VPN: Virtual Private Network), and the system is divided for each customer to thereby set up a virtual intranet. Incidentally, the above virtual intranet divided for each customer is connected to own system of individual customer.
Next, referring to
In the server 20, the virtual machine environment is set up, and a host OS 30 and a guest OS 40 operate as virtual OS. The host OS 30 and the guest OS 40 are controlled on a hypervisor functioning as an OS control program.
Further, the server 20 is provided with a physical NIC (Network Interface Card) 50 for performing communications with other computers. Then, the server 20 is allocated with a physical IP address which is uniquely identified in the server node pool. Furthermore, each of the host OS 30 and the guest OS 40 operating in the server 20 is provided with virtual NIC 60, and communications between the host OS 30 and the guest OS 40 in the same server are performed using this virtual NIC 60. Then, the guest OS 40 operating in the server is allocated with a customer IP address as a virtual IP address which is a unique address different from the physical IP address.
Further, the host OS 30 includes an element described below. Namely, the host OS 30 includes a routing section 30A that, when transmission data is received from the guest OS 40, specifies tunnel information for transmitting the transmission data via the VPN connection. As illustrated in
Furthermore, a software load balancer for load-balancing the transmission data to a plurality of transmission targets can be loaded into the routing section 30A, when the transmission data is received from the guest OS 40. This software load balancer is loaded by a load balancer setting section 30D to be described later. Incidentally, there is a LVS (Linux Virtual Server) or the like, as a specific example of means incorporated therein such a software load balancer capable of loading the software load balancer to make it to function.
Then, the software load balancer operates as follows. Firstly, when the transmission data (processing request) transmitted from the service program executed in the guest OS 40 is load-balanced to be transmitted to the plurality of servers, in place of the customer IP addresses, a representative address according to service program types determined depending on functions of the service programs to be the transmission target is attached to the transmission data. Then, the software load balancer includes load balancing information in which the representative address attached to the transmission data is associated with the customer IP addresses of the guest Oss 40 of the load balancing objective server executing the service programs of service program types corresponding to the representative address, and load balancing ratios to be transmitted to the customer IP addresses. Further, when the transmission data to be load-balanced is received from the guest OS 40, the software load balancer allocates the customer IP addresses of the guest OSs 40 in the servers to be load-balanced according to the load balancing ratios, based on the representative address attached to the transmission data, to attach the customer IP addresses to the transmission data. Then, the routing section 30A specifies the tunnels to be used for the VPN connection, based on the customer IP addresses allocated by the software load balancer as described above.
Further, the host OS 30 includes a tunneling section 30B that attaches the physical IP address of the transmission target to the transmission data and also encapsulates the transmission data to thereby perform tunneling. The tunneling section 30B is provided with a tunneling setting table in which the tunnel information and the physical IP addresses being the transmission targets of the tunnels are set, as illustrated in
Further, the host OS 30 comprises an encrypting section 30C that encrypts the transmission data. Furthermore, the host OS 30 includes a load balancer setting section 30D that loads the software load balancer as a part of the routing section 30A, in response to an instruction from the administrative manager 10, and also, functions as an agent which sets information necessary for performing the load balancing by mean of the software load balancer.
Incidentally, when data is received from the other server 20, in the host OS 30, the reception data is decrypted in the encrypting section 30C and encapsulation thereof is released in the tunneling section 30B, and also, in the routing section 30A, the data is transmitted to the guest OS 40 of the customer IP address attached to the reception data.
On the other hand, the guest OS 40 comprises a customer's service processing section 40A that executes the service program. Incidentally, in an example of
Next, referring to the example of
Firstly, the data is transmitted from the service program executed in the customer's service processing section 40A of the server α to the customer IP address (192.167.0.3) of the guest OS 40 of the server γ, which is the transmission target. This data is transmitted to the host OS 30 via the virtual NIC 60 (eth0) of the guest OS 40 and the virtual NIC 60 (vif0) of the host OS 30. Then, in the host OS 30, the routing setting table is referred to in the routing section 30A, to thereby acquire the tunnel information corresponding to the customer IP address of the transmission target. Further, in the host OS 30, the tunneling setting table is referred to in the tunneling section 30B, to thereby acquire the physical IP address (10.0.0.3) of the transmission target server corresponding to the tunnel information. Then, this physical IP address is attached to the transmission data, and thereafter, the transmission data is encapsulated and tunneled. Further, in the encrypting section 30C, the encapsulated transmission data is further encrypted by applying IPsec or the like. As a result, it becomes possible to establish the VPN connection to the server γ. Then, the transmission data is transmitted from the virtual NIC 60 (eth0) of the host OS 30 to the server γ via the physical NIC 50 (eth0) of the server α. On the other hand, in the host OS 30 of the server γ that received the transmission data, the reception data is transmitted to the guest OS 40 being the transmission target in which the service program is executed, based on the customer IP address attached to the reception data.
By adopting the configuration described above, in the case where the data transmission and reception is performed between the own server 20 and the other server 20 in the service program, in the guest OS 40, only the customer IP address of the transmission target may be set to the transmission data, and the setting of the physical IP address and the VPN connection is performed by the host OS 30. Therefore, when the customer accesses the server to execute the service program and communicate with the other server, it becomes possible to perform such communications without the necessity of directly controlling the host OS 30. Accordingly, it becomes possible to perform the communications with the other server without providing a control authorization of the host OS 30 to the customer, and consequently, it is possible to prevent troubles, such as erroneous alteration of the environment setting of the host OS 30 by the customer.
Further, in the example of
Here, the data transmitted from the service program executed in the customer service processing section 40A of the server α is attached with the representative address (for example, (192.167.0.100)) according to the service program type of the service program being the transmission target of the transmission data, in place of the customer IP address of the specific guest OS 40. On the other hand, it is assumed that the software load balancer in the server α is set such that the data attached with the representative address (192.167.0.100) is load-balanced to the customer IP address (192.167.0.3) of the guest OS 40 operating in the server γ at a rate of 60% and the customer IP address (192.167.0.4) of the guest OS 40 operating in the server δ at a rate of 40%. Then, when in the software load balancer in the server α, the customer IP address (192.167.0.3) of the guest OS 40 operating in the server γ is determined as the allocation target of the transmission data, so that in the server α, as described in the above, the tunnel information (tun0) corresponding to the customer IP address of the transmission target is acquired from the routing setting table and the data is transmitted to the server γ. On the other hand, when in the software load balancer in the server α, the customer IP address (192.167.0.4) of the guest OS operating in the server δ is determined as the allocation target of the transmission data, the tunnel (tun1) corresponding to the customer IP address (192.167.0.4) set in the routing setting table is acquired and the data is transmitted to the server δ.
Next, there will be described the administrative manager 10 that administrates the entirety of servers 20.
The load balancer setting instruction receiving section 10A is connected to an input device which can be operated by an operator. Then, the load balancer setting instruction receiving section 10A receives a load balancer setting instruction in which at least the service program type of the service program being the transmission source of the transmission data (processing request) to be load-balanced is designated.
The load balancer setting instructing section 10B determines the servers to which the software load balancers are to be set, and transmits an instruction to the load balancer setting section 30D in each of the determined servers to load the software load balancer, as a part of the routing section 30A. Incidentally, the load balancer setting instructing section 10B functions as a deciding step, deciding means, a first instruction transmitting step and first instruction transmitting means.
The load balancing information setting instructing section 10C determines the servers being the load balancing objects and the load balancing ratios, and then, transmits an instruction to the software load balancer setting section 30D in each of the software load balancer setting objective servers to set the load balancing objective server and the load balancing ratio. Incidentally, the load balancing information setting instructing section 10C functions as a determining step, determining means, a second instruction transmitting step and second instruction transmitting means.
The service administration table 10D indicates, for each of service program types, the servers each in which the guest OS 40 for executing the service program of each service program type operates. As illustrated in
The load balancing information table 10E is configured with a set of sheets, in which, for each service program type of the service program being the transmission target of the processing request to be load-balanced, the load balancing objective servers and the load balancing ratios are set. As illustrated in
Incidentally, the administrative manager 10 includes such as a table for administrating the physical IP address of each server, in addition to the above components, in order to administrate in lump the entirety of the servers 20 and also to perform various settings to each server.
In step 1 (to be abbreviated as S1 in the figure, and the same rule will be applied to subsequent steps), referring to the service administration table 10D, the servers each executing the service program of the designated service program type are acquired. Then, the acquired servers are determined as the setting objective servers in which the software load balancers are to be loaded into the hosts OS 30 thereof.
In step 2, referring to the load balancing information table 10E, the representative address of the service program types each set with a value other than 0 in a line in which the designated service program type is the transmission source, is acquired as the representative address of the transmission target service program types. Further, from each sheet of the transmission target service program types, the load balancing objective servers in which the designated service program types are the transmission sources, and the load balancing ratios thereto, are acquired to be determined as the load balancing objective servers and the load balancing ratios.
In step 3, referring to the service administration table 10D, and the customer IP addresses of all of the load balancing objective servers are acquired.
In step 4, the instruction is transmitted to each of the load balancer setting section 30D of the host OS 30 in the setting objective server to load the software load balancer. Incidentally, the load balancer setting section 30D in the setting objective server loads the software load balancer as a part of the routing section 30A in response to the instruction.
In step 5, the instruction is transmitted to the load balancer setting section 30D of the host OS 30 in the setting objective server, to set the load balancing objective servers determined in step 2 and the load balancing ratios to the load balancing objective servers, for each transmission target service program type. To be specific, the instruction is transmitted the load balancer setting section 30D to set, in the software load balancer information in which the representative addresses of the transmission target service program types are associated with the customer IP addresses of the load balancing objective servers and the load balancing ratios thereto. Incidentally, in the load balancer setting section 30D in the setting objective server, in response to the above instruction, the above information is set to the software load balancer loaded as a part of the routing section 30A.
Further, the step 2 and step 3 for determining (acquiring) the load balancing information to be set in the software load balancer and the step 4 for transmitting the instruction to the setting objective server to load the software load balancer, may be executed in reverse order to the above.
Here, there will be described as to how the load balancing is performed among the servers 20, referring to a specific example.
Then, the administrative manager 10 executes the following processes, when the instruction to load-balance the processing request from the service program of service program type A is received in the load balancer setting instruction receiving section 10A. Namely, the load balancer setting instructing section 10B refers to the service administration table 10D in
Then, the load balancer setting instructing section 10B transmits the instructions to the load balancer setting sections 30D in the server α and the server β being the software load balancer setting objective servers, to load the software load balancers (step 4). Further, the load balancing information setting instructing section 10C transmits the instruction so that the processing request to the representative address (192.167.0.100) is load balanced to (192.167.0.3) in the ratio of (0.5), (192.167.0.4) in the ratio of (0.3) and (192.167.0.5) in the ratio of (0.2) (step 5).
As a result, the processing requests transmitted from the server α and the server β each in which the guest OS 40 for executing the service program of service program type A operates to the service program of service program type B, are load-balanced as illustrated in
According to the above-mentioned load balancer setting process, when the service program type being the transmission source of the processing request to be load-balanced is designated, the software load balancer setting objective servers are determined and the software load balancers are loaded into the host OS thereof. Then, the information necessary for the load balancing is automatically set in each of the loaded software load balancers. Therefore, in the server node pool configured by the large number of servers, even if the software load balancers are applied, the load required for the software load balancer setting work is significantly reduced, and also, it is possible to flexibly cope with the modification or the like of server configuration.
Incidentally, in the embodiment described above, both of the load balancing objective servers and the load balancing ratios are previously set in the load balancing information table 10E, and both of the load balancing objective servers and the load balancing ratios are previously set in the software load balancer. Thus, in the case where there is a difference in processing power among the load balancing objective servers, it is possible to set the load balancing ratios according to the processing powers of the load balancing objective servers. However, when the processing powers of the respective load balancing objective servers are same, only the load balancing objective servers may be previously set in the load balancing information table 10E and only the load balancing objective servers may be previously set in the software load balancer. Incidentally, in this case, the load balancing may be performed evenly on the load balancing objective servers by the software load balancer. Thus, it is possible to provide the load balancing without setting the load balancing ratios in the load balancing information table 10E.
Further, in the case where the load balancing ratios to the load balancing objective servers are previously set evenly, it is possible to automate the setting work (namely, the work of adding the load balancing information to the load balancing information table 10E). As a process thereof, firstly, when the respective service program types being the transmission source of the processing request and the transmission target thereof are designated, the servers each in which the guest OS 40 for executing the service program of service program type being the transmission target operates are specified from the service administration table 10D. Further, the sheet, in which the representative address of the service program type being the designated transmission target is set, is added to the load balancing information table 10E. Then, all of the servers specified from the service administration table 10D are set in the sheet as the servers to be load balanced, and also, the line for setting the load balancing ratios from the service program type being the designated transmission source is added. Further, the ratio of (1/(the number of the server to be load balanced)) is set to the added line, for each of the servers to be load balanced. Thus, it is possible to simplify the setting work of the load balancing information to the load balancing information table 10E.
Furthermore, the load balancer setting instruction to be received by the load balancer setting instruction receiving section 10A is not limited to that for setting the load balancer itself, and, for example, the instruction for starting the guest OS may be used as the load balancer setting instruction. To be specific, when the guest OS starting instruction is made together with the instruction of the service program to be executed by this guest OS, the above-mentioned load balancer setting process may be performed by using the service program of designated service program type as the service program being the transmission source of the processing request to be load balanced. Thus, since the setting of the software load balancer is also performed only by performing the guest OS starting instruction, it is possible to omit the work of performing again the load balancer setting instruction.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor for furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2008-224866 | Sep 2008 | JP | national |