JP2012185605A - 仮想マシンシステム、仮想ディスク管理方法、及び仮想ディスク管理プログラム - Google Patents
仮想マシンシステム、仮想ディスク管理方法、及び仮想ディスク管理プログラム Download PDFInfo
- Publication number
- JP2012185605A JP2012185605A JP2011047288A JP2011047288A JP2012185605A JP 2012185605 A JP2012185605 A JP 2012185605A JP 2011047288 A JP2011047288 A JP 2011047288A JP 2011047288 A JP2011047288 A JP 2011047288A JP 2012185605 A JP2012185605 A JP 2012185605A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- data
- disk
- block position
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】 ディスク容量の削減効率を高める。
【解決手段】 差分ディスク方式の仮想マシンシステム1000において、マスタディスクファイル611の所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを格納するマスタディスクバッファファイル612と、仮想マシンからのマスタディスクファイル612の所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置についてマスタディスクバッファファイル612への書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置におけるマスタディスクバッファファイル612のデータと同一である場合に、書き込み要求を破棄するディスク制御手段410とを備える。
【選択図】 図1
【解決手段】 差分ディスク方式の仮想マシンシステム1000において、マスタディスクファイル611の所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを格納するマスタディスクバッファファイル612と、仮想マシンからのマスタディスクファイル612の所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置についてマスタディスクバッファファイル612への書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置におけるマスタディスクバッファファイル612のデータと同一である場合に、書き込み要求を破棄するディスク制御手段410とを備える。
【選択図】 図1
Description
本発明は、仮想マシンの仮想ディスク管理技術に関し、特に、ディスク容量の削減効率を高める技術に関する。
昨今、物理サーバ上で複数の仮想マシンを動作させる仮想化技術が普及している。仮想マシンには、物理マシン同様に、例えばディスクなどのハードウェア装置が仮想的に構成されており、仮想マシン上のオペレーティングシステム(以下、OS)からディスクへの書き込みが発生した場合、この仮想的なディスク(以下、仮想ディスク)へ書き込み処理が行われる。
この仮想ディスクは、物理的な記憶装置内にある論理的なファイル(以下、仮想ディスクファイル)に紐付いており、仮想ディスクへの書き込みは、実際には仮想ディスクファイル上の特定ブロック位置に対して実施される。また、想ディスクからの読み込みも同様に、仮想ディスクファイル上の特定ブロック位置から行われる。
仮想マシンの仮想ディスクを実現するには複数の方式があるが、一般的に、固定ディスク方式、ならびに差分ディスク方式が挙げられる。以下、それぞれの方式に関して説明する。
固定ディスク方式では、仮想ディスクと同容量の仮想ディスクファイルを、記憶装置内に作成し、格納する。仮想マシンは、この仮想ディスクファイルに対して、データの読み込み、および書き込みを実施する。
固定ディスク方式では、仮想マシンごとに独立した仮想ディスクファイルが提供されるため、他の仮想マシンからの影響が無く、一般的な物理マシンと同等のディスク機能を提供することが可能である。一方で、固定ディスク方式は、仮想マシンごとに仮想ディスクと同容量の記憶領域を必要とするため、大容量の記憶装置を用意する必要がある。
差分ディスク方式では、仮想ディスクを構成する仮想ディスクファイルとして、読み取り専用となるマスタディスクファイルと、このマスタディスクファイルの更新部分(差分)のみを保持する差分ディスクファイルとを持つ。
仮想マシンが、仮想ディスクへの書き込み処理において、マスタディスクファイルに該当するブロック位置のデータ更新を伴う書き込みを行った場合、実際にはマスタディスクファイルは更新されず、差分ディスクファイルに書き込みが行われ、更新される。
差分ディスクファイルは、データが更新される都度、記憶領域内でディスク領域を確保するため、固定ディスク方式のように最初から仮想ディスクと同容量の記憶領域を必要としない。
仮想マシンが、仮想ディスクからデータを読み込む場合、差分ディスクファイルに更新されたデータがある場合はそれを読み込み、更新されたデータが無い場合はマスタディスクファイルから読み込みが行われる。このため、マスタディスクファイル自体は更新されることがないため、マスタディスクファイルは複数の仮想マシンからの参照も可能な仮想ディスクファイルである。また、差分ディスクファイルには、仮想マシンごとが個々に持つ一意な情報(ホスト名やIPアドレス、など)が最低限保持される。
差分ディスク方式では、マスタディスクファイルを複数の仮想マシンから共有することが可能であるため、同一構成の仮想マシンが複数動作する仮想マシン環境に差分ディスク方式を採用した場合、固定ディスク方式と比較し、記憶領域の削減が可能となる。また、同一構成の仮想マシンを複数展開する場合、マスタディスクファイル分のデータ複製が不要となるため、迅速な展開が可能となる。
一方で、差分ディスク方式では、複数の仮想マシンからマスタディスクファイルに該当する特定ブロック位置のデータ更新を伴う書き込みが発生した場合で、かつデータ内容が同一(例えば、OSのセキュリティパッチやウイルス対策ソフトウェアの定義ファイルなど)の場合でも、仮想マシンごとに差分ディスクへの書き込みが発生するため、差分ディスクの肥大化が発生し易く、記憶装置の空き容量の圧迫が発生する、という問題がある。
さらに、例として挙げた、OSのセキュリティパッチやウイルス対策ソフトウェアの定義ファイルなどは、仮想マシンに適用されるタイミングがほぼ同時期であることから、同一構成の仮想マシンが複数動作する環境では、記憶装置への書き込みが集中し易く、ディスク性能低下の誘発、つまり複数の仮想マシンの性能低下が発生する可能性が高い、という問題もある。
このような問題を解決する一つの方法として、VMware社の「VMware View Composer」という製品に「再構築」の機能が設けられている。
この「再構築」の機能は、前述の例のようなOSのセキュリティパッチやウイルス対策ソフトウェアの定義ファイルなどを、管理者が個別にマスタディスクファイルに直接適用した後、マスタディスクファイルを参照する全ての仮想マシンに対して、更新されたマスタディスクファイルを再参照させ、かつ、仮想マシン個々の情報を最低限保持させた差分ディスクファイルを再作成する方法である。これにより、仮想マシンごとに更新データを差分ディスクに書き込む処理が不要となり、かつ差分ディスク肥大化の問題も回避可能である。
また、他の解決方法が、特許文献1に記載されている。特許文献1では、仮想マシンごとに書き込まれた差分ディスクファイル上のデータに対して、該当データが移動または削除された場合に、差分ディスクファイル内で不要となったブロックを圧縮、解放することで、差分ディスク肥大化の問題を回避する方法を提供している。また、この機能は、仮想マシン稼働中でも実施できるため、仮想マシン運用に影響がない。
しかし、「VMware View Composer」の「再構築」の機能は、「再構築」実施時に、マスタディスクファイルを参照する仮想マシンを全て停止する必要があるため、マスタディスクファイルの更新が緊急性を要する場合、仮想マシン運用に影響を与えてしまうという課題がある。
また、仮想マシン個別にOSのセキュリティパッチやウイルス対策ソフトウェアの定義ファイルなどを適用しない、という運用ルールが前提となるため、各仮想マシン個別にマスタディスクファイルに該当する特定ブロック位置に対して、同一のデータ更新を行った場合における、ディスク性能低下および差分ディスクの肥大化という問題の根本的な解決とはならないという課題がある。
一方、特許文献1の方法では、マスタディスクファイルに該当する特定ブロック位置に同一のデータ更新を行った場合でも、差分ディスクへの書き込み処理は行われるため、ディスク性能低下、および差分ディスクへ肥大化の発生が回避できないという課題がある。
また、前述したOSのセキュリティパッチやウイルス対策ソフトの定義ファイルなどに関しては、該当データの移動または削除は通常発生しないため、差分ディスク内の不要ブロックの圧縮、解放は期待できず、差分ディスクの肥大化は回避できない可能性が高いという課題がある。
(発明の目的)
本発明の目的は、上述の課題を解決し、ディスク容量の削減効率を高める仮想マシンシステム、仮想ディスク管理方法、及び仮想ディスク管理プログラムを提供することである。
本発明の目的は、上述の課題を解決し、ディスク容量の削減効率を高める仮想マシンシステム、仮想ディスク管理方法、及び仮想ディスク管理プログラムを提供することである。
本発明の第1の仮想マシンシステムは、差分ディスク方式の仮想マシンシステムにおいて、マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを格納するマスタディスクバッファファイルと、仮想マシンからのマスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置についてマスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置におけるマスタディスクバッファファイルのデータと同一である場合に、書き込み要求を破棄するディスク制御手段とを備える。
本発明の第1の仮想ディスク制御方法は、差分ディスク方式の仮想マシンシステムの仮想ディスク制御方法において、マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを、マスタディスクバッファファイルに格納し、仮想マシンからのマスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置についてマスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置におけるマスタディスクバッファファイルのデータと同一である場合に、書き込み要求を破棄する。
本発明の第1の仮想ディスク制御プログラムは、差分ディスク方式の仮想マシンシステム上で動作する仮想ディスク制御プログラムであって、仮想ディスクの制御を行うコンピュータに、マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを、マスタディスクバッファファイルに格納する処理と、仮想マシンからのマスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置についてマスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置におけるマスタディスクバッファファイルのデータと同一である場合に、書き込み要求を破棄する処理を、実行させる。
本発明によれば、マスタディスクファイルに対する同一内容のデータ書き込み処理を最小限に抑制することで、ディスク性能、つまり仮想マシン性能の低減を回避し、ディスク容量の削減効率を高めることができる。
本発明は、差分ディスク方式において、仮想マシンからマスタディスクファイルに該当するブロック位置への書き込み処理が発生した場合、このブロック位置情報を確認し、既に他の仮想マシンから、同一ブロック位置への書き込み処理が行われたかを判断し、書き込みが行われていた場合は、さらに、そのデータ内容が同一であるかを確認し、同一である場合、この書き込み処理自体を破棄し、既に書き込まれた更新データを参照させることを特徴とする。
具体的には、本発明にて実現するシステムでは、仮想マシンからのマスタディスクファイルに該当するブロック位置への書き込み処理が発生した場合に、このブロック位置情報と、書き込みデータ内容とを確認するディスク制御機能、ならびに、このディスク制御機能から伝達されるブロック位置情報を受信し、そのブロック位置情報と、書き込み要求元となる仮想マシン情報を記録する更新情報記録ファイルと、更新情報記録ファイルに書き込みおよび読み込み処理を行う更新情報制御機能、を具備する。
更新情報記録ファイルに記録される仮想マシン情報は、該当ブロック位置におけるマスタディスクバッファファイルを参照する仮想マシン情報が記録される。
ディスク制御機能は、データ読み込み時のブロック位置情報の確認、および仮想ディスクファイルから該当ブロック位置に格納されているデータを仮想マシンに伝達する機能、ならびに、各仮想ディスクファイルから、任意のブロック位置に格納されたデータを確認する機能も備える。
また、任意の仮想マシンからマスタディスクファイルの所定のブロック位置への初めての書き込み処理が発生した場合、そのデータを格納するための仮想ディスクファイル(以下、マスタディスクバッファファイル)も具備する。
ディスク制御機能は、仮想マシンからマスタディスクファイルに該当するブロック位置への書き込み処理が発生した場合、このブロック位置情報を確認し、更新情報制御機能に伝達する。更新情報制御機能は、伝達されたブロック位置情報と、更新情報記録ファイルに記録(過去更新)されたブロック位置情報との比較を行う。比較した結果は、ディスク制御機能に伝達される。
比較結果が偽(過去更新された記録無し)である場合、更新情報制御機能は、該当ブロック位置における初めての書き込み処理と認識し、更新情報記録ファイルに今回の書き込みにより変更されるブロック位置情報と、書き込み要求元となる仮想マシン情報を記録し、ディスク制御機能は、マスタディスクバッファファイルにデータを書き込み、処理を終了する。比較結果が真(=過去更新された記録あり)である場合、次に、更新情報制御機能は、仮想マシン情報と、今回の書き込み要求元となる仮想マシン情報とを比較し、該当ブロック位置のデータを参照する仮想マシンが、今回の書き込み要求元となる仮想マシンだけであるかどうかを、確認する。
確認の結果が真(該当ブロック位置を参照する仮想マシンが、今回の書き込み要求元となる仮想マシンのみ)である場合、ディスク制御機能は、マスタディスクバッファファイルにデータを書き込む。
確認の結果が偽(該当ブロック位置を参照する仮想マシンが、今回の書き込み要求元となる仮想マシンのみではない)である場合、ディスク制御機能は、該当ブロック位置におけるマスタディスクバッファファイルのデータと、今回の書き込み要求のデータとを比較し、同一であるかどうかを確認する。
確認の結果が偽(データが異なる)である場合、ディスク制御機能は、今回の書き込み要求元となる仮想マシンが保持する差分ディスクにデータを書き込み、処理を終了する。確認の結果が真(データが同一)である場合、ディスク制御機能は、書き込み要求自体を破棄し、仮想ディスクファイルへの書き込み処理を実施させない。次に、更新情報制御機能が、更新情報記録ファイルに、今回の書き込み要求元となる仮想マシン情報を記録し、処理を終了する。
仮想マシンからデータの読み込みが発生した場合、ディスク制御機能は、この読み込み対象となるブロック位置情報を更新情報制御機能に伝達する。更新情報制御機能は、伝達されたブロック位置情報と、更新情報記録ファイルに記録されたブロック位置情報との比較を行う。比較した結果は、ディスク制御機能に伝達される。
受信した比較結果が偽(=過去更新された記録なし)である場合、ディスク制御機能は、該当ブロック位置におけるマスタディスクファイルからデータを読み込み、仮想マシンにデータを伝達し、処理を終了する。
受信した比較結果が真(=過去更新された記録あり)である場合、ディスク制御機能は、読込み要求元となる仮想マシンが保持する差分ディスクファイルに対して該当ブロック位置のデータ有無を確認する。差分ディスクファイルの該当ブロック位置のデータがある場合、そのデータを読み込み、仮想マシンにデータを伝達し、処理を終了する。差分ディスクファイルの該当ブロック位置のデータがない場合、該当ブロック位置におけるマスタディスクバッファファイルからデータを読み込み、仮想マシンにデータを伝達し、処理を終了する。
本発明により、マスタディスクファイルに対して複数の仮想マシンが同一ブロック位置かつ同一データの書き込み処理を実施した場合、マスタディスクバッファファイルにデータが書き込まれる処理は1台目の仮想マシンだけであり、2台目以降の仮想マシンからの書き込みは破棄することが可能となり、ディスク書き込みの低減、つまりディスク性能低下が実現できる。また、仮想マシンごとの差分ディスクへの書き込みも不要となるため、差分ディスクの肥大化を回避することが実現できる。
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。
なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
本発明の第1の実施の形態について、図面を参照して詳細に説明する。以下の図において、本発明の本質に関わらない部分の構成については適宜省略してあり、図示されていない。
本発明の第1の実施の形態について、図面を参照して詳細に説明する。以下の図において、本発明の本質に関わらない部分の構成については適宜省略してあり、図示されていない。
図1は、本実施の形態による仮想マシンシステム1000の構成を示すブロック図である。
図1を参照すると、仮想マシンシステム1000は、仮想マシン100と、仮想マシン200と、仮想ディスク制御部400と、仮想基盤500と、記憶領域600と、から構成される。
仮想マシン100は、仮想ハードウェア110と、ゲストOS101と、ゲストOS101上で動作するアプリケーション102から構成される。仮想ハードウェア110には、ゲストOS101ならびにアプリケーション102などのデータを格納するための、仮想ディスク120を備える。説明は省略するが、仮想マシン200も仮想マシン100と同様な構成となる。
仮想ディスク120から読み込むデータは、後述する記憶領域610内のマスタディスクファイル611と、マスタディスクバッファファイル612と、差分ディスクファイル613に格納される。仮想ディスク120に書き込むデータは、マスタディスクバッファファイル612と、差分ディスクファイル613に格納される。
仮想ディスク制御部400は、仮想マシンからのデータ読み込みおよび書き込みを制御するディスク制御手段410と、仮想ディスクファイル内のブロック更新位置情報、ならびに該当ブロックを参照する仮想マシン情報の確認および記録を制御する更新情報制御手段420と、ブロック更新位置情報と仮想マシン情報が記録される更新情報記録ファイル430と、を含む。
ディスク制御手段410は、仮想マシン100からの読み込みまたは書き込み要求を受信し、要求元の仮想マシン情報と、書き込み要求におけるブロック位置情報と、書き込みデータ内容とを確認する機能を有する。
また、ディスク制御手段410は、各構成要素に対して情報を伝達する機能、及び各仮想ディスクファイルに対して書き込みを実施する機能を有する。
また、ディスク制御手段410は、書き込みデータ内容とマスタディスクバッファファイル612に書き込まれているデータとを比較し、該比較結果が同一である場合、書き込み要求を破棄する機能とを有する。
更新情報制御手段420は、更新情報記録ファイル430に記録された情報をディスク制御手段410に伝達する機能を有する。
また、更新情報制御手段420は、ディスク制御手段410から伝達される、要求元の仮想マシン情報と、書き込み要求におけるブロック位置情報と、を更新情報記録ファイル430に記録する機能を有する。
また、更新情報制御手段420は、ディスク制御手段410から伝達された該情報と更新情報記録ファイル430に記録されている情報とを比較し、該比較結果をディスク制御手段410に伝達する機能を有する。
更新情報記録ファイル430は、更新情報制御手段420から伝達される、仮想マシン情報とブロック位置情報とが記録される。
仮想基盤500は、仮想マシン100ならびに仮想マシン200と、仮想ディスク制御部400と、を動作させる機能を備える。
記憶装置600は、各仮想マシンが持つ仮想ディスクの実態となる仮想ディスクファイルを格納する記憶領域610を備える。
記憶領域610は、各仮想マシンで共有可能なデータを持つマスタディスクファイル611と、任意の仮想マシンからマスタディスクファイル611に該当するブロック位置へ初めて書き込み処理が発生した場合、そのデータを格納するためのマスタディスクバッファファイル612と、各仮想マシンが保持する差分ディスクファイル613ならびに差分ディスクファイル614と、を備える。
ここで、差分ディスクファイル612は、仮想マシン100が持つ仮想ディスク120、差分ディスクファイル613は、仮想マシン200が持つ仮想ディスク220が、それぞれ該当する。
(第1の実施の形態の動作の説明)
次に、本実施の形態による仮想マシンシステム1000の動作について、図面を参照して詳細に説明する。
次に、本実施の形態による仮想マシンシステム1000の動作について、図面を参照して詳細に説明する。
(仮想ディスクファイルへの書き込みの動作の説明)
図2は、本実施の形態による仮想マシンシステム1000の仮想ディスクファイルへの書き込みの動作を示すフローチャートである。
図2は、本実施の形態による仮想マシンシステム1000の仮想ディスクファイルへの書き込みの動作を示すフローチャートである。
まず、仮想マシン100から、マスタディスクファイル611に該当するブロック位置に対して書き込み処理が発生した場合(ステップB1)、ディスク制御手段410は、このブロック位置情報を確認し、更新情報制御手段420に伝達する。更新情報制御手段420は、伝達されたブロック位置情報と、更新情報記録ファイル430に記録されたブロック位置情報との比較を行い、その結果をディスク制御手段410に伝達する(ステップB2、ステップB3)。
比較結果が偽である場合、更新情報制御手段420は、このブロック位置情報と仮想マシン100の情報を、更新情報記録ファイル430に記録する(ステップB4)。ディスク制御手段410は、マスタディスクバッファファイル612に書き込み要求のあったデータを書き込み(ステップB10)、書き込み処理を終了する。
比較結果が真である場合、更新情報制御手段420は、このブロック位置を参照する仮想マシンが、今回の書き込み要求元となる仮想マシン100だけかどうかを、更新情報記録ファイル430から確認する(ステップB5、ステップB6)。
確認結果が真であれば、ディスク制御手段410は、マスタディスクバッファファイル612に書き込み要求のあったデータを書き込み(ステップB10)、処理を終了する。確認結果が偽である場合、ディスク制御手段410は、マスタディスクバッファファイル612の該当ブロック位置におけるデータと、今回の書き込み要求のデータとを比較し、同一であるかどうかを確認する(ステップB7、ステップB8)。
データ比較結果が偽である場合、ディスク制御手段410は、今回の書き込み要求元となる仮想マシン100が保持する差分ディスクファイル613に、該当データを書き込み(ステップB11)、処理を終了する。
データ比較結果が真である場合、ディスク制御手段410は、仮想マシン100からの書き込み要求を破棄する(ステップB9)。次に、更新情報制御手段420に対して、更新情報記録ファイル430に、今回の書き込み要求元となる仮想マシン100の情報を記録し(ステップB12)、処理を終了する。
(仮想ディスクファイルからの読み込みの動作の説明)
図3は、本実施の形態による仮想マシンシステム1000の仮想ディスクファイルへからの読み込みの動作を示すフローチャートである。
図3は、本実施の形態による仮想マシンシステム1000の仮想ディスクファイルへからの読み込みの動作を示すフローチャートである。
まず、仮想マシン100からデータの読み込み要求が発生した場合、ディスク制御手段410は、この読み込み対象となるブロック位置情報を更新情報制御手段420に伝達し、更新情報制御手段420は、伝達されたブロック位置情報と、更新情報記録ファイル430に記録されたブロック位置情報との比較を行い、その結果をディスク制御手段410に伝達する(ステップA2、ステップA3)。
比較結果が偽である場合、ディスク制御手段410は、該当ブロック位置におけるマスタディスクファイル611からデータを読み込み(ステップA7)、仮想マシン100にデータを伝達し、処理を終了する(ステップA9)。
比較結果が真である場合、ディスク制御手段410は、読込み要求元となる仮想マシン100が保持する差分ディスクファイル613に対して、該当ブロック位置のデータ有無を確認する(ステップA4、ステップA5)。
差分ディスクファイル613にデータがある場合、そのデータを読み込み(ステップA6)、仮想マシン100にデータを伝達し、処理を終了する(ステップA9)。
差分ディスクファイル613にデータがない場合、該当ブロック位置におけるマスタディスクバッファファイル612からデータを読み込み(ステップA8)、仮想マシンにデータを伝達し、処理を終了する(ステップA9)。
(第1の実施の形態による効果)
本実施の形態によれば、以下の効果を奏す。
本実施の形態によれば、以下の効果を奏す。
第1の効果は、差分ディスク方式の仮想マシンが複数動作する環境において、マスタディスクファイルに該当する同一ブロック位置かつ同一データの書き込みが複数仮想マシンから発生した場合でも、ディスク性能の低下を回避することができる点である。この結果、OSのセキュリティパッチやウイルス対策ソフトの定義ファイルなどが、複数の仮想マシンで適用された場合でも、仮想マシンのディスク性能低下を回避することが可能となる。
その理由は、仮想マシンからのディスク書き込みに対して、そのブロック位置情報とデータ内容を確認することで、既に他の仮想マシンから同一の更新処理がされていた場合は、同一データが格納されたマスタディスクバッファファイルを参照するだけで、その書き込み処理を破棄することが可能となるからである。
第2の効果は、差分ディスク方式の仮想マシンが複数動作する環境において、マスタディスクファイルに該当する同一ブロック位置かつ同一データの書き込みが複数仮想マシンから発生した場合でも、差分ディスクの肥大化を回避することが可能となる点である。この結果、記憶装置内のディスク使用領域の削減が可能となる。
その理由は、第1の効果で説明した通り、同一ブロック位置かつ同一データの書き込みが複数仮想マシンから発生した場合は、差分ディスクへの書き込みが抑制されるためである。
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
次に、本発明の第2の実施の形態について説明する。
本実施の形態では、ディスク制御手段410が、差分ディスクファイル613の任意のブロック位置にあるデータ情報を削除する機能を有する。
具体的には、仮想マシン100からの書き込み要求において、書き込み要求のデータが、マスタディスクバッファファイル612の該当するブロック位置におけるデータと、同じと判定された場合で、かつ差分ディスクファイル613の該当するブロック位置に不要なデータがある場合に、ディスク制御手段410が、そのデータを削除する。
なお、仮想マシンシステム1000の構成自体は図1に示す第1の実施の形態と同様であるため説明は省略する。
(第2の実施の形態の動作の説明)
次に、本実施の形態による仮想マシンシステム1000の動作について、図4を参照して詳細に説明する。図4は、本実施の形態による仮想マシンシステム1000の仮想ディスクファイルへの書き込みの動作を示すフローチャートである。
次に、本実施の形態による仮想マシンシステム1000の動作について、図4を参照して詳細に説明する。図4は、本実施の形態による仮想マシンシステム1000の仮想ディスクファイルへの書き込みの動作を示すフローチャートである。
なお、図4のステップB13以外は、図2の処理フローで説明済みであるため、説明を適宜省略する。
また、仮想ディスクファイルからの読み込みの動作については、図3に示す第1の実施の形態の動作と同様であるため、説明は省略する。
図4を参照すると、仮想マシン100からデータ書き込み要求発生時、マスタディスクバッファファイル612の該当ブロック位置におけるデータと、今回の書き込み要求のデータとを比較し、同一であるかどうかを確認(ステップB7、ステップB8)した結果が真である場合、ディスク制御手段410は、仮想マシン100からの書き込み要求を破棄する(ステップB9)。
これにより、最新のデータはマスタディスクバッファファイル612に格納されているため、仮想マシン100が保持する差分ディスクファイル613の該当ブロック位置においてデータが存在している場合は不要とみなし、削除する(ステップB13)。
(第2の実施の形態による効果)
本実施の形態によれば、第1の実施の形態の効果に加え、差分ディスクファイルの不要なデータの解放が実現可能となる。
本実施の形態によれば、第1の実施の形態の効果に加え、差分ディスクファイルの不要なデータの解放が実現可能となる。
次に、本発明の仮想マシンシステム1000のハードウェア構成例について、図5を参照して説明する。図5は、仮想マシンシステム1000のハードウェア構成例を示すブロック図である。
図5を参照すると、仮想マシンシステム1000は、一般的なコンピュータ装置と同様のハードウェア構成であり、CPU(Central Processing Unit)801、RAM(Random Access Memory)等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部802、ネットワークを介してデータの送受信を行う通信部803、入力装置805や出力装置806及び記憶装置807と接続してデータの送受信を行う入出力インタフェース部804、上記各構成要素を相互に接続するシステムバス808を備えている。記憶装置807は、例えば、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
本発明の仮想ディスク制御部400は、プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置807に格納し、そのプログラムを主記憶部802にロードしてCPU801で実行することにより、ソフトウェア的に実現することも可能である。
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
(付記1)
差分ディスク方式の仮想マシンシステムにおいて、
マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを格納するマスタディスクバッファファイルと、
仮想マシンからの前記マスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一である場合に、前記書き込み要求を破棄するディスク制御手段と
を備えることを特徴とする仮想マシンシステム。
差分ディスク方式の仮想マシンシステムにおいて、
マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを格納するマスタディスクバッファファイルと、
仮想マシンからの前記マスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一である場合に、前記書き込み要求を破棄するディスク制御手段と
を備えることを特徴とする仮想マシンシステム。
(付記2)
前記マスタディスクファイルのブロック位置の更新の有無を示す情報と、ブロック位置情報と、当該ブロック位置へのデータの書き込み要求元である仮想マシンの仮想マシン情報とを記録する更新情報記録ファイルと、
前記仮想マシンからの前記マスタディスクファイルへの書き込み要求が発生した場合に、前記ディスク制御手段から送信されるブロック位置情報と、前記更新情報記録ファイルのブロック位置情報を比較して更新の有無を判別し、更新がある場合に、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであるかどうかを判別する更新情報制御手段とを備えることを特徴とする付記1に記載の仮想マシンシステム。
前記マスタディスクファイルのブロック位置の更新の有無を示す情報と、ブロック位置情報と、当該ブロック位置へのデータの書き込み要求元である仮想マシンの仮想マシン情報とを記録する更新情報記録ファイルと、
前記仮想マシンからの前記マスタディスクファイルへの書き込み要求が発生した場合に、前記ディスク制御手段から送信されるブロック位置情報と、前記更新情報記録ファイルのブロック位置情報を比較して更新の有無を判別し、更新がある場合に、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであるかどうかを判別する更新情報制御手段とを備えることを特徴とする付記1に記載の仮想マシンシステム。
(付記3)
前記更新情報制御手段がブロック位置の更新が無いと判定した場合、
前記前記更新情報制御手段は、前記ブロック位置情報と、書き込み要求元となる仮想マシン情報を、前記更新情報記録ファイルに記録し、
前記ディスク制御手段は、書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする付記2に記載の仮想マシンシステム。
前記更新情報制御手段がブロック位置の更新が無いと判定した場合、
前記前記更新情報制御手段は、前記ブロック位置情報と、書き込み要求元となる仮想マシン情報を、前記更新情報記録ファイルに記録し、
前記ディスク制御手段は、書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする付記2に記載の仮想マシンシステム。
(付記4)
前記更新情報制御手段がブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであると判定した場合、
前記ディスク制御手段は、書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする付記2または付記3に記載の仮想マシンシステム。
前記更新情報制御手段がブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであると判定した場合、
前記ディスク制御手段は、書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする付記2または付記3に記載の仮想マシンシステム。
(付記5)
前記更新情報制御手段がブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なると判定した場合、
前記ディスク制御手段は、書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一であるかを判定し、同じである場合、前記書き込み要求を破棄し、異なる場合、書き込み要求されたデータを、差分ディスクファイルに書き込みことを特徴とする付記2から付記4の何れかに記載の仮想マシンシステム。
前記更新情報制御手段がブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なると判定した場合、
前記ディスク制御手段は、書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一であるかを判定し、同じである場合、前記書き込み要求を破棄し、異なる場合、書き込み要求されたデータを、差分ディスクファイルに書き込みことを特徴とする付記2から付記4の何れかに記載の仮想マシンシステム。
(付記6)
前記ディスク制御手段は、書き込み要求を破棄した場合に、仮想マシンが保持する差分ディスクファイルの当該ブロック位置にデータが存在する場合、当該データを削除することを特徴とする付記5に記載の仮想マシンシステム。
前記ディスク制御手段は、書き込み要求を破棄した場合に、仮想マシンが保持する差分ディスクファイルの当該ブロック位置にデータが存在する場合、当該データを削除することを特徴とする付記5に記載の仮想マシンシステム。
(付記7)
仮想マシンから前記マスタディスクファイルの所定のブロック位置のデータ読み込み要求が発生した場合、
前記ディスク制御手段は、
当該ブロック位置の更新が無い場合、前記マスタディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在する場合、前記差分ディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在しない場合、前記マスタディスクバッファファイルから読み込み要求データを読み込むことを特徴とする付記1から付記6の何れかに記載の仮想マシンシステム。
仮想マシンから前記マスタディスクファイルの所定のブロック位置のデータ読み込み要求が発生した場合、
前記ディスク制御手段は、
当該ブロック位置の更新が無い場合、前記マスタディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在する場合、前記差分ディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在しない場合、前記マスタディスクバッファファイルから読み込み要求データを読み込むことを特徴とする付記1から付記6の何れかに記載の仮想マシンシステム。
(付記8)
差分ディスク方式の仮想マシンシステムの仮想ディスク制御方法において、
マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを、マスタディスクバッファファイルに格納し、
仮想マシンからの前記マスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一である場合に、前記書き込み要求を破棄する
ことを特徴とする仮想ディスク制御方法。
差分ディスク方式の仮想マシンシステムの仮想ディスク制御方法において、
マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを、マスタディスクバッファファイルに格納し、
仮想マシンからの前記マスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一である場合に、前記書き込み要求を破棄する
ことを特徴とする仮想ディスク制御方法。
(付記9)
前記マスタディスクファイルのブロック位置の更新の有無を示す情報と、ブロック位置情報と、当該ブロック位置へのデータの書き込み要求元である仮想マシンの仮想マシン情報とを、更新情報記録ファイルに記録し、
前記仮想マシンからの前記マスタディスクファイルへの書き込み要求が発生した場合に、書き込み要求されたブロック位置のブロック位置情報と、前記更新情報記録ファイルのブロック位置情報を比較して更新の有無を判別し、更新がある場合に、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであるかどうかを判別することを特徴とする付記8に記載の仮想ディスク制御方法。
前記マスタディスクファイルのブロック位置の更新の有無を示す情報と、ブロック位置情報と、当該ブロック位置へのデータの書き込み要求元である仮想マシンの仮想マシン情報とを、更新情報記録ファイルに記録し、
前記仮想マシンからの前記マスタディスクファイルへの書き込み要求が発生した場合に、書き込み要求されたブロック位置のブロック位置情報と、前記更新情報記録ファイルのブロック位置情報を比較して更新の有無を判別し、更新がある場合に、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであるかどうかを判別することを特徴とする付記8に記載の仮想ディスク制御方法。
(付記10)
ブロック位置の更新が無いと判定した場合、
前記ブロック位置情報と、書き込み要求元となる仮想マシン情報を、前記更新情報記録ファイルに記録し、
書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする付記9に記載の仮想ディスク制御方法。
ブロック位置の更新が無いと判定した場合、
前記ブロック位置情報と、書き込み要求元となる仮想マシン情報を、前記更新情報記録ファイルに記録し、
書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする付記9に記載の仮想ディスク制御方法。
(付記11)
ブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであると判定した場合、
書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする付記9または付記10に記載の仮想ディスク制御方法。
ブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであると判定した場合、
書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする付記9または付記10に記載の仮想ディスク制御方法。
(付記12)
ブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なると判定した場合、
書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一であるかを判定し、同じである場合、前記書き込み要求を破棄し、異なる場合、書き込み要求されたデータを、差分ディスクファイルに書き込みことを特徴とする付記9から付記11の何れかに記載の仮想ディスク制御方法。
ブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なると判定した場合、
書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一であるかを判定し、同じである場合、前記書き込み要求を破棄し、異なる場合、書き込み要求されたデータを、差分ディスクファイルに書き込みことを特徴とする付記9から付記11の何れかに記載の仮想ディスク制御方法。
(付記13)
書き込み要求を破棄した場合に、仮想マシンが保持する差分ディスクファイルの当該ブロック位置にデータが存在する場合、当該データを削除することを特徴とする付記12に記載の仮想ディスク制御方法。
書き込み要求を破棄した場合に、仮想マシンが保持する差分ディスクファイルの当該ブロック位置にデータが存在する場合、当該データを削除することを特徴とする付記12に記載の仮想ディスク制御方法。
(付記14)
仮想マシンから前記マスタディスクファイルの所定のブロック位置のデータ読み込み要求が発生した場合、
当該ブロック位置の更新が無い場合、前記マスタディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在する場合、前記差分ディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在しない場合、前記マスタディスクバッファファイルから読み込み要求データを読み込むことを特徴とする付記8から付記13の何れかに記載の仮想ディスク制御方法。
仮想マシンから前記マスタディスクファイルの所定のブロック位置のデータ読み込み要求が発生した場合、
当該ブロック位置の更新が無い場合、前記マスタディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在する場合、前記差分ディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在しない場合、前記マスタディスクバッファファイルから読み込み要求データを読み込むことを特徴とする付記8から付記13の何れかに記載の仮想ディスク制御方法。
(付記15)
差分ディスク方式の仮想マシンシステム上で動作する仮想ディスク制御プログラムであって、
仮想ディスクの制御を行うコンピュータに、
マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを、マスタディスクバッファファイルに格納する処理と、
仮想マシンからの前記マスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一である場合に、前記書き込み要求を破棄する処理を、実行させることを特徴とする仮想ディスク制御プログラム。
差分ディスク方式の仮想マシンシステム上で動作する仮想ディスク制御プログラムであって、
仮想ディスクの制御を行うコンピュータに、
マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを、マスタディスクバッファファイルに格納する処理と、
仮想マシンからの前記マスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一である場合に、前記書き込み要求を破棄する処理を、実行させることを特徴とする仮想ディスク制御プログラム。
(付記16)
前記コンピュータに、
前記マスタディスクファイルのブロック位置の更新の有無を示す情報と、ブロック位置情報と、当該ブロック位置へのデータの書き込み要求元である仮想マシンの仮想マシン情報とを、更新情報記録ファイルに記録する処理と、
前記仮想マシンからの前記マスタディスクファイルへの書き込み要求が発生した場合に、書き込み要求されたブロック位置のブロック位置情報と、前記更新情報記録ファイルのブロック位置情報を比較して更新の有無を判別し、更新がある場合に、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであるかどうかを判別する処理を、実行させることを特徴とする付記15に記載の仮想ディスク制御プログラム。
前記コンピュータに、
前記マスタディスクファイルのブロック位置の更新の有無を示す情報と、ブロック位置情報と、当該ブロック位置へのデータの書き込み要求元である仮想マシンの仮想マシン情報とを、更新情報記録ファイルに記録する処理と、
前記仮想マシンからの前記マスタディスクファイルへの書き込み要求が発生した場合に、書き込み要求されたブロック位置のブロック位置情報と、前記更新情報記録ファイルのブロック位置情報を比較して更新の有無を判別し、更新がある場合に、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであるかどうかを判別する処理を、実行させることを特徴とする付記15に記載の仮想ディスク制御プログラム。
(付記17)
ブロック位置の更新が無いと判定した場合、
前記ブロック位置情報と、書き込み要求元となる仮想マシン情報を、前記更新情報記録ファイルに記録し、
書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込む処理を行うことを特徴とする付記16に記載の仮想ディスク制御プログラム。
ブロック位置の更新が無いと判定した場合、
前記ブロック位置情報と、書き込み要求元となる仮想マシン情報を、前記更新情報記録ファイルに記録し、
書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込む処理を行うことを特徴とする付記16に記載の仮想ディスク制御プログラム。
(付記18)
ブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであると判定した場合、
書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込む処理を行うことを特徴とする付記16または付記17に記載の仮想ディスク制御プログラム。
ブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであると判定した場合、
書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込む処理を行うことを特徴とする付記16または付記17に記載の仮想ディスク制御プログラム。
(付記19)
ブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なると判定した場合、
書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一であるかを判定し、同じである場合、前記書き込み要求を破棄し、異なる場合、書き込み要求されたデータを、差分ディスクファイルに書き込み処理を行うことを特徴とする付記16から付記18の何れかに記載の仮想ディスク制御プログラム。
ブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なると判定した場合、
書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一であるかを判定し、同じである場合、前記書き込み要求を破棄し、異なる場合、書き込み要求されたデータを、差分ディスクファイルに書き込み処理を行うことを特徴とする付記16から付記18の何れかに記載の仮想ディスク制御プログラム。
(付記20)
書き込み要求を破棄した場合に、仮想マシンが保持する差分ディスクファイルの当該ブロック位置にデータが存在する場合、当該データを削除する処理を行うことを特徴とする付記19に記載の仮想ディスク制御プログラム。
書き込み要求を破棄した場合に、仮想マシンが保持する差分ディスクファイルの当該ブロック位置にデータが存在する場合、当該データを削除する処理を行うことを特徴とする付記19に記載の仮想ディスク制御プログラム。
(付記21)
仮想マシンから前記マスタディスクファイルの所定のブロック位置のデータ読み込み要求が発生した場合、
当該ブロック位置の更新が無い場合、前記マスタディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在する場合、前記差分ディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在しない場合、前記マスタディスクバッファファイルから読み込み要求データを読み込む処理を行うことを特徴とする付記15から付記20の何れかに記載の仮想ディスク制御プログラム。
仮想マシンから前記マスタディスクファイルの所定のブロック位置のデータ読み込み要求が発生した場合、
当該ブロック位置の更新が無い場合、前記マスタディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在する場合、前記差分ディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在しない場合、前記マスタディスクバッファファイルから読み込み要求データを読み込む処理を行うことを特徴とする付記15から付記20の何れかに記載の仮想ディスク制御プログラム。
差分ディスクの仮想マシン環境であれば本発明を適用することが可能である。特に本発明が高い効果を発揮するのは、OSやアプリケーションが同一の仮想マシン環境であり、さらに仮想マシンの台数が多いシステムであるため、仮想マシンを利用したシンクライアントシステムでの利用が最適であると考えられる。
1000:仮想マシンシステム
100、200:仮想マシン
101、201:ゲストOS
110、210:仮想ハードウェア
120、220:仮想ディスク
400:仮想ディスク制御部
410:ディスク制御手段
420:更新情報制御手段
430:更新情報記録ファイル
500:仮想基盤
600:記憶装置
610:記憶領域
611:マスタディスクファイル
612:マスタディスクバッファファイル
613、614:差分ディスクファイル
801:CPU
802:主記憶部
803:通信部
804:入出力インタフェース部
805:入力装置
806:出力装置
807:記憶装置
808:システムバス
100、200:仮想マシン
101、201:ゲストOS
110、210:仮想ハードウェア
120、220:仮想ディスク
400:仮想ディスク制御部
410:ディスク制御手段
420:更新情報制御手段
430:更新情報記録ファイル
500:仮想基盤
600:記憶装置
610:記憶領域
611:マスタディスクファイル
612:マスタディスクバッファファイル
613、614:差分ディスクファイル
801:CPU
802:主記憶部
803:通信部
804:入出力インタフェース部
805:入力装置
806:出力装置
807:記憶装置
808:システムバス
Claims (9)
- 差分ディスク方式の仮想マシンシステムにおいて、
マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを格納するマスタディスクバッファファイルと、
仮想マシンからの前記マスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一である場合に、前記書き込み要求を破棄するディスク制御手段と
を備えることを特徴とする仮想マシンシステム。 - 前記マスタディスクファイルのブロック位置の更新の有無を示す情報と、ブロック位置情報と、当該ブロック位置へのデータの書き込み要求元である仮想マシンの仮想マシン情報とを記録する更新情報記録ファイルと、
前記仮想マシンからの前記マスタディスクファイルへの書き込み要求が発生した場合に、前記ディスク制御手段から送信されるブロック位置情報と、前記更新情報記録ファイルのブロック位置情報を比較して更新の有無を判別し、更新がある場合に、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであるかどうかを判別する更新情報制御手段とを備えることを特徴とする請求項1に記載の仮想マシンシステム。 - 前記更新情報制御手段がブロック位置の更新が無いと判定した場合、
前記前記更新情報制御手段は、前記ブロック位置情報と、書き込み要求元となる仮想マシン情報を、前記更新情報記録ファイルに記録し、
前記ディスク制御手段は、書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする請求項2に記載の仮想マシンシステム。 - 前記更新情報制御手段がブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと同じであると判定した場合、
前記ディスク制御手段は、書き込み要求されたデータを、前記マスタディスクバッファファイルに書き込むことを特徴とする請求項2または請求項3に記載の仮想マシンシステム。 - 前記更新情報制御手段がブロック位置の更新があり、かつ書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なると判定した場合、
前記ディスク制御手段は、書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一であるかを判定し、同じである場合、前記書き込み要求を破棄し、異なる場合、書き込み要求されたデータを、差分ディスクファイルに書き込みことを特徴とする請求項2から請求項4の何れかに記載の仮想マシンシステム。 - 前記ディスク制御手段は、書き込み要求を破棄した場合に、仮想マシンが保持する差分ディスクファイルの当該ブロック位置にデータが存在する場合、当該データを削除することを特徴とする請求項5に記載の仮想マシンシステム。
- 仮想マシンから前記マスタディスクファイルの所定のブロック位置のデータ読み込み要求が発生した場合、
前記ディスク制御手段は、
当該ブロック位置の更新が無い場合、前記マスタディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在する場合、前記差分ディスクファイルから読み込み要求データを読み込み、
当該ブロック位置の更新があり、差分ディスクファイルに読み込み要求データが存在しない場合、前記マスタディスクバッファファイルから読み込み要求データを読み込むことを特徴とする請求項1から請求項6の何れかに記載の仮想マシンシステム。 - 差分ディスク方式の仮想マシンシステムの仮想ディスク制御方法において、
マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを、マスタディスクバッファファイルに格納し、
仮想マシンからの前記マスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一である場合に、前記書き込み要求を破棄する
ことを特徴とする仮想ディスク制御方法。 - 差分ディスク方式の仮想マシンシステム上で動作する仮想ディスク制御プログラムであって、
仮想ディスクの制御を行うコンピュータに、
マスタディスクファイルの所定のブロック位置毎に、当該ブロック位置に初めて書き込まれるデータ及び当該データの書き込みを行った仮想マシンと同じ仮想マシンからの書き込みデータを、マスタディスクバッファファイルに格納する処理と、
仮想マシンからの前記マスタディスクファイルの所定のブロック位置への書き込み要求が発生した場合、書き込み要求元の仮想マシンが当該ブロック位置について前記マスタディスクバッファファイルへの書き込みを行った仮想マシンと異なり、かつ書き込みデータが当該ブロック位置における前記マスタディスクバッファファイルのデータと同一である場合に、前記書き込み要求を破棄する処理を、実行させることを特徴とする仮想ディスク制御プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011047288A JP2012185605A (ja) | 2011-03-04 | 2011-03-04 | 仮想マシンシステム、仮想ディスク管理方法、及び仮想ディスク管理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011047288A JP2012185605A (ja) | 2011-03-04 | 2011-03-04 | 仮想マシンシステム、仮想ディスク管理方法、及び仮想ディスク管理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012185605A true JP2012185605A (ja) | 2012-09-27 |
Family
ID=47015657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011047288A Withdrawn JP2012185605A (ja) | 2011-03-04 | 2011-03-04 | 仮想マシンシステム、仮想ディスク管理方法、及び仮想ディスク管理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012185605A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014191405A (ja) * | 2013-03-26 | 2014-10-06 | Nec Corp | 仮想化システム、仮想サーバ、ファイル書き込み方法、及びファイル書き込みプログラム |
JP2015176427A (ja) * | 2014-03-17 | 2015-10-05 | 日本電気株式会社 | ディスク管理装置、ディスク管理プログラムならびにディスク管理方法 |
CN106484312A (zh) * | 2015-09-01 | 2017-03-08 | 北京金山云网络技术有限公司 | 一种虚拟机磁盘数据迁移方法及装置 |
-
2011
- 2011-03-04 JP JP2011047288A patent/JP2012185605A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014191405A (ja) * | 2013-03-26 | 2014-10-06 | Nec Corp | 仮想化システム、仮想サーバ、ファイル書き込み方法、及びファイル書き込みプログラム |
JP2015176427A (ja) * | 2014-03-17 | 2015-10-05 | 日本電気株式会社 | ディスク管理装置、ディスク管理プログラムならびにディスク管理方法 |
CN106484312A (zh) * | 2015-09-01 | 2017-03-08 | 北京金山云网络技术有限公司 | 一种虚拟机磁盘数据迁移方法及装置 |
CN106484312B (zh) * | 2015-09-01 | 2019-07-26 | 北京金山云网络技术有限公司 | 一种虚拟机磁盘数据迁移方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6605078B2 (ja) | 情報処理方法、情報処理装置、サーバ及びコンピュータ読み取り可能な記録媒体 | |
JP5369807B2 (ja) | ストレージ装置 | |
US9354907B1 (en) | Optimized restore of virtual machine and virtual disk data | |
CN113568566B (zh) | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 | |
US10592352B1 (en) | Backup system | |
JP5582418B2 (ja) | トランザクションメモリ | |
JP2022546566A (ja) | アプリケーション整合性ポイントインタイムをマークするためのシステム及び方法 | |
US10609141B2 (en) | Methods and apparatuses for cluster switching | |
US11516287B2 (en) | Method and apparatus for performing simple storage service seamless migration using index objects | |
WO2009123342A1 (ja) | データベースシステム、データベース更新方法、データベース、及びデータベース更新プログラム | |
WO2022048358A1 (zh) | 数据处理方法、装置及存储介质 | |
US20140082275A1 (en) | Server, host and method for reading base image through storage area network | |
JP2021522577A (ja) | ホスト認識更新書き込みの方法、システム、およびコンピュータ・プログラム | |
JP2012185605A (ja) | 仮想マシンシステム、仮想ディスク管理方法、及び仮想ディスク管理プログラム | |
JP6033420B2 (ja) | ストレージシステムおよびストレージシステムの制御方法 | |
US8819657B1 (en) | Method and apparatus for maintaining data consistency in a virtualized application during software update installation | |
JP4841408B2 (ja) | ボリューム移行プログラム及び方法 | |
US11226875B2 (en) | System halt event recovery | |
JP2013073388A (ja) | ストレージ装置、ストレージ装置の制御方法及びストレージシステム | |
JP6089855B2 (ja) | 仮想化システム、仮想サーバ、ファイル書き込み方法、及びファイル書き込みプログラム | |
US10712952B1 (en) | Metadata caches in a reliable distributed computing system | |
JP2013025655A (ja) | ログファイル管理モジュールおよびログファイル管理方法 | |
CN112445413A (zh) | 一种数据存储的方法、装置及相关设备 | |
CN113568567B (zh) | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 | |
JP2014170448A (ja) | レプリケーションシステム、業務処理システム、レプリケーション方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20131023 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140513 |