WO2019240400A1 - 가상화 환경에서의 자원 할당 방법 및 장치 - Google Patents

가상화 환경에서의 자원 할당 방법 및 장치 Download PDF

Info

Publication number
WO2019240400A1
WO2019240400A1 PCT/KR2019/006260 KR2019006260W WO2019240400A1 WO 2019240400 A1 WO2019240400 A1 WO 2019240400A1 KR 2019006260 W KR2019006260 W KR 2019006260W WO 2019240400 A1 WO2019240400 A1 WO 2019240400A1
Authority
WO
WIPO (PCT)
Prior art keywords
containers
container
credit
resources
host device
Prior art date
Application number
PCT/KR2019/006260
Other languages
English (en)
French (fr)
Inventor
박지환
이경운
Original Assignee
삼성전자 주식회사
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사, 고려대학교 산학협력단 filed Critical 삼성전자 주식회사
Priority to US17/251,036 priority Critical patent/US20210191751A1/en
Publication of WO2019240400A1 publication Critical patent/WO2019240400A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Definitions

  • One disclosure relates to a technique for dynamically allocating network resources in a container virtualization environment.
  • a virtualization method of the device there are a virtual machine method that virtualizes the server itself having a fixed performance in hardware, and a container method that virtualizes only a specific process environment processed by the server.
  • a network virtualization apparatus and method for dynamically allocating resources to a plurality of containers are disclosed.
  • a host device for dynamically allocating resources to a plurality of virtualized containers, the host device receiving a user input for requesting allocation of resources to a plurality of containers, based on user input.
  • Calculate the weights of the plurality of containers calculate the resources to be allocated to the plurality of containers based on the weights, allocate the calculated resources to the plurality of containers, reflect the resource usage of the plurality of containers, It may include a calculation unit for dynamically recalculating the resources to be allocated and a scheduler for monitoring the resource usage according to the service provision of the plurality of containers.
  • a host device for dynamically allocating resources to a plurality of virtualized containers, the host device based on a user interface and a user input for receiving user input for requesting allocation of resources to the plurality of containers.
  • Calculate the weights of the plurality of containers calculate the resources to be allocated to the plurality of containers based on the weights, allocate the calculated resources to the plurality of containers, reflect the resource usage of the plurality of containers.
  • the processor may include a processor that dynamically recalculates resources to be allocated and monitors resource usage according to service provision of a plurality of containers.
  • a method of dynamically allocating resources in a host device including a plurality of virtualized containers, and the method according to one disclosure receives a user input for requesting allocation of resources to a plurality of containers. Calculating a weight of the plurality of containers based on a user input, calculating a resource to be allocated to the plurality of containers based on the weight, allocating the calculated resource to the plurality of containers, and providing services of the plurality of containers.
  • the method may include monitoring resource usage according to the method, and dynamically recalculating resources to be allocated to the plurality of containers by reflecting resource usage of the plurality of containers.
  • a computer program product including a recording medium having a program stored therein for converting into vector values corresponding to a target language and acquiring a sentence composed of the target language based on the converted vector values can be provided.
  • FIG. 1 is a diagram schematically illustrating an apparatus for dynamically allocating resources in a plurality of container virtualization environments according to one disclosure.
  • FIG. 2 is a flowchart illustrating a method for allocating resources in a virtualization environment according to one disclosure.
  • FIG. 3 is a diagram illustrating a container network mode in an IoT environment according to one disclosure.
  • FIG. 4 is a view for explaining the operation of the host device and the container device according to one disclosure.
  • FIG. 5 is a flowchart illustrating an operation of a calculator that allocates credits according to one disclosure.
  • FIG. 6 is a flowchart illustrating resource reallocation according to resource use of a container according to one disclosure.
  • FIG. 7 is a diagram illustrating reallocating resources when resource usage of a plurality of containers is less than the allocated resource amount according to one disclosure.
  • FIG. 8 is a diagram illustrating reassignment of resources when the resource usage of a plurality of containers is greater than the allocated resource amount according to one disclosure.
  • FIG. 9 is a diagram for describing an operation of a scheduler according to one disclosure.
  • ... unit means a unit for processing at least one function or operation, which is implemented in hardware or software or a combination of hardware and software. Can be.
  • the expression “configured to” is, for example, “suitable for”, “having the capacity to” depending on the context. It may be used interchangeably with “designed to”, “adapted to”, “made to”, or “capable of”.
  • the term “configured to” may not necessarily mean only “specifically designed to” in hardware. Instead, in some situations, the expression “system configured to” may mean that the system “can” together with other devices or components.
  • the phrase “processor configured (or configured to) perform A, B, and C” may be executed by executing a dedicated processor (eg, an embedded processor) or one or more software programs stored in memory to perform the operation. It may mean a general-purpose processor (for example, a CPU or an application processor) capable of performing corresponding operations.
  • a virtual machine is a software implementation of a computing environment, and multiplexing a physical computer to provide a complete system platform to run a complete operating system.
  • a container according to one disclosure is a process virtualization schedule as a form of virtualization.
  • the virtualization technology using containers divides the inside of the host operating system (OS) into kernel space that manages physical resources and user space that runs user processes, that is, applications (APPs, applications).
  • OS host operating system
  • APPs applications
  • Containers are lightweight OS virtualization methods that do not use a hypervisor and guest operating system. They are very suitable for application virtualization because they consume little host resources and require very little startup time. In addition, virtualization on the OS enables configuration and deployment of infrastructure independent of existing physical servers (bare metal) and virtual servers (virtual machine).
  • the core technologies used for containers are Linux's Cgroups (control groups) and Namespaces.
  • a container is a standalone system virtualized on an OS that allocates resources to application processes through cgroups and isolates them with namespaces.
  • Namespaces are technologies that isolate processes, networks, mounts, etc. into specific namespaces.
  • the container can allocate computing resources to each application using Cgroups according to the resource allocation policy.
  • Cgroups can create process groups and assign and manage resources to allocate host resources to processes on the OS.
  • the host device may allocate computing resources for each application using Cgroups according to the set resource allocation policy.
  • Cgroups can control resources to allocate computing resources in Linux for each application.
  • the container can limit CPU usage, memory usage, etc. using the Linux kernel's Cgroups feature, allowing control over compilation and precise execution based on problems that occur during the execution of the application. Work-conserving means that it is idle only when there is no work to be processed.
  • Server consolidation by one initiation is an approach to reduce the total number of production servers and to prevent low utilization servers from taking up a lot of space. According to server consolidation, it is possible to efficiently manage resources, thereby reducing costs.
  • a hypervisor is a software layer for building a virtualization system.
  • the hypervisor exists between the operating system and the hardware, and can provide logically separate hardware for each virtual machine.
  • the hypervisor plays a role of creating and managing a plurality of containers, and various virtualization hypervisors such as full virtualization and semi-virtualization can be applied.
  • the hypervisor may be implemented as a Linux kernel-based virtualization machine (KVM) and may be replaced by another hypervisor that provides equivalent or similar behavior / effect.
  • KVM Linux kernel-based virtualization machine
  • a computer system includes, for example, a desktop personal computer, a laptop personal computer, a netbook computer, a workstation, a server, a personal digital assistant, or the like. Meaning, but not limited to.
  • the computer system is a smartphone, a tablet personal computer, a mobile phone, a video phone, an e-book reader, a portable multimedia player (PMP), an MP3. It may include at least one of a player, a mobile medical device, a camera, or a wearable device.
  • FIG. 1 is a diagram schematically illustrating an apparatus for dynamically allocating resources in a plurality of container virtualization environments according to one disclosure.
  • the host device 100 may include a plurality of virtualized containers.
  • the host device 100 can communicate with the computer system 5 via a network.
  • the user may create a container with the host device 100 using the computer system 5 and transmit information for allocating resources.
  • the host device 100 refers to a physical server to which virtualization is applied by a user.
  • the host device 100 processes and stores various types of information flowing into the host device 100 through wired or wireless communication networks in accordance with the characteristics of each information.
  • the user can apply virtualization to the host device 100 through the computer system 5 in a container manner, and the performance of the container, which is a virtualized device, is limited to the performance of the host device 100 as an upper limit. do.
  • the host apparatus 100 is a server equipped with an octa-core CPU, the CPU of the virtual machine implemented in the host apparatus 100 may not exceed the octacore.
  • the first container 201, the second container 202, and the third container 203, which are virtualized devices, are software implemented by a user by applying virtualization to the host device 100.
  • the first container 201, the second container 202, and the third container 203 implemented in the host device 100 may all be implemented by container virtualization.
  • the resource amounts of the first container 201, the second container 202, and the third container 203 may not exceed the maximum resource amounts of the host device 100, but the first container 201 and the second container 203 may not be exceeded.
  • the total amount of resources allocated to the container 202 and the third container 203 may exceed the maximum resource amount of the host device 100.
  • This over-commit of resources to the first container 201, the second container 202, and the third container 203 is performed by the first container 201, the second container 202, and the third container. Since the 203 is not always operating using all the resources, it is to increase the efficiency of the work being processed through the first container 201, the second container 202 and the third container 203.
  • the resource amount allocated and used for the first container 201, the second container 202, and the third container 203 is implemented in software according to a virtualization technology within the basic performance of the host device 100. It is possible to over-allocate resources to the virtualized devices 110, 130, 150.
  • the first container 201, the second container 202, and the third container 203 are devices implemented in the host device 100, and may exchange various data with the host device 100. Since the first container 201, the second container 202, and the third container 203 are logical devices implemented in the host device 100, the host device 100 may identify each virtualized device. . In addition, after the at least one virtualized device of the first container 201, the second container 202, and the third container 203, which is already implemented, is isolated from the host device 100, the existing host device 100 may be removed. Migration to other host devices is also possible.
  • the first container 201, the second container 202, and the third container 203 may process various data independently based on the amount of resources allocated within the maximum resource range of the host device 100. And may be affected by processes occurring in the host device 100 or other virtualized containers. For example, when a virtualized device attempts to process new data by user input, the amount of resources used by the virtualized devices other than the virtualized device exceeds the maximum resource amount of the host device 100. In that case, data processing of the virtualized device may not proceed. In such a situation, the host device 100 may include a function for adjusting all virtualized devices defined in the host device 100 to process data in parallel.
  • FIG. 2 is a flowchart illustrating a method for allocating resources in a virtualization environment according to one disclosure.
  • a method of dynamically allocating a resource in a host device including a plurality of virtualized containers may be provided.
  • the method according to one disclosure is at a host device.
  • a host device may receive a user input for requesting allocation of resources to a plurality of containers.
  • the host device may receive user input for the performance ratio, minimum performance, and maximum performance of the container.
  • the host device may receive a user input including a percentage of the performance ratio of the container, an absolute value of the minimum performance of the container, and an absolute value of the maximum performance of the container.
  • the host device may calculate a weight of the plurality of containers based on a user input, and calculate a resource to be allocated to the plurality of containers based on the weight.
  • the host device may determine an absolute value of the minimum performance included in the user input as a minimum value and determine an absolute value of the maximum performance included in the user input as a maximum value. For example, if a Raspberry Pi 3 board with 20Mbps maximum performance is set at 50% container performance, then the container can provide 10Mbps performance.
  • the host device may obtain a performance ratio of a plurality of containers from a user input.
  • the host device may calculate a weight of the plurality of containers by calculating a network performance that can be guaranteed in the entire network as a percentage according to the performance ratio of the plurality of containers. For example, when a performance ratio of 20% and 80% is input to each of the two containers, the weights of the two containers may be converted into 1 and 4.
  • the host device may allocate the calculated resource to the plurality of containers. According to one disclosure, the host device may periodically calculate and allocate credits based on a performance control policy required by the container's network interface.
  • the host device may control the network bandwidth performance by adjusting the weight of the plurality of containers.
  • the host device may monitor resource usage according to service provision of a plurality of containers. For example, if it is determined that credits assigned to a specific container remain above a certain value, it may be determined that the amount of credits allocated to the container is not consumed because the container network usage is low.
  • the host device may dynamically recalculate resources to be allocated to the plurality of containers by reflecting resource usage of the plurality of containers. For example, by distributing the resources of the pre-allocated container to other containers, it is possible to reduce the waste of network resources.
  • FIG. 3 is a diagram illustrating a container network mode in an IoT environment according to one disclosure.
  • An object of the present invention according to one disclosure is to control network performance on a container basis by dynamically allocating network resources in an IoT device.
  • Container network mode in the IoT environment according to one disclosure may implement a bridge mode and a host mode at the same time.
  • the Linux network stack 300 may include a network interface 301 and a bridge 302 of a host.
  • a bridge mode is a mode in which a plurality of containers share a bridge, and in the bridge mode, a plurality of containers independently process a packet using a network stack, thereby enabling independent network operation.
  • the first container 201, the second container 202, and the third container 203 may share the bridge 302.
  • the first container 201, the second container 202, and the third container 203 may each include an independent network interface, a MAC address, and an IP address.
  • the first container 201 may include network interface 1 (eth 1, 211).
  • the second container 202 and the third container 302 may also include network interfaces of eth2 and eth3.
  • the bridge 302 may check the media access address (MAC) with the link layer device and forward the packet to the network device. In addition, the bridge 302 may deliver the packet using the information in the MAC address table prepared by receiving information of the peripheral network devices through the Address Resolution Protocol (ARP).
  • ARP Address Resolution Protocol
  • packets of a plurality of containers may be collectively processed at the host's network interface 301. Therefore, network performance deterioration due to increased load of the container does not occur.
  • both the network interface 301 and the bridge 302 of the host may be used to dynamically control the performance of the network.
  • the first container 201 may use the network interface 1 (
  • the bridge 302 may determine whether the first container 201 has sufficient resources to transmit the packet to the network device.
  • the bridge 302 may deliver the packet to the network interface 301 only when the resource allocated to the first container 201 is larger than the size of the packet to be transmitted.
  • network performance may be limited by not transmitting the packet to the network interface 301.
  • FIG. 4 is a view for explaining the operation of the host device and the container device according to one disclosure.
  • the host device 100 may include a user interface 110, a calculator 120, and a scheduler 130.
  • the first container device 201 may include a virtual interface 210 and a controller 220.
  • the user interface 110 may receive a performance figure required for each container unit from a user. According to one disclosure, the user interface 110 may input the performance value of each container as a percentage (%) of the container in the overall network performance. In addition, the user interface 110 may input a minimum value and a maximum value range of the performance of the container as absolute values.
  • the resource may be utilized to suit a user's intention.
  • operations of the calculator 120 and the scheduler 130 may be controlled by a processor of the host device 100.
  • the processor of the host device 100 may include at least one of a calculator and a scheduler.
  • the calculator 120 and the scheduler 130 may operate as independent physical processors included in the host device 100.
  • the calculator 120 and the scheduler 130 may be a virtual configuration included in a processor of one host device 100.
  • the operations of the calculator 120 and the scheduler 130 are described separately, but the following operations may be executed by one processor.
  • the calculation unit 120 may determine a resource allocation amount based on a performance value set in a container.
  • the calculator 120 may calculate a weight of the plurality of containers based on a user input, and calculate a resource to be allocated to the plurality of containers based on the weight.
  • the calculation unit 120 obtains the performance ratio of the plurality of containers from the user input, calculates the network performance that can be guaranteed in the entire network as a percentage according to the performance ratio of the plurality of containers to calculate the percentage of the plurality of containers.
  • the weight can be calculated.
  • the calculator 120 may determine a weight of the first container 201 as a first weight and a weight of the second container 202 as a second weight based on a user input.
  • the calculator 120 may allocate the calculated resource to the plurality of containers. According to one disclosure, the calculator 120 may transmit a resource to the virtual interface 210 of the first container 201. The virtual interface 201 may transfer the allocated resource to the controller 202, and the controller 202 may operate the first container 201 using the resource. In addition, when only the resources allocated to the first container 201 are difficult to smoothly operate the first container 201, the controller 202 may request additional resources from the host 100 using the virtual interface 201.
  • the calculator 120 may determine the absolute value of the minimum performance included in the user input as the minimum value, and determine the absolute value of the maximum performance included in the user input as the maximum value. According to one disclosure, the calculation unit 120 may ensure relative network performance by allocating resources proportionally according to weights, but it is difficult to satisfy this when the user requires a quantitative performance figure. Therefore, it is possible to guarantee the quantitative performance within the set range by setting the minimum and maximum performance of the container according to the user's request for quantitative performance guarantee.
  • the calculator 120 may calculate credits to be allocated to the plurality of containers.
  • the first credit may be calculated by adding credits according to the first weight of the first container 201 and remaining credits of the first container 201.
  • the calculator 120 may determine whether the first credit corresponds between a minimum value and a maximum value.
  • the calculation unit 120 may determine whether the first credit is smaller than the total credit.
  • the first credit may be allocated to the first container 201.
  • the calculator 120 may determine the maximum value as the 1-2 credit. According to one disclosure, the calculator 120 allocates the first container 201 to the first container 201 by the size of the first and second credits corresponding to the performance maximum value, and subtracts the first and second credits from the first credit to another container. Can be assigned as Accordingly, the calculator 120 may always maintain the network performance of the first container 201 below the maximum bandwidth.
  • the calculator 120 may determine the minimum value as the first 1-3 credits.
  • the calculation unit 120 may satisfy the minimum performance of the first container 201 by allocating the first to third credits to the first container 201.
  • the calculator 120 may obtain a difference value obtained by subtracting the first credit from the first to third credits from credits to be allocated to another container.
  • the calculator 120 may estimate that the first container does not use the allocated resource. In this case, the calculator 120 may distribute the credit according to the first weight to another container without allocating the credit according to the first weight. Therefore, the efficiency of network resource operation can be improved.
  • the scheduler 130 may monitor resource usage according to service provision of a plurality of containers.
  • the scheduler 130 may receive the packet from a bridge of the Linux kernel and transmit the packet to a network interface.
  • the scheduler may compare the remaining credit of the first container 201 with the size of the received packet before transmitting to the network interface. For example, if the size of the packet received from the first container 201 is smaller than the remaining credit of the first container 201, the scheduler 130 subtracts the credit for packet transmission from the remaining credit and subtracts the packet. Can be sent over the network interface.
  • the scheduler 130 may check the memory of the packet received from the first container 201 when the size of the packet received from the first container 201 is larger than the remaining credit of the first container 202. You can turn it off.
  • One disclosure may limit network performance of a malicious container that intends to use network resources exclusively, thereby preventing overuse of the limited capacity of the IoT device.
  • FIG. 5 is a flowchart illustrating an operation of a calculator that allocates credits according to one disclosure.
  • the calculation unit 120 calculates a scheduling policy based on a current credit corresponding to a network interface of at least one container, and schedules a work request for the at least one container based on the calculated scheduling policy. can do.
  • the calculation unit 120 may select a container at predetermined intervals. For example, the calculator 120 may select a network interface of the container periodically every 10 ms.
  • the calculating unit 120 may calculate a credit C1 that is a resource of a network interface of the selected container.
  • the credit C1 is a credit calculated by the weight based on the user's input.
  • the calculator 120 by one disclosure may add up the remaining credit C0.
  • the calculator 120 may determine the remaining credit C0 by adding the calculated C1 to the current remaining credit C0.
  • the calculation unit 120 may determine whether the added residual credit C0 satisfies the range of the minimum value minimum value and the maximum value.
  • the calculation unit 120 may determine whether the residual credit C0 is smaller than the total system C of the entire system. .
  • the calculation unit 120 determines that the remaining container C0 is smaller than the total system credit C, if the remaining credit C0 satisfies the range of the minimum value minimum value and the maximum value. The process can be terminated considering whether it is a network interface.
  • the calculation unit 120 may recalculate the credit C2 if the remaining credit C0 does not exist within the range of the minimum value Min C and the maximum value Max C or is not less than or equal to the credit Total C of the entire system.
  • the calculator 120 by one disclosure may adjust the credit of the entire system with CreditLeft using the difference between the previously calculated residual credit C0 and the recalculated credit C2.
  • the calculation unit 120 may allocate the newly calculated credit C2 as it is without adding it to the remaining credit C0 and use it as a network resource of the network interface of the container.
  • the calculating unit 120 may repeat the credit calculation process by selecting the next container, if not the last container.
  • the entire algorithm may be performed every 10ms and repeated until credit calculation of network interfaces of all containers on the system is made.
  • FIG. 6 is a flowchart illustrating resource reallocation according to resource use of a container according to one disclosure.
  • the host device 100 may dynamically reallocate resources by monitoring actual resource usage of a plurality of containers.
  • the host device 100 may determine whether the maximum resource amount of the host device 100 is greater than the resource amount used in the plurality of containers. At this time, the amount of resources used in the plurality of containers is the sum of the amount of resources actually used in each container.
  • the host device 100 may calculate the remaining resources of the host device 100. According to one disclosure, the host device 100 may calculate the remaining resources of the host device by subtracting the sum of the resource amounts used in the plurality of containers from the maximum resource amount of the host device 100.
  • the host device 100 may reallocate remaining resources of the host device 100 to a plurality of containers.
  • the host device 100 may reallocate the remaining resources of the host device according to a ratio of resource usage used in each of the plurality of containers.
  • the host device 100 may determine that the resources are over used in the plurality of containers.
  • the host device 100 may calculate the excess resource of the host device by subtracting the maximum resource amount of the host device 100 from the sum of the resource amounts used in the plurality of containers.
  • the host device 100 may generate a plurality of divided resources according to a ratio of resource usage used in each of the plurality of containers by using excess resources of the host device 100.
  • the host device 100 may subtract a plurality of divided resources from allocated resources of each of the plurality of containers.
  • FIG. 7 is a diagram illustrating reallocating resources when resource usage of a plurality of containers is less than the allocated resource amount according to one disclosure.
  • the resource of the host device 100 is 100.
  • the host device 100 may allocate resources of a plurality of containers based on a performance ratio, a minimum value, and a maximum value of a container by a user input. For example, 50 resources may be allocated to the first container, 30 to the second container, and 20 to the third container.
  • the host device 100 may monitor actual resource usage of the plurality of containers. According to one disclosure, the host device 100 may identify that 10 resources are used in the first container, 20 are resources used in the second container, and 30 are resources used in the third container. The amount of resources actually used in the plurality of containers is 50, and the total amount of remaining resources is 50.
  • the host device 100 may redistribute 50, that is, the total amount of remaining resources, according to the resource usage rate.
  • the host device 100 may reassign 12.5 to the first container, 25 to the second container, and 22.5 to the third container. As a result, resources of 22.5 for the first container, 55 for the second container, and 22.5 for the third container can be allocated, and the resource utilization rate of the host device is maintained at 100%.
  • FIG. 8 is a diagram illustrating reassignment of resources when the resource usage of a plurality of containers is greater than the allocated resource amount according to one disclosure.
  • the host device 100 may allocate resources of 80 to the first container, 60 to the second container, and 40 to the third container in consideration of weights, minimum values, and maximum values of the plurality of containers.
  • the resource amount of the plurality of containers may not exceed the maximum resource amount of the host device 100, but the sum of the resource amounts allocated to the plurality of containers may exceed the maximum resource amount of the host device 100.
  • This over-commit of resources to a plurality of containers is to increase the efficiency of the work being processed through the plurality of containers because the plurality of containers are not always operating using all the resources.
  • the amount of resources allocated to a plurality of virtualized containers and the amount of resources used are software implemented according to a virtualization technology within the basic performance of the host device 100, so that the resources are allocated to the plurality of containers. It is possible.
  • the resource amount used by each of the plurality of virtualized containers does not exceed the allocated resource amount.
  • the sum of the resource amounts of the plurality of containers may exceed the maximum resource amount of the host device 100. Accordingly, the total amount of resources used by the plurality of containers may also exceed the maximum resource amount of the host device 100.
  • the resource usage of the plurality of containers measured in such a situation is a value measured inside the plurality of containers. As long as the maximum value of the resource amount of the host device 100 is limited, the actual usage of the resources of the plurality of containers is It should be lower than the value measured inside the plurality of containers.
  • the host device 100 may estimate resource usage of a plurality of containers. According to one disclosure, the host device 100 may infer that 61 resources are used in the first container, 29 resources are used in the second container, and 28 resources are used in the third container. The amount of resources actually estimated to be used in the plurality of containers is 118, and the amount of resources that can be exceeded is 18.
  • the host device 100 may calculate the plurality of divided resources according to the ratio of the usage amount of the resources used in the plurality of containers to the excess resources.
  • the host device 100 may calculate the split resource at a ratio of 61:29:28.
  • the host device 100 may reallocate resources to a plurality of containers by subtracting the divided resources from the allocation resources of the plurality of containers. For example, the host device 100 may reallocate the reassignment resource of the first container to 53, the reassignment resource of the second container to 23, and the reassignment resource of the third container to 24. At this time, the resource utilization rate of the host device 100 is operated at 100%, thereby providing an effect of work preservation.
  • FIG. 9 is a diagram for describing an operation of a scheduler according to one disclosure.
  • the scheduler by one disclosure can receive a packet for service provision from a container.
  • the scheduler by one disclosure may compare the size of the packet with the size of resources remaining in the container.
  • the scheduler by one initiation does not send the packet to the network device if the packet size is larger.
  • the scheduler can prevent the exclusive use of resources of a particular container by releasing the memory of the packet.
  • the resources for packet transmission may be subtracted from the resources remaining in the container by one disclosure.
  • the scheduler by one disclosure may send a packet to the network device.
  • the container can provide a service by using a resource.
  • the method and apparatus for allocating resources in a virtualized environment may not be limited to the configuration and method of the described embodiments, but the embodiments may be configured by selectively combining all or some of the embodiments so that various modifications may be made. It may be.
  • the memory system and the method for detecting memory errors performed by the computer system described herein may be implemented by hardware components, software components, and / or combinations of hardware components and software components.
  • the software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device.
  • the software may be implemented as a computer program including instructions stored in a computer-readable storage media.
  • Computer-readable recording media include, for example, magnetic storage media (eg, read-only memory (ROM), random-access memory (RAM), floppy disks, hard disks, etc.) and optical read media (eg, CD-ROMs). (CD-ROM) and DVD (Digital Versatile Disc).
  • the computer readable recording medium can be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
  • the medium is readable by the computer, stored in the memory, and can be executed by the processor.
  • the computer readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-temporary' means that the storage medium does not include a signal and is tangible, but does not distinguish that the data is semi-permanently or temporarily stored in the storage medium.
  • a computer system and a method for detecting a memory error in the computer system according to the embodiments disclosed herein may be provided included in a computer program product.
  • the computer program product may be traded between the seller and the buyer as a product.
  • the computer program product may include a software program, a computer-readable storage medium on which the software program is stored.
  • a computer program product may be a manufacturer of an electronic device or a product (eg, a downloadable application) in the form of a software program distributed electronically through an electronic market (eg, Google Play Store, App Store). ) May be included.
  • the storage medium may be a server of a manufacturer, a server of an electronic market, or a storage medium of a relay server that temporarily stores a software program.
  • the computer program product may include a storage medium of a server or a storage medium of a terminal in a system consisting of a server and a terminal (for example, an ultrasound diagnostic apparatus).
  • a third device eg, a smartphone
  • the computer program product may include a storage medium of the third device.
  • the computer program product may include a software program itself transmitted from the server to the terminal or the third device, or transmitted from the third device to the terminal.
  • one of the server, the terminal and the third device may execute the computer program product to perform the method according to the disclosed embodiments.
  • two or more of the server, the terminal and the third device may execute a computer program product to distribute and implement the method according to the disclosed embodiments.
  • a server eg, a cloud server or an artificial intelligence server, etc.
  • a server may execute a computer program product stored in the server to control a terminal connected to the server to perform the method according to the disclosed embodiments.
  • a third device may execute a computer program product to control a terminal in communication with the third device to perform the method according to the disclosed embodiment.
  • the third device may download the computer program product from the server and execute the downloaded computer program product.
  • the third apparatus may execute the provided computer program product in a preloaded state to perform the method according to the disclosed embodiments.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)

Abstract

일 개시에 의하여, 가상화된 복수의 컨테이너에 자원을 동적으로 할당하는 호스트 장치는 복수의 컨테이너로 자원의 할당을 요청하는 사용자 입력을 수신하는 사용자 인터페이스, 사용자 입력에 기초하여 복수의 컨테이너의 가중치를 산출하고, 가중치에 기초하여 복수의 컨테이너에 할당할 자원을 계산하고, 계산된 자원을 복수의 컨테이너에 할당하고, 복수의 컨테이너의 자원 사용량을 반영하여, 복수의 컨테이너에 할당할 자원을 동적으로 재계산하는 계산부 및 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링하는 스케줄러를 제공할 수 있다.

Description

가상화 환경에서의 자원 할당 방법 및 장치
일 개시에 의하여 컨테이너 가상화 환경에서 네트워크 자원을 동적으로 할당하기 위한 기술과 관련된다.
정보통신기술이 발전함에 따라서 물리적으로 한정적인 자원을 가지고 있는 서버를 좀 더 효율적으로 사용하기 위한 기술 중에 장치의 가상화(virtualization)가 있다. 가상화가 적용된 서버는 서버에 모든 사용자가 동시에 접근하지는 않는다는 점을 기초로 한정적인 자원으로 수많은 사용자가 요구하는 데이터를 처리할 수 있어, 수요가 점점 증가하고 있다.
장치의 가상화 방식으로는, 하드웨어적으로 고정된 성능의 서버 자체를 소프트웨어적으로 가상화하는 가상 머신(Virtual machine)방식과, 서버에서 처리되는 특정 프로세스 환경만 가상화하는 컨테이너(Container)방식이 있다.
종래의 가상화 환경에서는 여러 컨테이너가 동시에 동작하는 경우 CPU, 네트워크 등의 컴퓨팅 자원을 각 컨테이너에 균등하게 할당한다. 하지만, 자원을 균등하게 할당하게 되면, 각 컨테이너가 서로 다른 특성의 서비스를 수행하는 경우 서비스 특성에 따른 자원 할당이 불가능해져 사용량이 달라지게 되면 이를 반영할 수 없는 문제가 있다. IoT 환경에서는 다양한 서비스를 제공하며, 제공되는 서비스의 특성이 시시각각 달라지기 때문에, 동적 환경을 고려한 컨테이너의 자원 할당의 필요성이 증가하였다.
일 개시에 의하여, IoT 환경에서 서로 다른 서비스를 제공하는 복수의 컨테이너들의 네트워크 성능을 고려하여, 복수의 컨테이너에게 동적으로 자원을 할당하기 위한 네트워크 가상화 장치 및 방법을 개시하고 있다.
제 1 실시예에 있어서, 가상화된 복수의 컨테이너에 자원을 동적으로 할당하는 호스트 장치를 제공하며, 호스트 장치는 복수의 컨테이너로 자원의 할당을 요청하는 사용자 입력을 수신하는 사용자 인터페이스, 사용자 입력에 기초하여 복수의 컨테이너의 가중치를 산출하고, 가중치에 기초하여 복수의 컨테이너에 할당할 자원을 계산하고, 계산된 자원을 복수의 컨테이너에 할당하고, 복수의 컨테이너의 자원 사용량을 반영하여, 복수의 컨테이너에 할당할 자원을 동적으로 재계산하는 계산부 및 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링하는 스케줄러를 포함할 수 있다.
제 2 실시예에 있어서, 가상화된 복수의 컨테이너에 자원을 동적으로 할당하는 호스트 장치를 제공하며, 호스트 장치는 복수의 컨테이너로 자원의 할당을 요청하는 사용자 입력을 수신하는 사용자 인터페이스 및 사용자 입력에 기초하여 복수의 컨테이너의 가중치를 산출하고, 가중치에 기초하여 복수의 컨테이너에 할당할 자원을 계산하고, 계산된 자원을 복수의 컨테이너에 할당하고, 복수의 컨테이너의 자원 사용량을 반영하여, 복수의 컨테이너에 할당할 자원을 동적으로 재계산하고, 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링하는 프로세서를 포함할 수 있다.
제 3 실시예에 있어서, 가상화된 복수의 컨테이너를 포함하는 호스트 장치에서 자원을 동적으로 할당하는 방법을 제공하며, 일 개시에 따른 방법은 복수의 컨테이너로 자원의 할당을 요청하는 사용자 입력을 수신하는 단계, 사용자 입력에 기초하여 복수의 컨테이너의 가중치를 산출하고, 가중치에 기초하여 복수의 컨테이너에 할당할 자원을 계산하는 단계, 계산된 자원을 복수의 컨테이너에 할당하는 단계, 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링하는 단계 및 복수의 컨테이너의 자원 사용량을 반영하여, 복수의 컨테이너에 할당할 자원을 동적으로 재계산하는 단계를 포함할 수 있다.
제 4 실시예에 의하여, 다중언어로 구성된 문장을 획득하는 동작 및 다중언어 번역 모델을 이용하여, 다중언어로 구성된 문장에 포함되는 단어들 각각에 대응하는 벡터 값들을 획득하고, 획득한 벡터 값들을 목표 언어에 대응하는 벡터 값들로 변환하며, 변환된 벡터 값들에 기초하여, 목표 언어로 구성된 문장을 획득하는 동작을 수행하도록 하는 프로그램이 저장된 기록매체를 포함하는 컴퓨터 프로그램 제품을 제공할 수 있다.
일 개시는, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1은 일 개시에 의한 복수개의 컨테이너 가상화 환경에서 자원을 동적으로 할당하기 위한 장치를 개략적으로 도시한 도면이다.
도 2는 일 개시에 의한 가상화 환경에서 자원을 할당하기 위한 방법을 나타낸 흐름도이다
도 3은 일 개시에 의한 IoT 환경에서의 컨테이너 네트워크 모드를 설명하기 위한 도면이다.
도 4는 일 개시에 의한 호스트 장치와 컨테이너 장치의 동작을 설명하기 위한 도면이다.
도 5는 일 개시에 의한 크레딧을 할당하는 계산부의 동작을 설명하는 흐름도이다.
도 6은 일 개시에 의한 컨테이너의 자원 사용에 따른 자원 재할당을 설명하기 위한 흐름도이다.
도 7은 일 개시에 의한 복수의 컨테이너의 자원 사용량이 할당된 자원양보다 적은 경우 자원을 재할당하는 것을 설명하는 도면이다.
도 8은 일 개시에 의한 복수의 컨테이너의 자원 사용량이 할당된 자원양보다 많은 경우 자원을 재할당하는 것을 설명하는 도면이다.
도 9는 일 개시에 의한 스케줄러의 동작을 설명하기 위한 도면이다.
본 명세서의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 시스템"이라는 표현은, 그 시스템이 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
일 개시에 따른 가상 머신 (virtual machine)은 컴퓨팅 환경을 소프트웨어로 구현한 것으로, 물리컴퓨터를 다중화하여 완전한 시스템 플랫폼을 제공하여 완전한 운영 체제의 실행이 가능하다.
일 개시에 따른 컨테이너는 가상화 방식의 일 형태로서 프로세스 가상화의 일정이다. 컨테이너를 이용한 가상화 기술은 호스트 OS(operating system) 내부를 물리적 자원을 관리하는 커널 공간과 사용자 프로세스, 즉 응용 프로그램(APP, application)을 실행하는 사용자 공간으로 구분하고, 사용자 공간을 여러 개로 나누어 각각의 사용자 프로세스에서 사용되는 하드웨어 자원을 할당하고 공유하는 기술을 의미한다.
컨테이너는 하이퍼바이저(Hardware emulator)와 게스트 OS(operating system)를 사용하지 않는 가벼운 OS 가상화 방식으로 호스트 자원의 소모량이 거의 없고 기동에 드는 시간이 매우 적어 어플리케이션 가상화에 적합한 기술이다. 또한 OS상의 가상화로 기존 물리 서버(Bare Metal)·가상 서버(Virtual Machine) 등 인프라에 독립적인 구성과 배포가 가능하다.
일 개시에 의하여, 컨테이너에 사용되는 핵심 기술은 Linux의 Cgroups(control groups)과 Namespace이다. 컨테이너는 cgroup을 통해 어플리케이션 프로세스에 자원을 할당하고, namespace로 격리한 OS상에 가상화된 독립 시스템을 의미한다. Namespace는 프로세스· 네트워크·마운드(mount) 등을 특정 name space로 격리하는 기술이다.
컨테이너는 자원 할당 정책에 따라 Cgroups 를 이용하여 컴퓨팅 리소스를 각 어플리케이션별로 할당할 수 있다. Cgroups는 OS상의 프로세스에 호스트 자원을 할당하기 위해 해당 프로세스 그룹을 만들고 자원의 할당 및 관리를 수행할 수 있다. 호스트 장치는 설정된 리소스 할당 정책에 따라 Cgroups를 이용하여 컴퓨팅 자원을 각 어플리케이션별로 할당할 수 있다. Cgroups는 리눅스에 구비되는 컴퓨팅 자원을 어플리케이션 별로 할당하도록 자원을 제어할 수 있다. 이에 따라, 컨테이너는 리눅스 커널의 Cgroups 기능을 사용하여 CPU 사용량, 메모리 사용량 등을 제한할 수 있어, 애플리케이션의 실행 중 발생하는 문제에 따른 컴파일 및 정밀한 실행에 대한 컨트롤이 가능하다.일 개시에 따른 작업 보존성(work-conserving)은 처리되어야 하는 작업이 없는 경우에만 유휴 상태가 되는 것을 의미한다.
일 개시에 의한 서버 통합 (server consolidation)이란 전체 운용 서버의 수를 줄이고, 낮은 활용률의 서버가 공간을 많이 차지하는 것을 막기 위한 접근 방식이다. 서버 통합에 따르면 효율적으로 자원 운용이 가능하여 비용 절감의 장점이 있다.
일 개시에 따른 하이퍼바이저(Hypervisor)는 가상화 시스템을 구축하기 위한 소프트웨어 계층이다. 하이퍼바이저는 운영체제와 하드웨어 사이에 존재하며, 각 가상머신에게 논리적으로 분리된 하드웨어를 제공할 수 있다. 하이퍼바이저는 다수의 컨테이너를 생성하고 관리하는 역할을 수행하는 것으로, 전 가상화, 반 가상화 방식 등 다양한 가상화 방식의 하이퍼바이저가 적용될 수 있다. 예를 들어, 하이퍼바이저는 리눅스 커널 기반 가상화 머신(KVM)으로 구현될 수 있으며, 이와 동등한 또는 유사한 작용/효과를 제공하는 다른 하이퍼바이저로 대체될 수 있다.
일 개시에서, 컴퓨터 시스템은 예를 들면, 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant) 등을 의미하나, 이에 한정되는 것은 아니다. 일 실시예에서, 컴퓨터 시스템은 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 개시의 실시예들을 상세하게 설명한다.
도 1은 일 개시에 의한 복수개의 컨테이너 가상화 환경에서 자원을 동적으로 할당하기 위한 장치를 개략적으로 도시한 도면이다.
일 개시에 의하여, 호스트 장치(100)는 복수개의 가상화 컨테이너를 포함할 수 있다. 호스트 장치(100)는 컴퓨터 시스템(5)과 네트워크를 통해 통신할 수 있다. 사용자는 컴퓨터 시스템(5)을 이용하여 호스트 장치(100)와 컨테이너를 생성하고, 자원을 할당하기 위한 정보를 전송할 수 있다.
호스트 장치(100)는 사용자에 의해 가상화가 적용되는 물리적인 서버(Server)를 의미한다. 호스트 장치(100)는 유무선 통신망을 통해 그 호스트 장치(100)로 흘러들어오는 각종 정보를, 각 정보의 특성에 맞춰서 처리하고 저장한다.
*사용자는 컴퓨터 시스템(5)을 통해 호스트 장치(100)에 컨테이너 방식으로 가상화(Virtualization)를 적용시킬 수 있으며, 가상화된 장치인 컨테이너(Container)의 성능은 호스트 장치(100)의 성능을 상한선으로 한다. 예를 들어, 호스트 장치(100)가 옥타코어(Octa-core) CPU를 장착한 서버라면, 그 호스트 장치(100)내에 구현되는 가상머신의 CPU는 옥타코어를 초과할 수 없다.
가상화된 장치인 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)는 사용자가 호스트 장치(100)에 가상화를 적용하여 소프트웨어적으로 구현한 장치이다.
도 1을 참조하면, 호스트 장치(100)내에 구현된 가상화된 장치는 3개뿐이지만, 이는 설명의 편의를 위해 가상화된 장치의 수를 3개로 한정한 것뿐이며, 실시 예에 따라, 가상화된 장치의 수는 3개보다 적거나 많을 수도 있다. 호스트 장치(100)에 구현되는 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)는 모두 컨테이너 가상화 방식에 의해 구현될 수 있다.
일 개시에 의하여 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)의 자원량은 호스트 장치(100)의 최대 자원량을 초과할 수 없지만, 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)에 할당된 자원량의 총합은 호스트 장치(100)의 최대 자원량을 초과할 수도 있다. 이렇게 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)에 자원을 초과할당(over-commit)하는 것은 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)가 언제나 모든 자원을 이용하여 동작하고 있는 것이 아니므로, 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)를 통해 처리되는 작업의 효율성을 증대시키기 위함이다. 또한, 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)에 할당되고 사용되는 자원량은 호스트 장치(100)의 기본 성능내에서 가상화 기술에 따라 소프트웨어적으로 구현된 것이기 때문에 가상화된 장치(110, 130, 150)에 자원을 초과 할당하는 것이 가능하다.
일 개시에 의한 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)는 호스트 장치(100)내에 구현되는 장치로서, 호스트 장치(100)와 각종 데이터를 주고 받을 수 있다. 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)는 호스트 장치(100)내에 구현되는 논리적인 장치이므로, 호스트 장치(100)는 각각의 가상화된 장치를 식별할 수 있다. 또한, 이미 구현된 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203) 중 적어도 하나 이상의 가상화된 장치를 호스트 장치(100)로부터 격리시킨 후, 기존의 호스트 장치(100)와 다른 호스트 장치로 이관(Migration)시키는 것도 가능하다.
일 개시에 의한 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)는 호스트 장치(100)의 최대 자원 범위 내에서 할당되는 자원량을 기초로 독자적으로 각종 데이터를 처리할 수 있으며, 호스트 장치(100) 또는 다른 가상화된 컨테이너에 발생하는 프로세스에 의해 영향을 받게 된다. 예를 들어, 어느 한 가상화된 장치가 사용자의 입력에 의해 새로운 데이터를 처리하려고 할 때, 그 가상화된 장치를 제외한 나머지 가상화된 장치들이 사용하고 있는 자원량이 호스트 장치(100)의 최대 자원량을 초과하는 경우에는, 그 가상화된 장치의 데이터 처리는 진행되지 않을 수 있다. 이런 상황에서, 호스트 장치(100)는 호스트 장치(100)에 정의된 모든 가상화된 장치가 병렬적으로 데이터를 처리할 수 있도록 조정하는 기능을 포함할 수 있다.
도 2는 일 개시에 의한 가상화 환경에서 자원을 할당하기 위한 방법을 나타낸 흐름도이다.
일 개시에 의하여, 가상화된 복수의 컨테이너를 포함하는 호스트 장치에서 자원을 동적으로 할당하는 방법을 제공할 수 있다. 일 개시에 의한 방법은 호스트 장치에서 이루어진다.
블록 2001에서 일 개시에 따른 호스트 장치는 복수의 컨테이너로 자원의 할당을 요청하는 사용자 입력을 수신할 수 있다. 일 개시에 의하여, 호스트 장치는 컨테이너의 성능 비율, 최소 성능 및 최대 성능에 대한 사용자 입력을 수신할 수 있다.
또한, 호스트 장치는 새로운 컨테이너를 생성할 때, 컨테이너의 성능 비율의 백분율, 컨테이너의 최소 성능의 절대값 및 컨테이너의 최대 성능의 절대값을 포함하는 사용자 입력을 수신할 수 있다.
블록 2002에서 일 개시에 따른 호스트 장치는 사용자 입력에 기초하여 복수의 컨테이너의 가중치를 산출하고, 가중치에 기초하여 복수의 컨테이너에 할당할 자원을 계산할 수 있다.
일 개시에 따른 호스트 장치는, 사용자 입력에 포함된 최소 성능의 절대값을 최소 값으로 결정하고, 사용자 입력에 포함된 최대 성능의 절대값을 최대 값으로 결정할 수 있다. 예를 들어, 20Mbps가 최대 성능인 라즈베리 파이 3보드에 50%의 컨테이너 성능이 설정되는 경우, 컨테이너에는 10Mbps의 성능이 제공될 수 있다.
일 개시에 따른 호스트 장치는 사용자 입력으로부터 복수의 컨테이너의 성능 비율을 획득할 수 있다. 또한, 호스트 장치는 복수의 컨테이너의 성능 비율에 따라 전체 네트워크에서 보장받을 수 있는 네트워크 성능을 백분율로 계산하여 복수의 컨테이너의 가중치를 산출할 수 있다. 예를 들어, 2 개의 컨테이너 각각에 대하여 20%, 80%의 성능 비율이 입력되는 경우, 2개의 컨테이너의 가중치를 1, 4로 변환할 수 있다.
블록 2003에서 일 개시에 따른 호스트 장치는 계산된 자원을 상기 복수의 컨테이너에 할당할 수 있다. 일 개시에 의하여, 호스트 장치는 주기적으로 컨테이너의 네트워크 인터페이스가 요구하는 성능 제어 정책에 기반하여 크레딧을 계산하여 할당할 수 있다.
일 개시에 의하여, 호스트 장치는 복수의 컨테이너의 네트워크 성능은 가중치에 비례하게 조정되므로, 복수의 컨테이너의 가중치를 조절하여 네트워크 대역폭 성능을 제어할 수 있다.
블록 2004에서 일 개시에 따른 호스트 장치는 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링할 수 있다. 예를 들어, 특정 컨테이너에 할당된 크레딧이 일정 값 이상으로 남은 것으로 판단된 경우, 컨테이너의 네트워크 사용량이 적어 할당받은 크레딧을 모두 소모하지 않은 것으로 판단할 수 있다.
블록 2005에서 일 개시에 따른 호스트 장치는 복수의 컨테이너의 자원 사용량을 반영하여, 상기 복수의 컨테이너에 할당할 자원을 동적으로 재계산할 수 있다. 예를 들어, 기 할당된 컨테이너의 자원을 다른 컨테이너로 분배함으로써, 네트워크 자원의 낭비를 줄일 수 있다.
도 3은 일 개시에 의한 IoT 환경에서의 컨테이너 네트워크 모드를 설명하기 위한 도면이다.
일 개시에 의한 본원발명의 목적은 IoT 장치에서 네트워크 자원을 동적으로 할당하여 컨테이너 단위로 네트워크 성능을 제어하기 위한 것이다. 일 개시에 의한 IoT 환경에서의 컨테이너 네트워크 모드는 브릿지 모드와 호스트 모드를 동시에 구현할 수 있다.
일 개시에 의하여 리눅스 네트워크 스택(300)에서는 호스트의 네트워크 인터페이스(301) 및 브릿지(302)를 포함할 수 있다.
일 개시에 의하여, 브릿지 모드는 복수의 컨테이너들이 하나의 브릿지를 공유하는 모드로서, 브릿지 모드에서는 복수의 컨테이너가 독립적으로 네트워크 스택을 이용하여 패킷들을 처리하기 때문에 독립적인 네트워크 동작이 가능하다.
일 개시에 의하여, 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)는 브릿지(302)를 공유할 수 있다. 또한, 제 1 컨테이너(201), 제 2 컨테이너(202) 및 제 3 컨테이너(203)는 각각 독립적인 네트워크 인터페이스, MAC 주소 및 IP 주소를 포함할 수 있다. 예를 들어, 제 1 컨테이너(201)는 네트워크 인터페이스 1(eth 1, 211)를 포함할 수 있다. 또한, 제 2 컨테이너(202) 및 제 3 컨테이너(302)도 eth2, eth3의 네트워크 인터페이스를 포함할 수 있다.
브릿지(302)는 링크 레이어 장치로 Media access address (MAC)를 확인하여 패킷을 네트워크 장치로 전달할 수 있다. 또한, 브릿지(302)는 Address resolution protocol (ARP)를 통해 주변 네트워크 장치들의 정보를 받아 작성된 MAC 주소 테이블의 정보를 이용하여 패킷을 전달할 수 있다.
일 개시에 의하여, 호스트 모드에서는 호스트의 네트워크 인터페이스(301)에서 복수의 컨테이너들의 패킷을 일괄적으로 처리할 수 있다. 따라서, 컨테이너의 부하 증가로 인한 네트워크 성능저하는 발생하지 않는다.
일 개시에 의하여 본원발명에서는 호스트의 네트워크 인터페이스(301)와 브릿지(302)를 모두 이용하여, 네트워크의 성능을 동적으로 제어할 수 있다, 예를 들어, 제 1 컨테이너(201)가 네트워크 인터페이스 1(211)을 이용하여 브릿지(302)로 패킷을 전송한 경우, 브릿지(302)는 제 1 컨테이너(201)가 패킷을 네트워크 장치로 송신할 수 있을 만큼 충분한 자원을 가지고 있는 지 판단할 수 있다. 브릿지(302)는 제 1 컨테이너(201)에 할당된 자원이 송신하려는 패킷의 크기보다 큰 경우에만 패킷을 네트워크 인터페이스(301)로 전달할 수 있다. 일 개시에 의하여 제 1 컨테이너(201)가 가지고 있는 자원이 패킷의 크기보다 작은 경우에는, 패킷을 네트워크 인터페이스(301)로 전달하지 않음으로써 네트워크 성능을 제한할 수 있다.
도 4는 일 개시에 의한 호스트 장치와 컨테이너 장치의 동작을 설명하기 위한 도면이다.
일 개시에 의하여 호스트 장치(100)는 사용자 인터페이스(110), 계산부(120) 및 스케줄러(130)를 포함할 수 있다. 일 개시에 의하여, 제 1 컨테이너 장치(201)는 가상 인터페이스(210) 및 제어부(220)를 포함할 수 있다.
일 개시에 의하여 사용자 인터페이스(110)는 사용자로부터 각각의 컨테이너 단위로 필요한 성능 수치를 수신할 수 있다. 일 개시에 의하여, 사용자 인터페이스(110)는 각 컨테이너의 성능 수치를 전체 네트워크 성능에서 해당 컨테이너가 차지하는 비율(%)로서 입력할 수 있다. 또한, 사용자 인터페이스(110)는 컨테이너의 성능의 최소값 및 최대값 범위를 절대값으로 입력할 수 있다.
일 개시에 의하여, 사용자 인터페이스(110)로부터 수신한 컨테이너의 성능 범위에 기초하여 자원을 동적으로 할당함으로써, 사용자의 의도에 맞도록 자원을 활용할 수 있는 효과가 있다
일 개시에 의하여 계산부(120)와 스케줄러(130)의 동작은 호스트 장치(100)의 프로세서에서 의하여 제어될 수 있다. 일 개시에 따라, 호스트 장치(100)의 프로세서는 계산부 및 스케줄러 중 적어도 하나를 포함할 수 있다.
일 개시에 의하여, 계산부(120) 및 스케줄러(130)는 호스트 장치(100)에 포함된 독립적인 물리적 프로세서로서 동작할 수 있다. 또한, 계산부(120) 및 스케줄러(130)는 하나의 호스트 장치(100)의 프로세서에 포함된 가상의 구성일 수 있다. 이하에서, 계산부(120) 및 스케줄러(130)의 동작을 분리하여 설명하고 있지만, 하나의 프로세서에 의하여 하기 동작들이 실행될 수 있다.
일 개시에 의한 계산부(120)는 컨테이너에 설정된 성능 수치를 기반으로 자원 할당량을 결정할 수 있다. 일 개시에 의하여, 계산부(120)는 사용자 입력에 기초하여 복수의 컨테이너의 가중치를 산출하고, 가중치에 기초하여 복수의 컨테이너에 할당할 자원을 계산할 수 있다. 일 개시에 의하여, 계산부(120)는 사용자 입력으로부터 복수의 컨테이너의 성능 비율을 획득하고, 복수의 컨테이너의 성능 비율에 따라 전체 네트워크에서 보장받을 수 있는 네트워크 성능을 백분율로 계산하여 복수의 컨테이너의 가중치를 산출할 수 있다. 예를 들어, 계산부(120)는 사용자의 입력에 기반하여, 제 1 컨테이너(201)의 가중치를 제 1 가중치, 제 2 컨테이너(202)의 가중치를 제 2 가중치로 결정할 수 있다.
일 개시에 의하여 계산부(120)는 계산된 자원을 복수의 컨테이너에 할당할 수 있다. 일 개시에 의하여 계산부(120)는 자원을 제 1 컨테이너(201)의 가상 인터페이스(210)로 전송할 수 있다. 가상 인터페이스(201)는 할당받은 자원을 제어부(202)로 전달할 수 있으며, 제어부(202)는 자원을 이용하여 제 1 컨테이너(201)를 동작시킬 수 있다. 또한 제어부(202)는 제 1 컨테이너(201)에 할당받은 자원만 제 1 컨테이너(201)의 원활한 동작이 어려운 경우, 가상 인터페이스(201)를 이용하여 호스트(100)로 추가적으로 자원을 요청할 수 있다.
일 개시에 의하여, 계산부(120)는 사용자 입력에 포함된 최소 성능의 절대값을 최소 값으로 결정하고, 사용자 입력에 포함된 최대 성능의 절대값을 최대 값으로 결정할 수 있다. 일 개시에 의하여, 계산부(120)는 가중치에 따라 비례적으로 자원을 할당하여 상대적인 네트워크 성능을 보장할 수 있지만, 사용자가 정량적인 성능 수치를 요구하는 경우에는 이를 만족시키기 어렵다. 그러므로, 사용자의 정량적 성능 보장 요청에 따라 컨테이너의 최소 및 최대 성능을 설정하여 설정 된 범위 내에서 정량적인 성능을 보장할 수 있다.
일 개시에 의하여 계산부(120)는 복수의 컨테이너에 할당할 크레딧을 계산할 수 있다. 예를 들어, 제 1 컨테이너(201)의 제 1 가중치에 따른 크레딧과 제 1 컨테이너(201)의 잔여 크레딧을 더하여 제 1 크레딧을 산출할 수 있다. 이 때, 계산부(120)는 제 1 크레딧이 최소 값과 최대 값 사이에 해당하는지 여부를 판단할 수 있다. 일 개시에 의하여 계산부(120)는 제 1 크레딧이 최소 값과 최대 값 사이에 해당하는 경우, 제 1 크레딧이 전체 크레딧보다 작은지 판단할 수 있다. 일 개시에 의하여, 제 1 크레딧이 전체 크레딧보다 작은 경우, 제 1 크레딧을 제 1 컨테이너(201)로 할당할 수 있다.
일 개시에 의하여 계산부(120)는 가중치에 의하여 할당된 제 1 크레딧이 최대 값보다 큰 경우, 최대 값을 제 1-2 크레딧으로 결정할 수 있다. 일 개시에 의하여 계산부(120)는 성능 최대값에 해당하는 제 1-2 크레딧의 크기만큼 제 1 컨테이너(201)에 할당하고, 제 1 크레딧에서 제 1-2 크레딧을 뺀 차이 값을 다른 컨테이너로 할당할 수 있다. 그에 따라, 계산부(120)는 제 1 컨테이너(201)의 네트워크 성능을 항상 최대 대역폭 이하로 유지할 수 있다.
일 개시에 의하여, 계산부(120)는 제 1 크레딧이 최소 값보다 작은 경우, 최소 값을 제 1-3 크레딧으로 결정할 수 있다. 계산부(120)는 제 1-3 크레딧을 제 1 컨테이너(201)로 할당함으로써, 제 1 컨테이너(201)의 최소 성능을 만족시킬 수 있다. 이 때, 계산부(120)는 제 1-3 크레딧에서 제 1 크레딧을 뺀 차이 값은 다른 컨테이너에 할당할 크레딧으로부터 가져올 수 있다.
일 개시에 의하여, 계산부(120)는 제 1 크레딧 값이 전체 크레딧보다 큰 경우, 제 1 컨테이너가 할당받은 자원을 사용하지 않는 것으로 추정할 수 있다. 이때, 계산부(120)는 제 1 가중치에 따른 크레딧을 제 1 컨테이너에 할당하지 않고, 다른 컨테이너에 분배할 수 있다. 따라서, 네트워크 자원 운영의 효율성을 높일 수 있다.
일 개시에 의하여 스케줄러(130)는 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링할 수 있다. 일 개시에 의하여 스케줄러(130)는 제 1 컨테이너(201)로부터 패킷을 수신하면 리눅스 커널의 브릿지에서 해당 패킷을 수신하여, 네트워크 인터페이스로 전송할 수 있다. 이때, 스케줄러에서는 네트워크 인터페이스로 전송하기 전에 제 1 컨테이너(201)의 잔여 크레딧과 전달받은 패킷의 크기를 비교할 수 있다. 예를 들어, 스케줄러(130)는, 제 1 컨테이너(201)로부터 수신한 패킷의 크기가 제 1 컨테이너(201)의 잔여 크레딧보다 작은 경우, 잔여 크레딧에서 패킷 전송을 위한 크레딧을 감산하고, 패킷을 네트워크 인터페이스로 전송할 수 있다. 다른 실시예에 따라, 스케줄러(130)는 제 1 컨테이너(201)로부터 수신한 패킷의 크기가 제 1 컨테이너(202)의 잔여 크레딧보다 큰 경우, 제 1 컨테이너(201)로부터 수신한 패킷의 메모리를 해제할 수 있다. 일 개시에 의하여, 독점적으로 네트워크 자원을 사용하려고 하는 악의적인 컨테이너의 네트워크 성능을 제한할 수 있어, IoT 장치의 제한된 용량의 초과 사용을 방지할 수 있다.
도 5는 일 개시에 의한 크레딧을 할당하는 계산부의 동작을 설명하는 흐름도이다.
일 실시예에 따른 계산부(120)는 적어도 하나 이상의 컨테이너의 네트워크 인터페이스에 상응하는 현재 크레딧에 기초하여 스케줄링 정책을 산출하고, 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 컨테이너에 대한 작업 요청을 스케줄링할 수 있다.
블록 501에서 일 개시에 의한 계산부(120)는 일정 주기마다 컨테이너를 선택할 수 있다. 예를 들어, 계산부(120)는 10ms마다 주기적으로 컨테이너의 네트워크 인터페이스를 선택할 수 있다.
블록 502에서 일 개시에 의한 계산부(120)는 선택된 컨테이너의 네트워크 인터페이스의 자원인 크레딧 C1을 계산할 수 있다. 이 때, 크레딧 C1은 사용자의 입력에 기반한 가중치에 의해 산출된 크레딧이다.
블록 503에서 일 개시에 의한 계산부(120)는 잔여 크레딧 C0를 합산할 수 있다. 일 개시에 의하여, 계산부(120)는 계산된 C1을 현재 잔여 크레딧인 C0에 더함으로써 잔여 크레딧 C0을 결정할 수 있다.
블록 504에서 일 개시에 의한 계산부(120)는 더해진 잔여 크레딧 C0가 최소 값 최소 값과 최대 값의 범위를 만족하는지 판단할 수 있다.
블록 505에서 일 개시에 의한 계산부(120)는 잔여 크레딧 C0가 최소 값 최소 값과 최대 값의 범위를 만족하는 경우, 잔여 크레딧 C0이 전체 시스템의 크레딧(total C)보다 작은지 판단할 수 있다.
블록 506에서 일 개시에 의한 계산부(120)는 잔여 크레딧 C0가 최소 값 최소 값과 최대 값의 범위를 만족하는 경우, 잔여 크레딧 C0이 전체 시스템의 크레딧(total C)보다 작은경우, 마지막 컨테이너의 네트워크 인터페이스인지 여부를 고려하여 프로세스를 종료할 수 있다.
블록 507에서 일 개시에 의한 계산부(120)는 잔여 크레딧 C0이 최소 값 Min C와 최대 값 Max C의 범위 내에 존재하지 않거나, 전체 시스템의 크레딧 Total C 이하가 아니라면, 크레딧 C2를 재계산할 수 있다
블록 508에서 일 개시에 의한 계산부(120)는 이 전에 계산된 잔여 크레딧 C0과 다시 계산한 크레딧 C2의 차이를 이용해서 CreditLeft로 전체 시스템의 크레딧을 조정할 수 있다. 계산부(120)는 새롭게 계산된 크레딧 C2를 잔여 크레딧 C0에 더하지 않고 그대로 할당하여, 컨테이너의 네트워크 인터페이스의 네트워크 자원으로 활용할 수 있다.
블록 509에서 일 개시에 의한 계산부(120)는 마지막 컨테이너가 아니라면, 다음 컨테이너를 선택하여 크레딧 계산 과정을 반복할 수 있다. 일 개시에 의하여, 시스템 상의 모든 컨테이너의 네트워크 인터페이스의 크레딧 계산이 이루어질 때까지 반복되며 10ms마다 전체 알고리즘이 수행될 수 있다
도 6은 일 개시에 의한 컨테이너의 자원 사용에 따른 자원 재할당을 설명하기 위한 흐름도이다. 일 개시에 의하여 호스트 장치(100)는 복수의 컨테이너의 실제 자원 사용량을 모니터링함으로써, 동적으로 자원을 재 할당할 수 있다.
블록 601에서 일 개시에 의한 호스트 장치(100)는 호스트 장치(100)의 최대 자원양이 복수의 컨테이너에서 사용된 자원양보다 많은지 판단할 수 있다. 이때, 복수의 컨테이너에서 사용된 자원양은 각각의 컨테이너에서 실제로 사용된 자원양의 총합이다.
블록 602에서 일 개시에 의한 호스트 장치(100)는 호스트 장치(100)의 최대 자원양이 복수의 컨테이너에서 사용된 자원양보다 많은 경우, 호스트 장치(100)의 잔여 자원을 산출할 수 있다. 일 개시에 의하여, 호스트 장치(100)는 호스트 장치(100)의 최대 자원량에서 복수의 컨테이너에서 사용된 자원량의 총합을 차감하여, 호스트 장치의 잔여 자원을 산출할 수 있다.
블록 603에서 일 개시에 의한 호스트 장치(100)는 호스트 장치(100)의 잔여 자원을 복수의 컨테이너에 재할당할 수 있다. 이때, 호스트 장치(100)는 호스트 장치의 잔여 자원을 복수의 컨테이너에서 각각 사용된 자원 사용량의 비율에 따라 재할당할 수 있다.
블록 604에서 일 개시에 의한 호스트 장치(100)는 호스트 장치(100)의 최대 자원양이 복수의 컨테이너에서 사용된 자원양보다 적은 경우, 복수의 컨테이너에서 자원이 초과 사용되었다고 판단할 수 있다. 일 개시에 의한 호스트 장치(100)는 복수의 컨테이너에서 사용된 자원량의 총합에서 호스트 장치(100)의 최대 자원량을 차감하여 호스트 장치의 초과 자원을 산출할 수 있다.
블록 605에서 일 개시에 의한 호스트 장치(100)는 호스트 장치(100)의 초과 자원을 복수의 컨테이너에서 각각 사용된 자원 사용량의 비율에 따라 복수개의 분할 자원을 생성할 수 있다.
블록 606에서 일 개시에 의한 호스트 장치(100)는 복수의 컨테이너 각각의 할당 자원에서 복수개의 분할 자원을 차감할 수 있다.
도 7은 일 개시에 의한 복수의 컨테이너의 자원 사용량이 할당된 자원양보다 적은 경우 자원을 재할당하는 것을 설명하는 도면이다.
일 개시에 의하여, 호스트 장치(100)의 자원을 100으로 가정한다. 일 개시에 의하여 호스트 장치(100)는 사용자의 입력에 의한 컨테이너의 성능 비율, 최소값 및 최대값에 기초하여 복수의 컨테이너의 자원을 할당할 수 있다. 예를 들어, 제 1 컨테이너에 50, 제 2 컨테이너에 30, 제 3 컨테이너에 20의 자원을 할당할 수 있다.
일 개시에 의하여, 호스트 장치(100)는 복수의 컨테이너의 실제 자원 사용량을 모니터링할 수 있다. 일 개시에 의하여, 호스트 장치(100)는 제 1 컨테이너에서 사용된 자원이 10, 제 2 컨테이너에서 사용된 자원이 20, 제 3 컨테이너에서 사용된 자원이 30임을 확인할 수 있다. 복수의 컨테이너에서 실제 사용된 자원의 양은 50이며, 전체 잔여 자원의 양은 50이다.
일 개시에 의하여, 호스트 장치(100)는 제 1 컨테이너의 자원 사용률 : 제 2 컨테이너의 자원 사용률 : 제 3 컨테이너의 자원 사용률 = 1:2:1로 결정할 수 있다. 호스트 장치(100)는 전체 잔여 자원의 양인 50을 자원 사용률에 따라 재 분배할 수 있다.
일 개시에 의하여, 호스트 장치(100)는 제 1 컨테이너에 12.5, 제 2 컨테이너로 25, 제 3 컨테이너로 22.5를 재할당할 수 있다. 결과적으로, 제 1 컨테이너는 22.5, 제 2 컨테이너는 55, 제 3 컨테이너는 22.5의 자원을 할당받을 수 있으며, 호스트 장치의 자원활용률은 100%로 유지된다.
도 8은 일 개시에 의한 복수의 컨테이너의 자원 사용량이 할당된 자원양보다 많은 경우 자원을 재할당하는 것을 설명하는 도면이다.
일 개시에 의하여 호스트 장치(100)는 복수의 컨테이너 각각의 가중치, 최소값, 최고값을 고려하여 제 1 컨테이너에 80, 제 2 컨테이너에 60, 제 3 컨테이너에 40의 자원을 할당할 수 있다.
일 개시에 의하여, 복수의 컨테이너의 자원량은 호스트 장치(100)의 최대 자원량을 초과할 수 없지만, 복수의 컨테이너들에 할당된 자원량의 총합은 호스트 장치(100)의 최대 자원량을 초과할 수도 있다. 이렇게 복수의 컨테이너들에 자원을 초과할당(over-commit)하는 것은 복수의 컨테이너들가 언제나 모든 자원을 이용하여 동작하고 있는 것이 아니므로, 복수의 컨테이너들를 통해 처리되는 작업의 효율성을 증대시키기 위함이다. 일 개시에 의하여, 가상화된 복수의 컨테이너들에 할당되고, 사용되는 자원량은 호스트 장치(100)의 기본 성능내에서 가상화 기술에 따라 소프트웨어적으로 구현된 것이기 때문에 복수의 컨테이너들에 자원을 초과할당하는 것이 가능하다.
가상화된 복수의 컨테이너들은 최초에 할당된 자원량을 상한으로 하여 데이터를 처리할 수 밖에 없으므로, 각 가상화된 복수의 컨테이너들이 사용하는 자원량은 할당된 할당 자원량을 초과하지는 않는다.
다만, 전술한 것과 같이 호스트 장치(100) 내에 구현되는 가상화된 복수의 컨테이너들의 데이터 처리의 효율성을 위해서, 복수의 컨테이너들의 할당 자원량의 총합은 호스트 장치(100)의 최대 자원량을 초과할 수도 있다. 그에 따라 복수의 컨테이너들이 사용하는 자원량의 총합도 호스트 장치(100)의 최대 자원량을 초과하는 경우도 발생할 수 있다. 이런 상황에서 계측되는 복수의 컨테이너들의 자원의 사용량은, 복수의 컨테이너들의 내부에서 측정된 값으로서, 호스트 장치(100)의 자원량의 최대값이 한정되어 있는 이상, 복수의 컨테이너들의 자원의 실제 사용량은 복수의 컨테이너들의 내부에서 측정된 값보다 낮은 값이 되어야 한다.
일 개시에 의하여, 호스트 장치(100)는 복수의 컨테이너의 자원 사용량을 추측할 수 있다. 일 개시에 의하여, 호스트 장치(100)는 제 1 컨테이너에서 사용될 자원이 61, 제 2 컨테이너에서 사용될 자원이 29, 제 3 컨테이너에서 사용될 자원이 28임을 추측할 수 있다. 복수의 컨테이너에서 실제 사용될 것으로 추측된 자원의 양은 118이며, 전체 자원 중 초과될 수 있는 자원의 양은 18이다.
일 개시에 의하여, 호스트 장치(100)는 초과 자원을 복수의 컨테이너에서 사용된 자원의 사용량의 비율에 따라 복수개의 분할 자원을 산출할 수 있다. 호스트 장치(100)는 61:29:28의 비율로 분할 자원을 산출할 수 있다.
일 개시에 의하여, 호스트 장치(100)는 분할 자원을 복수의 컨테이너의 할당 자원에서 차감함으로써, 복수의 컨테이너에 자원을 재할당할 수 있다. 예를 들어, 호스트 장치(100)는 제 1 컨테이너의 재할당 자원을 53, 제 2 컨테이너의 재할당 자원을 23, 제 3 컨테이너의 재할당 자원을 24로 변경하여 재할당할 수 있다. 이때, 호스트 장치(100)의 자원활용률은 100%로 운용되는 바, 작업 보존성의 효과를 제공할 수 있다.
도 9는 일 개시에 의한 스케줄러의 동작을 설명하기 위한 도면이다.
블록 901에서 일 개시에 의한 스케줄러는 컨테이너로부터 서비스 제공을 위한 패킷을 수신할 수 있다.
블록 902에서 일 개시에 의한 스케줄러는 패킷의 크기와 컨테이너에 남은 자원의 크기를 비교할 수 있다.
블록 903에서 일 개시에 의한 스케줄러는 패킷의 크기가 더 큰 경우, 패킷을 네트워크 장치로 전송하지 않는다. 스케줄러는 패킷의 메모리를 해제함으로써, 특정 컨테이너의 자원 독점 사용을 방지할 수 있다.
블록 904에서 일 개시에 의한 컨테이너에 남은 자원에서 패킷 전송을 위한 자원을 감산할 수 있다.
블록 905에서 일 개시에 의한 스케줄러는 네트워크 장치로 패킷을 전송할 수 있다. 이 때, 컨테이너는 자원을 사용함으로써, 서비스를 제공할 수 있다.
가상화 환경에서의 자원 할당 방법 및 장치는 설명된 실시예들의 구성과 방법에 한정되게 적용될 수 있는 것이 아니라, 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
본 명세서에서 설명된 컴퓨터 시스템 및 컴퓨터 시스템에서 수행하는 메모리 오류 검출 방법은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.
소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 명세서에 개시된 실시예들에 따른 컴퓨터 시스템 및 컴퓨터 시스템에서 메모리 오류를 검출하는 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 소프트웨어 프로그램, 소프트웨어 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예를 들어, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션(downloadable application))을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 소프트웨어 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 단말(예로, 초음파 진단 장치)로 구성되는 시스템에서, 서버의 저장매체 또는 단말의 저장매체를 포함할 수 있다. 또는, 서버 또는 단말과 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 단말 또는 제3 장치로 전송되거나, 제3 장치로부터 단말로 전송되는 소프트웨어 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 단말 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 단말 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 단말이 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
또 다른 예로, 제3 장치가 컴퓨터 프로그램 제품을 실행하여, 제3 장치와 통신 연결된 단말이 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다.
제3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 장치는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 장치는 프리로드된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 컴퓨터 시스템 또는 모듈 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (20)

  1. 가상화된 복수의 컨테이너에 자원을 동적으로 할당하는 호스트 장치에서,
    상기 복수의 컨테이너로 자원의 할당을 요청하는 사용자 입력을 수신하는 사용자 인터페이스;
    상기 사용자 입력에 기초하여 상기 복수의 컨테이너의 가중치를 산출하고, 상기 가중치에 기초하여 상기 복수의 컨테이너에 할당할 자원을 계산하고, 상기 계산된 자원을 상기 복수의 컨테이너에 할당하고, 상기 복수의 컨테이너의 자원 사용량을 반영하여, 상기 복수의 컨테이너에 할당할 자원을 동적으로 재계산하는 계산부;및
    상기 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링하는 스케줄러;를 포함하는, 장치.
  2. 제 1 항에 있어서,
    상기 계산부는,
    상기 사용자 입력으로부터 상기 복수의 컨테이너의 성능 비율을 획득하고, 상기 복수의 컨테이너의 성능 비율에 따라 전체 네트워크에서 보장받을 수 있는 네트워크 성능을 백분율로 계산하여 상기 복수의 컨테이너의 가중치를 산출하는 것을 특징으로 하는, 장치.
  3. 제 1 항에 있어서,
    상기 계산부는,
    상기 사용자 입력에 포함된 최소 성능의 절대값을 최소 값으로 결정하고,
    상기 사용자 입력에 포함된 최대 성능의 절대값을 최대 값으로 결정하는, 장치.
  4. 제 2 항에 있어서,
    상기 계산부는,
    제 1 컨테이너의 제 1 가중치에 따른 크레딧과 제 1 컨테이너의 잔여 크레딧을 더하여 제 1 크레딧을 산출하고,
    상기 제 1 크레딧이 최소 값과 최대 값 사이에 해당하는지 여부를 판단하고,
    상기 제 1 크레딧이 상기 최소 값과 상기 최대 값 사이에 해당하는 경우, 상기 제 1 크레딧이 전체 크레딧보다 작은지 판단하고,
    상기 제 1 크레딧이 전체 크레딧보다 작은 경우, 상기 제 1 크레딧을 제 1 컨테이너로 할당하는, 장치.
  5. 제 4 항에 있어서,
    상기 계산부는,
    상기 제 1 크레딧이 상기 최대 값보다 큰 경우, 상기 최대 값을 제 1-2 크레딧으로 결정하고, 상기 제 1-2 크레딧과 상기 제 1 크레딧의 차이 값을 다른 컨테이너로 할당하고,
    상기 제 1 크레딧이 상기 최소 값보다 작은 경우, 상기 최소 값을 제 1-3 크레딧으로 결정하고, 상기 제 1-3 크레딧을 제 1 컨테이너로 할당하는, 장치.
  6. 제 4 항에 있어서,
    상기 계산부는,
    상기 제 1 크레딧이 상기 전체 크레딧보다 큰 경우, 상기 제 1 가중치에 따른 크레딧을 상기 제 1 컨테이너에 할당하지 않고, 다른 컨테이너에 할당하는, 장치.
  7. 제 1 항에 있어서,
    상기 스케줄러는,
    제 1 컨테이너로부터 수신한 패킷의 크기가 상기 제 1 컨테이너의 잔여 크레딧보다 작은 경우, 상기 잔여 크레딧에서 패킷 전송을 위한 크레딧을 감산하고, 상기 패킷을 네트워크 장치로 전송하고,
    제 1 컨테이너로부터 수신한 패킷의 크기가 상기 제 1 컨테이너의 잔여 크레딧보다 큰 경우, 상기 제 1 컨테이너로부터 수신한 패킷의 메모리를 해제하는, 장치.
  8. 제 1 항에 있어서,
    상기 계산부는
    상기 호스트 장치의 최대 자원량에서 상기 복수의 컨테이너에서 사용된 자원량의 총합을 차감하여, 상기 호스트 장치의 잔여 자원을 산출하고,
    상기 호스트 장치의 잔여 자원을 상기 복수의 컨테이너에서 각각 사용된 자원 사용량의 비율에 따라 재할당하는, 장치.
  9. 제 1 항에 있어서,
    상기 계산부는,
    상기 복수의 컨테이너에서 사용된 자원량의 총합에서 상기 호스트 장치의 최대 자원량을 차감하여 상기 호스트 장치의 초과 자원을 산출하고,
    상기 호스트 장치의 초과 자원을 상기 복수의 컨테이너에서 각각 사용된 자원 사용량의 비율에 따라 복수개의 분할 자원을 생성하고,
    상기 복수의 컨테이너 각각의 할당 자원에서 상기 복수개의 분할 자원을 차감하는, 장치.
  10. 제 1 항에 있어서,
    상기 사용자 인터페이스는,
    상기 호스트 장치에서 새로운 컨테이너를 생성할 때, 컨테이너의 성능 비율의 백분율, 컨테이너의 최소 성능의 절대값 및 컨테이너의 최대 성능의 절대값을 포함하는 사용자 입력을 수신하는, 장치.
  11. 가상화된 복수의 컨테이너를 포함하는 호스트 장치에서 자원을 동적으로 할당하는 방법에 있어서,
    상기 복수의 컨테이너로 자원의 할당을 요청하는 사용자 입력을 수신하는 단계;
    상기 사용자 입력에 기초하여 상기 복수의 컨테이너의 가중치를 산출하고, 상기 가중치에 기초하여 상기 복수의 컨테이너에 할당할 자원을 계산하는 단계;
    상기 계산된 자원을 상기 복수의 컨테이너에 할당하는 단계;
    상기 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링하는 단계;및
    상기 복수의 컨테이너의 자원 사용량을 반영하여, 상기 복수의 컨테이너에 할당할 자원을 동적으로 재계산하는 단계;를 포함하는, 방법.
  12. 제 11 항에 있어서,
    상기 복수의 컨테이너의 가중치를 산출하는 단계는,
    상기 사용자 입력으로부터 상기 복수의 컨테이너의 성능 비율을 획득하는 단계;
    상기 복수의 컨테이너의 성능 비율에 따라 전체 네트워크에서 보장받을 수 있는 네트워크 성능을 백분율로 계산하여 상기 복수의 컨테이너의 가중치를 산출하는 단계;를 포함하는, 방법.
  13. 제 11 항에 있어서,
    상기 복수의 컨테이너의 가중치를 산출하는 단계는,
    상기 사용자 입력에 포함된 최소 성능의 절대값을 최소 값으로 결정하고,
    상기 사용자 입력에 포함된 최대 성능의 절대값을 최대 값으로 결정하는, 방법.
  14. 제 12 항에 있어서,
    제 1 컨테이너의 제 1 가중치에 따른 크레딧과 제 1 컨테이너의 잔여 크레딧을 더하여 제 1 크레딧을 산출하는 단계;
    상기 제 1 크레딧이 최소 값과 최대 값 사이에 해당하는지 여부를 판단하는 단계;
    상기 제 1 크레딧이 상기 최소 값과 상기 최대 값 사이에 해당하는 경우, 상기 제 1 크레딧이 전체 크레딧보다 작은지 판단하는 단계;및
    상기 제 1 크레딧이 전체 크레딧보다 작은 경우, 상기 제 1 크레딧을 제 1 컨테이너로 할당하는 단계;를 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 제 1 크레딧이 상기 최대 값보다 큰 경우, 상기 최대 값을 제 1-2 크레딧으로 결정하고, 상기 제 1-2 크레딧과 상기 제 1 크레딧의 차이 값을 다른 컨테이너로 할당하는 단계;및
    상기 제 1 크레딧이 상기 최소 값보다 작은 경우, 상기 최소 값을 제 1-3 크레딧으로 결정하고, 상기 제 1-3 크레딧을 제 1 컨테이너로 할당하는 단계;를 포함하는, 방법.
  16. 제 14 항에 있어서,
    상기 제 1 크레딧이 상기 전체 크레딧보다 큰 경우, 상기 제 1 가중치에 따른 크레딧을 상기 제 1 컨테이너에 할당하지 않고, 다른 컨테이너에 분배하는 단계;를 포함하는, 방법.
  17. 제 11 항에 있어서,
    제 1 컨테이너로부터 수신한 패킷의 크기가 상기 제 1 컨테이너의 잔여 크레딧보다 작은 경우, 상기 잔여 크레딧에서 패킷 전송을 위한 크레딧을 감산하고, 상기 패킷을 네트워크 장치로 전송하는 단계;및
    제 1 컨테이너로부터 수신한 패킷의 크기가 상기 제 1 컨테이너의 잔여 크레딧보다 큰 경우, 상기 제 1 컨테이너로부터 수신한 패킷의 메모리를 해제하는 단계;를 포함하는, 방법.
  18. 제 11 항에 있어서,
    상기 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링하는 단계는,
    상기 호스트 장치의 최대 자원량에서 상기 복수의 컨테이너에서 사용된 자원량의 총합을 차감하여, 상기 호스트 장치의 잔여 자원을 산출하는 단계;및
    상기 호스트 장치의 잔여 자원을 상기 복수의 컨테이너에서 각각 사용된 자원 사용량의 비율에 따라 재할당하는 단계;를 포함하는, 방법.
  19. 제 11 항에 있어서,
    상기 복수의 컨테이너에 할당할 자원을 동적으로 재계산하는 단계는,
    상기 복수의 컨테이너에서 사용된 자원량의 총합에서 상기 호스트 장치의 최대 자원량을 차감하여 상기 호스트 장치의 초과 자원을 산출하는 단계;
    상기 호스트 장치의 초과 자원을 상기 복수의 컨테이너에서 각각 사용된 자원 사용량의 비율에 따라 복수개의 분할 자원을 결정하는 단계;및
    상기 복수의 컨테이너 각각에 할당된 자원에서 상기 복수개의 분할 자원을 차감하는 단계;를 포함하는, 방법.
  20. 복수의 컨테이너로 자원의 할당을 요청하는 사용자 입력을 수신하는 동작;
    상기 사용자 입력에 기초하여 상기 복수의 컨테이너의 가중치를 산출하고, 상기 가중치에 기초하여 상기 복수의 컨테이너에 할당할 자원을 계산하는 동작;
    상기 계산된 자원을 상기 복수의 컨테이너에 할당하는 동작;
    상기 복수의 컨테이너의 서비스 제공에 따른 자원 사용량을 모니터링하는 동작; 및
    상기 복수의 컨테이너의 자원 사용량을 반영하여, 상기 복수의 컨테이너에 할당할 자원을 동적으로 재계산하는 동작을 수행하도록 하는 프로그램이 저장된 기록매체를 포함하는 컴퓨터 프로그램 제품.
PCT/KR2019/006260 2018-06-11 2019-05-24 가상화 환경에서의 자원 할당 방법 및 장치 WO2019240400A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/251,036 US20210191751A1 (en) 2018-06-11 2019-05-24 Method and device for allocating resource in virtualized environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180067032A KR102640232B1 (ko) 2018-06-11 2018-06-11 가상화 환경에서의 자원 할당 방법 및 장치
KR10-2018-0067032 2018-06-11

Publications (1)

Publication Number Publication Date
WO2019240400A1 true WO2019240400A1 (ko) 2019-12-19

Family

ID=68843430

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/006260 WO2019240400A1 (ko) 2018-06-11 2019-05-24 가상화 환경에서의 자원 할당 방법 및 장치

Country Status (3)

Country Link
US (1) US20210191751A1 (ko)
KR (1) KR102640232B1 (ko)
WO (1) WO2019240400A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021149808A (ja) * 2020-03-23 2021-09-27 富士通株式会社 Cpu状態表示方法及びcpu状態表示プログラム
KR20210157246A (ko) 2020-06-19 2021-12-28 재단법인대구경북과학기술원 임베디드시스템에서 동적자원관리방법 및 장치
US11740921B2 (en) * 2020-11-23 2023-08-29 Google Llc Coordinated container scheduling for improved resource allocation in virtual computing environment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120060171A1 (en) * 2010-09-02 2012-03-08 International Business Machines Corporation Scheduling a Parallel Job in a System of Virtual Containers
KR20150007698A (ko) * 2013-07-12 2015-01-21 이규호 가상 데스크탑 서비스를 위한 부하 분산 시스템
KR20150011250A (ko) * 2013-07-22 2015-01-30 한국전자통신연구원 클라우드 센터 관리 방법 및 그 시스템
KR101740490B1 (ko) * 2015-12-29 2017-05-26 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 사전 오토 스케일링 시스템 및 그 방법
KR20170083890A (ko) * 2016-01-11 2017-07-19 삼성전자주식회사 가중치 기반 멀티-큐 가능 리소스 공유 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143413B2 (en) * 2002-05-15 2006-11-28 Hewlett-Packard Development Company, L.P. Method and system for allocating system resources among applications using weights
US7136800B1 (en) * 2002-10-18 2006-11-14 Microsoft Corporation Allocation of processor resources in an emulated computing environment
JP2006092053A (ja) * 2004-09-22 2006-04-06 Nec Corp システム使用率管理装置及びそれに用いるシステム使用率管理方法並びにそのプログラム
US9081622B2 (en) * 2013-05-13 2015-07-14 Vmware, Inc. Automated scaling of applications in virtual data centers
US10387209B2 (en) * 2015-09-28 2019-08-20 International Business Machines Corporation Dynamic transparent provisioning of resources for application specific resources

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120060171A1 (en) * 2010-09-02 2012-03-08 International Business Machines Corporation Scheduling a Parallel Job in a System of Virtual Containers
KR20150007698A (ko) * 2013-07-12 2015-01-21 이규호 가상 데스크탑 서비스를 위한 부하 분산 시스템
KR20150011250A (ko) * 2013-07-22 2015-01-30 한국전자통신연구원 클라우드 센터 관리 방법 및 그 시스템
KR101740490B1 (ko) * 2015-12-29 2017-05-26 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 사전 오토 스케일링 시스템 및 그 방법
KR20170083890A (ko) * 2016-01-11 2017-07-19 삼성전자주식회사 가중치 기반 멀티-큐 가능 리소스 공유 방법

Also Published As

Publication number Publication date
US20210191751A1 (en) 2021-06-24
KR20190140341A (ko) 2019-12-19
KR102640232B1 (ko) 2024-02-26

Similar Documents

Publication Publication Date Title
US11221884B2 (en) Hybrid virtual machine configuration management
WO2019240400A1 (ko) 가상화 환경에서의 자원 할당 방법 및 장치
CN105100184B (zh) 虚拟机的可靠且确定的实时迁移
US8863138B2 (en) Application service performance in cloud computing
JP6089344B2 (ja) 通信装置のハードウェア・リソースの仮想化管理方法および関連装置
EP3313023A1 (en) Life cycle management method and apparatus
JP5737050B2 (ja) 情報処理装置、割込み制御方法および割込み制御プログラム
US9934062B2 (en) Technologies for dynamically allocating hardware acceleration units to process data packets
CN107122233B (zh) 一种面向tsn业务的多vcpu自适应实时调度方法
CN112995272A (zh) 云计算系统中虚拟机访问物理服务器的方法、装置和系统
US20110239216A1 (en) Service providing system, a virtual machine server, a service providing method, and a program thereof
WO2016047814A1 (ko) 클라우드 api 키를 이용한 자원 할당 방법 및 이를 위한 장치
US9712436B2 (en) Adaptive load balancing for bridged systems
KR20110046719A (ko) 복수 코어 장치 및 그의 로드 조정 방법
CN109885381B (zh) 基于kvm虚拟化实现内存份额调度管理的方法及其系统
WO2018054271A1 (zh) 一种数据传输方法及装置
US11416306B1 (en) Placement to optimize heterogeneous physical host utilization
US10353857B2 (en) Parallel processing apparatus and method for controlling communication
WO2021132823A1 (en) Method and apparatus for scaling resources of graphics processing unit in cloud computing system
EP3605346A1 (en) Control device, control system, control method and program
US11412059B2 (en) Technologies for paravirtual network device queue and memory management
WO2021095943A1 (ko) 서비스 프로파일을 고려한 컨테이너의 배치 방법
WO2019091284A1 (zh) 设备升级方法及装置
Xu et al. Optimal construction of virtual networks for cloud-based MapReduce workflows
US20190075062A1 (en) Dynamic Workload Allocation

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19820545

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19820545

Country of ref document: EP

Kind code of ref document: A1