JP7003874B2 - リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラム - Google Patents
リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラム Download PDFInfo
- Publication number
- JP7003874B2 JP7003874B2 JP2018149846A JP2018149846A JP7003874B2 JP 7003874 B2 JP7003874 B2 JP 7003874B2 JP 2018149846 A JP2018149846 A JP 2018149846A JP 2018149846 A JP2018149846 A JP 2018149846A JP 7003874 B2 JP7003874 B2 JP 7003874B2
- Authority
- JP
- Japan
- Prior art keywords
- reservation
- resource
- instance
- information
- lease
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims description 128
- 238000013508 migration Methods 0.000 claims description 10
- 230000005012 migration Effects 0.000 claims description 10
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 238000000034 method Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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 the load
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5014—Reservation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は、複数のユーザでリソースを共有するリソース共有システムにおけるリソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラムに関する。
従来、IaaS(Infrastructure as a Service)のようなクラウドサービスにおいて、複数のユーザ(サービスやアプリケーション等)でリソース(コンピュートマシン等)を共有し、各ユーザが必要なときに必要な分だけリソースを利用するモデルが普及している。
例えばOpenStackを用いたクラウドオペレーティングシステムでは、Blazarと呼ばれるサービスを用いてユーザによるリソースの予約を可能とする(非特許文献1参照)。このBlazarでは、将来実行することが必要となるワークロードのためのインスタンスを、一定の連続稼働時間ごとに提供リソースに割り当てて予約することができる。
例えばOpenStackを用いたクラウドオペレーティングシステムでは、Blazarと呼ばれるサービスを用いてユーザによるリソースの予約を可能とする(非特許文献1参照)。このBlazarでは、将来実行することが必要となるワークロードのためのインスタンスを、一定の連続稼働時間ごとに提供リソースに割り当てて予約することができる。
図5は、Blazarで管理されるリソース予約テーブル(タイムテーブル)を模式的に示した図である。
図5では、リソースが4台のホストマシン(以下、「ホスト」と称する。)(ホスト1~4)で構成される例を示している。なお、ホストは、仮想マシン(インスタンス)を作成するコンピュートマシン(仮想的なCPU,メモリ,ディスク等によるリソース)により構成される。
Blazarでは、図5に示すように、リソース(ホスト)毎に予約を管理することにより、ユーザ(ユーザ端末)にリソースの利用権を与える。
例えばホスト2は、4月1日の0時00分から4月2日の0時00分がフリー(空き状態)であり、4月2日0時00分から4月4日0時00分までがプロジェクトA、4月5日0時00分から4月7日0時00分までがプロジェクトDにより予約されている。
また、1台のホストマシンを複数のユーザが部分的に予約することも可能である。例えば、ホスト1は、4月1日0時00分から4月4日0時00分にかけて、プロジェクトAおよびプロジェクトBにより予約されている(図5の符号a)。
図5では、リソースが4台のホストマシン(以下、「ホスト」と称する。)(ホスト1~4)で構成される例を示している。なお、ホストは、仮想マシン(インスタンス)を作成するコンピュートマシン(仮想的なCPU,メモリ,ディスク等によるリソース)により構成される。
Blazarでは、図5に示すように、リソース(ホスト)毎に予約を管理することにより、ユーザ(ユーザ端末)にリソースの利用権を与える。
例えばホスト2は、4月1日の0時00分から4月2日の0時00分がフリー(空き状態)であり、4月2日0時00分から4月4日0時00分までがプロジェクトA、4月5日0時00分から4月7日0時00分までがプロジェクトDにより予約されている。
また、1台のホストマシンを複数のユーザが部分的に予約することも可能である。例えば、ホスト1は、4月1日0時00分から4月4日0時00分にかけて、プロジェクトAおよびプロジェクトBにより予約されている(図5の符号a)。
このBlazarでは、リソースを予約する際に、時間(開始時刻・終了時刻)および利用するリソースの容量(リソース容量)(要求スペック)を指定することにより予約を行う。例えば、予約(リース)は、「2018/4/1 0:00 ~ 2018/4/5 0:00,4コア,16GB RAMを搭載したインスタンスを1台予約」としてユーザ(ユーザ端末)により要求される。これにより、図5の符号bに示すように、ホスト4にプロジェクトCのインスタンスを予約することができる。
"Blazar, the OpenStack Reservation Service"[online]、[平成30年7月30日検索]、インターネット<URL:https://docs.openstack.org/blazar/latest/>
しかしながら、上記した非特許文献1に記載のOpenStackのBlazarのように、時間(開始時刻・終了時刻)とリソース容量とを指定して予約する手法では、空きリソースが単数または複数のホストにわたって時間的に非連続で存在する場合、ユーザが所望する時間のリソースがトータルで存在していても、ユーザは、そのリソースを予約することはできない。
例えば、図6に示すように、4月1日0時00分から4月7日0時00分の間に、合計3日間以上の空きリソースがある場合でも、それが非連続な上、別ホストであるため、ユーザが同じインスタンスで3日間の空きリソースを確保することはできない(図6の符号c)。
例えば、図6に示すように、4月1日0時00分から4月7日0時00分の間に、合計3日間以上の空きリソースがある場合でも、それが非連続な上、別ホストであるため、ユーザが同じインスタンスで3日間の空きリソースを確保することはできない(図6の符号c)。
即ち、以下の課題が存在する。
(課題1)時間的に非連続な空きリソースを一つのインスタンスに予約することができない。
(課題2)ホストが異なるリソースを、一つのインスタンスに予約することができない。
(課題1)時間的に非連続な空きリソースを一つのインスタンスに予約することができない。
(課題2)ホストが異なるリソースを、一つのインスタンスに予約することができない。
図6に示すリソース予約テーブルにおけるリソースの空き状況は、クラウド内部の情報であるため、サービス提供者(サービス提供者端末)にしか情報提供されず、ユーザからはどの時刻にどれだけの時間帯ならリソースが利用可能であるかはわからない。また、仮にリソースの空き状況がユーザ側でわかったとしても、その空き状況に合わせて分割して予約するのは、手間のかかる作業となる。
本発明は、このような事情に鑑みなされたものであり、クラウドにおいて連続した空きリソースが確保できない場合においても、空きリソースを有効利用できる、リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラムを提供することを目的とする。
上述の目的を達成するため、請求項1に記載の発明は、クラウド上の複数のコンピュートマシンで構成されるリソースを、ユーザ端末に提供する管理を行うリソース予約管理装置であって、前記コンピュートマシンそれぞれのリソース容量、および、前記コンピュートマシン毎の時系列でのインスタンスの予約設定の有無を示すリソース予約情報を記憶する記憶部と、前記ユーザ端末から、前記リソースの稼働を要求する時間帯を示す稼働要求時間帯、前記インスタンスが稼働すべき時間を示す稼働時間、および、要求するリソースのリソース容量を示す要求スペックを含む予約要求情報を親リースの予約として受け付けるとともに、前記親リース毎の予約に付された予約IDと前記リソースの予約結果とを予約情報として前記予約要求情報を送信してきた前記ユーザ端末に送信する予約通知部と、前記コンピュートマシンそれぞれのリソース容量、および、前記リソース予約情報を参照し、前記予約要求情報で示される前記親リースの稼働要求時間帯に、前記要求スペックを満たし、かつ、前記稼働時間以上の前記コンピュートマシンの空きリソースがあるか否かを判定して無かった場合に、前記親リースの稼働要求時間帯内において、前記リソース予約情報で示される空きリソースとなる時間にあわせて、前記親リースの前記稼働時間を分割した子リースを生成し、生成した前記子リースの予約を前記予約IDとともに前記リソース予約情報に設定するスケジューリング部と、前記リソース予約情報を所定の時間間隔で参照することにより、作成されたインスタンスの停止、移行、再開、削除を含む所定のイベントの発生を検知する予約管理部と、前記ユーザ端末から、前記予約IDを含むインスタンス作成要求を受け取り、当該予約IDを用いて、前記リソース予約情報に設定された前記子リースのインスタンスを実行するコンピュートマシンを特定してインスタンス作成指示を送信し、当該コンピュートマシンにインスタンスを作成させるとともに、検知された前記所定のイベントに応じた指示情報を当該コンピュートマシンに送信するインスタンス管理部と、を備えることを特徴とするリソース予約管理装置とした。
また、請求項2に記載の発明は、クラウド上の複数のコンピュートマシンで構成されるリソースを、ユーザ端末に提供する管理を行うリソース予約管理装置のリソース予約管理方法であって、前記リソース予約管理装置が、前記コンピュートマシンそれぞれのリソース容量、および、前記コンピュートマシン毎の時系列でのインスタンスの予約設定の有無を示すリソース予約情報を記憶する記憶部を備えており、前記ユーザ端末から、前記リソースの稼働を要求する時間帯を示す稼働要求時間帯、前記インスタンスが稼働すべき時間を示す稼働時間、および、要求するリソースのリソース容量を示す要求スペックを含む予約要求情報を親リースの予約として受け付けるステップと、前記コンピュートマシンそれぞれのリソース容量、および、前記リソース予約情報を参照し、前記予約要求情報で示される前記親リースの稼働要求時間帯に、前記要求スペックを満たし、かつ、前記稼働時間以上の前記コンピュートマシンの空きリソースがあるか否かを判定して無かった場合に、前記親リースの稼働要求時間帯内において、前記リソース予約情報で示される空きリソースとなる時間にあわせて、前記親リースの前記稼働時間を分割した子リースを生成し、前記親リース毎に付した予約IDとともに、生成した前記子リースの予約を前記リソース予約情報に設定するステップと、前記予約IDと前記リソースの予約結果とを予約情報として前記予約要求情報を送信してきた前記ユーザ端末に送信するステップと、前記ユーザ端末から、前記予約IDを含むインスタンス作成要求を受け取り、当該予約IDを用いて、前記リソース予約情報に設定された前記子リースのインスタンスを実行するコンピュートマシンを特定してインスタンス作成指示を送信し、当該コンピュートマシンにインスタンスを作成させるステップと、前記リソース予約情報を所定の時間間隔で参照することにより、作成されたインスタンスの停止、移行、再開、削除を含む所定のイベントの発生を検知するステップと、検知された前記所定のイベントに応じた指示情報を前記コンピュートマシンに送信するステップと、を実行することを特徴とするリソース予約管理方法とした。
また、請求項3に記載の発明は、請求項2に記載のリソース予約管理方法を、コンピュータに実行させるためのリソース予約管理プログラムとした。
このようにすることにより、クラウド側の空きリソースが、単数または複数のコンピュートマシンにわたって時間的に非連続で存在し、親リースを予約できない場合であっても、ユーザが要求する稼働時間を分割した子リースを生成して予約を設定することができる。よって、空きリソースを有効活用することができる。
本発明によれば、クラウドにおいて連続した空きリソースが確保できない場合においても、空きリソースを有効利用する、リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラムを提供することができる。
次に、本発明を実施するための形態(以下、「本実施形態」という。)について説明する。まず、本実施形態に係るリソース予約管理装置10が実行する処理の概要を説明する。
<概要>
本実施形態に係るリソース予約管理装置10では、従来技術で示した図5および図6の予約(リース)の手法と同様に、ユーザ(ユーザ端末)が予約を時間指定すること、および、予約をリソース(各ホスト)に紐付けて予約を管理することを前提とする。
そして、リソース予約管理装置10における予約では、稼働時間および子リースという概念を導入する。従来技術では、予約の際には、「時間(開始時刻・終了時刻)」をユーザが指定していたが、リソース予約管理装置10では、ユーザ(ユーザ端末)は、稼働を要求する時間帯(以下、「稼働要求時間帯」と称する。)の開始時刻と終了時刻、および、インスタンスが稼働すべき時間(以下、「稼働時間」と称する。)を受け付ける。この稼働時間は、稼働を要求する時間帯のうち、実際にリソースの稼働させたい時間を意味する。なお、この稼働時間は、稼働を要求する時間帯のうちの時間(例えば、12時間、1日(24時間))で指定されても、稼働率で指定されてもよい。稼働率では、例えば、稼働を要求する時間帯が2日間であり、稼働率が25%であれば、12時間を「稼働時間」とする。
本実施形態に係るリソース予約管理装置10では、従来技術で示した図5および図6の予約(リース)の手法と同様に、ユーザ(ユーザ端末)が予約を時間指定すること、および、予約をリソース(各ホスト)に紐付けて予約を管理することを前提とする。
そして、リソース予約管理装置10における予約では、稼働時間および子リースという概念を導入する。従来技術では、予約の際には、「時間(開始時刻・終了時刻)」をユーザが指定していたが、リソース予約管理装置10では、ユーザ(ユーザ端末)は、稼働を要求する時間帯(以下、「稼働要求時間帯」と称する。)の開始時刻と終了時刻、および、インスタンスが稼働すべき時間(以下、「稼働時間」と称する。)を受け付ける。この稼働時間は、稼働を要求する時間帯のうち、実際にリソースの稼働させたい時間を意味する。なお、この稼働時間は、稼働を要求する時間帯のうちの時間(例えば、12時間、1日(24時間))で指定されても、稼働率で指定されてもよい。稼働率では、例えば、稼働を要求する時間帯が2日間であり、稼働率が25%であれば、12時間を「稼働時間」とする。
本実施形態に係るリソース予約管理装置10は、ユーザ端末から次に例示する予約要求情報を受信する。
「2018/4/1 0:00 ~ 2018/4/7 0:00,3日間,4コア,16GB RAMを搭載したインスタンスを1台予約」
ここで、「2018/4/1 0:00 ~ 2018/4/7 0:00」は、稼働要求時間帯の開始時刻と終了時刻である。
「3日間」は、インスタンスが稼働すべき時間(稼働時間)である。
「4コア,16GB RAM」は、リソース容量(要求スペック)である。
なお、この予約要求情報で示される予約(リース)の情報を「親リース」と称する。
「2018/4/1 0:00 ~ 2018/4/7 0:00,3日間,4コア,16GB RAMを搭載したインスタンスを1台予約」
ここで、「2018/4/1 0:00 ~ 2018/4/7 0:00」は、稼働要求時間帯の開始時刻と終了時刻である。
「3日間」は、インスタンスが稼働すべき時間(稼働時間)である。
「4コア,16GB RAM」は、リソース容量(要求スペック)である。
なお、この予約要求情報で示される予約(リース)の情報を「親リース」と称する。
本実施形態に係るリソース予約管理装置10では、ユーザ端末から受信した予約要求情報で示されるインスタンスが稼働すべき時間(稼働時間)をトータルで満たすように、その一つのインスタンスの親リースに対して、稼働時間を分散させた(分割した)リソース予約を行う。この分散させた各リースを「子リース」と称する。
図1は、本実施形態に係るリソース予約管理装置10が管理するリソース予約テーブル110(リソース予約情報)の一例を示す図である。
空きリソースの状況が図5に示す状態と同じであったとすると、上記の予約要求情報で示される「2018/4/1 0:00 ~2018/4/7 0:00」の稼働要求時間帯のうち稼働時間で示される「3日間」を連続して予約できる「フリー」のリソースは存在しない。この場合、リソース予約管理装置10は、リソース予約テーブル110を参照し、親リースを子リースに分割した予約を行う。
具体的には、リソース予約管理装置10は、以下のように、その時点での空きリソースに基づき、親リースを3つの子リースに分割して予約情報を生成する。
「ホスト2:2018/4/1 0:00 ~ 2018/4/2 0:00」+「ホスト2:2018/4/4 0:00 ~2018/4/5 0:00」+「ホスト1:2018/4/6 0:00 ~ 2018/4/7 0:00」
図1では、図5において空きリソース(フリー)だった箇所に、プロジェクトXの親リースのインスタンスが3つに分割されて子リースが予約されたことを示している。なお、図中の「I-001」は、後記する予約IDであり、一つの親リースから分割された各子リースには、同じ予約IDが付される。
空きリソースの状況が図5に示す状態と同じであったとすると、上記の予約要求情報で示される「2018/4/1 0:00 ~2018/4/7 0:00」の稼働要求時間帯のうち稼働時間で示される「3日間」を連続して予約できる「フリー」のリソースは存在しない。この場合、リソース予約管理装置10は、リソース予約テーブル110を参照し、親リースを子リースに分割した予約を行う。
具体的には、リソース予約管理装置10は、以下のように、その時点での空きリソースに基づき、親リースを3つの子リースに分割して予約情報を生成する。
「ホスト2:2018/4/1 0:00 ~ 2018/4/2 0:00」+「ホスト2:2018/4/4 0:00 ~2018/4/5 0:00」+「ホスト1:2018/4/6 0:00 ~ 2018/4/7 0:00」
図1では、図5において空きリソース(フリー)だった箇所に、プロジェクトXの親リースのインスタンスが3つに分割されて子リースが予約されたことを示している。なお、図中の「I-001」は、後記する予約IDであり、一つの親リースから分割された各子リースには、同じ予約IDが付される。
リソース予約管理装置10は、子リースの終了時刻にそのインスタンスの停止を行い、必要な場合にはインスタンスのマイグレーションを行う。また、リソース予約管理装置10は、子リースの開始時刻になるとインスタンスを再開させる等の処理を実行する。
このようにすることにより、本実施形態に係るリソース予約管理装置10は、連続した空きリソースが確保できない場合においても、インスタンスが稼働すべき時間を分割した子リースを生成して、リソースの予約を行うことができる。よって、空きリソースを有効活用することができる。
本実施形態に係るリソース予約管理装置10による分割した予約によるリソースの提供は、リアルタイムでのリソース提供が必要でない処理、例えば、科学計算など、同じホストで一定の連続稼働時間が必要ではないフォールトトレラントなワークロードを実行する仮想マシンをサービス提供者がユーザに提供する際に、特に有効である。
本実施形態に係るリソース予約管理装置10による分割した予約によるリソースの提供は、リアルタイムでのリソース提供が必要でない処理、例えば、科学計算など、同じホストで一定の連続稼働時間が必要ではないフォールトトレラントなワークロードを実行する仮想マシンをサービス提供者がユーザに提供する際に、特に有効である。
<本実施形態>
次に、リソース予約管理装置10を含むリソース予約管理システム1000について説明する。
図2は、本実施形態に係るリソース予約管理装置10を含むリソース予約管理システム1000の構成を示す図である。
リソース予約管理システム1000は、ユーザ端末5に対して、リソースを提供する複数のコンピュートマシン20と、ユーザ端末5に対するコンピュートマシン20のリソース提供を管理するリソース予約管理装置10と、を備える。リソース予約管理装置10は、複数のコンピュートマシン20と通信接続されるとともに、リソースを要求するユーザの端末であるユーザ端末5と、リソースの提供サービスを行うサービス提供者の管理端末(サービス提供者端末6)と接続される。
次に、リソース予約管理装置10を含むリソース予約管理システム1000について説明する。
図2は、本実施形態に係るリソース予約管理装置10を含むリソース予約管理システム1000の構成を示す図である。
リソース予約管理システム1000は、ユーザ端末5に対して、リソースを提供する複数のコンピュートマシン20と、ユーザ端末5に対するコンピュートマシン20のリソース提供を管理するリソース予約管理装置10と、を備える。リソース予約管理装置10は、複数のコンピュートマシン20と通信接続されるとともに、リソースを要求するユーザの端末であるユーザ端末5と、リソースの提供サービスを行うサービス提供者の管理端末(サービス提供者端末6)と接続される。
ここで、コンピュートマシン20(ホスト)は、仮想的なCPU,メモリ,ディスク等により構成され、ユーザ端末5からのインスタンス作成要求を契機として仮想マシン(仮想インスタンス)を作成し、ユーザ端末5にリソースを提供する。
ユーザ端末5は、コンピュートマシン20によるリソースの提供を受ける装置であり、リソース予約管理装置10に対して、予約要求情報を送信することにより、リソースを予約する。このユーザ端末5は、リソース予約管理装置10に予約要求情報を送信することにより予約が成立すると、リソース予約管理装置10から成立した予約の内容を示す予約情報を受信する。そして、ユーザ端末5は、当該予約の開始時刻になると、リソース予約管理装置10に対してインスタンス作成要求を送信することにより、コンピュートマシン20によるリソースの提供を受ける。
サービス提供者端末6は、リソース予約管理システム1000が行うリソース予約サービス全体を管理する装置である。
ユーザ端末5は、コンピュートマシン20によるリソースの提供を受ける装置であり、リソース予約管理装置10に対して、予約要求情報を送信することにより、リソースを予約する。このユーザ端末5は、リソース予約管理装置10に予約要求情報を送信することにより予約が成立すると、リソース予約管理装置10から成立した予約の内容を示す予約情報を受信する。そして、ユーザ端末5は、当該予約の開始時刻になると、リソース予約管理装置10に対してインスタンス作成要求を送信することにより、コンピュートマシン20によるリソースの提供を受ける。
サービス提供者端末6は、リソース予約管理システム1000が行うリソース予約サービス全体を管理する装置である。
≪リソース予約管理装置≫
リソース予約管理装置10は、制御手段、記憶手段および入出力手段(いずれも図示省略)を備えるコンピュータ等により実現される。
入出力手段は、情報の送受信を行うための通信インタフェース、および、タッチパネルやキーボード等の入力装置や、モニタ等の出力装置との間で情報の送受信を行うための入出力インタフェースからなる。
記憶手段(記憶部)は、フラッシュメモリやハードディスク、RAM(Random Access Memory)等により構成される。このリソース予約管理装置10の記憶手段には、図2に示すように、予約データベース100が記憶される。そして、この予約データベース100には、クラウド上の各コンピュートマシン20が備えるリソースの情報(リソース情報)と、各コンピュートマシン20(ホスト)毎に予約が確定したインスタンスの情報を示すリソース予約テーブル110(リソース予約情報)(図1)とが格納される。また、この記憶手段には、制御手段の各機能を実行させるためのプログラム(リソース予約管理プログラム)や、制御手段の処理に必要な情報が一時的に記憶される。
リソース予約管理装置10は、制御手段、記憶手段および入出力手段(いずれも図示省略)を備えるコンピュータ等により実現される。
入出力手段は、情報の送受信を行うための通信インタフェース、および、タッチパネルやキーボード等の入力装置や、モニタ等の出力装置との間で情報の送受信を行うための入出力インタフェースからなる。
記憶手段(記憶部)は、フラッシュメモリやハードディスク、RAM(Random Access Memory)等により構成される。このリソース予約管理装置10の記憶手段には、図2に示すように、予約データベース100が記憶される。そして、この予約データベース100には、クラウド上の各コンピュートマシン20が備えるリソースの情報(リソース情報)と、各コンピュートマシン20(ホスト)毎に予約が確定したインスタンスの情報を示すリソース予約テーブル110(リソース予約情報)(図1)とが格納される。また、この記憶手段には、制御手段の各機能を実行させるためのプログラム(リソース予約管理プログラム)や、制御手段の処理に必要な情報が一時的に記憶される。
また、制御手段は、図2に示すように、予約通知部11、スケジューリング部12、予約イベント管理部13、予約インスタンス管理部14、インスタンス管理部15を含んで構成される。なお、予約イベント管理部13および予約インスタンス管理部14が、請求項に記載の予約管理部を構成する。
この制御手段は、例えば、記憶手段に記憶されたプログラム(リソース予約管理プログラム)を不図示のCPU(Central Processing Unit)が、RAMに展開し実行することにより実現される。
この制御手段は、例えば、記憶手段に記憶されたプログラム(リソース予約管理プログラム)を不図示のCPU(Central Processing Unit)が、RAMに展開し実行することにより実現される。
予約通知部11は、ユーザ端末5から予約要求情報を受け付け、スケジューリング部12に予約の可否を問い合わせる。
ここで、ユーザ端末5から受け付ける予約要求情報は、稼働要求時間帯(稼働を要求する時間帯の開始時刻と終了時刻)、インスタンスが稼働すべき時間(稼働時間)、および、リソース容量(要求スペック)の情報が含まれる。
上記したように、予約要求情報は、例えば、「2018/4/1 0:00 ~ 2018/4/7 0:00,3日間,4コア,16GB RAMを搭載したインスタンスを1台予約」で示される情報である。
ここで、ユーザ端末5から受け付ける予約要求情報は、稼働要求時間帯(稼働を要求する時間帯の開始時刻と終了時刻)、インスタンスが稼働すべき時間(稼働時間)、および、リソース容量(要求スペック)の情報が含まれる。
上記したように、予約要求情報は、例えば、「2018/4/1 0:00 ~ 2018/4/7 0:00,3日間,4コア,16GB RAMを搭載したインスタンスを1台予約」で示される情報である。
予約通知部11は、スケジューリング部12から予約可能であるとの情報を受け取った場合、当該予約の識別情報である予約IDと、リソース利用可能な時間帯と、予約されたインスタンスのホストの情報とを含む予約情報を、予約要求情報を送信してきたユーザ端末5に送信する。
なお、予約通知部11は、スケジューリング部12から予約不可であるとの情報を受け取った場合、予約不可通知をユーザ端末5に送信するとともに、サービス提供者端末6に対してリソース不足通知を送信する。
なお、予約通知部11は、スケジューリング部12から予約不可であるとの情報を受け取った場合、予約不可通知をユーザ端末5に送信するとともに、サービス提供者端末6に対してリソース不足通知を送信する。
スケジューリング部12は、予約通知部11から予約要求情報を受け取り、予約データベース100内の各コンピュートマシン20のリソース情報およびリソース予約テーブル110(図1)を参照して、予約設定処理を実行する。
具体的には、スケジューリング部12は、予約要求情報で示される稼働要求時間帯においてリソース容量(要求スペック)を満たすホストの空きリソースがあるかを、各コンピュートマシン20のリソース情報およびリソース予約テーブル110を参照して確認する。そして、スケジューリング部12は、親リースを時間的に分割せずに設定できる空きリソースがある場合には、その空きリソースに予約(親リース)を設定する。また、スケジューリング部12は、親リースを時間的に分割せずに設定できる空きリソースがない場合には、現状のリソース予約テーブル110で示される空きリソース(フリー)にあわせて、親リースを時間的に分割した子リースを生成し、複数の空きリソースに予約(子リース)を設定する。
例えば、スケジューリング部12は、上記の予約要求情報を予約通知部11が受け付けた場合、図1に示すように、図5で示される空きリソース(フリー)に対し分割した子リースを次のように設定する。
「ホスト2:2018/4/1 0:00 ~ 2018/4/2 0:00」+「ホスト2:2018/4/4 0:00 ~2018/4/5 0:00」+「ホスト1:2018/4/6 0:00 ~ 2018/4/7 0:00」
具体的には、スケジューリング部12は、予約要求情報で示される稼働要求時間帯においてリソース容量(要求スペック)を満たすホストの空きリソースがあるかを、各コンピュートマシン20のリソース情報およびリソース予約テーブル110を参照して確認する。そして、スケジューリング部12は、親リースを時間的に分割せずに設定できる空きリソースがある場合には、その空きリソースに予約(親リース)を設定する。また、スケジューリング部12は、親リースを時間的に分割せずに設定できる空きリソースがない場合には、現状のリソース予約テーブル110で示される空きリソース(フリー)にあわせて、親リースを時間的に分割した子リースを生成し、複数の空きリソースに予約(子リース)を設定する。
例えば、スケジューリング部12は、上記の予約要求情報を予約通知部11が受け付けた場合、図1に示すように、図5で示される空きリソース(フリー)に対し分割した子リースを次のように設定する。
「ホスト2:2018/4/1 0:00 ~ 2018/4/2 0:00」+「ホスト2:2018/4/4 0:00 ~2018/4/5 0:00」+「ホスト1:2018/4/6 0:00 ~ 2018/4/7 0:00」
スケジューリング部12は、予約を設定すると、その予約要求情報(親リース)毎に、当該予約に固有の識別情報である予約ID(例えば、図1に示す「I-001」)を付し、予約情報として予約通知部11に出力する。
なお、スケジューリング部12は、リソース予約テーブル110(図1)において予約を設定する際、インスタンスの停止や、異なるホストへのインスタンスの移行にかかる時間マージンも考慮して予約の設定を行う。
なお、スケジューリング部12は、リソース予約テーブル110(図1)において予約を設定する際、インスタンスの停止や、異なるホストへのインスタンスの移行にかかる時間マージンも考慮して予約の設定を行う。
予約イベント管理部13は、所定の時間間隔で予約データベース100内のリソース予約テーブル110(図1)を参照し、子リースの開始時刻にインスタンスの再開を行うように予約インスタンス管理部14に通知する。
また、予約イベント管理部13は、子リースの終了時刻に、インスタンスの停止を行うように予約インスタンス管理部14に通知する。
さらに、予約イベント管理部13は、子リースのインスタンスの停止後、次の子リースで予約しているコンピュートマシン20が、当該インスタンスとは別のコンピュートマシン20であれば、その別のコンピュートマシン20にインスタンスを移行(マイグレーション)するように、予約インスタンス管理部14に通知する。
また、予約イベント管理部13は、親リースの終了時には、インスタンスを削除するように、予約インスタンス管理部14に通知する。
また、予約イベント管理部13は、子リースの終了時刻に、インスタンスの停止を行うように予約インスタンス管理部14に通知する。
さらに、予約イベント管理部13は、子リースのインスタンスの停止後、次の子リースで予約しているコンピュートマシン20が、当該インスタンスとは別のコンピュートマシン20であれば、その別のコンピュートマシン20にインスタンスを移行(マイグレーション)するように、予約インスタンス管理部14に通知する。
また、予約イベント管理部13は、親リースの終了時には、インスタンスを削除するように、予約インスタンス管理部14に通知する。
予約インスタンス管理部14は、予約イベント管理部13の通知に従い、インスタンスの再開、停止、移行、削除の指示を、インスタンス管理部15に指示する。
インスタンス管理部15は、ユーザ端末5からのインスタンス作成要求を契機に、予約インスタンス管理部14を介して、予約の設定の有無(予約の正当性)を予約イベント管理部13に確認し、予約の設定が確認された場合に、予約されているコンピュートマシン20にインスタンス作成指示を送信することにより、インスタンス(仮想インスタンス)を作成させる。
また、インスタンス管理部15は、予約インスタンス管理部14からの、インスタンスの再開、停止、移行、削除の指示を契機に、対象となるコンピュートマシン20に指示情報を送信することにより、指定された処理(インスタンスの再開、停止、移行、削除)を実行させる。
また、インスタンス管理部15は、予約インスタンス管理部14からの、インスタンスの再開、停止、移行、削除の指示を契機に、対象となるコンピュートマシン20に指示情報を送信することにより、指定された処理(インスタンスの再開、停止、移行、削除)を実行させる。
<処理の流れ>
次に、リソース予約管理装置10が実行する処理の流れについて、図3および図4を参照して説明する。図3では、ユーザ端末5から予約要求情報を受け付け、リソースの予約を行う予約設定処理について説明する。また、図4では、リソース予約テーブル110(図1)に設定された子リースに基づく、インスタンスの状態制御について説明する。
次に、リソース予約管理装置10が実行する処理の流れについて、図3および図4を参照して説明する。図3では、ユーザ端末5から予約要求情報を受け付け、リソースの予約を行う予約設定処理について説明する。また、図4では、リソース予約テーブル110(図1)に設定された子リースに基づく、インスタンスの状態制御について説明する。
図3は、本実施形態に係るリソース予約管理装置10が実行する予約設定処理の流れを示すフローチャートである。
まず、リソース予約管理装置10の予約通知部11は、ユーザ端末5から予約要求情報を受け付ける(ステップS10)。そして、予約通知部11は、当該予約要求情報について、スケジューリング部12に予約の可否を問い合わせる。
なお、この予約要求情報には、稼働要求時間帯、インスタンスが稼働すべき時間(稼働時間)、および、リソース容量(要求スペック)の情報が含まれる。
なお、この予約要求情報には、稼働要求時間帯、インスタンスが稼働すべき時間(稼働時間)、および、リソース容量(要求スペック)の情報が含まれる。
次に、スケジューリング部12は、予約データベース100内の各コンピュートマシン20のリソース情報およびリソース予約テーブル110(図1)を参照して、予約要求情報で示される稼働要求時間帯、つまり親リース期間内に、リソース容量(要求スペック)を満たすリソース(ホスト)において、稼働時間以上の空きリソースがあるか否かを判定する(ステップS11)。
ここで、スケジューリング部12は、稼働時間以上の空きリソースがあると判定した場合には(ステップS11→Yes)、ステップS12に進む。
ここで、スケジューリング部12は、稼働時間以上の空きリソースがあると判定した場合には(ステップS11→Yes)、ステップS12に進む。
ステップS12において、スケジューリング部12は、リソース予約テーブル110における稼働時間以上の空きリソースに、予約要求情報に基づく予約(親リース)を登録する。なお、スケジューリング部12は、この予約されたリソース利用可能な時間帯と、インスタンスのホストの情報とに、当該予約の識別情報である予約IDを対応付けて登録する。そして、ステップS17に進む。
一方、スケジューリング部12は、ステップS11において、稼働時間以上の空きリソースがないと判定した場合(ステップS11→No)、ステップS13に進む。
ステップS13において、スケジューリング部12は、リソース予約テーブル110を参照し、稼働要求時間帯(親リース期間内)に2つ以上の空きリソースがあるか否かを判定する。
ここで、スケジューリング部12は、2つ以上の空きリソースがない場合には(ステップS13→No)、ステップS15へ進む。
ステップS13において、スケジューリング部12は、リソース予約テーブル110を参照し、稼働要求時間帯(親リース期間内)に2つ以上の空きリソースがあるか否かを判定する。
ここで、スケジューリング部12は、2つ以上の空きリソースがない場合には(ステップS13→No)、ステップS15へ進む。
一方、2つ以上の空きリソースがある場合(ステップS13→Yes)、スケジューリング部12は、リソース予約テーブル110を参照し、2つ以上の空きリソースを組み合わせることで、要求された稼働時間以上の空きリソースを確保できるか否かを判定する(ステップS14)。
ここで、スケジューリング部12は、稼働時間以上の空きリソースを確保できない場合(ステップS14→No)、ステップS15へ進む。
ここで、スケジューリング部12は、稼働時間以上の空きリソースを確保できない場合(ステップS14→No)、ステップS15へ進む。
ステップS15において、スケジューリング部12は、予約不可である旨の情報を予約通知部11に出力し、予約通知部11が、予約不可通知を、予約要求情報を送信してきたユーザ端末5に送信する。また、予約通知部11は、サービス提供者端末6に対して、リソース不足通知を送信してもよい。
一方、ステップS14において、稼働時間以上の空きリソースを確保できると判定した場合には(ステップS14→Yes)、スケジューリング部12は、親リースを空きリソースに対応した子リースに分割し、リソース予約テーブル110にその予約(子リース)を登録する(ステップS16)。そして、ステップS17に進む。
なお、スケジューリング部12は、この分割して予約されたリソース利用可能な時間帯と、インスタンスのホストの情報に、当該予約の識別情報である予約IDを対応付けて登録する。なお、この予約IDは、親リースに対応して生成された1つのID(同一のID)が各子リースに付される。
なお、スケジューリング部12は、この分割して予約されたリソース利用可能な時間帯と、インスタンスのホストの情報に、当該予約の識別情報である予約IDを対応付けて登録する。なお、この予約IDは、親リースに対応して生成された1つのID(同一のID)が各子リースに付される。
ステップS17において、予約通知部11は、スケジューリング部12から、当該予約の識別情報である予約IDと、リソース利用可能な時間帯と、予約されたインスタンスのホストの情報とを含む予約情報を受け取り、予約要求情報を送信してきたユーザ端末5に対して送信する。
このようにすることにより、本実施形態に係るリソース予約管理装置10は、連続した空きリソースが確保できない場合においても、インスタンスが稼働すべき時間を分割した子リースを生成して、リソースの予約を行うことができる。よって、空きリソースを有効活用することができる。
図4は、本実施形態に係るリソース予約管理装置10が実行するインスタンスの状態制御処理の流れを示すフローチャートである。
なお、リソース予約管理装置10は、予約イベント管理部13が予約データベース100内に記憶したリソース予約テーブル110(図1)を参照することにより、イベント(インスタンスの再開、停止、移行、削除)の発生を監視する。
なお、リソース予約管理装置10は、予約イベント管理部13が予約データベース100内に記憶したリソース予約テーブル110(図1)を参照することにより、イベント(インスタンスの再開、停止、移行、削除)の発生を監視する。
まず、リソース予約管理装置10の予約イベント管理部13は、所定の時間が経過したか否かを判定する(ステップS20)。ここで、所定の時間が経過していない場合には(ステップS20→No)、所定の時間が経過するまで待つ。一方、所定の時間が経過した場合には(ステップS20→Yes)、次のステップS21へ進む。
ステップS21において、予約イベント管理部13は、予約データベース100内のリソース予約テーブル110を参照し、所定のイベントが発生したか否かを判定する。
ここで、所定のイベントとは、インスタンスの再開、停止、移行、削除である。
予約イベント管理部13は、イベントが発生したと判定すると(ステップS21→Yes)、そのイベントの内容を、予約インスタンス管理部14を介して、インスタンス管理部15に通知する。これにより、インスタンス管理部15は、各コンピュートマシン20におけるインスタンスの状態を制御する(ステップS22)。なお、予約イベント管理部13は、所定のイベントの発生していないと判定した場合には(ステップS21→No)、処理を終える。
ここで、所定のイベントとは、インスタンスの再開、停止、移行、削除である。
予約イベント管理部13は、イベントが発生したと判定すると(ステップS21→Yes)、そのイベントの内容を、予約インスタンス管理部14を介して、インスタンス管理部15に通知する。これにより、インスタンス管理部15は、各コンピュートマシン20におけるインスタンスの状態を制御する(ステップS22)。なお、予約イベント管理部13は、所定のイベントの発生していないと判定した場合には(ステップS21→No)、処理を終える。
ステップS22において、予約イベント管理部13は、具体的には次に示す各処理を実行する。
予約イベント管理部13は、リソース予約テーブル110(図1)を参照し、インスタンスが作成済みであり停止している場合において、そのインスタンスの子リースの開始時刻になったときに、イベント(インスタンスの再開)の発生を検知する。そして、予約イベント管理部13は、インスタンスの再開を行うように予約インスタンス管理部14を介して、インスタンス管理部15に通知する。
予約イベント管理部13は、リソース予約テーブル110(図1)を参照し、インスタンスが作成済みであり停止している場合において、そのインスタンスの子リースの開始時刻になったときに、イベント(インスタンスの再開)の発生を検知する。そして、予約イベント管理部13は、インスタンスの再開を行うように予約インスタンス管理部14を介して、インスタンス管理部15に通知する。
また、予約イベント管理部13は、リソース予約テーブル110(図1)を参照し、子リースの終了時刻になると、イベント(インスタンスの停止)の発生を検知する。そして、予約イベント管理部13は、インスタンスの停止を行うように予約インスタンス管理部14を介して、インスタンス管理部15に通知する。
また、予約イベント管理部13は、リソース予約テーブル110(図1)を参照し、インスタンスの停止後、当該インスタンスの次の子リースで予約しているホスト(コンピュートマシン20)が、停止したインスタンスのホストとは別のホストであるか否かを確認する。そして、予約イベント管理部13は、別のホストにおいて子リースが予約されていると確認したとき、その別のホスト(コンピュートマシン20)にインスタンスを移行(マイグレーション)するイベントが発生したことを検知する。そして、予約イベント管理部13は、インスタンスの移行(マイグレーション)を行うよう、予約インスタンス管理部14を介して、インスタンス管理部15に通知する。
また、予約イベント管理部13は、リソース予約テーブル110(図1)を参照し、親リース(子リースを生成した場合には、分割した子リースのうちの最後の子リース)の終了時刻になると、イベント(インスタンスの終了)の発生を検知する。そして、予約イベント管理部13は、インスタンスを終了するように予約インスタンス管理部14を介して、インスタンス管理部15に通知する。
これらの通知を受け、インスタンス管理部15は、各コンピュートマシン20におけるインスタンスの状態(再開、停止、移行、削除)を制御する。
これらの通知を受け、インスタンス管理部15は、各コンピュートマシン20におけるインスタンスの状態(再開、停止、移行、削除)を制御する。
本実施形態に係るリソース予約管理装置10は、このように、リソース予約テーブル110(図1)を所定の時間間隔で参照することにより、イベントの発生を検知し、各コンピュートマシン20のインスタンスの状態を制御(インスタンスの再開、停止、移行、削除)して、ユーザ端末5にリソースを提供することができる。
以上説明したように、本実施形態に係るリソース予約管理装置10、リソース予約管理方法およびリソース予約管理プログラムによれば、連続した空きリソースが確保できない場合においても、インスタンスが稼働すべき時間を分割した子リースを生成して、リソースの予約を行うことができる。よって、空きリソースを有効活用することができる。
5 ユーザ端末
6 サービス提供者端末
10 リソース予約管理装置
11 予約通知部
12 スケジューリング部
13 予約イベント管理部(予約管理部)
14 予約インスタンス管理部(予約管理部)
15 インスタンス管理部
20 コンピュートマシン
100 予約データベース
110 リソース予約テーブル(リソース予約情報)
1000 リソース予約管理システム
6 サービス提供者端末
10 リソース予約管理装置
11 予約通知部
12 スケジューリング部
13 予約イベント管理部(予約管理部)
14 予約インスタンス管理部(予約管理部)
15 インスタンス管理部
20 コンピュートマシン
100 予約データベース
110 リソース予約テーブル(リソース予約情報)
1000 リソース予約管理システム
Claims (3)
- クラウド上の複数のコンピュートマシンで構成されるリソースを、ユーザ端末に提供する管理を行うリソース予約管理装置であって、
前記コンピュートマシンそれぞれのリソース容量、および、前記コンピュートマシン毎の時系列でのインスタンスの予約設定の有無を示すリソース予約情報を記憶する記憶部と、
前記ユーザ端末から、前記リソースの稼働を要求する時間帯を示す稼働要求時間帯、前記インスタンスが稼働すべき時間を示す稼働時間、および、要求するリソースのリソース容量を示す要求スペックを含む予約要求情報を親リースの予約として受け付けるとともに、前記親リース毎の予約に付された予約IDと前記リソースの予約結果とを予約情報として前記予約要求情報を送信してきた前記ユーザ端末に送信する予約通知部と、
前記コンピュートマシンそれぞれのリソース容量、および、前記リソース予約情報を参照し、前記予約要求情報で示される前記親リースの稼働要求時間帯に、前記要求スペックを満たし、かつ、前記稼働時間以上の前記コンピュートマシンの空きリソースがあるか否かを判定して無かった場合に、前記親リースの稼働要求時間帯内において、前記リソース予約情報で示される空きリソースとなる時間にあわせて、前記親リースの前記稼働時間を分割した子リースを生成し、生成した前記子リースの予約を前記予約IDとともに前記リソース予約情報に設定するスケジューリング部と、
前記リソース予約情報を所定の時間間隔で参照することにより、作成されたインスタンスの停止、移行、再開、削除を含む所定のイベントの発生を検知する予約管理部と、
前記ユーザ端末から、前記予約IDを含むインスタンス作成要求を受け取り、当該予約IDを用いて、前記リソース予約情報に設定された前記子リースのインスタンスを実行するコンピュートマシンを特定してインスタンス作成指示を送信し、当該コンピュートマシンにインスタンスを作成させるとともに、検知された前記所定のイベントに応じた指示情報を当該コンピュートマシンに送信するインスタンス管理部と、
を備えることを特徴とするリソース予約管理装置。 - クラウド上の複数のコンピュートマシンで構成されるリソースを、ユーザ端末に提供する管理を行うリソース予約管理装置のリソース予約管理方法であって、
前記リソース予約管理装置は、
前記コンピュートマシンそれぞれのリソース容量、および、前記コンピュートマシン毎の時系列でのインスタンスの予約設定の有無を示すリソース予約情報を記憶する記憶部を備えており、
前記ユーザ端末から、前記リソースの稼働を要求する時間帯を示す稼働要求時間帯、前記インスタンスが稼働すべき時間を示す稼働時間、および、要求するリソースのリソース容量を示す要求スペックを含む予約要求情報を親リースの予約として受け付けるステップと、
前記コンピュートマシンそれぞれのリソース容量、および、前記リソース予約情報を参照し、前記予約要求情報で示される前記親リースの稼働要求時間帯に、前記要求スペックを満たし、かつ、前記稼働時間以上の前記コンピュートマシンの空きリソースがあるか否かを判定して無かった場合に、前記親リースの稼働要求時間帯内において、前記リソース予約情報で示される空きリソースとなる時間にあわせて、前記親リースの前記稼働時間を分割した子リースを生成し、前記親リース毎に付した予約IDとともに、生成した前記子リースの予約を前記リソース予約情報に設定するステップと、
前記予約IDと前記リソースの予約結果とを予約情報として前記予約要求情報を送信してきた前記ユーザ端末に送信するステップと、
前記ユーザ端末から、前記予約IDを含むインスタンス作成要求を受け取り、当該予約IDを用いて、前記リソース予約情報に設定された前記子リースのインスタンスを実行するコンピュートマシンを特定してインスタンス作成指示を送信し、当該コンピュートマシンにインスタンスを作成させるステップと、
前記リソース予約情報を所定の時間間隔で参照することにより、作成されたインスタンスの停止、移行、再開、削除を含む所定のイベントの発生を検知するステップと、
検知された前記所定のイベントに応じた指示情報を前記コンピュートマシンに送信するステップと、
を実行することを特徴とするリソース予約管理方法。 - 請求項2に記載のリソース予約管理方法を、コンピュータに実行させるためのリソース予約管理プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018149846A JP7003874B2 (ja) | 2018-08-09 | 2018-08-09 | リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラム |
PCT/JP2019/028748 WO2020031680A1 (ja) | 2018-08-09 | 2019-07-23 | リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラム |
US17/265,701 US11520637B2 (en) | 2018-08-09 | 2019-07-23 | Resource reservation management device, resource reservation management method, and resource reservation management program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018149846A JP7003874B2 (ja) | 2018-08-09 | 2018-08-09 | リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020024646A JP2020024646A (ja) | 2020-02-13 |
JP7003874B2 true JP7003874B2 (ja) | 2022-01-21 |
Family
ID=69414149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018149846A Active JP7003874B2 (ja) | 2018-08-09 | 2018-08-09 | リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11520637B2 (ja) |
JP (1) | JP7003874B2 (ja) |
WO (1) | WO2020031680A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11856432B2 (en) * | 2018-06-08 | 2023-12-26 | Qualcomm Incorporated | Acknowledgement design for multi-transmission configuration indicator state transmission |
JP2021077021A (ja) * | 2019-11-07 | 2021-05-20 | 株式会社リコー | リソース予約システム、リソース利用方法 |
WO2021095226A1 (ja) * | 2019-11-15 | 2021-05-20 | 日本電信電話株式会社 | エッジ切替システム、エッジ切替装置、エッジ切替方法およびプログラム |
US11977914B2 (en) * | 2020-12-29 | 2024-05-07 | Motorola Solutions, Inc. | Scheduling resource reservations in a cloud-based communication system |
US11966854B2 (en) * | 2022-08-31 | 2024-04-23 | International Business Machines Corporation | Knowledge graph for determining a resource vendor from which to lease resources |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050246666A1 (en) | 2004-04-30 | 2005-11-03 | Forgent Networks, Inc. | System, method and software for managing and publishing resource availability data |
JP2006031400A (ja) | 2004-07-15 | 2006-02-02 | Hitachi Ltd | 情報処理システム |
JP2008171325A (ja) | 2007-01-15 | 2008-07-24 | Nippon Telegr & Teleph Corp <Ntt> | 資源管理装置および方法 |
JP2018160186A (ja) | 2017-03-23 | 2018-10-11 | 富士通株式会社 | 監視プログラム、監視方法および監視装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9667471B2 (en) * | 2010-04-19 | 2017-05-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Pre-scheduling of quality of service reservation |
US9780993B2 (en) * | 2013-06-26 | 2017-10-03 | Amazon Technologies, Inc. | Producer computing system leasing on behalf of consumer computing system |
US9563470B2 (en) * | 2013-12-23 | 2017-02-07 | International Business Machines Corporation | Backfill scheduling for embarrassingly parallel jobs |
US20160071199A1 (en) * | 2014-09-10 | 2016-03-10 | Thomson Licensing | System and method for video rental |
-
2018
- 2018-08-09 JP JP2018149846A patent/JP7003874B2/ja active Active
-
2019
- 2019-07-23 US US17/265,701 patent/US11520637B2/en active Active
- 2019-07-23 WO PCT/JP2019/028748 patent/WO2020031680A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050246666A1 (en) | 2004-04-30 | 2005-11-03 | Forgent Networks, Inc. | System, method and software for managing and publishing resource availability data |
JP2006031400A (ja) | 2004-07-15 | 2006-02-02 | Hitachi Ltd | 情報処理システム |
JP2008171325A (ja) | 2007-01-15 | 2008-07-24 | Nippon Telegr & Teleph Corp <Ntt> | 資源管理装置および方法 |
JP2018160186A (ja) | 2017-03-23 | 2018-10-11 | 富士通株式会社 | 監視プログラム、監視方法および監視装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020031680A1 (ja) | 2020-02-13 |
US11520637B2 (en) | 2022-12-06 |
JP2020024646A (ja) | 2020-02-13 |
US20210311805A1 (en) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7003874B2 (ja) | リソース予約管理装置、リソース予約管理方法およびリソース予約管理プログラム | |
JP5939740B2 (ja) | 動的にリソースを割り当てる方法、システム及びプログラム | |
Nitzberg et al. | PBS Pro: Grid computing and scheduling attributes | |
JP2011065645A (ja) | マルチコアプロセッサシステム | |
US9092272B2 (en) | Preparing parallel tasks to use a synchronization register | |
JP4992408B2 (ja) | ジョブ割当プログラム、方法及び装置 | |
US10108463B2 (en) | System, method of controlling to execute a job, and apparatus | |
CN113886089A (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
JP6924083B2 (ja) | 情報処理システムおよびリソース割り当て方法 | |
CN115576684A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN115617497A (zh) | 线程处理方法、调度组件、监测组件、服务器和存储介质 | |
JP6326062B2 (ja) | 異なる環境どうし間でのジョブ実行依頼のトランスペアレントなルーティング | |
JP6239400B2 (ja) | 制御装置 | |
JP6047941B2 (ja) | タスク実行順序制御機能を含む監視制御システム | |
JP2010191567A (ja) | 情報管理装置及び情報管理方法等 | |
JP6303806B2 (ja) | 並列計算機システム,プロセス制御プログラム,及び並列計算機システムの制御方法 | |
JP6191361B2 (ja) | 情報処理システム、情報処理システムの制御方法及び制御プログラム | |
WO2016075771A1 (ja) | 計算機システムおよび計算機システムにおけるオートスケール方法 | |
CN115686813A (zh) | 一种资源调度方法、装置、电子设备和存储介质 | |
JP2011215812A (ja) | 仮想計算機管理方法、計算機システム及びリソース管理プログラム | |
JP2015090688A (ja) | MapReduceジョブ管理システム、MapReduceジョブ管理方法 | |
Gunupati et al. | Distributed Controller for Load Balancing with VM Migration | |
KR102338422B1 (ko) | Did 기반 클라우드 환경의 협업툴 서비스 제공 방법, 장치 및 시스템 | |
WO2022222975A1 (zh) | 负载处理方法、计算节点、计算节点集群及相关设备 | |
JP6385304B2 (ja) | 計算機資源提供サービスの管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201204 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20211130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211213 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7003874 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |