(57)【要約】【課題】  クライアントから詳細な情報を特定しなくてもファイルを取得可能とするストレージシステム及びファイル管理装置を提供する。【解決手段】  クライアント１０は、ファイル名と該ファイルの保存日時を示す情報とを含んだファイルの読み出し要求を送信する読み出し要求部４００を備え、ＷＯＲＭアーカイブサーバ２０は、クライアント１０から受信した読み出し要求からファイル名とファイル保存日時を示す情報とを抽出し、前記抽出された情報で示される保存日時より前に記録された前記ファイル名のファイルのうち最新のものを、ストレージ３０に記録されているファイルから特定するファイル特定部７００と、当該特定されたデータを、要求を送信したクライアント１０に送信するファイル送信部２３と、を備えた。【選択図】      図１
2005309852.tif 000002
【特許請求の範囲】
【請求項１】
ファイルの書き込み及び／又は読み出しを要求するクライアントと、
前記クライアントにネットワークを介して接続され、前記クライアントからの要求を処理するアーカイブサーバと、
前記アーカイブサーバに接続され、ファイルを記録するストレージと、
前記クライアントに接続された記憶装置と、を備えたストレージシステムであって；
前記クライアントは、少なくとも一つ以上のクライアントプロセスと、アーカイブクライアントライブラリと、を備え、
前記クライアントプロセスは、ファイル識別子、又は、ファイル名とアーカイブ日時との組、の少なくとも一方を含んだファイル読み出し要求を前記アーカイブサーバに対して送信し；
前記アーカイブサーバは、
前記クライアントプロセスから送信された前記読み出し要求を受信すると、該読み出し要求に含まれる前記ファイル識別子、又は、ファイル名とアーカイブ日時との組、の少なくとも一方から、前記アーカイブサーバにあらかじめ記憶されているファイル管理表を参照して、該読み出し要求に係るファイルを特定し、
該特定されたファイルを前記ストレージから取得して、前記クライアントプロセスに送信し；
前記アーカイブクライアントライブラリは、
該ファイルのアーカイブ日時を前記アーカイブサーバから送信されたファイルから抽出すると共に前記ファイルを要求したクライアントプロセスの識別子を取得し、
該抽出されたアーカイブ日時及び取得したプロセス識別子の組を保存日時管理表として前記記憶装置に記憶し、
前記アーカイブサーバから取得したファイルに関連付けられたファイルのファイル名を含むファイル読み出し要求を受け取ると、自身のプロセス識別子を用いて保存日時管理表に記憶されたアーカイブ日時を取得し、当該取得したアーカイブ日時を前記ファイル読み出し要求に添付し、
当該ファイル読み出し要求を前記アーカイブサーバに送信し；
前記アーカイブサーバは、
前記クライアントプロセスから送信された前記読み出し要求を受信すると、該読み出し要求に含まれるファイル名とアーカイブ日時とを取得し、
前記取得したアーカイブ日時より前に記録された前記ファイル名で示されるファイルのうち最新のものを、前記ストレージに記録されているファイルから特定し、
前記アーカイブサーバに記憶されているファイル管理表を参照して、該特定されたファイルを前記ストレージから取得して前記クライアントプロセスに送信することを特徴とするストレージシステム。
【請求項２】
ファイルの書き込み及び／又は読み出しを要求するクライアントと、
前記クライアントにネットワークを介して接続され、前記クライアントからの要求を処理するアーカイブサーバと、
前記アーカイブサーバに接続され、ファイルを記録するストレージと、
前記クライアントに接続された記憶装置と、を備えたストレージシステムであって；
前記クライアントは、少なくとも一つ以上のクライアントプロセスと、アーカイブクライアントライブラリと、を備え、
前記クライアントプロセスは、ファイル識別子、又は、ファイル名とアーカイブ日時との組、の少なくとも一方を含んだファイル読み出し要求を、前記アーカイブサーバに対して送信し；
前記アーカイブサーバは、
前記クライアントプロセスから送信された前記読み出し要求を受信すると、該読み出し要求に含まれる前記ファイル識別子、又は、ファイル名とアーカイブ日時との組、の少なくとも一方から、前記アーカイブサーバにあらかじめ記憶されているファイル管理表を参照して、該読み出し要求に係るファイルを特定し、
該特定されたファイルのアーカイブ日時と、前記クライアントプロセスからの要求に含まれるコネクション識別子との組を保存日時管理表として記憶し、
該特定されたファイルを前記ストレージから取得して、前記クライアントプロセスに送信し；
前記クライアントプロセスは、前記アーカイブサーバから取得したファイルに関連付けられたファイルのファイル名を含んだファイル読み出し要求を、前記アーカイブサーバに送信し；
前記アーカイブサーバは、
前記クライアントプロセスから送信された前記読み出し要求を受信すると、該読み出し要求に含まれるファイル名と、該読み出し要求のコネクション識別子とを取得し、
前記保存日時管理表に記憶された、前記取得したコネクション識別子に対応するアーカイブ日時を取得し、
前記受信した読み出し要求に該取得したアーカイブ日時を添付し、
前記添付したアーカイブ日時よりも前に記録された前記ファイル名で示されるファイルのうち最新のものを、前記ストレージに記録されているファイルから特定し、
前記アーカイブサーバに記憶されているファイル管理表を参照して、該特定されたファイルを前記ストレージから取得して前記クライアントプロセスに送信することを特徴とするストレージシステム。
【請求項３】
ファイルの書き込み及び／又は読み出しを要求するクライアントと、
前記クライアントに接続され、前記クライアントからの要求を処理するファイル管理装置と、
前記ファイル管理装置に接続され、ファイルを記録するストレージと、を備えるストレージシステムにおいて、
前記クライアントは、ファイル名と該ファイルの保存日時を示す情報とを含んだファイルの読み出し要求を送信する読み出し要求部を備え、
前記ファイル管理装置は、
前記クライアントから受信した読み出し要求からファイルの保存日時を示す情報とファイル名とを抽出し、前記抽出された情報で示される保存日時より前に記録された前記ファイル名のファイルのうち最新のものを、前記ストレージに記録されているファイルから特定するファイル特定部と、
当該特定されたファイルを、前記要求を送信したクライアントに送信するファイル送信部と、を備えることを特徴とするストレージシステム。
【請求項４】
前記読み出し要求部は、前記クライアントが当該読み出し要求を送信する前に取得したファイルの保存日時を示す情報を含んだ読み出し要求を送信することを特徴とする請求項３に記載のストレージシステム。
【請求項５】
前記クライアントでは一つ以上のクライアントプロセスが稼働しており、
前記読み出し要求部は、前記プロセスが前記読み出し要求を送信する前に取得したファイルの保存日時を示す情報を含んだ読み出し要求を送信することを特徴とする請求項３に記載のストレージシステム。
【請求項６】
前記クライアントでは一つ以上のクライアントプロセスが稼働しており、
前記クライアントは、
ファイル管理表を記憶する記憶装置と、
前記読み出し要求にファイル保存日時を添付する日時添付部と、を備え、
前記記憶装置には、前記プロセスが当該読み出し要求を送信する前に取得したファイルの保存日時と前記プロセスの識別子との組が保存日時管理表として記憶され、
前記読み出し要求部は、ファイル名を含んだファイルの読み出し要求を送信し、
前記日時添付部は、前記ファイル保存日時管理表から取得した、該読み出し要求を送信するプロセスの識別子に対応する前記ファイルの保存日時を該読み出し要求に添付することを特徴とする請求項３に記載のストレージシステム。
【請求項７】
ファイルの書き込み及び／又は読み出しを要求するクライアントと、
前記クライアントに接続され、前記クライアントからの要求を処理するファイル管理装置と、
前記ファイル管理装置に接続され、ファイルを記録するストレージと、を備えるストレージシステムにおいて、
前記クライアントは、ファイル名を含んだファイルの読み出し要求を送信する読み出し要求部を備え、
前記ファイル管理装置は、
前記読み出し要求を送信する前に、前記クライアントが取得したファイルの保存日時と、前記読み出し要求に関連する識別子とを対応させて記録する保存日時記録部と、
前記クライアントから送信されたファイルの読み出し要求を受信する受信部と、
前記読み出し要求に含まれるファイル名と当該読み出し要求に関連する識別子とを取得し、前記取得した識別子に対応する保存日時を前記保存日時記録部から取得し、前記読み出し要求に該保存日時を添付する日時添付部と、
前記取得した保存日時より前に記録された前記ファイル名のファイルのうち最新のものを、前記ストレージに記録されているファイルから特定するファイル特定部と、
当該特定されたファイルを、前記要求を送信したクライアントに送信するファイル送信部と、を備えることを特徴とするストレージシステム。
【請求項８】
前記読み出し要求に関連する識別子は、前記クライアントが前記ファイル管理装置に対する要求を送信する際に確立されるコネクションの識別子であることを特徴とする請求項７に記載のストレージシステム。
【請求項９】
ファイルの書き込み及び／又は読み出しを要求するクライアントと、
前記クライアントに接続され、前記クライアントからの要求を処理するファイル管理装置と、
前記ファイル管理装置に接続され、ファイルを記録するストレージと、を備えるストレージシステムにおいて、
前記クライアントは、ファイル名及び前記クライアントによる指定日時を示す情報を含んだファイルの読み出し要求を送信する読み出し要求部を備え、
前記ファイル管理装置は、
前記クライアントから送信されたファイルの読み出し要求を受信する受信部と、
前記読み出し要求に含まれるファイル名及び指定日時を取得し、前記取得した指定日時よりも前に記録された前記ファイル名のファイルのうち最新のものを、前記ストレージに記録されているファイルから特定するファイル特定部と、
前記特定されたファイルを、前記要求を送信したクライアントに送信するファイル送信部と、を備えることを特徴とするストレージシステム。
【請求項１０】
ファイルを記録するストレージに接続され、クライアントからのファイルの書き込み及び／又は読み出しの要求を処理するファイル管理装置において、
前記クライアントから送信されたファイルの読み出し要求を受信する受信部と、
前記読み出し要求に含まれるファイル名と該ファイルの保存日時を示す情報とを抽出し、前記抽出された情報で示される日時より前に記録された前記ファイル名のファイルのうち最新のものを、前記ストレージに記録されているファイルから特定するファイル特定部と、
前記特定されたファイルを、前記要求を送信したクライアントに送信するファイル送信部と、を備えることを特徴とするファイル管理装置。
【請求項１１】
ファイルを記録するストレージに接続され、クライアントからの前記ファイルの書き込み又は読み出しの要求を処理するファイル管理装置において、
前記クライアントから送信されたファイルの読み出し要求を受信する受信部と、
前記読み出し要求を送信する前に、前記クライアントが取得したファイルの保存日時と前記読み出し要求のコネクション識別子とを対応させて記録する保存日時記録部と、
前記読み出し要求に含まれるファイル名とコネクション識別子とを取得し、前記取得したコネクション識別子に対応する保存日時を前記保存日時記録部から取得し、前記読み出し要求に該保存日時を添付する日時添付部と、
前記取得した保存日時よりも前に記録された前記ファイル名のファイルのうち最新のものを、前記ストレージに記録されているファイルから特定するファイル特定部と、
前記特定されたファイルを、前記要求を送信したクライアントに送信するファイル送信部と、を備えることを特徴とするファイル管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントからアクセスされるファイルを格納するストレージシステムに関し、特に、クライアントから詳細な情報を特定しなくてもファイルを取得可能とするストレージシステム及びファイル管理装置に関する。
【背景技術】
【０００２】
電子データをストレージ等の記憶装置に保持していく上で、電子データの保存期間に関する問題がある。データの量が増えると、ストレージに要求される容量は増え、コストが高くなる。そこで、重要度が高いデータは、回線帯域が大きく高速なストレージに記録し、重要度が低いデータは、比較的低速なストレージに記録する。このような回線帯域が大きく高速なストレージはコストが高く、比較的低速なストレージはコストが低い。また、データの保存日（アーカイブ日時）に基づいて、新しい高いデータ（アーカイブされてから時間がそれほど経過していないデータ）は高速なストレージに記録し、新鮮度が低いデータ（アーカイブされてから所定の時間が経過したデータ）は低速なストレージに記録する。このようなデータの管理手法は、データライフサイクルマネジメント（ＤＬＣＭ：Data LifeCycle Management）と呼ばれる。
【０００３】
このデータライフサイクルマネージメント（ＤＬＣＭ）におけるファイルの長期保存を考慮したファイル保存の仕組みとして、保存期限内のファイルの変更・消去を管理するＷＯＲＭ（Write Once Read Many）アーカイブが知られている。
【０００４】
例えば、ＷＯＲＭアーカイブサーバによって記憶されるＷＯＲＭファイルは、一意な識別子により管理され、ファイル毎に、識別子、ストレージ内格納位置、ファイル属性が記録されるＷＯＲＭアーカイブが知られている（例えば、非特許文献１参照。）。
【０００５】
また、ＷＯＲＭアーカイブサーバ内のファイルは、クライアント上のパス名と同様のパス名でファイルが管理されるＷＯＲＭアーカイブが知られている（例えば、非特許文献２、参照。）。
【０００６】
ＷＯＲＭファイルを読み出すクライアントは、ＷＯＲＭアーカイブクライアントライブラリを介し、識別子又はファイル名とアーカイブ日時との組を指定することで、ＷＯＲＭファイルを読み出すことができる。
【０００７】
また、非特許文献１では、クライアントが読み出した後に変更したＷＯＲＭファイルを再度アーカイブする際は、別の識別子を持ったＷＯＲＭファイルとしてアーカイブされる。
【非特許文献１】EMC Corporation、“EMC Centera”、［online］、インターネット＜ＵＲＬ：http://www.emc.com/pdf/products/centera/centera_guide.pdf＞
【非特許文献２】Network Appliance、“NetApp NearStore”、［online］、インターネット、＜ＵＲＬ：http://www.netapp.com/products/nearstore/＞
【発明の開示】
【発明が解決しようとする課題】
【０００８】
クライアントからのＷＯＲＭファイルへのアクセス（例えば、読み出し）には、毎回、識別子又はパス名と特定アーカイブ日時との組を指定する必要がある。しかし、読み出したＷＯＲＭファイルを利用するアプリケーションは、そのファイルと関連のあるファイルを読み出す際、関連ファイルのファイル名（パス名を含む）は知ることができるが、アーカイブ日時や識別子は、ＷＯＲＭアーカイブサーバ側で管理されるため、通常知ることはできない。したがって、ＷＯＲＭアーカイブサーバへのユーザの仲介、又は、クライアントのアプリケーションの改造などを行わなければ、関連ファイルを読み出すことができない。
【０００９】
例えば、クライアントが、ＷＯＲＭアーカイブサーバから読み出した、ＷＯＲＭファイルＡについて考える。このＷＯＲＭファイルＡの中にリンクされているファイルがあり、そのリンク先ファイルＢを参照する場合は、クライアントはファイルＢのアーカイブ日時又は識別子を知ることはできない。したがって、ファイルＡをアーカイブした時点でのファイルＢを読み出して復元することができない。
【００１０】
本発明はこのような問題点に鑑みてなされたものであり、クライアント側から必要な情報（識別子、アーカイブ日時等）を指定しなくても、ＷＯＲＭファイルにアクセスすることが可能な、アーカイブサーバ及びストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、処理単位（クライアントのプロセス、サーバとのコネクションなど）毎に、あるファイルの読み出した際に、そのファイルのアーカイブ日時を記憶する。以降、そのファイルに関連づけられているファイルを読み出すときは、まず、ファイル名のみを指定し、処理単位ごとに記憶されたアーカイブ日時を、ファイル名に添付して、ファイルの読み出しを要求する。
【発明の効果】
【００１２】
本発明によると、ある１つのファイルを読み出すことで、関連するファイルのアーカイブ日時を指定することなく、当該ファイルに関連するファイルを読み出すことができる。
【発明を実施するための最良の形態】
【００１３】
以下に本発明の実施の形態を図面に基づいて説明する。
【００１４】
図１は、本発明の第１の実施の形態のストレージシステムの構成を示すブロック図である。
【００１５】
第１の実施の形態のストレージシステムは、クライアントノード１０、ＷＯＲＭアーカイブサーバ２０、ストレージ３０、及びクライアントノード１０とＷＯＲＭアーカイブサーバ２０を接続するネットワーク４０によって構成されている。
【００１６】
クライアントノード１０は、ＷＯＲＭアーカイブサーバ２０に対して、データ（ＷＯＲＭファイル）の書き込み（アーカイブ）又は読み出しを要求する計算機であり、ネットワーク４０を介してＷＯＲＭアーカイブサーバ２０に接続されている。クライアントノード１０は、ＣＰＵ１１、メモリ１２、ネットワークインターフェース（Ｉ／Ｆ）１３、及びディスク装置インターフェース（Ｉ／Ｆ）１４等によって構成されている。
【００１７】
メモリ１２には、クライアントプロセス１００、ファイルＩＤ（ＦＩＤ）／ファイル名及びアーカイブ日時Ｉ／Ｆ２００、ファイル名Ｉ／Ｆ２１０、ＷＯＲＭアーカイブクライアントライブラリ４００、及び日時添付モジュール４１０が記憶されている。これらはソフトウェアとしてメモリ上の空間に割り当てられ、ＣＰＵ１１によって実行される。
【００１８】
クライアントプロセス１００は、ＷＯＲＭアーカイブサーバ２０に対してＷＯＲＭファイルのアクセスを要求する。クライアントプロセス１００は、クライアントノード１０において複数動作している。
【００１９】
ＦＩＤ／ファイル名及びアーカイブ日時インターフェース（Ｉ／Ｆ）２００は、ファイルＩＤ、又は、ファイル名とアーカイブ日時との組、の少なくとも一方を指定してＷＯＲＭファイルの読み出しを要求する。ファイル名インターフェース（Ｉ／Ｆ）２１０は、ファイル名のみを指定してＷＯＲＭファイルの読み出しを要求する。
【００２０】
ＷＯＲＭアーカイブクライアントライブラリ４００は、ＷＯＲＭアーカイブサーバ２０に対して要求を送信する。日時添付モジュール４１０は、ＷＯＲＭアーカイブクライアントライブラリ４００に含まれ、ファイル名インターフェース（Ｉ／Ｆ）２１０からファイル名のみを指定したＷＯＲＭファイルの読み出し要求があった際に、ファイル名に対応するアーカイブ日時（日付又は時間の少なくとも一方を示す情報）を付加する。
【００２１】
ネットワークＩ／Ｆ１３は、ネットワーク４０とのインターフェースとして動作する。すなわち、ネットワークＩ／Ｆ１３は、データをネットワーク４０を経由してＷＯＲＭアーカイブサーバ２０に送信する送信部として機能し、また、ＷＯＲＭアーカイブサーバ２０から送られたデータを受信する受信部として機能する。
【００２２】
ディスク装置Ｉ／Ｆ１４は、ディスク装置１５に対するインターフェース（例えば、ＳＣＳＩ：Small Computer System Interface、ＦＣ：Fibre Channel、ｉＳＣＳＩ：internet SCSI等）として動作する。
【００２３】
また、クライアントノード１０に接続されているディスク装置１５には、各クライアントプロセスのプロセスＩＤと保存日情報（アーカイブ情報）とが対応づけられたプロセスごとファイル保存日時管理表５００が保持されている。
【００２４】
なお、プロセスごとファイル保存日時管理表５００は、図１に示すようにクライアントノード１０に接続されたディスク装置１５に保持してもよいし、クライアントノード１０内のメモリ１２に保持してもよい。
【００２５】
ＷＯＲＭアーカイブサーバ２０は、ストレージ３０に記録されているＷＯＲＭファイルを管理するファイル管理装置である。
【００２６】
ＷＯＲＭアーカイブサーバ２０、ネットワーク４０を介してクライアントノード１０に接続されており、クライアントノード１０からの要求を受けて、当該要求のファイルをストレージ３０から読み出し、要求元のクライアントノード１０に返す。
【００２７】
ＷＯＲＭアーカイブサーバ２０は、ＣＰＵ２１、メモリ２２、ネットワークインターフェース（Ｉ／Ｆ）２３、ストレージインターフェース（Ｉ／Ｆ）２４等から構成されている。
【００２８】
メモリ２２には、保存日時通知モジュール６００、ファイル特定モジュール７００、ファイル保存日時管理表８００等が含まれている。これらはソフトウェアとしてメモリ上の空間に割り当てられ、ＣＰＵ２１によって実行される。
【００２９】
保存日時通知モジュール６００は、クライアントノードによってアーカイブされたファイルの保存日情報を取得して、ファイル保存日時管理表に記録する。また、クライアントノードによってファイルの読み出しが行われた場合は、当該ファイルの保存日情報をファイル保存日管理表から取得する。
【００３０】
ファイル特定モジュール７００は、ファイル名と当該ファイルの保存日情報との組からファイル保存日管理表を検索し、ストレージ３０における当該ファイルの格納場所を取得する。  ネットワークＩ／Ｆ２３は、クライアントノード１０に備えられているネットワークＩ／Ｆ１３と同様に、ネットワーク４０とのインターフェースとして動作する。すなわち、ネットワークＩ／Ｆ２３は、データをネットワーク４０を経由してクライアントノード１０に送信する送信部として機能し、また、クライアントノード１０から送られたデータを受信する受信部として機能する。
【００３１】
ストレージＩ／Ｆ２４は、ストレージ３０とのインターフェースとして動作する。
【００３２】
ストレージ３０は、データの転送に適するプロトコル（例えば、ＳＣＳＩ：Small Computer System Interface、ＦＣ：Fibre Channel、ｉＳＣＳＩ：internet SCSI、ＮＦＳ：Netowork File System、ＣＩＦＳ：Common Internet File System等）によって通信可能にＷＯＲＭアーカイブサーバ２０と接続され、ＷＯＲＭファイルを保存する。ＷＯＲＭアーカイブサーバ２０には一つ以上のストレージ３０が接続される。このストレージ３０とＷＯＲＭアーカイブサーバ２０とは直接接続されていても、ネットワークによって接続されていてもよい。
【００３３】
図２は、ＷＯＲＭアーカイブサーバ２０に備えられるファイル保存日時管理表８００の一例を示す説明図である。
【００３４】
ファイル保存日時管理表８００は、ストレージ３０に記録されているＷＯＲＭファイルを特定するための情報を一覧として記録するものである。
【００３５】
ファイルＩＤ（ＦＩＤ）は、ＷＯＲＭアーカイブサーバ２０によって各ＷＯＲＭファイルに一意に割り振られた識別子である。クライアントパス名は、クライアントノード１０側で管理されているファイルのパス名及びファイル名である。ストレージパス名は、ストレージ３０に実際に記録されているＷＯＲＭファイルのパス名及びファイル名である。例えば、ファイルＩＤが「００１」であるファイルは、クライアントノード１０からは「／ａａ／」というパスにある「ａ」というファイルとして管理されている。このファイル「ａ」は、ストレージ３０では、「／Ｓ１／」というパスに、「１」というファイルとして保存されている。アーカイブ日時は当該ファイルがストレージ３０に保存された日時を示す。
【００３６】
ＷＯＲＭファイルは、クライアントノード１０が読み出したファイルに変更を加えて、同一のファイル名で再度アーカイブを行う場合がある。そのため、異なる日時にアーカイブされた同一のファイル名が複数存在する場合がある。クライアントノード１０からＷＯＲＭファイルを読み出す場合には、ファイルＩＤを指定してファイルを読み出す方法、又は、ファイル名（クライアントパス名）とアーカイブ日時とを指定してファイルを読み出す方法がある。ファイルＩＤは各々のファイルに対して一意となるように設定されているので、ファイルＩＤを指定してファイルを読み出すことができる。しかし、ファイル名を指定してファイルを読み出す場合には、アーカイブ日時が異なり同一ファイル名のファイルが複数あるので、アーカイブ日時を特定してファイルを読み出す必要がある。
【００３７】
図３は、クライアントノード１０に接続されているディスク装置１５に記録されているプロセスごとファイル保存日時管理表５００の一例を示す説明図である。
【００３８】
プロセスＩＤは、各クライアントプロセス１００に一意に割り当てられている識別子である。アーカイブ日時５０２は、クライアントプロセス１００が読み出したＷＯＲＭファイルから取得したアーカイブ日時である。
【００３９】
このプロセスごとファイル保存日時管理表５００は、後述するように、クライアントプロセス１００が、ＷＯＲＭアーカイブサーバ２０に対してＷＯＲＭファイルの読み出しを要求するときに、ＷＯＲＭアーカイブクライアントライブラリ４００によって、当該ＷＯＲＭファイルのアーカイブ日時を記録される。そして、当該ＷＯＲＭファイルにリンクされているＷＯＲＭファイルを読み出す際に、日時添付モジュール４１０が、このプロセスごとファイル保存日時管理表５００に記録されたアーカイブ日時を取得してＷＯＲＭアーカイブサーバ２０にファイルの読み出しを要求する。
【００４０】
次に、本発明の第１の実施の形態のストレージシステムの動作を説明する。
【００４１】
図４は、本発明の第１の実施の形態のストレージシステムの処理を示すシーケンス図である。
【００４２】
まず、ＷＯＲＭファイルをＷＯＲＭアーカイブサーバ２０に対して記録（アーカイブ）する処理について説明する。
【００４３】
まずクライアントプロセス１００が、ＷＯＲＭアーカイブサーバ２０に対してファイル（ここでは、「／ｔｅｓｔ」）を保存するアーカイブ要求を送信する（ステップ１０００）。ＷＯＲＭアーカイブサーバ２０は、アーカイブ要求を受信すると、当該ファイルをストレージ３０に書き込む。この際に、当該ファイルのファイルＩＤ、クライアントパス名（／ｔｅｓｔ）、ストレージパス名及びアーカイブ日時をファイル保存日時管理表８００（図２）に登録する。
【００４４】
次に、クライアントプロセス１００が、ストレージ３０に保存されているＷＯＲＭファイル（／ｔｅｓｔ）を読み出す処理について説明する。
【００４５】
クライアントプロセス１００は、ファイルＩＤ／ファイル名及びアーカイブ日時Ｉ／Ｆ２００によって、ストレージ３０に保存されているＷＯＲＭファイル（／ｔｅｓｔ）の読み出し要求をＷＯＲＭアーカイブサーバ２０に対して送信する（ステップ１００１）。ＷＯＲＭアーカイブサーバ２０は、この要求を受信すると、ファイル保存日時管理表８００を参照してストレージパス名を取得して、ストレージ３０におけるファイルの記録箇所を特定して、当該ファイル（「／ｔｅｓｔ」）をストレージ３０から取得する。そして、取得したファイル（「／ｔｅｓｔ」）と共に、ファイルのアーカイブ日時を示す情報をクライアントプロセス１００に対して送信する（ステップ１００２）。
【００４６】
クライアントノード１０に対して送られたファイル及びアーカイブ日時の情報は、まず、ＷＯＲＭアーカイブクライアントライブラリ４００が受信する。ＷＯＲＭアーカイブクライアントライブラリ４００は、まず、受信したアーカイブ日時の情報と、当該ファイルの読み出しを要求したクライアントプロセス１００のプロセスＩＤとを、プロセスごとアーカイブ日時管理表５００（図３）に記録する。そして、受信したファイル（「／ｔｅｓｔ」）を、当該ファイルの読み出しを要求した、クライアントプロセス１００に渡す（ステップ１００３）。
【００４７】
この一連の処理によって、クライアントプロセス１００は、要求したＷＯＲＭファイルを取得できる。
【００４８】
ここで、クライアントプロセス１００が取得したファイル（「／ｔｅｓｔ」）に関連づけられているファイルがあり、その関連づけられたファイルの読み出しが必要になった場合について説明する。ここで、関連づけられたファイルとは、あるファイルからリンクが設定されている他のファイルであり、当該ファイルを使用する際には、この他のファイルに記録されたデータが必要となるものである。具体的には、ＨＴＭＬやＸＭＬにおけるハイパーリンク、ＷｏｒｄやＥｘｃｅｌなどのアプリケーションにおけるＯＬＥオブジェクトデータのリンク、Ｍａｋｅｆｉｌｅにリンクされているソースファイル等が挙げられる。
【００４９】
クライアントプロセス１００は、「／ｔｅｓｔ」に関連づけられたファイル（ここでは「／ａａ／ａ」とする）の読み出し要求を送信する（ステップ１００４）。このとき、クライアントプロセス１００は関連づけされたファイルのファイル名のみを知っており、アーカイブ日時を知らない。よって、クライアントプロセス１００が送信する要求は、ファイル名Ｉ／Ｆ２１０を用いて送信される。
【００５０】
このファイル読み出し要求は、まず、ＷＯＲＭアーカイブクライアントライブラリ４００によって受信される。
【００５１】
ＷＯＲＭアーカイブクライアントライブラリ４００は、このファイル読み出し要求から、ファイル読み出し要求を送信したクライアントプロセス１００のプロセスＩＤを抽出する。そして、プロセスごとファイル保存日時管理表５００を参照して、当該プロセスＩＤと対応するアーカイブ日時を取得する。そして、クライアントプロセス１００が送信したファイル読み出し要求に、取得したアーカイブ日時を添付して、ＷＯＲＭアーカイブサーバ２０に送信する（ステップ１００５）。
【００５２】
ＷＯＲＭアーカイブサーバ２０は、この要求を受信すると、当該要求をファイル特定モジュール７００に送る。ファイル特定モジュール７００は、読み出し要求のあったファイル（／ａａ／ａ）及びアーカイブ日時から、ＷＯＲＭアーカイブサーバ２０によって管理されるファイルを特定する処理（ファイル特定処理）を行う。
【００５３】
ＷＯＲＭアーカイブサーバ２０は、ファイル保存日時管理表８００を参照してストレージパス名を取得して、ストレージ３０におけるファイルの記録箇所を特定して、ファイル特定処理によって特定されたファイル（／ａａ／ａ）をストレージ３０から取得する。そして、取得したファイル（／ａａ／ａ）を、クライアントプロセス１００に対して送信する（ステップ１００６）。
【００５４】
この一連の処理によって、クライアントプロセス１００が、ＷＯＲＭファイルの読み出しを要求する際に、ファイルを特定するための情報（ファイルＩＤ、アーカイブ日時等）を指定しなくても、ファイル名のみを指定することでファイルを取得することが可能となる。
【００５５】
なお、前述したように、クライアントノード１０では複数のクライアントプロセス１００が稼働しているので、ファイルを保存するクライアントプロセス１００と、ファイルを読み出すクライアントプロセス１００とは、必ずしも同じとは限らない。
【００５６】
図５は、前述した図４の処理を、システム構成図に当てはめて表した説明図である。
【００５７】
前述したように、クライアントプロセス１００は、ファイル（「／ｔｅｓｔ」）を予めＷＯＲＭアーカイブサーバ２０に登録しているとする。
【００５８】
クライアントプロセス１００（プロセスＩＤは「１００」とする）が、ＷＯＲＭファイル（「／ｔｅｓｔ／」）の読み出しを要求する場合は、当該ＷＯＲＭファイルのファイルＩＤ（００３）を指定するか、又はファイル名（／ｔｅｓｔ）及びアーカイブ日時（１１／２５／００）の双方を指定して、ＷＯＲＭアーカイブサーバ２０にファイルＩＤ／ファイル名及びアーカイブ日時Ｉ／Ｆ２００を用いてファイルの読み出しを要求する（ステップ１００１）。
【００５９】
ＷＯＲＭアーカイブサーバ２０は、ファイルの読み出し要求を受信すると、ファイル保存日時管理表８００を参照し、読み出し要求のファイルＩＤ又はファイル名及びアーカイブ日時から、ストレージ３０に保存されている当該ＷＯＲＭファイルを特定し、ストレージ３０から当該ＷＯＲＭファイルを読み出す。読み出されたＷＯＲＭファイルは、クライアントプロセス１００に対して送信される（ステップ１００２）。
【００６０】
このとき、ＷＯＲＭアーカイブサーバ２０の保存日時通知モジュール６００は、当該ファイルのアーカイブ日時を示す情報を、ファイル保存日時管理表８００から取得し、ファイルと共にクライアントプロセス１００に送信する（ステップ１００２）。
【００６１】
クライアントノード１０に対して送られたファイル及びアーカイブ日時の情報は、まず、ＷＯＲＭアーカイブクライアントライブラリ４００が受信する。ＷＯＲＭアーカイブクライアントライブラリ４００は、まず、受信したアーカイブ日時の情報（１１／２５／００）と、当該ファイルの読み出しを要求したクライアントプロセス１００のプロセスＩＤ（１００）とを、プロセスごとアーカイブ日時管理表５００に保存する。そして、受信したファイル（／ｔｅｓｔ）を、当該ファイルの読み出しを要求したクライアントプロセス１００に渡す（ステップ１００３）。
【００６２】
ここで、クライアントプロセス１００が取得したファイル（／ｔｅｓｔ）に関連づけられているファイル（／ａａ／ａ）の読み出しを行う場合は、まず、当該ファイル名（／ａａ／ａ）のみを指定したファイルの読み出し要求を送信する（ステップ１００４）。この要求は、ファイル名Ｉ／Ｆ２１０を用いて送信される。
【００６３】
このファイル読み出し要求は、まず、ＷＯＲＭアーカイブクライアントライブラリ４００によって受信される。
【００６４】
時間添付モジュール４１０は、ファイル取得要求を送信したクライアントプロセス１００のプロセスＩＤを取得する。そして、プロセスごとファイル保存日時管理表５００を参照して、当該プロセスＩＤ（「１００」）と対応するアーカイブ日時（「１１／２５／００」）を取得する。そして、クライアントプロセス１００が送信したファイル読み出し要求に、取得したアーカイブ日時を添付して、ＷＯＲＭアーカイブサーバ２０に送信する（ステップ１００５）。
【００６５】
ＷＯＲＭアーカイブサーバ２０は、この要求を受信すると、当該要求をファイル特定モジュール７００に送る。ファイル特定モジュール７００は、読み出し要求のあったファイル（／ａａ／ａ）及びアーカイブ日時（１１／２５／００）から、ＷＯＲＭアーカイブサーバ２０によって管理されるファイルを特定する。そして、ＷＯＲＭアーカイブサーバ２０は、ファイル保存日時管理表８００を参照してストレージパス名を取得して、ファイル特定処理によって特定されたファイル（ＦＩＤ００２の１０／１０／００にアーカイブされた／ａａ／ａ）をストレージ３０から取得する。そして、取得したファイル（／ａａ／ａ）を、クライアントプロセス１００に対して送信する（ステップ１００６）。
【００６６】
図６は、前述したファイル特定処理を示すフローチャートである。
【００６７】
まず、受信したファイル読み出し要求に含まれるファイル名及びアーカイブ日時を抽出し、抽出したアーカイブ日時よりも前の日時にアーカイブされたファイルの中から、抽出したファイル名を検索する（ステップ２００１）。
【００６８】
次に、検索の結果、ファイル名が重複して検索されたか否かを判定する（ステップ２００２）。重複して検索されたと場合は、同じファイル名の複数のファイルが記録されているので、ステップ２００３に移行する。一方、重複して検索されなかった場合は、同じファイル名のファイルは０個又は１個のみが記録されているので、ステップ２００５に移行する。
【００６９】
ステップ２００３では、重複するファイルのうち、読み出し要求から抽出されたアーカイブ日時に最も近いアーカイブ日時のファイルを検索する。そして、検索の結果得られたファイルをＷＯＲＭアーカイブサーバ２０に返す（ステップ２００４）。
【００７０】
一方、ファイル名の重複がなかったと判定した場合は、検索されたファイル数が０よりも大きいか否かを判定する（ステップ２００５）。検索されたファイル数が０よりも大きい（すなわち、ファイル数が１）である場合は、当該ファイルをＷＯＲＭアーカイブサーバ２０に返す。
【００７１】
一方、検索されたファイル名が０以下である（すなわち、ファイルが検索されなかった）場合は、要求したファイルはＷＯＲＭアーカイブサーバ２０の管理するストレージ３０には存在しないとして、その結果をＷＯＲＭアーカイブサーバ２０に返す（ステップ２００６）。
【００７２】
以上のように構成された本発明の第１の実施の形態のストレージシステムでは、クライアントプロセス１００がＷＯＲＭファイルを読み出すときに、ＷＯＲＭアーカイブクライアントライブラリ４００が、当該ＷＯＲＭファイルのアーカイブ日時を取得してプロセスごとアーカイブ日時管理表５００に記録する。そして、クライアントプロセス１００が当該ＷＯＲＭファイルに関連づけられたファイルの読み出しを行う際に、ＷＯＲＭアーカイブクライアントライブラリ４００に含まれる日時添付モジュール４１０が、アーカイブ日時管理表５００を参照し、当該ＷＯＲＭファイルのアーカイブ日時を、ＷＯＲＭファイルに関連づけられたファイルの読み出し要求に添付してＷＯＲＭアーカイブサーバ２０に送信する。ＷＯＲＭアーカイブサーバ２０に含まれるファイル特定モジュール７００は、受信した読み出し要求に含まれるファイル名とアーカイブ日時から、クライアントプロセス１００が要求するファイルを特定する。そして、特定したファイルをストレージ３０から読み出し、クライアントプロセス１００に送信する。
【００７３】
このようにすることで、クライアントプロセス１００が、ＷＯＲＭファイルに関連づけられたアーカイブ日時の不明なファイルを、ファイル名だけを指定することでＷＯＲＭアーカイブサーバから読み出すことが可能となる。例えば、あるＭａｋｅｆｉｌｅ（ＷＯＲＭファイル）を取得し、そのＭａｋｅｆｉｌｅが保存された時点でコンパイル対象となっていたファイルを、前述のような方法で読み出すことができる。クライアントプロセス１００は読み出したファイルによって、ファイル保存時点でｍａｋｅして得られたバイナリファイルと同様のバイナリファイルの生成が可能となる。また、あるＨＴＭＬやＸＭＬファイル（ＷＯＲＭファイル）を取得し、そのＨＴＭＬ又はＸＭＬファイルが保存された時点でハイパーリンクされていたファイルを、前述のような方法で読み出すことができる。クライアントプロセス１００は読み出したファイルによって、ファイル保存時点でハイパーリンクされていたファイルを取得することが可能となる。
【００７４】
次に、本発明の第２の実施の形態のストレージシステムについて説明する。第２の実施の形態では、第１の実施の形態と比較すると、ファイルのアーカイブ日時を管理するファイル保存日時管理表を、クライアントノード１０からＷＯＲＭアーカイブサーバ２０へのコネクションごとに管理する点が相違する。なお、第１の実施の形態と同一に機能する構成には同一の符号を付し、その説明を省略する。
【００７５】
図７は、第２の実施の形態の本発明のストレージシステムの構成を示すブロック図である。
【００７６】
第２の実施の形態では、ＷＯＲＭアーカイブクライアントライブラリ４００には、受信したＷＯＲＭファイルのアーカイブ日時をプロセスＩＤと共にプロセスごとファイル保存日時管理表に記録する機能及び日時添付モジュール４１０は備えられていない。また、ディスク装置１４にも、プロセスごとファイル保存日管理表５００は備えられていない。
【００７７】
ＷＯＲＭアーカイブサーバ２０のメモリ２２には、クライアントプロセス１００からのコネクション単位ごとにファイルのアーカイブ日時を取得し、コネクションごとに割り当てられるＩＤ（コネクションＩＤ）とアーカイブ日時とを対応させて保存するコネクションごとファイル保存日時管理表５５０が備えられている。なお、コネクションごとファイル保存日管理表５５０は、ストレージ３０又はＷＯＲＭアーカイブサーバ３０に接続された他のディスク装置上に存在してもよい。
【００７８】
また、ＷＯＲＭアーカイブサーバ２０のメモリ２２には、日時添付モジュール４５０も含まれる。この日時添付モジュール４５０は、クライアントプロセス１００からのファイル読み出し要求がファイル名のみを指定しているものである場合に、コネクションごとファイル保存日時管理表５５０を参照して、当該要求のコネクションＩＤから、当該ファイル要求にアーカイブ日時を示す情報を添付して、ファイル特定モジュール７００に渡す。ファイル特定モジュール７００は、第１の実施の形態と同様に、特定されたＷＯＲＭファイルをクライアントプロセス１００に対して送信する。
【００７９】
図８は、ＷＯＲＭアーカイブサーバ２０が保持しているコネクションごとファイル保存日時管理表５５０の一例を示す表である。
【００８０】
クライアントプロセス１００からのファイル読み出し要求等によって設定されるコネクションは、各コネクションごとにＩＤ（コネクションＩＤ）が割り当てられている。ＷＯＲＭアーカイブサーバは、このコネクションＩＤと、当該コネクションのファイル読み出し要求のファイルのアーカイブ日時とを対応づけてコネクションごとファイル保存日時管理表５５０として保存する。
【００８１】
図９は、本発明の第２の実施の形態のストレージシステムの処理を示すシーケンス図である。
【００８２】
まず、ＷＯＲＭファイルをＷＯＲＭアーカイブサーバ２０に対して保存する処理について説明する。
【００８３】
まずクライアントプロセス１００が、ＷＯＲＭアーカイブサーバ２０に対してファイル（ここでは、「／ｔｅｓｔ」）を保存するアーカイブ要求を送信する（ステップ３０００）。この要求の送信によって、クライアント１０からＷＯＲＭアーカイブサーバ２０に対してコネクションが確立する。ＷＯＲＭアーカイブサーバ２０は、アーカイブ要求を受信すると、当該ファイルをストレージ３０に書き込む。この際に、当該ファイルのファイルＩＤ、クライアントパス名（「／ｔｅｓｔ」）、ストレージパス名及びアーカイブ日時をファイル保存日時管理表８００（図２参照）に登録する。
【００８４】
次に、クライアントプロセス１００が、ストレージ３０に保存されているＷＯＲＭファイル（「／ｔｅｓｔ」）を読み出す処理について説明する。
【００８５】
クライアントプロセス１００は、ファイルＩＤ／ファイル名及びアーカイブ日時Ｉ／Ｆ２００によって、ストレージ３０に保存されているＷＯＲＭファイル（／ｔｅｓｔ）の読み出し要求をＷＯＲＭアーカイブサーバ２０に対して送信する（ステップ３００１）。このコネクションには一意の識別子（コネクションＩＤ）が付される。
【００８６】
ＷＯＲＭアーカイブサーバ２０は、この要求を受信すると、まず、当該読み出し要求のコネクションＩＤと、読み出し要求されたＷＯＲＭファイルのアーカイブ日時と、を取得し、これらを対応付けてコネクションごとファイル保存日時管理表５５０に記録する。すなわち、ＷＯＲＭアーカイブサーバ２０がコネクションＩＤとアーカイブ日時をコネクション毎ファイル保存日時管理表５５０に記録することで、保存日時記録部が構成される。
【００８７】
次に、ファイル保存日時管理表８００を参照してストレージパス名を取得して、ストレージ３０におけるファイルの記録箇所を特定して、当該ファイル（「／ｔｅｓｔ」）をストレージ３０から取得する。そして、取得したファイル（「／ｔｅｓｔ」）を、クライアントプロセス１００に対して送信する（ステップ３００２）。
【００８８】
この一連の処理によって、クライアントプロセス１００は、要求したＷＯＲＭファイルを取得できる。
【００８９】
ここで、クライアントプロセス１００が取得したファイル（「／ｔｅｓｔ」）に関連づけられているファイルがあり、その関連づけられたファイルの読み出しが必要になった場合について説明する。
【００９０】
クライアントプロセス１００は、「／ｔｅｓｔ」に関連づけられたファイル（ここでは「／ａａ／ａ」とする）の読み出し要求を送信する（ステップ３００３）。このとき、クライアントプロセス１００は関連づけされたファイルのファイル名のみを知っており、アーカイブ日時を知らない。よって、クライアントプロセス１００の送信する要求は、ファイル名Ｉ／Ｆ２１０を用いて送信される。
【００９１】
ＷＯＲＭアーカイブサーバは、このファイル読み出し要求を受信すると、当該ファイル読み出し要求を日時添付モジュール４５０に渡す。日時添付モジュール４５０は、ファイル読み出し要求のコネクションＩＤを抽出し、抽出したコネクションＩＤからコネクションごとファイル保存日時管理表５５０を検索して、当該コネクションＩＤに対応するファイルのアーカイブ日時を取得する。そして、ファイル読み出し要求に取得したアーカイブ日時を添付して、ファイル特定モジュールに渡す。ファイル特定モジュール７００は、読み出し要求のあったファイル（／ａａ／ａ）及びアーカイブ日時から、ＷＯＲＭアーカイブサーバ２０によって管理されるファイルを特定する処理（ファイル特定処理）を行う。
【００９２】
ＷＯＲＭアーカイブサーバ２０は、ファイル保存日時管理表８００を参照してストレージパス名を取得して、ストレージ３０におけるファイルの記録箇所を特定して、ファイル特定処理によって特定されたファイル（／ａａ／ａ）を、ストレージ３０から取得する。そして、取得したファイル（／ａａ／ａ）を、クライアントプロセス１００に対して送信する（ステップ３００４）。なお、ステップ３００１において確立したコネクションは、所定時間の経過又はクライアントプロセスからの要求によって解放される。
【００９３】
この一連の処理によって、クライアントプロセス１００が、ＷＯＲＭファイルの読み出しを要求する際に、ファイルを特定するための情報（ファイルＩＤ、アーカイブ日時等）を指定しなくても、ファイル名のみを指定することでファイルを取得することが可能となる。
【００９４】
なお、前述したように、クライアントノード１０では複数のクライアントプロセス１００が稼働しているので、ファイルを保存するクライアントプロセス１００と、ファイルを読み出すクライアントプロセス１００とは、必ずしも同じとは限らない。
【００９５】
図１０は、前述した図９の処理を、図７のシステム構成図に当てはめて表した説明図である。
【００９６】
前述したように、前提条件として、クライアントプロセス１００は、ファイル（「／ｔｅｓｔ」）を予めＷＯＲＭアーカイブサーバ２０に登録しているとする。
【００９７】
クライアントプロセス１００（プロセスＩＤは「１００」とする）が、ＷＯＲＭファイル（「／ｔｅｓｔ／」）の読み出しを要求する場合は、当該ＷＯＲＭファイルのファイルＩＤ（００３）を指定するか、又はファイル名（／ｔｅｓｔ）及びアーカイブ日時（１１／２５／００）の双方を指定して、ＷＯＲＭアーカイブサーバ２０に、ファイルＩＤ／ファイル名及びアーカイブ日時Ｉ／Ｆ２００を用いてファイルの読み出しを要求する（ステップ３００１）。この要求の送信によって、クライアント１０からＷＯＲＭアーカイブサーバ２０に対してコネクションが確立する。このコネクションには一意の識別子（コネクションＩＤ）が付される。
【００９８】
ＷＯＲＭアーカイブサーバ２０は、この要求を受信すると、まず、当該読み出し要求のコネクションＩＤと、読み出し要求されたＷＯＲＭファイルのアーカイブ日時と、を取得し、これらを対応づけてコネクションごとファイル保存日時管理表５５０に保存する。
【００９９】
次に、ファイル保存日時管理表８００を参照して当該ファイル（／ｔｅｓｔ）をストレージ３０から取得する。そして、取得したファイル（／ｔｅｓｔ）を、クライアントプロセス１００に対して送信する（ステップ３００２）。
【０１００】
ここで、クライアントプロセス１００が取得したファイル（／ｔｅｓｔ）に関連づけられているファイル（／ａａ／ａ）の読み出しを行う場合は、まず、当該ファイル名（／ａａ／ａ）のみを指定したファイルの読み出し要求を送信する（ステップ３００３）。この要求は、ファイル名Ｉ／Ｆ２１０を用いて送信される。
【０１０１】
ＷＯＲＭアーカイブサーバ２０は、このファイル読み出し要求を受信すると、当該ファイル読み出し要求を日時添付モジュール４５０に渡す。日時添付モジュール４５０は、ファイル読み出し要求のコネクションＩＤを取得し、取得したコネクションＩＤ（１００）からコネクションごとファイル保存日時管理表５５０を検索して、当該コネクションＩＤに対応するファイルのアーカイブ日時（１１／２５／００）を取得する。そして、取得したアーカイブ日時をファイル読み出し要求に添付して、ファイル特定モジュールに渡す。ファイル特定モジュール７００は、読み出し要求のあったファイル（／ａａ／ａ）及びアーカイブ日時から、ＷＯＲＭアーカイブサーバ２０が管理するファイルを特定する処理（ファイル特定処理）を行う。
【０１０２】
ＷＯＲＭアーカイブサーバ２０は、ファイル保存日時管理表８００を参照してストレージパス名を取得して、ファイル特定処理によって特定されたファイル（ＦＩＤ００２の１０／１０／００にアーカイブされた／ａａ／ａ）を、ストレージ３０から取得する。そして、取得したファイル（／ａａ／ａ）を、クライアントプロセス１００に対して送信する（ステップ３００４）。なお、ステップ３００１において確立したコネクションは、所定時間の経過又はクライアントプロセスからの要求によって解放される。
【０１０３】
以上のように構成された本発明の第２の実施の形態のストレージシステムでは、クライアントプロセス１００がＷＯＲＭファイルを読み出すときに、ＷＯＲＭアーカイブサーバ２０が、当該ＷＯＲＭファイルのアーカイブ日時を取得してコネクションごとアーカイブ日時管理表５００に記録する。そして、クライアントプロセス１００が当該ＷＯＲＭファイルに関連づけられたファイルの読み出しを行う際に、当該ファイル名のみを指示したファイル読み出し要求をＷＯＲＭアーカイブサーバ２０に送信する。ＷＯＲＭアーカイブサーバ２０に含まれる日時添付モジュール４５０が、コネクションごと保存日管理表５５０を参照し、当該ＷＯＲＭファイルのアーカイブ日時を、ＷＯＲＭファイルに関連づけられたファイルの読み出し要求に添付して、ファイル特定モジュールに渡す。ファイル特定モジュール７００は、受信した読み出し要求に含まれるファイル名とアーカイブ日時から、クライアンプロセス１００が要求するファイルを特定する。そして、特定したファイルをストレージ３０から読み出し、クライアントプロセス１００に送信する。
【０１０４】
このようにすることで、クライアントプロセス１００が、ＷＯＲＭファイルに関連づけられた、アーカイブ日時の不明なファイルを、ファイル名だけを指定することでＷＯＲＭアーカイブサーバから読み出すことが可能となる。また、第１の実施例と比較すると、クライアントノード１０ではなく、ＷＯＲＭアーカイブサーバ２０側でクライアントノードからのコネクションを管理するので、クライアントノード１０の負荷が低減するという効果がある。
【０１０５】
次に、本発明の第３の実施の形態のストレージシステムについて説明する。
【０１０６】
第３の実施の形態は、第１又は第２の実施の形態の変形例であり、クライアントノード１０側（クライアントプロセス１００）からのファイル読み出しを要求する際に、ファイル名と任意の時間を示す情報とを組とした要求を送信し、ＷＯＲＭアーカイブサーバ２０は、当該要求を受けてファイルを特定し、特定したファイルをクライアントノード１０側に送信するよう構成した。なお、第１又は第２の実施の形態と同一に機能する構成には同一の符号を付し、その説明は省略する。
【０１０７】
図１１は、第３の実施の形態のストレージシステムの処理を示す説明図であり、第１の実施の形態の構成図（図１）に当てはめて表したものである。
【０１０８】
前述したように、クライアントプロセス１００が、ファイルＩＤ、又はファイル名とアーカイブ日時の組を指定したファイル読み出し要求を、ＷＯＲＭアーカイブサーバ２０に送信することで、ファイルを取得できる。この処理は図１０の細矢印線で示される。
【０１０９】
ここで、クライアントプロセス１００が、ファイル名と任意の日時とを指定したファイル読み出し要求を送信した場合について説明する（太矢印線で示される）。
【０１１０】
任意の時間を指定する場合とは、前述の第１又は第２の実施の形態のように、始めに元となるファイルを取得し、そのファイルのアーカイブ日時を基準にファイルを取得するのではなく、読み出しを要求するファイルであって、指定した任意の日時より以前にアーカイブされた最新のファイルを取得したい場合などである。
【０１１１】
まず、クライアントプロセス１００は、ファイル名と任意の日時とを指定して、ＷＯＲＭアーカイブサーバ２０にファイル名及び日時Ｉ／Ｆ２２０を用いてファイルの読み出しを要求する（ステップ４００１）。
【０１１２】
ＷＯＲＭアーカイブサーバ２０は、このファイル読み出し要求を受信すると、まず、ファイル特定モジュール７００に当該ファイル読み出し要求を渡す。
【０１１３】
ファイル特定モジュール７００は、図６において前述した処理手順に従って、要求されたファイル名のうち、指定した日時にうち最も近いアーカイブ日時のファイルを特定する。ＷＯＲＭアーカイブサーバ２０は、ファイル特定処理によって特定されたファイルを、ファイル保存日時管理表８００を参照してストレージ３０から取得する。そして、取得したファイルを、クライアントプロセス１００に対して送信する（ステップ４００２）。
【０１１４】
なお、図１１は第１の実施の形態のように、クライアントノード１０が、プロセス単位でファイルのアーカイブ日時を管理するストレージシステムを例に説明したが、これを、第２実施の形態のように、ＷＯＲＭアーカイブサーバ２０がコネクション単位でアーカイブ日時を管理するストレージシステムにおいても、同様に適用できる。この場合は、クライアントプロセス１００が送信したファイル読み出し要求を、ＷＯＲＭアーカイブサーバ２０のファイル特定モジュール７００が受信してファイルを特定し、クライアントプロセス１００に対して特定したファイルを送信する。
【０１１５】
以上のように構成された第３の実施の形態のストレージシステムでは、クライアントプロセス１００が、読み出しを所望するＷＯＲＭファイルに対して、任意の日時を指定することで、指定した任意の日時よりも最新のＷＯＲＭファイルを読み出すことが可能になる。特に、同一のパス名で複数のＷＯＲＭファイルがストレージ３０に記憶されている場合に、クライアントプロセス１００が所望する所定の日時におけるもっとも最新のファイルを取得することが可能となる。
【０１１６】
次に、本発明の第４の実施の形態のストレージシステムについて説明する。
【０１１７】
第４の実施の形態では、第１乃至第３の実施の形態の変形例であり、前述の図６のフローチャートのステップ２００５において、指定されたファイルが存在しなかったときの処理に関する。
【０１１８】
クライアントプロセス１００から読み出し要求のあったファイル（／ａａ／ａ）を、ＷＯＲＭアーカイブサーバにおいてファイル特定処理を行った結果、そのファイルが当該ＷＯＲＭアーカイブサーバ２０に存在しない場合がある。
【０１１９】
ＷＯＲＭアーカイブサーバ２０にファイルが存在しない場合とは、ファイルが削除されたことを意味する。ファイルの削除は、ファイルに設定された保存期限が満了した後ユーザの依頼により削除が実行される場合、又はファイルの保存期限が満了した後に、システム（ＷＯＲＭアーカイブサーバ２０等）が自動的に削除を実行する場合等である。
【０１２０】
ファイルの保存期限を扱うためには、ファイル保存日時管理表８００に保存期限欄を追加し、保存期限欄に定められた期限が満了した後は、ＷＯＲＭアーカイブサーバ２０の管理者又はクライアントプロセス１００の要求によって当該ファイルを手動で削除するか、ＷＯＲＭアーカイブサーバ２０の処理によって自動的に削除を行うよう設定する。なお、ファイルに保存期限を指定することは必須ではなく、保存期限が指定されていないファイルは永久に削除されない。
【０１２１】
ファイルを削除する場合、ファイル保存日時管理表８００から当該ファイルのエントリを削除する方法、ファイルのエントリは残し、ファイル保存日時管理表８００に削除した旨の記録を残す方法の２通りの方法がある。ファイル保存日時管理表８００には、削除の記録を残すために、ファイルの状態（存在、削除等を識別可能な状態）を示すステータス欄を追加する。
【０１２２】
ファイル保存日時管理表８００から当該ファイルのエントリを削除する方法では、要求されたファイルのエントリが削除され、要求のファイルが存在しないと判定した場合は、前述した図６のステップ２００６において、ＷＯＲＭアーカイブサーバ２０（ＷＯＲＭアーカイブサーバ２０に管理されるストレージ３０）にはファイルが存在しない旨のエラーをファイル読み出し要求元のクライアントプロセス１００に通知する。
【０１２３】
一方、ファイルのエントリは残し、ファイル保存日時管理表８００に、削除した旨の記録を残す方法では、要求されたファイルが既に削除されているものであると判定した場合は、前述した図６のステップ２００６において、ファイルが削除された旨のエラーを読み出し要求元のクライアントプロセス１００に通知する。
【０１２４】
なお、ファイル保存日時管理表８００のステータス欄には、削除日や削除者などを含めることも可能である。
【０１２５】
図１２は、このファイル保存日時管理表８００の一例を示す表である。
【０１２６】
ファイル保存日管理表８００にステータス欄が追加され、ステータス欄に、ファイルの削除、削除日時、削除者、ファイルの移動、移動先、等の情報が記憶されている。
【０１２７】
ＷＯＲＭアーカイブサーバ２０は、このステータス欄の内容を取得することによって、削除されたファイルに関してより詳細な情報を含むエラーメッセージを作成して、クライアントプロセス１００に通知することが可能となる。クライアントプロセス１００は受け取ったエラーメッセージの内容を参照することで様々な対応が可能となる。例えば、ファイルの削除者が判明した場合は、当該削除者に対して（必ずしもファイルを所持しているとは限らないが）ファイルを要求することも可能である。
【０１２８】
また、指定したＷＯＲＭアーカイブサーバ２０が管理するストレージ３０にファイルが存在しない場合には、前述のように保存期限が経過してファイルが削除された場合だけではなく、ストレージ３０の容量不足等によって、管理者が別のＷＯＲＭアーカイブサーバ２０が管理するストレージ３０にファイルを移動する場合や、そのファイルを長期間アクセスする予定がないために、管理者が安価な別のＷＯＲＭアーカイブサーバ２０が管理するストレージ３０にファイルを移動する場合などが考えられる。
【０１２９】
この場合も前述のように、ファイルの移動に伴い、ファイル保存日時管理表８００のエントリが削除された場合は、ファイルが存在しない旨のエラーを返す。
【０１３０】
一方、ファイル保存日時管理表８００のステータス欄にファイルの移動というステータスを追加し、ＷＯＲＭアーカイブサーバ２０が当該ステータスを参照し、ファイルが移動された旨をクライアントプロセス１００に通知することもできる。
【０１３１】
また、ファイル保存日時管理表８００に、ファイルの移動先欄を追加し、ファイルの移動先のＷＯＲＭアーカイブサーバ２０のアドレスを格納することもできる。この場合、クライアントプロセス１００からファイルの読み出しを要求されたＷＯＲＭアーカイブサーバ２０がファイルの移動先欄を当該クライアントプロセス１００に返送し、クライアントプロセス１００が、改めて移動先のＷＯＲＭアーカイブサーバ２０に対してファイルの取得を要求するようにしてもよい。ＷＯＲＭアーカイブサーバ２０が管理するストレージ３０にファイルが存在しないケースとしては、ファイルの削除や移動の他に、クライアントの間違いなどにより、元々存在しないファイルの識別子やファイル名などが指定された場合も考えられる。この場合は、ＷＯＲＭアーカイブサーバ２０はファイル識別子又はファイル名が存在しない旨のエラーをファイル読み出し要求元のクライアントプロセスに通知すればよい。
【０１３２】
以上のように構成された本発明の第４の実施の形態のストレージシステムでは、ファイル保存日時管理表８００にファイルの削除に関する情報を記録するので、当該削除されたファイルの読み出しを要求したクライアントプロセス１００に対して、ファイルの削除に関する情報（ファイルの削除日時やファイルの移動先等）を返すことができるので、クライアントプロセス１００は受け取ったファイルの削除に関する情報に基づいた適切な処置（ファイル削除者に対してファイルの取得要求、ファイルの移動先へのファイルの読み出し要求等）を行うことができる。
【図面の簡単な説明】
【０１３３】
【図１】本発明の第１の実施の形態の、ストレージシステムの詳細な構成を示したブロック図である。
【図２】本発明の第１の実施の形態の、ファイル保存日時管理表８００の内容の一例を示す表である。
【図３】本発明の第１の実施の形態の、プロセスごとファイル保存日時管理表５００の内容の一例を示す表である。
【図４】本発明の第１の実施の形態の、ストレージシステムの処理を示すシーケンス図である。
【図５】本発明の第１の実施の形態の、ストレージシステムの処理を示す説明図である。
【図６】本発明の第１の実施の形態の、アーカイブ特定処理を示すフローチャートである。
【図７】本発明の第２の実施の形態の、ストレージシステムの構成を示すブロック図である。
【図８】本発明の第２の実施の形態の、コネクションごとファイル保存日時管理表４５０の一例を示す表である。
【図９】本発明の第２の実施の形態の、ストレージシステムの処理を示すシーケンス図である。
【図１０】本発明の第２の実施の形態の、ストレージシステムの処理を示す説明図である。
【図１１】本発明の第３の実施の形態の、ストレージシステムの処理を示す説明図である。
【図１２】本発明の第４の実施の形態の、ファイル保存日時管理表８００の一例を示す表である。
【符号の説明】
【０１３４】
１０      クライアントノード
１５      ディスク装置
２０      ＷＯＲＭアーカイブサーバ
３０      ストレージ
４０      ネットワーク
１００      クライアントプロセス
４００      ＷＯＲＭアーカイブクライアントライブラリ
４１０、４５０      日時添付モジュール
５００      アーカイブ日時管理表
５００      プロセスごとファイル保存日時管理表
５５０      コネクションごとファイル保存日時管理表
６００      保存日時通知モジュール
７００      ファイル特定モジュール
８００      ファイル保存日時管理表
【図１】
2005309852.tif 000003
【図２】
2005309852.tif 000004
【図３】
2005309852.tif 000005
【図４】
2005309852.tif 000006
【図５】
2005309852.tif 000007
【図６】
2005309852.tif 000008
【図７】
2005309852.tif 000009
【図８】
2005309852.tif 000010
【図９】
2005309852.tif 000011
【図１０】
2005309852.tif 000012
【図１１】
2005309852.tif 000013
【図１２】
2005309852.tif 000014