(57)【特許請求の範囲】
【請求項１】
少なくとも１つのストレージ装置を備えるストレージシステムであって、
前記ストレージ装置は、
データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部と、
前記アクセスログ記憶部からアクセスログを読み出すログ読み出し部と、
前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部と、
前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータを１つの結合データに結合する結合部と、
前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部と、
を備え、
前記データ圧縮条件は、アクセス回数が所定の閾値以上であり、かつアクセス間隔の代表値が所定の閾値以上であり、かつアクセス間隔の散布度が所定の閾値以下であることを示す条件である
ことを特徴とするストレージシステム。
【請求項２】
少なくとも１つのストレージ装置を備えるストレージシステムであって、
前記ストレージ装置は、
データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻と当該データへのアクセスを行ったアプリケーションまたはユーザの識別情報を関連付けて格納するアクセスログを記憶するログ記憶部と、
前記アクセスログ記憶部からアクセスログを読み出すログ読み出し部と、
前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部と、
前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、前記アクセスログが示す前記アプリケーションまたはユーザの識別情報が同一となるデータの組み合わせを１つの結合データに結合する結合部と、
前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部と、
を備えることを特徴とするストレージシステム。
【請求項３】
少なくとも１つのストレージ装置を備えるストレージシステムであって、
前記ストレージ装置は、
データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部と、
前記アクセスログ記憶部からアクセスログを読み出すログ読み出し部と、
前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部と、
前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、当該複数のデータを結合して圧縮した場合の圧縮率が、結合前のそれぞれのデータを圧縮した場合の圧縮率より高くなるデータの組み合わせを、１つの結合データに結合する結合部と、
前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部と、
を備えることを特徴とするストレージシステム。
【請求項４】
前記データ圧縮条件は、最終アクセス時刻からの経過時間が所定の閾値以上であることを示す条件である
ことを特徴とする請求項２または請求項３に記載のストレージシステム。
【請求項５】
前記ストレージ装置を２つ以上備え、
当該ストレージ装置間でのデータの格納容量に所定の閾値以上の差がある場合に、データの格納容量が多い方のストレージ装置のデータを他方のストレージ装置に転送する
ことを特徴とする請求項１から請求項４の何れか１項に記載のストレージシステム。
【請求項６】
前記データ転送元のストレージ装置は、前記圧縮部が圧縮を行ったデータを優先的に転送する
ことを特徴とする請求項５に記載のストレージシステム。
【請求項７】
データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を少なくとも１つ備えるストレージシステムの管理方法であって、
前記ストレージ装置のログ読み出し部は、前記アクセスログ記憶部からアクセスログを読み出し、
前記ストレージ装置の同定部は、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中から、アクセス回数が所定の閾値以上であり、かつアクセス間隔の代表値が所定の閾値以上であり、かつアクセス間隔の散布度が所定の閾値以下であることを示す条件であるデータ圧縮条件を満たすデータを同定し、
前記ストレージ装置の結合部は、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータを１つの結合データに結合し、
前記ストレージ装置の圧縮部は、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する
ことを特徴とする管理方法。
【請求項８】
データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻と当該データへのアクセスを行ったアプリケーションまたはユーザの識別情報を関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を少なくとも１つ備えるストレージシステムの管理方法であって、
前記ストレージ装置のログ読み出し部は、前記アクセスログ記憶部からアクセスログを読み出し、
前記ストレージ装置の同定部は、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定し、
前記ストレージ装置の結合部は、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、前記アクセスログが示す前記アプリケーションまたはユーザの識別情報が同一となるデータの組み合わせを１つの結合データに結合し、
前記ストレージ装置の圧縮部は、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する
ことを特徴とする管理方法。
【請求項９】
データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を少なくとも１つ備えるストレージシステムの管理方法であって、
前記ストレージ装置のログ読み出し部は、前記アクセスログ記憶部からアクセスログを読み出し、
前記ストレージ装置の同定部は、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定し、
前記ストレージ装置の結合部は、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、当該複数のデータを結合して圧縮した場合の圧縮率が、結合前のそれぞれのデータを圧縮した場合の圧縮率より高くなるデータの組み合わせを、１つの結合データに結合し、
前記ストレージ装置の圧縮部は、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する
ことを特徴とする管理方法。
【請求項１０】
データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を、
前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中から、アクセス回数が所定の閾値以上であり、かつアクセス間隔の代表値が所定の閾値以上であり、かつアクセス間隔の散布度が所定の閾値以下であることを示す条件であるデータ圧縮条件を満たすデータを同定する同定部、
前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータを１つの結合データに結合する結合部、
前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部
として機能させるためのプログラム。
【請求項１１】
データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻と当該データへのアクセスを行ったアプリケーションまたはユーザの識別情報を関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を、
前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部、
前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、前記アクセスログが示す前記アプリケーションまたはユーザの識別情報が同一となるデータの組み合わせを１つの結合データに結合する結合部、
前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部
として機能させるためのプログラム。
【請求項１２】
データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を、
前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部、
前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、当該複数のデータを結合して圧縮した場合の圧縮率が、結合前のそれぞれのデータを圧縮した場合の圧縮率より高くなるデータの組み合わせを、１つの結合データに結合する結合部、
前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つのストレージ装置を備えるストレージシステム、管理方法及びそのストレージ装置のプログラムに関する。
【背景技術】
【０００２】
従来、大規模なデータを格納するストレージシステムにおいて、データの格納コストを下げる手段として、階層ストレージ管理というデータ管理方法がある。階層ストレージ管理とは、アクセス性能、運用コスト、システムの信頼性などの特徴がそれぞれ異なるストレージ装置を用い、データの利用状況に応じて、データの格納先となるストレージ装置を変更することで実現されるものである。
【０００３】
例えば、データの利用頻度に着目して階層ストレージ管理を利用した場合、データの利用頻度の高いデータは、アクセス性能及びデータの格納コストが相対的に高いストレージ装置に格納され、データの利用頻度の低いデータは、アクセス性能及びデータの格納コストが相対的に低いストレージ装置に格納される。また、アクセス性能及びデータの格納コストが相対的に低いストレージ装置に格納されたデータも、データアクセス頻度がある一定水準以上に達した場合、もしくはデータアクセス要求が発生した場合にアクセス性能が相対的に高いストレージ装置に移動される。このような動作をシステムとして自律的に実行することで、要求に見合ったデータアクセス性能を追従的に維持しつつ、かつデータの格納にかかるコストを抑えることができる。
【０００４】
また、データの利用頻度といった利用の状態に基づいてデータの格納先を決定する手法だけでなく、データのライフサイクルとして、データの使用頻度やデータ廃棄時期といった利用の状態を予め設定しておき、当該設定された情報に基づいてデータの格納先を決定する方法がある。これにより、予め計画されたデータ要求に対して、ストレージ装置間でのデータの移動を事前に行うことができ、データ要求が発生した際に、データアクセス性能のサービスレベルを落とすことなく、データを提供することができる。なお、このライフサイクルの管理方法としては、データ自身にライフサイクルを表すようなメタデータを付与する方法、またはデータの中身を解析し、予め定義されたある特徴を持ったデータをグルーピングし、グループとしてライフサイクルを規定しておくといった方法が考えられる。
【０００５】
一方で、大規模なデータを格納するストレージシステムとして、上記したような機能や特徴の異なるストレージ装置を組み合わせて管理するのではなく、データの容量増加に併せて、同一の機能を有するストレージ装置を追加することで、仮想的に一つのストレージシステムとしてストレージリソースを提供する分散システム型ストレージシステムがある。分散システム型ストレージシステムは、ファイルやオブジェクトといった個々のデータのサイズが大きく、データの更新頻度よりもデータの読み出し頻度が高く、またデータが新規に追加されることが多い、といった特徴を有する環境において利用される。つまり、分散システム型ストレージシステムは、格納しなければならないデータの容量が常に増加していく状況に対して、ストレージ装置を追加することでストレージ容量を拡張するとともに、データアクセス性能の拡張も同時に実現していることが特徴となっている。
【０００６】
また、特許文献１に、複数のストレージ装置を備え、ストレージ装置の利用状況に基づいてデータの移動または圧縮を行うことで、データの格納コストを下げる方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−３４５６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、前述したように、分散システム型ストレージシステムにおいては、ストレージ容量の拡張、及びデータアクセス性能の拡張を、同一の性能のストレージ装置の追加により実現しているため、それぞれのストレージ装置の性能差を用いた格納コストの改善を行うことができない。
また、階層ストレージ管理を用いたストレージシステムを運用する場合、それぞれのストレージ装置の性能が異なるため、それぞれのストレージ装置の性能に見合ったデータ配置の管理をする必要があり、管理が複雑になってしまうという問題があった。
そのため、装置の機能的差を用いずにデータの格納コストを下げる方法が求められていた。
【０００９】
また、分散システム型ストレージシステムにおいて、オブジェクトやファイルなどのデータがあるデータ配置アルゴリズムによって均一に分散されていたとしても、個々のデータのサイズに大きなばらつきがあった場合、各ストレージ装置で格納している総データ容量にもばらつきが発生する。これによって、分散システム全体として充分な空き容量があったとしても、特定のストレージ装置に空き容量がないという状態が発生する惧れがある。従来はこのような問題に対処するため、新たなストレージ装置を追加し、また追加したストレージ装置へのデータの移動を実施していた。この追加により余分にデータの格納コストを上げてしまうという問題があった。
本発明は上記の点に鑑みてなされたものであり、その目的は、ハードウェア構成としての装置の機能的差を用いずにデータの格納コストを下げることができるストレージシステムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は上記の課題を解決するためになされたものであり、少なくとも１つのストレージ装置を備えるストレージシステムであって、前記ストレージ装置は、データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部と、前記アクセスログ記憶部からアクセスログを読み出すログ読み出し部と、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部と、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータを１つの結合データに結合する結合部と、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部と、を備え、前記データ圧縮条件は、アクセス回数が所定の閾値以上であり、かつアクセス間隔の代表値が所定の閾値以上であり、かつアクセス間隔の散布度が所定の閾値以下であることを示す条件であることを特徴とする。
また、本発明は、少なくとも１つのストレージ装置を備えるストレージシステムであって、前記ストレージ装置は、データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻と当該データへのアクセスを行ったアプリケーションまたはユーザの識別情報を関連付けて格納するアクセスログを記憶するログ記憶部と、前記アクセスログ記憶部からアクセスログを読み出すログ読み出し部と、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部と、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、前記アクセスログが示す前記アプリケーションまたはユーザの識別情報が同一となるデータの組み合わせを１つの結合データに結合する結合部と、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部と、を備えることを特徴とする。
また、本発明は、少なくとも１つのストレージ装置を備えるストレージシステムであって、前記ストレージ装置は、データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部と、前記アクセスログ記憶部からアクセスログを読み出すログ読み出し部と、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部と、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、当該複数のデータを結合して圧縮した場合の圧縮率が、結合前のそれぞれのデータを圧縮した場合の圧縮率より高くなるデータの組み合わせを、１つの結合データに結合する結合部と、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部と、を備えることを特徴とする。
【００１１】
また、本発明は、データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を少なくとも１つ備えるストレージシステムの管理方法であって、前記ストレージ装置のログ読み出し部は、前記アクセスログ記憶部からアクセスログを読み出し、前記ストレージ装置の同定部は、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中から、アクセス回数が所定の閾値以上であり、かつアクセス間隔の代表値が所定の閾値以上であり、かつアクセス間隔の散布度が所定の閾値以下であることを示す条件であるデータ圧縮条件を満たすデータを同定し、前記ストレージ装置の結合部は、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータを１つの結合データに結合し、前記ストレージ装置の圧縮部は、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮することを特徴とする。
また、本発明は、データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻と当該データへのアクセスを行ったアプリケーションまたはユーザの識別情報を関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を少なくとも１つ備えるストレージシステムの管理方法であって、前記ストレージ装置のログ読み出し部は、前記アクセスログ記憶部からアクセスログを読み出し、前記ストレージ装置の同定部は、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定し、前記ストレージ装置の結合部は、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、前記アクセスログが示す前記アプリケーションまたはユーザの識別情報が同一となるデータの組み合わせを１つの結合データに結合し、前記ストレージ装置の圧縮部は、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮することを特徴とする。
また、本発明は、データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を少なくとも１つ備えるストレージシステムの管理方法であって、前記ストレージ装置のログ読み出し部は、前記アクセスログ記憶部からアクセスログを読み出し、前記ストレージ装置の同定部は、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定し、前記ストレージ装置の結合部は、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、当該複数のデータを結合して圧縮した場合の圧縮率が、結合前のそれぞれのデータを圧縮した場合の圧縮率より高くなるデータの組み合わせを、１つの結合データに結合し、前記ストレージ装置の圧縮部は、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮することを特徴とする。
【００１２】
また、本発明は、データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中から、アクセス回数が所定の閾値以上であり、かつアクセス間隔の代表値が所定の閾値以上であり、かつアクセス間隔の散布度が所定の閾値以下であることを示す条件であるデータ圧縮条件を満たすデータを同定する同定部、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータを１つの結合データに結合する結合部、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部として機能させるためのプログラムである。
また、本発明は、データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻と当該データへのアクセスを行ったアプリケーションまたはユーザの識別情報を関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、前記アクセスログが示す前記アプリケーションまたはユーザの識別情報が同一となるデータの組み合わせを１つの結合データに結合する結合部、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部として機能させるためのプログラムである。
また、本発明は、データ記憶部が記憶するデータの識別情報と当該データへのアクセス時刻とを関連付けて格納するアクセスログを記憶するログ記憶部を備えるストレージ装置を、前記ログ読み出し部が読み出したアクセスログが示すアクセス時刻に基づいて、前記データ記憶部が記憶するデータの中からデータ圧縮条件を満たすデータを同定する同定部、前記同定部が同定したデータのうちサイズが所定の閾値未満となる複数のデータであって、当該複数のデータを結合して圧縮した場合の圧縮率が、結合前のそれぞれのデータを圧縮した場合の圧縮率より高くなるデータの組み合わせを、１つの結合データに結合する結合部、前記同定部が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合部が結合した結合データを圧縮する圧縮部として機能させるためのプログラムである。
【発明の効果】
【００１３】
本発明によれば、ストレージ装置の結合部が、データ圧縮条件を満たすデータのうちサイズが所定の閾値未満となる複数のデータを１つの結合データに結合し、圧縮部は、データ圧縮条件を満たすデータのうちサイズが所定の閾値以上となるデータ、及び結合部が結合した結合データを圧縮する。このようにデータの圧縮を行うことで、ハードウェア構成としての装置の機能的差を用いずにデータの格納コストを下げることができる。また、サイズの小さいデータを結合してから圧縮を行うことで圧縮効率を高め、データの格納コストをさらに下げることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態によるストレージシステムの構成を示す概略ブロック図である。
【図２】ストレージ装置にデータを登録する際の動作を示すシーケンス図である。
【図３】ストレージ装置のデータにアクセスする際の動作を示すシーケンス図である。
【図４】ストレージ装置に格納されているデータの配置方法を変更する動作を示すフローチャートである。
【図５】一定間隔以上の周期でアクセスされるデータの圧縮処理の動作を示すフローチャートである。
【図６】一定期間以上アクセスされていないデータの圧縮処理の動作を示すフローチャートである。
【図７】ストレージ装置間でのデータ配置を制御する動作を示すシーケンス図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の一実施形態によるストレージシステムの構成を示す概略ブロック図である。
本実施形態によるストレージシステムは、クライアント装置１０、複数のストレージ装置３０−１〜３０−Ｎ（以下、総称してストレージ装置３０と呼ぶ）、データ配置管理サーバ装置４０を備える。これらの装置は、ネットワーク２０を介して相互に接続されている。
クライアント装置１０は、ストレージ装置３０へのデータの新規登録並びにストレージ装置３０のデータの読み込み及び書き込みを行う指示（アクセス要求）を出力する。
ストレージ装置３０は、クライアント装置１０から転送されたデータを格納する。
データ配置管理サーバ装置４０は、ストレージ装置３０が格納するデータの配置を管理する。
【００１６】
ストレージ装置３０は、リクエスト制御部３１、転送制御部３２、配置制御部３３（同定部）、圧縮・展開部３４（結合部、圧縮部）、データ管理部３５、状態・履歴管理部３６（ログ記憶部、ログ読み出し部）、記憶デバイス３７を備える。
リクエスト制御部３１は、ネットワーク２０を介してストレージ装置３０に入力されるデータ処理要求の受信及びデータ処理要求に対する応答の送信を行う。
転送制御部３２は、記憶デバイス３７が格納するデータを他のストレージ装置３０に転送する。
配置制御部３３は、記憶デバイス３７が格納するデータの配置管理方法の変更を制御する。
圧縮・展開部３４は、記憶デバイス３７が格納するデータの結合・圧縮・展開を行う。
データ管理部３５は、記憶デバイス３７に格納されているデータの配置管理を行う。
状態・履歴管理部３６は、クライアント装置１０からのデータアクセスの履歴やデータの利用状況を図示しない補助記憶装置に格納されたアクセスログに記録する。
【００１７】
データ配置管理サーバ装置４０は、名前管理部４１と配置制御部４２とを備える。
名前管理部４１は、複数のストレージ装置３０の中からデータの格納先を決定し、当該データを特定するＩＤとデータの格納先となるストレージ装置３０のアドレス情報とを関連付けて図示しない補助記憶装置に記録する。
配置制御部４２は、複数のストレージ装置３０の間でデータの配置変更を行う際、配置変更対象となるデータと当該データの配置先を制御する。
【００１８】
そして、ストレージ装置３０−１の配置制御部３３は、状態・履歴管理部３６からアクセスログを読み出し、読み出したアクセスログが示すアクセス時刻に基づいて、記憶デバイス３７に格納されたデータの中からデータ圧縮条件を満たすデータを同定する。
次に、圧縮・展開部３４は、配置制御部３３が同定したデータのうちサイズが所定の閾値未満となる複数のデータを１つの結合データに結合し、また、圧縮・展開部３４は、配置制御部３３が同定したデータのうちサイズが所定の閾値以上となるデータ、及び前記結合した結合データを圧縮する。
これにより、ハードウェア構成としての装置の機能的差を用いずにデータの格納コストを下げることができる。
【００１９】
次に、本実施形態によるストレージシステムの動作を説明する。
まず、クライアント装置１０がストレージ装置３０にデータを登録する際の動作を説明する。
図２は、ストレージ装置３０にデータを登録する際の動作を示すシーケンス図である。
まず、ユーザの操作によってクライアント装置１０から、データ配置管理サーバ装置４０に対して新規に登録するデータを特定するＩＤを含むデータ登録要求を送信する（ステップＳ１）。このとき、データのＩＤとして例えばファイル名等を用いると良い。
【００２０】
クライアント装置１０がデータ登録要求を送信すると、データ配置管理サーバ装置４０の名前管理部４１は、クライアント装置１０からデータのＩＤを含むデータ登録要求を受信する（ステップＳ２）。名前管理部４１がデータ登録要求を受信すると、データ登録要求に含まれるデータのＩＤに基づいて当該データの登録先のストレージ装置３０を決定する（ステップＳ３）。ここで、登録先のストレージ装置３０の決定方法としては、例えば、データのＩＤからハッシュ値を算出し、ストレージ装置３０の各々に割り当てられたハッシュ値の値域によって格納先を決定する方法など、複数のストレージ装置３０の間で均等にデータを配置できる方法を用いると良い。
【００２１】
名前管理部４１は、データ格納先のストレージ装置３０を決定すると、データのＩＤとデータ格納先のストレージ装置３０のアドレス情報とを関連付けて補助記憶装置に記録する（ステップＳ４）。次に、名前管理部４１は、データのＩＤとデータ格納先のストレージ装置３０のアドレス情報とをクライアント装置１０に送信する（ステップＳ５）。
【００２２】
データ配置管理サーバ装置４０がデータのＩＤとストレージ装置３０のアドレス情報とを送信すると、クライアント装置１０は、当該ＩＤとアドレス情報とを受信する（ステップＳ６）。次に、クライアント装置１０は、受信したＩＤと、当該ＩＤが示すデータと、当該データに関連付けられたメタデータとを含む新規データ書き込み要求を、受信したアドレス情報が示すストレージ装置３０に送信する（ステップＳ７）。ここで、データに関連付けられたメタデータとは、予めクライアント装置１０によって生成されたデータであり、関連するデータの情報を含むものである。具体的には、新規データ書き込み要求をしたアプリケーションやユーザを特定するＩＤや、データサイズ、データアクセス許可に関わる認証情報などが含まれる。
【００２３】
クライアント装置１０が新規データ書き込み要求を送信すると、ストレージ装置３０のリクエスト制御部３１は、新規データ書き込み要求を受信する（ステップＳ８）。次に、データ管理部３５は、リクエスト制御部３１が受信した新規データ書き込み要求に含まれるデータと、当該データのＩＤとメタデータとを関連付けて記憶デバイス３７の空き領域に登録する（ステップＳ９）。このとき、データ管理部３５は、メタデータに当該メタデータが属するデータの、記憶デバイス３７における配置アドレス情報を書き込む（ステップＳ１０）。
【００２４】
データ管理部３５が記憶デバイス３７にデータを格納すると、リクエスト制御部３１は、クライアント装置１０に新規データ書き込み要求に対する処理が終了したことを通知する（ステップＳ１１）。
また、データの格納が完了すると、状態・履歴管理部３６は、処理内容（ここでは新規データ書き込み処理）及びアクセス時刻の情報を、アクセス要求の発行元を示す情報（例えば、クライアント装置１０のアドレス情報、またはクライアント装置１０においてアクセス要求を発行したアプリケーションもしくはユーザのＩＤなど）に関連付けて内部メモリに格納されているアクセスログに追記する（ステップＳ１２）。なお、ここでアクセス時刻とは、クライアント装置１０からのアクセスを受け付けた日付及び時刻を指すものとする。
なお、状態・履歴管理部３６は、アクセスログの情報量が所定の量に達すると、または所定の期間が経過すると、アクセスログを内部メモリから記憶デバイス３７に移動させる。
【００２５】
次に、クライアント装置１０がストレージ装置３０のデータにアクセスする際の動作を説明する。
図３は、ストレージ装置３０のデータにアクセスする際の動作を示すシーケンス図である。
まず、ユーザの操作によってクライアント装置１０から、データ配置管理サーバ装置４０に対して、データを特定するＩＤを含むデータアクセス要求を送信する（ステップＳ１０１）。アクセス要求の内容としては、例えば、データの更新処理、読み出し処理等の各種データ処理内容が挙げられる。クライアント装置１０がデータアクセス要求を送信すると、データ配置管理サーバ装置４０の名前管理部４１は、データアクセス要求を受信する（ステップＳ１０２）。次に、名前管理部４１は、補助記憶装置から受信したデータアクセス要求に含まれるＩＤに関連付けられたストレージ装置３０のアドレス情報を読み出す（ステップＳ１０３）。次に、名前管理部４１は、データのＩＤと読み出したアドレス情報とをクライアント装置１０に送信する（ステップＳ１０４）。
【００２６】
データ配置管理サーバ装置４０がデータのＩＤとアドレス情報とを送信すると、クライアント装置１０は、当該ＩＤとアドレス情報とを受信する（ステップＳ１０５）。次に、クライアント装置１０は、受信したＩＤが示すデータに対するデータアクセス要求を、受信したアドレス情報が示すストレージ装置３０に送信する（ステップＳ１０６）。
【００２７】
クライアント装置１０がデータアクセス要求を送信すると、ストレージ装置３０のリクエスト制御部３１は、データアクセス要求を受信する（ステップＳ１０７）。次に、データ管理部３５は、記憶デバイス３７から、リクエスト制御部３１が受信したデータアクセス要求に含まれるＩＤに関連付けられたメタデータを取得する（ステップＳ１０８）。
【００２８】
データ管理部３５は、取得したメタデータに含まれる圧縮フラグが立っているか否かを判定する（ステップＳ１０９）。圧縮フラグとは、メタデータが属するデータが圧縮されているか否かを示すフラグであり、立っている場合に圧縮されていることを示す。ここで、「圧縮フラグが立っている」とは、メタデータにおける圧縮フラグを示すビットが１になっていることを示す。なお、データの圧縮処理及びメタデータの圧縮フラグの設定については、後述する。
【００２９】
データ管理部３５が、圧縮フラグが立っていると判定した場合（ステップＳ１０９：ＹＥＳ）、データ管理部３５は、メタデータに含まれる配置アドレス情報に基づいて、記憶デバイス３７から圧縮データを読み出す（ステップＳ１１０）。データ管理部３５が圧縮データを読み出すと、圧縮・展開部３４は、圧縮データを展開し、アクセス対象のデータを取得する（ステップＳ１１１）。このとき、圧縮データの展開時に、アクセス対象のデータが他のデータと結合されていた場合、結合データを分離してアクセス対象のデータを取得することとなる。
【００３０】
なお、圧縮データから展開されたデータは、データ管理部３５の内部メモリに保持されるが、データ管理部３５の内部メモリの保持容量を超えた場合、または一定時間が経過した後に破棄される。また、内部メモリの保持容量を超えたときに破棄する場合は、最も読み出しタイミングが古いデータから破棄されるものとする。
【００３１】
また、ステップＳ１０９で圧縮フラグが立っていると判定された場合において、データ管理部３５の内部メモリに読み出し対象となるデータが一時的に記憶されていた場合、ステップＳ１１０の処理で記憶デバイス３７から圧縮データを読み出さずに、データ管理部３５の内部メモリが一時的に記憶しているデータを読み出しても良い。
【００３２】
他方、ステップＳ１０９で、データ管理部３５が、圧縮フラグが立っていないと判定した場合（ステップＳ１０９：ＮＯ）、データ管理部３５は、メタデータに含まれる配置アドレス情報に基づいて、記憶デバイス３７からアクセス対象のデータを読み出す（ステップＳ１１２）。
ステップＳ１１１、またはステップＳ１１２で配置制御部３３がアクセス対象のデータを取得すると、リクエスト制御部３１は、配置制御部３３が取得したデータをクライアント装置１０に送信する（ステップＳ１１３）。
【００３３】
ここで、データアクセス要求が、データの更新処理の要求であった場合、クライアント装置１０が受信したデータを編集してストレージ装置３０に返送し、当該データを記憶デバイス３７に格納しても良いし、ステップＳ１１３でリクエスト制御部３１がデータをクライアント装置１０に送信せずに、クライアント装置１０から受信した更新指示に基づいてデータの書き換えを行い、当該データを記憶デバイス３７に格納しても良い。このとき、書き換え前のデータは記憶デバイス３７から削除される。
【００３４】
このとき、データアクセス要求が、圧縮されていたデータに対する更新処理の要求であった場合、データ管理部３５は、書き換えられたデータを圧縮せずにそのまま記憶デバイス３７に登録しても良いし、圧縮・展開部３４を介して圧縮したデータを記憶デバイス３７に登録しても良い。
また、データアクセス要求が、結合後に圧縮されていたデータに対する更新処理の要求であった場合、データ管理部３５は、書き換えられたデータを他のデータと結合・圧縮せず、それぞれのデータをそのまま記憶デバイス３７に登録しても良いし、圧縮・展開部３４を介して結合・圧縮したデータを記憶デバイス３７に登録しても良い。また、データ管理部３５は、書き換えられたデータを結合・圧縮せずにそのまま記憶デバイス３７に登録し、書き換えられたデータ以外のデータを結合・圧縮して記憶デバイス３７に登録するようにしても良い。
【００３５】
ステップＳ１１３でデータをクライアント装置１０に送信すると（データの更新処理の場合は更新されたデータを記憶デバイス３７に格納すると）、状態・履歴管理部３６は、処理内容（例えば、データの更新処理や読み出し処理など）及びアクセス時刻の情報を、アクセス要求の発行元を示す情報（例えば、クライアント装置１０のアドレス情報、またはクライアント装置１０においてアクセス要求を発行したアプリケーションもしくはユーザのＩＤなど）に関連付けて内部メモリに格納されているアクセスログに追記する（ステップＳ１１４）。
なお、状態・履歴管理部３６は、アクセスログの情報量が所定の量に達すると、または所定の期間が経過すると、アクセスログを内部メモリから記憶デバイス３７に移動させる。
【００３６】
次に、ストレージ装置３０に格納されているデータの配置方法を変更する動作を説明する。ここで、データの配置方法の変更とは、データを圧縮して格納するか圧縮せずに格納するかを変更することを指す。
図４は、ストレージ装置３０に格納されているデータの配置方法を変更する動作を示すフローチャートである。
ストレージ装置３０の配置制御部３３は、定期的に状態・履歴管理部３６の内部メモリ及び記憶デバイス３７に格納されているアクセスログを読み出す（ステップＳ２０１）。次に、配置制御部３３は、読み出したアクセスログから各データの最終アクセス時刻、並びに各データのアクセス処理の発生間隔の散布度及び代表値を算出する（ステップＳ２０２）。ここで、散布度としては、例えば、標準偏差、分散、四分位範囲などを用いると良い。また、代表値としては、例えば、平均値、中央値、最頻値などを用いると良い。
【００３７】
配置制御部３３が最終アクセス時刻並びにアクセス発生間隔の散布度及び代表値を算出すると、データ管理部３５は、記憶デバイス３７に格納されているデータに対応付けられたメタデータを構成要素とするリストを生成する（ステップＳ２０３）。次に、配置制御部３３は、データ管理部３５が生成したリストに関連付けてステップＳ２０２で算出した最終アクセス時刻並びにアクセス発生間隔の散布度及び代表値を登録する（ステップＳ２０４）。次に、状態・履歴管理部３６は、内部メモリ及び記憶デバイス３７に格納するアクセスログを削除する（ステップＳ２０５）。
【００３８】
次に、配置制御部３３は、一定間隔以上の周期でアクセスされるデータの圧縮処理を行う（ステップＳ２０６）。なお、一定間隔以上の周期でアクセスされるデータの圧縮処理の詳細な動作については後述する。
配置制御部３３は、一定間隔以上の周期でアクセスされるデータの圧縮処理を終えると、次に、一定期間以上アクセスされていないデータの圧縮処理を行う（ステップＳ２０７）。なお、一定間隔以上の周期でアクセスされるデータの圧縮処理の詳細な動作については後述する。
これにより、記憶デバイス３７に格納されるデータのうち、アクセス頻度が低いデータを圧縮することができる。つまり、アクセス頻度が低いデータの格納コストを下げることができる。
【００３９】
次に、上述したステップＳ２０６による一定間隔以上の周期でアクセスされるデータの圧縮処理について説明する。
図５は、一定間隔以上の周期でアクセスされるデータの圧縮処理の動作を示すフローチャートである。
まず、配置制御部３３は、ステップＳ２０４で生成したメタデータのリストから、アクセス回数が所定の閾値以上であり、かつアクセス間隔の代表値が所定の閾値以上であり、かつアクセス間隔の散布度が所定の閾値以下であるデータの集合を抽出し、当該集合を要素とする長周期データリストを生成する（ステップＳ３０１）。つまり、一定間隔以上の周期でアクセスされるデータのメタデータを要素とする長周期データリストを生成する。
【００４０】
配置制御部３３は、長周期データリストを生成すると、当該長周期データリストの要素が空であるか否かを判定する（ステップＳ３０２）。
配置制御部３３は、長周期データリストの要素が空でないと判定した場合（ステップＳ３０２：ＮＯ）、長周期データリストに含まれる１つのメタデータからデータのサイズを読み出し、当該メタデータが属するデータのサイズが所定の閾値以上であるか否かを判定する（ステップＳ３０３）。
【００４１】
配置制御部３３は、読み出したデータのサイズが所定の閾値未満であると判定した場合（ステップＳ３０３：ＮＯ）、長周期データリストから、アクセス要求の発行元（例えば、クライアント装置１０のアドレス情報、またはクライアント装置１０においてアクセス要求を発行したアプリケーションもしくはユーザのＩＤなど）が当該データと同一となる他のデータがあるか否かを判定する（ステップＳ３０４）。なお、アクセス要求の発行元の情報は、上述したようにメタデータ内に格納されている。
配置制御部３３が、アクセス要求の発行元が同一となる他のデータがあると判定した場合（ステップＳ３０４：ＹＥＳ）、圧縮・展開部３４は、アクセス要求の発行元が同一となるデータを記憶デバイス３７から読み出し、当該データの組み合わせを結合して１つの結合データを生成する（ステップＳ３０５）。このとき、データの結合方法としては、例えば、ｔａｒアーカイブなどのフォーマットを用いて結合しても良いし、または単純にデータを結合することで結合データを生成し、分離時のためにそれぞれのデータの結合位置（例えば、オフセットとレングスの情報）をメタデータに書き込むようにしても良い。
圧縮・展開部３４は、結合データを生成すると、当該結合データを圧縮し、圧縮データを生成する（ステップＳ３０６）。
【００４２】
他方、ステップＳ３０３で配置制御部３３が、データのサイズが所定の閾値以上であると判定した場合（ステップＳ３０３：ＹＥＳ）、または、配置制御部３３が、アクセス要求の発行元が同一となる他のデータがないと判定した場合（ステップＳ３０４：ＮＯ）、圧縮・展開部３４は、当該データを圧縮し、圧縮データを生成する（ステップＳ３０７）。
ステップＳ３０６またはステップＳ３０７で圧縮・展開部３４が圧縮データを生成すると、データ管理部３５は、当該圧縮データを記憶デバイス３７に登録する（ステップＳ３０８）。
【００４３】
次に、データ管理部３５は、圧縮したデータのメタデータに、データが圧縮されているか否かを示す圧縮フラグを立て、また記憶デバイス３７における配置アドレス情報を圧縮データの格納先のアドレスに変更する（ステップＳ３０９）。このとき、ステップＳ３０５で結合した他のデータについても同様にメタデータの書き換えを行う。
データ管理部３５は、メタデータの書き換えを行うと、記憶デバイス３７から圧縮の対象となったデータを削除する（ステップＳ３１０）。また、配置制御部３３は、長周期データリストから圧縮の対象となったデータを示す要素を削除する（ステップＳ３１１）。
データ管理部３５が長周期データリストから要素の削除を行うと、ステップＳ３０２に戻り、再度長周期データリストの要素が空であるか否かの判定を行い、他のデータの圧縮処理を実行する。
ステップＳ３０２で配置制御部３３が長周期データリストの要素が空であると判定すると、ステップＳ２０６による一定間隔以上の周期でアクセスされるデータの圧縮処理を終了する。
【００４４】
次に、上述したステップＳ２０７による一定期間以上アクセスされていないデータの圧縮処理について説明する。
図６は、一定期間以上アクセスされていないデータの圧縮処理の動作を示すフローチャートである。
まず、配置制御部３３は、ステップＳ２０４で生成したメタデータのリストから、最終アクセス時刻からの経過時間が所定の閾値以上であるデータの集合を抽出し、当該集合を要素とする放置データリストを生成する（ステップＳ４０１）。つまり、一定間隔以上アクセスされていないデータのメタデータを要素とする放置データリストを生成する。
【００４５】
配置制御部３３は、放置データリストを生成すると、当該放置データリストの要素が空であるか否かを判定する（ステップＳ４０２）。
配置制御部３３は、放置データリストの要素が空でないと判定した場合（ステップＳ４０２：ＮＯ）、放置データリストに含まれる１つのメタデータからデータのサイズを読み出し、当該メタデータが属するデータのサイズが所定の閾値以上であるデータを抽出する（ステップＳ４０３）。
【００４６】
配置制御部３３がデータのサイズが所定の閾値以上であるデータを抽出すると、圧縮・展開部３４は、抽出したそれぞれのデータを圧縮し、圧縮データを生成する（ステップＳ４０４）。次に、データ管理部３５は、当該圧縮データを記憶デバイス３７に登録する（ステップＳ４０５）。
【００４７】
次に、データ管理部３５は、圧縮したデータのメタデータに、データが圧縮されているか否かを示す圧縮フラグを立て、また記憶デバイス３７における配置アドレス情報を圧縮データの格納先のアドレスに変更する（ステップＳ４０６）。
データ管理部３５は、メタデータの書き換えを行うと、記憶デバイス３７から圧縮の対象となったデータを削除する（ステップＳ４０７）。また、配置制御部３３は、放置データリストから圧縮したデータを示す要素を削除する（ステップＳ４０８）。
【００４８】
次に、圧縮・展開部３４は、放置データリストに含まれるメタデータが属するデータそれぞれの圧縮率を算出する（ステップＳ４０９）。圧縮率の算出は、データ圧縮を行い、圧縮前のサイズと圧縮後のサイズとの比率を求めることで行う。
次に、圧縮・展開部３４は、放置データリストに含まれるメタデータが属するデータから２つのデータの組み合わせのパターンを全て抽出し、それぞれの組み合わせに対して、結合・圧縮した場合の圧縮率を算出する（ステップＳ４１０）。このとき、全ての組み合わせに対して結合・圧縮処理を行うと処理時間が掛かってしまうため、圧縮効率の改善が望めないような組み合わせの計算を省略しても良い。例えば、テキストデータと画像データの組み合わせなど、異なるフォーマットのデータ同士の組み合わせなどを除外しても良い。
【００４９】
圧縮・展開部３４が全ての組み合わせに対して圧縮率を算出すると、配置制御部３３は、それぞれの組み合わせの圧縮率が、結合前のそれぞれのデータ１つで圧縮したときの圧縮率より高くなる組み合わせを抽出する（ステップＳ４１１）。
配置制御部３３が、圧縮率が高くなる組み合わせを抽出すると、圧縮・展開部３４は、抽出した組み合わせに含まれないそれぞれのデータを圧縮し、圧縮データを生成する（ステップＳ４１２）。次に、データ管理部３５は、当該圧縮データを記憶デバイス３７に登録する（ステップＳ４１３）。
【００５０】
次に、データ管理部３５は、圧縮したデータのメタデータに、データが圧縮されているか否かを示す圧縮フラグを立て、また記憶デバイス３７における配置アドレス情報を圧縮データの格納先のアドレスに変更する（ステップＳ４１４）。
データ管理部３５は、メタデータの書き換えを行うと、記憶デバイス３７から圧縮の対象となったデータを削除する（ステップＳ４１５）。また、配置制御部３３は、放置データリストから圧縮したデータを示す要素を削除する（ステップＳ４１６）。
【００５１】
次に、配置制御部３３は、放置データリストに含まれるデータのうち、データサイズの合計が所定のサイズ以下になるような複数のデータを記憶デバイス３７から読み出し、当該データの組み合わせを結合して１つの結合データを生成する（ステップＳ４１７）。このとき、結合するデータの選択方法として、ステップＳ４１０で抽出した組み合わせの集合から、あるデータを含む組み合わせの集合をさらに抽出し、当該集合に含まれるデータを選択して結合方法を用いることが望ましい。
圧縮・展開部３４は、結合データを生成すると、当該結合データを圧縮し、圧縮データを生成する（ステップＳ４１８）。次に、データ管理部３５は、当該圧縮データを記憶デバイス３７に登録する（ステップＳ４１９）。
【００５２】
次に、データ管理部３５は、圧縮したデータのメタデータに、データが圧縮されているか否かを示す圧縮フラグを立て、また記憶デバイス３７における配置アドレス情報を圧縮データの格納先のアドレスに変更する（ステップＳ４２０）。このとき、ステップＳ４１７で結合した他のデータについても同様にメタデータの書き換えを行う。
データ管理部３５は、メタデータの書き換えを行うと、記憶デバイス３７から圧縮の対象となったデータを削除する（ステップＳ４２１）。また、配置制御部３３は、放置データリストから圧縮の対象となったデータを示す要素を削除する（ステップＳ４２２）。
【００５３】
データ管理部３５が放置データリストから要素の削除を行うと、当該放置データリストの要素が空であるか否かを再度判定する（ステップＳ４２３）。
配置制御部３３は、放置データリストの要素が空でないと判定した場合（ステップＳ４２３：ＮＯ）、ステップＳ４１７に戻り、他のデータの結合・圧縮処理を実行する。
ステップＳ４０２またはステップＳ４２３で配置制御部３３が長周期データリストの要素が空であると判定すると、ステップＳ２０７による一定期間以上アクセスされていないデータの圧縮処理を終了する。
【００５４】
次に、ストレージ装置３０間でのデータ配置を制御する動作を説明する。
上述した処理によってストレージ装置３０に格納されているデータの配置方法を変更すると、それぞれのストレージ装置３０が格納するデータの量にばらつきが生じる。そこで、データ配置管理サーバ装置４０は、定期的にストレージ装置３０のデータ量の均等化処理を行う。
【００５５】
図７は、ストレージ装置３０間でのデータ配置を制御する動作を示すシーケンス図である。
まず、データ配置管理サーバ装置４０の配置制御部４２は、ストレージ装置３０の各々に対して記憶デバイス３７の格納容量の通知要求を送信する（ステップＳ５０１）。
データ配置管理サーバ装置４０が通知要求を送信すると、ストレージ装置３０のリクエスト制御部３１は、当該通知要求を受信する（ステップＳ５０２）。リクエスト制御部３１が通知要求を受信すると、データ管理部３５は、記憶デバイス３７の格納容量を算出する（ステップＳ５０３）。
データ管理部３５が格納容量を算出すると、リクエスト制御部３１は、データ管理部３５が算出した格納容量をデータ配置管理サーバ装置４０に送信する（ステップＳ５０４）。
【００５６】
ストレージ装置３０が格納容量を送信すると、データ配置管理サーバ装置４０の配置制御部４２は、格納容量の通知を受信する（ステップＳ５０５）。配置制御部４２は、全てのストレージ装置３０から格納容量の通知を受信すると、受信した通知が示す格納容量が最も小さいストレージ装置３０と格納容量が最も大きいストレージ装置３０とを抽出する（ステップＳ５０６）。ここでは、格納容量が最も大きいストレージ装置３０がストレージ装置３０−１、格納容量が最も小さいストレージ装置３０がストレージ装置３０−２であった場合を例に説明する。
配置制御部４２は、ストレージ装置３０−１、３０−２を抽出すると、抽出したストレージ装置３０−１、３０−２の格納容量の平均値を算出する（ステップＳ５０７）。次に、配置制御部４２は、格納容量が大きいストレージ装置３０−１の格納容量から、算出した平均値を減算し、得られた値をストレージ装置３０−２への移動容量として決定する（ステップＳ５０８）。
【００５７】
配置制御部４２は、移動容量を決定すると、当該移動容量とストレージ装置３０−２のアドレス情報とを含むデータ移動要求をストレージ装置３０−１に送信する（ステップＳ５０９）。
データ配置管理サーバ装置４０がデータ移動要求を送信すると、ストレージ装置３０−１のリクエスト制御部３１は、当該データ移動要求を受信する（ステップＳ５１０）。
【００５８】
リクエスト制御部３１がデータ移動要求を受信すると、転送制御部３２は、データ管理部３５を介して記憶デバイス３７が格納する全てのデータのメタデータを取得する（ステップＳ５１１）。次に、転送制御部３２は、取得したメタデータからデータのサイズを読み出し、データ移動要求に含まれる移動容量を満たすデータ及び当該データのＩＤを記憶デバイス３７から取得する（ステップＳ５１２）。このとき、転送制御部３２は、圧縮フラグが立っているメタデータが属するデータ（すなわち圧縮データ）を優先的に取得すると良い。
【００５９】
次に、転送制御部３２は、データ移動要求に含まれるアドレスが示すストレージ装置、すなわちストレージ装置３０−２に、取得したデータ、当該データのＩＤ及び当該データのメタデータを転送する（ステップＳ５１３）。
転送が完了すると、リクエスト制御部３１は、転送したデータのＩＤを含む移動完了通知をデータ配置管理サーバ装置４０に送信する（ステップＳ５１４）。
【００６０】
ストレージ装置３０−１が移動完了通知を送信すると、データ配置管理サーバ装置４０の配置制御部４２は、当該移動完了通知を受信する（ステップＳ５１５）。配置制御部４２は、移動完了通知に含まれるデータのＩＤに関連付けて補助記憶装置に格納されているアドレス情報を、移動先のストレージ装置３０−２のアドレス情報に書き換える（ステップＳ５１６）。
配置制御部４２は、アドレス情報を書き換えると、ストレージ装置３０−１に書き換え完了通知を送信する（ステップＳ５１７）。
データ配置管理サーバ装置４０が書き換え完了通知を送信すると、ストレージ装置３０−１のリクエスト制御部３１は、書き換え完了通知を受信する（ステップＳ５１８）。リクエスト制御部３１が書き換え完了通知を受信すると、転送制御部３２は、データ管理部３５を介して記憶デバイス３７から転送を完了したデータを削除する（ステップＳ５１９）。
【００６１】
また、データ配置管理サーバ装置４０の配置制御部４２は、ステップＳ５１７で完了通知を送信すると、データ移動作業の対象となっていないストレージ装置３０の有無を判定する（ステップＳ５２０）。
配置制御部４２が、データ移動作業の対象となっていないストレージ装置３０が有ると判定した場合（ステップＳ５２０：ＹＥＳ）、ステップＳ５０６に戻り、データ移動作業の対象となっていないストレージ装置３０の中で格納容量が最も小さいストレージ装置３０と格納容量が最も大きいストレージ装置３０とを抽出し、以降の処理を継続する。
他方、配置制御部４２が、データ移動作業の対象となっていないストレージ装置３０が無いと判定した場合（ステップＳ５２０：ＮＯ）、ストレージシステムは、ストレージ装置３０間でのデータ配置制御動作を終了する。
これにより、各ストレージ装置３０で格納しているデータの格納容量のばらつきを抑えることができる。
【００６２】
このように、本実施形態によれば、ストレージ装置３０の圧縮・展開部３４が、データ圧縮条件を満たすデータを圧縮する。これにより、ハードウェア構成としての装置の機能的差を用いずにデータの格納コストを下げることができる。また、圧縮・展開部３４は、データ圧縮条件を満たすデータのうち、サイズが所定の閾値未満となる複数のデータを１つの結合データに結合してから圧縮を行う。このように、サイズの小さいデータを結合してから圧縮を行うことで圧縮効率を高め、データの格納コストを下げることができる。
【００６３】
なお、本実施形態では、アクセス頻度が低いデータを圧縮する方法を説明したが、圧縮したデータへのアクセス頻度が高くなった場合にデータを展開して記憶デバイスに格納するようにする処理を行うとなお良い。
例えば、配置制御部３３は、アクセス回数が所定の閾値以上であり、かつアクセス間隔の代表値が所定の閾値以下であり、かつアクセス間隔の散布度が所定の閾値以下である圧縮データ、及びアクセス間隔の散布度が所定の閾値以上であり、かつ最終アクセス時刻からの経過時間が所定の閾値以下である圧縮データを展開して記憶デバイスに格納するようにすると良い。
【００６４】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【００６５】
上述のストレージ装置３０は内部に、コンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００６６】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００６７】
１０…クライアント装置  ２０…ネットワーク  ３０、３０−１〜３０−Ｎ…ストレージ装置  ３１…リクエスト制御部  ３２…転送制御部  ３３…配置制御部  ３４…圧縮・展開部  ３５…データ管理部  ３６…状態・履歴管理部  ３７…記憶デバイス  ４０…データ配置管理サーバ装置  ４１…名前管理部  ４２…配置制御部
【図１】
0005621229.tif 000002
【図２】
0005621229.tif 000003
【図３】
0005621229.tif 000004
【図４】
0005621229.tif 000005
【図５】
0005621229.tif 000006
【図６】
0005621229.tif 000007
【図７】
0005621229.tif 000008