Control device, program, and control method
The control device and method address the challenge of scaling stateful applications by dynamically allocating and switching virtual resources within physical limits, ensuring efficient and seamless resource management.
Patent Information
- Application Number
- JP2023200725
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-11-28
- Publication Date
- 2025-09-04
- Estimated Expiration
- 2042-03-30
AI Technical Summary
Current virtualization technologies face challenges in efficiently scaling stateful applications due to the inability to dynamically change resources while maintaining stateful information, leading to suboptimal resource utilization and unpredictable performance degradation.
A control device and method that allocates virtual resources exceeding physical host limits, with an upper limit control mechanism to ensure total resource usage does not exceed physical capacity, and employs execution unit switching with synchronization to maintain stateful information during scaling.
Enables efficient resource utilization and seamless scaling of applications by preventing overcommitment and maintaining stateful information through dynamic resource adjustments and execution unit switching.
Smart Images

Figure 0007734174000004 
Figure 0007734174000005 
Figure 0007734174000006
Abstract
Description
[Technical Field]
[0001] The present invention relates to a control device, a program, and a control method. [Background technology]
[0002] Patent Document 1 describes a technology for controlling fluctuations in resource allocation amounts for virtual machines. Patent Document 2 describes a technology for controlling resource allocation so as to prevent overcommitment. Patent Document 3 describes a technology for realizing appropriate allocation of virtual machines. [Prior art document] [Patent documents] [Patent Document 1] JP 2012-190109 A [Patent Document 2] JP 2014-130413 A [Patent Document 3] JP 2018-028746 A Summary of the Invention [Means for solving the problem]
[0003] According to one embodiment of the present invention, there is provided a control device. The control device may include a resource allocation unit that allocates virtual resources to multiple guest OSs running on a host in an amount that exceeds the amount of physical resources of the host. The control device may also include an upper limit control unit that controls an upper limit of the amount of the virtual resources available to each of the multiple guest OSs so that the total amount of the virtual resources used by the multiple guest OSs does not exceed the amount of physical resources of the host.
[0004] The upper limit control unit may adjust an upper limit of the available amount of the virtual resources for each of the multiple guest OSs according to the status of the multiple guest OSs, within a range in which the total amount of the virtual resources used by the multiple guest OSs does not exceed the amount of the physical resources of the host. When a usage rate of the virtual resources for a first guest OS among the multiple guest OSs falls below a predetermined threshold, the upper limit control unit may decrease the upper limit of the available amount of the virtual resources for the first guest OS and increase the upper limit of the available amount of the virtual resources for a second guest OS among the multiple guest OSs. When a usage rate of the virtual resources for a first guest OS among the multiple guest OSs exceeds a predetermined threshold, the upper limit control unit may decrease the upper limit of the available amount of the virtual resources for a second guest OS among the multiple guest OSs and increase the upper limit of the available amount of the virtual resources for the first guest OS.
[0005] The resource allocation unit may allocate to the multiple guest OSs virtual CPU resources in an amount that exceeds the amount of CPU resources of the host, and the upper limit control unit may control an upper limit of the amount of virtual CPU resources available to each of the multiple guest OSs so that a total of the virtual CPU resources used by the multiple guest OSs does not exceed the amount of CPU resources of the host. The upper limit control unit may reduce the upper limit of the amount of virtual resources available to the first guest OS by reducing the number of parallel processes through startup management of a CPU control process in the first guest OS of the multiple guest OSs.
[0006] The resource allocation unit may allocate to the plurality of guest OSs an amount of virtual memory resource that exceeds the amount of memory resource possessed by the host, and the upper limit control unit may control an upper limit of the amount of the virtual memory resource available to each of the plurality of guest OSs so that a total of the amounts of the virtual memory resource used by the plurality of guest OSs does not exceed the amount of the memory resource of the host. The upper limit control unit may cause a first guest OS of the plurality of guest OSs to reconfigure its memory area, thereby reducing the upper limit of the amount of the virtual memory resource available to the first guest OS.
[0007] According to one embodiment of the present invention, there is provided a control device. The control device may include an execution unit generation unit that allocates host resources and generates an execution unit of an application on the host. The control device may include a change determination unit that determines to change the amount of resources of a first execution unit generated by the execution unit generation unit. When the change determination unit determines to change the amount of resources, the control device may include a change control unit that generates a second execution unit that has the same settings as the first execution unit but is allocated a different amount of resources than the first execution unit, executes synchronization processing between the first execution unit and the second execution unit, and then switches the execution entity of the application of the first execution unit to the second execution unit.
[0008] When the change determination unit determines to reduce the resource amount of the first execution unit, the change control unit may generate the second execution unit having the same settings as the first execution unit but allocated with a smaller amount of resources than the first execution unit, execute synchronization processing between the first execution unit and the second execution unit, and then switch the execution entity of the application of the first execution unit to the second execution unit.When the change determination unit determines to increase the resource amount of the first execution unit, the change control unit may generate the second execution unit having the same settings as the first execution unit but allocated with a larger amount of resources than the first execution unit, execute synchronization processing between the first execution unit and the second execution unit, and then switch the execution entity of the application of the first execution unit to the second execution unit.
[0009] The execution unit generation unit may generate the first execution unit using an execution unit template including allocated resource information, and the change control unit may generate the second execution unit using the execution unit template with the allocated resource information changed. The change control unit may switch the execution entity of the application in the first execution unit to the second execution unit, and then delete the first execution unit. After switching the execution entity of the application in the first execution unit to the second execution unit, the change control unit may execute synchronization processing between the second execution unit and the first execution unit in response to a predetermined condition being satisfied, and then switch the execution entity of the application in the second execution unit to the first execution unit. The execution unit may be a virtual machine or a container.
[0010] According to one embodiment of the present invention, there is provided a program for causing a computer to function as the control device.
[0011] According to one embodiment of the present invention, there is provided a control method executed by a computer. The control method may include a resource allocation step of allocating, to a plurality of guest OSs running on a host, virtual resources in an amount that exceeds the amount of physical resources of the host. The control method may also include an upper limit control step of controlling an upper limit of an amount of the virtual resources available to each of the plurality of guest OSs so that a total amount of the virtual resources used by the plurality of guest OSs does not exceed the amount of the physical resources of the host.
[0012] According to one embodiment of the present invention, there is provided a control method executed by a computer. The control method may include an execution unit generation step of allocating host resources and generating an execution unit of an application on the host. The control method may include a change determination unit that determines to change the amount of resources of the execution unit generated in the execution unit generation step. The control method may include a resource change control step of generating another execution unit that has the same settings as the execution unit but is allocated a different amount of resources than the execution unit, performing synchronization processing between the execution unit and the other execution unit, and then switching the execution entity of the application of the execution unit to the other execution unit.
[0013] The above summary of the invention does not list all of the necessary features of the present invention, and subcombinations of these features may also constitute inventions. [Brief explanation of the drawings]
[0014] [Figure 1] 1 shows a schematic diagram of an example of a scale control device 100. [Figure 2] 2 is an explanatory diagram for explaining the control content by the scale control device 100. FIG. [Figure 3] 2 is an explanatory diagram for explaining the control content by the scale control device 100. FIG. [Figure 4] 1 shows an example of a functional configuration of a scale control device 100. [Figure 5]2 is an explanatory diagram for explaining the control content by the scale control device 100. FIG. [Figure 6] 2 is an explanatory diagram for explaining the control content by the scale control device 100. FIG. [Figure 7] 1 shows an example of a functional configuration of a scale control device 100. [Figure 8] 1 shows an example of a hardware configuration of a computer 1200 that functions as the scale control device 100. DETAILED DESCRIPTION OF THE INVENTION
[0015] In hypervisor-based virtualization, scaling methods are defined to change the resources available to applications when there is an increase or decrease in operation (increase or decrease in service usage). Furthermore, in NFV (Network Functions Virtualization), from the perspective of required reliability and performance, it is common to avoid overlapping resource allocation to multiple applications to avoid unpredictable performance degradation. Defined scaling methods include scale up / down and scale out / in. Scale up / down refers to increasing or decreasing the amount of resources allocated to an instance. Scale out / in refers to increasing or decreasing the number of instances. Logically, scale up / down has advantages over scale out / in in that it offers greater flexibility in resource control and minimizes changes to application configurations.
[0016] Currently, flexible resource control is not possible when scaling up or down stateful applications because VM virtualization does not allow for direct dynamic resource changes. As a result, it is not possible to optimally change resources while maintaining stateful information.
[0017] In this embodiment, for example, a guest OS is started on a host with overcommitment of resources such as CPU and memory allowed. Then, by controlling the upper limit of resources that can be used internally from the external scale control device 100, even with overcommitment, the use of virtual resources that exceeds the upper limit of host resources is prevented, thereby realizing efficient resource use.
[0018] Furthermore, for example, when changing the resources of an application execution unit (such as a VM (Virtual Machine), container, etc.) on a host, an execution unit with the same settings except for the size is generated, the necessary information is synchronized, and then the old execution unit is deleted. This makes it possible to scale down while maintaining stateful information, contributing to the realization of optimal resource changes.
[0019] The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the scope of the invention according to the claims. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
[0020] FIG. 1 schematically illustrates an example of a scale control device 100. The scale control device 100 may be an example of a control device. The scale control device 100 performs scaling control to change resources available to applications on a host. The scale control device 100 may target multiple hosts. Although FIG. 1 illustrates a host 310 and a host 350, this is merely an example, and the number of hosts targeted by the scale control device 100 is not limited to this, and may be three or more.
[0021] The scale control device 100 may execute control over the host 310 and the host 350 via the virtualization control device 200. The virtualization control device 200 may be a controller for the host to be virtualized. The scale control device 100 and the virtualization control device 200 may be integrated. In other words, the scale control device 100 may have the functions of the virtualization control device 200.
[0022] For example, the scale control device 100 allocates virtual resources to multiple guest OSs running on the host 310 in an amount that exceeds the amount of physical resources that the host 310 has, and controls the upper limit of the amount of virtual resources that each of the multiple guest OSs can use so that the total amount of virtual resources used by the multiple guest OSs does not exceed the amount of physical resources of the host 310.
[0023] For example, when changing the amount of resources of a first execution unit on the host 310, the scale control device 100 generates a second execution unit on the host 350 that has the same settings as the first execution unit but is assigned a different amount of resources than the first execution unit, performs synchronization processing between the first execution unit and the second execution unit, and then switches the execution entity of the application of the first execution unit to the second execution unit.
[0024] Fig. 2 is an explanatory diagram for explaining the control content by the scale control device 100. For convenience of explanation, Fig. 2 illustrates an example in which a host 310 has six CPU resources 320, and a guest OS 410 and a guest OS 450 are configured on the host 310.
[0025] The scale control device 100 allocates virtual CPU resources exceeding the CPU resources 320 to the guest OS 410 and the guest OS 450. In the example shown in Fig. 2, four virtual CPU resources 420 are allocated to the guest OS 410, and four virtual CPU resources 460 are allocated to the guest OS 450.
[0026] The scale control device 100 controls the upper limit of the available amount of virtual CPU resources for each of the guest OS 410 and the guest OS 450 so that the total amount of virtual CPU resources used by the guest OS 410 and the guest OS 450 does not exceed the amount of CPU resources 320. The scale control device 100 may control the upper limit of the available amount of virtual CPU resources by controlling the process management 412 of the guest OS 410 and the process management 452 of the guest OS 450. In the example shown in FIG. 2 , the upper limit for the guest OS 410 is set to 4, and the upper limit for the guest OS 450 is set to 2.
[0027] The scale control device 100 may adjust the upper limit of the available amount of virtual CPU resources for each of the guest OSs 410 and 450 depending on the status of the guest OSs 410 and 450, within a range where the total amount of virtual CPU resources used by the guest OSs 410 and 450 does not exceed the amount of CPU resources 320.
[0028] The scale control device 100 may monitor the usage status of the virtual CPU resource 420 by the application process 414. The scale control device 100 may monitor the usage status of the virtual CPU resource 460 by the application process 454.
[0029] For example, when one of the four virtual CPU resources 420 in the guest OS 410 is not being used, the scale control device 100 changes the upper limit of the available virtual CPU resources of the guest OS 410 from 4 to 3. This makes it possible to easily achieve scale-down while maintaining stateful information. For example, the scale control device 100 may reduce the upper limit of the available virtual CPU resources of the guest OS 410 by reducing the number of parallel processes through startup management of the CPU control process in the guest OS 410. Then, the scale control device 100 may change the upper limit of the available virtual CPU resources of the guest OS 450 from 2 to 3. This makes it possible to easily achieve scale-up.
[0030] Fig. 3 is an explanatory diagram for explaining the control content by the scale control device 100. For convenience of explanation, Fig. 3 illustrates an example in which a host 310 has six memory resources 330, and a guest OS 410 and a guest OS 450 are configured on the host 310.
[0031] The scale control device 100 allocates virtual memory resources to the guest OS 410 and the guest OS 450 in an amount exceeding the memory resources 330. In the example shown in Fig. 2, four virtual memory resources 430 are allocated to the guest OS 410, and four virtual memory resources 470 are allocated to the guest OS 450.
[0032] The scale control device 100 controls the upper limit of the available amount of virtual memory resources for each of the guest OS 410 and the guest OS 450 so that the total amount of virtual memory resources used by the guest OS 410 and the guest OS 450 does not exceed the amount of memory resources 330. The scale control device 100 may control the upper limit of the available amount of virtual memory resources by controlling the process management 412 of the guest OS 410 and the process management 452 of the guest OS 450. In the example shown in Fig. 3, the upper limit for the guest OS 410 is set to 4, and the upper limit for the guest OS 450 is set to 2.
[0033] The scale control device 100 may adjust the upper limit of the available amount of virtual memory resources for each of the guest OS 410 and the guest OS 450 depending on the status of the guest OS 410 and the guest OS 450, within the range where the total amount of virtual memory resources used by the guest OS 410 and the guest OS 450 does not exceed the amount of memory resources 330.
[0034] The scale control device 100 may monitor the usage status of the virtual memory resource 430 by the application process 414. The scale control device 100 may monitor the usage status of the virtual memory resource 470 by the application process 454.
[0035] For example, when two of the four virtual memory resources 430 in the guest OS 410 are not being used, the scale control device 100 changes the upper limit of the available virtual memory resource of the guest OS 410 from 4 to 2. This makes it possible to easily achieve scale-down while maintaining stateful information. For example, the scale control device 100 may have the guest OS 410 reconfigure its memory area to reduce the upper limit of the available virtual memory resource of the guest OS 410. In this case, an area for the reconfiguration is required, and the maximum amount is half of the allocated amount. Then, the scale control device 100 may change the upper limit of the available virtual memory resource of the guest OS 450 from 2 to 4. This makes it possible to easily achieve scale-up.
[0036] 4 shows an example of the functional configuration of the scale control device 100. The scale control device 100 includes a storage unit 102, a registration unit 104, a resource allocation unit 106, a performance monitoring unit 108, and an upper limit control unit 110.
[0037] The registration unit 104 registers various types of information. For example, the registration unit 104 registers various types of information in accordance with instructions from an operator of the scale control device 100. For example, the registration unit 104 registers information about the physical resources of the host to be managed. For example, the registration unit 104 registers information about a guest OS to be created on the host. For example, the registration unit 104 registers an initial value for the amount of virtual resources to be allocated to multiple guest OSs running on the host. The information registered by the registration unit 104 is stored in the storage unit 102.
[0038] The resource allocation unit 106 allocates, to multiple guest OSs running on the host, an amount of virtual resources that exceeds the amount of physical resources possessed by the host. The resource allocation unit 106 may automatically determine the amount of virtual resources to allocate to each of the multiple guest OSs based on information about the host's physical resources and information about the multiple guest OSs, both stored in the storage unit 102. If the registration unit 104 has registered initial values for the amount of virtual resources to be allocated to the multiple guest OSs, the resource allocation unit 106 may allocate virtual resources to each of the multiple guest OSs in accordance with the information.
[0039] The performance monitoring unit 108 monitors the performance of the host and multiple guest OSs created on the host. The performance monitoring unit 108, for example, monitors the resource usage status by the host. For example, the performance monitoring unit 108 monitors the virtual resource usage status of each of the multiple guest OSs. The performance monitoring unit 108 may monitor the service operation status of applications running on each of the multiple guest OSs. Examples of items monitored by the performance monitoring unit 108 include, but are not limited to, CPU usage rate, memory usage rate, network bandwidth usage rate, number of sessions, and throughput.
[0040] The upper limit control unit 110 controls the upper limit of the amount of virtual resources available to each of the multiple guest OSs so that the total amount of virtual resources used by the multiple guest OSs does not exceed the amount of physical resources of the host. The upper limit control unit 110 may automatically determine an initial value for the upper limit of the amount of virtual resources available to each of the multiple guest OSs based on information about the physical resources of the host and information about the multiple guest OSs stored in the storage unit 102. The upper limit control unit 110 may set an upper limit of the amount of virtual resources available to each of the multiple guest OSs in accordance with the determined initial value.
[0041] The resource allocation unit 106 allocates virtual resources to multiple guest OSs in an amount that exceeds the amount of physical resources of the host, while the upper limit control unit 110 controls the upper limit of the available amount of virtual resources so that it does not exceed the amount of physical resources of the host, thereby providing an environment in which scaling up and down can be easily achieved.
[0042] The upper limit control unit 110 may adjust the upper limit of the amount of virtual resources available to each of the multiple guest OSes, within a range in which the total amount of virtual resources used by the multiple guest OSes does not exceed the amount of physical resources of the host, in accordance with the status of the multiple guest OSes monitored by the performance monitoring unit 108. This makes it possible to scale up and down each of the multiple guest OSes in accordance with changes in the status of the multiple guest OSes.
[0043] For example, when the utilization rate of the virtual resources in a first guest OS among the multiple guest OSs falls below a predetermined threshold, the upper limit control unit 110 may reduce the upper limit of the available amount of virtual resources for the first guest OS. The utilization rate of the virtual resources may be the ratio of the actual utilization amount of the virtual resources to the upper limit of the available amount of virtual resources. The threshold may be registered by the registration unit 104. The upper limit control unit 110 may increase the upper limit of the available amount of virtual resources for a second guest OS among the multiple guest OSs by the amount of the reduction in the upper limit of the available amount of virtual resources for the first guest OS. This makes it possible to release part of the upper limit of the virtual resources when the load on the first guest OS is not high, and to allocate the virtual resources to another guest OS.
[0044] The upper limit control unit 110 may determine whether or not a portion of the upper limit can be released in a first guest OS among a plurality of guest OSes based on the set upper limit on the amount of virtual resources used and the actual amount of virtual resources used, and if it determines that the portion can be released, may reduce the upper limit on the amount of virtual resources available to the first guest OS.
[0045] For example, when the utilization rate of virtual resources in a first guest OS among the multiple guest OSs exceeds a predetermined threshold, the upper limit control unit 110 may decrease the upper limit of the available amount of virtual resources in a second guest OS among the multiple guest OSs and increase the upper limit of the available amount of virtual resources in the first guest OS. When the utilization rate of virtual resources in the first guest OS exceeds the predetermined threshold and the upper limit of the available amount of virtual resources in the first guest OS is less than the amount of virtual resources allocated to the first guest OS, the upper limit control unit 110 may decrease the upper limit of the available amount of virtual resources in the second guest OS and increase the upper limit of the available amount of virtual resources in the first guest OS. For example, the upper limit control unit 110 may decrease the upper limit of the available amount of virtual resources in a guest OS other than the first guest OS that has the lowest utilization rate of virtual resources among the multiple guest OSs. This allows the amount of virtual resources available to the first guest OS to be increased within the amount of virtual resources allocated to the first guest OS when the load on the first guest OS increases.
[0046] 2, the resource allocation unit 106 may allocate to multiple guest OSs virtual CPU resources in amounts that exceed the amount of CPU resources possessed by the host, and the upper limit control unit 110 may control the upper limit of the amount of virtual CPU resources available to each of the multiple guest OSs so that the total amount of virtual CPU resources used by the multiple guest OSs does not exceed the amount of CPU resources of the host. For example, the upper limit control unit 110 may reduce the upper limit of the amount of virtual resources available to the guest OSs by reducing the number of parallel processes through startup management of the CPU control process in the guest OSs. For example, the upper limit control unit 110 may increase the upper limit of the amount of virtual resources available to the guest OSs by increasing the number of parallel processes through startup management of the CPU control process in the guest OSs.
[0047] As illustrated in FIG. 3, the resource allocation unit 106 may allocate to multiple guest OSs virtual memory resources in amounts that exceed the amount of memory resources possessed by the host, and the upper limit control unit 110 may control the upper limit of the amount of virtual memory resources available to each of the multiple guest OSs so that the total amount of virtual memory resources used by the multiple guest OSs does not exceed the amount of memory resources of the host. For example, the upper limit control unit 110 may cause the guest OSs to reconfigure their memory areas to reduce the upper limit of the amount of virtual memory resources available to the guest OSs. In this case, an area for the reconfiguration is required, and the maximum upper limit of the amount of available virtual memory resources becomes half of the allocated memory resources, but the reconfiguration allows unnecessary memory to be completely released. Note that the upper limit control unit 110 does not have to perform the reconfiguration.
[0048] 5 is an explanatory diagram for explaining the control content by the scale control device 100. Since conventional technology does not allow a direct change between state 610 and state 620, the scale control device 100 adds state 630 to enable a change between state 610 and state 620.
[0049] If the scale control device 100 determines that the execution unit 510 needs to have more resources than the execution unit 510, it transitions the execution unit 510 to state 630. Specifically, the scale control device 100 creates an execution unit 520 on the host 350 that has the same settings as the execution unit 510 except for its size, synchronizes the execution unit 510 with the execution unit 520, switches the execution entity of the application of the execution unit 510 to the execution unit 520, and deletes the execution unit 510, thereby transitioning the execution unit 510 to state 620. The synchronization process allows necessary information, such as stateful information, to be copied to the execution unit 520, making it possible to easily scale up the execution unit 510 while maintaining the stateful information. Taking future scaling into consideration, the execution unit 510 may be switched to the execution entity and maintained in state 630 without deleting the execution unit 510. As a result, after switching the execution subject of the application to execution unit 520, if it is determined that the resources of execution unit 520 can be reduced, synchronization processing is performed between execution unit 520 and execution unit 510, and the execution subject of the application is switched to execution unit 510, thereby easily achieving scale-down while maintaining stateful information.
[0050] If the start state is state 620, and the scale control device 100 determines that the resources of the execution unit 520 can be reduced, the scale control device 100 transitions the execution unit 520 to state 630. That is, the scale control device 100 generates an execution unit 510 on the host 310 that has the same settings as the execution unit 520 except for the size, performs synchronization processing between the execution unit 520 and the execution unit 510, switches the execution entity of the application of the execution unit 520 to the execution unit 510, and deletes the execution unit 520, thereby transitioning the execution unit 520 to state 610. The synchronization processing allows necessary information such as stateful information to be copied to the execution unit 510, making it possible to easily achieve scale-down while maintaining the stateful information. In this case, too, taking into account future scaling, the state 630 may be maintained without deleting the execution unit 520 after switching the execution entity of the application. As a result, after switching the execution subject of the application to execution unit 510, if it is determined that an increase in the resources of execution unit 510 is necessary, synchronization processing is performed between execution unit 510 and execution unit 520, and the execution subject of the application is switched to execution unit 520, thereby easily achieving scale-up while maintaining stateful information.
[0051] 6 is an explanatory diagram for explaining the control content by the scale control device 100. Here, differences from FIG. 5 will be mainly explained. In this example, the scale control device 100 generates an execution unit 510 and an execution unit 520 on one host 310.
[0052] If the start state is state 640 and the scale control device 100 determines that an increase in resources for the execution unit 510 is necessary, the scale control device 100 transitions to state 660. That is, the scale control device 100 generates an execution unit 520 on the host 310 that has the same settings as the execution unit 510 except for the size, executes synchronization processing between the execution unit 510 and the execution unit 520, switches the execution entity of the application of the execution unit 510 to the execution unit 520, and deletes the execution unit 510, thereby transitioning to state 650. Note that, in consideration of future scaling, the state 660 may be maintained without deleting the execution unit 510 after switching the execution entity of the application.
[0053] If the start state is state 620 and the scale control device 100 determines that the resources of the execution unit 520 can be reduced, the scale control device 100 transitions the execution unit 520 to state 630. That is, the scale control device 100 generates an execution unit 510 on the host 310 that has the same settings as the execution unit 520 except for the size, executes synchronization processing between the execution unit 520 and the execution unit 510, switches the execution entity of the application of the execution unit 520 to the execution unit 510, and deletes the execution unit 520, thereby transitioning the execution unit 520 to state 610. In this case, too, taking future scaling into consideration, the execution entity of the application may be switched, and the execution unit 520 may be maintained in state 660 without being deleted.
[0054] 7 shows an example of the functional configuration of the scale control device 100. The scale control device 100 includes a storage unit 112, a registration unit 114, an execution unit generation unit 116, a performance monitoring unit 118, a change determination unit 120, and a change control unit 122.
[0055] The registration unit 114 registers various types of information. For example, the registration unit 114 registers various types of information in accordance with instructions from an operator of the scale control device 100. For example, the registration unit 114 registers information about the physical resources of the managed hosts. For example, the registration unit 114 registers information about execution units to be generated on the hosts. For example, the registration unit 114 registers multiple execution unit templates to be used to generate execution units. The information registered by the registration unit 114 is stored in the storage unit 112.
[0056] The execution unit generation unit 116 allocates host resources and generates an execution unit of an application on the host. The execution unit generation unit 116 generates, for example, a VM on the host. The execution unit generation unit 116 generates, for example, a container on the host.
[0057] The performance monitoring unit 118 monitors the performance of the host and the execution units created on the host. The performance monitoring unit 118 monitors, for example, the resource usage status by the host. The performance monitoring unit 118 may monitor the usage status of virtual resources in the execution units. The performance monitoring unit 118 may monitor the service operation status of applications running on the execution units. Examples of items monitored by the performance monitoring unit 118 include, but are not limited to, CPU usage rate, memory usage rate, network bandwidth usage rate, number of sessions, and throughput.
[0058] The change determining unit 120 determines to change the resource amount of the execution unit generated by the execution unit generating unit 116. The change determining unit 120 may determine to change the resource amount of the execution unit based on the monitoring results of the performance monitoring unit 118.
[0059] For example, when performance information monitored by the performance monitoring unit 118 falls below a predetermined threshold, the change determining unit 120 determines to reduce the resource amount of the execution unit. For example, when performance information monitored by the performance monitoring unit 118 exceeds a predetermined threshold, the change determining unit 120 determines to increase the resource amount of the execution unit. The threshold may be registered by the registration unit 114.
[0060] The change control unit 122 executes change control when the change determination unit 120 determines to change the resource amount. The change control unit 122 generates another execution unit that has the same settings as the execution unit for which it has determined to change the resource amount but is assigned a different amount of resources than the execution unit, executes synchronization processing between the execution unit and the other execution unit, and then switches the execution entity of the application of the execution unit to the other execution unit. This makes it possible to easily achieve scale-down or scale-up while maintaining stateful information.
[0061] For example, when the change determination unit 120 determines to change the resource amount of a first execution unit, the change control unit 122 generates a second execution unit that has the same settings as the first execution unit but is assigned a different amount of resources than the first execution unit, executes synchronization processing between the first execution unit and the second execution unit, and then switches the execution entity of the application of the first execution unit to the second execution unit. The change control unit 122 may generate the second execution unit on a host different from the host on which the first execution unit is generated. The change control unit 122 may also generate the second execution unit on the host on which the first execution unit is generated.
[0062] The execution unit generation unit 116 may generate a first execution unit using one execution unit template including allocated resource information stored in the storage unit 112. The change control unit 122 may generate a second execution unit using the one execution unit template with the allocated resource information changed.
[0063] The change control unit 122 may switch the execution subject of the application of the first execution unit to the second execution unit, and then delete the first execution unit, thereby increasing the resources that can be allocated to other execution units.
[0064] After switching the execution entity of the application of the first execution unit to the second execution unit, the change control unit 122 may maintain the first execution unit without deleting it. After switching the execution entity of the application of the first execution unit to the second execution unit, the change control unit 122 may execute synchronization processing between the second execution unit and the first execution unit in response to a predetermined condition being satisfied, and then switch the execution entity of the application of the second execution unit to the first execution unit. The predetermined condition may be satisfied when the change determination unit 120 determines to change the resource amount of the second execution unit. This makes it possible to achieve efficient scale-up and scale-down when the scale-up and scale-down of the first execution unit occurs in a relatively short period of time.
[0065] A specific example will be explained below. Table 1 below shows the resource utilization rates of hosts monitored by the performance monitoring unit 118. Here, an example is shown in which hosts A and B are the targets of monitoring.
[0066] [Table 1]
[0067] Table 2 below shows the allocated resources and service operation status of applications running on hosts monitored by the performance monitoring unit 118. Here, an example is shown in which application A and application B running on host A are the targets of monitoring.
[0068] [Table 2]
[0069] Table 3 below shows a plurality of run unit templates stored in the storage unit 112. Here, instance flavor A and instance flavor B are shown as examples of run unit templates.
[0070] [Table 3]
[0071] As shown in Table 1, in this example, Host A and Host B have CPU resources: 32, memory resources: 512, and NW (Network) resources (NW bandwidth): 10. Host A uses 24 CPU resources out of 32 CPU resources, 384 memory resources out of 512 memory resources, and 3 NW resources out of 10 NW resources.
[0072] As shown in Table 2, 16 CPU resources, 256 memory resources, and 2 NW resources are allocated to application A, and 8 CPU resources, 128 memory resources, and 1 NW resource are allocated to application B.
[0073] The change determining unit 120 refers to, for example, Table 2 and determines to reduce the resource amount of application A in response to the performance information of the session or throughput falling below a predetermined threshold (for example, half or less of the capacity (45%)). The change control unit 122 generates an execution unit on host B by using flavor B, generates application A', and executes application settings equivalent to those of application A. The change control unit 122 synchronizes stateful information between application A on host A and application A' on host B. After the synchronization is completed, the change control unit 122 performs a switching process from application A to application A'. The change control unit 122 may perform the switching process using a switching method in an existing redundant configuration. After performing the switching process, the change determining unit 120 may delete application A. Note that the change determining unit 120 may maintain application A after performing the switching process, taking into account future scaling.
[0074] The scale control device 100 may have both the functions described in Fig. 4 and the functions described in Fig. 7. In this case, the storage unit 102 may also function as the storage unit 112, the registration unit 104 may also function as the registration unit 114, and the performance monitor 108 may also function as the performance monitor 118, and the scale control device 100 may include the storage unit 102, the registration unit 104, the resource allocation unit 106, the performance monitor 108, the upper limit control unit 110, the execution unit generation unit 116, the change determination unit 120, and the change control unit 122.
[0075] 8 schematically shows an example of the hardware configuration of a computer 1200 that functions as the scale control device 100. A program installed on the computer 1200 can cause the computer 1200 to function as one or more "parts" of the apparatus according to the present embodiment, or can cause the computer 1200 to perform operations associated with the apparatus according to the present embodiment or one or more "parts," and / or can cause the computer 1200 to perform a process according to the present embodiment or steps of the process. Such a program can be executed by the CPU 1212 to cause the computer 1200 to perform specific operations associated with some or all of the blocks in the flowcharts and block diagrams described herein.
[0076] The computer 1200 according to this embodiment includes a CPU 1212, a RAM 1214, and a graphics controller 1216, which are interconnected by a host controller 1210. The computer 1200 also includes input / output units such as a communications interface 1222, a storage device 1224, a DVD drive, and an IC card drive, which are connected to the host controller 1210 via an input / output controller 1220. The DVD drive may be a DVD-ROM drive, a DVD-RAM drive, or the like. The storage device 1224 may be a hard disk drive, a solid-state drive, or the like. The computer 1200 also includes a ROM 1230 and legacy input / output units such as a keyboard, which are connected to the input / output controller 1220 via an input / output chip 1240.
[0077] The CPU 1212 operates according to programs stored in the ROM 1230 and the RAM 1214, thereby controlling each unit. The graphics controller 1216 acquires image data generated by the CPU 1212 into a frame buffer or the like provided in the RAM 1214 or into the graphics controller itself, and causes the image data to be displayed on the display device 1218.
[0078] The communication interface 1222 communicates with other electronic devices via a network. The storage device 1224 stores programs and data used by the CPU 1212 in the computer 1200. The DVD drive reads programs or data from a DVD-ROM or the like and provides them to the storage device 1224. The IC card drive reads programs and data from an IC card and / or writes programs and data to an IC card.
[0079] The ROM 1230 stores therein a boot program or the like that is executed by the computer 1200 upon activation, and / or programs that depend on the hardware of the computer 1200. The input / output chip 1240 may also connect various input / output units to the input / output controller 1220 via a USB port, a parallel port, a serial port, a keyboard port, a mouse port, etc.
[0080] The programs are provided by a computer-readable storage medium such as a DVD-ROM or an IC card. The programs are read from the computer-readable storage medium, installed in the storage device 1224, RAM 1214, or ROM 1230, which are also examples of computer-readable storage media, and executed by the CPU 1212. Information processing described in these programs is read by the computer 1200, and causes cooperation between the programs and the various types of hardware resources described above. An apparatus or method may be configured by implementing operations or processing of information in accordance with the use of the computer 1200.
[0081] For example, when communication is performed between the computer 1200 and an external device, the CPU 1212 may execute a communication program loaded into the RAM 1214 and instruct the communication interface 1222 to perform communication processing based on the processing described in the communication program. Under the control of the CPU 1212, the communication interface 1222 reads transmission data stored in a transmission buffer area provided in the RAM 1214, the storage device 1224, a DVD-ROM, or a recording medium such as an IC card, and transmits the read transmission data to the network, or writes reception data received from the network to a reception buffer area or the like provided on the recording medium.
[0082] Furthermore, the CPU 1212 may cause all or a necessary portion of a file or database stored in an external recording medium such as the storage device 1224, a DVD drive (DVD-ROM), an IC card, etc. to be read into the RAM 1214, and may perform various types of processing on the data on the RAM 1214. The CPU 1212 may then write back the processed data to the external recording medium.
[0083] Various types of information, such as various types of programs, data, tables, and databases, may be stored on the recording medium and may undergo information processing. The CPU 1212 may perform various types of processing on data read from the RAM 1214, including various types of operations, information processing, conditional judgment, conditional branching, unconditional branching, information search / replacement, etc., as described throughout this disclosure and specified by the instruction sequences of the programs, and write the results back to the RAM 1214. The CPU 1212 may also search for information in a file, database, etc. on the recording medium. For example, if multiple entries, each having an attribute value of a first attribute associated with an attribute value of a second attribute, are stored on the recording medium, the CPU 1212 may search for an entry whose attribute value of the first attribute matches a specified condition from among the multiple entries, read the attribute value of the second attribute stored in the entry, and thereby obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.
[0084] The above-described programs or software modules may be stored in a computer-readable storage medium on or near the computer 1200. A recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can also be used as a computer-readable storage medium, thereby providing the programs to the computer 1200 via the network.
[0085] The blocks in the flowcharts and block diagrams in the present embodiments may represent stages of a process in which an operation is performed or "parts" of an apparatus responsible for performing the operation. Particular stages and "parts" may be implemented by dedicated circuitry, programmable circuitry provided with computer-readable instructions stored on a computer-readable storage medium, and / or a processor provided with computer-readable instructions stored on a computer-readable storage medium. The dedicated circuitry may include digital and / or analog hardware circuits, including integrated circuits (ICs) and / or discrete circuits. The programmable circuitry may include reconfigurable hardware circuits, such as field programmable gate arrays (FPGAs) and programmable logic arrays (PLAs), including AND, OR, XOR, NAND, NOR, and other logical operations, flip-flops, registers, and memory elements.
[0086] A computer-readable storage medium may include any tangible device capable of storing instructions that are executed by an appropriate device, such that a computer-readable storage medium having instructions stored thereon comprises an article of manufacture, including instructions that can be executed to create means for performing the operations specified in the flowcharts or block diagrams. Examples of computer-readable storage media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, etc. More specific examples of computer-readable storage media may include floppy disks, diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), electrically erasable programmable read-only memory (EEPROM), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), Blu-ray disc, memory stick, integrated circuit card, etc.
[0087] The computer readable instructions may include either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, JAVA®, C++, etc., and conventional procedural programming languages such as the “C” programming language or similar programming languages.
[0088] Computer-readable instructions may be provided locally or over a wide area network (WAN) such as a local area network (LAN), the Internet, etc. to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, or programmable circuitry, such that the processor or programmable circuitry executes the computer-readable instructions to generate means for performing the operations specified in the flowcharts or block diagrams. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc.
[0089] Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It will be apparent to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the claims that such modifications and improvements can also be included within the technical scope of the present invention.
[0090] It should be noted that the execution order of each process, such as operations, procedures, steps, and stages, in the devices, systems, programs, and methods shown in the claims, specifications, and drawings is not specifically stated as "before," "prior to," etc., and that the processes can be performed in any order unless the output of a previous process is used in a later process. Even if the operational flow in the claims, specifications, and drawings is described using "first," "next," etc. for convenience, this does not mean that the processes must be performed in this order.
[0091] According to the present invention, for example, a flexible scaling method can be realized in hypervisor-based virtualization, thereby making it possible to provide a network system with improved efficiency, thereby contributing to the achievement of Goal 9 of the Sustainable Development Goals (SDGs), "Build resilient infrastructure, promote inclusive and sustainable industrialization, and promote inclusive and sustainable industrialization." [Explanation of symbols]
[0092] 100 Scale control device, 102 Memory unit, 104 Registration unit, 106 Resource allocation unit, 108 Performance monitoring unit, 110 Upper limit control unit, 112 Memory unit, 114 Registration unit, 116 Execution unit generation unit, 118 Performance monitoring unit, 120 Change determination unit, 122 Change control unit, 200 Virtualization control device, 310 Host, 320 CPU resource, 330 Memory resource, 350 Host, 410 Guest OS, 412 Process management, 414 Application process, 420 Virtual CPU resource, 430 Virtual memory resource, 450 Guest OS, 452 Process management, 454 Application process, 460 Virtual CPU resource, 470 Virtual memory resource, 510 Execution unit, 520 Execution unit, 610 State, 620 State, 630 State, 640 State, 650 State, 660 State, 1200 computer, 1210 host controller, 1212 CPU, 1214 RAM, 1216 graphics controller, 1218 display device, 1220 input / output controller, 1222 communication interface, 1224 storage device, 1230 ROM, 1240 input / output chip
Claims
1. an execution unit generating unit that allocates host resources and generates an execution unit of an application on the host; a change determination unit that determines to change the resource amount of the first execution unit generated by the execution unit generation unit; a change control unit that, when the change decision unit has decided to make the change, generates a second execution unit that has the same settings as the first execution unit and is assigned a different amount of resources from the first execution unit, executes synchronization processing between the first execution unit and the second execution unit, and then switches the execution entity of the application of the first execution unit to the second execution unit; Equipped with the execution unit generation unit generates the first execution unit using an execution unit template including allocated resource information; the change control unit generates the second execution unit using the one execution unit template in which the allocation resource information has been changed. Control device.
2. 2. The control device according to claim 1, wherein, when the change determination unit decides to reduce the amount of resources of the first execution unit, the change control unit generates the second execution unit having the same settings as the first execution unit but allocated a smaller amount of resources than the first execution unit, performs synchronization processing between the first execution unit and the second execution unit, and then switches the execution entity of the application of the first execution unit to the second execution unit.
3. 2. The control device according to claim 1, wherein, when the change determination unit decides to increase the amount of resources of the first execution unit, the change control unit generates the second execution unit having the same settings as the first execution unit and allocating a greater amount of resources than the first execution unit, performs synchronization processing between the first execution unit and the second execution unit, and then switches the execution entity of the application of the first execution unit to the second execution unit.
4. The control device according to claim 1 , wherein the change control unit switches the execution subject of the application of the first execution unit to the second execution unit, and then deletes the first execution unit.
5. an execution unit generating unit that allocates host resources and generates an execution unit of an application on the host; a change determination unit that determines to change the resource amount of the first execution unit generated by the execution unit generation unit; a change control unit that, when the change decision unit has decided to make the change, generates a second execution unit that has the same settings as the first execution unit and is assigned a different amount of resources from the first execution unit, executes synchronization processing between the first execution unit and the second execution unit, and then switches the execution entity of the application of the first execution unit to the second execution unit; Equipped with the change control unit switches the execution entity of the application of the first execution unit to the second execution unit, and then, in response to a predetermined condition being satisfied, executes a synchronization process between the second execution unit and the first execution unit, and then switches the execution entity of the application of the second execution unit to the first execution unit; the predetermined condition is satisfied when the change determination unit determines to change the resource amount of the second execution unit. Control device.
6. The control device according to claim 1 , wherein the execution unit is a virtual machine or a container.
7. The control device according to claim 1 , wherein the change control unit generates the second execution unit on a host different from the host on which the first execution unit is generated.
8. The control device according to claim 1 , wherein the change control unit generates the second execution unit on the host on which the first execution unit is generated.
9. A program for causing a computer to function as the control device according to any one of claims 1 to 8.
10. 1. A computer-implemented control method comprising: an execution unit generation step of allocating host resources and generating a first execution unit of the application on the host; a change determination step of determining to change the resource amount of the first execution unit generated in the execution unit generation step; a change control step of generating a second execution unit having the same settings as the first execution unit but having a different amount of resources allocated to the first execution unit, executing synchronization processing between the first execution unit and the second execution unit, and then switching the execution subject of the application of the first execution unit to the second execution unit; Equipped with The execution unit generating step generates the first execution unit using an execution unit template including allocated resource information; The change control step generates the second execution unit using the one execution unit template in which the allocated resource information has been changed. Control method.
11. 1. A computer-implemented control method comprising: an execution unit generation step of allocating host resources and generating a first execution unit of the application on the host; a change determination step of determining to change the resource amount of the first execution unit generated in the execution unit generation step; a change control step of generating a second execution unit having the same settings as the first execution unit but having a different amount of resources allocated to the first execution unit, executing synchronization processing between the first execution unit and the second execution unit, and then switching the execution subject of the application of the first execution unit to the second execution unit; a change control step of switching the execution subject of the application of the first execution unit to the second execution unit, and then executing synchronization processing between the second execution unit and the first execution unit in response to a predetermined condition being satisfied, and then switching the execution subject of the application of the second execution unit to the first execution unit; Equipped with the predetermined condition is satisfied by determining to change the resource amount of the second execution unit; Control method.
Citation Information
Patent Citations
Network function virtualization base management system and network function virtualization base management method
JP2015162147A
Process management program, process management method, and information processing device
JP2017220183A
Information processing system and virtual machine
JP2018163389A
Information processing device, method, and program
WO2014174580A1
Node system, server device, scaling control method, and program
WO2016121973A1