Computer system, resource adjustment method, and program

The described system optimizes resource allocation in cloud environments by using a trading agent and market unit to manage resource sharing among tenants, addressing performance and cost challenges in multi-tenant scenarios.

JP7822989B2Active Publication Date: 2026-03-03KK TOSHIBA
View PDF 12 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-03-20
Publication Date
2026-03-03

AI Technical Summary

Technical Problem

Existing cloud computing environments face challenges in maintaining performance and reducing running costs within the scope of pre-contracted resources, particularly in multi-tenant scenarios where unexpected high loads from some tenants can affect the availability and performance of other services, leading to high operational expenses.

Method used

A computer system and method that includes a trading agent unit and a resource trading market unit to manage resource reservations and releases among tenants, optimizing resource allocation by matching requests and adjusting balances through a credit-based system, allowing tenants to share resources and minimize contract scope.

Benefits of technology

This approach enables efficient resource leveling and cost reduction by optimizing allocation within limited contracts, ensuring availability and performance for individual customers or applications while minimizing running costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007822989000001
    Figure 0007822989000001
  • Figure 0007822989000002
    Figure 0007822989000002
  • Figure 0007822989000003
    Figure 0007822989000003
Patent Text Reader

Abstract

To level out resources by optimizing resource allocation in a cloud computing environment within a limited contract scope, and to reduce running costs by minimizing the contract scope, under an environment where a plurality of tenants exist.SOLUTION: A trading agent unit in a computer system matches the securing and releasing of resources between tenants based on a resource securing request and a resource releasing request from each tenant, performs a lending process to change resource allocation to each tenant based on the matching result, and transmits the matching result to a resource trading market processing unit. The resource trading market processing unit performs an adjustment process for the balance of the resource lending and borrowing relation associated with the granting and receiving or lending of resource securing and releasing between the tenants associated with the matching based on the matching result.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a computer system, a resource adjustment method, and a program. [Background technology]

[0002] A platform provider is a business or company that provides a platform (market) on the Internet. A platform refers to the "foundation or infrastructure environment" of "systems and services." Platform providers connect sellers and buyers through this platform, developing a variety of businesses. A characteristic of a platform is that the more users and participating companies there are, the more new users it attracts. At least several world-famous companies fall into the category of platform providers.

[0003] When users use services through a platform, they are required to register their personal information. The huge amount of data (big data) collected through this process is the platform operator's strength, and by analyzing and utilizing this data in detail, it is possible to launch new business models one after another.

[0004] In recent years, a computing environment called cloud computing, which provides computer resources (hereafter referred to as resources) on demand according to user requests, has become widespread. Cloud computing can be categorized into the following types:

[0005] SaaS (Software as a Service) is also known as software as a service. It is a model in which all resources, from servers to applications, are provided via the cloud, and users only use those functions. The cloud service provider also handles operational management such as maintenance and updates of the resources provided. As SaaS offers a wide range of services for both businesses and individuals, end users often have direct access to it, and many business systems are available for businesses, contributing to improved business efficiency.

[0006] PaaS (Platform as a Service) is also known as a platform as a service. It is a platform for developing, testing, delivering, managing, and using applications. It provides infrastructure such as servers, storage, networks, operating systems, and databases, and provides an environment for running programs. By using PaaS, it is possible to devote resources solely to application development, and the applications used on PaaS are developed and prepared by the user.

[0007] IaaS (Infrastructure as a Service) is also known as infrastructure as a service. It is the basis of cloud services and provides only IT infrastructure such as servers, storage, and networks. With IaaS, there is no need to prepare hardware or manage operations such as maintenance. Applications that run on the IaaS OS are prepared by the user.

[0008] One of the greatest attractions of cloud computing, and PaaS in particular, is the ability to flexibly scale servers in response to changes in the volume of service requests. In cloud computing environments, it is common for different types of business systems (hereafter referred to as tenants) with various requirements to operate in multiple locations while sharing the resources of the computing environment; this configuration is known as a multi-tenant environment. A multi-tenant environment is an environment in which multiple tenants share one or more resources by reserving and releasing resources according to time periods. In a multi-tenant environment, when introducing a new tenant or adding resources to an existing tenant, situations can arise in which there are not enough available resources to meet the resource reservation requests made to the multi-tenant environment.

[0009] One mechanism to meet these requirements is a load balancer, which can handle increases in demand up to multiple pre-defined capacity levels. However, implementing a load balancer requires multiple servers to be prepared and running, and if charges are charged for each running server instance, the running costs of the cloud environment can become high.

[0010] When platform providers develop businesses such as web services, they often base the platform (platform) for the exchange of business-related information, analysis, and purchasing in a cloud computing environment. As a result, a management challenge for the platform provider's business is to run as many services (tenants) for individual customers or specific uses as possible using as limited computer resources as possible, and to reduce running costs such as contract fees for those computer resources.

[0011] In relation to the above, Patent Document 1 describes a resource allocation method that allows surplus resources to be shared among multiple services, thereby reducing the maintenance costs of the surplus resources. In this method, standby computer resources are kept in a dead standby state in which at least no applications are installed, and these dead standby computer resources are shared among multiple services or multiple users, thereby improving the utilization rate of idle computer resources, realizing server integration, and reducing the costs required to maintain computer resources. In addition, this method predicts loads for each service using past operation history, and allocates idle computer resources secured and maintained from services that generate surplus resources according to the prediction results.

[0012] Patent Document 2 describes a platform service that varies the quality requirement index for dynamic scalability and combines various means of preparation to satisfy the given index. In this service, the cloud server provides a combination of platforms in various preparation states, such as hot standby, swap-out state, and cold standby.

[0013] Patent Document 3 describes a method for calculating available resources and arbitrating resources, taking into consideration the resource usage patterns of tenants, such as the requested period of the resource allocation request of the tenant and the functions used.

[0014] Patent Document 4 describes a technique in which, in response to a request for computer resource provision, a plurality of virtual machines are started on the resources of the system itself, and a resource allocation request is made for each cluster.

[0015] Furthermore, Patent Documents 5 to 7 describe the mutual provision and use of computer resources of users (nodes) or services provided by them on a network.

[0016] Non-Patent Documents 1 and 2, which are related to the above, are also disclosed. Kubernetes (registered trademark) in Non-Patent Document 2 is a portable, scalable, open-source platform for managing containerized workloads and services, promoting declarative configuration management and automation. Kubernetes ecosystem services, support, and tools are widely available. Here, virtualization software refers to a system that can operate multiple virtual machines on a single server, enabling multiple operating systems to run on a single server. Containers are independent environments that can run applications, middleware, and multiple operating systems. They are very similar to virtualization software, but the major difference is that they can isolate spaces from other systems at the container level. This enables the execution of different operating systems, allowing systems running multiple operating systems to be consolidated into a single system. Containers have the ability to run applications, but they do not have the ability to manage containers or connect them to other servers. Kubernetes solves this "inability to connect" problem.

[0017] Kubernetes is a container orchestration tool. Container orchestration is a technology for managing multiple containers. Operating multiple containers requires the coordination of networking, storage, and other elements. Container orchestration tools manage these elements, allowing for smooth operation even when a container goes down or an application is under heavy load. Kubernetes uses Kubernetes Pods to manage multiple containers, and multiple Pods are grouped together into Nodes. A collection of Nodes forms a "cluster." In other words, the cluster is the highest level within the overall Kubernetes structure. When Kubernetes deploys or deletes containers, it issues direct instructions to the cluster, which improves system efficiency, maximizes resource utilization, and makes it easier to manage confidential information.

[0018] Resource quotas, a feature of Kubernetes, are a tool for administrators to address issues that arise when multiple users or teams share a cluster with a set number of nodes and one team uses more than its fair share of resources. Resource quotas, defined by the Resource Quota object, provide constraints to limit total resource consumption per namespace. Resource quotas can limit the number of objects of each type that can be created in a cluster in the same namespace, and the total amount of compute resources consumed by resources in the namespace.

[0019] Istio, described in Non-Patent Document 3, is a highly functional open-source service mesh that is installed and used on a platform such as Kubernetes, and deploys a service mesh internally. A service mesh is a function that mediates the network between multiple services deployed in a microservice architecture when they interconnect to achieve overall functionality. For example, it has basic functions such as name resolution for the communicating service when communication between services is required, and a retry function when such communication fails. This solves problems that tend to pose challenges in microservice architectures, such as communication failures between services and performance degradation due to increased communication, making it easier to implement a microservice architecture.

[0020] The technologies described in Patent Documents 1 to 7 and Non-Patent Documents 1 to 3 do not take into consideration maintaining the performance of multi-tenant operations and reducing running costs within the range of pre-contracted resources. Each of the above technologies is a resource allocation method that has a function of adjusting the amount of allocated resources in response to a resource reservation request by referencing the amount of resources or usage in the computer environment, or a resource adjustment that takes into consideration only the amount of resources or usage in the computer environment in response to requests from each tenant. Therefore, many restrictions are placed on flexible platform service operation within the range of pre-contracted resources, making it difficult to maintain the availability and performance of services for individual customers or individual applications.

[0021] Furthermore, in a multi-tenant environment, because multiple tenants share resources in the cloud computing environment, such as runtime, middleware, OS, virtualized environment (VM), CPU, storage, and network ports, if some tenant users run services that place unexpectedly high loads, the availability of other tenant services in the same environment drops, making it difficult to provide adequate services. In other words, it is difficult to maintain the availability and performance of services for individual customers or specific applications within the scope of pre-contracted resources. Particularly in a multi-tenant environment, it is necessary to either operate resources with an overestimated margin in advance, or to add resources whenever resources are insufficient. This means that running server resource instances are charged for each instance, resulting in high running costs.

[0022] In this case, the profitability of the business will decrease, especially in the case of platform providers that run services for multiple individual customers or individual applications in a limited cloud computing environment, such as PaaS or SaaS business models. [Prior art documents] [Patent documents]

[0023] [Patent Document 1] Japanese Patent Application Laid-Open No. 2005-141605 [Patent Document 2] Patent No. 5939740 [Patent Document 3] Patent No. 6190969 [Patent Document 4] Patent No. 5277062 [Patent Document 5] Japanese Patent Application Laid-Open No. 2004-206273 [Patent Document 6] Japanese Patent Application Laid-Open No. 2007-323439 [Patent Document 7] Japanese Patent Application Laid-Open No. 2002-92366 [Non-patent literature]

[0024] [Non-Patent Document 1] “Amazon Elastic Compute Cloud (Amazon EC2),” Amazon Web Services (registered trademark), [Retrieved January 18, 2022], Internet<URL:https: / / aws.amazon.com / jp / ec2 / > [Non-patent document 2] “Kubernetes”, resource quotas, [Retrieved January 18, 2022], Internet<URL:https: / / kubernetes.io / ja / docs / concepts / policy / resource-quotas / > [Non-patent document 3] “Istio”, [Retrieved January 18, 2022], Internet<URL:https: / / istio.io / latest / > Summary of the Invention [Problem to be solved by the invention]

[0025] The problem that this invention aims to solve is to provide a computer system, a resource adjustment method, and a program that can level resources by optimizing resource allocation in a cloud computing environment within a limited contract scope in an environment where multiple tenants exist, and can reduce running costs by minimizing the contract scope. [Means for solving the problem]

[0026] The computer system of the embodiment constitutes a multi-tenant environment. The computer system has a trading agent unit and a resource trading market processing unit. The trading agent unit matches resource reservation and release between tenants based on resource reservation requests and resource release requests from each tenant, performs accommodation processing to change the resource allocation to each tenant based on the matching results, and transmits the matching results to the resource trading market processing unit. Based on the matching results, the resource trading market processing unit adjusts the balance of resource lending and borrowing in association with the transfer or accommodation of resource reservation and release between the tenants resulting from the matching. [Brief explanation of the drawings]

[0027] [Figure 1] FIG. 1 is a diagram showing how a computer system is used. [Figure 2] FIG. 1 is a diagram showing the configuration of a trading agent unit 110. [Figure 3] FIG. 2 is a diagram showing an example of the contents of tenant configuration information 121. [Figure 4] FIG. 10 is a diagram showing an example of the contents of tenant profile information 122. [Figure 5] 10 is a diagram showing an occupancy period related to a reservation request for tenant 10, a requested number of CPUs and a reservation request time period related to CPU allocation, and a requested memory amount related to memory allocation. [Figure 6] FIG. 10 shows the results of resource accommodation processing performed by trading agent unit 110 regarding memory allocation. [Figure 7] FIG. 10 is a diagram showing a screen displaying quotes based on the market making method. [Figure 8] This is a diagram that typifies cases when a method based on priority and FIFO is adopted. [Figure 9] FIG. 10 is a diagram for explaining the content of the accommodation process. [Figure 10] A conceptual diagram showing how carbon credit trading works. DETAILED DESCRIPTION OF THE INVENTION

[0028] Hereinafter, a computer system, a resource adjustment method, and a program according to an embodiment will be described with reference to the accompanying drawings.

[0029] FIG. 1 illustrates how a computer system is used. Computer system 100 includes, for example, a trading agent unit 110 and a resource trading market unit 130. Computer system 100 operates in response to reservation or release requests from one or more tenants 10-1 to 10-n (n is a natural number). Hereinafter, when there is no need to distinguish between tenants, a tenant will be simply referred to as tenant 10. Tenant 10 may be a physical machine or a virtual machine. In the latter case, tenant 10 may be an instance created on resource 200. Tenant 10 is a service application group that sends resource reservation requests to trading agent unit 110 or performs resource allocation in response to requests from trading agent unit 110. In a multi-tenant environment, tenant 10 is composed of one or more physical or virtual resources. Furthermore, physical resources are composed of one or more physical machines. A physical machine includes resources such as a runtime, middleware, an OS, a virtualization environment (VM), a CPU, storage, and a network port, and runs virtual machines. The services and applications that run as tenant 10 include, for example, a web system that is configured with a web server and a distributed database, and a monitoring and control system that performs optimization analysis and controls the target system in accordance with the results of the analysis.

[0030] A user of a tenant 10 accesses the computer system 100 and resources via a network such as the Internet or a wide area network (WAN). The tenant 10 occupies a portion of the resources 200 according to a schedule secured by the computer system 100. The hardware of the resources 200 may be shared with the hardware of the computer system 100. The resources 200 include, for example, some or all of a runtime, middleware, an OS, a virtualization environment (VM), a central processing unit (CPU), storage, a network port, and the like.

[0031] In this way, the computer system 100 constitutes a multi-tenant environment. The trading agent unit 110 matches the reservation and release of resources between the tenants 10 based on resource reservation requests and resource release requests from the tenants 10, changes the resource allocation to each tenant based on the matching results, and transmits the matching results to the resource trading market processing unit 130. The resource trading market processing unit 130 adjusts the balance of income and expenditures associated with the matching based on the matching results.

[0032] FIG. 2 is a configuration diagram of the trading agent unit 110. The trading agent unit 110 includes, for example, a resource matching analysis unit 111, a resource request processing unit 112, a resource release candidate calculation unit 113, and a resource reservation / release processing unit 114. These components are implemented by a hardware processor, such as a central processing unit (CPU), executing a program (software). Some or all of these components may be implemented by hardware (including circuitry), such as a large-scale integration (LSI), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a graphics processing unit (GPU), or may be implemented by a combination of software and hardware. The program may be stored in advance in a storage device (a storage device with a non-transitory storage medium) such as a hard disk drive (HDD) or flash memory, or may be stored in a removable storage medium (a non-transitory storage medium) such as a DVD or CD-ROM, and installed in the storage device by inserting the storage medium into a drive.

[0033] Furthermore, the trading agent unit 110 performs processing by referring to various information stored in the storage unit 120. The storage unit 120 stores information such as tenant configuration information 121, tenant profile information 122, resource usage information 123, resource accommodation result information 124, and resource status monitoring information 125.

[0034] 3 is a diagram illustrating an example of the contents of tenant configuration information 121. The tenant configuration information 121 is configured with configuration information that defines the physical machines and virtual machines for each tenant 10. The physical machine configuration information includes the physical machine name, the total number of CPUs in the machine, the total memory amount of the machine, cache, I / O bandwidth, and the number of network ports. The virtual machine configuration information includes the name of a virtual machine to be assigned to the tenant, the name of the physical machine on which the virtual machine runs, the number of CPUs assigned to the virtual machine, the memory allocation amount assigned to the virtual machine, I / O bandwidth, and the number of network ports. The tenant configuration information 121 may be manually set by an administrator, or may be automatically created, changed, or updated as appropriate by management software.

[0035] 4 is a diagram illustrating an example of the contents of the tenant profile information 122. The tenant profile information 122 is information set for each tenant, such as a virtual machine, the number of CPUs allocated, the memory allocation amount, the I / O bandwidth, the number of network ports, the network port bandwidth, the time slot occupation start time and occupation end time, and their priorities (hereinafter referred to as tenant priorities), as well as tenant policies.

[0036] The tenant priority defines the priority rank of occupancy for each resource (tenant CPU allocation number, memory allocation amount, I / O bandwidth, number of network ports, and network port bandwidth).

[0037] Tenant priority is set on a scale of 1 to 5, as shown below. 5 indicates the highest priority, and 1 indicates the lowest priority. Priority has different meanings for the resource releasing side and the requesting side. For example, if the priority of the releasing side is α and the priority of the requesting side is β, then the transfer is successful when α+1<β. 5: Releaser → Do not release, Requester → Unconditionally acquire (additional charges may apply) 4: Releaser → Do not release, Requester → Depends on credit transaction (priority: high) 3: Releaser → Transferable via credit transaction, Requester → Depends on credit transaction (priority: normal) 2: Releasing party → Transferable by credit transaction, Requesting party → Not acquired from other tenants 1: Releasing party → Unconditionally transferable, Requesting party → Not acquire from other tenants

[0038] The tenant priority may be any information that allows a priority comparison with other tenant resources, and may be expressed by a numerical ranking, or by a character string such as High, Middle, Low, or by a number or alphabet that appropriately indicates the ranking. Furthermore, the tenant priority information is not limited to statically defined information, but may be information that changes dynamically based on information such as the time of day, day of the week, date, day / night, and season.

[0039] "Unconditionally acquire" indicates the minimum amount of resources that the tenant must guarantee to secure. For the tenant shown in Figure 4, four virtual machines and a memory allocation of 512 GB must be secured unconditionally. In addition to specifying the number of virtual machines that make up the tenant, it is also possible to specify each resource type, such as CPU capacity or memory capacity. When selecting "Unconditionally acquire," the tenant accepts additional charges.

[0040] "Depending on credit transactions (high priority)" means that it will be occupied if there are credits available to pay (see below). "Transferable via credit transactions" means that it can be released by acquiring credits even after it has been secured. "Transferable unconditionally" means that it can be released regardless of the conditions.

[0041] A "time slot" is information that specifies the start and end times of a tenant's resource allocation when it requests resource allocation. A time slot may be specified for each tenant, or an individual time slot may be specified for each resource. The "CPU allocation" may be any information that indicates CPU usage, such as the number of virtual CPUs in use, their frequency, or CPU usage rate. The "memory allocation" may be any information that indicates memory usage, such as the usage ratio of the memory allocation. The "storage allocation" may be any information that indicates the usage of storage allocated to a virtual machine, such as disk read / write performance values, disk read / write volume, and disk usage and free space. The "I / O bandwidth" may be any information that indicates the I / O bandwidth usage of a virtual machine, such as the amount of data sent and received by a virtual machine per unit time. Information such as the number of data items exchanged by a virtual machine per unit time or the total amount of data exchanged by a virtual machine within a specific period may be used. The "number of network ports" may be any information that indicates the number of network ports for a virtual machine, and specifies the number of ports allocated to processes, applications, and various protocols on the virtual machine. "Network port bandwidth" may be any information that indicates the network usage of a virtual machine's port, and may include information such as the number of packets sent and received by a virtual machine per unit time, or the total amount of data or total number of packets sent and received by a virtual machine within a specific period of time.

[0042] Resource usage information 123 is information indicating the usage status of resources by each tenant. Resource accommodation result information 124 is information indicating the results of resource accommodation processing. Resource status monitoring information 125 is information indicating the status of each resource.

[0043] Returning to FIG. 2, the resource matching analysis unit 111 acquires tenant profile information and resource state monitoring information 125 periodically or when a monitoring request is made, and stores them in the storage unit 120 as tenant profile information 121 and tenant usage information 123 .

[0044] The resource request processing unit 112 receives a resource reservation request from a tenant 10 and transmits the result of the resource reservation process to the tenant 10 that issued the resource reservation request. The resource reservation request includes, for example, information indicating the type and amount of resources that can be allocated to physical machines, virtual machines, programs, and services, the usage period of the resources, and the priority rank of the resource occupancy. The resource type can be set, for example, the number of physical or virtual machines, the number of CPUs, the CPU frequency, the occupancy or reservation amount per CPU, the interrupt timing, the memory amount, the I / O throughput, the I / O bandwidth, the occupancy or reservation amount per I / O capacity, the cache capacity, the number of network ports, and the bandwidth of the network ports. The resource usage period can be set by specifying the start time and period of the occupancy, the end time of the occupancy, or only the start time of the occupancy. Examples of specifying the start time and period of the occupancy include "use for 6 hours from the current time" and "use for 12 hours from 8:00." Examples of specifying the end time of exclusive use include "Exclusive use until 20:00 today" or "Use until 14:00 on January 18, 2022." Examples of specifying only the start time of exclusive use include "Use begins from the current time" or "Use begins from 8:00 on January 18, 2022."

[0045] In response to a resource reservation request from a tenant 10, the resource release candidate calculation unit 113 calculates the amount of resources that can be released by other tenants 10, and stores the calculation result in the resource accommodation result information 124.

[0046] The resource reservation / release processing unit 114 instructs the resource trading market unit 130 to reserve resources in accordance with the content of the resource accommodation result information.

[0047] The resource trading market unit 130 controls physical and virtual resource configurations. The resource reservation / release processing unit 114 has a process for controlling resource configurations and resource configuration information. The resource trading market unit 130 operates, for example, by receiving an execution command from the trading agent unit 110 or a program running in another cloud environment. However, the operation is not limited to this, and may be triggered by a manual operation command from an administrator under specific command authority or conditions.

[0048] [Allocation Plan] The following describes the resource allocation process performed by the trading agent 110. The trading agent 110 acquires resource reservation requests and their respective priorities from the tenant profile information 122 of each tenant 10, and creates a resource allocation plan based on the acquired information.

[0049] FIG. 5 shows the occupancy period for a tenant 10's allocation request, the requested number of CPUs and the requested time slot for allocation, and the requested memory amount for memory allocation. In contrast, FIG. 6 shows the results of resource allocation processing performed by the trading agent unit 110 for memory allocation. FIG. 6 shows an example of tenants sharing the same resource (memory, in this case) based on the required memory allocation resource amount for each tenant 10 in each time slot and their priority. In the figure, tenant 10 (hereinafter simply referred to as tenant 1) designated "tenant 1" has secured 128 GB as its base contract, but there are times when 256 GB is temporarily required. Tenant 2 has a base contract for 32 GB, tenant 3 has a base contract for 16 GB, and tenant 4 has a base contract for 8 GB. Tenant 5 has a base contract for 16 GB, but there are times when 32 GB is required and times when 8 GB is sufficient. Tenant n has a base contract for 256 GB, but there are times when 128 GB is temporarily required. In this situation, by sharing memory allocations as shown by the arrows, it is possible to minimize the addition of external resources. The trading agent unit 110 checks whether a resource request exists among the resource release candidates for each unit time, for example, every two hours, for example, every five minutes, and determines whether the request is valid based on the priority of each tenant resource and the logic of the matching pattern. The trading agent unit 110 also determines and changes the order of the accommodation process, for example, according to a first-in, first-out (FIFO) queuing model using a queue. This will be described in more detail later.

[0050] For example, a tenant 10 may return resources in a time slot in which it can release resources in return for resources borrowed from another tenant 10. A tenant 10 may basically agree to release resources in time slots in which it does not necessarily need resources, and may save credits in preparation for time slots in which it needs resources. Note that if resources are insufficient for transactions within the range of resources contracted in advance, the trading agent unit 110 may automatically add resources using a resource management mechanism, such as a load balancer. In this case, the tenant 10 is charged outside the framework of the balance adjustment process by the resource trading market processing unit 130.

[0051] [credit] The resource trading market processing unit 130 may introduce a unit of virtual value, credit, which indicates the normalized value of different types of resources, and allow the tenants 10 to virtually exchange credits, thereby facilitating the sharing of different types of resources. Credits are calculated by multiplying the unit secured for each resource type (e.g., number of CPUs, memory allocation, I / O bandwidth, number of network ports, time slots, etc.) by a coefficient, as shown in the following formula: In the formula, Kcpu, Kmem, Kio, and Kport are coefficients for absorbing differences in the physical or conceptual types of resources.

[0052] Credits = Kcpu x number of CPUs x time = Kmem x memory allocation (MB) x time = Kio x I / O bandwidth (bytes) x time = Kport x number of network ports x time

[0053] When credits are used, the amount of credits held by each tenant may be stored in the tenant profile information 122 (which the resource trading market processing unit 130 can refer to), etc. The credits may be exchanged for cash or other real value at any time. This allows the tenants 10 to smoothly share different types of resources. The resource trading market processing unit 130 may convert resources of the same type into credits to adjust the balance, or may adjust the balance by spot trading (for example, storing information such as "borrow memory allocation amount (MB) x time" and returning a portion of it at a different time).

[0054] When determining the price for lending resources, the resource trading market processing unit 130 may determine the price using a method such as a market-making method in which quotes are submitted and buy / sell orders are executed, or a method based on priority and FIFO. FIG. 7 is a diagram showing a screen (commonly referred to as a "book") that displays quotes using the market-making method. As shown in the figure, a CPU book or memory book for spot trading, or a credit book for credit trading, may be managed as internal processing information of the resource trading market processing unit 130 or presented to the tenant 10. In addition to these, any other buying and selling method may be adopted.

[0055] The priority and FIFO method will be described below. The amount of credits given and received in conjunction with the accommodation of resources may be determined, for example, by a weight (described below) based on the priority of the tenant 10 that issues the reservation request (requesting side). For example, the credit calculated by multiplying the amount of resources by a reference value is multiplied by a weight determined based on the priority of the requesting side, and this value is paid from the requesting tenant 10 to the releasing tenant 10. Furthermore, for a requesting tenant 10 with a priority of 5, resources can also be procured from outside by paying an additional fee.

[0056] (requester priority: weight) 5: Weight 1.5 4: Weight 1.4 3: Weight 1.3

[0057] Figure 8 shows a classification of cases when the priority and FIFO method is adopted. As mentioned above, if the rule that "if the priority of the releasing side is α and the priority of the requesting side is β, then the transfer is successful when α+1<β" is applied, then the success or failure of the transfer and the compensation in each case will be as follows.

[0058] In case A, α = 4 or 5, β = 5, and α + 1 ≥ β, so the transfer is not successful. In this case, the credit CO for securing additional resources is multiplied by the weight 1.5 corresponding to the priority of the requesting party, resulting in an additional charge of 1.5 × CO to the requesting tenant 10, and the resources are allocated to the requesting tenant 10.

[0059] In case B, α = 3, β = 5, and α + 1 < β, so the transfer is successful. In this case, the credit CI applied to the inter-tenant transfer is multiplied by the weight 1.5 corresponding to the priority of the requesting party, resulting in 1.5 × CI being paid from the requesting tenant 10 to the releasing tenant 10, and the resource is transferred from the releasing tenant 10 to the requesting tenant 10. Here, for example, CO ≥ CI.

[0060] In case C, α = 2, β = 5, and α + 1 < β, so the transfer is successful. In this case, the credit CI applied to the inter-tenant transfer is multiplied by the weight 1.5 corresponding to the priority of the requesting party, resulting in 1.5 × CI being paid from the requesting tenant 10 to the releasing tenant 10, and the resources are transferred from the releasing tenant 10 to the requesting tenant 10.

[0061] In case D, α = 1, β = 5, and α + 1 < β, so the transfer is successful. In this case, the credit CI applied to the inter-tenant transfer is multiplied by the weight 1.5 corresponding to the priority of the requesting party, resulting in 1.5 × CI being paid from the requesting tenant 10 to the releasing tenant 10, and the resources are transferred from the releasing tenant 10 to the requesting tenant 10.

[0062] In Case E, α = 3~5, β = 4, and α + 1 ≥ β, so the transfer is not valid.

[0063] In case F, α = 2, β = 4, and α + 1 < β, so the transfer is successful. In this case, the credit CI applied to the inter-tenant transfer is multiplied by the weight 1.4 corresponding to the priority of the requesting party, resulting in 1.4 × CI being paid from the requesting tenant 10 to the releasing tenant 10, and the resources are transferred from the releasing tenant 10 to the requesting tenant 10.

[0064] In case G, α = 1, β = 4, and α + 1 < β, so the transfer is successful. In this case, the credit CI applied to the inter-tenant transfer is multiplied by the weight 1.4 corresponding to the priority of the requesting party, resulting in 1.4 × CI being paid from the requesting tenant 10 to the releasing tenant 10, and the resources are transferred from the releasing tenant 10 to the requesting tenant 10.

[0065] In case H, α = 2~5, β = 3, and α + 1 ≥ β, so the transfer does not take place.

[0066] In Case I, α = 1, β = 3, and α + 1 < β, so the transfer is successful. In this case, the credit CI applied to the inter-tenant transfer is multiplied by the weight 1.3 corresponding to the priority of the requesting party, resulting in 1.3 × CI being paid from the requesting tenant 10 to the releasing tenant 10, and the resources are transferred from the releasing tenant 10 to the requesting tenant 10.

[0067] [Banking functions] The resource trading market processing unit 130 has a resource banking function, and may deposit surplus resources from tenants and provide compensation (e.g., credit) to the tenants, or lend resources to tenants and receive compensation (e.g., credit) from the tenants. In this case, the resource trading market processing unit 130 may hold in advance surplus resources that do not fall under the base contract of any tenant 10.

[0068] [FIFO] As described above, the trading agent unit 110 determines and changes the order of accommodation processing according to a FIFO queuing model. Figure 9 is a diagram for explaining the details of the accommodation processing. Regarding the matching order between the resource requester and the resource release candidate, the trading agent unit 110 inserts the resource requester and the resource release candidate into a FIFO queue, and performs a matching check every unit time to determine whether the matching logic is met. The example in Figure 9 shows an example in which the trading agent unit 110 matches the resource request identifier R0003 with the release candidate identifier C0005, and the request is deleted from both FIFO queues. The trading agent unit 110 performs this matching check, for example, at midnight every day. If the frequency of this check is subdivided, for example, every hour or every minute, resource leveling within the range of pre-contracted resources is promoted.

[0069] Each identifier [R****], [C****] contains tenant profile information for each resource, such as, for each tenant, information such as the virtual machine, number of CPUs allocated, memory allocation, I / O bandwidth, number of network ports, network port bandwidth, start and end times of time slot occupancy, and their tenant priority and tenant policy.

[0070] Furthermore, the trading agent unit 110 may swap the matching order in the FIFO queue if the resource requester and the resource release candidate have the same conditions except for priority within the matching unit time. In the above example, R0006 has a higher priority than R0003, so the matching order in the FIFO queue is swapped. Similarly, the trading agent unit 110 may swap the matching order in the FIFO queue if the release candidate and the resource requester have the same conditions except for priority within the matching unit time. In the above example, C0005 has a lower priority than C0002, so the matching order in the FIFO queue is swapped. If the resource requester and the resource release candidate have the same conditions except for priority within the matching unit time, swapping the matching order increases the chances of matching within the range of the pre-contracted resources, thereby promoting resource leveling.

[0071] Instead of using a FIFO queue, the trading agent 110 may perform processing by solving a constrained optimization problem using an objective function. The objective function F(x1, x2, ..., Xn) is defined as F (virtual machine, number of CPUs allocated, memory allocation, I / O bandwidth, number of network ports, network port bandwidth, time slot, tenant priority, tenant policy).

[0072] (Objective function) = F(x1, x2, …, Xn) = Maximizing matching opportunities within the scope of pre-contracted resources (Constraint): The releasing party with priority 4 or higher will not be allowed to release its own resources.

[0073] The above aims to maximize matching opportunities, but depending on the situation, if the goal is to maximize the performance of all tenants, a solution may be to prioritize compensation using external resources, even if additional charges are accepted. There are various optimization methods, including the classical Lagrangian constant method, but it is also possible to use solvers or AI, which have become mainstream in recent years.

[0074] [Carbon credits, etc.] The computer system 100 may calculate the amount of energy consumption reduced by the accommodation process and perform environmental contribution trading based on the calculated value. An example of environmental contribution trading is carbon credits. Figure 10 is a conceptual diagram showing how carbon credit trading is carried out. In Japan, by registering with "J-Credit," which is led by the Ministry of Economy, Trade and Industry, certification of credits can be obtained from a public institution. In Europe and the United States, this corresponds to the Emission Trading Scheme (ETS).

[0075] [others] The computer system 100 may provide surplus resources that were not allocated to the tenants 10 to an external environment, and the consideration for the provided resources may be profit for the operator (e.g., the operator of PaaS) of the computer system 100. Furthermore, the computer system 100 may distribute profits obtained from the outside to each tenant 10 as credits, or may discount the contract fees of each tenant 10 according to the profits obtained from the outside.

[0076] According to at least one of the embodiments described above, the trading agent unit 110 matches the securing and releasing of resources between tenants based on resource securing requests and resource release requests from each tenant, performs a lending process to change the resource allocation to each tenant based on the matching results, and transmits the matching results to a resource trading market processing unit, and the resource trading market processing unit 130 performs an adjustment process of income and expenditures between the tenants associated with the matching based on the matching results.By having this, in an environment where multiple tenants exist, it is possible to level resources by optimizing resource allocation in a cloud computing environment within a limited contract range, and to reduce running costs by minimizing the contract range.

[0077] Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, as well as within the scope of the invention described in the claims and their equivalents. [Explanation of symbols]

[0078] 10 tenants 100 Computer Systems 110 Trading Agent Department 130 Resource Trading Market Department

Claims

1. A computer system constituting a multi-tenant environment, a trading agent unit that performs matching between securing and releasing resources among tenants based on resource securing requests and resource releasing requests from each tenant, performs accommodation processing to change resource allocation to each tenant based on the matching results, and transmits the matching results to a resource trading market processing unit; the resource trading market processing unit that performs an adjustment process for the balance of the resource lending relationship associated with the transfer or accommodation of the resource securing and release between the tenants associated with the matching based on the matching result; A computer system comprising:

2. The resource trading market processing unit performs the balance adjustment process by a method based on priority and FIFO or a market making method.

2. The computer system of claim 1.

3. the resource trading market processing unit performs an adjustment process of the balance by transferring a common virtual value between the tenants in relation to the lending process of different types of resources; 2. The computer system of claim 1.

4. the resource trading market processing unit performs an adjustment process of the balance by transferring and receiving the spot of the resource in different time periods for the lending process of the same type of resource; 2. The computer system of claim 1.

5. The resource trading market processing unit performs the adjustment process of the income and expenditure by transferring a common virtual value between tenants in the lending process of different types of resources, and transferring the actual resource in different time periods in the lending process of the same type of resource.

2. The computer system of claim 1.

6. the resource trading market processing unit has a resource banking function, and receives surplus resources from the tenants and provides compensation to the tenants; 2. The computer system of claim 1.

7. the resource trading market processing unit has a resource banking function, lends resources to the tenants, and receives payment from the tenants; 2. The computer system of claim 1.

8. When the resource trading market processing unit encounters a shortage of resources as a result of the accommodation processing among the tenants, the resource trading market processing unit procures resources from outside and receives payment from the tenant that made the resource reservation request that caused the procurement.

2. The computer system of claim 1.

9. At least the resource reservation request has a priority set thereto.

2. The computer system of claim 1.

10. the trading agent unit performs the lending process in an order that conforms to a predetermined rule, and rearranges the order of the lending process based on the priority; 10. The computer system of claim 9.

11. Calculating the amount of energy consumption reduced by the accommodation process, and conducting environmental contribution trading based on the calculated value.

2. The computer system of claim 1.

12. A resource adjustment method executed by a computer system constituting a multi-tenant environment, comprising: matching the securing and releasing of resources between tenants based on resource securing requests and resource releasing requests from each tenant, performing accommodation processing to change the allocation of resources to each tenant based on the matching results, and transmitting the matching results to a resource trading market processing unit; Based on the matching result, performing an adjustment process of income and expenditure of the resource lending relationship in association with the transfer or accommodation of the resource securing and release between the tenants in association with the matching; A resource adjustment method comprising:

13. In the computer system that constitutes the multi-tenant environment, matching the securing and releasing of resources between tenants based on resource securing requests and resource releasing requests from each tenant, performing accommodation processing to change the allocation of resources to each tenant based on the matching results, and transmitting the matching results to a resource trading market processing unit; Based on the matching result, performing an adjustment process of income and expenditure of the resource lending relationship in association with the transfer or accommodation of the resource securing and release between the tenants in association with the matching; A program to execute.

Citation Information

Patent Citations

  • Novel imidazole derivatives and composition thereof

    JP1977077062A

  • Manufacture of optical fiber

    JP1984039740A

  • Sheet takeup machine

    JP1986090969A

  • Exclusive controller for shared resources

    JP1993313923A

  • Cpu time-division purchase-and-sale method and control server in cpu time-division purchase-and-sale system

    JP2002092366A