(57)【要約】【課題】リストアしたファイルと他のファイルとの間の不整合の発生を防止して使い勝手を向上し得る情報処理装置及び方法を提案する。【解決手段】バックアップされた仮想ツリーをリストアする際に、当該仮想ツリーに属する各ファイル及び各ディレクトリの所有者を判定し、判定結果に基づいて、ファイル又はディレクトリの所有者が対象とするユーザでない場合であって、バックアップされたファイル又はディレクトリの更新時刻及び又はバージョンが現在のファイル又はディレクトリの更新時刻及び又はバージョンよりも古いときには、当該ファイル又は当該ディレクトリを対象とするユーザがアクセス可能な特殊なディレクトリ内に元の仮想ツリーのツリー構造を保ったままリストアするようにした。【選択図】図９
2008293317.tif 000002
【特許請求の範囲】
【請求項１】
ファイルシステムを構成するファイル及びディレクトリのうち、対象とするユーザが参照可能なファイル及びディレクトリのみからなる仮想的なファイルシステムツリーでなる仮想ツリーであってバックアップされた前記仮想ツリーをリストアする際に、当該仮想ツリーに属する各前記ファイル及び各前記ディレクトリの所有者を判定する判定部と、
前記判定部の判定結果に基づいて、前記ファイル又は前記ディレクトリの所有者が前記対象とするユーザでない場合に、バックアップされた当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンと、現在の当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンとを比較し、前記バックアップされたファイル又はディレクトリの更新時刻及び又はバージョンが前記現在のファイル又はディレクトリの更新時刻及び又はバージョンよりも古いときには、当該ファイル又は当該ディレクトリを前記対象とするユーザがアクセス可能な特殊なディレクトリ内に元の前記仮想ツリーのツリー構造を保ったままリストアするリストア部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記リストア部は、
前記バックアップされたファイル又はディレクトリの更新時刻及び又はバージョンが前記現在のファイル又はディレクトリの更新時刻及び又はバージョンよりも古いときには、当該ファイル又は当該ディレクトリのパス名の先頭に前記特殊なディレクトリへのパス名を付加するようにして、当該ファイル又は当該ディレクトリを前記対象とするユーザがアクセス可能な特殊なディレクトリ内にリストアする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特殊なディレクトリは、予め設定されたディレクトリである
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記リストア部は、
前記ファイル又は前記ディレクトリの所有者が前記対象とするユーザである場合には、当該ファイル又は当該ディレクトリのデータを現在の当該ファイル又は当該ディレクトリのデータに上書きする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記リストア部は、
前記ファイル又は前記ディレクトリの所有者が前記対象とするユーザでない場合であって、バックアップされた当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンと、現在の当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンとが同じときには、当該ファイル又はディレクトリについてなにもしない
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記リストア部は、
更新時刻及び又はバージョンが現在のものよりもバックアップされたものの方が古い前記ファイル及び前記ディレクトリを管理するテーブルを備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
ファイルシステムを構成するファイル及びディレクトリのうち、対象とするユーザが参照可能なファイル及びディレクトリのみからなる仮想的なファイルシステムツリーでなる仮想ツリーであってバックアップされた前記仮想ツリーをリストアする際に、当該仮想ツリーに属する各前記ファイル及び各前記ディレクトリの所有者を判定する第１のステップと、
判定結果に基づいて、前記ファイル又は前記ディレクトリの所有者が前記対象とするユーザでない場合に、バックアップされた当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンと、現在の当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンとを比較し、前記バックアップされたファイル又はディレクトリの更新時刻及び又はバージョンが前記現在のファイル又はディレクトリの更新時刻及び又はバージョンよりも古いときには、当該ファイル又は当該ディレクトリを前記対象とするユーザがアクセス可能な特殊なディレクトリ内に元の前記仮想ツリーのツリー構造を保ったままリストアする第２のステップと
を備えることを特徴とする情報処理方法。
【請求項８】
前記第２のステップでは、
前記バックアップされたファイル又はディレクトリの更新時刻及び又はバージョンが前記現在のファイル又はディレクトリの更新時刻及び又はバージョンよりも古いときには、当該ファイル又は当該ディレクトリのパス名の先頭に前記特殊なディレクトリへのパス名を付加するようにして、当該ファイル又は当該ディレクトリを前記対象とするユーザがアクセス可能な特殊なディレクトリ内にリストアする
ことを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記特殊なディレクトリは、予め設定されたディレクトリである
ことを特徴とする請求項７に記載の情報処理方法。
【請求項１０】
前記第２のステップでは、
前記ファイル又は前記ディレクトリの所有者が前記対象とするユーザである場合には、当該ファイル又は当該ディレクトリのデータを現在の当該ファイル又は当該ディレクトリのデータに上書きする
ことを特徴とする請求項７に記載の情報処理方法。
【請求項１１】
前記第２のステップでは、
前記ファイル又は前記ディレクトリの所有者が前記対象とするユーザでない場合であって、バックアップされた当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンと、現在の当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンとが同じときには、当該ファイル又はディレクトリについてなにもしない
ことを特徴とする請求項７に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び方法に関し、例えばストレージシステムに適用して好適なものである。
【背景技術】
【０００２】
従来、ＨＴＭＬ（HyperText Markup Language）やワード（マイクロソフト社  登録商標）のリンク機能を用いて、他のユーザが公開しているファイルにリンクを張ったファイルを作成することが広く行われている。
【０００３】
このような他のファイルにリンクが張られたリンク元のファイルをバックアップした場合、そのリンク元のファイルをリストア（復元）したときに、リンク先のファイルに対してリンク元のファイルのバージョンが古くなってしまい、リンク元のファイルとリンク先のファイルとの間で不整合が発生することがある。例えばリンク元のファイルがコンパイラ、リンク先のファイルがソースコードであり、ソースプログラムのバージョン変更によりソースコードが変更されていた場合には、かかるコンパイラによってソースコードをコンパイルできないという事態が発生する。
【０００４】
かかる問題を解決するための方法として、ファイルシステム内のファイルをバックアップする際に、ＮＤＭＰ（Network Data Management Protocol）のｔａｒコマンドや特許文献１に記載の技術を用いて、そのファイルに加えて他のユーザが公開しているファイルもバックアップしておくことが考えられる。
【０００５】
なお、ｔａｒコマンドは、ファイルをテープにバックアップする際に用いられる一般的なコマンドである。また特許文献１には、物理的な格納場所及び論理的な格納場所を別々に管理することで、利用者がファイルの格納先を意識することなくファイルを操作できる技術が開示されている。
【特許文献１】特開２００６−３２３９９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、例えばクライアントのＯＳ（Operation System）として広く用いられているＷｉｎｄｏｕｓ（マイクロソフト社  登録商標）には、ツリーを参照するときにアクセス権限のないファイルやディレクトリを隠蔽するＡＢＥ（Access-Based Enumeration）という機能が搭載されている。このためかかるｔａｒコマンドを用いる場合、アクセス権がないとディレクトリが隠蔽されてしまうため、公開されている他のユーザのファイルが隠蔽されたディレクトリ以下に存在する場合には、そのファイルをバックアップできないという問題があった。
【０００７】
またかかる特許文献１に記載の技術によると、論理的な格納場所を参照するユーザがあるファイルに別のファイルの論理的な格納場所を記述した場合、物理的な格納場所を参照するユーザプログラムでは別のファイルを参照できない問題がある。例えばプログラムソースのヘッダのインクードや、ＨＴＭＬでの画像などが挙げられる。
【０００８】
本発明は以上の点を考慮してなされたもので、リストアしたファイルと他のファイルとの間の不整合の発生を防止して使い勝手を向上し得る情報処理装置及び方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、ファイルシステムを構成するファイル及びディレクトリのうち、対象とするユーザが参照可能なファイル及びディレクトリのみからなる仮想的なファイルシステムツリーでなる仮想ツリーであってバックアップされた前記仮想ツリーをリストアする際に、当該仮想ツリーに属する各前記ファイル及び各前記ディレクトリの所有者を判定する判定部と、前記判定部の判定結果に基づいて、前記ファイル又は前記ディレクトリの所有者が前記対象とするユーザでない場合に、バックアップされた当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンと、現在の当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンとを比較し、前記バックアップされたファイル又はディレクトリの更新時刻及び又はバージョンが前記現在のファイル又はディレクトリの更新時刻及び又はバージョンよりも古いときには、当該ファイル又は当該ディレクトリを前記対象とするユーザがアクセス可能な特殊なディレクトリ内に元の前記仮想ツリーのツリー構造を保ったままリストアするリストア部とを備えることを特徴とする。
【００１０】
この結果、この情報処理装置では、そのユーザが所有権を有さないファイル及びディレクトリであって既に更新されているものについては、特殊なディレクトリ内に元のツリー構造を保ったままリストアされるため、リストア後の仮想ツリーにおいて、そのファイル又はディレクトリへのアクセス先をその特殊なディレクトリ内にリストアされたファイル又はディレクトリに切り替えることによって、ユーザが所有権を有するファイルと、他のユーザのファイルとの間で不整合が発生することを有効に防止することができる。
【００１１】
また本発明においては、ファイルシステムを構成するファイル及びディレクトリのうち、対象とするユーザが参照可能なファイル及びディレクトリのみからなる仮想的なファイルシステムツリーでなる仮想ツリーであってバックアップされた前記仮想ツリーをリストアする際に、当該仮想ツリーに属する各前記ファイル及び各前記ディレクトリの所有者を判定する第１のステップと、判定結果に基づいて、前記ファイル又は前記ディレクトリの所有者が前記対象とするユーザでない場合に、バックアップされた当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンと、現在の当該ファイル又は当該ディレクトリの更新時刻及び又はバージョンとを比較し、前記バックアップされたファイル又はディレクトリの更新時刻及び又はバージョンが前記現在のファイル又はディレクトリの更新時刻及び又はバージョンよりも古いときには、当該ファイル又は当該ディレクトリを前記対象とするユーザがアクセス可能な特殊なディレクトリ内に元の前記仮想ツリーのツリー構造を保ったままリストアする第２のステップとを備えることを特徴とする。
【００１２】
この結果、この情報処理方法によれば、そのユーザが所有権を有さないファイル及びディレクトリであって既に更新されているものについては、特殊なディレクトリ内に元のツリー構造を保ったままリストアされるため、リストア後の仮想ツリーにおいて、そのファイル又はディレクトリへのアクセス先をその特殊なディレクトリ内にリストアされたファイル又はディレクトリに切り替えることによって、ユーザが所有権を有するファイルと、他のユーザのファイルとの間で不整合が発生することを有効に防止することができる。
【発明の効果】
【００１３】
本発明によれば、リストアしたファイルと他のファイルとの間の不整合の発生を防止して使い勝手を向上し得る情報処理装置及び方法を実現できる。
【発明を実施するための最良の形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）第１の実施の形態
（１−１）ストレージシステムの全体構成
図１において、１は全体として本実施の形態によるストレージシステムを示す。このストレージシステム１では、１又は複数のクライアント２がネットワーク３を介してファイルサーバ４と接続され、ファイルサーバ４にストレージ装置５が接続されている。またネットワーク３には管理計算機６及びバックアップサーバ７が接続され、バックアップサーバ５にはテープ装置８が接続されている。
【００１６】
クライアント２は、ユーザが利用し、ファイルサーバ４に対してファイルアクセスを要求する端末であり、パーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。このクライアント２は、図２に示すように、ＣＰＵ（Central Processing Unit）１０、メモリ１１及びネットワークインタフェース１２等の情報処理資源を備える。
【００１７】
メモリ１１には、制御プログラムとしてのファイル共有クライアント１３が格納されており、このファイル共有クライアント１３をＣＰＵ１０が実行することにより、クライアント２がストレージ装置５に格納されたファイルに対してアクセスすることができる。ネットワークインタフェース１２は、クライアント２がネットワーク３を介してファイルサーバ４や管理計算機６と通信するためのインタフェースである。
【００１８】
ファイルサーバ４は、クライアント２からのファイルアクセス要求を受けてファイルアクセスサービスを提供するサーバであり、ＮＦＳ（Network File System）サーバや、ＣＩＦＳ（Common Internet File System）サーバなどから構成される。ファイルサーバ４は、図１に示すようにネットワークインタフェース２０、ＣＰＵ２１、メモリ２２及びストレージインタフェース２３を備え、ネットワークインタフェース２０及びＣＰＵ２１間、ＣＰＵ２１及びストレージインタフェース２３間並びにＣＰＵ２１及びメモリ２２間がバス２４を介して通信可能な状態に接続されている。
【００１９】
ネットワークインタフェース２０及びストレージインタフェース２３は、例えばＳＣＳＩ（Small Computer System Interface）カードやＬＡＮ（Local Area Network）インタフェースカード、ＦＣ（Fibre channel）インタフェースカード等のネットワークインタフェースカードから構成され、ファイルサーバ４をクライアント２やストレージ装置５に接続するためのデータ入出力アダプタとして用いられる。
【００２０】
ＣＰＵ２１は、ファイルサーバ４全体の動作制御を司るプロセッサであり、メモリ２２に格納された各種プログラムに基づいて、各種の制御処理を実行する。メモリ２２は、主として各種プログラム及び各種管理テーブルを保持するために使用される。図３に示すように、後述する仮想ツリー提供プログラム３０、ファイルシステム監視プログラム３１及びバックアップエージェント３２や、後述するユーザごとの仮想ツリーテーブル３３（３３Ａ〜３３ｎ）及び位置変換テーブル３４もこのメモリ２２に格納される。
【００２１】
ストレージ装置５は、複数の記憶デバイス４０と、これら記憶デバイス４０を制御するコントローラ４１とから構成される。
【００２２】
記憶デバイス４０は、例えばＦＣディスク等の高価なディスクドライブや、ＳＡＴＡ（Serial AT Attachment）ディスク若しくは光ディスクドライブ等の安価なディスクドライブ、又は半導体メモリなどから構成される。所定数（例えば４つ）の記憶デバイス４０によって１つのＲＡＩＤ（Redundant Array of Inexpensive Disks）グループが構成され、１つのＲＡＩＤグループを構成する各記憶デバイス４０が提供する記憶領域上に１又は複数の論理的なボリュームＶＯＬが定義される。そして、このボリュームＶＯＬにファイルシステム４２のデータが格納される。
【００２３】
コントローラ４１は、ＣＰＵ及びメモリ等のハードウェア資源を備える。コントローラ４１は、クライアント２からの要求に応じて、データをストレージ装置５内の指定されたボリュームＶＯＬに読み書きするための制御処理を実行する。
【００２４】
管理計算機６は、ストレージシステム１を保守・管理するためのコンピュータ装置であり、パーソナルコンピュータ、ワークステーション又はメインフレームなどから構成される。この管理計算機５は、図４に示すように、ＣＰＵ５０、メモリ５１、ネットワークインタフェース５２及びディスプレイ５３を備える。
【００２５】
メモリ５１には制御プログラムとしての管理プログラム５４が格納されており、ＣＰＵ５０がこの管理プログラム５４を実行することにより、ストレージ装置５から必要な情報を収集し、収集した情報をディスプレイ５３に表示したり、ストレージ装置５やファイルサーバ４に対して指定されたパラメータを設定するなどの処理を行う。ネットワークインタフェース５２は、クライアント２のネットワークインタフェース１２（図２）と同様のものである。ディスプレイ５３は、例えばＣＲＴ（Cathode-Ray Tube）や液晶パネルなどから構成される。
【００２６】
バックアップサーバ７は、ストレージ装置５に格納されたデータを読み出してテープ装置８に装填された磁気テープにバックアップしたり、当該磁気テープにバックアップしたデータをストレージ装置５上にリストアするための制御処理を行うサーバであり、図５に示すように、ＣＰＵ６０、メモリ６１、ネットワークインタフェース６２及びデバイスインタフェース６３等の情報処理資源を備えて構成される。
【００２７】
メモリ６１には、制御プログラムとしてのバックアッププログラム６４が格納されており、このバックアッププログラム６４をＣＰＵ６０が実行することにより、バックアップサーバ７全体として上述のようなバックアップ及びリストアに関する制御処理が行われる。ネットワークインタフェース６２は、クライアント２のネットワークインタフェース１２（図２）と同様のものであり、デバイスインタフェース６３はテープ装置８との間でデータやコマンドを送受するためのインタフェースである。
【００２８】
テープ装置８は、磁気テープに対してデータを読み書きする記録再生装置であり、テープドライブ７０、コントローラ７１及びデバイスインタフェース７２を備える。テープドライブ７０は、コントローラ７１の制御のもとに、装填された磁気テープにデータを記録再生したり、磁気テープを早送り又は巻戻しするためのドライブ機構である。コントローラ７１は、ＣＰＵ及びメモリ等の情報処理資源を備え、バックアップサーバ７からの指示に応じてテープドライブ７０を駆動制御することにより、バックアップ対象又はリストア対象のデータを磁気テープに対して読み書きする。
【００２９】
図６は、ファイルシステム４２（図１）の一般的な構造を示している。ファイルシステム４２においてファイルは、ディレクトリと呼ばれる保管場所に収納される。ディレクトリには、ファイルだけでなく他のディレクトリも収納することができ、これによりディレクトリのツリー構造（階層構造）が形成される。このようなディレクトリのツリー構造において、最上位階層のディレクトリを「ルート（又はルートディレクトリ）」、各ユーザにそれぞれ割り当てられるそのユーザ個人の作業用のディレクトリを「ホームディレクトリ」と呼ぶ。ユーザは、ホームディレクトリ以下に自分のディレクトリ構造を構築することになる。
【００３０】
図７に示すように、ファイルシステム４２では、ファイルやディレクトリのメタデータ８４（８４Ａ〜８４ｎ）、ディレクトリエントリ８５（８５Ａ〜８５ｎ）及びログは、それぞれメタデータ領域８０、ディレクトリエントリ領域８１、データ領域８２及びログ領域８３と呼ばれる記憶領域に格納されて一元管理される。
【００３１】
メタデータ８４（８４Ａ〜８４ｎ）は、対応するファイル又はディレクトリの管理情報であり、ファイル及びディレクトリごとに作成される。各メタデータ８４は、メタデータ番号、サイズ、ファイルタイプ、アクセス権、属性名及びポインタの各情報９０Ａ〜９０Ｆから構成される。
【００３２】
メタデータ番号は、各メタデータ８４に付与されるそのメタデータ８４に固有の識別番号であり、サイズは、対応するファイル又はディレクトリのデータサイズを表す。またファイルタイプは、対応先がファイルである場合にそのファイルのタイプを表し、アクセス権は、そのファイル又はディレクトリについて設定されたアクセス権に関する情報を表す。さらに属性名は、対応するファイル又はディレクトリの所有者名を表し、ポインタは、データ領域８２の中で対応先がファイルである場合におけるそのファイルのデータが格納された領域の先頭アドレスを表す。
【００３３】
またディレクトリエントリ８５（８５Ａ〜８５ｎ）は、ファイルシステム４２のツリー構造を管理するための管理情報であり、ディレクトリごとに作成される。各ディレクトリエントリ８５は、そのディレクトリ内に存在するファイル及びディレクトリごとのメタデータ番号とファイル名又はディレクトリ名とから構成される。従って、このディレクトリエントリ８５を参照することによって、どのディレクトリ内にどのようなファイルやディレクトリが存在するのかを認識することができ、これによりファイルシステム４２全体としてのツリー構造を認識することができる。
【００３４】
なお、メタデータ８４に含まれるアクセス権情報９０Ｄの具体的な内容を図８に示す。この図８に示すように、かかるアクセス権情報９０Ｄは、アクセス権が与えられたユーザのユーザ名を表すユーザ名情報９０ＤＸと、そのユーザに与えられたアクセス権の内容（「read」及び又は「write」）を表すアクセス権内容情報９０ＤＹとから構成される。この図８では、「user1」については閲覧のみが許可されており、「user2」や「user3」については閲覧に加えて更新も許可されていることが示されている。
【００３５】
（１−２）本実施の形態によるファイルシステム機能
（１−２−１）仮想ツリー作成機能
次に、ファイルサーバ４に搭載された本実施の形態によるファイルシステム機能について説明する。
【００３６】
本実施の形態によるファイルサーバ４には、ユーザごとにそのユーザに応じた仮想的なファイルシステムツリー（以下、これを仮想ツリーと呼ぶ）を提供し、その仮想ツリーの情報をバックアップ及びリストアするファイルシステム機能が搭載されている。
【００３７】
実際上、ファイルサーバ４は、かかるユーザごとの仮想ツリーを、以下のルールに従って作成し、そのユーザに提供する。
【００３８】
すなわちファイルサーバ４は、まず、 実際のファイルシステムツリーのうち、ルートディレクトリからそのとき対象としているユーザ（以下、これを対象ユーザと呼ぶ）のホームディレクトリまで及びホームディレクトリ以下のディレクトリ構造（ファイル名やディレクトリ名のみ）を仮想ツリーにコピーする。例えば実際のファイルシステムツリーが図９（Ａ）のようなツリー構造を有する場合において、対象ユーザのホームディレクトリが「User1」であるときには、この段階におけるその対象ユーザの仮想ツリーは図９（Ｂ）において実線で示すような構造になる。
【００３９】
次に、ファイルサーバ４は、他のユーザのツリーを探索し、参照可能なファイルがあれば、そのファイルを上述のようにして作成した仮想ツリー（図９（Ｂ））に接続する。この際、ルートディレクトリからそのファイルまでのパス上に存在するディレクトリについても、アクセス権の有無に係りなく、仮想ツリー上に作成する。従って、図９（Ａ）の例において、他のユーザの「File３」が公開されている場合、対象ユーザの仮想ツリーは図９（Ｃ）のような構造になる。そしてファイルサーバ４は、このようにして作成した仮想ツリーを対象ユーザにファイルシステムツリーとして提供する。
【００４０】
またファイルサーバ４は、このようにして作成した対象ユーザの仮想ツリーのツリー構造を、図１０に示すような仮想ディレクトリエントリ３３（３３Ａ〜３３ｎ）としてメモリ２２（図１）に記憶し管理する。なお、この仮想ディレクトリエントリ３３は、その仮想ツリーに対応するユーザのユーザ名でなる属性名が属性名情報９２として付加されている点を除いて図７について上述したディレクトリエントリ８５と同様の構成を有する。
【００４１】
図１１は、このようなユーザごとの仮想ツリーの作成に関するファイルサーバ４のＣＰＵ２１の具体的な処理内容を示すフローチャートである。
【００４２】
このストレージシステム１の場合、システム管理者が管理計算機６を操作してユーザを追加すると、その旨が管理計算機６からネットワーク３を介してファイルサーバ４に通知される。そしてファイルサーバ４のＣＰＵ２１は、この通知を受信すると、メモリ２２に格納されたファイルシステム監視プログラム３１（図３）に基づいて、まず、追加されたユーザ（以下、これを追加ユーザと呼ぶ）のホームディレクトリとして指定されたディレクトリのディレクトリエントリ８５（図７）をストレージ装置５から読み出すことにより取得する（ＳＰ１）。
【００４３】
続いてＣＰＵ２１は、取得したディレクトリエントリ８５をメモリ２２にコピーするようにして、追加ユーザの仮想ディレクトリエントリ３３を作成する（ＳＰ２）。これにより、追加ユーザのホームディレクトリ以下のツリー構造をコピーした仮想ツリーが作成される。この後ＣＰＵ２１は、その仮想ディレクトリエントリ３３の属性名情報９２（図１０）として、追加ユーザのユーザ名を設定する（ＳＰ３）。
【００４４】
次いでＣＰＵ２１は、ルートディレクトリを、ステップＳＰ５以降の探索処理の対象とするディレクトリ（以下、これを探索ディレクトリと呼ぶ）に設定し（ＳＰ４）、この後、探索ディレクトリ内に存在するすべてのファイル及びディレクトリについて、ステップＳＰ６の確認処理を終えたか否かを判断する（ＳＰ５）。
【００４５】
ＣＰＵ２１は、この判断において否定結果を得ると、探索ディレクトリ内の１つのファイル又はディレクトリを選択すると共に、選択したそのファイル又はディレクトリのメタデータ８４（図７）をストレージ装置５から読み出し、このメタデータ８４に基づいて、そのとき選択したものがファイルであるか否かを判断する（ＳＰ６）。
【００４６】
ＣＰＵ２１は、この判断において肯定結果を得ると、ストレージ装置５に格納されているそのファイルのメタデータ８４のアクセス権限情報９０Ｄ（図７）を読み出し、このアクセス権限情報９０Ｄに基づいて、追加ユーザが当該ファイルを読み出す権限を有するか否かを判断する（ＳＰ７）。そしてＣＰＵ２１は、この判断において肯定結果を得るとステップＳＰ５に戻る。
【００４７】
これに対してＣＰＵ２１は、かかるステップＳＰ７の判断において否定結果を得ると、メモリ２２に格納されている追加ユーザの仮想ディレクトリエントリ３３（図１０）から、そのファイルのメタデータ番号及びファイル名を削除し（ＳＰ８）、この後ステップＳＰ５に戻る。このステップＳＰ６及びステップＳＰ７の処理は、そのときの探索ディレクトリ内に存在するすべてのファイルについて行なわれるため、やがて追加ユーザにアクセス権限がないファイルのメタデータ番号及びファイル名が仮想ディレクトリエントリ３３からすべて削除されることになる。
【００４８】
一方、ステップＳＰ６の判断において否定結果を得ることは、そのとき選択したものがディレクトリであることを意味する。かくして、このときＣＰＵ２１は、探索ディレクトリをそのディレクトリに変更した後ステップＳＰ５に戻り、この後ステップＳＰ５において肯定結果を得るまで、同様の処理を繰り返す（ＳＰ５〜ＳＰ９−ＳＰ５）。
【００４９】
そしてＣＰＵ２１は、やがてステップＳＰ５において肯定結果を得ると、その追加ユーザの仮想ディレクトリエントリ３３に基づいて、現在の探索ディレクトリがルートディレクトリであるか否かを判断する（ＳＰ１０）。
【００５０】
ＣＰＵ２１は、この判断において否定結果を得ると、現在の探索ディレクトリの所有者が、対応する仮想ディレクトリエントリ３３のユーザ名と一致するか否か、具体的には、探索ディレクトリに対応するメタデータ８４の属性名情報９０Ｅ（図７）に基づき認識されるユーザ名と、その仮想ディレクトリエントリ３３の属性名情報９２（図１０）に基づき認識されるユーザ名とが一致するか否かを判断する（ＳＰ１１）。
【００５１】
そしてＣＰＵ２１は、この判断において肯定結果を得ると、探索ディレクトリを一つ上のディレクトリに変更し（ＳＰ１４）、この後ステップＳＰ５に戻る。これに対して、ＣＰＵ２１は、ステップＳＰ１１において否定結果を得ると、探索ディレクトリ内に他のディレクトリが存在するか否かを判断する（ＳＰ１２）。
【００５２】
この判断において肯定結果を得ることは、かかる他のディレクトリ内又は当該他のディレクトリよりも下層のディレクトリ内に、追加ユーザがアクセス可能なディレクトリが存在する可能性があることを意味する。そして、追加ユーザがそのようなファイルにアクセスするためには、かかる他のディレクトリを残しておく必要がある。そこでＣＰＵ２１は、かかるステップＳＰ１２の判断において肯定結果を得た場合には、探索ディレクトリを一つ上のディレクトリに変更し（ＳＰ１４）、この後ステップＳＰ５に戻る。
【００５３】
これに対してステップＳＰ１２の判断において否定結果を得ることは、かかる探索ディレクトリよりも下層に、追加ユーザがアクセス可能なディレクトリが存在する可能性がないことを意味する。そこでＣＰＵ２１は、かかるステップＳＰ１２の判断にいて否定結果を得た場合には、かかる仮想ディレクトリエントリから現在の探索ディレクトリのメタデータ番号及びファイル名を削除した後（ＳＰ１３）、探索ディレクトリを一つ上のディレクトリに変更し（ＳＰ１４）、この後ステップＳＰ５に戻る。
【００５４】
この結果、このようなステップＳＰ５〜ステップＳＰ１４のループ処理によりルートディレクトリからそのユーザのホームディレクトリまでのすべてのディレクトリと、そのユーザのホームディレクトリ以下のすべてのディレクトリ及びファイルと、そのユーザが参照可能なすべてのファイルと、ルートディレクトリからそのファイルまでのディレクトリとに関する情報のみからなるそのユーザの仮想ツリーが作成される。
【００５５】
そしてＣＰＵ２１は、やがてファイルシステム４２内のすべてのファイルについてステップＳＰ６及びステップＳＰ７の判定処理を実行し終えることによりステップＳＰ１０において肯定結果を得ると、この仮想ツリー作成処理を終了する。
【００５６】
（１−２−２）仮想ツリー更新機能
一方、ファイルサーバ４は、この後、いずれかのユーザがファイルのアクセス権を変更したときや、ファイルを削除したときには、新たにアクセス権が付与されたユーザなど、かかるアクセス権の変更等に関係するユーザの仮想ツリーにこれを反映する。この結果、例えばあるユーザの作成直後の仮想ツリーのツリー構造が図９（Ｂ）であり、その後、他のユーザが「File３」を公開した場合には、かかるユーザの仮想ツリーは図９（Ｃ）のように更新される。
【００５７】
図１３は、このようなファイルシステム４２内のいずれかのファイルのアクセス権の変更に伴う該当ユーザの仮想ツリーの変更に関するＣＰＵ２１の具体的な処理内容を示すフローチャートである。
【００５８】
ＣＰＵ２１は、いずれかのクライアント２から、そのクライアント２のユーザが所有権を有するファイルのアクセス権を変更すべきアクセス権変更要求が与えられると、ストレージ装置５に格納されているそのファイルのメタデータ８４に含まれるアクセス権情報９０Ｄ（図７）を、アクセス権変更要求において指定された内容に変更する。
【００５９】
またＣＰＵ２１は、このようなアクセス権情報９０Ｄの変更処理と並行して、ファイルシステム監視プログラム（図３）とそのとき与えられたアクセス権変更要求とに基づいて、まず、かかるアクセス権の変更によって影響を受けるユーザ（新たにアクセス権が付与されるユーザや、アクセス権が剥奪されるユーザなど）を特定する（ＳＰ２０）。例えばＣＰＵ２１は、アクセス権更新要求において、あるユーザに対して新たにアクセス権を付与することが指示されている場合や、あるユーザに付与されているアクセス権を剥奪することが指示されている場合、さらにあるユーザに付与されているアクセス権の内容を変更（例えば「read/write」から「read」に変更）することが指示されている場合などには、その「あるユーザ」を「影響を受けるユーザ」として特定する。
【００６０】
続いてＣＰＵ２１は、ステップＳＰ２０において特定したすべてのユーザについて、ステップＳＰ２２について後述する仮想ツリーの変更処理を行ったか否かを判断する（ＳＰ２１）。
【００６１】
ＣＰＵ２１は、この判断において否定結果を得ると、ステップＳＰ２０において特定したユーザのうちの１人のユーザについて、かかるアクセス権の変更によりそのユーザに新たにアクセス権が付与された場合には、そのファイルと、ルートディレクトリからそのファイルまでのディレクトリとをそのユーザの仮想ツリー上に作成した状態にそのユーザの仮想ディレクトリエントリ３３を更新する。またＣＰＵ２１は、かかるアクセス権の変更によりそのユーザのアクセス権が剥奪された場合には、そのファイルと、必要に応じてルートディレクトリからそのファイルまでのディレクトリとをそのユーザの仮想ツリーから削除した状態にそのユーザの仮想ディレクトリエントリ３３を更新する（ＳＰ２２）。
【００６２】
そしてＣＰＵ２１は、この後同様の処理を繰り返し（ＳＰ２１−ＳＰ２２−ＳＰ２１）、やがてステップＳＰ２０において特定したすべてのユーザについて、そのユーザの仮想ディレクトリエントリ３３を更新し終えることによりステップＳＰ２１において肯定結果を得ると、この仮想ツリー更新処理を終了する。
【００６３】
（１−２−３）仮想ツリーバックアップ機能
このストレージシステム１では、ユーザ操作に応じてクライアント２からバックアップ対象の仮想ツリーを指定したバックアップ要求がバックアップサーバ７に送信される。
【００６４】
バックアップサーバ７のＣＰＵ６０は、このバックアップ要求を受信すると、バックアッププログラム６４に基づいて、ストレージ装置５に対して対応する仮想ツリーのバックアップを指示する。そしてこの指示を受けたストレージ装置５は、指定された仮想ツリーのデータ（対応する仮想ディレクトリエントリ３３と、当該仮想ディレクトリエントリ３３により構成される仮想ツリー内に存在する各ファイルのデータと、当該仮想ツリー内に存在する各ファイル及びディレクトリのメタデータ等）をファイルサーバ４を介してバックアップサーバ７に送信する。かくしてバックアップサーバ７のＣＰＵ６０は、かかるデータを受信すると、このデータを磁気テープに記録するようテープ装置８を制御する。これにより指定された仮想ツリーのデータが磁気テープに記録される。
【００６５】
図１４は、このような仮想ツリーのバックアップに関するファイルサーバ４のＣＰＵ２１の具体的な処理内容を示すフローチャートである。
【００６６】
ＣＰＵ２１は、バックアップサーバ７から送信される仮想ツリーを指定したバックアップの実行指示を受信すると、バックアップエージェント３２（図３）に基づいて、まず、メモリ２２に格納されている指定された仮想ツリーの仮想ディレクトリエントリ３３に基づいて、その仮想ツリーのルートディレクトリを探索ディレクトリに設定する（ＳＰ３０）。
【００６７】
続いてＣＰＵ２１は、現在の探索ディレクトリ内のすべてのファイル及びディレクトリについてステップＳＰ３２における確認処理をし終えたか否かを判断する（ＳＰ３１）。そしてＣＰＵ２１は、この判断において否定結果を得ると、探索ディレクトリ内の１つのファイル又はディレクトリを選択すると共に、選択したそのファイル又はディレクトリのメタデータ８４（図７）をストレージ装置５から読み出し、このメタデータ８４に基づいて、そのとき選択したものがファイルであるか否かを判断する（ＳＰ３２）。
【００６８】
ＣＰＵ２１は、この判断において肯定結果を得ると、そのファイルのデータをストレージ装置５から読み出してバックアップサーバ７に送信する。この結果、このデータがバックアップサーバ７の制御のもとに、テープ装置８により磁気テープに記録されてバックアップされる（ＳＰ３３）。
【００６９】
これに対してＣＰＵ２１は、ステップＳＰ３２の判断において否定結果を得ると、ステップＳＰ３２において選択したディレクトリの仮想ディレクトリエントリ３３のデータをバックアップサーバ７に送信する。この結果、このデータがバックアップサーバ７の制御のもとに、テープ装置８により磁気テープに記録されてバックアップされ、バックアップ先においてこのディレクトリが作成される（ＳＰ３４）。
【００７０】
続いてＣＰＵ２１は、探索ディレクトリをステップＳＰ３４においてバックアップしたディレクトリに変更し（ＳＰ３５）、この後ステップＳＰ３１において肯定結果を得るまで、同様の処理を繰り返す（ＳＰ３１〜ＳＰ３５−ＳＰ３１）。
【００７１】
そしてＣＰＵ２１は、やがてステップＳＰ３１において肯定結果を得ると、現在の探索ディレクトリのメタデータ８４をストレージ装置５から読み出し、このメタデータ８４に基づいて、当該現在の探索ディレクトリがルートディレクトリであるか否かを判断する（ＳＰ３６）。
【００７２】
ＣＰＵ２１は、この判断において否定結果を得ると、探索ディレクトリを現在の探索ディレクトリの１つ上層のディレクトリに変更した後（ＳＰ３７）、ステップＳＰ３１に戻る。そしてＣＰＵ２１は、この後ステップＳＰ３６において肯定結果を得るまで、同様の処理を繰り返す（ＳＰ３１〜ＳＰ３７−ＳＰ３１）。
【００７３】
そしてＣＰＵ１２は、やがてその仮想ツリー内のすべてのファイル及びディレクトリのバックアップを作成し終えることによりステップＳＰ３６において肯定結果を得ると、このバックアップ処理を終了する。
【００７４】
（１−２−４）仮想ツリーリストア機能
他方、このストレージシステム１では、ユーザ操作に応じてクライアント２からリストア対象の仮想ツリーを指定したリストア要求がバックアップサーバ７に送信される。
【００７５】
バックアップサーバ７のＣＰＵ６０（図５）は、このリストア要求を受信すると、バックアッププログラム６４（図５）に基づいてテープ装置８を制御することにより、指定された仮想ツリーのデータ（対応する仮想ディレクトリエントリ３３と、当該仮想ディレクトリエントリ３３により構成される仮想ツリー内に存在する各ファイルのデータ）を磁気テープから読み出し、これをそのリストア指示と共にファイルサーバ４に送信する。
【００７６】
そしてこのリストア指示を受信したファイルサーバ４は、指定された仮想ツリーの仮想ディレクトリエントリ３３と、その仮想ツリー内に存在する各ファイルのデータとをメモリ２２に格納すると共に、これらのデータに基づいてかかる仮想ツリーを以下のルールに従ってリストアする。
【００７７】
すなわち、ファイルサーバ４は、ホームディレクトリのファイルについては、ツリー構造を保ったまま通常通りリストアする。従って、図９（Ｃ）のようなツリー構造の仮想ツリーがバックアップされている場合において、対象ユーザのホームディレクトリが「user1」であるときには、「file1」及び「file2」については、通常通りにリストアする。
【００７８】
またファイルサーバ４は、そのバックアップデータに他のユーザのファイルが含まれる場合、当該ファイルを更新時刻及びバージョンを現在のそのファイルの更新時刻及びバージョンと比較し、これらが同じ場合にはそのファイルをリストアせずに処理を終了する。従って、図９（Ｃ）の例の場合、この仮想ツリーはそのツリー構造を保ったままリストアされることになる。
【００７９】
これに対してファイルサーバ４は、かかる更新時刻及びバージョンの少なくとも一方が異なる（現在のそのファイルのほうがバックアップ時のものよりも新しい）場合には、対象としているユーザのホームディレクトリに特殊なディレクトリ（以下、これをリストア用ディレクトリと呼ぶ）を作成し、かかるリストアした時点のファイルを、ツリー構造を保ったまま、このリストア用ディレクトリにリストアする。従って図９（Ｃ）の例の場合、かかる他のユーザのファイルが「file3」であるものとすると、図９（Ｄ）に示すように、そのユーザのホームディレクトリに設けられた「.restor」というリストア用ディレクトリ内にかかる「file3」がそのツリー構造を保ったままリストアされることになる。
【００８０】
この際ファイルサーバ４は、リストア用ディレクトリにリストアしたファイルについては、そのファイルのパス名の先頭にリストア用ディレクトリのパス名を付加する。例えば図９（Ｄ）において、かかるリストア用ディレクトリに格納されたファイルの元のパス名が「/home/dep.3/user2/prod1/file3」であり、リストア用ディレクトリのパス名が「/home/dep.2/user1/.restor」であるものとすると、当該ファイルの新たなパス名は「/home/dep.2/user1/.restor /home/dep.3/user2/product1/file3」となる。そしてファイルサーバ４は、この後、そのファイルのメタデータ８４のメタデータ番号と、そのファイルの元のパス名及びリストア用ディレクトリのパス名を付加した新たなパス名とを図１５に示す位置変換テーブル１００に対応付けて登録する。
【００８１】
またファイルサーバ４は、ファイルへのアクセス要求があったときには、常にこの位置変換テーブル１００を参照して、そのファイルの新しいパス名が位置変換テーブル１００に登録されているときには、その新しいパス名に従ってそのファイルにアクセスする。
【００８２】
図１６及び図１７は、このような仮想ツリーのリストアに関するファイルサーバ４のＣＰＵ２１の具体的な処理内容を示すフローチャートである。
【００８３】
ＣＰＵ２１は、バックアップサーバから仮想ツリーのリストア指示と、その仮想ツリーの仮想ディレクトリエントリ３３、当該仮想ツリー内に存在する各ファイルのデータ及び当該仮想ツリー内の各ファイル及び各ディレクトリのメタデータ８４（図７）等が与えられると、バックアップエージェント３２（図３）に基づいて、まず、バックアップサーバ７から送信されるリストア対象の仮想ツリーのデータに基づき認識されるその仮想ツリーのルートディレクトリを探索ディレクトリに設定する（ＳＰ４０）。
【００８４】
続いてＣＰＵ２１は、現在の探索ディレクトリ内のすべてのファイル及びディレクトリをリストアしたか否かを判断する（ＳＰ４１）。ＣＰＵ２１は、この判断において否定結果を得ると、その探索ディレクトリ内に収納されたファイル及びディレクトリの所有者がそのときリストア対象としている仮想ツリーに対応するユーザであるか否かを判断する（ＳＰ４２）。
【００８５】
そしてＣＰＵ２１は、この判断において肯定結果を得るとステップＳＰ４６に進み、これに対して否定結果を得ると、バックアップに比べて現在のそのファイル又はディレクトリの更新時刻及びバージョンが新しいか否かを判断する（ＳＰ４３）。
【００８６】
ＣＰＵ２１は、この判断において否定結果を得るとステップＳＰ４１に戻り、これに対して肯定結果を得ると、そのファイル又はディレクトリのパス名の先頭にリストア用ディレクトリのパス名でなる特殊パス名を付加する（ＳＰ４４）。そしてＣＰＵ２１は、この後リストア用ディレクトリ内にリストアしたファイル又はディレクトリのメタデータ番号を、そのファイル又はディレクトリの元のパス名及び当該元のパス名に特殊パス名を付加した新たなパス名と対応付けて位置変換テーブル１００に登録する（ＳＰ４５）。
【００８７】
続いてＣＰＵ２１は、そのときのリストア対象がファイルであるか否かを判断し（ＳＰ４６）、ファイルであるときにはリストア先にそのファイルが既に存在するか否かを判断する（ＳＰ４７）。そしてＣＰＵ２１は、この判断において否定結果を得ると、そのファイルをリストア用ディレクトリ内に新規にリストアし（ＳＰ４８）、この後ステップＳＰ４１に戻る。
【００８８】
これに対してＣＰＵ２１は、かかるステップＳＰ４７の判断において肯定結果を得ると、そのファイルのデータを既に存在するそのファイルのデータ上に上書きし（ＳＰ４９）、この後ステップＳＰ４１に戻る。
【００８９】
一方、ＣＰＵ２１は、ステップＳＰ４６において否定結果を得ると、リストア先にそのディレクトリが既に存在するか否かを判断する（ＳＰ５２）。そしてＣＰＵ２１は、この判断において肯定結果を得るとステップＳＰ５４に進み、これに対して否定結果を得ると、そのディレクトリをリストアする（ＳＰ５３）。そしてＣＰＵ２１は、この後探索ディレクトリを当該ディレクトリに変更した後（ＳＰ５４）、ステップＳＰ４１に戻る。
【００９０】
他方、ＣＰＵ２１は、ステップＳＰ４１において肯定結果を得ると、そのときの探索ディレクトリがルートディレクトリであるか否かを判断する（ＳＰ５０）。そしてＣＰＵ２１は、この判断において否定結果を得ると、探索ディレクトリを１つ上の階層のディレクトリに変更し（ＳＰ５１）、この後ステップＳＰ４１に戻る。
【００９１】
これに対してＣＰＵ２１は、ステップＳＰ５０の判断において肯定結果を得ると、そのユーザに対する新たな仮想ディレクトリエントリ３３（図１０）を作成し、これをメモリ２２（図１）に格納する（ＳＰ５５）。
【００９２】
そしてＣＰＵ２１は、この後、位置変更テーブル１００のすべてのエントリについて同様の処理を行ったか否かを判断し（ＳＰ５６）、否定結果を得ると、位置変更テーブル１００上の未だ処理を行っていないエントリのメタデータ番号に基づいて、そのときバックアップサーバ７から送信されてきたリストア対象の各ファイル及びディレクトリのメタデータの中から対応するメタデータを検索する（ＳＰ５７）。
【００９３】
次いでＣＰＵ２１は、検出したメタデータに含まれるポインタ情報９０Ｆ（図７）の値を、データ領域８２の中で位置変更テーブル１００上の対応するエントリの「新たなパス名」の位置に存在するファイル又はディレクトリのデータが格納された領域の先頭アドレスに変更し（ＳＰ５８）、この後ステップＳＰ５５に戻る。そしてＣＰＵ２１は、この後位置変更テーブル１００のすべてのエントリについて同様の処理を実行する（ＳＰ５５〜５８−ＳＰ５５）。
【００９４】
そしてＣＰＵ２１は、やがて位置変更テーブル１００のすべてのエントリについて同様の処理を実行し終えることによりステップＳＰ５６において肯定結果を得ると、この仮想ツリーリストア処理を終了する。
【００９５】
（１−３）本実施の形態の効果
以上の構成によれば、物理的な位置を破壊することなく、他のユーザが公開しているファイルもバックアップすることができる。またそのユーザが所有権を有さないファイル及びディレクトリであって既に更新されているものについては、リストア用ディレクトリ内に元のツリー構造を保ったままリストアされるため、リストア後の仮想ツリーにおいて、ユーザが所有権を有するファイルが他のユーザが公開しているファイルにリンクが張られている場合においても、リストア後のそのユーザのファイルと他のユーザのファイルとの間で不整合が発生することを有効に防止することができ、使い勝手の良いストレージシステム１を構築することができる。
【００９６】
（２）第２の実施の形態
第１の実施の形態では、ファイルシステム４２（図６）のデータをバックアップする際、予め作成した仮想ツリーのデータをバックアップしていた。これに対して第２の実施の形態では、ファイルシステム４２のデータをバックアップする際に当該ファイルシステム４２内に存在する各ファイルについて、ユーザにアクセス権限があるか否かを順次確認しながら、アクセス権限のあるファイルのデータをバックアップする。
【００９７】
図１８は、このような第２の実施の形態による仮想ツリーバックアップ処理に関するファイルサーバ４のＣＰＵ２１の具体的な処理内容を示すフローチャートである。
【００９８】
ＣＰＵ２１は、バックアップサーバ７から送信される仮想ツリーを指定したバックアップの実行指示を受信すると、メモリ２２に格納されている第２の実施の形態によるバックアップエージェント１１０（図３）に基づいて、まず、ストレージ装置５に格納されているファイルシステム４２の各ディレクトリエントリ８５（図７）を読み出し、これらのディレクトリエントリ８５に基づいて、ファイルシステムツリーのルートディレクトリを探索ディレクトリに設定する（ＳＰ６０）。
【００９９】
続いてＣＰＵ２１は、現在の探索ディレクトリ内のすべてのファイル及びディレクトリについてステップＳＰ６２における確認処理をし終えたか否かを判断する（ＳＰ６１）。そしてＣＰＵ２１は、この判断において否定結果を得ると、探索ディレクトリ内の１つのファイル又はディレクトリを選択すると共に、選択したそのファイル又はディレクトリのメタデータ８４（図７）をストレージ装置５から読み出し、このメタデータ８４に基づいて、そのとき選択したものがファイルであるか否かを判断する（ＳＰ６２）。
【０１００】
ＣＰＵ２１は、この判断において否定結果を得ると、探索ディレクトリをステップＳＰ６２において選択したディレクトリに変更した後（ＳＰ６７）、ステップＳＰ６１に戻る。
【０１０１】
これに対してＣＰＵ２１は、ステップＳＰ６２の判断において肯定結果を得ると、かかるメタデータ８４に含まれるアクセス権情報９０Ｄ（図７）に基づいて、対応するユーザがそのファイルに対して読取り権限を有するか否かを判断する（ＳＰ６３）。
【０１０２】
ＣＰＵ２１は、この判断において否定結果を得るとステップＳＰ６１に戻り、これに対して肯定結果を得ると、そのファイルの所有者がそのユーザであるか否かを判断する（ＳＰ６４）。そしてＣＰＵ２１は、この判断において肯定結果を得るとステップＳＰ６６に進み、これに対して否定結果を得ると、ルートディレクトリからそのファイルまでのパス上に存在するディレクトリのメタデータ番号及びディレクトリ名をバックアップサーバ７に送信する。かくしてバックアップサーバ７において、かかるルートディレクトリからそのファイルまでのパス上に存在するディレクトリのメタデータ番号及びディレクトリ名に基づいて仮想ディレクトリエントリ３３（図１０）が作成される（ＳＰ６５）。
【０１０３】
そしてＣＰＵ２１は、この後、かかるファイルのデータをバックアップサーバ７に送信する（ＳＰ６６）。この結果、このファイルのデータと、ステップＳＰ６５において作成された仮想ディレクトリエントリ３３のデータとがテープ装置８により磁気テープに記録され、これにより当該ファイルのデータがバックアップされる。そしてＣＰＵ２１は、この後ステップＳＰ６１に戻り、この後同様の処理を繰り返す（ＳＰ６１〜ＳＰ６６−ＳＰ６１）。
【０１０４】
一方、ＣＰＵ２１は、ステップＳＰ６１の判断において肯定結果を得ると、ストレージ装置５から読み出した各ディレクトリエントリに基づいて、探索ディレクトリがルートディレクトリであるか否かを判断する（ＳＰ６８）。
【０１０５】
ＣＰＵ２１は、この判断において否定結果を得ると、探索ディレクトリを１つ上の階層のディレクトリに変更する（ＳＰ６９）。そしてＣＰＵ２１は、この後、そのファイルシステム４２に属するすべてのファイルについてステップＳＰ６２の判断を終えるまで同様の処理を繰り返す（ＳＰ６１〜ＳＰ６９−ＳＰ６１）。
【０１０６】
そしてＣＰＵ２１は、やがてステップＳＰ６８において肯定結果を得ると、この第２の実施の形態による仮想ツリーバックアップ処理を終了する。
【０１０７】
以上の構成によれば、ファイルシステム４２のデータをバックアップする際に当該ファイルシステム４２内に存在する各ファイルについて、ユーザにアクセス権限（読取り権限）があるか否かを順次確認しながら、アクセス権限のあるファイルのデータをバックアップするため、ユーザがアクセス権限を有するすべてのファイルを漏れなくバックアップすることができる。かくするにつき、第１の実施の形態における仮想ツリーと同様のツリーを作成してそのデータをバックアップすることができる。
【０１０８】
（３）他の実施の形態
なお上述の実施の形態においては、本発明を図１のように構成されたストレージシステム１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成のストレージシステムに広く適用することができる。
【０１０９】
この場合において、本実施の形態においては、ファイルサーバ４を設け、このファイルサーバ４に本実施の形態によるファイルシステム機能を適用するようにした場合について述べたが、このファイルシステム機能をストレージ装置５に搭載するようにしても良い。
【０１１０】
また上述の実施の形態においては、バックアップされた仮想ツリーをリストアする際に、当該仮想ツリーに属する各ファイル及び各ディレクトリの所有者を判定する判定部と、判定部の判定結果に基づいて、ファイル又はディレクトリの所有者がそのとき対象としているユーザでない場合に、バックアップされた当該ファイル又は当該ディレクトリの更新時刻及びバージョンと、現在の当該ファイル又は当該ディレクトリの更新時刻及びバージョンとを比較し、バックアップされたファイル又はディレクトリの更新時刻及びバージョンの少なくとも一方が現在のファイル又はディレクトリの更新時刻及び又はバージョンよりも古いときには、当該ファイル又は当該ディレクトリを対象とするユーザがアクセス可能な特殊なディレクトリ内に元の仮想ツリーのツリー構造を保ったままリストアするリストア部とを同じ１つのＣＰＵ２１により構成するようにした場合について述べたが、本発明はこれに限らず、これら判定部及びリストア部を別体として構成するようにしても良い。
【産業上の利用可能性】
【０１１１】
本発明は、ファイルシステム機能を有する種々の構成のストレージシステムに広く適用することができる。
【図面の簡単な説明】
【０１１２】
【図１】第１の実施の形態によるストレージシステムの構成を示すブロック図である。
【図２】クライアントの概略構成を示すブロック図である。
【図３】ファイルサーバのメモリに格納された各種制御プログラム等の説明に供するブロック図である。
【図４】管理計算機の概略構成を示すブロック図である。
【図５】バックアップサーバ及びテープ装置の概略構成を示すブロック図である。
【図６】ファイルシステムの説明に供する概念図である。
【図７】ファイルシステムの説明に供する概念図である。
【図８】アクセス権情報の説明に供する概念図である。
【図９】（Ａ）−（Ｄ）は、仮想ツリーの説明に供する概念図である。
【図１０】仮想ディレクトリエントリの説明に供する概念図である。
【図１１】仮想ツリー作成処理の説明に供するフローチャートである。
【図１２】仮想ツリー作成処理の説明に供するフローチャートである。
【図１３】仮想ツリー更新処理の説明に供するフローチャートである。
【図１４】仮想ツリーバックアップ処理の説明に供するフローチャートである。
【図１５】位置変更テーブルの説明に供する概念図である。
【図１６】仮想ツリーリストア処理の説明に供するフローチャートである。
【図１７】仮想ツリーリストア処理の説明に供するフローチャートである。
【図１８】第２の実施の形態による仮想ツリーバックアップ処理の説明に供するフローチャートである。
【符号の説明】
【０１１３】
１……ストレージシステム、２……クライアント、４……ファイルサーバ、５……ストレージ装置、７……バックアップサーバ、８……テープ装置、２１……ＣＰＵ、２２……メモリ、３０……仮想ツリー提供プログラム、３１……ファイルシステム監視プログラム、３２……バックアップエージェント、３３、３３Ａ〜３３ｎ……仮想ディレクトリエントリ、３４……位置変換テーブル、４２……ファイルシステム、８４……メタデータ、９０Ａ，９１Ａ……メタデータ番号情報、９０Ｄ……アクセス権情報、８５……ディレクトリエントリ。
【図１】
2008293317.tif 000003
【図２】
2008293317.tif 000004
【図３】
2008293317.tif 000005
【図４】
2008293317.tif 000006
【図５】
2008293317.tif 000007
【図６】
2008293317.tif 000008
【図７】
2008293317.tif 000009
【図８】
2008293317.tif 000010
【図９】
2008293317.tif 000011
【図１０】
2008293317.tif 000012
【図１１】
2008293317.tif 000013
【図１２】
2008293317.tif 000014
【図１３】
2008293317.tif 000015
【図１４】
2008293317.tif 000016
【図１５】
2008293317.tif 000017
【図１６】
2008293317.tif 000018
【図１７】
2008293317.tif 000019
【図１８】
2008293317.tif 000020