(57)【要約】【課題】ストレージシステムにおいて送受信されるデータを効率的に圧縮する。【解決手段】ストレージ装置を含んだ複数の機器で構成されるストレージシステムにおいて送受信されるデータの圧縮を制御する圧縮制御装置を備える。圧縮制御装置が、ストレージシステムの構成に関する構成情報を基に、ストレージシステムを構成する少なくとも一つの機器についての圧縮制御方式を決定し、その少なくとも一つの機器が該決定された圧縮制御方式に従う圧縮を行うよう、複数の機器の少なくとも一つを制御する。【選択図】図１
2008269050.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置を含んだ複数の機器で構成されるストレージシステムにおいて送受信されるデータの圧縮を制御する圧縮制御装置であって、
ストレージシステムの構成に関する構成情報と、
前記構成情報に基づいて、前記ストレージシステムを構成する少なくとも一つの機器についての圧縮制御方式を決定する圧縮制御方式決定部と、
前記少なくとも一つの機器が前記決定された圧縮制御方式に従う圧縮を行うよう、前記複数の機器の少なくとも一つを制御する圧縮制御部と、
を備える圧縮制御装置。
【請求項２】
前記構成情報は、機器情報と通信経路情報とを含んだ情報であり、
前記機器情報は、前記ストレージシステムを構成する複数の機器の各々について圧縮機能を有するか否かを示す情報であり、
前記通信経路情報は、前記ストレージシステムを構成する複数の機器によって形成される複数の通信経路の各々について、当該通信経路を形成する機器の組み合わせと、当該通信経路を形成する複数の機器についてデータの流れる順序とを表す情報であり、
前記圧縮制御方式決定部は、前記機器情報及び前記通信経路情報に基づいて、前記複数の通信経路の各々について、当該通信経路を形成する複数の機器のうちのいずれかを、データの圧縮を行う機器である圧縮実行機器と決定し、
前記圧縮制御部は、各通信経路について、決定された圧縮実行機器がデータの圧縮を行うように、前記複数の機器のうちの少なくとも一つを制御する、
請求項１記載の圧縮制御装置。
【請求項３】
前記圧縮制御方式決定部は、前記機器情報及び前記通信経路情報に基づいて、各通信経路について、当該通信経路を形成する複数の機器であって圧縮機能を有する機器のうち、データの流れの最も上流に位置する機器を前記圧縮実行機器と決定する、
請求項２記載の圧縮制御装置。
【請求項４】
前記構成情報は、更に、転送性能情報を含み、
前記転送性能情報は、各通信経路について当該通信経路における通信区間ごとにその転送性能を示した情報であり、
前記圧縮制御方式決定部は、前記機器情報、前記通信経路情報及び前記転送性能情報に基づいて、各通信経路について、当該通信経路を形成する複数の機器であって圧縮機能を有する機器のうち、転送性能が低い通信区間の直前に位置する機器を、前記圧縮実行機器と決定する、
請求項２記載の圧縮制御装置。
【請求項５】
前記転送性能は、データの通信速度である、
請求項４記載の圧縮制御装置。
【請求項６】
前記転送性能は、データの通信速度の期待値である、
請求項４記載の圧縮制御装置。
【請求項７】
各通信経路における通信区間の転送性能を定期的又は不定期的に計測する転送性能計測部、を更に備え、
前記転送性能情報が示す転送性能は、下記（１）又は（２）である、
（１）前記転送性能計測部が計測した所定の時点における転送性能、
（２）前記転送性能計測部が計測した複数の時点における転送性能の平均値、
請求項４記載の圧縮制御装置。
【請求項８】
前記転送性能情報は、転送性能の履歴を示し、
各通信経路における各通信区間についての前記転送性能の履歴は、前記転送性能計測部によって計測された転送性能が追加されることによって更新され、
転送性能が低い通信区間が別の通信区間に変更されたか否かを各通信経路について判断する性能変更判断部を、更に備え、
前記性能変更判断部が、或る通信経路について転送性能が低い通信区間が別の通信区間に変更されたと判断したときは、前記圧縮制御方式決定部は、前記或る通信経路について、転送性能が低い前記別の通信区間の直前に位置する機器であって圧縮機能を有する機器を、前記圧縮実行機器と決定し、前記圧縮制御部は、前記或る通信経路について、決定された圧縮実行機器がデータの圧縮を行うように、前記複数の機器のうちの少なくとも一つを制御する、
請求項７記載の圧縮制御装置。
【請求項９】
前記圧縮制御方式決定部が、転送性能が低い通信区間の変更後の転送性能に基づいて、決定された前記圧縮実行機器がデータを圧縮する際の圧縮率を調節し、
前記圧縮制御部は、前記圧縮実行機器に対して、調節後の圧縮率を送る、
請求項８記載の圧縮制御装置。
【請求項１０】
前記構成情報は、各通信経路について当該通信経路における通信区間ごとにその転送性能を示した転送性能情報を含み、
前記圧縮制御方式決定部が、前記転送性能情報が示す転送性能を基に、前記複数の機器のうちの圧縮を行う機器である圧縮実行機器がデータを圧縮する際の圧縮率又は圧縮率に影響するパラメータを決定し、
前記圧縮制御部は、前記圧縮実行機器に対して、決定された圧縮率又はパラメータを送る、
請求項１記載の圧縮制御装置。
【請求項１１】
前記通信区間の転送性能を定期的又は不定期的に計測し、前記転送性能情報が示す転送性能が前記計測された転送性能となるように、前記転送性能情報を更新する転送性能計測部、を更に備え、
前記圧縮制御方式決定部は、更新後の前記転送性能情報が示す転送性能に基づいて、前記圧縮実行機器がデータを圧縮する際の圧縮率又は圧縮率に影響するパラメータを変更し、
前記圧縮制御部は、前記圧縮実行機器に対して変更後の圧縮率又はパラメータを送る、
請求項１０記載の圧縮制御装置。
【請求項１２】
前記構成情報は、前記ストレージシステムにおけるデータの種別を示すデータ種別情報を含み、
前記圧縮制御方式決定部は、前記ストレージシステムを構成する所定の機器に対して、前記データ種別情報に基づいて、前記データの種別ごとにデータの圧縮を行うか否かを決定し、
前記圧縮制御部は、前記圧縮制御方式決定部が決定したデータ種別のデータの圧縮を前記所定の機器が行うよう前記所定の機器を制御する、
請求項１記載の圧縮制御装置。
【請求項１３】
前記圧縮制御方式決定部が、前記データの種別がログ又はバックアップであるときに、当該データの圧縮を行うと決定する、
請求項１２記載の圧縮制御装置。
【請求項１４】
前記構成情報は、前記所定の機器が扱うデータが格納される論理ボリュームの識別情報とその用途とを示す論理ボリューム情報を含み、
前記圧縮制御方式決定部は、前記ストレージシステムを構成する所定の機器に対して、前記論理ボリューム情報が表す各論理ボリュームの用途に基づいて、前記論理ボリュームごとに当該論理ボリュームに格納されるデータの圧縮を行うか否かを決定し、
前記圧縮制御部は、前記圧縮制御方式決定部が決定した論理ボリュームに格納されるデータの圧縮を前記所定の機器が行うよう前記所定の機器を制御する、
請求項１２記載の圧縮制御装置。
【請求項１５】
ストレージ装置を含む複数の機器と
圧縮制御装置と
を備え、
前記圧縮制御装置が、
前記複数の機器の構成に関する構成情報と、
前記構成情報に基づいて、前記複数の機器の少なくとも一つの機器についての圧縮制御方式を決定する圧縮制御方式決定部と、
前記少なくとも一つの機器が前記決定された圧縮制御方式に従う圧縮を行うよう、前記複数の機器の少なくとも一つを制御する圧縮制御部と、
を備える、
圧縮制御システム。
【請求項１６】
ストレージ装置を含んだ複数の機器で構成されるストレージシステムの構成に関する構成情報を基に、前記ストレージシステムを構成する少なくとも一つの機器についての圧縮制御方式を決定し、
前記少なくとも一つの機器が前記決定された圧縮制御方式に従う圧縮を行うよう、前記複数の機器の少なくとも一つを制御する、
圧縮制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムにおいて送受信されるデータの圧縮の制御に関する。
【背景技術】
【０００２】
近年、情報通信技術の進歩に伴い、企業が保有するデータ量が増加の一途を辿っている。企業は、大量のデータを安全にかつ確実に保管するためにストレージシステムを利用するが、データ量の増加により、今まで以上にストレージシステムへ投資せざるを得ない状況となっている。また、データ量の増加は、通信ネットワークのトラフィックにも影響を与える。通信ネットワークでは、その伝送路が持つ処理能力以上のデータが送受信されることによって転送性能の劣化が生じることもある。
【０００３】
これらの課題を解決する方法の一つにデータ圧縮がある。データの圧縮を行うことにより、ストレージシステムの記憶資源の使用容量を抑制することができ、結果として記憶資源の増設にかかる費用を削減することができる。また、通信ネットワークにおいては、送受信するデータ量を抑制することができ、転送性能の劣化を軽減させることができる。
【０００４】
データの圧縮に関連する技術としては、例えば、特許文献１や特許文献２が知られている。
【０００５】
【特許文献１】特開平５−２５０３０７号公報
【特許文献２】特開平６−１３３１２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、データの圧縮は、圧縮を行う装置のプロセッサパワーやメモリその他のリソースを消費するため、一時的ではあるが、その装置の処理性能に悪影響を与える。また、既に圧縮されたデータに対して、再度圧縮を行っても効果が得られないことが知られている。従って、データの圧縮は、無駄な重複した圧縮を回避して効率的に行われることが望まれる。
【０００７】
通常、圧縮の対象とするデータが圧縮済みか否かは、そのデータがファイルレベルのものであれば、そのファイルの拡張子により判別することができる。一方で、ストレージシステムでは、ファイルレベルではなくブロックレベルでデータを処理するので、受信したデータが圧縮済みか否かを判別することができない。
【０００８】
そこで、本発明は、ストレージシステムにおいて送受信されるデータを、効率的に圧縮することを目的とする。
【課題を解決するための手段】
【０００９】
ストレージ装置を含んだ複数の機器で構成されるストレージシステムにおいて送受信されるデータの圧縮を制御する圧縮制御装置を備える。圧縮制御装置が、ストレージシステムの構成に関する構成情報を基に、ストレージシステムを構成する少なくとも一つの機器についての圧縮制御方式を決定し、その少なくとも一つの機器が該決定された圧縮制御方式に従う圧縮を行うよう、複数の機器の少なくとも一つを制御する。
【発明を実施するための最良の形態】
【００１０】
一つの実施形態では、圧縮制御装置が、ストレージ装置を含んだ複数の機器で構成されるストレージシステムの構成に関する構成情報と、ストレージシステムを構成する少なくとも一つの機器についての圧縮制御方式を上記構成情報を基に決定する圧縮制御方式決定部と、少なくとも一つの機器が上記決定された圧縮制御方式に従う圧縮を行うよう複数の機器のうちの少なくとも一つを制御する圧縮制御部とを備える。
【００１１】
上記の構成情報は、例えば、圧縮制御装置が備える記憶領域に記憶される。また、「少なくとも一つの機器が上記決定された圧縮制御方式に従う圧縮を行うよう複数の機器のうちの少なくとも一つを制御する」とは、少なくとも一つの機器に対して何らかのコマンドを送信すること（例えば、圧縮制御方式を示すコマンドを送信すること）であっても良いし、少なくとも一つの機器以外の機器に対して何らかのコマンド（例えば、圧縮を実行しないことのコマンド）を送信することであっても良いし、複数の機器の全てに何らかのコマンド（例えば、どの機器で圧縮を実行するか及び／又はどのぐらいの圧縮率（又は圧縮率に影響するパラメータをどんな値とするか（以下、圧縮率に影響するパラメータを「圧縮制御パラメータ」と呼ぶことがある）））とするかを記憶することのコマンド）を送信することであっても良い。
【００１２】
また、圧縮制御方式は、例えば、圧縮するか否かであっても良いし、圧縮する際の圧縮率を幾つにするか（或いは、圧縮制御パラメータをどんな値とするか）であっても良い。
【００１３】
一つの実施形態では、構成情報は、機器情報と通信経路情報とを含んだ情報である。機器情報は、ストレージシステムを構成する複数の機器の各々について圧縮機能を有するか否かを示す情報である。通信経路情報は、ストレージシステムを構成する複数の機器によって形成される複数の通信経路の各々について、当該通信経路を形成する機器の組み合わせと、当該通信経路を形成する複数の機器についてデータの流れる順序とを表す情報である。圧縮制御方式決定部は、機器情報及び通信経路情報に基づいて、複数の通信経路の各々について、当該通信経路を形成する複数の機器のうちのいずれかを、データの圧縮を行う機器である圧縮実行機器と決定することができる。圧縮制御部は、各通信経路について、決定された圧縮実行機器がデータの圧縮を行うように、複数の機器のうちの少なくとも一つを制御することができる。
【００１４】
一つの実施形態では、圧縮制御方式決定部は、機器情報及び通信経路情報に基づいて、各通信経路について、当該通信経路を形成する複数の機器であって圧縮機能を有する機器のうち、データの流れの最も上流に位置する機器を圧縮実行機器と決定することができる。このため、例えば、当該通信経路における最上流にある機器（１番目の機器）に圧縮機能が無く、それより一つ下流側に位置する機器（２番目の機器）に圧縮機能が有る場合には、その２番目の機器を、圧縮実行機器とすることができる。
【００１５】
一つの実施形態では、構成情報が、更に、転送性能情報を含む。転送性能情報は、各通信経路について当該通信経路における通信区間ごとにその転送性能を示した情報である。圧縮制御方式決定部は、機器情報、通信経路情報及び転送性能情報に基づいて、各通信経路について、当該通信経路を形成する複数の機器であって圧縮機能を有する機器のうち、転送性能が低い通信区間の直前に位置する機器を、圧縮実行機器と決定することができる。
【００１６】
ここで、「転送性能が低い通信区間」とは、所定の閾値よりも転送性能が低い通信区間であっても良いし、一つの通信経路において最も転送性能が低い通信区間であっても良い。
【００１７】
また、通信区間は、例えば、機器と機器との接続により形成される。言い換えれば、通信区間の両端は、それぞれ、機器である。そして、前述の「直前に位置する機器」とは、通信区間の両端の機器のうちの上流側の機器が圧縮機能を有している場合には、その両端の機器のうちの上流側の機器となり、両端の機器のうちの上流側の機器が圧縮機能を有していない場合には、該上流側の機器に最も近く、圧縮機能を有し、且つ該上流側の機器よりも上流側の機器が、上記「直前に位置する機器」となる。
【００１８】
一つの実施形態では、データの通信速度、及び／又は、データの通信速度の期待値である。
【００１９】
一つの実施形態では、各通信経路における通信区間の転送性能を定期的又は不定期的に計測する転送性能計測部が更に備えられる。転送性能情報が示す転送性能は、下記（１）又は（２）、
（１）転送性能計測部が計測した所定の時点における転送性能、
（２）転送性能計測部が計測した複数の時点における転送性能の平均値、
である。
【００２０】
一つの実施形態では、転送性能情報は、転送性能の履歴を示す。各通信経路における各通信区間についての前記転送性能の履歴は、転送性能計測部によって計測された転送性能が追加されることによって更新される。転送性能が低い通信区間が別の通信区間に変更されたか否かを各通信経路について判断する性能変更判断部が更に備えられる。性能変更判断部が、或る通信経路について転送性能が低い通信区間が別の通信区間に変更されたと判断したときは、圧縮制御方式決定部が、その或る通信経路について、転送性能が低い別の通信区間の直前に位置する機器であって圧縮機能を有する機器を、圧縮実行機器と決定し、圧縮制御部が、その或る通信経路について、決定された圧縮実行機器がデータの圧縮を行うように、複数の機器のうちの少なくとも一つを制御することができる。
【００２１】
一つの実施形態では、圧縮制御方式決定部が、転送性能が低い通信区間の変更後の転送性能に基づいて、決定された前記圧縮実行機器がデータを圧縮する際の圧縮率又は圧縮制御パラメータを調節することができる。圧縮制御部は、圧縮実行機器に対して、調節後の圧縮率又は圧縮制御パラメータを送ることができる。圧縮実行機器は、圧縮率を受信し、その圧縮率で圧縮するための圧縮制御パラメータを決定し、決定した圧縮制御パラメータと所定のアルゴリズムで圧縮しても良い。また、圧縮実行機器は、圧縮制御パラメータを受信し、受信した圧縮制御パラメータと所定のアルゴリズムとで圧縮しても良い。
【００２２】
一つの実施形態では、圧縮制御方式決定部が、転送性能情報が示す転送性能を基に、前記複数の機器のうちの圧縮を行う機器である圧縮実行機器がデータを圧縮する際の圧縮率又は圧縮制御パラメータを決定することができる。圧縮制御部は、圧縮実行機器に対して、決定された圧縮率又は圧縮制御パラメータを送ることができる。
【００２３】
一つの実施形態では、圧縮制御方式決定部は、転送性能計測部による更新後の転送性能情報が示す転送性能に基づいて、圧縮実行機器がデータを圧縮する際の圧縮率又は圧縮制御パラメータを変更することができる。圧縮制御部は、圧縮実行機器に対して変更後の圧縮率又は圧縮制御パラメータを送ることができる。圧縮制御方式決定部は、転送性能の変化の都度に、圧縮率又は圧縮制御パラメータの変更を行なっても良いし、転送性能の変化量が所定の閾値以上であるときに、圧縮率又は圧縮制御パラメータの変更を行っても良い。
【００２４】
一つの実施形態では、構成情報は、ストレージシステムにおけるデータの種別を示すデータ種別情報を含む。圧縮制御方式決定部は、ストレージシステムを構成する所定の機器に対して、データ種別情報に基づいて、データの種別ごとにデータの圧縮を行うか否かを決定することができる。圧縮制御部は、圧縮制御方式決定部が決定したデータ種別のデータの圧縮を所定の機器が行うよう所定の機器を制御することができる。
【００２５】
一つの実施形態では、圧縮制御方式決定部が、データの種別がログ又はバックアップであるときに、当該データの圧縮を行うと決定することができる。
【００２６】
一つの実施形態では、構成情報は、所定の機器が扱うデータが格納される論理ボリュームの識別情報とその用途とを示す論理ボリューム情報を含む。圧縮制御方式決定部は、ストレージシステムを構成する所定の機器に対して、論理ボリューム情報が表す各論理ボリュームの用途に基づいて、論理ボリュームごとに当該論理ボリュームに格納されるデータの圧縮を行うか否かを決定することができる。圧縮制御部は、圧縮制御方式決定部が決定した論理ボリュームに格納されるデータの圧縮を前記所定の機器が行うよう所定の機器を制御することができる。
【００２７】
上述した複数の実施形態のうちの任意の二以上を組み合わせることもできる。また、圧縮機能は、圧縮部と言い換えることもできる。また、上述した各部（例えば、圧縮制御方式決定部、圧縮制御部、転送性能計測部、性能変更判断部）は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【００２８】
以下、図面を参照しながら本発明の幾つかの実施形態について詳細に説明する。尚、これにより本発明が限定されるものではない。
【００２９】
＜第一の実施形態＞。
【００３０】
図１は、本発明の第一の実施形態に係る圧縮制御装置を備えたストレージシステムの構成例を示した図である。
【００３１】
本実施形態に係るストレージシステム（以下、「本システム」と呼ぶことがある）は、一以上のストレージ装置１００と、一以上のホストコンピュータ（ホスト）２００と、管理端末４００とを備える。ストレージ装置１００は、一以上のホスト２００及び一以上の他のストレージ装置１００と、通信ネットワーク（図示しない）を介して接続される。ホスト２００とストレージ装置１００との間及びストレージ装置１００とストレージ装置１００との間の通信ネットワークは、ＳＡＮ（Storage Area Network）やＩＰ（Internet Protocol）ネットワーク等であってもよいし、装置間で直接接続されるようにして構成されてもよい。ホスト２００とストレージ装置１００との経路上及びストレージ装置１００とストレージ装置１００との経路上には、データの圧縮や伸張を行う機能（以下、単に「圧縮機能」という）を有する圧縮機能内蔵装置３００が備えられる場合もある。
【００３２】
管理端末４００は、ストレージシステムを構成するノード（ここでは、ストレージ装置１００、ホスト２００及び圧縮機能内蔵装置３００）の全部又は一部と、それぞれ接続される。管理端末４００は、基本的には、全てのノードと接続されるが、圧縮機能を有しないことが明らかであって圧縮（伸張）に関する制御（以下、「圧縮制御」）を必要としないノードとは、必ずしも接続されなくともよい。以下、管理端末４００に接続され、管理端末４００によって圧縮制御が行われるノードを、「制御対象ノード」と呼ぶ。管理端末４００と制御対象ノード間は、ホスト２００とストレージ装置１００間、ストレージ装置１００とストレージ装置１００間の接続と同様に、ＳＡＮやＩＰネットワーク等を介して接続されてもよいし、装置間で直接接続されてもよい。また、管理端末４００と制御対象ノードとの接続及びノード同士の接続の全てが、同一の通信ネットワークを介して行われてもよい。
【００３３】
管理端末４００は、各制御対象ノードと連携してそれぞれのノードの圧縮制御を行う。例えば、或るノードから他のノードへデータが送信されるとき（以下、送信元である或るノードを「送信ノード」、送信先である他のノードを「受信ノード」という）、データが通過するパス上には、送信ノードを含めて複数のノードが存在し、そのうちの複数のノードが圧縮機能を有する場合がある。管理端末４００は、この圧縮機能を有する複数のノードのうち、どのノードに圧縮を行わせるかを決定し、その決定した内容をそのパス上の全てのノードに通知する。パス上の各ノードは、その通知に従って、自己が圧縮を行うノードとして指定されていた場合にはデータの圧縮を行い、圧縮を行うノードとして指定されていない場合には圧縮を行わないようにする。本実施形態では、圧縮するノードの決定とその通知とは、本システム上の全てのパス又は任意に選択された一部のパス（以下、「制御対象パス」）について一括して行われる。
【００３４】
また、管理端末４００は、パスを構成する最小単位であってノードとノードの接続により形成される区間（以下、「パス区間」）における転送性能（通信速度やデータ欠損率等）を定期的又は不定期的に測定する。管理端末４００は、転送性能の測定結果に基づいて圧縮を行わせるノードや圧縮の際の圧縮率を決定することもできる。また、転送性能の変化に伴って圧縮を行わせるノードや圧縮の際の圧縮率に変更が生じた場合は、その変更内容を制御対象ノードへ通知する。以下、管理端末４００が制御対象ノードに対して行う、圧縮制御のための通知を、「圧縮制御通知」と呼ぶ。管理端末４００の詳細については、後述する。
【００３５】
尚、本実施形態では、管理端末４００が圧縮制御のための主要な機能を提供するが、管理端末４００が必ずしも必要とされるわけではない。例えば、ストレージ装置１００やホスト２００等が、この管理端末４００が提供する機能を備えることにより、本システムは、ストレージ装置１００とホスト２００と（場合に応じて、圧縮機能内蔵装置３００も含む）から構成されることもできる。
【００３６】
ホスト２００は、ストレージ装置１００に対してデータの書込みや読出しを行う。ホスト２００には、圧縮機能を有するものと圧縮機能を有しないものとがある。圧縮機能を有するホスト２００は、書込み対象のデータ（以下、「ライトデータ」）を圧縮してからストレージ装置１００へ送信することもできるし、ライトデータを圧縮せずにストレージ装置１００へ送信することもできる。圧縮機能を有するホスト２００は、ストレージ装置１００へ送信するライトデータを圧縮するか否かを、管理端末４００からの圧縮制御通知の内容に従って切替えることができる。
【００３７】
ストレージ装置１００は、ホスト２００から受信したライトデータを、自らの管理下にある記憶資源（例えば、キャッシュメモリの領域や論理ボリューム）に格納する。また、ストレージ装置１００は、ホスト２００からの指示に従って、記憶資源から所望のデータを読み出して、その読み出したデータ（以下、「リードデータ」）をホスト２００へ送信する。更に、ストレージ装置１００は、いわゆるリモートコピーの機能を有する。即ち、ホスト２００からライトデータを受信したストレージ装置１００は、その受信したライトデータを他のストレージ装置１００へ転送する（転送先の他のストレージ装置１００は、ホスト２００からの指示により決定されてもよいし、転送するストレージ装置１００によって決定されてもよい）。ライトデータを受信したストレージ装置１００は、そのライトデータを自らの管理下にある記憶資源に格納する。ストレージ装置１００は、例えば、他のストレージ装置１００へライトデータを転送する場合には、ホスト２００と同様に、ライトデータを圧縮するか否かを、管理端末４００からの圧縮制御通知の内容に従って切替えることができる。ストレージ装置１００の詳細については、後述する。
【００３８】
圧縮機能内蔵装置３００は、上述したように、本装置３００を通過するデータの圧縮や伸張を行う装置である。圧縮機能内蔵装置３００は、受信したデータを圧縮してから受信ノードへ送信することもできるし、受信したデータを圧縮せずにそのまま受信ノードへ送信することもできる。圧縮機能内蔵装置３００は、ホスト２００及びストレージ装置１００と同様に、データを圧縮するか否かを、管理端末４００からの圧縮制御通知の内容に従って切替えることができる。また、圧縮機能内蔵装置３００は、圧縮機能の他に、例えば、データの入力インタフェースのプロトコルと出力インタフェースのプロトコルとが異なっている場合に、それらのプロトコルを相互に変換する機能や、セキュリティに関する機能（例えば、ＶＰＮ（Virtual Private Network）を構築する機能）等を持つ場合もある。
【００３９】
説明の都合上、本システムは、２つのホスト２００（ホストＡ２００ａ、ホストＢ２００ｂ）と、２つのストレージ装置１００（ストレージ装置Ａ１００ａ、ストレージ装置Ｂ１００ｂ）と、一つの管理端末３００とによって構成されるものとする。また、ストレージ装置Ａ１００ａとストレージ装置１００Ｂｂとの間には、２つの圧縮機能内蔵装置３００（圧縮機能内蔵装置Ａ３００ａ、圧縮機能内蔵装置Ｂ３００ｂ）が設けられるものとする。同図に示すように、ストレージ装置Ａ１００ａは、ホストＡ２００ａ、ホストＢ２００ｂ及び圧縮機能内蔵装置Ａ３００ａに接続される。また、圧縮機能内蔵装置Ｂ３００ｂは、圧縮機能内蔵装置Ａ３００ａ及びストレージ装置Ｂ１００ｂに接続される。更に、管理端末４００は、全てのノード、即ち、ホストＡ２００ａ、ホストＢ２００ｂ、ストレージ装置Ａ１００ａ、ストレージ装置Ｂ１００ｂ、圧縮機能内蔵装置Ａ３００ａ及び圧縮機能内蔵装置Ｂ３００ｂに接続される（つまり、全てのノードが制御対象ノードとされる）。また、ホストＢ２００ｂは、圧縮機能を有していないが、それ以外のノード（ホストＡ２００ａ、ストレージ装置１００ａ、１００ｂ、圧縮機能内蔵装置３００ａ、３００ｂ）は、圧縮機能を有しているものとする。
【００４０】
図２は、本実施形態に係る管理端末４００の構成例を示した図である。
【００４１】
管理端末４００は、ＣＰＵ４１０と、入出力部４２０と、メモリ４３０と、外部Ｉ／Ｆ４４０とを備える。メモリ４３０には、テーブル作成ＰＧ４３１と、性能監視ＰＧ４３２と、ノード管理テーブル４３３と、パス区間テーブル４３４と、圧縮管理テーブル４３５とが格納される。尚、「ＰＧ」は、プログラムの略であり、名前の最後に「ＰＧ」が付与されたブロックは、コンピュータプログラムであることを示している。
【００４２】
ＣＰＵ４１０は、メモリ４３０に格納された各種のプログラムを実行することにより、管理端末４００の動作を制御する。例えば、ＣＰＵ４１０は、テーブル作成ＰＧ４３１を実行し、ノード管理テーブル４３３、パス区間テーブル４３４及び圧縮管理テーブル４３５を作成する。そして、ＣＰＵ４１０は、テーブル作成ＰＧ４３１を実行し、圧縮制御通知として、作成されたノード管理テーブル４３３及び圧縮管理テーブル４３５を全ての制御対象ノードへ配信する。また、ＣＰＵ４１０は、性能監視ＰＧ４３２を実行し、パス区間テーブル４３４に登録されたそれぞれのパス区間における転送性能を定期的又は不定期的に測定し（具体的には、例えば、ＣＰＵ４１０は、転送性能を測定するパス区間を構成するノードの両方又は片方から、転送性能に関連する情報（例えば、送受信されるデータ量等）を取得し、それらの情報に基づいて転送性能を算出することができ）、必要に応じてノード管理テーブル４３３及び圧縮管理テーブル４３５を変更する。ノード管理テーブル４３３又は圧縮管理テーブル４３５が変更された場合には、ＣＰＵ４１０は、性能監視ＰＧ４３２を実行し、圧縮制御通知として、変更後のテーブルを、全ての制御対象ノードへ配信する。テーブル作成ＰＧ４３１及び性能監視ＰＧ４３２が実行する処理の詳細については、後述する。
【００４３】
入出力部４２０は、管理者からの入力を受け付けたり、所定の情報を管理者へ通知したりするための管理者との間のインタフェースである。入出力部４２０は、例えば、入力のためのキーボードやマウス、通知のためのディスプレイ等である。
【００４４】
外部Ｉ／Ｆ４４０は、外部の装置（例えば、制御対象ノード）と接続するためのインタフェースである。管理端末４００は、外部Ｉ／Ｆ４４０を介して、ホスト２００、ストレージ装置１００及び圧縮機能内蔵装置３００とそれぞれ接続される。
【００４５】
以下、メモリ４３０に格納されるノード管理テーブル４３３、パス区間テーブル４３４及び圧縮管理テーブル４３５について、詳細を説明する。
【００４６】
図３は、ノード管理テーブル４３３の一例を示した図である。
【００４７】
本テーブル４３３には、全ての制御対象ノードについて、それぞれのノードに関する情報が記録される。例えば、ノード管理テーブル４３３には、各制御対象ノードごとに、ノード名４３３１と、ノードＩＤ４３３２と、圧縮有無４３３３と、圧縮アルゴリズム４３３４と、パラメータ４３３５とが記録される。ノード名４３３１は、当該ノードの名称を示す情報である。例えば、当該ノードがホストＡ２００ａの場合は、「ホストＡ」等がノード名４３３１とされる。ノードＩＤ４３３２は、ノードを一意に特定するための識別子である。圧縮有無４３３３は、当該ノードが圧縮機能を有するか否かを示す情報である。例えば、当該ノードが圧縮機能を有する場合は「あり」が、圧縮機能を持たない場合は「なし」が、それぞれ圧縮有無４３３３とされる。圧縮アルゴリズム４３３４は、当該ノードが圧縮する際に利用するアルゴリズムを示す情報である。同図の「ＬＺＳ」は、当該ノードにおいては、ＬＺＳ方式により圧縮が行われることを示している。パラメータ４３３５は、圧縮アルゴリズム４３３４のパラメータの値である。例えば、圧縮アルゴリズム４３３４が「ＬＺＳ」の場合は、パラメータとして、圧縮を行う際に利用されるバッファの大きさ（以下、「圧縮バッファサイズ」）がある。圧縮バッファサイズは、例えば「スライド窓」と呼ばれることがあるパラメータであり、一般に、その値を小さくするほど圧縮率を大きくすることができる。ＬＺＳや圧縮バッファサイズ以外にも種々のアルゴリズムやパラメータが考えられるが、説明を簡単にするため、本実施形態では、圧縮機能を有する場合、圧縮アルゴリズム４３３４には「ＬＺＳ」が、パラメータ４３３５には圧縮バッファサイズの値が、それぞれ記録されるものとする。
【００４８】
例えば、同図の場合では、ノード管理テーブル４３３を参照することにより、ノードＩＤが「HST_1」であるノードは、ホストＡ２００ａであり、圧縮機能を有しており、圧縮アルゴリズムはＬＺＳ方式で、圧縮バッファサイズの値は８ＫＢであることがわかる。以下、ノードＩＤが「HST_1」であるノードを「ノード：HST_1」と表記する。以下、これと同様に、識別子により対象物のうちの一つを示す場合は、「：」を用いて表記することとする。
【００４９】
尚、本テーブル４３３の構成は、上述したものに限定されない。本テーブル４３３は、上述した情報要素のうちの一部で構成されてもよいし、他の新たな情報要素が追加された形で構成されてもよい。このことは、パス区間テーブル４３４及び圧縮管理テーブル４３５についても同様である。例えば、ノード管理テーブル４３３の場合であれば、圧縮アルゴリズム４３３４やパラメータ４３３５が複数存在するときには、それらの全てが、ノード管理テーブル４３３に含まれてもよい。
【００５０】
図４は、パス区間管理テーブル４３４の一例を示した図である。
【００５１】
本テーブル４３４は、制御対象パスに含まれる全てのパス区間について、それぞれのパス区間に関する情報が記録される。例えば、パス区間管理テーブル４３４には、パス区間ごとに、パス区間ＩＤ４３４１と、接続ノード４３４２と、転送性能の期待値４３４３と、転送性能の実測値４３４４とが記録される。パス区間ＩＤ４３４１は、パス区間を一意に特定するための識別子である。接続ノード４３４２は、当該パス区間を形成するノード、即ち、当該パス区間の両端のノードを示す情報である。例えば、同図では、パス区間：SEG_1は、その接続ノード４３４２が「HST_1, STG_1」となっている。これは、ノードＩＤ４３３２が「HST_1」であるホストＡ２００ａとノードＩＤ４３３２が「STG_1」であるストレージ装置Ａ１００ａとが、このパス区間：SEG_1を構成していることを示している。転送性能の期待値（以下、単に「期待値」）４３４３は、当該パス区間が、通常時にどの程度の転送性能を発揮できるのかを示す値である。期待値４３４３は、例えば、当該パス区間に利用されている伝送媒体の特性や、当該パス区間が共有されている場合にはその利用される割合等を考慮して決定される。また、期待値４３４３は、当該パス区間が提供できる最大の転送性能であってもよいし、最大の転送性能を超えない範囲での所定の閾値（例えば、ユーザにより任意に定められた値）であってもよい。転送性能の実測値（以下、単に「実測値」）４３４４は、本システムが運用されている中で実際に計測された、当該パス区間における転送性能の実測値である。実測値４３４４は、過去の運用において計測された複数の実測値から統計的に求められた値（例えば、複数の実測値の平均）であってもよいし、ある時点における実測値そのものであってもよい。尚、本実施形態では、期待値４３４３及び実測値４３４４の転送性能としては、通信速度が利用されるものとする。
【００５２】
図５は、圧縮管理テーブル４３５の一例を示した図である。
【００５３】
本テーブル４３５には、全ての制御対象パスについて、それぞれのパスにおいて圧縮を行うノードが記録される。例えば、圧縮管理テーブル４３５には、各制御対象パスごとに、パスＩＤ４３５１と、パス情報４３５２と、圧縮ノード４３５３とが記録される。パスＩＤ４３５１は、パスを一意に特定するための識別子である。パス情報４３５２は、当該パスを構成するパス区間を特定するための情報である。
【００５４】
パス情報４３５２には、例えば、送信ノード４３５２１と、受信ノード４３５２２との組が含まれる。送信ノード４３５２１は、当該パスを利用してデータを送信するノードのＩＤである。受信ノード４３５２２は、当該パスを利用してデータを受信するノードのＩＤである。このように、パス情報４３５２が、送信ノード４３５２１と受信ノード４３５２２との組である場合は、当該パスを構成するパス区間は、パス区間テーブル４３４の接続ノード４３４２が参照されることにより特定される。例えば、パス：PTH_1は、送信ノード４３５２１が「HST_1」であり、受信ノード４３５２２が「STG_2」である。ここで、パス区間テーブル４３４の接続ノード４３４２を参照すると、接続ノード４３４２がそれぞれ「HST_1, STG_1」、「STG_1, CMP_1」、「CMP_1, CMP_2」、「CMP, STG_2」であるパス区間を繋げることにより、「HST_1」から「STG_2」までのパスを構成できることがわかる。即ち、パス：PTH_1は、パス区間：SEG_1、パス区間：SEG_3、パス区間：SEG_4及びパス区間：SEG_5により構成されることがわかる。
【００５５】
圧縮ノード４３５３は、当該パスにおいて圧縮を行うノードのＩＤである。テーブル作成ＰＧ４３１は、ノード管理テーブル４３３及びパス区間テーブル４３４の内容に基づいて、当該パスにおいて圧縮を行うノードを決定し、そのノードのＩＤを圧縮ノード４３５３とする。
【００５６】
図６は、本実施形態に係るストレージ装置１００の構成例を示した図である。
【００５７】
ストレージ制御装置１００は、ホストアダプタ１１０と、スイッチ１２０と、メモリ１３０と、ディスクアダプタ１４０と、ディスク装置１５０とを備える。
【００５８】
ホストアダプタ１１０は、ホスト２００や他のストレージ装置１００等との接続を制御する。ホストアダプタ１１０は、受信したデータをメモリ１３０のキャッシュメモリの領域へ書き込んだり、キャッシュメモリの領域からデータを読み出してホスト２００や他のストレージ装置１００等へ送信したりする。ホストアダプタ１１０は、ホストＩ／Ｆ１１１と、ＣＰＵ１１２と、メモリ１１３と、データ転送制御部１１４と、圧縮処理部１１５とを備える。
【００５９】
ホストＩ／Ｆ１１１は、ホスト２００又は他のストレージ装置１００等と接続するためのインタフェースである。ホストＩ／Ｆ１１１は、接続の形態に応じて、対応するプロトコル（例えば、ファイバチャネル、ＦＩＣＯＮ（Fiber Connection）又はｉＳＣＳＩ（internet SCSI）等）に関する処理を行う。例えば、ホストＩ／Ｆ１１１は、ホスト２００から受信したパケット状のデータから元々のライトデータを再構築したり、リードデータからパケット状のデータを生成して、そのパケット状のデータをホスト２００へ送信したりする。
【００６０】
ＣＰＵ１１２は、ホストアダプタ１１０内の各部を制御する。例えば、ＣＰＵ１１２は、メモリ１３０に格納された圧縮指示ＰＧ１３１を実行し、管理端末４００からの圧縮制御通知の内容に従って、圧縮処理部１１５に対して圧縮するか否かの指示を行う。
【００６１】
メモリ１１３は、ＣＰＵ１２５が読み出して実行するプログラムやデータを格納するための領域である。尚、後述する圧縮指示ＰＧ１３１、ノード管理テーブル４３３及び圧縮管理テーブル４３５は、本メモリ１１３に格納されてもよい。
【００６２】
データ転送制御部１１４は、ホスト２００又は他のストレージ装置１００から受信したデータの転送を制御する。例えば、データ転送制御部１１４は、ライトデータとともに受信したコマンドに従って、ライトデータをディスク装置１５０やメモリ１３０へ書き込んだり、ＣＰＵ１１２の指示に従ってライトデータを他のストレージ１００へ転送したりする（メモリ１３０を介して転送されてもよい）。また、データ転送制御部１１４は、ディスク装置１５０やメモリ１３０から読み出したリードデータをホスト２００へ転送したり、他のストレージ装置１００から受信したリードデータをホスト２００へ転送したりする。
【００６３】
メモリ１３０は、ホストコンピュータ２００（又は他のストレージ装置１００）と送受信するデータを一時的に格納するために用いられるキャッシュメモリの領域と、ストレージ装置１００に関する制御情報や構成情報等を格納するために用いられる共有メモリの領域とを有する。共有メモリの領域には、圧縮指示ＰＧ１３１と、ノード管理テーブル４３３と、圧縮管理テーブル４３５とが格納される。
【００６４】
ディスクアダプタ１４０は、ディスク装置１５０との接続を制御する。ディスクアダプタ１４０は、キャッシュメモリの領域からデータを読み出してディスク装置１５０へ書き込んだり、ディスク装置１５０から読み出したデータをキャッシュメモリの領域へ書き込んだりする。
【００６５】
ディスク装置１５０は、ストレージ装置１００がホスト２００へ提供する記憶資源である。ディスク装置１５０には、例えば、ホスト２００から受信したライトデータが格納される。
【００６６】
スイッチ１２０は、ホストアダプタ１１０とメモリ１３０とディスクアダプタ１４０とをそれぞれ接続する。また、ストレージ装置１００は、スイッチ１２０を介して、管理端末４００と接続される。
【００６７】
尚、本実施形態では、ホストアダプタ１１０とメモリ１３０とディスクアダプタ１４０とは、スイッチ１２０により接続されたが、バス等により接続されてもよい。
【００６８】
また、ホストアダプタ１１０とディスクアダプタ１４０とがそれぞれ備えられる代わりに、両者の機能を兼ね備えた一つの装置が備えられてもよい。
【００６９】
また、圧縮処理部１１５は、必ずしもデータ転送制御部１２０の中に備えられる必要はなく、ストレージ制御装置１００内のいずれかの場所に備えられていればよい。例えば、圧縮制御部１１５は、ディスクアダプタ１４５に備えられてもよいし、圧縮の処理を行うコンピュータプログラムとしてメモリ１１３又は１３０に格納されてもよい。
【００７０】
また、メモリのキャッシュメモリと共有メモリ領域は、ストレージ制御装置１００内のいずれかの場所に確保されていればよい。例えば、キャッシュメモリと共有メモリは別々のメモリに確保されていてもよい。
【００７１】
また、プロセッサもストレージ制御装置１００内のいずれかの場所に備えられていればよい。例えば、プロセッサを集約したプロセッサ用専用アダプタという形態でもよい。
【００７２】
尚、ホスト２００及び圧縮機能内蔵装置３００についての構成の詳細な説明は省略するが、ストレージ装置１００と同様に、ＣＰＵ１１２、圧縮処理部１１５及びメモリ１３０を備え、メモリには、圧縮指示ＰＧ１３１、ノード管理テーブル４３３及び圧縮管理テーブル４３５が格納されるものとする。
【００７３】
以下、ストレージシステムを構成する各装置の動作を説明する。尚、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するＣＰＵよって処理が行われるものとする。
【００７４】
図７は、テーブル作成ＰＧ４３１が実行する処理のフローチャートである。
【００７５】
まず、テーブル作成ＰＧ４３１は、ノード管理テーブル４３３及びパス区間テーブル４３４を作成する（Ｓ７０１）。これらのテーブルに記録される情報（実測値４３４４を除く）は、例えば、入出力部４２０を介して管理者によって入力されてもよいし、ネットワークを探索するアプリケーション等を利用して自動的に取得されてもよい。一方、実測値４３４４は、例えば、初期値として、それぞれのパス区間における期待値４３４３と同じ値とされる。ここでは、ノード管理テーブル４３３及びパス区間テーブル４３４は、実測値４３５４を除き、それぞれ図３及び図４のように作成されるものとする。
【００７６】
次に、テーブル作成ＰＧ４３１は、ノード管理テーブル４３３及びパス区間テーブル４３４に基づいて圧縮管理テーブル４３５を作成する（Ｓ７０２）。圧縮管理テーブル４３５に記録される情報（圧縮ノード４３５３を除く）は、上記のノード管理テーブル４３３及びパス区間テーブル４３４の作成の場合と同様に、例えば、入出力部４２０を介して管理者によって入力されてもよいし、ネットワークを探索するアプリケーション等を利用して自動的に取得されてもよい。従って、圧縮管理テーブル４３５に登録されるパス、即ち、制御対象パスの決定は、管理者が行うこともできるし、自動的に行われることもできる。ここでは、圧縮管理テーブル４３５は、圧縮ノード４３５３を除き、図５のように作成されるものとする。
【００７７】
一方、圧縮ノード４３５３は、テーブル作成ＰＧ４３１がノード管理テーブル４３３及びパス区間テーブル４３４の内容に基づいて決定したノードのＩＤとされる。テーブル作成ＰＧ４３１は、例えば、次のようにして圧縮ノード４３５３を決定することができる。
【００７８】
即ち、テーブル作成ＰＧ４３１は、パス上にあるノードの配置に基づいて圧縮ノード４３５３を決定することができる。図５におけるパス：PTH_1の例で説明すると、前述したとおり、このパスは、接続ノード４３４２がそれぞれ「HST_1, STG_1」、「STG_1, CMP_1」、「CMP_1, CMP_2」、「CMP, STG_2」であるパス区間により構成されている（これは、パス区間テーブル４３４を参照することで知ることができる）。従って、パス：PTH_1上には、データの流れの上流から順番に、ホストＡ２００ａ、ストレージ装置Ａ１００ａ、圧縮機能内蔵装置Ａ３００ａ、圧縮機能内蔵装置Ｂ３００ｂ及びストレージ装置Ｂ１００ｂが存在することがわかる。更に、ノード管理テーブル４３３から、これらのノードは全て圧縮機能を有していることもわかる。そこで、テーブル作成ＰＧ４３１は、圧縮の重複を避け、効率の良い伝送を図るため、最も上流に位置するホストＡ２００ａのみが圧縮を行うように決定することができる。つまり、この場合は、テーブル作成ＰＧ４３１は、パス：PTH_1の圧縮ノード４３５３を「HST_1」とする。
【００７９】
また、テーブル作成ＰＧ４３１は、ノードの配置の他に、当該パスを構成するパス区間の期待値４３４３をも考慮して、圧縮ノード４３５３を決定することができる。前述したように、パス：PTH_1は、パス区間：SEG_1、パス区間：SEG_3、パス区間：SEG_4及びパス区間：SEG_5により構成される。そして、これらのパス区間の期待値４３４３は、パス区間：SEG_4において最も低く「100Mbps」となっている。即ち、パス：PTH_1においては、パス区間：SEG_4がボトルネックとなっている。そこで、テーブル作成ＰＧ４３１は、このパス区間：SEG_4の直前で、即ち、圧縮機能内蔵装置Ａ３００ａにおいてのみ圧縮を行うように決定することができる。つまり、この場合は、テーブル作成ＰＧ４３１は、パス：PTH_1の圧縮ノード４３６３を「CMP_1」とする。
【００８０】
その後、テーブル作成ＰＧ４３１は、入出力部４２０を介して、作成したテーブル（ノード管理テーブル４３３、パス区間テーブル４３４及び圧縮管理テーブル４３５）を管理者に通知する（Ｓ７０３）。管理者は、必要に応じて、テーブル作成ＰＧ４３１が作成したこれらのテーブルを修正することができる。尚、この管理者への通知及び管理者による修正は、必ずしも必要とされるものではない。
【００８１】
その後、テーブル作成ＰＧ４３１は、圧縮制御通知として、作成したノード管理テーブル４３３及び圧縮管理テーブル４３５を全ての制御対象ノードへ配信する（Ｓ７０４）。
【００８２】
圧縮制御通知を受信した制御対象ノードは、その通知とともに受信したノード管理テーブル４３３及び圧縮管理テーブル４３５を、自己が備える記憶領域へ格納する（Ｓ７０５）。例えば、ストレージ装置１００の場合は、受信したノード管理テーブル４３３及び圧縮管理テーブル４３５を、メモリ１３０へ格納する。
【００８３】
以上が、テーブル作成ＰＧ４３１が実行する処理のフローチャートの説明である。
【００８４】
図８は、性能監視ＰＧ４３２が実行する処理のフローチャートである。
【００８５】
まず、性能監視ＰＧ４３２が起動されると、性能監視ＰＧ４３２は、パス区間テーブル４３４に登録されたそれぞれのパス区間における転送性能を定期的又は不定期的に測定する（Ｓ８０１）。パス区間における転送性能の測定は、例えば、性能監視ＰＧ４３２が、そのパス区間を構成するノードの両方又は片方から、転送性能に関連する情報（例えば、送受信されるデータ量等）を取得し、それらの情報に基づいて転送性能を算出することにより行われる。測定した結果は、パス区間テーブル４３４に記録される。
【００８６】
その後、転送性能に所定の変化が生じた場合に、性能監視ＰＧ４３２は、ノード管理テーブル４３３及び／又は圧縮管理テーブル４３５を変更する（Ｓ８０２）。性能監視ＰＧ４３２は、例えば、次のような場合に、これらのテーブル４３３、４３５を変更することができる。
【００８７】
即ち、パス区間：SEG_4の実測値４３５４が、「50Mbps」となったとする。この場合、期待値４３５３が「100Mbps」であるのに対して、半分の通信速度となっており、通信性能が極端に低下していることがわかる。そこで、性能監視ＰＧ４３２は、このパス区間：SEG_4の直前のノード（例えば、圧縮機能内蔵装置Ａ３００ａから圧縮機能内蔵装置Ｂ３００ｂへデータが流れる場合であれば、圧縮機能内蔵装置Ａ３００ａ）における圧縮の際の圧縮率を高めるようすることができる。即ち、性能監視ＰＧ４３２は、ノード管理テーブル４３３におけるノード：CMP_1のパラメータ（ここでは、圧縮バッファサイズ）４３４５を、小さくなるように変更する。
【００８８】
また、実測値４３５４の変化に応じて、圧縮するノードを変更することもできる。例えば、期待値４３５３においては、パス区間：SEG_4がボトルネックになると予想されていたために、パス：PTH_1の圧縮ノード４３５３が「CMP_1」とされていた場合に、実測値４３５４が図４のようになったとする。この場合、実際にボトルネックとなっているパス区間は、パス区間：SEG_3である。そこで、性能監視ＰＧ４３２は、このパス区間：SEG_3の直前のノード（パス：PTH_1の場合は、ストレージ装置Ａ１００ａ）をパス：PTH_1の圧縮ノード４３５３とすることができる。即ち、性能監視ＰＧ４３２は、圧縮管理テーブル４３５におけるパス：PTH_1の圧縮ノード４３５３を、「CMP_1」から「STG_1」へ変更する。
【００８９】
その後、テーブル作成ＰＧ４３１は、圧縮制御通知として、変更したテーブル（ノード管理テーブル４３３及び／又は圧縮管理テーブル４３５）を全ての制御対象ノードへ配信する（Ｓ８０３）。
【００９０】
圧縮制御通知を受信した制御対象ノードは、自己が備える記憶領域に格納されているノード管理テーブル４３３及び／又は圧縮管理テーブル４３５を、性能監視ＰＧ４３２から受信したテーブル（ノード管理テーブル４３３及び／又は圧縮管理テーブル４３５）の内容に更新する（Ｓ８０４）。
【００９１】
以上が、性能監視ＰＧ４３２が実行する処理のフローチャートの説明である。
【００９２】
図９は、制御対象ノードがデータを受信したときに実行する処理のフローチャートである。
【００９３】
ここでは、ストレージ装置Ａ１００ａが、圧縮指示ＰＧ１３１を実行するものとして説明する。また、メモリ１３０に格納されているノード管理テーブル４３３及び圧縮管理テーブル４３５は、それぞれ図３及び図５で示されたものとする。
【００９４】
まず、ストレージ装置Ａ１００ａがデータを受信する（Ｓ９０１）。例えば、ホストＡ２００ａからライトコマンド及びライトデータを受信する。
【００９５】
ストレージ装置Ａ１００ａは、ライトデータとともに受信したライトコマンドから、当該ライトデータの送信ノード及び受信ノードを示す情報を取得する（Ｓ９０２）。ここでは、送信ノードがホストＡ２００ａ（HST_1）であり、受信ノードがストレージ装置Ｂ１００ｂ（STG_2）であるものとする。
【００９６】
ここで、圧縮指示ＰＧ１３１は、当該ライトデータを自分（即ち、ストレージ装置Ａ１００ａ）が圧縮するか否かを判断する（Ｓ９０３）。この判断は、以下のようにして行われる。
【００９７】
即ち、圧縮指示ＰＧ１３１は、まず、メモリ１３０に格納されている圧縮管理テーブル４３５を参照して、Ｓ９０２において取得された送信ノード及び受信ノードを示す情報に基づいて、当該ライトデータが通過するパスが、テーブル４３５上のどのパスに相当するかを調べる。ここでは、送信ノードがホストＡ２００ａ（HST_1）であり、受信ノードがストレージ装置Ｂ１００ｂ（STG_2）であるので、パス：PTH_1が該当する。次に、圧縮指示ＰＧ１３１は、当該ライトデータが通過するパス、即ち、パス：PTH_1の圧縮ノード４３５３を参照し、圧縮ノード４３５３が自分（即ち、「STG_1」）であれば圧縮するものと判断し、自分以外であれば圧縮しないものと判断する。図５では、パス：PTH_2の圧縮ノード４３５３は、「STG_1」となっているので、圧縮指示ＰＧ１３１は、当該ライトデータを自分が圧縮するものと判断する。
【００９８】
その後、圧縮指示ＰＧ１３１は、Ｓ９０３における判断結果に基づいて、圧縮処理部１１５へ、当該ライトデータに対して圧縮を行うか行わないかの指示（以下「圧縮非圧縮指示」）を出す（Ｓ９０４、Ｓ９０５）。圧縮を行う指示を出す場合は、その圧縮に利用される圧縮アルゴリズム４３３４及びパラメータ４３３５も通知される。圧縮指示ＰＧ１３１は、ノード管理テーブル４３３を参照して、自分が圧縮を行う際に利用する圧縮アルゴリズム４３４４及びパラメータ４３４５を取得することができる。ここでは、ノード：STG_1の圧縮アルゴリズム４３４４である「ＬＺＳ」とパラメータ４３４５である「８ＫＢ」とが、圧縮処理部１１５へ通知される。尚、Ｓ９０３において圧縮するものと判断された場合にのみ、圧縮アルゴリズム４３３４及びパラメータ４３３５とともに、その旨を圧縮処理部１１５へ指示してもよい。
【００９９】
圧縮非圧縮指示を受けた圧縮処理部１１５は、圧縮を行うように指示された場合に、圧縮指示とともに通知された圧縮アルゴリズム４３４４及びパラメータ４３４５を利用して、ライトデータを圧縮する（Ｓ９０６）。
【０１００】
その後、ストレージ装置Ａ１００ａは、その制御データに基づいて、ライトデータを処理する（Ｓ９０７）。即ち、ストレージ装置Ａ１００ａは、ストレージ装置Ｂ１００ｂへ当該ライトデータを転送する。
【０１０１】
尚、当該ライトデータが通過するパス上の制御対象ノード（ホストＡ２００ａ、ストレージ装置Ａ１００ａ、圧縮機能内蔵装置Ａ３００ａ、圧縮機能内蔵装置Ｂ３００ｂ及びストレージ装置Ｂ１００ｂ）は、全て同一のノード管理テーブル４３３及び圧縮管理テーブル４３５を有しているので、当該ライトデータが、ストレージ装置Ａ１００ａ以外で圧縮されることはない。従って、当該ライトデータが重複して圧縮されることがなくなる。
【０１０２】
以上が、制御対象ノードがデータを受信したときに実行する処理のフローチャートの説明である。
【０１０３】
本実施形態によれば、データの圧縮の重複を回避し、また、転送性能が低下したとき等必要に応じてその圧縮率を変えることができるので、ストレージシステムにおいて送受信されるデータを、効率的に圧縮できるようになる。
【０１０４】
＜第二の実施形態＞。
【０１０５】
図１０は、本発明の第二の実施形態に係る圧縮制御装置を備えたストレージシステムの構成例を示した図である。
【０１０６】
本実施形態に係るストレージシステムは、一以上のホスト２００と、ストレージ装置１００と、管理端末４００とを備える。
【０１０７】
ホスト２００、管理端末４００及びストレージ装置１００の構成の大部分は、第一の実施形態のものと同じである。以下、主に第一の実施形態との差分を説明する。
【０１０８】
ホスト２００は、必ずしも圧縮指示ＰＧ１３１、ノード管理テーブル４３３及び圧縮管理テーブル４３５をメモリに格納しておかなくともよい。それ以外は、第一の実施形態のものと同じである。
【０１０９】
管理端末４００は、必ずしも性能監視ＰＧ４３２、ノード管理テーブル４３３及びパス区間テーブル４３４をメモリ４３０に格納しておかなくともよい。また、テーブル作成ＰＧ４３１が実行する処理は、図７で説明したものと一部異なる。具体的には、本実施形態では、Ｓ７０１の処理は必要とされず、また、ＳＳ７０４及びＳ７０５においてノード管理テーブル４３３は、配信及び格納されなくともよい。本実施形態では、テーブル作成ＰＧ４３１は、図１１に示すような圧縮管理テーブル４３６を作成して、作成したテーブル４３６をストレージ装置１００へ配信する。それ以外は、第一の実施形態のものと同じである。
【０１１０】
ストレージ装置１００は、必ずしもメモリ１３０にノード管理テーブル４３３を格納しておかなくともよい。また、ディスク装置１５０は、複数の論理ボリューム、例えば、ホストＡ２００ａが利用する論理ボリューム（ここでは、「ＬＵ１」とする）、ホストＢ２００ｂが利用する論理ボリューム（ここでは、「ＬＵ２とする」）、ログが格納される論理ボリューム（ここでは、「ＬＵ３」とする）、バックアップデータが格納される論理ボリューム（ここでは、「ＬＵ４」とする）を備える。尚、「ＬＵ」は、Logical Unitの略である。また、本実施形態における圧縮指示ＰＧ１３１は、圧縮管理テーブル４３６を参照して、データが格納されるボリュームに基づいて、そのデータの圧縮を行うか否かを決定する。その詳細は、後述する。それ以外は、第一の実施形態のものと同じである。
【０１１１】
図１１は、本実施形態に係る圧縮テーブル４３６の一例を示した図である。
【０１１２】
本テーブル４３６には、ディスク装置１５０が備える論理ボリュームごとに、その論理ボリュームに格納されるデータを圧縮するか否かが記録される。例えば、圧縮管理テーブル４３６には、対象ＬＵ４３６１と、用途４３６２と、圧縮非圧縮４３６３とが記録される。対象ＬＵ４３６１は、当該論理ボリュームを特定するための情報である。用途４３６２は、当該論理ボリュームの用途、例えば、当該論理ボリュームを利用するホスト（又はアプリケーション）や当該論理ボリュームに格納されるデータの種別等を示す情報である。例えば、ホストＡが利用するものである場合は「ホストＡが利用」等、ログが格納される場合は「ログ」等が、それぞれ用途４３６２とされる。尚、用途４３６２は、必ずしも記録されなくともよい。圧縮非圧縮４３６３は、当該論理ボリュームに格納されるデータに対して、圧縮を行うか否かの情報である。例えば、圧縮を行う場合には「圧縮」が、圧縮を行わない場合には「非圧縮」が、それぞれ圧縮非圧縮４３６３とされる。圧縮非圧縮４３６３は、例えば、当該論理ボリュームに格納されるデータが利用頻度の高いものである場合は「非圧縮」と、利用頻度が低いものである場合は「圧縮」と、それぞれ決定される。例えば、ログやバックアップデータは、主にシステムに障害が発生したときに利用されるデータであるため、利用頻度は低い。従って、ログやバックアップデータが格納されるＬＵ３及びＬＵ４の圧縮非圧縮４３６３を、「圧縮」とすることができる。また、ホストＡ２００ａからのアクセスの頻度が低い場合には（ＬＵ１に格納されるデータの利用頻度は低い）、ＬＵ１の圧縮有無４３６３を「圧縮」とすることもできる。一方、ホストＢ２００ｂからのアクセス頻度が高い場合には、ＬＵ２の圧縮有無４３６３を「非圧縮」とすることができる。
【０１１３】
尚、本テーブル４３６は、必ずしも一つの論理ボリュームごとに記録される必要はない。例えば、用途が同じである複数の論理ボリュームを示す情報を対象ＬＵ４３６１とし、複数の論理ボリュームごとに記録されることもできる。
【０１１４】
また、上述したように、本テーブル４３６は、管理端末４００におけるテーブル作成ＰＧ４３１によって作成される。従って、本テーブル４３６に記録される情報は、第一の実施形態と同様に、入出力部４２０を介して管理者によって入力されてもよいし、ネットワークを探索するアプリケーション等を利用して自動的に取得されてもよい。
【０１１５】
以下、本実施形態におけるストレージ装置１００の動作を説明する。
【０１１６】
図１２は、ストレージ装置１００がデータを受信したときに実行する処理のフローチャートである。
【０１１７】
まず、ストレージ装置１００がデータを受信する（Ｓ１２０１）。例えば、ホスト２００からライトコマンド及びライトデータを受信する。
【０１１８】
ストレージ装置１００は、ライトデータとともに受信したライトコマンドから、当該ライトデータが格納される論理ボリュームを示す情報（例えば、ＬＵＮ（Logical Unit Number））を取得する（Ｓ１２０２）。
【０１１９】
ここで、圧縮指示ＰＧ１３１は、圧縮管理テーブル４３６を参照して、当該ライトデータを圧縮するか否かを判断する（Ｓ１２０３）。例えば、圧縮管理テーブル４３６が図１１に示したものであり、当該ライトデータが格納される論理ボリュームがＬＵ１であった場合は、ＬＵ１の圧縮非圧縮４３６３は「圧縮」であるので、圧縮するものと判断される。
【０１２０】
その後、圧縮指示ＰＧ１３１は、Ｓ１２０３における判断結果に基づいて、圧縮処理部１１５へ、当該ライトデータに対して圧縮非圧縮指示を出す（Ｓ１２０４、Ｓ１２０５）。尚、Ｓ１２０３において圧縮するものと判断された場合にのみ、その旨を圧縮処理部１１５へ指示してもよい。
【０１２１】
圧縮非圧縮指示を受けた圧縮処理部１１５は、圧縮を行うように指示された場合に、ライトデータを圧縮する（Ｓ１２０６）。
【０１２２】
その後、ストレージ装置１００は、Ｓ１２０２で取得した情報が示す論理ボリュームへライトデータを格納する（Ｓ１２０７）。
【０１２３】
尚、図１２のフローチャートでは、ホスト２００から受信したライトデータに対して、圧縮するか否かの判断を行う場合を例に挙げて説明したが、これに限定されるものではない。例えば、ディスクアダプタ１４０がＣＰＵ１１２と圧縮処理部１１５とを備え、ディスクアダプタ１４０内のＣＰＵ１１２が圧縮指示ＰＧ１３１を実行して、ディスクアダプタ１４０内の圧縮処理部１１５の圧縮制御を行うこともできる。このようにすることで、ホスト２００から受信したライトデータに限らず、キャッシュメモリの領域からディスク装置１５０へ格納されるデータに対して、圧縮するか否かの判断を行うことができるようになる。つまり、キャッシュメモリの領域からディスク装置１５０へ格納されるデータがログやバックアップデータであった場合には（ログやバックアップデータは、ストレージ装置１００内部で生成されることが多い）、ディスクアダプタ１４０においてそれらを圧縮してからディスク装置１５０へ格納することができるようになる。
【０１２４】
以上が、ストレージ装置１００がデータを受信したときに実行する処理のフローチャートの説明である。
【０１２５】
本実施形態によれば、利用頻度の低いデータに対して圧縮を行うことができるので、ストレージシステムの記憶資源に格納されるデータを効率的に圧縮でき、記憶資源の使用容量を効率的に抑制することができる。
【０１２６】
上述した本発明の幾つかの実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。例えば、図１３に例示する圧縮管理テーブル４３７が用意されても良い。この場合、圧縮処理部１１５が、書込む（又は読み出す）データのデータ種別と図１３の圧縮管理テーブル４３７とを基に、そのデータを圧縮するか（或いは伸張するか）を決定しても良い。
【図面の簡単な説明】
【０１２７】
【図１】第一の実施形態に係る圧縮制御装置を備えたストレージシステムの構成例を示した図である。
【図２】第一の実施形態に係る管理端末の構成例を示した図である。
【図３】ノード管理テーブルの一例を示した図である。
【図４】パス区間管理テーブルの一例を示した図である。
【図５】圧縮管理テーブルの一例を示した図である。
【図６】第一の実施形態に係るストレージ装置の構成例を示した図である。
【図７】テーブル作成ＰＧ４３１が実行する処理のフローチャートである。
【図８】性能監視ＰＧ４３２が実行する処理のフローチャートである。
【図９】制御対象ノードがデータを受信したときに実行する処理のフローチャートである。
【図１０】第二の実施形態に係る圧縮制御装置を備えたストレージシステムの構成例を示した図である。
【図１１】第二の実施形態に係る圧縮管理テーブルの一例を示した図である。
【図１２】第二の実施形態に係るストレージ装置がデータを受信したときに実行する処理のフローチャートである。
【図１３】第二の実施形態に係る圧縮管理テーブルの変形例を示した図である。
【符号の説明】
【０１２８】
１００…ストレージ装置、２００…ホスト、３００…圧縮機能内蔵装置、４００…管理装置
【図１】
2008269050.tif 000003
【図２】
2008269050.tif 000004
【図３】
2008269050.tif 000005
【図４】
2008269050.tif 000006
【図５】
2008269050.tif 000007
【図６】
2008269050.tif 000008
【図７】
2008269050.tif 000009
【図８】
2008269050.tif 000010
【図９】
2008269050.tif 000011
【図１０】
2008269050.tif 000012
【図１１】
2008269050.tif 000013
【図１２】
2008269050.tif 000014
【図１３】
2008269050.tif 000015