(57)【特許請求の範囲】
【請求項１】
プログラムを実行する第１のシステムと、前記第１のシステムと同期して前記プログラムを実行することで業務を実行する第２のシステムと、を備えたフォールトトレラントシステムであって、
前記第１のシステムは、
前記第２のシステムとの同期を解除する第１の同期制御部と、
前記第２のシステムとの同期が解除された場合に、当該第１のシステムに前記プログラムを実行する仮想マシンを構築する第１の処理実行部と、を有し、
前記第２のシステムは、
前記第１のシステムとの同期が解除された場合に、前記第１のシステムと独立して前記プログラムを実行しての前記業務の実行を継続する第２の処理実行部を有し、
前記第１の処理実行部は、前記仮想マシンの構築後に、前記第１の処理実行部による仮想マシンの構築が成功したか失敗したかを示す構築結果情報を前記第２のシステムに出力し、
前記第２の処理実行部は、前記第１の処理実行部から出力された構築結果情報が失敗を示している場合には前記第１のシステムに前記業務の引き継ぎに必要なデータを送信せず前記業務の実行を継続し、前記第１の処理実行部から出力された構築結果情報が成功を示している場合には前記第１のシステムに前記業務の引き継ぎに必要なデータを送信し、
前記第１の処理実行部は、前記第２の処理実行部から前記業務の引き継ぎに必要なデータが送信された場合に、当該仮想マシンを動作させることによって、前記第２のシステムから引き継いで前記プログラムを実行しての前記業務の実行をする、
フォールトトレラントシステム。
【請求項２】
前記第２の処理実行部は、前記第１の処理実行部が前記プログラムを実行しての前記業務の実行を引き継いだ場合に、前記第２のシステムに前記プログラムを実行する仮想マシンを構築して動作させ、
前記第２のシステムは、前記第１のシステムと同期して前記プログラムの実行を開始する第２の同期制御部をさらに有する請求項１に記載のフォールトトレラントシステム。
【請求項３】
前記第１のシステムは、前記仮想マシンの構築によって、前記仮想マシンの動作に必要な情報が格納される第１の記憶部をさらに有し、
前記第２のシステムは、第２の記憶部をさらに有し、
前記第１の処理実行部は、前記仮想マシンの構築によって、前記仮想マシンの動作に必要な情報を前記第１の記憶部に格納して、当該第１の記憶部の内容を前記第２のシステムに出力し、
前記第２の処理実行部は、前記第１の処理実行部から出力された前記第１の記憶部の内容を前記第２の記憶部に格納することによって、前記仮想マシンを構築する請求項２に記載のフォールトトレラントシステム。
【請求項４】
前記第２の処理実行部は、前記第２のシステムの構成に基づいて、前記仮想マシンを構築するための仮想マシン構築情報を生成して、生成した仮想マシン構築情報を前記第１のシステムに出力し、
前記第１の処理実行部は、前記第２の処理実行部から出力された仮想マシン構築情報に基づいて、前記仮想マシンを構築する請求項１乃至３のいずれか１項に記載のフォールトトレラントシステム。
【請求項５】
前記第１のシステム及び前記第２のシステムは、前記プログラムの実行中に、同一のＩＰ(Internet Protocol)アドレスが割り当てられており、当該ＩＰアドレスによって外部との通信を行い、
前記第１の処理実行部は、前記仮想マシンを構築する場合に、前記第１のシステムに前記ＩＰアドレスと異なるＩＰアドレスを設定し、当該ＩＰアドレスによる前記第２のシステムとの通信によって、前記第２の処理実行部から仮想マシン構築情報の出力を受ける請求項４に記載のフォールトトレラントシステム。
【請求項６】
前記第１の処理実行部及び前記第２の処理実行部は、ＣＰＵ(Central Processing Unit)サブシステムを含む請求項１乃至５のいずれか１項に記載のフォールトトレラントシステム。
【請求項７】
プログラムを実行する第１のシステムと、前記第１のシステムと同期して前記プログラムを実行することで業務を実行する第２のシステムと、を備えたフォールトトレラントシステムにおける仮想マシン構築方法であって、
前記第１のシステムと前記第２のシステムとの前記プログラムの実行の同期を解除するステップと、
前記第１のシステムに前記プログラムを実行する仮想マシンを構築するステップと、
前記第２のシステムにおいて前記第１のシステムと独立して前記プログラムを実行しての前記業務の実行を継続するステップと、
前記第１のシステムでの仮想マシンの構築後に、前記仮想マシンの構築が成功したか失敗したかを示す構築結果情報を前記第１のシステムから前記第２のシステムに出力するステップと、
前記出力された構築結果情報が失敗を示している場合には前記第２のシステムから前記第１のシステムに前記業務の引き継ぎに必要なデータを送信せず前記第１のシステムにおいて前記業務の実行を継続し、前記出力された構築結果情報が成功を示している場合には前記第２のシステムから前記第１のシステムに前記業務の引き継ぎに必要なデータを送信するステップと、
前記第２のシステムから前記第１のシステムに前記業務の引き継ぎに必要なデータが送信された場合に、当該仮想マシンを動作させることによって、前記第１のシステムにおいて前記第２のシステムから引き継いで前記プログラムを実行しての前記業務の実行をするステップと、
を備えた仮想マシン構築方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フォールトトレラントシステム及び仮想マシン構築方法に関する。
【背景技術】
【０００２】
近年、コンピュータは社会生活の基盤を担っており、故障によるサービスの停止は大きな損失を招く恐れがある。そのため、障害発生時においてもサービスを継続させることが要求されている。そこで、システムを二重化するフォールトトレラント技術が注目されている。
【０００３】
フォールトトレラント技術を採用したコンピュータとして、フォールトトレラントサーバが知られている。以下、フォールトトレラントサーバを「ＦＴ(Fault Tolerant)サーバ」とする。ＦＴサーバは、システムを構成するハードウェアコンポーネントが二重化されており、２つのＣＰＵ(Central Processing Unit)サブシステムが同一クロックで同期動作するように制御されている。そして、一方のシステムに障害が発生した場合、障害が発生したシステムは論理的に切り離され、正常に動作しているシステムが処理を続行することにより、耐障害性を向上させている。
【０００４】
一方、サーバ統合やＩＴ(Information Technology)資産を有効に活用する手段という観点においては、仮想化技術が注目を集めており、仮想化環境を実現するソフトウェアが発表され多くのサービスが提供されている。一般に、現在稼動中の物理マシンの環境を仮想化環境へ移行するには、特許文献１に開示されているように、仮想化環境構築用のサーバを別途１台用意して仮想マシンを作成し、仮想化ソフトウェアのコンバータ機能を使用して、物理マシンから仮想マシンへの移行を行う。このように、物理マシンから仮想マシンへの移行を行うことを、「Ｐ２Ｖ(Physical to Virtual)」という。
【０００５】
しかし、仮想化環境では複数のＯＳ(Operating System)が搭載されることになるため、ハードウェア障害で機能が停止した場合、搭載される全てのＯＳが停止することになり、影響範囲が大きくなる。そのため、移行先のサーバはＦＴサーバのような耐障害性の高いものを準備することが望まれる。しかし、この種の機能を備えたサーバは通常サーバよりも高価であるため、別途１台用意してＰ２Ｖを行うと非常にコストがかかってしまうという問題がある。
【０００６】
それに対して、現在使用している物理マシンを仮想化環境用のサーバとして利用することで、新たに移行先のサーバを準備することなく仮想マシンを作成することもできる。しかし、これには、バックアップを作成し、システムを停止させ、仮想化ソフトウェアをインストール後に、仮想マシンを作成し、バックアップした情報を用いてリストアするといった作業が必要となる。そのため、サーバにおける業務を停止する時間が長くなってしまうという問題がある。これらの問題を解決するためには、仮想化環境の耐障害性を確保し、移行にかかる費用をなるべく抑え、移行中の業務停止時間を最小限にする技術が求められる。
【０００７】
なお、特許文献２には、オペレータによって分離又は結合の指示が与えられると、その指示に応じて、第１及び第２のプロセッサ装置を分離してマルチコンピュータシステムを形成し、あるいは結合してフォールトレラントコンピュータシステムを形成する二重化コンピュータシステムが開示されている。これによって、故障発生時等に、分離後にマルチコンピュータシステムとして動作させて、ソフトウェアの入れ替えを、システムを停止させることなく行えるようにしている。しかし、特許文献２は、仮想マシンを構築する場合における技術を開示したものではない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００９−５３６７６２号公報
【特許文献２】特開平１０−２９３６９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
背景技術として説明したように、仮想マシンを構築するためのサーバを別途用意すると非常にコストがかかってしまうという問題がある。また、現在使用しているサーバで、仮想マシンを構築しようとすると、サーバにおける業務を停止する時間が長くなってしまうという問題がある。
【００１０】
本発明の目的は、上述したような課題を解決するために、物理マシンから仮想マシンへの移行において、コストを低減することができ、かつ、業務停止時間を低減することができるフォールトトレラントシステム及び仮想マシン構築方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の態様にかかるフォールトトレラントシステムは、プログラムを実行する第１のシステムと、前記第１のシステムと同期して前記プログラムを実行する第２のシステムと、を備えたフォールトトレラントシステムであって、前記第１のシステムは、前記第２のシステムとの同期を解除する第１の同期制御部と、前記第２のシステムとの同期が解除された場合に、当該第１のシステムに前記プログラムを実行する仮想マシンを構築する第１の処理実行部と、を有し、前記第２のシステムは、前記第１のシステムとの同期が解除された場合に、前記第１のシステムと独立して前記プログラムの実行を継続する第２の処理実行部を有するものである。
【００１２】
本発明の第２の態様にかかる仮想マシン構築方法は、プログラムを実行する第１のシステムと、前記第１のシステムと同期して前記プログラムを実行する第２のシステムと、を備えたフォールトトレラントシステムにおける仮想マシン構築方法であって、前記第１のシステムと前記第２のシステムとの前記プログラムの実行の同期を解除するステップと、  前記第１のシステムに前記プログラムを実行する仮想マシンを構築するステップと、前記第２のシステムにおいて前記第１のシステムと独立して前記プログラムの実行を継続するステップと、を備えたものである。
【発明の効果】
【００１３】
上述した本発明の各態様により、物理マシンから仮想マシンへの移行において、コストを低減することができ、かつ、業務停止時間を低減することができるフォールトトレラントシステム及び仮想マシン構築方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態にかかるフォールトトレラントシステムの構成図である。
【図２】本発明の実施の形態にかかるフォールトトレラントサーバの構成図である。
【図３】本発明の実施の形態にかかる仮想マシン構築後のフォールトトレラントサーバの構成図である。
【図４】本発明の実施の形態にかかるフォールトトレラントサーバの処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
図１を参照して、本発明の実施の形態にかかるＦＴサーバの概要となるフォールトトレラントシステムについて説明する。図１は、本発明の実施の形態にかかるフォールトトレラントシステムの概要を示す構成図である。
【００１６】
フォールトトレラントシステム２は、第１のシステム２０及び第２のシステム２１を有する。
第１のシステム２０は、第１の処理実行部３０及び第１の同期制御部３２を有する。
第２のシステム２１は、第２の処理実行部３１を有する。
第１の処理実行部３０は、第２のシステム２１と同期してプログラム４０を実行する。
第２の処理実行部３１は、第１のシステム２０と同期してプログラム４１を実行する。
第１の同期制御部３２は、第１のシステム２０と第２のシステム２１との同期を制御する。
【００１７】
続いて、本発明の実施の形態にかかるフォールトトレラントシステムの処理について説明する。
第１の同期制御部３２は、第２のシステム２１との同期を解除する。
第１の処理実行部３０は、第２のシステム２１との同期が解除された場合、第１のシステム２０にプログラム４０を実行する仮想マシンを構築する。
第２の処理実行部３１は、第１のシステム２０との同期が解除された場合、第１のシステム２０と独立してプログラム４１の実行を継続する。
【００１８】
続いて、図２を参照して、本発明の実施の形態にかかるＦＴサーバの構成について説明する。図２は、本発明の実施の形態にかかるＦＴサーバの構成図である。
【００１９】
ＦＴサーバ１は、＃０側のシステム１０と、＃１側のシステム１１とを備える。
＃０側のシステム１０は、ＣＰＵサブシステム１００、ＦＴ(Fault Tolerant)コントローラ１１０及びＩＯ(Input/Output)サブシステム１２０を有する。ＩＯサブシステム１２０は、ＨＤＤ(hard disk drive)１３０を含む。
＃１側のシステム１１は、ＣＰＵサブシステム１０１、ＦＴコントローラ１１１及びＩＯサブシステム１２１を有する。ＩＯサブシステム１２１は、ＨＤＤ１３１を含む。
【００２０】
ＣＰＵサブシステム１００は、ＯＳ２００及びＡＰ(Application Program)２１０を含むプログラムを実行する。ＣＰＵサブシステム１００は、それぞれ１つ又は複数のＣＰＵを含む。ＣＰＵサブシステム１００は、第２の処理実行部３１として機能する。ＯＳ２００及びＡＰ２１０は、プログラム４１に相当する。
ＣＰＵサブシステム１０１は、ＯＳ２０１及びＡＰ２１１を含むプログラムを実行する。ＣＰＵサブシステム１０１は、それぞれ１つ又は複数のＣＰＵを含む。ＣＰＵサブシステム１０１は、第１の処理実行部３０として機能する。ＯＳ２０１及びＡＰ２１１は、プログラム４０に相当する。
【００２１】
ＦＴコントローラ１１０及びＦＴコントローラ１１１は、ＣＰＵサブシステム１００とＣＰＵサブシステム１０１が同一のクロックで同期して動作するように制御する。つまり、ＣＰＵサブシステム１００とＣＰＵサブシステム１０１は、相互にロックステップ同期して動作する。ＦＴコントローラ１１０、１１１は、他方のＦＴコントローラに同期命令又は同期解除命令を出力することによって、同期開始又は同期解除を行う。ＦＴコントローラ１１１は、第１の同期制御部３２に相当する。ＦＴコントローラ１１０は、第２の同期制御部に相当する。
【００２２】
ＩＯサブシステム１２０は、ＣＰＵサブシステム１００と、ＨＤＤ１３０との間のデータの入出力を制御する。また、ＩＯサブシステム１２０は、＃０側のシステム１０と、インターネット、イントラネット又は電話回線網等の通信網９とを介した外部装置との間でデータの送受信を行う。ここで、外部装置とは、例えば、ＰＣ(Personal Computer)やサーバ等の情報処理装置である。
ＩＯサブシステム１２１は、＃１側のシステム１１と、ＨＤＤ１３１との間のデータの入出力を制御する。また、ＩＯサブシステム１２１は、＃１側のシステム１１と、外部の通信網９を介した外部装置との間でデータの送受信を行う。
【００２３】
ここで、ＦＴサーバ１では、＃０側のシステム１０と＃１側のシステム１１には、同一の通常運用用ＩＰ(Internet Protocol)アドレスが設定されている。＃０側のシステム１０と＃１側のシステム１１は、同期して同一の処理を実行しているため、いずれかのシステムが通信網９を介した通信を行っている。
【００２４】
ＨＤＤ１３０、１３１は、ＣＰＵサブシステム１００、１０１のそれぞれが実行するＦＴ(Fault Tolerant)制御ソフトウェア(図示せず)によって二重化制御される。ＦＴ制御ソフトウェアは、ＨＤＤ１３０とＨＤＤ１３１の内容をミラーリングして一致させるプログラムである。
【００２５】
ＦＴ制御ソフトウェアは、例えば、ＣＰＵサブシステム１００とＣＰＵサブシステム１０１が同期して動作を開始する場合に、不一致となっているＨＤＤ１３０とＨＤＤ１３１の内容を一致させる。その後は、ＣＰＵサブシステム１００、１０１が同期してＨＤＤ１３０とＨＤＤ１３１を更新することになるため、ＨＤＤ１３０とＨＤＤ１３１の内容の一致が保障される。なお、ＦＴ制御ソフトウェアは、ＩＯサブシステム１２０とＩＯサブシステム１２１間のデータ転送用のバス(図示せず)を介して、データを送受信することで、ＨＤＤ１３０とＨＤＤ１３１の内容を一致させる。
【００２６】
本実施の形態では、＃０側のシステムである物理マシンを変換した仮想マシンを、＃０側のシステムに構築する。また、＃１側のシステムである物理マシンを変換した仮想マシンを、＃１側のシステムに構築する。
【００２７】
続いて、図３を参照して、本発明の実施の形態にかかる仮想マシン構築後のＦＴサーバの構成について説明する。図３は、本発明の実施の形態にかかる仮想マシン構築後のＦＴサーバの構成図である。
【００２８】
本実施の形態では、１台のＦＴサーバ１をそのまま仮想マシンに移行するため、仮想マシン構築後のＦＴサーバ１のハードウェア１００、１０１、１１０、１１１、１２０、１２１、１３０、１３１の構成は、図２に示す仮想マシン構築前のＦＴサーバ１と同様である。仮想マシン構築後のＦＴサーバ１は、仮想化ソフトウェア３００、３０１を実行して、仮想マシン３１０、３１１を動作させる点が、仮想マシン構築前のＦＴサーバ１と異なる。以下、仮想マシン構築前のＦＴサーバ１と異なる点について述べる。
【００２９】
ＣＰＵサブシステム１００は、仮想化ソフトウェア３００を実行する。ＣＰＵサブシステム１００は、仮想化ソフトウェア３００を実行することによって、仮想マシン３１０を動作させる。仮想マシン３１０は、ＯＳ２００及びＡＰ２１０を含むプログラムを実行する。つまり、ＣＰＵサブシステム１００は、仮想化ソフトウェア３００を利用することによって、ＯＳ２００及びＡＰ２１０を実行する。仮想ＨＤＤ(hard disk drive)３２０は、ＨＤＤ１３０を仮想化したものになる。
【００３０】
ＣＰＵサブシステム１０１は、仮想化ソフトウェア３０１を実行する。ＣＰＵサブシステム１０１は、仮想化ソフトウェア３０１を実行することによって、仮想マシン３１１を動作させる。仮想マシン３１１は、ＯＳ２０１及びＡＰ２１１を含むプログラムを実行する。つまり、ＣＰＵサブシステム１０１は、仮想化ソフトウェア３０１を利用することによって、ＯＳ２０１及びＡＰ２１１を実行する。仮想ＨＤＤ(hard disk drive)３２０は、ＨＤＤ１３０を仮想化したものになる。
【００３１】
続いて、図４を参照して、本発明の実施の形態にかかるＦＴサーバの処理について説明する。図４は、本発明の実施の形態にかかるＦＴサーバの処理を示すフローチャートである。以下、１台のＦＴサーバ１で、物理マシンから仮想マシンに移行する処理について説明する。より具体的には、＃０側のシステム１０で業務を継続し、＃１側のシステム１１で仮想化環境を作成して、＃０側のシステム１０から＃１側のシステム１１の環境に移行(Ｐ２Ｖ)する場合について説明する。
【００３２】
まず、通常運用時には、＃０側のシステム１０と＃１側のシステム１１は、同期して動作している(Ｓ４００、Ｓ５００)。つまり、ＣＰＵサブシステム１００とＣＰＵサブシステム１０１は、ＦＴコントローラ１１０、１１１によって、同期してＯＳ２００、２０１及びＡＰ２１０、２１１を実行している。
【００３３】
＃１側のシステムを仮想マシンに移行する場合、ＣＰＵサブシステム１０１は、仮想マシンへの移行の開始をＦＴコントローラ１１１に通知する。例えば、ＣＰＵサブシステム１０１が、仮想マシンへの移行を制御するＡＰを実行するようにして、ＦＴサーバ１の利用者が、このＡＰにマウスやキーボード等の入力装置(図示せず)を介して、仮想マシンに移行する旨を入力したことをトリガとして通知するようにする。
【００３４】
ＦＴコントローラ１１１は、ＣＰＵサブシステム１０１から、仮想マシンへの移行の開始の通知を受けると、仮想マシンへの移行の開始を通知するソフト更新通知をＦＴコントローラ１１０に送信する(Ｓ５０１)。
ＦＴコントローラ１１０は、ＦＴコントローラ１１１からのソフト更新通知を受信すると(Ｓ４０１)、ＣＰＵサブシステム１００がＣＰＵサブシステム１０１と正常に同期しているか否かを判定する。
【００３５】
正常に同期している場合、ＦＴコントローラ１１０は、同期解除命令をＦＴコントローラ１１１に送信する(Ｓ４０２)。
正常に同期できていない場合、ＣＰＵサブシステム１００及びＣＰＵサブシステム１０１のいずれかが正常に動作していない可能性がある。このまま＃１側のシステムの仮想マシンへの移行を開始すると、＃０側のシステム１０で正常に業務を継続できない、又は、＃１側のシステム１１で仮想マシンへの移行が正常に行えないといった可能性がある。そのため、この場合、ＦＴコントローラ１１０は、同期解除命令をＦＴコントローラ１１１に送信しない。
【００３６】
ＦＴコントローラ１１１は、ＦＴコントローラ１１０からの同期解除命令を受信すると、ＣＰＵサブシステム１０１のＣＰＵサブシステム１００との同期を解除する(Ｓ５０２)。これにより、＃０側のシステム１０と＃１側のシステム１１は切り離され、それぞれが独立した動作を行うことができる。
【００３７】
＃１側のシステム１１は、仮想化環境を構築するためにシステムを停止する(Ｓ５０３)。つまり、ＣＰＵサブシステム１０１は、ＯＳ２０１及びＡＰ２１１の実行を停止する。
そして、ＣＰＵサブシステム１０１は、仮想化ソフトウェア３０１のインストールを行う(Ｓ５０４)。ここでの仮想化ソフトウェア３０１のインストールは、通信網９を介して仮想化ソフトウェア３０１のデータを受信することでインストールを行う。また、この際に、＃１側のシステムは、仮想化環境構築用のＩＰアドレスを一時的に設定して、このＩＰアドレスによって通信することで、仮想化ソフトウェア３０１のデータを受信する。仮想化ソフトウェア３０１は、インストールによって、ＨＤＤ１３１に格納される。
【００３８】
＃０側のシステム１０は、＃１側のシステムが仮想化環境を構築している間、業務を継続している(Ｓ４０３)。つまり、＃０側のシステムは、＃１側のシステム１１が仮想化環境を構築している間も、ＯＳ２００及びＡＰ２１０を実行する。
＃０側のシステム１０は、＃１側のシステム１１へ物理マシンから仮想マシンへの環境移行作業(Ｐ２Ｖ)を行う(Ｓ４０４、Ｓ５０５)。この移行作業は、予め＃０側のシステム１０のＨＤＤ１３０にインストールされているコンバータソフト(図示せず)によって行われる。
【００３９】
より具体的は、ＣＰＵサブシステム１００は、コンバータソフトを実行して、＃０側システム１０の構成に基づいて、仮想マシン３１１のイメージデータを作成する。ここで、ＦＴサーバ１では、＃０側のシステム１０と＃１側のシステム１１が同じハードウェア構成となっている。そのため、＃０側のシステム１０のハードウェア構成に基づいて、＃１側のシステム１１用の仮想マシン３１１のイメージデータを作成しても、＃１側のシステム１１のハードウェア構成に基づいて作成したものと同じの仮想マシン３１１のイメージデータを作成することができる。
【００４０】
ＣＰＵサブシステム１００は、仮想マシン３１１のイメージデータを作成すると、作成した仮想マシン３１１のイメージデータを、通信網９を介して、＃１側のシステム１１に送信する。ＣＰＵサブシステム１０１は、＃０側のシステム１０から仮想マシン３１１のイメージデータを受信すると、受信したイメージデータをＨＤＤ１３１に格納する。
【００４１】
また、ＣＰＵサブシステム１００は、ＨＤＤ１３０に格納されているＯＳ２００及びＡＰ２１０を、通信網９を介して、＃１側のシステム１１に送信する。ここで、ＦＴサーバ１では、ＯＳ２００とＯＳ２０１、ＡＰ２１０とＡＰ２１１は、同じプログラムとなる。そのため、ＣＰＵサブシステム１０１は、＃０側のシステム１０からＯＳ２００及びＡＰ２１０を受信すると、受信したＯＳ２００をＯＳ２０１として、受信したＡＰ２１０をＡＰ２１１として、仮想ＨＤＤ３２１に格納する。これによって、ＣＰＵサブシステム１０１は、ＯＳ２０１及びＡＰ２１１をインストールする。このインストールによって、ＯＳ２０１が仮想マシン３１１で起動するために必要なドライバのインストール等のシステムの再構成が行われる。このように、ステップＳ４０４、Ｓ５０５の処理によって、仮想マシン３２１の動作に必要な情報が、ＨＤＤ１３１に格納されることになる。
【００４２】
なお、＃１側のシステム１１は、仮想化環境構築用のＩＰアドレスによる通信によって、仮想マシン３１１のイメージデータ、ＯＳ２００及びＡＰ２１０を受信する。また、仮想ＨＤＤ３２１の実体は、ＨＤＤ１３１に格納されていることになる。仮想化環境の構築が完了すると、＃１側のシステム１１は、図３に示す状態となる。
【００４３】
ＣＰＵサブシステム１０１は、移行作業が成功したか否かを確認する(Ｓ５０６)。そして、ＣＰＵサブシステム１０１は、移行作業の実行結果を、通信網９を介して、＃０側のシステム１０に送信する。つまり、仮想化ソフトウェア３０１、ＯＳ２０１又はＡＰ２１１のインストールに失敗した場合等のように移行作業に失敗した場合、移行作業の実行結果は、失敗を示す失敗通知として、＃０側のシステム１０に送信される(Ｓ５０７)。
【００４４】
ＣＰＵサブシステム１００は、移行作業の実行結果を受信すると、受信した移行作業の実行結果が成功を示しているか、失敗を示しているかを判定する(Ｓ４０５)。
移行作業の実行結果が成功を示している場合(Ｓ４０５：Ｎｏ)、ＣＰＵサブシステム１００は、ＡＰ２１０の実行を停止して、業務の実行を停止する。そして、ＣＰＵサブシステム１００は、通信網９を介して、業務の引き継ぎに必要なデータを＃１側のシステム１１に送信する。ＣＰＵサブシステム１０１は、＃０側のシステム１０から受信したデータを、仮想ＨＤＤ３２１に格納する。これによって、＃１側のシステム１１は、＃０側のシステム１０が実行していた業務を引き継いで実行可能となる。
【００４５】
一方、移行作業の実行結果が失敗を示している場合(Ｓ４０５：Ｙｅｓ)、ＣＰＵサブシステム１００は、ＡＰ２１０の実行を継続する。つまり、＃０側のシステム１０は、業務の実行を継続する。この場合、再度、物理マシンから仮想マシンへの環境移行作業(P2V)を実行してもよい(Ｓ４０４、Ｓ５０５)。または、ＣＰＵサブシステム１００において、ＦＴ制御ソフトウェアを実行して、ＨＤＤ１３０の内容をＨＤＤ１３１にコピーすることによって、＃１側のシステムを仮想環境構築開始前の状態に戻してもよい。
【００４６】
＃１側のシステム１１は、業務引き継ぎ完了後、業務を継続して実行する(Ｓ５０９)。具体的には、ＣＰＵサブシステム１１は、仮想化ソフトウェア３０１の実行を開始する。これによって、仮想マシン３１１が動作する。ＣＰＵサブシステム１１は、仮想マシン３１１によって、ＯＳ２０１及びＡＰ２１１を実行することによって、業務を実行する。このとき、＃１側のシステム１１は、ＩＰアドレスは、通常運用用ＩＰアドレスを設定して、通信網９を介した通信を行う。
【００４７】
一方、＃０側のシステムは、仮想化環境を構築するためにシステムを停止する(Ｓ４０７)。つまり、ＣＰＵサブシステム１００は、ＯＳ２００の実行を停止する。
そして、ＣＰＵサブシステム１０１は、ＦＴ制御ソフトウェアを実行して、ＨＤＤ１３１の内容をＨＤＤ１３０にコピーする。
【００４８】
ここで、ＦＴサーバ１では、＃０側のシステム１０と＃１側のシステム１１が同じハードウェア構成となっており、ＯＳ２００とＯＳ２０１、ＡＰ２１０とＡＰ２１１は、同じプログラムとなる。そのため、＃０側のシステム１０のハードウェア構成、ＯＳ２００及びＡＰ２１０に基づいて、＃０側のシステム１０に仮想化環境を構築した場合と、ＨＤＤ１３１の内容をＨＤＤ１３０にコピーして仮想化環境を構築した場合は同じとなる。したがって、ＨＤＤ１３１に格納される仮想化ソフトウェア３０１、仮想マシン３１１のイメージデータ、ＯＳ２０１及びＡＰ２１１がそれぞれ、＃０側のシステム１０における仮想化ソフトウェア３００のイメージデータ、ＯＳ２００及びＡＰ２１０としてＨＤＤ１３０に格納される。仮想化環境の構築が完了すると、＃０側のシステム１０は、図３に示す状態となる。
【００４９】
ＣＰＵサブシステム１０１は、＃０側のシステム１０で仮想環境の構築が完了すると、ＣＰＵサブシステム１０１との同期開始を、ＦＴコントローラ１１１に通知する。ＦＴコントローラ１１１は、ＣＰＵサブシステム１０１からの同期開始の通知を受けると、システム１０、１１を同期状態とするための同期命令をＦＴコントローラ１１０に送信する(Ｓ５１０)。
【００５０】
ＦＴコントローラ１１０は、ＦＴコントローラ１１１から同期命令を受信すると、ＣＰＵサブシステム１０１との同期開始を、ＣＰＵサブシステム１００に通知する。ＣＰＵサブシステム１００は、ＦＴコントローラ１１０からの同期開始の通知を受けると、システムを起動する。具体的には、ＣＰＵサブシステム１０は、仮想化ソフトウェア３００の実行を開始する。これによって、仮想マシン３１０が動作する。ＣＰＵサブシステム１０は、仮想マシン３１０によって、ＯＳ２００及びＡＰ２１０を実行する。また、ＣＰＵサブシステム１００は、ＦＴ制御ソフトウェアを実行して、ＨＤＤ１３０の内容をＨＤＤ１３１の内容と一致させる。ＦＴコントローラ１１０は、ＣＰＵサブシステム１００のＣＰＵサブシステム１０１との同期を再開する(Ｓ４０８)。
【００５１】
ＣＰＵサブシステム１００、１０１の同期と、ＨＤＤ１３０、１３１の同期(ミラーリング完了)が完了した時点で、＃０側のシステム１０と＃１側のシステム１１は同期状態となる(Ｓ４０９、Ｓ５１１)。これによって、耐障害性が確保される。
【００５２】
以上に説明したように、本発明の実施の形態によれば、＃０側のシステム１０と＃１側のシステム１１との同期を解除して、それぞれを独立して動作させることによって、＃０側のシステム１０ではプログラムを実行して業務を継続し、＃１側のシステム１１では仮想マシン３１１を構築することができるようにしている。これによって、物理マシンから仮想マシン３１１への移行を１台のＦＴサーバ１で行うことができるため、コストを低減することができる。また、仮想マシン３１１を構築している間でも、業務を継続することができるため、業務停止時間を低減することができる。
【００５３】
また、このように、１台のＦＴサーバ１で物理マシンから仮想マシン３１１に移行することは、例えば、他の物理マシンで運用されているシステムを同時に仮想マシンとしてＦＴサーバ１に統合したい場合にも有益である。例えば、本実施の形態において、＃１側のシステム１１において、仮想マシン３１１のイメージデータをＨＤＤ１３１に格納する場合に、他の物理マシンに基づいて作成した仮想マシンのイメージデータをＨＤＤ１３１に格納することができる。これによって、仮想マシン構築後のＦＴサーバ１において、仮想マシン３１１と、他の物理マシンに基づいて作成した仮想マシンを動作させることができる。
【００５４】
本発明の他の実施の形態．
上述した実施の形態では、移行元の物理マシンの稼働中にＰ２Ｖを行う方法(ホットクローニング)について例示したが、移行元の物理マシンを停止させてからＰ２Ｖを行う方法(コールドクローニング)も可能である。
【００５５】
以下、コールドクローニングによってＰ２Ｖを行う場合について説明する。
この場合、＃０側のシステム１０から＃１側のシステム１１へのＰ２Ｖを行う(Ｓ４０４、Ｓ５０５)の前に、＃０側のシステム１０を停止させる。その後、＃０側のシステム１０において、ＣＰＵサブシステム１００がコンバータソフトをブートディスクから起動して、仮想マシン３１１のイメージデータを作成する。なお、ブートディスクは、例えば、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＤＶＤ−ＲＯＭ(Digital Versatile Disk Read Only Memory)又はＢＤ(Blu-ray Disc)(登録商標)等の光ディスクや、フロッピー(登録商標)ディスク等である。
【００５６】
そして、ＣＰＵサブシステム１００は、作成した仮想マシン３１１のイメージデータと、ＨＤＤ１３０に格納されているＯＳ２００及びＡＰ２１０とを、＃１側のシステム１１に送信する。ＣＰＵサブシステム１０１は、＃０側のシステム１０から送信された仮想マシン３１１のイメージデータをＨＤＤ１３１に格納し、ＯＳ２００及びＡＰ２１１をＯＳ２０１及びＡＰ２１１として仮想ＨＤＤ３２１に格納する。以降は、上述した実施の形態と同様の処理を行うことで、仮想化環境を構築する。
【００５７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、本実施の形態では、＃０側のシステム１０で業務を継続し、＃１側のシステム１１で仮想化環境を作成して、＃０側のシステム１０から＃１側のシステム１１の環境に移行する場合について例示したが、＃１側のシステム１１で業務を継続し、＃０側のシステム１０で仮想化環境を作成して、＃１側のシステム１１から＃０側のシステム１０の環境に移行するようにしてもよい。
【符号の説明】
【００５８】
１        ＦＴサーバ
２        フォールトトレラントシステム
１０        ＃０側システム
１１        ＃１側システム
２０        第１のシステム
２１        第２のシステム
３０        第１の処理実行部
３１        第２の処理実行部
３２        第１の同期制御部
４０、４１    プログラム
１００、１０１    ＣＰＵサブシステム
１１０、１１１    ＦＴコントローラ
１２０、１２１    ＩＯサブシステム
１３０、１３１    ＨＤＤ
２００、２０１    ＯＳ
２１０、２１１    ＡＰ
３００、３０１    仮想化ソフトウェア
３１０、３１１    仮想マシン
３２０、３２１    仮想ＨＤＤ
【図１】
0005636695.tif 000002
【図２】
0005636695.tif 000003
【図３】
0005636695.tif 000004
【図４】
0005636695.tif 000005