(19) 대한민국특허청(KR) (12) 공개특허공보(A)
(11) 공개번호 10-2018-0105874 (43) 공개일자 2018년10월01일 (51) 국제특허분류(Int. Cl.)
G06F 9/455 (2018.01) (52) CPC특허분류
G06F 9/45558 (2013.01) G06F 2009/45591 (2013.01) (21) 출원번호 10-2017-0033134 (22) 출원일자 2017년03월16일 심사청구일자 없음
(71) 출원인
한국전자통신연구원
대전광역시 유성구 가정로 218 (가정동) (72) 발명자
장수민
대전광역시 서구 도솔로483번길 90, 401호(
탄방동) (74) 대리인
한양특허법인 전체 청구항 수 : 총 20 항
(54) 발명의 명칭 파워 사용량에 대한 실측을 통해 가상 머신을 선별적으로 제공하는 방법, 장치 및 시스템 (57) 요 약
파워 사용량에 대한 실측을 통해 가상 머신을 선별적으로 제공하는 방법, 장치 및 시스템이 제공된다. 사용자 단 말로부터의 가상 머신의 제공이 요청되면, 복수의 가상 머신 서버들에서 후보 가상 머신들이 활성화된다. 사용자 단말이 제공하는 입력 데이터는 복제 및 네트워크 가상화를 통해 복수의 후보 가상 머신의 각각에게 제공되며, 복제 및 네트워크 가상화를 통해 동일한 후보 가상 머신들이 복수의 가상 머신 서버들에서 실행된다. 후보 가상 머신들이 실행되면 파워 사용량에 기반하여 하나의 후보 가상 머신이 사용자 단말에게 제공되는 가상 머신으로 최종적으로 선택된다. 후보 가상 머신의 파워 사용량은 후보 가상 머신을 실행하는 가상 머신 서버에서 실측되며, 후보 가상 머신이 실행되기 전의 파워 사용량과 비교된다.
대 표 도 - 도1
이 발명을 지원한 국가연구개발사업 과제고유번호 R0101-16-0237 부처명 미래창조과학부
연구관리전문기관 정보통신기술진흥센터(IITP) 연구사업명 ETRI연구개발지원사업
연구과제명 (통합)고집적 저전력 프로세서 기반 30% 이상 에너지절감 범용 운영 체제 및 가상화 핵심 기술 개발
기 여 율 1/1
주관기관 한국전자통신연구원 연구기간 2016.03.01 ~ 2017.02.28
명 세 서 청구범위 청구항 1
사용자 단말로부터의 가상 머신의 제공의 요청에 따라, 복수의 가상 머신 서버들의 각 가상 머신 서버에서 후보 가상 머신을 활성화함으로써 복수의 가상 머신 서버들에서 복수의 후보 가상 머신들을 활성화하는 단계; 및 상기 복수의 후보 가상 머신들의 파워 사용량들에 기반하여 상기 복수의 후보 가상 머신들 중 하나를 상기 사용 자 단말에게 제공되는 상기 가상 머신으로 선택하는 단계
를 포함하는 가상 머신 제공 방법.
청구항 2 제1항에 있어서,
상기 복수의 가상 머신 서버들은 전체의 가상 머신 서버들 중 기정의된 조건에 따라서 선택된 일부인 가상 머신 제공 방법.
청구항 3 제2항에 있어서,
상기 전체의 가상 머신 서버들 중 파워 사용량의 측정의 대상인 다른 후보 가상 머신이 활성화된 다른 후보 가 상 머신이 활성화된 가상 머신 서버는 상기 복수의 가상 머신 서버들의 선택에서 제외되는 가상 머신 제공 방법.
청구항 4 제1항에 있어서,
상기 복수의 가상 머신 서버들에서 상기 복수의 후보 가상 머신들이 활성화될 때 상기 복수의 가상 머신 서버들 의 상태들은 서로 상이한 가상 머신 제공 방법.
청구항 5 제1항에 있어서,
상기 복수의 후보 가상 머신들이 활성화되면, 상기 복수의 후보 가상 머신들 중 상기 가상 머신이 선택되기 전 에 상기 사용자 단말은 상기 복수의 후보 가상 머신들과 동시에 통신하는 가상 머신 제공 방법.
청구항 6 제5항에 있어서,
상기 사용자 단말이 후보 가상 머신에게 제공하는 입력 데이터는 복제 및 네트워크 가상화를 통해 상기 복수의 후보 가상 머신의 각각에게 제공되는 가상 머신 제공 방법.
청구항 7 제1항에 있어서,
상기 후보 가상 머신의 파워 사용량은 상기 가상 머신 서버에서 상기 후보 가상 머신이 활성화되기 이전의 실측 된 파워 사용량 및 상기 가상 머신 서버에서 상기 후보 가상 머신이 활성화된 이후의 실측된 파워 사용량 간의 비교를 통해 계산되는 가상 머신 제공 방법.
청구항 8
제7항에 있어서,
상기 후보 가상 머신이 활성화된 이후의 실측된 파워 소모량은 상기 후보 가상 머신의 활성화 후 기정의된 시간 이 경과한 후 측정되는 가상 머신 제공 방법.
청구항 9 제1항에 있어서,
상기 사용자 단말에게 제공되는 상기 가상 머신은 파워와 관련된 하나 이상의 변수들에 기반하여 선택되고, 상기 파워와 관련된 하나 이상의 변수들은 복수의 후보 가상 머신들의 각 후보 가상 머신의 파워 사용량, 상기 각 후보 가상 머신이 실행되는 가상 머신 서버의 온도, 상기 파워 사용량의 최대 값 및 최소 값 간의 편차, 상 기 후보 가상 머신의 중앙 처리 장치(Central Processing Unit; CPU)의 사용률, 상기 후보 가상 머신의 메모리 의 사용률, 상기 후보 가상 머신의 입출력(Input/Output; I/O) 자원들의 사용률 및 상기 후보 가상 머신의 평균 네트워크 전송률 중 적어도 하나를 포함하는 가상 머신 제공 방법.
청구항 10 제9항에 있어서,
상기 복수의 후보 가상 머신들 중 가장 적은 파워 사용량을 갖는 기정의된 개수 또는 기정의된 비율의 후보 가 상 머신들이 1차적으로 선택되고,
상기 파워와 관련된 하나 이상의 변수들에 기반하여 상기 1차적으로 선택된 후보 가상 머신들 중 하나가 상기 사용자 단말에게 제공되는 상기 가상 머신으로 선택되는 가상 머신 제공 방법.
청구항 11 제9항에 있어서,
상기 사용자 단말에게 제공되는 가상 머신은 상기 복수의 후보 가상 머신들 중 상기 파워와 관련된 하나 이상의 변수들의 적어도 일부에 대한 스카이라인 질의를 사용하여 선택되는 가상 머신 제공 방법.
청구항 12 제11항에 있어서,
상기 스카이라인 질의에 대해 검색된 후보 가상 머신들이 2개 이상인 경우, 상기 파워와 관련된 하나 이상의 변 수들 중 상기 적어도 일부를 제외한 나머지의 변수에 의해 상기 검색된 후보 가상 머신들 중 하나가 상기 사용 자 단말에게 제공되는 상기 가상 머신으로 선택되는 가상 머신 제공 방법.
청구항 13
사용자 단말로부터 가상 머신의 제공의 요청을 수신하고, 복수의 가상 머신 서버들의 각각으로 가상 머신 활성 화 요청 메시지를 전송하고, 상기 복수의 가상 머신 서버들의 각각으로부터 상기 가상 머신 활성화 요청 메시지 에 대한 응답을 수신하는 통신부; 및
상기 복수의 후보 가상 머신들의 설정을 위한 정책을 수립하는 처리부 를 포함하는 관리 서버.
청구항 14 제13항에 있어서,
상기 처리부는 전체의 가상 머신 서버들 중 상기 사용자 단말이 요청하는 상기 가상 머신을 제공할 수 있는 상 기 복수의 가상 머신 서버들을 선정하는 관리 서버.
청구항 15 제13항에 있어서,
상기 통신부는 상기 사용자 단말로 다중 통신할 가상 머신 리스트 정보 메시지를 전송하고,
상기 다중 통신할 가상 머신 리스트 정보 메시지는 상기 사용자 단말이 다중 통신할 대상을 나타내는 정보를 포 함하는 관리 서버.
청구항 16 제13항에 있어서,
상기 통신부는 상기 복수의 가상 머신 서버들로 가상 머신 파워 관련 정보 요청 메시지를 전송하고, 상기 복수 의 가상 머신 서버들로부터 가상 머신 파워 관련 정보들을 수신하고,
상기 가상 머신 파워 관련 정보들은 상기 복수의 후보 가상 머신들의 파워 사용량들의 정보를 포함하고,
상기 처리부는 상기 복수의 후보 가상 머신들의 파워 사용량들에 기반하여 상기 복수의 후보 가상 머신들 중 하 나를 상기 사용자 단말에게 제공되는 상기 가상 머신으로 선택하는 관리 서버.
청구항 17 제16항에 있어서,
상기 통신부는 상기 복수의 가상 머신 서버들의 각각으로 최적 가상 머신 선택 결과 메시지를 전송하고,
상기 최적 가상 머신 선택 결과 메시지는 상기 최적 가상 머신 선택 결과 메시지를 수신하는 가상 머신 서버의 후보 가상 머신이 상기 사용자 단말이 요청한 상기 가상 머신으로서 선택된 것인가를 나타내는 관리 서버.
청구항 18
가상 머신 서버로부터 후보 가상 머신의 활성화를 요청하는 가상 머신 활성화 요청 메시지를 수신하고, 상기 가 상 머신 활성화 요청 메시지에 대한 가상 머신 활성화 서버 정보 메시지를 상기 가상 머신 서버로 전송하고, 상 기 가상 머신 서버로부터 상기 후보 가상 머신의 파워 사용량에 관련된 정보를 요청하는 가상 머신 파워 관련 정보 요청 메시지를 수신하고, 상기 후보 가상 머신의 파워 사용량에 관련된 가상 머신 파워 관련 정보를 상기 가상 머신 서버로 전송하는 통신부; 및
상기 후보 가상 머신을 활성화하고, 파워 사용량의 측정에 기반하여 상기 가상 머신 파워 관련 정보를 생성하는 처리부
를 포함하는 가상 머신 서버.
청구항 19 제18항에 있어서,
상기 가상 머신 파워 관련 정보는 상기 후보 가상 머신의 파워 사용량을 포함하고,
상기 파워 사용량은 상기 가상 머신 서버에서 상기 후보 가상 머신이 활성화되기 이전의 실측된 파워 사용량 및 상기 가상 머신 서버에서 상기 후보 가상 머신이 활성화된 이후의 실측된 파워 사용량 간의 비교를 통해 계산되 는 가상 머신 서버.
청구항 20 제19항에 있어서,
상기 통신부는 상기 가상 머신 서버로부터 상기 가상 머신 서버의 상기 후보 가상 머신이 사용자 단말이 요청한 가상 머신으로서 선택된 것인가를 나타내는 최적 가상 머신 선택 결과 메시지를 수신하고,
상기 최적 가상 머신 선택 결과 메시지는 상기 가상 머신 서버의 상기 후보 가상 머신이 사용자 단말이 요청한 가상 머신으로서 선택된 것인가를 나타내고,
상기 처리부는 가상 머신 선택 결과 메시지가 상기 후보 가상 머신이 상기 가상 머신으로서 선택되지 않은 경우 상기 후보 가상 머신을 비활성화하는 가상 머신 서버.
발명의 설명 기 술 분 야
아래의 실시예들은 가상 머신을 제공함에 있어서 에너지 효율성을 향상시키기 위한 방법, 장치 및 시스템에 관 [0001]
한 것으로 보다 상세히는 파워 사용량에 대한 실측을 통해 가상 머신을 선별적으로 제공하는 방법, 장치 및 시 스템이 개시된다.
배 경 기 술
가상화 기술은 하나의 컴퓨터에서 여러 개의 운영 체제(Operating System; OS)들을 동작시키기 위한 기술이다.
[0002]
인터넷의 보급이 확산되고, 가상화 기술이 발전함에 따라 사용자는 개인 컴퓨터를 가상 머신(Virtual Machine;
VM)의 형태로 서버에 배치할 수 있고, 자신의 클라이언트를 서버의 가상 머신에 연결함으로써 가상 머신에서 제 공되는 자신이 원하는 기능을 사용할 수 있다.
그러나, 가상 머신을 제공하는 기존의 시스템은 가상 머신에 의한 파워 소모의 정도를 고려하지 않으며, 사용자 [0003]
의 요청에 따라 요구되는 가상 머신을 제공할 서버를 임의로 선택하고, 선택된 서버를 통해 가상 머신을 제공한 다. 또는, 가상 머신을 제공하는 기존의 시스템은 정의된 에너지 정책을 통하여 요구되는 가상 머신을 제공한다.
그러나, 여러 가지 이유들에 의해, 적용되는 에너지 정책이 일부 제한적인 효과 만을 보여주거나, 오히려 역효 [0004]
과를 야기하는 경우가 빈번하게 발생한다.
따라서, 기존의 가상화 기술을 따르는 서버 또는 시스템은 에너지 절감에 대한 고려를 하지 않은 채 선택된 가 [0005]
상 머신을 사용자에게 일방적으로 제공한다는 단점을 가지고 있다. 또한, 기존의 가상화 기술을 따르는 서버 또 는 시스템은 서버는 사용의 측면에서 효율적이지 않은 선택 또는 정책을 통하여 가상 머신을 활성화한다는 단점 을 가지고 있다.
가상 머신의 파워 사용량에 관련하여 한국공개특허 제2015-0009662호가 제시된 바 있다.
[0006]
발명의 내용 해결하려는 과제
일 실시예는 가상 머신의 파워 사용량을 실측함으로써, 에너지 효율성에 있어서 가장 적합한 가상 머신을 선택 [0007]
및 제공하는 장치 및 방법을 제공할 수 있다.
일 실시예는 데이터 복제 및 가상화를 통해 복수의 가상 머신 서버들에서 동일한 후보 가상 머신들을 동시의 실 [0008]
행하고, 동시의 실행을 통해 가상 머신 서버들에서의 후보 가상 머신들의 전력 사용량들의 실측을 가능하게 하 는 장치 및 방법을 제공할 수 있다.
일 실시예는 가상 머신의 파워 사용량에 따라 다중의 가상 머신 서버들이 선택적으로 가상 머신을 제공하는 장 [0009]
치 및 방법을 제공할 수 있다.
일 실시예는 사용자에 의해 요청된 서비스에 대하여, 다양한 동적 에너지 절감 정책에 따른 가상 머신의 전력 [0010]
사용량을 실측함에 따라, 가장 적합한 가상 머신을 제공하는 장치 및 방법을 제공할 수 있다.
일 실시예는 에너지 효율성에 있어서 가장 적합한 가상 머신을 선택 및 제공함으로써 에너지 절감을 가능하게 [0011]
하는 장치 및 방법을 제공할 수 있다.
일 실시예는 파워 사용량 및 성능에 대한 비교를 통해 가장 적합한 가상 머신을 제공하는 장치 및 방법을 제공 [0012]
할 수 있다.
과제의 해결 수단
일 측에 있어서, 사용자 단말로부터의 가상 머신의 제공의 요청에 따라, 복수의 가상 머신 서버들의 각 가상 머 [0013]
신 서버에서 후보 가상 머신을 활성화함으로써 복수의 가상 머신 서버들에서 복수의 후보 가상 머신들을 활성화 하는 단계; 및 상기 복수의 후보 가상 머신들의 파워 사용량들에 기반하여 상기 복수의 후보 가상 머신들 중 하 나를 상기 사용자 단말에게 제공되는 상기 가상 머신으로 선택하는 단계를 포함하는 가상 머신 제공 방법이 제
공된다.
상기 복수의 가상 머신 서버들은 전체의 가상 머신 서버들 중 기정의된 조건에 따라서 선택된 일부일 수 있다.
[0014]
상기 전체의 가상 머신 서버들 중 파워 사용량의 측정의 대상인 다른 후보 가상 머신이 활성화된 다른 후보 가 [0015]
상 머신이 활성화된 가상 머신 서버는 상기 복수의 가상 머신 서버들의 선택에서 제외될 수 있다.
상기 복수의 가상 머신 서버들에서 상기 복수의 후보 가상 머신들이 활성화될 때 상기 복수의 가상 머신 서버들 [0016]
의 상태들은 서로 상이할 수 있다.
상기 복수의 후보 가상 머신들이 활성화되면, 상기 복수의 후보 가상 머신들 중 상기 가상 머신이 선택되기 전 [0017]
에 상기 사용자 단말은 상기 복수의 후보 가상 머신들과 동시에 통신할 수 있다.
상기 사용자 단말이 후보 가상 머신에게 제공하는 입력 데이터는 복제 및 네트워크 가상화를 통해 상기 복수의 [0018]
후보 가상 머신의 각각에게 제공될 수 있다.
상기 후보 가상 머신의 파워 사용량은 상기 가상 머신 서버에서 상기 후보 가상 머신이 활성화되기 이전의 실측 [0019]
된 파워 사용량 및 상기 가상 머신 서버에서 상기 후보 가상 머신이 활성화된 이후의 실측된 파워 사용량 간의 비교를 통해 계산될 수 있다.
상기 후보 가상 머신이 활성화된 이후의 실측된 파워 소모량은 상기 후보 가상 머신의 활성화 후 기정의된 시간 [0020]
이 경과한 후 측정될 수 있다.
상기 사용자 단말에게 제공되는 상기 가상 머신은 파워와 관련된 하나 이상의 변수들에 기반하여 선택될 수 있 [0021]
다.
상기 파워와 관련된 하나 이상의 변수들은 복수의 후보 가상 머신들의 각 후보 가상 머신의 파워 사용량, 상기 [0022]
각 후보 가상 머신이 실행되는 가상 머신 서버의 온도, 상기 파워 사용량의 최대 값 및 최소 값 간의 편차, 상 기 후보 가상 머신의 중앙 처리 장치(Central Processing Unit; CPU)의 사용률, 상기 후보 가상 머신의 메모리 의 사용률, 상기 후보 가상 머신의 입출력(Input/Output; I/O) 자원들의 사용률 및 상기 후보 가상 머신의 평균 네트워크 전송률 중 적어도 하나를 포함할 수 있다.
상기 복수의 후보 가상 머신들 중 가장 적은 파워 사용량을 갖는 기정의된 개수 또는 기정의된 비율의 후보 가 [0023]
상 머신들이 1차적으로 선택될 수 있다.
상기 파워와 관련된 하나 이상의 변수들에 기반하여 상기 1차적으로 선택된 후보 가상 머신들 중 하나가 상기 [0024]
사용자 단말에게 제공되는 상기 가상 머신으로 선택될 수 있다.
상기 사용자 단말에게 제공되는 가상 머신은 상기 복수의 후보 가상 머신들 중 상기 파워와 관련된 하나 이상의 [0025]
변수들의 적어도 일부에 대한 스카이라인 질의를 사용하여 선택될 수 있다.
상기 스카이라인 질의에 의해 검색된 후보 가상 머신들이 2개 이상인 경우, 상기 파워와 관련된 하나 이상의 변 [0026]
수들 중 상기 적어도 일부를 제외한 나머지의 변수에 의해 상기 검색된 후보 가상 머신들 중 하나가 상기 사용 자 단말에게 제공되는 상기 가상 머신으로 선택될 수 있다.
다른 일 측에 있어서, 사용자 단말로부터 가상 머신의 제공의 요청을 수신하고, 복수의 가상 머신 서버들의 각 [0027]
각으로 가상 머신 활성화 요청 메시지를 전송하고, 상기 복수의 가상 머신 서버들의 각각으로부터 상기 가상 머 신 활성화 요청 메시지에 대한 응답을 수신하는 통신부; 및 상기 복수의 후보 가상 머신들의 설정을 위한 정책 을 수립하는 처리부를 포함하는 관리 서버가 제공된다.
상기 처리부는 전체의 가상 머신 서버들 중 상기 사용자 단말이 요청하는 상기 가상 머신을 제공할 수 있는 상 [0028]
기 복수의 가상 머신 서버들을 선정할 수 있다.
상기 통신부는 상기 사용자 단말로 다중 통신할 가상 머신 리스트 정보 메시지를 전송할 수 있다.
[0029]
상기 다중 통신할 가상 머신 리스트 정보 메시지는 상기 사용자 단말이 다중 통신할 대상을 나타내는 정보를 포 [0030]
함할 수 있다.
상기 통신부는 상기 복수의 가상 머신 서버들로 가상 머신 파워 관련 정보 요청 메시지를 전송하고, 상기 복수 [0031]
의 가상 머신 서버들로부터 가상 머신 파워 관련 정보들을 수신할 수 있다.
상기 가상 머신 파워 관련 정보들은 상기 복수의 후보 가상 머신들의 파워 사용량들의 정보를 포함할 수 있다.
[0032]
상기 처리부는 상기 복수의 후보 가상 머신들의 파워 사용량들에 기반하여 상기 복수의 후보 가상 머신들 중 하 [0033]
나를 상기 사용자 단말에게 제공되는 상기 가상 머신으로 선택할 수 있다.
상기 통신부는 상기 복수의 가상 머신 서버들의 각각으로 최적 가상 머신 선택 결과 메시지를 전송할 수 있다.
[0034]
상기 최적 가상 머신 선택 결과 메시지는 상기 최적 가상 머신 선택 결과 메시지를 수신하는 가상 머신 서버의 [0035]
후보 가상 머신이 상기 사용자 단말이 요청한 상기 가상 머신으로서 선택된 것인가를 나타낼 수 있다.
또 다른 일 측에 있어서, 가상 머신 서버로부터 후보 가상 머신의 활성화를 요청하는 가상 머신 활성화 요청 메 [0036]
시지를 수신하고, 상기 가상 머신 활성화 요청 메시지에 대한 가상 머신 활성화 서버 정보 메시지를 상기 가상 머신 서버로 전송하고, 상기 가상 머신 서버로부터 상기 후보 가상 머신의 파워 사용량에 관련된 정보를 요청하 는 가상 머신 파워 관련 정보 요청 메시지를 수신하고, 상기 후보 가상 머신의 파워 사용량에 관련된 가상 머신 파워 관련 정보를 상기 가상 머신 서버로 전송하는 통신부; 및 상기 후보 가상 머신을 활성화하고, 파워 사용량 의 측정에 기반하여 상기 가상 머신 파워 관련 정보를 생성하는 처리부를 포함하는 가상 머신 서버가 제공된다.
상기 가상 머신 파워 관련 정보는 상기 후보 가상 머신의 파워 사용량을 포함할 수 있다.
[0037]
상기 파워 사용량은 상기 가상 머신 서버에서 상기 후보 가상 머신이 활성화되기 이전의 실측된 파워 사용량 및 [0038]
상기 가상 머신 서버에서 상기 후보 가상 머신이 활성화된 이후의 실측된 파워 사용량 간의 비교를 통해 계산될 수 있다.
상기 통신부는 상기 가상 머신 서버로부터 상기 가상 머신 서버의 상기 후보 가상 머신이 사용자 단말이 요청한 [0039]
가상 머신으로서 선택된 것인가를 나타내는 최적 가상 머신 선택 결과 메시지를 수신할 수 있다.
상기 최적 가상 머신 선택 결과 메시지는 상기 가상 머신 서버의 상기 후보 가상 머신이 사용자 단말이 요청한 [0040]
가상 머신으로서 선택된 것인가를 나타낼 수 있다.
상기 처리부는 가상 머신 선택 결과 메시지가 상기 후보 가상 머신이 상기 가상 머신으로서 선택되지 않은 경우 [0041]
상기 후보 가상 머신을 비활성화할 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 장치, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램 [0042]
을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
발명의 효과
가상 머신의 파워 사용량을 실측함으로써, 에너지 효율성에 있어서 가장 적합한 가상 머신을 선택 및 제공하는 [0043]
장치 및 방법이 제공된다.
데이터 복제 및 가상화를 통해 복수의 가상 머신 서버들에서 동일한 후보 가상 머신들을 동시의 실행하고, 동시 [0044]
의 실행을 통해 가상 머신 서버들에서의 후보 가상 머신들의 전력 사용량들의 실측을 가능하게 하는 장치 및 방 법이 제공된다.
가상 머신의 파워 사용량에 따라 다중의 가상 머신 서버들이 선택적으로 가상 머신을 제공하는 장치 및 방법이 [0045]
제공된다.
사용자에 의해 요청된 서비스에 대하여, 다양한 동적 에너지 절감 정책에 따른 가상 머신의 전력 사용량을 실측 [0046]
함에 따라, 가장 적합한 가상 머신을 제공하는 장치 및 방법이 제공된다.
에너지 효율성에 있어서 가장 적합한 가상 머신을 선택 및 제공함으로써 에너지 절감을 가능하게 하는 장치 및 [0047]
방법이 제공된다.
파워 사용량 및 성능에 대한 비교를 통해 가장 적합한 가상 머신을 제공하는 장치 및 방법이 제공된다.
[0048]
도면의 간단한 설명
도 1은 일 실시예에 따른 가상 머신 제공 시스템을 나타내는 개념도이다.
[0049]
도 2은 일 실시예에 따른 사용자 단말의 구조도이다.
도 3은 일 실시예에 따른 관리 서버의 구조도이다.
도 4는 일 실시예에 따른 가상 머신 서버의 구조도이다.
도 5는 일 예에 따른 제1 가상 머신 서버의 구성을 나타낸다.
도 6은 일 예에 따른 제2 가상 머신 서버의 구성을 나타낸다.
도 7은 일 예에 따른 관리 서버의 구성을 나타낸다.
도 8은 일 실시예에 따른 가상 머신 제공 방법의 흐름도이다.
도 9는 일 실시예에 따른 후보 가상 머신들을 생성하는 방법의 흐름도이다.
도 10에서는 복수의 후보 가상 머신들을 동시에 실행하기 위한 사용자 단말의 구성을 나타낸다.
도 11은 일 실시예에 따른 후보 가상 머신들 중 사용자 단말에게 제공될 가상 머신을 선택하는 방법의 흐름도이 다.
도 12는 일 예에 따른 최적의 후보 가상 머신을 선택하는 방법을 설명하는 개념도이다.
발명을 실시하기 위한 구체적인 내용
후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이 [0050]
들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지 만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성 은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변 경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨 부된 청구항에 의해서만 한정된다.
도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형 [0051]
상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
실시예에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
[0052]
실시예에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다 른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않으며, 추가적인 구성이 예시적 실시예들 의 실시 또는 예시적 실시예들의 기술적 사상의 범위에 포함될 수 있음을 의미한다. 어떤 구성요소(component) 가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들이 서로 간에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 상기의 2개의 구성요소들의 중간에 다른 구 성요소가 존재할 수도 있다고 이해되어야 할 것이다.
제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기의 구성요소들은 상기의 용어 [0053]
들에 의해 한정되어서는 안 된다. 상기의 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하여 지칭하기 위해서 사용된다. 예를 들어, 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한 실시예들에 나타나는 구성요소들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으 [0054]
로, 각 구성요소가 분리된 하드웨어나 하나의 소프트웨어 구성 단위로만 이루어짐을 의미하지 않는다. 즉, 각 구성요소는 설명의 편의상 각각의 구성요소로 나열된 것이다. 예를 들면, 구성요소들 중 적어도 두 개의 구성요 소들이 하나의 구성요소로 합쳐질 수 있다. 또한, 하나의 구성요소가 복수의 구성요소들로 나뉠 수 있다. 이러 한 각 구성요소의 통합된 실시예 및 분리된 실시예 또한 본질에서 벗어나지 않는 한 권리범위에 포함된다.
또한, 일부의 구성요소는 본질적인 기능을 수행하는 필수적인 구성요소는 아니고 단지 성능을 향상시키기 위한 [0055]
선택적 구성요소일 수 있다. 실시예들은 실시예의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 예를 들면, 단지 성능 향상을 위해 사용되는 구성요소와 같은, 선택적 구성요소가 제외된 구조 또한 권리 범위에 포함된다.
이하에서는, 기술분야에서 통상의 지식을 가진 자가 실시예들을 용이하게 실시할 수 있도록 하기 위하여, 첨부 [0056]
된 도면을 참조하여 실시예들을 상세히 설명하기로 한다. 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기 능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하에서, 용어 "파워 사용량", 용어 "파워 소모량" 및 용어 "파워 소모도"는 서로 대체하여 사용될 수 있다.
[0057]
도 1은 일 실시예에 따른 가상 머신 제공 시스템을 나타내는 개념도이다.
[0058]
가상 머신 제공 시스템(100)은 사용자 단말(110), 관리 서버(120) 및 가상 머신 서버(130)를 포함할 수 있다.
[0059]
사용자 단말(110), 관리 서버(120) 및 가상 머신 서버(130)는 가상 머신 제공 시스템(100)의 3개의 주요 부분들 [0060]
일 수 있다. 주요 부분들은 통신 네트워크로 서로 간에 연결될 수 있고, 서로 간에 요구되는 메시지를 주고 받 을 수 있다. 도 1의 통신 네트워크는 후술될 도 2의 네트워크(299), 도 3의 네트워크(399) 및 도 4의 네트워크 (499)에 대응할 수 있다.
가상 머신 서버(130)는 복수일 수 있다. 도 1에서는, 복수의 가상 머신 서버들로서 제1 가상 머신 서버(130-1) [0061]
및 제2 가상 머신 서버(130-2)가 도시되었다.
사용자 단말(110)은 사용자가 최종적으로 사용하는 인터페이스를 갖는 정보 기술(Information Technology; IT) [0062]
장비(equipment)일 수 있다. 예를 들면, 사용자 단말(110)은 모바일폰, 스마트폰, 개인용 컴퓨터 및 타블렛 등 일 수 있다.
가상 머신 서버(130)는 가상 머신을 직접적으로 제어 및 실행할 수 있다.
[0063]
복수의 가상 머신 서버들은 동일 기종 또는 이기종의 다수 개의 서버들일 수 있다.
[0064]
가상 머신 제공 시스템(100)에서, 복수의 가상 머신 서버들은 가상 머신들을 각각 생성할 수 있다.
[0065]
도 2은 일 실시예에 따른 사용자 단말의 구조도이다.
[0066]
도 2에서 도시된 바와 같이, 사용자 단말(110)은 처리부(210), 통신부(220), 메모리(230), 저장소(240) 및 버스 [0067]
(290) 중 적어도 일부를 포함할 수 있다. 처리부(210), 통신부(220), 메모리(230) 및 저장소(240) 등과 같은 사 용자 단말(110)의 구성요소들은 버스(290)를 통해 서로 간에 통신할 수 있다.
처리부(210)는 메모리(230) 또는 저장소(240)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하 [0068]
는 반도체 장치일 수 있다. 예를 들면, 처리부(210)는 적어도 하나의 하드웨어 프로세서(processor)일 수 있다.
처리부(210)는 사용자 단말(110)의 동작을 위해 요구되는 작업을 처리할 수 있다. 처리부(210)는 실시예들에서 [0069]
설명된 처리부(210)의 동작 또는 단계의 코드를 실행(execute)할 수 있다.
처리부(210)는 후술될 실시예에서 설명될 정보의 생성, 저장 및 출력을 수행할 수 있으며, 기타 사용자 단말 [0070]
(110)에서 이루어지는 단계의 동작을 수행할 수 있다.
통신부(220)는 네트워크(299)에 연결될 수 있다. 사용자 단말(110)의 동작을 위해 요구되는 데이터 또는 정보를 [0071]
수신할 수 있으며, 사용자 단말(110)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다. 통신부(22 0)는 네트워크(299)를 통해 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다.
예를 들면, 통신부(220)는 네트워크 칩(chip) 또는 포트(port)일 수 있다.
메모리(230) 및 저장소(240)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리 [0072]
(230)는 롬(ROM)(231) 및 램(RAM)(232) 중 적어도 하나를 포함할 수 있다. 저장소(240)는 램, 플레시(flash) 메모리 및 하드 디스크(hard disk) 등과 같은 내장형의 저장 매체를 포함할 수 있고, 메모리 카드 등과 같은 탈 착 가능한 저장 매체를 포함할 수 있다.
사용자 단말(110)의 기능 또는 동작은 처리부(210)가 적어도 하나의 프로그램 모듈을 실행함에 따라 수행될 수 [0073]
있다. 메모리(230) 및/또는 저장소(240)는 적어도 하나의 프로그램 모듈을 저장할 수 있다. 적어도 하나의 프로 그램 모듈은 처리부(210)에 의해 실행되도록 구성될 수 있다.
사용자 단말(110)은 사용자 인터페이스(User Interface; UI) 입력 디바이스(250) 및 UI 출력 디바이스(260)를 [0074]
더 포함할 수 있다. UI 입력 디바이스(250)는 사용자 단말(110)의 동작을 위해 요구되는 사용자의 입력을 수신 할 수 있다. UI 출력 디바이스(260)는 사용자 단말(110)의 동작에 따른 정보 또는 데이터를 출력할 수 있다.
도 3은 일 실시예에 따른 관리 서버의 구조도이다.
[0075]
도 3에서 도시된 바와 같이, 관리 서버(120)는 처리부(310), 통신부(320), 메모리(330), 저장소(340) 및 버스 [0076]
(390) 중 적어도 일부를 포함할 수 있다. 처리부(310), 통신부(320), 메모리(330) 및 저장소(340) 등과 같은 관 리 서버(120)의 구성요소들은 버스(390)를 통해 서로 간에 통신할 수 있다.
처리부(310)는 메모리(330) 또는 저장소(340)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하 [0077]
는 반도체 장치일 수 있다. 예를 들면, 처리부(310)는 적어도 하나의 하드웨어 프로세서(processor)일 수 있다.
처리부(310)는 관리 서버(120)의 동작을 위해 요구되는 작업을 처리할 수 있다. 처리부(310)는 실시예들에서 설 [0078]
명된 처리부(310)의 동작 또는 단계의 코드를 실행(execute)할 수 있다.
처리부(310)는 후술될 실시예에서 설명될 정보의 생성, 저장 및 출력을 수행할 수 있으며, 기타 관리 서버(12 [0079]
0)에서 이루어지는 단계의 동작을 수행할 수 있다.
통신부(320)는 네트워크(399)에 연결될 수 있다. 관리 서버(120)의 동작을 위해 요구되는 데이터 또는 정보를 [0080]
수신할 수 있으며, 관리 서버(120)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다. 통신부(320)는 네트워크(399)를 통해 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다. 예를 들면, 통신부(320)는 네트워크 칩(chip) 또는 포트(port)일 수 있다.
메모리(330) 및 저장소(340)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리 [0081]
(330)는 롬(ROM)(331) 및 램(RAM)(332) 중 적어도 하나를 포함할 수 있다. 저장소(340)는 램, 플레시(flash) 메모리 및 하드 디스크(hard disk) 등과 같은 내장형의 저장 매체를 포함할 수 있고, 메모리 카드 등과 같은 탈 착 가능한 저장 매체를 포함할 수 있다.
관리 서버(120)의 기능 또는 동작은 처리부(310)가 적어도 하나의 프로그램 모듈을 실행함에 따라 수행될 수 있 [0082]
다. 메모리(330) 및/또는 저장소(340)는 적어도 하나의 프로그램 모듈을 저장할 수 있다. 적어도 하나의 프로그 램 모듈은 처리부(310)에 의해 실행되도록 구성될 수 있다.
관리 서버(120)는 사용자 인터페이스(User Interface; UI) 입력 디바이스(350) 및 UI 출력 디바이스(360)를 더 [0083]
포함할 수 있다. UI 입력 디바이스(350)는 관리 서버(120)의 동작을 위해 요구되는 사용자의 입력을 수신할 수 있다. UI 출력 디바이스(360)는 관리 서버(120)의 동작에 따른 정보 또는 데이터를 출력할 수 있다.
도 4는 일 실시예에 따른 가상 머신 서버의 구조도이다.
[0084]
도 4에서 도시된 바와 같이, 가상 머신 서버(130)는 처리부(410), 통신부(420), 메모리(430), 저장소(440) 및 [0085]
버스(490) 중 적어도 일부를 포함할 수 있다. 처리부(410), 통신부(420), 메모리(430) 및 저장소(440) 등과 같 은 가상 머신 서버(130)의 구성요소들은 버스(490)를 통해 서로 간에 통신할 수 있다.
처리부(410)는 메모리(430) 또는 저장소(440)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하 [0086]
는 반도체 장치일 수 있다. 예를 들면, 처리부(410)는 적어도 하나의 하드웨어 프로세서(processor)일 수 있다.
처리부(410)는 가상 머신 서버(130)의 동작을 위해 요구되는 작업을 처리할 수 있다. 처리부(410)는 실시예들에 [0087]
서 설명된 처리부(410)의 동작 또는 단계의 코드를 실행(execute)할 수 있다.
처리부(410)는 후술될 실시예에서 설명될 정보의 생성, 저장 및 출력을 수행할 수 있으며, 기타 가상 머신 서버 [0088]
(130)에서 이루어지는 단계의 동작을 수행할 수 있다.
통신부(420)는 네트워크(499)에 연결될 수 있다. 가상 머신 서버(130)의 동작을 위해 요구되는 데이터 또는 정 [0089]
보를 수신할 수 있으며, 가상 머신 서버(130)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다. 통 신부(420)는 네트워크(499)를 통해 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다. 예를 들면, 통신부(420)는 네트워크 칩(chip) 또는 포트(port)일 수 있다.
메모리(430) 및 저장소(440)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리 [0090]
(430)는 롬(ROM)(431) 및 램(RAM)(432) 중 적어도 하나를 포함할 수 있다. 저장소(440)는 램, 플레시(flash) 메모리 및 하드 디스크(hard disk) 등과 같은 내장형의 저장 매체를 포함할 수 있고, 메모리 카드 등과 같은 탈 착 가능한 저장 매체를 포함할 수 있다.
가상 머신 서버(130)의 기능 또는 동작은 처리부(410)가 적어도 하나의 프로그램 모듈을 실행함에 따라 수행될 [0091]
수 있다. 메모리(430) 및/또는 저장소(440)는 적어도 하나의 프로그램 모듈을 저장할 수 있다. 적어도 하나의 프로그램 모듈은 처리부(410)에 의해 실행되도록 구성될 수 있다.
가상 머신 서버(130)는 사용자 인터페이스(User Interface; UI) 입력 디바이스(450) 및 UI 출력 디바이스(46 [0092]
0)를 더 포함할 수 있다. UI 입력 디바이스(450)는 가상 머신 서버(130)의 동작을 위해 요구되는 사용자의 입력 을 수신할 수 있다. UI 출력 디바이스(460)는 가상 머신 서버(130)의 동작에 따른 정보 또는 데이터를 출력할 수 있다.
가상 머신 서버(130)는 센서(470)를 더 포함할 수 있다.
[0093]
도 5는 일 예에 따른 제1 가상 머신 서버의 구성을 나타낸다.
[0094]
가상 머신 서버(130)는 하드웨어부를 포함할 수 있다. 하드웨어부는 도 4를 참조하여 전술된 처리부(410), 통신 [0095]
부(420), 메모리(430), 저장소(440), 센서(470) 및 버스(490)에 대응할 수 있다.
하드웨어부는 파워 관련 측정부를 포함할 수 있다. 파워 관련 측정부는 센서(470)에 대응할 수 있다. 말하자면, [0096]
센서(470)는 파워에 관련된 측정을 수행할 수 있다.
파워 관련 측정부는 가상 머신 서버(130)의 파워 사용량을 측정할 수 있다.
[0097]
가상 머신 서버(130)는 하이퍼바이저부를 포함할 수 있다. 하이퍼바이저부는 가상 머신 서버(130)에서 동작하는 [0098]
하이퍼바이저(hypervisor)일 수 있다.
하이퍼바이저부는 가상 머신 제어부를 포함할 수 잇다. 가상 머신 제어부는 가상 머신 서버(130) 상에서 동작하 [0099]
는 가상 머신에 대한 제어를 수행할 수 있다. 예를 들면, 가상 머신 제어부는 가상 머신의 생성, 설정 및 삭제 를 수행할 수 있다.
전술된 파워 관련 측정부 및 가상 머신 제어부는 처리부(410)에 의해 실행되는 프로그램 모듈일 수 있다. 이하 [0100]
에서, 파워 관련 측정부 또는 가상 머신 제어부에 의해 처리되는 것으로 설명된 기능은 처리부(410)에 의해 실 행되는 것으로 간주될 수 있다. 또한, 외부의 다른 장치로부터 파워 관련 측정부 또는 가상 머신 제어부로 전송 되는 데이터 또는 정보는 통신부(420)에 의해 수신되는 것으로 간주될 수 있다. 파워 관련 측정부 또는 가상 머 신 제어부로부터 외부의 다른 장치로 전송되는 데이터 또는 정보는 통신부(420)에 의해 전송되는 것으로 간주될 수 있다.
도 5에서, 제1 가상 머신 서버(130-1)에서는, "가상 머신(A)" 및 "가상 머신(C1)"가 동작하는 것으로 도시되었 [0101]
다.
사용자 단말(110)은 가상 머신의 생성 또는 가상 머신으로의 접속(connection)을 요청할 수 있다.
[0102]
"가상 머신(C1)"은 사용자 단말(110)에 의해 요청된 가상 머신이 제1 가상 머신 서버(130-1)에서 활성화된 것을 [0103]
나타낼 수 있다.
도 6은 일 예에 따른 제2 가상 머신 서버의 구성을 나타낸다.
[0104]
도 6에서, 제2 가상 머신 서버(130-2)에서는, "가상 머신(B1)", "가상 머신(B2)" 및 "가상 머신(C2)"가 동작하 [0105]
는 것으로 도시되었다.
"가상 머신(C2)"은 사용자 단말(110)에 의해 요청된 가상 머신이 제2 가상 머신 서버(130-2)에서 활성화된 것을 [0106]
나타낼 수 있다.
도 5 및 도 6을 참조하면, 사용자 단말(110)에 의해 요청된 가상 머신은, 제1 가상 머신 서버(130-1) 및 제2 가 [0107]
상 머신 서버(130-2)에서 "가상 머신(B1)" 및 "가상 머신(B2)"으로서 각각 활성화될 수 있다. 이 때, 제1 가상 머신 서버(130-1)는 "가상 머신(A)"가 미리 활성화되어 있고, "가상 머신(A)"가 미리 서비스를 제공하는 상태 일 수 있다. 또한, 이 때, 제2 가상 머신 서버(130-2)는 "가상 머신(B1)" 및 "가상 머신(B2)"가 미리 활성화되 어 있고, "가상 머신(B1)" 및 "가상 머신(B2)"가 미리 서비스를 제공하는 상태일 수 있다. 말하자면, 사용자 단 말(110)에 의해 요청된 가상 머신을 활성화하는 시점에서, 복수의 가상 머신 서버들의 조건들 또는 상태들은 서
로 상이할 수 있다. 여기에서, 가상 머신의 상태는 가상 머신이 실행하고 있는 다른 가상 머신들을 포함할 수 있다.
도 5 및 도 6에서 도시된 것과 같이, 동일한 가상 머신들(즉, "가상 머신(B1)" 및 "가상 머신(B2)")이 복수의 [0108]
가상 머신 서버들에서 활성화되는 경우, 각 가상 머신 서버는 파워 관련 측정부를 통해 가상 머신이 추가되기 이전의 파워 사용량 및 가상 머신이 추가된 이후의 파워 사용량을 기정의된 시간 동안 실측할 수 있다. 실측을 통해, 파워 사용량의 변화가 계산될 수 있다. 여기에서, 파워 사용량의 변화는 가상 머신이 추가된 이후의 파워 사용량에서 가상 머신이 추가되기 이전의 파워 사용량을 뺀 값일 수 있다.
복수의 가상 머신 서버들 중 파워 사용량의 변화가 가장 적은 가상 머신 서버의 가상 머신이 사용자 단말(110) [0109]
에게 서비스를 제공할 가상 머신으로서 선택될 수 있고, 선택된 가상 머신이 계속적으로 유지될 수 있다. 복수 의 가상 머신 서버들의 가상 머신들 중 선택된 가상 머신 외의 나머지의 가상 머신(들)은 종료될 수 있다. 이러 한 작업을 통해, 복수의 가상 머신 서버들의 가상 머신들 중 파워 사용량이 가장 적은 가상 머신 또는 기정의된 조건을 충족시키는 가상 머신이 활성화 및 사용될 수 있다.
예를 들면, 전술된 기정의된 시간은 몇 초 또는 몇 분 정도의 시간일 수 있다. 복수의 가상 머신 서버들의 가상 [0110]
머신들의 파워 사용량은 가상 머신이 초기화 및 활성화 된 후 기정의된 시간 동안 실측된 파워 사용량에 의해 비교 및 평가될 수 있다.
도 7은 일 예에 따른 관리 서버의 구성을 나타낸다.
[0111]
관리 서버(120)는 서버 관리부, 가상 머신 선택부 및 데이터베이스를 포함할 수 있다.
[0112]
서버 관리부는 복수의 가상 머신 서버들에 대한 관리를 할 수 있다.
[0113]
가상 머신 선택부는 사용자 단말(110)에게 제공될 가상 머신을 선택할 수 있다.
[0114]
데이터베이스는 관리 서버(120)가 사용하는 데이터를 제공할 수 있다.
[0115]
전술된 서버 관리부, 가상 머신 선택부 및 데이터베이스는 처리부(310)에 의해 실행되는 프로그램 모듈일 수 있 [0116]
다. 이하에서, 서버 관리부, 가상 머신 선택부 및 데이터베이스에 의해 처리되는 것으로 설명된 기능은 처리부 (310)에 의해 실행되는 것으로 간주될 수 있다. 또한, 외부의 다른 장치로부터 서버 관리부, 가상 머신 선택부 및 데이터베이스로 전송되는 데이터 또는 정보는 통신부(320)에 의해 수신되는 것으로 간주될 수 있다. 서버 관 리부, 가상 머신 선택부 및 데이터베이스로부터 외부의 다른 장치로 전송되는 데이터 또는 정보는 통신부(320) 에 의해 전송되는 것으로 간주될 수 있다.
도 8은 일 실시예에 따른 가상 머신 제공 방법의 흐름도이다.
[0117]
단계(810)에서, 관리 서버(120)의 서버 관리부는 사용자 단말(110)로부터의 가상 머신의 제공의 요청에 따라, [0118]
복수의 가상 머신 서버들의 각 가상 머신 서버에서 후보 가상 머신을 활성화함으로써 복수의 가상 머신 서버들 에서 복수의 후보 가상 머신들을 활성화할 수 있다.
단계(820)에서, 관리 서버(120)의 가상 머신 선택부는 복수의 후보 가상 머신들의 파워 사용량들에 기반하여 복 [0119]
수의 후보 가상 머신들 중 하나를 사용자 단말(110)에게 제공되는 가상 머신으로 선택할 수 있다.
단계(810) 및 단계(820)에 대해서, 아래에서 도 9 및 도 11 등을 참조하여 상세하게 설명된다.
[0120]
도 9는 일 실시예에 따른 후보 가상 머신들을 생성하는 방법의 흐름도이다.
[0121]
도 8을 참조하여 전술된 단계(810)는 아래의 단계들(910, 920, 930, 940, 945, 950, 955, 960, 965, 970, 975, [0122]
980, 985 및 990)의 적어도 일부를 포함할 수 있다.
아래의 단계들(910, 920, 930, 940, 945, 950, 955, 960, 965, 970, 975, 980, 985 및 990)은 사용자 단말 [0123]
(110), 관리 서버(120)의 서버 관리부, 가상 머신 서버(130)의 가상 머신 제어부 및 가상 머신 서버(130)의 하 이퍼바이저부에 의해 수행될 수 잇다. 가상 머신 서버(130)는 복수일 수 있다.
도 9에서, 가상 머신 제어부 또는 하이퍼바이저부에 의해 수행되는 것으로 도시된 기능 및 동작은 복수의 가상 [0124]
머신 서버들의 가상 머신 제어부들 또는 하이퍼바이저부들의 각각에 의해 수행될 수 있다. 또한, 가상 머신 제 어부 또는 하이퍼바이저부에 대하여 수행되는 것으로 도시된 기능 및 동작은 복수의 가상 머신 서버들의 가상 머신 제어부들 또는 하이퍼바이저부들의 각각에 대하여 수행될 수 있다.
단계(910)에서, 사용자 단말(110)은 접속 요청 메시지를 서버 관리부로 전송할 수 있다. 서버 관리부는 사용자 [0125]
단말(110)로부터 접속 요청 메시지를 수신할 수 있다.
접속 요청 메시지는 가상 머신의 제공의 요청일 수 있다.
[0126]
접속 요청 메시지는 사용자 단말(110)이 요청하는 가상 머신을 나타낼 수 있다. 예를 들면, 접속 요청 메시지는 [0127]
사용자 단말(110)이 요청하는 가상 머신의 명세(description)를 포함할 수 있다.
단계(910)에서, 사용자 단말(110)은 가상 머신 제공 시스템(100)의 관리자로 대체될 수 있다.
[0128]
단계(920)에서, 서버 관리부는 복수의 후보 가상 머신들의 설정을 위한 정책을 수립할 수 있다.
[0129]
여기에서, 복수의 후보 가상 머신들 중 최종적으로 선택된 후보 가상 머신이 사용자 단말(110)에게 제공될 가상 [0130]
머신이 될 수 있다. 말하자면, 복수의 후보 가상 머신들은 사용자 단말(110)에게 제공될 가상 머신에 대한 후보 들일 수 있다.
복수의 가상 머신 서버들은 전체의 가상 머신 서버들 중 기정의된 조건에 따라서 서버 관리부에 의해 선택된 일 [0131]
부일 수 있다.
서버 관리부는 복수의 후보 가상 머신들의 설정을 위한 정책에 따라서 전체의 가상 머신 서버들 중 사용자 단말 [0132]
(110)이 요청하는 가상 머신을 활성화할 수 있는 복수의 가상 머신 서버들을 선정할 수 있다.
예를 들면, 서버 관리부는 데이터베이스로부터 사용자 단말(110)에 의해 요청된 가상 머신에 관련된 메타데이터 [0133]
를 검색할 수 있고, 메타데이터를 사용하여 전체의 가상 머신 서버들 중 사용자 단말(110)이 요청하는 가상 머 신을 활성화할 수 있는 복수의 가상 머신 서버들을 선정할 수 있다.
가상 머신 서버에서 후보 가상 머신이 활성화되면, 후보 가상 머신에 의한 파워 사용량이 측정되어야 할 수 있 [0134]
다. 이 경우, 다른 후보 가상 머신이 함께 활성화되어 있을 경우, 어떤 후보 가상 머신에 의해 얼만큼의 파워가 사용되는지가 불분명할 수 있다. 따라서, 파워 사용량이 측정될 다른 후보 가상 머신이 이미 활성화된 가상 머 신 서버는 후보 가상 머신이 활성화될 대상에서 제외되어야 할 수 있다.
예를 들면, 전체의 가상 머신 서버들 중 파워 사용량의 측정의 대상인 다른 후보 가상 머신이 활성화된 가상 머 [0135]
신 서버는 복수의 가상 머신 서버들에서 제외될 수 있다.
단계(930)에서, 서버 관리부는 가상 머신 활성화 요청 메시지를 복수의 가상 머신 서버들의 가상 머신 제어부들 [0136]
의 각각으로 전송할 수 있다. 각 가상 머신 제어부는 서버 관리부로부터 가상 머신 활성화 요청 메시지를 수신 할 수 있다.
가상 머신 활성화 요청 메시지는 후보 가상 머신의 활성화의 요청일 수 있다.
[0137]
가상 머신 활성화 요청 메시지는 활성화될 후보 가상 머신의 명세를 포함할 수 있다.
[0138]
단계(940)에서, 가상 머신 제어부는 가상 머신 서버(130)에서 후보 가상 머신의 활성화가 가능한지 여부를 판단 [0139]
할 수 있다.
가상 머신 제어부는 가상 머신 서버(130)이 후보 가상 머신의 활성화를 위한 조건을 충족하는지 여부에 대한 검 [0140]
사를 수행할 수 있다.
조건이 충족되지 않아서 후보 가상 머신의 활성화가 가능하지 않은 경우 단계(945)가 수행될 수 있다. 조건이 [0141]
충족되어 후보 가상 머신의 활성화가 가능한 경우 단계(950)가 수행될 수 있다.
단계(945)에서, 가상 머신 제어부는 가상 머신 활성화 불가 메시지를 관리 서버(120)의 서버 관리부로 전송할 [0142]
수 있다. 관리 서버(120)의 서버 관리부는 가상 머신 서버의 가상 머신 제어부로부터 가상 머신 활성화 불가 메 시지를 수신할 수 있다.
가상 머신 활성화 불가 메시지는 가상 머신 서버(130)에서 후보 가상 머신이 활성화되지 않았음을 나타내는 통 [0143]
지일 수 있다.
단계(950)에서, 가상 머신 제어부는 하이퍼바이저부로 가상 머신 활성화 요청 메시지를 전송할 수 있다.
[0144]
단계(955)에서, 하이퍼바이저부는 가상 머신 서버(130)에서 후보 가상 머신을 활성화할 수 있다.
[0145]
복수의 가상 머신 서버들에서 복수의 후보 가상 머신들이 활성화될 때 복수의 가상 머신 서버들의 상태들은 서 [0146]
로 상이할 수 있다.
단계(960)에서, 후보 가상 머신이 활성화되면, 하이퍼바이저부는 가상 머신 활성화 완료 메시지를 가상 머신 제 [0147]
어부로 전송할 수 있다.
단계(965)에서, 가상 머신 제어부는 가상 머신 활성화 서버 정보 메시지를 관리 서버(120)의 서버 관리부로 전 [0148]
송할 수 있다. 관리 서버(120)의 서버 관리부는 가상 머신 서버의 가상 머신 제어부로부터 가상 머신 활성화 서 버 정보 메시지를 수신할 수 있다.
가상 머신 활성화 서버 정보 메시지는 가상 머신 서버(130)에서 후보 가상 머신이 활성화되었음을 나타내는 통 [0149]
지일 수 있다. 또는, 가상 머신 활성화 서버 정보 메시지는 후보 가상 머신에 대한 정보 또는 후보 가상 머신이 활성화된 가상 머신 서버(130)에 대한 정보를 포함할 수 있다.
단계(945) 및 단계(965)에서, 관리 서버(120)는 복수의 가상 머신 서버들의 각 가상 머신 서버로부터 가상 머신 [0150]
활성화 요청 메시지에 대한 응답을 수신할 수 있다. 응답은 가상 머신 서버에서 후보 가상 머신이 활성화되었는 지 여부를 나타내는 정보일 수 있다.
여기에서, 후보 가상 머신이 활성화되었는지 여부를 나타내는 정보는 전술된 가상 머신 활성화 불가 메시지 및 [0151]
가상 머신 활성화 서버 정보 메시지일 수 있다. 관리 서버(120)는 복수의 가상 머신 서버들로부터 전송된 후보 가상 머신이 활성화되었는지 여부를 나타내는 정보들을 통합할 수 있다.
복수의 가상 머신 서버들에 대해 단계(945) 또는 단계(965)가 수행되면, 관리 서버(120)의 서버 관리부는 활성 [0152]
화된 후보 가상 머신들의 총 개수를 계산할 수 있다. 활성화된 후보 가상 머신들의 총 개수는 복수의 가상 머신 서버들로부터 전송된 가상 머신 활성화 서버 정보 메시지의 개수와 동일할 수 있다.
단계(970)에서, 서버 관리부는 활성화된 후보 가상 머신들의 개수가 0보다 큰가를 검사할 수 있다.
[0153]
활성화된 후보 가상 머신들의 개수가 0인 경우, 단계(975)가 수행될 수 있다.
[0154]
활성화된 후보 가상 머신들의 개수가 0보다 더 큰 경우, 단계(980)가 수행될 수 있다.
[0155]
단계(975)에서, 활성화된 후보 가상 머신들의 개수가 0인 경우, 어떤 가상 머신 서버에서도 후보 가상 머신이 [0156]
생성되지 않았다. 후보 가상 머신이 생성되지 않은 경우, 서버 관리부는 가상 머신 활성화 불가 메시지를 사용 자 단말(110)로 전송할 수 있다.
가상 머신 활성화 불가 메시지는 사용자 단말(110)에 의해 요청된 가상 머신이 제공되지 않음을 나타내는 통지 [0157]
일 수 있다.
단계(985)의 수행 후, 절차가 종료될 수 있다.
[0158]
단계(980)에서, 서버 관리부는 활성화된 후보 가상 머신들의 개수가 2보다 큰가를 검사할 수 있다.
[0159]
활성화된 후보 가상 머신들의 개수가 2보다 크지 않은 경우, 단계(985)가 수행될 수 있다.
[0160]
활성화된 후보 가상 머신들의 개수가 2보다 더 큰 경우, 단계(990)가 수행될 수 있다.
[0161]
단계(985)에서, 활성화된 후보 가상 머신의 개수가 1인 경우, 사용자 단말(120)에게는 오직 하나의 후보 가상 [0162]
머신만이 제공될 수 있다. 따라서, 활성화된 후보 가상 머신이 사용자 단말(110)에게 제공되는 가상 머신으로 선택될 수 있다.
서버 관리부는 접속할 가상 머신 정보 메시지를 사용자 단말(110)로 전송할 수 있다.
[0163]
접속할 가상 머신 정보 메시지는 사용자 단말(110)에게 제공되는 가상 머신에 대한 정보일 수 있다. 사용자 단 [0164]
말(110)에게 제공되는 가상 머신은 활성화된 하나의 후보 가상 머신일 수 있다.
예를 들면, 가상 머신에 대한 정보는 가상 머신의 주소를 포함할 수 있다.
[0165]
단계(985)의 수행 후, 절차가 종료될 수 있다.
[0166]
단계(990)에서, 활성화된 후보 가상 머신의 개수가 2의 이상인 경우, 사용자 단말(110)에게는 복수의 후보 가상 [0167]
머신들이 제공될 수 있고, 복수의 후보 가상 머신들 중 하나의 후보 가상 머신이 사용자 단말(110)에게 제공될 가상 머신으로서 선택될 수 있다.
이러한 선택을 위해서는 복수의 후보 가상 머신들이 사용자 단말(110)에게 실제로 서비스를 제공할 필요가 [0168]
있고, 복수의 후보 가상 머신들이 사용자 단말(110)과 연동하여 동시에 실행될 필요가 있다. 이러한 실행을 위 해 사용자 단말(110) 및 복수의 후보 가상 머신들 간의 연결이 이루어질 필요가 있다.
서버 관리부는 다중 통신할 가상 머신 리스트 정보 메시지를 사용자 단말(110)로 전송할 수 있다. 사용자 단말 [0169]
(110)은 관리 서버(120)의 서버 관리부로부터 다중 통신할 가상 머신 리스트 정보 메시지를 수신할 수 있다.
다중 통신할 가상 머신 리스트 정보 메시지는 사용자 단말(110)이 다중 통신할 대상을 나타내는 정보를 포함할 [0170]
수 있다. 예를 들면, 다중 통신할 가상 머신 리스트 정보 메시지는 복수의 가상 머신 서버들에서 활성화된 복수 의 후보 가상 머신들에 대한 정보일 수 있다.
예를 들면, 복수의 후보 가상 머신들에 대한 정보는 후보 가상 머신들의 주소들을 포함할 수 있다.
[0171]
아래의 도 10에서는 복수의 후보 가상 머신들을 동시에 실행하기 위한 사용자 단말의 구성이 도시된다.
[0172]
단계(990)의 수행 후, 단계(820)가 수행될 수 있다.
[0173]
도 10에서는 복수의 후보 가상 머신들을 동시에 실행하기 위한 사용자 단말의 구성을 나타낸다.
[0174]
도 10에서는 하나의 사용자 단말(110)을 통해 복수의 후보 가상 머신들을 동시에 실행하기 위한 네트워크 부분 [0175]
의 가상화의 개념도가 도시된다.
네트워크 부분의 가상화를 통해, 사용자 단말(110)의 사용자 또는 어플리케이션의 측면에서는 마치 하나의 가상 [0176]
머신 서버(130)와의 통신이 이루어지는 것처럼 처리될 수 있다.
사용자 단말(110)은 네트워크 가상화부를 포함할 수 있다. 네트워크 가상화부는 사용자 단말(110)이 동시에 복 [0177]
수의 후보 가상 머신들과 통신하게 할 수 있다. 복수의 후보 가상 머신들이 활성화되면, 복수의 후보 가상 머 신들 중 가상 머신이 선택되기 전에 사용자 단말(110)은 복수의 후보 가상 머신들과 동시에 통신할 수 있다. 이 러한 동시의 통신을 통해, 복수의 후보 가상 머신들이 모두 실행될 수 있고, 복수의 후보 가상 머신들의 각 후 보 가상 머신에 의한 전력 사용량이 실측될 수 있다.
네트워크 가상화부는 입출력 데이터 복제부, 네트워크 동기화부 및 복수의 데이터 송수신부들을 포함할 수 [0178]
있다.
복수의 후보 가상 머신들이 모두 실행되기 위해서는, 사용자 단말(110)이 후보 가상 머신에게 제공하는 입력 데 [0179]
이터가 복수의 후보 가상 머신들의 모두에게 제공되어야 할 수 있다. 사용자 단말(110)이 후보 가상 머신에게 제공하는 입력 데이터는 복제 및 네트워크 가상화를 통해 복수의 후보 가상 머신의 각각에게 제공될 수 있다.
입출력 데이터 복제부는 사용자 단말(110)에서 발생하는 입력 데이터를 복제함으로써 복제된 입력 데이터를 생 [0180]
성할 수 있다. 입출력 데이터 복제부는 복제된 입력 데이터를 복수의 데이터 송수신부들의 각각으로 전달할 수 있다.
복수의 데이터 송수신부들은 복수의 가상 머신 서버들 또는 복수의 후보 가상 머신들과 각각 통신할 수 있다.
[0181]
말하자면, 복수의 데이터 송수신부들의 각 데이터 송수신부는 복수의 가상 머신 서버들 중 하나의 가상 머신 서 버 또는 또는 복수의 후보 가상 머신들 중 하나의 후보 가상 머신과 통신할 수 있다.
도 10에서 도시된 것과 같이, 복수의 데이터 송수신부들 중 제1 데이터 송수신부는 제1 가상 머신 서버와 통신 [0182]
할 수 있다. 복수의 데이터 송수신부들 중 제2 데이터 송수신부는 제2 가상 머신 서버와 통신할 수 있다.
복수의 가상 머신 서버들 또는 복수의 후보 가상 머신들의 응답 속도들은 서로 상이할 수 있다. 복수의 가상 머 [0183]
신 서버들 또는 복수의 후보 가상 머신들과 통신함에 있어서 응답 속도들이 서로 상이하기 때문에, 네트워크 동 기화부는 복수의 후보 가상 머신들의 실행에 대한 동기화를 수행할 수 있다. 예를 들면, 네트워크 동기화부는 복수의 가상 머신 서버들로 전송되는 입력 데이터 및/또는 복수의 가상 머신 서버들로부터 전송되는 출력 데이
터에 대한 동기화를 수행할 수 있다.
상술된 것과 같은 가상화를 통해, 복수의 가상 머신 서버들에서 동일한 후보 가상 머신들이 동시에 실행될 수 [0184]
있다.
도 11은 일 실시예에 따른 후보 가상 머신들 중 사용자 단말에게 제공될 가상 머신을 선택하는 방법의 흐름도이 [0185]
다.
도 8을 참조하여 전술된 단계(820)는 아래의 단계들(1110, 1115, 1120, 1130, 1135, 1140, 1145, 1150, 1160, [0186]
1165, 1170, 1175, 1180 및 1185)의 적어도 일부를 포함할 수 있다.
아래의 단계들(1110, 1115, 1120, 1130, 1135, 1140, 1145, 1150, 1160, 1165, 1170, 1175, 1180 및 1185)은 [0187]
관리 서버(120)의 가상 머신 선택부, 관리 서버(120)의 서버 관리부, 가상 머신 서버(130)의 가상 머신 제어부 및 가상 머신 서버(130)의 파워 관련 측정부에 의해 수행될 수 잇다. 가상 머신 서버(130)는 복수일 수 있다.
도 9에서, 가상 머신 제어부 또는 파워 관련 측정부에 의해 수행되는 것으로 도시된 기능 및 동작은 복수의 가 [0188]
상 머신 서버들의 가상 머신 제어부들 또는 하이퍼바이저부들의 각각에 의해 수행될 수 있다. 또한, 가상 머신 제어부 또는 파워 관련 측정부에 대하여 수행되는 것으로 도시된 기능 및 동작은 복수의 가상 머신 서버들의 가 상 머신 제어부 또는 파워 관련 측정부의 각각에 대하여 수행될 수 있다.
단계(1110)에서, 관리 서버(120)의 서버 관리부는 사용자 단말(110)에 대한 가상 머신 파워 관련 정보 요청 메 [0189]
시지를 복수의 가상 머신 서버들의 가상 머신 제어부들의 각각 전송할 수 있다. 각 가상 머신 제어부는 서버 관 리부로부터 가상 머신 파워 관련 정보 요청 메시지를 수신할 수 있다.
가상 머신 파워 관련 정보 요청 메시지는 활성화된 후보 가상 머신의 파워 사용량에 관한 정보의 요청일 수 있 [0190]
다.
일 실시예에서, 단계(1115)는, 복수의 후보 가상 머신들이 활성화된 후 기정의된 시간이 경과한 뒤에 수행될 수 [0191]
있다. 예를 들면, 단계(1115)는, 도 9를 참조하여 전술된 단계(955), 단계(965) 또는 단계(990)가 수행된 후 기 정의된 시간이 경과한 뒤에 수행될 수 있다.
단계(1115)에서, 가상 머신 서버(130)의 가상 머신 제어부는 가상 머신 파워 관련 정보 요청 메시지를 가상 머 [0192]
신 서버(130)의 파워 관련 측정부로 전송할 수 있다. 파워 관련 측정부는 가상 머신 제어부로부터 가상 머신 파 워 관련 정보 요청 메시지를 수신할 수 있다.
단계(1120)에서, 파워 관련 측정부는 파워 관련 측정을 수행할 수 있다.
[0193]
일 실시예에서, 파워 관련 측정부는 가상 머신 서버(130)에서 활성화된 후보 가상 머신의 파워 사용량을 측정할 [0194]
수 있다.
후보 가상 머신의 파워 사용량은 후보 가상 머신이 생성, 활성화 또는 실행됨에 따라 가상 머신 서버(130)에서 [0195]
추가로 소모되는 파워를 나타낼 수 있다.
후보 가상 머신의 파워 사용량은 가상 머신 서버(130)에서 후보 가상 머신이 활성화되기 이전의 실측된 파워 사 [0196]
용량 및 가상 머신 서버(130)에서 후보 가상 머신이 활성화된 이후의 실측된 파워 사용량 간의 비교를 통해 계 산될 수 있다. 후보 가상 머신의 파워 사용량은 후보 가상 머신이 활성화된 이후의 실측된 파워 사용량에서 후 보 가상 머신이 활성화되기 이전의 실측된 파워 사용량을 뺀 값일 수 있다.
일 실시예에서, 후보 가상 머신이 활성화된 이후의 실측된 파워 사용량은 후보 가상 머신의 활성화 후 기정의된 [0197]
시간이 경과한 후 측정될 수 있다. 여기에서 기정의된 시간은 후보 가상 머신의 실행에 따른 파워 사용량의 변 화를 측정하기에 충분한 시간일 수 있다.
일 실시예에서, 파워 관련 측정부는 후보 가상 머신의 활성화의 이전에 가상 머신 서버(130)의 파워 사용량을 [0198]
실측할 수 있다.
일 실시예에서, 파워 관련 측정부는 가상 머신 파워 관련 정보 요청 메시지를 수신한 후, 후보 가상 머신이 활 [0199]
성화된 이후의 파워 사용량을 실측할 수 있다.
일 실시예에서, 파워 관련 측정부는 특정된 이벤트, 특정된 조건 또는 기정의된 주기에 따라 가상 머신 서버 [0200]