JP2014038459A - 仮想os制御装置、システム、方法およびプログラム - Google Patents

仮想os制御装置、システム、方法およびプログラム Download PDF

Info

Publication number
JP2014038459A
JP2014038459A JP2012180121A JP2012180121A JP2014038459A JP 2014038459 A JP2014038459 A JP 2014038459A JP 2012180121 A JP2012180121 A JP 2012180121A JP 2012180121 A JP2012180121 A JP 2012180121A JP 2014038459 A JP2014038459 A JP 2014038459A
Authority
JP
Japan
Prior art keywords
processor
virtual
virtual machine
traffic
node
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
JP2012180121A
Other languages
English (en)
Other versions
JP5646560B2 (ja
Inventor
Yasuyuki Kosakai
康之 小堺
Tsunetaro Ise
恒太郎 伊瀬
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012180121A priority Critical patent/JP5646560B2/ja
Priority to US13/966,719 priority patent/US20140053152A1/en
Publication of JP2014038459A publication Critical patent/JP2014038459A/ja
Application granted granted Critical
Publication of JP5646560B2 publication Critical patent/JP5646560B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

【課題】タスクの移動後に移動先のノードが全てのタスクの要件をみたすことができるか否かをタスクの移動前に判定することを可能にすること。
【解決手段】実施形態による仮想OS制御装置は、1以上のタスクを実行する仮想マシンに対するリソースを求め、前記リソースの周期に対する割当て時間の割合を求め、プロセッサが第1のトラフィックを処理したときのスループットと、前記プロセッサの第1の利用率と、前記仮想マシンが送信または受信する第2のトラフィックの量とから、前記仮想マシンの前記第2のトラフィックを前記プロセッサで処理するための第2のプロセッサ利用率を計算し、1以上の仮想マシンの前記割合および前記第2のプロセッサ利用率の合計を求めるように構成されたスケジューラを備えることを特徴とする。
【選択図】図1

Description

実施形態は、仮想OS制御装置、システム、方法およびプログラムに関する。
従来から、1つのノード上で複数のOS(Operating System)を実行可能とする仮想化技術が知られている。また、仮想OSの負荷を分散させる技術も存在する。
しかしながら、従来技術は、システムにおける仮想マシンの配置をそれぞれの負荷のみを基にして決定していた。そのため、あるノードにおいて実行されている仮想マシンを他のノードへ移動する場合、たとえば移動先のノードにおけるネットワーク処理にプロセッサリソースを消費するため、全てのタスクに対して十分なプロセッサリソースを確保できるとは限らなかった。特に、移動対象となるタスクや移動先のノードにおいて実行されているタスクにリアルタイム性が求められている場合では、プロセッサリソースの不足によってタスク自体が機能しないという不具合が生じる場合があった。
特開2008−276320号公報 特許第4748286号公報
Jaewoo Lee, Sisu Xi, Sanjian Chen, Linh T.X. Phan, Christopher Gill, Insup Lee, Chenyang Lu, and Oleg Sokolsky, "Realizing Compositional Scheduling through Virtualization", IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS), April, 2012
以下の実施形態では、タスクの移動後に移動先のノードが全てのタスクの要件をみたすことができるか否かをタスクの移動前に判定することが可能な仮想OS制御装置、システム、方法およびプログラムを提供する。
実施の形態による仮想OS制御装置は、1以上のタスクを実行する仮想マシンに対するリソースを求め、前記リソースの周期に対する割当て時間の割合を求め、プロセッサが第1のトラフィックを処理したときのスループットと、前記プロセッサの第1の利用率と、前記仮想マシンが送信または受信する第2のトラフィックの量とから、前記仮想マシンの前記第2のトラフィックを前記プロセッサで処理するための第2のプロセッサ利用率を計算し、1以上の仮想マシンの前記割合および前記第2のプロセッサ利用率の合計を求めるように構成されたスケジューラを備えることを特徴とする。
図1は、実施形態に係る情報処理システムの概略構成例を示すブロック図。 図2は、周期タスクの要件の定義をより詳細に説明するための図。 図3に、実施形態に係る記憶部が記憶するシステムパラメータの一例を示す図。 図4は、実施形態に係る記憶部が記憶するタスクの要件およびトラフィック量の例を示す図。 図5は、実施形態に係る情報処理システムの動作を示すシーケンス図。 図6は、図5のステップS16におけるスケジューラの動作を示すフローチャート。
以下に、実施形態に係る仮想OS制御装置、システム、方法およびプログラムについて説明する。図1は、実施形態に係る情報処理システムの概略構成例を示す。
図1に示すように、実施形態に係る情報処理システム100は、1以上のノード130および160と、ネットワーク115と、管理サーバ120、クライアント110とを備える。
管理サーバ120は、通信部124と、コントローラ121と、スケジューラ122と、記憶部123とを含む。通信部124は、Ethernet(登録商標)処理部、TCP/IPスタック、HTTPサーバなどを有する。通信部124の各部は、ソフトウエアまたはハードウエアで構成され得る。コントローラ121は、ノード130および160の各ハイパーバイザ(Hypervisor)132および162と通信し、仮想マシン140、150および170を制御する。例えば、コントローラ121は、ノード130において新たな仮想マシン140および150を作成するようにハイパーバイザ132に指示する。
また、コントローラ121は、あるノード130で実行されている仮想マシン140および150のうち1以上を別のノード160へ移動するように、ハイパーバイザ132へ指示し得る。同様に、コントローラ121は、ノード160で実行されているタスク172および173のうち1以上を別のノード130へ移動するようにも、ハイパーバイザ162へ指示し得る。
スケジューラ122は、各ノード130および160で実行されている仮想マシン140、150および170と、仮想デバイス144、154および174と、ネットワーク処理部133とにそれぞれ割り当てるリソースを求める。タスクの要件およびリソースの定義は後述する。
また、スケジューラ122は、1以上のタスクの要件をコントローラ121から取得し、取得したタスク要件に基づいて、それぞれの仮想マシン140、150および170に割り当てるリソースを求める。また、スケジューラ122は、求めたリソースをコントローラ121に出力する。
ここで、実施形態では、タスク142、143、152、152、172および173がそれぞれ周期タスクであるとする。周期タスクとは、一定間隔ごとに一定量以内の処理を実行することが要求されるタスクである。
図2を用いて、周期タスクの要件の定義をより詳細に説明する。図2に示すTSKは、周期タスクの例を示す。斜線部は、プロセッサが周期タスクTSKを実行する期間を示す。また、DLは周期タスクTSKに対するデッドラインを示す。DLの間隔は一定である。周期タスクTSKの要件は、DLの周期pと、周期タスクTSKの処理に要する最大処理時間eとの組(p,e)で定義される。周期pと最大処理時間eとの単位は、例えば周期タスクTSKを止めずに実行し続けることが可能な最短の時間で決定される。
周期タスクTSKが正常動作を続けるためには、プロセッサが、必ず周期p毎に最大処理時間e以上、周期タスクTSKを実行する必要がある。例えば、周期pと最大処理時間eとの単位が1ms(ミリ秒)であって、ある周期タスクTSKの要件が(1,200)である場合、プロセッサは、周期タスクTSKを正常に動作させ続けるために、200msごとに1msは必ず周期タスクTSKを実行する必要がある。その際、プロセッサは、実行時間e101およびe102で示すように、周期pの間に2回以上に分けて周期タスクTSKを実行してもよい。但し、その場合でも、実行時間e101およびe102の合計は、最大処理時間e以上である必要がある。
実施形態に係る情報処理システム100において、ノード130のプロセッサ131は、実行タスクを切り替えることで1以上のタスクを並行に実行する。但し、これに限らず、複数のタスクを同時に実行可能とするために、ノード130が複数のプロセッサ131を備えてもよい。
OS141は、必要に応じて仮想マシン140内のタスク142および143を切り替えるようにハイパーバイザ132またはプロセッサ131に指示する。また、同様に、OS151は、仮想マシン150内のタスク152および153を切り替えるようにハイパーバイザ132またはプロセッサ131に指示する。OS141が切り替えを指示するタスクは、仮想マシン140内で実行されるタスク142および143に限られる。同様に、OS151が切り替えを指示するタスクは、仮想マシン150内で実行されるタスク152および153に限られる。
また、ハイパーバイザ132は、必要に応じて実行する仮想マシンを切り替えるように、プロセッサ131に指示する。例えば、ハイパーバイザ132は、実行する仮想マシンを仮想マシン150から仮想マシン140に切り替える。選択された仮想マシン140のOS141は、実行するタスクをタスク142および143のうちのいずれかに切り替える。ノード160および仮想マシン150、170も同様に、仮想OSおよびタスクを切り替える。以上により、階層的にスケジューリングが実行される。
例えばプロセッサ131が仮想マシン140を実行する場合、仮想マシン140に割り当てられるリソースは、プロセッサ131が仮想マシン140を実行する周期Πと、1周期あたりの実行時間Θとの組(Π,Θ)で定義される。つまり、リソース(Π,Θ)が与えられた仮想マシンは、周期Π毎に合計Θ時間実行される。周期Πおよび時間Θの単位は、例えば仮想マシンに割り当てることができる最短の時間で定義される。
また、図1に示す管理サーバ120の記憶部123は、各ノード130および160のシステムパラメータを記憶する。図3に、記憶部123が記憶するシステムパラメータの一例を示す。図3に示すように、システムパラメータは、ノードID、プロセッサのパフォーマンス値、スループット、およびプロセッサ利用率を含む。ノードIDは、ノード130および160を一意に識別するための識別子である。プロセッサ131および160のパフォーマンス値は、それぞれの処理速度であってよい。例えば、プロセッサ131のパフォーマンス値は、プロセッサ131がある一定量の処理を実行したときの時間と、基準となるプロセッサが同じ量の処理を実行したときの時間との比率で表される。例えば、基準となるプロセッサがある一定量の処理を実行したときの時間がd1であり、図1に示すプロセッサ131が同じ処理を実行したときの時間がd2であるとき、プロセッサ131のパフォーマンス値はd1/d2となる。プロセッサ160のパフォーマンス値の定義も同様である。
スループットは、1秒当たりに各ノードが処理可能なフレーム数または通信データ量である。プロセッサ利用率は、ネットワーク処理部および仮想デバイスのそれぞれが図3に示すスループットを得るために必要なプロセッサの利用率である。図3の例において、システムパラメータは、ネットワーク処理部133、ネットワーク処理部163、仮想デバイス144、および174に対するプロセッサ利用率を含む。仮想デバイス154は、仮想デバイス144と同等の構成である。そこで、仮想デバイス154のプロセッサ利用率は、仮想デバイス144のプロセッサ利用率と同じであるため、図3に示すシステムパラメータ仮想デバイス154のプロセッサ利用率を含まない。但し、本形態の実施にあたっては、システムパラメータは全ての仮想デバイスのプロセッサ利用率を含んでもよい。
また、記憶部123は、プロセッサID、仮想マシンのID、およびタスクのIDとともに、各タスクの要件および仮想マシンが送受信するトラフィック量を記憶する。図4に、記憶部123が記憶するタスクの要件およびトラフィック量の例を示す。図4に示すように、トラフィック量は、各仮想マシンが1秒あたりに送受信するフレーム数を表す。本実施形態の例において、記憶部123は、仮想マシン140、150、および170が送受信するトラフィック量を記憶する。なお、図4に示す周期pおよび実行時間eの値はともに自然数であるが、これに限られるものではなく、正の数であればよい。また、周期pおよび実行時間eの値は、どのような形式で記されてもよい。
図1に示すノード130および160は、物理メモリ(図示せず)およびプロセッサ131または161を備えた計算機である。図1に示す例では、ノード130は、ソフトウエアまたはハードウエアで構成されたハイパーバイザ132と、仮想マシン140および150とを備える。また、ノード160は、同じくソフトウエアまたはハードウエアで構成されたハイパーバイザ162と、仮想マシン170とを備える。
ノード130のハイパーバイザ132は、ノード130上で1以上のOS141および151を実行可能とするために、仮想マシン140および150を含む1以上の仮想マシンを実行する。また、ハイパーバイザ132は、ネットワーク処理部133を備える。同様に、ノード160のハイパーバイザ162は、ネットワーク処理部163を備えるとともに、ノード160上で1以上のOS171を実行可能とするために、仮想マシン170を含む1以上の仮想マシンを実行する。
各仮想マシン140は、OS141、タスク142、およびタスク143を実行する。同様に、仮想マシン150は、OS151、タスク152、および153を実行する。仮想マシン170は、タスク171、172および173を含む1以上のタスクを実行する。OS141、151および171、ならびに、タスク142、143、152、153、172および173は、例えばソフトウエアで構成される。
また、各仮想マシン140は仮想デバイス144を備える。各仮想デバイス144は、ネットワーク処理部133とOS141との間でフレームを受け渡す。同様に、仮想マシン150は仮想デバイス154を備え、仮想マシン170は仮想デバイス174を備える。
つぎに、図5に示すシーケンス図を用いて、実施形態に係る情報処理システム100の動作を説明する。図5に示すように、まず、ステップS11において、管理サーバ120が、ノード130からシステムパラメータを取得する。
具体的には、管理サーバ120のコントローラ121は、メッセージ2001を通信部124へ渡す。メッセージ2001には、ノード130のシステムパラメータを要求する記述が含まれている。管理サーバ120の通信部124は、メッセージ2001にEthernet(登録商標)、TCP(Transmission Control Protocol)、IP(Internet Protocol)、HTTP(HyperText Transfer Protocol)などといったプロトコル処理を施し、図1に示すネットワーク115を介してノード130へメッセージを送信する。以後、管理サーバ120のコントローラ121がノード130および160へメッセージを送信するステップでは、同様に、通信部124がメッセージにEthernet(登録商標)、TCP、IP、HTTPなどといったプロトコル処理を施すものとする。また、プロトコル処理後のメッセージは、ネットワーク115を介して送信されるものとする。
メッセージ2001を受信したノード130は、メッセージ2002をネットワーク115を介して管理サーバ120へ送信する。メッセージ2002には、ノード130のシステムパラメータが含まれる。管理サーバ120の通信部124は、メッセージ2002にEthernet(登録商標)、TCP、IP、HTTPなどといったプロトコル処理を施し、処理後のメッセージをコントローラ121へ渡す。以後、管理サーバ120のコントローラ121がメッセージを受信するステップでは、同様に、通信部124がメッセージにEthernet(登録商標)、TCP、IP、HTTPなどといったプロトコル処理を施すものとする。メッセージ2002を受信したコントローラ121は、メッセージ2002に含まれるシステムパラメータを記憶部123に記憶する。
次に、ステップS12において、管理サーバ120は、システムパラメータを要求する記述を含むメッセージ2003と、ノード160のシステムパラメータを含むメッセージ2004とを用いて、ノード160からシステムパラメータを取得し、記憶部123に記憶する。このステップS12の処理は、ステップS11の処理と同様であってよい。
次に、ステップS13において、管理サーバ120は、ノード130からタスク142、143、152および153の要件と、仮想マシン140および150のトラフィック量とを取得する。具体的には、管理サーバ120のコントローラ121は、メッセージ2005をノード130へ送信する。メッセージ2005には、ノード130が実行している1以上のタスク142、143、152および153の要件を要求する記述と、仮想マシン140および150のトラフィック量を要求する記述とが含まれる。ノード130は、メッセージ2005を受信すると、メッセージ2006を管理サーバ120へ送信する。このメッセージ2006には、ノード130で動作する1以上のタスク142、143、152および153の要件と、仮想マシン140および150のトラフィック量とが含まれる。管理サーバ120がメッセージ2006を受信すると、管理サーバ120のコントローラ121は、メッセージ2006に記されたタスクの要件およびトラフィック量を記憶部123に記憶する。
次に、ステップS14において、管理サーバ120は、タスクの要件およびトラフィック量を要求する記述を含むメッセージ2007を送信し、ノード160が実行するタスク172および173の要件および仮想マシン170のトラフィック量を含むメッセージ2008を、ノード160からを受信する。このステップS14の処理は、ステップS13の処理と同様であってよい。
次に、ステップS15において、クライアント110は、メッセージ2009を管理サーバ120へ送信する。メッセージ2009には、仮想マシン170の仮想マシンID、ノード160のノードID、ノード130のノードID、および仮想マシンの移動を指示するコードが含まれる。
管理サーバ120がメッセージ2009を受信すると、管理サーバ120のコントローラ121は、仮想マシン170の仮想マシンID、ノード160のノードID、ノード130のノードID、記憶部123に記憶されたシステムパラメータおよびタスクの要件をスケジューラ122へ渡す。
次に、ステップS16において、管理サーバ120のスケジューラ122は、仮想マシン140、150および170と、ネットワーク処理部133と、仮想デバイス144、154および174とに対する最適なリソースを計算し、リソースが足りるか否かを判断する。このステップS16におけるスケジューラ122の動作の詳細は、後述において詳細に説明する。
ステップS16の判定において、スケジューラ122がリソースは十分であると判断した場合、管理サーバ120のコントローラ121は、ステップS17において、ノード130へ仮想マシン170の移動を指示する。具体的には、管理サーバ120のコントローラ121は、メッセージ2010をノード130へ送信する。このメッセージ2010には、仮想マシン170のノードIDが含まれる。ノード130は、メッセージ2010を受信すると、メッセージ2011を管理サーバ120へ送信する。このメッセージ2011には、仮想マシン170の移動を了承したか否かを示すコードが含まれる。
次に、ステップS18において、管理サーバ120のコントローラ121は、ノード160へ仮想マシン170の移動を指示する。具体的には、管理サーバ120のコントローラ121は、メッセージ2012をノード160へ送信する。このメッセージ2012には、仮想マシン170のノードIDが含まれる。ノード160は、メッセージ2012を受信すると、メッセージ2013を管理サーバ120へ送信する。このメッセージ2013には、仮想マシン170の移動を了承したか否かを示すコードが含まれる。
次に、ステップS19において、ノード160は、ノード130へ仮想マシン170のイメージ2014を送信する。仮想マシン170のイメージ2014は、仮想マシンの実行メモリイメージを含んでもよい。ノード130は、イメージ2014を受信すると、仮想マシン170の実行メモリイメージをメモリ(図示せず)に読み込み、実行を開始する。つづいて、ノード130は、仮想マシン170の移動を完了したことを示すコードを含むメッセージ2015を管理サーバ120に送信する。管理サーバ120のコントローラ121は、メッセージ2015を受信すると、メッセージ2016をクライアント110に送信する。このメッセージ2016には、仮想マシン170の移動が完了したことを示すコードが含まれる。
以上のようにして、ノード160において実行されていた仮想マシン170のノード130への移動が完了する。
次に、図6に示すフローチャートを用いて、図5のステップS16におけるスケジューラ122の動作を説明する。ノード130のプロセッサ131のパフォーマンス値は、ノード160のプロセッサ161のパフォーマンス値は異なる。そのため、仮想マシン170にノード160で割り当てられていたリソースは、ノード130において最適でない場合がある。
そこで、図6に示すように、スケジューラ122は、仮想マシン140、150および170に割り当てる最適なリソースを計算する(ステップS21)。
最適なリソースの計算方法は、ハイパーバイザ132が仮想マシン140、150および170をスケジューリングする方法と、仮想OS141、151および171のスケジューリング方法とに依存する。ハイパーバイザ132および仮想OS141、151および171がそれぞれレートモノトニックスケジューリング(Rate Monotonic Scheduling:RMS)に従ってスケジューリングを実行する場合、スケジューラ122は、例えば非特許文献1が開示する方法を用いてそれぞれの仮想マシン140、150および170に最適なリソースを計算してもよい。
次に、スケジューラ122は、ステップS22およびS23において、それぞれ仮想マシン140、150および170が送受信するトラフィックの処理に割り当てるリソースを計算する。
仮想マシン140が送受信するトラフィックの処理は、ネットワーク処理部133における処理と仮想デバイス144における処理とに分けられる。同様に、ネットワーク処理部133と仮想デバイス154は、仮想マシン150が送受信するトラフィックを処理する。さらに、ネットワーク処理部133と仮想デバイス174は、仮想マシン174がノード130において送受信するトラフィックを処理する。スケジューラ122は、それぞれの処理に対してリソースを計算する。
ネットワーク処理部133と仮想デバイス144、154および174とに割り当てられるリソースの定義は、仮想マシン140、150および170に割り当てられるリソースと異なり、プロセッサの利用率で表される。スケジューラ122は、記憶部123に記憶されたシステムパラメータ、およびそれぞれの仮想マシン140、150および170が送受信するトラフィック量を用いて、ネットワーク処理部133に割り当てるリソースを計算する(ステップS22)。
なお、ノード130は、複数のプロセッサを用いて、ネットワーク処理部133の処理を並列に実行してもよい。例えば、フレームの宛先アドレスまたは送信元アドレスに基づいてそれぞれのプロセッサが処理するフレームを決めるように、ノード130が構成されてもよい。その際、ネットワーク処理部133に割り当てるリソースは、プロセッサごとに異なっていてもよい。なお、ノード160も同様に、複数のプロセッサを用いてネットワーク処理部163の処理を実行してもよい。
スケジューラ122は、以下の式(1)を用いて、各プロセッサCがネットワーク処理部115を実行するために使用するリソースΓnw(C)を求める。
Figure 2014038459
式(1)において、仮想マシン170の移動前にノード130で動作するn台の仮想マシン(仮想マシン140、150等)をVM(1),VM(2),...,VM(n)とする。また、移動する仮想マシン170をVM(n+1)とする。Tvm(i)は、仮想マシンVM(i)のトラフィック量である。Thは、システムパラメータの一部である、ノード130におけるスループットである。例えば、図3に示すトラフィック量の場合、Thは678365fpsである。Unwは、システムパラメータの一部である、ネットワーク処理部のプロセッサ利用率である。例えば、図3に示すシステムパラメータの場合、Unwは0.3888である。Svm(C)は、プロセッサCが処理するフレームの送信元または送信先の仮想マシンの集合である。Svm(C)は、集合{VM(1),VM(2),...,VM(n),VM(n+1)}と等しくてもよいし、異なっていてもよい。
その後、スケジューラ122は、記憶部123に記憶されたシステムパラメータ、およびそれぞれ仮想マシン140、150および170が送受信するトラフィック量を用いて、仮想デバイス144、154および174に割り当てるリソースを計算する(ステップS23)。
なお、仮想デバイスは仮想マシン140、150および170にそれぞれ少なくとも1つ備えられる。そこで、図1に示すノード130のように、ノードが複数のプロセッサ131を備える場合、2以上のプロセッサが仮想デバイス144および154のそれぞれを並列に実行してもよい。例えば、仮想マシン170の移動後、仮想デバイス144、154および174の合計の処理負荷が、1つのプロセッサ131の能力を超える場合、それぞれの仮想デバイス144、154および174に1つずつのプロセッサ131を割り当ててもよい。
スケジューラ122は、以下の式(2)を用いて、あるプロセッサCが実行する1以上の仮想デバイスに割り当てるリソース量の総量Γvd(C)を計算する。
Figure 2014038459
式(2)において、Svd(C)は、プロセッサCが実行する仮想デバイスが属す仮想マシンの集合を示す。Uvdは、システムパラメータにおける仮想デバイスのプロセッサ利用率とする。例えば、ノード130へ仮想マシン170を移動する場合で、かつシステムパラメータが図3に示すデータの場合、Uvdは0.8389である。
次に、スケジューラ122は、リソースが足りるか否かを判断する(ステップS24)。フレームの処理遅延の変動を極力抑えるために、ノード130は、仮想マシン140、150および170、ネットワーク処理部133、それぞれの仮想デバイス144、154および174の処理が異なるプロセッサで実行されるように構成されてもよいし、同じプロセッサで実行されるよう構成されてもよい。
ここで、ステップS21で計算された、あるプロセッサCが実行する全ての仮想マシンに必要なリソースΓをΓ(C)=(Π(C),Θ(C))とし、その占有率をΨ(C)=Π(C)/Θ(C)とする。すると、スケジューラ122は、Ψ(C)+Γvm(C)+Γvd(C)が1を超えるプロセッサCが存在する場合、ステップS24の結果として偽を出力する(ステップS24;FALSE)。Ψ(C)+Γvm(C)+Γvd(C)が1を超えるプロセッサCが存在しない場合、スケジューラ122は、ステップS24の結果として真を出力する(ステップS24;TRUE)。なお、プロセッサCが実行する全ての仮想マシンに必要なリソースΓ(C)は、仮想マシンに最適なリソースの占有率の総和に等しいとは限らない。
ハイパーバイザ132と、仮想OS141および151と、仮想マシン170内の仮想OS171とがともにRMSに従いスケジューリングを実行する場合、スケジューラ122は、例えば非特許文献1に従い、Γ(C)を計算してもよい。
次に、スケジューラ122は、ステップS24の結果が真の場合、各処理に割り当てられたリソースをコントローラ121に返す(ステップS25)。一方、ステップS24の結果が偽の場合、スケジューラ122は、コントローラ121にエラーを返す(ステップS26)。
以上のようにして、図5におけるステップS16の処理によって、仮想マシン140、150および170と、ネットワーク処理部133と、仮想デバイス144、154および174とに対する最適なリソースが計算され、リソースが足りるか否かが判断される。
異なるノードのネットワーク処理部および仮想デバイスに必要なリソースは、ネットワーク処理部および仮想デバイスの構成方法と、それぞれのノードが備えるプロセッサのパフォーマンスにより異なる。そこで、実施形態のように、図6のステップ21に加えて、ステップS22およびS23の一方または両方を実行することで、例え構成が異なるノード間で仮想マシンを移動する場合であっても、仮想マシンの移動前に、移動先ノードにおいて必要となるリソースをより正確に見積ることが可能となる。これにより、ユーザは仮想マシンの移動が可能であるか否かを事前に知ることができ、その結果、移動先であるノード130におけるリソース不足の発生を未然に防ぐことができる。
また、実施形態では、管理サーバ120は、ステップS15〜S19の一連のステップと、ステップS11、S12、S13およびS14とを異なるタイミングで実行してもよい。例えば、管理サーバ120は、メッセージ2009の受信を契機に、ステップS11〜ステップS14のいずれかまたは全てを順不同で実行してもよい。
また、実施形態では、管理サーバ120は、ステップS11〜S14のいずれかまたは全てを実施しなくてもよい。例えば、システムパラメータおよびタスクの要件があらかじめ管理サーバ120の記憶部123に記憶されている場合、ステップS11〜S14を省略できる。その場合、管理サーバ120の処理を短縮できる。例えば、管理サーバ120のコントローラ121は、ある仮想マシンを移動するときまたは生成するときに、システムパラメータまたはタスクの要件を取得し、記憶部123に記憶してもよい。
また、実施形態では、管理サーバ120およびノード130は、ステップS11およびS13を統合してもよい。例えば、管理サーバ120があるメッセージをノード130へ送信し、ノード130が管理サーバ120へシステムパラメータおよびタスクの要件を含むメッセージを送信してもよい。同様に、管理サーバ120およびノード160は、ステップS12とステップS14を統合してもよい。
さらに、管理サーバ120は、ステップS16をステップS15よりも前に実行してもよい。例えば、管理サーバ120は、記憶部123に記憶されたシステムパラメータおよびタスクの要件の一部または全てを用いて、それぞれの仮想マシンを移動した場合に必要となるリソースをあらかじめ計算して記憶部123に記憶しておき、メッセージ2009を受信したときに記憶しておいたリソースをステップS16の実行結果の代わりとして用いてもよい。これにより、クライアント110に対する、メッセージ2009を受信してからメッセージ2016を送信するまでの時間を短縮することができる。
実施形態において、プロセッサ131および161はそれぞれ1つのコアを備え、ノード130および160はそれぞれ1以上のプロセッサを備える。ただし、本形態の実施にあたってはこれらに限定されず、プロセッサ131および161がそれぞれ複数のコアを備えてもよい。これにより、各プロセッサ131および161において、複数の処理を同時に実行することが可能となる。
プロセッサ131がそれぞれ複数のコアを備える場合、スケジューラ122は、プロセッサ131のリソースを計算するのではなく、コアごとにリソースの過不足を判断してもよい。
また、実施形態において、仮想デバイス144、154または174がネットワーク処理部133を経由せずに直接ネットワークインタフェース(図示せず)からフレームを取得するようにノード130が構成されている場合、スケジューラ122は、ステップS22におけるネットワーク処理部133に必要なリソースの計算を省略して‘0’としてもよい。
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100…情報処理システム、110…クライアント、115…ネットワーク、120…管理サーバ、121…コントローラ、122…スケジューラ、123…記憶部、124…通信部、130,160…ノード、131,161…プロセッサ、132,162…ハイパーバイザ、133,163…ネットワーク処理部、140,150,170…仮想マシン、141,151,171…OS、142,143,152,153,172,173…タスク、144,154,174…仮想デバイス、TSK…周期タスク、DL…デッドライン、e101,e102…実行時間、2001〜2013,2015,2016…メッセージ、2014…イメージ

Claims (8)

  1. 1以上の仮想マシンで構成される第1の集合に含まれる第2の0以上の仮想マシンに対するリソースを求め、前記リソースの周期に対する実行時間の割合を求め、プロセッサが第1のトラフィックを処理したときのスループットおよび前記プロセッサの第1の利用率と、前記第1の集合に含まれる第3の0以上の仮想マシンが送信または受信する第2のトラフィックの量とから、前記第3の0以上の仮想マシンの前記第2のトラフィックを前記プロセッサで処理するための第2のプロセッサ利用率を計算し、前記第2の0以上の仮想マシンの前記割合および前記第3の0以上の仮想マシンに対する前記第2のプロセッサ利用率の合計を求めるように構成されたスケジューラを備えることを特徴とする仮想OS制御装置。
  2. 前記スループットと前記プロセッサの利用率とを該プロセッサを備える第1の装置から受信し、前記第2のトラフィックの量を第2の装置から受信し、前記第2のプロセッサ利用率を含むメッセージを第3の装置へ送信するように構成されたコントローラをさらに備えることを特徴とする請求項1に記載の仮想OS制御装置。
  3. 前記プロセッサを備える第3の装置および前記第1の集合に属する少なくとも1つの第4の仮想マシンを備える第4の装置とネットワークを介して相互に接続された請求項1に記載の仮想OS制御装置であって、
    前記合計を求めるように構成されたスケジューラと、
    前記合計があらかじめ決められた値を超えない場合に、前記第4の装置から前記第3の装置へ前記第4の仮想マシンを移動するように前記第3および前記第4の装置へ指示するよう構成されたコントローラと、
    をさらに備えることを特徴とする仮想OS制御装置。
  4. 前記第2のプロセッサ利用率は、前記仮想マシンを実行する装置のネットワーク処理部における処理のプロセッサ利用率であることを特徴とする請求項1に記載の仮想OS制御装置。
  5. 前記第2のプロセッサ利用率は、前記仮想マシンの仮想デバイスにおける処理のプロセッサ利用率であることを特徴とする請求項1に記載の仮想OS制御装置。
  6. 請求項1に記載の仮想OS制御装置と、
    前記仮想OS制御装置とネットワークを介して相互に接続された第1〜第3の装置と、
    を備え、
    前記仮想OS制御装置は、前記スループットと前記プロセッサの利用率とを該プロセッサを備える前記第1の装置から受信し、前記第2のトラフィックの量を前記第2の装置から受信し、前記第2のプロセッサ利用率を含むメッセージを前記第3の装置へ送信するように構成されたコントローラをさらに備えることを特徴とするシステム。
  7. 1以上のタスクを実行する仮想マシンに対するリソースを求め、
    前記リソースの周期に対する割当て時間の割合を求め、
    プロセッサが第1のトラフィックを処理したときのスループットと、前記プロセッサの第1の利用率と、前記仮想マシンが送信または受信する第2のトラフィックの量とから、前記仮想マシンの前記第2のトラフィックを前記プロセッサで処理するための第2のプロセッサ利用率を計算し、
    1以上の仮想マシンの前記割合および前記第2のプロセッサ利用率の合計を求める
    ことを含むことを特徴とする仮想OS制御方法。
  8. プロセッシングリソースをスケジューリングするコンピュータを機能させるためのプログラムであって、
    1以上のタスクを実行する仮想マシンに対するリソースを求める処理と、
    前記リソースの周期に対する割当て時間の割合を求める処理と、
    プロセッサが第1のトラフィックを処理したときのスループットと、前記プロセッサの第1の利用率と、前記仮想マシンが送信または受信する第2のトラフィックの量とから、前記仮想マシンの前記第2のトラフィックを前記プロセッサで処理するための第2のプロセッサ利用率を計算する処理と、
    1以上の仮想マシンの前記割合および前記第2のプロセッサ利用率の合計を求める処理と、
    を前記コンピュータに実行させるためのプログラム。
JP2012180121A 2012-08-15 2012-08-15 仮想os制御装置、システム、方法およびプログラム Active JP5646560B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012180121A JP5646560B2 (ja) 2012-08-15 2012-08-15 仮想os制御装置、システム、方法およびプログラム
US13/966,719 US20140053152A1 (en) 2012-08-15 2013-08-14 Apparatus, system, method and computer-readable medium for controlling virtual os

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012180121A JP5646560B2 (ja) 2012-08-15 2012-08-15 仮想os制御装置、システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2014038459A true JP2014038459A (ja) 2014-02-27
JP5646560B2 JP5646560B2 (ja) 2014-12-24

Family

ID=50101026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012180121A Active JP5646560B2 (ja) 2012-08-15 2012-08-15 仮想os制御装置、システム、方法およびプログラム

Country Status (2)

Country Link
US (1) US20140053152A1 (ja)
JP (1) JP5646560B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088163A1 (ja) * 2014-12-01 2016-06-09 株式会社日立製作所 計算機システム及びリソース管理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004530196A (ja) * 2001-03-08 2004-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 区分処理環境におけるリソース平衡化
JP2005062956A (ja) * 2003-08-14 2005-03-10 Toshiba Corp スケジューリング方法および情報処理システム
JP2008217332A (ja) * 2007-03-02 2008-09-18 Nec Corp 仮想マシン管理システム、その方法及びそのプログラム
JP2008276320A (ja) * 2007-04-25 2008-11-13 Nec Corp 仮想システム制御方法およびコンピュータシステム
JP2009123174A (ja) * 2007-11-19 2009-06-04 Mitsubishi Electric Corp 仮想マシンサーバサイジング装置及び仮想マシンサーバサイジング方法及び仮想マシンサーバサイジングプログラム
WO2012120664A1 (ja) * 2011-03-09 2012-09-13 株式会社日立製作所 仮想計算機のマイグレーション評価方法及び仮想計算機システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356817B1 (en) * 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US8175863B1 (en) * 2008-02-13 2012-05-08 Quest Software, Inc. Systems and methods for analyzing performance of virtual environments
TW201250464A (en) * 2011-06-01 2012-12-16 Hon Hai Prec Ind Co Ltd System and method for monitoring virtual machines

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004530196A (ja) * 2001-03-08 2004-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 区分処理環境におけるリソース平衡化
JP2005062956A (ja) * 2003-08-14 2005-03-10 Toshiba Corp スケジューリング方法および情報処理システム
JP2008217332A (ja) * 2007-03-02 2008-09-18 Nec Corp 仮想マシン管理システム、その方法及びそのプログラム
JP2008276320A (ja) * 2007-04-25 2008-11-13 Nec Corp 仮想システム制御方法およびコンピュータシステム
JP2009123174A (ja) * 2007-11-19 2009-06-04 Mitsubishi Electric Corp 仮想マシンサーバサイジング装置及び仮想マシンサーバサイジング方法及び仮想マシンサーバサイジングプログラム
WO2012120664A1 (ja) * 2011-03-09 2012-09-13 株式会社日立製作所 仮想計算機のマイグレーション評価方法及び仮想計算機システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088163A1 (ja) * 2014-12-01 2016-06-09 株式会社日立製作所 計算機システム及びリソース管理方法

Also Published As

Publication number Publication date
JP5646560B2 (ja) 2014-12-24
US20140053152A1 (en) 2014-02-20

Similar Documents

Publication Publication Date Title
JP6005795B2 (ja) 仮想マシンの信頼性のある決定論的ライブ移行
US20160378570A1 (en) Techniques for Offloading Computational Tasks between Nodes
US9378032B2 (en) Information processing method, information processing apparatus, recording medium, and system
Singh et al. Scheduling real-time security aware tasks in fog networks
EP2701074B1 (en) Method, device, and system for performing scheduling in multi-processor core system
JP5584765B2 (ja) データセンターの自動化のための方法及び装置
JP5687666B2 (ja) スケジューリング装置、システム、方法およびプログラム
CN114127688A (zh) 用于基于网络的媒体处理的方法、装置和计算机可读介质
US10977070B2 (en) Control system for microkernel architecture of industrial server and industrial server comprising the same
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
KR20160087706A (ko) 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
EP3113429B1 (en) Network resource processing device, method and system
EP3210112A1 (en) Coordinated scheduling between real-time processes
KR20150126880A (ko) 스케줄링
WO2011142227A1 (ja) コンピュータ・システム、方法及びプログラム
Yun et al. An integrated approach to workflow mapping and task scheduling for delay minimization in distributed environments
WO2020166423A1 (ja) リソース管理装置およびリソース管理方法
Ghouma et al. Context aware resource allocation and scheduling for mobile cloud
JP5646560B2 (ja) 仮想os制御装置、システム、方法およびプログラム
WO2019176606A1 (ja) Vm性能保証システムおよびvm性能保証方法
JP5876425B2 (ja) 仮想マシンのライブマイグレーションスケジューリング方法及び仮想マシンシステム
JP6973292B2 (ja) Vm優先度制御システムおよびvm優先度制御方法
US10877800B2 (en) Method, apparatus and computer-readable medium for application scheduling
Liu et al. Improving resource utilization of a cloud-based testing platform for android applications
JP2014035661A (ja) 仮想マシンシステム及びその高速ライブマイグレーション方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140908

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141105

R151 Written notification of patent or utility model registration

Ref document number: 5646560

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151