JPWO2010055937A1 - 計算機システム、データ保存方法およびプログラム - Google Patents

計算機システム、データ保存方法およびプログラム Download PDF

Info

Publication number
JPWO2010055937A1
JPWO2010055937A1 JP2010537824A JP2010537824A JPWO2010055937A1 JP WO2010055937 A1 JPWO2010055937 A1 JP WO2010055937A1 JP 2010537824 A JP2010537824 A JP 2010537824A JP 2010537824 A JP2010537824 A JP 2010537824A JP WO2010055937 A1 JPWO2010055937 A1 JP WO2010055937A1
Authority
JP
Japan
Prior art keywords
file
memory
page
data
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.)
Granted
Application number
JP2010537824A
Other languages
English (en)
Other versions
JP5445463B2 (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 JP2010537824A priority Critical patent/JP5445463B2/ja
Publication of JPWO2010055937A1 publication Critical patent/JPWO2010055937A1/ja
Application granted granted Critical
Publication of JP5445463B2 publication Critical patent/JP5445463B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3246Power saving characterised by the action undertaken by software initiated power-off
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ハイバネーション機能を有する仮想計算機を構築可能な計算機システムにおける補助記憶装置に保存された前記仮想計算機のメインメモリのデータを削減する。仮想計算機がハイバネーション状態への移行した時点で、補助記憶装置に保存された前記仮想計算機のメインメモリのデータが不要となるかどうかという観点で、データを削減できるように、前記補助記憶装置に記憶するデータを書き換える。

Description

(関連出願についての記載)
本発明は、日本国特許出願:特願2008−293776号(2008年11月17日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、計算機システム、データ保存方法およびプログラムに関し、特に、ハイバネーション機能を有する仮想計算機を構築可能な計算機システム、方法およびプログラムに関する。
ノート型コンピュータ等の実計算機や仮想計算機を停止させる機能のひとつとして、ハイバネーション(hibernation)という機能がある。ハイバネーションを実行すると、コンピュータは、メインメモリのデータ等を、不揮発性の補助記憶装置に保存し、電源を遮断する。この状態を、ハイバネーション状態、もしくは、休止状態という。
仮想計算機とは、実計算機上で、ソフトウェア等により仮想的に実現したコンピュータである。特に、仮想計算機は、仮想的なCPU、仮想的なメインメモリ、仮想的な補助記憶装置等を持つシステム仮想計算機を持つものがある。仮想計算機の適用例として、コンピュータの利用者が、1台の実計算機上で、複数のコンピュータを使用できるようにする例等がある。
仮想計算機の仮想的なメインメモリのデータは、実計算機上のファイルに保存される。このファイルを物理メモリファイルと称する。
ハイバネーションに関し、仮想計算機へ大容量のメモリを割り当てると、実計算機の補助記憶装置へ保存するデータ量が多くなるという問題があった。
そこで、このような問題を解決するため、前記補助記憶装置に保存するメインメモリのデータを削減する方法が提案されており、例えば、非特許文献1や特許文献1、特許文献2に開示されている。
非特許文献1に開示された計算機システムについて図15を用いて説明する。この計算機システムは、実計算機2001に含まれる、仮想計算機2100と、メモリファイル2200と、メモリファイル圧縮部2300から構成される。
仮想計算機2100は、オペレーティングシステム(以下、「OS」)2101と、メモリ消費部2102から構成される。
OS2101は、仮想計算機2100の仮想的なメインメモリを管理する機能等を持ち、これら機能により、仮想的なメインメモリから破棄可能なメモリページを回収し、仮想計算機2100で動作するプログラムに対して、メモリページを割り当てる。
メモリ消費部2102は、仮想計算機が動作中にOS2101に対してメモリページの割り当てを要求し、割り当てられたメモリページに、圧縮に適したデータを書き込む。
メモリファイル2200は、仮想計算機2101の仮想的なメインメモリのデータを記載したファイルである。このファイルは、実計算機2001の補助記憶装置(不図示)に保存される。
メモリファイル圧縮部2300は、仮想計算機2100がハイバネーション状態に移行した後、メモリファイル2200を圧縮する。
このような構成を有する従来の計算機システムは、仮想計算機2100が動作中にメモリ消費部2102を動作させる。メモリ消費部2102は、OS2101にメモリページを要求し、割り当てさせ、割り当てられたメモリページに、圧縮に適したデータを書き込む。この計算機システムは、メモリ消費部2102に、前記要求と圧縮に適したデータの書込みを実行させることで、仮想的なメインメモリ内で、圧縮に適したデータが書き込まれたメモリページを増やしている。この結果、仮想計算機2100がハイバネーション状態に移行した後、メモリファイル圧縮部2300にメモリファイル2200を圧縮させると、より高い圧縮率でメモリファイル2200を圧縮できるため、メモリファイルのサイズをより小さくできる。
特許文献1は、実計算機を対象としたデータセーブ制御方法であって、図16に示すように、BIOS3101と、OS3102と、高速ハイバネーションソフトウェアドライバ3103から構成される。
このような構成を有する計算機システムは、以下のように動作する。即ち、OS3102から、ハイバネーションメッセージが発行されると、高速ハイバネーションソフトウェアドライバ3103は、そのハイバネーションメッセージに応答して、OS3102に対して、現在のメモリ状態を示すメモリ管理情報(ページインフォメーション)を要求する。ページインフォメーションは、特許文献1の実計算機のメインメモリ(不図示)内に実在するページに対応するプログラム(プロセス)のマッピング情報を示すものであり、仮想記憶機構を実現するためのデマンドページングを実行するために、OS3102によって管理されている。
高速ハイバネーションソフトウェアドライバ3103は、OS3102からページインフォメーションを受取ると、そのページインフォメーションが示す現在のメインメモリの使用状況に基づいて、空ページおよび廃棄可能ページ以外の他のページについて、その物理メモリアドレスを調べ、そのメモリ内容をOS3102のファイルシステムを利用して、特許文献1の実計算機のHDD(不図示)にセーブする。セーブ処理が完了すると、高速ハイバネーションソフトウェアドライバは、BIOS3101に対してパワーオフを指示し、これに応答して特許文献1の実計算機の電源コントローラにシステムの電源をオフさせるパワーオフ処理がBIOS3101によって実行される。
その他、特許文献2には、ハイバネーション時又はウェークアップ時のシステムのパフォーマンスを評価し、その評価に従って、次回以降のハイバネーション時にメモリ内容の圧縮を行うか否かを決定するハイバネーション装置が開示されている。
特開平10−333997号公報 特開2001−22464号公報
Constantine P. Sapuntzakis 他 著「Optimizing the Migration of Virtual Computers」ACM出版、2002年、pp.377−390
上記特許文献1、2及び非特許文献1の全開示内容はその引用をもって本書に繰込み記載する。以下に本発明による関連技術の分析を与える。
非特許文献1に記載の計算機システムは、仮想計算機の動作中に、破棄可能なメモリページを回収している。このため、前記仮想計算機が動作中に使用しているメモリページは、前記仮想計算機がハイバネーション状態になった時点で、廃棄可能なページとなったとしても、破棄されない。この結果、廃棄可能なページであっても、廃棄されないページが存在しうる。
また、特許文献1に記載のデータセーブ制御方法を仮想計算機に応用した場合、高速ハイバネーションソフトウェアドライバは、空ページおよび廃棄可能ページ以外の他のページのデータを、OSのファイルシステムを利用して保存することになる。このため、OSが動作中に使用しているメモリページは、OSを含む仮想計算機がハイバネーション状態になった時点で廃棄可能なページとなったとしても、廃棄されない。
また、特許文献2のハイバネーション装置を仮想計算機に応用した場合も同様に、ハイバネーション状態の前に、動作効率を最適化しているものであるため、前記仮想計算機が動作中に使用しているメモリページは、前記仮想計算機がハイバネーション状態になった時点で、廃棄可能なページとなったとしても、破棄されない。
前記のように破棄可能となっても、廃棄されないメモリページの例として、仮想計算機の内部で動作するOSによって、ディスクキャッシュに割り当てられた、仮想メモリ上のメモリページを挙げることができる。
ディスクキャッシュは、ハードディスク装置などの補助記憶装置とのデータの読み書きを高速化するためにメインメモリに割り当てられたキャッシュであり、仮想計算機、実計算機に関係なく、Linuxなどの一般的なOSに搭載されている。
これらのOSは、補助記憶装置からデータを読み出す場合、読み出したデータをメインメモリにディスクキャッシュとして保存する。このため、再度、同じデータが読み出される場合、補助記憶装置からではなく、ディスクキャッシュから読み出すことで、仮想的に補助記憶装置からの読み出しを高速化できる。補助記憶装置へデータを書き込む場合も同様に、書き込むデータを補助記憶装置にではなく、メインメモリにキャッシュとして保存する。このため、仮想的に補助記憶装置への書込みを高速化できる。後者のディスクキャッシュに保存されたデータは、専用のプロセス(デーモン)によって、定期的に、まとめて補助記憶装置に書き込まれる。これにより、ディスクキャッシュと補助記憶装置とのデータの同期をとっている。このような、ディスクキャッシュに保存されているデータは、同期がとれている限り、補助記憶装置にも存在する。このため、同期がとれているディスクキャッシュは、廃棄可能なメモリページである。
しかし、ディスクキャッシュの機構を明示的に停止しない限り、OSが補助記憶装置に対して読み書きするたびに、ディスクキャッシュとして、メモリページが使用される。
前記のOSが、前記仮想計算機内のOSである場合、ディスクキャッシュの機構を明示的に停止しない限り、ディスクキャッシュとして、仮想メモリ上のメモリページが使用される。
以上のように、特許文献1〜2や非特許文献1に記載の計算機システムでは、仮想計算機内のOSがディスクキャッシュとして割り当てたメモリページなど、仮想計算機が動作中は使用されているがハイバネーション状態になった時点で廃棄可能なページを、廃棄しきれないという問題点がある。
本発明は、上記した考察に基づいてなされたものであって、補助記憶装置に保存するメインメモリのデータをより削減することのできる計算機システム、データ保存方法およびプログラムを提供することを目的とする。
本発明の第1の視点によれば、ハイバネーション機能を有する仮想計算機を構築可能であり、前記仮想計算機がハイバネーション状態への移行後に、補助記憶装置に保存するデータを削減できるように、前記仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルを書き換える物理メモリファイル書換処理部を備える計算機システムが提供される。
本発明の第2の視点によれば、仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルに含まれるデータを保存する方法であって、前記仮想計算機のハイバネーション状態への移行後に、補助記憶装置に保存するデータを削減できるように、前記物理メモリファイルを書き換えるデータ保存方法が提供される。
本発明の第3の視点によれば、仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルに含まれるデータを保存するためのプログラムであって、前記仮想計算機のハイバネーション状態への移行後に、補助記憶装置に保存するデータを削減できるように、前記物理メモリファイルを書き換える処理を実計算機に実行させるプログラムが提供される。
本発明によれば、補助記憶装置に保存するメインメモリのデータを削減することが可能となる。その理由は、仮想計算機の動作中に破棄可能なメモリページのみならず、ハイバネーション状態になった時点で、廃棄可能なメモリページを破棄等できるよう書き換えを行うようにしたことにある。
本発明の第1の実施形態に係る計算機システムの構成を示すブロック図である。 本発明の第1の実施形態のページ管理テーブルの一例を示す図である。 本発明の第1の実施形態の物理メモリファイル管理テーブルの一例を示す図である。 本発明の第1の実施形態のファイル管理テーブルの一例を示す図である。 本発明の第1の実施形態のファイルの保存形式を説明するための図である。 本発明の第1の実施形態に係る計算機システムの動作を説明するためのフローチャートである。 本発明の第1の実施形態に係る計算機システムの動作を説明するための第2のフローチャートである。 本発明の第2の実施形態に係る計算機システムの構成を示すブロック図である。 本発明の第2の実施形態に係る計算機システムの動作を説明するためのフローチャートである。 本発明を適用可能なコンピュータの構成例である。 本発明の第1の実施形態に対応する具体例を説明するためのファイル構成を表した図である。 本発明の第1の実施形態に対応する具体例を説明するためのプログラム構成を表した図である。 第2の実施形態に対応する具体例を説明するためのファイル構成を表した図である。 本発明の第2の実施形態に対応する具体例を説明するためのプログラム構成を表した図である。 非特許文献1の構成を示すブロック図である。 特許文献1の構成を示すブロック図である。
[発明の概要]
続いて、本発明の概要を説明する。本発明は、仮想計算機がハイバネーション状態への移行後に(図6のステップS101の「はい」参照)、計算機システムが、仮想計算機のメモリページの検査を実行する。この検査により、例えば、参照されることの無かったメモリページやディスクキャッシュ等の破棄可能なデータを特定可能となる。その結果に基づいて、計算機システムが、補助記憶装置に保存するデータを削減できるよう前記物理メモリファイルを書き換える(最適化する)処理を行うようにしたことにある。
前記書き換え(最適化)の具体例としては、例えば、参照されていないメモリページをより高い圧縮率で圧縮できるよう書き換えたり(図6のステップS104、S105参照)、削除することが考えられる。
以上のように、ハイバネーション状態へ移行した時点で、上述した廃棄できるのにもかかわらず廃棄されないメモリページを圧縮又は削除するように物理メモリファイルの書き換えが行われるため、計算機システムの補助記憶装置に保存するデータを削減することが可能になる。
[第1の実施形態]
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。第1の実施形態では、廃棄可能なメモリページの例として、ディスクキャッシュとして割り当てられたメモリページを用いる。以下、このページのことを、キャッシュページと称する。
図1は、本発明の第1の実施形態に係る計算機システム(コンピュータ)の構成を示すブロック図である。
図1を参照すると、物理メモリファイル記憶部11と、ファイル記憶部12と、メモリファイル圧縮部13と、メモリファイル伸張部14と、仮想計算機15と、仮想計算機監視部16と、物理メモリファイル管理テーブル記憶部17と、ファイル管理テーブル記憶部18とを備えたコンピュータ1が示されている。
物理メモリファイル記憶部11は、仮想計算機15が使用する仮想的なメインメモリのデータを保存するファイルである、物理メモリファイルを記憶する。物理メモリファイル記憶部11は、ページ管理テーブル記憶部111を含む。
ページ管理テーブル記憶部111は、前述の物理メモリファイルに含まれるそれぞれのメモリページの属性を管理するテーブルであるページ管理テーブルを記憶する。
図2にページ管理テーブルの一例を示す。図2を参照すると、ページ管理テーブルは、メモリページごとにエントリを有し、メモリページの属性を示す以下のメンバによって構成される。
[ページ キャッシュ フラグ]
当該ページがキャッシュページであるかを示すフラグ。セットされていれば、当該ページがキャッシュページであることを示す。
[マッピングファイル]
当該ページがキャッシュページである場合、当該ページがキャッシュするデータをもつ、ファイルのファイルIDを示す。
[インデックス]
当該ページがキャッシュページである場合、当該ページが、前記マッピングファイルに記載されたファイルIDのファイルのどの位置に対応するかを、オフセットで示す。オフセットの表現方法は、ページ単位であっても、バイト単位であってもよい。
[ページ参照カウンタ]
当該ページが使用されているかを示すカウンタ。この値が0であれば、当該ページは未使用であり、正数であれば、使用されていることを示す。
[ページダーティフラグ]
当該ページのデータが変更されたかを示すフラグ。当該ページが、キャッシュページであって、さらに、このフラグがセットされていれば、当該ページのデータは、前記のマッピングファイルに記載されたファイルIDのファイルの対応する位置のデータと異なることを示す。
ファイル記憶部12は、仮想計算機15の仮想的な補助記憶装置を、ディスクイメージファイルとして記憶する。
メモリファイル圧縮部13は、物理メモリファイルを圧縮する。
メモリファイル伸張部14は、物理メモリファイルを伸張する。
仮想計算機15は、メインメモリや補助記憶装置などを仮想的に実現した仮想計算機であって、OS151を含む。
OS151は、仮想計算機15の内部で動作するOSであって、仮想計算機15の仮想的なハードウェアを管理し、仮想計算機15内部で動作するユーザプロセスに対して前記の仮想的なハードウェアを抽象化する。OS151は、さらに、メモリ管理部152と、ファイル管理部153を含む。
メモリ管理部152は、仮想計算機15の仮想的なメインメモリを管理し、そのメモリページの属性を前述のページ管理テーブルに設定する。さらに、仮想計算機15の動作中に、仮想計算機監視部16に対して送られる仮想的な物理アドレスと、それがどのようなデータのアドレスであるかを、物理メモリファイル管理テーブルに記録する。特に、メモリ管理部152から仮想計算機監視部16に送られるページ管理テーブルの仮想的な物理アドレスを、物理メモリファイル管理テーブルに記録する。
物理メモリファイル管理テーブルは、物理メモリファイルのどのアドレスにどのようなデータが存在するかを管理するテーブルである。本実施形態の物理メモリファイル管理テーブルは、ページ管理テーブルが、どのアドレスに存在するかを示すテーブルとなっている。
図3に物理メモリファイル管理テーブルの一例を示す。物理メモリファイル管理テーブルは、物理メモリファイル管理テーブル記憶部17に保存される。
メモリ管理部152による物理メモリファイル管理テーブルへ記録するとき、メモリ管理部152が、直接、物理メモリファイル管理テーブルに書き込む場合、コンピュータ1に含まれる記憶部のアクセス権限を正確に設定し、メモリ管理部152が、物理メモリファイル管理テーブル記憶部17以外にアクセスできないようにする必要がある。例えば、メモリ管理部152が、仮想計算機監視部16にメッセージとして前記物理メモリファイル管理テーブルに記録すべきデータを送り、仮想計算機監視部16が物理メモリファイル管理テーブルに書き込む方法など、仮想計算機監視部16を介在させ、その監視下で物理メモリファイル管理テーブルに書き込む方法を採ることで、コンピュータ1のセキュリティをより高められる。
ファイル管理部153は、仮想計算機15の仮想的な補助記憶装置を管理する。さらに、ファイル管理部153は、仮想計算機15の動作中に、仮想計算機15の仮想的な補助記憶装置に保存されたファイルの「ファイルID」と「パスを含めたファイル名」を、ファイル管理テーブルに記録する。また、仮想計算機15が、複数の仮想的な補助記憶装置を持つとき、それらをマウントしたときの関連情報も、ファイル管理テーブルに記録する。「ファイルID」とは、ファイル固有の識別符号であって、例えばiノードのことである。
ファイル管理テーブルは、ファイル記憶部12のどこにどのようなファイルが存在するかを管理するテーブルである。
図4にファイル管理テーブルの一例を示す。ファイル管理テーブルには、少なくとも仮想計算機15に保存され、キャッシュページにキャッシュされたファイルの「ファイルID」と「パスを含めたファイル名」が記録されている。
ファイル管理部153によるファイル管理テーブルへの記録に関し、メモリ管理部152と同様に、コンピュータ1に含まれる記憶部へのアクセス権限を正確に設定する必要がある。この場合も、仮想計算機監視部16を介在させ、その監視下でファイル管理テーブルに書き込むようにすることで、コンピュータ1のセキュリティをより高められる。
仮想計算機監視部16は、仮想計算機15をコンピュータ1で動作させ、特に、仮想計算機15の仮想的なハードウェアとコンピュータ1の実ハードウェアとの変換を行う。仮想計算機監視部16は、属性検査部161と、物理メモリファイル書換処理部162と、ファイル書込部163と、を含んで構成される。
属性検査部161は、仮想計算機15がハイバネーション状態に移行した後に、物理メモリファイル記憶部11に記憶された仮想計算機15の物理メモリファイルに含まれるメモリページの属性を参照し、属性に応じて処理する。
より具体的には、属性検査部161は、仮想計算機15がハイバネーション状態に移行した後に、まず、物理メモリファイル管理テーブルを参照し、物理メモリファイルのどこにページ管理テーブルがあるかを確認する。次に、属性検査部161は、物理メモリファイルからページ管理テーブルを参照し、物理メモリファイルに含まれるメモリページの属性を検査する。検査の結果、検査したメモリページの「ページ参照カウンタ」が0である場合、属性検査部161は、当該ページのデータの変更を物理メモリファイル書換処理部162に依頼する。
更に、前記属性検査の結果、検査したメモリページの「キャッシュフラグ」がセットされており、「ダーティフラグ」がクリアである場合、属性検査部161は、当該ページの書き換えを物理メモリファイル書換処理部162に依頼し、書き換え完了後に、当該ページのエントリを初期化する。また、検査したメモリページの「キャッシュフラグ」がセットされており、「ダーティフラグ」もセットされている場合、属性検査部161は、ファイル書込部163に当該ページのデータをファイル記憶部12へ書き戻させた後、当該ページの書き換えを物理メモリファイル書換処理部162に依頼し、さらに、当該ページのエントリを初期化する。なお、当該ページのエントリを初期化するとは、例えば、「キャッシュフラグ」や「ダーティフラグ」をクリアにし、「ページ参照カウンタ」を0に変更することである。
物理メモリファイル書換処理部162は、属性検査部161の依頼に応じて、依頼されたメモリページを書き換える。書き換え方法の例としては次のようなものが考えられる。その1つは、書き換え対象となったページを、0詰め(0パディング)するなど、より高い圧縮率で圧縮できるデータに書き換える方法である。もう1つとしては、書き換え対象となったページを削除し、その前後を詰める方法が挙げられる。後者の方法では、仮想計算機15をレジュームするときに、書き換えられなかったデータが、再度、同じ仮想的な物理アドレスに存在できるように、例えば、図5に示すように、書き換えられなかったデータの領域の開始アドレスとサイズを保存する必要がある。図5の例では、バイト単位でサイズを表現しているが、ページ数単位で保存してもよい。
ファイル書込部163は、属性検査部161の依頼に応じて、物理メモリファイルの書き戻し対象となったメモリページのデータを、仮想計算機15の仮想的な補助記憶装置であるファイル記憶部12の対応するファイルに書き戻す。
より具体的には、ファイル書込部163は、属性検査部161から書き戻し依頼と同時に、ページ管理テーブルから、対象のメモリページの「マッピングファイル」と「インデックス」の値を受取る。次に、ファイル書込部163は、前記の「マッピングファイル」の値である「ファイルID」と、ファイル管理テーブル記憶部18にあるファイル管理テーブルに記載の「ファイルID」とを比較して、「パスを含めたファイル名」を取得する。次に、ファイル書込部163は、ファイル記憶部12に記憶されたディスクイメージファイルをマウントし、前記の「パスを含めたファイル名」からデータを書き戻すファイルを特定し、さらに、前記の「インデックス」からファイルの中でデータを書き戻す位置を決め、データを書き戻す。なお、ファイル記憶部12に複数のディスクイメージファイルが存在する、すなわち、仮想計算機15の仮想的な補助記憶装置が複数存在する場合、ファイル書込部163は、ファイル管理部153から送られたマウントに関する関連情報をもとに、ディスクイメージファイルをマウントする。
物理メモリファイル管理テーブル記憶部17は、前述の物理メモリファイル管理テーブル(図3参照)を保存する。
ファイル管理テーブル記憶部18は、前述のファイル管理テーブル(図4参照)を保存する。
続いて、本実施形態の動作について図面を参照して詳細に説明する。図6は、本実施形態の仮想計算機がハイバネーション状態に移行した後での、物理メモリファイルのサイズ削減の動作を表したフローチャートである。
仮想計算機監視部16は、仮想計算機15がハイバネーション状態にあることを確認する(ステップS101)。
仮想計算機監視部16の属性検査部161は、ページ管理テーブルのすべてのエントリを参照したか否かを確認する(ステップS102)。すべてのエントリを参照したのであれば、メモリファイル圧縮部13は物理メモリファイルを圧縮する(ステップS111)。すべてのエントリを参照していないのであれば、エントリを参照する(ステップS103)。
属性検査部161は、エントリの「ページ参照カウンタ」を参照し(ステップS104)、「ページ参照カウンタ」が0である場合、物理メモリファイル書換処理部に当該ページの書き換えを依頼し(ステップS105)、次のエントリを参照するため、ステップS102に戻る。
一方、ページ参照カウンタが正数である場合、属性検査部161は、「キャッシュフラグ」を参照する(ステップS106)。「キャッシュフラグ」がセットされている場合、属性検査部161は、「ダーティフラグ」を参照する(ステップS107)。一方、「キャッシュフラグ」がクリアである場合、属性検査部161は、次のエントリを参照するため、ステップS102に戻る。
「ダーティフラグ」がセットされている場合(ステップS107)、属性検査部161は、ファイル書込部163に当該ページのデータのファイル記憶部12への書き戻しを依頼する(ステップS108)。
ファイル書込部163による書き戻しが完了し、あるいは、前記「ダーティフラグ」がクリアである場合、属性検査部161は、物理メモリファイル書換処理部162に当該ページの書き換えを依頼する(ステップS109)。
その後、属性検査部161は、当該ページのエントリを初期化し(ステップS110)、次のエントリを参照するため、ステップS102に戻る。
次に、図7のフローチャートを参照して、本実施形態の仮想計算機のレジューム前における、物理メモリファイルの伸張動作について詳細に説明する。
仮想計算機監視部16は、仮想計算機15をレジュームする前に、メモリファイル伸張部14に物理メモリファイルを伸張させる(ステップS201)。このとき、伸張された物理メモリファイルが、書き換え対象となったページを削除する形式であった場合、前記の削除されたメモリページの位置に、削除されたメモリページと同じページ数だけページを挿入する。挿入されたページには、どのようなデータが書き込まれてもよいが、OS151が、その上で動作するプログラムに提供する初期化されたメモリページと同じデータが書き込まれていることが望ましい。
次に、本実施形態の効果について説明する。
以上説明したように、本実施形態では、仮想計算機の動作中に、仮想計算機のメモリ管理部が、仮想的なメインメモリのメモリページの属性をページ管理テーブルに設定し、仮想計算機がハイバネーション状態に移行した後、仮想計算機監視部の属性検査部が、ページ管理テーブルを検査し、廃棄可能なメモリページのデータを圧縮に適したデータに書き換えた後、圧縮、もしくは、当該メモリページを削除する。このため、仮想計算機が動作中には使用するメモリページであっても、ハイバネーション状態へ移行した時点で廃棄可能なメモリページであれば、確実に当該メモリページを圧縮、もしくは、削除できる。
なお、本実施形態では、廃棄可能なページの例として、仮想計算機のOSのディスクキャッシュを例としたが、OSによって、前記のディスクキャッシュ以外にも仮想計算機がハイバネーション状態に移行した時点で廃棄可能であるメモリページがある。当業者であれば、本発明を、これらのメモリページにも応用できることは、明らかである。
[第2の実施形態]
続いて、本発明の第2の実施形態について図面を参照して詳細に説明する。上記した第1の実施形態では、仮想計算機15のハイバネーション状態への移行後にダーティなキャッシュページのファイル記憶部12への書き戻しを行っていたが、第2の実施形態では、このダーティなキャッシュページのファイル記憶部12への書き戻しを、仮想計算機15のハイバネーションを完了する前の任意の時点で行う。この結果、仮想計算機15の「ファイルID」と「パスを含むファイル名」の管理を不要にし、また、ハイバネーション状態への移行後のファイル書込み処理を不要にできる。
図8は、本発明の第2の実施形態に係る計算機システム(コンピュータ)の構成を示すブロック図である。
図8を参照すると、本発明の第2の実施形態では、本発明の第1の実施形態のOS151に、同期処理部154が追加されている。逆に、ファイル管理テーブル記憶部18と、仮想計算機監視部16のファイル書込部163と、が削除されている。また、ファイル管理部153について、第1の実施形態に対して、変更がある。
同期処理部154は、仮想計算機15の仮想的なメインメモリのキャッシュページに保存されたデータを、仮想計算機15の仮想的な補助記憶装置に書き込むことで、前記のディスクキャッシュと前記の補助記憶装置との間で、データの同期をとる。同期の実行タイミングは、ハイバネーションを完了する前の任意の時点でよいが、性能の観点から、特に、仮想計算機15がハイバネーションを実行するときに、仮想計算機15のOS151が停止する直前に必ず同期をとるよう動作することが望ましい。
ファイル管理部153は、第1の実施形態と同様に、仮想計算機15の仮想的な補助記憶装置を管理し、さらに、設定によって仮想計算機15のファイルを、ファイル記憶部12に書き込むときに、ディスクキャッシュを使用せずに書き込むことができる。この設定を、本明細書では、ディスクキャッシュの非使用設定と称する。ファイル管理部153は、同期処理部154による前記のOS151が停止する前の最後の同期の後、ディスクキャッシュの非使用設定をし、ファイルの書き込みではディスクキャッシュを使用せずに書き込む。
なお、このディスクキャッシュを非使用にする設定がなされた状態で、キャッシュされたファイルの、キャッシュされた部分にデータを書き込む場合、ファイルのみにデータを書き込むと、ディスクキャッシュとファイルとの間で不整合が発生する。このため、前述のキャッシュされた部分に、データを書き込むときには、対応するファイルと当該キャッシュページの両方に書き込む、もしくは、対応するファイルのみに書込み、当該キャッシュページのエントリを初期化する、もしくは、対応するファイルのみに書き込んだ後、当該ページを更新する(キャッシングし直す)などの対処が必要である。
続いて、本実施形態の動作について図面を参照して詳細に説明する。図9は、本実施形態の仮想計算機によるハイバネーションの実行中及びハイバネーション状態に移行した後での、物理メモリファイルのサイズ削減の動作を表したフローチャートである。
本実施形態では、第1の実施形態のフローチャート(図6)のステップS101に替わって、ステップS121からステップS124までが追加され、ステップS107からステップS108までが削除されている。
図9を参照すると、まず、仮想計算機監視部16が仮想計算機15に要求して、もしくは、仮想計算機15が自ら、ハイバネーションを実行開始した場合(ステップS121)、同期処理部154が同期処理を実行し、書込み用キャッシュページとなったメモリページのデータを、ファイル記憶部12に書き出す(ステップS122)。
同期処理が完了した時点で、同期処理部154は、ファイル管理部153に対して、以後、ファイル記憶部12への書込み時にディスクキャッシュを使用しない設定にする(ステップS123)。この設定により、以後、ダーティであるキャッシュページが存在しなくなるため、ハイバネーション状態への移行後の、ファイル記憶部12へのダーティなキャッシュページの書き戻しが不要になる。
仮想計算機15がハイバネーション状態に移行することで、ハイバネーションの実行を完了する(ステップS124)。
ステップS102以降は、第1の実施の形態と同様である。ただし、前記のとおり、ファイル記憶部12へのダーティなキャッシュページの書き戻しが不要になるため、ステップS106からステップS107までが削除される。
なお、前記の同期処理とディスクキャッシュを非使用にする設定を実行するタイミングは、ハイバネーション実行中のどのタイミングでも、さらには、ハイバネーション実行開始前であってもよいが、仮想計算機15がハイバネーション状態に移行する直前になるべく近いことが望ましい。
これは、以下の理由による。ディスクキャッシュを非使用にすると、以後の仮想的な補助記憶装置へのデータの書込みは、仮想的なメインメモリ上のキャッシュページにではなく、直接、仮想的な補助記憶装置に書き込まれることになる。仮想的なメインメモリは、物理メモリファイル記憶部11であって、コンピュータ1のメインメモリにロードされていることが多く、高速にアクセスできると考えられる。一方、仮想的な補助記憶装置は、ファイル記憶部12であって、一般に、コンピュータ1の補助記憶装置(不図示)、例えば、ハードディスクドライブであり、低速にしかアクセスできない。このため、仮想的な補助記憶装置にデータを、直接、書き込むと、著しく時間がかかることが予測される。
また、ステップS122とステップS123を逆にし、ディスクキャッシュの非使用設定の後、同期処理を実行するように実施してもよい。
これは、以下の理由による。コンピュータ1によっては、同期処理を実行した後に、ディスクキャッシュの非使用設定の処理を実行したのでは、前記2つの処理を実行する間に、仮想的な補助記憶装置への書込みがないことを保証できない場合が考えられる。この場合、ディスクキャッシュの非使用設定の処理を実行した後、同期処理を実行する。
次に、上記した第1の実施形態の効果と異なる本実施形態の効果について説明する。
本実施形態では、仮想計算機のハイバネーション実行中に、同期処理部154がキャッシュページのうち、ダーティなページをファイル記憶部12に書き戻すため、仮想計算機のハイバネーション完了後に、属性検査部161がキャッシュページを書き戻す必要がなくなる。このため、ハイバネーション完了後の書き戻し処理が必要とするメインメモリやCPU時間などのコンピュータの資源を削減できるという効果がある。
(具体例1)
次に、OSとしてLinux(登録商標)を搭載したコンピュータに、本発明の第1の実施形態を適用した具体的構成を具体例1として説明する。
図10に示したとおり、コンピュータ1001は、CPU1011と、メモリ1012と、ハードディスクドライブ(以下、HDD)1013で構成される。
上記した第1の実施形態の物理メモリファイル記憶部11と、ファイル記憶部12と、物理メモリファイル管理テーブル記憶部17、ファイル管理テーブル記憶部18として、メモリ1012とHDD1013を使用して構成される。
一般に、物理メモリファイル記憶部11と、物理メモリファイル管理テーブル記憶部17と、ファイル管理テーブル記憶部18の内容は、頻繁にアクセスされるため、あるいは、それらを使用するプログラムによってロードされるため、メモリ1012に保存されることが多く、ファイル記憶部12の内容は、あまりアクセスされないため、HDD1013に保存されることが多い。これら4つの記憶部の内容はファイルとして実装されており、ファイルがメモリ1012やHDD1013にどのように保存されるかは、当業者には明らかである。
図11は、上記4つのファイルの構成を表した図である。物理メモリファイル1101は、物理メモリファイル記憶部11に記憶された物理メモリファイルに対応するファイルである。物理メモリファイル1101には、ページ管理テーブル記憶部111に記憶されたページ管理テーブルに対応するページディスクリプタテーブル1111がある。
ページディスクリプタテーブル1111は、後述する仮想計算機内のLinux1211のページディスクリプタの置かれた配列である。なお、このテーブルは、通常のLinuxのページディスクリプタに対して、メンバを1つ追加することが望ましい。そのメンバは、当該ページがキャッシュページである場合、前述のページがキャッシュするデータをもつファイルのiノードの値を示すメンバである。通常のLinuxのページディスクリプタでは、前記のファイルのiノードの値を参照するために、ページディスクリプタからポインタをたどって、複数のオブジェクトを参照しなくてはならない。このポインタをたどる処理のためには、物理メモリファイル1101内に保存された他のページテーブル(不図示)などを参照しなくてはならず、処理として複雑である。そのため、ページディスクリプタで、直接、前記のファイルのiノードの値を参照できるようにすることが望ましい。
ディスクイメージファイル1102は、ファイル記憶部12に記憶されたディスクイメージファイルに対応するファイルである。
メモリファイル管理テーブルファイル1103は、物理メモリファイル管理テーブル記憶部17に記憶された物理メモリファイル管理テーブルに対応するファイルであって、少なくとも、ページディスクリプタテーブル1111の物理メモリファイル1101内でのアドレスを保存している。
ファイル管理テーブルファイル1104は、ファイル管理テーブル記憶部18に記憶されたファイル管理テーブルに対応するファイルであって、「iノード番号」と、「パスを含むファイル名」を対応付ける。
図12は、上記第1の実施形態で説明したハイバネーション移行後の動作を実現するためのプログラム構成を示す。
図12を参照すると、仮想計算機をはじめとするユーザプログラム1202〜1206と、これらのユーザプログラムを動作させるOSであるLinux1201が示されている。ユーザプログラムは、UML1202と、メモリファイル圧縮/伸張プログラム1203と、属性検査プログラム1204と、メモリファイル書換プログラム1205と、ファイル書込プログラム1206である。
UML1202は、仮想計算機15として利用されているUser Mode Linux(以下、UML)である。UML1202は、OSとしてのLinux1211と、UML1202内部で動作するユーザプログラムであるプログラム1212から構成される。UML1202は、ハイバネーション機能を追加されたUMLであって、ハイバネーションの主な流れは、UML内で動作するプログラム1212を停止し、プログラムの情報を保存、カーネルを停止し、最後にメインメモリのデータを保存する。このような動作をするUMLとしては、Scrapbook UMLが提案されている。また、Linux1211は、2.4系のLinuxとする。
第1の実施形態のOS151に含まれるメモリ管理部152、ファイル管理部153として、Linux1211のメモリ管理機構、ファイル管理機構を利用する。ただし、属性検査部161やファイル書込部163が、所望のメモリ管理情報やファイル管理情報が得られるように改造する。
例えば、前述のメモリ管理機構の場合、メモリマップの初期の過程で、ページディスクリプタの置かれた配列の開始部分の仮想的な物理アドレスと前記配列のサイズを、後述するメモリファイル管理テーブルファイル1103に書き込むように改造すればよい。
同様に例えば、前述のファイル管理機構の場合、ファイルオープンの過程で、「パスを含めたファイル名」からファイルを検索、「iノード番号」を特定し、その結果をファイル管理テーブルファイル1104に書き込むように改造すればよい。
また必要に応じて、例えば、前述のメモリ管理機構やファイル管理機構から所望のメモリ管理情報やファイル管理情報をプロセス間通信で、Linux1201上で動作するプログラム(不図示)に送り、このプログラムが、メモリファイル管理テーブルファイル1103やファイル管理テーブルファイル1104に書き込むように実装してもよい。
メモリファイル圧縮/伸張プログラム1203は、メモリファイル圧縮部13とメモリファイル伸張部14に対応する。メモリファイル圧縮/伸張プログラム1203は、Linuxに搭載されている一般的な圧縮/伸張プログラムであるgzipであってもよい。
属性検査プログラム1204は、属性検査部161に対応する、Linux1201上で動作するプログラムである。属性検査プログラム1204は、UML1202がハイバネーション状態に移行した後に、物理メモリファイル1101をメモリ1012にmmapなどの関数でメモリ1012にマッピングする。このとき、UML1202がマッピングしたときと同じアドレスでマップすることで、UML1202の仮想的な物理アドレスを、そのまま使用できる。
上記属性検査プログラム1204は、メモリファイル管理テーブルファイル1103の内容を基にして、ページディスクリプタテーブル1111を参照する。さらに、メモリページごとにページディスクリプタのメンバを参照し、参照カウンタであるメンバ「count」が0であれば、当該ページは空きページであるため、メモリファイル書換プログラム1205に、当該ページの書き換えを依頼する。「count」が0より大であり、メンバ「mapping」がNULLでない場合、当該ページは、キャッシュページである。当該ページがキャッシュページであり、メンバ「flags」のフラグがダーティでないことを示している場合、当該ページのデータと同じデータがディスクイメージファイル1102にも存在するため、メモリファイル書換プログラム1205に、当該ページの書き換えを依頼する。逆に、当該ページがキャッシュページであり、メンバ「flags」のフラグがダーティであることを示している場合、当該ページのデータをディスクイメージファイル1102に書き戻す必要があるため、ファイル書込みプログラム1206に当該ページのデータを書き戻させた後、メモリファイル書換プログラム1205に、当該ページの書き換えを依頼する。当該ページの書き換えが完了した後、属性検査プログラム1204は、ページディスクリプタのメンバを初期値に設定する。
メモリファイル書換プログラム1205は、物理メモリファイル書換処理部162に対応する、Linux1201上で動作するプログラムである。メモリファイル書換プログラム1205は、属性検査プログラム1204の依頼に応じて、物理メモリファイル1101の内容を書き換える。
ファイル書込プログラム1206は、ファイル書込部163に対応する、Linux1201上で動作するプログラムである。ファイル書込みプログラム1206は、ディスクイメージファイル1102を、ループバックマウントすることで、その内容を操作できるようにする。さらに、ディスクイメージファイル1102が複数存在する場合、UML1202での仮想的な補助記憶装置の構成にあわせて、マウントする。ファイル書込プログラム1206は、ディスクイメージファイル1102をマウントした後、属性検査プログラム1204の依頼に応じて、物理メモリファイル1101の指定されたメモリページのデータをディスクイメージファイル1102へ書き戻す。ディスクイメージファイル1102内の書き戻しの位置は、属性検査プログラム1204から伝えられた「iノード番号」をもとに、ファイル管理テーブルファイル1104を参照し、「iノード番号」から「パスを含むファイル名」を取得することで、対象となるファイルを特定し、さらに、属性検査プログラム1204から伝えられたメンバ「index」の値を基にして、前記のファイル内での位置を特定することで決められる。
以上の具体例1の動作は、上記した第1の実施形態と同様であり、上記した第1の実施の形態の構成要素に対応する構成要素が同様に動作するので説明を省略する。
(具体例2)
次に、OSとしてLinux(登録商標)を搭載したコンピュータに、本発明の第2の実施形態を適用した具体的構成を具体例2として説明する。
上記コンピュータの構成は、図10に示した具体例1と同様であるので説明を省略する。
図13は、具体例2のコンピュータで使用されるファイルの構成を表した図である。特に、図11に比べて、ファイル管理テーブルファイル1104が不要となっている。また、図11に示した例とは、ページディスクリプタテーブルが異なり、ページディスクリプタテーブル1112は、後述する仮想計算機内のLinux1213のページディスクリプタの置かれた配列となっている。またこの第2の具体例では、UML1207のハイバネーション完了後の、キャッシュページの書き戻しがないため、ページディスクリプタへの改造をしなくてよい。
図14は、上記第2の実施形態で説明したハイバネーション実行中及びハイバネーション以降後の動作を実現するためのプログラム構成を示す。
図14のプログラム構成は、図12に示した具体例1のプログラム構成からファイル書込プログラム1206を除いた構成となっている。
また、図12に示した具体例1のプログラム構成のLinux1211に改造を加えたLinux1213が搭載されており、このため、UMLについても符号を変えてUML1207と表記している。
Linux1213は、Linux1211に、ハイバネーション実行中にダーティなキャッシュページのディスクイメージファイル1102への書き戻しを実行するように改造したLinuxである。
より具体的には、Linux1213は、ハイバネーションを実行開始した後、キャッシュページを同期させるためのシステムコールであるsyncと同様の処理を実行する。さらに、Linux1213は、この同期を完了した後、強制的にディスクキャッシュを使用しない書込み処理を実行させる。その処理の方法として、例えば、一般的な書込みメソッドである、generic_file_write関数内で、ファイル書込み時には、強制的にディスクキャッシュを使用しない書込み処理を実行させる方法や、全てのファイル構造体のメンバ「f_flags」に、ディスクキャッシュを使用しないフラグを設定する方法が考えられる。
このようにすることで、同期を実行した後では、書込み時にディスクキャッシュは使用されず、ファイルへの書込みは、直接、ファイルに対して行われる。なお、後者の方法の場合、設定前の「f_flags」の値を保存し、レジューム時などに再設定する必要がある。
以上の具体例2の動作は、上記した第2の実施形態と同様であり、上記した第2の実施の形態の構成要素に対応する構成要素が同様に動作するので説明を省略する。
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態や具体例に示した構成やフローチャートは、本計算機システムの仕様や用途に応じて各種の変更を加えることが可能である。
本発明は、ハイバネーション機能を有し、1台の実計算機に複数の仮想計算機を保存する仮想計算機管理システムといった用途に適用できる。また、仮想計算機を、ネットワークを介して移送する仮想計算機移送システムといった用途にも適用可能である。
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1 コンピュータ
11 物理メモリファイル記憶部
12 ファイル記憶部
13 メモリファイル圧縮部
14 メモリファイル伸張部
15 仮想計算機
16 仮想計算機監視部
17 物理メモリファイル管理テーブル記憶部
18 ファイル管理テーブル記憶部
111 ページ管理テーブル記憶部
151 OS
152 メモリ管理部
153 ファイル管理部
154 同期処理部
161 属性検査部
162 物理メモリファイル書換処理部
163 ファイル書込部
1001 コンピュータ
1011 CPU
1012 メモリ
1013 HDD
1101 物理メモリファイル
1102 ディスクイメージファイル
1103 メモリファイル管理テーブルファイル
1104 ファイル管理テーブルファイル
1111 ページディスクリプタテーブル
1201 Linux
1202、1207 UML
1203 メモリファイル圧縮/伸張プログラム
1204 属性検査プログラム
1205 メモリファイル書換プログラム
1206 ファイル書込プログラム
1211、1213 Linux
1212 プログラム
2001 実計算機
2100 仮想計算機
2101 OS
2102 メモリ消費部
2200 メモリファイル
2300 メモリファイル圧縮部
3101 BIOS
3102 OS
3103 高速ハイバネーションソフトウェアドライバ
本発明の第1の視点によれば、ハイバネーション状態に移行可能な仮想計算機を構築可能であり、前記仮想計算機がハイバネーション状態への移行後に、補助記憶装置に保存するデータを削減できるように、前記仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルを書き換える物理メモリファイル書換処理部を備える計算機システムが提供される。

Claims (36)

  1. ハイバネーション機能を有する仮想計算機を構築可能であり、
    前記仮想計算機がハイバネーション状態への移行後に、補助記憶装置に保存するデータを削減できるよう前記仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルを書き換える物理メモリファイル書換処理部を備える計算機システム。
  2. 請求項1に記載の計算機システムにおいて、
    前記物理メモリファイルを書き換えるために、前記仮想計算機がハイバネーション状態への移行後に、前記物理メモリファイルに含まれるメモリページの属性を検査する計算機システム。
  3. 請求項2に記載の計算機システムにおいて、
    前記検査の結果、廃棄可能なメモリページを検出した場合、前記メモリページを圧縮に適したデータに書き換え、前記物理メモリファイルを圧縮する計算機システム。
  4. 請求項2に記載の計算機システムにおいて、
    前記検査の結果、廃棄可能なメモリページを検出した場合、前記メモリページを削除する計算機システム。
  5. 請求項4に記載の計算機システムにおいて、
    前記削除したメモリページの位置に、削除されたメモリページと同じページ数だけデータを挿入することで、物理メモリファイルを伸張する計算機システム。
  6. 請求項4に記載の計算機システムにおいて、
    前記メモリページが削除された物理メモリファイルを圧縮する計算機システム。
  7. ハイバネーション機能を有する仮想計算機を構築可能な実計算機で構成され、
    前記仮想計算機の仮想的なメインメモリのメモリページの属性が設定されるページ管理テーブルのアドレスを保存する物理メモリファイル管理テーブル記憶部と、
    前記仮想計算機の仮想的なメインメモリを管理し、さらに、前記ページ管理テーブルの前記仮想的なメインメモリ内でのアドレスを前記物理メモリファイル管理テーブル記憶部に記録するメモリ管理部と、
    前記仮想計算機がハイバネーション状態に移行後に、前記物理メモリファイル管理テーブル記憶部に記録されたアドレスに基づき前記ページ管理テーブルを参照し、前記ページ管理テーブルに設定されたメモリページの属性から廃棄可能なメモリページの有無を検査する属性検査部と、
    前記属性検査部が廃棄可能なメモリページを検出した場合、前記メモリページを圧縮に適した形式に書き換える物理メモリファイル書換処理部と、
    前記検査と前記書き換えがすべて完了した後、物理メモリファイルを圧縮する物理メモリファイル圧縮部と、を有する計算機システム。
  8. ハイバネーション機能を有する仮想計算機を構築可能な実計算機で構成され、
    前記仮想計算機の仮想的なメインメモリのメモリページの属性が設定されるページ管理テーブルのアドレスを保存する物理メモリファイル管理テーブル記憶部と、
    前記仮想計算機の仮想的なメインメモリを管理し、さらに、前記ページ管理テーブルの前記仮想的なメインメモリ内でのアドレスを前記物理メモリファイル管理テーブル記憶部に記録するメモリ管理部と、
    前記の仮想計算機がハイバネーション状態に移行後に、前記物理メモリファイル管理テーブル記憶部に記録されたアドレスに基づき前記ページ管理テーブルを参照し、前記ページ管理テーブルに設定されたメモリページの属性から廃棄可能なメモリページの有無を検査する属性検査部と、
    前記の属性検査部が廃棄可能なメモリページを検出した場合、前記メモリページを削除する物理メモリファイル書換処理部と、を有する計算機システム。
  9. 請求項8に記載の計算機システムにおいて、さらに、前記検査と前記削除がすべて完了した後、物理メモリファイルを圧縮する物理メモリファイル圧縮部を有する計算機システム。
  10. 請求項7又は8に記載の計算機システムであって、さらに、
    前記仮想計算機の仮想的な補助記憶装置に含まれるファイルの識別符号と、前記仮想的な補助記憶装置内でのパスの関係を保存するファイル管理テーブル記憶部と、
    前記仮想計算機の動作中に、前記仮想計算機の仮想的な補助記憶装置を管理し、前記ファイルの識別符号とパスの関係を、前記ファイル管理テーブル記憶部に記録するファイル管理部と、
    前記属性検査部によって廃棄可能なメモリページであると判断されたメモリページのデータと前記メモリページに対応したファイルとのデータが異なる場合、前記ファイル管理テーブル記憶部の内容を基に、前記メモリページに対応するファイルを検出し、前記メモリページのデータを、前記検出したファイルに書き戻すファイル書込部と、を有する計算機システム。
  11. 請求項7又は8に記載の計算機システムであって、さらに、
    前記仮想計算機がハイバネーションを完了する前の任意の時点から、廃棄可能なメモリページのデータと、前記メモリページに対応したファイルとのデータとの間で同期をとる同期処理部と、
    前記同期の後では、ファイルへの書き込みのときに、メモリページを使用しない設定にされるファイル処理部と、を有する計算機システム。
  12. 請求項7又は8に記載の計算機システムであって、
    前記仮想計算機がハイバネーションを完了する前の任意の時点から、ファイルへの書き込みのときに、メモリページを使用しない設定にされるファイル処理部と、
    前記設定の後、廃棄可能なメモリページのデータと、前記メモリページに対応したファイルとのデータとの間で同期をとる同期処理部と、を有する計算機システム。
  13. 仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルに含まれるデータを保存する方法であって、前記仮想計算機のハイバネーション状態への移行後に、補助記憶装置に保存するデータを削減できるよう前記物理メモリファイルを書き換えるデータ保存方法。
  14. 請求項13に記載のデータ保存方法において、
    前記物理メモリファイルを書き換えるために、前記仮想計算機がハイバネーション状態への移行後に、前記物理メモリファイルに含まれるメモリページの属性を検査するデータ保存方法。
  15. 請求項14に記載のデータ保存方法において、
    前記検査の結果、廃棄可能なメモリページを検出した場合、前記メモリページを圧縮に適したデータに書き換え、前記物理メモリファイルを圧縮するデータ保存方法。
  16. 請求項14に記載のデータ保存方法において、
    前記の検査の結果、廃棄可能なメモリページを検出した場合、前記メモリページを削除するデータ保存方法。
  17. 請求項16に記載のデータ保存方法によって書き換えられた物理メモリファイルに対して、前記削除したメモリページの位置に、前記削除したメモリページと同じページ数だけデータを挿入することで、物理メモリファイルを伸張するデータ保存方法。
  18. 請求項16に記載のデータ保存方法において、
    前記メモリページが削除された物理メモリファイルを圧縮するデータ保存方法。
  19. 仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルに含まれるデータを保存するデータ保存方法であって、
    前記仮想計算機が動作する実計算機で、
    前記仮想計算機に含まれ、前記の仮想計算機の仮想的なメインメモリを管理するオペレーティングシステム(以下、「OS」)が、
    前記仮想計算機の仮想的なメインメモリのメモリページの属性をページ管理テーブルに設定し、
    前記ページ管理テーブルの仮想的なメインメモリ内でのアドレスを物理メモリファイル管理テーブル記憶部に記録し、
    前記の仮想計算機がハイバネーション状態に移行後に、前記物理メモリファイル管理テーブル記憶部に記録されたアドレスに基づき前記ページ管理テーブルを参照し、前記ページ管理テーブルに設定されたメモリページの属性から廃棄可能なメモリページの有無を検査し、
    廃棄可能なメモリページを検出した場合、前記メモリページを圧縮に適したデータに書き換え、
    前記の検査と前記の書き換えがすべて完了した後、前記物理メモリファイルを圧縮するデータ保存方法。
  20. 仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルに含まれるデータを保存するデータ保存方法であって、
    前記の仮想計算機が動作する実計算機で、
    前記の仮想計算機に含まれ、前記仮想計算機の仮想的なメインメモリを管理するOSが、
    前記仮想計算機の仮想的なメインメモリのメモリページの属性をページ管理テーブルに設定し、
    前記ページ管理テーブルの仮想的なメインメモリ内でのアドレスを物理メモリファイル管理テーブル記憶部に記録し、
    前記仮想計算機がハイバネーション状態に移行後に、前記物理メモリファイル管理テーブル記憶部に記録されたアドレスに基づき前記ページ管理テーブルを参照し、前記ページ管理テーブルに設定されたメモリページの属性から廃棄可能なメモリページの有無を検査し、
    廃棄可能なメモリページを検出した場合、前記メモリページを削除するデータ保存方法。
  21. 請求項20に記載のデータ保存方法において、
    前記検査と前記削除がすべて完了した後、物理メモリファイルを圧縮するデータ保存方法。
  22. 請求項19又は20に記載のデータ保存方法であって、
    前記OSが、前記仮想計算機の動作中に、前記仮想計算機の仮想的な補助記憶装置を管理し、前記補助記憶装置に含まれるファイルの識別符号と、前記ファイルの仮想的な補助記憶装置内でのパスの関係の情報をファイル管理テーブル記憶部に記録し、
    前記検査によって廃棄可能なメモリページであると判断されたメモリページのデータと前記メモリページに対応したファイルとのデータが異なる場合、前記ファイル管理テーブル記憶部の内容を基に、前記メモリページに対応するファイルを検出し、前記メモリページのデータを、前記検出したファイルに書き戻すデータ保存方法。
  23. 請求項19又は20に記載のデータ保存方法であって、
    前記仮想計算機がハイバネーションを完了する前の任意の時点から、廃棄可能なメモリページのデータと、前記メモリページに対応したファイルとのデータとの間で同期をとり、
    前記同期の後では、ファイルへの書き込みのときに、メモリページを使用しない設定にするデータ保存方法。
  24. 請求項19又は20に記載のデータ保存方法であって、
    前記仮想計算機がハイバネーションを完了する前の任意の時点から、ファイルへの書き込みのときに、メモリページを使用しない設定にし、
    前記設定の後、廃棄可能なメモリページのデータと、前記メモリページに対応したファイルとのデータとの間で同期をとるデータ保存方法。
  25. 仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルに含まれるデータを保存するためのプログラムであって、前記仮想計算機のハイバネーション状態への移行後に、補助記憶装置に保存するデータを削減できるよう前記物理メモリファイルを書き換える処理を実計算機に実行させるプログラム。
  26. 請求項25に記載のプログラムにおいて、
    前記物理メモリファイルを書き換えるために、前記仮想計算機がハイバネーション状態への移行後に、前記物理メモリファイルに含まれるメモリページの属性を検査する処理を実計算機に実行させるプログラム。
  27. 請求項26に記載のプログラムにおいて、
    前記検査の結果、廃棄可能なメモリページを検出した場合、前記メモリページを圧縮に適したデータに書き換え、前記物理メモリファイルを圧縮する処理を実計算機に実行させるプログラム。
  28. 請求項26に記載のプログラムにおいて、
    前記検査の結果、廃棄可能なメモリページを検出した場合、前記メモリページを削除する処理を実計算機に実行させるプログラム。
  29. 請求項28に記載のプログラムにおいて、
    前記削除されたメモリページの位置に、削除されたメモリページと同じページ数だけデータを挿入することで、物理メモリファイルを伸張する処理を実計算機に実行させるプログラム。
  30. 請求項28に記載のプログラムにおいて、
    前記メモリページが削除された物理メモリファイルを圧縮する処理を実計算機に実行させるプログラム。
  31. 仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルに含まれるデータを保存するためのプログラムであって、
    実計算機上で動作し、前記仮想計算機の仮想的なメインメモリを管理するOSに、
    前記仮想計算機の仮想的なメインメモリのメモリページの属性をページ管理テーブルに設定する処理と、
    前記ページ管理テーブルの仮想的なメインメモリ内でのアドレスを物理メモリファイル管理テーブル記憶部に記録させる処理と、
    前記仮想計算機がハイバネーション状態に移行後に、前記物理メモリファイル管理テーブル記憶部に記録されたページ管理テーブルのアドレスに基づき前記ページ管理テーブルを参照し、前記ページ管理テーブルに設定されたメモリページの属性から廃棄可能なメモリページの有無を検査する処理と、
    廃棄可能なメモリページを検出した場合、前記メモリページを圧縮に適したデータに書き換える処理と、
    前記検査と前記書き換えがすべて完了した後、前記物理メモリファイルを圧縮する処理と、を実行させるプログラム。
  32. 仮想計算機の仮想的なメインメモリのデータを保存した物理メモリファイルに含まれるデータを保存するためのプログラムであって、
    実計算機上で動作し、前記仮想計算機の仮想的なメインメモリを管理するOSに、
    前記仮想計算機の仮想的なメインメモリのメモリページの属性をページ管理テーブルに設定する処理と、
    前記ページ管理テーブルの仮想的なメインメモリ内でのアドレスを物理メモリファイル管理テーブル記憶部に記録させる処理と、
    前記仮想計算機がハイバネーション状態に移行後に、前記物理メモリファイル管理テーブル記憶部に記録されたアドレスに基づき前記ページ管理テーブルを参照し、前記ページ管理テーブルに設定されたメモリページの属性から廃棄可能なメモリページの有無を検査する処理と、
    廃棄可能なメモリページを検出した場合、前記メモリページを削除する処理と、を実行させるプログラム。
  33. 請求項32に記載のプログラムにおいて、更に、
    前記検査と前記削除がすべて完了した後、物理メモリ・ファイルを圧縮する処理を実計算機に実行させるプログラム。
  34. 請求項31又は32に記載のプログラムであって、
    前記OSに、前記仮想計算機が動作中に、前記仮想計算機の仮想的な補助記憶装置を管理させるとともに、前記補助記憶装置に含まれるファイルの識別符号と、前記ファイルの仮想的な補助記憶装置内でのパスの関係の情報をファイル管理テーブル記憶部に記録させる処理と、
    前記検査によって廃棄可能なメモリページであると判断されたメモリページのデータと前記メモリページに対応したファイルとのデータが異なる場合、前記ファイル管理テーブル記憶部の内容を基に、前記メモリページに対応するファイルを検出し、前記メモリページのデータを、前記検出したファイルに書き戻す処理と、を実計算機に実行させるプログラム。
  35. 請求項31又は32に記載のプログラムであって、
    前記仮想計算機がハイバネーションを完了する前の任意の時点から、廃棄可能なメモリページのデータと、前記メモリページに対応したファイルとデータとの間で同期をとる処理と、
    前記同期の後では、ファイルへの書き込みのときに、メモリページを使用しない設定にする処理とを実計算機に実行させるプログラム。
  36. 請求項31又は32に記載のプログラムであって、
    前記仮想計算機がハイバネーションを完了する前の任意の時点から、ファイルへの書き込みのときに、メモリページを使用しない設定にする処理と、
    前記設定の後、廃棄可能なメモリページのデータと、前記メモリページに対応したファイルとのデータとの間で同期をとる処理とを実計算機に実行させるプログラム。
JP2010537824A 2008-11-17 2009-11-16 計算機システム、データ保存方法およびプログラム Active JP5445463B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010537824A JP5445463B2 (ja) 2008-11-17 2009-11-16 計算機システム、データ保存方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008293776 2008-11-17
JP2008293776 2008-11-17
JP2010537824A JP5445463B2 (ja) 2008-11-17 2009-11-16 計算機システム、データ保存方法およびプログラム
PCT/JP2009/069428 WO2010055937A1 (ja) 2008-11-17 2009-11-16 計算機システム、データ保存方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2010055937A1 true JPWO2010055937A1 (ja) 2012-04-12
JP5445463B2 JP5445463B2 (ja) 2014-03-19

Family

ID=42170066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010537824A Active JP5445463B2 (ja) 2008-11-17 2009-11-16 計算機システム、データ保存方法およびプログラム

Country Status (3)

Country Link
US (1) US8661183B2 (ja)
JP (1) JP5445463B2 (ja)
WO (1) WO2010055937A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025855A (ja) * 2011-07-26 2013-02-04 Mitsubishi Electric Corp ディスク再生装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012053572A (ja) * 2010-08-31 2012-03-15 Toshiba Corp 情報処理装置およびキャッシュの制御方法
JP4865075B1 (ja) * 2010-09-30 2012-02-01 株式会社東芝 計算機および計算機システム
JP5681465B2 (ja) * 2010-12-02 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
JP5825347B2 (ja) * 2011-05-30 2015-12-02 日本電気株式会社 圧縮装置
US20140196036A1 (en) * 2011-07-12 2014-07-10 Kok Leong Ryan Ko Tracing operations in a cloud system
JP5687177B2 (ja) * 2011-11-30 2015-03-18 京セラドキュメントソリューションズ株式会社 再起動装置及び再起動方法
CN103246611B (zh) 2012-02-07 2016-01-20 腾讯科技(深圳)有限公司 一种文件处理方法及系统
JP6046978B2 (ja) * 2012-10-26 2016-12-21 キヤノン株式会社 情報処理装置およびその方法
JP2015022494A (ja) * 2013-07-18 2015-02-02 京セラドキュメントソリューションズ株式会社 電子機器およびサスペンド制御プログラム
JP6386575B2 (ja) * 2014-10-01 2018-09-05 株式会社Fuji コントローラ
US9785552B2 (en) 2015-01-14 2017-10-10 Kabushiki Kaisha Toshiba Computer system including virtual memory or cache
US10831518B2 (en) * 2017-12-01 2020-11-10 International Business Machines Corporation Over-provisioning cloud resources using dependency maps and utilization triggers

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3238097B2 (ja) * 1997-05-30 2001-12-10 株式会社東芝 コンピュータシステムおよびそのシステムにおけるデータセーブ制御方法
JP3204251B2 (ja) * 1999-06-30 2001-09-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ハイバネーション装置及び方法、それを格納した記録媒体並びにそれを適用したコンピュータ
US6609182B1 (en) * 2000-01-20 2003-08-19 Microsoft Corporation Smart hibernation on an operating system with page translation
JP2006113767A (ja) * 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
US7640440B2 (en) * 2006-04-25 2009-12-29 Apple Inc. Method and apparatus for facilitating device hibernation
US8527466B2 (en) * 2009-05-31 2013-09-03 Red Hat Israel, Ltd. Handling temporary files of a virtual machine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025855A (ja) * 2011-07-26 2013-02-04 Mitsubishi Electric Corp ディスク再生装置

Also Published As

Publication number Publication date
JP5445463B2 (ja) 2014-03-19
WO2010055937A1 (ja) 2010-05-20
US20110225343A1 (en) 2011-09-15
US8661183B2 (en) 2014-02-25

Similar Documents

Publication Publication Date Title
JP5445463B2 (ja) 計算機システム、データ保存方法およびプログラム
KR101044220B1 (ko) 비휘발성 메모리 캐시 성능 향상
US9842053B2 (en) Systems and methods for persistent cache logging
US7036040B2 (en) Reliability of diskless network-bootable computers using non-volatile memory cache
US8015157B2 (en) File sharing system, file server, and method for managing files
JP5496254B2 (ja) マシンから仮想マシンへの変換
US7853759B2 (en) Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US7472139B2 (en) Database recovery method applying update journal and database log
US9015131B2 (en) Information management method, and computer for providing information
US9778860B2 (en) Re-TRIM of free space within VHDX
EP2333653A1 (en) Information backup/restoring apparatus and information backup/restoring system
US8433888B2 (en) Network boot system
WO2011121746A1 (ja) ファイルサーバ装置、及びストレージシステムの管理方法、並びにプログラム
JP2005276208A (ja) 通信リンク接続の永久メモリシステム
US8370587B2 (en) Memory system storing updated status information and updated address translation information and managing method therefor
US20110289501A1 (en) Information processing device, information processing method, and storage medium storing computer program
CN102939593A (zh) 无限存储器
US8769196B1 (en) Configuring I/O cache
KR100981064B1 (ko) 저널링 파일 시스템을 이용한 소프트웨어 레이드에서의 일관성 유지방법
KR102123701B1 (ko) 네트워크 부트 시스템
JP2008257584A (ja) Ramディスクの処理方法及びシステム
US11748259B2 (en) System and method to conserve device lifetime for snapshot generation
JP2008059076A (ja) 情報処理装置、ファイル管理プログラムおよびファイル管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5445463

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150