JP6099458B2 - 特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード - Google Patents

特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード Download PDF

Info

Publication number
JP6099458B2
JP6099458B2 JP2013072211A JP2013072211A JP6099458B2 JP 6099458 B2 JP6099458 B2 JP 6099458B2 JP 2013072211 A JP2013072211 A JP 2013072211A JP 2013072211 A JP2013072211 A JP 2013072211A JP 6099458 B2 JP6099458 B2 JP 6099458B2
Authority
JP
Japan
Prior art keywords
trace data
node
memory
trace
virtual machine
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.)
Expired - Fee Related
Application number
JP2013072211A
Other languages
English (en)
Other versions
JP2014197295A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2013072211A priority Critical patent/JP6099458B2/ja
Priority to US14/222,812 priority patent/US9448910B2/en
Publication of JP2014197295A publication Critical patent/JP2014197295A/ja
Priority to US15/205,311 priority patent/US9632725B2/en
Application granted granted Critical
Publication of JP6099458B2 publication Critical patent/JP6099458B2/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • 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/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、一般的には、メモリ管理に関し、より特定的には、コンピュータのメモリ装置へのアクセス履歴であるトレース・データから特定の仮想マシンに関連するものを特定するための方法、プログラム、トレーサ・ノードに関する。
コンピュータのメモリ装置へのアクセスのトレースを取得することができるトレーサが存在する。トレーサは、例えば、特殊なモニターハードウェアを用いることによって実現することができる。かかるトレーサによって得られたトレース・データを様々な目的で用いることができる。例えば、様々なワークロードのメモリアクセスパターンを解析することによって、メモリ・アクセスの高速化、並列化、低消費電力化などを達成する改善されたメモリコントローラを設計することができる。また、フラッシュメモリ、MRAM、PCMなどの新しいメモリ技術を用いたサーバ上で稼動するソフトウェア、様々なワークロードにおけるメモリ使用の状況を解析することで、かかるサーバおよびソフトウェアにおけるメモリデバイスの選択、アーキテクチャの決定の指針、ヒントを得ることができる。そのようなメモリ装置へのアクセスのトレース技術に関連して、背景技術として以下の特許文献が存在する。
特開2010−204934号公報 特開平5−143391号公報 特開平5−035548号公報 特開平5−100903号公報 特開平5−313947号公報 特開2009−176297号公報 特開2011−028547号公報
近年普及したクラウド・コンピューティングの一形態として、IaaS(Infrastructure−as−a−Service)が存在する。一般に、IaaS環境では、多数の物理的なサーバそれぞれにおいて、仮想マシン(VM:Virtual Machine)が稼動しており、各アプリケーション・プログラムがVM上で実行される。ユーザは、自分に割り当てられたVMをネットワークを介して利用する。IaaS環境で特定のVMおよび/またはアプリケーション・プログラムについてメモリ装置へのアクセスのトレースを実現するためには、それぞれの処理サーバに特殊なモニターハードウェアを備え付け、VMおよびアプリケーションをトレーサ・ノードに導入し、トレースのための設定を行う、などの追加コストが必要だった。
したがって、本発明の目的の1つは、比較的低いコストで実現可能な、IaaS環境において、前記トレーサ・ノードが取得するトレース・データから特定の仮想マシンに関連するトレース・データを特定するための改善されたコンピュータ実装方法、プログラム、および、トレーサ・ノードを提供することである。
上記の目的を達成するために、1以上の処理ノードおよびメモリ装置へのアクセスのトレースを取得するトレーサ・ノードを含むコンピューティング環境において、トレーサ・ノードが取得するトレース・データから特定の仮想マシンに関連するトレース・データを特定するためのコンピュータ実装方法が提供される。方法は、トレーサ・ノードのメモリ装置へのアクセスのトレースの情報を含むトレース・データの記録を開始するステップと、ある処理ノードからトレーサ・ノードへ特定の仮想マシンがマイグレーションされたことに応じて、特定の仮想マシンに割り当てられたトレーサ・ノードのメモリ装置の物理アドレスを特定する情報を記憶するステップと、割り当てられたトレーサ・ノードのメモリ装置の物理アドレスを用いて、トレース・データから特定の仮想マシンに関連するトレース・データを特定するステップを含む。
好ましくは、1以上の処理ノードおよびトレーサ・ノードは、1以上の仮想マシンを管理することができるハイパーバイザをそれぞれ備える。さらに好ましくは、仮想マシンが、ゲスト仮想アドレスとゲスト物理アドレスの間の第1のアドレス変換を実行する。さらに好ましくは、トレーサ・ノードのメモリ装置の物理アドレスを特定する情報がホスト物理アドレスであり、ハイパーバイザが、ホスト仮想アドレスとホスト物理アドレスとの間の第2のアドレス変換を実行する。さらに好ましくは、ホスト仮想アドレスとゲスト物理アドレスが等価なものである。記憶するステップが、第2の変換に伴って発生するページ・フォルトに応じて特定の仮想マシンに割り当てられたホスト物理アドレスを記憶するステップを含むようにすることができる。
好ましくは、記憶するステップが、第2の変換に伴って発生するページ・フォルトに応じて特定の仮想マシンに割り当てられたホスト物理アドレスを記憶するステップを含む。さらに好ましくは、マイグレーションに応じて、メモリコピーを開始するステップをさらに含み、メモリコピーによって特定の仮想マシンが使用するホスト仮想アドレスすべてについて、第2の変換に伴うページ・フォルトが発生する。
好ましくは、トレース・データが、それぞれのメモリ装置へのアクセスに関連付けられたアクセス時刻を含み、記憶するステップが、ホスト仮想アドレスおよびホスト物理アドレスの対応および第2の変換に伴うページ・フォルトの発生時刻を、ページフォルト・ログに記憶するステップを含み、特定するステップが、トレース・データ内のメモリ・アクセスについて、ページフォルト・ログを参照して、そのアクセス時刻に特定の仮想マシンに割り当てられていたホスト仮想アドレスの情報を付加するステップを含む。さらに好ましくは、特定するステップにおいて、付加されたホスト仮想アドレスの情報に基づいて、トレース・データから特定の仮想マシンに関連するトレース・データを特定する。
好ましくは、特定の仮想マシン上で稼動するアプリケーション・プログラムをトレース対象として特定するステップと、記憶するステップが、第1の変換に伴って発生するページ・フォルトに応じてトレース対象として特定されたアプリケーション・プログラムに割り当てられたゲスト物理アドレスを記憶するステップを含む。
好ましくは、記憶するステップが、ホスト仮想アドレスおよびホスト物理アドレスの対応および第1の変換に伴うページ・フォルトの発生時刻を、ページフォルト・ログに記憶するステップを含み、特定するステップが、トレース・データ内のメモリ・アクセスに、ページフォルト・ログを参照して、そのアクセス時刻にトレース対象として特定されたアプリケーション・プログラムに割り当てられていたゲスト仮想アドレスの情報を付加するステップを含む。さらに好ましくは、特定するステップにおいて、付加されたゲスト仮想アドレスの情報に基づいて、トレース・データからトレース対象として特定されたアプリケーション・プログラムに関連するトレース・データを特定する。
以上、特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法として本発明の概要を説明したが、本発明は、プログラム、プログラム製品、ソフトウェア、ソフトウェア製品、トレーサ・ノード、システム、装置などとして把握することもできる。
プログラム製品ないしソフトウェア製品は、例えば、前述のプログラム、ソフトウェアを格納した記憶媒体を含め、あるいはプログラム、ソフトウェアを伝送する媒体を含めることができる。プログラムは、コンピュータに前述の方法の各ステップを実行させることができる。
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
本発明の実施形態におけるIaaS環境の概要を説明するための全体図である。 本発明の実施形態におけるIaaS環境に含まれる処理サーバを実現するため使用可能なコンピュータ装置のハードウェア構成図である。 本発明の実施形態におけるIaaS環境に含まれるトレーサ・ノードを実現するため使用可能なコンピュータ装置のハードウェア構成図である。 本発明の実施形態におけるIaaS環境の処理ノードまたはトレーサ・ノードの階層構造の一例を説明するための図である。 本発明の実施形態のIaaS環境のトレーサ・ノードにおけるアドレス変換およびメモリ・アクセスのトレースの取得を説明するための図である。 本発明の実施形態のIaaS環境における特定のVMおよび/または特定のアプリケーション・プログラムのトレース処理の動作を表現する第1のフローチャートである。 本発明の実施形態のIaaS環境における特定のVMおよび/または特定のアプリケーション・プログラムのトレース処理の動作を表現する第2のフローチャートである。 本発明の実施形態のIaaS環境におけるVMレベルのページフォルト・ログの一例を表現する概略図である。 本発明の実施形態のIaaS環境におけるVMMレベルのページフォルト・ログの一例を表現する概略図である。 本発明の実施形態のIaaS環境におけるGPA、GPA/HVAが付加されたトレース・データの一例を表現する概略図である。
以下、本発明を実施するための形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲に記載された発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らないことに留意すべきである。
また、本発明は多くの異なる態様で実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態の説明の全体を通じて同じ要素には、原則として同じ番号を付している。
本発明の実施形態のシナリオでは、それぞれにおいて仮想マシン(VM:Virtual Machine)が稼動する多数のノードを含むIaaS環境において、特定のVMおよび/またはVM上で稼動する特定のアプリケーション・プログラムのメモリ装置へのアクセスのトレースの情報を含むデータ(本明細書において「トレース・データ」と称することがある)が特定される。なお、本発明の実施形態において、メモリ装置への「アクセス」には、READ(読み出し)、WRITE(書き込み)を含むメモリに対する操作すべてを含むことに留意されたい。
本発明の実施形態のIaaS環境の各ノードは、それぞれCPUとメモリ装置を含むハードウェア上で仮想マシン・マネージャ(VMM:Virtual Machine Manager)が稼動している。一般に、VMMは、システム・リソースをVMとして仮想化し、管理することができるソフトウェアまたはファームウェアである。VMMは、ハイパーバイザと称することがある。また、VMはVMMの存在を前提にVMM上で動作するため、一般的に、VMMをホストと称し、VMをゲストと称することがある。
本発明の実施形態のIaaS環境は、メモリ装置へのアクセスのトレースを取得することができる少数のトレーサ・ノード、および、そのような機能を備えていない多数の処理ノードを含む。本発明の実施形態のトレーサ・ノードは、そのメモリ装置(具体的には、DRAMであるメインメモリ)へのアクセスすべてをトレース・データとして記録し続ける機能を備えている。本発明の実施形態のトレーサによって取得される生のトレース・データは、メモリ装置のアクセスに関して、アクセス時間、コマンド、アクセスをした領域の物理アドレス、プロセスID、プロセス名等を含むが、これらのすべてが必須なものであるとは限らないことに留意されたい。
本発明の実施形態のIaaS環境の各ノードでは、あるVM上で稼動するアプリケーション・プログラムがメモリ装置に対する操作をしようとする場合、まず、当該VMが、VMレベルの仮想アドレスであるゲスト仮想アドレス(GVA)とVMレベルの物理アドレスであるゲスト物理アドレス(GPA)との間の第1のアドレス変換を実施する。また、VMMがVMMレベルの仮想アドレスであるホスト仮想アドレス(HVA)とVMMレベルの物理アドレスであるホスト物理アドレス(HPA)の間の第2のアドレス変換を実施する。なお、本発明の実施形態では、GPAとHVAとは等価であるので、GPA/HVAと表記するものとする。また、本発明の実施形態では、HPAは当該ノードのメモリ装置の物理アドレスである。
本発明の実施形態のシナリオでは、処理ノードで稼動するVMがトレース対象として指定されたことに応じて、当該VMのトレーサ・ノードへのライブマイグレーションが実行される。ここで、ライブマイグレーションとは、あるサーバにおいて稼働中のVMを稼動したままで、その同一性を保持して他のサーバに移動することを意味する。
本発明の実施形態においては、VMのライブマイグレーションに応じて、トレーサ・ノードにおいて、当該VMが移動前のサーバで使用していたメモリの内容を移動後のサーバにコピーするために、移動元の処理ノードのVMMと移動先のトレーサ・ノードの間でやり取りがなされる。このとき、トレーサ・ノードのHVAを指定してトレーサ・ノードのメモリ装置への書込みが試みられるが、当該HVAに対応するHPAはいまだ決定されておらずページ・フォルトが発生する。本発明の実施形態では、ページ・フォルトに応じて割り当てられたHPAとHVAの対応、および、割り当て時刻の情報を含むVMMレベルのページ・フォルト(PF)ログが形成される。
本発明の実施形態では、VMMが、メモリコピーを制御し、メモリコピーの開始と終了を特定することができるので、メモリコピーの開始から終了までの間に生じた、ライブマイグレーションされたVMについて生じたページ・フォルトを特定することができる。かかるVMMレベルのPFログに含まれるHPAとHVAの対応、および、割り当て時刻の情報を用いて、トレーサ・ノードのメモリ装置のHPAと関連付けてアクセスを記録しているトレース・データから特定のVMに関するもののみを特定することができる。またトレーサ・ノード上でのVMの稼働中もPFログを更新し、トレース対象VMのメモリ・アクセスに関するPFの情報を取得する。
本発明の実施形態では、VM上で稼動するアプリケーション・プログラムがメモリ・アクセスを試みた結果ページ・フォルトが生じることがある。本発明の実施形態では、そのようなページ・フォルトに応じて割り当てられたGPAとGVAの対応、および、その割り当て時刻の情報を含むVMレベルのページ・フォルト(PF)ログが形成される。そして、VMMレベルのPFログおよびVMレベルのPFログを用いて、トレーサ・ノードのメモリ装置のHPAと関連付けてアクセスを記録しているトレース・データから特定のアプリケーション・プログラムに関連するものを特定することができる。
したがって、本発明の実施形態によれば、少数のトレーサ・ノードを有効活用して、特定のVMおよび/または特定のアプリケーションに関するトレース・データを特定し解析することができる。その結果、特定のVMのオペレーティング・システムおよび/または特定のアプリケーションの設計において、そのメモリ利用の改善などにトレース・データを活用することができる。
以下、本発明を図1〜10を参照して詳細に説明する。図1は、本発明の実施形態におけるIaaS環境の概要を説明するための全体図である。本発明の実施形態におけるIaas環境100は、クライアント105−1、105−2…(以下、「クライアント105」と総称することがある)、データ・センタ115を含む。クライアント105とデータ・センタ115は、ネットワーク110を介し、TCP/IPなどのよく知られた通信プロトコルに従って通信をすることができる。ネットワーク110は、典型的にはインターネットである。
本発明の実施形態データ・センタ115内では、クライアントに仮想化されたコンピューティング・リソースを提供するための処理を実行する多数の処理ノード120−1、120−2…(以下、「処理ノード120」と総称することがある)を含む。それぞれの処理ノード120では、そのハードウェア上でVMMが稼動している。
本発明の実施形態では、それぞれの処理ノード120のVMM上で、各クライアント105に割り当てられたVMが稼動している。クライアント105は、ネットワーク110を介していずれかのデータ・センタ115内の処理ノード120のいずれかで稼動するVMサービスをITインフラストラクチャとして利用する。しかし、どの処理ノードで利用中のVMサービスが稼動しているのかはクライアント105のユーザが意識することはない。一般的に、ITインフラストラクチャをサービスとして提供するような環境は、クラウド・コンピューティング技術の一形態であるIaaS環境と呼ばれる。
本発明の実施形態のIaaS環境では、あるノードで稼働中のVMを稼動したままで、その同一性を保持して他のノードに移動させることができる。これをVMのライブマイグレーションという。ライブマイグレーションが実行された場合であっても、クライアント105はその事実を意識することなく、VMサービスを継続して受けることができることに留意されたい。VMのライブマイグレーションは、既によく知られた技術であるので、ここではこれ以上説明されない。
本発明の実施形態のデータ・センタ115は、特定のVMおよび/またはアプリケーション・プログラムのメモリ装置へのアクセスのトレースを取得し、解析するためのトレーサ・システム145を含む。本発明の実施形態のトレーサ・システム145は、トレーサ・ノード130、トレース・データ記録装置135、および、管理者端末140を含む。トレーサ・ノード130は、処理ノード120と同様に、単一のVMMを備え、さらに1以上のVMをその上で実行することができるIaaS環境内のノードである。処理ノード120とトレーサ・ノード130は、その間でVMをライブマイグレーションすることができる。
本発明の実施形態のトレーサ・ノード130は、さらに、そのメモリ装置(具体的には、DRAMであるメインメモリ)へのすべてのアクセスをトレース・データとしてトレース・データ記憶装置135に記録する機能を備えている。本発明の実施形態では、かかる機能が特殊なモニタリング・ハードウェアによって実装される。トレーサ・ノード130は、そのような特殊なモニタリング・ハードウェアの実装に要するコストのためにデータ・センタ115内に少数(本発明の実施形態では1台のみ)設置されている。
本発明の実施形態では、トレーサ・ノード130において得られたトレース・データは、まず、その内蔵のハードディスク(HDD)および/またはソリッド・ステート・ドライブ(SSD)に記録される。そして、トレース・データは、所定の技法にしたがって、トレース・データ記憶装置135に移動される。本発明の実施形態の管理者端末140は、トレース対象のVMおよび/またはアプリケーション・プログラムを指定する機能を備える。さらに、管理者端末140は、トレース・データの解析をする機能を備える。
図2は、本発明の実施形態におけるIaaS環境を構成する処理ノード120のハードウェア構成図である。処理ノード120は、バス240に接続されたCPU(中央処理装置)205とメインメモリ(本発明の実施形態では、DRAM)210を含んでいる。処理ノード120を実現するのに好適な情報処理装置は、不揮発性の記憶装置であるハードディスク・ドライブ(HDD)/ソリッド・ステート・ドライブ(SSD)215を備える。HDD/SSD210には、オペレーティング・システムと協働してCPU等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。コンピュータ・プログラムはメインメモリ210にロードされることによって実行される。コンピュータ・プログラムを圧縮し、また複数に分割して複数のHDD/SSD装置に記録することもできる。
本発明の実施形態の処理ノード120は、キーボード220およびマウス225を備え、必要に応じてローカル・オペレータからの入力を受ける。さらに、処理ノード120は、視覚データをローカル・オペレータに提示するための表示装置230に経由して接続されることができる。本発明の実施形態の処理ノード120は、通信インターフェース235(例えば、イーサネット(R))を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。図示はされていないが、パラレルポートを介してプリンタと接続することや、シリアルポートを介してモデムを接続することも可能である。
以上の説明により、本発明の実施の形態の処理ノード120を実現するのに好適な情報処理装置は、通常のパーソナルコンピュータ、ワークステーション、サーバ、メインフレームなどの情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素であるとは限らない。
本発明の実施の形態において処理ノード120として使用される情報処理装置の各ハードウェア構成要素を、複数のマシンを組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。
本発明の実施の形態の処理ノード120では、VMMが稼動している。本発明の実施形態のVMMは、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するz/VM(R)、Linux(R)オペレーティング・システムのKernel−based Virtual Machine(KVM)、VMware社が提供するESX、ESXiなどが含まれるがこれに限られない。それぞれの処理ノード120において、いかなる種類のVMMを採用することも本発明の思想の包含される概念であることに留意されたい。
また、VMMによって管理されるVMのオペレーティング・システム(OS)には、マイクロソフト・コーポレーションが提供するWindows(R)オペレーティング・システム、アップル・インコーポレイテッドが提供するMacOS(R)、例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するAIX(R)、あるいはLinux(R)のようなUNIX(R)系システムを採用することができるがこれに限られない。処理ノード120のVMMに管理されるVMのOSとしていかなる種類のOSを採用することができ、それらはすべて本発明の思想の包含される概念であることに留意されたい。
以上の説明から、当業者は、本発明の実施の形態において使用される処理ノード120は、その上で稼動するVMMについても、さらにVMM上で稼動するVMについても、特定のオペレーティング・システム環境に限定されるものではないことを容易に理解することができるだろう。
図3は、本発明の実施形態におけるIaaS環境を構成するトレーサ・ノード130のハードウェア構成図である。図2に示した処理ノード120のハードウェア構成とほぼ同様であるが、特別なモニタリング・ハードウェア305および第2のSSD/HDD310が追加されていることに留意されたい。本発明の実施形態のモニタリング・ハードウェア305は、トレーサ・ノード130において稼動しているVM/アプリケーション・プログラムからのメインメモリ(RAM)210へのアクセス(すべてのメモリ操作を含む)をキャプチャし、第2のHDD/SSD310にトレース・データとして記録する。なお、第2のHDD/SSD310に記録されたトレース・データは、所定の技法にしたがって、トレース・データ記憶装置135に移動される。本発明の実施形態のトレース・データ記憶装置135は、あたかもネットワーク上のストレージをローカルのストレージのように扱うことができる任意のクラウド・ストレージ・サービスの技法を利用して実現することができる。また、トレース・データ記憶装置135への移動は、例えば、1)第2のHDD/SSD310をトレース・サーバ130から物理的に取り外した上で、トレース・データを吸い上げるためのサーバ(図示せず)に取り付けた上で、当該サーバを経由してトレース・データをトレース・データ記憶装置135にを移動する、または、2)モニタリング・ハードウェア305を経由してSATA(Serial Advanced Technology Attachment)等の専用のインターフェース(図示せず)にトレース・データを送出したうえで、トレーサ・ノード120または別のサーバ(図示せず)経由でトレース・データ記憶装置135にトレース・データを格納する、等の技法によって実現することができるがこれには限られない。
また、処理ノード120と同様に、本発明の実施の形態において使用されるトレーサ・ノード130は、VMMについても、VMM上で稼動するVMについても、特定のオペレーティング・システム環境に限定されるものではないことに留意されたい。
図4は、本発明の実施形態におけるIaaS環境の処理ノード120またはトレーサ・ノード130の階層構造である。本発明の処理ノード120またはトレーサ・ノード130は、それぞれ図2または図3を用いて説明したメインメモリ含むハードウェア420の上の階層において原則として単一のVMM415が稼動している。さらに、VMM415の上の階層において1以上のVM410を稼動させることができる。さらに、各VM410の上の階層において、1以上のアプリケーション・プログラム405が稼動している。既に述べたとおり、VMはVMMの存在を前提にVMM上で動作するため、VMMをホストと称し、VMをゲストと称することがあることに留意されたい。
本発明の実施形態では、VMM415は、特定のノードから移動することはないが、VM410をあるノードから他のノードに移動させることができる。本発明の実施形態では、VM410の移動が生じた場合、当該VM410の上で稼動しているアプリケーション・プログラム群405もそれに伴って移動することになる。本発明の実施形態では、移動対象であるVM(およびその上で稼動しているアプリケーション・プログラム)を稼動したままで移動することができる。一般的に、このような稼動中のVMをサーバ間で移動する技法をライブマイグレーションと称するが、よく知られた技法であるのでここではこれ以上説明されない。
本発明の実施形態では、クライアント105からはVM410があたかも一台の独立したコンピュータ装置のように見えている。クライアント105のユーザは、どの処理ノードにおいて割り当てられたVM410が稼動しているのかを意識することなく、当該VM上のアプリケーションを操作することができ、ITインフラストラクチャを利用することができる。
本発明の実施形態では、VM上で稼動するアプリケーション・プログラムがメインメモリの仮想アドレスを指定してメモリ・アクセスをしようとすると、まずVMにおいて、GVAからGPAへの変換が行われ、これがVMMに引き渡される。次いで、VMMがGPAに対応するHVAをHPAに変換することによって、物理的なメモリ装置へのアクセスが実現される。図5を用いてこのメカニズムをより詳細に説明する。
図5は、本発明の実施形態のIaaS環境のトレーサ・ノード130におけるアドレス変換およびメモリ・アクセスのトレースの取得を説明するための図である。既に説明をしたものを含むが、便宜のため、まず図5に存在する略語を以下で説明する。
・GVA505:Guest Virtual Address(ゲスト仮想アドレス)
・GPT510:Guest Page table(ゲスト・ページ・テーブル)
・GPA515:Guest Physical Address(ゲスト物理アドレス)
・HVA520:Host Virtual Address(ホスト仮想アドレス)
・PT525:Page Table(ページ・テーブル)
・HPA530:Host Physical Address(ホスト物理アドレス)
・PFログ535、540:ページフォルト・ログ
本発明の実施形態では、アプリケーション・プログラム405は、GVA505を指定してメモリ・アクセス命令を実行する。GPT510には、その時点での最新のGVA505とGPA515の対応が記憶されている。アプリケーション405からメモリ・アクセス命令を受けたVM410は、GPT510を参照して、GVA505をGPA515に変換し、GPA515を含むメモリ・アクセス命令をVMM415に引き渡す。このとき、GPT510にメモリ・アクセス命令に含まれるGVA505に対応するGPA515が存在しないことが分かった場合、VMレベルのページ・フォルト(PF)が発生する。本発明の実施形態では、そのようなVMレベルのPFが発生したことに応じて、GPA515が新たに割り当てられる。本発明の実施形態では、さらに、VMレベルのPFがVMレベルのPFログ535に記録される。
図8は、本発明の実施形態のIaaS環境におけるVMレベルのページフォルト・ログ535の一例を表現する概略図である。本発明の実施形態のVMレベルのPFログ535は、VMレベルのPFごとに、そのPFの発生時刻、メモリ・アクセス命令に含まれるGVA、当該GVAに対応して割り当てられたGPA、プロセスID(PID)、プロセス名(Name)を含む。本発明の実施形態では、任意のGPAについて、VMレベルのPFログ800を参照することによって、PF発生時刻からさらに更新されるまでの期間の間のGVAとGPAの対応を把握することができることに留意されたい。
本発明の実施形態のVMM415は、VM410からGPA515を含むメモリ・アクセス命令を受けたことに応じて、PT525を参照して、HVA520(GPA515と等価)をHPA530に変換して、トレーサ・ノード130のメモリ装置にアクセスする。VMMレベルにおいても、VMレベルと同様に、PT525にメモリ・アクセス命令に含まれるHVA520に対応するHPA530が存在しないことが分かった場合、VMMレベルのPFが発生する。本発明の実施形態では、そのようなVMMレベルのPFが発生したことに応じて、HPA530が新たに割り当てられる。本発明の実施形態では、さらに、VMMレベルのPFがVMMレベルのPFログ540に記録される。
図9は、本発明の実施形態のIaaS環境におけるVMMレベルのページフォルト・ログ540の一例を表現する概略図である。本発明の実施形態のVMMレベルのPFログ540は、VMMレベルのPFごとに、そのPFの発生時刻、メモリ・アクセス命令に含まれるHVA、当該HVAに対応して割り当てられたHPA、プロセスID(PID)、プロセス名(Name)を含む。本発明の実施形態では、任意のHPAについて、VMMレベルのPFログ900を参照することによって、PF発生時刻からさらに更新されるまでの期間の間のHVAとHPAの対応を把握することができることに留意されたい。
本発明の実施形態のトレーサ・ノード130では、VMM415がHPAを使用して実施したメモリ装置へのアクセスは、特殊なモニタリング・ハードウェア(図5で図示せず)によってキャプチャされ、キャプチャされた生のトレース・データ545が記録される。既に述べたとおり、本発明の実施形態のトレーサによって取得される生のトレース・データは、メモリ装置のアクセスに関して、アクセス時間、コマンド、アクセスをした領域の物理アドレス、プロセスID、プロセス名等を含むが、これらのすべてが必須なものであるとは限らない。
本発明の実施形態では、モニタリング・ハードウェアは、ハードウェア・レベルのアクセスであるメモリの物理アドレスを観測することができるが、それより上層レベルの情報、例えば、どの仮想マシンによってアクセスされたか、どのアプリケーションによってアクセスされたかを直接観測することはできない。したがって、生のトレース・データ545を直接閲覧しても、特定のVM/アプリケーション・プログラムのメモリ・アクセスの解析をすることは困難であることに留意されたい。
本発明の実施形態では、既に述べたとおり、VMMレベルのPFログ540を参照することによって、あるPF発生の時刻からさらに更新されるまでの期間の間のHVAとHPAの対応を把握することができる。そこで、本発明の実施形態では、フィルタ550がVMMレベルのPFログ540を参照して、生のトレース・データに記録されたメモリ・アクセスそれぞれについて、アクセス時刻でのHPAに対応するHVA/GPAの情報を付加し、HVA/GPAが付加されたトレース・データ555を形成する。
また、本発明の実施形態では、既に述べたとおり、VMMレベルのPFログ535を参照することによって、あるPF発生の時刻からさらに更新されるまでの期間の間のGVAとGPAの対応を把握することができる。そこで、本発明の実施形態では、フィルタ560がVMMレベルのPFログ535を参照して、トレース・データ555に記録されたメモリ・アクセスそれぞれについて、アクセス時刻でのHVA/GPAに対応するGVAの情報を付加し、GVAが付加されたトレース・データ565を形成する。
図10は、本発明の実施形態のIaaS環境におけるGPA、GPA/HVAが付加されたトレース・データ565の一例を表現する概略図である。トレース・データ565には、アクセス時刻(Time)、コマンド(Command)、HPA、HVA/GPA、GVA、プロセスID(PID)およびプロセス名(Process Name)が含まれている。HPA/GPAの項目およびGVAの項目はフィルと550、555によって付加されたものであることに留意されたい。
図6は、本発明の実施形態のIaaS環境における特定のVMおよび/または特定のアプリケーション・プログラムのトレース処理の動作を表現する第1のフローチャート600である。フローチャート600では、生のトレース・データの採取およびページ・フォルトのログの採取の処理が実行される。
処理はステップ605でスタートし、ステップ610で、ある処理ノード120で稼動しているVM上でVMレベルのPFログの記録が開始され、また、アプリケーション・プログラムが起動される。VMレベルのPFログ535については、図8に示される一例を用いて既に説明をしたのでここではこれ以上詳細に説明されない。
次いで、ステップ612において、管理者140がある処理ノードで稼動するトレース対象のVMおよび/またはアプリケーション・プログラムを指定する。処理はステップ615に進み、トレーサ・ノード130がそのメインメモリへのメモリ・アクセスのトレースを取得し、トレース・データとして記録することを開始する。また、ステップ615で、トレーサ・ノード130は、そのメモリ装置へのアクセスすべてについて、VMMレベルのPFログ540に記録することを開始する。VMMレベルのPFログ540については、図9に示される一例を用いて既に説明をしたのでここではこれ以上詳細に説明されない。本発明の実施形態では、トレース・データの採取およびVMMレベルのPFログ540の記録はトレース解析対象期間に継続して行われるものとする。
次いで、ステップ620において指定されたVMまたは指定されたアプリケーション・プログラムが稼動するVMのある処理ノード120からトレース・ノード130へのライブマイグレーションが開始する。
処理はステップ625へ進み、ステップ620におけるトレーサ・ノード130へのライブマイグレーションの発生に応じて、ライブマイグレーションの対象であるVMが移動元のノードで使用していたメモリの内容の移動後のノードへのコピー(本明細書において、単に「メモリコピー」と称されることがある)が実施される。具体的には、トレーサ・ノード130において、当該VMが移動前のサーバで使用していたメモリの内容を移動後のサーバにコピーするために、移動元の処理ノードのVMMと移動先のトレーサ・ノードの間でやり取りがなされる。このとき、トレーサ・ノードのHVAを指定してトレーサ・ノードのメモリ装置への書込みが試みられるが、当該HVAに対応するHPAはいまだ決定されておらずPFが発生する。本発明の実施形態では、発生したVMMレベルのPFに応じて割り当てられたHPAとHVAの対応、および、割り当て時刻の情報を含むようにVMMレベルのPFログ540が更新される。
本発明の実施形態では、メモリコピーの対象となる記憶領域全体についてPFが発生するので、ライブマイグレーションの対象のVMが使用するメモリ領域すべてについてPFログ540が更新されることとなる。なお、本発明の実施形態では、VMM415が、メモリコピーを制御し、メモリコピーの開始と終了を特定することができるので、メモリコピーの開始から終了までの間に生じた、ライブマイグレーションされたVMについて生じたPFを特定することができることに留意されたい。
さらに処理はステップ630に進み、ライブマイグレーションが終了し、以降、ユーザはトレーサ・ノード130上で稼動するVMからITインフラストラクチャのサービスを受けることになる。本発明の実施形態においては、ライブマイグレーションが実施されることによって、ステップ612で記録を開始したVMレベルのPFログ535がトレース対象のVMとともにトレーサ・ノード130に移動することに留意されたい。また、本発明の実施形態では、ステップ625におけるメモリコピーの実施において、VM上で稼動するアプリケーション・プログラムがメモリ・アクセスを試みた結果としてPFが生じることがある。本発明の実施形態では、そのようなPFに応じて割り当てられたGPAとGVAの対応、および、その割り当て時刻の情報を含むようにVMレベルのPFログ535が更新される。
次に、ステップ630において、後で行われるメモリ・アクセス解析のためのワークロード・プログラム実行が、トレーサ・サーバ130にライブマイグレーションされたVM上で実施される。かかるワークロード・プログラム実行におけるメモリ・アクセスはすべてトレース・データとして記憶されることとなる。また、ワークロード・プログラム実行において、VMレベルのPF、VMMレベルのPFが発生した場合は、それぞれVMレベルのPFログ535、VMMレベルのPFログ540に記録されることは勿論である。ステップ640においてさらにトレーサ・ノード130のメモリ装置へのアクセスのトレースを継続するかどうかが判定される。トレースを継続すると判定された場合、処理はYESの矢印を介してステップ635に戻り、トレースを中止するまで繰り返される。
ステップ640においてトレースを継続しないと判定された場合、処理はNOの矢印を介してステップ645に進み、トレース対象のVMを任意の処理ノードに移動する。このようにトレースが完了したVMを任意の処理ノードにライブマイグレーションすることによって、トレーサ・ノード130のリソースを有効に活用することができる。次いで、ステップ650に進み、トレース・データの採取、VMMレベルのPFログの記録およびVMレベルのPFログの記録を停止し、ステップ655でフローチャート600の処理が終了する。
図7は、本発明の実施形態のIaaS環境における特定のVMおよび/または特定のアプリケーション・プログラムのトレース処理の動作を表現する第2のフローチャート700である。フローチャート700では、フローチャート600の処理を介して採取された生のトレース・データおよびPFログを用いたVM/アプリケーション・プログラムごとのトレース・データの特定の処理が実行される。なお、フローチャート700を実行する前に、トレース・データはトレース・データ記憶装置135に移動されているのものとする。トレース・データのトレース・データ記憶装置135への移動は、既に図3と関連して説明したので、ここではこれ以上詳細には説明されない。
処理はステップ705でスタートし、ステップ710で、管理者140から解析対象のVMおよび/またはアプリケーション・プログラムを指定する。処理はステップ715に進み、ステップ710でアプリケーション・プログラムを指定した場合は、そのアプリケーション・プログラムが稼動していたVMが特定される。
次に、ステップ720において、VMMレベルのPFログ555を使用して解析対象のVMのトレース・データを特定する。具体的には、フィルタ550がVMMレベルのPFログ540を参照して、生のトレース・データ内のある時刻における解析対象のVMのHVA/GPAに対応するHPAを備えるメモリ・アクセスを検索する。そして、当該メモリ・アクセスに、アクセス時刻でのHPAに対応するHVA/GPAの情報を付加し、HVA/GPAが付加されたトレース・データ555を形成する。
処理はステップ725に進み、VMレベルのPFログ550を使用して解析対象のアプリケーション・プログラムのトレース・データを特定する。具体的には、フィルタ560が、VMレベルのPFログ535内に記録されたある時刻における解析対象のアプリケーションに割り当てられたGVAに対応するGPA/HVA(ステップ720において付加されている)を備えるメモリ・アクセスを検索する。そして、当該メモリ・アクセスに、アクセス時刻でのHPAに対応するHVA/GPAの情報を付加し、HVA/GPAが付加されたトレース・データ560を形成する。
当業者は、ステップ720および725において、トレース・データ内のメモリ・アクセスに対して解析対象のVMのHVA/GPAおよび/または解析対象のアプリケーションのGVAの情報が付加されたことによって、そのメモリ・アクセスを解析対象のVM/アプリケーション・プログラムのトレース・データとして特定することができるようになることを容易に理解するだろう。
処理はステップ730に進み、トレース・データに付加されたHPA/GPAの項目、GVAの項目に基づいて、ステップ710において管理者が指定した解析対象のVMおよび/またはアプリケーション・プログラムについての部分のみが管理者に提示される。その結果、管理者は自分が解析対象としているVMおよび/またはアプリケーション・プログラムのメモリ・アクセスの解析(例えば、様々なワークロードのメモリアクセスパターンの分析など)を行うことができる。次いで、ステップ735に進み、フローチャート700の処理が終了する。
本発明は、当業者に容易に理解されるとおり、システム、方法またはコンピュータ・プログラム製品として実施することができる。そのため、本発明は全面的にハードウェアとしての実施形態、全面的にソフトウェアとしての実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)あるいは、ここでは、一般的に「回路」、「モジュール」または「システム」と呼ぶソフトウェアとハードウェアを組み合わせた実施形態の形式をとることができる。さらに、本発明は、その媒体で実施されるコンピュータが使用できるプログラム・コードを持った有形の表現媒体で実施されるコンピュータ・プログラム製品の形態をとることもできる。
コンピュータ使用可能/コンピュータ可読媒体の組み合わせを利用することもできる。コンピュータ使用可能/コンピュータ可読媒体は、たとえば、電子的、磁気的、光学的、電磁、赤外線または半導体システム、装置、デバイスまたは伝搬媒体であってよいが、これらに限定されない。コンピュータ可読媒体のより具体的な例の非網羅的なリストには、以下のものが含まれる。導線を持った電気的接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リードオンリー・メモリ(ROM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROMまたはフラッシュメモリ)、光ファイバー、ポータブル・コンパクトディスク・リードオンリー・メモリ(CD―ROM)、光記憶デバイス、インターネットまたはイントラネットをサポートする伝送媒体、磁気記憶装置。
プログラムは、たとえば、紙または他の媒体を光学的に走査することによって、電子的に取得され、次に、必要に応じて、コンパイルされ、解釈され、その他適宜の方法で処理され、コンピュータのメモリに保存されるため、コンピュータ使用可能/コンピュータ可読媒体は、プログラムが印刷された紙またはその他の適当な媒体であってもよい点に留意すべきである。コンピュータ使用可能/コンピュータ可読媒体は、命令実行システム、装置またはデバイスにより、あるいはこれらに関連して使用するためのプログラムを包含し、保存し、通信し、伝播し、または搬送することができる任意の媒体であってよい。コンピュータが使用できる媒体は、ベースバンド中または搬送波の一部として、一緒に実施されるコンピュータが使用できるプログラム・コードを含んだ伝播されたデータ信号を含むことができる。コンピュータが使用できるプログラム・コードは、無線、有線、光ファイバー・ケーブル、RF等を含むがこれらに限定されない適切な媒体を使用して伝送することができる。
本発明を実行するコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のオブジェクト指向のプログラム言語およびCプログラム言語またはこれに類似するプログラム言語等の従来型の手続プログラム言語を含んだ1種類または複数のプログラム言語の組み合わせを使用して記述することができる。プログラム・コードは、全面的にユーザのコンピュータ上、一部をユーザのコンピュータ上、独立型のソフトウェア・パッケージとして、一部をユーザのコンピュータおよび一部をリモート・コンピュータ上、全面的にリモート・コンピュータまたはサーバ上で実行できる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通じてユーザのコンピュータに接続することができ、あるいは接続は外部コンピュータ(たとえば、インターネット・サービス・プロバイダを利用してインターネットを通じて)に対して行うこともできる。
以上、方法、装置(システム)およびコンピュータ・プログラム製品のフローチャートによる図示および/またはブロック図を参照して、本発明の実施形態を説明した。フローチャートによる図示および/またはブロック図の各ブロック、およびフローチャートによる図示および/またはブロック図のブロックの組み合わせは、コンピュータ・プログラムの命令によって実行できることは理解されるであろう。汎用コンピュータ、特殊目的のコンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサを通じて実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/活動を実行する手段を生成する機械を製造するために、これらのコンピュータ・プログラムの命令は、上記コンピュータ、その他のプログラム可能なデータ処理装置のプロセッサに対して与えることができる。
これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置を、コンピュータ可読媒体に保存された命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作を実行する命令手段を含む製品を生産するよう、特定の態様で機能させることができるコンピュータ可読媒体に保存することもできる。
コンピュータ・プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置上で実行する命令がフローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/活動を実行するプロセスを提供するように、コンピュータで実行するプロセスを作成するため、コンピュータまたは他のプログラム可能なデータ処理装置上で一連の動作のステップを実行するようにそのコンピュータまたは他のプログラム可能なデータ処理装置にロードすることもできる。
図面中のフローチャートおよびブロック図は、この発明のさまざまな実施形態によるシステム、方法およびコンピュータ・プログラム製品のアーキテクチャ、機能性および実行動作を図示している。この点については、フローチャートまたはブロック図の各ブロックは指定された論理機能を実行するための1つまたは複数の実行可能な命令を含んだモジュール、セグメントまたはコードの部分を示すことができる。一定の代替的実装例においては、ブロックに示された機能が図面に示したものとは異なる順番で行われることがある点にも留意すべきである。たとえば、関連する機能性に応じて、順番に示されている2個のプロックが、実際にはほぼ同時に実行されること、あるいはブロックが逆の順番で実行されることがある。ブロック図および/またはフローチャートの図示の各ブロック、およびブロック図および/またはフローチャートの図示のブロックの組み合わせは、特殊な機能または活動を行う特殊目的のためのハードウェア主体のシステム、または特殊目的のハードウェアの組み合わせによって実行され得る。
以上、本発明の実施形態によれば、IaaS環境において、トレーサ・ノードが取得するトレース・データから特定の仮想マシンに関連するトレース・データを特定することが理解されるであろう。さらに、本発明の実施形態によれば、少数のトレーサ・ノードを有効に活用できるので、特定の仮想マシンのメモリ装置へのアクセスのトレースをより低コストで取得できることが理解されるであろう。
上記の実施の形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。例えば、本発明の実施形態では、管理者がトレース対象のVMおよび/またはアプリケーション・プログラムを指定して、解析を行うことを前提に説明をしたが、ネットワークを介して各VMを利用するユーザが自己のVMおよび/またはアプリケーション・プログラムのメモリ・アクセスを解析するために、本発明の実施形態の管理者の役割を担うようにすることも勿論可能である。そのような変形も当然に本発明の技術的思想の範囲に含まれる。

Claims (15)

  1. 1以上の処理ノードおよびメモリ装置へのアクセスのトレースを取得するトレーサ・ノードを含むコンピューティング環境において、前記トレーサ・ノードが取得するトレース・データから特定の仮想マシンに関連するトレース・データを特定するためのコンピュータ実装方法であって、
    前記トレーサ・ノードのメモリ装置へのアクセスのトレースの情報を含むトレース・データの記録を開始するステップと、
    ある処理ノードから前記トレーサ・ノードへ特定の仮想マシンがマイグレーションされたことに応じて、前記特定の仮想マシンに割り当てられた前記トレーサ・ノードのメモリ装置の物理アドレスを特定する情報を記憶するステップと、
    前記割り当てられたトレーサ・ノードのメモリ装置の物理アドレスを用いて、前記トレース・データから前記特定の仮想マシンに関連するトレース・データを特定するステップと、
    を含む、方法。
  2. 前記1以上の処理ノードおよびトレーサ・ノードは、1以上の仮想マシンを管理することができるハイパーバイザをそれぞれ備える、請求項1に記載の方法。
  3. 前記仮想マシンが、ゲスト仮想アドレスとゲスト物理アドレスの間の第1のアドレス変換を実行する、請求項2に記載の方法。
  4. 前記トレーサ・ノードのメモリ装置の物理アドレスを特定する情報がホスト物理アドレスであり、
    前記ハイパーバイザが、ホスト仮想アドレスとホスト物理アドレスとの間の第2のアドレス変換を実行する、請求項3に記載の方法。
  5. 前記ホスト仮想アドレスと前記ゲスト物理アドレスが等価なものである、請求項4に記載の方法。
  6. 前記記憶するステップが、前記第2の変換に伴って発生するページ・フォルトに応じて前記特定の仮想マシンに割り当てられたホスト物理アドレスを記憶するステップを含む、請求項5に記載の方法。
  7. 前記マイグレーションに応じて、メモリコピーを開始するステップをさらに含み、
    前記メモリコピーによって前記特定の仮想マシンが使用するホスト仮想アドレスすべてについて、前記第2の変換に伴うページ・フォルトが発生する、請求項6に記載の方法。
  8. 前記ハイパーバイザが、メモリコピーを制御し、メモリコピーの開始と終了を特定することができる、請求項6に記載の方法。
  9. 前記トレース・データが、それぞれのメモリ装置へのアクセスに関連付けられたアクセス時刻を含み、
    前記記憶するステップが、前記ホスト仮想アドレスおよび前記ホスト物理アドレスの対応および前記第2の変換に伴うページ・フォルトの発生時刻を、ページフォルト・ログに記憶するステップを含み、
    前記特定するステップが、前記トレース・データ内のメモリ・アクセスについて、前記ページフォルト・ログを参照して、そのアクセス時刻に前記特定の仮想マシンに割り当てられていたホスト仮想アドレスの情報を付加するステップを含む、
    請求項6に記載の方法。
  10. 前記特定するステップにおいて、前記付加されたホスト仮想アドレスの情報に基づいて、トレース・データから前記特定の仮想マシンに関連するトレース・データを特定する、請求項9に記載の方法。
  11. 前記特定の仮想マシン上で稼動するアプリケーション・プログラムをトレース対象として特定するステップと、
    前記記憶するステップが、前記第1の変換に伴って発生するページ・フォルトに応じて前記トレース対象として特定されたアプリケーション・プログラムに割り当てられたゲスト物理アドレスを記憶するステップを含む、請求項10に記載の方法。
  12. 前記記憶するステップが、前記ホスト仮想アドレスおよび前記ホスト物理アドレスの対応および前記第1の変換に伴うページ・フォルトの発生時刻を、ページフォルト・ログに記憶するステップを含み、
    前記特定するステップが、前記トレース・データ内のメモリ・アクセスに、前記ページフォルト・ログを参照して、そのアクセス時刻に前記トレース対象として特定されたアプリケーション・プログラムに割り当てられていたゲスト仮想アドレスの情報を付加するステップを含む、
    請求項11に記載の方法。
  13. 前記特定するステップにおいて、前記付加されたゲスト仮想アドレスの情報に基づいて、トレース・データから前記トレース対象として特定されたアプリケーション・プログラムに関連するトレース・データを特定する、請求項12に記載の方法。
  14. 請求項1乃至13のいずれかに記載の方法に含まれる各ステップをコンピュータに実行させる、プログラム。
  15. 請求項1乃至13のいずれかに記載の方法に含まれる各ステップを実行する手段を備える、トレーサ・ノード。
JP2013072211A 2013-03-29 2013-03-29 特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード Expired - Fee Related JP6099458B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013072211A JP6099458B2 (ja) 2013-03-29 2013-03-29 特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード
US14/222,812 US9448910B2 (en) 2013-03-29 2014-03-24 Computer-implemented method, program, and tracer node for obtaining trace data relating to particular virtual machine
US15/205,311 US9632725B2 (en) 2013-03-29 2016-07-08 Computer-implemented method, program, and tracer node for obtaining trace data relating to particular virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013072211A JP6099458B2 (ja) 2013-03-29 2013-03-29 特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード

Publications (2)

Publication Number Publication Date
JP2014197295A JP2014197295A (ja) 2014-10-16
JP6099458B2 true JP6099458B2 (ja) 2017-03-22

Family

ID=51622173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013072211A Expired - Fee Related JP6099458B2 (ja) 2013-03-29 2013-03-29 特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード

Country Status (2)

Country Link
US (2) US9448910B2 (ja)
JP (1) JP6099458B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5936241B2 (ja) 2014-09-26 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 解析システム、解析方法およびプログラム
US9842065B2 (en) * 2015-06-15 2017-12-12 Intel Corporation Virtualization-based platform protection technology
US10140216B2 (en) * 2016-01-21 2018-11-27 Arm Limited Measuring address translation latency
US11150928B2 (en) 2016-06-08 2021-10-19 Red Hat Israel, Ltd. Hypervisor translation bypass
JP7035787B2 (ja) * 2018-05-14 2022-03-15 富士通株式会社 演算処理装置および演算処理装置の制御方法
US11481240B2 (en) * 2018-11-30 2022-10-25 International Business Machines Corporation Capturing traces of virtual machine objects combined with correlated system data
US11416411B2 (en) * 2019-03-15 2022-08-16 Intel Corporation Preemptive page fault handling
US11886351B2 (en) 2020-03-25 2024-01-30 Red Hat, Inc. Memory efficient virtual address management for system calls
US11221869B2 (en) 2020-03-25 2022-01-11 Red Hat, Inc. Memory efficient host virtual address management for hypercalls
CN113641466A (zh) * 2021-10-15 2021-11-12 云宏信息科技股份有限公司 Xen平台的内存分配方法、系统及计算机可读存储介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03217949A (ja) * 1990-01-23 1991-09-25 Hitachi Ltd 計算機システム
JPH05903A (ja) 1990-11-29 1993-01-08 Sumitomo Chem Co Ltd 発泡性農薬組成物
JPH0535548A (ja) 1991-07-29 1993-02-12 Nec Ibaraki Ltd アドレストレーサ
JP3146543B2 (ja) 1991-08-23 2001-03-19 住友電気工業株式会社 ヘテロ接合バイポーラトランジスタの製造方法
JPH05100903A (ja) 1991-10-07 1993-04-23 Nec Ibaraki Ltd アドレストレーサ
JPH05143391A (ja) 1991-11-21 1993-06-11 Toshiba Corp 仮想記憶方式のコンピユータにおけるメモリトレース方法
JPH05313947A (ja) 1992-05-12 1993-11-26 Nec Corp リアルタイムトレーサ
US5721917A (en) * 1995-01-30 1998-02-24 Hewlett-Packard Company System and method for determining a process's actual working set and relating same to high level data structures
US7082604B2 (en) * 2001-04-20 2006-07-25 Mobile Agent Technologies, Incorporated Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
US7313734B2 (en) * 2002-01-14 2007-12-25 International Business Machines Corporation Method and system for instruction tracing with enhanced interrupt avoidance
US7222221B1 (en) * 2004-02-06 2007-05-22 Vmware, Inc. Maintaining coherency of derived data in a computer system
US7512769B1 (en) * 2004-10-06 2009-03-31 Hewlett-Packard Development Company, L.P. Process migration
JP2006338734A (ja) * 2005-05-31 2006-12-14 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びエラーリカバリ方法
US8521966B2 (en) * 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
GB2456813B (en) 2008-01-24 2012-03-07 Advanced Risc Mach Ltd Diagnostic context construction and comparison
US8275971B2 (en) * 2008-08-27 2012-09-25 International Business Machines Corporation Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
JP5316780B2 (ja) 2009-03-03 2013-10-16 ハートランド・データ株式会社 ソースコードトレーサ
JP5352367B2 (ja) 2009-07-27 2013-11-27 株式会社エヌ・ティ・ティ・データ 仮想マシン起動端末および仮想マシン起動プログラム
US9086981B1 (en) * 2010-11-02 2015-07-21 Vmware, Inc. Exporting guest spatial locality to hypervisors
JP5772962B2 (ja) * 2011-08-29 2015-09-02 富士通株式会社 情報処理装置、メモリダンプ採取方法、及びプログラム
US8949531B2 (en) * 2012-12-04 2015-02-03 Vmware, Inc. Automated space management for server flash cache

Also Published As

Publication number Publication date
US20160321009A1 (en) 2016-11-03
JP2014197295A (ja) 2014-10-16
US9448910B2 (en) 2016-09-20
US9632725B2 (en) 2017-04-25
US20140298334A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
JP6099458B2 (ja) 特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード
US9501309B2 (en) Monitoring hypervisor and provisioned instances of hosted virtual machines using monitoring templates
JP5969743B2 (ja) 仮想グラフィックス処理ユニットの使用の最適化方法、装置及びプログラム
US10496613B2 (en) Method for processing input/output request, host, server, and virtual machine
US9588787B2 (en) Runtime virtual process creation for load sharing
US10296362B2 (en) Execution of a script based on properties of a virtual device associated with a virtual machine
US9699251B2 (en) Mechanism for providing load balancing to an external node utilizing a clustered environment for storage management
US8336047B2 (en) Provisioning virtual resources using name resolution
US9304878B2 (en) Providing multiple IO paths in a virtualized environment to support for high availability of virtual machines
US9052949B2 (en) Scheduling a processor to support efficient migration of a virtual machine
US9400671B2 (en) Computer host with a baseboard management controller to manage virtual machines
US20160202916A1 (en) Method and system for implementing virtual machine images
WO2011083673A1 (ja) 構成情報管理システム、構成情報管理方法、及び構成情報管理用プログラム
US20180157444A1 (en) Virtual storage controller
US10235235B2 (en) Modular system awareness in virtualized information handling systems
US20170024261A1 (en) Reducing redundant validations for live operating system migration
US10346188B1 (en) Booting virtual machine instances in a distributed data processing architecture
CN107528871B (zh) 存储系统中的数据分析
Mohan et al. M2: Malleable metal as a service
US20160266951A1 (en) Diagnostic collector for hadoop
Czerwinski Influence of the VM manager on private cluster data mining system
US20210103474A1 (en) Affinity based optimization of virtual persistent memory volumes
Bruschi et al. Stackact: Performance evaluation in an iaas cloud multilayer
Narayan et al. Monitoring Resources and Snapshots on VMware Infrastructure
Xia et al. Taming io spikes in enterprise and campus vm deployment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170221

R150 Certificate of patent or registration of utility model

Ref document number: 6099458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees