Server system and management unit identifying a plurality of business application software on a virtual machine based on a program boundary for dynamic resource allocation

A server system for providing a plurality of virtual machines constructed on a physical machine with a physical resource is provided. Each virtual machines includes an OS recognizing the physical resource allocated to the virtual machine as a resource in the virtual machine and a software management unit for securing the resource recognized by the OS and allocating the resource to a plurality of pieces of business application software registered in the virtual machine. The software management unit identifies the plurality of pieces of business application software and allocates the resource to the same plurality of pieces of business application software according to a preset policy to allocate the resource. When the software management unit detects an increase or decrease of the resource allocated to the virtual machine, it changes allocation of the resource to the plurality of pieces of business application software according to the change in resources.

TECHNICAL FIELD

The present invention relates to a server system and a resource management method and program and is suited for application to a server system and resource management method and program for managing resources for virtual machines.

BACKGROUND ART

With a conventional computer system, computer resources (hereinafter referred to as the resource(s)) mounted in a physical server machine are firstly occupied by an OS (Operating System). Then, a software management program operating on the OS secures a specified amount of resources among the resources recognized by the OS in accordance with a predetermined definition. The above-described software management program is software that provides application software with a higher-level and more specific function than that of the OS; and, for example, middleware can be an example of the software program. Furthermore, the software management program allocates the resources to application software operating on the software management program in accordance with a predetermined definition.

However, with the above-described computer system, the OS detects a new resource at the time of activation and occupies the resource, but it has to manually change the definition of the resource amount secured by the software management program. Also, the definition of the resource allocation to the business application software needs to be changed manually. Accordingly, when the resource amount required by the entire system changes, it is necessary to stop the system once and then increase or decrease the physical resource.

Incidentally, with recent computer systems, a virtual machine technique to virtually divide physical resources of a server system by using software and construct a plurality of “virtual machines” on the server is implemented. This virtual machine technique can deploy a plurality of virtual machines on one physical server and operate an OS independently at each virtual machine. Under this circumstance, a resource amount allocated to each virtual machine can be flexibly divided without being bound by the configuration of the physical resources and the resource amount can be changed dynamically without stopping the system. Therefore, even when the resource amount required by the entire system changes, the resource amount which can be used by the OS of each virtual machine can be increased or decreased flexibly without stopping the system once.

However, although the OS of each virtual machine can flexibly increase or decrease the available resource amount as described above, the software management program operating on the OS does not have a function that detects a change of the resource amount or automatically identifies business application software. So, the software management program cannot dynamically manage the resources secured by itself or the resources to be allocated to the business application software.

Therefore, when the resource amount required by the entire system changes, a technique to prepare a virtual machine itself separately, that is, to promptly enhance computer performance by a so-called scale-in/scale-out method is disclosed (for example, Patent Literature 1). According to Patent Literature 1, when the resource amount of the entire system changes, the influence of a change in the settings of the software management program can be reduced by preparing a virtual machine separately and increasing or decreasing the resource amount.

CITATION LIST

Patent Literature

SUMMARY OF INVENTION

Problems to be Solved by the Invention

However, when the resource amount of each virtual machine is changed by server virtualization, it is desirable to flexibly increase or decrease the resource amount, which can be used by the OS, and automate changes of the settings of the system and enhance resource use efficiency by dynamically changing the resource amount secured by the software management program and dynamically changing the resource amount allocated to each piece of application software.

The present invention was devised in consideration of the above-described circumstances and aims at suggesting a server system and resource management method and program capable of dynamically changing the settings of the resource amount by the software management program of the virtual machine.

Means for Solving the Problems

In order to solve the above-described problem, a server system for providing a plurality of virtual machines constructed on a physical machine equipped with a physical resource is provided according to the present invention, wherein each of the virtual machines includes: an OS recognizing the physical resource allocated to the virtual machine as a resource in the virtual machine; and a software management unit for securing the resource recognized by the OS and allocating the resource to a plurality of pieces of business application software registered in the virtual machine; wherein the software management unit identifies the plurality of pieces of business application software and allocates the resource to the plurality of pieces of business application software according to a preset policy to allocate the resource; and wherein when the software management unit detects an increase or decrease of the resource allocated to the virtual machine, it changes allocation of the resource to the plurality of pieces of business application software in accordance with an amount of the detected resource increase or decrease.

When the above-described configuration is used and the physical resources allocated to the plurality of virtual machines constructed on the physical machine are allocated based on a resource allocation policy for each of the plurality of pieces of business application software and the resources allocated to the virtual machines increase or decrease, the allocation of the resources to the business application software is changed according to the resource increase/decrease amount. Accordingly, when the resource amount of each virtual machine is changed flexibly by server virtualization, the software management unit can dynamically detect the change of the resource amount for the virtual machine and the change of the resource amount can be reflected appropriately in each piece of business application software. Therefore, it is no longer necessary to allocate the resource amount manually and the stable operation of the system can be realized by reducing operating cost of the entire system and enhancing the resource use efficiency.

Advantageous Effects of Invention

According to the present invention, the resource use efficiency can be enhanced by dynamically changing the settings of the resource amount by the software management program of the virtual machine and thereby automating the change of the settings of the system.

DESCRIPTION OF EMBODIMENTS

An embodiment of the present invention will be explained in detail with reference to the attached drawings.

(1) Configuration of Computer System

The configuration of a computer system1according to this embodiment will be firstly explained. As depicted inFIG. 1, the computer system1according to this embodiment is constructed from a server system100and a server system200. The server system100and the server system200are connected via a network such as a SAN (Storage Area Network) or LAN (Local Area Network).

The server system100and the server system200are information processing devices equipped with physical computer resources. The physical computer resources (hereinafter sometimes referred to as the resources) of the server system100are virtually divided and the virtually divided resources are allocated to a plurality of virtual machines constructed on the server system100. The server system100will be hereinafter referred to and explained as the virtualization server100. Furthermore, the server system200is an apparatus for managing the configuration of the virtual machines in the virtualization server100. The server system200will be hereinafter referred to and explained as the management server200. Incidentally, in this embodiment, the virtualization server100and the management server200are constructed as separate apparatuses; however, the invention is not limited to this example and the virtualization server100and the management server200may be constructed as an integrated apparatus.

Firstly, a hardware configuration of the virtualization server100will be explained. As depicted inFIG. 1, the virtualization server100is constructed from main storage110, a CPU (Central Processing Unit)120, and auxiliary storage130.

The main storage110stores, for example, programs and operation parameters used by the CPU120and is composed of, for example, ROM (Read Only Memory) or RAM (Random Access Memory). Moreover, the physical resources mounted in the virtualization server100are virtually divided by a hypervisor111which is one of programs stored in the main storage110, thereby constituting a plurality of virtual machines112a,112b,112c(hereinafter referred to as the virtual machine112).

Each of the plurality of virtual machines112constructed by the hypervisor111is equipped with software such as an OS113and a software management unit114. The software in the virtual machine112operates as if the virtual machine112were the same as the physical machine.

The OS113controls the physical resources for the virtualization server100. Specifically speaking, the OS113in the virtual machine112operates as if one virtual machine112were one physical machine; and occupies the resources for the virtual machine112.

The software management unit114is a program operating on the OS113and is software for providing each piece of business application software115with a higher-level and more specific function than that of the OS113; and, for example, middleware can be an example of the software management unit114. Specifically speaking, the software management unit114executes, for example, processing for inputting and outputting common data in each piece of business application software115, communication processing, and error processing. Moreover, the software management unit114has a function that secures the resources to be supplied to the OS113once and then allocates the resources to each piece of business application software115.

Moreover, the business application software115is software for realizing unique business activities required by each system and operates within the range of the resources allocated by the software management unit114. Regarding the business application software115, different business application software115may be mounted in the plurality of virtual machines112or the same business application software115may be mounted in each virtual machine112.

The CPU120functions as an arithmetic processing unit and control device and controls the entire operation in the virtualization server100in accordance with various programs stored in the main storage110. Moreover, the CPU120may be a microprocessor.

The auxiliary storage130is a data storage device constructed as an example of a storage unit for the virtualization server100and can include, for example, storage media, recording devices for recoding data in the storage media, reading devices for reading data from the storage media, and deletion devices for deleting data recorded in the storage media. The auxiliary storage130is composed of, for example, HDDs (Hard Disk Drives). This auxiliary storage130drives hard disks and stores programs executed by the CPU120and various data.

Next, a hardware configuration of the management server200will be explained. As depicted inFIG. 1, the management server200is constructed from a CPU202, auxiliary storage204, main storage206, an OS208, and hypervisor management software210.

The CPU202functions as an arithmetic processing unit and control device and controls the entire operation in the management server200in accordance with various programs. Moreover, the auxiliary storage204is a data storage device constructed as an example of a storage unit for the management server200and can include, for example, storage media, recording devices for recoding data in the storage media, reading devices for reading data from the storage media, and deletion devices for deleting data recorded in the storage media. The auxiliary storage204is composed of, for example, HDDs (Hard Disk Drives). This auxiliary storage204drives hard disks and stores programs executed by the CPU202and various data.

The main storage206stores, for example, programs and operation parameters used by the CPU202and is composed of, for example, a ROM (Read Only Memory) or a RAM (Random Access Memory). The OS208control physical resources for the virtualization server100.

The hypervisor management software210is software for managing the hypervisor111for the virtualization server100and controls the hypervisor111in accordance with an administrator's input to add a virtual machine112or change, for example, the configuration of the virtual machine112.

Next, the structure of the resources for the virtualization server100will be explained.FIG. 2schematically illustrates the resources recognized by each device and each program. Moreover, a method of recognizing the resources by each device and each program will also be explained together with the explanation about the structure of the resources. Incidentally, in this embodiment, for example, CPUs, memories, and HDDs are taken and explained as examples of the resources for the virtualization server100; however, the resources are not limited to these examples. For example, various networks can be taken as examples of the resources for the virtualization server100.

As depicted inFIG. 2, the virtualization server100is equipped with physical resources such as CPUs, memories, and HDDs. The resources mounted in the virtualization server100are allocated to each virtual machine112by the hypervisor111(STEP01). Specifically speaking, the resources are allocated to each virtual machine112and the resource allocation to each virtual machine112is changed according to input by, for example, the administrator under control of the hypervisor management software210of the management server200.

Then, the OS113for each virtual machine112recognizes the resources in the virtual machine, which were allocated in STEP01(STEP02). The resources recognized by the OS113are used by the software management unit114.

Then, the software management unit114for each virtual machine112secures the resources recognized by the OS113(STEP03). In this embodiment, the software management unit114detects that the resources are allocated to the virtual machine112and the allocation of the resources is recognized by the OS113. Then, the software management unit114secures resources required by the software management unit114from among the detected resources.

Then, the software management unit114allocates the resources secured in STEP03to each piece of business application software115. In this embodiment the software management unit114analyzes the structure of each piece of business application software115and manages the resources for each piece of business application software115.

Conventionally, the OS113for each virtual machine112has been capable of flexibly increasing or decreasing the amount of available resources, but the software management unit114operating on the OS113did not have a function that detects any change of the resource amount or automatically identifies the business application software112. Therefore, the resources secured by itself or the resources to be allocated to the business application software could not be managed dynamically.

However, in this embodiment as described above, the software management unit114automatically detects the allocation of the resources to the virtual machine112and allocates them to each piece of business application software115. So, even if the resources for each virtual machine112are changed flexibly by means of server virtualization, the software management unit114can dynamically change the resource amount to be used.

Incidentally, in this embodiment, the software management unit114changes the resource amount to be allocated to the business application software115; however, the invention is not limited to this example. For example, when data is read and written in files, the resource amount to be allocated may be changed for each file.

(2) Software Configuration of Virtualization Server

Next, a software configuration of the virtualization server100will be explained. Particularly, the configuration of the software management unit114for the virtualization server100will be explained in detail. As depicted inFIG. 3, the software management unit114is constructed from a business application software identification unit116, a resource allocation unit117, a resource management unit118, and a resource increase/decrease detection unit119.

The business application software identification unit116has a function that detects the business application software115registered in the software management unit114and identifies the structure of each piece of business application software115. Moreover, the business application software identification unit116provides the resource allocation unit117with the identification results of the business application software115.

The resource allocation unit117has a function that allocates the resources to each piece of business application software115according to a preset resource allocation policy. The resource allocation unit117provides the resource management unit118with information of the resource amount to be allocated to each piece of business application software115.

The resource management unit118has a function that actually secures the resource from the OS113and returns the resource to the OS113based on the information provided by the resource allocation unit117about the resource amount allocated to each piece of business application software115. Moreover, the resource management unit118also has a function that aggregates the usage of the resources in each piece of business application software115.

The resource increase/decrease detection unit119has a function that detects an increase or decrease of the resource amount of the virtual machine112. The resource increase/decrease detection unit119notifies the resource allocation unit117or the resource management unit118of the detected results.

(3) Details of Operations of Server System

(3-1) Outlines of Operations of Server System

Next, the outlines of the operations of the virtualization server100will be explained. As depicted inFIG. 4, the business application software115is firstly registered in the software management unit114for the virtualization server100in accordance with input operations by, for example, the administrator (STEP11).

When the business application software115is registered in the software management unit114in STEP11, the business application software identification unit116identifies the structure of the registered business application software and registers the structure of the business application software in the business application software list management table310(STEP12).

Specifically speaking, the software management unit114identifies each piece of business application software115based on a program boundary which is a component unit or execution unit of a plurality of programs included in the business application software115. Moreover, the software management unit114identifies each piece of business application software115based on location information which is communication information with an external system of the business application software115. Then, the software management unit114registers identification information of the business application software115in the business application software list management table310.

The business application software list management table310is a table for managing the structure of each piece of business application software; and, for example, a business application software list management table310A or310B can be taken as an example as depicted inFIG. 5. The business application software list management table310A is information registered when the business application software is identified based on the above-mentioned program boundary; and the business application software list management table310B is information registered when the business application software is identified based on the aforementioned location information.

The business application software list management table310A is constituted from a number column3101, a boundary type column3102, an identification column3103, a hierarchy column3104, and an application column3105.

The number column3101stores an item number assigned to the relevant application. The boundary type column3102stores the type of boundary information for identifying the relevant program. Under this circumstance, the boundary type of the program is a component unit or execution unit for a plurality of program groups included in the business application software115. For example, in a case of a Java program, the boundary type column3102stores “Java Archive,” which means that the software management unit114identifies the relevant program by using Java's archive unit. The Java's archive unit means, for example, a class loader unit which is set for each multi-level archive such as “JAR (Java Archive),” “WAR (Web Archive),” or “EAR (Enterprise Archive).” Moreover, in a case of a program of a language other than JAVA, for example, the business application software115can be identified in units such as library files or execution module files. The identification column3103stores boundary information of the identified program. In a case of a Java program, the hierarchy column3104stores hierarchy information whose identified class loader is the Java archive. Then, the application column3105stores the name by which the business application software115is identified.

Moreover, the business application software list management table310B is constituted from a number column3111, a location type column3112, an identification column3113, an attribute column3114, and an application column3115.

The number column3111stores an item number assigned to the relevant application. The location type column3112stores the type of location information for identifying the relevant program. The location information for identifying the relevant program is identification information used when the business application software115communicates with an external system; and the location information, for example, in a case of web application software is an URL (Uniform Resource Locator) which indicates the location over the Internet. Moreover, the location information in a case of other network communications is, for example, communication information identified by an IP address, a port number, and so on. Moreover, the location information in a case of inter-process communication within the same system is, for example, information of a process identifier. The identification column3113stores the identified location information such as an URL or an IP address.

Referring back toFIG. 4, the explanation about the outlines of the operations of the virtualization server100will continue. After the registration of the business application software115in STEP11, the business application software115is executed according to the input operation by, for example, the administrator (STEP14). After the business application software115is executed in STEP14, the resource allocation unit117allocates the resource to each piece of business application software115(STEP15). Specifically speaking, the resource allocation unit117allocates the resource to each piece of business application software115with reference to the resource allocation policy management table320.

The resource allocation policy management table320is a table for managing policies to allocate the resource to each piece of business application software115; and as depicted inFIG. 6, resource allocation policy management tables320A,320B,320C can be taken as examples of the resource allocation policy management table320. The resource allocation policy management table320A is a table to which reference is made when changing a resource allocation amount by the ratio maintenance method; and a ratio of the resource amount which can be used for the business application software115is set. Moreover, the resource allocation policy management tables320B and320C are tables to which reference is made when changing the resource allocation amount by a sharing adjustment method; and an upper limit or lower limit of the resource amount, which can be used for the business application software115, and an amount of resources which can be shared are set.

The resource allocation policy management table320A is a table for managing a ratio of CPU capacity, which can be used for the business application software115, and is constituted from a number column3201, an application column3202, a policy type column3203, an upper limit column3204, and a lower limit column3205. The number column3201stores an item number assigned to the relevant application. The application column3202stores the name of application identified by the business application software identification unit116. The policy type3203stores the resource allocation policy, that is, “Ratio Maintenance” which indicates the ratio maintenance method. The upper limit column3204stores an upper limit value when allocating the resource by the ratio maintenance method. The lower limit value3205stores a lower limit value when allocating the resource by the ratio maintenance method. Incidentally, both the upper limit value and the lower limit value, or only one of them may be set.

The resource allocation policy management table320B is a table for managing a memory capacity allocation amount, which can be used for the business application software115, and is constituted from a number column3211, an application column3212, a policy type column3213, an upper limit column3214, a lower limit column3215, and sharing column3216. The number column3211stores an item number assigned to the relevant application. The application column3212stores the name of the application identified by the business application software identification unit116. The policy type3213stores the resource allocation policy, that is, “Sharing Adjustment” which indicates the sharing adjustment method. The upper limit column3214stores the upper limit value used when allocating the resource by the sharing adjustment method. The lower limit value3215stores the lower limit value used when allocating the resource by the sharing adjustment method. The sharing column3216stores the capacity of shared resources which can be used when it is necessary to use the memory in excess of the upper limit value or the lower limit value. When the resource amount of the virtual machine112increases or decreases, the amount of shared resources stored in the sharing column3261is changed.

Moreover, the resource allocation policy management table320C is a table for managing a connection capacity allocation amount, which can be used for the business application software115, and is constituted from a number column3221, an application column3222, a policy type column3223, an upper limit column3224, a lower limit column3225, and a sharing column3226. Since the content stored in each column is the same as that of the resource allocation policy management table320B, any detailed explanation has been omitted.

Referring back toFIG. 4, the explanation about the outlines of the operations of the virtualization server100will continue. After the resource allocation unit117allocates the resource to each piece of business application software115in STEP15, the resource management unit118secures the resource from the OS113or returns the resource to the OS113(STEP16). Then, the resource management unit118stores information of the resource, which is actually allocated to each piece of business application software115, in the resource management table330. Furthermore, the resource management unit118aggregates the resource amount used for the business application software115and provides the resource usage management table340to the resource increase/decrease detection unit119.

The resource management table330is a table for managing information of the resource which is actually allocated to each piece of business application software115; and as depicted inFIG. 7, for example, a resource management table330A or330B can be taken as an example of the resource management table330.

The resource management table330A is a table for managing information of the memory allocated to each piece of business application software115and is constituted from a number column3301, an application column3302, a size column3303, a status column3304, and a position column3305.

The number column3301stores an item number assigned to the relevant application. The application column3302stores the name of the application identified by the business application software identification unit116. The size column3303stores the size of the memory actually allocated to the business application software115. The status column3304stores information about the status of the resource, for example, whether the resource such as the memory has been secured or not. The position3305stores location information of the secured memory.

The resource management table330B is a table for managing information of connections allocated to each piece of business application software115and is constituted from, for example, a number column3311, an application column3312, a size column3313, a status column3314, and a position column3315.

The number column3311stores an item number assigned to the relevant application. The application column3312stores the name of the application identified by the business application software identification unit116. The size column3313stores the size of the connection (communication line) actually allocated to the business application software115. The status column3314stores information about the status of the relevant connection, for example, whether the connection (communication line) has been secured or not. The position3315stores information about, for example, whether the secured connection is a connection to connect to an external device or a connection to connect to an internal device.

Referring back toFIG. 4, the resource amount of the virtual machine12is changed according to the input operation by, for example, the administrator (STEP17). After the resource amount of the virtual machine12is changed in STEP17, the resource increase/decrease detection unit119detects an increase or decrease of the resource amount of the virtual machine112(STEP18). Specifically speaking, the resource increase/decrease detection unit119detects change information of the resource amount, which is issued from the hypervisor111or the hypervisor management software210of the management server200, and notifies the resource management unit118of the change information.

Moreover, the resource increase/decrease detection unit119may detect a change of the resource amount by periodically obtaining (polling) the resource amount information of the OS113. In this case, the resource management unit118detects whether the resource amount has changed or not, by referring to the resource usage management table340and comparing the resource amount which is currently used, with the resource amount of the OS113. The resource management unit118secures an additional resource from the OS113or frees the resource in accordance with the change information of the resource mount reported by the resource increase/decrease detection unit119.

The resource usage management table340is a table for managing the usage of the resource by each piece of business application software115; and as depicted inFIG. 7, a resource usage management table340A or340B can be taken as an example of the resource usage management table340.

The resource usage management table340A is a table for managing information about the memory used by the business application software115and is constituted from a number column3401, an application column3402, an in-use column3403, and an unused column3404.

The number column3401stores an item number assigned to the relevant application. The application column3402stores the name of the application identified by the business application software identification unit116. The in-use column3403stores a memory capacity used by each piece of business application software115. Moreover, the unused column3404stores an unused memory capacity of the memory capacity allocated to each piece of business application software115.

The resource usage management table340B is a table for managing information about connections used by the business application software115and is constituted from a number column3411, an application column3412, an in-use column3413, and an unused column3414.

The number column3411stores an item number assigned to the relevant application. The application column3412stores the name of the application identified by the business application software identification unit116. The in-use column3413stores a connection capacity used by each piece of business application software115. Moreover, the unused column3414stores an unused connection capacity of the connection capacity allocated to each piece of business application software115.

(3-2) Details of Business Application Software Identification Processing

Next, the details of the business application software identification processing will be explained. Examples of the methods for identifying the business application software can include the method based on the program boundary and the method based on the location information as mentioned earlier.

Firstly, the method for identifying the business application software based on the program boundary will be explained. As depicted inFIG. 8A, Firstly, the software management unit114registers the business application software (S101).

Then, the business application identification unit120analyzes a component unit and an execution unit for a group of programs of the business application software registered in step S101(S102). Then, the business application identification unit120recognizes the program boundary analyzed in step S102(S103). Specifically speaking, the business application identification unit120identifies the program boundary in Java's archive units or identifies the program boundary in units such as library files or execution module files.

Then, the business application identification unit120associates the program boundary recognized in step S103with the name of the application and registers them in the business application software list management table310(S104).

Next, the method for identifying the business application software based on the location information will be explained. As depicted inFIG. 8B, the software management unit114firstly registers the business application software (S111).

Then, the business application identification unit120analyzes deployment information of the business application software registered in step S111(S112). Specifically speaking, the business application identification unit120analyses how the business application software is deployed, by checking, for example, if the business application software is for web business or network communication.

Then, the business application identification unit120recognizes location information of the business application software in the deployment information analyzed in step S113(S113). Specifically speaking, the business application identification unit120recognizes, for example, an URL indicating the location on the Internet, an IP address, or a port number.

Then, the business application identification unit120associates the location information of the application recognized in step S113with the name of the application and registers them in the business application software list management table310(S114).

(3-3) Details of Resource Allocation Processing

Next, the details of the resource allocation processing will be explained. When the resource is required upon initialization of the business application software115or during the operation of the business application software115, the resource allocation processing is executed. Moreover, when the processing by the business application software115is terminated or when the resource is no longer necessary during the operation of the business application software115, the resource is collected from the business application software.

Allocation or collection of the resource to or from the business application software115is performed on a program basis as identified by the aforementioned business application software identification processing. The allocation or collection of the resource to or from the business application software115is performed based on, for example, an upper limit or lower limit for an allocation amount or an allocation amount per time, which is set in advance to the resource allocation policy table320. Moreover, examples of the resource allocation method can include the allocation method by the ratio maintenance method and the allocation method by the sharing adjustment method as mentioned earlier.

As depicted inFIG. 9A, the software management unit114receives a resource securement request from the business application software115(S201). Then, the resource allocation unit117checks the resource usage by the business application software115(S202). Specifically speaking, the resource allocation unit117checks the current resource usage by referring to the resource usage management table340.

Then, the resource allocation unit117judges whether the resource amount which is being used by the business application software115is less than a specified upper limit value or not (S203). Then, if it is determined in step S203that the resource amount which is being used by the business application software115is less than the specified upper limit value, the resource allocation unit117allocates the resource to the business application software115(S204). Specifically speaking, the resource allocation unit117associates the name of the business application software115with the size of the allocated resource and registers them in the resource management table330.

On the other hand, if it is determined in step S203that the resource amount which is being used by the business application software115exceeds the specified upper limit value, the resource allocation unit117notifies the business application software115of the failure to secure the resource (S205).

Next, resource collection processing by the resource allocation unit117will be explained. As depicted inFIG. 9B, the software management unit114receives a resource free request from the business application software115(S211). Then, the resource allocation unit117checks the resource usage by the business application software115(S212). Specifically speaking, the resource allocation unit117checks the current resource usage by referring to the resource usage management table340.

Then, the resource allocation unit117judges whether the resource amount which is being used by the business application software115is equal to or more than a specified lower limit value (S213). Then, if it is determined in step S213that the resource amount which is being used by the business application software115is equal to or more than the specified lower limit value, the resource allocation unit117frees the allocation of the resource to the business application software115(S214). Specifically speaking, the resource allocation unit117deletes the business application software115, for which the resource allocation is freed, from the resource management table330.

On the other hand, if it is determined in step S213that the resource amount which is being used by the business application software115is less than the specified lower limit value, the resource allocation unit117notifies the business application software115of the failure to free the resource (S215).

Next, resource amount change processing by the resource allocation unit117will be explained. As depicted inFIG. 10, the resource allocation unit117firstly detects a change of the resource amount of the virtual machine112(S221). Specifically speaking, the resource allocation unit117is notified by the resource increase/decrease detection unit119of an increase or decrease of the resource amount of the virtual machine112.

Then, the resource allocation unit117checks the resource allocation policy (S222). Specifically speaking, the resource allocation unit117checks if the resource allocation policy is the ratio maintenance method or the sharing adjustment method, by referring to the resource allocation policy management table320.

Then, the resource allocation unit117judges whether the resource allocation policy is the ratio maintenance method or not (S223). If it is determined in step S223that the resource allocation policy is the ratio maintenance method, the resource allocation unit117changes the upper limit and lower limit of the resource amount for each piece of business application software115(S224). Specifically speaking, the resource allocation unit117calculates the upper limit value and the lower limit value of the resource amount from the entire resource amount by referring to the upper limit and lower limit ratios in the resource allocation policy management table320.

Moreover, if it is determined in step S223that the resource allocation policy is not the ratio maintenance method, the resource allocation unit117judges whether the resource allocation policy is the sharing adjustment method or not (S225). If it is determined in step S225that the resource allocation policy is the sharing adjustment method, the resource allocation unit117changes the shared resource amount for each piece of business application software115(S226). Specifically speaking, the resource allocation unit117increases or decreases the shared resource amount in the resource allocation policy management table320. Moreover, if it is determined in step S225that the resource allocation policy is not the sharing adjustment method, the resource allocation unit117changes the set resource amount for each piece of business application software by another method (S227). Under this circumstance, an example of another method in step S227can be a priority order method. Specifically speaking, by the priority order method, the priority order of resource allocation is assigned to each application in the policy management table320. Then, when the resource increases, the upper limit value is increased in the descending order of the priority order in the policy management table320. Moreover, when the resource decreases, the upper limit value is decreased in the ascending order of the priority order.

(3-4) Details of Resource Management Processing

Next, the details of the resource management processing will be explained. When the resource amount of the virtual machine112increases, the resource management unit118secures the resource from the OS113; and when the resource amount decreases, the resource management unit118returns the resource to the OS113. When the resource amount of the virtual machine is changed or not is reported by the resource increase/decrease detection unit119as mentioned earlier.

As depicted inFIG. 11A, the software management unit114firstly executes initialization of the business application software115and secures the resource (S301). Then, the resource allocation unit117executes the aforementioned resource allocation processing, thereby allocating the resource to the business application software115(S302).

Then, the resource management unit118secures the resource allocated in step S302from the OS113(S303). Then, the resource management unit118updates the usage (S304). Specifically speaking, the resource management unit118increases the in-use resource amount in the resource usage management table340and decreases the unused resource amount (S304).

Moreover, as depicted inFIG. 11B, the software management unit114terminates the business application software115and frees the resource (S311). Subsequently, the resource allocation unit117executes the aforementioned resource allocation freeing processing, thereby freeing the allocation of the resource to the business application software115(S312).

Then, the resource management unit118returns the resource, which was freed in step S312, to the OS113(S313). Then, the resource management unit118updates the usage (S314). Specifically speaking, the resource management unit118increases the in-use resource amount in the resource usage management table340and decreases the unused resource amount (S314).

Next, resource allocation or resource allocation freeing processing executed when the resource amount of the virtual machine112has changed will be explained. As depicted inFIG. 12, the resource management unit118firstly judges whether the resource amount for the virtual machine112has increased or decreased, based on the notice from the resource increase/decrease detection unit119(S321).

If it is determined in step S321that the resource amount for the virtual machine112has increased, the resource allocation unit117executes the resource allocation processing, thereby allocating the resource to the business application software115(S322). Then, the resource management unit118adds and secures the resource, which was allocated in step S322, from the OS113(S323).

On the other hand, if it is determined in step S321that the resource amount for the virtual machine112has decreased, the resource allocation unit117executes the resource allocation freeing processing, thereby freeing the allocation of the resource to the business application software115(S325). Then, the resource management unit118judges whether the resource is being used by the business application software115or not (S326).

If it is determined in step S326that the resource is not being used by the business application software115, the resource management unit118frees the secured resource (S327). On the other hand, if it is determined in step S326that the resource is being used by the business application software115, the resource management unit118frees the resource according to the resource type (S328). The resource freeing processing according to the resource type in step S328will be explained later in detail.

Then, the resource management unit118returns the resource to the OS113(S329). After the resource management unit118secures the resource in step S324or returns the resource in step S329, it updates the resource amount in the resource usage management table (S330).

Next, the details of the resource freeing processing according to the resource type as executed in step S328will be explained. As depicted inFIG. 13, the resource management unit118firstly judges the resource type (S331). If it is determined in step S331that the resource type is a non-use state monitoring type, the resource management unit118executes processing for freeing the resource of the non-use state monitoring type (S332). Examples of the type of resources to be freed because of the non-use state monitoring type can include real-time sessions and connections.

Then, the resource management unit118monitors the state where the resource is not used for a certain period of time (S333). Specifically speaking, for example, in a case of sessions, the resource management unit118monitors session time-out; and in a case of connections, the resource management unit118monitors no connection time-out.

On the other hand, if it is determined in step S331that the resource type is an unused area securing type, the resource management unit118executes processing for freeing the resource of the unused area securing type (S334). Examples of the type of resources to be freed because of the unused area securing type can include heap memories, cache memories, shared memories, and disk areas.

Then, the resource management unit118secures an unused area by organizing and migrating used areas (S335). Then, the resource management unit118frees the resource secured by monitoring the non-use state in step S333and securing the unused area (S336).

(3-5) Details of Resource Increase/decrease Detection Processing

Next, the details of the resource increase/decrease detection processing will be explained. The resource increase/decrease detection unit119detects a change of the resource amount for the virtual machine112and gives the resource management unit118the momentum to secure an additional resource from, or free the resource from, the OS113. There are three possible methods executed by the resource increase/decrease detection unit119for detecting a change of the resource amount for the virtual machine112as follows.

A first method is for the software management unit114in the virtual machine112to receive an event issued from the hypervisor111when the hypervisor111changes the resource amount for the virtual machine112. This method can be implemented by incorporating software such as a virtualization driver capable of responding to the function of the hypervisor111into the OS113.

A second method is for the software management unit114in the virtual machine112to receive an event issued from the hypervisor management software210when the hypervisor management software210of the management server200changes the resource amount for the virtual machine112. This method can be implemented by communication processing between the hypervisor management software210and the virtual machine112.

A third method is for the software management unit114to recognize the change of the resource by periodically obtaining (polling) the resource amount information of the OS113.

Processing for detecting a change of the resource amount by the first and second methods of receiving an event and the third method by polling will be explained below.

As depicted inFIG. 14, the resource increase/decrease detection unit119waits for an event to occur from the hypervisor111or the hypervisor management software210of the management server200(S341). Then, the resource increase/decrease detection unit119judges whether an event of the change of the resource amount has occurred or not (S341). Specifically speaking, if the resource amount for the virtual machine112changes, an event is generated by the hypervisor111or the hypervisor management software210of the management server200to report that the resource amount has changed. The resource increase/decrease detection unit119detects whether the relevant event has occurred or not.

If it is determined in step S342that the event has occurred, the resource increase/decrease detection unit119receives that event (S343). On the other hand, if it is determined in step S342that the event has not occurred, the resource increase/decrease detection unit119terminates the processing.

Then, the resource increase/decrease detection unit119notifies the resource allocation unit117of the reception of the event in step S343and the resource allocation unit117then allocates the resource to, or frees the allocation of the resource to, each piece of business application software115based on the reported information of the resource change amount (S344).

Next, processing for detecting a change of the resource amount by means of polling will be explained. As depicted inFIG. 15, the resource increase/decrease detection unit119firstly obtains the resource amount information of the OS113(S351). Then, the resource increase/decrease detection unit119judges whether there is any difference between the resource amount information of the OS113, which was obtained in step S351, and the resource amount information of the OS113, which was obtained last time (S352).

If it is determined in step S352that there is no difference in the resource amount information, the resource increase/decrease detection unit119sleeps for a certain period of time (S353) and then repeats the processing in step S351and subsequent steps. On the other hand, if it is determined in step S352that there is a difference in the resource amount information, the resource increase/decrease detection unit119calculates a changed amount of the resource amount (S354).

Then, the resource increase/decrease detection unit119notifies the resource allocation unit117of the resource change amount calculated in step S354and the resource allocation unit117allocates the resource to each piece of business application software115or frees the resource allocation based on the reported information of the resource change amount (S355).

(4) Advantageous Effects of this Embodiment

When the resource amount of each virtual machine112in the computer system1according to this embodiment described above is changed flexibly by server virtualization, the software management unit114can dynamically detect the change of the resource amount for the virtual machines and the change of the resource amount can be reflected appropriately in each piece of business application software. Therefore, it is no longer necessary to allocate the resource amount manually and the stable operation of the system can be realized by reducing operating cost of the entire system and enhancing the resource use efficiency.

(5) Other Embodiments

Incidentally, in the aforementioned embodiments, the CPU120for the virtualization server100implements various functions such as the software management unit (software management unit114), the identification unit (application software identification unit116), the resource allocation unit (resource allocation unit117), the resource management unit (resource management unit118), and the detection unit (resource increase/decrease detection unit119) according to the present invention in accordance with various programs stored in the memory of the virtualization server100; however, the present invention is not limited to such examples. For example, the CPU120may be installed in another apparatus separate from the virtualization server100so that various functions may be implemented in cooperation with that CPU120. Furthermore, the various programs stored in the virtualization server100may be stored in another apparatus separate from the virtualization server100and such programs may be invoked by the CPU120, thereby implementing the various functions.

INDUSTRIAL APPLICABILITY

The present invention can be applied to a computer system for managing resources for virtual machines.

REFERENCE SIGNS LIST

114software management unit

115business application software

116business application software identification unit

117resource allocation unit

118resource management unit

210hypervisor management software