JP7040113B2 - プログラム及び情報処理装置 - Google Patents

プログラム及び情報処理装置 Download PDF

Info

Publication number
JP7040113B2
JP7040113B2 JP2018031266A JP2018031266A JP7040113B2 JP 7040113 B2 JP7040113 B2 JP 7040113B2 JP 2018031266 A JP2018031266 A JP 2018031266A JP 2018031266 A JP2018031266 A JP 2018031266A JP 7040113 B2 JP7040113 B2 JP 7040113B2
Authority
JP
Japan
Prior art keywords
service
virtual machine
unit
transfer
usage rate
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
Application number
JP2018031266A
Other languages
English (en)
Other versions
JP2019145037A (ja
Inventor
泰弘 丸山
道明 八木
隆之 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2018031266A priority Critical patent/JP7040113B2/ja
Publication of JP2019145037A publication Critical patent/JP2019145037A/ja
Application granted granted Critical
Publication of JP7040113B2 publication Critical patent/JP7040113B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、プログラム及び情報処理装置に関する。
特許文献1には、複数のサーバ間における仮想マシンの負荷情報に基づいて移行元サーバと移行対象仮想マシン、移行先サーバを決定し、動的移行の準備が完了した後の移行元サーバ及び移行先サーバの負荷情報に基づいて動的移行の実行の可否を決定する技術が開示されている。
特許第5549189号公報
クラウドサービスでは、ユーザが利用する各種サービス(画像処理サービス等)を複数個同時に実行可能なインスタンスと呼ばれる仮想マシンが提供され、利用中のインスタンスの数に応じて課金されることがある。例えばサービスの実行主体であるインスタンスを固定している場合、実行中のサービスが1つでも残っているとそのサービスを終了させない限りインスタンスの利用も終了することができないから、インスタンスの数を減らすことができない。
そこで、本発明は、サービスの実行主体を固定する場合に比べて、サービスを実行する仮想マシンを少なくすることを目的とする。
本発明の請求項1に係るプログラムは、複数の仮想マシンを実現する実現部を備えるコンピュータを、第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部として機能させることを特徴とする。
本発明の請求項2に係るプログラムは、請求項1に記載の構成において、前記コンピュータを、仮想マシンで実行中のサービスに割り当てられている第2リソースの前記第1リソースに対する第1割合を前記リソース使用率として算出する第1算出部と、他の仮想マシンに移転予定のサービスを除いた前記実行中のサービスに割り当てられている第3リソースの前記第1リソースに対する第2割合を前記リソース使用率として算出する第2算出部と、複数の仮想マシンにおける前記第1割合及び前記第2割合を取得する取得部として機能させ、前記決定部は、前記第2仮想マシンについての前記第1割合又は前記第2割合が示す空きリソースで実行可能なサービスが前記実行部により実行中である場合、前記第1仮想マシンの前記第2割合から定まる閾値以上の前記第2割合が前記第2仮想マシンについて取得されたときに当該第2仮想マシンを当該サービスの移転先として決定することを特徴とする。
本発明の請求項3に係るプログラムは、請求項2に記載の構成において、前記決定部は、取得された前記第1仮想マシンの前記第2割合を前記閾値とすることを特徴とする。
本発明の請求項4に係るプログラムは、請求項1から3のいずれか1項に記載の構成において、前記コンピュータを、前記第1仮想マシン及び前記第2仮想マシンにおけるサービスの移転履歴を記憶する記憶部として機能させ、前記決定部は、記憶された前記移転履歴に基づいて前記閾値を変化させることを特徴とする。
本発明の請求項5に係るプログラムは、請求項4に記載の構成において、前記決定部は、記憶された前記移転履歴が示す移転の頻度又は移転の回数が少ないほど前記閾値を小さくすることを特徴とする。
本発明の請求項6に係るプログラムは、請求項4に記載の構成において、前記決定部は、取得された前記移転履歴が示す最新の移転時期が古いほど前記閾値を小さくすることを特徴とする。
本発明の請求項7に係るプログラムは、請求項1から6のいずれか1項に記載の構成において、前記実行部は、前記第2仮想マシンへの移転が決定されたサービスがある場合、当該第2仮想マシンで当該サービスの実行環境が完成するまでは当該サービスに新たな処理を実行させることを特徴とする。
本発明の請求項8に係るプログラムは、請求項1から6のいずれか1項に記載の構成において、前記実現部は、前記第2仮想マシンに移転が決定されたサービスがある場合、当該第2仮想マシンで当該サービスの実行環境が完成していなくても当該サービスに新たな処理を実行させないことを特徴とする。
本発明の請求項9に係るプログラムは、請求項1から8のいずれか1項に記載の構成において、前記決定部は、移転対象のサービスが実行していた処理が終了したときに移転先の前記第2仮想マシンの前記リソース使用率が前記閾値未満になっていた場合、他の仮想マシンを当該サービスの移転先として決定することを特徴とする。
本発明の請求項10に係るプログラムは、請求項1から9のいずれか1項に記載の構成において、前記コンピュータを、他の仮想マシンから移転するサービスの受け入れを要求された場合に当該要求を受け付ける受付部として機能させ、前記実行部は、前記受付部により要求が受け付けられたサービスを実行し、前記受付部は、複数の他の仮想マシンから移転するサービスの受け入れを要求された場合、移転後の前記リソース使用率がより大きくなる要求を受け付けることを特徴とする。
本発明の請求項11に係るプログラムは、請求項1から10のいずれか1項に記載の構成において、前記コンピュータを、他の仮想マシンから移転するサービスの受け入れを要求された場合に当該要求を受け付ける受付部として機能させ、前記実行部は、前記受付部により要求が受け付けられたサービスを実行し、前記受付部は、他の仮想マシンからのサービスの受け入れの要求を受け付けた後に前記第1仮想マシンで実行中のサービスが全て移転予定になった場合、当該要求の受け付けを撤回することを特徴とする。
本発明の請求項12に係るプログラムは、請求項11に記載の構成において、前記決定部は、前記受付部が前記要求の受け付けを撤回した場合に、当該要求が行われたサービスの移転先を当該要求の時点での前記第1仮想マシンのリソース使用率に基づいて決定し、前記コンピュータを、決定された前記移転先を前記要求の送り元の仮想マシンに通知する通知部として機能させることを特徴とする。
本発明の請求項13に係るプログラムは、請求項1から12のいずれか1項に記載の構成において、前記コンピュータを、複数の仮想マシンにおけるサービスの移転履歴を記憶する記憶部と、記憶された前記移転履歴を出力する履歴出力部として機能させることを特徴とする。
本発明の請求項14に係るプログラムは、請求項1から13のいずれか1項に記載の構成において、前記コンピュータを、前記実行部によるサービスの実行状態を示す情報を出力する実行状態出力部として機能させることを特徴とする。
本発明の請求項15に係るプログラムは、請求項1から14のいずれか1項に記載の構成において、前記コンピュータを、前記リソース使用率を示す情報を出力する使用率出力部として機能させることを特徴とする。
本発明の請求項16に係る情報処理装置は、複数の仮想マシンを実現する実現部と、第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部とを備えることを特徴とする。
請求項1、2、16に係る発明によれば、サービスの実行主体を固定する場合に比べて、サービスを実行する仮想マシンを少なくすることができる。
請求項3に係る発明によれば、第2割合が同じ仮想マシン同士でもどちらかにサービスを寄せることができる。
請求項4に係る発明によれば、閾値が固定である場合に比べて移転したサービスが移転先に定着しやすいようにすることができる。
請求項5に係る発明によれば、移転の頻度又は回数が多い仮想マシンを移転先にする場合に比べて移転したサービスが移転先に定着しやすいようにすることができる。
請求項6に係る発明によれば、最新の移転時期が新しい仮想マシンを移転先にする場合に比べて移転したサービスが移転先に定着しやすいようにすることができる。
請求項7に係る発明によれば、新たな処理を実行させない場合に比べて処理の進捗を早めることができる。
請求項8に係る発明によれば、新たな処理を実行させる場合に比べてサービスの移転を早めることができる。
請求項9に係る発明によれば、移転先を見直さない場合に比べて、移転先として適当でなくなったインスタンスへのサービスの移転を抑制することができる。
請求項10に係る発明によれば、自仮想マシンの移転後のリソース使用率に関係なく要求を受け付ける場合に比べて、自仮想マシンのリソース使用率を高めることができる。
請求項11に係る発明によれば、移転したサービスだけが移転先の仮想マシンで実行される事態を防ぐことができる。
請求項12に係る発明によれば、受け付けが撤回された移転要求の送り元のインスタンスが移転先を決定し直す場合に比べて、決定された移転先への移転要求が受け付けられやすいようにすることができる。
請求項13に係る発明によれば、各仮想マシンにおける過去の移転の経緯を把握することができる。
請求項14に係る発明によれば、サービスの実行状態から移転状況を把握することができる。
請求項15に係る発明によれば、リソース使用率から移転状況を把握することができる。
実施例に係るリソース提供システムの全体構成を表す図 サーバ装置のハードウェア構成を表す図 リソース管理装置のハードウェア構成を表す図 リソース提供システムが実現する機能構成を表す図 リソース提供システムが実現する機能構成を表す図 移転先の決定例を表す図 移転先の決定例を表す図 移転処理における各装置の動作手順の一例を表す図 閾値テーブルの一例を表す図 移転の有無の判断結果の例を表す図 閾値テーブルの別の一例を表す図 閾値テーブルの別の一例を表す図 変形例の移転処理における各装置の動作手順の一例を表す図 移転要求の受け付けの例を表す図 変形例の移転処理における各装置の動作手順の一例を表す図
[1]実施例
図1は実施例に係るリソース提供システム1の全体構成を表す。リソース提供システム1は、処理(情報処理)の実行に用いられるリソースをユーザに使用させるリソース提供サービスを実施するためのシステムである。ここでいうリソースには、CPU(Central Processing Unit)、メモリ、ストレージ、それらを備える物理的な装置及びそれらによって実現される仮想的な装置(いわゆる仮想マシン)等がある。
また、リソース提供システム1においては、ユーザが利用する各種サービス(OCR(Optical Character Recognition)サービス及び文章を翻訳する翻訳サービス等)を複数個同時に実行可能なインスタンスと呼ばれる仮想マシンがリソースとして提供される。本実施例では、ユーザに対しては、利用中のインスタンスの数に応じた課金が行われるものとする。
リソース提供システム1は、通信回線2と、ユーザ端末3と、クラウドシステム4と、リソース管理装置20とを備える。通信回線2は、例えばインターネット、移動体通信網及び電話回線等を含み、自回線に接続されている装置同士の通信を仲介する。通信回線2には、ユーザ端末3及びクラウドシステム4が接続されている。
ユーザ端末3は、前述したリソース提供サービスを利用するユーザが使用する端末である。ユーザには、例えば、企業の業務としてリソース提供サービスを利用する者と、個人的な活動(例えばオンラインゲームのプレイ等)でリソース提供サービスを利用する者とが含まれる。なお、図1ではユーザ端末3が1台しか表されていないが、通常は複数のユーザ端末3が使用されているものとする。
ユーザ端末3は、ユーザの操作により前述したサービスの実行をクラウドシステム4に対して要求し、要求したサービスの実行結果を受け取って例えばその実行結果に応じた画面を表示する。クラウドシステム4によるサービスの実行とは、各サービスに対応した1以上の処理(OCRサービスなら文字領域抽出処理、文字の切り出し処理及び文字の認識処理等)を実行することを意味する。
クラウドシステム4は、処理を実行するリソースである複数のサーバ装置10を備え、それらのリソースを用いてユーザ端末3から要求されたサービスを実行する。各サーバ装置10は、前述したインスタンスを実現する。リソース管理装置20は、リソース提供システム1の管理者がリソースの稼働状況を管理するための装置であり、本実施例では、各インスタンスでのサービスの実行状況及びその履歴等を表示する。
図2はサーバ装置10のハードウェア構成を表す。サーバ装置10は、CPU11と、RAM(Random Access Memory)12と、ROM(Read Only Memory)13と、通信部14と、ストレージ15とを備えるコンピュータである。CPU11は、メモリであるRAM12をワークエリアとして用いてROM13やストレージ15に記憶されているプログラムを実行することで各部の動作を制御する。通信部14は、通信回路等を有し、通信回線2を介して外部装置と通信を行う。ストレージ15は、HDD(Hard Disk Drive)やSSD(Solid State Drive)、フラッシュメモリなどの記憶手段であり、CPU11が制御に用いるデータやプログラムを記憶している。
図3はリソース管理装置20のハードウェア構成を表す。リソース管理装置20は、CPU21と、RAM22と、ROM23と、通信部24と、ストレージ25と、UI部26(User Interface)とを備えるコンピュータである。CPU21からストレージ25までは、図2に表す同名のハードウェアと共通するハードウェアである。UI部26は、液晶ディスプレイ等の表示手段を備え、自装置を操作するためのメニュー画面等を表示する。また、UI部26は、キーボード及びマウス等の入力手段を備えている。
リソース提供システム1が備える各装置のCPUがプログラムを実行して各部を制御することで、以下に述べる機能が実現される。
図4及び図5はリソース提供システム1が実現する機能構成を表す。図4ではサーバ装置10を1台だけ表しているが、各サーバ装置10は、いずれも、仮想マシン実現部30と、インスタンス群31と、第1オートスケール制御部32と、第2オートスケール制御部33と、リクエスト・レスポンスキュー34と、サービス定義記憶部35と、サービス移転情報永続記憶部36とを備える。リソース管理装置20は、現状情報表示部41と、履歴情報表示部42とを備える。
インスタンス群31は、インスタンス100、インスタンス200及びインスタンス300等の複数のインスタンスを備える。図5に表すように、インスタンス100は、リソース使用率算出部101と、サービス移転受付部102と、サービス移転状態応答部103と、コンテナ制御部104と、コンテナ実行部105と、サービス状態管理部106と、サービス状態記憶部107と、サービス移転判断部108と、サービス停止判断部109と、サービス移転先記憶部110とを備える。
インスタンス200及びインスタンス300等の各インスタンスは、いずれもインスタンス100と共通の機能を備えるので、以下ではインスタンス100の機能を主に説明する。なお、図5では、インスタンス200についても説明に登場するリソース使用率算出部201、サービス移転受付部202、サービス移転状態応答部203、サービス移転判断部208及びサービス停止判断部209を図示している。
本実施例では、インスタンス100で実行されているサービスの移転先がインスタンス200となる場合について主に説明する(ただし移転先にならない場合も説明する)。インスタンス200が移転先となる場合は、インスタンス100は本発明の「第1仮想マシン」の一例となり、インスタンス200は本発明の「第2仮想マシン」の一例となる。
仮想マシン実現部30は、仮想マシンを実現する機能であり、本実施例では、コンテナ型の仮想化技術を用いた仮想マシンを実現する。仮想マシン実現部30は、例えばDocker(登録商標)によって実現されるが、これに限らず、その他のコンテナ型の仮想化プログラムによって実現されてもよい。仮想マシン実現部30は、図4の例では、インスタンス100等の各インスタンスの他、インスタンス以外の機能である第1オートスケール制御部32等も実現する。仮想マシン実現部30は本発明の「実現部」の一例である。
コンテナ実行部105は、自インスタンス(インスタンス100)に割り当てられたリソースを用いて上述したOCRサービス等の複数のサービスを実行する。コンテナ実行部105は本発明の「実行部」の一例である。インスタンスにリソースを割り当てるとは、そのインスタンスのためにリソースを確保することである。インスタンス内では、各サービスに対しても同様にリソースが割り当てられる(確保される)。コンテナ実行部105は、図5では、サービス151、サービス152及びサービス153という3つのサービス(それぞれ区別しない場合は「サービス150」という)を実行している。
リクエスト・レスポンスキュー34は、図1に表すユーザ端末3からのサービス150へのリクエスト及びそのリクエストに対するサービス150からのレスポンスをキュー(先入れ先出しのデータ)として取り扱う。サービス150は、リクエスト・レスポンスキュー34からリクエストを示すメッセージを受け取り、そのメッセージで指定された処理を実行し、処理結果を示すメッセージをレスポンスとしてリクエスト・レスポンスキュー34に格納する。
コンテナ制御部104は、コンテナ実行部105によるサービスの実行を制御する。コンテナ制御部104は、コンテナ実行部105へのサービスの配置、コンテナ実行部105が実行しているサービスの停止、サービスの実行に必要なリソースの割り当て、割り当てられたリソース以上のリソースをサービスが利用することの制限及びサービスの実行状態の管理等を行う。
サービスの配置とは、コンテナ実行部105のリソースを確保してそのサービスの実行環境を作成することをいう。サービスの配置は、サービス定義記憶部35が記憶するサービスの定義情報に基づいて行われる。サービスの定義情報とは、そのサービスで用いられるプログラム、データ、パラメータ及び使用するリソース等を示す情報である。
サービス状態管理部106は、コンテナ実行部105におけるサービスの状態を管理する。サービスの状態には、作成中、実行中、移転準備中の3つの状態が含まれる。「作成中」は、コンテナ実行部105がサービスの実行環境を作成している途中であることを意味し、作成中のサービスは処理を実行することができない状態である。「実行中」は、サービスの実行環境の作成が完了しており、コンテナ実行部105が処理を実行することができる状態である。リクエストがなくて処理を実行していなくても、実行環境の作成が完了していれば実行中の状態となる。
インスタンス群31においては、インスタンス間でサービスが移転される。サービスの移転とは、本実施例では、移転元のインスタンスで実行されているサービスを移転先のインスタンスで実行させ、移転元のインスタンスで実行されていたサービスを停止させることをいう。詳細には、移転先のサービスが作成中から実行中になると、移転元のサービスが停止されて移転が完了する。
「移転準備中」は、他のインスタンスに移転予定であり、その移転先のインスタンスで同一のサービスが作成中となっている状態である。本実施例では、コンテナ実行部105は、移転準備中のサービス、すなわち他のインスタンスへの移転が決定されたサービスがある場合、移転先のインスタンスでそのサービスの実行環境が完成するまで(つまりサービスの状態が「実行中」になるまで)は、そのサービスに新たな処理を実行させる。
なお、コンテナ実行部105は、前述の場合に、移転先のインスタンスでそのサービスの実行環境が完成していなくてもそのサービスに新たな処理を実行させないようにしてもよい。新たな処理を実行させる場合は、新たな処理を実行させない場合に比べて処理の進捗が早まることになり、新たな処理を実行させない場合は、新たな処理を実行させる場合に比べてサービスの移転が早まることになる。
コンテナ実行部105は、サービスの状態が変更又はサービスが停止された場合、その旨をサービス状態管理部106に通知する。サービス状態管理部106は、この通知を受け取ると、サービスの状態をサービス状態記憶部107に記憶させ、既にそのサービスの状態が記憶されている場合は状態を更新する。こうしてサービス状態記憶部107は、自インスタンスのサービスの状態を記憶する。
リソース使用率算出部101は、自インスタンス(インスタンス100)のリソース使用率を算出する。リソース使用率とは、自インスタンスに割り当てられているリソースのうち、サービスに割り当てられているリソースの割合をいう。リソース使用率算出部101は、現時点での使用率と、移転後の使用率とをリソース使用率として算出する。
現時点での使用率は、自インスタンスで現在実行されているサービスに割り当てられているリソースについてのリソース使用率である。現在実行されているサービスとは、前述した3つの状態(作成中、実行中、移転準備中)のサービスのことである。作成中のサービスも、既に実行の過程にあるものとして含めている。リソース使用率算出部101は、自インスタンスにおけるサービスの状態を示す情報をサービス状態管理部106から取得する。
リソース使用率算出部101は、これら3つの状態のサービスに割り当てられているリソース(以下「第2リソース」という)の、インスタンスに割り当てられているリソース(以下「第1リソース」という)に対する割合(以下「第1割合」という)を現時点での使用率として算出する。この第1割合を算出するリソース使用率算出部101は本発明の「第1算出部」の一例である。
移転後の使用率は、自インスタンスで実行されているサービスから他のインスタンスに移転予定のサービスを除いたもの、すなわち移転予定のサービスが移転した後に実行されている見込みのサービスについてのリソース使用率である。移転後に実行されている見込みのサービスとは、3つの状態のうち移転準備中のサービスを除いた作成中及び実行中のサービスのことである。
リソース使用率算出部101は、この移転後に実行されている見込みのサービスに割り当てられているリソース(以下「第3リソース」という)の第1リソース(インスタンスに割り当てられているリソース)に対する割合(以下「第2割合」という)を移転後の使用率として算出する。この第2割合を算出するリソース使用率算出部101は本発明の「第2算出部」の一例である。
サービス移転受付部102は、他のインスタンスのサービス移転判断部(例えばインスタンス200のサービス移転判断部208)から移転するサービスの受け入れ(配置)を要求されると、自インスタンスにおいてそのサービスの受け入れ(配置)が可能であればその移転要求を受け付け、コンテナ制御部104にそのサービスの配置を依頼する。サービス移転受付部102は本発明の「受付部」の一例である。
コンテナ制御部104が依頼されたサービスをコンテナ実行部105に配置させる制御を行い、コンテナ実行部105がこの制御を受けてサービスを作成する。このように、コンテナ実行部105は、サービス移転受付部102により移転要求が受け付けられたサービスを実行する。
サービス移転状態応答部103は、他のインスタンスのサービス停止判断部(例えばインスタンス200のサービス停止判断部209)からのサービスの状態の問い合わせを受け取ると、サービス状態管理部106から自インスタンスのサービスの状態を取得し、取得したサービスの状態を問い合わせへの応答として問合せ元のサービス停止判断部に通知する。
サービス移転判断部108は、自インスタンスのコンテナ実行部105により実行されているサービスを他のインスタンスに移転するか否かを判断し、移転すると判断した場合、移転先のインスタンスを決定する。サービス移転判断部108は本発明の「決定部」の一例である。本実施例では、サービス150が処理の実行を終了するとその旨をサービス移転判断部108に通知し、サービス移転判断部108は、この通知を受け取ったときに通知元のサービスについて移転の有無を判断する。
サービス移転判断部108は、前述の通知を受け取ると、複数のインスタンス(自インスタンスを含む)のリソース使用率算出部に対してリソース使用率の算出を要求し、その応答で送られてくる各インスタンスにおけるリソース使用率(現時点での使用率及び移転後の使用率の両方)を取得する。この場合のサービス移転判断部108は本発明の「取得部」の一例である。
サービス移転判断部108は、詳細には、自インスタンス(インスタンス100)のリソース使用率から定まる閾値以上のリソース使用率の別のインスタンスが存在する場合に、自インスタンスのコンテナ実行部105が実行するサービスを移転すると判断し、そのリソース使用率が閾値以上のインスタンスを移転先として決定する。本実施例では、サービス移転判断部108は、比較するリソース使用率として移転後の使用率を用い、閾値として自インスタンスの移転後の使用率を用いる。
より詳細には、サービス移転判断部108は、別のインスタンスについての現時点での使用率が示す空きリソースで実行可能なサービスが自インスタンスのコンテナ実行部105により実行中であり、且つ、自インスタンスの移転後の使用率から定まる閾値(前述した自インスタンスの移転後の使用率そのもの)以上の移転後の使用率が別のインスタンスについて取得された場合に、そのサービスを移転すると判断し、その移転後の使用率が閾値以上のインスタンスを移転先として決定する。
移転有無の判断と移転先の決定について図6A、図6Bを参照して説明する。
図6A、図6Bは移転先の決定例を表す。この例では、説明を分かり易くするため、インスタンス100及びインスタンス200だけが実現されており、両インスタンスに割り当てられているリソース(上述した第1リソース)が等しく、各サービスに割り当てられているリソースも全て第1リソースの3分の1であるものとする。つまり、両インスタンスとも最大で3つのサービスが実行されるようになっている。なお、これらの前提はあくまで説明の便宜上のものであり、本発明はこれに限定されない。
図6A(a)では、インスタンス100においてサービス151、152が作成中又は実行中であり、サービス153が実行中である。また、インスタンス200においてサービス251、252、253が作成中又は実行中である。サービス移転判断部108は、サービス153が処理の実行を終了したときに、両インスタンスの現時点での使用率及び移転後の使用率を取得する。
サービス移転判断部108は、この例では、取得したインスタンス200の現時点での使用率が100%であり、サービス153を実行させるための空きがないため、移転を行わないと判断する。図6A(b)では、インスタンス100においてサービス152が作成中又は実行中であり、サービス153が実行中である。また、インスタンス200においてサービス252、253が作成中又は実行中である。
この場合、サービス移転判断部108は、取得したインスタンス200の現時点での使用率が66.6・・%であるからサービス153を実行させるための空きがあり、且つ、自インスタンスの移転後の使用率(66.6・・%)以上の移転後の使用率(66.6・・%)がインスタンス200について取得されているため、移転を行うと判断し、インスタンス200を移転先として決定する。このように、本実施例では、自インスタンスと移転先のインスタンスの移転後の使用率が同じであればサービス移転判断部108は移転すると判断するので、移転後の使用率が同じインスタンス同士でもどちらかにサービスが寄せられることになる。
図6A(c)では、図6A(b)の状態からサービス252が移転準備中に変化している。この場合、サービス移転判断部108は、取得したインスタンス200の現時点での使用率はサービス153を実行させるための空きを示しているが、自インスタンスの移転後の使用率(66.6・・%)以上の移転後の使用率(33.3・・%)がインスタンス200について取得されていないため、移転を行わないと判断する。
図6A(d)では、図6A(c)の状態からサービス152が移転準備中に変化している。この場合、サービス移転判断部108は、取得したインスタンス200の現時点での使用率がサービス153を実行させるための空きを示しており、且つ、自インスタンスの移転後の使用率(33.3・・%)以上の移転後の使用率(33.3・・%)がインスタンス200について取得されているため、移転を行うと判断し、インスタンス200を移転先として決定する。
図6B(e)では、図6A(d)の状態からサービス253が移転準備中に変化している。この場合、サービス移転判断部108は、取得したインスタンス200の現時点での使用率はサービス153を実行させるための空きを示しているが、自インスタンスの移転後の使用率(33.3・・%)以上の移転後の使用率(0%)がインスタンス200について取得されているため、移転を行わないと判断する。
図6B(f)では、図6A(d)の状態からサービス251が移転準備中に変化している。この場合、インスタンス200の移転後の使用率(33.3・・%)がインスタンス100の移転後の使用率(33.3・・%)以上になるが、現時点ではインスタンス200に空きリソースがないので、サービス移転判断部108は、移転を行わないと判断する。なお、図6B(f)の場合にも移転が行われるように、サービス移転判断部108は、移転後の使用率が示す空きリソースで実行可能なサービスが自インスタンスのコンテナ実行部105により実行中である場合に移転することを判断してもよい。
その場合、図6B(f)の例であれば、サービス移転判断部108は、取得したインスタンス200の移転後の使用率がサービス153を実行させるための空きを示しており(移転準備中のサービスに割り当てられている66.6・・%が空きリソースとなる)、且つ、自インスタンスの移転後の使用率(33.3・・%)以上の移転後の使用率(33.3・・%)がインスタンス200について取得されているため、移転を行うと判断し、インスタンス200を移転先として決定する。
サービス移転判断部108は、サービスを移転すると判断した場合、移転先のインスタンスのサービス移転受付部(インスタンス200であればサービス移転受付部202)に移転するサービスの配置を要求する。この要求により上記のとおり移転先のインスタンスに移転対象のサービスと同じサービスの実行環境が作成される(例えば移転対象がOCRサービスなら移転先でもOCRサービスの実行環境が作成される)。また、サービス移転判断部108は、移転対象のサービスの識別情報(サービスID(Identification))と移転先のインスタンスの識別情報(インスタンスID)とをサービス停止判断部109に供給する。
サービス停止判断部109は、これらの識別情報を受け取ると、インスタンスIDが示す移転先のインスタンスのサービス移転状態応答部(インスタンス200であればサービス移転状態応答部203)にサービスIDが示す移転対象のサービスの状態を問い合わせる。サービス停止判断部109は、移転対象のサービスの状態が作成中から実行中になった場合、コンテナ制御部104にその移転対象のサービスの停止を依頼する。コンテナ制御部104がこの依頼に基づきサービスを停止すると、移転が完了する。
サービス停止判断部109は、移転先のインスタンスに関する移転先情報として、例えば供給されたインスタンスID及びサービスIDを含む情報をサービス移転先記憶部110に供給する。サービス移転先記憶部110は、サービス停止判断部109から供給された移転先情報を記憶する。サービス移転先記憶部110は、記憶した移転先情報をサービス移転情報永続記憶部36に供給する。
サービス移転情報永続記憶部36には、インスタンス100のサービス移転先記憶部110だけでなく、他のインスタンスのサービス移転先記憶部からも移転先情報を供給される。サービス移転情報永続記憶部36は、こうして供給される複数のインスタンス(望ましくは全てのインスタンス)におけるサービスの移転履歴を記憶する。サービス移転情報永続記憶部36は本発明の「記憶部」の一例である。
リソース管理装置20の現状情報表示部41は、各インスタンスの現在の状況を示す現状情報を表示する。現状情報表示部41は、例えば、サービス状態記憶部107から、コンテナ実行部105によるサービスの実行状態(作成中、実行中、移転準備中)を示す実行状態情報を現状情報として取得して表示する。サービス状態記憶部107は、この実行状態情報を出力する機能であり、本発明の「実行状態出力部」の一例である。
状態情報が出力されることで、サービスの実行状態から移転状況が把握されることになる。例えばサービスの状態が実行中から変化しないインスタンスは移転で出入りするサービスが少なく、移転準備中の状態が多いインスタンスは移転で出入りするサービスが多いことが把握される。
また、現状情報表示部41は、リソース使用率算出部101からリソース使用率を示す使用率情報を現状情報として取得して表示する。リソース使用率算出部101は、この使用率情報を出力する機能であり、本発明の「使用率出力部」の一例である。使用率情報が出力されることで、リソース使用率から移転状況が把握されることになる。例えばリソース使用率が高い数値で維持されているインスタンスは移転で出入りするサービスが少なく、リソース使用率が低い数値で変化しているインスタンスは移転で出入りするサービスが多いことが把握される。
また、現状情報表示部41は、サービス移転先記憶部110から移転先情報を現状情報として取得して表示する。移転先情報が表示されることで、移転先情報が表示されない場合に比べて、上記の移転状況の把握がより正確に行われる。一方、リソース管理装置20の履歴情報表示部42は、各インスタンスの現在の状況の履歴を示す履歴情報を表示する。履歴情報表示部42は、例えばサービス移転情報永続記憶部36から複数のインスタンスにおけるサービスの移転履歴を履歴情報として取得して表示する。
サービス移転情報永続記憶部36は、この移転履歴を出力する機能であり、本発明の「履歴出力部」の一例である。複数のインスタンスにおけるサービスの移転履歴が出力されることで、各インスタンスにおける過去の移転の経緯が把握される。
第1オートスケール制御部32は、定められたルールに則り、インスタンスのスケールイン及びスケールアウトを制御する。スケールインとは仮想マシンの台数を減らすことをいい、スケールアウトとは仮想マシンの台数を増やすことをいう。本実施例では、例えばインスタンス100のサービス停止判断部109が、コンテナ実行部105が実行していたサービスを全て停止すると、その旨を第1オートスケール制御部32に通知する。
第1オートスケール制御部32は、コンテナ実行部105により実行されるサービスの数が0になった(実行していたサービスが全て停止された)インスタンスをスケールインの対象と判定して停止させる制御を行う。こうしてインスタンスが停止すると、本実施例における課金(利用中のインスタンスの数に応じた課金)の対象ではなくなる。
なお、第1オートスケール制御部32は、これ以外にも、例えばリクエスト・レスポンスキュー34に格納されたキューの状況に基づいてスケールイン及びスケールアウトの判定を行ってもよい。第2オートスケール制御部33は、定められたルールに則り、サービスのスケールイン及びスケールアウトを制御する。第2オートスケール制御部33は、コンテナ制御部104に対して、スケールインを行う際はサービスの停止を依頼し、スケールアウトを行う際はサービスの配置を依頼する。
リソース提供システム1が備える各装置は、上記の構成に基づいて、インスタンス間でサービスを移転させる移転処理を行う。
図7は移転処理における各装置の動作手順の一例を表す。図7では、インスタンス100、200、300という第1から第3までの3つのインスタンスを表しているが、他にもインスタンスが存在するものとする。この例では、インスタンス100でサービス150により実行されていた処理が終了すること(ステップS10)を契機に動作手順が開始される。
まず、インスタンス100(サービス移転判断部108)が、各インスタンスのリソース使用率算出部に対してリソース使用率の算出を指示する(ステップS11、S12、S13)。インスタンス100(リソース使用率算出部101)は、この指示を受け取ると自インスタンスのリソース使用率を算出する(ステップS14)。インスタンス200(リソース使用率算出部201)及びインスタンス300(リソース使用率算出部301)も、この指示を受け取ると自インスタンスのリソース使用率を算出する(ステップS15、S16)。
インスタンス200(リソース使用率算出部201)及びインスタンス300(リソース使用率算出部301)は、算出したリソース使用率をインスタンス100に送信する(ステップS17、S18)。インスタンス100(サービス移転判断部108)は、こうして各インスタンスのリソース使用率を取得する(ステップS19)。次に、インスタンス100(サービス移転判断部108)は、取得したリソース使用率に基づいて、上述したように処理が終了したサービスの移転の有無を判断し(ステップS21)、移転すると判断した場合はその移転先のインスタンスを決定する(ステップS22)。
図7の例ではインスタンス200が移転先として決定されたものとする。インスタンス100(サービス移転判断部108)は、インスタンス200に対してサービスの移転要求を行う(ステップS31)。インスタンス200(サービス移転受付部202、コンテナ制御部204)は、移転要求が行われたサービスの実行環境を作成する(ステップS32)。
インスタンス100(サービス停止判断部109)は、インスタンス200に対して移転対象のサービスの状態を問い合わせる(ステップS33)。インスタンス200(サービス移転状態応答部203)は、問い合わせされたサービスの状態をインスタンス100に通知する(ステップS34)。インスタンス100(サービス停止判断部109)は、実行環境が完成したか否かを判断し(ステップS35)、完成していない(NO)と判断した場合はステップS33(問い合わせ)に戻って動作を行う。
インスタンス100(サービス停止判断部109)は、実行環境が完成した(YES)と判断した場合は、移転対象のサービスを停止する(ステップS36)。インスタンス100(サービス停止判断部109)は、サービスを停止した結果、自インスタンスで実行されているサービスが0になったか否かを判断し(ステップS41)、0になっていない(NO)と判断した場合はこの動作手順を終了する。
インスタンス100(サービス停止判断部109)は、自インスタンスで実行されているサービスが0になった(YES)と判断した場合、その旨を第1オートスケール制御部32に通知する(ステップS42)。第1オートスケール制御部32は、実行されるサービスが0になったのでスケールインの条件が満たされたと判定し(ステップS43)、インスタンス100に対してスケールイン、すなわち停止を指示する(ステップS44)。インスタンス100がこの指示を受け取って自インスタンスを停止した場合も(ステップS45)、この動作手順が終了する。
本実施例では、上記のとおりサービスの実行主体であるインスタンスがリソース使用率の状況によって変化する。これにより、例えばサービスが1つだけになったインスタンスがそのサービスを実行し続けるとインスタンスの数が減らないが、そのサービスを別のインスタンスに移転させることで、サービスの実行主体(インスタンス)を固定する場合に比べて、サービスを実行するインスタンスが少なくなり、上述したインスタンス数単位での課金が少なくなる。
[2]変形例
上述した実施例は本発明の実施の一例に過ぎず、以下のように変形させてもよい。また、実施例及び各変形例は、必要に応じて組み合わせて実施してもよい。
[2-1]リソース使用率の閾値
サービス移転判断部は、自インスタンスのリソース使用率から定まる閾値として実施例とは異なる値を用いてもよい。本変形例では、例えばインスタンス100のサービス移転判断部108が、サービス移転情報永続記憶部36に記憶されている複数のインスタンスにおけるサービスの移転履歴に基づいて閾値を変化させる。
サービス移転判断部108は、例えば、記憶された他のインスタンス(例えばインスタンス200)の移転履歴が示す移転の頻度が少ないほど、そのインスタンスの移転の有無を判断する際に用いる閾値を小さくする。この閾値を小さくするということは、他のインスタンスのリソース使用率が閾値以上である場合にそのインスタンスが移転先として決定されるのだから、サービスが移転されやすくなることを意味する。サービス移転判断部108は、例えば、移転の頻度と閾値とを対応付けた閾値テーブルを用いて閾値を決定する。
図8は閾値テーブルの一例を表す。図8の例では、「F1未満」、「F1以上F2未満」及び「F2以上」という移転の頻度の範囲に、「R1×0.5」、「R1×1.0」及び「R1×2.0」という閾値が対応付けられている。R1は、自インスタンス(サービス移転判断部108の場合はインスタンス100)のリソース使用率を表している。この閾値テーブルを用いた場合の移転の有無について図9を参照して説明する。
図9は移転の有無の判断結果の例を表す。図9では、移転すると判断した場合を「○」、移転しないと判断した場合を「×」で示している。図9(a)では、インスタンス100においてサービス151、152、153が実行中であり、インスタンス200においてサービス252、253が実行中であり、このうちのサービス153が移転対象である。つまり、インスタンス100の移転後の使用率R1が100%でインスタンス200の移転後の使用率R2が66.6・・%である。
この場合に、サービス移転判断部108は、インスタンス200の移転の頻度がF1未満の場合、100%(R1)×0.5=50%<66.6・・%(R2)なので移転すると判断する。また、サービス移転判断部108は、インスタンス200の移転の頻度がF1以上F2未満の場合、100%(R1)×1.0=100%>66.6・・%(R2)なので移転しないと判断し、インスタンス200の移転の頻度がF2以上の場合、100%(R1)×2.0=200%>66.6・・%(R2)なので移転しないと判断する。
図9(b)では、図9(a)の状態からインスタンス100のサービス151が停止して空きになり、インスタンス100の移転後の使用率R1が66.6・・%に変わっている。この場合に、サービス移転判断部108は、インスタンス200の移転の頻度がF1未満の場合、66.6・・%(R1)×0.5=33.3・・%<66.6・・%(R2)なので移転すると判断し、インスタンス200の移転の頻度がF1以上F2未満の場合、66.6・・%(R1)×1.0=66.6・・%=66.6・・%(R2)なので移転すると判断する。また、サービス移転判断部108は、インスタンス200の移転の頻度がF2以上の場合、66.6・・%(R1)×2.0=133.3・・%>66.6・・%(R2)なので移転しないと判断する。
図9(c)では、図9(b)の状態からインスタンス100のサービス152が停止して空きになり、インスタンス100の移転後の使用率R1が33.3・・%に変わっている。この場合に、サービス移転判断部108は、インスタンス200の移転の頻度がF1未満の場合、33.3・・%(R1)×0.5=16.6・・%<66.6・・%(R2)なので移転すると判断し、インスタンス200の移転の頻度がF1以上F2未満の場合、33.3・・%(R1)×1.0=33.3・・%<66.6・・%(R2)なので移転すると判断する。また、サービス移転判断部108は、インスタンス200の移転の頻度がF2以上の場合も、33.3・・%(R1)×2.0=66.6・・%=66.6・・%(R2)なので移転すると判断する。
図9の例に表すように、本変形例では、インスタンス200(他のインスタンスでもよい)の移転履歴が示す移転の頻度が少ないほど、インスタンス200が移転先として決定されやすくなっている。なお、図9(c)の例のようにR2がR1よりも十分に大きいと移転の頻度に関わらず常に移転先として決定される場合があるし、反対にR2がR1に比べて小さすぎると、移転の頻度がいくら小さくても移転先として決定されない場合もある。
また、サービス移転判断部108は、他のサービスの移転履歴を用いてもよい。例えば、サービス移転判断部108は、記憶された他のインスタンスの移転履歴が示す移転の回数が少ないほど、そのインスタンスの移転の有無を判断する際に用いる閾値を小さくしてもよい。この場合、サービス移転判断部108は、移転の回数と閾値とを対応付けた閾値テーブルを用いて閾値を決定する。
図10は閾値テーブルの別の一例を表す。図10の例では、「C1未満」、「C1以上C2未満」及び「C2以上」という移転の回数の範囲に、「R1×0.5」、「R1×1.0」及び「R1×2.0」という閾値が対応付けられている。この閾値テーブルを用いることで、図8に表した移転の頻度の例と同様に、移転の回数が少ないほど小さな閾値が用いられるようになる。
サービスの中には、第2オートスケール制御部33によるスケールアウト及びスケールインが頻繁に行われるサービス(一時的に利用が集中するサービス)と、それがあまり行われないサービス(利用数の変動が少ないサービス)とがある。前者のサービスを実行しているインスタンスは、後者のサービスを実行しているインスタンスよりも移転後の使用率が小さくなって移転が生じやすく、移転の頻度及び回数が多くなりやすい。そのため、移転の頻度及び回数が少ないインスタンスにサービスを移転すると、移転の頻度及び回数が多いインスタンスを移転先にする場合に比べて移転したサービスがそのインスタンスに定着しやすくなる。
他にも、サービス移転判断部108は、記憶された他のインスタンスの移転履歴が示す最新の移転時期が古いほど、そのインスタンスの移転の有無を判断する際に用いる閾値を小さくしてもよい。ここでいう最新の移転時期とは、そのインスタンスにおいて現時点から遡って最後にサービスが移転した時期のことを意味する。この場合、サービス移転判断部108は、最新の移転時期と閾値とを対応付けた閾値テーブルを用いて閾値を決定する。
図11は閾値テーブルの別の一例を表す。図11の例では、「T1より前」、「T1以降T2より前」及び「T2以降」という最新の移転時期の範囲に、「R1×0.5」、「R1×1.0」及び「R1×2.0」という閾値が対応付けられている。この閾値テーブルを用いることで、図8に表した移転の頻度の例と同様に、最新の移転時期が古いほど小さな閾値が用いられるようになる。
スケールアウト及びスケールインが頻繁に行われるサービスを実行しているインスタンスは、それがあまり行われないサービスを実行しているインスタンスよりも移転後の使用率が小さくなって移転が生じやすく、最新の移転時期が新しくなりやすい。そのため、最新の移転時期が古いインスタンスにサービスを移転すると、最新の移転時期が新しいインスタンスを移転先にする場合に比べて移転したサービスがそのインスタンスに定着しやすくなる。
以上のとおり、本変形例では、サービスの移転履歴に基づいて閾値を変化させることで、閾値が固定である場合に比べて、移転したサービスがそのインスタンスに定着しやすくなる。
[2-2]移転先の見直し
移転先が決定して移転準備中の状態なったサービスであっても、移転先のインスタンスで実行環境が完成するまでは停止しないので、それまでの間に移転先のインスタンスのリソース使用率が変化する場合がある。その場合に、サービス移転判断部が一度決定した移転先を見直してもよい。
本変形例では、例えばインスタンス100のサービス移転判断部108が、移転対象のサービスが実行していた処理が終了したときに移転先のインスタンスのリソース使用率が閾値未満になっていた場合、他のインスタンスをそのサービスの移転先として決定する。この場合のインスタンス100の動作手順について図12を参照して説明する。
図12は本変形例の移転処理における各装置の動作手順の一例を表す。この動作手順では、図7に表すステップS10(処理の終了)からステップS35(実行環境の完成の判断)までが行われる。次に、インスタンス100(サービス移転判断部108)が、移転先のインスタンス(この例ではインスタンス200)のリソース使用率算出部に対してリソース使用率の算出を指示する(ステップS51)。
インスタンス200(リソース使用率算出部201)は、この指示を受け取ると自インスタンスのリソース使用率を算出し(ステップS52)、算出したリソース使用率をインスタンス100に送信する(ステップS53)。インスタンス100(サービス移転判断部108)は、送信されてきたリソース使用率、すなわち移転先のリソース使用率が閾値未満か否かを判断する(ステップS54)。インスタンス100(サービス停止判断部109)は、ステップS54で移転先のリソース使用率が閾値未満ではない(NO)と判断された場合に、移転対象のサービスを停止する(ステップS36)。図12では図7のステップS41以降の動作を省略している。
インスタンス100(サービス移転判断部108)は、ステップS54で移転先のリソース使用率が閾値未満である(YES)と判断した場合、ステップS11(算出指示)に戻って動作を行う。ステップS11からの動作が再び行われることで、移転先の見直しが行われる。2回目のステップS11においては、移転が見送られたインスタンス(図12の例ではインスタンス200)への算出指示が行われてもよいし、行われなくてもよい。
移転先が決定されてから実際に移転が完了するまではタイムラグがあるので、例えば移転が完了する前にサービスのスケールインが行われて実行されるサービスが少なくなり、移転先として適当でなくなることがある。本変形例では、上記のとおり移転先を見直すことで、移転先を見直さない場合に比べて、そのように移転先として適当でなくなったインスタンスへのサービスの移転が抑制される。
[2-3]割り当てられるリソース
実施例では、説明を分かり易くするため、各インスタンスに割り当てられているリソース(第1リソース)が等しく、各サービスに割り当てられているリソースも全て第1リソースの3分の1であるものとしたが、これに限らない。例えばインスタンス毎に第1リソースが異なっていてもよいし、サービス毎にも割り当てられるリソースが異なっていてもよい。また、各インスタンスで実行されるサービスの数も異なっていてもよい。
[2-4]複数の移転要求
リソースに空きのあるインスタンスには、複数のインスタンスから移転要求が送られてくることがある。実施例のように各サービスのリソースが等しければどちらの移転要求を受け付けても自インスタンスのリソース使用率が変わらないが、上記変形例のように各サービスのリソースが異なっていると、どの移転要求を受け付けるかによって、自インスタンスのリソース使用率が変化する。
そこで、本変形例では、例えばインスタンス100のサービス移転受付部102が、複数の他のインスタンスから移転するサービスの受け入れを要求された場合、自インスタンスの移転後のリソース使用率がより大きくなる移転要求を受け付ける。
図13は移転要求の受け付けの例を表す。図13(a)では、空きが50%のインスタンス100に、40%のリソースを使用するサービスAと、30%のリソースを使用するサービスBとの移転要求がされている。
この場合、サービス移転受付部102は、自インスタンスの移転後のリソース使用率が80%になるサービスBよりも、そのリソース使用率が90%になるサービスAの移転要求を受け付ける。図13(b)では、空きが50%のインスタンス100に、サービスA、Bの他に、20%のリソースを使用するサービスCの移転要求がされている。この場合、サービス移転受付部102は、自インスタンスの移転後のリソース使用率が100%になるサービスB、Cの移転要求を受け付ける。
このように移転要求を受け付けることで、自インスタンスの移転後のリソース使用率に関係なく要求を受け付ける場合に比べて、自インスタンスのリソース使用率が高まることになる。なお、サービス移転受付部102は、基本的には移転要求のタイミングが早いものから順番に受け付けるが、複数の移転要求が例えば数秒程度の決められた期間内に行われた場合に、上記のとおり受け付ける移転要求を選択する。
[2-5]移転先による移転の見直し
移転要求を受け付けた移転先のインスタンスの方から、その移転を見直してもよい。例えばインスタンス100のサービス移転受付部102は、他のインスタンスからの移転要求を受け付けた後に自インスタンスで実行中のサービスが全て移転予定になった場合、その移転要求の受け付けを撤回してもよい。この場合のインスタンス100の動作手順について図14を参照して説明する。
図14は本変形例の移転処理における各装置の動作手順の一例を表す。この動作手順では、図7に表すステップS10(処理の終了)からステップS31(移転要求)までが行われる。次に、この例における移転先であるインスタンス200(サービス移転受付部202)が、インスタンス100からの移転要求を受け付けて(ステップS61)、移転要求を受け付けた旨をインスタンス100に通知する(ステップS62)。
インスタンス200(コンテナ制御部204)は、この通知を行ってから移転要求が行われたサービスの実行環境を作成する(ステップS32)。インスタンス100(サービス停止判断部109)は、インスタンス200に対して移転対象のサービスの状態を問い合わせる(ステップS33)。インスタンス200(サービス移転受付部202)は、この問い合わせを受け取ると、自インスタンスにおいて、移転要求を受け付けたサービスを除いた全てのサービスが移転準備中になっているか否かを判断する(ステップS63)。
インスタンス200(サービス移転状態応答部203)は、ステップS63で全てのサービスが移転準備中になっているわけではない(NO)、つまり移転要求を受け付けたサービスを除いて1つでも実行中又は作成中のサービスがあると判断された場合に、問い合わせされたサービスの状態をインスタンス100に通知する(ステップS34)。インスタンス200(サービス移転受付部202)は、ステップS63で全てのサービスが移転準備中になっている(YES)と判断した場合は、移転要求の受け付けを撤回すると判断し(ステップS64)、その旨をインスタンス100に通知する(ステップS65)。
インスタンス100は、この通知を受け取ると、ステップS11(算出指示)に戻って動作を行う。ステップS11からの動作が再び行われることで、移転先の見直しが行われる。2回目のステップS11においては、移転要求の受け付けが撤回されたインスタンス(図14の例ではインスタンス200)への算出指示が行われてもよいし、行われなくてもよい。本変形例では、上記のとおり移転要求の受け付けを撤回することで、移転したサービスだけが移転先のインスタンスで実行される事態が防がれるようになっている。
[2-6]受け付け撤回後の移転先の決定
上記変形例で移転要求の受け付けが撤回された場合、再度移転先を決定しなければならないが、この決定を、移転要求の受け付けを撤回したインスタンスの方で行ってもよい。例えば図14の例の場合、インスタンス200のサービス移転判断部208が、サービス移転受付部202が移転要求の受け付けを撤回した場合に、その移転要求が行われたサービスの移転先をその移転要求の時点での要求元のインスタンス(この例ではインスタンス100)のリソース使用率に基づいて決定する。
本変形例では、例えば図14のステップS31又はS33でインスタンス100から自身スタンスのリソース使用率がインスタンス200に通知される。サービス移転判断部208は、ステップS64で受け付けの撤回が判断されると、通知されたリソース使用率から定まる閾値以上のリソース使用率の別のインスタンス(インスタンス100及び200以外のインスタンス)の有無を判断する。
別のインスタンスのリソース使用率については、例えば、インスタンス100がステップS19で取得したものをインスタンス100のリソース使用率と共に取得してもよいし、インスタンス200自身が改めて各インスタンスから取得してもよい。また、インスタンス200が自身のサービスの移転の有無の判断のために各インスタンスのリソース使用率を取得していれば、それを用いてもよい。
サービス移転判断部208は、こうして決定した移転先を移転要求の送り元のインスタンス(この例ではインスタンス100)に通知する。サービス移転判断部208は本発明の「通知部」の一例である。移転要求は基本的に早いものから順番に受け付けられるから、移転先の決定が早いほど移転要求も受け付けられやすい。本変形例では、移転要求の受け付けを撤回したインスタンス(上記例ではインスタンス200)が移転先を決定することで、受け付けが撤回された移転要求の送り元のインスタンス(上記例ではインスタンス100)が移転先を決定し直す場合に比べて、移転先の決定時期が早くなり、その結果、決定された移転先への移転要求が受け付けられやすくなる。
[2-7]移転判断のタイミング
サービス移転判断部108は、実施例では、サービス150が処理の実行を終了したときにそのサービス150の移転の有無を判断したが、これに限らず、例えば、決められた時間間隔で移転の有無を判断してもよいし、自インスタンスのCPU使用率又はメモリ使用率が閾値を下回ったときに移転の有無を判断してもよい。
[2-8]比較するリソース使用率
サービス移転判断部108は、実施例では、比較するリソース使用率として移転後の使用率を用いたが、現時点での使用率を用いてもよい。例えば図6A(c)の例は、移転後の使用率だとインスタンス100よりもインスタンス200の方が小さいので移転が行われなかったが、現時点での使用率であれば両インスタンスとも同じ値になるので、移転が行われる。この場合でも、サービスの実行主体(インスタンス)を固定する場合に比べれば、サービスを実行するインスタンスが少なくなり、インスタンス数単位での課金が少なくなる。
[2-9]仮想化の方式
実施例では、コンテナ型の仮想化技術により仮想マシンが実現されたが、これに限らず、例えばVMWare(登録商標)等のハイパーバイザー型の仮想化技術により仮想マシンが実現されてもよい。要するに、物理的に区分された装置(物理マシン)ではなく、論理的に区分されて1台の装置のように振る舞う仮想マシンが実現されるのであれば、どのような技術が用いられてもよい。
[2-10]各機能の実現方法
図4、図5に表す各機能は、2以上の機能が統合されてもよいし、1つの機能が2以上の機能に分割されてもよい。例えば、リソース使用率算出部101が、現時点での使用率を算出する算出部と、移転後の使用率を算出する算出部とに分割されてもよい。また、サービス移転判断部108及びサービス停止判断部109が統合されてサービスに関する判断をまとめて行う判断部としてもよい。
また、実施例では、インスタンス以外の機能である第1オートスケール制御部32等も仮想マシンで実現されていたが、これらについては物理マシンで実現されてもよい。また、実施例では、各サーバ装置10がインスタンス以外の機能をそれぞれ備えていたが、それらの機能が複数のサーバ装置10で共有されていてもよい。要するに、リソース提供システム1の全体で図4、図5に表す各機能と同等の機能が実現されていれば、機能のまとめ方はどのようになっていてもよい。
[2-11]発明のカテゴリ
本発明は、サーバ装置10及びリソース管理装置20という各情報処理装置の他、それらの情報処理装置を備えるリソース提供システムという情報処理システムとしても捉えられる。また、本発明は、各装置が実施する処理を実現するための情報処理方法としても捉えられるし、各装置を制御するコンピュータを機能させるためのプログラムとしても捉えられる。このプログラムは、それを記憶させた光ディスク等の記録媒体の形態で提供されてもよいし、インターネット等の通信回線を介してコンピュータにダウンロードさせ、それをインストールして利用可能にするなどの形態で提供されてもよい。
1…リソース提供システム、10…サーバ装置、20…リソース管理装置、30…仮想マシン実現部、31…インスタンス群、32…第1オートスケール制御部、33…第2オートスケール制御部、34…リクエスト・レスポンスキュー、35…サービス定義記憶部、36…サービス移転情報永続記憶部、41…現状情報表示部、42…履歴情報表示部、100、200、300…インスタンス、101…リソース使用率算出部、102…サービス移転受付部、103…サービス移転状態応答部、104…コンテナ制御部、105…コンテナ実行部、106…サービス状態管理部、107…サービス状態記憶部、108…サービス移転判断部、109…サービス停止判断部、110…サービス移転先記憶部、150…サービス。

Claims (19)

  1. 複数の仮想マシンを実現する実現部を備えるコンピュータを、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部
    として機能させるためのプログラムであって、
    前記実行部は、前記第2仮想マシンへの移転が決定されたサービスがある場合、当該第2仮想マシンで当該サービスの実行環境が完成するまでは当該サービスに新たな処理を実行させる
    プログラム。
  2. 複数の仮想マシンを実現する実現部を備えるコンピュータを、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部
    として機能させるためのプログラムであって、
    前記実現部は、前記第2仮想マシンに移転が決定されたサービスがある場合、当該第2仮想マシンで当該サービスの実行環境が完成していなくても当該サービスに新たな処理を実行させない
    プログラム。
  3. 複数の仮想マシンを実現する実現部を備えるコンピュータを、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部と、
    他の仮想マシンから移転するサービスの受け入れを要求された場合に当該要求を受け付ける受付部
    として機能させるためのプログラムであって、
    前記実行部は、前記受付部により要求が受け付けられたサービスを実行し、
    前記受付部は、複数の他の仮想マシンから移転するサービスの受け入れを要求された場合、移転後の前記リソース使用率がより大きくなる要求を受け付ける
    プログラム。
  4. 複数の仮想マシンを実現する実現部を備えるコンピュータを、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部と、
    他の仮想マシンから移転するサービスの受け入れを要求された場合に当該要求を受け付ける受付部
    として機能させるためのプログラムであって、
    前記実行部は、前記受付部により要求が受け付けられたサービスを実行し、
    前記受付部は、他の仮想マシンからのサービスの受け入れの要求を受け付けた後に前記第2仮想マシンで実行中のサービスが全て移転予定になった場合、当該要求の受け付けを撤回する
    プログラム。
  5. 前記決定部は、前記受付部が前記要求の受け付けを撤回した場合に、当該要求が行われたサービスの移転先を当該要求の時点での前記第1仮想マシンのリソース使用率に基づいて決定し、
    前記コンピュータを、
    決定された前記移転先を前記要求の送り元の仮想マシンに通知する通知部として機能させる
    請求項に記載のプログラム。
  6. 複数の仮想マシンを実現する実現部を備えるコンピュータを、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部と、
    前記リソース使用率を示す情報を出力する使用率出力部
    として機能させるためのプログラム。
  7. 前記コンピュータを、
    仮想マシンで実行中のサービスに割り当てられている第2リソースの前記第1リソースに対する第1割合を前記リソース使用率として算出する第1算出部と、
    他の仮想マシンに移転予定のサービスを除いた前記実行中のサービスに割り当てられている第3リソースの前記第1リソースに対する第2割合を前記リソース使用率として算出する第2算出部と、
    複数の仮想マシンにおける前記第1割合及び前記第2割合を取得する取得部として機能させ、
    前記決定部は、前記第2仮想マシンについての前記第1割合又は前記第2割合が示す空きリソースで実行可能なサービスが前記実行部により実行中である場合、前記第1仮想マシンの前記第2割合から定まる閾値以上の前記第2割合が前記第2仮想マシンについて取得されたときに当該第2仮想マシンを当該サービスの移転先として決定する
    請求項1から6のいずれか一項に記載のプログラム。
  8. 前記決定部は、取得された前記第1仮想マシンの前記第2割合を前記閾値とする
    請求項に記載のプログラム。
  9. 前記コンピュータを、
    前記第2仮想マシンにおけるサービスの移転履歴を記憶する記憶部として機能させ、
    前記決定部は、記憶された前記第2仮想マシンの前記移転履歴に基づいて前記閾値を変化させる
    請求項1からのいずれか1項に記載のプログラム。
  10. 前記決定部は、記憶された前記第2仮想マシンの前記移転履歴が示す移転の頻度又は移転の回数が少ないほど前記閾値を小さくする
    請求項に記載のプログラム。
  11. 前記決定部は、記憶された前記第2仮想マシンの前記移転履歴が示す最新の移転時期が古いほど前記閾値を小さくする
    請求項に記載のプログラム。
  12. 前記決定部は、移転対象のサービスが実行していた処理が終了したときに移転先の前記第2仮想マシンの前記リソース使用率が前記閾値未満になっていた場合、他の仮想マシンを当該サービスの移転先として決定する
    請求項1から11のいずれか1項に記載のプログラム。
  13. 前記コンピュータを、
    複数の仮想マシンにおけるサービスの移転履歴を記憶する記憶部と、
    記憶された前記移転履歴を出力する履歴出力部として機能させる
    請求項1から12のいずれか1項に記載のプログラム。
  14. 前記コンピュータを、
    前記実行部によるサービスの実行状態を示す情報を出力する実行状態出力部として機能させる
    請求項1から13のいずれか1項に記載のプログラム。
  15. 複数の仮想マシンを実現する実現部と、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部と
    を備え
    前記実行部は、前記第2仮想マシンへの移転が決定されたサービスがある場合、当該第2仮想マシンで当該サービスの実行環境が完成するまでは当該サービスに新たな処理を実行させる
    情報処理装置。
  16. 複数の仮想マシンを実現する実現部と、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部と
    を備え
    前記実現部は、前記第2仮想マシンに移転が決定されたサービスがある場合、当該第2仮想マシンで当該サービスの実行環境が完成していなくても当該サービスに新たな処理を実行させない
    情報処理装置。
  17. 複数の仮想マシンを実現する実現部と、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部と
    他の仮想マシンから移転するサービスの受け入れを要求された場合に当該要求を受け付ける受付部と
    を備え
    前記実行部は、前記受付部により要求が受け付けられたサービスを実行し、
    前記受付部は、複数の他の仮想マシンから移転するサービスの受け入れを要求された場合、移転後の前記リソース使用率がより大きくなる要求を受け付ける
    情報処理装置。
  18. 複数の仮想マシンを実現する実現部と、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部と
    他の仮想マシンから移転するサービスの受け入れを要求された場合に当該要求を受け付ける受付部と
    を備え
    前記実行部は、前記受付部により要求が受け付けられたサービスを実行し、
    前記受付部は、他の仮想マシンからのサービスの受け入れの要求を受け付けた後に前記第2仮想マシンで実行中のサービスが全て移転予定になった場合、当該要求の受け付けを撤回する
    情報処理装置。
  19. 複数の仮想マシンを実現する実現部と、
    第1仮想マシンに割り当てられた第1リソースを用いて複数のサービスを実行する実行部と、
    前記第1仮想マシンのリソース使用率から定まる閾値以上のリソース使用率の第2仮想マシンを前記実行部が実行するサービスの移転先として決定する決定部と
    前記リソース使用率を示す情報を出力する使用率出力部と
    を備える情報処理装置。
JP2018031266A 2018-02-23 2018-02-23 プログラム及び情報処理装置 Active JP7040113B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018031266A JP7040113B2 (ja) 2018-02-23 2018-02-23 プログラム及び情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018031266A JP7040113B2 (ja) 2018-02-23 2018-02-23 プログラム及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2019145037A JP2019145037A (ja) 2019-08-29
JP7040113B2 true JP7040113B2 (ja) 2022-03-23

Family

ID=67772493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018031266A Active JP7040113B2 (ja) 2018-02-23 2018-02-23 プログラム及び情報処理装置

Country Status (1)

Country Link
JP (1) JP7040113B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007310791A (ja) 2006-05-22 2007-11-29 Hitachi Ltd 計算機システムの消費電力低減方法、及びそのプログラム
JP2011232916A (ja) 2010-04-27 2011-11-17 Hitachi Ltd 計算機システム及び管理計算機
JP2019061359A (ja) 2017-09-25 2019-04-18 富士ゼロックス株式会社 プログラム及び情報処理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6623888B2 (ja) * 2016-03-29 2019-12-25 セイコーエプソン株式会社 表示システム、表示装置、頭部装着型表示装置、表示制御方法、表示装置の制御方法、及び、プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007310791A (ja) 2006-05-22 2007-11-29 Hitachi Ltd 計算機システムの消費電力低減方法、及びそのプログラム
JP2011232916A (ja) 2010-04-27 2011-11-17 Hitachi Ltd 計算機システム及び管理計算機
JP2019061359A (ja) 2017-09-25 2019-04-18 富士ゼロックス株式会社 プログラム及び情報処理装置

Also Published As

Publication number Publication date
JP2019145037A (ja) 2019-08-29

Similar Documents

Publication Publication Date Title
CN113641457B (zh) 容器创建方法、装置、设备、介质及程序产品
WO2020135799A1 (zh) Vnf服务实例化方法及装置
CN103309731A (zh) 处理系统
US11978025B2 (en) Method and device for processing virtual cards
US9864706B2 (en) Management of allocation for alias devices
WO2020177336A1 (zh) 资源调度方法、设备、系统及中心服务器
JP2019057213A (ja) 調整プログラム、調整装置および調整方法
CN111427675A (zh) 一种数据处理方法、装置以及计算机可读存储介质
CN110018883A (zh) 一种虚拟机删除方法、装置、设备及存储介质
CN112231108A (zh) 任务处理方法、装置、计算机可读存储介质及服务器
JP6939327B2 (ja) プログラム及び情報処理装置
JP6501694B2 (ja) 計算機システム及び計算機システムのタスク実行方法
CN108958933B (zh) 任务执行器的配置参数更新方法、装置及设备
CN109905258B (zh) PaaS的管理方法、装置及存储介质
JP2017162059A (ja) 情報処理装置、制御方法、プログラム
JP7040113B2 (ja) プログラム及び情報処理装置
CN106657195B (zh) 任务处理方法和中继设备
US9875147B2 (en) Management of asynchronous and synchronous resource requests
CN108885565A (zh) 对游戏模式的操作系统支持
CN114490000A (zh) 任务处理方法、装置、设备及存储介质
JP6885067B2 (ja) 情報処理装置及び情報処理システム
JP2013206041A (ja) 通信システム及び負荷分散処理装置
JP2017111581A (ja) 情報処理システム、制御方法
US20230176926A1 (en) Virtual resource management device, virtual resource management method and program
KR102628191B1 (ko) 프로세스 차등화 결과에 따른 하드웨어 리소스 할당 방법 및 그 방법이 적용된 온라인 서비스 제공 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220127

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: 20220208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220221

R150 Certificate of patent or registration of utility model

Ref document number: 7040113

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150