(57)【要約】【課題】  サービス性能の低下を防止するプログラムの移動スケジュールを設計する移動スケジュール設計装置を提供する。【解決手段】  移動スケジュール設計装置に、移動前または後のコンピュータでの利用可能なＣＰＵ量をプログラムの数で按分するＣＰＵ量分配部２と、プログラムごとのＣＰＵ量に基づき、ネットワークの帯域をプログラムごとに算出し、またプログラムごとの移動時間を算出する移動時間計算部３と、算出された移動時間が最短となるプログラムを選択し、移動完了予定時間から選択されたプログラムの移動時間分さかのぼった時間を選択されたプログラムの移動開始時間とするとともに、選択されていない残プログラムの残データ量を算出する開始時間決定部４と、残プログラムが残データ量を有するプログラムであるとして、上記各部に処理を繰り返し実行させるよう制御する反復制御部５とを備えた。【選択図】図２
2010237730.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムそれぞれが稼動しているときのメモリ内のデータそれぞれを、他の一つまたは複数のコンピュータのメモリに移動させるためのスケジュールを設計する移動スケジュール設計装置であって、
移動元または移動先のコンピュータでの利用可能なＣＰＵ量を、データを移動させるべきプログラムの数で按分し、該按分されたＣＰＵ量を前記プログラムそれぞれに分配するＣＰＵ量分配部と、
前記ＣＰＵ量分配部によって分配された前記プログラムごとのＣＰＵ量に基づき、前記メモリ内のデータそれぞれを移動させるときに使用されるネットワークの帯域を、前記プログラムごとに算出し、算出した前記プログラムごとの帯域と前記プログラムごとのデータ量とに基づき、前記プログラムごとの移動時間を算出する移動時間計算部と、
前記移動時間計算部によって算出された移動時間が最短となるプログラムを選択し、移動させるべきプログラム全ての移動が完了する予定時間から前記選択されたプログラムの移動時間分さかのぼった時間を前記選択されたプログラムの移動開始時間とするとともに、前記選択されたプログラム以外の残プログラムに対し、前記残プログラムのデータそれぞれが前記最短の移動時間のうちに移動したものとみなしたときの残りのデータ量である未移動データ量を、前記残プログラムごとに算出する開始時間決定部と、
前記未移動データ量を有する残プログラムが無くなるまで、前記残プログラムそれぞれが前記未移動データ量それぞれを有するプログラムであるとして、前記残プログラムを対象とした処理を前記ＣＰＵ量分配部、前記移動時間計算部、前記開始時間決定部に繰り返し実行させるよう制御する反復制御部と、
を備える移動スケジュール設計装置。
【請求項２】
請求項１に記載の移動スケジュール設計装置において、
前記移動時間計算部は、さらに、
算出された前記プログラムごとの帯域を合算した合算帯域が、前記ネットワークで使用できる帯域を超えている場合、前記合算帯域が前記ネットワークで使用できる帯域となるよう前記プログラムごとの帯域を補正し、補正した前記プログラムごとの帯域と前記プログラムごとのデータ量とに基づき、前記プログラムごとの移動時間を算出することを特徴とする移動スケジュール設計装置。
【請求項３】
複数のプログラムそれぞれが稼動しているときのメモリ内のデータそれぞれを、他の一つまたは複数のコンピュータのメモリに移動させるためのスケジュールを設計する処理を、コンピュータに実行させる移動スケジュール設計プログラムであって、
移動元または移動先のコンピュータでの利用可能なＣＰＵ量を、データを移動させるべきプログラムの数で按分し、該按分されたＣＰＵ量を前記プログラムそれぞれに分配するステップと、
分配された前記プログラムごとのＣＰＵ量に基づき、前記メモリ内のデータそれぞれを移動させるときに使用されるネットワークの帯域を、前記プログラムごとに算出し、算出した前記プログラムごとの帯域と前記プログラムごとのデータ量とに基づき、前記プログラムごとの移動時間を算出するステップと、
算出された移動時間が最短となるプログラムを選択し、移動させるべきプログラム全ての移動が完了する予定時間から前記選択されたプログラムの移動時間分さかのぼった時間を前記選択されたプログラムの移動開始時間とするとともに、前記選択されたプログラム以外の残プログラムに対し、前記残プログラムのデータそれぞれが前記最短の移動時間のうちに移動したものとみなしたときの残りのデータ量である未移動データ量を、前記残プログラムごとに算出するステップと、
前記未移動データ量を有する残プログラムが無くなるまで、前記残プログラムがそれぞれ前記未移動データ量それぞれを有するプログラムであるとして、前記残プログラムを対象とした処理を前記各ステップに繰り返し実行させるよう制御するステップと、
をコンピュータに実行させる移動スケジュール設計プログラム。
【請求項４】
請求項３に記載の移動スケジュール設計プログラムにおいて、
前記プログラムごとの移動時間を算出するステップは、さらに、算出された前記プログラムごとの帯域を合算した合算帯域が、前記ネットワークで使用できる帯域を超えている場合、前記合算帯域が前記ネットワークで使用できる帯域となるよう前記プログラムごとの帯域を補正し、補正した前記プログラムごとの帯域と前記プログラムごとのデータ量とに基づき、前記プログラムごとの移動時間を算出することを特徴とする移動スケジュール設計プログラム。
【請求項５】
複数のプログラムそれぞれが稼動しているときのメモリ内のデータそれぞれを、他の一つまたは複数のコンピュータのメモリに移動させるためのスケジュールを設計する処理を、コンピュータが実行する移動スケジュール設計方法であって、
移動元または移動先のコンピュータでの利用可能なＣＰＵ量を、データを移動させるべきプログラムの数で按分し、該按分されたＣＰＵ量を前記プログラムそれぞれに分配するステップと、
分配された前記プログラムごとのＣＰＵ量に基づき、前記メモリ内のデータそれぞれを移動させるときに使用されるネットワークの帯域を、前記プログラムごとに算出し、算出した前記プログラムごとの帯域と前記プログラムごとのデータ量とに基づき、前記プログラムごとの移動時間を算出するステップと、
算出された移動時間が最短となるプログラムを選択し、移動させるべきプログラム全ての移動が完了する予定時間から前記選択されたプログラムの移動時間分さかのぼった時間を前記選択されたプログラムの移動開始時間とするとともに、前記選択されたプログラム以外の残プログラムに対し、前記残プログラムのデータそれぞれが前記最短の移動時間のうちに移動したものとみなしたときの残りのデータ量である未移動データ量を、前記残プログラムごとに算出するステップと、
前記未移動データ量を有する残プログラムが無くなるまで、前記残プログラムそれぞれが前記未移動データ量それぞれを有するプログラムであるとして、前記残プログラムを対象とした処理を前記各ステップに繰り返し実行させるよう制御するステップと、
をコンピュータが実行する移動スケジュール設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
サーバ間でプログラムが移動する際のスケジュールを設計する移動スケジュール設計装置、移動スケジュール設計プログラム、移動スケジュール設計方法に関する。
【背景技術】
【０００２】
仮想化データセンタは、サービスを提供するサーバをソフトウェアで仮想化し、複数の仮想サーバ(仮想インスタンス：以降単にインスタンスと呼ぶ）を同一物理サーバ上で起動させることで運用する。このような仮想化データセンタは、物理サーバ１０００台以上、インスタンス数５０００〜７０００以上の規模になり得る。
【０００３】
また仮想化データセンタでは、物理サーバはラックに格納され、ラック単位で管理される。各物理サーバはラック内のスイッチ(以下、ラック内ＳＷ（ＳＷ：スイッチ装置）と称す）に直接接続され、さらにそのラック内ＳＷが上位層のラック間スイッチ(ここではラック間ＳＷと称す)に接続される等、多段構成のスイッチで接続されることで、全物理サーバ間のネットワークが構築されることになる。その際、ラック間ＳＷを経由する場合に利用可能な帯域は、ラック内ＳＷの帯域より狭くなる。
【０００４】
ラック間ＳＷの帯域が狭いことから、複数のインスタンスから成るサービスのうち、一部のインスタンスが別のラックにある物理サーバに配置して稼動させると、他のサービスやストレージなどのデータ通信とスイッチ間帯域の奪い合いになり、サービス性能が低下する場合がある。よって同一サービスのインスタンスは同一ラック内ＳＷ下の各物理サーバに配置するよう設計される。
【０００５】
また、仮想化データセンタの運用管理の上で、インスタンスの収容率向上やインスタンスのサイズ増減／数量増減を調整するため、インスタンスの再配置が実施される。この際にも、同一サービスのインスタンスがラック間にまたがらないように再配置設計が行われる。
【０００６】
実際に別ラックの各物理サーバにサービスを移動させる場合において、サービス内の全インスタンスの移動要求を同時に行っても、各々のインスタンスのリソース量(割当ＣＰＵ（Central Processing Unit）性能、割当メモリ量など)の違いによりインスタンスの移動時間が異なるため、サービス移動作業中には移動前のラックで稼動するインスタンスと移動後のラックで稼動するインスタンスが混在する状態が発生する。
【０００７】
なお、従来技術として、以下の文献が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００４−５０８６１６号公報
【特許文献２】特開２００４−１１０７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図１６に、ラックＡ内のインスタンスであるＷＥＢインスタンス（図１６ではＷＥＢと表記）、ＡＰＰインスタンス（ＡＰＰ：アプリケーション（図１６ではＡＰＰと表記）、およびＤＢインスタンス（ＤＢ：Ｄａｔａｂａｓｅ（図１６ではＤＢと表記））で使用される主記憶装置（以下メモリと称す）内のデータをラックＢ内の各物理サーバに移動させるときの動作について説明する。尚、ユーザからの要求およびサービスを提供するための処理上発生するデータ通信は、ＳＷ−Ａ、ＳＷ−Ｃ、ＳＷ−Ｂの各スイッチによって構成されるサービス系ＮＥＴを介して行われ、各インスタンスのデータの移動は管理系ネットを介して行われる。
【００１０】
図１６（Ａ）に移動前の初期状態を示す。ここで、各インスタンスのメモリ内のデータの移動（以下、単に移動と称す）が同時刻に同時に開始された場合、まずリソース量の小さい順に移動処理が完了する。本例では、ＡＰＰインスタンスの移動が完了し（図１６（Ｂ）参照）、その後ＷＥＢインスタンスの移動が完了するものとする（図１６（Ｃ）参照）。
【００１１】
図１６（Ｂ）、図１６（Ｃ）の状態でユーザからサービス提供の要求があった場合、従来の技術では、先に移動完了したインスタンスと未だ移動が完了していないインスタンスとの間で、サービスを提供するための処理上発生するデータ通信がサービス系ネット上で始まるため、サービス性能が低下する場合がある。また、単にサービス移動時のメモリコピー完了を同期するだけでは、同期待ちの間も変更されたメモリ内のデータが継続的にコピーされてしまい、リソースを無駄に消費してしまう。
【００１２】
この問題を解消するため、サービスを構成するインスタンス群の切り替えが同時に行われるよう、移動が終わった段階のインスタンスに対し、移動後物理サーバ上での処理を他のインスタンスの移動が完了するまで待機させ、全てのインスタンスの移動が完了した後に切り替える方法も考えられる。しかし、ユーザからの要求があった場合、移動が完了したインスタンスに関しても、移動元の物理サーバ内で稼動しているインスタンスのメモリが更新され続け、更新され続ける限り当該移動が完了したインスタンスにも移動処理が継続して行われる。よって、移動待機中に無駄に資源を消費し、また他のインスタンスの移動に影響を及ぼす。よって、全体の移動時間が増大することになってしまう。
【００１３】
本発明は上述した問題点を解決するためになされたものであり、サービスを構成する各インスタンスについて、インスタンスのメモリ量や移動時に利用可能な資源量、そして同時に移動するインスタンスの組み合わせを考慮して、インスタンスの移動にかかる時間の見積もりを行い、サービスを構成する全インスタンスの移動完了時間が一致するように各インスタンスの移動開始時間を設定することができる移動スケジュール設計装置、移動スケジュール設計プログラム、移動スケジュール設計方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
移動スケジュール設計装置は、複数のプログラムそれぞれが稼動しているときのメモリ内のデータそれぞれを、他の一つまたは複数のコンピュータのメモリに移動させるためのスケジュールを設計する移動スケジュール設計装置であって、移動元または移動先のコンピュータでの利用可能なＣＰＵ量を、データを移動させるべきプログラムの数で按分し、該按分されたＣＰＵ量を前記プログラムそれぞれに分配するＣＰＵ量分配部と、前記ＣＰＵ量分配部によって分配された前記プログラムごとのＣＰＵ量に基づき、前記メモリ内のデータそれぞれを移動させるときに使用されるネットワークの帯域を、前記プログラムごとに算出し、算出した前記プログラムごとの帯域と前記プログラムごとのデータ量とに基づき、前記プログラムごとの移動時間を算出する移動時間計算部と、前記移動時間計算部によって算出された移動時間が最短となるプログラムを選択し、移動させるべきプログラム全ての移動が完了する予定時間から前記選択されたプログラムの移動時間分さかのぼった時間を前記選択されたプログラムの移動開始時間とするとともに、前記選択されたプログラム以外の残プログラムに対し、前記残プログラムのデータそれぞれが前記最短の移動時間のうちに移動したものとみなしたときの残りのデータ量である未移動データ量を、前記残プログラムごとに算出する開始時間決定部と、前記未移動データ量を有する残プログラムが無くなるまで、前記残プログラムそれぞれが前記未移動データ量それぞれを有するプログラムであるとして、前記残プログラムを対象とした処理を前記ＣＰＵ量分配部、前記移動時間計算部、前記開始時間決定部に繰り返し実行させるよう制御する反復制御部と、を備える。
【００１５】
移動スケジュール設計プログラムは、複数のプログラムそれぞれが稼動しているときのメモリ内のデータそれぞれを、他の一つまたは複数のコンピュータのメモリに移動させるためのスケジュールを設計する処理を、コンピュータに実行させる移動スケジュール設計プログラムであって、移動元または移動先のコンピュータでの利用可能なＣＰＵ量を、データを移動させるべきプログラムの数で按分し、該按分されたＣＰＵ量を前記プログラムそれぞれに分配するステップと、分配された前記プログラムごとのＣＰＵ量に基づき、前記メモリ内のデータそれぞれを移動させるときに使用されるネットワークの帯域を、前記プログラムごとに算出し、算出した前記プログラムごとの帯域と前記プログラムごとのデータ量とに基づき、前記プログラムごとの移動時間を算出するステップと、算出された移動時間が最短となるプログラムを選択し、移動させるべきプログラム全ての移動が完了する予定時間から前記選択されたプログラムの移動時間分さかのぼった時間を前記選択されたプログラムの移動開始時間とするとともに、前記選択されたプログラム以外の残プログラムに対し、前記残プログラムのデータそれぞれが前記最短の移動時間のうちに移動したものとみなしたときの残りのデータ量である未移動データ量を、前記残プログラムごとに算出するステップと、前記未移動データ量を有する残プログラムが無くなるまで、前記残プログラムがそれぞれ前記未移動データ量それぞれを有するプログラムであるとして、前記残プログラムを対象とした処理を前記各ステップに繰り返し実行させるよう制御するステップと、をコンピュータに実行させる。
【００１６】
移動スケジュール設計方法は、複数のプログラムそれぞれが稼動しているときのメモリ内のデータそれぞれを、他の一つまたは複数のコンピュータのメモリに移動させるためのスケジュールを設計する処理を、コンピュータが実行する移動スケジュール設計方法であって、移動元または移動先のコンピュータでの利用可能なＣＰＵ量を、データを移動させるべきプログラムの数で按分し、該按分されたＣＰＵ量を前記プログラムそれぞれに分配するステップと、分配された前記プログラムごとのＣＰＵ量に基づき、前記メモリ内のデータそれぞれを移動させるときに使用されるネットワークの帯域を、前記プログラムごとに算出し、算出した前記プログラムごとの帯域と前記プログラムごとのデータ量とに基づき、前記プログラムごとの移動時間を算出するステップと、算出された移動時間が最短となるプログラムを選択し、移動させるべきプログラム全ての移動が完了する予定時間から前記選択されたプログラムの移動時間分さかのぼった時間を前記選択されたプログラムの移動開始時間とするとともに、前記選択されたプログラム以外の残プログラムに対し、前記残プログラムのデータそれぞれが前記最短の移動時間のうちに移動したものとみなしたときの残りのデータ量である未移動データ量を、前記残プログラムごとに算出するステップと、前記未移動データ量を有する残プログラムが無くなるまで、前記残プログラムそれぞれが前記未移動データ量それぞれを有するプログラムであるとして、前記残プログラムを対象とした処理を前記各ステップに繰り返し実行させるよう制御するステップと、をコンピュータが実行する。
【発明の効果】
【００１７】
移動させるべきプログラムの移動完了時間が同時となるスケジュールを設計できるため、設計されたスケジュールでプログラムの移動作業処理がなされている最中にユーザから要求が発生した場合でも、サービス性能の低下を防止することができる。
【図面の簡単な説明】
【００１８】
【図１】従来のインスタンス移動手法と本実施の形態でのインスタンス移動手法によるサービス系ネットの品質の差異を説明するための図である。
【図２】本実施の形態に係るインスタンス移動管理システムの機能の一例を説明するための図である。
【図３】本実施の形態に係る移動スケジュール設計装置が使用するデータの一例を示す図である。
【図４】本実施の形態に係るスケジュール設計方法の一例を説明するための図である（初期状態）。
【図５】本実施の形態に係るスケジュール設計方法の一例を説明するための図である（ＣＰＵ量の分配）。
【図６】本実施の形態に係るスケジュール設計方法の一例を説明するための図である（移動用帯域消費の計算）。
【図７】本実施の形態に係るスケジュール設計方法の一例を説明するための図である（移動用帯域消費の補正）。
【図８】本実施の形態に係るスケジュール設計方法の一例を説明するための図である（移動用ＣＰＵ消費の修正）。
【図９】本実施の形態に係るスケジュール設計方法の一例を説明するための図である（転送時間の算出）。
【図１０】本実施の形態に係るスケジュール設計方法の一例を説明するための図である（ＤＢインスタンスの移動開始時間確定）。
【図１１】本実施の形態に係るスケジュール設計方法の一例を説明するための図である（ＡＰインスタンスの移動開始時間確定）。
【図１２】本実施の形態に係るスケジュール設計方法の一例を説明するための図である（ＷＥＢインスタンスの移動開始時間確定）。
【図１３】本実施の形態に係る移動スケジュール設計装置の処理の一例を示すフローチャートである。
【図１４】本実施の形態に係る移動スケジュール設計装置のハードウェア構成の一例を示す図である。
【図１５】本実施の形態に係る移動スケジュール設計装置内部のハードウェア構成の一例を示す図である。
【図１６】従来の所定ラックに設置された各物理サーバ内のメモリデータを他のラック内の各物理サーバに移動させるときの動作を説明するための図である。
【発明を実施するための形態】
【００１９】
まず、図１に基づき、従来のインスタンス移動手法と本実施の形態でのインスタンス移動手法によるサービス系ネット（サービスをラック間ＳＷを介してユーザに提供するためのネットワーク）の品質の差異ついて説明する。尚、本実施の形態では、ユーザからの要求を受け付け、ユーザへ処理結果を送信するフロントエンドであるＷＥＢインスタンス、ユーザに提供するデータが蓄積されているＤＢインスタンス、およびユーザからの要求に応じた処理をＤＢインスタンスからデータを取得等することで行うアプリケーションインスタンス（以下、ＡＰＰインスタンス）の各プログラムによって、１つのサービスが構成されているものとする。また、各インスタンスは、所定のラック内ＳＷに接続された物理サーバから、他のラック内ＳＷに接続された物理サーバに移動するものとする。
【００２０】
従来のインスタンス移動手法（図１（Ａ）参照）は、予め設定されたインスタンスの移動開始時間になると、サービスを提供するための全てのインスタンスが同時に移動処理を開始する。ここで、例えばＤＢインスタンスの移動が終了した場合、ＤＢインスタンスが移動先ラックの物理サーバで稼動し、他のインスタンスは移動元ラックの物理サーバで稼動することになる。この状態でユーザから要求があった場合、ＤＢインスタンスとその他のインスタンスとの間で生ずるトランザクション分、サービス系ネットの帯域が消費される。
【００２１】
その後ＡＰＰインスタンスの移動が完了した場合も同様に、ＷＥＢインスタンスとその他のＡＰＰインスタンス、ＤＢインスタンスとの間で生ずるトランザクション分、サービス系ネットの帯域が消費される。
【００２２】
このようにインスタンス間のトランザクションによる帯域消費の発生は、稼動するインスタンスがラック間ＳＷを跨ぐことに起因する。よって、この帯域消費を抑止するため、本実施の形態では、全てのインスタンスの移動完了時間が同じ時間となるようなインスタンス移動スケジュールを設計する手法について提案する（図１（Ｂ）参照）。このように移動完了時間を同じとした場合、インスタンス移動処理中は移動元ラック内でユーザ要求に対する処理が完結するため、サービス系ネットでは余計な帯域消費は発生しない。またインスタンス移動処理が完了した場合は、即座に移動先ラック内で処理が行われるようになる。
【００２３】
図２に、本実施の形態に係るインスタンス移動管理システムについて説明する。インスタンス移動管理システム１００は、移動スケジュール設計装置１０、インスタンス管理機能部２０、サービス移動管理機能部３０を有する。
【００２４】
サービス移動管理機能部３０は、ユーザ２００からのサービス単位での移動指示を受け付け、移動スケジュール設計装置１０に当該サービスに係るインスタンスの移動スケジュールの設計を指示する。またサービス移動管理機能部３０は、当該サービスに係るインスタンスの移動完了通知をインスタンス管理機能部２０より受ける。
【００２５】
移動スケジュール設計装置１０は、サービス移動管理機能部３０によって移動指示を受けたサービスに係るインスタンスの移動スケジュールを設計する。
【００２６】
インスタンス管理機能部２０は、移動スケジュール設計装置１０から各インスタンスの移動開始時間を取得し、現在時間が所定のインスタンスの移動開始時間になった場合に当該所定のインスタンスを移動させる。またインスタンス管理機能部２０は、全てのインスタンスが移動完了となった場合にサービス移動管理機能部３０に移動完了の通知をする。
【００２７】
本実施の形態では、インスタンス管理機能部２０、サービス移動管理機能部３０は、ともに演算処理装置、記憶装置を有するコンピュータである。
【００２８】
ここで、移動スケジュール設計装置１０について、さらに説明する。移動スケジュール設計装置１０は、インスタンスの移動スケジュールを設計するための処理を行う機能部である移動スケジュール設計部１を有し、移動スケジュール設計部１は、ＣＰＵ量分配部２、移動時間計算部３、開始時間決定部４、反復制御部５を備える。
【００２９】
ＣＰＵ量分配部２は、移動前または移動後の物理サーバでの利用可能なＣＰＵ量を、移動させるべきインスタンスの数で按分し、按分されたＣＰＵ量をインスタンスそれぞれに分配する。
【００３０】
移動時間計算部３は、ＣＰＵ量分配部２によって分配されたインスタンスごとのＣＰＵ量に基づき、メモリ内のデータそれぞれを移動させるときに使用されるネットワーク（管理系ネット）の帯域を、インスタンスごとに算出し、算出したインスタンスごとの帯域とインスタンスごとのメモリ内のデータ量とに基づき、インスタンスごとの移動時間を算出する。
【００３１】
開始時間決定部４は、移動時間計算部３によって算出された移動時間が最短となるインスタンスを選択し、移動させるべきインスタンス全ての移動が完了する予定時間から選択されたインスタンスの移動時間分さかのぼった時間を、選択されたインスタンスの移動開始時間とする。また開始時間決定部４は、選択されたインスタンス以外の残りのインスタンス（ここでは残インスタンスと称す）に対し、残インスタンスのデータが上記最短の移動時間のうちに移動したものとみなしたときの残りのデータ量（ここでは未移動データ量と称す）を、残プログラムごとに算出する。
【００３２】
反復制御部５は、未移動データ量を有する残プログラムが無くなるまで、残プログラムが未移動データ量を有するインスタンスであるとして、残プログラムを対象とした処理をＣＰＵ量分配部２、移動時間計算部３、開始時間決定部４に繰り返し実行させるよう制御する。
【００３３】
また移動スケジュール設計部１は、予め設定されたデータテーブルである移動サービス構成表１１、物理サーバ利用可能資源量表１２、ＣＰＵ資源対転送速度表１３、ラック間利用可能帯域表１４を用いて、移動スケジュール資源見積表１５、移動スケジュール表１６の所定項目を算出する。
【００３４】
図３に、移動スケジュール設計部１が使用するデータテーブルの一例を示す。
【００３５】
移動サービス構成表１１は、移動対象であるサービスの識別子（サービス名）、当該サービスに係るインスタンスの識別子（インスタンス名）、移動前ラックの識別子（移動前ラック）および移動前ラックに属する物理サーバの識別子（移動前物理サーバ）、移動後ラックの識別子（移動後ラック）および移動後ラックに属する物理サーバの識別子（移動後物理サーバ）の各項目の対応関係を有するテーブルである（図３（Ａ）参照）。物理サーバ利用可能資源量表１２は、物理サーバの識別子（物理サーバ名）、当該物理サーバの利用可能なＣＰＵ量（利用可能ＣＰＵ量）、当該物理サーバのポートの利用可能な帯域（利用可能ポート帯域）を有する（図３（Ｂ）参照）。尚、利用可能なＣＰＵ量とは、例えばＣＰＵクロック数が５００ＭＨｚの物理サーバで、４５０ＭＨｚ分使用されている場合、利用可能なＣＰＵ量は５０（＝５００−４５０）とする等、少なくともＣＰＵのクロック数に基づいた指標である。
【００３６】
ＣＰＵ資源対転送速度表１３は、物理サーバ名と、当該物理サーバのＣＰＵ性能単位あたりの移動速度を有する（図３（Ｃ）参照）。尚、ＣＰＵ性能単位とは、ＣＰＵクロックの１ＭＨｚを１とする等、ＣＰＵの性能を示す指標である。例えば、ＣＰＵ性能単位をクロック１ＭＨｚあたり１とした場合に、ＣＰＵクロック数が５００ＭＨｚの物理サーバで４５０ＭＨｚ分使用されている場合、利用可能なＣＰＵ量は５０（＝５００−４５０）となる。ＣＰＵ性能単位あたりの移動速度とは、例えばＣＰＵ性能単位を１とした場合の、インスタンスの移動に使用されるネットワークでの転送速度を示す指標である。ＣＰＵ性能単位あたりの移動速度は、例えばスイッチ等の中継装置やケーブルの特性等を考慮したベンチマークの結果が用いられる。
【００３７】
ラック間利用可能帯域表１４は、移動前ラック、移動後ラックの識別子（ラック名）と、移動前後のラック間のネットワークでの利用可能な帯域（利用可能スイッチ帯域）を有する（図３（Ｄ）参照）。
【００３８】
移動スケジュール資源見積表１５は、インスタンス名、当該インスタンスが移動する際に使用されるＣＰＵ消費量（移動用ＣＰＵ消費）、物理サーバの利用可能ＣＰＵ量（物理サーバ利用可能ＣＰＵ）、当該インスタンスが移動する際に使用される帯域の消費量（移動用帯域消費）、当該インスタンスが格納されている（または格納される予定の）移動前、移動後の物理サーバのポートで利用することができる帯域（利用可能ポート帯域）、利用可能スイッチ帯域、移動前の物理サーバから未だ移動されていないメモリのデータ量（未移動メモリ）、および当該インスタンスを移動するときにかかる時間（転送時間）の各データを有する（図３（Ｅ）参照）。尚、物理サーバ利用可能ＣＰＵには、当該インスタンスが稼動している移動前物理サーバ、または当該インスタンスが稼動する予定の移動後物理サーバのいずれかの物理サーバで、利用可能ＣＰＵ量の小さいものが採用される。
【００３９】
移動スケジュール表１６は、サービス名、インスタンス名、移動前物理サーバ名、移動後物理サーバ名、および当該インスタンスが使用するメモリ量であり、当該インスタンスで移動すべきメモリ総量（総メモリ量）を有する。また、移動スケジュール表１６は、時間帯ごとの各インスタンスの移動量（メモリ内データの転送量）を示す時間帯毎移動量を有する（図３（Ｆ）参照）。
【００４０】
尚、移動スケジュール資源見積表１５の移動用ＣＰＵ消費、移動用帯域消費、未移動メモリ、転送時間、および移動スケジュール表１６の時間帯毎移動量の各値は、処理が進むにつれ設定または更新されていくものである。
【００４１】
次に、移動スケジュール設計装置１０のスケジュール設計方法の一例について、図４から図１２までを参照しつつ説明する。本例では、移動前のラックである移動前ラック３０１と移動後のラックである移動後ラック３０２との間でのインスタンスの移動について説明する。また、移動前ラック３０１内の１つの物理サーバ上でＷＥＢインスタンス（図面中、ＩＮＳ−Ａ−ｗｅｂと表記）、ＡＰＰインスタンス（図面中、ＩＮＳ−Ａ−ａｐｐと表記）の２つのインスタンスが稼動しており、移動前ラック３０１内の他の１つの物理サーバ上でＤＢインスタンス（図面中、ＩＮＳ−Ａ−ｄｂと表記）が稼動しているものとする。本例では、移動スケジュール設計装置１０は、これら各インスタンスが移動後ラック３０２内の３つの物理サーバにそれぞれ移動する場合のスケジュールを設計するものとする。
【００４２】
まず、本例での初期状態を図４に示す。図４（Ａ）は、移動前ラック３０１内、および移動後ラック３０２内の各物理サーバのＣＰＵ使用量、およびメモリ使用量をバー状のグラフとして示し、また移動前ラック３０１と移動後ラック３０２との間の管理系ネットの使用帯域をバー状のグラフとして示した模式図である。図４（Ｂ）は、移動スケジュール資源見積表１５の現在のテーブル状態であり、図４（Ｃ）は移動スケジュール表１６の現在のテーブル状態である。以降図１２まで、これらの（Ａ）〜（Ｃ）の図をそれぞれ遷移させながら説明する。尚、各図の（Ｂ）、（Ｃ）に対しては、処理によって数値が書き込まれた箇所および更新された箇所は破線で囲んである。
【００４３】
ＣＰＵ量分配部２は、図５に示すように移動対象のインスタンスが稼動する移動前物理サーバごとに、利用可能なＣＰＵ量を求め、求めた利用可能ＣＰＵ量を移動対象のインスタンスごとに分配する。本例では、図５（Ａ）で示すように、ＣＰＵ量分配部２は、ＷＥＢインスタンス、ＡＰＰインスタンスが稼動している物理サーバに対し、ＷＥＢインスタンス、ＡＰＰインスタンスの稼動に使用するＣＰＵ量以外の残りのＣＰＵ量を２で按分し、これらを移動の際に使用されるＣＰＵ量とする（本例ではＷＥＢインスタンス、ＡＰＰインスタンスの２つが稼動しているため２で按分したが、例えばインスタンスが３つ稼動している場合は、３で按分する）。またＣＰＵ量分配部２は、ＤＢインスタンスが稼動している物理サーバでは、インスタンスの数がＤＢインスタンスの１つのみであるため、ＤＢインスタンスの稼動に使用するＣＰＵ量以外の残りのＣＰＵ量そのままを、移動時に使用されるＣＰＵ量とする。
【００４４】
この処理は、ＣＰＵ量分配部２が、移動スケジュール資源見積表１５の物理サーバ利用可能ＣＰＵを物理サーバごとにインスタンス数で按分し、按分結果を移動用ＣＰＵ消費に書き込むことでなされる（図５（Ｂ）参照）。
【００４５】
移動時間計算部３は、算出されたインスタンスごとの移動用ＣＰＵ消費と、ＣＰＵ資源対転送速度表１３のＣＰＵ性能単位当り移動速度とを積算することで、インスタンスごとの管理系ネットの帯域消費量（移動スケジュール資源見積表１５の移動用帯域消費）を算出する。この処理によって、図６（Ｂ）に示すように移動用帯域消費の値が新たに算出される。
【００４６】
尚、この状態でのインスタンスの移動用帯域消費量の合計値は、図６（Ａ）でも示すように、管理系ネットの帯域（尚、管理系ネットの帯域は、利用可能ポート帯域、利用可能スイッチ帯域でのいずれか小さいものが採用される）を超えてしまっている。このように、インスタンスごとの移動用帯域消費を合計した帯域（ここでは合算帯域と称す）が、管理系ネットの現在使用できる帯域（ここでは利用可能帯域とする）を超えている場合、移動時間計算部３は、合算帯域を現在使用できる帯域となるよう、インスタンスごとの帯域消費量を補正する。
【００４７】
移動時間計算部３は、図７（Ａ）で示すように合算帯域が利用可能帯域に収まるようにするため、利用可能帯域を合算帯域で除算し、除算で得た値と現状の移動用帯域消費の値（図６（Ｂ）参照）とを積算することで、移動用帯域消費の値を補正する（図７（Ｂ）参照）。
【００４８】
また、移動時間計算部３は、ここで移動用ＣＰＵ消費も修正する。図８（Ｂ）で示すように、移動用帯域消費の値が補正された分の比率と同じ比率で、移動用ＣＰＵ消費も修正される。
【００４９】
移動時間計算部３は、このように補正した移動用帯域消費の値に基づき、現時点での各インスタンスの移動転送時間を算出する。すなわち、移動時間計算部３は、移動スケジュール資源見積表１５内の未移動メモリと、補正処理を行った後の移動用帯域消費とに基づき、現時点での転送時間を算出し、移動スケジュール資源見積表１５に算出した転送時間を書き込む。ここで、転送時間が書き込まれた移動スケジュール資源見積表１５を図９（Ｂ）に示す。
【００５０】
次に開始時間決定部４は、移動時間計算部３によって算出された転送時間が最短であるインスタンスを選択する。本例ではＤＢインスタンスの転送時間が１２０秒と算出され、これが最短であるため、ＤＢインスタンスが選択される。
【００５１】
また開始時間決定部４は、移動終了予定時間から選択されたインスタンスの移動時間分さかのぼった時間を、選択されたインスタンスの移動開始時間と決定し、移動スケジュール表１６の時間帯毎移動量にデータを書き込む。例えば移動終了予定時間が午前３時であるとすると、開始時間決定部４は、１２０秒さかのぼった時間である午前２時５８分から午前３時という時間情報を時間帯毎移動量に書き込む。また開始時間決定部４は、午前２時５８分から午前３時までの、インスタンスごとの転送量を、転送時間とインスタンスごとの移動用帯域消費とに基づき算出し、時間帯毎移動量に書き込む（図１０（Ｃ）参照）。
【００５２】
本例では、ＤＢインスタンスが使用するメモリのデータ量（総メモリ量）全てが転送完了となったスケジュールを作成できたので、ＤＢインスタンスに関する移動スケジュール設計は終了する。また、この時点では、ＷＥＢインスタンスの未移動メモリ量は５１２ＭＢ（＝７６８ＭＢ−２５６ＭＢ）、ＡＰＰインスタンスの未移動メモリ量は２５６ＭＢ（＝５１２ＭＢ−２５６ＭＢ）である。
【００５３】
引き続き上述図４から図１０で説明した処理と同じ処理を、今度はＷＥＢインスタンス、ＡＰＰインスタンスそれぞれの残りのメモリ量に対し行うと図１１に示す状態となる。すなわち、ＡＰＰインスタンスの転送時間（６０秒）の方がＷＥＢインスタンスの転送時間（１２０秒）よりも短いと算出され、移動スケジュール表１６の時間帯毎移動量に次のインスタンスの移動開始時間等が書き込まれる。この時点でＡＰＰインスタンスが使用するメモリのデータ量（総メモリ量）全てが転送完了となったスケジュールを作成できたので、ＡＰＰインスタンスに関する移動スケジュール設計は終了する。
【００５４】
最後に、上述図４から図１０で説明した処理と同じ処理を、ＷＥＢインスタンスのみに対し行うことで、ＷＥＢインスタンスの移動開始時間も決定される（図１２（Ｃ）参照）。また、移動スケジュール設計装置１０は、図１２（Ｄ）で示すフォーマットで移動指示をインスタンス管理機能部２０に対し行う。
【００５５】
次に、移動スケジュール設計装置１０の処理について、図１３のフローチャートを参照しつつ説明する。
【００５６】
反復制御部５は、未だ移動していないメモリが残っているインスタンス（図１３ではｉｎｓと表記）を選択する（Ｓ１）。反復制御部５は、全てのインスタンスの移動が完了したかを判定し（Ｓ２）、全てのインスタンスの移動が完了している場合（Ｓ２、ｙｅｓ）、処理は終了する。一方、全てのインスタンスの移動が完了していない場合（Ｓ２、ｎｏ）、ＣＰＵ量分配部２は、移動スケジュール見積表１５のテーブルを新規に作成、または更新する（Ｓ３）。尚、新規作成の場合、ＣＰＵ量分配部２は、移動用ＣＰＵ消費、移動用帯域消費、転送時間以外の事項を書き込む。ＣＰＵ量分配部２は、次に利用可能ＣＰＵ量をインスタンス毎に分配する（Ｓ４）。
【００５７】
移動時間計算部３は、分配されたＣＰＵ量から帯域消費をインスタンス毎に計算し（Ｓ５）、帯域消費の合計が物理サーバのポートで利用可能な帯域を超過しているかを判定する（Ｓ６）。ポートで利用可能な帯域を超過している場合（Ｓ６、ｙｅｓ）、移動時間計算部３は、帯域消費の合計がポートで利用可能な帯域となるよう、インスタンス毎の帯域消費を補正する（Ｓ７）。一方、ポートで利用可能な帯域を超過していない場合（Ｓ６、ｎｏ）、移動時間計算部３は、Ｓ７をスキップしＳ８へ処理を進める。
【００５８】
次に、移動時間計算部３は、帯域消費の合計がラック間のネットワークである管理系ネットで利用可能な帯域を超過しているかを判定する（Ｓ８）。管理系ネットで利用可能な帯域を超過している場合（Ｓ８、ｙｅｓ）、移動時間計算部３は、帯域消費の合計が管理系ネットで利用可能な帯域となるよう、インスタンス毎の帯域消費を補正する（Ｓ９）。一方、管理系ネットで利用可能な帯域を超過していない場合（Ｓ８、ｎｏ）、移動時間計算部３は、Ｓ９をスキップしＳ１０へ処理を進める。
【００５９】
移動時間計算部３は、必要に応じてインスタンス毎のＣＰＵ量を帯域に合わせて補正する（Ｓ１０）。移動時間計算部３は、未移動メモリ量とインスタンス毎に割り当てられる補正後の帯域から、インスタンス毎に未移動メモリの移動時間を計算する（Ｓ１１）。
【００６０】
開始時間決定部４は、移動時間が最短となるインスタンスを選択し（Ｓ１２）、移動スケジュール表１６の時間毎移動量を計算する（Ｓ１３）。また開始時間決定部４は、このときに、選択されたインスタンス以外の残インスタンスに対応する移動スケジュール資源見積表１５の未移動メモリを更新する。
【００６１】
その後反復制御部５は、移動したメモリ量の合計が総メモリ量に満たないインスタンスが残っている場合は、その残ったインスタンスが未移動メモリ分のデータ量を有するインスタンスであるとして、上記Ｓ１からＳ１３の処理が繰り返し実行されるよう制御する（Ｓ１３からＳ１へのループ）。このように、反復制御部５によって未移動のインスタンスが無くなるまで上述Ｓ１からＳ１３までの処理が繰り返される。
【００６２】
なお、本発明は以下に示すようなコンピュータシステムにおいて適用可能である。図１４は、本発明が適用されるコンピュータシステムの一例を示す図である。この図に示すコンピュータシステム９００は、ＣＰＵやディスクドライブ等を内蔵した本体部９０１、本体部９０１からの指示により画像を表示するディスプレイ９０２、コンピュータシステム９００に種々の情報を入力するためのキーボード９０３、ディスプレイ９０２の表示画面９０２ａ上の任意の位置を指定するマウス９０４及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする通信装置９０５を有する。通信装置９０５は、ネットワーク通信カード、モデムなどが考えられる。
【００６３】
上述したような、移動スケジュール設計装置を構成するコンピュータシステムにおいて上述した各ステップを実行させるプログラムを、移動スケジュール設計プログラムとして提供することができる。このプログラムは、コンピュータシステムにより読み取り可能な記録媒体に記憶させることによって、移動スケジュール設計装置のコンピュータシステムに実行させることが可能となる。上述した各ステップを実行するプログラムは、ディスク９１０等の可搬型記録媒体に格納されるか、通信装置９０５により他のコンピュータシステムの記録媒体９０６からダウンロードされる。また、コンピュータシステム９００に少なくとも移動スケジュール設計機能を持たせる移動スケジュール設計プログラムは、コンピュータシステム９００に入力されてコンパイルされる。このプログラムは、コンピュータシステム９００を、移動スケジュール設計機能を有する移動スケジュール設計システムとして動作させる。また、このプログラムは、例えばディスク９１０等のコンピュータ読み取り可能な記録媒体に格納されていても良い。ここで、コンピュータシステム９００により読み取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ディスク９１０やフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータシステム並びにそのデータベースや、通信装置９０５のような通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００６４】
ここで、上述の移動スケジュール設計装置のハードウェア構成について図１５を参照しつつ説明する。移動スケジュール設計装置は、演算処理装置であるＣＰＵ（Central Processing Unit）９５１、主記憶装置であるメモリ９５２、ディスク９１０等を格納し、データの読み書きを行うディスクドライブ９５３、不揮発性の記憶装置である不揮発性記憶装置９５４を備え、また外部とのデータの通信を制御するＩ／Ｏ装置９５５を備える。尚、上述した移動スケジュール設計装置内の各機能ブロックは、ＣＰＵ９５１、メモリ９５２、不揮発性記憶装置９５４、Ｉ／Ｏ装置９５５のハードウェア資源と、不揮発性記憶装置９５４内に予め保持されているファームウェアとが協働することで実現される。
【００６５】
本実施の形態によって、サービスの全インスタンスを別スイッチ下へ移動させる場合に、全インスタンスが同時に切り替わるようになるため、サービス性能の低下を防止することができる。
【００６６】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
【符号の説明】
【００６７】
１  移動スケジュール設計部、２  ＣＰＵ量分配部、３  移動時間計算部、４開始時間決定部、５  反復制御部、１０  移動スケジュール設計装置、２０  インスタンス管理機能部、３０  サービス移動管理機能部、１００  インスタンス移動管理システム。
【図１】
2010237730.tif 000003
【図２】
2010237730.tif 000004
【図３】
2010237730.tif 000005
【図４】
2010237730.tif 000006
【図５】
2010237730.tif 000007
【図６】
2010237730.tif 000008
【図７】
2010237730.tif 000009
【図８】
2010237730.tif 000010
【図９】
2010237730.tif 000011
【図１０】
2010237730.tif 000012
【図１１】
2010237730.tif 000013
【図１２】
2010237730.tif 000014
【図１３】
2010237730.tif 000015
【図１４】
2010237730.tif 000016
【図１５】
2010237730.tif 000017
【図１６】
2010237730.tif 000018