JP2010033206A - 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法 - Google Patents

仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法 Download PDF

Info

Publication number
JP2010033206A
JP2010033206A JP2008192965A JP2008192965A JP2010033206A JP 2010033206 A JP2010033206 A JP 2010033206A JP 2008192965 A JP2008192965 A JP 2008192965A JP 2008192965 A JP2008192965 A JP 2008192965A JP 2010033206 A JP2010033206 A JP 2010033206A
Authority
JP
Japan
Prior art keywords
page
virtual
machine
mapping information
memory
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
JP2008192965A
Other languages
English (en)
Other versions
JP5146174B2 (ja
Inventor
Noboru Iwamatsu
昇 岩松
Naoki Nishiguchi
直樹 西口
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
Priority to JP2008192965A priority Critical patent/JP5146174B2/ja
Priority to US12/501,892 priority patent/US8261267B2/en
Publication of JP2010033206A publication Critical patent/JP2010033206A/ja
Application granted granted Critical
Publication of JP5146174B2 publication Critical patent/JP5146174B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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

【課題】 軽負荷かつ広範囲に適用可能な仮想マシン間メモリ共有制御を実現する。
【解決手段】 仮想マシンモニタ装置1のオブジェクトファイルマッピング情報生成部11は,仮想マシンのゲストOSを構成するオブジェクトファイル4からテキストセグメントの仮想ページへのマッピング情報をデータベース化する。仮想マシン起動時に,仮想ページ・オブジェクト対応管理部13は,オブジェクトファイルとその仮想ページとを対応づけて管理し,メモリマッピング時に,オブジェクト・マシンページ対応管理部17は,オブジェクトファイルとその仮想ページがマッピングされたマシンメモリのページとを対応づけて管理する。仮想マシンのメモリアクセスに対し,共有可能マシンページ検出部16は,アクセス先の仮想ページと同一内容のマシンページを探し出し,ページマッピング部15は,メモリアクセスに対して探し出したマシンページをマッピングして,仮想マシン間でページを共有させる。
【選択図】 図2

Description

本発明は,1台の実マシン上で複数の仮想マシンを動作させる仮想化技術において,仮想マシン間のメモリ共有を可能にする仮想マシンモニタ装置およびプログラム,ならびに仮想マシンモニタ装置が実行する仮想マシン間メモリ共有管理方法に関する。
より詳しくは,仮想マシンに割り当てられるメモリ空間を実マシンのメモリ空間にマッピングする際に,一部の実マシンのメモリ空間を複数の仮想マシンのメモリ空間から参照させることにより,仮想マシン間でメモリを共有可能とするメモリ管理機能を備える仮想マシンモニタ技術に関する。
仮想化技術では,1台の物理計算機上に複数の仮想マシンを作成し,仮想マシンはその上で動作するOS(ゲストOSと呼ぶ)に対し,あたかも独立したハードウェア上で動作しているかのように見せかける。複数の独立したゲストOSを1台のハードウェアに集約して実行し,CPU・ストレージなどのハードウェア資源を効率的に運用できるなどのメリットがある。
一方で,1つのハードウェア・OS上で複数のサーバアプリケーションを動作させる場合と比較した仮想化のデメリットとしては,メモリ利用効率の悪さが挙げられる。例えば,1つのOS上でA,Bという2つのサーバアプリケーションを動かす場合と,1つのOS上でそれぞれA,Bを動かす2つの独立した仮想マシンとを比較すると,後者では各仮想マシンがそれぞれ個別にOSなどのプログラム実行コードをメモリ上に持つことになり,その分仮想マシン全体で消費するメモリ量が大きくなる。
仮想化においてメモリ利用効率を改善するには,仮想マシンに割り当てられているページで複数の仮想マシン間で同一内容のものを共通で参照すればよい。
仮想マシンに割り当てられているページから同一内容のページを探しだす従来技術として,仮想化ソフトウェアであるVMware ESX Serverが行っている方法がある。このVMware ESX Serverでは,ゲストOSのページ領域をスキャンし,実行属性または読み取り属性のページ(CPUから確認可能で一般にプログラムの実行コードが置かれるページ)のハッシュ値をインデックス化し,そのハッシュテーブルを用いてハッシュ値が一致するページを検出し,検出したページのページ内容を比較することによって共有可能なページを特定し,メモリの共有を行っている(例えば,特許文献1参照)。
また,別の従来技術として,1台の計算機上で動作する複数のOS間で,OSの構成モジュールを共有する方法がある。この方法では,OSのマイクロカーネルをロードする際に,カーネルローダが,マイクロカーネルのオブジェクトを複数OSで参照可能な共通領域に配置し,複数OSで参照可能なオブジェクトのリスト管理とページテーブルへの設定を行う(例えば,特許文献2参照)。
米国特許US6789156号公報 特開2007−35066号公報
仮想マシンに割り当てられるページから同一内容のページを探しだす従来技術では,基本的にページ内容を比較するため,ハードウェアの搭載メモリ量,仮想マシン数等が増加するにつれて,計算負荷が大きくなるという問題があった。
従来技術により,仮想マシン間でメモリを共用しようとする場合に,仮想マシン実行中に仮想マシンの使用する全ページ,例えば,通常のページサイズ4KBの場合には1GB当たり262144ページを参照し,計算を行う必要があり,仮想マシン数や使用メモリ量に応じて計算量がリニアに増加していく。
また,従来のOSの構成モジュールを共有する方法では,共有可能なページがマイクロカーネルモジュールに限定されるうえ,共有の設定もOS初期化時のみに行われる。そのため,メモリ共有対象が仮想マシン起動時に初期化されるOSのマイクロカーネルモジュールに制限され,共有化の適用範囲が非常に狭くなる。
本発明は,かかる問題に鑑みてなされたものであり,仮想マシン間で同一内容のページを少ない計算負荷で検出して,仮想マシン上のOSを構成する実行ファイル全般に広く適用可能な,仮想マシン間でのメモリ共有を可能とする仮想マシンモニタ装置およびプログラム,ならび仮想マシンモニタ装置が実行する仮想マシン間メモリ共有管理方法を提供することを目的とする。
本発明に仮想マシンモニタ装置は,仮想マシンを一意に識別する仮想マシンID,仮想マシン上で動作するゲストOSを構成するオブジェクトファイルを一意に識別するオブジェクトID,およびオブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページを示す仮想ページマッピング情報を保存するマッピング情報データベースと,仮想マシンID,オブジェクトID,仮想ページマッピング情報,仮想ページがマッピングされる物理メモリのページを示すマシンページマッピング情報,および,同一のオブジェクトIDの存在を示す存在フラグを対応づける仮想ページ・オブジェクト対応テーブルと,オブジェクトID,マシンページマッピング情報,およびマシンページマッピング情報が示すページを参照する仮想マシン数を示す参照仮想マシン数を対応づけるオブジェクト・マシンページ対応テーブルとを備える。
そして,仮想マシンモニタ装置は,仮想マシン上で動作するゲストOSを構成するオブジェクトファイルを読み込むオブジェクトファイル読み込み,読み込んだオブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページを示す仮想ページマッピング情報を生成し,このオブジェクトファイルのオブジェクトIDとオブジェクトファイルが動作する仮想マシンの仮想マシンIDと生成した仮想ページマッピング情報とをマッピング情報データベースに登録する。また,マッピング情報データベースを参照して,仮想マシンの起動または終了に対応して,仮想ページ・オブジェクト対応テーブルに該当する仮想マシンのデータを追加または削除する。
さらに,仮想ページ・オブジェクト対応テーブルに同一のオブジェクトIDが複数存在する場合に,仮想ページ・オブジェクト対応テーブルに複数存在するオブジェクトIDの存在フラグに有効を設定し,存在フラグが有効となっている仮想ページに対応する物理メモリのページの割り当てまたは変更があった場合に,仮想ページ・オブジェクト対応テーブルの該当するマシンページマッピング情報を更新し,オブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページから対応するハードウェアのページへマッピングしている仮想マシンを検出した場合に,オブジェクト・マシンページ対応テーブルの参照仮想マシン数を更新する。
また,仮想マシンモニタ装置は,仮想マシンの仮想メモリのページのアドレスと自装置内の物理メモリのページのアドレスとを変換する仮想ページ・マシンページ変換テーブルを備えて,仮想メモリのページに前記物理メモリのページを割り当て,仮想メモリへのアクセス時に,アクセスする仮想マシンIDと仮想メモリのアクセス先ページとをキーとして仮想ページ・オブジェクト対応テーブルを参照し,アクセス先ページに対応するオブジェクトIDの存在フラグが有効であるかを判定して,この判定において存在フラグが有効である場合に,対応するオブジェクトIDをキーとしてオブジェクト・マシンページ対応テーブルを参照し,このオブジェクトIDのアクセス先ページに対応する物理メモリのページが存在するかを判定する。
そして,アクセス先ページに対応する物理メモリのページが存在する場合に,このアクセス先の仮想ページに対して判定した物理メモリのページを参照するように仮想ページ・マシンページ変換テーブルを更新する。
これにより,仮想マシン間で同一の内容のページを少ない計算負荷で検出し,仮想マシン上のゲストOSを構成する事項ファイル全般に広く適用可能なメモリ共有を実現することができる。
また,開示する装置のページマッピング部は,物理メモリのページをコピーオンライトで管理し,仮想マシン間で共有される物理メモリのページに対する仮想マシンからの書き込み要求があった場合に,コピーオンライトによって物理メモリの新しいページを割り当てることができる。
これにより,共有中の物理メモリのページが実行中の仮想マシン(ゲストOS)によって書き換えられようとする場合に,共有中の当該ページを保持したまま,書き換えを行うゲストOS用に新たな物理メモリのページを割り当てることができる。
また,開示する装置のオブジェクトファイルマッピング情報生成部は,仮想マシン上で動作するゲストOSを構成するオブジェクトファイルの変更を検出して,変更を検出した仮想マシンの仮想メモリマッピング情報を再生成し,仮想ページ・オブジェクト対応管理部は,前記再生成された仮想メモリマッピング情報をもとに前記仮想ページ・オブジェクト対応テーブルを更新することができる。
これにより,仮想マシンのゲストOSを構成するオブジェクトファイルが更新される場合に,この更新を検知して,該当するオブジェクトファイルの仮想ページ・オブジェクト対応テーブルを更新することができる。
また,開示する装置のオブジェクトファイルマッピング情報生成部は,仮想マシンのゲストOSを構成するオブジェクトファイルのプログラム実行部がマッピングされる仮想ページの候補を複数用意し,前記仮想ページの候補に対する仮想ページマッピング情報を生成し,前記マッピング情報データベースに保存することができる。
これにより,オブジェクトファイルのマッピングされる仮想ページが重複しているために再配置される可能性がある場合,マッピングされるアドレスに予め複数の仮想ページの候補があることが分かっている場合等にも対応することができる。
本発明によれば,物理メモリと仮想的に多重化された複数の仮想メモリとを有して複数の仮想マシンを動作させるコンピュータシステムにおいて,計算負荷が小さくかつ適用範囲が広い仮想マシン間のメモリ共有を実現することができる。
図1は,本発明にかかる仮想マシンモニタ装置を備えたコンピュータのシステム構成例を示す図である。
仮想マシンモニタ装置(VMM)1は,物理メモリと仮想的に多重化された複数の仮想メモリとを管理して複数の仮想マシン(VM1,…,VMn)を動作させるコンピュータに構成される。
図1において,コンピュータのハードウェア資源(H/W)として,中央演算ユニット(CPU),メモリ管理ユニット(MMU),外部記憶装置(HDD),メモリ(MEM)からなる。メモリ管理ユニットは通常,中央演算ユニットに内蔵されている。
仮想マシンモニタ装置1は,1台のコンピュータを複数のコンピュータとして仮想的に利用するための処理手段であり,コンピュータのハードウェア資源を区分けして,複数の仮想マシンVMに割り当てて利用させるように管理する。
仮想マシンVM上のゲストOS(Guest OS:オペレーティングシステム)のメモリアクセスは,仮想マシンモニタ装置1のメモリマッピング部2によって,実際の物理メモリMEMへのアクセスに変換される。
仮想マシン(VM1,…,VMn)は,仮想マシンモニタ装置1により,仮想的にあたかも独立したコンピュータのように動作する。仮想マシンの中央演算ユニット(vCPU),仮想マシンのメモリ管理ユニット(vMMU),仮想マシンの外部記憶装置(vHDD),仮想マシンのメモリ(vMEM)等で構成される仮想ハードウェア資源(vH/W)上でゲストOSを実行し,ゲストOSによりアプリケーションAPPを実行する。
ところで,多くのOSは仮想メモリと呼ばれる実際の物理メモリ以上のメモリがあるかのようにふるまう機能を持ち,プロセス毎に独立した仮想メモリ空間を割り当て,プロセスの切り替え毎に仮想メモリ空間も切り替えている。仮想メモリ空間にはOSの実行コードとプロセスの実行コードが配置されている。
メモリ管理ユニットMMUは,「ページング」と呼ばれる手法によって,アドレスをページ単位に分割して管理する。メモリ管理ユニットMMUは,仮想メモリ空間のページ(以下「仮想ページ」と呼ぶ)を実際の物理メモリ空間のページ(以下「マシンページ」と呼ぶ)に対応づけるために,ページテーブルという変換テーブルを用いてメモリ管理を行う。
OSは,常に全ての仮想ページを物理ページにマッピングしているわけではない。アクセス先となる仮想ページだけを物理メモリにマッピングする「デマンドページング」と呼ばれる手法を用いて,物理メモリを効率的に利用する。
図1に示すような仮想化されたコンピュータシステムにおいて,実際の物理メモリMEMは,仮想マシンモニタ装置1が管理している。仮想マシンモニタ装置1は,仮想マシンVMにあたかもその仮想マシンVMの物理メモリがあるかのように見せかけている。
仮想ページへのアクセスは,仮想マシンVMの仮想メモリ管理ユニットvMMUと,仮想マシンモニタ装置1が管理するメモリ管理ユニットMMUの二重のアドレス変換を通して,マシンページへのアクセスに変換される。
仮想マシンVMのゲストOSを構成するオブジェクトファイルは,実行形式ファイル(拡張子が“exe”のファイル),ライブラリシステムのファイル(拡張子が“dll”のファイル)等のプログラムコードを含む広義のオブジェクトファイルである。
オブジェクトファイルは,ヘッダ部分に,アーキテクチャ・バージョンなどの情報を持つファイルヘッダ,ファイルをそのオフセットでセグメントに区分しセグメントの属性と実行時にマッピングされる仮想メモリのアドレス情報を持つプログラムヘッダ等を持つ。さらに,実行時にプログラム実行コードとしてそのままメモリ上にマッピングされるテキストセグメント,プログラムの使用するデータとしてメモリ上にマッピングされるデータセグメント等を持つ。
オブジェクトファイルは仮想マシンVMの仮想外部記憶装置vHDD上のファイルであるが,一般に仮想外部記憶装置vHDDは,仮想マシンモニタ装置(VMM)1が管理する実際の外部記憶装置HDD上のパーティションの一部やファイルであり,仮想マシンモニタ装置(VMM)1に管理される。
まず,本発明にかかる仮想マシンモニタ装置の動作原理を説明する。
仮想マシンモニタ装置1は,仮想マシンVM1のゲストOSを構成するオブジェクトファイルのヘッダから,オブジェクトファイルのプログラム実行コード部であるテキストセグメントの仮想ページへのマッピング情報を仮想マシン起動前に生成しておく。
そして,仮想マシン起動時に,オブジェクトファイルとその仮想ページとを対応づけて管理する。
さらに,メモリマッピング時に,オブジェクトファイルと,その仮想ページがマッピングされたマシンメモリのページとを対応づけて管理する。
ここで,他の仮想マシンVM2に同一のオブジェクトファイルがある場合に,そのオブジェクトファイルのテキストセグメントのメモリマッピング時に,同一オブジェクトファイルのテキストセグメントがマッピングされている同一内容のページを探し出す。そして,仮想マシンVM2の仮想ページに探し出したマシンページをマッピングすることによって,仮想マシンVM1,VM2間でページを共有することができる。
以下に,本発明の実施の形態を説明する。
図2は,仮想マシンモニタ装置の構成例を示す図である。
仮想マシンモニタ装置1は,オブジェクトファイルマッピング情報生成部11,マッピング情報データベース12,仮想ページ・オブジェクト対応管理部13,ページマッピング部15,共有可能マシンページ検出部16,およびオブジェクト・マシンページ対応管理部17を備える。
オブジェクトファイルマッピング情報生成部11は,オブジェクトファイル4を読み込み,オブジェクトファイル4のヘッダ情報を解析して,オブジェクトファイル中のテキストセグメントがマッピングされる仮想アドレスの情報を,マッピング情報データベース12に登録する。
オブジェクトファイルマッピング情報生成部11は,仮想マシンVMのゲストOSを構成するオブジェクトファイル4について,図3に示されるように,仮想マシンを一意に識別する仮想マシンID,オブジェクトファイルのファイル名,オブジェクトファイルのバージョン,オブジェクトファイルの更新日時,オブジェクトファイルのサイズ等をリストとして保持し,管理する。
オブジェクトファイルマッピング情報生成部11は,オブジェクトファイル4を一意に識別するオブジェクトIDを生成する。オブジェクトIDは,図3に示すリストの各フィールドを組み合わせた文字列,または,その文字列やファイル内容から生成したハッシュ値などを用いてもよい。本実施例では説明を簡単にするため,“<ファイル名>−<バージョン>の文字列”を,オブジェクトIDとして用いる。
オブジェクトファイルマッピング情報生成部11は,オブジェクトファイル4のヘッダ情報を解析して得た仮想ページマッピング情報を,仮想マシンIDとオブジェクトIDと対応づけて,マッピング情報データベース12に登録する。
図4に,マッピング情報データベース12に登録されるマッピング情報のデータ構成例を示す。マッピング情報は,仮想マシンID,オブジェクトID,オブジェクトファイル4のテキストセグメントがマッピングされる仮想メモリのページを示す仮想ページマッピング情報で構成される。仮想ページマッピング情報は,マッピングされる仮想アドレスの先頭アドレスおよびマッピングされるサイズの組である。
また,オブジェクトファイルマッピング情報生成部11は,仮想マシンVM上で動作するゲストOSを構成するオブジェクトファイル4の変更が検出された場合に,変更が検出された仮想マシンVMのマッピング情報を再生成し,マッピング情報データベース12を更新する。
また,オブジェクトファイルマッピング情報生成部11は,仮想マシンVMのゲストOSを構成するオブジェクトファイルのテキストセグメントがマッピングされる仮想ページの候補が複数ある場合に,複数の仮想ページそれぞれに対する仮想ページマッピング情報を生成して,マッピング情報データベース12に保存する。
仮想ページ・オブジェクト対応管理部13は,仮想マシンVMの起動時に,マッピング情報データベース12から,該当する仮想マシンVMのマッピング情報を読み出し,仮想ページ・オブジェクト対応テーブル31に登録する(テーブル管理処理)。
図5に,仮想ページ・オブジェクト対応テーブル31のデータ構成例を示す。仮想ページ・オブジェクト対応テーブル31は,オブジェクトIDと,仮想マシンIDと,仮想ページを示す仮想ページ番号と,仮想ページ番号に対応するマシンページを示すマシンページ番号と,同一オブジェクトIDの存在の有無を表す同一オブジェクトの存在フラグとをフィールドとして持つ。
仮想ページ・オブジェクト対応管理部13は,新規に仮想ページ・オブジェクト対応テーブル31が追加される際に,既に存在する仮想ページ・オブジェクト対応テーブル31に同一オブジェクトIDが存在する場合には,該当する同一オブジェクトIDの「存在フラグ」に“有効(true)”を設定する。
また,仮想ページに対応するマシンページが割り当て,または,変更された場合には,仮想ページ・オブジェクト対応テーブル31のマシンページ番号を更新する(マシンページ番号更新処理)。
ページマッピング部15と共有可能マシンページ検出部16とは,メモリマッピング部2の内部に,または,メモリマッピング部2と協働可能なように構成される。メモリマッピング部2は,仮想ページ・マシンページ変換テーブル32を用いてメモリマッピングを行う。
仮想マシンVMの物理メモリvMEMは,仮想マシンモニタ装置1が用意した仮想的なものであり,実際の物理メモリにアクセスするために,仮想マシンモニタ装置1は,仮想マシンVMの物理アドレスを実際の物理アドレスに変換する必要がある。
メモリマッピング部2では,仮想ページ・マシンページ変換テーブル32を用いて,仮想マシンVMのゲストOSから仮想ページ・マシンページ変換テーブル32を参照することによって,ゲストOSの仮想メモリのアドレスを,直接,仮想マシンモニタ装置1の物理メモリ(マシンメモリ)にアドレス変換させている。
「デマンドページング」によれば,仮想ページに対応するマシンページは,常に割り当てられているわけではなく,初期状態において,仮想ページ・マシンページ変換テーブル32の物理ページのアドレスは“空”である。
メモリマッピング部2は,最初の仮想ページのアクセスの際には,仮想ページ・マシンページ変換テーブル32において対応する物理ページのアドレスが“空”であるため,ページフォルトが発生する。このページフォルトが検知されて,アクセスに物理ページを割り当て,仮想ページ・マシンページ変換テーブル32を更新し,物理ページへのアクセスが可能となる。
ページマッピング部15は,仮想ページのアクセスの際に,仮想ページ・マシンページ変換テーブル32によりマシンページの割り当てを行う(マシンページ割り当て処理)。
また,ページマッピング部15は,仮想ページ・マシンページ変換テーブル31の更新の要求に応じて,仮想ページ・オブジェクト対応管理部13に働きかけて,仮想ページ・オブジェクト対応テーブル33のマシンページのフィールドを更新する(テーブル管理処理)。
また,ページマッピング部15は,マシンページをコピーオンライトで管理し,仮想マシンVM間で共有されるマシンページに対する仮想マシンVMからの書き込み要求があった場合に,コピーオンライトによって新しいマシンページを割り当てる。
共有可能マシンページ検出部16は,仮想ページ・オブジェクト対応テーブル31を参照し,アクセス先の仮想ページに該当するオブジェクトが,既に他の仮想マシンVMの仮想ページ上に存在しているか否かを判定する(オブジェクト判定処理)。
さらに,オブジェクト・マシンページ対応テーブル33を参照して,共有可能なマシンページがあるかを検出し,共有可能なマシンページがあれば,ページマッピング部15に働きかけて,仮想マシンVM間で同一オブジェクトがマッピングされたマシンページを参照するように仮想ページ・マシンページ変換テーブル32を変更させる(共有可能ページ判定処理)。
オブジェクト・マシンページ対応管理部17は,オブジェクトとマシンページとを対応づけたオブジェクト・マシンページ対応テーブル33を持ち,オブジェクト・マシンページ対応テーブル33を管理する(テーブル管理処理)。
オブジェクト・マシンページ対応テーブル33は,図6に示されるように,オブジェクトID,そのオブジェクトファイルのテキストセグメントがマッピングされているマシンページ番号,マシンページを参照している仮想マシン数からなる。
また,オブジェクト・マシンページ対応管理部17は,マシンページを共有する仮想マシン数に変動があれば,オブジェクト・マシンページ対応テーブル33の参照仮想マシン数を更新する(参照仮想マシン数更新処理)。
図7は,仮想マシンモニタ装置1の処理を概説する図である。
仮想マシンモニタ装置1のオブジェクトファイルマッピング情報生成部11は,仮想マシンVMの起動前に,仮想マシンVMの仮想外部記憶装置vHDDに保存されているオブジェクトファイル4のファイルヘッダおよびプログラムヘッダを解析し,オブジェクトファイル4のテキストセグメントがゲストOSの仮想メモリへマッピングされる情報(仮想ページマッピング情報を生成し,マッピング情報データベース12へ保存しておく。
その後,仮想マシンVMが起動時に,仮想ページ・オブジェクト対応管理部13は,マッピング情報データベース12を参照して,実行されるオブジェクトファイル4とその仮想ページとの対応づけ情報を,仮想ページ・オブジェクト対応テーブル31に登録する。
ゲストOSの仮想ページは,仮想メモリ管理ユニットvMMU,メモリマッピング部2,メモリ管理ユニットMMUを介して,仮想マシンモニタ装置1のマシンメモリにマッピングされ,仮想マシンのゲストOSは,仮想ページのアクセスで,仮想マシンモニタ装置1の該当するマシンページを直接参照する。
仮想ページ・オブジェクト対応管理部13は,メモリマッピング時に仮想ページのオブジェクトとそのマッピングされたマシンページとの対応づけを管理し,他の仮想マシンVMに同一のオブジェクトファイルがある場合に,そのメモリマッピング時に,同一のテキストセグメントがマッピングされている同一内容のページが仮想マシンモニタ装置1内のマシンメモリにあるかを判定する。マシンメモリ内に同一内容のページがあれば,共有可能なマシンページを検出したとして,そのマシンページをマッピングし,仮想マシン間でページ共有を実現する。
図8に,仮想マシンVMの仮想メモリのアクセス時の処理フローを示す。
仮想マシンVMのゲストOSから仮想メモリvMEMへのアクセスがあった場合に,メモリマッピング部2は,仮想ページ・マシンページ変換テーブル32を参照して,仮想マシンVMのアクセス先の仮想ページに対応する仮想マシンモニタ装置1のマシンページがあるかを判定する(ステップS1)。仮想マシンVMのアクセス先の仮想ページに対応する仮想マシンモニタ装置1のマシンページがある場合は(ステップS1のYES),そのままマシンメモリへアクセスして,処理が終了する。
一方,仮想マシンVMのアクセス先の仮想ページに対応するマシンページがない場合,例えば,マシンページが未割り当ての場合,初回アクセス時の場合等は(ステップS1のNO),共有可能マシンページ検出部16が,仮想ページ・オブジェクト対応テーブル31を参照し,アクセス先の仮想ページに該当するオブジェクトが,既に他の仮想マシンVMの仮想ページ上に存在しているかを判定する(ステップS2)。
他の仮想マシンVMの仮想ページ上に同一のオブジェクトが存在する場合は(ステップS2のYES),共有可能マシンページ検出部16は,オブジェクト・マシンページ対応テーブル33を参照し,該当するオブジェクトがマシンページに存在するか否かを確認する(ステップS3)。
該当するオブジェクトがマシンページに存在する場合は(ステップS3のYES),メモリ共有が可能であると判定され,ページマッピング部15は,アクセス先の仮想ページを検出したマシンページに変換するように,仮想ページ・マシンページ変換テーブル32を更新し,検出したマシンページを割り当てるマッピング(共有マッピング)を行う(ステップS4)。
さらに,ページマッピング部15がオブジェクト・マシンページ対応管理部17に働きかけ,オブジェクト・マシンページ対応管理部17が,オブジェクト・マシンページ対応テーブル33の参照仮想マシン数を更新する(ステップS5)。
また,ページマッピング部15が仮想ページ・オブジェクト対応管理部13に働きかけ,仮想ページ・オブジェクト対応管理部13が,仮想ページ・オブジェクト対応テーブル31の該当する仮想ページの割り当てられたマシンページ番号を更新する(ステップS6)。
一方,該当するオブジェクトがマシンページに存在しない場合は(ステップS3のNO),ページマッピング部15が,マシンページの割り当てを行う(ステップS7)。さらに,オブジェクト・マシンページ対応管理部17が,オブジェクト・マシンページ対応テーブル33に登録する(ステップS8)。
また,ステップS2の処理で,他の仮想マシンVMの仮想ページ上に同一のオブジェクトが存在しない場合は(ステップS2のNO),コンピュータシステムにおいて,該当オブジェクトがマシンページに存在しないため,ページマッピング部15が,マシンページの割り当てを行い(ステップS7),オブジェクト・マシンページ対応管理部17が,オブジェクト・マシンページ対応テーブル33へオブジェクトと割り当てられたマシンページとを登録する(ステップS8)。
以上,本発明をその実施の形態により説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
本発明にかかる仮想マシンモニタ装置を備えたコンピュータのシステム構成例を示す図である。 仮想マシンモニタ装置の構成例を示す図である。 オブジェクトファイルから抽出される情報例を示す図である。 マッピング情報データベースに登録される情報のデータ構成例を示す図である。 仮想ページ・オブジェクト対応テーブルのデータ構成例を示す図である。 オブジェクト・マシンページ対応テーブルのデータ構成例を示す図である。 仮想マシンモニタ装置の処理を概説する図である。 仮想マシンVMの仮想メモリのアクセス時の仮想マシンモニタ装置の処理フローを示す図である。
符号の説明
1 仮想マシンモニタ装置(VMM)
2 メモリマッピング部
11 オブジェクトファイルマッピング情報生成部
12 マッピング情報データベース
13 仮想ページ・オブジェクト対応テーブル
15 ページマッピング部
16 共有可能マシンページ検出部
17 オブジェクト・マシンページ対応管理部
31 仮想ページ・オブジェクト対応テーブル
32 仮想ページ・マシンページ変換テーブル
33 オブジェクト・マシンページ対応テーブル
VM 仮想マシン
Virtual H/W 仮想マシンのハードウェア資源
vMMU 仮想マシンのメモリ管理ユニット
vHDD 仮想マシンの外部記憶装置
vMEM 仮想マシンのメモリ
Guest OS ゲストOS(オペレーティングシステム)
H/W ハードウェア資源
MMU メモリ管理ユニット
HDD 外部記憶装置
MEM メモリ

Claims (6)

  1. 物理メモリと仮想的に多重化された複数の仮想メモリとの対応を管理して複数の仮想マシンを動作させるコンピュータシステムの仮想マシンモニタ装置であって,
    仮想マシンを一意に識別する仮想マシンIDと,前記仮想マシン上で動作するゲストOSを構成するオブジェクトファイルを一意に識別するオブジェクトIDと,前記オブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページを示す仮想ページマッピング情報とを保存するマッピング情報データベースと,
    前記仮想マシンIDと前記オブジェクトIDと前記仮想ページマッピング情報と,前記仮想ページがマッピングされる前記物理メモリのページを示すマシンページマッピング情報と,同一のオブジェクトIDの存在を示す存在フラグとを対応づける仮想ページ・オブジェクト対応テーブルと,
    前記オブジェクトIDと,前記マシンページマッピング情報と,前記マシンページマッピング情報が示すページを参照する仮想マシン数を示す参照仮想マシン数とを対応づけるオブジェクト・マシンページ対応テーブルと,
    仮想マシン上で動作するゲストOSを構成するオブジェクトファイルを読み込み,読み込んだオブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページを示す仮想ページマッピング情報を生成し,当該オブジェクトファイルのオブジェクトIDと前記オブジェクトファイルが動作する仮想マシンの仮想マシンIDと前記生成した仮想ページマッピング情報とを前記マッピング情報データベースに登録するオブジェクトファイルマッピング情報生成部と,
    前記マッピング情報データベースを参照して,前記仮想マシンの起動に対応して前記仮想ページ・オブジェクト対応テーブルに該当する仮想マシンのデータを追加し,前記仮想マシンの終了に対応して前記仮想ページ・オブジェクト対応テーブルに該当する仮想マシンのデータを削除し,前記仮想ページ・オブジェクト対応テーブルに同一のオブジェクトIDが複数存在する場合に,複数存在するオブジェクトIDの存在フラグに有効を設定し,前記存在フラグが有効となっている仮想ページに対応する前記物理メモリのページの割り当てまたは変更があった場合に,前記仮想ページ・オブジェクト対応テーブルの該当するマシンページマッピング情報を更新する仮想ページ・オブジェクト対応管理部と,
    前記オブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページから対応するハードウェアのページへマッピングしている仮想マシンを検出して前記オブジェクト・マシンページ対応テーブルの参照仮想マシン数を更新するオブジェクト・マシンページ対応管理部と,
    前記仮想マシンの仮想メモリのページのアドレスと自装置内の物理メモリのページのアドレスとを変換する仮想ページ・マシンページ変換テーブルを備えて,当該仮想メモリのページに前記物理メモリのページを割り当てるページマッピング部と,
    前記仮想メモリへのアクセス時に,アクセスする仮想マシンIDと仮想メモリのアクセス先ページとをキーとして前記仮想ページ・オブジェクト対応テーブルを参照し,前記アクセス先ページに対応するオブジェクトIDの存在フラグが有効であるかを判定し,さらに,当該判定において存在フラグが有効である場合に,前記対応するオブジェクトIDをキーとして前記オブジェクト・マシンページ対応テーブルを参照し,当該オブジェクトIDのアクセス先ページに対応する前記物理メモリのページが存在するかを判定する共有可能マシンページ検出部とを備えて,
    前記ページマッピング部は,前記共有可能マシンページ検出部が,前記アクセス先ページに対応する前記物理メモリのページが存在する場合に,当該アクセス先の仮想ページに対して前記判定した物理メモリのページを参照するように前記仮想ページ・マシンページ変換テーブルを更新し,
    前記オブジェクト・マシンページ対応管理部は,前記オブジェクト・マシンページ対応テーブルの該当するオブジェクトの参照仮想マシン数を更新する
    ことを特徴とする仮想マシンモニタ装置。
  2. 前記ページマッピング部は,前記物理メモリのページをコピーオンライトで管理し,前記仮想マシン間で共有される前記物理メモリのページに対する前記仮想マシンからの書き込み要求があった場合に,コピーオンライトによって前記物理メモリの新しいページを割り当てる
    ことを特徴とする請求項1記載の仮想マシンモニタ装置。
  3. 前記オブジェクトファイルマッピング情報生成部は,前記仮想マシン上で動作するゲストOSを構成するオブジェクトファイルの変更を検出して,変更を検出した仮想マシンの仮想メモリマッピング情報を再生成し,
    前記仮想ページ・オブジェクト対応管理部は,前記再生成された仮想メモリマッピング情報をもとに前記仮想ページ・オブジェクト対応テーブルを更新する
    ことを特徴とする請求項1または請求項2に記載の仮想マシンモニタ装置。
  4. 前記オブジェクトファイルマッピング情報生成部は,前記仮想マシンのゲストOSを構成するオブジェクトファイルのプログラム実行部がマッピングされる仮想ページの候補を複数用意し,前記仮想ページの候補に対する仮想ページマッピング情報を生成し,前記マッピング情報データベースに保存する
    ことを特徴とする請求項1ないし請求項3のいずれか一項に記載の仮想マシンモニタ装置。
  5. 物理メモリと仮想的に多重化された複数の仮想メモリとの対応を管理して複数の仮想マシンを動作させるコンピュータを,
    仮想マシンを一意に識別する仮想マシンIDと,前記仮想マシン上で動作するゲストOSを構成するオブジェクトファイルを一意に識別するオブジェクトIDと,前記オブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページを示す仮想ページマッピング情報とを保存するマッピング情報データベースと,
    前記仮想マシンIDと前記オブジェクトIDと前記仮想ページマッピング情報と,前記仮想ページがマッピングされる前記物理メモリのページを示すマシンページマッピング情報と,同一のオブジェクトIDの存在を示す存在フラグとを対応づける仮想ページ・オブジェクト対応テーブルと,
    前記オブジェクトIDと,前記マシンページマッピング情報と,前記マシンページマッピング情報が示すページを参照する仮想マシン数を示す参照仮想マシン数とを対応づけるオブジェクト・マシンページ対応テーブルと,
    仮想マシン上で動作するゲストOSを構成するオブジェクトファイルを読み込み,読み込んだオブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページを示す仮想ページマッピング情報を生成し,当該オブジェクトファイルのオブジェクトIDと前記オブジェクトファイルが動作する仮想マシンの仮想マシンIDと前記生成した仮想ページマッピング情報とを前記マッピング情報データベースに登録するオブジェクトファイルマッピング情報生成部と,
    前記マッピング情報データベースを参照して,前記仮想マシンの起動に対応して前記仮想ページ・オブジェクト対応テーブルに該当する仮想マシンのデータを追加し,前記仮想マシンの終了に対応して前記仮想ページ・オブジェクト対応テーブルに該当する仮想マシンのデータを削除し,前記仮想ページ・オブジェクト対応テーブルに同一のオブジェクトIDが複数存在する場合に,複数存在するオブジェクトIDの存在フラグに有効を設定し,前記存在フラグが有効となっている仮想ページに対応する前記物理メモリのページの割り当てまたは変更があった場合に,前記仮想ページ・オブジェクト対応テーブルの該当するマシンページマッピング情報を更新する仮想ページ・オブジェクト対応管理部と,
    前記オブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページから対応するハードウェアのページへマッピングしている仮想マシンを検出して前記オブジェクト・マシンページ対応テーブルの参照仮想マシン数を更新するオブジェクト・マシンページ対応管理部と,
    前記仮想マシンの仮想メモリのページのアドレスと自装置内の物理メモリのページのアドレスとを変換する仮想ページ・マシンページ変換テーブルを備えて,当該仮想メモリのページに前記物理メモリのページを割り当てるページマッピング部と,
    前記仮想メモリへのアクセス時に,アクセスする仮想マシンIDと仮想メモリのアクセス先ページとをキーとして前記仮想ページ・オブジェクト対応テーブルを参照し,前記アクセス先ページに対応するオブジェクトIDの存在フラグが有効であるかを判定し,さらに,当該判定において存在フラグが有効である場合に,前記対応するオブジェクトIDをキーとして前記オブジェクト・マシンページ対応テーブルを参照し,当該オブジェクトIDのアクセス先ページに対応する前記物理メモリのページが存在するかを判定する共有可能マシンページ検出部とを備えて,
    前記ページマッピング部は,前記共有可能マシンページ検出部が,前記アクセス先ページに対応する前記物理メモリのページが存在する場合に,当該アクセス先の仮想ページに対して前記判定した物理メモリのページを参照するように前記仮想ページ・マシンページ変換テーブルを更新し,
    前記オブジェクト・マシンページ対応管理部は,前記オブジェクト・マシンページ対応テーブルの該当するオブジェクトの参照仮想マシン数を更新する仮想マシンモニタ装置として機能させる
    ことを特徴とする仮想マシンモニタプログラム。
  6. 物理メモリと仮想的に多重化された複数の仮想メモリとの対応を管理して複数の仮想マシンを動作させるコンピュータシステムの仮想マシンモニタ装置が実行する仮想マシン間メモリ共有管理方法であって,
    仮想マシン上で動作するゲストOSを構成するオブジェクトファイルを読み込むオブジェクトファイル読み込む処理と,
    仮想マシンを一意に識別する仮想マシンIDと,前記仮想マシン上で動作するゲストOSを構成するオブジェクトファイルを一意に識別するオブジェクトIDと,前記オブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページを示す仮想ページマッピング情報とを保存するマッピング情報データベースを備えて,前記読み込んだオブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページを示す仮想ページマッピング情報を生成し,当該オブジェクトファイルのオブジェクトIDと前記オブジェクトファイルが動作する仮想マシンの仮想マシンIDと前記生成した仮想ページマッピング情報とを前記マッピング情報データベースに登録する処理過程と,
    前記仮想マシンIDと前記オブジェクトIDと前記仮想ページマッピング情報と,前記仮想ページがマッピングされる前記物理メモリのページを示すマシンページマッピング情報と,同一のオブジェクトIDの存在を示す存在フラグとを対応づける仮想ページ・オブジェクト対応テーブルを備えて,前記マッピング情報データベースを参照して,前記仮想マシンの起動または終了に対応して前記仮想ページ・オブジェクト対応テーブルに該当する仮想マシンのデータを追加または削除する処理過程と,
    前記仮想ページ・オブジェクト対応テーブルに同一のオブジェクトIDが複数存在する場合に,前記仮想ページ・オブジェクト対応テーブルの複数存在するオブジェクトIDの存在フラグに有効を設定する処理過程と,
    前記存在フラグが有効となっている仮想ページに対応する前記物理メモリのページの割り当てまたは変更があった場合に,前記仮想ページ・オブジェクト対応テーブルの該当するマシンページマッピング情報を更新する処理過程と,
    前記オブジェクトIDと,前記マシンページマッピング情報と,前記マシンページマッピング情報が示すページを参照する仮想マシン数を示す参照仮想マシン数とを対応づけるオブジェクト・マシンページ対応テーブルを備えて,前記オブジェクトファイル中のプログラム実行コード部がマッピングされる仮想メモリのページから対応するハードウェアのページへマッピングしている仮想マシンを検出した場合に,前記オブジェクト・マシンページ対応テーブルの参照仮想マシン数を更新する処理過程と,
    前記仮想マシンの仮想メモリのページのアドレスと自装置内の物理メモリのページのアドレスとを変換する仮想ページ・マシンページ変換テーブルを備えて,当該仮想メモリのページに前記物理メモリのページを割り当てる処理過程と,
    前記仮想メモリへのアクセス時に,アクセスする仮想マシンIDと仮想メモリのアクセス先ページとをキーとして前記仮想ページ・オブジェクト対応テーブルを参照し,前記アクセス先ページに対応するオブジェクトIDの存在フラグが有効であるかを判定する処理過程と,
    前記判定において存在フラグが有効である場合に,前記対応するオブジェクトIDをキーとして前記オブジェクト・マシンページ対応テーブルを参照し,当該オブジェクトIDのアクセス先ページに対応する前記物理メモリのページが存在するかを判定する処理過程とを備えて,
    前記アクセス先ページに対応する前記物理メモリのページが存在する場合に,当該アクセス先の仮想ページに対して前記判定した物理メモリのページを参照するように前記仮想ページ・マシンページ変換テーブルを更新する処理過程とを備える
    ことを特徴とする仮想マシン間メモリ共有管理方法。




JP2008192965A 2008-07-28 2008-07-28 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法 Expired - Fee Related JP5146174B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008192965A JP5146174B2 (ja) 2008-07-28 2008-07-28 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法
US12/501,892 US8261267B2 (en) 2008-07-28 2009-07-13 Virtual machine monitor having mapping data generator for mapping virtual page of the virtual memory to a physical memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008192965A JP5146174B2 (ja) 2008-07-28 2008-07-28 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法

Publications (2)

Publication Number Publication Date
JP2010033206A true JP2010033206A (ja) 2010-02-12
JP5146174B2 JP5146174B2 (ja) 2013-02-20

Family

ID=41569793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008192965A Expired - Fee Related JP5146174B2 (ja) 2008-07-28 2008-07-28 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法

Country Status (2)

Country Link
US (1) US8261267B2 (ja)
JP (1) JP5146174B2 (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012081099A1 (ja) 2010-12-15 2012-06-21 富士通株式会社 データ移行プログラム、計算機およびデータ移行方法
WO2012125315A2 (en) * 2011-03-11 2012-09-20 Microsoft Corporation Virtual disk storage techniques
JP2012226586A (ja) * 2011-04-20 2012-11-15 Nec Corp リブート、ブート、シャットダウン高速化装置並びにリブート、ブート、シャットダウン高速化方法
WO2013008450A1 (ja) * 2011-07-14 2013-01-17 パナソニック株式会社 仮想計算機システム、メモリ管理方法、メモリ管理プログラム、記録媒体および集積回路
JPWO2011117956A1 (ja) * 2010-03-20 2013-07-04 株式会社Pfu 仮想マシン管理装置、開発システム、仮想マシン管理方法、及びプログラム
US8725782B2 (en) 2011-04-25 2014-05-13 Microsoft Corporation Virtual disk storage techniques
JP5563126B1 (ja) * 2013-06-04 2014-07-30 日本電信電話株式会社 情報処理装置及び検出方法
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
WO2016013086A1 (ja) * 2014-07-24 2016-01-28 株式会社日立製作所 計算機システムおよびメモリ割当管理方法
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
JP2016042354A (ja) * 2014-08-15 2016-03-31 インテル コーポレイション セキュアなバーチャルマシン間の共有メモリ通信のためのコンピューティング装置、方法及び機械可読記憶媒体
US9519496B2 (en) 2011-04-26 2016-12-13 Microsoft Technology Licensing, Llc Detecting and preventing virtual disk storage linkage faults
JP2016541072A (ja) * 2013-12-17 2016-12-28 華為技術有限公司Huawei Technologies Co.,Ltd. リソース処理方法、オペレーティング・システム、およびデバイス
US9778860B2 (en) 2012-09-12 2017-10-03 Microsoft Technology Licensing, Llc Re-TRIM of free space within VHDX
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
CN116126472A (zh) * 2023-01-20 2023-05-16 北京麟卓信息科技有限公司 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161929A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
US8397242B1 (en) * 2009-06-30 2013-03-12 Symantec Corporation System and method for managing operations within virtual machines
US9104544B1 (en) 2010-05-28 2015-08-11 Bromium, Inc. Mitigating eviction by maintaining mapping tables
US9354906B1 (en) * 2010-05-28 2016-05-31 Bromium, Inc. Managing the eviction process
US8423998B2 (en) 2010-06-04 2013-04-16 International Business Machines Corporation System and method for virtual machine multiplexing for resource provisioning in compute clouds
CN101968746B (zh) * 2010-09-02 2016-03-02 北京航空航天大学 一种内核虚拟机组织架构模式的实现方法
CN101986285B (zh) * 2010-11-03 2012-09-19 华为技术有限公司 虚拟机存储空间管理方法、系统及物理主机
US8850156B2 (en) 2010-11-03 2014-09-30 Huawei Technologies Co., Ltd. Method and system for managing virtual machine storage space and physical host
US9053053B2 (en) * 2010-11-29 2015-06-09 International Business Machines Corporation Efficiently determining identical pieces of memory used by virtual machines
US9201678B2 (en) 2010-11-29 2015-12-01 International Business Machines Corporation Placing a virtual machine on a target hypervisor
EP2691857B1 (en) * 2011-03-31 2016-11-30 Intel Corporation Memory mirroring and redundancy generation for high availability
KR101738074B1 (ko) 2011-04-05 2017-05-19 삼성전자주식회사 메모리 장치, 및 이를 포함하는 컴퓨터 시스템
US9628438B2 (en) * 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US9336035B2 (en) * 2012-10-23 2016-05-10 Vmware, Inc. Method and system for VM-granular I/O caching
US9055119B2 (en) 2013-03-26 2015-06-09 Vmware, Inc. Method and system for VM-granular SSD/FLASH cache live migration
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
US9514137B2 (en) 2013-06-12 2016-12-06 Exablox Corporation Hybrid garbage collection
US9715521B2 (en) 2013-06-19 2017-07-25 Storagecraft Technology Corporation Data scrubbing in cluster-based storage systems
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
US20150058926A1 (en) * 2013-08-23 2015-02-26 International Business Machines Corporation Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment
US10248556B2 (en) 2013-10-16 2019-04-02 Exablox Corporation Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9985829B2 (en) 2013-12-12 2018-05-29 Exablox Corporation Management and provisioning of cloud connected devices
WO2015120071A2 (en) 2014-02-04 2015-08-13 Exablox Corporation Content based organization of file systems
CN106575235B (zh) * 2014-09-12 2020-10-23 英特尔公司 虚拟计算环境中的存储器和资源管理
US20170003997A1 (en) * 2015-07-01 2017-01-05 Dell Products, Lp Compute Cluster Load Balancing Based on Memory Page Contents
US10474654B2 (en) 2015-08-26 2019-11-12 Storagecraft Technology Corporation Structural data transfer over a network
US10521155B2 (en) 2015-09-29 2019-12-31 Hewlett Packard Enterprise Development Lp Application management data
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores
CN105893158A (zh) * 2016-06-08 2016-08-24 北京工业大学 私有云条件下的大数据混合调度模型
US10209889B2 (en) 2016-07-14 2019-02-19 International Business Machines Corporation Invalidation of shared memory in a virtual environment
US10176115B2 (en) * 2016-07-14 2019-01-08 International Business Machines Corporation Shared memory in a virtual environment
US20190004841A1 (en) * 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc Memory Sharing For Virtual Machines
CN108833208A (zh) * 2018-06-21 2018-11-16 新华三技术有限公司 一种对虚拟网络节点的检测方法及装置
US11500969B2 (en) * 2020-01-03 2022-11-15 Microsoft Technology Licensing, Llc Protecting commercial off-the-shelf program binaries from piracy using hardware enclaves
US11748135B2 (en) * 2020-07-30 2023-09-05 Red Hat, Inc. Utilizing virtual input/output memory management units (IOMMU) for tracking encryption status of memory pages
US20230195645A1 (en) * 2021-12-20 2023-06-22 Advanced Micro Devices, Inc. Virtual partitioning a processor-in-memory ("pim")
US11934827B2 (en) 2021-12-20 2024-03-19 Advanced Micro Devices, Inc. Partition and isolation of a processing-in-memory (PIM) device
US11934698B2 (en) 2021-12-20 2024-03-19 Advanced Micro Devices, Inc. Process isolation for a processor-in-memory (“PIM”) device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4026667B2 (ja) 1997-09-12 2007-12-26 株式会社日立製作所 マルチos構成方法
US6772419B1 (en) 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6381682B2 (en) * 1998-06-10 2002-04-30 Compaq Information Technologies Group, L.P. Method and apparatus for dynamically sharing memory in a multiprocessor system
US6434685B1 (en) * 1999-02-11 2002-08-13 Oracle Corp. Paged memory management system within a run-time environment
JP3874603B2 (ja) 2000-11-21 2007-01-31 株式会社日立製作所 計算機システムの共有メモリ構築方法
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US7069413B1 (en) * 2003-01-29 2006-06-27 Vmware, Inc. Method and system for performing virtual to physical address translations in a virtual machine monitor
JP2005275629A (ja) * 2004-03-23 2005-10-06 Nec Corp マルチプロセッサシステム、及び、メモリアクセス方法
US7941799B2 (en) * 2004-05-27 2011-05-10 International Business Machines Corporation Interpreting I/O operation requests from pageable guests without host intervention
US7472383B2 (en) * 2004-08-13 2008-12-30 Sun Microsystems, Inc. System and method for providing exceptional flow control in protected code through memory layers
US7334076B2 (en) * 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
EP1736887A3 (fr) * 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
US8555081B2 (en) * 2007-10-30 2013-10-08 Vmware, Inc. Cryptographic multi-shadowing with integrity verification

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2011117956A1 (ja) * 2010-03-20 2013-07-04 株式会社Pfu 仮想マシン管理装置、開発システム、仮想マシン管理方法、及びプログラム
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
WO2012081099A1 (ja) 2010-12-15 2012-06-21 富士通株式会社 データ移行プログラム、計算機およびデータ移行方法
WO2012125315A2 (en) * 2011-03-11 2012-09-20 Microsoft Corporation Virtual disk storage techniques
WO2012125315A3 (en) * 2011-03-11 2012-11-29 Microsoft Corporation Virtual disk storage techniques
US11614873B2 (en) 2011-03-11 2023-03-28 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
JP2012226586A (ja) * 2011-04-20 2012-11-15 Nec Corp リブート、ブート、シャットダウン高速化装置並びにリブート、ブート、シャットダウン高速化方法
US8725782B2 (en) 2011-04-25 2014-05-13 Microsoft Corporation Virtual disk storage techniques
US9519496B2 (en) 2011-04-26 2016-12-13 Microsoft Technology Licensing, Llc Detecting and preventing virtual disk storage linkage faults
US9176781B2 (en) 2011-07-14 2015-11-03 Panasonic Intellectual Property Corporation Of America Virtual machine system, memory management method, memory management program, recording medium, and integrated circuit
JPWO2013008450A1 (ja) * 2011-07-14 2015-02-23 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、メモリ管理方法、メモリ管理プログラム、記録媒体および集積回路
WO2013008450A1 (ja) * 2011-07-14 2013-01-17 パナソニック株式会社 仮想計算機システム、メモリ管理方法、メモリ管理プログラム、記録媒体および集積回路
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9778860B2 (en) 2012-09-12 2017-10-03 Microsoft Technology Licensing, Llc Re-TRIM of free space within VHDX
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
JP5563126B1 (ja) * 2013-06-04 2014-07-30 日本電信電話株式会社 情報処理装置及び検出方法
JP2016541072A (ja) * 2013-12-17 2016-12-28 華為技術有限公司Huawei Technologies Co.,Ltd. リソース処理方法、オペレーティング・システム、およびデバイス
US10180843B2 (en) 2013-12-17 2019-01-15 Huawei Technologies Co., Ltd. Resource processing method and device for a multi-core operating system
US10013358B2 (en) 2014-07-24 2018-07-03 Hitachi, Ltd. Computer system and memory allocation management method
WO2016013086A1 (ja) * 2014-07-24 2016-01-28 株式会社日立製作所 計算機システムおよびメモリ割当管理方法
JP2016042354A (ja) * 2014-08-15 2016-03-31 インテル コーポレイション セキュアなバーチャルマシン間の共有メモリ通信のためのコンピューティング装置、方法及び機械可読記憶媒体
CN116126472A (zh) * 2023-01-20 2023-05-16 北京麟卓信息科技有限公司 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法
CN116126472B (zh) * 2023-01-20 2023-06-09 北京麟卓信息科技有限公司 一种基于动态内存虚拟磁盘的跨运行环境文件快速共享方法

Also Published As

Publication number Publication date
US8261267B2 (en) 2012-09-04
JP5146174B2 (ja) 2013-02-20
US20100023941A1 (en) 2010-01-28

Similar Documents

Publication Publication Date Title
JP5146174B2 (ja) 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法
US11157306B2 (en) Faster access of virtual machine memory backed by a host computing device's virtual memory
JP6050262B2 (ja) 仮想ディスクストレージ技術
US8370835B2 (en) Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
US9075634B2 (en) Minimizing overhead in resolving operating system symbols
JP5778296B2 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
JP2009151650A (ja) 計算機仮想化装置、そのプログラム、及びその方法
JP2019523920A (ja) ページ・フォールト解決法
US11693722B2 (en) Fast memory mapped IO support by register switch
US20200272482A1 (en) Unikernel provisioning
US20210271598A1 (en) Multi-Ring Shared, Traversable, and Dynamic Advanced Database
US20140366045A1 (en) Dynamic management of composable api sets
US9952984B2 (en) Erasing a storage block before writing partial data
US20230185593A1 (en) Virtual device translation for nested virtual machines
JP2010198398A (ja) 計算機装置および制御方法
RU2780969C1 (ru) Более быстрый доступ запоминающего устройства виртуальной машины, резервируемого виртуальным запоминающим устройством вычислительного хост-устройства
US20230350710A1 (en) Fast memory mapped io support by register switch
WO2016190892A1 (en) Improving performance of virtual machines

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110418

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121019

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121112

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees