JP2011070526A - Virtual control computer program, hypervisor program, virtual control computer control method, and virtual computer control method - Google Patents

Virtual control computer program, hypervisor program, virtual control computer control method, and virtual computer control method Download PDF

Info

Publication number
JP2011070526A
JP2011070526A JP2009222527A JP2009222527A JP2011070526A JP 2011070526 A JP2011070526 A JP 2011070526A JP 2009222527 A JP2009222527 A JP 2009222527A JP 2009222527 A JP2009222527 A JP 2009222527A JP 2011070526 A JP2011070526 A JP 2011070526A
Authority
JP
Japan
Prior art keywords
control
virtual machine
hypervisor
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.)
Granted
Application number
JP2009222527A
Other languages
Japanese (ja)
Other versions
JP5532793B2 (en
Inventor
Takashi Kojima
尚 兒島
Masahiro Nakada
正弘 中田
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/en
Publication of JP2011070526A publication Critical patent/JP2011070526A/en
Application granted granted Critical
Publication of JP5532793B2 publication Critical patent/JP5532793B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a virtual control computer program for easily and flexibly controlling communication between a plurality of virtual computers which are executed in virtualized environments, a hypervisor program, a virtual control computer control method, and a virtual computer control method. <P>SOLUTION: The virtual control computer program which makes a computer 10 control other virtual computers 1 to n makes a computer execute a receiving step for receiving a communication request designating the virtual computers 1 to n being transfer destinations from the other computers 1 to n, a determining step for determining whether access to a message contained in the communication request is available based on an access control rule table in which contents of messages and the availability of accesses are associated, and a transmission step for transmitting communication permitted by a determination section to the virtual computers 1 to n being the transfer destinations. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、制御仮想計算機プログラム、ハイパーバイザプログラム、制御仮想計算機制御方法及び仮想計算機制御方法に係り、特に仮想化環境において実行された複数の仮想計算機を制御する制御仮想計算機プログラム、ハイパーバイザプログラム、制御仮想計算機制御方法及び仮想計算機制御方法に関する。   The present invention relates to a control virtual machine program, a hypervisor program, a control virtual machine control method, and a virtual machine control method, and in particular, a control virtual machine program, a hypervisor program for controlling a plurality of virtual machines executed in a virtual environment, The present invention relates to a control virtual machine control method and a virtual machine control method.

近年、CPUの高速化や記憶媒体の高容量化,ネットワークの高速化等のコンピュータ技術の進化により、ハードウェアを抽象化する仮想化技術が、ハードウェア利用率の向上やOS間のセキュリティの向上、複製やバックアップの容易性による効率的な管理などを目的として広く利用されている。   In recent years, with the advancement of computer technology such as higher CPU speed, higher storage capacity, and higher network speed, virtualization technology that abstracts hardware has improved hardware utilization and security between OSs. It is widely used for the purpose of efficient management by the ease of duplication and backup.

仮想化技術はVMware ESXi(登録商標)、Xen(登録商標)、Hyper-V(登録商標)などのハイパーバイザ(Hypervisor)と呼ばれる小さなプログラムにより実現される(例えば特許文献1参照)。   The virtualization technology is realized by a small program called a hypervisor such as VMware ESXi (registered trademark), Xen (registered trademark), or Hyper-V (registered trademark) (see, for example, Patent Document 1).

ハイパーバイザは一般的なOSとハードウェアとの間に入り、ハードウェアの機能を仮想化することにより複数のOSを仮想的に一つのハードウェア上で動作させることを特徴とする。以下の説明では、ハイパーバイザ上で動作するOS等のプログラムをVM(仮想機械:Virtual Machine)と呼ぶ。   The hypervisor is characterized in that it enters between a general OS and hardware, and a plurality of OSs are virtually operated on one hardware by virtualizing the functions of the hardware. In the following description, a program such as an OS operating on the hypervisor is referred to as a VM (Virtual Machine).

ハイパーバイザ上で動作するVMが増加すると、ハイパーバイザ上には互いに信頼関係のないVM群が増加していく。したがって、ハイパーバイザ上のVM間の通信にはアクセス制御が必要となる。VM間の通信には、一般的に、VM間割り込みと共有メモリとの2種類がある。   When the number of VMs operating on the hypervisor increases, the number of VM groups that do not have a mutual trust relationship increases on the hypervisor. Therefore, access control is required for communication between VMs on the hypervisor. There are generally two types of communication between VMs: inter-VM interrupt and shared memory.

VM間割り込みは、一方のVMから他方のVMにイベントの発生を通知する為のものである。VM間割り込みは、宛先とメッセージとをハイパーコール(Hypercall)によりハイパーバイザに通知する。ハイパーコールはハイパーバイザの機能を利用するためのVM向けのインターフェースの総称である。ハイパーバイザは宛先のVMにメッセージを送信する。   The inter-VM interrupt is for notifying the occurrence of an event from one VM to the other VM. The inter-VM interrupt notifies the hypervisor of a destination and a message by a hypercall. Hypercall is a generic name for interfaces for VMs for using the functions of the hypervisor. The hypervisor sends a message to the destination VM.

共有メモリは、VM同士で特定のメモリ領域を共有することでデータの共有を実現するものである。共有メモリを利用する場合、一般的な方法では一方のVMが特定のメモリ領域をハイパーコールにより共有可能に設定し、他方のVMが同じくハイパーコールにより共有可能なメモリ領域を共有状態に設定する。   The shared memory realizes data sharing by sharing a specific memory area between VMs. When a shared memory is used, in a general method, one VM sets a specific memory area so that it can be shared by hypercall, and the other VM similarly sets a memory area that can be shared by hypercall to a shared state.

通常、VM間の通信はVM間割り込みによってイベントを発生させ、そのイベントが正しく処理された後に、共有メモリによりデータをやり取りする方法が一般的である。このため、VM間の通信のアクセス制御はVM間割り込みに対して行われることが多い。例えばVM間の通信のアクセス制御は、特定のVMからのVM間割り込みを拒絶したり、特定の種類のメッセージのみを許可したりといった制御が考えられる。   In general, communication between VMs generally involves a method in which an event is generated by an inter-VM interrupt, and data is exchanged by a shared memory after the event is correctly processed. For this reason, access control for communication between VMs is often performed for an inter-VM interrupt. For example, the access control of communication between VMs can be a control of rejecting an inter-VM interrupt from a specific VM or permitting only a specific type of message.

一般的なハイパーバイザではVM自身が自らに割り込みを送信可能な他のVMのIDを設定できるようになっている。しかし、この設定はVMのIDに基づき、送信可能・不可能を制御するだけであり、特定の種類のメッセージのみを許可するといった制御を行うことができない。特定の種類のメッセージのみを許可するといった制御を行う場合は別の仕組みが必要であった。   In a general hypervisor, the VM itself can set the ID of another VM that can send an interrupt to itself. However, this setting only controls whether transmission is possible or not based on the VM ID, and cannot control such that only a specific type of message is allowed. When performing control such as permitting only specific types of messages, another mechanism was required.

以下では、VM自身が自らに割り込みを送信可能な他のVMのIDを設定することによるVM間の通信のアクセス制御を単純アクセス制御と呼び、特定の種類のメッセージのみを許可するといった制御まで考慮するアクセス制御を高度アクセス制御と呼ぶ。例えば高度アクセス制御を行う場所としてはハイパーバイザが知られている。   In the following, access control of communication between VMs by setting an ID of another VM that can send an interrupt to itself is referred to as simple access control, and consideration is given to control that allows only specific types of messages. This access control is called advanced access control. For example, a hypervisor is known as a place for performing advanced access control.

ハイパーバイザには高度アクセス制御を支援する機能を備えているものがあった。例えばハイパーバイザの一例のXen(登録商標)には、XSM(Xen Security Modules)と呼ばれる仕組みが搭載されており、予め定義されたフック関数に独自の高度アクセス制御のモジュールを追加できるようになっている。以下では、ハイパーバイザで行う高度アクセス制御をハイパーバイザ高度アクセス制御と呼ぶ。   Some hypervisors have a function to support advanced access control. For example, Xen (registered trademark), which is an example of a hypervisor, is equipped with a mechanism called XSM (Xen Security Modules), so that a unique advanced access control module can be added to a predefined hook function. Yes. Hereinafter, advanced access control performed by the hypervisor is referred to as hypervisor advanced access control.

特開2009−26117号公報JP 2009-26117 A

しかしながら、高度アクセス制御を支援する機能は、全てのハイパーバイザに用意されている訳ではない。したがって、高度アクセス制御を支援する機能が用意されていないハイパーバイザはハイパーバイザ高度アクセス制御を行うことができなかった。   However, a function that supports advanced access control is not provided in all hypervisors. Therefore, a hypervisor that does not have a function for supporting advanced access control cannot perform hypervisor advanced access control.

特に一般的なPC向けのハイパーバイザでなく、組み込み向けのハイパーバイザの場合は計算能力やメモリ容量の制限から必要最低限の機能で動作することが求められる。このため、ハイパーバイザ高度アクセス制御のような機能は、省略されることが多いと考えられる。   In particular, in the case of a built-in hypervisor instead of a general PC hypervisor, it is required to operate with the minimum necessary functions due to limitations on calculation capacity and memory capacity. For this reason, functions such as hypervisor advanced access control are often omitted.

本発明の一実施形態は、上記の点に鑑みなされたもので、仮想化環境において実行された複数の仮想計算機間の通信を容易且つ柔軟に制御できる制御仮想計算機プログラム、ハイパーバイザプログラム、制御仮想計算機制御方法及び仮想計算機制御方法を提供することを目的とする。   An embodiment of the present invention has been made in view of the above points. A control virtual computer program, a hypervisor program, and a control virtual computer that can easily and flexibly control communication between a plurality of virtual computers executed in a virtual environment. It is an object to provide a computer control method and a virtual computer control method.

上記課題を解決する為、本発明の一実施形態は、コンピュータに他の仮想計算機を制御させる制御仮想計算機プログラムであって、他の仮想計算機から、転送先である仮想計算機を指定した通信要求を受信する受信ステップと、前記受信した通信要求に含まれるメッセージを、メッセージ内容とアクセスの可否を対応付けたアクセス制御ルールテーブルに基づいてアクセスの可否を判定する判定ステップと、前記判定部により許可された通信を、前記転送先である仮想計算機に対して送信する送信ステップと、をコンピュータに実行させる制御仮想計算機プログラムである。   In order to solve the above problems, an embodiment of the present invention is a control virtual computer program that causes a computer to control another virtual computer, and from another virtual computer, a communication request specifying a virtual computer that is a transfer destination is issued. A receiving step for receiving, a determining step for determining whether or not the message included in the received communication request is accessible based on an access control rule table that correlates message contents and accessibility, and the determination unit permits A control virtual machine program that causes a computer to execute a transmission step of transmitting the received communication to the virtual machine that is the transfer destination.

なお、本発明の一実施形態の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。   In addition, what applied the component, the expression, or arbitrary combinations of the component of one Embodiment of this invention to a method, an apparatus, a system, a computer program, a recording medium, a data structure, etc. is also effective as an aspect of this invention. .

上述の如く、本発明の一実施形態によれば、仮想化環境において実行された複数の仮想計算機間の通信を容易且つ柔軟に制御できる。   As described above, according to an embodiment of the present invention, communication between a plurality of virtual machines executed in a virtual environment can be controlled easily and flexibly.

本実施例におけるソフトウェアとハードウェアとの関係を表した一例のブロック図である。It is a block diagram of an example showing the relationship between the software and hardware in a present Example. 本実施例におけるハードウェアの一例の構成図である。It is a block diagram of an example of the hardware in a present Example. 個別高度アクセス制御を説明する為の説明図である。It is explanatory drawing for demonstrating individual high access control. ハイパーバイザ高度アクセス制御を説明する為の説明図である。It is explanatory drawing for demonstrating hypervisor advanced access control. 制御VMで行う高度アクセス制御を説明する為の説明図である。It is explanatory drawing for demonstrating the advanced access control performed by control VM. 準備処理の手順を表した一例のフローチャートである。It is a flowchart of an example showing the procedure of the preparation process. 単純アクセス制御設定のハイパーコールの例を表した説明図である。It is explanatory drawing showing the example of the hyper call of a simple access control setting. 単純アクセス制御設定テーブルの一例の構成図である。It is a block diagram of an example of a simple access control setting table. ハイパーバイザへの共有メモリ設定依頼の例を表した説明図である。It is explanatory drawing showing the example of the shared memory setting request | requirement to a hypervisor. 共有メモリ設定テーブルの一例の構成図である。It is a block diagram of an example of a shared memory setting table. ハイパーバイザへの共有メモリ使用依頼の例を表した説明図である。It is explanatory drawing showing the example of the shared memory use request to a hypervisor. アクセス処理の手順を表した一例のフローチャートである。It is a flowchart of an example showing the procedure of the access process. ハイパーバイザへの割り込み送信依頼の例を表した説明図である。It is explanatory drawing showing the example of the interruption transmission request to a hypervisor. 割り込みに含めるメッセージの例を表した説明図である。It is explanatory drawing showing the example of the message included in interruption. メッセージ本体に含まれる情報の例を表した説明図である。It is explanatory drawing showing the example of the information contained in a message main body. 高度アクセス制御設定の例を表した説明図である。It is explanatory drawing showing the example of the advanced access control setting.

次に、本発明を実施するための形態を、以下の実施例に基づき図面を参照しつつ説明していく。   Next, modes for carrying out the present invention will be described based on the following embodiments with reference to the drawings.

図1は本実施例におけるソフトウェアとハードウェアとの関係を表した一例のブロック図である。図1のブロック図は、ハードウェア10と、ハードウェア10上で動作するハイパーバイザ20と、ハイパーバイザ20上で動作する制御VM30と、ハイパーバイザ20上で動作する複数のVM(一般VM)1〜nとを表している。   FIG. 1 is a block diagram showing an example of the relationship between software and hardware in this embodiment. The block diagram of FIG. 1 shows hardware 10, a hypervisor 20 operating on the hardware 10, a control VM 30 operating on the hypervisor 20, and a plurality of VMs (general VMs) 1 operating on the hypervisor 20. ~ N.

複数のVM1〜nはハイパーバイザ20による単純アクセス制御及び制御VM30による高度アクセス制御の対象となるVM(制御対象VM群)である。制御VM30は複数のVM1〜nに対して高度アクセス制御を行う。なお、制御VM30の詳細は後述する。   The plurality of VMs 1 to n are VMs (control target VM group) that are targets of simple access control by the hypervisor 20 and advanced access control by the control VM 30. The control VM 30 performs advanced access control for the plurality of VMs 1 to n. Details of the control VM 30 will be described later.

図2は本実施例におけるハードウェアの一例の構成図である。図2はハードウェア10が一般的なPC等のコンピュータシステムである例を表している。   FIG. 2 is a configuration diagram of an example of hardware in this embodiment. FIG. 2 shows an example in which the hardware 10 is a general computer system such as a PC.

図2のコンピュータシステムは、バスBで相互に接続されている入力装置11,出力装置12,ドライブ装置13,補助記憶装置14,主記憶装置15,演算処理装置16及びインターフェース装置17を有する。   The computer system of FIG. 2 includes an input device 11, an output device 12, a drive device 13, an auxiliary storage device 14, a main storage device 15, an arithmetic processing device 16, and an interface device 17 that are connected to each other via a bus B.

入力装置11はキーボードやマウス等である。入力装置11は、各種信号を入力するために用いられる。出力装置12はディスプレイ装置等である。出力装置12は各種ウインドウやデータ等を表示するために用いられる。インターフェース装置17はモデム,LANカード等である。インターフェース装置17はネットワークに接続する為に用いられるものである。   The input device 11 is a keyboard or a mouse. The input device 11 is used for inputting various signals. The output device 12 is a display device or the like. The output device 12 is used for displaying various windows and data. The interface device 17 is a modem, a LAN card, or the like. The interface device 17 is used for connecting to a network.

本実施例のハイパーバイザ20は、図2のコンピュータシステムを制御する各種プログラムの少なくとも一部である。ハイパーバイザ20は例えば記録媒体18の配布やネットワークからのダウンロードなどによって提供される。ハイパーバイザ20を記録した記録媒体18は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。   The hypervisor 20 of this embodiment is at least a part of various programs that control the computer system of FIG. The hypervisor 20 is provided, for example, by distributing the recording medium 18 or downloading from the network. The recording medium 18 on which the hypervisor 20 is recorded is information such as a CD-ROM, a flexible disk, a magneto-optical disk, etc., a recording medium for recording information optically, electrically or magnetically, a ROM, a flash memory, etc. Various types of recording media, such as a semiconductor memory that electrically records data, can be used.

また、ハイパーバイザ20を記録した記録媒体18がドライブ装置13にセットされると、ハイパーバイザ20は記録媒体18からドライブ装置13を介して補助記憶装置14にインストールされる。ネットワークからダウンロードされたハイパーバイザ20は、インターフェース装置17を介して補助記憶装置14にインストールされる。   When the recording medium 18 on which the hypervisor 20 is recorded is set in the drive device 13, the hypervisor 20 is installed from the recording medium 18 to the auxiliary storage device 14 via the drive device 13. The hypervisor 20 downloaded from the network is installed in the auxiliary storage device 14 via the interface device 17.

補助記憶装置14は、インストールされたハイパーバイザ20を格納すると共に、必要なファイル,データ等を格納する。主記憶装置15は、ハイパーバイザ20の起動時に補助記憶装置14からハイパーバイザ20を読み出して格納する。そして、演算処理装置16は主記憶装置15に格納されたハイパーバイザ20に従って、後述するような各種処理を実現している。   The auxiliary storage device 14 stores the installed hypervisor 20 and also stores necessary files, data, and the like. The main storage device 15 reads and stores the hypervisor 20 from the auxiliary storage device 14 when the hypervisor 20 is activated. The arithmetic processing unit 16 implements various processes as described later according to the hypervisor 20 stored in the main storage device 15.

高度アクセス制御を行う場所は本実施例のように制御VM30で行う他、ハイパーバイザ20、各VM1〜nが考えられる。そこで、ここでは本実施例の理解を容易とする為に各VM1〜nで行う高度アクセス制御及びハイパーバイザ20で行うハイパーバイザ高度アクセス制御の課題について説明する。以下では、各VM1〜nで行う高度アクセス制御を個別高度アクセス制御と呼ぶ。   The place where the advanced access control is performed is performed by the control VM 30 as in this embodiment, and the hypervisor 20 and each of the VMs 1 to n can be considered. Therefore, here, problems of advanced access control performed by each of the VMs 1 to n and hypervisor advanced access control performed by the hypervisor 20 will be described in order to facilitate understanding of the present embodiment. Hereinafter, the advanced access control performed by each of the VMs 1 to n is referred to as individual advanced access control.

図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とを図示している。   FIG. 3 is an explanatory diagram for explaining individual altitude access control. In FIG. 3, three examples of VMs operating on the hypervisor 20 are shown. 3 includes an interrupt transmission unit 41, a main body processing unit 42, an advanced access control unit 43, an interrupt reception unit 44, a shared memory setting table 45, and an advanced access control setting table 46. The hypervisor 20 includes an interrupt receiver 21, a simple access controller 22, an interrupt transmitter 23, and a simple access control setting table 24. FIG. 3 illustrates the shared memory 47 of VM1 and VM2, and the shared memory 48 of VM2 and VM3.

各VM1〜3は、それぞれが高度アクセス制御部43と高度アクセス制御設定テーブル46とを有している。各VM1〜3は、高度アクセス制御部43と高度アクセス制御設定テーブル46とを利用することで、自らに送信されたVM間割り込みを検査し、予め高度アクセス制御設定テーブル46に設定された高度アクセス制御設定に基づき、必要な個別高度アクセス制御を行う。   Each of the VMs 1 to 3 has an advanced access control unit 43 and an advanced access control setting table 46. Each of the VMs 1 to 3 uses the advanced access control unit 43 and the advanced access control setting table 46 to inspect the inter-VM interrupt transmitted to itself, and the advanced access set in the advanced access control setting table 46 in advance. Perform necessary individual altitude access control based on the control settings.

しかし、個別高度アクセス制御は、ハイパーバイザ20上で動作するVMの数が増大してくると、設定すべき高度アクセス制御設定の数が増大し、管理が煩雑になるという問題があった。管理の煩雑さは、高度アクセス制御設定のミスを誘発する原因となり、安全性が損なわれる恐れがあった。   However, the individual advanced access control has a problem that, as the number of VMs operating on the hypervisor 20 increases, the number of advanced access control settings to be set increases and management becomes complicated. The complexity of management causes an error in advanced access control settings, which may impair safety.

図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とを図示している。   FIG. 4 is an explanatory diagram for explaining hypervisor advanced access control. FIG. 4 shows three examples of VMs operating on the hypervisor 20. 4 includes an interrupt transmission unit 41, a main body processing unit 42, an interrupt reception unit 44, and a shared memory setting table 45. The hypervisor 20 includes an interrupt receiving unit 21, a simple access control unit 22, an interrupt transmission unit 23, a simple access control setting table 24, and a hook unit 25. The advanced access control module 50 includes an advanced access control unit 51 and an advanced access control setting table 52. FIG. 4 illustrates the shared memory 47 of VM1 and VM2, and the shared memory 48 of VM2 and VM3.

ハイパーバイザ20はフック部25に定義されたフック関数を利用して、高度アクセス制御モジュール50を追加できる。ハイパーバイザ高度アクセス制御は個別高度アクセス制御と異なり、ハイパーバイザ20側の高度アクセス制御モジュール50で高度アクセス制御を一元管理できるので、高度アクセス制御を管理しやすい。しかし、ハイパーバイザ高度アクセス制御はハイパーバイザ20側に高度アクセス制御を実現する機能が用意されていなければならなかった。例えば組み込み向けのハイパーバイザ等は計算能力やメモリ容量の制限から、高度アクセス制御を実現する機能が用意されていない場合も多い。   The hypervisor 20 can add the advanced access control module 50 by using a hook function defined in the hook unit 25. Unlike the individual advanced access control, the hypervisor advanced access control can easily manage the advanced access control because the advanced access control can be centrally managed by the advanced access control module 50 on the hypervisor 20 side. However, in the hypervisor advanced access control, a function for realizing the advanced access control must be prepared on the hypervisor 20 side. For example, a built-in hypervisor or the like often does not have a function for realizing advanced access control due to limitations in computing capacity and memory capacity.

図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とを図示している。   FIG. 5 is an explanatory diagram for explaining advanced access control performed by the control VM. FIG. 5 shows three examples of VMs operating on the hypervisor 20. 5 includes an interrupt transmission unit 41, a main body processing unit 42, an interrupt reception unit 44, and a shared memory setting table 45. The hypervisor 20 includes an interrupt reception unit 21, a simple access control unit 22, an interrupt transmission unit 23, and a simple access control setting table 24. The control VM 30 includes an interrupt transmission unit 31, an advanced access control unit 32, an interrupt reception unit 33, and an advanced access control setting table 34. FIG. 5 illustrates the shared memory 47 of VM1 and VM2, and the shared memory 48 of VM2 and VM3.

図5では、各VM1〜3がアクセスできる唯一のVMとして、制御VM30を用意している。制御VM30以外の各VM1〜3間の通信は全て制御VM30に送られ、制御VM30から目的のVM1〜3に受け渡される。制御VM30は各VM1〜3間の通信を一括して高度アクセス制御できるので、ハイパーバイザ高度アクセス制御が無くても、制御VM30による一元的な高度アクセス制御を行うことができ、高度アクセス制御設定のミスを起こりにくくできる。   In FIG. 5, a control VM 30 is prepared as the only VM that can be accessed by each of the VMs 1 to 3. All communication between the VMs 1 to 3 other than the control VM 30 is sent to the control VM 30 and transferred from the control VM 30 to the target VMs 1 to 3. Since the control VM 30 can perform high-level access control of communication between the VMs 1 to 3, centralized high-level access control by the control VM 30 can be performed without the hypervisor advanced access control. Make mistakes less likely.

また、高度アクセス制御を行う各VM1〜3間の通信はVM間割り込みとする。各VM1〜3間のアクセス制御はVM間割り込みに対して行えば充分であり、VM1及びVM2の共有メモリ47、VM2及びVM3の共有メモリ48に対して行う必要はない。   Further, communication between the VMs 1 to 3 that perform advanced access control is an inter-VM interrupt. It is sufficient to perform access control between the VMs 1 to 3 with respect to the inter-VM interrupt, and it is not necessary to perform the access to the shared memory 47 of VM1 and VM2, and the shared memory 48 of VM2 and VM3.

一般に、VM1及びVM2の共有メモリ47、VM2及びVM3の共有メモリ48の高度アクセス制御を行う為には、比較的大きなオーバーヘッドが生じる。しかし、VM間割り込みの高度アクセス制御を行う場合、割り込み転送のためのVM間割り込みの回数が2倍に増えるものの、VM間割り込み自体のオーバーヘッドは充分に小さいため、比較的大きなオーバーヘッドが生じにくい。よって、制御VM30で行う高度アクセス制御は少ないオーバーヘッドで各VM1〜3間のアクセス制御を効率的に行うことができる。   In general, relatively high overhead occurs in order to perform advanced access control of the shared memory 47 of VM1 and VM2, and the shared memory 48 of VM2 and VM3. However, when performing advanced access control of an inter-VM interrupt, the number of inter-VM interrupts for interrupt transfer is doubled, but the overhead of the inter-VM interrupt itself is sufficiently small, so that a relatively large overhead is unlikely to occur. Therefore, the advanced access control performed by the control VM 30 can efficiently perform the access control between the VMs 1 to 3 with little overhead.

また、各VM1〜3間のVM間割り込みは、直接の送信先である制御VM30の識別子に加えて、実際の通信先である各VM1〜3の識別子を持つ。したがって、制御VM30は実際の通信先である各VM1〜3にVM間割り込みを転送できる。   Further, the inter-VM interrupt between the VMs 1 to 3 has the identifiers of the VMs 1 to 3 that are actual communication destinations in addition to the identifier of the control VM 30 that is the direct transmission destination. Therefore, the control VM 30 can transfer an inter-VM interrupt to each of the VMs 1 to 3 that are actual communication destinations.

さらに、制御VM30は予め設定されている高度アクセス制御設定に基づき、特定のVM(例えばVM1)から特定のVM(例えばVM2)への通信を禁止する為、ユーザの望む高度アクセス制御を行うことができる。   Further, the control VM 30 can perform advanced access control desired by the user in order to prohibit communication from a specific VM (for example, VM1) to a specific VM (for example, VM2) based on a preset advanced access control setting. it can.

以下、本実施例のハイパーバイザ20による単純アクセス制御及び制御VM30による高度アクセス制御の処理手順について説明していく。ここでは、VM間割り込み及び共有メモリによりVM間の通信を行っているVM1とVM2とがあり、VM1からVM2に割り込みを送信する場合の制御VM30による高度アクセス制御の例について説明する。   Hereinafter, a processing procedure of simple access control by the hypervisor 20 and advanced access control by the control VM 30 according to the present embodiment will be described. Here, an example of advanced access control by the control VM 30 when there are VM1 and VM2 that perform communication between VMs using an inter-VM interrupt and a shared memory and an interrupt is transmitted from the VM1 to the VM2 will be described.

図6は準備処理の手順を表した一例のフローチャートである。ハイパーバイザ20は事前に起動しているものとする。ステップS100に進み、ハイパーバイザ20は所定の設定ファイル(図示せず)に従い、制御VM30を起動する。制御VM30の起動に必要なファイルはストレージなどの補助記憶装置14に保存されている。ハイパーバイザ20は制御VM30の起動に必要なファイルをストレージなどの補助記憶装置14からロードして起動する。   FIG. 6 is a flowchart illustrating an example of the preparation process. It is assumed that the hypervisor 20 has been activated in advance. In step S100, the hypervisor 20 activates the control VM 30 according to a predetermined setting file (not shown). Files necessary for starting the control VM 30 are stored in the auxiliary storage device 14 such as a storage. The hypervisor 20 loads a file necessary for starting the control VM 30 from the auxiliary storage device 14 such as a storage and starts it.

一般的なハイパーバイザ20は起動したVMに一意のVM_IDを付与する。特に設定しない限り、起動されたVMは割り込みを一切受け付けない状態であり、どのVMともメモリを共有していない。ここでは制御VM30のVM_IDを「0」とする。   The general hypervisor 20 assigns a unique VM_ID to the activated VM. Unless otherwise set, the activated VM is in a state of not accepting any interrupt and does not share memory with any VM. Here, the VM_ID of the control VM 30 is set to “0”.

ステップS101に進み、ハイパーバイザ20は所定の設定ファイルに従い、VM1を起動する。ハイパーバイザ20はVM1の起動に必要なファイルを補助記憶装置14からロードして起動する。起動されたVM1は割り込みを一切受け付けない状態であり、どのVMともメモリを共有していない。ここではVM1のVM_IDを「1」とする。   In step S101, the hypervisor 20 activates the VM 1 according to a predetermined setting file. The hypervisor 20 loads a file necessary for starting the VM 1 from the auxiliary storage device 14 and starts it. The activated VM 1 is in a state of not accepting any interrupt, and does not share memory with any VM. Here, VM_ID of VM1 is set to “1”.

ステップS102に進み、ハイパーバイザ20は所定の設定ファイルに従い、VM2を起動する。ハイパーバイザ20はVM2の起動に必要なファイルを補助記憶装置14からロードして起動する。起動されたVM2は割り込みを一切受け付けない状態であり、どのVMともメモリを共有していない。ここではVM2のVM_IDを「2」とする。   In step S102, the hypervisor 20 activates the VM 2 according to a predetermined setting file. The hypervisor 20 loads a file necessary for starting the VM 2 from the auxiliary storage device 14 and starts it. The activated VM 2 is in a state that does not accept any interrupt, and does not share memory with any VM. Here, the VM_ID of VM2 is “2”.

ステップS103に進み、VM1は制御VM30(VM_IDが0のVM)からの割り込みを受け付けるように、単純アクセス制御設定をハイパーバイザ20に要求する。一般的なハイパーバイザ20では、各VM自身が、自分への割り込みを許可する他のVMを設定できる。   In step S103, the VM1 requests the hypervisor 20 to perform a simple access control setting so as to accept an interrupt from the control VM30 (VM_ID = 0). In the general hypervisor 20, each VM itself can set another VM that permits interruption to itself.

通常、各VMは自分への割り込みを許可する他のVMのVM_IDをハイパーコールによりハイパーバイザ20へ通知することで、自分への割り込みを許可する他のVMを指定できる。図7は単純アクセス制御設定のハイパーコールの例を表した説明図である。単純アクセス制御設定のハイパーコールは、対象のVMのVM_IDと、割り込みを受けるか否かの情報とが指定される。   Normally, each VM can specify another VM that is permitted to interrupt itself by notifying the hypervisor 20 of the VM_ID of another VM that is permitted to interrupt itself by hypercall. FIG. 7 is an explanatory diagram showing an example of a hyper call for simple access control setting. In the hyper call for simple access control setting, the VM_ID of the target VM and information on whether or not to receive an interrupt are specified.

ハイパーバイザ20は、ハイパーコールを行った呼び出し元のVM1のVM_IDである「1」と、ハイパーコールで対象のVMのVM_IDとして指定された「0」と、割り込みを受けるか否かの情報として指定された「TRUE(割り込みを受ける)」とに基づいて、図8のような単純アクセス制御設定テーブル24に単純アクセス制御を設定する。   The hypervisor 20 designates “1” which is the VM_ID of the calling VM 1 that made the hyper call, “0” designated as the VM_ID of the target VM in the hyper call, and information as to whether or not to receive an interrupt. Simple access control is set in the simple access control setting table 24 as shown in FIG.

図8は単純アクセス制御設定テーブルの一例の構成図である。図8の単純アクセス制御設定テーブル24は、送信側VM_IDと受信側VM_IDとの組み合わせごとに、割り込みが可能か不可かを設定するものである。ハイパーバイザ20はハイパーコールで指定された対象のVMのVM_IDを送信側VM_ID、ハイパーコールを行った呼び出し元のVMのVM_IDを受信側VM_ID、ハイパーコールで指定された割り込みを受けるか否かの情報を割り込みが可能か不可かの情報として、単純アクセス制御を設定する。   FIG. 8 is a configuration diagram of an example of the simple access control setting table. The simple access control setting table 24 in FIG. 8 sets whether interrupt is possible or not for each combination of the transmission side VM_ID and the reception side VM_ID. The hypervisor 20 sends the VM_ID of the target VM specified by the hypercall to the sending VM_ID, the VM_ID of the calling VM that made the hypercall to the receiving VM_ID, and whether to receive an interrupt specified by the hypercall Simple access control is set as information on whether or not interrupts are possible.

本実施例において、制御VM30以外の全てのVMの割り込み設定は、制御VM30からの割り込みを許可し、制御VM30以外からの割り込みを許可しないように設定することを前提とする。これにより、各VM間の割り込みは必ず制御VM30を経由する。   In this embodiment, it is assumed that the interrupt settings of all VMs other than the control VM 30 are set so as to permit interrupts from the control VM 30 and not permit interrupts from other than the control VM 30. Thereby, an interrupt between VMs always passes through the control VM 30.

ステップS104に進み、VM2はVM1と同様、制御VM30(VM_IDが0のVM)からの割り込みを受け付けるように、単純アクセス制御設定をハイパーバイザ20に要求する。ハイパーバイザ20は、VM2が制御VM30からの割り込みを許可し、制御VM30以外からの割り込みを許可しないように、単純アクセス制御を単純アクセス制御設定テーブル24に設定する。   In step S104, the VM2 requests the hypervisor 20 to set the simple access control so as to accept an interrupt from the control VM30 (VM_ID = 0) as in the case of the VM1. The hypervisor 20 sets the simple access control in the simple access control setting table 24 so that the VM 2 permits an interrupt from the control VM 30 and does not permit an interrupt from other than the control VM 30.

ステップS105に進み、制御VM30はVM1及びVM2からの割り込みを受け付けるように、単純アクセス制御設定をハイパーバイザ20に要求する。ハイパーバイザ20は制御VM30がVM1及びVM2からの割り込みを許可し、VM1及びVM2以外からの割り込みを許可しないように、単純アクセス制御を単純アクセス制御設定テーブル24に設定する。   Proceeding to step S105, the control VM 30 requests the hypervisor 20 to perform simple access control settings so as to accept interrupts from the VM1 and VM2. The hypervisor 20 sets the simple access control in the simple access control setting table 24 so that the control VM 30 permits interrupts from VM1 and VM2 and does not permit interrupts from other than VM1 and VM2.

ステップS106に進み、VM1はハイパーバイザ20に、VM1の特定のメモリ領域をVM2と共有できるように、特定のメモリ領域を共有メモリとして設定するように要求する。   In step S106, the VM1 requests the hypervisor 20 to set a specific memory area as a shared memory so that the specific memory area of the VM1 can be shared with the VM2.

一般的なハイパーバイザ20では、VMのメモリ領域に、VM内で一意な番号(メモリ領域の番号)を付与することになっており、共有メモリを指定する際、メモリ領域の番号を指定する。メモリ領域の番号は他のVMが共有メモリを実際に使用する際、ハイパーバイザ20にメモリ領域を指定する番号として利用される。   In the general hypervisor 20, a number unique to the VM (memory area number) is assigned to the VM memory area, and the memory area number is designated when the shared memory is designated. The number of the memory area is used as a number for designating the memory area to the hypervisor 20 when another VM actually uses the shared memory.

ここでは、共有メモリとして設定するメモリ領域の番号を予めVM1とVM2とで定義しておくものとし、互いの共有メモリ設定情報として共有メモリ設定テーブル45に保持しているものとする。   Here, it is assumed that the number of the memory area to be set as the shared memory is defined in advance by VM1 and VM2, and is held in the shared memory setting table 45 as mutual memory setting information.

図9はハイパーバイザへの共有メモリ設定依頼の例を表した説明図である。共有メモリ設定依頼は、対象のメモリ領域の番号と、共有するかどうかの情報とが指定される。図10は共有メモリ設定テーブルの一例の構成図である。共有メモリ設定テーブル45は各VMが保持する共有メモリ設定情報を表す。図10の共有メモリ設定情報は、VM1の共有メモリとして設定されたメモリ領域の番号のリストを表している。   FIG. 9 is an explanatory diagram showing an example of a shared memory setting request to the hypervisor. In the shared memory setting request, the number of the target memory area and information on whether to share are designated. FIG. 10 is a configuration diagram of an example of a shared memory setting table. The shared memory setting table 45 represents shared memory setting information held by each VM. The shared memory setting information in FIG. 10 represents a list of memory area numbers set as the shared memory of the VM1.

ステップS107に進み、VM2は共有メモリ設定テーブル45に予め設定しておいたVM1の共有メモリとして設定されたメモリ領域の番号に基づき、ハイパーバイザ20にVM1の共有メモリとして設定されたメモリ領域を使用できるように要求する。図11はハイパーバイザへの共有メモリ使用依頼の例を表した説明図である。共有メモリ使用依頼は対象のVMのVM_IDと、対象のメモリ領域の番号と、使用するかどうかの情報とが指定されている。   In step S107, the VM 2 uses the memory area set as the VM 1 shared memory in the hypervisor 20 based on the memory area number set as the VM 1 shared memory set in advance in the shared memory setting table 45. Request to be able to. FIG. 11 is an explanatory diagram showing an example of a shared memory use request to the hypervisor. In the shared memory use request, the VM_ID of the target VM, the number of the target memory area, and information on whether or not to use are specified.

図6に示した準備処理が終了した後、VM1とVM2とは共有メモリを経由してデータをやり取りすることができるようになる。共有メモリへのアクセスはVM1,2の本体処理部42が行うものとする。   After the preparation process shown in FIG. 6 is completed, VM1 and VM2 can exchange data via the shared memory. It is assumed that the main body processing unit 42 of the VMs 1 and 2 accesses the shared memory.

図12はアクセス処理の手順を表した一例のフローチャートである。ステップS108に進み、VM1はVM2に割り込みを送信するため、ハイパーバイザ20に制御VM30への割り込みを依頼する。   FIG. 12 is a flowchart illustrating an example of the access processing procedure. In step S108, the VM1 requests the hypervisor 20 to interrupt the control VM 30 in order to transmit an interrupt to the VM2.

VM1の実際の割り込みの宛先はVM2であるが、制御VM30による高度アクセス制御を実現するため、VM1は割り込みの宛先を全て制御VM30としている。VM1はハイパーバイザ20に通知する通常の割り込みの宛先(制御VM30)の他、制御VM30に通知する実際の割り込みの宛先を指定する必要がある。   The actual interrupt destination of VM1 is VM2, but in order to realize advanced access control by the control VM30, VM1 sets all the interrupt destinations to the control VM30. The VM 1 needs to specify the actual interrupt destination to be notified to the control VM 30 in addition to the normal interrupt destination to be notified to the hypervisor 20 (control VM 30).

一般的なハイパーバイザ20では、割り込みの際に簡単なメッセージを追加することができる。そこで、VM1は割り込みの際に追加できる簡単なメッセージを利用して、実際の割り込みの宛先であるVM2のVM_IDを指定する。図13はハイパーバイザへの割り込み送信依頼の例を表した説明図である。図13の割り込み送信依頼は、制御VM30のVM_IDと、割り込みに含めるメッセージとが指定されている。   In the general hypervisor 20, a simple message can be added at the time of interruption. Therefore, the VM1 designates the VM_ID of the VM2 that is the actual interrupt destination by using a simple message that can be added at the time of interrupt. FIG. 13 is an explanatory diagram showing an example of an interrupt transmission request to the hypervisor. The interrupt transmission request in FIG. 13 specifies VM_ID of the control VM 30 and a message to be included in the interrupt.

図14は割り込みに含めるメッセージの例を表した説明図である。図14の割り込みに含めるメッセージは、実際の割り込みの宛先であるVM2のVM_IDと、メッセージ本体とが指定されている。図14のメッセージ本体には、様々な情報が含まれる可能性があるが、図15のような情報が含まれるものとする。図15はメッセージ本体に含まれる情報の例を表した説明図である。図15のメッセージ本体に含まれる情報は、コマンド,引数1,引数2を指定するものである。   FIG. 14 is an explanatory diagram showing an example of a message included in an interrupt. In the message included in the interrupt of FIG. 14, the VM_ID of the VM 2 that is the actual interrupt destination and the message body are specified. The message body in FIG. 14 may include various types of information, but it is assumed that information as illustrated in FIG. 15 is included. FIG. 15 is an explanatory diagram showing an example of information included in the message body. The information included in the message body in FIG. 15 specifies a command, argument 1, and argument 2.

具体的に、図15のメッセージ本体に含まれる情報は、ファイル削除を依頼するコマンドと、対象ファイルのディレクトリ名と、対象ファイル名とを指定することで、特定のパスのファイルの削除を依頼するものである。なお、図14及び図15では、割り込みに含めるメッセージ及びメッセージ本体に含まれる情報を表形式で表しているが、視覚的に理解し易く表したものである。実際の割り込みに含めるメッセージ及びメッセージ本体に含まれる情報は、例えばスペースで連結した文字列で表される。   Specifically, the information included in the message body of FIG. 15 requests deletion of a file of a specific path by specifying a command for requesting file deletion, a directory name of the target file, and a target file name. Is. In FIGS. 14 and 15, the message included in the interrupt and the information included in the message body are represented in a table format, but are represented in a visually easy-to-understand manner. The message included in the actual interruption and the information included in the message body are represented by, for example, a character string concatenated with a space.

ステップS109に進み、ハイパーバイザ20はVM1から制御VM30への割り込み送信依頼を受信し、単純アクセス制御設定テーブル24に保持されている単純アクセス制御設定に基づいて、VM1から制御VM30への割り込みが許可されているかをチェックする。VM1から制御VM30への割り込みが許可されていれば、ハイパーバイザ20はステップS110に進み、VM1からの割り込みを制御VM30に送信する。   In step S109, the hypervisor 20 receives an interrupt transmission request from the VM 1 to the control VM 30, and permits an interrupt from the VM 1 to the control VM 30 based on the simple access control setting held in the simple access control setting table 24. Check if it is. If the interrupt from the VM 1 to the control VM 30 is permitted, the hypervisor 20 proceeds to step S110 and transmits the interrupt from the VM 1 to the control VM 30.

一方、VM1から制御VM30への割り込みが許可されていなければ、不正な割り込み送信依頼であるため、ハイパーバイザ20はステップS111に進み、VM1にエラーを返して異常終了する。   On the other hand, if the interrupt from the VM 1 to the control VM 30 is not permitted, it is an illegal interrupt transmission request, so the hypervisor 20 proceeds to step S111, returns an error to the VM 1, and terminates abnormally.

ステップS110に続いてステップS112に進み、制御VM30はVM1からの割り込みをハイパーバイザ20から受信する。ステップS113に進み、制御VM30は高度アクセス制御設定テーブル34に保持されている高度アクセス制御設定に基づいて、VM1からVM2への割り込みが許可されているかをチェックする。   Progressing to step S112 following step S110, the control VM 30 receives an interrupt from the VM 1 from the hypervisor 20. In step S113, the control VM 30 checks whether interruption from VM1 to VM2 is permitted based on the advanced access control setting stored in the advanced access control setting table 34.

制御VM30は高度アクセス制御設定を予め高度アクセス制御設定テーブル34に保持しているものとする。図16は高度アクセス制御設定の例を表した説明図である。図16の高度アクセス制御設定は、宛先VM,コマンド,引数1,引数2を指定する。制御VM30は、図15に示したメッセージ本体に含まれる情報が、図16の高度アクセス制御設定に一致するとき、VM1からVM2への割り込みが許可されていると判断する。図16の高度アクセス制御設定は、VM2への割り込みが、引数1で指定された特定のディレクトリの配下のファイルについてファイルの削除の依頼であるときに、VM1からVM2への割り込みを許可するものである。つまり、制御VM30は図15に示すメッセージ本体を参照し、高度アクセス制御設定に基づき、高度アクセス制御を行う。   It is assumed that the control VM 30 holds advanced access control settings in the advanced access control setting table 34 in advance. FIG. 16 is an explanatory diagram showing an example of advanced access control setting. The advanced access control setting in FIG. 16 specifies the destination VM, command, argument 1, and argument 2. The control VM 30 determines that the interruption from the VM 1 to the VM 2 is permitted when the information included in the message body shown in FIG. 15 matches the advanced access control setting of FIG. The advanced access control setting in FIG. 16 permits an interruption from VM1 to VM2 when the interruption to VM2 is a request for file deletion for a file under a specific directory specified by argument 1. is there. That is, the control VM 30 refers to the message body shown in FIG. 15 and performs advanced access control based on the advanced access control setting.

具体的に、制御VM30は、VM1から送信された割り込みに含まれる図14のようなメッセージを読み込み、メッセージに指定されている実際の割り込みの宛先であるVM2のVM_IDを取り出す。次に、制御VM30はメッセージに指定されているメッセージ本体を取り出す。   Specifically, the control VM 30 reads a message as illustrated in FIG. 14 included in the interrupt transmitted from the VM 1 and extracts the VM_ID of the VM 2 that is the actual interrupt destination specified in the message. Next, the control VM 30 takes out the message body specified in the message.

そして、制御VM30は取り出した図15のメッセージ本体を参照し、図16の高度アクセス制御設定に基づき、VM1からVM2への割り込みが許可されているかをチェックする。図15及び図16は、VM1からVM2への割り込みが許可されている例を表している。ここでは比較的簡単な高度アクセス制御を制御VM30が行う例を示したが、より複雑な高度アクセス制御を制御VM30が行うことも可能である。   Then, the control VM 30 refers to the extracted message body of FIG. 15 and checks whether an interrupt from VM1 to VM2 is permitted based on the advanced access control setting of FIG. 15 and 16 show an example in which an interrupt from VM1 to VM2 is permitted. Here, an example is shown in which the control VM 30 performs relatively simple advanced access control, but the control VM 30 can also perform more complex advanced access control.

VM1からVM2への割り込みが許可されていれば、制御VM30はステップS114に進み、図14のメッセージ本体を読み込み、読み込んだメッセージ本体を割り込みに含めるメッセージとし、ハイパーバイザ20に実際の割り込みの宛先であるVM2への割り込みを依頼する。   If the interrupt from VM1 to VM2 is permitted, the control VM 30 proceeds to step S114, reads the message body of FIG. Request an interrupt to a certain VM2.

一方、VM1からVM2への割り込みが許可されていなければ、不正な割り込み送信依頼であるため、制御VM30はステップS115に進み、VM1にエラーを返して異常終了する。   On the other hand, if the interrupt from VM1 to VM2 is not permitted, it is an illegal interrupt transmission request, so the control VM30 proceeds to step S115, returns an error to VM1, and terminates abnormally.

ステップS114に続いてステップS116に進み、ハイパーバイザ20は、制御VM30からVM2への割り込み送信依頼を受信し、単純アクセス制御設定テーブル24に保持されている単純アクセス制御設定に基づいて、制御VM30からVM2への割り込みが許可されているかをチェックする。制御VM30からVM2への割り込みが許可されていれば、ハイパーバイザ20はステップS117に進み、制御VM30からの割り込みをVM2に送信する。   Progressing to step S116 following step S114, the hypervisor 20 receives an interrupt transmission request from the control VM 30 to the VM 2, and from the control VM 30 based on the simple access control setting held in the simple access control setting table 24. Check if interrupt to VM2 is enabled. If the interrupt from the control VM 30 to the VM 2 is permitted, the hypervisor 20 proceeds to step S117 and transmits the interrupt from the control VM 30 to the VM 2.

一方、制御VM30からVM2への割り込みが許可されていなければ、不正な割り込み送信依頼であるため、ハイパーバイザ20はステップS118に進み、VM1にエラーを返して異常終了する。   On the other hand, if the interrupt from the control VM 30 to the VM 2 is not permitted, it is an illegal interrupt transmission request, so the hypervisor 20 proceeds to step S118, returns an error to the VM 1, and ends abnormally.

ステップS117に続いてステップS119に進み、VM2は制御VM30からの割り込みをハイパーバイザ20から受信し、必要な処理を実施する。必要な処理はVM2の本体処理部42で行われるものとする。本体処理部42は割り込みに含まれるメッセージを取り出し、メッセージの内容に従って処理を行う。   Progressing to step S119 following step S117, the VM 2 receives an interrupt from the control VM 30 from the hypervisor 20 and performs necessary processing. It is assumed that necessary processing is performed by the main body processing unit 42 of the VM 2. The main body processing unit 42 extracts a message included in the interrupt and performs processing according to the content of the message.

図15のメッセージ本体の場合、メッセージの内容は特定のパスのファイルの削除を依頼するものとなる。したがって、VM2の本体処理部42は特定のパスのファイルの削除を行う。この際、メッセージの内容によっては、VM1と共有している共有メモリ47を経由してデータのやり取りを行う場合も考えられる。VM2は制御VM30からの割り込みをハイパーバイザ20から受信し、必要な処理を実施したあと、正常終了する。   In the case of the message body shown in FIG. 15, the content of the message is a request to delete a file of a specific path. Therefore, the main body processing unit 42 of the VM 2 deletes a file with a specific path. At this time, depending on the content of the message, data may be exchanged via the shared memory 47 shared with the VM 1. The VM 2 receives the interrupt from the control VM 30 from the hypervisor 20, performs necessary processing, and then ends normally.

以上、本実施例によれば、ハイパーバイザ20が高度アクセス制御の機能を持たない場合でも、制御VM30を各VMの間に挿入することにより、個別高度アクセス制御に比べて柔軟な高度アクセス制御を行うことができる。   As described above, according to the present embodiment, even when the hypervisor 20 does not have the function of advanced access control, by inserting the control VM 30 between the VMs, flexible advanced access control can be performed compared to individual advanced access control. It can be carried out.

特に、組み込み分野で使用されるようなハイパーバイザ20は計算能力やメモリ容量の制限のため、最低限の機能だけが実施され、高度アクセス制御のような機能が実装されないことが考えられる。このため、組み込み分野で使用されるようなハイパーバイザ20は本実施例により得られる効果が大きい。   In particular, it is conceivable that the hypervisor 20 used in the embedded field is subjected to only a minimum function and is not equipped with a function such as advanced access control due to limitations on calculation capacity and memory capacity. For this reason, the hypervisor 20 used in the embedded field has a great effect obtained by this embodiment.

また、本実施例はVM間割り込みを制御の対象とするものであり、VM間の共有メモリを制御の対象とする必要がない。一般的に、VM間通信ではVM間割り込みを制御すれば必要な高度アクセス制御を実現できる。VM間の共有メモリを制御の対象とすると、VM間通信では場合によってメモリのコピーなどが発生し、大きなオーバーヘッドとなる恐れがある。   In this embodiment, an inter-VM interrupt is a control target, and it is not necessary to control a shared memory between VMs. Generally, in the communication between VMs, necessary advanced access control can be realized by controlling the interruption between VMs. If the shared memory between VMs is the target of control, memory copy may occur in the communication between VMs in some cases, which may cause a large overhead.

一方、VM間割り込みの制御は、割り込みを転送するために割り込みの回数が2倍になるが、VM間割り込み自体のオーバーヘッドが充分に小さいため、大きなオーバーヘッドにならない。本実施例では、VM間割り込みを制御の対象とし、VM間の共有メモリを制御の対象としないことにより、オーバーヘヘッドを少なくし、かつ、必要な高度アクセス制御を行うことができる。   On the other hand, in the control of the inter-VM interrupt, the number of interrupts is doubled to transfer the interrupt, but the overhead of the inter-VM interrupt itself is sufficiently small, so it does not become a large overhead. In this embodiment, since the inter-VM interrupt is a control target and the shared memory between the VMs is not a control target, overhead can be reduced and necessary advanced access control can be performed.

以上のように、本実施例では仮想化環境において、VMの数が増大した場合に複雑になるVM間のアクセス制御を効率化する。本実施例では複数のVMでなく一つの制御VM30で高度アクセス制御を行う為、高度アクセス制御を柔軟に行うことができる。本実施例では、ハイパーバイザ20でなく制御VM30で高度アクセス制御を行う為、ハイパーバイザ20が高度アクセス制御の機能を持たない場合であっても高度アクセス制御を容易に行うことができる。本実施例によれば、VM間の通信を容易且つ柔軟に制御できる。   As described above, in this embodiment, access control between VMs that becomes complicated when the number of VMs increases in a virtual environment is made efficient. In this embodiment, advanced access control is performed by a single control VM 30 instead of a plurality of VMs, so that advanced access control can be flexibly performed. In this embodiment, advanced access control is performed not by the hypervisor 20, but by the control VM 30, so that advanced access control can be easily performed even when the hypervisor 20 does not have the advanced access control function. According to this embodiment, communication between VMs can be controlled easily and flexibly.

本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、特許請求の範囲に記載した制御仮想計算機プログラムがハイパーバイザ20に対応し、制御仮想計算機が制御VM30に対応し、仮想計算機がVM1〜nに対応する。   The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims. Note that the control virtual machine program described in the claims corresponds to the hypervisor 20, the control virtual machine corresponds to the control VM 30, and the virtual machines correspond to VM1 to VMn.

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 高度アクセス制御設定テーブル
1-n VM (general VM)
DESCRIPTION OF SYMBOLS 10 Hardware 11 Input device 12 Output device 13 Drive device 14 Auxiliary storage device 15 Main storage device 16 Arithmetic processing device 17 Interface device 18 Recording medium 20 Hypervisor 21 Interrupt reception unit 22 Simple access control unit 23 Interrupt transmission unit 24 Simple access control Setting table 25 Hook part 30 Control VM
31 Interrupt transmission unit 32 Advanced access control unit 33 Interrupt reception unit 34 Advanced access control setting table 41 Interrupt transmission unit 42 Main body processing unit 43 Advanced access control unit 44 Interrupt reception unit 45 Shared memory setting table 46 Advanced access control setting table 47, 48 Shared memory 50 Advanced access control module 51 Advanced access control unit 52 Advanced access control setting table

Claims (4)

コンピュータに他の仮想計算機を制御させる制御仮想計算機プログラムであって、
他の仮想計算機から、転送先である仮想計算機を指定した通信要求を受信する受信ステップと、
前記受信した通信要求に含まれるメッセージを、メッセージ内容とアクセスの可否を対応付けたアクセス制御ルールテーブルに基づいてアクセスの可否を判定する判定ステップと、
前記判定部により許可された通信を、前記転送先である仮想計算機に対して送信する送信ステップと、
をコンピュータに実行させる制御仮想計算機プログラム。
A control virtual machine program that causes a computer to control another virtual machine,
A receiving step for receiving a communication request designating a virtual machine as a transfer destination from another virtual machine;
A determination step of determining whether or not access is possible based on an access control rule table in which the message included in the received communication request is associated with whether or not the message content is accessible; and
A transmission step of transmitting communication permitted by the determination unit to the virtual machine that is the transfer destination;
Control virtual machine program that causes a computer to execute.
請求項1の制御仮想計算機プログラムを実行して制御仮想計算機を起動する制御仮想計算機実行ステップと、
所定の仮想計算機プログラムを実行して仮想計算機を起動する仮想計算機実行ステップと、
前記仮想計算機または前記制御仮想計算機による通信要求を監視し、仮想計算機と制御仮想計算機との間の通信のみを許可する監視ステップと、
をコンピュータに実行させるハイパーバイザプログラム。
A control virtual machine execution step of starting the control virtual machine by executing the control virtual machine program of claim 1;
A virtual machine execution step of starting a virtual machine by executing a predetermined virtual machine program;
A monitoring step of monitoring a communication request by the virtual machine or the control virtual machine and permitting only communication between the virtual machine and the control virtual machine;
A hypervisor program that causes a computer to execute.
コンピュータによって実行される制御仮想計算機制御方法であって、
前記コンピュータが、
他の仮想計算機から、転送先である仮想計算機を指定した通信要求を受信する受信ステップと、
前記受信した通信要求に含まれるメッセージを、メッセージ内容とアクセスの可否を対応付けたアクセス制御ルールテーブルに基づいてアクセスの可否を判定する判定ステップと、
前記判定部により許可された通信を、前記転送先である仮想計算機に対して送信する送信ステップと、
を実行する制御仮想計算機制御方法。
A control virtual computer control method executed by a computer,
The computer is
A receiving step for receiving a communication request designating a virtual machine as a transfer destination from another virtual machine;
A determination step of determining whether or not access is possible based on an access control rule table in which the message included in the received communication request is associated with whether or not the message content is accessible; and
A transmission step of transmitting communication permitted by the determination unit to the virtual machine that is the transfer destination;
Control virtual machine control method to execute.
コンピュータによって実行される仮想計算機制御方法であって、
前記コンピュータが、
請求項1の制御仮想計算機プログラムを実行して制御仮想計算機を起動する制御仮想計算機実行ステップと、
所定の仮想計算機プログラムを実行して仮想計算機を起動する仮想計算機実行ステップと、
前記仮想計算機または前記制御仮想計算機による通信要求を監視し、仮想計算機と制御仮想計算機との間の通信のみを許可する監視ステップと、
を実行する仮想計算機制御方法。
A virtual machine control method executed by a computer,
The computer is
A control virtual machine execution step of starting the control virtual machine by executing the control virtual machine program of claim 1;
A virtual machine execution step of starting a virtual machine by executing a predetermined virtual machine program;
A monitoring step of monitoring a communication request by the virtual machine or the control virtual machine and permitting only communication between the virtual machine and the control virtual machine;
Virtual machine control method for executing.
JP2009222527A 2009-09-28 2009-09-28 Program and communication control method Expired - Fee Related JP5532793B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009222527A JP5532793B2 (en) 2009-09-28 2009-09-28 Program and communication control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009222527A JP5532793B2 (en) 2009-09-28 2009-09-28 Program and communication control method

Publications (2)

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

Family

ID=44015733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009222527A Expired - Fee Related JP5532793B2 (en) 2009-09-28 2009-09-28 Program and communication control method

Country Status (1)

Country Link
JP (1) JP5532793B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211339A (en) * 2009-03-09 2010-09-24 Mitsubishi Electric Corp Virtual computer system, communication control program of the same, and communication control method of the same
JP2014016672A (en) * 2012-07-05 2014-01-30 Fujitsu Ltd Computer program, management server and communication system
US9032401B2 (en) 2011-05-16 2015-05-12 Panasonic Intellectual Property Corporation Of America Virtual computer system having a first virtual computer that executes a protected process, a second virtual computer that executes an unprotected process, and a hypervisor that controls the first and second virtual computers
JP2016009486A (en) * 2014-06-23 2016-01-18 インテル コーポレイション Local service chaining with virtual machines and virtualized containers in software defined networking
JP2017507401A (en) * 2014-01-06 2017-03-16 ジョンソン コントロールズ テクノロジー カンパニーJohnson Controls Technology Company Vehicle having multiple user interface operating domains
JP2018129022A (en) * 2017-02-09 2018-08-16 キーランド テクノロジー シーオー., エルティーディー. Heterogeneous field device control management system based on industrial Internet operating system
JP7451438B2 (en) 2021-01-22 2024-03-18 株式会社東芝 Communication devices, communication systems, notification methods and programs

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002544620A (en) * 1999-05-19 2002-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション Event-driven communication interface for logically partitioned computers
JP2007213465A (en) * 2006-02-13 2007-08-23 Hitachi Ltd Method of controlling computer, program, and virtual computer system
JP2007233704A (en) * 2006-03-01 2007-09-13 Nec Corp Information processor and information processing system using virtual machine and access control method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002544620A (en) * 1999-05-19 2002-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション Event-driven communication interface for logically partitioned computers
JP2007213465A (en) * 2006-02-13 2007-08-23 Hitachi Ltd Method of controlling computer, program, and virtual computer system
JP2007233704A (en) * 2006-03-01 2007-09-13 Nec Corp Information processor and information processing system using virtual machine and access control method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211339A (en) * 2009-03-09 2010-09-24 Mitsubishi Electric Corp Virtual computer system, communication control program of the same, and communication control method of the same
US9032401B2 (en) 2011-05-16 2015-05-12 Panasonic Intellectual Property Corporation Of America Virtual computer system having a first virtual computer that executes a protected process, a second virtual computer that executes an unprotected process, and a hypervisor that controls the first and second virtual computers
JP2014016672A (en) * 2012-07-05 2014-01-30 Fujitsu Ltd Computer program, management server and communication system
JP2017507401A (en) * 2014-01-06 2017-03-16 ジョンソン コントロールズ テクノロジー カンパニーJohnson Controls Technology Company Vehicle having multiple user interface operating domains
JP2016009486A (en) * 2014-06-23 2016-01-18 インテル コーポレイション Local service chaining with virtual machines and virtualized containers in software defined networking
US10261814B2 (en) 2014-06-23 2019-04-16 Intel Corporation Local service chaining with virtual machines and virtualized containers in software defined networking
JP2018129022A (en) * 2017-02-09 2018-08-16 キーランド テクノロジー シーオー., エルティーディー. Heterogeneous field device control management system based on industrial Internet operating system
JP7451438B2 (en) 2021-01-22 2024-03-18 株式会社東芝 Communication devices, communication systems, notification methods and programs

Also Published As

Publication number Publication date
JP5532793B2 (en) 2014-06-25

Similar Documents

Publication Publication Date Title
JP5532793B2 (en) Program and communication control method
EP3281146B1 (en) Isolating guest code and data using multiple nested page tables
JP5122597B2 (en) Sending interrupts directly to the virtual processor
JP5981845B2 (en) Virtual computer system, virtual computer control method, virtual computer control program, and semiconductor integrated circuit
US9965304B2 (en) Delayed hardware upgrades in virtualization systems
TWI588751B (en) Computer host with a baseboard management controller to manage virtual machines and method thereof
WO2018153027A1 (en) Method and device for data migration
KR20180099682A (en) Systems and Methods for Virtual Machine Auditing
CN107924325B (en) Apparatus and method for multi-level virtualization
JP2010033404A (en) Virtual machine system and method for controlling virtual machine system
US20110126195A1 (en) Zero copy transmission in virtualization environment
JPH10283210A (en) Virtual machine movement control system between virtual machine systems
CN1936845A (en) Method and apparatus for dynamic distribution of virtual machine system input-output apparatus
JP2012078893A (en) Computer system and management computer
EP3701373B1 (en) Virtualization operations for directly assigned devices
Gebhardt et al. Challenges for inter virtual machine communication
US10261921B2 (en) Universal secure platform virtualization system and method thereof
Kolhe et al. Comparative study on Virtual Machine Monitors for cloud
JP5398309B2 (en) Virtual computer system, virtual computer system communication control program, and virtual computer system communication control method
US11513825B2 (en) System and method for implementing trusted execution environment on PCI device
CN116069584A (en) Extending monitoring services into trusted cloud operator domains
Im et al. On-demand virtualization for live migration in bare metal cloud
EP3651052A1 (en) Secure use of dual networks
US10152341B2 (en) Hyper-threading based host-guest communication
JP2016181091A (en) Information management apparatus, information management method, information management program, data structure, and software asset management system

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