(57)【要約】【課題】  キャッシュ制御における性能低下を軽減する。【解決手段】  第１のコントロール手段と、二次キャッシュ手段とを備え、第１のコントロール手段が、二次キャッシュ手段より高速に動作する一次キャッシュ手段と、二次キャッシュ手段より高速に動作する第１の管理情報キャッシュ手段とを備え、二次キャッシュ手段が、実データと、実データの管理情報を格納し、一次キャッシュ手段の二次キャッシュとして動作し、第１の管理情報キャッシュ手段が管理情報をキャッシュとして格納する。【選択図】      図５
2014067377.tif 000002
【特許請求の範囲】
【請求項１】
第１のコントロール手段と、二次キャッシュ手段とを備え、
前記第１のコントロール手段が、前記二次キャッシュ手段より高速に動作する一次キャッシュ手段と、前記二次キャッシュ手段より高速に動作する第１の管理情報キャッシュ手段とを含み、
前記二次キャッシュ手段が、実データと、前記実データの管理情報とを格納し、前記一次キャッシュ手段の二次キャッシュとして動作し、
前記第１の管理情報キャッシュ手段が前記管理情報をキャッシュとして格納するキャッシュ制御装置。
【請求項２】
前記第１のコントロール手段が、性能監視手段と使用頻度監視手段とを含み、
前記使用頻度監視手段が使用頻度の高い管理情報を抽出し、
前記性能監視手段が前記二次キャッシュ手段の性能低下を検出したとき、前記第１の管理情報キャッシュ手段が、性能低下した前記二次キャッシュ手段に格納されている前記使用頻度の高い管理情報をキャッシュとして格納する請求項１に記載のキャッシュ制御装置。
【請求項３】
第２のコントロール手段をさらに備え、
前記第２のコントロール手段が第２の管理情報キャッシュ手段を含み、
前記第１の管理情報キャッシュ手段が前記管理情報をキャッシュとして格納するとき、前記第２の管理情報キャッシュ手段が前記管理情報を格納することにより、前記第１の管理情報キャッシュ手段および前記第２の管理情報キャッシュ手段が、前記管理情報の二重化を行う請求項１または２に記載のキャッシュ制御装置。
【請求項４】
前記管理情報が、前記実データのどの部分が物理ディスクに書き戻し済みであり、どの部分が物理ディスクに未書き戻しであるかの情報を含む請求項１乃至３のいずれかに記載のキャッシュ制御装置。
【請求項５】
請求項１乃至４のいずれかに記載のキャッシュ制御装置と、物理ディスクとを備えたディスクアレイ装置。
【請求項６】
二次キャッシュ手段と物理ディスクに接続され、
前記二次キャッシュ手段より高速に動作する一次キャッシュ手段と、前記二次キャッシュ手段より高速に動作する管理情報キャッシュ手段とを備え、
前記一次キャッシュ手段が前記物理ディスクの一次キャッシュとして動作し、
前記二次キャッシュ手段が前記一次キャッシュ手段および前記物理ディスクの二次キャッシュとして動作し、
前記管理情報キャッシュ手段が、前記二次キャッシュ手段に格納される実データの管理情報をキャッシュとして格納するアレイコントローラ。
【請求項７】
一次キャッシュ手段の二次キャッシュとして動作する二次キャッシュ手段に、実データと、前記実データの管理情報とを格納し、
第１の管理情報キャッシュ手段に、前記管理情報をキャッシュとして格納するキャッシュ制御方法。
【請求項８】
使用頻度の高い管理情報を抽出し、
前記二次キャッシュ手段の性能が低下したとき、前記第１の管理情報キャッシュ手段に、性能低下した前記二次キャッシュ手段に格納されている前記使用頻度の高い管理情報をキャッシュとして格納する請求項７に記載のキャッシュ制御方法。
【請求項９】
前記第１の管理情報キャッシュ手段に前記管理情報をキャッシュとして格納するとき、第２の管理情報キャッシュ手段に前記管理情報を格納し、これにより前記第１の管理情報キャッシュ手段および前記第２の管理情報キャッシュ手段が、前記管理情報の二重化を行う請求項７または８に記載のキャッシュ制御方法。
【請求項１０】
前記管理情報が、前記実データのどの部分が物理ディスクに書き戻し済みであり、どの部分が物理ディスクに未書き戻しであるかの情報を含む請求項７乃至９のいずれかに記載のキャッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ制御技術に関し、特にキャッシュの管理情報をキャッシュ制御する技術に関する。
【背景技術】
【０００２】
昨今、磁気ディスク装置やディスクアレイ装置などのストレージ装置の多くは、性能向上などの観点から、キャッシュ制御機能を備えている。キャッシュ制御は、キャッシュメモリと呼ばれる高速なメモリ装置が、ホスト（ストレージ装置を使用するコンピュータ）からのストレージ装置に対するアクセス（読み込みおよび書き込み）に介在することで実現される。
【０００３】
また、高速だが容量単価が高いキャッシュメモリ（以降「一次キャッシュ」と称する）に加え、一次キャッシュより低速だが磁気ディスク装置よりは高速なメモリ装置を二次キャッシュとして備える構成も知られている。このような構成による二次キャッシュ制御は、一次キャッシュより容量単価が低く大容量な二次キャッシュを搭載することにより、性能をより向上することができる。
【０００４】
ディスクアレイ装置で用いられる二次キャッシュ制御においては、例えば、ホストが認識している論理ディスクにおける参照頻度が高い領域を二次キャッシュに格納することがある。この場合、ホストが低速な物理ディスクにアクセスする代わりに二次キャッシュにアクセスすることにより、読み込み性能を向上することができる（リードキャッシュ）。また、例えば、物理ディスクの書き込み速度を上回る量のデータを一時的に記憶するために二次キャッシュを使用することがある。この場合、ホストからの書き込みとは非同期に物理ディスクに書き込みを行うことにより、書き込み性能を向上することができる（ライトキャッシュ）。
【０００５】
二次キャッシュ制御において、ホストからのアクセスが二次キャッシュの特定の領域に集中することにより、全体のアクセス性能が低下することがある。このような問題点（あるいは類似の課題）を解決する技術が特許文献１〜３に記載されている。
【０００６】
特許文献１記載のディスクアレイ装置は、利用頻度の高いデータを複数のコントローラのキャッシュメモリに記憶することにより、コントローラの負荷を分散する。
【０００７】
特許文献２記載の情報処理装置は、複数のホストと記憶装置が同一ネットワークに接続されるシステムにおいて、各記憶装置のアクセス情報に基づき、アクセス効率が高い記憶領域へのデータの格納を行う。
【０００８】
特許文献３記載のストレージシステムは、複数の一次キャッシュと二次キャッシュを備え、キャッシュ使用量の適正化、高データ信頼性を実現する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００１−０５１８０９号公報
【特許文献２】特開２００４−０２１５５７号公報
【特許文献３】特開２００８−２１７５２７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
キャッシュメモリに記憶されるデータには、ホストからアクセスされるデータそのもの（実データ）だけでなく、キャッシュ制御における管理情報も含まれる。二次キャッシュ制御において、この管理情報にアクセスが集中することにより、全体のアクセス性能が低下することがある。しかしながら、上述の特許文献１〜３は、このような管理情報にアクセスが集中することによる問題に対処できない。
【００１１】
本発明の主たる目的は、上述した課題を解決するキャッシュ制御装置などを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成する本発明に係るキャッシュ制御装置は、
第１のコントロール手段と、二次キャッシュ手段とを備え、
第１のコントロール手段が、二次キャッシュ手段より高速に動作する一次キャッシュ手段と、二次キャッシュ手段より高速に動作する第１の管理情報キャッシュ手段とを備え、
二次キャッシュ手段が、実データと、実データの管理情報を格納し、一次キャッシュ手段の二次キャッシュとして動作し、
第１の管理情報キャッシュ手段が管理情報をキャッシュとして格納する。
【００１３】
また、上記目的を達成する本発明に係るディスクアレイ装置は、
上述のキャッシュ制御装置と、物理ディスクとを備える。
【００１４】
そして、上記目的を達成する本発明に係るアレイコントローラは、
二次キャッシュ手段と物理ディスクに接続され、
二次キャッシュ手段より高速に動作する一次キャッシュ手段と、二次キャッシュ手段より高速に動作する管理情報キャッシュ手段とを備え、
一次キャッシュ手段が物理ディスクの一次キャッシュとして動作し、
二次キャッシュ手段が一次キャッシュ手段および物理ディスクの二次キャッシュとして動作し、
管理情報キャッシュ手段が、二次キャッシュ手段に格納される実データの管理情報をキャッシュとして格納する。
【００１５】
さらに、上記目的を達成する本発明に係るキャッシュ制御方法は、
一次キャッシュ手段の二次キャッシュとして動作する二次キャッシュ手段に、実データと、実データの管理情報を格納し、
第１の管理情報キャッシュ手段に、管理情報をキャッシュとして格納する。
【発明の効果】
【００１６】
本発明に係るキャッシュ制御装置、ディスクアレイ装置、アレイコントローラおよびキャッシュ制御方法は、キャッシュ制御における性能低下を軽減する。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係るディスクアレイ装置の構成を説明する図である。
【図２】二次キャッシュ１３１の詳細な構成および、二次キャッシュに格納されるデータを説明する図である。
【図３】ディスクアレイ装置１００にデータが書き込まれる際の二次キャッシュ制御の例を説明する図である。
【図４】コントローラ１１０の詳細な構成を説明する図である。
【図５】二次キャッシュ１３１の管理情報に対するキャッシュ制御を説明する図である。
【図６】第２の実施形態における、二次キャッシュ１３１の管理情報に対するキャッシュ制御を説明する図である。
【図７】本発明の第３の実施形態に係るキャッシュ制御装置の構成を説明する図である。
【発明を実施するための形態】
【００１８】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１９】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るディスクアレイ装置の構成を説明する図である。本発明の第１の実施形態に係るディスクアレイ装置１００は、コントローラ１１０および１２０と、二次キャッシュ１３１および１３２と、物理ディスク部１４０とを備える。ホスト２００は、ディスクアレイ装置１００を使用するコンピュータである。ホスト２００は、ディスクアレイ装置１００を、論理ディスクＬＤ１，ＬＤ２，・・・，ＬＤｘからなるストレージ装置として認識している。
【００２０】
コントローラ１１０および１２０は、第１および第２のコントロール部と呼ばれることもある。
【００２１】
コントローラ１１０は、論理ディスクＬＤ１に対応するアレイコントローラである。また、コントローラ１２０は、論理ディスクＬＤ２に対応するアレイコントローラである。コントローラ１１０およびコントローラ１２０は、他の論理ディスクのアレイコントローラであることを兼ねていてもよい。コントローラ１１０は、一次キャッシュ１１１を備える。また、コントローラ１２０は、一次キャッシュ１２１を備える。
【００２２】
一次キャッシュ１１１および１２１は、二次キャッシュ１３１および１３２や、物理ディスク部１４０よりもアクセス速度が高速である記憶装置である。一次キャッシュ１１１は、論理ディスクＬＤ１に対応する一次キャッシュである。また、一次キャッシュ１２１は、論理ディスクＬＤ２に対応する一次キャッシュである。一次キャッシュ１１１および１２１は、ＤＲＡＭ(Dynamic Random Access Memory)やＳＲＡＭ(Static Random Access Memory)であってもよい。以降の説明においては、一次キャッシュ１１１および１２１はＤＲＡＭであるものとする。
【００２３】
二次キャッシュ１３１は、論理ディスクＬＤ１および一次キャッシュ１１１に対応する二次キャッシュである。また、二次キャッシュ１３２は、論理ディスクＬＤ２および一次キャッシュ１２１に対応する二次キャッシュである。二次キャッシュ１３１および１３２は、記憶媒体１３０上の論理的な記憶領域として実装されている。二次キャッシュ１３１および１３２は、単一の記憶媒体１３０上に実装されてもよいし、複数の記憶媒体１３０を組み合わせた記憶領域上に実装されてもよい。以降の説明においては、図１に図示したとおり、二次キャッシュ１３１および１３２は複数の記憶媒体１３０を組み合わせた記憶領域上に実装されているものとする。また、二次キャッシュ１３１および１３２は、複数の記憶媒体１３０をまとめたいくつかのグループ（以降、「ランク」とも称する）に分かれているものとする。
【００２４】
記憶媒体１３０は、例えば、一次キャッシュ１１１および１２１より容量単価が低く大容量な記憶媒体である。具体的には、記憶媒体１３０は、フラッシュメモリドライブや、ＳＳＤ(Solid State Drive)でもよい。以降の説明においては、記憶媒体１３０はＳＳＤであるものとする。
【００２５】
物理ディスク部１４０は、ディスクアレイ装置１００において、最終的にデータが格納される物理ディスクである記憶媒体１４３を備える。物理ディスク部１４０は、論理ディスクＬＤ１に対応するディスクグループ１４１と、論理ディスクＬＤ２に対応するディスクグループ１４２とを含んでいる。論理ディスクＬＤ１およびＬＤ２は、ディスクグループ１４１および１４２のそれぞれに含まれる物理ディスク（記憶媒体１４３）上の論理的な記憶領域として実装されている。ディスクグループ１４１および１４２は、それぞれ、１つあるいはそれ以上の記憶媒体１４３を含んでいる。以降の説明においては、記憶媒体１４３は、磁気ディスク装置であるものとする。
【００２６】
以下、図１を参照して、ディスクアレイ装置１００のライトキャッシュ動作の概要を説明する。
【００２７】
まず、ホスト２００が論理ディスクＬＤ１にファイルを書き込もうとアクセスする場合について説明する。最初に、論理ディスクＬＤ１に対応するコントローラ１１０がファイルを受け付ける（図１の［１−１］）。次に、コントローラ１１０は、受け付けたファイルを一次キャッシュ１１１に書き込もうとする（同［１−２］）。一次キャッシュ１１１に空きが無い場合は、コントローラ１１０は、ファイルを二次キャッシュ１３１に書き込む（同［１−３］）。
【００２８】
同様に、ホスト２００が論理ディスクＬＤ２にファイルを書き込もうとアクセスする場合においては、最初に、論理ディスクＬＤ２に対応するコントローラ１２０がファイルを受け付ける（同［２−１］）。次に、コントローラ１２０は、受け付けたファイルを一次キャッシュ１２１に書き込もうとする（同［２−２］）。一次キャッシュ１２１に空きが無い場合は、コントローラ１２０は、ファイルを二次キャッシュ１３２に書き込む（同［２−３］）。
【００２９】
上記の二次キャッシュ１３１および１３２への書き込みにおいては、ハッシュ関数などを使用することにより、二次キャッシュを構成する記憶媒体１３０のどの領域に書き込むかが決定される。図１においては、上記の論理ディスクＬＤ１およびＬＤ２に対するアクセス（書き込み）によって、これらのアクセスに対応する書き込みが記憶媒体１３０の同一のランク（図１の「※」）に行われている。
【００３０】
図２は、二次キャッシュ１３１の詳細な構成および、二次キャッシュに格納されるデータを説明する図である。二次キャッシュ１３１は、記憶媒体１３０−１〜１３０−６上の論理的な記憶領域として実装されている。また、二次キャッシュ１３１は、記憶媒体１３０−１および１３０−２上に実装されているもの、記憶媒体１３０−３および１３０−４上に実装されているもの、記憶媒体１３０−５および１３０−６上に実装されているものに分かれている。なお、二次キャッシュ１３１は、これらより多くの記憶媒体１３０を備えていてもよい。また、二次キャッシュ１３２は二次キャッシュ１３１と同様の構成であるため、説明を省略する。
【００３１】
二次キャッシュ１３１は、管理情報１３１ａと実データ１３１ｂを格納する。実データ１３１ｂは、ホスト２００から書き込まれる、あるいはホスト２００へ読み出される実データである。管理情報１３１ａは、アクセスされる実データの場所や、サイズや、キャッシュ制御上の状態を含む。例えば、管理情報１３１ａは、以下の情報を含んでいてもよい。（１）ＬＤＮ(Logical Disk Number)：論理ディスク番号（２）ＬＳＮ(Logical Sector Number)：論理セクタ番号（３）ＬＥＮ(LENgth)：データの長さ（４）Ｓｔａｔｅ：キャッシュデータの状態。
【００３２】
上記のＳｔａｔｅ（キャッシュデータの状態）は、例えば、二次キャッシュに格納された実データ１３１ｂが、物理ディスクに「書き戻し済み」であるか、「未書き戻し」であるかの情報を含む。
【００３３】
あるいは、二次キャッシュに格納された実データ１３１ｂは、その一部が物理ディスクに「書き戻し済み」で、一部が「未書き戻し」であってもよい。すなわち、Ｓｔａｔｅは、二次キャッシュに格納された実データ１３１ｂのどの部分が物理ディスクに書き戻し済みであり、どの部分が物理ディスクに未書き戻しであるかの情報を含んでいてもよい。具体的には、例えば、実データ１３１ｂの全体のうち、物理ディスクに未書き戻しである領域の開始位置と終了位置の情報を含んでいてもよい。また、これら未書き戻しである領域の情報は、二次キャッシュに格納された実データ１３１ｂ１つに対し、複数存在していてもよい。
【００３４】
以降の説明においては、管理情報は、二次キャッシュに格納された実データのどの部分が物理ディスクに書き戻し済みであり、どの部分が物理ディスクに未書き戻しであるかの情報を含んでいるものとする。
【００３５】
図３は、ディスクアレイ装置１００にデータが書き込まれる際の二次キャッシュ制御の例を説明する図である。以下、図３を参照して、ディスクアレイ装置１００のライトキャッシュ動作における二次キャッシュ制御処理を説明する。なお、以下の説明において、一次キャッシュ１１１は、空き容量が無かったため書き込みができなかったものとする。
【００３６】
まず、ホスト２００が論理ディスクＬＤ１にファイルＦ１を書き込もうとディスクアレイ装置１００にアクセスする場合について説明する。アクセスに際して、アクセスのＩ／Ｏ(Input Output)範囲情報が発行される。具体的には、ファイルＦ１の書き込み先の論理ディスク番号（ここではＬＤ１とする）および論理セクタ番号（同じくＬＳＮｘｘとする）、データ（ファイル）の長さ（ここではＬＥＮｚ１とする）などである。
【００３７】
次に、ファイルＦ１のキャッシュデータが、二次キャッシュ１３１どの領域に書き込むかが決定される。ここでは、論理ディスク番号（ＬＤ１）および論理セクタ番号（ＬＳＮｘｘ）よりハッシュ関数が計算されることにより、ハッシュ関数の値に基づいて記憶媒体１３０−５および１３０−６に書き込まれることが決定したものとする。
【００３８】
そして、上記決定した書き込み先へ、キャッシュデータとして、ファイルＦ１の実データ１３１ｂ−Ｆ１と、ファイル（キャッシュ）の管理情報１３１ａ−Ｆ１が書き込まれる。管理情報１３１ａ−Ｆ１は、論理ディスク番号ＬＤ１，論理セクタ番号ＬＳＮｘｘ，データの長さＬＥＮｚ１，キャッシュデータの状態Ｓｔａｔｅ１の情報を含んでいる（図３の「Ｅｎｔｒｙ  １」）。また、Ｓｔａｔｅ１は、このキャッシュデータ（実データ１３１ｂ−Ｆ１）が、物理ディスクに「書き戻し済み」であるか、「未書き戻し」であるかの情報を含んでいる。
【００３９】
さらに、Ｓｔａｔｅ１は、このキャッシュデータ（実データ１３１ｂ−Ｆ１）の一部が「書き戻し済み」であり、一部が「未書き戻し」であることを示す情報を含んでいてもよい。具体的には、Ｓｔａｔｅは、実データ１３１ｂ−Ｆ１の全体のうち、物理ディスクに未書き戻しである領域の開始位置と終了位置の情報を含んでいてもよい。なお、これら未書き戻しである領域の情報は、管理情報１３１ａ−Ｆ１の中に複数存在してもよい。
【００４０】
次に、ホスト２００が論理ディスクＬＤ５にファイルＦ２を書き込もうとディスクアレイ装置１００にアクセスする場合について説明する。なお、コントローラ１１０は、論理ディスクＬＤ１の他に、論理ディスクＬＤ５にも対応するアレイコントローラであるものとする。アクセスに際して、アクセスのＩ／Ｏ範囲情報として、ファイルＦ２の書き込み先の論理ディスク番号（ここではＬＤ５とする）および論理セクタ番号（同じくＬＳＮｙｙとする）、データ（ファイル）の長さ（ここではＬＥＮｚ２とする）が発行される。
【００４１】
次に、ファイルＦ１と同様に、ファイルＦ２のキャッシュデータが、二次キャッシュ１３１のどの領域に書き込むかが決定される。ここでは、論理ディスク番号（ＬＤ５）および論理セクタ番号（ＬＳＮｙｙ）より算出されるハッシュ関数の値に基づいて記憶媒体１３０−５および１３０−６、すなわちファイルＦ１と同じ領域に書き込まれることが決定したものとする。
【００４２】
そして、上記決定した書き込み先へ、ファイルＦ２の実データ１３１ｂ−Ｆ２と、ファイル（キャッシュ）の管理情報１３１ａ−Ｆ２が書き込まれる。管理情報１３１ａ−Ｆ２は、論理ディスク番号ＬＤ５，論理セクタ番号ＬＳＮｙｙ，データの長さＬＥＮｚ２，キャッシュデータの状態Ｓｔａｔｅ２の情報を含んでいる（図３の「Ｅｎｔｒｙ  ２」）。なお、Ｓｔａｔｅ２が、物理ディスクに「書き戻し済み」であるか、「未書き戻し」であるかの情報を含んでいることは、管理情報１３１ａ−Ｆ１と同様である。
【００４３】
さらに、Ｓｔａｔｅ２が、このキャッシュデータ（実データ１３１ｂ−Ｆ２）の一部が「書き戻し済み」であり、一部が「未書き戻し」であることを示す情報を含んでいてもよいことも管理情報１３１ａ−Ｆ１と同様である。
【００４４】
上記のように、ハッシュ関数の値によっては、二次キャッシュ１３１の特定の領域（この場合記憶媒体１３０−５および１３０−６）にアクセスが集中することがある。このようなアクセスの集中によって、二次キャッシュ１３１の特定の領域のアクセス負荷が高くなることがある。
【００４５】
また、二次キャッシュ１３１から物理ディスクへ書き戻しが行われたとき、管理情報１３１ａに含まれるキャッシュデータの状態（Ｓｔａｔｅ）が、「未書き戻し」から「書き戻し済み」に更新される。ここで、Ｓｔａｔｅが、キャッシュデータ（実データ１３１ｂ）の一部が「書き戻し済み」であり、一部が「未書き戻し」であることを示す情報を含んでいる場合、実データ１３１ｂの一部が物理ディスクへ書き戻される毎にＳｔａｔｅが更新される。このような部分書き戻しにおいて一回の書き戻しのデータ量が少ない場合、実データ１３１ｂ全体の書き戻しが完了するまでの間、多数の書き戻し処理が発生する。すなわち、Ｓｔａｔｅを含む管理情報１３１ａに対する多数の更新処理が発生する。このような場合、ホストから論理ディスクに新たなアクセスが行われていないにも関わらず、二次キャッシュ１３１の、更新されるＳｔａｔｅを含む管理情報１３１ａが格納された領域のアクセス負荷が高くなることがある。
【００４６】
図４は、コントローラ１１０の詳細な構成を説明する図である。コントローラ１１０は、一次キャッシュ１１１の他に、性能監視部１１２と、使用頻度監視部１１３と、管理情報キャッシュ部１１４とを備える。なお、コントローラ１２０はコントローラ１１０と同様の構成であるため、説明を省略する。
【００４７】
管理情報キャッシュ部１１４は、第１の管理情報キャッシュ部と呼ばれることもある。
【００４８】
性能監視部１１２は、二次キャッシュ１３１を構成するランク毎の負荷状況を監視し、性能が低下しているランクを検出する。具体的には、性能監視部１１２は、記憶媒体１３０−１および１３０−２からなるランク、記憶媒体１３０−３および１３０−４からなるランク、記憶媒体１３０−５および１３０−６からなるランクの性能（アクセス多重度，応答時間など）を監視する。そして、あるランクの性能低下を示す指標が予め定められた閾値を超えたとき、このランクを性能が低下していると判定する。以上の性能監視部１１２の処理は、ホスト２００からのアクセスが無いときにも、定期的に情報を採取して実施されてもよい。
【００４９】
使用頻度監視部１１３は、二次キャッシュ１３１に格納されている管理情報の使用頻度を集計する。さらに、使用頻度監視部１１３は、ランク毎に、管理情報を使用頻度の高い順に順位付けする。
【００５０】
ホスト２００からアクセスされたときや、書き戻しなどのキャッシュ制御処理が行われたときに、二次キャッシュ１３１の管理情報の一部がコントローラ１１０にキャッシュとして格納される。使用頻度監視部１１３は、このキャッシュされた情報の中でアクセスが頻繁に行われているものを抽出し、抽出結果に基づいて管理情報を順位付けしてもよい。
【００５１】
性能監視部１１２および使用頻度監視部１１３は、専用のハードウェアで実現されてもよいし、コンピュータとソフトウェアの組合せで実現されてもよい。
【００５２】
図４を参照すると、使用頻度監視部１１３は、記憶媒体１３０−１および１３０−２からなるランク、記憶媒体１３０−３および１３０−４からなるランク、記憶媒体１３０−５および１３０−６からなるランクのそれぞれにおいて、管理情報の使用頻度を集計している。例えば、記憶媒体１３０−１および１３０−２からなるランクにおいては、１つの管理情報の使用頻度が集計されている。また、記憶媒体１３０−３および１３０−４からなるランクにおいては、４つの管理情報の使用頻度が集計されており、使用頻度が高い順に順位付け（左から３位、２位、１位、４位）されている。同様に、記憶媒体１３０−５および１３０−６からなるランクにおいては、３つの管理情報の使用頻度が集計されており、使用頻度が高い順に順位付け（左から１位、３位、２位）されている。
【００５３】
管理情報キャッシュ部１１４は、一次キャッシュ１１１と同様、二次キャッシュ１３１や、物理ディスク部１４０よりもアクセス速度が高速である記憶装置である。以降の説明においては、管理情報キャッシュ部１１４はＤＲＡＭであるものとする。管理情報キャッシュ部１１４は、一次キャッシュ１１１の領域の一部でもよいし、独立した記憶装置でもよい。
【００５４】
管理情報キャッシュ部１１４は、性能が低下しているランクに含まれる使用頻度が高い管理情報をキャッシュとして格納することによってキャッシュ制御を行う。具体的には、管理情報キャッシュ部１１４は、あるランクの性能が低下した際に、そのランクに含まれる二次キャッシュ１３１の管理情報のうち、使用頻度が高いもの（使用頻度の順位が上位のもの）を格納する。そして、この管理情報に対するアクセスのキャッシュ制御を行う。
【００５５】
図５は、二次キャッシュ１３１の管理情報に対するキャッシュ制御を説明する図である。以下、図５を参照して、ディスクアレイ装置１００における、二次キャッシュ１３１の管理情報に対するキャッシュ制御処理を説明する。
【００５６】
性能監視部１１２は、二次キャッシュ１３１を構成する記憶媒体１３０−１〜１３０−６のランク毎の負荷状況を監視する。具体的には、例えば、記憶媒体１３０−１〜１３０−６の応答時間などを定期的に取得して蓄積する。そして、性能低下を示す指標を監視する。例えば、平均応答時間が予め定められた閾値を超えるランクが有るかどうかを監視する。以上の処理は、ホスト２００からのアクセスの有無に関わらず、定期的にバックグラウンドで実施される。
【００５７】
ホスト２００からアクセスされたときや、書き戻しなどのキャッシュ制御処理が行われたときに、二次キャッシュ１３１の管理情報の一部がコントローラ１１０にコピーされる。使用頻度監視部１１３は、このコピーされた情報に基づいてアクセスが頻繁に行われている管理情報を抽出し、抽出結果に基づいて管理情報の順位付けを行ってもよい。
【００５８】
上記の、性能監視部１１２および使用頻度監視部１１３による情報更新が定期的に行われている状態において、ホスト２００からディスクアレイ装置１００へファイルを書き込もうとアクセスが行われた場合の処理を、以下に説明する。
【００５９】
この書き込みアクセスを受け付けた結果、一次キャッシュ１１１の空きが不足しているなどの理由により、二次キャッシュ１３１への書き込みが発生したものとする。ホストからのファイルが一次キャッシュ１１１へ書き込まれたため、二次キャッシュ１３１への書き込みが発生しなかった場合は、以下の処理は行われない。
【００６０】
まず、ハッシュ関数を計算するなどにより、二次キャッシュ１３１を構成するどのランクにファイルが書き込まれるかが決定される。その結果、ここでは、記憶媒体１３０−５および１３０−６にファイルが書き込まれることに決定したものとする。
【００６１】
この時点において、性能監視部１１２が、記憶媒体１３０−５および１３０−６からなるランクの性能低下を検出したものとする（図５の性能監視部１１２の中の網掛け四角）。この場合、コントローラ１１０は、使用頻度監視部１１３より、性能低下しているランク（記憶媒体１３０−５および１３０−６）に格納されている管理情報の使用頻度を参照する。そして、コントローラ１１０は、使用頻度が高い管理情報を特定する。ここでは、使用頻度が１位である管理情報が抽出される（図５の使用頻度監視部の中の網掛け四角の「１」）。
【００６２】
コントローラ１１０は、この抽出された管理情報を管理情報キャッシュ部１１４にキャッシュとして格納する（管理情報キャッシュ部１１４の中の網掛け四角）。すなわち、以降の、この抽出された管理情報に対するアクセスは、二次キャッシュ１３１上の管理情報ではなく、管理情報キャッシュ部１１４上の管理情報のキャッシュに対して行われる。このことにより、二次キャッシュ１３１の記憶媒体１３０−５および１３０−６の負荷が軽減される。
【００６３】
上記の管理情報のキャッシュ制御は、上記のホストからのファイルが書き込まれるランクにおいて性能低下が検出されていなかった場合は行われない。
【００６４】
上記の管理情報のキャッシュ制御は、性能監視部１１２が、ランクの性能低下が解消されたことを検出したときに終了する。すなわち、管理情報キャッシュ部１１４上の管理情報のキャッシュが、二次キャッシュ１３１上の管理情報に書き戻される。そして、以降のこの書き戻された管理情報に対するアクセスは、キャッシュ制御を行わず、二次キャッシュ１３１上の、この書き戻された管理情報に対して行われる。
【００６５】
上記の二次キャッシュ１３１の管理情報に対するキャッシュ制御処理は、ホストからのファイル書き込みを契機として実施されるが、それ以外のタイミングで行われてもよい。例えば、性能監視部１１２および使用頻度監視部１１３による情報更新が定期的に行われている状態において、バックグラウンドで行われてもよい。具体的には、性能監視部１１２があるランクの性能低下を検出したとき、性能低下しているランク上の使用頻度が高い管理情報を使用頻度監視部１１３が抽出する。そして、コントローラ１１０が、抽出された管理情報を管理情報キャッシュ部１１４に格納し、キャッシュ制御を開始してもよい。
【００６６】
以上のように、本発明の第１の実施形態に係るディスクアレイ装置１００は、二次キャッシュ制御における性能低下を軽減する。なぜならば、性能低下が検出された記憶媒体１３０上に実装された二次キャッシュ１３１内の管理情報のうち、使用頻度が高いものを管理情報キャッシュ部１１４においてキャッシュ制御するからである。このことにより、性能が低下した記憶媒体１３０上の管理情報へのアクセスが行われなくなるので、性能の低下が解消される。
【００６７】
また、本発明の第１の実施形態に係るディスクアレイ装置１００は、効率の良いキャッシュ制御を実現する。なぜならば、二次キャッシュの管理情報は、二次キャッシュに格納される実データよりサイズが小さいため、高速だが高価な管理情報キャッシュ部１１４の容量を少なくすることができるからである。特に、二次キャッシュに格納された実データの部分書き戻し処理が行われる場合、管理情報に多数の更新処理が発生するため、キャッシュ制御の効率が良くなる。
【００６８】
［第２の実施形態］
次に、本発明の第２の実施の形態を説明する。第２の実施形態では、管理情報のキャッシュ制御を行っている状態において、故障時のデータ消失の可能性を軽減する。
【００６９】
図６は、第２の実施形態における、二次キャッシュ１３１の管理情報に対するキャッシュ制御を説明する図である。図６を参照すると、コントローラ１２０は、管理情報キャッシュ部１２４を備えている。なお、本発明の第２の実施形態に係るディスクアレイ装置１００の他の構成要素については、第１の実施形態において説明した図１および図４と同様であるため、説明を省略する。
【００７０】
管理情報キャッシュ部１２４は、第２の管理情報キャッシュ部と呼ばれることもある。
【００７１】
第２の実施形態においては、性能が低下しているランク上の使用頻度が高い管理情報が管理情報キャッシュ部１１４に格納されるとき、管理情報キャッシュ部１２４にも同じ管理情報を格納する（図６の管理情報キャッシュ部１２４の中の網掛け四角）。また、管理情報キャッシュ部１１４上の管理情報のキャッシュが更新されるときは、同時に管理情報キャッシュ部１２４上の管理情報のキャッシュも更新してもよい。すなわち、管理情報キャッシュ部１１４と管理情報キャッシュ部１２４において、管理情報の二重化（ミラーリング）を行ってもよい。
【００７２】
以上のように、本発明の第２の実施形態に係るディスクアレイ装置１００は、第１の実施形態と同様の効果を有しつつ、故障などによりデータが消失する可能性を軽減する。なぜならば、管理情報キャッシュ部１１４がＤＲＡＭのような揮発性メモリであった場合も、管理情報キャッシュ部１２４上で管理情報をミラーリングすることにより、管理情報キャッシュ部１１４やコントローラ１１０の故障などによる管理情報の消失が防止できるからである。
【００７３】
［第３の実施形態］
次に、本発明の第３の実施の形態を説明する。
【００７４】
図７は、本発明の第３の実施形態に係るキャッシュ制御装置の構成を説明する図である。本発明の第３の実施形態に係るキャッシュ制御装置１０００は、コントローラ１１０と、二次キャッシュ１３１とを備える。
【００７５】
コントローラ１１０は、二次キャッシュ１３１より高速に動作する一次キャッシュ１１１と、二次キャッシュ１３１より高速に動作する管理情報キャッシュ部１１４とを備える。
【００７６】
コントローラ１１０は第１のコントロール部と呼ばれることもある。また、管理情報キャッシュ部１１４は、第１の管理情報キャッシュ部と呼ばれることもある。
【００７７】
本発明の第３の実施形態に係るキャッシュ制御装置１０００は、物理ディスク（図示しない）と接続されることにより、物理ディスクのキャッシュ装置として動作する。キャッシュ制御装置１０００は、物理ディスクに格納される実データを一次キャッシュ１１１や二次キャッシュ１３１に格納することにより、実データのキャッシュ制御を行う。
【００７８】
二次キャッシュ１３１は、実データと、実データの管理情報をキャッシュとして格納する。そして、一次キャッシュ部１１０の二次キャッシュとして動作する。
【００７９】
管理情報キャッシュ部１１４は、管理情報をキャッシュとして格納する。
【００８０】
以上のように、本発明の第３の実施形態に係るキャッシュ制御装置１０００は、二次キャッシュ制御における性能低下を軽減する。なぜならば、二次キャッシュ１３１内の管理情報を管理情報キャッシュ部１１４においてキャッシュ制御するからである。このことにより、管理情報へのアクセスは、より高速に動作する管理情報キャッシュ部１１４に対して行われるため、性能の低下が解消される。
【符号の説明】
【００８１】
１００    ディスクアレイ装置
１１０，１２０    コントローラ
１１１，１２１    一次キャッシュ
１１２    性能監視部
１１３    使用頻度監視部
１１４，１２４    管理情報キャッシュ部
１３０，１３０−１〜１３０−６，１４３    記憶媒体
１３１，１３２    二次キャッシュ
１３１ａ，１３１ａ−Ｆ１，１３１ａ−Ｆ２    管理情報
１３１ｂ，１３１ｂ−Ｆ１，１３１ｂ−Ｆ２    実データ
１４０    物理ディスク部
１４１，１４２    ディスクグループ
１０００    キャッシュ制御装置
ＬＤ１，ＬＤ２，ＬＤ５，ＬＤｘ    論理ディスク
Ｆ１，Ｆ２    ファイル
【図１】
2014067377.tif 000003
【図２】
2014067377.tif 000004
【図３】
2014067377.tif 000005
【図４】
2014067377.tif 000006
【図５】
2014067377.tif 000007
【図６】
2014067377.tif 000008
【図７】
2014067377.tif 000009