KR20150092492A - 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법 - Google Patents

클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법 Download PDF

Info

Publication number
KR20150092492A
KR20150092492A KR1020140012932A KR20140012932A KR20150092492A KR 20150092492 A KR20150092492 A KR 20150092492A KR 1020140012932 A KR1020140012932 A KR 1020140012932A KR 20140012932 A KR20140012932 A KR 20140012932A KR 20150092492 A KR20150092492 A KR 20150092492A
Authority
KR
South Korea
Prior art keywords
virtual machine
node
performance
nodes
data center
Prior art date
Application number
KR1020140012932A
Other languages
English (en)
Other versions
KR101557747B1 (ko
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 KR1020140012932A priority Critical patent/KR101557747B1/ko
Publication of KR20150092492A publication Critical patent/KR20150092492A/ko
Application granted granted Critical
Publication of KR101557747B1 publication Critical patent/KR101557747B1/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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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)
  • Multi Processors (AREA)

Abstract

본 발명은 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법에 관한 것으로서, 노드 성능 데이터베이스, 상기 노드 성능 데이터베이스에서 불러온 노드 리스트를 가지며 데이터센터를 관리하는 데이터센터 브로커 및 상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드에 가상머신을 생성하는 가상머신 생성 제어기와 가상머신의 이주를 제어하는 가상머신 이주 제어기를 포함하는 가상머신 할당 제어 시스템으로 구성되는 서비스 제공자 하이퍼바이저(Service Provider's Hypervisor); 및 노드들 및 상기 노드들의 성능을 분석하고 평가하여 상기 노드 성능 데이터베이스에 저장하는 노드 성능 분석기를 포함하는 데이터센터를 포함함으로써, 고성능 노드의 사용률을 증가시켜 전체 컴퓨터 자원을 효율적으로 사용하고, 노드들의 메모리 관리를 통해 단편화 현상을 줄일 뿐 아니라 신속한 가상머신의 할당이 가능하다.

Description

클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법{SYSTEM AND METHOD FOR ALLOCATING VIRTUAL MACHINE FOR EFFECTIVE USE OF MULTI RESOURCE IN CLOUD}
본 발명은 가상머신 할당 시스템 및 방법에 관한 것으로, 더욱 상세하게는 데이터센터에서 관리하는 노드들의 성능을 분석하고 가상머신이 할당될 때 분석한 결과를 바탕으로 할당할 노드를 선택하고 관리하여 클라우드 서비스에서 노드들을 효율적으로 사용하는 가상머신 할당 시스템 및 방법에 관한 것이다.
소셜 네트워크 서비스 등의 발달로 개인에 의해 생성 및 전달되는 정보의 양이 방대해짐으로 인해 발생하는 트래픽 초과 등의 문제는 소비자들마저 직접 느낄 수 있을 정도로 심각해지고 있다. 이를 대처하기 위해 많은 기업들은 클라우드 컴퓨팅을 통해 부하 분산과 비용 문제의 해결 방안으로 사용하고 있다. 뿐만 아니라 개인에게 고사양의 자원을 서비스의 형태로 편의성을 제공하는 등 클라우드 컴퓨팅은 더 이상 IT 전공자들만의 전유물이 아니게 되었다.
클라우드 컴퓨팅에서는 컴퓨팅자원을 가상화하여 사용자의 요구를 처리하는 가상머신을 생성하고 이를 데이터센터에 등록된 노드에 할당한다. 이 과정에서 노드의 공정한 사용과 사용자 요구사항을 충족시키기 위해 FCFS, 라운드로빈 등의 가상머신 할당 기법을 사용한다.
구체적으로 살펴보면, 가상머신 할당 시스템에서 가상머신을 생성하는데 중요한 기술인 가상화는 사용자가 이용하는 물리적 자원에서 논리적인 형태를 가진 자원을 나타낸다.
클라우드 컴퓨팅에서는 사용자의 요구사항을 충족시키기 위한 서비스를 제공하기 위해 자원을 추상화하는 기술을 통해 가상화된 컴퓨터 리소스를 가상머신을 통해 제공한다. 가상화의 목적은 서비스와 컴퓨터 자원 사이에 레이어를 통해 컴퓨터 자원에 대한 접근 및 인프라 관리를 간편하게 하는 것이다.
클라우드 컴퓨팅에서 서비스를 제공하기 위해선 프로바이더는 가상화 기술을 이용한 가상머신을 통해 컴퓨팅 자원을 논리적인 게스트 OS(Operation System)를 생성하는데, 게스트 OS를 생성할 호스트 OS를 선택하는 것은 서비스 품질에 크게 반영된다. 클라우드 인프라 시스템이 요구되는 컴퓨팅 자원에 의해 선택된 호스트 OS가 성능 부족의 이유로 게스트 OS의 생성이 불가능하다면 서비스 제공이 불가능하고 클라우드 서비스의 장점인 효율성, 경제적 부담 감소 등의 효과를 얻을 수 없다.
기존의 클라우딩 컴퓨터에서 가상화된 자원들의 할당을 위해 연구된 내용으로는 FCFS(First Come First Serve), 라운드로빈(Round-Robin), 매치메이킹(Match-Making)이 있다.
첫째, FCFS(First Come First Serve)는 비선점형 스케줄링으로 먼저 들어온 서비스를 먼저 처리하는 FIFO(First In First Out)로 작동하는 간단한 스케줄링이다. 대표적인 예로 자료구조 중 Queue가 FCFS의 형태로 구현된다.
도 5는 FCFS의 구조도로서, FCFS는 빠른 응답을 요구하는 대화식 시스템에는 적합하지 않으며, 일괄처리 시스템에 매우 효율적이다. FCFS의 단점은 노드의 구분이나 분석하는 과정이 없기 때문에 처리를 기다리는 가상머신이 노드에서 처리중인 가상머신이 끝나기만을 기다리는 호위효과(Convoy Effect)가 발생할 수 있다는 점이다. 이는 프로세서의 균형이 맞지 않는 불균형 현상을 일으킨다는 의미이다.
작업이 이루어지지 않는 노드에 먼저 들어온 사용자의 요청을 처리하는 형태이지만, 클라우드 컴퓨팅에서 노드에 가상머신을 할당하는데 사용되는 FCFS는 데이터센터에 등록된 순서대로 사용되지 않는 노드에 가상머신 할당을 요청한다.
FCFS는 구현이 단순하지만, 데이터센터에 노드가 등록된 순서에 따라 사용자의 요청을 처리하는 가상머신을 할당하기 때문에 처리량이 많은 사용자의 요구의 경우 저사양 노드에 할당이 되더라도 모두 처리될 때 까지 기다려야하기 때문에 작업의 처리 속도가 전체적으로 증가한다.
FCFS를 기반으로 연구된 대표적인 가상머신 할당 시스템은 클라우드심에서 기본으로 제공되는 가상머신 할당 스케줄링이 있다. 클라우드심에서는 가상머신의 할당 요청이 들어오면 사용자가 데이터센터 내에 등록된 노드들 중 사용되지 않는 코어의 수가 가장 많은 노드에 차례로 가상머신을 할당한다.
도 6은 'Xen 환경에서 스케줄링 지연을 고려한 가상머신 우선순위 할당 기법' 연구의 가상머신 할당 시스템으로서, 이는 물리적 자원의 가상화 기술을 논리적으로 구현한 가상머신의 모니터링 기술을 제공하는 Xen에서 사용하는 SEDF(Simple Earliest Deadline First)를 기반으로 하여 처리가 종료된 가상머신을 반환한 노드가 미처리 중인 가상머신을 가진 노드에서 미처리된 가상머신을 가져와 대신 처리하는 가상머신 할당 기법을 제안한다. 이 기법에서 종료된 가상머신을 반환한 노드는 미처리된 가상머신을 가져와 FCFS로 가상머신을 처리한다.
둘째, 라운드로빈(Round-Robin, 순환할당)은 선점형 스케줄링으로 요청된 작업에 별도의 우선순위를 두지 않고 시간 단위로 번갈아가면서 가상머신을 할당하는 스케줄링이다. 모든 노드들에 우선순위 등에 제약을 받지 않고 번갈아가며 노드들을 사용한다.
라운드로빈이 가상머신을 다른 노드에 할당하기 위해서는 가상머신이 노드에 머무는 시간인 규정시간량을 정하고 해당 노드에서 가상머신의 실행이 규정시간을 지나면 다음 노드로 가상머신을 할당한다. 라운드로빈의 성능은 규정시간량에 크게 영향을 받는다. 대표적인 OS인 리눅스에서는 우선순위와 동작에 따라 규정시간량의 크기가 변동되며 100ms를 기준으로 하며, 윈도우XP에서는 전면 또는 후면 작업에 따라 크기가 변동되며 20ms를 기준으로 한다. 규정시간량이 1μsec인 경우 라운드로빈을 프로세서 공유(Processor Sharing)라고 칭하며, 프로세서 속도가
Figure pat00001
(
Figure pat00002
: 프로세스 개수)로 실행되는 것처럼 보이는 것을 말한다.
도 7은 라운드로빈의 구조도이며, 클라우드 컴퓨팅에서 라운드로빈을 가상머신 할당을 위해 쓰는 대표적인 시스템으로 유칼립투스 시스템(Eucalyputes Systems)의 유칼립투스(Eucalyptus)가 있다. 유칼립투스에서는 가상머신 할당이 가능한 노드들을 번갈아가며 사용하고, 할당 가능한 다른 노드가 발견될 때까지 계속 한 노드에서 작업을 진행한다.
유칼립투스에는 라운드로빈 외에 가상머신의 할당과 실행이 가능한 가장 먼저 발견된 노드를 선택하는 그리디(Greedy)와 사용되지 않는 슬립 상태의 노드들 중 가만 먼저 Wake-Up되는 노드를 선택하는 Power-Save 등이 있다.
셋째, 매치메이킹(Match-Making)은 분산 컴퓨팅 환경에서 대용량계산을 지원하기 위해 미국의 Wisconsin University에서 시작한 프로젝트 중 하나이다. 매치메이킹은 가상머신의 요구사항을 만족하는 노드에 연결하기 위해 가장 적합한 노드를 찾은 후 가상머신을 할당한다.
도 8은 매치메이킹의 구조도로서, 도 8을 참조하면, 제공자(Provider)가 매치메이커에 데이터센터의 노드들이 정보를 전달(과정 ①)한다. 요청자(Requester)가 자원을 요청을 하면 가상머신에 자원을 할당할 노드를 선정하기 위해 매치메이커에 서비스를 요청(과정 ②)한다. 매치메이커에서는 요청자가 자원을 요구하면 제공자를 통해 받은 노드의 정보 중 가상머신이 요구하는 자원에 적합한 노드의 정보를 제공(과정 ③)하면, 요청자는 제공자에게 가상머신 할당 서비스를 요청(과정 ④)하고, 제공자는 요청자의 요구에 맞는 노드에 가상머신을 할당(과정 ⑤)하여 서비스를 제공한다. 여기서 매치메이커는 요구사항 해결은 제공자와 요청자 사이에서 직접 해결하도록 노드 정보만을 제공하며, 중계역할은 하지 않는다.
클라우드 컴퓨팅에서 매치메이킹은 가상머신의 요구사항을 만족하는 노드들의 정보를 분류하여 사용자의 요구에 맞는 노드들에 순차적으로 가상머신을 할당한다. 매치메이킹을 가상머신 할당 시스템으로 이용하는 대표적인 클라우드 서비스 시스템에는 오픈네뷸라(OpenNebula)가 있다. 오픈네뷸라에서는 CPU 사용량이 가상머신의 요구사항을 만족할 수 있는 노드들의 정보를 제공하여 가상머신을 할당한다.
살펴본 바와 같이, 기존에 연구되었던 가상머신 할당 시스템은 전체 노드의 사용률의 차이를 최소화하여 장비의 공정한 사용을 목표로 하였다. 그러나 클라우드 시스템의 장기간 사용을 고려하지 않아 장비가 추가되었을 때, 노드들의 성능 차이를 반영하지 못해 고성능의 노드가 공정한 사용의 기준에 의해 자주 쓰이지 못하는 현상이 발생하게 되었다.
대한민국 공개특허공보 제10-2010-0092850호(공개일 2010.08.23.) 대한민국 공개특허공보 제10-2012-0071979호(공개일 2012.07.03.)
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 데이터센터 내의 노드들을 분석하여 고성능의 노드가 우선적으로 선택될 수 있도록 우선순위를 부여함으로써 고성능 노드의 사용률을 늘려 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템은, 노드 성능 데이터베이스, 상기 노드 성능 데이터베이스에서 불러온 노드 리스트를 가지며 데이터센터를 관리하는 데이터센터 브로커, 및 상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드에 가상머신을 생성하는 가상머신 생성 제어기와 가상머신의 이주를 제어하는 가상머신 이주 제어기를 포함하는 가상머신 할당 제어 시스템으로 구성되는 서비스 제공자 하이퍼바이저(Service Provider's Hypervisor); 및 노드들, 및 상기 노드들의 성능을 분석하고 평가하여 상기 노드 성능 데이터베이스에 저장하는 노드 성능 분석기를 포함하는 데이터센터를 포함하는 것을 특징으로 한다.
한편, 본 발명의 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 방법은, 클라우드 서비스가 시작되면, 노드들의 성능 분석을 위해 데이터센터 내의 노드들을 탐색하는 단계; 상기 성능 분석 결과에 가중치를 부여하여 노드 성능 분석 데이터베이스에 저장하는 단계; 사용자로부터 가상머신 할당 요청이 들어오면, 상기 노드 성능 분석 데이터베이스로부터 불러온 노드 리스트에서 노드 정보를 조회하는 단계; 상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드를 선택하는 단계; 및 상기 최적의 노드에 가상머신을 할당하는 단계를 포함하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 의한 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법에 따르면, 새로운 노드가 추가되었을 때 데이터센터에서 관리하는 노드들의 성능을 분석하고, 분석된 결과를 기준으로 최적의 노드에 사용자의 요구사항이 적용된 가상머신을 할당하도록 설계함으로써, 이를 통해 고성능 노드의 사용률을 증가시켜 전체 컴퓨팅 자원을 효율적으로 사용하고, 노드들의 메모리 관리를 통해 단편화 현상을 줄일 뿐 아니라 신속한 가상머신의 할당이 가능하다.
도 1은 본 발명의 일 실시예에 따른 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템의 전체 구성도이다.
도 2는 본 발명의 일 실시예에 따른 가상 머신 할당이 이루어지는 과정을 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 노드의 성능을 분석하기 위한 알고리즘이다.
도 4는 본 발명의 일 실시예에 따른 노드 리스트에서 가상머신을 할당하기에 최적의 노드를 찾기 위한 알고리즘이다.
도 5는 종래 가상머신 할당 시스템인 FCFS의 구조도이다.
도 6을 Xen 환경에서 스케줄링 지연을 고려한 가상머신 우선순위 할당 기법을 사용하는 가상머신 할당 시스템의 구조도이다.
도 7은 종래 가상머신 할당 시스템인 라운드로빈의 구조도이다.
도 8은 종래 가상머신 할당 시스템인 매치메이킹의 구조도이다.
이하, 본 발명의 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템의 전체 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 가상머신 할당 시스템(1)은 노드 성능 분석기(Node Performance Analyzer)(11) 및 노드들(12)을 포함하는 데이터센터(10)와; 노드 성능 데이터베이스(Node Performance Database)(21), 데이터센터 브로커(22) 및 가상머신 할당 제어 시스템(23)으로 구성되는 서비스 제공자 하이퍼바이저(Service Provider's Hypervisor)(20)를 포함한다.
먼저, 시스템(1)은 클라우드 서비스가 시작되면 NC(Network Computer)와 연결된 모든 데이터센터 내의 노드들(nodes)(12)을 탐색한다. 그 후, 시스템(1)은 사용자가 자원을 요구하면 노드 성능 데이터베이스(21)에서 노드들의 정보를 불러온다.
다음으로, 데이터센터(10)는 노드 성능 분석기(Node Performance Analyzer)(11)와, 노드들(12)을 포함한다.
노드 성능 분석기(11)는 시스템(1)이 노드를 탐색하는 동안 LU 분해 등을 이용하여 노드들(12)의 성능을 분석을 하고, 분석된 결과를 소정의 성능 평가 기준을 통해 고성능 순으로 재 정렬하며, 이를 노드 성능 데이터베이스(21)에 저장한다. 노드 성능 분석기(21)의 자세한 동작은 아래에서 구체적으로 설명된다.
마지막으로, 서비스 제공자 하이퍼바이저(20)는 노드 성능 데이터베이스(Node Performance Database)(21)와, 데이터센터 브로커(DataCenter Broker)(22)와, 가상머신 할당 제어 시스템(Virtual Machine Allocate Control System)(23)을 포함한다.
데이터센터 브로커(22)는 클라우드 시스템에서 데이터센터를 관리하고 중재하는 역할을 한다. 데이터센터 브로커(22)는 노드 성능 데이터베이스(21)에서 불러온 노드 리스트(node list)를 가지며, 이러한 노드 리스트는 노드 성능 데이터베이스(21)에 있는 모든 데이터센터의 노드 정보로 구성된다.
가상머신 할당 제어 시스템(23)은 가상머신 생성 제어기(Virtual Machine Created Controller)(25) 및 가상머신 이주 제어기(Virtual Machine Migrated Controller)(24)를 포함하며, 가상머신 할당의 생성과 이주 등 모든 것을 제어한다. 가상머신 생성 제어기(25)는 사용자가 자원을 요구하면 사용자가 요구한 자원을 가상화하여 가상머신을 생성하고, 가상머신 이주 제어기(24)는 시스템 작동 중 특수 상황에 의해 다른 노드로 이주를 할 때 가상머신의 이주를 제어한다. 이때, 가상머신 생성 제어기(25)와 가상머신 이주 제어기(24)는 시스템에 변동 사항을 제어할 때 데이터센터 브로커(22)에 있는 노드 리스트로부터 노드 정보를 참고하여 필요한 정보를 얻는다. 또한, 본 가상머신 할당 제어 시스템(23)에서는 가상머신을 할당할 노드를 선택하기 위해 고성능 순으로 정렬된 노드 리스트 중 요구 조건에 만족하는 노드 리스트를 별도로 생성하여 그 중 가장 최적의 노드 혹은 사용자 레벨에 적합한 노드에 가상머신을 생성한다.
여기서, 데이터센터(10)의 노드 성능 분석기(11)에 대해 구체적으로 설명하면, 노드 성능 분석기(11)는 데이터센터(10)에서 관리하는 노드들(12)의 성능을 분석하고 평가한다.
먼저, 본 발명의 일 실시예에 따른 노드 성능 분석기(11)는
Figure pat00003
분해(Decomposition)와 가우시안 소거법(Gaussian Elimination)을 이용한 역행렬을 구하는 과정을 이용하여 노드를 평가하기 위한 지표를 정한다.
Figure pat00004
분해는 행렬
Figure pat00005
를 하 삼각행렬
Figure pat00006
과 상 삼각행렬
Figure pat00007
로 분해하는 방법이다. 즉,
Figure pat00008
의 모양을 가지는 행렬
Figure pat00009
Figure pat00010
의 모양으로 변형하여 문제를 해결한다.
Figure pat00011
분해는 역행렬을 구하는 것 뿐아니라 연립방정식의 해를 구할 때도 사용된다.
Figure pat00012
상 삼각행렬 U는 행렬 A의 행 사다리꼴(RREF, Reduced Row Echelon Form)로 구성되며 하 삼각행렬 L은 상 삼각행렬 U의 성분을 구하면서 사용되는 값으로 구성된다. 행 사다리꼴은 표 1과 같은 성질을 만족한다.
LU분해는 행렬 A를 A= LU로 분해하는 방법에 따라 Doolittle 알고리즘과 Crout 알고리즘으로 구분된다. Doolittle 알고리즘은 하 삼각행렬 L의 대각성분이 1이 되도록 분해한다. Doolittle 알고리즘으로 행렬을 분해할 때 상 삼각행렬 U는 가우스 소거법의 전진소거를 통해 행 사다리꼴이 되고, A=LU을 역으로 이용하여 하 삼각행렬 L을 구한다.
Crout 알고리즘은 상 삼각행렬 U의 대각성분이 1이 되도록 분해한다. 상 삼각행렬 U의 성분은 행렬 A의 성분을 하 삼각행렬 L에서 행의 첫 번째 성분으로 나눈 것으로 구할 수 있다. 하 삼각행렬 L은 첫 열은 행렬 A에서 복사하고 두 번째 열부터는 L의 앞 열의 성분과 U의 해당 행의 첫 번째 성분을 곱한 값을 행렬 A의 성분에서 빼는 과정으로 값을 구한다. 이를 수식화하면 다음과 같다.
Figure pat00013
은 하 삼각행렬 L의 각 행의 첫 번째 요소, 즉 첫 번째 열로 행렬 A의 각 행의 첫 번째 요소
Figure pat00014
을 가진다. 삼 삼각행렬 U의 첫 번째 행
Figure pat00015
는 하 삼각행렬 L의 (1,1) 요소를 행렬 A의 첫 번째 행렬의 각 요소에 나눠준 값이다. 여기서 j는 상 삼각행렬 U의 각 열의 번호이다.
Figure pat00016
하 삼각행렬 L의 첫 번째 열을 제외한 나머지 값
Figure pat00017
는 행렬 A의 요소에 하 삼각행렬 Li번째 행의 j-1번째까지의 요소와 상 삼각행렬 Uj열의 j-1번째까지의 요소를 곱한 것의 합을 뺀 값이다.
Figure pat00018
는 먼저 상 삼각행렬 Li번째 행의 i-1까지, 하 삼각행렬 j번째 열의 Ui-1까지의 각 요소를 곱한 것들의 합에서 행렬
Figure pat00019
값을 빼고, 하 삼각행렬 L의 대각요소로 나눈 값이다.
본 발명에서는 보편적으로 사용되는 Doolittle 알고리즘을 채택하여 행렬 AA= LU 형태로 변환 후 역행렬을 구할 수 있다.LU 분해를 활용하여 역행렬을 구하는 과정은 표 2와 같다.
Figure pat00020
Figure pat00021
행렬을 LU 분해 후 역행렬을 구하면 역행렬을 구하는 기본적인 기법인 가우스 소거법을 사용하는 방법보다 행렬식(Determinant)을 구하는 것이 훨씬 쉽기 때문에 행렬의 크기가 커지더라도 상대적으로 연산시간의 증가가 눈에 띄지 않는다.
그 뿐 아니라 삼각행렬의 행렬식은 모든 대각원소의 곱이기 때문에 가우스 소거법의 연산시간을 대폭적으로 줄일 수 있다. 표 3은 가우스 소거법과 LU 분해 후 가우스 소거법의 연산속도를 비교한 것으로서, 행렬의 크기가 커질수록 일반적인 가우스 소거법보다 LU 분해 후 가우스 소거법의 연산 속도 차이가 커지는 것을 확인할 수 있다.
다음으로, 노드 성능 분석기(11)는 노드의 성능을 분석하기 위해 각 노드가 주어진 연산을 얼마나 빠르고 정확하게 처리하는지 평가한다. 노드의 성능 평가에 참조되는 자원은 CPU, 메모리, 스토리지이며 이를 평가하는 기준은 표 4와 같다
Figure pat00022
CPU의 연산 처리 속도를 평가하기 위해서 상기에서 설명한 LU 분해를 이용한 역행렬을 구하고 이 연산을 처리하는데 소요되는 시간을 추출한다. 본 명세서에서는 LU 분해를 활용하여 역행렬을 구하는 과정을 함수화(Functionalization)했으며 다음과 같은 식을 가진다.
Figure pat00023
상기 식은 행렬 A를 lowerMat() 함수를 통한 하 삼각행렬 L과 upperMat() 함수를 통한 상 삼각행렬 U로 분해하고 역행렬을 구하는 과정으로
Figure pat00024
는 하 삼각행렬 L의 역행렬을,
Figure pat00025
는 상 삼각행렬 U의 역행렬을 의미한다. 행렬의 역행렬은 inverseMat() 함수를 이용하여 구할 수 있다.
LU의 역행렬이 구해지면 두 행렬의 곱을 통해 행렬 A의 역행렬을 구할 수 있다. 하 삼각행렬 L과 상 삼각행렬 U의 역행렬 이용하여 행렬 A의 역행렬
Figure pat00026
을 구하는 식은 다음과 같다.
Figure pat00027
CPU의 연산 처리를 평가하기 위해 위의 연산을 노드에서 직접 처리하고 처리하는데 소요되는 시간인
Figure pat00028
Figure pat00029
을 기준으로 CPU의 성능
Figure pat00030
을 정의한다.
Figure pat00031
이와 같은 방법으로 메모리의 성능도 평가할 수 있다. 동적 메모리 할당을 통해 역행렬을 구하는데 필요로 하는 행렬의 공간을 확보하고 동적 메모리 할당을 받을 수 있는 최대 크기를 노드의 메모리가 할당 할 수 있는 최대 크기의 공간으로 정의한다. 이 과정은 OS가 사용 중인 메모리를 제외한 실제 사용 가능한 메모리 공간을 파악할 수 있고 동적 메모리 할당 시 소요되는 시간을 통해 메모리의 요청 처리 시간을 알 수 있다.
Figure pat00032
는 리소스가 가지는 최대 메모리 크기,
Figure pat00033
는 사용 중인 메모리 크기로
Figure pat00034
은 현재 사용 가능한 메모리 크기로 정의된다.
Figure pat00035
마지막으로, 노드 성능 분석기(11)는 상기와 같이 성능 분석을 통해 각 노드들의 성능이 분석되면 이를 반영하여 노드들의 상대적 평가를 한다. 본 발명에서는 노드의 성능으로 판단한 CPU, 메모리, 스토리지에 일정 가중치를 부여하고 할당하기에 최적의 노드를 선정할 수 있다. 가중치가 부여되는 속성은 CPU의 코어수, CPU의 연산 처리 속도 및 메모리의 잔여량이다.
노드들의 상대적 평가를 위해 데이터센터(10)에서 관리 중인 전체 노드 중 가장 높은 고성능의 수치(
Figure pat00036
)와 현재 노드의 성능을 비교한 후 각 속성별로 가중치를 부여한다.
Figure pat00037
Figure pat00038
는 데이터센터에서 관리 중인 노드들의 코어 수 중 가장 큰 값을 가지는
Figure pat00039
에 상대적인 현재 노드의 코어 수를 수치화하여 가진다. 예를 들어,
Figure pat00040
일 경우 코어 수가 가장 큰 노드는
Figure pat00041
Figure pat00042
의 4 이므로
Figure pat00043
가 된다. 제안된 수치화 공식에 따라
Figure pat00044
의 코어의 수를 수치화한 값은
Figure pat00045
가 되며 나머지 노드들의 수치 값을 구하면 다음과 같다.
Figure pat00046
코어의 수 뿐 아니라 CPU의 연산 처리 속도와 메모리 잔여량에도 같은 알고리즘이 적용된다.
각 노드들이 속성별로 수치 값이 구해지면 가중치를 부여하여 최종적으로 노드의 성능을 수치화한다.
Figure pat00047
정확한 노드의 분석을 위한 최적의 가중치를 결정하기 위해 아래와 같은 실험을 진행하였다.
Figure pat00048
표 5는 속성별 가중치의 비율차가 최소 0.5 이상인 경우이다. 모든 노드의 성능에 차이가 있고 Case 1의 경우 메모리, Case 2는 처리 속도, Case 3은 코어의 개수에 큰 비중을 둔다고 가정하였다.
Figure pat00049
Host #1은 CPU의 처리 속도가 상대적으로 빠르지만 코어의 수는 적은편이다. 메모리 역시 상대적으로 적은 크기를 가지기 때문에 처리해야할 양이 많은 가상머신을 처리하는데 적합하다. Host #3은 Host #1과는 반대로 CPU 처리 속도는 느리지만 코어를 8개나 보유하고 있다. 따라서 가벼운 가상머신 여러 개를 할당할 수 있어 보급형 가상머신에 적합하다. 표 6은 가중치 비율차가 0.5 이상인 경우 케이스별 노드 평가 결과를 나타내는 표 7 실험의 노드 성능표이다.
Figure pat00050
Case 2에서 Host #4는 CPU 처리 속도의 비중이 높지만 상대적으로 다른 노드에 비해 처리 속도가 좋지 않기 때문에 높은 점수를 받지 못하였다. 그렇지만 Case 1을 적용하면 코어 8개를 보유하고 있기 때문에 0.925라는 높은 점수를 받게 된다. 표 7의 오른쪽 그래프는 Case 별로 노드를 어떻게 평가했는지를 볼 수 있다.
실험 결과 가중치의 비율차가 지나치게 크기 때문에 공정한 성능 평가가 진행이 어렵다는 것을 확인할 수 있었다. CPU처리 속도의 비율이 높은 Case 2의 경우 Host #1의 메모리와 코어가 Host #4보다 현저히 부족하지만 더 좋은 노드로 인식하여 다량의 코어와 메모리를 효율적으로 사용하지 못하기 때문에 단편화 문제가 발생한다.
Figure pat00051
Figure pat00052
지나친 비율차로 발생하는 문제를 줄이고자 표 8의 경우 가중치의 비율차를 최소 0.3 이하로 줄이는 경우로 실험하였다. 실험 결과는 표 10과 같다.
Figure pat00053
앞선 실험에 비해 노드 평가 결과의 차이가 줄어든 것을 확인할 수 있다. 평가 결과 차이가 적음으로써 환경의 변화에 안정적으로 가중치를 적용시킬 수 있다. 표 7의 경우 가중치의 비율차가 크기 때문에 자원에 변경이 있을 경우 변경되는 값이 커서 불안정적인 평가 결과를 가질 수밖에 없다. 비율차를 줄인 표 10의 경우 가중치의 비율차가 적기 때문에 자원의 변경이 있더라도 변경되는 값이 크지 않기 때문에 안정적인 평가 결과를 유지할 수 있다. 이로 인해 노드의 단편화를 줄일 수 있고 안정적인 서비스를 제공할 수 있다.
그러면, 여기서 상기와 같이 구성된 시스템을 이용한 본 발명의 다중 자원의 효율적인 활용을 위한 가상머신 할당 방법에 대해 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 가상 머신 할당이 이루어지는 과정을 나타내는 흐름도이다.
클라우드 서비스 플랫폼이 시작되면 시스템(1)은 데이터센터(10)에서 관리하는 노드들(12)의 성능 분석을 위해 NC와 연결된 모든 데이터센터(10) 내 노드들(12)을 탐색한다(S201).
여기서, 노드의 성능을 분석하기 위한 알고리즘은 도 3과 같다. 도 3의 알고리즘에서는 행렬의 역행렬을 구하는 과정을 가지는 InverMatrix() 메소드를 통해 노드의 성능을 분석한다. InvertMatrix()에서는 메모리 능력을 평가하기 위해 행렬과 역행렬을 저장할 메모리 공간 확보 가능 여부를 확인하고 확보된 메모리에 임의의 행렬을 생성한다. 이러한 과정을 통해 메모리의 적재 능력과 적재 속도 등을 평가할 수 있다. 임의의 행렬이 적재된 노드는 행렬의 역행렬을 구하기 위해 CPU의 연산 처리를 사용한다. 연산이 종료되면 연산 처리 속도와 정확도를 알 수 있고, 이를 현재 시간을 반환하는 Times()를 이용하여
Figure pat00054
Figure pat00055
의 차이를 이용하여 CPU의 성능을 평가한
Figure pat00056
에 저장한다.
Figure pat00057
i번째 노드의 성능을 분석결과에 가중치를 부여하여 수치화한 값으로, 이는 노드 성능 분석 데이터베이스(21)에 저장된다.
살펴본 바와 같이, 플랫폼의 최초 실행 시 단계 S201에서 상기 메모리 능력 평가 및 CPU 성능 평가의 두 가지 평가를 모든 노드에 적용하고 반환받은 수치화된CPU 성능과 메모리 성능을 적재한다(S202). 저장한 결과는 추후 자원의 요청이 들어왔을 때 가상머신의 할당이 가능한 노드들의 리스트들 중 고성능을 가진 노드를 선택하는데 사용하며, 선택된 노드에 가상머신을 할당함으로써 효율성을 반영한다.
시스템이 시작한 후 노드의 성능 분석이 완료되면 사용자의 요구를 처리할 준비가 완료된다. 사용자로부터 자원의 요구가 들어오면(S203), 가상머신을 생성하고 할당, 이주 등을 관리하는 가상머신 할당 제어 시스템(23)이 자원의 가상화를 통한 가상머신을 생성한 후 노드 정보를 조회하여(S204) 노드 리스트에서 가상머신을 할당하기에 적합한 노드를 선택하고(S205) 최적의 노드에 가상머신을 할당한다(S206).
이때, 노드 리스트에서 최적의 노드를 찾기 위한 알고리즘은 도 4와 같다. 도 4의 알고리즘에서 첫 번째 for문에서는 사용자의 요구를 만족시킬 수 있고 현재 상태와 요구 충족 여부를 반영한 노드들의 리스트인 availableNodeList를 준비한다. N은 데이터센터(10)에서 관리하는 모든 노드이다. 모든 노드를 탐색한 후 할당 가능한 리스트가 확정되면 고성능과 빠른 노드 선택을 위해 이를 정렬한다.
그 후, 가상머신이 생성되었으면 availableNodeList에 등록된 노드 중 첫 번째 노드에 가상머신을 할당하고 가상머신의 할당 정보를 가지는 vmtable에 가상머신이 선택된 노드에 할당이 되었음을 저장한다. 만약 가상머신이 노드에 할당되지 않았을 경우, availableNodeList에 등록된 다음 노드에 가상머신을 할당한다.
이하에서는, 본 발명에서 제안하는 가상머신 할당 시스템(1)의 타당성을 기존의 할당 시스템과의 비교 실험을 통해 증명한다.
본 발명의 실험예에서는 다양한 가상머신 할당 시스템과의 비교와 다량의 가상머신 환경을 위해 호주의 Melbourne University의 Computer Science and Software Engineering과 소속 The Could Computing and Distributed System(CLOUDS) 연구실에서 개발한 클라우드 컴퓨팅 에뮬레이터인 클라우드심(CloudSim) 내에서 실험하였다. 클라우드심은 모델링, 시뮬레이션 및 클라우드 컴퓨팅 인프라와 응용 프로그램 서비스의 실험을 가능하게하고 확장 가능한 시뮬레이션 프레임 워크를 제공하는 것을 목적으로 한다. 표 11은 클라우드심의 기능을 설명한다.
Figure pat00058
클라우드심은 대규모 클라우드 컴퓨팅 데이터센터의 모델링과 시뮬레이션을 지원하며 가상머신에 노드 자원의 프로비저닝에 대한 사용자 정의 정책과 가상 서버 노드의 모델링 및 시뮬레이션을 지원한다. 또한 가상 머신에 노드 자원을 할당을 위한 가상머신과 노드 할당에 대한 사용자 정의 정책을 지원해주기 때문에 본 논문에서 제안하는 가상머신 할당 시스템을 실험하기에 적합하다. 표 12는 클라우드심 레이어 아키텍처이다.
Figure pat00059
본 명세서의 실험예에서는 자원의 노드의 성능의 제약이나 거스름 없는 환경에서 다양한 실험을 요구하기 때문에 노드들은 실험마다 다른 성능을 가진다. 실험은 크게 모든 노드들이 같은 성능을 가졌을 경우와 다른 성능을 가졌을 경우로 구분하여 진행하였다.
본 발명의 일 실시예에 따른 가상머신 할당 시스템과 실험을 통해 비교되는 다른 시스템은 클라우드심에서 제공되는 기본 스케줄링과 유칼립투스의 기본 스케줄링인 사용되는 라운드로빈이다.
클라우드심에서 제공되는 기본 스케줄링은 가상머신의 자원 요청이 들어왔을 때 노드에서 가지고 있는 사용되지 않는 호스트의 수가 많은 노드에 최우선적으로 가상머신을 할당한다.
라운드로빈은 시스템 내에 설정된 노드의 순서대로 가상머신의 자원 요청을 해결이 가능한 노드에 가상머신을 할당한다.
실험예 1 : 모든 노드들이 다른 성능을 가졌을 경우
실험예 1은 모든 노드들이 다른 성능을 가졌을 경우로서, 본 실험은 다중 자원에서 제안하는 시스템이 얼마나 효율적으로 자원을 사용하는지를 증명하기 위해 노드의 성능이 다른 경우에 클라우드심 기본 스케줄링, 라운드로빈과 비교 실험을 해보았다.
첫 번째 실험에서는 노드 5개의 성능은 다르지만 할당을 요청하는 가상머신들의 성능은 동일하게 설정하였다. 첫 번째 실험의 노드 성능은 표 13과 같다.
Figure pat00060
Host #1과 Host #4, Host #2와 Host #5은 코어의 수는 같지만 CPU의 연산 처리 능력은 약 2배정도 차이를 보이며 코어가 1개인 경우 코어가 4개인 경우에 비해 연산처리능력이 최대 3배 이상 좋도록 설정하였다. 이는 상기에서 설명한 노드의 성능 분석 방법의 효과를 증명하기 위해 눈대중으로는 평가하기 애매한 경우를 설정한 것이다.
표 14는 첫 번째 실험에서 노드에 할당을 요청하는 같은 성능을 가지는 가상머신 20개의 성능이다.
Figure pat00061
두 번째 실험은 노드 5개의 성능 뿐 아니라 가상머신이 요청하는 자원량도 각각 다른 경우이다. 5개의 노드 성능은 첫 번째 실험과 동일하며 20개의 가상머신이 요청하는 자원량은 표 15와 같다.
Figure pat00062
세 번째 실험은 두 번째 실험에서 노드의 수와 자원을 요청하는 가상머신의 수를 증가시킨 것으로 추가된 노드의 성능은 표 16, 가상머신이 요청한 자원량은 표 17과 같이 설정하였다.
Figure pat00063
Figure pat00064
실험예 2 : 모든 노드들이 같은 성능을 가졌을 경우
실험예 2는 모든 노드들이 같은 성능을 가졌을 경우를 가정한 것이다.
노드에 가상머신을 할당하기 위한 많은 스케줄링 연구들은 소수의 노드와 가상머신을 사용하기 때문에 대부분 같은 노드들의 성능을 전제로 실험 환경을 구축한다. 본 발명에서는 자원들의 성능 차이에 따른 이점을 극대화시키는 것이 목적이지만, 다른 연구들과의 비교를 위해 모든 노드들이 같은 성능을 가졌을 경우를 실험해보았다. 네 번째 실험의 노드 성능은 표 18과 같으며, 가상머신 요청 자원은 두 번째 실험의 가상머신 요청 자원과 같다
Figure pat00065
본 발명에서는 모든 노드들이 다른 성능을 가졌을 경우와 같은 성능을 가졌을 경우를 실제 클라우드 플랫폼 시스템에서 사용되는 가상머신 할당 시스템과의 비교를 통해 클라우드 컴퓨팅 환경에서 가상머신의 할당 성공률과 단편화 현상 최소화를 증명하고자한다. 본 발명에서 제안하는 가상머신 할당 시스템과 비교되는 가상머신 할당 시스템은 클라우드심에서 제공되는 FCFS 기반의 가상머신 할당 시스템과 유칼립투스의 가상머신 할당 시스템인 라운드로빈이다.
표 19는 실험 결과로 각 스케줄링 별로 노드에 할당 성공한 가상머신들의 분포도를 보여준다.
Figure pat00066
클라우드심의 기본 스케줄러는 노드에서 미사용중인 코어의 수를 중요시하기 때문에 Host #5번과 Host #2번이 우선적으로 할당되는 것을 확인할 수 있다. 반면에 라운드로빈의 경우 노드가 등록된 순서인 Host #5→#4→#3→#2→#1 순으로 할당되며 VM #13부터 가상머신 요구사항을 만족할 수 없어 할당이 불가능한 노드에는 할당하지 않는 것을 확인할 수 있다. 그에 비해 제안하는 기법은 본 발명의 상기 노드의 성능 분석 방법을 기반으로 노드들의 성능을 분석하고, 노드들 중 가장 고사양이라고 평가되는 노드인 Host #2에 우선적으로 가상머신을 할당하는 것을 확인할 수 있다.
각 스케줄링 별로 가상머신의 할당 요청을 성공적으로 처리한 비율은 표 20과 같다.
Figure pat00067
첫 번째, 네 번째 실험의 경우 자원을 요구하는 가상머신들의 성능에 차이가 거의 없기 때문에 세 가상머신 할당 시스템들의 가상머신 할당 성공률이 같았다. 그렇지만 가상머신들의 성능에 차이가 있는 두 번째 세 번째 실험의 경우 라운드로빈에 비해 본 발명에서 제안하는 가상머신 할당 시스템이 더 높은 성공률을 보임을 확인할 수 있었다. 이는 더 많은 요구사항을 처리함으로 노드들을 효율적으로 사용하여 처리할 수 있는 요구사항의 양의 증가되었다는 것을 설명한다.
Figure pat00068
Figure pat00069
표 21과 표 22는 각 노드별로 가상머신 할당 횟수이다. 노드들은 첫 번째 실험에서 사용한 노드들로 성능은 표 13과 같다. Host #4는 1개의 코어를 가지지만 CPU의 성능점수가 2000으로 Host #3이 가지는 2개의 코어와 CPU 성능점수 300보다 더 많은 양의 요구사항을 빠르게 처리할 수 있다. 클라우드심의 가상머신 할당시스템과 라운드로빈의 경우 빠른 처리속도에 상관없이 코어의 수가 더 많은 Host #3에 우선적으로 가상머신을 할당함으로써 요구사항의 빠른 처리가 불가능하다. 그렇지만 제안기법은 노드의 코어 수 뿐 아니라 노드가 가지고 있는 CPU의 연산처리 속도와 메모리 성능을 반영하여 가상머신을 할당할 노드를 결정하기 때문에 Host #4의 가상머신 할당 횟수가 더 많은 것을 확인할 수 있다. 이로 인해 같은 시간동안 작업을 하더라도 클라우드심의 가상머신 할당 시스템과 라운드로빈에 비해 요구사항의 처리 속도가 빠를 뿐 아니라 같은 시간동안 작업을 하더라도 상대적으로 더 많은 가상머신의 요구사항을 처리할 수 있다. 또 노드를 균형적인 사용을 보여 노드의 부하를 줄이고자 함을 보여준다.
표 23은 가상머신의 할당 성공률이 거의 같은 클라우드심의 가상머신 할당 기법과 제안기법의 가상머신들의 자원 요청을 처리한 후 노드에 남은 메모리양을 비교한 것이다.
다른 결과와 마찬가지로 가상머신의 성능 차이가 없는 첫 번째 실험과 네 번째 실험은 클라우드심의 가상머신 할당 시스템과 제안기법의 결과가 같다. 가상머신의 성능 차이가 있는 두 번째 실험과 세 번째 실험의 경우 두 할당 시스템의 차이를 보인다. 두 번째 실험의 경우 클라우드심 가상머신 할당 시스템에 비해 제안기법이 더 많은 메모리를 남길 뿐 아니라 잔여 메모리양이 집합되어있어 더 많은 가상머신의 요청을 처리할 수 있다. 이를 통하여 본 발명에서 제안하는 가상머신 할당 기법에서는 노드의 메모리의 단편화를 최소화함으로 노드의 성능을 효율적으로 활용할 수 있음을 보여준다.
Figure pat00070
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
1 : 가상머신 할당 시스템
10 : 데이터센터
11 : 노드 성능 분석기
12 : 노드
20 : 서비스 제공자 하이퍼바이저
21 : 노드 성능 데이터베이스
22 : 데이터센터 브로커
23 : 가상머신 할당 제어 시스템
24 : 가상머신 이주 제어기
25 : 가상머신 생성 제어기
30 : 클라우드 서비스 제공자

Claims (4)

  1. 노드 성능 데이터베이스, 상기 노드 성능 데이터베이스에서 불러온 노드 리스트를 가지며 데이터센터를 관리하는 데이터센터 브로커, 및 상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드에 가상머신을 생성하는 가상머신 생성 제어기와 가상머신의 이주를 제어하는 가상머신 이주 제어기를 포함하는 가상머신 할당 제어 시스템으로 구성되는 서비스 제공자 하이퍼바이저(Service Provider's Hypervisor); 및
    노드들, 및 상기 노드들의 성능을 분석하고 평가하여 상기 노드 성능 데이터베이스에 저장하는 노드 성능 분석기를 포함하는 데이터센터;
    를 포함하는 가상머신 할당 시스템.
  2. 청구항 제1항에 있어서,
    상기 노드 성능 분석기는,
    상기 노드들의 성능을 분석하기 위해 행렬의 역행렬을 구하고 각 노드가 주어진 연산을 처리하는데 소요되는 시간을 추출하여 노드의 성능을 평가함으로써 가상머신을 할당하기에 최적의 노드를 선정하는 것을 특징으로 하는, 가상머신 할당 시스템.
  3. 클라우드 서비스가 시작되면, 노드들의 성능 분석을 위해 데이터센터 내의 노드들을 탐색하는 단계;
    상기 성능 분석 결과에 가중치를 부여하여 노드 성능 분석 데이터베이스에 저장하는 단계;
    사용자로부터 가상머신 할당 요청이 들어오면, 상기 노드 성능 분석 데이터베이스로부터 불러온 노드 리스트에서 노드 정보를 조회하는 단계;
    상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드를 선택하는 단계; 및
    상기 최적의 노드에 가상머신을 할당하는 단계;
    를 포함하는, 가상머신 할당 방법.
  4. 청구항 제3항에 있어서,
    상기 노드들을 탐색하는 단계는,
    행렬의 역행렬을 구하고 각 노드가 주어진 연산을 처리하는데 소요되는 시간을 추출하여 상기 노드들의 성능을 분석하는 것을 특징으로 하는, 가상머신 할당 방법.
KR1020140012932A 2014-02-05 2014-02-05 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법 KR101557747B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140012932A KR101557747B1 (ko) 2014-02-05 2014-02-05 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140012932A KR101557747B1 (ko) 2014-02-05 2014-02-05 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20150092492A true KR20150092492A (ko) 2015-08-13
KR101557747B1 KR101557747B1 (ko) 2015-10-19

Family

ID=54056762

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140012932A KR101557747B1 (ko) 2014-02-05 2014-02-05 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101557747B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101886317B1 (ko) * 2017-04-28 2018-08-08 울산과학기술원 가상 머신 배치 선택 장치 및 방법
KR102247629B1 (ko) * 2019-12-17 2021-05-04 부산대학교 산학협력단 기계 학습 기반의 클라우드 가상머신 자원의 최적화 장치 및 방법
KR20210067415A (ko) * 2019-11-29 2021-06-08 주식회사 데브스택 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법
WO2021152376A1 (en) * 2020-01-30 2021-08-05 Coupang Corp. Systems and methods for virtual server resource usage metric evaluation and performance tracking

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102129389B1 (ko) * 2018-12-20 2020-07-08 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 다목적 가상머신 배치 방법 및 장치
KR102486602B1 (ko) * 2020-11-09 2023-01-09 숭실대학교산학협력단 엣지 컴퓨팅 환경에서의 서비스 마이그레이션 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9781205B2 (en) 2011-09-12 2017-10-03 Microsoft Technology Licensing, Llc Coordination engine for cloud selection

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101886317B1 (ko) * 2017-04-28 2018-08-08 울산과학기술원 가상 머신 배치 선택 장치 및 방법
KR20210067415A (ko) * 2019-11-29 2021-06-08 주식회사 데브스택 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법
KR102247629B1 (ko) * 2019-12-17 2021-05-04 부산대학교 산학협력단 기계 학습 기반의 클라우드 가상머신 자원의 최적화 장치 및 방법
WO2021152376A1 (en) * 2020-01-30 2021-08-05 Coupang Corp. Systems and methods for virtual server resource usage metric evaluation and performance tracking
US11625259B2 (en) 2020-01-30 2023-04-11 Coupang Corp. Systems and methods for virtual server resource usage metric evaluation and performance tracking

Also Published As

Publication number Publication date
KR101557747B1 (ko) 2015-10-19

Similar Documents

Publication Publication Date Title
Agarwal et al. Efficient optimal algorithm of task scheduling in cloud computing environment
Saleh et al. IPSO task scheduling algorithm for large scale data in cloud computing environment
Lee et al. Performance analysis based resource allocation for green cloud computing
Lin et al. Bandwidth‐aware divisible task scheduling for cloud computing
Chien et al. Load balancing algorithm based on estimating finish time of services in cloud computing
KR101557747B1 (ko) 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법
CN103970607B (zh) 使用等价集合来计算优化虚拟机分配的方法和装置
US8930541B2 (en) System, method and program product for cost-aware selection of templates for provisioning shared resources
Aladwani Types of task scheduling algorithms in cloud computing environment
Dhari et al. An efficient load balancing scheme for cloud computing
US11307802B2 (en) NVMe queue management multi-tier storage systems
Seth et al. Dynamic heterogeneous shortest job first (DHSJF): a task scheduling approach for heterogeneous cloud computing systems
Rani et al. An efficient and scalable hybrid task scheduling approach for cloud environment
Sonkar et al. A review on resource allocation and VM scheduling techniques and a model for efficient resource management in cloud computing environment
Pattanaik et al. Performance study of some dynamic load balancing algorithms in cloud computing environment
WO2013123650A1 (zh) 虚拟机分配方法和虚拟机分配装置
Yousif et al. Clustering cloud workload traces to improve the performance of cloud data centers
Manikandan et al. Virtualized load balancer for hybrid cloud using genetic algorithm
Seth et al. Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems
Himthani et al. Comparative analysis of VM scheduling algorithms in cloud environment
Komarasamy et al. ScHeduling of jobs and Adaptive Resource Provisioning (SHARP) approach in cloud computing
Gupta et al. Load balancing using genetic algorithm in mobile cloud computing
Pradeep et al. A review on task scheduling using optimization algorithm in clouds
Panwar et al. An enhanced scheduling approach with cloudlet migrations for resource intensive applications
Sekaran et al. SIQ algorithm for efficient load balancing in cloud

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
FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 5