KR101643251B1 - 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법 - Google Patents

컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법 Download PDF

Info

Publication number
KR101643251B1
KR101643251B1 KR1020150060280A KR20150060280A KR101643251B1 KR 101643251 B1 KR101643251 B1 KR 101643251B1 KR 1020150060280 A KR1020150060280 A KR 1020150060280A KR 20150060280 A KR20150060280 A KR 20150060280A KR 101643251 B1 KR101643251 B1 KR 101643251B1
Authority
KR
South Korea
Prior art keywords
workflow
fragment
virtual machine
scheduling
sub
Prior art date
Application number
KR1020150060280A
Other languages
English (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 KR1020150060280A priority Critical patent/KR101643251B1/ko
Application granted granted Critical
Publication of KR101643251B1 publication Critical patent/KR101643251B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 컴퓨팅 워크플로우(computing workflow)를 작업 분할 방식에 기반하여 만들어진 프래그먼트들로 분할한 후, 이 분할된 프래그먼트들을 관리하는 스케줄링 기법에 관한 것으로서, 더욱 상세하게는 클라우드 환경에서의 워크플로우 스케줄링 기술로 워크플로우 각 작업들을 가상 컴퓨팅 자원(가상 머신: virtual machine)위에 배치하는 방법에 관한 것이다.
본 발명에 의하면, 복잡한 워크플로우들을 분할하여 목적에 맞게 스케줄링하므로 스케줄링에 필요한 오버헤드를 크게 줄이면서 전체 워크플로우 요구사항은 맞춰 실행하는 효과가 있다.
또한 다수의 워크플로우 실행요청이 들어왔을 때 사용자가 요청한 데드라인을 지키면서 처리 속도를 크게 향상시킬 수 있으며, 비용을 최소화하므로 워크플로우 관리 시스템이 사용자의 목표를 맞추면서도 사용자가 최소한의 비용을 지불하게 되므로 워크플로우를 관리하면서 동시에 사용자 요구 사항(SLA)를 모두 만족시키는 효과가 있다.

Description

컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법{METHOD FOR SCHEDULING WORKFLOW TO VIRTUAL MACHINES BASED ON TASK FRAGMENTATION SCHEME OF COMPUTING WORKFLOW }
본 발명은 컴퓨팅 워크플로우(computing workflow)를 작업 분할 방식에 기반하여 만들어진 프래그먼트들로 분할한 후, 이 분할된 프래그먼트들을 관리하는 스케줄링 기법에 관한 것으로서, 더욱 상세하게는 클라우드 환경에서의 워크플로우 스케줄링 기술로 워크플로우 각 작업들을 가상 컴퓨팅 자원(가상 머신: virtual machine)위에 배치하는 방법에 관한 것이다.
일반적으로 클라우드 서비스(cloud service)는 CPU, RAM, 스토리지, 네트워크와 같은 여러 IT 자원들을 인터넷을 통해 필요한 만큼 빌려 쓰고, 사용한 만큼 비용을 지불하는 서비스로, 클라우드로 표현되는 인터넷상의 서버에서 데이터를 저장, 처리, 네트워크, 콘텐츠 사용 등 IT 관련 서비스를 한 번에 제공하는 컴퓨팅 기술을 말한다. 이를 클라우드 컴퓨팅(cloud computing)이라고 칭한다.
예를 들면, 게놈 등 과학 실험에 사용되는 어플리케이션은 정해진 순서에 따라 결과적으로 처리되는 워크플로우(workflow)의 형태를 띠는 경우가 많은데, 과학 실험의 규모가 복잡해지고 사용되는 데이터들의 크기가 거대해지면서 고성능 인프라를 천문학적인 돈을 들여 구축하고 유지하는 대신 클라우드 컴퓨팅을 이용하게 되었다. 하지만, 과학자들은 원하는 시간 혹은 비용 이내로 워크플로우를 구동하기 위해 어떤 자원을 선택해야 되는지에 대해 어려워한다. 때문에 워크플로우 실행을 관리하기 위한 워크플로우 관리 시스템이 필요하게 되었다.
워크플로우 관리 시스템은 워크플로우들을 사용자 요구에 맞춰 실행할 수 있도록 워크플로우 구성, 제어, 관리, 실행하는 시스템이다. 워크플로우 관리 시스템의 가장 핵심적인 기능은 워크플로우를 사용자와 협의한 수준(Service Level Agreement; SLA)에 맞추어 실행하도록 스케줄링 하는 것이다. 이를 위해 클라우드 환경에서 워크플로우 작업들을 분할, 제어하여 컴퓨팅을 실행할 필요가 있는데, 이를 제어하는 것이 워크플로우 스케줄링이다. 워크플로우 스케줄링은 각각의 워크플로우 작업(Task)들을 작업들 간의 순서를 유지하면서 적합한 리소스에 각각 매핑시키는 과정이다. 하지만 대부분의 워크플로우 스케줄링 문제는 하나의 워크플로우만 다루고 있다. 하지만 워크플로우 관리 시스템은 사용자가 요청한 워크플로우를 SLA에 맞춰 실행하도록 하는 것이 목적이기 때문에, 다수의 워크플로우를 관리할 필요가 있다. 따라서 단일 워크플로우만을 다루는 기존의 워크플로우 스케줄링 기법은 워크플로우 시스템을 구성하기에 적합하지 않다. 즉 다수의 워크플로우와 각자의 SLA를 전부 고려한 스케줄링이 필요하다는 것이다. 또한, 워크플로우 구조가 점점 복잡해지므로 스케줄링에 필요한 오버헤드가 크다는 단점이 있다.
Van der Aalst, WMP, and Arthur H M ter Hofstede. (2003). "Workflow Patterns." Distributed and Parallel Databases 14: 5-51. Abrishami, Saeid, Mahmoud Naghibzadeh, and Dick Epema. (2010). "Cost-Driven Scheluling of Grid Workflows Using Partial Critical Paths. "2010 11th IEEE/ACM International Conference on Grid Computing: 81-88. Tan, Wei, and Yushum Fan. (2007). "Dynamic Workflow Model Fragmentation for Distributed Execution." Computers in Industry 58: 381-91.
본 발명은 이와 같은 문제점을 해결하기 위하여 창안된 것으로서, 다수의 복잡한 워크플로우들을 처리하기 위해 워크플로우를 단순한 구조를 갖는 프래그먼트들로 분할하고 각각의 프래그먼트들을 사용자 요구에 맞도록 스케줄링 하는데 그 목적이 있다.
이와 같은 목적을 달성하기 위하여 본 발명에 따른 하나 또는 여러 서비스 제공자가 제공하는 가상 머신들, 상기 가상 머신을 제공받아 여러 작업들을 수행하는 사용자, 상기 사용자와 협의한 수준에 맞춰 가상머신을 배치하는 워크플로우 관리 시스템으로 구성되는 클라우드 환경에서, 여러 작업들이 연결되어진 워크플로우를 수행하는 가상 머신을 워크플로우 관리 시스템이 스케줄링하는 방법으로서, (a) 워크플로우 관리 시스템이 여러 작업들이 연결되어진 워크플로우에서 작업의 시작부터 마지막까지 가는 경로(path)들 중, 수행시간이 가장 긴 경로를 임계 경로(critical path)로 정하며, 이 임계 경로에 포함되는 작업들의 집합을 메인 프래그먼트라 하고, 이 메인 프래그먼트의 집합을 제외한 남은 작업들의 경로를 서브 프래그먼트로 나누는 프래그멘테이션 단계; 및 (b) 상기 단계(a)에서 프래그멘테이션 된 상기 메인 프래그먼트는 사용자가 제시한 데드라인에 맞춰 우선적으로 가상머신에 스케줄링하고, 이후 스케줄링 된 상기 메인 프래그먼트에 포함된 작업들의 실행 시간을 바탕으로, 상기 서브 프래그먼트에 서브 데드라인을 할당하고 상기 서브 프래그먼트가 실행가능한 상태가 되면 상기 할당된 서브 데드라인에 맞춰 가상머신에 스케줄링하는 단계; 을 포함하며, 상기 단계 (b)는 (b1) 가상머신을 한 개 사용했을 때의 의무작업을 계산하는 단계; (b2) 상기 단계 (b1)에서 계산된 의무작업에 대하여 진행이 가능한 가상머신이 있는지를 파악하는 단계; 및(b3) 상기 단계 (b2)에서 파악한, 진행이 가능한 가상머신이 있으면, 시간당 지불금액이 작은 가상머신에서 작업을 진행하도록 스케줄링하고, 진행이 가능한 가상머신이 없으면, 가상머신을 하나씩 증가시켜 의무작업을 계산하며 상기 단계 (b2)를 반복하여 스케줄링하는 단계; 을 포함하고, 여기서, 상기 의무작업은 프래그먼트에 포함되는 작업들의 평균예상수행시간(AET)의 합에서 로드(n)을 뺀 작업으로 하기의 수학식
Figure 112016036654072-pat00056

(where Ti is the first task and Te is the last task of fragment F)
과 같고, 상기 로드(n)는 프래그먼트에 속한 작업들의 평균 수행 시간(AET)의 합을 프래그먼트의 로드라고 했을 때, 하나(n)의 가상머신을 스케줄링에 사용 시, 하나(n)의 가상머신이 감당해야 할 상기 로드(n)는 상기 프래그먼트에 속한 작업들의 평균 예상수행시간(AET)의 합에 하나(n)의 가상머신을 빌리는 시간이 전체 프래그먼트의 남은 데드라인 중 차지하는 비율을 곱한 값으로 하기의 수학식
Figure 112016036654072-pat00057

과 같다.
삭제
삭제
삭제
본 발명에 의하면, 복잡한 워크플로우들을 분할하여 목적에 맞게 스케줄링하므로 스케줄링에 필요한 오버헤드를 크게 줄이면서 전체 워크플로우 요구사항은 맞춰 실행하는 효과가 있다.
또한 다수의 워크플로우 실행요청이 들어왔을 때 사용자가 요청한 데드라인을 지키면서 처리 속도를 크게 향상시킬 수 있으며, 비용을 최소화하므로 워크플로우 관리 시스템이 사용자의 목표를 맞추면서도 사용자가 최소한의 비용을 지불하게 되므로 워크플로우를 관리하면서 동시에 사용자 요구 사항(SLA)를 모두 만족시키는 효과가 있다.
도 1은 본 발명에 따른 컴퓨팅 워크플로우에서 임계경로를 기반으로 워크플로우를 프래그먼트로 나누는 것을 보여주는 도면
도 2a 내지 도 2b는 본 발명에 따른 컴퓨팅 워크플로우에서 임계 경로를 구하기 위히 워크플로우 패턴을 일렬로 늘어서 있는 경우와, 병렬로 늘어서 있는 경우를 나타낸 도면
도 3a 내지 도 3b는 본 발명에 따른 컴퓨팅 워크플로우에서 작업이 병렬로 진행되는 경우, 임계 경로를 구하는 과정과 프래그먼트로 나누는 과정을 도식화한 도면
도 4는 본 발명에 따른 컴퓨팅 워크플로우에서 전체 프래그멘테이션 과정을 설명하기 위한 순서도
도 5는 본 발명에 따른 컴퓨팅 워크플로우에서 의무 작업을 구한 후, 가상 머신을 할당하는 과정을 예시적으로 나타낸 도면
도 6a 내지 도 6b는 본 발명에 따른 컴퓨팅 워크플로우에서 서브 데드라인을 할당할 때 발생할 수 있는 두가지 상황을 나타낸 도면
도 7은 본 발명에 따른 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상 머신 스케줄링 방법을 나타낸 순서도
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
본 발명의 일실예에 따른 클라우드 시스템 환경은 클라우드 가상 머신(Virtual Machine; VM)의 외주를 통해 워크로드(work load)를 수행하고자 하는 사용자와, 하나 또는 여러 서비스 제공자(service provider)가 제공하는 가상 머신들(VM), 그리고 가격과 성능을 고려해 가상 머신을 최적으로 배치하는 워크플로우 관리 시스템으로 이루어져 있다.
워크플로우 관리 시스템은 사용자들이 워크플로우 구조와 실행시킬 데드라인을 제공하면 이를 알맞은 클라우드 가상 자원에 배치해 구동한다. 이때, 사용자의 데드라인을 반드시 지켜야 하며, 비용은 최소한으로 사용해야 하는데, 스케줄링을 위해 워크플로우 관리 시스템은 가상머신 타입(type)에 대한 정보와 작업에 대한 정보를 가지고 있어야 한다.
가상머신 타입(type)은 클라우드 서비스 제공자가 제공하는 가상머신의 종류 중 하나로
Figure 112016036654072-pat00001
로 나타내며,
Figure 112016036654072-pat00002
Figure 112016036654072-pat00003
는 각각
Figure 112016036654072-pat00004
의 CPU와 메모리를 나타내고,
Figure 112016036654072-pat00005
Figure 112016036654072-pat00006
를 빌리기 위한 시간당 가격을 나타낸다. 또한, 작업
Figure 112016036654072-pat00007
가 특정 가상머신 타입
Figure 112016036654072-pat00008
위에서 동작할 때 예상되는 예상 수행 시간(Expected Execution Time)을
Figure 112016036654072-pat00009
로 나타내며, 스케줄링 되지 않은 작업
Figure 112016036654072-pat00010
의 평균 예상 수행시간(Average Expected Execution Time)은
Figure 112016036654072-pat00011
로 나타내며, 이는 모든 가상머신 타입에 대한 수행 시간의 평균값으로 다음과 같다.
Figure 112016036654072-pat00058
삭제
본 발명에서 사용되는 워크플로우는 순서가 있는 작업들의 집합으로, 이해를 돕기 위하여 이를 수식으로 나타내기에 편리한 페트리-네트(Petri-net) 모델을 사용한다. 페트리-네트(Petri-net)은 플레이스(place), 트랜지션(Transition)의 2개 노드를 사용하며, 각각을 이어 워크플로우를 만든다. 페트리-네트를 통한 워크플로우는 W=(P, T, A)의 형태로 나타내어진다. 이 때, P={
Figure 112015041717369-pat00013
}는 플레이스(place)의 집합이며, T={
Figure 112015041717369-pat00014
}는 트랜지션(Transtion)의 집합을, A={
Figure 112015041717369-pat00015
}는 플레이스(place)와 트랜지션(Transstion)을 잇는 아크(Arc)의 집합을 의미한다.
워크플로우를 페트리-네트의 형태로 나타낼 때, 기존의 모든 작업들은 트랜지션에 대응되며, 플레이스는 워크플로우의 진행 상황을 나타내어주는 토큰(token)이 위치할 수 있으며, 앞에 있는 트랜지션이 실행될 준비가 끝나면 토큰을 이동시켜 다음 트랜지션을 동작시키게 된다. 자신이 보고 있는 노드 p의 이전 노드는 *p로 나타내며, 프리셋(preset)이라 부른다. 또한, 다음 노드는 p*로 나타내며 포스트셋(postset)이라 부른다. 단, 본 발명에서는 워크플로우가 시퀀스(sequence), AND-split, AND-join 의 3개 패턴만을 갖는다고 가정하였다. 즉 작업들이 일렬로 놓이거나 퍼지거나 모이는 3개 경우만을 고려하고 있으며, p는 현재 작업 경로, *p는 이전 작업 경로, p*는 다음 작업 경로로 표현가능하다.
또한, 본 발명에서의 워크플로우를 프래그먼트로 나누는 과정을 프래그멘테이션(Fragmention)이라 부르며, 프래그먼트는 여러 작업들이 연결되어진 워크플로우 구조의 부분집합으로 F=(
Figure 112016036654072-pat00016
으로 나타낸다.
Figure 112016036654072-pat00017
는 플레이스(place)의 집합으로
Figure 112016036654072-pat00059
가 성립한다.
Figure 112016036654072-pat00019
는 트랜지션(transtion)의 집합으로
Figure 112016036654072-pat00060
가 성립한다.
Figure 112016036654072-pat00021
는 아크(arc)의 집합으로
Figure 112016036654072-pat00061
가 성립한다. SD는 프래그먼트 F의 서브-데드라인으로
Figure 112016036654072-pat00023
로 나타낸다. 이 때,
Figure 112016036654072-pat00024
는 F의 시작 시간이며,
Figure 112016036654072-pat00025
는 F의 데드라인이다.
Figure 112016036654072-pat00026
는 첫 노드와 끝 노드가 F에 연결되어 있는 프래그먼트의 집합이며, 프래그멘테이션은 전체 워크플로우 작업을 프래그먼트로 나누는 과정으로, 모든 작업은 반드시 하나의 프래그먼트에 속해야 한다. 이를 [수학식 1]로 나타내면 다음과 같다.
[수학식 1] When the fragmentation of W yields a set of fragments F={
Figure 112015041717369-pat00027
}, the followings should be satisfied:
· If I ≠ j, then
Figure 112016036654072-pat00062
= 0 where 1≤ i,j≤ㅣ
·
Figure 112015041717369-pat00029
또한 본 발명에서는 워크플로우 임계 경로를 구하는 과정 속에서 워크플로우를 프래그먼트로 나누었으며, 임계 경로는 예상 수행시간이 가장 긴 경로로
Figure 112015041717369-pat00030
= {
Figure 112015041717369-pat00031
}와 같이 임계경로에 속하는 플레이스(place)의 집합과 트랜지션(transtion)의 집합으로 표현할 수 있다.
본 발명의 프래그멘테이션 방식은 여러 작업들이 연결되어진 워크플로우에서 작업의 시작부터 마지막까지 가는 경로(path)들 중, 수행시간이 가장 긴 경로를 임계 경로(critical path)로 정하고, 이 임계 경로에 포함되는 작업들의 집합을 메인 프래그먼트로 두고, 상기 메인 프래그먼트에 포함되는 임계 경로를 제외한 남은 작업들 중에 다시 임계 경로를 구해 서브 프래그먼트로 추가한다. 이러한 과정을 남는 작업이 없을 때까지 반복한다.
도 1은 본 발명에 따른 컴퓨팅 워크플로우에서 임계 경로를 기반으로 워크플로우를 프래그먼트로 나누는 것을 보여주는 도면으로, 복잡한 워크플로우 구조에서 일렬로 나열된 단순한 구조의 프래그먼트로 쪼개진 것을 확인할 후 있다.
프래그멘테이션 과정을 거쳐 얻은 프래그먼트는 순서 관계가 존재하며, 작업이 일렬로 나열된 형태이기 때문에 기존의 복잡한 워크플로우 구조와 비교했을 때 스케줄링이 훨씬 용이하며, 순서 관계가 존재하기 때문에 모든 프래그먼트를 순서에 맞춰 스케줄링하면 워크플로우 전체를 스케줄링 한 효과를 얻을 수 있다. 전체 워크플로우의 임계 경로에 해당하는 메인 프래그먼트에 전체 워크플로우의 사용자가 지정한 데드라인을 할당하면 메인 프래그먼트를 제외한 워크플로우의 남은 작업들의 임계 경로를 스케줄링하기만 하면 서브 프래그먼트 서브 데드라인을 할당할 수 있으며, 이를 반복하면 전체 워크플로우가 분할-정복 방식에 의해 SLA를 만족하면서 스케줄링 된다.
도 2a 내지 도2b는 본 발명에 따른 워크플로우에서 임계 경로를 구하기 위해 워크플로우 패턴을 배치한 도면으로, 도 2a는 일렬로 작업이 늘어서 있는 경우이며, 작업이 일렬로 놓인 경우는 노드 s가 하나의 경로만을 갖는 경우로 |s*|=1인 경우로 생각할 수 있다. 이때, s*은 반드시 임계 경로에 포함될 것이므로 [수학식 2]가 성립한다.
[수학식 2]
Figure 112015041717369-pat00032
반면, 작업이 여러 개로 갈아지는 경우는 노드 s가 여러 경로들을 갖는 경우로|s*|>1 인 경우로 생각할 수 있다. 이때, s 뒤에 오는 노드들은
Figure 112016036654072-pat00063
라고 하면 임계 경로에는 s*의 노드 중 하나만 선택될 것이다. 이를 선택하기 위해 각각의 s*의 원소에 대해
Figure 112016036654072-pat00034
를 계산하고, 가장 수행 시간이 긴 경로를 택한다. 이 때,
Figure 112016036654072-pat00035
는 s*의 모든 원소들이 가장 먼저 전부 모이는 노드이다. 택해진 노드
Figure 112016036654072-pat00036
Figure 112016036654072-pat00037
는 [수학식 3]으로 나타낼 수 있다.
[수학식 3]
Figure 112015041717369-pat00038
Figure 112015041717369-pat00039
이 과정에서 본 발명은 도 3b와 같이 택해지지 못한
Figure 112015041717369-pat00040
들(110, 120)을 서브 프래그먼트에 추가해야 한다. 단,
Figure 112015041717369-pat00041
(100)와 중복되는 경로가 있을 수 있으므로 이를 제거한 후 서브 프래그먼트(110, 120)에 추가해야 한다. 즉, 도 3a의 회색 프래그먼트가 T1에서 브랜치를 만나는 경우인데, 알고리즘에 의해 각각에 대한 임계 경로를 구하여 이를 파랑, 녹색, 노랑색으로 나타낸 것이다. 이 때 파랑색 경로(100)가 가장 큰 수행시간을 가져 택해졌다면, 해당 경로가 전체 워크플로우의 임계 경로로 택해진다. 이때, 남은 녹색(110), 노랑색 경로(120)는 버려지는 것이 아닌, 도 3b와 같이 서브 프래그먼트(110, 120)로 취해진다. 전체 워크플로우에 이 과정을 거쳐 임계 경로를 구하게 되면 임계 경로를 제외한 모든 작업은 하나의 프래그먼트에 속하게 된다.
마지막으로 임계 경로를 서브 데드라인을 전체 데드라인으로 할당하여 프래그먼트에 추가하면 모든 작업이 하나의 프래그먼트에 매핑되는 것을 확인할 수 있다. 또한, 전체 워크플로우의 임계 경로에 해당하는 프래그먼트는 서브 데드라인이 할당되어 있는데, 이를 스케줄링하면 메인 프래그먼트(100)의 서브 프래그먼트(110, 12,...)에 새로이 서브 데드라인을 할당할 수 있다. 서브 프래그먼트(110, 120,...)의 시작과 끝이 메인 프래그먼트(100)에 걸쳐 있기 때문에 서브 프래그먼트(110, 120,...)의 시작과 끝나는 시간을 계산할 수 있기 때문이다. 이 과정을 반복적으로 거치면 모든 프래그먼트에 서브 데드라인을 할당할 수 있다. 이때, 각각의 서브 데드라인을 만족하는 가상 머신 타입에 프래그먼트를 할당하면 전체 워크 플로우의 SLA가 만족된다. 이는 다중 워크플로우에서도 마찬가지로 성립한다. 또한, 기존의 복잡한 구조의 워크플로우를 관리하는 것이 아닌 작업이 일렬로 늘여져있는 프래그먼트를 관리하는 것이기 때문에 스케줄링 알고리즘의 복잡도가 낮아지는 것을 기대할 수 있다.
도 4는 본 발명에 따른 컴퓨팅 워크플로우에서 전체 프래그멘테이션 과정을 설명하기 위한 순서도로, 먼저 전체 워크플로우 임계 경로를 구하기 위하여, 여러 작업들이 연결되어진 전체 워크플로우에서의 작업의 시작과 마지막까지의 작업을 입력받는다(S110),
이후, 실행되는 시작 작업을 임계 경로에 포함하고(S111), 그 다음 실행 작업 경로가 하나인지를 판단한다(S112).
상기 판단결과(S112), 그 다음 실행 작업 경로가 하나이면, 다음 실행 작업 경로를 임계 경로에 포함하고(S113), 실행되는 작업이 작업의 끝인지를 판단한다(S114),
상기 판단결과(S114), 작업의 끝이면 임계경로를 프래그먼트에 포함하고 임계경로에 데드라인을 할당한다(S118).
반면 상기 판단결과(S112), 그 다음 실행 경로가 하나가 아니면, 다음 작업 경로들이 다시 모이는 경로까지의 임계시간을 각각의 경로에 따라 계산한다(S115).
이후, 상기 각각의 경로에 따라 계산된 임계시간 중 임계시간이 가장 긴 경로를 임계 경로에 포함하고(S116), 임계시간이 가장 긴 경로를 뺀 남은 경로를 서브 프래그먼트에 포함한다(S117),
또한, 상기 판단결과(S114), 실행되는 작업이 작업의 끝이 아니면 다음 작업의 경로가 하나인지를 다시 판단한다(S112).
이와 같이 임계 경로를 기반으로 워크플로우를 프래그먼트로 쪼개어 관리함으로써 스케줄링의 복잡도를 낮출 수 있으며, 임계 경로를 기반으로 워크플로우를 프래그먼트로 나눈 후 나눈 프래그먼트를 가상머신에 스케줄링 하는 방법은 다음과 같다.
상기와 같이 프래그멘테이션을 통해 얻은 프래그먼트는 일렬로 나열된 작업이라는 특징이 있으므로 프래그먼트 스케줄링은 상용 클라우드에서 제공하는 가상 머신이 시간당 지불 방식을 택하고 있는 것을 활용한 간단한 알고리즘으로 진행해 스케줄링에 소요되는 오버헤드를 최소화한다.
서브 데드라인이 정해진 프래그먼트는 본 발명에서 스케줄링 가능한 프래그먼트라 칭한다. 또한 프래그먼트의 첫 번째 작업이 실행 가능한 경우를 본 발명에서는 실행 가능한 프래그먼트라 칭한다. 스케줄링 가능하고 실행 가능한 프래그먼트에 대해 가상 머신에 배치되는 알고리즘이 적용되는데, 프래그멘테이션이 끝나면 스케줄링 가능한 프래그먼트는 임계 경로로 이루어진 메인 프래그먼트 하나뿐이므로 임계 경로가 우선적으로 사용자가 제시한 데드라인에 맞춰 스케줄링 된다. 이후, 스케줄링 된 작업들을 토대로 임계 경로 프래그먼트의 서브 프래그먼트들을 서브 데드라인을 할당하게 되면 서브 데드라인을 맞추도록 스케줄링한다. 이 과정을 반복하여 전체 프래그먼트들을 스케줄링하면 모든 작업이 서브 데드라인을 맞추면서 스케줄링된다.
이때 실행에 있어 가장 큰 방향을 미치는 메인 프래그먼트 경로는 우선적으로 데드라인을 맞춰주도록 스케줄링 하는 것이다. 그리고, 작업이 일렬로 나열되어 있기 때문에 1시간마다 적절한 가상 머신 타입을 정해주는 방법으로 스케줄링한다. 프래그먼트에 속한 작업들의 평균 예상 수행 시간(AET)의 합을 프래그먼트의 로드(road)라고 하자. 이때, 하나의 가상 머신을 스케줄링에 사용할 것인데, 하나의 가상 머신이 감당해야 할 로드는 전체 프래그먼트 로드에 그 가상 머신을 빌리는 시간이 전체 남은 데드라인 중 차지하는 비율을 곱한 값으로 특정 가상 머신 타입을 n시간 동안 사용한다면 그 가상 머신이 감당해야할 로드는 [수학식 4]로 나타낼 수 있다.
[수학식 4]
Figure 112016036654072-pat00064
상기 [수학식 4]에서 언급한 값은 n시간 동안 특정 가상 머신 타입을 사용했을 때 가상 머신이 수행해야할 로드를 의미한다. 프래그먼트 내에서 위의 로드에 가장 가까운 위치에 있는 작업을 의무 작업(Mandatory Task)라 칭하고 [수학식 5]로 구한다.
[수학식 5]
Figure 112015041717369-pat00043
where Ti is the first task and Te is the last task of fragment F
상기 [수학식 5]에 의하여 n을 1부터 시작하여 가상머신을 한 개 사용했을 때의 의무 작업을 계산한다. 그 후, 가능한 가상 머신 타입에 대해 의무 작업까지 진행이 가능한지를 파악한다. 가능한 가상 머신 타입이 있으면 가장 저렴한 가상 머신 타입 위에서 작업을 진행하고 남은 작업들은 새로운 프래그먼트에 넣은 후 새로운 데드라인을 할당한다. 이때, 원래 데드라인에서 실행 예상 시간을 제거하며, 가능한 가상 머신 타입이 없으면 n을 증가시켜 가면서 새로 의무 작업을 계산한 후 반복한다.
도 5은 상기와 같이 의무 작업을 구한 후, 실제로 가상 머신을 할당하는 과정을 예시적으로 나타낸 도면이다.
이후 서므 프래그먼트들에 서브 데드라인을 할당하는데, 서브 프래그먼트가 n개의 가상 머신내에서 스케줄링되는 경우는 도 6a와 같이 정확한 예측이 가능하다. 그러나, 스케줄링 된 범위 밖에서 스케줄링되는 경우는 도 6b와 같이 정확한 예측은 불가능하다. 따라서 평균값을 토대로 예측하도록 한다. 시간이 지나면 데드라인이 명확해지면서 정확한 계산이 이루어진다.
먼저, F={T i , T1,...Tj,...Tl,...,Tk,...,Te} 의 서브 프래그먼트 F'가 Tj,Tk 사이에 존재한다고 하자. F의 서브-데드라인이 [S:E], F'의 서브-데드라인이 [S':E']라면, Ti,...,Tk가 VT로 스케줄링 되어 있는 경우는 다음과 같다.
Figure 112016036654072-pat00065
그리고, Ti,...,Tj,...,Tl 는 VT로 스케줄링되어 있지만 Tk 가 스케줄링 되어있지 않으면,
Figure 112016036654072-pat00066
이고, Ti, Tj 모두 스케줄링되어 있지 않으면 서브 데드라인이 모드 존재하지 않는다.
도 7은 본 발명에 따른 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상 머신 스케줄링 방법을 나타낸 순서도로, 모든 프래그먼트가 가상 머신에 할당되어 실행이 완료되었는지를 판단(S210)하여, 완료되지 않았을 경우 프래그먼트가 실행 가능한 프래그먼트이면(S211), 프래그먼트에 포함된 모든 작업들이 가상 머신 하나에 할당되는지를 판단한다(S212).
상기 판단결과(S212), 하나의 가상머신에 모든 작업들이 할당되지 않으면, 의무작업을 계산한다(S213). 상기 의무 작업 시간은 프래그먼트에 포함되는 작업들의 평균 예상 수행 시간(AET)의 합에서 로드(n)을 뺀 최소값을 말하며, 여기서 로드(n)은 프래그먼트에 속한 작업들의 평균 예상 수행시간의 합을 프래그먼트의 로드라고 했을 때 하나의 가상머신을 스케줄링에 적용시, 하나의 가상머신이 감당해야 할 로드(n)는 전체 프래그먼트 로드에 가상머신을 빌리는 시간이 전체 프래그먼트의 남은 데드라인 중 차지하는 비율을 곱한 값으로, 상기 의무 작업까지 실행이 가능한 가상머신 타입이 있으면 의무 작업이 포함되는 가장 저렴한 가상 머신을 할당(S214)하고, 프래그먼트의 서브 프래그먼트에 서브데드라인을 할당한다(S215).
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
100: 메인 프래그먼트
110 ∼140: 서브 프래그먼트

Claims (4)

  1. 하나 또는 여러 서비스 제공자가 제공하는 가상 머신들, 상기 가상 머신을 제공받아 여러 작업들을 수행하는 사용자, 상기 사용자와 협의한 수준에 맞춰 가상머신을 배치하는 워크플로우 관리 시스템으로 구성되는 클라우드 환경에서, 여러 작업들이 연결되어진 워크플로우를 수행하는 가상 머신을 워크플로우 관리 시스템이 스케줄링하는 방법으로서,
    (a) 워크플로우 관리 시스템이 여러 작업들이 연결되어진 워크플로우에서 작업의 시작부터 마지막까지 가는 경로(path)들 중, 수행시간이 가장 긴 경로를 임계 경로(critical path)로 정하며, 이 임계 경로에 포함되는 작업들의 집합을 메인 프래그먼트라 하고, 이 메인 프래그먼트의 집합을 제외한 남은 작업들의 경로를 서브 프래그먼트로 나누는 프래그멘테이션 단계; 및
    (b) 상기 단계(a)에서 프래그멘테이션 된 상기 메인 프래그먼트는 사용자가 제시한 데드라인에 맞춰 우선적으로 가상머신에 스케줄링하고, 이후 스케줄링 된 상기 메인 프래그먼트에 포함된 작업들의 실행 시간을 바탕으로, 상기 서브 프래그먼트에 서브 데드라인을 할당하고 상기 서브 프래그먼트가 실행가능한 상태가 되면 상기 할당된 서브 데드라인에 맞춰 가상머신에 스케줄링하는 단계;
    을 포함하며, 상기 단계 (b)는
    (b1) 가상머신을 한 개 사용했을 때의 의무작업을 계산하는 단계;
    (b2) 상기 단계 (b1)에서 계산된 의무작업에 대하여 진행이 가능한 가상머신이 있는지를 파악하는 단계; 및
    (b3) 상기 단계 (b2)에서 파악한, 진행이 가능한 가상머신이 있으면, 시간당 지불금액이 작은 가상머신에서 작업을 진행하도록 스케줄링하고, 진행이 가능한 가상머신이 없으면, 가상머신을 하나씩 증가시켜 의무작업을 계산하며 상기 단계 (b2)를 반복하여 스케줄링하는 단계;
    을 포함하고,
    여기서, 상기 의무작업은 프래그먼트에 포함되는 작업들의 평균예상수행시간(AET)의 합에서 로드(n)을 뺀 작업으로 하기의 수학식
    Figure 112016036654072-pat00067

    (where Ti is the first task and Te is the last task of fragment F)
    과 같고,
    상기 로드(n)는 프래그먼트에 속한 작업들의 평균 수행 시간(AET)의 합을 프래그먼트의 로드라고 했을 때, 하나(n)의 가상머신을 스케줄링에 사용 시, 하나(n)의 가상머신이 감당해야 할 상기 로드(n)는 상기 프래그먼트에 속한 작업들의 평균 예상수행시간(AET)의 합에 하나(n)의 가상머신을 빌리는 시간이 전체 프래그먼트의 남은 데드라인 중 차지하는 비율을 곱한 값으로 하기의 수학식
    Figure 112016036654072-pat00068

    과 같은 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법.






















  2. 삭제
  3. 삭제
  4. 삭제
KR1020150060280A 2015-04-29 2015-04-29 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법 KR101643251B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150060280A KR101643251B1 (ko) 2015-04-29 2015-04-29 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150060280A KR101643251B1 (ko) 2015-04-29 2015-04-29 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법

Publications (1)

Publication Number Publication Date
KR101643251B1 true KR101643251B1 (ko) 2016-07-28

Family

ID=56681791

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150060280A KR101643251B1 (ko) 2015-04-29 2015-04-29 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법

Country Status (1)

Country Link
KR (1) KR101643251B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021435A (zh) * 2017-12-14 2018-05-11 南京邮电大学 一种基于截止时间的具有容错能力的云计算任务流调度方法
CN109784663A (zh) * 2018-12-20 2019-05-21 西北大学 一种工作流调度方法与装置
US10678597B2 (en) 2018-12-13 2020-06-09 Alibaba Group Holding Limited Event-driven blockchain workflow processing
CN114327526A (zh) * 2022-01-05 2022-04-12 安徽大学 一种移动边缘计算环境中的任务卸载方法及其应用

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169787A (ja) * 2008-01-18 2009-07-30 Nec Corp ワークフロー監視制御システム、監視制御方法および監視制御プログラム
KR20120082598A (ko) * 2011-01-14 2012-07-24 대전대학교 산학협력단 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169787A (ja) * 2008-01-18 2009-07-30 Nec Corp ワークフロー監視制御システム、監視制御方法および監視制御プログラム
KR20120082598A (ko) * 2011-01-14 2012-07-24 대전대학교 산학협력단 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
ABRISHAMI 외 2명. ‘Cost-Driven Scheduling of Grid Workflows Using Partial Critical Paths’. 2010 11th IEEE/ACM International Conference on Grid Computing, 2010, pp.81-88* *
Abrishami, Saeid, Mahmoud Naghibzadeh, and Dick Epema. (2010). "Cost-Driven
Distributed and Parallel Databases 14: 5-51.
Scheluling of Grid Workflows Using Partial Critical Paths. "2010 11th IEEE/ACM International Conference on Grid Computing: 81-88.
Tan, Wei, and Yushum Fan. (2007). "Dynamic Workflow Model Fragmentation for Distributed Execution." Computers in Industry 58: 381-91.
Van der Aalst, WMP, and Arthur H M ter Hofstede. (2003). "Workflow Patterns."
최경훈 외 2명. ‘워크플로우 작업의 효율적인 배치를 위한 다단계 워크플로우 그래프 분할 기법’. 정보과학회논문지: 데이타베이스 제30권 제3호, 2003.6, pp.310-319* *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021435A (zh) * 2017-12-14 2018-05-11 南京邮电大学 一种基于截止时间的具有容错能力的云计算任务流调度方法
CN108021435B (zh) * 2017-12-14 2022-01-04 南京邮电大学 一种基于截止时间的具有容错能力的云计算任务流调度方法
US10678597B2 (en) 2018-12-13 2020-06-09 Alibaba Group Holding Limited Event-driven blockchain workflow processing
KR102121159B1 (ko) * 2018-12-13 2020-06-10 알리바바 그룹 홀딩 리미티드 이벤트-구동 블록체인 워크플로우 프로세싱
CN109784663A (zh) * 2018-12-20 2019-05-21 西北大学 一种工作流调度方法与装置
CN109784663B (zh) * 2018-12-20 2022-11-25 西北大学 一种工作流调度方法与装置
CN114327526A (zh) * 2022-01-05 2022-04-12 安徽大学 一种移动边缘计算环境中的任务卸载方法及其应用
CN114327526B (zh) * 2022-01-05 2024-05-28 安徽大学 一种移动边缘计算环境中的任务卸载方法及其应用

Similar Documents

Publication Publication Date Title
US11275609B2 (en) Job distribution within a grid environment
CN107343045B (zh) 云计算系统及用于控制服务器的云计算方法和装置
US10691647B2 (en) Distributed file system metering and hardware resource usage
Byun et al. Cost optimized provisioning of elastic resources for application workflows
US9329888B2 (en) Computing optimized virtual machine allocations using equivalence combinations
KR101643251B1 (ko) 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법
US9483247B2 (en) Automated software maintenance based on forecast usage
CN109478147B (zh) 分布式计算系统中的自适应资源管理
US7743148B2 (en) Server migration planning system and server migration planning method
US10360074B2 (en) Allocating a global resource in a distributed grid environment
CN110058966A (zh) 用于数据备份的方法、设备和计算机程序产品
JP6741941B2 (ja) 仮想マシン管理プログラム、仮想マシン管理方法、及び、仮想マシン管理装置
CN109257399B (zh) 云平台应用程序管理方法及管理平台、存储介质
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
US20150355922A1 (en) Selecting a host for a virtual machine using a hardware multithreading parameter
CN111373372A (zh) 在分布式计算环境中对应用分配优先级以进行对角缩放
CN111190712A (zh) 一种任务调度方法、装置、设备及介质
US20140137122A1 (en) Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements
CN106934539B (zh) 一种带有期限和费用约束的工作流调度方法
Seth et al. Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems
Genez et al. Time-discretization for speeding-up scheduling of deadline-constrained workflows in clouds
CN106407007B (zh) 面向弹性分析流程的云资源配置优化方法
US9319291B2 (en) Server system, management device, server management method, and program
CN111373374A (zh) 分布式计算环境中的工作负载的自动对角缩放
AbdelBaky et al. Enabling distributed software-defined environments using dynamic infrastructure service composition

Legal Events

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

Payment date: 20190625

Year of fee payment: 4