(57)【要約】  第１の命令セットを用いて仮想マシン（５）を制御する第１の情報処理装置（２）へ、第２の命令セットを用いて仮想マシン（５）を制御する第２の情報処理装置（２）からの仮想マシン（５）の移動を許容し、前記第２の情報処理装置（２）から前記第１の情報処理装置（２）へ移動される仮想マシン（５）に対して前記第１の命令セットに関する情報を通知し、前記第１の情報処理装置（２）は、移動された前記仮想マシン（５）に対して、前記第１の命令セットを用いた制御を実行する。
2015001615.tif 000002
【特許請求の範囲】
【請求項１】
第１の命令セットを用いて仮想マシンを制御する第１の情報処理装置へ、第２の命令セットを用いて仮想マシンを制御する第２の情報処理装置からの仮想マシンの移動を許容し、
前記第２の情報処理装置から前記第１の情報処理装置へ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知し、
前記第１の情報処理装置は、移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する、
ことを特徴とする、仮想マシン管理方法。
【請求項２】
前記通知は、前記第１の命令セットの水準及び前記第２の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対する、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示によって行なわれる、
ことを特徴とする、請求項１記載の仮想マシン管理方法。
【請求項３】
前記通知において、前記第２の情報処理装置は、
前記移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第２の命令セットに関する情報から前記第１の命令セットに関する前記情報に変更し、
前記移動される仮想マシンに対して、前記変更した命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、請求項２記載の仮想マシン管理方法。
【請求項４】
前記通知において、前記第１の情報処理装置は、
前記移動された仮想マシンに対して、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、請求項２記載の仮想マシン管理方法。
【請求項５】
前記通知は、前記第１の情報処理装置で動作する仮想マシンを制御する第１の制御部又は前記第２の情報処理装置で動作する仮想マシンを制御する第２の制御部が、前記移動される仮想マシンに対して割り込みを発生させて前記指示を行なうこと、並びに、前記第１又は第２の制御部が、前記移動される仮想マシンにより登録された前記指示を示すハンドラを実行すること、の少なくとも一方により行なわれる、
ことを特徴とする、請求項２〜４のいずれか１項記載の仮想マシン管理方法。
【請求項６】
前記第１の情報処理装置は、
前記移動された仮想マシンにより、前記第２の命令セットに含まれる命令であって前記第１の命令セットに含まれない命令が前記第１の情報処理装置において実行された場合、前記実行された命令のエミュレーションを行ない、
前記移動された仮想マシンに対して前記第１の命令セットに関する情報を再度通知する、
ことを特徴とする、請求項１〜５のいずれか１項記載の仮想マシン管理方法。
【請求項７】
前記第１の情報処理装置は、前記実行された命令について以前にエミュレーションを行なっている場合、前記実行された命令を、前記第１の情報処理装置が実行可能な命令に変換する、
ことを特徴とする、請求項６記載の仮想マシン管理方法。
【請求項８】
第１の命令セットを用いて仮想マシンを制御する第１の仮想マシン管理装置であって、
第２の命令セットを用いて仮想マシンを制御する第２の仮想マシン管理装置からの仮想マシンの移動を許容する制御部をそなえ、
前記制御部は、前記第２の仮想マシン管理装置から前記第１の仮想マシン管理装置へ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知する通知部をそなえるとともに、
移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する処理部をさらにそなえる、
ことを特徴とする、仮想マシン管理装置。
【請求項９】
前記通知部は、前記第１の命令セットの水準及び前記第２の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対して、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示を行なう、
ことを特徴とする、請求項８記載の仮想マシン管理装置。
【請求項１０】
前記制御部は、前記第１の仮想マシン管理装置から前記第２の仮想マシン管理装置への仮想マシンの移動を許容し、
前記第１の仮想マシン管理装置から前記第２の仮想マシン管理装置へ移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第１の命令セットに関する情報から前記第２の命令セットに関する前記情報に変更する命令セット制限部をさらにそなえ、
前記通知部は、前記第１の仮想マシン管理装置から前記第２の仮想マシン管理装置へ移動される仮想マシンに対して、前記変更した命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、請求項９記載の仮想マシン管理装置。
【請求項１１】
前記通知部は、前記移動された仮想マシンに対して、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、請求項９記載の仮想マシン管理装置。
【請求項１２】
前記移動された仮想マシンにより、前記第２の命令セットに含まれる命令であって前記第１の命令セットに含まれない命令が前記第１の仮想マシン管理装置において実行された場合、前記実行された命令のエミュレーションを行なうエミュレーション部をさらにそなえ、
前記通知部は、前記移動された仮想マシンに対して前記第１の命令セットに関する情報を再度通知する、
ことを特徴とする、請求項８〜１１のいずれか１項記載の仮想マシン管理装置。
【請求項１３】
前記エミュレーション部は、前記実行された命令について以前にエミュレーションを行なっている場合、前記実行された命令を、前記第１の仮想マシン管理装置が実行可能な命令に変換する、
ことを特徴とする、請求項１２記載の仮想マシン管理装置。
【請求項１４】
第１の命令セットを用いて仮想マシンを制御する第１のコンピュータに、
第２の命令セットを用いて仮想マシンを制御する第２のコンピュータからの仮想マシンの移動を許容し、
前記第２のコンピュータから前記第１のコンピュータへ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知し、
移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する、
処理を前記第１のコンピュータに実行させることを特徴とする、仮想マシン管理プログラム。
【請求項１５】
前記通知は、前記第１の命令セットの水準及び前記第２の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対する、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示によって行なわれる、
ことを特徴とする、請求項１４記載の仮想マシン管理プログラム。
【請求項１６】
前記第１のコンピュータから前記第２のコンピュータへの仮想マシンの移動を許容し、
前記第１のコンピュータから前記第２のコンピュータへ移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第１の命令セットに関する情報から前記第２の命令セットに関する前記情報に変更する、
処理を前記第１のコンピュータに実行させ、
前記通知は、前記第１の仮想マシン管理装置から前記第２の仮想マシン管理装置へ移動される仮想マシンに対する、前記変更した命令セットに関する情報を認識させる前記指示によって行なわれる、
ことを特徴とする、請求項１５記載の仮想マシン管理プログラム。
【請求項１７】
前記通知は、前記移動された仮想マシンに対する、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示によって行なわれる、
ことを特徴とする、請求項１５記載の仮想マシン管理プログラム。
【請求項１８】
前記通知は、前記第１のコンピュータで動作する仮想マシンを制御する制御部により、前記移動される仮想マシンに対して割り込みを発生させて前記指示を行なうこと、並びに、前記制御部により、前記移動される仮想マシンにより登録された前記指示を示すハンドラを実行すること、の少なくとも一方により実行される、
ことを特徴とする、請求項１５〜１７のいずれか１項記載の仮想マシン管理プログラム。
【請求項１９】
前記移動された仮想マシンにより、前記第２の命令セットに含まれる命令であって前記第１の命令セットに含まれない命令が前記第１のコンピュータにおいて実行された場合、前記実行された命令のエミュレーションを行ない、
前記移動された仮想マシンに対して前記第１の命令セットに関する情報を再度通知する、
処理を前記第１のコンピュータに実行させることを特徴とする、請求項１４〜１８のいずれか１項記載の仮想マシン管理プログラム。
【請求項２０】
前記実行された命令について以前にエミュレーションを行なっている場合、前記第１のコンピュータで動作する仮想マシンを制御する制御部により、前記実行された命令を、前記第１のコンピュータが実行可能な命令に変換する、
処理を前記第１のコンピュータに実行させることを特徴とする、請求項１９記載の仮想マシン管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、仮想マシン管理方法，仮想マシン管理装置，および仮想マシン管理プログラムに関する。
【背景技術】
【０００２】
複数の仮想マシン（Virtual Machine；ＶＭ）を制御する複数の物理サーバ（物理マシン，情報処理装置）をそなえる情報処理システムでは、物理サーバの状態に応じて、物理サーバ間で仮想マシンを移動させるマイグレーションが行なわれることがある。なお、マイグレーションとしては、仮想マシンの動作を継続させたまま物理サーバ間で仮想マシンを移動するライブマイグレーションが挙げられる。【０００３】
マイグレーションを管理するサーバ又は管理者等（以下、単にサーバ等という）は、物理サーバが異なる仕様を持つ装置である場合、仮想マシンの移動先を決定する際に、移動先が仮想マシンの動作に不都合のある物理サーバであるか否かを確認することがある。
例えば、サーバ等は、仮想マシンの移動前後の物理サーバがそなえるCentral Processing Unit（ＣＰＵ）の違いによる、命令（拡張ＣＰＵ命令セット）のサポート有無を確認する。サーバ等は、確認の結果、サポートする拡張ＣＰＵ命令セットが異なる物理サーバ（ＣＰＵ）間では、仮想マシンのマイグレーションを行なわない。【０００４】
なお、拡張ＣＰＵ命令セットとは、ＣＰＵが共通して持つ命令とは別に、所定の処理を実行させるためにＣＰＵに実装される命令群である。以下、拡張ＣＰＵ命令セットを、単に拡張命令セット又は命令セットという場合がある。
ＣＰＵがサポートする拡張命令セットは、ＣＰＵの仕様等によってレベル（水準）が異なる。なお、古い世代のＣＰＵは、新しい世代のＣＰＵよりも拡張命令セットに含まれる命令が少ない、つまり低レベルであることが多い。【０００５】
ところで、サーバ等は、以下のように、サポートする拡張命令セットが異なる物理サーバ間で、強制的にマイグレーションを行なうこともできる。
サポートする拡張命令セットのレベルが低い物理サーバ（ＣＰＵ）から高い物理サーバ（ＣＰＵ）へ仮想マシンが移動される場合、仮想マシンは、移動前のＣＰＵがサポートしない命令は移動後のＣＰＵがサポートしていても利用しない。これは、仮想マシンが、起動したときの物理サーバ（ＣＰＵ）でサポートされる拡張命令セットに従って動作するためである。【０００６】
一方、サポートする拡張命令セットのレベルが高い物理サーバ（ＣＰＵ）から低い物理サーバ（ＣＰＵ）へ仮想マシンが移動される場合、仮想マシンは、今まで使用していた命令を利用できないことがある。例えば、仮想マシンが、移動前に存在していたが移動後に存在しなくなった拡張命令セットを実行すると、“Illegal Instruction”が発生し、その後、仮想マシンは停止してしまう。【０００７】
このため、サーバ等は、マイグレーションによる移動先の物理サーバを決定する際には、移動先のＣＰＵを確認し、移動可能か否かを判断する。そして、サーバ等は、少なくとも、移動前よりもサポートする拡張命令セットのレベルが低い物理サーバを移動先から除外する。
なお、仮想マシンが利用する拡張命令セットを、仮想マシンが実行され得る複数の物理サーバでサポートされる拡張命令セットのうちの、最低レベルの拡張命令セットに制限するハードウェアアシスト機構が知られている。ハードウェアアシスト機構によれば、仮想マシンはミニマムセットの拡張命令セットを利用するため、仮想マシンは、制限された結果のレベルと同レベルの命令セットをサポートするＶＭホスト間において移動が可能になる。従って、ＶＭ配置管理サーバ等は、移動前よりもサポートする拡張命令セットのレベルが低い物理サーバを移動先から除外せずに済む。なお、ハードウェアアシスト機構としては、例えばＩｎｔｅｌ（登録商標）の“FlexMigration”が挙げられる。【０００８】
また、関連する技術として、マイグレーション前後でＣＰＵが実装する命令セット間に共通な命令は、移動後のＣＰＵに実行させ、移動後のＣＰＵに存在しない命令は、命令エミュレータにエミュレーションさせる技術も知られている（例えば、特許文献１参照）。
さらに、関連する他の技術として、共有メモリに接続された第１及び第２スイッチングハイパーバイザ間で仮想マシンの実行を切り替える技術も知られている（例えば、特許文献２参照）。この技術では、仮想マシンは、仮想マシンに用いられるハードウェアアーキテクチャが実行の切り替え前と異なる場合、命令セットをシミュレートする。【０００９】
また、関連する他の技術として、ＣＰＵが、ゲストOperating System（ＯＳ）が実行できない所定の命令を検出した場合に、仮想マシンモニタが、所定の命令のエミュレーションコードを生成して、仮想マシンへ追加して記憶させる技術も知られている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０−２７２０５５号公報
【特許文献２】特開２０１１−１００４３１号公報
【特許文献３】特開２０１１−１２３６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述のように、サーバ等は、サポートする拡張命令セットに応じてマイグレーションの移動先の物理サーバを限定するため、システムの性能が制限されるという課題がある。例えば、サーバ等がマイグレーションを繰り返すと、サポートする拡張命令セットのレベルが低い物理サーバへ移動できる仮想マシンが順次減り、サポートする拡張命令セットのレベルが高い物理サーバへ、仮想マシンが集まってしまう場合がある。これにより、システムのリソースの利用効率が低下し、システムの性能が制限される。【００１２】
また、サポートする拡張命令セットのレベルが低い物理サーバから高い物理サーバへ仮想マシンが移動される場合、移動先に存在しない拡張命令セットは、移動先の物理サーバで利用されない。同様に、上記ハードウェアアシスト機構が用いられる場合、制限された拡張命令セットは、移動先の物理サーバで利用されない。つまり、これらの場合、移動先の物理サーバは、移動してきた仮想マシンの実行において、本来持っている機能を発揮することができない場合があるという課題がある。【００１３】
このように、物理サーバ間での仮想マシンの移動において、仮想マシンによるシステムの利用効率が低下する場合があるという課題がある。
なお、上述した関連する技術では、上記課題については考慮されていない。
１つの側面では、本発明は、情報処理装置間での仮想マシンの移動を許容する情報処理システムにおいて、仮想マシンによる情報処理システムの利用効率を向上させることを目的とする。【００１４】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１５】
本件の仮想マシン管理方法は、第１の命令セットを用いて仮想マシンを制御する第１の情報処理装置へ、第２の命令セットを用いて仮想マシンを制御する第２の情報処理装置からの仮想マシンの移動を許容し、前記第２の情報処理装置から前記第１の情報処理装置へ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知し、前記第１の情報処理装置は、移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する。
【発明の効果】
【００１６】
一実施形態によれば、情報処理装置間での仮想マシンの移動を許容する情報処理システムにおいて、仮想マシンによる情報処理システムの利用効率を向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】一実施形態に係る情報処理システムの構成例を示す図である。
【図２】図１に示す物理サーバのハードウェア構成例を示す図である。
【図３】図１に示す物理サーバの構成例を示す図である。
【図４】図３に示す物理サーバによるマイグレーション処理の一例を説明するフローチャートである。
【図５】図３に示す物理サーバによるマイグレーション処理の一例を説明する図である。
【図６】図３に示す物理サーバによる例外発生命令への処理の一例を説明するフローチャートである。
【図７】図３に示す物理サーバによる例外発生命令への処理の一例を説明する図である。
【図８】図１に示す物理サーバの構成の第１変形例を示す図である。
【図９】図８に示す物理サーバによるマイグレーション処理の一例を説明する図である。
【図１０】図１に示す物理サーバの構成の第２変形例を示す図である。
【図１１】図１０に示す物理サーバによる例外発生命令への処理の一例を説明する図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して実施の形態を説明する。
〔１〕一実施形態
〔１−１〕情報処理システムの構成
以下、図１を参照して、一実施形態の一例としての情報処理システム１の構成について説明する。
【００１９】
図１は、一実施形態に係る情報処理システム１の構成例を示す図である。
図１に示すように、一実施形態に係る情報処理システム１は、複数（例えば２つ）の物理サーバ２−１及び２−２（以下、物理サーバ２−１及び２−２を区別しない場合には、単に物理サーバ２という）、及び、ＶＭ配置管理サーバ３をそなえる。
情報処理システム１は、複数の物理サーバ２間で、仮想マシンのマイグレーション（例えばライブマイグレーション）を実行する。
【００２０】
物理サーバ（仮想マシン管理装置）２は、仮想マシンの管理を行なうサーバであり、仮想マシンは、物理サーバ２のＣＰＵやメモリ等のリソースを用いて動作する。物理サーバ２としては、Personal Computer（ＰＣ）やサーバ等のコンピュータ（情報処理装置）が挙げられる。
物理サーバ２−１は、Hypervisor（ＨＶ）４−１及び複数（例えば３つ）のＶＭ５−１〜５−３をそなえる。また、物理サーバ２−２は、ＨＶ４−２及び複数（例えば３つ）のＶＭ５−４〜５−６をそなえる。以下、ＨＶ４−１及び４−２を区別しない場合には、単にＨＶ４といい、ＶＭ５−１〜５−６を区別しない場合には、単にＶＭ５という。
【００２１】
ＨＶ（ハイパーバイザ，制御部）４は、ＶＭ５の制御を行なうＶＭホストとして動作するソフトウェアである。
また、ＨＶ４は、拡張ＣＰＵ命令セット（拡張命令セット，命令セット）を用いてＶＭ５を制御する他の物理サーバ２との間で、ＶＭ５の移動（移送）を許容する。本実施形態においては、ＨＶ４は、他の物理サーバ２のＣＰＵが用いる拡張命令セットのレベル（命令レベル，利用レベル）が、自物理サーバ２のＣＰＵが用いる拡張命令セットのレベルと異なる場合にも、ＶＭ５の移動を許容することができる。
【００２２】
ここで、拡張命令セットとしては、Ｉｎｔｅｌ  ｘ８６系ＣＰＵの場合、マルチメディア系命令の一例であるStreaming SIMD Extensions（ＳＳＥ）が挙げられる。ＳＳＥは、ＳＳＥ〜ＳＳＥ４等の順に機能が強化されている。
また、Ｉｎｔｅｌ  ｘ８６系ＣＰＵの拡張命令セットとして、暗号化系命令であるAdvanced Encryption Standard Instruction Set（ＡＥＳ−ＮＩ）等も挙げられる。
【００２３】
以下の説明で用いる拡張命令セットのレベルとは、ＣＰＵが利用可能なこれらの拡張命令セットの水準をいう。例えば、拡張命令セットがＳＳＥである場合、拡張命令セットのレベルとは、ＳＳＥ〜ＳＳＥ４等の水準をいう。
ＶＭ（仮想マシン）５は、ＨＶ４による制御の下、ＯＳ（ゲストＯＳ）の実行等の種々の処理を行なうソフトウェアである。
【００２４】
ＨＶ４及びＶＭ５の詳細については、後述する。
ＶＭ配置管理サーバ３は、物理サーバ２間でのマイグレーションを管理するサーバである。ＶＭ配置管理サーバ３は、複数の物理サーバ２の情報と、ＶＭ５の情報とを対応付けて管理し、情報処理システム１の管理者等からの指示に応じて、ＶＭ５のマイグレーションを行なう。ＶＭ配置管理サーバ３としては、ＰＣやサーバ等の情報処理装置が挙げられる。
【００２５】
また、ＶＭ配置管理サーバ３は、各物理サーバ２のＣＰＵがサポートする拡張命令セットに関する情報（少なくとも、レベル）を把握している。例えば、ＶＭ配置管理サーバ３は、情報処理システム１が起動したときや構成が変更されたとき等に、各物理サーバ２の拡張命令セットに関する情報を、各物理サーバ２又は管理者等から取得する。なお、拡張命令セットに関する情報とは、拡張命令セットのレベルのほか、拡張命令セットを特定する情報であってもよい。
【００２６】
なお、ＶＭ配置管理サーバ３は、マイグレーションを行なう際に、ＶＭ５の移動元の物理サーバ２（ＨＶ４）へ、移動先の物理サーバ２で利用可能な拡張命令セットに関する情報を通知することが好ましい。また、ＶＭ配置管理サーバ３は、マイグレーションを行なう際に、ＶＭ５の移動先の物理サーバ２（ＨＶ４）へ、移動されるＶＭ５が移動元の物理サーバ２で利用する拡張命令セットに関する情報を通知することが好ましい。
【００２７】
〔１−２〕物理サーバのハードウェア構成
次に、図２を参照して、物理サーバ２のハードウェア構成について説明する。図２は、図１に示す物理サーバ２のハードウェア構成例を示す図である。
物理サーバ２は、図２に示すように、ＣＰＵ２０ａ、メモリ２０ｂ、記憶部２０ｃ、インタフェース部２０ｄ、入出力部２０ｅ、記録媒体２０ｆ、及び読取部２０ｇをそなえる。
【００２８】
ＣＰＵ２０ａは、メモリ２０ｂ、記憶部２０ｃ、インタフェース部２０ｄ、入出力部２０ｅ、記録媒体２０ｆ、及び読取部２０ｇと接続され、種々の制御や演算を行なう演算処理装置（プロセッサ，処理部）である。ＣＰＵ２０ａは、メモリ２０ｂ、記憶部２０ｃ、記録媒体２０ｆ、読取部２０ｇに接続又は挿入された記録媒体２０ｈ、又は図示しないRead Only Memory（ＲＯＭ）等に格納されたプログラムを実行することにより、物理サーバ２における種々の機能（例えばＨＶ４及び複数のＶＭ５）を実現する。なお、ＣＰＵ２０ａに限らず、プロセッサとしては、Micro Processing Unit（ＭＰＵ）等の電子回路が用いられてもよい。
【００２９】
メモリ２０ｂは、種々のデータやプログラムを格納する記憶装置である。ＣＰＵ２０ａは、プログラムを実行する際に、メモリ２０ｂにデータやプログラムを格納し展開する。なお、メモリ２０ｂとしては、例えばRandom Access Memory（ＲＡＭ）等の揮発性メモリが挙げられる。
記憶部２０ｃは、例えばHard Disk Drive（ＨＤＤ）等の磁気ディスク装置、Solid State Drive（ＳＳＤ）等の半導体ドライブ装置、又はフラッシュメモリ等の不揮発性メモリ等の、種々のデータやプログラム等を格納する１以上のハードウェアである。記憶部２０ｃが有する記憶領域は、物理サーバ２、ＨＶ４、又はＶＭ５等により用いられる。
【００３０】
インタフェース部２０ｄは、図示しないルータ及びネットワークを介して接続されるホスト又はクライアント、ＶＭ配置管理サーバ３、又は、他の物理サーバ２との間の接続及び通信の制御を行なうコントローラである。インタフェース部２０ｄとしては、例えば、Local Area Network（ＬＡＮ）、ファイバチャネル（Fibre Channel；ＦＣ）等に準拠したインタフェースカードが挙げられる。
【００３１】
入出力部２０ｅは、例えばマウスやキーボード等の入力装置及びディスプレイやプリンタ等の出力装置の少なくとも一方を含んでよい。例えば入出力部２０ｅは、物理サーバ２（情報処理システム１）の管理者やＶＭ５のユーザ等による種々の作業に用いられる。
記録媒体２０ｆは、フラッシュメモリやＲＯＭ等の記憶装置であり、種々のデータやプログラムを記録する。読取部２０ｇは、光ディスクやUniversal Serial Bus（ＵＳＢ）メモリ等のコンピュータ読取可能な記録媒体２０ｈに記録されたデータやプログラムを読み出す装置である。
【００３２】
記録媒体２０ｆ、２０ｈの少なくとも一方には、一実施形態に係る物理サーバ２（ＨＶ４及びＶＭ５を含む）の機能を実現する仮想マシン管理プログラムが格納されてもよい。すなわち、ＣＰＵ２０ａは、記録媒体２０ｆ、又は読取部２０ｇを介して記録媒体２０ｈから出力された仮想マシン管理プログラムを、メモリ２０ｂ等の記憶装置に展開して実行することにより、物理サーバ２の機能を実現する。
【００３３】
なお、上述した各ハードウェアは、互いにバスを介して通信可能に接続される。例えば、ＣＰＵ２０ａ、メモリ２０ｂ、及びインタフェース部２０ｄは、システムバスに接続される。また、例えば、記憶部２０ｃ、入出力部２０ｅ、記録媒体２０ｆ、及び読取部２０ｇは、Input/Output（Ｉ／Ｏ）インタフェース等を介してシステムバスに接続される。なお、記憶部２０ｃは、ストレージバス（ケーブル）で、Disk Interface（ＤＩ）等のＩ／Ｏインタフェースに接続される。ストレージバスとしては、Small Computer System Interface（ＳＣＳＩ）、Serial Attached SCSI（ＳＡＳ）、ファイバチャネル、Serial Advanced Technology Attachment（ＳＡＴＡ）等に準拠したバスが挙げられる。
【００３４】
なお、物理サーバ２の上述したハードウェア構成は例示である。従って、物理サーバ２内でのハードウェアの増減や分割等は適宜行なわれてもよい。また、物理サーバ２間で異なる構成をそなえてもよい。
なお、ＶＭ配置管理サーバ３についても、物理サーバ２と同様のハードウェア構成をそなえることができる。
【００３５】
〔１−３〕物理サーバの機能構成
次に、図３を参照して、物理サーバ２の機能構成について説明する。図３は、図１に示す物理サーバ２の機能構成例を示す図である。
本実施形態に係る物理サーバ２は、ＣＰＵ２０ａの拡張命令セットのレベルが異なるＶＭホスト間でマイグレーションを実施することができる。なお、以下の説明では、物理サーバ２−１及び２−２の各々がそなえるＣＰＵ２０ａの拡張命令セットのレベルは、互いに異なるものとする。
【００３６】
物理サーバ２は、ソフトウェアの機能として、ＨＶ４に、再認識指示部４１、制限レベル管理部４２、及び拡張ＣＰＵ命令セットエミュレーション部４３をそなえ、ＶＭ５に、再認識部５１をそなえる。なお、これらの再認識指示部４１、制限レベル管理部４２、拡張ＣＰＵ命令セットエミュレーション部４３、及び再認識部５１は、ＣＰＵ２０ａが仮想マシン管理プログラムをメモリ２０ｂに展開して実行することにより実現される。なお、再認識部５１は、ＶＭ５が実行するＯＳの一機能として実装されてもよい。
【００３７】
また、物理サーバ２は、ハードウェアの機能として、ＣＰＵ２０ａに、命令セット制限部２０１をそなえる。
なお、ＶＭ５の再認識部５１は、ＶＭ５−１〜５−６の各々がそなえることができ、ＨＶ４、ＶＭ５、及びＣＰＵ２０ａの各機能は、物理サーバ２−１及び２−２の各々がそなえることができる。
【００３８】
〔１−３−１〕命令セット制限部の説明
命令セット制限部２０１は、ＶＭ５ごとに拡張命令セットの利用制限をかける機能であり、上述した“FlexMigration”等のハードウェアアシスト機構により実現される。
命令セット制限部２０１は、ＨＶ４からの指示に応じて、特定のＶＭ５が認識する拡張命令セットを、所定のレベルに制限することができる。例えば、ＨＶ４から、特定のＶＭ５に利用させる拡張命令セットをレベル２（ＳＳＥ２）にする旨の指示を受けると、命令セット制限部２０１は、ＣＰＵ２０ａがレベル４（ＳＳＥ４）をサポートしていても、当該ＶＭ５にはレベル２を通知する。つまり、命令セット制限部２０１は、特定のＶＭ５からの利用可能な拡張命令セットの問い合わせ（例えばＣＰＵＩＤ命令）に対して、利用可能な拡張命令セットがＳＳＥ２である旨の応答を行なう。
【００３９】
〔１−３−２〕再認識部の説明
再認識部５１は、自ＶＭ５がマイグレーションの対象である場合に、ＨＶ４から、移動先の物理サーバ２で利用可能な拡張命令セットに関する情報を通知されることで、アーキテクチャを再認識する。
ここで、ＯＳやアプリケーションは、利用可能な拡張命令セットを最大限使おうとすることが多い。例えば、ＯＳやアプリケーションは、物理サーバやＶＭにおける実行が開始されると、利用可能な拡張命令セットを判定して、判定した拡張命令セットを利用するライブラリやコンパイラ出力モード等の選択を行なう。そして、ＯＳやアプリケーションは、物理サーバやＶＭにおける実行が停止するまで、選択したライブラリやコンパイラ出力モード等を用いて動作する。
【００４０】
ＯＳやアプリケーションによるこれらの処理は、物理サーバ上で動作する場合及びＶＭ上で動作する場合で共通である。つまり、拡張命令セットの判定はＯＳやアプリケーションの実行が開始されたときに行なわれるため、ＶＭで実行されるＯＳやアプリケーションは、ライブマイグレーションにより、実行開始後に途中で拡張命令セットが変わることを想定していない。
【００４１】
そこで、再認識部５１は、ＨＶ４（再認識指示部４１）からの再認識指示に応じて、ＣＰＵ２０ａの命令セット制限部２０１から、自ＶＭ５がＨＶ４で利用可能な拡張命令セットに関する情報を取得する。例えば、再認識部５１は、ＣＰＵ２０ａがどの拡張命令セットをサポートするかを問い合わせるＣＰＵＩＤ命令を発行することにより、ＣＰＵ２０ａから利用可能な拡張命令セットに関する情報を取得する。
【００４２】
ＶＭ５（ＯＳ）は、再認識部５１により、ＨＶ４からの再認識指示に応じて再認識を行なうと、ＣＰＵ２０ａへ再認識後に指示する処理（コード）の切り替えを行なう。
例えば、ＶＭ５は、ＯＳが直接ハンドリングできるコード（例えばカーネルやライブラリ等）については、ＯＳにより使用コードの切り替えを行なう。また、ＶＭ５は、ＯＳが直接ハンドリングできないコード（例えばユーザコード等）については、ＯＳによりユーザプログラム等へ使用コードの切替要求を発行する。
【００４３】
以上のように、再認識部５１によれば、ＶＭ５（ＯＳ）は、実行が開始されたとき（例えばＨＶ４上での起動後）のみでなく、ＨＶ４から任意のタイミングで発行された再認識指示を受けたときに、アーキテクチャの再認識を行なうことができる。また、ＶＭ５は、利用可能な拡張命令セットを再認識することで、使用コードの切り替えを行なうことができるため、再認識した拡張命令セットを可能な限り有効に活用することができる。
【００４４】
〔１−３−３〕再認識指示部及び制限レベル管理部の説明
再認識指示部（通知部）４１は、マイグレーションにより移動されるＶＭ５に対して移動先の物理サーバ２で利用可能な拡張命令セットに関する情報を通知する。例えば、再認識指示部４１は、ＶＭ配置管理サーバ３からマイグレーションの移動対象のＶＭ５を通知されると、通知されたＶＭ５に対して、アーキテクチャの再認識を指示することで、移動後に利用可能な拡張命令セットに関する情報を通知する。これにより、ＨＶ４は、ＶＭ５に対して、マイグレーションが行なわれる際に拡張命令セットを再認識するトリガを与えることができる。
【００４５】
具体的には、再認識指示部４１は、ライブマイグレーションに際して、以下の（ａ）及び（ｂ）の少なくとも一方のタイミングで、ＶＭ５に再認識指示を発行する。
（ａ）ＶＭ５の移動後に再認識指示を発行し、拡張命令セットを切り替えさせる（ポスト切り替え方式）。
（ｂ）ＶＭ５の移動前に再認識指示を発行し、事前に拡張命令セットを切り替えさせる（プレ切り替え方式）。
【００４６】
なお、上記（ａ）の場合、再認識指示は、移動された（移動後の）ＶＭ５に対して、移動先の物理サーバ２のＨＶ４（再認識指示部４１）により発行される。
一方、上記（ｂ）の場合、再認識指示は、移動される（移動前の）ＶＭ５に対して、移動元の物理サーバ２のＨＶ４（再認識指示部４１）により発行される。なお、このとき、再認識指示部４１は、命令セット制限部２０１への指示を通じて、事前に、当該ＶＭ５が自物理サーバ２で利用する拡張命令セットに関する情報を、移動先で用いられる拡張命令セットに関する情報に変更する。ここで、拡張命令セットに関する情報とは、上述した拡張命令セットのレベルのほか、拡張命令セットを特定する情報であってもよい。
【００４７】
制限レベル管理部４２は、自ＨＶ４が実行するＶＭ５のレベルを管理するものである。例えば、制限レベル管理部４２は、自ＨＶ４が実行するＶＭ５と、命令セット制限部２０１により当該ＶＭ５に設定された拡張命令セットのレベルとが対応付けられたテーブルを管理する。なお、このテーブルはメモリ２０ｂ等に格納される。
制限レベル管理部４２は、自ＨＶ４の配下にＶＭ５が追加されたときや他のＨＶ４から移動してきたときに、当該ＶＭ５が利用する利用レベルを命令セット制限部２０１から取得して、テーブルに追加することによりテーブルを更新する。また、制限レベル管理部４２は、命令セット制限部２０１によりＶＭ５の利用レベルが変更されたとき、又は、自ＨＶ４から他のＨＶ４へＶＭ５が移動したときに、テーブルの当該ＶＭ５のエントリの利用レベルを変更、又は、当該エントリを削除する。
【００４８】
〔１−３−３−１〕再認識指示部による再認識指示の実行可否の判断手法
ここで、再認識指示部４１が、移動されるＶＭ５への再認識指示の発行を、上記（ａ）及び（ｂ）のいずれのタイミングで実行するかについて説明する。
再認識指示部４１は、制限レベル管理部４２が管理するテーブルと、ＶＭ配置管理サーバ３から通知される情報とに基づいて、再認識指示の発行タイミングを決定する。
【００４９】
具体的には、移動元の再認識指示部４１は、移動されるＶＭ５の利用レベルを、制限レベル管理部４２から取得して確認する。
また、移動元の再認識指示部４１は、上述のようにＶＭ配置管理サーバ３から通知された、移動先の物理サーバ２で利用可能な拡張命令セットに関する情報（例えば利用可能なレベル；利用可能レベル）を確認する。
【００５０】
そして、移動元の再認識指示部４１は、移動されるＶＭ５が、移動元での利用レベル及び移動先での利用可能レベルに基づいて、再認識指示の発行タイミングを決定する。
一例として、移動元の再認識指示部４１は、移動元での利用レベルが、移動先での利用可能レベルよりも高いと判断した場合、ＶＭ５の移動前に再認識指示を発行すると判断する。
【００５１】
上述のように、サポートする拡張命令セットのレベルが高い物理サーバ２から低い物理サーバ２へＶＭ５が移動される場合、ＶＭ５は、今まで使用していた命令を利用できないことがある。そこで、移動元の再認識指示部４１は、移動されるＶＭ５が利用する拡張命令セットがマイグレーションにより縮退されると判断すると、移動前に（事前に）、ＶＭ５の利用レベルを移動先での利用可能レベルまで引き下げるのである。
【００５２】
これにより、再認識指示部４１は、ＶＭ５が移動前に存在していたが移動後に存在しなくなった拡張命令セットを実行して、“例外”（例えば“Illegal Instruction”）を発生させてしまう確率を低減させることができる。
一方、移動元の再認識指示部４１は、移動元での利用レベルが、移動先での利用可能レベルよりも低いと判断した場合、移動前にはＶＭ５への再認識指示を行なわず、ＶＭ５の移動後に再認識指示を発行すると判断する。
【００５３】
つまり、移動されるＶＭ５が利用する拡張命令セットがマイグレーションにより拡張される場合、再認識指示部４１が、移動前にＶＭ５の利用レベルを移動先での利用可能レベルまで引き上げてしまうと、“例外”が発生する可能性がある。すなわち、移動前にレベルを引き上げた結果、ＶＭ５が、移動元には本来存在しない、移動先で利用可能な命令を実行してしまう可能性がある。
【００５４】
そこで、移動元の再認識指示部４１は、マイグレーションにより、移動されるＶＭ５が利用する拡張命令セットが拡張されると判断すると、移動前にはＶＭ５への再認識指示は行なわない。この場合、移動元の再認識指示部４１は、移動先の再認識指示部４１へ、移動されたＶＭ５に対する再認識指示の発行を要求してもよく、或いは、移動されるＶＭ５の移動前後のレベルの比較結果を通知してもよい。
【００５５】
なお、移動元の再認識指示部４１は、移動元での利用レベルが、移動先での利用可能レベルと同じである判断した場合、再認識指示の発行を行なわないと判断する。
以上のように、移動元の再認識指示部４１は、再認識指示の発行タイミングを決定する。
また、移動先の再認識指示部４１は、ＶＭ配置管理サーバ３によってライブマイグレーションによるＶＭ５の移動が実行されると、移動されたＶＭ５へ再認識指示を発行するか否かを判断する。この判断は、移動元の再認識指示部４１から、再認識指示の発行要求を受けたか否かによって行なわれてもよいし、移動されたＶＭ５の移動前後のレベルの比較結果を受け取った場合には、当該比較結果に基づいて行なわれてもよい。
【００５６】
なお、移動先の再認識指示部４１は、上述した移動元の再認識指示部４１と同様に、移動されたＶＭ５の移動前後のレベルを比較してもよい。
例えば、移動先の再認識指示部４１は、上述のようにＶＭ配置管理サーバ３から通知された、移動されたＶＭ５が移動元の物理サーバ２で利用していた拡張命令セットに関する情報（例えば利用レベル）を確認する。また、移動先の再認識指示部４１は、移動されたＶＭ５が自ＨＶ４での利用可能レベルを、制限レベル管理部４２から取得して確認する。そして、移動先の再認識指示部４１は、移動されたＶＭ５の移動元での利用レベルと、自ＨＶ４での利用可能レベルとを比較して、比較結果を得てもよい。
【００５７】
このように、移動先の再認識指示部４１は、自ＨＶ４で得たレベルの比較結果、又は、移動元から通知された比較結果に基づき、ＶＭ５の移動元での利用レベルが、自ＨＶ４での利用可能レベルよりも低いか（拡張されたか）否かを判断する。
そして、移動先の再認識指示部４１は、拡張されたと判断した場合、又は、移動元から再認識指示の発行要求を受けた場合、移動されたＶＭ５へ再認識指示を発行する。
【００５８】
なお、移動先の物理サーバ２のＣＰＵ２０ａは、移動されたＶＭ５に対して、移動先の物理サーバ２で利用可能な拡張命令セットを用いた制御を実行する。
以上のように、移動先の再認識指示部４１は、移動されたＶＭ５が移動元のＨＶ４で再認識を行なっていない場合に、移動されたＶＭ５へ再認識指示を発行する。
なお、移動元及び移動先の再認識指示部４１は、移動されるＶＭ５の移動元での利用レベルと移動先での利用可能レベルとを、互いにネゴシエーションを行なって交換（確認）してもよい。
【００５９】
また、上述した例では、再認識指示部４１は、移動されるＶＭ５の移動元での利用レベルと移動先の利用可能レベルとの大小の比較によって、再認識指示の発行タイミングを決定するものとして説明したが、これに限定されるものではない。
例えば、ＶＭ５は、上述のように、再認識指示を受けて再認識を行なうと、ＣＰＵ２０ａへ再認識後に指示する処理（コード）の切り替えを行なう。このとき、ＶＭ５は、少なくとも再認識に伴い利用できなくなった命令について、当該命令を含むコンパイル済みのコードを無効化し、利用可能な命令により再度コンパイルする処理等を行なう。このような処理は、例えば移動元のＨＶ４で実行される場合、ＶＭホスト（ＨＶ４）の負荷を増大させ、マイグレーションを含む各処理を遅延させる要因となり得る。
【００６０】
そこで、移動元の再認識指示部４１は、移動元での利用レベルが、移動先での利用可能レベルよりも高いと判断した場合であっても、ＶＭ５によるコード切替の処理負荷が高くなると推定される場合には、再認識指示の発行を行なわないようにしてもよい。この場合、移動元の再認識指示部４１は、移動先の再認識指示部４１へ、移動されたＶＭ５に対する再認識指示の発行を要求してもよく、移動元の再認識指示部４１で再認識指示を発行しない旨（理由等）を通知してもよい。
【００６１】
なお、再認識指示部４１は、例えば、移動元での利用レベルと移動先での利用可能レベルとの差が所定値よりも大きい場合に、ＶＭ５によるコード切替の処理負荷が高くなると推定することができる。これは、レベル差が大きい場合、移動先で利用できなくなる命令の数が多く、ＶＭ５により再コンパイルが行なわれるコードの数が増大すると考えられるためである。
【００６２】
以上のように、再認識指示部４１及び制限レベル管理部４２によれば、移動されるＶＭ５への再認識指示を、“例外”が発生しないように、又は／及びマイグレーションの処理を遅延させないように、移動前又は移動後に選択的に実行することができる。従って、情報処理システム１の安定性を向上させることができる。
〔１−３−３−２〕再認識指示部による再認識部への再認識指示手法
再認識指示部４１は、ＶＭ５の再認識部５１に対して、以下の（Ａ）〜（Ｄ）のいずれかの手法により、再認識指示を通知することができる。
・割り込みによる手法
（Ａ）予めＶＭ５側にアーキテクチャの再認識用の割り込みを設定（規定）する。再認識指示部４１（ＨＶ４）は、設定された割り込みを発生させる（割り込み注入（Interrupt Injection）を行なう）ことにより、ＶＭ５（再認識部５１）に対して割り込みが発生したと認識させる。
（Ｂ）ＨＶ４は、割り込み元として、ＶＭ５（ＯＳ）に仮想ハードウェア及びこの仮想ハードウェアのドライバを設定する。このドライバは、割り込みが発生すると、ＶＭ５（再認識部５１）に対して再認識指示が発行されたと認識させるように設定される。再認識指示部４１は、仮想ハードウェアからＶＭ５（ＯＳ）のドライバに割り込みを発生させる。
（Ｃ）ＨＶ４は、割り込み元として、ＶＭ５（ＯＳ）に、ＶＭ５（再認識部５１）に対して再認識指示が発行されたことを割り込み要因とする割り込みベクタを設定する。再認識指示部４１は、割り込みベクタにより割り込みを発生させる。
・ハンドラ登録による手法
（Ｄ）ＶＭ５は、ＯＳにアーキテクチャの再認識用のハンドラを登録し、ＨＶ４へ通知する。再認識指示部４１は、イベント（再認識指示の発行）に応じて、ＶＭ５から通知されたハンドラを実行し、ＶＭ５（再認識部５１）に対して再認識指示が発行されたと認識させる。
【００６３】
なお、上記（Ａ）〜（Ｄ）は例示であり、上述したものに限られず、再認識指示の手法としては、既知の種々の手法を用いることが可能である。
〔１−３−４〕拡張ＣＰＵ命令セットエミュレーション部の説明
拡張ＣＰＵ命令セットエミュレーション部（エミュレーション部）４３は、移動されたＶＭ５により、移動元の拡張命令セットに含まれる命令であって移動先の拡張命令セットに含まれない命令が実行された場合、実行された命令のエミュレーションを行なう。
【００６４】
つまり、拡張ＣＰＵ命令セットエミュレーション部４３は、再認識指示部４１により、移動前又は移動後に、移動されるＶＭ５に対して再認識指示が発行されたにもかかわらず、効果が得られなかった場合（“例外”が発生した場合）に実行される。
ＶＭ５へ再認識指示が発行されたにもかかわらず、“例外”が発生する場合としては、ＶＭ５（ＯＳ）が再認識指示を無視した場合のほか、ＶＭ５（ＯＳ）又はアプリケーション（ユーザプログラム）が再認識に対応できない場合が挙げられる。
【００６５】
具体的には、拡張ＣＰＵ命令セットエミュレーション部４３は、ＶＭ５で実行される命令を監視し、或るＶＭ５（例えば移動されたＶＭ５）により発行された命令が“例外”を発生させたことを認識すると、当該命令をトラップする。
また、拡張ＣＰＵ命令セットエミュレーション部４３は、“例外”を発生させた命令（例外発生命令）を実行したＶＭ５の移動元での拡張命令セットの命令レベルを確認し、当該命令が移動元で利用可能な命令であるか否かを判断する。なお、拡張ＣＰＵ命令セットエミュレーション部４３は、例外発生命令を発行したＶＭ５の移動元のＨＶ４及び命令レベルを、例えば当該命令を発行したＶＭ５に問い合わせることで特定してもよい。或いは、ＨＶ４は、マイグレーションのときに取得した情報をメモリ２０ｂ等に保存しておき、拡張ＣＰＵ命令セットエミュレーション部４３が、メモリ２０ｂ等から取得してもよい。
【００６６】
拡張ＣＰＵ命令セットエミュレーション部４３は、例外発生命令が移動元で利用可能な命令ではないと判断した場合、当該命令による“例外”の発生は、ＶＭ５による再認識の未実行に起因するものではないと判断し、通常の命令例外処理に移行する。
一方、拡張ＣＰＵ命令セットエミュレーション部４３は、例外発生命令が移動元で利用可能な命令であると判断した場合、当該命令のエミュレーションを実行する。
【００６７】
また、拡張ＣＰＵ命令セットエミュレーション部４３は、例外発生命令のエミュレーションを実行すると、ＶＭ５に対して、再度の再認識指示を発行するか否かを判断する。この判断は、例えば、例外発生命令による“例外”が所定回数以上発生したか否かにより行なわれてもよい。
例えば、拡張ＣＰＵ命令セットエミュレーション部４３は、例外発生命令による“例外”が所定回数以上発生し、再度の再認識指示を発行すると判断した場合、再認識指示部４１へ、ＶＭ５に対する再度の再認識指示を要求する。
【００６８】
なお、再度の再認識指示においては、再認識指示部４１は、ＶＭ５に対して、重要度に応じて例外発生命令の発行元（例えばユーザプログラム）を停止させることを要求（問い合せ）してもよい。
そして、拡張ＣＰＵ命令セットエミュレーション部４３は、再認識指示部４１へ再度の再認識指示を要求すると、又は、再度の再認識指示を発行しないと判断すると、例外”からの復帰を行なう。
【００６９】
以上のように、拡張ＣＰＵ命令セットエミュレーション部４３によれば、移動先のＶＭホスト（ＨＶ４）において実装されていない拡張命令セットの命令が発行された場合でも、“例外”の発生を抑止することができる。また、拡張ＣＰＵ命令セットエミュレーション部４３によれば、再認識指示部４１へＶＭ５に対する再度の再認識指示が要求されるため、例外発生命令の発生確率を低減させることができる。
【００７０】
なお、拡張ＣＰＵ命令セットエミュレーション部４３は、情報処理システム１がそなえる全ての物理サーバ２（ＣＰＵ２０ａ）が実行する拡張命令セットをエミュレーションできるように、全てのＣＰＵ２０ａの命令に対応可能であることが好ましい。
〔１−４〕動作例
次に、図４〜図７を参照して、上述の如く構成された一実施形態の一例としての情報処理システム１における物理サーバ２の動作例を説明する。
【００７１】
図４は、図３に示す物理サーバ２によるマイグレーション処理の一例を説明するフローチャートであり、図５は、図３に示す物理サーバ２によるマイグレーション処理の一例を説明する図である。
図６は、図３に示す物理サーバ２による例外発生命令への処理の一例を説明するフローチャートであり、図７は、図３に示す物理サーバ２による例外発生命令への処理の一例を説明する図である。
【００７２】
なお、図５は、ＶＭ５の移動元及び移動先の物理サーバ２の双方の処理の説明に共通して用いる。また、図７は、ＶＭ５の移動先の物理サーバ２の処理の説明に用いる。
〔１−４−１〕マイグレーション処理
はじめに、図４及び図５を参照して、物理サーバ２によるマイグレーション（ライブマイグレーション）処理について説明する。
【００７３】
ＶＭ配置管理サーバ３からＶＭ５の移動元（移送元）のＨＶ４へ、マイグレーションの実施（再認識指示の要求）が通知されると（図５の矢印（ｉ）参照）、再認識指示部４１により、移動対象（移送対象）のＶＭ５の利用レベルが確認される（図４のステップＳ１）。このとき、再認識指示部４１は、制限レベル管理部４２から移動対象のＶＭ５の利用レベルを取得する（図５の矢印（ii）参照）。
【００７４】
次いで、図４に示すように、再認識指示部４１により、移動先（移送先）のＶＭホスト（ＨＶ４）での利用可能レベルが確認される（ステップＳ２）。
そして、再認識指示部４１により、移動前にＶＭ５による拡張命令セットの利用レベルの再認識を実施するか否かが判断される（ステップＳ３）。再認識指示部４１により、例えば、移動されるＶＭ５が利用する拡張命令セットがマイグレーションにより縮退されると判断された場合、移動前の再認識を実施すると判断され（ステップＳ３のＹｅｓルート）、処理がステップＳ４に移行する。
【００７５】
ステップＳ４では、再認識指示部４１により、移動されるＶＭ５に対して、移動前の再認識指示が発行され、処理がステップＳ５に移行する。なお、このとき、再認識指示部４１は、ＣＰＵ２０ａの命令セット制限部２０１へ、移動対象のＶＭ５の利用レベルを移動先での利用可能レベルに変更させる指示を行なう（図５の矢印（iii）参照）。そして、再認識指示部４１は、移動対象のＶＭ５の再認識部５１へ、変更された拡張命令セット（利用レベル）を再認識させるべく、再認識指示を発行する（図５の矢印（iv）参照）。
【００７６】
一方、再認識指示部４１により、例えば、移動されるＶＭ５が利用する拡張命令セットがマイグレーションにより拡張される、又は、利用レベルの変更がないと判断された場合、移動前の再認識を実施しないと判断される（ステップＳ３のＮｏルート）。そして、処理がステップＳ５に移行する。
ステップＳ５では、ＶＭ配置管理サーバ３、並びに、移動元及び移動先の物理サーバ２により、ライブマイグレーションによるＶＭ５の移動が実行される。
【００７７】
ライブマイグレーションが完了し、ＶＭ配置管理サーバ３により完了が通知されると（図５の矢印（ｉ）参照）、移動先の再認識指示部４１により、移動後にＶＭ５による拡張命令セットの利用レベルの再認識を実施するか否かが判断される（ステップＳ６）。なお、この判断は、上述の如く、移動元の再認識指示部４１からの再認識指示の発行要求の有無、移動元から受信した移動前後のレベルの比較結果、又は、移動先の再認識指示部４１による移動前後のレベルの比較結果に基づいて行なわれてもよい。
【００７８】
移動先の再認識指示部４１により、移動後の再認識を実施すると判断された場合（ステップＳ６のＹｅｓルート）、処理がステップＳ７に移行する。
ステップＳ７では、再認識指示部４１により、移動されたＶＭ５に対して、移動後の再認識指示が発行され、処理が終了する。なお、このとき、再認識指示部４１は、移動対象のＶＭ５の再認識部５１へ、移動先のＶＭホストの拡張命令セット（利用レベル）を再認識させるべく、再認識指示を発行する（図５の矢印（iv）参照）。
【００７９】
一方、再認識指示部４１により、移動後の再認識を実施しないと判断された場合（ステップＳ６のＮｏルート）、処理が終了する。
なお、上述の如く、移動元及び移動先の再認識指示部４１は、ステップＳ１〜Ｓ３及びＳ６において、移動されるＶＭ５の移動元での利用レベルと移動先での利用可能レベルとを、互いにネゴシエーションを行なって交換（確認）してもよい。
【００８０】
以上のように、第１実施形態に係る物理サーバ２によれば、ＶＭ５が、移動前後でアーキテクチャの再認識を行なうことができるため、異なる拡張命令セットを適用する物理サーバ２にＶＭ５を移動させることができる。また、ＶＭ５が移動先で適用される拡張命令セットに対応することができるため、移動先の拡張命令セットを制限せずに済み、ＶＭ５は、各ＶＭホスト（ＨＶ４）において拡張命令セットの機能を最大限利用することができる。
【００８１】
従って、物理サーバ２間でのＶＭ５の移動を許容する情報処理システム１において、ＶＭ５による情報処理システム１の利用効率を向上させることができる。
〔１−４−２〕例外発生命令への処理
次に、図６及び図７を参照して、物理サーバ２による例外発生命令への処理について説明する。
【００８２】
ＶＭ５により命令が発行されると（図７の矢印（ｖ）参照）、拡張ＣＰＵ命令セットエミュレーション部４３により、発行された命令が監視される。ＶＭ５から発行された命令による“例外”が発生すると（図６のステップＳ１１）、拡張ＣＰＵ命令セットエミュレーション部４３により、例外発生命令が確認される（ステップＳ１２）。
また、拡張ＣＰＵ命令セットエミュレーション部４３により、例外発生命令を発行したＶＭ５の移動元が特定され、移動元で利用可能な命令レベルが確認される（ステップＳ１３）。
【００８３】
そして、拡張ＣＰＵ命令セットエミュレーション部４３により、例外発生命令が移動元の命令レベルで利用可能か否かが判定される（ステップＳ１４）。例外発生命令が移動元の命令レベルで利用できない場合（ステップＳ１４のＮｏルート）、拡張ＣＰＵ命令セットエミュレーション部４３により、通常の命令例外処理が実行され（ステップＳ１５）、処理がステップＳ１７に移行する。
【００８４】
一方、例外発生命令が移動元の命令レベルで利用可能な場合（ステップＳ１４のＹｅｓルート）、拡張ＣＰＵ命令セットエミュレーション部４３により、当該命令のエミュレーションが実行され（ステップＳ１６）、処理がステップＳ１７に移行する。なお、ステップＳ１６では、例外発生命令のエミュレーションがＣＰＵ２０ａにより実行される（図７の矢印（vi）参照）。
【００８５】
ステップＳ１７では、拡張ＣＰＵ命令セットエミュレーション部４３により、ＶＭ５に対する再度の再認識を実行するか否かが判断される。なお、この判断は、例えば、例外発生命令による“例外”が所定回数以上発生したか否かに基づき行なわれる。再度の再認識を実行すると判断された場合（ステップＳ１７のＹｅｓルート）、拡張ＣＰＵ命令セットエミュレーション部４３により、再認識指示部４１へ、再度の再認識指示の発行が要求される（ステップＳ１８，図７の矢印（vii）参照）。なお、再認識指示部４１は、再度の再認識指示の発行要求を受けると、対象のＶＭ５へ、再認識指示を発行する（図７の矢印（viii）参照）。そして、処理がステップＳ１９へ移行する。
【００８６】
一方、ステップＳ１７において、再度の再認識を実行しないと判断された場合（ステップＳ１７のＮｏルート）、処理がステップＳ１９へ移行する。
ステップＳ１９では、拡張ＣＰＵ命令セットエミュレーション部４３により、例外発生命令について、“例外”からの復帰が行なわれ、処理が終了する。
〔２〕第１変形例
次に、図８及び図９を参照して、一実施形態の第１変形例について説明する。
【００８７】
図８は、図１に示す物理サーバ２の構成の第１変形例を示す図であり、図９は、図８に示す物理サーバ２’によるマイグレーション処理の一例を説明する図である。
図８に示すように、第１変形例に係る物理サーバ２’は、図３に示す物理サーバ２と比較して、ＨＶ４’が命令セット制限部４４をさらにそなえるとともに、ＣＰＵ２０ａ’が命令セット制限部２０１をそなえていない点が異なる。
【００８８】
なお、図８において、図３に示す符号と同一の符号は、図３に示す構成と同一又は略同一のため、重複した説明は省略する。また、図９において、図５に示す符号と同一の符号は、図５に示す処理と同一又は略同一のため、重複した説明は省略する。
命令セット制限部４４は、命令セット制限部２０１と同様の機能を、ＨＶ４’（ソフトウェア）により実現する。すなわち、命令セット制限部４４は、再認識指示部４１からの拡張命令セットの利用レベルの変更要求に応じて、ＶＭ５ごとに拡張命令セットの利用制限をかけることができる（図９の矢印（iii’）参照）。
【００８９】
また、命令セット制限部４４は、特定のＶＭ５（ＯＳ）からの利用可能な拡張命令セットの問い合わせ（例えばＣＰＵＩＤ命令）に対して、利用可能な拡張命令セットに関する情報の応答を行なう。
例えば、図３に示すＨＶ４は、ＶＭ５の再認識部５１からＣＰＵＩＤ命令等の拡張命令セットに関する情報の取得要求を受信すると、当該要求をＣＰＵ２０ａの命令セット制限部２０１へ渡し、命令セット制限部２０１からの応答を再認識部５１へ返す。
【００９０】
一方、図８に示すＨＶ４’は、再認識部５１からＣＰＵＩＤ命令等の拡張命令セットに関する情報の取得要求を受信すると、インターセプトを行ない、ＣＰＵ２０ａ’への転送を抑止し、当該取得要求を命令セット制限部４４へ渡す。そして、ＨＶ４’は、命令セット制限部４４からの応答を、ＣＰＵ２０ａ’からの応答として再認識部５１へ返す。
このように、一実施形態の第１変形例に係る物理サーバ２’によれば、一実施形態と同様の効果を奏することができる。
【００９１】
また、物理サーバ２’によれば、ＣＰＵ２０ａが命令セット制限部２０１をそなえていない場合にも、ＨＶ４’（命令セット制限部４４）によるソフトウェアの処理によって、命令セット制限部２０１と同様の機能を実現することができ、利便性が高い。
〔３〕第２変形例
次に、図１０及び図１１を参照して、一実施形態の第２変形例について説明する。
【００９２】
図１０は、図１に示す物理サーバ２の構成の第２変形例を示す図であり、図１１は、図１０に示す物理サーバ２”による例外発生命令への処理の一例を説明する図である。
図１０に示すように、第２変形例に係る物理サーバ２”は、図３に示す物理サーバ２と比較して、拡張ＣＰＵ命令セットエミュレーション部４３の代わりに、ＨＶ４”が拡張ＣＰＵ命令セット変換部４５をそなえる点が異なる。
【００９３】
なお、図１０において、図３に示す符号と同一の符号は、図３に示す構成と同一又は略同一のため、重複した説明は省略する。また、図１１において、図７に示す符号と同一の符号は、図７に示す処理と同一又は略同一のため、重複した説明は省略する。
拡張ＣＰＵ命令セット変換部（エミュレーション部）４５は、拡張ＣＰＵ命令セットエミュレーション部４３と同様に、トラップした例外発生命令のエミュレーションを行なうことができる。
【００９４】
また、拡張ＣＰＵ命令セット変換部４５は、ＶＭ５により実行された例外発生命令について以前にエミュレーションを行なっている場合、当該命令を、ＣＰＵ２０ａが実行可能な命令に変換する（コードを書き換える）。
例えば、ＨＶ４による命令のエミュレーションの処理時間は、ＣＰＵ２０ａによる命令の処理時間の１０倍以上となるため、エミュレーションの実行頻度の増加は、処理遅延の要因となる。また、ＨＶ４”によりトラップが行なわれるとＣＰＵ２０ａの動作モードが変わるため、トラップの実行頻度の増加も、処理遅延の要因となる。
【００９５】
そこで、拡張ＣＰＵ命令セット変換部４５は、以前にエミュレーションを行なった例外発生命令については、エミュレーションに代えて、例外発生命令の変換を行なうことにより、エミュレーション及びトラップの実行頻度を低下させる。
具体的には、拡張ＣＰＵ命令セット変換部４５は、例外発生命令を確認し（図１１の矢印（ｖ’）参照）、以前にエミュレーションを行なっていると判断すると、以下の（Ｉ）〜（III）のいずれかの手法により、例外発生命令の変換を行なう。
（Ｉ）拡張ＣＰＵ命令セット変換部４５は、例外発生命令を、ＣＰＵ２０ａが実行可能なコードに置き換える（バイナリパッチをあてる）。
（II）拡張ＣＰＵ命令セット変換部４５は、例外発生命令を、代わりの処理へのジャンプに置き換え、ジャンプ先に、ＣＰＵ２０ａが実行可能な処理とジャンプ元へのリターンとを記述する。
（III）拡張ＣＰＵ命令セット変換部４５は、メモリ２０ｂ上に展開された、例外発生命令を含むプログラムの命令内容をスキャンし、禁止命令をＣＰＵ２０ａが実行可能な命令に書き換えるコンパイル（バイナリコンパイル）を行なう。
【００９６】
そして、拡張ＣＰＵ命令セット変換部４５は、上記（Ｉ）〜（III）のいずれかの手法により変換した命令をＣＰＵ２０ａへ渡す（図１１の矢印（vi’）参照）。
なお、上記（Ｉ）〜（III）は例示であり、上述したものに限られず、例外発生命令の変換処理としては、既知の種々の手法を用いることが可能である。
このように、一実施形態の第２変形例に係る物理サーバ２”によれば、一実施形態と同様の効果を奏することができる。
【００９７】
また、物理サーバ２”によれば、エミュレーション及びトラップの実行頻度を低下させることができるため、物理サーバ２”での処理遅延を緩和させることができ、情報処理システム１の性能を向上させることができる。
〔４〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【００９８】
例えば、一実施形態、並びに、第１及び第２変形例に係る情報処理システム１は、２つの物理サーバ２〜２”、及び、３つのＶＭ５をそなえるものとして説明したが、これに限定されるものではなく、任意の数の物理サーバ２〜２”及びＶＭ５をそなえてよい。
また、上述した一実施形態、並びに、第１及び第２変形例に係る物理サーバ２〜２”の機能は、任意に組み合わせてもよい。
【００９９】
なお、一実施形態、並びに、第１及び第２変形例に係る物理サーバ２〜２”の各種機能の全部もしくは一部は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のプログラムを実行することによって実現されてもよい。
そのプログラムは、例えばフレキシブルディスク、ＣＤ、ＤＶＤ、ブルーレイディスク等のコンピュータ読取可能な記録媒体（例えば図２に示す記録媒体２０ｈ）に記録された形態で提供される。なお、ＣＤとしては、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
【０１００】
ここで、コンピュータとは、ハードウェアとＯＳとを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、一実施形態、並びに、第１及び第２変形例に係る物理サーバ２〜２”の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【符号の説明】
【０１０１】
１    情報処理システム
２，２’，２”，２−１，２−２    物理サーバ（情報処理装置，仮想マシン管理装置）
３    ＶＭ配置管理サーバ
４，４’，４”，４−１，４−２    ＨＶ（ハイパーバイザ，制御部）
５，５−１〜５−６    ＶＭ（仮想マシン）
２０ａ，２０ａ’    ＣＰＵ（プロセッサ，処理部）
２０ｂ    メモリ
２０ｃ    記憶部
２０ｄ    インタフェース部
２０ｅ    入出力部
２０ｆ，２０ｈ    記録媒体
２０ｇ    読取部
４１    再認識指示部
４２    制限レベル管理部
４３    拡張ＣＰＵ命令セットエミュレーション部（エミュレーション部）
４４，２０１    命令セット制限部
４５    拡張ＣＰＵ命令セット変換部（エミュレーション部）
５１    再認識部
【図１】
2015001615.tif 000003
【図２】
2015001615.tif 000004
【図３】
2015001615.tif 000005
【図４】
2015001615.tif 000006
【図５】
2015001615.tif 000007
【図６】
2015001615.tif 000008
【図７】
2015001615.tif 000009
【図８】
2015001615.tif 000010
【図９】
2015001615.tif 000011
【図１０】
2015001615.tif 000012
【図１１】
2015001615.tif 000013
【手続補正書】
【提出日】平成28年2月26日(2016.2.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の命令セットを用いて仮想マシンを制御する第１の情報処理装置へ、第２の命令セットを用いて仮想マシンを制御する第２の情報処理装置からの仮想マシンの移動を許容し、
前記第２の情報処理装置から前記第１の情報処理装置へ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知し、
前記第１の情報処理装置は、移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する、
ことを特徴とする、仮想マシン管理方法。
【請求項２】
前記通知は、前記第１の命令セットの水準及び前記第２の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対する、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示によって行なわれる、
ことを特徴とする、請求項１記載の仮想マシン管理方法。
【請求項３】
前記通知において、前記第２の情報処理装置は、
前記移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第２の命令セットに関する情報から前記第１の命令セットに関する前記情報に変更し、
前記移動される仮想マシンに対して、前記変更した命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、請求項２記載の仮想マシン管理方法。
【請求項４】
前記通知において、前記第１の情報処理装置は、
前記移動された仮想マシンに対して、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、請求項２記載の仮想マシン管理方法。
【請求項５】
前記第１の情報処理装置は、
前記移動された仮想マシンにより、前記第２の命令セットに含まれる命令であって前記第１の命令セットに含まれない命令が前記第１の情報処理装置において実行された場合、前記実行された命令のエミュレーションを行ない、
前記移動された仮想マシンに対して前記第１の命令セットに関する情報を再度通知する、
ことを特徴とする、請求項１〜４のいずれか１項記載の仮想マシン管理方法。
【請求項６】
前記第１の情報処理装置は、前記実行された命令について以前にエミュレーションを行なっている場合、前記実行された命令を、前記第１の情報処理装置が実行可能な命令に変換する、
ことを特徴とする、請求項５記載の仮想マシン管理方法。
【請求項７】
第１の命令セットを用いて仮想マシンを制御する第１の仮想マシン管理装置であって、
第２の命令セットを用いて仮想マシンを制御する第２の仮想マシン管理装置からの仮想マシンの移動を許容する制御部をそなえ、
前記制御部は、前記第２の仮想マシン管理装置から前記第１の仮想マシン管理装置へ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知する通知部をそなえるとともに、
移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する処理部をさらにそなえる、
ことを特徴とする、仮想マシン管理装置。
【請求項８】
第１の命令セットを用いて仮想マシンを制御する第１のコンピュータに、
第２の命令セットを用いて仮想マシンを制御する第２のコンピュータからの仮想マシンの移動を許容し、
前記第２のコンピュータから前記第１のコンピュータへ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知し、
移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する、
処理を前記第１のコンピュータに実行させることを特徴とする、仮想マシン管理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
ここで、コンピュータとは、ハードウェアとＯＳとを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、一実施形態、並びに、第１及び第２変形例に係る物理サーバ２〜２”の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
〔５〕付記
以上の実施形態、並びに、第１及び第２変形例に関し、更に以下の付記を開示する。
（付記１）
第１の命令セットを用いて仮想マシンを制御する第１の情報処理装置へ、第２の命令セットを用いて仮想マシンを制御する第２の情報処理装置からの仮想マシンの移動を許容し、
前記第２の情報処理装置から前記第１の情報処理装置へ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知し、
前記第１の情報処理装置は、移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する、
ことを特徴とする、仮想マシン管理方法。
（付記２）
前記通知は、前記第１の命令セットの水準及び前記第２の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対する、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示によって行なわれる、
ことを特徴とする、付記１記載の仮想マシン管理方法。
（付記３）
前記通知において、前記第２の情報処理装置は、
前記移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第２の命令セットに関する情報から前記第１の命令セットに関する前記情報に変更し、
前記移動される仮想マシンに対して、前記変更した命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、付記２記載の仮想マシン管理方法。
（付記４）
前記通知において、前記第１の情報処理装置は、
前記移動された仮想マシンに対して、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、付記２記載の仮想マシン管理方法。
（付記５）
前記通知は、前記第１の情報処理装置で動作する仮想マシンを制御する第１の制御部又は前記第２の情報処理装置で動作する仮想マシンを制御する第２の制御部が、前記移動される仮想マシンに対して割り込みを発生させて前記指示を行なうこと、並びに、前記第１又は第２の制御部が、前記移動される仮想マシンにより登録された前記指示を示すハンドラを実行すること、の少なくとも一方により行なわれる、
ことを特徴とする、付記２〜４のいずれか１項記載の仮想マシン管理方法。
（付記６）
前記第１の情報処理装置は、
前記移動された仮想マシンにより、前記第２の命令セットに含まれる命令であって前記第１の命令セットに含まれない命令が前記第１の情報処理装置において実行された場合、前記実行された命令のエミュレーションを行ない、
前記移動された仮想マシンに対して前記第１の命令セットに関する情報を再度通知する、
ことを特徴とする、付記１〜５のいずれか１項記載の仮想マシン管理方法。
（付記７）
前記第１の情報処理装置は、前記実行された命令について以前にエミュレーションを行なっている場合、前記実行された命令を、前記第１の情報処理装置が実行可能な命令に変換する、
ことを特徴とする、付記６記載の仮想マシン管理方法。
（付記８）
第１の命令セットを用いて仮想マシンを制御する第１の仮想マシン管理装置であって、
第２の命令セットを用いて仮想マシンを制御する第２の仮想マシン管理装置からの仮想マシンの移動を許容する制御部をそなえ、
前記制御部は、前記第２の仮想マシン管理装置から前記第１の仮想マシン管理装置へ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知する通知部をそなえるとともに、
移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する処理部をさらにそなえる、
ことを特徴とする、仮想マシン管理装置。
（付記９）
前記通知部は、前記第１の命令セットの水準及び前記第２の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対して、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示を行なう、
ことを特徴とする、付記８記載の仮想マシン管理装置。
（付記１０）
前記制御部は、前記第１の仮想マシン管理装置から前記第２の仮想マシン管理装置への仮想マシンの移動を許容し、
前記第１の仮想マシン管理装置から前記第２の仮想マシン管理装置へ移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第１の命令セットに関する情報から前記第２の命令セットに関する前記情報に変更する命令セット制限部をさらにそなえ、
前記通知部は、前記第１の仮想マシン管理装置から前記第２の仮想マシン管理装置へ移動される仮想マシンに対して、前記変更した命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、付記９記載の仮想マシン管理装置。
（付記１１）
前記通知部は、前記移動された仮想マシンに対して、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、付記９記載の仮想マシン管理装置。
（付記１２）
前記移動された仮想マシンにより、前記第２の命令セットに含まれる命令であって前記第１の命令セットに含まれない命令が前記第１の仮想マシン管理装置において実行された場合、前記実行された命令のエミュレーションを行なうエミュレーション部をさらにそなえ、
前記通知部は、前記移動された仮想マシンに対して前記第１の命令セットに関する情報を再度通知する、
ことを特徴とする、付記８〜１１のいずれか１項記載の仮想マシン管理装置。
（付記１３）
前記エミュレーション部は、前記実行された命令について以前にエミュレーションを行なっている場合、前記実行された命令を、前記第１の仮想マシン管理装置が実行可能な命令に変換する、
ことを特徴とする、付記１２記載の仮想マシン管理装置。
（付記１４）
第１の命令セットを用いて仮想マシンを制御する第１のコンピュータに、
第２の命令セットを用いて仮想マシンを制御する第２のコンピュータからの仮想マシンの移動を許容し、
前記第２のコンピュータから前記第１のコンピュータへ移動される仮想マシンに対して前記第１の命令セットに関する情報を通知し、
移動された前記仮想マシンに対して、前記第１の命令セットを用いた制御を実行する、
処理を前記第１のコンピュータに実行させることを特徴とする、仮想マシン管理プログラム。
（付記１５）
前記通知は、前記第１の命令セットの水準及び前記第２の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対する、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示によって行なわれる、
ことを特徴とする、付記１４記載の仮想マシン管理プログラム。
（付記１６）
前記第１のコンピュータから前記第２のコンピュータへの仮想マシンの移動を許容し、
前記第１のコンピュータから前記第２のコンピュータへ移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第１の命令セットに関する情報から前記第２の命令セットに関する前記情報に変更する、
処理を前記第１のコンピュータに実行させ、
前記通知は、前記第１のコンピュータから前記第２のコンピュータへ移動される仮想マシンに対する、前記変更した命令セットに関する情報を認識させる前記指示によって行なわれる、
ことを特徴とする、付記１５記載の仮想マシン管理プログラム。
（付記１７）
前記通知は、前記移動された仮想マシンに対する、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示によって行なわれる、
ことを特徴とする、付記１５記載の仮想マシン管理プログラム。
（付記１８）
前記通知は、前記第１のコンピュータで動作する仮想マシンを制御する制御部により、前記移動される仮想マシンに対して割り込みを発生させて前記指示を行なうこと、並びに、前記制御部により、前記移動される仮想マシンにより登録された前記指示を示すハンドラを実行すること、の少なくとも一方により実行される、
ことを特徴とする、付記１５〜１７のいずれか１項記載の仮想マシン管理プログラム。
（付記１９）
前記移動された仮想マシンにより、前記第２の命令セットに含まれる命令であって前記第１の命令セットに含まれない命令が前記第１のコンピュータにおいて実行された場合、前記実行された命令のエミュレーションを行ない、
前記移動された仮想マシンに対して前記第１の命令セットに関する情報を再度通知する、
処理を前記第１のコンピュータに実行させることを特徴とする、付記１４〜１８のいずれか１項記載の仮想マシン管理プログラム。
（付記２０）
前記実行された命令について以前にエミュレーションを行なっている場合、前記第１のコンピュータで動作する仮想マシンを制御する制御部により、前記実行された命令を、前記第１のコンピュータが実行可能な命令に変換する、
処理を前記第１のコンピュータに実行させることを特徴とする、付記１９記載の仮想マシン管理プログラム。
【国際調査報告】
2015001615.tif 000014
2015001615.tif 000015