(57)【特許請求の範囲】
【請求項１】
ストレージ装置に格納された複数の属性を有するファイルを管理し、
ユーザごとに設定され、第１の階層と、前記第１の階層の下位の階層である第２の階層とを有する仮想的なファイルツリーを提示し、
前記第１の階層に属する仮想的なディレクトリのリスト検索要求を送信し、当該検索要求により受信した前記仮想的なディレクトリのリストに含まれる第２の階層に属する仮想的なディレクトリのリスト検索要求または前記仮想的なディレクトリのリストに含まれるファイルの読出し要求を送信するクライアント装置と接続され、
情報を記憶する記憶部と、前記クライアント装置からの要求を制御する制御部とを備えるファイル管理装置において、
前記記憶部は、
分類リストの識別子と、前記属性をカテゴリに分類したときのカテゴリの名称である分類リスト名称と、前記カテゴリに含まれる１又は複数の前記属性を表すキーワードを含む分類リストとを管理するための第１の管理情報と、
前記第１の階層に対応する前記分類リストの識別子と、前記第２の階層に対応する前記分類リストの識別子とをユーザごとに管理するための第２の管理情報と、
前記仮想的なファイルツリーに属するファイルと、当該ファイルの上位階層を構成するすべての前記仮想的なディレクトリのディレクトリ名である前記キーワードと、新規に記憶する前記ファイルに対してそれぞれ付与された識別情報とを対応付けて管理するための第３の管理情報と
を記憶し、
前記制御部は、
前記仮想的なファイルツリーの各階層を各カテゴリと対応付け、前記階層に属する仮想的なディレクトリのディレクトリ名と各カテゴリに分類される属性を表す前記キーワードとを対応付けて管理し、
前記クライアント装置から前記第１の階層に属する前記仮想的なディレクトリのリスト検索要求を受信した場合、
前記第２の管理情報を参照し、前記リスト検索要求を送信したユーザについて設定された前記第２の階層に対応する前記分類リストの識別子を取得し、
前記第１の管理情報を参照し、前記取得した分類リストの識別子に対応する前記分類リストを取得し、
前記取得した分類リストを前記クライアント装置に送信し、
前記記憶部は、
第１のファイルのコピーである第２のファイルの書込み要求を受信した場合、
前記第２のファイルと、前記第１のファイルと対応付けられたキーワードとを対応付けた管理情報と、
前記第２のファイルと、前記第１のファイルの前記識別情報である第１の系列番号とを対応付けた管理情報と
を含む前記第３の管理情報を記憶する
ことを特徴とするファイル管理装置。
【請求項２】
前記制御部は、
前記クライアント装置から送信される、前記ユーザについて設定された新たな前記仮想的なファイルツリーの構成情報に基づいて、前記第２の管理情報を更新する
ことを特徴とする請求項１に記載のファイル管理装置。
【請求項３】
前記記憶部は、
前記ユーザがそれぞれ設定した前記仮想的なファイルツリーにおいて、前記仮想的なファイルツリーに属するファイルと、当該ファイルの上位階層を構成するすべての前記仮想的なディレクトリのディレクトリ名である前記キーワードとを対応付けて管理するための第３の管理情報を記憶し、
前記制御部は、
前記クライアント装置からの前記ファイルの読出し要求に応じて、対応する前記ユーザについて設定された前記仮想的なファイルツリーにおいて前記ファイルの上位階層を構成するすべての前記仮想的なディレクトリのディレクトリ名である前記キーワードを検索キーワードとして、前記第３の管理情報を参照して、前記ファイルを検索する
ことを特徴とする請求項１に記載のファイル管理装置。
【請求項４】
前記第３の管理情報は、
各前記ユーザがそれぞれ設定した前記仮想的なファイルツリーに属するファイルと、当該ファイルの最終更新時刻とを管理するための管理情報とを含み、
前記制御部は、
検索対象ファイルを指定して行われる前記検索対象ファイルとコピー関係にあるコピーファイルの検索要求に応じて、
前記第３の管理情報を参照して、前記第１の識別情報と、前記クライアント装置から送信されるユーザにより指定されたキーワードとを検索キーワードとし、前記クライアント装置から送信されるユーザにより指定された前記検索対象ファイルの最終更新時間との関係を満たす最終更新時間の前記コピーファイルを検索する
ことを特徴とする請求項１に記載のファイル管理装置。
【請求項５】
前記検索対象ファイルを指定して行われる前記コピーファイルの検索要求に応じて、
前記検索対象ファイルと対応付けられた前記キーワードを検索キーワードとして、前記第３の管理情報を参照して、前記コピーファイルを検索する第１のモード、
前記第１の識別情報と前記クライアント装置から送信されるユーザにより指定されたキーワードとを検索キーワードとして、前記検索対象ファイルの最終更新時間より最終更新時間が前の前記コピーファイルを、前記第３の管理情報を参照して、検索する第２のモード、または、
前記第１の識別情報と前記クライアント装置から送信されるユーザにより指定されたキーワードとを検索キーワードとし、前記検索対象ファイルの最終更新時間より最終更新時間が後の前記コピーファイルを、前記第３の管理情報を参照して、検索する第３のモード、
のうち何れかのモードで前記コピーファイルを検索する
ことを特徴とする請求項４に記載のファイル管理装置。
【請求項６】
ストレージ装置に格納された複数の属性を有するファイルを管理し、
ユーザごとに設定され、第１の階層と、前記第１の階層の下位の階層である第２の階層とを有する仮想的なファイルツリーを提示し、
前記第１の階層に属する仮想的なディレクトリのリスト検索要求を送信し、当該検索要求により受信した前記仮想的なディレクトリのリストに含まれる第２の階層に属する仮想的なディレクトリのリスト検索要求または前記仮想的なディレクトリのリストに含まれるファイルの読出し要求を送信するクライアント装置と、
前記クライアント装置に接続され、
情報を記憶する記憶部と、前記クライアント装置からの要求を制御する制御部とを備えるファイル管理装置と
から構成される記憶システムにおいて、
前記記憶部は、
分類リストの識別子と、前記属性をカテゴリに分類したときのカテゴリの名称である分類リスト名称と、前記カテゴリに含まれる１又は複数の前記属性を表すキーワードを含む分類リストとを管理するための第１の管理情報と、
前記第１の階層に対応する前記分類リストの識別子と、前記第２の階層に対応する前記分類リストの識別子とをユーザごとに管理するための第２の管理情報と、
前記仮想的なファイルツリーに属するファイルと、当該ファイルの上位階層を構成するすべての前記仮想的なディレクトリのディレクトリ名である前記キーワードと、新規に記憶する前記ファイルに対してそれぞれ付与された識別情報とを対応付けて管理するための第３の管理情報と
を記憶し、
前記制御部は、
前記仮想的なファイルツリーの各階層を各カテゴリと対応付け、前記階層に属する仮想的なディレクトリのディレクトリ名と各カテゴリに分類される属性を表す前記キーワードとを対応付けて管理し、
前記クライアント装置から前記第１の階層に属する前記仮想的なディレクトリのリスト検索要求を受信した場合、
前記第２の管理情報を参照し、前記リスト検索要求を送信したユーザについて設定された前記第２の階層に対応する前記分類リストの識別子を取得し、
前記第１の管理情報を参照し、前記取得した分類リストの識別子に対応する前記分類リストを取得し、
前記取得した分類リストを前記クライアント装置に送信し、
前記記憶部は、
第１のファイルのコピーである第２のファイルの書込み要求を受信した場合、
前記第２のファイルと、前記第１のファイルと対応付けられたキーワードとを対応付けた管理情報と、
前記第２のファイルと、前記第１のファイルの前記識別情報である第１の系列番号とを対応付けた管理情報と
を含む前記第３の管理情報を記憶する
ことを特徴とする記憶システム。
【請求項７】
前記制御部は、
前記クライアント装置から送信される、前記ユーザについて設定された新たな前記仮想的なファイルツリーの構成情報に基づいて、前記第２の管理情報を更新する
ことを特徴とする請求項６に記載の記憶システム。
【請求項８】
前記記憶部は、
各前記ユーザがそれぞれ設定した前記仮想的なファイルツリーにおいて、前記仮想的なファイルツリーに属するファイルと、当該ファイルの上位階層を構成するすべての前記仮想的なディレクトリのディレクトリ名である前記キーワードとを対応付けて管理するための第３の管理情報を記憶し、
前記制御部は、
前記クライアント装置からの前記ファイルの読出し要求に応じて、対応する前記ユーザについて設定された前記仮想的なファイルツリーにおいて前記ファイルの上位階層を構成するすべての前記仮想的なディレクトリのディレクトリ名である前記キーワードを検索キーワードとして、前記第３の管理情報を参照して、前記ファイルを検索する
ことを特徴とする請求項６に記載の記憶システム。
【請求項９】
前記第３の管理情報は、
各前記ユーザがそれぞれ設定した前記仮想的なファイルツリーに属するファイルと、当該ファイルの最終更新時刻とを管理するための管理情報とを含み、
前記制御部は、
検索対象ファイルを指定して行われる前記検索対象ファイルとコピー関係にあるコピーファイルの検索要求に応じて、
前記第３の管理情報を参照して、前記第１の識別情報と、前記クライアント装置から送信されるユーザにより指定されたキーワードとを検索キーワードとし、前記クライアント装置から送信されるユーザにより指定された前記検索対象ファイルの最終更新時間との関係を満たす最終更新時間の前記コピーファイルを検索する
ことを特徴とする請求項６に記載の記憶システム。
【請求項１０】
前記検索対象ファイルを指定して行われる前記コピーファイルの検索要求に応じて、
前記検索対象ファイルと対応付けられた前記キーワードを検索キーワードとして、前記第３の管理情報を参照して、前記コピーファイルを検索する第１のモード、
前記第１の識別情報と前記クライアント装置から送信されるユーザにより指定されたキーワードとを検索キーワードとして、前記検索対象ファイルの最終更新時間より最終更新時間が前の前記コピーファイルを、前記第３の管理情報を参照して、検索する第２のモード、または、
前記第１の識別情報と前記クライアント装置から送信されるユーザにより指定されたキーワードとを検索キーワードとし、前記検索対象ファイルの最終更新時間より最終更新時間が後の前記コピーファイルを、前記第３の管理情報を参照して、検索する第３のモード、
のうち何れかのモードで前記コピーファイルを検索する
ことを特徴とする請求項９に記載の記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル管理装置及び記憶システムに関し、例えばＮＡＳ（Network Attached Storage）機能が搭載されたストレージ装置を含む記憶システムに適用して好適なものである。
【背景技術】
【０００２】
近年、ＮＡＳを使用したファイル共有サービスのニーズは年々高まっている。また、かかるファイル共有サービスを提供するネットワークシステムでは、共有されるファイルの容量の増大に伴ってＮＡＳへのアクセスも増加の傾向にある。
【０００３】
このような状況のもと、近年では、複数のＮＡＳインタフェースを備えるストレージシステムにおいて、これらＮＡＳインタフェースに、ディスクブロック単位のＩ／Ｏ要求を処理するブロックインタフェースと、ファイル単位のＩ／Ｏ要求を処理するファイルサーバを搭載したファイルインタフェースの少なくとも一方を搭載すると共に、ディスク上に複数のファイルサーバがアクセス可能なファイルシステムを構築し、共有メモリ上に、ファイルシステムの変更ログを保持するログ格納領域と、ファイルシステムの排他制御及びログ格納領域の管理を行なう管理用のファイルサーバに関連する情報を保持する管理ファイルサーバ情報格納領域とを構築することが提案されている（特許文献１参照）。
【０００４】
そして、この方法によれば、複数のＮＡＳインタフェースが同一のファイルシステムにアクセスでき、障害発生時にもデータが失われることない高い信頼性を得られるストレージシステムを得ることができる。
【０００５】
【特許文献１】特開２００３−１６２４３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、かかるＮＡＳインタフェースを備える従来のストレージシステムでは、例えばユーザが頻繁に使用するファイルをコピーして別ディレクトリに格納するという用法により、ファイルが２重３重に維持され、この結果ストレージシステムに必要とされる容量が倍化する傾向がある。
【０００７】
これらを防ぐ手段としては、特定ファイルを関連付ける方法や、ショートカットと呼ばれるソフトリンクを利用する方法などが考えられるものの、いずれもユーザの手間を増加させる方法であり、有効に用いられているとは言えない。
【０００８】
本発明は以上の点を考慮したもので、ストレージ装置におけるファイルの多重化を防止し、ストレージ装置の記憶容量を効率的に利用可能とするファイル管理装置及び記憶システムを提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、ストレージ装置に格納されたファイルを管理するファイル管理装置において、それぞれ１又は複数のキーワードを含む複数種類の分類リストを管理するための第１の管理情報と、仮想的なファイルツリーの各階層に対して各ユーザ毎にそれぞれ設定された前記分類リストの種類を管理するための第２の管理情報とを記憶する記憶部と、クライアント装置から与えられるディレクトリのリスト検索要求に応答し、前記第１及び第２の管理情報を参照して、対応するユーザについて、前記リスト検索要求に応じた前記階層に対して設定された前記分類リストを前記クライアント装置に送信する制御部とを設けるようにした。
【００１０】
この結果このファイル管理装置によれば、クライアント装置からのアクセス方式を変更することなく、ストレージ装置におけるディレクトリ構造をユーザに合わせて柔軟に設定することが可能となる。
【００１３】
さらに本発明においては、ファイルデータを記憶するストレージ装置と、前記ストレージ装置に対して前記ファイルデータを読み書きするクライアント装置とから構成される記憶システムにおいて、前記ストレージ装置は、それぞれ１又は複数のキーワードを含む複数種類の分類リストを管理するための第１の管理情報と、仮想的なファイルツリーの各階層に対して各ユーザ毎にそれぞれ設定された前記分類リストの種類を管理するための第２の管理情報とを記憶する記憶部と、前記クライアント装置から与えられるディレクトリのリスト検索要求に応答し、前記第１及び第２の管理情報を参照して、対応するユーザについて、前記リスト要求に応じた階層に対して設定された前記階層に対して設定した前記分類リストを前記クライアント装置に送信する制御部とを備え、前記クライアント装置は、前記ストレージ装置から送信される前記分類リストに含まれる各前記キーワードを、それぞれ仮想的なディレクトリとして表示するようにした。
【００１４】
この結果この記憶システムでは、クライアント装置からのアクセス方式を変更することなく、ストレージ装置におけるディレクトリ構造をユーザに合わせて柔軟に設定することが可能となる。
【発明の効果】
【００１５】
本発明によれば、ストレージ装置の記憶容量を効率的に利用可能とするファイル管理装置及び記憶システムを実現できる。
【発明を実施するための最良の形態】
【００１６】
以下図面について、本発明の一実施の形態を詳述する。
【００１７】
（１）本実施の形態による記憶システムの構成
図１において、１は全体として本実施の形態による記憶システムを示す。この記憶システム１は、複数のクライアント装置２がネットワーク３を介してストレージ装置４と接続されることにより構成されている。
【００１８】
クライアント装置２は、ストレージ装置４が提供するファイル共有サービスを利用するためのものであり、ＣＰＵ（Central Processing Unit）１０やメモリ１１等の情報処理資源を備えたコンピュータ装置により構成される。このクライアント装置２としては、ＵＮＩＸ（登録商標）ＯＳ（Operating System）上にＮＦＳ（Network File System，登録商標）を設けたＮＦＳクライアント装置２Ａや、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ上にＣＩＦＳ（Common Internet File System，登録商標）を設けたＣＩＦＳクライアント装置２Ｂが適用される。
【００１９】
ネットワーク３は、例えばＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。このネットワーク３を介したクライアント装置２及ストレージ装置４間の通信は、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００２０】
ストレージ装置４は、例えばＮＡＳとして構成されるもので、ＮＦＳやＣＩＦＳ等の多種類のファイルアクセスプロトコルに対応可能なファイル共有サービスを提供する。ストレージ装置４は、ＮＡＳヘッドなどとも呼ばれるコントロール部２０と、複数の記憶デバイス３１を備える記憶部３１とから構成される。
【００２１】
コントロール部２０は、例えばこのストレージ装置４全体の動作制御を司るＣＰＵ２１と、各種プログラムが格納されたＲＯＭ（Read Only Memory）２２と、ＣＰＵ２１のワークメモリとして使用されるＲＡＭ（Random Access Memory）２３と、第１及び第２の通信ネットワーク２４，２５とを備えている。第１の通信インタフェース２４は、ネットワーク３を介してクライアント装置２との間でデータの送受信を行なう上位通信インタフェースとして機能し、第２の通信インタフェース２５は、例えばＳＡＮ（Storage Area Network）等の通信ネットワーク２６Ａ，２６Ｂを介して記憶部３０との間でデータの送受信を行なう下位通信インタフェースとして機能する。
【００２２】
ＣＰＵ２１は、ＲＯＭ２２に格納された制御プログラムに基づいて、クライアント装置２から送信されるコマンドを解釈し、そのコマンドに応じた処理を実行する。
【００２３】
記憶部３０の記憶デバイス３１は、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスク、又はＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクから構成される。これら各記憶デバイス３１は、コントロール部２０によりＲＡＩＤ方式で運用される。１又は複数の記憶デバイス３１により構成されるＲＡＩＤグループが提供する物理的な記憶領域上に、１又は複数の論理ボリュームが設定される。そして、これら論理ボリュームに、クライアント装置２から送信されたデータが所定大きさのブロックを単位として格納される。
【００２４】
各論理ボリュームには、それぞれ固有の識別子（ＬＵＮ：Logical Unit Number）が割り当てられる。本実施の形態の場合、データの入出力は、この識別子と、各ブロックにそれぞれ割り当てられるそのブロックに固有の番号（ＬＢＡ：Logical Block Address）との組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２５】
各記憶デバイス３１は、冗長性をもたせて、例えば２系統の通信ネットワーク２６Ａ，２６Ｂを介してコントロール部２０と接続されている。これによりこのストレージ装置４の場合、一方の通信ネットワーク２６Ａ，２６Ｂに障害が発生した場合においても、他方の通信ネットワーク２６Ｂ，２６Ａを介してコントロール部２０が各記憶デバイス３１にアクセスできるようになされている。
【００２６】
なお、図１は、ストレージ装置４内に記憶部３０を設けた場合について示しているが、記憶部３０の全部又は一部をストレージ装置４の筐体外部に設けるようにしても良い。例えば、多数の記憶デバイス３１をアレイ状に配設して構成するディスクアレイ装置を記憶部として利用することもできる。
【００２７】
次に、この記憶システム１におけるストレージ装置４へのデータの入出力の流れについて説明する。クライアント装置２のＣＰＵ１０は、ユーザ操作によりファイルデータの書込み指令が入力されると、データ書込み要求及び書込み対象のデータをネットワーク３を介してストレージ装置４に送信する。
【００２８】
このデータ書込み要求及び書込み対象のデータを受信したストレージ装置４のＣＰＵ２１は、このデータ書込み要求に基づいて記憶部３０を制御することにより、書込み対象のデータを対応する記憶デバイス３１内の指定されたアドレスに書き込ませる。
【００２９】
またクライアント装置２のＣＰＵ１０は、ユーザ操作によりファイルデータの読出し指令が入力されると、データ読出し要求をネットワーク３を介してストレージ装置４に送信する。
【００３０】
このデータ読出し要求を受信したストレージ装置４のＣＰＵ２１は、このデータ読出し要求に基づいて記憶部３０を制御することにより、読出し対象のファイルデータを対応する記憶デバイス３１の指定されたアドレスから読み出し、これをネットワーク３を介して対応するクライアント装置２に送信する。
【００３１】
（２）記憶システムにおけるファイル検索システム
（２−１）各種テーブルの構成
次に、記憶システム１におけるファイル検索システムについて説明する。この実施の形態の記憶システム１の場合、ストレージ装置４に対してユーザごとに仮想的なファイルツリー（以下、これを仮想ファイルツリーと呼ぶ）を設定することができ、各ユーザが、自己が設定したこの仮想ファイルツリーに従って所望のファイルを検索することができるようになされている。
【００３２】
そのための手段として、ストレージ装置４は、図２に示すように、分類リストテーブル４０、ユーザ仮想ディレクトリテーブル５０、ｉノード−キーワードテーブル６０及びｆｄ（ファイルディスクリプタ）−ｉノード変換テーブル７０をＲＡＭ２３内に保持すると共に、検索エンジン８０をＲＯＭ２２内に保持している。
【００３３】
このうち分類リストテーブル４０は、後述の分類リストを管理するためのテーブルであり、図３に示すように、「分類リスト番号」フィールド４１、「分類リスト名称」フィールド４２及び「分類キーワード」フィールド４３から構成されている。そして、「分類キーワード」フィールド４３には、ユーザのデータファイルの属性をいくつかカテゴリに分類した場合における、そのカテゴリに属する属性（以下、これをキーワードと呼ぶ）が格納され、「分類リスト名称」フィールド４２には、そのカテゴリに属するキーワードを含むリスト（以下、これを分類リストと呼ぶ）のリスト名称が格納される。
【００３４】
例えば、この図３の例の場合、ファイルの属性は大きく「時期」、「製品系列」、「製品属性」、「業務系列」といった分類リストに分類されていることが示されている。そして「時期」の分類リストには「2004」、「2005」及び「2006」のキーワードが含まれ、「製品系列」の分類リストには、「P100」及び「P200」のキーワードが含まれ、「製品属性」の分類リストには、「性能」、「価格」及び「仕様」のキーワードが含まれ、「業務系列」の分類リストには、「発表」、「開発」及び「生産」のキーワードが含まれていることが示されている。
【００３５】
さらに分類リストテーブルの「分類リスト番号」フィールド４１には、それぞれ対応する分類リストのエントリ番号（以下、これを分類リスト番号と呼ぶ）が格納されている。
【００３６】
一方、ユーザ仮想ディレクトリテーブル５０は、ユーザにより設定された仮想ファイルツリーを管理するためのテーブルであり、図４に示すように、「ユーザ」フィールド５１及び「分類リスト番号」フィールド５２から構成される。
【００３７】
このうち「ユーザ」フィールド５１には、その仮想ファイルツリーを設定したユーザのユーザ名が格納される。また「分類リスト番号」フィールド５２は、「第１階層（１st）」フィールド５３、「第２階層（２nd）」フィールド５４及び「第３階層（３rd）」フィールド５５の３つのフィールドに分けられており、これらのフィールド５３〜５５に、それぞれそのユーザがかかる仮想ファイルツリーの第１〜第３階層にそれぞれ設定した各分類リストの種類（分類リスト番号）が格納される。
【００３８】
例えば、図４の例において、「Tanaka」は、仮想ファイルツリーとして、第１階層目に分類リスト番号が「♯003」である「製品属性」という分類リストを設定し、第２階層目に分類リスト番号が「♯002」である「製品系列」という分類リストを設定している。従って、「Tanaka」の仮想ファイルツリーでは、図２に示すように、「root」のサブディレクトリとして「性能」、「価格」及び「仕様」が存在し、これらのサブディレクトリとして「P100」及び「P200」が存在し、これら「P100」及び「P200」等のディレクトリ内にファイル（例えば「P100性能アナウンス.xls」）がそれぞれ格納されることとなる。
【００３９】
また図４の例において、「Satou」は、仮想ファイルツリーとして、第１階層目に分類リスト番号が「♯002」である「製品系列」という分類リストを設定し、第２階層目に分類リスト番号が「♯004」である「業務系列」という分類リストを設定し、第３階層目に分類リスト番号が「♯003」である「製品属性」という分類リストを設定している。従って、「Satou」の仮想ファイルツリーでは、図２に示すように、「root」のサブディレクトリとして「P100」及び「P200」が存在し、これらのサブディレクトリとして「発表」、「開発」及び「生産」が存在し、さらにこれらのサブディレクトリとして「性能」、「価格」及び「仕様」が存在し、これら「性能」、「価格」及び「仕様」のディレクトリ内にそれぞれファイル（例えば「P100性能アナウンス.xls」）が格納されることとなる。
【００４０】
他方、ｉノード−キーワードテーブル６０は、各ファイルのｉノード情報と、当該ファイルに対応付けられたキーワードとを管理するためのテーブルであり、ストレージ装置４に格納されたすべてのファイルが登録されている。
【００４１】
このｉノード−キーワードテーブル６０は、図５に示すように、「ｉノード番号」フィールド６１、「ｉノード情報」フィールド６２及び「ファイルキーワード」フィールド６３から構成される。このうち「ｉノード情報」フィールド６２には、対応するファイル（ファイルを含む）のファイル名、所有者、ファイルサイズ、ファイルアドレス及び最終更新時間などが格納され、「ｉノード番号」フィールド６１には、そのファイルに割り当てられたｉノード番号が格納される。
【００４２】
また「ファイルキーワード」フィールド６３には、各ユーザがそれぞれ作成した仮想ファイルツリーにおいて、そのファイルの上位階層を構成するすべてのディレクトリのディレクトリ名（つまり図３について上述したキーワード）が格納される。例えば図２の例では、「Tanaka」によって設定された仮想ファイルツリーでは、「性能」というディレクトリに「P100」というディレクトリが格納され、この「P100」というディレクトリに「P100性能アナウンス.xls」というファイルが格納されている。従って、この「P100性能アナウンス.xls」というファイルの「ファイルキーワード」フィールド６３には、「P100」及び「性能」というキーワードが格納される。
【００４３】
また、この「P100性能アナウンス.xls」というファイルは、「Satou」によって設定された仮想ファイルツリーでは、「性能」というディレクトリに格納され、このディレクトリは「発表」というディレクトリに格納され、さらにこのディレクトリは「P100」というディレクトリに格納されている。従って、このファイルの「ファイルキーワード」フィールド６３には、「P100」及び「性能」というキーワードの他に、「発表」というキーワードも格納されこととなる。
【００４４】
さらに「ファイルキーワード」フィールド６３には、ファイルが新規に作成されたときに付与される識別情報であるファイル系列番号も格納される。このファイル系列番号としては、新規ファイルごとに個別の番号が付与される。
【００４５】
ｆｄ−ｉノード変換テーブル７０は、ファイルディスクリプタとｉノードとを関連付けるテーブルであり、「ファイルディスクリプタ」フィールド７１及び「ｉノード又はキーワードリスト」フィールド７２から構成される。そして、「ｉノード又はキーワードリスト」フィールド７２には、対応するディレクトリ又はファイルのｉノード番号又はそのディレクトリ又はファイルに関連するキーワードが格納され、「ファイルディスクリプタ」フィールド７２には、そのディレクトリ又はファイルに割り当てられたファイルディスクリプタが表示される。
【００４６】
例えば図６の例の場合には、「Tanaka」が設定した仮想ファイルツリーの「性能」というディレクトリには「10002」というファイルディスクリプタが割り当てられ、「性能」の下階層の「P100」というディレクトリ（「性能、P100」）には「10003」というファイルディスクリプタが割り当てられていることが分かる。
【００４７】
（２−２）記憶システムにおけるファイル読出し処理
次に、本実施の形態の記憶システム１におけるファイルの読出し処理について説明する。これに際して、まず、従来の記憶システムにおけるファイルの読出し処理について説明する。
【００４８】
図７は、従来構成の記憶システムにおいて、ユーザがクライアント装置９０を用いて従来構成のストレージ装置９１内に格納された所望するファイルにアクセスするまでの一連の手順を示したフローチャートである。この図７の例は、図８に示すように、ルートディレクトリ（「root」）のサブディレクトリとして「usr」、「bin」及び「etc」のディレクトリが存在し、「usr」のサブディレクトリとして「dir1」及び「dir2」が存在し、さらに「dir1」内に「file1.txt」等のファイルが格納されている場合を示している。
【００４９】
なお、従来構成のストレージ装置９０は、各ディレクトリ又はファイルのｉノード情報を管理するための図９に示すようなｉノード管理テーブル９２と、ファイルディスクリプタを管理するための図６に示すようなｆｄ−ｉノード変換テーブルとを保持している。ｉノード管理テーブル９２は、ｉノード番号とｉノード情報とを対応付けたものであり、このｉノード情報に含まれるアドレス位置に、図１０に示すように、対応するディレクトリに格納された各サブディレクトリのディレクトリ名及びｉノード番号や、当該ディレクトリに格納されたファイルのファイルデータが格納されている。
【００５０】
例えば図９及び図１０の例では、ｉノード番号が「２」のディレクトリの内容は「aaa」というアドレス位置に格納されており、そこにはｉノード番号が「２」のディレクトリのサブディレクトリとして「usr」、「bin」及び「etc」が存在し、これらのｉノード番号がそれぞれ「10」、「20」及び「30」であるという情報が書き込まれている。また、このｉノード番号を参照して、ｉノード管理テーブル９２を検索すると、「usr」のディレクトリのアドレスが「bbb」であることが分かり、そのアドレス位置には「usr（/usr）」というディレクトリのサブディレクトリとして「dir1」及び「dir2」というディレクトリが存在し、これらのｉノード番号がそれぞれ「100」及び「200」であるという情報が書き込まれている。
【００５１】
かかる従来の記憶システムにおいて、ユーザが「file1.txt」というファイルにアクセスする場合、まず「/（ルートディレクトリ）」の下階層のディレクトリ又はファイルを検索すべき旨の検索指示をクライアント装置９０に入力する。この結果、クライアント装置９０は、かかるディレクトリ又はファイルの検索要求をストレージ装置９１に送信する（ＳＰ１）。そしてストレージ装置９１は、この検索要求を受信すると、ｉノード管理テーブル９２を参照して、対応するアドレス位置から「/」のディレクトリの内容を読み込み、そこに記載されていた「usr」、「bin」及び「etc」というディレクトリの各ディレクトリ名が搭載されたリストをクライアント装置９０に送信する（ＳＰ２）。かくして、このリスト内容がクライアント装置９０のディスプレイに表示される。
【００５２】
次いで、ユーザは、クライアント装置９０を操作して、「usr」の下階層のディレクトリ又はファイルを検索すべき旨の指示を入力する。この結果、クライアント装置９０は、「/usr」に対するファイルディスクリプタの転送要求を、「/」のファイルディスクリプタ及び「usr」のディレクトリ名と共にストレージ装置９１に送信する（ＳＰ３）。ストレージ装置９１は、この転送要求を受けると、「/usr」のディレクトリにファイルディスクリプタを割り当て、これを「/usr」というディレクトリと対応付けて、ｆｄ−ｉノード変換テーブルに登録する。またＣＰＵ１２は、この「/usr」のディレクトリに割り当てたファイルディスクリプタをクライアント装置９０に送信する（ＳＰ４）。
【００５３】
クライアント装置９０は、このディスクリプタを受信すると、このファイルディスクリプタを用いて、「/usr」の下階層のディレクトリ又はファイルを検索すべき旨の検索要求をストレージ装置９１に送信する（ＳＰ５）。そしてストレージ装置９１は、この検索要求を受信すると、ｉノード管理テーブル９２を参照して、対応するアドレス位置から「usr」のディレクトリの内容を読み込み、そこに記載されていた「dir1」及び「dir2」というディレクトリの各ディレクトリ名が搭載されたリストをクライアント装置９０に送信する（ＳＰ６）。かくして、このリスト内容がクライアント装置のディスプレイに表示される。
【００５４】
次いで、ユーザは、クライアント装置９０を操作して、「dir1」の下階層のディレクトリ又はファイルを検索すべき旨の指示を入力する。この結果、クライアント装置９１は、「/usr/dir1」に対するファイルディスクリプタの転送要求を、「/usr」のファイルディスクリプタ及び「dir1」のディレクトリ名と共にストレージ装置９１に送信する（ＳＰ７）。ストレージ装置９１は、この転送要求を受けると、「/usr/dir1」のディレクトリにファイルディスクリプタを割り当て、これを「/usr/dir1」というディレクトリと対応付けて、ｆｄ−ｉノード変換テーブルに登録する。またＣＰＵ１２は、この「/usr/dir1」のディレクトリに割り当てたファイルディスクリプタをクライアント装置９０に送信する（ＳＰ８）。
【００５５】
クライアント装置９０は、このディスクリプタを受信すると、このファイルディスクリプタを用いて、「/usr/dir1」の下階層のディレクトリ又はファイルを検索すべき旨の検索要求をストレージ装置に送信する（ＳＰ９）。そしてストレージ装置９１は、この検索要求を受信すると、ｉノード管理テーブル９２を参照して、対応するアドレス位置から「dir1」のディレクトリの内容を読み込み、そこに記載されていた各ファイル（「file1.txt」を含む）のファイル名が搭載されたリストをクライアント装置９０に送信する（ＳＰ１０）。かくして、このリスト内容がクライアント装置９０のディスプレイに表示される。
【００５６】
そこで、ユーザは、クライアント装置９０を操作して、「file1.txt」のデータを読み出すべき旨の指示を入力する。この結果、クライアント装置９０は、「/usr/dir1/ file1.txt」に対するファイルディスクリプタの転送要求をストレージ装置９１に送信する（ＳＰ１１）。ストレージ装置９１は、この転送要求を受けると、「/usr/dir1/ file1.txt」にファイルディスクリプタを割り当て、これを「/usr/dir1/ file1.txt」というファイルと対応付けて、ｆｄ−ｉノード変換テーブルに登録する。またＣＰＵ１２は、この「/usr/dir1/ file1.txt」に割り当てたファイルディスクリプタをクライアント装置９０に送信する（ＳＰ１２）。
【００５７】
クライアント装置９０は、このディスクリプタを受信すると、このファイルディスクリプタを用いて、「/usr/dir1/ file1.txt」の読出し要求をストレージ装置に送信する（ＳＰ１３）。そしてストレージ装置９１は、この読出し要求に基づいて「file1.txt」のファイルデータを対応するアドレス位置から読み出し、これをクライアント装置９０に送信する（ＳＰ１４）。かくして、このファイルデータに基づく「file1.txt」の内容がクライアント装置９０のディスプレイに表示される。
【００５８】
一方、図１１は、本実施の形態の記憶システム１において、ユーザがクライアント装置２を用いてストレージ装置４内に格納された所望するファイルにアクセスするまでの一連の手順を示したフローチャートである。この例は、ユーザが「Tanaka」であり、この「Tanaka」によって、図２に示した仮想ファイルツリーが設定されている場合を示している。従って、このときストレージ装置４が保持するｉノード−キーワード変換テーブル６０は図５と同じ内容である。
【００５９】
またこの記憶システム１では、例えば図１０の「aaa」や「bbb」又は「ccc」のアドレス位置の記憶領域に該当するような各ディレクトリの内容を示す情報が格納された記憶領域がストレージ装置４内に存在せず、図１２に示すように、各ファイルのファイルデータのみがストレージ装置４内に存在する。
【００６０】
かかる条件のもと、「Tanaka」というユーザが「P100性能アナウンス.xls」というファイルにアクセスする場合、ユーザは、「/（ルートディレクトリ）」の下階層のディレクトリ又はファイルを検索すべき旨の検索指示をクライアント装置２に入力する。この結果、クライアント装置２のＣＰＵ１０（図１）は、かかるディレクトリ又はファイルの検索要求をストレージ装置４に送信する（ＳＰ２０）。
【００６１】
ストレージ装置４のＣＰＵ２１（図１）は、このときログイン時におけるユーザの操作等に基づき、そのユーザが「Tanaka」であることを既に認識しており、かかる検索要求を受信すると、分類リストテーブル４０及びユーザ仮想ディレクトリテーブル５０を参照して、「Tanaka」が第１階層のディレクトリとして設定している分類リスト番号が「♯003」の分類リスト、つまり「製品属性」に属するキーワードが搭載されたリストをクライアント装置２に送信する（ＳＰ２１）。
【００６２】
この例の場合、「製品属性」内には「性能」、「価格」及び「仕様」等のキーワードが属するため、ストレージ装置４は、これら各キーワードのテキスト列をクライアント装置２に送信することとなる。かくして、クライアント装置２は、これら各キーワードのテキスト列を受信すると、これらを仮想ツリーファイルの第１階層目のディレクトリの各ディレクトリ名としてディスプレイに表示する。
【００６３】
続いて、ユーザは、クライアント装置２を操作して、「性能」の下階層のディレクトリ又はファイルを検索すべき旨の指示を入力する。この結果、クライアント装置２のＣＰＵ１０は、「/性能」に対するファイルディスクリプタの転送要求を、「/」のファイルディスクリプタ及び「性能」のディレクトリ名と共にストレージ装置に送信する（ＳＰ２２）。ストレージ装置４のＣＰＵ２１は、この転送要求を受けると、「/性能」のディレクトリにファイルディスクリプタを割り当て、これを「性能」というキーワードと対応付けて、ｆｄ−ｉノード変換テーブル７０（図６）に登録する（ＳＰ２３）。またＣＰＵ１２は、この「/性能」のディレクトリに割り当てたファイルディスクリプタをクライアント装置２に送信する（ＳＰ２４）。
【００６４】
クライアント装置２のＣＰＵ１０は、このディスクリプタを受信すると、このファイルディスクリプタを用いて、「/性能」の下階層のディレクトリ又はファイルを検索すべき旨の検索要求をストレージ装置４に送信する（ＳＰ２５）。そしてストレージ装置４のＣＰＵ２１は、この検索要求を受信すると、分類リストテーブル２３及びユーザ仮想ディレクトリテーブル５０を参照して、「Tanaka」が第２階層のディレクトリとして設定している分類リスト番号が「♯002」の分類リスト、つまり「製品系列」に属するキーワードが搭載されたリストをクライアント装置２に送信する（ＳＰ２６）。
【００６５】
この例の場合、「製品系列」内には「P100」及び「P200」等のキーワードが属するため、クライアント装置２のＣＰＵ１０は、これら各キーワードのテキスト列をクライアント装置２に送信することとなる。かくして、クライアント装置２は、これら各キーワードのテキスト列を受信すると、これらをツリーファイルの第２階層目のディレクトリの各ディレクトリ名としてディスプレイに表示する。
【００６６】
続いて、ユーザは、クライアント装置２を操作して、「P100」の下階層のディレクトリ又はファイルを検索すべき旨の指示を入力する。この結果、クライアント装置２のＣＰＵ１０は、「/性能/P100」に対するファイルディスクリプタの転送要求を、「/性能」のファイルディスクリプタ及び「P100」のディレクトリ名と共にストレージ装置４に送信する（ＳＰ２７）。
【００６７】
ストレージ装置４のＣＰＵ２１は、この転送要求を受けると、「/性能/P100」にファイルディスクリプタを割り当て、このファイルディスクリプタを、現在のディレクトリからルートディレクトリまでのルート上に存在するすべてのディレクトリのディレクトリ名（すなわちキーワード）と対応付けて、ｆｄ−ｉノード変換テーブル７０（図６）に登録する（ＳＰ２８）。従って、この例の場合では、かかるファイルディスクリプタは、「性能」及び「P100」というキーワードと対応付けてｆｄ−ｉノード変換テーブル７０に登録される。またＣＰＵ２１は、この「/性能/P100」にファイルディスクリプタを割り当てたファイルディスクリプタをクライアント装置２に送信する（ＳＰ２９）。
【００６８】
クライアント装置２のＣＰＵ１０は、かかるストレージ装置４からのディスクリプタを受信すると、このファイルディスクリプタを用いて、「/性能/P100」の下階層のディレクトリ又はファイルを検索すべき旨の検索要求をストレージ装置４に送信する（ＳＰ３０）。
【００６９】
ここで、「Tanaka」が設定した仮想ファイルツリーにおいて、「/性能/P100」の下階層にはディレクトリが存在せず、かかる「/性能/P100」の下階層にはファイルのみが存在する。
【００７０】
そこで、このときストレージ装置４のＣＰＵ２１は、検索エンジン８０（図２）を起動して、そのときクライアント装置２から送信されてきたファイルディスクリプタと対応付けられたキーワード（この例では「性能」及び「P100」）をｆｄ−ｉノード変換テーブル７０から読み出すと共に、ｉノード−キーワードテーブル６０上において、このキーワードと対応付けられた（すなわち、このキーワードが「ファイルキーワード」フィールド６３に格納された）ファイルを検索する（ＳＰ３１）。
【００７１】
またストレージ装置４のＣＰＵ２１は、この検索により検出された該当するすべてのファイル（「P100性能アナウンス.xls」を含む）のファイル名のテキスト列が搭載されたリストをクライアント装置２に送信する（ＳＰ３２）。かくして、このリスト内容がクライアント装置２のディスプレイに表示される。
【００７２】
続いて、ユーザは、クライアント装置２を操作して、「P100性能アナウンス.xls」のファイルデータを読み出すべき旨の指示を入力する。この結果、クライアント装置２のＣＰＵ１０は、「/性能/P100/ P100性能アナウンス.xls」のファイルディスクリプタの転送要求を、「/性能/P100」のファイルディスクリプタと共にストレージ装置４に送信する（ＳＰ３３）。
【００７３】
ストレージ装置４のＣＰＵ２１は、この転送要求を受けると、「P100性能アナウンス.xls」にファイルディスクリプタを割り当て、このファイルディスクリプタを「P100性能アナウンス.xls」のｉノード番号と対応付けて、ｆｄ−ｉノード変換テーブル７０に登録する（ＳＰ３４）。従って、この図１１の例の場合には、かかるファイルディスクリプタは、「16」というｉノード番号と対応付けてｆｄ−ｉノード変換テーブル７０に登録されることとなる（図６参照）。またＣＰＵ２１は、この「P100性能アナウンス.xls」に割り当てたファイルディスクリプタをクライアント装置２に送信する（ＳＰ３５）。
【００７４】
クライアント装置２のＣＰＵ１０は、このディスクリプタを受信すると、このファイルディスクリプタを用いて、「P100性能アナウンス.xls」の読出し要求をストレージ装置４に送信する（ＳＰ３６）。そしてストレージ装置４のＣＰＵ２１は、この読出し要求に基づいて「P100性能アナウンス.xls」のファイルデータを読み出し、これをクライアント装置２に送信する（ＳＰ３７）。かくして、このファイルデータに基づく「P100性能アナウンス.xls」の内容がクライアント装置２のディスプレイに表示される。
【００７５】
（２−３）仮想ファイルツリーのカスタマイズ機能
次に、この記憶システム１に搭載された、仮想ファイルツリーのカスタマイズ機能について説明する。この記憶システム１では、ディレクトリ構造を変更するための制御プログラム（以下、これをディレクトリ定義カスタマイズプログラムと呼ぶ）が各クライアント装置２にそれぞれ搭載されており、ユーザがクライアント装置２を用いて自己の仮想ファイルツリーの構造を自由に変更することができるようになされている。
【００７６】
図１３は、かかるディレクトリ定義カスタマイズプログラムを起動したときに、クライアント装置２のディスプレイに表示されるＧＵＩ（Graphical User Interface）画面（以下、これをディレクトリ構造カスタマイズ画面と呼ぶ）１００を示すものである。このディレクトリ構造カスタマイズ画面１００では、この記憶システム１において設定可能な仮想ファイルツリーの第１〜第３階層にそれぞれ対応させて、第１〜第３の分類リスト表示ボックス１０１Ａ〜１０１Ｃが表示される。
【００７７】
そして、クライアント装置２のＣＰＵ１０は、ディレクトリ定義カスタマイズプログラムが起動されると、ストレージ装置４と通信して、そのクライアント装置２を用いているユーザ（図の例では「Tanaka」）について現在設定されている仮想ファイルツリーの第１〜第３階層の分類リストをユーザ仮想ディレクトリテーブル５０（図２）から読み出させ、かくして得られたこれら第１〜第３階層の分類リストの名称（分類リスト名称）をそれぞれディレクトリ構造カスタマイズ画面１００内の対応する第１〜第３の分類リスト表示ボックス１０１Ａ〜１０１Ｃ内に表示させる。この際ＣＰＵ１０は、分類リストが設定されていない階層については、その階層と対応する第１〜第３の分類リスト表示ボックス１０１Ａ〜１０１Ｃ内に「（指定なし）」の文字を表示させる。
【００７８】
またディレクトリ構造カスタマイズ画面１００における各第１〜第３の分類リスト表示ボックス１０１Ａ〜１０１Ｃの右横には、それぞれメニューボタン１０２Ａ〜１０２Ｃが表示される。そしてディレクトリ構造カスタマイズ画面１００では、このメニューボタン１０２Ａ〜１０２Ｃをクリックすることにより、そのときストレージ装置４に登録されている選択可能な分類リスト（「（指定なし）」を含む）がプルダウンメニュー１０３として表示させることができる。
【００７９】
ユーザは、このプルダウンメニュー１０３に表示された分類リスト群の中から所望する分類リストをマウス操作により自由に１つ選択することができ、このとき選択された分類リストが対応する第１〜第３の分類リスト表示ボックス１０１Ａ〜１０１Ｃ内に表示される。
【００８０】
そして、ユーザは、同様の操作により第１〜第３階層と対応付けられた各第１〜第３の分類リスト表示ボックス１０１Ａ〜１０１Ｃ内にそれぞれ所望する分類リスト名称を表示させ、この後、ディレクトリ構造カスタマイズ画面１００の右上に表示された「ＯＫ」ボタン１０４をクリックするようにする。
【００８１】
このときクライアント装置２のＣＰＵ１０は、このディレクトリ構造カスタマイズ画面１００を用いて設定された仮想ファイルツリーの第１〜第３階層の各分類リストを設定仮想ファイルツリー情報として、ユーザ仮想ディレクトリテーブル５０の更新要求と共にストレージ装置４に送信する。またストレージ装置４のＣＰＵ２１は、この更新要求を受信すると、当該更新要求と共に与えられる設定仮想ファイルツリー情報に従って、ユーザ仮想ディレクトリテーブル５０におけるそのユーザのエントリを更新する。これによりそのユーザの仮想ファイルツリーが、そのときそのユーザによって設定された構造に更新されることとなる。
【００８２】
なお、クライアント装置２のＣＰＵ１０は、ユーザ操作によりディレクトリ構造カスタマイズ画面１００内の仮想ファイルツリーの第１〜第３階層の分類リストが設定された後、当該ディレクトリ構造カスタマイズ画面１００内の右上に表示されたキャンセルボタン１０５がクリックされた場合には、このときディレクトリ構造カスタマイズ画面１００において設定された設定内容を廃棄するようになされている。従って、この場合には、ストレージ装置４内に保持されたユーザ仮想ディレクトリテーブル５０におけるそのユーザのエントリは更新されない。
【００８３】
（２−４）ファイルコピー機能
図１４は、ユーザ操作に応じて、ストレージ装置４内のファイルをコピーする場合に、クライアント装置２及びストレージ装置４において行われる一連の処理手順を示したフローチャートである。この図１４においては、「P100性能アナウンス.xls」というファイルをコピー元（以下、コピー元のファイルを単にコピー元ファイルと呼ぶ）とする場合を例に示している。
【００８４】
この場合、クライアント装置２のＣＰＵ１０は、まず、コピー元ファイルのファイル属性の転送要求（以下、これをファイル属性転送要求と呼ぶ）をストレージ装置４に送信する（ＳＰ４０）。またストレージ装置４のＣＰＵ２１は、このファイル属性転送要求を受信すると、そのコピー元ファイルのファイル属性を表すファイル属性情報をクライアント装置２に送信する。ファイル属性としてどのような項目があるかは製品の実装に依るが、本実施の形態の場合には、このファイル属性情報として、ｉノード−キーワードテーブル６０（図５）におけるコピー元ファイルのエントリの「ｉノード情報」フィールド６２（図５）に格納されているｉノード情報（ファイル名称及びアドレス等）と、「ファイルキーワード」フィールド６３（図５）に格納されているファイル系列番号（「♯１２３４５」）とをクライアント装置２に送信する。
【００８５】
クライアント装置２のＣＰＵ１０は、かかるファイル属性情報を受信すると、コピー元ファイルのファイルデータの転送要求（以下、これをファイルデータ転送要求と呼ぶ）をストレージ装置４に送信する（ＳＰ４２）。またストレージ装置４のＣＰＵ２１は、このファイルデータ転送要求を受信すると、コピー元ファイルのファイルデータを対応する論理ボリュームから読み出し、これをクライアント装置２に送信する（ＳＰ４３）。
【００８６】
クライアント装置２のＣＰＵ１０は、かかるコピー元ファイルのファイルデータを受信すると、コピー元ファイルと同じディレクトリ内に新規ファイルを作成すべき旨の要求（以下、これを新規ファイル作成要求と呼ぶ）を、コピー元ファイルが格納されているディレクトリ（「/性能/P100」）のファイルディスクリプタ及び新規ファイルのファイル名称と共にストレージ装置４に送信する（ＳＰ４４）。
【００８７】
なお、この実施の形態の場合、新規ファイルのファイル名称としては、コピー元ファイルのファイル名称に「update」という文字列が付加された名称が付与される。よって、この図１４のようにコピー元ファイルのファイル名称が「P100性能アナウンス.xls」である場合、新規ファイルのファイル名称として、「P100性能アナウンスupdate.xls」というファイル名称が付与されることとなる。
【００８８】
ストレージ装置４のＣＰＵ２１は、この新規ファイル作成要求を受信すると、新規ファイルを作成して、そのｉノード情報をｉノード−キーワードテーブル６０に登録する（ＳＰ４５）。具体的に、ＣＰＵ２１は、新規ファイルのｉノード情報として、例えばステップＳＰ４４において取得した新規ファイルのファイル名称や、そのファイルの所有者などの情報をｉノード−キーワードテーブル６０（図５）の「ｉノード情報」フィールド６２（図５）に書き込む。
【００８９】
またＣＰＵ２１は、ステップＳＰ４４において取得したコピー元ファイルが格納されているディレクトリのファイルディスクリプタに基づきｆｄ−ｉノード変換テーブル７０を検索して、当該ファイルディスクリプタと対応付けられたキーワード（「性能」及び「P100」）を取得し、これをｉノード−キーワードテーブル６０における新規ファイルのエントリの「ファイルキーワード」フィールド６３（図５）に格納する（ＳＰ４６）。
【００９０】
さらにＣＰＵ２１は、新規ファイルにファイルディスクリプタを割り当て、図１５に示すように、これをｉノード−キーワードテーブル６０における新規ファイルのｉノード番号（「17」）と対応付けてｆｄ−ｉノード変換テーブル７０に登録する（ＳＰ４７）。そしてＣＰＵ２１は、この後新規ファイルに割り当てたファイルディスクリプタをクライアント装置２に送信する（ＳＰ４８）。
【００９１】
クライアント装置２のＣＰＵ１０は、この新規ファイルのファイルディスクリプタを受信すると、当該ファイルディスクリプタを用いて、ステップＳＰ４３において取得したコピー元ファイルのファイルデータを、ステップＳＰ４５においてストレージ装置４が作成したファイルの更新要求と共にストレージ装置４に送信する（ＳＰ４９）。かくして、ストレージ装置４のＣＰＵ２１は、かかる更新要求を受信すると、当該更新要求と共に送信されるファイルデータをステップＳＰ４５において作成したファイルに上書きするようにして書き込む（ＳＰ５０）。これによりコピー元ファイルのコピーが、ストレージ装置４内におけるコピー元ファイルと同じディレクトリ内に作成されたこととなる。
【００９２】
またクライアント装置２のＣＰＵ１０は、かかるファイルデータの送信と並行して、ステップＳＰ４８において取得した新規ファイルのファイルディスクリプタを用いて、ステップＳＰ４１において取得したコピー元ファイルのファイル属性情報を新規ファイルのファイル属性情報の更新要求と共にストレージ装置４に送信する（ＳＰ５１）。なお、このファイル属性情報は、上述のようにコピー元ファイルのｉノード情報及びファイル系列番号（「♯１２３４５」）から構成されるものである。
【００９３】
そしてストレージ装置４のＣＰＵ２１は、かかるファイル属性情報を受信すると、このファイル属性情報に含まれるコピー元ファイルのファイル系列番号を抽出し、図１６に示すように、このファイル系列番号をｉノード−キーワード変換テーブル６０（図５）における新規ファイルのエントリの「ファイルキーワード」フィールド６３（図５）に格納する（ＳＰ５２）。なお、ｉノード情報には、一般的にファイルの最終更新時刻が含まれているため、このような新規ファイルのファイル属性情報の更新の際には、新規ファイルのファイル属性情報に含まれる最終更新時刻も更新されることとなる。
【００９４】
（２−５）ファイル検索支援機能
上述のように、この記憶システム１では、ファイルのコピーを行なうと、そのコピーを行なったユーザの仮想ファイルツリーにおいてコピー元ファイルの上位に存在するすべてのディレクトリのディレクトリ名が新規ファイルのキーワードとして登録される。従って、かかるコピーを行なったユーザは、当該ユーザが設定した仮想ファイルツリーにおいて、コピー元ファイルと同じルートを辿って新規ファイルにアクセスすることができる。
【００９５】
しかしながら、上述のような方法によると、新規ファイルに対して、他のユーザが設定した仮想ファイルツリーにおいて上位階層に存在するディレクトリのディレクトリ名が必ずしもキーワードとして対応付けられるとは限らない。例えば図２及び図１１の例の場合、「Tanaka」が作成した「P100性能アナウンスupdate.xls」という新規ファイルには、「Tanaka」が設定した仮想ファイルツリーにおいて上位階層に存在する「性能」及び「P100」というディレクトリの各ディレクトリ名がキーワードとして対応付けられているが、「Satou」が設定した仮想ファイルツリーにおいてコピー元ファイルである「P100性能アナウンス.xls」の上位階層として存在する「発表」というディレクトリのディレクトリ名は対応付けられていない。
【００９６】
このためこの記憶システム１では、あるユーザが作成した新規ファイルに対して、他のユーザがコピー元ファイルと同じルートを辿ってその新規ファイルにアクセスすることができない事態も生ずる。
【００９７】
そこで、この記憶システム１では、ファイルコピーを行なったユーザの仮想ファイルツリーと全く異なる構造の仮想ファイルツリーを設定した他のユーザであっても、かかる新規ファイルに容易にアクセスすることができるように、ユーザのファイル検索を支援するファイル検索支援機能が搭載されている。
【００９８】
この実施の形態の場合、かかるファイル検索支援機能の実行時におけるファイル検索モードとしては、同キーワード検索モード、オールドバージョン（Old Version）検索モード及びニューバージョン（New Version）検索モードの３つのモードが存在する。
【００９９】
このうち同キーワード検索モードは、検索キーワードとしてそのとき対象としているファイル（以下、これを対象ファイルと呼ぶ）のファイル系列番号以外のすべてのキーワードを利用して、これらのキーワードがすべて自己のキーワードとして対応付けられたファイルの検索を行うファイル検索モードである。
【０１００】
またオールドバージョン検索モードは、検索キーワードとして対象ファイルのファイル系列番号を利用して、このファイル系列番号が自己のキーワードとして対応付けられたファイルのうち、最後更新時間が対象ファイルの最終更新時間よりも前のファイルの検索を行なうファイル検索モードである。
【０１０１】
さらにニューバージョン検索モードは、検索キーワードとして対象ファイルのファイル系列番号を利用して、このファイル系列番号が自己のキーワードとして対応付けられたファイルのうち、最後更新時間が対象ファイルの最終更新時間よりも後のファイルの検索を行なうファイル検索モードである。
【０１０２】
そして、この記憶システム１では、図１７に示すように、クライアント装置２のディスプレイにそのユーザの仮想ファイルツリーが表示されている状態において、マウス操作により１つのファイル（以下、これを対象ファイルと呼ぶ）を選択し、その後マウスを右クリックすることによって、図１８に示すように、かかる３つのファイル検索モードのモード名が表示されたウインド（以下、これを検索モードメニューウインドと呼ぶ）１１０を表示させることができる。
【０１０３】
これによりユーザは、検索モードメニューウインドウインド１１０内に表示されたこれら３つのファイル検索モードの中から所望の検索モードをマウス操作により選択することができる。この結果、このとき選択されたファイル検索モードによるファイル検索処理がストレージ装置４において実行され、その検索結果がクライアント装置２のディスプレイに表示される。
【０１０４】
この場合において、例えばユーザがファイル検索モードとして、オールドバージョン検索モード又はニューバージョン検索モードを選択した場合には、検索キーワードとして対象ファイルのファイル系列番号以外のキーワードを検索キーワードとして追加するか否かをユーザに確認するための図１９に示すようなウインド（以下、追加検索キーワードウインドと呼ぶ）１１１がクライアント装置２のディスプレイに表示される。
【０１０５】
ここで図１９は、「Tanaka」が「P100性能アナウンス.xls」というファイルを対象ファイルとしている場合のウインド１１１の表示例を示したものである。図２に示すように、「Tanaka」の仮想ファイルツリーにおいて、「P100性能アナウンス.xls」の上位階層には「性能」及び「P100」というディレクトリが存在する。その一方で、ステップＳＰにおいて取得したキーワードには、かかる「性能」及び「P100」以外に「発表」が存在する。
【０１０６】
そこで、このような場合、かかる追加検索キーワードウインド１１１内には、そのユーザの仮想ファイルツリーにおいて対象ファイルの上位階層として存在するディレクトリのディレクトリ名を表すキーワード（「性能」及び「P100」）が既に選択された状態（対応するチェックボックス１２０内にチェックマーク１２１が表示された状態）で表示され、これとは別にステップＳＰにおいて取得したキーワードのうちの残りのキーワード（「発表」）が未選択の状態（対応するチェックボックス１２０内にチェックマーク１２１が表示されていない状態）で表示される。
【０１０７】
そして追加検索キーワードウインド１１１では、対応するチェックボックス１２０内にチェックマーク１２１が表示されたキーワードについては、当該チェックボックス１２０をクリックすることによりチェックマーク１２１を消して、そのキーワードを未選択の状態にすることができ、また対応するチェックボックス１２０内にチェックマーク１２１が表示されていないキーワードについては、当該チェックボックス１２０をクリックすることによりチェックマーク１２１を表示させて、そのキーワードを選択した状態にすることができる。
【０１０８】
かくしてユーザは、かかる追加検索キーワードウインド１１１内に表示された各キーワードの中から追加的な検索キーワードとして含めたいキーワードを選択した状態に設定した後、追加検索キーワードウインド１１１内に表示されたＯＫボタン１２２をクリックするようにする。これによりこのキーワードを検索キーワードとして含めたファイル検索をストレージ装置４に行わせることができる。また検索キーワードの追加を行なわないときには、追加検索キーワードウインド１１１内に表示されたすべてのキーワードオールドを未選択の状態に設定した後、ＯＫボタン１２２をクリックするようにする。これにより対象ファイルのファイル系列番号のみを検索キーワードとするファイル検索をストレージ装置４に行わせることができる。
【０１０９】
なお、バージョン検索モード又はニューバージョン検索モードによるファイル検索を中止したいときには、追加検索キーワードウインド１１１内に表示されたキャンセルボタン１２３をクリックすれば良く、これによりかかるファイル検索を中止させて、追加検索キーワードウインド１１１を閉じさせることができる。
【０１１０】
図２０は、このようなファイル検索支援機能に関するクライアント装置２及びストレージ装置４の一連の処理の処理手順を示すフローチャートである。この実施の形態の場合、クライアント装置２には、図１１について上述したようなストレージ装置４とのやり取りの結果として得られた情報に基づいて、そのユーザの仮想ファイルツリーを図１７のように表示するための制御プログラムである仮想ファイルツリー表示プログラム１３０と、かかるファイル検索支援機能を実行するための制御プログラムであるファイル検索支援プログラム１３１とがメモリ２２（図１）内に格納されている。
【０１１１】
そしてクライアント装置２のＣＰＵ１０は、そのユーザが設定した仮想ファイルツリーを仮想ファイルツリー表示プログラム１３０に基づいてディスプレイに表示している状態において、その表示した仮想ファイルツリー内の１つのファイルが選択されてマウスの右クリックが行なわれると、ファイル検索支援プログラム１３１に基づいて、図１８について上述した検索モードメニューウインド１１０を表示する。
【０１１２】
またＣＰＵ１０は、かかる表示処理と並行して、ファイル検索支援プログラムに基づいて、そのとき選択されたファイル（対象ファイル）を指定して、そのキーワードを転送すべき旨の転送要求をストレージ装置４に送信する（ＳＰ６０）。ストレージ装置４のＣＰＵ２１は、かかるキーワードの転送要求を受信すると、ｉノード−キーワード検索テーブル６０を参照して、そのファイルと対応付けられたキーワードのリストをクライアント装置２に送信する（ＳＰ６１）。
【０１１３】
一方、クライアント装置２のＣＰＵ１０は、この後検索モードメニューウインド１１０内に表示した３つのファイル検索モード（同キーワード検索モード、オールドバージョン検索モード及びニューバージョン検索モード）の中から同キーワード検索モードが選択された場合には、対象ファイルを指定する情報（以下、これを対象ファイル指定情報と呼ぶ）と、選択されたファイル検索モードの種類を表す情報（以下、これを選択ファイル検索モード情報と呼ぶ）とをストレージ装置４に送信する。
【０１１４】
またＣＰＵ１０は、このとき同キーワード検索モードではなく、オールドバージョン検索モード又はニューバージョン検索モードが選択された場合には、ステップＳＰ６１において取得した対象ファイルのキーワードの情報に基づいて、上述の追加検索キーワードウインド１１１をディスプレイに表示させる。そしてＣＰＵ１０は、追加検索キーワードウインド１１１上において追加的な検索キーワードが選択されて設定された後にこの追加検索キーワードウインド１１１内のＯＫボタンがクリックされると、かかる対象ファイル指定情報及び選択ファイル検索モード情報をストレージ装置４に送信する。
【０１１５】
この後クライアント装置２のＣＰＵ１０及びストレージ装置４のＣＰＵ２１は、対象ファイルのファイル系列番号や他の検索キーワードをそれぞれディレクトリに見立てて図１１についてステップＳＰ２２〜ステップＳＰ３１までの処理と同様の処理を実行することにより、条件を満たすファイルを検索する。
【０１１６】
この結果、例えばファイル検索モードとして同キーワード検索モードが指定されていた場合には、対象ファイルのファイル系列番号以外のすべてのキーワード対応付けられたファイルが検出され、ファイル検索モードとしてオールドバージョン検索モードが指定されていた場合には、対象ファイルのファイル系列番号と、図１９について上述した追加検索キーワードウインド１１１を用いて設定されたすべてのキーワードとが対応付けられたファイルであって、最終更新時間が対象ファイルよりも前のファイルが検出される。さらにファイル検索モードとしてニューバージョン検索モードが指定されていた場合には、対象ファイルのファイル系列番号と、図１９について上述した追加検索キーワードウインド１１１を用いて設定されたすべてのキーワードとが対応付けられたファイルであって、最終更新時間が対象ファイルよりも後のファイルが検出される。
【０１１７】
その後ストレージ装置４２１のＣＰＵは、このようなクライアント装置２と連携した検索処理により検出した条件を満たすファイルの一覧（以下、これを検索ファイル一覧と呼ぶ）にファイルディスクリプタを付与し、検索ファイル一覧を擬似的なディレクトリとしてｆｄ−ｉノード変換テーブルに登録すると共に（ＳＰ６３）、この検索ファイル一覧に付与したファイルディスクリプタをクライアント装置に送信する（ＳＰ６４）。
【０１１８】
これによりクライアント装置２では、このファイルディスクリプタを用いてストレージ装置４に検索ファイル一覧の転送要求を送信することにより、当該検索ファイル一覧を取得し、これをディスプレイに可視表示することが可能となる。
【０１１９】
（３）本実施の形態の効果
以上の構成において、ストレージ装置４は、クライアント装置２から与えられるディレクトリのリスト検索要求に応答し、ＲＡＭ２３に保持した分類リストテーブル４０及びユーザ仮想ディレクトリテーブル５０を参照して、対応するユーザについて、リスト検索要求に応じた階層に対して設定された分類リストを当該クライアント装置に送信し、クライアント装置２は、ストレージ装置４から送信される分類リストに含まれる各キーワードを、それぞれ仮想的なディレクトリとして表示する。
【０１２０】
従って、この記憶システム１では、クライアント装置２からのアクセス方式を変更することなく、ストレージ装置４におけるディレクトリ構造（ファイルツリーの構造）をユーザごとに柔軟に設定することが可能となる。よって、この記憶システム１では、ファイルを所望のディレクトリに保存することができるため、ユーザがファイルを多重化して自己の都合に合わせて複数のディレクトリに保持することを有効に防止することができ、かくしてストレージ装置の記憶容量を効率的に利用可能とする記憶システムを実現できる。
【０１２１】
またこの記憶システム１では、図２１に示すように、ｉノード−キーワードテーブル６０及びファイルデータを別個の論理ボリュームに格納することができ、これらの論理ボリュームを拡張することでｉノード−キーワードテーブルに登録するエントリ数や、ファイルデータ量をストレージが認識可能な最大容量まで拡張することができるため、従来問題となっていたｉノード不足によるファイルの作成制限の発生を有効に防止することができる。この場合において、ｉノードキーワードテーブル６０における各エントリの大きさを固定長（例えば128〔kbyte〕）に固定することによって、ｉノード−キーワードテーブル６０内の各エントリに対するアクセス制御を容易化することができる。
【０１２２】
（４）他の実施の形態
なお上述の実施の形態においては、仮想ファイルツリーのツリー構造を最大４階層とするようにした場合について述べたが、本発明はこれに限らず、５階層以上の仮想ファイルツリーを設定できるようにして良い。
【０１２３】
また上述の実施の形態においては、それぞれ１又は複数のキーワードを含む複数種類の分類リストを管理するための第１の管理情報としてのｉノード−キーワードテーブル６０と、仮想ファイルツリーの各階層に対して各ユーザがそれぞれ設定した分類リストの種類を管理するための第２の管理情報としてのユーザ仮想ディレクトリテーブル５０と、各ユーザがそれぞれ設定した仮想的なファイルツリーにおいて、ファイルの上位階層を構成するすべての仮想的なディレクトリのディレクトリ名であるキーワードを当該ファイルと対応付けて管理するための第３の管理情報としてのｉノード−キーワードテーブル６０とを記憶する記憶部として、ＲＡＭ２３を適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の記憶デバイスを広く適用することができる。
【０１２４】
さらに上述の実施の形態においては、クライアント装置２から与えられるディレクトリのリスト検索要求に応答し、ｉノード−キーワードテーブル６０及びユーザ仮想ディレクトリテーブル５０を参照して、対応するユーザが仮想ファイルツリーの対応する階層に対して設定した分類リストをクライアント装置２に送信する制御部として、ストレージ装置４全体の動作制御を司るＣＰＵ２１を適用するようにした場合について述べたが、本発明はこれに限らず、ＣＰＵ２１とは別個にかかる制御部を設けるようにしても良い。
【０１２５】
さらに上述の実施の形態においては、仮想ファイルツリーの各階層のキーワード定義をユーザごとに設定できるようにした場合について述べたが、本発明はこれに限らず、ユーザごとに加え又は代えて、仮想ファイルツリーの各階層のキーワード定義を複数のユーザからなるグループごとに設定できるようにしても良い。
【０１２６】
さらに上述の実施の形態においては、仮想ファイルツリーの各階層のキーワード定義をユーザ自身が設定できるようにした場合について述べたが、本発明はこれに限らず、ユーザ自身に加え又は代えて、仮想ファイルツリーの各階層のキーワード定義をユーザを管理する管理者が設定できるようにしても良い。
【産業上の利用可能性】
【０１２７】
本発明は、ＮＡＳ機能が搭載されたストレージ装置を含む記憶システムに広く適用することができる。
【図面の簡単な説明】
【０１２８】
【図１】本実施の形態による記憶システムを示すブロック図である。
【図２】ストレージ装置の内部構成及び仮想ファイルツリーの説明に供する概念図である。
【図３】分類リストテーブルを示す概念図である。
【図４】ユーザ仮想ディレクトリテーブルを示す概念図である。
【図５】ｉノード−キーワードテーブルテーブルを示す概念図である。
【図６】ｆｄ−ｉノード変換テーブルテーブルを示す概念図である。
【図７】従来構成の記憶システムにおけるファイル読出し処理の説明に供するフローチャートである。
【図８】従来構成の記憶システムにおけるファイル読出し処理の説明に供する概念図である。
【図９】従来構成の記憶システムにおけるｉノード管理テーブルを示す概念図である。
【図１０】従来構成の記憶システムにおけるファイル読出し処理の説明に供する概念図である。
【図１１】本実施の形態の記憶システムにおけるファイル読出し処理の説明に供するフローチャートである。
【図１２】本実施の形態の記憶システムにおけるファイル読出し処理の説明に供する概念図である。
【図１３】ディレクトリ構造カスタマイズ画面の説明に供する平面図である。
【図１４】記憶システムにおけるファイルコピー機能の説明に供するフローチャートである。
【図１５】記憶システムにおけるファイルコピー機能の説明に供する概念図である。
【図１６】記憶システムにおけるファイルコピー機能の説明に供する概念図である。
【図１７】記憶システムにおけるファイル支援機能の説明に供する略線図である。
【図１８】検索モードメニューウインドの説明に供する略線図である。
【図１９】追加検索キーワードウインドを示す略線図である。
【図２０】記憶システムにおけるファイル支援機能の説明に供するフローチャートである。
【図２１】他の実施の形態の説明に供する概念図である。
【符号の説明】
【０１２９】
１……記憶システム、２，２Ａ，２Ｂ，９０……クライアント装置、３……ネットワーク、４，９１……ストレージ装置、１０，２１……ＣＰＵ、１１……メモリ、２０……コントロール部、３０……記憶部、３１……記憶デバイス、４０……分類リストテーブル、５０……ユーザ仮想ディレクトリテーブル、６０，１４０……ｉノード−キーワードテーブル、７０……ｆｄ−ｉノード変換テーブル、１００……ディレクトリ構造カスタマイズ画面、１１０……検索モードメニューウインド、１１１……追加検索キーワードウインド、１３０……仮想ファイルツリー表示プログラム、１３１……ファイル検索支援プログラム。
【図１】
0004842632.tif 000002
【図２】
0004842632.tif 000003
【図３】
0004842632.tif 000004
【図４】
0004842632.tif 000005
【図５】
0004842632.tif 000006
【図６】
0004842632.tif 000007
【図７】
0004842632.tif 000008
【図８】
0004842632.tif 000009
【図９】
0004842632.tif 000010
【図１０】
0004842632.tif 000011
【図１１】
0004842632.tif 000012
【図１２】
0004842632.tif 000013
【図１３】
0004842632.tif 000014
【図１４】
0004842632.tif 000015
【図１５】
0004842632.tif 000016
【図１６】
0004842632.tif 000017
【図１７】
0004842632.tif 000018
【図１８】
0004842632.tif 000019
【図１９】
0004842632.tif 000020
【図２０】
0004842632.tif 000021
【図２１】
0004842632.tif 000022