(57)【特許請求の範囲】
【請求項１】
第一サーバ装置と少なくとも１つの第二サーバ装置とを備え、
前記第一サーバ装置は、
前記第二サーバ装置のうち少なくとも１つに対して、当該第二サーバ装置が仮想マシン実行環境を構築するためのプログラムを含む所定のプログラムを実行可能な状態にする実行可能化処理を行う仮想マシンと、
前記仮想マシンが前記実行可能化処理を行った前記第二サーバ装置のうちいずれかに前記仮想マシンを移動させるマイグレーション部と、
を備え、
前記仮想マシンは、前記第一サーバ装置から前記第二サーバ装置に移動した後、前記第一サーバ装置に対して当該第一サーバ装置が所定のプログラムを実行可能な状態にする前記実行可能化処理を少なくとも１回行う、
サーバシステム。
【請求項２】
前記仮想マシンは、ＯＳを含む所定のプログラムを実行可能な状態にする前記実行可能化処理を行う、請求項１に記載のサーバシステム。
【請求項３】
前記第一サーバ装置は、
前記仮想マシンの実行に用いるデータを前記第二サーバ装置にコピーするデータコピー部と、
前記仮想マシンの実行に用いるデータの参照先を前記第二サーバ装置にコピーされたデータに切り替える参照先切替部と、
を備える請求項１または請求項２に記載のサーバシステム。
【請求項４】
前記サーバシステムが備えるサーバ装置の各々は、
サーバ装置自らの負荷の大きさに関連する負荷情報を取得する負荷関連情報取得部と、
サーバ装置自らの前記負荷情報が、負荷が所定の条件以上に大きいことを示す場合、他のサーバ装置の前記負荷情報に基づいていずれかのサーバ装置を選択するサーバ装置選択部と、
前記マイグレーション部と、
を備え、
前記マイグレーション部は、前記サーバ装置選択部が選択したサーバ装置に前記仮想マシンを移動させる、
請求項１から３のいずれか一項に記載のサーバシステム。
【請求項５】
他のサーバ装置のうち少なくとも１つに対して、当該他のサーバ装置が仮想マシン実行環境を構築するためのプログラムを含む所定のプログラムを実行可能な状態にする実行可能化処理を行う仮想マシンと、
前記仮想マシンが前記実行可能化処理を行った前記他のサーバ装置のうちいずれかに前記仮想マシンを移動させるマイグレーション部と、
を備え、
前記仮想マシンは、元のサーバ装置から前記他のサーバ装置への前記移動の後、前記元のサーバ装置に対して当該元のサーバ装置が所定のプログラムを実行可能な状態にする前記実行可能化処理を少なくとも１回行う、
サーバ装置。
【請求項６】
第一サーバ装置で実行されている仮想マシンが、第二サーバ装置のうち少なくとも１つに対して、当該第二サーバ装置が仮想マシン実行環境を構築するためのプログラムを含む所定のプログラムを実行可能な状態にする実行可能化処理を行い、
前記第一サーバ装置が備えるマイグレーション部が、前記仮想マシンが前記実行可能化処理を行った前記第二サーバ装置のうちいずれかに前記仮想マシンを移動させ、
前記仮想マシンが、前記第二サーバ装置に移動した後、前記第一サーバ装置に対して当該第一サーバ装置が所定のプログラムを実行可能な状態にする前記実行可能化処理を少なくとも１回行う、
プログラム実行可能化処理方法。
【請求項７】
サーバ装置に、
他のサーバ装置のうち少なくとも１つに対して、当該他のサーバ装置が仮想マシン実行環境を構築するためのプログラムを含む所定のプログラムを実行可能な状態にする実行可能化処理を行う仮想マシンであって、元のサーバ装置から前記他のサーバ装置のうちいずれかへの移動の後、前記元のサーバ装置に対して当該元のサーバ装置が所定のプログラムを実行可能な状態にする前記実行可能化処理を少なくとも１回行う仮想マシンを動作させ、
前記仮想マシンが前記実行可能化処理を行った前記他のサーバ装置のうちいずれかに前記仮想マシンを移動させるための
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバシステム、サーバ装置、プログラム実行可能化処理方法及びプログラムに関する。
【背景技術】
【０００２】
仮想マシンのマイグレーション（Migration、移動）など、複数のサーバ装置間でのデータのやり取りに関連する幾つかの技術が提案されている。
例えば、特許文献１には、管理対象である仮想マシンの情報収集を、管理を行うサーバ上の管理マネージャへの負荷をかけずに行うための方法が示されている。特許文献に記載の方法では、管理仮想マシン（第１の管理仮想マシン）が第１のサーバ上の仮想マシンのデータを収集して共有記憶装置に格納する。データの収集を完了すると、管理仮想マシンは収集完了通知を管理サーバに送信した後に、ライブマイグレーション（Live Migration）機能によって第２のサーバに移動し、第２のサーバ上の仮想マシンのデータを収集して共有記憶装置に格納する。このように、管理仮想マシンは、管理対象のサーバを移動しながら、サーバ上の仮想マシンのデータを収集する。管理サーバは、仮想管理マシンが共有記憶装置に格納したデータを読み出す。
【０００３】
また、特許文献２には、仮想マシンをマイグレートする（移動させる）方法が示されている。特許文献２に記載の方法では、第１サーバ上で仮想マシンを動作させ、第１サーバはネットワークを介してファブリック・アタッチド・メモリ（Fabric Attached Memory）内のある位置の仮想マシンイメージにアクセスする。そして、第１サーバ上の仮想マシンに関するデータをキャッシュメモリから仮想マシンイメージへ出力し、仮想マシンの状態情報及びメモリアドレス情報を第２サーバに提供する。これにより、仮想マシンを第１サーバから第２サーバへマイグレートする。第２サーバは、仮想マシンイメージにアクセスし、仮想マシンが第２サーバ上で動作する。
【０００４】
複数のサーバ装置間のデータをやり取りする場合の１つに、複数のサーバ装置に対してデプロイ（Deploy）を行う場合がある。ここでいうデプロイとは、サーバ装置にプログラムを展開して他の機器から当該プログラムの機能を実行可能な状態にすることである。
例えば、特許文献３には、様々なハードウェア構成のサーバ装置にデプロイを行うための技術が記載されている。特許文献３に記載のデプロイ方法では、管理サーバ装置がデプロイ元サーバ装置とデプロイ先サーバ装置とのハードウェア構成を比較し、その差異を検知して、検知した際に応じてデプロイ方法を変化させる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１５９２４９号公報
【特許文献２】米国特許出願公開第２０１２／０１７３６５３号明細書
【特許文献３】特開２００９−１２２９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のサーバ装置に対してデプロイを行う場合、すなわち、複数のサーバ装置に対して所定のプログラムを実行可能な状態にする実行可能化処理を行う場合に、必要なサーバの数を低減させることができれば、ハードウェアのコストを低減させることができる。
【０００７】
本発明は、上述の課題を解決することのできるサーバシステム、サーバ装置、プログラム実行可能化処理方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明の第１の態様によれば、サーバシステムは、第一サーバ装置と少なくとも１つの第二サーバ装置とを備え、前記第一サーバ装置は、前記第二サーバ装置のうち少なくとも１つに対して、当該第二サーバ装置が仮想マシン実行環境を構築するためのプログラムを含む所定のプログラムを実行可能な状態にする実行可能化処理を行う仮想マシンと、前記仮想マシンが前記実行可能化処理を行った前記第二サーバ装置のうちいずれかに前記仮想マシンを移動させるマイグレーション部と、を備え、前記仮想マシンは、前記第一サーバ装置から前記第二サーバ装置に移動した後、前記第一サーバ装置に対して当該第一サーバ装置が所定のプログラムを実行可能な状態にする前記実行可能化処理を少なくとも１回行う。
【０００９】
本発明の第２の態様によれば、サーバ装置は、他のサーバ装置のうち少なくとも１つに対して、当該他のサーバ装置が仮想マシン実行環境を構築するためのプログラムを含む所定のプログラムを実行可能な状態にする実行可能化処理を行う仮想マシンと、前記仮想マシンが前記実行可能化処理を行った前記他のサーバ装置のうちいずれかに前記仮想マシンを移動させるマイグレーション部と、を備え、前記仮想マシンは、元のサーバ装置から前記他のサーバ装置への前記移動の後、前記元のサーバ装置に対して当該元のサーバ装置が所定のプログラムを実行可能な状態にする前記実行可能化処理を少なくとも１回行う。
【００１０】
本発明の第３の態様によれば、プログラム実行可能化処理方法は、第一サーバ装置で実行されている仮想マシンが、第二サーバ装置のうち少なくとも１つに対して、当該第二サーバ装置が仮想マシン実行環境を構築するためのプログラムを含む所定のプログラムを実行可能な状態にする実行可能化処理を行い、前記第一サーバ装置が備えるマイグレーション部が、前記仮想マシンが前記実行可能化処理を行った前記第二サーバ装置のうちいずれかに前記仮想マシンを移動させ、前記仮想マシンが、前記第二サーバ装置に移動した後、前記第一サーバ装置に対して当該第一サーバ装置が所定のプログラムを実行可能な状態にする前記実行可能化処理を少なくとも１回行う。
【００１１】
本発明の第４の態様によれば、プログラムは、サーバ装置に、他のサーバ装置のうち少なくとも１つに対して、当該他のサーバ装置が仮想マシン実行環境を構築するためのプログラムを含む所定のプログラムを実行可能な状態にする実行可能化処理を行う仮想マシンであって、元のサーバ装置から前記他のサーバ装置のうちいずれかへの移動の後、前記元のサーバ装置に対して当該元のサーバ装置が所定のプログラムを実行可能な状態にする前記実行可能化処理を少なくとも１回行う仮想マシンを動作させ、前記仮想マシンが前記実行可能化処理を行った前記他のサーバ装置のうちいずれかに前記仮想マシンを移動させるためのプログラムである。
【発明の効果】
【００１２】
この発明によれば、複数のサーバに対して所定のプログラムを実行可能な状態にする実行可能化処理を行う場合に、必要なサーバの数を低減させることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係るコンピュータシステムの機能構成を示す概略ブロック図である。
【図２】同実施形態に係るコンピュータシステム１がサーバ装置１００の各々に目的プログラムをデプロイする処理手順の第一例を示す説明図である。
【図３】同実施形態に係るコンピュータシステム１がサーバ装置１００の各々に目的プログラムをデプロイする処理手順の第二例を示す説明図である。
【図４】同実施形態に係る起点サーバ装置１０１が目的プログラムのデプロイを開始する段階での起点サーバ装置１０１の機能構成例を示す概略ブロック図である。
【図５】同実施形態に係る起点サーバ装置１０１が対象サーバ装置１０２に目的ブログラムをデプロイした段階での起点サーバ装置１０１及び対象サーバ装置１０２の機能構成例を示す概略ブロック図である。
【図６】同実施形態に係る起点サーバ装置１０１が対象サーバ装置１０２にデプロイ仮想マシン１６０をライブマイグレーションする前処理の段階での起点サーバ装置１０１及び対象サーバ装置１０２の機能構成例を示す概略ブロック図である。
【図７】同実施形態に係るデプロイ仮想マシン１６０を実行するためのデータ参照先を対象サーバ装置１０２内に設ける処理手順の例を示すフローチャートである。
【図８】同実施形態に係る起点サーバ装置１０１が対象サーバ装置１０２にデプロイ仮想マシン１６０をライブマイグレーションした段階での起点サーバ装置１０１及び対象サーバ装置１０２の機能構成例を示す概略ブロック図である。
【図９】同実施形態に係るデプロイ仮想マシン１６０を起点サーバ装置１０１から対象サーバ装置１０２へ切り替える際の処理手順の例を示すフローチャートである。
【図１０】同実施形態に係る対象サーバ装置１０２が起点サーバ装置１０１に目的プログラムをデプロイした段階での起点サーバ装置１０１及び対象サーバ装置１０２の機能構成例を示す概略ブロック図である。
【図１１】同実施形態に係る対象サーバ装置１０２から他の対象サーバ装置１０２への目的プログラムをデプロイした段階での対象サーバ装置１０２の機能構成例を示す概略ブロック図である。
【図１２】同実施形態に係るデプロイ仮想マシン１６０を実行するサーバ装置１００が負荷に応じて他のサーバ装置１００にデプロイ仮想マシン１６０を移動させている段階での、これらサーバ装置１００の機能構成例を示す概略ブロック図である。
【図１３】本発明に係るサーバシステムの最小構成を示す概略ブロック図である。
【図１４】本発明に係るサーバ装置の最小構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図１は、本発明の一実施形態に係るコンピュータシステムの機能構成を示す概略ブロック図である。同図に示すように、コンピュータシステム１は、１つの起点サーバ装置１０１と、対象サーバ装置１０２−１〜１０２−ｎ（ｎはｎ≧１の整数）とを備える。
以下、対象サーバ装置１０２−１〜１０２−ｎを総称して対象サーバ装置１０２と表記する。コンピュータシステム１が１つの対象サーバ装置１０２を備えていてもよいし、２つ以上の対象サーバ装置１０２を備えていてもよい。また、起点サーバ装置１０１と対象サーバ装置１０２とを総称してサーバ装置１００と表記する。
サーバ装置１００の各々はスイッチ３００を介して通信接続されている。
【００１５】
コンピュータシステム１は、例えばＷｅｂサービスの提供など所定の機能を実行するために用いられるシステムである。但し、初期状態では、起点サーバ装置１０１及び対象サーバ装置１０２の各々は所定の機能を実行するためのプログラムを搭載していない。以下では、所定の機能を実行するためのプログラムを目的プログラムと称する。
起点サーバ装置１０１及び対象サーバ装置１０２に目的プログラムを実行させるため、起点サーバ装置１０１及び対象サーバ装置１０２のうち何れかが、他のサーバ装置に目的プログラムをデプロイする。ここでいうデプロイとは、サーバ装置にプログラムを展開（例えばインストール）して他の機器から当該プログラムの機能を実行可能な状態にすることである。
【００１６】
具体的には、まず、起点サーバ装置１０１がデプロイサーバとして機能する仮想マシンを実行して、１つ以上の対象サーバ装置１０２に目的プログラムをデプロイする。以下では、デプロイサーバとして機能する仮想マシンをデプロイ仮想マシンと称する。
ここでの目的プログラムにはＯＳ（Operating System）が含まれている。目的プログラムのデプロイはＯＳのインストールを伴っており、起点サーバ装置１０１上で機能する仮想マシンは起点サーバ装置１０１に目的プログラムをデプロイできない。そこで、起点サーバ装置１０１から目的プログラムをデプロイ済みの対象サーバ装置１０２へ仮想マシンをマイグレーションする（移動させる）。対象サーバ装置１０２上で機能する仮想マシンが起点サーバ装置１０１に目的プログラムをデプロイすることで、全てのサーバ装置１００に目的プログラムをデプロイすることができる。
また、ここでの目的プログラムには、仮想マシン実行環境を構築するためのプログラムが含まれている。これにより、目的プログラムをデプロイされたサーバ装置１００は、仮想マシンのマイグレーションを受けることができる。
なお、目的プログラムにＯＳ等が含まれていない場合は、起点サーバ装置１０１が、起点サーバ装置１０１自らに目的プログラムをデプロイするようにしてもよい。あるいは、目的プログラムにＯＳ等が含まれていない場合、起点サーバ装置１０１が、未だデプロイ済みでないサーバ装置１００へデプロイ仮想マシンをマイグレーションするようにしてもよい。
【００１７】
上記のように、サーバ装置１００の各々は、目的プログラムをデプロイされて所定の機能を実行する。
サーバ装置１００のうち、起点サーバ装置１０１は、デプロイ仮想マシンをサーバ装置１００のうちで最初に実行することで、対象サーバ装置１０２に対して目的プログラムをデプロイする。また、起点サーバ装置１０１は、仮想マシンを対象サーバ装置１０２に移動させた後、目的プログラムのデプロイを受ける（デプロイされる）対象となる。起点サーバ装置１０１は、第一サーバ装置の例に該当する。
【００１８】
対象サーバ装置１０２は、目的プログラムのデプロイを受ける対象となる。また、対象サーバ装置１０２のうちいずれか１つ以上は、デプロイ仮想マシンの実行を受け継いで、残りのサーバ装置１００（まだ目的プログラムをデプロイされていないサーバ装置１００）に対して目的プログラムをデプロイする。起点サーバ装置１０１も、対象サーバ装置１０２のいずれかによって目的プログラムをデプロイされる。対象サーバ装置１０２は、第二サーバ装置の例に該当する。
【００１９】
スイッチ３００は、通信ネットワークを構成してサーバ装置１００同士の通信を中継する。但し、サーバ装置１００同士が通信を行う形態は、１つのスイッチ３００を用いる形態に限らない。例えば、サーバ装置１００同士が複数のスイッチを含むＬＡＮ（Local Area Network）を介して通信を行うようにしてもよい。あるいは、サーバ装置１００同士がインターネット（Internet）を介して通信を行うようにしてもよい。
なお、サーバ装置１００同士の通信を中継する通信ネットワークが、コンピュータシステム１に含まれていてもよいし、コンピュータシステム１とは別の存在として構成されていてもよい。例えば、図１の構成で、スイッチ３００がコンピュータシステム１とは別の装置として構成されていてもよい。
【００２０】
図２は、コンピュータシステム１がサーバ装置１００の各々に目的プログラムをデプロイする処理手順の第一例を示す説明図である。
同図の処理で、まず、起点サーバ装置１０１が、デプロイ仮想マシンを実行して、１つ以上の対象サーバ装置１０２に目的プログラムをデプロイする（シーケンスＳ１０１〜Ｓ１０２）。図２の例では、対象サーバ装置１０２は２つの対象サーバ装置１０２（対象サーバ装置１０２−１及び１０２−２）に目的プログラムをデプロイしている。
【００２１】
なお、本実施形態での目的プログラムのデプロイは、ＯＳのインストールと仮想マシン実行環境の構成を伴う。目的プログラムのデプロイがＯＳのインストールを伴うため、デプロイを実行するサーバ装置１００は、サーバ装置１００自らに目的プログラムをデプロイすることはできない。また、目的プログラムのデプロイが仮想マシン実行環境の構成を伴うことで、デプロイされた後のサーバ装置１００は、仮想マシンのマイグレーション（移動）を受けることができる。
【００２２】
１つ以上の対象サーバ装置１０２に目的プログラムをデプロイした後、起点サーバ装置１０１は、目的プログラムをデプロイ済みの対象サーバ装置１０２のいずれかにデプロイ仮想マシンをライブマイグレーションする（シーケンスＳ１０３）。図２の例では、起点サーバ装置１０１は、デプロイ仮想マシンを対象サーバ装置１０２−２にライブマイグレーションしている。
但し、サーバ装置１００間でデプロイ仮想マシンを移動させる方法は、ライブマイグレーションに限らない。例えば、デプロイ仮想マシンを実行するサーバ装置１００が、デプロイ仮想マシンを一旦停止させた後、停止した状態のデプロイ仮想マシンを他のサーバ装置１００に移動させるようにしてもよい。
【００２３】
起点サーバ装置１０１からデプロイ仮想マシンを引き継いだ対象サーバ装置１０２（図２の例では対象サーバ装置１０２−２）は、起点サーバ装置１０１に対して目的プログラムをデプロイする（シーケンスＳ１０４）。また、起点サーバ装置１０１からデプロイ仮想マシンを引き継いだ対象サーバ装置１０２は、残りの対象サーバ装置１０２（また目的プログラムをデプロイされていない対象サーバ装置１０２）の全てに目的プログラムをデプロイする（シーケンスＳ１０５〜Ｓ１０６）。図２の例では、対象サーバ装置１０２−２は、対象サーバ装置１０２−３〜１０２−ｎの各々に目的プログラムをデプロイしている。
【００２４】
このように、デプロイ仮想マシンの移動が１回行われ、起点サーバ装置１０１からデプロイ仮想マシンを引き継いだ対象サーバ装置１０２が、残りのサーバ装置１００（デプロイされていないサーバ装置１００）全てに対してデプロイを実行するようにしてもよい。この場合、デプロイ仮想マシンの移動先のサーバ装置１００（図２の例では対象サーバ装置１０２−２）が、直接の移動元のサーバ装置１００（図２の例では起点サーバ装置１０１）に対して目的プログラムをデプロイする。
【００２５】
図３は、コンピュータシステム１がサーバ装置１００の各々に目的プログラムをデプロイする処理手順の第二例を示す説明図である。
同図の処理で、まず、起点サーバ装置１０１が、デプロイ仮想マシンを実行して、１つ以上の対象サーバ装置１０２に目的プログラムをデプロイする（シーケンスＳ１１１）。図２の例では、対象サーバ装置１０２は１つの対象サーバ装置１０２（対象サーバ装置１０２−１）に目的プログラムをデプロイしている。
【００２６】
１つ以上の対象サーバ装置１０２に目的プログラムをデプロイした後、起点サーバ装置１０１は、目的プログラムをデプロイ済みの対象サーバ装置１０２のいずれかにデプロイ仮想マシンをライブマイグレーションする（シーケンスＳ１１２）。図３の例では、起点サーバ装置１０１は、デプロイ仮想マシンを対象サーバ装置１０２−１にライブマイグレーションしている。
起点サーバ装置１０１からデプロイ仮想マシンを引き継いだ対象サーバ装置１０２（図３の例では対象サーバ装置１０２−１）は、残りの対象サーバ装置１０２のうち１つ以上に対して目的プログラムをデプロイする（シーケンスＳ１１３）。図３の例では、対象サーバ装置１０２−１が、対象サーバ装置１０２−２に対して目的プログラムをデプロイしている。
【００２７】
次に、起点サーバ装置１０１からデプロイ仮想マシンを引き継いだ対象サーバ装置１０２は、目的プログラムをデプロイ済みの対象サーバ装置１０２のいずれかにデプロイ仮想マシンを移動させる（シーケンスＳ１１４）。図３の例では、対象サーバ装置１０２−１が、デプロイ仮想マシンを対象サーバ装置１０２−２にライブマイグレーションしている。
対象サーバ装置１０２からデプロイ仮想マシンを引き継いだ対象サーバ装置１０２は、起点サーバ装置１０１に対して目的プログラムをデプロイする（シーケンスＳ１１５）。また、対象サーバ装置１０２からデプロイ仮想マシンを引き継いだ対象サーバ装置１０２は、残りの対象サーバ装置１０２の全てに目的プログラムをデプロイする（シーケンスＳ１１６〜Ｓ１１７）。図３の例では、対象サーバ装置１０２−２は、対象サーバ装置１０２−３〜１０２−ｎの各々に目的プログラムをデプロイしている。
【００２８】
このように、デプロイ仮想マシンの移動が２回以上行われ、起点サーバ装置１０１からデプロイ仮想マシンを引き継いだ対象サーバ装置１０２が、さらに他の対象サーバ装置１０２にデプロイ仮想マシンを移動させるようにしてもよい。この場合、デプロイ仮想マシンの移動先のサーバ装置１００が、直接の移動元のサーバ装置１００に対して目的プログラムをデプロイするとは限らない。図３の例では、対象サーバ装置１０２−１ではなく対象サーバ装置１０２−２が、起点サーバ装置１０１に目的プログラムをデプロイしている。
【００２９】
なお、デプロイ仮想マシンを他のサーバ装置１００に移動させたサーバ装置１００が、再びデプロイ仮想マシンを引き継ぐようにしてもよい。例えば、起点サーバ装置１０１が、目的プログラムのデプロイを受けた後、デプロイ仮想サーバを再び実行して残りの対象サーバ装置１０２に対して目的プログラムをデプロイするようにしてもよい。
【００３０】
なお、複数のサーバ装置１００が並行して目的プログラムのデプロイを行うようにしてもよい。すなわち、コンピュータシステム１が２つ以上のデプロイ仮想マシンを用いて目的プログラムのデプロイを行うようにしてもよい。例えば、コンピュータシステム１が２つ以上の起点サーバ装置１０１を備えるようにしてもよい。あるいは、サーバ装置１００のいずれかがデプロイ仮想マシンをコピーするようにしてもよい。
一方、コンピュータシステム１が１つのデプロイ仮想マシンを用いて目的プログラムのデプロイを行う場合、２つ以上のデプロイ仮想マシンを用いる場合よりも、デプロイ済みのサーバ装置１００の把握が容易になる。
【００３１】
図４は、起点サーバ装置１０１が目的プログラムのデプロイを開始する段階での起点サーバ装置１０１の機能構成例を示す概略ブロック図である。同図に示すサーバ装置１００は、ＮＩＣ（Network Interface Card）１１０と、ＤＶＤ（Digital Versatile Disc）ドライブ１２０と、ディスク１３０と、第一オペレーティングシステム１４０と、ＶＭ管理部１５０と、デプロイ仮想マシン１６０と、サーバ負荷監視部１７０とを備える。ＤＶＤドライブ１２０は、デプロイイメージ記憶部１２１と、サーバイメージ記憶部１２２とを備える。ディスク１３０は、デプロイ情報記憶部１３１と、システム構成情報記憶部１３２とを備える。デプロイ仮想マシン１６０は、ＯＳデプロイ処理部１６１と、デプロイ情報管理部１６２と、システム構成デプロイ処理部１６３と、システム構成情報管理部１６４とを備える。
また、図１を参照して説明したように、コンピュータシステム１は、起点サーバ装置１０１と、対象サーバ装置１０２と、スイッチ３００とを備え、起点サーバ装置１０１及び対象サーバ装置１０２の各々は、スイッチ３００を介して通信接続されている。
【００３２】
ＮＩＣ１１０は、通信ネットワークを介して他の機器と通信を行うためのインタフェースとして動作する機器である。ＮＩＣ１１０は当該ＮＩＣ１１０を備えるサーバ装置１００（図４では起点サーバ装置１０１）の通信部として機能する。
ＤＶＤドライブ１２０は、ＤＶＤを挿入された状態で、ＤＶＤに対するデータの読み書きを行う装置である。特に、本実施形態では、ＤＶＤドライブ１２０は、デプロイ仮想マシンを構築し動作させるためのデータを記憶しているＤＶＤの挿入を受ける。このＤＶＤはデプロイイメージ記憶部１２１とサーバイメージ記憶部１２２とを含んでいる。
【００３３】
デプロイイメージ記憶部１２１は、デプロイ仮想マシンを実行可能な状態で起点サーバ装置１０１を起動させるためのデータであるデプロイイメージを予め記憶している記憶領域である。デプロイイメージには、第一オペレーティングシステム１４０のプログラム及び第一オペレーティングシステム１４０の上で動作するプログラムが含まれる。特に、デプロイイメージには、ＶＭ管理部１５０のプログラム、デプロイ仮想マシン１６０のプログラム、及び、サーバ負荷監視部１７０のプログラムが含まれる。
起点サーバ装置１０１が備えるＣＰＵ（Central Processing Unit、中央処理装置）が、デプロイイメージ記憶部１２１から第一オペレーティングシステム１４０のプログラムとＶＭ管理部１５０のプログラムとを読み出して実行することで、第一オペレーティングシステム１４０とＶＭ管理部１５０が構成される。これにより、仮想マシンの構築及び実行が可能になる。そして、ＶＭ管理部１５０は、デプロイ仮想マシン１６０のプログラムをデプロイイメージ記憶部１２１から読み出して実行することで、デプロイ仮想マシン１６０を構築する。また、起点サーバ装置１０１が備えるＣＰＵが、デプロイイメージ記憶部１２１からサーバ負荷監視部１７０のプログラムを読み出して実行することでサーバ負荷監視部１７０が構成される。以下、サーバ装置１００が備えるＣＰＵをサーバ装置１００のＣＰＵと称する。例えば、起点サーバ装置１０１が備えるＣＰＵを起点サーバ装置１０１のＣＰＵと称する。
【００３４】
なお、機能部がプログラムを読み出して実行するとは、具体的には当該機能部の機能を実行するハードウェアが、プログラムを読み出して実行することである。例えば、ＶＭ管理部１５０による、デプロイ仮想マシン１６０のプログラムの読み出し及び実行は、具体的には起点サーバ装置１０１のＣＰＵによって行われる。このＣＰＵは、ＶＭ管理部１５０の機能の１つとして、デプロイ仮想マシン１６０のプログラムをデプロイイメージ記憶部１２１から読み出して実行する。
上述した起点サーバ装置１０１の各部の構成が自動的に行われるようにしてもよい。例えば、ユーザがＤＶＤドライブ１２０にＤＶＤを挿入すると、起点サーバ装置１０１のＣＰＵが自動的にＤＶＤからプログラムを読み出して実行することで、上述したように各部を構成する。
【００３５】
サーバイメージ記憶部１２２は、デプロイ先のサーバ装置１００（デプロイされるサーバ装置１００）に送信されるデータであるサーバイメージを記憶する記憶領域である。図４の例では、サーバイメージ記憶部１２２はサーバイメージを予め記憶している。例えば、サーバイメージはディスクイメージであり、デプロイ先のサーバ装置１００は、受信したサーバイメージをそのままディスクにコピーして用いる。特に、このサーバイメージにはＯＳのプログラム及びＯＳを動作させるための情報が含まれている。このサーバイメージにより、デプロイ先のサーバ装置１００にＯＳがインストールされる。
【００３６】
但し、起点サーバ装置１０１がデプロイイメージ及びサーバイメージを取得する方法は、ＤＶＤドライブ１２０を用いる方法に限らない。例えば、起点サーバ装置１０１が、デプロイイメージ及びサーバイメージを記憶している外部接続用のハードディスクの接続を受け、このハードディスクからデプロイイメージ及びサーバイメージを取得するようにしてもよい。あるいは、起点サーバ装置１０１が、他の機器からデプロイイメージ及びサーバイメージを受信してハードディスク等の記憶デバイスに記憶するようにしてもよい。
起点サーバ装置１０１がＤＶＤドライブ１２０を用いる方法以外の方法でデプロイイメージ及びサーバイメージを取得する場合、起点サーバ装置１０１がＤＶＤドライブ１２０を備えていなくてもよい。
【００３７】
ディスク１３０はサーバ装置１００（図４では起点サーバ装置１０１）が備えるハードディスクであり、各種情報を記憶する。
デプロイ情報記憶部１３１は、デプロイ情報を記憶する。ここでいうデプロイ情報は、デプロイ仮想マシン１６０（ＯＳデプロイ処理部１６１）が他のサーバ装置１００にデプロイしたＯＳに関する情報を記憶する。デプロイ情報記憶部１３１は、例えば、デプロイ先のサーバ装置１００のＩＰ（Internet Protocol）アドレス及びＭＡＣ（Media Access Control）アドレスなど、デプロイ先のサーバ装置１００でＯＳが動作するために必要な情報を含むデプロイ情報を記憶する。
【００３８】
システム構成情報記憶部１３２は、システム構成情報を記憶する。ここでいうシステム構成情報は、デプロイ仮想マシン１６０（システム構成デプロイ処理部１６３）が他のサーバ装置１００にデプロイしたシステムプログラムに関する情報である。ここでいうシステムプログラムは、ＯＳよりも上位のプログラム（ＯＳ上で動作するプログラム）である。システムプログラムは、例えばＷｅｂサービスの提供など目的の機能をコンピュータシステム１に実行させるためのアプリケーションプログラムを含んでいる。
システム構成情報記憶部１３２は、例えば、デプロイ先のサーバ装置１００のシステムプログラムのコンフィグレーション（Configuration）を含むシステム構成情報を記憶する。
【００３９】
いずれかのサーバ装置１００がデプロイ情報及びシステム構成情報を記憶しておくことで、このサーバ装置１００は、コンピュータシステム１の構成を管理する管理サーバ装置として機能する。
なお、起点サーバ装置１０１がデプロイ情報及びシステム構成情報を記憶する態様は、ディスク１３０を用いる態様に限らない。例えば、起点サーバ装置１０１が大容量の半導体メモリデバイスを備え、この半導体メモリデバイスにてデプロイ情報及びシステム構成情報を記憶するようにしてもよい。
【００４０】
第一オペレーティングシステム１４０は、起点サーバ装置１０１の各部を管理し動作させる。特に第一オペレーティングシステム１４０は、各部にハードウェア資源及びソフトウェア資源を割り当てるスケジューリングを行う。
ＶＭ管理部１５０は、ＯＳ上の仮想マシン基盤（ハイパーバイザ）として機能する。特に、ＶＭ管理部１５０は、仮想マシンを構築して動作させ、また、仮想マシンの動作及び終了（消滅）を管理する。
また、ＶＭ管理部１５０は、デプロイ仮想マシン１６０が目的プログラムをデプロイしたサーバ装置１００のうちいずれかにデプロイ仮想マシン１６０をライブマイグレーションする。デプロイ仮想マシン１６０のライブマイグレーションはデプロイ仮想マシン１６０の移動の例に該当し、ＶＭ管理部１５０はマイグレーション部の例に該当する。
【００４１】
デプロイ仮想マシン１６０は、デプロイサーバとして機能する仮想マシンである。具体的には、デプロイ仮想マシン１６０は、他のサーバ装置１００（デプロイ先のサーバ装置１００）に目的プログラムをデプロイする。このデプロイにより、デプロイ仮想マシン１６０は、デプロイ先のサーバ装置１００が目的プログラムを実行可能な状態にする。目的プログラムは所定のプログラムの例に該当し、デプロイ仮想マシン１６０は仮想マシンの例に該当する。
ＯＳデプロイ処理部１６１は、他のサーバ装置１００にＯＳをデプロイする。
デプロイ情報管理部１６２は、ＯＳデプロイ処理部１６１が他のサーバ装置１００にデプロイしたＯＳに関してデプロイ情報をデプロイ情報記憶部１３１に記憶させて管理する。
【００４２】
システム構成デプロイ処理部１６３は、他のサーバ装置１００にシステムプログラムをデプロイする。
システム構成デプロイ処理部１６３が他のサーバ装置１００にデプロイするプログラムには、ＶＭ管理部１５０を実現するプログラムも含まれている。すなわち、システム構成デプロイ処理部１６３は、ＶＭ管理部１５０を他のサーバ装置１００にデプロイする。
また、システム構成デプロイ処理部１６３が他のサーバ装置１００にデプロイするプログラムには、サーバ負荷監視部１７０を実現するプログラムも含まれている。すなわち、システム構成デプロイ処理部１６３は、サーバ負荷監視部１７０を他のサーバ装置１００にデプロイする。
【００４３】
システム構成情報管理部１６４は、システム構成デプロイ処理部１６３が他のサーバ装置１００にデプロイしたシステムプログラムに関してシステム構成情報をシステム構成情報記憶部１３２に記憶させて管理する。
サーバ負荷監視部１７０は、サーバ負荷監視部１７０自らを含むサーバ装置１００の負荷を監視する。
【００４４】
図５は、起点サーバ装置１０１が対象サーバ装置１０２に目的ブログラムをデプロイした段階での起点サーバ装置１０１及び対象サーバ装置１０２の機能構成例を示す概略ブロック図である。図５における起点サーバ装置１０１の構成は、図４の場合と同様であり、各部に同一の符号（１０１、１１０、１２０〜１２２、１３０〜１３２、１４０、１５０、１６０〜１６４、１７０）を付して説明を省略する。また、図５における対象サーバ装置１０２は、ＮＩＣ１１０と、ディスク１３０と、第二オペレーティングシステム２４０と、ＶＭ管理部１５０と、システムプログラム機能部２８２とを備える。ディスク１３０は、サーバイメージ記憶部１２２と、システムプログラム情報記憶部２８１とを備える。システムプログラム機能部２８２は、サーバ負荷監視部１７０を備える。
【００４５】
対象サーバ装置１０２のＮＩＣ１１０は、起点サーバ装置１０１のＮＩＣ１１０と同様である。
対象サーバ装置１０２のディスク１３０は、起点サーバ装置１０１のディスク１３０と同様である。但し、図５で対象サーバ装置１０２のディスク１３０が記憶している情報は、起点サーバ装置１０１のディスク１３０が記憶している情報と異なる。対象サーバ装置１０２のディスク１３０は、サーバイメージ記憶部１２２にサーバイメージを記憶し、システム構成情報記憶部１３２にシステム構成情報を記憶している。
【００４６】
起点サーバ装置１０１のＯＳデプロイ処理部１６１が、サーバイメージ記憶部１２２からサーバイメージを読み出し、ＮＩＣ１１０を介して対象サーバ装置１０２に送信する。対象サーバ装置１０２のＣＰＵは、起点サーバ装置１０１から送信されたサーバイメージをディスク１３０に記憶させる。これにより、対象サーバ装置１０２のディスク１３０にサーバイメージ記憶部１２２が構成される。
また、起点サーバ装置１０１のシステム構成デプロイ処理部１６３が対象サーバ装置１０２にシステムプログラムをデプロイする際、対象サーバ装置１０２のＣＰＵが、デプロイされたシステムプログラムに関する情報をディスク１３０に記憶させる。これにより、対象サーバ装置１０２のディスク１３０にシステムプログラム情報記憶部２８１が構成される。以下、システムプログラム情報記憶部２８１が記憶する情報（デプロイされたシステムプログラムに関する情報）をシステムプログラム情報と称する。システムプログラム情報は、例えばデプロイされたシステムプログラムのコンフィグレーションを含む。
【００４７】
第二オペレーティングシステム２４０は、第一オペレーティングシステム１４０と同様、サーバ装置１００（図５の例では対象サーバ装置１０２）の各部を管理し動作させる。但し、第一オペレーティングシステム１４０が一時的に用いられるのに対して、第二オペレーティングシステム２４０は継続的に用いられる点で第一オペレーティングシステム１４０と異なる。具体的には、起点サーバ装置１０１は、ＤＶＤドライブ１２０のＤＶＤからデータを読み出して第一オペレーティングシステム１４０を構成しており、第一オペレーティングシステム１４０はこのＤＶＤが取り出される（Ejectされる）までの一時的なＯＳである。これに対し、サーバ装置１００（図５の例では対象サーバ装置１０２）は、ディスク１３０からデータを読み出して第二オペレーティングシステム２４０を構成する。このサーバ装置１００は、ＯＳの再インストール等の処理が行われるまで継続的に第二オペレーティングシステム２４０を用いる。ここで、上述したように、ディスク１３０がサーバイメージ記憶部１２２に記憶しているサーバイメージに第二オペレーティングシステム２４０に関する情報が含まれている。これにより、このサーバ装置１００は、ブート時に第二オペレーティングシステム２４０を構成して起動する。
【００４８】
対象サーバ装置１０２のＶＭ管理部１５０及びシステムプログラム機能部２８２は、いずれもデプロイによって構成される。対象サーバ装置１０２がＶＭ管理部１５０を備えることで、デプロイ仮想マシン１６０のマイグレーションを受けることができる。また、対象サーバ装置１０２がシステムプログラム機能部２８２を備えることで、上述したように対象サーバ装置１０２は所定の機能（例えばＷｅｂサービスの提供）を実行する。
【００４９】
図６は、起点サーバ装置１０１が対象サーバ装置１０２にデプロイ仮想マシン１６０をライブマイグレーションする前処理の段階での起点サーバ装置１０１及び対象サーバ装置１０２の機能構成例を示す概略ブロック図である。図６における起点サーバ装置１０１の構成は、図５の場合と同様であり、各部に同一の符号（１０１、１１０、１２０〜１２２、１３０〜１３２、１４０、１５０、１６０〜１６４、１７０）を付して説明を省略する。また、図６における対象サーバ装置１０２の各部のうち図５における対象サーバ装置１０２の各部に対応して同様の機能を有する部分には同一の符号（１１０、１２２、１３０、１５０、１７０、２４０、２８１、２８２）を付して説明を省略する。図６における対象サーバ装置１０２は、図５に示す対象サーバ装置１０２の各部に加えて、ディスク１３０が更に仮想マシンディスク２３０を備える。仮想マシンディスク２３０は、デプロイ情報記憶部１３１とシステム構成情報記憶部１３２とを備える。
【００５０】
仮想マシンディスク２３０は、起点サーバ装置１０１のディスク１３０からデプロイ仮想マシン１６０を実行するための情報をコピーした仮想的なディスクである。仮想マシンディスク２３０のデプロイ情報記憶部１３１、システム構成情報記憶部１３２は、それぞれ起点サーバ装置１０１のディスク１３０のデプロイ情報記憶部１３１、システム構成情報記憶部１３２のデータのコピーにて構成される。仮想マシンディスク２３０は、対象サーバ装置１０２がデプロイ仮想マシン１６０を実行する際のデータ参照先となる。
このように、対象サーバ装置１０２がデプロイ仮想マシン１６０を実行するためのデータ参照先を対象サーバ装置１０２内に設けておくことで、デプロイ仮想マシン１６０のライブマイグレーション完了後のデータ参照先の切替を円滑に行うことができる。
【００５１】
図７は、デプロイ仮想マシン１６０を実行するためのデータ参照先を対象サーバ装置１０２内に設ける処理手順の例を示すフローチャートである。
同図の処理にて、起点サーバ装置１０１のＶＭ管理部１５０及び対象サーバ装置１０２のＶＭ管理部１５０は、起点サーバ装置１０１のデプロイ情報記憶部１３１のデータ及びシステム構成情報記憶部１３２のデータを、対象サーバ装置１０２の仮想マシンディスク２３０のコピーする（ステップＳ２０１）。
【００５２】
具体的には、起点サーバ装置１０１のＶＭ管理部１５０が、起点サーバ装置１０１のデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２からデータを読み出し、起点サーバ装置１０１のＮＩＣ１１０を介して対象サーバ装置１０２へ送信する。対象サーバ装置１０２のＶＭ管理部１５０は、起点サーバ装置１０１からのデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２データを仮想マシンディスク２３０に記憶させる（書き込む）。ステップＳ２０１の処理により、仮想マシンディスク２３０にデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２が構成される。
このように、デプロイ仮想マシン１６０のライブマイグレーションに際し、ＶＭ管理部１５０は、デプロイ仮想マシン１６０の実行に用いるデータを、デプロイ仮想マシン１６０の移動元のサーバ装置１００からデプロイ仮想マシン１６０の移動先のサーバ装置１００へコピーする。ＶＭ管理部１５０はデータコピー部の例に該当する。
【００５３】
次に、対象サーバ装置１０２のＶＭ管理部１５０は、仮想マシンディスク２３０を起点サーバ装置１０１にエクスポート（Export）する（ステップＳ２０２）。
そして、起点サーバ装置１０１のＶＭ管理部１５０は、起点サーバ装置１０１が実行中のデプロイ仮想マシン１６０のデータ参照先を起点サーバ装置１０１のディスク１３０から対象サーバ装置１０２の仮想マシンディスク２３０に切り替える（ステップＳ２０３）。これにより、起点サーバ装置１０１が実行中のデプロイ仮想マシン１６０の動作に伴って、仮想マシンディスク２３０のデータが更新されるようになる。
このように、ＶＭ管理部１５０は、デプロイ仮想マシン１６０の実行に用いるデータの参照先を、デプロイ仮想マシン１６０の移動元のサーバ装置１００が記憶しているデータから、デプロイ仮想マシン１６０の移動先のサーバ装置１００にコピーしたデータに切り替える。ＶＭ管理部１５０は、参照先切替部の例に該当する。
ステップＳ２０３の後、図７の処理を終了する。
【００５４】
なお、起点サーバ装置１０１のデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２と対象サーバ装置１０２のデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２とのデータの整合性を取るために、起点サーバ装置１０１のＶＭ管理部１５０は、一時的にデプロイ仮想マシン１６０の動作を停止させる。
起点サーバ装置１０１のＶＭ管理部１５０が、ステップＳ２０１の処理開始時からステップＳ２０３の処理終了まで、デプロイ仮想マシン１６０の動作を停止させるようにしてもよい。
【００５５】
あるいは、ステップＳ２０１の処理開始後、起点サーバ装置１０１のＶＭ管理部１５０が、起点サーバ装置１０１のデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２で更新されたデータを示す差分情報を、ＮＩＣ１１０を介して対象サーバ装置１０２へ送信するようにしてもよい。この場合、対象サーバ装置１０２のＶＭ管理部１５０は、起点サーバ装置１０１からの差分情報を対象サーバ装置１０２のデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２に反映させる。
この差分情報の送信及び反映を繰り返して、起点サーバ装置１０１のデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２と対象サーバ装置１０２のデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２とのデータの差分が小さくなった後、起点サーバ装置１０１のＶＭ管理部１５０が、デプロイ仮想マシン１６０の動作を停止させる。デプロイ仮想マシン１６０の動作停止後、起点サーバ装置１０１のＶＭ管理部１５０及び対象サーバ装置１０２のＶＭ管理部１５０は、さらに差分情報の送信及び反映を行う。これにより、起点サーバ装置１０１のデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２のデータと対象サーバ装置１０２のデプロイ情報記憶部１３１及びシステム構成情報記憶部１３２のデータとが一致する。
そして、起点サーバ装置１０１のＶＭ管理部１５０は、ステップＳ２０３の処理終了後、デプロイ仮想マシン１６０の動作を再開させる。
これにより、デプロイ仮想マシン１６０の停止時間を比較的短くすることができる。
【００５６】
図８は、起点サーバ装置１０１が対象サーバ装置１０２にデプロイ仮想マシン１６０をライブマイグレーションした段階での起点サーバ装置１０１及び対象サーバ装置１０２の機能構成例を示す概略ブロック図である。図８における起点サーバ装置１０１の構成は、図６の場合と同様であり、各部に同一の符号（１０１、１１０、１２０〜１２２、１３０〜１３２、１４０、１５０、１６０〜１６４、１７０）を付して説明を省略する。また、図８における対象サーバ装置１０２の各部のうち図６における対象サーバ装置１０２の各部に対応して同様の機能を有する部分には同一の符号（１１０、１２２、１３０、１３１、１３２、１５０、１７０、２３０、２４０、２８１、２８２）を付して説明を省略する。図８における対象サーバ装置１０２は、図６に示す対象サーバ装置１０２の各部に加えてデプロイ仮想マシン１６０をさらに備えている。
【００５７】
対象サーバ装置１０２のデプロイ仮想マシン１６０は、起点サーバ装置１０１からのライブマイグレーションにて構成される。
なお、図８の状態の後、起点サーバ装置１０１はシャットダウンする。これにより、起点サーバ装置１０１のデプロイ仮想マシン１６０は終了（消滅）し、コンピュータシステム１にデプロイ仮想マシン１６０が１つのみ存在する状態となる。但し、上述したように、コンピュータシステム１が複数のデプロイ仮想マシン１６０を備えるようにしてもよい。
【００５８】
図９は、デプロイ仮想マシン１６０を起点サーバ装置１０１から対象サーバ装置１０２へ切り替える際の処理手順の例を示すフローチャートである。
図９の処理完了後、起点サーバ装置１０１のＶＭ管理部１５０及び対象サーバ装置１０２のＶＭ管理部１５０は、デプロイ仮想マシン１６０を起点サーバ装置１０１から対象サーバ装置１０２へ移動させる（ステップＳ２１１）。具体的には、起点サーバ装置１０１のＶＭ管理部１５０が、起点サーバ装置１０１のデプロイ仮想マシン１６０を停止させる。そして、対象サーバ装置１０２のＶＭ管理部１５０が、対象サーバ装置１０２のデプロイ仮想マシン１６０を動作させる。この時点では、デプロイ仮想マシン１６０を実行するためのデータの参照先は、対象サーバ装置１０２がエクスポートしている仮想マシンディスク２３０である。
【００５９】
次に、対象サーバ装置１０２のＶＭ管理部１５０は、デプロイ仮想マシン１６０を実行するためのデータの参照先を、対象サーバ装置１０２がエクスポートしている仮想マシンディスク２３０から、対象サーバ装置１０２ローカルの仮想マシンディスク２３０に切り替える（ステップＳ２１２）。
ステップＳ２１２の後、図９の処理を終了する。
【００６０】
図１０は、対象サーバ装置１０２が起点サーバ装置１０１に目的プログラムをデプロイした段階での起点サーバ装置１０１及び対象サーバ装置１０２の機能構成例を示す概略ブロック図である。図１０における対象サーバ装置１０２の構成は、図８の場合と同様であり、各部に同一の符号（１１０、１２２、１３０、１３１、１３２、１５０、１６０、１７０、２３０、２４０、２８１、２８２）を付して説明を省略する。なお、図１０では、デプロイ仮想マシン１６０が備えるＯＳデプロイ処理部１６１と、デプロイ情報管理部１６２と、システム構成デプロイ処理部１６３と、システム構成情報管理部１６４とが示されている。これは、図４の場合と同様に構成を詳細に示したものであり、図８の場合の対象サーバ装置１０２の構成との相違を示すものではない。
【００６１】
また、図１０における起点サーバ装置１０１は、ＮＩＣ１１０と、ＤＶＤドライブ１２０と、ディスク１３０と、第二オペレーティングシステム２４０と、ＶＭ管理部１５０と、システムプログラム機能部２８２とを備える。ディスク１３０は、サーバイメージ記憶部１２２と、システムプログラム情報記憶部２８１とを備える。システムプログラム機能部２８２は、サーバ負荷監視部１７０を備える。
図１０における起点サーバ装置１０１のＮＩＣ１１０及びＤＶＤドライブ１２０は、図４の場合と同様である。但し、ＤＶＤドライブ１２０は起点サーバ装置１０１のシャットダウンの際にＤＶＤを排出（Eject）しており、ＤＶＤドライブ１２０はＤＶＤを挿入されていない状態になっている。
【００６２】
図１０における起点サーバ装置１０１のディスク１３０と、サーバイメージ記憶部１２２と、システムプログラム情報記憶部２８１と、第二オペレーティングシステム２４０と、ＶＭ管理部１５０と、システムプログラム機能部２８２と、サーバ負荷監視部１７０とは図５の起点サーバ装置１０１における各部と同様である。
対象サーバ装置１０２のデプロイ仮想マシン１６０が起点サーバ装置１０１に対して目的プログラムをデプロイすることで、起点サーバ装置１０１は、図５の対象サーバ装置１０２が有する各機能を有している。これにより、起点サーバ装置１０１は、所定の機能（例えばＷｅｂサービスの提供）を実行する。
【００６３】
図１１は、対象サーバ装置１０２から他の対象サーバ装置１０２への目的プログラムをデプロイした段階での対象サーバ装置１０２の機能構成例を示す概略ブロック図である。図１１におけるデプロイ元の対象サーバ装置１０２の構成は、図１０の場合と同様であり、各部に同一の符号（１１０、１２２、１３０、１３１、１３２、１５０、１６０〜１６４、１７０、２３０、２４０、２８１、２８２）を付して説明を省略する。また、図１１におけるデプロイ先の対象サーバ装置１０２の構成は、図５の場合と同様であり、各部に同一の符号（１１０、１２２、１３０、１５０、１７０、２４０、２８１、２８２）を付して説明を省略する。
対象サーバ装置１０２のデプロイ仮想マシン１６０が他の対象サーバ装置１０２に対して目的プログラムをデプロイすることで、デプロイ先の対象サーバ装置１０２は、図５の対象サーバ装置１０２と同様の機能を有している。これにより、デプロイ先の対象サーバ装置１０２は、所定の機能（例えばＷｅｂサービスの提供）を実行する。
【００６４】
このように、起点サーバ装置１０１及びデプロイ仮想マシン１６０のマイグレーションを受けた対象サーバ装置１０２は、コンピュータシステム１が備える全てのサーバ装置１００に対して目的プログラムをデプロイする。これにより、コンピュータシステム１は、デプロイのサーバ装置１００を設ける必要無しに、必要なサーバ装置１００全てに目的プログラムをデプロイすることができる。
【００６５】
以上のように、デプロイ仮想マシン１６０は、他のサーバ装置１００のうち少なくとも１つに対して目的プログラムをデプロイする。また、ＶＭ管理部１５０は、他のサーバ装置１００のうちいずれかにデプロイ仮想マシン１６０を移動させる。また、デプロイ仮想マシン１６０は、元のサーバ装置１００から他のサーバ装置１００への移動の後、元のサーバ装置１００に対して目的プログラムのデプロイを少なくとも１回行う。
【００６６】
例えば、起点サーバ装置１０１のデプロイ仮想マシン１６０は、対象サーバ装置１０２のうち少なくとも１つに対して目的プログラムをデプロイする。また、起点サーバ装置１０１のＶＭ管理部１５０は、対象サーバ装置１０２のうちいずれかにデプロイ仮想マシン１６０を移動させる。また、デプロイ仮想マシン１６０は、起点サーバ装置１０１から対象サーバ装置１０２に移動した後、起点サーバ装置１０１に対して目的プログラムのデプロイを少なくとも１回行う。
【００６７】
これにより、コンピュータシステム１では、デプロイ専用のサーバ装置を設ける必要無しに、コンピュータシステム１が備える全てのサーバ装置１００に目的プログラムをデプロイすることができる。この点で、コンピュータシステム１によれば、複数のサーバ装置１００に対してデプロイを行う場合に、必要なサーバ装置１００の数を低減させることができる。
【００６８】
ここで、デプロイ仮想マシン１６０が、ＯＳを含む所定のプログラムをデプロイするようにしてもよい。すなわち、目的プログラムにＯＳのプログラムが含まれていてもよい。
このようにＯＳをデプロイする場合、デプロイ仮想マシン１６０を備えているサーバ装置１００が、このサーバ装置１００自らに目的プログラムをデプロイすることはできない。この場合でも、上記のようにサーバ装置１００が他のサーバ装置１００へデプロイ仮想マシン１６０を移転させることで、コンピュータシステム１が備える全てのサーバ装置１００に目的プログラムをデプロイすることができる。
具体的には、起点サーバ装置１０１に対しては、起点サーバ装置１０１が他のサーバ装置１０２へデプロイ仮想マシンを移転した後に、目的プログラムをデプロイすることができる。また、他のサーバ装置１００からデプロイ仮想マシン１６０の移転を受けるサーバ装置１００に対しては、このサーバ装置１００が他のサーバ装置１００からデプロイ仮想マシンの移転を受ける前に、又は、他のサーバ装置１００へデプロイ仮想マシンを移転した後に、目的プログラムをデプロイすることができる。
【００６９】
また、ＶＭ管理部１５０が、デプロイ仮想マシン１６０が目的プログラムをデプロイした対象サーバ装置１０２のうちいずれかにデプロイ仮想マシン１６０を移動させるようにしてもよい。
この場合、デプロイ仮想マシン１６０の移転を受けた対象サーバ装置１０２は、既に目的プログラムをデプロイ済みなので、デプロイ仮想マシン１６０の移転を受けた後に目的プログラムのデプロイを受ける必要がない。
従って、目的プログラムにＯＳが含まれる場合など、デプロイ仮想マシン１６０を備えるサーバ装置１００自らに対して目的プログラムをデプロイできない場合でも、デプロイ仮想マシン１６０をさらに他のサーバ装置１００へ移動させる必要がない。この点で、コンピュータシステム１が備える全てのサーバ装置１００に目的プログラムをデプロイする処理が比較的簡単になる。
【００７０】
また、起点サーバ装置１０１のＶＭ管理部１５０は、デプロイ仮想マシン１６０の実行に用いるデータを、デプロイ仮想マシン１６０の移動先の対象サーバ装置１０２にコピーする。そして、起点サーバ装置１０１のＶＭ管理部１５０は、デプロイ仮想マシン１６０の実行に用いるデータの参照先を、デプロイ仮想マシン１６０の移動先の対象サーバ装置１０２にコピーされたデータに切り替える。
このように、デプロイ仮想マシン１６０を実行するためのデータ参照先をデプロイ仮想マシン１６０の移動先の対象サーバ装置１０２内に設けておくことで、デプロイ仮想マシン１６０のライブマイグレーション完了後のデータ参照先の切替を円滑に行うことができる。
【００７１】
なお、デプロイ仮想マシン１６０を実行するサーバ装置１００の負荷が高い場合、このサーバ装置１００が他のサーバ装置１００にデプロイ仮想マシン１６０を移動させるようにしもよい。
図１２は、デプロイ仮想マシン１６０を実行するサーバ装置１００が負荷に応じて他のサーバ装置１００にデプロイ仮想マシン１６０を移動させている段階での、これらサーバ装置１００の機能構成例を示す概略ブロック図である。図１２におけるデプロイ元の対象サーバ装置１０２の構成は、図１１の場合と同様であり、各部に同一の符号（１１０、１２２、１３０、１３１、１３２、１５０、１６０〜１６４、１７０、２３０、２４０、２８１、２８２）を付して説明を省略する。
【００７２】
また、図１２におけるデプロイ先の対象サーバ装置１０２の構成は、同図におけるデプロイ元の対象サーバ装置１０２の構成と同様であり、各部に同一の符号（１１０、１３０、１５０、１６０、１７０、２３０、２４０、２８２）を付して説明を省略する。なお、図１２では、デプロイ先の対象サーバ装置１０２のディスク１３０、デプロイ仮想マシン１６０及び仮想マシンディスク２３０の構成の記載を省略している。これら各部の構成は、図１２におけるデプロイ元の対象サーバ装置１０２に示す構成と同様である。
【００７３】
デプロイ仮想マシン１６０を実行するサーバ装置１００のサーバ負荷監視部１７０は、当該サーバ装置１００の負荷を測定する。但し、サーバ負荷監視部１７０が測定するデータは、サーバ装置１００の負荷に限らず、サーバ装置１００の負荷の大きさに関連する情報であればよい。例えば、サーバ負荷監視部１７０が、サーバ装置１００が実行している仮想マシンの数を検出するようにしてもよい。サーバ負荷監視部１７０は、負荷関連情報取得部の例に該当する。
以下では、サーバ装置１００の負荷の大きさに関連する情報を負荷情報と称する。負荷情報は、数値で示される情報（従って、定量的な情報）であってもよいし、例えばＯＮ／ＯＦＦ情報など定性的な情報であってもよい。
また、デプロイ仮想マシン１６０を実行するサーバ装置１００のサーバ負荷監視部１７０は、負荷が所定の閾値以上であると判定すると、自らのサーバ装置１００（当該サーバ負荷監視部１７０を備えるサーバ装置１００）の負荷と、他のサーバ装置１００における負荷とを比較する。他のサーバ装置１００における負荷は、他のサーバ装置１００の各々が備えるサーバ負荷監視部１７０が測定し、デプロイ仮想マシン１６０を実行するサーバ装置１００へＮＩＣ１１０を介して送信する。
デプロイ仮想マシン１６０を実行するサーバ装置１００のサーバ負荷監視部１７０が、自らのサーバ装置１００の負荷よりも負荷が小さいサーバ装置１００を検出（選択）した場合、デプロイ仮想マシン１６０を実行するサーバ装置１００のＶＭ管理部１５０は、サーバ負荷監視部１７０が検出したサーバ装置１００へデプロイ仮想マシン１６０をマイグレーションする。サーバ負荷監視部１７０は、サーバ装置選択部の例に該当する。
【００７４】
以上のように、コンピュータシステム１が備えるサーバ装置１００の各々のサーバ負荷監視部１７０は、サーバ装置１００自らの負荷の大きさに関連する負荷情報を取得する。
そして、サーバ負荷監視部１７０は、当該サーバ負荷監視部１７０を備えるサーバ装置１００の負荷情報が、負荷が所定の条件以上に大きいことを示す場合、他のサーバ装置１００の負荷情報に基づいていずれかのサーバ装置１００を選択する。そして、デプロイ仮想マシン１６０を実行しているサーバ装置１００のＶＭ管理部１５０は、サーバ負荷監視部１７０が選択したサーバ装置１００にデプロイ仮想マシン１６０を移動させる。
このように、負荷が大きいサーバ装置１００から負荷が比較的小さいサーバ装置１００へデプロイ仮想マシン１６０を移動させることで、特定のサーバ装置１００への負荷の集中を緩和させることができる。この点で、過負荷のサーバ装置１００が発生する可能性を軽減させることができる。
【００７５】
なお、デプロイ仮想マシン１６０（特に、システム構成情報管理部１６４及びシステム構成デプロイ処理部１６３）が、目的プログラムのデプロイ時のみでなく、デプロイ完了後（コンピュータシステム１が所定の機能を実行する動作中）も、システムプログラム及びそのコンフィグレーションを管理するようにしてもよい。
例えば、ユーザがシステムプログラムのコンフィグレーションなどのシステム情報を作成してシステム構成情報記憶部１３２に記憶させた場合、システム構成情報管理部１６４は、作成されたシステム情報をシステム構成情報記憶部１３２から読み出す。そして、システム構成デプロイ処理部１６３は、システム構成情報管理部１６４が読み出したシステム情報は他のサーバ装置１００にデプロイする。
このように、デプロイ仮想マシン１６０がシステム情報を他のサーバ装置１００にデプロイすることで、システムプログラム及びそのコンフィグレーション等を管理することができる。
なお、この場合、コンピュータシステム１がデプロイ仮想マシン１６０を備えることが１つのみ備えることが好ましい。これにより、システムプログラム及びコンフィグレーション等のバージョン管理が比較的容易になる。
【００７６】
次に、図１３及び図１４を参照して、本発明の最小構成について説明する。
図１３は、本発明に係るサーバシステムの最小構成を示す概略ブロック図である。同図に示すサーバシステム２は、第一サーバ装置１１と、少なくとも１つの第二サーバ装置１４とを備える。第一サーバ装置１１は、仮想マシン１２と、マイグレーション部１３とを備える。
【００７７】
かかる構成にて、仮想マシン１２は、第二サーバ装置１４のうち少なくとも１つに対して当該第二サーバ装置が所定のプログラムを実行可能な状態にする実行可能化処理を行う。そして、マイグレーション部１３は、第二サーバ装置１４のうちいずれかに仮想マシン１２を移動させる。仮想マシン１２は、第一サーバ装置１１から第二サーバ装置１４に移動した後、第一サーバ装置１１に対して第一サーバ装置１１が所定のプログラムを実行可能な状態にする実行可能化処理を少なくとも１回行う。
【００７８】
これにより、サーバシステム２では、実行可能化処理専用のサーバ装置を設ける必要無しに、サーバシステム２が備える全てのサーバ装置に対して実行可能化処理を行うことができる。この点で、サーバシステム２によれば、複数のサーバ装置に対して実行可能化処理を行う場合に、必要なサーバ装置の数を低減させることができる。
【００７９】
図１４は、本発明に係るサーバ装置の最小構成を示す概略ブロック図である。同図に示すサーバ装置２１は、仮想マシン２２と、マイグレーション部２３とを備える。
かかる構成にて、仮想マシン２２は、他のサーバ装置のうち少なくとも１つに対して当該他のサーバ装置が所定のプログラムを実行可能な状態にする実行可能化処理を行う。そして、マイグレーション部２３は、他のサーバ装置のうちいずれかに仮想マシン２２を移動させる。仮想マシン２２は、元のサーバ装置から他のサーバ装置への移動の後、元のサーバ装置に対して当該元のサーバ装置が所定のプログラムを実行可能な状態にする実行可能化処理を少なくとも１回行う。
【００８０】
これにより、サーバ装置２１を含むシステムは、実行可能化処理専用のサーバ装置を設ける必要無しに、当該システムが備える全てのサーバ装置に対して実行可能化処理を行うことができる。この点で、サーバ装置２１によれば、複数のサーバ装置に対して実行可能化処理を行う場合に、必要なサーバ装置の数を低減させることができる。
【００８１】
なお、上述したＤＶＤのように、起点サーバ装置１０１の機能の全部または一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００８２】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００８３】
１、２  コンピュータシステム
１１  第一サーバ装置
１２、２２  仮想マシン
１３、２３  マイグレーション部
１４  第二サーバ装置
２１、１００  サーバ装置
１０１  起点サーバ装置
１１０  ＮＩＣ
１２０  ＤＶＤドライブ
１２１  デプロイイメージ記憶部
１２２  サーバイメージ記憶部
１３０  ディスク
１３１  デプロイ情報記憶部
１３２  システム構成情報記憶部
１４０  第一オペレーティングシステム
１５０  ＶＭ管理部
１６０  デプロイ仮想マシン
１６１  ＯＳデプロイ処理部
１６２  デプロイ情報管理部
１６３  システム構成デプロイ処理部
１６４  システム構成情報管理部
１７０  サーバ負荷監視部
１０２  対象サーバ装置
２３０  仮想マシンディスク
２４０  第二オペレーティングシステム
２８１  システムプログラム情報記憶部
２８２  システムプログラム機能部
３００  スイッチ
【図１】
0006372505.tif 000002
【図２】
0006372505.tif 000003
【図３】
0006372505.tif 000004
【図４】
0006372505.tif 000005
【図５】
0006372505.tif 000006
【図６】
0006372505.tif 000007
【図７】
0006372505.tif 000008
【図８】
0006372505.tif 000009
【図９】
0006372505.tif 000010
【図１０】
0006372505.tif 000011
【図１１】
0006372505.tif 000012
【図１２】
0006372505.tif 000013
【図１３】
0006372505.tif 000014
【図１４】
0006372505.tif 000015