This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-116487, filed on Jun. 9, 2015, the entire contents of which are incorporated herein by reference.
The present disclosure generally relates to an apparatus, a method, and a computer-readable medium storing computer-executable instructions for extracting a patch program desired to be installed.
A provider who provides service for a user (hereinafter also simply referred to as a provider) builds an operation system, for example, on a virtual machine (VM) and causes the operation system to operate in order to provide various types of service for the user. For example, such provider provides the service for the user by causing an operating system (OS) or an application that has been installed in the VM to cooperate and operate as the operation system.
In addition, the provider installs a program (hereinafter also referred to as a patch program) for performing update or the like of an application in the VM in which the operation system operates, as appropriate. Therefore, the provider may perform, for example, modification or the like of a malfunction inherent in an application that operates as a part of the operation system.
Japanese Laid-open Patent Publication No. 2012-168710 and Japanese Laid-open Patent Publication No. 2014-013457 are examples of the related art.
According to an aspect of the invention, provided is an apparatus for extracting a patch program desired to be installed. The apparatus includes a memory, a processor coupled to the memory. The processor included in the apparatus is configured to obtain physical resource information that is information on a usage amount of a physical resource of a computer, the physical resource being used by each of a plurality of virtual machines in executing each of processes, the plurality of virtual machines being application targets of patch programs and being executed by the computer. The processor is configured to classify the plurality of virtual machines into one or more groups based on the obtained physical resource information, and obtains application information that is information on the patch programs applied to the virtual machines, for each of the one or more groups. And, the processor is configured to extract a first patch program included in the patch programs as a patch program to be applied to a virtual machine to which the first patch program is not applied when the obtained application information includes information indicating existence of a group including a virtual machine to which the first patch program is applied and a virtual machine to which the first patch program is not applied.
The object 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 and are not restrictive of the invention, as claimed.
As for the operation system described in the background, it is desirable that a provider is capable of grasping a patch program that has been installed in each of the VMs in order to manage the VM.
However, there is a case in which physical resources (a CPU, a memory, and the like of the physical machine in which the VM has been generated) allocated to each of the VMs are changed depending on the usage status or the like of the operation system. In addition, the number of VMs desired to be managed may become enormous depending on the scale of the operation system. Accordingly, there is a case in which it is difficult for the provider to grasp the status of the patch program that has been installed in the VMs accurately and identify a patch program desired to be newly installed in the VMs.
Therefore, in some aspects of the present disclosure, provided are solutions for extracting a patch program desired to be installed. Within the disclosure, the term “patch program” may include a piece of software designed to update a computer program or its supporting data, to fix or improve it.
The detailed description set forth below in connection with the appended drawings is intended as a description of various aspects of the present disclosure and is not intended to represent the only aspects in which the present disclosure may be practiced. Each aspect described in this disclosure is provided merely as an example or illustration of the present disclosure, and should not necessarily be construed as preferred or advantageous over other aspects. The detailed description includes specific details for the purpose of providing a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the concepts of the present disclosure. Acronyms and other descriptive terminology may be used merely for convenience and clarity and are not intended to limit the scope of the disclosure.
[Configuration of an Information Processing System]
The physical machine 2 is constituted by a plurality of physical machines in the example of
The information processing apparatus 1 may access the VMs 3 and manage the VMs 3. For example, the information processing apparatus 1 performs, for example, management of patch programs (management of the type, the version, and the like of the patch programs) that have been installed in the VMs 3 generated in the physical machines 2. The information processing apparatus 1 may be built in a physical machine that is different from the physical machines 2, or may be built in a VM 3 generated in a physical machine 2.
The VM 3 is used, for example, to provide a user with infrastructure (hereinafter also referred to as a cloud service) through a network. The cloud service is the service by which an infrastructure on which a computer system is built and operated, that is, the infrastructure of a VM 3, a network, and the like are provided through the network. In addition, for example, the user accesses a cloud service portal site by using the user terminal 20, selects a specification desired for a VM, for example, a clock frequency of a CPU, a capacity (GB) of a memory, a capacity (MB/sec, IOPS) of a hard disk, and a communication bandwidth (Gbps) of a network, and concludes a cloud service contract for the specifications.
In the VM 3, for example, an operation system to provide service for the user is built. Therefore, the provider may provide various types of service for the user.
In addition, virtualization software 4 is infrastructure software that causes the VMs 3 to be operated by allocating physical resources of the physical machines 2 to the VMs 3 in response to an instruction from the information processing apparatus 1. The virtualization software 4 operates, for example, on the physical machines 2.
In the information processing system 10 illustrated in
Therefore, the information processing apparatus 1 divides the VMs 3 generated in the physical machine 2 into groups, for example, by performing cluster analysis on the VMs 3. Specifically, the information processing apparatus 1 performs the cluster analysis using information indicating the operation status of each of the VMs 3 as an input. In addition, the information processing apparatus 1 compares the installation statuses of patch programs between the groups that have been obtained by the cluster analysis.
As a result, for example, the information processing apparatus 1 may obtain information on a difference between the installation statuses of patch programs in the VMs 3 classified into the same group. Therefore, when there is a patch program that is not installed in some VMs 3 from among the VMs 3 classified into the same group, for example, the information processing apparatus 1 may extract the patch program as a patch program to be installed. That is, in this case, it is unnecessary that the information processing apparatus 1 inspects in detail patch programs installed in all of the VMs 3. Therefore, even when the number of VMs 3 that are management targets is enormous, the information processing apparatus 1 may extract a patch program to be newly installed in a VM 3 relatively easily. A specific example of the cluster analysis is described in detail below.
[Specific Example of the Cluster Analysis]
A specific example of the cluster analysis is described below. The cluster analysis is a method in which targets having a similarity are identified from an aggregate including targets (hereinafter also referred to as analysis targets) having different properties and put into the same group. A specific example of a case is described below in which the information processing apparatus 1 performs the cluster analysis. A case is descried below in which the analysis targets are classified into two groups by performing the cluster analysis using a k-means method.
First, details of the VMs 3 illustrated in
A specific example of a case is described below in which the information processing apparatus 1 performs the cluster analysis using the VM 3A, 3B, 3C, 3D, 3E, and 3F as analysis targets.
First, the information processing apparatus 1 obtains a usage rate of the CPU (for example, an average usage rate of the CPU) of the VMs 3 and the number of processes started (for example, the average number of processes started per unit time) when the program installed in the VMs 3 is executed. In addition, as illustrated in the two-dimensional coordinate system of
Next, the information processing apparatus 1 determines a point that is to be a gravity point (temporary gravity point) from among the points A, B, C, D, E, and F. Specifically, the information processing apparatus 1 randomly determines gravity points the number of which is the same as the number of groups obtained by grouping of the VMs 3. For example, the number of groups obtained by grouping of the VMs 3 may be determined by the provider and input to the information processing apparatus 1 in advance. In addition, as illustrated in the two-dimensional coordinate system of
Next, the information processing apparatus 1 classifies the points A, B, C, D, E, and F into two groups. Specifically, the information processing apparatus 1 classifies the points B, C, D, and F that are points other than the points A and E that have been determined to be the gravity points, into a group including the point A or a group including the point E. In the two-dimensional coordinate system illustrated in
After that, as illustrated in
In addition, the information processing apparatus 1 performing again grouping of the points A, B, C, D, E, and F. In the two-dimensional coordinate system illustrated in
After that, the information processing apparatus 1 repeats the determination of gravity points illustrated in
Here, the result of the above-described grouping performed by the cluster analysis varies depending on content of the information that has been input when the cluster analysis is performed. That is, in the examples of
Specifically, in the examples of
Therefore, in the embodiment, the information processing apparatus 1 performs grouping of the plurality of VMs 3, based on information on the physical resources used by the plurality of VMs 3. In addition, the information processing apparatus 1 determines whether a group that includes a VM 3 to which a certain patch program (hereinafter also referred to as a first patch program) has been applied and a VM 3 to which the first patch program has not been applied exists or not. As a result, when the group that includes the VM 3 to which the first patch program has been applied and the VM 3 to which the first patch program has not been applied exists, the information processing apparatus 1 extracts the first patch program as a patch program to be applied to the VM 3 to which the first patch program has not been applied.
That is, the information processing apparatus 1 according to the embodiment obtains information on a usage amount of a physical resource (for example, a CPU) actually used by each of the VMs 3. Specifically, the information processing apparatus 1 obtains, for example, a maximum usage amount (maximum usable amount) of the CPU, which has been allocated to each of the VMs 3, in addition to the usage rate of the CPU by each of the VMs 3. The information processing apparatus 1 creates information on the physical resources which reflects the usage rate of the CPU by each of the VMs 3 and the maximum usage amount of the CPU that has been allocated to the VM 3.
As a result, the information processing apparatus 1 may perform grouping of the VMs 3, based on the created information on the physical resources. Therefore, the information processing apparatus 1 may extract a patch program desired to be applied to a VM 3, based on the information that reflects the operation status of each of the VMs 3. Thus, the information processing apparatus 1 may extract a patch program desired to be applied to the VM 3 with high reliability.
[Hardware Configuration of the Information Processing Apparatus]
A hardware configuration of the information processing apparatus 1 is described below.
The information processing apparatus 1 includes a CPU 101 that is a processor, a memory 102, an external interface (I/O unit) 103, and a storage medium 104. These units are coupled to each other through a bus 105.
The storage medium 104 stores a program 110 to execute processing (hereinafter also referred to as patch program extraction processing) of extracting a patch program to be applied to a VM 3, in a program storage area (not illustrated) of the storage medium 104.
As illustrated in
The storage medium 104 includes, for example, an information storage area 130 (hereinafter also referred to as a storage unit 130) that stores information used when the patch program extraction processing is executed. In addition, the external interface 103 communicates with the physical machine 2.
[Software Configuration of the Information Processing Apparatus]
A software configuration of the information processing apparatus 1 is described below.
The physical resource information obtaining unit 111 obtains the physical resource information 133 of each of the VMs 3. The physical resource information 133 is information on a usage amount of a physical resource used by each of the VMs 3 that are application targets of a patch program by execution of each process on the VM 3.
Specifically, the physical resource information obtaining unit 111 obtains, for example, the usage rate information 131 that is information on a usage rate of the CPU (for example, an average usage rate of the CPU in the execution of the process) by each of the VMs 3 when each of the processes is executed. In addition, the physical resource information obtaining unit 111 obtains, for example, the maximum usage amount information 132 that is a maximum usage amount (processing capability) per unit time (for example, 1 (sec)) of the CPU, which has been allocated to each of the VMs 3.
The physical resource information obtaining unit 111 obtains, for example, the physical resource information 133 that is information on a usage amount of the CPU per unit time when executing each of the processes, by multiplying the usage rate information 131 by the maximum usage amount information 132. After that, for example, the physical resource information obtaining unit 111 may store the usage rate information 131, the maximum usage amount information 132, and the physical resource information 133 in the information storage area 130. Specific examples of the usage rate information 131, the maximum usage amount information 132, and the physical resource information 133 are described later.
The virtual machine classification unit 112 classifies the VMs 3 that operate in the physical machine 2 into one or more groups, based on the physical resource information 133 obtained by the physical resource information obtaining unit 111. The virtual machine classification unit 112 classifies the VMs 3 into one or more groups, for example, by performing the cluster analysis described with reference to
The application information obtaining unit 113 obtains the application information 135 that is information on a patch program that has been already applied to the VMs 3, for each of the groups obtained by the classification by the virtual machine classification unit 112. For example, the application information obtaining unit 113 may obtain the information on the patch program that has been applied to the VMs 3, for example, by performing inquiry about the patch program for a software vendor that provides the patch program. In addition, for example, the application information obtaining unit 113 stores in the information storage area 130 the application information 135 that is the obtained information.
The patch program extraction unit 114 determines whether the application information 135 obtained by the application information obtaining unit 113 includes information indicating the existence of a group that includes a VM 3 to which the first patch program has been applied and a VM 3 to which the first patch program is not applied. As a result, when the above-described information is included in the application information 135, the patch program extraction unit 114 determines that the first patch program is a patch program to be applied to the VM 3 to which the first patch program is not applied. The patch program extraction unit 114 performs extraction of the first patch program that has been determined to be a patch program to be applied.
The information output unit 115 outputs information on the first patch program extracted by the patch program extraction unit 114 (hereinafter also referred to as the recommendation information 136) to the user terminal 20 or an output device (not illustrated) of the information processing apparatus 1.
The outline of a first embodiment is described below.
First, the information processing apparatus 1 waits until information extraction timing as illustrated in
After that, with the information extraction timing (YES in S1), the information processing apparatus 1 obtains the physical resource information 133 (S2). The information processing apparatus 1 then classifies a plurality of the VMs 3 into one or more groups, based on the physical resource information 133 obtained in S2 (S3).
That is, the physical resource information 133 is information on a usage amount of a physical resource that has been actually allocated to the VMs 3 by the physical machine 2. Therefore, the information processing apparatus 1 may perform grouping of the VMs 3 by comparing the operation statuses of the VMs 3 in equal conditions, based on the physical resource information 133.
In addition, the information processing apparatus 1 obtains the physical resource information 133 for each process in the processing of S2. The information processing apparatus 1 performs grouping of the VMs 3 based on the physical resource information 133 for each of the processes. Therefore, the grouping of the VMs 3 may be performed based on the detailed operation statuses of the VMs 3.
Therefore, the information processing apparatus 1 may cause VMs 3 the operation statuses of which are similar to each other to be included in the same group with high accuracy when the grouping of the VMs 3 is performed.
Next, the information processing apparatus 1 determines whether a group that includes a VM 3 to which the first patch program has been applied and a VM 3 to which the first patch program is not applied (S4) exists. The information processing apparatus 1 may determine whether a group that includes a VM 3 to which a patch program has been applied and a VM 3 to which the patch program is not applied exists, for example, for each of the whole patch programs to be managed.
As a result, when the information processing apparatus 1 determines that the group that includes both the VM 3 to which the first patch program has been applied and the VM 3 to which the first patch program is not applied exists (YES in S4), the information processing apparatus 1 determines that the first patch program is to be applied to the VM 3 to which the first patch program is not applied. In addition, the information processing apparatus 1 extracts the first patch program as a patch program to be applied to the VM 3 to which the first patch program is not applied (S5).
That is, the information processing apparatus 1 determines that the same patch program is assumed to be applied to the VMs 3 that have been classified into the same group. Therefore, when a VM 3 to which the first patch program has been applied and a VM 3 to which the first patch program is not applied exist in the same group, the information processing apparatus 1 determines that first patch program is desired to be applied to the VM 3 to which the first patch program is not applied. As a result, the information processing apparatus 1 may perform extraction of a patch program desired to be newly applied to a VM 3 by merely comparing application statuses of patch programs applied to the respective VMs 3 that have been classified into the same group.
When the information processing apparatus 1 determines that a group that includes both the VM 3 to which the first patch program has been applied and the VM 3 to which the first patch program is not applied does not exist (NO in S4), the information processing apparatus 1 does not execute the processing of S5.
As described above, in the first embodiment, the information processing apparatus 1 includes the physical resource information obtaining unit 111 that obtains the physical resource information 133 of each of the VMs 3. In addition, the information processing apparatus 1 includes the virtual machine classification unit 112 that classifies a plurality of VMs 3 into one or more groups, based on the obtained physical resource information 133.
In addition, the information processing apparatus 1 includes the application information obtaining unit 113 that obtains the application information 135 that is information on a patch program that has been applied to the VMs 3, for each of the groups. In addition, the information processing apparatus 1 includes the patch program extraction unit 114 that determines whether the obtained application information 135 includes information indicating the existence of a group including a VM 3 to which the first patch program has been applied and a VM 3 to which the first patch program is not applied. In addition, the patch program extraction unit 114 extracts the first patch program as a patch program to be applied to the VM 3 to which the first patch program is not applied, when the patch program extraction unit 114 has determined that the above-described information is included in the application information 135.
As a result, the information processing apparatus 1 may perform extraction of a patch program desired to be applied to a VM 3, based on the information on which the operation status in each of the VMs 3 has been reflected. Therefore, the information processing apparatus 1 may perform extraction of a patch program desired to be applied to a VM 3 with high reliability.
The details of the first embodiment are described below.
[Details of the Processing of S2]
First, the details of the processing S2 in
For example, in the usage rate information 131 illustrated in
The usage rate information 131 illustrated in
A specific example of the maximum usage amount information 132 is described below.
Specifically, in the maximum usage amount information 132 illustrated in
With reference to
That is, the physical resource information obtaining unit 111 obtains the maximum usage amount information 132 described with reference to
Specifically, in the physical resource information 133 illustrated in
That is, the usage rate information 131 illustrated in
The physical resource information 133 illustrated in
[Details of the Processing of S3]
The details of the processing of S3 in
In this case, the virtual machine classification unit 112 refers to, for example, the physical resource information 133 described with reference to
As described with reference to
As a result, the virtual machine classification unit 112 may perform grouping of the VMs 3 so that the operation status of each of the VMs 3 is reflected on the grouping with high accuracy. A specific example of the group information 134 when information included in the physical resource information 133 illustrated in
Specifically, the group information 134 illustrated in
[Details of the Processing in S4 and S5]
The details of the processing in S4 and S5 of
Specifically, the application information 135 illustrated in
That is, the patch program extraction unit 114 extracts a patch program desired to be newly applied to a VM 3, based on information included in the application information 135 as illustrated in
With reference to
In addition, when the patch program extraction unit 114 has determined that the above-described group exists (YES in S32), the patch program extraction unit 114 determines whether a proportion of the VMs 3 to which the first patch program has been applied to the VMs 3 included in the group is a first threshold value or more (S33). As a result, when the patch program extraction unit 114 has determined that the proportion of the VMs 3 to which the first patch program has been applied is the first threshold value or more (YES in S33), the patch program extraction unit 114 extracts the first patch program as a patch program to be applied to the VM 3 to which the first patch program is not applied (S34).
On the other hand, when a group that includes both the VM 3 to which the first patch program has been applied and the VM 3 to which the first patch program is not applied does not exist (NO in S32), the patch program extraction unit 114 does not executes the processing in S34. Similarly, when the patch program extraction unit 114 has determined that the proportion of the VMs 3 to which the first patch program has been applied is less than the first threshold value (No in S33), the patch program extraction unit 114 does not execute the processing of S34. A specific example of the processing of S32 to S34 is described below with reference to the group information 134 described in
[Specific Example of the Processing in S32 to S34]
The group information 134 illustrated in
For example, first, the patch program extraction unit 114 refers to information corresponding to the VMs included in the group 1 (VMs 3A, 3B, 3D, and 3E), from among pieces of information included in the application information 135 illustrated in
Next, the patch program extraction unit 114 obtains information indicating that the patch (B) is applied to the VMs 3A, 3B, and 3D from among the VMs 3 included in the group 1. Therefore, the patch program extraction unit 114 determines that the proportion of the VMs 3 to which the patch (B) has been applied to the VMs 3 included in the group 1 is 75(%) (YES in S32 and S33). Thus, the patch program extraction unit 114 extracts the patch (B) as a patch program to be applied to the VM 3E that is a VM to which the patch (B) is not applied (S34).
In addition, the patch program extraction unit 114 obtains information indicating that the patch (C) is applied to the VM 3B, from among the VMs 3 included in the group 1. Therefore, the patch program extraction unit 114 determines that the proportion of the VM 3 to which the patch (C) has been applied to the VMs 3 included in the group 1 is 25(%) (YES in S32 and NO in S33). Thus, the patch program extraction unit 114 does not extract the patch (C) as a patch program to be applied to the VMs 3 to which the patch is not applied.
Next, the patch program extraction unit 114 refers to information corresponding to the VMs included in the group 2 (VMs 3C and 3F), from among the pieces of information included in the application information 135 illustrated in
In addition, the patch program extraction unit 114 obtains information indicating that the patch (C) is applied to the VM 3C, from among the VMs 3 included in the group 1. Therefore, the patch program extraction unit 114 determines that the proportion of the VM 3 to which the patch (C) has been applied to the VMs 3 included in the group 1 is 50(%) (YES in S32 and S33). Thus, the patch program extraction unit 114 extracts the patch (C) as a patch program to be applied to the VM 3E to which the patch is not applied (S34).
With reference to
As a result, the administrator of each of the VMs 3 (A or B in the example of
As described above, in the first embodiment, the information processing apparatus 1 includes the physical resource information obtaining unit 111 that obtains the physical resource information 133 of each of the VMs 3. In addition, the information processing apparatus 1 includes the virtual machine classification unit 112 that classifies a plurality of VMs 3 into one or more groups based on the obtained physical resource information 133.
In addition, the information processing apparatus 1 includes the application information obtaining unit 113 that obtains the application information 135 that is information on a patch program applied to the VMs 3, for each of the groups. In addition, the information processing apparatus 1 includes the patch program extraction unit 114 that determines whether the obtained application information 135 includes information indicating the existence of a group including a VM 3 to which the first patch program has been applied and a VM 3 to which the first patch program is not applied. When the patch program extraction unit 114 has determined that the above-described information is included in the obtained application information 135, the patch program extraction unit 114 extracts the first patch program as a patch program to be applied to the VM 3 to which the first patch program is not applied.
As a result, the information processing apparatus 1 may extract a patch program to be applied to a VM, based on information on which the operation status of each of VMs has been reflected accurately. Therefore, the information processing apparatus 1 may extract a patch program to be applied to a VM with high reliability.
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 to 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 embodiments of the present invention have 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 |
---|---|---|---|
2015-116487 | Jun 2015 | JP | national |