JP2012123556A - 仮想サーバーシステム、及びその制御方法 - Google Patents
仮想サーバーシステム、及びその制御方法 Download PDFInfo
- Publication number
- JP2012123556A JP2012123556A JP2010272927A JP2010272927A JP2012123556A JP 2012123556 A JP2012123556 A JP 2012123556A JP 2010272927 A JP2010272927 A JP 2010272927A JP 2010272927 A JP2010272927 A JP 2010272927A JP 2012123556 A JP2012123556 A JP 2012123556A
- Authority
- JP
- Japan
- Prior art keywords
- data
- virtual
- machine
- area
- partition
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】物理的にI/O資源の上限値を向上させることと同等の効果を安価に実現させるための技術を提供する。
【解決手段】I/O資源にアクセスするための専用パーティション(高速I/Oパーティション)を設け、当該高速I/Oパーティションに大容量のメモリを仮想的に割り当て、ゲストイメージのデータを全てキャッシュし、データの参照や更新を全てオンメモリ上で処理する。また、複数のゲストイメージで共通化できるデータと、各ゲストイメージで固有の差分データに分割し、ゲストイメージの共通化を進める。また、アクセス対象データの少なくとも一部が仮想キャッシュメモリ領域にあるか否かによって、アクセス要求を仮想キャッシュメモリ領域及びストレージ装置へのアクセスを振り分ける。
【選択図】図3
【解決手段】I/O資源にアクセスするための専用パーティション(高速I/Oパーティション)を設け、当該高速I/Oパーティションに大容量のメモリを仮想的に割り当て、ゲストイメージのデータを全てキャッシュし、データの参照や更新を全てオンメモリ上で処理する。また、複数のゲストイメージで共通化できるデータと、各ゲストイメージで固有の差分データに分割し、ゲストイメージの共通化を進める。また、アクセス対象データの少なくとも一部が仮想キャッシュメモリ領域にあるか否かによって、アクセス要求を仮想キャッシュメモリ領域及びストレージ装置へのアクセスを振り分ける。
【選択図】図3
Description
本発明は、仮想サーバーシステム、及びその制御方法に関し、例えば、仮想化環境における仮想マシンの集約率を向上する技術に関するものである。
1台のサーバー上で同時に複数の仮想サーバーを稼動させる仮想化技術が一般的になってきている。この仮想化技術を用いると物理サーバーの台数を飛躍的に減らすことが可能になり、データセンターの省スペース化、省電力など、CAPEX(Capital Expenditure)の観点と、運用管理コスト削減などOPEX(Operating Expense)の観点で注目されている。
従来、仮想化環境において、1台のサーバー上で同時稼動できる仮想マシンの台数を増やすための技術として、特許文献1に記載の技術が知られている。
特許文献1では、I/Oデバイスにアクセスするための専用のパーティションを設け、共有メモリを介してアクセスさせる方法が開示されている。これにより、多数のゲストイメージを単一のハイパーバイザーで実行する場合に問題となるI/O資源の利用を効率化するためのI/O制御機能を提供する。
しかしながら、特許文献1に記載の技術は、既存のI/O資源の利用を効率化するため、I/Oデバイスにアクセスするための専用パーティションを設け、各ゲストイメージに限られたI/O資源を効率的に利用させるようにしているのみである。このため、I/O資源(例えば、ストレージ(HDD)へのアクセス帯域)の上限値以上のゲストイメージを単一のハイパーバイザーで実行することはできない。例えば、許容帯域の上限値が高いI/Oインタフェースを導入する等、物理的にI/O資源の上限値を向上させることもできるが、コストが増大してしまう。
本発明はこのような状況に鑑みてなされたものであり、物理的にI/O資源の上限値を向上させることと同等の効果を安価に実現させるための技術を提供するものである。
上記課題を解決するため、本発明では、I/O資源にアクセスするための専用パーティション(高速I/Oパーティション)を設け、当該高速I/Oパーティションに大容量のメモリを仮想的に割り当て、ゲストイメージのデータを全てキャッシュし、データの参照や更新を全てオンメモリ上で処理する。また、複数のゲストイメージで共通化できるデータと、各ゲストイメージで固有の差分データに分割し、ゲストイメージの共通化を進める。
即ち、本発明の仮想サーバーシステムでは、複数の仮想マシンからのアクセス要求を処理するパーティションマシン(物理リソースの一部を割り当てて仮想的に実現されている)に、複数の仮想マシンで共通に使用するデータを格納する共通データ領域と、複数の仮想マシンがそれぞれ固有に用いるデータを格納する固有データ領域と、を含む仮想キャッシュメモリ領域を設ける。そして、このパーティションマシンは、アクセス要求の対象データをストレージ装置から取得し、対象データにおける複数の仮想マシンで共通化された部分を共通データ領域に格納し、対象データにおいてアクセス要求した仮想マシンに固有な部分を固有データ領域に格納する。
そして、パーティションマシンは、アクセス対象データの少なくとも一部が仮想キャッシュメモリ領域にあるか否かによって、アクセス要求を仮想キャッシュメモリ領域及びストレージ装置へのアクセスを振り分ける。
本発明によれば、仮想サーバーシステムにおいて、物理的にI/O資源の上限値を向上させることと同等の効果を安価に実現させることができるようになる。
なお、上述した以外の課題、構成及び効果は、以下の本発明を実施するための形態および添付図面によって明らかになるものである。
以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
<ネットワーク構成>
図1は、本発明の実施形態による仮想サーバーシステム(仮想マシン高集約化システム)を含むネットワーク構成例を示す図である。図1は、典型的なネットワーク接続の一例としてインターネットなど広域ネットワーク16を介して複数の閉じたネットワーク1及び2が接続する例を示している。なお、本発明は、ネットワーク構成には依存するものではなく、例えば広域ネットワークへの接続を許可していない場合でも問題ない。また、閉じたネットワーク1及び2として、企業等の組織で用いられるローカルエリアネットワーク、個人が利用するホームネットワークなどあらゆる形態のネットワーク構成を含んでいる。
図1は、本発明の実施形態による仮想サーバーシステム(仮想マシン高集約化システム)を含むネットワーク構成例を示す図である。図1は、典型的なネットワーク接続の一例としてインターネットなど広域ネットワーク16を介して複数の閉じたネットワーク1及び2が接続する例を示している。なお、本発明は、ネットワーク構成には依存するものではなく、例えば広域ネットワークへの接続を許可していない場合でも問題ない。また、閉じたネットワーク1及び2として、企業等の組織で用いられるローカルエリアネットワーク、個人が利用するホームネットワークなどあらゆる形態のネットワーク構成を含んでいる。
ネットワークに接続する機器としては、サーバー3、ストレージ装置4、クライアント5乃至7がある。クライアントはPC(Personal Computer)、携帯電話等のモバイルデバイスなど、ネットワークに接続可能なあらゆる機器を想定している。本発明では、サーバー3上でハイパーバイザー14が稼動し、この上で複数の仮想マシンが稼動する環境を前提とする。本実施形態では、一例として仮想マシン1_10、仮想マシン2_12が稼動する例が示されている。クライアント5乃至7は、ネットワークを介して、リモートデスクトップ接続、イントラネットサービスの接続など、各種サービスを享受する。以降では、仮想化環境における本発明の優位性について具体的な例を示しながら説明する。
<一般的な仮想サーバーシステムの構成>
図2は、一般的な仮想サーバーシステムの概略構成を示す図である。ここでは、サーバー仮想化を実現する場合として、一般的な仮想サーバーシステムが、サーバー3と外部の共有ストレージ装置4を有することを想定する。
図2は、一般的な仮想サーバーシステムの概略構成を示す図である。ここでは、サーバー仮想化を実現する場合として、一般的な仮想サーバーシステムが、サーバー3と外部の共有ストレージ装置4を有することを想定する。
また、仮想化環境を構築する場合にはハイパーバイザー14を用いる。ハイパーバイザー14は、ソフトウェアとして実現する場合、ハードウェアチップとして実現する場合があるが、本発明では実装方式の違いには依存しない。ハイパーバイザー14は、各仮想マシンのCPU割り当てを制御するCPUスケジューラー140としての機能と、各仮想マシンから発行されるI/O処理を代行するHBA(ホストバスアダプター)141としての機能を有している。そして、ハイパーバイザー14は、仮想マシンに対して、仮想化されたハードウェアを提供する。仮想デバイスが提供する仮想化されたハードウェア(仮想デバイス)として、CPU110及び130、メモリ111及び131、I/Oインタフェース112及び132である。つまり、仮想マシン1_10は、物理的ハードウェアから仮想的に割り当てられた、仮想CPU110と、仮想メモリ111と、仮想I/Oインタフェース112とを有する。仮想マシン2_12は、物理的ハードウェアから仮想的に割り当てられた、仮想CPU130と、仮想メモリ131と、仮想I/Oインタフェース132とを有する。
各仮想マシンは、ハイパーバイザー14が提供する仮想デバイスを物理ハードウェアと認識して動作するため、標準的なOS環境がそのまま動作する。つまり、標準的なOS環境においては、オペレーティングシステム101及び121上で様々なアプリケーション100及び120が動作するようになっている。
上術した通り、ハイパーバイザー14は、仮想マシンに仮想化されたハードウェアを提供する一方、単一の物理デバイス15のアクセスを代行する機能も有する。ハイパーバイザー14がアクセスする物理デバイス15として、CPU150、メモリ151、及びI/Oインタフェース152がある。この物理デバイスが、仮想的に仮想マシン1_10及び仮想マシン2_12に割り当てられている。
一般的な仮想化環境では、ハイパーバイザー14が複数台の仮想マシン10及び12に対して単一のハードウェアを提供する。このため、物理的なハードウェアのリソース上限以上には仮想マシンを稼動させることができないという問題がある。一般的に、CPU150やメモリ151は大容量化、低価格化が進んでいるため、余剰リソースが出る場合が多い。一方、ストレージ装置4へのアクセス口にあたるI/Oインタフェース152にはファイバーチャンネルスイッチ装置を用いる場合が多いが、リソース限界値が低く、価格的にも高価であるため、リソースのキャパシティが不足する場合が多い。
従って、仮想化環境で仮想マシンの集約率を向上するには、ストレージ装置へのI/Oインタフェースのキャパシティを安価に向上させる技術が必要となる。しかしながら、特許文献1で代表される従来技術を採用してもI/Oインタフェースのキャパシティ向上を実現することができない。
<改良された仮想サーバーシステムの構成>
図3は、本発明の実施形態による仮想サーバーシステムの概略構成を示す図である。図3のような構成を採用することにより、仮想マシンの集約率を向上させることができる。なお、仮想化環境の構成は一般的な仮想サーバーシステム(図2)と同様である。以下、本発明の実施形態による構成と図2の構成とを比較しつつ説明する。
図3は、本発明の実施形態による仮想サーバーシステムの概略構成を示す図である。図3のような構成を採用することにより、仮想マシンの集約率を向上させることができる。なお、仮想化環境の構成は一般的な仮想サーバーシステム(図2)と同様である。以下、本発明の実施形態による構成と図2の構成とを比較しつつ説明する。
一般的な仮想サーバーシステム(図2)では、ハイパーバイザー14からストレージ装置4へのアクセスは、ハイパーバイザー14上のホストバスアダプター141から物理デバイス15上のI/Oインタフェース152を経由させている。この場合、複数の仮想マシンから発生するI/O要求がI/Oインタフェース152に集中するため、I/Oインタフェース152が性能上のボトルネックとなってしまう。
一方、本発明の実施形態による構成では、ハイパーバイザー14上のホストバスアダプター(HBA)141と物理デバイス15上のI/Oインタフェース152の間に高速I/Oパーティション20を経由させている。高速I/Oパーティション20は、大容量メモリ202を割り当てたI/O専用の仮想マシンである。例えば、メモリ151の容量が64GBであるとすると、大容量メモリ202には32GBを割り当て、32GBを仮想マシン1及び2に割り当てるようにする。なお、高速I/Oパーティション20は、ソフトウェア、ハードウェアの両方で提供可能であり、実装方式の違いには依存しない。
また、高速I/Oパーティション20は、ハイパーバイザー14上のホストバスアダプター(HBA)141からのI/O要求を受信するI/Oインタフェース201と、I/Oインタフェース201から受信したI/O要求を受け取り、I/O要求を処理するメモリファイルシステム200を有している。本発明では、メモリファイルシステム200は、ストレージ装置の内容を大容量メモリ202上にすべてキャッシュし、データの参照や更新は全てオンメモリ上で処理する機能が特徴の1つとなっている。そして、メモリはストレージ装置と比べて、1秒間に処理できるI/O要求数(IOPS(I/O Per Second))が多いため、複数の仮想マシンからのI/O要求を高速に処理することにより、仮想マシンの集約率を向上する場合の最大のボトルネックであるI/O性能を向上することができるようになっている。
<メモリ消費量削減方法>
図4は、本実施形態の仮想サーバーシステムにおいて、メモリファイルシステム200によりメモリ消費量を削減する方法を説明するための図である。
図4は、本実施形態の仮想サーバーシステムにおいて、メモリファイルシステム200によりメモリ消費量を削減する方法を説明するための図である。
一般的な仮想マシンのイメージファイルサイズは10GByte以上である。従って、複数の仮想マシンのイメージを全てメモリ上にキャッシュすることは、サーバー3が搭載できる物理的なメモリ151の上限を考えた場合、適切ではない。例えば、サーバー3上で10台の仮想マシンを稼動させる場合、100GByteのメモリが必要になる。現行のブレードサーバー等では、数百GByteのメモリを搭載することは技術的、価格的に非常に困難であり、メモリ消費量を削減する技術が必要である。
そこで、本発明の実施形態では、仮想マシンのイメージファイルを、複数の仮想マシンで共通化できるファイル300及び301と、各仮想マシン固有のファイル310及び311に分割するようにしている。具体的には、複数の仮想マシンで共通化できるファイル300及び301として、オペレーティングシステムのイメージ(データ)300や、アプリケーションのイメージ(データ)301がある。一方、各仮想マシン固有のファイル310及び311として、ユーザデータ等の差分データ310乃至311である。
オペレーティングシステムのイメージ300やアプリケーションのイメージ(実行ファイル)301は、データサイズが数百GByteになる場合が多いが、これらのデータを複数の仮想マシンで共有することにより必要なメモリ量を大幅に削減することができる。
<データ読み出し処理>
図5は、データ読み出し時キャッシング処理イメージを示す図である。図5を用いて、本実施形態における、仮想的な大容量メモリ202上にデータをキャッシングする処理について、具体的に説明する。
図5は、データ読み出し時キャッシング処理イメージを示す図である。図5を用いて、本実施形態における、仮想的な大容量メモリ202上にデータをキャッシングする処理について、具体的に説明する。
データのキャッシング処理は、最初のデータの読み出しの際に行われる。これは、OSの種別が同一の場合、OSを構成するシステムファイルの構成は複数の仮想マシンで同一であるという事実に起因する。例えば、サーバー3上で仮想マシン1_10が起動時に、システムファイルなど共通イメージ300を大容量メモリ202上にキャッシュしておけば、以降は別の仮想マシンの起動時、また、同一のシステムファイルを何度も読み出す際に、読み出し性能を高速化することができる。OS起動時以外の例として、アプリケーション起動時のアプリケーション実行ファイル301もキャッシング対象である。ただし、OSイメージ300やアプリケーション実行ファイル301が共通化されていることが前提となるが、既知の技術で対応可能である。
キャッシング処理の流れは次の通りである。まず、(i)ユーザによる仮想マシン1_10が起動される。(ii)ディスク読み出し要求がハイパーバイザー14経由でメモリファイルシステム200に転送される。(iii)メモリファイルシステム200は、大容量メモリ202上に読み出し対象データがキャッシュされているかチェックする。(iv)未キャッシュならストレージ装置4から対象のデータを読み出す。そして、(v)大容量メモリ202に読み込んだ対象のデータをキャッシングする。最後に、(vi)読み出しデータを仮想マシン1_10に転送する。以上の順によりキャッシング処理が実行される。
<書き出し処理及びフラッシュ処理>
図6は、ディスクの書き出し処理/ダーティなデータ領域のフラッシュ処理イメージを示す図である。図6を用いて、本実施形態における、データの書き出しを大容量メモリ202上に行うことによる高速化処理、及びキャッシュデータのフラッシュ処理について、具体的に説明する。
図6は、ディスクの書き出し処理/ダーティなデータ領域のフラッシュ処理イメージを示す図である。図6を用いて、本実施形態における、データの書き出しを大容量メモリ202上に行うことによる高速化処理、及びキャッシュデータのフラッシュ処理について、具体的に説明する。
通常、データの書き出しは、外部のストレージ装置4に対して行われる。複数の仮想マシンが稼動する仮想化環境では、稼動中の仮想マシンの台数が増える程、ストレージ装置4に対するランダムな書き出しが増えるため、一般的に書き出し速度は遅くなる。
そこで、本発明では、データの書き出しを仮想的な大容量メモリ202上で実行することで、書き出し速度の高速化を実現する。最終的には大容量メモリ202上のデータをストレージ装置4上にフラッシュする必要があるが、一定間隔でデータをフラッシュする処理をメモリファイルシステム200に追加することで実現する。
ディスクの書き出し処理の流れは次の通りである。まず、(i)仮想マシン1_10からデータの書き出し要求がハイパーバイザー14経由でメモリファイルシステム200に転送される。(ii)メモリファイルシステム200が大容量メモリ202にデータをキャッシングする。(iii)書き出しの結果を仮想マシン1_10に転送する。以上の順により書き出し処理が実行される。
一方、(iv)フラッシュ処理が、メモリファイルシステム200は大容量メモリ202上のダーティなデータ領域について、所定のタイミング(例えば、対応する仮想マシン停止時)で実行される。
<イメージキャッシング処理の詳細>
図7は、本実施形態におけるデータ読み出し時イメージキャッシング処理の詳細を説明するためのフローチャートである。
図7は、本実施形態におけるデータ読み出し時イメージキャッシング処理の詳細を説明するためのフローチャートである。
メモリファイルシステム200は、各仮想マシンからのデータ参照要求を待ち(ステップ7001)、特定の仮想マシン10及び12からのデータ参照要求を受信すると(ステップ7002)、以下に示す処理フローでデータを参照する。なお、当該フローチャートでは、最初に差分データを参照し、次に共通データを参照しているが、参照の順序は逆であっても構わない。
メモリファイルシステム200は、最初に大容量メモリ202の差分データ領域31を参照し(ステップ7003)、アクセス対象データが存在するかチェックする(ステップ7004)。
ステップ7004で差分データ領域31にデータがあると判断した場合、メモリファイルシステム200は、当該データを参照し、データを解凍した上で(ステップ7009)、当該仮想マシンに参照データを転送し、処理を終了する。本実施形態では、大容量メモリ202上のデータは、メモリ消費量を削減するため、データ圧縮等を施していることを前提にする。
ステップ7004で差分データ領域31にアクセス対象データがないと判断した場合、メモリファイルシステム200は、共通データ領域30を参照し(ステップ7005)、アクセス対象データが存在するかチェックする(ステップ7006)。
ステップ7006で共通データ領域30にデータがあると判断した場合、メモリファイルシステム200は、当該データを参照し、データを解凍した上で(ステップ7009)、当該仮想マシンに参照データを転送し、処理を終了する。
ステップ7006で共通データ領域30にアクセス対象データがないと判断した場合に限り、メモリファイルシステム200は、ストレージ装置4のデータを参照する(ステップ7007)。ストレージ装置4を参照するのは、例えば仮想マシン起動時など、仮想マシンのイメージファイルに初めてアクセスする場合であって、データがまだ大容量メモリ202にデータがキャッシュされていない場合等が相当する。ストレージ装置4にのみ存在するファイルの例としては、新規に作成したファイルやインターネットで始めてアクセスしたサイトの情報等が挙げられる。このような新規作成ファイルの場合には、ファイルの基本的な情報をストレージ装置4に書く必要があることからストレージ装置4にのみ格納されている。
そして、メモリファイルシステム200は、当該データを圧縮後に大容量メモリ202に保存し(ステップ7008)、当該仮想マシンに参照データを転送し、処理を終了する。
<データ書き出し処理の詳細>
図8は、本実施形態におけるデータ書き出し処理の詳細を説明するためのフローチャートである。
図8は、本実施形態におけるデータ書き出し処理の詳細を説明するためのフローチャートである。
メモリファイルシステム200は、各仮想マシンからのデータ参照要求を待ち(ステップ8001)、特定の仮想マシン10及び12からのデータ参照要求を受信すると(ステップ8002)、大容量メモリ202の差分データ領域31に当該データを圧縮した上で保存し(ステップ8003)、処理を終了する。
本実施形態では、大容量メモリ202に格納されているデータとストレージ装置4に格納されているデータとの同期(例えば、周期的に、或いは、仮想マシン停止時等何らかのイベントがあった場合等、所定のタイミングで同期処理が実行される。)や、システム全体の信頼性を向上するためのファイルシステムのクラスタ化については、分散ファイルシステム等の従来技術の範疇であり、本発明を拡張して容易に適用できるものであり、本実施時形態の説明においては特に言及しない。
<フラッシュ処理の詳細>
図9は、本実施形態における、ダーティなデータ領域(メモリ領域)のフラッシュ処理の詳細を説明するためのフローチャートである。
図9は、本実施形態における、ダーティなデータ領域(メモリ領域)のフラッシュ処理の詳細を説明するためのフローチャートである。
メモリファイルシステム200は、一定間隔で大容量メモリ202のチェックを実施する。具体的な処理として、大容量メモリ202上に未チェックのデータ領域があるかチェックする(ステップ9001)。
ステップ9001で未チェックのデータ領域がある場合、メモリファイルシステム200は、そのデータ領域がダーティであるか否か(変更があるか否か)チェックする(ステップ9002)。
ステップ9002でデータ領域がダーティの場合、メモリファイルシステム200は、当該データ領域をストレージ装置4にフラッシュし(ステップ9003)、ステップ9001から繰り返す。
ステップ9002でデータ領域がダーティでない場合は、メモリファイルシステム200は、何もせず、ステップ9001からの処理を繰り返す。
ステップ9001で大容量メモリ202に未チェックのデータ領域がない場合は、メモリファイルシステム200は、一定時間スリープ(ステップ9004)した上でステップ9001からの処理を繰り返す。
<OS固有データ圧縮処理>
図10は、本実施形態における、OS固有データ圧縮処理を説明するためのフローチャートである。OSが起動していると、ディスクキャッシュに様々な情報が書き込まれる。時間が経過するにつれて、ディスクキャッシュには不要な情報(通称ゴミ)が溜まっていってしまい、この情報は共通データではないため、差分領域に溜められていき、差分データ領域31の容量を費やしてしまう。そこで、本処理を仮想マシン停止時に実行し、次回の仮想マシン起動のためにディスクキャッシュ領域に溜まった不要情報をクリアするようにする。
図10は、本実施形態における、OS固有データ圧縮処理を説明するためのフローチャートである。OSが起動していると、ディスクキャッシュに様々な情報が書き込まれる。時間が経過するにつれて、ディスクキャッシュには不要な情報(通称ゴミ)が溜まっていってしまい、この情報は共通データではないため、差分領域に溜められていき、差分データ領域31の容量を費やしてしまう。そこで、本処理を仮想マシン停止時に実行し、次回の仮想マシン起動のためにディスクキャッシュ領域に溜まった不要情報をクリアするようにする。
メモリファイルシステム200は、各仮想マシンの停止要求を常時監視し、各仮想マシンの停止要求があるまで待機する(ステップ10001)。
メモリファイルシステム200は、特定の仮想マシン10及び12の停止要求を受信すると(ステップ10002)、仮想マシンの停止処理が終了するまでの一連の処理を進める(ステップ10003)。
メモリファイルシステム200は、対象の仮想マシンを停止した後で、ストレージ装置4上に格納されている仮想マシンのイメージファイルの差分データを、例えば1セクタずつチェックする処理を開始する(ステップ10004)。
そして、メモリファイルシステム200は、ステップ10004で当該セクタのデータが、例えばオペレーティングシステムのディスクキャッシュ領域かチェックする(ステップ10005)。
ステップ10005で当該セクタがオペレーティングシステムのディスクキャッシュ領域であると判断した場合、メモリファイルシステム200は、当該セクタの情報を取り除く(ステップ10006)。当然、仮想マシンのイメージファイルのサイズは1セクタ分だけ縮小化する。
メモリファイルシステム200は、ステップ10006終了後、もしくはステップ10005で当該セクタがオペレーティングシステムのディスクキャッシュ領域以外だった場合は、未検索セクタの存在確認を行い(ステップ10007)、存在する間はセクタ検索処理を繰り返す。
本実施形態では、OS固有データ圧縮処理として、ディスクキャッシュ領域の例を示している。ディスクキャッシュ領域は、オペレーティングシステムが一時データを格納するための領域であり、再起動後には無効なデータとなる。しかしながら、本発明のように、複数の仮想マシンで共通化できるファイル300及び301と、各仮想マシン固有のファイル310及び311に分割することでメモリ使用量を削減するシステムでは、各仮想マシン固有のファイル310及び311を常に最小化し続ける必要がある。
なお、本発明では一例として、起動毎にディスクキャッシュ領域を無効化する機能について言及したが、類似の効果をもたらす他のデータ等も対象に含まれることは言うまでもない。
<まとめ>
本発明は、仮想化環境において、安価にI/O資源の上限値以上のゲストイメージを単一のハイパーバイザーで実行する。本発明の実施形態では、高速I/Oパーティション(仮想マシン)は、仮想的な大容量メモリ領域を有している。この大容量メモリ領域は、複数の仮想マシンで共通に使用する共通イメージ(OS及びアプリケーション)を格納する領域(共通データ領域)と、複数の仮想マシンがそれぞれ固有に用いるデータを格納する固有データ領域(差分データ領域)で構成される。そして、高速I/Oパーティションは、仮想マシンからのアクセス要求の対象データをストレージ装置から取得し、対象データにおける複数の仮想マシンで共通化された部分を共通イメージの領域(共通データ領域)に格納し、対象データにおいてアクセス要求した仮想マシンに固有な部分を差分領域に格納する。これにより、当該大容量メモリ領域に格納されたデータへのアクセスに対しては、IOPSを飛躍的に増加させることができると共に、各イメージに共通な部分を共有領域に格納するので、I/O資源の物理的な上限値以上のゲストイメージを同時に稼動させることが可能になる。
本発明は、仮想化環境において、安価にI/O資源の上限値以上のゲストイメージを単一のハイパーバイザーで実行する。本発明の実施形態では、高速I/Oパーティション(仮想マシン)は、仮想的な大容量メモリ領域を有している。この大容量メモリ領域は、複数の仮想マシンで共通に使用する共通イメージ(OS及びアプリケーション)を格納する領域(共通データ領域)と、複数の仮想マシンがそれぞれ固有に用いるデータを格納する固有データ領域(差分データ領域)で構成される。そして、高速I/Oパーティションは、仮想マシンからのアクセス要求の対象データをストレージ装置から取得し、対象データにおける複数の仮想マシンで共通化された部分を共通イメージの領域(共通データ領域)に格納し、対象データにおいてアクセス要求した仮想マシンに固有な部分を差分領域に格納する。これにより、当該大容量メモリ領域に格納されたデータへのアクセスに対しては、IOPSを飛躍的に増加させることができると共に、各イメージに共通な部分を共有領域に格納するので、I/O資源の物理的な上限値以上のゲストイメージを同時に稼動させることが可能になる。
また、各仮想マシンに固有のデータは、差分領域に格納して各仮想マシンごとに管理するので、必要なメモリ使用量を、高々オペレーティングシステム1台分のディスク領域まで削減でき、ゲストイメージ数によらず、全てオンメモリ上にキャッシュすることができる。
高速I/Oパーティションは、アクセス対象データ(少なくとも一部)が大容量メモリ領域にあるか否かチェックし、当該領域にあれば大容量メモリ領域から対象データを取得し、当該領域になければストレージ装置から対象データを取得する。このようにすることにより、アクセス速度(IOPS)を増大させることができる。
また、高速I/Oパーティションは、仮想マシンからのデータ更新要求に応答して、データ更新要求を出した仮想マシンに固有の固有データ領域に更新データを格納する。そして、所定のタイミングで差分領域に格納された更新データをストレージ装置に反映して両者の同期を取るようにする。このように同期処理を更新データ書込みとは異なるタイミングですることにより、時間の掛かる同期処理に煩わされることなく、通常の読み出し及び書き込み処理を迅速に実行することができるようになる。
さらに、高速I/Oパーティションは、仮想マシンの停止要求に応答して、当該停止要求をした仮想マシンの差分領域を1セクタごとチェックし、ディスクキャッシュ領域に対応する情報を除去する。このようにすることにより、当該仮想マシンの次回の起動時に不要なデータを整理することができるので、各仮想マシンの差分領域(固有ファイル)を最小化することができる。
なお、本発明は、実施形態そのままに限定されるものではなく、実施段階では、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
また、実施形態で示された各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現しても良い。また、上記各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現しても良い。各機能等を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録或いは記憶装置、またはICカード、SDカード、DVD等の記録或いは記憶媒体に格納することができる。
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
1…ネットワーク、2…ネットワーク、3…サーバー、4…ストレージ装置、5乃至7…クライアント、10…仮想マシン1、12…仮想マシン2、14…ハイパーバイザー、16…広域ネットワーク
Claims (8)
- 物理リソースを割り当てて実現される、複数の仮想マシンと、前記複数の仮想マシンからのアクセス要求を処理するパーティションマシンとを有するサーバー装置と、ストレージ装置と、を含み、
前記パーティションマシンは、前記物理リソースの一部を割り当てて仮想的に実現され、前記複数の仮想マシンで共通に使用するデータを格納する共通データ領域と、前記複数の仮想マシンがそれぞれ固有に用いるデータを格納する固有データ領域と、を含む仮想キャッシュメモリ領域を有し、
前記パーティションマシンは、前記アクセス要求の対象データを前記ストレージ装置から取得し、前記対象データにおける前記複数の仮想マシンで共通化された部分を前記共通データ領域に格納し、前記対象データにおいて前記アクセス要求した仮想マシンに固有な部分を前記固有データ領域に格納することを特徴とする仮想サーバーシステム。 - 請求項1において、
前記パーティションマシンは、アクセス対象データの少なくとも一部が前記仮想キャッシュメモリ領域にあるか否かによって、前記アクセス要求を前記仮想キャッシュメモリ領域及び前記ストレージ装置へのアクセスに振り分けることを特徴とする仮想サーバーシステム。 - 請求項2において、
前記パーティションマシンは、前記仮想マシンからのデータ更新要求に応答して、前記データ更新要求をした仮想マシンに固有の前記固有データ領域に更新データを格納し、所定のタイミングで前記固有データ領域に格納された前記更新データを前記ストレージ装置に反映することを特徴とする仮想サーバーシステム。 - 請求項3において、
前記パーティションマシンは、仮想マシンの停止要求に応答して、当該停止要求をした仮想マシンに固有の前記固有データ領域をチェックし、ディスクキャッシュ領域に対応する情報を除去することを特徴とする仮想サーバーシステム。 - 物理リソースを割り当てて実現される、複数の仮想マシンと、前記複数の仮想マシンからのアクセス要求を処理するパーティションマシンとを有するサーバー装置と、ストレージ装置と、を含む仮想サーバーシステムの制御方法であって、
前記パーティションマシンは、前記物理リソースの一部を割り当てて仮想的に実現され、前記複数の仮想マシンで共通に使用するデータを格納する共通データ領域と、前記複数の仮想マシンがそれぞれ固有に用いるデータを格納する固有データ領域と、を含む仮想キャッシュメモリ領域を有し、
前記制御方法は、
前記パーティションマシンが、前記アクセス要求の対象データを前記ストレージ装置から取得するステップと、
前記パーティションマシンが、前記対象データにおける前記複数の仮想マシンで共通化された部分を前記共通データ領域に格納するステップと、
前記パーティションマシンが、前記対象データが前記アクセス要求した仮想マシンに固有なデータを含む場合には、当該固有なデータを前記固有データ領域に格納するステップと、
を有することを特徴とする制御方法。 - 請求項5において、
さらに、前記パーティションマシンが、アクセス対象データの少なくとも一部が前記仮想キャッシュメモリ領域にあるか否か判断するステップと、
前記パーティションマシンが、前記判断するステップの判断結果によって、前記アクセス要求を前記仮想キャッシュメモリ領域及び前記ストレージ装置へのアクセスに振り分けるステップと、
を有することを特徴とする制御方法。 - 請求項6において、
さらに、前記パーティションマシンが、前記仮想マシンからのデータ更新要求に応答して、前記データ更新要求をした仮想マシンに固有の前記固有データ領域に更新データを格納するステップと、
前記パーティションマシンが、所定のタイミングで前記固有データ領域に格納された前記更新データを前記ストレージ装置に反映するステップと、
を有することを特徴とする制御方法。 - 請求項7において、
さらに、前記パーティションマシンが、仮想マシンの停止要求に応答して、当該停止要求をした仮想マシンに固有の前記固有データ領域をチェックするステップと、
前記パーティションマシンが、前記チェックするステップの結果によって、ディスクキャッシュ領域に対応する情報を除去するステップと、
を有することを特徴とする制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010272927A JP2012123556A (ja) | 2010-12-07 | 2010-12-07 | 仮想サーバーシステム、及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010272927A JP2012123556A (ja) | 2010-12-07 | 2010-12-07 | 仮想サーバーシステム、及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012123556A true JP2012123556A (ja) | 2012-06-28 |
Family
ID=46504941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010272927A Pending JP2012123556A (ja) | 2010-12-07 | 2010-12-07 | 仮想サーバーシステム、及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012123556A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014102823A (ja) * | 2012-11-19 | 2014-06-05 | Vmware Inc | 外部キャッシュデバイスでのハイパーバイザのi/oステージング |
WO2014118969A1 (ja) * | 2013-02-01 | 2014-08-07 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 |
JP2015526823A (ja) * | 2012-08-27 | 2015-09-10 | ヴイエムウェア インコーポレイテッドVMware,Inc. | 共用記憶域上にある仮想ディスクのトランスペアレントなホスト側キャッシング |
JP2016167670A (ja) * | 2015-03-09 | 2016-09-15 | 西日本電信電話株式会社 | 通信機器 |
KR20190102832A (ko) * | 2018-02-27 | 2019-09-04 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
KR20190102843A (ko) * | 2018-02-27 | 2019-09-04 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
KR20190102839A (ko) * | 2018-02-27 | 2019-09-04 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
-
2010
- 2010-12-07 JP JP2010272927A patent/JP2012123556A/ja active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437727B2 (en) | 2012-08-27 | 2019-10-08 | Vmware, Inc. | Transparent host-side caching of virtual disks located on shared storage |
JP2015526823A (ja) * | 2012-08-27 | 2015-09-10 | ヴイエムウェア インコーポレイテッドVMware,Inc. | 共用記憶域上にある仮想ディスクのトランスペアレントなホスト側キャッシング |
US9454487B2 (en) | 2012-08-27 | 2016-09-27 | Vmware, Inc. | Transparent host-side caching of virtual disks located on shared storage |
US9983998B2 (en) | 2012-08-27 | 2018-05-29 | Vmware, Inc. | Transparent host-side caching of virtual disks located on shared storage |
US11093402B2 (en) | 2012-08-27 | 2021-08-17 | Vmware, Inc. | Transparent host-side caching of virtual disks located on shared storage |
JP2014102823A (ja) * | 2012-11-19 | 2014-06-05 | Vmware Inc | 外部キャッシュデバイスでのハイパーバイザのi/oステージング |
WO2014118969A1 (ja) * | 2013-02-01 | 2014-08-07 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 |
JPWO2014118969A1 (ja) * | 2013-02-01 | 2017-01-26 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 |
JP2016167670A (ja) * | 2015-03-09 | 2016-09-15 | 西日本電信電話株式会社 | 通信機器 |
KR20190102839A (ko) * | 2018-02-27 | 2019-09-04 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
KR102019485B1 (ko) * | 2018-02-27 | 2019-09-06 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
KR102019486B1 (ko) | 2018-02-27 | 2019-09-06 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
KR20190102843A (ko) * | 2018-02-27 | 2019-09-04 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
KR102019487B1 (ko) * | 2018-02-27 | 2019-11-04 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
KR20190102832A (ko) * | 2018-02-27 | 2019-09-04 | 주식회사 시큐아이 | 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9760497B2 (en) | Hierarchy memory management | |
JP6709245B2 (ja) | 適応持続性システム、方法、インタフェース | |
US9652405B1 (en) | Persistence of page access heuristics in a memory centric architecture | |
US9811276B1 (en) | Archiving memory in memory centric architecture | |
TWI621023B (zh) | 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法 | |
US9778856B2 (en) | Block-level access to parallel storage | |
CN110597451B (zh) | 一种虚拟化缓存的实现方法及物理机 | |
JP5347061B2 (ja) | フラッシュメモリデータストレージデバイスにデータを格納するための方法及び装置 | |
US9959074B1 (en) | Asynchronous in-memory data backup system | |
US9092426B1 (en) | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing | |
CN111008155B (zh) | 管理计算机设备的存储器的方法、计算机设备、介质 | |
EP2778919A2 (en) | System, method and computer-readable medium for dynamic cache sharing in a flash-based caching solution supporting virtual machines | |
JP2012123556A (ja) | 仮想サーバーシステム、及びその制御方法 | |
CN1790294A (zh) | 保留虚拟机的高速缓存的系统和方法 | |
JPWO2009069326A1 (ja) | ネットワークブートシステム | |
WO2023125524A1 (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
US20140082275A1 (en) | Server, host and method for reading base image through storage area network | |
US10235054B1 (en) | System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner | |
CN113031857B (zh) | 数据写入方法、装置、服务器及存储介质 | |
US20160077747A1 (en) | Efficient combination of storage devices for maintaining metadata | |
US11687443B2 (en) | Tiered persistent memory allocation | |
Liao et al. | A performance optimization mechanism for SSD in virtualized environment | |
JP2013196421A (ja) | 仮想化システム、仮想サーバ、メモリ管理方法及びメモリ管理プログラム | |
US11860783B2 (en) | Direct swap caching with noisy neighbor mitigation and dynamic address range assignment | |
CN117093158B (zh) | 分布式存储系统的存储节点、系统、数据处理方法及装置 |