KR101743028B1 - Apparatus and method of dynamic resource allocation algorithm for service differentiation in virtualized environments - Google Patents

Apparatus and method of dynamic resource allocation algorithm for service differentiation in virtualized environments Download PDF

Info

Publication number
KR101743028B1
KR101743028B1 KR1020160004794A KR20160004794A KR101743028B1 KR 101743028 B1 KR101743028 B1 KR 101743028B1 KR 1020160004794 A KR1020160004794 A KR 1020160004794A KR 20160004794 A KR20160004794 A KR 20160004794A KR 101743028 B1 KR101743028 B1 KR 101743028B1
Authority
KR
South Korea
Prior art keywords
credit
network
virtual machine
scheduling
virtual machines
Prior art date
Application number
KR1020160004794A
Other languages
Korean (ko)
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 KR1020160004794A priority Critical patent/KR101743028B1/en
Application granted granted Critical
Publication of KR101743028B1 publication Critical patent/KR101743028B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • H04L47/823

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 가상화 기술에 관한 것이며, 보다 상세하게는 가상화 시스템에서의 네트워크 성능에 관한 것으로서, 일측에 따르면, 네트워크 스케줄링 장치는 적어도 하나 이상의 가상머신의 네트워크 인터페이스에 상응하는 현재 크레딧에 기초하여 스케줄링 정책을 산출하는 계산부, 및 상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하는 스케줄러를 포함한다.The present invention relates to a virtualization technology, and more particularly to network performance in a virtualization system. According to one aspect, a network scheduling device includes a scheduling policy based on a current credit corresponding to a network interface of at least one or more virtual machines And a scheduler for scheduling a work request for the at least one or more virtual machines based on the calculated scheduling policy.

Description

가상화 환경에서 네트워크 성능 차등화를 위한 동적 자원 할당 장치 및 방법{APPARATUS AND METHOD OF DYNAMIC RESOURCE ALLOCATION ALGORITHM FOR SERVICE DIFFERENTIATION IN VIRTUALIZED ENVIRONMENTS}[0001] APPARATUS AND METHOD OF DYNAMIC RESOURCE ALLOCATION ALGORITHM FOR SERVICE DIFFERENTIATION IN VIRTUALIZED ENVIRONMENTS [0002]

본 발명은 가상화 기술에 관한 것이며, 보다 상세하게는 가상화 시스템에서의 네트워크 성능에 관한 것이다.The present invention relates to virtualization technology, and more particularly, to network performance in a virtualization system.

클라우드 컴퓨팅은 인터넷을 이용하여 원격의 사용자에게 컴퓨팅 자원을 제공하는 서비스로 시간 및 비용 측면에서 효율이 높아 기업과 소비자로부터 각광받고 있다. 클라우드 서비스는 사용자가 서비스를 이용한 만큼 요금을 지불하는 'pay-as-you-go' 모델을 기반으로 한다. 점점 늘어나는 수요와 다양해지는 사용자들의 요구사항을 만족시키기 위해 최근 클라우드 서비스 공급자는 서비스 이용량과 함께 서비스 품질(QoS: Quality of Service) 또한 사용자가 선택할 수 있도록 하고 있다. 사용자는 선택한 서비스 품질 수준에 따라 금액을 지불하고 공급자는 이를 만족하는 서비스 품질을 보장하는 것이다. 따라서 공급자 측면에서 클라우드 서비스의 신뢰도 향상을 위해 안정적인 서비스 품질 보장은 매우 중요하다.Cloud computing is a service that provides computing resources to remote users by using the Internet, and it is attracting attention from companies and consumers because of its high efficiency in terms of time and cost. The cloud service is based on a 'pay-as-you-go' model where users pay as much as they use the service. In order to meet the growing demand and diverse users' needs, cloud service providers have recently been able to select quality of service (QoS) along with service usage. The user pays the amount according to the selected service quality level and the supplier guarantees the quality of service satisfying it. Therefore, it is very important to ensure stable service quality in order to improve the reliability of cloud service on the supplier side.

하지만, 클라우드 컴퓨팅이 기반으로 하는 가상화 환경은 단일 물리머신을 여러 사용자가 공유하기 때문에 사용자 간의 성능 간섭 현상이 발생하여 사용자에 따른 안정적인 서비스 품질 보장을 어렵게 한다. 그렇기 때문에 가상화 환경에서의 자원 공유로 인한 성능 간섭을 막고, 각각의 사용자에 따른 안정적인 성능 보장이 중요해지고 있다. 특히 클라우드 서비스에서 사용자의 체감 품질(QoE: Quality of Experience)에 많은 영향을 끼치는 네트워크의 성능 보장을 주제로 한 연구들이 많이 진행되고 있다. 대부분의 연구들은 피드백 컨트롤을 이용하여 각 사용자의 네트워크 성능 요구량과 실제 사용량을 분석하여 동적으로 사용자의 네트워크 성능을 조절하는 방식을 취하고 있다. 하지만 이러한 방식은 높은 CPU 오버헤드가 발생하는 한계점이 있다. 또한 기존 연구들에서 제시하는 성능 제어 정책은 가중치에 따라 비례적으로 성능을 분배하거나, 최소 혹은 최대 대역폭 성능을 제공하는 등 한 종류의 정책만을 지원하기 때문에 다양한 사용자의 요구사항을 만족시켜야 하는 현재의 클라우드 컴퓨팅 환경에는 적합하지 않다.However, the virtualization environment on which cloud computing is based has a performance interference between users because a single physical machine is shared by multiple users, making it difficult to guarantee stable service quality according to users. Therefore, it is important to prevent performance interference due to resource sharing in a virtualized environment and ensure stable performance for each user. Especially, there are many studies on the guarantee of network performance that have a great effect on user 's quality of experience (QoE) in cloud service. Most researches use feedback control to analyze each user's network performance requirement and actual usage, and dynamically adjust the user's network performance. However, this method has a limitation that high CPU overhead occurs. In addition, performance control policies proposed in previous studies support only one type of policy, such as distributing performance proportionally according to weights, providing minimum or maximum bandwidth performance, It is not appropriate for a cloud computing environment.

드라이버 도메인이 가상머신들의 네트워크 작업 요청을 실제 하드웨어에 전달하고 그 결과를 가상머신에 알려줌으로써 네트워크 작업을 처리하게 된다. The driver domain handles network work by delivering network work requests of virtual machines to real hardware and informing the virtual machines of the results.

도 1은 기존 가상화 환경의 네트워크 처리 방식을 설명하는 도면이다.1 is a diagram illustrating a network processing method of an existing virtualization environment.

도 1의 시스템(100)에서 보는 바와 같이, 가상머신과 드라이버 도메인 간의 통신은 공유 메모리와 가상 인터럽트를 통해 이루어 지는데, 네트워크 작업 요청 혹은 처리 결과를 공유 메모리에 저장하고 가상 인터럽트를 통해 반대편 도메인에 신호를 보내면 반대편 도메인에서 공유 메모리의 정보를 이용하여 요청을 처리하거나 결과를 받게 된다. 이 때, 가상머신이 여러 개인 경우 드라이버 도메인은 가상머신들의 작업 요청을 Round-Robin 방식으로 스케줄링 하고 이를 차례대로 처리하기 때문에, 각 가상머신들의 네트워크 성능은 모두 동일하게 나타난다.As shown in the system 100 of FIG. 1, the communication between the virtual machine and the driver domain is performed through the shared memory and the virtual interrupt. The network operation request or the processing result is stored in the shared memory, , The opposite domain processes the request using the information of the shared memory or receives the result. In this case, in the case of multiple virtual machines, the driver domain schedules the work requests of the virtual machines in a round-robin manner and processes them in turn, so that the network performance of each virtual machine is the same.

대한민국 등록특허 제10-1275293호Korean Patent No. 10-1275293 대한민국 등록특허 제10-1454837호Korean Patent No. 10-1454837

일측에 따르면, 네트워크 스케줄링 장치는 적어도 하나 이상의 가상머신의 네트워크 인터페이스에 상응하는 현재 크레딧에 기초하여 스케줄링 정책을 산출하는 계산부, 및 상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하는 스케줄러를 포함한다.According to one aspect, a network scheduling apparatus includes a calculation unit that calculates a scheduling policy based on a current credit corresponding to a network interface of at least one or more virtual machines, and a processor that calculates, based on the calculated scheduling policy, And a scheduler for scheduling requests.

일실시예에 따른 상기 계산부는, 가상머신 별로 부여된 가중치에 따른 크레딧 값과 잔여 크레딧을 이용하여 현재 크레딧을 산출한다.The calculation unit calculates a current credit using a credit value according to a weight value assigned to each virtual machine and a residual credit.

일실시예에 따른 상기 계산부는, 상기 현재 크레딧이 최소 값과 최대 값 사이의 범위 내에 포함되는지 여부를 판단하고, 상기 판단 결과 포함되지 않는다면 잔여 크레딧과 가중치에 따른 크레딧 값의 차이를 반영해서 현재 크레딧을 산출한다.The calculation unit may determine whether the current credit is within a range between a minimum value and a maximum value, and if the current credit is not included as a result of the determination, reflect the difference between the remaining credit and the credit value according to the weight, .

일실시예에 따른 상기 계산부는, 상기 판단 결과 포함된다면, 상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하도록 스케줄러에 요청한다.The calculation unit according to an embodiment requests the scheduler to schedule a work request for the at least one or more virtual machines based on the calculated scheduling policy, if the determination result is included.

일실시예에 따른 상기 계산부는, 상기 적어도 하나 이상의 가상머신에 대한 네트워크 이용량의 변화를 고려하여 자원 할당량을 산출한다.The calculation unit calculates a resource allocation amount in consideration of a change in network usage for the at least one or more virtual machines.

일실시예에 따른 상기 계산부는, 상기 적어도 하나 이상의 가상머신에 대한 잔여 네트워크 자원 변수를 이용하여 상기 적어도 하나 이상의 가상머신의 네트워크 이용량을 추정하고, 상기 스케줄러는 추정된 이용량에 기초하여, 상기 적어도 하나 이상의 가상머신에 대한 잔여 크레딧이 전체 시스템 크레딧 이상일 경우 해당 가상머신에 할당되는 네트워크 자원을 다른 가상머신에 분배한다.The calculating unit may estimate a network usage amount of the at least one or more virtual machines by using a remaining network resource variable for the at least one or more virtual machines, and the scheduler may calculate, based on the estimated usage amount, When the remaining credits for at least one or more virtual machines are equal to or greater than the total system credits, the network resources allocated to the virtual machines are distributed to the other virtual machines.

일실시예에 따른 네트워크 스케줄링 방법은 적어도 하나 이상의 가상머신의 네트워크 인터페이스에 상응하는 현재 크레딧에 기초하여 스케줄링 정책을 산출하는 단계, 및 상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하는 단계를 포함한다.A network scheduling method according to an exemplary embodiment includes: calculating a scheduling policy based on a current credit corresponding to a network interface of at least one or more virtual machines; and calculating, based on the calculated scheduling policy, And scheduling the request.

일실시예에 따른 상기 산출하는 단계는, 적어도 하나 이상의 가상머신에 부여된 가중치에 따른 크레딧 값과 잔여 크레딧을 이용하여 현재 크레딧을 산출하는 단계를 포함한다.The calculating step may include calculating a current credit using a credit value and a residual credit according to a weight given to at least one or more virtual machines.

일실시예에 따른 상기 산출하는 단계는, 상기 현재 크레딧이 최소 값과 최대 값 사이의 범위 내에 포함되는지 여부를 판단하는 단계, 및 상기 판단 결과 포함되지 않는다면 잔여 크레딧과 가중치에 따른 크레딧 값의 차이를 반영해서 현재 크레딧을 산출하고, 상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하도록 스케줄러에 요청하는 단계를 포함한다.The calculating step may include determining whether the current credit is included in a range between a minimum value and a maximum value, and if not, determining a difference between a remaining credit value and a credit value according to the weight value And requesting the scheduler to schedule a work request for the at least one or more virtual machines based on the calculated scheduling policy.

일실시예에 따른 상기 산출하는 단계는, 상기 적어도 하나 이상의 가상머신에 대한 네트워크 이용량의 변화를 고려하여 자원 할당량을 산출하는 단계를 포함한다.The calculating step according to an embodiment includes calculating a resource allocation amount considering a change in a network usage amount for the at least one or more virtual machines.

일실시예에 따른 상기 산출하는 단계는, 상기 적어도 하나 이상의 가상머신에 대한 잔여 네트워크 자원 변수를 이용하여 상기 적어도 하나 이상의 가상머신의 네트워크 이용량을 추정하는 단계, 상기 스케줄러는 추정된 이용량에 기초하여, 상기 적어도 하나 이상의 가상머신에 대한 잔여 크레딧이 전체 시스템 크레딧 이상일 경우 해당 가상머신에 할당되는 네트워크 자원을 다른 가상머신에 분배하는 단계를 포함한다.The calculating step according to an embodiment includes estimating a network usage amount of the at least one or more virtual machines using a remaining network resource variable for the at least one or more virtual machines, And distributing network resources allocated to the virtual machine to another virtual machine when the remaining credit for the at least one virtual machine is equal to or greater than the total system credit.

일실시예에 따른 프로그램은 적어도 하나 이상의 가상머신의 네트워크 인터페이스에 상응하는 현재 크레딧에 기초하여 스케줄링 정책을 산출하는 명령어 세트, 및 상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하는 명령어 세트를 포함한다.A program according to an embodiment includes a set of instructions for calculating a scheduling policy based on a current credit corresponding to a network interface of at least one or more virtual machines, and a processor configured to generate a task request for the at least one or more virtual machines based on the computed scheduling policy Lt; RTI ID = 0.0 > a < / RTI >

도 1은 기존 가상화 환경의 네트워크 처리 방식을 설명하는 도면이다.
도 2는 본 발명의 일실시예에 따른 가상화 환경의 네트워크 처리 방식을 설명하는 도면이다.
도 3은 일실시예에 따른 네트워크 스케줄링 장치를 설명하는 도면이다.
도 4는 일실시예에 따른 네트워크 스케줄링 방법을 설명하는 도면이다.
1 is a diagram illustrating a network processing method of an existing virtualization environment.
2 is a diagram illustrating a network processing method of a virtualization environment according to an embodiment of the present invention.
3 is a diagram illustrating a network scheduling apparatus according to an exemplary embodiment of the present invention.
4 is a diagram illustrating a network scheduling method according to an embodiment.

이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the rights is not limited or limited by these embodiments. Like reference symbols in the drawings denote like elements.

아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.The terms used in the following description are chosen to be generic and universal in the art to which they are related, but other terms may exist depending on the development and / or change in technology, customs, preferences of the technician, and the like. Accordingly, the terminology used in the following description should not be construed as limiting the technical thought, but should be understood in the exemplary language used to describe the embodiments.

또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.Also, in certain cases, there may be a term chosen arbitrarily by the applicant, in which case the meaning of the detailed description in the corresponding description section. Therefore, the term used in the following description should be understood based on the meaning of the term, not the name of a simple term, and the contents throughout the specification.

도 2는 본 발명의 일실시예에 따른 가상화 환경의 네트워크 처리 방식을 설명하는 도면이다.2 is a diagram illustrating a network processing method of a virtualization environment according to an embodiment of the present invention.

본 발명의 구체적인 설명에 앞서, 본 명세서에서 사용되는 용어 및 특징들은 다음과 같다.Prior to the specific description of the present invention, terms and features used in this specification are as follows.

가상 머신 (virtual machine): 컴퓨팅 환경을 소프트웨어로 구현한 것으로, 물리컴퓨터를 다중화하여 완전한 시스템 플랫폼을 제공하여 완전한 운영 체제의 실행이 가능함Virtual machine: It is a software implementation of a computing environment. It is possible to run a complete operating system by multiplexing physical computers to provide a complete system platform.

작업 보존성(work-conserving): 처리되어야 하는 작업이 없는 경우에만 유휴 상태가 됨Work-conserving: idle only when there are no jobs to be processed

서버 통합 (server consolidation): 전체 운용 서버의 수를 줄이고, 낮은 활용률의 서버가 공간을 많이 차지하는 것을 막기 위한 접근 방식. 효율적으로 자원 운용이 가능하여 비용 절감의 장점이 있음Server consolidation: An approach to reduce the total number of operational servers and prevent servers with low utilization from taking up space. It is advantageous to reduce costs by enabling efficient resource management.

하이퍼바이저(Hypervisor): 가상화 시스템을 구축하기 위한 소프트웨어 계층. 운영체제와 하드웨어 사이에 존재하며, 각 가상머신에게 논리적으로 분리된 하드웨어를 제공함Hypervisor: A layer of software for building virtualization systems. It exists between the operating system and hardware, and provides logically separate hardware for each virtual machine.

드라이버 도메인 (Driver domain): 가상화 환경에서 하이퍼바이저 상에 구동하는 가상머신의 일종으로 다른 가상머신의 생성 및 종료, I/O 요청을 대신 처리해주는 제어 역할을 함Driver domain: A type of virtual machine that runs on the hypervisor in a virtualized environment. It creates and terminates other virtual machines and acts as a control to handle I / O requests instead.

본 발명은 가상화 환경에서 가상머신들에 대한 네트워크 자원 할당 방식을 개선한 네트워크 스케줄링 알고리즘을 제공한다. 본 발명은 드라이버 도메인의 네트워크 백엔드 드라이버에서 동작한다. 가상머신의 네트워크 인터페이스들의 작업 요청을 Round-Robin 방식으로 스케줄링하는 것은 기존의 방식과 The present invention provides a network scheduling algorithm that improves the network resource allocation scheme for virtual machines in a virtualized environment. The present invention operates in the network backend driver of the driver domain. The scheduling of the work requests of the network interfaces of the virtual machine in a round-robin manner is a conventional method

동일하지만, 일정 주기, 예컨대 10ms마다 주기적으로 각 가상머신의 네트워크 인터페이스의 네트워크 자원인 크레딧을 계산하여 할당함으로써 동적으로 가상머신의 네트워크 인터페이스의 네트워크 성능 조절이 가능하다는 특징이 있다. 크레딧을 계산하여 할당하는 기준은 각 가상머신의 네트워크 인터페이스에 따라 달라지는데, 가중치에 따라 비례적으로 할당하거나 최소 또는 최대치 범위 내의 값을 할당한다.The network performance of the network interface of the virtual machine can be dynamically adjusted by calculating and allocating the credits which are the network resources of the network interfaces of each virtual machine periodically every predetermined period, for example, every 10 ms. The criterion for calculating and allocating credits depends on the network interface of each virtual machine, which is allocated proportionally or assigned a value within the minimum or maximum range according to the weight.

본 발명에 따른 네트워크 스케줄링 장치는 클라우드 컴퓨팅 환경에서 중요시 되는 자원 운영 효율성을 높이기 위해 모든 가상머신에서 네트워크 작업이 일어나지 않을 때에만 유휴상태가 되는 작업 보존성을 지원한다. 이를 위해 주기적인 스케줄링 알고리즘을 이용하여 가상머신의 네트워크 이용량 변화에 따라 자원 할당량을 변경한다. 이 때 각 가상머신의 잔여 네트워크 자원 변수를 이용하여 가상머신의 네트워크 이용량을 추정한다. 가상머신의 잔여 크레딧이 전체 시스템 크레딧 이상일 경우 해당 가상머신의 네트워크 사용량이 감소한 것으로 추정하고 할당되는 네트워크 자원을 다른 가상머신에 분배함으로써 네트워크 자원 이용률을 최대화한다. The network scheduling apparatus according to the present invention supports work preservation that becomes idle only when no network operation occurs in all virtual machines in order to increase resource operation efficiency that is important in a cloud computing environment. To do this, we use a periodic scheduling algorithm to change the resource allocation according to the change of the network usage of the virtual machine. At this time, the network usage of the virtual machine is estimated by using the remaining network resource variable of each virtual machine. If the residual credit of the virtual machine is greater than the total system credit, it is assumed that the network usage of the virtual machine has decreased and the allocated network resources are distributed to other virtual machines to maximize the network resource utilization rate.

본 발명에 따른 네트워크 스케줄링 장치는 주기적으로 가상머신의 네트워크 인터페이스에 각 네트워크 인터페이스가 요구하는 성능 제어 정책에 기반하여 크레딧을 계산하여 할당한다. 이 때 네트워크 스케줄링 장치의 크레딧 값이 일정 값 커지면 네트워크 스케줄링 장치의 네트워크 사용량이 적어 할당 받은 크레딧을 모두 소모하지 않은 것이므로 해당 네트워크 스케줄링 장치의 잉여 네트워크 자원을 다른 네트워크 스케줄링 장치에 분배한다. 이 같은 방식으로 네트워크 자원의 낭비 없이 각각의 가상머신에 따라 서로 다른 네트워크 성능 보장이 가능하다.The network scheduling apparatus according to the present invention periodically calculates and allocates a credit based on a performance control policy requested by each network interface to a network interface of a virtual machine. At this time, if the credit value of the network scheduling device increases to a certain value, the network scheduling device consumes a small amount of network usage, so that the allocated network resources of the network scheduling device are distributed to other network scheduling devices. In this way, it is possible to guarantee different network performance according to each virtual machine without waste of network resources.

본 발명에 따른 네트워크 스케줄링 장치는 클라우드 서비스 이용자의 다양한 요구사항을 만족시키기 위해 가중치 기반 공유 정책, 최소 대역폭 보장, 최대 대역폭 제한의 성능 제어 정책을 지원한다.The network scheduling apparatus according to the present invention supports a weight based policy, a minimum bandwidth guarantee, and a maximum bandwidth limited performance control policy to satisfy various requirements of a cloud service user.

우선, 본 발명에 따른 네트워크 스케줄링 장치는 가중치 기반 공유 정책을 통해 전체 네트워크 자원을 각 가상머신의 가중치가 모든 가상머신의 가중치 합에서 차지하는 비율만큼 네트워크 자원을 할당할 수 있다.First, the network scheduling apparatus according to the present invention can allocate network resources by the ratio of the weight of each virtual machine to the weight sum of all virtual machines through the weight-based sharing policy.

따라서, 본 발명에 따른 네트워크 스케줄링 장치는 각 가상머신의 네트워크 성능은 가중치에 비례하게 나타나며 가중치를 조절하여 네트워크 대역폭 성능을 제어할 수 있다.Therefore, in the network scheduling apparatus according to the present invention, the network performance of each virtual machine is proportional to the weight, and the network bandwidth performance can be controlled by adjusting the weight.

이처럼 가중치에 따라 비례적으로 네트워크 자원을 할당하는 방식은 상대적인 네트워크 성능을 보장할 수 있지만, 사용자가 정량적인 성능 수치를 요구하는 경우에는 이를 만족시키기 어렵다. 그러므로 사용자의 요구에 따라 정량적 네트워크 성능을 보장하기 위해 최소 대역폭 보장과 최대 대역폭 제한이 필요하다. 최소 대역폭 보장은 가상머신의 네트워크 인터페이스의 최소 대역폭이 설정된 경우, 가중치에 따라 크레딧을 할당하였을 때 그 값이 최소 대역폭을 만족시키지 못한다면 크레딧을 추가로 할당함으로써 이루어진다. 최대 대역폭이 설정 된 경우에는 가상머신의 네트워크 인터페이스가 할당 받은 크레딧이 일정 값을 초과하지 않도록 함으로써 가상머신의 네트워크 성능을 항상 최대 대역폭 이하로 유지한다. 최소 대역폭 보장과 최대 대역폭 제한 정책을 통해 클라우드 서비스 공급자는 시스템 환경의 변화에 관계없이 사용자에게 안정적인 성능을 제공할 수 있다.The method of proportionally allocating the network resources according to the weights can guarantee the relative network performance, but it is difficult to satisfy the requirement when the user requires a quantitative performance value. Therefore, minimum bandwidth guarantee and maximum bandwidth limit are needed to guarantee quantitative network performance according to user's demand. The minimum bandwidth guarantee is achieved by allocating a credit if the minimum bandwidth of the network interface of the virtual machine is set, and when the credit is allocated according to the weight, if the value does not satisfy the minimum bandwidth. When the maximum bandwidth is set, the network performance of the virtual machine is always kept below the maximum bandwidth by preventing the credits allocated by the network interface of the virtual machine from exceeding a predetermined value. With minimum bandwidth guarantees and maximum bandwidth throttling policies, cloud service providers can provide reliable performance to users regardless of changes in the system environment.

도 3은 일실시예에 따른 네트워크 스케줄링 장치(300)를 구체적으로 설명하는 도면이다.3 is a diagram illustrating a network scheduling apparatus 300 according to an embodiment of the present invention.

네트워크 스케줄링 장치(300)는 클라우드 환경에서 사용자의 다양한 사용자의 요구사항을 만족시키도록 네트워크 성능을 보장하는 동시에 CPU 오버헤드를 최소화할 수 있다. 이를 위해, 네트워크 스케줄링 장치(300)는 계산부(310) 및 스케줄러(320)를 포함할 수 있다. 네트워크 스케줄링 장치(300)는 컴퓨팅 단말에 의해 적어도 일시적으로 구현될 수 있다. 컴퓨팅 단말은 퍼스널 컴퓨터, 의료용 기기, 스마트폰, 태블릿 컴퓨터, 웨어러블 디바이스 등 임의의 형태의 전자 기기를 포함한다. 계산부(310) 및 스케줄러(320)는 각각 이러한 전자 기기에 포함되는 물리적 및/또는 논리적 엘리먼트일 수 있다. 이를테면 전용 하드웨어(dedicated hardware) 또는 소프트웨어나 오퍼레이팅 시스템에 의해 제어되는 범용 연산 자원에 의해 계산부(310) 및 스케줄러(320)가 구현될 수 있다. 또한, 계산부(310) 및 스케줄러(320)가 하나의 칩에서 함께 구현되는, 따라서 물리적으로 구분되지 않는 것일 수도 있으며, 이러한 하드웨어 자원의 구현은 기술의 발달이나 설계 변경에 의해 얼마든지 변경될 수 있다. 따라서 계산부(310) 및 스케줄러(320)의 기능과 동작 및 구조가 서로 구분되는 것으로 이해되지만 실시예에 따라 이러한 구분이 다르게 해석되는 경우도 있을 수 있다.The network scheduling apparatus 300 can minimize the CPU overhead while ensuring network performance so as to satisfy the requirements of various users of the user in a cloud environment. To this end, the network scheduling apparatus 300 may include a calculation unit 310 and a scheduler 320. The network scheduling device 300 may be implemented at least temporarily by the computing terminal. The computing terminal includes any type of electronic device such as a personal computer, a medical device, a smart phone, a tablet computer, and a wearable device. The calculator 310 and the scheduler 320 may each be a physical and / or logical element included in such an electronic device. For example, the calculation unit 310 and the scheduler 320 may be implemented by dedicated hardware or general purpose computing resources controlled by software or an operating system. In addition, the calculation unit 310 and the scheduler 320 may be implemented together on one chip, and thus may not be physically separated, and the implementation of such hardware resources may be changed as much as possible by technological development or design changes. have. Accordingly, it is understood that the functions, operations, and structures of the calculation unit 310 and the scheduler 320 are distinguished from each other, but there may be cases where such distinctions are interpreted differently according to the embodiment.

일실시예에 따른 계산부(310)는 적어도 하나 이상의 가상머신의 네트워크 인터페이스에 상응하는 현재 크레딧에 기초하여 스케줄링 정책을 산출한다. 또한, 스케줄러(320)는 산출된 스케줄링 정책에 기초하여 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링한다.The calculation unit 310 calculates a scheduling policy based on a current credit corresponding to a network interface of at least one or more virtual machines. In addition, the scheduler 320 schedules work requests for at least one or more virtual machines based on the calculated scheduling policy.

네트워크 스케줄링 장치(300)는 가상머신의 네트워크 인터페이스들의 작업 요청을 Round-Robin 방식으로 스케줄링하는 것은 기존의 방식과 동일하지만, 10ms마다 주기적으로 각 가상머신의 네트워크 인터페이스들의 네트워크 자원인 크레딧을 계산하여 할당함으로써 동적으로 가상머신의 네트워크 인터페이스들의 네트워크 성능 조절이 가능하다. 크레딧을 계산하여 할당하는 기준은 각 가상머신의 네트워크 인터페이스들에 따라 달라지는데, 가중치에 따라 비례적으로 할당하거나 최소 혹은 최대치 범위 내의 값을 할당한다.The network scheduling apparatus 300 is similar to the conventional method for scheduling work requests of network interfaces of a virtual machine in a Round-Robin manner. However, the network scheduling apparatus 300 periodically calculates a credit, which is a network resource of network interfaces of each virtual machine, The network performance of the network interfaces of the virtual machine can be dynamically adjusted. The criterion for calculating and allocating credits depends on the network interfaces of each virtual machine, and is proportionally allocated according to the weight, or a value within the minimum or maximum range is assigned.

따라서, 계산부(310)는 가상머신 별로 부여된 가중치에 따른 크레딧 값과 잔여 크레딧을 이용하여 현재 크레딧을 산출할 수 있다. 예를 들어, 10ms를 주기로 각 가상머신에 대한 현재 크레딧을 산출할 수 있다. 또한, 계산부(310)는 현재 크레딧이 최소 값과 최대 값 사이의 범위 내에 포함되는지 여부를 판단하고, 상기 판단 결과 포함되지 않는다면 잔여 크레딧과 가중치에 따른 크레딧 값의 차이를 반영해서 현재 크레딧을 산출할 수 있다. 한편, 현재 크레딧이 최소 값과 최대 값 사이의 범위 내에 포함된다면, 산출된 스케줄링 정책에 기초하여 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하도록 스케줄러(320)에 요청할 수 있다.Accordingly, the calculation unit 310 can calculate the current credit using the credit value according to the weight value assigned to each virtual machine and the residual credit. For example, the current credit for each virtual machine can be calculated at intervals of 10ms. The calculation unit 310 determines whether the current credit is included in the range between the minimum value and the maximum value, and if not, the current credit is calculated by reflecting the difference of the credit value according to the remaining credit and the weight can do. On the other hand, if the current credit is included in the range between the minimum value and the maximum value, the scheduler 320 may be requested to schedule a work request for at least one or more virtual machines based on the calculated scheduling policy.

본 발명에서는 클라우드 컴퓨팅 환경에서 중요시 되는 자원 운영 효율성을 높이기 위해 모든 가상머신에서 네트워크 작업이 일어나지 않을 때에만 유휴상태가 되는 작업 보존성을 지원한다. 이를 위해, 계산부(310)는 적어도 하나 이상의 가상머신에 대한 네트워크 이용량의 변화를 고려하여 자원 할당량을 산출할 수도 있다.In the present invention, in order to increase resource operation efficiency, which is important in a cloud computing environment, it is possible to support the work preservation which becomes idle only when no network operation occurs in all virtual machines. For this, the calculation unit 310 may calculate the resource allocation amount considering the change of the network usage amount of at least one or more virtual machines.

구체적으로, 계산부(310)는 적어도 하나 이상의 가상머신에 대한 잔여 네트워크 자원 변수를 이용하여 상기 적어도 하나 이상의 가상머신의 네트워크 이용량을 추정할 수 있다. 또한, 스케줄러(320)는 추정된 이용량에 기초하여, 상기 적어도 하나 이상의 가상머신에 대한 잔여 크레딧이 전체 시스템 크레딧 이상일 경우 해당 가상머신에 할당되는 네트워크 자원을 다른 가상머신에 분배한다. 즉, 가상머신의 잔여 크레딧이 전체 시스템 크레딧 이상일 경우 해당 가상머신의 네트워크 사용량이 감소한 것으로 추정하고 할당되는 네트워크 자원을 다른 가상머신에 분배함으로써 네트워크 자원 이용률을 최대화할 수 있다. In particular, the calculation unit 310 may estimate the network usage of the at least one or more virtual machines using the remaining network resource variables for the at least one or more virtual machines. In addition, the scheduler 320 distributes the network resources allocated to the virtual machines to other virtual machines when the remaining credits for the at least one or more virtual machines are equal to or greater than the total system credits, based on the estimated utilization amounts. That is, when the residual credit of the virtual machine is equal to or greater than the total system credit, it is estimated that the network usage of the virtual machine has decreased and the allocated network resources are distributed to other virtual machines, thereby maximizing the network resource utilization rate.

본 발명에 따른 네트워크 스케줄링 장치(300)를 이용하면, 크게 성능 보장 정책의 다양성 측면과 네트워크 자원 활용률 측면에서 효과를 예측할 수 있다.Using the network scheduling apparatus 300 according to the present invention, it is possible to predict the effect in terms of the diversity of the performance guarantee policy and the network resource utilization rate.

먼저, 성능 보장 정책의 다양성의 이점은 본 발명에서 제안하는 총 세 가지의 성능 정책에 의해 얻을 수 있다. 본 발명에 의해 제안된 성능 정책은 가중치 기반 공유, 최소 대역폭 보장, 최대 대역폭 제한이다.First, the advantages of diversity of the performance guarantee policy can be obtained by the three performance policies proposed in the present invention. The performance policies proposed by the present invention are weight based sharing, minimum bandwidth guarantee, maximum bandwidth limitation.

가중치 기반 공유 정책은 사용자에 따라 서로 다른 가중치를 적용하여 상대적으로 높은 가중치를 가지는 사용자에게 높은 네트워크 성능을 보장하는 것이다. 제한된 네트워크 자원 내에서 비례적으로 사용자들의 성능을 제공함으로써 서비스를 차등화함과 동시에 자원을 최대로 활용할 수 있다는 이점이 있다.The weight-based sharing policy is to ensure high network performance for users with relatively high weights by applying different weights to the users. The advantage of proportionally providing users' performance within limited network resources is to differentiate services and maximize resources.

최소 대역폭 보장 정책은 사용자에 일정 수준 이상의 성능을 정량적으로 보장하는 정책이다. 이를 통해, 제한된 물리자원 공유로 인한 자원 경쟁이 발생하더라도, 특정 사용자의 네트워크 성능을 일정하게 보장할 수 있어 높은 서비스 품질을 제공할 수 있다.The minimum bandwidth guarantee policy is a policy that quantitatively guarantees a certain level of performance to the user. Thus, even if resource competition occurs due to limited physical resource sharing, the network performance of a specific user can be constantly maintained, thereby providing a high quality of service.

이에 반해 최대 대역폭 제한 정책은 물리자원의 제한된 용량을 초과하지 않도록 사용자의 네트워크 성능을 제한하는 정책으로 특정 사용자가 네트워크 자원을 독점하는 것을 방지 할 수 있다.On the other hand, the maximum bandwidth restriction policy is a policy that restricts a user's network performance so as not to exceed the limited capacity of physical resources, thereby preventing a specific user from monopolizing network resources.

클라우드 환경에서 서로 다른 사용자의 요구사항이나 특성에 따라 위에서 언급한 3가지의 정책 중에 하나의 정책을 선택하거나, 2개 이상의 정책을 복합적으로 적용하여 성능을 보장할 수 있다. 이는 단일 성능 정책만 적용 가능한 기존의 방식에 비해 다양한 사용자의 요구사항을 만족시킬 수 있다는 장점을 가진다. 또한 언제든지 적용하는 성능 정책이나 제시된 정량적 수치를 변경할 수 있기 때문에 시시각각 변화하는 클라우드 환경을 반영하여 높은 서비스 품질을 제공할 수 있다.In a cloud environment, one of the three policies mentioned above can be selected according to the requirements or characteristics of different users, or a combination of two or more policies can be applied to guarantee performance. This has the advantage that it can satisfy various users' requirements compared with the existing method which can apply only a single performance policy. In addition, you can change the performance policy or the quantitative values that are applied at any time, so that it can provide high quality of service reflecting the ever-changing cloud environment.

다음으로, 네트워크 자원 활용 측면에서 본 발명은 자원 활용률을 항상 100%로 유지하는 작업 보존성(work-conserving)을 제공하는 장점이 있다. 각 사용자에 고정적인 네트워크 성능만을 제공하는 경우, 사용자가 부여받은 성능 수치보다 낮은 작업량만을 처리하거나, 아예 작업을 수행하지 않는 경우에는 자원의 낭비가 발생하는 문제가 있다. 본 발명에서는 자원 낭비 문제를 방지하기 위해 네트워크 작업을 많이 수행하지 않는 사용자의 잉여 자원을 다른 사용자들에 분배함으로써 자원 활용률을 최대화한다.Next, in terms of utilization of network resources, the present invention has an advantage of providing work-conserving that maintains the resource utilization rate at 100% at all times. In the case of providing only fixed network performance to each user, there is a problem that resources are wasted when only a work amount less than the performance value given by the user is processed or when the work is not performed at all. In the present invention, the resource utilization rate is maximized by distributing the surplus resource of the user who does not perform much network work to other users in order to prevent the resource waste problem.

이러한 자원 활용률 최대화는 서버 통합(server consolidation)을 통해 여러 가상머신을 단일 물리자원으로 운용하는 클라우드 환경에서 비용적 측면에서 효율적으로 서비스를 운영하는데 중요한 요소이다. 따라서 본 발명에서 제공하는 자원 활용률 최대화는 기존 클라우드 환경에 적용되어 고정 자원 대비 높은 수익을 보장할 수 있다.This maximization of resource utilization is an important factor in efficiently operating a service in a cost-effective manner in a cloud environment in which multiple virtual machines are operated as a single physical resource through server consolidation. Therefore, maximization of the resource utilization rate provided by the present invention can be applied to the existing cloud environment, thereby ensuring high profitability compared to fixed resources.

도 4는 일실시예에 따른 네트워크 스케줄링 방법을 설명하는 도면이다.4 is a diagram illustrating a network scheduling method according to an embodiment.

일실시예에 따른 네트워크 스케줄링 방법은 적어도 하나 이상의 가상머신의 네트워크 인터페이스에 상응하는 현재 크레딧에 기초하여 스케줄링 정책을 산출하고, 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링할 수 있다.A network scheduling method according to an exemplary embodiment calculates a scheduling policy based on a current credit corresponding to a network interface of at least one or more virtual machines, and schedules a task request for the at least one or more virtual machines based on the calculated scheduling policy can do.

일실시예에 따른 네트워크 스케줄링 방법은 전체 시스템 상에 존재하는 모든 가상머신의 네트워크 인터페이스들을 관리하며 각 가상머신의 네트워크 인터페이스의 크레딧을 순차적으로 할당한다. 이를 위해, 네트워크 스케줄링 방법은 10ms마다 주기적으로 가상머신의 네트워크 인터페이스를 선택하고(단계 401), 선택된 가상머신의 네트워크 인터페이스의 네트워크 자원인 크레딧을 계산할 수 있다(단계 402). 즉, 일실시예에 따른 네트워크 스케줄링 방법은 우선 각 가상머신의 네트워크 인터페이스의 가중치에 따른 크레딧 값인 CreditAlloc을 계산하고, 계산된 CreditAlloc을 현재 잔여 크레딧 값인 RemainCredit에 더한다(단계 403).The network scheduling method according to an exemplary embodiment manages network interfaces of all virtual machines existing on the entire system and allocates credits of network interfaces of each virtual machine sequentially. To this end, the network scheduling method may periodically select the network interface of the virtual machine every 10 ms (step 401) and calculate the network resource of the network interface of the selected virtual machine (step 402). That is, the network scheduling method according to an exemplary embodiment first calculates CreditAlloc, which is a credit value according to the weight of the network interface of each virtual machine, and adds the calculated CreditAlloc to RemainCredit, which is the remaining credit value (step 403).

일실시예에 따른 네트워크 스케줄링 방법은 더해진 RemainCredit이 최소 값 Minimum credit과, 최대 값 Maximum credit, 전체 시스템의 크레딧 Total credit 범위를 만족하는지를 판단할 수 있다.The network scheduling method according to an embodiment can determine whether the added RemainCredit satisfies a minimum value Minimum credit, a maximum value Maximum credit, and a total credit range of the entire system.

구체적으로, 일실시예에 따른 네트워크 스케줄링 방법은 단계 404를 통해 더해진 RemainCredit이 최소 값 Minimum credit과, 최대 값 Maximum credit의 범위 내에 존재하는지를 판단할 수 있다(단계 404).In particular, the network scheduling method according to an exemplary embodiment may determine whether RemainCredit added through step 404 exists within a range of a minimum value Minimum credit and a maximum value Maximum credit (step 404).

단계 404의 판단 결과, 더해진 RemainCredit이 최소 값 Minimum credit과, 최대 값 Maximum credit의 범위 내에 존재한다면, 더해진 RemainCredit이 전체 시스템의 크레딧 Total credit 이하인지 여부를 판단할 수 있다(단계 405).If it is determined in step 404 that the added RemainCredit is within the minimum value Minimum credit and the maximum value Maximum credit, it can be determined whether the added RemainCredit is less than the total credit of the entire system (step 405).

만약, 더해진 RemainCredit이 최소 값 Minimum credit과, 최대 값 Maximum credit의 범위 내에 존재하고, 더해진 RemainCredit이 전체 시스템의 크레딧 Total credit 이하라면, 단계 406에서 마지막 가상머신의 네트워크 인터페이스인지 여부를 고려하여 프로세스를 종료할 수 있다(단계 407).If the added RemainCredit is within the range of the minimum value Minimum credit and the maximum value Maximum credit and the added RemainCredit is less than the total credit of the total system, (Step 407).

단계 404의 판단 결과, 더해진 RemainCredit이 최소 값 Minimum credit과, 최대 값 Maximum credit의 범위 내에 존재하지 않거나, 단계 405의 판단 결과, 더해진 RemainCredit이 전체 시스템의 크레딧 Total credit 이하가 아니라면, 크레딧을 재계산할 수 있다(단계 408).As a result of the determination in step 404, if the added RemainCredit is not within the minimum value Minimum credit and the maximum value Maximum credit, or if the added RemainCredit is not less than the total credit of the total system as a result of the determination in step 405, the credit can be recalculated (Step 408).

예를 들어, 네트워크 스케줄링 방법은 범위 내의 임의의 값을 갖도록 CreditAlloc을 크레딧을 재계산할 수 있다. 네트워크 스케줄링 방법은 이 전에 계산된 RemainCredit과 다시 계산한 CreditAlloc의 차이를 이용해서 CreditLeft로 전체 시스템의 크레딧을 조정할 수 있다(단계 409). 즉, 네트워크 스케줄링 방법은 새롭게 계산된 CreditAlloc을 RemainCredit에 더하지 않고 그대로 할당하어 가상머신의 네트워크 인터페이스의 네트워크 자원으로 활용할 수 있다. 시스템 상의 모든 가상머신의 네트워크 인터페이스의 크레딧 계산이 이루어질 때까지 반복되며 10ms마다 전체 알고리즘이 수행된다.For example, the network scheduling method can recalculate CreditAlloc credits to have any value in the range. The network scheduling method can adjust the credit of the entire system with CreditLeft using the difference between the previously calculated RemainCredit and the recalculated CreditAlloc (step 409). That is, the network scheduling method can allocate the newly calculated CreditAlloc to RemainCredit without adding it, and utilize it as a network resource of the network interface of the virtual machine. Until the credit calculation of the network interface of all virtual machines on the system is repeated, the entire algorithm is performed every 10ms.

단계 406에서 마지막 가상머신의 네트워크 인터페이스가 아니라면, 다음 가상머신의 네트워크 인터페이스을 선택하고(단계 410), 선택된 가상머신의 네트워크 인터페이스에 대한 가중치를 고려하여 크레딧을 계산할 수 있다.If it is not the network interface of the last virtual machine in step 406, the network interface of the next virtual machine is selected (step 410), and the credit can be calculated in consideration of the weight for the network interface of the selected virtual machine.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (13)

컴퓨터에 의해 적어도 일시적으로 구현되는:
적어도 하나 이상의 가상머신의 네트워크 인터페이스에 상응하는 현재 크레딧에 기초하여 스케줄링 정책을 산출하는 계산부; 및
상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하는 스케줄러를 포함하고,
상기 계산부는 가상머신 별로 부여된 가중치에 따른 크레딧 값과 잔여 크레딧을 이용하여 현재 크레딧을 산출하고,
상기 계산부는 상기 현재 크레딧이 최소 값과 최대 값 사이의 범위 내에 포함되는지 여부를 판단하고, 상기 판단 결과 포함되지 않는다면 잔여 크레딧과 가중치에 따른 크레딧 값의 차이를 반영해서 현재 크레딧을 산출하고, 상기 판단 결과 포함된다면 상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하도록 스케줄러에 요청하는,
네트워크 스케줄링 장치.
Implemented at least temporarily by the computer:
A calculation unit for calculating a scheduling policy based on a current credit corresponding to a network interface of at least one or more virtual machines; And
And a scheduler for scheduling a work request for the at least one or more virtual machines based on the calculated scheduling policy,
The calculation unit calculates the current credit using the credit value and the remaining credit according to the weight value assigned for each virtual machine,
The calculation unit may determine whether the current credit is included within a range between a minimum value and a maximum value, calculate a current credit by reflecting a difference between a credit value according to a residual credit and a weight, And if so, requesting the scheduler to schedule a work request for the at least one or more virtual machines based on the calculated scheduling policy,
Network scheduling device.
삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 계산부는,
상기 적어도 하나 이상의 가상머신에 대한 네트워크 이용량의 변화를 고려하여 자원 할당량을 산출하는 네트워크 스케줄링 장치.
The method according to claim 1,
The calculation unit may calculate,
And calculates a resource allocation amount in consideration of a change in network usage for the at least one or more virtual machines.
제5항에 있어서,
상기 계산부는,
상기 적어도 하나 이상의 가상머신에 대한 잔여 네트워크 자원 변수를 이용하여 상기 적어도 하나 이상의 가상머신의 네트워크 이용량을 추정하고,
상기 스케줄러는 추정된 이용량에 기초하여, 상기 적어도 하나 이상의 가상머신에 대한 잔여 크레딧이 전체 시스템 크레딧 이상일 경우 해당 가상머신에 할당되는 네트워크 자원을 다른 가상머신에 분배하는 네트워크 스케줄링 장치.
6. The method of claim 5,
The calculation unit may calculate,
Estimating a network usage of the at least one virtual machine using a remaining network resource variable for the at least one virtual machine,
Wherein the scheduler distributes network resources allocated to the virtual machine to another virtual machine when the residual credit for the at least one virtual machine is equal to or greater than the total system credit based on the estimated utilization amount.
컴퓨터에 의해 적어도 일시적으로 구현되는 네트워크 스케줄링 방법에 있어서,
적어도 하나 이상의 가상머신의 네트워크 인터페이스에 상응하는 현재 크레딧에 기초하여 스케줄링 정책을 산출하는 단계; 및
상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하는 단계를 포함하고,
상기 산출하는 단계는 적어도 하나 이상의 가상머신에 부여된 가중치에 따른 크레딧 값과 잔여 크레딧을 이용하여 현재 크레딧을 산출하고,
상기 산출하는 단계는,
상기 현재 크레딧이 최소 값과 최대 값 사이의 범위 내에 포함되는지 여부를 판단하는 단계; 및
상기 판단 결과 포함되지 않는다면 잔여 크레딧과 가중치에 따른 크레딧 값의 차이를 반영해서 현재 크레딧을 산출하고, 상기 판단 결과 포함된다면 상기 산출된 스케줄링 정책에 기초하여 상기 적어도 하나 이상의 가상머신에 대한 작업 요청을 스케줄링하도록 스케줄러에 요청하는 단계를 포함하는,
네트워크 스케줄링 방법.
A network scheduling method, at least temporarily implemented by a computer,
Calculating a scheduling policy based on a current credit corresponding to a network interface of at least one or more virtual machines; And
And scheduling a work request for the at least one or more virtual machines based on the calculated scheduling policy,
Wherein the calculating step calculates a current credit using a credit value and a residual credit according to a weight given to at least one or more virtual machines,
Wherein the calculating step comprises:
Determining whether the current credit is within a range between a minimum value and a maximum value; And
Calculating a current credit based on a difference between a credit value according to a remaining credit and a weight, if the determination result is not included, calculating a current credit based on the calculated credit and a credit value based on the calculated credit, and scheduling a job request for the at least one or more virtual machines based on the calculated scheduling policy To the scheduler,
Network scheduling method.
삭제delete 삭제delete 제7항에 있어서,
상기 산출하는 단계는,
상기 적어도 하나 이상의 가상머신에 대한 네트워크 이용량의 변화를 고려하여 자원 할당량을 산출하는 단계
를 포함하는 네트워크 스케줄링 방법.
8. The method of claim 7,
Wherein the calculating step comprises:
Calculating a resource allocation amount in consideration of a change in a network usage amount for the at least one or more virtual machines
Lt; / RTI >
제10항에 있어서,
상기 산출하는 단계는,
상기 적어도 하나 이상의 가상머신에 대한 잔여 네트워크 자원 변수를 이용하여 상기 적어도 하나 이상의 가상머신의 네트워크 이용량을 추정하는 단계;
추정된 이용량에 기초하여, 상기 적어도 하나 이상의 가상머신에 대한 잔여 크레딧이 전체 시스템 크레딧 이상일 경우 해당 가상머신에 할당되는 네트워크 자원을 다른 가상머신에 분배하는 단계
를 포함하는 네트워크 스케줄링 방법.
11. The method of claim 10,
Wherein the calculating step comprises:
Estimating a network usage of the at least one virtual machine using a remaining network resource variable for the at least one virtual machine;
Distributing network resources allocated to the virtual machine to another virtual machine when the residual credit for the at least one virtual machine is equal to or greater than the total system credit based on the estimated usage amount
Lt; / RTI >
제7항, 제10항 및 제11항 중에서 어느 하나의 항에 기재된 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method according to any one of claims 7, 10 and 11. 삭제delete
KR1020160004794A 2016-01-14 2016-01-14 Apparatus and method of dynamic resource allocation algorithm for service differentiation in virtualized environments KR101743028B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160004794A KR101743028B1 (en) 2016-01-14 2016-01-14 Apparatus and method of dynamic resource allocation algorithm for service differentiation in virtualized environments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160004794A KR101743028B1 (en) 2016-01-14 2016-01-14 Apparatus and method of dynamic resource allocation algorithm for service differentiation in virtualized environments

Publications (1)

Publication Number Publication Date
KR101743028B1 true KR101743028B1 (en) 2017-06-02

Family

ID=59222610

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160004794A KR101743028B1 (en) 2016-01-14 2016-01-14 Apparatus and method of dynamic resource allocation algorithm for service differentiation in virtualized environments

Country Status (1)

Country Link
KR (1) KR101743028B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220070625A (en) 2020-11-23 2022-05-31 고려대학교 산학협력단 Scheduling method for improving i/o performance of virtual machine in virtualized environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"클라우드 환경에서 가상 머신 네트워크 QoS 보장을 위한 기법 분석", 이경운, 홍철호, 유혁, 2014년 한국컴퓨터종합학술대회, 1575-1577*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220070625A (en) 2020-11-23 2022-05-31 고려대학교 산학협력단 Scheduling method for improving i/o performance of virtual machine in virtualized environment
KR102443894B1 (en) 2020-11-23 2022-09-20 고려대학교 산학협력단 Scheduling method for improving i/o performance of virtual machine in virtualized environment

Similar Documents

Publication Publication Date Title
US10162684B2 (en) CPU resource management in computer cluster
US8997107B2 (en) Elastic scaling for cloud-hosted batch applications
US8046767B2 (en) Systems and methods for providing capacity management of resource pools for servicing workloads
JP7119082B2 (en) Application Prioritization for Automatic Diagonal Scaling in Distributed Computing Environments
EP3090339A1 (en) Method and system for allocating resources to resource consumers in a cloud computing environment
Song et al. A two-stage approach for task and resource management in multimedia cloud environment
JP7109549B2 (en) Scheduling memory bandwidth based on service floor quality
US20190158417A1 (en) Adaptive resource allocation operations based on historical data in a distributed computing environment
Afzal et al. Capacity planning and scheduling in Grid computing environments
Kumar et al. Achieving quality of service (QoS) using resource allocation and adaptive scheduling in cloud computing with grid support
WO2022262476A1 (en) Dynamic renewable runtime resource management
Mollamotalebi et al. Multi-objective dynamic management of virtual machines in cloud environments
Alworafi et al. A collaboration of deadline and budget constraints for task scheduling in cloud computing
Seth et al. Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems
JP7182836B2 (en) Automatic Diagonal Scaling of Workloads in Distributed Computing Environments
Jang et al. An efficient virtual CPU scheduling in cloud computing
KR101924467B1 (en) System and method of resource allocation scheme for cpu and block i/o performance guarantee of virtual machine
KR101743028B1 (en) Apparatus and method of dynamic resource allocation algorithm for service differentiation in virtualized environments
Gadhavi et al. Efficient resource provisioning through workload prediction in the cloud system
Komarasamy et al. ScHeduling of jobs and Adaptive Resource Provisioning (SHARP) approach in cloud computing
Costache et al. Themis: Economy-based automatic resource scaling for cloud systems
Hong et al. ANCS: Achieving QoS through dynamic allocation of network resources in virtualized clouds
Toporkov et al. Coordinated resources allocation for dependable scheduling in distributed computing
Poullie et al. The design and evaluation of a heaviness metric for cloud fairness and correct virtual machine configurations
Kulkarni et al. Fuzzy based task prioritization and VM migration of deadline constrained tasks in cloud systems

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant