WO2018016659A1 - 플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템 - Google Patents

플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템 Download PDF

Info

Publication number
WO2018016659A1
WO2018016659A1 PCT/KR2016/007784 KR2016007784W WO2018016659A1 WO 2018016659 A1 WO2018016659 A1 WO 2018016659A1 KR 2016007784 W KR2016007784 W KR 2016007784W WO 2018016659 A1 WO2018016659 A1 WO 2018016659A1
Authority
WO
WIPO (PCT)
Prior art keywords
type
task
bandwidth
input
tasks
Prior art date
Application number
PCT/KR2016/007784
Other languages
English (en)
French (fr)
Inventor
김강희
남이현
최진용
강형석
Original Assignee
주식회사 파두
숭실대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 파두, 숭실대학교 산학협력단 filed Critical 주식회사 파두
Priority to PCT/KR2016/007784 priority Critical patent/WO2018016659A1/ko
Publication of WO2018016659A1 publication Critical patent/WO2018016659A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • a summation bandwidth is calculated when the flash storage becomes saturated for at least one type of I / O request, and the type of the I / O request for which the summation bandwidth is minimum is calculated.
  • a reference type setting unit which sets a reference type; Create tasks as many as the number of saturation tasks, some of which are generated as target type tasks that generate input / output requests of a target type among the one or more types, and others are generated by reference type tasks that generate input / output requests of the reference type.
  • the reference type setting unit may calculate an aggregate bandwidth when the flash storage becomes saturated by generating only an I / O request of the same type for each of one or more types of the I / O request.
  • the saturation state of the flash storage may be a state in which the total bandwidth provided by the flash storage increases within an error range even if the number of input / output requests is increased.
  • the reference type setting unit obtains a limit task number (N TH ), which is the maximum number of tasks that can be generated, and an error range ( ⁇ ) used to determine a saturation state of a bandwidth, and performs one of the input / output requests.
  • N TH limit task number
  • error range
  • the bandwidth of the flash storage increases within the error range, and calculates a summation bandwidth when saturated, and the calculated summation bandwidth is a minimum type of input / output request.
  • the cost generator 140 may include a reference type setting unit 141, a task generating unit 142, a profiling unit 143, an exchange rate calculating unit 144, and an input / output unit. It may include a cost estimator 145 and a cost table generator 146.
  • the scheduling setup method of the cost generator 140 may be divided into a one-step algorithm and a two-step algorithm for convenience of description.
  • the time series operation of the scheduling setup method according to an embodiment of the present invention performed by the cost generator 140 will be described in more detail.
  • the scheduling setting step is divided into a first step algorithm for setting a reference type and a two step algorithm for generating cost for each type.
  • FIG. 5 is a diagram for describing a one-step algorithm for setting a reference type according to an embodiment of the present invention.
  • the reference type setting unit 141 sets the largest value among the number of tasks in the saturation state to the saturation task number N (506). That is, as described above, the summation bandwidth B total is calculated for the requests of all the input / output types, in which the maximum value among the tasks in calculating the summation bandwidth B total is the saturation task number N.
  • the cost schedule generator 146 completes the cost schedule using the calculated costs of all target types (806).
  • the cost of the input / output request which is an essential element in the proportional share scheduling system that fairly distributes the variable bandwidth of the flash storage 200, may be accurately obtained for each request type.
  • the scheduling accuracy of the proportional share scheduler can be improved, and the variable bandwidth of the flash storage 200 can be guaranteed to be fairly distributed to the task. It can also ensure fair distribution of bandwidth even for complex workloads consisting of various types of requests.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 일 실시예에 따르면, 기준 타입 설정부; 포화 태스크 수만큼 태스크를 생성하되, 일부는 상기 하나 이상의 타입들 중 목표 타입의 입출력 요청을 생성하는 목표 타입 태스크로 생성하고, 나머지 일부는 상기 기준 타입의 입출력 요청을 생성하는 기준 타입 태스크로 생성하는 태스크 생성부; 생성된 상기 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 상기 플래시 스토리지의 대역폭을 획득하는 프로파일링부; 상기 목표 타입 태스크에 대한 합산 대역폭 및 상기 기준 타입 태스크에 대한 합산 대역폭에 기초하여, 교환비율을 산출하는 교환비율 산출부; 상기 교환비율을 상기 기준 타입의 비용에 곱하여 상기 목표 타입의 비용을 산출하는 입출력 비용 추정부; 를 포함하는 비례 지분 스케줄링 시스템이 제공된다.

Description

플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템
본 발명은 플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템에 관한 것으로, 보다 상세하게는 출력 요청의 모든 타입별로 비용을 정확하게 산출할 수 있는 비례 지분 스케줄링 방법 및 장치에 관한 것이다.
플래시 스토리지(Flash Storage) 장치는 전원이 꺼져도 저장된 정보가 사라지지 않는 비휘발성 메모리로서, 소비 전력이 작고 전원 공급이 중단되어도 저장된 정보를 그대로 보전할 수 있을 뿐만 아니라 입출력이 자유로워 그 사용 범위가 점차 확대되고 있다.
한편, 플래시 스토리지는 호스트 시스템으로부터 태스크의 입출력 요청을 받아 대역폭을 제공하는데, 이때 제공되는 대역폭은 가변 대역폭으로서 태스크들에 따라 달라질 수 있다. 이와 관련하여, 각 태스크들에 대해 플래시 스토리지의 대역폭을 공정하게 분배하기 위한 비례 지분 스케줄링 방법들이 연구되고 있었다. 즉, 플래시 스토리지의 대역폭에 대해 상이한 입출력 요청마다 상이한 비용이 발생하는 점에 기초하여, 각 입출력 요청의 유형이 요구하는 비용에 대한 연구가 선행되어 왔다.
예를 들어, 입출력 요청들의 비용을 예측하기 위한 종래 기술로서, 선형 보간법(Linear Interpolation Method)과 선형 회귀법(Linear Regression Method)이 존재하였다. 그러나, 종래 기술들은 입출력 요청의 유형들 중 일부만 택하여 비용을 측정하고, 나머지 유형들에 대해서는 추정을 통해 비용을 산정한다는 점에서 불명확한 비용 산출의 문제점을 가졌다.
본 발명은 태스크들이 생성하는 입출력 유형의 모든 타입들의 비용을 산출하여, 비용에 따라 공정하게 가변 대역폭을 태스크들에 분배하여 비례 지분 스케줄링의 정확도를 향상시키는 것을 목적으로 한다.
또한, 본 발명은 모든 입출력 요청의 타입에 대한 대역폭 실측을 통해 각 타입별 비용을 정확하게 산정하는 알고리즘을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 실시예에 따르면, 입출력 요청의 하나 이상의 타입에 대하여 플래시 스토리지(Flash Storage)가 포화 상태가 되는 때의 합산 대역폭을 산출하고, 산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하는 기준 타입 설정부; 포화 태스크 수만큼 태스크를 생성하되, 일부는 상기 하나 이상의 타입들 중 목표 타입의 입출력 요청을 생성하는 목표 타입 태스크로 생성하고, 나머지 일부는 상기 기준 타입의 입출력 요청을 생성하는 기준 타입 태스크로 생성하는 태스크 생성부; 생성된 상기 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 상기 플래시 스토리지의 대역폭을 획득하는 프로파일링부; 상기 목표 타입 태스크에 대한 합산 대역폭 및 상기 기준 타입 태스크에 대한 합산 대역폭에 기초하여, 교환비율을 산출하는 교환비율 산출부; 상기 교환비율을 상기 기준 타입의 비용에 곱하여 상기 목표 타입의 비용을 산출하는 입출력 비용 추정부; 를 포함하는 비례 지분 스케줄링 시스템이 제공된다.
본 발명에 있어서, 상기 기준 타입 설정부는, 상기 입출력 요청의 하나 이상의 타입 각각에 대해, 동일한 타입의 입출력 요청만을 생성하여 상기 플래시 스토리지가 포화 상태가 되는 때의 합산 대역폭을 산출할 수 있다.
본 발명에 있어서, 상기 플래시 스토리지의 포화 상태는 입출력 요청의 수를 증가시켜도 상기 플래시 스토리지가 제공하는 전체 대역폭이 오차 범위 내에서 증가하는 상태일 수 있다.
본 발명에 있어서, 산출된 상기 목표 타입의 비용에 기초하여, 상기 입출력 요청의 하나 이상의 타입 중 가능한 모든 타입들에 대해 비용을 산출하여 비용표를 생성하는 비용표 생성부; 를 더 포함할 수 있다.
본 발명에 있어서, 상기 교환비율은, 임의의 비율의 상기 기준 타입 태스크가 같은 비율의 상기 목표 타입 태스크로 전환될 때 발생하는 대역폭 변화의 효율일 수 있다.
본 발명에 있어서, 상기 프로파일링부는, 상기 목표 타입 태스크가 생성하는 입출력 요청의 타입 각각에 대해, 그리고 기준 타입 태스크 수에 대한 목표 타입 태스크 수의 비율 각각에 대해, 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 대역폭을 획득할 수 있다.
본 발명에 있어서, 상기 교환비율 산출부는, 상기 목표 타입 태스크가 생성하는 입출력 요청의 타입 각각에 대해, 그리고 기준 타입 태스크 수에 대한 목표 타입 태스크 수의 비율 각각에 대해 교환비율을 산출할 수 있다.
본 발명에 있어서, 상기 입출력 비용 추정부는 기준 타입 태스크 수에 대한 목표 타입 태스크 수의 비율 각각에 대해 산출된 상기 교환비율들 중 하나를 선택하여 상기 기준 타입의 비용에 곱할 수 있다.
본 발명에 있어서, 상기 포화 태스크 수는, 동일한 타입의 입출력 요청들만을 생성하였을 때 플래시 스토리지를 포화시킬 수 있는 태스크 수들 중 최대값일 수 있다.
본 발명에 있어서, 상기 포화 태스크 수는, 생성 가능한 입출력 태스크의 한계 개수 이하인, 본 발명에 있어서, 상기 기준 타입 태스크 및 목표 타입 태스크의 가중치는 모두 1 로 설정되는, 본 발명에 있어서, 산출된 상기 목표 타입의 비용에 기초하여, 사용자 요청 태스크의 입출력 요청들에 대해 비례 지분 스케줄링을 수행하는 비례 지분 스케줄러를 더 포함할 수 있다.
본 발명에 있어서, 상기 기준 타입 설정부는, 생성 가능한 최대의 태스크 개수인 한계 태스크 개수(NTH) 및 대역폭의 포화 상태를 판단하기 위해 사용되는 오차 범위(ε)를 획득하고, 상기 입출력 요청의 하나 이상의 타입 각각에 대하여, 태스크의 수가 증가하여도 상기 플래시 스토리지의 대역폭이 상기 오차 범위 내에서 증가하는, 포화 상태일 때의 합산 대역폭을 산출하고, 산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하고, 상기 플래시 스토리지가 포화 상태가 되는 때의 태스크 개수들 중 최대값이며, 상기 한계 태스크 개수 이하인 값을 포화 태스크 수(N)으로 설정할 수 있다.
본 발명에 기재된 비례 지분 스케줄링 시스템을 포함하며, 사용자 요청 태스크의 입출력 요청을 플래시 스토리지 디바이스로 전달하고, 상기 산출된 비용에 기초하여 분배된 대역폭을 상기 사용자 요청 태스크에 제공하는 호스트 시스템; 상기 호스트 시스템으로부터 입출력 요청을 받아 대역폭을 제공하는 플래시 스토리지 디바이스가 제공된다.
본 발명의 다른 일 실시예에 따르면, 입출력 요청의 하나 이상의 타입에 대하여 플래시 스토리지(Flash Storage)가 포화 상태가 되는 때의 합산 대역폭을 산출하고, 산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하는 기준 타입 설정 단계; 포화 태스크 수만큼 태스크를 생성하되, 일부는 상기 하나 이상의 타입들 중 목표 타입의 입출력 요청을 생성하는 목표 타입 태스크로 생성하고, 나머지 일부는 상기 기준 타입의 입출력 요청을 생성하는 기준 타입 태스크로 생성하는 태스크 생성 단계; 생성된 상기 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 상기 플래시 스토리지의 대역폭을 획득하는 프로파일링 단계; 상기 목표 타입 태스크에 대한 합산 대역폭 및 상기 기준 타입 태스크에 대한 합산 대역폭에 기초하여, 교환비율을 산출하는 교환비율 산출 단계; 상기 교환비율을 상기 기준 타입의 비용에 곱하여 상기 목표 타입의 비용을 산출하는 입출력 비용 추정 단계; 를 포함하는 비례 지분 스케줄링 방법이 제공된다.
본 발명의 다른 일 실시예에 따르면, 비례 지분 스케줄링을 위한 하나 이상의 명령을 포함하는 컴퓨터 판독가능 매체에 저장된 프로그램으로서, 상기 명령은, 입출력 요청의 하나 이상의 타입에 대하여 플래시 스토리지(Flash Storage)가 포화 상태가 되는 때의 합산 대역폭을 산출하고, 산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하고, 포화 태스크 수만큼 태스크를 생성하되, 일부는 상기 하나 이상의 타입들 중 목표 타입의 입출력 요청을 생성하는 목표 타입 태스크로 생성하고, 나머지 일부는 상기 기준 타입의 입출력 요청을 생성하는 기준 타입 태스크로 생성하고, 생성된 상기 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 상기 플래시 스토리지의 대역폭을 획득하고, 상기 목표 타입 태스크에 대한 합산 대역폭 및 상기 기준 타입 태스크에 대한 합산 대역폭에 기초하여, 교환비율을 산출하고, 상기 교환비율을 상기 기준 타입의 비용에 곱하여 상기 목표 타입의 비용을 산출하는, 컴퓨터 판독가능 매체에 저장된 프로그램이 제공된다.
본 발명에 의하면, 입출력 요청의 다양한 타입들에 대해 정확한 비용 산출이 가능해져 비례 지분 스케줄링의 정확도가 향상되므로, 태스크들 간의 공정한 대역폭 분배를 보장할 수 있다.
도 1 은 본 발명의 일 실시예에 따른 플래시 스토리지 시스템을 나타낸 도면이다.
도 2 는 도 1 의 구체적인 실시예를 설명하기 위한 도면이다.
도 3 은 본 발명의 일 실시예에 따른 스케줄링 실행 단계를 나타낸 도면이다.
도 4 는 본 발명의 일 실시예에 따른 비용 생성기의 구체적인 구성을 나타낸 도면이다.
도 5 는 본 발명의 일 실시예에 따라 기준 타입을 설정하기 위한 1 단계 알고리즘을 설명하기 위한 도면이다.
도 6 은 본 발명의 일 실시예에 따른 1 단계 알고리즘을 보다 상세히 설명하기 위한 순서도이다.
도 7 및 도 8 은 본 발명의 일 실시예에 따른 입출력 요청의 타입 별로 비용을 생성하는 2 단계 알고리즘을 설명하기 위한 도면이다.
도 9 는 본 발명의 일 실시예에 따른 2 단계 알고리즘을 보다 상세히 설명하기 위한 순서도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1 은 본 발명의 일 실시예에 따른 플래시 스토리지 시스템을 나타낸 도면이다. 또한, 도 2 는 도 1 의 구체적인 실시예를 설명하기 위한 도면이다.
도 1 에 도시된 바와 같이, 플래시 스토리지 시스템은 플래시 스토리지(200) 및 플래시 스토리지(200)와 상호작용하여 플래시 스토리지(200)들이 태스크를 수행할 수 있도록 하는 호스트 시스템(100)을 포함한다. 호스트 시스템(100)에는, 플래시 스토리지(200)가 가진 대역폭을 입출력 요청의 타입에 따라 공정하게 분배하는 비례 지분 스케줄러(120)가 포함되어 있다.
이하에서는, 도 1 및 도 2 를 함께 참조하여 본 발명의 일 실시예에 따른 플래시 스토리지 대역폭의 비례 지분 스케줄링 방법에 대해 설명하고자 한다.
도 1 에 나타난 바와 같이, 본 발명의 일 실시예에 따른 호스트 시스템(100)은 태스크 레벨 입출력 큐(110), 비례 지분 스케줄러(120), 디바이스 레벨 입출력 큐(130) 및 비용 생성기(140)를 포함한다. 또한, 호스트 시스템(100)은 태스크(T)들로부터 플래시 스토리지(200)에 태스크의 입출력 요청을 전달하고, 플래시 스토리지(200)로부터의 대역폭을 태스크(T)들에 분배한다.
본 발명의 일 실시예에 따라 호스트 시스템(100)이 플래시 스토리지(200)로부터의 대역폭을 태스크(T)들에 공정하게 분배하기 위해서는, 비례 지분 스케줄러(120)가 입출력 요청들 각각에 대해 대역폭 사용에 대한 적절한 비용값을 알 필요가 존재한다. 플래시 스토리지(200)의 대역폭은 입출력 처리량, 즉 단위시간 당 입력 또는 출력된 데이터의 양으로 나타낼 수 있다.
입출력 요청들의 비용을 산정하는 것과 관련하여, 종래 기술은 일부 제한된 유형에 대해서만 실측을 통해 비용을 계산하고, 나머지 유형들에 대한 비용은 추정하는 방법을 사용하였다. 예를 들어, 선형 보간법을 이용한 비용 산정방법은 읽기 요청과 쓰기 요청 각각에 대해서 가능한 가장 작은 크기(예: 4KB)와 가장 큰 크기(예: 128KB)의 입출력 요청에 대해서만 응답시간 실측을 통해 비용을 결정하고, 나머지 크기들에 대해서는 측정된 비용값을 기준으로 선형 보간하여 결정하였다. 여기서 응답시간은 입출력 요청을 스토리지에 전달한 시간과 요청 처리가 완료된 시간의 차이로 정의된다. 그러나 선형 보간법은 플래시 스토리지(200)와 같이 대역폭이 입출력 유형에 따라 변하는 경우에는 예측된 비용과 실제 비용이 크게 차이가 날 수 있으므로 비용 예측의 정확도가 떨어지는 문제가 있었다.
또 다른 종래 기술로는 선형 회귀를 이용한 비용 산정 방법이 있었다. 이 방법은 앞선 방법과 달리 모든 유형의 입출력 요청들에 대해서 응답시간 값들을 얻어 입출력 크기에 선형 비례하는 비용 산정식을 도출한다. 하지만 선형 회귀를 이용한 비용 산정 방법은 근본적으로 비용 산정식이 입출력 요청 크기에 선형 비례하지 않는 스토리지에 대해서 선형 비례 관계를 강제할 때 부정확한 결과를 초래할 수 있다. 따라서 이와 같은 종래 기술들로는 모든 유형의 요청에 대한 비용들을 정확히 도출해내기가 어려운 문제점이 존재한다.
본 발명은 상술한 바와 같은 종래 기술의 문제점을 해결하기 위해 모든 입출력 요청의 크기와 방향, 즉 입출력 요청의 타입을 고려하되, 플래시 스토리지의 가변 대역폭을 최소 대역폭과 잉여 대역폭의 합으로 파악하고, 대역폭이 변화하는 상황에서도 각 입출력 스트림이 자신의 가중치에 비례하는 대역폭 지분을 최소 대역폭에서 정의된 지분 이상으로 수신함을 보장하는, 입출력 요청의 비용 산정 방법을 제공한다.
본 발명의 입출력 요청의 타입(Request Type)은 입출력 요청의 유형을 의미하며 입출력 방향(I/O Direction) 및 요청 크기(Request Size)에 의해 정의될 수 있다. 입출력 방향은 입출력 요청의 데이터 흐름의 방향을 의미하며, 읽기 혹은 쓰기 중 하나이다. 요청 크기는 입출력 요청의 데이터 크기를 의미하며, 호스트 시스템(100)에서 허용되는 범위 내에서 설정된다.
도 2 를 참조하면, 호스트 시스템(100)은 각 태스크들(Task 1, Task 2,..., Task n)으로부터 입출력 요청을 태스크 레벨 입출력 큐(110)로 수신한다. 각 입출력 큐(110)들에 들어온 입출력 요청들은 가중치(ω1, ω2,...ωn)에 따라 비례 지분 스케줄러(120)를 통해 디바이스 레벨 입출력 큐(130)로 전달되고, 디바이스 레벨 입출력 큐(130)는 큐에 존재하는 입출력 요청들을 플래시 스토리지(200)로 전달한다. 또한, 호스트 시스템(100)은 플래시 스토리지(200)로부터 전체 대역폭 Btotal 을 제공받아 각 태스크들에 제공한다.
보다 상세히, 본 발명의 일 실시예에 따른 태스크 수준 입출력 큐(110)는 입출력 태스크들(Task 1, Task 2,..., Task n)마다 입출력 큐를 각각 할당한다. 태스크 수준 입출력 큐(110)는 태스크가 생성한 입출력 요청들을 하위 단계로 전달하는 역할을 수행할 수 있다.
다음으로, 본 발명의 일 실시예에 따른 디바이스 수준 입출력 큐(130)는 비례 지분 스케줄러(120)와 플래시 스토리지(200) 사이의 입출력 큐이다. 디바이스 수준 입출력 큐(130)는 비례 지분 스케줄러(120)와 플래시 스토리지(200) 사이의 입출력 요청을 주고받기 위한 목적으로 사용되며, 하드웨어 특성과 호스트 운영체제의 설정에 따라 하나 또는 그 이상의 큐들로 생성될 수 있다.
다음으로, 본 발명의 일 실시예에 따른 비례 지분 스케줄러(120)는 일정 시간 구간마다 플래시 스토리지(200)의 전체 대역폭 Btotal 이 가중치의 비율에 따라 태스크들에 분배될 수 있도록 입출력 요청들을 스케줄링하는 역할을 수행한다. 상기 일정 시간 구간의 길이는, 비례 지분 스케줄러(120)에 따라서 작을 수도 있고 클 수도 있으며, 시간에 따라 일정한 크기일 수도 있고 변화하는 크기일 수도 있다.
본 발명의 일 실시예에 따르면 비례 지분 스케줄러(120)가 태스크들에 대역폭을 분배하기 위한 가중치(ω1, ω2,...ωn)는 각 태스크마다 부여되는 값으로서, 태스크는 가중치의 값에 비례하는 대역폭 지분을 가질 수 있다. 일 예에서, 전체 태스크의 개수가 N 개 인 경우, N 개의 입출력 태스크들 중 i 번째 태스크가 ωi 의 가중치를 비례 지분 스케줄러(120)로부터 부여받았을 때, 해당 태스크가 수신한 대역폭 Bi 는 다음의 [수식 1]과 같이 계산될 수 있다.
Figure PCTKR2016007784-appb-I000001
[수식 1]
보다 구체적인 실시예로, 도 2 의 실시예에서 플래시 스토리지(200)의 전체 대역폭 Btotal 이 500MB/s 이고, 태스크의 개수 N= 4 이고, 제 1 태스크(Task 1), 제 2 태스크(Task 2), 제 3 태스크(Task 3) 및 제 4 태스크(Task 4)의 가중치가 각각 ω1=10, ω2=20, ω3=30 및 ω4=50 인 경우를 상정할 수 있다. 이 경우 각 태스크들의 대역폭 지분은 10%, 20%, 30% 및 50% 가 되므로, 제 1 태스크가 수신하는 제 1 대역폭 B1=50MB/s, 제 2 태스크가 수신하는 제 2 대역폭 B2=50MB/s, 제 3 태스크가 수신하는 제 3 대역폭 B3=150MB/s, 제 4 태스크가 수신하는 제 4 대역폭 B4=250MB/s 이 된다.
또한, 본 발명의 일 실시예에 따른 비례 지분 스케줄러(120)는 각 태스크들의 입출력 요청들을 처리할 때마다 해당 요청의 입출력 비용을 가상 시간(Virtual Time, VT)에 누적한다. 본 발명의 일 실시예에 따르면 가상시간 VT 는 비례 지분 스케줄러(120)가 정의한 태스크 진행도를 표현하는 것으로서, 플래시 스토리지(200) 자원에 대한 태스크의 누적된 사용량을 나타내는 지표이다. 비례 지분 스케줄러(120)는 일정 시간 구간 내에서 태스크들의 진행도가 가중치에 비례하는 값을 가지도록 스케줄링함으로써 대역폭의 공정한 분배를 달성할 수 있다. 한편, 비례 지분 스케줄러(120)에 따라서 가상시간 VT 를 재설정하는 조건이 존재하며, 예를 들어 그 조건은 Lottery scheduling, Weighted Round Robin, Weighted Fair Queueing, Start-time Fair Queueing 일 수 있다.
따라서, 플래시 스토리지(200) 대역폭의 공정 분배를 보장하기 위해서는, 가상 시간 VT 가 각 입출력 요청에 대해 실제 스토리지 자원의 사용량에 해당하는 정확한 비용만큼 비례적으로 증가되어야 하며, 이를 위해서는 입출력 요청의 타입 별로 대역폭에 대한 정확한 비용을 알고 있어야 한다. 따라서, 본 발명의 일 실시예에 따른 비례 지분 스케줄링 방법은 입출력 요청의 타입 별로 정확한 비용을 산출하는 방법을 제공하며, 입출력 요청들의 비용은 비용 생성기(140)에 의해 산출될 수 있다.
본 발명의 일 실시예에 따른 비용 생성기(150)는 플래시 스토리지(200)에 대한 프로파일링을 통해 입출력 요청의 타입별로 비용을 산정하는 도구로서, 입출력 요청의 모든 타입에 대한 비용 정보를 포함하는 입출력 비용표를 생성하는 역할을 한다. 본 발명의 일 실시예에 따르면 프로파일링이란, 플래시 스토리지(200)에 특정 유형의 입출력 요청들을 임의로 발생시키면서 플래시 스토리지(200)의 대역폭을 측정하여, 입출력 요청들의 타입별로 비용 산정 근거를 수집하는 과정을 의미한다.
또한, 본 발명의 일 실시예에 따르면 비용 생성기(140)가 생성하는 입출력 비용표란, 상술한 바와 같이 태스크들이 생성하는 모든 입출력 타입에 대한 비용들이 정리된 테이블이다. 본 발명의 일 실시예에 따른 입출력 비용표에는, 후술하는 도 7 에서 볼 수 있는 바와 같이 입출력 요청의 방향 dj 와 크기 sk 의 모든 조합에 대응되는 비용 C(dj,sk) 의 값들이 정의되어 있다. dj 는 읽기(j=1) 혹은 쓰기(j=2)로 설정될 수 있고, sk 는 운영체제에서 허용되는 최소 크기(k=1)와 최대 크기(k=K) 사이에서 하나로 설정될 수 있다. 본 발명의 일 실시예에 따른 비례 지분 스케줄러(120)는 처리되는 입출력 요청의 타입을 비용 생성기(140)에 전달하고, 해당 타입의 비용을 제공받아서 사용한다.
이하에서는, 비용 생성기(140)가 생성한 입출력 비용표를 이용하여 본 발명의 일 실시예에 따른 비례 지분 스케줄링을 실행하는 방법(이하, 스케줄링 실행 단계)에 대해 먼저 설명한 후, 비용 생성기(140)가 모든 입출력 요청들에 대한 비용을 산출하여 입출력 비용표를 생성하는 방법(이하, 스케줄링 설정 단계)에 대해 알아보기로 한다.
도 3 은 본 발명의 일 실시예에 따른 스케줄링 실행 단계를 나타낸 도면이다.
본 발명의 일 실시예에 따른 스케줄링 실행 단계는 일반적인 사용자 태스크들이 플래시 스토리지(200)를 대상으로 입출력 요청의 작업부하를 발생시키는 상시 동작 단계이다.
스케줄링 실행 단계에서, 먼저 각 태스크들(Task 1, Task 2,..., Task n)은 임의의 입출력 요청을 생성하여 각기 지정된 태스크 수준 입출력 큐(110)에 삽입한다(301).
다음으로, 비례 지분 스케줄러(120)는 유휴 상태가 아닌 태스크 레벨 큐(110)들 중에서 하나를 선택한다(302). 이때, 비례 지분 스케줄러(120)가 큐를 선택하는 매커니즘은 비례 지분 스케줄러(120)의 구현마다 차이가 존재하는데, 예를 들어 공정 큐잉(Fair Queing)에서는 매 스케줄링 시점마다 태스크 진행도와 관련한 가상 시간 VT 가 최소인 큐를 선택하는 반면, 임의 스케줄링(Lottery Scheduling)에서는 무작위 복권 추첨 방식을 선택한다.
다음으로, 비례 지분 스케줄러(120)는 선택된 큐로부터 하나 이상의 입출력 요청을 추출하여 타입을 확인한다(303).
다음으로, 비례 지분 스케줄러(120)는 상기 확인된 타입의 비용을 비용 생성기(140)가 제공한 입출력 비용표로부터 획득하여, 선택된 큐와 연관된 태스크의 진행도를 그 비용값만큼 증가시킨다(304).
다음으로, 비례 지분 스케줄러(120)는 추출된 입출력 요청들을 디바이스 수준 입출력 큐(130)에 삽입한다(305). 만약 디바이스 수준 입출력 큐(130)에 큐가 둘 이상 존재하는 경우에는 큐들의 작업부하를 균등하게 배분하는 방식으로 큐를 선택한다.
다음으로, 플래시 스토리지(200)는 디바이스 수준 입출력 큐(130)에서 입출력 요청들을 추출하여 처리하고, 처리 결과를 반환한다(306). 플래시 스토리지(200)의 처리 결과를 받은 태스크들은 요청이 정상적으로 처리되었는지 확인하고, 필요한 요청들을 계속 생성할 수 있다.
상술한 바와 같은 본 발명의 일 실시예에 따른 스케줄링 실행 단계를 통해, 호스트 시스템(100)은 태스크들의 입출력 요청을 처리할 때, 플래시 스토리지(200)의 입출력 요청의 비용에 기초하여 가변 대역폭을 공정하게 분배할 수 있으므로, 비례 지분 스케줄링의 스케줄링 정확도가 향상될 수 있다.
따라서, 본 발명의 일 실시예에 따른 스케줄링 실행 단계를 실행하기 위해서는 비용 생성기(140)가 입출력 요청의 타입별로 정확한 비용을 생성할 필요가 있다. 또한, 만약 플래시 스토리지(200)의 하드웨어에 변화가 생긴 경우(예를 들어, 새 스토리지 설치 또는 스토리지 입출력 버스 교체 등)나, 플래시 스토리지(200)에 노화(aging)가 발생하는 등 플래시 스토리지(200)의 대역폭에 변동이 발생한 경우에는 입출력 비용을 갱신해야 할 필요가 존재한다. 따라서, 이하에서는 비용 생성기(140)가 입출력 비용표를 생성하는, 스케줄링 설정 단계에 대해 보다 상세히 살펴보기로 한다. 본 발명의 스케줄링 설정 단계는 호스트 시스템(100)의 비용 생성기(140)에 의해 수행될 수 있다.
도 4 는 본 발명의 일 실시예에 따른 비용 생성기(140)의 구체적인 구성을 나타낸 도면이다.
도 4 를 참조하면, 본 발명의 일 실시예에 따른 비용 생성기(140)는 기준 타입 설정부(141), 태스크 생성부(142), 프로파일링부(143), 교환비율 산출부(144), 입출력 비용 추정부(145) 및 비용표 생성부(146)를 포함할 수 있다.
먼저, 기준 타입 설정부(141)는 본 발명의 일 실시예에 따른 기준 타입(reference type)의 입출력 요청의 입출력 방향 및 입출력 크기를 설정한다. 기준 타입의 입출력 요청은 본 발명의 일 실시예에 따른 후술할 1 단계 알고리즘에 의해 산출된다.
보다 상세히, 기준 타입의 입출력 요청이란, 모든 태스크들이 특정 타입의 요청들만 생성하였을 때, 해당 특정 타입의 요청들로 인해 플래시 스토리지(200)가 포화 상태가 되고, 포화 상태에서 측정한 대역폭이 최소가 되도록 하는 해당 특정 타입의 요청을 의미한다. 또한, 포화상태란 플래시 스토리지(200)를 대상으로 발생하는 단위 시간 당 입출력 요청의 양이 늘어나더라도 수신되는 합산 대역폭이 더 이상 증가하지 않거나, 오차 범위 내로 증가하는 상태를 의미한다.
다음으로, 태스크 생성부(142)는 기준 타입 태스크 및 목표 타입 태스크를 생성한다. 기준 타입 태스크란 기준 타입의 입출력 요청을 생성하는 태스크이고, 목표 타입 태스크는 목표 타입(target type)의 입출력 요청을 생성하는 태스크이다.
보다 상세히, 본 발명의 일 실시예에 따른 스케줄링 설정 단계는 비용 산정 알고리즘으로서 후술할 1 단계 알고리즘 및 2 단계 알고리즘을 포함하며, 1 단계 알고리즘 및 2 단계 알고리즘의 수행을 위해서는 기준 타입의 태스크들 및 목표 타입의 태스크들이 생성되어야 한다. 본 발명의 일 실시예에 따르면, 이와 같은 스케줄링 설정 단계에서 생성되는 태스크들은 모두 비용 생성기(140)의 태스크 생성부(142)에 의한 것으로, 프로파일링의 정확도를 보장하기 위해 실제 사용자의 요청에 의해 생성되는 태스크는 없는 것으로 가정한다.
또한, 산출된 기준 타입의 입출력 요청에 기초하여, 2 단계 알고리즘에서는 모든 가능한 목표 타입의 입출력 요청에 대한 교환비율 및 비용을 산출할 수 있다. 즉, 목표 타입은 교환비율 및 비용을 산출하고자 하는 모든 가능한 입출력 타입일 수 있다.
한편, 본 발명의 일 실시예에 따르면 2 단계 알고리즘에서, 모든 입출력 태스크들은 주어진 타입의 요청들을 λc의 도착률(단위 시간 당 해당 태스크의 입출력 큐에 도착한 요청의 개수)로 발생시킨다고 가정한다. 후술할 도 7 을 참조하면, 태스크 생성부(142)는 기준 타입(RT) 태스크와 목표 타입(TT) 태스크를 각각 NRT 와 NTT 개씩 생성하고, 전체 도착률(전체 태스크의 도착률을 합한 것)은 각각 λRT, λTT 로 나타낼 수 있으며, 이는 하기의 [수식 2] 와 같이 나타낼 수 있다.
λRTc*NRT
λTTc*NTT
[수식 2]
본 발명의 일 실시예에 따르면 비용 측정이 정확하게 이루어지기 위해서는 프로파일링이 수행되는 동안 플래시 스토리지(200)가 포화상태로 유지되어야 하므로, 이를 위해서는 λRT 와 λTT 가 항상 일정 임계치 이상이 되도록 NRT 와 NTT 를 충분히 크게 설정해주어야 한다. 그러나 본 발명의 일 실시예에 따른 호스트 시스템(100)이 CPU 코어를 하나만 사용하고, NRT 와 NTT 를 증가시키는 경우에는 도착률 λc 가 감소할 수 있다. 예를 들어 플래시 스토리지(200)의 대역폭에 비해 처리 속도가 현저히 느린 CPU 를 사용하는 경우를 상정할 수 있으며, 이때 CPU 는 플래시 스토리지(200)보다 먼저 포화상태가 되어 입출력 태스크의 개수를 늘리면 오히려 도착률 λc 가 감소하게 되고, 따라서 전체 도착률 λRT, λTT 가 더 이상 증가하지 못하는 문제점이 발생할 수 있다
따라서, 이러한 문제를 해결하기 위해 본 발명의 일 실시예에 따른 스케줄링 설정 방법은 여러 개의 CPU 코어를 사용하여 입출력 태스크를 분산 할당하여야 한다. 이에, 본 발명에서는 플래시 스토리지(200)의 대역폭을 포화시키기에 충분히 많은 CPU 코어들이 제공된다고 가정한다.
다음으로, 프로파일링부(143)는 모든 목표 타입(TT) 태스크에 대하여, 기준 타입(TT) 태스크의 수에 대한 목표 타입(TT) 태스크의 비율을 조정하며 반복적으로 플래시 스토리지(200)의 대역폭을 측정하는 프로파일링을 수행한다. 프로파일링부(143)는 프로파일링에서 수신된 대역폭을 측정하고, 측정된 대역폭을 입출력 요청 타입별, 즉 목표 타입별로 합산한다. 이때, NRT 와 NTT 에 따라 전체 작업부하에서 기준 타입과 목표 타입이 차지하는 비율이 달라지는데, 프로파일링부(143)는 모든 비율에 대한 프로파일링이 수행되도록 NRT 와 NTT 의 값을 조정한다.
다음으로, 교환비율 산출부(144)는 임의의 비율의 기준 타입이 같은 비율의 목표 타입으로 전환될 때 발생하는 대역폭 변화의 효율인 교환비율을 산출한다.
다음으로, 입출력 비용 추정부(145)는 도출된 교환비율 중 하나를 선택하고, 선택된 교환비율을 기준 타입(RT)의 비용에 곱하여 해당 목표 타입에 대한 비용을 산출한다. 입출력 비용 추정부(145)는 기준 타입의 입출력 요청의 비용을 1 이라고 가정하고, 다른 타입의 입출력 요청의 비용은 1 에 상대적인 수치로 표현할 수 있다.
다음으로, 비용표 생성부(146)는 입출력 비용 추정부에서 새로 생성된 비용으로 별도의 입출력 요청 비용표를 생성하고, 이후 모든 목표 타입에 대한 비용 산정이 완료되면 기존 입출력 요청 비용표를 대체한다.
상술한 바와 같이, 비용 생성기(140)의 스케줄링 설정 방법은 설명의 편의를 위해 1 단계 알고리즘 및 2 단계 알고리즘으로 나뉠 수 있다. 이하에서는, 비용 생성기(140)가 수행하는 본 발명의 일 실시예에 따른 스케줄링 설정 방법의 시계열적 동작에 대해 보다 상세히 살펴보기로 한다. 설명의 편의를 위해, 스케줄링 설정 단계를 기준 타입을 설정하기 위한 1 단계 알고리즘와 타입별 비용 생성을 수행하는 2 단계 알고리즘로 분리하여 설명하기로 한다.
도 5 는 본 발명의 일 실시예에 따라 기준 타입을 설정하기 위한 1 단계 알고리즘을 설명하기 위한 도면이다.
먼저, 기준 타입 설정부(141)는 입력 변수로 입출력 태스크의 한계 개수 NTH 및 두 대역폭 간의 차이에 대한 오차 범위 ε을 입력받는다(501). 입출력 태스크의 한계 개수 NTH 란, 호스트 시스템(100)에서 생성 가능한 입출력 태스크의 한계 개수이다. 또한, 오차 범위 ε 이란, 이전에 구한 합산 대역폭과 현재 구한 합산 대역폭 수치 간의 차이에 대한 오차 범위이다.
다음으로, 기준 타입 설정부(141)는 설정된 입출력 타입에서 프로파일링을 반복 수행하여, 합산 대역폭 Btotal 을 산정한다(502). 이때, 태스크의 개수는 변수 n 으로 표현되며, 1 부터 n 까지의 태스크들은 모두 동일한 입출력 요청의 방향과 크기로 설정된다(D1=D2=... =Dn=dj, S1=S2=...=Sn=sk), 또한, 각 태스크들의 가중치 또한 n 개의 태스크들 모두 동일하게 1 로 설정된다 (ω12=...=ωn=1). 프로파일링이 시작되면, n 개의 태스크들은 설정된 타입의 입출력 요청을 반복 생성하면서 각각 수신한 대역폭 Bi 를 측정하고, 측정된 대역폭들을 모두 합산하여 설정된 타입에 대한 합산 대역폭 Btotal 을 산정한다. 즉, 입출력 요청 타입에서 방향이 dj 이고, 사이즈가 sk 인 입출력 요청 타입들을 생성하는 n 개의 태스크들의 합산 대역폭 Btotal(dj, sk)을 계산한다.
다음으로, 기준 타입 설정부(141)는 설정된 입출력 타입에서 합산 대역폭 Btotal 이 포화 상태가 되었는지를 판단하고, 포화 상태의 합산 대역폭을 결정한다(503). 포화가 되었는지 판단하는 방법은, 합산 대역폭 Btotal 과 기준 타입 생성부로부터 설정된 이전의 합산 대역폭
Figure PCTKR2016007784-appb-I000002
과의 차이가 오차 범위 ε이내로 들어오면 포화상태로 판단하는 방법을 사용한다. 이는 하기의 [수식 3]과 같이 표현될 수 있다. 포화상태에 도달하면, 마지막으로 도출된 합산 대역폭 Btotal(dj, sk)가 설정된 입출력 요청의 타입의 포화 상태에서의 플래시 스토리지(200)의 대역폭으로 결정한다.
Figure PCTKR2016007784-appb-I000003
[수식 3]
만약, 포화 상태에 도달하지 못하였다면 현재 측정된 합산 대역폭 Btotal
Figure PCTKR2016007784-appb-I000004
로 저장하고, 태스크 개수 n 을 1 만큼 증가시킨 후 상기 503 단계의 프로파일링을 수행한다. 만약, n 이 한계치 NTH 까지 증가하여도 포화 상태에 도달하지 못한다면, 구현에 따라 가장 마지막으로 측정된 총 대역폭을 포화 상태에서의 대역폭으로 가정하여 진행하거나 혹은 알고리즘의 수행을 중단할 수 있다.
다음으로, 기준 타입 설정부(141)는 상기 502 및 503 단계를 입출력 요청의 타입을 변경하면서 실행하여, 입출력 요청의 각 타입 별로 포화 상태에서의 플래시 스토리지(200)의 합산 대역폭 Btotal 을 획득한다(504).
다음으로, 기준 타입 설정부(141)는 입출력 요청의 모든 타입들에 대해 도출된 포화 상태의 합산 대역폭 Btotal 들 중, Btotal 이 최소가 되는 입출력 요청의 타입을 기준 타입(RT)으로 설정한다(505).
다음으로, 기준 타입 설정부(141)는 포화 상태일 때의 태스크 개수들 중 가장 큰 값을 포화 태스크 수 N 으로 설정한다(506). 즉, 상술한 바와 같이 모든 입출력 타입의 요청들에 대해 합산 대역폭 Btotal 을 산정하는데, 이때 합산 대역폭 Btotal 산정 시의 태스크 개수들 중 최대값이 포화 태스크 수 N 이 된다.
다음으로, 기준 타입 설정부(141)는, 포화 태스크수 N 개 만큼의 태스크들이 생성되고 그 중 N 개가 모두 기준 타입(RT)의 입출력 요청을 생성하는 태스크인 경우의 합산 대역폭
Figure PCTKR2016007784-appb-I000005
를 생성한다(507).
도 6 은 본 발명의 일 실시예에 따른 1 단계 알고리즘을 보다 상세히 설명하기 위한 순서도이다.
이하의 설명에서, Ti 는 i 번째 입출력 태스크로서 매개 변수 (Di ,Si, ωi) 를 가지며, Di 는 Ti 의 입출력 요청의 방향이고, Si 는 Ti 의 입출력 요청의 크기이며, ωi 는 Ti 의 가중치이다. 또한, 입출력 요청의 방향은 두가지(입력, 출력) 뿐이므로 Di 는 (d1,d2) 중 하나에서 선택된 값을 가지며, 입출력 요청의 크기들이 K 가지 있다고 가정할 때 Si 는 (s1, s2, ..., sK) 중 하나에서 선택된 값을 가진다.
각각의 태스크들은 플래시 스토리지의 논리 블록 주소(Logical Block Address) 공간을 대상으로 주어진 타입의 요청들을 인위적으로 반복 생성하고, 해당 타입에 대한 대역폭을 측정한다. 포화 태스크 수 N 은 어떤 입출력 요청 타입에 대해서도 스토리지의 대역폭을 포화시킬 수 있을 정도의 태스크 개수로 사용된다. NTH 는 호스트 시스템에서 생성 가능한 입출력 태스크의 한계 개수이다. 알고리즘 상에서 포화 태스크 수 N 을 찾기 위해 태스크의 개수를 점진적으로 증가시키는데, 최대 NTH 까지만 허용한다. ε 은 두 대역폭 수치 간의 차이에 대한 오차 범위로 상수 값으로 설정되며, 알고리즘에서는 대역폭의 포화 상태를 판단하기 위한 지표로 사용된다. 기준 타입(RT)은 알고리즘 내에서 설정된 기준 타입을 지칭하며, 기준 타입(RT)에 대한 입출력 방향과 요청 크기로 구성된다.
Figure PCTKR2016007784-appb-I000006
는 총 N 개의 입출력 태스크가 존재하는 상황에서 포화 태스크 수 N 개가 모두 기준 타입(RT) 태스크일 때, 각 태스크들에 의해 얻어진 대역폭의 총합을 의미하며, 알고리즘 상에서 교환 비율을 구할 때 사용된다.
도 6 의 설명에서, NTH 및 ε 는 미리 설정된 값인 것으로 가정한다.
먼저, 도 6 를 참조하면, 최초로 알고리즘을 실행하였을 때, A1 단계부터 A7 단계까지 실행하는 경우 N=0, j=1, k=1, n=1 로 설정될 수 있다. 즉, 호스트 시스템이 생성하는 태스크의 수는 1 개로서 태스크 T1 의 (D1, S1, ω1)=(dj, sk, 1)=(d1, s1, 1) 이다. 또한, A8 단계에서, 태스크 T1 의 프로파일링을 수행(ConductProfiling)하며, 이때 얻어진 총 대역폭 B1 이 Btotal(d1, s1)이 된다.
즉, 최초로 알고리즘 수행 시 A1 단계에서 A8 단계까지 수행하면, Btotal(d1, s1) 은 T1 을 프로파일링한 대역폭 B1 이 된다. 상술한 바와 같이, 프로파일링이란 플래시 스토리지(200)에 특정 유형들의 입출력 요청을 임의로 발생시키면서 스토리지의 대역폭을 측정하여 타입별 비용 산정 근거를 수집하는 과정으로, 이번에는 (d1, s1) 유형의 입출력 요청을 하나만 생성하여 스토리지 대역폭을 측정한 것이다.
다음으로, A9 단계에서, n≠1 인지를 판단하며, 현재 n=1 이므로, A10 단계에서 Btotal(d1, s1) 값을
Figure PCTKR2016007784-appb-I000007
로 설정한다.
상기 예에 계속해서, A5-1 단계에 의해, n=2 로 설정된다. n=2 <NTH 인 경우, A7 단계 및 A8 단계가 반복된다. 이때, 태스크의 수는 2 개로서 태스크 T1 의 (D1, S1, ω1)=(dj, sk, 1)=(d1, s1, 1) 이고, 태스크 T2 의 (D2, S2, ω2)= (dj, sk, 1)=(d1, s1, 1) 으로 설정된다. 즉, 기준 타입 설정부(141)는 T1 과 T2 의 입출력 요청의 유형을 동일하게 생성한다. 또한, T1 과 T2 의 프로파일링을 수행하여 대역폭 B1 과 B2 를 획득하고, B1 과 B2 를 합산하여 Btotal(d1, s1) 의 값, 즉 태스크의 개수가 2 개이고 입출력 요청의 타입이 (d1, s1) 인 경우의 합산 대역폭 값을 구한다.
다음으로, 단계 A11 에서,
Figure PCTKR2016007784-appb-I000008
인지 여부를 판단한다. 상기 실시예에 계속하면, 태스크의 개수가 1 인 경우 전체 대역폭인
Figure PCTKR2016007784-appb-I000009
과, 태스크의 개수가 2 인 경우 전체 대역폭인 Btotal(d1, s1) 의 차가 오차 범위 이내인지 여부를 결정한다. 이는, 태스크의 개수가 늘어나더라도 대역폭이 오차 범위 이상으로 증가되지 않는 포화 태스크 수를 알기 위함이다.
만약, A11 단계에서 No 인 것으로 판단되면, 현재의 Btotal(d1, s1) 를
Figure PCTKR2016007784-appb-I000010
로 설정(단계 A1)하고, n 을 1 증가시킨 후(A5-1), 다시 A6 내지 A9 단계를 반복한다. 만약 A11 단계에서 Yes 인 것으로 판단되면, 포화 태스크 수 N 보다 현재 n 이 큰지 여부를 판단하여(A12), Yes 인 경우 현재 n 값을 N 으로 설정한다(A13). 즉, 포화 태스크 수 N 은 플래시 스토리지(200)가 포화 상태일 때의 태스크 개수들 중 가장 큰 값으로 설정된다.
또한, A11 단계에서 Yes 라고 결정된 경우, k 값을 1 만큼 증가시킨다(A3-1). 즉, 상술한 예시에서, k=2 가 되어, 입출력 요청의 유형이 (d1, s2, 1) 인 태스크들에 대하여 상술한 A4 내지 A13 단계를 반복한다. 이로써, Btotal(d1, s2) 를 구할 수 있다. 계속하여, (d1, sk, 1) 에서 k 값을 증가시키면서 k ≤K (A4)가 No 가 될 때까지 상기 단계들을 반복한다.
만약, k ≤K (A4)가 No 가 되는 경우, j 값을 1 만큼 증가시킨다(A1-1). 즉, 상술한 예시에서 j=2 가 되어, 입출력 요청의 유형이 (d2, sk, 1) 인 태스크들에 대하여 상술한 A2 내지 A13 단계를 반복한다. 이로써, Btotal(d2, sk) 를 구할 수 있다.
즉, 상술한 바와 같은 단계들로 인해, 모든 가능한 j, k 값들에 대한 Btotal(dj, sk) 를 계산할 수 있다. 본 발명의 일 실시예에 따르면 Btotal(dj, sk) 가 최소가 되는 (dj, sk) 를 기준 타입(RT)로 설정한다. 또한, 포화 태스크수 N 개 만큼의 태스크들 중 N 개의 기준 타입(RT) 입출력 요청이 있는 경우의 합산 대역폭값을
Figure PCTKR2016007784-appb-I000011
로 설정한다(A14). 본 명세서에서는, 기준 타입(RT) 의 (dj, sk) 를 (dRT, sRT)로, 기준 타입의 방향(dRT) 및 크기(sRT)로서 나타낼 수 있다. 제 1 단계 알고리즘에서는 1 단계의 결과값인 (N, RT,
Figure PCTKR2016007784-appb-I000012
)이 전달되면서 2 단계 알고리즘이 시작된다.
도 7 및 도 8 은 본 발명의 일 실시예에 따른 입출력 요청의 타입 별로 비용을 생성하는 2 단계 알고리즘을 설명하기 위한 도면이다. 도 7 및 도 8 을 동시에 참조하여 2 단계 알고리즘을 설명하기로 한다.
도 7 및 도 8 을 참조하면, 먼저 태스크 생성부(142)는 포화 태스크 수 N 개 만큼의 입출력 태스크를 생성하여 실행하되, N 개의 태스크들 중 n 개는 목표 타입(TT) 태스크(target-type request generating task)로 설정하고, 나머지 N-n 개는 기준 타입(RT) 태스크(reference-type request generating task)로 설정한다(801). 즉, 기준 타입(RT) 태스크의 수 NRT 및 목표 타입(TT) 태스크의 수 NTT 를 합하면 포화 태스크 수 N 이다. 이때, 앞서 살펴본 포화 태스크 수 N 의 정의에 따라, N 개의 태스크가 실행되는 경우 플래시 스토리지(200)의 대역폭이 항상 포화 상태가 된다.
즉, 1 부터 n 까지의 태스크들은 모두 목표 타입(TT)의 입출력 방향과 요청 크기로 설정되고(D1=D2=...=Dn=dj, S1=S2=...=Sn=sk), n+1 부터 N 까지의 태스크들은 모두 기준 타입(RT)의 입출력 방향과 요청 크기로 설정 된다 (Dn +1=Dn + 2=...=DN +1=dRT, Sn+1=Sn+2=...=SN=sRT). 그리고 가중치는 1단계 알고리즘에서와 마찬가지로 N 개의 태스크 모두 1로 설정 한다 (ω12=...=ωn=1).
다음으로, 프로파일링부(143)는 생성된 n 개는 목표 타입(TT) 태스크와, 나머지 N-n 개의 기준 타입(RT) 태스크에 대해 설정된 타입의 입출력 요청을 반복생성하면서 프로파일링을 수행한다(802).
다음으로, 프로파일링부(143)는 프로파일링에서 수신된 대역폭을 측정하고, 측정된 대역폭을 입출력 요청 타입별로 합산한다(803). 이때, 합산된 대역폭은 입출력 요청 타입별로, 총 태스크 수 N 에 대해 n 개의 목표 타입(TT)의 대역폭을 합산한 합산 대역폭
Figure PCTKR2016007784-appb-I000013
와, 총 태스크 수 N 에 대해 N-n 개의 기준 타입(RT)의 대역폭을 합산한 합산 대역폭
Figure PCTKR2016007784-appb-I000014
일 수 있다.
다음으로, 교환비율 산출부(144)는 목표 타입(TT)이 n 개일 때의 교환비율을 ERn 을 산정한다(804). 이때, 교환비율을 산정하는 것은 1 부터 N 까지의 모든 n 에 대해 수행되며, 따라서 ER1, ER2, ...ERn 이 도출된다.
다음으로, 입출력 비용 추정부(145)는 도출된 교환비율 중 하나를 선택하고, 선택된 교환비율을 기준 타입(RT)의 비용에 곱하여 해당 목표 타입에 대한 비용을 도출한다(805). 예를 들어, 해당 목표 타입이 (dj,sk) 인 경우, 선택된 교환비율에 기준 타입(RT)의 비용 C(RT)를 곱하여 해당 목표 타입의 비용 C(dj,sk) 를 도출할 수 있다.
다음으로, 비용표 생성부(146)는 산출된 모든 목표 타입의 비용들을 사용하여 비용표를 완성한다(806).
도 9 는 본 발명의 일 실시예에 따른 2 단계 알고리즘을 보다 상세히 설명하기 위한 순서도이다.
먼저, 최초 알고리즘 실행 시 B1 내지 B6 단계를 수행하면, 기준 타입 요청(RT) 의 비용 C(RT)=1 로, j=1, k=1, n=1 로 설정된다.
또한, B7 단계에선, 제 1 태스크 T1 은 (D1, S1, ω1)=(dj, sk, 1)=(d1, s1, 1) 로 설정되며, 제 2 태스크 내지 제 N 태스크까지 (T2 내지 TN) 의 태스크 중 Ti 태스크의 속성은 (Di, Si, ωi) = (dRT, sRT, 1) 이 된다.
다음으로, B8 단계에서, 제 1 내지 제 N 태스크들 (T1, ..., TN)에 대해 프로파일링을 수행하여 각 태스크들의 제 1 내지 제 N 대역폭(B1, ..., BN)을 획득한다. 또한, 제 1 내지 제 n 까지의 대역폭을 합산하여
Figure PCTKR2016007784-appb-I000015
를 얻고, 제 n+1 내지 제 N 대역폭을 합산하여
Figure PCTKR2016007784-appb-I000016
을 얻는다. 상기 예를 계속하면, 최초 알고리즘 수행 시 제 1 대역폭인
Figure PCTKR2016007784-appb-I000017
= B1 과, 제 2 내지 제 N 대역폭의 합인
Figure PCTKR2016007784-appb-I000018
을 얻는다.
다음으로, B9 단계에서, 교환비율 ERn 을 계산한다. 교환비율은 하기의 [수식 4]로 나타낼 수 있다.
Figure PCTKR2016007784-appb-I000019
[수식 4]
마찬가지로 상기 예를 계속하면, 최초 알고리즘 수행 시, n=1, j=1, k=1 이므로, ER1
Figure PCTKR2016007784-appb-I000020
으로 나타내어질 수 있다.
교환비율 ERn 이 구해지면, n 값에 1 을 더하여(B5-1) n≤N 의 판단(B6)이 no 가 될 때까지 상기 B7 내지 B9 단계를 반복한다. 즉, 상기 예를 계속하면, (d1, s1)에 대하여 제 1 교환비율(ER1) 내지 제 N 교환비율(ERN)을 계산한다.
제 1 교환비율(ER1) 내지 제 N 교환비율(ERN)의 계산이 완료되면, 즉 n≤N 의 판단(B6)이 no 이 되면, 도출된 교환비율들 중 하나를 선택하여(SelectER) 기준 타입에 대한 비용 C(RT) 에 곱하여 목표타입에 대한 비용 C(dj, sk) 를 계산한다(B10). 상기 예에서 계속하면, B10 단계에서 (d1, s1) 의 목표 타입에 대한 비용 C(d1, s1) 를 얻을 수 있다.
마찬가지의 방법으로, j 가 2 가 될 때까지, k 가 K 가 될 때까지 상기 B2 내지 B10 알고리즘을 반복하여 전체 j, k 에 대한 모든 C(dj, sk)을 획득할 수 있다. 따라서, 모든 목표 타입(TT)의 입출력 요청에 대한 비용을 산출할 수 있다.
참고적으로, 상기 본 발명의 예에서 교환비율 ER 을 선택하는 기준은 알고리즘의 구현에 따라 달라질 수 있다. 단적인 예로 도출된 교환비율들 중 최소인 값을 선택하도록 알고리즘을 구현 할 수 있다. 예를 들어, N=3이고 목표 타입 A에 대한 교환비율이 ER1=105%, ER2=67%, ER3=140%로 얻어졌다면, 이들 중 ER2=67%가 타입 A에 대한 교환비율 ER로 선택된다.
상술한 바와 같은 본 발명의 일 실시예에 따르면, 플래시 스토리지(200)의 가변 대역폭을 공정 분배하는 비례 지분 스케쥴링 시스템에 필수 요소인 입출력 요청의 비용을 요청 타입 별로 정확하게 획득할 수 있다. 이로써, 본 발명의 일 실시예에 따르면 비례 지분 스케줄러의 스케줄링 정확도가 향상될 수 있으며, 플래시 스토리지(200)의 가변 대역폭을 태스크에게 공정하게 분배하는 것을 보장할 수 있다. 또한, 다양한 요청의 유형들로 구성된 복잡한 작업부하에 대해서도 대역폭의 공정한 분배를 보장하도록 할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항과 한정된 실시예 및 도면에 의하여 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위하여 제공된 것일 뿐, 본 발명이 상기 실시예에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정과 변경을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
[부호의 설명]
100: 호스트 시스템 110: 태스크 레벨 입출력 큐
120: 비례 지분 스케줄러 130: 디바이스 레벨 입출력 큐
140: 비용 생성기 141: 기준 타입 설정부
142: 태스크 생성부 143: 프로파일링부
144: 교환 비율 산출부 145: 입출력 비용 추정부
146: 비용표 생성부 200: 플래시 스토리지

Claims (29)

  1. 입출력 요청의 하나 이상의 타입에 대하여 플래시 스토리지(Flash Storage)가 포화 상태가 되는 때의 합산 대역폭을 산출하고, 산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하는 기준 타입 설정부;
    포화 태스크 수만큼 태스크를 생성하되, 일부는 상기 하나 이상의 타입들 중 목표 타입의 입출력 요청을 생성하는 목표 타입 태스크로 생성하고, 나머지 일부는 상기 기준 타입의 입출력 요청을 생성하는 기준 타입 태스크로 생성하는 태스크 생성부;
    생성된 상기 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 상기 플래시 스토리지의 대역폭을 획득하는 프로파일링부;
    상기 목표 타입 태스크에 대한 합산 대역폭 및 상기 기준 타입 태스크에 대한 합산 대역폭에 기초하여, 교환비율을 산출하는 교환비율 산출부;
    상기 교환비율을 상기 기준 타입의 비용에 곱하여 상기 목표 타입의 비용을 산출하는 입출력 비용 추정부;
    를 포함하는 비례 지분 스케줄링 시스템.
  2. 제 1 항에 있어서,
    상기 기준 타입 설정부는, 상기 입출력 요청의 하나 이상의 타입 각각에 대해, 동일한 타입의 입출력 요청만을 생성하여 상기 플래시 스토리지가 포화 상태가 되는 때의 합산 대역폭을 산출하는, 비례 지분 스케줄링 시스템.
  3. 제 1 항에 있어서,
    상기 플래시 스토리지의 포화 상태는 입출력 요청의 수를 증가시켜도 상기 플래시 스토리지가 제공하는 전체 대역폭이 오차 범위 내에서 증가하는 상태인, 비례 지분 스케줄링 시스템.
  4. 제 1 항에 있어서,
    산출된 상기 목표 타입의 비용에 기초하여, 상기 입출력 요청의 하나 이상의 타입 중 가능한 모든 타입들에 대해 비용을 산출하여 비용표를 생성하는 비용표 생성부; 를 더 포함하는, 비례 지분 스케줄링 시스템.
  5. 제 1 항에 있어서,
    상기 교환비율은, 임의의 비율의 상기 기준 타입 태스크가 같은 비율의 상기 목표 타입 태스크로 전환될 때 발생하는 대역폭 변화의 효율인, 비례 지분 스케줄링 시스템.
  6. 제 1 항에 있어서,
    상기 프로파일링부는, 상기 목표 타입 태스크가 생성하는 입출력 요청의 타입 각각에 대해, 그리고 기준 타입 태스크 수에 대한 목표 타입 태스크 수의 비율 각각에 대해, 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 대역폭을 획득하는, 비례 지분 스케줄링 시스템.
  7. 제 1 항에 있어서,
    상기 교환비율 산출부는, 상기 목표 타입 태스크가 생성하는 입출력 요청의 타입 각각에 대해, 그리고 기준 타입 태스크 수에 대한 목표 타입 태스크 수의 비율 각각에 대해 교환비율을 산출하는, 비례 지분 스케줄링 시스템.
  8. 제 1 항에 있어서,
    상기 입출력 비용 추정부는 기준 타입 태스크 수에 대한 목표 타입 태스크 수의 비율 각각에 대해 산출된 상기 교환비율들 중 하나를 선택하여 상기 기준 타입의 비용에 곱하는, 비례 지분 스케줄링 시스템.
  9. 제 1 항에 있어서,
    상기 포화 태스크 수는, 동일한 타입의 입출력 요청들만을 생성하였을 때 플래시 스토리지를 포화시킬 수 있는 태스크 수들 중 최대값인, 비례 지분 스케줄링 시스템.
  10. 제 1 항에 있어서,
    상기 포화 태스크 수는, 생성 가능한 입출력 태스크의 한계 개수 이하인,
  11. 제 1 항에 있어서,
    상기 기준 타입 태스크 및 목표 타입 태스크의 가중치는 모두 1 로 설정되는,
  12. 제 1 항에 있어서,
    산출된 상기 목표 타입의 비용에 기초하여, 사용자 요청 태스크의 입출력 요청들에 대해 비례 지분 스케줄링을 수행하는 비례 지분 스케줄러를 더 포함하는, 비례 지분 스케줄링 시스템.
  13. 제 1 항에 있어서,
    상기 기준 타입 설정부는,
    생성 가능한 최대의 태스크 개수인 한계 태스크 개수(NTH) 및 대역폭의 포화 상태를 판단하기 위해 사용되는 오차 범위(ε)를 획득하고,
    상기 입출력 요청의 하나 이상의 타입 각각에 대하여, 태스크의 수가 증가하여도 상기 플래시 스토리지의 대역폭이 상기 오차 범위 내에서 증가하는, 포화 상태일 때의 합산 대역폭을 산출하고,
    산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하고,
    상기 플래시 스토리지가 포화 상태가 되는 때의 태스크 개수들 중 최대값이며, 상기 한계 태스크 개수 이하인 값을 포화 태스크 수(N)으로 설정하는, 비례 지분 스케줄링 시스템.
  14. 제 1 항에 기재된 비례 지분 스케줄링 시스템을 포함하며, 사용자 요청 태스크의 입출력 요청을 플래시 스토리지 디바이스로 전달하고, 상기 산출된 비용에 기초하여 분배된 대역폭을 상기 사용자 요청 태스크에 제공하는 호스트 시스템;
    상기 호스트 시스템으로부터 입출력 요청을 받아 대역폭을 제공하는 플래시 스토리지 디바이스를 포함하는 플래시 스토리지 시스템.
  15. 입출력 요청의 하나 이상의 타입에 대하여 플래시 스토리지(Flash Storage)가 포화 상태가 되는 때의 합산 대역폭을 산출하고, 산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하는 기준 타입 설정 단계;
    포화 태스크 수만큼 태스크를 생성하되, 일부는 상기 하나 이상의 타입들 중 목표 타입의 입출력 요청을 생성하는 목표 타입 태스크로 생성하고, 나머지 일부는 상기 기준 타입의 입출력 요청을 생성하는 기준 타입 태스크로 생성하는 태스크 생성 단계;
    생성된 상기 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 상기 플래시 스토리지의 대역폭을 획득하는 프로파일링 단계;
    상기 목표 타입 태스크에 대한 합산 대역폭 및 상기 기준 타입 태스크에 대한 합산 대역폭에 기초하여, 교환비율을 산출하는 교환비율 산출 단계;
    상기 교환비율을 상기 기준 타입의 비용에 곱하여 상기 목표 타입의 비용을 산출하는 입출력 비용 추정 단계;
    를 포함하는 비례 지분 스케줄링 방법.
  16. 제 15 항에 있어서,
    상기 기준 타입 설정 단계는, 상기 입출력 요청의 하나 이상의 타입 각각에 대해, 동일한 타입의 입출력 요청만을 생성하여 상기 플래시 스토리지가 포화 상태가 되는 때의 합산 대역폭을 산출하는, 비례 지분 스케줄링 방법.
  17. 제 15 항에 있어서,
    상기 플래시 스토리지의 포화 상태는 입출력 요청의 수를 증가시켜도 상기 플래시 스토리지가 제공하는 전체 대역폭이 오차 범위 내에서 증가하는 상태인, 비례 지분 스케줄링 방법.
  18. 제 15 항에 있어서,
    산출된 상기 목표 타입의 비용에 기초하여, 상기 입출력 요청의 하나 이상의 타입 중 가능한 모든 타입들에 대해 비용을 산출하여 비용표를 생성하는 비용표 생성 단계; 를 더 포함하는, 비례 지분 스케줄링 방법.
  19. 제 15 항에 있어서,
    상기 교환비율은, 임의의 비율의 상기 기준 타입 태스크가 같은 비율의 상기 목표 타입 태스크로 전환될 때 발생하는 대역폭 변화의 효율인, 비례 지분 스케줄링 방법.
  20. 제 15 항에 있어서,
    상기 프로파일링 단계는, 상기 목표 타입 태스크가 생성하는 입출력 요청의 타입 각각에 대해, 그리고 기준 타입 태스크 수에 대한 목표 타입 태스크 수의 비율 각각에 대해, 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 대역폭을 획득하는, 비례 지분 스케줄링 방법.
  21. 제 15 항에 있어서,
    상기 교환비율 산출 단계는, 상기 목표 타입 태스크가 생성하는 입출력 요청의 타입 각각에 대해, 그리고 기준 타입 태스크 수에 대한 목표 타입 태스크 수의 비율 각각에 대해 교환비율을 산출하는, 비례 지분 스케줄링 방법.
  22. 제 15 항에 있어서,
    상기 입출력 비용 추정 단계는, 기준 타입 태스크 수에 대한 목표 타입 태스크 수의 비율 각각에 대해 산출된 상기 교환비율들 중 하나를 선택하여 상기 기준 타입의 비용에 곱하는, 비례 지분 스케줄링 방법.
  23. 제 15 항에 있어서,
    상기 포화 태스크 수는, 동일한 타입의 입출력 요청들만을 생성하였을 때 플래시 스토리지를 포화시킬 수 있는 태스크 수들 중 최대값인, 비례 지분 스케줄링 방법.
  24. 제 15 항에 있어서,
    상기 포화 태스크 수는, 생성 가능한 입출력 태스크의 한계 개수 이하인,
  25. 제 15 항에 있어서,
    상기 기준 타입 태스크 및 목표 타입 태스크의 가중치는 모두 1 로 설정되는,
  26. 제 15 항에 있어서,
    산출된 상기 목표 타입의 비용에 기초하여, 사용자 요청 태스크의 입출력 요청들에 대해 비례 지분 스케줄링을 수행하는 비례 지분 스케줄링 단계를 더 포함하는, 비례 지분 스케줄링 방법.
  27. 제 15 항에 있어서,
    상기 기준 타입 설정 단계는,
    생성 가능한 최대의 태스크 개수인 한계 태스크 개수(NTH) 및 대역폭의 포화 상태를 판단하기 위해 사용되는 오차 범위(ε)를 획득하고,
    상기 입출력 요청의 하나 이상의 타입 각각에 대하여, 태스크의 수가 증가하여도 상기 플래시 스토리지의 대역폭이 상기 오차 범위 내에서 증가하는, 상기 플래시 스토리지가 포화 상태가 되는 때의 합산 대역폭을 산출하고,
    산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하고,
    상기 플래시 스토리지가 포화 상태가 되는 때의 태스크 개수들 중 최대값이며, 상기 한계 태스크 개수 이하인 값을 포화 태스크 수(N)으로 설정하는, 비례 지분 스케줄링 방법.
  28. 비례 지분 스케줄링을 위한 하나 이상의 명령을 포함하는 컴퓨터 판독가능 매체에 저장된 프로그램으로서, 상기 명령은,
    입출력 요청의 하나 이상의 타입에 대하여 플래시 스토리지(Flash Storage)가 포화 상태가 되는 때의 합산 대역폭을 산출하고, 산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하고,
    포화 태스크 수만큼 태스크를 생성하되, 일부는 상기 하나 이상의 타입들 중 목표 타입의 입출력 요청을 생성하는 목표 타입 태스크로 생성하고, 나머지 일부는 상기 기준 타입의 입출력 요청을 생성하는 기준 타입 태스크로 생성하고,
    생성된 상기 목표 타입 태스크 및 상기 기준 타입 태스크에 대한 상기 플래시 스토리지의 대역폭을 획득하고,
    상기 목표 타입 태스크에 대한 합산 대역폭 및 상기 기준 타입 태스크에 대한 합산 대역폭에 기초하여, 교환비율을 산출하고,
    상기 교환비율을 상기 기준 타입의 비용에 곱하여 상기 목표 타입의 비용을 산출하는, 컴퓨터 판독가능 매체에 저장된 프로그램.
  29. 제 28 항에 있어서,
    상기 기준 타입으로 설정하는 것은,
    생성 가능한 최대의 태스크 개수인 한계 태스크 개수(NTH) 및 대역폭의 포화 상태를 판단하기 위해 사용되는 오차 범위(ε)를 획득하고,
    상기 입출력 요청의 하나 이상의 타입 각각에 대하여, 태스크의 수가 증가하여도 상기 플래시 스토리지의 대역폭이 상기 오차 범위 내에서 증가하는, 상기 플래시 스토리지가 포화 상태가 되는 때의 합산 대역폭을 산출하고,
    산출된 상기 합산 대역폭이 최소가 되는 입출력 요청의 타입을 기준 타입으로 설정하고,
    상기 플래시 스토리지가 포화 상태가 되는 때의 태스크 개수들 중 최대값이며, 상기 한계 태스크 개수 이하인 값을 포화 태스크 수(N)으로 설정하는 것인, 컴퓨터 판독가능 매체에 저장된 프로그램.
PCT/KR2016/007784 2016-07-18 2016-07-18 플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템 WO2018016659A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2016/007784 WO2018016659A1 (ko) 2016-07-18 2016-07-18 플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2016/007784 WO2018016659A1 (ko) 2016-07-18 2016-07-18 플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템

Publications (1)

Publication Number Publication Date
WO2018016659A1 true WO2018016659A1 (ko) 2018-01-25

Family

ID=60992474

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/007784 WO2018016659A1 (ko) 2016-07-18 2016-07-18 플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템

Country Status (1)

Country Link
WO (1) WO2018016659A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755639A (zh) * 2023-08-18 2023-09-15 深圳大普微电子科技有限公司 闪存接口的性能评估方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185653A (ja) * 2011-03-04 2012-09-27 Mitsubishi Electric Corp メモリ保守装置及びメモリ保守方法並びにデータ転送装置
KR20140045286A (ko) * 2010-09-15 2014-04-16 퓨어 스토리지, 아이앤씨. 저장소 환경에서의 i/o 기록들의 스케줄링
US20140215129A1 (en) * 2013-01-28 2014-07-31 Radian Memory Systems, LLC Cooperative flash memory control
KR20160036693A (ko) * 2014-09-25 2016-04-05 충남대학교산학협력단 저장 장치 및 그것의 커맨드 스케줄링 방법
KR20160063954A (ko) * 2014-11-27 2016-06-07 숭실대학교산학협력단 실시간 멀티칩 플래시 저장장치 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140045286A (ko) * 2010-09-15 2014-04-16 퓨어 스토리지, 아이앤씨. 저장소 환경에서의 i/o 기록들의 스케줄링
JP2012185653A (ja) * 2011-03-04 2012-09-27 Mitsubishi Electric Corp メモリ保守装置及びメモリ保守方法並びにデータ転送装置
US20140215129A1 (en) * 2013-01-28 2014-07-31 Radian Memory Systems, LLC Cooperative flash memory control
KR20160036693A (ko) * 2014-09-25 2016-04-05 충남대학교산학협력단 저장 장치 및 그것의 커맨드 스케줄링 방법
KR20160063954A (ko) * 2014-11-27 2016-06-07 숭실대학교산학협력단 실시간 멀티칩 플래시 저장장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755639A (zh) * 2023-08-18 2023-09-15 深圳大普微电子科技有限公司 闪存接口的性能评估方法及相关装置
CN116755639B (zh) * 2023-08-18 2024-03-08 深圳大普微电子科技有限公司 闪存接口的性能评估方法及相关装置

Similar Documents

Publication Publication Date Title
Xu et al. iAware: Making live migration of virtual machines interference-aware in the cloud
US9882832B2 (en) Fine-grained quality of service in datacenters through end-host control of traffic flow
WO2019061615A1 (zh) 基于云监控的负载均衡优化方法及装置
Zhang et al. Comparison of dynamic and static load-balancing strategies in heterogeneous distributed systems
WO2012067431A2 (en) Resource distribution apparatus and method in cloud computing
Xie et al. Pandas: robust locality-aware scheduling with stochastic delay optimality
Guo et al. Pricing {Intra-Datacenter} Networks with {Over-Committed} Bandwidth Guarantee
Rupprecht et al. SquirrelJoin: Network-aware distributed join processing with lazy partitioning
Kashif et al. SLA: A stage-level latency analysisfor real-time communicationin a pipelined resource model
WO2018016659A1 (ko) 플래시 스토리지 대역폭의 비례 지분 스케줄링을 위한 방법 및 시스템
Hu et al. Towards efficient server architecture for virtualized network function deployment: Implications and implementations
Samanta et al. Latency-oblivious incentive service offloading in mobile edge computing
Ha et al. Available bandwidth estimation in public clouds
Zhang et al. A performance comparison of adaptive and static load balancing in heterogeneous distributed systems
WO2019235101A1 (ja) 時刻付与方法、時刻付与装置及びプログラム
JP2014167713A (ja) 情報処理装置、情報処理システム、情報処理装置管理プログラム及び情報処理装置管理方法
Meftah et al. Effect of service broker policies and load balancing algorithms on the performance of large scale internet applications in cloud datacenters
CN112764892A (zh) 管理进程的方法、设备和计算机程序产品
CN113918291A (zh) 多核操作系统流任务调度方法、系统、计算机和介质
Suksomboon et al. Configuring a Software Router by the Erlang-$ k $-Based Packet Latency Prediction
Foroutan et al. A general framework for average-case performance analysis of shared resources
WO2022145613A1 (ko) 다중 코어 할당 장치 및 방법
De Grande et al. Measuring communication delay for dynamic balancing strategies of distributed virtual simulations
Master et al. An infinite dimensional model for a many server priority queue
WO2021020746A1 (ko) 가상 머신 관리 장치 및 방법

Legal Events

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

Ref document number: 16909574

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 290419)

122 Ep: pct application non-entry in european phase

Ref document number: 16909574

Country of ref document: EP

Kind code of ref document: A1