KR101401549B1 - 공간벡터 변환에 근거한 vm 프로비저닝 방법 - Google Patents

공간벡터 변환에 근거한 vm 프로비저닝 방법 Download PDF

Info

Publication number
KR101401549B1
KR101401549B1 KR1020130024985A KR20130024985A KR101401549B1 KR 101401549 B1 KR101401549 B1 KR 101401549B1 KR 1020130024985 A KR1020130024985 A KR 1020130024985A KR 20130024985 A KR20130024985 A KR 20130024985A KR 101401549 B1 KR101401549 B1 KR 101401549B1
Authority
KR
South Korea
Prior art keywords
vector
resource
rti
workload
vectors
Prior art date
Application number
KR1020130024985A
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 KR1020130024985A priority Critical patent/KR101401549B1/ko
Application granted granted Critical
Publication of KR101401549B1 publication Critical patent/KR101401549B1/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

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

본 발명은 공간벡터 변환에 근거한 VM 프로비저닝 방법에 관한 것으로, 더욱 상세하게는, 가상화 또는 클라우드 컴퓨팅 자원관리기술로서 가상 컴퓨팅 자원(가상 머신; virtual machine)들을 제공(provision)하는 방법에 관한 것이다.
본 발명에 의하면, 필요 워크로드(work load)와 VM의 리소스를 벡터 형태로 나타내어 빠르고 즉각적으로 VM을 배치시키는 알고리즘을 적용함으로써, 종래의 방법 대비 처리 속도 면에서 큰 향상을 가져오게 된다.

Description

공간벡터 변환에 근거한 VM 프로비저닝 방법{METHOD FOR PROVISIONING VIRTUAL MACHINE BASED ON SPACE VECTOR TRANSFORMATION SCHEME}
본 발명은 공간벡터 변환에 근거한 VM 프로비저닝 방법에 관한 것으로, 더욱 상세하게는, 가상화 또는 클라우드 컴퓨팅 자원관리기술로서 가상 컴퓨팅 자원(가상 머신; virtual machine)들을 제공(provision)하는 방법에 관한 것이다.
클라우드 서비스(cloud service)는 CPU, RAM, 스토리지, 네트워크와 같은 여러 IT 자원들을 인터넷을 통해 필요한 만큼 빌려 쓰고, 사용한 만큼 비용을 지불하는 서비스로, 클라우드로 표현되는 인터넷상의 서버에서 데이터를 저장, 처리, 네트워크, 콘텐츠 사용 등 IT 관련 서비스를 한 번에 제공하는 컴퓨팅 기술을 말한다. 이를 클라우드 컴퓨팅(cloud computing)이라고 칭한다.
클라우드에서는 최소한의 비용으로 가상 머신(virtual machine, 이하 'VM'이라 한다)을 제공하는 알고리즘이 필요하게 되었고, 이는 선형계획법(linear programming) 방법을 통해 해결할 수 있다. 그러나, 프로비저닝은 시간에 따라 요구가 실시간으로 변할 수 있고, 사용자의 컴퓨팅 자원 또한 시간에 따라 변할 수 있기 때문에 최대한 빠른 의사결정이 필요한 작업이다. 이에 반해, 기존의 선형계획법을 이용한 VM 프로비저닝 알고리즘은, 최적 환경이 제공되지 않으면 성능이 뛰어난 방법이 아니므로 VM 종류가 다양하고 필요한 VM 수가 많은 경우 처리시 시간이 오래 걸릴 수 있다는 문제점이 있어왔다.
KR 2012-0071979 A
"Server-storage virtualization: Integration and load balancing in data centers", Singh, A., High Performance Computing, Networking, Storage and Analysis, 2008, pp.1-12 "Cloud auto-scaling with deadline and budget constraints", M Mao, GRID, 2010 11th IEEE/ACM International Conference, pp.41-48 "Optimal Virtual Machine Placement across Multiple Cloud Providers", S Chalsiri, Services Computing Conference, 2009, APSCC 2009, IEEE Asia-Pacific, pp.103-110 Gaussian Random Walk(위키피디아), http://en.wikipedia.org/wiki/Random_walk#Gaussian_random_walk
본 발명은 이와 같은 문제점을 해결하기 위해 창안된 것으로서, 클라우드 자원 브로커(cloud resource broker)가, 주어진 컴퓨팅 자원을 가지고 최소한의 비용을 통해 VM들을 배치시켜 작업 워크로드를 주어진 시간 내에 완료할 수 있도록 하는데 그 목적이 있다.
이에 따라 본 발명은, 현재 가지고 있는 컴퓨팅 자원이 우리가 필요로 하는 워크로드에 미치지 못할 경우, 적합한 VM을 빠르게 골라 충분한 컴퓨팅 자원을 제공하며, 현재 가지고 있는 컴퓨팅 자원이 우리가 필요로 하는 워크로드보다 클 경우에는, 적합한 VM을 빠르게 제거해 비용을 아끼도록 하는데 그 목적이 있다.
또한 본 발명은, 가상 머신을 생성하는 과정에서 생길 수 있는 VM 간의 간섭(VM interference)을 고려하여 VM을 선택하여, 예상된 VM의 컴퓨팅 자원이 실제와 다르지 않도록 함에 다른 목적이 있다. 시스템에서는 한 물리 머신(physical machine, PM) 안에서 여러 VM 들이 돌아가기 때문에 같은 PM 내에 속한 다른 여러 VM 들이 돌아갈 때 간섭이 생기게 되며, 이에 따라 리소스가 상대적으로 줄어드는 현상이 생기게 되며, 이러한 간섭은 PM 스펙, VM 개수, VM에 들어온 워크로드 양 등에 영향을 받으며 시간에 따라 변하므로, 예상된 VM의 컴퓨팅 자원이 실제와 다르지 않도록 함에는 이러한 간섭을 고려하는 것이 필수적이기 때문이다.
이와 같은 목적을 달성하기 위하여 본 발명에 따른, VM(virtual machine) 프로비저닝(provisioning) 시스템이, 공간벡터 변환에 근거한 VM 프로비저닝을 수행하는 방법은, (a) 클라우드(cloud) 상의 VM 제공자에 의해 제공되는 다수의 VM에 대하여, 상기 각 VM에 해당하는 VM 벡터를, 현재까지 사용자가 확보한 보유 자원 벡터와 합하여, 그 합 벡터가, 상기 사용자가 최종적으로 필요로 하는 워크로드(work load) 벡터보다 작은 경우는 단계(b)로 진행하고, 그 이상인 경우는 단계(c)로 진행하는 단계; (b) 상기 단계(a)의 합 벡터에서 상기 워크로드 벡터에 내린 수선 벡터인 균형 인자(balance factor) 벡터의 크기가 최소가 되도록 하는 VM 벡터를 선택하고, 선택한 VM 벡터와 상기 보유 자원 벡터의 합 벡터를 새로운 보유 자원 벡터로 갱신하여 저장한 후, 해당 VM 벡터를 선택한 횟수를 1 증가시켜 저장하고 단계(d)로 진행하는 단계; (c) 상기 단계(a)의 합 벡터에 해당하는 VM 구입비용이 최소인 VM 벡터를 선택하고, 선택한 VM 벡터와 상기 보유 자원 벡터의 합 벡터를 새로운 보유 자원 벡터로 갱신하여 저장한 후, 해당 VM 벡터를 선택한 횟수를 1 증가시켜 저장하는 단계; 및 (d) 보유 자원 벡터가 상기 워크로드 벡터 이상이 된 경우, 상기 보유 자원 벡터를 이루는데 소요된 하나 또는 둘 이상의 VM 벡터들에 해당하는 VM을, 사용자에게 제공할 VM으로 결정하고, 보유 자원 벡터가 상기 워크로드 벡터보다 작은 경우, 상기 단계(a)로부터의 단계를 다시 수행하는 단계를 포함한다.
본 발명의 다른 측면에 따르면, VM(virtual machine) 프로비저닝(provisioning) 시스템이, 공간벡터 변환에 근거한 VM 프로비저닝을 수행하는 방법은, (a) 현재까지 사용자가 확보한 보유 자원 벡터를 이루는데 소요된 하나 또는 둘 이상의 VM 벡터들에 대하여, 상기 보유 자원 벡터에서 상기 각 VM 벡터를 뺀 차 벡터를 구하는 단계; (b) 상기 단계(a)의 차 벡터 중에서 상기 사용자가 최종적으로 필요로 하는 워크로드(work load) 벡터보다 큰 차 벡터들을 선택하고, 이중에서 상기 워크로드 벡터에 내린 수선 벡터인 균형 인자(balance factor) 벡터의 크기가 최소가 되도록 하는 VM 벡터를 선택하는 단계; (c) 상기 균형 인자(balance factor) 벡터의 크기가 최소가 되도록 하는 VM 벡터에 대하여, 상기 보유 자원 벡터에서 그 VM 벡터를 뺀 차 벡터를 새로운 보유 자원 벡터로 갱신하여 저장한 후, 해당 VM 벡터를 선택한 횟수를 1 감소시켜 저장하는 단계; 및 (d) 상기 갱신된 보유 자원 벡터가 상기 워크로드 벡터보다 기준값 이상 큰 경우는 단계(a)로 진행하고, 기준값 이내로 큰 경우는 상기 보유 자원 벡터를 이루는데 소요된 하나 또는 둘 이상의 VM 벡터들에 해당하는 VM을, 사용자에게 제공할 VM으로 결정하는 단계를 포함한다.
상기 균형 인자(balance factor) 벡터의 크기는,
Figure 112013020444237-pat00001
이고, 여기서
Figure 112013020444237-pat00002
이며, ri(i=1~n)는 현재 가지고 있는 각 자원의 양, rWL ,i(i=1~n)는 필요로 하는 워크로드의 각 자원의 양을 의미하고, n은 자원의 종류의 갯수를 의미할 수 있다.
상기 각 VM 벡터는, 다른 VM 벡터의 간섭에 의한 효과를 적용한 후의 벡터일 수 있다.
상기 워크로드 벡터는,
Figure 112013020444237-pat00003
이고, 상기 보유 자원 벡터는,
Figure 112013020444237-pat00004
이며, 여기서, ri(i=1~n)는 현재 가지고 있는 각 자원의 양, rWL ,i(i=1~n)는 필요로 하는 워크로드의 각 자원의 양을 의미하고, n은 자원의 종류의 갯수를 의미할 수 있다.
본 발명에 의하면, 필요 워크로드(work load)와 VM의 리소스를 벡터 형태로 나타내어 빠르고 즉각적으로 VM을 배치시키는 알고리즘을 적용함으로써, 종래의 방법 대비 처리 속도 면에서 큰 향상을 가져오는 효과가 있다.
도 1은 클라우드의 VM 제공자의 다양한 VM에 대한 과금정책의 실시예를 나타낸 도면.
도 2는 CPU, RAM, I/O의 3개 리소스 축으로 이루어진 공간에서 워크로드(WL), 현재 가지고 있는 자원(p), 워크로드를 제한 시간 내에 작업하기 위해 필요한 리소스(r) 및, 밸런스 상수(b)의 관계를 도시한 도면.
도 3은 도 2과 같은 리소스들로 이루어진 좌표축에서 여러 종류의 가상 머신(VM)들을 표시하는 도면.
도 4는 VM의 생성시, 간섭의 영향을 도시한 도면.
도 5는 도 4에서 간섭 벡터만을 모아서 더한 벡터 TI를 나타내는 도면.
도 6은 P가 WL보다 작은 경우에 대한 재구성(reconfiguration) 알고리즘을 직접적으로 설명하는 도면.
도 7은 P가 WL보다 작은 경우에 대한 재구성(reconfiguration) 알고리즘의 처리 흐름을 나타내주는 도면.
도 8은 P가 WL보다 큰 경우에 대한 재구성(reconfiguration) 알고리즘을 직접적으로 설명하는 도면.
도 9는 P가 WL보다 큰 경우에 대한 재구성 알고리즘의 처리 흐름을 나타내주는 도면.
도 10은 P가 WL보다 큰 경우에 대한 재구성 알고리즘의 다른 실시예로서의 처리 흐름을 나타내주는 도면.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
본 발명의 모든 실시예에 따른 클라우드 시스템은 클라우드 가상 머신의 외주를 통해 워크로드(work load)를 수행하고자 하는 사용자와, 하나 또는 여러 서비스 제공자(service provider)가 제공하는 가상 머신들(VM), 그리고 가격과 성능을 고려해 VM을 최적으로 배치하는 클라우드 자원 브로커로 이루어져 있다. 브로커는 어떤 가상 머신을 추가하거나 제거할 지 여부를 결정하는 작업을 포함한다.
본 발명에서는 이와 같이 클라우드 내에서 VM을 최적으로 배치하는 역할을 담당하는 브로커를 VM 프로비져닝 시스템이라고 칭하기로 한다. 클라우드 사용자 또는 VM 프로비져닝 시스템이 추가/제거할 가상 머신(VM)을 고르는 작업을 공간벡터를 사용하여 계산한다. 이때, 사용자가 리소스 벡터 형태로 워크로드를 정의해야 하며, 다양한 종류의 VM들이 존재하고 가격이 합당하게 책정되어 있어야 한다는 가정이 포함된다. 첫 번째 가정은 워크로드를 벡터 형태로 나타내기 위해 필요한 가정으로, 사용자가 자신이 필요로 하는 컴퓨팅 자원을 알고 있어야 한다. 두 번째 가정은 여러 서비스 제공자들이 특색 있는 여러 VM들을 제공하며, VM의 리소스 크기에 따라 가격을 책정하기 때문에 충분히 할 수 있는 가정이다.
도 1은 VM 제공자가 제공하는 다양한 VM의 과금정책의 일 실시예로서, 아마존 EC2의 과금정책을 보여주고 있다. VM의 크기별로, 고성능 CPU 위주, 높은 메모리 위주, 고용량 I/O 위주 등 다양한 VM들과 합당한 가격이 제시되어 있어 위의 가정을 뒷받침한다.
도 2는 CPU, RAM, I/O의 3개 리소스 축으로 이루어진 공간에서 우리가 해결하고자 하는 워크로드를 그 리소스(resource)를 성분으로 하여 나타내는 워크로드 벡터(WL)와, 현재 사용자가 확보하고 있는 컴퓨팅 자원을 리소스를 성분으로 하여 나타내는 보유 자원 벡터(p)와, 사용자가 워크로드를 제한 시간 내에 작업하기 위해 더 필요한 리소스를 나타내는 잔여 벡터(r)와, p에서 WL에 내린 수선 벡터로 현재 리소스가 얼마나 균형잡혀 있는지를 나타내는 균형 인자(balance factor)를 나타내는 균형 인자 벡터(b)를 나타내는 도면이다.
균형 인자 벡터(b)의 크기는 현재 사용자가 가지고 있는 컴퓨팅 자원이 얼마나 워크로드와 균형있게 가는 지를 나타내기 때문에 균형 인자(balance factor)라고 나타내었다. 또한, 도 3에서는 하나 또는 여러 클라우드 제공자들이 제공하는 가상 머신들을 벡터 형태로 좌표축에 표시하였다.
본 발명의 또 다른 실시예에 따른 클라우드 시스템에서 간섭은 PM 스펙, VM 개수, VM에 들어온 워크로드(work load) 양 등에 영향을 받으며 시간에 따라 변한다. 하지만, 본 발명에서는 편의를 위해 간섭량은 정규분포(Gaussian Distribution)을 따른다고 가정하였다. 따라서 도 4에서와 같이, VM을 생성할 때마다 정규분포에 의해 만들어진 간섭 벡터가 추가된다.
도 2를 참조하면, 벡터는 현재 가지고 있는 컴퓨팅 전력에 해당한다. 우리가 가진 자원이 필요로 하는 자원보다 적을 때, 외부 클라우드 서비스 제공자로부터 VM을 돈을 주고 할당받아야 한다. 도 3은 여러 VM들을, 그 축의 리소스들을 성분으로 하는 벡터 형태로 나타낸 도면이다. 이런 식의 여러 VM 벡터를 사용해 WL를 만족하도록 하는 것이 목표이다. 이를 위해서는 워크로드가 리소스의 형태로 정의되어 있어야 하며, 여러 종류의 VM들도 리소스의 형태로 정의되어 있고 가격이 합당하게 책정되어 있어야 한다는 가정이 필요하다. 벡터의 길이와 가격이 비례한다는 것은 합당한 가정이며 이를 통해 WL과 비슷한 기울기로 VM을 맞춰주면 가격이 최적에 수렴함을 알 수 있다.
즉,
Figure 112013020444237-pat00005
Figure 112013020444237-pat00006
보다 작을 때,
Figure 112013020444237-pat00007
을 맞춰주기 위해 VM들을 아웃소싱해야 한다.
Figure 112013020444237-pat00008
Figure 112013020444237-pat00009
과 기울기가 유사할수록 균형 잡혀있다고 볼 수 있다.
Figure 112013020444237-pat00010
Figure 112013020444237-pat00011
에 미치기 위해 필요한 컴퓨팅 자원을 나타내는 벡터이다. 따라서 이는
Figure 112013020444237-pat00012
와 같다. 따라서
Figure 112013020444237-pat00013
이 성립한다. 또한,
Figure 112013020444237-pat00014
Figure 112013020444237-pat00015
Figure 112013020444237-pat00016
위에 내린 수선으로, 얼마나
Figure 112013020444237-pat00017
Figure 112013020444237-pat00018
과 떨어져 있는지를 나타내는 균형 요소(Balance factor)가 된다.
이때,
Figure 112013020444237-pat00019
이고,
Figure 112013020444237-pat00020
이다.
Figure 112013020444237-pat00021
Figure 112013020444237-pat00022
Figure 112013020444237-pat00023
Figure 112013020444237-pat00024
여기서,
Figure 112013020444237-pat00025
이다.
따라서,
Figure 112013020444237-pat00026
의 크기는, 이하 수학식 1과 같이 된다.
Figure 112013020444237-pat00027
여기서, c는 현재 가지고 있는 cpu 자원, m은 현재 가지고 있는 메모리 자원, i는 현재 가지고 있는 I/O 자원의 양을 의미하며, cWL, mWL, iWL은 필요로 하는 워크로드의 cpu, 메모리, I/O 자원의 양을 의미한다.
위에서는 자원을 cpu, 메모리, I/O로 한 경우의 실시예를 설명했으나, 일반적으로 n 개의 자원을 가질 수도 있다.
이때, 현재 사용자가 확보하고 있는 보유 자원 벡터는
Figure 112013020444237-pat00028
, 필요로 하는 워크로드 벡터는
Figure 112013020444237-pat00029
가 된다.
이때의
Figure 112013020444237-pat00030
는 다음과 같이 주어진다.
Figure 112013020444237-pat00031
여기서
Figure 112013020444237-pat00032
이고,
ri(i=1~n)는 현재 가지고 있는 각 자원의 양, rWL ,i(i=1~n)는 필요로 하는 워크로드의 각 자원의 양을 의미하고, n은 자원의 종류의 갯수를 의미한다.
알고리즘은 기본적으로 VM을 추가했을 때 최고로 균형이 맞는(즉, 가 최소가 되는) VM을 추가하는 것이 목표이다. 단, 하나의 VM을 추가함으로서 주어진 워크로드를 초과하게 되는 경우에는 가장 가격이 싼 VM을 골라 가격을 최소화하고 잉여 리소스를 최소화한다. 도 6 및 도 7을 참조하여 그 알고리즘을 상세히 후술한다.
도 3은 도 2와 같이 리소스들로 이루어진 좌표축에서 여러 종류의 가상 머신 벡터(VM)들을 표시하는 도면이다. 실제로는 여러 VM들이 존재하겠지만, 편의상 VMA, VMB, VMC의 3개 VM 벡터만을 표시하였다.
도 4는 VM(파란선)을 생성할 때, △VM(붉은선)에 해당하는 간섭이 생겨 실제 리소스는 VM' 녹색 점선)으로서, 의도한 양보다 적은 리소스를 갖게 됨을 도시해 주는 도면이다. VM을 생성했을 때, 해당 VM은 한 PM 내의 다른 VM들의 간섭으로 인해 리소스가 줄어드는 효과가 생기게 되는데, 이를 VM 간섭이라고 부른다. 도 3의 그림에서, 파란색 벡터는 VM을 의미하며, 간섭으로 줄어든 벡터는 붉은선으로 표기하였다. 따라서 최종적으로 연두색 벡터에 해당하는 리소스만 남게 되며, 이는 간섭 효과로 인해 줄어든 VM의 리소스 벡터를 의미한다. 실제 생성되는 VM의 리소스와 의도된 리소스 양이 다르기 ?문에 실제 VM들의 리소스 합이 워크로드를 넘지 못한다면 제대로 VM을 할당했어도 주어진 워크로드를 제한 시간 내에 마치지 못하게 될 수 있다. VM 간섭은 PM의 스펙, VM의 개수, VM에 들어온 워크로드양 등에 영향을 받으며 시간에 따라 변한다. 여기서는 VM 간섭의 크기가 평균 m, 분산
Figure 112013020444237-pat00033
2의 정규분포(normal distribution) 을 따른다고 생각하였다. 간섭의 평균 m과 분산
Figure 112013020444237-pat00034
2는 실험적으로 구한다. 즉, 각 리소스 컴포넌트들이 아래와 같은 정규분포를 따를 때,
Figure 112013020444237-pat00035
,
Figure 112013020444237-pat00036
,
Figure 112013020444237-pat00037
이고, VM 간섭의 크기는
Figure 112013020444237-pat00038
와 같이 나타낼 수 있다.
이 때, VM을 n 회 추가했다고 생각하면 VM 간섭 벡터 역시 n 회 누적되게 된다. 이는 각 스텝의 크기가 가우시안 분포를 따르는 가우시안 랜덤 워크(Gaussian random walk)로 생각할 수 있다. 이는 도 4와 같은 형태로 나타낼 수 있다. △VM을 한데 모아 더한 벡터를 TI(total interference) 라고 정의하면 가우시안 랜덤 워크에 의해 TI의 크기는 다음과 같이 나타내어진다.
Figure 112013020444237-pat00039
이 크기는 n 회에 걸쳐 중첩된 간섭의 RMS평균 크기로, 랜덤 워크의 결과가 가우시안 분포를 따른다는 걸 생각했을 때, 표준정규분포표로 환원시킨 후 원하는 지점을 계산하면 대부분의 VM 간섭이 속하는 범위의 크기를 계산할 수 있다. 예를 들어 1.28에 해당하는 지점에서의 표준정규분포값이 0.4이므로
Figure 112013020444237-pat00040
을 만족하는 X를 찾으면
Figure 112013020444237-pat00041
가 되어, 90%의 VM 간섭의 크기가
Figure 112013020444237-pat00042
보다 작음을 알 수 있다. 따라서, 재구성(reconfiguration)을 진행하면서 벡터를 추가하거나 제거할 때, 위로부터 구한 TI의 범위를 고려하면 간섭의 크기를 고려한 VM의 재구성(reconfiguration)이 가능하게 된다.
도 5는 위의 도 4에서 △VM(붉은선)에 해당하는 간섭 벡터만을 모아서 더한 벡터 TI를 나타내는 도면이다.
도 6은 현재 확보한 보유 자원 벡터p가 워크로드 벡터 WL보다 작은 경우에 대하여, WL에 맞추어 VM을 확보해 나가는 재구성(reconfiguration) 알고리즘을 직접적으로 설명하는 도면으로, 도 2와 같이 리소스들로 이루어진 좌표축에서 현재 가진 컴퓨팅 자원(p)를 확장시켜 워크로드(work load)를 해결하기 위해, VM들을 외주하는 방법을 나타내며, 도 7은 p가 WL보다 작은 경우에 대한 재구성(reconfiguration) 알고리즘의 처리 흐름을 나타내주는 도면이다. 즉, 현재 가지고 있는 컴퓨팅 자원이 우리가 필요로 하는 워크로드에 미치지 못할 경우, 적합한 VM을 빠르게 골라 충분한 컴퓨팅 자원을 제공하는 과정이다.
이하의 설명에서, usage[] 배열은 i번째 VM이 몇 번 사용되었는지를 기록하는 변수이다. min과 mini변수는 VM을 채워서 WL를 만족할 수 있게 된 경우, 가장 싼 VM을 추가토록 하기 위해 최소값을 나타내는 변수이다. minb와 minbi변수는 최소의 균형인자 벡터의 크기 b를 만족하는 VM을 추가시키기 위해 최소 b를 구하는 데에 사용된다.
클라우드(cloud) 상의 VM 제공자에 의해 제공되는 다수의 VM 종류별로
Figure 112013020444237-pat00043
를 계산하기 위해 VM 타입 개수를 카운트한다(예를 들어 n개라고 하자)(S710). 해당 VMi가 선택 가능하면(S720),
Figure 112013020444237-pat00044
Figure 112013020444237-pat00045
이상이고
Figure 112013020444237-pat00046
을 선택할 예산이 남아있는 경우(S730), 해당 VMi 가격의 최소값을 min에 기록한다(S741). 즉, 현재까지(i번째) VM 중에 i번째 VM(VMi)가 가장 가격이 낮다면, min을 그 가격값으로 갱신한다. 또한 mini에는 그 i를 기록한다. 이와 같이 n번째 VM까지 다 검토한 후(S750) 가격의 최소값이 min에 기록되고, mini에는 그 해당 i값이 기록되는 것이다.
Figure 112013020444237-pat00047
Figure 112013020444237-pat00048
보다 작고
Figure 112013020444237-pat00049
을 선택할 예산이 남아있는 경우(S730), 수학식 1에 의해
Figure 112013020444237-pat00050
를 계산하여, 의 최소값을 minb에 기록한다.
Figure 112013020444237-pat00052
에서 상기
Figure 112013020444237-pat00053
에 내린 수선 벡터인 균형 인자(balance factor) 벡터 b의 크기
Figure 112013020444237-pat00054
, 즉 현재까지(i번째) VM 중에 i번째 VM(VMi)에 해당하는
Figure 112013020444237-pat00055
가 가장 작다면, minb를 그
Figure 112013020444237-pat00056
값으로 갱신한다. 또한 minbi에는 그 i를 기록한다. 이와 같이 n번째 VM까지 다 검토한 후(S750) 각 VMi에 대한
Figure 112013020444237-pat00057
값 중 최소값이 minb에 기록되고, minbi에는 그 해당 i값이 기록되는 것이다.
n개의 VM 타입에 대하여 모두 위의 과정을 수행한 후, min값이 한 번이라도 갱신되었으면(S761),
Figure 112013020444237-pat00058
usage[mini] = usage[mini]+1
와 같이 보유 자원 벡터(p) 및 usage[](배열에 해당하는 VMi가 윗식과 같이 p를 업데이트하는데 사용된 회수)를 업데이트 한다(S771).
n개의 VM 타입에 대하여 모두 위의 과정을 수행한 후, minb값이 한 번이라도 갱신되었으면(S762),
Figure 112013020444237-pat00059
usage[minbi] = usage[minbi]+1
와 같이 보유 자원 벡터(p) 및 usage[]를 업데이트 한다(S772).
만약 p가 WL보다 작다면 위의 과정을 반복하여 WL를 만족할 때까지 알고리즘을 반복수행하게 된다.
이와 같이 하여, p가 WL 이상이 되었다면, 상기 보유 자원 벡터 p를 이루는데 소요된(합해진) 하나 또는 둘 이상의 VM 벡터들에 해당하는 VM을, 사용자에게 제공할 VM으로 결정하게 되는 것이다.
한편, 위에서
Figure 112013020444237-pat00060
을 선택할 예산이 남아있는지 여부는 체크하지 않을 수도 있다.
도 8은 p가 WL보다 큰 경우에 대한 재구성(reconfiguration) 알고리즘을 직접적으로 설명하는 도면으로, 도 2와 같이 리소스들로 이루어진 좌표축에서 현재 가진 컴퓨팅 자원(p)에서 어떤 VM을 제거했을 때, 워크로드를 만족시키면서 비용을 절감할 수 있는지를 나타내며, 도 9는 p가 WL보다 큰 경우에 대한 재구성 알고리즘의 처리 흐름을 나타내주는 도면이다. 즉, 현재 가지고 있는 컴퓨팅 자원이 우리가 필요로 하는 워크로드보다 클 경우, 적합한 VM을 빠르게 제거해 비용을 아끼도록 하는 과정이다.
usage[] 배열에 VM이 사용된 현황이 나와 있으므로 이를 이용해 VM들을 제거할 수 있다.
현재까지 사용자가 확보한 보유 자원 벡터(p)를 이루는데 소요된 하나 또는 둘 이상의 VM 벡터들에 대하여, 상기 보유 자원 벡터에서 상기 각 VM 벡터를 뺀 차 벡터
Figure 112013020444237-pat00061
를 구하기 위해, p에 소요된 VM 타입 개수를 카운트한다(예를 들어 m개라고 하자)(S910). 해당 VMi가 상기 p를 이루는데 1번 이상 사용된 경우(usage[i]>0)(S920),
Figure 112013020444237-pat00062
을 계산하여
Figure 112013020444237-pat00063
Figure 112013020444237-pat00064
이상이면(S930), 수학식 1에 의해 그 VMi에 대한
Figure 112013020444237-pat00065
를 계산하고,
Figure 112013020444237-pat00066
의 최소값을 minb에 기록한다(S930). 즉 현재까지(i번째) VM 중에 i번째 VM(VMi)에 해당하는
Figure 112013020444237-pat00067
가 가장 작다면, minb를 그
Figure 112013020444237-pat00068
값으로 갱신한다. 또한 minbi에는 그 i를 기록한다. 이와 같이 하여, 현재 p에 사용되었던 모든 VM 즉, m번째 VM까지 다 검토한 후(S950) 각 VMi에 대한
Figure 112013020444237-pat00069
값 중 최소값이 minb에 기록되고, minbi에는 그 해당 i값이 기록되는 것이다.
p에 사용되었던 모든 VM 즉, m개의 VM 타입에 대하여 모두 위의 과정을 수행한 후, minb값이 한 번이라도 갱신되었으면(S960),
Figure 112013020444237-pat00070
Figure 112013020444237-pat00071
와 같이 업데이트된다(S970).
이와 같이 하여, p가 WL 보다 기준값 이내로 크게 되었다면, 상기 보유 자원 벡터 p를 이루는데 소요된(합해진) 하나 또는 둘 이상의 VM 벡터들에 해당하는 VM을, 사용자에게 제공할 VM으로 결정하게 되는 것이다. 물론 p가 WL 보다 아직도 기준값 이상 큰 경우라면 위와 같이 p 및 usage[]를 업데이트 한 후, 다시 S910 단계로 돌아가 위의 과정을 반복한다.
도 10은 p가 WL보다 큰 경우에 대한 다른 재구성 알고리즘의 처리 흐름을 나타내주는 도면이다.
usage를 고려해 처음부터 재구성(reconfiguration)을 진행시키는 방법도 가능하다. 도 10은 아래 알고리즘의 순서도이다.
즉,
Figure 112013020444237-pat00072
으로 놓은 후, 현재 usage에서 사용된 회수값을 초과하지 않도록 처음부터 도 7의 알고리즘에 따라 재구성(reconfiguration)을 수행한다(S1010). 현재 usage에서 사용된 회수값을 초과하지 않도록 제한을 두어 진행하므로, usage에서 남은 것들은 버려진 VM으로 취급한다(S1020).
100: 클라우드의 VM 제공자의 다양한 VM에 대한 과금정책의 실시예

Claims (5)

  1. VM(virtual machine) 프로비저닝(provisioning) 시스템이, 공간벡터 변환에 근거한 VM 프로비저닝을 수행하는 방법으로서,
    (a) 클라우드(cloud) 상의 VM 제공자에 의해 제공되는 다수의 VM에 대하여, 상기 각 VM에 해당하는 VM 벡터를, 현재까지 사용자가 확보한 보유 자원 벡터와 합하여, 그 합 벡터가, 상기 사용자가 최종적으로 필요로 하는 워크로드(work load) 벡터보다 작은 경우는 단계(b)로 진행하고, 그 이상인 경우는 단계(c)로 진행하는 단계;
    (b) 상기 단계(a)의 합 벡터에서 상기 워크로드 벡터에 내린 수선 벡터인 균형 인자(balance factor) 벡터의 크기가 최소가 되도록 하는 VM 벡터를 선택하고, 선택한 VM 벡터와 상기 보유 자원 벡터의 합 벡터를 새로운 보유 자원 벡터로 갱신하여 저장한 후, 해당 VM 벡터를 선택한 횟수를 1 증가시켜 저장하고 단계(d)로 진행하는 단계;
    (c) 상기 단계(a)의 합 벡터에 해당하는 VM 구입비용이 최소인 VM 벡터를 선택하고, 선택한 VM 벡터와 상기 보유 자원 벡터의 합 벡터를 새로운 보유 자원 벡터로 갱신하여 저장한 후, 해당 VM 벡터를 선택한 횟수를 1 증가시켜 저장하는 단계; 및
    (d) 보유 자원 벡터가 상기 워크로드 벡터 이상이 된 경우, 상기 보유 자원 벡터를 이루는데 소요된 하나 또는 둘 이상의 VM 벡터들에 해당하는 VM을, 사용자에게 제공할 VM으로 결정하고, 보유 자원 벡터가 상기 워크로드 벡터보다 작은 경우, 상기 단계(a)로부터의 단계를 다시 수행하는 단계
    를 포함하는 공간벡터 변환에 근거한 VM 프로비저닝 방법.
  2. VM(virtual machine) 프로비저닝(provisioning) 시스템이, 공간벡터 변환에 근거한 VM 프로비저닝을 수행하는 방법으로서,
    (a) 현재까지 사용자가 확보한 보유 자원 벡터를 이루는데 소요된 하나 또는 둘 이상의 VM 벡터들에 대하여, 상기 보유 자원 벡터에서 상기 각 VM 벡터를 뺀 차 벡터를 구하는 단계;
    (b) 상기 단계(a)의 차 벡터 중에서 상기 사용자가 최종적으로 필요로 하는 워크로드(work load) 벡터보다 큰 차 벡터들을 선택하고, 이중에서 상기 워크로드 벡터에 내린 수선 벡터인 균형 인자(balance factor) 벡터의 크기가 최소가 되도록 하는 VM 벡터를 선택하는 단계;
    (c) 상기 균형 인자(balance factor) 벡터의 크기가 최소가 되도록 하는 VM 벡터에 대하여, 상기 보유 자원 벡터에서 그 VM 벡터를 뺀 차 벡터를 새로운 보유 자원 벡터로 갱신하여 저장한 후, 해당 VM 벡터를 선택한 횟수를 1 감소시켜 저장하는 단계; 및
    (d) 상기 갱신된 보유 자원 벡터가 상기 워크로드 벡터보다 기준값 이상 큰 경우는 단계(a)로 진행하고, 기준값 이내로 큰 경우는 상기 보유 자원 벡터를 이루는데 소요된 하나 또는 둘 이상의 VM 벡터들에 해당하는 VM을, 사용자에게 제공할 VM으로 결정하는 단계
    를 포함하는 공간벡터 변환에 근거한 VM 프로비저닝 방법.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 균형 인자(balance factor) 벡터의 크기는,
    Figure 112013020444237-pat00073
    이고,
    여기서
    Figure 112013020444237-pat00074
    이며,
    ri(i=1~n)는 현재 가지고 있는 각 자원의 양, rWL ,i(i=1~n)는 필요로 하는 워크로드의 각 자원의 양을 의미하고, n은 자원의 종류의 갯수를 의미하는 것
    을 특징으로 하는 공간벡터 변환에 근거한 VM 프로비저닝 방법.
  4. 청구항 1 또는 청구항 2에 있어서,
    상기 각 VM 벡터는,
    다른 VM 벡터의 간섭에 의한 효과를 적용한 후의 벡터인 것
    을 특징으로 하는 공간벡터 변환에 근거한 VM 프로비저닝 방법.
  5. 청구항 1 또는 청구항 2에 있어서,
    상기 워크로드 벡터는,
    Figure 112013020444237-pat00075
    이고,
    상기 보유 자원 벡터는,
    Figure 112013020444237-pat00076
    이며,
    여기서, ri(i=1~n)는 현재 가지고 있는 각 자원의 양, rWL ,i(i=1~n)는 필요로 하는 워크로드의 각 자원의 양을 의미하고, n은 자원의 종류의 갯수를 의미하는 것
    을 특징으로 하는 공간벡터 변환에 근거한 VM 프로비저닝 방법.
KR1020130024985A 2013-03-08 2013-03-08 공간벡터 변환에 근거한 vm 프로비저닝 방법 KR101401549B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130024985A KR101401549B1 (ko) 2013-03-08 2013-03-08 공간벡터 변환에 근거한 vm 프로비저닝 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130024985A KR101401549B1 (ko) 2013-03-08 2013-03-08 공간벡터 변환에 근거한 vm 프로비저닝 방법

Publications (1)

Publication Number Publication Date
KR101401549B1 true KR101401549B1 (ko) 2014-06-11

Family

ID=51131343

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130024985A KR101401549B1 (ko) 2013-03-08 2013-03-08 공간벡터 변환에 근거한 vm 프로비저닝 방법

Country Status (1)

Country Link
KR (1) KR101401549B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110002809A (ko) * 2009-07-02 2011-01-10 삼성전자주식회사 신축적 컴퓨팅 시스템 및 환경을 포함하는 컴퓨팅 시스템 및 환경에 대한 실행 할당 비용 평가

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110002809A (ko) * 2009-07-02 2011-01-10 삼성전자주식회사 신축적 컴퓨팅 시스템 및 환경을 포함하는 컴퓨팅 시스템 및 환경에 대한 실행 할당 비용 평가

Similar Documents

Publication Publication Date Title
Guerrero et al. Resource optimization of container orchestration: a case study in multi-cloud microservices-based applications
US9747126B2 (en) Optimization of virtual machines
Xu et al. A novel resource scheduling approach in container based clouds
US20160378520A1 (en) Adjusting virtual machine migration plans based on alert conditions related to future migrations
US20140344808A1 (en) Dynamically modifying workload patterns in a cloud
JP2016505934A (ja) ネットワークリソースの管理
US20210109787A1 (en) Estimating resource requests for workloads to offload to host systems in a computing environment
US20200151629A1 (en) Discovery and generation of organizational key performance indicators utilizing glossary repositories
CN106681834A (zh) 分布式计算方法、管理装置及系统
US10841369B2 (en) Determining allocatable host system resources to remove from a cluster and return to a host service provider
CN110389824A (zh) 处理计算任务的方法、设备和计算机程序产品
US20150355922A1 (en) Selecting a host for a virtual machine using a hardware multithreading parameter
Ostermann et al. Using a New Event‐Based Simulation Framework for Investigating Resource Provisioning in Clouds
WO2021087639A9 (en) Cdn optimization platform
US20130262189A1 (en) Analyzing metered cost effects of deployment patterns in a networked computing environment
CN110347515A (zh) 一种适合边缘计算环境的资源优化分配方法
US20190253488A1 (en) Transaction process management by dynamic transaction aggregation
US10511540B1 (en) Systems and methods of predictive display of cloud offerings based on real-time infrastructure data configurations
US8548881B1 (en) Credit optimization to minimize latency
KR101401549B1 (ko) 공간벡터 변환에 근거한 vm 프로비저닝 방법
Han et al. Distributed loop scheduling schemes for cloud systems
US20200167204A1 (en) Profiling workloads in host systems allocated to a cluster to determine adjustments to allocation of host systems to the cluster
Rawat et al. Quality of service evaluation of SaaS modeler (Cloudlet) running on virtual cloud computing environment using CloudSim
Unnamalai et al. Service-oriented architecture for cloud computing
Rawat et al. Performance evaluation of social networking application with different load balancing policy across virtual machine in a single data center using cloudanalyst

Legal Events

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

Payment date: 20181011

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee