(57)【要約】【課題】ログ書き込みに対するランダムｒｅａｄの性能を向上させるストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法を提供する。【解決手段】ストレージ装置の制御をコンピュータに実行させるストレージ制御プログラムであって、外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ書き込みステップと、ネットワークを介して前記コンピュータに接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ書き込みステップによるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御ステップとをコンピュータに実行させる。【選択図】図１
2008009829.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置の制御をコンピュータに実行させるストレージ制御プログラムであって、
外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ書き込みステップと、
ネットワークを介して前記コンピュータに接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ書き込みステップによるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御ステップと
をコンピュータに実行させるストレージ制御プログラム。
【請求項２】
請求項１に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは更に、前記キャッシュ装置に格納された前記位置情報から、外部からのｒｅａｄ要求により指定された論理位置に対応する物理位置を読み出すことができ、
更に、前記位置情報制御ステップにより読み出された物理位置からデータを読み出すデータ読み出しステップと
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【請求項３】
請求項２に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは、前記コンピュータ内のキャッシュ、前記キャッシュ装置内のキャッシュを第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、
前記キャッシュ装置内のキャッシュは前記コンピュータ内のキャッシュより大容量であることを特徴とするストレージ制御プログラム。
【請求項４】
請求項３に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは、前記コンピュータ内のキャッシュに最新の位置情報を書き込み、前記コンピュータ内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記キャッシュ装置内のキャッシュへ移動させることを特徴とするストレージ制御プログラム。
【請求項５】
請求項３または請求項４に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは、前記第１の階層的な記憶装置に前記ストレージ装置を加えて第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、
前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とするストレージ制御プログラム。
【請求項６】
請求項５に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは、前記キャッシュ装置内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記ストレージ装置へ移動させることを特徴とするストレージ制御プログラム。
【請求項７】
請求項２乃至請求項６のいずれかに記載のストレージ制御プログラムにおいて、
前記データ書き込みステップは、前記コンピュータ内のキャッシュ、前記キャッシュ装置内のキャッシュ、前記ストレージ装置を前記第２の階層的な記録媒体とし、ライトスルーにより該第２の階層的な記録媒体へデータを書き込み、
前記データ読み出しステップは、前記第２の階層的な記録媒体からデータを読み出し、
前記キャッシュ装置内のキャッシュは前記コンピュータ内のキャッシュより大容量であり、前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とするストレージ制御プログラム。
【請求項８】
ストレージ装置の制御を行うストレージ制御装置であって、
外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ制御部と、
ネットワークを介して前記ストレージ制御装置に接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ制御部によるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御部と
を備えるストレージ制御装置。
【請求項９】
請求項８に記載のストレージ制御装置において、
前記位置情報制御部は更に、前記キャッシュ装置に格納された前記位置情報から、外部からのｒｅａｄ要求により指定された論理位置に対応する物理位置を読み出すことができ、
前記データ制御部は更に、前記位置情報制御部により読み出された物理位置からデータを読み出すことを特徴とするストレージ制御装置。
【請求項１０】
ストレージ装置の制御を行うストレージ制御方法であって、
外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ書き込みステップと、
ネットワークを介して前記コンピュータに接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ書き込みステップによるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御ステップと
を実行するストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置へのログ書き込みを行うストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法に関するものである。
【背景技術】
【０００２】
ハードディスクはシーケンシャルアクセスに比べてランダムアクセスが遅いという問題があり、ハードディスクを使ったストレージシステムは同様な問題を抱えている。この問題を解決するための方法がいくつか提案されている。
【０００３】
第１の方法は、単純にディスクを大量に並べて並列にＩ／Ｏを実行させることで性能を上げる方法である。この方法を用いて、大規模なＲＡＩＤ（Redundant Arrays of Inexpensive Disks）システムを組むことにより、ランダムアクセスのＩＯＰＳ（Input Output Per Second）と信頼性の双方を向上させることができる。
【０００４】
第２の方法は、キャッシュを利用する方法である。この方法は、ｒｅａｄにキャッシュを利用するライトスルーキャッシュ、ｒｅａｄとｗｒｉｔｅの双方でキャッシュを利用するライトバックキャッシュに分類できる。これらの方法を用いて、キャッシュの容量を大規模にしてヒット率を上げると、飛躍的にランダムアクセスのＩＯＰＳを向上させることができる。
【０００５】
ただし、ライトバックキャッシュは、ディスクに書き込む前のデータをメモリに保持する必要があるため、信頼性が低下する。一方で、信頼性を確保しようとキャッシュを多重化すれば、キャッシュメモリのコストが倍増してしまう。
【０００６】
次に、ランダムｗｒｉｔｅについて説明する。
【０００７】
ランダムｗｒｉｔｅにおいて、ログ書き込みと呼ばれる方法がある。ログ書き込みは、ランダムｗｒｉｔｅの論理位置（アドレス）の情報とデータをシーケンシャルに書き込んでいく。読み込みは、論理位置と物理位置の対応付けを示す位置情報テーブルの情報を使うことにより、データを読み込んで再現させる。これにより、ランダムｗｒｉｔｅは、シーケンシャルアクセス並のスループットが出せるようになる。ランダムｗｒｉｔｅに強いログ書き込みと、ランダムｒｅａｄに強いライトスルーキャッシュを組み合わせれば、ランダムアクセス性能・信頼性・コストについて良い結果を出すことができる。
【０００８】
なお、本発明の関連ある従来技術として、キャッシュ装置、ディスク装置、制御装置をネットワーク上に分散配置することにより、キャッシュメモリ領域を増やすストレージシステムがある（例えば、特許文献１、特許文献２、特許文献３参照）。
【特許文献１】ＷＯ２００３／０６５１９５
【特許文献２】ＷＯ２００３／０７５１４７
【特許文献３】ＷＯ２００４／０２７６２５
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、ログ書き込みとライトスルーキャッシュの組み合わせは効果が非常に高いが、ログ方式を用いた場合に特有の問題がある。特に、ログ書き込みのストレージシステムは、ホストが利用する書き込み位置（論理位置）と下位デバイス（ディスク装置）の書き込み位置（物理位置）との対応付けを示す位置情報テーブルを管理する必要があり、位置情報テーブルの検索に時間がかかることから、キャッシュミス時の読み込みの性能が劣化するという問題がある。また、この位置情報テーブルはセクタとセクタを１対１で対応させる必要があり、おおむねボリュームサイズの１／６４〜１／５１２程度の空間が必要になる。
【００１０】
本発明は上述した問題点を解決するためになされたものであり、ログ書き込みに対するランダムｒｅａｄの性能を向上させるストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決するため、本発明は、ストレージ装置の制御をコンピュータに実行させるストレージ制御プログラムであって、外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ書き込みステップと、ネットワークを介して前記コンピュータに接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ書き込みステップによるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御ステップとをコンピュータに実行させるものである。
【００１２】
また、本発明に係るストレージ制御プログラムにおいて、前記位置情報制御ステップは更に、外部からのｒｅａｄ要求に基づいて、前記キャッシュ装置に記憶された前記位置情報から前記ｒｅａｄ要求により指定された論理位置に対応する物理位置を読み出すことができ、更に、前記位置情報制御ステップにより読み出された物理位置からデータを読み出すデータ読み出しステップとをコンピュータに実行させることを特徴とする。
【００１３】
また、本発明に係るストレージ制御プログラムにおいて、前記位置情報制御ステップは、前記コンピュータ内のキャッシュ、前記キャッシュ装置内のキャッシュを第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、前記キャッシュ装置内のキャッシュは前記コンピュータ内のキャッシュより大容量であることを特徴とする。
【００１４】
また、本発明に係るストレージ制御プログラムにおいて、前記位置情報制御ステップは、前記コンピュータ内のキャッシュに最新の位置情報を書き込み、前記コンピュータ内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記キャッシュ装置内のキャッシュへ移動させることを特徴とする。
【００１５】
また、本発明に係るストレージ制御プログラムにおいて、前記位置情報制御ステップは、前記第１の階層的な記憶装置に前記ストレージ装置を加えて第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とする。
【００１６】
また、本発明に係るストレージ制御プログラムにおいて、前記位置情報制御ステップは、前記キャッシュ装置内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記ストレージ装置へ移動させることを特徴とする。
【００１７】
また、本発明に係るストレージ制御プログラムにおいて、前記データ書き込みステップは、前記コンピュータ内のキャッシュ、前記キャッシュ装置内のキャッシュ、前記ストレージ装置を前記第２の階層的な記録媒体とし、ライトスルーにより該第２の階層的な記録媒体へデータを書き込み、前記データ読み出しステップは、前記第２の階層的な記録媒体からデータを読み出し、前記キャッシュ装置内のキャッシュは前記コンピュータ内のキャッシュより大容量であり、前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とする。
【００１８】
また、本発明は、ストレージ装置の制御を行うストレージ制御装置であって、外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ制御部と、ネットワークを介して前記ストレージ制御装置に接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ制御部によるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御部とを備えたものである。
【００１９】
また、本発明に係るストレージ制御装置において、前記位置情報制御部は更に、外部からのｒｅａｄ要求に基づいて、前記キャッシュ装置に記憶された前記位置情報から前記ｒｅａｄ要求により指定された論理位置に対応する物理位置を読み出すことができ、前記データ制御部は更に、前記位置情報制御部により読み出された物理位置からデータを読み出すことを特徴とする。
【００２０】
また、本発明に係るストレージ制御装置において、前記位置情報制御部は、前記ストレージ制御装置内のキャッシュ、前記キャッシュ装置内のキャッシュを第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、前記キャッシュ装置内のキャッシュは前記ストレージ制御装置内のキャッシュより大容量であることを特徴とする。
【００２１】
また、本発明に係るストレージ制御装置において、前記位置情報制御部は、前記コンピュータ内のキャッシュに最新の位置情報を書き込み、前記ストレージ制御装置内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記キャッシュ装置内のキャッシュへ移動させることを特徴とする。
【００２２】
また、本発明に係るストレージ制御装置において、前記位置情報制御部は、前記第１の階層的な記憶装置に前記ストレージ装置を加えて第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とする。
【００２３】
また、本発明に係るストレージ制御装置において、前記位置情報制御部は、前記キャッシュ装置内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記ストレージ装置へ移動させることを特徴とする。
【００２４】
また、本発明に係るストレージ制御装置において、前記データ制御部は、前記ストレージ制御装置内のキャッシュ、前記キャッシュ装置内のキャッシュ、前記ストレージ装置を前記第２の階層的な記録媒体として管理し、ライトスルーにより該第２の階層的な記録媒体に対するデータの書き込み及び読み出しを行い、前記ストレージ制御装置内のキャッシュは前記キャッシュ装置内のキャッシュより高速であり、前記キャッシュ装置内のキャッシュは前記ストレージ装置より高速であることを特徴とする。
【００２５】
また、本発明は、ストレージ装置の制御を行うストレージ制御方法であって、外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ書き込みステップと、ネットワークを介して前記コンピュータに接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ書き込みステップによるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御ステップとを実行するものである。
【発明の効果】
【００２６】
本発明によれば、ログ書き込みに対するランダムｒｅａｄの性能、特にキャッシュミス時の性能を向上させることができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００２８】
実施の形態１．
本実施の形態では、上述したログ書き込みとライトスルーキャッシュの組み合わせを用いるストレージ制御装置について説明する。
【００２９】
まず、本実施の形態に係るストレージ制御装置を用いたストレージシステムの構成について説明する。
【００３０】
図１は、本実施の形態に係るストレージシステムの構成の一例を示すブロック図である。このストレージシステムは、ストレージ制御装置１、キャッシュ装置２、ディスク装置３（ストレージ装置）、ネットワーク４を備える。ストレージ制御装置１は、外部のホストとディスク装置３にそれぞれ接続される。また、ストレージ制御装置１は、ネットワーク４を介してキャッシュ装置２に接続される。
【００３１】
ストレージ制御装置１は、データ制御部１１、ログ制御部１２（位置情報制御部）、データキャッシュ１３、位置情報キャッシュ１４を備える。データキャッシュ１３は、データ制御部１１の内部に設けられても良い。位置情報キャッシュ１４は、ログ制御部１２の内部に設けられても良い。
【００３２】
キャッシュ装置２は、キャッシュ制御部２１、データキャッシュ２３、位置情報キャッシュ２４を備える。キャッシュ制御部２１は、データキャッシュ２３及び位置情報キャッシュ２４の制御を行う。データキャッシュ２３は、データキャッシュ１３より大容量のメモリで構成され、位置情報キャッシュ２４は、位置情報キャッシュ１４より大容量のメモリで構成される。なお、データキャッシュ２３と位置情報キャッシュ２４は、１つのメモリとして構成されても良い。
【００３３】
ディスク装置３は、ログ書き込みによるデータを格納するデータ領域３３、位置情報を格納する位置情報領域３４を備える。
【００３４】
また、データ制御部１１は、ストレージ制御装置１におけるデータキャッシュ１３及びキャッシュ装置２におけるデータキャッシュ２３の制御を行う。また、データ制御部１１は、ホストからのｒｅａｄ要求またはｗｒｉｔｅ要求に従ってログ制御部１２へのｒｅａｄ要求またはｗｒｉｔｅ要求を行い、結果をホストへ返す。ログ制御部１２は、ストレージ制御装置１における位置情報キャッシュ１４及びキャッシュ装置２における位置情報キャッシュ２４の制御を行う。また、ログ制御部１２は、データ制御部１１からのｗｒｉｔｅ要求のデータをログ形式に変換し、ディスク装置３のデータ領域３３に書き込む。また、ログ制御部１２は、データ制御部１１からのｒｅａｄ要求で要求されたデータを、ディスク装置３のデータ領域３３からデータ制御部１１へ読み出す。
【００３５】
また、データ制御部１１は、データキャッシュ１３，２３、データ領域３３を階層的な記憶装置として管理し、それぞれにデータを格納する。データへのアクセスにおいて、データキャッシュ１３は、最も小容量、最も高速であり、最も使用頻度の高いデータが格納される。データキャッシュ２３は、データキャッシュ１３より大容量、低速であり、データキャッシュ１３より使用頻度の低いデータが格納される。データ領域３３は、最も大容量、最も低速であり、最も使用頻度の低いデータが格納される。
【００３６】
同様に、ログ制御部１２は、位置情報キャッシュ１４，２４、位置情報領域３４を階層的な記憶装置として管理し、それぞれに位置情報テーブルを格納する。位置情報テーブルへのアクセスにおいて、位置情報キャッシュ１４は、最も小容量、最も高速であり、最も使用頻度の高い位置情報が格納される。位置情報キャッシュ２４は、位置情報キャッシュ１４より大容量、低速であり、位置情報キャッシュ１４より使用頻度の低い位置情報が格納される。位置情報領域３４は、最も大容量、最も低速であり、最も使用頻度の低い位置情報が格納される。
【００３７】
次に、位置情報テーブルについて説明する。
【００３８】
位置情報テーブルの管理には、ファイルシステムのブロックマップなどに使われる方法と同じものを使う。図２は、本実施の形態に係る位置情報テーブルの構成の一例を示すブロック図である。この図のように、位置情報テーブルは、ホストが利用する論理位置とデータ領域３３における物理位置との対応付けを示す位置情報を、２〜３レベルの間接テーブルとして表したものである。ログ制御部１２は、この図の左端のテーブルに示された論理位置から、この図の右端に示された物理位置を検索する。このような位置情報テーブルを用いることにより、データ領域３３におけるデータの部分的な更新や参照を高速にすることができ、大きなボリュームを管理することができる。
【００３９】
次に、ｗｒｉｔｅ処理について説明する。
【００４０】
ライトスルーキャッシュを用いるため、ｗｒｉｔｅ処理において、データ制御部１１は、データキャッシュ１３，２３への書き込みだけでなく、ディスク装置３への書き込みを行う。図３は、本実施の形態に係るストレージ制御装置によるｗｒｉｔｅ処理の動作の一例を示すフローチャートである。
【００４１】
ホストからｗｒｉｔｅ要求を受けたデータ制御部１１は、ログ制御部１２へｗｒｉｔｅ要求を送る（Ｓ１１）。次に、ログ制御部１２は、データ制御部１１から受けたｗｒｉｔｅ要求のデータに対するヘッダとトレイラを作成し（Ｓ１２）、そのヘッダ、データ、トレイラをログ形式としてディスク装置３のデータ領域３３へ書き込む（Ｓ１３）。
【００４２】
次に、ログ制御部１２は、位置情報テーブル更新処理を行い（Ｓ２１）、ｗｒｉｔｅ完了をデータ制御部１１に通知する（Ｓ２２）。次に、ログ制御部１２からｗｒｉｔｅ完了の通知を受け取ったデータ制御部１１は、データキャッシュ１３，２３の更新を行い（Ｓ２３）、このフローは終了する。
【００４３】
次に、ｒｅａｄ処理について説明する。
【００４４】
ｒｅａｄ処理において、ストレージ制御装置１は、データキャッシュ１３，２３においてキャッシュヒットすれば、そのキャッシュのデータをホストへ返し、キャッシュミスすれば、ディスク装置３のデータをホストへ返す。図４は、本実施の形態に係るストレージ制御装置によるｒｅａｄ処理の動作の一例を示すフローチャートである。
【００４５】
ホストからｒｅａｄ要求を受けたデータ制御部１１は、ホストから要求されたデータがデータキャッシュ１３，２３においてヒットしたか否かの判断を行う（Ｓ３１）。キャッシュヒットした場合（Ｓ３１，ｙｅｓ）、データ制御部１１は、ヒットしたデータキャッシュからホストへ要求されたデータの読み出しを行い（Ｓ３２）、ヒットしたデータキャッシュにおけるＬＲＵの更新を行い（Ｓ３５）、このフローは終了する。データ制御部１１は、データキャッシュ１３におけるＬＲＵを用いて、所定の使用頻度より低いデータを、データキャッシュ１３からデータキャッシュ２３へ移動させる。同様に、キャッシュ制御部２１は、データキャッシュ２３におけるＬＲＵを用いて、所定の使用頻度より低いデータを、データキャッシュ２３からデータ領域３３へ移動させる。
【００４６】
一方、キャッシュミスした場合（Ｓ３１，ｎｏ）、データ制御部１１は、ログ制御部１２へｒｅａｄ要求を送る（Ｓ４１）。次に、ログ制御部１２は、位置情報キャッシュ２４の位置情報テーブルにおいて、指示されたデータの論理位置からディスク装置３上の物理位置を検索する検索処理を行い（Ｓ４２）、検索された物理位置のデータをホストへ読み出し（Ｓ４３）、このフローは終了する。
【００４７】
次に、ｗｒｉｔｅ処理における位置情報テーブル検索処理（Ｓ４２）及びｒｅａｄ処理における位置情報テーブル更新処理（Ｓ２１）の詳細について説明する。
【００４８】
本実施の形態においては、ログ制御部１１が、位置情報キャッシュ１４，２４、位置情報領域３４における全ての位置情報テーブルの管理を行う。また、ログ制御部１２は、キャッシュ制御部２１との通信を行うことにより、位置情報キャッシュ２４の操作を行う。この通信において、ログ制御部１２は、特許文献３のようなキャッシュプロトコルを用いる。
【００４９】
図５は、本実施の形態に係るキャッシュプロトコルにおけるメッセージの構造の一例を示す構造図である。データ制御部１１またはログ制御部１２からキャッシュ制御部２１へ送られるリクエストメッセージは、コマンド、ＩＤ、リクエスト（ｒｅｑ）データからなる。リクエストメッセージの結果としてキャッシュ制御部２からデータ制御部１１またはログ制御部１２へ送られるレスポンスメッセージは、コマンド、ＩＤ、レスポンス（ｒｅｓ）データからなる。
【００５０】
図６は、本実施の形態に係るキャッシュプロトコルにおけるデータの構造の一例を示す構造図である。割り当てリクエストのデータは、割り当てたいサイズからなる。これに対する割り当てレスポンスのデータは、割り当てられた位置のポインタとサイズからなる。開放リクエストのデータは、開放したい位置のポインタからなる。これに対する開放レスポンスのデータは、開放の結果がＯＫであるかＮＧであるかを示す。ｒｅａｄリクエストのデータは、ｒｅａｄしたい位置のポインタとサイズからなる。これに対するｒｅａｄレスポンスのデータは、ｒｅａｄしたサイズとデータからなる。ｗｒｉｔｅリクエストのデータは、ｗｒｉｔｅしたい位置のポインタとサイズとデータからなる。これに対するｗｒｉｔｅレスポンスのデータは、ｗｒｉｔｅの結果がＯＫであるかＮＧであるかを示す。
【００５１】
図７は、本実施の形態に係る位置情報テーブル検索処理及び位置情報テーブル更新処理の動作の一例を示すフローチャートである。まず、ログ制御部１２は、データ制御部１１からのｗｒｉｔｅ要求（更新処理時）またはｒｅａｄ要求（検索処理時）の対象が、最も高速なローカルのキャッシュである位置情報キャッシュ１４の位置情報テーブルにおいてキャッシュヒットしたか否かの判断を行う（Ｓ５１）。
【００５２】
キャッシュヒットした場合（Ｓ５１，ｙｅｓ）、処理Ｓ６６へ移行する。一方、キャッシュミスした場合（Ｓ５１，ｙｅｓ）、ログ制御部１２は、位置情報キャッシュ２４においてキャッシュヒットしたか否かの判断を行う（Ｓ５２）。キャッシュヒットした場合（Ｓ５２，ｙｅｓ）、ログ制御部１２は、位置情報キャッシュ２４から該当する位置情報を読み出し（Ｓ５３）、処理Ｓ６１へ移行する。ここで、ログ制御部１２は、ｒｅａｄリクエストをキャッシュ制御部１２へ送信し、キャッシュ制御部１２は、ｒｅａｄレスポンスをログ制御部１２へ送信する。一方、キャッシュミスした場合（Ｓ５２，ｙｅｓ）、ログ制御部１２は、位置情報領域３４から該当する位置情報を読み出し（Ｓ５４）、処理６１へ移行する。
【００５３】
次に、ログ制御部１２は、処理Ｓ５３またはＳ５４で読み出した位置情報を位置情報キャッシュ１４に追加で書き込み（Ｓ６１）、位置情報キャッシュ１４のＬＲＵ（Least Recently Used）を更新する（Ｓ６２）。次に、ログ制御部１２は、データ制御部１１は、位置情報キャッシュ１４のＬＲＵを用いて所定の時刻より古い位置情報を位置情報キャッシュ２４へ書き込む（Ｓ６３）。ここで、ログ制御部１２は、割り当てリクエストをキャッシュ制御部１２へ送信し、キャッシュ制御部１２は、割り当てレスポンスをログ制御部１２へ送信する。
【００５４】
次に、キャッシュ制御部２１は、位置情報キャッシュ２４のＬＲＵを更新する（Ｓ６４）。次に、ログ制御部１２は、位置情報キャッシュ２４のＬＲＵを用いて所定の時刻より古い位置情報を位置情報領域３４へ書き込む（Ｓ６５）。ここで、ログ制御部１２は、ｒｅａｄリクエストをキャッシュ制御部１２へ送信し、キャッシュ制御部１２は、ｒｅａｄレスポンスをログ制御部１２へ送信し、更に、ログ制御部１２は、開放リクエストをキャッシュ制御部１２へ送信し、キャッシュ制御部１２は、開放レスポンスをログ制御部１２へ送信する。次に、ログ制御部１２は、位置情報キャッシュ１４において検索を行い、更に位置情報テーブル更新処理時には更新を行い（Ｓ６６）、このフローは終了する。
【００５５】
本実施の形態によれば、ストレージ制御装置１におけるログ制御部１２が、ストレージ制御装置１における位置情報キャッシュ１４、キャッシュ装置２における位置情報キャッシュ２４、ディスク装置３における位置情報領域３４の位置情報テーブルを階層的に管理することにより、ランダムｒｅａｄにおけるディスク装置３上の物理位置の検索の性能を向上させることができ、ログ書き込みに対するランダムｒｅａｄの性能を向上させることができる。
【００５６】
実施の形態２．
まず、本実施の形態に係るストレージ制御装置を用いたストレージシステムの構成について説明する。本実施の形態におけるストレージシステムの構成は、実施の形態１と同様であるが、データ制御部１１とログ制御部１２の動作が異なる。
【００５７】
次に、本実施の形態に係るストレージ制御装置の動作について説明する。ｗｒｉｔｅ処理及びｒｅａｄ処理の動作は、実施の形態１と同様であるが、ｗｒｉｔｅ処理における位置情報テーブル検索処理（Ｓ４２）及びｒｅａｄ処理における位置情報テーブル更新処理（Ｓ２３）の内容が異なる。
【００５８】
次に、ｗｒｉｔｅ処理における位置情報テーブルの検索処理（Ｓ４２）及びｒｅａｄ処理における更新処理（Ｓ２１）の詳細について説明する。
【００５９】
本実施の形態においては、ログ制御部１１が位置情報キャッシュ１４の管理を行い、キャッシュ制御部２１が位置情報キャッシュ２４及び位置情報領域３４の管理を行う。また、ログ制御部１２とキャッシュ制御部２１は、互いに通信を行うことにより、位置情報キャッシュ２４と位置情報領域３４の操作を行う。この通信において、ログ制御部１２とキャッシュ制御部２１は、実施の形態１のキャッシュプロトコルにテーブル操作のためのプロトコルを追加したキャッシュプロトコルを用いる。
【００６０】
図８は、本実施の形態に係るキャッシュプロトコルにおけるデータの構造の一例を示す構造図である。検索リクエストのデータは、対象のデータの論理位置を示すオフセット、対象の長さからなる。検索レスポンスのデータは、検索結果のブロックの数を示すサイズ、ブロック毎の物理位置を表すオフセット、ブロック毎の長さからなる。更新リクエストのデータは、対象のデータのブロックの数を示すサイズ、ブロック毎の論理位置を表すオフセット、ブロック毎の長さからなる。更新レスポンスのデータは、更新リクエストに対する処理の結果がＯＫであるかＮＧであるかを示す。
【００６１】
テーブル書き出しリクエストのデータは、更新リクエストと同様、対象のデータのブロックの数を示すサイズ、ブロック毎の論理位置を表すオフセット、ブロック毎の長さからなる。テーブル書き出しレスポンスのデータは、更新レスポンスと同様、テーブル書き出しリクエストに対する処理の結果がＯＫであるかＮＧであるかを示す。テーブル読み込みリクエストのデータは、検索リクエストと同様、対象のデータの論理位置を示すオフセット、対象の長さからなる。テーブル読み込みレスポンスのデータは、検索レスポンスと同様、読み込み結果のブロックの数を示すサイズ、ブロック毎の物理位置を表すオフセット、ブロック毎の長さからなる。
【００６２】
図９は、本実施の形態に係る位置情報テーブル検索処理及び位置情報テーブル更新処理の動作の一例を示すフローチャートである。図中の点線の枠内はキャッシュ制御部２１の動作を示し、点線の枠外はログ制御部１２の動作を示す。まず、ログ制御部１２は、データ制御部１１によりｗｒｉｔｅ要求（更新処理時）またはｒｅａｄ要求（検索処理時）の対象の位置情報が、位置情報キャッシュ１４においてキャッシュヒットしたか否かの判断を行う（Ｓ７１）。キャッシュヒットした場合（Ｓ７１，ｙｅｓ）、処理Ｓ９４へ移行する。一方、キャッシュミスした場合（Ｓ７１，ｙｅｓ）、ログ制御部１２は、位置情報キャッシュ２４において対象の位置情報を検索することを指示する検索リクエストをキャッシュ制御部２１へ送信する（Ｓ７２）。
【００６３】
次に、キャッシュ制御部２１は、検索リクエストに従って、位置情報キャッシュ２４において対象の位置情報を検索し（Ｓ７３）、位置情報キャッシュ２４において対象の位置情報が見つかったか否かの判断を行う（Ｓ７４）。対象の位置情報が見つかった場合（Ｓ７４，ｙｅｓ）、処理Ｓ９４へ移行する。一方、対象の位置情報が見つからなかった場合（Ｓ７４，ｎｏ）、位置情報領域３４から対象の位置情報を読み出すことを指示するテーブル読み出しリクエストをログ制御部１２へ送信する（Ｓ７５）。次に、ログ制御部１２は、テーブル読み出しリクエストに従って、位置情報領域３４から対象の位置情報を読み出し（Ｓ７６）、読み込んだ位置情報をテーブル読み込みレスポンスとしてキャッシュ制御部２１へ送信する（Ｓ７７）。
【００６４】
次に、キャッシュ制御部２１は、位置情報キャッシュ２４のＬＲＵの更新を行い（Ｓ８１）、位置情報キャッシュ２４のＬＲＵを用いて、位置情報キャッシュ２４のうち所定の時刻より古い位置情報を位置情報領域３４へ書き出すことを指示するテーブル書き出しリクエストをログ制御部１２へ送信する（Ｓ８２）。次に、ログ制御部１２は、テーブル書き出しリクエストに従って、古い位置情報を位置情報領域３４へ書き込み（Ｓ８３）、書き込み完了を示すテーブル書き出しレスポンスを送信する（Ｓ８４）。次に、キャッシュ制御部２１は、得られた対象の位置情報を検索レスポンスとしてログ制御部１２へ送信する（Ｓ８５）。
【００６５】
次に、ログ制御部１２は、検索レスポンスから得られた対象の位置情報を位置情報キャッシュ１４に追加し（Ｓ９１）、位置情報キャッシュ１４のＬＲＵの更新を行い（Ｓ９２）、位置情報キャッシュ１４のＬＲＵを用いて位置情報キャッシュ１４のうち所定の時刻より古い位置情報を削除する（Ｓ９３）。次に、ログ制御部１２は、位置情報キャッシュ１４において検索を行い、更に位置情報テーブル更新処理時には更新を行い（Ｓ９４）、このフローは終了する。
【００６６】
本実施の形態によれば、ログ制御部１２が、位置情報キャッシュ１４及びキャッシュ制御部２１を階層的に管理し、更に、キャッシュ制御部２１が、位置情報キャッシュ１４及び位置情報領域３４を階層的に管理することにより、ディスク装置３における位置情報領域３４を階層的に用いることにより、ランダムｒｅａｄにおけるディスク装置３上の物理位置の検索の性能を向上させことができ、ログ書き込みに対するランダムｒｅａｄの性能を向上させることができる。
【００６７】
なお、上述した実施の形態において、位置情報テーブルは、位置情報キャッシュ１４，２４、位置情報領域３４に書き込まれるとしたが、位置情報キャッシュ２４が十分な容量を持つ場合、位置情報領域２４を必要としない。
【００６８】
なお、データ書き込みステップは、実施の形態における処理Ｓ１１，Ｓ１２，Ｓ１３，Ｓ２２，Ｓ２３に対応する。また、データ読み出しステップは、実施の形態における処理Ｓ３１，Ｓ４１，Ｓ３２，Ｓ３３，Ｓ４３に対応する。また、位置情報制御ステップは、実施の形態における処理Ｓ２１，Ｓ４２に対応する。
【００６９】
また、本実施の形態に係るストレージ制御装置は、ストレージシステムに容易に適用することができ、ストレージシステムの性能をより高めることができる。
【００７０】
更に、ストレージ制御装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、ストレージ制御プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、ストレージ制御装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【００７１】
（付記１）  ストレージ装置の制御をコンピュータに実行させるストレージ制御プログラムであって、
外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ書き込みステップと、
ネットワークを介して前記コンピュータに接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ書き込みステップによるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御ステップと
をコンピュータに実行させるストレージ制御プログラム。
（付記２）  付記１に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは更に、前記キャッシュ装置に格納された前記位置情報から、外部からのｒｅａｄ要求により指定された論理位置に対応する物理位置を読み出すことができ、
更に、前記位置情報制御ステップにより読み出された物理位置からデータを読み出すデータ読み出しステップと
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
（付記３）  付記２に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは、前記コンピュータ内のキャッシュ、前記キャッシュ装置内のキャッシュを第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、
前記キャッシュ装置内のキャッシュは前記コンピュータ内のキャッシュより大容量であることを特徴とするストレージ制御プログラム。
（付記４）  付記３に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは、前記コンピュータ内のキャッシュに最新の位置情報を書き込み、前記コンピュータ内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記キャッシュ装置内のキャッシュへ移動させることを特徴とするストレージ制御プログラム。
（付記５）  付記３または付記４に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは、前記第１の階層的な記憶装置に前記ストレージ装置を加えて第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、
前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とするストレージ制御プログラム。
（付記６）  付記５に記載のストレージ制御プログラムにおいて、
前記位置情報制御ステップは、前記キャッシュ装置内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記ストレージ装置へ移動させることを特徴とするストレージ制御プログラム。
（付記７）  付記２乃至付記６のいずれかに記載のストレージ制御プログラムにおいて、
前記データ書き込みステップは、前記コンピュータ内のキャッシュ、前記キャッシュ装置内のキャッシュ、前記ストレージ装置を前記第２の階層的な記録媒体とし、ライトスルーにより該第２の階層的な記録媒体へデータを書き込み、
前記データ読み出しステップは、前記第２の階層的な記録媒体からデータを読み出し、
前記キャッシュ装置内のキャッシュは前記コンピュータ内のキャッシュより大容量であり、前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とするストレージ制御プログラム。
（付記８）  ストレージ装置の制御を行うストレージ制御装置であって、
外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ制御部と、
ネットワークを介して前記ストレージ制御装置に接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ制御部によるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御部と
を備えるストレージ制御装置。
（付記９）  付記８に記載のストレージ制御装置において、
前記位置情報制御部は更に、前記キャッシュ装置に格納された前記位置情報から、外部からのｒｅａｄ要求により指定された論理位置に対応する物理位置を読み出すことができ、
前記データ制御部は更に、前記位置情報制御部により読み出された物理位置からデータを読み出すことを特徴とするストレージ制御装置。
（付記１０）  付記９に記載のストレージ制御装置において、
前記位置情報制御部は、前記ストレージ制御装置内のキャッシュ、前記キャッシュ装置内のキャッシュを第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、
前記キャッシュ装置内のキャッシュは前記ストレージ制御装置内のキャッシュより大容量であることを特徴とするストレージ制御装置。
（付記１１）  付記１０に記載のストレージ制御装置において、
前記位置情報制御部は、前記コンピュータ内のキャッシュに最新の位置情報を書き込み、前記ストレージ制御装置内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記キャッシュ装置内のキャッシュへ移動させることを特徴とするストレージ制御装置。
（付記１２）  付記１０または付記１１に記載のストレージ制御装置において、
前記位置情報制御部は、前記第１の階層的な記憶装置に前記ストレージ装置を加えて第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、
前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とするストレージ制御装置。
（付記１３）  付記１２に記載のストレージ制御装置において、
前記位置情報制御部は、前記キャッシュ装置内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記ストレージ装置へ移動させることを特徴とするストレージ制御装置。
（付記１４）  付記９乃至付記１３のいずれかに記載のストレージ制御装置において、
前記データ制御部は、前記ストレージ制御装置内のキャッシュ、前記キャッシュ装置内のキャッシュ、前記ストレージ装置を前記第２の階層的な記録媒体として管理し、ライトスルーにより該第２の階層的な記録媒体に対するデータの書き込み及び読み出しを行い、
前記キャッシュ装置内のキャッシュは前記ストレージ制御装置内のキャッシュより大容量であり、前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とするストレージ制御装置。
（付記１５）  ストレージ装置の制御を行うストレージ制御方法であって、
外部からのｗｒｉｔｅ要求に基づいて、前記ストレージ装置へデータのログ書き込みを行うデータ書き込みステップと、
ネットワークを介して前記コンピュータに接続されたキャッシュ装置に、前記ｗｒｉｔｅ要求により指定された論理位置と前記データ書き込みステップによるログ書き込みが行われた前記ストレージ装置内の物理位置との対応付けを位置情報として書き込むことができる位置情報制御ステップと
を実行するストレージ制御方法。
（付記１６）  付記１５に記載のストレージ制御方法において、
前記位置情報制御ステップは更に、前記キャッシュ装置に格納された前記位置情報から、外部からのｒｅａｄ要求により指定された論理位置に対応する物理位置を読み出すことができ、
更に、前記位置情報制御ステップにより読み出された物理位置からデータを読み出すデータ読み出しステップと
を実行することを特徴とするストレージ制御方法。
（付記１７）  付記１６に記載のストレージ制御方法において、
前記位置情報制御ステップは、前記コンピュータ内のキャッシュ、前記キャッシュ装置内のキャッシュを第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、
前記キャッシュ装置内のキャッシュは前記コンピュータ内のキャッシュより大容量であることを特徴とするストレージ制御方法。
（付記１８）  付記１７に記載のストレージ制御方法において、
前記位置情報制御ステップは、前記コンピュータ内のキャッシュに最新の位置情報を書き込み、前記コンピュータ内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記キャッシュ装置内のキャッシュへ移動させることを特徴とするストレージ制御方法。
（付記１９）  付記１７または付記１８に記載のストレージ制御方法において、
前記位置情報制御ステップは、前記第１の階層的な記憶装置に前記ストレージ装置を加えて第１の階層的な記憶装置とし、該第１の階層的な記憶装置において前記位置情報を管理し、
前記ストレージ装置は前記キャッシュ装置内のキャッシュより大容量であることを特徴とするストレージ制御方法。
（付記２０）  付記１９に記載のストレージ制御方法において、
前記位置情報制御ステップは、前記キャッシュ装置内のキャッシュに格納された位置情報のうち所定の使用頻度より低い位置情報を前記ストレージ装置へ移動させることを特徴とするストレージ制御方法。
【図面の簡単な説明】
【００７２】
【図１】実施の形態１に係るストレージシステムの構成の一例を示すブロック図である。
【図２】実施の形態１に係る位置情報テーブルの構成の一例を示すブロック図である。
【図３】実施の形態１に係るストレージ制御装置によるｗｒｉｔｅ処理の動作の一例を示すフローチャートである。
【図４】実施の形態１に係るストレージ制御装置によるｒｅａｄ処理の動作の一例を示すフローチャートである。
【図５】実施の形態１に係るキャッシュプロトコルにおけるメッセージの構造の一例を示す構造図である。
【図６】実施の形態１に係るキャッシュプロトコルにおけるデータの構造の一例を示す構造図である。
【図７】実施の形態１に係る位置情報テーブル検索処理及び位置情報テーブル更新処理の動作の一例を示すフローチャートである。
【図８】実施の形態２に係るキャッシュプロトコルにおけるデータの構造の一例を示す構造図である。
【図９】実施の形態２に係る位置情報テーブル検索処理及び位置情報テーブル更新処理の動作の一例を示すフローチャートである。
【符号の説明】
【００７３】
１  ストレージ制御装置、２  キャッシュ装置、３  ディスク装置、４  ネットワーク、１１  データ制御部、１２  ログ制御部、１３，２３  データキャッシュ、１４，２４  位置情報キャッシュ、２１  キャッシュ制御部、３３  データ領域、３４  位置情報領域。
【図１】
2008009829.tif 000003
【図２】
2008009829.tif 000004
【図３】
2008009829.tif 000005
【図４】
2008009829.tif 000006
【図５】
2008009829.tif 000007
【図６】
2008009829.tif 000008
【図７】
2008009829.tif 000009
【図８】
2008009829.tif 000010
【図９】
2008009829.tif 000011