JPWO2011086824A1 - マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラム - Google Patents

マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラム Download PDF

Info

Publication number
JPWO2011086824A1
JPWO2011086824A1 JP2011549894A JP2011549894A JPWO2011086824A1 JP WO2011086824 A1 JPWO2011086824 A1 JP WO2011086824A1 JP 2011549894 A JP2011549894 A JP 2011549894A JP 2011549894 A JP2011549894 A JP 2011549894A JP WO2011086824 A1 JPWO2011086824 A1 JP WO2011086824A1
Authority
JP
Japan
Prior art keywords
migration
program
memory
ecpd
speed
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.)
Withdrawn
Application number
JP2011549894A
Other languages
English (en)
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2011086824A1 publication Critical patent/JPWO2011086824A1/ja
Withdrawn legal-status Critical Current

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]
    • 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
    • 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/3457Performance evaluation by simulation
    • G06F11/3461Trace driven simulation
    • 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

Landscapes

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

Abstract

装置は、命令実行性能差があるプラットフォーム間でプログラムのマイグレーションを行う際、マイグレーション前後の性能低下を低減できない。装置は、自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び移行元マシン上における実効命令速度(ECPs)を入力して、ECPs及び自装置上に於ける移行プログラム記述命令の実効命令速度(ECPd)及びECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出する性能算出部と、自装置へ移行される移行プログラムに対しMPdを満たし、かつ容量を持った自装置の備えるメモリ割り当てを行い、割り当てが出来ないときはエラー報告を出力する資源割り当て部を備える。

Description

本発明はマイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラムに関する。
特許文献1は、ファイルブロック割り当て用制御プログラムを開示する。同プログラムは、I/Oアクセスの頻度が高いブロックを高速な記憶装置に優先的に割り当てる。
特許文献2は、異種デバイス間におけるアプリケーションのマイグレーション方法を開示する。同方法は、アプリケーションの各コンポーネントをハードウェア依存部・非依存部に分類する。同方法において、マイグレーション先デバイスは、ハードウェア依存部の代替コンポーネントを備え、マイグレーションされたハードウェア非依存部とともにアプリケーションを再構成する。
特許文献3は、仮想マシンをマイグレーションするクラスタシステムを開示する。
同システムは、要求される性能レベルに応じて、各仮想マシンに対して資源割り当てを行う。或るアプリケーションが予想以上の性能を達成している場合、同システムは、このアプリケーションを実行する仮想マシンの資源を減らして、性能低下しているアプリケーションを実行する仮想マシンの資源を増加させる。
特許文献4は、分散バッチシステムを構成する処理サーバを開示する。同サーバは、管理サーバからバッチ移行要求を受けて、ジョブスケジューリングデーモンを実行してバッチジョブの予測完了時間及びデッドライン前の完了可/不可を出力する。
特開平11−184739 特開2002−236592 特開2006−244481 特開2002−342098
上記特許文献の技術は、命令実行性能差があるプラットフォーム間でプログラムのマイグレーションを行う際、マイグレーション前後の性能低下を低減できないという課題がある。
特許文献1のプログラムは、プラットフォーム間のマイグレーションについての性能問題を解決しない。また、当該プログラムは、割り当てに際して割り当て前後の性能差を考慮しない。したがって、割当可能なメモリの性能が十分でない場合、割当後に大幅な性能低下を発生させる可能性がある。
特許文献2、3及び4の技術は、プラットフォーム間の命令実行性能に基づくマイグレーション後の性能低下を考慮しておらず、上述の課題を解決しない。本発明の目的は上述の課題を解決する、マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラムを提供することである。
本発明の一実施の形態に係るマイグレーション管理装置は、自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び前記移行元マシン上における実効命令速度(ECPs)を入力して、前記ECPs及び自装置上に於ける前記移行プログラム記述命令の実効命令速度(ECPd)及び前記ECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出する性能算出手段と、自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する資源割り当て手段を備える。
本発明の一実施の形態に係るコンピュータ読み取り可能な媒体に格納されたマイグレーション管理プログラムは、コンピュータに、自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び前記移行元マシン上における実効命令速度(ECPs)を入力して、前記ECPs及び自装置上に於ける前記移行プログラム記述命令の実効命令速度(ECPd)及び前記ECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出する性能算出処理と、自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する資源割り当て処理を実行させる。
本発明の一実施の形態に係るマイグレーション管理方法は、コンピュータが、自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び前記移行元マシン上における実効命令速度(ECPs)を入力して、前記ECPs及び自装置上に於ける前記移行プログラム記述命令の実効命令速度(ECPd)及び前記ECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出し、自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する。
本発明にかかるマイグレーション管理装置は、命令実行性能差があるプラットフォーム間でプログラムのマイグレーションを行う際、マイグレーション前後の性能低下を低減することができる。
図1は、マイグレーション管理システム400の全体構成を示す。 図2は、ユーザプログラム130の構成を示す。 図3は、カーネル表114の構成を示す。 図4は、プログラム構成表121の構成を示す。 図5は、マイグレーション管理装置300の動作フローチャートである。 図6は、マイグレーション管理装置300の構成を示す。
100 物理マシン
101 マイグレーション管理プログラム
110 カーネルプログラム
111 資源割り当て部
112 性能算出部
113 エミュレータ
114 カーネル表
118 送出部
120 プログラム管理部
121 プログラム構成表
130 ユーザプログラム
131 評価プログラム
132 移行プログラム
140 ネットワーク
200 移行元マシン
300 マイグレーション管理装置
400 マイグレーション管理システム
500 Device(M)
501 ISA(M)
502 Endian(M)
503 TransRate(M)
504 Free
505 EmulationCapability
601 プログラムID
602 ISA(P)
603 Endian(P)
604 TransRate(P)
605 Assign
606 命令速度(P)
607 Device(P)
〈第一の実施形態〉
図1は、本実施の形態のマイグレーション管理システム400の構成図である。マイグレーション管理システム400は、ネットワーク140を経由して接続された、一台以上のマイグレーション管理装置300と一台以上の移行元マシン200を包含する。マイグレーション管理装置300は、移行元マシン200で実行されている利用者のプログラム(ユーザプログラム130内の移行プログラム132)を入力して実行する(マイグレート、または移行する)。
本発明は、マイグレーションに伴って発生するエミュレーション等による命令速度の劣化を、高速なメモリを使用することで防止する。
図1において、マイグレーション管理装置300は、物理マシン100、カーネルプログラム110を備える。移行元マシン200は、物理マシン100、カーネルプログラム110、プログラム管理部120、ユーザプログラム130を備える。
物理マシン100は、プログラム制御により動作するコンピュータであり、Central Processing Unit(CPU)、メインメモリまたは二次メモリ(メモリ)、通信部、入出力装置、周辺機器等を備える。
カーネルプログラム110は物理マシン100上で動作するプログラムであり、物理マシン100の有するハードウェア資源を当該物理マシン100上で実行される各プログラムに割り当てる機能を有する。前記カーネルプログラム110は、Operating System(OS)のカーネル等を指すが、例えば仮想計算環境下においては仮想マシンモニタ等を指す。
マイグレーション管理装置300のカーネルプログラム110は、資源割り当て部111、性能算出部112と、エミュレータ113を備える。マイグレーション管理装置300のカーネルプログラム110は、物理マシン100の特性を記述したカーネル表114をメモリ上に保持する。カーネルプログラム110は、上記以外の一般的なOS機能も有する。
資源割り当て部111は、移行される各ユーザプログラム130に移行用のメモリを割り当てる。
性能算出部112は当該メモリの要求メモリ速度(MPd)を算出する。同部は、例えば、移行元マシン200上における実効命令速度(ECPs)、及び自装置におけるユーザプログラム130を記述した命令の実効命令速度(ECPd)及びECPdの基礎となるメモリ速度(MPe)に基づいて、MPdを算出する。ECPdの基礎となるメモリ速度(MPe)は、ECPdの算定または測定等に用いたメモリ速度である。
ここで、メモリ速度は、例えば、メモリバス幅、メモリサイクルタイム、メモリアクセスタイム、あるいはこれらを組み合わせたデータ転送速度(転送レート)等を指す。以降メモリ転送速度は、データ転送速度であるとする。
実効命令速度ECPは、例えば命令の実行時間を指す。マイグレーション管理装置300の実行命令速度ECPdは、当該装置上で評価プログラム131を実行することで測定可能である。移行元マシン200と移行先のマイグレーション管理装置300との間に命令セットまたは実装デバイス(命令等)の互換性がなく、移行されたプログラムがエミュレータ113上で実行される場合、ECPdはエミュレーションによる性能低下を反映した値となる。
エミュレータ113は、移行元マシン200の命令で記述され、かつ当該マシンのデバイスを使用するユーザプログラム130が、マイグレーション管理装置300で直接実行不可能な場合に、この命令等を動的にエミュレーションして実行する。エミュレータ113は、例えば、CPU状態変換機能、コード変換機能、デバイスエミュレーション機能を有する。
CPU状態変換機能は、移行元マシン200のCPU状態をマイグレーション管理装置300の状態へ変換する。コード変換機能は、移行元マシン200の命令をマイグレーション管理装置300の命令に変換する。デバイスエミュレーション機能は、移行元マシン200が備え、マイグレーション管理装置300が備えないデバイス動作を模倣する。
資源割り当て部111、及び性能算出部112は、カーネルプログラム110から制御されるハードウェア装置として実現されても良いし、物理マシン100のCPUがメモリ上のマイグレーション管理プログラム101を実行することで実現されても良い。
移行元マシン200のカーネルプログラム110は送出部118を備える。送出部118は、利用者等の指示を受けて、特定のマイグレーション管理装置300に対して、移行元マシン200で実行されている移行プログラム132の移行を依頼する。移行元マシン200のカーネルプログラム110は、上記以外の一般的なOS機能も有する。
プログラム管理部120は、カーネルプログラム110の指示で動作する。同部は、各ユーザプログラム130に割り当てられたCPU情報を管理するCPU情報管理モジュールと、各ユーザプログラム130に割り当てられたメモリ情報を管理するメモリ情報管理モジュールを備える。さらに同部は、各ユーザプログラム130が動作する物理マシン100の情報を管理するドライバ管理モジュールを備える。プログラム管理部120は、上述した情報を管理する為のプログラム構成表121をメモリ上に保持する。
CPU情報管理モジュールは、カーネルプログラム110上で稼動している全てのユーザプログラム130のCPUアーキテクチャ情報をプログラム構成表121に格納する機能を有する。CPUアーキテクチャ情報は、CPU命令セット情報、エンディアン情報、あるいは拡張命令情報を包含する。
メモリ情報管理モジュールは、カーネルプログラム110上で稼動しているユーザプログラム130が使用している全ての記憶装置モジュール(以降メモリ要素)のサイズ及びメモリ速度情報をプログラム構成表121に格納する機能を有する。
デバイスドライバ管理モジュールは、カーネルプログラム110上で稼動している全てのユーザプログラム130が持つプラットフォーム情報をプログラム構成表121に格納する機能を有する。プラットフォーム情報は、ユーザプログラム130が操作する仮想あるいは実デバイスのハードウェア情報を包含する。
図2は、ユーザプログラム130の構成を示す。ユーザプログラム130は、カーネルプログラム110の提供する機能を使用して物理マシン100上で動作するプログラムである。ユーザプログラム130は、移行プログラム132と評価プログラム131を包含する。
移行プログラム132は、カーネル領域を操作する権限をもたないアプリケーションプログラム、あるいは分散実行環境下における単機能なアプリケーションコンポーネントである。移行プログラム132は、例えば仮想計算環境下では仮想マシンである。移行プログラム132は、元々移行元マシン200で実行されているが、マイグレーション管理装置300に移行される。
評価プログラム131は、例えば、移行プログラム132が使用している命令等の使用パターンやメモリ要素のアクセスパターンを反映して利用者等によって作成されるものである。評価プログラム131は、移行元マシン200等の特定の物理マシン100の命令で記述される。評価プログラム131は、例えば、実行命令数が既知である評価用コード部、評価用コードの実行時間計測部、計測された実行時間と実行命令数から一命令当たりの実行時間、即ち実効命令速度ECPdを算出する部分とから構成される。なお、実行命令数は、評価プログラム131実行時にエミュレータ113等が計測するような構成としても良い。
さらに、評価プログラム131は、命令履歴あるいはシステムコール履歴を記録する機能と、ユーザプログラム130が使用する各メモリ要素へのメモリアクセス量及びメモリアクセス時間を測定する機能とを備えても良い。
一般的に、評価プログラム131は移行プログラム132毎に用意された方が、ECPdを正確に測定出来る。しかし、複数のユーザプログラム130の命令実行特性が類似している場合、当該複数のユーザプログラム130が1つの評価プログラム131を共用しても良い。
ユーザプログラム130のプログラムコード及びデータフォーマットは必ずしも移行元マシン200の物理マシン100上で動作するようにコンパイルされているとは限らない。移行元マシン200は、ユーザプログラム130の移行に於いて、別の移行元マシン200の中継装置として機能することもあるからである。
移行元マシン200の送出部118は、移行プログラム132及び評価プログラム131を、通信部を介してマイグレーション管理装置300に送信する。
なお、一台のコンピュータが、マイグレーション管理装置300と移行元マシン200の両者の構成を備えていても良い。即ち、或るマイグレーションにおいてマイグレーション管理装置300(または移行元マシン200)として機能したコンピュータが、別のマイグレーションにおいて移行元マシン200(またはマイグレーション管理装置300)として機能出来る構成にしても良い。
また、マイグレーション管理装置300の物理マシン100の構成や種類は、必ずしも移行元マシン200の物理マシン100と同一であるとは限らない。
マイグレーション管理装置300のカーネルプログラム110は、物理マシン100の備えるハードウェアのうち、カーネルプログラム110の管理下にあるハードウェアの構成情報を、カーネルテーブル(図3)としてメモリに保有している。
図3は、カーネル表114を示している。カーネル表114は、マイグレーション管理装置300のカーネルプログラム110が管理するCPU及びデバイス情報とメモリ資源情報を包含する。CPU情報は、例えば物理マシン100のネイティブな命令セットを特定するISA(M)501、データがビックエンディアンかリトルエンディアンかを特定するEndian(M)502である。二つの物理マシン100のISA(M)501及びEndian(M)502の両者が一致すれば、当該マシン間のプログラム移行に際してCPUエミュレーションは不要であるが、一方でも異なればCPUエミュレーションが必要である。
デバイス情報は、物理マシン100が備えるデバイス構成を特定するDevice(M)500である。Device(M)500は、例えば、デバイス構成毎に付与されたプラットフォーム名である。プラットフォーム名に対応する具体的なデバイス構成は、別途、カーネルプログラム110等で定義されている。Device(M)500が、直接、個々のデバイス情報を格納しても良い。二つの物理マシン100のDevice(M)500が一致すれば、当該マシン間のプログラム移行に際してデバイスエミュレーションは不要であるが、異なればデバイスエミュレーションが必要である。
デバイスエミュレーションは、物理マシン100が備えていないデバイスに対して入出力命令が発行等されたときに、当該デバイスの情報出力等をエミュレートすることである。例えば、CPUが、メモリに格納されたエミュレート情報をアクセスしてデバイス動作をエミュレートする。
メモリ資源情報は、例えば、実装されているメモリのデータ転送速度であるTransRate(M)503(メモリ速度)、メモリの空き容量を示すFree504である。
更にカーネル表114は、エミュレータ113がエミュレーションできるCPU及びデバイスを特定する情報であるEmulationCapability505を包含する。EmulationCapability505は、例えば命令セット特定情報(ISA)、データ形式特定情報(Endian)及びデバイス構成特定情報(Device)のリストである。エミュレータ113が、複数の命令セット、データ形式またはデバイス構成のエミュレーションを可能なとき、EmulationCapability505は複数個のリストを格納する。
カーネル表114に格納されている情報は、カーネルプログラム110が自身の管理データや物理マシン100等から取得して設定しても良いし、マイグレーション管理装置300のシステム管理者がシステムパラメータとして設定しても良い。
図3の例は、マイグレーション管理装置300のカーネルプログラム110は4種類のメモリ要素を管理し、例えば1行目のメモリ要素は12800[MB/s]の転送速度を持ち、現在2560[MB]の空き容量が存在していることを表している。
また、図3のカーネル表114は、例えばこのカーネルプログラム110は、命令セットが“ARCH_A”、リトルエンディアンのCPUと、名称”Platform1”で特定されるデバイス構成を有する物理マシン100で動作していることを表している。
図4は、本発明の形態におけるプログラム構成表121を示している。プログラム構成表121は、ユーザプログラム130が使用中のメモリ資源情報及び動作可能な物理マシン100のCPU及びデバイスの情報を包含する。
ユーザプログラム130のマイグレーションを行う場合、資源割り当て部111は、プログラム構成表121の当該プログラム対応行とカーネル表114のCPU及びデバイス情報を比較して、移行元と移行先間でプログラムの互換性があるか否かを判断する。互換性を持たない場合、資源割り当て部111は、マイグレーションした当該プログラムをエミュレータ113上で実行する。
プログラム構成表121は、ユーザプログラム130の識別子(プログラムID601)毎に、当該プログラムが動作可能な物理マシン100のデバイス構成情報(Device(P)607)を格納する。プログラム構成表121は、更に、プログラムID601毎に、当該プログラムが記述されている命令セットの特定情報(ISA(P)602)、データ形式特定情報(Endian(P)603)も包含する。
プログラム構成表121は、更に、当該プログラムの命令及びデータ格納用に割り当てられているメモリのメモリ速度(TransRate(P)604)と割当量(Assign605)を格納する。これらの情報は、通常、移行元マシン200に関する情報であり、プログラム管理部120は、これらの情報を自装置のカーネルプログラム110から入力してプログラム構成表121に格納する。プログラム管理部120は、これらの情報を移行元マシン200のシステム管理者から入力しても良い。更に、これらの情報が、ユーザプログラム130に記載されていて、プログラム管理部120がユーザプログラム130から読み取っても良い。
プログラム構成表121は命令速度(P)606を格納していても良い。命令速度(P)606は、Device(P)607、ISA(P)602、Endian(P)603、TransRate(P)604で特定される構成の物理マシン100下における実効命令速度である。
移行元マシン200が当該構成を持つ物理マシン100である場合、プログラム管理部120は移行元マシン200で実行された評価プログラム131の出力値を入力して、命令速度(P)606に格納する。プログラム管理部120は、当該物理マシン100のスペック情報や評価プログラム131の出力値を、移行元マシン200のシステム管理者から入力して命令速度(P)606に格納しても良い。
図4は、ユーザプログラム“UID1”が命令セット“ARCH_B”でビッグエンディアンのCPUと、デバイス構成”Platform1”を持つ物理マシン100で動作し、120MB/sの記憶装置を96MB使用していることを例示している。
プログラム管理部120及び送出部118は、回路によってハードウェア的に実現されても良いし、プログラムが計算機上あるいはカーネルプログラム110上で実行されることにより、ソフトウェア的に実現されても良い。
図5は、本実施の形態のマイグレーション管理装置300のマイグレーション動作のフローチャートである。以下の説明例に於いて、マイグレーション管理装置300は、移行元マシン200上で実行されているユーザプログラム130の移行プログラム132を、自装置へマイグレートする。
マイグレーション管理装置300の資源割り当て部111は、移行元マシン200の送出部118から同マシン上で実行中の特定の移行プログラム132を指定したマイグレーション要求を受信してマイグレーション処理を開始する。同装置は、同装置に接続された利用者端末から、移行元マシン200及び特定の移行プログラム132を指定したマイグレーション要求を受信しても良い。
資源割り当て部111は、移行元マシン200のプログラム管理部120から、プログラム構成表121に格納されている移行対象のユーザプログラム130の特性情報を取得する(S101)。ここで取得される特性情報は、Device(P)607、ISA(P)602、Endian(P)603、Assign605、命令速度(P)606である。取得した命令速度(P)606は、以降ECPsとして参照される。
資源割り当て部111は、取得したDevice(P)607、ISA(P)602、Endian(P)603と、自装置のカーネル表114のDevice(M)500、ISA(M)501、Endian(M)502を比較する。一部でも一致しない場合、同部はマイグレーション管理装置300がそのままユーザプログラム130のプログラムコードを実行できない(移行元と移行先とで命令等の互換性がない)と判定する(S102でNo)。
互換性がない場合、資源割り当て部111は、取得したDevice(P)607、ISA(P)602、Endian(P)603の対と一致する(Device,ISA,Endian)リストがカーネル表114のEndianCapability505の中に発見できるか判定する。即ち、同部は、自装置が移行元のエミュレーションを行えるかを判定する(S103)。エミュレーションが行えない(発見できない)場合(S103でNo)、同部は、マイグレーションは不可能であると判断し、その旨のエラー報告を出力して、マイグレーション処理を終了する(S108)。エラー報告の出力先は、マイグレーション要求の送信元(利用者端末または移行元マシン200)等である。
エミュレーションが可能である場合(S103でYes)、同部は移行元マシン200の送出部118を経由して、該当するユーザプログラム130の評価プログラム131取得し、エミュレータ113を用いて実行する(S104)。
実行に先立ち、資源割り当て部111は、例えば、エミュレータ113の動作パラメータに、取得したDevice(P)607、ISA(P)602、Endian(P)603を設定する。これにより、エミュレータ113は、Device(P)607、ISA(P)602、Endian(P)603のエミュレーションを行うようになる。資源割り当て部111は、複数のエミュレータ113の中から、取得されたDevice(P)607、ISA(P)602、Endian(P)603のエミュレーションを行うものを選択しても良い。
同部は、評価プログラム131及びエミュレータ113をメモリアクセス速度が既知の値MPeのメモリにロードすると共に、データ領域としても当該速度のメモリを割り当てて、エミュレータ113でエミュレーションしながら評価プログラム131を実行する。資源割り当て部111は、プリエンプション等で評価プログラム131の実行が中断されないように実行する。
実行された評価プログラム131は、評価用コードの実行に要した時間を、実行命令数で除して、実効命令速度ECPdを算出し出力する。出力されたECPdはメモリアクセス速度がMPeである場合の実効命令速度である。
資源割り当て部111の要求を受けて、性能算出部112は評価プログラム131が出力した実効命令速度ECPd及びメモリ速度MPeに基づいて、下記の式1等を用いて要求メモリ速度MPdを算出し、資源割り当て部111に出力する(S105)。
Figure 2011086824
当該式は、ECPdはECPsに比べエミュレーション等に起因するメモリアクセス回数増により性能低下が生じること、及び他の要因による性能低下分は無視されうることを前提としている。この前提の下、性能算出部112は、式(1)を用いて当該性能低下を補償する為に要求される要求メモリ速度MPdを算出する。
エミュレータ113の設計情報や過去の実績等により、エミュレーションによるメモリアクセス増割合が既知である場合、資源割り当て部111は評価プログラム131を実行せずECPdの推定値を計算等しても良い。
資源割り当て部111は、カーネル表114のTransRate(M)503及びFree504を参照し、自装置内に要求メモリ速度MPdを満たす記憶装置は十分な空き容量(取得したAssign605以上)を持って存在するか判定する(S106)。当該条件を満たすメモリ(要求メモリ)が存在しない場合(S106でNo)、同部は、マイグレーションは不可能であると判断し、その旨のエラー報告を出力してマイグレーション処理を終了する(S109)。
エラー報告を受信したマイグレーション要求の送信元(利用者端末または移行元マシン200)は、例えば、マイグレーション管理システム400内の別のマイグレーション管理装置300を選択して、マイグレーション要求を送信し直す。
要求メモリが存在する場合(S106でYes)、資源割り当て部111は、移行元マシン200の送出部118から移行プログラム132を取得し、要求メモリを割り当ててエミュレータ113上で移行プログラム132の実効を開始する。即ち、同部はユーザプログラム130のライブマイグレーションを実行する(S107)。
なお、取得したDevice(P)607、ISA(P)602、Endian(P)603と、自装置のカーネル表114のDevice(M)500、ISA(M)501、Endian(M)502が一致する場合(図5のs102でYes)、資源割り当て部111は評価プログラム131を、エミュレータ113を使用せずに直接実行する。性能算出部112は、この結果から要求メモリ速度MPdを算出する。
本実施の形態のマイグレーション管理装置300は、以下の効果を達成できる。第一の効果は、マイグレーション管理装置300及び移行元マシン200が備える物理マシン100の命令等の互換性の有無に依らず、後者から前者へマイグレーションされた移行プログラム132の性能低下を抑えることができることである。
その理由は、エミュレーション等に起因して実効命令速度が低下するような場合でも、移行プログラム132に高速なメモリを割り当てることで、性能維持を図るからである。移行後、移行プログラム132実行中の命令及びデータアクセスが速くなり、このアクセス高速化が、結果的にエミュレーションによる性能低下を相殺する。
第二の効果は、移行プログラム132の動作特性を反映したメモリ割り当てができることである。
その理由は、移行対象の移行プログラム132が持つ、特徴的な処理を含んだ評価プログラム131を、移行先であるマイグレーション管理装置300で事前に実行することで、移行後の当該プログラム実行時の性能低下を的確に予測するからである。
<第二の実施形態>
次に、本発明の第二の実施形態について説明する。本実施の形態の性能算出部112は、要求メモリ速度MPdの算出(図5のS105)に於いて、CPU負荷(L)を反映する計算式を用いる。
マルチプロセッサシステム等に於いてシステム内の平均CPU使用率が高い場合、複数のCPUや入出力データ転送装置間等のメモリアクセス競合により、結果的に実効命令速度ECPdが低下する。このような場合に評価プログラム131を実行して実効命令速度ECPdを算出すると、低すぎる速度が測定されてしまう。
このような測定誤算を補正するために、本実施の性能算出部112は、要求メモリ速度MPdの算出に於いて、CPU負荷を反映する下記計算式を用いる。
Figure 2011086824
ここで、CPU使用率Lはカーネルプログラム110の測定値であり0(0%を意味する)以上1(100%を意味する)以下の実数である。func(L)は、func(0)=1、func(1)=1/a(aは1以上の実数)であって、CPU使用率Lの増加に伴って増加する関数である。なお、aはCPU使用率の増加によるECPdの最大遅延倍率の見積もり値であり、システム管理者等により、パラメータとして性能算出部112に与えられる。
性能算出部112は、func(L)として様々な関数を使用するように構成できる。CPU負荷の上昇に伴いメモリアクセス時間が指数関数的に増加するとの前提の下、性能算出部112は、例えば以下の式(3)をfunc(L)として使用するように構成され得る。
Figure 2011086824
CPU負荷の上昇に伴いメモリアクセス時間が線形に増加するとの前提の下、性能算出部112は、例えば以下の式(4)をfunc(L)として使用するように構成され得る。
Figure 2011086824
性能算出部112は、CPU負荷の上昇に伴うメモリ競合影響を実測した結果の近似式、例えば、CPU負荷Lの高次関数を使用するように構成されても良い。
なお、CPU使用率が所定値以上の場合は、資源割り当て部111がCPU使用率の低下を待ち合わせてから、評価プログラム131を実行(S105)するようにしても良い。
本実施形態のマイグレーション管理装置300は、CPU使用率が高い状況で実効命令速度ECPdを測定した場合でも、通常の負荷状況で性能低下を防止するのに十分な要求メモリ速度MPdを算出できる。その理由は、性能算出部112が、測定時のCPU負荷に応じてMPdを増加補正して算出するからである。
以上、好ましい実施の形態を挙げて本発明を説明したが、本発明は必ずしも上記実施の形態に制限されるものではなく、その技術的思想の範囲内においてその形態を変化させて実施することができる。
例えば、エミュレータ113は、CPUエミュレーションまたはデバイスエミュレーションの一方だけを実行するものであっても良い。この場合、カーネル表114及びプログラム構成表121は、Device(M)500、Device(P)607またはISA(M)501等、ISA(P)602等を包含しなくても良い。
更に、例えば、本発明はコード互換性がある物理マシン100間のマイグレーションにも適用できる。このようなケースにおいて、本発明はマイクロコードの実装差等に起因して発生する実効命令速度差による性能低下を低減できる。
また、本実施形態では移行元マシン200がプログラム管理部120を備えているが、別途プログラム管理部120専用の物理マシン100を用意し、これによって複数の移行元マシン200の集中管理を行っても良い。
さらに、本実施の形態における物理マシン100と記載しているコンピュータが仮想計算機であっても良い。
<第三の実施形態>
図6は、第3の実施形態のマイグレーション管理装置300の構成を示す。同装置は、性能算出部112と資源割り当て部111を備える。性能算出部112は、自装置とネットワーク140で接続された移行元マシン200上で動作する移行プログラム132に割り当てられたメモリの容量及び移行元マシン200上における実効命令速度(ECPs)を入力する。同部は、ECPs及び自装置上に於ける移行プログラム132記述命令の実効命令速度(ECPd)及びECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出する。資源割り当て部111は、自装置へ移行される移行プログラム132に対しMPdを満たし、かつ容量を持った自装置の備えるメモリ割り当てを行い、割り当てが出来ないときはエラー報告を出力する。
マイグレーション管理装置300は、命令実行性能差があるプラットフォーム間でプログラムのマイグレーションを行う際、マイグレーション前後の性能低下を低減することができる。その理由は、エミュレーション等に起因して実効命令速度が低下するような場合でも、移行プログラム132に高速なメモリを割り当てることで、性能維持を図るからである。
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2010年1月12日に出願された日本出願特願2010−003829を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (13)

  1. 自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び前記移行元マシン上における実効命令速度(ECPs)を入力して、前記ECPs及び自装置上に於ける前記移行プログラム記述命令の実効命令速度(ECPd)及び前記ECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出する性能算出手段と、
    自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する資源割り当て手段を備えるマイグレーション管理装置。
  2. 複数の移行プログラムのおのおの対応に定義された評価プログラムを格納する前記移行元マシンから、前記移行プログラム対応の評価プログラムを入力して、自装置上で前記評価プログラムを実行して、実行結果から前記ECPdを算出し、当該ECPd及び前記評価プログラムに割り当てたメモリ速度から前記MPdを算出する前記性能算出手段を備える、請求項1のマイグレーション管理装置。
  3. 自装置上で、自装置の命令と異なる前記移行元マシンの命令で記述された前記移行プログラムと前記評価プログラムを実行することができるエミュレータと、
    前記エミュレータ上で前記評価プログラムを実行して、実行結果から前記ECPdを算出する前記性能算出手段を備える、請求項2のマイグレーション管理装置。
  4. 前記評価プログラム実行時のCPU負荷に応じて、前記MPdを増加補正して算出する前記性能評価手段を備える、請求項2または3のマイグレーション管理装置。
  5. ネットワークで接続された複数の請求項1乃至4のいずれかのマイグレーション管理装置と、一の前記マイグレーション管理装置から前記エラー報告を受信すると、他の前記マイグレーション管理装置に移行要求を送信する前記移行元マシンを包含するマイグレーション管理システム。
  6. コンピュータに、自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び前記移行元マシン上における実効命令速度(ECPs)を入力して、前記ECPs及び自装置上に於ける前記移行プログラム記述命令の実効命令速度(ECPd)及び前記ECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出する性能算出処理と、
    自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する資源割り当て処理を実行させるマイグレーション管理プログラムを格納するコンピュータ読み取り可能な記録媒体。
  7. 前記コンピュータに、複数の移行プログラムのおのおの対応に定義された評価プログラムを格納する前記移行元マシンから、前記移行プログラム対応の評価プログラムを入力して、自装置上で前記評価プログラムを実行して、実行結果から前記ECPdを算出し、当該ECPd及び前記評価プログラムに割り当てたメモリ速度から前記MPdを算出する前記性能算出処理を実行させる、前記マイグレーション管理プログラムを格納する請求項6のコンピュータ読み取り可能な記録媒体。
  8. 自装置上で、自装置の命令と異なる前記移行元マシンの命令で記述された前記移行プログラムと前記評価プログラムを実行することができるエミュレータを備えた前記コンピュータに、
    前記エミュレータ上で前記評価プログラムを実行して、実行結果から前記ECPdを算出する前記性能算出処理を実行させる、前記マイグレーション管理プログラムを格納する請求項7のコンピュータ読み取り可能な記録媒体。
  9. 前記コンピュータに、前記評価プログラム実行時のCPU負荷に応じて、前記MPdを増加補正して算出する前記性能評価処理を実行させる、前記マイグレーション管理プログラムを格納する請求項7または8のコンピュータ読み取り可能な記録媒体。
  10. コンピュータが、自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び前記移行元マシン上における実効命令速度(ECPs)を入力して、前記ECPs及び自装置上に於ける前記移行プログラム記述命令の実効命令速度(ECPd)及び前記ECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出し、
    自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力するマイグレーション管理方法。
  11. 前記コンピュータが、複数の移行プログラムのおのおの対応に定義された評価プログラムを格納する前記移行元マシンから、前記移行プログラム対応の評価プログラムを入力して、自装置上で前記評価プログラムを実行して、実行結果から前記ECPdを算出し、当該ECPd及び前記評価プログラムに割り当てたメモリ速度から前記MPdを算出する、請求項6のマイグレーション管理方法。
  12. 自装置上で、自装置の命令と異なる前記移行元マシンの命令で記述された前記移行プログラムと前記評価プログラムを実行することができるエミュレータを備えた前記コンピュータが、
    前記エミュレータ上で前記評価プログラムを実行して、実行結果から前記ECPdを算出する、請求項7のマイグレーション管理方法。
  13. 前記コンピュータが、前記評価プログラム実行時のCPU負荷に応じて、前記MPdを増加補正して算出する、請求項7または8のマイグレーション管理方法。
JP2011549894A 2010-01-12 2010-12-15 マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラム Withdrawn JPWO2011086824A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010003829 2010-01-12
JP2010003829 2010-01-12
PCT/JP2010/073071 WO2011086824A1 (ja) 2010-01-12 2010-12-15 マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラム

Publications (1)

Publication Number Publication Date
JPWO2011086824A1 true JPWO2011086824A1 (ja) 2013-05-16

Family

ID=44304112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011549894A Withdrawn JPWO2011086824A1 (ja) 2010-01-12 2010-12-15 マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラム

Country Status (2)

Country Link
JP (1) JPWO2011086824A1 (ja)
WO (1) WO2011086824A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4293011B2 (ja) * 2004-02-20 2009-07-08 株式会社日立製作所 障害時のサーバ決定方法
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
US20070271560A1 (en) * 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
JP4240062B2 (ja) * 2006-05-31 2009-03-18 日本電気株式会社 計算機システムおよび性能計測方法ならびに管理サーバ装置

Also Published As

Publication number Publication date
WO2011086824A1 (ja) 2011-07-21

Similar Documents

Publication Publication Date Title
US10768960B2 (en) Method for affinity binding of interrupt of virtual network interface card, and computer device
US9378032B2 (en) Information processing method, information processing apparatus, recording medium, and system
US9081612B2 (en) Virtual machine control method and virtual machine
US8725912B2 (en) Dynamic balancing of IO resources on NUMA platforms
JP4557178B2 (ja) 仮想マシン管理システム、その方法及びそのプログラム
US9229751B2 (en) Apparatus and method for managing virtual memory
US9934062B2 (en) Technologies for dynamically allocating hardware acceleration units to process data packets
US20150040131A1 (en) Central processing unit resource allocation method and computing node
CN109726005B (zh) 用于管理资源的方法、服务器系统和计算机可读介质
JP2013196604A (ja) 計算機及び帯域制御方法
US9507624B2 (en) Notification conversion program and notification conversion method
US10169102B2 (en) Load calculation method, load calculation program, and load calculation apparatus
CN110750336B (zh) 一种OpenStack虚拟机内存热扩容方法
CN111104208A (zh) 进程调度管理方法、装置、计算机设备及存储介质
WO2014118969A1 (ja) 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法
CN110162396A (zh) 内存回收方法、装置、系统和存储介质
KR102640232B1 (ko) 가상화 환경에서의 자원 할당 방법 및 장치
US20220318057A1 (en) Resource Management for Preferred Applications
KR101924467B1 (ko) 가상 머신의 cpu 및 블록 i/o 작업에 성능 보장을 위한 자원 할당 시스템 및 방법
CN110795202A (zh) 一种虚拟化集群资源管理系统的资源分配方法以及装置
Ekane et al. FlexVF: Adaptive network device services in a virtualized environment
CN106330595B (zh) 分布式平台的心跳检测方法和装置
CN104281587A (zh) 一种建立连接的方法及装置
WO2011086824A1 (ja) マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラム
CN109062702B (zh) 一种计算资源分配方法、相关装置及可读存储介质

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140304