(57)【要約】【課題】仮想マシンのユーザが希望する時間帯において物理マシンのメンテナンス作業を実施すること。【解決手段】システム制御装置１００は、ＶＭを示す情報ごとに、ホストのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を有する。システム制御装置１００は、対応情報を参照し、複数のＶＭを、同一グループ内の各ＶＭに対応する希望時間帯の重複時間が所定時間以上になるように分類する。システム制御装置１００は、分類して得られたグループごとに異なるホストに配置する。【選択図】図１
2019040320.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
仮想マシンを示す情報ごとに物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を参照し、メンテナンス作業の対象である複数の物理マシンに対して配置される複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になるように分類し、
分類して得られたグループごとに異なる前記物理マシンに配置する、
処理を実行させることを特徴とするメンテナンス制御プログラム。
【請求項２】
前記分類する処理は、
前記複数の仮想マシンを、前記物理マシンの数を超えない数のグループに分類する、ことを特徴とする請求項１に記載のメンテナンス制御プログラム。
【請求項３】
前記分類する処理は、
システムを示す情報ごとに前記システムが利用する仮想マシンを示す情報を対応付けた対応情報を参照し、前記複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になり、かつ、同一システムが利用する仮想マシンが同一グループに含まれるように分類する、ことを特徴とする請求項１または２に記載のメンテナンス制御プログラム。
【請求項４】
前記コンピュータに、
メンテナンス作業の種別を示す情報を受け付け、
メンテナンス作業の種別を示す情報ごとに前記メンテナンス作業の所要時間を示す情報を対応付けた対応情報を参照し、受け付けた前記情報に対応する所要時間に基づいて、前記所定時間を設定する、処理を実行させることを特徴とする請求項１〜３のいずれか一つに記載のメンテナンス制御プログラム。
【請求項５】
前記分類する処理は、
前記複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になり、かつ、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が大きくなるように分類する、ことを特徴とする請求項１〜４のいずれか一つに記載のメンテナンス制御プログラム。
【請求項６】
前記コンピュータに、
分類して得られたグループごとに異なる前記物理マシンに配置した後、前記物理マシンに配置された前記グループ内の各仮想マシンに対応する希望時間帯の重複時間帯に、前記物理マシンのメンテナンス作業を実施する、ことを特徴とする請求項１〜５のいずれか一つに記載のメンテナンス制御プログラム。
【請求項７】
コンピュータが、
仮想マシンを示す情報ごとに物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を参照し、メンテナンス作業の対象である複数の物理マシンに対して配置される複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になるように分類し、
分類して得られたグループごとに異なる前記物理マシンに配置する、
処理を実行することを特徴とするメンテナンス制御方法。
【請求項８】
仮想マシンを示す情報ごとに物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を参照し、メンテナンス作業の対象である複数の物理マシンに対して配置される複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になるように分類し、
分類して得られたグループごとに異なる前記物理マシンに配置する、
制御部を有することを特徴とするシステム制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メンテナンス制御プログラム、メンテナンス制御方法、およびシステム制御装置に関する。
【背景技術】
【０００２】
従来、複数の物理マシンを含み、ユーザが提供するサービスを実現する１以上の仮想マシンをいずれかの物理マシンを用いて動作させるクラウドシステムがある。クラウドシステムの物理マシンに対しては、パッチ適用や再起動などを含むメンテナンス作業が実施されることがある。
【０００３】
先行技術としては、例えば、ユーザが仮想ホストの移動予定日を入力した場合に、移動予定日が、メンテナンス予定日よりも後の場合に、再度移動予定日を修正するよう要請するものがある。また、例えば、エンドユーザからのデータ送受信においてネットワーク内に問題が発生するか否かを判定した結果と移動先候補の情報から、最も省電力化を達成する物理計算機を移動予定の仮想計算機の移動先として選択する技術がある。また、例えば、仮想計算機ごとに空き期間を抽出し、一つの仮想計算機の空き期間に設定される予約期間の終点と、他の仮想計算機の空き期間に設定される予約期間の開始点とが一致または重なるように各仮想計算機を予約する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１６１９５６号公報
【特許文献２】特開２０１４−１５３８９７号公報
【特許文献３】国際公開第２０１２／０２５９７７号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、ユーザにとって好ましくないタイミングで、物理マシンのメンテナンス作業が実施され、物理マシン上の仮想マシンが停止されることにより、ユーザが提供するサービスが停止してしまうことがある。
【０００６】
１つの側面では、本発明は、仮想マシンのユーザが希望する時間帯において物理マシンのメンテナンス作業を実施することができるメンテナンス制御プログラム、メンテナンス制御方法、およびシステム制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、仮想マシンを示す情報ごとに物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を参照し、メンテナンス作業の対象である複数の物理マシンに対して配置される複数の仮想マシンを分類した、グループ内のそれぞれの仮想マシンに対応する希望時間帯の重複時間が所定時間以上になる、仮想マシンのグループを作成し、作成した前記グループごとに異なる前記物理マシンに配置するメンテナンス制御プログラム、メンテナンス制御方法、およびシステム制御装置が提案される。
【発明の効果】
【０００８】
一態様によれば、仮想マシンのユーザが希望する時間帯において物理マシンのメンテナンス作業を実施することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるメンテナンス制御方法の一実施例を示す説明図である。
【図２】図２は、メンテナンス制御システム２００の一例を示す説明図である。
【図３】図３は、システム制御装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、メンテナンス希望時間帯情報テーブル４００の記憶内容の一例を示す説明図である。
【図５】図５は、メンテナンス所要時間情報テーブル５００の記憶内容の一例を示す説明図である。
【図６】図６は、リソース管理情報テーブル６００の記憶内容の一例を示す説明図である。
【図７】図７は、ＶＭ配置構成情報テーブル７００の記憶内容の一例を示す説明図である。
【図８】図８は、システム構成情報テーブル８００の記憶内容の一例を示す説明図である。
【図９】図９は、メンテナンス可能時間帯情報テーブル９００の記憶内容の一例を示す説明図である。
【図１０】図１０は、システム制御装置１００の機能的構成例を示すブロック図である。
【図１１】図１１は、実施例１を示す説明図（その１）である。
【図１２】図１２は、実施例１を示す説明図（その２）である。
【図１３】図１３は、実施例１を示す説明図（その３）である。
【図１４】図１４は、配置処理手順の一例を示すフローチャート（その１）である。
【図１５】図１５は、配置処理手順の一例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかるメンテナンス制御プログラム、メンテナンス制御方法、およびシステム制御装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかるメンテナンス制御方法の一実施例）
図１は、実施の形態にかかるメンテナンス制御方法の一実施例を示す説明図である。システム制御装置１００は、複数の物理マシンのメンテナンス作業を制御し、複数の物理マシンに対する複数の仮想マシンの配置を制御するコンピュータである。
【００１２】
物理マシンは、例えば、クラウドシステム上のコンピュータである。物理マシンのメンテナンス作業は、複数の種類の作業を含む一連の作業である。物理マシンのメンテナンス作業は、例えば、パッチ適用や再起動などを含む。物理マシンのメンテナンス作業は、一連の作業のうち、いずれか１つの種類の作業であってもよい。物理マシンのメンテナンス作業は、自動または手動による作業である。
【００１３】
物理マシンに対する仮想マシンの配置は、物理マシン上で仮想マシンを動作させることである。仮想マシンは、ユーザによって利用される。仮想マシンは、例えば、事業者であるユーザが提供するサービスの実現に用いられる。複数の仮想マシンは、物理マシンに未配置の仮想マシン、または物理マシン上で停止中の仮想マシンなどを含んでもよい。
【００１４】
以下の説明では、仮想マシンを「ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）」と表記する場合がある。以下の説明では、物理マシンを「ホスト」と表記する場合がある。
【００１５】
ここで、ホストのメンテナンス作業中は、パッチ適用や再起動が実施されるため、ホストに配置されたＶＭを停止させることになる場合がある。そして、ＶＭを停止させた場合、ユーザがＶＭを利用して提供しているサービスも停止してしまうことになる。
【００１６】
このため、ユーザがサービスを提供していない時間帯や、サービスの利用量が比較的小さい時間帯などのように、ユーザが提供するサービスに与える悪影響が比較的小さい時間帯に、ホストのメンテナンス作業が実施されることが好ましいと考えられる。
【００１７】
しかしながら、ユーザが希望する時間帯に、ホストのメンテナンス作業を実施するようにすることは難しい場合がある。例えば、ユーザが提供するサービスの形式は様々であり、ユーザが提供するサービスごとに悪影響が比較的小さい時間帯は異なるため、ホストの管理者が、メンテナンス作業を実施する時間帯を設定することは難しい。
【００１８】
このため、ホストの管理者が設定した時間帯に、ホストのメンテナンス作業を実施した結果、ユーザにとって好ましくないタイミングで、ホスト上の仮想マシンが停止され、ユーザが提供するサービスが停止してしまうことがある。
【００１９】
これに対し、ユーザごとに、ホストのメンテナンス作業を実施する希望時間帯の指定を受け付けることが考えられる。
【００２０】
しかしながら、１つのホスト上の複数のＶＭに、複数のユーザのそれぞれのユーザが提供するサービスに用いられるＶＭが混在し、かつ、それぞれのユーザの希望時間帯が異なる場合がある。このため、複数のユーザのいずれかのユーザの希望時間帯にホストのメンテナンス作業を実施しても、他のいずれかのユーザが提供するサービスに悪影響を与えてしまうことがある。
【００２１】
そこで、本実施の形態では、ユーザごとの希望時間帯に基づいて、複数のホストに対する複数のＶＭの配置を変更してから、それぞれのホストのメンテナンス作業を実施することができるようにするメンテナンス制御方法について説明する。
【００２２】
図１の例では、メンテナンス作業の対象である複数のホストは、ホスト１とホスト２とである。複数のホストに対して配置される複数のＶＭは、ＶＭ１〜ＶＭ６である。ＶＭ１とＶＭ２とは、ユーザのシステム１を実現するために用いられる。ＶＭ３とＶＭ４とは、ユーザのシステム２を実現するために用いられる。ＶＭ５とＶＭ６とは、ユーザのシステム３を実現するために用いられる。ホスト１上で、ＶＭ１とＶＭ３とＶＭ４とが動作する。また、ホスト２上で、ＶＭ２とＶＭ５とＶＭ６とが動作する。
【００２３】
システム制御装置１００は、ＶＭを示す情報ごとに、ホストのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を有する。対応情報は、例えば、図４に後述するメンテナンス希望時間帯情報テーブル４００である。ＶＭに対応する希望時間帯は、ＶＭに関わるホストのメンテナンス作業を実施する希望時間帯である。ＶＭに対応する希望時間帯は、具体的には、今後複数のホストに対してメンテナンス作業を実施しようとした際に、ＶＭが配置されるホストのメンテナンス作業を実施する希望時間帯である。
【００２４】
システム制御装置１００は、例えば、ＶＭのユーザから、ユーザ装置を介して希望時間帯の指定を受け付けて、対応情報を作成する。システム制御装置１００は、例えば、ホストの管理者から、管理者装置を介して希望時間帯の指定を受け付けて、対応情報を作成してもよい。
【００２５】
図１の例では、ＶＭ１とＶＭ２との希望時間帯は、時間帯１：００〜３：００である。また、ＶＭ３とＶＭ４との希望時間帯は、時間帯３：００〜６：００である。また、ＶＭ５とＶＭ６との希望時間帯は、時間帯０：００〜５：００である。
【００２６】
システム制御装置１００は、対応情報を参照し、複数のＶＭを、同一グループ内の各ＶＭに対応する希望時間帯の重複時間が所定時間以上になるように分類する。所定時間は、例えば、メンテナンス作業の所要時間に基づいて設定される。所定時間は、例えば、固定値である。所要時間は、具体的には、例えば、２時間である。システム制御装置１００は、例えば、所定のタイミングで、複数のＶＭを分類する。所定のタイミングは、例えば、システム制御装置１００のユーザによって指定された時点、または、システム制御装置１００のユーザによる所定の操作入力を受け付けた時点などである。
【００２７】
システム制御装置１００は、例えば、ＶＭ３とＶＭ４とを１つのグループに分類する。また、システム制御装置１００は、例えば、ＶＭ１とＶＭ２とＶＭ５とＶＭ６とを１つのグループに分類する。このように、システム制御装置１００は、分類した結果、ホストの数を超えない数のグループを作成する。一方で、システム制御装置１００は、一旦１つのグループを作成し、いずれかのホストに配置してから、次のグループを作成するようにする場合があってもよい。
【００２８】
システム制御装置１００は、分類して得られたグループごとに異なるホストに配置する。システム制御装置１００は、例えば、１つのグループに含まれるＶＭ３とＶＭ４とを、ホスト１に配置して動作させる。また、システム制御装置１００は、例えば、１つのグループに含まれるＶＭ１とＶＭ２とＶＭ５とＶＭ６とを、ホスト２に配置して動作させる。
【００２９】
これにより、システム制御装置１００は、ＶＭごとに希望時間帯が異なっていても、ＶＭのユーザが希望する時間帯においてホストのメンテナンス作業を実施することができる。結果として、システム制御装置１００は、ＶＭのユーザが希望する時間帯以外に、ＶＭが停止してしまい、サービスが停止してしまうことを防止することができ、ＶＭの利便性の向上を図ることができる。
【００３０】
また、システム制御装置１００は、所定時間としてメンテナンス作業の所要時間を設定することができ、ＶＭのユーザが希望する時間帯において、メンテナンス作業が中断せず、メンテナンス作業が完了するようにすることができる。このため、システム制御装置１００は、サービスが停止してしまうことを、精度よく防止することができる。また、システム制御装置１００は、作成したグループの数がホストの数を超えなければ、ホストごとにグループを１つずつ配置することができ、いずれかのグループの各ＶＭの希望時間帯以外にメンテナンス作業が実施されることを防止することができる。
【００３１】
ここでは、システム制御装置１００が、複数のグループを作成してから、それぞれのグループをホストに配置する場合について説明したが、これに限らない。例えば、システム制御装置１００が、１つのグループを作成し、作成したグループを１つのホストに配置するという一連の動作を、分類するＶＭがなくなるまで繰り返すようにする場合があってもよい。
【００３２】
ここでは、システム制御装置１００が、ユーザが提供するサービスを実現するシステムに用いられるＶＭが異なるグループに分かれてもよい場合について説明したが、これに限らない。例えば、システム制御装置１００が、ユーザが提供するサービスを実現する１つのシステムに用いられるＶＭが１つのグループにまとめて含まれるようにする場合があってもよい。これにより、システム制御装置１００は、システムに用いられるＶＭのいずれかが停止することにより、システムが実現するサービスが停止してしまう時間の増大化を抑制することができる。
【００３３】
ここでは、システム制御装置１００が、メンテナンスの種別に関わらず、重複時間と比較する所定時間を固定値にした場合について説明したが、これに限らない。例えば、システム制御装置１００が、メンテナンスの種別に応じて、重複時間と比較する所定時間を可変にする場合があってもよい。これにより、システム制御装置１００は、メンテナンスの種別に対応する所要時間より固定値を大きくしすぎた場合に比べて、複数のＶＭを分類しやすくすることができる。一方で、システム制御装置１００は、メンテナンスの種別に対応する所要時間より固定値を小さくしすぎた場合に比べて、メンテナンス作業を失敗しにくくすることができる。
【００３４】
ここでは、システム制御装置１００が、それぞれのグループが２以上のＶＭを含むように、複数のＶＭを複数のグループに分類する場合について説明したが、これに限らない。例えば、システム制御装置１００が、２以上のＶＭを含まず、１つのＶＭを含むグループがあってもよいように、複数のＶＭを複数のグループに分類する場合があってもよい。
【００３５】
ここで、クラウドシステム上のすべてのホストに対してメンテナンス作業を実施する場合があってもよいし、クラウドシステム上のいずれかのホストに対してメンテナンス作業を実施しない場合があってもよい。システム制御装置１００は、複数のＶＭを複数のグループに分類すれば、それぞれのグループが、メンテナンス作業を実施するホストに配置されても、メンテナンス作業を実施しないホストに配置されても、サービスが停止してしまうことを防止することができる。
【００３６】
ここで、システム制御装置１００が、複数のＶＭを分類する際、または、分類して得られた複数のグループを複数のホストに配置する際、配置変更されるＶＭの数が小さくなるようにしてもよい。これにより、システム制御装置１００は、メンテナンス作業にかかるホストやＶＭの負担の低減化を図ることができる。
【００３７】
ここで、いずれかのＶＭについて希望時間帯がユーザから指定されていない場合があってもよい。この場合、システム制御装置１００は、例えば、ユーザから希望時間帯が指定されていないＶＭについて、希望時間帯を「常時」に設定してもよい。
【００３８】
ここでは、システム制御装置１００が、ホストの数を超えない数のグループを作成する場合について説明したが、これに限らない。例えば、システム制御装置１００が、ホストの数を超える数のグループを作成する場合があってもよい。システム制御装置１００が、ホストの数を超える数のグループを作成しても、ホストに単独で配置されたグループの各ＶＭについては停止してしまうことを防止することができ、サービスが停止してしまうことを防止することができる。また、システム制御装置１００が、ホストに配置された複数のグループのいずれかのグループの各ＶＭについては停止してしまうことを防止することができ、サービスが停止してしまうことを防止することができる。換言すれば、システム制御装置１００は、作成されたグループのうち、ホストの数と同じ数のグループの各ＶＭについては停止してしまうことを防止することができ、サービスが停止してしまうことを防止することができる。
【００３９】
システム制御装置１００は、１つのホストに配置可能なＶＭの数に上限があれば、１つのホストに配置可能なＶＭの数の上限に基づいて、複数のＶＭを複数のグループに分類するようにしてもよい。システム制御装置１００は、例えば、１つのグループに含まれるＶＭの数が、上限以下になるようにする。
【００４０】
（メンテナンス制御システム２００の一例）
次に、図２を用いて、図１に示したシステム制御装置１００を適用した、メンテナンス制御システム２００の一例について説明する。
【００４１】
図２は、メンテナンス制御システム２００の一例を示す説明図である。図２において、メンテナンス制御システム２００は、システム制御装置１００と、クラウドインフラ基盤になる複数のホスト２１０と、複数のユーザ装置２２０と、管理者装置２３０とを含む。
【００４２】
メンテナンス制御システム２００において、システム制御装置１００とホスト２１０は、有線または無線のネットワークを介して接続される。ネットワークは、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。また、システム制御装置１００とユーザ装置２２０とは、有線または無線のネットワークを介して接続される。また、システム制御装置１００と管理者装置２３０とは、有線または無線のネットワークを介して接続される。
【００４３】
システム制御装置１００は、時間要望情報受付部２０１により、メンテナンス作業を実施する希望時間帯を示す時間要望情報を、ユーザ装置２２０から受け付ける。システム制御装置１００は、時間要望情報受付部２０１により、受け付けた時間要望情報に基づいて、図４に後述するメンテナンス希望時間帯情報テーブル４００を更新する。システム制御装置１００は、メンテナンス情報受付部２０２により、メンテナンス作業の対象である対象ホスト２１０やメンテナンス作業の種別などの情報を含むメンテナンス情報を、管理者装置２３０から受け付け、受け付けたメンテナンス情報を記憶する。
【００４４】
システム制御装置１００は、ＶＭ配置構成決定部２０３により、複数のホスト２１０に対する複数のＶＭの配置を決定する。システム制御装置１００は、ＶＭ配置変更指示部２０４により、複数のホスト２１０に対する複数のＶＭの配置を変更する。システム制御装置１００は、メンテナンス可能時間帯情報通知部２０５により、メンテナンス可能時間帯情報を、管理者装置２３０に送信する。
【００４５】
時間要望情報受付部２０１と、メンテナンス情報受付部２０２と、ＶＭ配置構成決定部２０３と、ＶＭ配置変更指示部２０４と、メンテナンス可能時間帯情報通知部２０５となどは、例えば、図１０に後述する取得部１００１〜出力部１００４などの制御部により実現される。システム制御装置１００は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。
【００４６】
ホスト２１０は、ＶＭを動作させる。ホスト２１０は、システム制御装置１００の制御にしたがって、ＶＭを移動する。ホスト２１０は、例えば、図１のホスト１やホスト２である。ホスト２１０は、例えば、サーバやＰＣなどである。
【００４７】
ユーザ装置２２０は、ユーザの操作入力に応じて、メンテナンス作業を実施する希望時間帯を示す時間要望情報を、システム制御装置１００に送信する。ユーザ装置２２０は、例えば、サーバ、ＰＣ、タブレット端末、スマートフォンなどである。
【００４８】
管理者装置２３０は、管理者の操作入力に応じて、メンテナンス作業の対象である対象ホスト２１０やメンテナンス作業の種別などの情報を含むメンテナンス情報を、システム制御装置１００に送信する。管理者装置２３０は、メンテナンス可能時間帯情報を受信し、メンテナンス可能時間帯情報を管理者に通知する。管理者は、メンテナンス可能時間帯情報に基づいて、メンテナンス作業の予定を決定する。管理者装置２３０は、例えば、サーバ、ＰＣ、タブレット端末、スマートフォンなどである。
【００４９】
（システム制御装置１００のハードウェア構成例）
次に、図３を用いて、システム制御装置１００のハードウェア構成例について説明する。
【００５０】
図３は、システム制御装置１００のハードウェア構成例を示すブロック図である。図３において、システム制御装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、記録媒体Ｉ／Ｆ３０４と、記録媒体３０５とを有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００５１】
ここで、ＣＰＵ３０１は、システム制御装置１００の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。メモリ３０２は、図４〜図９に後述する各種テーブルを記憶する。
【００５２】
ネットワークＩ／Ｆ３０３は、通信回線を通じてネットワーク３１０に接続され、ネットワーク３１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ３０３は、ネットワーク３１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００５３】
記録媒体Ｉ／Ｆ３０４は、ＣＰＵ３０１の制御にしたがって記録媒体３０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ３０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体３０５は、記録媒体Ｉ／Ｆ３０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体３０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体３０５は、システム制御装置１００から着脱可能であってもよい。
【００５４】
システム制御装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、システム制御装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を有していなくてもよい。
【００５５】
（メンテナンス希望時間帯情報テーブル４００の記憶内容）
次に、図４を用いて、メンテナンス希望時間帯情報テーブル４００の記憶内容について説明する。メンテナンス希望時間帯情報テーブル４００は、例えば、図３に示したシステム制御装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５６】
図４は、メンテナンス希望時間帯情報テーブル４００の記憶内容の一例を示す説明図である。図４に示すように、メンテナンス希望時間帯情報テーブル４００は、ＶＭ名と、希望時間帯（開始）と、希望時間帯（終了）と、希望日とのフィールドを有する。メンテナンス希望時間帯情報テーブル４００は、ＶＭごとに各フィールドに情報を設定することにより、希望時間帯情報がレコードとして記憶される。
【００５７】
ＶＭ名のフィールドには、ＶＭを識別するＶＭ名が設定される。希望時間帯（開始）のフィールドには、メンテナンス作業を実施する希望時間帯の開始時点が設定される。開始時点は、例えば、［時：分］で表現される。希望時間帯（終了）のフィールドには、メンテナンス作業を実施する希望時間帯の終了時点が設定される。終了時点は、例えば、［時：分］で表現される。希望日のフィールドには、メンテナンス作業を実施する希望日が設定される。希望日は、例えば、曜日や日付で表現される。
【００５８】
（メンテナンス所要時間情報テーブル５００の記憶内容）
次に、図５を用いて、メンテナンス所要時間情報テーブル５００の記憶内容について説明する。メンテナンス所要時間情報テーブル５００は、例えば、図３に示したシステム制御装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５９】
図５は、メンテナンス所要時間情報テーブル５００の記憶内容の一例を示す説明図である。図５に示すように、メンテナンス所要時間情報テーブル５００は、メンテナンス種別と、平均所要時間とのフィールドを有する。メンテナンス所要時間情報テーブル５００は、メンテナンス作業の種別ごとに各フィールドに情報を設定することにより、所要時間情報がレコードとして記憶される。
【００６０】
メンテナンス種別のフィールドには、メンテナンス作業の種別を示す名称が設定される。平均所要時間のフィールドには、メンテナンス種別のフィールドが示している種別のメンテナンス作業の所要時間の統計値として平均値が設定される。平均値は、例えば、［時：分］で表現される。統計値は、例えば、最大値、最小値、最頻値、中央値などであってもよい。
【００６１】
（リソース管理情報テーブル６００の記憶内容）
次に、図６を用いて、リソース管理情報テーブル６００の記憶内容について説明する。リソース管理情報テーブル６００は、例えば、図３に示したシステム制御装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００６２】
図６は、リソース管理情報テーブル６００の記憶内容の一例を示す説明図である。図６に示すように、リソース管理情報テーブル６００は、ホスト名と、搭載ＣＰＵ数と、搭載メモリとのフィールドを有する。リソース管理情報テーブル６００は、ホスト２１０ごとに各フィールドに情報を設定することにより、リソース情報がレコードとして記憶される。
【００６３】
ホスト名のフィールドには、ホスト２１０を識別するホスト名が設定される。搭載ＣＰＵ数のフィールドには、ホスト２１０に搭載されたＣＰＵの数が設定される。搭載メモリのフィールドには、ホスト２１０に搭載されたメモリのサイズが設定される。メモリのサイズは、例えば、［ＧＢ］で表現される。
【００６４】
（ＶＭ配置構成情報テーブル７００の記憶内容）
次に、図７を用いて、ＶＭ配置構成情報テーブル７００の記憶内容について説明する。ＶＭ配置構成情報テーブル７００は、例えば、図３に示したシステム制御装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００６５】
図７は、ＶＭ配置構成情報テーブル７００の記憶内容の一例を示す説明図である。図７に示すように、ＶＭ配置構成情報テーブル７００は、ＶＭ名と、ＣＰＵ数と、メモリと、配置先ホスト名とのフィールドを有する。ＶＭ配置構成情報テーブル７００は、ＶＭごとに各フィールドに情報を設定することにより、スペック情報がレコードとして記憶される。
【００６６】
ＶＭ名のフィールドには、ＶＭを識別するＶＭ名が設定される。ＣＰＵ数のフィールドには、ＶＭの動作に用いられるＣＰＵの数が設定される。メモリのフィールドには、ＶＭの動作に用いられるメモリのサイズが設定される。メモリのサイズは、例えば、［ＧＢ］で表現される。配置先ホスト名のフィールドには、ＶＭが配置されたホスト２１０を識別するホスト名が設定される。
【００６７】
（システム構成情報テーブル８００の記憶内容）
次に、図８を用いて、システム構成情報テーブル８００の記憶内容について説明する。システム構成情報テーブル８００は、例えば、図３に示したシステム制御装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００６８】
図８は、システム構成情報テーブル８００の記憶内容の一例を示す説明図である。図８に示すように、システム構成情報テーブル８００は、システム名と、構成ＶＭ名とのフィールドを有する。システム構成情報テーブル８００は、システムごとに各フィールドに情報を設定することにより、システム構成情報がレコードとして記憶される。
【００６９】
システム名のフィールドには、ユーザが提供するサービスを実現するシステムを識別するシステム名が設定される。構成ＶＭ名のフィールドには、ユーザが提供するサービスを実現するシステムに用いられるＶＭを識別するＶＭ名が設定される。
【００７０】
（メンテナンス可能時間帯情報テーブル９００の記憶内容）
次に、図９を用いて、メンテナンス可能時間帯情報テーブル９００の記憶内容について説明する。メンテナンス可能時間帯情報テーブル９００は、例えば、図３に示したシステム制御装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００７１】
図９は、メンテナンス可能時間帯情報テーブル９００の記憶内容の一例を示す説明図である。図９に示すように、メンテナンス可能時間帯情報テーブル９００は、ホスト名と、可能時間帯（開始）と、可能時間帯（終了）と、可能日とのフィールドを有する。メンテナンス可能時間帯情報テーブル９００は、ホスト２１０ごとに各フィールドに情報を設定することにより、メンテナンス可能時間帯情報がレコードとして記憶される。
【００７２】
ホスト名のフィールドには、ホスト２１０を識別するホスト名が設定される。可能時間帯（開始）のフィールドには、実際にメンテナンス作業を実施する時間帯である、可能時間帯の開始時点が設定される。開始時点は、例えば、［時：分］で表現される。可能時間帯（終了）のフィールドには、実際にメンテナンス作業を実施する時間帯である、可能時間帯の終了時点が設定される。終了時点は、例えば、［時：分］で表現される。可能日のフィールドには、実際にメンテナンス作業を実施する日である、希望日が設定される。希望日は、例えば、曜日や日付で表現される。
【００７３】
（ホスト２１０のハードウェア構成例）
ホスト２１０のハードウェア構成例は、図３に示したシステム制御装置１００のハードウェア構成例と同様であるため、説明を省略する。
【００７４】
（ユーザ装置２２０のハードウェア構成例）
ユーザ装置２２０のハードウェア構成例は、図３に示したシステム制御装置１００のハードウェア構成例と同様であるため、説明を省略する。
【００７５】
（管理者装置２３０のハードウェア構成例）
管理者装置２３０のハードウェア構成例は、図３に示したシステム制御装置１００のハードウェア構成例と同様であるため、説明を省略する。
【００７６】
（システム制御装置１００の機能的構成例）
次に、図１０を用いて、システム制御装置１００の機能的構成例について説明する。
【００７７】
図１０は、システム制御装置１００の機能的構成例を示すブロック図である。システム制御装置１００は、記憶部１０００と、取得部１００１と、分類部１００２と、メンテナンス部１００３と、出力部１００４とを含む。
【００７８】
記憶部１０００は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域によって実現される。
【００７９】
取得部１００１〜出力部１００４は、制御部となる機能である。取得部１００１〜出力部１００４は、具体的には、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、ネットワークＩ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶される。
【００８０】
記憶部１０００は、仮想マシンを示す情報ごとに物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた第１の対応情報を記憶する。希望時間帯を示す情報は、メンテナンス作業が禁止された時間帯を示す情報であってもよい。第１の対応情報は、物理マシンに未配置の仮想マシン、または物理マシン上で停止中の仮想マシンなどを示す情報についても、希望時間帯を示す情報を対応付けておいてもよい。第１の対応情報は、例えば、図４に示したメンテナンス希望時間帯情報テーブル４００である。記憶部１０００は、例えば、図４に示したメンテナンス希望時間帯情報テーブル４００を記憶する。これにより、記憶部１０００は、仮想マシンに対応する希望時間帯を示す情報を、分類部１００２が参照可能にすることができる。
【００８１】
記憶部１０００は、システムを示す情報ごとにシステムが利用する仮想マシンを示す情報を対応付けた第２の対応情報を記憶する。第２の対応情報は、例えば、図８に示したシステム構成情報テーブル８００である。記憶部１０００は、例えば、図８に示したシステム構成情報テーブル８００を記憶する。これにより、記憶部１０００は、システムが利用する仮想マシンを示す情報を、分類部１００２が参照可能にすることができる。
【００８２】
記憶部１０００は、メンテナンス作業の種別を示す情報ごとにメンテナンス作業の所要時間を示す情報を対応付けた第３の対応情報を記憶する。第３の対応情報は、図５に示したメンテナンス所要時間情報テーブル５００である。記憶部１０００は、例えば、図５に示したメンテナンス所要時間情報テーブル５００を記憶する。これにより、記憶部１０００は、メンテナンス作業の所要時間を、分類部１００２が参照可能にすることができる。
【００８３】
取得部１００１は、いずれかの仮想マシンを示す情報に物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を受け付ける。取得部１００１は、受け付けた対応情報に基づいて、記憶部１０００に記憶された第１の対応情報を更新する。取得部１００１は、例えば、メンテナンス作業を実施する希望時間帯を示す時間要望情報を、ユーザ装置２２０から受け付け、受け付けた時間要望情報に基づいて、図４に示したメンテナンス希望時間帯情報テーブル４００を更新する。これにより、取得部１００１は、ユーザの希望を第１の対応情報に反映させることができ、第１の対応情報を最新の状態に更新することができる。
【００８４】
取得部１００１は、メンテナンス作業の種別を示す情報を受け付ける。取得部１００１は、例えば、メンテナンス作業の種別を示す情報を、ユーザ装置２２０から受け付ける。これにより、取得部１００１は、メンテナンス作業の種別に対応するメンテナンス作業にかかる所要時間を、分類部１００２が特定可能にすることができる。
【００８５】
分類部１００２は、第１の対応情報を参照し、メンテナンス作業の対象である複数の物理マシンに対して配置される複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になるように分類する。分類部１００２は、例えば、複数の仮想マシンのそれぞれの仮想マシンがいずれかのグループに含まれるように、複数の仮想マシンを複数のグループに分類する。分類部１００２は、例えば、一旦、複数の仮想マシンの少なくともいずれかの仮想マシンを、１つのグループに分類するようにしてもよい。これにより、分類部１００２は、同一物理マシンに配置されれば、希望時間帯内でメンテナンス作業を完了可能である仮想マシンの組み合わせであるグループを作成することができる。
【００８６】
分類部１００２は、複数の仮想マシンを、物理マシンの数を超えない数のグループに分類する。分類部１００２は、例えば、複数の仮想マシンを、物理マシンの数と同じ数のグループに分類する。これにより、分類部１００２は、１つの物理マシンに１つのグループが配置されるようにすることができる。結果として、分類部１００２は、２以上のグループが１つの物理マシンに配置されてしまい、２以上のグループのいずれかのグループの各仮想マシンに対応する希望時間帯以外に、物理マシンのメンテナンス作業が実施されることを防止することができる。
【００８７】
分類部１００２は、第２の対応情報を参照し、複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になり、かつ、同一システムが利用する仮想マシンが同一グループに含まれるように分類する。これにより、分類部１００２は、システムに用いられる仮想マシンは同時に停止するようにすることができ、システムに用いられる仮想マシン間で異なるタイミングで停止することを抑制することができる。結果として、分類部１００２は、システムに用いられる仮想マシンのいずれかが停止することにより、システムが実現するサービスが停止してしまう時間の増大化を抑制することができる。
【００８８】
分類部１００２は、第３の対応情報を参照し、受け付けた情報に対応する所要時間に基づいて、所定時間を設定する。分類部１００２は、例えば、メンテナンス作業の種別に対応する所要時間を、所定時間に設定する。また、分類部１００２は、例えば、所要時間にマージンを加えた時間を、所定時間に設定してもよい。また、分類部１００２は、例えば、メンテナンス作業の種別が複数指定された場合、それぞれの種別に対応する所要時間の合計時間を、所定時間に設定してもよい。これにより、分類部１００２は、メンテナンスの種別に応じて、重複時間と比較する所要時間を変動させることができ、精度よく、メンテナンス作業を完了可能な仮想マシンの組み合わせであるグループを作成することができる。
【００８９】
分類部１００２は、複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になり、かつ、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が大きくなるように分類する。これにより、分類部１００２は、グループを物理マシンに配置した場合、物理マシンのメンテナンス作業を実施可能な時間帯が長くなるようにすることができる。結果として、分類部１００２は、管理者が、メンテナンス作業を実施する時間帯を設定しやすくすることができる。また、分類部１００２は、メンテナンス作業の不具合によりメンテナンス作業にかかる所要時間が伸びた場合に対応しやすくすることができる。
【００９０】
分類部１００２は、グループに分類されていない仮想マシンがあれば、グループに分類されていない１つの仮想マシンを、新たなグループに分類する。これにより、分類部１００２は、グループに分類されない仮想マシンをなくすことができ、仮想マシンが物理マシンに配置されなくなることを防止することができる。
【００９１】
メンテナンス部１００３は、分類して得られたグループごとに異なる物理マシンに配置する。メンテナンス部１００３は、例えば、分類部１００２が分類した直後、分類して得られたグループごとに異なる物理マシンに配置する。また、メンテナンス部１００３は、例えば、物理マシンのメンテナンス作業の一部として、グループごとに異なる物理マシンに配置してもよい。これにより、メンテナンス部１００３は、メンテナンス作業を実施したとしても、希望時間帯以外に停止する仮想マシンをなくすことを可能にすることができる。
【００９２】
メンテナンス部１００３は、分類して得られたグループごとに異なる物理マシンに配置した後、物理マシンに配置されたグループ内の各仮想マシンに対応する希望時間帯の重複時間帯に、物理マシンのメンテナンス作業を実施する。これにより、メンテナンス部１００３は、メンテナンス作業により、希望時間帯以外に停止する仮想マシンがなくなるようにしたうえで、メンテナンス作業を完了することができる。
【００９３】
メンテナンス部１００３は、分類して得られたグループ内の各仮想マシンに対応する希望時間帯の重複時間帯に、物理マシンに対するグループの配置を含む、物理マシンのメンテナンス作業を実施する。これにより、メンテナンス部１００３は、物理マシンのメンテナンス作業の一部として、グループごとに異なる物理マシンに配置することができる。
【００９４】
出力部１００４は、各機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ３０３による外部装置への送信、または、メモリ３０２や記録媒体３０５などの記憶領域への記憶である。これにより、出力部１００４は、管理者が、ホストを管理する際に、各機能部の処理結果を参照可能にし、管理作業を支援することができる。
【００９５】
また、出力部１００４は、分類して得られた複数のグループのそれぞれのグループを示す情報を出力してもよい。これにより、出力部１００４は、管理者に、複数の物理マシンに対する複数の仮想マシンの配置を変更させることができ、複数の仮想マシンを管理者の意図を反映して配置することができ、管理作業を支援することができる。
【００９６】
また、出力部１００４は、それぞれのグループの各ＶＭに対応する希望時間帯の重複時間帯を、それぞれのグループのメンテナンス可能時間帯として出力してもよい。これにより、出力部１００４は、管理者に、それぞれの物理マシンのメンテナンス作業をいつ実施すればよいか把握させ、手動でそれぞれの物理マシンにメンテナンス作業を実施させることができる。
【００９７】
また、出力部１００４は、それぞれのグループの各ＶＭのユーザに、それぞれのグループが配置された物理マシンのメンテナンス作業が実施される時間帯を通知してもよい。これにより、出力部１００４は、それぞれのグループの各ＶＭのユーザが、メンテナンス作業に対策しやすくすることができ、ＶＭの利便性の向上を図ることができる。
【００９８】
（実施例１）
次に、図１１〜図１３を用いて、実施例１について説明する。
【００９９】
図１１〜図１３は、実施例１を示す説明図である。図１１〜図１３の例では、システム制御装置１００は、ホストの数に応じて、ＶＭ１〜ＶＭ６を２つのグループに分類し、分類して得られた２つのグループのそれぞれのグループをホスト１とホスト２とに対して配置する。まず、図１１の説明に移行する。
【０１００】
図１１において、システム制御装置１００は、メンテナンス希望時間帯情報テーブル４００を参照し、ＶＭ１〜ＶＭ６の希望時間帯と希望日とを取得する。また、システム制御装置１００は、メンテナンス所要時間情報テーブル５００を参照し、対象種別のメンテナンスにかかる所要時間を取得する。
【０１０１】
次に、システム制御装置１００は、グループ内のＶＭに対応する希望時間帯が重複する重複時間が所要時間以上になるように、ＶＭ１〜ＶＭ６を２つのグループに分類し、それぞれのグループをホスト１とホスト２とに配置する配置構成候補を作成する。図１１の例では、システム制御装置１００は、配置構成候補Ｎｏ．１〜配置構成候補Ｎｏ．８を、表１１０１のように作成して記憶する。
【０１０２】
配置構成候補Ｎｏ．１は、ＶＭ１とＶＭ２とＶＭ５とを含むグループをホスト１に配置し、ＶＭ３とＶＭ４とＶＭ６とを含むグループをホスト２に配置することを示す。配置構成候補Ｎｏ．２は、ＶＭ１とＶＭ２とＶＭ６とを含むグループをホスト１に配置し、ＶＭ３とＶＭ４とＶＭ５とを含むグループをホスト２に配置することを示す。
【０１０３】
配置構成候補Ｎｏ．３は、ＶＭ１とＶＭ２を含むグループをホスト１に配置し、ＶＭ３〜ＶＭ６を含むグループをホスト２に配置することを示す。配置構成候補Ｎｏ．４は、ＶＭ３とＶＭ４とを含むグループをホスト１に配置し、ＶＭ１とＶＭ２とＶＭ５とＶＭ６とを含むグループをホスト２に配置することを示す。
【０１０４】
配置構成候補Ｎｏ．５は、ＶＭ３とＶＭ４とＶＭ６とを含むグループをホスト１に配置し、ＶＭ１とＶＭ２とＶＭ５とを含むグループをホスト２に配置することを示す。配置構成候補Ｎｏ．６は、ＶＭ３とＶＭ４とＶＭ５とを含むグループをホスト１に配置し、ＶＭ１とＶＭ２とＶＭ６とを含むグループをホスト２に配置することを示す。
【０１０５】
配置構成候補Ｎｏ．７は、ＶＭ３〜ＶＭ６を含むグループをホスト１に配置し、ＶＭ１とＶＭ２とを含むグループをホスト２に配置することを示す。配置構成候補Ｎｏ．８は、ＶＭ１とＶＭ２とＶＭ５とＶＭ６とを含むグループをホスト１に配置し、ＶＭ３とＶＭ４とを含むグループをホスト２に配置することを示す。
【０１０６】
システム制御装置１００は、さらに、システム構成情報テーブル８００を参照し、配置構成候補Ｎｏ．１〜配置構成候補Ｎｏ．８について、同一システムを実現するＶＭが同一ホスト２１０に配置された数を算出する。図１１の例では、システム制御装置１００は、同一システムを実現するＶＭが同一ホスト２１０に配置された数を、表１１０１のように算出して記憶する。
【０１０７】
システム制御装置１００は、配置構成候補Ｎｏ．１〜配置構成候補Ｎｏ．８を、算出した数が最大である配置構成候補に絞り込み、ユーザのシステムに与える悪影響を抑制することができる配置構成候補を特定する。図１１の例では、システム制御装置１００は、表１１０２のように、配置構成候補Ｎｏ．３と配置構成候補Ｎｏ．４と配置構成候補Ｎｏ．７と配置構成候補Ｎｏ．８とに絞り込んで記憶する。次に、図１２の説明に移行する。
【０１０８】
図１２において、システム制御装置１００は、絞り込んだ配置構成候補Ｎｏ．３と配置構成候補Ｎｏ．４と配置構成候補Ｎｏ．７と配置構成候補Ｎｏ．８とについて、各ホスト２１０に配置されるＶＭの希望時間帯の重複時間をメンテナンス可能時間として算出する。図１２の例では、システム制御装置１００は、表１２０１のように、配置構成候補Ｎｏ．３と配置構成候補Ｎｏ．４と配置構成候補Ｎｏ．７と配置構成候補Ｎｏ．８とについてメンテナンス可能時間を算出する。
【０１０９】
システム制御装置１００は、配置構成候補Ｎｏ．３と配置構成候補Ｎｏ．４と配置構成候補Ｎｏ．７と配置構成候補Ｎｏ．８とを、メンテナンス可能時間が最大である配置構成候補に絞り込み、メンテナンス作業が実施しやすい配置構成候補を特定する。図１２の例では、システム制御装置１００は、表１２０２のように、配置構成候補Ｎｏ．４と配置構成候補Ｎｏ．８とに絞り込んで記憶する。次に、図１３の説明に移行する。
【０１１０】
図１３において、システム制御装置１００は、絞り込んだ配置構成候補Ｎｏ．４と配置構成候補Ｎｏ．８とについて、現在のＶＭの配置と比較して配置が変更されるＶＭの数を算出する。図１３の例では、システム制御装置１００は、表１３０１のように、配置構成候補Ｎｏ．４と配置構成候補Ｎｏ．８とについて、配置が変更されるＶＭの数を算出する。
【０１１１】
システム制御装置１００は、配置構成候補Ｎｏ．４と配置構成候補Ｎｏ．８とを、配置が変更される数が最小である配置構成候補に絞り込み、配置の変更にかかる時間の増大化を抑制することができる配置構成候補を特定する。図１３の例では、システム制御装置１００は、表１３０２のように、配置構成候補Ｎｏ．４に絞り込んで記憶する。
【０１１２】
システム制御装置１００は、絞り込んだ配置構成候補Ｎｏ．４に基づいて、ＶＭの配置変更を含むメンテナンス作業を実施する。これにより、システム制御装置１００は、ＶＭのユーザが希望する時間帯においてホスト２１０のメンテナンス作業を実施することができる。結果として、システム制御装置１００は、ＶＭのユーザが希望する時間帯以外に、ＶＭが停止してしまい、サービスが停止してしまうことを防止することができ、ＶＭの利便性の向上を図ることができる。
【０１１３】
また、システム制御装置１００は、ユーザのシステムに与える悪影響を抑制するように、複数のＶＭを複数のホストに配置することができる。また、システム制御装置１００は、配置の変更にかかる時間の増大化を抑制するように、複数のＶＭを複数のホストに配置することができる。また、システム制御装置１００は、メンテナンス可能時間が比較的大きく、メンテナンス作業が実施しやすいように、複数のＶＭを複数のホストに配置することができる。
【０１１４】
（配置処理手順の一例）
次に、図１４および図１５を用いて、配置処理手順の一例について説明する。
【０１１５】
図１４および図１５は、配置処理手順の一例を示すフローチャートである。図１４において、システム制御装置１００は、ＶＭ配置構成情報テーブル７００を参照し、対象ホスト２１０に配置されたＶＭについてＶＭ名を取得する（ステップＳ１４０１）。
【０１１６】
次に、システム制御装置１００は、メンテナンス希望時間帯情報テーブル４００を参照し、ＶＭごとの希望時間帯と希望日とを取得する（ステップＳ１４０２）。そして、システム制御装置１００は、メンテナンス所要時間情報テーブル５００を参照し、対象種別のメンテナンスにかかる所要時間を取得する（ステップＳ１４０３）。
【０１１７】
次に、システム制御装置１００は、グループ内のＶＭに対応する希望時間帯が重複し、グループ内のＶＭに対応する希望時間帯が重複する重複時間が、取得した所要時間以上になるように、複数のＶＭをグループ化する（ステップＳ１４０４）。そして、システム制御装置１００は、グループが作成されたか否かを判定する（ステップＳ１４０５）。
【０１１８】
ここで、グループが作成されていない場合（ステップＳ１４０５：Ｎｏ）、システム制御装置１００は、配置処理を終了する。一方で、グループが作成された場合（ステップＳ１４０５：Ｙｅｓ）、システム制御装置１００は、ステップＳ１４０６の処理に移行する。
【０１１９】
ステップＳ１４０６では、システム制御装置１００は、ＶＭ配置構成情報テーブル７００を参照し、各ＶＭのスペック情報を取得し、リソース管理情報テーブル６００を参照し、各ホスト２１０のリソース情報を取得する（ステップＳ１４０６）。
【０１２０】
次に、システム制御装置１００は、作成したグループごとに異なるホスト２１０に配置する配置構成候補を作成する（ステップＳ１４０７）。そして、システム制御装置１００は、配置構成候補が作成されたか否かを判定する（ステップＳ１４０８）。
【０１２１】
ここで、配置構成候補が作成されていない場合（ステップＳ１４０８：Ｎｏ）、システム制御装置１００は、配置処理を終了する。一方で、配置構成候補が作成された場合（ステップＳ１４０８：Ｙｅｓ）、システム制御装置１００は、図１５のステップＳ１５０１の処理に移行する。
【０１２２】
図１５において、システム制御装置１００は、作成された配置構成候補が複数あるか否かを判定する（ステップＳ１５０１）。
【０１２３】
ここで、作成された配置構成候補が１つである場合（ステップＳ１５０１：Ｎｏ）、システム制御装置１００は、ステップＳ１５０８の処理に移行する。一方で、作成された配置構成候補が複数ある場合（ステップＳ１５０１：Ｙｅｓ）、システム制御装置１００は、ステップＳ１５０２の処理に移行する。
【０１２４】
ステップＳ１５０２では、システム制御装置１００は、システム構成情報テーブル８００を参照し、各システムを実現するＶＭについてＶＭ名を取得する（ステップＳ１５０２）。次に、システム制御装置１００は、作成された配置構成候補のうち、同一システムを実現するＶＭが同一ホスト２１０に配置される度合いが比較的大きい配置構成候補を特定する（ステップＳ１５０３）。そして、システム制御装置１００は、特定された配置構成候補が複数あるか否かを判定する（ステップＳ１５０４）。
【０１２５】
ここで、特定された配置構成候補が１つである場合（ステップＳ１５０４：Ｎｏ）、システム制御装置１００は、ステップＳ１５０８の処理に移行する。一方で、特定された配置構成候補が複数ある場合（ステップＳ１５０４：Ｙｅｓ）、システム制御装置１００は、ステップＳ１５０５の処理に移行する。
【０１２６】
ステップＳ１５０５では、システム制御装置１００は、特定された複数の配置構成候補のうち、各ホスト２１０に配置されるＶＭの希望時間帯の重複時間を算出し、算出した重複時間の合計が最も大きくなる配置構成候補を特定する（ステップＳ１５０５）。そして、システム制御装置１００は、特定された配置構成候補が複数あるか否かを判定する（ステップＳ１５０６）。
【０１２７】
ここで、特定された配置構成候補が１つである場合（ステップＳ１５０６：Ｎｏ）、システム制御装置１００は、ステップＳ１５０８の処理に移行する。一方で、特定された配置構成候補が複数ある場合（ステップＳ１５０６：Ｙｅｓ）、システム制御装置１００は、ステップＳ１５０７の処理に移行する。
【０１２８】
ステップＳ１５０７では、システム制御装置１００は、特定された複数の配置構成候補のうち、現在のＶＭの配置と比較して、配置が変更されるＶＭの数が最も小さくなる配置構成候補を特定する（ステップＳ１５０７）。そして、システム制御装置１００は、ステップＳ１５０８の処理に移行する。
【０１２９】
ステップＳ１５０８では、システム制御装置１００は、特定された配置構成候補に基づいて、ＶＭ配置構成情報テーブル７００を更新する（ステップＳ１５０８）。次に、システム制御装置１００は、ホスト２１０ごとにメンテナンス時間帯とメンテナンス日とを特定し、メンテナンス可能時間帯情報テーブル９００を更新する（ステップＳ１５０９）。
【０１３０】
そして、システム制御装置１００は、配置処理を終了する。これにより、システム制御装置１００は、ＶＭのユーザが希望する時間帯以外に、ＶＭが停止してしまい、サービスが停止してしまうことを防止することができ、ＶＭの利便性の向上を図ることができる。
【０１３１】
以上説明したように、システム制御装置１００によれば、メンテナンス作業の対象である複数のホスト２１０に対して配置される複数のＶＭを、同一グループ内の各ＶＭに対応する希望時間帯の重複時間が所定時間以上になるように分類することができる。システム制御装置１００によれば、分類して得られたグループごとに異なるホスト２１０に配置することができる。これにより、システム制御装置１００は、ＶＭのユーザが希望する時間帯においてホスト２１０のメンテナンス作業を実施することができる。結果として、システム制御装置１００は、ＶＭのユーザが希望する時間帯以外に、ＶＭが停止してしまい、サービスが停止してしまうことを防止することができ、ＶＭの利便性の向上を図ることができる。
【０１３２】
システム制御装置１００によれば、複数のＶＭを、ホスト２１０の数を超えない数のグループに分類することができる。これにより、システム制御装置１００は、１つのホスト２１０に１つのグループが配置されるようにすることができる。結果として、システム制御装置１００は、２以上のグループが１つのホスト２１０に配置されてしまい、２以上のグループのいずれかのグループの各ＶＭに対応する希望時間帯以外に、ホスト２１０のメンテナンス作業が実施されることを防止することができる。
【０１３３】
システム制御装置１００によれば、複数のＶＭを、同一グループ内の各ＶＭに対応する希望時間帯の重複時間が所定時間以上になり、かつ、同一システムが利用するＶＭが同一グループに含まれるように分類することができる。これにより、システム制御装置１００は、システムに用いられるＶＭのいずれかが停止することにより、システムが実現するサービスが停止してしまう時間の増大化を抑制することができる。
【０１３４】
システム制御装置１００によれば、メンテナンス作業の種別を示す情報を受け付けることができる。システム制御装置１００によれば、受け付けたメンテナンス作業の種別を示す情報に対応する所要時間に基づいて、所定時間を設定することができる。これにより、システム制御装置１００は、複数のＶＭを分類しやすくすることができ、メンテナンス作業を失敗しにくくすることができる。
【０１３５】
システム制御装置１００によれば、複数のＶＭを、同一グループ内の各ＶＭに対応する希望時間帯の重複時間が所定時間以上になり、かつ、同一グループ内の各ＶＭに対応する希望時間帯の重複時間が大きくなるように分類することができる。これにより、システム制御装置１００は、グループをホスト２１０に配置した場合、ホスト２１０のメンテナンス作業を実施可能な時間帯が長くなるようにすることができる。結果として、システム制御装置１００は、管理者が、メンテナンス作業を実施する時間帯を設定しやすくすることができる。また、システム制御装置１００は、メンテナンス作業の不具合によりメンテナンス作業にかかる所要時間が伸びた場合に対応しやすくすることができる。
【０１３６】
システム制御装置１００によれば、分類して得られたグループごとに異なるホスト２１０に配置した後、ホスト２１０に配置されたグループ内の各ＶＭに対応する希望時間帯の重複時間帯に、ホスト２１０のメンテナンス作業を実施することができる。これにより、システム制御装置１００は、メンテナンス作業により、希望時間帯以外に停止する仮想マシンがなくなるようにし、メンテナンス作業を完了することができる。
【０１３７】
システム制御装置１００によれば、グループに分類されていないＶＭがあれば、グループに分類されていない１つのＶＭを、新たなグループに分類することができる。これにより、システム制御装置１００は、グループに分類されない仮想マシンをなくすことができ、仮想マシンが物理マシンに配置されなくなることを防止することができる。
【０１３８】
システム制御装置１００によれば、いずれかのＶＭを示す情報にホスト２１０のメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を受け付けることができる。これにより、システム制御装置１００は、ユーザの希望を第１の対応情報に反映させることができ、第１の対応情報を最新の状態に更新することができる。
【０１３９】
システム制御装置１００によれば、希望時間帯を示す情報として、メンテナンス作業が禁止された時間帯を示す情報を受け付けることができる。システム制御装置１００によれば、メンテナンス作業が禁止された時間帯に基づいて、希望時間帯を特定することができる。これにより、システム制御装置１００は、メンテナンスを実施する希望時間帯ではなく、メンテナンスを実施しない禁止時間帯を、ユーザが指定可能にすることができる。このため、システム制御装置１００は、ＶＭの利便性の向上を図ることができる。
【０１４０】
なお、本実施の形態で説明したメンテナンス制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したメンテナンス制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したメンテナンス制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１４１】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１４２】
（付記１）コンピュータに、
仮想マシンを示す情報ごとに物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を参照し、メンテナンス作業の対象である複数の物理マシンに対して配置される複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になるように分類し、
分類して得られたグループごとに異なる前記物理マシンに配置する、
処理を実行させることを特徴とするメンテナンス制御プログラム。
【０１４３】
（付記２）前記分類する処理は、
前記複数の仮想マシンを、前記物理マシンの数を超えない数のグループに分類する、ことを特徴とする付記１に記載のメンテナンス制御プログラム。
【０１４４】
（付記３）前記分類する処理は、
システムを示す情報ごとに前記システムが利用する仮想マシンを示す情報を対応付けた対応情報を参照し、前記複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になり、かつ、同一システムが利用する仮想マシンが同一グループに含まれるように分類する、ことを特徴とする付記１または２に記載のメンテナンス制御プログラム。
【０１４５】
（付記４）前記コンピュータに、
メンテナンス作業の種別を示す情報を受け付け、
メンテナンス作業の種別を示す情報ごとに前記メンテナンス作業の所要時間を示す情報を対応付けた対応情報を参照し、受け付けた前記情報に対応する所要時間に基づいて、前記所定時間を設定する、処理を実行させることを特徴とする付記１〜３のいずれか一つに記載のメンテナンス制御プログラム。
【０１４６】
（付記５）前記分類する処理は、
前記複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になり、かつ、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が大きくなるように分類する、ことを特徴とする付記１〜４のいずれか一つに記載のメンテナンス制御プログラム。
【０１４７】
（付記６）前記コンピュータに、
分類して得られたグループごとに異なる前記物理マシンに配置した後、前記物理マシンに配置された前記グループ内の各仮想マシンに対応する希望時間帯の重複時間帯に、前記物理マシンのメンテナンス作業を実施する、ことを特徴とする付記１〜５のいずれか一つに記載のメンテナンス制御プログラム。
【０１４８】
（付記７）前記分類する処理は、
前記グループに分類されていない仮想マシンがあれば、前記グループに分類されていない１つの仮想マシンを、新たなグループに分類する、ことを特徴とする付記１〜６のいずれか一つに記載のメンテナンス制御プログラム。
【０１４９】
（付記８）前記コンピュータに、
いずれかの仮想マシンを示す情報に物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を受け付ける、処理を実行させることを特徴とする付記１〜７のいずれか一つに記載のメンテナンス制御プログラム。
【０１５０】
（付記９）前記希望時間帯を示す情報は、メンテナンス作業が禁止された時間帯を示す情報である、ことを特徴とする付記１〜７のいずれか一つに記載のメンテナンス制御プログラム。
【０１５１】
（付記１０）コンピュータが、
仮想マシンを示す情報ごとに物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を参照し、メンテナンス作業の対象である複数の物理マシンに対して配置される複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になるように分類し、
分類して得られたグループごとに異なる前記物理マシンに配置する、
処理を実行することを特徴とするメンテナンス制御方法。
【０１５２】
（付記１１）仮想マシンを示す情報ごとに物理マシンのメンテナンス作業を実施する希望時間帯を示す情報を対応付けた対応情報を参照し、メンテナンス作業の対象である複数の物理マシンに対して配置される複数の仮想マシンを、同一グループ内の各仮想マシンに対応する希望時間帯の重複時間が所定時間以上になるように分類し、
分類して得られたグループごとに異なる前記物理マシンに配置する、
制御部を有することを特徴とするシステム制御装置。
【符号の説明】
【０１５３】
１００  システム制御装置
２００  メンテナンス制御システム
２０１  時間要望情報受付部
２０２  メンテナンス情報受付部
２０３  ＶＭ配置構成決定部
２０４  ＶＭ配置変更指示部
２０５  メンテナンス可能時間帯情報通知部
２１０  ホスト
２２０  ユーザ装置
２３０  管理者装置
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  ネットワークＩ／Ｆ
３０４  記録媒体Ｉ／Ｆ
３０５  記録媒体
３１０  ネットワーク
４００  メンテナンス希望時間帯情報テーブル
５００  メンテナンス所要時間情報テーブル
６００  リソース管理情報テーブル
７００  ＶＭ配置構成情報テーブル
８００  システム構成情報テーブル
９００  メンテナンス可能時間帯情報テーブル
１０００  記憶部
１００１  取得部
１００２  分類部
１００３  メンテナンス部
１００４  出力部
【図１】
2019040320.tif 000003
【図２】
2019040320.tif 000004
【図３】
2019040320.tif 000005
【図４】
2019040320.tif 000006
【図５】
2019040320.tif 000007
【図６】
2019040320.tif 000008
【図７】
2019040320.tif 000009
【図８】
2019040320.tif 000010
【図９】
2019040320.tif 000011
【図１０】
2019040320.tif 000012
【図１１】
2019040320.tif 000013
【図１２】
2019040320.tif 000014
【図１３】
2019040320.tif 000015
【図１４】
2019040320.tif 000016
【図１５】
2019040320.tif 000017