KR101947221B1 - 가상 클러스터 구동 시간 스케줄링 방법 및 장치 - Google Patents
가상 클러스터 구동 시간 스케줄링 방법 및 장치 Download PDFInfo
- Publication number
- KR101947221B1 KR101947221B1 KR1020150040495A KR20150040495A KR101947221B1 KR 101947221 B1 KR101947221 B1 KR 101947221B1 KR 1020150040495 A KR1020150040495 A KR 1020150040495A KR 20150040495 A KR20150040495 A KR 20150040495A KR 101947221 B1 KR101947221 B1 KR 101947221B1
- Authority
- KR
- South Korea
- Prior art keywords
- time
- virtual
- generation
- start time
- deadline
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
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)
- Stored Programmes (AREA)
Abstract
본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법 및 장치가 제공된다. 가상 클러스터 구동 시간 스케줄링 방법은 가상 머신을 사용하고자 하는 시점인 데드라인 및 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신하는 단계, 데드라인에 기초하여 생성 시작 시간을 산출하는 단계 및 생성 시작 시간을 외부 모듈로 송신하는 단계를 포함하는 것을 특징으로 한다. 본 발명은 가상 클러스터의 구동 시간을 스케줄링하는데 있어서, 사용자가 설정한 데드라인을 기준으로 가상 클러스터가 생성 완료되도록 생성 시간 정보를 산출함으로써, 사용자가 원하는 시간에 가상 클러스터를 사용할 수 있도록 스케줄링할 수 있는 유리한 효과가 있다.
Description
본 발명은 가상 클러스터 구동 시간 스케줄링 방법 및 장치에 관한 것으로서, 보다 상세하게는 데드라인 방식을 포함한 다양한 방식으로 가상 클러스터의 생성 시간을 스케줄링하기 위한 가상 클러스터 구동 시간 스케줄링 방법 및 장치에 관한 것이다.
가상 머신 (Virtual Machine; VM) 기반의 가상 컴퓨팅 환경에서, 가상 머신 스케줄링은 요청된 가상 머신이 배치, 구동될 호스트를 결정하는 처리 과정이며, 가상 머신 스케줄러는 가상 머신 스케줄링을 수행하는 도구이다.
가상 머신 스케줄링에 있어서, 종래에는 가상 머신을, 스케줄링 요청 시에 즉시 생성하는 즉시 생성 유형 및 가상 머신을 요청된 시간부터 생성하기 시작하는 정시 기준 생성 유형이 제공되었다. 도 1은 종래 기술에 따른 가상 머신 구동 시간 스케줄링 방법을 설명하기 위한 시간에 따른 가상 머신 생성 과정을 예시적으로 도시한다. 도 1을 참조하면, 종래에는 즉시 생성 유형으로 가상 머신의 스케줄링이 요청된 경우에는 스케줄링 요청과 동시에 가상 머신을 생성하고, 정시 기준 생성 유형으로 가상 머신의 스케줄링이 요청된 경우에는 미리 정해진 시간(ts)부터 가상 머신을 생성할 수 있었다. 이에 따라, 다수의 가상 머신을 생성하는 경우, 가상 머신을 순차적으로 생성하도록 스케줄링이 되면 가상 머신들의 생성 시간이 과도하게 길어지게 되므로 가상 머신들을 효율적으로 사용할 수 없다는 문제점이 있었다. 즉, 가상 머신들의 생성에 있어, 병렬적으로 동시에 처리될 수 있는 부분에 대해 순차적으로 처리함으로써 시간을 비효율적으로 이용하게 된다는 문제점이 있었다.
나아가, 가상 컴퓨팅 시스템이 발전함에 따라, 2 이상의 가상 머신을 이용하여 가상 컴퓨팅을 수행할 수 있는 가상 클러스터 (Virtual Cluster; VC) 에 대한 요구가 증가하고 있다. 이에 따라, 복수의 가상 머신을 생성하는데 있어 효율적인 스케줄링이 더욱 요구되고 있다.
발명의 배경이 되는 기술은 본 발명에 대한 이해를 보다 용이하게 하기 위해 작성되었다. 발명의 배경이 되는 기술에 기재된 사항들이 선행기술로 존재한다고 인정하는 것으로 이해되어서는 안 된다.
가상 머신의 생성에 있어서, 종래에는 사용자가 사용하기 원하는 시점부터 가상 머신을 사용할 수 있도록 데드라인(deadline) 기준으로 가상 클러스터의 스케줄링을 수행할 수 없었다. 사용자가 사용하기 원하는 시점부터 가상 클러스터를 사용하기 위해서는 사용자가 가상 클러스터의 생성 시간을 고려하여 미리 가상 클러스터의 스케줄링을 요청해야 했다. 특히, 하나의 가상 머신이 아닌 다수의 가상 머신을 포함하는 가상 클러스터의 경우에는 사용자가 가상 클러스터의 생성 시간을 예측하는 것이 어렵다는 문제점이 있었다.
따라서, 데드라인 기준으로 가상 클러스터의 스케줄링을 수행하는 동시에 가상 클러스터를 생성하는 시간 효율을 향상시킬 수 있는 방법 및 장치의 개발이 요구되었다.
이에 따라, 본 발명이 해결하고자 하는 과제는 가상 클러스터의 구동 시간을 스케줄링하는데 있어서, 사용자가 설정한 데드라인을 기준으로 가상 클러스터가 생성 완료되도록 생성 시간 정보를 산출함으로써, 사용자가 원하는 시간에 가상 클러스터를 사용할 수 있도록 스케줄링할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공하는데 있다.
본 발명의 해결하고자 하는 다른 과제는 가상 클러스터에 포함된 가상 머신 각각에 대한 가상 컨테이너 생성 시간 및 총 부팅 시간을 병렬적으로 처리함으로써, 가상 클러스터를 생성하는 시간을 단축할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공하는 것이다.
본 발명의 해결하고자 하는 또 다른 과제는 가상 클러스터를 주기적으로 생성하고 소멸시킬 수 있도록 스케줄링함으로써, 가상 클러스터를 효율적으로 사용할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법은 가상 머신을 사용하고자 하는 시점인 데드라인 및 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신하는 단계, 데드라인에 기초하여 생성 시작 시간을 산출하는 단계 및 생성 시작 시간을 외부 모듈로 송신하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다른 특징에 따르면, 생성 시작 시간을 산출하는 단계는, 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 (total) 부팅 시간에 기초하여 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 가상 머신의 수가 2 이상인 경우, 생성 시작 시간을 산출하는 단계는, 가상 머신 각각에 대한 생성 명령 전달 시간이 순차적으로 처리되고, 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 순차적 또는 병렬적으로 처리되고, 가상 머신 각각에 대한 총 부팅 시간이 병렬적으로 처리되도록 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 생성 시작 시간을 산출하는 단계는, 가상 머신이 동일한 호스트에 배치된 경우, 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 하나의 호스트에서 순차적으로 처리되고, 가상 머신이 서로 다른 호스트에 배치된 경우, 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 서로 다른 호스트에서 병렬적으로 처리되도록 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 총 부팅 시간은 부팅 선택 시간, 부팅 시간, 초기화 시간 및 지연 시간 중 적어도 하나 이상의 시간을 합산한 시간인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 생성 시작 시간을 산출하는 단계는, 생성 완료 시간에 기초하여 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 산출하는 단계는, 생성 완료 시간과 데드라인 사이에 여유 시간이 확보되도록 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 산출하는 단계는, 실행 슬롯을 기반으로 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 실행 슬롯은 일정 시간 간격으로 구획되는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 구동 시간 스케줄링 방법은 산출 요청에 대하여 적용하고자 하는 시간 모델을 결정하는 단계를 더 포함하고, 산출하는 단계는, 시간 모델에 기초하여 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 구동 시간 스케줄링 방법은 사용자의 요청을 통해 다른 시간 모델을 추가하는 단계, 사용자의 요청을 통해 시간 모델을 변경하는 단계 또는 사용자의 요청을 통해 시간 모델을 삭제하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 수신하는 단계는, 가상 머신에 대한 구동 시작 시간 및 구동 종료 시간을 포함하는 구동 주기 및 가상 머신을 주기적으로 구동시키기 위한 산출 요청을 수신하는 단계인 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 다른 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법은 가상 머신을 사용하고자 하는 시점인 데드라인을 수신하는 단계, 데드라인에 기초하여 생성 시작 시간을 산출하는 단계 및 생성 시작 시간에 기초하여 데드라인 이전에 가상 머신이 생성 완료되도록 가상 머신을 생성하는 단계를 포함하는 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 장치는 가상 머신을 사용하고자 하는 시점인 데드라인 및 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신하는 수신부, 데드라인에 기초하여 생성 시작 시간을 산출하는 산출부 및 생성 시작 시간을 외부 모듈로 송신하는 송신부를 포함하는 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 다른 실시예에 따른 가상 클러스터 구동 시간 스케줄링 장치는 가상 머신을 사용하고자 하는 시점인 데드라인을 수신하는 수신부, 데드라인에 기초하여 생성 시작 시간을 산출하는 산출부 및 생성 시작 시간에 기초하여 데드라인 이전에 가상 머신이 생성 완료되도록 가상 머신을 생성하는 생성부를 포함하는 것을 특징으로 한다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 가상 클러스터의 구동 시간을 스케줄링하는데 있어서, 사용자가 설정한 데드라인을 기준으로 가상 클러스터가 생성 완료되도록 생성 시간을 산출함으로써, 사용자가 원하는 시간에 가상 클러스터를 사용할 수 있도록 스케줄링할 수 있는 효과가 있다.
또한, 가상 클러스터에 포함된 가상 머신 각각에 대한 가상 컨테이너 생성 시간 및 총 부팅 시간을 병렬적으로 처리함으로써, 가상 클러스터를 생성하는 시간을 단축할 수 있는 효과가 있다.
또한, 가상 클러스터를 주기적으로 생성하고 소멸시킬 수 있도록 스케줄링함으로써, 가상 클러스터를 효율적으로 사용할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 종래 기술에 따른 가상 클러스터 구동 시간 스케줄링 방법을 설명하기 위한 시간에 따른 가상 클러스터 생성 과정을 예시적으로 도시한다.
도 2는 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 장치의 개략적인 블록도이다.
도 3은 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법을 설명하기 위한 흐름도이다.
도 4a 내지 4c는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 생성 시간 정보의 산출 단계를 설명하기 위한 개념도들이다.
도 5a 및 5b는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 실행 슬롯의 생성 단계를 설명하기 위한 개념도들이다.
도 2는 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 장치의 개략적인 블록도이다.
도 3은 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법을 설명하기 위한 흐름도이다.
도 4a 내지 4c는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 생성 시간 정보의 산출 단계를 설명하기 위한 개념도들이다.
도 5a 및 5b는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 실행 슬롯의 생성 단계를 설명하기 위한 개념도들이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 "포함한다", "갖는다", "이루어진다" 등이 사용되는 경우 "~만"이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성 요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
도 2는 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 장치의 개략적인 블록도이다. 가상 클러스터 구동 시간 스케줄링 장치(100)는 시간 계산 요청 수신부(100), 예약 프로세서(120), 비 예약 프로세서(130), 시간 계산부(140) 및 시간 모델 관리부(150)를 포함한다.
가상 클러스터 구동 시간 스케줄링 장치(100)는 사용자의 가상 클러스터 생성 요청이 발생한 경우 사용자가 요청한 시간에 가상 클러스터의 생성이 완료되도록 가상 클러스터의 생성 시간을 스케줄링하기 위한, 컴퓨팅 디바이스에서 수행될 수 있는 모듈일 수 있다. 가상 클러스터 구동 시간 스케줄링 장치(100)는 프로세서 및 메모리를 포함하는 컴퓨팅 디바이스 상에 구현될 수 있다. 또한, 가상 클러스터 구동시간 스케줄링 장치는 가상 클러스터 스케줄 관리 모듈과 연결되고 통신하도록 구성될 수도 있다. 가상 클러스터 구동시간 스케줄링 장치는 가상 클러스터에 대한 생성 시작 시간의 산출 요청이 수신되면 생성 시작 시간을 산출하여 가상 클러스터 스케줄 관리 모듈과 같은 외부 모듈로 송신할 수도 있다. 다양한 실시예에서 산출된 생성 시작 시간을 기초로 가상 클러스터 구동 시간 스케줄링 장치(100)가 직접 가상 클러스터의 생성을 개시할 수도 있다.
가상 클러스터 구동 시간 스케줄링 장치(100)의 시간 계산 요청 수신부(100)는 사용자 또는 외부 모듈로부터 데이터를 수신할 수 있도록 구성된다. 시간 계산 요청 수신부(100)는 사용자 또는 외부 모듈로부터 가상 머신을 사용하고자 하는 시점인 데드라인을 수신할 수 있다. 또한, 시간 계산 요청 수신부(100)는 사용자 또는 외부 모듈로부터 데드라인과 함께 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신할 수 있다. 시간 계산 요청 수신부(100)는 산출 요청을 각기 처리하는 예약 프로세서(120) 및 비 예약 프로세서(130)를 활용하여 가상 머신에 대한 생성 시작 시간을 산출하는 작업을 수행한다.
예약 프로세서(120)는 수신된 산출 요청에 대응하여 가상 머신의 생성 시작 시간을 산출한다. 예약 프로세서(120)는 산출 요청이 수신된 경우 함께 수신된 데드라인에 기초하여 데드라인 전에 가상 머신의 생성이 완료되도록 생성 시작 시간을 산출할 수 있다. 즉, 예약 프로세서(120)는 데드라인 기반의 산출 요청 등과 같이 생성 예약된 가상 머신에 대한 생성 시작 시간을 산출할 수 있다. 예약 프로세서(120)는 실행 슬롯 및 시간 모델 등을 활용하여 생성 시작 시간을 산출할 수도 있다.
비 예약 프로세서(130)는 즉시 생성 유형의 산출 요청이 수신된 경우 가상 머신의 생성 시작 시간을 산출한다. 즉시 생성 유형의 생성 시작 시간 및 구동 종료 시간에 대한 정보가 요청된 경우, 비 예약 프로세서(130)는 생성 시작 시간으로서 현재 시간을 반환하며, 구동 종료 시간으로서 Long Max값을 반환한다.
시간 계산부(140)는 현재 시간을 제공할 수 있고 각종 시간 계산을 수행할 수 있다. 우선, 시간 계산부(140)는 배치 스케줄링 과정 중 자원 상태 계산에서 필요한 가상 머신의 구동 시작 시간 및 구동 종료 시간을 계산한다. 시간 계산부(140)는 가상 머신의 구동 시작 시간 및 구동 종료 시간을 계산을 계산하는 경우 최악의 상황을 고려하여 계산한다. 여기서, 최악의 상황은 가상 클러스터 내의 모든 가상 머신들이 하나의 호스트에서 구동되면서 가상 머신의 가상 컨테이너 생성 시간이 최대로 경과되는 상황을 의미한다. 한편, 시간 계산부(140)는 배치 스케줄링이 완료된 가상 머신의 생성 시작 시간을 산출하기 위한 계산 과정에서 여유 시간 (Margin Time; MT) 을 계산할 수도 있다.
시간 모델 관리부(150)는 가상 머신의 생성을 위한 시간 모델의 제공, 추가, 수정, 및 삭제 등과 같은 시간 모델 정보에 대한 일련의 관리 역할을 수행한다. 시간 모델 관리부(150)에 등록된 시간 모델들은 예약 프로세서(120)에 의해 활용된다. 시간 모델 관리부(150)에 등록되 지 않은 시간 모델이 요청된 경우, 시간 모델 관리부(150)는 "기본 시간 모델"로 설정된 시간 모델을 반환한다.
예약 프로세서(120), 비 예약 프로세서(130) 및 시간 계산부(140)는 외부 모듈로 데이터를 송신할 수도 있도록 구성된다. 예약 프로세서(120), 비 예약 프로세서(130) 및 시간 계산부(140)는 산출된 생성 시작 시간 및 여유 시간 등을 외부 모듈로 송신할 수 있다. 외부 모듈은 예약 프로세서(120), 비 예약 프로세서(130) 및 시간 계산부(140)로부터 송신된 생성 시작 시간을 관리하거나 송신된 생성 시작 시간에 기초하여 가상 머신을 생성할 수 있는 모듈일 수 있다. 여기서, 외부 모듈은 시간 계산 요청 수신부(100)로 산출 요청을 송신하는 모듈과 동일한 모듈일 수도 있고 상이한 모듈일 수도 있다.
데드라인 및 산출 요청을 수신하고, 생성 시작 시간을 산출하고 송신하는 구체적인 방법에 대해서는 도 3을 참조하여 후술한다.
다양한 실시예에서, 가상 클러스터 구동 시간 스케줄링 장치(100)는, 생성 시작 시간을 다른 모듈로 송신하지 않고, 생성 시작 시간에 기초하여 가상 머신을 직접 생성할 수 있는 가상 머신 생성부를 더 포함할 수도 있다. 가상 머신 생성부는 산출된 생성 시작 시간부터 가상 머신을 생성하여 데드라인 이전에 가상 머신이 생성 완료되도록 가상 머신을 생성할 수 있다.
도 2에 도시되지 않았으나 가상 클러스터 구동 시간 스케줄링 장치(100)는 시간 계산 요청 수신부(100), 예약 프로세서(120), 비 예약 프로세서(130), 시간 계산부(140) 및 시간 모델 관리부(150)의 데이터가 저장되도록 구성된 저장부, 메모리 등을 더 포함할 수 있다. 저장부는 제한되지 않고 하드 디스크, 플래시 메모리 모듈 등을 포함할 수 있으며, 메모리는 다양한 타입의 RAM(random access memory)를 포함할 수 있다.
도 2에서는 식별의 편의를 위해 가상 클러스터 구동 시간 스케줄링 장치(100) 내에 시간 계산 요청 수신부, 예약 프로세서, 비 예약 프로세서, 시간 계산부 및 시간 모델 관리부가 개별적인 구성으로 도시되었으나, 각각의 모듈은 구현 방법 또는 본 발명의 실시예에 따라 하나의 통합적인 형태 또는 분리적 형태로 설계 구현되는 것도 가능하다.
도 3은 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법을 설명하기 위한 흐름도이다. 도 4a 내지 4c는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 생성 시간 정보의 산출 단계를 설명하기 위한 개념도들이다. 도 5a 및 5b는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 실행 슬롯의 생성 단계를 설명하기 위한 개념도들이다. 설명의 편의를 위해 도 2를 함께 참조하여 설명한다.
먼저, 가상 머신을 사용하고자 하는 시점인 데드라인 및 가상 머신에 대한 생성 시작 시간의 산출 요청이 수신된다(S310). 데드라인 및 산출 요청은 사용자로부터 직접 수신될 수도 있고, 사용자로부터 외부 모듈을 통해 수신될 수도 있다. 데드라인은 사용자에 의해 지정된 생성, 이주 등 가상 머신에 대한 관리 처리 작업이 완료되는 시점이다. 데드라인은 사용자가 사용을 시작하고자 하는 시점일 수 있다. 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법은 데드라인 이전에 가상 머신이 생성 완료되어 데드라인에 가상 머신이 가용 상태가 되도록 가상 머신의 생성을 스케줄링할 수 있다. 산출 요청은 가상 머신에 대한 생성 시작 시간을 산출하게 하는 명령이다. 산출 요청이 수신됨으로써, 가상 머신의 생성 시작 시간의 산출이 개시된다. 여기서, 생성하고자 하는 가상 머신의 개수, 사양 및 배치 특성 등은 외부 모듈을 통해 미리 결정될 수 있다.
본 발명의 몇몇 실시예에 따르면, 가상 머신에 대한 구동 시작 시간 및 구동 종료 시간을 포함하는 구동 주기 및 가상 머신을 주기적으로 구동시키기 위한 산출 요청이 수신될 수도 있다. 구동 시작 시간은 사용자가 가상 머신의 사용을 시작하고자 하는 시점으로서, 데드라인에 대응할 수 있다. 구동 종료 시간은 사용자가 가상 머신의 사용을 종료하고자 하는 시점이다. 예를 들어, 사용자가 매주 월요일 오전 10시부터 오전 11시까지 가상 머신을 사용하고자 하는 경우, 구동 시작 시간이 오전 10시이고 구동 종료 시간이 오전 11시이고 구동 날짜가 매주 월요일인, 구동 주기가 수신될 수 있다. 여기서, 산출 요청은 가상 머신이 구동 주기에 따라 주기적으로 생성되고 소멸되도록 스케줄링하기 위한 요청일 수 있다. 상술한 바와 같이, 구동 주기를 수신함으로써, 해당 시간 주기에 자율적으로 구동 시작 및 구동 종료되도록 스케줄링할 수 있다는 본 발명의 유리한 효과가 획득된다.
다음으로, 수신된 산출 요청에 대응하여, 수신된 데드라인에 기초하여 생성 시작 시간이 산출된다(S320). 생성 시작 시간은, 데드라인에 가상 머신이 가용 상태에 있도록 가상 머신이 생성되는데 요구되는 시간인 가상 머신의 생성 시간이 산출된 후에 역산함으로써 산출될 수 있다. 여기서, 생성 시간은 생성하고자 하는 가상 머신이 모두 생성되는데 소요되는 시간이다.
생성 시간은 생성 명령 전달 시간(Creation Command Propagation Time; CCPT), 가상 컨테이너 생성 시간(Virtual Container Creation Time; VCCT) 및 총 부팅 시간(Total Boot Time; TBT)에 기초하여 산출될 수 있다. 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간은 미리 설정된 시간일일 수도 있다.
생성 명령 전달 시간은 가상 머신 생성시 가상 클러스터 스케줄러로부터 가상 머신의 관리 시스템으로 가성 머신의 배치 결과 및 시작 명령을 전송하기 위한 시간 및 가상 머신의 관리 시스템으로부터 호스트로 가상 머신의 생성 명령을 전달하기 위한 시간을 포함하는 시간이다. 가상 머신의 관리 시스템에 따라 생성 명령 전달 시간은 호스트의 하이퍼바이저에 전달될 가상 머신 설정 파일을 생성하는 시간을 포함할 수도 있다.
가상 컨테이너 생성 시간은 가상화된 시스템에서 가상 머신의 구동을 위해 가상 컴퓨팅 자원의 생성 및 할당에 소요되는 시간이다. 가상 컨테이너 생성 시간은 가상 CPU 생성 및 할당, 메모리 공간 할당 및 가상 네트워크 장치 생성에 소요되는 시간을 포함할 수 있다. 가상 컨테이너 생성 시간은 가상 머신의 사양에 따라 변화될 수도 있다.
총 부팅 시간은 가상 머신이 생성된 후 가상 머신의 부팅에 소요되는 시간이다. 총 부팅 시간은, 예를 들어, 운영체제 및 부팅 환경 설정을 사용자로부터 입력받기 위해 대기하는 시간인 부팅 선택 시간, 가상 머신 운영체제의 부팅을 위해 소요되는 시간인 부팅 시간, 가상 머신 운영체제가 부팅된 후 미들웨어 및 자동 실행 응용 소프트웨어의 구동을 위해 소요되는 시간인 초기화 시간, 가상 머신의 부팅 과정 중 발생할 수 있는 최대의 지연 시간인 지연 시간 중 적어도 하나 이상의 시간을 합산한 시간일 수 있다. 총 부팅 시간은 가상 머신의 사양 및 운영체제에 따라 변화될 수도 있다.
생성 시간이 산출된 후, 데드라인으로부터 역산하여 생성 시작 시간이 산출될 수 있다. 예를 들어, 데드라인이 10시이고 산출된 생성 시간이 20분인 경우, 생성 시작 시간은 9시 40분으로 산출될 수 있다. 가상 머신이 데드라인을 초과하여 생성되는 것을 방지하기 위해, 가상 머신의 생성 완료 시간과 데드라인 사이에 일정 이상의 여유 시간이 확보되도록 생성 시작 시간이 산출될 수도 있다. 생성 완료 시간은 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법을 통해 생성 시작 시간부터 가상 머신의 생성이 개시된 경우 가상 머신이 생성 완료될 것으로 예측되는 시간이다. 여유 시간은 생성 완료 시간과 데드라인 사이의 시간이다. 데드라인을 초과하여 가상 머신이 생성되는 위험을 감소시키기 위해, 여유 시간을 산출함으로써, 여유 시간이 충분한지 여부를 검증할 수 있다. 여기서, 여유 시간은 미리 정해진 시간일 수도 있다. 생성 완료 시간 및 여유 시간의 산출 요청이 수신된 경우, 생성 시작 시간과 함께 생성 완료 시간 및 여유 시간이 산출될 수도 있다. 여기서, 생성 완료 시간은 생성 시작 시간에 생성 시간을 더한 시간일 수 있고, 여유 시간은 데드라인과 생성 완료 시간 사이의 시간일 수 있다.
도 4a를 참조하면, 데드라인이 t2인 가상 머신에 대한 생성 시작 시간의 산출 요청이 시간 t1에 수신된 경우, 미리 저장된 생성 명령 전달 시간(CCPT), 가상 컨테이너 생성 시간(VCCT), 총 부팅 시간(TBT)을 합산하여 생성 시간 t4-t3이 산출될 수 있다. 생성 명령 전달 시간(CCPT), 가상 컨테이너 생성 시간(VCCT), 총 부팅 시간(TBT)은 가상 머신의 사양 및 운영체제에 기초하여 결정될 수도 있다. 생성 시간 t4-t3이 산출된 경우 데드라인 t2로부터 역산하여 생성 시작 시간 t3이 산출될 수 있는데, 이 때 생성 완료 시간 t4와 데드라인 t2 사이에 여유 시간 t2-t4를 두고 생성 시작 시간 t3이 산출될 수 있다.
본 발명의 다른 실시예에 따르면, 2 이상의 가상 머신을 포함하는 가상 클러스터를 생성하고자 하는 경우, 가상 클러스터에 포함된 가상 머신 각각에 대한 생성 명령 전달 시간(CCPT)은 순차적으로 처리되고, 가상 컨테이너 생성 시간(VCCT)은 순차적 또는 병렬적으로 처리되고, 총 부팅 시간(TBT)이 병렬적으로 처리되어 생성 시작 시간이 산출될 수도 있다.
구체적으로, 생성 명령 전달은 가상 머신의 관리 시스템에 의해 수행되므로, 생성 명령 전달은 복수의 가상 머신에 대해 동시에 수행될 수 없다. 따라서, 생성 명령 전달은 가상 머신 각각에 대해 순차적으로 수행되고, 생성 시간을 산출하는 경우 생성 명령 전달 시간(CCPT)은 순차적으로 처리된다. 예를 들어, 제1 가상 머신 및 제2 가상 머신을 포함하는 가상 클러스터를 생성하는 경우, 제1 가상 머신에 대한 생성 명령 전달과 제2 가상 머신에 대한 생성 명령 전달은 동시에 수행될 수 없다. 따라서, 제1 가상 머신에 대한 생성 명령 전달 시간(CCPT)과 제2 가상 머신에 대한 생성 명령 전달 시간(CCPT)은 각각 순차적으로 처리되도록 생성 시간이 산출된다.
가상 컨테이너 생성은 복수의 가상 머신이 배치된 호스트에 따라 순차적으로 수행될 수도 있고 병렬적으로 수행될 수도 있다. 각각의 호스트는 가상 컨테이너 생성을 위한 수퍼바이저를 하나씩 포함한다. 따라서, 복수의 가상 머신이 동일한 호스트에 배치된 경우, 가상 컨테이너 생성은 순차적으로 수행되고, 복수의 가상 머신이 서로 다른 호스트에 배치된 경우, 가상 컨테이너 생성은 병렬적으로 수행된다. 예를 들어, 제1 가상 머신 및 제2 가상 머신이 동일한 호스트에 배치된 경우, 제1 가상 머신에 대한 가상 컨테이너 생성과 제2 가상 머신에 대한 가상 컨테이너 생성은 동시에 수행될 수 없고, 제1 가상 머신 및 제2 가상 머신이 서로 다른 호스트에 배치된 경우, 제1 가상 머신에 대한 가상 컨테이너 생성과 제2 가상 머신에 대한 가상 컨테이너 생성은 동시에 수행될 수 있다. 따라서, 가상 머신이 동일한 호스트에 배치된 경우, 가상 머신 각각에 대한 가상 컨테이너 생성 시간(VCCT)은 순차적으로 처리되고, 가상 머신이 서로 다른 호스트에 배치된 경우, 가상 머신 각각에 대한 가상 컨테이너 생성 시간(VCCT)은 병렬적으로 처리되도록 생성 시간이 산출될 수 있다.
부팅은 복수의 가상 머신에 대해 병렬적으로 수행될 수 있다. 가상 머신이 생성된 후에는 각각의 가상 머신이 독립적으로 동작하게 되므로, 가상 머신의 부팅은 병렬적으로 수행된다. 예를 들어, 제1 가상 머신 및 제2 가상 머신이 생성된 경우, 제1 가상 머신의 부팅과 제2 가상 머신의 부팅은 동시에 수행될 수 있다. 따라서, 가상 머신 각각에 대한 총 부팅 시간(TBT)은 병렬적으로 처리되도록 생성 시간이 산출될 수 있다.
서로 다른 가상 머신에 대한 생성 명령 전달, 가상 컨테이너 생성 및 부팅은 서로 병렬적으로 수행될 수 있다. 예를 들어, 제1 가상 머신에 대한 생성 명령 전달과 제2 가상 머신에 대한 가상 컨테이너 생성은 병렬적으로 수행될 수 있고, 제1 가상 머신에 대한 가상 컨테이너 생성과 제2 가상 머신에 대한 부팅 또한 병렬적으로 수행될 수 있고, 제1 가상 머신에 대한 생성 명령 전달과 제2 가상 머신에 대한 부팅 또한 병렬적으로 수행될 수 있다. 따라서, 서로 다른 가상 머신에 대한 생성 명령 전달 시간(CCPT), 가상 컨테이너 생성 시간(VCCT) 및 총 부팅 시간(TBT)은 서로 병렬적으로 처리되도록 생성 시간이 산출될 수 있다.
도 4b를 참조하면, 데드라인이 t6이고 동일한 호스트에 배치된 제1 가상 머신 및 제2 가상 머신을 포함하는 가상 클러스터에 대한 생성 시작 시간의 산출 요청이 시간 t5에 수신된 경우, 생성 명령 전달 시간(CCPT) 및 가상 컨테이너 생성 시간(VCCT)은 순차적으로 처리되고 총 부팅 시간(TBT)은 병렬적으로 처리되도록 생성 시간 t8-t7이 산출될 수 있다. 여기서, 제1 가상 머신에 대한 가상 컨테이너 생성 시간(VCCT)과 제2 가상 머신에 대한 생성 명령 전달 시간(VCCT)은 병렬적으로 처리될 수 있고, 제1 가상 머신에 대한 총 부팅 시간(TBT)과 제2 가상 머신에 대한 가상 컨테이너 생성 시간(VCCT) 또한 병렬적으로 처리될 수 있다. 생성 시간 t8-t7이 산출된 경우 데드라인 t6로부터 역산하여 생성 시작 시간 t7이 산출될 수 있는데, 이 때 생성 완료 시간 t8와 데드라인 t6 사이에 여유 시간 t6-t8를 두고 생성 시작 시간 t7이 산출될 수 있다.
도 4c를 참조하면, 데드라인이 t10이고 서로 상이한 호스트에 배치된 제1 가상 머신 및 제2 가상 머신을 포함하는 가상 클러스터에 대한 생성 시작 시간의 산출 요청이 시간 t9에 수신된 경우, 생성 명령 전달 시간(CCPT)은 순차적으로 처리되고 가상 컨테이너 생성 시간(VCCT) 및 총 부팅 시간(TBT)은 병렬적으로 처리되도록 생성 시간 t12-t11이 산출될 수 있다. 여기서, 제1 가상 머신에 대한 가상 컨테이너 생성 시간(VCCT)과 제2 가상 머신에 대한 생성 명령 전달 시간(CCPT)은 병렬적으로 처리될 수 있고, 제1 가상 머신에 대한 총 부팅 시간(TBT)과 제2 가상 머신에 대한 가상 컨테이너 생성 시간(VCCT) 또한 병렬적으로 처리될 수 있다. 생성 시간 t12-t11이 산출된 경우 데드라인 t10으로부터 역산하여 생성 시작 시간 t11이 산출될 수 있는데, 이 때 생성 완료 시간 t12와 데드라인 t10 사이에 여유 시간 t10-t12를 두고 생성 시작 시간 t11이 산출될 수 있다.
상술한 바와 같이, 가상 클러스터에 포함된 가상 머신 각각에 대해 동시에 수행될 수 있는 작업에 대한 시간을 병렬적으로 처리함으로써, 가상 클러스터의 생성 시간을 단축할 수 있다는 본 발명의 유리한 효과가 획득된다.
본 발명의 또 다른 실시예에 따르면, 생성 시작 시간은 일정 시간 간격으로 구획된 실행 슬롯을 기반으로 산출될 수도 있다. 실행 슬롯은 가상 클러스터 내의 가상 머신들의 생성 및 소멸 등을 정의하는 제어 스케줄을 시계열적으로 저장하고, 각 실행 슬롯에 대응하는 시간이 도래한 경우, 각 실행 슬롯에 저장된 제어 스케줄에 정의된 제어 명령을 실행하기 위해 사용하는 일종의 저장소이다. 실행 슬롯에 대응하는 시간이 도래한 경우, 스케줄링된 가상 클러스터의 생성이 개시될 수 있다.
도 5a는 본 발명의 또 다른 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 이용되는 실행 슬롯을 시각적으로 도시한다. 실행 슬롯은 9시 55분 00초부터 10시 00분 00초까지 30초 간격으로 구획되어 있고, 9시 55분 00초부터 10시 00분 00초 사이의 실행 슬롯은 비어있는 상태이다.
도 5b를 참조하면, 데드라인이 10시 00분 00초이고 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간에 기초하여 산출된 가상 클러스터의 생성 시간(tc1)이 2분 45초인 경우, 가상 클러스터의 생성을 위해 생성 시간(tc1) 2분 45초를 포함하는 최소 개수의 실행 슬롯, 즉, 9시 57분 00초부터 데드라인인 10시 00분 00초에 대응하는 6개의 실행 슬롯이 할당된다. 여기서, 생성 시작 시간은 10시 00분 00초로부터 2분 45초 전인 9시 57분 45초가 아니라 할당된 실행 슬롯에 대응하는 가장 빠른 시간인 9분 57분 00초로 산출될 수 있고, 생성 종료 시간인 9시 59분 45초부터 데드라인인 10시 00분 00초 사이에 여유 시간(tm1) 15초가 확보된다.
연속적인 시간 구간에 대해 스케줄을 저장하는 경우에는 비어있는 시간, 즉, 가상 머신의 생성을 수행할 수 있는 시간을 탐색하는데 상당한 시간이 소요된다. 따라서, 일정 시간 간격으로 구획된 실행 슬롯을 이용하여 이산적인 시간 구간에 대해 스케줄 저장함으로써 가상 머신의 생성을 수행할 수 있는 시간을 탐색하는 시간을 감소시킬 수 있다. 또한, 실행 슬롯을 이용하여 스케줄을 저장함으로써, 생성 완료 시간과 데드라인 사이에 여유시간이 확보되도록 생성 시작 시간이 산출될 수 있다.
한편, 도 5c를 참조하면, 데드라인이 10시 00분 00초이고 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간에 기초하여 산출된 가상 클러스터의 생성 시간(tc2)이 2분 50초인 경우, 일단 가상 클러스터의 생성을 위해 생성 시간(tc2) 2분 50초를 포함하는 최소 개수의 실행 슬롯, 즉, 9시 57분 00초부터 데드라인인 10시 00분 00초에 대응하는 6개의 실행 슬롯이 할당될 수 있다. 이 경우, 생성 종료 시간인 9시 59분 50초부터 데드라인인 10시 00분 00초 사이에 여유 시간(tm2) 10초가 확보되는데, 10초의 여유시간이 부족하다고 판단되는 경우, 예를 들어, 최소 15초 이상의 여유 시간이 확보되도록 미리 결정된 경우, 데드라인 전에 하나의 실행 슬롯을 비워두고 가상 클러스터의 생성을 위해 9시 56분 30초부터 9시 59분 30초에 대응하는 6개의 실행 슬롯이 할당될 수 있다. 이 경우, 생성 시작 시간은 9시 56분 30초로 산출되고, 생성 완료 시간은 9시 59분 20초로 산출될 수 있으며, 여유 시간(tm3) 40초가 확보될 수 있다. 상술한 바와 같이, 여유 시간이 일정 이하인 경우 추가적인 여유 시간을 확보함으로써, 데드라인을 도과하여 가상 클러스터가 생성 완료되는 위험성을 감소시킬 수 있다.
본 발명의 몇몇 실시예에 따르면, 구동 주기 및 가상 머신을 주기적으로 구동시키기 위한 산출 요청이 수신된 경우, 구동 시작 시간에 주기적으로 가상 클러스터의 생성이 완료되도록 주기적인 생성 시작 시간을 산출할 수 있다. 예를 들어, 구동 시작 시간이 매주 월요일 10시 00분 00초이고 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간에 기초하여 산출된 가상 클러스터의 생성 시간이 3분인 경우, 매주 월요일 9시 57분 00초를 생성 시작 시간으로서 산출할 수도 있다. 주기적인 생성 시작 시간 또한 실행 슬롯을 기반으로 산출될 수도 있고, 구동 시작 시간과 생성 완료 시간 사이에 여유 시간이 확보되도록 생성 시작 시간이 산출될 수도 있다.
상술한 바와 같이, 가상 클러스터를 주기적으로 생성하고 소멸시킬 수 있도록 스케줄링함으로써, 가상 클러스터를 효율적으로 사용할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공할 수 있다는 본 발명의 유리한 효과가 획득된다.
본 발명의 몇몇 실시예에 따르면, 생성 시작 시간이 산출되기 전에, 산출 요청에 대하여 적용하고자 하는 시간 모델이 결정될 수도 있다. 시간 모델은 생성 시작 시간을 산출하기 위해 사용되는 모델이다. 상술한 실시예에서는 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간을 합산하여 가상 머신의 생성 시간을 산출하는 시간 모델이 이용되었으나, 이에 제한되지 않고 가상 머신의 생성 시간을 산출하기 위한 다양한 시간을 이용하는 시간 모델이 이용될 수 있다. 복수의 시간 모델이 저장된 경우, 시간 모델은 사용자의 선택에 의해 특정 시간 모델이 선택됨으로써 결정될 수도 있고, 생성하고자 하는 가상 머신에 적합한 특정 시간 모델이 추출됨으로써 결정될 수도 있다. 시간 모델 또는 시간 모델을 구성하는 각 구성 요소는 사용자의 요청을 통해 추가되거나, 변경되거나, 삭제되는 것이 가능하다.
다시 도 3을 참조하면, 단계 3에서 산출된 생성 시작 시간이 외부 모듈로 송신된다(S330). 여기서, 외부 모듈은 가상 클러스터의 스케줄링을 관리하거나 가상 클러스터의 생성을 수행하는 모듈로서, 데드라인 및 산출 요청을 송신한 단계 S310의 외부 모듈과 동일한 모듈일 수도 있고 상이한 모듈일 수도 있다. 생성 시작 시간이 외부 모듈로 송신됨으로써, 생성 시작 시간에 가상 클러스터의 생성이 개시되어 데드라인 전에 가상 클러스터의 생성이 완료될 수 있다.
본 발명의 또 다른 실시예에 따르면, 산출된 생성 시작 시간이 다른 모듈로 송신되지 않고, 생성 시작 시간에 기초하여 데드라인 이전에 가상 머신이 생성 완료되도록 가상 클러스터가 생성될 수도 있다. 가상 클러스터는 생성 시작 시간에 생성 시작되어 데드라인 이전에 생성 완료될 수 있다. 가상 클러스터는 가상 클러스터를 생성하는 통상적인 방법에 따라 생성될 수 있다.
상술한 바와 같이, 가상 클러스터의 구동 시간을 스케줄링하는데 있어서, 사용자가 설정한 데드라인을 기준으로 가상 클러스터가 생성 완료되도록 생성 시간 정보를 산출함으로써, 사용자가 원하는 시간에 가상 클러스터를 사용할 수 있도록 스케줄링할 수 있다는 본 발명의 유리한 효과가 획득된다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 가상 클러스터 구동 시간 스케줄링 장치
110 : 수신부
120 : 산출부
130 : 송신부
t1, t5, t9 : 산출 요청 수신 시간
t2, t6, t10 : 데드라인
t3, t7, t11 : 생성 시작 시간
t4, t8, t12 : 생성 완료 시간
tc1, tc2 : 생성 시간
tm1, tm3 : 여유 시간
110 : 수신부
120 : 산출부
130 : 송신부
t1, t5, t9 : 산출 요청 수신 시간
t2, t6, t10 : 데드라인
t3, t7, t11 : 생성 시작 시간
t4, t8, t12 : 생성 완료 시간
tc1, tc2 : 생성 시간
tm1, tm3 : 여유 시간
Claims (15)
- 가상 클러스터 구동 시간 스케줄링 장치에 의해 수행되는 가상 클러스터 구동 시간 스케줄링 방법에 있어서,
가상 클러스터 내의 가상 머신을 사용하고자 하는 시점인 데드라인 및 상기 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신하는 단계;
상기 데드라인에 기초하여 상기 생성 시작 시간을 산출하는 단계; 및
상기 생성 시작 시간을 외부 모듈로 송신하는 단계를 포함하고,
상기 생성 시작 시간을 산출하는 단계는 생성 완료 시간과 상기 데드라인 사이에 여유 시간이 확보되도록 상기 생성 완료 시간에 기초하여 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법. - 제 1 항에 있어서,
상기 생성 시작 시간을 산출하는 단계는,
생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 (total) 부팅 시간에 기초하여 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법. - 제 2 항에 있어서,
상기 가상 머신의 수는 2 이상이고,
상기 생성 시작 시간을 산출하는 단계는,
상기 가상 머신 각각에 대한 생성 명령 전달 시간이 순차적으로 처리되고, 상기 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 순차적 또는 병렬적으로 처리되고, 상기 가상 머신 각각에 대한 총 부팅 시간이 병렬적으로 처리되도록 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법. - 제 3 항에 있어서,
상기 생성 시작 시간을 산출하는 단계는,
상기 가상 머신이 동일한 호스트에 배치된 경우, 상기 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 하나의 호스트에서 순차적으로 처리되고,
상기 가상 머신이 서로 다른 호스트에 배치된 경우, 상기 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 서로 다른 호스트에서 병렬적으로 처리되도록 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법. - 제 2 항에 있어서,
상기 총 부팅 시간은 부팅 선택 시간, 부팅 시간, 초기화 시간 및 지연 시간 중 적어도 하나 이상의 시간을 합산한 시간인, 가상 클러스터 구동 시간 스케줄링 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 제 1 항에 있어서,
상기 산출 요청에 대하여 적용하고자 하는 시간 모델을 결정하는 단계를 더 포함하고,
상기 산출하는 단계는,
상기 시간 모델에 기초하여 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법. - 제 10 항에 있어서,
사용자의 요청을 통해 다른 시간 모델을 추가하는 단계;
상기 사용자의 요청을 통해 상기 시간 모델을 변경하는 단계; 또는
상기 사용자의 요청을 통해 상기 시간 모델을 삭제하는 단계를 더 포함하는, 가상 클러스터 구동 시간 스케줄링 방법. - 제 1 항에 있어서,
상기 수신하는 단계는,
상기 가상 머신에 대한 구동 시작 시간 및 구동 종료 시간을 포함하는 구동 주기 및 상기 가상 머신을 주기적으로 구동시키기 위한 산출 요청을 수신하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법. - 가상 클러스터 구동 시간 스케줄링 장치에 의해 수행되는 가상 클러스터 구동 시간 스케줄링 방법에 있어서,
가상 클러스터 내의 가상 머신을 사용하고자 하는 시점인 데드라인을 수신하는 단계;
상기 데드라인에 기초하여 생성 시작 시간을 산출하는 단계; 및
상기 생성 시작 시간에 기초하여 상기 데드라인 이전에 상기 가상 머신이 생성 완료되도록 상기 가상 머신을 생성하는 단계를 포함하고,
상기 생성 시작 시간을 산출하는 단계는 생성 완료 시간과 상기 데드라인 사이에 여유 시간이 확보되도록 상기 생성 완료 시간에 기초하여 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법. - 가상 클러스터 내의 가상 머신을 사용하고자 하는 시점인 데드라인 및 상기 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신하는 수신부;
상기 데드라인에 기초하여 상기 생성 시작 시간을 산출하는 산출부; 및
상기 생성 시작 시간을 외부 모듈로 송신하는 송신부를 포함하고,
상기 산출부는 생성 완료 시간과 상기 데드라인 사이에 여유 시간이 확보되도록 상기 생성 완료 시간에 기초하여 상기 생성 시작 시간을 산출하는, 가상 클러스터 구동 시간 스케줄링 장치. - 가상 클러스터 내의 가상 머신을 사용하고자 하는 시점인 데드라인을 수신하는 수신부;
상기 데드라인에 기초하여 생성 시작 시간을 산출하는 산출부; 및
상기 생성 시작 시간에 기초하여 상기 데드라인 이전에 상기 가상 머신이 생성 완료되도록 상기 가상 머신을 생성하는 생성부를 포함하고,
상기 산출부는 생성 완료 시간과 상기 데드라인 사이에 여유 시간이 확보되도록 상기 생성 완료 시간에 기초하여 상기 생성 시작 시간을 산출하는, 가상 클러스터 구동 시간 스케줄링 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150040495A KR101947221B1 (ko) | 2015-03-24 | 2015-03-24 | 가상 클러스터 구동 시간 스케줄링 방법 및 장치 |
PCT/KR2016/002985 WO2016153288A1 (ko) | 2015-03-24 | 2016-03-24 | 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150040495A KR101947221B1 (ko) | 2015-03-24 | 2015-03-24 | 가상 클러스터 구동 시간 스케줄링 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160114280A KR20160114280A (ko) | 2016-10-05 |
KR101947221B1 true KR101947221B1 (ko) | 2019-02-12 |
Family
ID=57153763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150040495A KR101947221B1 (ko) | 2015-03-24 | 2015-03-24 | 가상 클러스터 구동 시간 스케줄링 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101947221B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6984943B2 (ja) * | 2017-06-19 | 2021-12-22 | Necネクサソリューションズ株式会社 | 処理時間推定装置、処理時間推定方法及びプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013178682A (ja) * | 2012-02-28 | 2013-09-09 | Nippon Telegr & Teleph Corp <Ntt> | ネットワークシステムおよび配置制御方法 |
US20140047444A1 (en) | 2011-04-20 | 2014-02-13 | Nec Corporation | Virtual machine managing apparatus, virtual machine managing method, and program thereof |
KR101474872B1 (ko) | 2014-01-09 | 2014-12-19 | 성균관대학교산학협력단 | 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937618B2 (en) * | 2007-04-26 | 2011-05-03 | International Business Machines Corporation | Distributed, fault-tolerant and highly available computing system |
KR20120071979A (ko) * | 2010-12-23 | 2012-07-03 | 주식회사 케이티 | 클라우드 컴퓨팅 시스템의 자원관리장치 및 방법 |
KR101551706B1 (ko) * | 2012-10-30 | 2015-09-09 | 삼성에스디에스 주식회사 | 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체 |
-
2015
- 2015-03-24 KR KR1020150040495A patent/KR101947221B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140047444A1 (en) | 2011-04-20 | 2014-02-13 | Nec Corporation | Virtual machine managing apparatus, virtual machine managing method, and program thereof |
JP2013178682A (ja) * | 2012-02-28 | 2013-09-09 | Nippon Telegr & Teleph Corp <Ntt> | ネットワークシステムおよび配置制御方法 |
KR101474872B1 (ko) | 2014-01-09 | 2014-12-19 | 성균관대학교산학협력단 | 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20160114280A (ko) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8943353B2 (en) | Assigning nodes to jobs based on reliability factors | |
CN100487659C (zh) | 用于优化分段资源分配的方法和设备 | |
US9262220B2 (en) | Scheduling workloads and making provision decisions of computer resources in a computing environment | |
US20170277654A1 (en) | Method and apparatus for task scheduling on heterogeneous multi-core reconfigurable computing platform | |
US8869159B2 (en) | Scheduling MapReduce jobs in the presence of priority classes | |
US8671418B2 (en) | Environment modification in a hybrid node computing environment | |
CN109992407B (zh) | 一种yarn集群gpu资源调度方法、装置和介质 | |
US9374314B2 (en) | QoS aware balancing in data centers | |
US9141436B2 (en) | Apparatus and method for partition scheduling for a processor with cores | |
CN108304260A (zh) | 一种基于高性能云计算的虚拟化作业调度系统及其实现方法 | |
JP2017514247A5 (ko) | ||
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN115242752B (zh) | 电池管理系统的地址分配方法、装置、设备及介质 | |
JP6010975B2 (ja) | ジョブ管理装置、ジョブ管理方法、及びプログラム | |
CN100538649C (zh) | 用于分发分派窗内的未使用的处理器循环的方法和系统 | |
JP5178778B2 (ja) | 仮想計算機およびcpu割り当て方法 | |
CN103713852A (zh) | 一种信息处理方法、服务平台及电子设备 | |
JP2012181578A (ja) | 更新制御装置及びプログラム | |
JP2013164750A (ja) | ジョブ実行管理システム | |
KR101947221B1 (ko) | 가상 클러스터 구동 시간 스케줄링 방법 및 장치 | |
KR102399291B1 (ko) | 서버 플랫폼 상에서 원자적 태스크의 개시를 제어하는 기법 | |
CN115373828A (zh) | 一种资源调度方法、装置、设备以及计算机存储介质 | |
CN116157778A (zh) | 共享物理主机上混合集中分布式调度的系统和方法 | |
JP2010205208A (ja) | ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム | |
JP2010191567A (ja) | 情報管理装置及び情報管理方法等 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |