(57)【特許請求の範囲】
【請求項１】
コンピュータに、
該コンピュータとネットワークを介して接続される他のコンピュータにおいて動作する仮想マシンが有する仮想デバイスごとに当該仮想デバイスの種別と当該仮想デバイスの識別情報とを記憶する記憶部を参照して、該コンピュータのオペレーティングシステムによって利用される各物理デバイスの種別に対応する仮想デバイスの識別情報を特定し、前記物理デバイスごとに、当該物理デバイスに関して特定された識別情報を用いて、前記識別情報を有する仮想デバイスとの冗長構成を生成し、
前記オペレーティングシステムのメモリ内容を、前記他のコンピュータに転送する処理とを実行させる移行プログラム。
【請求項２】
前記冗長構成を生成する処理は、前記仮想デバイスごとに冗長化方式を記憶する記憶部を参照し、当該コンピュータが有する物理デバイスに関して、当該物理デバイスに対応する前記仮想デバイスとの冗長構成を当該仮想デバイスに係る前記冗長化方式に基づいて生成する請求項１記載の移行プログラム。
【請求項３】
前記冗長構成を生成する処理が生成した前記冗長構成の識別名を、当該識別名に係る冗長構成の解除を前記他のコンピュータに実行させるために、前記他のコンピュータに転送する処理を前記コンピュータに実行させる請求項１又は２記載の移行プログラム。
【請求項４】
前記冗長構成を生成する処理は、前記物理デバイスごとに、前記特定された識別情報を用いて、前記識別情報を有する仮想デバイスのデバイスドライバをインストールする処理を含む請求項１乃至３いずれか一項記載の移行プログラム。
【請求項５】
前記冗長構成を生成する処理は、
前記物理デバイスごとに、前記特定された識別情報を用いて、前記識別情報を有するダミーの仮想デバイスを擬似的にアタッチする処理と、
前記アタッチに応じて、前記ダミーの仮想デバイスのデバイスドライバをインストールする処理と、
前記物理デバイスとの冗長構成が生成された前記ダミーの仮想デバイスを擬似的にデタッチする処理とを含む請求項１乃至４記載の移行プログラム。
【請求項６】
情報処理装置であって、
該情報処理装置とネットワークを介して接続される他の情報処理装置において動作する仮想マシンが有する仮想デバイスごとに当該仮想デバイスの種別と当該仮想デバイスの識別情報とを記憶する記憶部を参照して、該情報処理装置のオペレーティングシステムによって利用される各物理デバイスの種別に対応する仮想デバイスの識別情報を特定し、前記物理デバイスごとに、当該物理デバイスに関して特定された識別情報を用いて、前記識別情報を有する仮想デバイスとの冗長構成を生成する冗長構成生成部と、
前記オペレーティングシステムのメモリ内容を、前記他の情報処理装置に転送する転送部とを有する情報処理装置。
【請求項７】
コンピュータが、
該コンピュータとネットワークを介して接続される他のコンピュータにおいて動作する仮想マシンが有する仮想デバイスごとに当該仮想デバイスの種別と当該仮想デバイスの識別情報とを記憶する記憶部を参照して、該コンピュータのオペレーティングシステムによって利用される各物理デバイスの種別に対応する仮想デバイスの識別情報を特定し、前記物理デバイスごとに、当該物理デバイスに関して特定された識別情報を用いて、前記識別情報を有する仮想デバイスとの冗長構成を生成し、
前記オペレーティングシステムのメモリ内容を、前記他のコンピュータに転送する処理とを実行する移行方法。
【請求項８】
第一の情報処理装置と前記第一の情報処理装置にネットワークを介して接続される第二の情報処理装置とを含む情報処理システムであって、
前記第一の情報処理装置は、
前記第二の情報処理装置において動作する仮想マシンが有する仮想デバイスごとに当該仮想デバイスの種別と当該仮想デバイスの識別情報とを記憶する記憶部を参照して、前記第一の情報処理装置のオペレーティングシステムによって利用される各物理デバイスの種別に対応する仮想デバイスの識別情報を特定し、前記物理デバイスごとに、当該物理デバイスに関して特定された識別情報を用いて、前記識別情報を有する仮想デバイスとの冗長構成を生成する冗長構成生成部と、
前記冗長構成生成部が生成した前記冗長構成の識別名を、前記第二の情報処理装置に転送する第一の転送部と、
前記オペレーティングシステムのメモリ内容を、前記第二の情報処理装置に転送する第二の転送部とを有し、
前記第二の情報処理装置は、
前記第一の転送部によって転送される前識別名に係る冗長構成を解除する解除部を有する、
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＯＳを移行させる移行プログラム、情報処理装置、移行方法、及び情報処理システムに関する。
【背景技術】
【０００２】
物理マシンから仮想環境へのＯＳ（Operating System）の移行（マイグレーション）は、物理マシンにおけるＯＳのディスクイメージ（ＨＤＤ（Hard Disk Drive）等の補助記憶装置に保存されている情報）を仮想マシンにコピーすることにより行われる。これにより、或る物理マシン上で直接動作するＯＳを、他の物理マシンにおいて動作する仮想マシン上に移行することができる。
【０００３】
但し、ＯＳのディスクイメージを物理マシンから仮想マシンへコピーする方式では、仮想マシンへコピーされたディスイメージに基づいて、仮想マシン上でＯＳを起動する必要があった。すなわち、移行の間において、移行対象のＯＳの再起動が必要とされた。ＯＳが再起動されるということは、ＯＳ上で実行されている処理（サービス）の継続性が失われてしまうことを意味する。
【０００４】
また、特許文献１には、物理マシンから仮想マシンへのＯＳの移行に関して、サービスの中断時間の短縮を目的とした技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１４５９３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、物理マシンと仮想マシンとのデバイス（ネットワークカードやＨＤＤ等）の不整合の解消に関して言及されていない。すなわち、通常、移行元の物理マシンと移行先の仮想マシンとでは、同一のデバイスが使用可能であることは保証されない。物理マシンのデバイスと仮想マシンのデバイスが一致しない場合、移行前において行われていた、当該デバイスを用いた処理が、移行後において継続できない可能性が高い。すなわち、移行後において、デバイスに関する制御処理等が正常に動作しない可能性が高い。
【０００７】
そこで、1側面では、物理マシンから仮想マシンへＯＳの移行時におけるデバイスの不整合を解消することのできる移行プログラム、情報処理装置、移行方法、及び情報処理システムの提供を目的とする。
【課題を解決するための手段】
【０００８】
一つの案では、移行プログラムは、コンピュータに、該コンピュータとネットワークを介して接続される他のコンピュータにおいて動作する仮想マシンが有する仮想デバイスごとに当該仮想デバイスの種別と当該仮想デバイスの識別情報とを記憶する記憶部を参照して、該コンピュータのオペレーティングシステムによって利用される各物理デバイスの種別に対応する仮想デバイスの識別情報を特定し、前記物理デバイスごとに、当該物理デバイスに関して特定された識別情報を用いて、前記識別情報を有する仮想デバイスとの冗長構成を生成し、前記オペレーティングシステムのメモリ内容を、前記他のコンピュータに転送する処理とを実行させる。
【発明の効果】
【０００９】
一態様によれば、物理マシンから仮想マシンへＯＳの移行時におけるデバイスの不整合を解消することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態におけるシステム構成例を示す図である。
【図２】本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における情報処理装置のソフトウェア構成例を示す図である。
【図４】本実施の形態の物理マシンＯＳの移行の概要を説明するための図である。
【図５】移行元処理部及び移行先処理部の機能構成例を示す図である。
【図６】物理マシンＯＳの移行のための初期化処理の処理手順の一例を説明するためのシーケンス図である。
【図７】冗長構成の生成処理の処理手順を説明するためのフローチャートである。
【図８】仮想デバイス情報記憶部の構成例を示す図である。
【図９】ＮＩＣに関する冗長構成の生成を説明するための図である。
【図１０】ＨＤＤに関する冗長構成の生成を説明するための図である。
【図１１】物理マシンから仮想マシンへの物理マシンＯＳの移行処理の処理手順を説明するためのシーケンス図である。
【図１２】物理マシンＯＳのメモリ内容の転送を概念的に示す図である。
【図１３】物理マシンのディスクイメージの転送を概念的に示す図である。
【図１４】物理マシンＯＳが外部ディスクから起動されている場合について説明するための図である。
【図１５】ＮＩＣに関する冗長構成の解除を説明するための図である。
【図１６】ＨＤＤに関する冗長構成の解除を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるシステム構成例を示す図である。同図において、情報処理装置１０Ｐと情報処理装置１０Ｖとは、ＬＡＮ（Local Area Network）等のネットワーク５０を介して通信可能に接続されている。なお通信経路の一部又は全部に無線区間が存在してもよい。
【００１２】
情報処理装置１０Ｐ及び情報処理装置１０Ｖは、ＰＣ（Personal Computer）等の汎用的なコンピュータを用いてもよい。本実施の形態において、情報処理装置１０Ｐは、移行又はマイグレーション（以下、「移行」という。）の対象とされるＯＳ（Operating System：オペレーティングシステム）の移行元の情報処理装置である。情報処理装置１０Ｖは、移行対象とされるＯＳの移行先の仮想マシン２３が動作する情報処理装置である。情報処理装置１０Ｐ及び１０Ｐを区別しない場合、「情報処理装置１０」という。
【００１３】
図２は、本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。図２の情報処理装置１０は、それぞれバスBで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１４】
情報処理装置１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他の情報処理装置よりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１５】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って情報処理装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１６】
以下の説明において、図２に示されるハードウェアについて、情報処理装置１０Ｐのハードウェアとして説明するときは、当該ハードウェアの符号の末尾に「Ｐ」を付加する。同様に、情報処理装置１０Ｐのハードウェアとして説明するときは、当該ハードウェアの符号の末尾に「Ｖ」を付加する。
【００１７】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、情報処理装置読み取り可能な記録媒体に相当する。
【００１８】
また、情報処理装置１０には、液晶ディスプレイ等の表示装置や、マウス及びキーボード等の入力装置等が接続されていてもよい。
【００１９】
図３は、本発明の実施の形態における情報処理装置のソフトウェア構成例を示す図である。
【００２０】
同図において、情報処理装置１０Ｐは、物理マシンＯＳ１１及び移行元処理部１２等を有する。物理マシンＯＳ１１は、一般的なＯＳ（Operating System：オペレーティングシステム）である。後述される仮想マシン上で動作するＯＳ（仮想マシンＯＳ２４）と区別するために、本実施の形態では、便宜上、物理マシンＯＳ１１と呼ぶ。すなわち、物理マシンＯＳ１１は、仮想マシン上ではなく、情報処理装置１０Ｐ上（すなわち、物理マシン上）で直接動作する。本実施の形態では、情報処理装置１０Ｐにおいて動作中の物理マシンＯＳ１１が移行対象とされる。
【００２１】
移行元処理部１２は、図４に示されるように、情報処理装置１０Ｐにおいて動作中の物理マシンＯＳ１１を、情報処理装置１０Ｖで動作する仮想マシン２３上に移行（マイグレーション）するための処理を情報処理装置１０ＰのＣＰＵ１０４Ｐに実行させる。例えば、移行元処理部１２は、物理マシンＯＳ１１が管理する（物理マシンＯＳ１１がロードされた）仮想アドレス空間のメモリの内容（以下、単に「メモリ内容」という。）や物理マシンＯＳ１１のディスクイメージ等を、移行先の情報処理装置１０Ｖに転送する。ディスクイメージとは、物理マシンＯＳ１１が情報処理装置１０Ｐにインストールされることにより、補助記憶装置１０２Ｐに生成され、物理マシンＯＳ１１のロード元となるファイル群又はデータ群をいう。なお、仮想マシン２３上に移行された後の物理マシンＯＳ１１は、便宜上、仮想マシンＯＳ２４と呼ぶ。
【００２２】
移行元処理部１２は、また、物理マシンＯＳ１１が管理する（物理マシンＯＳ１１が利用する）デバイス（すなわち、情報処理装置１０Ｐが有するデバイス）と、移行先の仮想マシン２３において使用可能な仮想デバイスとの不整合を解消するための処理を実行する。当該不整合を解消するための処理として、移行元処理部１２は、物理マシンＯＳ１１が管理するデバイスに関して、仮想デバイスとの冗長構成の生成（構築）を物理マシンＯＳ１１に実行させる。なお、物理マシンＯＳ１１が管理するデバイスとは、例えば、ＮＩＣ（Network Interface Card）やＨＤＤ（Hard Disk Drive）等が挙げられる。ＮＩＣは、インタフェース装置１０５Ｐの一例である。ＨＤＤは、補助記憶装置１０２Ｐの一例である。また、冗長構成とは、ＮＩＣに関するボンディング（ｂｏｎｄｉｎｇ）や、ＨＤＤに関するＲＡＩＤ（Redundant Array of Independent Disks）等、二つ以上のデバイスを、仮想的に一つのデバイスとして扱えるようにすることをいう。
【００２３】
なお、移行元処理部１２は、物理マシンＯＳ１１の拡張点に対応したプログラムモジュール（拡張モジュール）として実装されるとよい。一般的なＯＳは、動的な機能拡張を可能とするために、拡張機能が実装された拡張モジュールをカーネルの一部としてロードするための機構及び拡張点としてのインタフェース等を有する。移行元処理部１２が、斯かるインタフェースに従って実装されることにより、物理マシンＯＳ１１のソースコード等を改変することなく、物理マシンＯＳ１１のカーネル内に、移行元処理部１２の機能を組み込むことができる。その結果、本実施の形態の汎用性が確保される。すなわち、本実施の形態を、市場において既に流通している一般的なＯＳに適用することができる。但し、移行元処理部１２は、予め、物理マシンＯＳ１１のカーネルの一部として実装されてもよい。なお、移行元処理部１２が物理マシンＯＳ１１のカーネルの一部として機能する必要があるのは、物理マシンＯＳ１１のメモリ内容を読み取れるのは、カーネルに限られるからである。
【００２４】
情報処理装置１０Ｖは、ハイパーバイザ２１及び移行先処理部２２等を有する。ハイパーバイザ２１は、仮想マシン２３の実現を情報処理装置１０ＶのＣＰＵ１０４Ｖに実行させるプログラムである。一般的に、ハイパーバイザは、仮想マシンモニタ又はＶＭ（Virtual Machine）マネージャとも呼ばれる。例えば、ハイパーバイザ２１は、仮想マシン２３の定義ファイルに基づいて仮想マシン２３を起動させ、仮想マシン２３の稼働状態を管理又は監視する。仮想マシン２３の定義ファイルとは、仮想マシン２３に関する構成情報等が記述されているファイルである。
【００２５】
移行先処理部２２は、移行元処理部１２によって転送される、物理マシンＯＳ１１のメモリ内容やディスクイメージ等に基づいて、ハイパーバイザ２１によって実現される仮想マシン２３上に、物理マシンＯＳ１１を移行前の動作状態で復元するための処理を実行する。物理マシンＯＳ１１が移行前の動作状態で復元されるということは、物理マシンＯＳ１１の処理について、移行前後において、継続性が確保されることを意味する。すなわち、本実施の形態では、物理マシンＯＳ１１に関して、物理マシンから仮想マシン２３へのライブマイグレーションを実現することができる。なお、移行先処理部２２は、ハイパーバイザ２１から独立したプログラムとして実装されてもよいし、ハイパーバイザ２１の一部として実装されてもよい。
【００２６】
図５は、移行元処理部及び移行先処理部の機能構成例を示す図である。同図において、移行元処理部１２は、冗長構成通知部１２１、冗長構成生成部１２２、読み出し部１２３、及び停止制御部１２４等を有する。
【００２７】
冗長構成生成部１２２は、物理デバイス検索部１２２１、仮想デバイス判定部１２２２、及び冗長デバイス生成部１２２３等を含む。物理デバイス検索部１２２１は、情報処理装置１０Ｐが有するデバイスを検索する。すなわち、物理デバイス検索部１２２１によって、情報処理装置１０Ｐが有するデバイスの一覧が生成される。なお、情報処理装置１０Ｐが有する物理的なデバイスを、以下、「物理デバイス」という。仮想マシン２３上の仮想的なデバイス（仮想デバイス）と区別するためである。
【００２８】
仮想デバイス判定部１２２２は、物理デバイス検索部１２２１によって検索された各物理デバイスについて、仮想デバイス情報記憶部１２２４を用いて、対応する仮想マシン２３を判定する。対応する仮想マシン２３とは、物理マシンＯＳ１１の移行先の仮想マシン２３において、物理デバイスを代替することができる仮想的なデバイスをいう。
【００２９】
仮想デバイス情報記憶部１２２４は、移行先の仮想マシン２３が有する各仮想デバイスの情報を記憶する。仮想デバイス情報記憶部１２２４は、例えば、補助記憶装置１０２Ｐを用いて実現可能である。
【００３０】
冗長デバイス生成部１２２３は、物理デバイス検索部１２２１によって検索された各物理デバイスについて、対応する仮想デバイスとの冗長構成の生成を物理マシンＯＳ１１に実行させる。
【００３１】
冗長構成通知部１２１は、冗長デバイス生成部１２２３が生成させた冗長構成の識別名の一覧を、移行先処理部２２に通知する。なお、冗長構成通知部は、本実施の形態において、通知部の一例である。
【００３２】
読み出し部１２３は、メモリ内容読取部１２３１、ディスクイメージ読取部１２３２、レジスタ内容待避制御部１２３３、及び転送部１２３４等を有する。メモリ内容読取部１２３１は、動作中の物理マシンＯＳ１１のメモリ内容を読み取る（取得する）。ディスクイメージ読取部１２３２は、物理マシンＯＳ１１のディスクイメージを補助記憶装置１０２Ｐより読み取る（取得する）。レジスタ内容待避制御部１２３３は、情報処理装置１０ＰのＣＰＵ１０４Ｐのレジスタ（プログラムカウンタ等）の内容について、物理マシンＯＳ１１のメモリ空間への待避（コピー）を、物理マシンＯＳ１１に実行させる。転送部１２３４は、メモリ内容読取部１２３１によって読み取られたメモリ内容、及びディスクイメージ読取部１２３２によって読み取られたディスクイメージを、インタフェース装置１０５Ｐを用いて情報処理装置１０Ｖの移行先処理部２２に転送する。
【００３３】
停止制御部１２４は、物理マシンＯＳ１１を停止させるための処理制御を行う。物理マシンＯＳ１１の停止は、情報処理装置１０Ｐの電源を切ることと等価である。
【００３４】
移行先処理部２２は、受信部２２１、メモリ構築部２２２、ディスクイメージ書込部２２３、コンテキストスイッチ制御部２２４、冗長構成解除部２２５、及びアンロード部２２６等を有する。
【００３５】
受信部２２１は、移行元処理部１２より転送される、物理マシンＯＳ１１のメモリ内容及びディスクイメージをインタフェース装置１０５Ｖを用いて受信する。メモリ構築部２２２は、受信部２２１によって受信されたメモリ内容を、仮想マシン２３において、仮想マシンＯＳ２４の仮想アドレス空間となるメモリ空間に書き込む。ディスクイメージ書込部２２３は、受信部２２１によって受信されたディスクイメージを、仮想マシン２３の仮想的な補助記憶装置（仮想補助記憶装置２４１）に書き込む。
【００３６】
コンテキストスイッチ制御部２２４は、物理マシンＯＳ１１に関する処理制御を物理マシン（情報処理装置１０Ｐ）から仮想マシン２３に切り替えるための処理を行う。
【００３７】
以下、情報処理装置１０Ｐ及び情報処理装置１０Ｖが実行する処理手順について説明する。
【００３８】
図６は、物理マシンＯＳの移行のための初期化処理の処理手順の一例を説明するためのシーケンス図である。
【００３９】
ステップＳ１０１において、物理マシンＯＳ１１は、移行元処理部１２の（厳密には、情報処理装置１０Ｐを移行元処理部１２として機能させるための拡張モジュール）のロード要求の入力をユーザより受け付ける。当該ロード要求は、例えば、情報処理装置１０Ｐに接続された入力装置、又は情報処理装置１０Ｐとネットワークを介して接続されている他の情報処理装置を介して入力される。また、当該ロード要求では、物理マシンＯＳ１１に対する所定のコマンドが入力される。例えば、当該コマンドでは、移行元処理部１２に係る拡張モジュールのファイル名等が指定される。
【００４０】
続いて、物理マシンＯＳ１１のカーネルは、移行元処理部１２をロードする（Ｓ１０２）。続いて、物理マシンＯＳ１１のカーネルは、移行元処理部１２に対して初期化指示を行う（Ｓ１０３）。当該初期化指示は、移行元処理部１２が有するインタフェース（エントリポイント）を介して入力される。なお、移行元処理部１２がどのようなエントリポイントを有し、各エントリポイントが呼び出されるべきタイミングについては、例えば、移行元処理部１２内に定義情報として含まれている。当該定義情報は、物理マシンＯＳ１１の拡張点のインタフェースに従って定義されればよい。ステップＳ１０３では、初期化時に呼び出されるべきエントリポイントがカーネルによって解釈され、当該エントリポイントがカーネルより呼び出されることにより、移行元処理部１２に対して初期化指示が行われる。
【００４１】
初期化指示に応じ、移行元処理部１２は、移行先処理部２２の起動要求を情報処理装置１０Ｖに送信する（Ｓ１０４）。その結果、情報処理装置１０Ｖにおいて移行先処理部２２が起動される。続いて、移行先処理部２２の起動が完了したことが、情報処理装置１０Ｖより移行元処理部１２に通知される（Ｓ１０５）。なお、移行先の情報処理装置１０Ｖの識別情報（ＩＰアドレス等）は、例えば、情報処理装置１０Ｐの補助記憶装置１０２Ｐに記憶されている。
【００４２】
続いて、移行元処理部１２の冗長構成生成部１２２は、情報処理装置１０Ｐが有する各物理デバイスについて、対応する仮想デバイスとの冗長構成を生成する（Ｓ１０６）。冗長構成の生成処理の詳細については後述される。冗長構成の生成処理が完了すると、物理マシンＯＳ１１は、移行元処理部１２の初期化が完了したことを、情報処理装置１０Ｐが有する表示装置、又は情報処理装置１０Ｐとネットワークを介して接続されている情報処理装置の表示装置に表示させる（Ｓ１０８）。
【００４３】
続いて、ステップＳ１０７の詳細について説明する。図７は、冗長構成の生成処理の処理手順を説明するためのフローチャートである。
【００４４】
ステップＳ２０１において、移行元処理部１２の物理デバイス検索部１２２１は、情報処理装置１０Ｐが有する物理デバイスを検索する。物理デバイスの検索結果には、検索された物理デバイスのデバイス種別、デバイスＩＤ、及びデバイス名等が検索結果に含まれる。デバイス種別は、機能又は用途等に基づく物理デバイスの種別である。デバイスＩＤは、物理デバイスの識別子である。デバイス名は、物理デバイスの名前である。なお、物理デバイスの検索は、例えば、物理マシンＯＳ１１が提供するＡＰＩ（Application Program Interface）を呼び出すことにより行われればよい。
【００４５】
物理デバイスが一つ検索されると（Ｓ２０２でＹｅｓ）、移行元処理部１２の仮想デバイス判定部１２２２は、仮想デバイス情報記憶部１２２４より、検索された物理デバイス（以下、「カレント物理デバイス」という。）とデバイス種別が一致する仮想デバイスを検索する（Ｓ２０３）。
【００４６】
図８は、仮想デバイス情報記憶部の構成例を示す図である。同図において、仮想デバイス情報記憶部１２２４は、物理マシンＯＳ１１の移行先の仮想マシン２３において使用可能な（仮想マシン２３が有する）仮想デバイスごとに、デバイス種別、デバイスＩＤ、デバイス名、及び冗長化方式等を記憶する。冗長化方式は、仮想デバイスに適した（当該仮想デバイスに対応する物理デバイスに適した）冗長化の方式である。なお、デバイス種別、デバイスＩＤ、及びデバイス名は、仮想デバイスの識別情報の一例である。
【００４７】
なお、仮想デバイス情報記憶部１２２４には、情報処理装置１０Ｐと仮想マシン２３との間で不整合のある仮想デバイスに関して、図８に示される情報が記憶されていればよい。情報処理装置１０Ｐと仮想マシン２３との間で不整合のある仮想デバイスとは、物理マシンＯＳ１１の移行後において、正常な動作を継続できなくなる可能性のある物理デバイスに対応する仮想デバイスをいう。
【００４８】
該当する仮想デバイスが検索された場合（Ｓ２０４でＹｅｓ）、冗長デバイス生成部１２２３は、検索された仮想デバイス（以下、「対応仮想デバイス」という。）のデバイスＩＤ及びデバイス名を仮想デバイス情報記憶部１２２４より取得する（Ｓ２０５）。続いて、冗長デバイス生成部１２２３は、取得されたデバイスＩＤ及びデバイス名を用いて、ダミーの対応仮想デバイスを、情報処理装置１０Ｐに擬似的にアタッチする（Ｓ２０６）。ここで、アタッチとは、デバイスを物理的に情報処理装置１０Ｐに接続することをいう。例えば、ＵＳＢコネクタを有するデバイスであれば、ＵＳＢコネクタが、情報処理装置１０ＰのＵＳＢポートに差し込まれることをいう。但し、ステップＳ２０６では、実際に（物理的に）デバイスが接続されるのではなく、冗長デバイス生成部１２２３が、デバイスが接続されたかのように情報処理装置１０Ｐに対して偽装する。したがって、「擬似的にアタッチ」と表現されているのである。また、「ダミーの対応仮想デバイス」と表現しているのは、対応仮想マシン２３の実体は、情報処理装置１０Ｐは存在しないため、ステップＳ２０６では、対応仮想デバイスが情報処理装置１０Ｐに存在するかのように偽装されているからである。
【００４９】
より詳しくは、冗長デバイス生成部１２２３は、対デバイスが接続されたことを示す信号を情報処理装置１０ＰのＰＣＩバス上に発生させる。当該信号はＣＰＵ１０４によって受信される。ＣＰＵ１０４は、接続されたデバイスのデバイスＩＤ及びデバイス名を問い合わせる信号をＰＣＩバスに流す。冗長デバイス当該信号に対して、対応仮想デバイスのデバイスＩＤ及びデバイス名を応答する。当該応答に基づいて、ダミー対応仮想デバイスが擬似的に情報処理装置１０Ｐアタッチされる。
【００５０】
続いて、対応仮想デバイスの（擬似的な）アタッチに応じ、物理マシンＯＳ１１は、対応仮想デバイスを認識する（Ｓ２０７）。具体的には、例えば、プラグアンドプレイ（Plug and Play）の機構により、物理マシンＯＳ１１は、アタッチされた対応仮想デバイスのデバイスドライバのインストールを実行する。インストールの結果は、物理マシンＯＳ１１のメモリ内容及びディスクイメージに反映される。
【００５１】
続いて、冗長デバイス生成部１２２３は、対応仮想デバイスに対応付けられて記憶されている冗長化方式を、仮想デバイス情報記憶部１２２４より取得する（Ｓ２０８）。仮想デバイス情報記憶部１２２４において、仮想デバイスに対応付けられて冗長化方式が記憶されていることで、どのような冗長化方式によって冗長構成を生成するかについて、柔軟性及び拡張性を確保することができる。
【００５２】
続いて、冗長デバイス生成部１２２３は、カレント物理デバイスのデバイスＩＤ及びデバイス名と、対応仮想デバイスのデバイスＩＤ及びデバイス名とを指定して、カレント物理デバイスと対応仮想デバイスとの冗長構成の生成を物理マシンＯＳ１１に実行させる（Ｓ２０９）。冗長構成の生成の結果は、物理マシンＯＳのメモリ内容及びディスクイメージに反映される。ここでは、ステップＳ２０８において取得された冗長化方式に従った冗長構成が生成される。なお、生成された各冗長構成には、識別名が付与される。冗長デバイス生成部１２２３は、メモリ装置１０３Ｐ又は補助記憶装置１０２Ｐに、当該識別名の一覧を記録しておく。物理マシンＯＳ１１の移行とは関係なく冗長構成が生成される可能性が考えられるところ、物理マシンの移行に関連して生成された冗長構成を区別可能とするためのである。
【００５３】
続いて、冗長デバイス生成部１２２３は、対応仮想デバイスを擬似的にデタッチする（Ｓ２１０）。より詳しくは、対応仮想デバイスがデタッチされたことを示す信号を発生させる。それにより、物理マシンＯＳ１１には、対応仮想デバイスがデタッチされたことが認識される。なお、デタッチとは、デバイスとの物理的な接続が切断されることをいう。但し、対応仮想デバイスについては、物理的な接続（アタッチ）は行われていない。したがって、ステップＳ２１０において、冗長デバイス生成部１２２３は、デタッチを偽装するのである。ここで、対応仮想デバイスに関してデタッチが実行されるのは、ダミーの対応仮想デバイスがアタッチされたまま物理マシンＯＳ１１が移行されることにより、移行先の仮想マシン２３上において、対応仮想デバイスの実体のアタッチが適切に行われないことを回避するためである。すなわち、ステップＳ２０７においてインストールされたデバイスドライバが、ダミーの対応仮想デバイスに占有されてしまい、仮想マシン２３における対応仮想デバイスの実体を当該デバイスドライバによる制御対象にできなくなるのを回避するためである。
【００５４】
ステップＳ２０１以降の処理は、情報処理装置１０Ｐにおいて検索される物理デバイスごとに実行される。
【００５５】
図７の処理内容を図面によって表現すると、例えば、図９又は図１０のように示される。
【００５６】
図９は、ＮＩＣに関する冗長構成の生成を説明するための図である。同図において、（Ａ）は、冗長化前の状態を示す。すなわち、当初、情報処理装置１０Ｐには、インタフェース装置１０５ＰとしてＮＩＣ（ｅｔｈ０）が接続されており、ＮＩＣ（ｅｔｈ０）に対応するデバイスドライバｄ０がインストールされている。
【００５７】
（Ｂ）は、図７のステップＳ２０６〜Ｓ２０８が実行された状態を示す。すなわち、（Ｂ）では、ダミー仮想ＮＩＣ（ｅｔｈ１）が擬似的にアタッチされ、ダミー仮想ＮＩＣ（ｅｔｈ１）に対応するデバイスドライバｄ１がインストールされている。また、例えば、ボンディングによって、ＮＩＣ（ｅｔｈ０）とダミー仮想ＮＩＣ（ｅｔｈ１）とを含む冗長構成が生成されている。ダミー仮想ＮＩＣ（ｅｔｈ１）は、ＮＩＣ（ｅｔｈ０）に対する、ダミーの対応仮想デバイスである。なお、（Ｂ）に示される冗長構成において、物理マシンＯＳ１１上では、ＮＩＣ（ｅｔｈ０）が運用系に相当し、ダミー仮想ＮＩＣ（ｅｔｈ１）が待機系に相当する。運用系及び待機系の双方がＡｃｔｉｖｅ状態とされてもよいし、待機系はＳｔａｎｂｙ状態とされてもよい。
【００５８】
（Ｃ）は、図７のステップＳ２１０が実行された状態を示す。すなわち、（Ｃ）では、ダミー仮想ＮＩＣ（ｅｔｈ１）がデタッチされている。但し、デバイスドライバｄ１はインストールされたままとなっている。この状態において、物理マシンＯＳ１１のメモリ内容及びディスクイメージには、デバイスドライバｄ１がインストールされた状態を示す情報が記録されている。また、ＮＩＣ（ｅｔｈ０）とダミー仮想ＮＩＣ（ｅｔｈ１）とを含む冗長構成が生成されていることを示す情報も、物理マシンＯＳ１１のメモリ空間及びディスクイメージに記録されている。
【００５９】
また、図１０は、ＨＤＤに関する冗長構成の生成を説明するための図である。同図において、（Ａ）は、冗長化前の状態を示す。すなわち、当初、情報処理装置１０Ｐには、補助記憶装置１０２としてＨＤＤ（ｈ０）が接続されており、ＨＤＤ（ｈ０）に対応するＳＡＴＡ（Serial Advanced Technology Attachment）ドライバｄ３がインストールされている。
【００６０】
（Ｂ）は、図７のステップＳ２０６〜Ｓ２０８が実行された状態を示す。すなわち、（Ｂ）では、ダミー仮想ＨＤＤ（ｈ１）が擬似的にアタッチされ、ダミー仮想ＨＤＤ（ｈ１）に対応するＩＤＥ（Integrated Drive Electronics）ドライバｄ２がインストールされている。また、例えば、ＲＡＩＤ１（二重化）によって、ＨＤＤ（ｈ０）とダミー仮想ＨＤＤ（ｈ１）とを含む冗長構成が生成されている。ダミー仮想ＨＤＤ（ｈ１）は、ＨＤＤ（ｈ０）に対する、ダミーの対応仮想デバイスである。なお、（Ｂ）に示される冗長構成において、物理マシンＯＳ１１上では、ＨＤＤ（ｈ０）が運用系に相当し、ダミー仮想ＨＤＤ（ｈ１）が待機系に相当する。運用系及び待機系の双方がＡｃｔｉｖｅ状態とされてもよいし、待機系はＳｔａｎｂｙ状態とされてもよい。
【００６１】
（Ｃ）は、図７のステップＳ２１０が実行された状態を示す。すなわち、（Ｃ）では、ダミー仮想ＨＤＤ（ｈ１）がデタッチされている。但し、ＩＤＥドライバｄ２はインストールされたままとなっている。この状態において、物理マシンＯＳ１１のメモリ内容及びディスクイメージには、ＩＤＥドライバｄ２がインストールされた状態を示す情報が記録されている。また、ＨＤＤ（ｈ０）とダミー仮想ＨＤＤ（ｈ１）とを含む冗長構成が生成されていることを示す情報も、物理マシンＯＳ１１のメモリ空間及びディスクイメージに記録されている。
【００６２】
続いて、図６において説明した処理に続いて実行される、物理マシンＯＳ１１の移行処理について説明する。
【００６３】
図１１は、物理マシンから仮想マシンへの物理マシンＯＳの移行処理の処理手順を説明するためのシーケンス図である。
【００６４】
ステップＳ３０１において、物理マシンＯＳ１１は、移行開始要求の入力を受け付ける。移行開始要求は、例えば、移行元処理部１２の移行開始のエントリポイントに対応するシグナルを発生させることによって入力される。例えば、斯かるシグナルを発生させるコマンドが予め作成され、当該コマンドがユーザによって呼び出されてもよい。
【００６５】
続いて、物理マシンＯＳ１１は、移行の開始を移行元処理部１２に通知する（Ｓ３０２）。当該通知に応じ、移行元処理部１２は、移行の開始を情報処理装置１０Ｖにおいて起動されている移行先処理部２２に通知する（Ｓ３０３）。移行先処理部２２は、移行の開始通知の受信に応じ、空の仮想マシン２３を情報処理装置１０Ｖのメモリ空間に生成する（Ｓ３０４）。
【００６６】
続いて、移行元処理部１２の冗長構成通知部１２１は、冗長デバイス生成部１２２３によってメモリ装置１０３又は補助記憶装置１０２に記録されている、冗長構成の識別名の一覧を移行先処理部２２の冗長構成解除部２２５に転送（送信）する（Ｓ３０５）。冗長構成解除部２２５は、受信された識別名の一覧を、メモリ装置１０３Ｖ又は補助記憶装置１０２Ｖに記録しておく。
【００６７】
続いて、移行元処理部１２のメモリ内容読取部１２３１は、物理マシンＯＳ１１のメモリ内容を、例えば、ページ単位で読み取る。また、移行元処理部１２のディスクイメージ読取部１２３２は、物理マシンＯＳ１１のディスクイメージを補助記憶装置１０２より読み取る。移行元処理部１２の転送部１２３４は、読み取られたページ単位のメモリ内容及びディスクイメージを移行先処理部２２に転送する（Ｓ３０６−１〜Ｓ３０６−ｎ）。転送は、例えば、複数回に分けられて実行される。
【００６８】
転送部１２３４より送信されたメモリ内容又はディスクイメージは、移行先処理部２２の受信部２２１によって受信される。メモリ構築部２２２は、受信部２２１によってページ単位のメモリ内容が受信されるたびに、当該メモリ内容を、仮想マシン２３において仮想マシンＯＳ２４に割り当てられる仮想メモリ空間に書き込む。また、ディスクイメージ書込部２２３は、受信部２２１によってディスクイメージが受信されるたびに、当該ディスクイメージを仮想マシン２３の仮想補助記憶装置２３１に書き込む（Ｓ３０７−１〜Ｓ３０７−ｎ）。受信部２２１は、メモリ内容の書き込み又はディスクイメージの書き込みの完了に応じて、書き込み結果（書き込みの成否）を示す応答を、移行元処理部１２の転送部１２３４に返信する（Ｓ３０８−１〜Ｓ３０８−ｎ）。
【００６９】
なお、メモリ構築部２２２は、書き込まれたメモリ内容に係るページの仮想アドレス及び物理アドレスを、仮想マシン２３におけるページテーブルへ書き込む。ここで、物理アドレスの値は、メモリ内容が書き込まれた結果に基づいて判定されればよい。
【００７０】
図１２は、物理マシンＯＳのメモリ内容の転送を概念的に示す図である。同図に示されるように、物理マシンＯＳ１１のメモリ空間Ｍ１の内容（メモリ内容）は、移行元処理部１２によって読み取られ、移行先処理部２２に転送される。移行先処理部２２は、受信されたメモリ内容を、仮想マシン２３のメモリ空間Ｍ２に書き込む。その結果、物理マシンＯＳ１１のメモリ空間Ｍ１の内容が、仮想マシン２３のメモリ空間Ｍ２内に復元される。なお、メモリ空間Ｍ１には、移行元処理部１２がロードされた状態のカーネル自身も含まれている。したがって、移行元処理部１２がロードされた状態も、仮想マシン２３のメモリ空間において復元される。
【００７１】
なお、メモリ内容の転送の詳細は、例えば、仮想マシン２３のライブマイグレーション技術おけるメモリ内容の転送処理を参考としてもよい。例えば、転送中に書き換えられた領域については、フラグが立てられ、再転送が行われる。
【００７２】
また、メモリ内容の転送は、必ずしもページ単位でなくてもよい。複数ページ単位であってもよいし、ページが所定の基準で分割された単位であってもよい。すなわち、受信側（移行先処理部２２）において、ページの区切りを識別することができ、ページテーブルを構築することが可能であれば、どのような単位でメモリ内容の転送が行われてもよい。
【００７３】
また、図１３は、物理マシンのディスクイメージの転送を概念的に示す図である。同図に示されるように、補助記憶装置１０２Ｐに記録されている、物理マシンＯＳ１１のディスクイメージは、移行元処理部１２によって読み取られ、移行先処理部２２に転送される。移行先処理部２２は、受信されたディスクイメージを、仮想マシン２３の仮想補助記憶装置２３１に書き込む。その結果、物理マシンＯＳ１１のディスクイメージが、仮想マシン２３の仮想補助記憶装置２３１内に復元される。ところで、物理マシンＯＳ１１のディスクイメージは、カーネル以外でも読み取ることができる。したがって、カーネルから独立したプログラム（例えば、物理マシンＯＳ１１上でプロセスとして起動されるプログラム）によって、当該ディスクイメージの読み取り及び転送が実行されてもよい。
【００７４】
なお、物理マシンＯＳ１１のメモリ空間の内容の転送とディスクイメージの転送とは、並列的に行われてもよいし、直列的に行われてもよい。
【００７５】
ところで、情報処理装置１０Ｐにおいて、物理マシンＯＳ１１が、ＳＡＮブート又はｉＳＣＳＩブート等によって、外部ディスク４０から起動（ブート）されている形態も考えられる。この場合、ディスクイメージの転送は不要である。外部ディスク４０とは、情報処理装置１０Ｐとネットワークを介して接続されているストレージ装置（ＨＤＤ等）をいう。
【００７６】
図１４は、物理マシンＯＳが外部ディスクから起動されている場合について説明するための図である。同図において、外部ディスク４０から情報処理装置１０Ｐへの矢印は、情報処理装置１０Ｐに対して、物理マシンＯＳ１１のロード先として外部ディスク４０のＩＰアドレスが設定されていることを示す。この場合、物理マシンＯＳ１１の移行に際し、移行先の仮想マシン２３に対して、仮想マシンＯＳ２４のロード先のＩＰアドレスとして外部ディスク４０のＩＰアドレスが仮想マシン２３に設定されればよい。そのための情報処理として、例えば、メモリ内容の転送と並行して、又はメモリ内容の転送の前後に、ディスクイメージ読取部１２３２は、物理マシンＯＳ１１より、外部ディスク４０のＩＰアドレスを取得する。転送部１２３４は、当該ＩＰアドレスを移行先処理部２２に転送する。移行先処理部２２の受信部２２１によって当該ＩＰアドレスが受信されると、ディスクイメージ書込部２２３は、移行先の仮想マシン２３の定義ファイルに、仮想マシンＯＳ２４のロード先を示す情報として当該ＩＰアドレスを書き込む。
【００７７】
こうすることで、仮想マシン２３は、ハイパーバイザ２１によって起動される際、仮想マシンＯＳ２４のロード先は外部ディスク４０であることを認識することができる。
【００７８】
全てのメモリ内容及び全てのディスクイメージ等の転送が完了し（Ｓ３０７−ｎ）、当該転送に対する応答が受信されると（Ｓ３０８−ｎ）、移行元処理部１２のレジスタ内容待避制御部１２３３は、物理マシンＯＳ１１に対して、レジスタ内容の待避を要求する（Ｓ３０９）。物理マシンＯＳ１１は、ＣＰＵ１０４Ｐのレジスタ（プログラムカウンタ等）の内容について、物理マシンＯＳ１１のメモリ空間への待避（コピー）を実行する。続いて、メモリ内容読取部１２３１は、メモリ空間に待避されたレジスタの内容（レジスタ内容）を物理マシンＯＳ１１のメモリ空間より読み取る（Ｓ３１０）。続いて、転送部１２３４は、読み取られたレジスタ内容を、移行先処理部２２に転送する（Ｓ３１１）。移行先処理部２２の受信部２２１によってレジスタ内容が受信されると、メモリ構築部２２２は、当該レジスタ内容を、仮想マシン２３のメモリ空間の所定の領域に書き込む（Ｓ３１２）。
【００７９】
続いて、移行先処理部２２のコンテキストスイッチ制御部２２４は、物理マシンＯＳ１１の停止要求を移行元処理部１２に送信する（Ｓ３１３）。移行元処理部１２の停止制御部１２４は、当該停止要求に応じ、情報処理装置１０Ｐの電源を切断し、物理マシンＯＳ１１を停止（シャットダウン）させる（Ｓ３１４）。
【００８０】
続いて、コンテキストスイッチ制御部２２４は、ハイパーバイザ２１に対し、仮想マシン２３の起動を要求する（Ｓ３１５）。当該要求に応じ、ハイパーバイザ２１は、仮想マシン２３を起動状態とする（Ｓ３１６）。具体的には、ハイパーバイザ２１は、仮想マシン２３のメモリ空間に書き込まれているレジスタ内容を読み出し、当該レジスタ内容を仮想マシン２３のＣＰＵに設定する。したがって、プログラムカウンタ等も当該ＣＰＵに設定される。その結果、仮想マシン２３上に移行された仮想マシンＯＳ２４は、プログラムカウンタが示すアドレスから処理を再開する。すなわち、物理マシンＯＳ１１について、再起動が実行されることなく、仮想マシンＯＳ２４として、仮想マシン２３上での処理の継続が実現される。
【００８１】
仮想マシン２３の起動に応じて、冗長構成が生成されているデバイスに関しては、運用系が正常に動作しなくなる。当該運用系は、情報処理装置１０Ｐにおいて使用可能（有効）であるが、仮想マシン２３においては使用可能でないからである。したがって、冗長構成の機能によって、処理制御が運用系から待機系に自動的に移る。一方、待機系は、仮想マシン２３において使用可能なデバイスに合わせて構築されている。したがって、仮想マシン２３の起動に応じ、待機系には、対応する仮想デバイスがアタッチされる。なお、アタッチされるのは、仮想デバイスのダミーではなく実体である。仮想マシン２３は、当該実体を備えているからである。よって、処理制御が待機系に移されると、待機系は、仮想マシン２３における仮想デバイスを用いて、移行前の運用系が実行していた処理を中断させることなく引き継ぐことができる。その結果、移行前後において、デバイスの不整合の顕在化を回避することができ、実質的に、シームレスにデバイスの処理を継続させることができる。例えば、ＮＩＣに関しては、ＩＰアドレスは移行前と同一のものを使用することができる。したがって、ＩＰアドレスを用いた通信に関して、物理マシンＯＳ１１の移行前の通信相手は、物理マシンＯＳ１１が仮想マシンＯＳ２４に移行されたことを意識することなく、同一のＩＰアドレスを宛先として使用することができる。
【００８２】
続いて、移行元処理部１２の冗長構成解除部２２５は、仮想マシン２３における各仮想デバイスの冗長構成の解除（解消）を仮想マシンＯＳ２４に実行させる（Ｓ３１７）。解除の対象とされる冗長構成は、ステップＳ３０５に応じてメモリ装置１０３Ｖ又は補助記憶装置１０２Ｖに記録されている識別名に係る冗長構成である。したがって、解除対象を、物理マシンＯＳ１１の移行のために生成された冗長構成に限定することができ、移行とは無関係に生成された冗長構成が解除されてしまうことによる不都合の発生を回避することができる。
【００８３】
冗長構成解除部２２５は、冗長構成の解除後に、移行元における運用系のデバイスドライバのアンインストールを実行する。当該デバイスドライバは、移行先においては不要だからである。但し、当該デバイスドライバのアンインストールが実行されなくても、移行先における処理の実行に関して不都合が発生する可能性は低い。なお、当該デバイスドライバは、ステップＳ３０５に応じてメモリ装置１０３Ｖ又は補助記憶装置１０２Ｖに記録されている冗長構成の識別名に基づいて、仮想マシンＯＳ２４に問い合わせることにより特定することができる。
【００８４】
図１５は、ＮＩＣに関する冗長構成の解除を説明するための図である。同図において、（Ａ）は、仮想マシン２３の起動後における、ＮＩＣの冗長構成（ボンディング）の状態を示す。（Ａ）では、デバイスドライバｄ１に仮想ＮＩＣ（ｅｔｈ１）がアタッチされている。また、デバイスドライバｄ０による処理制御が正常に動作しないことに応じて、待機系だったデバイスドライバｄ１に処理制御が移されている。なお、デバイスドライバｄ０による処理制御が正常に動作しないことは、デバイスドライバｄ０が破線によって示されていることで表現されている。
【００８５】
（Ｂ）は、ステップＳ３１７が実行された状態を示す。（Ｂ）では、冗長構成が解除され、デバイスドライバｄ０がアンインストールされている。なお、待機系であるデバイスドライバｄ１及び仮想ＮＩＣ（ｅｔｈ１）による処理制御は既に確立されているため、デバイスドライバｄ０がアンインストールされても、デバイスドライバｄ１及び仮想ＮＩＣ（ｅｔｈ１）を用いた処理（すなわち、通信処理）に影響は無い。
【００８６】
また、図１６は、ＨＤＤに関する冗長構成の解除を説明するための図である。同図において、（Ａ）は、仮想マシン２３の起動後における、ＨＤＤの冗長構成（ＲＡＩＤ１）の状態を示す。（Ａ）では、ＩＤＥドライバｄ４に仮想ＨＤＤ（ｈ１）がアタッチされている。また、ＳＡＴＡドライバｄ３による処理制御が正常に動作しないことに応じて、待機系だったＩＤＥドライバｄ４に処理制御が移されている。なお、ＳＡＴＡドライバｄ３による処理制御が正常に動作しないことは、ＳＡＴＡドライバｄ３が破線によって示されていることで表現されている。
【００８７】
（Ｂ）は、ステップＳ３１７が実行された状態を示す。すなわち、冗長構成が解除され、ＳＡＴＡドライバｄ３がアンインストールされている。なお、待機系であるＩＤＥドライバｄ４及び仮想ＨＤＤ（ｈ１）による処理制御は既に確立されているため、ＳＡＴＡドライバｄ３がアンインストールされても、ＩＤＥドライバｄ４及び仮想ＨＤＤ（ｈ１）を用いた処理（すなわち、通信処理）に影響は無い。
【００８８】
続いて、移行元処理部１２のアンロード部２２６は、仮想マシンＯＳ２４のカーネル内にロードされている移行先処理部２２のアンロードを、仮想マシンＯＳ２４に実行させる（Ｓ３１８）。すなわち、仮想マシンＯＳ２４は、物理マシンＯＳ１１の動作状態が維持されたまま移行されたものである。したがって、物理マシンＯＳ１１のカーネルにロードされている移行元処理部１２は、仮想マシンＯＳ２４のカーネルにおいてもロードされた状態となっている。ステップＳ３１８では、当該状態を解消させる処理である。
【００８９】
続いて、移行先処理部２２は、移行処理の完了を示すメッセージ等を、情報処理装置１０Ｖが有する表示装置、又は情報処理装置１０Ｖとネットワークを介して接続されている情報処理装置の表示装置に表示させる（Ｓ３１９）。当該メッセージ等によって、移行処理の完了をユーザに通知するためのである。
【００９０】
上述したように、本実施の形態によれば、移行元の物理マシン（情報処理装置１０Ｐ）が備えるデバイスについて、物理マシンＯＳ１１の移行元において、移行先の仮想マシン２３が備えるデバイスとの冗長構成が生成される。したがって、移行先において、デバイスの不整合により、デバイスの制御処理が不正となる可能性を低減させることができる。
【００９１】
また、物理マシンＯＳ１１のディスクイメージのみならず、メモリ内容等が転送されることにより、物理マシンＯＳ１１の動作状態を維持したまま、物理マシンＯＳ１１を仮想マシン２３上に移行することができる。すなわち、物理マシンＯＳ１１を再起動することなく、情報処理装置１０Ｐから仮想マシン２３への移行を実現することができる。
【００９２】
また、移行元処理部が拡張モジュールとして実装された場合、汎用的なＯＳに対して本実施の形態を適用することができる。
【００９３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００９４】
以上の説明に関し、更に以下の項を開示する。
（付記１）
コンピュータに、
該コンピュータとネットワークを介して接続される他のコンピュータにおいて動作する仮想マシンが有する仮想デバイスの識別情報を用いて、該コンピュータのオペレーティングシステムによって利用される物理デバイスと、前記識別情報を有する仮想デバイスとの冗長構成を生成し、
前記オペレーティングシステムのメモリ内容を、前記他のコンピュータに転送する処理とを実行させる移行プログラム。
（付記２）
前記冗長構成を生成する処理は、前記仮想デバイスごとに冗長化方式を記憶する記憶部を参照し、当該コンピュータが有する物理デバイスに関して、当該物理デバイスに対応する前記仮想デバイスとの冗長構成を当該仮想デバイスに係る前記冗長化方式に基づいて生成する付記１記載の移行プログラム。
（付記３）
前記冗長構成を生成する処理が生成した前記冗長構成の識別名を前記他のコンピュータに転送する処理を前記コンピュータに実行させる付記１又は２記載の移行プログラム。
（付記４）
情報処理装置であって、
該情報処理装置とネットワークを介して接続される他の情報処理装置において動作する仮想マシンが有する仮想デバイスの識別情報を用いて、該情報処理装置のオペレーティングシステムによって利用される物理デバイスと、前記識別情報を有する仮想デバイスとの冗長構成を生成する冗長構成生成部と、
前記オペレーティングシステムのメモリ内容を、前記他の情報処理装置に転送する転送部とを有する情報処理装置。
（付記５）
前記冗長構成生成部は、前記仮想デバイスごとに冗長化方式を記憶する記憶部を参照し、当該情報処理装置が有する物理デバイスに関して、当該物理デバイスに対応する前記仮想デバイスとの冗長構成を当該仮想デバイスに係る前記冗長化方式に基づいて生成する付記４記載の情報処理装置。
（付記６）
前記冗長構成生成部が生成した前記冗長構成の識別名を前記他の情報処理装置に転送する通知部を有する付記４又は５記載の情報処理装置。
（付記７）
コンピュータが、
該コンピュータとネットワークを介して接続される他のコンピュータにおいて動作する仮想マシンが有する仮想デバイスの識別情報を用いて、該コンピュータのオペレーティングシステムによって利用される物理デバイスと、前記識別情報を有する仮想デバイスとの冗長構成を生成し、
前記オペレーティングシステムのメモリ内容を、前記他のコンピュータに転送する処理とを実行する移行方法。
（付記８）
前記冗長構成を生成する処理は、前記仮想デバイスごとに冗長化方式を記憶する記憶部を参照し、当該コンピュータが有する物理デバイスに関して、当該物理デバイスに対応する前記仮想デバイスとの冗長構成を当該仮想デバイスに係る前記冗長化方式に基づいて生成する付記７記載の移行方法。
（付記９）
前記冗長構成を生成する処理が生成した前記冗長構成の識別名を前記他のコンピュータに転送する処理を前記コンピュータに実行させる付記７又は８記載の移行方法。
【符号の説明】
【００９５】
１１          物理マシンＯＳ
１２          移行元処理部
２１          ハイパーバイザ
２２          移行先処理部
２３          仮想マシン
２４          仮想マシンＯＳ
４０          外部ディスク
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１２１        冗長構成通知部
１２２        冗長構成生成部
１２３        読み出し部
１２４        停止制御部
２２１        受信部
２２２        メモリ構築部
２２３        ディスクイメージ書込部
２２４        コンテキストスイッチ制御部
２２５        冗長構成解除部
２２６        アンロード部
２３１        仮想補助記憶装置
１２２１      物理デバイス検索部
１２２２      仮想デバイス判定部
１２２３      冗長デバイス生成部
１２２４      仮想デバイス情報記憶部
１２３１      メモリ内容読取部
１２３２      ディスクイメージ読取部
１２３３      レジスタ内容待避制御部
１２３４      転送部
Ｂ            バス
【図１】
0005724477.tif 000002
【図２】
0005724477.tif 000003
【図３】
0005724477.tif 000004
【図４】
0005724477.tif 000005
【図５】
0005724477.tif 000006
【図６】
0005724477.tif 000007
【図７】
0005724477.tif 000008
【図８】
0005724477.tif 000009
【図９】
0005724477.tif 000010
【図１０】
0005724477.tif 000011
【図１１】
0005724477.tif 000012
【図１２】
0005724477.tif 000013
【図１３】
0005724477.tif 000014
【図１４】
0005724477.tif 000015
【図１５】
0005724477.tif 000016
【図１６】
0005724477.tif 000017