(57)【要約】【課題】  キャッシュメモリから記憶装置へのデータの追い出しの回数や、記憶装置からキャッシュメモリへのデータの読み込みの回数を、減少させることができるストレージシステム、キャッシュ制御装置、キャッシュ制御方法を提供する。【解決手段】  記憶装置１１と、データのデータ構成とキャッシュメモリによるデータの保持状況とを示す制御情報を記憶するキャッシュメモリ１２１ｂと、制御情報に基づいてキャッシュメモリに保持されているデータから記憶装置１１に書き込むデータの候補である候補データを選択し、制御情報に基づいて、候補データと関連するデータをキャッシュメモリ１２１ｂが保持しているかどうかを判断し、判断に基づいてキャッシュメモリ１２１ｂに保持されているデータから記憶装置１１に書き込むデータを選択するＣＰＵ１２１ａとを有する。【選択図】図１
2011044056.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶装置と、
前記データを保持するキャッシュメモリと、
前記データのデータ構成を示すデータ構成情報と、前記キャッシュメモリによる前記データの保持状況を示す状況情報とを記憶する情報記憶部と、
前記状況情報に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータの候補である候補データを選択する候補データ選択部と、
前記データ構成情報に基づいて、前記候補データと関連するデータを前記キャッシュメモリが保持しているかどうかを判断する第１判断部と、
前記第１判断部による判断に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータを選択する書き込みデータ選択部と
を備えるストレージシステム。
【請求項２】
前記ストレージシステムの上位装置より予め通知された量のデータを受信した場合、該データに対して識別子を設定し、該識別子を前記上位装置へ応答する応答部を更に備える請求項１に記載のストレージシステム。
【請求項３】
前記データ構成情報は、前記識別子毎にデータ構成を示すことを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記第１判断部は、前記候補データと同一の識別子を持つデータを前記キャッシュメモリが保持しているか否かを判断することを特徴とする請求項３に記載のストレージシステム。
【請求項５】
前記データ構成情報は、前記データが前記記憶装置において分散されて記憶されているか否かを示し、
前記データ構成情報に基づいて、前記上位装置により要求された要求データが前記記憶装置において分散されて記憶されているか否かを判断する第２判断部と、
前記第２判断部により前記要求データが前記記憶装置において分散されて記憶されていると判断された場合、前記要求データとして分散されて記憶されたデータのそれぞれを、前記記憶装置から前記キャッシュメモリへ読み込むデータとして選択する読み込みデータ選択部とを更に備える請求項３に記載のストレージシステム。
【請求項６】
記憶装置に記憶されるデータを保持するキャッシュメモリと、
前記データのデータ構成を示すデータ構成情報と、前記キャッシュメモリによる前記データの保持状況を示す状況情報とを記憶する情報記憶部と、
前記状況情報に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータの候補である候補データを選択する候補データ選択部と、
前記データ構成情報に基づいて、前記候補データと関連するデータを前記キャッシュメモリが保持しているかどうかを判断する第１判断部と、
前記第１判断部による判断に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータを選択する書き込みデータ選択部と
を備えるキャッシュ制御装置。
【請求項７】
前記キャッシュ制御装置の上位装置より予め通知された量のデータを受信した場合、該データに対して識別子を設定し、該識別子を前記上位装置へ応答する応答部を更に備える請求項６に記載のキャッシュ制御装置。
【請求項８】
前記データ構成情報は、前記識別子毎にデータ構成を示すことを特徴とする請求項７に記載のキャッシュ制御装置。
【請求項９】
前記第１判断部は、前記候補データと同一の識別子を持つデータを前記キャッシュメモリが保持しているか否かを判断することを特徴とする請求項８に記載のキャッシュ制御装置。
【請求項１０】
記憶装置に記憶されるデータをキャッシュメモリに保持する制御装置のキャッシュ制御方法であって、
前記キャッシュメモリによる前記データの保持状況を示す状況情報に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータの候補である候補データを選択し、前記データのデータ構成を示すデータ構成情報に基づいて、前記候補データと関連するデータを前記キャッシュメモリが保持しているかどうかを判断し、該判断に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータを選択することを特徴とするキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される技術は、ストレージに適用されるキャッシュを制御する技術に関する。
【背景技術】
【０００２】
従来、ＡＮＳＩ（Ａｍｅｒｉｃａｎ  Ｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｓ  Ｉｎｓｔｉｔｕｔｅ）  Ｔ１０で規格化されているストレージシステムとして、オブジェクトベースストレージシステムが知られている。また、オブジェクトベースストレージシステムとデータの管理単位が異なるストレージシステムとして、ブロックベースストレージシステムが知られている。以下、ブロックベースストレージシステム、及びオブジェクトベースストレージシステムの概要について説明する。図７は、ブロックベースストレージシステムとオブジェクトベースストレージシステムの概要を示す。
【０００３】
図７に示すように、オブジェクトベースストレージシステム８において、ユーザデータは複数のブロックを含むオブジェクト単位で扱われ、上位装置とはオブジェクト単位でデータの送受がなされる。一方、ブロックベースストレージシステム７において、ユーザデータは、ブロック単位で扱われる。また、ブロックベースストレージシステム７は、先読み込み（Ｐｒｅｆｅｔｃｈ）機能を有する。この先読み込み機能は、上位装置からアクセスされるブロックの連続性を検出し、記憶装置から読み出したブロックの続きのブロックを予めキャッシュに読み込むことによって、アクセス性能を向上させる機能である。以下、この先読み込み機能について説明する。図８は、先読み込み機能によるブロックの先読み込みの一例を示す。
【０００４】
図８に示すように、上位装置９１がアクセスすべきデータがＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）００００１０００−００００１０２９であるとする。この場合、ブロックベースストレージシステム７において記憶装置９３を制御するストレージ制御装置９２は、上位装置９１よりＬＢＡ００００１０００から１０ブロックの読み出し要求を受け付ける。次に、ストレージ制御装置９２は、読み出し要求を受け付けたブロックを記憶装置９３からキャッシュメモリ９２１に転送する。この際、ストレージ制御装置９２は、アクセスすべきブロックの連続性を検出し、以降のブロックとして、ＬＢＡ０００１０１０から２０ブロックをキャッシュメモリ９２１上に読み込む。次に、上位装置９１よりＬＢＡ００００１０１０から１０ブロックの読み出し要求を受け付けた場合、ストレージ制御装置９２は、キャッシュメモリ９２１上に存在するデータを上位装置９１に転送する。
【０００５】
このような先読み込み機能によれば、アクセス対象のデータが連続するブロックで構成されている場合、また、ボリューム全体をリードする場合、上位装置９１はキャッシュメモリ９２１上に存在するデータにアクセスすることができる。これにより、ストレージシステムにおいて、上位装置の読み出し要求に対するデータの応答速度が向上する。
【０００６】
また、ブロックベースストレージシステム７において、ストレージ制御装置９２は、上位装置９１から書き込み要求を受けると、書き込みデータをキャッシュメモリ９２１にキャッシュする。この際、キャッシュメモリ９２１は記憶装置９３に比べて容量が小さいため、ストレージ制御装置９２は、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）やＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）などのキャッシュデータを追い出すためのアルゴリズムを用いる。以下、キャッシュデータ追い出しアルゴリズムの概要について、ＬＲＵを例として説明する。図９は、ＬＲＵの概要を示す。
【０００７】
図９に示すように、書き込みデータとして、キャッシュメモリにＬＢＡ００００１０００−００００１０４９が新たにエントリされるとする。ストレージ制御装置９２は、キャッシュメモリがフル状態か否かを監視しており、キャッシュメモリ９２１がフル状態である場合、読み込まれてから経過した時間が最も長いキャッシュブロック２がキャッシュメモリ９２１から追い出される。
【０００８】
このように、ストレージ制御装置９２は、キャッシュデータ追い出しアルゴリズムによって、最近最も使われなかったデータをキャッシュメモリ９２１から追い出すことによって、キャッシュメモリ９２１に空領域を確保する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平０９−１４６８３４号公報
【特許文献２】特開２００２−９１８１１号公報
【特許文献３】特開平０６−２０８５０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述したアルゴリズムによりキャッシュメモリ９２１から追い出したデータが上位装置９１により更新される場合が存在する。この場合、ストレージ制御装置９２は、キャッシュメモリ９２１から追い出したデータを、再度、記憶装置９３からキャッシュメモリ９２１に読み込まなくてはならない。この問題は、ストレージ制御装置９２が、上位装置９１により扱われるデータの構成を把握できないことに起因する。
【００１１】
また、オブジェクトベースストレージシステム８は、上位装置９１により扱われるデータをオブジェクトとして管理するが、キャッシュ制御はブロック単位で実行される。このため、オブジェクトベースストレージシステム８においても、ブロックベースストレージシステム７と同様の問題が存在する。
【００１２】
つまり、前述のストレージシステムにおいては、キャッシュメモリ９２１から記憶装置へ追い出したデータを、再び記憶装置９３からキャッシュメモリ９２１へ読み込むことが発生する。
【００１３】
本発明は上述した問題点を解決するためになされたものであり、キャッシュメモリから記憶装置へのデータの追い出しの回数や、記憶装置からキャッシュメモリへのデータの読み込みの回数を、減少させるストレージシステム、キャッシュ制御装置、キャッシュ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
ストレージシステムは、データを記憶する記憶装置と、前記データを保持するキャッシュメモリと、前記データのデータ構成を示すデータ構成情報と、前記キャッシュメモリによる前記データの保持状況を示す状況情報とを記憶する情報記憶部と、前記状況情報に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータの候補である候補データを選択する候補データ選択部と、前記データ構成情報に基づいて、前記候補データと関連するデータを前記キャッシュメモリが保持しているかどうかを判断する第１判断部と、前記第１判断部による判断に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータを選択する書き込みデータ選択部とを備える。
【発明の効果】
【００１５】
この出願に開示された技術は、キャッシュメモリから記憶装置へのデータの追い出しの回数や、記憶装置からキャッシュメモリへのデータの読み込みの回数を、減少させることができる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に係るストレージシステムのハードウェア構成を示すブロック図である。
【図２】制御情報を示す図である。
【図３】書き込み要求に対するＣＭの動作を示すフローチャートである。
【図４】キャッシュデータを示す図である。
【図５】キャッシュ処理の動作を示すフローチャートである。
【図６】読み出し要求に対するＣＭの動作を示すフローチャートである。
【図７】ブロックベースストレージシステムとオブジェクトベースストレージシステムの概要を示す図である。
【図８】先読み込み機能によるブロックの先読みの一例を示す図である。
【図９】ＬＲＵの概要を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１８】
まず、本実施の形態に係るストレージシステムのハードウェア構成について説明する。図１は、本実施の形態に係るストレージシステムのハードウェア構成を示す。
【００１９】
図１に示すように、本実施の形態に係るストレージシステム１は、ユーザデータをオブジェクト単位で扱うオブジェクトベースストレージシステムであって、記憶装置１１とストレージ制御装置１２とを有する。記憶装置１１は、複数のＤＥ（Ｄｉｓｋ  Ｅｎｃｌｏｓｕｒｅ）１１１を有する。このＤＥ１１１は、複数のディスクドライブを有する筐体である。また、ストレージ制御装置１２は、上位装置１３による要求に応じて、記憶装置１１を制御する。また、ストレージ制御装置１２は、複数のＣＭ（Ｃｏｎｔｒｏｌ  Ｍｏｄｕｌｅ）１２１、複数のＦＲＴ（Ｆｒｏｎｔ−ｅｎｄ  Ｒｏｕｔｅｒ）１２４、複数のＢＲＴ（Ｂａｃｋ−ｅｎｄ  Ｒｏｕｔｅｒ）１２５を有する。なお、ストレージシステム１は、オブジェクトベースストレージシステムに限らず、上位装置１３において扱われるデータのデータ構成を把握可能なストレージシステムであれば良い。
【００２０】
ＣＭ１２１（キャッシュ制御装置）は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２１ａ、キャッシュメモリ１２１ｂ、複数のＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）１２２、複数のＤＩ（Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）１２３を有し、記憶装置１１に対するキャッシュ制御、ＲＡＩＤ制御、リソース管理を実行する。ＣＡ１２２は、ＣＭ１２１が上位装置１３とデータを送受するためのインターフェイスであり、本実施の形態においては、１つの上位装置１３との接続に対して、複数用いられる。ＤＩ１２３は、ＣＭ１２１が記憶装置１１とデータを送受するためのインターフェイスである。ＣＰＵ１２１ａは、キャッシュメモリ１２１ｂ、ＣＡ１２２、ＤＩ１２３の制御を行う。
【００２１】
ＦＲＴ１２４は、複数のＣＭ１２１間の接続を中継する。ＢＲＴ１２５は、複数のＣＭ１２１と複数のＤＥ１１１との接続を中継する。なお、ＦＲＴ１２４及びＢＲＴ１２５は冗長化されており、実行系及び待機系はそれぞれ異なる経路によって中継対象と接続されているものとする。
【００２２】
次に、制御情報について説明する。図２は、制御情報を示す。
【００２３】
図２に示すように、制御情報は、Ｏｂｊｅｃｔ  ＩＤ（識別子）、Ｖａｌｉｄ／Ｉｎｖａｌｉｄ、分散数（データ構成情報）、キャッシュ状態（状況情報）、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ、データ構成情報）を対応付ける。Ｏｂｊｅｃｔ  ＩＤは、個々のオブジェクトに対する固有の識別子である。Ｖａｌｉｄ／Ｉｎｖａｌｉｄは、Ｏｂｊｅｃｔ  ＩＤにより示されるオブジェクトが有効であるか否か、つまりＯｂｊｅｃｔ  ＩＤに対応するオブジェクトが存在するかどうかを示す。Ｖａｌｉｄ／Ｉｎｖａｌｉｄにおいて、“０”は無効であることを示し、“１”は有効であることを示す。また、分散数は、オブジェクトを構成するブロックが連続する区間の数を示す。また、キャッシュ状態は、オブジェクトがキャッシュメモリ１２１ｂにキャッシュされているか否かを示す。キャッシュ状態において、“ＨＩＴ”はキャッシュされていることを示し、“ＭＩＳＳ”はキャッシュされていないことを示す。なお、本実施の形態において、オブジェクトを構成するブロック全体がキャッシュされていれば、オブジェクトがキャッシュされているものとする。また、ＬＢＡは、オブジェクトを構成するブロックのアドレスを示す。なお、この制御情報は、キャッシュメモリ１２１ｂまたは記憶装置１１に記憶されるものとし、キャッシュメモリ１２１ｂまたは記憶装置１１は、データ構成情報と、状況情報とを記憶する情報記憶部に相当する。
【００２４】
次に、書き込み要求に対するＣＭの動作について説明する。図３は、書き込み要求に対するＣＭの動作を示す。
【００２５】
図３に示すように、ＣＰＵ１２１ａは、上位装置１３からデータの書き込み要求を受け付けると（Ｓ１０１）、書き込み要求を受けたデータが新規オブジェクトであるかどうかを判断する（Ｓ１０２）。
【００２６】
データが新規オブジェクトである場合（Ｓ１０２，ＹＥＳ）、ＣＰＵ１２１ａは、記憶装置１１の記憶領域に対して、書き込み要求により指定される領域分の空き領域を確保する（Ｓ１０３）。記憶装置１１は各ブロックの記録状態を示すブロック情報を保持しており、ＣＰＵ１２１ａは、このブロック情報を参照することによって空き領域を確保するものとする。なお、このブロック情報は、ＣＭ内に保持されても良い。
【００２７】
次に、ＣＰＵ１２１ａは、書き込みを要求した上位装置１３に対して、書き込みデータに割り当てたＯｂｊｅｃｔ  ＩＤを決定し、応答する（Ｓ１０４）。ここで、ＣＰＵ１２１ａは、制御情報におけるＶａｌｉｄ／Ｉｎｖａｌｉｄを参照することにより空きＯｂｊｅｃｔ  ＩＤを検出し、書き込みデータに割り当てるＯｂｊｅｃｔ  ＩＤとして決定する。
【００２８】
Ｏｂｊｅｃｔ  ＩＤの応答後、ＣＰＵ１２１ａは、後述するキャッシュ処理を実行する（Ｓ１０５）。次に、ＣＰＵ１２１ａは、書き込み要求に基づいて、割り当てたＯｂｊｅｃｔ  ＩＤに対する制御情報を設定する（Ｓ１０６）。ここで、ＣＰＵ１２１ａは、Ｖａｌｉｄ／Ｉｎｖａｌｉｄを“１”、キャッシュ状態を“ＨＩＴ”に設定する。また、ＣＰＵ１２１ａは、書き込み要求に対して確保した空き領域のブロックナンバーと、ブロックの分散数を制御情報に記録する。また、キャッシュ処理によって、全てのブロックがキャッシュメモリ１２１ｂから追い出されたオブジェクトがある場合、ＣＰＵ１２１ａは、そのオブジェクトのキャッシュ状態を“ＭＩＳＳ”に設定する。
【００２９】
ステップＳ１０２の判断において、データが新規オブジェクトではない場合（Ｓ１０２，ＮＯ）、ＣＰＵ１２１ａはキャッシュ処理を実行する（Ｓ１０５）。なお、ここでデータが新規オブジェクトではない場合とは、既存のオブジェクトが更新される場合を示す。この際、上位装置１３によりＯｂｊｅｃｔ  ＩＤが指定されるものとする。なお、図３において、例えば、ステップＳ１０４を実行する機能は応答部に相当する。
【００３０】
次に、キャッシュデータについて説明する。図４は、キャッシュデータを示す。
【００３１】
キャッシュデータは、キャッシュメモリ１２１ｂへの記録時間に対して、降順にリストされる複数のキャッシュブロックを含む。なお、本実施の形態において、１キャッシュブロックは５０ブロックを有するものとするが、１キャッシュブロックのブロック数はこれに限定されない。また、図４において、キャッシュブロックナンバーはキャッシュブロック単位に割り振られた番号を示し、ＬＢＡは対応するキャッシュブロックに含まれるブロックを示す。なお、図４における“制御情報に基づく要素”は制御情報が加味された説明上の情報であり、実際にキャッシュメモリ１２１ｂに記録されている情報ではない。
【００３２】
次に、キャッシュ処理の動作について説明する。図５はキャッシュ処理の動作を示す。なお、図５において、キャッシュブロックの選択回数をカウントするカウンタをｉとし、このｉは、初期状態において０に設定されているものとする。
【００３３】
図５に示すように、まず、ＣＰＵ１２１ａは、キャッシュメモリ１２１ｂのキャッシュ容量が所定の閾値以上かどうかを判断する（Ｓ２０１）。なお、ここで所定の閾値と比較されるキャッシュ容量は、キャッシュメモリ１２１ｂに記憶されているキャッシュブロックと、新たにキャッシュメモリ１２１ｂに記録されるキャッシュブロックとの合計を示す。
【００３４】
キャッシュ容量が所定の閾値以上である場合（Ｓ２０１，ＹＥＳ）、ＣＰＵ１２１ａは、ｉが予め設定された所定数以下かどうかを判断する（Ｓ２０２）。
【００３５】
ｉが所定数以下である場合（Ｓ２０２，ＹＥＳ）、ＣＰＵ１２１ａは、キャッシュ情報において最下列に記録されているキャッシュブロックを記憶装置１１に書き込む候補（候補データ）として選択する（Ｓ２０３）。次に、ＣＰＵ１２１ａは、制御情報を参照し、候補として選択されたキャッシュブロックが複数のオブジェクトを含むかどうかを判断する（Ｓ２０４）。
【００３６】
候補として選択されたキャッシュブロックが複数のオブジェクトを含む場合（Ｓ２０４，ＹＥＳ）、ＣＰＵ１２１ａは、制御情報に基づいて、候補として選択されたキャッシュブロックに含まれるオブジェクトが複数のキャッシュブロックに含まれるかどうかを判断する（Ｓ２０５）。ここで、ＣＰＵ１２１ａは、候補として選択されたキャッシュブロックに含まれるオブジェクトと同様のＯｂｊｅｃｔ  ＩＤが他のキャッシュブロックに含まれるかどうかを判断する。例えば、図４に示したキャッシュデータにおいては、Ｏｂｊｅｃｔ  ＩＤが１，４であるオブジェクトが複数のキャッシュブロックに含まれる。
【００３７】
オブジェクトが複数のキャッシュブロックに含まれない場合（Ｓ２０５，ＮＯ）、ＣＰＵ１２１ａは、候補として選択したキャッシュブロックを記憶装置１１に書き込むブロック（書き込みデータ）として選択し、キャッシュメモリ１２１ｂから追い出す（Ｓ２０６）。ここで、候補として選択したキャッシュブロックは記憶装置１１に書き込まれ、キャッシュメモリ１２１ｂから消去される。次に、ＣＰＵ１２１ａは、新しいデータをキャッシュする（Ｓ２０７）。
【００３８】
一方、オブジェクトが複数のキャッシュブロックに含まれる場合（Ｓ２０５，ＹＥＳ）、ＣＰＵ１２１ａは、選択したキャッシュブロックを選択肢から除外し（Ｓ２０８）、ｉに１を加算する（Ｓ２０９）。次に、ＣＰＵ１２１ａは、再度、ｉが所定数以下かどうかを判断する（Ｓ２０２）。
【００３９】
また、ステップＳ２０４において、キャッシュブロックが複数のオブジェクトを含まない場合（Ｓ２０４，ＮＯ）、ＣＰＵ１２１ａは、候補として選択したキャッシュブロックをキャッシュメモリ１２１ｂから追い出す（Ｓ２０６）。
【００４０】
また、ステップＳ２０２において、ｉが所定数以下ではない場合（Ｓ２０２，ＮＯ）、ＣＰＵ１２１ａは、含まれるオブジェクト数が最も少ないキャッシュブロックを選択する（Ｓ２１０）。次に、ＣＰＵ１２１ａは、選択したキャッシュブロックをキャッシュメモリ１２１ｂから追い出す（Ｓ２０６）。
【００４１】
また、ステップＳ２０１において、キャッシュ容量が所定の閾値未満である場合（Ｓ２０１，ＮＯ）、ＣＰＵ１２１ａは、新しいデータをキャッシュする（Ｓ２０７）。
【００４２】
上述したように、オブジェクトのような、上位装置１３より要求されるデータの単位を考慮したキャッシュデータの追い出しを行うことにより、キャッシュ制御における処理効率を向上させることができる。なお、図５において、例えば、ステップＳ２０３を実行する機能は候補データ選択部に相当する。また、ステップＳ２０４、Ｓ２０５を実行する機能は第１判断部に相当する。また、ステップＳ２０６を実行する機能は書き込みデータ選択部に相当する。
【００４３】
次に、読み出し要求に対するＣＭの動作について説明する。図６は、読み出し要求に対するＣＭの動作を示す。
【００４４】
図６に示すように、ＣＰＵ１２１ａは、上位装置１３からデータの読み出し要求を受け付けると（Ｓ３０１）、制御情報を参照し、読み出しの対象であるオブジェクト（以下、対象オブジェクト）がキャッシュミスであるかどうかを判断する（Ｓ３０２）。
【００４５】
対象オブジェクトがキャッシュミスである場合（Ｓ３０２，ＹＥＳ）、ＣＰＵ１２１ａは、制御情報を参照し、その分散数が１より大きいかどうか、つまり、対象オブジェクトが複数のブロックに分散しているかどうかを判断する（Ｓ３０３）。
【００４６】
対象オブジェクトの分散数が１より大きい場合（Ｓ３０３，ＹＥＳ）、ＣＰＵ１２１ａは、分散しているブロックのスケジュールを実行する（Ｓ３０４）。具体的には、ＣＰＵ１２１ａは、分散しているブロックのそれぞれを、記憶装置１１からキャッシュメモリ１２１ｂへ読み込むデータとして選択する。また、ＣＰＵ１２１ａは、分散しているブロックのうち、キャッシュメモリ１２１ｂにキャッシュされていないデータについて、空きキャッシュブロックを検索して割り当てる。
【００４７】
次に、ＣＰＵ１２１ａは、記憶装置１１からキャッシュメモリ１２１ｂへ対象オブジェクトのデータを読み込む（Ｓ３０５）。ここで、ＣＰＵ１２１ａは、読み出し要求を受けたデータの構成に基づいて、データを先読みし、キャッシュメモリ１２１ｂにキャッシュする。また、キャッシュしたオブジェクトについて制御情報を更新する。次に、ＣＰＵ１２１ａは、キャッシュしたデータを上位装置１３へ転送する（Ｓ３０６）。
【００４８】
一方、対象オブジェクトの分散数が１である場合（Ｓ３０３，ＮＯ）、ＣＰＵ１２１ａは、記憶装置１１からキャッシュメモリ１２１ｂへ対象オブジェクトのデータを読み込む（Ｓ３０５）。次に、ＣＰＵ１２１ａは、キャッシュされた対象オブジェクトのデータを上位装置１３へ転送する（Ｓ３０６）。
【００４９】
また、ステップＳ３０２において、対象オブジェクトがキャッシュミスではない場合（Ｓ３０２，ＮＯ）、ＣＰＵ１２１ａは、キャッシュされた対象オブジェクトのデータを上位装置１３へ転送する（Ｓ３０６）。
【００５０】
なお、図６において、例えば、ステップＳ３０３を実行する機能は第２判断部に相当する。また、ステップＳ３０４を実行する機能は読み込みデータ選択部に相当する。
【００５１】
このように、ストレージシステム１によれば、キャッシュされていないオブジェクトが分散されて記憶装置１１に記憶されている場合、上位装置１３に扱われるデータの構成に基づいて、キャッシュ制御が行われる。これにより、必要なデータのみがキャッシュメモリに展開、または先読みされ、キャッシュメモリの使用効率及びデータ転送効率が向上する。
【００５２】
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
（付記１）  データを記憶する記憶装置と、
前記データを保持するキャッシュメモリと、
前記データのデータ構成を示すデータ構成情報と、前記キャッシュメモリによる前記データの保持状況を示す状況情報とを記憶する情報記憶部と、
前記状況情報に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータの候補である候補データを選択する候補データ選択部と、
前記データ構成情報に基づいて、前記候補データと関連するデータを前記キャッシュメモリが保持しているかどうかを判断する第１判断部と、
前記第１判断部による判断に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータを選択する書き込みデータ選択部と
を備えるストレージシステム。
（付記２）  前記ストレージシステムの上位装置より予め通知された量のデータを受信した場合、該データに対して識別子を設定し、該識別子を前記上位装置へ応答する応答部を更に備える付記１に記載のストレージシステム。
（付記３）  前記データ構成情報は、前記識別子毎にデータ構成を示すことを特徴とする付記２に記載のストレージシステム。
（付記４）  前記第１判断部は、前記候補データと同一の識別子を持つデータを前記キャッシュメモリが保持しているか否かを判断することを特徴とする付記３に記載のストレージシステム。
（付記５）  前記データ構成情報は、前記データが前記記憶装置において分散されて記憶されているか否かを示し、
前記データ構成情報に基づいて、前記上位装置により要求された要求データが前記記憶装置において分散されて記憶されているか否かを判断する第２判断部と、
前記第２判断部により前記要求データが前記記憶装置において分散されて記憶されていると判断された場合、前記要求データとして分散されて記憶されたデータのそれぞれを、前記記憶装置から前記キャッシュメモリへ読み込むデータとして選択する読み込みデータ選択部とを更に備える付記３に記載のストレージシステム。
（付記６）  前記書き込みデータ選択部は、前記第１判断部により前記候補データと同一の識別子を持つデータを前記キャッシュメモリが保持していないと判断された場合、前記候補データを前記記憶装置に書き込むデータとして選択することを特徴とする付記４に記載のストレージシステム。
（付記７）  記憶装置に記憶されるデータを保持するキャッシュメモリと、
前記データのデータ構成を示すデータ構成情報と、前記キャッシュメモリによる前記データの保持状況を示す状況情報とを記憶する情報記憶部と、
前記状況情報に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータの候補である候補データを選択する候補データ選択部と、
前記データ構成情報に基づいて、前記候補データと関連するデータを前記キャッシュメモリが保持しているかどうかを判断する第１判断部と、
前記第１判断部による判断に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータを選択する書き込みデータ選択部と
を備えるキャッシュ制御装置。
（付記８）  前記キャッシュ制御装置の上位装置より予め通知された量のデータを受信した場合、該データに対して識別子を設定し、該識別子を前記上位装置へ応答する応答部を更に備える付記７に記載のキャッシュ制御装置。
（付記９）  前記データ構成情報は、前記識別子毎にデータ構成を示すことを特徴とする付記８に記載のキャッシュ制御装置。
（付記１０）  前記第１判断部は、前記候補データと同一の識別子を持つデータを前記キャッシュメモリが保持しているか否かを判断することを特徴とする付記９に記載のキャッシュ制御装置。
（付記１１）  前記データ構成情報は、前記データが前記記憶装置において分散されて記憶されているか否かを示し、
前記データ構成情報に基づいて、前記上位装置により要求された要求データが前記記憶装置において分散されて記憶されているか否かを判断する第２判断部と、
前記第２判断部により前記要求データが前記記憶装置において分散されて記憶されていると判断された場合、前記要求データとして分散されて記憶されたデータのそれぞれを、前記記憶装置から前記キャッシュメモリへ読み込むデータとして選択する読み込みデータ選択部とを更に備える付記９に記載のキャッシュ制御装置。
（付記１２）  前記書き込みデータ選択部は、前記第１判断部により前記候補データと同一の識別子を持つデータを前記キャッシュメモリが保持していないと判断された場合、前記候補データを前記記憶装置に書き込むデータとして選択することを特徴とする付記１０に記載のキャッシュ制御装置。
（付記１３）  記憶装置に記憶されるデータをキャッシュメモリに保持する制御装置のキャッシュ制御方法であって、
前記キャッシュメモリによる前記データの保持状況を示す状況情報に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータの候補である候補データを選択し、前記データのデータ構成を示すデータ構成情報に基づいて、前記候補データと関連するデータを前記キャッシュメモリが保持しているかどうかを判断し、該判断に基づいて、前記キャッシュメモリに保持されているデータから前記記憶装置に書き込むデータを選択することを特徴とするキャッシュ制御方法。
（付記１４）  前記ストレージシステムの上位装置より予め通知された量のデータを受信した場合、該データに対して識別子を設定し、該識別子を前記上位装置へ応答することを特徴とする付記１３に記載のキャッシュ制御方法。
（付記１５）  前記データ構成情報は、前記識別子毎にデータ構成を示すことを特徴とする付記１４に記載のキャッシュ制御方法。
（付記１６）  前記候補データと関連するデータを前記キャッシュメモリが保持しているかどうかの判断は、前記候補データと同一の識別子を持つデータを前記キャッシュメモリが保持しているか否かの判断によりなされることを特徴とする付記１５に記載のキャッシュ制御方法。
（付記１７）  前記データ構成情報は、前記データが前記記憶装置において分散されて記憶されているか否かを示し、
前記データ構成情報に基づいて、前記上位装置により要求された要求データが前記記憶装置において分散されて記憶されていると判断した場合、前記要求データとして分散されて記憶されたデータのそれぞれを、前記記憶装置から前記キャッシュメモリへ読み込むデータとして選択することを特徴とする付記１５に記載のキャッシュ制御方法。
（付記１８）  前記書き込みデータの選択は、前記候補データと同一の識別子を持つデータを前記キャッシュメモリが保持していないと判断された場合になされることを特徴とする付記１６に記載のキャッシュ制御方法。
【符号の説明】
【００５３】
１  ストレージシステム、１１  記憶装置、１２  ストレージ制御装置、１１１  ＤＥ、１３  上位装置、１２１  ＣＭ、１２１ａ  ＣＰＵ、１２１ｂ  キャッシュメモリ、１２２  ＣＡ、１２３  ＤＩ、１２４  ＦＲＴ、１２５  ＢＲＴ。
【図１】
2011044056.tif 000003
【図２】
2011044056.tif 000004
【図３】
2011044056.tif 000005
【図４】
2011044056.tif 000006
【図５】
2011044056.tif 000007
【図６】
2011044056.tif 000008
【図７】
2011044056.tif 000009
【図８】
2011044056.tif 000010
【図９】
2011044056.tif 000011