JP5532793B2 - プログラム及び通信制御方法 - Google Patents

プログラム及び通信制御方法 Download PDF

Info

Publication number
JP5532793B2
JP5532793B2 JP2009222527A JP2009222527A JP5532793B2 JP 5532793 B2 JP5532793 B2 JP 5532793B2 JP 2009222527 A JP2009222527 A JP 2009222527A JP 2009222527 A JP2009222527 A JP 2009222527A JP 5532793 B2 JP5532793 B2 JP 5532793B2
Authority
JP
Japan
Prior art keywords
control
hypervisor
virtual machine
access control
interrupt
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
JP2009222527A
Other languages
English (en)
Other versions
JP2011070526A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009222527A priority Critical patent/JP5532793B2/ja
Publication of JP2011070526A publication Critical patent/JP2011070526A/ja
Application granted granted Critical
Publication of JP5532793B2 publication Critical patent/JP5532793B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、プログラム及び通信制御方法に係り、特に仮想化環境において実行された複数の仮想計算機を制御するプログラム及び通信制御方法に関する。
近年、CPUの高速化や記憶媒体の高容量化,ネットワークの高速化等のコンピュータ技術の進化により、ハードウェアを抽象化する仮想化技術が、ハードウェア利用率の向上やOS間のセキュリティの向上、複製やバックアップの容易性による効率的な管理などを目的として広く利用されている。
仮想化技術はVMware ESXi(登録商標)、Xen(登録商標)、Hyper-V(登録商標)などのハイパーバイザ(Hypervisor)と呼ばれる小さなプログラムにより実現される(例えば特許文献1参照)。
ハイパーバイザは一般的なOSとハードウェアとの間に入り、ハードウェアの機能を仮想化することにより複数のOSを仮想的に一つのハードウェア上で動作させることを特徴とする。以下の説明では、ハイパーバイザ上で動作するOS等のプログラムをVM(仮想機械:Virtual Machine)と呼ぶ。
ハイパーバイザ上で動作するVMが増加すると、ハイパーバイザ上には互いに信頼関係のないVM群が増加していく。したがって、ハイパーバイザ上のVM間の通信にはアクセス制御が必要となる。VM間の通信には、一般的に、VM間割り込みと共有メモリとの2種類がある。
VM間割り込みは、一方のVMから他方のVMにイベントの発生を通知する為のものである。VM間割り込みは、宛先とメッセージとをハイパーコール(Hypercall)によりハイパーバイザに通知する。ハイパーコールはハイパーバイザの機能を利用するためのVM向けのインターフェースの総称である。ハイパーバイザは宛先のVMにメッセージを送信する。
共有メモリは、VM同士で特定のメモリ領域を共有することでデータの共有を実現するものである。共有メモリを利用する場合、一般的な方法では一方のVMが特定のメモリ領域をハイパーコールにより共有可能に設定し、他方のVMが同じくハイパーコールにより共有可能なメモリ領域を共有状態に設定する。
通常、VM間の通信はVM間割り込みによってイベントを発生させ、そのイベントが正しく処理された後に、共有メモリによりデータをやり取りする方法が一般的である。このため、VM間の通信のアクセス制御はVM間割り込みに対して行われることが多い。例えばVM間の通信のアクセス制御は、特定のVMからのVM間割り込みを拒絶したり、特定の種類のメッセージのみを許可したりといった制御が考えられる。
一般的なハイパーバイザではVM自身が自らに割り込みを送信可能な他のVMのIDを設定できるようになっている。しかし、この設定はVMのIDに基づき、送信可能・不可能を制御するだけであり、特定の種類のメッセージのみを許可するといった制御を行うことができない。特定の種類のメッセージのみを許可するといった制御を行う場合は別の仕組みが必要であった。
以下では、VM自身が自らに割り込みを送信可能な他のVMのIDを設定することによるVM間の通信のアクセス制御を単純アクセス制御と呼び、特定の種類のメッセージのみを許可するといった制御まで考慮するアクセス制御を高度アクセス制御と呼ぶ。例えば高度アクセス制御を行う場所としてはハイパーバイザが知られている。
ハイパーバイザには高度アクセス制御を支援する機能を備えているものがあった。例えばハイパーバイザの一例のXen(登録商標)には、XSM(Xen Security Modules)と呼ばれる仕組みが搭載されており、予め定義されたフック関数に独自の高度アクセス制御のモジュールを追加できるようになっている。以下では、ハイパーバイザで行う高度アクセス制御をハイパーバイザ高度アクセス制御と呼ぶ。
特開2009−26117号公報
しかしながら、高度アクセス制御を支援する機能は、全てのハイパーバイザに用意されている訳ではない。したがって、高度アクセス制御を支援する機能が用意されていないハイパーバイザはハイパーバイザ高度アクセス制御を行うことができなかった。
特に一般的なPC向けのハイパーバイザでなく、組み込み向けのハイパーバイザの場合は計算能力やメモリ容量の制限から必要最低限の機能で動作することが求められる。このため、ハイパーバイザ高度アクセス制御のような機能は、省略されることが多いと考えられる。
本発明の一実施形態は、上記の点に鑑みなされたもので、仮想化環境において実行された複数の仮想計算機間の通信を容易且つ柔軟に制御できるプログラム及び通信制御方法を提供することを目的とする。
上記課題を解決する為、本発明の一実施形態は、コンピュータに、ハイパーバイザ上で動作する制御仮想計算機を前記ハイパーバイザ上に起動する制御仮想計算機起動ステップと、前記ハイパーバイザ上で動作する仮想計算機を前記ハイパーバイザ上に起動する仮想計算機起動ステップと、前記ハイパーバイザが、前記仮想計算機又は前記制御仮想計算機からの通信要求を監視して、単純アクセス設定に基づき、前記仮想計算機と前記制御仮想計算機との間の通信のみを許可するようにアクセス制御する単純アクセス制御ステップと、前記制御仮想計算機が、前記ハイパーバイザから、転送先である仮想計算機を指定した前記仮想計算機からの通信要求を受信する受信ステップと、前記制御仮想計算機が、前記受信した通信要求に含まれるメッセージ、メッセージ内容とアクセスの可否を対応付けた高度アクセス制御設定に基づいてアクセスの可否を判定する判定ステップと、前記制御仮想計算機が、前記判定ステップにより許可された通信要求を、前記転送先である仮想計算機に対して送信するようにアクセス制御する高度アクセス制御ステップと、を実行させるためのプログラムである。
なお、本発明の一実施形態の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
上述の如く、本発明の一実施形態によれば、仮想化環境において実行された複数の仮想計算機間の通信を容易且つ柔軟に制御できる。
本実施例におけるソフトウェアとハードウェアとの関係を表した一例のブロック図である。 本実施例におけるハードウェアの一例の構成図である。 個別高度アクセス制御を説明する為の説明図である。 ハイパーバイザ高度アクセス制御を説明する為の説明図である。 制御VMで行う高度アクセス制御を説明する為の説明図である。 準備処理の手順を表した一例のフローチャートである。 単純アクセス制御設定のハイパーコールの例を表した説明図である。 単純アクセス制御設定テーブルの一例の構成図である。 ハイパーバイザへの共有メモリ設定依頼の例を表した説明図である。 共有メモリ設定テーブルの一例の構成図である。 ハイパーバイザへの共有メモリ使用依頼の例を表した説明図である。 アクセス処理の手順を表した一例のフローチャートである。 ハイパーバイザへの割り込み送信依頼の例を表した説明図である。 割り込みに含めるメッセージの例を表した説明図である。 メッセージ本体に含まれる情報の例を表した説明図である。 高度アクセス制御設定の例を表した説明図である。
次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。
図1は本実施例におけるソフトウェアとハードウェアとの関係を表した一例のブロック図である。図1のブロック図は、ハードウェア10と、ハードウェア10上で動作するハイパーバイザ20と、ハイパーバイザ20上で動作する制御VM30と、ハイパーバイザ20上で動作する複数のVM(一般VM)1〜nとを表している。
複数のVM1〜nはハイパーバイザ20による単純アクセス制御及び制御VM30による高度アクセス制御の対象となるVM(制御対象VM群)である。制御VM30は複数のVM1〜nに対して高度アクセス制御を行う。なお、制御VM30の詳細は後述する。
図2は本実施例におけるハードウェアの一例の構成図である。図2はハードウェア10が一般的なPC等のコンピュータシステムである例を表している。
図2のコンピュータシステムは、バスBで相互に接続されている入力装置11,出力装置12,ドライブ装置13,補助記憶装置14,主記憶装置15,演算処理装置16及びインターフェース装置17を有する。
入力装置11はキーボードやマウス等である。入力装置11は、各種信号を入力するために用いられる。出力装置12はディスプレイ装置等である。出力装置12は各種ウインドウやデータ等を表示するために用いられる。インターフェース装置17はモデム,LANカード等である。インターフェース装置17はネットワークに接続する為に用いられるものである。
本実施例のハイパーバイザ20は、図2のコンピュータシステムを制御する各種プログラムの少なくとも一部である。ハイパーバイザ20は例えば記録媒体18の配布やネットワークからのダウンロードなどによって提供される。ハイパーバイザ20を記録した記録媒体18は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
また、ハイパーバイザ20を記録した記録媒体18がドライブ装置13にセットされると、ハイパーバイザ20は記録媒体18からドライブ装置13を介して補助記憶装置14にインストールされる。ネットワークからダウンロードされたハイパーバイザ20は、インターフェース装置17を介して補助記憶装置14にインストールされる。
補助記憶装置14は、インストールされたハイパーバイザ20を格納すると共に、必要なファイル,データ等を格納する。主記憶装置15は、ハイパーバイザ20の起動時に補助記憶装置14からハイパーバイザ20を読み出して格納する。そして、演算処理装置16は主記憶装置15に格納されたハイパーバイザ20に従って、後述するような各種処理を実現している。
高度アクセス制御を行う場所は本実施例のように制御VM30で行う他、ハイパーバイザ20、各VM1〜nが考えられる。そこで、ここでは本実施例の理解を容易とする為に各VM1〜nで行う高度アクセス制御及びハイパーバイザ20で行うハイパーバイザ高度アクセス制御の課題について説明する。以下では、各VM1〜nで行う高度アクセス制御を個別高度アクセス制御と呼ぶ。
図3は個別高度アクセス制御を説明する為の説明図である。なお、図3ではハイパーバイザ20上で動作するVMが3つの例を表している。図3のVM1〜3は、割り込み送信部41,本体処理部42,高度アクセス制御部43,割り込み受信部44,共有メモリ設定テーブル45,高度アクセス制御設定テーブル46を有する。ハイパーバイザ20は割り込み受信部21,単純アクセス制御部22,割り込み送信部23,単純アクセス制御設定テーブル24を有する。また、図3ではVM1及びVM2の共有メモリ47と、VM2及びVM3の共有メモリ48とを図示している。
各VM1〜3は、それぞれが高度アクセス制御部43と高度アクセス制御設定テーブル46とを有している。各VM1〜3は、高度アクセス制御部43と高度アクセス制御設定テーブル46とを利用することで、自らに送信されたVM間割り込みを検査し、予め高度アクセス制御設定テーブル46に設定された高度アクセス制御設定に基づき、必要な個別高度アクセス制御を行う。
しかし、個別高度アクセス制御は、ハイパーバイザ20上で動作するVMの数が増大してくると、設定すべき高度アクセス制御設定の数が増大し、管理が煩雑になるという問題があった。管理の煩雑さは、高度アクセス制御設定のミスを誘発する原因となり、安全性が損なわれる恐れがあった。
図4はハイパーバイザ高度アクセス制御を説明する為の説明図である。なお、図4ではハイパーバイザ20上で動作するVMが3つの例を表している。図4のVM1〜3は割り込み送信部41,本体処理部42,割り込み受信部44,共有メモリ設定テーブル45を有する。ハイパーバイザ20は割り込み受信部21,単純アクセス制御部22,割り込み送信部23,単純アクセス制御設定テーブル24,フック部25を有する。高度アクセス制御モジュール50は、高度アクセス制御部51,高度アクセス制御設定テーブル52を有する。また、図4ではVM1及びVM2の共有メモリ47と、VM2及びVM3の共有メモリ48とを図示している。
ハイパーバイザ20はフック部25に定義されたフック関数を利用して、高度アクセス制御モジュール50を追加できる。ハイパーバイザ高度アクセス制御は個別高度アクセス制御と異なり、ハイパーバイザ20側の高度アクセス制御モジュール50で高度アクセス制御を一元管理できるので、高度アクセス制御を管理しやすい。しかし、ハイパーバイザ高度アクセス制御はハイパーバイザ20側に高度アクセス制御を実現する機能が用意されていなければならなかった。例えば組み込み向けのハイパーバイザ等は計算能力やメモリ容量の制限から、高度アクセス制御を実現する機能が用意されていない場合も多い。
図5は制御VMで行う高度アクセス制御を説明する為の説明図である。なお、図5ではハイパーバイザ20上で動作するVMが3つの例を表している。図5のVM1〜3は、割り込み送信部41,本体処理部42,割り込み受信部44,共有メモリ設定テーブル45を有する。ハイパーバイザ20は、割り込み受信部21,単純アクセス制御部22,割り込み送信部23,単純アクセス制御設定テーブル24を有する。制御VM30は、割り込み送信部31,高度アクセス制御部32,割り込み受信部33,高度アクセス制御設定テーブル34を有する。また、図5ではVM1及びVM2の共有メモリ47と、VM2及びVM3の共有メモリ48とを図示している。
図5では、各VM1〜3がアクセスできる唯一のVMとして、制御VM30を用意している。制御VM30以外の各VM1〜3間の通信は全て制御VM30に送られ、制御VM30から目的のVM1〜3に受け渡される。制御VM30は各VM1〜3間の通信を一括して高度アクセス制御できるので、ハイパーバイザ高度アクセス制御が無くても、制御VM30による一元的な高度アクセス制御を行うことができ、高度アクセス制御設定のミスを起こりにくくできる。
また、高度アクセス制御を行う各VM1〜3間の通信はVM間割り込みとする。各VM1〜3間のアクセス制御はVM間割り込みに対して行えば充分であり、VM1及びVM2の共有メモリ47、VM2及びVM3の共有メモリ48に対して行う必要はない。
一般に、VM1及びVM2の共有メモリ47、VM2及びVM3の共有メモリ48の高度アクセス制御を行う為には、比較的大きなオーバーヘッドが生じる。しかし、VM間割り込みの高度アクセス制御を行う場合、割り込み転送のためのVM間割り込みの回数が2倍に増えるものの、VM間割り込み自体のオーバーヘッドは充分に小さいため、比較的大きなオーバーヘッドが生じにくい。よって、制御VM30で行う高度アクセス制御は少ないオーバーヘッドで各VM1〜3間のアクセス制御を効率的に行うことができる。
また、各VM1〜3間のVM間割り込みは、直接の送信先である制御VM30の識別子に加えて、実際の通信先である各VM1〜3の識別子を持つ。したがって、制御VM30は実際の通信先である各VM1〜3にVM間割り込みを転送できる。
さらに、制御VM30は予め設定されている高度アクセス制御設定に基づき、特定のVM(例えばVM1)から特定のVM(例えばVM2)への通信を禁止する為、ユーザの望む高度アクセス制御を行うことができる。
以下、本実施例のハイパーバイザ20による単純アクセス制御及び制御VM30による高度アクセス制御の処理手順について説明していく。ここでは、VM間割り込み及び共有メモリによりVM間の通信を行っているVM1とVM2とがあり、VM1からVM2に割り込みを送信する場合の制御VM30による高度アクセス制御の例について説明する。
図6は準備処理の手順を表した一例のフローチャートである。ハイパーバイザ20は事前に起動しているものとする。ステップS100に進み、ハイパーバイザ20は所定の設定ファイル(図示せず)に従い、制御VM30を起動する。制御VM30の起動に必要なファイルはストレージなどの補助記憶装置14に保存されている。ハイパーバイザ20は制御VM30の起動に必要なファイルをストレージなどの補助記憶装置14からロードして起動する。
一般的なハイパーバイザ20は起動したVMに一意のVM_IDを付与する。特に設定しない限り、起動されたVMは割り込みを一切受け付けない状態であり、どのVMともメモリを共有していない。ここでは制御VM30のVM_IDを「0」とする。
ステップS101に進み、ハイパーバイザ20は所定の設定ファイルに従い、VM1を起動する。ハイパーバイザ20はVM1の起動に必要なファイルを補助記憶装置14からロードして起動する。起動されたVM1は割り込みを一切受け付けない状態であり、どのVMともメモリを共有していない。ここではVM1のVM_IDを「1」とする。
ステップS102に進み、ハイパーバイザ20は所定の設定ファイルに従い、VM2を起動する。ハイパーバイザ20はVM2の起動に必要なファイルを補助記憶装置14からロードして起動する。起動されたVM2は割り込みを一切受け付けない状態であり、どのVMともメモリを共有していない。ここではVM2のVM_IDを「2」とする。
ステップS103に進み、VM1は制御VM30(VM_IDが0のVM)からの割り込みを受け付けるように、単純アクセス制御設定をハイパーバイザ20に要求する。一般的なハイパーバイザ20では、各VM自身が、自分への割り込みを許可する他のVMを設定できる。
通常、各VMは自分への割り込みを許可する他のVMのVM_IDをハイパーコールによりハイパーバイザ20へ通知することで、自分への割り込みを許可する他のVMを指定できる。図7は単純アクセス制御設定のハイパーコールの例を表した説明図である。単純アクセス制御設定のハイパーコールは、対象のVMのVM_IDと、割り込みを受けるか否かの情報とが指定される。
ハイパーバイザ20は、ハイパーコールを行った呼び出し元のVM1のVM_IDである「1」と、ハイパーコールで対象のVMのVM_IDとして指定された「0」と、割り込みを受けるか否かの情報として指定された「TRUE(割り込みを受ける)」とに基づいて、図8のような単純アクセス制御設定テーブル24に単純アクセス制御を設定する。
図8は単純アクセス制御設定テーブルの一例の構成図である。図8の単純アクセス制御設定テーブル24は、送信側VM_IDと受信側VM_IDとの組み合わせごとに、割り込みが可能か不可かを設定するものである。ハイパーバイザ20はハイパーコールで指定された対象のVMのVM_IDを送信側VM_ID、ハイパーコールを行った呼び出し元のVMのVM_IDを受信側VM_ID、ハイパーコールで指定された割り込みを受けるか否かの情報を割り込みが可能か不可かの情報として、単純アクセス制御を設定する。
本実施例において、制御VM30以外の全てのVMの割り込み設定は、制御VM30からの割り込みを許可し、制御VM30以外からの割り込みを許可しないように設定することを前提とする。これにより、各VM間の割り込みは必ず制御VM30を経由する。
ステップS104に進み、VM2はVM1と同様、制御VM30(VM_IDが0のVM)からの割り込みを受け付けるように、単純アクセス制御設定をハイパーバイザ20に要求する。ハイパーバイザ20は、VM2が制御VM30からの割り込みを許可し、制御VM30以外からの割り込みを許可しないように、単純アクセス制御を単純アクセス制御設定テーブル24に設定する。
ステップS105に進み、制御VM30はVM1及びVM2からの割り込みを受け付けるように、単純アクセス制御設定をハイパーバイザ20に要求する。ハイパーバイザ20は制御VM30がVM1及びVM2からの割り込みを許可し、VM1及びVM2以外からの割り込みを許可しないように、単純アクセス制御を単純アクセス制御設定テーブル24に設定する。
ステップS106に進み、VM1はハイパーバイザ20に、VM1の特定のメモリ領域をVM2と共有できるように、特定のメモリ領域を共有メモリとして設定するように要求する。
一般的なハイパーバイザ20では、VMのメモリ領域に、VM内で一意な番号(メモリ領域の番号)を付与することになっており、共有メモリを指定する際、メモリ領域の番号を指定する。メモリ領域の番号は他のVMが共有メモリを実際に使用する際、ハイパーバイザ20にメモリ領域を指定する番号として利用される。
ここでは、共有メモリとして設定するメモリ領域の番号を予めVM1とVM2とで定義しておくものとし、互いの共有メモリ設定情報として共有メモリ設定テーブル45に保持しているものとする。
図9はハイパーバイザへの共有メモリ設定依頼の例を表した説明図である。共有メモリ設定依頼は、対象のメモリ領域の番号と、共有するかどうかの情報とが指定される。図10は共有メモリ設定テーブルの一例の構成図である。共有メモリ設定テーブル45は各VMが保持する共有メモリ設定情報を表す。図10の共有メモリ設定情報は、VM1の共有メモリとして設定されたメモリ領域の番号のリストを表している。
ステップS107に進み、VM2は共有メモリ設定テーブル45に予め設定しておいたVM1の共有メモリとして設定されたメモリ領域の番号に基づき、ハイパーバイザ20にVM1の共有メモリとして設定されたメモリ領域を使用できるように要求する。図11はハイパーバイザへの共有メモリ使用依頼の例を表した説明図である。共有メモリ使用依頼は対象のVMのVM_IDと、対象のメモリ領域の番号と、使用するかどうかの情報とが指定されている。
図6に示した準備処理が終了した後、VM1とVM2とは共有メモリを経由してデータをやり取りすることができるようになる。共有メモリへのアクセスはVM1,2の本体処理部42が行うものとする。
図12はアクセス処理の手順を表した一例のフローチャートである。ステップS108に進み、VM1はVM2に割り込みを送信するため、ハイパーバイザ20に制御VM30への割り込みを依頼する。
VM1の実際の割り込みの宛先はVM2であるが、制御VM30による高度アクセス制御を実現するため、VM1は割り込みの宛先を全て制御VM30としている。VM1はハイパーバイザ20に通知する通常の割り込みの宛先(制御VM30)の他、制御VM30に通知する実際の割り込みの宛先を指定する必要がある。
一般的なハイパーバイザ20では、割り込みの際に簡単なメッセージを追加することができる。そこで、VM1は割り込みの際に追加できる簡単なメッセージを利用して、実際の割り込みの宛先であるVM2のVM_IDを指定する。図13はハイパーバイザへの割り込み送信依頼の例を表した説明図である。図13の割り込み送信依頼は、制御VM30のVM_IDと、割り込みに含めるメッセージとが指定されている。
図14は割り込みに含めるメッセージの例を表した説明図である。図14の割り込みに含めるメッセージは、実際の割り込みの宛先であるVM2のVM_IDと、メッセージ本体とが指定されている。図14のメッセージ本体には、様々な情報が含まれる可能性があるが、図15のような情報が含まれるものとする。図15はメッセージ本体に含まれる情報の例を表した説明図である。図15のメッセージ本体に含まれる情報は、コマンド,引数1,引数2を指定するものである。
具体的に、図15のメッセージ本体に含まれる情報は、ファイル削除を依頼するコマンドと、対象ファイルのディレクトリ名と、対象ファイル名とを指定することで、特定のパスのファイルの削除を依頼するものである。なお、図14及び図15では、割り込みに含めるメッセージ及びメッセージ本体に含まれる情報を表形式で表しているが、視覚的に理解し易く表したものである。実際の割り込みに含めるメッセージ及びメッセージ本体に含まれる情報は、例えばスペースで連結した文字列で表される。
ステップS109に進み、ハイパーバイザ20はVM1から制御VM30への割り込み送信依頼を受信し、単純アクセス制御設定テーブル24に保持されている単純アクセス制御設定に基づいて、VM1から制御VM30への割り込みが許可されているかをチェックする。VM1から制御VM30への割り込みが許可されていれば、ハイパーバイザ20はステップS110に進み、VM1からの割り込みを制御VM30に送信する。
一方、VM1から制御VM30への割り込みが許可されていなければ、不正な割り込み送信依頼であるため、ハイパーバイザ20はステップS111に進み、VM1にエラーを返して異常終了する。
ステップS110に続いてステップS112に進み、制御VM30はVM1からの割り込みをハイパーバイザ20から受信する。ステップS113に進み、制御VM30は高度アクセス制御設定テーブル34に保持されている高度アクセス制御設定に基づいて、VM1からVM2への割り込みが許可されているかをチェックする。
制御VM30は高度アクセス制御設定を予め高度アクセス制御設定テーブル34に保持しているものとする。図16は高度アクセス制御設定の例を表した説明図である。図16の高度アクセス制御設定は、宛先VM,コマンド,引数1,引数2を指定する。制御VM30は、図15に示したメッセージ本体に含まれる情報が、図16の高度アクセス制御設定に一致するとき、VM1からVM2への割り込みが許可されていると判断する。図16の高度アクセス制御設定は、VM2への割り込みが、引数1で指定された特定のディレクトリの配下のファイルについてファイルの削除の依頼であるときに、VM1からVM2への割り込みを許可するものである。つまり、制御VM30は図15に示すメッセージ本体を参照し、高度アクセス制御設定に基づき、高度アクセス制御を行う。
具体的に、制御VM30は、VM1から送信された割り込みに含まれる図14のようなメッセージを読み込み、メッセージに指定されている実際の割り込みの宛先であるVM2のVM_IDを取り出す。次に、制御VM30はメッセージに指定されているメッセージ本体を取り出す。
そして、制御VM30は取り出した図15のメッセージ本体を参照し、図16の高度アクセス制御設定に基づき、VM1からVM2への割り込みが許可されているかをチェックする。図15及び図16は、VM1からVM2への割り込みが許可されている例を表している。ここでは比較的簡単な高度アクセス制御を制御VM30が行う例を示したが、より複雑な高度アクセス制御を制御VM30が行うことも可能である。
VM1からVM2への割り込みが許可されていれば、制御VM30はステップS114に進み、図14のメッセージ本体を読み込み、読み込んだメッセージ本体を割り込みに含めるメッセージとし、ハイパーバイザ20に実際の割り込みの宛先であるVM2への割り込みを依頼する。
一方、VM1からVM2への割り込みが許可されていなければ、不正な割り込み送信依頼であるため、制御VM30はステップS115に進み、VM1にエラーを返して異常終了する。
ステップS114に続いてステップS116に進み、ハイパーバイザ20は、制御VM30からVM2への割り込み送信依頼を受信し、単純アクセス制御設定テーブル24に保持されている単純アクセス制御設定に基づいて、制御VM30からVM2への割り込みが許可されているかをチェックする。制御VM30からVM2への割り込みが許可されていれば、ハイパーバイザ20はステップS117に進み、制御VM30からの割り込みをVM2に送信する。
一方、制御VM30からVM2への割り込みが許可されていなければ、不正な割り込み送信依頼であるため、ハイパーバイザ20はステップS118に進み、VM1にエラーを返して異常終了する。
ステップS117に続いてステップS119に進み、VM2は制御VM30からの割り込みをハイパーバイザ20から受信し、必要な処理を実施する。必要な処理はVM2の本体処理部42で行われるものとする。本体処理部42は割り込みに含まれるメッセージを取り出し、メッセージの内容に従って処理を行う。
図15のメッセージ本体の場合、メッセージの内容は特定のパスのファイルの削除を依頼するものとなる。したがって、VM2の本体処理部42は特定のパスのファイルの削除を行う。この際、メッセージの内容によっては、VM1と共有している共有メモリ47を経由してデータのやり取りを行う場合も考えられる。VM2は制御VM30からの割り込みをハイパーバイザ20から受信し、必要な処理を実施したあと、正常終了する。
以上、本実施例によれば、ハイパーバイザ20が高度アクセス制御の機能を持たない場合でも、制御VM30を各VMの間に挿入することにより、個別高度アクセス制御に比べて柔軟な高度アクセス制御を行うことができる。
特に、組み込み分野で使用されるようなハイパーバイザ20は計算能力やメモリ容量の制限のため、最低限の機能だけが実施され、高度アクセス制御のような機能が実装されないことが考えられる。このため、組み込み分野で使用されるようなハイパーバイザ20は本実施例により得られる効果が大きい。
また、本実施例はVM間割り込みを制御の対象とするものであり、VM間の共有メモリを制御の対象とする必要がない。一般的に、VM間通信ではVM間割り込みを制御すれば必要な高度アクセス制御を実現できる。VM間の共有メモリを制御の対象とすると、VM間通信では場合によってメモリのコピーなどが発生し、大きなオーバーヘッドとなる恐れがある。
一方、VM間割り込みの制御は、割り込みを転送するために割り込みの回数が2倍になるが、VM間割り込み自体のオーバーヘッドが充分に小さいため、大きなオーバーヘッドにならない。本実施例では、VM間割り込みを制御の対象とし、VM間の共有メモリを制御の対象としないことにより、オーバーヘヘッドを少なくし、かつ、必要な高度アクセス制御を行うことができる。
以上のように、本実施例では仮想化環境において、VMの数が増大した場合に複雑になるVM間のアクセス制御を効率化する。本実施例では複数のVMでなく一つの制御VM30で高度アクセス制御を行う為、高度アクセス制御を柔軟に行うことができる。本実施例では、ハイパーバイザ20でなく制御VM30で高度アクセス制御を行う為、ハイパーバイザ20が高度アクセス制御の機能を持たない場合であっても高度アクセス制御を容易に行うことができる。本実施例によれば、VM間の通信を容易且つ柔軟に制御できる。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、特許請求の範囲に記載した制御仮想計算機が制御VM30に対応し、仮想計算機がVM1〜nに対応する。
1〜n VM(一般VM)
10 ハードウェア
11 入力装置
12 出力装置
13 ドライブ装置
14 補助記憶装置
15 主記憶装置
16 演算処理装置
17 インターフェース装置
18 記録媒体
20 ハイパーバイザ
21 割り込み受信部
22 単純アクセス制御部
23 割り込み送信部
24 単純アクセス制御設定テーブル
25 フック部
30 制御VM
31 割り込み送信部
32 高度アクセス制御部
33 割り込み受信部
34 高度アクセス制御設定テーブル
41 割り込み送信部
42 本体処理部
43 高度アクセス制御部
44 割り込み受信部
45 共有メモリ設定テーブル
46 高度アクセス制御設定テーブル
47,48 共有メモリ
50 高度アクセス制御モジュール
51 高度アクセス制御部
52 高度アクセス制御設定テーブル

Claims (2)

  1. コンピュータに、
    ハイパーバイザ上で動作する制御仮想計算機を前記ハイパーバイザ上に起動する制御仮想計算機起動ステップと、
    前記ハイパーバイザ上で動作する仮想計算機を前記ハイパーバイザ上に起動する仮想計算機起動ステップと、
    前記ハイパーバイザが、前記仮想計算機又は前記制御仮想計算機からの通信要求を監視して、単純アクセス設定に基づき、前記仮想計算機と前記制御仮想計算機との間の通信のみを許可するようにアクセス制御する単純アクセス制御ステップと、
    前記制御仮想計算機が、前記ハイパーバイザから、転送先である仮想計算機を指定した前記仮想計算機からの通信要求を受信する受信ステップと、
    前記制御仮想計算機が、前記受信した通信要求に含まれるメッセージ、メッセージ内容とアクセスの可否を対応付けた高度アクセス制御設定に基づいてアクセスの可否を判定する判定ステップと、
    前記制御仮想計算機が、前記判定ステップにより許可された通信要求を、前記転送先である仮想計算機に対して送信するようにアクセス制御する高度アクセス制御ステップと、
    を実行させるためのプログラム。
  2. コンピュータによって実行される通信制御方法であって、
    前記コンピュータが、
    ハイパーバイザ上で動作する制御仮想計算機を前記ハイパーバイザ上に起動する制御仮想計算機起動ステップと、
    前記ハイパーバイザ上で動作する仮想計算機を前記ハイパーバイザ上に起動する仮想計算機起動ステップと、
    前記ハイパーバイザが、前記仮想計算機又は前記制御仮想計算機からの通信要求を監視して、単純アクセス設定に基づき、前記仮想計算機と前記制御仮想計算機との間の通信のみを許可するようにアクセス制御する単純アクセス制御ステップと、
    前記制御仮想計算機が、前記ハイパーバイザから、転送先である仮想計算機を指定した前記仮想計算機からの通信要求を受信する受信ステップと、
    前記制御仮想計算機が、前記受信した通信要求に含まれるメッセージ、メッセージ内容とアクセスの可否を対応付けた高度アクセス制御設定に基づいてアクセスの可否を判定する判定ステップと、
    前記制御仮想計算機が、前記判定ステップにより許可された通信要求を、前記転送先である仮想計算機に対して送信するようにアクセス制御する高度アクセス制御ステップと、
    を実行する通信制御方法。
JP2009222527A 2009-09-28 2009-09-28 プログラム及び通信制御方法 Expired - Fee Related JP5532793B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009222527A JP5532793B2 (ja) 2009-09-28 2009-09-28 プログラム及び通信制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009222527A JP5532793B2 (ja) 2009-09-28 2009-09-28 プログラム及び通信制御方法

Publications (2)

Publication Number Publication Date
JP2011070526A JP2011070526A (ja) 2011-04-07
JP5532793B2 true JP5532793B2 (ja) 2014-06-25

Family

ID=44015733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009222527A Expired - Fee Related JP5532793B2 (ja) 2009-09-28 2009-09-28 プログラム及び通信制御方法

Country Status (1)

Country Link
JP (1) JP5532793B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5398309B2 (ja) * 2009-03-09 2014-01-29 三菱電機株式会社 仮想計算機システム、仮想計算機システムの通信制御プログラム及び仮想計算機システムの通信制御方法
JP5826834B2 (ja) 2011-05-16 2015-12-02 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、仮想計算機システムの制御方法、仮想計算機システムの制御プログラム、及び集積回路
JP5974688B2 (ja) * 2012-07-05 2016-08-23 富士通株式会社 コンピュータプログラム、管理サーバ及び通信システム
US20160328254A1 (en) * 2014-01-06 2016-11-10 Johnson Controls Technology Company Vehicle with multiple user interface operating domains
US10261814B2 (en) 2014-06-23 2019-04-16 Intel Corporation Local service chaining with virtual machines and virtualized containers in software defined networking
CN106941516B (zh) * 2017-02-09 2020-04-24 北京东土科技股份有限公司 基于工业互联网操作系统的异构现场设备控制管理系统
JP7451438B2 (ja) 2021-01-22 2024-03-18 株式会社東芝 通信装置、通信システム、通知方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279046B1 (en) * 1999-05-19 2001-08-21 International Business Machines Corporation Event-driven communications interface for logically-partitioned computer
JP4542514B2 (ja) * 2006-02-13 2010-09-15 株式会社日立製作所 計算機の制御方法、プログラム及び仮想計算機システム
JP4735331B2 (ja) * 2006-03-01 2011-07-27 日本電気株式会社 仮想マシンを利用した情報処理装置および情報処理システム、並びに、アクセス制御方法

Also Published As

Publication number Publication date
JP2011070526A (ja) 2011-04-07

Similar Documents

Publication Publication Date Title
JP5532793B2 (ja) プログラム及び通信制御方法
Ta-Min et al. Splitting interfaces: Making trust between applications and operating systems configurable
JP5981845B2 (ja) 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路
CN100399274C (zh) 一种虚拟机系统输入/输出设备动态分配的方法及其设备
US8909946B2 (en) Efficient power management of a system with virtual machines
WO2018153027A1 (zh) 一种数据迁移方法及装置
TWI588751B (zh) 透過基板管理控制器管理虛擬機器的電腦主機與方法
KR20180099682A (ko) 가상 머신 감사를 위한 시스템 및 방법들
JP2010033404A (ja) 仮想計算機システムおよび仮想計算機システムの制御方法
KR20080094952A (ko) 보안 운영 시스템 스위칭
JPH10283210A (ja) 仮想計算機システム間の仮想計算機移動制御方式
EP3329416B1 (en) Secure input/output device management
JP2012078893A (ja) 計算機システム、及び管理計算機
JP2006107185A (ja) オフライン作業可能な端末を有する計算機システム
EP3701373B1 (en) Virtualization operations for directly assigned devices
CN112306650A (zh) 虚拟机热迁移方法和通信设备
Gebhardt et al. Challenges for inter virtual machine communication
CN116069584B (zh) 将监控服务扩展到可信云运营商域中
US10261921B2 (en) Universal secure platform virtualization system and method thereof
US11922211B2 (en) System and method for cross-architecture trusted execution environment migration
JP5398309B2 (ja) 仮想計算機システム、仮想計算機システムの通信制御プログラム及び仮想計算機システムの通信制御方法
US11513825B2 (en) System and method for implementing trusted execution environment on PCI device
JP6497157B2 (ja) 情報管理装置、情報管理方法、情報管理プログラム、データ構造、及び、ソフトウェア資産管理システム
CN115828249A (zh) 基于云技术的计算节点及基于云技术的实例管理方法
US20200153797A1 (en) Secure Use of Dual Networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

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

R150 Certificate of patent or registration of utility model

Ref document number: 5532793

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140414

LAPS Cancellation because of no payment of annual fees