(57)【要約】  記憶装置に格納するデータ量の削減効果とその格納処理時間の短縮効果とを両立させる。  書き込み制御部（１４）は、記憶装置（１１）への書き込みが要求されたデータ（Ｄａ）を書き込み部（１２）が記憶装置（１１）に書き込む第１の処理と、データ（Ｄａ）を圧縮部（１３）が圧縮し、圧縮により得られた圧縮データ（Ｄｂ）を書き込み部（１２）が記憶装置（１１）に書き込む第２の処理とを並列に実行させる。書き込み制御部（１４）は、第１の処理と第２の処理のうち処理時間が短い方の処理によって記憶装置（１１）に書き込まれたデータを、記憶装置（１１）における有効な書き込みデータとする。
2012124100.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶装置に書き込む書き込み部と、
データを圧縮する圧縮部と、
前記記憶装置への書き込みが要求された第１のデータを前記書き込み部が前記記憶装置に書き込む第１の処理と、前記第１のデータを前記圧縮部が圧縮し、圧縮により得られた第２のデータを前記書き込み部が前記記憶装置に書き込む第２の処理とを実行させ、前記第１の処理と前記第２の処理のうち処理時間が短い方の処理によって前記記憶装置に書き込まれたデータを、前記記憶装置における有効な書き込みデータとする書き込み制御部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記書き込み制御部は、前記第２の処理において前記圧縮部によって前記第２のデータが得られたとき、得られた前記第２のデータのデータ量と、前記第１のデータのうち前記第１の処理における書き込み未完了データのデータ量とを比較し、前記第２のデータのデータ量が前記書き込み未完了データのデータ量より大きい場合には、前記第１の処理を続行させるとともに前記第２の処理を中止させ、前記第２のデータのデータ量が前記書き込み未完了データのデータ量以下である場合には、前記第２の処理を続行させるとともに前記第１の処理を中止させることを特徴とすることを特徴とする請求の範囲第１項記載の情報処理装置。
【請求項３】
前記書き込み制御部は、前記第１の処理と前記第２の処理のうち一方の処理が終了したことを検出すると、終了していない他方の処理を中止させることを特徴とする請求の範囲第１項記載の情報処理装置。
【請求項４】
前記情報処理装置の処理負荷を検出する処理負荷検出部をさらに有し、
前記書き込み制御部は、前記第１のデータの書き込み要求を受け付けたとき、前記処理負荷検出部によって検出された処理負荷を示す値が所定値を超える場合には、前記第１の処理を実行させずに前記第２の処理を実行させる、
ことを特徴とする請求の範囲第１項〜第３項のいずれか１項に記載の情報処理装置。
【請求項５】
前記書き込み制御部は、前記処理負荷を示す値が所定値を超え、前記第２の処理を実行させたとき、前記圧縮部から得られた前記第２のデータのデータ量を検出し、前記第２のデータのデータ量が所定の判定しきい値以下である場合には、次に前記記憶装置への書き込みが要求されたデータについて、前記第１の処理を実行させずに前記第２の処理を実行させ、前記第２のデータのデータ量が所定のしきい値を超える場合には、次に前記記憶装置への書き込みが要求されたデータについて、前記第２の処理を実行させずに前記第１の処理を実行させることを特徴とする請求の範囲第４項記載の情報処理装置。
【請求項６】
第１の記憶装置と、
第２の記憶装置と、
前記第１の記憶装置を一次ストレージとし、前記第２の記憶装置を二次ストレージとした階層型ストレージシステムの動作を制御するストレージ制御装置と、
上位装置から前記階層型ストレージシステム内のデータに対するアクセスが要求されたとき、前記第１の記憶装置にアクセスするアクセス装置と、
を有し、
前記アクセス装置は、
データを前記第１の記憶装置に書き込む書き込み部と、
データを圧縮する圧縮部と、
前記上位装置から前記階層型ストレージシステムへの書き込みが要求された第１のデータを前記書き込み部が前記第１の記憶装置に書き込む第１の処理と、前記第１のデータを前記圧縮部が圧縮し、圧縮により得られた第２のデータを前記書き込み部が前記第１の記憶装置に書き込む第２の処理とを実行させ、前記第１の処理と前記第２の処理のうち処理時間が短い方の処理によって前記第１の記憶装置に書き込まれたデータを、前記第１の記憶装置における有効な書き込みデータとする書き込み制御部と、
を有することを特徴とするストレージシステム。
【請求項７】
前記書き込み制御部は、前記第２の処理において前記圧縮部によって前記第２のデータが得られたとき、得られた前記第２のデータのデータ量と、前記第１のデータのうち前記第１の処理における書き込み未完了データのデータ量とを比較し、前記第２のデータのデータ量が前記書き込み未完了データのデータ量より大きい場合には、前記第１の処理を続行させるとともに前記第２の処理を中止させ、前記第２のデータのデータ量が前記書き込み未完了データのデータ量以下である場合には、前記第２の処理を続行させるとともに前記第１の処理を中止させることを特徴とすることを特徴とする請求の範囲第６項記載のストレージシステム。
【請求項８】
前記書き込み制御部は、前記第１の処理と前記第２の処理のうち一方の処理が終了したことを検出すると、終了していない他方の処理を中止させることを特徴とする請求の範囲第６項記載のストレージシステム。
【請求項９】
前記アクセス装置は、自装置の処理負荷を検出する処理負荷検出部をさらに有し、
前記書き込み制御部は、前記第１のデータの書き込み要求を受け付けたとき、前記処理負荷検出部によって検出された処理負荷を示す値が所定値を超える場合には、前記第１の処理を実行させずに前記第２の処理を実行させる、
ことを特徴とする請求の範囲第６項〜第８項のいずれか１項に記載のストレージシステム。
【請求項１０】
前記書き込み制御部は、前記処理負荷を示す値が所定値を超え、前記第２の処理を実行させたとき、前記圧縮部から得られた前記第２のデータのデータ量を検出し、前記第２のデータのデータ量が所定の判定しきい値以下である場合には、次に前記記憶装置への書き込みが要求されたデータについて、前記第１の処理を実行させずに前記第２の処理を実行させ、前記第２のデータのデータ量が所定のしきい値を超える場合には、次に前記記憶装置への書き込みが要求されたデータについて、前記第２の処理を実行させずに前記第１の処理を実行させることを特徴とする請求の範囲第９項記載のストレージシステム。
【請求項１１】
情報処理装置が、
記憶装置への書き込みが要求された第１のデータを前記記憶装置に書き込む第１の処理と、前記第１のデータを圧縮し、圧縮により得られた第２のデータを前記記憶装置に書き込む第２の処理とを実行し、
前記第１の処理と前記第２の処理のうち処理時間が短い方の処理によって前記記憶装置に書き込まれたデータを、前記記憶装置における有効な書き込みデータとして選択する、
ことを特徴とする書き込み制御方法。
【請求項１２】
前記情報処理装置は、前記第２の処理において圧縮により前記第２のデータが得られたとき、得られた前記第２のデータのデータ量と、前記第１のデータのうち前記第１の処理における書き込み未完了データのデータ量とを比較し、前記第２のデータのデータ量が前記書き込み未完了データのデータ量より大きい場合には、前記第１の処理を続行するとともに前記第２の処理を中止し、前記第２のデータのデータ量が前記書き込み未完了データのデータ量以下である場合には、前記第２の処理を続行するとともに前記第１の処理を中止することを特徴とすることを特徴とする請求の範囲第１１項記載の書き込み制御方法。
【請求項１３】
前記情報処理装置は、前記第１の処理と前記第２の処理のうち一方の処理が終了したことを検出すると、終了していない他方の処理を中止することを特徴とする請求の範囲第１１項記載の書き込み制御方法。
【請求項１４】
前記情報処理装置は、前記第１のデータの書き込み要求を受け付けたとき、自装置の処理負荷を検出し、検出した処理負荷を示す値が所定値を超える場合には、前記第１の処理を実行せずに前記第２の処理を実行することを特徴とする請求の範囲第１１項〜第１３項のいずれか１項に記載の書き込み制御方法。
【請求項１５】
前記情報処理装置は、前記処理負荷を示す値が所定値を超え、前記第２の処理を実行したとき、圧縮により得られた前記第２のデータのデータ量を検出し、前記第２のデータのデータ量が所定の判定しきい値以下である場合には、次に前記記憶装置への書き込みが要求されたデータについて、前記第１の処理を実行せずに前記第２の処理を実行し、前記第２のデータのデータ量が所定のしきい値を超える場合には、次に前記記憶装置への書き込みが要求されたデータについて、前記第２の処理を実行せずに前記第１の処理を実行することを特徴とする請求の範囲第１４項記載の書き込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ストレージシステムおよび書き込み制御方法に関する。
【背景技術】
【０００２】
近年、磁気テープなどの大容量かつ安価な記録媒体をバックエンドのライブラリ装置として用いるとともに、ＨＤＤ（Hard Disk Drive）などのアクセス速度がより高速な記録媒体をキャッシュ装置として用いた階層型の仮想ストレージシステムが知られている。仮想ストレージシステムでは、ホスト装置に対して、キャッシュ装置に記憶されたデータをライブラリ装置のデータとして仮想的に認識させる。これにより、ホスト装置は、ライブラリ装置によって提供される大容量の記憶領域を、あたかも自装置に接続されているかのように利用できるようになる。【０００３】
また、仮想ストレージシステムの中には、バックエンドのライブラリ装置に格納されるデータ量の削減を目的として、ホスト装置から書き込みが要求されたデータを圧縮する機能を備えたものがある。例えば、ホスト装置から書き込みが要求されたデータを圧縮してキャッシュ装置に書き込み、圧縮した状態の書き込みデータをキャッシュ装置から読み出して、バックエンドのライブラリ装置に格納するものがある。【０００４】
なお、データを圧縮して記憶装置に格納する技術の例として、入力データの一部を異なる複数の圧縮法で並列に圧縮処理し、圧縮処理時間が短かった圧縮法を選択して残りの入力データを圧縮するものがある。また、他の例として、バックアップデータを一定長のブロックごとに異なる圧縮法で圧縮し、各ブロックの圧縮後データおよび圧縮前データのうち最小データ量のデータを選択し、選択したデータをバックアップ記憶するものがある。さらに、他の例として、一時記憶エリアを利用して、圧縮機能を持つ記憶装置にファイルを格納する際に、圧縮率がしきい値より高いファイルとしきい値より低いファイルとを交互に格納するものがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−２１０３２４号公報
【特許文献２】特開２００５−２９３２２４号公報
【特許文献３】特開２００８−２９３１４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、データを圧縮して記憶装置に格納する際の処理時間には、データの圧縮処理時間と、圧縮されたデータを記憶装置に転送する時間とが含まれる。また、一般的に、圧縮後のデータの残存率は圧縮対象のデータによって異なる。このため、データの圧縮残存率があまり高くない場合には、そのデータを圧縮しないで記憶装置に書き込む格納する処理にかかる時間より、そのデータを圧縮して記憶装置に格納する処理にかかる時間の方が長くなることがある。このような場合には、データの格納に必要な記憶容量を削減できたとしても、データの格納にかかる全体の処理時間が長くなってしまうという問題があった。【０００７】
本発明はこのような課題に鑑みてなされたものであり、記憶装置に格納するデータ量の削減効果とその格納処理時間の短縮効果とを両立させた情報処理装置、ストレージシステムおよび書き込み制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、書き込み部と、圧縮部と、書き込み制御部とを有する情報処理装置が提供される。この情報処理装置において、書き込み部は、データを記憶装置に書き込む。圧縮部は、データを圧縮する。書き込み制御部は、記憶装置への書き込みが要求された第１のデータを書き込み部が記憶装置に書き込む第１の処理と、第１のデータを圧縮部が圧縮し、圧縮により得られた第２のデータを書き込み部が記憶装置に書き込む第２の処理とを実行させ、第１の処理と第２の処理のうち処理時間が短い方の処理によって記憶装置に書き込まれたデータを、記憶装置における有効な書き込みデータとする。【０００９】
また、上記課題を解決するために、第１の記憶装置と、第２の記憶装置と、ストレージ制御装置と、アクセス装置とを有するストレージシステムが提供される。このストレージシステムにおいて、ストレージ制御装置は、第１の記憶装置を一次ストレージとし、第２の記憶装置を二次ストレージとした階層型ストレージシステムの動作を制御する。アクセス装置は、上位装置から階層型ストレージシステム内のデータに対するアクセスが要求されたとき、第１の記憶装置にアクセスする。また、アクセス装置は、書き込み部と、圧縮部と、書き込み制御部とを有する。書き込み部は、データを第１の記憶装置に書き込む。圧縮部は、データを圧縮する。書き込み制御部は、上位装置から階層型ストレージシステムへの書き込みが要求された第１のデータを書き込み部が第１の記憶装置に書き込む第１の処理と、第１のデータを圧縮部が圧縮し、圧縮により得られた第２のデータを書き込み部が第１の記憶装置に書き込む第２の処理とを実行させ、第１の処理と第２の処理のうち処理時間が短い方の処理によって第１の記憶装置に書き込まれたデータを、第１の記憶装置における有効な書き込みデータとする。【００１０】
さらに、上記課題を解決するために、上記の情報処理装置と同様の処理を実行する書き込み制御方法が提供される。
【発明の効果】
【００１１】
上記の情報処理装置および書き込み制御方法によれば、記憶装置に格納するデータ量の削減効果とその格納処理に要する時間の短縮効果とを両立させることができる。
また、上記のストレージシステムによれば、第１の記憶装置および第２の記憶装置にそれぞれ格納するデータ量の削減効果と、第１の記憶装置へのデータ格納処理に要する時間の短縮効果とを両立させることができる。【００１２】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係る情報処理装置の構成例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの全体構成例を示す図である。
【図３】チャネルプロセッサのハードウェア構成例を示す図である。
【図４】チャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理の例を示す第１のタイムチャートである。
【図５】チャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理の例を示す第２のタイムチャートである。
【図６】第２の実施の形態におけるデータ書き込み処理の例を示すタイムチャートである。
【図７】ＶＬ制御プロセッサおよびチャネルプロセッサが備える処理機能の例を示すブロック図である。
【図８】データ管理テーブルに格納される情報の例を示す図である。
【図９】ディスクアレイ装置に書き込まれるデータの構成例を示す図である。
【図１０】チャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理手順の例を示すフローチャートである。
【図１１】第３の実施の形態のチャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理手順の例を示すフローチャートである。
【図１２】第４の実施の形態のチャネルプロセッサおよびＶＬ制御プロセッサが備える処理機能の例を示すブロック図である。
【図１３】第４の実施の形態のチャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、実施の形態を図面を参照して詳細に説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る情報処理装置の構成例を示す図である。
【００１５】
図１に示す情報処理装置１は、記憶装置１１に対してデータを書き込む書き込み部１２と、データを圧縮する圧縮部１３と、書き込み部１２および圧縮部１３を用いた記憶装置１１へのデータ書き込み処理を制御する書き込み制御部１４とを備える。なお、図１の例では、記憶装置１１は情報処理装置１の内部に設けられるものとするが、記憶装置１１は情報処理装置１の外部に設けられていてもよい。
【００１６】
以下、情報処理装置１内のメモリ１５に記憶されたデータＤａを記憶装置１１に書き込むことが要求された場合を例に、情報処理装置１での処理を説明する。なお、書き込み要求対象のデータＤａは、情報処理装置１の外部に設けられた装置から受信したデータであってもよい。
【００１７】
書き込み制御部１４は、メモリ１５に記憶されたデータＤａを記憶装置１１に書き込む際に、次のような第１の処理と第２の処理とを同時に開始させて並列に実行させる。第１の処理は、データＤａを書き込み部１２がそのまま記憶装置１１に書き込む処理である。第２の処理は、データＤａを圧縮部１３が圧縮し、圧縮により得られた圧縮データＤｂを書き込み部１２が記憶装置１１に書き込む処理である。書き込み制御部１４は、これらの第１の処理と第２の処理のうち、処理時間が短い方の処理によって記憶装置１１に書き込まれたデータを、記憶装置１１における有効な書き込みデータとする。
【００１８】
例えば、第１の処理より第２の処理の処理時間の方が短い場合には、書き込み制御部１４は、第２の処理によって記憶装置１１に書き込まれた圧縮データＤｂを有効とする。この場合、データＤａを圧縮せずに記憶装置１１に書き込む場合と比較して、記憶装置１１に書き込むデータ量が削減され、記憶装置１１の記憶容量を節約できるとともに、書き込み処理全体に要する処理時間も短縮できる。
【００１９】
一方、第１の処理より第２の処理の処理時間が長い場合とは、圧縮部１３によるデータＤａの圧縮効率があまり高くなく、圧縮データＤｂの大きさが比較的大きいことで、圧縮データＤｂの書き込み処理時間が長くなってしまう場合である。この場合、書き込み制御部１４は、第１の処理によって書き込まれた未圧縮のデータＤａを有効な書き込みデータとする。これにより、記憶装置１１の容量削減成果は得られなくなるものの、圧縮した場合と比較して、書き込み処理全体に要する処理時間を短縮できる。
【００２０】
なお、第１の処理と第２の処理の各処理時間が同じである場合には、書き込み制御部１４は、第２の処理によって記憶装置１１に書き込まれた圧縮データＤｂを有効な書き込みデータとすればよい。これにより、記憶装置１１の記憶容量を節約する効果が得られる。
【００２１】
以上のような書き込み制御部１４による制御処理により、記憶装置１１に格納するデータ量の削減効果と、その格納処理にかかる時間の抑制効果とを両立させることができる。
なお、書き込み制御部１４は、例えば、次のような処理を行ってもよい。上記の第１の処理と第２の処理とを並列に実行させるとともに、第１の処理と第２の処理のどちらが先に終了するかを監視する。そして、書き込み制御部１４は、第１の処理と第２の処理のうちの一方の処理が終了したことを検出したときに、実行が終了した処理によって記憶装置１１に書き込まれたデータを有効な書き込みデータとしてもよい。
【００２２】
また、圧縮部１３によるデータ圧縮効率がどのようになるかは、圧縮部１３が実際にデータの圧縮を完了した後に認識できる。このことを利用して、書き込み制御部１４は、次のような処理を行ってもよい。書き込み制御部１４は、第２の処理において、圧縮部１３によるデータＤａの圧縮処理が完了した時点で、圧縮データＤｂのデータ量と、第１の処理において書き込み部１２による記憶装置１１への書き込みが終了していない書き込み未完了データのデータ量とを比較する。
【００２３】
圧縮データＤｂのデータ量が、書き込み未完了データのデータ量以下である場合には、書き込み制御部１４は、第２の処理を続行させるとともに、第１の処理、すなわち元のデータＤａの記憶装置１１への書き込み処理を中止させる。これにより、書き込み部１２は圧縮データＤｂを記憶装置１１に書き込み、書き込みが終了した圧縮データＤｂが有効な書き込みデータとなる。
【００２４】
一方、圧縮データＤｂのデータ量が、書き込み未完了データのデータ量より大きい場合には、書き込み制御部１４は、第１の処理を続行させるとともに、第２の処理を中止させる。これにより、圧縮データＤｂは記憶装置１１に書き込まれなくなり、元のデータＤａが有効な書き込みデータとなる。
【００２５】
次に、上記の情報処理装置１が備える処理機能をストレージシステムに適用した実施の形態について説明する。
〔第２の実施の形態〕
図２は、第２の実施の形態に係るストレージシステムの全体構成例を示す図である。
【００２６】
図２に示すストレージシステム１００は、ディスクアレイ装置１１０、テープライブラリ装置１２０、仮想ライブラリ制御プロセッサ（以下、“ＶＬ制御プロセッサ”と略称する。ＶＬ：Virtual Library）２００、チャネルプロセッサ３００およびデバイスプロセッサ４００を有している。また、ＶＬ制御プロセッサ２００およびチャネルプロセッサ３００には、ホスト装置５００が接続されている。
【００２７】
なお、ホスト装置５００とチャネルプロセッサ３００の間、チャネルプロセッサ３００とディスクアレイ装置１１０との間、ディスクアレイ装置１１０とデバイスプロセッサ４００との間、および、デバイスプロセッサ４００とテープライブラリ装置１２０との間は、例えば、ＦＣ（Fibre Channel）規格の伝送路によって接続されている。また、ＶＬ制御プロセッサ２００と、ホスト装置５００、チャネルプロセッサ３００およびデバイスプロセッサ４００との間は、例えばＬＡＮ（Local Area Network）によって接続されている。
【００２８】
ディスクアレイ装置１１０は、複数のＨＤＤ（Hard Disk Drive）を備える記憶装置である。テープライブラリ装置１２０は、記録媒体として磁気テープを用いた記憶装置である。テープライブラリ装置１２０は、磁気テープに対するデータアクセスを行う１つ以上のテープドライブや、磁気テープを収容したテープカートリッジを搬送する機構などを備える。
【００２９】
ＶＬ制御プロセッサ２００は、ストレージシステム１００が、ディスクアレイ装置１１０を一次ストレージ（テープボリュームキャッシュ）とし、テープライブラリ装置１２０を二次ストレージとした階層型の仮想ライブラリシステムとして動作するように制御する。ここで、仮想ライブラリシステムとは、テープライブラリ装置１２０によって実現される大容量の記憶領域を、ホスト装置５００が、ディスクアレイ装置１１０を通じて仮想的に利用できるようにしたものである。
【００３０】
なお、仮想ライブラリシステムの二次ストレージとして用いる記録媒体としては、磁気テープの他、例えば、光ディスク、光磁気ディスクなどの可搬型の記録媒体を利用することもできる。また、仮想ライブラリシステムの一次ストレージとして用いる記憶装置としては、ＨＤＤの他、ＳＳＤ（Solid State Drive）などを利用することもできる。
【００３１】
チャネルプロセッサ３００は、ＶＬ制御プロセッサ２００による制御の下で、ホスト装置５００からの仮想ライブラリシステムへのアクセス要求に応じて、ディスクアレイ装置１１０にアクセスする。例えば、ホスト装置５００からデータの書き込み要求が発せられたとき、書き込みデータをホスト装置５００から受信して、ディスクアレイ装置１１０に書き込むとともに、ディスクアレイ装置１１０上の書き込みデータの書き込みアドレスをＶＬ制御プロセッサ２００に通知する。また、チャネルプロセッサ３００は、ホスト装置５００からデータの読み出し要求が発せられると、ＶＬ制御プロセッサ２００から読み出しアドレスの通知を受け、ディスクアレイ装置１１０上の通知された読み出しアドレスからデータを読み出して、ホスト装置５００に送信する。さらに、チャネルプロセッサ３００は、ホスト装置５００から書き込みを要求されたデータを圧縮してディスクアレイ装置１１０に書き込む機能を備える。
【００３２】
デバイスプロセッサ４００は、ＶＬ制御プロセッサ２００による制御の下で、ディスクアレイ装置１１０およびテープライブラリ装置１２０へのアクセスを行い、ディスクアレイ装置１１０とテープライブラリ装置１２０との間でデータを転送する。
【００３３】
ホスト装置５００は、ユーザの入力操作に応じてＶＬ制御プロセッサ２００にアクセス要求を発することで、仮想ライブラリシステムにアクセスする。例えば、ホスト装置５００は、仮想ライブラリシステムにデータを書き込む際には、ＶＬ制御プロセッサ２００に対して書き込み要求を発するとともに、書き込みデータをチャネルプロセッサ３００に送信する。また、ホスト装置５００は、仮想ライブラリシステムに記憶されたデータを読み出す際には、ＶＬ制御プロセッサ２００に対して読み出し要求を発し、読み出しデータをチャネルプロセッサ３００から受信する。
【００３４】
ホスト装置５００では、例えば、ホスト装置５００が備えるＣＰＵがバックアップソフトウェアなどの所定のプログラムを実行することで、仮想ライブラリシステムへのアクセス処理が実行される。また、ホスト装置５００は、チャネルプロセッサ３００に書き込みデータを送信する際、書き込みデータを一定長のデータブロックに分割して送信する。さらに、ホスト装置５００は、チャネルプロセッサ３００から受信したデータブロックを結合することで、読み出しデータを復元する。
【００３５】
図３は、チャネルプロセッサのハードウェア構成例を示す図である。
チャネルプロセッサ３００は、例えば、図３に示すようなコンピュータとして実現される。チャネルプロセッサ３００は、ＣＰＵ３０１によって装置全体が制御されている。ＣＰＵ３０１には、バス３０８を介して、ＲＡＭ（Random Access Memory）３０２および複数の周辺機器が接続されている。
【００３６】
ＲＡＭ３０２は、チャネルプロセッサ３００の主記憶装置として使用される。ＲＡＭ３０２には、ＣＰＵ３０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ３０２には、ＣＰＵ３０１による処理に必要な各種データが格納される。
【００３７】
バス３０８に接続されている周辺機器としては、ＨＤＤ３０３、グラフィックインタフェース（Ｉ／Ｆ）３０４、光学ドライブ装置３０５、ＦＣインタフェース３０６およびＬＡＮインタフェース３０７がある。
【００３８】
ＨＤＤ３０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ３０３は、チャネルプロセッサ３００の二次記憶装置として使用される。ＨＤＤ３０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３９】
グラフィックインタフェース３０４には、ディスプレイ３０４ａが接続されている。グラフィックインタフェース３０４は、ＣＰＵ３０１からの命令に従って、各種の画像をディスプレイ３０４ａに表示させる。
【００４０】
光学ドライブ装置３０５は、レーザ光などを利用して、光ディスク３０５ａに記録されたデータの読み取りを行う。光ディスク３０５ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク３０５ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）などがある。
【００４１】
ＦＣインタフェース３０６は、ＦＣ規格の伝送路を通じて、ホスト装置５００やディスクアレイ装置１１０との間でデータを送受信する。ＬＡＮインタフェース３０７は、ＬＡＮを通じて、ＶＬ制御プロセッサ２００との間でデータを送受信する。
【００４２】
なお、ＶＬ制御プロセッサ２００、デバイスプロセッサ４００およびホスト装置５００も、図３と同様なコンピュータとして実現することができる。
次に、チャネルプロセッサ３００がディスクアレイ装置１１０に対してデータを書き込む処理について説明する。
【００４３】
前述のように、チャネルプロセッサ３００は、ホスト装置５００から受信した書き込みデータを圧縮する機能を備える。また、ホスト装置５００は、書き込みデータを一定長のデータブロックに分割して、チャネルプロセッサ３００に送信する。チャネルプロセッサ３００は、受信したデータブロックごとに圧縮処理を行い、圧縮後のデータブロックをディスクアレイ装置１１０に書き込む。
【００４４】
ここで、図４は、チャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理の例を示す第１のタイムチャートである。
図４において、「受信処理」とは、ホスト装置５００から送信されたデータブロックをチャネルプロセッサ３００が受信し、受信したデータブロックがチャネルプロセッサ３００内のＲＡＭ３０２に格納される処理を示す。また、「圧縮処理」とは、ＲＡＭ３０２に格納されたデータブロックをＣＰＵ３０１が読み出して圧縮し、圧縮により得られた圧縮データがＲＡＭ３０２に格納される処理を示す。また、「書き込み処理」とは、ＲＡＭ３０２に格納されたデータブロックまたは圧縮データが、ディスクアレイ装置１１０に送信されて格納される処理を示す。
【００４５】
ここで、説明をわかりやすくするために、「受信処理」におけるホスト装置５００からチャネルプロセッサ３００へのデータ転送速度と、「書き込み処理」におけるチャネルプロセッサ３００からディスクアレイ装置１１０へのデータ転送速度とは、同じであるものとする。これらのデータ転送速度は、例えば数Ｇｂｐｓ程度である。一方、「圧縮処理」では、チャネルプロセッサ３００内のＣＰＵ３０１とＲＡＭ３０２との間でバス３０８を通じたデータ転送が行われ、このときのデータ転送速度は、例えば数ＧＢｙｔｅｓ／ｓ程度となる。従って、「圧縮処理」の処理速度は、「受信処理」や「書き込み処理」の処理速度と比較して明らかに高速になる。なお、データブロックの圧縮処理に要する時間は、圧縮対象のデータブロックに関係なく同じになるものとする。
【００４６】
図４に示すケース１，２は、チャネルプロセッサ３００が、ホスト装置５００からデータブロックＤ１ａを受信してディスクアレイ装置１１０に書き込む場合の処理を示す。ケース１は、データブロックＤ１ａを圧縮して圧縮データＤ１ｂを生成した後、圧縮データＤ１ｂをディスクアレイ装置１１０に書き込む場合を示す。ケース２は、データブロックＤ１ａを圧縮せずにそのままディスクアレイ装置１１０に書き込む場合を示す。
【００４７】
また、図４に示すケース３，４は、チャネルプロセッサ３００が、ホスト装置５００からデータブロックＤ２ａを受信してディスクアレイ装置１１０に書き込む場合の処理を示す。ケース３は、データブロックＤ２ａを圧縮して圧縮データＤ２ｂを生成した後、圧縮データＤ２ｂをディスクアレイ装置１１０に書き込む場合を示す。ケース４は、データブロックＤ２ａを圧縮せずにそのままディスクアレイ装置１１０に書き込む場合を示す。
【００４８】
データブロックは一定長であるので、ケース１，２でデータブロックＤ１ａの受信処理に要する時間と、ケース３，４でデータブロックＤ２ａの受信処理に要する時間は、ともに（Ｔ１−Ｔ０）となる。また、ケース１でデータブロックＤ１ａの圧縮処理に要する時間と、ケース３でデータブロックＤ２ａの圧縮処理に要する時間は、ともに（Ｔ２−Ｔ１）となる。
【００４９】
ところで、圧縮後のデータの残存率は、圧縮対象のデータによって異なる。図４の例では、データブロックＤ１ａを圧縮したときの残存率は５０％であるものとし、データブロックＤ２ａを圧縮したときの残存率は９０％であるものとする。この場合、データブロックＤ１ａを圧縮した圧縮データＤ１ｂをディスクアレイ装置１１０に書き込む処理に要する時間（Ｔ３−Ｔ２）より、データブロックＤ２ａを圧縮した圧縮データＤ２ｂをディスクアレイ装置１１０に書き込む処理に要する時間（Ｔ５−Ｔ２）の方が長くなる。
【００５０】
圧縮後の残存率が低いデータブロックＤ１ａをディスクアレイ装置１１０に書き込む場合には、圧縮を行って圧縮データＤ１ｂをディスクアレイ装置１１０に書き込むケース１の処理時間（Ｔ３−Ｔ０）の方が、圧縮を行わずに元のデータブロックＤ１ａをディスクアレイ装置１１０に書き込むケース２の処理時間（Ｔ４−Ｔ０）より短くなる。すなわち、ケース１では、圧縮を行ったことにより、ディスクアレイ装置１１０の容量を節約できるとともに、データ書き込み処理全体に要する時間も短縮できる。
【００５１】
一方、圧縮後の残存率が高い場合には、圧縮を行ってディスクアレイ装置１１０に書き込む処理に要する時間の方が、圧縮を行わずにディスクアレイ装置１１０に書き込む処理に要する時間よりも長くなってしまう場合がある。図４の例では、データブロックＤ２ａをディスクアレイ装置１１０に書き込む場合には、圧縮を行って圧縮データＤ２ｂをディスクアレイ装置１１０に書き込むケース３の処理時間（Ｔ５−Ｔ０）の方が、圧縮を行わずに元のデータブロックＤ２ａをディスクアレイ装置１１０に書き込むケース４の処理時間（Ｔ４−Ｔ０）より長くなる。この場合、圧縮を行うことによりディスクアレイ装置１１０の容量を節約できるものの、データ書き込み処理全体に要する時間が長くなるという問題がある。
【００５２】
図５は、チャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理の例を示す第２のタイムチャートである。
図５において、データブロックＤ３ａ，Ｄ４ａは、ともに圧縮後の残存率が９０％であるものとする。ケース１１は、データブロックＤ３ａを受信して圧縮し、得られた圧縮データＤ３ｂをディスクアレイ装置１１０に書き込んだ後、続けてデータブロックＤ４ａを受信して圧縮し、得られた圧縮データＤ４ｂをディスクアレイ装置１１０に書き込む処理を示す。このケース１１の処理時間（Ｔ１３―Ｔ１０）は、データブロックＤ３ａ，Ｄ４ａをともに圧縮せずにディスクアレイ装置１１０に書き込んだ場合の処理時間より長くなる。
【００５３】
このような問題を解決する方法の一例として、１つのデータブロックを圧縮したときの残存率に応じて、次の所定数のデータブロックを圧縮するか否かを決定するという方法が考えられる。この方法は、連続して受信したデータブロックについての圧縮後の残存率は近い値になることが多いという性質を利用したものである。ケース１２は、この方法を採用した場合の処理例である。ケース１２の場合、チャネルプロセッサ３００は、データブロックＤ３ａの圧縮後に、得られた圧縮データＤ３ｂの残存率を検出する。チャネルプロセッサ３００は、検出した残存率が所定のしきい値を超えたと判定して、次に受信したデータブロックＤ４ａを圧縮せずにディスクアレイ装置１１０に書き込む。このような処理により、ケース１２での処理時間（Ｔ１２−Ｔ１０）は、ケース１１での処理時間（Ｔ１３−Ｔ１０）より短くなる。
【００５４】
しかしながら、圧縮後の残存率が高いデータブロックの次に、残存率が同様に高いデータブロックが必ず出現するとは限らない。ケース１３，１４はこのような場合の例であり、残存率が９０％となるデータブロックＤ３ａの次に、残存率が５０％となるデータブロックＤ５ａを受信した場合の処理を示す。
【００５５】
ケース１３は、ケース１２と同様に、圧縮データＤ３ｂをディスクアレイ装置１１０に書き込んだ後、圧縮データＤ３ｂの残存率が所定のしきい値を超えたことに基づいて、データブロックＤ５ａを圧縮せずにディスクアレイ装置１１０に書き込む処理を示す。一方、ケース１４は、データブロックＤ３ａ，Ｄ５ａをともに圧縮した状態でディスクアレイ装置１１０に書き込む処理を示す。ケース１３での処理時間（Ｔ１２−Ｔ１０）は、ケース１４での処理時間（Ｔ１１−Ｔ１０）より長くなってしまう。ケース１２，１３の例のように、残存率の検出結果に応じてその後のデータブロックを圧縮するか否かを決定する処理を採用したとしても、処理時間は必ずしも最短にならない。
【００５６】
本実施の形態では、次の図６に示すような方法を採ることで、データブロックごとの圧縮後の残存率に関係なく、データ書き込みに要する時間を最短にできるようにする。図６は、第２の実施の形態におけるデータ書き込み処理の例を示すタイムチャートである。
【００５７】
チャネルプロセッサ３００は、時刻Ｔ２０において、データブロックＤ３ａの受信を開始する。チャネルプロセッサ３００は、時刻Ｔ２１において、データブロックＤ３ａの受信処理（ＲＡＭ３０２への書き込み処理）を完了すると、「圧縮書き込み処理」と「非圧縮書き込み処理」とを同時に開始し、これらの処理を並列に実行する。
【００５８】
「圧縮書き込み処理」は、受信したデータブロックＤ３ａを圧縮し、圧縮により得られた圧縮データＤ３ｂをディスクアレイ装置１１０に書き込む処理である。データブロックＤ３ａについての圧縮書き込み処理では、時刻Ｔ２２に圧縮処理（すなわち、圧縮データＤ３ｂを生成してＲＡＭ３０２に書き込む処理）が完了し、その後、圧縮データＤ３ｂのディスクアレイ装置１１０への書き込み処理が開始される。一方、「非圧縮書き込み処理」は、受信したデータブロックＤ３ａを圧縮せずにそのままディスクアレイ装置１１０に書き込む処理である。
【００５９】
チャネルプロセッサ３００は、並列に実行した圧縮書き込み処理および非圧縮書き込み処理のうち、どちらが先に終了するかを監視する。図５で述べたように、データブロックＤ３ａは圧縮後の残存率が９０％という比較的圧縮効率の低いデータであるので、データブロックＤ３ａについての非圧縮書き込み処理が先に終了する。
【００６０】
チャネルプロセッサ３００は、時刻Ｔ２３において、データブロックＤ３ａについての非圧縮書き込み処理が終了したことを検知すると、データブロックＤ３ａについての圧縮書き込み処理を中止する。時刻Ｔ２３の時点では、圧縮データＤ３ｂの書き込み処理の途中であるが、圧縮データＤ３ｂの書き込み処理は中断される。チャネルプロセッサ３００は、例えば、ディスクアレイ装置１１０におけるデータブロックＤ３ａの書き込み位置情報をＶＬ制御プロセッサ２００に登録するなどの処理により、ディスクアレイ装置１１０に書き込んだデータブロックＤ３ａを有効化するとともに、時刻Ｔ２３までにディスクアレイ装置１１０に書き込んだ圧縮データＤ３ｂを無効化する。
【００６１】
以上の時刻Ｔ２０から時刻Ｔ２３までの期間で、データブロックＤ３ａについての書き込み処理が完了する。仮にデータブロックＤ３ａについての圧縮書き込み処理を続行させた場合に、圧縮書き込み処理が時刻Ｔ２４に終了するものとすると、データブロックＤ３ａを圧縮してディスクアレイ装置１１０に書き込んだ場合と比較して、時間（Ｔ２４−Ｔ２３）だけ書き込み処理を早く完了させることができる。
【００６２】
また、チャネルプロセッサ３００は、時刻Ｔ２３において、データブロックＤ５ａの受信を開始する。チャネルプロセッサ３００は、時刻Ｔ２５において、データブロックＤ５ａの受信処理（ＲＡＭ３０２への書き込み処理）を完了すると、データブロックＤ５ａについての圧縮書き込み処理と非圧縮書き込み処理とを並列に実行する。これとともに、チャネルプロセッサ３００は、圧縮書き込み処理および非圧縮書き込み処理のうち、どちらが先に終了するかを監視する。
【００６３】
図５で述べたように、データブロックＤ５ａは圧縮後の残存率が５０％という比較的圧縮効率の高いデータであるので、データブロックＤ５ａについての圧縮書き込み処理が先に終了する。チャネルプロセッサ３００は、時刻Ｔ２６において、データブロックＤ５ａについての圧縮書き込み処理が終了したことを検知すると、データブロックＤ５ａについての非圧縮書き込み処理を中止する。時刻Ｔ２６の時点では、元のデータブロックＤ５ａの書き込み処理の途中であるが、データブロックＤ５ａの書き込み処理は中断される。
【００６４】
チャネルプロセッサ３００は、例えば、ディスクアレイ装置１１０における圧縮データＤ５ｂの書き込み位置情報をＶＬ制御プロセッサ２００に登録するなどの処理により、ディスクアレイ装置１１０に書き込んだ圧縮データＤ５ｂを有効化するとともに、時刻Ｔ２６までにディスクアレイ装置１１０に書き込んだデータブロックＤ５ａを無効化する。
【００６５】
以上の時刻Ｔ２３から時刻Ｔ２６までの期間で、データブロックＤ５ａについての書き込み処理が完了する。仮にデータブロックＤ５ａについての非圧縮書き込み処理を続行させた場合に、非圧縮書き込み処理が時刻Ｔ２７に終了するものとすると、データブロックＤ５ａを圧縮せずに書き込んだ場合（図５のケース１３に対応）と比較して、時間（Ｔ２７−Ｔ２６）だけ書き込み処理を早く完了させることができる。
【００６６】
以上の図６の処理例のように、チャネルプロセッサ３００は、ディスクアレイ装置１１０への書き込みが要求されたデータブロックごとに、圧縮書き込み処理と非圧縮書き込み処理とを並列に実行する。そして、チャネルプロセッサ３００は、並列に実行した各処理のうち先に終了した処理によってディスクアレイ装置１１０に書き込まれたデータを、有効な書き込みデータとする。これにより、ディスクアレイ装置１１０へのデータ書き込み全体の処理時間を確実に短縮することができ、ディスクアレイ装置１１０やテープライブラリ装置１２０における記憶容量をできるだけ削減しつつ、データ書き込み効率を高めることができる。
【００６７】
なお、図６の例では、１つのデータブロックについてのディスクアレイ装置１１０への書き込み処理が終了した後に、次のデータブロックをホスト装置５００から受信するようにした。しかし、ディスクアレイ装置１１０への書き込み処理とホスト装置５００からの受信処理とは、非同期で実行されてもよい。この場合、チャネルプロセッサ３００は、ホスト装置５００からデータブロックを順次受信してＲＡＭ３０２に格納する。これとともに、チャネルプロセッサ３００は、ＲＡＭ３０２に格納されたデータブロックをＲＡＭ３０２への格納タイミングとは非同期に順次読み出し、図６のように圧縮書き込み処理と非圧縮書き込み処理とを並列に実行する。このような処理を実行した場合でも、ディスクアレイ装置１１０への書き込み処理に要する時間を短縮できる。
【００６８】
次に、図７は、ＶＬ制御プロセッサおよびチャネルプロセッサが備える処理機能の例を示すブロック図である。
ＶＬ制御プロセッサ２００は、ＶＬ制御部２１１を備える。このＶＬ制御部２１１の処理は、例えば、ＶＬ制御プロセッサ２００が備えるＣＰＵが所定のプログラムを実行することで実現される。また、ＶＬ制御プロセッサ２００が備える記憶装置には、データ管理テーブル２１２が記憶される。
【００６９】
一方、チャネルプロセッサ３００は、受信処理部３１１、送信処理部３１２、圧縮処理部３２１、書き込み処理部３２２，３２３、書き込み制御部３２４、読み出し処理部３３１および伸張処理部３３２を備える。これらの各処理ブロックの処理は、例えば、チャネルプロセッサ３００が備えるＣＰＵ３０１が所定のプログラムを実行することで実現される。
【００７０】
ＶＬ制御プロセッサ２００のＶＬ制御部２１１は、ホスト装置５００からの仮想ライブラリシステムへのアクセス要求に応じて、ディスクアレイ装置１１０に対するデータアクセス、テープライブラリ装置１２０内の磁気テープに対するデータアクセスなどの処理を制御する。また、ＶＬ制御部２１１は、ホスト装置５００とディスクアレイ装置１１０との間のデータ送受信処理を制御する際には、ディスクアレイ装置１１０に記憶されたデータブロックの位置を管理するデータ管理テーブル２１２を参照する。
【００７１】
ここで、図８は、データ管理テーブルに格納される情報の例を示す図である。
データ管理テーブル２１２には、データブロックごとにレコードが生成され、各レコードには、データブロックを識別するブロックＩＤと、ディスクアレイ装置１１０におけるデータブロックの格納位置情報とが登録される。図８の例では、データブロックの格納位置情報として、ディスクアレイ装置１１０においてデータブロックが格納された領域の先頭アドレスが登録されている。
【００７２】
なお、データ管理テーブル２１２には、例えば、先頭アドレスとともに書き込みデータ量などが登録されてもよい。また、データ管理テーブル２１２に登録される、データブロックの格納位置情報としては、先頭アドレスに限るものではなく、例えば、次のデータブロックの格納位置を示すアドレスなどであってもよい。
【００７３】
以下、図７に戻り、データ管理テーブル２１２へのデータ登録は、チャネルプロセッサ３００の書き込み制御部３２４によって行われる。ＶＬ制御部２１１は、ホスト装置５００からデータの書き込み要求を受け付けると、チャネルプロセッサ３００の書き込み制御部３２４に対して、ホスト装置５００から送信される書き込みデータをディスクアレイ装置１１０に書き込むように要求する。書き込みデータは、ホスト装置５００によって一定長のデータブロックに分割されてチャネルプロセッサ３００に送信される。書き込み制御部３２４は、ホスト装置５００から受信したデータブロックについてのディスクアレイ装置１１０への書き込み処理が終了するたびに、書き込んだデータブロックのブロックＩＤおよび先頭アドレスをデータ管理テーブル２１２に登録する。
【００７４】
ＶＬ制御部２１１は、書き込み制御部３２４の制御の下でチャネルプロセッサ３００がディスクアレイ装置１１０に書き込んだデータを、書き込み終了後の所定のタイミングで、テープライブラリ装置１２０内の所定の磁気テープにコピーするようにデバイスプロセッサ４００に要求する。このとき、ＶＬ制御部２１１は、磁気テープへコピーすべきデータのディスクアレイ装置１１０における先頭アドレスをデータ管理テーブル２１２から読み出して、デバイスプロセッサ４００に通知する。
【００７５】
また、ＶＬ制御部２１１は、例えば、ディスクアレイ装置１１０の空き容量が少なくなると、最終アクセス時刻から最も長い時間が経過している仮想ディスクのデータを、ディスクアレイ装置１１０から消去するように、チャネルプロセッサ３００に要求する。
【００７６】
さらに、ＶＬ制御部２１１は、ホスト装置５００からデータの読み出し要求を受けると、要求されたデータがディスクアレイ装置１１０に格納されているか否かを判定する。読み出しを要求されたデータがディスクアレイ装置１１０に格納されている場合、ＶＬ制御部２１１は、読み出しを要求されたデータを構成する各データブロックの先頭アドレスをデータ管理テーブル２１２から読み出して、チャネルプロセッサ３００の読み出し処理部３３１に通知する。読み出し処理部３３１は、ＶＬ制御部２１１から通知された先頭アドレスを基にディスクアレイ装置１１０からデータブロックを読み出し、送信処理部３１２を通じてホスト装置５００に送信する。
【００７７】
一方、読み出しを要求されたデータがディスクアレイ装置１１０に格納されていない場合には、ＶＬ制御部２１１は、要求されたデータを含む論理ボリュームをディスクアレイ装置１１０に書き込むように、デバイスプロセッサ４００に要求する。デバイスプロセッサ４００は、要求された論理ボリュームをディスクアレイ装置１１０に書き込むとともに、論理ボリューム内のデータを構成する各データブロックのブロックＩＤおよび先頭アドレスを、データ管理テーブル２１２に登録する。その後、ＶＬ制御部２１１は、読み出しを要求されたデータがディスクアレイ装置１１０に登録されていた場合と同様の手順で、チャネルプロセッサ３００を制御して、要求されたデータをディスクアレイ装置１１０からホスト装置５００に送信させる。
【００７８】
次に、チャネルプロセッサ３００の処理機能について説明する。
受信処理部３１１は、ＶＬ制御プロセッサ２００から書き込み制御部３２４に対してデータの書き込み要求が発せられると、ホスト装置５００から書き込みが要求されたデータを構成するデータブロックを受信する。受信処理部３１１は、受信したデータブロックをＲＡＭ３０２に格納する。
【００７９】
送信処理部３１２は、ＶＬ制御プロセッサ２００から読み出し処理部３３１に対してデータの読み出し要求が発せられたとき、読み出し処理部３３１によってディスクアレイ装置１１０から読み出されたデータブロック、あるいは伸張処理部３３２によって伸張されたデータブロックを、ホスト装置５００に送信する。
【００８０】
圧縮処理部３２１および書き込み処理部３２２は、書き込み制御部３２４の制御の下で、図６で説明した圧縮書き込み処理を実行する処理ブロックである。圧縮処理部３２１は、受信処理部３１１によってホスト装置５００から受信され、ＲＡＭ３０２に格納されたデータブロックを圧縮し、圧縮データを生成する。圧縮処理部３２１は、生成した圧縮データをＲＡＭ３０２に格納する。書き込み処理部３２２は、圧縮処理部３２１によって生成されてＲＡＭ３０２に格納された圧縮データを、ディスクアレイ装置１１０に書き込む。
【００８１】
書き込み処理部３２３は、書き込み制御部３２４の制御の下で、図６で説明した非圧縮書き込み処理を実行する処理ブロックである。書き込み処理部３２３は、受信処理部３１１がホスト装置５００から受信したデータブロックを、ディスクアレイ装置１１０にそのまま書き込む。なお、書き込み処理部３２２からの圧縮データと、書き込み処理部３２３からのデータブロックとは、ディスクアレイ装置１１０上のそれぞれ別の領域に書き込まれる。
【００８２】
ここで、図９は、ディスクアレイ装置に書き込まれるデータの構成例を示す図である。
書き込み処理部３２２，３２３は、それぞれ圧縮データおよびデータブロックを、例えば図９に示すような、圧縮フラグ３４１と実データ領域３４２とを含むデータ形式に変換して、ディスクアレイ装置１１０に書き込む。圧縮フラグ３４１は、実データ領域３４２に格納されたデータが、データブロックを圧縮した圧縮データであるか、あるいは非圧縮のデータブロックであるかを示す。例えば、書き込み処理部３２２は、圧縮フラグ３４１を「１」にするとともに、実データ領域３４２に圧縮処理部３２１が生成した圧縮データを格納する。一方、書き込み処理部３２３は、圧縮フラグ３４１を「０」にするとともに、実データ領域３４２に非圧縮のデータブロックを格納する。
【００８３】
以下、図７に戻り、読み出し処理部３３１は、ＶＬ制御プロセッサ２００のＶＬ制御部２１１から読み出し要求を受け付けるとともに先頭アドレスの通知を受けると、ディスクアレイ装置１１０上の通知された先頭アドレスから、データブロック１つ分のデータを読み出す。
【００８４】
読み出し処理部３３１は、ディスクアレイ装置１１０から読み出したデータの圧縮フラグ３４１を参照する。圧縮フラグ３４１が「０」である場合、読み出し処理部３３１は、実データ領域３４２に格納された非圧縮のデータブロックを送信処理部３１２に受け渡して、ホスト装置５００に送信させる。一方、圧縮フラグ３４１が「１」である場合、読み出し処理部３３１は、実データ領域３４２に格納された圧縮データを伸張処理部３３２に受け渡す。
【００８５】
伸張処理部３３２は、読み出し処理部３３１からの圧縮データを伸張し、伸張により復元されたデータブロックを送信処理部３１２に受け渡して、ホスト装置５００に送信させる。
【００８６】
図１０は、チャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理手順の例を示すフローチャートである。この図１０の処理は、受信処理部３１１がホスト装置５０から受信してＲＡＭ３０２に格納したデータブロックごとに実行される。
【００８７】
［ステップＳ１１］書き込み制御部３２４は、圧縮処理部３２１に、ＲＡＭ３０２に格納されたデータブロックの圧縮処理を開始させる。これにより、前述の圧縮書き込み処理が開始される。
【００８８】
［ステップＳ１２］書き込み制御部３２４は、書き込み処理部３２３に、ＲＡＭ３０２に格納された、ステップＳ１１での処理対象と同じデータブロックについてのディスクアレイ装置１１０への書き込み処理を開始させる。データブロックの書き込み先は、ホスト装置５００から書き込みを要求された論理ボリュームに割り当てられた、ディスクアレイ装置１１０内のＨＤＤの物理記憶領域の中の任意の位置である。このステップＳ１２の実行により、前述の非圧縮書き込み処理が開始される。
【００８９】
上記のステップＳ１１，Ｓ１２により、書き込み処理部３２３によるディスクアレイ装置１１０へのデータブロックの書き込み処理と、圧縮処理部３２１によるデータブロックの圧縮処理とが並列に実行される。
【００９０】
［ステップＳ１３］圧縮処理部３２１によるデータブロックの圧縮処理が完了すると、書き込み処理部３２２は、圧縮処理部３２１によって生成された圧縮データをディスクアレイ装置１１０に書き込む処理を開始する。圧縮データの書き込み先は、ホスト装置５００から書き込みを要求された論理ボリュームに割り当てられた、ディスクアレイ装置１１０内のＨＤＤの物理記憶領域の中の任意の位置（ただし、ステップＳ１２でのデータブロックの書き込み先とは別の位置）である。このステップＳ１３の実行により、書き込み処理部３２２によるディスクアレイ装置１１０への圧縮データの書き込み処理と、書き込み処理部３２３によるディスクアレイ装置１１０へのデータブロックの書き込み処理とが、並列に実行される。
【００９１】
［ステップＳ１４］書き込み制御部３２４は、書き込み処理部３２２，３２３からの書き込み完了通知を監視する。そして、書き込み制御部３２４は、書き込み処理部３２２，３２３の一方から書き込み完了通知を受信すると（Ｓ１４：Ｙｅｓ）、ステップＳ１５の処理を実行する。
【００９２】
［ステップＳ１５］ステップＳ１４で、書き込み処理部３２２からの書き込み完了通知を先に受信した場合、書き込み制御部３２４は、ステップＳ１６の処理を実行する。一方、ステップＳ１４で、書き込み処理部３２３からの書き込み完了通知を先に受信した場合、書き込み制御部３２４は、ステップＳ１８の処理を実行する。
【００９３】
［ステップＳ１６］書き込み制御部３２４は、書き込み処理部３２３によるデータブロックの書き込み処理を中止させる。
［ステップＳ１７］書き込み制御部３２４は、書き込み処理部３２２によってディスクアレイ装置１１０に書き込まれたデータの先頭アドレスを、書き込み処理部３２２から取得する。書き込み制御部３２４は、取得した先頭アドレスと、書き込みが終了したデータブロックのブロックＩＤとを、ＶＬ制御プロセッサ２００内のデータ管理テーブル２１２に登録する。この登録処理により、書き込み処理部３２２によってディスクアレイ装置１１０に書き込まれたデータが有効化される。
【００９４】
［ステップＳ１８］書き込み制御部３２４は、書き込み処理部３２２による圧縮データの書き込み処理を中止させる。
［ステップＳ１９］書き込み制御部３２４は、書き込み処理部３２３によってディスクアレイ装置１１０に書き込まれたデータの先頭アドレスを、書き込み処理部３２３から取得する。書き込み制御部３２４は、取得した先頭アドレスと、書き込みが終了したデータブロックのブロックＩＤとを、ＶＬ制御プロセッサ２００内のデータ管理テーブル２１２に登録する。この登録処理により、書き込み処理部３２３によってディスクアレイ装置１１０に書き込まれたデータが有効化される。
【００９５】
以上の図１０の処理によれば、並列に実行した圧縮書き込み処理（Ｓ１１，Ｓ１３）および非圧縮書き込み処理（Ｓ１２）のうち、先に終了した処理によってディスクアレイ装置１１０に書き込まれたデータが、有効な書き込みデータとされる（Ｓ１７またはＳ１９）。これにより、ディスクアレイ装置１１０へのデータ書き込み全体の処理時間を確実に短縮することができ、ディスクアレイ装置１１０やテープライブラリ装置１２０における記憶容量をできるだけ削減しつつ、データ書き込み効率を高めることができる。
【００９６】
〔第３の実施の形態〕
上記の第２の実施の形態では、圧縮処理部３２１および書き込み処理部３２２による圧縮書き込み処理と、書き込み処理部３２３による非圧縮書き込み処理のいずれかが終了するまでの間、各処理が並列に実行される。これに対して、以下の第３の実施の形態では、圧縮処理部３２１による圧縮処理が終了した時点で、圧縮書き込み処理と非圧縮書き込み処理のどちらの処理時間が短いかを判定する。
【００９７】
第３の実施の形態に係るストレージシステムの全体構成は、図２と同様である。また、第３の実施の形態に適用されるチャネルプロセッサ３００およびＶＬ制御プロセッサ２００の各処理機能の構成は、図７と同様であるが、書き込み制御部３２４における制御処理が異なる。以下、第３の実施の形態におけるチャネルプロセッサ３００の処理について、図７に示した符号を用いて説明する。
【００９８】
図１１は、第３の実施の形態のチャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理手順の例を示すフローチャートである。この図１１の処理は、受信処理部３１１がホスト装置５０から受信してＲＡＭ３０２に格納したデータブロックごとに実行される。
【００９９】
［ステップＳ３１］書き込み制御部３２４は、圧縮処理部３２１に、ＲＡＭ３０２に格納されたデータブロックの圧縮処理を開始させる。これにより、前述の圧縮書き込み処理が開始される。
【０１００】
［ステップＳ３２］書き込み制御部３２４は、書き込み処理部３２３に、ＲＡＭ３０２に格納された、ステップＳ３１での処理対象と同じデータブロックについてのディスクアレイ装置１１０への書き込み処理を開始させる。これにより、前述の非圧縮書き込み処理が開始される。
【０１０１】
上記のステップＳ３１，Ｓ３２により、書き込み処理部３２３によるディスクアレイ装置１１０へのデータブロックの書き込み処理と、圧縮処理部３２１によるデータブロックの圧縮処理とが並列に実行される。
【０１０２】
［ステップＳ３３］書き込み制御部３２４は、圧縮処理部３２１からの圧縮完了通知を監視する。そして、書き込み制御部３２４は、圧縮処理部３２１でのデータブロックの圧縮処理が終了し、圧縮処理部３２１からの圧縮完了通知を受信すると（Ｓ３３：Ｙｅｓ）、ステップＳ３４の処理を実行する。
【０１０３】
［ステップＳ３４］書き込み制御部３２４は、圧縮処理部３２１によって生成された圧縮データのデータ量Ａ１を検出する。この処理では、書き込み制御部３２４は、例えば、データ量Ａ１を圧縮処理部３２１から取得する。
【０１０４】
［ステップＳ３５］書き込み制御部３２４は、ステップＳ３２で書き込み処理部３２３が書き込みを開始したデータブロックのうち、書き込みが未実行であるデータのデータ量Ａ２を検出する。この処理では、書き込み制御部３２４は、例えば、書き込み処理部３２３から、ディスクアレイ装置１１０に対して書き込み済みのデータ量Ａ３を取得する。そして、書き込み制御部３２４は、固定値であるデータブロック長（例えば２５６ＫＢｙｔｅｓ）からデータ量Ａ３を減算することで、データ量Ａ２を算出する。
【０１０５】
なお、ステップＳ３４，Ｓ３５の処理順は逆であってもよい。
［ステップＳ３６］書き込み制御部３２４は、ステップＳ３４で検出した圧縮データのデータ量Ａ１と、ステップＳ３５で検出した書き込み未実行のデータ量Ａ２とを比較する。データ量Ａ１がデータ量Ａ２以下である場合（Ｓ３６：Ｙｅｓ）、書き込み制御部３２４はステップＳ３７の処理を実行する。一方、データ量Ａ１がデータ量Ａ２より大きい場合（Ｓ３６：Ｎｏ）、書き込み制御部３２４はステップＳ４０の処理を実行する。
【０１０６】
なお、上記のステップＳ３４，Ｓ３５では、書き込み処理部３２３は、データ量Ａ１，Ａ２の代わりに、例えば、圧縮データの残存率Ｒ１、データブロック全体に対する書き込み未実行のデータの割合を示す書き込み未完了率Ｒ２をそれぞれ検出してもよい。この場合、ステップＳ３６では、書き込み制御部３２４は、残存率Ｒ１が書き込み未完了率Ｒ２以下の場合、ステップＳ３７の処理を実行する一方、残存率Ｒ１が書き込み未完了率Ｒ２より大きい場合、ステップＳ４０の処理を実行する。
【０１０７】
［ステップＳ３７］書き込み制御部３２４は、書き込み処理部３２２に、ステップＳ３３で生成された圧縮データをディスクアレイ装置１１０に書き込む処理を開始させる。その一方、書き込み制御部３２４は、書き込み処理部３２３に、データブロックの書き込み処理を中止させる。
【０１０８】
［ステップＳ３８］書き込み制御部３２４は、書き込み処理部３２２からの書き込み完了通知を監視する。そして、書き込み制御部３２４は、書き込み処理部３２２からの書き込み完了通知を受信すると（Ｓ３８：Ｙｅｓ）、ステップＳ３９の処理を実行する。
【０１０９】
［ステップＳ３９］書き込み制御部３２４は、書き込み処理部３２２によってディスクアレイ装置１１０に書き込まれたデータの先頭アドレスを、書き込み処理部３２２から取得する。書き込み制御部３２４は、取得した先頭アドレスと、書き込みが終了したデータブロックのブロックＩＤとを、ＶＬ制御プロセッサ２００内のデータ管理テーブル２１２に登録する。この登録処理により、書き込み処理部３２２によってディスクアレイ装置１１０に書き込まれたデータが有効化される。
【０１１０】
［ステップＳ４０］書き込み制御部３２４は、書き込み処理部３２３からの書き込み完了通知を監視する。そして、書き込み制御部３２４は、書き込み処理部３２３からの書き込み完了通知を受信すると（Ｓ４０：Ｙｅｓ）、ステップＳ４１の処理を実行する。
【０１１１】
［ステップＳ４１］書き込み制御部３２４は、書き込み処理部３２３によってディスクアレイ装置１１０に書き込まれたデータの先頭アドレスを、書き込み処理部３２３から取得する。書き込み制御部３２４は、取得した先頭アドレスと、書き込みが終了したデータブロックのブロックＩＤとを、ＶＬ制御プロセッサ２００内のデータ管理テーブル２１２に登録する。この登録処理により、書き込み処理部３２３によってディスクアレイ装置１１０に書き込まれたデータが有効化される。
【０１１２】
以上の図１１の処理によれば、書き込み制御部３２４は、圧縮書き込み処理のうちのデータ圧縮処理（Ｓ３１）と、非圧縮書き込み処理（Ｓ３２）とを並列に実行させる。そして、書き込み制御部３２４は、データ圧縮処理が終了した時点で（Ｓ３３）、データ量Ａ１，Ａ２に基づいて、圧縮書き込み処理と非圧縮書き込み処理のどちらの処理時間が短いかを判定する（Ｓ３４〜Ｓ３６）。圧縮書き込み処理の処理時間の方が短いか、または各処理時間が同じであると推定される場合（Ｓ３６：Ｙｅｓ）、書き込み制御部３２４は、圧縮書き込み処理を続行させるとともに、非圧縮書き込み処理を中止させる（Ｓ３７）。一方、非圧縮書き込み処理の処理時間の方が短いと推定される場合（Ｓ３６：Ｎｏ）、書き込み制御部３２４は、非圧縮書き込み処理を続行させるとともに、書き込み処理部３２２による圧縮データの書き込み処理を実行させないことで、圧縮書き込み処理を中止させる。
【０１１３】
このような処理により、第２の実施の形態と同様に、ディスクアレイ装置１１０へのデータ書き込み全体の処理時間を確実に短縮することができ、ディスクアレイ装置１１０やテープライブラリ装置１２０における記憶容量をできるだけ削減しつつ、データ書き込み効率を高めることができる。また、データブロックの圧縮処理が終了した後は、書き込み処理部３２２，３２３のうち一方のみが書き込み処理を実行するので、第２の実施の形態と比較して、チャネルプロセッサ３００のＣＰＵ３０１の処理負荷を軽減できる。
【０１１４】
なお、圧縮処理部３２１による圧縮処理の処理時間がデータブロックに関係なく一定である場合には、図１１のステップＳ３５で検出されるデータ量Ａ２は一定値となる。そこで、書き込み制御部３２４は、ステップＳ３５，Ｓ３６の処理を実行する代わりに、ステップＳ３４で検出したデータ量Ａ１（または残存率Ｒ１）を、あらかじめ決められたしきい値と比較してもよい。この場合、書き込み制御部３２４は、データ量Ａ１（または残存率Ｒ１）がしきい値以下の場合、ステップＳ３７の処理を実行する一方、データ量Ａ１（または残存率Ｒ１）がしきい値より大きい場合、ステップＳ４０の処理を実行する。
【０１１５】
〔第４の実施の形態〕
上記の第２，第３の実施の形態では、圧縮書き込み処理と非圧縮書き込み処理とが並列に実行される期間があることから、チャネルプロセッサ３００のＣＰＵ３０１の処理負荷が高くなる恐れがある。このため、圧縮書き込み処理と非圧縮書き込み処理とを並列に実行することで、チャネルプロセッサ３００の処理性能が悪化し、データブロックごとの書き込み処理に要する時間がかえって長くなってしまう可能性がある。そこで、以下の第４の実施の形態では、ＣＰＵ３０１の処理負荷が高い場合には、圧縮書き込み処理と非圧縮書き込み処理の一方のみが実行されるようにして、ＣＰＵ３０１の処理負荷が高くなり過ぎないようにする。
【０１１６】
図１２は、第４の実施の形態のチャネルプロセッサおよびＶＬ制御プロセッサが備える処理機能の例を示すブロック図である。なお、図１２では、図７に対応する処理ブロックには同じ符号を付して示している。
【０１１７】
第４の実施の形態のチャネルプロセッサ３００は、第２，第３の実施の形態に対してさらに処理負荷検出部３５１を備える。処理負荷検出部３５１は、チャネルプロセッサ３００が備えるＣＰＵ３０１の使用率を検出する。また、第４の実施の形態のチャネルプロセッサ３００において、書き込み制御部３２４は、次の図１３に示すように、ＣＰＵ３０１の使用率がしきい値を超えた場合には、圧縮書き込み処理と非圧縮書き込み処理の一方のみが実行されるように制御する。
【０１１８】
図１３は、第４の実施の形態のチャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理手順の例を示すフローチャートである。
［ステップＳ６１］書き込み制御部３２４は、処理負荷検出部３５１からＣＰＵ３０１の使用率を取得する。ＣＰＵ３０１の使用率が所定のしきい値を超えている場合（Ｓ６１：Ｙｅｓ）、書き込み制御部３２４は、ステップＳ６３の処理を実行する。一方、ＣＰＵ３０１の使用率が所定のしきい値以下である場合（Ｓ６１：Ｎｏ）、書き込み制御部３２４は、ステップＳ６２の処理を実行する。
【０１１９】
［ステップＳ６２］書き込み制御部３２４は、図１０または図１１に示した処理を実行して、受信処理部３１１によってホスト装置５００から受信されてＲＡＭ３０２に格納されたデータブロックをディスクアレイ装置１１０に書き込む処理を、圧縮処理部３２１および書き込み処理部３２２，３２３に実行させる。
【０１２０】
この後、ホスト装置５００から書き込みを要求された書き込みデータを構成するデータブロックのうち、ディスクアレイ装置１１０に書き込んでいないデータブロックがある場合には、書き込み制御部３２４は、ステップＳ６１の処理を実行する。ただし、図示しないが、書き込みデータを構成するすべてのデータブロックがディスクアレイ装置１１０に書き込み済みである場合には、書き込み制御部３２４は、処理を終了する。
【０１２１】
［ステップＳ６３］書き込み制御部３２４は、変数Ｎとして、あらかじめ決められた値を設定する。例えば、書き込み制御部３２４は、あらかじめ決められた値をＨＤＤ３０３から読み込む。この処理において変数Ｎとして設定される値は、圧縮書き込み処理または非圧縮書き込み処理の一方のみを連続して実行する回数を示すものであり、１以上の整数とされる。
【０１２２】
［ステップＳ６４］書き込み制御部３２４は、圧縮処理部３２１に、データブロックの圧縮処理を実行させる。
［ステップＳ６５］圧縮処理部３２１による圧縮処理が終了し、得られた圧縮データがＲＡＭ３０２に格納されると、書き込み制御部３２４は、得られた圧縮データのデータ量Ｄ１を検出する。この処理では、書き込み制御部３２４は、例えば、圧縮データのデータ量Ｄ１を圧縮処理部３２１から取得する。
【０１２３】
［ステップＳ６６］書き込み制御部３２４は、書き込み処理部３２２に、圧縮データをディスクアレイ装置１１０に書き込む処理を実行させる。
これらのステップＳ６４，Ｓ６６の処理により、圧縮書き込み処理が実行されることになる。
【０１２４】
［ステップＳ６７］書き込み処理部３２２による圧縮データの書き込み処理が終了すると、書き込み制御部３２４は、書き込み処理部３２２によってディスクアレイ装置１１０に書き込まれたデータの先頭アドレスを、書き込み処理部３２２から取得する。書き込み制御部３２４は、取得した先頭アドレスと、書き込みが終了したデータブロックのブロックＩＤとを、ＶＬ制御プロセッサ２００内のデータ管理テーブル２１２に登録する。この登録処理により、書き込み処理部３２２によってディスクアレイ装置１１０に書き込まれたデータが有効化される。
【０１２５】
［ステップＳ６８］ホスト装置５００から書き込みを要求された書き込みデータを構成するデータブロックのうち、ディスクアレイ装置１１０に書き込んでいないデータブロックがある場合には、書き込み制御部３２４は、ステップＳ６５で検出した圧縮データのデータ量Ｄ１と、所定のしきい値とを比較する。データ量Ｄ１がしきい値以下である場合（Ｓ６８：Ｙｅｓ）、書き込み制御部３２４は、ステップＳ６９の処理を実行する。一方、データ量Ｄ１がしきい値より大きい場合（Ｓ６８：Ｎｏ）、書き込み制御部３２４は、ステップＳ７４の処理を実行する。
【０１２６】
なお、図示しないが、書き込みデータを構成するすべてのデータブロックがディスクアレイ装置１１０に書き込み済みである場合には、書き込み制御部３２４は、処理を終了する。
【０１２７】
また、上記のステップＳ６５では、圧縮データのデータ量Ｄ１の代わりに、例えば残存率Ｒ１が検出されてもよい。この場合、ステップＳ６８では、書き込み制御部３２４は、残存率Ｒ１がしきい値以下である場合、ステップＳ６９の処理を実行し、残存率Ｒ１がしきい値より大きい場合、ステップＳ７４の処理を実行する。
【０１２８】
また、ステップＳ６５でのデータ量Ｄ１（または残存率Ｒ１）の検出処理は、圧縮処理の終了後、ステップＳ６８の処理開始時までの間のどの段階で実行されてもよい。
［ステップＳ６９］書き込み制御部３２４は、圧縮処理部３２１に、次のデータブロックについての圧縮処理を実行させる。
【０１２９】
［ステップＳ７０］圧縮処理部３２１による圧縮処理が終了し、得られた圧縮データがＲＡＭ３０２に格納されると、書き込み制御部３２４は、書き込み処理部３２２に、圧縮データをディスクアレイ装置１１０に書き込む処理を実行させる。
【０１３０】
これらのステップＳ６９，Ｓ７０の処理により、圧縮書き込み処理が実行されることになる。
［ステップＳ７１］書き込み処理部３２２による圧縮データの書き込み処理が終了すると、書き込み制御部３２４は、書き込み処理部３２２によってディスクアレイ装置１１０に書き込まれたデータの先頭アドレスを、書き込み処理部３２２から取得する。書き込み制御部３２４は、取得した先頭アドレスと、書き込みが終了したデータブロックのブロックＩＤとを、ＶＬ制御プロセッサ２００内のデータ管理テーブル２１２に登録する。この登録処理により、書き込み処理部３２２によってディスクアレイ装置１１０に書き込まれたデータが有効化される。
【０１３１】
［ステップＳ７２］書き込み制御部３２４は、変数Ｎを「１」だけデクリメントする。
なお、ステップＳ７１，Ｓ７２の処理順は逆であってもよい。
［ステップＳ７３］ホスト装置５００から書き込みを要求された書き込みデータを構成するデータブロックのうち、ディスクアレイ装置１１０に書き込んでいないデータブロックがある場合には、書き込み制御部３２４は、変数Ｎが「０」であるかを判定する。変数Ｎが「１」以上である場合（Ｓ７３：Ｎｏ）、ステップＳ６９に戻り、書き込み制御部３２４は、次のデータブロックについての圧縮書き込み処理を圧縮処理部３２１および書き込み処理部３２２に実行させる。一方、変数Ｎが「０」である場合（Ｓ７３：Ｙｅｓ）、書き込み制御部３２４は、ステップＳ６１の処理を実行する。
【０１３２】
［ステップＳ７４］書き込み制御部３２４は、書き込み処理部３２３に、次のデータブロックをディスクアレイ装置１１０に書き込む非圧縮書き込み処理を実行させる。
［ステップＳ７５］書き込み処理部３２３によるデータブロックの書き込み処理が終了すると、書き込み制御部３２４は、書き込み処理部３２３によってディスクアレイ装置１１０に書き込まれたデータの先頭アドレスを、書き込み処理部３２３から取得する。書き込み制御部３２４は、取得した先頭アドレスと、書き込みが終了したデータブロックのブロックＩＤとを、ＶＬ制御プロセッサ２００内のデータ管理テーブル２１２に登録する。この登録処理により、書き込み処理部３２３によってディスクアレイ装置１１０に書き込まれたデータが有効化される。
【０１３３】
［ステップＳ７６］書き込み制御部３２４は、変数Ｎを「１」だけデクリメントする。
なお、ステップＳ７５，Ｓ７６の処理順は逆であってもよい。
［ステップＳ７７］ホスト装置５００から書き込みを要求された書き込みデータを構成するデータブロックのうち、ディスクアレイ装置１１０に書き込んでいないデータブロックがある場合には、書き込み制御部３２４は、変数Ｎが「０」であるかを判定する。変数Ｎが「１」以上である場合（Ｓ７７：Ｎｏ）、ステップＳ７４に戻り、書き込み制御部３２４は、次のデータブロックについての非圧縮書き込み処理を書き込み処理部３２３に実行させる。一方、変数Ｎが「０」である場合（Ｓ７７：Ｙｅｓ）、書き込み制御部３２４は、ステップＳ６１の処理を実行する。
【０１３４】
以上の図１３の処理では、ステップＳ６１でＣＰＵ３０１の使用率が所定値以下であった場合には、圧縮書き込み処理と非圧縮書き込み処理の並列実行が開始される。そして、これらの処理のうち処理時間の短い方の処理によってディスクアレイ装置１１０に書き込まれたデータが有効とされる（Ｓ６２）。
【０１３５】
一方、ステップＳ６１でＣＰＵ３０１の使用率が所定値を超える場合には、まず、データブロックについての圧縮書き込み処理が実行される（Ｓ６４，Ｓ６６）。さらに、圧縮書き込み処理で得られた圧縮データのデータ量（または残存率）に応じて、その後に連続するＮ個のデータブロックについて、圧縮書き込み処理（Ｓ６９，Ｓ７０）または非圧縮書き込み処理（Ｓ７４）の一方のみが実行される。これにより、チャネルプロセッサ３００のＣＰＵ３０１の処理負荷が軽減され、チャネルプロセッサ３００の性能悪化が防止される。従って、データブロックごとの書き込み処理に要する時間が、通常状態（低負荷状態）で非圧縮のデータブロックをディスクアレイ装置１１０に書き込む処理に要する時間より長くなることを防止できる。
【０１３６】
また、ステップＳ６４での圧縮書き込み処理で得られた圧縮データのデータ量（または残存率）に応じて、その後に連続するＮ個のデータブロックについて、圧縮書き込み処理と非圧縮書き込み処理のどちらを実行するか決定される。連続するデータブロックについては、圧縮後のデータの残存率が近い値になる可能性が高いことから、上記処理により、ディスクアレイ装置１１０へのデータの書き込み処理時間を抑制する効果が得られる。
【０１３７】
なお、以上の第２〜第４の実施の形態では、データ管理テーブル２１２をＶＬ制御プロセッサ２００が保持していたが、データ管理テーブル２１２は、例えば、チャネルプロセッサ３００またはディスクアレイ装置１１０が保持していてもよい。
【０１３８】
また、ディスクアレイ装置１１０に書き込むデータを圧縮するための処理機能（すなわち、圧縮処理部３２１、書き込み処理部３２２，３２３および書き込み制御部３２４）は、例えば、チャネルプロセッサ３００ではなく、ディスクアレイ装置１１０が備えていてもよい。この場合、上記の各処理機能は、例えば、ディスクアレイ装置１１０内の複数のＨＤＤを統括的に制御する制御回路によって実現されてもよいし、ディスクアレイ装置１１０内の各ＨＤＤが備える制御回路（インタフェース回路）によって実現されてもよい。
【０１３９】
また、上記の第２〜第４の実施の形態で示したストレージシステムでは、ディスクアレイ装置１１０に書き込むデータを圧縮したが、他の例として、ディスクアレイ装置１１０に格納されたデータをテープライブラリ装置１２０内の磁気テープに書き込む際に、データの圧縮を行ってもよい。この場合、上記の圧縮処理部３２１、書き込み処理部３２２，３２３および書き込み制御部３２４の各処理機能を、例えば、ディスクアレイ装置１１０、デバイスプロセッサ４００、テープライブラリ装置１２０のうちのいずれかが備えればよい。
【０１４０】
また、上記の各実施の形態における情報処理装置やチャネルプロセッサの処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１４１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４３】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１４４】
１  情報処理装置
１１  記憶装置
１２  書き込み部
１３  圧縮部
１４  書き込み制御部
１５  メモリ
Ｄａ  データ
Ｄｂ  圧縮データ
【図１】
2012124100.tif 000003
【図２】
2012124100.tif 000004
【図３】
2012124100.tif 000005
【図４】
2012124100.tif 000006
【図５】
2012124100.tif 000007
【図６】
2012124100.tif 000008
【図７】
2012124100.tif 000009
【図８】
2012124100.tif 000010
【図９】
2012124100.tif 000011
【図１０】
2012124100.tif 000012
【図１１】
2012124100.tif 000013
【図１２】
2012124100.tif 000014
【図１３】
2012124100.tif 000015
【手続補正書】
【提出日】平成25年9月5日(2013.9.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
ところで、データを圧縮して記憶装置に格納する際の処理時間には、データの圧縮処理時間と、圧縮されたデータを記憶装置に転送する時間とが含まれる。また、一般的に、圧縮後のデータの残存率は圧縮対象のデータによって異なる。このため、データの圧縮残存率が高くない場合には、そのデータを圧縮しないで記憶装置に書き込む格納する処理にかかる時間より、そのデータを圧縮して記憶装置に格納する処理にかかる時間の方が長くなることがある。このような場合には、データの格納に必要な記憶容量を削減できたとしても、データの格納にかかる全体の処理時間が長くなってしまうという問題があった。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
図１０は、チャネルプロセッサによるディスクアレイ装置へのデータ書き込み処理手順の例を示すフローチャートである。この図１０の処理は、受信処理部３１１がホスト装置５００から受信してＲＡＭ３０２に格納したデータブロックごとに実行される。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを記憶装置に書き込む書き込み部と、
データを圧縮する圧縮部と、
前記記憶装置への書き込みが要求された第１のデータを前記書き込み部が前記記憶装置に書き込む第１の処理と、前記第１のデータを前記圧縮部が圧縮し、圧縮により得られた第２のデータを前記書き込み部が前記記憶装置に書き込む第２の処理とを実行させ、前記第１の処理と前記第２の処理のうち処理時間が長い方の処理を中止させる書き込み制御部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記書き込み制御部は、前記第２の処理において前記圧縮部によって前記第２のデータが得られたとき、得られた前記第２のデータのデータ量と、前記第１のデータのうち前記第１の処理における書き込み未完了データのデータ量とを比較し、前記第２のデータのデータ量が前記書き込み未完了データのデータ量より大きい場合には、前記第１の処理を続行させるとともに前記第２の処理を中止させ、前記第２のデータのデータ量が前記書き込み未完了データのデータ量以下である場合には、前記第２の処理を続行させるとともに前記第１の処理を中止させることを特徴とすることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記書き込み制御部は、前記第１の処理と前記第２の処理のうち一方の処理が終了したことを検出すると、終了していない他方の処理を中止させることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記情報処理装置の処理負荷を検出する処理負荷検出部をさらに有し、
前記書き込み制御部は、前記第１のデータの書き込み要求を受け付けたとき、前記処理負荷検出部によって検出された処理負荷を示す値が所定値を超える場合には、前記第１の処理を実行させずに前記第２の処理を実行させる、
ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記書き込み制御部は、前記処理負荷を示す値が所定値を超え、前記第２の処理を実行させたとき、前記圧縮部から得られた前記第２のデータのデータ量を検出し、前記第２のデータのデータ量が所定の判定しきい値以下である場合には、次に前記記憶装置への書き込みが要求されたデータについて、前記第１の処理を実行させずに前記第２の処理を実行させ、前記第２のデータのデータ量が前記判定しきい値を超える場合には、次に前記記憶装置への書き込みが要求されたデータについて、前記第２の処理を実行させずに前記第１の処理を実行させることを特徴とする請求項４記載の情報処理装置。
【請求項６】
第１の記憶装置と、
第２の記憶装置と、
前記第１の記憶装置を一次ストレージとし、前記第２の記憶装置を二次ストレージとした階層型ストレージシステムの動作を制御するストレージ制御装置と、
上位装置から前記階層型ストレージシステム内のデータに対するアクセスが要求されたとき、前記第１の記憶装置にアクセスするアクセス装置と、
を有し、
前記アクセス装置は、
データを前記第１の記憶装置に書き込む書き込み部と、
データを圧縮する圧縮部と、
前記上位装置から前記階層型ストレージシステムへの書き込みが要求された第１のデータを前記書き込み部が前記第１の記憶装置に書き込む第１の処理と、前記第１のデータを前記圧縮部が圧縮し、圧縮により得られた第２のデータを前記書き込み部が前記第１の記憶装置に書き込む第２の処理とを実行させ、前記第１の処理と前記第２の処理のうち処理時間が長い方の処理を中止させる書き込み制御部と、
を有することを特徴とするストレージシステム。
【請求項７】
情報処理装置が、
記憶装置への書き込みが要求された第１のデータを前記記憶装置に書き込む第１の処理と、前記第１のデータを圧縮し、圧縮により得られた第２のデータを前記記憶装置に書き込む第２の処理とを実行し、
前記第１の処理と前記第２の処理のうち処理時間が長い方の処理を中止する、
ことを特徴とする書き込み制御方法。
【国際調査報告】
2012124100.tif 000016
2012124100.tif 000017