JP2018005371A - 情報処理システム、情報処理方法、記憶制御装置、記憶制御方法および記憶制御プログラム - Google Patents

情報処理システム、情報処理方法、記憶制御装置、記憶制御方法および記憶制御プログラム Download PDF

Info

Publication number
JP2018005371A
JP2018005371A JP2016128485A JP2016128485A JP2018005371A JP 2018005371 A JP2018005371 A JP 2018005371A JP 2016128485 A JP2016128485 A JP 2016128485A JP 2016128485 A JP2016128485 A JP 2016128485A JP 2018005371 A JP2018005371 A JP 2018005371A
Authority
JP
Japan
Prior art keywords
storage
data
area
unit
priority data
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
Application number
JP2016128485A
Other languages
English (en)
Inventor
周吾 小川
Shugo Ogawa
周吾 小川
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 JP2016128485A priority Critical patent/JP2018005371A/ja
Publication of JP2018005371A publication Critical patent/JP2018005371A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】一時的に保存が必要なデータに対して、一時保存部における安定した格納先領域の確保を実現すること。【解決手段】一時保存部に格納されるデータの格納先領域の確保を維持するか否かを判定する領域維持判定部と、データの格納先領域の確保を維持すると判定された場合、格納先領域へのデータの格納処理の有無に関わらず、所定タイミングでデータの格納先領域への上書きの指示、または、ダミーデータの格納先領域への格納の指示を繰り返す繰り返し部と、を備える。【選択図】 図1

Description

本発明は、情報処理システム、情報処理方法、記憶制御装置、記憶制御方法および記憶制御プログラムに関する。
上記技術分野において、特許文献1には、キャッシュにおいて、ループ全体の予測実行サイクル数がデータをプリフェッチするのに必要なサイクル数より大きければ、2つのループに分割してその間にプリフェッチ命令を挿入し、プリフェッチしたデータが使用される前にキャッシュから追い出されるのを防止する技術が開示されている。また、非特許文献1には、HDDおよびSSDにおいて、連続的なデータに対するWriteが高速である性質を利用して一部の連続した記憶領域を追記形式のバッファとし使用し、バッファ以外の領域を仮想的な不揮発性記憶媒体とし使用し、バッファを用いて小さなサイズのランダムWriteデータを連続Writeに変換することでランダムWriteに伴う性能低下を抑制する技術が開示されている。
特開2000−207224号公報
Y. Hu and Q. Yang. DCD - Disk Caching Disk: A New Approach for Boosting I/O Performance. In Proceedings of the International Symposium on Computer Architecture, pages 169-178, 1996.
しかしながら、上記文献に記載の技術では、一時的に保存が必要なデータに対して、バッファやキャッシュなどの一時保存部における安定した格納先領域の確保を実現することができなかった。
本発明の目的は、上述の課題を解決する技術を提供することにある。
上記目的を達成するため、本発明に係る記憶制御装置は、
一時保存部に格納されるデータの格納先領域の確保を維持するか否かを判定する領域維持判定手段と、
前記データの格納先領域の確保を維持すると判定された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返し手段と、
を備える。
上記目的を達成するため、本発明に係る記憶制御方法は、
一時保存部に格納されるデータの格納先領域の確保を維持するか否かを判定する領域維持判定ステップと、
前記データの格納先領域の確保を維持すると判定された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返しステップと、
を含む。
上記目的を達成するため、本発明に係る記憶制御プログラムは、
一時保存部に格納されるデータの格納先領域の確保を維持するか否かを判定する領域維持判定ステップと、
前記データの格納先領域の確保を維持すると判定された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返しステップと、
をコンピュータに実行させる。
上記目的を達成するため、本発明に係る情報処理システムは、
記憶媒体と、
前記記憶媒体へのデータの格納先領域が確保された一時保存部と、
前記一時保存部において、前記データの格納先領域の確保を維持するよう指示する指示手段と、
前記データの格納先領域の確保を維持するよう指示された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返し手段と、
を備えるである。
上記目的を達成するため、本発明に係る情報処理方法は、
記憶媒体へのデータの格納先領域が確保された一時保存部において、ファイルの管理情報を含むメタデータ、または、データ処理の処理経過を保持するジャーナルを含むデータの格納先領域の確保を維持するよう指示する指示ステップと、
前記データの格納先領域の確保を維持するよう指示された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返しステップと、
を含む。
本発明によれば、一時的に保存が必要なデータに対して、一時保存部における安定した格納先領域の確保を実現することができる。
本発明の第1実施形態に係る記憶制御装置の構成を示すブロック図である。 本発明の第2実施形態に係る記憶制御装置を含む情報処理システムの構成を示すブロック図である。 本発明の第2実施形態に係る記憶制御装置の機能構成を示すブロック図である。 本発明の第2実施形態に係る優先データ操作記憶部の構成を示す図である。 本発明の第2実施形態に係る総格納データ量記憶部、置換時期判定基準データ量記憶部および優先データ管理テーブルの構成を示す図である。 本発明の第2実施形態に係る記憶制御装置のハードウェア構成を示すブロック図である。 本発明の第2実施形態に係る記憶制御装置の処理手順を示すフローチャートである。 本発明の第2実施形態に係るWrite処理の手順を示すフローチャートである。 本発明の第2実施形態に係る削除処理の手順を示すフローチャートである。 本発明の第2実施形態に係る優先データ領域の指定/解除処理の手順を示すフローチャートである。 本発明の第2実施形態に係る優先データ領域維持処理の手順を示すフローチャートである。 本発明の第3実施形態に係る優先データ操作記憶部および置換時期判定基準データ量記憶部の構成を示す図である。 本発明の第4実施形態に係る記憶制御装置を含む情報処理システムの構成を示すブロック図である。 本発明の第5実施形態に係る記憶制御装置を含む情報処理システムの構成を示すブロック図である。 本発明の第6実施形態に係る記憶制御装置を含む情報処理システムの構成を示すブロック図である。
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
以下、本明細書では特に断りのない限り、以下の記述を用いる。一時保存部とは、ホストコンピュータと記憶媒体との間にあって、ホストコンピュータから記憶媒体にWriteされたデータを一時的に保存するメモリであり、いわゆるバッファやキャッシュを含む。一時保存部は、不揮発性メモリであっても、電池などでデータが保持される揮発性メモリであってもよい。また、一時保存部は、ホストコンピュータ内あるいは記憶媒体内に設けられてもよく、ホストコンピュータや記憶媒体とは別の装置内に設けられてもよい。
[第1実施形態]
本発明の第1実施形態としての記憶制御装置100について、図1を用いて説明する。記憶制御装置100は、ホストコンピュータやOSなどからの記憶媒体のアクセスを制御する装置である。
図1に示すように、記憶制御装置100は、領域維持判定部101と、繰り返し部102と、を含む。領域維持判定部101は、一時保存部110に格納されるデータの格納先領域111の確保を維持するか否かを判定する。繰り返し部102は、データの格納先領域111の確保を維持すると判定された場合、格納先領域111へのデータの格納処理の有無に関わらず、所定タイミングでデータの格納先領域111への上書きの指示、または、ダミーデータの格納先領域111への格納の指示を繰り返す。
本実施形態によれば、データの格納処理の有無に関わらず、所定タイミングで格納先領域への上書きの指示、または、ダミーデータの格納先領域への格納の指示を繰り返すので、一時的に保存が必要なデータに対して、一時保存部における安定した格納先領域の確保を実現することができる。
[第2実施形態]
次に、本発明の第2実施形態に係る記憶制御装置を含む情報処理システムについて説明する。本実施形態の情報処理システムにおいては、ホストコンピュータ側に記憶制御装置としての記憶制御部を有し、遠隔に接続された一時保存部において確保したい格納先領域に対して、所定タイミングでの上書きの指示、または、ダミーデータの格納の指示を繰り返すことにより、安定した格納先領域の確保を実現する。
まず、本実施形態の背景となる技術について説明する。なお、格納先となる記憶領域は、格納先領域に相当する。
《背景技術の説明》
計算機システムの性能向上、扱うデータ量の増加に伴い、不揮発性記憶媒体におけるデータの保存についても高速性が求められている。しかし、現在計算機システムで広く普及した不揮発性記憶媒体である、HDD(Hard Disk Drive)、あるいは記憶素子にNAND Flashを用いたSSD(Solid State Drive)は、DRAM(Dynamic Random Access Memory)に比べてWrite性能が低いことが知られている。特に、小さなサイズのデータを格納するランダムWriteは、不揮発性記憶媒体の特性上大きなレイテンシを要する。そこで、不揮発性記憶媒体に対する1回あたりのWriteサイズを拡大し、Writeの頻度を削減することでWrite性能を補うために、DRAMによるWriteデータのバッファが多くのシステムで用いられる。
一方で、DRAMによるバッファは耐障害性の面で問題を抱える。例えば、計算機システムの電源等に障害が発生することで、保存データの消失が発生する。そのため、障害発生時の消失が許容されないデータについては、要求ごとに不揮発性記憶媒体にWriteを行い、正常に格納されたことを確認する必要がある。特に、信頼性が求められる計算機システムでは、障害発生後の正常復帰を保証するために、内部状態の変化をメタデータ、ジャーナル等の状態情報として不揮発性記憶媒体に保存する必要がある。また、計算機システムの状態情報以外に消失が許容されないデータについても、同様にデータの到着ごとに不揮発性記憶媒体にWriteを行う必要がある。
そこで、耐障害性を確保しつつバッファを適用するために、不揮発性記憶媒体に一時保存部であるキャッシュまたはバッファとして高速かつ不揮発性の記憶素子を内蔵する方法が用いられる。記憶媒体に内蔵される不揮発性の記憶素子として、例えば、バッテリーやキャパシタと組み合わせることで耐障害性を実現したDRAM等の高速かつ不揮発性となったメモリが用いられる。これらのキャッシュ、バッファの具体例として、例えば、HDDに内蔵されるNAND Flash、SSDに内蔵されるDRAMとキャパシタとの組み合わせが挙げられる。または、不揮発性記憶媒体を接続するRAID(Redundant Array of Inexpensive Disks)コントローラのモジュールにDRAMとバッテリーとを内蔵し、不揮発性のキャッシュを実現する方法が用いられる。
この他に、非特許文献1の技術に例示される、不揮発性記憶媒体の一部記憶領域をバッファとして利用する方法が用いられる。この技術では、HDD、およびSSDにおいて連続的なデータに対するWriteが高速である性質を利用して、一部の連続した記憶領域を追記形式のバッファとして利用する。バッファ以外の領域を仮想的な不揮発性記憶媒体として利用し、バッファを用いて小さなサイズのランダムWriteデータを連続Writeに変換することで、ランダムWriteに伴う性能低下を抑制する。
(課題)
ところが、信頼性の確保等を目的として内部のメタデータ、ジャーナルを保存する計算機システムにおいて処理性能向上を図る場合に、不揮発性記憶媒体に対する高速な状態情報の保存が不可欠である。また、障害による消失が許容されないデータを逐次保存する計算機システムにおいても、処理性能向上のために不揮発性記憶媒体に対する高速なデータの保存が不可欠である。これらの状態情報、データの保存は、不揮発性記憶媒体に対するWriteの完了が毎回必要であることから、システム全体の処理性能向上のため、特に低レイテンシであることが求められる。
しかし、高速かつ不揮発性のバッファでは、これらのデータの格納において安定的に低レイテンシを実現することが困難である。例えば不揮発性記憶媒体がキャッシュまたはバッファとして使用される高速かつ不揮発性の記憶素子を内蔵する場合、Writeデータをキャッシュまたはバッファの空き領域に格納することで低レイテンシのWriteを実現する。一方、バッファに空き領域が残されていない場合はバッファ上のデータを不揮発性記憶媒体内の低速な記憶領域に移動して空き領域を確保するか、あるいは新規データをバッファに格納せず低速な記憶領域に直接格納する必要がある。その場合は、低速な記憶領域に対するWriteデータの格納が発生するため、Writeデータの格納が完了するまでに大きなレイテンシを要する。
また、多くのシステムでは、不揮発性記憶媒体に対して低レイテンシのWriteが求められるデータの他に、様々なデータが格納される。不揮発性記憶媒体が内蔵するキャッシュまたはバッファを用いて、逐次保存が必要なデータに対して安定的に低レイテンシを実現するためには、低レイテンシの格納が求められるデータを識別し、データの格納先となる記憶領域を安定的に確保する必要がある。しかし、不揮発性記憶媒体内部の不揮発性のキャッシュまたはバッファの制御は不揮発性記憶媒体自身が行う。例えば、不揮発性のキャッシュまたはバッファに格納されるデータは、LRU(Least Recently Used)等の更新頻度に応じたアルゴリズムに基づいて置換対象のデータが決定される。そのため、低レイテンシのWriteを必要とするデータの格納先となる記憶領域が優先的に確保されるとは限らない。
加えて、不揮発性のキャッシュまたはバッファを制御する不揮発性記憶媒体では、システムにおける処理の中間状態を記録するジャーナルやログのように、一時的に保存を求められるデータの識別が困難である。多くの場合これらのデータは、例えば、トランザクション等の一連の処理における途中経過の状態として不揮発性記憶媒体に逐次記録される。これらのデータは、最終的に更新対象となるデータとは別に保存され、一連の処理の途中で障害が発生した場合には途中経過の状態を無効化することで、一連の処理の実行前まで状態を戻す(ロールバック)を可能とする。一方、一連の処理が完了して、かつ、処理の結果が反映された後は、処理の途中経過に関する情報は不要となる。つまり、これらのデータは処理の途中経過を逐次、つまり頻繁に記録し、かつ、一連の処理の開始から処理結果が反映されるまでの間のみ保存が求められることから、不揮発性バッファに格納し続けることが望ましい。しかし、これらのデータを格納するホストコンピュータから不揮発性記憶媒体に対して、保存が必要とされる期間の情報を伝えることは困難である。
つまり、不揮発性のメモリ素子をキャッシュまたはバッファとして使用する不揮発性記憶媒体において、キャッシュまたはバッファの利用効果を高めるために、低レイテンシのWriteが必要なデータ、あるいは一時的な保存が必要なデータ等を判別して選択的に格納先の格納先領域を確保し続けることが困難な点が課題である。また、上記課題は、キャッシュまたはバッファとして使用する高速な不揮発性記憶媒体を別途用意することで解消可能であるが、計算機システムの構築に要するコストの増加につながる。加えて、不揮発性記憶媒体の一部記憶領域をバッファとして利用した場合は、ランダムWriteに伴う性能低下を抑制可能であるが、高速なメモリ素子で構成されるキャッシュ、バッファを介さずにデータが格納されるため、低レイテンシの実現は困難である。
《本実施形態の説明》
以下、本実施形態における記憶制御方法について説明する。
(概説)
本実施形態は、不揮発性記憶媒体、あるいはホストコンピュータと不揮発性記憶媒体を接続するコントローラによって制御される、不揮発性メモリで構成されたキャッシュまたはバッファにおいて、キャッシュまたはバッファの効果向上のために低レイテンシのWriteが必要なデータ、あるいは一時的に保存が必要なデータに対して選択的に格納先領域を確保し続ける方法を提供する。そのために、不揮発性記憶媒体、あるいは不揮発性記憶媒体と接続されたコントローラに対してWriteを行うホストコンピュータが、不揮発性メモリで構成されたキャッシュまたはバッファに格納されるデータを選択することで、不揮発性記憶媒体、あるいはホストコンピュータと不揮発性記憶媒体を接続するコントローラが選択されたデータに対する、キャッシュまたはバッファの格納先領域を優先的に確保するように制御する。
ここで、低レイテンシのWriteが必要なデータ、あるいは一時的に保存が必要なデータとしては、例えば、ファイルの内部状態を示し管理情報として使用されるメタデータや、一連の処理において処理経過や処理の進行状態を示すために使用されるジャーナルなどを含む。メタデータやジャーナルの機能を果たすデータとしては、例えば、カウンタや種々のパラメータ、あるいは、ソフトウェア間の引数なども含まれる。これらは、ホストコンピュータ、OSあるいはアプリケーションソフトウェアにとって重要な意味を有し、処理中に維持すべきデータと考えられる。
以下、本明細書では特に断りのない限り、以下の記述を用いる。まず、ホストコンピュータと接続された不揮発性記憶媒体、およびホストコンピュータと接続されたRAIDコントローラ等によって提供され、コントローラに接続された不揮発性記憶媒体の記憶領域の組み合わせで構成される仮想的な不揮発性記憶媒体、あるいはボリュームを記憶媒体と記述する。また、不揮発性記憶媒体、あるいはホストコンピュータと接続されたRAIDコントローラ等によって制御される、不揮発性メモリで構成されたキャッシュまたはバッファを不揮発性バッファと記述する。そして、ホストコンピュータから記憶媒体の記憶領域を参照する場合、それがアドレスであるかによらず、記憶媒体上の記憶領域において任意の格納先領域を指し示す識別子をアドレスと記述する。また、本明細書で使用する一時保存部は、不揮発性メモリで構成されたキャッシュまたはバッファ、あるいは、揮発性メモリで構成されているが補助電源などの記憶維持機能を有するキャッシュまたはバッファなどを含むものである。
本実施形態では、ホストコンピュータが不揮発性バッファに格納すべきと判断したWriteデータに対して不揮発性バッファの記憶領域が確保され続けるように、Writeデータの記憶媒体上での格納先、およびWriteデータを将来格納する予定のアドレスが、記憶媒体の制御によって不揮発性バッファから追い出されないように制御する。アドレスの示す領域が不揮発性バッファ上に常に確保された状態とすることで、Writeデータの格納時に低速な記憶領域に対する書き込みを伴う空き領域の確保処理を行わずに、低レイテンシでWrite処理を完了できる。また、一時的に保存が必要なデータを不揮発性バッファ上に格納し続けることが可能であり、記憶媒体内の低速な記憶領域に対するWriteデータ量の削減が可能である。
不揮発性バッファに格納すべきと判断したWriteデータに対する記憶領域を安定的に確保するためには、ホストコンピュータから記憶媒体に対してデータを格納する記憶領域のアドレスが低レイテンシのデータ格納が必要、または更新頻度の高いデータを格納することを通知する必要がある。これらの通知は、例えば、SSD等に用いられるNVM Express等の規格であれば、ホストコンピュータから記憶媒体に対するWrite要求にWrite先アドレスの指し示す記憶領域のレイテンシ、および更新頻度に関する要件を直接的に指定することで実現可能である。
しかし、記憶媒体内部の処理の都合により、必ずしも不揮発性バッファに格納すべきデータに対して不揮発性バッファの空き領域を確保可能であるとは限らない。また、ホストコンピュータからのWriteデータに関する要件は、ホストコンピュータからのデータ格納に関するヒントに過ぎず、記憶媒体において通知を受けた場合に、当該データを不揮発性バッファに保持し続ける時間等はホストコンピュータから制御不可能である。さらに、例えば、ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)のようなHDDやSSD等の記憶媒体に現在広く用いられる接続規格では、この通知機能を持たない。
そこで記憶媒体に対して、不揮発性バッファに格納すべきと判断したアドレスについて、ホストコンピュータから記憶媒体の当該アドレスに対する定期的なデータの上書きを行う。一般的にキャッシュやバッファのデータの置換において、例えばLRUのようなデータのアクセス、更新頻度に基づいたアルゴリズムが多く用いられる。そのため、ホストコンピュータから定期的に当該アドレスのデータを更新することで、記憶媒体に対して更新頻度の高いデータであることを通知して、不揮発性バッファ上に対応する記憶領域を安定的に確保する。また、ホストコンピュータから記憶媒体に対して記憶領域のレイテンシ、および更新頻度に関する要件を通知可能である場合(例えば、NVMe:Non-Volatile Memory Expressなど)は、低レイテンシの格納が必要、もしくは更新頻度の高いデータであることを通知することで、さらに安定的な不揮発性バッファ上の記憶領域確保が期待される。
本実施形態によれば、不揮発性バッファへの格納が必要なWriteデータに対して選択的に、不揮発性バッファ上に記憶領域が確保された状態を維持することで低レイテンシのデータ格納、および低速な記憶領域に対するWriteデータ量の削減による不揮発性バッファの効果向上を図る。そのために、優先データ管理機能と、格納データ量計測機能と、優先データ領域維持機能と、優先データ置換時期推測機能と、を備える。
優先データ管理機能は、低レイテンシの格納、あるいは一時的な保存が求められるデータといった、記憶媒体の不揮発性バッファに格納すべきWriteデータ(以下、本明細書ではWriteデータを優先データと記述)を管理する。すなわち、ホストコンピュータ上で動作するソフトウェアからの指示を受けて、記憶媒体の指示されたアドレスを優先データとして登録、または削除する。また、登録された各優先データについて、最後に記憶媒体の不揮発性バッファに格納された時期の情報を管理する。
格納データ量計測機能は、ホストコンピュータから記憶媒体に対するWrite要求を監視し不揮発性バッファに対するWriteデータ量を推測する。すなわち、ホストコンピュータ上で動作するソフトウェアから記憶媒体に対するWrite要求を監視して、不揮発性バッファに対する総格納データ量を計測する。
優先データ領域維持機能は、優先データを格納するための不揮発性バッファ上の領域を維持する処理を行う。すなわち、優先データ領域制御機能によって選択された、不揮発性バッファ上の優先データの格納領域について、記憶媒体の制御により他のデータで置換されないように記憶媒体に対して優先データの格納領域に対する操作を行い、格納領域を不揮発性バッファ上で維持する。記憶媒体に対する優先データの格納領域を維持するための操作は、領域を指し示すアドレスに対する同一データ、または同一サイズのダミーデータの上書きによって行う。また、ホストコンピュータから記憶媒体に対して、各アドレスの指し示す優先データに関するレイテンシまたは更新頻度の要件の通知が可能な場合は、通知によって低レイテンシの格納が必要、または高い更新頻度であることを通知して、優先的に不揮発性バッファに格納されるようにしてもよい。
優先データ置換時期推測機能は、不揮発性バッファにおいて優先データを格納する記憶領域が他のWriteデータで置換される時期を予測し、優先データ領域維持機能による処理を行う時期を決定する。すなわち、優先データ管理機能、格納データ量計測機能を用いて優先データを格納する各領域に関する置換時期を推測し、不揮発性バッファ上の格納領域が必要な優先データを選択する。また、選択した優先データについて、優先データ領域維持機能に対してアドレスを指定して処理の実行を指示する。
本実施形態による記憶制御方法を適用することで、不揮発性バッファにおいて低レイテンシのWriteが必要なデータ、あるいは一時的に保存が必要なデータに対して安定した記憶領域の確保を実現し、不揮発性記憶媒体に対する低レイテンシのWrite、および不揮発性記憶媒体内の低速な記憶領域に対するWriteデータ量の削減が可能である。
《情報処理システム》
図2は、本実施形態に係る記憶制御装置としての記憶制御部220を含む情報処理システム200の構成を示すブロック図である。
図2を参照すると、本実施形態の情報処理システム200は、1台以上のホストコンピュータ210と、一時保存部230と、記憶媒体240と、ホストコンピュータ210と一時保存部230および記憶媒体240とを接続するネットワーク250を含む。なお、記憶媒体240は、複数の記憶媒体に分散して接続されていてもよい。
ホストコンピュータ210は、OS(Operating System)211およびOS211上で動作するソフトウェアであるアプリケーション212と、本実施形態の記憶制御部220と、を備える。記憶制御部220は、OS211およびアプリケーション212の処理における、一時保存部230を介した記憶媒体240へのReadおよびWriteを含むアクセス処理を制御する。
記憶媒体240は、HDD、NANDフラッシュを記憶素子として用いたSSD等の不揮発性記憶媒体である。また、一時保存部230は、記憶媒体240に比べて比較的高速かつ不揮発性の記憶素子によって構成され、記憶媒体240に対してホストコンピュータ210からは透過であるバッファまたはキャッシュの役割を果たす。また、一時保存部230に対するデータの格納や参照は記憶媒体240によって制御され、例えば、記憶媒体240と一時保存部230とが単一の記憶媒体に内蔵されてもよい。また、例えば、記憶媒体240が、ホストコンピュータ210と接続されるRAIDコントローラ(不図示)によって単体または複数の物理的な不揮発性記憶媒体の記憶領域から仮想的に構成される記憶媒体であり、一時保存部230がその記憶媒体に対するバッファとしてRAIDコントローラによって制御される形態であってもよい。
ネットワーク250の形態は特に限定されず、例えば、一時保存部230が記憶媒体240と独立してネットワーク250に接続される形態であってもよい。また、ホストコンピュータ210と記憶媒体240、一時保存部230が直接接続される形態であってもよい。さらに、ホストコンピュータ210を、ネットワーク250によって接続された複数の装置、あるいはシステムで構成してもよい。
《記憶制御装置の機能構成》
図3は、本実施形態に係る記憶制御装置としての記憶制御部220の機能構成を示すブロック図である。
図3を参照すると、記憶制御部220は、アクセス実行部301と、優先データ操作受付部302と、優先データ管理部303と、を備える。また、記憶制御部220は、格納データ量計測部304と、総格納データ量記憶部305と、優先データ置換時期推測部306と、置換時期判定基準データ量記憶部307と、優先データ領域維持部308と、を備える。
《アクセス実行部》
アクセス実行部301は、ホストコンピュータ210で動作するソフトウェア、OSからのアクセス要求を受け取り、記憶媒体240に対して必要なアクセス処理を行う。また、アクセス実行部301は、優先データ領域維持部308、および、バッファ領域確保部106から指示された、一時保存部230に関する処理を行う。
《優先データ操作受付部》
優先データ操作受付部302は、優先データ操作記憶部321をホストコンピュータ210で動作するソフトウェア、OSと共有する。優先データ操作受付部302は、ホストコンピュータ210で動作するソフトウェア、OSから一時保存部230に格納する優先データの指定と、指定の削除との対象のアドレスに関する要求を、優先データ操作記憶部321を経由して受け取る。そして、優先データ操作受付部302は、優先データ操作記憶部321の情報に基づいて、優先データ管理部303に対して優先データの登録または登録削除を指示する。なお、一時保存部230に格納する優先データの指定と、指定の削除との対象のアドレスに関する要求は、上記のような優先データ操作記憶部321を介したソフトウェア間の要求伝達であっても、通信による要求伝達であってもよい。
(優先データ操作記憶部)
図4Aに、本実施形態に係る優先データ操作記憶部321の構成を示す。本実施形態に係る優先データ操作記憶部321は、ホストコンピュータ210で動作するソフトウェア、OSと、記憶制御部220の優先データ操作受付部302とにより共有されて、一時保存部230に格納する優先データの指定と、指定の削除との対象のアドレスに関する要求の受け渡しを行なう。なお、優先データ操作記憶部321の構成は、図4Aの構成に限定されない。また、図4Aには複数の優先データ操作の記憶を示したが、1つの優先データ操作を記憶できればよい。
優先データ操作記憶部321は、記憶内容が有効か無効かを示すフラグ411と、優先データの指定か解除かを示すフラグ412と、優先データの指定または解除をするアドレス413と、優先データの容量414と、優先データの指定または解除を指示した指示元415と、を記憶する。なお、フラグ411の無効は、優先データ操作の完了をホストコンピュータ210で動作するソフトウェア、OSに通知するフラグとしても使用されてよい。
《優先データ管理部》
優先データ管理部303は、優先データ管理テーブル331を有し、ホストコンピュータ210で動作するソフトウェア、OSから指定された優先データの情報について、優先データ管理テーブル331に対するエントリの登録および削除を行う。また、優先データ管理部303は、優先データ管理テーブル331に登録された優先データに対するホストコンピュータ210で動作するソフトウェア、OSからのアクセスを監視し、更新または削除が行われた場合は、アクセス先のアドレスに対応する優先データのエントリの情報を更新する。
(総格納データ量記憶部、置換時期判定基準データ量記憶部および優先データ管理テーブル)
図4Bに、本実施形態に係る総格納データ量記憶部305、置換時期判定基準データ量記憶部307および優先データ管理テーブル331の構成を示す。
総格納データ量記憶部305は、一時保存部230に対する総格納データ量を記憶する。総格納データ量は、格納データ量計測部304によって、ホストコンピュータ210で動作するソフトウェア、OSから記憶媒体240に対するWrite要求の監視を行うことにより計測される。
置換時期判定基準データ量記憶部306は、一時保存部230へのWrite処理を強制して実行する置換時期を判定する基準データ量として、例えば、一時保存部230の容量、もしくは、一時保存部230においてデータの置換に伴う、記憶媒体240の低速な記憶領域に対するデータ格納が開始される容量を設定する。データ格納が開始される容量としては、例えば、Writeデータへのアクセス速度が遅くなることが検出された容量を含む。
優先データ管理テーブル331は、優先データ操作記憶部321に記憶された指定操作に従いエントリされて、Write処理ごとに現在の総格納データ量により更新される。そして、現在の総格納データ量と格納先領域に対応して記憶された格納データ量との差と、置換時期判定基準データ量との比較に基づき、Write処理の強制を行なって格納先領域を確保するために使用される。優先データ管理テーブル331の各エントリは、優先データの格納先である記憶媒体240の記憶領域を指し示すアドレス421と、最後に当該アドレスが更新された時点における、一時保存部230を介した記憶媒体240への総格納データ量を表す更新時格納データ量422とを持つ。
優先データ管理部303は、ホストコンピュータ210で動作するソフトウェア、OSから優先データのアドレスを新規に指定されると、優先データ管理テーブル331に新規のエントリを作成し、指定された優先データのアドレスを格納する。また、優先データ管理部303は、ホストコンピュータ210で動作するソフトウェア、OSから優先データの指定を削除するアドレスを受け取ると、アドレスが一致するエントリを削除する。さらに、優先データ管理部303は、アクセス実行部301で処理されるホストコンピュータ210で動作するソフトウェア、OSから記憶媒体240に対するWrite要求の情報を受け取り、Write先が格納先領域のアドレス421と一致する場合は、当該エントリの更新時格納データ量422を総格納データ量記憶部305に記憶された現在の総格納データ量に更新する。加えて、優先データ管理部303は、同様に、ホストコンピュータ210で動作するソフトウェア、OSから記憶媒体240に対する削除要求の情報を受け取り、削除対象がアドレス421と一致する場合は、当該エントリを優先データ管理テーブル331から削除する。
なお、NVMeなどを使用する場合には、優先データ管理部303が、Write要求などからレイテンシ、または更新頻度の要件の通知を抽出し、通知によって低レイテンシの格納が必要、または高い更新頻度であることを検知して、優先データ管理部303において検出に対応した処理を行なうことも可能である。
《格納データ量計測部》
格納データ量計測部304は、ホストコンピュータ210で動作するソフトウェア、OSから記憶媒体240に対するWrite要求の監視を行い、一時保存部230に対する現在の総格納データ量を計測して、総格納データ量記憶部305に記憶する。格納データ量計測部304では、記憶媒体240に対して格納されたデータは一旦、一時保存部230に格納されるものとし、総格納データ量の値に記憶媒体240に対してホストコンピュータからWrite要求が行われるごとに、Writeデータのサイズを加算する。
《優先データ置換時期推測部》
優先データ置換時期推測部306は、格納データ量計測部304によって計測されて総格納データ量記憶部305に記憶された一時保存部230の総格納データ量と、優先データ管理部303によって管理される各優先データの格納先領域における更新時格納データ量422と、の差を取る。そして、データ量の差である、優先データの格納先領域における最終更新時から後に一時保存部230に格納されたデータ量が、置換時期判定基準データ量記憶部307に記憶された事前に定めた基準データ量を上回った場合に、優先データ置換時期推測部306は、優先データの格納先領域のアドレスを優先データ領域維持部308に通知して、優先データのWrite処理の実行を指示する。
なお、基準データ量としては、上述のように、例えば、一時保存部230の容量、もしくは、一時保存部230においてデータの置換に伴う、記憶媒体240の低速な記憶領域に対するデータ格納が開始される容量が設定される。データ格納が開始される容量としては、例えば、Writeデータへのアクセス速度が遅くなることが検出された容量が含まれる。また、一時保存部230の容量が公開されている場合には、その容量のX%(X<100)などの基準データ量が設定されてもよい。
《優先データ領域維持部》
優先データ領域維持部308は、優先データ置換時期推測部306からの指示されたアドレスで表される優先データについて、アクセス実行部301経由で記憶媒体240に対してアクセスを行い、優先データを格納する格納先領域が一時保存部230に残るように維持を行う。維持の処理は、記憶媒体240に対する当該アドレスに格納された優先データの読み出しと、同一データの再格納とによって実施される。また、優先データを格納するためにあらかじめ確保された一時保存部230の格納先領域の事前確保が目的の場合は、優先データの読み出し処理を省略し、当該格納先領域を指し示すアドレスに対する任意のデータ(ダミーデータ)のWrite処理を記憶媒体240に指示することで実施可能である。さらに、例えばNVMeなどのように、ホストコンピュータ210から記憶媒体240に対して各アドレスの指し示す優先データに関するレイテンシ、または更新頻度の要件の通知が可能な場合は、通知によって低レイテンシの格納が必要、または高い更新頻度であることを通知することも可能である。
《記憶制御装置のハードウェア構成》
図5は、本実施形態に係る記憶制御装置としての記憶制御部220のハードウェア構成を示すブロック図である。なお、図5においては、記憶制御部220はホストコンピュータ210のソフトウェア処理として図示するが、記憶制御部220を、ホストコンピュータ210とは独立したワンチップのコンピュータで実現してもよい。
図5で、CPU(Central Processing Unit)510は演算制御用のプロセッサであり、プログラムを実行することで図3の記憶制御部220の機能構成部を実現する。ROM(Read Only Memory)520は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、ネットワークインタフェース530は、ネットワーク250を介して記憶媒体240や他の装置と通信する。なお、CPU510は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPU(Graphics Processing Unit)を含んでもよい。また、ネットワークインタフェース530は、CPU510とは独立したCPUを有して、RAM(Random Access Memory)540の領域に送受信データを書き込みあるいは読み出しするのが望ましい。したがって、CPU510は、RAM540にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU510は、処理結果をRAM540に準備し、後の送信はネットワークインタフェース530に任せる。
RAM540は、CPU510が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM540には、本実施形態の実現に必要なデータを記憶する領域が確保されている。Readアドレス/データ541は、記憶媒体240からのRead処理の対象とするアドレスと、読み込まれたデータとである。Writeアドレス/データ542は、記憶媒体240へのWrite処理の対象とするアドレスと、書き込まれるデータとである。削除アドレス543は、記憶媒体240からの削除処理の対象とするアドレスである。優先データ指定アドレス/領域544は、一部保存部239に保持される優先データを指定するためのアドレスと領域長とである。指定解除アドレス/領域545は、一部保存部239に保持された優先データの格納先領域を解除(解放)するためのアドレスと領域長とである。優先データ領域維持アドレス/領域546は、優先データ指定アドレス/領域544にもとづいて、一部保存部230に確保された優先データ用の格納先領域を示すアドレスと領域長とである。ホスト送受信データ547は、ホストコンピュータ210と送受信するデータである。送受信データ548は、ネットワークインタフェース530を介して送受信されるデータである。
ストレージ550には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。優先データ管理テーブル331は、図4Bに示した、優先データとして一時保存部230に格納先領域を確保し維持するための管理テーブルである。総格納データ量記憶部305は、図4Bに示した、一時保存部230を介して記憶媒体240にWrite処理をした総格納データ量の記憶部である。置換時期判定基準データ量記憶部307は、図4Bに示した、一時保存部230に確保した優先データの格納先領域へのWrite処理をするか否かを判定する基準データ量の記憶部である。
ストレージ550には、以下のプログラムが格納される。記憶制御プログラム551は、OS211やアプリケーション212からの記憶媒体240へのアクセスを受けて、本実施形態のアクセス制御を実現するプログラムである。Read制御モジュール552は、記憶制御プログラム551における、記憶媒体240からのReadを制御するモジュールである。Write制御モジュール553は、記憶制御プログラム551における、記憶媒体240へのWriteを制御するモジュールである。削除制御モジュール554は、記憶媒体240からのデータ削除を制御するモジュールである。指定/指定解除モジュール555は、OS211やアプリケーション212からの指示を受けて、優先データの一時保存部230における格納先領域の確保の指定、あるいは、指定解除による格納先領域の開放を制御するモジュールである。優先データ領域維持モジュール556は、優先データの一時保存部230に確保された格納先領域が記憶媒体240に格納されず格納先領域に保持するよう維持するモジュールである。
なお、図5のRAM540やストレージ550には、ホストコンピュータ210が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
《記憶制御装置の処理手順》
図6は、本実施形態に係る記憶制御装置としての記憶制御部220の処理手順を示すフローチャートである。このフローチャートは、図5のCPU510がRAM540を使用して実行し、図3の機能構成部を実現する。なお、図6においては、各処理を選択的に実行するように図示したが、複数の処理が並行して実行されてもよい。また、判定順についても図6に限定されない。
記憶制御部220は、ステップS611において、OS211またはアプリケーション212からのRead要求であるか否かを判定する。Read要求であれば、記憶制御部220は、ステップS613において、記憶媒体240からのRead処理を実行する。Read要求でなければ、記憶制御部220は、ステップS621において、OS211またはアプリケーション212からのWrite要求であるか否かを判定する。Write要求であれば、記憶制御部220は、ステップS623において、記憶媒体240へのWrite処理を実行する。
Read要求でもWrite要求でもなければ、記憶制御部220は、ステップS631において削除であるか否かを判定する。削除であれば、記憶制御部220は、ステップS633において、削除処理を実行する。なお、削除には、SSD等におけるイレース(Erase)、ATAでのトリム(Trim)あるいはSCSIでのアンマップ(Unmap)、などが含まれる。
Read要求でもWrite要求でも削除要求でもなければ、記憶制御部220は、ステップS641において、優先データ領域の指定あるいは指定解除であるか否かを判定する。優先データ領域の指定あるいは指定解除であれば、記憶制御部220は、ステップS643において、優先データ領域指定/解除処理を実行する。Read要求でもWrite要求でも削除要求でも優先データ領域の指定あるいは指定解除でもなければ、記憶制御部220は、ステップS651において、優先データ領域の維持動作であるか否かを判定する。優先データ領域の維持動作であれば、記憶制御部220は、ステップS653において、優先データの維持処理を実行する。
以下、Write処理(S623)、削除処理(S633)、優先データ指定/解除処理(S643)、優先データ領域維持処理(S653)の手順を説明する。なお、Read処理(S613)については、説明を省略する。
(Write処理)
図7は、本実施形態に係るWrite処理(S623)の手順を示すフローチャートである。
記憶制御部220のアクセス実行部301は、ステップS701において、ホストコンピュータ210で動作するソフトウェア、OSからのWrite要求を受け取ると、優先データ管理部303に対してWrite要求の情報を伝える。記憶制御部220の優先データ管理部303は、ステップS703において、優先データ管理テーブル331の各エントリのアドレス421と、ステップS701で受け取ったWrite要求先のアドレスとを比較する。そして、優先データ管理部303は、ステップS705において、比較結果を判定して比較結果に対応した分岐をする。
Write要求先のアドレスと一致するアドレス421を有するエントリが優先データ管理テーブル331に存在しない場合(ステップS705のNo判定)、優先データ管理部303は、アクセス実行部301にステップS709以降の処理を実行させる。Write要求先のアドレスと一致するアドレス421を有するエントリが優先データ管理テーブル331に存在する場合(ステップS705のYes判定)、優先データ管理部303は、ステップS707において、優先データ管理テーブル331の当該エントリの更新時格納データ量422の値を、格納データ量記憶部305から取得した一時保存部230の総格納データ量の値で更新する。
アクセス実行部301は、ステップS709において、ステップS701で受け取ったWrite要求を記憶媒体240に発行し、記憶媒体240からWrite処理の完了応答を受け取ると、アクセス要求元であるホストコンピュータ210で動作するソフトウェア、OSに完了応答を返して処理を終了する。
以上のステップS701からS709までの処理を行い、ホストコンピュータ210で動作するソフトウェア、OSから発行されたWrite要求の処理を行う動作が完了する。ステップS701からS709の処理順序は、必ずしも図7に示した順序である必要はない。例えば、ステップS703からS707までの処理と、ステップS709の処理とは、同時期に実行が可能、あるいは順序を入れ替えた実行が可能である。
(削除処理)
図8は、本実施形態に係る削除処理(S633)の手順を示すフローチャートである。
記憶制御部220のアクセス実行部301は、ステップS801において、ホストコンピュータ210で動作するソフトウェア、OSからの削除要求を受け取ると、優先データ管理部303に対して削除要求先のアドレスを含む削除要求の情報を伝える。優先データ管理部303は、ステップS803において、優先データ管理テーブル331の各エントリのアドレス421と、ステップS801で受け取った削除要求先のアドレスとを比較する。そして、優先データ管理部303は、ステップS805において、比較結果を判定して比較結果に対応した分岐をする。
削除要求先のアドレスと一致するアドレス421を有するエントリが優先データ管理テーブル331に存在しない場合(ステップS805のNo判定)、優先データ管理部303は、アクセス実行部301にステップS809以降の処理を実行させる。削除要求先のアドレスと一致するアドレス421を有するエントリが優先データ管理テーブル331に存在する場合(ステップS805のYes判定)、優先データ管理部303は、ステップS807において、優先データ管理テーブル331から当該エントリを削除する。
アクセス実行部301は、ステップS809において、ステップS801で受け取った削除要求を記憶媒体240に発行し、記憶媒体240から削除処理の完了応答を受け取ると、アクセス要求元であるホストコンピュータ210で動作するソフトウェア、OSに完了応答を返して処理を終了する。
以上のステップS801からS809までの処理を行い、ホストコンピュータ210で動作するソフトウェア、OSから発行された削除要求の処理を行う動作が完了する。ステップS801からS809の処理順序は、必ずしも図8に示した順序である必要はない。例えば、ステップS803からS807までの処理とステップS809の処理は、同時期に実行が可能、あるいは順序を入れ替えた実行が可能である。
(優先データ領域の指定/解除処理)
図9は、本実施形態に係る優先データ領域の指定/解除処理(S643)の手順を示すフローチャートである。
記憶制御部220の優先データ操作受付部302は、ステップS901において、ホストコンピュータ210で動作するソフトウェア、OSから一時保存部230に格納する優先データの指定要求、または、指定の削除要求を受け取る。そして、優先データ操作受付部302は、優先データのアドレス情報を優先データ管理部303に通知して、優先データの指定、または、指定削除を指示する。指示を受けた優先データ操作受付部302は、ステップS903において、受け取った要求が優先データの指定要求であるか否かを判定する。
ステップS901で受け取った要求が優先データの指定要求である場合(ステップS903のYes判定)、優先データ管理部303は、ステップS905において、優先データ管理テーブル331の各エントリのアドレス421を確認して、優先データの指定要求のアドレスと比較する。そして、優先データ管理部303は、ステップS907において、優先データの指定要求のアドレスが優先データ管理テーブル331のいずれかのエントリのアドレス421と一致するか否かを判定する。
優先データとして登録を要求されたアドレスと一致するアドレス421を有するエントリが優先データ管理テーブル331に存在する場合(ステップS907のNo判定)、優先データ管理部303は、優先データ操作受付部302にステップS919以降の処理を実行させる。優先データとして指定されたアドレスと一致するアドレス421を有するエントリが優先データ管理テーブル331に存在しない場合(ステップS907のYes判定)、優先データ管理部303は、ステップS909において、優先データ管理テーブル331に新規のエントリを作成し、指定された優先データのアドレスをアドレス421に設定する。また、優先データ管理部303は、更新時格納データ量422として“0”、または処理時点の一時保存部230の総格納データ量に比べて十分に小さな値を設定して、優先データ操作受付部302にステップS919以降の処理を実行させる。
なお、エントリ時に更新時格納データ量422として“0”、または、処理時点の一時保存部230の総格納データ量に比べて十分に小さな値を設定するのは、エントリ時に優先データの格納先領域が、当該データの更新要求が発生した時点で一時保存部上に確保されている状態を保証するための動作である。本実施形態においては、優先データ管理テーブルの各エントリの作成時期と、Write要求の時期は独立しており、動作順序としては、あらかじめ優先データを登録しておき、その後に優先データのWriteを行うことを想定している。そのため、優先データを指定した時点の総格納データ量を更新時格納データ量としてしまうと、優先データの指定から十分な時間が経過しない状態で書き込みを行った場合に、格納先領域が確保されておらず、それに伴う一時保存部からのデータ追い出し処理が発生し、遅延の原因となる。この動作を防ぐために、優先データの指定後に、格納先領域に対する上書き処理をすぐに行わせて、一時保存部上に格納先領域が確保された状態とする。しかしながら、Write要求で格納先領域を確保した後に優先データとして登録する場合は、優先データを指定した時点の総格納データ量を更新時格納データ量としてもよい。
ステップS901で受け取った要求が優先データの指定要求でない場合(ステップS903のNo判定)、優先データ管理部303は、ステップS911において、受け取った要求が優先データの指定の解除要求であるか否かを判定する。受け取った要求が優先データの指定の解除要求でもない場合(ステップS911のNo判定)、優先データ管理部303は、要求元のホストコンピュータ210で動作するソフトウェア、OSにエラー通知をするなどのエラー処理をする。
ステップS901で受け取った要求が優先データの指定の削除要求である場合(ステップS903のYes判定)、優先データ管理部303は、ステップS913において、優先データ管理テーブル331の各エントリのアドレス421を確認して、優先データの指定の削除要求のアドレスと比較する。そして、優先データ管理部303は、ステップS915において、優先データの指定の解除要求のアドレスが優先データ管理テーブル331のいずれかのエントリのアドレス421と一致するか否かを判定する。
優先データの指定の削除を要求されたアドレスと一致するアドレス421を有するエントリが優先データ管理テーブル331に存在しない場合(ステップS915のNo判定)、優先データ管理部303は、優先データ操作受付部302にステップS919以降の処理を実行させる。優先データの指定の削除を要求されたアドレスと一致するアドレス421を有するエントリが優先データ管理テーブル331に存在する場合(ステップS915のYes判定)、優先データ管理部303は、ステップS917において、優先データ管理テーブル331から指定の削除を要求されたアドレスと一致するアドレス421を有するエントリを削除する。
優先データ操作受付部302は、ステップS919において、優先データの指定要求元、または、指定の削除要求元である、ホストコンピュータ210で動作するソフトウェア、OSに対して完了を通知して処理を終了する。
以上のステップS901からS919までの処理を行い、ホストコンピュータ210で動作するソフトウェア、OSから発行された優先データの指定要求、指定の削除に関する要求を処理する動作が完了する。ステップS901からS919の処理順序は、必ずしも図9に示した順序である必要はない。例えば、ステップS919の完了を通知する動作は、優先データの指定または指定の削除を処理するうえで省略が可能である。
(優先データ領域維持処理)
図10は、本実施形態に係る優先データ領域維持処理(S653)の手順を示すフローチャートである。図10においては、一時保存部230に格納された各優先データが置換の対象となる時期を予測し、一時保存部230の格納先領域の維持を行う対象の優先データを決定して維持処理を実行する手順を説明する。
記憶制御部220の優先データ置換時期推測部306は、ステップS1001において、任意の時期に優先データ管理部303によって管理される優先データ管理テーブル331を参照し、各優先データを更新時格納データ量422が小さい順番にソートする。優先データ置換時期推測部306は、ステップS1003において、格納データ量計測部304が計測している一時保存部230の総格納データ量を、総格納データ量記憶部305から取得する。そして、優先データ置換時期推測部306は、ステップS1005において、優先データのソート結果を参照し、ステップS1003で取得した総格納データ量から更新時格納データ量422を引くことで、先頭の優先データが最後に更新された後に一時保存部230に格納されたデータ量を算出する。
優先データ置換時期推測部306は、ステップS1007において、算出されたデータ量が置換時期判定基準データ量記憶部307に記憶された置換時期判定基準データ量を上回ったか否かを判定する。優先データが最後に更新された後に一時保存部230に格納されたデータ量が、置換時期判定基準データ量以下である場合(ステップS1007のNo判定)、処理を終了する。優先データが最後に更新された後に一時保存部230に格納されたデータ量が、置換時期判定基準データ量を上回る場合(ステップS1007のYes判定)、優先データ置換時期推測部306は、ステップS1009において、ソートされた先頭の優先データに関するアドレス421を優先データ領域維持部308に通知する。
優先データ領域維持部308は、ステップS1011において、ステップS1009で通知されたアドレス421の優先データについて、格納先領域が一時保存部230に残るように維持するための処理を行う。格納先領域が一時保存部230に残るように維持するための処理としては、データの格納先領域への上書き、または、ダミーデータの格納先領域への格納を含む。優先データ置換時期推測部306は、ステップS1013において、優先データの更新時格納データ量422に基づくソート結果から、先頭の優先データを削除する。優先データ置換時期推測部306は、ステップS1015において、優先データ管理部303に対して、ステップS1013でソート結果から削除された優先データに対応する優先データ管理テーブル331のエントリについて、更新時格納データ量422の値を、総格納データ量記憶部305から取得した一時保存部230の総格納データ量の値で更新する。
優先データ置換時期推測部306は、ステップS1017において、優先データのソート結果に優先データが残った状態であるか否かを判定する。優先データのソート結果に優先データが1個も残っていない場合(ステップS1017のNo判定)、処理を終了する。優先データのソート結果に優先データが1個以上残った状態である場合(ステップS1017のYes判定)、優先データ置換時期推測部306は、ステップS1005から処理を繰り返して継続する。
以上のステップS1001からS1017までの処理を行い、優先データ置換時期推測部306により一時保存部230に格納された各優先データが置換の対象となる時期を予測し、優先データ領域維持部308により一時保存部230の格納先領域の維持を行う対象の優先データを決定して維持を実行する動作が完了する。ステップS1001からS1017の処理順序は、必ずしも図10に示した順序である必要はない。例えば、ステップS1013とステップS1015との処理は同時期に実行可能、あるいは順序を入れ替えた実行が可能である。
《具体例の概説》
図4Aおよび図4Bを参照して、本実施形態の具体例について説明する。
図4Aの優先データ操作記憶部321の内容から、上部3列の優先データは既に優先データ管理テーブル331にエントリされており、4列目の優先データのエントリが優先データ管理部330により行なわれる。4列目の優先データのエントリ時には更新時格納データ量422に例えば“0”が設定されるので、上書きのWrite処理が行なわれ、優先データ管理テーブル331の4列目の優先データのエントリの更新時格納データ量422には、現在の総格納データ量(1350MB)が設定される。
そして、アクセス実行部301がWrite処理を検出し、Write処理のアドレスが優先データ管理テーブル331にあれば、優先データ管理部303は、そのアドレスを持ったエントリの更新時格納データ量422を総格納データ量記憶部305が記憶する総格納データ量に更新する。
一方、優先データ管理テーブル331で、更新時格納データ量422の小さい順にソートされた最上位のエントリ(アドレス:0x00001279)について、優先データ置換時期推測部306において以下の処理が行なわれる。総格納データ量(1350MB)から最上位のエントリの更新時格納データ量422(800MB)が減算されて、優先データが最後に更新された後に一時保存部230に格納されたデータ量(550MB=1350MB-800MB)が算出される。算出されたデータ量(550MB)は、置換時期判定基準データ量(549MB)と比較される。本例では、置換時期判定基準データ量(549MB)を上回ったので、優先データ領域維持部308が、最上位のエントリ(アドレス:0x00001279)に対して、データの格納先領域への上書き、または、ダミーデータの格納先領域への格納を含む格納先領域を維持する処理を実行する。
本実施形態によれば、データの格納処理の有無に関わらず、所定タイミングで格納先領域への上書きの指示、または、ダミーデータの格納先領域への格納の指示を繰り返すので、一時的に保存が必要なデータに対して、一時保存部における安定した格納先領域の確保を実現することができる。
例えば、追記形式の不揮発性記憶媒体をバッファやキャッシュとして使用する場合、バッファやキャッシュにおいて低レイテンシのWriteが必要なデータ、あるいは、一時的に保存が必要なデータに対して安定した格納先領域の確保を実現することができる。さらに、低レイテンシのWrite、および不揮発性記憶媒体内の低速な記憶領域に対するWriteデータ量の削減が可能である。
[第3実施形態]
次に、本発明の第3実施形態に係る記憶制御装置を含む情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態と比べると、ソフトウェアやOSからの指示情報に基づいて、格納先領域の確保に対する優先順位を設定する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
(優先データ操作記憶部および置換時期判定基準データ量記憶部)
図11は、本実施形態に係る優先データ操作記憶部1121および置換時期判定基準データ量記憶部1107の構成を示す図である。
優先データ操作記憶部1121は、図4Aの優先データの指定情報に対して、優先度1115を追加している。この優先度は、指定する各優先データについて、一時保存部230における保持がホストコンピュータ210で動作するソフトウェア、OSにとって必須であるものから、重要度は高いが必須ではないものを区別する。かかる優先度は、異なるホストコンピュータや、ホストコンピュータで動作する異なるソフトウェア、OSにおいて、共通であることが望ましい。
優先データ操作記憶部1121の情報に対応して、置換時期判定基準データ量記憶部1107においては、アドレス1111の優先データの優先度1115に対応して、異なる置換時期判定基準データ量1112が設定される。図11においては、優先度01の場合100MB、優先度02の場合200MB、優先度03の場合800MB、優先度04の場合1000MB、が設定されているが、これに限定されない。
本実施形態によれば、優先データの優先度を考慮した格納先領域の確保をするので、より効率的な格納先領域の確保を実現することができる。
[第4実施形態]
次に、本発明の第4実施形態に係る記憶制御装置を含む情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態および第3実施形態と比べると、一時保存部が記憶媒体内に確保される点で異なる。その他の構成および動作は、第2実施形態や第3実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
《情報処理システム》
図12は、本実施形態に係る記憶制御装置を含む情報処理システム1200の構成を示すブロック図である。なお、図12において、図2と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
図12の情報処理システム1200は、記憶媒体1240が、図2の一時保存部230に相当する一時保存部1230を有している。すなわち、記憶媒体1240は、一時保存部1230と、図2の記憶媒体240に相当する媒体本体1241と、を備えている。
本実施形態によれば、記憶媒体1240に一時保存部1230が一体化されているので、より簡単な構成で本実施形態の情報処理システムを実現できる。
[第5実施形態]
次に本発明の第5実施形態に係る記憶制御装置を含む情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態乃至第4実施形態と比べると、記憶制御装置としての記憶制御部がホストコンピュータとは別に単体で、あるいは、記憶媒体が有する点で異なる。その他の構成および動作は、第2実施形態から第4実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
《情報処理システム》
図13は、本実施形態に係る記憶制御装置を含む情報処理システム1300の構成を示すブロック図である。なお、図13において、図2または図12と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
図13においては、ホストコンピュータ1310は本実施形態の記憶制御部を有しない。一例として、本実施形態の記憶制御部1343は、記憶媒体1340に搭載されている。また、他の例として、本実施形態の記憶制御部1320は、ネットワーク250を介して独立した装置として接続されている。かかる記憶制御部1343または1320は、ソフトウェアで実現されても、ワンチップのプロセッサで実現されてもよい。
本実施形態によれば、第2乃至第4実施形態のようにホストコンピュータによる処理に限定されず、一時的に保存が必要なデータに対して、一時保存部における安定した格納先領域の確保を実現することができる。
[第6実施形態]
次に本発明の第6実施形態に係る記憶制御装置を含む情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態乃至第5実施形態と比べると、一時保存部が記憶媒体と独立してネットワークに接続される点で異なる。その他の構成および動作は、第2実施形態から第5実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
《情報処理システム》
図14は、本実施形態に係る記憶制御装置を含む情報処理システム1400の構成を示すブロック図である。なお、図14において、図2、図12または図13と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
図14においては、一時保存部1430がネットワーク250を介して独立した装置として接続されている。
本実施形態によれば、一時保存部へのアクセスを記憶媒体のアクセスと分離できるので、記憶媒体への処理に依存せず、一時的に保存が必要なデータに対して、一時保存部におけるより安定した格納先領域の確保を実現することができる。
[他の実施形態]
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する記憶制御プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。

Claims (13)

  1. 一時保存部に格納されるデータの格納先領域の確保を維持するか否かを判定する領域維持判定手段と、
    前記データの格納先領域の確保を維持すると判定された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返し手段と、
    を備える記憶制御装置。
  2. 前記所定タイミングは、前記一時保存部を介して格納された総データ量が所定量増加したタイミングである、請求項1に記載の記憶制御装置。
  3. 確保を維持すべき格納先領域と、前記格納先領域に対する前記データの格納処理を行なった時の総データ量とを対応付けて記憶する格納先記憶手段をさらに備え、
    前記繰り返し手段は、現在の総データ量と前記データの格納処理を行なった時の総データ量との差が前記所定量になったか否かを判定する総データ量判定手段を有し、前記総データ量判定手段が前記総データ量の差が前記所定量になったと判定したタイミングで、前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を行なう、請求項2に記載の記憶制御装置。
  4. 前記所定量は、前記一時保存部の容量、または、前記一時保存部においてWriteデータの保存に使用可能な容量を使用する、請求項2または3に記載の記憶制御装置。
  5. 前記Writeデータの保存に使用可能な容量は、前記一時保存部の容量より少ない所定の容量、または、前記Writeデータへのアクセス速度が遅くなることが検出された容量を含む、請求項4に記載の記憶制御装置。
  6. 前記繰り返し手段は、前記差が小さい順に前記格納先領域をソートし、前記差が小さい順に前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を行なう、請求項3乃至5のいずれか1項に記載の記憶制御装置。
  7. 前記一時保存部に格納されるデータの格納先領域の確保を維持する指示を受け付ける受付手段をさらに備え、
    前記領域維持判定手段は、前記受付手段がデータの格納先領域の確保を維持する指示を受け付けると、確保を維持すべき格納先領域と前記格納先領域に対する前記データの格納処理を行なった時の総データ量とを対応付けて前記格納先記憶手段に登録し、外部装置から前記格納先記憶手段に登録された前記格納先領域にWrite要求および削除要求がある場合、前記格納先領域に対応する前記総データ量を現在の総データ量に更新する、請求項3乃至6のいずれか1項に記載の記憶制御装置。
  8. 前記受付手段は、データの格納先領域の確保の維持を解除する指示を受け付け、
    前記領域維持判定手段は、前記受付手段がデータの格納先領域の確保の維持を解除する指示を受け付けると、前記格納先記憶手段の登録を削除する、請求項7に記載の記憶制御装置。
  9. 一時保存部に格納されるデータの格納先領域の確保を維持するか否かを判定する領域維持判定ステップと、
    前記データの格納先領域の確保を維持すると判定された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返しステップと、
    を含む記憶制御方法。
  10. 一時保存部に格納されるデータの格納先領域の確保を維持するか否かを判定する領域維持判定ステップと、
    前記データの格納先領域の確保を維持すると判定された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返しステップと、
    をコンピュータに実行させる記憶制御プログラム。
  11. 記憶媒体と、
    前記記憶媒体へのデータの格納先領域が確保された一時保存部と、
    前記一時保存部において、前記データの格納先領域の確保を維持するよう指示する指示手段と、
    前記データの格納先領域の確保を維持するよう指示された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返し手段と、
    を備える情報処理システム。
  12. 前記指示手段は、ファイルの管理情報を含むメタデータ、または、データ処理の処理経過を保持するジャーナルを含むデータの格納先領域の確保を維持するよう指示する、請求項11に記載の情報処理システム。
  13. 記憶媒体へのデータの格納先領域が確保された一時保存部において、ファイルの管理情報を含むメタデータ、または、データ処理の処理経過を保持するジャーナルを含むデータの格納先領域の確保を維持するよう指示する指示ステップと、
    前記データの格納先領域の確保を維持するよう指示された場合、前記格納先領域への前記データの格納処理の有無に関わらず、所定タイミングで前記データの前記格納先領域への上書きの指示、または、ダミーデータの前記格納先領域への格納の指示を繰り返す繰り返しステップと、
    を含む情報処理方法。
JP2016128485A 2016-06-29 2016-06-29 情報処理システム、情報処理方法、記憶制御装置、記憶制御方法および記憶制御プログラム Pending JP2018005371A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016128485A JP2018005371A (ja) 2016-06-29 2016-06-29 情報処理システム、情報処理方法、記憶制御装置、記憶制御方法および記憶制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016128485A JP2018005371A (ja) 2016-06-29 2016-06-29 情報処理システム、情報処理方法、記憶制御装置、記憶制御方法および記憶制御プログラム

Publications (1)

Publication Number Publication Date
JP2018005371A true JP2018005371A (ja) 2018-01-11

Family

ID=60949348

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016128485A Pending JP2018005371A (ja) 2016-06-29 2016-06-29 情報処理システム、情報処理方法、記憶制御装置、記憶制御方法および記憶制御プログラム

Country Status (1)

Country Link
JP (1) JP2018005371A (ja)

Similar Documents

Publication Publication Date Title
US9547591B1 (en) System and method for cache management
EP3673377B1 (en) Logical to physical mapping
KR101790913B1 (ko) 플래시 메모리에 저장된 데이터의 추론적 프리페칭
US9507732B1 (en) System and method for cache management
US20190073296A1 (en) Systems and Methods for Persistent Address Space Management
US9996542B2 (en) Cache management in a computerized system
US10102117B2 (en) Systems and methods for cache and storage device coordination
US9251052B2 (en) Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
JP6691669B2 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
US9053038B2 (en) Method and apparatus for efficient read cache operation
US9645739B2 (en) Host-managed non-volatile memory
US20100235568A1 (en) Storage device using non-volatile memory
KR102434170B1 (ko) 하이브리드 메모리 시스템
KR102443600B1 (ko) 하이브리드 메모리 시스템
JP6746747B2 (ja) 記憶システム
JP6171084B2 (ja) ストレージシステム
JP2021149374A (ja) データ処理装置
WO2016002325A1 (ja) 情報処理システム、情報処理方法、記憶制御装置およびその制御方法と制御プログラム
JP2018106573A (ja) ストレージ制御装置及び制御プログラム
US9384135B2 (en) System and method of caching hinted data
JP2018005371A (ja) 情報処理システム、情報処理方法、記憶制御装置、記憶制御方法および記憶制御プログラム
JP6668785B2 (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
KR101974731B1 (ko) 플래시 스토리지 장치 및 플래시 스토리지 장치에 데이터를 기록하는 방법
JP4724253B2 (ja) データ記憶システムおよびキャッシュデータの一貫性保証方法
KR101661418B1 (ko) 컴퓨팅 장치의 데이터 출력방법 및 이를 위한 컴퓨팅 장치