(57)【要約】【課題】リード要求に対する応答性能を改善したストレージ装置を提供する。【解決手段】ストレージ装置は、ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルを有する。そして、ライトデータの入出力パターンを解析して、解析結果を管理テーブルに書き込み、管理テーブルを参照してライトデータを圧縮するブロックのサイズを決定し、決定されたブロックのサイズへライトデータを圧縮して、圧縮データを物理メモリに書き込む。【選択図】図１
2018169773.tif 000002
【特許請求の範囲】
【請求項１】
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルと、
前記ライトデータの入出力パターンを解析して、解析結果を前記管理テーブルに書き込む入出力パターン解析手段と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定手段と、
前記ブロックサイズ決定手段によって決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮手段と、
を備えたストレージ装置。
【請求項２】
前記管理テーブルが、シーケンシャルアクセスの回数、ランダムアクセスの回数及び平均入出力サイズを含む入出力パターンを記憶する請求項１に記載のストレージ装置。
【請求項３】
シーケンシャルアクセス回数がランダムアクセス回数よりも多いライトデータに関しては、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズ＊平均シーケンシャルアクセス回数に決定する請求項２に記載のストレージ装置。
【請求項４】
シーケンシャルアクセス回数がランダムアクセス回数よりも少ないライトデータに関しては、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズに決定する請求項２に記載のストレージ装置。
【請求項５】
前記管理テーブルが、前記入出力パターンに対応付けて、ライトデータのタイプを記憶し、
前記入出力パターン解析手段がライトデータのタイプを解析して、解析結果を前記管理テーブルに書き込む請求項２に記載のストレージ装置。
【請求項６】
ライトデータがメタデータである場合には、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズに決定する請求項５に記載のストレージ装置。
【請求項７】
ライトデータがストリーミングデータである場合には、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズ＊平均シーケンシャルアクセス回数に決定する請求項５に記載のストレージ装置。
【請求項８】
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して解析結果を書き込む入出力パターン解析ステップと、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定ステップと、
前記ブロックサイズ決定ステップにおいて決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮ステップと、
を含むストレージ装置の制御方法。
【請求項９】
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して、解析結果を書き込む入出力パターン解析処理と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定処理と、
前記ブロックサイズ決定処理において決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮処理と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、ストレージ装置の制御方法及びプログラムに関する。特に、データ圧縮機能を備えたストレージ装置、ストレージ装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、データ記憶容量の増大に伴い、データ圧縮機能を備えたストレージ装置が利用されている（特許文献１参照）。このようなストレージ装置では、コントローラがホスト端末から受け取ったライトデータを一定サイズのブロックへ圧縮し、圧縮データを記録媒体である物理メモリに書き込む。また、ホスト端末からのリード要求に対しては、コントローラが、物理メモリからブロック単位の圧縮データを読み出し、伸長した後にリードデータとしてホスト端末に対して応答する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１５−５１８５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下の分析は、本発明の観点からなされたものである。なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。
【０００５】
特許文献１に開示のストレージ装置では、リード要求に対するストレージ装置の応答性能が低下するという問題点がある。
【０００６】
すなわち、ストレージ装置のコントローラは、ホスト端末からメタデータなどのサイズが小さいデータのリード要求を受け付けることがある。この場合には、コントローラは、要求されたデータのサイズに比べて大きいサイズのデータを伸長することになる。その結果、コントローラにかかる負荷が大きくなり、リード要求に対するストレージ装置の応答性能が低下する。
【０００７】
一方で、ストレージ装置のコントローラは、ホスト端末から、シーケンシャルデータなどのサイズが大きいデータのリード要求を受け付けることがある。この場合には、コントローラは、多数のブロックに分かれた圧縮データをブロック単位で読み出し、各データブロックを各々伸長する必要がある。その結果、コントローラにかかる負荷が大きくなり、ストレージ装置の応答性能が低下する。
【０００８】
そこで、本発明では、リード要求に対する応答性能を改善したストレージ装置、ストレージ装置の制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の視点によれば、ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルと、
前記ライトデータの入出力パターンを解析して、解析結果を前記管理テーブルに書き込む入出力パターン解析手段と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定手段と、
前記ブロックサイズ決定手段によって決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮手段と、
を備えたストレージ装置が提供される。
【００１０】
本発明の第２の視点によれば、ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して解析結果を書き込む入出力パターン解析ステップと、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定ステップと、
前記ブロックサイズ決定ステップにおいて決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮ステップと、
を含むストレージ装置の制御方法が提供される。
【００１１】
本発明の第３の視点によれば、ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して、解析結果を書き込む入出力パターン解析処理と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定処理と、
前記ブロックサイズ決定処理において決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮処理と、
をコンピュータに実行させるプログラムが提供される。
【発明の効果】
【００１２】
本発明の各視点によれば、リード要求に対する応答性能を改善したストレージ装置、ストレージ装置の制御方法及びプログラムが提供される。
【図面の簡単な説明】
【００１３】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態のストレージ装置の一構成を示すブロック図である。
【図３】管理テーブル１２０に記憶される情報の一例を示した図である。
【図４】アドレス変換マップ１３０に記憶される情報の一例を示した図である。
【図５】ホスト端末３０からライトデータを受信した場合のストレージ装置１０による処理フローを示す図である。
【図６】ストレージ装置１０によるライトデータの圧縮及び格納に関する処理フローを示す図である。
【図７】ホスト端末３０からリード要求を受信した場合のストレージ装置１０による処理フローを示す図である。
【図８】第２の実施形態のアドレス変換マップ１３０の作成及び更新に関する処理フローを示す図である。
【図９】第３の実施形態の管理テーブル１２０に記憶される情報の一例を示した図である。
【図１０】第３の実施形態のストレージ装置１０によるライトデータの圧縮及び格納に関する処理フローを示す図である。
【発明を実施するための形態】
【００１４】
本発明のとり得る好適な実施形態について図面を参照して詳細に説明する。なお、以下の記載に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。
【００１５】
図１に示すように、ストレージ装置１０は、物理メモリ群２０と接続され、情報処理に必要なデータを記憶する記憶部１００と、情報処理を行う処理部２００とを有する。物理メモリ群２０は圧縮データを記憶する物理メモリ２１を複数有し、各物理メモリ２１は、バスなどを介してストレージ装置１０と接続される。記憶部１００は、ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブル１２０を含む。
【００１６】
処理部２００は、ホスト端末（図示せず）とも接続され、Ｉ／Ｏ（input/output）パターン解析部２１０と、ブロックサイズ決定部２２０と、データ圧縮／伸長部２３０とを有する。なお、Ｉ／Ｏパターン解析部２１０は入出力パターン解析手段とも称され、ブロックサイズ決定部２２０はブロックサイズ決定手段とも称される。また、データ圧縮／伸長部２３０は圧縮手段としての機能の一部を実行する。
【００１７】
Ｉ／Ｏパターン解析部２１０は、ホスト端末から受け付けたライトデータの入出力パターンを解析して、解析結果を管理テーブル１２０に書き込む。ブロックサイズ決定部２２０は、管理テーブル１２０を参照してライトデータを圧縮するブロックのサイズを決定する。データ圧縮／伸長部２３０は、ブロックサイズ決定部２２０によって決定されたサイズでライトデータを圧縮する。そして、ストレージ装置１０は、圧縮データを物理メモリ２１に書き込む。
【００１８】
具体的な一例を挙げて説明すると、管理テーブル１２０は、ホスト端末から受け付けたライトデータに対するホスト端末からのアクセスパターン（シーケンシャルアクセス回数、ランダムアクセス回数、平均Ｉ／Ｏサイズ）を記憶する。Ｉ／Ｏパターン解析部２１０は、ホスト端末から受け付けたライトデータに対するホスト端末からのアクセスパターンを解析して、解析結果を管理テーブル１２０に書き込む。
【００１９】
ブロックサイズ決定部２２０は、管理テーブル１２０を参照して、例えば、シーケンシャルアクセス回数がランダムアクセス回数よりも多いライトデータに関しては、ブロックのサイズを「平均Ｉ／Ｏサイズ＊平均シーケンシャルアクセス回数」に決定する。また、ブロックサイズ決定部２２０は、シーケンシャルアクセス回数がランダムアクセス回数よりも少ないライトデータに関しては、ブロックのサイズを「平均Ｉ／Ｏサイズ」に決定する。
【００２０】
データ圧縮／伸長部２３０は、ブロックサイズ決定部２２０によって決定されたブロックのサイズにライトデータを圧縮する。そして、ストレージ装置１０は、圧縮データを物理メモリ２１に書き込む。また、ストレージ装置１０は、ホスト端末からのリード要求を受け付けた場合に、物理メモリ２１から圧縮データを読み出し、データ圧縮／伸長部２３０によって圧縮データを伸長した後にリードデータとしてホスト端末に対して応答する。
【００２１】
このように、ストレージ装置１０は、小さいサイズでリード要求を受ける傾向が高い、言い換えるとランダムアクセス回数が多いライトデータに関しては、小さいサイズのブロックに圧縮して物理メモリ２１に書き込む。その一方で、ストレージ装置１０は、大きいサイズでリード要求を受ける傾向が高い、言い換えるとシーケンシャルアクセス回数が多いライトデータに関しては、大きいサイズのブロックに圧縮して物理メモリ２１に書き込む。
【００２２】
そのため、ストレージ装置１０は、サイズが小さいデータのリード要求に対して応答する際に、必要に応じたサイズのデータを伸長する傾向が高くなる。また、ストレージ装置１０は、サイズが大きいデータのリード要求に対して応答する際に、物理メモリ２１から読み出す圧縮データのブロック数が少なくて済む。そのため、データ圧縮／伸長部２３０にかかる負担が軽減され、結果的にリード要求に対するストレージ装置１０の応答性能が改善される。
【００２３】
以下では本発明のとり得る好適な実施形態について図面を参照して詳細に説明する。
【００２４】
［第１の実施形態］
図２に示すように、ストレージ装置１０は、物理メモリ群２０及びホスト端末３０と接続され、記憶部１００と、処理部２００と、ホスト制御部３００と、メモリ制御部４００とを有する。物理メモリ群２０は、圧縮データを記憶するＨＤＤ（hard disk drive）、ＳＤＤ（solid state drive）などの物理メモリ２１を複数有し、各物理メモリ２１は、バスなどを介してストレージ装置１０と接続される。なお、物理メモリ２１はストレージ装置１０の内部に搭載することもできる。ホスト端末３０は、ネットワークを介して接続されるコンピュータなどであり、ストレージ装置１０に対してライトデータ、リード要求などを送信する。
【００２５】
記憶部１００は、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）などであり、具体的には、圧縮前データ１１１及び圧縮後データ１１２を記憶するキャッシュメモリ１１０を含む。また、記憶部１００は、ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブル１２０、及び論理ボリュームと物理ボリュームのアドレス関連付けを行うためのアドレス変換マップ１３０も記憶する。なお、管理テーブル１２０及びアドレス変換マップ１３０は、キャッシュメモリ１１０に格納することもできる。
【００２６】
管理テーブル１２０は、図３に示すように、各論理ボリューム３１１の領域ごとに、シーケンシャルアクセスの回数、ランダムアクセスの回数及び平均Ｉ／Ｏサイズを記憶する。なお、シーケンシャルアクセスの回数及びランダムアクセスの回数は、アクセスパターンとも称される。また、平均Ｉ／Ｏサイズは平均入出力サイズとも称される。
【００２７】
アドレス変換マップ１３０は、論理ボリュームマップ（図４Ａ）と、物理ボリュームマップ（図４Ｂ）とで構成される。論理ボリュームマップは、論理ボリュームのアドレスと物理ボリュームのアドレスとを対応付けて記憶し、物理ボリュームマップは、物理ボリュームのアドレスと、その物理ボリュームを構成する物理メモリ２１のアドレスとを対応付けて記憶する。なお、図４Ｃは、論理ボリュームマップと物理ボリュームマップに記憶される情報を概念的に示した図である。
【００２８】
処理部２００は、ＣＰＵ（Central Processing Unit）やチップを含んで構成され、記憶部１００及びホスト制御部３００と接続され、Ｉ／Ｏパターン解析部２１０と、ブロックサイズ決定部２２０と、データ圧縮／伸長部２３０とを有する。
【００２９】
Ｉ／Ｏパターン解析部２１０は、ホスト端末３０から受け付けたライトデータの入出力パターンを解析して、解析結果を管理テーブル１２０に書き込む。ブロックサイズ決定部２２０は、管理テーブル１２０を参照して圧縮データのブロックのサイズを決定する。データ圧縮／伸長部２３０は、ブロックサイズ決定部２２０によって決定されたサイズでライトデータを圧縮する。
【００３０】
ホスト制御部３００は、論理ボリューム管理部３１０によって管理される論理ボリューム３１１を複数有する。論理ボリューム３１１は、ホスト端末３０によってＩ／Ｏ対象として認識されるものである。メモリ制御部４００は、物理メモリ群２０を制御する機能を有し、物理ボリューム管理部４１０によって管理される物理ボリューム４１１を複数有する。なお、メモリ制御部４００は、圧縮手段としての機能の一部を実行する。
【００３１】
以下では、図面を参照しつつ、ストレージ装置１０による一連の処理の流れ、及び各機能部による処理を説明する。
【００３２】
図５は、ホスト端末３０からライトデータを受信した場合のストレージ装置１０による処理フローを示す図である。ホスト制御部３００はホスト端末３０からライトコマンド及びライトデータを受信する（ステップＳ１１）。例えば、ホスト制御部３００はホスト端末３０から論理ボリューム３１１（＃０）の領域３に、４ＫＢ（キロバイト）のライトデータを書き込む旨のライトコマンドを受け付ける。ホスト制御部３００がライトデータを受信すると、Ｉ／Ｏパターン解析部２１０は受信した受信したライトデータのＩ／Ｏパターンを解析する（ステップＳ１２）。具体的には、Ｉ／Ｏパターン解析部２１０は、Ｉ／Ｏパターンとして、シーケンシャルアクセスの回数、ランダムアクセスの回数と平均Ｉ／Ｏサイズを解析する。例えば、Ｉ／Ｏパターン解析部２１０は、ホスト端末３０からライトデータを受信した時に、同一の送信元から前回受信したライトデータと比較して、アドレスに連続性がある場合にはシーケンシャルアクセスであると判定する。一方で、Ｉ／Ｏパターン解析部２１０は、アドレスに連続性がない場合にはランダムアクセスであると判定する。
【００３３】
そして、Ｉ／Ｏパターン解析部２１０は、各論理ボリューム３１１の領域ごとに、Ｉ／Ｏパターンを管理テーブル１２０に格納する（ステップＳ１３）。具体的には、Ｉ／Ｏパターン解析部２１０は、上記の判定結果を管理テーブル１２０に反映する。そしてＩ／Ｏパターン解析部２１０は、論理ボリュームアドレスと対応付けて、ライトデータをキャッシュメモリ１１０に圧縮前データ１１１として格納する（ステップＳ１４）。その後Ｉ／Ｏパターン解析部２１０は、ホスト端末３０に対して、書き込み処理の正常終了を応答する（ステップＳ１５）。
【００３４】
図６は、ストレージ装置１０によるライトデータの圧縮及び格納に関する処理フローを示す図である。メモリ制御部４００は、キャッシュメモリ１１０に圧縮前データが格納されていることを検出すると（ステップＳ２１、ＹＥＳ）、ブロックサイズ決定部２２０に対してブロックサイズの決定を指示する。ブロックサイズ決定部２２０は、メモリ制御部４００から指示を受けると、圧縮前データ１１１に対応付けられた論理ボリュームアドレスを取得する（ステップＳ２２）。そして、ブロックサイズ決定部２２０は、管理テーブル１２０を参照して（ステップＳ２３）、圧縮データのブロックのサイズを決定する（ステップＳ２４〜２６）。
【００３５】
例えば、ブロックサイズ決定部２２０は、図２に示す管理テーブル１２０では、論理ボリューム３１１（＃０）の領域３に関しては、シーケンシャルアクセス回数がランダムアクセス回数よりも少ないと判断する（ステップＳ２４、ＹＥＳ）。ここで、ブロックサイズ決定部２２０は、ブロックのサイズを論理ボリューム３１１（＃０）の領域３の平均Ｉ／Ｏサイズである４ＫＢに決定する（ステップＳ２５）。
【００３６】
一方で、ブロックサイズ決定部２２０は、図２に示す管理テーブル１２０では、論理ボリューム３１１（＃０）の領域２に関しては、シーケンシャルアクセス回数がランダムアクセス回数よりも多いと判断する（ステップＳ２４、ＮＯ）。ここで、ブロックサイズ決定部２２０は、ブロックのサイズを論理ボリューム３１１（＃０）の領域２の「平均Ｉ／Ｏサイズ＊平均シーケンシャルアクセス回数」に決定する（ステップＳ２６）。ここで、平均シーケンシャルアクセス回数とは、１回のシーケンシャルアクセスにおいて生じるコマンドの発行回数の平均値に相当する。例えば、論理ボリューム３１１（＃０）の領域２には１００ＭＢ又は２００ＭＢのファイルが格納されており、１回のコマンドを発行する毎に１ＭＢのデータが読み出されるものとする。このとき、１００ＭＢのファイルの読み出しには１００回のコマンドの発行が必要であり、２００ＭＢのファイルの読み出しには２００回のコマンドの発行が必要である。これらのコマンドの発行回数の平均値が平均シーケンシャルアクセス回数に相当し、ブロックサイズ決定部２２０は、論理ボリューム３１１（＃０）の領域２のブロックのサイズを、５１２ＫＢ＊１５０≒７５ＭＢに決定する。
【００３７】
そして、ブロックサイズ決定部２２０は、論理ボリュームアドレスと決定したブロックのサイズをメモリ制御部４００に対して返信する。メモリ制御部４００は、ブロックサイズ決定部２２０からブロックのサイズを受け付けると、データ圧縮／伸長部２３０に対して、論理ボリュームアドレスと受け付けたブロックのサイズへの圧縮前データ１１１の圧縮を指示する。データ圧縮／伸長部２３０は、メモリ制御部４００から指示を受け付けると、キャッシュメモリ１１０から圧縮前データ１１１を読み出して指定されたブロックのサイズへ圧縮し、キャッシュメモリ１１０に圧縮後データ１１２として格納する（ステップＳ２７）。メモリ制御部４００は、圧縮後データ１１２が格納されると、アドレス変換マップ１３０を参照して、ブロックサイズ決定部２２０から受け付けた論理ボリュームアドレスに紐付けられる物理メモリ２１のアドレスへ圧縮後データ１１２を格納する（ステップＳ２８）。
【００３８】
図７は、ホスト端末３０からリード要求を受信した場合のストレージ装置１０による処理フローを示す図である。ホスト制御部３００はホスト端末３０からリード要求を受信する（ステップＳ３１）。例えば、ホスト制御部３００はホスト端末３０から論理ボリューム３１１（＃０）の領域３に格納されたデータを読み出す旨のリード要求を受信する。ホスト制御部３００がリード要求を受信すると、Ｉ／Ｏパターン解析部２１０は、要求されたデータのＩ／Ｏパターンを解析し（ステップＳ３２）、管理テーブル１２０を更新する（ステップＳ３３）。具体的には、Ｉ／Ｏパターン解析部２１０は、リード要求がシーケンシャルアクセス又はランダムアクセスのいずれであるかを解析し、管理テーブル１２０のアクセスパターンを更新する。また、Ｉ／Ｏパターン解析部２１０は、リード要求されたデータのサイズを解析して管理テーブル１２０の平均Ｉ／Ｏサイズを更新する。
【００３９】
メモリ制御部４００は、アドレス変換マップ１３０を参照して、リード要求に規定された論理ボリュームアドレスに対応する物理メモリ２１のアドレスから圧縮データを読み出して、キャッシュメモリ１１０に圧縮後データ１１２として格納する（ステップＳ３４）。そして、メモリ制御部４００は、データ圧縮／伸長部２３０に対して圧縮データの伸長を指示する。データ圧縮／伸長部２３０は、メモリ制御部４００から指示を受け付けると、キャッシュメモリ１１０から圧縮後データ１１２を読み出して伸長し（ステップＳ３５）、キャッシュメモリ１１０に圧縮前データ１１１として格納する。そして、ホスト制御部３００はキャッシュメモリ１１０に格納された圧縮前データ１１１をホスト端末３０に対して送信する（ステップＳ３６）。
【００４０】
上記のように、第１の実施形態のストレージ装置１０は、サイズが小さいデータのリード要求に対して応答する際に、必要に応じたサイズのデータを伸長する傾向が高くなる。また、ストレージ装置１０は、サイズが大きいデータのリード要求に対して応答する際に、物理メモリ２１から読み出す圧縮データのブロック数が少なくて済む。そのため、データ圧縮／伸長部２３０にかかる負担が軽減され、結果的にリード要求に対するストレージ装置１０の応答性能が改善される。
【００４１】
［第２の実施形態］
第１の実施形態においてアドレス変換マップ１３０は適宜作成及び更新されるものである。そこで、第２の実施形態として、アドレス変換マップ１３０の作成及び更新処理について詳しく説明する。図８に示すように、メモリ制御部４００は、ライトデータに関して、圧縮前データ１１１の論理ボリュームアドレスに関するエントリがアドレス変換マップ１３０に存在しない場合には（ステップＳ４１、ＮＯ）、新たなエントリを作成する（ステップＳ４２）。また、メモリ制御部４００は、アドレス変換マップ１３０にエントリが存在する場合には（ステップＳ４１、ＹＥＳ）、該当する物理メモリ２１のアドレスが、ライトデータの圧縮データを格納できる容量を有するものか否かを判定する（ステップＳ４３）。容量が無いと判定した場合には（ステップＳ４３、ＮＯ）、メモリ制御部４００は、新たな物理メモリ２１のアドレスを割り当てて、アドレス変換マップ１３０を更新する（ステップＳ４４）。容量が有ると判定した場合には（ステップＳ４３、ＹＥＳ）、メモリ制御部４００は、既存の物理メモリ２１のアドレスを、ライトデータの圧縮データを格納できる容量のアドレスに更新する（ステップＳ４５）。
【００４２】
このように、アドレス変換マップ１３０は適宜作成及び更新される。
【００４３】
［第３の実施形態］
圧縮データのブロックのサイズは、ライトデータのタイプに基づいて決定しても良い。この実施形態では、管理テーブル１２０は、入出力パターンに対応付けて、ライトデータのタイプを記憶する。具体的には、管理テーブル１２０は、図９に示すように、各論理ボリューム３１１の領域ごとに、シーケンシャルアクセスの回数、ランダムアクセスの回数、平均Ｉ／Ｏサイズ及びデータのタイプを記憶する。データのタイプとは、ライトデータのタイプを示す情報であり、例えば、「メタデータ」、「ストリーミングデータ」などである。
【００４４】
Ｉ／Ｏパターン解析部２１０は、ホスト端末３０から受信したライトデータのタイプを解析する。そして、Ｉ／Ｏパターン解析部２１０は、解析結果をデータのタイプとして管理テーブル１２０に書き込む。
【００４５】
ブロックサイズ決定部２２０は、ライトデータがメタデータである場合には、ブロックのサイズを、平均入出力サイズに決定する。また、ライトデータがストリーミングデータである場合には、ブロックのサイズを、平均入出力サイズ＊平均シーケンシャルアクセス回数に決定する。
【００４６】
図１０は、第３の実施形態のストレージ装置１０によるライトデータの圧縮及び格納に関する処理フローを示す図である。なお、第３の実施形態のストレージ装置１０によるライトデータの圧縮及び格納に関する処理は、圧縮データのブロックのサイズをライトデータのタイプに基づいて決定することを除いて図６に示す処理フローと同様であり、以下では相違点について説明する。
【００４７】
ブロックサイズ決定部２２０は、例えば、図９に示す管理テーブル１２０では、論理ボリューム３１１（＃０）の領域３に関しては、ライトデータのタイプがメタデータであると判断する（ステップＳ５４、ＹＥＳ）。ここで、ブロックサイズ決定部２２０は、ブロックのサイズを論理ボリューム３１１（＃０）の領域３の平均Ｉ／Ｏサイズである４ＫＢに決定する（ステップＳ５５）。
【００４８】
一方で、ブロックサイズ決定部２２０は、図９に示す管理テーブル１２０では、論理ボリューム３１１（＃０）の領域２に関しては、ライトデータのタイプがストリーミングデータであると判断する（ステップＳ５４、ＮＯ）。ここで、ブロックサイズ決定部２２０は、ブロックのサイズを論理ボリューム３１１（＃０）の領域２の「平均Ｉ／Ｏサイズ＊平均シーケンシャルアクセス回数」に決定する（ステップＳ５６）。
【００４９】
このように、ストレージ装置１０は、メタデータのリード要求に対して応答する際に、必要に応じたサイズのデータを伸長する傾向が高くなる。また、ストレージ装置１０は、ストリーミングデータのリード要求に対して応答する際に、物理メモリ２１から読み出す圧縮データのブロック数が少なくて済む。そのため、データ圧縮／伸長部２３０にかかる負担が軽減され、結果的にリード要求に対するストレージ装置１０の応答性能が改善される。
【００５０】
なお、ストレージ装置１０は、例えば、処理モジュールを搭載したコンピュータによって実現される。当該処理モジュールは、例えば、メモリに格納されたプログラムをＣＰＵが実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能は、何らかのハードウェア及び／又はソフトウェアにより実現できればよい。
【００５１】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【００５２】
（付記１）
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルと、
前記ライトデータの入出力パターンを解析して、解析結果を前記管理テーブルに書き込む入出力パターン解析手段と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定手段と、
前記ブロックサイズ決定手段によって決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮手段と、
を備えたストレージ装置。
【００５３】
（付記２）
前記管理テーブルが、シーケンシャルアクセスの回数、ランダムアクセスの回数及び平均入出力サイズを含む入出力パターンを記憶する付記１に記載のストレージ装置。
【００５４】
（付記３）
シーケンシャルアクセス回数がランダムアクセス回数よりも多いライトデータに関しては、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズ＊平均シーケンシャルアクセス回数に決定する付記２に記載のストレージ装置。
【００５５】
（付記４）
シーケンシャルアクセス回数がランダムアクセス回数よりも少ないライトデータに関しては、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズに決定する付記２に記載のストレージ装置。
【００５６】
（付記５）
前記管理テーブルが、前記入出力パターンに対応付けて、ライトデータのタイプを記憶し、
前記入出力パターン解析手段がライトデータのタイプを解析して、解析結果を前記管理テーブルに書き込む付記２に記載のストレージ装置。
【００５７】
（付記６）
ライトデータがメタデータである場合には、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズに決定する付記５に記載のストレージ装置。
【００５８】
（付記７）
ライトデータがストリーミングデータである場合には、前記ブロックサイズ決定手段がブロックのサイズを、平均入出力サイズ＊平均シーケンシャルアクセス回数に決定する付記５に記載のストレージ装置。
【００５９】
（付記８）
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して解析結果を書き込む入出力パターン解析ステップと、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定ステップと、
前記ブロックサイズ決定ステップにおいて決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮ステップと、
を含むストレージ装置の制御方法。
【００６０】
（付記９）
ホスト端末から受け付けたライトデータの入出力パターンを管理するための管理テーブルに、ライトデータの入出力パターンを解析して、解析結果を書き込む入出力パターン解析処理と、
前記管理テーブルを参照して前記ライトデータを圧縮するブロックのサイズを決定するブロックサイズ決定処理と、
前記ブロックサイズ決定処理において決定されたブロックのサイズへ前記ライトデータを圧縮して、圧縮データを物理メモリに書き込む圧縮処理と、
をコンピュータに実行させるプログラム。
【００６１】
なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００６２】
１０  ストレージ装置
２０  物理メモリ群
２１  物理メモリ
３０  ホスト端末
１００  記憶部
１１０  キャッシュメモリ
１１１  圧縮前データ
１１２  圧縮後データ
１２０  管理テーブル
１３０  アドレス変換マップ
２００  処理部
２１０  Ｉ／Ｏパターン解析部
２２０  ブロックサイズ決定部
２３０  データ圧縮／伸長部
３００  ホスト制御部
３１０  論理ボリューム管理部
３１１  論理ボリューム
４００  メモリ制御部
４１０  物理ボリューム管理部
４１１  物理ボリューム
【図１】
2018169773.tif 000003
【図２】
2018169773.tif 000004
【図３】
2018169773.tif 000005
【図４】
2018169773.tif 000006
【図５】
2018169773.tif 000007
【図６】
2018169773.tif 000008
【図７】
2018169773.tif 000009
【図８】
2018169773.tif 000010
【図９】
2018169773.tif 000011
【図１０】
2018169773.tif 000012