JPWO2015001615A1 - 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム - Google Patents

仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム Download PDF

Info

Publication number
JPWO2015001615A1
JPWO2015001615A1 JP2015524935A JP2015524935A JPWO2015001615A1 JP WO2015001615 A1 JPWO2015001615 A1 JP WO2015001615A1 JP 2015524935 A JP2015524935 A JP 2015524935A JP 2015524935 A JP2015524935 A JP 2015524935A JP WO2015001615 A1 JPWO2015001615 A1 JP WO2015001615A1
Authority
JP
Japan
Prior art keywords
virtual machine
instruction set
instruction
moved
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015524935A
Other languages
English (en)
Other versions
JP6197871B2 (ja
Inventor
実久 土肥
実久 土肥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2015001615A1 publication Critical patent/JPWO2015001615A1/ja
Application granted granted Critical
Publication of JP6197871B2 publication Critical patent/JP6197871B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

第1の命令セットを用いて仮想マシン(5)を制御する第1の情報処理装置(2)へ、第2の命令セットを用いて仮想マシン(5)を制御する第2の情報処理装置(2)からの仮想マシン(5)の移動を許容し、前記第2の情報処理装置(2)から前記第1の情報処理装置(2)へ移動される仮想マシン(5)に対して前記第1の命令セットに関する情報を通知し、前記第1の情報処理装置(2)は、移動された前記仮想マシン(5)に対して、前記第1の命令セットを用いた制御を実行する。

Description

本件は、仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラムに関する。
複数の仮想マシン(Virtual Machine;VM)を制御する複数の物理サーバ(物理マシン,情報処理装置)をそなえる情報処理システムでは、物理サーバの状態に応じて、物理サーバ間で仮想マシンを移動させるマイグレーションが行なわれることがある。なお、マイグレーションとしては、仮想マシンの動作を継続させたまま物理サーバ間で仮想マシンを移動するライブマイグレーションが挙げられる。
マイグレーションを管理するサーバ又は管理者等(以下、単にサーバ等という)は、物理サーバが異なる仕様を持つ装置である場合、仮想マシンの移動先を決定する際に、移動先が仮想マシンの動作に不都合のある物理サーバであるか否かを確認することがある。
例えば、サーバ等は、仮想マシンの移動前後の物理サーバがそなえるCentral Processing Unit(CPU)の違いによる、命令(拡張CPU命令セット)のサポート有無を確認する。サーバ等は、確認の結果、サポートする拡張CPU命令セットが異なる物理サーバ(CPU)間では、仮想マシンのマイグレーションを行なわない。
なお、拡張CPU命令セットとは、CPUが共通して持つ命令とは別に、所定の処理を実行させるためにCPUに実装される命令群である。以下、拡張CPU命令セットを、単に拡張命令セット又は命令セットという場合がある。
CPUがサポートする拡張命令セットは、CPUの仕様等によってレベル(水準)が異なる。なお、古い世代のCPUは、新しい世代のCPUよりも拡張命令セットに含まれる命令が少ない、つまり低レベルであることが多い。
ところで、サーバ等は、以下のように、サポートする拡張命令セットが異なる物理サーバ間で、強制的にマイグレーションを行なうこともできる。
サポートする拡張命令セットのレベルが低い物理サーバ(CPU)から高い物理サーバ(CPU)へ仮想マシンが移動される場合、仮想マシンは、移動前のCPUがサポートしない命令は移動後のCPUがサポートしていても利用しない。これは、仮想マシンが、起動したときの物理サーバ(CPU)でサポートされる拡張命令セットに従って動作するためである。
一方、サポートする拡張命令セットのレベルが高い物理サーバ(CPU)から低い物理サーバ(CPU)へ仮想マシンが移動される場合、仮想マシンは、今まで使用していた命令を利用できないことがある。例えば、仮想マシンが、移動前に存在していたが移動後に存在しなくなった拡張命令セットを実行すると、“Illegal Instruction”が発生し、その後、仮想マシンは停止してしまう。
このため、サーバ等は、マイグレーションによる移動先の物理サーバを決定する際には、移動先のCPUを確認し、移動可能か否かを判断する。そして、サーバ等は、少なくとも、移動前よりもサポートする拡張命令セットのレベルが低い物理サーバを移動先から除外する。
なお、仮想マシンが利用する拡張命令セットを、仮想マシンが実行され得る複数の物理サーバでサポートされる拡張命令セットのうちの、最低レベルの拡張命令セットに制限するハードウェアアシスト機構が知られている。ハードウェアアシスト機構によれば、仮想マシンはミニマムセットの拡張命令セットを利用するため、仮想マシンは、制限された結果のレベルと同レベルの命令セットをサポートするVMホスト間において移動が可能になる。従って、VM配置管理サーバ等は、移動前よりもサポートする拡張命令セットのレベルが低い物理サーバを移動先から除外せずに済む。なお、ハードウェアアシスト機構としては、例えばIntel(登録商標)の“FlexMigration”が挙げられる。
また、関連する技術として、マイグレーション前後でCPUが実装する命令セット間に共通な命令は、移動後のCPUに実行させ、移動後のCPUに存在しない命令は、命令エミュレータにエミュレーションさせる技術も知られている(例えば、特許文献1参照)。
さらに、関連する他の技術として、共有メモリに接続された第1及び第2スイッチングハイパーバイザ間で仮想マシンの実行を切り替える技術も知られている(例えば、特許文献2参照)。この技術では、仮想マシンは、仮想マシンに用いられるハードウェアアーキテクチャが実行の切り替え前と異なる場合、命令セットをシミュレートする。
また、関連する他の技術として、CPUが、ゲストOperating System(OS)が実行できない所定の命令を検出した場合に、仮想マシンモニタが、所定の命令のエミュレーションコードを生成して、仮想マシンへ追加して記憶させる技術も知られている(例えば、特許文献3参照)。
特開2010−272055号公報 特開2011−100431号公報 特開2011−123635号公報
上述のように、サーバ等は、サポートする拡張命令セットに応じてマイグレーションの移動先の物理サーバを限定するため、システムの性能が制限されるという課題がある。例えば、サーバ等がマイグレーションを繰り返すと、サポートする拡張命令セットのレベルが低い物理サーバへ移動できる仮想マシンが順次減り、サポートする拡張命令セットのレベルが高い物理サーバへ、仮想マシンが集まってしまう場合がある。これにより、システムのリソースの利用効率が低下し、システムの性能が制限される。
また、サポートする拡張命令セットのレベルが低い物理サーバから高い物理サーバへ仮想マシンが移動される場合、移動先に存在しない拡張命令セットは、移動先の物理サーバで利用されない。同様に、上記ハードウェアアシスト機構が用いられる場合、制限された拡張命令セットは、移動先の物理サーバで利用されない。つまり、これらの場合、移動先の物理サーバは、移動してきた仮想マシンの実行において、本来持っている機能を発揮することができない場合があるという課題がある。
このように、物理サーバ間での仮想マシンの移動において、仮想マシンによるシステムの利用効率が低下する場合があるという課題がある。
なお、上述した関連する技術では、上記課題については考慮されていない。
1つの側面では、本発明は、情報処理装置間での仮想マシンの移動を許容する情報処理システムにおいて、仮想マシンによる情報処理システムの利用効率を向上させることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
本件の仮想マシン管理方法は、第1の命令セットを用いて仮想マシンを制御する第1の情報処理装置へ、第2の命令セットを用いて仮想マシンを制御する第2の情報処理装置からの仮想マシンの移動を許容し、前記第2の情報処理装置から前記第1の情報処理装置へ移動される仮想マシンに対して前記第1の命令セットに関する情報を通知し、前記第1の情報処理装置は、移動された前記仮想マシンに対して、前記第1の命令セットを用いた制御を実行する。
一実施形態によれば、情報処理装置間での仮想マシンの移動を許容する情報処理システムにおいて、仮想マシンによる情報処理システムの利用効率を向上させることができる。
一実施形態に係る情報処理システムの構成例を示す図である。 図1に示す物理サーバのハードウェア構成例を示す図である。 図1に示す物理サーバの構成例を示す図である。 図3に示す物理サーバによるマイグレーション処理の一例を説明するフローチャートである。 図3に示す物理サーバによるマイグレーション処理の一例を説明する図である。 図3に示す物理サーバによる例外発生命令への処理の一例を説明するフローチャートである。 図3に示す物理サーバによる例外発生命令への処理の一例を説明する図である。 図1に示す物理サーバの構成の第1変形例を示す図である。 図8に示す物理サーバによるマイグレーション処理の一例を説明する図である。 図1に示す物理サーバの構成の第2変形例を示す図である。 図10に示す物理サーバによる例外発生命令への処理の一例を説明する図である。
以下、図面を参照して実施の形態を説明する。
〔1〕一実施形態
〔1−1〕情報処理システムの構成
以下、図1を参照して、一実施形態の一例としての情報処理システム1の構成について説明する。
図1は、一実施形態に係る情報処理システム1の構成例を示す図である。
図1に示すように、一実施形態に係る情報処理システム1は、複数(例えば2つ)の物理サーバ2−1及び2−2(以下、物理サーバ2−1及び2−2を区別しない場合には、単に物理サーバ2という)、及び、VM配置管理サーバ3をそなえる。
情報処理システム1は、複数の物理サーバ2間で、仮想マシンのマイグレーション(例えばライブマイグレーション)を実行する。
物理サーバ(仮想マシン管理装置)2は、仮想マシンの管理を行なうサーバであり、仮想マシンは、物理サーバ2のCPUやメモリ等のリソースを用いて動作する。物理サーバ2としては、Personal Computer(PC)やサーバ等のコンピュータ(情報処理装置)が挙げられる。
物理サーバ2−1は、Hypervisor(HV)4−1及び複数(例えば3つ)のVM5−1〜5−3をそなえる。また、物理サーバ2−2は、HV4−2及び複数(例えば3つ)のVM5−4〜5−6をそなえる。以下、HV4−1及び4−2を区別しない場合には、単にHV4といい、VM5−1〜5−6を区別しない場合には、単にVM5という。
HV(ハイパーバイザ,制御部)4は、VM5の制御を行なうVMホストとして動作するソフトウェアである。
また、HV4は、拡張CPU命令セット(拡張命令セット,命令セット)を用いてVM5を制御する他の物理サーバ2との間で、VM5の移動(移送)を許容する。本実施形態においては、HV4は、他の物理サーバ2のCPUが用いる拡張命令セットのレベル(命令レベル,利用レベル)が、自物理サーバ2のCPUが用いる拡張命令セットのレベルと異なる場合にも、VM5の移動を許容することができる。
ここで、拡張命令セットとしては、Intel x86系CPUの場合、マルチメディア系命令の一例であるStreaming SIMD Extensions(SSE)が挙げられる。SSEは、SSE〜SSE4等の順に機能が強化されている。
また、Intel x86系CPUの拡張命令セットとして、暗号化系命令であるAdvanced Encryption Standard Instruction Set(AES−NI)等も挙げられる。
以下の説明で用いる拡張命令セットのレベルとは、CPUが利用可能なこれらの拡張命令セットの水準をいう。例えば、拡張命令セットがSSEである場合、拡張命令セットのレベルとは、SSE〜SSE4等の水準をいう。
VM(仮想マシン)5は、HV4による制御の下、OS(ゲストOS)の実行等の種々の処理を行なうソフトウェアである。
HV4及びVM5の詳細については、後述する。
VM配置管理サーバ3は、物理サーバ2間でのマイグレーションを管理するサーバである。VM配置管理サーバ3は、複数の物理サーバ2の情報と、VM5の情報とを対応付けて管理し、情報処理システム1の管理者等からの指示に応じて、VM5のマイグレーションを行なう。VM配置管理サーバ3としては、PCやサーバ等の情報処理装置が挙げられる。
また、VM配置管理サーバ3は、各物理サーバ2のCPUがサポートする拡張命令セットに関する情報(少なくとも、レベル)を把握している。例えば、VM配置管理サーバ3は、情報処理システム1が起動したときや構成が変更されたとき等に、各物理サーバ2の拡張命令セットに関する情報を、各物理サーバ2又は管理者等から取得する。なお、拡張命令セットに関する情報とは、拡張命令セットのレベルのほか、拡張命令セットを特定する情報であってもよい。
なお、VM配置管理サーバ3は、マイグレーションを行なう際に、VM5の移動元の物理サーバ2(HV4)へ、移動先の物理サーバ2で利用可能な拡張命令セットに関する情報を通知することが好ましい。また、VM配置管理サーバ3は、マイグレーションを行なう際に、VM5の移動先の物理サーバ2(HV4)へ、移動されるVM5が移動元の物理サーバ2で利用する拡張命令セットに関する情報を通知することが好ましい。
〔1−2〕物理サーバのハードウェア構成
次に、図2を参照して、物理サーバ2のハードウェア構成について説明する。図2は、図1に示す物理サーバ2のハードウェア構成例を示す図である。
物理サーバ2は、図2に示すように、CPU20a、メモリ20b、記憶部20c、インタフェース部20d、入出力部20e、記録媒体20f、及び読取部20gをそなえる。
CPU20aは、メモリ20b、記憶部20c、インタフェース部20d、入出力部20e、記録媒体20f、及び読取部20gと接続され、種々の制御や演算を行なう演算処理装置(プロセッサ,処理部)である。CPU20aは、メモリ20b、記憶部20c、記録媒体20f、読取部20gに接続又は挿入された記録媒体20h、又は図示しないRead Only Memory(ROM)等に格納されたプログラムを実行することにより、物理サーバ2における種々の機能(例えばHV4及び複数のVM5)を実現する。なお、CPU20aに限らず、プロセッサとしては、Micro Processing Unit(MPU)等の電子回路が用いられてもよい。
メモリ20bは、種々のデータやプログラムを格納する記憶装置である。CPU20aは、プログラムを実行する際に、メモリ20bにデータやプログラムを格納し展開する。なお、メモリ20bとしては、例えばRandom Access Memory(RAM)等の揮発性メモリが挙げられる。
記憶部20cは、例えばHard Disk Drive(HDD)等の磁気ディスク装置、Solid State Drive(SSD)等の半導体ドライブ装置、又はフラッシュメモリ等の不揮発性メモリ等の、種々のデータやプログラム等を格納する1以上のハードウェアである。記憶部20cが有する記憶領域は、物理サーバ2、HV4、又はVM5等により用いられる。
インタフェース部20dは、図示しないルータ及びネットワークを介して接続されるホスト又はクライアント、VM配置管理サーバ3、又は、他の物理サーバ2との間の接続及び通信の制御を行なうコントローラである。インタフェース部20dとしては、例えば、Local Area Network(LAN)、ファイバチャネル(Fibre Channel;FC)等に準拠したインタフェースカードが挙げられる。
入出力部20eは、例えばマウスやキーボード等の入力装置及びディスプレイやプリンタ等の出力装置の少なくとも一方を含んでよい。例えば入出力部20eは、物理サーバ2(情報処理システム1)の管理者やVM5のユーザ等による種々の作業に用いられる。
記録媒体20fは、フラッシュメモリやROM等の記憶装置であり、種々のデータやプログラムを記録する。読取部20gは、光ディスクやUniversal Serial Bus(USB)メモリ等のコンピュータ読取可能な記録媒体20hに記録されたデータやプログラムを読み出す装置である。
記録媒体20f、20hの少なくとも一方には、一実施形態に係る物理サーバ2(HV4及びVM5を含む)の機能を実現する仮想マシン管理プログラムが格納されてもよい。すなわち、CPU20aは、記録媒体20f、又は読取部20gを介して記録媒体20hから出力された仮想マシン管理プログラムを、メモリ20b等の記憶装置に展開して実行することにより、物理サーバ2の機能を実現する。
なお、上述した各ハードウェアは、互いにバスを介して通信可能に接続される。例えば、CPU20a、メモリ20b、及びインタフェース部20dは、システムバスに接続される。また、例えば、記憶部20c、入出力部20e、記録媒体20f、及び読取部20gは、Input/Output(I/O)インタフェース等を介してシステムバスに接続される。なお、記憶部20cは、ストレージバス(ケーブル)で、Disk Interface(DI)等のI/Oインタフェースに接続される。ストレージバスとしては、Small Computer System Interface(SCSI)、Serial Attached SCSI(SAS)、ファイバチャネル、Serial Advanced Technology Attachment(SATA)等に準拠したバスが挙げられる。
なお、物理サーバ2の上述したハードウェア構成は例示である。従って、物理サーバ2内でのハードウェアの増減や分割等は適宜行なわれてもよい。また、物理サーバ2間で異なる構成をそなえてもよい。
なお、VM配置管理サーバ3についても、物理サーバ2と同様のハードウェア構成をそなえることができる。
〔1−3〕物理サーバの機能構成
次に、図3を参照して、物理サーバ2の機能構成について説明する。図3は、図1に示す物理サーバ2の機能構成例を示す図である。
本実施形態に係る物理サーバ2は、CPU20aの拡張命令セットのレベルが異なるVMホスト間でマイグレーションを実施することができる。なお、以下の説明では、物理サーバ2−1及び2−2の各々がそなえるCPU20aの拡張命令セットのレベルは、互いに異なるものとする。
物理サーバ2は、ソフトウェアの機能として、HV4に、再認識指示部41、制限レベル管理部42、及び拡張CPU命令セットエミュレーション部43をそなえ、VM5に、再認識部51をそなえる。なお、これらの再認識指示部41、制限レベル管理部42、拡張CPU命令セットエミュレーション部43、及び再認識部51は、CPU20aが仮想マシン管理プログラムをメモリ20bに展開して実行することにより実現される。なお、再認識部51は、VM5が実行するOSの一機能として実装されてもよい。
また、物理サーバ2は、ハードウェアの機能として、CPU20aに、命令セット制限部201をそなえる。
なお、VM5の再認識部51は、VM5−1〜5−6の各々がそなえることができ、HV4、VM5、及びCPU20aの各機能は、物理サーバ2−1及び2−2の各々がそなえることができる。
〔1−3−1〕命令セット制限部の説明
命令セット制限部201は、VM5ごとに拡張命令セットの利用制限をかける機能であり、上述した“FlexMigration”等のハードウェアアシスト機構により実現される。
命令セット制限部201は、HV4からの指示に応じて、特定のVM5が認識する拡張命令セットを、所定のレベルに制限することができる。例えば、HV4から、特定のVM5に利用させる拡張命令セットをレベル2(SSE2)にする旨の指示を受けると、命令セット制限部201は、CPU20aがレベル4(SSE4)をサポートしていても、当該VM5にはレベル2を通知する。つまり、命令セット制限部201は、特定のVM5からの利用可能な拡張命令セットの問い合わせ(例えばCPUID命令)に対して、利用可能な拡張命令セットがSSE2である旨の応答を行なう。
〔1−3−2〕再認識部の説明
再認識部51は、自VM5がマイグレーションの対象である場合に、HV4から、移動先の物理サーバ2で利用可能な拡張命令セットに関する情報を通知されることで、アーキテクチャを再認識する。
ここで、OSやアプリケーションは、利用可能な拡張命令セットを最大限使おうとすることが多い。例えば、OSやアプリケーションは、物理サーバやVMにおける実行が開始されると、利用可能な拡張命令セットを判定して、判定した拡張命令セットを利用するライブラリやコンパイラ出力モード等の選択を行なう。そして、OSやアプリケーションは、物理サーバやVMにおける実行が停止するまで、選択したライブラリやコンパイラ出力モード等を用いて動作する。
OSやアプリケーションによるこれらの処理は、物理サーバ上で動作する場合及びVM上で動作する場合で共通である。つまり、拡張命令セットの判定はOSやアプリケーションの実行が開始されたときに行なわれるため、VMで実行されるOSやアプリケーションは、ライブマイグレーションにより、実行開始後に途中で拡張命令セットが変わることを想定していない。
そこで、再認識部51は、HV4(再認識指示部41)からの再認識指示に応じて、CPU20aの命令セット制限部201から、自VM5がHV4で利用可能な拡張命令セットに関する情報を取得する。例えば、再認識部51は、CPU20aがどの拡張命令セットをサポートするかを問い合わせるCPUID命令を発行することにより、CPU20aから利用可能な拡張命令セットに関する情報を取得する。
VM5(OS)は、再認識部51により、HV4からの再認識指示に応じて再認識を行なうと、CPU20aへ再認識後に指示する処理(コード)の切り替えを行なう。
例えば、VM5は、OSが直接ハンドリングできるコード(例えばカーネルやライブラリ等)については、OSにより使用コードの切り替えを行なう。また、VM5は、OSが直接ハンドリングできないコード(例えばユーザコード等)については、OSによりユーザプログラム等へ使用コードの切替要求を発行する。
以上のように、再認識部51によれば、VM5(OS)は、実行が開始されたとき(例えばHV4上での起動後)のみでなく、HV4から任意のタイミングで発行された再認識指示を受けたときに、アーキテクチャの再認識を行なうことができる。また、VM5は、利用可能な拡張命令セットを再認識することで、使用コードの切り替えを行なうことができるため、再認識した拡張命令セットを可能な限り有効に活用することができる。
〔1−3−3〕再認識指示部及び制限レベル管理部の説明
再認識指示部(通知部)41は、マイグレーションにより移動されるVM5に対して移動先の物理サーバ2で利用可能な拡張命令セットに関する情報を通知する。例えば、再認識指示部41は、VM配置管理サーバ3からマイグレーションの移動対象のVM5を通知されると、通知されたVM5に対して、アーキテクチャの再認識を指示することで、移動後に利用可能な拡張命令セットに関する情報を通知する。これにより、HV4は、VM5に対して、マイグレーションが行なわれる際に拡張命令セットを再認識するトリガを与えることができる。
具体的には、再認識指示部41は、ライブマイグレーションに際して、以下の(a)及び(b)の少なくとも一方のタイミングで、VM5に再認識指示を発行する。
(a)VM5の移動後に再認識指示を発行し、拡張命令セットを切り替えさせる(ポスト切り替え方式)。
(b)VM5の移動前に再認識指示を発行し、事前に拡張命令セットを切り替えさせる(プレ切り替え方式)。
なお、上記(a)の場合、再認識指示は、移動された(移動後の)VM5に対して、移動先の物理サーバ2のHV4(再認識指示部41)により発行される。
一方、上記(b)の場合、再認識指示は、移動される(移動前の)VM5に対して、移動元の物理サーバ2のHV4(再認識指示部41)により発行される。なお、このとき、再認識指示部41は、命令セット制限部201への指示を通じて、事前に、当該VM5が自物理サーバ2で利用する拡張命令セットに関する情報を、移動先で用いられる拡張命令セットに関する情報に変更する。ここで、拡張命令セットに関する情報とは、上述した拡張命令セットのレベルのほか、拡張命令セットを特定する情報であってもよい。
制限レベル管理部42は、自HV4が実行するVM5のレベルを管理するものである。例えば、制限レベル管理部42は、自HV4が実行するVM5と、命令セット制限部201により当該VM5に設定された拡張命令セットのレベルとが対応付けられたテーブルを管理する。なお、このテーブルはメモリ20b等に格納される。
制限レベル管理部42は、自HV4の配下にVM5が追加されたときや他のHV4から移動してきたときに、当該VM5が利用する利用レベルを命令セット制限部201から取得して、テーブルに追加することによりテーブルを更新する。また、制限レベル管理部42は、命令セット制限部201によりVM5の利用レベルが変更されたとき、又は、自HV4から他のHV4へVM5が移動したときに、テーブルの当該VM5のエントリの利用レベルを変更、又は、当該エントリを削除する。
〔1−3−3−1〕再認識指示部による再認識指示の実行可否の判断手法
ここで、再認識指示部41が、移動されるVM5への再認識指示の発行を、上記(a)及び(b)のいずれのタイミングで実行するかについて説明する。
再認識指示部41は、制限レベル管理部42が管理するテーブルと、VM配置管理サーバ3から通知される情報とに基づいて、再認識指示の発行タイミングを決定する。
具体的には、移動元の再認識指示部41は、移動されるVM5の利用レベルを、制限レベル管理部42から取得して確認する。
また、移動元の再認識指示部41は、上述のようにVM配置管理サーバ3から通知された、移動先の物理サーバ2で利用可能な拡張命令セットに関する情報(例えば利用可能なレベル;利用可能レベル)を確認する。
そして、移動元の再認識指示部41は、移動されるVM5が、移動元での利用レベル及び移動先での利用可能レベルに基づいて、再認識指示の発行タイミングを決定する。
一例として、移動元の再認識指示部41は、移動元での利用レベルが、移動先での利用可能レベルよりも高いと判断した場合、VM5の移動前に再認識指示を発行すると判断する。
上述のように、サポートする拡張命令セットのレベルが高い物理サーバ2から低い物理サーバ2へVM5が移動される場合、VM5は、今まで使用していた命令を利用できないことがある。そこで、移動元の再認識指示部41は、移動されるVM5が利用する拡張命令セットがマイグレーションにより縮退されると判断すると、移動前に(事前に)、VM5の利用レベルを移動先での利用可能レベルまで引き下げるのである。
これにより、再認識指示部41は、VM5が移動前に存在していたが移動後に存在しなくなった拡張命令セットを実行して、“例外”(例えば“Illegal Instruction”)を発生させてしまう確率を低減させることができる。
一方、移動元の再認識指示部41は、移動元での利用レベルが、移動先での利用可能レベルよりも低いと判断した場合、移動前にはVM5への再認識指示を行なわず、VM5の移動後に再認識指示を発行すると判断する。
つまり、移動されるVM5が利用する拡張命令セットがマイグレーションにより拡張される場合、再認識指示部41が、移動前にVM5の利用レベルを移動先での利用可能レベルまで引き上げてしまうと、“例外”が発生する可能性がある。すなわち、移動前にレベルを引き上げた結果、VM5が、移動元には本来存在しない、移動先で利用可能な命令を実行してしまう可能性がある。
そこで、移動元の再認識指示部41は、マイグレーションにより、移動されるVM5が利用する拡張命令セットが拡張されると判断すると、移動前にはVM5への再認識指示は行なわない。この場合、移動元の再認識指示部41は、移動先の再認識指示部41へ、移動されたVM5に対する再認識指示の発行を要求してもよく、或いは、移動されるVM5の移動前後のレベルの比較結果を通知してもよい。
なお、移動元の再認識指示部41は、移動元での利用レベルが、移動先での利用可能レベルと同じである判断した場合、再認識指示の発行を行なわないと判断する。
以上のように、移動元の再認識指示部41は、再認識指示の発行タイミングを決定する。
また、移動先の再認識指示部41は、VM配置管理サーバ3によってライブマイグレーションによるVM5の移動が実行されると、移動されたVM5へ再認識指示を発行するか否かを判断する。この判断は、移動元の再認識指示部41から、再認識指示の発行要求を受けたか否かによって行なわれてもよいし、移動されたVM5の移動前後のレベルの比較結果を受け取った場合には、当該比較結果に基づいて行なわれてもよい。
なお、移動先の再認識指示部41は、上述した移動元の再認識指示部41と同様に、移動されたVM5の移動前後のレベルを比較してもよい。
例えば、移動先の再認識指示部41は、上述のようにVM配置管理サーバ3から通知された、移動されたVM5が移動元の物理サーバ2で利用していた拡張命令セットに関する情報(例えば利用レベル)を確認する。また、移動先の再認識指示部41は、移動されたVM5が自HV4での利用可能レベルを、制限レベル管理部42から取得して確認する。そして、移動先の再認識指示部41は、移動されたVM5の移動元での利用レベルと、自HV4での利用可能レベルとを比較して、比較結果を得てもよい。
このように、移動先の再認識指示部41は、自HV4で得たレベルの比較結果、又は、移動元から通知された比較結果に基づき、VM5の移動元での利用レベルが、自HV4での利用可能レベルよりも低いか(拡張されたか)否かを判断する。
そして、移動先の再認識指示部41は、拡張されたと判断した場合、又は、移動元から再認識指示の発行要求を受けた場合、移動されたVM5へ再認識指示を発行する。
なお、移動先の物理サーバ2のCPU20aは、移動されたVM5に対して、移動先の物理サーバ2で利用可能な拡張命令セットを用いた制御を実行する。
以上のように、移動先の再認識指示部41は、移動されたVM5が移動元のHV4で再認識を行なっていない場合に、移動されたVM5へ再認識指示を発行する。
なお、移動元及び移動先の再認識指示部41は、移動されるVM5の移動元での利用レベルと移動先での利用可能レベルとを、互いにネゴシエーションを行なって交換(確認)してもよい。
また、上述した例では、再認識指示部41は、移動されるVM5の移動元での利用レベルと移動先の利用可能レベルとの大小の比較によって、再認識指示の発行タイミングを決定するものとして説明したが、これに限定されるものではない。
例えば、VM5は、上述のように、再認識指示を受けて再認識を行なうと、CPU20aへ再認識後に指示する処理(コード)の切り替えを行なう。このとき、VM5は、少なくとも再認識に伴い利用できなくなった命令について、当該命令を含むコンパイル済みのコードを無効化し、利用可能な命令により再度コンパイルする処理等を行なう。このような処理は、例えば移動元のHV4で実行される場合、VMホスト(HV4)の負荷を増大させ、マイグレーションを含む各処理を遅延させる要因となり得る。
そこで、移動元の再認識指示部41は、移動元での利用レベルが、移動先での利用可能レベルよりも高いと判断した場合であっても、VM5によるコード切替の処理負荷が高くなると推定される場合には、再認識指示の発行を行なわないようにしてもよい。この場合、移動元の再認識指示部41は、移動先の再認識指示部41へ、移動されたVM5に対する再認識指示の発行を要求してもよく、移動元の再認識指示部41で再認識指示を発行しない旨(理由等)を通知してもよい。
なお、再認識指示部41は、例えば、移動元での利用レベルと移動先での利用可能レベルとの差が所定値よりも大きい場合に、VM5によるコード切替の処理負荷が高くなると推定することができる。これは、レベル差が大きい場合、移動先で利用できなくなる命令の数が多く、VM5により再コンパイルが行なわれるコードの数が増大すると考えられるためである。
以上のように、再認識指示部41及び制限レベル管理部42によれば、移動されるVM5への再認識指示を、“例外”が発生しないように、又は/及びマイグレーションの処理を遅延させないように、移動前又は移動後に選択的に実行することができる。従って、情報処理システム1の安定性を向上させることができる。
〔1−3−3−2〕再認識指示部による再認識部への再認識指示手法
再認識指示部41は、VM5の再認識部51に対して、以下の(A)〜(D)のいずれかの手法により、再認識指示を通知することができる。
・割り込みによる手法
(A)予めVM5側にアーキテクチャの再認識用の割り込みを設定(規定)する。再認識指示部41(HV4)は、設定された割り込みを発生させる(割り込み注入(Interrupt Injection)を行なう)ことにより、VM5(再認識部51)に対して割り込みが発生したと認識させる。
(B)HV4は、割り込み元として、VM5(OS)に仮想ハードウェア及びこの仮想ハードウェアのドライバを設定する。このドライバは、割り込みが発生すると、VM5(再認識部51)に対して再認識指示が発行されたと認識させるように設定される。再認識指示部41は、仮想ハードウェアからVM5(OS)のドライバに割り込みを発生させる。
(C)HV4は、割り込み元として、VM5(OS)に、VM5(再認識部51)に対して再認識指示が発行されたことを割り込み要因とする割り込みベクタを設定する。再認識指示部41は、割り込みベクタにより割り込みを発生させる。
・ハンドラ登録による手法
(D)VM5は、OSにアーキテクチャの再認識用のハンドラを登録し、HV4へ通知する。再認識指示部41は、イベント(再認識指示の発行)に応じて、VM5から通知されたハンドラを実行し、VM5(再認識部51)に対して再認識指示が発行されたと認識させる。
なお、上記(A)〜(D)は例示であり、上述したものに限られず、再認識指示の手法としては、既知の種々の手法を用いることが可能である。
〔1−3−4〕拡張CPU命令セットエミュレーション部の説明
拡張CPU命令セットエミュレーション部(エミュレーション部)43は、移動されたVM5により、移動元の拡張命令セットに含まれる命令であって移動先の拡張命令セットに含まれない命令が実行された場合、実行された命令のエミュレーションを行なう。
つまり、拡張CPU命令セットエミュレーション部43は、再認識指示部41により、移動前又は移動後に、移動されるVM5に対して再認識指示が発行されたにもかかわらず、効果が得られなかった場合(“例外”が発生した場合)に実行される。
VM5へ再認識指示が発行されたにもかかわらず、“例外”が発生する場合としては、VM5(OS)が再認識指示を無視した場合のほか、VM5(OS)又はアプリケーション(ユーザプログラム)が再認識に対応できない場合が挙げられる。
具体的には、拡張CPU命令セットエミュレーション部43は、VM5で実行される命令を監視し、或るVM5(例えば移動されたVM5)により発行された命令が“例外”を発生させたことを認識すると、当該命令をトラップする。
また、拡張CPU命令セットエミュレーション部43は、“例外”を発生させた命令(例外発生命令)を実行したVM5の移動元での拡張命令セットの命令レベルを確認し、当該命令が移動元で利用可能な命令であるか否かを判断する。なお、拡張CPU命令セットエミュレーション部43は、例外発生命令を発行したVM5の移動元のHV4及び命令レベルを、例えば当該命令を発行したVM5に問い合わせることで特定してもよい。或いは、HV4は、マイグレーションのときに取得した情報をメモリ20b等に保存しておき、拡張CPU命令セットエミュレーション部43が、メモリ20b等から取得してもよい。
拡張CPU命令セットエミュレーション部43は、例外発生命令が移動元で利用可能な命令ではないと判断した場合、当該命令による“例外”の発生は、VM5による再認識の未実行に起因するものではないと判断し、通常の命令例外処理に移行する。
一方、拡張CPU命令セットエミュレーション部43は、例外発生命令が移動元で利用可能な命令であると判断した場合、当該命令のエミュレーションを実行する。
また、拡張CPU命令セットエミュレーション部43は、例外発生命令のエミュレーションを実行すると、VM5に対して、再度の再認識指示を発行するか否かを判断する。この判断は、例えば、例外発生命令による“例外”が所定回数以上発生したか否かにより行なわれてもよい。
例えば、拡張CPU命令セットエミュレーション部43は、例外発生命令による“例外”が所定回数以上発生し、再度の再認識指示を発行すると判断した場合、再認識指示部41へ、VM5に対する再度の再認識指示を要求する。
なお、再度の再認識指示においては、再認識指示部41は、VM5に対して、重要度に応じて例外発生命令の発行元(例えばユーザプログラム)を停止させることを要求(問い合せ)してもよい。
そして、拡張CPU命令セットエミュレーション部43は、再認識指示部41へ再度の再認識指示を要求すると、又は、再度の再認識指示を発行しないと判断すると、例外”からの復帰を行なう。
以上のように、拡張CPU命令セットエミュレーション部43によれば、移動先のVMホスト(HV4)において実装されていない拡張命令セットの命令が発行された場合でも、“例外”の発生を抑止することができる。また、拡張CPU命令セットエミュレーション部43によれば、再認識指示部41へVM5に対する再度の再認識指示が要求されるため、例外発生命令の発生確率を低減させることができる。
なお、拡張CPU命令セットエミュレーション部43は、情報処理システム1がそなえる全ての物理サーバ2(CPU20a)が実行する拡張命令セットをエミュレーションできるように、全てのCPU20aの命令に対応可能であることが好ましい。
〔1−4〕動作例
次に、図4〜図7を参照して、上述の如く構成された一実施形態の一例としての情報処理システム1における物理サーバ2の動作例を説明する。
図4は、図3に示す物理サーバ2によるマイグレーション処理の一例を説明するフローチャートであり、図5は、図3に示す物理サーバ2によるマイグレーション処理の一例を説明する図である。
図6は、図3に示す物理サーバ2による例外発生命令への処理の一例を説明するフローチャートであり、図7は、図3に示す物理サーバ2による例外発生命令への処理の一例を説明する図である。
なお、図5は、VM5の移動元及び移動先の物理サーバ2の双方の処理の説明に共通して用いる。また、図7は、VM5の移動先の物理サーバ2の処理の説明に用いる。
〔1−4−1〕マイグレーション処理
はじめに、図4及び図5を参照して、物理サーバ2によるマイグレーション(ライブマイグレーション)処理について説明する。
VM配置管理サーバ3からVM5の移動元(移送元)のHV4へ、マイグレーションの実施(再認識指示の要求)が通知されると(図5の矢印(i)参照)、再認識指示部41により、移動対象(移送対象)のVM5の利用レベルが確認される(図4のステップS1)。このとき、再認識指示部41は、制限レベル管理部42から移動対象のVM5の利用レベルを取得する(図5の矢印(ii)参照)。
次いで、図4に示すように、再認識指示部41により、移動先(移送先)のVMホスト(HV4)での利用可能レベルが確認される(ステップS2)。
そして、再認識指示部41により、移動前にVM5による拡張命令セットの利用レベルの再認識を実施するか否かが判断される(ステップS3)。再認識指示部41により、例えば、移動されるVM5が利用する拡張命令セットがマイグレーションにより縮退されると判断された場合、移動前の再認識を実施すると判断され(ステップS3のYesルート)、処理がステップS4に移行する。
ステップS4では、再認識指示部41により、移動されるVM5に対して、移動前の再認識指示が発行され、処理がステップS5に移行する。なお、このとき、再認識指示部41は、CPU20aの命令セット制限部201へ、移動対象のVM5の利用レベルを移動先での利用可能レベルに変更させる指示を行なう(図5の矢印(iii)参照)。そして、再認識指示部41は、移動対象のVM5の再認識部51へ、変更された拡張命令セット(利用レベル)を再認識させるべく、再認識指示を発行する(図5の矢印(iv)参照)。
一方、再認識指示部41により、例えば、移動されるVM5が利用する拡張命令セットがマイグレーションにより拡張される、又は、利用レベルの変更がないと判断された場合、移動前の再認識を実施しないと判断される(ステップS3のNoルート)。そして、処理がステップS5に移行する。
ステップS5では、VM配置管理サーバ3、並びに、移動元及び移動先の物理サーバ2により、ライブマイグレーションによるVM5の移動が実行される。
ライブマイグレーションが完了し、VM配置管理サーバ3により完了が通知されると(図5の矢印(i)参照)、移動先の再認識指示部41により、移動後にVM5による拡張命令セットの利用レベルの再認識を実施するか否かが判断される(ステップS6)。なお、この判断は、上述の如く、移動元の再認識指示部41からの再認識指示の発行要求の有無、移動元から受信した移動前後のレベルの比較結果、又は、移動先の再認識指示部41による移動前後のレベルの比較結果に基づいて行なわれてもよい。
移動先の再認識指示部41により、移動後の再認識を実施すると判断された場合(ステップS6のYesルート)、処理がステップS7に移行する。
ステップS7では、再認識指示部41により、移動されたVM5に対して、移動後の再認識指示が発行され、処理が終了する。なお、このとき、再認識指示部41は、移動対象のVM5の再認識部51へ、移動先のVMホストの拡張命令セット(利用レベル)を再認識させるべく、再認識指示を発行する(図5の矢印(iv)参照)。
一方、再認識指示部41により、移動後の再認識を実施しないと判断された場合(ステップS6のNoルート)、処理が終了する。
なお、上述の如く、移動元及び移動先の再認識指示部41は、ステップS1〜S3及びS6において、移動されるVM5の移動元での利用レベルと移動先での利用可能レベルとを、互いにネゴシエーションを行なって交換(確認)してもよい。
以上のように、第1実施形態に係る物理サーバ2によれば、VM5が、移動前後でアーキテクチャの再認識を行なうことができるため、異なる拡張命令セットを適用する物理サーバ2にVM5を移動させることができる。また、VM5が移動先で適用される拡張命令セットに対応することができるため、移動先の拡張命令セットを制限せずに済み、VM5は、各VMホスト(HV4)において拡張命令セットの機能を最大限利用することができる。
従って、物理サーバ2間でのVM5の移動を許容する情報処理システム1において、VM5による情報処理システム1の利用効率を向上させることができる。
〔1−4−2〕例外発生命令への処理
次に、図6及び図7を参照して、物理サーバ2による例外発生命令への処理について説明する。
VM5により命令が発行されると(図7の矢印(v)参照)、拡張CPU命令セットエミュレーション部43により、発行された命令が監視される。VM5から発行された命令による“例外”が発生すると(図6のステップS11)、拡張CPU命令セットエミュレーション部43により、例外発生命令が確認される(ステップS12)。
また、拡張CPU命令セットエミュレーション部43により、例外発生命令を発行したVM5の移動元が特定され、移動元で利用可能な命令レベルが確認される(ステップS13)。
そして、拡張CPU命令セットエミュレーション部43により、例外発生命令が移動元の命令レベルで利用可能か否かが判定される(ステップS14)。例外発生命令が移動元の命令レベルで利用できない場合(ステップS14のNoルート)、拡張CPU命令セットエミュレーション部43により、通常の命令例外処理が実行され(ステップS15)、処理がステップS17に移行する。
一方、例外発生命令が移動元の命令レベルで利用可能な場合(ステップS14のYesルート)、拡張CPU命令セットエミュレーション部43により、当該命令のエミュレーションが実行され(ステップS16)、処理がステップS17に移行する。なお、ステップS16では、例外発生命令のエミュレーションがCPU20aにより実行される(図7の矢印(vi)参照)。
ステップS17では、拡張CPU命令セットエミュレーション部43により、VM5に対する再度の再認識を実行するか否かが判断される。なお、この判断は、例えば、例外発生命令による“例外”が所定回数以上発生したか否かに基づき行なわれる。再度の再認識を実行すると判断された場合(ステップS17のYesルート)、拡張CPU命令セットエミュレーション部43により、再認識指示部41へ、再度の再認識指示の発行が要求される(ステップS18,図7の矢印(vii)参照)。なお、再認識指示部41は、再度の再認識指示の発行要求を受けると、対象のVM5へ、再認識指示を発行する(図7の矢印(viii)参照)。そして、処理がステップS19へ移行する。
一方、ステップS17において、再度の再認識を実行しないと判断された場合(ステップS17のNoルート)、処理がステップS19へ移行する。
ステップS19では、拡張CPU命令セットエミュレーション部43により、例外発生命令について、“例外”からの復帰が行なわれ、処理が終了する。
〔2〕第1変形例
次に、図8及び図9を参照して、一実施形態の第1変形例について説明する。
図8は、図1に示す物理サーバ2の構成の第1変形例を示す図であり、図9は、図8に示す物理サーバ2’によるマイグレーション処理の一例を説明する図である。
図8に示すように、第1変形例に係る物理サーバ2’は、図3に示す物理サーバ2と比較して、HV4’が命令セット制限部44をさらにそなえるとともに、CPU20a’が命令セット制限部201をそなえていない点が異なる。
なお、図8において、図3に示す符号と同一の符号は、図3に示す構成と同一又は略同一のため、重複した説明は省略する。また、図9において、図5に示す符号と同一の符号は、図5に示す処理と同一又は略同一のため、重複した説明は省略する。
命令セット制限部44は、命令セット制限部201と同様の機能を、HV4’(ソフトウェア)により実現する。すなわち、命令セット制限部44は、再認識指示部41からの拡張命令セットの利用レベルの変更要求に応じて、VM5ごとに拡張命令セットの利用制限をかけることができる(図9の矢印(iii’)参照)。
また、命令セット制限部44は、特定のVM5(OS)からの利用可能な拡張命令セットの問い合わせ(例えばCPUID命令)に対して、利用可能な拡張命令セットに関する情報の応答を行なう。
例えば、図3に示すHV4は、VM5の再認識部51からCPUID命令等の拡張命令セットに関する情報の取得要求を受信すると、当該要求をCPU20aの命令セット制限部201へ渡し、命令セット制限部201からの応答を再認識部51へ返す。
一方、図8に示すHV4’は、再認識部51からCPUID命令等の拡張命令セットに関する情報の取得要求を受信すると、インターセプトを行ない、CPU20a’への転送を抑止し、当該取得要求を命令セット制限部44へ渡す。そして、HV4’は、命令セット制限部44からの応答を、CPU20a’からの応答として再認識部51へ返す。
このように、一実施形態の第1変形例に係る物理サーバ2’によれば、一実施形態と同様の効果を奏することができる。
また、物理サーバ2’によれば、CPU20aが命令セット制限部201をそなえていない場合にも、HV4’(命令セット制限部44)によるソフトウェアの処理によって、命令セット制限部201と同様の機能を実現することができ、利便性が高い。
〔3〕第2変形例
次に、図10及び図11を参照して、一実施形態の第2変形例について説明する。
図10は、図1に示す物理サーバ2の構成の第2変形例を示す図であり、図11は、図10に示す物理サーバ2”による例外発生命令への処理の一例を説明する図である。
図10に示すように、第2変形例に係る物理サーバ2”は、図3に示す物理サーバ2と比較して、拡張CPU命令セットエミュレーション部43の代わりに、HV4”が拡張CPU命令セット変換部45をそなえる点が異なる。
なお、図10において、図3に示す符号と同一の符号は、図3に示す構成と同一又は略同一のため、重複した説明は省略する。また、図11において、図7に示す符号と同一の符号は、図7に示す処理と同一又は略同一のため、重複した説明は省略する。
拡張CPU命令セット変換部(エミュレーション部)45は、拡張CPU命令セットエミュレーション部43と同様に、トラップした例外発生命令のエミュレーションを行なうことができる。
また、拡張CPU命令セット変換部45は、VM5により実行された例外発生命令について以前にエミュレーションを行なっている場合、当該命令を、CPU20aが実行可能な命令に変換する(コードを書き換える)。
例えば、HV4による命令のエミュレーションの処理時間は、CPU20aによる命令の処理時間の10倍以上となるため、エミュレーションの実行頻度の増加は、処理遅延の要因となる。また、HV4”によりトラップが行なわれるとCPU20aの動作モードが変わるため、トラップの実行頻度の増加も、処理遅延の要因となる。
そこで、拡張CPU命令セット変換部45は、以前にエミュレーションを行なった例外発生命令については、エミュレーションに代えて、例外発生命令の変換を行なうことにより、エミュレーション及びトラップの実行頻度を低下させる。
具体的には、拡張CPU命令セット変換部45は、例外発生命令を確認し(図11の矢印(v’)参照)、以前にエミュレーションを行なっていると判断すると、以下の(I)〜(III)のいずれかの手法により、例外発生命令の変換を行なう。
(I)拡張CPU命令セット変換部45は、例外発生命令を、CPU20aが実行可能なコードに置き換える(バイナリパッチをあてる)。
(II)拡張CPU命令セット変換部45は、例外発生命令を、代わりの処理へのジャンプに置き換え、ジャンプ先に、CPU20aが実行可能な処理とジャンプ元へのリターンとを記述する。
(III)拡張CPU命令セット変換部45は、メモリ20b上に展開された、例外発生命令を含むプログラムの命令内容をスキャンし、禁止命令をCPU20aが実行可能な命令に書き換えるコンパイル(バイナリコンパイル)を行なう。
そして、拡張CPU命令セット変換部45は、上記(I)〜(III)のいずれかの手法により変換した命令をCPU20aへ渡す(図11の矢印(vi’)参照)。
なお、上記(I)〜(III)は例示であり、上述したものに限られず、例外発生命令の変換処理としては、既知の種々の手法を用いることが可能である。
このように、一実施形態の第2変形例に係る物理サーバ2”によれば、一実施形態と同様の効果を奏することができる。
また、物理サーバ2”によれば、エミュレーション及びトラップの実行頻度を低下させることができるため、物理サーバ2”での処理遅延を緩和させることができ、情報処理システム1の性能を向上させることができる。
〔4〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、一実施形態、並びに、第1及び第2変形例に係る情報処理システム1は、2つの物理サーバ2〜2”、及び、3つのVM5をそなえるものとして説明したが、これに限定されるものではなく、任意の数の物理サーバ2〜2”及びVM5をそなえてよい。
また、上述した一実施形態、並びに、第1及び第2変形例に係る物理サーバ2〜2”の機能は、任意に組み合わせてもよい。
なお、一実施形態、並びに、第1及び第2変形例に係る物理サーバ2〜2”の各種機能の全部もしくは一部は、コンピュータ(CPU,情報処理装置,各種端末を含む)が所定のプログラムを実行することによって実現されてもよい。
そのプログラムは、例えばフレキシブルディスク、CD、DVD、ブルーレイディスク等のコンピュータ読取可能な記録媒体(例えば図2に示す記録媒体20h)に記録された形態で提供される。なお、CDとしては、CD−ROM、CD−R、CD−RW等が挙げられる。また、DVDとしては、DVD−ROM、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等が挙げられる。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
ここで、コンピュータとは、ハードウェアとOSとを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、一実施形態、並びに、第1及び第2変形例に係る物理サーバ2〜2”の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
1 情報処理システム
2,2’,2”,2−1,2−2 物理サーバ(情報処理装置,仮想マシン管理装置)
3 VM配置管理サーバ
4,4’,4”,4−1,4−2 HV(ハイパーバイザ,制御部)
5,5−1〜5−6 VM(仮想マシン)
20a,20a’ CPU(プロセッサ,処理部)
20b メモリ
20c 記憶部
20d インタフェース部
20e 入出力部
20f,20h 記録媒体
20g 読取部
41 再認識指示部
42 制限レベル管理部
43 拡張CPU命令セットエミュレーション部(エミュレーション部)
44,201 命令セット制限部
45 拡張CPU命令セット変換部(エミュレーション部)
51 再認識部
ここで、コンピュータとは、ハードウェアとOSとを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、一実施形態、並びに、第1及び第2変形例に係る物理サーバ2〜2”の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
〔5〕付記
以上の実施形態、並びに、第1及び第2変形例に関し、更に以下の付記を開示する。
(付記1)
第1の命令セットを用いて仮想マシンを制御する第1の情報処理装置へ、第2の命令セットを用いて仮想マシンを制御する第2の情報処理装置からの仮想マシンの移動を許容し、
前記第2の情報処理装置から前記第1の情報処理装置へ移動される仮想マシンに対して前記第1の命令セットに関する情報を通知し、
前記第1の情報処理装置は、移動された前記仮想マシンに対して、前記第1の命令セットを用いた制御を実行する、
ことを特徴とする、仮想マシン管理方法。
(付記2)
前記通知は、前記第1の命令セットの水準及び前記第2の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対する、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示によって行なわれる、
ことを特徴とする、付記1記載の仮想マシン管理方法。
(付記3)
前記通知において、前記第2の情報処理装置は、
前記移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第2の命令セットに関する情報から前記第1の命令セットに関する前記情報に変更し、
前記移動される仮想マシンに対して、前記変更した命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、付記2記載の仮想マシン管理方法。
(付記4)
前記通知において、前記第1の情報処理装置は、
前記移動された仮想マシンに対して、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、付記2記載の仮想マシン管理方法。
(付記5)
前記通知は、前記第1の情報処理装置で動作する仮想マシンを制御する第1の制御部又は前記第2の情報処理装置で動作する仮想マシンを制御する第2の制御部が、前記移動される仮想マシンに対して割り込みを発生させて前記指示を行なうこと、並びに、前記第1又は第2の制御部が、前記移動される仮想マシンにより登録された前記指示を示すハンドラを実行すること、の少なくとも一方により行なわれる、
ことを特徴とする、付記2〜4のいずれか1項記載の仮想マシン管理方法。
(付記6)
前記第1の情報処理装置は、
前記移動された仮想マシンにより、前記第2の命令セットに含まれる命令であって前記第1の命令セットに含まれない命令が前記第1の情報処理装置において実行された場合、前記実行された命令のエミュレーションを行ない、
前記移動された仮想マシンに対して前記第1の命令セットに関する情報を再度通知する、
ことを特徴とする、付記1〜5のいずれか1項記載の仮想マシン管理方法。
(付記7)
前記第1の情報処理装置は、前記実行された命令について以前にエミュレーションを行なっている場合、前記実行された命令を、前記第1の情報処理装置が実行可能な命令に変換する、
ことを特徴とする、付記6記載の仮想マシン管理方法。
(付記8)
第1の命令セットを用いて仮想マシンを制御する第1の仮想マシン管理装置であって、
第2の命令セットを用いて仮想マシンを制御する第2の仮想マシン管理装置からの仮想マシンの移動を許容する制御部をそなえ、
前記制御部は、前記第2の仮想マシン管理装置から前記第1の仮想マシン管理装置へ移動される仮想マシンに対して前記第1の命令セットに関する情報を通知する通知部をそなえるとともに、
移動された前記仮想マシンに対して、前記第1の命令セットを用いた制御を実行する処理部をさらにそなえる、
ことを特徴とする、仮想マシン管理装置。
(付記9)
前記通知部は、前記第1の命令セットの水準及び前記第2の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対して、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示を行なう、
ことを特徴とする、付記8記載の仮想マシン管理装置。
(付記10)
前記制御部は、前記第1の仮想マシン管理装置から前記第2の仮想マシン管理装置への仮想マシンの移動を許容し、
前記第1の仮想マシン管理装置から前記第2の仮想マシン管理装置へ移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第1の命令セットに関する情報から前記第2の命令セットに関する前記情報に変更する命令セット制限部をさらにそなえ、
前記通知部は、前記第1の仮想マシン管理装置から前記第2の仮想マシン管理装置へ移動される仮想マシンに対して、前記変更した命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、付記9記載の仮想マシン管理装置。
(付記11)
前記通知部は、前記移動された仮想マシンに対して、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示を行なう、
ことを特徴とする、付記9記載の仮想マシン管理装置。
(付記12)
前記移動された仮想マシンにより、前記第2の命令セットに含まれる命令であって前記第1の命令セットに含まれない命令が前記第1の仮想マシン管理装置において実行された場合、前記実行された命令のエミュレーションを行なうエミュレーション部をさらにそなえ、
前記通知部は、前記移動された仮想マシンに対して前記第1の命令セットに関する情報を再度通知する、
ことを特徴とする、付記8〜11のいずれか1項記載の仮想マシン管理装置。
(付記13)
前記エミュレーション部は、前記実行された命令について以前にエミュレーションを行なっている場合、前記実行された命令を、前記第1の仮想マシン管理装置が実行可能な命令に変換する、
ことを特徴とする、付記12記載の仮想マシン管理装置。
(付記14)
第1の命令セットを用いて仮想マシンを制御する第1のコンピュータに、
第2の命令セットを用いて仮想マシンを制御する第2のコンピュータからの仮想マシンの移動を許容し、
前記第2のコンピュータから前記第1のコンピュータへ移動される仮想マシンに対して前記第1の命令セットに関する情報を通知し、
移動された前記仮想マシンに対して、前記第1の命令セットを用いた制御を実行する、
処理を前記第1のコンピュータに実行させることを特徴とする、仮想マシン管理プログラム。
(付記15)
前記通知は、前記第1の命令セットの水準及び前記第2の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対する、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示によって行なわれる、
ことを特徴とする、付記14記載の仮想マシン管理プログラム。
(付記16)
前記第1のコンピュータから前記第2のコンピュータへの仮想マシンの移動を許容し、
前記第1のコンピュータから前記第2のコンピュータへ移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第1の命令セットに関する情報から前記第2の命令セットに関する前記情報に変更する、
処理を前記第1のコンピュータに実行させ、
前記通知は、前記第1のコンピュータから前記第2のコンピュータへ移動される仮想マシンに対する、前記変更した命令セットに関する情報を認識させる前記指示によって行なわれる、
ことを特徴とする、付記15記載の仮想マシン管理プログラム。
(付記17)
前記通知は、前記移動された仮想マシンに対する、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示によって行なわれる、
ことを特徴とする、付記15記載の仮想マシン管理プログラム。
(付記18)
前記通知は、前記第1のコンピュータで動作する仮想マシンを制御する制御部により、前記移動される仮想マシンに対して割り込みを発生させて前記指示を行なうこと、並びに、前記制御部により、前記移動される仮想マシンにより登録された前記指示を示すハンドラを実行すること、の少なくとも一方により実行される、
ことを特徴とする、付記15〜17のいずれか1項記載の仮想マシン管理プログラム。
(付記19)
前記移動された仮想マシンにより、前記第2の命令セットに含まれる命令であって前記第1の命令セットに含まれない命令が前記第1のコンピュータにおいて実行された場合、前記実行された命令のエミュレーションを行ない、
前記移動された仮想マシンに対して前記第1の命令セットに関する情報を再度通知する、
処理を前記第1のコンピュータに実行させることを特徴とする、付記14〜18のいずれか1項記載の仮想マシン管理プログラム。
(付記20)
前記実行された命令について以前にエミュレーションを行なっている場合、前記第1のコンピュータで動作する仮想マシンを制御する制御部により、前記実行された命令を、前記第1のコンピュータが実行可能な命令に変換する、
処理を前記第1のコンピュータに実行させることを特徴とする、付記19記載の仮想マシン管理プログラム。

Claims (20)

  1. 第1の命令セットを用いて仮想マシンを制御する第1の情報処理装置へ、第2の命令セットを用いて仮想マシンを制御する第2の情報処理装置からの仮想マシンの移動を許容し、
    前記第2の情報処理装置から前記第1の情報処理装置へ移動される仮想マシンに対して前記第1の命令セットに関する情報を通知し、
    前記第1の情報処理装置は、移動された前記仮想マシンに対して、前記第1の命令セットを用いた制御を実行する、
    ことを特徴とする、仮想マシン管理方法。
  2. 前記通知は、前記第1の命令セットの水準及び前記第2の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対する、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示によって行なわれる、
    ことを特徴とする、請求項1記載の仮想マシン管理方法。
  3. 前記通知において、前記第2の情報処理装置は、
    前記移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第2の命令セットに関する情報から前記第1の命令セットに関する前記情報に変更し、
    前記移動される仮想マシンに対して、前記変更した命令セットに関する情報を認識させる前記指示を行なう、
    ことを特徴とする、請求項2記載の仮想マシン管理方法。
  4. 前記通知において、前記第1の情報処理装置は、
    前記移動された仮想マシンに対して、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示を行なう、
    ことを特徴とする、請求項2記載の仮想マシン管理方法。
  5. 前記通知は、前記第1の情報処理装置で動作する仮想マシンを制御する第1の制御部又は前記第2の情報処理装置で動作する仮想マシンを制御する第2の制御部が、前記移動される仮想マシンに対して割り込みを発生させて前記指示を行なうこと、並びに、前記第1又は第2の制御部が、前記移動される仮想マシンにより登録された前記指示を示すハンドラを実行すること、の少なくとも一方により行なわれる、
    ことを特徴とする、請求項2〜4のいずれか1項記載の仮想マシン管理方法。
  6. 前記第1の情報処理装置は、
    前記移動された仮想マシンにより、前記第2の命令セットに含まれる命令であって前記第1の命令セットに含まれない命令が前記第1の情報処理装置において実行された場合、前記実行された命令のエミュレーションを行ない、
    前記移動された仮想マシンに対して前記第1の命令セットに関する情報を再度通知する、
    ことを特徴とする、請求項1〜5のいずれか1項記載の仮想マシン管理方法。
  7. 前記第1の情報処理装置は、前記実行された命令について以前にエミュレーションを行なっている場合、前記実行された命令を、前記第1の情報処理装置が実行可能な命令に変換する、
    ことを特徴とする、請求項6記載の仮想マシン管理方法。
  8. 第1の命令セットを用いて仮想マシンを制御する第1の仮想マシン管理装置であって、
    第2の命令セットを用いて仮想マシンを制御する第2の仮想マシン管理装置からの仮想マシンの移動を許容する制御部をそなえ、
    前記制御部は、前記第2の仮想マシン管理装置から前記第1の仮想マシン管理装置へ移動される仮想マシンに対して前記第1の命令セットに関する情報を通知する通知部をそなえるとともに、
    移動された前記仮想マシンに対して、前記第1の命令セットを用いた制御を実行する処理部をさらにそなえる、
    ことを特徴とする、仮想マシン管理装置。
  9. 前記通知部は、前記第1の命令セットの水準及び前記第2の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対して、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示を行なう、
    ことを特徴とする、請求項8記載の仮想マシン管理装置。
  10. 前記制御部は、前記第1の仮想マシン管理装置から前記第2の仮想マシン管理装置への仮想マシンの移動を許容し、
    前記第1の仮想マシン管理装置から前記第2の仮想マシン管理装置へ移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第1の命令セットに関する情報から前記第2の命令セットに関する前記情報に変更する命令セット制限部をさらにそなえ、
    前記通知部は、前記第1の仮想マシン管理装置から前記第2の仮想マシン管理装置へ移動される仮想マシンに対して、前記変更した命令セットに関する情報を認識させる前記指示を行なう、
    ことを特徴とする、請求項9記載の仮想マシン管理装置。
  11. 前記通知部は、前記移動された仮想マシンに対して、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示を行なう、
    ことを特徴とする、請求項9記載の仮想マシン管理装置。
  12. 前記移動された仮想マシンにより、前記第2の命令セットに含まれる命令であって前記第1の命令セットに含まれない命令が前記第1の仮想マシン管理装置において実行された場合、前記実行された命令のエミュレーションを行なうエミュレーション部をさらにそなえ、
    前記通知部は、前記移動された仮想マシンに対して前記第1の命令セットに関する情報を再度通知する、
    ことを特徴とする、請求項8〜11のいずれか1項記載の仮想マシン管理装置。
  13. 前記エミュレーション部は、前記実行された命令について以前にエミュレーションを行なっている場合、前記実行された命令を、前記第1の仮想マシン管理装置が実行可能な命令に変換する、
    ことを特徴とする、請求項12記載の仮想マシン管理装置。
  14. 第1の命令セットを用いて仮想マシンを制御する第1のコンピュータに、
    第2の命令セットを用いて仮想マシンを制御する第2のコンピュータからの仮想マシンの移動を許容し、
    前記第2のコンピュータから前記第1のコンピュータへ移動される仮想マシンに対して前記第1の命令セットに関する情報を通知し、
    移動された前記仮想マシンに対して、前記第1の命令セットを用いた制御を実行する、
    処理を前記第1のコンピュータに実行させることを特徴とする、仮想マシン管理プログラム。
  15. 前記通知は、前記第1の命令セットの水準及び前記第2の命令セットの水準に基づいて、仮想マシンの移動前又は移動後に、前記移動される仮想マシンに対する、前記移動される仮想マシンの制御に用いられる命令セットを認識させる指示によって行なわれる、
    ことを特徴とする、請求項14記載の仮想マシン管理プログラム。
  16. 前記第1のコンピュータから前記第2のコンピュータへの仮想マシンの移動を許容し、
    前記第1のコンピュータから前記第2のコンピュータへ移動される仮想マシンの制御に用いられる命令セットに関する情報を、前記第1の命令セットに関する情報から前記第2の命令セットに関する前記情報に変更する、
    処理を前記第1のコンピュータに実行させ、
    前記通知は、前記第1の仮想マシン管理装置から前記第2の仮想マシン管理装置へ移動される仮想マシンに対する、前記変更した命令セットに関する情報を認識させる前記指示によって行なわれる、
    ことを特徴とする、請求項15記載の仮想マシン管理プログラム。
  17. 前記通知は、前記移動された仮想マシンに対する、前記移動された仮想マシンの制御に用いられる命令セットに関する情報を認識させる前記指示によって行なわれる、
    ことを特徴とする、請求項15記載の仮想マシン管理プログラム。
  18. 前記通知は、前記第1のコンピュータで動作する仮想マシンを制御する制御部により、前記移動される仮想マシンに対して割り込みを発生させて前記指示を行なうこと、並びに、前記制御部により、前記移動される仮想マシンにより登録された前記指示を示すハンドラを実行すること、の少なくとも一方により実行される、
    ことを特徴とする、請求項15〜17のいずれか1項記載の仮想マシン管理プログラム。
  19. 前記移動された仮想マシンにより、前記第2の命令セットに含まれる命令であって前記第1の命令セットに含まれない命令が前記第1のコンピュータにおいて実行された場合、前記実行された命令のエミュレーションを行ない、
    前記移動された仮想マシンに対して前記第1の命令セットに関する情報を再度通知する、
    処理を前記第1のコンピュータに実行させることを特徴とする、請求項14〜18のいずれか1項記載の仮想マシン管理プログラム。
  20. 前記実行された命令について以前にエミュレーションを行なっている場合、前記第1のコンピュータで動作する仮想マシンを制御する制御部により、前記実行された命令を、前記第1のコンピュータが実行可能な命令に変換する、
    処理を前記第1のコンピュータに実行させることを特徴とする、請求項19記載の仮想マシン管理プログラム。
JP2015524935A 2013-07-02 2013-07-02 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム Expired - Fee Related JP6197871B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/068129 WO2015001615A1 (ja) 2013-07-02 2013-07-02 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム

Publications (2)

Publication Number Publication Date
JPWO2015001615A1 true JPWO2015001615A1 (ja) 2017-02-23
JP6197871B2 JP6197871B2 (ja) 2017-09-20

Family

ID=52143238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015524935A Expired - Fee Related JP6197871B2 (ja) 2013-07-02 2013-07-02 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム

Country Status (4)

Country Link
US (1) US20160132350A1 (ja)
EP (1) EP3018583A4 (ja)
JP (1) JP6197871B2 (ja)
WO (1) WO2015001615A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108883557A (zh) * 2016-03-29 2018-11-23 株式会社钟化 发泡复合成型体的制造方法、模内发泡成型体单元、发泡复合成型体以及发泡复合成型用的模具
US11803407B1 (en) * 2020-09-29 2023-10-31 Amazon Technologies, Inc. Emulation layer for overcoming incompatibilities in virtual machine instance migration

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010272055A (ja) * 2009-05-25 2010-12-02 Sony Corp 情報処理装置および方法、並びにプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327354B1 (en) * 2007-05-31 2012-12-04 Hewlett-Packard Development Company, L.P. Virtualization with binary translation
US8127296B2 (en) * 2007-09-06 2012-02-28 Dell Products L.P. Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration
US20110113426A1 (en) 2009-11-09 2011-05-12 Hsiang-Tsung Kung Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
JP2011123635A (ja) 2009-12-10 2011-06-23 Nec Corp 情報処理装置、情報処理装置の制御方法、及び記録媒体
US8984507B2 (en) * 2010-04-26 2015-03-17 International Business Machines Corporation Cross architecture virtual machine migration
WO2014204453A1 (en) * 2013-06-19 2014-12-24 Empire Technology Development, Llc Processor-optimized library loading for virtual machines

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010272055A (ja) * 2009-05-25 2010-12-02 Sony Corp 情報処理装置および方法、並びにプログラム

Also Published As

Publication number Publication date
EP3018583A1 (en) 2016-05-11
EP3018583A4 (en) 2017-02-15
US20160132350A1 (en) 2016-05-12
WO2015001615A1 (ja) 2015-01-08
JP6197871B2 (ja) 2017-09-20

Similar Documents

Publication Publication Date Title
JP5345652B2 (ja) 部分仮想化マシンに基づく統一格納装置
US10083022B2 (en) Applying update to snapshots of virtual machine
RU2406113C2 (ru) Системы и способы двухрежимной виртуализации устройства реальных и идеализированных аппаратных устройств
RU2412468C2 (ru) Системы и способы многоуровневой обработки перехватов в виртуальной машинной среде
JP5680961B2 (ja) 物理イメージと仮想イメージの統合的な提供
US8196138B2 (en) Method and system for migrating virtual machines between hypervisors
JP6018590B2 (ja) ライブラリーオペレーティングシステムによるアプリケーションの互換性
US9465636B2 (en) Controlling virtual machine in cloud computing system
JP6196356B2 (ja) コンテナに基づく仮想化システム用動作キャプチャ方法、および装置
JP2017111812A (ja) 透明で安全なインターセプション処理のための方法、コンピュータ・システム、ファームウェア、ハイパーバイザおよびコンピュータ・プログラム
KR20060047766A (ko) 가상 기계 환경에서 에뮬레이트된 장치들을 개발하기 위한시스템 및 방법
KR101806090B1 (ko) 멀웨어 검출을 위한 애플리케이션들의 제네릭 언패킹
US20160085568A1 (en) Hybrid virtualization method for interrupt controller in nested virtualization environment
TW200917128A (en) Virtual machine (VM) migration between processor architectures
JP2010272055A (ja) 情報処理装置および方法、並びにプログラム
US8875132B2 (en) Method and apparatus for implementing virtual proxy to support heterogeneous systems management
US20130318528A1 (en) Information processing method
WO2020063432A1 (zh) 一种升级虚拟化模拟器的方法和装置
JP6197871B2 (ja) 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム
JP6189267B2 (ja) 情報処理装置、方法およびプログラム
Tang et al. When virtualization encounter AFL
JP5929353B2 (ja) 例外処理方法、プログラム及び装置
KR101083271B1 (ko) 액티브엑스 컨트롤 변환 시스템 및 방법
Im et al. On-demand virtualization for live migration in bare metal cloud
KR101554554B1 (ko) 가상 머신 구동 시스템 및 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170404

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170807

R150 Certificate of patent or registration of utility model

Ref document number: 6197871

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees