(57)【特許請求の範囲】
【請求項１】
複数の仮想サーバを実行するハイパバイザを有する複数の物理サーバと、
前記複数の仮想サーバのうちの移行対象の仮想サーバをその仮想サーバを有する物理サーバからその物理サーバとは別の物理サーバに移行する仮想サーバ移行装置と
を備え、
前記仮想サーバ移行装置は、前記複数の物理サーバのうちのいずれかの装置、又は、前記複数の物理サーバに接続された装置であり、１以上の仮想サーバの各々についての移行方針を表す移行方針情報を記憶し、
仮想サーバの移行方式として、仮想サーバの移行元の物理サーバのハードウェア構成と仮想サーバの移行先の物理サーバのハードウェア構成との関係であるハードウェア関係に依存する第１の移行方式と、前記ハードウェア関係に依存しない第２の移行方式とがあり、
前記仮想サーバ移行装置は、
（Ａ）前記移行対象の仮想サーバを有する物理サーバである第１の物理サーバと、前記移行対象の仮想サーバの移行先の物理サーバである第２の物理サーバとを含む２以上の物理サーバのそれぞれのハードウェア構成を特定し、
（Ｂ）第１の移行方式と第２の移行方式のうち、前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成とのハードウェア関係と、前記移行方針情報が表す、前記移行対象の仮想サーバに対応する移行方針である対象移行方針とに従う移行方式を選択する、
サーバシステム。
【請求項２】
請求項１記載のサーバシステムであって、
前記第２の移行方式は、移行元の物理サーバで仮想サーバを終了し、移行元の物理サーバから移行先の物理サーバに仮想サーバが移行し、移行先の物理サーバでその仮想サーバをブートする方式であり、
前記第１の移行方式として、第１の第１移行方式と、第２の第１移行方式とがあり、
前記第１の第１移行方式は、仮想サーバが行うＩ／Ｏ（Input/Output）をその区切りでなくても中止し、仮想サーバを終了することなく移行元の物理サーバから移行先の物理サーバに仮想サーバを移行する方式であり、
前記第２の第１移行方式は、仮想サーバが行うＩ／Ｏをその区切りで中止し、仮想サーバを終了することなく移行元の物理サーバから移行先の物理サーバに仮想サーバを移行する方式であり、
前記仮想サーバ移行装置は、前記（Ｂ）において、
（ｂ１）前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成が同一であり、且つ、前記対象移行方針が、安全性よりも移行速度を優先することを意味する方針であれば、前記第１の第１移行方式を選択し、
（ｂ２）前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成が同一であり、且つ、前記対象移行方針が、移行速度よりも安全性を優先することを意味する方針であれば、前記第２の第１移行方式を選択し、
（ｂ３）前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成が非同一であれば、前記対象移行方針に関わらず、前記第２の移行方式を選択する、
サーバシステム。
【請求項３】
請求項２記載のサーバシステムであって、
前記仮想サーバ移行装置は、
（Ｃ）前記第１及び第２の物理サーバを含む２以上の物理サーバのそれぞれのハードウェア稼働状況を特定し、
前記第２の物理サーバは、前記第１の物理サーバのハードウェア稼働状況よりも低いハードウェア稼働状況の物理サーバである、
サーバシステム。
【請求項４】
請求項３記載のサーバシステムであって、
前記仮想サーバ移行装置は、
（Ｄ）前記第１の物理サーバ以外の物理サーバから前記第２の物理サーバとする物理サーバを選択し、
前記仮想サーバ移行装置は、前記（Ｄ）において、前記第１の物理サーバのハードウェア構成と異なるハードウェア構成の物理サーバよりも、前記第１の物理サーバのハードウェア構成と同一のハードウェア構成の物理サーバを、優先的に、前記第２の物理サーバとして選択する、
サーバシステム。
【請求項５】
請求項４記載のサーバシステムであって、
前記移行方針情報は、管理者から指定された移行方針を有する情報である、
サーバシステム。
【請求項６】
請求項１記載のサーバシステムであって、
前記第１の移行方式として、第１の第１移行方式と、第２の第１移行方式とがあり、
前記第１の第１移行方式は、安全性が前記第２の移行方式よりも低く移行速度が前記第２の第１移行方式よりも速い移行方式であり、
前記第２の第１移行方式は、安全性が前記第２の移行方式と同じであり移行速度が前記第２の移行方式より速く前記第１の第１移行方式より遅い方式である、
サーバシステム。
【請求項７】
請求項６記載のサーバシステムであって、
前記仮想サーバ移行装置は、前記（Ｂ）において、
（ｂ１）前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成が同一であり、且つ、前記対象移行方針が、安全性よりも移行速度を優先することを意味する方針であれば、前記第１の第１移行方式を選択し、
（ｂ２）前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成が同一であり、且つ、前記対象移行方針が、移行速度よりも安全性を優先することを意味する方針であれば、前記第２の第１移行方式を選択する、
サーバシステム。
【請求項８】
請求項７記載のサーバシステムであって、
前記仮想サーバ移行装置は、
（Ｄ）前記第１の物理サーバ以外の物理サーバから前記第２の物理サーバとする物理サーバを選択し、
前記仮想サーバ移行装置は、前記（Ｄ）において、前記第１の物理サーバのハードウェア構成と異なるハードウェア構成の物理サーバよりも、前記第１の物理サーバのハードウェア構成と同一のハードウェア構成の物理サーバを、優先的に、前記第２の物理サーバとして選択し、
前記仮想サーバ移行装置は、前記（Ｂ）において、前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成が非同一であれば、前記対象移行方針に関わらず、前記第２の移行方式を選択する、
サーバシステム。
【請求項９】
請求項１記載のサーバシステムであって、
前記仮想サーバ移行装置は、
（Ｃ）前記第１及び第２の物理サーバを含む２以上の物理サーバのそれぞれのハードウェア稼働状況を特定し、
前記第２の物理サーバは、前記第１の物理サーバのハードウェア稼働状況よりも低いハードウェア稼働状況の物理サーバである、
サーバシステム。
【請求項１０】
複数の物理サーバが有するハイパザイザにより実行される複数の仮想サーバのうちの移行対象の仮想サーバをその仮想サーバを有する物理サーバからその物理サーバとは別の物理サーバに移行する方法であって、
（Ｘ）１以上の仮想サーバの各々についての移行方針を表す移行方針情報を記憶し、
（Ａ）前記移行対象の仮想サーバを有する物理サーバである第１の物理サーバと、前記移行対象の仮想サーバの移行先の物理サーバである第２の物理サーバとを含む２以上の物理サーバのそれぞれのハードウェア構成を特定し、
（Ｂ）第１の移行方式と第２の移行方式のうち、前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成とのハードウェア関係と、前記移行方針情報が表す、前記移行対象の仮想サーバに対応する移行方針である対象移行方針とに従う移行方式を選択し、
仮想サーバの移行方式として、仮想サーバの移行元の物理サーバのハードウェア構成と仮想サーバの移行先の物理サーバのハードウェア構成との関係であるハードウェア関係に依存する第１の移行方式と、前記ハードウェア関係に依存しない第２の移行方式とがある、
仮想サーバ移行方法。
【請求項１１】
請求項１０記載の仮想サーバ移行方法であって、
前記第２の移行方式は、移行元の物理サーバで仮想サーバを終了し、移行元の物理サーバから移行先の物理サーバに仮想サーバが移行し、移行先の物理サーバでその仮想サーバをブートする方式であり、
前記第１の移行方式として、第１の第１移行方式と、第２の第１移行方式とがあり、
前記第１の第１移行方式は、仮想サーバが行うＩ／Ｏ（Input/Output）をその区切りでなくても中止し、仮想サーバを終了することなく移行元の物理サーバから移行先の物理サーバに仮想サーバを移行する方式であり、
前記第２の第１移行方式は、仮想サーバが行うＩ／Ｏをその区切りで中止し、仮想サーバを終了することなく移行元の物理サーバから移行先の物理サーバに仮想サーバを移行する方式であり、
前記（Ｂ）において、
（ｂ１）前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成が同一であり、且つ、前記対象移行方針が、安全性よりも移行速度を優先することを意味する方針であれば、前記第１の第１移行方式を選択し、
（ｂ２）前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成が同一であり、且つ、前記対象移行方針が、移行速度よりも安全性を優先することを意味する方針であれば、前記第２の第１移行方式を選択し、
（ｂ３）前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成が非同一であれば、前記対象移行方針に関わらず、前記第２の移行方式を選択する、
仮想サーバ移行方法。
【請求項１２】
請求項１１記載の仮想サーバ移行方法であって、
（Ｃ）前記第１及び第２の物理サーバを含む２以上の物理サーバのそれぞれのハードウェア稼働状況を特定し、
前記第２の物理サーバは、前記第１の物理サーバのハードウェア稼働状況よりも低いハードウェア稼働状況の物理サーバである、
仮想サーバ移行方法。
【請求項１３】
請求項１２記載の仮想サーバ移行方法であって、
（Ｄ）前記第１の物理サーバ以外の物理サーバから前記第２の物理サーバとする物理サーバを選択し、
前記（Ｄ）において、前記第１の物理サーバのハードウェア構成と異なるハードウェア構成の物理サーバよりも、前記第１の物理サーバのハードウェア構成と同一のハードウェア構成の物理サーバを、優先的に、前記第２の物理サーバとして選択する、
仮想サーバ移行方法。
【請求項１４】
請求項１３記載の仮想サーバ移行方法であって、
前記移行方針情報は、管理者から指定された移行方針を有する情報である、
仮想サーバ移行方法。
【請求項１５】
請求項１０記載の仮想サーバ移行方法であって、
前記第１の移行方式として、第１の第１移行方式と、第２の第１移行方式とがあり、
前記第１の第１移行方式は、安全性が前記第２の移行方式よりも低く移行速度が前記第２の第１移行方式よりも速い移行方式であり、
前記第２の第１移行方式は、安全性が前記第２の移行方式と同じであり移行速度が前記第２の移行方式より速く前記第１の第１移行方式より遅い方式である、
仮想サーバ移行方法。
【請求項１６】
複数の物理サーバが有するハイパザイザにより実行される複数の仮想サーバのうちの移行対象の仮想サーバをその仮想サーバを有する物理サーバからその物理サーバとは別の物理サーバに移行する装置に実行させるコンピュータプログラムであって、
（Ａ）前記移行対象の仮想サーバを有する物理サーバである第１の物理サーバと、前記移行対象の仮想サーバの移行先の物理サーバである第２の物理サーバとを含む２以上の物理サーバのそれぞれのハードウェア構成を特定し、
（Ｂ）第１の移行方式と第２の移行方式のうち、前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成とのハードウェア関係と、記憶資源に記憶されている移行方針情報が表す、前記移行対象の仮想サーバに対応する移行方針である対象移行方針とに従う移行方式を選択する、
ことを前記装置に実行させ、
仮想サーバの移行方式として、仮想サーバの移行元の物理サーバのハードウェア構成と仮想サーバの移行先の物理サーバのハードウェア構成との関係であるハードウェア関係に依存する第１の移行方式と、前記ハードウェア関係に依存しない第２の移行方式とがある、
コンピュータプログラム。
【請求項１７】
複数の物理サーバが有するハイパバイザにより実行される複数の仮想サーバのうちの移行対象の仮想サーバをその仮想サーバを有する物理サーバからその物理サーバとは別の物理サーバに移行する仮想サーバ移行装置であって、
記憶資源と、
前記記憶資源に接続されたプロセッサと
を備え、
前記記憶資源は、１以上の仮想サーバの各々についての移行方針を表す移行方針情報を記憶し、
仮想サーバの移行方式として、仮想サーバの移行元の物理サーバのハードウェア構成と仮想サーバの移行先の物理サーバのハードウェア構成との関係であるハードウェア関係に依存する第１の移行方式と、前記ハードウェア関係に依存しない第２の移行方式とがあり、
前記プロセッサは、
（Ａ）前記移行対象の仮想サーバを有する物理サーバである第１の物理サーバと、前記移行対象の仮想サーバの移行先の物理サーバである第２の物理サーバとを含む２以上の物理サーバのそれぞれのハードウェア構成を特定し、
（Ｂ）第１の移行方式と第２の移行方式のうち、前記第１の物理サーバのハードウェア構成と前記第２の物理サーバのハードウェア構成とのハードウェア関係と、前記移行方針情報が表す、前記移行対象の仮想サーバに対応する移行方針である対象移行方針とに従う移行方式を選択する、
仮想サーバ移行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理サーバ間での仮想サーバの移行に関する。
【背景技術】
【０００２】
サーバの仮想化に関する技術が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１７６４８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
物理サーバ間で仮想サーバを移行することができる。仮想サーバの移行方式として、信頼性を重視して移行を実施する方式（以下、Reboot方式）と、移行速度を重視して移行を実施する方式（以下、Live方式）がある。
【０００５】
仮想サーバの移行方式は、オペレータ（人間）によって選択される。移行方式によって、移行先の物理サーバに要求される条件は異なる。このようなことを、オペレータが考慮しなければならない。このため、移行方式を適切に選択することは難しい。移行方式が不適切であると、仮想サーバの移行が失敗する可能性がある。
【０００６】
そこで、本発明の目的は、適切な移行方式が選択される可能性を高くすることにある。
【課題を解決するための手段】
【０００７】
仮想サーバ移行装置が設けられる。仮想サーバ移行装置は、複数の物理サーバが有する複数の仮想サーバのうちの移行対象の仮想サーバをその仮想サーバを有する物理サーバからその物理サーバとは別の物理サーバに移行する装置である。仮想サーバ移行装置は、複数の物理サーバのうちのいずれかの装置、又は、複数の物理サーバに接続された装置である。
【０００８】
仮想サーバの移行方式として、仮想サーバの移行元の物理サーバのハードウェア構成と仮想サーバの移行先の物理サーバのハードウェア構成との関係であるハードウェア関係に依存する第１の移行方式と、そのハードウェア関係に依存しない第２の移行方式とがある。
【０００９】
仮想サーバ移行装置が、１以上の仮想サーバの各々についての移行方針を表す移行方針情報を記憶する。仮想サーバ移行装置は、（Ａ）第１の物理サーバ（移行対象の仮想サーバを有する物理サーバ）と、第２の物理サーバ（移行対象の仮想サーバの移行先の物理サーバ）とを含む２以上の物理サーバのそれぞれのハードウェア構成を特定し、（Ｂ）第１の移行方式と第２の移行方式のうち、第１の物理サーバのハードウェア構成と第２の物理サーバのハードウェア構成とのハードウェア関係と、移行対象の仮想サーバに対応する移行方針とに従う移行方式を選択する。仮想サーバ移行装置は、選択した移行方式で第１の物理サーバから移行対象の仮想サーバを第２の物理サーバに移行させることができる。
【発明の効果】
【００１０】
本発明によれば、適切な移行方式が選択される可能性を高くすることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る仮想サーバ移行環境の構成を示す。
【図２】本発明の一実施形態に係る仮想サーバ移行方式選択の処理手順を示す。
【図３】本発明の一実施形態に係る仮想サーバ移行ポリシー設定画面の例を示す。
【図４】本発明の一実施形態に係る仮想サーバ移行ポリシーテーブルの例を示す。
【図５】本発明の一実施形態に係る仮想サーバ移行指示画面の例を示す。
【図６】本発明の一実施形態に係るハードウェア仕様テーブルの例を示す。
【図７】本発明の一実施形態に係るハードウェア稼動状況テーブルの例を示す。
【図８】本発明の一実施形態に係る仮想サーバ移行方式決定の処理手順を示す。
【図９】図８のステップ（８０２）の詳細の例を示す。
【図１０】図８のステップ（８０３）の詳細の例を示す。
【図１１】図８のステップ（８０４）の詳細の例を示す。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態を説明する。その概要は、次の通りである。
【００１３】
仮想サーバ移行を実施する仮想サーバ移行機が、移行方針情報を記憶する。移行方針情報は、例えば、仮想サーバ毎にある。各々の仮想サーバに構築されたシステムに要求される信頼性に対応した移行方針を予め設定しておくことが可能であり、人間が、仮想サーバの移行作業を実施する際に、移行対象の仮想サーバが高信頼を要求されるシステムか否かを判断する必要が無い。
【００１４】
また、仮想サーバ移行機は、仮想サーバの移行作業を実施する際に、全物理サーバのハードウェア構成と、全物理サーバのハードウェア稼動状況とを採取する。仮想サーバ移行機は、移行元物理サーバ（移行対象の仮想サーバを有する物理サーバ）のハードウェア構成（例えば仕様）と、移行先候補の物理サーバのハードウェア構成が同一か否かを判断する。また、仮想サーバ移行機は、移行元物理サーバのハードウェア稼働状況と移行先候補の物理サーバのハードウェア稼動状況とを把握する。従って、仮想サーバの移行作業を実施する際に、人間が、移行元物理サーバのハードウェア構成と移行先候補の物理サーバのハードウェア構成が同一か否かを判断したり、移行先候補の物理サーバに移行対象の仮想サーバを移行した場合に要求性能（要求される性能）を満足するか否かを判断したりすることが不要である。
【００１５】
さらに、本実施形態では、仮想サーバの移行方式として、新たな移行方式が設けられる。新たな移行方式は、Live方式とReboot方式の中間的な移行方式（以下、「Sleep方式」と言う）である。本実施形態では、Live方式、Reboot方式及びSleep方式のいずれかの移行方式が選択可能である。３つの移行方式の特徴は、下記の通りである。
【００１６】
＜（１）Live方式＞。
【００１７】
移行元物理サーバのハイパバイザ（移行元ハイパバイザ）が、移行方式、移行対象仮想サーバ及び移行先物理サーバを指定した移行指示を、仮想サーバ移行機から受ける。移行元ハイパバイザは、移行指示を受けたときに、下記の（１−１）乃至（１−３）、
（１−１）移行対象の仮想サーバが記憶デバイス（例えばファイルシステム）にデータのＩ／Ｏ（Input/Output）を行っていても、そのＩ／Ｏを、そのＩ／Ｏの段階に関わらず中止させる、
（１−２）移行対象の仮想サーバを、終了することなく（シャットダウンすることなく）、移行先物理サーバに移す、
（１−３）移行先物理サーバのハイパバイザ（移行先ハイパバイザ）に、移行対象の仮想サーバに関する情報を移す、
を行う。
【００１８】
Live方式によれば、ゲストＯＳ（移行対象の仮想サーバで実行されるＯＳ（Operating  System））の停止時間は、短い（例えば数秒以内）という利点がある。それ故、移行対象仮想サーバにアクセスするユーザ端末からは、ほとんど停止したように見えない。
【００１９】
しかし、Live方式によれば、移行元物理サーバのハードウェア構成（例えば仕様）と移行先物理サーバのハードウェア構成が全く同一でないと移行が不可能であるという欠点がある。なぜなら、仮想サーバが終了することなく移行され（移行先物理サーバでリブートされることが無く）、それ故、移行対象の仮想サーバが動作する環境（例えば、移行対象の仮想サーバに関する情報が格納される場所）が、移行元物理サーバと移行先物理サーバとで異なっていると、移行対象の仮想サーバは、移行元物理サーバで動作していたときと同じように移行先物理サーバで動作することができないからである。具体的には、例えば、移行元物理サーバのメモリの或る場所に、移行対象の仮想サーバが参照するファイルの存在場所を表す情報が記憶されている場合、ハードウェア構成が違っていると、移行先物理サーバにおける同じ場所に、移行対象の仮想サーバが参照するファイルの存在場所を表す情報が格納されないからである。
【００２０】
また、Live方式によれば、移行後に、データの回復処理が必要になるケースが生じ得るという欠点がある。なぜなら、移行対象仮想サーバのデータＩ／Ｏのタイミングによっては、データの書込みに失敗することがあり、その場合、移行前と移行後で整合性がとれなくなるからである。
【００２１】
従って、Live方式は、例えば、非高信頼システム用の仮想サーバを移行元物理サーバと同一構成の物理サーバに移行することに適していると考えられる。
【００２２】
＜（２）Reboot方式＞。
【００２３】
移行元ハイパバイザが、移行方式、移行対象仮想サーバ及び移行先物理サーバを指定した移行指示を、仮想サーバ移行機から受ける。移行元ハイパバイザは、移行指示を受けたときに、下記の（２−１）乃至（２−３）、
（２−１）移行対象の仮想サーバを終了する（シャットダウンする）、
（２−２）移行先ハイパバイザに、移行対象の仮想サーバに関する情報を移す、
（２−３）移行先ハイパバイザに、リブートを指示する、
を行う。移行先ハイパバイザは、リブートの指示に応答して、移行対象の仮想サーバをリブートする。それにより、移行先物理サーバで、移行対象の仮想サーバが稼動する。
【００２４】
Reboot方式によれば、データに不整合が発生する可能性が無い利点がある。なぜなら、移行対象の仮想サーバが記憶デバイスにデータのＩ／Ｏを行っていたならば、そのＩ／Ｏが正常に終了された後に（例えば、その仮想サーバのメモリに残っている、記憶デバイスに書込まれていないデータが、記憶デバイスに書き込まれた後に）、ゲストＯＳがシャットダウンされるからである。
【００２５】
また、Reboot方式によれば、移行元物理サーバのハードウェア構成と移行先物理サーバのハードウェア構成に違いがあっても移行が可能であるという利点がある。なぜなら、移行先物理サーバで、移行対象仮想サーバがリブートされるので、その際に、仮想サーバの動作に必要な環境（例えば情報）が、移行先物理サーバのハードウェア構成に応じて構築されることになるからである。
【００２６】
しかし、Reboot方式によれば、ゲストＯＳの停止時間が長い（例えば１０分前後）という欠点がある。なぜなら、移行対象仮想サーバのシャットダウンとリブートに時間がかかるからである。移行対象仮想サーバにアクセスするユーザ端末から見ると、システムが停止している時間が長いと感じる。
【００２７】
従って、Reboot方式は、例えば、高信頼システム用の仮想サーバを異なるハードウェア構成のサーバに計画的に移行すること（例えば計画停止運用）に適していると考えられる。
【００２８】
＜（３）Sleep方式＞。
【００２９】
移行元ハイパバイザが、移行方式、移行対象仮想サーバ及び移行先物理サーバを指定した移行指示を、仮想サーバ移行機から受ける。移行元ハイパバイザは、移行指示を受けたときに、下記の（３−１）乃至（３−３）、
（３−１）移行対象の仮想サーバが記憶デバイス（例えばファイルシステム）にデータのＩ／Ｏ（Input/Output）を行っていたら、そのＩ／Ｏを、そのＩ／Ｏの区切り（チェックポイント）で、中止させる、
（３−２）移行対象の仮想サーバを、終了することなく（シャットダウンすることなく）、移行先物理サーバに移す、
（３−３）移行先物理サーバのハイパバイザ（移行先ハイパバイザ）に、移行対象の仮想サーバに関する情報を移す、
を行う。
【００３０】
Sleep方式によれば、データに不整合が発生する恐れが無いという利点がある。なぜなら、Ｉ／Ｏがその区切りで中止されるからである。
【００３１】
しかし、Sleep方式によれば、移行元物理サーバのハードウェア構成と移行先物理サーバのハードウェア構成が全く同一でないと移行が不可能であるという欠点がある。なぜなら、前述したように、仮想サーバが終了することなく移行されるからである。
【００３２】
Sleep方式によれば、移行先物理サーバのハードウェア構成が移行元物理サーバのハードウェア構成と同一の場合、Reboot方式よりも高速に且つLive方式よりも安全に仮想サーバの移行が可能な方式である。従って、Sleep方式は、例えば、高信頼システム用の仮想サーバを計画停止運用でないタイミングで別サーバに移行する場合に適していると考えられる。
【００３３】
本実施形態によれば、新たな移行方式「Sleep方式」が設けられる。また、仮想サーバ移行機が、仮想サーバ毎に移行方針情報を記憶する。移行サーバ計算機は、全物理サーバのハードウェア構成及び稼働状況を採取し、それらのハードウェア構成及び稼働状況と、移行対象の仮想サーバの移行方針情報とを基に、移行方式及び移行先物理サーバを選択する。従って、適切な移行方式で適切な物理サーバに移行対象サーバを移行することができる。
【００３４】
以下、本発明の一実施形態を詳細に説明する。
【００３５】
なお、以下の説明では、「ｘｘｘテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「ｘｘｘテーブル」を「ｘｘｘ情報」と呼ぶことができる。
【００３６】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central  Processing  Unit））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インタフェース装置（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサとされても良い。プログラムを主語として説明された処理は、後述の仮想サーバ移行機１３が行う処理としても良い。また、プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【００３７】
図１は、本発明の一実施形態に係る仮想サーバ移行環境の構成を示す。
【００３８】
仮想サーバ移行環境１には、複数のサーバブレードと、仮想サーバ移行機１３がある。図１には、複数のサーバブレードとして、移行対象の仮想サーバが存在するサーバブレード２と、仮想サーバの移行先の候補となり得るサーバブレード３及び４がある。
【００３９】
サーバブレード２乃至４について、サーバブレード２を例に採り説明する。サーバブレード３及び４の構成及び機能は、サーバブレード２と同様で良い。
【００４０】
サーバブレード２は、物理サーバの一例である。サーバブレード２は、物理的な資源であるハードウェア９を有する。ハードウェア９としては、例えば、１以上のＣＰＵ（Central  Processing  Unit）１０と、１以上のメモリ１１、１以上のＩ／Ｏデバイス（入出力デバイス）１２がある。１以上のＩ／Ｏデバイス１２は、例えば、通信インタフェース装置と、物理記憶デバイス（例えばハードディスクドライブ）を含んで良い。
【００４１】
少なくとも１つのＣＰＵ１０で、ハイパバイザ５が実行される。ハイパバイザ５は、仮想サーバを生成したり、仮想サーバを削除したりすることができる。図１の例では、ハイパバイザ５は、複数の仮想サーバ６、７及び８を管理している。各仮想サーバには、ハードウェア９（例えば、ＣＰＵ１０及びメモリ１１）の一部が割り当てられている。
【００４２】
システム管理者が、仮想サーバの移行方針を表すデータである仮想サーバ移行方針入力データ（以下、移行方針データ）２５を、仮想サーバ計算機１３に入力する。
【００４３】
仮想サーバ移行機１３は、複数のサーバブレードに接続されている装置（例えば計算機）である。仮想サーバ移行機１３は、例えば、通信ネットワーク（例えばＬＡＮ（Local  Area  Network））を介して複数のサーバブレードに接続されていて良い。仮想サーバ移行機１３は、複数のサーバブレードを有する筺体に収められていても良いし、その筺体から離れた位置にあっても良い。
【００４４】
仮想サーバ移行機１３は、１以上のＣＰＵ１４、１以上のメモリ１５、及び、１以上のＩ／Ｏデバイス１６を有する。１以上のＩ／Ｏデバイス１６は、例えば、例えば、通信インタフェース装置（例えば、複数のサーバブレードに接続されたインタフェース装置）と、物理記憶デバイス（例えばハードディスクドライブ）を含んで良い。
【００４５】
メモリ１５は、仮想サーバ移行方式選択プログラム（以下、選択プログラム）１７、仮想サーバ移行方針テーブル（以下、移行方針テーブル）１８、ハードウェア仕様テーブル（以下、仕様テーブル）１９、及び、ハードウェア稼動状況テーブル（以下、稼働状況テーブル）２０を記憶する。選択プログラム１７は、ＣＰＵ１４で実行される。
【００４６】
選択プログラム１７は、仮想サーバの移行方式及び移行先サーバブレードを選択する。選択プログラム１７は、仮想サーバ移行方針テーブル制御部（以下、移行方針制御部）２１、ハードウェア仕様テーブル制御部（以下、仕様制御部）２２、ハードウェア稼動状況テーブル制御部（以下、稼働状況制御部）２３、及び、仮想サーバ移行先・移行方式決定部（以下、移行決定部）２４を有する。
【００４７】
移行方針制御部２１は、入力された移行方針データ２５を基に、移行方針テーブル１８をメモリ１５上に作成し、そのテーブル１８を、Ｉ／Ｏデバイス１６に格納する。また、移行方針制御部２１は、Ｉ／Ｏデバイス１６内の移行方針テーブル１８を読み出し、そのテーブル１８をメモリ１５に格納する。
【００４８】
仕様制御部２２は、複数のサーバブレード内のハードウェアを表す仕様テーブル１９をメモリ１５上に作成する。
【００４９】
稼動状況制御部２３は、複数のサーバブレード内のハードウェアの稼働状況を表す稼動状況テーブル２０を、メモリ１５上に作成する。
【００５０】
移行決定部２４は、移行方針テーブル１８、仕様テーブル１９及び稼動状況テーブル２０を基に、仮想サーバの最適な移行先サーバブレードと移行方式とを決定する。移行決定部２４は、決定した最適な移行方式により、移行対象の仮想サーバを、決定した最適な移行先サーバブレードに移行する。
【００５１】
図２は、本実施形態に係る仮想サーバ移行方式選択の処理手順を示す。この図を参照して、仮想サーバの移行の流れを説明する。
【００５２】
＜移行方針の入力＞。
【００５３】
ステップ（２００）で、システム管理者は、仮想サーバ移行機１３を起動する。
【００５４】
ステップ（２０１）で、仮想サーバ移行機１３（移行方針制御部２１）は、システム管理者からの移行方針データ２５の入力を待つ。
【００５５】
ステップ（２０２）で、システム管理者は、移行方針データ２５を入力する。
【００５６】
ステップ（２０３）で、仮想サーバ移行機１３（移行方針制御部２１）は、入力された移行方針データ２５を基に、移行方針テーブル１８を作成する。仮想サーバ移行機１３（移行方針制御部２１）は、作成した移行方針テーブル１８を、Ｉ／Ｏデバイス１６に格納する。
【００５７】
ステップ（２０５）で、システム管理者は、仮想サーバ移行機１３を終了する。
【００５８】
＜仮想サーバの移行＞。
【００５９】
ステップ（２１０）で、システム管理者は、仮想サーバ移行機１３を起動する。
【００６０】
ステップ（２１１）で、仮想サーバ移行機１３は、システム管理者から仮想サーバ移行の指示を待つ。
【００６１】
ステップ（２１２）で、システム管理者は、仮想サーバ移行を仮想サーバ移行機１３に指示する。
【００６２】
ステップ（２１３）で、仮想サーバ移行機１３（移行方針制御部１３）は、Ｉ／Ｏデバイス１６から移行方針テーブル１８を読み出し、そのテーブル１８をメモリ１５に格納する。
【００６３】
ステップ（２２０）で、仮想サーバ移行機１３（仕様制御部２２）は、複数のサーバブレードに、サーバブレードのハードウェア仕様を表す情報（以下、ＨＷ仕様情報）を取得する依頼（以下、仕様取得依頼）を出す。
【００６４】
ステップ（２２１）で、仕様取得依頼を受けたサーバブレードは、サーバブレードのハードウェア仕様を収集する。例えば、サーバブレードのメモリが、そのサーバブレードのハードウェア仕様を表す情報（ＨＷ仕様情報）を記憶しており、そのＨＷ仕様情報が取得される。
【００６５】
ステップ（２２２）で、サーバブレードは、取得したＨＷ仕様情報を、仮想サーバ移行機１３に応答（送信）する。
【００６６】
ステップ（２２３）で、仮想サーバ移行機１３（仕様制御部２２）は、各サーバブレードからのＨＷ仕様情報を基に、メモリ１５上に、仕様テーブル１９を作成する。
【００６７】
ステップ（２３０）で、仮想サーバ移行機１３（稼働状況制御部２３）は、複数のサーバブレードに、サーバブレードのハードウェア稼動状況を表す情報（以下、ＨＷ稼働状況情報）を取得する依頼（以下、稼働状況取得依頼）を出す。
【００６８】
ステップ（２３１）で、稼働状況取得依頼を受けたサーバブレード（例えばハイパバイザ）は、そのサーバブレードのハードウェア稼動状況を収集する。例えば、例えば、サーバブレードのメモリが、そのサーバブレードのハードウェア稼働状況（例えばＣＰＵ使用率）を表す情報（ＨＷ稼働状況情報）を記憶しており、そのＨＷ稼働状況情報が取得される。
【００６９】
ステップ（２３２）で、サーバブレード（例えばハイパバイザ）は、取得したＨＷ稼働状況情報を、仮想サーバ移行機１３に応答（送信）する。
【００７０】
ステップ（２３３）で、仮想サーバ移行機１３（稼働状況制御部２３）は、各サーバブレードからのＨＷ稼動状況情報を基に、メモリ１５上に、稼動状況テーブル２０を作成する。
【００７１】
ステップ（２４０）で、仮想サーバ移行機１３（移行決定部２４）は、移行方針テーブル１８、仕様テーブル１９及び稼動状況テーブル２０を基に、移行対象の仮想サーバの移行先サーバブレードと移行方式とを決定する。
【００７２】
ステップ（２４１）で、仮想サーバ移行機１３（移行決定部２４）は、移行対象の仮想サーバを有するサーバブレード（移行元サーバブレード）に、決定した移行先サーバブレードに決定した移行方式で移行対象の仮想サーバを移行することの依頼（仮想サーバ移行依頼）を出す。
【００７３】
ステップ（２４２）で、移行元サーバブレードは、仮想サーバ移行依頼に応答して、移行対象の仮想サーバを、その依頼から特定される移行先サーバブレードに、その依頼から特定される移行方式で移行する。
【００７４】
ステップ（２４３）で、移行元サーバブレードは、仮想サーバの移行の完了後、仮想サーバ移行機１３に、仮想サーバ移行完了を報告する。
【００７５】
図３は、本実施形態に係る仮想サーバ移行方針設定画面（以下、移行方針設定画面）の例を示す。
【００７６】
移行方針設定画面３００は、システム管理者から移行方針の入力を受け付けるＧＵＩ（Graphical  User  Interface）である。この画面３００に対する入力に従うデータが、前述した移行方針データ２５である。
【００７７】
移行方針設定画面３００は、例えば、移行元サーバ情報３１０、移行先サーバ情報３２０、設定ボタン３３０、完了ボタン３４０を有する。移行元サーバ情報３１０、移行先サーバ情報３２０に情報を設定後、設定ボタン３３０が押下されると、設定された情報（移行方針データ２５）を基に、移行方針テーブル１８が作成される。設定完了後、完了ボタン３４０が押下されると、移行方針設定画面３００が終了する。
【００７８】
移行元サーバ情報３１０は、移行元サーバブレード及び移行対象仮想サーバに関する情報を設定するエリアである。移行元サーバ情報３１０は、例えば、サーバブレード番号３１１、仮想サーバ番号３１２、及び、仮想サーバ移行方針３１３を有する。
【００７９】
サーバブレード番号３１１は、移行元のサーバブレードの番号が指定されるエリアである。そのエリアでは、たとえば、プルダウンメニューで、存在するサーバブレード番号の中からシステム管理者所望の番号が選択される。
【００８０】
仮想サーバ番号３１２は、移行対象の仮想サーバの番号が指定されるエリアである。そのエリアでは、たとえば、プルダウンメニューで、存在する仮想サーバ番号の中からシステム管理者所望の番号が選択される。
【００８１】
仮想サーバ移行方針３１３は、移行元サーバブレード（サーバブレード番号３１１で指定されたサーバブレード）内の移行対象仮想サーバ（仮想サーバ番号３１２で指定された仮想サーバ）を移行する際の移行方針が指定されるエリアである。このエリアでは、たとえば、ラジオボタンで、「Safety」、「Speed」及び「未設定」の中から、システム管理者所望の方針が選択される。「Safety」は、移行速度よりも安全性を重視した移行方式を意味する。「Speed」は、安全性よりも移行速度を重視した移行方式を意味する。「未設定」は、仮想サーバを移行しないという意味である。システム管理者は、移行速度と安全性のどちらを優先するかによって、「Speed」及び「Safety」のどちらを方針とするかを選択することができる。
【００８２】
移行先サーバ情報３２０は、移行先サーバブレードに関する情報が設定されるエリアである。移行先サーバ情報３２０は、例えば、サーバブレード番号３２１を有する。
【００８３】
サーバブレード番号３２１は、移行先のサーバブレードのサーバブレード番号が指定されるエリアである。このエリアでは、たとえば、プルダウンメニューで、存在するサーバブレード番号の中からシステム管理者所望の番号が選択される。選択肢として、サーバブレード番号の他に、「未設定」及び「自動選択」がある。「未設定」は、移行先サーバブレードが選択されないことを意味する。「自動選択」は、仮想サーバ移行機１３任意のサーバブレードが移行先として選択されることを意味する。
【００８４】
図４は、本実施形態に係る移行方針テーブル１８の例を示す。
【００８５】
移行方針テーブル１８は、サーバブレードの最大数分存在する。テーブル１８は、例えば、そのテーブル１８に対応するサーバブレードが有する仮想サーバ毎に、下記の情報、
（＊）仮想サーバの番号である仮想サーバ番号４０１、
（＊）仮想サーバの移行方針を表す情報である移行方針４０２、
（＊）仮想サーバの移行先サーバブレードの番号である移行先サーバブレード番号４０３、
を有する。情報４０１〜４０３は、それぞれ、移行方針設定画面３００に入力された情報である。
【００８６】
図５は、本実施形態に係る仮想サーバ移行指示画面（以下、移行指示画面）の例を示す。
【００８７】
移行指示画面５００は、仮想サーバの移行をシステム管理者から受け付けるＧＵＩである。この画面５００は、例えば、移行元サーバ情報５１０、実行ボタン５２０、及び、中止ボタン５３０を有する。移行元サーバ情報５１０に情報が設定された後、実行ボタン５２０が押下されると、仮想サーバの移行が開始される。中止ボタン５３０が押下されると、移行指示画面５００が終了する。
【００８８】
移行元仮想サーバ情報５１０は、移行元サーバブレード及び移行対象仮想サーバに関する情報が設定されるエリアである。情報５１０は、例えば、サーバブレード番号５１１及び仮想サーバ番号５１２を有する。
【００８９】
サーバブレード番号５１１は、移行元のサーバブレードの番号が指定されるエリアである。このエリアでは、たとえば、プルダウンメニューで、存在するサーバブレード番号の中からシステム管理者所望の番号が選択される。
【００９０】
仮想サーバ番号５１２は、移行対象の仮想サーバの番号が指定されるエリアである。このエリアでは、たとえば、プルダウンメニューで、存在する仮想サーバ番号の中からシステム管理者所望の番号が選択される。
【００９１】
図６は、本実施形態に係る仕様テーブル１９の例を示す。
【００９２】
仕様テーブル１９は、サーバブレードの最大数分存在する。テーブル１９は、例えば、そのテーブル１９に対応するサーバブレード（以下、図６の説明において「対象サーバブレード」と言う）が有するハードウェアの仕様に関する情報を有する。具体的には、例えば、テーブル１９は、ＣＰＵ情報６１０、搭載メモリ情報６２０、及び、搭載Ｉ／Ｏ情報６３０を有する。
【００９３】
ＣＰＵ情報６１０は、対象サーバブレードが有するＣＰＵの仕様に関する情報である。ＣＰＵ情報６１０は、例えば、ＣＰＵ種別（ＣＰＵの種別を表す情報）６１１、チップセット（ＣＰＵの動作周波数を表す情報）６１２、コア数（ＣＰＵコアの数を表す情報）６１３及びソケット数（ＣＰＵソケットの数を表す情報）６１４を有する。
【００９４】
搭載メモリ情報６２０は、対象サーバブレードが有するメモリの仕様に関する情報である。搭載メモリ情報６２０は、例えば、メモリスロット毎にメモリ種別６２１（メモリスロットに搭載されているメモリの種別を表す情報）を有する。
【００９５】
搭載Ｉ／Ｏ情報６３０は、対象サーバブレードが有するＩ／Ｏデバイスの仕様に関する情報である。搭載Ｉ／Ｏ情報６３０は、例えば、オンボードＩ／Ｏ種別（オンボードのＩ／Ｏデバイスの種別を表す情報）６３１、スロットＩ／Ｏ種別（Ｉ／Ｏスロット（拡張スロット）に挿されているＩ／Ｏデバイスの種別を表す情報）６３２を有する。
【００９６】
図７は、本実施形態に係る稼動状況テーブル２０の例を示す。
【００９７】
稼動状況テーブル２０は、サーバブレードの最大数分存在する。テーブル２０は、例えば、そのテーブル２０に対応するサーバブレード（以下、図７の説明において「対象サーバブレード」と言う）が有するハードウェアの稼働状況に関する情報を有する。具体的には、例えば、テーブル２０は、ＣＰＵ稼働状況７１０、メモリ稼働状況７２０、及び、搭載Ｉ／Ｏ稼働状況７３０を有する。
【００９８】
ＣＰＵ稼働状況７１０は、対象サーバブレードが有するＣＰＵの稼働状況を表す情報である。ＣＰＵ稼働状況７１０は、例えば、単位時間あたりのＣＰＵ稼動率（単位時間当たりのＣＰＵ稼働率を表す情報）７１１を有する。
【００９９】
メモリ稼働状況７２０は、対象サーバブレードが有するメモリの稼働状況を表す情報である。メモリ稼働状況７２０は、例えば、対象サーバブレードが有する仮想サーバ毎に、使用メモリ容量（仮想サーバによって使用されているメモリ容量を表す情報）７２１を有する。
【０１００】
搭載Ｉ／Ｏ稼働状況７３０は、対象サーバブレードが有するＩ／Ｏデバイスの稼働状況を表す情報である。搭載Ｉ／Ｏ稼働状況７３０は、例えば、対象サーバブレードが有するＩ／Ｏデバイス毎に、使用搭載Ｉ／Ｏ情報（Ｉ／Ｏデバイスを使用している仮想サーバの番号を含んだ情報）７３１を有する。
【０１０１】
図８は、本実施形態に係る仮想サーバ移行方式決定の処理手順を示す。なお、以下の説明では、番号がｉのサーバブレードを「サーバブレード＃ｉ」と記載することがある。
【０１０２】
この図に示す処理は、図２のステップ（２４０）の詳細であり、仮想サーバ移行機１３の移行決定部２４が行う処理の手順である。移行対象の仮想サーバ、及び、移行元サーバブレードは、図２のステップ（２１２）で入力された移行指示（図５の画面５００を使用して出された移行指示）で指定されている。
【０１０３】
ステップ（８００）で、移行決定部２４は、移行元サーバブレードに対応した移行方針テーブル１８を基に、移行対象の仮想サーバについての移行方針が「未設定」か否かを判断する。移行方針が「未設定」の場合は、ステップ（８１１）が行われ、移行方針が「未設定」以外の場合は、ステップ（８０１）が行われる。
【０１０４】
ステップ（８０１）で、移行決定部２４は、移行元サーバブレードに対応した移行方針テーブル１８を基に、移行対象仮想サーバの移行先サーバブレードが「未設定」か否かを判断する。移行先サーバブレードが「未設定」の場合、ステップ（８１１）が行われ、移行先サーバブレードが「未設定」以外の場合、ステップ（８０２）が行われる。
【０１０５】
ステップ（８０２）で、移行決定部２４は、指定移行先ブレードリストを作成する。指定移行先ブレードリストは、サーバブレードの最大数分、To[i]を有する（ｉは、前述したように、サーバブレードの番号である）。サーバブレード＃ｉが移行先サーバブレード（又はその候補）である場合、To[i]について「OK」が設定され、サーバブレード＃ｉが移行先サーバブレードになり得ない場合、To[i]について「NG」が設定される。移行先サーバブレードになり得ないサーバブレードとは、移行元サーバブレード、及び、移行先として指定されていないサーバブレードである。従って、移行先サーバブレードとして「自動選択」が指定されている場合、移行元サーバブレード以外の全てのサーバブレードのTo[i]について、「OK」が設定される。つまり、指定移行先サーバブレードリストは、移行先サーバブレード（及びその候補）のリストである。
【０１０６】
ステップ（８０３）で、移行決定部２４は、同一仕様ハードウェアリストを作成する。同一仕様ハードウェアリストは、サーバブレードの最大数分、Spec[i]を有する。サーバブレード＃ｉのハードウェア仕様と移行元サーバブレードのハードウェア仕様とが同一である場合、Spec[i]について「OK」が設定され、それらのハードウェア仕様が非同一である場合、Spec[i]について「NG」が設定される。それらのハードウェア仕様が同一か否かは、移行元サーバブレードについての仕様テーブル１９と、サーバブレード＃ｉについての仕様テーブル１９とを比較することで、判断可能である。例えば、スロットは異なっていても、同一仕様のＣＰＵ、メモリ及びＩ／Ｏデバイスが両方のサーバブレード（移行元サーバブレード、及び、サーバブレード＃ｉ）にある場合は、Spec[i]について「OK」が設定される。
【０１０７】
ステップ（８０４）で、移行決定部２４は、稼動可能ブレードリストを作成する。稼動可能ブレードリストは、サーバブレードの最大数分、Able[i]を有する。サーバブレード＃ｉに移行対象の仮想サーバが移行されてもサーバブレード＃ｉが稼働可能である場合（例えば、移行対象の仮想サーバが移行されても、ＣＰＵ使用率が所定の閾値を超えないと推測される場合）、Able[i]について「OK」が設定される。一方、サーバブレード＃ｉに移行対象の仮想サーバが移行されるとサーバブレード＃ｉが稼働不可能となる場合（例えば、移行対象の仮想サーバが移行されると、ＣＰＵ使用率が所定の閾値を超えると推測される場合）、Able[i]について「NG」が設定される。サーバブレード＃ｉに移行対象の仮想サーバが移行されてもそのサーバブレード＃ｉが稼働可能であるか否かは、両方のサーバブレード（移行元サーバブレード、及び、サーバブレード＃ｉ）に対応する稼働状況テーブル２０を基に、判断可能である。
【０１０８】
ステップ（８０５）で、移行決定部２４は、To[i]、Spec[i]及びAble[i]の全てについて「OK」が設定されているサーバブレード（つまり、移行先又は移行先候補であり、ハードウェア仕様が移行元サーバブレードと同一であり、且つ、移行対象仮想サーバが移行されても稼働可能なサーバブレード）を検索する。該当するサーバブレードが存在する場合は、ステップ（８０６）が行われ、該当するサーバブレードが存在しない場合は、ステップ（８０７）が行われる。
【０１０９】
ステップ（８０６）で、移行決定部２４は、移行元サーバブレードに対応した移行方針テーブル１８を基に、移行対象の仮想サーバの移行方針が「Speed」か否かを判断する。移行方針が「Speed」の場合、ステップ（８０８）が行われ、移行方針が「Speed」以外の場合、ステップ（８０９）が行われる。
【０１１０】
ステップ（８０７）で、移行決定部２４は、To[i]及びSpec[i]について「OK」が設定されているサーバブレード（つまり、移行先又は移行先候補であり、ハードウェア仕様は移行元サーバブレードと異なるが、移行対象仮想サーバが移行されても稼働可能なサーバブレード）を検索する。該当するサーバブレードが存在する場合、ステップ（８１０）が行われ、該当するサーバブレードが存在しない場合、ステップ（８１１）が行われる。
【０１１１】
ステップ（８０８）で、移行決定部２４は、移行方式をLive方式に決定する。
【０１１２】
ステップ（８０９）で、移行決定部２４は、移行方式をSleep方式に決定する。
【０１１３】
ステップ（８１０）で、移行決定部２４は、移行方式をReboot方式に決定する。
【０１１４】
ステップ（８１１）で、移行決定部２４は、仮想サーバ移行を失敗とする。
【０１１５】
図８に示す流れによれば、移行元と移行先でハードウェア構成が同一であれば、Live方式とSleep方式のいずれも選択可能である。どちらの移行方式とするかは、移行速度と安全性のどちらが重視されているかによって決まる。Sleep方式は、Live方式に比べて、安全性は高いが移行速度は遅い。このため、移行方針が「Speed」であれば、Live方式が選択され、移行方針が「Safety」であれば、Sleep方式が選択される。
【０１１６】
また、図８に示す流れによれば、移行元とハードウェア構成が同一であるサーバブレードが、移行元とハードウェア構成が非同一のサーバブレードよりも優先的に移行先とされる。これにより、安全性がSleep方式と実質的に同じであるが移行速度がSleep方式より遅いReboot方式が選択される可能性を下げることができる。
【０１１７】
なお、ハードウェア構成が同一であっても、Reboot方式が選択されても良いが、前述の通り、Reboot方式の安全性とSleep方式の安全性は実質的に同じなので、本実施形態では、ハードウェア構成が同一の場合には、Reboot方式は選択されない。
【０１１８】
図９は、図８のステップ（８０２）の詳細の例を示す。
【０１１９】
ステップ（９００）で、移行決定部２４は、ｉ（移行先ブレード番号）に０を設定する。
【０１２０】
ステップ（９０１）で、移行決定部２４は、iがブレード最大数未満か否かを判断する。iがブレード最大数未満であれば、ステップ（９０２）が行われ、iがブレード最大数以上の場合、図９に示す処理流れが終了する。
【０１２１】
ステップ（９０２）で、移行決定部２４は、iが移行元サーバブレードの番号（以下、移行元ブレード番号）と同じか否かを判断する。iが移行元ブレード番号と同じ場合、ステップ（９０８）が行われ、iが移行元ブレード番号以外の番号の場合、ステップ（９０８）が行なわれる。
【０１２２】
ステップ（９０３）で、移行決定部２４は、移行対象仮想サーバに対応した移行先サーバ番号４０３（図４参照）が「自動選択」か否かを判断する。移行先サーバ番号４０３が「自動選択」の場合、ステップ（９０７）が行われ、移行先サーバ番号４０３が「自動選択」以外の場合、ステップ（９０４）が行われる。
【０１２３】
ステップ（９０４）で、移行決定部２４は、iが、移行対象仮想サーバに対応した移行先サーバ番号４０３が表す番号（移行先指定ブレード番号）と同じか否かを判定する。ｉが移行先指定ブレード番号と同じ場合、ステップ（９０５）が行われ、ｉが移行先ブレード番号以外の番号の場合、ステップ（９０６）が行なわれる。
【０１２４】
ステップ（９０５）で、移行決定部２４は、To[i]について、「OK」を設定する。
【０１２５】
ステップ（９０６）で、移行決定部２４は、To[i]について、「NG」を設定する。
【０１２６】
ステップ（９０７）で、移行決定部２４は、To[i]について、「OK」を設定する。
【０１２７】
ステップ（９０８）で、移行決定部２４は、To[i]について、「NG」を設定する。
【０１２８】
ステップ（９０９）で、移行決定部２４は、iに１を加算する。更新後のｉについて、ステップ（９０１）が行われる。
【０１２９】
図１０は、図８のステップ（８０３）の詳細の例を示す。
【０１３０】
ステップ（１０００）で、移行決定部２４は、iに０を設定し、パラメータｊに、移行元ブレード番号を設定する。
【０１３１】
ステップ（１００１）で、移行決定部２４は、iがブレード最大数未満か否かを判断する。iがブレード最大数未満の場合、ステップ（１００２）が行われ、iがブレード最大数以上の場合、図１０に示す処理流れが終了する。
【０１３２】
ステップ（１００２）で、移行決定部２４は、ブレード＃iのＣＰＵ情報６１０（図６参照）とブレード＃jのＣＰＵ情報６１０を比較する。ブレード＃iのＣＰＵ情報６１０がブレード＃jのＣＰＵ情報６１０に一致した場合（ＣＰＵ種別、チップセット、コア数、ソケット数などが同一の場合）、ステップ（１００３）が行われる。一方、ブレード＃iのＣＰＵ情報６１０の少なくとも一部がブレード＃jのＣＰＵ情報６１０に一致しない場合（ＣＰＵ種別、チップセット、コア数、ソケット数などのうちのいずれかが同一でない場合）、ステップ（１００６）が行なわれる。
【０１３３】
ステップ（１００３）で、移行決定部２４は、ブレード＃iの搭載メモリ情報６２０とブレード＃jの搭載メモリ情報６２０とを比較する。ブレード＃iの搭載メモリ情報６２０がブレード＃jの搭載メモリ情報６２０に一致した場合（例えば、スロット番号及びメモリ種別との組合せが、全て互いに一致した場合）、ステップ（１００４）が行われる。一方、ブレード＃iの搭載メモリ情報６２０の少なくとも一部がブレード＃jの搭載メモリ情報６２０に一致しない場合、ステップ（１００６）が行なわれる。
【０１３４】
ステップ（１００４）で、移行決定部２４は、ブレード＃iの搭載Ｉ／Ｏ情報６３０とブレード＃jの搭載Ｉ／Ｏ情報とを比較する。ブレード＃iの搭載Ｉ／Ｏ情報６３０がブレード＃jの搭載Ｉ／Ｏ情報６３０に一致した場合（例えば、スロット番号及びＩ／Ｏデバイス種別との組合せが、全て互いに一致した場合）、ステップ（１００５）が行われる。一方、ブレード＃iの搭載Ｉ／Ｏ情報６３０の少なくとも一部がブレード＃jの搭載Ｉ／Ｏ情報６３０に一致しない場合、ステップ（１００６）が行なわれる。
【０１３５】
ステップ（１００５）で、移行決定部２４は、Spec[i]について、「OK」を設定する。
【０１３６】
ステップ（１００６）で、移行決定部２４は、Spec[i]について、「NG」を設定する。
【０１３７】
ステップ（１００７）で、移行決定部２４は、iに１を加算する。更新後のｉについて、ステップ（１００１）が行われる。
【０１３８】
図１１は、図８のステップ（８０４）の詳細の例を示す。
【０１３９】
ステップ（１１００）で、移行決定部２４は、iに０を設定し、パラメータｊに、移行元ブレード番号を設定し、パラメータkに、移行対象の仮想サーバ番号を設定する。以下、移行対象の仮想サーバを、「仮想サーバ＃ｋ」と言う。
【０１４０】
ステップ（１１０１）で、移行決定部２４は、iがブレード最大数未満か否かを判断する。ｉがブレード最大数未満の場合、ステップ（１１０２）が行われ、ｉがブレード最大数以上の場合、図１１に示す処理流れが終了する。
【０１４１】
ステップ（１１０２）で、移行決定部２４は、ブレード＃iのＣＰＵ稼働状況７１０とブレード＃jのＣＰＵ稼動状況７１０とを比較する。ブレード＃iのＣＰＵ稼働率がブレード＃jのＣＰＵ稼働率より低い場合（例えば、ブレード＃iのＣＰＵ稼働率と仮想サーバ＃ｋによるＣＰＵ稼働率との和が、ブレード＃jのＣＰＵ稼働率と仮想サーバ＃ｋによるＣＰＵ稼働率との差がより小さい場合）、ステップ（１１０３）が行われる。一方、ブレード＃iのＣＰＵ稼働率がブレード＃jのＣＰＵ稼働率以上の場合、ステップ（１１０６）が行なわれる。
【０１４２】
ステップ（１１０３）で、移行決定部２４は、ブレード＃iのメモリ稼働状況７２０とブレード＃jのメモリ稼動状況７２０とを比較する。ブレード＃iの使用メモリ容量がブレード＃jの使用メモリ容量より小さい場合（例えば、ブレード＃iの使用メモリ容量と仮想サーバ＃ｋによる使用メモリ容量との和が、ブレード＃jの使用メモリ容量と仮想サーバ＃ｋによるの使用メモリ容量との差より小さい場合）、ステップ（１１０４）が行われる。一方、ブレード＃iの使用メモリ容量がブレード＃jの使用メモリ容量以上の場合、ステップ（１１０６）が行われる。
【０１４３】
ステップ（１１０４）で、移行決定部２４は、ブレード＃iの搭載Ｉ／Ｏ稼働状況７３０と、ブレード＃jの搭載Ｉ／Ｏ稼動状況７３０とを比較する。仮想サーバkの使用Ｉ／Ｏスロット番号に対応した値（ブレード＃iの搭載Ｉ／Ｏ稼働状況７３０における値）が「未使用」の場合、ステップ（１１０５）が行われる。つまり、ブレード＃jにおいて仮想サーバに使用されているＩ／Ｏデバイスの番号と同じ番号が割り当てられているＩ／Ｏデバイス（ブレード＃i内のＩ／Ｏデバイス）が、ブレード＃iにおいていずれの仮想サーバにも使用されていなければ、ステップ（１１０５）が行われる。一方、仮想サーバkの使用Ｉ／Ｏスロット番号に対応した仮想サーバ番号（ブレード＃iの搭載Ｉ／Ｏ稼働状況７３０における仮想サーバ番号）が「未使用」ではない場合、ステップ（１１０６）が行われる。
【０１４４】
ステップ（１１０５）で、移行決定部２４は、Able[i]について、「OK」を設定する。
【０１４５】
ステップ（１１０６）で、移行決定部２４は、Able[i]について、「NG」を設定する。
【０１４６】
ステップ（１１０７）移行決定部２４は、iに１を加算する。更新後のｉについて、ステップ（１１０１）が行われる。
【０１４７】
以上、本発明の一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１４８】
例えば、複数のサーバブレードのいずれかのサーバブレードが、仮想サーバ移行機としても機能して良い。この場合、複数のサーバブレードとは別の装置が仮想サーバ移行機とされないで良い。
【符号の説明】
【０１４９】
２，３，４…サーバブレード  ６，７，８…仮想サーバ  １３…仮想サーバ移行機
【図１】
0005391152.tif 000002
【図２】
0005391152.tif 000003
【図３】
0005391152.tif 000004
【図４】
0005391152.tif 000005
【図５】
0005391152.tif 000006
【図６】
0005391152.tif 000007
【図７】
0005391152.tif 000008
【図８】
0005391152.tif 000009
【図９】
0005391152.tif 000010
【図１０】
0005391152.tif 000011
【図１１】
0005391152.tif 000012