KR20160043706A - 가상 머신 스케일링 장치 및 그 방법 - Google Patents

가상 머신 스케일링 장치 및 그 방법 Download PDF

Info

Publication number
KR20160043706A
KR20160043706A KR1020140138211A KR20140138211A KR20160043706A KR 20160043706 A KR20160043706 A KR 20160043706A KR 1020140138211 A KR1020140138211 A KR 1020140138211A KR 20140138211 A KR20140138211 A KR 20140138211A KR 20160043706 A KR20160043706 A KR 20160043706A
Authority
KR
South Korea
Prior art keywords
application
virtual machine
resources
resource
scaling
Prior art date
Application number
KR1020140138211A
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 KR1020140138211A priority Critical patent/KR20160043706A/ko
Publication of KR20160043706A publication Critical patent/KR20160043706A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • 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

Abstract

가상 머신의 스케일링 방법이 개시된다. 본 발명의 일 실시예에 따른 가상 머신의 스케일링 방법은 제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 단계, 모니터링된 애플리케이션이 사용하는 리소스량을 이용하여 기 설정된 판단 기준으로 애플리케이션에 추가적인 리소스 할당이 필요한지 여부를 결정하는 단계 및 추가적인 리소스 할당이 필요하다고 결정된 애플리케이션을 스케일 아웃(scale out) 하는 단계를 포함한다.

Description

가상 머신 스케일링 장치 및 그 방법{VIRTUAL MACHINE SCALING APPARATUS AND METHOD FOR THEREOF}
본 발명의 가상 머신 스케일링 장치 및 그 방법에 관한 것으로, 보다 상세하게는 애플리케이션을 중심으로 선택적으로 오토 스케일링을 제공하는 가상 머신 스케일링 장치 및 그 방법에 관한 것이다.
클라우드 시스템이란 인터넷상의 서버를 통하여 데이터 저장, 네트워크, 컨텐츠 사용 등 IT 관련 서비스를 한번에 사용할 수 있는 컴퓨팅 시스템을 의미한다.
정보가 인터넷 상의 서버에 영구적으로 저장되고, 데스크탑, 테블릿 PC, 노트북, 넷북, 스마트폰 등의 IT 기기 등과 같은 클라이언트에는 일시적으로 보관되는 컴퓨팅 환경을 의미한다. 즉, 이용자의 모든 정보를 인터넷 상의 서버에 저장하고, 이 정보를 각종 IT 기기를 통하여 언제 어디서든 이용할 수 있다는 개념이다.
다시 말하면, 구름(cloud)와 같이 무형의 형태로 존재하는 하드웨어, 소프트 웨어 등의 컴퓨팅 자원을 자신이 원하는 만큼 빌려 쓰고 이에 대한 사용요금을 지급하는 방식의 컴퓨팅 서비스로, 서로 다른 물리적인 위치에 존재하는 컴퓨팅 자원을 가상화 기술로 통합해 제공하는 기술을 말한다.
최근 클라우드 시스템에 대한 사용이 확대되고 늘어남에 따라 클라우드 시스템의 고유 기능인 오토 스케일링(Auto scaling)이 필수적으로 사용되고 있다.
오토 스케일링이란 사용자에 의한 데이터 처리 요구가 늘어남에 따라 서버를 가상 머신(VM : Virtual Machine) 기반으로 복제하여 서버 수를 유연하게 조절시킴으로써 부하를 적절히 유지하고 서비스의 안정성을 확보할 수 있게 하는 서비스이다.
오토 스케일링은 가상 머신에서 사용하는 리소스(CPU, 메모리, 디스크 I/O, 네트워크 부하 등)를 모니터링하고, 사용자가 정의한 정책에 따라 Scale Out/In을 수행함으로써 이루어진다.
구체적으로, 종래의 오토 스케일링은 사용자에 의한 데이터 처리 요구량에 따라 가상 머신 자체를 Scale Out/In 함으로써 원활하게 서비스가 유지되도록 한다. 즉, 사용자가 가상 머신에 설치된 특정 애플리케이션에 대해서만 Scale Out/In을 하는 것이 아니라, 가상 머신에 설치된 전체 애플리케이션에 대해 Scale Out/In을 수행함으로써 클라우드 시스템 리소스를 효율적으로 사용할 수 없다는 문제점이 있었다.
이에, 애플리케이션의 리소스 사용량에 따라 선택적으로 Scale Out/In을 수행할 수 있는 오토 스케일링의 필요성이 대두되었다.
한국공개특허 10-2011-0030447호
본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로, 본 발명의 목적은 애플리케이션 별로 선택적으로 오토 스케일링을 수행할 수 있는 가상 머신 스케일링 장치 및 그 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 클라우드 리소스를 효율적으로 관리할 수 있는 가상 머신 스케일링 장치 및 그 방법을 제공하는데 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속한 기술분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 가상 머신의 스케일링 방법은, 제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 단계, 상기 모니터링된 상기 애플리케이션이 사용하는 리소스량을 이용하여 기 설정된 판단 기준으로 상기 애플리케이션에 추가적인 리소스 할당이 필요한지 여부를 결정하는 단계 및 상기 추가적인 리소스 할당이 필요하다고 결정된 애플리케이션을 스케일 아웃(scale out) 하는 단계 포함한다.
본 발명의 일 실시예에 따르면, 상기 애플리케이션을 스케일 아웃하는 단계는, 기 생성된 가상 머신 중 상기 애플리케이션을 실행할 수 있는 리소스가 남아있는 제2 가상 머신에 상기 애플리케이션을 설치하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 제2 가상 머신에 상기 애플리케이션을 설치하는 단계는, 상기 애플리케이션을 실행하는데 필요한 리소스와 상기 제2 가상 머신의 잔여 리소스를 비교하는 단계 및 상기 제2 가상 머신의 잔여 리소스가 상기 애플리케이션 실행에 필요한 리소스를 초과하면 상기 애플리케이션을 상기 제2 가상 머신에 설치하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 애플리케이션을 스케일 아웃하는 단계는, 새로운 제3 가상 머신을 생성하여 상기 애플리케이션을 설치하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 제3 가상 머신을 생성하여 상기 애플리케이션을 설치하는 단계는, 기 생성된 제2 가상 머신이 존재하는 경우, 상기 애플리케이션을 실행하는데 필요한 리소스와 상기 제2 가상 머신의 잔여 리소스를 비교하는 단계, 상기 제2 가상 머신의 잔여 리소스가 상기 애플리케이션 실행에 필요한 리소스 미만이면 상기 제3 가상 머신을 생성하여 상기 애플리케이션을 설치하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 애플리케이션이 상기 제2 가상 머신 또는 상기 제3 가상 머신에 설치되면 상기 제1 가상 머신에서 상기 애플리케이션을 삭제하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 기 설정된 판단 기준은, 상기 애플리케이션이 사용하는 제1 가상 머신의 리소스량이 기 설정된 임계값을 초과하는 것일 수 있다.
본 발명의 일 실시예에 따르면, 상기 기 설정된 판단 기준은 애플리케이션의 속성에 따라 상이하게 설정될 수 있다.
본 발명의 일 실시예에 따르면, 제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 단계는, 상기 제1 가상 머신에 상기 애플리케이션이 사용하는 리소스량 정보를 수집하는 에이전트(agent)를 설치하는 단계 및 상기 에이전트로부터 상기 애플리케이션에 의해 사용되는 리소스량 정보를 수신하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 스케일 아웃 하는 단계는, 상기 스케일 아웃의 대상이 되는 애플리케이션 이외의 애플리케이션은 상기 제1 가상 머신에서의 실행 상태를 유지하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 가상 머신 스케일링 장치는, 제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 모니터링 모듈, 상기 모니터링 모듈로부터 수신된 상기 애플리케이션의 상기 제1 가상 머신 사용 정보를 이용하여, 기 설정된 판단 기준으로 상기 애플리케이션에 대한 추가적인 리소스 할당이 필요한지 여부를 결정하는 판단 모듈 및 추가적인 리소스 할당이 필요하다고 결정된 애플리케이션을 스케일 아웃(scale out)하는 스케줄링 모듈을 포함한다.
본 발명의 일 실시예에 따르면, 상기 스케줄링 모듈은, 기 생성된 가상 머신 중 상기 애플리케이션을 실행할 수 있는 리소스가 남아있는 제2 가상 머신에 상기 애플리케이션을 설치할 수 있다.
본 발명의 일 실시예에 따르면, 상기 스케줄링 모듈은, 상기 애플리케이션을 실행하는데 필요한 리소스와 상기 제2 가상 머신의 잔여 리소스를 비교하고, 상기 제2 가상 머신의 잔여 리소스가 상기 애플리케이션 실행헤 필요한 리소스를 초과하면 상기 애플리케이션을 상기 제2 가상 머신에 설치할 수 있다.
본 발명의 일 실시예에 따르면, 상기 스케줄링 모듈은, 새로운 제3 가상 머신을 생성하여 상기 애플리케이션을 설치할 수 있다.
본 발명의 일 실시예에 따르면, 상기 스케줄링 모듈은, 기 생성된 제2 가상 머신이 존재하는 경우, 상기 애플리케이션을 실행하는데 필요한 리소스와 상기 제2 가상 머신의 잔여 리소스를 비교하고, 상기 제2 가상 머신의 잔여 리소스가 상기 애플리케이션 실행에 필요한 리소스 미만이면 상기 제3 가상 머신을 생성하여 상기 애플리케이션을 설치할 수 있다.
본 발명의 일 실시예에 따르면, 상기 스케줄링 모듈은, 상기 애플리케이션이 상기 제2 가상 머신 또는 상기 제3 가상 머신에 설치되면 상기 제1 가상 머신에서 상기 애플리케이션을 삭제할 수 있다.
본 발명의 일 실시예에 따르면, 상기 기 설정된 판단 기준은, 상기 애플리케이션이 사용하는 제1 가상 머신의 리소스량이 기 설정된 임계값을 초과하는 것일 수 있다.
본 발명의 일 실시예에 따르면, 상기 기 설정된 판단 기준은 상기 애플리케이션의 속성에 따라 상이하게 설정될 수 있다.
본 발명의 일 실시예에 따르면, 상기 모니터링 모듈은, 상기 제1 가상 머신에 설치된 에이전트(agent)로부터 상기 애플리케이션에 의해 사용되는 리소스량 정보를 수신할 수 있다.
본 발명의 일 실시예에 따르면, 상기 스케줄링 모듈은, 상기 스케일 아웃의 대상이 되는 애플리케이션 이외의 애플리케이션은 상기 제1 가상 머신에서의 실행 상태를 유지할 수 있다.
상술한 본 발명의 일 실시예에 따르면, 사용자에게 할당된 가상 머신의 리소스 사용량을 모니터링 하는 것이 아니고 가상 머신에 설치된 애플리케이션의 리소스 사용량을 모니터링하여 애플리케이션 별로 스케일 아웃을 수행함에 따라, 클라우드 리소스를 보다 효율적으로 운영할 수 있다는 효과를 달성할 수 있다.
도 1은 본 발명의 일 실시예에 따른 가상 머신 스케일링 장치(150)를 포함하는 클라우드 컴퓨팅 시스템(100)을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 가상 머신 스케일링 장치(150)를 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따라 가상 머신에 설치된 에이전트로부터 애플리케이션가 사용하는 리소스량 정보를 수신하는 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따라 추가적인 리소스 할당이 필요한지 여부에 대한 기준이 되는 판단 기준을 설명하기 위한 도면이다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따라 애플리케이션에 대해 스케일 아웃하는 과정을 설명하기 위한 도면이다.
도 6a 및 도6b는 본 발명의 일 실시예에 따라 새로운 가상 머신을 생성하여 추가적인 리소스 할당이 필요한 애플리케이션을 스케일 아웃하는 방법을 설명하기 위한 도면이다.
도 7a 및 7b는 복수의 애플리케이션을 스케일 아웃하는 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따라 애플리케이션에 대한 스케일인 과정을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따라 사용자에게 복수의 가상 머신이 할당된 경우 애플리케이션에 대한 스케일인을 수행하는 과정을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 가상 머신의 스케일링 방법을 설명하기 위한 흐름도이다.
도 11은 본 발명의 또 다른 실시예에 따른 가상 머신 스케일링 장치를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
또한, 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함될 수 있다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
도 1은 본 발명의 일 실시예에 따른 가상 머신 스케일링 장치(150)를 포함하는 클라우드 컴퓨팅 시스템(100)을 설명하기 위한 도면이다.
도 1에 도시된 클라우드 컴퓨팅 시스템(100)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요들이 더 포함될 수 있음을 알 수 있다.
도 1에 도시된 클라우드 컴퓨팅 시스템(100)은 복수 개의 서버로 구성된 클라우드(110), 클라우드(110)에 접속하여 데이터 처리를 요구하고 그에 대응되는 서비스를 제공받는 사용자 단말(130a, 130b, 130c) 및 가상 머신 스케일링 장치(150)를 포함한다.
클라우드(110)를 구성하는 복수의 서버들은 적어도 하나의 가상 머신으로 구현된다. 가상 머신이란, 클라우드(110)에 포함된 서버로부터 CPU, 메모리, 디스크 I/O 등을 할당받아 소프트웨어적으로 구현된 가상의 서버 자원을 의미한다. 사용자는 가상 머신 상에 원하는 애플리케이션을 설치하고 이를 실행하여 원하는 서비스를 제공받을 수 있게 된다.
사용자 단말(130a, 130b, 130c)은 클라우드(110)에 접속하여 서비스를 제공받기 위한 장치이다. 클라우드 컴퓨팅 시스템(100)에서 사용자 단말(130a, 130b, 130c)은 물리적인 서버를 할당받는 것이 아니라 서버에서 구현된 가상 머신을 할당받으며, 이 가상 머신은 가상 머신 인스턴스로 구성된다.
가상 머신 인스턴스는 클라우드(100)에 포함된 서버의 CPU 자원, 메모리 및 스토리지 중 일부를 할당받아 소프트웨어적으로 구현된 가상의 서버 자원을 의미한다.
즉, 사용자로부터 요구되는 데이터 처리 요구량이 작은 경우 가상 머신에 할당되는 가상 머신 인스턴트의 개수 또한 적어지며, 사용자가 더 많은 리소스를 요구할 경우 추가적인 가상 머신 인스턴스를 부가함으로써 대응할 수 있게 된다. 따라서, 사용자는 물리적으로 가상 서버가 어떠한 형태로 구성되어 있는지의 여부에 관계없이 자신의 요구량에 따라 컴퓨팅 리소스가 탄력적으로 변화되는 서버를 제공받을 수 있다.
가상 머신 스케일링 장치(150)는 클라우드(110)에 접속한 사용자에게 할당된 가상 머신 인스턴스를 동적으로 제어하기 위한 장치이다. 구체적으로, 본 발명의 일 실시예에 따른 가상 머신 스케일링 장치(150)는 가상 머신에 설치된 애플리케이션의 리소스 사용량을 모니터링 하고, 이를 기반으로 사용자에게 가상 머신을 추가적으로 할당하거나 이미 할당된 가상 머신을 회수하는 방식으로 클라우드(110)를 운영한다.
한편, 도 1에서는 가상 머신 스케일링 장치(150)가 별도의 장치인 것으로 도시하였으나, 실제 발명을 구현하는 과정에서 가상 머신 스케일링 장치(150)가 클라우드(100)에 속한 서버 중 하나인 것으로 구현할 수도 있다.
도 2는 본 발명의 일 실시예에 따른 가상 머신 스케일링 장치(150)를 설명하기 위한 블록도이다.
도 2에 도시된 가상 머신 스케일링 장치(150)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요들이 더 포함될 수 있음을 알 수 있다.
도 2에 도시된 가상 머신 스케일링 장치(150)는 모니터링 모듈(151), 판단 모듈(153) 및 스케줄링 모듈(155)을 포함한다.
모니터링 모듈(151)은 제1 가상 머신에 설치된 애플리케이션이 사용하는 리소스를 모니터링한다.
여기에서 제1 가상 머신이란 현재 사용자에게 할당된 논리적인 서버의 단위를 의미한다. 또한, 애플리케이션이 사용하는 리소스란, 클라우드(110)에 포함된 서버로부터 소프트웨어적으로 할당 받은 CPU 자원, 메모리, 저장 공간 등을 의미한다.
구체적으로, 모니터링 모듈(151)은 가상 머신 계층의 상위 계층인 애플리케이션 계층에 설치된 애플리케이션이 사용하는 가상 머신의 CPU 사용률, 메모리 사용률, 저장 공간 사용률 또는 네트워크 트래픽 양 중 적어도 하나를 모니터링 한다.
본 발명의 일 실시예에 따르면, 모니터링 모듈(151)은 가상 머신에 설치된 에이전트(Agent)로부터 애플리케이션이 사용하는 리소스 정보를 수신할 수 있다. 여기에서 에이전트란, 사용자를 대신하여 작업을 수행하는 자율적 프로세스(autonomous process)로써, 독자적으로 존재하지 않고 운영 체제와 같은 환경의 일부로서 그 안에서 동작하는 시스템으로 구현될 수 있다.
에이전트를 지식 기반과 추론 기능을 가지므로, 기 설정된 동작에 의해 애플리케이션이 사용하는 리소스 정보를 계산하여 이를 모니터링 모듈(151)에 전달할 수 있다.
판단 모듈(153)은 모니터링 모듈(151)로부터 수신된 애플리케이션의 제1 가상 머신 사용 정보를 이용하여 기 설정된 판단 기준으로 애플리케이션에 대한 추가적인 리소스 할당이 필요한지 여부를 결정한다.
제1 가상 머신에 설치되어 동작하는 애플리케이션의 데이터 처리 요구량이 제1 가상 머신에 할당된 리소스를 초과하면, 애플리케이션이 정상적으로 동작하지 않을 수 있다.
따라서, 판단 모듈(153)은 기 설정된 판단 기준에 따라 현재 애플리케이션이 설치되어 동작하고 있는 제1 가상 머신에 추가적인 리소스 할당이 필요한지 여부를 결정한다.
구체적으로, 기 설정된 판단 기준은 애플리케이션 속성에 따라 상이하게 설정되어 있을 수 있다. 예를 들어, 애플리케이션이 제1 가상 머신에 할당된 CPU 자원의 70% 이상을 사용하면 추가적인 리소스 할당이 필요한 것으로 결정할 수 있다.
상술한 실시 예에서는 제1 가상 머신에 설치된 애플리케이션의 CPU 사용률 만으로 추가 리소스 할당 여부를 결정하는 것으로 설명하였으나, 이에 한정되지 않으며 다른 가상 머신 자원의 사용량에 따라 추가적인 리소스 할당 여부를 결정하도록 구현할 수도 있다.
예를 들어, 제1 가상 머신에 설치된 애플리케이션의 CPU 사용률이 제1 가상 머신에 할당된 CPU 자원의 80% 이상이고, 저장 공간의 50% 이상이며, 메모리의 60% 이상을 사용하는 경우 추가적인 리소스를 할당하도록 결정할 수도 있다.
스케줄링 모듈(155)은 판단 모듈(153)에서 제1 가상 머신에 추가적인 리소스 할당이 필요하다고 결정되면, 제1 가상 머신에 설치된 애플리케이션을 스케일 아웃(scale out)한다.
여기에서 스케일 아웃(scale out)이란 사용자에게 클라우드(100)에 포함된 복수의 서버 중 적어도 하나의 서버를 추가적으로 할당하여, 사용자가 사용하는 애플리케이션에 의한 트래픽을 분산시키는 것을 의미한다.
이를 사용자 측면에서 바라보면, 종래의 제1 가상 머신보다 성능이 향상된 새로운 가상 머신이 추가적으로 할당되고, 추가된 가상 머신에 애플리케이션이 설치되어 동작하는 형태로 나타날 수 있다.
즉, 사용자는 물리적으로 클라우드에 포함된 서버가 어떠한 형태로 구성되어 있는지의 여부에 관계 없이 자신이 사용하는 애플리케이션의 요구량이 따라 용량이 탄력적으로 변화되는 가상 머신을 제공받을 수 있게 된다.
상술한 바와 같이, 사용자에게 할당된 가상 머신의 리소스 사용량을 모니터링 하는 것이 아니고, 가상 머신에 설치된 애플리케이션의 리소스 사용량을 모니터링하여, 애플리케이션 별로 스케일 아웃을 수행함에 따라, 가상 머신 인스턴스를 보다 효율적으로 운영할 수 있다는 효과를 달성할 수 있다.
도 3은 본 발명의 일 실시예에 따라 가상 머신에 설치된 에이전트로부터 애플리케이션가 사용하는 리소스량 정보를 수신하는 과정을 설명하기 위한 도면이다.
본 발명의 일 실시예에 따른 가상 머신 스케일링 장치(150)는 사용자에게 할당되는 논리인 서버의 단위인 제1 가상 머신(310)을 생성하여 사용자에게 제공한다.
또한, 사용자가 사용하고자 하는 애플리케이션(313a, 313b, 313c)이 제1 가상 머신(310)에 설치된다. 따라서, 사용자는 사용자 단말 (130a, 130b, 130c)를 통해 클라우드(110)에 접속한 후, 논리적으로 구현된 가상 머신(310)을 이용하여 애플리케이션(313a, 313b, 313c)을 실행할 수 있게 된다.
한편, 가상 머신(310)의 OS 단(미도시)에는 애플리케이션의 리소스 사용량을 측정하기 위한 에이전트(311)가 설치되어 있을 수 있다. 에이전트(311)는 운영 체제 안에 설치되어 사용자의 조작이 없더라도 자율적으로 동작하며, 기 설정된 기능을 수행한다.
본 발명의 일 실시예에 따른 에이전트(311)는 가상 머신의 OS 단 위에 설치된 애플리케이션들이 사용하는 가상 머신 리소스 정보를 수집한다. 예를 들어, 가상 머신(310)에 설치된 제1 애플리케이션(313a), 제2 애플리케이션(313b) 및 제3 애플리케이션(313c) 각각이 사용하는 가상 머신의 CPU 자원, 메모리 사용률, 저장 공간 사용률 등에 관한 정보를 수집하여 이를 모니터링 모듈(151)에 전달할 수 있다.
한편, 본 실시예에서는 사용자가에 제1 가상 머신(310)만이 할당되어 사용자가 이를 통해 애플리케이션(313a, 313b, 313c)을 실행하는 것으로 도시하였으나, 이에 한정되지 않으며 복수의 가상 머신을 할당하고 각각의 가상 머신에 애플리케이션을 설치하여 사용자로 하여금 원하는 서비스를 제공받도록 구현할 수도 있음을 물론이다.
가상 머신 스케일링 장치(150)의 판단 모듈(153)은 에이전트(310)로부터 수집된 각 애플리케이션(313a, 313b, 313c)의 리소스 사용 정보를 모니터링 모듈(151)을 통해 수신하고, 이를 이용하여 기 설정된 판단 기준으로 각 애플리케이션에 추가적인 리소스 할당이 필요한지 여부를 결정한다.
도 4는 본 발명의 일 실시예에 따라 추가적인 리소스 할당이 필요한지 여부에 대한 기준이 되는 판단 기준을 설명하기 위한 도면이다.
판단 기준은 애플리케이션 속성에 따라 상이하게 설정될 수 있다. 즉, 애플리케이션의 특성에 따라 소모하는 리소스가 상이할 수 있으므로 각 애플리케이션 별, 가상 머신에 할당된 서버 자원 별로 판단 기준이 설정되어 있을 수 있다.
예를 들어, 도 4에 도시된 제1 애플리케이션(313a)의 경우, 제1 애플리케이션(313a)에서 사용하는 CPU 사용률이 제1 가상 머신에 할당된 CPU 자원의 80%를 초과하는 경우 및 메모리 사용률이 제1 가상 머신에 할당된 메모리 자원의 70%를 초과할 때, 제1 애플리케이션(313a)에 대한 스케일 아웃이 실행되도록 설정할 수 있다.
또는 복수의 조건 중 하나의 조건을 만족하는 경우 스케일 아웃이 실행되도록 구현할 수도 있다. 예를 들어, 제1 애플리케이션(313a)이 제1 가상 머신에 할당된 CPU 자원의 80% 이상을 사용하거나, 메모리의 70% 이상을 사용하는 경우 제1 애플리케이션(313a)에 대한 스케일 아웃이 필요한 것으로 결정할 수 있다.
한편, 상술한 바와 같이 애플리케이션들에 설정되는 판단 기준은 애플리케이션의 특성에 의해 결정될 수 있다. 예를 들어, CPU 사용률 및 메모리 사용률이 많은 애플리케이션의 경우, 그 애플리케이션에 의해 가상 머신에 설치되어 있는 다른 애플리케이션들이 동작할 수 없는 상황이 발생할 수 있으므로 판단 기준을 낮게 설정할 수 있다.
예를 들어, 도 4에 도시된 제3 애플리케이션(313c)과 같이 CPU 사용률 및 메모리 사용률에 대한 판단 기준을 낮게 설정하면, 제3 애플리케이션(313c)이 가상 머신에 할당된 리소스의 일부분만을 사용하고 있는 경우라도 조속하게 제3 애플리케이션(313c)에 대한 스케일 아웃을 실행함으로써, 차후에 제3 애플리케이션(313c)이 많은 리소스를 사용함에 따라 다른 애플리케이션들이 실행되지 못하는 상황을 미연에 방지할 수 있게 된다.
한편, 상술한 실시예에서는 가상 머신에 할당된 서버 자원 중 CPU 자원 및 메모리에 대해서만 판단 기준이 설정되는 것으로 도시하였으나, 이에 한정되지 않으며 스토리지 사용률, 네트워크 트래픽량 등에 대해서도 판단 기준이 설정되도록 구현할 수도 있다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따라 애플리케이션에 대해 스케일 아웃하는 과정을 설명하기 위한 도면이다.
본 실시예에서는 사용자에게 제1 가상 머신(310) 및 제2 가상 머신(510)이 할당되어 있으며, 제1 가상 머신(310)에는 제1 애플리케이션(313a), 제2 애플리케이션(313b) 및 제3 애플리케이션(313c)이 설치되어 있고, 제2 가상 머신(510)에는 제4 애플리케이션(513)이 설치되어 있는 것을 예로 든다.
모니터링 모듈(151)은 제1 가상 머신(310)에 설치된 제1 애플리케이션(313a), 제2 애플리케이션(313b) 및 제3 애플리케이션(313c)이 사용하는 제1 가상 머신(310)의 리소스량을 모니터링한다. 또한, 제2 가상 머신(510)에 설치된 제4 애플리케이션(513)가 사용하는 제2 가상 머신(520)의 리소스량도 모니터링한다.
이후, 제1 가상 머신(310)에 설치된 제1 애플리케이션(313a)에 추가적인 리소스 할당이 필요하다고 결정되면 제1 애플리케이션(313a)을 스케일 아웃한다.
본 발명의 일 실시예에 따르면, 스케줄링 모듈(155)은 기 생성된 제2 가상 머신(510)의 잔여 리소스와 제1 애플리케이션(313a)을 실행하는데 필요한 리소스를 비교하여, 제1 애플리케이션(313a)를 실행하는데 필요한 리소스가 제2 가상 머신(510)의 잔여 리소스보다 작으면, 제1 애플리케이션(313a)을 제2 가상 머신(510)에 스케일 아웃할 수 있다.
즉, 제1 애플리케이션(313a)을 제2 가상 머신(510)에 설치하여, 제1 애플리케이션(313a)이 제2 가상 머신(510) 위에서 실행되도록 할 수 있다. 이때, 제1 가상 머신(310)에서는 제1 애플리케이션(313a)을 삭제하고 잔여 리소스를 회수할 수 있다.
상술한 바와 같이 가상 머신 단위가 아닌 애플리케이션 단위로 사용되는 리소스량을 모니터링하고, 모니터링된 결과에 따라 애플리케이션 별로 스케일 아웃을 수행하면, 클라우드(100) 자원을 보다 효율적으로 운영할 수 있다는 효과를 달성할 수 있다.
한편, 도 5a 및 도 5b에서는 기 생성된 제2 가상 머신(510)에 추가적인 리소스 할당이 필요한 제1 애플리케이션(313a)를 스케일 아웃하는 것으로 설명하였으나, 이에 한정되지 않으며 새로운 가상 머신을 생성하여 스케일 아웃할 수도 있다.
도 6a 및 도6b는 본 발명의 일 실시예에 따라 새로운 가상 머신을 생성하여 추가적인 리소스 할당이 필요한 애플리케이션을 스케일 아웃하는 방법을 설명하기 위한 도면이다.
도 6a에 도시된 바와 같이, 사용자에게 제1 가상 머신(310)만이 할당된 경우가 있을 수 있다. 이 경우, 스케줄링 모듈(155)은 새로운 제3 가상 머신(610)을 생성하여 제1 애플리케이션을 스케일 아웃한다.
구체적으로, 추가적인 리소스 할당이 필요하다고 결정된 제1 애플리케이션(313a)를 새로 생성된 제3 가상 머신(610)에 설치하여, 제1 애플리케이션(313a)이 제3 가상 머신(610) 위에서 동작하도록 할 수 있다.
한편, 기 생성된 복수의 가상 머신이 있는 경우라도, 가상 머신들의 잔여 리소스가 제1 애플리케이션(313a)를 설치하여 실행시키기 부족한 경우가 있을 수도 있다.
따라서, 상술한 바와 같이 기 생성된 복수의 가상 머신이 있는 경우라도 새로운 제3 가상 머신(610)을 생성하여 제1 애플리케이션(313a)을 스케일 아웃할 수도 있다.
구체적으로, 스케쥴링 모듈(155)이 제1 애플리케이션(313a)을 실행시키기 위해 필요한 리소스와 기 생성된 가상 머신들의 잔여 리소스를 비교하여, 기 생성된 가상 머신들의 잔여 리소스가 제1 애플리케이션(313a)을 싱핼시키기 위해 필요한 리소스보다 작으면 새로운 제3 가상 머신(610)을 생성한다.
한편, 새로운 제3 가상 머신(610)을 생성할 때는 스케일 아웃의 대상이 되는 제1 애플리케이션(313a)을 설치하고 실행시키는데 필요한 리소스를 고려하여 제3 가상 머신(610)에 리소스를 할당할 수 있다.
따라서, 클라우드 시스템(100)의 한정적인 자원을 보다 효율적으로 관리할 수 있다는 효과를 달성할 수 있다.
도 7a 및 7b는 복수의 애플리케이션을 스케일 아웃하는 방법을 설명하기 위한 도면이다.
제1 가상 머신(310)에 설치되어 실행되고 있는 애플리케이션(313a, 313b, 313c) 중 복수의 애플리케이션에 대해 추가적인 리소스 할당이 필요한 것으로 결정될 수 있다.
예를 들어, 제1 애플리케이션(313a)에 대한 리소스 추가 할당 기준이 제1 가상 머신(310)의 CPU 자원을 30% 이상 사용하고 있는 경우이고, 제2 애플리케이션(313b)에 대한 리소스 추가 할당 기준이 제1 가상 머신(310)의 CPU 자원을 20% 이상 사용하고 있는 경우로 설정된 상태에서 제1 애플리케이션(313a) 및 제2 애플리케이션(313b)에서 사용하고 있는 CPU 자원이 모두 판단 기준을 초과하는 경우가 발생될 수 있다.
이 경우, 스케줄링 모듈(155)은 제1 애플리케이션(313a) 및 제2 애플리케이션(313b)에 대해 스케일 아웃을 수행할 수 있다.
구체적으로, 스케줄링 모듈(1550)이 기 생성된 제2 가상 머신(510)의 잔여 리소스와 제1 애플리케이션(313a) 및 제2 애플리케이션(313b) 각각을 설치하고 실행하는데 필요한 리소스를 비교한다.
비교 결과, 제1 애플리케이션(313a)을 설치하고 실행하는데 필요한 리소스가 제2 가상 머신(510)의 잔여 리소스보다 작으면, 제1 애플리케이션(313a)를 도 7b에 도시한 바와 같이 제2 가상 머신(510)에 스케일 아웃할 수 있다.
또한, 제2 애플리케이션(313b)의 경우 새로운 제3 가상 머신(610)을 생성하여, 제2 애플리케이션(313b)이 제3 가상 머신(610)에 설치된 후 그 위에서 실행되도록 구현할 수도 있다.
한편, 도 7b에서는 제2 애플리케이션(313b)이 새로 생성된 제3 가상 머신(610)에 설치되는 것으로 도시하였으나, 제1 애플리케이션(313a)을 기 생성된 제2 가상 머신(510)에 생성한 후에도 제2 가상 머신(510)의 잔여 리소스가 제2 애플리케이션(313b)을 실행시키기에 충분한 경우, 제2 애플리케이션(313a)를 제2 가상 머신(510)에 스케일 아웃할 수도 있다.
또한, 스케일 아웃의 대상이 아닌 제3 애플리케이션(313c)은 제1 가상 머신(310)에서의 동작상태를 유지하도록 할 수 있다.
상술한 바와 같이 애플리케이션 단위로 각 애플리케이션이 사용하는 가상 머신의 리소스량을 모니터링하고, 모니터링된 결과에 따라 애플리케이션 별로 스케일 아웃을 실행함으로써, 클라우드 리소스(100)를 효율적으로 관리할 수 있다는 효과를 달성할 수 있다.
한편, 상술한 실시예에서는 추가적인 리소스 할당이 필요한 애플리케이션에 대해 스케일 아웃을 수행하는 것으로 설명하였으나, 반대로 할당된 리소스의 회수가 필요하다고 판단된 경우 그 애플리케이션을 스케일 인할 수도 있다.
도 8은 본 발명의 일 실시예에 따라 애플리케이션에 대한 스케일인 과정을 설명하기 위한 도면이다.
본 실시예에서는 제1 가상 머신(310)에 하나의 제1 애플리케이션(313a)만이 설치되어 있는 경우를 예로 든다.
모니터링 모듈(151)은 제1 가상 머신(310)에 설치된 제1 애플리케이션(313a) 이 사용하는 제1 가상 머신(310)의 리소스량을 모니터링한다.
이후, 제1 가상 머신(310)에 설치된 제1 애플리케이션(313a)이 사용하는 리소스량이 기설정된 임계값 미만인 경우 제1 애플리케이션(313a)을 스케일 인한다.
구체적으로, 제1 애플리케이션(313a)이 사용하는 리소스량이 임계값 미만인 경우 사용자에 의한 데이터 처리 요청이 없는 것으로 판단하여 제1 가상 머신(310)에 할당된 리소스를 회수하고 제1 가상 머신(310)을 삭제할 수 있다.
즉, 사용자에 의한 데이터 처리 요청을 수행하지 않는 제1 가상 머신(310)에 할당된 리소스를 회수함으로써 불필요한 리소스가 할당되는 경우를 방지할 수 있다는 효과를 달성할 수 있다.
도 9는 본 발명의 일 실시예에 따라 사용자에게 복수의 가상 머신이 할당된 경우 애플리케이션에 대한 스케일인을 수행하는 과정을 설명하기 위한 도면이다.
도 9에서는 사용자게에 복수의 가상 머신이 할당되어 있고, 각 가상 머신에 동일한 기능을 수행할 수 있는 애플리케이션이 설치된 경우 스케일인 과정이 수행되는 경우를 예로 든다.
사용자가 제1 애플리케이션(313a) 및 제2 애플리케이션(313b)을 실행시키며 데이터 처리 요청을 하는 도중 제2 애플리케이션(313b)에 대한 데이터 처리 요청이 감소하여, 제2 애플리케이션(313b)이 사용하는 리소스가 임계값 미만이 되는 경우가 발생될 수 있다.
이 경우, 가상 머신 스케일링 장치(150)에 의해 제2 애플리케이션(313b)에 대한 스케일인이 수행되고, 제2 가상 머신(510)은 삭제되어 리소스가 회수된다.
이후, 사용자에 의해 제2 애플리케이션(313b)을 통한 데이터 처리 요청, 즉 사용자 리퀘스트가 입력되면, 그 사용자 리퀘스트를 제1 애플리케이션(313a)에 전달함으로써 데이터 처리를 수행할 수 있도록 한다.
즉, 불필요한 리소스가 할당된 제2 가상 머신(510)을 삭제하고 동일한 기능을 수행할 수 있는 제1 애플리케이션(313a)에 의해 사용자 리퀘스트를 처리하도록 함으로써 한정적인 자원을 효율적으로 사용할 수 있도록 한다.
도 10은 본 발명의 일 실시예에 따른 가상 머신의 스케일링 방법을 설명하기 위한 흐름도이다.
모니터링 모듈(151)은 가상 머신에 설치된 에이전트(311)를 통해 가상 머신에 설치된 애플리케이션이 사용하는 리소스량을 모니터링한다(S1010). 모니터링의 대상은 애플리케이션이 사용하는 가상 머신의 CPU 사용률, 메모리 사용률 또는 저장 공간 사용률 등이 될 수 있다.
이후, 판단 모듈(153)이 모니터링된 리소스량을 이용하여 기 설정된 판단 기준으로 애플리케이션에 추가적인 리소스 할당이 필요한지 여부를 결정한다(S1020). 이때, 기 설정된 판단 기준은 애플리케이션의 속성 별로 상이하게 설정되어 있을 수 있다.
애플리케이션에 추가적인 리소스 할당이 필요하다고 판단되면, 기 생성된 가상 머신이 있는지 여부를 판단한다(S1030). 기 생성된 가상 머신이 없는 경우, 새로운 가상 머신을 생성하여 추가적인 리소스가 필요한 애플리케이션을 설치하여 실행시킨다 (S1060).
기 생성된 가상 머신이 있는 경우, 그 가상 머신의 잔여 리소스량과 추가적인 리소스 할당이 필요하다고 판단된 애플리케이션을 실행시키는데 필요한 리소스량을 비교한다(S1040).
비교 결과, 기 생성된 가상 머신의 잔여 리소스가 애플리케이션을 실행시키기에 충분한 경우, 제1 애플리케이션을 그 가상 머신으로 스케일 아웃한다. 구체적으로, 기 생성된 가상 머신에 애플리케이션을 설치하여 실행될 수 있도록 한다(S1050). 반면, 기 생성된 가상 머신의 잔여 리소스가 추가적인 리소스 할당이 필요한 애플리케이션을 실행하기에 충분하지 않은 경우, 새로운 가상 머신을 생성하여 그 가상 머신에 스케일 아웃한다(S1060).
상술한 바와 같이, 사용자에게 할당된 가상 머신의 리소스 사용량을 모니터링 하는 것이 아니고, 가상 머신에 설치된 애플리케이션의 리소스 사용량을 모니터링하여, 애플리케이션 별로 스케일 아웃을 수행함에 따라, 가상 머신 인스턴스를 보다 효율적으로 운영할 수 있다는 효과를 달성할 수 있다.
도 11은 본 발명의 또 다른 실시예에 따른 가상 머신 스케일링 장치를 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 가상 머신 스케일링 장치(900)를 설명하기 위한 도면이다. 본 발명의 일 실시예에 따른 가상 머신 스케일링 장치(1100)는 도 11에 도시된 구성을 포함할 수 있다.
구체적으로, 가상 머신 스케일링 장치(1100)는 명령어를 수행하는 프로세서(1110), 메모리(1120), 가상 머신의 스케일링 방법을 실행하기 위한 프로그램을 저장하는 저장 장치(1130), 및 가상 머신 스케일링 장치(1100)와 연결된 장치와 데이터 송수신을 하기 위한 네트워크 인터페이스(NIC)(1140)을 포함할 수 있다.
저장 장치(1130)에는 제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 단계, 상기 모니터링된 상기 애플리케이션이 사용하는 리소스량을 이용하여 기 설정된 판단 기준으로 상기 애플리케이션에 추가적인 리소스 할당이 필요한지 여부를 결정하는 단계 및 상기 추가적인 리소스 할당이 필요하다고 결정된 애플리케이션을 스케일 아웃하는 단계를 수행할 수 있는 프로그램이 저장될 수 있으며, 상술한 프로그램이 메모리(920)에 로드된 후 프로세서(1110)를 통해 수행될 수 있다.
한편, 상술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 방법들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (24)

  1. 제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 단계;
    상기 모니터링된 상기 애플리케이션이 사용하는 리소스량을 이용하여 기 설정된 판단 기준으로 상기 애플리케이션에 추가적인 리소스 할당이 필요한지 여부를 결정하는 단계; 및
    상기 추가적인 리소스 할당이 필요하다고 결정된 애플리케이션을 스케일 아웃(scale out) 하는 단계를 포함하는 가상 머신의 스케일링 방법.
  2. 제1항에 있어서,
    상기 애플리케이션을 스케일 아웃하는 단계는,
    기 생성된 가상 머신 중 상기 애플리케이션을 실행할 수 있는 리소스가 남아있는 제2 가상 머신에 상기 애플리케이션을 설치하는 단계를 포함하는 가상 머신의 스케일링 방법.
  3. 제2항에 있어서,
    상기 제2 가상 머신에 상기 애플리케이션을 설치하는 단계는,
    상기 애플리케이션을 실행하는데 필요한 리소스와 상기 제2 가상 머신의 잔여 리소스를 비교하는 단계; 및
    상기 제2 가상 머신의 잔여 리소스가 상기 애플리케이션 실행에 필요한 리소스를 초과하면 상기 애플리케이션을 상기 제2 가상 머신에 설치하는 단계;를 포함하는 가상 머신의 스케일링 방법.
  4. 제1항에 있어서,
    상기 애플리케이션을 스케일 아웃하는 단계는,
    새로운 제3 가상 머신을 생성하여 상기 애플리케이션을 설치하는 단계를 포함하는 가상 머신의 스케일링 방법.
  5. 제4항에 있어서,
    상기 제3 가상 머신을 생성하여 상기 애플리케이션을 설치하는 단계는,
    기 생성된 제2 가상 머신이 존재하는 경우, 상기 애플리케이션을 실행하는데 필요한 리소스와 상기 제2 가상 머신의 잔여 리소스를 비교하는 단계;
    상기 제2 가상 머신의 잔여 리소스가 상기 애플리케이션 실행에 필요한 리소스 미만이면 상기 제3 가상 머신을 생성하여 상기 애플리케이션을 설치하는 단계를 포함하는 가상 머신의 스케일링 방법.
  6. 제2항 또는 제4항에 있어서,
    상기 애플리케이션이 상기 제2 가상 머신 또는 상기 제3 가상 머신에 설치되면 상기 제1 가상 머신에서 상기 애플리케이션을 삭제하는 단계를 더 포함하는 가상 머신의 스케일링 방법.
  7. 제1항에 있어서,
    상기 기 설정된 판단 기준은,
    상기 애플리케이션이 사용하는 제1 가상 머신의 리소스량이 기 설정된 임계값을 초과하는 것인 가상 머신의 스케일링 방법.
  8. 제1항에 있어서,
    상기 기 설정된 판단 기준은
    애플리케이션의 속성에 따라 상이하게 설정되는 가상 머신의 스케일링 방법.
  9. 제1항에 있어서,
    제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 단계는,
    상기 제1 가상 머신에 상기 애플리케이션이 사용하는 리소스량 정보를 수집하는 에이전트(agent)를 설치하는 단계; 및
    상기 에이전트로부터 상기 애플리케이션에 의해 사용되는 리소스량 정보를 수신하는 단계를 포함하는 가상 머신의 스케일링 방법.
  10. 제1 항에 있어서,
    상기 스케일 아웃 하는 단계는,
    상기 스케일 아웃의 대상이 되는 애플리케이션 이외의 애플리케이션은 상기 제1 가상 머신에서의 실행 상태를 유지하는 단계를 포함하는 가상 머신의 스케일링 방법.
  11. 제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 모니터링 모듈;
    상기 모니터링 모듈로부터 수신된 상기 애플리케이션의 상기 제1 가상 머신 사용 정보를 이용하여, 기 설정된 판단 기준으로 상기 애플리케이션에 대한 추가적인 리소스 할당이 필요한지 여부를 결정하는 판단 모듈;
    추가적인 리소스 할당이 필요하다고 결정된 애플리케이션을 스케일 아웃(scale out)하는 스케줄링 모듈을 포함하는 가상 머신 스케일링 장치.
  12. 제11항에 있어서,
    상기 스케줄링 모듈은,
    기 생성된 가상 머신 중 상기 애플리케이션을 실행할 수 있는 리소스가 남아있는 제2 가상 머신에 상기 애플리케이션을 설치하는 가상 머신 스케일링 장치.
  13. 제12항에 있어서,
    상기 스케줄링 모듈은,
    상기 애플리케이션을 실행하는데 필요한 리소스와 상기 제2 가상 머신의 잔여 리소스를 비교하고, 상기 제2 가상 머신의 잔여 리소스가 상기 애플리케이션 실행헤 필요한 리소스를 초과하면 상기 애플리케이션을 상기 제2 가상 머신에 설치하는 가상 머신 스케일링 장치.
  14. 제11항에 있어서,
    상기 스케줄링 모듈은,
    새로운 제3 가상 머신을 생성하여 상기 애플리케이션을 설치하는 가상 머신 스케일링 장치.
  15. 제14항에 있어서,
    상기 스케줄링 모듈은,
    기 생성된 제2 가상 머신이 존재하는 경우, 상기 애플리케이션을 실행하는데 필요한 리소스와 상기 제2 가상 머신의 잔여 리소스를 비교하고, 상기 제2 가상 머신의 잔여 리소스가 상기 애플리케이션 실행에 필요한 리소스 미만이면 상기 제3 가상 머신을 생성하여 상기 애플리케이션을 설치하는 가상 머신 스케일링 장치.
  16. 제12항 또는 제14항에 있어서,
    상기 스케줄링 모듈은,
    상기 애플리케이션이 상기 제2 가상 머신 또는 상기 제3 가상 머신에 설치되면 상기 제1 가상 머신에서 상기 애플리케이션을 삭제하는 가상 머신 스케일링 장치.
  17. 제11항에 있어서,
    상기 기 설정된 판단 기준은,
    상기 애플리케이션이 사용하는 제1 가상 머신의 리소스량이 기 설정된 임계값을 초과하는 것인 가상 머신의 스케일링 장치.
  18. 제11항에 있어서,
    상기 기 설정된 판단 기준은
    상기 애플리케이션의 속성에 따라 상이하게 설정되는 가상 머신 스케일링 장치.
  19. 제11항에 있어서,
    상기 모니터링 모듈은,
    상기 제1 가상 머신에 설치된 에이전트(agent)로부터 상기 애플리케이션에 의해 사용되는 리소스량 정보를 수신하는 가상 머신의 스케일링 장치.
  20. 제11항에 있어서,
    상기 스케줄링 모듈은,
    상기 스케일 아웃의 대상이 되는 애플리케이션 이외의 애플리케이션은 상기 제1 가상 머신에서의 실행 상태를 유지하는 가상 머신의 스케일링 장치.
  21. 제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 단계;
    상기 모니터링된 상기 애플리케이션이 사용하는 리소스량을 이용하여 기 설정된 판단 기준으로 상기 애플리케이션에 할당된 리소스의 회수 여부를 결정하는 단계; 및
    상기 할당된 리소스에 대한 회수가 필요하다고 결정되면, 상기 제1 가상 머신에 설치된 애플리케이션을 스케일 인(scale in) 하는 단계를 포함하는 가상 머신의 스케일링 방법.
  22. 제1항에 있어서,
    상기 애플리케이션을 스케일 인하는 단계는,
    상기 애플리케이션이 설치된 상기 제1 가상 머신을 삭제하는 단계; 및
    상기 제1 가상 머신에 설치된 애플리케이션에 대한 사용자 리퀘스트가 수신되면, 기 생성된 가상 머신 중 상기 리퀘스트를 처리할 수 있는 애플리케이션이 설치된 제2 가상 머신에 상기 리퀘스트를 전달하는 단계를 포함하는 가상 머신의 스케일링 방법.
  23. 제1항에 있어서,
    상기 기 설정된 판단 기준은,
    상기 애플리케이션이 사용하는 제1 가상 머신의 리소스량이 기 설정된 임계값 미만인 가상 머신의 스케일링 방법.
  24. 컴퓨터 장치와 결합하여,
    제1 가상 머신에 설치된 애플리케이션에 의해 사용되는 리소스량을 모니터링하는 단계;
    상기 모니터링된 상기 애플리케이션이 사용하는 리소스량을 이용하여 기 설정된 판단 기준으로 상기 애플리케이션에 추가적인 리소스 할당이 필요한지 여부를 결정하는 단계; 및
    상기 추가적인 리소스 할당이 필요하다고 결정된 애플리케이션을 스케일 아웃(scale out) 하는 단계를 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
KR1020140138211A 2014-10-14 2014-10-14 가상 머신 스케일링 장치 및 그 방법 KR20160043706A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140138211A KR20160043706A (ko) 2014-10-14 2014-10-14 가상 머신 스케일링 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140138211A KR20160043706A (ko) 2014-10-14 2014-10-14 가상 머신 스케일링 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20160043706A true KR20160043706A (ko) 2016-04-22

Family

ID=55918254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140138211A KR20160043706A (ko) 2014-10-14 2014-10-14 가상 머신 스케일링 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR20160043706A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210058471A (ko) * 2019-11-14 2021-05-24 에스피테크놀러지 주식회사 클라우드 시스템 및 그 제어방법
KR20210101111A (ko) * 2020-02-07 2021-08-18 쿠팡 주식회사 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법
KR102474986B1 (ko) * 2022-03-03 2022-12-07 농업협동조합중앙회 클라우드 상의 가상 머신 자원 할당을 지원하는 서버 및 그 제어 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210058471A (ko) * 2019-11-14 2021-05-24 에스피테크놀러지 주식회사 클라우드 시스템 및 그 제어방법
KR20210101111A (ko) * 2020-02-07 2021-08-18 쿠팡 주식회사 실시간 가상 서버 성능 데이터의 중앙 집중화 및 진단을 위한 시스템 및 방법
US11544098B2 (en) 2020-02-07 2023-01-03 Coupang Corp. Systems and methods for centralization and diagnostics for live virtual server performance data
KR102474986B1 (ko) * 2022-03-03 2022-12-07 농업협동조합중앙회 클라우드 상의 가상 머신 자원 할당을 지원하는 서버 및 그 제어 방법
US11886565B2 (en) 2022-03-03 2024-01-30 National Agricultural Cooperative Federation Server that supports security access of terminal device of the user and controlling method thereof

Similar Documents

Publication Publication Date Title
US9588789B2 (en) Management apparatus and workload distribution management method
CN107003887B (zh) Cpu超载设置和云计算工作负荷调度机构
US9367340B2 (en) Resource management method and apparatus for virtual machine system, and virtual machine system
US9405572B2 (en) Optimized resource allocation and management in a virtualized computing environment
US9442763B2 (en) Resource allocation method and resource management platform
US9069465B2 (en) Computer system, management method of computer resource and program
US9658869B2 (en) Autonomously managed virtual machine anti-affinity rules in cloud computing environments
US10205771B2 (en) System and method for deploying an application in a computer system
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
US8424007B1 (en) Prioritizing tasks from virtual machines
US9448853B2 (en) Method of allocating physical computing resource of computer system
JP6190969B2 (ja) マルチテナントリソース調停方法
US20130227585A1 (en) Computer system and processing control method
JP2011198332A (ja) 仮想マシン管理プログラム及び仮想マシン管理装置
US9632931B2 (en) Computer system and memory allocation adjustment method for computer system
KR20130019698A (ko) 사용자 스케줄러와 마이그레이션(Migration)을 통한 자원 최적화 방법 및 시스템
US20220100551A1 (en) Virtual disk management for efficient bin packing across nodes
CN111338785A (zh) 资源调度方法及装置、电子设备、存储介质
Babu et al. Interference aware prediction mechanism for auto scaling in cloud
KR20160043706A (ko) 가상 머신 스케일링 장치 및 그 방법
US9742687B2 (en) Management system and method for execution of virtual machines
US10721181B1 (en) Network locality-based throttling for automated resource migration
US11360798B2 (en) System and method for internal scalable load service in distributed object storage system
US11687269B2 (en) Determining data copy resources
KR20120118271A (ko) 가상머신 이동 대상 선택 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination