(57)【特許請求の範囲】
【請求項１】
書き込み対象のデータを圧縮するか否かを、装置の稼働状態を含む圧縮条件に基づいて判断する圧縮可否判断部と、
その判断により圧縮すると判断された前記書き込み対象のデータを圧縮して得られた圧縮データを、データを格納する記憶部に転送し、また、圧縮しないと判断された前記書き込み対象のデータはそのまま前記記憶部に転送する転送部とを備え、
前記圧縮条件は、装置の稼働率が閾値未満であるか、あるいは、前記稼働率が前記閾値以上であっても、前記記憶部に関連付けられている論理ディスクであって前記書き込み対象のデータの書き込み先である論理ディクスに対し与えられている圧縮可否情報が可である場合に、前記書き込み対象のデータを圧縮するという条件である制御装置。
【請求項２】
前記記憶部に関連付けられた複数の論理ディスクが設定されており、
前記圧縮可否判断部は、前記論理ディスク毎の圧縮処理に係る圧縮時間を含む圧縮関連情報に基づいて圧縮処理における優先順位を算出する機能を有する請求項１に記載の制御装置。
【請求項３】
圧縮処理に係る圧縮時間を含む統計的な情報を前記圧縮関連情報として更新する情報管理部をさらに備えている請求項２に記載の制御装置。
【請求項４】
請求項１乃至請求項３の何れか一項に記載の制御装置と、
データを格納する記憶部と
を備える記憶装置。
【請求項５】
前記記憶部は、ＳＳＤ（Solid State Drive）により構成される請求項４に記載の記憶装置。
【請求項６】
前記記憶部は複数の記憶媒体により構成され、
これら複数の記憶媒体を仮想的な１つの記憶媒体として動作させるディスクアレイ装置である請求項４に記載の記憶装置。
【請求項７】
書き込み対象のデータを圧縮するか否かを、装置の稼働状態を含む圧縮条件に基づいて判断し、
その判断により圧縮すると判断された前記書き込み対象のデータを圧縮して得られた圧縮データを、データを格納する記憶部に転送し、また、圧縮しないと判断された前記書き込み対象のデータはそのまま前記記憶部に転送することとし、
前記圧縮条件は、装置の稼働率が閾値未満であるか、あるいは、前記稼働率が前記閾値以上であっても、前記記憶部に関連付けられている論理ディスクであって前記書き込み対象のデータの書き込み先である論理ディクスに対し与えられている圧縮可否情報が可である場合に、前記書き込み対象のデータを圧縮するという条件である記憶制御方法。
【請求項８】
書き込み対象のデータを圧縮するか否かを、装置の稼働状態を含む圧縮条件に基づいて判断する処理と、
その判断により圧縮すると判断された前記書き込み対象のデータを圧縮して得られた圧縮データを、データを格納する記憶部に転送し、また、圧縮しないと判断された前記書き込み対象のデータには圧縮処理による負荷の増加を抑制すべく圧縮処理を行わず当該書き込み対象のデータをそのまま前記記憶部に転送する処理と
をコンピュータに実行させるコンピュータプログラムであって、
前記圧縮条件は、装置の稼働率が閾値未満であるか、あるいは、前記稼働率が前記閾値以上であっても、前記記憶部に関連付けられている論理ディスクであって前記書き込み対象のデータの書き込み先である論理ディクスに対し与えられている圧縮可否情報が可である場合に、前記書き込み対象のデータを圧縮するという条件であるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に格納されるデータの圧縮に関連する技術に関する。
【背景技術】
【０００２】
記憶装置に対して、より多くのデータを格納したいという要求がある。記憶容量の大きい記憶装置を採用する手段は、記憶装置に格納可能なデータ量を増加できる。しかしながら、記憶容量の大きい記憶装置は大型であり、また、価格が高い場合があり、このような場合には、ユーザのニーズに合わないことがある。そこで、記憶容量を大きくすることなく、より多くのデータを記憶装置に格納する技術として、データを圧縮する技術が有る。
【０００３】
なお、特許文献１には、データを記憶装置に書き込む際に、書き込み対象のデータを圧縮してから記憶装置に書き込み処理と、そのデータを圧縮せずに記憶装置に書き込む処理とのうちの処理時間の短い処理を実行してデータを書き込む技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１２／１２４１００号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、データを圧縮する手法の一つとして、ページとも呼ばれるデータブロック単位でデータを圧縮する手法がある。ページ単位でデータを圧縮する場合には、圧縮対象のデータの種類によって圧縮率や、圧縮処理に要する処理時間が異なることから、圧縮処理の前に、圧縮後のデータの圧縮率や処理時間を予測することが難しい。このため、データの圧縮処理を実行した場合に、処理を実行している例えばＣＰＵ（Central Processing Unit）が高負荷な状態となり、これにより、記憶装置から、当該記憶装置に接続しているホストコンピュータへの応答が遅くなるという応答遅れ問題が発生する。
【０００６】
本発明は上記課題を解決するために考え出された。すなわち、本発明の主な目的は、データの圧縮処理に起因した記憶装置の応答遅れ問題を防止する技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の制御装置は、一様相として、
書き込み対象のデータを圧縮するか否かを、装置の稼働状態を含む圧縮条件に基づいて判断する圧縮可否判断部と、
その判断により圧縮すると判断された前記書き込み対象のデータを圧縮して得られた圧縮データを、データを格納する記憶部に転送し、また、圧縮しないと判断された前記書き込み対象のデータはそのまま前記記憶部に転送する転送部と
を備える。
【０００８】
また、本発明の記憶装置は、一様相として、
上記本発明の一様相としての制御装置と、
データを格納する記憶部と
を備える。
【０００９】
さらに、本発明の記憶制御方法は、一様相として、
書き込み対象のデータを圧縮するか否かを、装置の稼働状態を含む圧縮条件に基づいて判断し、
その判断により圧縮すると判断された前記書き込み対象のデータを圧縮して得られた圧縮データを、データを格納する記憶部に転送し、また、圧縮しないと判断された前記書き込み対象のデータはそのまま前記記憶部に転送する。
【００１０】
さらにまた、本発明のコンピュータプログラムは、一様相として、
書き込み対象のデータを圧縮するか否かを、装置の稼働状態を含む圧縮条件に基づいて判断する処理と、
その判断により圧縮すると判断された前記書き込み対象のデータを圧縮して得られた圧縮データを、データを格納する記憶部に転送し、また、圧縮しないと判断された前記書き込み対象のデータはそのまま前記記憶部に転送する処理と
をコンピュータに実行させる処理手順を示す。
【００１１】
なお、本発明の上記主な目的は、本発明の制御装置に対応する本発明の記憶制御方法によっても達成される。また、本発明の上記主な目的は、本発明の制御装置、記憶制御方法に対応するコンピュータプログラムおよびそれを記憶する記憶媒体によっても達成される。
【発明の効果】
【００１２】
本発明によれば、データの圧縮処理に起因した記憶装置の応答遅れ問題を防止できる。
【図面の簡単な説明】
【００１３】
【図１】本発明に係る第１実施形態の制御装置の構成を簡略化して表すブロック図である。
【図２】第１実施形態の制御装置を備えた記憶装置の構成を簡略化して表すブロック図である。
【図３】本発明に係る第２実施形態の制御装置を備えた記憶装置の構成を簡略化して表すブロック図である。
【図４】第２実施形態の制御装置が利用するデータの一例を表す図である。
【図５】第２実施形態の制御装置が利用する別のデータの一例を表す図である。
【図６】書き込み要求に対する制御装置（記憶装置）の動作例を表すフローチャートである。
【図７】読み出し要求に対する制御装置（記憶装置）の動作例を表すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に、本発明に係る実施形態を図面を参照しながら説明する。
【００１５】
＜第１実施形態＞
図１は、本発明に係る第１実施形態の制御装置の構成を簡略化して表すブロック図である。第１実施形態の制御装置１は、例えば、図２に表されるような記憶装置５に組み込まれる装置であり、データを格納する記憶部７へのデータの書き込みを制御する機能を備えている。
【００１６】
制御装置１は、圧縮可否判断部２と、転送部３とを備えている。圧縮可否判断部２は、書き込み対象のデータを圧縮するか否かを、装置の稼働状態を含む圧縮条件に基づいて判断する機能を備えている。
【００１７】
転送部３は、判断部２の判断により圧縮すると判断された前記書き込み対象のデータを圧縮して得られた圧縮データを、データを格納する記憶部に転送し、また、圧縮しないと判断された前記書き込み対象のデータはそのまま前記記憶部に転送する機能を備える。
【００１８】
この第１実施形態の制御装置１およびそれを備えた記憶装置５は、装置の稼働状態を含む圧縮条件に基づいて、書き込み対象のデータを圧縮するか否かを判断している。このため、例えば、制御装置１（記憶装置５）は、装置の稼働状態が高い場合には、書き込み対象のデータを圧縮せずに記憶部７に書き込むことによって、書き込み処理の処理時間が長く掛かるという事態を防止できる。つまり、制御装置１（記憶装置５）は、データの圧縮に起因した応答遅れを回避できる。
【００１９】
＜第２実施形態＞
図３は、本発明に係る第２実施形態の制御装置を備えた記憶装置の構成を簡略化して表す図である。この第２実施形態の記憶装置１０は、ホスト装置（コンピュータ）９に接続し、ホスト装置９からの要求（コマンド）に応じてデータの格納と読み出しを行う。この第２実施形態では、記憶装置１０はディスクアレイ装置である。
【００２０】
記憶装置１０は、制御装置１２と、記憶部１３とを備えている。記憶部１３は、複数の物理ディスクとしてのフラッシュメモリを備えるＳＳＤ（Solid State Drive）により構成されている。制御装置１２は、記憶部１３へのデータの書き込みと記憶部１３からのデータの読み出しを制御する装置である。この第２実施形態では、複数の論理ディスク２２が設定されており、制御装置１２は、論理ディスク２２と、記憶部１３（物理ディスク）との関係を管理する機能を備えている。
【００２１】
制御装置１２は、さらに、データを記憶する機能を持つキャッシュ２０を備えると共に、次のような機能を備えている。すなわち、制御装置１２は、ＣＰＵ（Central Processing Unit）を備えており、当該ＣＰＵがコンピュータプログラムを実行することにより実現する機能部を有する。その機能部とは、通信部１５と、キャッシュ管理部１６と、情報管理部１７と、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）管理部１８と、転送部１９とである。
【００２２】
通信部１５は、ホスト装置９とキャッシュ２０との間のデータ転送を制御する機能を備えている。また、通信部１５は、ホスト装置９から書き込み要求と共に送付されてきたデータをキャッシュ２０に書き込む機能を備えている。
【００２３】
キャッシュ管理部１６は、キャッシュ２０に格納するデータの格納位置を表すアドレスを管理する機能を備えている。
【００２４】
ＲＡＩＤ管理部１８は、ホスト装置９からの書き込み要求と共に送付されたデータの書き込み先の論理ディスク２２を決定する機能を備えている。また、ＲＡＩＤ管理部１８は、その論理ディスク２２のアドレスとそれに関連付けられる記憶部３（物理ディスク）のアドレスとを管理する機能を備えている。
【００２５】
さらに、ＲＡＩＤ管理部１８は、予め定められた圧縮条件に該当する書き込み対象のデータを圧縮する機能を備えている。すなわち、第２実施形態では、ＲＡＩＤ管理部１８が、書き込み対象のデータを圧縮するか否かを圧縮条件に基づいて判断する圧縮可否判断部として機能する。
【００２６】
その圧縮条件とは、制御装置１２を構成しているＣＰＵのビジー率（稼働率）が閾値未満であるという条件である。また、ＣＰＵのビジー率が閾値以上であっても、データの書き込み先の論理ディスク２２に与えられている圧縮可否情報が可である場合にはデータを圧縮するという条件が圧縮条件として与えられている。
【００２７】
情報管理部１７は、図４に表されるような圧縮情報と、図５に表されるような圧縮処理関連情報とを管理する機能を備えている。圧縮情報とは、キャッシュ２０に格納されているデータが圧縮データであるか否かの情報と、そのデータが格納されているキャッシュ２０でのアドレスと、そのデータが格納される物理ディスクのアドレスと、データサイズとが関連付けられている情報である。圧縮処理関連情報とは、論理ディスク２２を識別すべく付与された論理ディスク番号と、論理ディスク毎の平均圧縮率と平均応答時間と圧縮処理に要する平均圧縮時間とが関連付けられている情報である。これら圧縮情報および圧縮処理関連情報は、キャッシュ２０に格納されている。
【００２８】
また、情報管理部１７は、ＲＡＩＤ管理部１８がデータを圧縮した場合には、その圧縮率と圧縮に要した圧縮時間の情報に基づいて平均圧縮率および平均圧縮時間を更新する機能を備えている。
【００２９】
さらに、情報管理部１７は、論理ディスク２２毎に、圧縮効率を表す指標を算出する機能を備えている。その指標は例えば次のように算出される。
【００３０】
ここで、論理ディスク２２の平均圧縮率をＣとし、平均圧縮時間をＴｃとし、平均応答時間をＴｒとした場合に、論理ディスクへの書き込み要求に応じた平均応答時間に対する平均圧縮時間の割合は、Ｔｃ／Ｔｒ（＝Ｔｃ÷Ｔｒ）と表すことができる。これにより、書き込み要求に応じた処理のうちの圧縮以外の処理に関し、平均応答時間に対するその処理の処理時間の割合は、１−（Ｔｃ／Ｔｒ）と表すことができる。さらに、論理ディスク２２における圧縮効率を表す指標Ａは、次の式（１）により表すことができる。
【００３１】
Ａ＝Ｗ１＊Ｃ＋Ｗ２＊（１−（Ｔｃ／Ｔｒ））・・・・・・（１）
なお、Ｗ１，Ｗ２は、それぞれ、重み付け係数であり、論理ディクス２２毎に、圧縮処理とそれ以外の処理とのうちの何れを優先するかに応じて設定される係数である。また、＊は、乗算を表す算術記号である。
【００３２】
このように算出された指標Ａに基づいて、効率良くデータを圧縮できる優先順位を論理ディスク２２に付けることができる。
【００３３】
転送部１９は、キャッシュ２０に格納されているデータを論理ディスク２２（つまり、記憶部１３）に向けて転送する機能を備えている。
【００３４】
この第２実施形態の制御装置１２およびそれを備えた記憶装置１０は上記のように構成されている。記憶装置１０の制御装置１２は、ホスト装置９から書き込み要求を受け取った場合に、次のように動作する。図６は、書き込み要求に対する制御装置１２の動作例を表すフローチャートである。なお、この図６に表されているフローチャートは、制御装置１２が実行する処理手順を表している。
【００３５】
まず、制御装置１２の通信部１５は、ホスト装置９から書き込み要求および書き込み対象のデータを受け取ると（図６におけるステップＳ１）、書き込み対象のデータをキャッシュ２０に格納し、その後、ホスト装置９に向けて処理終了を報告する。
【００３６】
その後、ＲＡＩＤ管理部１８が、制御装置１２が持つＣＰＵのビジー率の情報を取得する（ステップＳ２）。
【００３７】
そして、ＲＡＩＤ管理部１８は、ＣＰＵのビジー率が閾値以上であるか否かを判断する（ステップＳ３）。ＣＰＵのビジー率が閾値以上である場合には、ＲＡＩＤ管理部１８は、情報管理部１７が管理している情報に基づき、書き込み対象のデータに付与されている書き込みアドレスに対応する論理ディスク２２が圧縮可であるか否かを判断する（ステップＳ４）。
【００３８】
この判断によって圧縮可であると判断された場合、あるいは、ＣＰＵのビジー率が閾値未満であった場合には、ＲＡＩＤ管理部１８が書き込み対象のデータをページ単位（データブロック単位）で圧縮する（ステップＳ５）。圧縮後のデータはキャッシュ２０に格納される。
【００３９】
その後、情報管理部１７は、その圧縮処理に要した圧縮時間と圧縮率を算出し、これら算出値に基づいて、平均圧縮時間と平均圧縮率の情報を更新する。また、情報管理部１７は、更新された情報に基づいて、圧縮効率を表す指標Ａを算出し、当該指標Ａの情報を更新する（ステップＳ６）。この指標Ａを利用することにより、効率良く圧縮が行える論理ディスク２２の優先順位を定めることができる。
【００４０】
その後、転送部１９が書き込み対象のデータをキャッシュ２０から読み出し、当該読み出したデータを論理ディスク２２（つまり、記憶部１３）に書き込む（ステップＳ７）。
【００４１】
然る後に、書き込み対象のデータが全て論理ディスク（記憶部１３）に正常に書き込まれたことが確認された後に、例えばキャッシュ管理部１６がキャッシュ２０に格納されていたその書き込み完了のデータをキャッシュ２０から削除する。
【００４２】
このようにして、書き込み要求に応じた記憶装置１０の動作が終了する。
【００４３】
次に、ホスト装置９から読み出し要求を受け取った場合の記憶装置１０における制御装置１２の動作例を図７に基づいて説明する。図７に示されているフローチャートは、制御装置１２が実行する処理手順を表している。
【００４４】
まず、制御装置１２の通信部１５は、ホスト装置９から読み出し要求を受け取ると（図７におけるステップＳ１１）、読み出し要求を受け取ったことをＲＡＩＤ管理部１８に通知する。そして、ＲＡＩＤ管理部１８は、読み出し要求と共に送付された読み出し対象のデータに関連するアドレス情報に基づいて、データを論理ディスク２２（記憶部１３）から読み出す（ステップＳ１２）。
【００４５】
一方、ＲＡＩＤ管理部１８は、その読み出したデータが圧縮データであるか否かの情報を情報管理部１７から取得する。そして、その取得した情報に基づいて、ＲＡＩＤ管理部１８は、読み出したデータが圧縮データであるか否かを判断する（ステップＳ１３）。そして、読み出したデータが圧縮データでない場合には、ＲＡＩＤ管理部１８は、その読み出したデータをそのままキャッシュ２０に格納する。また、読み出したデータが圧縮データである場合には、ＲＡＩＤ管理部１８は、読み出したデータを解凍し（ステップＳ１４）、解凍後のデータをキャッシュ２０に格納する。
【００４６】
然る後に、通信部１５が、読み出し対象のデータをキャッシュ２０から読み出し、ホスト装置９に送信する（ステップＳ１５）。そして、読み出し対象のデータを送信し終えた後に、通信部１５は終了報告を行う。
【００４７】
このようにして、読み出し要求に応じた記憶装置１０の動作が終了する。
【００４８】
この第２実施形態の制御装置１２およびそれを備えた記憶装置１０は、データを論理ディスク２２（記憶部１３）に書き込む場合に、圧縮条件に基づいて圧縮の可否を判断し、判断結果に応じて圧縮を実行している。つまり、制御装置１２（記憶装置１０）は、ＣＰＵのビジー率が閾値未満である、あるいは、ＣＰＵのビジー率が閾値以上であっても書き込み対象の論理ディスク２２が効率良くデータを圧縮できる場合に、書き込み対象のデータを圧縮している。このため、制御装置１２（記憶装置１０）は、圧縮処理のためにＣＰＵの負荷が過剰に掛かることに起因して書き込み処理に要する時間が長くなるという問題を防止することができる。つまり、制御装置１２（記憶装置１０）は、ホスト装置９から書き込み要求を受けてから、書き込み装置９に書き込み終了を報告するまでの応答時間が長くなるという問題を防止することができる。
【００４９】
また、第２実施形態では、書き込み対象のデータは圧縮されて記憶部１３にランダムアクセスとなる状態で書きこまれるが、記憶部１３を、ランダムアクセスでも応答が遅れないＳＳＤにより構成するので、制御装置１２（記憶装置１０）は応答遅れを回避できる。
【００５０】
さらに、第２実施形態の制御装置１２（記憶装置１０）は、圧縮に係る圧縮率や圧縮時間等の統計的な情報を更新していく構成を備えていることから、圧縮処理に対する信頼性を高めていくことができる。
【００５１】
＜その他の実施形態＞
なお、この発明は第１と第２の実施形態に限定されずに様々な実施の形態を採り得る。例えば、第２実施形態では、記憶部１３（つまり、物理ディスク）はＳＳＤにより構成されていたが、ハードディスク（磁気ディスク）等の他の記憶媒体により構成されていてもよい。
【符号の説明】
【００５２】
１，１２  制御装置
２  圧縮可否判断部
３，１９  転送部
５，１０  記憶装置
１７  情報管理部
１８  ＲＡＩＤ管理部
２２  論理ディスク
【図１】
0006524945.tif 000002
【図２】
0006524945.tif 000003
【図３】
0006524945.tif 000004
【図４】
0006524945.tif 000005
【図５】
0006524945.tif 000006
【図６】
0006524945.tif 000007
【図７】
0006524945.tif 000008