(57)【特許請求の範囲】
【請求項１】
外部装置と通信可能に接続されており、前記外部装置が使用する記憶領域を提供するストレージシステムであって、
それぞれ前記記憶領域を提供する記憶媒体を有する、複数の性能の異なるストレージ装置と、
前記ストレージ装置毎に、前記性能に応じて設定された当該ストレージ装置を使用する際に要する使用コストの指標であるストレージコスト係数と、
前記外部装置から前記ストレージシステムを使用するユーザ毎に、前記各ストレージ装置の使用可能容量の指標であるユーザコスト割り当て情報と、
前記使用可能容量を前記各ストレージ装置に分配する比率を規定しているユーザコスト分配情報と、を保持しており、
前記ストレージコスト係数と、前記ユーザコスト分配情報とから、各ユーザについての各ストレージ装置の理想的な使用容量配分を表す情報である理想使用量を算出し、
各ユーザについて、前記各ストレージ装置に、性能の高いものから順に前記理想使用量を割り当てるストレージ制御部と、
を備えているストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記ストレージ制御部が、
前記複数のストレージ装置のうち、もっとも性能の高い最上位の前記ストレージ装置からユーザ毎の前記理想使用量を割り当て、前記理想使用量が前記ストレージ装置の空き容量を超える場合に、下位の階層の前記ストレージ装置があるかを判定し、あると判定された場合、上位の前記ストレージ装置の空き容量を超えた分を下位階層の前記ストレージ装置に順次割り当て、
前記複数のストレージ装置の前記空き容量の範囲内で、各ストレージ装置に前記理想使用量を割り当てることができないと判定した場合、ストレージ装置の容量不足を示す容量不足エラー情報を該当ユーザが使用している前記外部装置に送信し、
前記ユーザコスト分配情報を変更する場合に、前記各ストレージ装置について、変更後の前記ユーザコスト分配情報と前記ストレージコスト係数とを用いて前記理想使用量を算出し、前記各ストレージ装置から取得した空き容量及び算出された前記各ストレージ装置に割り当てられている前記理想使用量を超えない範囲で、もっとも性能の高い前記ストレージ装置から順に前記各ストレージ装置のユーザ毎に取得した実使用量を割り当て、上位のストレージ装置で前記理想使用量を超えた分の容量に相当するデータを下位のストレージ装置に移行し、
前記複数のストレージ装置の前記空き容量又は前記理想使用量の範囲内で、各ストレージ装置に変更後の前記実使用量を割り当てることができないと判定した場合、ストレージ装置の容量不足を示す容量不足エラー情報を該当ユーザが使用している前記外部装置に送信し、
前記ストレージコスト係数を、前記各ストレージ装置の性能実測値の比率に基づき設定し、前記性能実測値には、各ストレージ装置のデータI/O性能が含まれる、
ストレージシステム。
【請求項３】
請求項１に記載のストレージシステムであって、
前記複数のストレージ装置は、SAS対応ディスク装置、SATA対応ディスク装置、及び磁気テープ装置のうちの少なくともいずれかの組み合わせを含んでおり、
前記ストレージ制御部は、
前記ストレージコスト係数を格納するストレージコスト係数テーブルと、
前記ユーザコスト割り当て情報を格納するユーザコスト割り当てテーブルと、
前記ユーザコスト分配情報を格納するユーザコスト分配テーブルと、
前記各ストレージ装置の空き容量を取得してこれを保持しているストレージ空き容量テーブルと、を備え、
前記ストレージコスト係数テーブルから読み出した前記ストレージコスト係数と、前記ユーザコスト分配テーブルから読み出した前記ユーザコスト分配情報とから各ユーザの各ストレージ装置についての前記理想使用量を算出し、
前記ストレージ空き容量テーブルから読み出した前記各ストレージ装置の前記空き容量を超えない範囲内で、前記ストレージ装置として備えられている前記SAS対応ディスク装置、SATA対応ディスク装置、及び磁気テープ装置のうちの性能の高いものから順に前記理想使用量をユーザ毎に設定する、
ストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記ストレージ制御部が、
前記複数のストレージ装置のうち、もっとも性能の高い最上位の前記ストレージ装置からユーザ毎の前記理想使用量を割り当て、前記理想使用量が前記ストレージ装置の空き容量を超える場合に、下位の階層の前記ストレージ装置があるかを判定し、あると判定された場合、上位の前記ストレージ装置の空き容量を超えた分を下位階層の前記ストレージ装置に順次割り当てる、
ストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記ストレージ制御部が、
前記複数のストレージ装置の前記空き容量の範囲内で、各ストレージ装置に前記理想使用量を割り当てることができないと判定した場合、ストレージ装置の容量不足を示す容量不足エラー情報を該当ユーザが使用している前記外部装置に送信する、
ストレージシステム。
【請求項６】
請求項１に記載のストレージシステムであって、
前記ストレージ制御部が、
前記ユーザコスト分配情報を変更する場合に、
前記各ストレージ装置について、変更後の前記ユーザコスト分配情報と前記ストレージコスト係数とを用いて前記理想使用量を算出し、
前記各ストレージ装置から取得した空き容量及び算出された前記各ストレージ装置に割り当てられている前記理想使用量を超えない範囲で、もっとも性能の高い前記ストレージ装置から順に前記各ストレージ装置のユーザ毎に取得した実使用量を割り当て、上位のストレージ装置で前記理想使用量を超えた分の容量に相当するデータを下位のストレージ装置に移行する、
ストレージシステム。
【請求項７】
請求項６に記載のストレージシステムであって、
前記ストレージ制御部が、
前記複数のストレージ装置の前記空き容量又は前記理想使用量の範囲内で、各ストレージ装置に変更後の前記実使用量を割り当てることができないと判定した場合、ストレージ装置の容量不足を示す容量不足エラー情報を該当ユーザが使用している前記外部装置に送信する、
ストレージシステム。
【請求項８】
請求項１に記載のストレージシステムであって、
前記ストレージ制御部が、前記ストレージコスト係数を、前記各ストレージ装置の性能実測値の比率に基づき設定し、前記性能実測値には、各ストレージ装置のデータI/O性能が含まれる、ストレージシステム。
【請求項９】
請求項１に記載のストレージシステムであって、
前記ストレージ制御部が、前記ストレージ装置に同一のデータが複数格納されているかを判定し、同一のデータが複数格納されていると判定した場合に、当該データに関するメタデータ及び１つのデータ本体を残して他の前記データを削除する、重複排除機能を備えている、ストレージシステム。
【請求項１０】
請求項９に記載のストレージシステムであって、
前記各ストレージ装置には、前記外部装置から利用するユーザ毎にユーザ記憶領域が設定されており、
前記ストレージ制御部が、前記ストレージ装置の同じ前記ユーザ記憶領域に同一のデータが複数格納されているかを判定し、同一のデータが複数格納されていると判定した場合に、当該データに関するメタデータ及び１つのデータ本体を残して他の前記データを削除するとともに、前記各ストレージ装置について取得されている記憶領域の実使用量から前記削除したデータ分の容量を減算する、ストレージシステム。
【請求項１１】
外部装置と通信可能に接続されており、前記外部装置が使用する記憶領域を提供するストレージシステムの使用容量管理方法であって、
前記ストレージシステムは、それぞれ前記記憶領域を提供する記憶媒体を有する、複数の性能の異なるストレージ装置と、前記ストレージ装置毎に、前記性能に応じて設定された当該ストレージ装置を使用する際に要する使用コストの指標であるストレージコスト係数と、前記外部装置から前記ストレージシステムを使用するユーザ毎に、前記各ストレージ装置の使用可能容量の指標であるユーザコスト割り当て情報と、前記使用可能容量を前記各ストレージ装置に分配する比率を規定しているユーザコスト分配情報と、を保持しているストレージ制御部を備え、
前記ストレージ制御部は、前記ストレージコスト係数と、前記ユーザコスト分配情報とから、各ユーザについての各ストレージ装置の理想的な使用容量配分を表す情報である理想使用量を算出し、
各ユーザについて、前記各ストレージ装置に、性能の高いものから順に前記理想使用量を割り当てる、
ストレージシステムの使用容量管理方法。
【請求項１２】
請求項１１に記載のストレージシステムの使用容量管理方法であって、
前記ストレージ制御部が、
前記複数のストレージ装置のうち、もっとも性能の高い最上位の前記ストレージ装置からユーザ毎の前記理想使用量を割り当て、前記理想使用量が前記ストレージ装置の空き容量を超える場合に、下位の階層の前記ストレージ装置があるかを判定し、あると判定された場合、上位の前記ストレージ装置の空き容量を超えた分を下位階層の前記ストレージ装置に順次割り当てる、
ストレージシステムの使用容量管理方法。
【請求項１３】
請求項１２に記載のストレージシステムの使用容量管理方法であって、
前記ストレージ制御部が、
前記複数のストレージ装置の前記空き容量の範囲内で、各ストレージ装置に前記理想使用量を割り当てることができないと判定した場合、ストレージ装置の容量不足を示す容量不足エラー情報を該当ユーザが使用している前記外部装置に送信する、
ストレージシステムの使用容量管理方法。
【請求項１４】
請求項１１に記載のストレージシステムの使用容量管理方法であって、
前記ストレージ制御部が、
前記ユーザコスト分配情報を変更する場合に、
前記各ストレージ装置について、変更後の前記ユーザコスト分配情報と前記ストレージコスト係数とを用いて前記理想使用量を算出し、
前記各ストレージ装置から取得した空き容量及び算出された前記各ストレージ装置に割り当てられている前記理想使用量を超えない範囲で、もっとも性能の高い前記ストレージ装置から順に前記各ストレージ装置のユーザ毎に取得した実使用量を割り当て、上位のストレージ装置で前記理想使用量を超えた分の容量に相当するデータを下位のストレージ装置に移行する、
ストレージシステムの使用容量管理方法。
【請求項１５】
請求項１４に記載のストレージシステムの使用容量管理方法であって、
前記ストレージ制御部が、
前記複数のストレージ装置の前記空き容量又は前記理想使用量の範囲内で、各ストレージ装置に変更後の前記実使用量を割り当てることができないと判定した場合、ストレージ装置の容量不足を示す容量不足エラー情報を該当ユーザが使用している前記外部装置に送信する、
ストレージシステムの使用容量管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステム及びストレージシステムにおける使用容量管理方法に係わり、特に複数のストレージ装置を含んだ階層構造を持つストレージシステムにおいて、ユーザ毎のストレージ資源使用容量を効率的にかつ公平に管理することを可能とするストレージシステム及びストレージシステムにおける使用容量管理方法に関する。
【背景技術】
【０００２】
ネットワークに接続された複数のクライアント装置から、NFS（Network File System）、CIFS（Common Internet File System）等のプロトコルを用いてストレージ装置内に格納したファイルへのアクセスを可能とする機能を備えた、NAS（Network Attached Storage）と呼ばれるネットワーク対応ストレージ装置が実用化されている。ストレージ装置及びそれを利用したファイルサーバには、クオータ（Quota）と呼ばれる、ユーザ、グループ、ディレクトリ等を管理単位としてストレージ資源の使用量を制限する機能を備えるものが存在する。複数のネットワーク対応ストレージ装置からなるネットワークストレージシステムにおいて、ストレージ資源の使用量を制限する技術が、特許文献１に開示されている。
【０００３】
NASを含むストレージ装置には、様々な性能、容量を持つものが存在する。一般に、FC（Fibre Channel）やSAS（Serial Attached SCSI）等の高速なディスクを用いたストレージ装置は、I/O性能は高いが高価であり、記憶容量を多く用意するためには費用が嵩む。逆に、SATA（Serial Advanced Technology Attachment）ディスクや磁気テープ等を用いた装置は、I/O性能は低いが低コストで大記憶容量を確保しやすい。
【０００４】
これらのストレージ装置を階層的に接続し管理する技術として、階層化ストレージ管理（Hierarchical Storage Management、以下「HSM」）と呼ばれる技術が知られている。HSMでは、通常、上位階層に高速、小記憶容量のストレージ装置を、下位階層に低速、大記憶容量のストレージ装置を配置し、ユーザのストレージ資源利用頻度等を判断基準としてデータを上位から下位のストレージ装置へ移行することで、ストレージシステムの利用効率の向上を図っている。複数のストレージ装置を階層的に接続した階層ストレージシステムにおいて、ストレージ装置間でデータを移行する技術が、特許文献２に開示されている。
【０００５】
また、複数のストレージ装置からなるストレージシステムにおいて、ストレージシステムに格納したファイルのパス名等を統一的に管理する技術として、GNS（Global Name Space）と呼ばれる技術が知られている。GNSにより、ユーザは実際にファイルが格納されているストレージ装置を意識することなくファイルにアクセスすることができる。GNSを備えるNASファイルシステム仮想化技術が、特許文献３に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2006-92322号公報
【特許文献２】特開2006-195960号公報
【特許文献３】特開2008-159027号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
階層ストレージシステムは、データI/O性能、容量の異なる複数のストレージ装置を用いて構成するため、ストレージ装置間で単位記憶容量あたりの性能、価格等が異なる。したがって、従来の技術を用いて階層ストレージシステムに容量制限を設定した場合、同容量を割り当てられているユーザであっても、上位のより高性能なストレージ装置にデータが配置されているユーザと、下位の相対的に性能が低いストレージ装置にデータが配置されているユーザとの間で、性能面で不公平が発生する。
【０００８】
また、小容量でも高性能な記憶領域を求めるユーザと、低性能でも大容量な記憶領域を求めるユーザとが階層ストレージシステムのユーザの中に混在する場合に、各ユーザのニーズに応じた設定を行うことは困難である。例えば、各階層のストレージ装置に個別にユーザ毎の容量制限を設定するとすれば、多数のストレージ装置からなる階層ストレージシステムでは設定が煩雑になるという課題がある。
【０００９】
本発明は、前記の、及び他の課題を解決するためになされたもので、複数のストレージ装置を含んだ階層構造を持つストレージシステムにおいて、ユーザ毎のストレージ資源使用容量を効率的にかつ公平に管理することを可能とするストレージシステム及びストレージシステムにおける使用容量管理方法及びを提供することを目的とする。
【課題を解決するための手段】
【００１０】
前記の、及び他の目的を達成するために、本発明の一態様は、外部装置と通信可能に接続されており、前記外部装置が使用する記憶領域を提供するストレージシステム０００であって、それぞれ前記記憶領域を提供する記憶媒体を有する、複数の性能の異なるストレージ装置と、前記ストレージ装置毎に、前記性能に応じて設定された当該ストレージ装置を使用する際に要する使用コストの指標であるストレージコスト係数と、前記外部装置から前記ストレージシステムを使用するユーザ毎に、前記各ストレージ装置の使用可能容量の指標であるユーザコスト割り当て情報と、前記使用可能容量を前記各ストレージ装置に分配する比率を規定しているユーザコスト分配情報とを保持しており、前記ストレージコスト係数と、前記ユーザコスト分配情報とから、各ユーザについての各ストレージ装置の理想的な使用容量配分を表す情報である理想使用量を算出し、各ユーザについて、前記各ストレージ装置に、性能の高いものから順に前記理想使用量を割り当てるストレージ制御部とを備えているストレージシステムである。
【発明の効果】
【００１１】
本発明によれば、複数のストレージ装置を含んだ階層構造を持つストレージシステムにおいて、ユーザ毎のストレージ資源使用容量を効率的にかつ公平に管理することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の一実施形態に関わる階層ストレージシステム1000の構成例を示す図である。
【図２】図２は、階層ストレージシステム1000に含まれるストレージ装置1100，1200，1300として利用可能なストレージ装置200の構成例を示す図である。
【図３】図３は、階層ストレージシステム1000を利用するクライアント装置1500として使用することができるコンピュータ10の構成例を示す図である。
【図４Ａ】図４Ａは、階層ストレージシステム1000に含まれる階層ストレージ制御装置2000の構成例を示す図である。
【図４Ｂ】図４Ｂは、階層ストレージ制御プログラム2600の構成例を示す図である。
【図５】図５は、階層ストレージ制御装置2000に保持されている階層ストレージ使用容量管理テーブル3000の詳細を示す図である。
【図６】図６は、本発明の実施例１での使用可能コスト初期分配処理の手順の一例を示すフローチャートである。
【図７】図７は、本発明の実施例１での理想使用量計算処理の手順の一例を示すフローチャートである。
【図８】図８は、本発明の実施例１での初期容量チェック処理の手順の一例を示すフローチャートである。
【図９】図９は、本発明の実施例１での使用可能コスト分配変更処理の手順の一例を示すフローチャートである。
【図１０】図１０は、本発明の実施例１での変更容量チェック処理の手順の一例を示すフローチャートである。
【図１１】図１１は、本発明の実施例１での移行ファイル選択処理の手順の一例を示すフローチャートである。
【図１２】図１２は、本発明の実施例１でのファイル移行処理の手順の一例を示すフローチャートである。
【図１３】図１３は、本発明の実施例１でのファイル追加処理の手順の一例を示すフローチャートである。
【図１４】図１４は、本発明の実施例１でのファイル削除処理の手順の一例を示すフローチャートである。
【図１５】図１５は、本発明の実施例１での削除時ファイル移行処理の手順の一例を示すフローチャートである。
【図１６】図１６は、本発明の実施例１でのストレージ装置への容量追加処理の手順の一例を示すフローチャートである。
【図１７】図１７は、本発明の実施例２に関わる重複排除対応階層ストレージシステム1500０の構成例を示す図である。
【図１８】図１８は、実施例２の重複排除対応階層ストレージ制御装置16000の構成例を示す図である。
【図１９】図１９は、重複排除操作時のストレージ装置1200のファイル格納状況を例示する図である。
【図２０】図２０は、重複排除操作時のストレージ装置1100、及び、ストレージ装置1200のファイル格納状況を例示する図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について、図面を用いて説明する。なお、各図面で同一の構成には同一符号を付しその説明を省略する。
【００１４】
［実施例１］
まず、本発明の一実施例に即して本発明の構成、作用、及び効果を説明する。
【００１５】
実施例１による情報処理システム1の構成
図１は、本発明の実施例１による階層ストレージシステム1000を備えた情報処理システム１の構成例を示す図である。本実施例の階層ストレージシステム1000は、ストレージ装置1100（S1）、ストレージ装置1200（S2）、ストレージ装置1300（S3）、及び、階層ストレージ制御装置2000を備える。なお、符号S1〜S3は、ストレージ装置1100〜1300について、階層構造を構成する、性能及び容量が異なるストレージ資源である点に着目して区別する場合に使用するものとする。
【００１６】
ストレージ装置1100は、例えば、記憶媒体がSASディスクで構成されるストレージ装置であり、I/O性能は高速であるが容量は比較的に少ない。ストレージ装置1200は、例えば、記憶媒体がSATAディスクで構成されるストレージ装置であり、ストレージ装置1100よりもI/O性能は劣るが容量は比較的に大きい。ストレージ装置1300は、例えば、記憶媒体が磁気テープで構成されるストレージ装置であり、ストレージ装置1200よりもさらに低速であるが、最も大きな記憶容量を提供する。これらのストレージ装置1100〜1300は、階層ストレージ制御装置2000によって制御される。なお、本実施例の階層ストレージシステム1000は３階層のストレージ装置S1〜S3を備えた構成を有するが、さらに多数のストレージ装置からなる多階層の構成であってもよい。
【００１７】
階層ストレージシステム1000は、LAN（Local Area Network）等のネットワーク1400を介して複数のクライアント装置1500（外部装置）に接続される。情報処理システム1の管理者及びユーザは、クライアント装置1500からネットワーク1400を介して階層ストレージシステム1000にアクセスし、階層ストレージシステム1000の設定、及び、階層ストレージシステム1000内の各ストレージ装置1100〜1300に格納されるファイルの読み書きを行う。
【００１８】
ストレージ装置1100〜1300
図２に、ストレージ装置1100〜1300として使用することができるストレージ装置200の構成例を示している。ストレージ装置200は、情報処理システム1に含まれる各クライアント装置1500のデータ格納領域を提供するサブシステムである。図示のように、ストレージ装置200は、例えば複数のHDD（Hard Disk Drive）221を備えるディスク装置220によって編成された、適宜のタイプのRAID（Redundant Array of Independent (or Inexpensive) Disks）システムとすることができる。なお、階層化ストレージシステム1000に使用する場合、前記のように、インタフェースとしてSAS又はSATAを採用したHDD221を混在させて用いる。また、磁気テープ、SSD（Solid State Drive、半導体ドライブ）等の他の記憶媒体も適宜採用することができる。
【００１９】
ストレージ装置200は、ディスク装置220と、ディスク装置220のデータI/O処理を実行するディスク制御部210とを備える。
【００２０】
ディスク制御部210は、通信IFIF211、CPU212、キャッシュメモリ（Cache Memory、以下「CM」）213、共有メモリ（Shared Memory、以下「SM」）214、及びディスクIF215を備え、これらの間は内部バス230によって通信可能に接続されている。
【００２１】
CM213は、HDD221に書き込まれたデータ、あるいはHDD221から読み出されたデータを一時的に記憶するための記憶領域を提供する。SM214は、例えば、ストレージ装置200のデータI/Oを制御するためのプログラム、及びその制御に使用される各種管理テーブルを記憶する。
【００２２】
ディスクIF215は、ディスク制御部210とディスク装置220との間での通信を可能とするために設けられる通信インタフェースとしてのディスクアダプタ（DisK Adaptor、「DKA」）である。通信IF211は、後述する階層ストレージ制御装置2000との間を通信可能に接続する内部ネットワークとの通信制御機能を備え、例えばHBA（Host Bus Adaptor）である。
【００２３】
クライアント装置1500
図３に、情報処理システム1に接続されているクライアント装置1500として使用することができるコンピュータ10の構成例を示している。このコンピュータ10は、中央処理装置11（例えばCPU（Central Processing Unit）やMPU（Micro Processing Unit）、以下簡単のため「CPU」と称する）、主記憶装置12（例えばRAM（Random Access Memory）やROM（Read Only Memory））、補助記憶装置13（例えばHDD）、ユーザの操作入力を受け付ける入力装置14（例えばキーボードやマウス）、出力装置15（例えば液晶モニタ）、他の装置との間の通信を実現する通信インタフェース16（例えばNIC（Network Interface Card）やHBA（Host Bus Adapter）)を備えている。
【００２４】
コンピュータ10で稼働するオペレーティングシステム（Operating System, OS）は特に特定のシステムに限定されることはないが、例えばUNIX（登録商標）系のオペレーティングシステムが好適に用いられる。また、クライアント装置1500には、ユーザ又は管理者が、入力装置１４及び出力装置１５を介して、階層ストレージ制御装置2000の階層ストレージ制御プログラム2600にアクセスして、後述の階層ストレージ使用容量管理テーブル3000の初期設定及び設定変更を行うことを可能とする階層ストレージ制御クライアントプログラムが実装される。あるいは、クライアント装置1500のいずれかを、階層ストレージシステム1000の管理専用の管理装置としてもよい。
【００２５】
階層ストレージ制御装置2000
図４Ａに、階層ストレージシステム1000に設けられている階層ストレージ制御装置2000の構成例を示す。階層ストレージ制御装置2000は、CPU、MPU等で構成されるプロセッサ2100、ネットワークインタフェース2200、ディスクインタフェース2300、及びメモリ2400を備えて構成されている。
【００２６】
階層ストレージ制御装置2000は、例えばNICであるネットワークインタフェース2200、及び例えばLANであるネットワーク1400を介してクライアント装置1500と通信可能に接続している。また、階層ストレージ制御装置2000は、ディスクインタフェース2300を介してストレージ装置1100、ストレージ装置1200、ストレージ装置1300と通信可能に接続している。なお、ディスクインタフェース2300は、図２に例示した構成のストレージ装置200と接続する場合には、例えばHBA等の通信インタフェースとしてもよい。また、階層ストレージ制御装置2000は、ストレージ装置200のディスク制御部210の機能をあわせて備える構成であるとしてもよい。
【００２７】
RAM、ROM等で構成されるメモリ2400には、例えばUNIXであるOS、従来のストレージ管理プログラムである基本プログラム2500、本実施例の階層ストレージシステム1000を制御するための階層ストレージ制御プログラム2600、及び階層ストレージ制御プログラム2600が実行されるときに使用する階層ストレージ使用容量管理テーブル3000が格納される。
【００２８】
階層ストレージ制御装置2000は、基本プログラム2500及び階層ストレージ制御プログラム2600がCPU2100によって読み出されて実行されることにより、階層ストレージシステム1000全体の機能を制御する。
【００２９】
階層ストレージ制御プログラム2600
図４Ｂに、階層ストレージ制御プログラム2600（ストレージ制御部）の構成例を示している。本実施例の階層ストレージ制御プログラム2600は、初期分配処理部2601、理想使用量計算処理部2602、初期容量チェック処理部2603、分配変更処理部2604、変更容量チェック処理部2605、移行ファイル選択処理部2606、ファイル移行処理部2607、ファイル追加処理部2608、ファイル削除処理部2609、削除時ファイル移行処理部2610、及び容量追加処理部2611の各機能ブロックの機能を実現するためのプログラムから構成されている。これらの機能ブロックによって実現される具体的な機能は、各処理フローを示すフローチャートを参照して後述する。
【００３０】
なお、階層ストレージ制御プログラム2600は、必ずしもこれらの機能ブロックに分割して構成する必要はない。階層ストレージ制御プログラム2600全体として本実施例の機能が実現されるように構成してあればよい。また、上記のように、本明細書では、それぞれのプログラムによって実現される機能をハードウェアに擬して「××部」と称する。
【００３１】
階層ストレージ使用容量管理テーブル3000
図５に、階層ストレージ使用容量管理テーブル3000の構成例を示す。階層ストレージ使用容量管理テーブル3000は、本実施例の階層ストレージ制御プログラム2600が処理を実行する際に参照するデータを格納している。階層ストレージ使用容量管理テーブル3000は、ストレージ空き容量テーブル3100、ストレージコスト係数テーブル3200、ユーザコスト割り当てテーブル3300、ユーザコスト分配テーブル3400、ユーザ理想使用量テーブル3500、及びユーザ実使用量テーブル3600を備えて構成されている。
【００３２】
ストレージ空き容量テーブル3100は、ストレージ装置ＩＤ欄3101及び空き容量欄3102を有する。ストレージ装置ＩＤ欄3101には、階層ストレージシステム1000を構成する各ストレージ装置1100〜1300を識別するための識別符号であるストレージ装置ＩＤS1〜S3が記録される。空き容量欄3102には、各ストレージ装置S1〜S3の空き容量3102が例えばテラバイト（TB）単位で記録される。
【００３３】
各ストレージ装置S1〜S3の空き容量は、例えば階層ストレージ制御装置2000の基本プログラム2500によって、各ストレージ装置S1〜S3から取得される。
【００３４】
ストレージコスト係数テーブル3200
ストレージコスト係数テーブル3200は、管理者が各ユーザに割り当てるコスト１単位あたりで使用を許されるストレージ装置の容量をストレージ装置毎に格納する。ストレージコスト係数テーブル3200は、ストレージ装置ＩＤ欄3201及びストレージコスト係数欄3202を有する。
【００３５】
例えば、本実施例では、コスト１単位で、ストレージ装置S1（1100）は１GB、ストレージ装置S2（1200）は１０GB、ストレージ装置S3（1300）は１００GBの容量を使用可能とするようにあらかじめ設定されている。この場合、ストレージ装置S1、S2、S3の順に、高性能で容量あたりのコストが高い設定となっている。
【００３６】
ストレージコスト係数3202の値は、例えば、管理者が、ストレージ装置S1〜S3の容量を取得金額で割って求まるビット単価の比や、カタログスペックの性能比に基づいて設定することができる。あるいは、階層ストレージ制御装置2000が、例えば基本プログラム2500によって各ストレージ装置S1〜S3のI/O性能を実測し、最も性能の低いストレージ装置の測定値を基準に各ストレージ装置の性能比を正規化した値を設定してもよい。
【００３７】
ユーザコスト割り当てテーブル3300
ユーザコスト割り当てテーブル3300は、管理者が各ユーザに割り当てた使用可能コストをユーザ毎に格納する。ユーザコスト割り当てテーブル3300は、ユーザを互いに識別するための識別符号であるユーザＩＤ欄3301及び使用可能コスト欄3302を有する。使用可能コスト3302は、管理者が、例えば、各ユーザA〜Cから徴収する使用料金に基づいて設定する。図５の例では、ユーザCが使用可能なコストは、ユーザA、Bの80%に設定されている。
【００３８】
ユーザコスト分配テーブル3400
ユーザコスト分配テーブル3400は、各ユーザA〜Cが、ストレージ装置S1〜S3毎に分配した使用可能コストを格納する。ユーザコスト分配テーブル3400は、ストレージ装置ＩＤ欄3401及び各ユーザA〜Cがストレージ装置S1〜S3に割り当てた分配コストを示す分配コスト欄3402を有する。
【００３９】
ユーザコスト分配テーブル3400は、ユーザコスト割り当てテーブル3300に格納される、各ユーザA〜Cに割り当てられた使用可能コスト内で、ユーザが各々のニーズにあわせて設定する。なお、ユーザコスト分配テーブル3400の初期値は、例えば、管理者によるユーザコスト割り当てテーブル3300の設定を契機に、階層ストレージ制御装置2000が、当該ユーザに割り当てられた使用可能コストをストレージ装置S1〜S3の数で等分した値（本実施例では三等分）を設定してもよい。
【００４０】
ユーザ理想使用量テーブル3500
ユーザ理想使用量テーブル3500は、ユーザA〜C及びストレージ装置S1〜S3毎に、ユーザが理想的に使用可能な容量を格納しており、階層ストレージ制御装置2000が階層ストレージシステム1000の使用容量制限に利用する。ユーザ理想使用量テーブル3500は、ストレージ装置ＩＤ欄３５０１及びユーザA〜C毎にストレージ装置S1〜S3について設定された理想使用量欄3502を有する。ユーザ理想使用量情報3500の値の設定及び変更手順の詳細は後述する。
【００４１】
ユーザ実使用量テーブル3600
ユーザ実使用量テーブル3600は、各ユーザが、ストレージ装置S1〜S3毎に実際に使用している記憶領域の容量を格納する。ユーザ実使用量テーブル3600は、ストレージ装置ＩＤ欄3601及び各ユーザA〜Cについてのストレージ装置S1〜S3の実使用量を示す実使用欄3602を有する。ユーザA〜C毎の各ストレージ装置S1〜S3の実使用量は、例えば階層ストレージ制御装置2000の基本プログラム2500が各ストレージ装置S1〜S3から取得する。
【００４２】
階層ストレージシステム1000で実行される処理フロー
以下、本実施例の階層ストレージシステム1000における、使用可能コスト初期分配処理、使用可能コスト分配変更処理、ファイル追加処理、ファイル削除処理、及び、ストレージ装置S1〜S3への容量追加処理について、フローチャートを用いて説明する。これらの処理は、図４Bに関して説明したように、階層ストレージ制御プログラム2600として実装され、階層ストレージ制御装置2000により実行される。なお、本発明の構成と直接関係しない従来のストレージ装置制御処理は、基本プログラム2500に実装されているものとして説明を省略する。なお、各フローチャートにおいて、符号Sは「ステップ」を表す。
【００４３】
使用可能コスト初期分配処理
図６は、本実施例の使用可能コスト初期分配処理の手順の一例を示すフローチャートである。本処理は、ユーザ又は管理者が、クライアント装置1500を通じてユーザ毎の使用可能コスト分配を初期設定する場合に、階層ストレージ制御部2600の初期分配処理部2601によって実行される。
【００４４】
使用可能コスト初期分配処理（S4000）では、最初に理想使用量計算処理（S5000）を実行し、次に初期容量チェック処理（S6000）を実行する。各処理ステップについては後述する。
【００４５】
理想使用量計算処理
図７は、理想使用量計算処理の手順の一例を示すフローチャートである。階層ストレージ制御部2600の理想使用量計算処理部2602で実行される理想使用量計算処理（S5000）では、ストレージコスト係数テーブル3200に格納される管理者によって設定されたコスト係数3202と、ユーザコスト分配テーブル3400に格納されるユーザによって分配された使用可能分配情報である分配コスト3402とを掛け合わせることで、ユーザ理想使用量テーブル3500に格納されるストレージ装置S1〜S3毎の理想使用容量3502を設定する処理（S5100）を、上位から下位のストレージ装置に対して（本実施例の場合、ストレージ装置S1からストレージ装置S3まで順に）繰り返して行う。
【００４６】
初期容量チェック処理
図８は、初期容量チェック処理の手順の一例を示すフローチャートである。階層ストレージ制御部2600の初期容量チェック処理部2603で実行される本手順では、ストレージ装置S1〜S3毎の仮実使用量と、あふれ量という一時変数を使用する。これらの初期値は0である。初期容量チェック処理（S6000）では、上位から下位のストレージ装置S1〜S3に対して、次の手順を繰り返す。最初に、当該ストレージ装置の仮実使用量と、ユーザ理想使用量テーブル3500に格納される当該ユーザ、ストレージ装置S1〜S3の理想使用量とを加えた値が、ストレージ空き容量テーブル3100に格納される当該ストレージ装置S1〜S3の空き容量よりも大きいかを判定する（S6100）。
【００４７】
仮実使用量と理想使用量とを加えた値が空き容量以下の場合（S6100、No）、次の階層のストレージ装置の処理に移る。仮実使用量と理想使用量とを加えた値が空き容量よりも大きい場合（S6100、Yes）、さらに下位のストレージ装置があるかを判定する（S6200）。下位のストレージ装置がない場合（S6200、No）、現在の各ストレージ装置S1〜S3の空き容量では指定された使用可能コスト分配より求まる理想使用容量の合計の容量のファイルを格納できないため、容量不足エラーをユーザ又は管理者に、例えばクライアント装置1500の出力装置１５を通じて通知し（S6300）、処理を終了する。下位のストレージ装置がある場合（S6200、Yes）、あふれ量を、前記仮実使用量と前記理想使用量を加えた値から前記空き容量を減じた値とし（S6400）、あふれ量をひとつ下位のストレージ装置S2、S3の仮実使用量に加え（S6500）、次の階層のストレージ装置の処理に移る。
【００４８】
以上の使用可能コスト初期分配処理により、階層ストレージ制御装置2000は、与えられた使用可能コスト分配から理想使用量を計算し、計算した理想使用量の合計容量のファイルを現状の各ストレージ装置の空き容量で格納可能かをチェックする。理想使用量の合計容量のファイルを格納できない場合は、ユーザ又は管理者に容量不足エラーが通知される。
【００４９】
なお、階層ストレージ制御装置2000は、容量不足エラーを警告として管理者に通知するに留め、ユーザ理想使用量テーブル3500の設定を容認してもよい。この場合、管理者は、階層ストレージシステム1000の運用を進め、ユーザA〜Cが実際にファイルを追加することにより容量が足りなくなって実際にエラーが発生するまでに、ストレージ容量を追加する等の対応を行えばよい。
【００５０】
使用可能コスト分配変更処理
図９は、本実施例の使用可能コスト分配変更処理の手順の一例を示すフローチャートである。本処理は、ユーザ又は管理者が、クライアント装置1500を通じてユーザ毎の使用可能コスト分配を変更する場合に、階層ストレージ制御部2600の分配変更処理部2604によって実行される。使用可能コスト分配変更処理（S7000）では、最初に理想使用量計算処理（S5000）を実行し、次に変更容量チェック処理（S8000）を実行し、最後にファイル移行処理（S10000）を実行する。各処理ステップについては後述する。
【００５１】
変更容量チェック処理
図１０は、変更容量チェック処理の手順の一例を示すフローチャートである。階層ストレージ制御部2600の変更容量チェック処理部2605によって実行される本手順では、ストレージ装置S1〜S3毎の仮実使用量と、あふれ量という一時変数を使用する。仮実使用量の初期値は、実使用量テーブル3600に格納される当該ユーザ、ストレージ装置の実使用量であり、あふれ量の初期値は0である。変更容量チェック処理（S8000）では、上位から下位のストレージ装置S1〜S3に対して、次の手順を繰り返す。
【００５２】
最初に、当該ストレージ装置の仮実使用量が、ストレージ空き容量情報3100に格納される当該ストレージ装置の空き容量よりも大きいかを判定する（S8100）。仮実使用量が空き容量よりも大きい場合（S8100、Yes）、さらに下位のストレージ装置があるかを判定する（S8200）。下位のストレージ装置がない場合（S8200、No）、例えばクライアント装置1500の出力装置15を通じて、容量不足エラーをユーザ又は管理者に通知し（S6300）、処理を終了する。下位のストレージ装置がある場合（S8200、Yes）、あふれ量を、前記仮実使用量から前記空き容量を減じた値とし（S8400）、後述する移行ファイル選択処理を実行し（S9000）、最初の判定（S8100）で仮実使用量が空き容量以下であった場合と同じ処理（S8500）に移る。
【００５３】
最初の判定（S8100）で仮実使用量が空き容量以下であった場合（S8100、No）、当該ストレージ装置S1〜S3の仮実使用量が、ユーザ理想使用量テーブル3500に格納される、当該ユーザ、ストレージ装置の理想使用量3502よりも大きいかを判定する（S8500）。仮実使用量が理想使用量よりも大きい場合（S8500、Yes）、さらに下位のストレージ装置があるかを判定する（S8600）。下位のストレージ装置がない場合（S8600、No）、例えばクライアント装置1500の出力装置15を通じて、容量不足エラーをユーザ又は管理者に通知し（S8300）、処理を終了する。下位のストレージ装置がある場合（S8600、Yes）、あふれ量を、前記仮実使用量から前記理想使用量を減じた値とし（S8700）、後述する移行ファイル選択処理を実行し（S9000）、次の階層のストレージ装置の処理に移る。
【００５４】
移行ファイル選択処理
図１１は、移行ファイル選択処理の手順の一例を示すフローチャートである。階層ストレージ制御部2600の移行ファイル選択処理部2606によって実行される本手順では、上流手順よりあふれ量を実行引数として受け取り、移行量という一時変数を使用する。移行量の初期値は0である。移行ファイル選択処理（S9000）では、最初に、対象ストレージ装置S1〜S3に格納されているファイルに、移行対象として選択されていない、未選択のファイルがあるかを判定する（S9100）。本手順を最初に実行する場合、各ストレージ装置S1〜S3に格納されているすべてのファイルは未選択の状態である。
【００５５】
未選択のファイルがある場合（S9100、Yes）、その中からファイルをひとつ、移行対象ファイルとして選択する（S9200）。ファイル選択の基準は管理者又はユーザが任意に規定してよいが、ここでは、例えば、ファイルのアクセスタイムが最も古い、最近使われていないファイルを選択する。次に、選択したファイルのサイズを移行量に加え（S9300）、移行量があふれ量よりも小さいか判定する（S9400）。移行量があふれ量よりも小さい場合（S9400、Yes）、さらに移行対象となるファイルを選択するため、最初の判定（S9100）に戻る。移行量があふれ量以上の場合（S9400、No）、最初の判定（S9100）で未選択のファイルがない場合と同じ処理（S9500）に移る。
【００５６】
最初の判定（S9100）で未選択のファイルがない場合（S9100、No）、対象ストレージ装置の仮実使用量から移行量を減じる（S9500）。次に、ひとつ下位のストレージの仮実使用量に、移行量かあふれ量のいずれか大きいほうを加え（S9600）、処理を終了する。このような構成により、各ストレージ装置において、実使用量が理想使用量を上回る容量分の適切なファイルを選択して、より下位のストレージ装置へ移行させることができる。
【００５７】
ファイル移行処理
図１２は、ファイル移行処理の手順の一例を示すフローチャートである。階層ストレージ制御部2600のファイル移行処理部2607によって実行されるファイル移行処理（S10000）では、下位から上位のストレージ装置に対して、次の手順を繰り返す。最初に、ひとつ上位のストレージ装置に格納される移行対象ファイルを、対象ストレージ装置に移行する（S10100）。このとき、ストレージ空き容量テーブル3100に格納される、移行に関係するストレージ装置の空き容量を、移行対象ファイルのサイズ分増減する。次に、ユーザ実使用量情報3600に格納される、当該ユーザ、ひとつ上位のストレージ装置の実使用量から、移行対象ファイルのサイズを減じる（S10200）。最後に、ユーザ実使用量テーブル3600に格納される、当該ユーザ、対象ストレージ装置の実使用量に、移行対象ファイルのサイズを加える（S10300）。
【００５８】
以上の使用可能コスト分配変更処理により、階層ストレージ制御装置2000は、ユーザ毎の使用可能コストの分配が変更された場合に、既に階層ストレージシステム1000に格納されているファイルが変更後の設定で格納可能かをチェックし、格納不可能となるような設定変更を許可しない。
【００５９】
ファイル追加処理
図１３は、本実施例のファイル追加処理の手順の一例を示すフローチャートである。階層ストレージ制御部2600のファイル追加処理部２６０８によって実行される本手順では、ストレージ装置毎の仮実使用量という一時変数を使用する。仮実使用量の初期値は、実使用量テーブル3600に格納される当該ユーザ、ストレージ装置の実使用量である。ファイル追加処理（S11000）では、最初に、最上位のストレージ装置の仮実使用量に、追加対象ファイルのサイズを加える（S11100）。次に、前記仮実使用量が、ユーザ理想使用量テーブル3500に格納される当該ユーザ、ストレージ装置の理想使用量３５０２以下、かつ、ストレージ空き容量テーブル3100に格納される当該ストレージ装置の空き容量以下であるかを判定する（S11200）。
【００６０】
上記の条件が満たされない場合（S11200、No）、変更容量チェック処理（S8000）、及び、ファイル移行処理（S10000）を実行した後、条件が満たされた場合と同じ処理に移る。条件が満たされた場合、追加対象ファイルを最上位のストレージ装置に書き込む（S11300）。このとき、ストレージ空き容量テーブル3100の当該ストレージ装置の空き容量3101を、追加対象ファイルのサイズ分減じる。最後に、ユーザ実使用量テーブル3600に格納される、当該ユーザ、ストレージ装置の実使用量に追加対象ファイルのサイズを加える（S11400）。
【００６１】
以上のファイル追加処理により、階層ストレージ制御装置2000は、ストレージ空き容量テーブル3100及びユーザ理想使用量テーブル3500の制限を越えるファイルの追加を、変更容量チェック処理（S8000）でチェックし、容量不足となるようなファイル追加はエラー通知して許可しない。
【００６２】
ファイル削除処理
図１４は、本実施例のファイル削除処理の手順の一例を示すフローチャートである。階層ストレージ制御部2600のファイル削除処理部2609によって実行される本手順では、空き使用量という一時変数を使用する。空き使用量の初期値は0である。ファイル削除処理（S12000）では、最初に、クライアント装置1500の入力装置14を通じてユーザ又は管理者が指定した削除対象ファイルを格納するストレージ装置S1〜S3から削除対象ファイルを削除する（S12100）。このとき、ストレージ空き容量テーブル3100の当該ストレージ装置S1〜S3の空き容量3101を、削除対象ファイルのサイズ分増やす。次に、ユーザ実使用量テーブル3600に格納される、当該ユーザ、ストレージ装置の実使用量から削除対象ファイルのサイズを減じる（S12200）。
【００６３】
次に、下位のストレージ装置があるか判定する（S12300）。下位のストレージ装置がない場合（S12300、No）、処理を終了する。下位のストレージ装置がある場合（S12300、Yes）、空き使用量を削除対象ファイルのサイズとし（S12400）、ひとつ下位のストレージ装置に対して後述する削除時ファイル移行処理（S13000）を実行し、処理を終了する。
【００６４】
削除時ファイル移行処理
図１５は、削除時ファイル移行処理の手順の一例を示すフローチャートである。階層ストレージ制御部2600の削除時ファイル移行処理部2610によって実行される本手順では、上流手順であるファイル削除処理より空き使用量を実行引数として受け取る。削除時ファイル移行処理（S13000）では、最初に、対象ストレージ装置S1〜S3にファイルが存在するか判定する（S13100）。
【００６５】
対象ストレージ装置にファイルが存在しない場合（S13100、No）、さらに下位のストレージ装置があるか判定する（S13200）。さらに下位のストレージ装置がない場合（S13200、No）、処理を終了する。さらに下位のストレージ装置が存在する場合（S13200、Yes）、さらにひとつ下位のストレージ装置に対して、削除時ファイル移行処理を実行する（S13300）。
【００６６】
対象ストレージ装置S1〜S3にファイルが存在する場合（S13100、Yes）、移行対象ファイルとしてファイルをひとつ選択する（S13300）。ファイル選択の基準は管理者又はユーザが任意に規定してよいが、ここでは、例えば、ファイルのアクセスタイムが最も新しい、最近使われたファイルを選択する。次に、選択したファイルのサイズが空き使用量以下であるか判定する（S13400）。選択したファイルのサイズが空き使用量よりも大きい場合（S13400、No）、処理を終了する。選択したファイルのサイズが空き使用量以下である場合（S13400、Yes）、選択したファイルをひとつ上位のストレージ装置へ移行する（S13500）。このとき、ストレージ空き容量テーブル3100に格納される、ひとつ上位のストレージ装置の空き容量3101を、移行対象ファイルのサイズ分減じる（対象ストレージ装置の空き容量は、後の処理S12000で増やされる）。
【００６７】
次に、ユーザ実使用量テーブル3600に格納される、当該ユーザの、ひとつ上位のストレージ装置の実使用量3601に、移行対象ファイルのサイズを加える（S13600）。次に、移行対象ファイルを削除対象ファイルとして、ファイル削除処理を実行する（S12000）。最後に、空き使用量から移行対象ファイルのサイズを減じて（S13800）、最初の判定（S13100）に戻る。
【００６８】
以上のファイル削除処理により、階層ストレージ制御装置2000は、上位のストレージ装置に格納されていたファイルを削除した場合に、ファイル削除によって発生した空き使用量に応じて、下位のストレージ装置に格納されていたファイルを上位に移行することができる。
【００６９】
容量追加処理
図１６は、本実施例のストレージ装置への容量追加処理の手順の一例を示すフローチャートである。階層ストレージ制御部2600の容量追加処理部2611によって実行される本手順では、削除時ファイル移行処理と同様に、空き使用量という一時変数を使用する。空き使用量の初期値は0である。なお、本発明の特徴と直接関係しない、ストレージ装置S1〜S3への物理的な容量追加手順及び既存のストレージ装置管理手順は、例えば階層ストレージ制御装置2000の基本プログラム2500が実行するものとして、その説明は省略する。
【００７０】
また、以下の処理は階層ストレージシステム1000を使用するユーザA〜C毎に繰り返し行うが、特定のユーザA〜Cへの偏りをなくすため、ひとつのファイルを移行する毎に次のユーザA〜Cに処理を切り替えるという操作を、移行対象ファイル又は空き容量がなくなるまで繰り返してもよい。容量追加処理（S14000）では、最初に、ストレージ空き容量テーブル3100に格納される、増量対象となるストレージ装置S1〜S3の空き容量3101を追加する（S14100）。
【００７１】
次に、ユーザ実使用量情報3600に格納される当該ユーザ、ストレージ装置の実使用量が、ユーザ理想使用量情報3500に格納される当該ユーザ、ストレージ装置の理想使用量よりも小さいかを判定する（S14200）。前記実使用量が前記理想使用量以上である場合（S14200、No）、処理を終了する。前記実使用量が前記理想使用量より小さい場合（S14200、Yes）、空き使用量を、前記理想使用量から前記実使用量を減じたものとする（S14300）。
【００７２】
次に、空き使用量が、ストレージ空き容量テーブル3100に格納される当該ストレージ装置S1〜S3の空き容量3101以下であるかを判定する（S14400）。空き使用量が、前記空き容量よりも大きい場合（S14400、No）、空き使用量を、前記空き容量3101とし（S14500）、空き使用量が前記空き容量以下であった場合と同じ処理に移る。空き使用量が前記空き容量以下であった場合（S14400、Yes）、ひとつ下位のストレージ装置に対して、削除時ファイル移行処理を実行する（S13000）。
【００７３】
以上の容量追加処理により、階層ストレージ制御装置2000は、容量を追加した階層のストレージ装置に、下位ストレージ装置に格納されているファイルを移行することができる。階層ストレージシステム1000に新たに階層を追加する場合も、ユーザコスト分配テーブル3400、ユーザ理想使用量テーブル3500、及びユーザ実使用量テーブル3600に当該ストレージ階層分のエントリを追加し、それぞれの値を0として上記容量追加処理を行えばよい。
【００７４】
以上に説明したように、本実施例の階層ストレージシステム1000では、階層ストレージ制御装置2000がユーザ理想使用量テーブル3500及びユーザ実使用量テーブル3600を用いて使用量制限を実現するため、管理者はストレージコスト係数テーブル3200及びユーザコスト割り当てテーブル3300を設定することにより、効率的に使用量制限を設定することができる。
【００７５】
また、ユーザは、ユーザコスト分配テーブル3400を設定することにより、割り当てられた使用可能コスト内でストレージ装置S1〜S3の使用量制限を使用目的に合わせて柔軟に設定することができる。
［実施例２］
【００７６】
次に、本発明の階層ストレージシステムについて、他の実施例に即して説明する。図１７は、本発明の実施例２に関わる重複排除対応階層ストレージシステム15000を備えた情報処理システム１の構成例を示す図である。重複排除対応階層ストレージシステム15000では、実施例１の階層ストレージシステム1000が備える階層ストレージ制御装置2000に代わり、重複排除対応階層ストレージ制御装置16000を備える。他の実施例１と同様の構成については、説明を省略する。
【００７７】
図１８は、重複排除対応階層ストレージ制御装置16000の構成例を示す図である。重複排除対応階層ストレージ制御装置16000では、実施例１の階層ストレージ制御装置2000が備える階層ストレージ制御プログラム2600に代わり、重複排除対応階層ストレージ制御プログラム16100を備える。重複排除対応階層ストレージ制御プログラム16100は、実施例１で説明した階層ストレージ制御プログラム2600の機能に加え、ストレージ装置内及びストレージ装置間でファイルの重複排除を行う機能を備える。本実施例で説明するファイルの重複排除機能は、複数のストレージ装置S1〜S3に同じ内容のファイルが存在する場合に、それぞれのファイルのGNSファイルパスや作成日付などのファイル管理情報と、ひとつのファイルデータのみを残して重複するファイルデータを削除するという従来の重複排除機能に加え、階層ストレージ使用容量管理テーブル3000を更新する機能を備える。なお、従来の重複排除技術としては、例えばファイル単位で重複データを検出して排除するシングル・インスタンス・ストレージ（Single Instance Storage, SIS）方式等の既存技術があり、ここではその詳細の説明は省略する。
【００７８】
図１９は、重複排除操作時のストレージ装置1200のファイル格納状況を表す。ストレージ装置1200（S2）には、ユーザAの使用するS2A領域17000と、ユーザBの使用するS2B領域17100があり、S2A領域17000にはファイル1（17200）が、S2B領域17100にはファイル2（17300）とファイル3（17400）が格納されている。
【００７９】
ここで、従来の重複排除技術により、ファイル1（17200）とファイル2（17300）とファイル3（17400）が同一内容であると検出され、重複排除の対象となったとする。本実施例の重複排除対応階層ストレージ制御装置16000は、同じユーザの使用領域内の重複ファイルを削除した場合、削除したファイルのサイズ分、ユーザ実使用量テーブル3600の当該ユーザ、ストレージ装置の実使用量3602を減らすが、異なるユーザの使用領域内の重複ファイルを削除した場合には、ユーザ実使用量テーブル3600に当該ユーザについて記録されている実使用量3602は減らさない。したがって、この例の場合、重複排除操作によりファイル1（17200）が残され、ファイル2（17300）及びファイル3（17400）が削除されるとすると、ユーザ実使用量テーブル3600に格納される、ユーザAのストレージ装置S2の実使用量3602は変化せず、ユーザBのストレージ装置S2の実使用量3602は当該ファイル１個分、重複排除対応階層ストレージ制御装置16000によって減らされる。また、ストレージ空き容量テーブル3100に格納されるストレージ装置S2の空き容量3101は当該ファイル１個分、重複排除対応階層ストレージ制御装置16000によって増やされる。
【００８０】
前記重複排除操作後、ファイル2（17300）又はファイル3（17400）に対するクライアント装置1500からの読み込みアクセスはファイル1（17200）に対して行われるように設定される。また、クライアント装置1500からのファイル2（17300）又はファイル3（17400）に対する書き込みアクセスは、ファイル1（17200）のデータをファイル2（17300）又はファイル3（17400）として複製した後、実行されるように設定される。この場合、ユーザ実使用量テーブル3600に変化はなく、ユーザ理想使用量テーブル3500の制限を越えてファイルが格納されることはない。
【００８１】
図２０は、重複排除操作時のストレージ装置1100（S1）、及びストレージ装置1200（S2）のファイル格納状況を表す。ストレージ装置S1には、ユーザAの使用するS1A領域18000があり、ファイル4（18100）が格納されている。また、ストレージ装置S1のひとつ下の階層のストレージ装置S2の、ユーザAが使用するS2A領域17000にはファイル5（18200）が、ユーザBが使用するS2B領域17100にはファイル6（18300）が格納されている。
【００８２】
ここで、従来の重複排除技術により、ファイル4（18100）とファイル5（18200）とファイル6（18300）が同一内容であると検出され、重複排除の対象となったとする。本実施例の重複排除対応階層ストレージ制御装置16000は、階層の異なるストレージ装置S1、S2間で重複排除を行う場合、上位階層のストレージ装置S1に格納されるファイルを残し、下位階層のストレージ装置S2に格納される重複するファイルを削除するが、下位階層のストレージ装置S2のユーザ実使用量テーブル3600に記録されている実使用量3602を減らさない。したがって、この例の場合、重複排除操作により、ユーザ実使用量テーブル3600は変化せず、ストレージ空き容量テーブル3100に格納されるストレージ装置S2の空き容量3101は当該ファイル２個分増やされる。
【００８３】
前記重複排除操作後、ファイル5（18200）又はファイル6（18300）に対するクライアント装置1500からの読み込みアクセスはファイル4（18100）に対して行われるように設定される。また、ファイル5（18200）又はファイル6（18300）に対するクライアント装置1500からの書き込みアクセスは、ファイル4（18100）のデータをファイル5（18200）又はファイル6（18300）として複製した後に実行されるように設定される。この場合もまた、ユーザ実使用量テーブル3600に変化はなく、ユーザ理想使用量テーブル3500の制限を越えてファイルが格納されることはない。また、S1A領域（18000）からファイル4（18100）を削除する場合は、重複排除対応階層ストレージ制御装置16000は、ファイル4（18100）の内容を、ファイル5（18200）又はファイル6（18300）の内容として複製した後、実施例１記載のファイル削除処理を行えばよい。
【００８４】
以上説明したように、本実施例の重複排除対応階層ストレージシステム15000では、重複排除対応階層ストレージ制御装置16000が実行する重複排除操作により、ユーザ理想使用量テーブル3500による実施例１記載の使用量制限を実現しつつ、重複するファイルのデータを削除してストレージ装置の空き容量を増やし、ストレージ装置の領域を有効に活用することができる。
【００８５】
以上要するに、本発明の実施形態によれば、階層ストレージシステムにおいて、管理者はストレージ装置毎のコスト係数を定義しユーザ毎の使用可能コストを割り当てることにより、効率的に使用量制限を設定することができる。また、ユーザは割り当てられた使用可能コスト内でストレージ装置の使用量制限を使用目的に合わせて柔軟に設定することができる
【００８６】
以上、本願発明を、その実施例に即して添付図面を参照しながら説明したが、本願発明は、これらの実施例に限定されるものではない。また、本願発明の趣旨を逸脱しないいかなる変形例、均等物も本願発明の範囲内のものである。
【図１】
0005185445.tif 000002
【図２】
0005185445.tif 000003
【図３】
0005185445.tif 000004
【図４Ａ】
0005185445.tif 000005
【図４Ｂ】
0005185445.tif 000006
【図５】
0005185445.tif 000007
【図６】
0005185445.tif 000008
【図７】
0005185445.tif 000009
【図８】
0005185445.tif 000010
【図９】
0005185445.tif 000011
【図１０】
0005185445.tif 000012
【図１１】
0005185445.tif 000013
【図１２】
0005185445.tif 000014
【図１３】
0005185445.tif 000015
【図１４】
0005185445.tif 000016
【図１５】
0005185445.tif 000017
【図１６】
0005185445.tif 000018
【図１７】
0005185445.tif 000019
【図１８】
0005185445.tif 000020
【図１９】
0005185445.tif 000021
【図２０】
0005185445.tif 000022