JP2008530706A - メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム - Google Patents

メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム Download PDF

Info

Publication number
JP2008530706A
JP2008530706A JP2007556158A JP2007556158A JP2008530706A JP 2008530706 A JP2008530706 A JP 2008530706A JP 2007556158 A JP2007556158 A JP 2007556158A JP 2007556158 A JP2007556158 A JP 2007556158A JP 2008530706 A JP2008530706 A JP 2008530706A
Authority
JP
Japan
Prior art keywords
memory
machine
computer system
notifying
message
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
JP2007556158A
Other languages
English (en)
Other versions
JP4921384B2 (ja
JP2008530706A5 (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2008530706A publication Critical patent/JP2008530706A/ja
Publication of JP2008530706A5 publication Critical patent/JP2008530706A5/ja
Application granted granted Critical
Publication of JP4921384B2 publication Critical patent/JP4921384B2/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • 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/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/45583Memory management, e.g. access or allocation

Abstract

バーチャル・マシン・マネージャ(「VMM」)が、メモリを、1台のバーチャル・マシン(「VM」)からもう一方へ、ダイナミックに再割り当てすることを可能にする方法、装置及びシステム。VMMは、メモリが現在割り当てられているVMに対するメッセージを生成してもよく、メモリがシャット・ダウンしているデバイスに通知してもよい。現在のVMは、その後で、メモリのコンテンツをホスト・ハードディスクにコピーして、メモリからイジェクトしてもよい。VMMは、それから、メモリが利用でき、第2のVMがそれからメモリをその空きメモリ・リソースに加えてもよいことを、他のVMに通知してもよい。
【選択図】なし

Description

バーチャライゼーション・テクノロジへの関心は、プロセッサ・テクノロジが進歩するにつれて着実に増している。バーチャライゼーション・テクノロジの1つの態様では、バーチャル・マシン・モニタ(「VMM」)を実行している単一のホスト・コンピュータが、そのホストの基本的なハードウエアが一つ以上の独立して動作するバーチャル・マシン(「VM」)として存在するような、ホストのマルチプル・アブストラクト及び/又はビューを提示することを可能にする。各VMは、それ自身のオペレーティング・システム(「OS」)、及び/又は、ソフトウェア・アプリケーション(複数の場合を含む)を実行する自己内蔵型プラットホームとして動作してもよい。VMMは、ホスト上のリソースの割り当てを管理して、必要に応じて、ラウンド−ロビン又は他の所定の方式による各種のバーチャル・マシンの間で循環させるコンテクスト・スイッチングを実行する。
本発明の各実施形態は、バーチャル・マシン(複数の場合を含む)上のオペレーティング・システムをリブートすることなく、1台のバーチャル・マシンからもう一方へ、リソースをダイナミックに再割り当てするための方法、装置及びシステムを提供する。明細書中に参照される本発明の「一実施形態」又は「実施形態」とは、実施形態と関連して記述された特定の機能、構成又は特性が、本発明の少なくとも一つの実施形態に含まれることを意味する。したがって、明細書の全体にわたり様々な場所に現れる「一実施形態において、」、「一実施形態によれば」等の句の出現は、必ずしも同じ実施形態を全て参照するわけではない。
図1は、代表的なバーチャル・マシンのホスト・プラットホーム(ホスト100)の一例を示す。前述したように、バーチャル・マシン・モニタ(「VMM130」)は、概してホスト・プラットホーム上で実行され、他のソフトウェアに、プラットホームのアブストラクト及び/又はビュー(又は、「バーチャル・マシン」、又は、「VM」とも参照される)を提示する。図には2つのVM部分(「VM110」及び「VM120」、この後集合的に「VM」として参照される)だけが示されるが、これらのVMは、単に例を示すだけであり、追加のバーチャル・マシンが、ホストに加えられてもよい。VMM130は、ソフトウェア(例えば、ホスト・オペレーティング・システムのコンポーネント、及び/又は、独立型プログラムとして)、ハードウエア、ファームウェア、及び/又は、それらの任意の組合せによりインプリメントされてもよい。
VM110及びVM120は、それら自身の「ゲスト・オペレーティング・システム」(すなわち「ゲストOS111」及び「ゲストOS121」として図示され、この後集合的に「ゲストOS」として参照され、VMM130によりホストされるオペレーティング・システム)、他のソフトウェア(「ゲスト・ソフトウェア112」及び「ゲスト・ソフトウェア122」として図示され、この後集合的に「ゲスト・ソフトウェア」として参照される)を実行することにより、それぞれ自己内蔵型プラットホームとして機能してもよい。各ゲストOS及び/又はゲスト・ソフトウェアは、バーチャル・マシン上ではなく専用コンピュータ上で実行しているかのように動作する。すなわち、各ゲストOS及び/又はゲスト・ソフトウェアは、様々なイベントを制御することを期待してもよく、ホスト100上のハードウェア・リソースにアクセスしてもよい。実際には、VMM130は、イベント上の最終的な制御及びハードウェア・リソースを有しており、それ自身のポリシーにより、リソースをバーチャル・マシンに割り当てる。
図1の各VMは、メモリを、モニタ及び/又はダイナミックに再割り当てするために、一般的に、アドバンスド・コンフィギュレーション・アンド・パワー・インターフェース(「ACPI」)ドライバ(「ACPI OSドライバ113」及び「ACPI OSドライバ123」)を備える。ACPI(例えば、リビジョン2.0b、2002年10月11日)は、プラットホーム・コンフィギュレーション及びパワー・マネジメント・スキームのためのオープンな業界標準規格である。ACPIドライバは、現在存在しており、当業者にとって周知である。これらのドライバは、VMM及びバーチャルホスト上のVM間で一般的ACPIインタラクションを使用可能にするために用いられる。以下の説明は、ACPIプロトコルの使用を前提とするが、本発明の実施形態の趣旨から逸脱することなく、他のコンフィギュレーション・プロトコルを用いてもよい。
様々なメモリ・リソースを、ホスト100(図1においては、メモリ・リソース140の一部がVM110に割り当てられて、他の部分がVM120に割り当てられた場合のメモリ・リソース140として集合的に示した)に用いてもよい。ホスト100上の様々なVMに対するメモリ・リソースの割り当ては、VMM130により管理される。一般的に、VMM130は、VMがインスタンスを生成するときに、メモリ・リソースをVMに割り当てる。新規なVMを加えるために、これらのリソースを再割り当てする現存しているスキームは、一般的に扱いにくい。例えば、VMM130は、ホスト100上のVMをシャット・ダウンし、それから、全てのVM(オリジナル及び新規なVM)を、再割り当てされたリソースで再起動させてもよい。このスキームは、各種のVMのゲストOSが、VM初期化プロセスの一部で、メモリ・リソースの変更を検出することを可能にする。しかし、そのスキームは、リソースのいかなるタイプのダイナミックな再割り当ても可能ではなく、本質的に、新規なVMのインスタンス生成を可能にするために、ホスト100上のアクティブVMにリブートを要求する。
代替として、所有権が保持されているソフトウェア(例えば、ソフトウェア・ドライバ、図1のVM110の「ソフトウェア・ドライバ150」として概念的に図示される)が、メモリ・リソース140の再割り当て処理をするために、ホスト100上の各VMに加えられてもよい。ソフトウェア・ドライバ150は、1つのVMからメモリ・リソースを効果的に削除することにより、メモリ・リソース140を再割り当てし、VMM130がもう一つのVMにこれらのリソースを再割り当てするのを可能にする役割を果たしてもよい。マルチプル・ソフトウェア・ドライバは、オペレーティング・システムの異なるタイプ及び/又はバージョンを生成して保持しなければならない場合がある。ソフトウェア・ドライバをVMに加えることは、一般的に、VMM130に大量の新型コードを加えることを含んでいる。更に、これらのドライバは、また、ソフトウェア・ドライバ及びVMM130間の所有権の保持されたインタフェースを要求する可能性がある。最終的に、このスキームは、保持するのが困難で、VMM130の安定性の問題をおこす結果となる可能性があり、したがって、ホスト100のパフォーマンスに影響する。
本発明の実施形態は、バーチャル化されたホスト上のメモリ・リソースのダイナミックな再割り当てを可能にする。より具体的には、本発明の一つの実施形態において、メモリ・リソースは、ホスト100上のVMを「リブート」することなく、追加のソフトウェアなしで、再割り当てされてもよい。図2は、更に詳細な本発明の一実施形態を図示する。図示したように拡張VMM230は、ソフトウェアをVMに加える要求を避けると共にメモリをダイナミックに再割り当て及び/又はモニタするために、様々なVM上のACPI OSドライバ113及びACPI OSドライバ123と相互に作用してもよい。本発明の実施形態の拡張VMM230は、下記に詳述されているホスト100上のメモリをダイナミックに再割り当てするために、ACPIドライバを利用してもよい。拡張VMM230が、存在している一つのVMM及び/又は存在している一つのVMMと連動して動作してもよい他の構成要素に設けられる拡張機能を有してもよいことは、当業者であれば明白である。拡張VMM230は、それゆえに、ソフトウェア(例えば、独立型プログラム及び/又はホスト・オペレーティング・システムのコンポーネントとして)、ハードウエア、ファームウェア及び/又はそれらのいかなる組合せによりインプリメントされてもよい。
メモリ・リソース140は、スタティックな部分及びダイナミックな部分を有してもよい。一実施形態において、図2に示したように、メモリ・リソース140(「スタティック・メモリ214」及び「スタティック・メモリ224」)の一部は、各VMに専有されてもよく、一方、メモリ・リソース140の他の部分は、ダイナミックに割り当てられて、及び/又は、VM110及びVM120の間で共有されてもよい。代替の実施形態において、メモリ・リソース140の全部が、VM110及びVM120により共有されてもよく、すなわち、VMが、メモリの各々に専有されるスタティックな部分を有さないで、その代替に、メモリの適切な量が各々にダイナミックに割り当てられてもよい。説明目的のため、以前の仮定(すなわち、メモリのスタティックな部分及びダイナミックな部分)が以下で使用される。本実施形態において、ダイナミック・メモリの一部は、最初に各VM(図2において、VM110に割り当てられたダイナミック・メモリ215、VM120に割り当てられたダイナミック・メモリ225として図示される)に割り当てられてもよいが、これらの部分は、いつでもダイナミックに削除及び/又は追加されてもよい。本発明の一実施形態によれば、拡張VMM230は、メモリ・リソースが再割り当てされなければならないことを決定してもよい。この決定は、拡張VMM230に与えられた標準に基づいてか、及び/又は、VMからの追加のリソースのリクエストに応じて、自動的に作られてもよい。本例の目的に対して、仮定条件は、リソースがVM110から削除されていて、VM120に再割り当てされていることである。
リソースの再割り当てが決定するとすぐに、拡張VMM230は、VM110に一つのACPI汎用イベント(「GPE」)を生成してもよい。一実施形態において、拡張VMM230により生成されるACPIイベントは、ホスト100のハードウエアにより処理され及び/又は発生されるよりは、むしろ、ソフトウェアにおいて、エミュレートされてもよい。GPEを受けるとすぐに、VM110のゲストOS111は、GPEの目的を決定するために、ACPIイベント・ステータス・レジスタを読込み及び/又は他のオペレーション(例えば、ホスト・バスのコンフィギュレーション・レジスタに関連する問合せ(この後「コンフィギュレーションの問合せ」と記載)を作る)を実行してもよい。拡張VMM130は、これらのオペレーションをインターセプトして、ダイナミック・メモリ215が削除されているVM110に通知してもよい。その結果として、メモリが実際は「削除」されていないけれども、VM110にはそのように見える。このインフォメーションを受けるとすぐに、ゲストOS111は、メモリのいかなる現在のインフォメーションも、ホスト100のハードディスクにスワップしてもよく、その後で、ダイナミック・メモリ215を「イジェクト」、すなわち、ゲストOS111は、シャット・ダウン及び/又は削除されているメモリに通知するために、メッセージをダイナミック・メモリ215に送信してもよい。
実際のダイナミック・メモリ215は、実際にはシャット・ダウン状態でないので、拡張VMM230は、VM110からダイナミック・メモリ215へのメッセージをインターセプトする。その後で、ダイナミック・メモリ215は、他のVMに再割り当てされるために用いられてもよい。拡張VMM230は、すぐに、ホスト100上の他のVM、例えば、VM120(図3にて図示したような)に、ダイナミック・メモリ215を再割り当てしてもよい。具体的には、一実施形態において、拡張VMM230は、今度はVM120に対して、エミュレートされたACPI GPEを再び生成してもよい。VM120のゲストOS121は、ACPIイベント・ステータス・レジスタを読込んでもよく及び/又はGPEの要因を決定するために他のオペレーションを実行してもよい。再び、拡張VMM230は、これらのオペレーションをインターセプトして、ダイナミック・メモリ215が使用可能であることをVM120に通知してもよい。一実施形態において、拡張VMM230は、ゲストVM120のメモリ空間にデバイス・テーブル(ACPI仕様により定義される)を生成することによりVM120に通知してもよい。このインフォメーションを受けるとすぐに、ACPI OSドライバ123と関連したゲストOS121は、ダイナミック・メモリ215を、VM120に使用可能なメモリ・リソースに加えて(例えば、メモリをページテーブルその他に加える)、その後、デバイスが他のVMによりリクエストされるか及び/又は拡張VMM230がダイナミック・メモリ215を再割り当てすることを決める時まで、このメモリに排他的アクセスを適用してもよい。ゲストOS121及びACPI OSドライバ123がメモリをVM121に加える方法の詳細は、当業者にとって周知であり、その更なる説明は、本願明細書において、省略される。
本発明の実施形態は、このようにして拡張VMM230が、ゲストOS111及びゲストOS121をリブートすることなしに、追加のソフトウェアを必要とすることなく、1つのVMから他にメモリをダイナミックに再割り当てすることを可能にする。このフレキシビリティは、VMがホスト100にインスタンスを生成するに従い、ますます増加して価値を有するようになる。なぜなら、ダイナミックにメモリ・リソースを再割り当てする能力は、必要に応じて、拡張VMM230に各VMのパフォーマンスを最適化する(例えば、そのメモリ・リソースが効率的に割り当てられることを保証することにより)ことを可能にするためである。図4は、本発明の一実施形態の一つの概要を図示しているフローチャートである。以下のオペレーションは、シーケンシャル・プロセスとして記載されていてもよいが、オペレーションの多くは、実際には平行、及び/又は、同時に実行されてもよい。加えて、オペレーションの命令は、本発明の各実施形態の趣旨から逸脱することなく、再配置されてもよい。401において、拡張VMM230は、リクエストを受信して、及び/又は、ダイナミック・メモリ215の再割り当てを決定させる。402において、拡張VMM230は、一つのACPI GPEを、現在それ専用であるダイナミック・メモリ215を有するVM110に生成してもよい。前述したように、本願明細書においては、本発明の各実施形態がACPIに関して記載されているが、他のインタフェース、及び/又は、プロトコルが、本発明の各実施形態の趣旨から逸脱しないで、同一の効果を得るために使用されてもよい。403において、VM110のゲストOS111は、ACPIイベント・ステータス・レジスタを読込んでもよく、及び/又は、GPEの要因を決定するために他のオペレーションを実行してもよい。404において、これらのオペレーションは拡張VMM230によりインターセプトされてもよく、拡張VMM230は、VM110にダイナミック・メモリ215がシャット・ダウンしていることを通知してもよい。405において、ゲストOS111は、その後で、ダイナミック・メモリ215のインフォメーションを、ホスト100のハードディスクにスワップして、デバイスをイジェクトしてもよい。406において、拡張VMM230は、第2のACPI GPEをVM120に送信してもよい。407において、VM120のゲストOS121は、ACPIイベント・ステータス・レジスタを読込んでもよく、及び/又は、GPEの要因を決定するために他のオペレーションを実行してもよい。408において、これらのオペレーションは、拡張VMM230によりインターセプトされてもよく、拡張VMM230は、ダイナミック・メモリ215が使用可能であることを、VM120に通知してもよい。409において、その後で、ゲストOS121(ACPI OSドライバ123と連動して)は、ダイナミック・メモリ215をその使用可能なリソースにマップしてもよくて、それからダイナミック・メモリ215に排他的アクセスを持ってもよい。
上記した説明は、マルチプルVMを実行しているホストに集中しているが、本発明の各実施形態はそれに限らない。その代替として、本発明の各実施形態は、バスを共有する多重の独立したコンピュータ・システム(バーチャルの、又は、その他の)を有するいかなるプラットホームでインプリメントされてもよい。このように、例えば、独立したコンピュータ・システムを有しているサーバ・システムにおいて、コンピュータ・システムのうちの1つが障害のためのバックアップ・システムとして使用されてもよい。メインのコンピュータ・システムの障害時にはすぐに、本発明の各実施形態が、コンピュータ・システムをバックアップするための全メモリ・リソースをダイナミックに再割り当てするためのコンポーネントを、管理及び/又はモニタリングすることにより用いられてもよい。このようにして、いかなるオペレーティング・システムもリブートすることなく実行し続けるサーバ・システムが可能になる。様々な他のタイプのシステムが、また、本発明の他の各実施形態により利益を得てもよい。
本発明の各実施形態によるホストは、様々なコンピューティングデバイス上でインプリメントされてもよい。本発明の一実施形態によれば、コンピューティングデバイスは、本発明の一つの実施形態をなしとげるための命令を実行できる様々なコンポーネントを含んでもよい。例えば、コンピューティングデバイスは、少なくとも一つのマシン−アクセスが可能なメディアを備えるか、及び/又は、接続されてもよい。この明細書に用いられているように、「マシン」は、一つ以上のプロセッサを有するいかなるコンピューティングデバイスをも含むが、これに限定されるものではない。この明細書において、用いられているように、マシン−アクセスが可能なメディアは、インフォメーションをコンピューティングデバイスによりアクセス可能ないかなるフォームでも記憶、及び/又は、伝送するいかなるメカニズムも含み、そのマシン−アクセスが可能なメディアは、レコーダブル/ノン・レコーダブル・メディア(例えば、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体及びフラッシュメモリ・デバイス)、と同様に、電気、光学、音響、又は、他の形態の伝搬される信号(例えば、搬送波、赤外線シグナル及びデジタル信号)を含むが、それに限られない。
一実施形態によれば、コンピューティングデバイスは、一つ以上のプロセッサのような、様々な他の周知のコンポーネントを含んでもよい。プロセッサ及びマシン−アクセスが可能なメディアは、ブリッジ/メモリ・コントローラを用いて通信接続されてもよく、プロセッサは、マシン−アクセスが可能なメディアに記憶された命令を実行できてもよい。ブリッジ/メモリ・コントローラは、グラフィック・コントローラに接続されてもよく、グラフィック・コントローラは、ディスプレイ装置上の表示データの出力を制御してもよい。ブリッジ/メモリ・コントローラは、一つ以上のバスに接続されてもよい。これらの構成要素のうちの1つ以上は、単一のパッケージ上、又はマルチプル・パッケージ又はダイを使用するプロセッサと共に集積化されてもよい。ユニバーサル・シリアル・バス(「USB」)ホスト・コントローラのようなホスト・バス制御装置は、バス(複数の場合を含む)に接続されてもよく、複数のデバイスがUSBに接続されてもよい。例えば、キーボード及びマウスのようなユーザー入力デバイスは、入力データを供給するためのコンピューティングデバイスに含まれてもよい。代替の各実施形態において、ホスト・バス制御装置は、PCI、PCIエクスプレス、ファイヤワイヤ及びその他のそのような現存するか将来の規格を含む様々な他の相互接続規格と互換性があってもよい。
上記した明細書においては、本発明が、特定の例示的な各実施形態について記載されている。しかし、請求項に記載した本発明のより広い精神と範囲から逸脱することなく、それに対して、様々な変更形態と変更が実施されてもよいことが理解できる。本明細書及び図面は、したがって、制限的な意味よりむしろ一つの説明用とみなせる。
本発明の添付図面は、一例であり、かつ、本発明を限定するものではなく、同類の参照符号は、同様の要素を示す。添付図面において:
代表的なバーチャル・マシン・ホストの一例を示す。
本発明の一実施形態の概要を示す。
図2のイジェクトされたメモリを本発明の一実施形態による新規なVMに割り当てる場合の概要を示す。
本発明の一実施形態を図示するフローチャートである。

Claims (20)

  1. 第1のバーチャル・マシン(「VM」)から第2のVMへメモリをダイナミックに再割り当てする方法であって、
    第1のVMに、メモリが削除されたことを通知することと、
    前記第1のVMに、前記メモリに対するシャット・ダウン命令を発行させることと、
    前記シャット・ダウン命令をインターセプトすることと、
    第2のVMに、前記メモリが使用可能であることを通知することと、
    を備える方法。
  2. 前記第1のVMに前記メモリが削除されたことを通知することは、更に、
    前記メモリのために前記第1のVMへの第1のメッセージを生成することと、
    前記第1のメッセージの要因に関する前記第1のVMからの第1の問合せをインターセプトすることと、
    前記第1の問合せに応答して、前記第1のVMに、前記第1のVMに割り当てられた前記メモリがシャット・ダウン中であることを通知することと、
    を有する請求項1に記載の方法。
  3. 更に、前記第1のVMに、前記メモリをイジェクトするための命令を発行させること、
    を備える請求項2に記載の方法。
  4. 前記第1のVMに、前記メモリが削除されたことを通知することは、更に、
    前記第1のVMに、アドバンスド・コンフィギュレーション・アンド・パワー・インターフェース(「ACPI」)プロトコルにより、前記メモリが削除されたことを通知すること、
    を有する請求項1に記載の方法。
  5. 前記第2のVMに、前記メモリが使用可能であることを通知することは、更に、
    前記第2のVMに、前記メモリを割り当て、前記第2のVMに対する第2のメッセージを生成することと、
    前記第2のVMからの前記第2のメッセージの要因に関する第2の問合せをインターセプトすることと、
    前記第2のVMに、前記メモリが使用可能であることの前記第2の問合せに応答して、通知することと、
    を有する請求項1に記載の方法。
  6. 前記第2のVMに、前記メモリが使用可能であることを通知することは、更に、
    アドバンスド・コンフィギュレーション・アンド・パワー・インターフェース(「ACPI」)プロトコルによる前記第2のVMを通知すること、
    を有する請求項5に記載の方法。
  7. 更に、前記第2VMにより発行されたコンフィギュレーションの問合せをインターセプトすること、
    を備える請求項5に記載の方法。
  8. 更に、前記メモリを前記第1のバーチャル・マシンから前記第2バーチャル・マシンへ再割り当てするユーザ・リクエストを受信すること、
    を備える請求項1に記載の方法。
  9. 前記メモリを前記第1のバーチャル・マシンから前記第2バーチャル・マシンへ再割り当てすることは、所定の割付けポリシーに基づく
    請求項1に記載の方法。
  10. メモリをダイナミックに再割り当てできるホスト・コンピュータのシステムであって、
    モニタリング・モジュールと、
    前記モニタリング・モジュールに接続される第1のコンピュータ・システムと、
    前記モニタリング・モジュールに接続される第2のコンピュータ・システムと、
    前記モニタリング・モジュールに接続されるフィジカルデバイスと、
    を備え、
    前記モニタリング・モジュールは、前記第1のコンピュータ・システムにメモリが削除されたことを通知することにより、前記メモリを前記第1のコンピュータ・システムから前記第2コンピュータ・システムへダイナミックに再割り当てできる、
    ホスト・コンピュータのシステム。
  11. 前記モニタリング・モジュールは、更に、
    前記第1のコンピュータ・システムにメッセージを生成することにより、前記メモリが削除されたことを、前記第1のコンピュータ・システムに通知できる
    請求項10に記載のシステム。
  12. 前記モニタリング・モジュールは、更に、
    前記第1のコンピュータ・システムにより前記メモリに対して発行されたメッセージをインターセプトすることができる
    請求項11に記載のシステム。
  13. 前記モニタリング・モジュールは、更に、
    前記第2コンピュータ・システムに前記メモリを割り当てることができ、前記第2コンピュータ・システムに、前記メモリが使用可能であることを通知できる、
    請求項10に記載のシステム。
  14. 前記第1のコンピュータ・システム及び前記第2コンピュータ・システムは、ホスト・コンピュータ上のバーチャル・マシン(「VM」)である
    請求項10に記載のシステム。
  15. 命令を記憶させたマシン−アクセスが可能なメディアを備える製造物であって、
    マシンにより実行される時に、
    前記マシンに、メモリを、第1のバーチャル・マシン(「VM」)から第2VMへ、ダイナミックに再割り当てさせ、
    前記第1のVMに前記メモリが削除されたことを通知し、
    前記第1のVMに前記メモリへのシャット・ダウン命令を発行させ、
    前記シャット・ダウン命令をインターセプトし、
    前記第2VMに、前記メモリが使用可能であることを通知させる、
    製造物。
  16. 前記命令は、前記マシンにより実行される時に、更に、
    前記マシンに、前記メモリが削除されたことを前記第1のVMへ通知させ、
    前記メモリのために前記第1のVMへの第1のメッセージを生成させ、
    前記第1のメッセージの要因に関する前記第1のVMからの第1の問合せをインターセプトさせ、
    前記第1のVMに、前記第1のVMに割り当てられた前記メモリがシャット・ダウン中であることの前記第1の問合せに応答して通知する、
    請求項15に記載の製造物。
  17. 前記命令は、前記マシンにより実行される時に、更に、
    前記マシンに、前記第1のVMに前記メモリをイジェクトさせる命令を発行させる、
    請求項16に記載の製造物。
  18. 前記命令は、前記マシンにより実行される時に、更に、
    前記マシンに、前記メモリがアドバンスド・コンフィギュレーション・アンド・パワー・インターフェース(「ACPI」)プロトコルにより削除されたことを、前記第1のVMに通知させる、
    請求項15に記載の製造物。
  19. 前記命令は、前記マシンにより実行される時に、更に、
    前記マシンに、前記メモリが使用可能であることを前記第2VMに通知させ、
    前記デバイスを、前記第2VMへの第2メッセージを生成する前記第2VMに割り当て、
    前記第2VMから前記第2メッセージの要因に関する第2問合せをインターセプトし、
    前記第2問合せに応答して、前記メモリが使用可能であることを前記第2VMに通知させる、
    請求項15に記載の製造物。
  20. 前記命令は、前記マシンにより実行される時に、更に、
    前記マシンに、アドバンスド・コンフィギュレーション・アンド・パワー・インターフェース(「ACPI」)プロトコルにより前記メモリが使用可能であることを前記第2VMに通知させる、
    請求項19に記載の製造物。
JP2007556158A 2005-02-17 2006-01-30 メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム Expired - Fee Related JP4921384B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/062,202 2005-02-17
US11/062,202 US20060184938A1 (en) 2005-02-17 2005-02-17 Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
PCT/US2006/003320 WO2006088637A1 (en) 2005-02-17 2006-01-30 Method, apparatus and system for dynamically reassigning memory from one virtual machine to another

Publications (3)

Publication Number Publication Date
JP2008530706A true JP2008530706A (ja) 2008-08-07
JP2008530706A5 JP2008530706A5 (ja) 2010-12-02
JP4921384B2 JP4921384B2 (ja) 2012-04-25

Family

ID=36463492

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007556158A Expired - Fee Related JP4921384B2 (ja) 2005-02-17 2006-01-30 メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム

Country Status (6)

Country Link
US (1) US20060184938A1 (ja)
EP (1) EP1856609A1 (ja)
JP (1) JP4921384B2 (ja)
KR (1) KR20070100367A (ja)
CN (1) CN101120317A (ja)
WO (1) WO2006088637A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079468A (ja) * 2008-09-25 2010-04-08 Hitachi Ltd ファイルサーバリソース分割方法、システム、装置及びプログラム

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971203B2 (en) * 2004-03-05 2011-06-28 Intel Corporation Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another
US7788665B2 (en) 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US7814495B1 (en) * 2006-03-31 2010-10-12 V Mware, Inc. On-line replacement and changing of virtualization software
US8024815B2 (en) * 2006-09-15 2011-09-20 Microsoft Corporation Isolation environment-based information access
US8056084B2 (en) * 2007-01-25 2011-11-08 Hewlett-Packard Development Company, L.P. Method and system for dynamically reallocating a resource among operating systems without rebooting of the computer system
JP5496464B2 (ja) * 2007-04-16 2014-05-21 三星電子株式会社 仮想化環境での安全なシステム保護装置および方法
US8281303B2 (en) * 2007-10-31 2012-10-02 Hewlett-Packard Development Company, L.P. Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine
US8645965B2 (en) * 2007-12-31 2014-02-04 Intel Corporation Supporting metered clients with manycore through time-limited partitioning
US20090210873A1 (en) * 2008-02-15 2009-08-20 International Business Machines Corporation Re-tasking a managed virtual machine image in a virtualization data processing system
US20090216519A1 (en) * 2008-02-25 2009-08-27 Mohan Parthasarathy Data Processing System And Method
KR101437122B1 (ko) * 2008-12-03 2014-09-02 삼성전자 주식회사 Os 가상화를 이용하여 서비스를 제공하는 장치 및 방법
EP2202639B1 (en) * 2008-12-24 2012-09-12 VirtualLogix SA Virtual machine monitor
US9740517B2 (en) * 2008-12-29 2017-08-22 Microsoft Technology Licensing, Llc Dynamic virtual machine memory management
US8327174B2 (en) 2009-03-20 2012-12-04 Hewlett-Packard Development Company, L.P. Loading operating systems using memory segmentation and ACPI based context switch
US9535767B2 (en) 2009-03-26 2017-01-03 Microsoft Technology Licensing, Llc Instantiating a virtual machine with a virtual non-uniform memory architecture
US9529636B2 (en) * 2009-03-26 2016-12-27 Microsoft Technology Licensing, Llc System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine
US8868746B2 (en) * 2009-10-15 2014-10-21 International Business Machines Corporation Allocation of central application resources based on social agreements
US9274851B2 (en) 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
KR20110083084A (ko) * 2010-01-13 2011-07-20 한국전자통신연구원 가상화를 이용한 서버 운영 장치 및 방법
US8503289B2 (en) 2010-03-19 2013-08-06 Brocade Communications Systems, Inc. Synchronizing multicast information for linecards
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
US8495418B2 (en) 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
JP5351853B2 (ja) * 2010-08-05 2013-11-27 株式会社エヌ・ティ・ティ・ドコモ 情報処理端末及びリソース解放方法
US8667496B2 (en) * 2011-01-04 2014-03-04 Host Dynamics Ltd. Methods and systems of managing resources allocated to guest virtual machines
US8661448B2 (en) * 2011-08-26 2014-02-25 International Business Machines Corporation Logical partition load manager and balancer
US9250969B2 (en) 2011-08-30 2016-02-02 At&T Intellectual Property I, L.P. Tagging a copy of memory of a virtual machine with information for fetching of relevant portions of the memory
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
JP2013134533A (ja) * 2011-12-26 2013-07-08 Fuji Xerox Co Ltd 演算処理システムおよびプログラム
WO2013162531A1 (en) * 2012-04-25 2013-10-31 Hewlett-Packard Development Company L.P. Dynamic memory allocation
US20140007097A1 (en) * 2012-06-29 2014-01-02 Brocade Communications Systems, Inc. Dynamic resource allocation for virtual machines
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
KR101587579B1 (ko) * 2014-02-19 2016-01-22 한국과학기술원 가상화 시스템에서 메모리 조정방법
WO2015130837A1 (en) * 2014-02-25 2015-09-03 Dynavisor, Inc. Dynamic information virtualization
CN104980454B (zh) * 2014-04-02 2019-08-06 腾讯科技(深圳)有限公司 一种资源数据共享方法、服务器及系统
KR101709121B1 (ko) * 2014-04-09 2017-02-22 한국전자통신연구원 가상 머신 구동 방법 및 가상 머신 구동 시스템
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
KR102387157B1 (ko) * 2015-07-27 2022-04-18 삼성전자주식회사 장치 관리 방법 및 이를 지원하는 전자 장치
US10929167B2 (en) 2019-01-09 2021-02-23 Microsoft Technology Licensing, Llc Low-latency events across a virtual machine boundary
CN109960569B (zh) * 2019-03-26 2021-04-13 联想(北京)有限公司 一种虚拟化处理方法及装置
US11334393B2 (en) 2020-01-07 2022-05-17 Bank Of America Corporation Resource cluster chaining architecture
US11301305B2 (en) 2020-01-07 2022-04-12 Bank Of America Corporation Dynamic resource clustering architecture
US10938742B1 (en) 2020-01-31 2021-03-02 Bank Of America Corporation Multiplexed resource allocation architecture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041305A (ja) * 2000-07-26 2002-02-08 Hitachi Ltd 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム
US20030212873A1 (en) * 2002-05-09 2003-11-13 International Business Machines Corporation Method and apparatus for managing memory blocks in a logical partitioned data processing system
JP2004252591A (ja) * 2003-02-18 2004-09-09 Hitachi Ltd 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法
JP2006507561A (ja) * 2002-05-09 2006-03-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 論理的に区分されたデータ処理システム中でプロセッサを動的に割り振りかつ割振り解除する方法および装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3657665B2 (ja) * 1995-02-14 2005-06-08 富士通株式会社 共用メモリに結合される複数の計算機システム及び共用メモリに結合される複数の計算機システムの制御方法
US6647508B2 (en) * 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6542926B2 (en) * 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US7433951B1 (en) * 2000-09-22 2008-10-07 Vmware, Inc. System and method for controlling resource revocation in a multi-guest computer system
US7412492B1 (en) * 2001-09-12 2008-08-12 Vmware, Inc. Proportional share resource allocation with reduction of unproductive resource consumption
US7913226B2 (en) * 2003-10-01 2011-03-22 Hewlett-Packard Development Company, L.P. Interposing a virtual machine monitor and devirtualizing computer hardware at runtime
US7984108B2 (en) * 2003-10-08 2011-07-19 Unisys Corporation Computer system para-virtualization using a hypervisor that is implemented in a partition of the host system
US7971203B2 (en) * 2004-03-05 2011-06-28 Intel Corporation Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another
US7454756B2 (en) * 2004-03-05 2008-11-18 Intel Corporation Method, apparatus and system for seamlessly sharing devices amongst virtual machines
US7421533B2 (en) * 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
US7577959B2 (en) * 2004-06-24 2009-08-18 International Business Machines Corporation Providing on-demand capabilities using virtual machines and clustering processes
US8914606B2 (en) * 2004-07-08 2014-12-16 Hewlett-Packard Development Company, L.P. System and method for soft partitioning a computer system
US20060020940A1 (en) * 2004-07-08 2006-01-26 Culter Bradley G Soft-partitioning systems and methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041305A (ja) * 2000-07-26 2002-02-08 Hitachi Ltd 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム
US20030212873A1 (en) * 2002-05-09 2003-11-13 International Business Machines Corporation Method and apparatus for managing memory blocks in a logical partitioned data processing system
JP2006507561A (ja) * 2002-05-09 2006-03-02 インターナショナル・ビジネス・マシーンズ・コーポレーション 論理的に区分されたデータ処理システム中でプロセッサを動的に割り振りかつ割振り解除する方法および装置
JP2004252591A (ja) * 2003-02-18 2004-09-09 Hitachi Ltd 計算機システム、i/oデバイス及びi/oデバイスの仮想共有方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079468A (ja) * 2008-09-25 2010-04-08 Hitachi Ltd ファイルサーバリソース分割方法、システム、装置及びプログラム

Also Published As

Publication number Publication date
JP4921384B2 (ja) 2012-04-25
CN101120317A (zh) 2008-02-06
EP1856609A1 (en) 2007-11-21
WO2006088637A1 (en) 2006-08-24
US20060184938A1 (en) 2006-08-17
KR20070100367A (ko) 2007-10-10

Similar Documents

Publication Publication Date Title
JP4921384B2 (ja) メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム
US10691363B2 (en) Virtual machine trigger
JP5323897B2 (ja) 仮想マシン・モニタと、acpi準拠ゲスト・オペレーティング・システムとの間の双方向通信のための方法、装置及びシステム
US7971203B2 (en) Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another
JP4291964B2 (ja) 仮想計算機システム
US7421533B2 (en) Method to manage memory in a platform with virtual machines
US7434003B2 (en) Efficient operating system operation on a hypervisor
US8830228B2 (en) Techniques for enabling remote management of servers configured with graphics processors
US20120054740A1 (en) Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments
US20050198633A1 (en) Method, apparatus and system for seamlessly sharing devices amongst virtual machines
US20110197190A1 (en) Virtualization method and virtual machine
US9792136B2 (en) Hardware assisted inter hypervisor partition data transfers
CN103034524A (zh) 半虚拟化的虚拟gpu
JP2009506462A (ja) 多層仮想化メカニズムを用いた階層的な仮想化
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
US20240054006A1 (en) Virtualization processing system, method and apparatus, and device
US10318460B2 (en) UMA-aware root bus selection
CN111213127A (zh) 用于直接分配的设备的虚拟化操作
US20060143204A1 (en) Method, apparatus and system for dynamically allocating sequestered computing resources
KR102001641B1 (ko) 가상화 환경에서의 gpu 자원 관리 방법 및 장치
KR101564293B1 (ko) 장치 가상화 방법 및 장치
JP4548514B2 (ja) 仮想計算機システムの制御方法
JP4292220B2 (ja) 仮想計算機システム
Opsahl A Comparison of Management of Virtual Machines with z/VM and ESX Server

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100929

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101006

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20101015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111102

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: 20120117

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120202

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees