JP5468490B2 - Method and computer for accessing disk drive in computer with virtualized environment - Google Patents
Method and computer for accessing disk drive in computer with virtualized environment Download PDFInfo
- Publication number
- JP5468490B2 JP5468490B2 JP2010178219A JP2010178219A JP5468490B2 JP 5468490 B2 JP5468490 B2 JP 5468490B2 JP 2010178219 A JP2010178219 A JP 2010178219A JP 2010178219 A JP2010178219 A JP 2010178219A JP 5468490 B2 JP5468490 B2 JP 5468490B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- area
- virtualization
- specific area
- virtual
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 85
- 230000008569 process Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims 4
- 230000006870 function Effects 0.000 description 15
- 238000012005 ligant binding assay Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 230000007704 transition Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Description
本発明は、仮想マシンからディスク・ドライブにアクセスする際のオーバーヘッドを低減する技術に関し、さらに詳細にはディスク・ドライブに記録されたデータの安全性を確保しながらオーバーヘッドを低減する技術に関する。 The present invention relates to a technique for reducing overhead when accessing a disk drive from a virtual machine, and more particularly to a technique for reducing overhead while ensuring the safety of data recorded in a disk drive.
クライアントやサーバなどのコンピュータには、過去のオペレーティング・システム(OS)やアプリケーション・プログラム(アプリケーション)を、互換性のない新しいハードウエアの上で動作させたり、ハードウエア・リソースを有効に活用したり、あるいは複数のOSを同時に動作させたりすることを目的として仮想化技術を導入する場合がある。仮想化技術には、OSの上で仮想化プログラムが動作するホストOS型、あるいは仮想化プログラムがハードウエアの上で直接動作するハイパーバイザ型といわれるものがある。 For computers such as clients and servers, past operating systems (OS) and application programs (applications) can be operated on new incompatible hardware, and hardware resources can be used effectively. In some cases, virtualization technology is introduced for the purpose of operating a plurality of OSs simultaneously. The virtualization technology includes a host OS type in which a virtualization program operates on an OS, or a hypervisor type in which a virtualization program directly operates on hardware.
いずれの場合も、仮想化プログラムの上では複数の仮想マシンが動作することができる。アプリケーション、ゲストOS、デバイス・ドライバといったソフトウエアで構成された仮想マシンは、仮想化プログラムが提供する仮想ハードウエアに対してアクセスすることで実際のハードウエアから分離された状態で動作する。仮想マシンを構成するOSをゲストOSという。また、ハイパーバイザ型の中には、ゲストOSに対して完全なハードウエア仮想化環境を提供する完全仮想化と、ゲストOSに修正を加えて仮想化環境に適応させる準仮想化といった方法がある。 In either case, a plurality of virtual machines can operate on the virtualization program. A virtual machine configured by software such as an application, a guest OS, and a device driver operates in a state separated from actual hardware by accessing virtual hardware provided by a virtualization program. The OS constituting the virtual machine is called a guest OS. In addition, in the hypervisor type, there are methods such as full virtualization that provides a complete hardware virtualization environment for the guest OS, and paravirtualization that modifies the guest OS and adapts it to the virtualization environment. .
このように仮想化環境の実現モデルにはさまざまあるが、いずれの場合でも、ゲストOSがハードウエアにアクセスする際には、仮想化プログラムが介在する分だけ余分なオーバーヘッドが生ずる。オーバーヘッドの原因としては、中央演算装置(CPU)、メイン・メモリ、ディスク・ドライブ、またはネットワーク・カードなどのハードウエアをソフトウエアでエミュレーションする処理や、ゲストOSと仮想化プログラムの間で動作を切り換える際に発生するコンテキスト・スイッチングなどを挙げることができる。ハードディスク・ディスク・ドライブ(HDD)に対するI/Oリクエストの際には、仮想ドライブと実際のドライブのアドレスをマッピングするためにオーバーヘッドが発生する。 As described above, there are various virtual environment implementation models, but in any case, when the guest OS accesses the hardware, an extra overhead is generated by the intervention of the virtual program. Causes of overhead include processing to emulate hardware such as a central processing unit (CPU), main memory, disk drive, or network card with software, and switching operation between the guest OS and the virtualization program Context switching that occurs at the time. When an I / O request is made to a hard disk drive (HDD), overhead is generated to map the addresses of the virtual drive and the actual drive.
特許文献1は、VMM(Virtual Machine Monitor)によりI/Oデバイスの動作をエミュレーションにより実現するエミュレーション方式と、仮想マシン上で動作するOSへ実際のI/Oデバイスを割り当てて直接的にアクセスさせる直接I/O方式とを切り換える技術を開示する。直接I/O方式では、OSから直接的にI/Oデバイスへの入出力が行なえるので、高速で且つ信頼性の高い処理を行なうことができるが各OSによってI/Oデバイスが占有されるので、仮想化技術により1つのホストマシンで複数のOSが実行可能であっても、その数に応じてI/Oデバイスが必要となり非効率的であることが記載されている。
特許文献2は、ハードディスク・ドライブと磁気テープ・ドライブからなる記憶装置において、ハードディスクの一部にキャッシュ領域を設けることで効率よくファイルを保存する技術を開示する。非特許文献1は、指定したゲストOSに対してデバイスの分離を実現し、分離されたデバイスを当該指定されたゲストOSだけが使用できるようにすることで仮想化環境のオーバーヘッドを低減するデバイス・パススルーという技術を開示する。デバイス・パススルーは、デバイスを複数のゲストOSおよび仮想化プログラムの間で共有する必要がない場合や、共有できないデバイスに適用することができる。
仮想化環境においてゲストOSがHDDやフラッシュSSD(Flash Solid State Drive)にアクセスする際には上述のようにオーバーヘッドが生ずる。また、パーソナル・コンピュータで仮想化環境を実現する際には、1台のハードウエアを仮想化プログラムおよび複数のゲストOSで共有することが一般的である。仮想化環境では、ゲストOSが仮想化プログラムに対して、非仮想化環境におけるOS上のアプリケーションのように動作する。CPUには、リング・プロテクション機構により特権レベルを設定することができる。 When a guest OS accesses an HDD or a flash SSD (Flash Solid State Drive) in a virtual environment, overhead occurs as described above. When a virtual environment is realized by a personal computer, it is common to share one piece of hardware between a virtualization program and a plurality of guest OSs. In the virtual environment, the guest OS operates like an application on the OS in the non-virtualized environment with respect to the virtual program. A privilege level can be set for the CPU by a ring protection mechanism.
仮想化プログラムの上で複数のゲストOSが動作するような場合には、各ゲストOSは対等な関係になるので特定のゲストOSに自由にハードウエアを専有させることはできない。また、特定のゲストOSが直接HDDにアクセスできるようにした場合には、ゲストOS間の分離が行われなくなってしまうので安全上の問題が生ずる。したがって仮想化環境では、基本的に仮想化プログラムに最大の特権レベルを与えてハードウエアへのアクセスを許可し、ゲストOSは仮想化プログラムを介してハードウエアにアクセスするようにしている。したがって、複数の仮想マシンのプログラムを記録したHDDには、特許文献1の直接I/O方式や非特許文献1のデバイス・パススルーを適用してゲストOSが直接アクセスすることはできない。
When a plurality of guest OSs operate on the virtualization program, the guest OSs are in an equal relationship, and thus the specific guest OS cannot freely occupy hardware. Further, when a specific guest OS can directly access the HDD, there is a safety problem because the guest OSs are not separated. Therefore, in the virtual environment, the maximum privilege level is basically given to the virtualization program to permit access to the hardware, and the guest OS accesses the hardware via the virtualization program. Therefore, the guest OS cannot be directly accessed by applying the direct I / O method of
そこで、本発明の目的は、仮想化環境からディスク・ドライブにアクセス際のオーバーヘッドを低減することができるコンピュータを提供することにある。さらに本発明の目的は、仮想化プログラムとゲストOSを格納するディスク・ドライブに安全性を確保しながらアクセスすることができるコンピュータを提供することにある。さらに本発明の目的は、そのようなコンピュータを実現するコンピュータ・プログラムおよびディスク・ドライブへのアクセス方法を提供することにある。 Accordingly, an object of the present invention is to provide a computer capable of reducing overhead when accessing a disk drive from a virtual environment. It is another object of the present invention to provide a computer that can access a disk drive storing a virtualization program and a guest OS while ensuring safety. A further object of the present invention is to provide a computer program for realizing such a computer and a method for accessing a disk drive.
仮想化環境では、ディスク・ドライブに対するアクセスは、仮想化プログラムが仮想マシンに提供する仮想ディスク・ドライブに対して行われる。仮想化プログラムは、仮想ディスク・ドライブのアドレスを実際のディスク・ドライブのアドレスにマッピングする。よってディスク・ドライブへのアクセスには仮想プログラムの動作が伴うため、仮想マシンから仮想化プログラムへのコンテキスト・スイッチングおよびアドレス・マッピングのオーバーヘッドが発生する。 In the virtual environment, access to the disk drive is performed on the virtual disk drive provided to the virtual machine by the virtualization program. The virtualization program maps the virtual disk drive address to the actual disk drive address. Therefore, since access to the disk drive is accompanied by the operation of the virtual program, overhead of context switching and address mapping from the virtual machine to the virtualized program occurs.
本発明にかかるコンピュータは、仮想マシンがディスク・ドライブに直接アクセスすることができるようにして、仮想化環境のもとでディスク・ドライブに対してアクセスする際に固有に発生するオーバーヘッドを排除する。ディスク・ドライブは、コンピュータとネットワークを経由して接続されていてもよい。また、本発明におけるディスク・ドライブの形式は特に限定する必要はなく一例ではHDDまたはSSDとすることができる。 The computer according to the present invention allows a virtual machine to directly access a disk drive, eliminating the overhead inherent in accessing the disk drive under a virtualized environment. The disk drive may be connected to the computer via a network. Further, the format of the disk drive in the present invention is not particularly limited, and may be HDD or SSD in one example.
本発明では、ディスク・ドライブに仮想マシンがアクセスすることができる特定領域と仮想マシンがアクセスすることができない仮想化領域を設定する。特定領域は、CPUやメイン・メモリなどのようなハードウエアの動作速度の差を吸収するキャッシュとは異なり、ソフトウエアのレイヤにおけるオーバーヘッドを除去する目的で設定する。仮想化領域は、ディスク・ドライブが仮想化環境のために提供する記憶領域で仮想マシンや仮想化プログラムが記録される。アプリケーションまたはゲストOSのプロセスが仮想化領域に対するI/Oリクエストを開始する。ゲストOSはI/Oリクエストが仮想化領域にデータを書き込むライト・アクセスであると判断したときに書き込みデータを特定領域に書き込む。 In the present invention, a specific area that the virtual machine can access to the disk drive and a virtualization area that the virtual machine cannot access are set. The specific area is set for the purpose of removing overhead in the software layer, unlike a cache that absorbs the difference in operating speed of hardware such as a CPU and a main memory. The virtualization area is a storage area provided by the disk drive for the virtualization environment, and a virtual machine and a virtualization program are recorded therein. An application or guest OS process initiates an I / O request to the virtualized area. When the guest OS determines that the I / O request is a write access for writing data to the virtualization area, the guest OS writes the write data to the specific area.
よって、ディスク・ドライブに対するライト・アクセスの際に仮想化プログラムの動作により発生するオーバーヘッドを排除することができる。コンピュータはゲストOSがディスク・ドライブにI/Oリクエストをする際に、仮想マシンの動作と仮想化プログラムの動作の間で遷移する。仮想マシンが動作している間は仮想マシンが特定領域だけにアクセス可能になるように設定し、仮想化プログラムが動作している間は特定領域と仮想化領域にアクセスが可能になるようにダイナミックに設定することができる。 Therefore, it is possible to eliminate the overhead generated by the operation of the virtualization program at the time of write access to the disk drive. The computer transitions between the operation of the virtual machine and the operation of the virtualization program when the guest OS makes an I / O request to the disk drive. Set so that the virtual machine can access only a specific area while the virtual machine is running, and dynamically so that the specific area and the virtual area can be accessed while the virtualization program is running Can be set to
特定領域は、仮想化プログラムがATAのSet max addressコマンドを実行してディスク・コントローラのレジスタに設定することができる。Set max addressコマンドのパラメータはコンテキスト・スイッチングのタイミングでダイナミックに変更することができる。このように特定領域を設定することで、仮想マシンによるディスク・ドライブに対するI/Oリクエストを許容し、仮想マシンはアクセスの許可された特定領域にデータを書き込むことができるようになる。しかも、仮想マシンは仮想化領域にはアクセスすることができないので、仮想化領域に記録されたデータの安全性は保証される。 The specific area can be set in the register of the disk controller by the virtualization program executing the ATA Set max address command. The parameter of the Set max address command can be changed dynamically at the timing of context switching. By setting the specific area in this way, the virtual machine can accept an I / O request to the disk drive, and the virtual machine can write data to the specific area permitted to be accessed. In addition, since the virtual machine cannot access the virtualization area, the security of the data recorded in the virtualization area is guaranteed.
このとき、仮想化プログラムがみずからパスワードを生成してSet max addressコマンドの設定変更にパスワードを要求することも可能である。複数の仮想マシンが時分割で動作する場合には、特定領域を複数の論理ブロックに分割して複数の仮想マシンにそれぞれ専用に割り当てることもできる。特定領域を使用する仮想マシンを交換したり、特定領域の記憶容量が不足してきたりした場合には、ライト・アクセスと非同期で仮想化領域を特定領域に記録されたデータで更新し、特定領域に記憶容量を確保することができる。更新をアイドル時間やシャット・ダウンのタイミングで行えば、ユーザに更新のオーバーヘッドをほとんど感じさせないようにすることができる。更新を仮想化プログラムが実行すれば、更新処理に発生するコンテキスト・スイッチングによるオーバーヘッドを低減することができる。 At this time, it is also possible for the virtualization program to generate a password and request the password to change the setting of the Set max address command. When a plurality of virtual machines operate in a time-sharing manner, the specific area can be divided into a plurality of logical blocks and dedicated to a plurality of virtual machines. When a virtual machine that uses a specific area is replaced or when the storage capacity of the specific area is insufficient, the virtual area is updated with the data recorded in the specific area asynchronously with write access, and the specific area is updated. Storage capacity can be secured. If the update is performed at idle time or shut-down timing, it is possible to make the user hardly feel the update overhead. If the virtualization program executes the update, the overhead due to context switching that occurs in the update process can be reduced.
リード・アクセスの場合に、読み取りデータがすでに特定領域に記録されていると判断したときには仮想マシンは特定領域からデータを読み取ることができる。よって、リード・アクセス時も仮想化プログラムの動作によるオーバーヘッドを低減することができる。また読み取りデータが特定領域に記録されていないと判断したときには、仮想マシンは通常の手順で仮想化領域から読み取ることができる。 In the case of read access, when it is determined that the read data is already recorded in the specific area, the virtual machine can read the data from the specific area. Therefore, the overhead due to the operation of the virtualization program can be reduced even during read access. Further, when it is determined that the read data is not recorded in the specific area, the virtual machine can read from the virtual area by a normal procedure.
仮想化領域からの読み取りにはオーバーヘッドが発生する。しかも読み取ったデータは近い将来に再度読み取られる可能性が高い。一度読み取ったデータに対するリード・アクセスが再度行われたときのために、読み取りのアクセスとは非同期で読み取ったデータを特定領域に記録することができる。ディスク・ドライブの台数は1台に限定するものではなく、本発明はRAIDのような複数のディスク・ドライブで1台の仮想的なディスク・ドライブを構成するような場合にも適用することができる。 An overhead occurs when reading from the virtualization area. In addition, the read data is likely to be read again in the near future. Since the read access to the data once read is performed again, the read data can be recorded in the specific area asynchronously with the read access. The number of disk drives is not limited to one, and the present invention can also be applied to a case where a single virtual disk drive is configured by a plurality of disk drives such as RAID. .
本発明により、仮想化環境からディスク・ドライブにアクセス際のオーバーヘッドを低減することができるコンピュータを提供することができた。さらに本発明により、仮想化プログラムとゲストOSを格納するディスク・ドライブに安全性を確保しながらアクセスすることができるコンピュータを提供することができた。さらに本発明により、そのようなコンピュータを実現するコンピュータ・プログラムおよびディスク・ドライブへのアクセス方法を提供することができた。 According to the present invention, it is possible to provide a computer capable of reducing overhead in accessing a disk drive from a virtual environment. Further, according to the present invention, it is possible to provide a computer that can access a disk drive storing a virtualization program and a guest OS while ensuring safety. Further, according to the present invention, it is possible to provide a computer program for realizing such a computer and a method for accessing a disk drive.
[仮想化環境]
図1は、所定のプログラムが実行されて仮想化環境が実現されているコンピュータ10のソフトウエアおよびハードウエアの構成を示す図である。図1では、いわゆるタイプ1といわれるハイパーバイザ型の仮想化モデルを例示して説明するが、本発明は、ホストOS型の仮想化モデルに適用することもできる。コンピュータ10は、ハードウエア19として代表的にCPU21、メイン・メモリ23、HDD25およびシステムとHDD25の間のインターフェースとなるIDEコントローラ26を含んでいる。本発明におけるハードウエアの構成は周知である。ハードウエア19上では直接ハイパーバイザまたはVMMといわれる仮想化プログラム17が動作する。
[Virtualized environment]
FIG. 1 is a diagram illustrating a software and hardware configuration of a computer 10 in which a predetermined program is executed to realize a virtual environment. In FIG. 1, a hypervisor type virtualization model referred to as a so-called
仮想化プログラム17のレイヤの上では、複数の仮想マシン11、13、15が時分割で動作することができる。あるいは、選択したいずれか1つの仮想マシンだけが、動作することができる。各仮想マシン11、13、15は、アプリケーション73、75、77、ゲストOS67、69、71、および仮想ハードウエア61、63、65といったソフトウエアで構成されている。仮想化プログラム17は、CPU21、メイン・メモリ23、HDD25およびIDEコントローラ26などのハードウエアをエミュレートして、各仮想マシン11、13、15に各ハードウエアに対応した仮想ハードウエア61、63、65を提供する。
On the layer of the
この例では仮想ハードウエア61、63、65はそれぞれハードウエア19の構成要素に対応して、仮想CPU、仮想メイン・メモリ、仮想HDD、および仮想IDEコントローラを含むことになる。ゲストOS67、69、71および仮想化プログラム17は、各仮想マシン11、13、15がHDD25にアクセスする際に、仮想化プログラム17が介在することにより発生するオーバーヘッドを低減するためのモジュールを含んでいる。なお、仮想マシン11、13、15を構成するプログラムおよび仮想化プログラム17はCPU21およびメイン・メモリ23などで実行されることにより、コンピュータ10に所定の機能を発揮させるハードウエアの要素として捕らえることもできる。
In this example, the
[オーバーヘッド低減の基本原理]
図2は、本実施の形態により仮想マシン11、13、15がHDD25にアクセスする際のオーバーヘッドを低減する原理を説明する図である。ゲストOS67、69、71は、仮想HDD61、63、65が提供するファイル・パスを仮想インターフェースとしてHDD25にアクセスする。ハイパーバイザ方式には完全仮想化(Full-Virtualization)と準仮想化(Para-Virtualization)という2つの方式がある。完全仮想化方式では、仮想化プログラム17が完全な仮想化環境を構築するためゲストOS67、69、71は仮想化環境に対応するための修正をする必要がない。そして仮想プログラム17が最大の特権レベルで動作し各ゲストOSはそれよりも低い特権レベルで動作する。
[Basic principle of overhead reduction]
FIG. 2 is a diagram for explaining the principle of reducing overhead when the
しかし、各ゲストOSは、自らが仮想化環境で動作していることを認識しないので、仮想HDD61、63、65に対して、最大の特権レベルで動作するプログラムにしか許容されないHDD25へのアクセスをする。ゲストOSがHDD25にアクセスするとCPU21に特権命令違反の例外が発生し、それをトラップした仮想化プログラム17に制御が移ってHDD25へのアクセスを処理する。
However, since each guest OS does not recognize that it is operating in a virtual environment, access to the
準仮想化方式では、ゲストOS67、69、71がHDD25にアクセスする際にハイパーバイザ・コールを発行して仮想化プログラム17の内部関数を呼び出し、仮想マシン11、13、15に変更を加えたり仮想化プログラム17に処理を要求したりする。準仮想化方式は完全仮想化方式に比べて高速処理が可能であるがゲストOSに修正が必要になる。完全仮想化方式および準仮想化方式のいずれの場合にもゲストOS67、69、71がHDD25にアクセスする際には、仮想化プログラム17に制御が移る際のコンテキスト・スイッチングと、仮想HDD61、63、65とHDD25とのアドレスをマッピングするためにオーバーヘッドが発生する。
In the para-virtualization method, when the
本実施の形態においては、HDD25の記憶領域を仮想化プログラム17が特定領域51と仮想化領域53に論理的に分割する。特定領域51は、ゲストOS67、69、71の中から選択されたいずれかのゲストOS(ここでは、ゲストOS67とする。)が仮想化プログラム17を経由しないで直接アクセスできる記憶領域である。仮想化領域53は、仮想化プログラム17と仮想マシン11、13、15を構成するプログラムおよびファイルなどのデータを記録しており、ゲストOS67が仮想化プログラム17を経由してアクセスする記憶領域である。
In the present embodiment, the
各仮想マシン11、13、15に対応するデータはデータ領域55、57、59に記録される。データ領域55、57、59にはそれぞれ、各仮想マシン11、13、15に関連するアプリケーション、OS、デバイス・ドライバ、およびユーザ・データなどが記録される。仮想化プログラム17はHDD25を仮想HDD61、63、65としてエミュレートするに当たり、仮想化領域53を仮想HDD61、63、65ごとに論理的に区分してデータ領域55、57、59を確保してもよいし、仮想化領域53の全体を使用して仮想HDD61、63、65のアドレスと仮想化領域53のアドレスをマッピングしてもよい。
Data corresponding to the
仮想マシン11、13、15は、アクセス対象のデータについてHDD25のアドレスを認識する必要はなく、仮想HDD61、63、65のアドレスだけを認識してHDD25の仮想化領域53にアクセスする。特定領域51を使用するゲストOS67は、所定のアドレスに当該特定領域51を自らが使用していたことを示すゲストOS識別子を記録する。そして、ゲストOS67はHDD25にファイルを書き込むライト・アクセスの際にはすべての書き込みデータを特定領域51に書き込む。仮想化領域53は仮想マシン11、13、15に対して本来のデータ格納場所としての役割を担う。また、特定領域51は他のゲストOS69、71が使用することもある。ゲストOS67は仮想化プログラム17に指示して、特定領域51にだけ記録されているデータをライト・アクセスとは非同期で仮想化領域53に書き込む。
The
また、HDD25からファイルを読み取るリード・アクセスの際には、ゲストOS67は特定領域51に読み取りデータが記録されている場合は特定領域51から読み取り、読み取りデータが記録されていない場合は仮想化領域53から読み取る。特定領域51からの読み取りの機会を増大するために、一旦読み取られたファイルは、ゲストOS67がリード・アクセスとは非同期で特定領域51に書き込むことができる。このように仮想化されたHDD25にゲストOS67がアクセスするために、以下のようにしてゲストOS67によるHDD25へのアクセスを許可しながら仮想化領域53のデータを保護する。
When performing read access to read a file from the
仮想化プログラム17はリング0で動作し、ゲストOS67がリング1、2、3で動作すると、ゲストOS67のHDD25へのアクセスは特権命令違反になって仮想化プログラム17によりトラップされCPU21の制御が仮想化プログラム17に移行する。インテル社のVT(Virtualization Technology)という仮想化支援機構やX86仮想化では、I/O-bitmapというオブジェクトによりハードウエアへのアクセスをI/Oポートごとに制御して、ゲストOS67がHDD25にアクセスしても仮想化プログラム17に制御を移行させないようにする手法を提供する。
When the
仮想化プログラム17は、I/O-bitmap のオブジェクトにパラメータを記述して、ゲストOS67によるIDEコントローラ26のI/Oポートに対するI/Oリクエストを制御する。仮想化プログラム17はゲストOS67によるHDD25へのアクセスを、仮想化プログラム17が特定領域51を利用する場合はトラップせず、特定領域51を利用しない場合はトラップするようにI/O-bitmapに記述する。
The
このようにしてゲストOS67による特定領域51へのアクセスが可能になるが、I/O-bitmapによる制御はI/Oポートのアドレス単位であるため、I/Oポートが開放されるとゲストOS67は特定領域51だけでなく仮想化領域53にもアクセスできる。このため、本実施の形態ではI/O-bitmapによる制御方式を採用しながら、以下のようにしてゲストOS67が仮想化領域53にアクセスできないようにしている。なお、インテル社のVTやAMD社の Pacificaという仮想化支援機構では、リング・プロテクションによる特権レベルの制御とは異なってコンテキスト・ベースで特権を付与する方式を採用する。この場合は、仮想化プログラム17への動作の移行をI/O-bitmapで制御する必要はない。
In this way, the
[仮想化領域の保護方法]
図3は、仮想化領域53をゲストOS67のアクセスから保護する方法を説明する図である。ATA(Advanced Technology Attachment)のインターフェース規格では、ディスクの記憶領域に特別なプログラム以外はアクセスすることができないHPA(Host Protected Area)を設定することができる。本実施の形態では、HPAの設定をゲストOS67の動作と仮想化プログラム17の動作の遷移にリンクさせてダイナミックに変更し、ゲストOS67が動作している間はゲストOS67が特定領域51にはアクセスできるが仮想化領域53にはアクセスできないようにしている。
[Virtual Area Protection Method]
FIG. 3 is a diagram for explaining a method of protecting the
HDD25にHPAを設定するために、仮想化プログラム17がSet max addressコマンドを発行してIDEコントローラ26のレジスタにHDD25の有効なアドレス範囲を設定する。設定値がHDD25の最大記憶容量よりも小さい場合はゲストOS67または仮想化プログラム17が利用できる記憶容量が低減する。図3(A)は、Set max addressコマンドを最大記憶容量のX(%)に設定した様子を示している。この場合、HDD25の記憶容量のうち0%からX%までは特定領域51に対応し、X%を越えて100%まではHPAが設定されてアクセスが制限された仮想化領域53に対応する。
In order to set the HPA in the
HPAには、ゲストOS67も仮想化プログラム17もアクセスすることができない。したがって、CPU21の動作がゲストOS67の実行に遷移したときにHPAを設定すれば、ゲストOS67は特定領域51にはアクセスできるが仮想化領域53にアクセスすることができなくなる。図3(B)は、Set max addressコマンドで有効なアドレス範囲を100%に設定した様子を示している。この状態ではHPAは設定されていないことになるので、ゲストOS67および仮想化プログラム17は特定領域51にも仮想化領域53にもアクセスすることができる。
Neither the
ここで仮想化プログラム17は、CPU21の動作が仮想化プログラム17の実行に遷移したときだけ、パラメータが100%のSet max addressコマンドを発行することで、自らだけが特定領域51と仮想化領域53にアクセスできるようにしている。このように、I/O-bitmapによりゲストOS67に対してIDEコントローラ26のI/Oポートを開放しても、ゲストOS67と仮想化プログラム17との間でのCPU21の遷移に応じてダイナミックにHPAを設定することで、ゲストOS67の仮想化領域53に対するアクセスを制限し、かつ仮想化プログラム17にはアクセス制限を解除することができる。
Here, the
ゲストOS67がSet max addressコマンドを発行してHPAを変更できるとすれば、仮想化領域53に記録されたデータの安全を確保することができなくなる。データの安全を確保するためにSet max addressコマンドの発行に、パスワードを要求することができる。すなわち、仮想化プログラム17が一旦設定したHPAは、パスワードを取得しない限りゲストOS67が変更できないようにすることができる。パスワードはユーザが設定しないで、仮想化プログラム17が独自に乱数を発生して生成することができる。
If the
[ファイル転送方式]
図4は、ファイル転送方式でHDD25にアクセスするディスク・アクセス制御システム100を構成するソフトウエアおよびハードウエアの機能ブロック図である。ディスク・アクセス制御システム100はコンピュータ10に搭載される。仮想マシン11は、本実施の形態に関連する要素としてアプリケーション73、ゲストOS67、仮想HDD61、およびアドレス・マッピング・テーブル(AMP)93を含んでいる。ゲストOS67は、Windows(登録商標)を例示して説明するが、本発明には他のOSを適用することも可能である。アプリケーション73はユーザー・モードで動作する。アプリケーション73はサブシステムDLL(Dynamic Link Library)を経由してAPI関数を呼び出し、仮想HDD61に対してデータを書き込んだり読み取ったりすることができるプログラムである。
[File transfer method]
FIG. 4 is a functional block diagram of software and hardware constituting the disk
アプリケーション73は、プログラムを仮想HDD61にインストールするインストーラであってもよい。システム・サービス・ディスパッチャ(SSD)83は、ユーザー・モードとカーネル・モードの切り替えを担当する。SSD83はユーザー・モードで動作するアプリケーション73から呼び出されたシステム・コール・サービスの際に発生した割り込みのコール番号を確認して、API関数をカーネル・モードで動作する内部サポート関数に切り替える。
The
I/Oマネージャ85は、スタック構造の入出力に関連するデバイス・ドライバの階層間の通信を行うためにIRP(I/O Request Packet)を作成して所定のデバイス・ドライバにディスパッチする。IRPは、各デバイス・ドライバとI/Oマネージャ85との間の通信に使用される。HDD25へのアクセスに関連するデバイス・ドライバは、ファイル・システム・ドライバ87、アクセス・コントロール・ドライバ89、およびディスク・ドライバ91で構成されている。ファイル・システム・ドライバ87は、FAT(File Allocation Table)やNTFS(NT File System)といったファイル・システムを形成して仮想HDD61に関するファイルの記録、読み取り、削除、または移動などのI/Oリクエストを管理する。
The I /
ファイル・システム・ドライバ87は、アプリケーション73に対して仮想HDD61に対するファイル・パスを提供する。ファイル・システム・ドライバ87は、I/Oマネージャ85から受け取ったAPI関数に指定されたファイル・パスを仮想HDD61のLBA(logical block address)に変換して、アクセス・コントロール・ドライバ89に送る。アクセス・コントロール・ドライバ89は、仮想HDD61に対するI/OリクエストをHDD25の特定領域51を利用して処理するプログラムである。アクセス・コントロール・ドライバ89は、AMP93を参照したり更新したりすることができる。アクセス・コントロール・ドライバ89はさらに特定領域51または仮想化領域53を更新するタイミングを決定する。
The
ディスク・ドライバ91は階層構造になっており、アクセス・コントロール・ドライバ89から受け取った仮想HDD61の所定のLBAに対する読み取りまたは書き込みなどをするためのI/Oリクエストを、HDD25を制御するプロトコルに変換して仮想HDD61に送る。仮想HDD61は仮想化プログラム17により提供され、HDD25の仮想化領域53を抽象化して仮想マシン11に仮想化されたインターフェースを提供する。仮想HDD61はディスク・ドライバ91からのI/Oリクエストに対してファイル・パスのインターフェースを提供するだけで直接応答することはない。
The
仮想化プログラム17は、本実施の形態に関連する要素としてアクセス・マネージャ101、HPAマネージャ102、ファイル・システム・ドライバ103、およびディスク・ドライバ105を含んでいる。アクセス・マネージャ101は、アクセス・コントロール・ドライバ89から仮想化領域53を更新する要求があったときに、特定領域51のデータで仮想化領域53を更新するプログラムである。
The
アクセス・マネージャ101は、ディスク・ドライバ91から受け取ったI/Oリクエストに対しては、なんら処理を加えないでファイル・システム・ドライバ103に渡す。HPAマネージャ102は、ゲストOS61のI/Oリクエストが発行されてゲストOS67から仮想化プログラム17に制御が移行するときにHPAを解除し、仮想化プログラム17からゲストOS67に制御が移行するときにHPAを設定するようにパラメータを設定してSet max addressコマンドを発行するプログラムである。
The
アクセス・マネージャ101は、ファイル・システム・ドライバ103から受け取った仮想化領域53からの読み取りデータに対しては何ら処理を加えないで、ディスク・ドライバ91に渡す。ファイル・システム・ドライバ103は、仮想化領域53のファイル・パスを管理する。ファイル・システム・ドライバ103は、所定のファイルが記録される仮想HDD61の仮想的なLBAを、実際に記録する仮想化領域53のLBAに変換する。ディスク・ドライバ105は、HDD25に対して受け取ったI/Oリクエストを所定のプロトコルに変換して実行する。
The
図5はAMP93のデータ構造を示す図である。図5(A)に示すAMP93は、特定の3つのファイルについて、仮想HDD61がゲストOS67に提供するLBAと実際にデータが記録されている特定領域51のLBAを関連付けている。ここでは説明を簡単にするために1つのファイルをLBA単位で対応付けているが、実際には、複数のLBAの集合であるクラスタの単位で関連付けることができる。
FIG. 5 shows the data structure of AMP93. The
HDD25には、特定領域51から仮想化領域53に渡ってディスクのすべてのセクタにアドレスが順番にLBA001からLBAnnnまで割り当てられているものとする。LBA001からLBA100までは特定領域51に対応し、LBA101からLBAnnnまでは仮想化領域53に対応するものとする。また、仮想HDD61には、仮想化プログラム17によりアドレスがLBA001からLBAmmmまで割り当てられているものとする。
In the
更新フラグは、仮想化領域53を特定領域51のデータで更新する必要があることを示す情報である。アクセス・コントロール・ドライバ89は、仮想HDD61と特定領域53の対応するLBAに記録されているデータが一致しない場合は更新フラグをリセット(0)し、一致する場合はセット(1)する。更新フラグがセットされている場合は仮想化領域53を更新しないでも特定領域51からデータを削除することができる。更新フラグの設定方法は後に説明する。登録日時は、特定領域51の記憶容量が少なくなったときに、仮想化領域53を更新してから消去するときの順番を決める情報である。アクセス・コントロール・ドライバ89は、登録日時の欄にAMP93にエントリを登録した日時を書き込む。
The update flag is information indicating that the
つぎに、ディスク・アクセス制御システム100の動作を図6、図7のフローチャートに基づいて説明する。図6は、仮想マシン11がHDD25にファイルを記録するときの手順を示すフローチャートである。仮想マシン13、15は、仮想マシン11とともにコンピュータ10において時分割動作をしていてもよいが、ここでの手順では仮想マシン13、15は特定領域51を利用しないので説明から除外する。
Next, the operation of the disk
ブロック201では、コンピュータ10が動作して図1の仮想化プログラム17および仮想マシン11が動作する仮想化環境が実現されている。コンピュータ10の起動ルーチンのなかで、または仮想プログラム17が動作したあとに仮想マシン11がロードされる際に、アクセス・コントロール・ドライバ89は、特定領域51の所定のアドレスからゲストOS識別子を読み取って、特定領域51を自らが使用していたか否かを判断する。
In
特定領域51を自らが使用していたと判断した場合は、アクセス・コントロール・ドライバ89は特定領域51に記録されたデータおよびAMP93のエントリを継続して使用する。特定領域51を他の仮想マシン13、15が使用していたと判断した場合は、アクセス・コントロール・ドライバ89は特定領域51およびAMP93を初期化する。仮想化プログラム17は、I/O-bitmapにパラメータを記述してゲストOS67がHDD25にアクセスしてもCPU21の動作が仮想化プログラム17に移行しないようにする。
If it is determined that the
HPAマネージャ102は、仮想マシン11が動作するときはパラメータがX(%)のSet max addressコマンドを発行して図3(A)のように仮想化領域53をHPAに設定し、仮想化プログラム17が動作するときはパラメータが100%のSet max addressコマンドを発行して図3(B)のようにHPAを解除する。仮想化プログラム17は特定領域51に、仮想マシン11が新たなアプリケーションをインストールしたり、アプリケーション73がファイルを記録したり、あるいは仮想化領域53から読み取ったファイルを記録したりするのに十分な記憶容量を確保することが望ましい。ただし、それらのデータを一度に記録するだけの記憶容量を特定領域51に確保できない場合であっても、本実施の形態では特定領域51のデータを入れ替えることで対応できるようにしている。
When the
ブロック203でアプリケーション73は、API関数を呼び出してゲストOS67に新しいファイルを記録するためのプロセスまたは仮想化領域51から読み取ったファイルを更新するプロセスを生成するように要求する。プロセスは、ファイル保存場所としての仮想HDD61のLBAを認識しておらず、ファイルの記録場所に関するパラメータとして、ファイル・システム・ドライバ87が提供する仮想HDD61におけるファイル・パスをAPI関数に設定する。SSD83はAPI関数を内部サポート関数に変換してI/Oマネージャ85に送る。
In
I/Oマネージャ85は、IRPに内部サポート関数の要求を記述して各デバイス・ドライバと通信をする。各デバイス・ドライバもI/Oマネージャ85から受け取ったIRPに記述してI/Oマネージャ85に返送することにより、他のデバイス・ドライバと通信する。ファイル・システム・ドライバ87は、API関数で指定されたファイル・パスを仮想HDD61のLBAに変換してアクセス・コントロール・ドライバ89に送る。
The I /
ここでは、ファイル・システム・ドライバ87はアプリケーション73が指定したファイル名およびファイル・パスに対して仮想HDD61のLBA007を割り当てるものとする。ブロック205でアクセス・コントロール・ドライバ89は、I/Oリクエストがライト・アクセスかリード・アクセスかを判断する。リード・アクセスの場合はブロック209に移行する。リード・アクセスの処理は、図7に基づいて説明する。なお、I/Oリクエストには、ファイルの削除やファイルの移動に関するものもあるが、本実施の形態にかかるライト・アクセスの処理とリード・アクセスの処理について説明すれば当業者にとってそれらの処理方法も明らかになるのでその説明は省略する。
Here, it is assumed that the
HDD25に対する書き込みデータはこれまでの処理では、仮想HDD61がインターフェースになって仮想化領域53に書き込まれるが、本実施の形態ではすべての書き込みデータを一旦は特定領域51に書き込む。そのために、ブロック207でアクセス・コントロール・ドライバ89は、AMP93を参照して、特定領域51の空いているLBAを探して、ファイル・システム・ドライバ87が割り当てたLBA007に対して特定領域51のLBA001を割り当てる。
In the processing so far, the write data to the
ブロック211でアクセス・コントロール・ドライバ89は、特定領域51のLBA001にファイルを書き込むようにディスク・ドライバ91に要求する。ディスク・ドライバ91は特定領域51のLBA001にファイルを記録するようにHDD25に要求する。仮想化プログラム17は、ゲストOS67のHDD25に対するアクセスをトラップしないようにI/O-bitmapにパラメータを設定しているため、ディスク・ドライバ91は仮想化プログラム17を呼び出すことなくIDEコントローラ26を通じて直接特定領域51にファイルを書き込むことができる。よって、本実施の形態ではライト・アクセスの際のすべての書き込みデータに対して、仮想化プログラム17の処理により発生するオーバーヘッドを除去することができる。
In
HDD25から書き込み完了の通知を受け取ったディスク・ドライバ91は、ブロック213でアクセス・コントロール・ドライバ89にその旨を通知する。通知を受け取ったアクセス・コントロール・ドライバ89は、ブロック215でAMP93を更新する。すなわち、アクセス・コントロール・ドライバ89は特定領域51に新規にファイルが記録されたので、対応する仮想HDD61のLBA007と特定領域51のLBA001をAMP93に登録しさらに登録日時を書き込む。この時点では、特定領域51のLBA007のファイルは仮想化領域53に記録されていないので更新フラグはリセットする。
The
特定領域51は、ライト・リクエストがあったときの書き込みデータを仮想化領域53に代わってすべて記録する領域であり、その記憶容量が小さい場合はゲストOS67に関連するアプリケーションやユーザ・データを書き込めない事態が生ずる。しかし、特定領域51は、CPUやメイン・メモリなどのようなキャッシュとは異なり、電源が喪失しても内容が消えることはないため、データを追加的に記録していく限り残りの記憶容量は少なくなる。
The
したがって、特定領域51の記憶容量が仮想HDD61に設定された記憶容量よりも小さい場合は、データを書き込めない事態が生ずる可能性がある。ブロック217では、アクセス・コントロール・ドライバ89がAMP93を参照して、特定領域51の残りの記憶容量が所定値以下か否かを判断する。残りの記憶容量が所定以下の場合は仮想化領域53の更新が必要であると判断してブロック219に移行する。残りの記憶容量が所定値を越える場合は、更新の必要がないのでブロック223に移行する。
Therefore, when the storage capacity of the
ブロック219では、アクセス・コントロール・ドライバ89が、AMP93を参照して更新フラグがリセットされている仮想HDD61と特定領域51のLBAの対を取得する。図5(A)の例では、更新フラグがリセットされている特定領域のLBA001、002に記録されているデータが対象になる。さらにアクセス・コントロール・ドライバ89は、仮想化プログラム17に動作を移すためのシステム・コールを発行し、特定領域51のLBA001、002のデータで、仮想HDD61のLBA007、009に対応する仮想化領域53を更新するようにアクセス・マネージャ101に要求する。
In
仮想化プログラム17がシステム・コールをトラップすることでCPU21の動作が仮想化プログラム17に移行する。HPAマネージャ102は、自らが動作するときはHPAを設定しないので、ディスク・ドライバ105はHDD25の全体にアクセスすることができる。更新の要求を受けたアクセス・マネージャ101は、ディスク・ドライバ105に特定領域51のLBA001、002からデータを読み取るように要求する。
The operation of the CPU 21 shifts to the
さらにアクセス・マネージャ101は、ファイル・システム・ドライバ103に仮想HDD61のLBA007、009に読み取ったデータを書き込むように要求する。ファイル・システム・ドライバ103は、受け取った仮想HDD61のLBA007、009を仮想化領域53のたとえばLBA101、102といった所定のLBAにマッピングしてディスク・ドライバ105に書き込み要求をする。
Further, the
LBA101、102は、図2のデータ領域55の一部である。仮想化領域53の更新は、仮想化プログラム17だけで行うので、複数のLBAを更新してもコンテキスト・スイッチングに伴うオーバーヘッドが発生しない。特定領域51に記録されたデータは他の仮想マシンがそこを使用することにより消去されない限り、後にアプリケーション73が仮想HDD61のLBA007、009に対してリード・アクセスをする場合には、読み取りデータを仮想化領域53のLBA101、102から読み出すことができる。
LBAs 101 and 102 are part of the
ブロック221では、ディスク・ドライバ105から更新の終了通知を受け取ったアクセス・マネージャ101は、アクセス・コントロール・ドライバ89に更新が終わった仮想HDDのLBA007、009または特定領域51のLBA001、002を通知する。通知を受け取ったアクセス・コントロール・ドライバ89は、AMP93に更新が終わったLBAに対応する更新フラグをセットする。
In
それ以後は、新たなデータを特定領域51に書き込む際に特定領域51の記憶容量が不足する場合は、更新フラグがセットされている特定領域51のLBAの中で最も過去に更新されたLBAに上書きして特定領域51を使用することができる。上記の手順ではブロック217で、仮想化領域53の更新の要否を特定領域51の残りの記憶容量に基づいて判断したが、前述のように特定領域51は、コンピュータ10の電源喪失に対して安全であるため更新フラグがリセットされた状態が長時間継続しても支障がない。したがって、ブロック217の手順は、特定領域51の残りの記憶容量が不足しない限り、ゲストOS67が発行するコンピュータ10のシャット・ダウン・イベント、CPU21のアイドル・イベント、またはゲストOS67の定期的なタイマー・イベントに基づいて実行してもよい。
Thereafter, when the storage capacity of the
ただし、特定領域51にデータを新規に書き込んだり特定領域51のデータを更新したりするタイミングで仮想化領域53を更新すると、仮想化プログラム17でのオーバーヘッドが大きくなるので好ましくない。仮想化領域53の更新は、特定領域51にある程度の量のデータが記録されてからライト・アクセスとは非同期で行うことが望ましい。データをまとめて更新することで、仮想マシン11と仮想化プログラム17との間のコンテキスト・スイッチングに伴うオーバーヘッドを軽減することができる。
However, it is not preferable to update the
図7は、仮想マシン11がHDD25からファイルを読み出すときの手順を示すフローチャートである。AMP93には、図5(A)のような3つのエントリが登録されているものとする。ブロック301では図6のブロック209につづいて、ファイル・システム・ドライバ87は、プロセスが指定したファイル・パスを仮想HDD61のLBAに変換してアクセス・コントロール・ドライバ89に送る。アクセス・コントロール・ドライバ89は、リード・アクセスにおいて指定されている仮想HDD61のLBAがAMP93に登録されているか否かを判断する。
FIG. 7 is a flowchart illustrating a procedure when the
リード・リクエストにかかる仮想HDD61のLBAがたとえばLBA009であって、AMP93に登録されている場合は、ブロック303に移行する。ブロック303では、アクセス・コントロール・ドライバ89は、ファイル・システム・ドライバ87から受け取った仮想HDD61のLBA009に対応する特定領域のLBA002をAMP93から取得する。ブロック305でアクセス・コントロール・ドライバ89は、特定領域51のLBA002からファイルを読み取るようにディスク・ドライバ91に要求する。ゲストOS67は特定領域51に直接アクセスしてファイルを読み取り仮想化プログラム17に制御が移行しないためオーバーヘッドを除去することができる。
If the LBA of the
ブロック301でリード・リクエストにかかる仮想HDD61のLBAがたとえばLBA011でAMP93に登録されていない場合は、ブロック307に移行する。ブロック307では、アクセス・コントロール・ドライバ89は、ファイル・システム・ドライバ87から受け取ったI/Oリクエストに含まれているLBA011を変更しないでディスク・ドライバ91に送り、仮想化プログラム17に移行するためのシステム・コールを発行するとCPU21の動作が仮想化プログラム17に移行する。
If the LBA of the
リード・リクエストに含まれるLBA011は、ファイル・システム・ドライバ103によりたとえば仮想化領域53のLBA105にマッピングされているものとする。ファイル・システム・ドライバ103は、受け取ったリード・リクエストのLBA011をLBA105に変換してディスク・ドライバ105に送る。ディスク・ドライバ105は、仮想化領域53のLBA105から読み取ったファイルを、アクセス・マネージャ101およびディスク・ドライバ91を経由してアクセス・コントロール・ドライバ89に送る。
It is assumed that the LBA 011 included in the read request is mapped to, for example, the
リード・リクエストにかかるファイルを受け取ったアクセス・コントロール・ドライバ89はブロック309で、AMP93に図5(B)に示すように仮想HDD61のLBA011を登録する。ただし、この時点では、特定領域51には、仮想化領域53のLBA105のファイルが記録されていないので、仮想HDD61のLBA011に対応する特定領域51のLBAのエントリは空白である。読み取ったファイルの仮想HDD61のエントリだけをAMP93に登録してから、アクセス・コントロール・ドライバ89は受け取ったファイルをアプリケーション73に渡す。
The
ブロック309までの手順によれば、仮想化領域53から読み出されてかつ特定領域51に書き込まれていないデータが存在する。直近にアクセスをされたデータは近いうちに再度アクセスされる可能性が高い。よって、本実施の形態では、一旦仮想化領域53から読み取ったデータを特定領域51に記録して、次回以降のリード・アクセスに対しては、特定領域51からの読み取りを可能にする。ただし、読み取りのたびに特定領域51を更新したのではオーバーヘッドが大きくなるので、仮想化領域53からの読み取り処理と特定領域51への書き込み処理は非同期または異なるタイミングで行う。
According to the procedure up to block 309, there is data that has been read from the
ブロック311では、アクセス・コントロール・ドライバ89が、特定領域51のデータを更新する必要があるか否かを判断する。判断は、ゲストOS67が発行する、一定の時間インターバルが経過したことを示すイベント、シャット・ダウンを示すイベント、またはCPU21のアイドル状態を示すイベントなどに基づいて行うことができる。ブロック313では、特定領域51の更新の必要性を示すイベントをゲストOS67の所定のモジュールから受け取ったアクセス・コントロール・ドライバ89は、AMP93を参照して特定領域51が空のエントリを検索し、仮想HDD61のLBA011を取得する。
In
アクセス・コントロール・ドライバ89は、仮想HDD61のLBA011に特定領域51の空いているアドレスであるLBA004を割り当てる。アクセス・コントロール・ドライバ89は、HDD25にアクセスするための内部サポート関数を呼んで、仮想HDD61のLBA011を経由して仮想化領域のLBA105からファイルを読み取り、さらに読み取ったファイルを特定領域51のLBA004に記録するようにディスク・ドライバ91に要求する。ディスク・ドライバ91は、仮想化プログラム17を経由して仮想化領域53からファイルを読み取り、直接特定領域51に書き込む。その結果、特定領域51の前回の更新から今回の更新までの間に仮想化領域53から読み取られたLBA105のデータは、特定領域51のLBA004に書き込まれる。
The
ブロック315では、ディスク・ドライバ91が特定領域51への書き込みが終了したことをアクセス・コントロール・ドライバ89に通知する。通知を受け取ったアクセス・コントロール・ドライバ89は、図5(C)に示すようにAMP93に仮想HDD61のLBA011に対応させて特定領域51のLBA004を登録し、かつ、更新フラグをセットする。アクセス・コントロール・ドライバ89は、同時にAMP93に登録日時を書き込む。
In
[ミラーリング方式]
図8は、ミラーリング方式でHDD25にアクセスするディスク・アクセス制御システム300を構成するソフトウエアおよびハードウエアの機能ブロック図である。ディスク・アクセス制御システム300が図4のディスク・アクセス制御システム100と異なる点は、アクセス・コントロール・ドライバ301およびアクセス・マネージャ305の機能、AMP303のデータ構造、および特定領域307の容量である。以下、この相違点を中心に説明する。
[Mirroring method]
FIG. 8 is a functional block diagram of software and hardware constituting the disk
図9(A)は、ミラーリング方式による特定領域307と仮想HDD61のアドレス関係を示す図である。ミラーリング方式では、特定領域307に仮想HDD61のディスク・イメージをコピーする。したがって仮想化プログラム17は、特定領域307の記憶容量が仮想化領域309のなかで仮想マシン11に割り当てられたデータ領域55の記憶容量以上になるようにパラメータを設定してSet max addressコマンドを発行する。ここでは、特定領域307がHDD25のLBA000〜LBAxxxに設定されるものとする。
FIG. 9A is a diagram showing the address relationship between the
そして、仮想化プログラム17は、仮想HDD61を通じてファイル・システム・ドライバ87に特定領域307と同じアドレス範囲のLBA000〜LBAxxxのインターフェースを提供する。また図9(B)に示すように、AMP303には仮想HDD61のLBAと特定領域307のLBAが同じアドレスでマッピングされるので、共通のLBAだけが登録される。アクセス・コントロール・ドライバ301とアクセス・マネージャ305の機能については、図10、図11の手順に基づいて説明する。登録日時は、AMP303にエントリを登録したタイミングでアクセス・コントロール・ドライバ301が記録する。
Then, the
図10は、アプリケーション73がHDD25にファイルを記録するときの手順を示すフローチャートである。ブロック401〜405およびブロック409は、図6のブロック201〜205およびブロック209の手順と同じである。ミラーリング方式では、所定のファイルの記録場所としてファイル・システム・ドライバ87が提供する仮想HDD61のLBAは、特定領域307のLBAに一致する。ブロック407では、アクセス・コントロール・ドライバ301は、ファイル・システム・ドライバ87から受け取ったLBA007を変更しないで、ディスク・ドライバ91に特定領域307のLBA007に記録するように要求する。このときアクセス・コントロール・ドライバ301は、仮想化ドライバ17に遷移するためのシステム・コールを発行しない。
FIG. 10 is a flowchart showing a procedure when the
ファイルを記録する特定領域307のLBAと仮想HDD61のLBAは一致しているので、アクセス・コントロール・ドライバ301はファイル転送方式のようにAMP93を参照して特定領域307の空いているLBAを探す必要はない。要求を受け取ったディスク・ドライバ91はHDD25に、特定領域307のLBA007にファイルを書き込む要求をする。仮想マシン11が動作する間は、HPAマネージャ102は仮想化領域309だけをHPAに設定するので、ディスク・ドライバ91は特定領域307にファイルを書き込むことができる。
Since the LBA of the
ブロック407ではアクセス・コントロール・ドライバ301が、ディスク・ドライバ61から書き込み完了の通知を受け取り、ブロック411でAMP303にLBA007を登録する。さらにアクセス・コントロール・ドライバ301は仮想化領域309には仮想HDD61のLBA007に対応する場所にファイルが記録されていないので、LBA007の更新フラグをセットしないか、もしセットされていればリセットする。
In
ブロック413では、アクセス・コントロール・ドライバ301が仮想化領域309の更新が必要か否かを判断する。特定領域307には仮想マシン11に割り当てられた仮想化領域309のすべてのデータを記憶できる記憶容量が設定されているので、特定領域307を仮想マシン11が専有する限りは、仮想化領域309を更新する必要はない。しかし、特定領域307は他の仮想マシン13、15も使用することがあるので、アクセス・コントロール・ドライバ301はゲストOS67のモジュールからシャット・ダウンの通知または仮想マシン11を停止する通知を受け取ったときに更新が必要であると判断する。
In
更新が必要な場合は、ブロック415に移行してアクセス・コントロール・ドライバ301は、AMP303から更新フラグがリセットされているLBAを取得して、特定領域307のデータで仮想化領域309を更新する要求をアクセス・マネージャ305に送る。アクセス・マネージャ305は、図6のブロック219と同じ手順で仮想化領域309を更新する。
If an update is necessary, the process proceeds to block 415, and the
ブロック417では、ディスク・ドライバ105から更新の終了通知を受け取ったアクセス・マネージャ305は、アクセス・コントロール・ドライバ89に更新が終わったLBAを通知する。通知を受け取ったアクセス・コントロール・ドライバ89は、更新が終わったデータに対応するLBAの更新フラグをセットする。ブロック409におけるリード・アクセスの処理手順は、図7に示したファイル転送方式におけるリード・アクセスの処理手順に準じて行うことができる。
In
[その他の特徴]
これまで、特定領域51、307はいずれか一つの仮想マシンだけが専有することを前提にして説明した。この場合、仮想化プログラム17上で仮想マシン11、13、15が時分割で動作する場合には、特定領域51、307を専有するいずれか1つの仮想マシンだけがHDD25に高速にアクセスすることができる。本発明では、特定領域51、307を複数の論理ブロックに分割して、それぞれを各仮想マシンに割り当てることにより時分割で動作している複数の仮想マシンが特定領域51を利用することができる。また、分割した特定領域51、307を各仮想マシン11、13、15に割り当てることで、特定領域51、307を初期化する必要をなくして、リード・アクセスに対するデータ・ヒット率を高めることができる。
[Other features]
So far, the
本発明では、HDD25が仮想化プログラムと複数の仮想マシンを構成するプログラムを格納する場合にも、HPAを設定することで仮想化領域53、309のデータの安全を確保することができる。このような特徴は、1台のHDDに設けられた仮想化領域53、309にデータを格納する場合に限定されない。たとえば、ファイル・サーバやワーク・ステーションなどにはRAID(Redundant Arrays of Independent Disks)というシステムが採用されている。
In the present invention, even when the
RAIDでは、複数のHDDを仮想化して一つの論理ディスクを構築し、仮想化プログラムはそれらを1台のHDDとして認識してアクセスすることができる。RAIDを実現する方法には、ハードウエアによる方法とソフトウエアによる方法がある。ハードウエアによる方法に採用する場合は仮想化プログラムが各HDDにHPAを設定するコマンドを送るように変更することで、本発明を適用することができる。また、ソフトウエアによる方法に採用する場合は、特定領域については冗長記録ができなくなる場合も生ずるが、非同期的に特定領域から冗長記録が行われる仮想化領域にデータを転送することにより、高速アクセスを優先する用途には有利である。 In RAID, a plurality of HDDs are virtualized to construct one logical disk, and the virtualization program can recognize and access them as one HDD. As a method for realizing RAID, there are a hardware method and a software method. When adopting the method by hardware, the present invention can be applied by changing the virtualization program so as to send a command for setting the HPA to each HDD. Also, when adopting the software method, redundant recording may not be possible for a specific area, but high-speed access can be achieved by transferring data asynchronously from a specific area to a virtual area where redundant recording is performed. It is advantageous for applications in which priority is given.
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。 Although the present invention has been described with the specific embodiments shown in the drawings, the present invention is not limited to the embodiments shown in the drawings, and is known so far as long as the effects of the present invention are achieved. It goes without saying that any configuration can be adopted.
10…コンピュータ
11、13、15…仮想マシン
17…仮想化プログラム
19…ハードウエア
51、307…特定領域
53、309…仮想化領域
61、63、65…仮想HDD
67、69、71…ゲストOS
93、303…アドレス・マッピング・テーブル(AMP)
100、300…ディスク・アクセス制御システム
DESCRIPTION OF SYMBOLS 10 ...
67, 69, 71 ... Guest OS
93, 303 ... Address mapping table (AMP)
100, 300 ... disk access control system
Claims (19)
前記仮想マシンがアクセスすることができる特定領域と前記仮想マシンがアクセスすることができない仮想化領域を前記ディスク・ドライブに、前記コンピュータの動作が前記仮想マシンと前記仮想化プログラムの間で遷移する際に、前記仮想マシンが動作している間は前記仮想マシンが前記特定領域だけにアクセス可能になるように設定し、前記仮想化プログラムが動作している間は前記特定領域と前記仮想化領域にアクセスが可能になるように設定するステップ、
前記仮想化領域に対するI/Oリクエストを開始するステップと、
前記I/Oリクエストが前記仮想化領域にデータを書き込むライト・アクセスか前記仮想化領域からデータを読み取るリード・アクセスかを判断するステップと、
前記ライト・アクセスであると判断したときに書き込みデータを前記特定領域に書き込むステップと
を有する処理を実行させるコンピュータ・プログラム。 On a computer that has a disk drive and a virtualization environment formed by a virtualization program and a virtual machine,
When a specific area that can be accessed by the virtual machine and a virtual area that cannot be accessed by the virtual machine are transferred to the disk drive, and the operation of the computer transits between the virtual machine and the virtualization program. In addition, the virtual machine is set to be accessible only to the specific area while the virtual machine is operating, and the specific area and the virtualization area are set while the virtualization program is operating. Steps to allow access ,
Initiating an I / O request for the virtualized area;
Determining whether the I / O request is a write access for writing data to the virtualization area or a read access for reading data from the virtualization area;
A computer program for executing a process including a step of writing write data in the specific area when it is determined that the access is the write access.
複数の前記仮想マシンにそれぞれ専用に割り当てた複数の論理ブロックを含み前記仮想マシンがアクセスすることができる特定領域と、前記仮想マシンがアクセスすることができない仮想化領域を前記ディスク・ドライブに設定するステップと、
前記仮想化領域に対するI/Oリクエストを開始するステップと、
前記I/Oリクエストが前記仮想化領域にデータを書き込むライト・アクセスか前記仮想化領域からデータを読み取るリード・アクセスかを判断するステップと、
前記ライト・アクセスであると判断したときに書き込みデータを前記特定領域に書き込むステップと
を有する処理を実行させるコンピュータ・プログラム。 On a computer that has a disk drive and a virtualization environment formed by a virtualization program and a virtual machine,
A specific area that includes a plurality of logical blocks allocated exclusively to a plurality of virtual machines and that can be accessed by the virtual machine, and a virtual area that cannot be accessed by the virtual machine are set in the disk drive. Steps,
Initiating an I / O request for the virtualized area;
Determining whether the I / O request is a write access for writing data to the virtualization area or a read access for reading data from the virtualization area;
A computer program for executing a process including a step of writing write data in the specific area when it is determined that the access is the write access.
前記仮想マシンがアクセスすることができる特定領域と前記仮想マシンがアクセスすることができない仮想化領域を前記ディスク・ドライブに設定するステップと、
前記仮想化領域に対するI/Oリクエストを開始するステップと、
前記I/Oリクエストが前記仮想化領域にデータを書き込むライト・アクセスか前記仮想化領域からデータを読み取るリード・アクセスかを判断するステップと、
前記ライト・アクセスであると判断したときに書き込みデータを前記特定領域に書き込むステップと、
前記ライト・アクセスと非同期で前記仮想化領域を前記特定領域に記録されたデータで更新するステップと
を有する処理を実行させるコンピュータ・プログラム。 On a computer that has a disk drive and a virtualization environment formed by a virtualization program and a virtual machine,
Setting a specific area that the virtual machine can access and a virtual area that the virtual machine cannot access to the disk drive;
Initiating an I / O request for the virtualized area;
Determining whether the I / O request is a write access for writing data to the virtualization area or a read access for reading data from the virtualization area;
Writing write data to the specific area when it is determined that the write access; and
A computer program that executes a process including: updating the virtual area with data recorded in the specific area asynchronously with the write access .
前記仮想マシンがアクセスすることができる特定領域と前記仮想マシンがアクセスすることができない仮想化領域を前記ディスク・ドライブに設定するステップと、
前記仮想化領域に対するI/Oリクエストを開始するステップと、
前記I/Oリクエストが前記仮想化領域にデータを書き込むライト・アクセスか前記仮想化領域からデータを読み取るリード・アクセスかを判断するステップと、
前記ライト・アクセスであると判断したときに書き込みデータを前記特定領域に書き込むステップと、
前記リード・アクセスであると判断したときに読み取りデータが前記特定領域に記録されているか否かを判断するステップと、
前記特定領域に記録されていると判断したときに、前記仮想マシンが前記特定領域からデータを読み取るステップと
を有する処理を実行させるコンピュータ・プログラム。 On a computer that has a disk drive and a virtualization environment formed by a virtualization program and a virtual machine,
Setting a specific area that the virtual machine can access and a virtual area that the virtual machine cannot access to the disk drive;
Initiating an I / O request for the virtualized area;
Determining whether the I / O request is a write access for writing data to the virtualization area or a read access for reading data from the virtualization area;
Writing write data to the specific area when it is determined that the write access; and
Determining whether read data is recorded in the specific area when it is determined to be the read access;
A computer program that executes a process including a step of reading data from the specific area when the virtual machine is determined to be recorded in the specific area .
前記仮想マシンがアクセスすることができる特定領域と前記仮想マシンがアクセスすることができない仮想化領域が設定されたディスク・ドライブと、
前記ディスク・ドライブに対するインターフェースを構成するディスク・コントローラと、
前記ディスク・コントローラに対するI/Oリクエストを発行するリクエスト部と、
前記I/Oリクエストがライト・アクセスかリード・アクセスかを判断し、前記ライト・アクセスであると判断したときに、書き込みデータを前記特定領域に書き込むアクセス制御部と、
前記仮想マシンが動作している間は前記特定領域だけがアクセス可能になるように前記ディスク・コントローラを制御し、前記仮想化プログラムが動作している間は前記ディスク・コントローラに対するアクセス制限を解除するように制御する記憶領域制御部と
を有するコンピュータ。 A computer capable of realizing a virtual environment in which a virtual machine operates on a virtualization layer,
A specific area that the virtual machine can access and a disk drive in which a virtual area that the virtual machine cannot access is set;
A disk controller which constitutes an interface to the disk drives,
A request unit for issuing an I / O request to the disk controller;
Determining whether the I / O request is a write access or a read access, and when determining that the I / O request is the write access, an access control unit that writes write data to the specific area;
The disk controller is controlled so that only the specific area can be accessed while the virtual machine is operating, and the access restriction on the disk controller is released while the virtualization program is operating. And a storage area control unit for controlling the computer.
前記仮想マシンがアクセスすることができる特定領域と前記仮想マシンがアクセスすることができない仮想化領域が設定されたディスク・ドライブと、
前記ディスク・ドライブに対するインターフェースを構成するディスク・コントローラと、
前記ディスク・コントローラに対するI/Oリクエストを発行するリクエスト部と、
前記I/Oリクエストがライト・アクセスかリード・アクセスかを判断し、前記ライト・アクセスであると判断したときに、書き込みデータを前記特定領域に書き込むアクセス制御部と、
前記ライト・アクセスのタイミングとは異なるタイミングで前記仮想化領域を前記特定領域に書き込まれたデータで更新する更新処理部と
を有するコンピュータ。 A computer capable of realizing a virtual environment in which a virtual machine operates on a virtualization layer,
A specific area that the virtual machine can access and a disk drive in which a virtual area that the virtual machine cannot access is set;
A disk controller which constitutes an interface to the disk drives,
A request unit for issuing an I / O request to the disk controller;
Determining whether the I / O request is a write access or a read access, and when determining that the I / O request is the write access, an access control unit that writes write data to the specific area;
A computer having an update processing unit that updates the virtualized area with data written in the specific area at a timing different from the timing of the write access .
前記仮想マシンがアクセスすることができる特定領域と前記仮想マシンがアクセスすることができない仮想化領域が設定されたディスク・ドライブと、
前記ディスク・ドライブに対するインターフェースを構成するディスク・コントローラと、
前記ディスク・コントローラに対するI/Oリクエストを発行するリクエスト部と、
前記I/Oリクエストがライト・アクセスかリード・アクセスかを判断し、前記ライト・アクセスであると判断したときに書き込みデータを前記特定領域に書き込み、前記リード・アクセスであると判断したときに前記特定領域に読み取りにかかるデータが存在するか否かを判断しデータが存在すると判断した場合は前記特定領域から読み取るアクセス制御部と
を有するコンピュータ。 A computer capable of realizing a virtual environment in which a virtual machine operates on a virtualization layer,
A specific area that the virtual machine can access and a disk drive in which a virtual area that the virtual machine cannot access is set;
A disk controller which constitutes an interface to the disk drives,
A request unit for issuing an I / O request to the disk controller;
It is determined whether the I / O request is a write access or a read access. When it is determined that the I / O request is the write access, write data is written in the specific area, and when it is determined that the I / O request is the read access, A computer having an access control unit that determines whether or not data to be read exists in a specific area and reads data from the specific area when it is determined that data exists .
複数の前記仮想マシンにそれぞれ専用に割り当てた複数の論理ブロックを含み前記仮想マシンがアクセスすることができる特定領域と、前記仮想マシンがアクセスすることができない仮想化領域が設定されたディスク・ドライブと、
前記ディスク・ドライブに対するインターフェースを構成するディスク・コントローラと、
前記ディスク・コントローラに対するI/Oリクエストを発行するリクエスト部と、
前記I/Oリクエストがライト・アクセスかリード・アクセスかを判断し、前記ライト・アクセスであると判断したときに、書き込みデータを前記特定領域に書き込むアクセス制御部と
を有するコンピュータ。 A computer capable of realizing a virtual environment in which a virtual machine operates on a virtualization layer,
A specific area that includes a plurality of logical blocks dedicated to each of the plurality of virtual machines and that can be accessed by the virtual machine, and a disk drive in which a virtual area that the virtual machine cannot access is set ,
A disk controller which constitutes an interface to the disk drives,
A request unit for issuing an I / O request to the disk controller;
A computer comprising: an access control unit that determines whether the I / O request is a write access or a read access, and writes write data to the specific area when the I / O request is determined to be the write access.
仮想化プログラムが前記コンピュータに、ゲストOSが前記ディスク・ドライブにアクセスすることができる特定領域と前記ゲストOSが前記ディスク・ドライブにアクセスすることができない仮想化領域を、前記ゲストOSが動作する間は前記ディスク・ドライブの一部の記憶領域へのアクセスを制限し前記仮想化プログラムが動作する間は前記アクセス制限を解除するように設定する機能を実現させるステップと、
アプリケーション・プログラムが前記コンピュータに前記仮想化領域に対するアクセスを開始する機能を実現させるステップと、
前記ゲストOSが前記コンピュータに前記アクセスが前記仮想化領域にデータを書き込むライト・アクセスか前記仮想化領域からデータを読み取るリード・アクセスかを判断する機能を実現させるステップと、
前記ライト・アクセスであると判断したときに仮想化プログラムが前記コンピュータに書き込みデータを前記特定領域に書き込む機能を実現させるステップと
を有する方法。 A method of accessing a disk drive in a computer in which a virtualized environment is realized, comprising:
While the guest OS operates the virtualization program in the computer, a specific area where the guest OS can access the disk drive and a virtualization area where the guest OS cannot access the disk drive Realizing a function of restricting access to a part of the storage area of the disk drive and setting the access restriction to be released while the virtualization program is operating ;
An application program causing the computer to realize a function of starting access to the virtualization area;
The guest OS causing the computer to realize a function of determining whether the access is a write access for writing data to the virtualization area or a read access for reading data from the virtualization area;
A method in which a virtualization program realizes a function of writing write data to the specific area in the computer when it is determined that the write access is made.
仮想化プログラムが前記コンピュータにゲストOSが前記ディスク・ドライブにアクセスすることができる特定領域と前記ゲストOSが前記ディスク・ドライブにアクセスすることができない仮想化領域を設定する機能を実現させるステップと、
アプリケーション・プログラムが前記コンピュータに前記仮想化領域に対するアクセスを開始する機能を実現させるステップと、
前記ゲストOSが前記コンピュータに前記アクセスが前記仮想化領域にデータを書き込むライト・アクセスか前記仮想化領域からデータを読み取るリード・アクセスかを判断する機能を実現させるステップと、
前記ライト・アクセスであると判断したときに仮想化プログラムが前記コンピュータに書き込みデータを前記特定領域に書き込む機能を実現させるステップと、
前記ゲストOSが前記コンピュータに前記ライト・アクセスのタイミングとは異なるタイミングで前記特定領域に書き込まれたデータを前記仮想化領域に書き込む機能を実現させるステップと
を有する方法。 A method of accessing a disk drive in a computer in which a virtualized environment is realized, comprising:
A step of realizing a function of setting a specific area in which the guest OS can access the disk drive and a virtual area in which the guest OS cannot access the disk drive by the virtualization program;
An application program causing the computer to realize a function of starting access to the virtualization area;
The guest OS causing the computer to realize a function of determining whether the access is a write access for writing data to the virtualization area or a read access for reading data from the virtualization area;
Realizing the function of the virtualization program writing the write data to the specific area in the computer when it is determined that the write access;
The guest OS causing the computer to realize a function of writing data written in the specific area to the virtual area at a timing different from the timing of the write access .
仮想化プログラムが前記コンピュータに、複数の前記仮想マシンにそれぞれ専用に割り当てた複数の論理ブロックを含みゲストOSが前記ディスク・ドライブにアクセスすることができる特定領域と前記ゲストOSが前記ディスク・ドライブにアクセスすることができない仮想化領域を設定する機能を実現させるステップと、 A specific area in which a virtualization program includes a plurality of logical blocks dedicated to each of the plurality of virtual machines and the guest OS can access the disk drive, and the guest OS is stored in the disk drive. Realizing a function of setting a virtual area that cannot be accessed;
アプリケーション・プログラムが前記コンピュータに前記仮想化領域に対するアクセスを開始する機能を実現させるステップと、 An application program causing the computer to realize a function of starting access to the virtualization area;
前記ゲストOSが前記コンピュータに前記アクセスが前記仮想化領域にデータを書き込むライト・アクセスか前記仮想化領域からデータを読み取るリード・アクセスかを判断する機能を実現させるステップと、 The guest OS causing the computer to realize a function of determining whether the access is a write access for writing data to the virtualization area or a read access for reading data from the virtualization area;
前記ライト・アクセスであると判断したときに仮想化プログラムが前記コンピュータに書き込みデータを前記特定領域に書き込む機能を実現させるステップと Realizing a function of causing the computer to write write data to the specific area when the virtualization program determines that it is the write access;
を有する方法。Having a method.
仮想化プログラムが前記コンピュータにゲストOSが前記ディスク・ドライブにアクセスすることができる特定領域と前記ゲストOSが前記ディスク・ドライブにアクセスすることができない仮想化領域を設定する機能を実現させるステップと、 A step of realizing a function of setting a specific area in which the guest OS can access the disk drive and a virtual area in which the guest OS cannot access the disk drive by the virtualization program;
アプリケーション・プログラムが前記コンピュータに前記仮想化領域に対するアクセスを開始する機能を実現させるステップと、 An application program causing the computer to realize a function of starting access to the virtualization area;
前記ゲストOSが前記コンピュータに前記アクセスが前記仮想化領域にデータを書き込むライト・アクセスか前記仮想化領域からデータを読み取るリード・アクセスかを判断する機能を実現させるステップと、 The guest OS causing the computer to realize a function of determining whether the access is a write access for writing data to the virtualization area or a read access for reading data from the virtualization area;
前記ライト・アクセスであると判断したときに仮想化プログラムが前記コンピュータに書き込みデータを前記特定領域に書き込む機能を実現させるステップと、 Realizing the function of the virtualization program writing the write data to the specific area in the computer when it is determined that the write access;
前記リード・アクセスであると判断したときに前記仮想化プログラムが前記コンピュータに読み取りデータが前記特定領域に記録されているか否かを判断する機能を実現させるステップと、 Realizing the function of determining whether the virtualized program is recorded in the specific area or not when the virtualization program determines that the read access is performed;
前記特定領域に記録されていると判断したときに、前記仮想化プログラムが前記コンピュータに前記仮想マシンが前記特定領域からデータを読み取る機能を実現させるステップと The virtual program causing the computer to realize a function of reading data from the specific area when it is determined that the virtual program is recorded in the specific area;
を有する方法。Having a method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010178219A JP5468490B2 (en) | 2010-08-07 | 2010-08-07 | Method and computer for accessing disk drive in computer with virtualized environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010178219A JP5468490B2 (en) | 2010-08-07 | 2010-08-07 | Method and computer for accessing disk drive in computer with virtualized environment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012038117A JP2012038117A (en) | 2012-02-23 |
JP5468490B2 true JP5468490B2 (en) | 2014-04-09 |
Family
ID=45850050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010178219A Active JP5468490B2 (en) | 2010-08-07 | 2010-08-07 | Method and computer for accessing disk drive in computer with virtualized environment |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5468490B2 (en) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4289028B2 (en) * | 2003-06-04 | 2009-07-01 | パナソニック株式会社 | Hard disk backup recovery system and information processing apparatus |
-
2010
- 2010-08-07 JP JP2010178219A patent/JP5468490B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012038117A (en) | 2012-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102047558B1 (en) | Virtual disk storage techniques | |
US10365938B2 (en) | Systems and methods for managing data input/output operations in a virtual computing environment | |
US8181176B2 (en) | Uniform storage device access using partial virtual machine executing within a secure enclave session | |
US9448728B2 (en) | Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers | |
JP5038907B2 (en) | Method and apparatus for supporting address translation in a virtual machine environment | |
US8510515B2 (en) | Storage system comprising multiple storage apparatuses with both storage virtualization function and capacity virtualization function | |
JP5658197B2 (en) | Computer system, virtualization mechanism, and computer system control method | |
US9454489B2 (en) | Exporting guest spatial locality to hypervisors | |
US7886115B2 (en) | Techniques for implementing virtual storage devices | |
US10592434B2 (en) | Hypervisor-enforced self encrypting memory in computing fabric | |
US20140012940A1 (en) | Systems, Methods and Apparatus for a Virtual Machine Cache | |
US20120030456A1 (en) | Booting Devices Using Virtual Storage Arrays Over Wide-Area Networks | |
US10289564B2 (en) | Computer and memory region management method | |
EP3673366B1 (en) | Virtual application delivery using synthetic block devices | |
US9298375B2 (en) | Method and apparatus for returning reads in the presence of partial data unavailability | |
US20140298326A1 (en) | Asynchronous unmap of thinly provisioned storage for virtual machines | |
WO2013023090A2 (en) | Systems and methods for a file-level cache | |
US9875184B2 (en) | Multi-level snapshot caching | |
JP5468490B2 (en) | Method and computer for accessing disk drive in computer with virtualized environment | |
JP2024512960A (en) | System and method for providing page transitions | |
TW201610853A (en) | Systems and methods for storage virtualization | |
TWI497294B (en) | Computer-readable storage media, apparatuses, and computer-implemented methods for increasing virtual-memory efficiencies | |
表祐志 | Computer Systems Management with a Para Pass-through Virtual Machine Monitor | |
JP2005056019A (en) | Information processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120106 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130725 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 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: 20140128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140129 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5468490 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |