KR101652324B1 - Method and apparatus for guaranteeing performance requirement - Google Patents
Method and apparatus for guaranteeing performance requirement Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling 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
본 발명은 요구 성능 보장 방법 및 요구 성능 보장 장치에 관한 것으로서, 스토리지의 특성을 고려하여 다양한 유형의 요구 성능의 공평한 보장과 스토리지 성능 향상을 동시에 이룰 수 있도록 하는, 요구 성능 보장 방법 및 요구 성능 보장 장치에 관한 것이다.BACKGROUND OF THE
가상화(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
비특허문헌 1의 I/O 스케쥴러는 SSD의 전체적인 성능 향상을 목표로 하고 있으나 SLA에 맞추어 각 VM의 I/O 성능을 차등화하는 기능을 제공하고 있지 않고 읽기 요청을 수행하는 VM에 대해 좋은 성능을 제공하여 다른 VM과의 공평성을 제공하고 있지 않다. The I / O scheduler of the
비특허문헌 2는 SSD의 성능 향상과 공평성 제공을 목적으로 하나 I/O 성능에 대한 SLA 보장을 위해 사용되기 어렵고 SLA를 만족시키는 형태로 변형하기 대단히 어렵다. Non-Patent
비특허문헌 3의 스케쥴러와 비특허문헌 4는 공평 큐잉 기반의 알고리즘으로서 SSD의 성능 향상과 각 VM 간의 공평성 보장을 동시에 이룰 수가 없다.The scheduler of the
이와 같이 여러 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.
본 발명은 상술한 문제점을 해결하기 위해서 안출한 것으로서, 사용자 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
각 구성 요소에 대해서 간단히 살펴보면, VM(100)은 클라우드 시스템을 이용하고자 하는 사용자와 클라우드 시스템 간의 계약에 따라 특정 기능을 수행한다. VM(100)은 예를 들어 파일 서버, 웹 서버, 하둡(Hadoop) 등을 처리하는 서버 등의 기능을 수행한다. VM(100)은 클라우드 시스템 간의 계약(SLA)에 따라 개별적인 성능 요구 사항을 가진다. 각 VM(100)의 성능 요구 사항은 수행 기능에 따라 다를 수 있다. 예를 들어 성능 요구 사항은 IOPS, 대역폭, 응답 속도 또는 사용량(예를 들어 CPU 사용량이나 SSD 사용량 등)이거나 이 조합으로 구성된다. 이하 달성하고자 하는 성능 요구 사항을 목표 요구 사항이라고 지칭한다. 각각의 VM(100)은 요구 성능 보장 장치(200)로 처리 요청을 가상화 기법이 제공하는 I/O(Input/Output) 전달 방식을 통해 하드디스크(205)로 전달한다.In brief, the
요구 성능 보장 장치(200)는 VM(100) 각각의 목표 요구 사항에 따라 VM(100)으로부터의 처리 요청을 내장된 하드디스크(205)를 이용하여 처리한다. 요구 성능 보장 장치(200)는 소위 호스트 서버일 수 있다. 요구 성능 보장 장치(200)는 내장된 하드디스크(205)를 활용하여 처리 성능의 극대화와 서로 차별화되는 목표 요구 사항이 공평하게 이루어지도록 구성된다. The requested
요구 성능 보장 장치(200)는 내장된 SSD(하드디스크(205))를 활용하여 캐쉬 서버로서 기능하고 공유 스토리지(300)에 기록할 데이터를 임시로 버퍼링하고 VM(100)으로 처리 완료의 응답을 전송하고 이후 공유 스토리지(300)에 기록할 수 있다.The required
요구 성능 보장 장치(200)에 관련해서는 도 2 이하에서 상세히 살펴보도록 한다. The required
공유 스토리지(300)는 복수의 VM(100)에 의해서 공유되는 자원으로서 각종 데이터를 저장한다. 공유 스토리지(300)는 물리적으로 분산될 수 있고 요구 성능 보장 장치(200)로부터의 처리 요청에 응답하여 공유 스토리지(300) 내에 데이터를 저장하고 추출하여 전달할 수 있다. The shared
여기서, VM(100)에서 요구 성능 보장 장치(200)로 전송되는 처리 요청은 공유 스토리지(300)로의 I/O(Input/Output) 처리 요청을 나타내고 캐쉬 서버 기능의 수행에 따라 요구 성능 보장 장치(200)에 내장된 SSD에 대한 I/O (Input/Output) 처리를 수반한다. 내장된 SSD를 활용함으로써 I/O 처리의 성능 극대화를 가능케 한다. Here, the processing request transmitted from the
도 2는 요구 성능 보장 장치(200)의 예시적인 하드웨어 블록도를 도시한 도면이다. 도 2에 따르면 요구 성능 보장 장치(200)는 입력 인터페이스(201), 메모리(203), 하드디스크(205), 통신 인터페이스(207), 하나 이상의 프로세서(209) 및 시스템 버스/제어 버스(211)를 포함한다. 이 중 일부의 블록은 생략될 수 있고 예를 들어 입력 인터페이스(201)는 변형예에 따라 생략될 수 있다. 2 is a diagram showing an exemplary hardware block diagram of the required
각 블록에 대해서 살펴보면, 입력 인터페이스(201)는 요구 성능 보장 장치(200)의 관리자로부터의 사용자 입력을 수신할 수 있는 인터페이스이다. 입력 인터페이스(201)는 마우스, 키보드 등을 포함하여 마우스나 키보드의 입력에 따른 신호를 수신하도록 구성된다. Referring to each block, the
메모리(203)는 각종 데이터와 프로그램을 임시로 저장하거나 영구히 저장한다. 메모리(203)는 예를 들어 휘발성 메모리이거나 비휘발성 메모리이거나 휘발성 메모리 및 비휘발성 메모리를 포함한다. The
하드디스크(205)는 각종 데이터와 프로그램을 저장하는 대용량 저장 매체이다. 특히 이 하드디스크(205)는 SSD로 구성되어 외부 VM(100)으로부터의 처리 요청을 캐싱하기 위한 용도로 이용된다. The
하드디스크(205)는 내부에 각종 콘트롤러와 메모리를 포함한다. 메모리는 하드디스크(205) 외부로부터 수신된 I/O 처리 요청을 큐잉하기 위해서 이용된다. 메모리에 구성되는 큐는 이하 '장치 큐'라 지칭한다. 하드디스크(205) 내부의 콘트롤러는 수신된 I/O 처리 요청을 장치 큐에 삽입하고 장치 큐의 I/O 처리 요청을 내부 상태에 따라 재 스케쥴링하여 I/O 처리 요청을 처리한다. 본 발명에 따른 하드디스크(205)는 호스트 서버 캐싱 영역으로 이용된다. The
여기서 특히 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
프로세서(209)는 메모리(203)와 하드디스크(205)를 활용하여 설정된 각종 기능을 수행한다. 프로세서(209)는 내부에 프로그램 코드의 명령어들을 실행하기 위한 실행 유닛(Execution Unit)을 하나 이상 포함한다. The
프로세서(209)에서 수행되는 프로그램은 여러 유형이 있을 수 있다. 예를 들어 본 발명이 적용되는 가상화 시스템의 구조에 따라 SSD와 같은 하드디스크(205)를 직접 관리하는 하이퍼바이저나 가상 머신 모니터의 프로그램을 포함하거나 나아가 운영체제 프로그램을 더 포함할 수 있다. 하이퍼바이저 또는 운영체제 프로그램은 I/O 스케쥴러(253)를 적어도 포함하고 나아가 디바이스 드라이버를 더 포함할 수 있다. The program executed by the
I/O 스케쥴러(253)는 외부 VM(100)으로부터 I/O 처리 요청과 같은 처리 요청을 수신하고 처리 요청에 응답하여 하드디스크(205)를 활용해서 그 처리를 수행한다. I/O 스케쥴러(253) 등에서 이루어지는 처리 과정은 도 3 이하에서 살펴보도록 한다. The I /
시스템 버스/제어 버스(211)는 요구 성능 보장 장치(200) 내의 구성 요소간의 데이터나 제어 신호를 송수신할 수 있는 버스이다. 시스템 버스/제어 버스(211)는 예를 들어 병렬 버스, 시리얼 버스, GPIO(General Purpose Input/Output) 또는 그 조합으로 구성된다.
The system bus /
도 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
각각의 기능 블록들은 프로세서(209)상에서 수행되는 프로그램과 메모리(203)를 이용하여 바람직하게 구성된다. 각각의 기능 블록들은 스케쥴러 큐(251)나 디스패치 큐(255)를 매개로 독립적으로 수행할 수 있다. 이에 따라 I/O 스케쥴러(253)와 피드백 제어 모듈(257) 및 요구 사항 관리 모듈(259)은 내부 스케쥴링이나 이벤트 발생에 따라 독립적으로 수행된다. Each functional block is preferably configured using the program and
각 기능 블록들에 대해서 살펴보면, 복수의 스케쥴러 큐(251)는 복수의 VM(100)에 맵핑되어 대응하는 VM(100)으로부터의 처리 요청을 저장한다. 스케쥴러 큐(251)는 I/O 스케쥴러(253)의 제어에 따라 먼저 저장된 처리 요청이 출력될 수 있는 선입선출 방식의 리스트이다. Referring to each functional block, a plurality of
I/O 스케쥴러(253)는 복수의 VM(100) 각각으로부터 처리 요청을 수신하고 수신된 처리 요청을 스케쥴러 큐(251)에 선입선출 방식에 따라 삽입한다. 삽입시 I/O 스케쥴러(253)는 처리 요청을 수신한 도착시각을 처리 요청에 태깅하여 스케쥴러 큐(251) 등에 같이 저장할 수 있다. The I /
또한 I/O 스케쥴러(253)는 복수의 스케쥴러 큐(251) 각각에 저장된 처리 요청을 각 스케쥴러 큐(251)에 대해서 일정한 주기에 따라 동적으로 결정된 전송 허용 시간의 범위 내에서 추출하고 추출된 처리 요청을 디스패치 큐(255)에 삽입한다. 특히 I/O 스케쥴러(253)는 처리 요청에 대해 태깅된 도착시각과 아래에서 살펴볼 각 스케쥴러 큐(251)별로 일정한 주기에 따라 결정되는 전송 허용 시간의 비교로 각 스케쥴러 큐(251)의 처리 요청의 추출 여부를 결정하고 그 결정에 따라 각 스케쥴러 큐(251)의 처리 요청을 추출하고 이를 디스패치 큐(255)에 삽입한다. In addition, the I /
디스패치 큐(255)는 I/O 스케쥴러(253)로부터의 처리 요청을 임시로 저장한다. 디스패치 큐(255)는 선입선출 방식에 따라 먼저 입력된 처리 요청이 하드디스크(205)의 장치 큐로 출력된다. 디스패치 큐(255)의 처리 요청은 장치 큐의 콘트롤러와의 인터페이스를 통해 출력 가능한 시점에 바로 출력되도록 구성된다. 디스패치 큐(255)는 예를 들어 디바이스 드라이버 상에 구성될 수 있다. The
요구 사항 관리 모듈(259)은 입력 인터페이스(201)나 통신 인터페이스(207)를 통해 각 VM(100) 별 목표 요구 사항을 수신한다. 또한 요구 사항 관리 모듈(259)은 피드백 제어 모듈(257)에 연결되어 피드백 제어 모듈(257)의 목표 요구 사항에 대응하는 처리량을 수신하고 이를 출력 인터페이스(도면 미도시)나 통신 인터페이스(207)를 통해 출력할 수 있다. The
피드백 제어 모듈(257)은 복수의 스케쥴러 큐(251) 각각의 전송 허용 시간을 요구 사항 관리 모듈(259)로부터의 목표 요구 사항에 기초하여 결정한다. 피드백 제어 모듈(257)은 반복적으로 수행할 수 있고 각 반복에서 전송 허용 시간을 이전 반복에서의 처리량의 변화에 따라 늘리거나 줄일 수 있다. The
VM(100) 별 전송 허용 시간은 목표 요구 사항에 따라서 또는 목표 요구 사항에 대응하는 처리량의 변화에 따라 VM(100) 별로 상이할 수 있다.The transfer time allowed per
도 3의 요구 성능 보장 장치(200)는 복수의 가상 머신(100), 공용 스토리지를 포함하는 클라우드 시스템 환경하에서 복수의 가상 머신(100)으로부터 공용 스토리지로의 I/O 처리 요청을 내장된 하드디스크(205)를 이용하여 처리하도록 구성된다. The requested
도 3의 각 기능 블록들 중 I/O 스케쥴러(253)와 피드백 제어 모듈(257)의 처리 흐름은 도 4 이하에서 상세히 살펴보도록 한다.
The processing flow of the I /
도 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) 각각의 여러 목표 요구 사항에 부합하게 사용하기 위한 기법으로서 공평 큐잉(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
스토리지를 위한 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
공평성을 담보하기 위해서 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
반면에 하드디스크(205) 등은 디스크 헤드(disk head)를 플래터(plater) 위로 이동시켜 I/O 요청이 요구하는 위치에 접근해야만 한다. 물리적인 이동 시간으로 인해 특히 임의(random) 접근 방식의 I/O 요청에 대해 접근 시간이 늘어나는 문제가 발생한다. 이에 따라 하드디스크(205)는 장치 큐에 적재된 I/O 요청을 접근 시간을 줄일 수 있도록 재정렬하고 디스크 헤드의 이동을 최소화하여 좋은 성능을 제공할 수 있다. On the other hand, the
이미 살펴본 바와 스케쥴러 큐(251)에서의 공평성을 극대화하기 위해서는 충분한 양의 I/O 처리 요청이 적재되어야 하고 마찬가지로 하드디스크(205)의 처리 성능을 극대화하기 위해서도 장치 큐에 I/O 처리 요청이 충분히 적재되어야 한다. 하지만 스케쥴러 큐(251)와 장치 큐 모두에 충분한 양의 처리 요청을 적재하기는 사실상 불가능하다. 일반적으로 알려진 기업용 서버에서 I/O 요청의 길이는 초당 평균 4.87 개 정도인 것으로 알려져 있어 성능 공평성과 하드디스크(205)의 성능 극대화 공히 달성하는 것이 사실상 불가능하다. In order to maximize the fairness in the
더욱이 하드디스크(205)가 SSD인 경우에 이율 배반성은 심화된다. 일반 하드디스크에 비해 SSD의 장치 큐의 역할은 더욱 복잡해진다. 이는 SSD의 내부 구조에 기인한다. SSD는 내부에 여러 채널로 연결된 다수의 플래쉬 메모리 칩과 콘트롤러를 내장하고 있다. SSD는 여러 독립적인 채널을 이용하여 병렬적으로 플래쉬 메모리 칩에 액세스하여 병렬성을 극대화하여 SSD의 성능을 극대화한다. Furthermore, in the case where the
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
이상에서 살펴본 바와 같이, 하드디스크(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
이러한 목표를 달성하기 위해, 도 4의 처리 흐름을 도 5 내지 도 11을 이용하여 이하 살펴본다. 먼저 도 5는 본 발명을 설명하기 위해 이용되는 기호를 나타낸다. 도 5에서 알 수 있듯이 는 i 번째(i 는 2 이상) VM(100)을 나타내고, 는 의 스케쥴러 큐(251)를 나타내며, 은 의 n 번째(n 은 0 이상) 처리 요청을 나타낸다. 은 의 도착시각(arrival time)을 나타내는 태그이고 는 k 번째 윈도우에서의 전송 허용 시간을 나타낸다. 전송 허용 시간은 이하 DAT(Differently Allowed Time) 라고도 지칭한다. 는 에 대해서 한 라운드에서의 종료시각을 나타낸다. 종료시각은 DAT와 라운드의 시작시각(시점)으로 계산된다. 은 특정 목표 요구 사항에 대해서 k 번째 윈도우에서 에 대해서 계산된 성능을 나타낸다. 이 는 k 번째 윈도우에서 지속적으로 갱신되고 이하 처리량으로 지칭될 수 있다. 메트릭(metric)은 예를 들어 IOPS, 대역폭, 응답 속도 또는 CPU(또는 SSD) 사용량 등을 지칭하고 특정 메트릭은 특정 목표 요구 사항에 대하여 한 윈도우에서의 처리량에 대응한다. 은 k 번째 윈도우에서 의 특정 메트릭에 대한 목표 요구 사항을 나타낸다. 목표 요구 사항은 적어도 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, Represents an i-th VM (i is 2 or more) 100, The Gt; 251 < / RTI > silver (N is greater than or equal to 0) processing request. silver The arrival time of the < RTI ID = 0.0 > Represents the transfer permission time in the kth window. The transmission allowable time is hereinafter also referred to as DAT (Differently Allowed Time). The The ending time in one round. The end time is calculated as the start time (point in time) of the DAT and the round. For a particular target requirement, Lt; / RTI > this 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. In the kth window 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 /
처리 요청의 수신에 따라 I/O 스케쥴러(253)는 도 6의 알고리즘과 같이 현재 시각을 도착시각으로 태깅(S103)하고 처리 요청을 발송한 VM(100)에 대응하는 스케쥴러 큐(251)에 삽입(S105)한다. 스케쥴러 큐(251)에 삽입된 처리 요청들은 본 발명에 따른 스케쥴링 기법에 따라 스케쥴링되며 특히 시간 단위를 이용하여 공평성과 성능 극대화를 이룰수 있도록 한다. 6, the I /
본 발명에 따른 스케쥴링 기법은 적어도 두 개의 시간 단위를 이용한다. 하나의 시간 단위(이하 '제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
특정 윈도우(예를 들어 k 번째 윈도우)의 시작시(S107)에 피드백 제어 모듈(257)은 복수의 스케쥴러 큐(251) 각각의 전송 허용 시간을 목표 요구 사항에 기초하여 결정(S109)한다. 아래 수학식 1은 VM(100) 각각에 대해 한 윈도우 내에서 이용될 전송 허용 시간을 결정하기 위한 기본 식을 나타낸다. At the start of the specific window (e.g., the kth window) (S107), the
수학식 1과 같이 복수의 스케쥴러 각각의 전송 허용 시간(DAT)은 목표 요구 사항(Goal)과 이전 윈도우(k-1)에서의 전송 허용 시간 및 이전 윈도우에서의 처리량()에 기초하여 결정된다. 특히 단계 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) ≪ / 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
도 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.
목표 요구 사항은 절대치로 또는 다른 VM(100)과의 상대치(weight)로 설정될 수 있다. 라인 9 내지 33은 이러한 절대치와 상대치가 동시에 설정될 때를 고려하여 전송 허용 시간을 계산하는 것을 나타낸다. The target requirement may be set to an absolute value or to a relative weight to another
예를 들어 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
단계 S109에서 피드백 제어 모듈(257)은 또한 각종 변수 등을 초기화한다. 예를 들어 피드백 제어 모듈(257)은 목표 요구 사항의 특정 메트릭에 대한 처리량(도 7의 라인 34 참조)을 나타내는 변수를 초기화한다. In step S109, the
단계 S109는 피드백 제어 모듈(257)에 의해서 윈도우의 주기에 따라 반복적으로 수행되고 각 반복에서 결정되는 전송 허용 시간은 이전 반복에서의 전송 허용 시간과는 다를 수 있다. Step S109 is repeatedly performed by the
윈도우 내에는 복수의 라운드를 포함하는 데, 라운드의 길이(시간)은 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
도 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 /
이후 I/O 스케쥴러(253)는 복수의 스케쥴러 큐(251)에 적재된 처리 요청들을 각 스케쥴러 큐(251)에 대해서 결정된 전송 허용 시간 내에서 추출(단계 S115)하고 추출된 처리 요청을 디스패치 큐(255)에 삽입(단계 S117)한다. 도 9는 전송 허용 시간을 이용하여 처리 요청의 추출과 디스패치 큐(255)로의 삽입을 처리하는 알고리즘을 나타낸다. 도 9에서 알 수 있는 바와 같이 I/O 스케쥴러(253)는 스케쥴러 큐(251) 각각의 처리 요청들을 태깅된 도착시간과 종료시각의 비교로 추출 여부를 결정하고 그 결정에 따라 해당 처리 요청을 추출한다. 만일 스케쥴러 큐(251)의 종료시각이 처리 요청의 도착시간보다 큰 경우에 이 처리 요청을 추출되고 그렇지 않은 경우에는 다음 라운드에서 추출될 수 있다. 단계 S115와 단계 S117은 반복적으로 수행되며 한 윈도우 내에서 라운드의 주기에 따라 반복적으로 복 수회 수행된다. Then, the I /
도 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
도 10의 예에서 알 수 있는 바와 같이, 라운드의 길이는 가장 긴 스케쥴러 큐(251) 의 전송 허용 시간으로 결정되고, I/O 스케쥴러(253)는 스케쥴러 큐(251)의 각 처리 요청의 도착시각과 종료시각을 비교하여 추출 여부를 결정한다. 나 는 종료시각이 도과함에 따라 특정 처리 요청이 다운 라운드에서 추출된다. As can be seen in the example of FIG. 10, the length of the round is the
이후 단계 S119에서 디스패치 큐(255)의 처리 요청들은 하드디스크(205)로의 전송 가능한 시기에 하드디스크(205)의 장치 큐로 바로 전송된다. 하드디스크(205)는 SSD 일 수 있고 단계 S119는 I/O 스케쥴러(253)에 의해서 수행되거나 또는 하드디스크(205)를 제어할 수 있는 디바이스 드라이버에 의해서 수행될 수 있다. In step S119, processing requests of the
단계 S119 이후에 하드디스크(205)는 장치 큐의 처리 요청을 처리하고 처리 완료를 나타내는 응답을 피드백 제어 모듈(257)로 반환한다. 피드백 제어 모듈(257)은 특정 처리 요청에 대한 처리 완료에 따라 목표 요구 사항에 대응하는 처리량을 갱신(S121)한다. After step S119, the
도 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
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다. 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)
(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.
상기 단계 (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.
(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.
상기 단계 (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.
상기 단계 (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.
상기 단계 (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.
각 반복에서 결정되는 상기 전송 허용 시간은 이전 반복에서의 처리량에 반비례하여 결정되며,
상기 목표 요구 사항은 초당 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.
복수의 가상 머신 각각으로부터의 처리 요청을 각각 저장하는 복수의 스케쥴러 큐;를 더 포함하며,
상기 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.
상기 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.
상기 요구 성능 보장 장치는 복수의 가상 머신 및 공용 스토리지를 포함하는 클라우드 시스템 환경하에서 복수의 가상 머신으로부터 상기 공용 스토리지로의 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.
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)
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)
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)
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 |
-
2014
- 2014-06-13 KR KR1020140072001A patent/KR101652324B1/en active IP Right Grant
Non-Patent Citations (1)
Title |
---|
박현찬 외 1명. 'CFQ 스케줄러의 튜닝 변수 설정에 따른 SSD 성능 분석'. 한국정보과학회 2011한국컴퓨터종합학술대회 논문집 제38권 제1호(B), 2011.6, pp.423-426* |
Cited By (2)
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 |