KR101652324B1 - Method and apparatus for guaranteeing performance requirement - Google Patents

Method and apparatus for guaranteeing performance requirement Download PDF

Info

Publication number
KR101652324B1
KR101652324B1 KR1020140072001A KR20140072001A KR101652324B1 KR 101652324 B1 KR101652324 B1 KR 101652324B1 KR 1020140072001 A KR1020140072001 A KR 1020140072001A KR 20140072001 A KR20140072001 A KR 20140072001A KR 101652324 B1 KR101652324 B1 KR 101652324B1
Authority
KR
South Korea
Prior art keywords
scheduler
time
processing request
queue
required performance
Prior art date
Application number
KR1020140072001A
Other languages
Korean (ko)
Other versions
KR20150143918A (en
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 KR1020140072001A priority Critical patent/KR101652324B1/en
Publication of KR20150143918A publication Critical patent/KR20150143918A/en
Application granted granted Critical
Publication of KR101652324B1 publication Critical patent/KR101652324B1/en

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

본 발명은 복수의 스케쥴러 큐 각각의 전송 허용 시간을 목표 요구 사항에 기초하여 결정하는 단계 및 각각의 결정된 전송 허용 시간 내에서 각각의 스케쥴러 큐의 처리 요청을 추출하는 단계를 포함하고 복수의 스케쥴러 큐 중 하나의 전송 허용 시간은 다른 하나의 전송 허용 시간과는 상이한 요구 성능 보장 방법에 관한 것이다.
본 발명을 이용함으로써 사용자 SLA에 맞춘 I/O 성능 차등화를 제공하고 동시에 SSD 사용률을 높여 전체 성능을 높일 수 있도록 하는 효과가 있다.
The present invention comprises a method comprising the steps of determining a transmission permissible time of each of a plurality of scheduler queues based on a target requirement and extracting a processing request of each scheduler queue within each determined transmission permissible time, One transmission permissible time is different from the other one transmission permissible time.
By using the present invention, it is possible to provide an I / O performance differentiating according to a user SLA, and at the same time increase the SSD usage rate, thereby improving the overall performance.

Description

요구 성능 보장 방법 및 요구 성능 보장 장치{METHOD AND APPARATUS FOR GUARANTEEING PERFORMANCE REQUIREMENT}METHOD AND APPARATUS FOR GUARANTEEING PERFORMANCE REQUIREMENT [0001]

본 발명은 요구 성능 보장 방법 및 요구 성능 보장 장치에 관한 것으로서, 스토리지의 특성을 고려하여 다양한 유형의 요구 성능의 공평한 보장과 스토리지 성능 향상을 동시에 이룰 수 있도록 하는, 요구 성능 보장 방법 및 요구 성능 보장 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a required performance guarantee method and a required performance guarantee apparatus, .

가상화(virtualization) 기법은 널리 활용되는 클라우드 컴퓨팅(Cloud Computing)의 기반이 되는 기술로서 여러 가상 머신(Virtual Machine, 이하 'VM'이라고도 함.)이 물리적 자원을 공유할 수 있도록 하는 기술이다. 클라우드 컴퓨팅의 물리적 인프라인 클라우드 데이터 센터(Cloud Data Center, 이하 'CDC'라고도 함.)는 가상화 기술을 기반으로 물리적 자원을 가상화하여 통합하는 서버 통합(Server Consolidation) 기법을 이용한다. Virtualization is a technology that is the basis of widely used cloud computing. It is a technology that allows a plurality of virtual machines (also referred to as "VMs") to share physical resources. The Cloud Data Center (CDC), the physical infrastructure of cloud computing, uses server consolidation techniques to virtualize and consolidate physical resources based on virtualization technologies.

서버 통합 기술을 이용한 가상화 환경에서는 여러 가상 머신이 하나의 물리 머신 상에서 수행된다. 각각의 VM은 개별적인 성능 요구 사항을 가지고 클라우드 컴퓨팅 사용자의 계약(Service Level Agreement, 이하 'SLA'라고도 함.)으로 정형화된다. 특정 VM의 사용자는 네트워크 응답 시간, 요청 처리 속도를 성능 기준으로 제시할 수 있고 다른 사용자는 초당 I/O 처리량(I/O Operation per Second, 이하 'IOPS'라고도 함.) 또는 대역폭(Bandwidth) 등을 성능 기준으로 제시할 수 있고 또 다른 사용자는 CPU 처리량 또는 CPU 사용률이 기준이 될 수 있다. In a virtualized environment using server consolidation technology, multiple virtual machines run on one physical machine. Each VM is formatted into a Service Level Agreement (SLA) of the cloud computing user with individual performance requirements. Users of a specific VM can present network response time and request processing speed as performance criteria while others can use I / O operation per second (IOPS) or bandwidth And other users can be based on CPU throughput or CPU utilization.

알려진 상용 클라우드 시스템은 데이터 가용성(Data Availability)이나 I/O 처리 성능 또는 월별 서비스 가능 시간(Monthly Uptime Percentage)을 SLA로 제시하고 있고 SLA를 준수하도록 노력한다. Known commercial cloud systems present data availability, I / O throughput, or Monthly Uptime Percentage as SLAs and strive to comply with SLAs.

한편 CDC는 기존 기계적 하드디스크 대신에 높은 IOPS, 대역폭 및 에너지 효율적인 SSD(Solid State Drive)를 도입하고 있다. SSD의 도입 형태는 크게 세 가지로 분류될 수 있다. 첫째 기존 하드디스크와 융합된 형태의 하이브리드 저장장치 또는 디스크 어레이를 사용하는 방식이 있다. Meanwhile, CDC is introducing high IOPS, bandwidth and energy-efficient solid state drives (SSDs) instead of traditional mechanical hard disks. The introduction of SSD can be roughly classified into three types. First, there is a method of using a hybrid storage device or a disk array which is fused with an existing hard disk.

둘째 호스트 서버 캐쉬(Host-Side Cache)로 사용하는 방식이 있다. CDC에서는 일반적으로 수 개의 어레이로 구성된 공유 스토리지( 시스템)를 사용하여 실제 데이터와 물리 서버가 분리된 형태의 스토리지 구조를 많이 사용한다. 이 스토리지 구조는 많은 데이터 처리가 수반되고 네트워크 병목 현상이나 공유 스토리지 처리 한계 등으로 인해 성능 저하로 이어진다. 이러한 문제를 호스트 서버 캐쉬를 이용하여 해결될 수 있다. 호스트 서버를 담당하는 물리 서버에 SSD를 장착하고 이 서버에서 수신되는 I/O 요청을 공유 스토리지로 전달하기 전에 먼저 내장된 SSD에서 처리하도록 하고 이에 따라 각 VM에 대해 높은 I/O 성능을 제공할 수 있다. Secondly, there is a way to use it as a host-side cache. CDC uses shared storage (system) consisting of several arrays in general, and uses a storage structure in which physical data and physical servers are separated. This storage structure is accompanied by a lot of data processing, leading to performance degradation due to network bottlenecks or shared storage processing limitations. This problem can be solved by using the host server cache. The SSD is mounted on the physical server that is responsible for the host server, and the I / O requests received from this server are first processed by the embedded SSD before being forwarded to the shared storage, thereby providing high I / O performance for each VM. .

마지막으로 공유 스토리지의 모든 하드디스크를 SSD로 대체하는 방식이 있다. 이 방식은 비용 문제로 인해 그 적용에 한계가 존재한다. Finally, there is a way to replace all hard disks in shared storage with SSDs. This method is limited due to cost problems.

호스트 서버 캐쉬 방식은 비용과 처리 대비 효율적인 방식으로서 호스트 서버 캐쉬로 사용되는 SSD에 대해 SLA를 보장하는 공평 스케쥴링 기법이 필요하다. The host server cache scheme requires a fair scheduling scheme that guarantees SLAs for SSDs used as host server caches in a cost and process-efficient way.

호스트 서버 캐쉬로 사용되는 SSD는 여러 VM에 의해서 공유되는 자원이고 가상 머신 관리 계층인 하이퍼바이저(Hypervisor) 또는 가상 머신 모니터(Virtual Machine Monitor)가 SLA에 따라 공유 자원인 SSD를 각 VM에 할당할 책임을 가진다. 이러한 장치 관리는 가상화 시스템 구조에 따라 다양한 형태를 가질 수 있다. 예를 들어 하이퍼바이저가 하드웨어를 직접 관리하는 타입, 호스트 역할을 하는 운영체제 위에서 하이퍼바이저가 수행되는 타입 등이 있다. 두 구조 모두 SSD 상위의 I/O 스케쥴러가 존재하고 SSD 자원을 SLA에 맞추어 VM에 제공해야 하는 역할을 맡는다. 따라서 I/O 스케쥴링 기법은 SSD 활용을 위한 중요한 기술 요소이다. An SSD used as a host server cache is a resource shared by multiple VMs. A hypervisor or a virtual machine monitor, which is a virtual machine management layer, is responsible for allocating SSDs, which are shared resources according to SLAs, . Such device management can take various forms depending on the structure of the virtualization system. For example, a type in which a hypervisor manages hardware directly, and a type in which a hypervisor is executed on an operating system that acts as a host. Both architectures have an I / O scheduler above the SSD and are responsible for providing the SSD resources to the VM in accordance with the SLA. Therefore, the I / O scheduling technique is an important technical factor for utilizing SSD.

I/O 스케쥴링에 관련된 몇몇 연구(비특허문헌 1 내지 4 참조)가 알려져 있다. Some studies related to I / O scheduling (see non-patent documents 1 to 4) are known.

비특허문헌 1의 I/O 스케쥴러는 SSD의 전체적인 성능 향상을 목표로 하고 있으나 SLA에 맞추어 각 VM의 I/O 성능을 차등화하는 기능을 제공하고 있지 않고 읽기 요청을 수행하는 VM에 대해 좋은 성능을 제공하여 다른 VM과의 공평성을 제공하고 있지 않다. The I / O scheduler of the non-patent document 1 aims at improving the overall performance of the SSD, but does not provide a function of differentiating the I / O performance of each VM according to the SLA. And does not provide fairness with other VMs.

비특허문헌 2는 SSD의 성능 향상과 공평성 제공을 목적으로 하나 I/O 성능에 대한 SLA 보장을 위해 사용되기 어렵고 SLA를 만족시키는 형태로 변형하기 대단히 어렵다. Non-Patent Document 2 aims to improve performance and fairness of SSD, but it is difficult to use for guaranteeing SLA on I / O performance and it is very difficult to transform into a form satisfying SLA.

비특허문헌 3의 스케쥴러와 비특허문헌 4는 공평 큐잉 기반의 알고리즘으로서 SSD의 성능 향상과 각 VM 간의 공평성 보장을 동시에 이룰 수가 없다.The scheduler of the non-patent document 3 and the non-patent document 4 can not simultaneously achieve performance improvement of SSD and fairness between VMs as a fair queuing-based algorithm.

이와 같이 여러 VM으로부터의 처리 요청에 응답해서 호스트 서버상에 탑재된 SSD의 처리 성능을 향상하는 동시에 SLA 에 따른 목표 요구 사항을 만족시킬 수 있도록 하는 요구 성능 보장 방법 및 요구 성능 보장 장치가 필요하다.Thus, there is a need for a required performance guarantee method and a required performance assurance device that can improve the processing performance of an SSD mounted on a host server in response to a processing request from several VMs, while satisfying a target requirement according to the SLA.

Kim, Jaeho, et al. "Disk schedulers for solid state drivers." Proceedings of the seventh ACM international conference on Embedded software. ACM, 2009. Kim, Jaeho, et al. "Disk schedulers for solid state drivers." Proceedings of the seventh ACM international conference on Embedded software. ACM, 2009. K. Shen, “FlashFQ : A Fair Queueing I / O Scheduler for Flash-Based SSDs,” in Proccedings of the 2013 USENIX Annual Technical Conference, 2013, pp. 67-78. K. Shen, "FlashFQ: A Fair Queuing I / O Scheduler for Flash-Based SSDs," Proc. Of the 2013 USENIX Annual Technical Conference, 2013, pp. 67-78. Gulati, Ajay, Arif Merchant, and Peter J. Varman. "mClock: handling throughput variability for hypervisor IO scheduling." Proceedings of the 9th USENIX conference on Operating systems design and implementation. USENIX Association, 2010. Gulati, Ajay, Arif Merchant, and Peter J. Varman. "mClock: handling throughput variability for hypervisor IO scheduling." Proceedings of the 9th USENIX conference on operating systems design and implementation. USENIX Association, 2010. D. Shue, M. M. J. Freedman, and A. Shaikh, “Performance isolation and fairness for multi-tenant cloud storage,” in Proc. 10th USENIX Conference on Operating Systems Design and Implementation, 2012, pp. 349-362. D. Shue, M. M. J. Freedman, and A. Shaikh, "Performance isolation and fairness for multi-tenant cloud storage," in Proc. 10th USENIX Conference on Operating Systems Design and Implementation, 2012, pp. 349-362.

본 발명은 상술한 문제점을 해결하기 위해서 안출한 것으로서, 사용자 SLA에 맞춘 I/O 성능 차등화를 제공하고 동시에 SSD 사용률을 높여 전체 성능을 높일 수 있도록 하는 요구 성능 보장 방법 및 요구 성능 보장 장치를 제공하는 데 그 목적이 있다. SUMMARY OF THE INVENTION The present invention has been made in order to solve the above-mentioned problems, and it is an object of the present invention to provide a required performance guarantee method and a required performance guarantee device which can provide I / O performance differentiation adapted to a user SLA, It has its purpose.

상기와 같은 목적을 달성하기 위한 요구 성능 보장 방법은 복수의 스케쥴러 큐 각각의 전송 허용 시간을 목표 요구 사항에 기초하여 결정하는 단계 및 각각의 결정된 전송 허용 시간 내에서 각각의 스케쥴러 큐의 처리 요청을 추출하는 단계를 포함하고 복수의 스케쥴러 큐 중 하나의 전송 허용 시간은 다른 하나의 전송 허용 시간과는 상이하다. According to another aspect of the present invention, there is provided a required performance guarantee method including: determining a transmission allowable time of each of a plurality of scheduler queues based on a target requirement; extracting a processing request of each scheduler queue within each determined transmission allowable time; Wherein the transmission allowance time of one of the plurality of scheduler queues is different from that of the other one of the plurality of scheduler queues.

또한 상기와 같은 목적을 달성하기 위한 요구 성능 보장 장치는 복수의 스케쥴러 큐 각각의 전송 허용 시간을 목표 요구 사항에 기초하여 결정하는 피드백 제어 모듈 및 각각의 결정된 전송 허용 시간 내에서 각각의 스케쥴러 큐의 처리 요청을 추출하는 I/O 스케쥴러를 포함하고 복수의 스케쥴러 큐 중 하나의 전송 허용 시간은 다른 하나의 전송 허용 시간과는 상이하다. In order to achieve the above object, a required performance assurance apparatus includes a feedback control module for determining a transmission permissible time of each of a plurality of scheduler queues based on a target requirement, and a feedback control module for processing each scheduler queue within each determined transmission permissible time And an I / O scheduler for extracting a request, and the transfer permission time of one of the plurality of scheduler queues is different from the other transfer permission time.

상기와 같은 본 발명에 따른 요구 성능 보장 방법 및 요구 성능 보장 장치는 사용자 SLA에 맞춘 I/O 성능 차등화를 제공하고 동시에 SSD 사용률을 높여 전체 성능을 높일 수 있도록 하는 효과가 있다. The required performance guarantee method and the required performance guarantee device according to the present invention as described above provide an I / O performance differentiating according to the user SLA, and at the same time, the SSD usage rate is increased to improve the overall performance.

도 1은 본 발명에 따른 예시적인 클라우드 시스템을 도시한 도면이다.
도 2는 요구 성능 보장 장치의 예시적인 하드웨어 블록도를 도시한 도면이다.
도 3은 처리 요청을 스케쥴링 하기 위한 요구 성능 보장 장치의 예시적인 기능 블록도를 도시한 도면이다.
도 4는 요구 성능을 보장하기 위한 예시적인 처리 흐름을 도시한 도면이다.
도 5는 본 발명을 설명하기 위해 이용되는 기호의 정의를 나타내는 도면이다.
도 6은 처리 요청 수신시에 스케쥴링 큐에 삽입하기 위한 알고리즘을 도시한 도면이다.
도 7은 전송 허용 시간을 결정하기 위해 윈도우 시작시에 이용되는 알고리즘을 도시한 도면이다.
도 8은 k 번째 윈도우 내의 새로운 라운드 시작시에 적용되는 알고리즘을 도시한 도면이다.
도9는 전송 허용 시간을 이용하여 처리 요청의 추출과 디스패치 큐로의 삽입을 처리하는 알고리즘을 도시한 도면이다.
도 10은 한 라운드 내에서 차등화된 전송 허용 시간을 활용하여 예시적인 VM들의 스케쥴링 큐에 적재된 처리 요청을 처리하는 일 예를 도시한 도면이다.
도 11은 목표 요구 사항의 처리량을 갱신하기 위한 알고리즘을 도시한 도면이다.
1 is a diagram illustrating an exemplary cloud system in accordance with the present invention.
2 is a diagram showing an exemplary hardware block diagram of the required performance guaranteeing apparatus.
3 is a diagram illustrating an exemplary functional block diagram of a required performance assurance device for scheduling processing requests.
4 is a diagram showing an exemplary process flow for ensuring required performance.
5 is a diagram showing definitions of symbols used for explaining the present invention.
6 is a diagram showing an algorithm for inserting into a scheduling queue upon receipt of a processing request.
FIG. 7 is a diagram showing an algorithm used at the start of a window to determine a transfer permission time.
8 is a diagram showing an algorithm applied at the start of a new round in the kth window.
FIG. 9 is a diagram showing an algorithm for processing extraction of a processing request and insertion into a dispatch queue using the transmission allowable time.
FIG. 10 illustrates an example of processing a processing request loaded in a scheduling queue of exemplary VMs utilizing the differentiated transfer time in a round.
11 is a diagram showing an algorithm for updating the throughput of a target requirement.

상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술 되어 있는 상세한 설명을 통하여 더욱 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings, in which: It can be easily carried out. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 예시적인 클라우드 시스템을 도시한 도면이다. 1 is a diagram illustrating an exemplary cloud system in accordance with the present invention.

도 1에 따르면 클라우드 시스템은 복수의 VM(100)과 요구 성능 보장 장치(200) 및 공유 스토리지(300)를 포함한다. 클라우드 시스템은 CDC 상에서 구성된다. CDC는 복수의 물리 서버로 구성되고 한 유형의 물리 서버들 각각은 하나 이상의 VM(100)의 기능을 수행하기 위해 할당되고 다른 물리 서버는 호스트 서버로 할당되어 본 발명에 따른 요구 성능을 보장하기 위한 요구 성능 보장 장치(200)의 기능을 수행한다. 다른 유형의 물리 서버는 여러 하드디스크를 포함하여 공유 스토리지(300)를 제공할 수 있다. 임의의 VM(100)은 요구 성능 보장 장치(200)로 근거리 또는 광대역 네트워크를 통해 처리 요청을 전달할 수 있다. 1, a cloud system includes a plurality of VMs 100, a required performance assurance device 200, and a shared storage 300. As shown in FIG. The cloud system is configured on the CDC. The CDC is composed of a plurality of physical servers, each type of physical server is allocated to perform the functions of one or more VMs 100, and the other physical servers are allocated to the host server to ensure the required performance according to the present invention And performs the function of the required performance assurance device (200). Other types of physical servers may provide shared storage 300, including multiple hard disks. Any VM 100 may communicate the processing request to the required performance assurance device 200 over a local or wide area network.

각 구성 요소에 대해서 간단히 살펴보면, VM(100)은 클라우드 시스템을 이용하고자 하는 사용자와 클라우드 시스템 간의 계약에 따라 특정 기능을 수행한다. VM(100)은 예를 들어 파일 서버, 웹 서버, 하둡(Hadoop) 등을 처리하는 서버 등의 기능을 수행한다. VM(100)은 클라우드 시스템 간의 계약(SLA)에 따라 개별적인 성능 요구 사항을 가진다. 각 VM(100)의 성능 요구 사항은 수행 기능에 따라 다를 수 있다. 예를 들어 성능 요구 사항은 IOPS, 대역폭, 응답 속도 또는 사용량(예를 들어 CPU 사용량이나 SSD 사용량 등)이거나 이 조합으로 구성된다. 이하 달성하고자 하는 성능 요구 사항을 목표 요구 사항이라고 지칭한다. 각각의 VM(100)은 요구 성능 보장 장치(200)로 처리 요청을 가상화 기법이 제공하는 I/O(Input/Output) 전달 방식을 통해 하드디스크(205)로 전달한다.In brief, the VM 100 performs a specific function according to a contract between a user who intends to use the cloud system and the cloud system. The VM 100 performs functions such as a file server, a web server, a server for processing Hadoop, and the like. The VM 100 has individual performance requirements in accordance with the contracts (SLAs) between the cloud systems. The performance requirements of each VM 100 may vary depending on performance capabilities. For example, performance requirements can consist of IOPS, bandwidth, response rate, or usage (for example, CPU usage or SSD usage) or a combination of these. Hereinafter, performance requirements to be achieved are referred to as target requirements. Each VM 100 delivers a processing request to the hard disk 205 through an input / output (I / O) delivery method provided by the virtualization technique to the requested performance assurance device 200.

요구 성능 보장 장치(200)는 VM(100) 각각의 목표 요구 사항에 따라 VM(100)으로부터의 처리 요청을 내장된 하드디스크(205)를 이용하여 처리한다. 요구 성능 보장 장치(200)는 소위 호스트 서버일 수 있다. 요구 성능 보장 장치(200)는 내장된 하드디스크(205)를 활용하여 처리 성능의 극대화와 서로 차별화되는 목표 요구 사항이 공평하게 이루어지도록 구성된다. The requested performance assurance apparatus 200 processes the processing request from the VM 100 using the built-in hard disk 205 in accordance with the target requirements of each of the VMs 100. [ The required performance assurance device 200 may be a so-called host server. The required performance assurance apparatus 200 is configured to utilize the built-in hard disk 205 to maximize processing performance and equally achieve different target requirements.

요구 성능 보장 장치(200)는 내장된 SSD(하드디스크(205))를 활용하여 캐쉬 서버로서 기능하고 공유 스토리지(300)에 기록할 데이터를 임시로 버퍼링하고 VM(100)으로 처리 완료의 응답을 전송하고 이후 공유 스토리지(300)에 기록할 수 있다.The required performance assurance apparatus 200 functions as a cache server utilizing an embedded SSD (hard disk 205), temporarily buffers data to be written to the shared storage 300, and sends a response of completion of processing to the VM 100 And then write to the shared storage 300.

요구 성능 보장 장치(200)에 관련해서는 도 2 이하에서 상세히 살펴보도록 한다. The required performance assurance device 200 will be described in detail with reference to FIG.

공유 스토리지(300)는 복수의 VM(100)에 의해서 공유되는 자원으로서 각종 데이터를 저장한다. 공유 스토리지(300)는 물리적으로 분산될 수 있고 요구 성능 보장 장치(200)로부터의 처리 요청에 응답하여 공유 스토리지(300) 내에 데이터를 저장하고 추출하여 전달할 수 있다. The shared storage 300 stores various data as resources shared by the plurality of VMs 100. [ The shared storage 300 may be physically distributed and may store, extract, and deliver data in the shared storage 300 in response to a processing request from the requested performance assurance device 200.

여기서, VM(100)에서 요구 성능 보장 장치(200)로 전송되는 처리 요청은 공유 스토리지(300)로의 I/O(Input/Output) 처리 요청을 나타내고 캐쉬 서버 기능의 수행에 따라 요구 성능 보장 장치(200)에 내장된 SSD에 대한 I/O (Input/Output) 처리를 수반한다. 내장된 SSD를 활용함으로써 I/O 처리의 성능 극대화를 가능케 한다. Here, the processing request transmitted from the VM 100 to the requested performance assurance apparatus 200 indicates an input / output (I / O) processing request to the shared storage 300, and the requested performance guarantee apparatus 200) with I / O (Input / Output) processing for the SSD. Utilizing an embedded SSD enables maximum performance of I / O processing.

도 2는 요구 성능 보장 장치(200)의 예시적인 하드웨어 블록도를 도시한 도면이다. 도 2에 따르면 요구 성능 보장 장치(200)는 입력 인터페이스(201), 메모리(203), 하드디스크(205), 통신 인터페이스(207), 하나 이상의 프로세서(209) 및 시스템 버스/제어 버스(211)를 포함한다. 이 중 일부의 블록은 생략될 수 있고 예를 들어 입력 인터페이스(201)는 변형예에 따라 생략될 수 있다. 2 is a diagram showing an exemplary hardware block diagram of the required performance assurance apparatus 200. As shown in FIG. 2, the required performance assurance device 200 includes an input interface 201, a memory 203, a hard disk 205, a communication interface 207, one or more processors 209, and a system bus / . Some of these blocks may be omitted and the input interface 201 may be omitted according to a modification example.

각 블록에 대해서 살펴보면, 입력 인터페이스(201)는 요구 성능 보장 장치(200)의 관리자로부터의 사용자 입력을 수신할 수 있는 인터페이스이다. 입력 인터페이스(201)는 마우스, 키보드 등을 포함하여 마우스나 키보드의 입력에 따른 신호를 수신하도록 구성된다. Referring to each block, the input interface 201 is an interface capable of receiving user input from the manager of the required performance assurance device 200. The input interface 201 is configured to receive a signal corresponding to an input of a mouse or a keyboard, including a mouse, a keyboard, and the like.

메모리(203)는 각종 데이터와 프로그램을 임시로 저장하거나 영구히 저장한다. 메모리(203)는 예를 들어 휘발성 메모리이거나 비휘발성 메모리이거나 휘발성 메모리 및 비휘발성 메모리를 포함한다. The memory 203 temporarily stores or permanently stores various data and programs. The memory 203 may be, for example, a volatile memory, a non-volatile memory, or a volatile memory and a non-volatile memory.

하드디스크(205)는 각종 데이터와 프로그램을 저장하는 대용량 저장 매체이다. 특히 이 하드디스크(205)는 SSD로 구성되어 외부 VM(100)으로부터의 처리 요청을 캐싱하기 위한 용도로 이용된다. The hard disk 205 is a mass storage medium for storing various data and programs. Particularly, the hard disk 205 is constituted by an SSD and is used for caching a processing request from the external VM 100.

하드디스크(205)는 내부에 각종 콘트롤러와 메모리를 포함한다. 메모리는 하드디스크(205) 외부로부터 수신된 I/O 처리 요청을 큐잉하기 위해서 이용된다. 메모리에 구성되는 큐는 이하 '장치 큐'라 지칭한다. 하드디스크(205) 내부의 콘트롤러는 수신된 I/O 처리 요청을 장치 큐에 삽입하고 장치 큐의 I/O 처리 요청을 내부 상태에 따라 재 스케쥴링하여 I/O 처리 요청을 처리한다. 본 발명에 따른 하드디스크(205)는 호스트 서버 캐싱 영역으로 이용된다. The hard disk 205 includes various controllers and memories therein. The memory is used to queue I / O processing requests received from outside the hard disk 205. A queue configured in the memory is referred to as a " device queue ". The controller inside the hard disk 205 processes the I / O processing request by inserting the received I / O processing request into the device queue and rescheduling the I / O processing request of the device queue according to the internal state. The hard disk 205 according to the present invention is used as a host server caching area.

여기서 특히 SSD의 콘트롤러는 SSD의 성능 극대화를 위해 복잡한 알고리즘을 구비한다. 복잡한 알고리즘에 따라 장치 큐의 I/O 처리 요청을 재스케쥴링하여 SSD 내부의 플래쉬(Flash) 메모리들의 액세스 성능을 극대화한다. 장치 큐에 대한 설명은 도 4를 통해서 좀 더 살펴보도록 한다. In particular, the controller of the SSD has a complicated algorithm for maximizing the performance of the SSD. It maximizes the access performance of Flash memories in the SSD by rescheduling I / O processing requests of device queues according to complicated algorithms. A description of the device queue will be further described with reference to FIG.

통신 인터페이스(207)는 VM(100) 또는 VM(100)을 수행하는 물리 서버와 통신할 수 있도록 구성된 인터페이스이다. 통신 인터페이스(207)는 MAC(Media Access Control) 레이어의 네트워크 패킷을 물리 레이어 상의 아날로그 신호를 변환할 수 있다. 통신 인터페이스(207)는 예를 들어 이더넷 패킷을 아날로그 신호로 변환하여 이더넷 케이블로 출력하고 이더넷 케이블로부터 수신된 아날로그 신호를 이더넷 패킷으로 변환하여 내부로 전달할 수 있다. The communication interface 207 is an interface configured to communicate with the VM 100 or the physical server that executes the VM 100. [ The communication interface 207 can convert the network packet of the MAC (Media Access Control) layer into an analog signal on the physical layer. For example, the communication interface 207 converts an Ethernet packet into an analog signal, outputs the Ethernet packet through an Ethernet cable, converts the analog signal received from the Ethernet cable into an Ethernet packet, and transmits the packet to the inside.

프로세서(209)는 메모리(203)와 하드디스크(205)를 활용하여 설정된 각종 기능을 수행한다. 프로세서(209)는 내부에 프로그램 코드의 명령어들을 실행하기 위한 실행 유닛(Execution Unit)을 하나 이상 포함한다. The processor 209 performs various functions set by utilizing the memory 203 and the hard disk 205. The processor 209 includes one or more execution units for executing instructions of program codes therein.

프로세서(209)에서 수행되는 프로그램은 여러 유형이 있을 수 있다. 예를 들어 본 발명이 적용되는 가상화 시스템의 구조에 따라 SSD와 같은 하드디스크(205)를 직접 관리하는 하이퍼바이저나 가상 머신 모니터의 프로그램을 포함하거나 나아가 운영체제 프로그램을 더 포함할 수 있다. 하이퍼바이저 또는 운영체제 프로그램은 I/O 스케쥴러(253)를 적어도 포함하고 나아가 디바이스 드라이버를 더 포함할 수 있다. The program executed by the processor 209 may be of various types. For example, according to the structure of a virtualization system to which the present invention is applied, a virtual machine monitor program or a hypervisor directly managing a hard disk 205 such as an SSD may be included or an OS program may be further included. The hypervisor or operating system program may include at least the I / O scheduler 253 and further include a device driver.

I/O 스케쥴러(253)는 외부 VM(100)으로부터 I/O 처리 요청과 같은 처리 요청을 수신하고 처리 요청에 응답하여 하드디스크(205)를 활용해서 그 처리를 수행한다. I/O 스케쥴러(253) 등에서 이루어지는 처리 과정은 도 3 이하에서 살펴보도록 한다. The I / O scheduler 253 receives a processing request such as an I / O processing request from the external VM 100, and performs processing using the hard disk 205 in response to the processing request. I / O scheduler 253 and the like will be described with reference to FIG.

시스템 버스/제어 버스(211)는 요구 성능 보장 장치(200) 내의 구성 요소간의 데이터나 제어 신호를 송수신할 수 있는 버스이다. 시스템 버스/제어 버스(211)는 예를 들어 병렬 버스, 시리얼 버스, GPIO(General Purpose Input/Output) 또는 그 조합으로 구성된다.
The system bus / control bus 211 is a bus capable of transmitting and receiving data and control signals between elements in the required performance assurance apparatus 200. The system bus / control bus 211 is composed of, for example, a parallel bus, a serial bus, a general purpose input / output (GPIO), or a combination thereof.

도 3은 처리 요청을 스케쥴링 하기 위한 요구 성능 보장 장치(200)의 예시적인 기능 블록도를 도시한 도면이다. 도 3에 따르면 요구 성능 보장 장치(200)는 복수의 스케쥴러 큐(251), I/O 스케쥴러(253), 디스패치 큐(255), 피드백 제어 모듈(257) 및 요구 사항 관리 모듈(259)을 포함한다. 스케쥴러 큐(251), I/O 스케쥴러(253), 디스패치 큐(255), 피드백 제어 모듈(257) 및 나아가 요구 사항 관리 모듈(259)은 하이퍼바이저 등의 프로그램상에 포함되거나 운영체제 프로그램상에 포함된다. FIG. 3 is a diagram illustrating an exemplary functional block diagram of a required performance assurance device 200 for scheduling processing requests. 3, the required performance assurance apparatus 200 includes a plurality of scheduler queues 251, an I / O scheduler 253, a dispatch queue 255, a feedback control module 257, and a requirement management module 259 do. The scheduler queue 251, the I / O scheduler 253, the dispatch queue 255, the feedback control module 257 and the requirements management module 259 are included in a program such as a hypervisor or included in an operating system program do.

각각의 기능 블록들은 프로세서(209)상에서 수행되는 프로그램과 메모리(203)를 이용하여 바람직하게 구성된다. 각각의 기능 블록들은 스케쥴러 큐(251)나 디스패치 큐(255)를 매개로 독립적으로 수행할 수 있다. 이에 따라 I/O 스케쥴러(253)와 피드백 제어 모듈(257) 및 요구 사항 관리 모듈(259)은 내부 스케쥴링이나 이벤트 발생에 따라 독립적으로 수행된다. Each functional block is preferably configured using the program and memory 203 on the processor 209. Each of the functional blocks can be independently performed through a scheduler queue 251 or a dispatch queue 255. [ Accordingly, the I / O scheduler 253, the feedback control module 257, and the requirement management module 259 are independently performed according to internal scheduling or event generation.

각 기능 블록들에 대해서 살펴보면, 복수의 스케쥴러 큐(251)는 복수의 VM(100)에 맵핑되어 대응하는 VM(100)으로부터의 처리 요청을 저장한다. 스케쥴러 큐(251)는 I/O 스케쥴러(253)의 제어에 따라 먼저 저장된 처리 요청이 출력될 수 있는 선입선출 방식의 리스트이다. Referring to each functional block, a plurality of scheduler queues 251 are mapped to a plurality of VMs 100 and store processing requests from the corresponding VMs 100. [ The scheduler queue 251 is a list of first-in first-out methods in which a stored processing request can be output first under the control of the I / O scheduler 253.

I/O 스케쥴러(253)는 복수의 VM(100) 각각으로부터 처리 요청을 수신하고 수신된 처리 요청을 스케쥴러 큐(251)에 선입선출 방식에 따라 삽입한다. 삽입시 I/O 스케쥴러(253)는 처리 요청을 수신한 도착시각을 처리 요청에 태깅하여 스케쥴러 큐(251) 등에 같이 저장할 수 있다. The I / O scheduler 253 receives a processing request from each of the plurality of VMs 100 and inserts the received processing request into the scheduler queue 251 according to a first-in first-out method. Upon insertion, the I / O scheduler 253 can tag the arrival time of the processing request received in the processing request and store it in the scheduler queue 251 or the like.

또한 I/O 스케쥴러(253)는 복수의 스케쥴러 큐(251) 각각에 저장된 처리 요청을 각 스케쥴러 큐(251)에 대해서 일정한 주기에 따라 동적으로 결정된 전송 허용 시간의 범위 내에서 추출하고 추출된 처리 요청을 디스패치 큐(255)에 삽입한다. 특히 I/O 스케쥴러(253)는 처리 요청에 대해 태깅된 도착시각과 아래에서 살펴볼 각 스케쥴러 큐(251)별로 일정한 주기에 따라 결정되는 전송 허용 시간의 비교로 각 스케쥴러 큐(251)의 처리 요청의 추출 여부를 결정하고 그 결정에 따라 각 스케쥴러 큐(251)의 처리 요청을 추출하고 이를 디스패치 큐(255)에 삽입한다. In addition, the I / O scheduler 253 extracts the processing requests stored in the plurality of scheduler queues 251 within the range of the transmission permission time dynamically determined according to a certain period for each of the scheduler queues 251, Is inserted into the dispatch queue 255. In particular, the I / O scheduler 253 compares the arrival time instant tagged for the processing request with the transmission permissible time determined according to a predetermined period for each scheduler queue 251 to be examined below, Extracts a processing request of each scheduler queue 251 according to the determination, and inserts the processing request into the dispatch queue 255.

디스패치 큐(255)는 I/O 스케쥴러(253)로부터의 처리 요청을 임시로 저장한다. 디스패치 큐(255)는 선입선출 방식에 따라 먼저 입력된 처리 요청이 하드디스크(205)의 장치 큐로 출력된다. 디스패치 큐(255)의 처리 요청은 장치 큐의 콘트롤러와의 인터페이스를 통해 출력 가능한 시점에 바로 출력되도록 구성된다. 디스패치 큐(255)는 예를 들어 디바이스 드라이버 상에 구성될 수 있다. The dispatch queue 255 temporarily stores a processing request from the I / O scheduler 253. [ The dispatch queue 255 outputs a processing request, which is input first according to the first-in first-out method, to the device queue of the hard disk 205. The processing request of the dispatch queue 255 is configured to be output immediately at an outputable time through the interface with the controller of the device queue. The dispatch queue 255 may be configured on the device driver, for example.

요구 사항 관리 모듈(259)은 입력 인터페이스(201)나 통신 인터페이스(207)를 통해 각 VM(100) 별 목표 요구 사항을 수신한다. 또한 요구 사항 관리 모듈(259)은 피드백 제어 모듈(257)에 연결되어 피드백 제어 모듈(257)의 목표 요구 사항에 대응하는 처리량을 수신하고 이를 출력 인터페이스(도면 미도시)나 통신 인터페이스(207)를 통해 출력할 수 있다. The requirements management module 259 receives target requirements for each VM 100 through the input interface 201 or the communication interface 207. [ The requirement management module 259 is also connected to the feedback control module 257 to receive the throughput corresponding to the target requirement of the feedback control module 257 and to provide the output interface (not shown) or the communication interface 207 .

피드백 제어 모듈(257)은 복수의 스케쥴러 큐(251) 각각의 전송 허용 시간을 요구 사항 관리 모듈(259)로부터의 목표 요구 사항에 기초하여 결정한다. 피드백 제어 모듈(257)은 반복적으로 수행할 수 있고 각 반복에서 전송 허용 시간을 이전 반복에서의 처리량의 변화에 따라 늘리거나 줄일 수 있다. The feedback control module 257 determines the transmission allowable time of each of the plurality of scheduler queues 251 based on the target requirement from the requirement management module 259. [ The feedback control module 257 can perform iteratively and allow the transmission time in each iteration to increase or decrease with the change in throughput in the previous iteration.

VM(100) 별 전송 허용 시간은 목표 요구 사항에 따라서 또는 목표 요구 사항에 대응하는 처리량의 변화에 따라 VM(100) 별로 상이할 수 있다.The transfer time allowed per VM 100 may be different for each VM 100 depending on the target requirements or the change in throughput corresponding to the target requirement.

도 3의 요구 성능 보장 장치(200)는 복수의 가상 머신(100), 공용 스토리지를 포함하는 클라우드 시스템 환경하에서 복수의 가상 머신(100)으로부터 공용 스토리지로의 I/O 처리 요청을 내장된 하드디스크(205)를 이용하여 처리하도록 구성된다. The requested performance assurance apparatus 200 of FIG. 3 includes a plurality of virtual machines 100, an I / O processing request from a plurality of virtual machines 100 to a common storage in a cloud system environment including public storage, (205).

도 3의 각 기능 블록들 중 I/O 스케쥴러(253)와 피드백 제어 모듈(257)의 처리 흐름은 도 4 이하에서 상세히 살펴보도록 한다.
The processing flow of the I / O scheduler 253 and the feedback control module 257 among the functional blocks of FIG. 3 will be described in detail with reference to FIG.

도 4는 요구 성능을 보장하기 위한 예시적인 처리 흐름을 도시한 도면이다. 4 is a diagram showing an exemplary process flow for ensuring required performance.

도 4의 설명에 앞서, SSD와 같은 하드디스크(205)에서 성능의 극대화와 각 VM(100) 별 목표 요구 사항을 공평하게 충족시킴에 있어 이율 배반성(trade-off)이 존재하는 점에 대해서 이하 설명하도록 한다. Prior to the description of FIG. 4, it should be noted that there is a trade-off in maximizing performance and equally satisfying the target requirements of each VM 100 in the hard disk 205 such as the SSD. This will be described below.

VM(100) 각각의 여러 목표 요구 사항에 부합하게 사용하기 위한 기법으로서 공평 큐잉(fair-queuing) 기법이 있다. 공평 큐잉 기법의 스케쥴러로서 대표적으로 SFQ(D), BFQ, YFQ, mClock, FlashFQ 등이 있다. mClock 스케쥴러는 가상화 시스템 환경하에서 하드디스크 기반의 스토리지를 사용할 때 목표 요구 사항에 부합하는 성능 차등화 기능을 제공한다. 하지만 SSD에서 발휘할 수 있는 전체 성능을 희생하면서 이 목적을 달성하고 있다. 따라서 목표 요구 사항에 따른 성능 차등화를 달성하면서도 SSD의 전체 성능을 향상시킬 수 있는 스케쥴러의 구성이 요구된다. There is a fair-queuing scheme as a technique for using in accordance with the various target requirements of each VM 100. As the scheduler of the fair queuing scheme, SFQ (D), BFQ, YFQ, mClock, and FlashFQ are typical examples. The mClock scheduler provides performance differentiation to meet your target requirements when using hard disk-based storage in a virtualized system environment. However, they are achieving this goal at the expense of the overall performance that can be achieved with SSDs. Therefore, a configuration of a scheduler capable of improving the overall performance of the SSD while achieving performance differentiation according to the target requirements is required.

스토리지를 위한 I/O 스케쥴링 기법에서 성능과 공평성간 이율 배반성이 존재한다는 것은 널리 알려져 있다. 이율 배반성의 근본 이유는 I/O 스케쥴러(253) 내부의 스케쥴러 큐(251)와 하드디스크(205) 내에 내장된 장치 큐 간의 관계에서 기인한다. It is widely known that there is a trade-off between performance and fairness in I / O scheduling techniques for storage. The root cause of the rate betrayal results from the relationship between the scheduler queue 251 in the I / O scheduler 253 and the device queue embedded in the hard disk 205.

공평성을 담보하기 위해서 mClock과 같은 기존 스케쥴링 기법은 I/O 처리 요청을 일정한 정책에 따라 정렬하고 장치 큐로 전달되는 순서와 양을 조절하여 목표 요구 사항을 달성시킬 수 있다. 이에 따라 충분한 수준의 공평성을 제공하기 위해서는 스케쥴러 큐(251)에 가능한 많은 양의 I/O 처리 요청이 적재되어야 한다. 일반적으로 mclock 등은 네트워크 처리 요청에 적합하게 동작한다. To ensure fairness, existing scheduling schemes such as mClock can achieve the target requirements by aligning I / O processing requests according to a certain policy and by adjusting the order and amount delivered to the device queue. Accordingly, in order to provide a sufficient level of fairness, a large amount of I / O processing requests must be loaded in the scheduler queue 251. In general, mclock works well for network processing requests.

반면에 하드디스크(205) 등은 디스크 헤드(disk head)를 플래터(plater) 위로 이동시켜 I/O 요청이 요구하는 위치에 접근해야만 한다. 물리적인 이동 시간으로 인해 특히 임의(random) 접근 방식의 I/O 요청에 대해 접근 시간이 늘어나는 문제가 발생한다. 이에 따라 하드디스크(205)는 장치 큐에 적재된 I/O 요청을 접근 시간을 줄일 수 있도록 재정렬하고 디스크 헤드의 이동을 최소화하여 좋은 성능을 제공할 수 있다. On the other hand, the hard disk 205 or the like must move the disk head on a platter to approach a position required by the I / O request. Due to the physical movement time, there is a problem that access time increases especially for I / O requests of random access. Accordingly, the hard disk 205 can rearrange the I / O requests loaded in the device queue so as to reduce the access time and minimize the movement of the disk head, thereby providing good performance.

이미 살펴본 바와 스케쥴러 큐(251)에서의 공평성을 극대화하기 위해서는 충분한 양의 I/O 처리 요청이 적재되어야 하고 마찬가지로 하드디스크(205)의 처리 성능을 극대화하기 위해서도 장치 큐에 I/O 처리 요청이 충분히 적재되어야 한다. 하지만 스케쥴러 큐(251)와 장치 큐 모두에 충분한 양의 처리 요청을 적재하기는 사실상 불가능하다. 일반적으로 알려진 기업용 서버에서 I/O 요청의 길이는 초당 평균 4.87 개 정도인 것으로 알려져 있어 성능 공평성과 하드디스크(205)의 성능 극대화 공히 달성하는 것이 사실상 불가능하다. In order to maximize the fairness in the scheduler queue 251, a sufficient amount of I / O processing requests must be loaded, and in order to maximize the processing performance of the hard disk 205, an I / O processing request Should be loaded. However, it is virtually impossible to load a sufficient amount of processing requests in both the scheduler queue 251 and the device queue. In general, it is known that the average length of I / O requests is about 4.87 times per second in a known enterprise server, so that it is virtually impossible to achieve performance fairness and performance of the hard disk 205 at the same time.

더욱이 하드디스크(205)가 SSD인 경우에 이율 배반성은 심화된다. 일반 하드디스크에 비해 SSD의 장치 큐의 역할은 더욱 복잡해진다. 이는 SSD의 내부 구조에 기인한다. SSD는 내부에 여러 채널로 연결된 다수의 플래쉬 메모리 칩과 콘트롤러를 내장하고 있다. SSD는 여러 독립적인 채널을 이용하여 병렬적으로 플래쉬 메모리 칩에 액세스하여 병렬성을 극대화하여 SSD의 성능을 극대화한다. Furthermore, in the case where the hard disk 205 is an SSD, the rate betting property is intensified. Compared to traditional hard disks, the role of device queues in SSDs becomes more complex. This is due to the internal structure of the SSD. The SSD has a number of internal flash memory chips and controllers connected by multiple channels. SSD maximizes SSD performance by maximizing parallelism by accessing flash memory chips in parallel using several independent channels.

SSD의 콘트롤러는 병렬성 극대화를 위해 복잡한 계층을 가지고 복잡한 알고리즘에 따라 I/O 처리 요청을 처리한다. 병렬성 극대화를 위해서는 여러 I/O 처리 요청이 장치 큐에 존재하여야만 각 채널의 유휴 시간없이 동작할 수 있다. 이에 따라 콘트롤러는 큰 용량의 장치 큐를 구비하는 것이 필요하고 I/O 처리 요청을 가능한 많이 적재하고 있는 것이 SSD 성능 향상의 중요 요인이다. 이는 일반 물리적인 헤드를 동작하는 하드디스크(205)에 비해서 더 큰 성능 차이를 보인다. The SSD controller handles I / O processing requests according to complex algorithms with complex hierarchies for maximum parallelism. In order to maximize parallelism, multiple I / O processing requests must be present in the device queue for each channel to operate without idle time. Accordingly, the controller is required to have a large capacity device queue, and the I / O processing requests are loaded as much as possible, which is an important factor for enhancing SSD performance. This shows a larger performance difference compared to the hard disk 205 which operates a general physical head.

이상에서 살펴본 바와 같이, 하드디스크(205) 상의 장치 큐를 고려하여 목표 요구 사항에 따른 공평성 보장과 하드디스크(205)의 성능 극대화라는 두 가지 목표를 달성하기 위한 스케쥴링 기법이 요구된다.
As described above, a scheduling technique is required to achieve two objectives of ensuring fairness according to a target requirement and maximizing performance of the hard disk 205 in consideration of a device queue on the hard disk 205.

이러한 목표를 달성하기 위해, 도 4의 처리 흐름을 도 5 내지 도 11을 이용하여 이하 살펴본다. 먼저 도 5는 본 발명을 설명하기 위해 이용되는 기호를 나타낸다. 도 5에서 알 수 있듯이

Figure 112014055328787-pat00001
는 i 번째(i 는 2 이상) VM(100)을 나타내고,
Figure 112014055328787-pat00002
Figure 112014055328787-pat00003
의 스케쥴러 큐(251)를 나타내며,
Figure 112014055328787-pat00004
Figure 112014055328787-pat00005
의 n 번째(n 은 0 이상) 처리 요청을 나타낸다.
Figure 112014055328787-pat00006
Figure 112014055328787-pat00007
의 도착시각(arrival time)을 나타내는 태그이고
Figure 112014055328787-pat00008
는 k 번째 윈도우에서의 전송 허용 시간을 나타낸다. 전송 허용 시간은 이하 DAT(Differently Allowed Time) 라고도 지칭한다.
Figure 112014055328787-pat00009
Figure 112014055328787-pat00010
에 대해서 한 라운드에서의 종료시각을 나타낸다. 종료시각은 DAT와 라운드의 시작시각(시점)으로 계산된다.
Figure 112014055328787-pat00011
은 특정 목표 요구 사항에 대해서 k 번째 윈도우에서
Figure 112014055328787-pat00012
에 대해서 계산된 성능을 나타낸다. 이
Figure 112014055328787-pat00013
는 k 번째 윈도우에서 지속적으로 갱신되고 이하 처리량으로 지칭될 수 있다. 메트릭(metric)은 예를 들어 IOPS, 대역폭, 응답 속도 또는 CPU(또는 SSD) 사용량 등을 지칭하고 특정 메트릭은 특정 목표 요구 사항에 대하여 한 윈도우에서의 처리량에 대응한다.
Figure 112014055328787-pat00014
은 k 번째 윈도우에서
Figure 112014055328787-pat00015
의 특정 메트릭에 대한 목표 요구 사항을 나타낸다. 목표 요구 사항은 적어도 IOPS, 대역폭, 응답 속도 또는 사용량이거나 이 조합으로 구성된다.In order to achieve such a target, the processing flow of FIG. 4 will be described below with reference to FIG. 5 to FIG. First, FIG. 5 shows symbols used for explaining the present invention. 5,
Figure 112014055328787-pat00001
Represents an i-th VM (i is 2 or more) 100,
Figure 112014055328787-pat00002
The
Figure 112014055328787-pat00003
Gt; 251 < / RTI >
Figure 112014055328787-pat00004
silver
Figure 112014055328787-pat00005
(N is greater than or equal to 0) processing request.
Figure 112014055328787-pat00006
silver
Figure 112014055328787-pat00007
The arrival time of the < RTI ID = 0.0 >
Figure 112014055328787-pat00008
Represents the transfer permission time in the kth window. The transmission allowable time is hereinafter also referred to as DAT (Differently Allowed Time).
Figure 112014055328787-pat00009
The
Figure 112014055328787-pat00010
The ending time in one round. The end time is calculated as the start time (point in time) of the DAT and the round.
Figure 112014055328787-pat00011
For a particular target requirement,
Figure 112014055328787-pat00012
Lt; / RTI > this
Figure 112014055328787-pat00013
May be continuously updated in the kth window and may be referred to as throughput. Metrics refer to, for example, IOPS, bandwidth, response rate or CPU (or SSD) usage, and the specific metric corresponds to throughput in one window for a particular target requirement.
Figure 112014055328787-pat00014
In the kth window
Figure 112014055328787-pat00015
The target metric for the particular metric of the metric. The target requirement consists of at least IOPS, bandwidth, response rate, or usage, or a combination of these.

도 4에서, 먼저 I/O 스케쥴러(253)는 복수의 VM(100)으로부터 공유 스토리지(300) 입출력(I/O)을 위한 처리 요청을 수신(S101)한다. 4, the I / O scheduler 253 receives a processing request for input / output (I / O) of the shared storage 300 from a plurality of VMs 100 (S101).

처리 요청의 수신에 따라 I/O 스케쥴러(253)는 도 6의 알고리즘과 같이 현재 시각을 도착시각으로 태깅(S103)하고 처리 요청을 발송한 VM(100)에 대응하는 스케쥴러 큐(251)에 삽입(S105)한다. 스케쥴러 큐(251)에 삽입된 처리 요청들은 본 발명에 따른 스케쥴링 기법에 따라 스케쥴링되며 특히 시간 단위를 이용하여 공평성과 성능 극대화를 이룰수 있도록 한다. 6, the I / O scheduler 253 tags the current time as the arrival time (S103) and inserts the tag into the scheduler queue 251 corresponding to the VM 100 that has sent the processing request (S105). The processing requests inserted into the scheduler queue 251 are scheduled according to the scheduling technique according to the present invention, and maximize fairness and performance by using time units in particular.

본 발명에 따른 스케쥴링 기법은 적어도 두 개의 시간 단위를 이용한다. 하나의 시간 단위(이하 '제1 시간 단위'라고도 함)는 목표 성능(요구 사항)과 처리 성능(처리량)과의 차이에 따라 목표 요구 사항을 이룰 수 있도록 전송 허용 시간을 변경하는 데 이용된다. 이러한 제1 시간 단위의 구간을 윈도우라고 지칭한다. 다른 하나의 시간 단위(이하 '제2 시간 단위'라고도 함)는 각 VM(100)별로 상이한 전송 허용 시간을 수용할 수 있도록 구성된다. 이 다른 하나의 시간 단위의 구간을 라운드라 지칭한다. 윈도우는 일반적으로 초 단위로 구성되고 라운드는 수십 밀리 초 단위로 구성된다. 시간 단위 차이로 인해 윈도우 내에는 복 수개의 라운드를 포함한다. 각 라운드 내에서 각 VM(100)별로 상이한 전송 허용 시간 동안에 각 VM(100) 별 처리 요청이 I/O 스케쥴러(253)에 의해서 수행되도록 구성된다. The scheduling technique according to the present invention uses at least two time units. One time unit (hereinafter also referred to as a " first time unit ") is used to change the transmission allowance time so as to achieve the target requirement according to the difference between the target performance (requirement) and the processing performance (throughput). This period of the first time unit is referred to as a window. The other time unit (hereinafter also referred to as 'second time unit') is configured to accommodate a different transfer permission time for each VM 100. The interval of the other time unit is referred to as a round. Windows are typically configured in seconds, and rounds are in tens of milliseconds. Because of the time unit difference, the window contains several rounds. In each round, a processing request for each VM 100 is configured to be performed by the I / O scheduler 253 during a different transfer permission time for each VM 100.

특정 윈도우(예를 들어 k 번째 윈도우)의 시작시(S107)에 피드백 제어 모듈(257)은 복수의 스케쥴러 큐(251) 각각의 전송 허용 시간을 목표 요구 사항에 기초하여 결정(S109)한다. 아래 수학식 1은 VM(100) 각각에 대해 한 윈도우 내에서 이용될 전송 허용 시간을 결정하기 위한 기본 식을 나타낸다. At the start of the specific window (e.g., the kth window) (S107), the feedback control module 257 determines the transmission permissible time of each of the plurality of scheduler queues 251 based on the target requirement (S109). Equation (1) below represents a basic equation for determining a transfer permission time to be used in one window for each VM 100.

Figure 112014055328787-pat00016
Figure 112014055328787-pat00016

수학식 1과 같이 복수의 스케쥴러 각각의 전송 허용 시간(DAT)은 목표 요구 사항(Goal)과 이전 윈도우(k-1)에서의 전송 허용 시간 및 이전 윈도우에서의 처리량(

Figure 112014055328787-pat00017
)에 기초하여 결정된다. 특히 단계 S109는 윈도우의 시작 시점마다 반복적으로 수행되고 이전 윈도우에서의 처리량에 반비례하여 전송 허용 시간을 결정한다. 각 스케쥴러 큐(251)별 전송 허용 시간은 수학식 1에 따라 다른 하나의 전송 허용 시간과 상이할 수 있다. As shown in Equation (1), the transmission allowable time (DAT) of each of the plurality of schedulers is the target requirement Goal, the transfer permission time in the previous window (k-1)
Figure 112014055328787-pat00017
≪ / RTI > In particular, step S109 is repeatedly performed at each start time of the window and determines the transfer permission time in inverse proportion to the throughput in the previous window. The transmission permissible time for each scheduler queue 251 may be different from the other transmission permissible time according to Equation (1).

도 7은 전송 허용 시간을 결정하기 위해 윈도우 시작시에 이용되는 알고리즘을 도시하고 있다. 도 7에서 알 수 있는 바와 같이 이 알고리즘은 다수의 반복문으로 구성된다. 라인 1에서 라인 8은 수학식 1을 이용하여 후보 전송 허용 시간을 계산하는 방법을 도시하고 있다. 이 후보 전송 허용 시간이 라운드 내에서 각 VM(100) 별 전송 허용 시간이 될 수도 있다. FIG. 7 shows an algorithm used at window start to determine the transmission allowed time. As can be seen in Fig. 7, this algorithm consists of a number of iterations. Line 1 to line 8 illustrate a method of calculating a candidate transmission allowable time using Equation (1). This candidate transmission time may be the transmission time allowed for each VM 100 in the round.

목표 요구 사항은 절대치로 또는 다른 VM(100)과의 상대치(weight)로 설정될 수 있다. 라인 9 내지 33은 이러한 절대치와 상대치가 동시에 설정될 때를 고려하여 전송 허용 시간을 계산하는 것을 나타낸다. The target requirement may be set to an absolute value or to a relative weight to another VM 100. Lines 9 to 33 indicate calculation of the transmission permissible time in consideration of when the absolute value and the relative value are set at the same time.

예를 들어 VM(100)이 3 개가 있고, 각 VM(100) 별 요구 성능 비율이 1:1:1이고 하나의 VM(100)이 절대치 50MByte/S가 성능 요구 있는 경우에, 전체 성능이 300 MByte/S인 경우 성능 비율에 따라 100MByte 씩 할당받을 수 있다. 만일 절대치를 고려한다면 이 VM(100)은 수학식 1에 따라 50MByte/S에 맞추도록 전송 허용 시간이 낮아질 수 있다. 이러한 절대치와 상대치를 고려하여 라인 9 내지 33은 절대치로 계산된 전송 허용 시간과 상대치로 계산된 전송 허용 시간을 비교하여 더 큰 전송 허용 시간을 할당하도록 한다. 참고로 라인 4와 라인 16의 'equation 1'은 수학식 1을 나타낸다. For example, when there are three VMs 100, a required performance ratio for each VM 100 is 1: 1: 1, and one VM 100 has a performance requirement of an absolute value of 50 MByte / S, In case of MByte / S, 100MByte can be allocated according to performance ratio. If the absolute value is taken into account, the VM 100 may have a lower transfer permission time to match 50 MByte / S according to Equation (1). In consideration of the absolute value and the relative value, the lines 9 to 33 compares the transmission permissible time calculated with the absolute value and the transmission permissible time calculated with the relative value, and allocates a larger transmission permissible time. For reference, 'equation 1' of line 4 and line 16 represents equation (1).

단계 S109에서 피드백 제어 모듈(257)은 또한 각종 변수 등을 초기화한다. 예를 들어 피드백 제어 모듈(257)은 목표 요구 사항의 특정 메트릭에 대한 처리량(도 7의 라인 34 참조)을 나타내는 변수를 초기화한다. In step S109, the feedback control module 257 also initializes various variables and the like. For example, the feedback control module 257 initializes a variable representing the throughput (see line 34 in FIG. 7) for a particular metric of the target requirement.

단계 S109는 피드백 제어 모듈(257)에 의해서 윈도우의 주기에 따라 반복적으로 수행되고 각 반복에서 결정되는 전송 허용 시간은 이전 반복에서의 전송 허용 시간과는 다를 수 있다. Step S109 is repeatedly performed by the feedback control module 257 according to the window period, and the transmission allowed time determined in each iteration may be different from the transmission allowed time in the previous iteration.

윈도우 내에는 복수의 라운드를 포함하는 데, 라운드의 길이(시간)은 VM(100)들의 DAT 중 가장 긴 시간으로 결정된다. 라운드 길이의 결정은 I/O 스케쥴러(253)에 의해서 수행될 수도 있고 피드백 제어 모듈(257)에 의해서 수행될 수도 있다. I/O 스케쥴러(253)는 만일 라운드 시작 시점(S111)인 경우 복수의 스케쥴러 큐(251) 각각을 위한 종료시각을 설정(단계 S113)한다. The window includes a plurality of rounds, and the length (time) of the round is determined as the longest time among the DATs of the VMs 100. [ The determination of the round length may be performed by the I / O scheduler 253 or may be performed by the feedback control module 257. The I / O scheduler 253 sets the end time for each of the plurality of scheduler queues 251 when the round start time (S111) is set (step S113).

도 8은 k 번째 윈도우 내의 새로운 라운드 시작시의 알고리즘을 도시하고 있는 데, I/O 스케쥴러(253)는 k번째 라운드의 스케쥴러 큐(251) 각각의 종료시각을 피드백 제어 모듈(257)에 의해서 윈도우 시작시에 계산된(결정된) 전송 허용 시간을 현재시각에 더하여 계산한다. 이와 같이 종료시각은 전송 허용 시간을 이용하여 시간의 경과에 따라 동적으로 결정된다. 도 8은 종료시각의 설정 이후에 I/O 스케쥴러(253)를 호출(도 8의 라인 6, 도9의 스케쥴러 모듈)하고 디스패치 큐(255)의 처리 요청을 하드디스크(205)의 장치 큐로 전달(도 8의 라인 7)할 수 있다. 8 shows an algorithm at the start of a new round in the kth window. The I / O scheduler 253 controls the feedback control module 257 to determine the end time of each of the scheduler queues 251 of the k- The calculated (determined) transmission allowance time at the start is added to the current time. Thus, the end time is dynamically determined as the time passes by using the transfer permission time. FIG. 8 shows an example in which the I / O scheduler 253 is called (the line 6 in FIG. 8, the scheduler module in FIG. 9) and the processing request of the dispatch queue 255 is transmitted to the device queue of the hard disk 205 after the setting of the end time (Line 7 in FIG. 8).

이후 I/O 스케쥴러(253)는 복수의 스케쥴러 큐(251)에 적재된 처리 요청들을 각 스케쥴러 큐(251)에 대해서 결정된 전송 허용 시간 내에서 추출(단계 S115)하고 추출된 처리 요청을 디스패치 큐(255)에 삽입(단계 S117)한다. 도 9는 전송 허용 시간을 이용하여 처리 요청의 추출과 디스패치 큐(255)로의 삽입을 처리하는 알고리즘을 나타낸다. 도 9에서 알 수 있는 바와 같이 I/O 스케쥴러(253)는 스케쥴러 큐(251) 각각의 처리 요청들을 태깅된 도착시간과 종료시각의 비교로 추출 여부를 결정하고 그 결정에 따라 해당 처리 요청을 추출한다. 만일 스케쥴러 큐(251)의 종료시각이 처리 요청의 도착시간보다 큰 경우에 이 처리 요청을 추출되고 그렇지 않은 경우에는 다음 라운드에서 추출될 수 있다. 단계 S115와 단계 S117은 반복적으로 수행되며 한 윈도우 내에서 라운드의 주기에 따라 반복적으로 복 수회 수행된다. Then, the I / O scheduler 253 extracts the processing requests loaded in the plurality of scheduler queues 251 within the transmission permission time determined for each of the scheduler queues 251 (step S115) and outputs the extracted processing request to the dispatch queue 255) (step S117). FIG. 9 shows an algorithm for processing extraction of a processing request and insertion into a dispatch queue 255 using the transfer permission time. 9, the I / O scheduler 253 determines whether to extract the processing requests of each of the scheduler queues 251 by comparing the tagged arrival time and the end time, and extracts the corresponding processing request according to the determination do. If the end time of the scheduler queue 251 is greater than the arrival time of the processing request, this processing request is extracted, otherwise it can be extracted in the next round. Steps S115 and S117 are repeatedly performed, and are repeatedly performed a plurality of times in accordance with the cycle of the round in one window.

도 10은 이러한 예를 도시한 도면인데, 라운드의 길이는 복수의 VM(100) 들의 전송 허용 시간 들 중 가장 긴 시간으로 결정된다. 전송 허용 시간은 윈도우별로 갱신되므로 이 라운드 길이 또한 윈도우별로 변경될 수 있다. 각각의 전송 허용 시간 DAT는 한 라운드 내에서의 시간을 나타낸다.FIG. 10 shows this example. The length of the round is determined to be the longest time among the transfer permission times of the plurality of VMs 100. Since the transfer time is updated for each window, the round length can also be changed for each window. Each permissible transmission time DAT represents the time in one round.

도 10의 예에서 알 수 있는 바와 같이, 라운드의 길이는 가장 긴 스케쥴러 큐(251)

Figure 112014055328787-pat00018
의 전송 허용 시간으로 결정되고, I/O 스케쥴러(253)는 스케쥴러 큐(251)의 각 처리 요청의 도착시각과 종료시각을 비교하여 추출 여부를 결정한다.
Figure 112014055328787-pat00019
Figure 112014055328787-pat00020
는 종료시각이 도과함에 따라 특정 처리 요청이 다운 라운드에서 추출된다. As can be seen in the example of FIG. 10, the length of the round is the longest scheduler queue 251,
Figure 112014055328787-pat00018
The I / O scheduler 253 compares the arrival time and the end time of each processing request of the scheduler queue 251 and determines whether or not to extract the processing request.
Figure 112014055328787-pat00019
I
Figure 112014055328787-pat00020
The specific processing request is extracted in the down-round as the end time passes.

이후 단계 S119에서 디스패치 큐(255)의 처리 요청들은 하드디스크(205)로의 전송 가능한 시기에 하드디스크(205)의 장치 큐로 바로 전송된다. 하드디스크(205)는 SSD 일 수 있고 단계 S119는 I/O 스케쥴러(253)에 의해서 수행되거나 또는 하드디스크(205)를 제어할 수 있는 디바이스 드라이버에 의해서 수행될 수 있다. In step S119, processing requests of the dispatch queue 255 are directly transferred to the device queue of the hard disk 205 at a time when it can be transferred to the hard disk 205. [ The hard disk 205 may be an SSD and step S119 may be performed by a device driver that may be performed by the I / O scheduler 253 or may control the hard disk 205.

단계 S119 이후에 하드디스크(205)는 장치 큐의 처리 요청을 처리하고 처리 완료를 나타내는 응답을 피드백 제어 모듈(257)로 반환한다. 피드백 제어 모듈(257)은 특정 처리 요청에 대한 처리 완료에 따라 목표 요구 사항에 대응하는 처리량을 갱신(S121)한다. After step S119, the hard disk 205 processes the processing request of the device queue and returns a response indicating completion of processing to the feedback control module 257. [ The feedback control module 257 updates the throughput corresponding to the target requirement in accordance with the completion of the processing for the specific processing request (S121).

도 11은 목표 요구 사항의 처리량을 갱신하기 위한 알고리즘을 도시하고 있다. 도 11에서 알 수 있는 바와 같이 대역폭, IOPS, 응답 속도(latency) 및 사용량(utilization) 등이 갱신된다. 이러한 처리량은 한 윈도우내에서 계속 갱신될 수 있고 이후 윈도우 반복시에 전송 허용 시간의 계산에 이용된다. Figure 11 shows an algorithm for updating the throughput of a target requirement. As can be seen from FIG. 11, bandwidth, IOPS, latency and utilization are updated. This throughput can be continuously updated in one window and then used in the calculation of the time allowed for transmission at window iteration.

사용량(utilization)은 하나의 처리 요청에 의해서 SSD에서의 사용량을 나타내고 다양한 방식으로 정의될 수 있다. 일반적으로 사용량은 I/O 처리 요청의 크기에 비례하여 결정된다. Utilization refers to usage in an SSD by a single processing request and can be defined in a variety of ways. In general, usage is determined in proportion to the size of the I / O processing request.

도 4의 단계 S101 내지 단계 S121은 반복적으로 수행되며 특히 단계109는 윈도우 주기에 따라 반복적으로 수행되고 단계 S113은 윈도우 주기 내에서 라운드의 주기에 따라 복수회 반복적으로 수행된다. 나아가 적어도 단계 S115 내지 단계 S117 또한 라운드 내의 각각의 전송 허용 시간 내에서 라운드별로 반복적으로 수행된다. Steps S101 to S121 of FIG. 4 are repeatedly performed, in particular, step 109 is repeatedly performed according to the window period, and step S113 is repeated plural times according to the period of the round in the window period. Further, at least the steps S115 to S117 are also repeatedly performed in rounds within each transfer permission time within the round.

이상 도 4의 처리 흐름을 통해, 요구 성능 보장 장치(200)는 VM(100) 각각의 목표 요구 사항을 전송 허용 시간을 이용하여 공평하게 차등화할 수 있고 디스패치 큐(255)의 처리 요청을 동시에 하드디스크(205)로 출력하여 SSD의 처리 성능을 극대화할 수 있다.
4, the required performance assurance apparatus 200 can uniformly differentiate the target requirements of each of the VMs 100 by using the transmission allowance time, and can simultaneously process the processing requests of the dispatch queue 255 And output to the disk 205, thereby maximizing the processing performance of the SSD.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. The present invention is not limited to the drawings.

100 : 가상 머신 200 : 요구 성능 보장 장치
201 : 입력 인터페이스 203 : 메모리
205 : 하드디스크 207 : 통신 인터페이스
209 : 프로세서 211 : 시스템 버스/제어 버스
251 : 스케쥴러 큐 253 : I/O 스케쥴러
255 : 디스패치 큐 257 : 피드백 제어 모듈
259 : 요구 사항 관리 모듈
300 : 공유 스토리지
100: virtual machine 200: required performance guarantee device
201: input interface 203: memory
205: hard disk 207: communication interface
209: Processor 211: System bus / control bus
251: Scheduler queue 253: I / O scheduler
255: Dispatch queue 257: Feedback control module
259: Requirements Management Module
300: Shared storage

Claims (13)

(a) 요구 성능 보장 장치의 피드백 제어 모듈이 복수의 스케쥴러 큐 각각의 전송 허용 시간을 목표 요구 사항에 기초하여 결정하는 단계;
(b) 상기 요구 성능 보장 장치의 I/O 스케쥴러가 각각의 결정된 전송 허용 시간 내에서 각각의 스케쥴러 큐의 처리 요청을 추출하는 단계;
(c) 상기 I/O 스케쥴러가 추출된 처리 요청을 디스패치 큐에 삽입하는 단계; 및
(d) 디스패치 큐의 처리 요청이 장치 큐로 순차적으로 전달되는 단계를 포함하며,
복수의 스케쥴러 큐 중 하나의 전송 허용 시간은 다른 하나의 전송 허용 시간과는 상이한,
요구 성능 보장 방법.
(a) the feedback control module of the required performance assurance device determining a transmission permissible time of each of a plurality of scheduler queues based on a target requirement;
(b) extracting a processing request of each scheduler queue within an I / O scheduler of the requested performance assurance device within each determined transmission permissible time;
(c) inserting the extracted processing request into the dispatch queue by the I / O scheduler; And
(d) a processing request of a dispatch queue is sequentially transmitted to a device queue,
Wherein the transmission permissible time of one of the plurality of scheduler queues is different from the transmission permissible time of the other,
Method for ensuring required performance.
제1항에 있어서,
상기 단계 (a)는 지정된 제1 시간 단위로 수행되고, 상기 단계 (b)는 상기 제1 시간 단위와는 상이한 제2 시간 단위로 상기 제1 시간 단위의 구간 내에서 복수 회 수행되며, 전송 허용 시간은 제2 시간 단위의 구간 내의 시간인,
요구 성능 보장 방법.
The method according to claim 1,
Wherein the step (a) is performed in a designated first time unit, and the step (b) is performed a plurality of times in a second time unit different from the first time unit within the interval of the first time unit, Wherein the time is a time within a second time unit interval,
Method for ensuring required performance.
삭제delete 제1항에 있어서,
(e) 상기 피드백 제어 모듈이 처리 요청의 처리 완료에 따라 목표 요구 사항에 대응하는 처리량을 갱신하는 단계를 더 포함하며,
상기 단계 (a)는 반복적으로 수행되고 상기 목표 요구 사항, 이전 반복에서의 상기 처리량 및 전송 허용 시간에 기초하여 후속하는 반복에서의 전송 허용 시간을 결정하는,
요구 성능 보장 방법.
The method according to claim 1,
(e) updating the throughput corresponding to the target requirement upon completion of processing of the processing request by the feedback control module,
Wherein said step (a) is performed iteratively and determines a transmission allowed time in subsequent iterations based on said target requirement, said throughput in the previous iteration and said transmission allowance time,
Method for ensuring required performance.
제1항에 있어서,
상기 단계 (b) 이전에, 상기 I/O 스케쥴러가 복수의 가상 머신(Virtual Machine)으로부터 처리 요청을 수신하고 상기 처리 요청의 도착시각을 태깅하는 단계; 및
상기 I/O 스케쥴러가 상기 처리 요청을 복수의 가상 머신 각각에 대응하는 스케쥴러 큐에 삽입하는 단계를 더 포함하는,
요구 성능 보장 방법.
The method according to claim 1,
Before the step (b), the I / O scheduler receives a processing request from a plurality of virtual machines and tags the arrival time of the processing request; And
Further comprising the step of the I / O scheduler inserting the processing request into a scheduler queue corresponding to each of the plurality of virtual machines,
Method for ensuring required performance.
제5항에 있어서,
상기 단계 (b)는 각각의 스케쥴러 큐의 처리 요청에 태깅된 도착시각과 각각의 스케쥴러 큐에 대해 동적으로 결정되는 종료시각의 비교로 처리 요청의 추출 여부를 결정하고 결정에 따라 상기 처리 요청을 추출하는,
요구 성능 보장 방법.
6. The method of claim 5,
The step (b) determines whether to extract the processing request by comparing the arrival time tagged in the processing request of each scheduler queue with the ending time dynamically determined for each of the scheduler queues, and extracts the processing request according to the determination doing,
Method for ensuring required performance.
제6항에 있어서,
상기 단계 (b)는 상기 종료시각이 상기 도착시각 보다 큰 경우 상기 처리 요청을 추출하는,
요구 성능 보장 방법.
The method according to claim 6,
Wherein the step (b) includes the step of extracting the processing request when the end time is greater than the arrival time,
Method for ensuring required performance.
제4항에 있어서,
각 반복에서 결정되는 상기 전송 허용 시간은 이전 반복에서의 처리량에 반비례하여 결정되며,
상기 목표 요구 사항은 초당 I/O 처리량, 대역폭, 응답 속도 또는 SSD 사용량을 포함하는,
요구 성능 보장 방법.
5. The method of claim 4,
The transfer permission time determined in each iteration is determined in inverse proportion to the throughput in the previous iteration,
The target requirements may include I / O throughput, bandwidth, response rate or SSD usage per second,
Method for ensuring required performance.
복수의 스케쥴러 큐 각각의 전송 허용 시간을 목표 요구 사항에 기초하여 결정하는 피드백 제어 모듈;
각각의 결정된 전송 허용 시간 내에서 각각의 스케쥴러 큐의 처리 요청을 추출하는 I/O 스케쥴러; 및
장치 큐로 출력될 처리 요청을 임시로 저장하는 디스패치 큐를 포함하며,
복수의 스케쥴러 큐 중 하나의 전송 허용 시간은 다른 하나의 전송 허용 시간과는 상이하고,
상기 I/O 스케쥴러는 추출된 처리 요청을 디스패치 큐에 삽입하는,
요구 성능 보장 장치.
A feedback control module that determines a transmission permissible time of each of a plurality of scheduler queues based on a target requirement;
An I / O scheduler for extracting a processing request of each scheduler queue within each determined transmission permissible time; And
And a dispatch queue for temporarily storing a processing request to be output to the device queue,
Wherein the transmission allowance time of one of the plurality of scheduler queues is different from that of the other one of the scheduler queues,
The I / O scheduler inserts the extracted processing request into a dispatch queue,
Required performance guarantee device.
삭제delete 제9항에 있어서,
복수의 가상 머신 각각으로부터의 처리 요청을 각각 저장하는 복수의 스케쥴러 큐;를 더 포함하며,
상기 I/O 스케쥴러는 복수의 가상 머신(Virtual Machine)으로부터 처리 요청을 수신하고 상기 처리 요청의 도착시각을 태깅하는,
요구 성능 보장 장치.
10. The method of claim 9,
A plurality of scheduler queues, each storing a processing request from each of a plurality of virtual machines,
The I / O scheduler receives a processing request from a plurality of virtual machines and tags the arrival time of the processing request.
Required performance guarantee device.
제11항에 있어서,
상기 I/O 스케쥴러는 각각의 스케쥴러 큐의 처리 요청에 태깅된 도착시각과 각각의 스케쥴러 큐에 대해 상기 피드백 제어 모듈에 의해 동적으로 결정되는 종료시각의 비교로 처리 요청의 추출 여부를 결정하고 결정에 따라 상기 처리 요청을 추출하는,
요구 성능 보장 장치.
12. The method of claim 11,
The I / O scheduler determines whether to extract a processing request by comparing the arrival time tagged in the processing request of each scheduler queue with the end time dynamically determined by the feedback control module for each scheduler queue, And extracts the processing request according to the request,
Required performance guarantee device.
제11항에 있어서,
상기 요구 성능 보장 장치는 복수의 가상 머신 및 공용 스토리지를 포함하는 클라우드 시스템 환경하에서 복수의 가상 머신으로부터 상기 공용 스토리지로의 I/O 처리 요청을 내장된 SSD를 이용하여 처리하는,
요구 성능 보장 장치.

12. The method of claim 11,
Wherein the requested performance assurance device processes an I / O processing request from a plurality of virtual machines to the shared storage using a built-in SSD under a cloud system environment including a plurality of virtual machines and public storage,
Required performance guarantee device.

KR1020140072001A 2014-06-13 2014-06-13 Method and apparatus for guaranteeing performance requirement KR101652324B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140072001A KR101652324B1 (en) 2014-06-13 2014-06-13 Method and apparatus for guaranteeing performance requirement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140072001A KR101652324B1 (en) 2014-06-13 2014-06-13 Method and apparatus for guaranteeing performance requirement

Publications (2)

Publication Number Publication Date
KR20150143918A KR20150143918A (en) 2015-12-24
KR101652324B1 true KR101652324B1 (en) 2016-08-31

Family

ID=55084020

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140072001A KR101652324B1 (en) 2014-06-13 2014-06-13 Method and apparatus for guaranteeing performance requirement

Country Status (1)

Country Link
KR (1) KR101652324B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496541B2 (en) 2017-11-29 2019-12-03 Samsung Electronics Co., Ltd. Dynamic cache partition manager in heterogeneous virtualization cloud cache environment
US10795583B2 (en) 2017-07-19 2020-10-06 Samsung Electronics Co., Ltd. Automatic data placement manager in multi-tier all-flash datacenter

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754547B2 (en) 2017-10-16 2020-08-25 Electronics And Telecommunications Research Institute Apparatus for managing disaggregated memory and method thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101662824B1 (en) * 2009-07-08 2016-10-06 삼성전자주식회사 Solid state drive device and driving method thereof
US8589655B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
KR20120080075A (en) * 2011-01-06 2012-07-16 삼성전자주식회사 Apparatus and method for hierarchical scheduling of virtual machine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박현찬 외 1명. 'CFQ 스케줄러의 튜닝 변수 설정에 따른 SSD 성능 분석'. 한국정보과학회 2011한국컴퓨터종합학술대회 논문집 제38권 제1호(B), 2011.6, pp.423-426*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795583B2 (en) 2017-07-19 2020-10-06 Samsung Electronics Co., Ltd. Automatic data placement manager in multi-tier all-flash datacenter
US10496541B2 (en) 2017-11-29 2019-12-03 Samsung Electronics Co., Ltd. Dynamic cache partition manager in heterogeneous virtualization cloud cache environment

Also Published As

Publication number Publication date
KR20150143918A (en) 2015-12-24

Similar Documents

Publication Publication Date Title
US10318467B2 (en) Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US11221975B2 (en) Management of shared resources in a software-defined storage environment
Yang et al. AutoTiering: Automatic data placement manager in multi-tier all-flash datacenter
US9483187B2 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
US9575664B2 (en) Workload-aware I/O scheduler in software-defined hybrid storage system
Wang et al. Characterization and optimization of memory-resident MapReduce on HPC systems
US8959249B1 (en) Cooperative cloud I/O scheduler
US20180176323A1 (en) System and Method for Managing Application Performance
US8230123B2 (en) Using information on input/output (I/O) sizes of accesses to an extent to determine a type of storage device for the extent
US9760392B1 (en) Adaptive throttling in hybrid storage environments
US8892780B2 (en) Management of shared storage I/O resources
US20170177221A1 (en) Dynamic core allocation for consistent performance in a non-preemptive scheduling environment
US10394606B2 (en) Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy
US10545791B2 (en) Methods to apply IOPS and MBPS limits independently using cross charging and global cost synchronization
US20180139100A1 (en) Storage-aware dynamic placement of virtual machines
US9501313B2 (en) Resource management and allocation using history information stored in application's commit signature log
US20200183722A1 (en) Systems and methods for selecting virtual machines to be migrated
US20150237140A1 (en) Data storage systems and methods
US20240036756A1 (en) Systems, methods, and devices for partition management of storage resources
KR101652324B1 (en) Method and apparatus for guaranteeing performance requirement
US20160182620A1 (en) Data distribution apparatus, data distribution method, and data distribution program for parallel computing processing system
Wu et al. {NyxCache}: Flexible and efficient multi-tenant persistent memory caching
US20180136958A1 (en) Storage-aware dynamic placement of virtual machines
Noorshams et al. Experimental evaluation of the performance-influencing factors of virtualized storage systems
US10860236B2 (en) Method and system for proactive data migration across tiered storage

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190808

Year of fee payment: 4