(57)【要約】【課題】  仮想化環境で動作するオペレーシングシステムが構成されたサイズ以上のメモリを必要とした場合の性能を改善する。【解決手段】  仮想化システム１００が、１つ以上の仮想マシン１２０が動作する仮想サーバ１０と、ストレージ４０とを備え、ストレージ４０が、仮想マシン１２０ごとに、スワップ領域、データディスク領域、スワップディスク領域とを備え、仮想サーバ１０が、仮想マシン１２０からスワップディスク領域へのＩ／Ｏを格納するスワップドライブ用メモリと、仮想マシン１２０からスワップディスク領域へのＩ／Ｏをスワップドライブ用メモリにキャッシュするマネージャ１１１とを備える。【選択図】  図２
2013196421.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の仮想マシンが動作する仮想サーバと、
ストレージとを備え、
前記ストレージが、前記仮想マシンごとに、スワップ領域、データディスク領域、スワップディスク領域とを備え、
前記仮想サーバが、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏを格納するスワップドライブ用メモリと、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏをスワップドライブ用メモリにキャッシュするマネージャとを備える
ことを特徴とする仮想化システム。
【請求項２】
前記マネージャが、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏが複数ある場合において、当該Ｉ／Ｏのすべてを格納する空き容量が前記スワップドライブ用メモリにない場合、予め設定した優先度に基づいて、前記優先度が高いＩ／Ｏを優先的に前記スワップディスク領域にキャッシュする
ことを特徴とする請求項１に記載の仮想化システム。
【請求項３】
前記優先度が、スワップが発生している期間に応じて設定されることを特徴とする請求項２に記載の仮想化システム。
【請求項４】
前記仮想マシンが、
前記仮想マシンからのＩ／Ｏを監視するエージェントを備え、
前記エージェントが、
前記Ｉ／Ｏの情報を前記マネージャに送信し、
前記マネージャが、
前記エージェントから受信した前記Ｉ／Ｏの情報に基づいて、当該Ｉ／Ｏが前記スワップディスク領域へのＩ／Ｏであるか否かを判定する
ことを特徴とする請求項１から請求項３の何れか１項に記載の仮想化システム。
【請求項５】
１つ以上の仮想マシンが動作する仮想サーバであって、
前記仮想マシンからストレージが備えるスワップディスク領域へのＩ／Ｏを格納するスワップドライブ用メモリと、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏをスワップドライブ用メモリにキャッシュするマネージャとを備える
ことを特徴とする仮想サーバ。
【請求項６】
前記マネージャが、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏが複数ある場合において、当該Ｉ／Ｏのすべてを格納する空き容量が前記スワップドライブ用メモリにない場合、予め設定した優先度に基づいて、前記優先度が高いＩ／Ｏを優先的に前記スワップディスク領域にキャッシュする
ことを特徴とする請求項５に記載の仮想サーバ。
【請求項７】
前記優先度が、スワップが発生している期間に応じて設定されることを特徴とする請求項６に記載の仮想サーバ。
【請求項８】
前記仮想マシンが、
前記仮想マシンからのＩ／Ｏを監視するエージェントを備え、
前記エージェントは、
前記Ｉ／Ｏの情報を前記マネージャに送信し、
前記マネージャが、
前記エージェントから受信した前記Ｉ／Ｏの情報に基づいて、当該Ｉ／Ｏが前記スワップディスク領域へのＩ／Ｏであるか否かを判定する
ことを特徴とする請求項５から請求項７の何れか１項に記載の仮想サーバ。
【請求項９】
１つ以上の仮想マシンが動作する仮想サーバによるメモリ管理方法であって、
前記仮想サーバが備えるマネージャが、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏを、前記仮想サーバが備えるスワップドライブ用メモリにキャッシュするステップを実行する
ことを特徴とするメモリ管理方法。
【請求項１０】
１つ以上の仮想マシンが動作する仮想サーバを構成するコンピュータ上で動作するメモリ管理プログラムであって、
前記仮想サーバが備えるマネージャに、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏを、前記仮想サーバが備えるスワップドライブ用メモリにキャッシュする処理を実行させる
ことを特徴とするメモリ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化システムに関し、特に、仮想マシンのメモリ管理技術に関する。
【背景技術】
【０００２】
仮想化技術により、老朽化した複数のサーバの機能を１台のサーバに集約する事が可能になるが、そこで問題となるのが性能の低下である。
【０００３】
稼動するＶＭ（ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ、仮想マシン）の台数を削減すれば、１台あたりに割り当てることが可能になるリソースが増える。逆に稼働するＶＭの台数を増やせば集約率が向上し、コスト面でのアドバンテージが生まれる。
【０００４】
性能とコストとのバランスを考えて設計を行う必要があるが、サーバの特徴として一時的に負荷が上昇するケースが多々ある。オーバーコミットやダイナミックメモリを使うことによりある程度は回避可能だが、それぞれにデメリットがあり、実際には使用できないケースが見受けられた。
【０００５】
ここで、関連技術として、オーバーコミット環境での効率的なメモリ管理に関する技術が、特許文献１に開示されている。特許文献１に開示の技術では、特定の仮想マシンがメモリリソースを要求した場合、他の仮想マシンからメモリ確保すると、特定の仮想マシンは性能が上がるが、それ以外の仮想マシンは性能が低下する可能性があるため、この際に行うメモリの割り振りを効率よく行う点に着目したものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１０−５３２０３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
仮想的なコンピュータ環境（仮想マシン（ＶＭ：  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ））を作り出し、運用する場面を想定する。ＶＭを管理し提供するソフトウェア（ＶＭＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）上で、複数のＶＭが動作する。
【０００８】
特定のＶＭの性能を向上させるためには、そのＶＭに対し、他のＶＭよりもＣＰＵ、メモリリソースを優先的に割り当てる必要がある。高負荷となるＶＭが特定できている場合は問題ないが、特定の時間・期間により不特定のＶＭが高負荷になる場合、この方法で対処した場合は問題が発生する。
【０００９】
また、高負荷を想定してリソースを割り当てた場合、特にメモリに関しては他のＶＭに割り当てる物理メモリを減らすか、予め余裕を持った設計を行う必要がある。前者の場合は他のＶＭのパフォーマンスを低下させる可能性があり、後者の場合はオーバーコミット状態となり、負荷が重なった場合はメモリスワッピングが発生し、全体的に性能が低下することが想定される。
【００１０】
この問題に対する解決策としては、ＶＭＭ上で動作するＶＭの台数を減らすか、ＶＭに割り当てるリソースを動的に変化させる必要がある。物理リソースが潤沢にあり、ＶＭＭ上で動作するＶＭの台数を減らすことが可能な場合は問題ないが、そうでない場合は動的にメモリ割り当て容量を変化させる技術（ダイナミック・メモリ）に対応したＶＭＭ及びＶＭが必要となる。この技術はＶＭ上で動作するＯＳに制限が発生し、古くからあるサーバを仮想環境へ移行した場合などは使用できない可能性が高い。
【００１１】
ところで、特許文献１に開示の技術は、オーバーコミット環境におけるメモリ管理に関するものであるため、そもそもオーバーコミット環境をなくすことを目的とはしておらず、リソースを要求した仮想マシン以外の仮想マシンの性能低下が発生するという問題がある。
【００１２】
（発明の目的）
本発明の目的は、上述の課題を解決し、仮想化環境で動作するオペレーシングシステムが構成されたサイズ以上のメモリを必要とした場合の性能を改善することが可能な仮想化システム、仮想サーバ、メモリ管理方法及びメモリ管理プログラムを提供することである。
【課題を解決するための手段】
【００１３】
本発明の第１の仮想化システムは、１つ以上の仮想マシンが動作する仮想サーバと、ストレージとを備え、ストレージが、仮想マシンごとに、スワップ領域、データディスク領域、スワップディスク領域とを備え、仮想サーバが、仮想マシンからスワップディスク領域へのＩ／Ｏを格納するスワップドライブ用メモリと、仮想マシンからスワップディスク領域へのＩ／Ｏをスワップドライブ用メモリにキャッシュするマネージャとを備える。
【００１４】
本発明の第１の仮想サーバは、１つ以上の仮想マシンが動作する仮想サーバであって、仮想マシンからストレージが備えるスワップディスク領域へのＩ／Ｏを格納するスワップドライブ用メモリと、仮想マシンからスワップディスク領域へのＩ／Ｏをスワップドライブ用メモリにキャッシュするマネージャとを備える。
【００１５】
本発明の第１のメモリ管理方法は、１つ以上の仮想マシンが動作する仮想サーバによるメモリ管理方法であって、仮想サーバが備えるマネージャが、仮想マシンからスワップディスク領域へのＩ／Ｏを、仮想サーバが備えるスワップドライブ用メモリにキャッシュするステップを実行する。
【００１６】
本発明の第１のメモリ管理プログラムは、１つ以上の仮想マシンが動作する仮想サーバを構成するコンピュータ上で動作するメモリ管理プログラムであって、仮想サーバが備えるマネージャに、仮想マシンからスワップディスク領域へのＩ／Ｏを、仮想サーバが備えるスワップドライブ用メモリにキャッシュする処理を実行させる。
【発明の効果】
【００１７】
本発明によれば、仮想化環境で動作するオペレーシングシステムが構成されたサイズ以上のメモリを必要とした場合の性能を改善することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施の形態に係る仮想化システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係る仮想マシンの構成及びエージェントとマネージャとの通信状況を示した図である。
【図３】本発明の第１の実施の形態に係る仮想サーバのメモリリソースとストレージのストレージリソースの構成を示す図である。
【図４】本発明の第１の実施の形態に係る仮想化システムの動作を示すフローチャートである。
【図５】本発明の仮想化システムの最小限の構成を示すブロック図である。
【図６】本発明の仮想サーバのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。
【００２０】
なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２１】
（第１の実施の形態）
本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００２２】
図１は、本発明の第１の実施の形態による仮想化システム１００の構成を示すブロック図である。図１を参照すると、仮想化システム１００は、仮想サーバ１０（１０−１〜１０−３）と、ネットワークスイッチ２０と、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）スイッチ３０と、ストレージ４０とを備える。
【００２３】
本実施の形態では、仮想サーバ１０を３台構成としているが、仮想サーバ１０の台数はこれに限定されない。
【００２４】
仮想サーバ１０は、プログラム制御により動作するコンピュータであり、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０１と、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続するためのＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）１０２とを含む。
【００２５】
また、仮想サーバ１０ではＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）１１０が動作している。ＶＭＭ１１０は、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を管理し提供するソフトウェアであり、ＶＭ１２０が動作している。
【００２６】
ここで、図２は、ＶＭ１２０内の構成と、ＶＭ１２０上のエージェント１２３と、ＶＭＭ１１０上のマネージャ１１１との通信状況を示した図である。
【００２７】
各ＶＭ１２０（１２０−１〜１２０−３）上ではストレージ４０へのＩ／Ｏを監視するエージェント１２３が動作し、ＶＭＭ１１０上ではエージェント１２３からの情報を採取するマネージャ１１１が動作する。ＶＭＭ１２０が動作する仮想サーバ１０に実装された物理メモリ１３０は、ＶＭＭ１１０及びＶＭ１２０に割り当てられているが、それ以外にディスクＩ／Ｏをキャッシュするためのスワップドライブ用メモリ１３０が確保される。
【００２８】
ＶＭ１２０は、システムドライブ１２１と、スワップドライブ１２２と、エージェント１２３とを含む。
【００２９】
ＶＭ１２０上ではゲストＯＳが動作するが、該ゲストＯＳ上では、ＯＳが動作するシステムドライブ、データドライブ、物理メモリが枯渇した場合のスワップファイルを格納するスワップドライブ１２２が接続されている。
【００３０】
スワップドライブ１２２は、物理メモリが枯渇した場合、スワップファイルを格納する。
【００３１】
ゲストＯＳが発行するシステムドライブ１２１、データドライブへのＩ／Ｏ２０４は、そのままストレージ４０へ行われる。ストレージ４０側での処理はストレージに依存し、ＶＭＭ１１０は関知しない。
【００３２】
ゲストＯＳが発行するスワップドライブ１２２へのＩ／Ｏ２０５については、ゲストＯＳ上で動作するエージェント１２３が監視し、Ｉ／Ｏを行うサイズ、キューの数、ＩＯＰＳ等の情報を収集して、ＶＭＭ１１０上のマネージャ１１１へ送信する。
【００３３】
マネージャ１１１は稼動している全ＶＭ１２０の情報と、予め設定した優先度及びディスクＩ／Ｏをキャッシュするための領域のサイズにより、どのＶＭ１２０からのＩ／Ｏをキャッシュするか判定する。
【００３４】
ここで、図３は、仮想サーバ１０のメモリリソースと、ストレージ１５０のストレージリソースの構成を示す図である。
【００３５】
図３を参照すると、ＶＭＭ１１０は、仮想サーバ１０の物理メモリ１３０上に専用のメモリ領域（ＶＭＭ用メモリ）が割り当てられており、また、ストレージ４０上で専用のスワップ領域（ＶＭＭ用スワップ領域）及びデータディスク（ＶＭＭ用データディスク）が割り当てられる。
【００３６】
また、各ＶＭ１２０についても、仮想サーバ１０の物理メモリ１３０上に専用のメモリ領域（ＶＭ用メモリ）が割り当てられており、また、ストレージ４０上で専用のスワップ領域（ＶＭ用スワップ領域）及びデータディスク（ＶＭＭデータディスク）が割り当てられる。
【００３７】
さらに、各ＶＭ１２０は、ストレージ４０上で、専用のスワップディスク（ＶＭ用スワップディスク）が割り当てられている。
【００３８】
スワップ領域は、メモリ領域のメモリリソースが足りなくなった場合に使用される。また、データディスクは、ゲストＯＳが使用するディスクである。
【００３９】
スワップディスクは、スワップファイル専用のディスクである。
【００４０】
本発明では、メモリ領域のメモリリソースが足りなくなった場合の動作をＯＳ及び本発明で制御することを前提としているため、ＶＭ用スワップ領域は基本的には使用しないものとする。
【００４１】
仮想サーバ１０の物理メモリ１３０には、ＶＭＭ用メモリ、ＶＭ用メモリ以外に、各ＶＭがスワップディスクへＩ／Ｏを行う際にキャッシュとして使用するスワップドライブ用メモリが確保されている。
【００４２】
本発明は、スワップ領域へのスワッピングが発生した場合に、そのスワップドライブ１２２へのＩ／Ｏ２０５を仮想サーバ１０の物理メモリ１３０上にあるスワップドライブ用メモリに行うことにより、Ｉ／Ｏの遅延を防ぐことを可能にする。
【００４３】
スワップドライブ１２２へのＩ／Ｏ２０５を仮想サーバ１０の物理メモリ１３０上にあるスワップドライブ用メモリに行うことにより、ＶＭ１２０上のゲストＯＳではメモリが足りない状態が発生し、スワップアウトが頻繁に行われているように見えるが、実際は物理メモリへのＩ／Ｏとなっている。このため、ゲストＯＳ上からは認識できないが、一時的に割り当てた物理メモリ以上の物理メモリ領域を使用する事が可能になる。
【００４４】
このように、本発明はストレージなどで実装されているＷｒｉｔｅ  Ｂａｃｋ技術とは異なり、ＶＭのスワップアウト／スワップインが発生した際のＩ／Ｏのみをキャッシュする領域（スワップドライブ用メモリ）を予め予約しておき、この領域にはシステムドライブへの書き込みなど通常のＩ／Ｏについては行わない。全てのスワップアウト／スワップインのＩ／Ｏを物理メモリに蓄えることは不可能なため、予め設定した優先度または長時間スワップが発生しているＶＭに対して行うなどの優先度付けを行う。この優先度はＶＭ上でエージェント、ＶＭＭ上でマネージャを動作させ、Ｉ／Ｏを監視することにより判定する。
【００４５】
（第１の実施の形態の動作の説明）
次に、本実施の形態による仮想化システム１００の動作について、図面を参照して詳細に説明する。
【００４６】
図２に示す各ＶＭ１２０（１２０−１〜１２０−３）は、それぞれストレージ４０に対しＩ／Ｏを行っている。
【００４７】
ＶＭ１２０上で動作するゲストＯＳは、システムドライブ、スワップドライブの最低２台のストレージ装置を実装している。
【００４８】
ＶＭ１２０−２及びＶＭ１２０−３は本発明を使用せず、一般的なＩ／Ｏを表したものである。ＶＭ１２０からのＩ／Ｏ２１４及びＩ／Ｏ２１５は、ＶＭＭ１１０を経由し、ストレージ４０へのＩ／Ｏとなり、そこから先の処理についてはストレージ４０に依存している。
【００４９】
これに対し、ＶＭ１２０−１は、ＶＭ１２０−２及びＶＭ１２０−３とは異なる動作を行う。
【００５０】
ＶＭ１２０−１では、システムドライブ１２１からのＩ／Ｏ２０４は、ＶＭ１２０−２、ＶＭ１２０−３と同様にストレージ４０へのＩ／Ｏとなる。
【００５１】
ＶＭ１２０−１に割り当てられたメモリリソースが足りなくなった場合は、メモリのスワップアウトが発生し、ＶＭ用スワップディスクへのＩ／Ｏが行われる。この時、スワップドライブ１２２からのＩ／Ｏ２０５は、ストレージ４０へのＩ／Ｏにはならず、仮想サーバ１０に搭載された物理メモリ１３０へのＩ／Ｏとなる。
【００５２】
つまり、仮想サーバ１０に実装されたスワップドライブ用メモリへのＩ／Ｏが完了し、該完了の通知を受けた時点で、ゲストＯＳはＩ／Ｏ処理を完了したと認識する。この後、スワップドライブ用メモリからストレージ４０へのＩ／Ｏが非同期に実行される。
【００５３】
次に、スワップディスクへのＩ／Ｏが２０５になる場合と、２１５になる場合の判定について、図４を合わせて参照し、説明する。
【００５４】
ＶＭＭ１１０上では複数台のＶＭ１２０が動作しており、それぞれがＩ／Ｏを発行している（ステップＳ４０１）。
【００５５】
Ｉ／Ｏの情報は各ＶＭ１２０上で動作しているエージェント１２３から、ＶＭＭ１１０上で動作するマネージャ１１１に送信される（ステップＳ４０２）。
【００５６】
まずＩ／Ｏの判定を行う対象を判定する。システムドライブ１２１へのＩ／Ｏの場合は本発明の対象外となるため、そのままストレージ４０へのＩ／Ｏになる。
【００５７】
スワップドライブ１２２へのＩ／Ｏの場合は次の判定に移る（ステップＳ４０３）。
【００５８】
物理メモリ１３０上において、例えばスワップアウトを行っているＶＭ１２０が１台しかないような場合など、スワップドライブ用メモリの空きが十分にある場合、スワップドライブ１２２へのＩ／Ｏを、スワップドライブ用メモリへのＩ／Ｏとする（ステップＳ４０６）。
【００５９】
スワップドライブ用メモリがすでに他のＶＭ１２０に使用されていたりして、スワップドライブ用メモリの空きが不十分場合は、優先度の判定に移る（ステップＳ４０４）。
【００６０】
なお、Ｓ４０４において、スワップドライブ用メモリの空きが十分なのか不十分なのかの判断は、例えば所定の閾値と空き容量とを比較して判断することができる。また、これに限定はされない。
【００６１】
優先度の判定に移ると、優先度に応じスワップドライブ１２２へのＩ／Ｏにするか、ストレージ４０へのＩ／Ｏにするかの判定が行われる（ステップＳ４０５）。そして、優先度が高いと判断された場合は、スワップドライブ１２２へのＩ／Ｏとされる（ステップＳ４０６）。
【００６２】
なお、Ｓ４０５において、優先度が高いか低いかの判断は、予め所定の優先度を設定しておくことで判断できる。例えば、一定の期間以上スワップが発生しているＶＭ１２０からのＩ／Ｏであれば優先度が高い等、任意に設定可能である。
【００６３】
スワップドライブ用メモリへのＩ／Ｏとされた場合（ステップＳ４０６）、スワップドライブ用メモリからストレージ４０へのＩ／Ｏが非同期に実行される（ステップＳ４０７）。
【００６４】
（第１の実施の形態による効果）
本実施の形態による第１の効果は、特定のＶＭに一時的な負荷が発生し、事前に割り当てた物理メモリ以上のメモリを要求するような処理が発生した際にある程度の性能を維持させることが可能になることである。
【００６５】
本実施の形態による第２の効果は、スワップドライブ用メモリは複数のＶＭで共有させるため、オーバーコミットを発生させずに性能を向上させることが可能になることである。
【００６６】
本実施の形態によれば、例えば、特定の仮想マシンがメモリリソースを要求した場合、ゲストＯＳがスワップアウトを行うが、このＩ／Ｏを物理メモリに行う。このため、他の仮想マシンには影響がない。スワップアウトを物理メモリに行った仮想マシンだけに性能低下が発生する。仮に平常時の性能を９とした場合、負荷により各仮想マシンの性能は９〜１２等動的に変化するが、平常時の性能を下回ることはない。
【００６７】
ここで、本発明の課題を解決できる最小限の構成を図５に示す。仮想化システム１００が、１つ以上の仮想マシン１２０が動作する仮想サーバ１０と、ストレージ４０とを備え、ストレージ４０が、仮想マシン１２０ごとに、スワップ領域、データディスク領域、スワップディスク領域とを備え、仮想サーバ１０が、仮想マシン１２０からスワップディスク領域へのＩ／Ｏを格納するスワップドライブ用メモリと、仮想マシン１２０からスワップディスク領域へのＩ／Ｏをスワップドライブ用メモリにキャッシュするマネージャ１１１とを備えることで、上述した本発明の課題を解決することができる。
【００６８】
次に、本発明の仮想サーバ１０のハードウェア構成例について、図６を参照して説明する。図６は、仮想サーバ１０のハードウェア構成例を示すブロック図である。
【００６９】
図６を参照すると、本発明の仮想サーバ１０は、一般的なコンピュータ装置と同様のハードウェア構成であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部６０２、ネットワークを介してデータの送受信を行う通信部６０３、入力装置６０５や出力装置６０６及び記憶装置６０７と接続してデータの送受信を行う入出力インタフェース部６０４、上記各構成要素を相互に接続するシステムバス６０８を備えている。記憶装置６０７は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【００７０】
本発明の仮想サーバ１０の各機能は、プログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置８０７に格納し、そのプログラムを主記憶部８０２にロードしてＣＰＵ８０１で実行することにより、ソフトウェア的に実現することも可能である。
【００７１】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００７２】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００７３】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００７４】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【００７５】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【００７６】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【００７７】
（付記１）
１つ以上の仮想マシンが動作する仮想サーバと、
ストレージとを備え、
前記ストレージが、前記仮想マシンごとに、スワップ領域、データディスク領域、スワップディスク領域とを備え、
前記仮想サーバが、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏを格納するスワップドライブ用メモリと、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏをスワップドライブ用メモリにキャッシュするマネージャとを備える
ことを特徴とする仮想化システム。
【００７８】
（付記２）
前記マネージャが、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏが複数ある場合において、当該Ｉ／Ｏのすべてを格納する空き容量が前記スワップドライブ用メモリにない場合、予め設定した優先度に基づいて、前記優先度が高いＩ／Ｏを優先的に前記スワップディスク領域にキャッシュする
ことを特徴とする付記１に記載の仮想化システム。
【００７９】
（付記３）
前記優先度が、スワップが発生している期間に応じて設定されることを特徴とする付記２に記載の仮想化システム。
【００８０】
（付記４）
前記仮想マシンが、
前記仮想マシンからのＩ／Ｏを監視するエージェントを備え、
前記エージェントが、
前記Ｉ／Ｏの情報を前記マネージャに送信し、
前記マネージャが、
前記エージェントから受信した前記Ｉ／Ｏの情報に基づいて、当該Ｉ／Ｏが前記スワップディスク領域へのＩ／Ｏであるか否かを判定する
ことを特徴とする付記１から付記３の何れか１項に記載の仮想化システム。
【００８１】
（付記５）
１つ以上の仮想マシンが動作する仮想サーバであって、
前記仮想マシンからストレージが備えるスワップディスク領域へのＩ／Ｏを格納するスワップドライブ用メモリと、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏをスワップドライブ用メモリにキャッシュするマネージャとを備える
ことを特徴とする仮想サーバ。
【００８２】
（付記６）
前記マネージャが、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏが複数ある場合において、当該Ｉ／Ｏのすべてを格納する空き容量が前記スワップドライブ用メモリにない場合、予め設定した優先度に基づいて、前記優先度が高いＩ／Ｏを優先的に前記スワップディスク領域にキャッシュする
ことを特徴とする付記５に記載の仮想サーバ。
【００８３】
（付記７）
前記優先度が、スワップが発生している期間に応じて設定されることを特徴とする付記６に記載の仮想サーバ。
【００８４】
（付記８）
前記仮想マシンが、
前記仮想マシンからのＩ／Ｏを監視するエージェントを備え、
前記エージェントは、
前記Ｉ／Ｏの情報を前記マネージャに送信し、
前記マネージャが、
前記エージェントから受信した前記Ｉ／Ｏの情報に基づいて、当該Ｉ／Ｏが前記スワップディスク領域へのＩ／Ｏであるか否かを判定する
ことを特徴とする付記５から付記７の何れか１項に記載の仮想サーバ。
【００８５】
（付記９）
１つ以上の仮想マシンが動作する仮想サーバによるメモリ管理方法であって、
前記仮想サーバが備えるマネージャが、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏを、前記仮想サーバが備えるスワップドライブ用メモリにキャッシュするステップを実行する
ことを特徴とするメモリ管理方法。
【００８６】
（付記１０）
前記マネージャが、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏが複数ある場合において、当該Ｉ／Ｏのすべてを格納する空き容量が前記スワップドライブ用メモリにない場合、予め設定した優先度に基づいて、前記優先度が高いＩ／Ｏを優先的に前記スワップディスク領域にキャッシュするステップを実行する
ことを特徴とする付記９に記載のメモリ管理方法。
【００８７】
（付記１１）
前記優先度が、スワップが発生している期間に応じて設定されることを特徴とする付記１０に記載のメモリ管理方法。
【００８８】
（付記１２）
前記仮想マシンが備えるエージェントが、
前記仮想マシンからのＩ／Ｏを監視し、前記Ｉ／Ｏの情報を前記マネージャに送信するステップを実行し、
前記マネージャが、
前記エージェントから受信した前記Ｉ／Ｏの情報に基づいて、当該Ｉ／Ｏが前記スワップディスク領域へのＩ／Ｏであるか否かを判定するステップを実行する
ことを特徴とする付記９から付記１１の何れか１項に記載のメモリ管理方法。
【００８９】
（付記１３）
１つ以上の仮想マシンが動作する仮想サーバを構成するコンピュータ上で動作するメモリ管理プログラムであって、
前記仮想サーバが備えるマネージャに、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏを、前記仮想サーバが備えるスワップドライブ用メモリにキャッシュする処理を実行させる
ことを特徴とするメモリ管理プログラム。
【００９０】
（付記１４）
前記マネージャに、
前記仮想マシンから前記スワップディスク領域へのＩ／Ｏが複数ある場合において、当該Ｉ／Ｏのすべてを格納する空き容量が前記スワップドライブ用メモリにない場合、予め設定した優先度に基づいて、前記優先度が高いＩ／Ｏを優先的に前記スワップディスク領域にキャッシュする処理を実行させる
ことを特徴とする付記１３に記載のメモリ管理プログラム。
【００９１】
（付記１５）
前記優先度が、スワップが発生している期間に応じて設定されることを特徴とする付記１４に記載のメモリ管理プログラム。
【００９２】
（付記１６）
前記仮想マシンが備えるエージェントに、
前記仮想マシンからのＩ／Ｏを監視し、前記Ｉ／Ｏの情報を前記マネージャに送信する処理を実行させ、
前記マネージャに、
前記エージェントから受信した前記Ｉ／Ｏの情報に基づいて、当該Ｉ／Ｏが前記スワップディスク領域へのＩ／Ｏであるか否かを判定する処理を実行させる
ことを特徴とする付記１３から付記１５の何れか１項に記載のメモリ管理プログラム。
【符号の説明】
【００９３】
１００：仮想化システム
１０（１０−１〜１０−３）：仮想サーバ
１０１：ＮＩＣ
１０２：ＨＢＡ
１１０：ＶＭＭ
１１１：マネージャ
１２０：ＶＭ
１３０：物理メモリ
１２１：システムドライブ
１２２：スワップドライブ
１２３：エージェント
２０４、２０５、２１４、２１５：Ｉ／Ｏ
２０：ネットワークスイッチ
３０：ＦＣスイッチ
４０：ストレージ
６０１：ＣＰＵ
６０２：主記憶部
６０３：通信部
６０４：入出力インタフェース部
６０５：入力装置
６０６：出力装置
６０７：記憶装置
６０８：システムバス
【図１】
2013196421.tif 000003
【図２】
2013196421.tif 000004
【図３】
2013196421.tif 000005
【図４】
2013196421.tif 000006
【図５】
2013196421.tif 000007
【図６】
2013196421.tif 000008