(57)【要約】【課題】利用者にとって最小のコストでデータ保管を可能とする【解決手段】クライアント４は、クライアント４、５、６から預かったデータを保管するサーバ２から、データをサーバ２が預かる際に発生する料金額であって、当該データと同一のデータを預けたクライアントの数に応じて変動する料金額を取得する。そして、クライアント４は、取得した料金額に応じて、ファイルシステム２０が記憶するデータのうちサーバ２に預けるデータを選択する。【選択図】        図５
2014085882.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数のデータを記憶する記憶部と、
１又は複数の情報処理装置からデータを預かるストレージサーバから、前記記憶部が記憶するデータを前記ストレージサーバに預けた際に発生する料金額であって、当該データと同一のデータを預けた情報処理装置の数に応じて変動する料金額を前記データごとに取得する取得部と、
前記取得部が取得した料金額に応じて、前記記憶部が記憶するデータから前記ストレージサーバに預けるデータを選択する選択部と
を有することを特徴とする情報処理装置。
【請求項２】
前記記憶部に記憶された前記データに対するアクセスの頻度を前記データごとに監視する監視部と、
前記監視部が監視したアクセスの頻度と、前記取得部が取得した料金額とに基づいて、前記記憶部が記憶するデータを前記ストレージサーバに預けた際の効率性を前記データごとに評価する評価部と
を有し、
前記選択部は、前記評価部の評価結果に応じて、前記記憶部が記憶するデータのうち、前記ストレージサーバに預けるデータを選択することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記選択部は、前記記憶部が記憶するデータから、前記評価部による評価結果が高い順に、前記料金額の和が所定の額以下となるように選択することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得部は、前記ストレージサーバから、前記データと同一のデータを預けた情報処理装置の数と、当該データのデータ容量とに応じて変動する料金額を取得することを特徴とする請求項１〜３のいずれか１つに記載の情報処理装置。
【請求項５】
１又は複数の情報処理装置から預かったデータを記憶する記憶部と、
前記データごとに、当該データと同一のデータを預けた情報処理装置の数を計数する計数部と、
前記計数部が計数した情報処理装置の数に応じて、前記データを保管する際の料金額を前記データごとに算出する演算部と、
前記情報処理装置からの求めに応じて、前記演算部が算出した料金額を通知する通知部と
を有することを特徴とするストレージサーバ。
【請求項６】
１又は複数の情報処理装置と、当該情報処理装置が預けたデータを保管するストレージサーバとを有するストレージシステムにおいて、
前記ストレージサーバは、
前記情報処理装置から預かったデータごとに、当該データと同一のデータを預けた情報処理装置の数を計数する計数部と、
前記計数部が計数した情報処理装置の数に応じて、前記データを保管する際の料金額を前記データごとに算出する演算部と
を有し、
前記情報処理装置は、
１又は複数のデータを記憶する記憶部と、
前記記憶部が記憶するデータと同一のデータについて前記演算部が算出した料金額を取得する取得部と、
前記取得部が取得した料金額に応じて、前記記憶部が記憶するデータから前記ストレージサーバに預けるデータを選択する選択部と
を有することを特徴とするストレージシステム。
【請求項７】
１又は複数のデータを記憶する記憶装置を有する情報処理装置で実行されるバックアップ方法であって、
１又は複数の情報処理装置からデータを預かるストレージサーバから、前記記憶装置が記憶するデータをストレージサーバに預けた際に発生する料金額であって、当該データと同一のデータを預けた情報処理装置の数に応じて変動する料金額を取得する取得工程と、
前記取得工程で取得した料金額に応じて、前記記憶装置が記憶するデータから、前記ストレージサーバに預けるデータを選択する選択工程と
を含んだことを特徴とするバックアップ方法。
【請求項８】
１又は複数のデータを記憶する記憶装置を有するコンピュータに、
１又は複数の情報処理装置からデータを預かるストレージサーバから、前記記憶装置が記憶するデータをストレージサーバに預けた際に発生する料金額であって、当該データと同一のデータを預けた情報処理装置の数に応じて変動する料金額を取得する取得ステップと、
前記取得ステップで取得した料金額に応じて、前記記憶装置が記憶するデータから、前記ストレージサーバに預けるデータを選択する選択ステップと
を実行させることを特徴とするバックアッププログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ストレージサーバ、ストレージシステム、バックアップ方法、およびバックアッププログラムに関する。
【背景技術】
【０００２】
従来、クライアントのデータを保管するストレージサービスの一例として、ネットワーク上に設置したストレージ装置にクライアントのデータを保管するオンラインストレージサービスが提供されている。このようなオンラインストレージサービスは、クライアント側の端末環境に依存せずにストレージ装置からデータの読み出しを行うことができるため、近年普及しつつある。
【０００３】
一方、ストレージ装置が保管するデータの増加に伴い、サービス提供者の設備投資の負担や、利用者側の使用料金の負担、およびネットワークやストレージ装置における負荷が増大し、オンラインストレージサービスのパフォーマンスが低下している。このようなデータの増加に対応するため、ストレージ装置にデータを保管する際に、同一のデータがすでに保管されているか否かを判別し、同一のデータが保管されている場合には、重複保管を行わないｄｅｄｕｐｅ技術が知られている。
【０００４】
また、登録するデータの同一性を判断して重複保管を回避するとともに、データを示すメタデータのみをユーザごとに個別管理することで、データの保管コストを削減する技術が知られている。例えば、このような技術が適用されたストレージ装置は、クライアントからメタデータとして、データのハッシュ値のみを受信する。すると、ストレージ装置は、受信したハッシュ値と同じハッシュ値を有するデータを保管しているか否かを判別する。そして、ストレージ装置は、受信したハッシュ値と同じハッシュ値を有するデータを保管している場合には、保管しているデータに対するアクセス権をクライアントに与えることで、同一データの重複保管を回避する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】JDSF  |  データ・ストレージに関する総合情報サイト  |  Japan  Data  Storage  Forum［online］、［平成２４年１０月１５日検索］、インターネット＜ＵＲＬ：http://www.jdsf.gr.jp/de-dupe/index.html＞
【非特許文献２】後藤  誠、“コンシューマ向け重複排除型オンライン・ストレージ・サービス”、ＩＰＡ２００９年度（平成２１年度）成果報告集  未踏ＩＴ人材発掘・育成事業
【非特許文献３】Mark  W.  Storer,  Kevin  Greenan,  Darrell  D.  E.  Long,  Ethan  L.  Miller,  “Secure  Data  Deduplication”,  StorageSS'  08,  October 31,  2008
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したｄｅｄｕｐｅ技術やメタデータのみをユーザごとに個別管理する技術では、利用者側のコストを削減することができないという問題がある。
【０００７】
例えば、上述したｄｅｄｕｐｅ技術やメタデータのみをユーザごとに個別管理する技術では、重複保管を防ぐことで、ストレージ装置におけるデータの保管コストを削減する。しかしながら、このようなストレージ装置におけるデータの保管コストを削減しても、利用者側にとっての直接的なメリットにはならない。
【０００８】
この結果、多くの利用者が共通して有するデータをストレージ装置へ優先的に転送するといったインセンティブが働かず、多くの利用者が共通して有するデータがストレージ装置に転送されないので、重複保管を回避することができない。また、クライアントが新たに保管しようとするデータと同一のデータがストレージ装置に保管されていない場合は、データ転送が必要になるので、ネットワーク負荷を削減することができない。
【０００９】
なお、ネットワーク上のストレージサーバにデータを保管する場合は、クライアントのプライバシーを担保するため、データを暗号化するのが一般的である。しかし、それぞれ異なる暗号鍵で暗号化されたデータは、元のデータが同一のデータであっても、同一のデータと識別することができない。このため、異なる暗号鍵で暗号化された同一データの重複保管を回避することができない。
【００１０】
また、同一のデータを同一の暗号鍵で暗号化した場合は、利用者のプライバシーを担保することができない。また、メタデータのみをユーザごとに管理する技術では、クライアントが実際には所有していないデータのハッシュ値をストレージサーバに送信することで、所有していないデータをストレージサーバから読み出すことができるという問題がある。
【００１１】
開示する１つの実施形態では、利用者にとって最小のコストでデータ保管を可能とする情報処理装置、ストレージ装置、ストレージシステム、バックアッププログラム、およびバックアップ方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
１つの実施形態では、１又は複数のデータを記憶する情報処理装置である。この情報処理装置は、１又は複数の情報処理装置からデータを預かるストレージサーバから、データをストレージサーバに預けた際に発生する料金額であって、同一のデータを預けたクライアントの数に応じて変動する料金額を取得する。そして、情報処理装置は、取得した料金額に応じて、ストレージサーバに預けるデータを選択する。
【発明の効果】
【００１３】
１つの実施形態では、利用者にとって最小のコストでデータ保管を可能とする情報処理装置、ストレージサーバ、ストレージシステム、バックアッププログラム、およびバックアップ方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、第１の実施形態に係わるストレージシステムを説明する図である。
【図２】図２は、第１の実施形態に係わるサーバの機能構成を説明する図である。
【図３】図３は、メタ情報記憶部が記憶する情報の一例を説明する図である。
【図４】図４は、保存情報ユーザデータベースが記憶する情報の一例を説明するための図である。
【図５】図５は、第１の実施形態に係わるクライアントの機能構成を説明するための図である。
【図６】図６は、メタ情報管理部が記憶する情報の一例を説明する図である。
【図７】図７は、クライアントの初回起動時に監視エージェントが実行する処理の流れを説明するためのフローチャートである。
【図８】図８は、サーバが定期的に実行する処理の流れを説明するためのフローチャートである。
【図９】図９は、クライアントが定期的に実行する処理の流れを説明するためのフローチャートである。
【図１０】図１０は、サーバが実行するデータ格納処理の流れを説明するためのフローチャートである。
【図１１】図１１は、サーバが実行するデータ取得処理の流れを説明するためのフローチャートである。
【図１２】図１２は、サーバが実行するデータ削除処理の流れを説明するためのフローチャートである。
【図１３】図１３は、データ書き込み時にクライアントが実行する処理の流れを説明するためのフローチャートである。
【図１４】図１４は、データ読み出し時にクライアントが実行する処理の流れを説明するためのフローチャートである。
【図１５】図１５は、データ更新時にクライアントが実行する処理の流れを説明するためのフローチャートである。
【図１６】図１６は、データ削除時にクライアントが実行する処理の流れを説明するためのフローチャートである。
【図１７】図１７は、ストレージプログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して情報処理装置、ストレージサーバ、ストレージシステム、バックアップ方法、およびバックアッププログラムについて説明する。
【００１６】
（第１の実施形態）
以下、図１を用いて、複数のクライアントが預けたデータを保管するストレージシステムの一例を説明する。図１は、第１の実施形態に係わるストレージシステムを説明する図である。図１に示す例では、ストレージシステム１は、サーバ２、ネットワーク３、複数のクライアント４〜６を有する。
【００１７】
なお、ネットワーク３は、ＷＷＷ（World  Wide  Web）、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等任意の通信ネットワークである。また、図１には、３台のクライアント４〜６を記載したが、ネットワーク３は、同様のクライアントを任意の数だけ有することができる。また、以下の説明では、クライアント５、６は、クライアント４と同様の機能を発揮するものとして、詳細な説明を省略する。
【００１８】
サーバ２は、ネットワーク３を介して、各クライアント４〜６が預けたデータを記憶するストレージサーバである。また、サーバ２は、すでに記憶しているデータの重複保管を回避する機能を有する。以下、サーバ２の動作の一例について説明する。なお、以下の説明では、クライアント４〜６は、データＡをそれぞれ記憶しているものとする。
【００１９】
例えば、サーバ２は、ネットワーク３を介して、クライアント４からデータＡの格納を要求する格納要求を受信すると、データＡを記憶しているか否かを判別する。そして、サーバ２は、データＡを記憶していないと判別した場合には、ネットワーク３を介して、クライアント４からデータＡを受信し、受信したデータＡを記憶するとともに、クライアント４がデータＡを保持している旨を示すメタデータを記憶する。
【００２０】
続いて、サーバ２は、クライアント５からデータＡの格納を要求する格納要求を受信すると、データＡを記憶しているか否かを判別する。ここで、サーバ２は、クライアント４から受信したデータＡを記憶している。このため、サーバ２は、クライアント５からデータＡを受信せず、クライアント５がデータＡを保持している旨を示すメタデータのみを記憶する。
【００２１】
また、サーバ２は、データを記憶する際の単位時間あたりの料金である時価を算出する。具体的には、サーバ２は、記憶しているデータごとに、データのサイズとデータを保持しているクライアントの数とに応じて変動する時価を算出する。詳細な例を挙げると、サーバ２は、データサイズを「Ｓ」、データを保持するクライアントの数を「Ｎ」、データサイズあたりの単価を「Ｃ」、基本料金を「Ｂ」とすると、「Ｖ＝（Ｓ／Ｎ）＊Ｃ＋Ｂ」で表される値「Ｖ」を時価とする。このため、サーバ２は、データサイズが少ないほど時価の値を下げ、データを保持するクライアントの数が多いほど、時価の値を下げることとなる。
【００２２】
一方、クライアント４は、複数のデータを記憶する。また、クライアント４は、記憶している各データについての時価をサーバ２から取得する。そして、クライアント４は、取得した時価に応じて、サーバ２に預けるデータを選択し、ネットワーク３を介して、選択したデータの格納要求をサーバ２へ送信する。このように、クライアント４は、記憶する各データについて、サーバ２から時価を取得し、取得した時価に応じてサーバ２に預けるデータを選択するので、利用者にとって最小のコストでデータをサーバ２に保管させることができる。
【００２３】
また、サーバ２がデータを保管する際の時価は、同一のデータをサーバ２に預けたクライアントの数によって変動する。このため、クライアント４は、サーバ２から取得した時価の値に応じてサーバ２に送信するデータを選択した場合には、より多くのクライアントがサーバ２に預けたデータと同一のデータを預けようとする。ここで、サーバ２は、すでに記憶しているデータと同一のデータに係わる格納要求を受信した場合には、データを受信せずに、データを保持する旨を示すメタデータのみを記憶する。この結果、ストレージシステム１は、データの転送量を削減することができるので、ネットワークの負荷を削減することができる。
【００２４】
［サーバの機能構成］
次に、図２を用いて、サーバ２の機能構成について説明する。図２は、第１の実施形態に係わるサーバの機能構成を説明する図である。図２に示すように、サーバ２は、実データ記憶部１０、メタ情報記憶部１１、保存情報ユーザデータベース１２、時価演算部１３、応答部１４、データ送受信部１５、仮想受信部１６、認証部１７を有する。実データ記憶部１０は、クライアント４〜６から預けられたデータを保存する。
【００２５】
具体的には、実データ記憶部１０は、データを一意に示す情報であるメタ情報ＩＤをｋｅｙとし、メタ情報ＩＤが示すデータ本体をｖａｌｕｅとするＫＶＳ（Key  Value  Store）である。ここで、メタ情報ＩＤは、値が異なると示すデータが必ず異なるようなＩＤが望ましい。例えば、実データ記憶部１０は、ＳＨＡ（Secure  Hash  Algorithm）２５６のように、衝突困難性を有するハッシュ関数にデータ本体を入力した際の出力をメタ情報ＩＤとし、メタ情報ＩＤとデータ本体と対応付けて記憶する。
【００２６】
メタ情報記憶部１１とは、実データ記憶部１０が保存するデータのメタ情報ＩＤと時価とを対応付けて記憶する。以下、図３を用いて、メタ情報記憶部１１が記憶する情報について説明する。図３は、メタ情報記憶部が記憶する情報の一例を説明する図である。図３に示す例では、メタ情報記憶部１１は、メタ情報ＩＤ、保存先、データサイズ、保存数、時価、保存リストを対応付けて記憶する。ここで、保存先とは、対応付けられたメタ情報ＩＤが示すデータが格納されている場所を示す情報であり、詳細には、実データ記憶部１０の記憶領域を示すアドレスである。
【００２７】
また、データサイズとは、対応付けられたメタ情報ＩＤが示すデータのデータ容量を示す情報である。また、保存数とは、メタ情報ＩＤが示すデータをサーバ２に預けたクライアントの数を示す情報である。また、時価とは、メタ情報ＩＤが示すデータを保管する際に発生する単位時間あたりの料金であり、メタ情報ＩＤが示すデータのデータサイズが増大するに従って増加し、保存数が増加するに従って減少する関数により計算される値である。また、保存リストとは、メタ情報ＩＤが示すデータを預けたユーザを一意に示すユーザＩＤのリストである。
【００２８】
例えば、図３に示す例では、メタ情報記憶部１１は、メタ情報ＩＤ「０ｘ０１２３４５６」が示すデータが実データ記憶部１０の「アドレス＃１」に格納されており、データサイズが「１０ｋｂ（キロバイト）」である旨を示す。また、メタ情報記憶部１１は、メタ情報ＩＤ「０ｘ０１２３４５６」が示すデータを「２」つのクライアントが預けており、時価が「５」である旨を示す。また、メタ情報記憶部１１は、メタ情報ＩＤ「０ｘ０１２３４５６」が示すデータが、クライアントのユーザＩＤが「１」、および「２」のクライアントにより預けられた旨を示す。
【００２９】
また、図３に示す例では、メタ情報記憶部１１は、メタ情報ＩＤが「０ｘ０１２３４５７」が示すデータが実データ記憶部１０の「アドレス＃２」に格納されており、データサイズが「２４ｋｂ」である旨を示す。また、メタ情報記憶部１１は、メタ情報ＩＤ「０ｘ０１２３４５７」が示すデータを「１」つのクライアントが預けており、時価が「２４」であり、データを預けたクライアントのユーザＩＤが「４」である旨を示す。
【００３０】
また、図３に示す例では、メタ情報記憶部１１は、メタ情報ＩＤ「０ｘ０１２３４５８」が示すデータが実データ記憶部１０の「アドレス＃３」に格納されており、データサイズが「１０２４ＭＢ（メガバイト）」である旨を示す。また、メタ情報記憶部１１は、メタ情報ＩＤ「０ｘ０１２３４５８」が示すデータを「３２４１８１７」つのクライアントが預けており、時価が「０．０５」であり、データを預けたクライアントのユーザＩＤが「１、２、３、…」である旨を示す。
【００３１】
図２に戻り、保存情報ユーザデータベース１２は、各クライアント４〜６のユーザＩＤと、各クライアント４〜６が預けたデータを示すメタ情報ＩＤとを対応付けて記憶する。以下、図４を用いて、保存情報ユーザデータベース１２が記憶する情報の一例について説明する。
【００３２】
図４は、保存情報ユーザデータベースが記憶する情報の一例を説明するための図である。図４に示すように、保存情報ユーザデータベース１２は、ユーザＩＤ、認証情報、メタ情報ＩＤリスト、および課金情報を対応付けて記憶する。ここで、認証情報とは、対応付けられたユーザＩＤが示すクライアントを認証するための情報である。
【００３３】
またメタ情報ＩＤリストとは、クライアントがサーバ２に預けたデータを示すメタ情報ＩＤのリストである。また、課金情報とは、メタ情報ＩＤリストに含まれるメタ情報ＩＤが示すデータの時価の総和であり、対応付けられたユーザＩＤが示すクライアントに対して課金される単位時間あたりの料金である。
【００３４】
例えば、図４に示す例では、保存情報ユーザデータベース１２は、ユーザＩＤが「１」のクライアントを認証するために証明書を記憶している旨を示す。また、保存情報ユーザデータベース１２は、ユーザＩＤが「１」のクライアントがメタ情報ＩＤ「０ｘ０１」、および「０ｘ０２」で示されるデータをサーバ２に預けており、単位時間あたりの料金が「２」である旨を示す。
【００３５】
また、保存情報ユーザデータベース１２は、ユーザＩＤが「２」のクライアントを認証するためにパスワードを記憶している旨を示す。また、保存情報ユーザデータベース１２は、ユーザＩＤが「２」のクライアントが、メタ情報「０ｘ０１」、「０ｘ０３」で示されるデータをサーバ２に預けており、単位時間あたりの料金が「２．１」である旨を示す。
【００３６】
また、保存情報ユーザデータベース１２は、ユーザＩＤが「３」のクライアントを認証するためのソースＩＰ（Internet  Protocol）を記憶している旨を示す。また、保存情報ユーザデータベース１２は、ユーザＩＤが「３」のクライアントが、メタ情報「０ｘ０４」、「０ｘ０７」、「０ｘ０１」のデータをサーバ２に預けており、単位時間あたりの料金が「１．０５」である旨を示す。
【００３７】
図２に戻って、時価演算部１３は、実データ記憶部１０が記憶するデータごとに、データを預けたクライアントの数に応じた時価を算出する。具体的には、時価演算部１３は、定期的にメタ情報記憶部１１にアクセスし、各メタ情報ＩＤについての時価の値を算出する。
【００３８】
例えば、時価演算部１３は、メタ情報記憶部１１からメタ情報ＩＤごとにデータサイズと保存数とを取得する。そして、時価演算部１３は、データサイズを「Ｓ」、保存数を「Ｎ」とし、データサイズあたりの単価を「Ｃ」、基本料金を「Ｂ」として「Ｖ＝（Ｓ／Ｎ）＊Ｃ＋Ｂ」で表される時価の値「Ｖ」を算出する。そして、時価演算部１３は、算出した時価の値「Ｖ」で、メタ情報記憶部１１に格納されていた時価の値を更新する。
【００３９】
なお、上述した説明において、時価演算部１３が時価の値を算出するために用いた式はあくまで一例であり、ストレージシステム１の課金体系やクライアントの数に応じて異なる式を用いてもよい。例えば、時価演算部１３は、データサイズや保存数の値に応じた重み付けを考慮してもよい。
【００４０】
応答部１４は、各クライアント４〜６からの要求に応じて、各クライアント４〜６が記憶するデータをサーバ２が保管する際の時価を通知する。具体的には、応答部１４は、ネットワーク３を介して、クライアント４〜６からメタ情報ＩＤを受信すると、メタ情報ＩＤの送信元となるクライアントの認証を認証部１７に依頼する。
【００４１】
そして、応答部１４は、認証部１７からクライアントの認証が正常に行われた旨の通知を受信した場合には、メタ情報記憶部１１にアクセスし、受信したメタ情報ＩＤと対応付けられた時価を取得する。そして、応答部１４は、取得した時価をメタ情報ＩＤの送信元であるクライアントへ送信する。なお、応答部１４は、受信したメタ情報ＩＤと対応付けられた時価をメタ情報記憶部１１が記憶していない場合は、時価を記憶していない旨を示す「ｎｕｌｌ」をメタ情報ＩＤの送信元となるクライアントへ送信する。なお、応答部１４は、認証部１７からクライアントの認証を正常に行うことができなかった旨の通知を受信した場合には、メタ情報ＩＤの送信元となるクライアントにエラー応答を送信する。
【００４２】
データ送受信部１５は、クライアント４〜６から、データの取得要求を受信した場合には、以下のデータ取得処理を実行する。まず、データ送受信部１５は、取得要求元のクライアントのユーザＩＤと、取得対象となるデータのメタ情報ＩＤとを取得する。次に、データ送受信部１５は、保存情報ユーザデータベース１２にアクセスし、取得要求元のユーザＩＤと取得対象となるデータのメタ情報ＩＤとが対応付けて記憶されているか否かを判別する。
【００４３】
そして、ユーザ送受信部１５は、取得要求元のユーザＩＤと取得対象となるデータのメタ情報ＩＤとが保存情報ユーザデータベース１２に対応付けて記憶されている場合には、取得対象となるデータのメタ情報ＩＤをｋｅｙとするデータを実データ記憶部１０から取得する。すなわち、ユーザ送受信部１５は、取得対象となるデータを実データ記憶部１０から取得する。その後、ユーザ送受信部１５は、取得したデータを取得要求元のクライアントへ送信する。一方、ユーザ送受信部１５は、取得要求元のユーザＩＤと取得対象となるデータのメタ情報ＩＤとが保存情報ユーザデータベース１２に対応付けて記憶されていない場合には、エラー通知を要求元のクライアントに送信する。
【００４４】
また、データ送受信部１５は、クライアント４〜６からデータの格納要求を受信した場合には、以下のデータ格納処理を実行する。まず、データ送受信部１５は、格納要求元のクライアントのユーザＩＤと、格納対象となるデータのメタ情報ＩＤとを取得する。次に、データ送受信部１５は、格納対象となるデータのメタ情報ＩＤをメタ情報記憶部１１が記憶しているか否かを判別する。すなわち、データ送受信部１５は、格納対象となるデータを実データ記憶部１０がすでに記憶しているか否かを判別する。
【００４５】
そして、データ送受信部１５は、格納対象となるデータのメタ情報ＩＤをメタ情報記憶部１１が記憶している場合には、仮想受信部１６に対して、格納要求元のクライアントがデータを記憶しているか判別するよう要求する。その後、データ送受信部１５は、格納要求元のクライアントがデータを記憶している旨の通知を仮想受信部１６から受信した場合は、格納要求元のユーザＩＤと格納対象となるデータのメタ情報ＩＤとを、対応付けて保存情報ユーザデータベース１２に格納する。詳細には、データ送受信部１５は、格納要求元のクライアントのユーザＩＤと対応付けられたメタ情報ＩＤリストに、格納対象となるデータのメタ情報ＩＤを追加する。
【００４６】
また、データ送受信部１５は、メタ情報記憶部１１にアクセスし、格納対象となるデータのメタ情報ＩＤと対応付けられた保存リストに格納要求元のクライアントのユーザＩＤを追加する。そして、データ送受信部１５は、格納要求元のクライアントにデータのアクセス権を設定した旨を通知する。一方、データ送受信部１５は、格納要求元のクライアントがデータを記憶していない旨の通知を仮想受信部１６から受信した場合には、エラー通知を格納要求元のクライアントに送信する。
【００４７】
また、データ送受信部１５は、格納対象となるデータのメタ情報ＩＤをメタ情報記憶部１１が記憶していない場合には、格納要求元のクライアントにデータ送信要求を送信し、格納対象となるデータを受信する。そして、データ送受信部１５は、格納対象となるデータのメタ情報ＩＤと格納対象となるデータとを対応付けて実データ記憶部１０に格納する。
【００４８】
また、データ送受信部１５は、格納対象となるデータのメタ情報ＩＤについてのエントリをメタ情報記憶部１１に追加し、追加したエントリの保存リストに格納要求元のクライアントのユーザＩＤを追加する。また、データ送受信部１５は、保存情報ユーザデータベース１２にアクセスし、格納要求元のクライアントのユーザＩＤと対応付けられたメタ情報ＩＤリストに、格納対象となるデータのメタ情報ＩＤを追加する。
【００４９】
また、データ送受信部１５は、クライアント４〜６からデータの削除要求を受信した場合には、以下のデータ削除処理を実行する。まず、データ送受信部１５は、削除要求元のクライアントのユーザＩＤと削除対象となるデータを示すメタ情報ＩＤとを取得する。そして、データ送受信部１５は、保存情報ユーザデータベース１２にアクセスし、削除要求元のクライアントのユーザＩＤに対応付けられたメタ情報ＩＤリストから、取得したメタ情報ＩＤを削除する。また、データ送受信部１５は、メタ情報記憶部１１にアクセスし、削除対象となるデータのメタ情報ＩＤと対応付けられた保存リストから、削除要求元のクライアントのユーザＩＤを削除する。
【００５０】
なお、データ送受信部１５は、上述したデータ取得処理、データ格納処理、およびデータ削除処理を行う前に、各種要求元のクライアントの認証を行うよう認証部１７に依頼する。そして、データ送受信部１５は、認証部１７からクライアントの認証を正常に行うことができた旨の通知を受けた場合には、各種処理を開始する。一方、データ送受信部１５は、認証部１７からクライアントの認証を正常に行うことができなかった旨の通知を受けた場合には、エラー通知を各種要求元のクライアントへ送信する。
【００５１】
仮想受信部１６は、データ送受信部１５から格納要求元のクライアントがデータを記憶しているか判別するよう要求された場合には、以下の処理を実行する。まず、仮想受信部１６は、乱数を生成し、生成した乱数を格納要求元のクライアントへ送信し、送信した乱数と格納対象となるデータとを入力とするハッシュ値を要求する。詳細には、仮想受信部１６は、生成した乱数を「Ｒ」、格納対象となるデータを「Ａ」とした際に、「Ｃ＝Ｈａｓｈ（Ｒ||Ａ）」で表されるハッシュ値「Ｃ」を要求する。
【００５２】
また、仮想受信部１６は、格納対象となるデータのメタ情報ＩＤをｋｅｙとするデータ、すなわち格納対象となるデータを実データ記憶部１０から取得する。そして、仮想受信部１６は、取得したデータを「Ａ’」、生成した乱数を「Ｒ」とし、「Ｃ’＝Ｈａｓｈ（Ｒ||Ａ’）」で表されるハッシュ値「Ｃ’」を算出する。その後、仮想受信部１６は、格納要求元から取得したハッシュ値「Ｃ」と算出したハッシュ値「Ｃ’」とが一致した場合には、格納要求元のクライアントがデータを記憶している旨をデータ送受信部１５に通知する。一方、仮想受信部１６は、格納要求元から取得したハッシュ値「Ｃ」と算出したハッシュ値「Ｃ’」とが一致しなかった場合には、格納要求元のクライアントがデータを記憶していない旨をデータ送受信部１５に通知する。
【００５３】
このように、サーバ２は、実データ記憶部１０がすでに記憶したデータの格納要求を受信した場合は、乱数を生成し、格納要求元となるクライアントに生成した乱数を送信し、格納対象となるデータと送信した乱数とを入力としたハッシュ値を算出させる。また、サーバ２は、格納対象となるデータと生成した乱数とを入力としたハッシュ値を算出する。そして、サーバ２は、自身が算出したハッシュ値と格納要求元となるクライアントが生成したハッシュ値とを比較することで、格納要求元となるクライアントが格納対象となるデータを実際に記憶しているか否かを判別する。
【００５４】
この結果、サーバ２は、メタ情報ＩＤのみを有するクライアントについてユーザＩＤの登録を防ぐことができるので、このようなクライアントによるデータの読み出しを防止し、セキュリティ性能を向上させることができる。
【００５５】
認証部１７は、各クライアント４〜６との間であらかじめ取り決めた認証プロトコルを用いて、応答部１４、またはデータ送受信部１５が通信するクライアントの認証を行う。例えば、認証部１７は、応答部１４、又はデータ送受信部１５からクライアントの認証を依頼されると、認証対象となるクライアントの認証情報を保存情報ユーザデータベース１２から読み出す。そして、認証部１７は、読み出した認証情報を用いて、クライアントの認証を実行し、認証結果を応答部１４、又はデータ送受信部１５に通知する。
【００５６】
なお、認証部１７は、各クライアント４〜６を認証する方法に任意のプロトコルを適用することができる。例えば、認証部１７は、認証対象となるクライアントのユーザＩＤに認証情報「証明書」が対応付けられている場合は、公開鍵証明書を用いた認証を行う。また、認証部１７は、認証対象となるクライアントのユーザＩＤに認証情報「パスワード」が対応付けられている場合は、パスワードの送信を認証対象のクライアントに要求する。そして、認証部１７は、応答として受信したパスワードが保存情報ユーザデータベース１２が記憶するパスワードと一致した場合には、認証対象のクライアントを認証する。
【００５７】
また、認証部１７は、認証対象となるクライアントのユーザＩＤに認証情報「ソースＩＰ」が対応付けられている場合には、認証対象となるクライアントのＩＰアドレスを確認する。そして、認証部１７は、確認したＩＰアドレスが保存情報ユーザデータベース１２が記憶するＩＰアドレスと一致した場合には、認証対象のクライアントを認証する。
【００５８】
［クライアントの機能構成］
次に、図５を用いて、クライアント４の機能構成について説明する。図５は、第１の実施形態に係わるクライアントの機能構成を説明するための図である。図５に示す例では、クライアント４は、ファイルシステム２０、アプリケーション２１、メタ情報管理部２２、フィルタファイルシステム２３、監視エージェント２４、設定部２５、データ送受信部２６、仮想送信部２７、認証部２８を有する。
【００５９】
ファイルシステム２０は、各種データを記憶する記憶部であり、一般的に利用されている既存のファイルシステムを適用することができる。また、アプリケーション２１は、クライアント４が動作させるアプリケーションであり、フィルタファイルシステム２３を介して、ファイルシステム２０が記憶するデータの作成、変更、および削除する機能を有する。なお、アプリケーション２１がデータの作成、変更、および削除する機能については、一般的なファイル操作ＡＰＩ（Application  Programming  Interface）によって発揮されるものとし、詳細な説明を省略する。
【００６０】
メタ情報記憶部２２は、ファイルシステム２０が記憶するデータのメタ情報ＩＤと、データに対するアクセス頻度と、データの時価と、データをサーバ２に預けた際の効率性とを対応付けて記憶する。以下、図６を用いて、メタ情報記憶部２２が記憶する情報の一例について説明する。
【００６１】
図６は、メタ情報管理部が記憶する情報の一例を説明する図である。図６に示す例では、メタ情報管理部２２は、ファイルＩＤ、メタ情報ＩＤ、プロパティ情報、アクセス情報、効率性、時価、預け情報が対応付けて記憶されている。ここで、ファイルＩＤとは、ファイルシステム２０が記憶する各ファイルのデータを一意に特定する識別子である。なお、ファイルシステム２０内において、複製されたデータが複数存在する場合には、各データにそれぞれ異なるファイルＩＤが付与されるが、複製された各データのメタ情報ＩＤは、同一となる場合がある。
【００６２】
また、プロパティ情報とは、対応付けられたファイルＩＤが示すデータの特性を示す情報であり、例えば、ファイルシステム２０内においてデータが格納された位置を示すファイルパス（filepath）やデータサイズ等である。また、アクセス情報とは、対応付けられたファイルＩＤが示すデータに対するアクセス頻度を示す情報であり、例えば、単位時間あたりのアクセス回数や、最後にアクセスがあった際のユニックス時間である。
【００６３】
また、効率性とは、アクセス情報と時価とから算出される値であり、対応付けられたファイルＩＤが示すデータをサーバ２に預けた際の効率性を示す情報である。具体的には、効率性とは、監視エージェント２４によって算出される値であり、アクセス情報、時価、およびデータサイズから算出される値であり、値が大きいほどサーバ２に預けるべきである旨を示す。例えば、効率性とは、アクセス情報の値、時価の値、又はデータサイズの値が小さければ小さいほど増加する値であり、時価を「ｖ」、データサイズを「ｓ」、アクセス情報を「ａ」とすると、「１／（ａｋ＋ｖ／ｓ）」、又は「１／（ａｋ＋ｖ／ｓ）」で算出される値である。
【００６４】
ここで、「ｋ」とは、ストレージシステム１の状況に応じて設定される任意の係数である。例えば、係数「ｋ」は、ストレージシステム１が許容するネットワークトラフィックの量、ネットワークに許容されるコスト、実データ記憶部１０等のストレージに許容されるコスト等から設定されるパラメータである。ストレージシステム１は、係数「ｋ」を適切な値に設定することで、ユーザに対するコストと、ストレージシステム１のネットワークトラフィックとの極小点をユーザに提案することができる。
【００６５】
また、時価とは、対応付けられたファイルＩＤが示すデータをサーバ２に預けた際に発生する時価であり、ファイルシステム２０が記憶する各データについて、監視エージェント２４がサーバ２から取得する時価である。すなわち、メタ情報管理部２２は、サーバ２が算出した時価を記憶する。また、預け情報とは、対応付けられたファイルＩＤが示すデータをサーバ２に預けたか否かを示す情報であり、データを預けた旨を示す「○」、又はデータを預けていない旨の示す「×」が格納される。
【００６６】
フィルタファイルシステム２３とは、ファイルシステム２０が記憶する各データに対するアプリケーション２１のアクセスを制御する。具体的には、フィルタファイルシステム２３は、アプリケーション２１がファイルシステム２０に格納する新たなデータを生成した場合には、以下の書き込み処理を実行する。
【００６７】
まず、フィルタファイルシステム２３は、ファイルシステム２０に代わり、アプリケーション２１が生成したデータを取得する。また、フィルタファイルシステム２３は、取得したデータをファイルシステム２０に格納するとともに、メタ情報管理部２２に新たなエントリを追加する。そして、フィルタファイルシステム２３は、ファイルシステム２０に格納したデータのハッシュ値であるメタ情報ＩＤと、ファイルＩＤと、プロパティ情報とを新たなエントリに格納する。また、フィルタファイルシステム２３は、アクセス情報に、データを格納したユニックス時間を格納する。
【００６８】
また、フィルタファイルシステム２３は、アプリケーション２１がファイルシステム２０が記憶するデータの読み出しを実行した場合は、以下の読み出し処理を実行する。まず、フィルタファイルシステム２３は、メタ情報管理部２２の各エントリのうち、読み出し対象のデータを示すファイルＩＤが格納されたエントリを抽出する。そして、フィルタファイルシステム２３は、抽出したエントリの預け情報が「〇」であるか否かを判別する。
【００６９】
ここで、フィルタファイルシステム２３は、預け情報が「〇」である場合には、抽出したエントリのメタ情報ＩＤをデータ送受信部２６に出力し、データ送受信部２６にデータ取得処理の実行を依頼する。その後、フィルタファイルシステム２３は、データ送受信部２６から読み出し対象のデータを受信した場合には、受信したデータをアプリケーション２１に出力し、抽出したエントリのアクセス情報を更新する。
【００７０】
一方、フィルタファイルシステム２３は、預け情報が「×」である場合は、ファイルシステム２０から読み出し対象のデータを取得し、取得したデータをアプリケーション２１に出力するとともに、抽出したエントリのアクセス情報を更新する。
【００７１】
また、フィルタファイルシステム２３は、アプリケーション２１がファイルシステム２０が記憶するデータの更新を実行した場合は、以下の更新処理を実行する。まず、フィルタファイルシステム２３は、メタ情報管理部２２から、読み出し対象のデータを示すファイルＩＤが格納されたエントリを抽出する。そして、フィルタファイルシステム２３は、抽出したエントリの預け情報が「〇」であるか否かを判別する。
【００７２】
ここで、フィルタファイルシステム２３は、預け情報が「〇」である場合には、サーバ２に預けたデータとファイルシステム２０が記憶するデータとに違いが発生するので、サーバ２に預けたデータを削除しなければならない。そこで、フィルタファイルシステム２３は、抽出したエントリのメタ情報ＩＤをデータ送受信部２６に出力し、データ送受信部２６にデータ削除処理の実行を依頼する。
【００７３】
そして、フィルタファイルシステム２３は、ファイルシステム２０が記憶するデータを更新し、抽出したエントリのアクセス情報を更新する。一方、フィルタファイルシステム２３は、預け情報が「×」である場合は、ファイルシステム２０が記憶するデータを更新し、抽出したエントリのアクセス情報を更新する。
【００７４】
また、フィルタファイルシステム２３は、アプリケーション２１がデータの削除を実行した場合には、更新処理と同様の処理を行うことで、サーバ２に預けたデータ、又はファイルシステム２０が記憶するデータの削除を行う。この際、フィルタファイルシステム２３は、メタ情報管理部２２から削除対象となるデータを示すファイルＩＤが格納されたエントリを削除する。
【００７５】
監視エージェント２４は、定期的に、ファイルシステム２０をクローリングし、メタ情報管理部２２が記憶する情報を更新する。具体的には、監視エージェント２４は、定期的にメタ情報管理部２２が記憶する各メタ情報ＩＤと対応付けられた時価の値をサーバ２から取得する。そして、監視エージェント２４は、取得した時価の値で、メタ情報管理部２２が記憶する各メタ情報ＩＤと対応付けられた時価の値を更新する。
【００７６】
例えば、監視エージェント２４は、応答部１４に対して、メタ情報管理部２２が記憶するメタ情報ＩＤを応答部１４に送信し、応答部１４から各メタ情報ＩＤが示すデータについての時価を取得する。そして、監視エージェント２４は、取得した時価をメタ情報管理部２２に格納する。
【００７７】
また、監視エージェント２４は、メタ情報管理部２２の各エントリについて、アクセス情報、時価、およびプロパティ情報から、効率性を算出する。例えば、監視エージェント２４は、時価を「ｖ」、データサイズを「ｓ」、アクセス情報を「ａ」とすると、「１／（ａｋ＋ｖ／ｓ）」、又は「１／（ａｋ＋ｖ／ｓ）」で算出される効率性の値で、各エントリの効率性の値を更新する。
【００７８】
また、監視エージェント２４は、メタ情報管理部２２の各エントリを、効率性が高い順に、時価の合計が予め定められた値になるまで選択する。つまり、監視エージェント２４は、効率性が高い順に、予め定められた予算内に収まるだけのデータを選択する。そして、監視エージェント２４は、選択したエントリのメタ情報ＩＤが示すデータの預け処理を実行する。
【００７９】
例えば、監視エージェント２４は、選択したエントリの預け情報を確認し、預け情報が「〇」の場合には、そのまま処理を終了する。一方、監視エージェント２４は、選択したエントリの預け情報が「×」である場合には、選択したエントリのメタ情報ＩＤをデータ送受信部２６に出力し、データ格納処理の実行を依頼する。そして、監視エージェント２４は、データ送受信部２６からデータ格納処理の完了を通知された場合には、選択したエントリの預け情報を「〇」に更新し、データの預け処理を終了する。
【００８０】
また、監視エージェント２４は、データの預け処理を終了した場合には、データの預け処理の対象とはならなかったエントリの預け情報を確認する。そして、監視エージェント２４は、データの預け処理の対象とはならなかったエントリの預け情報が「〇」である場合は、エントリのメタ情報ＩＤをデータ送受信部２６に出力し、データ取得処理の実行、およびデータ削除処理の実行を依頼する。
【００８１】
設定部２５は、監視エージェント２４が実行する各種処理の設定を行う。例えば、設定部２５は、監視エージェント２４がファイルシステム２０をクローリングする時間間隔の設定や、サーバ２にデータを預けた際に発生する時価の最大値を設定する。
【００８２】
データ送受信部２６は、サーバ２が有するデータ送受信部１５と連携してデータの送受信を行う。具体的には、データ送受信部２６は、フィルタファイルシステム２３、又は監視エージェント２４からメタ情報ＩＤを受信し、データ格納処理、データ取得処理、又はデータ削除処理の実行を依頼された場合には、依頼された処理を実行する。
【００８３】
例えば、データ送受信部２６は、データ格納処理を実行する場合には、サーバ２のデータ送受信部１５にメタ情報ＩＤを送信し、データ格納要求を送信する。このような場合には、サーバ２のデータ送受信部１５は、クライアント４を格納要求元のクライアントであると識別する。
【００８４】
ここで、データ送受信部１５は、データ送受信部２６が送信したメタ情報ＩＤが示すデータを記憶していない場合には、データ送受信部２６にデータ送信要求を送信する。このような場合には、データ送受信部２６は、ファイルシステム２０からメタ情報ＩＤが示すデータを取得し、取得したデータをサーバ２のデータ送受信部１５に送信する。そして、データ送受信部２６は、ファイルシステム２０から、取得したデータを削除し、データ格納処理の完了を監視エージェント２４に通知する。
【００８５】
一方、送信したメタ情報ＩＤが示すデータをサーバ２が記憶している場合は、後述するように、仮想送信部２７が仮想受信部１６と協調して、送信したメタ情報ＩＤが示すデータをファイルシステム２０が記憶しているか否かを判別する。そして、データ送受信部２６は、送信したメタＩＤが示すデータをファイルシステム２０が記憶していると仮想受信部１６が判別した場合には、データ送受信部１５からアクセス権を設定した旨の通知を受信する。このような場合には、データ送受信部２６は、データ格納処理の完了を監視エージェント２４に通知する。
【００８６】
また、データ送受信部２６は、データ取得処理を実行する場合には、サーバ２のデータ送受信部１５にメタ情報ＩＤを送信し、データ取得要求を送信する。このような場合には、データ送受信部１５は、クライアント４を取得要求元のクライアントであると識別し、データ送受信部２６が送信したメタ情報ＩＤが示すデータをデータ送受信部２６へ送信する。すると、データ送受信部２６は、受信したデータとデータ取得処理の完了をフィルタファイルシステム２３に通知する。
【００８７】
また、データ送受信部２６は、データ削除処理を実行する場合には、サーバ２のデータ送受信部１５にメタ情報ＩＤを送信し、送信したメタ情報ＩＤが示すデータの削除を要求するデータ削除要求を送信する。なお、データ送受信部２６は、データ格納処理、データ取得処理、データ削除処理を実行する場合には、認証部２８に依頼し、サーバ２に対するクライアント４の認証を実行する。そして、データ送受信部２６は、認証部２８が認証に成功した後に、上述したデータ格納処理、データ取得処理、データ削除処理を実行する。
【００８８】
仮想送信部２７は、仮想受信部１６と連携して、サーバ２に預けるデータをクライアント４が記憶しているか否かを判別する。具体的には、仮想送信部２７は、仮想受信部１６から乱数と、乱数と格納対象となるデータとを入力とするハッシュ値の要求とを受信する。
【００８９】
このような場合には、仮想送信部２７は、格納対象となるデータをファイルシステム２０から取得し、取得したデータと乱数とを入力とするハッシュ値を算出する。例えば、仮想送信部２７は、格納対象のデータを「Ａ」、受信した乱数を「Ｒ」とし、「Ｃ＝Ｈａｓｈ（Ｒ||Ａ）」で表されるハッシュ値「Ｃ」を算出する。そして、仮想送信部２７は、算出したハッシュ値「Ｃ」を仮想受信部１６へ送信する。
【００９０】
すなわち、メタデータのみをユーザごとに管理する従来の技術では、クライアントが実際には所有していないデータのハッシュ値をストレージサーバに送信することで、所有していないデータをストレージサーバから読み出すことができるという問題がある。しかしながら、ストレージシステム１は、メタデータのみを新たに管理する際に、サーバ２が生成する乱数Ｒとデータとを入力とするハッシュ値をサーバ２、およびクライアント４が算出し、算出したハッシュ値の突合せを行うことで、クライアント４が実際にデータを記憶しているか否かを判別する。このため、ストレージシステム１は、実際にデータを記憶していないクライアントによる不正な読み出しを防ぐことができる。
【００９１】
認証部２８は、データ送受信部２６がデータ格納処理、データ取得処理、データ削除処理を実行する際に、サーバ２に対するクライアント４の認証を行う。具体的には、認証部２８は、認証部１７が要求する認証方法に基づいて、証明書、パスワード等を認証部１７に送信し、クライアント４の認証を行う。
【００９２】
［ストレージシステムが実行する処理の流れ］
以下、図７〜図１６を用いて、ストレージシステム１が実行する処理の流れについて説明する。まず、図７を用いて、クライアント４が初回起動時に監視エージェント２４が実行する処理の流れについて説明する。図７は、クライアントの初回起動時に監視エージェントが実行する処理の流れを説明するためのフローチャートである。
【００９３】
まず、監視エージェント２４は、ファイルシステム２０が記憶するデータをリストアップする（ステップＳ１０１）。次に、監視エージェント２４は、各データのメタ情報ＩＤを算出し、算出したメタ情報ＩＤをメタ情報管理部２２に登録する（ステップＳ１０２）。そして、監視エージェント２４は、各データのメタ情報ＩＤと対応付けて、各データのプロパティ情報をメタ情報管理部２２に登録する（ステップＳ１０３）。その後、監視エージェント２４は、各データと対応付けられたアクセス情報を最大値に初期化する（ステップＳ１０４）。例えば、監視エージェント２４は、各データと対応付けられたアクセス情報として、処理実行時におけるユニックス時間を格納する。
【００９４】
次に、監視エージェント２４は、メタ情報管理部２２に格納された最初のエントリについて時価が判明しているか否かを判別する（ステップＳ１０５）。そして、監視エージェント２４は、エントリが判明していない場合は（ステップＳ１０５否定）、サーバ２に時価を問い合わせる（ステップＳ１０６）。次に、監視エージェント２４は、サーバ２からの時価の応答が「ｎｕｌｌ」であるか否かを判別し（ステップＳ１０７）、サーバ２からの「ｎｕｌｌ」である場合には（ステップＳ１０７肯定）、時価を算出する（ステップＳ１０８）。
【００９５】
すなわち、監視エージェント２４は、サーバ２にデータが格納されておらず、時価が算出されていない場合には、クライアント４単体で時価を算出できるので、時価を算出する。例えば、監視エージェント２４は、データサイズを「Ｓ」、基本料を「Ｂ」、データサイズあたりの単価を「Ｃ」とし、「Ｖ＝Ｓ＊Ｃ＋Ｂ」であらわされる時価「Ｖ」を算出する。
【００９６】
次に、監視エージェント２４は、時価をメタ情報管理部２２に登録し（ステップＳ１０９）、その後、効率性をメタ情報管理部２２に登録する（ステップＳ１１０）。そして、監視エージェントは、全てのデータについて効率性を登録したか否かを判別し（ステップＳ１１１）、全てのデータについて効率性を登録したと判別した場合には（ステップＳ１１１肯定）、処理を終了する。一方、監視エージェント２４は、全てのデータについて効率性を登録していないと判別した場合には（ステップＳ１１１否定）、処理対象を次のエントリに移し（ステップＳ１１２）、ステップＳ１０５の処理を実行する。
【００９７】
なお、監視エージェント２４は、時価が判明している場合は（ステップＳ１０５肯定）、判明している時価を登録する（ステップＳ１０９）。また、監視エージェント２４は、サーバ２から通知された時価の応答が「ｎｕｌｌ」ではない場合には（ステップＳ１０７否定）、サーバ２から通知された時価を登録する（ステップＳ１０９）。
【００９８】
次に、図８を用いて、サーバ２が定期的に実行する処理の流れについて説明する。図８は、サーバが定期的に実行する処理の流れを説明するためのフローチャートである。図８に示す例では、サーバ２は、メタ情報記憶部１１に記憶されたメタ情報ＩＤが示すデータのデータサイズあたりの時価を算出する（ステップＳ２０１）。そして、サーバ２は、算出した時価をメタ情報記憶部１１に登録し（ステップＳ２０２）、処理を終了する。
【００９９】
次に、図９を用いて、クライアント４が定期的に実行する処理の流れについて説明する、図９は、クライアントが定期的に実行する処理の流れを説明するためのフローチャートである。まず、クライアント４は、記憶する各メタ情報ＩＤに対する時価をサーバ２に問い合わせる（ステップＳ３０１）。
【０１００】
次に、クライアント４は、各データについて、時価の応答が「ｎｕｌｌ」であるか否かを判別し（ステップＳ３０２）、時価の応答が「ｎｕｌｌ」である場合は（ステップＳ３０２肯定）、時価の応答が「ｎｕｌｌ」であったデータを時価を算出する（ステップＳ３０３）。そして、クライアント４は、サーバ２から通知された時価、又は、算出した時価をメタ情報管理部２２に登録する（ステップＳ３０４）。
【０１０１】
次に、クライアント４は、メタ情報管理部２２に登録された各エントリを効率性が高い順位ソートし（ステップＳ３０５）、選択していないエントリのうち、効率性がもっとも高いエントリを選択する（ステップＳ３０６）。また、クライアント４は、選択したエントリの時価の合計額が所定の値を超えたか否かを判別する（ステップＳ３０７）。そして、クライアント４は、合計額が所定の値を超えていない場合は（ステップＳ３０７否定）、ステップＳ３０６にて選択したエントリの預け情報が「○」か否かを判別する（ステップＳ３０８）。
【０１０２】
ここで、クライアント４は、預け情報が「○」ではないと判別した場合は（ステップＳ３０８否定）、データ格納処理を実行し（ステップＳ３０９）、次に効率性が高いエントリを選択する（ステップＳ３０６）。一方、クライアント４は、預け情報が「○」である場合（ステップＳ３０８肯定）には、次に効率性が高いエントリを選択する（ステップＳ３０６）。
【０１０３】
また、クライアント４は、選択したエントリの時価の合計額が所定の値を超えた場合は（ステップＳ３０７肯定）、選択したエントリの預け情報が「×」であるか否かを判別する（ステップＳ３１０）。そして、クライアント４は、選択したエントリの預け情報が「×」ではない場合は（ステップＳ３１０否定）、選択したエントリのメタ情報ＩＤが示すデータのデータ取得処理を実行する（ステップＳ３１１）。
【０１０４】
次に、クライアント４は、選択したエントリのメタ情報ＩＤが示すデータのデータ削除処理を実行し（ステップＳ３１２）、全てのエントリについて定期処理を実行したか否かを判別する（ステップＳ３１３）。そして、クライアント４は、全てのエントリについて定期処理を実行した場合は（ステップＳ３１３肯定）、処理を終了する。
【０１０５】
一方、クライアント４は、全てのエントリについて定期処理を実行していない場合は（ステップＳ３１３否定）、ステップＳ３０６にて選択していない次のエントリを選択し（ステップＳ３１４）、ステップＳ３１０の処理を実行する。また、クライアント４は、選択したエントリの預け情報が「×」である場合は（ステップＳ３１０肯定）、ステップＳ３１３の処理を実行する。
【０１０６】
次に、図１０を用いて、サーバ２が実行するデータ格納処理の流れを説明する。図１０は、サーバが実行するデータ格納処理の流れを説明するためのフローチャートである。なお、以下の説明では、サーバ２がクライアント４からデータの格納を要求された場合について説明する。まず、サーバ２は、クライアント４からメタ情報ＩＤを受信する（ステップＳ４０１）。次に、サーバ２は、クライアント４の認証を行う（ステップＳ４０２）。
【０１０７】
また、サーバ２は、クライアントの認証が成功したか否かを判別し（ステップＳ４０３）、認証が成功した場合は（ステップＳ４０３肯定）、メタ情報記憶部１１にクライアント４から通知されたメタ情報ＩＤが登録されているか否かを確認する（ステップＳ４０４）。そして、サーバ２は、クライアント４から通知されたメタ情報ＩＤがメタ情報記憶部１１に登録されているか否かを判別し（ステップＳ４０５）、登録されている場合には（ステップＳ４０５肯定）、乱数Ｒを生成してクライアント４に送信する（ステップＳ４０６）。
【０１０８】
次に、サーバ２は、乱数Ｒとデータとを入力とするハッシュ値を算出し（ステップＳ４０７）、クライアント４が算出したハッシュ値を受信する（ステップＳ４０８）。そして、サーバ２は、ステップＳ４０７にて算出したハッシュ値と、ステップＳ４０８で受信したハッシュ値とが一致するか否かを判別し（ステップＳ４０９）、一致しないと判別した場合には（ステップＳ４０９否定）、エラーをクライアント４に返し（ステップＳ４１０）、処理を終了する。
【０１０９】
一方、サーバ２は、ハッシュ値が一致した場合は（ステップＳ４０９肯定）、クライアント４から通知されたメタ情報ＩＤについて、メタ情報記憶部１１が記憶する保存数に１を加算する（ステップＳ４１１）。次に、サーバ２は、保存情報ユーザデータベース１２を更新する（ステップＳ４１２）。具体的には、サーバ２は、クライアント４を示すユーザＩＤと対応付けられたメタ情報ＩＤリストに通知されたメタ情報ＩＤを追加し、課金情報を更新する。その後、クライアント４が、ファイルシステムに記憶されたデータを削除し（ステップＳ４１３）、データ格納処理が終了する。
【０１１０】
一方、サーバ２は、通知されたメタ情報ＩＤがメタ情報記憶部１１に登録されていない場合は（ステップＳ４０５否定）、クライアント４にデータの送信を要求する（ステップＳ４１４）。そして、サーバ２は、クライアント４から受信したデータからメタ情報ＩＤを計算し（ステップＳ４１５）、算出したメタ情報ＩＤとステップＳ４０１にて受信したメタ情報ＩＤと一致するか否かを判別する（ステップＳ４１６）。
【０１１１】
次に、サーバ２は、算出したメタ情報ＩＤとステップＳ４０１にて受信したメタ情報ＩＤとが一致した場合は（ステップＳ４１６肯定）、実データ記憶部１０にデータを格納する（ステップＳ４１７）。そして、サーバ２は、メタ情報記憶部１１に各種メタ情報を格納し（ステップＳ４１８）、ステップＳ４１１の処理を続けて実行する。一方、サーバ２は、クライアント４を認証することができなかった場合（ステップＳ４０３否定）、又はステップＳ４１５にて算出したメタ情報ＩＤとステップＳ４０１にて受信したメタ情報ＩＤとが一致しなかった場合は（ステップＳ４１６否定）、クライアント４にエラーを返し（ステップＳ４１９）、処理を終了する。
【０１１２】
次に、図１１を用いて、サーバ２が実行するデータ取得処理の流れを説明する。図１１は、サーバが実行するデータ取得処理の流れを説明するためのフローチャートである。例えば、サーバ２は、取得要求元のクライアントからメタ情報ＩＤを受信する（ステップＳ５０１）。すると、サーバ２は、保存情報ユーザデータベース１２から、取得要求元のクライアントを示すユーザＩＤと対応付けられたメタ情報ＩＤリストを確認する（ステップＳ５０２）。
【０１１３】
そして、サーバ２は、メタ情報ＩＤリストに、ステップＳ５０１にて受信したメタ情報ＩＤが含まれているか否かを判別し（ステップＳ５０３）、含まれている場合は（ステップＳ５０３肯定）、実データ記憶部１０からメタ情報ＩＤをｋｅｙとするデータを取得する（ステップＳ５０４）。そして、サーバ２は、データを取得要求元のクライアントに送信し（ステップＳ５０５）、処理を終了する。一方、サーバ２は、メタ情報ＩＤリストに受信したメタ情報ＩＤが含まれていない場合は（ステップＳ５０３否定）、取得要求元のクライアントにエラーを通知し（ステップＳ５０６）、処理を終了する。
【０１１４】
次に、図１２を用いて、サーバ２が実行するデータ削除処理の流れを説明する。図１２は、サーバが実行するデータ削除処理の流れを説明するためのフローチャートである。まず、サーバ２は、削除要求元のクライアントからメタ情報ＩＤを受信する（ステップＳ６０１）。このような場合には、サーバ２は、削除要求元のクライアントの認証を行い（ステップＳ６０２）、認証が成功したか否かを判別する（ステップＳ６０３）。
【０１１５】
そして、サーバ２は、削除要求元のクライアントの認証に成功した場合は（ステップＳ６０３肯定）、メタ情報記憶部１１が記憶する各情報のうち、受信したメタ情報ＩＤと対応付けられた保存数を１減算し、受信したメタ情報ＩＤと対応付けられた保存リストから、削除要求元のクライアントを示すユーザＩＤを削除する（ステップＳ６０４）。次に、サーバ２は、受信したメタ情報ＩＤと対応付けられた保存数が「０」であるか否かを判別し（ステップＳ６０５）、保存数が「０」である場合には、受信したメタ情報ＩＤをｋｅｙとするデータを実データ記憶部１０から削除する（ステップＳ６０６）。
【０１１６】
また、サーバ２は、受信したメタ情報ＩＤが格納されたエントリをメタ情報記憶部１１から削除する（ステップＳ６０７）。そして、サーバ２は、保存情報ユーザデータベース１２にアクセスし、削除要求元のクライアントを示すユーザＩＤと対応付けられたメタ情報ＩＤリストから、ステップＳ６０１にて受信したメタ情報ＩＤを削除する（ステップＳ６０８）。その後、サーバ２は、削除要求元のクライアントと対応付けられた課金情報を更新し（ステップＳ６０９）、処理を終了する。
【０１１７】
一方、サーバ２は、削除要求元のクライアントを認証できなかった場合は（ステップＳ６０３否定）、エラーを削除要求元のクライアントに返し（ステップＳ６１０）、処理を終了する。また、サーバ２は、受信したメタ情報ＩＤと対応付けられた保存数が「０」ではない場合は（ステップＳ６０５）、処理を終了する。
【０１１８】
次に、図１３を用いて、アプリケーション２１が新たなデータの書き込みを行う際に、クライアント４が実行する処理の流れについて説明する。図１３は、データ書き込み時にクライアントが実行する処理の流れを説明するためのフローチャートである。例えば、クライアント４は、アプリケーション２１が新たなデータを作成すると（ステップＳ７０１）、ファイルシステム２０にデータの書き込みを行う（ステップＳ７０２）。そして、クライアント４は、メタ情報管理部２２に新たなファイルＩＤを有するエントリを作成し、メタ情報ＩＤ、プロパティ情報、およびアクセス情報を格納し（ステップＳ７０３）、処理を終了する。
【０１１９】
次に、図１４を用いて、アプリケーション２１がデータの読み出しを行う際にクライアント４が実行する処理の流れについて説明する。図１４は、データ読み出し時にクライアントが実行する処理の流れを説明するためのフローチャートである。まず、アプリケーション２１がデータの読み出しを実行すると（ステップＳ８０１）、クライアント４は、メタ情報管理部２２にアクセスし、読み出し対象のデータを示すデータＩＤと対応付けられた預け情報が「○」であるか否かを判別する（ステップＳ８０２）。
【０１２０】
そして、クライアント４は、預け情報が「○」ではない場合は（ステップＳ８０２否定）、ファイルシステム２０から読み出し対象のデータを読み出す（ステップＳ８０３）。一方、クライアント４は、預け情報が「○」である場合は（ステップＳ８０２肯定）、データ取得処理を実行する（ステップＳ８０４）。具体的には、クライアント４は、サーバ２にデータ取得要求を送信することで、サーバ２に図１１の処理を実行させる。
【０１２１】
その後、クライアント４は、ファイルシステム２０から読み出したデータ、又はサーバ２から受信したデータをアプリケーションに渡し（ステップＳ８０５）、メタ情報管理部２２に読み出し対象のデータを示すメタ情報ＩＤと対応付けて記憶されたアクセス情報を更新し（ステップＳ８０６）、処理を終了する。
【０１２２】
次に、図１５を用いて、アプリケーション２１がデータの更新を行う際にクライアント４が実行する処理の流れについて説明する。図１５は、データ更新時にクライアントが実行する処理の流れを説明するためのフローチャートである。まず、アプリケーション２１がファイルの更新を実行すると（ステップＳ９０１）、クライアント４は、メタ情報管理部２２にアクセスし、更新対象のデータを示すデータＩＤと対応付けられた預け情報が「○」であるか否かを判別する（ステップＳ９０２）。
【０１２３】
そして、クライアント４は、預け情報が「○」である場合は（ステップＳ９０２肯定）、データ取得処理を実行し（ステップＳ９０３）、取得したデータを更新する（ステップＳ９０４）。その後、クライアント４は、更新前のデータを示すメタ情報ＩＤを用いて、データ削除処理を実行する（ステップＳ９０５）。このような場合には、サーバ２が図１２に示す処理を実行することとなる。
【０１２４】
一方、クライアント４は、預け情報が「○」ではない場合は（ステップＳ９０２否定）、ファイルシステム２０から読み出したデータを更新する（ステップＳ９０６）。そして、クライアント４は、ステップＳ９０４、またはステップＳ９０６にて更新したデータをファイルシステム２０に書き込む（ステップＳ９０７）。その後、クライアント４は、更新したデータについての新たなエントリをメタ情報管理部２２に追加し、メタ情報管理部２２を更新し（ステップＳ９０８）、処理を終了する。
【０１２５】
次に、図１６を用いて、アプリケーション２１がデータの削除を行う際にクライアント４が実行する処理の流れについて説明する。図１６は、データ削除時にクライアントが実行する処理の流れを説明するためのフローチャートである。まず、アプリケーション２１がデータの削除を実行すると（ステップＳ１００１）、クライアント４は、メタ情報管理部２２にアクセスし、削除対象のデータを示すデータＩＤと対応付けられた預け情報が「○」であるか否かを判別する（ステップＳ１００２）。
【０１２６】
そして、クライアント４は、預け情報が「○」である場合は（ステップＳ１００２肯定）、データ削除処理を実行する（ステップＳ１００３）。具体的には、クライアント４は、サーバ２にデータ削除要求を送信することで、サーバ２に図１２の処理を実行させる。一方、クライアント４は、預け情報が「○」ではない場合は（ステップＳ１００２否定）、ファイルシステム２０から削除対象のデータを削除する（ステップＳ１００４）。
その後、クライアント４は、削除対象のデータを示すメタ情報ＩＤを有するエントリをメタ情報管理部２２から削除し（ステップＳ１００５）、処理を終了する。
【０１２７】
［実施例１の効果］
上述したように、クライアント４は、クライアント４〜６から預かったデータを保管するサーバ２から、ファイルシステム２０が記憶するデータをサーバ２が預かる際に発生する時値を取得する。そして、クライアント４は、取得した時価に応じて、ファイルシステム２０が記憶するデータからサーバ２に預けるデータを選択する。このため、クライアント４は、利用者にとって最小のコストでデータの保管を行うことができる。
【０１２８】
また、クライアント４は、ファイルシステム２０が記憶する各データに対するアクセス頻度を監視し、監視したアクセス頻度と時価とに応じ、データをサーバ２に預けた際の効率性を評価する。その後、クライアント４は、各データに対する効率性の評価結果に応じて、サーバ２に預けるデータを選択する。このため、クライアント４は、ネットワークシステム１におけるネットワークトラフィックの増加を抑えることができる。
【０１２９】
すなわち、クライアント４は、アクセス頻度が低いデータをサーバ２に預けた場合は、ネットワークシステム１におけるネットワークトラフィックの増加を抑えることができる。この結果、ネットワークシステム１は、同じ設備でより多くの利用者に対応することができ、サービス運営者、および利用者に対して要求するコストを削減することができる。
【０１３０】
また、クライアント４は、効率性の評価結果が高いデータから順に、複数のデータを、データを預けた際の時価の合計が所定の値以下となるように選択する。このため、クライアント４は、利用者があらかじめ設定したルール（ポリシ）に従って、クライアント４が記憶するデータをサーバ２に自動で預けることができる。なお、ルールには、月額１００円以下で、１週間以上アクセスしていないデータを可能な限りサーバ２に預けるといった料金的、時期的なルールを適用することができ、また、預けるデータのデータ容量や預けるデータの種類を限定するルールを適用することもできる。
【０１３１】
また、クライアント４は、各データについて、同一のデータを預けたクライアントの数と、データの容量とに応じて変動する時価をサーバ２から取得する。このためクライアント４は、より多くのクライアントが預けているデータを優先的にサーバ２へ預けるので、利用者に対するコストをより削減することができる。
【０１３２】
また、サーバ２は、１または複数のクライアント４〜６から預かったデータを記憶する。また、サーバ２は、記憶した各データと同一のデータを預けたクライアントの数を計数する。そして、サーバ２は、計数したクライアントの数に応じて、データを記憶する際の時価を算出し、クライアント４〜６に対して算出した時価を通知する。このため、サーバ２は、各クライアント４〜６に対して、同一のデータを優先的に預けるようインセンティブを設けることができる結果、重複保管を効率的に行うことができる。
【０１３３】
（他の実施形態）
これまで第１の実施形態について説明したが、開示する発明は上述した実施形態以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では他の実施形態について説明する。
【０１３４】
（１）サーバ２、およびクライアント４について
上述したサーバ２は、実データ記憶部１０、メタ情報記憶部１１、保存情報ユーザデータベース１２を有していた。しかし、実施例はこれに限定されるものではなく、例えば、実データ記憶部１０、メタ情報記憶部１１、保存情報ユーザデータベース１２は、同一の記憶装置内に記憶されたデータベースであってもよい。また、図示したサーバ２、クライアント４の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【０１３５】
すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、フィルタファイルシステム２３と監視エージェント２４とを統合してもよい。さらに、各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１３６】
また、第１の実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。  
【０１３７】
（２）分散について
上述した第１の実施形態では、単一の筐体内にサーバ２の全ての機能を備えることとした。しかしながら、第１の実施形態は、これに限定されるものではなく、例えば、サーバ２が有する各機能は、分散させることが可能である。例えば、サーバ２の各機能は、複数のサーバ装置が協調して実現させるものであってもよく、サーバ２をいわゆるクラウドシステム上における仮想的なサーバとして動作させてもよい。
【０１３８】
また、サーバ２の各機能を分散させた場合は、例えば、保存情報ユーザデータベース１２が記憶するデータは、ユーザごと、すなわちエントリごとに異なる記憶装置が記憶してもよい。また、実データ記憶部１０が記憶するデータは、対応付けられたｋｅｙおよびｖａｌｕｅごとに異なる記憶装置が記憶してもよく、メタ情報記憶部１１が記憶する情報は、メタ情報ＩＤごと、すなわちエントリごとに異なる記憶装置が記憶してもよい。
【０１３９】
（３）利用者のプライバシーについて
ネットワーク上のストレージサーバにデータを保管する場合は、クライアントのプライバシーを担保するため、データを暗号化するのが一般的である。しかし、それぞれ異なる暗号鍵で暗号化されたデータは、元のデータが同一のデータであっても、同一のデータと識別することができない。このため、異なる暗号鍵で暗号化された同一データの重複保管を回避することができない。なお、同一のデータを同一の暗号鍵で暗号化した場合は、利用者のプライバシーを担保することができない。
【０１４０】
しかしながら、上述した第１の実施形態において説明したストレージシステム１は、任意のセキュリティシステムと組み合わせて実施することができる。例えば、ストレージシステム１は、Ｃｏｎｖｅｒｇｅｎｔ  Ｅｎｃｒｙｐｔｉｏｎにより演算を行ったデータを用いることで、データ内容をサービス運用者に対して隠すことができる。なお、Ｃｏｎｖｅｒｇｅｎｔ  Ｅｎｃｒｙｐｔｉｏｎにおける最初のハッシュ関数の計算と、メタ情報ＩＤの計算は同一の計算内容となるため、サーバ２、およびクライアント４における計算量を削減することができる。
【０１４１】
（４）プログラム
また、上記実施形態において説明したクライアント４が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施例１に係るクライアント４が実行する処理をコンピュータが実行可能な言語で記述したストレージプログラムを作成することもできる。この場合、コンピュータがストレージプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるストレージプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたストレージプログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図５に示したクライアント４と同様の機能を実現するストレージプログラムを実行するコンピュータの一例を説明する。
【０１４２】
図１７は、ストレージプログラムを実行するコンピュータを示す図である。図１７に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【０１４３】
メモリ１０１０は、図１７に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１７に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１７に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。
【０１４４】
ここで、図１７に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記のストレージプログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。
【０１４５】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、各手順を実行する。
【０１４６】
なお、ストレージプログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、ストレージプログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１４７】
これまでいくつかの実施形態を説明したが、本願が開示する技術はこれらの実施形態に限定されるものではない。すなわち、これらの実施形態は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
【０１４８】
例えば、各装置の分散・統合の具体的形態（例えば、図５の形態）は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、データ送受信部２６と仮想送信部部２７とを一つの部として統合してもよい。
【０１４９】
また、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともできる。例えば、図５における設定部２５が発揮する機能は手動で発揮するものとしてもよい。
【０１５０】
また、認証部１７、２８をサーバ２、クライアント４の外部装置としてネットワーク経由で接続し、例えばＯＡｕｔｈ等のネットワーク上における認証をおこなうこととしてもよい。
【０１５１】
これらの実施例やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１５２】
１  ストレージシステム
２  サーバ
３  ネットワーク
４、５、６  クライアント
１０  実データ記憶部
１１  メタ情報記憶部
１２  保存情報ユーザデータベース
１３  時価演算部
１４  応答部
１５、２６  データ送受信部
１６  仮想受信部
１７、２８  認証部
２０  ファイルシステム
２１  アプリケーション
２２  メタ情報管理部
２３  フィルタファイルシステム
２４  監視エージェント
２５  設定部
２７  仮想送信部
【図１】
2014085882.tif 000003
【図２】
2014085882.tif 000004
【図３】
2014085882.tif 000005
【図４】
2014085882.tif 000006
【図５】
2014085882.tif 000007
【図６】
2014085882.tif 000008
【図７】
2014085882.tif 000009
【図８】
2014085882.tif 000010
【図９】
2014085882.tif 000011
【図１０】
2014085882.tif 000012
【図１１】
2014085882.tif 000013
【図１２】
2014085882.tif 000014
【図１３】
2014085882.tif 000015
【図１４】
2014085882.tif 000016
【図１５】
2014085882.tif 000017
【図１６】
2014085882.tif 000018
【図１７】
2014085882.tif 000019