JP5428455B2 - 仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム - Google Patents

仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム Download PDF

Info

Publication number
JP5428455B2
JP5428455B2 JP2009081970A JP2009081970A JP5428455B2 JP 5428455 B2 JP5428455 B2 JP 5428455B2 JP 2009081970 A JP2009081970 A JP 2009081970A JP 2009081970 A JP2009081970 A JP 2009081970A JP 5428455 B2 JP5428455 B2 JP 5428455B2
Authority
JP
Japan
Prior art keywords
file
virtual machine
storage area
virtual
virtual storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009081970A
Other languages
English (en)
Other versions
JP2010237742A (ja
Inventor
倫太郎 村岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009081970A priority Critical patent/JP5428455B2/ja
Publication of JP2010237742A publication Critical patent/JP2010237742A/ja
Application granted granted Critical
Publication of JP5428455B2 publication Critical patent/JP5428455B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラムに関し、特に、複数の仮想マシンの間でファイルを共有する仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラムに関する。
昨今、仮想化技術の発展により仮想マシンサーバの運用が広まりつつある。仮想マシンサーバは1台の計算機システム内に複数の仮想マシンであるゲストOS(Operating System)を構築し、個々のゲストOSを独立したOSとして機能させる技術である。ゲストOSは、ベースとなる仮想マシンサーバ内部に構築された仮想記憶領域にインストールされ、他のゲストOSとは独立して動作することを可能としている。仮想マシンサーバの一般的な使い方として、1台の仮想マシンサーバ内に複数の仮想化されたクライアントPCを構築することが考えられる。
特許文献1には、仮想計算機ごとに一つ又は複数の仮想ディスクを記憶領域として提供する技術が開示されている。
また、特許文献2にかかる仮想記憶計算機システムは、複数の仮想計算機で共用する実ファイル装置を備え、複数のOSから出される実ファイル装置に対する入出力要求にかかるレコード排他制御を行って、入出力管理部に入出力要求を渡すと共に、入出力管理部から受け取った入出力事象を入出力要求元に通知するファイル管理部を備える。
また、特許文献3にかかる仮想計算機システムは、セグメンテーション方式による仮想記憶管理機能を使用する複数の仮想計算機と、複数の仮想計算機により使用可能で実計算機システムに接続された実ボリューム装置とを含んでいる。さらに、特許文献3にかかるファイル管理テーブルは、共用可能な各実ボリューム装置内のファイル資源に対する名称である実ファイル名、及び、対応するファイルを共用することを要求中である各ジョブ識別名を保持している各々のファイル共用制御に必要な各種の制御情報などを管理している。そして、当該ファイル管理テーブルは、資源割当て解放制御手段及びファイル共用制御手段、並びに、実ボリューム装置認識手段により参照、更新される。
特開2005−222123号公報 特開平02−081239号公報 特開平07−013823号公報
上述したように仮想マシンサーバにより1台の計算機内に複数のOSを稼働させることが可能である。それに伴い、当該計算機が備えるリソース(特に、HDD(Hard Disk Drive))も稼働させるOSの数分が個別に必要となる。近年、HDDの大容量化が進んでいるが、OSが必要とするHDD容量も増大している。そのため、本来、仮想マシンサーバは、1台の計算機内に複数の仮想マシンを稼働させることができるものでありながら、物理的な制約が大きいという問題点を有する。
また、特許文献1乃至3においては、個々の仮想マシンは、ファイルの格納先が共有された仮想記憶領域であるか否かを予め認識しておく必要がある。つまり、所望のファイルが共有された仮想記憶領域に格納されている場合は、個々の仮想マシンは、明示的に共有された仮想記憶領域に対して当該所望のファイルの取得を要求する必要がある。
特許文献1乃至3にかかる技術は、アプリケーションが使用するファイルを対象としたものには有効であるが、例えば、OSが利用するシステムファイル等の共有には適さない。その理由は、システムファイル等の格納先は、通常、他の仮想マシンから独立したローカルの記憶領域であるためである。仮に、システムファイルを複数の仮想マシンで共有した場合、複数の仮想マシンは、当該システムファイルが共有された仮想記憶領域に格納されていることを予め認識しておく必要がある。つまり、仮想マシンは、システムファイルの参照先として通常とは異なる格納先を明示的に指定する必要がある。これは、仮想環境としての要件を満たさない可能性がある。さらに、システムファイル等は、環境に応じて部分的に設定変更されることもあり、格納先の管理が煩雑である。そのため、単に共有された仮想記憶領域に排他制御をかけるだけでは実現できない。
本発明は、このような問題点を解決するためになされたものであり、各仮想マシンの仮想記憶領域の独立性を保ちつつ、仮想記憶領域を効率的に共有することで、1台の計算機に多数の仮想マシンを稼働させることができる仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラムを提供することを目的とする。
本発明の第1の態様にかかる仮想マシンサーバは、複数の仮想マシンのそれぞれが参照及び更新するファイルを格納する仮想的な記憶領域である複数の専用仮想記憶領域と、前記複数の仮想マシンの内、少なくとも2以上の仮想マシンによって参照されるファイルを格納する仮想的な記憶領域である共用仮想記憶領域と、前記複数の仮想マシンに含まれる任意の仮想マシンから当該任意の仮想マシンに対応する専用仮想記憶領域に対して参照要求されたファイルが前記共用仮想記憶領域に格納されている場合に、当該参照要求されたファイルを前記共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力する入出力代行手段と、を備える。
本発明の第2の態様にかかる仮想マシン制御方法は、複数の仮想マシンに含まれる任意の仮想マシンから、当該任意の仮想マシンが参照及び更新するファイルを格納する専用仮想記憶領域に対するファイルの参照要求を受信する受信ステップと、前記任意の仮想マシンを含む少なくとも2以上の仮想マシンによって参照されるファイルを格納する仮想的な記憶領域である共用仮想記憶領域に、前記参照要求されたファイルが格納されている場合に、当該参照要求されたファイルを前記共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力する入出力代行ステップと、を含む。
本発明の第3の態様にかかる仮想マシン制御プログラムは、複数の仮想マシンに含まれる任意の仮想マシンから、当該任意の仮想マシンが参照及び更新するファイルを格納する専用仮想記憶領域に対するファイルの参照要求を受信する受信処理と、前記任意の仮想マシンを含む少なくとも2以上の仮想マシンにおいて参照されるファイルを格納する仮想的な記憶領域である共用仮想記憶領域に、前記参照要求されたファイルが格納されている場合に、当該参照要求されたファイルを前記共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力する入出力代行処理と、を含む処理をコンピュータに実行させる。
本発明によれば、各仮想マシンの仮想記憶領域の独立性を保ちつつ、仮想記憶領域を効率的に共有することで、1台の計算機に多数の仮想マシンを稼働させることができる仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラムを提供することができる。
本発明の実施の形態1にかかる仮想マシンサーバの概念を説明する図である。 本発明の実施の形態1にかかる仮想マシンサーバのハードウェアの構成を示すブロック図である。 本発明の実施の形態2にかかる共有ファイルの参照処理の流れを示すシーケンス図である。 本発明の実施の形態2にかかる共有ファイルの参照処理の概念を説明する図である。 本発明の実施の形態2にかかる共有ファイルの更新処理の流れを示すシーケンス図である。 本発明の実施の形態2にかかる共有ファイルの移動処理の流れを示すシーケンス図である。 本発明の実施の形態2にかかる更新時の共有ファイルの移動処理の流れを示すシーケンス図である。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
<発明の実施の形態1>
図1は、本発明の実施の形態1にかかる仮想マシンサーバ1の概念を説明する図である。仮想マシンサーバ1は、1台の計算機で実現され、複数の仮想マシンを稼働させることができる。仮想マシンサーバ1は、仮想マシン11、仮想マシン12、入出力代行手段13、専用仮想記憶領域14、共用仮想記憶領域15、専用仮想記憶領域16を備える。
仮想マシン11及び仮想マシン12は、インストールされたOSに基づき仮想マシンサーバ1内で稼働する仮想的な計算機システムである。ここでは、仮想マシン11及び仮想マシン12は、同一のOSがインストールされているものとする。また、仮想マシン11及び仮想マシン12は、OSのシステムファイル、レジストリ情報等について同一の内容のファイルを使用するものである。そして、仮想マシン11及び仮想マシン12は、ユーザアカウント、コンピュータ名及びネットワーク情報という固有の情報について仮想マシン毎に異なる内容のファイルを使用する。同様に、仮想マシン11及び仮想マシン12は、稼働時に生成されるシステムログなども仮想マシン毎に異なる内容のファイルとなる。尚、仮想マシンサーバ1で稼働する仮想マシンの数は、仮想マシン11及び仮想マシン12の2台に限定されない。
専用仮想記憶領域14、共用仮想記憶領域15及び専用仮想記憶領域16は、仮想マシンサーバ1内で構築された仮想的な記憶領域である。専用仮想記憶領域14及び16は、複数の仮想マシンのそれぞれが参照及び更新するファイルを格納する仮想的な記憶領域である。尚、仮想マシンサーバ1において、仮想マシンが3台以上の場合、少なくとも2台以上から参照可能な領域である。
専用仮想記憶領域14は、仮想マシン11が稼働するために必要なファイルの内、仮想マシン11に固有の情報が格納されている。また、専用仮想記憶領域14は、仮想マシン11以外の仮想マシンからはアクセスできない領域である。専用仮想記憶領域16は、仮想マシン12が稼働するために必要なファイルの内、仮想マシン12に固有の情報が格納されている。また、専用仮想記憶領域16は、仮想マシン12以外の仮想マシンからはアクセスできない領域である。
共用仮想記憶領域15は、仮想マシン11及び仮想マシン12が稼働するために必要なファイルの内、仮想マシン11及び仮想マシン12に同一な内容のファイルが格納されている。例えば、仮想マシン11及び仮想マシン12に共通したシステムファイル、レジストリ情報等が格納されている。
入出力代行手段13は、複数の仮想マシンに含まれる任意の仮想マシンから、当該任意の仮想マシンに対応する専用仮想記憶領域に対して参照要求されたファイルが共用仮想記憶領域15に格納されている場合に、参照要求されたファイルを共用仮想記憶領域15から読み出し、任意の仮想マシンへ出力するものである。
すなわち、仮想マシン11は、専用仮想記憶領域14に対してファイルの参照及び更新を要求する。また、仮想マシン12は、専用仮想記憶領域16に対してファイルの参照及び更新を要求する。また、共用仮想記憶領域15は、仮想マシン11及び仮想マシン12の双方から参照可能な領域である。しかし、仮想マシン11及び仮想マシン12は、共用仮想記憶領域15に対して、ファイルの参照要求を直接行うことができない。そこで、入出力代行手段13は、仮想マシン11又は12からの要求に応じて、適宜、共用仮想記憶領域15からファイルを読み出し、要求元の仮想マシン11又は12へ出力する。
さらに、入出力代行手段13は、任意の仮想マシンに対応する専用仮想記憶領域に当該参照要求されたファイルが格納されていないことを検出した場合に、当該参照要求されたファイルを共用仮想記憶領域15から読み出し、当該任意の仮想マシンへ出力するようにするとよい。これにより、参照要求されたファイルが専用仮想記憶領域に格納されていた場合には、入出力代行手段13は動作する必要がなく、処理コストを抑えることができる。
図2は、本発明の実施の形態1にかかる仮想マシンサーバ1のハードウェアの構成を示すブロック図である。仮想マシンサーバ1は、汎用的なコンピュータシステムである。仮想マシンサーバ1は、CPU(Central Processing Unit)21と、RAM(Random Access Memory)22と、ROM(Read Only Memory)23と、ハードディスク24とを備える。また、ハードディスク24は、不揮発性記憶装置であり、仮想マシン制御プログラム31、共用仮想記憶領域32、専用仮想記憶領域33及び専用仮想記憶領域34が格納されている。CPU21は、仮想マシンサーバ1における各種処理、RAM22、ROM23及びハードディスク24へのアクセス等を制御する。
仮想マシン制御プログラム31は、複数の仮想マシンを生成、稼働及び制御させるコンピュータプログラムである。共用仮想記憶領域32及び専用仮想記憶領域33には、仮想マシン11の内容が含まれる。また、共用仮想記憶領域32及び専用仮想記憶領域34には、仮想マシン12の内容が含まれる。具体的には、仮想マシン制御プログラム31は、共用仮想記憶領域34、専用仮想記憶領域35及び36に格納された仮想マシン11及び12のデータに基づいて、仮想マシン11及び12を稼働させる。また、仮想マシンサーバ1を起動するためのOSが別途、存在していてもよい。その場合、仮想マシン制御プログラム31は、当該OS上で稼働するものとなる。
仮想マシンサーバ1は、CPU21が、RAM22、ROM23又はハードディスク24に格納された仮想マシン制御プログラム31、共用仮想記憶領域32、専用仮想記憶領域33及び34を読み込み、実行する。これにより、仮想マシンサーバ1は、仮想マシン11及び12を稼働させることができる。
図3は、本発明の実施の形態2にかかる共有ファイルの参照処理の流れを示すシーケンス図である。まず、仮想マシン11は、専用仮想記憶領域14に対して仮想マシン11における任意のファイルの参照要求を送信する(S11)。ここでは、参照要求されるファイルを"ファイルA"と呼ぶ。
次に、専用仮想記憶領域14は、ファイルAが格納されていないことを示す不存在の応答を返信する(S12)。このとき、入出力代行手段13は、ステップS12で返信された不存在の応答を受信し、ファイルAが専用仮想記憶領域14に格納されていないことを検出する。
続いて、入出力代行手段13は、仮想マシン11に代わり、共用仮想記憶領域15に対してファイルAの参照要求を送信する(S13)。そして、共用仮想記憶領域15は、ファイルAの返信をする(S14)。その後、入出力代行手段13は、ステップS14で受信したファイルAを仮想マシン11へ返信する(S15)。つまり、入出力代行手段13は、参照要求されたファイルAが専用仮想記憶領域14に格納されていないことを検出した場合に、ファイルAを共用仮想記憶領域15から読み出し、仮想マシン11へ出力する。
図4は、本発明の実施の形態2にかかる共有ファイルの参照処理の概念を説明する図である。図4に示すように、仮想マシン11及び12のそれぞれは、ファイルを管理するファイルシステム110及び120に共通する階層構造111及び121を有する。そして、ファイルシステム110には、階層構造111であるフォルダ階層"C:\ABC\system"以下に、"aaa.dll"及び"bbb.dll"というファイル名のファイルが格納されている。また、ファイルシステム120には、階層構造111と同様の階層構造121であるフォルダ階層"C:\ABC\system"以下に、"aaa.dll"及び"ccc.dll"というファイル名のファイルが格納されている。
また、専用仮想記憶領域14、共用仮想記憶領域15及び専用仮想記憶領域16は、上述した共通する階層構造に関連付けてファイルが格納される。具体的には、専用仮想記憶領域14は、階層構造141であるフォルダ階層"C:\ABC\system"以下に、"bbb.dll"のというファイル名の実データが格納されている。共用仮想記憶領域15は、階層構造151であるフォルダ階層"C:\ABC\system"以下に、"aaa.dll"のというファイル名の実データが格納されている。専用仮想記憶領域16は、階層構造161であるフォルダ階層"C:\ABC\system"以下に、"ccc.dll"のというファイル名の実データが格納されている。
すなわち、仮想マシン11は、ファイルシステム110を介して2つのファイルを処理することができる。しかし、仮想マシン11は、"aaa.dll"が当該2つのファイルが専用仮想記憶領域14又は共用仮想記憶領域15のいずれに格納されているかを認識していない。また、仮想マシン12も同様である。
ここで、仮想マシン11は、フォルダ階層"C:\ABC\system"および"aaa.dll"を指定して、専用仮想記憶領域14に対して参照要求を送信する。そして、専用仮想記憶領域14は、フォルダ階層"C:\ABC\system"以下に"aaa.dll"が格納されているか否かを判定する。ここでは、格納されていないため、専用仮想記憶領域14は、"aaa.dll"の不存在応答を送信する。このとき、入出力代行手段13は、"aaa.dll"が専用仮想記憶領域14に格納されていないことを検出する。そして、入出力代行手段13は、共用仮想記憶領域15に対してフォルダ階層"C:\ABC\system"以下に"aaa.dll"が格納されているか否かを判定する。ここでは、格納されているため、共用仮想記憶領域15は、"aaa.dll"を返信し、入出力代行手段13は、"aaa.dll"を受信する。その後、入出力代行手段13は、仮想マシン11に対して"aaa.dll"を出力する。
これにより、仮想マシン11は、専用仮想記憶領域14に対してのみ参照要求を行いながら、共用仮想記憶領域15に格納されているシステムファイルを取得し、動作することができる。つまり、仮想マシン11にインストールされているOSには、変更を加えることなく、共用仮想記憶領域15に格納されているシステムファイルを参照することができる。そして、仮想マシン12から専用仮想記憶領域16に対して同一のシステムファイルの参照要求を行った場合には、入出力代行手段13は同様に動作する。
このように、本発明の実施の形態1にかかる仮想マシンサーバ1によれば、各仮想マシンの仮想記憶領域の独立性を保ちつつ、仮想記憶領域を効率的に共有することで、1台の計算機に多数の仮想マシンを稼働させることができる。
<発明の実施の形態2>
発明の実施の形態2では、発明の実施の形態1に改良を加えたものである。尚、本発明の実施の形態2にかかる仮想マシンサーバの概念図及びハードウェアの構成図は、図1及び図2と同様のものであるため、詳細な説明及び図示は、省略する。本発明の実施の形態2にかかる仮想マシンサーバは、本発明の実施の形態1の機能に加え、共有ファイルの更新処理及び移動処理を行うものである。
図5は、本発明の実施の形態2にかかる共有ファイルの更新処理の流れを示すシーケンス図である。ここでは、図3に示した共有ファイルの参照処理が完了した直後であるものとする。すなわち、仮想マシン11は、ファイルAを取得済みである。
図5において、まず、仮想マシン11は、ファイルAを更新する(S21)。例えば、仮想マシン11は、パッチ適用等によりシステムファイルの内容を更新する。又は、仮想マシン11は、アプリケーションのインストール等によりレジストリファイルの内容を更新する。
次に、仮想マシン11は、専用仮想記憶領域14に対して更新後の内容でファイルAの上書き要求を送信する(S22)。このとき、図3で説明したように、専用仮想記憶領域14には、ファイルAが存在しないため、専用仮想記憶領域14は、ファイルAの不存在の応答を返信する(S23)。この時点では、専用仮想記憶領域14には、ファイルAが格納されていないため、ファイルAに対する上書きを行うことができないためである。そして、入出力代行手段13は、ステップS23で返信された不存在の応答を受信する。
さらに、入出力代行手段13は、仮想マシン11に代わり、更新後の内容でファイルAの新規作成要求を専用仮想記憶領域14に対して送信する(S24)。これにより、専用仮想記憶領域14にファイルAが格納される。
言い換えると、入出力代行手段13は、ステップS15により出力したファイルが仮想マシン11により更新された場合、仮想マシン11に対応する専用仮想記憶領域14に更新されたファイルを格納する。そのため、共用仮想記憶領域15には、更新前のファイルAが残され、仮想マシン12からは、引き続きファイルAを参照することができる。一方、更新後のファイルAは、仮想マシン11でのみ使用されるものであり、仮想マシン12へ影響を与えないため、共用仮想記憶領域15に格納されたファイルAを更新するのではなく、専用仮想記憶領域14に新規に格納する。これにより、各仮想マシンの仮想記憶領域の独立性を保ちつつ、仮想記憶領域を効率的に共有することができる。
仮想マシン11は、元々専用仮想記憶領域14に格納されたファイルを更新した場合、専用仮想記憶領域14に上書きする。また、仮想マシン12も専用仮想記憶領域16に対して同様に処理する。そのため、仮想マシンサーバ1における稼働を続ける中で、同一内容のパッチ適用を行った場合などには、専用仮想記憶領域14及び16には、同一内容のファイルが存在する可能性がある。そこで、本発明の実施の形態2では、複数の専用仮想記憶領域に存在するファイルを検出し、共用仮想記憶領域へ移動する処理を行う。
図6は、本発明の実施の形態2にかかる共有ファイルの移動処理の流れを示すシーケンス図である。まず、入出力代行手段13は、任意のタイミングで専用仮想記憶領域14に対して専用仮想記憶領域14に格納されているファイルの一覧であるファイルリストを要求する(S31)。このとき、専用仮想記憶領域14は、ファイルリストを入出力代行手段13へ返信する(S32)。また、入出力代行手段13は、専用仮想記憶領域16に対してもファイルリストを要求する(S33)。このとき、専用仮想記憶領域16は、ファイルリストを入出力代行手段13へ返信する(S34)。
そして、入出力代行手段13は、専用仮想記憶領域14のファイルリストと、専用仮想記憶領域16のファイルリストとを比較し、同一内容のファイルが存在するか否かを検出する(S35)。例えば、入出力代行手段13は、同一のフォルダ階層の同一ファイル名のファイルについて、専用仮想記憶領域14及び専用仮想記憶領域16を参照し、ファイル内容の差分を取ることにより、同一内容であるか否かを検出してもよい。又は、専用仮想記憶領域14に格納されているファイルの1つずつについて、専用仮想記憶領域16に格納されているファイルとの差分を取ってもよい。尚、ステップS31乃至S35の処理の具体的な実現方法は、これに限定されない。
ステップS31乃至S35により専用仮想記憶領域14と専用仮想記憶領域16とに同一内容のファイルBが存在すると検出した場合、入出力代行手段13は、共用仮想記憶領域15に対して当該同一内容のファイルBの新規作成要求を送信する(S36)。
同時に、入出力代行手段13は、専用仮想記憶領域14に対してファイルBの削除要求を送信する(S37)。また、入出力代行手段13は、専用仮想記憶領域16に対してファイルBの削除要求を送信する(S38)。これにより、同一内容のファイルBを共用仮想記憶領域15の一箇所にまとめることができる。尚、ステップS36、S37及びS38の順番は、これに限定されない。
言い換えると、入出力代行手段13は、複数の専用仮想記憶領域14及び16に同一内容のファイルが格納されている場合、同一内容のファイルを共用仮想記憶領域15に格納すると共に、複数の専用仮想記憶領域14及び16から同一内容のファイルを削除する。
これにより、例えば、仮想マシンサーバ1において新規に仮想マシン11を作成した場合には、まず、システムファイル等を含む全てのファイルを専用仮想記憶領域14に格納する。次に、仮想マシンサーバ1において新気に仮想マシン12を仮想マシン11と同一のOSにより作成した場合には、同様に、システムファイル等を含む全てのファイルを専用仮想記憶領域16に格納する。このとき、仮想マシンサーバ1において共有ファイルの移動処理を実行することにより、専用仮想記憶領域14及び16において重複するファイルを共用仮想記憶領域15に移動させて、仮想マシンサーバ1における全体の仮想記憶領域の空き領域を増やすことができる。つまり、仮想記憶領域を効率的に利用することができる。そのため、仮想マシンサーバ1で稼働させることのできる仮想マシンの台数を増やすことができる。
図7は、本発明の実施の形態2にかかる更新時の共有ファイルの移動処理の流れを示すシーケンス図である。ここでは、専用仮想記憶領域に対するファイル更新時に動的に共有ファイルの移動処理を行う例を説明する。
まず、仮想マシン11は、ファイルCを更新する(S41)。ここで、ファイルCは、元々専用仮想記憶領域14に格納されているファイルであるものとする。次に、仮想マシン11は、専用仮想記憶領域14に対して更新後の内容でファイルCの上書き要求を送信する(S42)。ここでは、専用仮想記憶領域14には、ファイルAが存在するため、専用仮想記憶領域14は、ファイルCを上書きして格納する。そして、専用仮想記憶領域14は、ファイルCの上書き完了の返信する(S43)。
ここで、入出力代行手段13は、更新後のファイルCについて参照要求を専用仮想記憶領域16に対して送信する(S44)。ここでは、専用仮想記憶領域16に更新後のファイルCと同一内容のファイルが存在するものとして、専用仮想記憶領域16は、ファイルCを返信する(S45)。
そこで、入出力代行手段13は、ファイルCについて、図6のステップS36、S37及びS38と同様に、ステップS46、S47及びS48の処理を行う。
言い換えると、入出力代行手段13は、仮想マシン11に対応する専用仮想記憶領域14に格納されたファイルCが仮想マシン11により更新された場合、更新されたファイルCと同一内容のファイルが仮想マシン11以外の複数の仮想マシンのそれぞれに対応する複数の専用仮想記憶領域に格納されているか否かを判定し、格納されていると判定した場合に、更新されたファイルCを共用仮想記憶領域15に格納すると共に、仮想マシン11に対応する専用仮想記憶領域14から更新されたファイルCを削除し、複数の専用仮想記憶領域から当該同一内容のファイルを削除する。
このように、ファイル更新時に動的に共有ファイルの移動処理を行うことで、仮想記憶領域の使用量の削減を、仮想マシン11及び12の稼働中であっても速やかに実行することができる。
<その他の発明の実施の形態>
尚、元々、仮想マシンサーバにより1台の計算機内に複数のOSを構成することが可能となる。また、計算機の基本性能の向上やHDDの大容量化も伴い、多数のOSが1台のサーバ内に構築されることが増えてきている。そのため、今後、仮想マシンサーバの構成は、ますます大規模となることが予想される。
仮想化サーバの利用方法としては、例えば、ゲストOSとしてクライアントOS(例えば、Windows(登録商標) XPなど)を多数台構築し、各利用者が通常デスクトップPC(Personal Computer)の代わりにゲストOSへ接続、使用することが考えられる。
このような場合、仮想マシンサーバの内部は、クライアントOSのシステムファイルが構築したゲストOSの台数分存在しており、数ギガバイト単位で重複したファイルが存在することとなる。アプリケーションも含めると、より多くの容量が重複していることとなる。また、重複したファイルは実行ファイル(拡張子exeのファイル)のように書き換えを行わないものも多い。そのため、読み出すだけの用途であれば、同じファイルを各ゲストOSで共有して参照することで、ディスク容量を効率的に使用するシステムが構築できる。
また、クライアントPCとして使用されるゲストOSは、同じOSである場合が多く、パッチなどの適用状況も共通していると考えられる。このため、1台の仮想マシンサーバ内には、ゲストOSの台数分の同一のファイルが存在していることになるが、ゲストOSは互いに独立して稼動しているため、同じファイルであるにも関わらず個々のゲストOSごとにファイルを確保する必要があった。
そこで、本発明により、ハードディスク内の容量を効率化した仮想マシンサーバ1を提供することができる。また、本発明の実施の形態2では、増そうマシンが共通に使用する同一ファイルを共用仮想記憶領域15に置く。そして、各仮想マシンは、入出力代行手段13により共用仮想記憶領域15を参照することできる。そのため、仮想マシンサーバ1内のディスク容量を削減する効果がある。特に、仮想マシンの構築台数が多い場合は特に顕著な効果がある。
また、共用仮想記憶領域15は、読み出し性能の高いフラッシュディスクを採用することが望ましい。これにより、さらに大きな効果が期待できる。
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
1 仮想マシンサーバ
11 仮想マシン
110 ファイルシステム
111 階層構造
12 仮想マシン
120 ファイルシステム
121 階層構造
13 入出力代行手段
14 専用仮想記憶領域
141 階層構造
15 共用仮想記憶領域
151 階層構造
16 専用仮想記憶領域
161 階層構造
21 CPU
22 RAM
23 ROM
24 ハードディスク
31 仮想マシン制御プログラム
32 共用仮想記憶領域
33 専用仮想記憶領域
34 専用仮想記憶領域
7 仮想マシンサーバ
71 ゲストOS
710 ファイルシステム
711 階層構造
72 ゲストOS
720 ファイルシステム
721 階層構造
74 仮想ディスク
741 階層構造
76 仮想ディスク
761 階層構造

Claims (12)

  1. 複数の仮想マシンのそれぞれが参照及び更新するファイルを格納する仮想的な記憶領域である複数の専用仮想記憶領域と、
    前記複数の仮想マシンの内、少なくとも2以上の仮想マシンによって参照されるファイルを格納する仮想的な記憶領域である共用仮想記憶領域と、
    前記複数の仮想マシンに含まれる任意の仮想マシンから当該任意の仮想マシンに対応する専用仮想記憶領域に対して参照要求されたファイルが前記共用仮想記憶領域に格納されている場合に、当該参照要求されたファイルを前記共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力する入出力代行手段と、
    を備え
    前記入出力代行手段は、
    前記任意の仮想マシンに対応する専用仮想記憶領域に格納されたファイルが前記任意の仮想マシンにより更新された場合、当該更新されたファイルと同一内容のファイルが当該任意の仮想マシン以外の複数の仮想マシンのそれぞれに対応する複数の専用仮想記憶領域に格納されているか否かを判定し、格納されていると判定した場合に、当該更新されたファイルを前記共用仮想記憶領域に格納すると共に、前記任意の仮想マシンに対応する専用仮想記憶領域から当該更新されたファイルを削除し、前記複数の専用仮想記憶領域から当該同一内容のファイルを削除する仮想マシンサーバ。
  2. 前記入出力代行手段は、前記任意の仮想マシンに対応する専用仮想記憶領域に当該参照要求されたファイルが格納されていないことを検出した場合に、当該参照要求されたファイルを前記共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力することを特徴とする請求項1に記載の仮想マシンサーバ。
  3. 複数の仮想マシンのそれぞれは、ファイルを管理するファイルシステムに共通する階層を有し、
    前記複数の専用仮想記憶領域及び前記共用仮想記憶領域は、前記共通する階層に関連付けてファイルを格納し、
    前記任意の仮想マシンは、当該任意の仮想マシンのファイルシステムで管理される階層及びファイルを指定して、前記任意の仮想マシンに対応する専用仮想記憶領域に対して参照要求を送信し、
    前記入出力代行手段は、前記参照要求が送信された専用仮想記憶領域において前記指定された階層に当該参照要求されたファイルが格納されていないことを検出した場合に、前記共用仮想記憶領域において前記指定された階層に当該参照要求されたファイルが格納されているか否かを判定し、当該参照要求されたファイルが格納されていると判定した場合に、当該参照要求されたファイルを前記共用仮想記憶領域の前記指定された階層から読み出し、当該任意の仮想マシンへ出力することを特徴とする請求項2に記載の仮想マシンサーバ。
  4. 前記入出力代行手段は、前記出力したファイルが前記任意の仮想マシンにより更新された場合、当該任意の仮想マシンに対応する専用仮想記憶領域に当該更新されたファイルを格納することを特徴とする請求項1乃至3のいずれか1項に記載の仮想マシンサーバ。
  5. 複数の仮想マシンに含まれる任意の仮想マシンから、当該任意の仮想マシンが参照及び更新するファイルを格納する専用仮想記憶領域に対するファイルの参照要求を受信する受信ステップと、
    前記任意の仮想マシンを含む少なくとも2以上の仮想マシンによって参照されるファイルを格納する仮想的な記憶領域である共用仮想記憶領域に、前記参照要求されたファイルが格納されている場合に、当該参照要求されたファイルを前記共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力する入出力代行ステップと、
    前記複数の仮想マシンのそれぞれに対応する複数の専用仮想記憶領域に対して同一内容のファイルが格納されているか否かを判定する同一ファイル判定ステップと、
    を含み、
    前記同一ファイル判定ステップは、前記任意の仮想マシンに対応する専用仮想記憶領域に格納されたファイルが前記任意の仮想マシンにより更新された場合、当該更新されたファイルと同一内容のファイルが当該任意の仮想マシン以外の複数の仮想マシンのそれぞれに対応する複数の専用仮想記憶領域に格納されているか否かを判定し、
    前記入出力代行ステップは、前記同一ファイル判定ステップにより前記同一内容のファイルが格納されていると判定した場合、当該更新されたファイルを前記共用仮想記憶領域に格納すると共に、前記任意の仮想マシンに対応する専用仮想記憶領域から当該更新されたファイルを削除し、前記複数の専用仮想記憶領域から当該同一内容のファイルを削除する仮想マシン制御方法。
  6. 前記入出力代行ステップは、前記任意の仮想マシンに対応する専用仮想記憶領域に当該参照要求されたファイルが格納されていないことを検出した場合に、当該参照要求されたファイルを前記共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力することを特徴とする請求項に記載の仮想マシン制御方法。
  7. 前記受信ステップは、前記任意の仮想マシンのファイルシステムで管理される階層及びファイルが指定された、前記任意の仮想マシンに対応する専用仮想記憶領域に対する参照要求を受信し、
    前記任意の仮想マシンに対応する専用仮想記憶領域において前記指定された階層に当該参照要求されたファイルが格納されていないことを検出する検出ステップと、
    前記検出ステップにより当該参照要求されたファイルが格納されていないことを検出した場合に、前記共用仮想記憶領域において前記指定された階層に当該参照要求されたファイルが格納されているか否かを判定する判定ステップと、をさらに含み、
    前記入出力代行ステップは、前記判定ステップにより当該参照要求されたファイルが格納されていると判定した場合に、当該参照要求されたファイルを前記共用仮想記憶領域の前記指定された階層から読み出し、当該任意の仮想マシンへ出力することを特徴とする請求項に記載の仮想マシン制御方法。
  8. 前記入出力代行ステップは、前記出力したファイルが前記任意の仮想マシンにより更新された場合、当該任意の仮想マシンに対応する専用仮想記憶領域に当該更新されたファイルを格納することを特徴とする請求項乃至のいずれか1項に記載の仮想マシン制御方法。
  9. 複数の仮想マシンに含まれる任意の仮想マシンから、当該任意の仮想マシンが参照及び更新するファイルを格納する専用仮想記憶領域に対するファイルの参照要求を受信する受信処理と、
    前記任意の仮想マシンを含む少なくとも2以上の仮想マシンにおいて参照されるファイルを格納する仮想的な記憶領域である共用仮想記憶領域に、前記参照要求されたファイルが格納されている場合に、当該参照要求されたファイルを前記共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力する入出力代行処理と、
    前記複数の仮想マシンのそれぞれに対応する複数の専用仮想記憶領域に対して同一内容のファイルが格納されているか否かを判定する同一ファイル判定処理と、
    を含む処理をコンピュータに実行させ
    前記同一ファイル判定処理は、前記任意の仮想マシンに対応する専用仮想記憶領域に格納されたファイルが前記任意の仮想マシンにより更新された場合、当該更新されたファイルと同一内容のファイルが当該任意の仮想マシン以外の複数の仮想マシンのそれぞれに対応する複数の専用仮想記憶領域に格納されているか否かを判定し、
    前記入出力代行処理は、前記同一ファイル判定処理により前記同一内容のファイルが格納されていると判定した場合、当該更新されたファイルを前記共用仮想記憶領域に格納すると共に、前記任意の仮想マシンに対応する専用仮想記憶領域から当該更新されたファイルを削除し、前記複数の専用仮想記憶領域から当該同一内容のファイルを削除する仮想マシン制御プログラム。
  10. 前記入出力代行処理は、前記任意の仮想マシンに対応する専用仮想記憶領域に当該参照要求されたファイルが格納されていないことを検出した場合に、当該参照要求されたファイルを前記共用仮想記憶領域から読み出し、当該任意の仮想マシンへ出力することを特徴とする請求項に記載の仮想マシン制御プログラム。
  11. 前記受信処理は、前記任意の仮想マシンのファイルシステムで管理される階層及びファイルが指定された、前記任意の仮想マシンに対応する専用仮想記憶領域に対する参照要求を受信し、
    前記任意の仮想マシンに対応する専用仮想記憶領域において前記指定された階層に当該参照要求されたファイルが格納されていないことを検出する検出処理と、
    前記検出処理により当該参照要求されたファイルが格納されていないことを検出した場合に、前記共用仮想記憶領域において前記指定された階層に当該参照要求されたファイルが格納されているか否かを判定する判定処理と、をさらに含み、
    前記入出力代行処理は、前記判定処理により当該参照要求されたファイルが格納されていると判定した場合に、当該参照要求されたファイルを前記共用仮想記憶領域の前記指定された階層から読み出し、当該任意の仮想マシンへ出力することを特徴とする請求項10に記載の仮想マシン制御プログラム。
  12. 前記入出力代行処理は、前記出力したファイルが前記任意の仮想マシンにより更新された場合、当該任意の仮想マシンに対応する専用仮想記憶領域に当該更新されたファイルを格納することを特徴とする請求項乃至11のいずれか1項に記載の仮想マシン制御プログラム。
JP2009081970A 2009-03-30 2009-03-30 仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム Expired - Fee Related JP5428455B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009081970A JP5428455B2 (ja) 2009-03-30 2009-03-30 仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009081970A JP5428455B2 (ja) 2009-03-30 2009-03-30 仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム

Publications (2)

Publication Number Publication Date
JP2010237742A JP2010237742A (ja) 2010-10-21
JP5428455B2 true JP5428455B2 (ja) 2014-02-26

Family

ID=43092033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009081970A Expired - Fee Related JP5428455B2 (ja) 2009-03-30 2009-03-30 仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム

Country Status (1)

Country Link
JP (1) JP5428455B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6291933B2 (ja) * 2014-03-17 2018-03-14 日本電気株式会社 ディスク管理装置、ディスク管理プログラムならびにディスク管理方法
US9813504B2 (en) 2015-08-03 2017-11-07 Citrix Systems, Inc. Virtualizing device management services on a multi-session platform
KR102569734B1 (ko) * 2016-10-05 2023-08-25 삼성전자주식회사 전자장치 및 그 제어방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189291A (ja) * 1992-01-14 1993-07-30 Matsushita Electric Ind Co Ltd ネットワークファイルシステム管理装置
JP4241911B2 (ja) * 2002-03-28 2009-03-18 株式会社日立製作所 情報処理システム
JP2006011541A (ja) * 2004-06-22 2006-01-12 Hitachi Ltd 計算機および共用記憶装置を含む計算機システムにおける情報記録方法
JP4613598B2 (ja) * 2004-12-10 2011-01-19 株式会社日立製作所 ディスクシステム
JP2008225765A (ja) * 2007-03-12 2008-09-25 Nec Corp ネットワークストレージ・システムとその管理方法及び制御プログラム

Also Published As

Publication number Publication date
JP2010237742A (ja) 2010-10-21

Similar Documents

Publication Publication Date Title
US11675746B2 (en) Virtualized server systems and methods including domain joining techniques
US10296494B2 (en) Managing a global namespace for a distributed filesystem
US10044806B2 (en) System and method for managing virtual hard disks in cloud environments
US9811662B2 (en) Performing anti-virus checks for a distributed filesystem
US8078577B2 (en) Method of bi-directional synchronization of user data
US8677111B2 (en) Booting devices using virtual storage arrays over wide-area networks
US9811532B2 (en) Executing a cloud command for a distributed filesystem
US9804928B2 (en) Restoring an archived file in a distributed filesystem
US8788628B1 (en) Pre-fetching data for a distributed filesystem
US10303499B2 (en) Application aware graph driver
EP3502877B1 (en) Data loading method and apparatus for virtual machines
EP3699761A1 (en) Real time cloud bursting
US20110276963A1 (en) Virtual Data Storage Devices and Applications Over Wide Area Networks
KR20110128846A (ko) 장치와 웹 서비스 간에 브라우저 캐시를 동기화하는 프로그래밍 모델
CN102693230B (zh) 用于存储区域网络的文件系统
JP2011076605A (ja) 仮想マシン・イメージの実行方法及びシステム
US20200150950A1 (en) Upgrade managers for differential upgrade of distributed computing systems
US20240143233A1 (en) Distributed File System with Disaggregated Data Management and Storage Management Layers
JP5428455B2 (ja) 仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム
US20220391361A1 (en) Distributed File System with Reduced Write and Read Latencies
US9336232B1 (en) Native file access
WO2016070641A1 (zh) 数据的保存方法、装置及读取方法、装置
EP4102350A1 (en) Distributed file system that provides scalability and resiliency
WO2024134922A1 (ja) データ処理装置、プログラム、及びコンピュータ可読記憶媒体
US20220237000A1 (en) Managing configurations of system services running in a cluster of hosts

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130814

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131118

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5428455

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees