(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-13
(45)【発行日】2022-12-21
(54)【発明の名称】障害対処プログラム及び障害対処方法
(51)【国際特許分類】
G06F 11/00 20060101AFI20221214BHJP
G06F 11/20 20060101ALI20221214BHJP
G06F 9/455 20060101ALI20221214BHJP
G06F 11/07 20060101ALI20221214BHJP
【FI】
G06F11/00 606Z
G06F11/20 630
G06F9/455 150
G06F11/07 140C
G06F11/07 193
(21)【出願番号】P 2018113809
(22)【出願日】2018-06-14
【審査請求日】2021-03-10
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100094525
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】近藤 玲子
(72)【発明者】
【氏名】渡辺 幸洋
(72)【発明者】
【氏名】麻岡 正洋
(72)【発明者】
【氏名】内海 哲哉
(72)【発明者】
【氏名】飯倉 二美
(72)【発明者】
【氏名】鈴木 和宏
(72)【発明者】
【氏名】奥野 伸吾
(72)【発明者】
【氏名】齋藤 悠司
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2009-282714(JP,A)
【文献】特開2014-206805(JP,A)
【文献】特開平5-313932(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/00
G06F 11/20
G06F 9/455
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
物理マシンにおける障害の発生
に応じて、前記障害
が発生した物理マシンで動作する仮想マシンから稼働開始前の仮想マシンを抽出し、
仮想マシンの運用に関する履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの稼働開始時刻の時間間隔に対応する第1情報と、抽出した前記仮想マシンを
前記障害が発生した物理マシンと異なる他の物理マシンに移動させる場合に要する移動所要時間に対応する第2情報と、発生を検知した前記障害の復旧に要する復旧所要時間に対応する第3情報とを生成し、
生成した前記第1情報と前記第2情報と前記第3情報とに基づき、抽出した前記仮想マシンを
、前記
他の物理マシンに移動させるか否かを判定する、
処理をコンピュータに実行させることを特徴とする障害対処プログラム。
【請求項2】
請求項1において、
前記生成する処理では、
前記履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの過去における前記時間間隔をそれぞれ特定し、
特定した前記時間間隔の同一の時間ごとの割合を示す情報を前記第1情報として生成し、
前記履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの過去における前記移動所要時間をそれぞれ特定し、
特定した前記移動所要時間の同一の時間ごとの割合を示す情報を前記第2情報として生成し、
前記履歴情報を記憶した記憶部を参照し、前記障害が過去に発生した際の前記復旧所要時間と、前記障害が過去に発生した際に予測された前記復旧所要時間の予測時間との時間差をそれぞれ算出し、
算出した前記時間差の同一の時間ごとの割合を示す情報を前記第3情報として生成する、
ことを特徴とする障害対処プログラム。
【請求項3】
請求項2において、
前記判定する処理では、
抽出した前記仮想マシンの前回の稼働開始時刻から現在時刻までの経過時間を算出し、
前記第1情報と前記第3情報とから、算出した前記経過時間を前記時間間隔から減算した時間が、特定した前記時間差と、発生を検知した前記障害について予測された前記復旧所要時間の予測時間とを加算した時間よりも短くなる第1確率を算出し、
算出した前記第1確率が閾値以上
の場合、前記第1情報と前記第2情報とから、算出した前記経過時間を前記時間間隔から減算した時間が、前記移動所要時間よりも短くなる第2確率を算出し、
算出した前記第2確率が閾値以下
の場合、抽出した前記
他の物理マシンに移動させることを決定する、
ことを特徴とする障害対処プログラム。
【請求項4】
請求項3において、
前記生成する処理では、抽出した前記仮想マシンが複数存在する場合、前記第1情報、前記第2情報及び前記第3情報の生成を前記仮想マシンごとに行い、
前記判定する処理では、
前記他の物理マシンに移動させることを決定した前記仮想マシンが複数存在する場合、前記第1確率から、複数存在した前記仮想マシンのそれぞれの優先度情報を算出し、
算出した前記優先度情報に対応する値が大きい前記仮想マシンを優先して、
前記他の物理マシンに対する移動を行うことを決定する、
ことを特徴とする障害対処プログラム。
【請求項5】
請求項4において、さらに、
抽出した前記仮想マシンが複数存在する場合、
前記他の物理マシンに前記仮想マシンの移動が完了するごとに、前記生成する処理と前記判定する処理とを再度行う、
処理をコンピュータに実行させることを特徴とする障害対処プログラム。
【請求項6】
請求項4において、さらに、
抽出した前記仮想マシンが複数存在する場合、複数存在した前記仮想マシンを所定の順序に従って1台ずつ移動させたと仮定しながら、前記生成する処理と前記判定する処理とを繰り返し行うことにより、複数存在した前記仮想マシンを前記所定の順序に従って移動させる場合に、
前記他の物理マシンに移動させることができる前記仮想マシンの台数を算出し、
算出した前記台数が閾値以上である場合、複数存在した前記仮想マシンを前記所定の順序に従って移動させることの決定を行う、
処理をコンピュータに実行させることを特徴とする障害対処プログラム。
【請求項7】
請求項1において、
前記生成する処理では、前記履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンが動作する物理マシンのリソースの追加に要する追加所要時間を示す第4情報を生成し、
前記判定する処理では、抽出した前記仮想マシンを
前記他の物理マシンに移動させないと判定した場合、生成した前記第1情報と前記第4情報とに基づき、抽出した前記仮想マシンが動作する物理マシンのリソースを追加するか否かの判定を行う、
ことを特徴とする障害対処プログラム。
【請求項8】
請求項1において、
前記第1情報と前記第2情報と前記第3情報とを生成する処理では、
抽出した前記仮想マシンが動作する物理マシンを特定し、
特定した前記物理マシンで動作する仮想マシンを特定し、
前記履歴情報のうち、特定した前記仮想マシンに対応する履歴情報を記憶した記憶部を参照し、前記第1情報と前記第2情報と前記第3情報とを生成する、
ことを特徴とする障害対処プログラム。
【請求項9】
物理マシンにおける障害の発生
に応じて、前記障害
が発生した物理マシンで動作する仮想マシンから稼働開始前の仮想マシンを抽出し、
仮想マシンの運用に関する履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの稼働開始時刻の時間間隔に対応する第1情報と、抽出した前記仮想マシンを
前記障害が発生した物理マシンと異なる他の物理マシンに移動させる場合に要する移動所要時間に対応する第2情報と、発生を検知した前記障害の復旧に要する復旧所要時間に対応する第3情報とを生成し、
生成した前記第1情報と前記第2情報と前記第3情報とに基づき、抽出した前記仮想マシンを
、前記
他の物理マシンに移動させるか否かを判定する、
処理をコンピュータが実行することを特徴とする障害対処方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、障害対処プログラム及び障害対処方法に関する。
【背景技術】
【0002】
例えば、利用者にサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、サービスの提供を行うための情報処理システムを構築して稼働させる。具体的に、事業者は、例えば、物理マシン上で動作する複数の仮想マシンを用いることによって情報処理システムの構築を行う。
【0003】
そして、事業者は、例えば、利用者に対して提供するサービスに影響を与える可能性がある障害が発生した場合、障害の原因や影響範囲を推定する。その後、事業者は、推定した障害の原因や影響範囲に応じた対処を行う(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のように事業者が行う対処には、仮想マシンを障害の影響範囲外である安全な物理マシンに移動させるという措置が含まれる。
【0006】
具体的に、例えば、障害の影響範囲内に何の処理もしていない仮想マシン(以下、稼働していない仮想マシンとも呼ぶ)が存在している場合、事業者は、その仮想マシンが障害の影響をまだ受けていない仮想マシンであると想定することが可能である。そのため、事業者は、この場合、稼働していない仮想マシンが稼働する前に、その仮想マシンを安全な物理マシンに移動させることにより、発生した障害の影響を少なくすることが可能になる。
【0007】
ここで、稼働していない仮想マシンの移動の可否は、稼働していない仮想マシンが稼働を開始する時刻(以下、稼働開始時刻とも呼ぶ)や稼働していない仮想マシンの移動に要する時間(以下、移動所要時間とも呼ぶ)等を考慮して判断する必要がある。
【0008】
しかしながら、仮想マシンの稼働開始時刻や移動所要時間は、利用者によるサービスの利用状況等によって異なる。そのため、事業者は、障害の発生に伴って移動させる仮想マシンを容易に決定することができない場合がある。
【0009】
そこで、一つの側面では、本発明は、障害の発生に伴って移動させる仮想マシンを決定することを可能とする障害対処プログラム及び障害対処方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
実施の形態の一態様では、障害の発生を検知したことに応じて、前記障害の影響が及ぶ範囲内にある仮想マシンから稼働開始前の仮想マシンを抽出し、仮想マシンの運用に関する履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの稼働開始時刻の時間間隔に対応する第1情報と、抽出した前記仮想マシンを障害の影響が及ぶ範囲外に移動させる場合に要する移動所要時間に対応する第2情報と、発生を検知した前記障害の復旧に要する復旧所要時間に対応する第3情報とを生成し、生成した前記第1情報と前記第2情報と前記第3情報とに基づき、抽出した前記仮想マシンを障害の影響が及ぶ範囲外に移動させるか否かを判定する、処理をコンピュータに実行させる。
【発明の効果】
【0011】
一つの側面によれば、障害の発生に伴って移動させる仮想マシンを決定することを可能とする。
【図面の簡単な説明】
【0012】
【
図1】
図1は、情報処理システム10の構成を示す図である。
【
図2】
図2は、情報処理装置1のハードウエア構成を示す図である。
【
図3】
図3は、情報処理装置1の機能のブロック図である。
【
図4】
図4は、第1の実施の形態における障害対処処理の概略を説明するフローチャート図である。
【
図5】
図5は、第1の実施の形態における障害対処処理の概略を説明する図である。
【
図6】
図6は、第1の実施の形態における障害対処処理の概略を説明する図である。
【
図7】
図7は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図8】
図8は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図9】
図9は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図10】
図10は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図11】
図11は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図12】
図12は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図13】
図13は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図14】
図14は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図15】
図15は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図16】
図16は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図17】
図17は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図18】
図18は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図19】
図19は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。
【
図20】
図20は、履歴情報131の具体例を説明する図である。
【
図21】
図21は、稼働間隔情報132、移動時間情報133、復旧時間情報134及び追加時間情報135の具体例について説明する図である。
【
図22】
図22は、稼働間隔情報132、移動時間情報133、復旧時間情報134及び追加時間情報135を示すグラフの具体例について説明する図である。
【
図23】
図23は、変換後稼働間隔情報132aの具体例を説明する図である。
【
図24】
図24は、変換後稼働間隔情報132aを示すグラフの具体例を説明する図である。
【
図25】
図25は、変換後復旧時間情報134aの具体例を説明する図である。
【
図26】
図26は、変換後復旧時間情報134aを示すグラフの具体例を説明する図である。
【
図27】
図27は、第1の実施の形態における障害対処処理の詳細を説明する図である。
【
図28】
図28は、重要度情報136及び優先度情報137の具体例を説明する図である。
【
図29】
図29は、重要度情報136及び優先度情報137の具体例を説明する図である。
【発明を実施するための形態】
【0013】
[情報処理システムの構成]
図1は、情報処理システム10の構成を示す図である。
図1に示す情報処理システム10は、情報処理装置1と、情報格納領域130と、物理マシン2a、2b及び2cと、操作端末5とを有する。情報格納領域130は、情報処理装置1の外部に位置する記憶装置(図示しない)に含まれる記憶領域、または、情報処理装置1の内部に位置する記憶領域である。
【0014】
なお、以下、稼働とは、何らかの処理が動くことを意味し、例えば、バッチ処理等によって処理が開始したことに伴い、処理負荷が上がることを意味するものとする。
【0015】
物理マシン2aは、仮想マシン3a及び3bを含む複数台の仮想マシンが動作する物理マシンである。同様に、物理マシン2bは、仮想マシン3c及び3dを含む複数台の仮想マシンが動作する物理マシンであり、物理マシン2cは、仮想マシン3e及び3fを含む複数台の仮想マシンが動作する物理マシンである。なお、以下、物理マシン2a、2b及び2cを総称して物理マシン2とも呼ぶ。また、以下、仮想マシン3a、3b、3c、3d、3e及び3fを含む複数の仮想マシンを総称して仮想マシン3とも呼ぶ。
【0016】
操作端末5は、例えば、事業者が使用するPC(Personal Computer)である。具体的に、操作端末5は、例えば、事業者が入力した情報を情報処理装置1に対して送信する。
【0017】
情報処理装置1は、例えば、各物理マシン2やネットワーク(図示しない)の動作状況を定期的に監視する。そして、情報処理装置1は、仮想マシン3の動作に影響を与える障害の発生を検知した場合、発生した障害の影響範囲内にある仮想マシン3のうち、現段階では稼働していない仮想マシン3(将来稼働する予定の仮想マシン3)を、障害の影響範囲外の物理マシン2に移動させる措置を行う。
【0018】
具体的に、情報処理装置1は、この場合、例えば、各仮想マシン3の過去の稼働開始時刻や各仮想マシン3が物理マシン2間を過去に移動した際に要した移動所要時間等を含む履歴情報131を記憶した情報格納領域130を参照する。そして、情報処理装置1は、発生した障害の影響範囲内にある仮想マシン3であって現段階では稼働していない仮想マシン3のうち、次に稼働を開始するまでに障害の影響範囲外の物理マシン2(以下、異なる物理マシン2とも呼ぶ)に移動させることが可能な仮想マシン3の移動を行う。
【0019】
しかしながら、仮想マシン3の稼働開始時刻や移動所要時間は、利用者によるサービスの利用状況等によって変化する。そのため、事業者は、障害の発生に伴って移動させるべき仮想マシン3の決定を容易に行うことができない場合がある。
【0020】
そこで、本実施の形態における情報処理装置1は、障害の発生を検知したことに応じて、発生を検知した障害の影響が及ぶ範囲内にある仮想マシン3から稼働開始前の仮想マシン3を抽出する。そして、情報処理装置1は、履歴情報131を記憶した情報格納領域130を参照し、抽出した仮想マシン3の稼働開始時刻の時間間隔に対応する情報(以下、稼働間隔情報または第1情報とも呼ぶ)と、抽出した仮想マシン3を異なる物理マシン2に移動させる場合に要する移動所要時間に対応する情報(以下、移動時間情報または第2情報とも呼ぶ)と、発生を検知した障害の復旧に要する復旧所要時間に対応する情報(以下、復旧時間情報または第3情報とも呼ぶ)とを生成する。
【0021】
その後、情報処理装置1は、生成した稼働間隔情報、移動時間情報及び復旧時間情報に基づき、抽出した仮想マシン3を異なる物理マシン2に移動させるか否かを判定する。
【0022】
すなわち、情報処理装置1は、過去に発生した障害に関する情報や仮想マシン3の運用状況に関する情報である履歴情報131を参照し、抽出した仮想マシン3が次に稼働を開始する時刻と、抽出した仮想マシン3の移動をこれから行った場合に要する時間と、発生を検知した障害の復旧に要する時間との予測を行う。そして、情報処理装置1は、予測した各種情報に基づいて、次に稼働を開始するまでに異なる物理マシン2への移動を完了させることができる仮想マシン3を特定する。さらに、情報処理装置1は、特定した仮想マシン3を、異なる物理マシン2に対して移動させるべき仮想マシン3として決定する。
【0023】
これにより、情報処理装置1は、障害発生時において異なる物理マシン2に移動させる必要がある仮想マシン3を適切に特定することが可能になる。そのため、事業者は、発生した障害による影響をより抑制することが可能になる。
【0024】
[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明する。
図2は、情報処理装置1のハードウエア構成を示す図である。
【0025】
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
【0026】
記憶媒体104は、例えば、障害の発生に伴って異なる物理マシン2に移動させる仮想マシン3の決定を行う処理(以下、障害対処処理とも呼ぶ)を行うためのプログラム110を記憶するプログラム格納領域(図示しない)を有する。また、記憶媒体104は、例えば、障害対処処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。なお、記憶媒体104は、例えば、HDD(Hard Disk Drive)であってよい。
【0027】
CPU101は、記憶媒体104からメモリ102にロードされたプログラム110を実行して障害対処処理を行う。
【0028】
外部インターフェース103は、例えば、物理マシン2と通信を行う。
【0029】
[情報処理システムの機能]
次に、情報処理システム10の機能について説明を行う。
図3は、情報処理装置1の機能のブロック図である。
【0030】
情報処理装置1は、CPU101やメモリ102等のハードウエアとプログラム110とが有機的に協働することにより、情報管理部111と、障害検知部112と、VM抽出部113と、情報生成部114と、移動判定部115とを含む各種機能を実現する。
【0031】
そして、情報処理装置1は、
図3に示すように、履歴情報131と、稼働間隔情報132と、移動時間情報133と、復旧時間情報134と、追加時間情報135と、重要度情報136と、優先度情報137とを情報格納領域130に記憶する。
【0032】
情報管理部111は、履歴情報131を生成して情報格納領域130に記憶する。履歴情報131は、例えば、各仮想マシン3の過去における稼働開始時刻や移動所要時間を含む情報である。また、履歴情報131は、例えば、過去に発生した障害の復旧に要した時間(以下、復旧所要時間とも呼ぶ)と、過去に障害が発生した際に予測された復旧所要時間の予測時間とを含む情報である。履歴情報131の具体例については後述する。
【0033】
障害検知部112は、仮想マシン3の動作に影響を与える障害の発生を検知する。具体的に、障害検知部112は、例えば、物理マシン2やネットワーク等の状態を定期的に監視し、物理マシン2等の状態が所定の状態になった場合、所定の状態に対応する内容の障害が発生したものと判定する。
【0034】
VM抽出部113は、障害検知部112が障害の発生を検知したことに応じて、障害の影響が及ぶ範囲内にある仮想マシン3から稼働開始前の仮想マシン3を抽出する。具体的に、VM抽出部113は、例えば、情報格納領域130に記憶された仮想マシン3の稼働スケジュール(図示しない)を参照し、障害の影響が及ぶ範囲内にある仮想マシン3であって現在では稼働を行っていない仮想マシン3のうち、将来稼働を開始する予定がある仮想マシン3を抽出するものであってよい。
【0035】
情報生成部114は、情報格納領域130に記憶された履歴情報131を参照し、VM抽出部113が抽出した仮想マシン3の稼働開始時刻の時間間隔に対応する稼働間隔情報132を生成する。具体的に、情報生成部114は、例えば、情報格納領域130に記憶された履歴情報131を参照し、VM抽出部113が抽出した仮想マシン3の過去における稼働開始時刻の時間間隔をそれぞれ特定する。そして、情報生成部114は、例えば、特定した稼働開始時刻の時間間隔のそれぞれにおいて、同一の時間間隔(例えば、同一の時間間隔帯)ごとの割合を示す情報を稼働間隔情報132として生成する。
【0036】
また、情報生成部114は、情報格納領域130に記憶された履歴情報131を参照し、VM抽出部113が抽出した仮想マシン3を異なる物理マシン2に移動させる場合に要する移動所要時間に対応する移動時間情報133を生成する。具体的に、情報生成部114は、例えば、情報格納領域130に記憶された履歴情報131を参照し、VM抽出部113が抽出した仮想マシン3の過去における移動所要時間をそれぞれ特定する。そして、情報生成部114は、例えば、特定した移動所要時間のそれぞれにおいて、同一の移動所要時間(例えば、同一の移動所要時間帯)ごとの割合を示す情報を移動時間情報133として生成する。
【0037】
さらに、情報生成部114は、障害検知部112が発生を検知した障害の復旧に要する復旧所要時間に対応する復旧時間情報134を生成する。具体的に、情報生成部114は、例えば、情報格納領域130に記憶された履歴情報131を参照し、障害検知部112によって検知された障害が過去に発生した際の復旧所要時間と、その障害が過去に発生した際に予測された復旧所要時間の予測時間との時間差をそれぞれ算出する。そして、情報生成部114は、例えば、算出した時間差のそれぞれにおいて、同一の時間差(例えば、時間差帯)ごとの割合を示す情報を復旧時間情報134として生成する。
【0038】
移動判定部115は、情報生成部114が生成した稼働間隔情報132、移動時間情報133及び復旧時間情報134に基づき、VM抽出部113が抽出した仮想マシン3を異なる物理マシン2に移動させるか否かを判定する。追加時間情報135、重要度情報136及び優先度情報137についての説明は後述する。
【0039】
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。
図4は、第1の実施の形態における障害対処処理の概略を説明するフローチャート図である。また、
図5及び
図6は、第1の実施の形態における障害対処処理の概略を説明する図である。
【0040】
情報処理装置1は、
図4に示すように、障害の発生を検知するまで待機する(S1のNO)。具体的に、情報処理装置1は、各物理マシン2や各仮想マシン3からのエラーの出力を検知することにより、各物理マシン2や各仮想マシン3において発生した障害の検知を行う。
【0041】
そして、障害の発生を検知した場合(S1のYES)、情報処理装置1は、発生を検知した障害の影響が及ぶ範囲内にある仮想マシン3から稼働開始前の仮想マシン3を抽出する(S2)。
【0042】
具体的に、情報処理装置1は、例えば、
図5に示すように、物理マシン2aで動作する仮想マシン3a及び3bを含む複数の仮想マシン3と、物理マシン2bで動作する仮想マシン3c及び3dを含む複数の仮想マシン3と、物理マシン2cで動作する仮想マシン3e及び3fを含む複数の仮想マシン3とのうち、S1の処理で発生を検知した障害の影響が及ぶ範囲内にある仮想マシン3であって、現在では稼働を行っていない仮想マシン3を特定する。
【0043】
そして、情報処理装置1は、履歴情報131を記憶した情報格納領域130を参照し、S2の処理で抽出した仮想マシン3の稼働開始時刻の時間間隔に対応する稼働間隔情報132を生成する(S3)。また、情報処理装置1は、履歴情報131を記憶した情報格納領域130を参照し、S2の処理で抽出した仮想マシン3を異なる物理マシン2に移動させる場合に要する移動所要時間に対応する移動時間情報133を生成する(S4)。さらに、情報処理装置1は、履歴情報131を記憶した情報格納領域130を参照し、S1の処理で発生を検知した障害の復旧に要する復旧所要時間に対応する復旧時間情報134を生成する(S5)。
【0044】
その後、情報処理装置1は、S3の処理で生成した稼働間隔情報132と、S4の処理で生成した移動時間情報133と、S5の処理で生成した復旧時間情報134とに基づき、S2の処理で抽出した仮想マシン3を異なる物理マシン2に移動させるか否かを判定する(S6)。
【0045】
具体的に、情報処理装置1は、
図6に示すように、生成した稼働間隔情報132、移動時間情報133及び復旧時間情報134を情報格納領域130に記憶する。そして、情報処理装置1は、例えば、S2の処理において仮想マシン3a及び3bが特定された場合、情報格納領域130に記憶した稼働間隔情報132、移動時間情報133及び復旧時間情報134を参照し、仮想マシン3a及び3bを他の物理マシン2(物理マシン2a以外の物理マシン2)に移動するか否かを判定する。
【0046】
これにより、情報処理装置1は、障害発生時において異なる物理マシン2に移動させる必要がある仮想マシン3を適切に特定することが可能になる。そのため、事業者は、発生した障害による影響をより抑制することが可能になる。
【0047】
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。
図7から
図19は、第1の実施の形態における障害対処処理の詳細を説明するフローチャート図である。また、
図20から
図29は、第1の実施の形態における障害対処処理の詳細を説明する図である。
【0048】
[履歴情報蓄積処理]
初めに、障害対処処理のうち、履歴情報131を蓄積する処理(以下、履歴情報蓄積処理とも呼ぶ)について説明を行う。
【0049】
情報処理装置1の情報管理部111は、
図7に示すように、物理マシン2で動作する仮想マシン3の稼働開始を検知するまで待機する(S201のNO)。具体的に、情報管理部111は、例えば、各物理マシン2において動作する仮想マシン3のCPU使用率を各物理マシン2や各仮想マシン3から取得し、仮想マシン3ごとのCPU使用率の変化に基づいて各仮想マシン3の稼働開始を検知する。
【0050】
そして、仮想マシン3の稼働開始を検知した場合(S201のYES)、情報管理部111は、稼働開始を検知した仮想マシン3の稼働開始時刻を特定する(S202)。
【0051】
その後、情報管理部111は、S202の処理で特定した稼働開始時刻を履歴情報131の一部(以下、第1履歴情報131aとも呼ぶ)として情報格納領域130に記憶する(S203)。
【0052】
また、情報管理部111は、
図8に示すように、異なる物理マシン2に対する仮想マシン3の移動完了を検知するまで待機する(S211のNO)。具体的に、情報管理部111は、例えば、異なる物理マシン2に対する仮想マシン3のライブマイグレーションの完了を検知するまで待機する。
【0053】
そして、仮想マシン3の移動完了を検知した場合(S211のYES)、情報管理部111は、移動完了を検知した仮想マシン3の移動に要した移動所要時間を特定する(S212)。具体的に、情報管理部111は、例えば、異なる物理マシン2に対する仮想マシン3の移動完了だけでなく、異なる物理マシン2に対する仮想マシン3の移動開始についても検知を行い、移動開始から移動完了までの時間を移動所要時間として特定する。
【0054】
なお、各物理マシン2は、各物理マシン2から他の物理マシン2への仮想マシン3の移動が開始した場合、仮想マシン3の移動開始を示す情報を情報処理装置1に送信するものであってよい。また、各物理マシン2は、各物理マシン2から他の物理マシン2への仮想マシン3の移動が完了した場合、仮想マシン3の移動完了を示す情報を情報処理装置1に送信するものであってよい。そして、情報管理部111は、各物理マシン2から送信された各情報を参照することにより、移動所要時間の特定を行うものであってもよい。
【0055】
その後、情報管理部111は、S212の処理で特定した移動所要時間を履歴情報131の一部(以下、第2履歴情報131bとも呼ぶ)として情報格納領域130に記憶する(S213)。
【0056】
また、情報処理装置1の障害検知部112は、
図9に示すように、物理マシンで動作する仮想マシン3に影響を与える障害の発生を検知するまで待機する(S221のNO)。具体的に、障害検知部112は、各物理マシン2や各仮想マシン3から出力されるエラー情報を検知することにより、各仮想マシン3に影響を与える障害の発生の検知を行う。
【0057】
そして、障害の発生を検知した場合(S221のYES)、情報管理部111は、発生した障害の復旧所要時間の予測時間が事業者によって入力されるまで待機する(S222のNO)。具体的に、情報管理部111は、例えば、発生した障害の復旧所要時間の予測時間が操作端末5を介して入力されるまで待機する。
【0058】
その後、発生した障害の復旧所要時間の予測時間が事業者によって入力されたことを検知した場合(S222のYES)、障害検知部112は、発生した障害の復旧を検知するまで待機する(S223のNO)。具体的に、障害検知部112は、例えば、事業者によって障害が復旧したこと示す情報の入力があるまで待機する。
【0059】
そして、発生した障害の復旧を検知した場合(S223のYES)、情報管理部111は、S221の処理で障害の発生を検知した時刻と、S223の処理で障害の復旧を検知した時刻とから、S221の処理で発生を検知した障害の復旧に要した復旧所要時間を算出する(S224)。具体的に、情報管理部111は、例えば、S221の処理で障害の発生を検知した時刻から、S223の処理で障害の復旧を検知した時刻までの時間を復旧所要時間として算出する。
【0060】
続いて、情報管理部111は、S224の処理で算出した復旧所要時間と、S222の処理で入力を検知した復旧所要時間の予測時間とを履歴情報131の一部(以下、第3履歴情報131cとも呼ぶ)として情報格納領域130に記憶する(S225)。
【0061】
さらに、情報管理部111は、
図10に示すように、例えば、物理リソースの追加を検知するまで待機する(S231)。具体的に、情報管理部111は、例えば、事業者によって物理リソースの追加が完了したことを示す情報の入力があるまで待機する。
【0062】
すなわち、発生した障害の影響を受ける全ての仮想マシン3を異なる物理マシン2に移動することができない場合、事業者は、例えば、物理リソースの追加を行うことにより、発生した障害による影響を抑える。
【0063】
なお、物理リソースの追加には、例えば、物理マシン2に対するハードウエアの追加や、物理マシン2と接続するネットワークの追加及び切換や、物理マシン2からアクセス可能な記憶装置の追加及びデータの記憶先の設定変更等が含まれる。
【0064】
そして、物理リソースの追加を検知した場合(S231のYES)、追加を検知した物理リソースの追加に要した追加所要時間を特定する(S232)。具体的に、情報管理部111は、例えば、物理リソースの追加に要した時間として事業者が入力した時間を追加所要時間として特定する。
【0065】
その後、情報管理部111は、S232の処理で特定した追加所要時間を履歴情報131の一部(以下、第4履歴情報131dとも呼ぶ)として情報格納領域130に記憶する(S233)。以下、履歴情報131の具体例について説明を行う。
【0066】
[履歴情報の具体例]
図20は、履歴情報131の具体例を説明する図である。具体的に、
図20(A)は、第1履歴情報131aの具体例を説明する図であり、
図20(B)は、第2履歴情報131bの具体例を説明する図である。また、
図20(C)は、第3履歴情報131cの具体例を説明する図であり、
図20(D)は、第4履歴情報131dの具体例を説明する図である。以下、第1履歴情報131a、第2履歴情報131b、第3履歴情報131c及び第4履歴情報131dのそれぞれは、仮想マシン3ごとであって、仮想マシン3が動作する物理マシン2ごとに生成されるものとして説明を行う。そして、
図20(A)、
図20(B)、
図20(C)及び
図20(D)のそれぞれは、
図1等で説明した物理マシン2aにおいて1台の仮想マシン3が動作していた場合に記憶された第1履歴情報131a、第2履歴情報131b、第3履歴情報131c及び第4履歴情報131dを示す図であるものとして説明を行う。
【0067】
なお、第1履歴情報131a及び第2履歴情報131bのそれぞれは、例えば、仮想マシン3ごとであって、仮想マシン3が動作する物理マシン2ごとであって、物理マシン2で動作していた仮想マシン3の台数ごとに生成されるものであってもよい。また、第2履歴情報131bは、例えば、仮想マシン3ごとであって、仮想マシン3が動作する物理マシン2ごとであって、物理マシン2で動作していた仮想マシン3の台数ごとであって、さらに、物理マシン2間において移動を開始する際におけるCPU使用率やメモリ使用量等の環境情報ごとに生成されるものであってもよい。
【0068】
一方、第3履歴情報131cは、例えば、物理マシン2で動作していた仮想マシン3の台数ごとに生成されるものであってもよい。また、第4履歴情報131dは、例えば、仮想マシン3が動作する物理マシン2ごとに生成されるものであってもよい。
【0069】
[第1履歴情報の具体例]
初めに、第1履歴情報131aの具体例について説明を行う。
【0070】
図20(A)に示す第1履歴情報131aは、第1履歴情報131aに含まれる各情報を識別する「項番」と、S202の処理で特定した稼働開始時刻が記憶される「稼働開始時刻」と、連続する「稼働開始時刻」に記憶された時刻の時間間隔が記憶される「時間間隔」とを項目として有している。
【0071】
具体的に、
図20(A)に示す第1履歴情報131aにおいて、「項番」が「1」である情報には、「稼働開始時刻」として「12:05」が記憶されている。そして、
図20(A)に示す第1履歴情報131aにおいて、「項番」が「1」である情報には、「時間間隔」として情報が記憶されていないことを示す「-」が記憶されている。
【0072】
また、
図20(A)に示す第1履歴情報131aにおいて、「項番」が「2」である情報には、「稼働開始時刻」として「15:00」が記憶されている。そして、
図20(A)に示す第1履歴情報131aにおいて、「項番」が「2」である情報には、「時間間隔」として、「項番」が「1」及び「2」である情報の「稼働開始時刻」にそれぞれ記憶された時刻である「12:05」及び「15:00」の時間間隔である「2:55」が記憶されている。
図20(A)に含まれる他の情報についての説明は省略する。
【0073】
[第2履歴情報の具体例]
次に、第2履歴情報131bの具体例について説明を行う。
【0074】
図20(B)に示す第2履歴情報131bは、第2履歴情報131bに含まれる各情報を識別する「項番」と、S212の処理で特定した移動所要時間が記憶される「移動所要時間」とを項目として有している。
【0075】
具体的に、
図20(B)に示す第2履歴情報131bにおいて、「項番」が「1」である情報には、「移動所要時間」として「2:10」が記憶されている。また、
図20(B)に示す第2履歴情報131bにおいて、「項番」が「2」である情報には、「移動所要時間」として「1:40」が記憶されている。
図20(B)に含まれる他の情報についての説明は省略する。
【0076】
[第3履歴情報の具体例]
次に、第3履歴情報131cの具体例について説明を行う。
【0077】
図20(C)に示す第3履歴情報131cは、第3履歴情報131cに含まれる各情報を識別する「項番」と、S224の処理で算出した復旧所要時間が記憶される「復旧所要時間」と、S222の処理で入力を検知した復旧所要時間の予測時間が記憶される「予測時間」とを項目として有している。また、
図20(C)に示す第3履歴情報131cは、「復旧所要時間」に記憶された時間から「予測時間」に記憶された時間を減算して算出される時間差が記憶される「時間差」を項目として有している。
【0078】
具体的に、
図20(C)に示す第3履歴情報131cにおいて、「項番」が「1」である情報には、「復旧所要時間」として「4:30」が記憶され、「予測時間」として「4:00」が記憶され、「時間差」として「+0:30」が記憶されている。
【0079】
また、
図20(C)に示す第3履歴情報131cにおいて、「項番」が「2」である情報には、「復旧所要時間」として「1:15」が記憶され、「予測時間」として「2:00」が記憶され、「時間差」として「-0:45」が記憶されている。
図20(C)に含まれる他の情報についての説明は省略する。
【0080】
なお、第3履歴情報131cは、例えば、発生した障害の種類ごとに生成されるものであってもよい。また、第3履歴情報131cは、例えば、発生した障害の対応を行う担当者ごとに生成されるものであってもよい。
【0081】
[第4履歴情報の具体例]
次に、第4履歴情報131dの具体例について説明を行う。
【0082】
図20(D)に示す第4履歴情報131dは、第4履歴情報131dに含まれる各情報を識別する「項番」と、S232の処理で特定した追加所要時刻が記憶される「追加所要時間」とを項目として有している。
【0083】
具体的に、
図20(D)に示す第4履歴情報131dにおいて、「項番」が「1」である情報には、「追加所要時間」として「0:10」が記憶されている。また、
図20(D)に示す第4履歴情報131dにおいて、「項番」が「2」である情報には、「追加所要時間」として「0:10」が記憶されている。
図20(D)に含まれる他の情報についての説明は省略する。
【0084】
なお、第4履歴情報131dは、例えば、追加された物理リソースの種類ごとに生成されるものであってもよい。また、第4履歴情報131dは、例えば、追加された物理リソースの規模ごとに生成されるものであってもよい。
【0085】
[VM移動判定処理]
次に、障害対処処理のうち、異なる物理マシン2に移動させる仮想マシン3を特定する処理(以下、VM移動判定処理とも呼ぶ)について説明を行う。
【0086】
障害検知部112は、
図11に示すように、障害の発生を検知するまで待機する(S11のNO)。そして、障害の発生を検知した場合(S11のYES)、情報処理装置1のVM抽出部113は、発生を検知した障害の影響が及ぶ範囲内にある仮想マシン3から稼働開始前の仮想マシン3を抽出する(S12)。
【0087】
続いて、VM抽出部113は、S12の処理で抽出した仮想マシン3のうちの1台を特定する(S13)。
【0088】
その後、情報処理装置1の情報生成部114は、第1履歴情報131aを記憶した情報格納領域130を参照し、S13の処理で特定した仮想マシン3の過去における稼働開始時刻の時間間隔をそれぞれ特定する(S14)。
【0089】
具体的に、情報生成部114は、S13の処理で特定した仮想マシン3が動作している物理マシン2を特定する。そして、情報生成部114は、例えば、第1履歴情報131aのうち、特定した物理マシン2と、S13の処理で特定した仮想マシン3とに対応する情報を参照し、S13の処理で特定した仮想マシン3の過去における稼働開始時刻の時間間隔の特定を行う。
【0090】
さらに、情報生成部114は、S14の処理で特定した時間間隔の同一の時間間隔帯ごとの割合を示す稼働間隔情報132を生成する(S15)。以下、稼働間隔情報132の具体例について説明を行う。
【0091】
[稼働間隔情報の具体例]
図21は、稼働間隔情報132、移動時間情報133、復旧時間情報134及び追加時間情報135の具体例について説明する図である。具体的に、
図21(A)は、稼働間隔情報132の具体例を説明する図である。
【0092】
図21(A)に示す稼働間隔情報132は、稼働間隔情報132に含まれる各情報を識別する「項番」と、時間間隔の範囲が記憶される「時間間隔帯」と、「時間間隔帯」に記憶された情報の全体に対する割合が記憶される「割合」とを項目として有する。
【0093】
具体的に、
図21(A)に示す稼働間隔情報132において、「項番」が「1」である情報には、「時間間隔帯」として「2:45~3:00」が記憶され、「割合」として「10(%)」が記憶されている。また、
図21(A)に示す稼働間隔情報132において、「項番」が「2」である情報には、「時間間隔帯」として「3:00~3:15」が記憶され、「割合」として「15(%)」が記憶されている。
図21(A)に含まれる他の情報についての説明は省略する。
【0094】
図11に戻り、情報生成部114は、S15の処理で生成した稼働間隔情報132に情報が含まれる割合のうち、最も大きい割合に対応する時間間隔帯の中央値を特定する(S16)。以下、S16の処理の具体例について説明を行う。
【0095】
[S16の処理の具体例]
図22は、稼働間隔情報132、移動時間情報133、復旧時間情報134及び追加時間情報135を示すグラフの具体例について説明する図である。具体的に、
図22(A)は、稼働間隔情報132を示すグラフの具体例を説明する図である。なお、
図22に示す各グラフにおける横軸及び縦軸は、それぞれ時間及び割合に対応している。
【0096】
図21(A)に示す稼働間隔情報132において、最も大きい割合に対応する時間間隔帯(時間間隔帯)は、「3:15~3:30」である。そのため、情報生成部114は、この場合、
図22(A)に示すように、S15の処理で生成した稼働間隔情報132に情報が含まれる割合のうち、最も大きい割合に対応する時間間隔帯の中央値として、3時間15分から3時間30分までの中央値である3時間22分30秒を特定する。
【0097】
なお、情報生成部114は、S16の処理において、例えば、
図20(A)で説明した第1履歴情報131aに含まれる時間間隔帯を用いる代わりに、各物理マシン2や各仮想マシン3から取得したリソース情報(例えば、各物理マシン2のCPU使用率等)を用いた自己相関分析を行うことによって周期性を算出し、算出した周期性から時間間隔帯の中央値の特定を行うものであってもよい。
【0098】
図12に戻り、情報生成部114は、第2履歴情報131bを記憶した情報格納領域130を参照し、S13の処理で特定した仮想マシン3の過去における移動所要時間をそれぞれ特定する。(S21)。
【0099】
具体的に、情報生成部114は、S13の処理で特定した仮想マシン3が動作している物理マシン2を特定する。そして、情報生成部114は、例えば、第2履歴情報131bのうち、特定した物理マシン2と、S13の処理で特定した仮想マシン3とに対応する情報を参照し、S13の処理で特定した仮想マシン3の過去における移動所要時間の特定を行う。
【0100】
その後、情報生成部114は、S21の処理で特定した移動所要時間の同一の時間帯ごとの割合を示す情報を移動時間情報133として生成する(S22)。以下、移動時間情報133の具体例について説明を行う。
【0101】
[移動時間情報の具体例]
図21(B)は、移動時間情報133の具体例を説明する図である。
【0102】
図21(B)に示す移動時間情報133は、移動時間情報133に含まれる各情報を識別する「項番」と、移動所要時間の範囲が記憶される「移動所要時間帯」と、「移動所要時間帯」に記憶された情報の全体に対する割合が記憶される「割合」とを項目として有する。
【0103】
具体的に、
図21(B)に示す移動時間情報133において、「項番」が「1」である情報には、「移動所要時間帯」として「0:30~1:00」が記憶され、「割合」として「6(%)」が記憶されている。また、
図21(B)に示す移動時間情報133において、「項番」が「2」である情報には、「移動所要時間帯」として「1:00~1:30」が記憶され、「割合」として「11(%)」が記憶されている。
図21(B)に含まれる他の情報についての説明は省略する。
【0104】
図12に戻り、情報生成部114は、S22の処理で生成した移動時間情報133に情報が含まれる割合のうち、最も大きい割合に対応する時間帯の中央値を第2基準時間として特定する(S23)。以下、S23の処理の具体例について説明を行う。
【0105】
[S23の処理の具体例]
図22(B)は、移動時間情報133を示すグラフの具体例を説明する図である。
【0106】
図21(B)に移動時間情報133において、最も大きい割合に対応する時間帯(移動所要時間帯)は、「2:00~2:30」である。そのため、情報生成部114は、この場合、
図22(B)に示すように、第2基準時間として、2時間から2時間30分までの中央値である2時間15分を特定する。
【0107】
図12に戻り、情報生成部114は、第3履歴情報131cを記憶した情報格納領域130を参照し、S11の処理で発生を検知した障害が過去に発生した際の復旧所要時間と、S11の処理で発生した障害が過去に発生した際に予測された復旧所要時間の予測時間との時間差をそれぞれ特定する(S24)。
【0108】
具体的に、情報生成部114は、S13の処理で特定した仮想マシン3が動作している物理マシン2を特定する。そして、情報生成部114は、第3履歴情報131cのうち、特定した物理マシン2と、S13の処理で特定した仮想マシン3とに対応する情報を参照するとともに、S11の処理で発生を検知した障害が過去に発生した際の復旧所要時間と、S11の処理で発生した障害が過去に発生した際に予測された復旧所要時間の予測時間との時間差の特定を行う。
【0109】
その後、情報生成部114は、S24の処理で特定した時間差の同一の時間差帯ごとの割合を示す復旧時間情報134を生成する(S25)。以下、復旧時間情報134の具体例について説明を行う。
【0110】
[復旧時間情報の具体例]
図21(C)は、復旧時間情報134の具体例を説明する図である。
【0111】
図21(C)に示す復旧時間情報134は、復旧時間情報134に含まれる各情報を識別する「項番」と、時間差の範囲が記憶される「時間差帯」と、「時間差帯」に記憶された情報の全体に対する割合が記憶される「割合」とを項目として有する。
【0112】
具体的に、
図21(C)に示す復旧時間情報134において、「項番」が「1」である情報には、「時間差帯」として「-0:45~ -0:30」が記憶され、「割合」として「5(%)」が記憶されている。また、
図21(C)に示す移動時間情報133において、「項番」が「2」である情報には、「時間差帯」として「-0:30~ -0:15」が記憶され、「割合」として「12(%)」が記憶されている。
図21(C)に含まれる他の情報についての説明は省略する。
【0113】
図12に戻り、情報生成部114は、S25の処理で生成した復旧時間情報134に情報が含まれる割合のうち、最も大きい割合に対応する時間差帯の中央値を特定する(S26)。以下、S26の処理の具体例について説明を行う。
【0114】
[S26の処理の具体例]
図22(C)は、復旧時間情報134を示すグラフの具体例を説明する図である。
【0115】
図21(C)に復旧時間情報134において、最も大きい割合に対応する時間差帯は、「0:00~0:15」である。そのため、情報生成部114は、この場合、
図22(C)に示すように、S25の処理で生成した復旧時間情報134に情報が含まれる割合のうち、最も大きい割合に対応する時間差帯の中央値として、0分から15分までの中央値である7分30秒を特定する。
【0116】
図13に戻り、情報生成部114は、第4履歴情報131dを記憶した情報格納領域130を参照し、例えば、S13の処理で特定した仮想マシン3が動作する物理マシン2の過去における物理リソースの追加所要時間をそれぞれ特定する(S31)。
【0117】
具体的に、情報生成部114は、S13の処理で特定した仮想マシン3が動作している物理マシン2を特定する。そして、情報生成部114は、第4履歴情報131dのうち、特定した物理マシン2と、S13の処理で特定した仮想マシン3とに対応する情報を参照し、S13の処理で特定した仮想マシン3が動作する物理マシン2の過去における物理リソースの追加所要時間の特定を行う。
【0118】
その後、情報生成部114は、S31の処理で特定した追加所要時間の同一の時間帯ごとの割合を示す情報を追加時間情報135として生成する(S32)。以下、追加時間情報135の具体例について説明を行う。
【0119】
[追加時間情報の具体例]
図21(D)は、追加時間情報135の具体例を説明する図である。
【0120】
図21(D)に示す追加時間情報135は、追加時間情報135に含まれる各情報を識別する「項番」と、追加所要時間の範囲が記憶される「追加所要時間帯」と、「追加所要時間帯」に記憶された情報の全体に対する割合が記憶される「割合」とを項目として有する。
【0121】
具体的に、
図21(D)に示す追加時間情報135において、「項番」が「1」である情報には、「追加所要時間帯」として「0:00~0:05」が記憶され、「割合」として「2(%)」が記憶されている。また、
図21(D)に示す追加時間情報135において、「項番」が「2」である情報には、「追加所要時間帯」として「0:05~0:10」が記憶され、「割合」として「15(%)」が記憶されている。
図21(D)に含まれる他の情報についての説明は省略する。
【0122】
図13に戻り、情報生成部114は、S32の処理で生成した追加時間情報135に情報が含まれる割合のうち、最も大きい割合に対応する時間帯の中央値を第4基準時間として特定する(S33)。以下、S33の処理の具体例について説明を行う。
【0123】
[S33の処理の具体例]
図22(D)は、追加時間情報135を示すグラフの具体例を説明する図である。
【0124】
図21(D)に示す追加時間情報135において、最も大きい割合に対応する時間帯(追加所要時間帯)は、「0:10~0:15」である。そのため、情報生成部114は、この場合、
図22(D)に示すように、第4基準時間として、10分から15分までの中央値である12分30秒を特定する。
【0125】
図13に戻り、情報生成部114は、S13の処理で特定した仮想マシン3の前回の稼働開始時刻から現在時刻までの経過時間を算出する(S34)。そして、情報生成部114は、S15の処理で生成した稼働間隔情報132に含まれる各時間間隔から、S34の処理で算出した経過時間を減算することにより、S15の処理で生成した稼働間隔情報132から変換後稼働間隔情報132aを生成する(S35)。
【0126】
すなわち、例えば、
図22(B)に示す移動時間情報133を示すグラフにおける横軸の原点が現在時刻に対応しているのに対し、
図22(A)に示す稼働間隔情報132を示すグラフにおける横軸の原点は、S13の処理で特定した仮想マシン3の前回の稼働開始時刻に対応している。そのため、情報生成部114は、稼働間隔情報132を示すグラフにおける横軸の原点を現在時刻に対応させた変換後稼働間隔情報132aの生成を行う。これにより、情報処理装置1は、変換後稼働間隔情報132aを示すグラフと、移動時間情報133を示すグラフ等との比較を行うことが可能になる。以下、S35の処理において生成された変換後稼働間隔情報132aの具体例について説明を行う。
【0127】
[変換後稼働間隔情報の具体例]
図23は、変換後稼働間隔情報132aの具体例を説明する図である。また、
図24は、変換後稼働間隔情報132aを示すグラフの具体例を説明する図である。
【0128】
図23に示す変換後稼働間隔情報132aは、変換後稼働間隔情報132aに含まれる各情報を識別する「項番」と、次の稼働開始時刻までの時間が記憶される「稼働開始所要時間帯」と、「稼働開始所要時間帯」に記憶された情報の全体に対する割合が記憶される「割合」とを項目として有する。
【0129】
具体的に、例えば、S34の処理において算出した経過時間が1時間である場合、情報生成部114は、
図24に示すように、
図21(A)で説明した稼働間隔情報132の「時間間隔帯」に記憶された時間から「1:00」を減算した時間を、「稼働開始所要時間帯」に記憶する。
【0130】
そのため、この場合、変換後稼働間隔情報132aを示すグラフは、
図24に示すように、
図22(A)で説明したグラフと同じ形状になる。また、変換後稼働間隔情報132aを示すグラフでは、この場合、
図24に示すように、
図22(A)で説明したグラフにおける最も大きい割合に対応する時間である3時間22分30秒から1時間を減算した2時間22分30秒が、最も大きい割合に対応する時間になる。
【0131】
図13に戻り、情報生成部114は、S35の処理で生成した変換後稼働間隔情報132aに含まれる時間のうち、最も大きい割合に対応する時間帯の中央値を第1基準時間として特定する(S36)。
【0132】
具体的に、情報生成部114は、例えば、
図23に示すように、S35の処理で生成した変換後稼働間隔情報132aに情報が含まれる割合のうち、最も大きい割合に対応する時間帯である2時間15分から2時間30分までの中央値である2時間22分30秒を、第1基準時間として特定する。
【0133】
続いて、情報生成部114は、
図14に示すように、S11の処理で発生を検知した障害の復旧所要時間の予測時間(以下、第3基準時間とも呼ぶ)が入力されているか否かを判定する(S41)。
【0134】
その結果、第3基準時間の入力が検知されていないと判定した場合(S41のNO)、情報生成部114は、第3基準時間の入力を検知するまで待機する。
【0135】
そして、第3基準時間の入力を検知した場合(S41のYES)、情報生成部114は、S26の処理で特定した時間差を、S41の処理で入力を検知した第3基準時間に対応させることにより、S25の処理で生成した復旧時間情報134から変換後復旧時間情報134aを生成する(S42)。
【0136】
すなわち、情報生成部114は、移動時間情報133を示すグラフ等との比較が可能になるように、復旧時間情報134から変換後復旧時間情報134aの生成を行う。以下、S42の処理において生成された変換後復旧時間情報134aの具体例について説明を行う。
【0137】
[変換後復旧時間情報の具体例]
図25は、変換後復旧時間情報134aの具体例を説明する図である。また、
図26は、変換後復旧時間情報134aを示すグラフの具体例を説明する図である。
【0138】
図25に示す変換後復旧時間情報134aは、変換後復旧時間情報134aに含まれる各情報を識別する「項番」と、復旧所要時間が記憶される「復旧所要時間」と、「復旧所要時間」に記憶された情報の全体に対する割合が記憶される「割合」とを項目として有する。
【0139】
具体的に、例えば、S41の処理において入力を検知した第3基準時間が1時間30分である場合、情報生成部114は、
図26に示すように、
図21(C)で説明した復旧時間情報134の「時間差帯」に記憶された時間に「1:30」を加算した時間を、「復旧所要時間」に記憶する。
【0140】
そのため、この場合、変換後復旧時間情報134aを示すグラフは、
図26に示すように、
図22(C)で説明したグラフと同じ形状になる。また、変換後復旧時間情報134aを示すグラフでは、この場合、
図26に示すように、
図22(C)で説明したグラフにおける最も大きい割合に対応する時間である7分30秒に1時間30分を加算した1時間37分30秒が、最も大きい割合に対応する時間になる。
【0141】
図14に戻り、情報生成部114は、S36の処理で特定した第1基準時間と、S41の処理で入力を検知した第3基準時間とを比較する(S43)。
【0142】
その結果、第1基準時間が第3基準時間よりも大きいと判定した場合(S43のYES)、情報生成部114は、S35の処理で生成した変換後稼働間隔情報132aと、S42の処理で生成した変換後復旧時間情報134aとから、S13の処理で特定した仮想マシン3の次の稼働開始時刻までの時間が、S11の処理で発生を検知した障害の復旧所要時間よりも短くなる第1確率を算出する(S44)。
【0143】
具体的に、情報生成部114は、例えば、
図27(A)に示すように、S35の処理で生成した変換後稼働間隔情報132aを示すグラフ(
図24で説明したグラフ)と、S42の処理で生成した変換後復旧時間情報134aを示すグラフ(
図26で説明したグラフ)とを、それぞれのグラフにおける最大値が等しくなるように変換してから同一平面上に表現する。そして、情報生成部114は、例えば、変換後稼働間隔情報132aを示すグラフと横軸とに囲まれた面積のうち、変換後稼働間隔情報132aを示すグラフと変換後復旧時間情報134aを示すグラフとの重複部分(
図27(A)の斜線部分)の面積の割合を第1確率として算出する。
【0144】
続いて、情報処理装置1の移動判定部115は、S44の処理で算出した第1確率と第1閾値(例えば、事業者によって予め定められた閾値)とを比較する(S45)。
【0145】
すなわち、第1確率は、現在発生している障害の復旧が、S13の処理で特定した仮想マシン3の次の稼働開始時刻になっても終わらない確率である。そのため、移動判定部115は、第1基準時間が第3基準時間よりも大きい場合であって第1確率が第1閾値よりも大きい場合、現在発生している障害の復旧が、S13の処理で特定した仮想マシン3の次の稼働開始時刻になっても終わらない確率が大きいと推測する。したがって、移動判定部115は、この場合、S13の処理で特定した仮想マシン3について、異なる物理マシン2への移動等の対処を行う必要があるものと判定する。
【0146】
なお、移動判定部115は、S45の処理において、第1確率と第1閾値との比較に代えて、変換後稼働間隔情報132aを示すグラフと変換後復旧時間情報134aを示すグラフとの重複部分(
図27(A)の網掛け部分)の面積と所定の閾値との比較を行うものであってもよい。
【0147】
そして、第1確率が第1閾値よりも大きい場合(S45のYES)、情報生成部114は、S36の処理で特定した第1基準時間と、S23の処理で特定した第2基準時間とを比較する(S46)。
【0148】
なお、情報生成部114は、第1基準時間が第3基準時間よりも大きくない場合も同様に(S43のNO)、S46の処理を行う。
【0149】
すなわち、移動判定部115は、第1基準時間が第3基準時間よりも大きくない場合、現在発生している障害の復旧が、S13の処理で特定した仮想マシン3の次の稼働開始時刻になっても終わらない確率が大きいと推測する。そのため、移動判定部115は、この場合も同様に、S13の処理で特定した仮想マシン3について、異なる物理マシン2への移動等の対処を行う必要があるものと判定する。
【0150】
そして、第1基準時間が第2基準時間よりも大きいと判定された場合(S46のYES)、情報生成部114は、
図15に示すように、S35の処理で生成した変換後稼働間隔情報132aと、S22の処理で生成した移動時間情報133とから、S13の処理で特定した仮想マシン3の次の稼働開始時刻までの時間が、S13の処理で特定した仮想マシン3の移動をこれから開始した場合における移動所要時間よりも短くなる第2確率を算出する(S51)。
【0151】
具体的に、情報生成部114は、
図27(B)に示すように、S35の処理で生成した変換後稼働間隔情報132aを示すグラフ(
図24で説明したグラフ)と、S22の処理で生成した移動時間情報133を示すグラフ(
図22(B)で説明したグラフ)とを、それぞれのグラフにおける最大値が等しくなるように変換してから同一平面上に表現する。そして、情報生成部114は、例えば、変換後稼働間隔情報132aを示すグラフと横軸とに囲まれた面積のうち、変換後稼働間隔情報132aを示すグラフと移動時間情報133を示すグラフとの重複部分(
図27(B)の網掛け部分)の面積の割合を第2確率として算出する。
【0152】
そして、移動判定部115は、S51の処理で算出した第2確率と第2閾値(例えば、事業者によって予め定められた閾値)とを比較する(S52)。
【0153】
なお、移動判定部115は、S52の処理において、第2確率と第2閾値との比較に代えて、変換後稼働間隔情報132aを示すグラフと移動時間情報133を示すグラフとの重複部分(
図27(B)の斜線部分)の面積と所定の閾値との比較を行うものであってもよい。
【0154】
その結果、第2確率が第2閾値よりも大きくない場合(S52のNO)、情報生成部114は、S13の処理で特定した仮想マシン3を異なる物理マシン2に移動させることを決定する(S53)。
【0155】
すなわち、第2確率は、S13の処理で特定した仮想マシン3の移動をこれから開始した場合に、仮想マシン3の移動が次の稼働開始時刻になっても終わらない確率である。そのため、移動判定部115は、第2確率が第2閾値よりも大きくない場合、S13の処理で特定した仮想マシン3の移動をこれから開始した場合において仮想マシン3の移動が次の稼働開始時刻になっても終わらない確率が小さいと推測する。したがって、移動判定部115は、この場合、S13の処理で特定した仮想マシン3の移動を行うことの決定を行う。
【0156】
一方、第2確率が第2閾値よりも大きい場合(S52のYES)、情報生成部114は、S36の処理で特定した第1基準時間と、S33の処理で特定した第4基準時間とを比較する(S54)。また、情報生成部114は、第1基準時間が第2基準時間よりも大きくない場合も同様に(S46のNO)、S54の処理を行う。
【0157】
すなわち、移動判定部115は、第1基準時間が第2基準時間よりも大きい場合であって第2確率が第2閾値よりも大きい場合、または、第1基準時間が第2基準時間よりも大きくない場合、S13の処理で特定した仮想マシン3の移動が次の稼働開始時刻になっても終わらない確率が大きいと推測する。そのため、移動判定部115は、この場合、S13の処理で特定した仮想マシン3を異なる物理マシン2に対して移動させる代わりに、S13の処理で特定した仮想マシン3に物理リソースを追加するか否かの判定を行う。
【0158】
そして、第1基準時間が第4基準時間よりも大きい場合(S54のYES)、移動判定部115は、S13の処理で特定した仮想マシン3に物理リソースを追加することを決定する(S55)。
【0159】
一方、第1基準時間が第4基準時間よりも大きくない場合(S54のNO)、移動判定部115は、S55の処理を行わない。
【0160】
すなわち、移動判定部115は、この場合、S13の処理で特定した仮想マシン3の移動だけでなく、S13の処理で特定した仮想マシン3に対する物理リソースの追加についても行うことができないと判定する。
【0161】
なお、情報生成部114は、第1基準時間が第4基準時間よりも大きい場合(S54のYES)、S35の処理で生成した変換後稼働間隔情報132aと、S32の処理で生成した追加時間情報135とから、S13の処理で特定した仮想マシン3の次の稼働開始時刻までの時間が、S13の処理で特定した仮想マシン3の物理リソースの追加をこれから開始した場合における追加所要時間よりも短くなる確率(以下、第3確率とも呼ぶ)を算出するものであってもよい。
【0162】
そして、第3確率が第3閾値(例えば、事業者によって予め定められた閾値)よりも大きくない場合、移動判定部115は、物理リソースの追加が次の稼働開始時刻になっても終わらない確率が小さいと推測し、S55の処理を行うものであってもよい。一方、第3確率が第3閾値よりも大きい場合、物理マシン2の物理リソースの追加が次の稼働開始時刻になっても終わらない確率が大きいと推測し、S55の処理を行わないものであってもよい。
【0163】
その後、移動判定部115は、
図16に示すように、S12の処理において複数台の仮想マシン3が抽出されたか否かを判定する(S61)。
【0164】
その結果、S12の処理において1台の仮想マシン3のみが抽出されている場合(S61のNO)、情報処理装置1は、VM移動判定処理を終了する。
【0165】
一方、S12の処理において複数台の仮想マシン3が抽出されている場合(S61のYES)、移動判定部115は、S13の処理において抽出した仮想マシン3について、S53の処理が行われたか否かを判定する(S62)。
【0166】
そして、S53の処理が行われたと判定した場合(S62のYES)、移動判定部115は、S51の処理で算出した第2確率と、S13の処理で特定した仮想マシン3の重要度を示す重要度情報136とから、S13の処理で特定した仮想マシン3の優先度を示す優先度情報137を算出する(S63)。
【0167】
具体的に、移動判定部115は、S51の処理で算出した第2確率と、S13の処理で特定した仮想マシン3の重要度情報136が示す値とを乗算することにより、S13の処理で特定した仮想マシン3の優先度情報137を算出するものであってよい。
【0168】
なお、重要度情報136は、事業者によって予め定められた情報であり、例えば、S13の処理で特定した仮想マシン3を実行することによるサービスの提供を受ける利用者ごとに定められた情報であってよい。また、重要度情報136は、例えば、サービスの提供を受ける利用者の利用金額や業種等によって定められるものであってよい。さらに、重要度情報136は、S13の処理で特定した仮想マシン3において動作するアプリケーションの数等によって定められるものであってよい。
【0169】
一方、S53の処理が行われていないと判定した場合(S62のNO)、移動判定部115は、S63の処理を行わない。
【0170】
その後、情報生成部114は、S12の処理において抽出された全ての仮想マシン3が、S13の処理において特定済であるか否かを判定する(S64)。
【0171】
その結果、全ての仮想マシン3が特定済でないと判定した場合(S64のNO)、情報処理装置1は、S13以降の処理を再度行う。
【0172】
一方、全ての仮想マシン3が特定済であると判定した場合(S64のYES)、移動判定部115は、S12の処理で抽出した仮想マシン3を、各仮想マシン3が動作する物理マシン2ごとにグループ分けする(S65)。
【0173】
そして、移動判定部115は、S64の処理でグループ分けした仮想マシン3のグループごとに、S12の処理で抽出した各仮想マシン3の対処順序を決定する処理(以下、対処順序決定処理とも呼ぶ)を行う(S66)。
【0174】
すなわち、情報処理装置1は、S64の処理において異なるグループにグループ分けされた仮想マシン3(異なる物理マシン2で動作する仮想マシン3)のそれぞれについて、同時に並行して対処を行うことが可能である。そのため、移動判定部115は、S64の処理でグループ分けした仮想マシン3のグループごとに、対処順序決定処理を行う。
【0175】
その後、情報処理装置1は、VM移動判定処理を終了する。以下、S64の処理において全ての仮想マシン3が特定済であると判定された際の重要度情報136及び優先度情報137の具体例について説明を行う。
【0176】
[重要度情報及び優先度情報の具体例(1)]
図28及び
図29は、重要度情報136及び優先度情報137の具体例を説明する図である。
【0177】
図28等に示す情報は、各情報を識別する「項番」と、各仮想マシン3の識別情報が記憶される「仮想マシン」と、S53またはS55の処理で決定した対処の内容が記憶される「対処」と、S51の処理で算出した第2確率が記憶される「第2確率」とを項目として有する。「対処」には、S53の処理で決定される「移動」、または、S55の処理で決定される「物理リソースの追加」が記憶される。また、
図28等に示す情報は、重要度情報136が記憶される「重要度」と、優先度情報137が記憶される「優先度」と、各仮想マシン3が動作する物理マシン2の識別情報が記憶される「物理マシン」とを項目として有する。なお、「対処」に「物理リソースの追加」が記憶されている場合、「第2確率」及び「優先度」には、情報が記憶されていないことを示す「-」が記憶される。
【0178】
具体的に、
図28に示す情報において、「項番」が「1」である情報には、「仮想マシン」として「VM1」が記憶され、「対処」として「移動」が記憶され、「第2確率」として「0.4」が記憶され、「重要度」として「1」が記憶され、「優先度」として「0.4」が記憶され、「物理マシン」として「A」が記憶されている。
【0179】
また、
図28に示す情報において、「項番」が「3」である情報には、「仮想マシン」として「VM3」が記憶され、「対処」として「物理リソース追加」が記憶され、「第2確率」として「-」が記憶され、「重要度」として「3」が記憶され、「優先度」として「-」が記憶され、「物理マシン」として「A」が記憶されている。
図28に含まれる他の情報についての説明は省略する。
【0180】
[対処順序決定処理(1)]
次に、対処順序決定処理の具体例について説明を行う。
図17は、対処順序決定処理の具体例を説明するフローチャート図である。以下、1台の物理マシン2に対応するグループに含まれる仮想マシン3に対する対処順序決定処理について説明を行う。
【0181】
移動判定部115は、
図17に示すように、S12の処理で抽出した仮想マシン3のうち、S63の処理で算出した優先度情報137が示す値が最も高い仮想マシン3を特定する(S71)。
【0182】
具体的に、移動判定部115は、例えば、
図28で説明した情報を参照し、「優先度」に記憶された情報が「0.6」である情報の「仮想マシン」に記憶された「VM2」を特定する。
【0183】
なお、S12の処理で抽出した仮想マシン3に、異なる物理マシン2に移動することが決定している仮想マシン3(S53の処理を行った仮想マシン3)が存在しない場合、移動判定部115は、物理リソースを追加することが決定している仮想マシン3(S55の処理を行った仮想マシン3)のうち、情報格納領域130に記憶された重要度情報136が示す値が最も大きい仮想マシン3を特定するものであってよい。
【0184】
そして、移動判定部115は、S63の処理で算出した優先度情報137(S75の処理で優先度情報137の算出が行われている場合には最後に行われたS75の処理で算出した優先度情報137)を参照し、S71の処理で特定した仮想マシン3について対処を行う(S72)。
【0185】
具体的に、移動判定部115は、S63の処理等で算出した優先度情報137を参照し、S71の処理で特定した仮想マシン3を示す情報が「仮想マシン」に設定された情報の「対処」に設定された内容に対応する対処を行う。
【0186】
なお、移動判定部115は、この場合、例えば、S71の処理で特定した仮想マシン3の移動、または、S71の処理で特定した仮想マシン3に物理リソースの追加を自発的に行うものであってよい。
【0187】
また、移動判定部115は、例えば、S71の処理で特定した仮想マシン3の移動、または、S71の処理で特定した仮想マシン3に物理リソースの追加を行う旨を操作端末5の出力画面(図示しない)に出力するものであってもよい。そして、事業者は、例えば、操作端末5の出力画面を閲覧し、S71の処理で特定した仮想マシン3の移動、または、S71の処理で特定した仮想マシン3に物理リソースの追加を行うものであってもよい。
【0188】
その後、移動判定部115は、S71の処理で特定した仮想マシン3についての対処が完了するまで待機する(S73のNO)。
【0189】
そして、S71の処理で特定した仮想マシン3についての対処が完了した場合(S73のYES)、移動判定部115は、S12の処理において抽出された全ての仮想マシン3についての対処が完了しているか否かを判定する(S74)。
【0190】
その結果、全ての仮想マシン3についての対処が完了していると判定した場合(S74のYES)、情報処理装置1は、対処順序決定処理を終了する。
【0191】
一方、全ての仮想マシン3についての対処が完了していないと判定した場合(S74のNO)、移動判定部115は、S12の処理で抽出した仮想マシン3のうち、対処がまだ行われていない仮想マシン3のそれぞれについて、優先度情報137の算出を再度行う(S75)。そして、移動判定部115は、S71以降の処理を再度行う。
【0192】
すなわち、S71の処理で特定した仮想マシン3の移動が行われた場合、各物理マシン2で動作する仮想マシン3の台数が変化する。また、変換後稼働間隔情報132aを再度生成した場合、再度生成した変換後稼働間隔情報132aに含まれる稼働開始所要時間には、
図23で説明した変換後稼働間隔情報132aに含まれる稼働開始所要時間のそれぞれから、S71の処理で特定した仮想マシン3についての対処に要した時間を減算した時間が記憶されることになる。
【0193】
そのため、移動判定部115は、S12の処理で抽出した仮想マシン3のうち、まだ対処が行われていない仮想マシン3のそれぞれについて、S71の処理で特定した仮想マシン3について対処が行われた後の状況に対応する優先度情報137を再度算出する。具体的に、移動判定部115は、S71の処理で特定した仮想マシン3の移動が行われた後、S12の処理で抽出された仮想マシン3のうち、まだ移動が行われていない仮想マシン3のそれぞれについて、現在の状況(各仮想マシン3と同じ物理マシン2で動作している仮想マシン3の台数等)に対応する履歴情報131(第1履歴情報131a、第2履歴情報131b、第3履歴情報131c及び第4履歴情報131d)を参照してS13からS64までの処理を再度行うことにより、優先度情報137の算出を再度行う。そして、移動判定部115は、再度算出した優先度情報137を参照することによって、次に対処を行う仮想マシン3の特定を行う。
【0194】
これにより、情報処理装置1は、発生した障害がサービスに与える影響を抑えながら、各仮想マシン3についての対処を迅速に行うことが可能になる。また、移動判定部115は、次の稼働開始時刻までに稼働しない仮想マシン3の障害の発生を精度良く抑制することが可能になる。
【0195】
なお、優先度情報137の算出を再度行う場合、例えば、
図21(A)で説明した稼働間隔情報132及び
図21(C)で説明した復旧時間情報134については、優先度情報137の算出を前回行った時から変化していないと判断できる。そのため、情報処理装置1は、優先度情報137の算出を再度行う場合、S14からS16の処理と、S24からS26の処理とを行わず、S16及びS26の処理を前回行った際に算出した結果を用いるものであってもよい。
【0196】
また、例えば、前回行われたS72の処理において、仮想マシン3に移動が行われなかった場合、
図21(B)で説明した移動時間情報133については、優先度情報137の算出を前回行った時から変化していないと判断できる。そのため、情報処理装置1は、この場合、S21からS23の処理を行わず、S23の処理を前回行った際に算出した結果を用いるものであってもよい。
【0197】
さらに、例えば、前回行われたS72の処理において、物理リソースの追加が行われなかった場合、
図21(D)で説明した追加時間情報135については、優先度情報137の算出を前回行った時から変化していないと判断できる。そのため、情報処理装置1は、この場合、S31からS33の処理を行わず、S33の処理を前回行った際に算出した結果を用いるものであってもよい。以下、優先度情報137を再度算出した後の重要度情報136及び優先度情報137の具体例について説明を行う。
【0198】
[重要度情報及び優先度情報の具体例(2)]
図29は、優先度情報137を再度算出した後の重要度情報136及び優先度情報137の具体例について説明を行う。
【0199】
図29に示す情報において、「項番」が「1」である情報には、
図28で説明した場合と同様に、「仮想マシン」として「VM1」が記憶され、「対処」として「移動」が記憶され、「第2確率」として「0.4」が記憶され、「重要度」として「1」が記憶され、「優先度」として「0.4」が記憶され、「物理マシン」として「A」が記憶されている。
【0200】
一方、
図29に示す情報において、「項番」が「3」である情報には、
図28で説明した場合と異なり、「仮想マシン」として「VM3」が記憶され、「対処」として「移動」が記憶され、「第2確率」として「0.4」が記憶され、「重要度」として「3」が記憶され、「優先度」として「1.2」が記憶され、「物理マシン」として「A」が記憶されている。
【0201】
すなわち、
図29に示す例は、識別情報が「VM2」である仮想マシン3(S71の処理で特定した仮想マシン3)の移動を行った結果、識別情報が「VM3」である仮想マシン3の対処の内容が、物理リソースの追加から仮想マシン3の移動に変更された場合を示している。
【0202】
なお、移動判定部115は、S71及びS72の処理において、S63の処理で算出した優先度情報137が高い仮想マシン3から順に対処を行うものであってもよい。すなわち、移動判定部115は、優先度情報137の算出(S75の処理)を繰り返し行うことなく、最初に算出された優先度情報137の内容に基づいて対処を行う仮想マシン3の順序を決定するものであってもよい。
【0203】
[対処順序決定処理(2)]
次に、対処順序決定処理の他の具体例について説明を行う。
図18及び
図19は、対処順序決定処理の他の具体例を説明するフローチャート図である。以下、1台の物理マシン2に対応するグループに含まれる仮想マシン3に対する対処順序決定処理について説明を行う。
【0204】
対処順序決定処理の他の具体例において、移動判定部115は、
図17で説明した対処順序決定処理と異なり、仮想マシン3の対処順序のそれぞれに従った場合に、各仮想マシン3に対して行うことができる対処を予め推測する。そして、移動判定部115は、推測を行った対処順序の中から最適解(例えば、最も多くの仮想マシン3を移動することができる対処順序)を特定し、特定した対処順序に従って各仮想マシン3に対する対処を行う。以下、対処順序決定処理の他の具体例の詳細について説明を行う。
【0205】
移動判定部115は、
図18に示すように、S12の処理で抽出した仮想マシン3の対処順序のうちの1つを特定する(S81)。
【0206】
具体的に、移動判定部115は、例えば、識別情報が「VM1」である仮想マシン3の対処順序が1番であり、識別情報が「VM2」である仮想マシン3の対処順序が2番であり、識別情報が「VM3」である仮想マシン3の対処順序が3番である対処順序を特定する。
【0207】
そして、移動判定部115は、S81の処理で特定した対処順序に含まれる仮想マシン3のうち、S53またはS55の処理において対処を行うと仮定した仮想マシン3であって、S84の処理で実際に行う対処が決定していない仮想マシン3を特定する(S82)。
【0208】
具体的に、S53またはS55の処理において対処を行うと仮定した仮想マシン3であって、S84の処理で実際に行う対処が決定している仮想マシン3がまだ存在しない場合、移動判定部115は、識別情報が「VM1」である仮想マシン3、識別情報が「VM2」である仮想マシン3及び識別情報が「VM3」である仮想マシン3の全てをそれぞれ特定する。
【0209】
続いて、移動判定部115は、S82の処理で特定した仮想マシン3のうち、次に対処を決定する仮想マシン3を特定する(S83)。
【0210】
具体的に、移動判定部115は、S82の処理において、識別情報が「VM1」である仮想マシン3、識別情報が「VM2」である仮想マシン3及び識別情報が「VM3」である仮想マシン3をそれぞれ特定した場合、識別情報が「VM1」である仮想マシン3(対処順序が1番である仮想マシン3)を特定する。
【0211】
続いて、移動判定部115は、S63の処理で算出した優先度情報137(S75の処理で優先度情報137の算出が行われている場合には最後に行われたS75の処理で算出した優先度情報137)を参照し、S83の処理で特定した仮想マシン3についての対処を決定する(S84)。
【0212】
具体的に、
図28で説明した情報において、「仮想マシン」が「VM1」である情報(「項番」が「1」である情報の「対処」には、「移動」が記憶されている。そのため、移動判定部115は、この場合、識別情報が「VM1」である仮想マシン3についての対処を、異なる物理マシン2への移動に決定する。
【0213】
その後、移動判定部115は、S81の処理で特定した対処順序に含まれる仮想マシン3のうち、S53またはS55の処理で対処を行うと仮定した仮想マシン3であって、S84の処理で実際に行う対処が決定していない仮想マシン3のそれぞれについて、優先度情報137の算出を再度行う(S85)。
【0214】
すなわち、移動判定部115は、この場合、S75の処理で説明した場合と同様に、S13からS64までの処理を再度行うことにより、優先度情報137の算出を再度行う。
【0215】
具体的に、例えば、S84の処理において、識別情報が「VM1」である仮想マシン3についての対処を決定した場合、識別情報が「VM2」である仮想マシン3と識別情報が「VM3」である仮想マシン3とのそれぞれについて、識別情報が「VM1」である仮想マシン3を異なる物理マシン2に移動した後における優先度情報137の算出を行う。
【0216】
そして、移動判定部115は、S81の処理で特定した対処順序に含まれる仮想マシン3の全てについて、実際に行う対処の決定を行ったか否かを判定する(S86)。
【0217】
その結果、S81の処理で特定した対処順序に含まれる仮想マシン3の全てについて、実際に行う対処の決定を行っていないと判定した場合(S86のNO)、移動判定部115は、S82以降の処理を再度行う。
【0218】
一方、S81の処理で特定した対処順序に含まれる仮想マシン3の全てについて、実際に行う対処の決定を行ったと判定した場合(S86のYES)、移動判定部115は、
図19に示すように、S12の処理で抽出した仮想マシン3の対処順序の全てについて、S81の処理において特定したか否かを判定する(S91)。
【0219】
そして、S12の処理で抽出した仮想マシン3の対処順序の全てについて特定していないと判定した場合(S91のNO)、移動判定部115は、S81以降の処理を再度行う。
【0220】
一方、S12の処理で抽出した仮想マシン3の対処順序の全てについて特定したと判定した場合(S91のYES)、移動判定部115は、例えば、S12の処理で抽出した仮想マシン3の順序ごとに、異なる物理マシン2に移動させることが可能である仮想マシン3の台数を算出する(S92)。
【0221】
その後、移動判定部115は、例えば、S92の処理で算出した台数が最も多い対処順序に従って、S12の処理で抽出した仮想マシン3のそれぞれについて対処を行う(S93)。
【0222】
具体的に、移動判定部115は、S92の処理で算出した台数が最も多い対処順序についてS84の処理で決定した対処を、各仮想マシン3に対して行う。
【0223】
すなわち、移動判定部115は、各仮想マシン3について考えられる対処順序ごとに、各仮想マシン3に対して行うことができる対処の内容を各仮想マシン3に対する対処を実際に行うことなく推測する。そして、移動判定部115は、各仮想マシン3について考えられる対処順序のうち、所定の条件を満たすことができる対処順序(例えば、異なる物理マシン2に移動させることができる仮想マシン3の台数が最も多い対処順序)を特定する。その後、移動判定部115は、特定した対処順序に従って各仮想マシン3の対処を行う。
【0224】
これにより、情報処理装置1は、各仮想マシン3に対して、障害の発生状況等に応じた対処を柔軟に行うことが可能になる。また、移動判定部115は、
図17で説明した対処順序決定処理と同様に、次の稼働開始時刻までに稼働しない仮想マシン3の障害の発生を精度良く抑制することが可能になる。
【0225】
なお、移動判定部115は、例えば、異なる物理マシン2への移動と物理マシン2への物理リソースの追加との両方を行うことができない仮想マシン3の台数を算出するものであってもよい。そして、移動判定部115は、例えば、異なる物理マシン2への移動と物理マシン2への物理リソースの追加との両方を行うことができない仮想マシン3の台数が最も少ない対処順序に従って、S12の処理で抽出した仮想マシン3のそれぞれについて、S53またはS55の処理で決定した対処を行うであってもよい。
【0226】
また、移動判定部115は、例えば、S12の処理で抽出した仮想マシン3のうち、重要度情報136が示す値が最も高い仮想マシン3の第1確率が最も小さくなる対処順序に従って、S12の処理で抽出した仮想マシン3のそれぞれについて、S53またはS55の処理で決定した対処を行うであってもよい。
【0227】
このように、本実施の形態における情報処理装置1は、障害の発生を検知したことに応じて、発生を検知した障害の影響が及ぶ範囲内にある仮想マシン3から稼働開始前の仮想マシン3を抽出する。そして、情報処理装置1は、履歴情報131を記憶した情報格納領域130を参照し、抽出した仮想マシン3の稼働間隔情報132と、抽出した仮想マシン3の移動時間情報133と、発生を検知した障害の復旧時間情報134とを生成する。
【0228】
その後、情報処理装置1は、生成した稼働間隔情報132、移動時間情報133及び復旧時間情報134に基づき、抽出した仮想マシン3を異なる物理マシン2に移動させるか否かを判定する。
【0229】
すなわち、情報処理装置1は、過去に発生した障害に関する情報や仮想マシン3の運用状況に関する情報である履歴情報131を参照し、抽出した仮想マシン3が次に稼働を開始する時刻の時刻と、抽出した仮想マシン3の移動をこれから行った場合に要する時間と、発生を検知した障害の復旧に要する時間との予測を行う。そして、情報処理装置1は、予測した各種情報に基づいて、次に稼働を開始するまでに異なる物理マシン2への移動を完了させることができる仮想マシン3を特定する。さらに、情報処理装置1は、特定した仮想マシン3を、異なる物理マシン2に対して移動させるべき仮想マシン3として決定する。
【0230】
これにより、情報処理装置1は、障害発生時において異なる物理マシン2に移動させる必要がある仮想マシン3を適切に決定することが可能になる。そのため、事業者は、発生した障害による影響をより抑制することが可能になる。
【0231】
なお、情報処理装置1は、S12の処理で抽出した仮想マシン3のそれぞれに対して対処を行う場合、例えば、物理リソースの追加を行うことが決定している仮想マシン3の対処よりも、異なる物理マシン2への移動を行うことが決定している仮想マシン3の対処を優先して行うものであってよい。
【0232】
また、情報処理装置1は、VM移動判定処理を行う場合において、S13の処理で抽出した仮想マシン3及びS13の処理で抽出した仮想マシン3が動作する物理マシン2に対応する履歴情報131が存在しない場合、既にある情報(例えば、条件が近い履歴情報131)を参照することによって、後続処理を行うものであってもよい。具体的に、例えば、S13の処理で抽出した仮想マシン3に対応する履歴情報131については存在しているが、S13の処理で抽出した仮想マシン3及びS13の処理で抽出した仮想マシン3が動作する物理マシン2に対応する履歴情報131が存在しない場合、情報処理装置1は、S13の処理で抽出した仮想マシン3に対応する履歴情報131を参照することによって、後続処理を行うものであってよい。
【0233】
また、情報処理装置1は、S13の処理で抽出した仮想マシン3及びS13の処理で抽出した仮想マシン3が動作する物理マシン2に対応する履歴情報131が存在しない場合、その旨を事業者に通知するものであってもよい。そして、情報処理装置1は、例えば、生成済の履歴情報131のうち、事業者が選択した履歴情報131を参照することによって、後続処理を行うものであってよい。
【0234】
さらに、例えば、物理マシン2で動作する仮想マシン3の台数ごとに履歴情報131が生成されている場合において、S13の処理で抽出した仮想マシン3と同じ物理マシン2で動作する仮想マシン3の台数に対応する履歴情報131が存在しない場合、情報処理装置1は、情報処理システム10において動作している全ての仮想マシン3の台数のうち、S13の処理で抽出した仮想マシン3と同じ物理マシン2で動作する仮想マシン3の台数の割合(以下、台数割合とも呼ぶ)を算出するものであってよい。そして、情報処理装置1は、生成済の履歴情報131のうち、算出した台数割合に近い台数割合に対応する履歴情報131を参照することによって、後続処理を行うものであってよい。
【0235】
これにより、情報処理装置1は、条件に合致した履歴情報131が生成されていない場合であっても、VM移動判定処理を適切に行うことが可能になる。
【0236】
以上の実施の形態をまとめると、以下の付記のとおりである。
【0237】
(付記1)
障害の発生を検知したことに応じて、前記障害の影響が及ぶ範囲内にある仮想マシンから稼働開始前の仮想マシンを抽出し、
仮想マシンの運用に関する履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの稼働開始時刻の時間間隔に対応する第1情報と、抽出した前記仮想マシンを障害の影響が及ぶ範囲外に移動させる場合に要する移動所要時間に対応する第2情報と、発生を検知した前記障害の復旧に要する復旧所要時間に対応する第3情報とを生成し、
生成した前記第1情報と前記第2情報と前記第3情報とに基づき、抽出した前記仮想マシンを障害の影響が及ぶ範囲外に移動させるか否かを判定する、
処理をコンピュータに実行させることを特徴とする障害対処プログラム。
【0238】
(付記2)
付記1において、
前記生成する処理では、
前記履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの過去における前記時間間隔をそれぞれ特定し、
特定した前記時間間隔の同一の時間ごとの割合を示す情報を前記第1情報として生成し、
前記履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの過去における前記移動所要時間をそれぞれ特定し、
特定した前記移動所要時間の同一の時間ごとの割合を示す情報を前記第2情報として生成し、
前記履歴情報を記憶した記憶部を参照し、前記障害が過去に発生した際の前記復旧所要時間と、前記障害が過去に発生した際に予測された前記復旧所要時間の予測時間との時間差をそれぞれ算出し、
算出した前記時間差の同一の時間ごとの割合を示す情報を前記第3情報として生成する、
ことを特徴とする障害対処プログラム。
【0239】
(付記3)
付記2において、
前記判定する処理では、
抽出した前記仮想マシンの前回の稼働開始時刻から現在時刻までの経過時間を算出し、
前記第1情報と前記第3情報とから、算出した前記経過時間を前記時間間隔から減算した時間が、特定した前記時間差と、発生を検知した前記障害について予測された前記復旧所要時間の予測時間とを加算した時間よりも短くなる第1確率を算出し、
算出した前記第1確率が閾値以上場合、前記第1情報と前記第2情報とから、算出した前記経過時間を前記時間間隔から減算した時間が、前記移動所要時間よりも短くなる第2確率を算出し、
算出した前記第2確率が閾値以下場合、抽出した前記仮想マシンを障害の影響が及ぶ範囲外に移動させることを決定する、
ことを特徴とする障害対処プログラム。
【0240】
(付記4)
付記3において、
前記生成する処理では、抽出した前記仮想マシンが複数存在する場合、前記第1情報、前記第2情報及び前記第3情報の生成を前記仮想マシンごとに行い、
前記判定する処理では、
障害の影響が及ぶ範囲外に移動させることを決定した前記仮想マシンが複数存在する場合、前記第1確率から、複数存在した前記仮想マシンのそれぞれの優先度情報を算出し、
算出した前記優先度情報に対応する値が大きい前記仮想マシンを優先して、障害の影響が及ぶ範囲外に対する移動を行うことを決定する、
ことを特徴とする障害対処プログラム。
【0241】
(付記5)
付記4において、さらに、
抽出した前記仮想マシンが複数存在する場合、障害の影響が及ぶ範囲外に前記仮想マシンの移動が完了するごとに、前記生成する処理と前記判定する処理とを再度行う、
処理をコンピュータに実行させることを特徴とする障害対処プログラム。
【0242】
(付記6)
付記4において、さらに、
抽出した前記仮想マシンが複数存在する場合、複数存在した前記仮想マシンを所定の順序に従って1台ずつ移動させたと仮定しながら、前記生成する処理と前記判定する処理とを繰り返し行うことにより、複数存在した前記仮想マシンを前記所定の順序に従って移動させる場合に、障害の影響が及ぶ範囲外に移動させることができる前記仮想マシンの台数を算出し、
算出した前記台数が閾値以上である場合、複数存在した前記仮想マシンを前記所定の順序に従って移動させることの決定を行う、
処理をコンピュータに実行させることを特徴とする障害対処プログラム。
【0243】
(付記7)
付記1において、
前記生成する処理では、前記履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンが動作する物理マシンのリソースの追加に要する追加所要時間を示す第4情報を生成し、
前記判定する処理では、抽出した前記仮想マシンを障害の影響が及ぶ範囲外に移動させないと判定した場合、生成した前記第1情報と前記第4情報とに基づき、抽出した前記仮想マシンが動作する物理マシンのリソースを追加するか否かの判定を行う、
ことを特徴とする障害対処プログラム。
【0244】
(付記8)
付記1において、
前記第1情報と前記第2情報と前記第3情報とを生成する処理では、
抽出した前記仮想マシンが動作する物理マシンを特定し、
特定した前記物理マシンで動作する仮想マシンの台数を特定し、
前記履歴情報のうち、特定した前記台数に対応する履歴情報を記憶した記憶部を参照し、前記第1情報と前記第2情報と前記第3情報とを生成する、
ことを特徴とする障害対処プログラム。
【0245】
(付記9)
障害の発生を検知したことに応じて、前記障害の影響が及ぶ範囲内にある仮想マシンから稼働開始前の仮想マシンを抽出し、
仮想マシンの運用に関する履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの稼働開始時刻の時間間隔に対応する第1情報と、抽出した前記仮想マシンを障害の影響が及ぶ範囲外に移動させる場合に要する移動所要時間に対応する第2情報と、発生を検知した前記障害の復旧に要する復旧所要時間に対応する第3情報とを生成し、
生成した前記第1情報と前記第2情報と前記第3情報とに基づき、抽出した前記仮想マシンを障害の影響が及ぶ範囲外に移動させるか否かを判定する、
ことを特徴とする障害対処方法。
【0246】
(付記10)
付記9において、
前記生成する工程では、
前記履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの過去における前記時間間隔をそれぞれ特定し、
特定した前記時間間隔の同一の時間ごとの割合を示す情報を前記第1情報として生成し、
前記履歴情報を記憶した記憶部を参照し、抽出した前記仮想マシンの過去における前記移動所要時間をそれぞれ特定し、
特定した前記移動所要時間の同一の時間ごとの割合を示す情報を前記第2情報として生成し、
前記履歴情報を記憶した記憶部を参照し、前記障害が過去に発生した際の前記復旧所要時間と、前記障害が過去に発生した際に予測された前記復旧所要時間の予測時間との時間差をそれぞれ算出し、
算出した前記時間差の同一の時間ごとの割合を示す情報を前記第3情報として生成する、
ことを特徴とする障害対処方法。
【0247】
(付記11)
付記9において、
前記判定する工程では、
抽出した前記仮想マシンの前回の稼働開始時刻から現在時刻までの経過時間を算出し、
前記第1情報と前記第3情報とから、算出した前記経過時間を前記時間間隔から減算した時間が、特定した前記時間差と、発生を検知した前記障害について予測された前記復旧所要時間の予測時間とを加算した時間よりも短くなる第1確率を算出し、
算出した前記第1確率が閾値以上場合、前記第1情報と前記第2情報とから、算出した前記経過時間を前記時間間隔から減算した時間が、前記移動所要時間よりも短くなる第2確率を算出し、
算出した前記第2確率が閾値以下場合、抽出した前記仮想マシンを障害の影響が及ぶ範囲外に移動させることを決定する、
ことを特徴とする障害対処方法。
【符号の説明】
【0248】
1:情報処理装置 2a:物理マシン
2b:物理マシン 2c:物理マシン
3a:仮想マシン 3b:仮想マシン
3c:仮想マシン 3d:仮想マシン
3e:仮想マシン 3f:仮想マシン
5:操作端末 130:情報格納領域
131:履歴情報