(57)【要約】  本発明は、複数のクライアント・コンピュータ１００と第２のファイル・システムを管理し、第２のファイル・システムへのクライアント・アクセスを可能にするための第２のファイル・システム管理ユニット４１０とを備えるデータ・ストレージ・システムにおいて第２のファイル・システムへの間接的アクセスを可能にする仮想化されたファイル・システムを実現するための方法および装置に関するものであり、この方法は複数のクライアント・コンピュータ１００と第２のファイル・システム管理ユニット４１０との間で第１のファイル・システム管理ユニット３１０を相互接続することと、第１のファイル・システム管理ユニット３１０によって管理される第１のファイル・システム内に第１のディレクトリ／ｒｏｏｔを作成することと、第２のファイル・システムの第１のディレクトリ／ｒｏｏｔを第１のファイル・システムの第１のディレクトリ／ｒｏｏｔに関連付けることと、第１のファイル・システム管理ユニット３１０においてクライアント・コンピュータ１００から受信されたクライアント要求に基づき、また第１のファイル・システムの第１のディレクトリと第２のファイル・システムの第１のディレクトリとの間の関連付けに基づき第１のファイル・システム管理ユニット３１０による第２のファイル・システムのオンデマンド仮想化を可能にすることと、第１のファイル・システムを通じて第２のファイル・システムへの間接的クライアント・アクセスを可能にすることとを含む。
2016527617.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアント・コンピュータと、第２のファイル・システムを管理し、前記第２のファイル・システムへのクライアント・アクセスを可能にするための第２のファイル・システム管理ユニットと、前記複数のクライアント・コンピュータと前記第２のファイル・システム管理ユニットとの間で相互接続されている第１のファイル・システム管理ユニットとを備えるデータ・ストレージ・システムにおいて前記第２のファイル・システムへの間接的アクセスを可能にする仮想化されたファイル・システムを実現するための装置であって、
前記第１のファイル・システム管理ユニットによって管理される第１のファイル・システム内に第１のディレクトリを作成し、
前記第２のファイル・システムの第１のディレクトリを前記第１のファイル・システムの前記第１のディレクトリに関連付け、
前記第１のファイル・システム管理ユニットにおいて前記クライアント・コンピュータから受信されたクライアント要求に基づき、また前記第１のファイル・システムの前記第１のディレクトリと前記第２のファイル・システムの前記第１のディレクトリとの間の前記関連付けに基づき前記第１のファイル・システム管理ユニットによる前記第２のファイル・システムのオンデマンド仮想化を可能にし、
前記第１のファイル・システムを通じて前記第２のファイル・システムへの間接的クライアント・アクセスを可能にするように適合された前記第１のファイル・システム管理ユニットを備える装置。
【請求項２】
オンデマンド仮想化を実行するために、前記第１のファイル・システム管理ユニットは、
クライアント・コンピュータから、前記第２のファイル・システムの前記第１のディレクトリに関する第２のパス・ロケーションにおいて前記第２のファイル・システムの第２のディレクトリに向けられたアクセス要求を受信し、
前記第２のファイル・システムの前記第２のディレクトリに向けられた前記アクセス要求を受信した後に、前記第１のファイル・システムの前記第１のディレクトリに関する前記第２のパス・ロケーションにおいて前記第１のファイル・システム内に第２のディレクトリを作成し、
前記第２のファイル・システムの前記第２のディレクトリのメタデータを前記第１のファイル・システム内に前記第１のファイル・システムの前記第２のディレクトリのメタデータとして記憶するように適合されることを特徴とする請求項１に記載の装置。
【請求項３】
前記第１のファイル・システム管理ユニットは、
前記アクセス要求が、前記第２のファイル・システムの前記第２のディレクトリを修正することを求める要求であるときに、前記受信されたアクセス要求に従って前記第１のファイル・システムの前記第２のディレクトリを修正し、前記アクセス要求を前記第２のファイル・システム管理ユニットに送信して前記第２のファイル・システム管理ユニットによる前記受信されたアクセス要求に従って前記第２のファイル・システムの前記第２のディレクトリを修正し、
前記アクセス要求が、前記第２のファイル・システムの前記第２のディレクトリの属性を読み出すことを求める要求であるときに、前記第１のファイル・システムの前記第２のディレクトリのメタデータに基づき前記第２のファイル・システムの前記第２のディレクトリの要求された属性を返すように適合されることを特徴とする請求項２に記載の装置。
【請求項４】
オンデマンド仮想化を実行するために、前記第１のファイル・システム管理ユニットは、
クライアント・コンピュータから、前記第２のファイル・システムの前記第１のディレクトリに関する第１のパス・ロケーションにおいて前記第２のファイル・システムの第１のファイルに向けられたアクセス要求を受信し、
前記第２のファイル・システムの前記第１のファイルに向けられた前記アクセス要求を受信した後に、前記第１のファイル・システムの前記第１のディレクトリに関する前記第１のパス・ロケーションにおいて前記第１のファイル・システム内に第１の外部リンク・オブジェクトを作成し、
前記第２のファイル・システムの前記第１のファイルのメタデータを前記第１のファイル・システム内に前記第１のファイル・システムの前記第１の外部リンク・オブジェクトと一緒に前記第１のファイルのメタデータとして記憶するように適合され、
前記外部リンク・オブジェクトは、前記第１のファイル・システムにおいて前記第２のファイル・システムの前記第１のファイルを表す、前記第２のファイル・システムの前記第１のファイルへのアクセスを可能にする前記第１のファイル・システムのファイル・システム・オブジェクトであり、前記第１の外部リンク・オブジェクトは前記第２のファイル・システム内の前記第１のファイルの固有オブジェクトＩＤおよび前記第２のファイル・システムの前記第１のディレクトリに関する前記第１のパス・ロケーションを少なくとも示すリンク・データを含むことを特徴とする請求項１から３のいずれか一項に記載の装置。
【請求項５】
前記第１のファイル・システム管理ユニットは、
前記アクセス要求が、前記第２のファイル・システムの前記第１のファイルを修正することを求める要求であるときに、前記第１の外部リンク・オブジェクトの前記リンク・データに基づき前記アクセス要求を前記第２のファイル・システム管理ユニットに送信して前記第２のファイル・システム管理ユニットによる前記受信されたアクセス要求に従って前記第２のファイル・システムの前記第１のファイルを修正し、
前記アクセス要求が、前記第２のファイル・システムの前記第１のファイルの属性を読み出すことを求める要求であるときに、前記第１の外部リンク・オブジェクトのメタデータに基づき前記第２のファイル・システムの前記第１のファイルの要求された属性を返すように適合されることを特徴とする請求項４に記載の装置。
【請求項６】
前記第１のファイル・システム管理ユニットは、
前記第１のファイル・システム管理ユニットにおいて前記クライアント・コンピュータから受信されたクライアント要求と無関係に、前記第１のファイル・システム管理ユニットによって管理される仮想化管理情報に基づき、前記第１のファイル・システムの前記第１のディレクトリと前記第２のファイル・システムの前記第１のディレクトリとの間の関連付けに基づき、前記第１のファイル・システム管理ユニットによる前記第２のファイル・システムの自動仮想化を可能にするように適合され、前記仮想化管理情報は前記第２のファイル・システム内に存在する前記第１のディレクトリを少なくとも示すことを特徴とする請求項１から５のいずれか一項に記載の装置。
【請求項７】
自動仮想化を実行するために、前記第１のファイル・システム管理ユニットは、
前記第２のファイル・システム管理ユニットに、前記仮想化管理情報で示される前記第２のファイル・システムのターゲット・ディレクトリに向けられたディレクトリ情報要求を送信し、前記第２のファイル・システムの前記ターゲット・ディレクトリ内に存在する子オブジェクトを示す情報を要求し、
前記第２のファイル・システム管理ユニットから、前記ディレクトリ情報要求に応答して前記第２のファイル・システムの前記ターゲット・ディレクトリに存在する子オブジェクトを示す情報を受信し、
前記第２のファイル・システムの前記ターゲット・ディレクトリに存在する子オブジェクトを示す前記受信された情報に基づき前記仮想化管理情報を更新するように適合されることを特徴とする請求項６に記載の装置。
【請求項８】
自動仮想化を実行するために、前記第１のファイル・システム管理ユニットは、
前記仮想化管理情報で示されているような前記第２のファイル・システムの前記ターゲット・ディレクトリに存在する各子オブジェクトについて、前記第２のファイル・システムの前記第１のディレクトリに関する前記関連付けられている子オブジェクトの前記パス・ロケーションに対応する前記第１のファイル・システムの前記第１のディレクトリに関するパス・ロケーションにおいて関連付けられているファイル・システム・オブジェクトを前記第１のファイル・システム内に作成するように適合されることを特徴とする請求項７に記載の装置。
【請求項９】
前記ディレクトリ情報要求を前記送信することは、前記第２のファイル・システムの複数のターゲット・ディレクトリに対して前記第１のファイル・システム管理ユニットによって自動的に繰り返され、
前記仮想化管理情報で示されているような前記第２のファイル・システムの前記ターゲット・ディレクトリに存在する各子オブジェクトについて、前記第１のファイル・システム内の前記関連付けられているファイル・システム・オブジェクトを前記作成することは、前記複数のターゲット・ディレクトリの各々に対して前記第１のファイル・システム管理ユニットによって繰り返されることを特徴とする請求項８に記載の装置。
【請求項１０】
前記第２のファイル・システムの複数のターゲット・ディレクトリについて前記ディレクトリ情報要求を前記繰り返し送信すること、および前記複数のターゲット・ディレクトリの前記子ディレクトリの各々について前記第１のファイル・システム内に前記関連付けられているファイル・システム・オブジェクトを前記繰り返し作成することは、前記第１のファイル・システム管理ユニットによって並行して実行されることを特徴とする請求項９に記載の装置。
【請求項１１】
前記第２のファイル・システムの複数のターゲット・ディレクトリに対する前記ディレクトリ情報要求を前記繰り返し送信する単位時間当たりの実行速度は、前記第１のファイル・システム管理ユニットのバッファ・ユニットのストレージ占有率に基づき前記第１のファイル・システム管理ユニットによって制御されることを特徴とする請求項１０に記載の装置。
【請求項１２】
前記第２のファイル・システムの複数のターゲット・ディレクトリに対する前記ディレクトリ情報要求を前記繰り返し送信する単位時間当たりの実行速度は、前記第１のファイル・システム管理ユニットと前記第２のファイル・システム管理ユニットとの間の通信チャネルの可用率の率に基づき前記第１のファイル・システム管理ユニットによって制御されることを特徴とする請求項１０または１１に記載の装置。
【請求項１３】
前記作成されたファイル・システム・オブジェクトは、前記関連付けられている子オブジェクトが前記第２のファイル・システムの第３のディレクトリであるときに前記第１のファイル・システムの第３のディレクトリであることを特徴とする請求項８から１２のいずれか一項に記載の装置。
【請求項１４】
自動仮想化を実行するために、前記第１のファイル・システム管理ユニットは、
前記第１のファイル・システムの前記作成された第３のディレクトリ内に自己参照リンクを作成し、
前記第２のファイル・システム内の前記関連付けられている第３のディレクトリの子ディレクトリの数に基づき前記第１のファイル・システムの前記作成された第３のディレクトリに対してフェイク・リンク・カウントを計算し、
前記第１のファイル・システムの前記作成された第３のディレクトリの前記メタデータ内に前記計算されたフェイク・リンク・カウントを記憶するようにさらに適合さることを特徴とする請求項１３に記載の装置。
【請求項１５】
前記第１のファイル・システム管理ユニットは、
前記第２のファイル・システムの前記第３のディレクトリの子ディレクトリに関連付けられている前記第１のファイル・システムの前記第３のディレクトリ内の子ディレクトリを自動的に作成するときに、前記第２のファイル・システム内の前記第３のディレクトリに関連付けられている前記第１のファイル・システムの前記第３のディレクトリの前記メタデータに記憶されている前記フェイク・リンク・カウントをデクリメントするように適合されることを特徴とする請求項１４に記載の装置。
【請求項１６】
前記第１のファイル・システム管理ユニットは、
前記クライアント・コンピュータのうちの１つから、前記第２のファイル・システムの前記第３のディレクトリのリンク・カウントを読み出すことを求める要求を受信し、
前記第１のファイル・システムの前記第３のディレクトリの前記フェイク・リンク・カウントと前記第１のファイル・システムの前記第３のディレクトリの実リンク・カウントとを加算することによって前記第２のファイル・システムの前記第３のディレクトリの前記リンク・カウントを計算し、
前記要求に応答して前記計算されたリンク・カウントを前記クライアント・コンピュータに送信するようにさらに適合されることを特徴とする請求項１４または１５に記載の装置。
【請求項１７】
前記作成されたファイル・システム・オブジェクトは、前記それぞれの子オブジェクトが前記第２のファイル・システムの第２のファイルであるときに第２の外部リンク・オブジェクトであり、前記第２の外部リンク・オブジェクトは前記第１のファイル・システムにおいて前記第２のファイル・システムの前記第２のファイルを表し、前記第２のファイル・システムの前記第２のファイルへのアクセスを可能にし、前記第２の外部リンク・オブジェクトは前記第２のファイル・システム内の前記第２のファイルの固有オブジェクトＩＤおよび前記第２のファイル・システムの前記第１のディレクトリに関する前記第２のファイルのパス・ロケーションを少なくとも示すリンク・データを含むことを特徴とする請求項８から１６のいずれか一項に記載の装置。
【請求項１８】
前記第１のファイル・システム管理ユニットは、
前記仮想化管理情報を複数のデータ・ブロックに分割し、
各データ・ブロックについて、前記仮想化管理情報の前記データ・ブロックの各々のバックアップ・コピーを繰り返し生成するようにさらに適合されることを特徴とする請求項６から１７のいずれか一項に記載の装置。
【請求項１９】
前記複数のデータ・ブロックの第１のデータ・ブロックは、前記第２のファイル・システムの第４のディレクトリに関連付けられている管理データを含み、
１つまたは複数の第２のデータ・ブロックは、前記第２のファイル・システムの前記第４のディレクトリの子ディレクトリに関連付けられている管理データを含み、
前記第１のファイル・システム管理ユニットは、前記第１のデータ・ブロックのバックアップ・コピーを生成する前に前記１つまたは複数の第２のデータ・ブロックの各々のバックアップ・コピーを生成するようにさらに適合されることを特徴とする請求項１８に記載の装置。
【請求項２０】
複数のクライアント・コンピュータと第２のファイル・システムを管理し、前記第２のファイル・システムへのクライアント・アクセスを可能にするための第２のファイル・システム管理ユニットとを備えるデータ・ストレージ・システムにおいて前記第２のファイル・システムへの間接的アクセスを可能にする仮想化されたファイル・システムを実現するための方法であって、
前記複数のクライアント・コンピュータと前記第２のファイル・システム管理ユニットとの間で第１のファイル・システム管理ユニットを相互接続することと、
前記第１のファイル・システム管理ユニットによって管理される第１のファイル・システム内に第１のディレクトリを作成することと、
前記第２のファイル・システムの第１のディレクトリを前記第１のファイル・システムの前記第１のディレクトリに関連付けることと、
前記第１のファイル・システム管理ユニットにおいて前記クライアント・コンピュータから受信されたクライアント要求に基づき、また前記第１のファイル・システムの前記第１のディレクトリと前記第２のファイル・システムの前記第１のディレクトリとの間の前記関連付けに基づき前記第１のファイル・システム管理ユニットによる前記第２のファイル・システムのオンデマンド仮想化を可能にすることと、
前記第１のファイル・システムを通じて前記第２のファイル・システムへの間接的クライアント・アクセスを可能にすることとを含む方法。
【請求項２１】
複数のクライアント・コンピュータと、第２のファイル・システムを管理し、前記第２のファイル・システムへのクライアント・アクセスを可能にするための第２のファイル・システム管理ユニットと、前記複数のクライアント・コンピュータと前記第２のファイル・システム管理ユニットとの間で相互接続されている第１のファイル・システム管理ユニットとを備えるデータ・ストレージ・システムにおいて前記第２のファイル・システムへの間接的アクセスを可能にする仮想化されたファイル・システムを実現するためのデータ・ストレージ・システムであって、前記第１のファイル・システム管理ユニットは
前記第１のファイル・システム管理ユニットによって管理される第１のファイル・システム内に第１のディレクトリを作成し、
前記第２のファイル・システムの第１のディレクトリを前記第１のファイル・システムの前記第１のディレクトリに関連付け、
前記第１のファイル・システム管理ユニットにおいて前記クライアント・コンピュータから受信されたクライアント要求に基づき、また前記第１のファイル・システムの前記第１のディレクトリと前記第２のファイル・システムの前記第１のディレクトリとの間の前記関連付けに基づき前記第１のファイル・システム管理ユニットによる前記第２のファイル・システムのオンデマンド仮想化を可能にし、
前記第１のファイル・システムを通じて前記第２のファイル・システムへの間接的クライアント・アクセスを可能にするように適合されるデータ・ストレージ・システム。
【請求項２２】
請求項２０に記載の方法のステップを実行するようにさらに適合されている第１のファイル・システム管理ユニットを備える請求項２１に記載のデータ・ストレージ・システムにおいて使用するためのファイル・システム・サーバ。
【請求項２３】
コンピュータ・プログラム・コード手段を備えるコンピュータ・プログラム製品であって、前記コンピュータ・プログラム・コード手段は、複数のクライアント・コンピュータと第２のファイル・システムを管理し、前記第２のファイル・システムへのクライアント・アクセスを可能にするための第２のファイル・システム管理ユニットとを備えるデータ・ストレージ・システム内のファイル・システム管理ユニットの処理ユニットに、前記複数のクライアント・コンピュータと前記第２のファイル・システム管理ユニットとの間で第１のファイル・システム管理ユニットを相互接続するときに、
前記第１のファイル・システム管理ユニットによって管理される第１のファイル・システム内に第１のディレクトリを作成するステップと、
前記第２のファイル・システムの第１のディレクトリを前記第１のファイル・システムの前記第１のディレクトリに関連付けるステップと、
前記第１のファイル・システム管理ユニットにおいて前記クライアント・コンピュータから受信されたクライアント要求に基づき、また前記第１のファイル・システムの前記第１のディレクトリと前記第２のファイル・システムの前記第１のディレクトリとの間の前記関連付けに基づき前記第１のファイル・システム管理ユニットによる前記第２のファイル・システムのオンデマンド仮想化を可能にすることと、
前記第１のファイル・システムを通じて前記第２のファイル・システムへの間接的クライアント・アクセスを可能にするステップとを実行させるように構成されるコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル・システムの仮想化のための方法、ならびに装置およびデータ・ストレージ・システム（data storage system）、ならびにそのようなデータ・ストレージ・システムにおいて使用するためのファイル・サーバに関するものである。
【背景技術】
【０００２】
従来技術には、例えば以下の図１Ａに関連して説明されているような知られているデータ・ストレージ・システムがあり、そこでは、複数のクライアント・コンピュータがクライアント・コンピュータによるＩ／Ｏアクセスのため１つまたは複数のファイル・システムを管理する１つまたは複数のファイル・サーバ・システムと通信ネットワークを介して接続されている。
【０００３】
いくつかの時点において、例えば、より新しいファイル・サーバは、より多くのファイル・システムまたはより大きいファイル・システムを管理し（より大きいデータ記憶空間および／またはより多くのファイル・システム・オブジェクトを有効化することを含む）、より効率的な入出力（Ｉ／Ｏ）の実行を有効化し、より大きいストレージ・ユニットまたはより効率的なストレージ・デバイス技術を収容するストレージ・ユニットの使用を可能にするように適合され得るので、データ・ストレージ・システム全体の性能を改善するために１つまたは複数の（レガシー）ファイル・サーバを新しいファイル・サーバと交換することが望ましい場合がある。それでも、ファイル・システム構造（既存のファイル・ツリー構造など）およびそのユーザ・データ（ファイル・コンテンツ）を含むすでに存在しているファイル・システム（複数可）を保持することが望ましい場合があるが、原理上、ユーザが中断なしで、または少なくとも、できる限り短い単一の中断のみで既存のファイル・システム（複数可）にアクセスすることを可能にすることが望ましい。ハードウェア・ベースのファイル・システムに対する装置および方法の一例は、米国特許第７，４５７，８２２Ｂ１号において説明されており、これは参照により本明細書に組み込まれている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下でさらに詳しく説明されているように、本発明の実施形態は、データ・ストレージ・システムおよびその部品に関係するものとしてよく、そこでは、（新しい）第１のファイル・システム管理ユニットは、複数のクライアント・コンピュータと、クライアント・コンピュータによってアクセス可能な１つまたは複数のファイル・システムを管理する（レガシー）第２のファイル・システム管理ユニットとの間で相互接続される。
【０００５】
（新しい）第１のファイル・システム管理ユニットを相互接続した後に、（新しい）第１のファイル・システム管理ユニットを通じて、クライアント・コンピュータによる（レガシー）第２のファイル・システム管理ユニットの１つまたは複数のファイル・システムへのＩ／Ｏアクセスが達成され得る。仮想化と称される第１のフェーズにおいて、（レガシー）第２のファイル・システム管理ユニットの１つまたは複数のファイル・システムは、（新しい）第１のファイル・システム管理ユニットの１つまたは複数の仮想化されたファイル・システムによって表されるものとしてよく、仮想化されたファイル・システムは仮想化フェーズにおいて徐々に構築される。マイグレーションと称される、第２のフェーズ（仮想化フェーズとオーバーラップし得る）では、（レガシー）第２のファイル・システム管理ユニットの１つまたは複数のファイル・システムのユーザ・データは、（新しい）第１のファイル・システム管理ユニットにマイグレーションされ得る。
【０００６】
本発明によれば、目的は、第２のファイル・システムへの間接的アクセスを可能にし、第２のファイル・システムへのクライアント・アクセスを可能にする仮想化されたファイル・システムを構築し、実現するための方法、および装置、データ・ストレージ・システムおよびファイル・サーバを実現することである。
【課題を解決するための手段】
【０００７】
いくつかの実施形態によれば、複数のクライアント・コンピュータと、第２のファイル・システムを管理し、第２のファイル・システムへのクライアント・アクセスを可能にするための第２のファイル・システム管理ユニットと、複数のクライアント・コンピュータと第２のファイル・システム管理ユニットとの間で相互接続されている第１のファイル・システム管理ユニットとを備えるデータ・ストレージ・システムにおいて第２のファイル・システムへの間接的アクセスを可能にする仮想化されたファイル・システムを実現するための装置が実現され得る。
【０００８】
いくつかの実施形態では、装置は、第１のファイル・システム管理ユニットによって管理される第１のファイル・システム内に第１のディレクトリを作成し、第２のファイル・システムの第１のディレクトリを第１のファイル・システムの第１のディレクトリに関連付け、第１のファイル・システム管理ユニットにおいてクライアント・コンピュータから受信されたクライアント要求に基づき、また第１のファイル・システムの第１のディレクトリと第２のファイル・システムの第１のディレクトリとの間の関連付けに基づき第１のファイル・システム管理ユニットによる第２のファイル・システムのオンデマンド仮想化を可能にし、および／または第１のファイル・システムを通じて第２のファイル・システムへの間接的クライアント・アクセスを行うことを可能にするように適合された第１のファイル・システム管理ユニットを備え得る。これは、基本的に第２のファイル・システムへのクライアント・アクセスが、第１のファイル・システム管理ユニットを通じて間接的に第１のファイル・システム管理ユニットを相互接続した直後に可能にされ得るという利点を有する。
【０００９】
いくつかの実施形態では、オンデマンド仮想化を実行するために、第１のファイル・システム管理ユニットは、クライアント・コンピュータから、第２のファイル・システムの第１のディレクトリに関する第２のパス・ロケーションにおいて第２のファイル・システムの第２のディレクトリに向けられたアクセス要求を受信し、第２のファイル・システムの第２のディレクトリに向けられたアクセス要求を受信した後に、第１のファイル・システムの第１のディレクトリに関する第２のパス・ロケーションにおいて第１のファイル・システム内に第２のディレクトリを作成し、および／または第２のファイル・システムの第２のディレクトリのメタデータを第１のファイル・システム内に第１のファイル・システムの第２のディレクトリのメタデータとして記憶するように適合され得る。
【００１０】
いくつかの実施形態では、第１のファイル・システム管理ユニットは、アクセス要求が、第２のファイル・システムの第２のディレクトリを修正することを求める要求であるときには、受信されたアクセス要求に従って第１のファイル・システムの第２のディレクトリを修正し、アクセス要求を第２のファイル・システム管理ユニットに送信して第２のファイル・システム管理ユニットによる受信されたアクセス要求に従って第２のファイル・システムの第２のディレクトリを修正し、および／またはアクセス要求が、第２のファイル・システムの第２のディレクトリの属性を読み出すことを求める要求であるときには、第１のファイル・システムの第２のディレクトリのメタデータに基づき第２のファイル・システムの第２のディレクトリの要求された属性を返すように適合され得る。
【００１１】
いくつかの実施形態では、オンデマンド仮想化を実行するために、第１のファイル・システム管理ユニットは、クライアント・コンピュータから、第２のファイル・システムの第１のディレクトリに関する第１のパス・ロケーションにおいて第２のファイル・システムの第１のファイルに向けられたアクセス要求を受信し、第２のファイル・システムの第１のファイルに向けられたアクセス要求を受信した後に、第１のファイル・システムの第１のディレクトリに関する第１のパス・ロケーションにおいて第１のファイル・システム内に第１の外部リンク・オブジェクトを作成し、および／または第２のファイル・システムの第１のファイルのメタデータを第１のファイル・システム内に第１のファイル・システムの第１の外部リンク・オブジェクトと一緒に第１のファイルのメタデータとして記憶するように適合され得る。
【００１２】
いくつかの実施形態では、外部リンク・オブジェクトは、第１のファイル・システムにおいて第２のファイル・システムの第１のファイルを表す、第２のファイル・システムの第１のファイルへのアクセスを可能にする第１のファイル・システムのファイル・システム・オブジェクトであってよく、第１の外部リンク・オブジェクトは第２のファイル・システム内の第１のファイルの固有オブジェクトＩＤおよび第２のファイル・システムの第１のディレクトリに関する第１のパス・ロケーションを少なくとも示すリンク・データを含む。
【００１３】
いくつかの実施形態では、第１のファイル・システム管理ユニットは、アクセス要求が、第２のファイル・システムの第１のファイルを修正することを求める要求であるときには、第１の外部リンク・オブジェクトのリンク・データに基づきアクセス要求を第２のファイル・システム管理ユニットに送信して第２のファイル・システム管理ユニットによる受信されたアクセス要求に従って第２のファイル・システムの第１のファイルを修正し、および／またはアクセス要求が、第２のファイル・システムの第１のファイルの属性を読み出すことを求める要求であるときには、第１の外部リンク・オブジェクトのメタデータに基づき第２のファイル・システムの第１のファイルの要求された属性を返すように適合され得る。
【００１４】
いくつかの実施形態では、第１のファイル・システム管理ユニットは、第１のファイル・システム管理ユニットにおいてクライアント・コンピュータから受信されたクライアント要求と無関係に、第１のファイル・システム管理ユニットによって管理される仮想化管理情報に基づき、第１のファイル・システムの第１のディレクトリと第２のファイル・システムの第１のディレクトリとの間の関連付けに基づき、第１のファイル・システム管理ユニットによる第２のファイル・システムの自動仮想化を可能にするように適合されるものとしてよく、仮想化管理情報は第２のファイル・システム内に存在する第１のディレクトリを少なくとも示す。
【００１５】
いくつかの実施形態では、自動仮想化を実行するために、第１のファイル・システム管理ユニットは、第２のファイル・システム管理ユニットに、仮想化管理情報で示される第２のファイル・システムのターゲット・ディレクトリに向けられたディレクトリ情報要求を送信し、第２のファイル・システムのターゲット・ディレクトリ内に存在する子オブジェクトを示す情報を要求し、第２のファイル・システム管理ユニットから、ディレクトリ情報要求に応答して第２のファイル・システムのターゲット・ディレクトリに存在する子オブジェクトを示す情報を受信し、および／または第２のファイル・システムのターゲット・ディレクトリに存在する子オブジェクトを示す受信された情報に基づき仮想化管理情報を更新するように適合され得る。
【００１６】
いくつかの実施形態では、自動仮想化を実行するために、第１のファイル・システム管理ユニットは、仮想化管理情報で示されているような第２のファイル・システムのターゲット・ディレクトリに存在する各子オブジェクトについて、第２のファイル・システムの第１のディレクトリに関する関連付けられている子オブジェクトのパス・ロケーションに対応する第１のファイル・システムの第１のディレクトリに関するパス・ロケーションにおいて関連付けられているファイル・システム・オブジェクトを第１のファイル・システム内に作成するように適合され得る。
【００１７】
いくつかの実施形態では、ディレクトリ情報要求を前記送信することは、第２のファイル・システムの複数のターゲット・ディレクトリに対して第１のファイル・システム管理ユニットによって自動的に繰り返され、および／または仮想化管理情報で示されているような第２のファイル・システムのターゲット・ディレクトリに存在する各子オブジェクトについて、第１のファイル・システム内の関連付けられているファイル・システム・オブジェクトを前記作成することは、複数のターゲット・ディレクトリの各々に対して第１のファイル・システム管理ユニットによって繰り返され得る。
【００１８】
いくつかの実施形態では、第２のファイル・システムの複数のターゲット・ディレクトリについてディレクトリ情報要求を前記繰り返し送信すること、および複数のターゲット・ディレクトリの子ディレクトリの各々について第１のファイル・システム内に関連付けられているファイル・システム・オブジェクトを前記繰り返し作成することは、第１のファイル・システム管理ユニットによって並行して実行され得る。
【００１９】
いくつかの実施形態では、第２のファイル・システムの複数のターゲット・ディレクトリに対するディレクトリ情報要求を前記繰り返し送信する単位時間当たりの実行速度は、第１のファイル・システム管理ユニットのバッファ・ユニットのストレージ占有率に基づき第１のファイル・システム管理ユニットによって制御され得る。
【００２０】
いくつかの実施形態では、第２のファイル・システムの複数のターゲット・ディレクトリに対するディレクトリ情報要求を前記繰り返し送信する単位時間当たりの実行速度は、第１のファイル・システム管理ユニットと第２のファイル・システム管理ユニットとの間の通信チャネルの可用率の率に基づき第１のファイル・システム管理ユニットによって制御され得る。
【００２１】
いくつかの実施形態では、作成されたファイル・システム・オブジェクトは、関連付けられている子オブジェクトが第２のファイル・システムの第３のディレクトリであるときに第１のファイル・システムの第３のディレクトリであってよい。
【００２２】
いくつかの実施形態では、自動仮想化を実行するために、第１のファイル・システム管理ユニットは、第１のファイル・システムの作成された第３のディレクトリ内に自己参照リンクを作成し、第２のファイル・システム内の関連付けられている第３のディレクトリの子ディレクトリの数に基づき第１のファイル・システムの作成された第３のディレクトリに対してフェイク・リンク・カウント（fake link count）を計算し、および／または第１のファイル・システムの作成された第３のディレクトリのメタデータ内に計算されたフェイク・リンク・カウントを記憶するようにさらに適合され得る。
【００２３】
いくつかの実施形態では、第１のファイル・システム管理ユニットは、第２のファイル・システムの第３のディレクトリの子ディレクトリに関連付けられている第１のファイル・システムの第３のディレクトリ内の子ディレクトリを自動的に作成するときに第２のファイル・システム内の第３のディレクトリに関連付けられている第１のファイル・システムの第３のディレクトリのメタデータに記憶されているフェイク・リンク・カウントをデクリメントするように適合され得る。
【００２４】
いくつかの実施形態では、第１のファイル・システム管理ユニットは、クライアント・コンピュータのうちの１つから、第２のファイル・システムの第３のディレクトリのリンク・カウントを読み出すことを求める要求を受信し、第１のファイル・システムの第３のディレクトリのフェイク・リンク・カウントと第１のファイル・システムの第３のディレクトリの実リンク・カウントとを加算することによって第２のファイル・システムの第３のディレクトリのリンク・カウントを計算し、および／または要求に応答して計算されたリンク・カウントをクライアント・コンピュータに送信するようにさらに適合され得る。
【００２５】
いくつかの実施形態では、作成されたファイル・システム・オブジェクトは、それぞれの子オブジェクトが第２のファイル・システムの第２のファイルであるときに第２の外部リンク・オブジェクトであるものとしてよく、第２の外部リンク・オブジェクトは第１のファイル・システムにおいて第２のファイル・システムの第２のファイルを表し、第２のファイル・システムの第２のファイルへのアクセスを可能にし、第２の外部リンク・オブジェクトは第２のファイル・システム内の第２のファイルの固有オブジェクトＩＤおよび第２のファイル・システムの第１のディレクトリに関する第２のファイルのパス・ロケーションを少なくとも示すリンク・データを含む。
【００２６】
いくつかの実施形態では、第１のファイル・システム管理ユニットは、仮想化管理情報を複数のデータ・ブロックに分割し、および／または、各データ・ブロックについて、仮想化管理情報のデータ・ブロックの各々のバックアップ・コピーを繰り返し生成するようにさらに適合され得る。
【００２７】
いくつかの実施形態では、複数のデータ・ブロックの第１のデータ・ブロックは、第２のファイル・システムの第４のディレクトリに関連付けられている管理データを含み、１つまたは複数の第２のデータ・ブロックは、第２のファイル・システムの第４のディレクトリの子ディレクトリに関連付けられている管理データを含むものとしてよく、第１のファイル・システム管理ユニットは、第１のデータ・ブロックのバックアップ・コピーを生成する前に１つまたは複数の第２のデータ・ブロックの各々のバックアップ・コピーを生成するように適合され得る。
【００２８】
別の態様のいくつかの実施形態によれば、複数のクライアント・コンピュータと第２のファイル・システムを管理し、第２のファイル・システムへのクライアント・アクセスを可能にするための第２のファイル・システム管理ユニットとを備えるデータ・ストレージ・システムにおいて第２のファイル・システムへの間接的アクセスを可能にする仮想化されたファイル・システムを実現するための方法が提供され得る。
【００２９】
この方法は、複数のクライアント・コンピュータと第２のファイル・システム管理ユニットとの間で第１のファイル・システム管理ユニットを相互接続すること、第１のファイル・システム管理ユニットによって管理される第１のファイル・システム内に第１のディレクトリを作成すること、第２のファイル・システムの第１のディレクトリを第１のファイル・システムの第１のディレクトリに関連付けること、第１のファイル・システム管理ユニットにおいてクライアント・コンピュータから受信されたクライアント要求に基づき、また第１のファイル・システムの第１のディレクトリと第２のファイル・システムの第１のディレクトリとの間の関連付けに基づき第１のファイル・システム管理ユニットによる第２のファイル・システムのオンデマンド仮想化を可能にすること、および／または第１のファイル・システムを通じて第２のファイル・システムへの間接的クライアント・アクセスを行うことを可能にすることを含み得る。
【００３０】
いくつかの実施形態におけるオンデマンド仮想化は、第１のファイル・システム管理ユニットにおいて、第２のファイル・システムの第１のディレクトリに関する第２のパス・ロケーションにおいて第２のファイル・システムの第２のディレクトリに向けられたアクセス要求を受信すること、第２のファイル・システムの第２のディレクトリに向けられたアクセス要求を受信した後に、第１のファイル・システムの第１のディレクトリに関する第２のパス・ロケーションにおいて第１のファイル・システム内に第２のディレクトリを作成すること、および／または第２のファイル・システムの第２のディレクトリのメタデータを第１のファイル・システム内に第１のファイル・システムの第２のディレクトリのメタデータとして記憶することを含み得る。
【００３１】
いくつかの実施形態では、アクセス要求が、第２のファイル・システムの第２のディレクトリを修正することを求める要求であるときには、この方法は、受信されたアクセス要求に従って第１のファイル・システムの第２のディレクトリを修正することと、アクセス要求を第２のファイル・システム管理ユニットに送信することと、受信されたアクセス要求に従って第２のファイル・システムの第２のディレクトリを修正することとをさらに含み得る。
【００３２】
いくつかの実施形態では、アクセス要求が、第２のファイル・システムの第２のディレクトリの属性を読み出すことを求める要求であるときには、この方法は、第１のファイル・システムの第２のディレクトリのメタデータに基づき第２のファイル・システムの第２のディレクトリの要求された属性を返すことをさらに含み得る。
【００３３】
いくつかの実施形態におけるオンデマンド仮想化は、第１のファイル・システム管理ユニットにおいて、第２のファイル・システムの第１のディレクトリに関する第１のパス・ロケーションにおいて第２のファイル・システムの第１のファイルに向けられたアクセス要求を受信すること、第２のファイル・システムの第１のファイルに向けられたアクセス要求を受信した後に、第１のファイル・システムの第１のディレクトリに関する第１のパス・ロケーションにおいて第１のファイル・システム内に第１の外部リンク・オブジェクトを作成すること、および／または第２のファイル・システムの第１のファイルのメタデータを第１のファイル・システム内に第１のファイル・システムの第１の外部リンク・オブジェクトと一緒に第１のファイルのメタデータとして記憶することを含み得る。
【００３４】
外部リンク・オブジェクトは、第１のファイル・システムにおいて第２のファイル・システムの第１のファイルを表す、第２のファイル・システムの第１のファイルへのアクセスを可能にする第１のファイル・システムのファイル・システム・オブジェクトであってよく、第１の外部リンク・オブジェクトは好ましくは第２のファイル・システム内の第１のファイルの固有オブジェクトＩＤおよび第２のファイル・システムの第１のディレクトリに関する第１のパス・ロケーションを少なくとも示すリンク・データを含む。
【００３５】
いくつかの実施形態では、アクセス要求が、第２のファイル・システムの第１のファイルを修正することを求める要求であるときには、この方法は、第１の外部リンク・オブジェクトのリンク・データに基づきアクセス要求を第２のファイル・システム管理ユニットに送信することと、受信されたアクセス要求に従って第２のファイル・システムの第１のファイルを修正することとをさらに含み得る。
【００３６】
いくつかの実施形態では、アクセス要求が、第２のファイル・システムの第１のファイルの属性を読み出すことを求める要求であるときには、この方法は、第１の外部リンク・オブジェクトのメタデータに基づき第２のファイル・システムの第１のファイルの要求された属性を返すことをさらに含み得る。
【００３７】
いくつかの実施形態では、この方法は、第１のファイル・システム管理ユニットにおいてクライアント・コンピュータから受信されたクライアント要求と無関係に、および／または第１のファイル・システム管理ユニットによって管理される仮想化管理情報に基づき、第１のファイル・システムの第１のディレクトリと第２のファイル・システムの第１のディレクトリとの間の関連付けに基づき、第１のファイル・システム管理ユニットによる第２のファイル・システムの自動仮想化を可能にすることをさらに含むものとしてよく、仮想化管理情報は好ましくは第２のファイル・システム内に存在する第１のディレクトリを少なくとも示す。
【００３８】
いくつかの実施形態における自動仮想化は、第１のファイル・システム管理ユニットから第２のファイル・システム管理ユニットに、仮想化管理情報で示される第２のファイル・システムのターゲット・ディレクトリに向けられたディレクトリ情報要求を送信し、第２のファイル・システムのターゲット・ディレクトリ内に存在する子オブジェクトを示す情報を要求すること、第２のファイル・システム管理ユニットから、第１のファイル・システム管理ユニットにおいて、ディレクトリ情報要求に応答して第２のファイル・システムのターゲット・ディレクトリに存在する子オブジェクトを示す情報を受信すること、および／または第２のファイル・システムのターゲット・ディレクトリに存在する子オブジェクトを示す受信された情報に基づき仮想化管理情報を更新することを含み得る。
【００３９】
いくつかの実施形態における自動仮想化は、仮想化管理情報で示されているような第２のファイル・システムのターゲット・ディレクトリに存在する各子オブジェクトについて、第２のファイル・システムの第１のディレクトリに関する関連付けられている子オブジェクトのパス・ロケーションに対応する第１のファイル・システムの第１のディレクトリに関するパス・ロケーションにおいて関連付けられているファイル・システム・オブジェクトを第１のファイル・システム内に作成することをさらに含み得る。
【００４０】
いくつかの実施形態では、ディレクトリ情報要求を前記送信することは、第２のファイル・システムの複数のターゲット・ディレクトリに対して自動的に繰り返され、および／または仮想化管理情報で示されているような第２のファイル・システムのターゲット・ディレクトリに存在する各子オブジェクトについて、第１のファイル・システム内の関連付けられているファイル・システム・オブジェクトを前記作成することは、複数のターゲット・ディレクトリの各々に対して繰り返される。
【００４１】
いくつかの実施形態では、第２のファイル・システムの複数のターゲット・ディレクトリについてディレクトリ情報要求を前記繰り返し送信すること、および複数のターゲット・ディレクトリの子ディレクトリの各々について第１のファイル・システム内に関連付けられているファイル・システム・オブジェクトを前記繰り返し作成することは、並行して実行され得る。
【００４２】
いくつかの実施形態では、第２のファイル・システムの複数のターゲット・ディレクトリに対するディレクトリ情報要求を前記繰り返し送信する単位時間当たりの実行速度は、第１のファイル・システム管理ユニットのバッファ・ユニットのストレージ占有率に基づき制御され得る。
【００４３】
いくつかの実施形態では、第２のファイル・システムの複数のターゲット・ディレクトリに対するディレクトリ情報要求を前記繰り返し送信する単位時間当たりの実行速度は、第１のファイル・システム管理ユニットと第２のファイル・システム管理ユニットとの間の通信チャネルの可用率の率に基づき制御され得る。
【００４４】
いくつかの実施形態では、作成されたファイル・システム・オブジェクトは、関連付けられている子オブジェクトが第２のファイル・システムの第３のディレクトリであるときに第１のファイル・システムの第３のディレクトリであってよい。
【００４５】
いくつかの実施形態における自動仮想化は、第１のファイル・システムの作成された第３のディレクトリ内に自己参照リンクを作成すること、第２のファイル・システム内の関連付けられている第３のディレクトリの子ディレクトリの数に基づき第１のファイル・システムの作成された第３のディレクトリに対してフェイク・リンク・カウントを計算すること、および／または第１のファイル・システムの作成された第３のディレクトリのメタデータ内に計算されたフェイク・リンク・カウントを記憶することをさらに含み得る。
【００４６】
いくつかの実施形態では、この方法は、第２のファイル・システムの第３のディレクトリの子ディレクトリに関連付けられている第１のファイル・システムの第３のディレクトリ内の子ディレクトリを自動的に作成するときに、第２のファイル・システム内の第３のディレクトリに関連付けられている第１のファイル・システムの第３のディレクトリのメタデータに記憶されているフェイク・リンク・カウントをデクリメントすることをさらに含み得る。
【００４７】
いくつかの実施形態では、この方法は、クライアント・コンピュータのうちの１つから、第１のファイル・システム管理ユニットにおいて、第２のファイル・システムの第３のディレクトリのリンク・カウントを読み出すことを求める要求を受信すること、第１のファイル・システムの第３のディレクトリのフェイク・リンク・カウントと第１のファイル・システムの第３のディレクトリの実リンク・カウントとを加算することによって、第１のファイル・システム管理ユニットにおいて、第２のファイル・システムの第３のディレクトリのリンク・カウントを計算すること、および／または要求に応答して計算されたリンク・カウントをクライアント・コンピュータに送信することをさらに含み得る。
【００４８】
いくつかの実施形態では、作成されたファイル・システム・オブジェクトは、それぞれの子オブジェクトが第２のファイル・システムの第２のファイルであるときに第２の外部リンク・オブジェクトであるものとしてよく、第２の外部リンク・オブジェクトは好ましくは第１のファイル・システムにおいて第２のファイル・システムの第２のファイルを表し、第２のファイル・システムの第２のファイルへのアクセスを可能にし、第２の外部リンク・オブジェクトは好ましくは第２のファイル・システム内の第２のファイルの固有オブジェクトＩＤおよび第２のファイル・システムの第１のディレクトリに関する第２のファイルのパス・ロケーションを少なくとも示すリンク・データを含む。
【００４９】
いくつかの実施形態では、この方法は、仮想化管理情報を複数のデータ・ブロックに分割することと、各データ・ブロックについて、仮想化管理情報のデータ・ブロックの各々のバックアップ・コピーを繰り返し生成することとをさらに含み得る。
【００５０】
いくつかの実施形態では、複数のデータ・ブロックの第１のデータ・ブロックは、第２のファイル・システムの第４のディレクトリに関連付けられている管理データを含み、１つまたは複数の第２のデータ・ブロックは、第２のファイル・システムの第４のディレクトリの子ディレクトリに関連付けられている管理データを含み、この方法は、好ましくは、第１のデータ・ブロックのバックアップ・コピーを生成する前に１つまたは複数の第２のデータ・ブロックの各々のバックアップ・コピーを生成することをさらに含む。
【００５１】
別の態様によれば、複数のクライアント・コンピュータと、第２のファイル・システムを管理し、第２のファイル・システムへのクライアント・アクセスを可能にするための第２のファイル・システム管理ユニットと、複数のクライアント・コンピュータと第２のファイル・システム管理ユニットとの間で相互接続されている第１のファイル・システム管理ユニットとを備えるデータ・ストレージ・システムにおいて第２のファイル・システムへの間接的アクセスを可能にする仮想化されたファイル・システムを実現するための装置が実現され得る。
【００５２】
装置は、第１のファイル・システム管理ユニットによって管理される第１のファイル・システム内に第１のディレクトリを作成し、第２のファイル・システムの第１のディレクトリを第１のファイル・システムの第１のディレクトリに関連付け、第１のファイル・システム管理ユニットにおいてクライアント・コンピュータから受信されたクライアント要求に基づき、また第１のファイル・システムの第１のディレクトリと第２のファイル・システムの第１のディレクトリとの間の関連付けに基づき第１のファイル・システム管理ユニットによる第２のファイル・システムのオンデマンド仮想化を可能にし、および／または第１のファイル・システムを通じて第２のファイル・システムへの間接的クライアント・アクセスを行うことを可能にするように適合される第１のファイル・システム管理ユニットを備え得る。
【００５３】
いくつかの実施形態では、装置の第１のファイル・システム管理ユニットは、いくつかの実施形態に関連して上で説明されている態様のうちの１つまたは複数の態様のステップを実行するようにさらに適合され得る。
【００５４】
別の態様によれば、複数のクライアント・コンピュータと、第２のファイル・システムを管理し、第２のファイル・システムへのクライアント・アクセスを可能にするための第２のファイル・システム管理ユニットと、複数のクライアント・コンピュータと第２のファイル・システム管理ユニットとの間で相互接続されている第１のファイル・システム管理ユニットとを備えるデータ・ストレージ・システムにおいて第２のファイル・システムへの間接的アクセスを可能にする仮想化されたファイル・システムを実現するためのデータ・ストレージ・システムが実現されるものとしてよく、第１のファイル・システム管理ユニットは好ましくは第１のファイル・システム管理ユニットによって管理される第１のファイル・システム内に第１のディレクトリを作成し、第２のファイル・システムの第１のディレクトリを第１のファイル・システムの第１のディレクトリに関連付け、第１のファイル・システム管理ユニットにおいてクライアント・コンピュータから受信されたクライアント要求に基づき、また第１のファイル・システムの第１のディレクトリと第２のファイル・システムの第１のディレクトリとの間の関連付けに基づき第１のファイル・システム管理ユニットによる第２のファイル・システムのオンデマンド仮想化を可能にし、および／または第１のファイル・システムを通じて第２のファイル・システムへの間接的クライアント・アクセスを行うことを可能にするように適合される。
【００５５】
いくつかの実施形態では、データ・ストレージ・システムの第１のファイル・システム管理ユニットは、いくつかの実施形態に関連して上で説明されている態様のうちの１つまたは複数の態様のステップを実行するようにさらに適合され得る。
【００５６】
別の態様によれば、好ましくはいくつかの実施形態に関連して上で説明されているような第１のファイル・システム管理ユニットを備える、上で説明されているようなデータ・ストレージ・システムにおいて使用するためのファイル・システム・サーバが実現され得る。
【００５７】
別の態様によれば、データ・ストレージ・システム内のファイル・システム管理ユニットの処理ユニットにいくつかの実施形態に関連して上で説明されている態様のうちの１つまたは複数の態様のステップを実行させるように構成されているコンピュータ・プログラム・コード手段を備えるコンピュータ・プログラム製品が提供され得る。
【図面の簡単な説明】
【００５８】
【図１Ａ】データ・ストレージ・システムの一例を示す図である。
【図１Ｂ】追加のストレージ装置を相互接続している図１Ａのデータ・ストレージ・システムの一例を示す図である。
【図１Ｃ】データ・ストレージ・システムの別の例を示す図である。
【図１Ｄ】データ・ストレージ・システムの別の例を示す図である。
【図２】ファイル・システム管理ユニットの構造の概略図を示す例示的な図である。
【図３】仮想およびマイグレーション・ユニットの構造の概略機能図を示す例示的な図である。
【図４】ファイル・システムのツリー構造の一例を示す図である。
【図５Ａ】図４のツリー構造に基づく仮想化されたファイル・システムのツリー構造の一例を示す図である。
【図５Ｂ】図４のツリー構造に基づく他の仮想化されたファイル・システムのツリー構造の例を示す図である。
【図５Ｃ】図４のツリー構造に基づく他の仮想化されたファイル・システムのツリー構造の例を示す図である。
【図６】仮想化の初期化のための方法を示す例示的な流れ図を示す図である。
【図７】自動バックグラウンド仮想化のための情報交換を示す図である。
【図８】仮想化の際の第１の時点における仮想化管理情報テーブルの一例を示す図である。
【図９】部分的に仮想化されたファイル・システムのツリー構造の一例を示す図である。
【図１０】仮想化の際の第２の時点における仮想化管理情報テーブルの一例を示す図である。
【図１１】自動バックグラウンド仮想化のための情報交換を示す別の図である。
【図１２】仮想化の際の第３の時点における仮想化管理情報テーブルの一例を示す図である。
【図１３】部分的に仮想化されたファイル・システムのツリー構造の一例を示す図である。
【図１４】自動バックグラウンド仮想化管理の例示的な流れ図を示す図である。
【図１５】自動バックグラウンド仮想化の例示的な流れ図を示す図である。
【図１６】自動バックグラウンド・マイグレーションの別の例示的な流れ図を示す図である。
【図１７Ａ】仮想化されたファイルに対する外部リンク・オブジェクトの例示的な概略データ構造を示す図である。
【図１７Ｂ】仮想化されたディレクトリに対するメタデータの例示的な概略データ構造を示す図である。
【図１８】オンデマンド仮想化のための情報交換を示す図である。
【図１９】図１８によるオンデマンド仮想化の後の部分的に仮想化されたファイル・システムのツリー構造の一例を示す図である。
【図２０】仮想化の際にユーザのファイル・アクセスを可能にするための方法を示す例示的な流れ図を示す図である。
【図２１】仮想化の際に属性アクセスを可能にするための方法を示す例示的な流れ図を示す図である。
【図２２Ａ】仮想化の際にユーザのディレクトリ・アクセスを可能にするための方法を示す例示的な流れ図を示す図である。
【図２２Ｂ】仮想化の際にユーザのディレクトリ・アクセスを可能にするための方法を示す例示的な流れ図を示す図である。
【図２３】仮想化管理テーブルのバックアップのための方法を示す例示的な流れ図を示す図である。
【図２４】図４のファイル・システムのツリーの仮想化が完了した後の仮想化管理情報テーブルの一例を示す図である。
【図２５Ａ】仮想化されたファイルへの書き込みアクセスのための情報交換を示す図である。
【図２５Ｂ】仮想化されたファイルへの読み出しアクセスのための情報交換を示す図である。
【図２５Ｃ】仮想化されたファイルまたはディレクトリへの属性アクセスのための情報交換を示す図である。
【図２５Ｄ】仮想化されたファイルを削除するための情報交換を示す図である。
【図２５Ｅ】ファイル作成のための情報交換を示す図である。
【図２５Ｆ】属性を変更するための情報交換を示す図である。
【図２５Ｇ】ディレクトリ作成のための情報交換を示す図である。
【図２５Ｈ】ディレクトリの名前を変更するための情報交換を示す図である。
【発明を実施するための形態】
【００５９】
次に、本発明の好ましい態様および実施形態が、添付の図を参照しつつより詳細に説明される。異なる図面および実施形態における同じもしくは類似の特徴は、類似の参照番号によって参照される。さまざまな好ましい態様および好ましい実施形態に関係する以下の詳細な説明は、本発明の範囲を制限することを意図していないことは理解されるであろう。
【００６０】
図１Ａは、通信ネットワーク２００を介して第２のストレージ装置４００に接続されている複数のクライアント・コンピュータ１００（クライアント）を備えるデータ・ストレージ・システムの一例を示している。第２のストレージ装置４００は、１つまたは複数のファイル・システムを管理するためのファイル・システム管理ユニット４１０と、ストレージ・ユニット４２０によって管理される１つまたは複数のファイル・システムのユーザ・データとユーザ・データのメタデータとを記憶するためのストレージ・ユニット４２０と、バックアップ要求があり次第、または例えば定期的になど、自動的にストレージ・ユニット４２０に記憶されているデータのバックアップを実行するためのバックアップ・ストレージ・ユニット４３０とを備える。第２のストレージ装置４００は、単一のコンピューティング・デバイスとして、または互いに接続されている複数のデバイスからなるシステムとして実現され得る。例えば、ファイル・システム管理ユニット４１０は、ネットワーク・アタッチト・ストレージ（ＮＡＳ）のストレージ・ユニット４２０および４３０として１つまたは複数のストレージ・デバイスに接続されている１つまたは複数のファイル・システム・サーバ・コンピュータからなるシステムとして実現され得る。
【００６１】
通信ネットワーク２００（さらには以下で説明されている通信ネットワーク５００、６００、および８００）は、有線通信ネットワーク（ＷＡＮ、ＬＡＮ、ローカル・ファイバ・チャネル・ネットワーク、インターネット・ベースのネットワーク、イーサネット通信ネットワーク、もしくは同様のもの）またはワイヤレス通信ネットワーク（ＷＬＡＮなど）、またはこれらの組合せとして実現され得る。基本的な通信プロトコルは、ＮＦＳベースのプロトコルまたはＳＭＢ／ＣＩＦＳベースのプロトコルなどの、ファイバ・チャネル・プロトコルまたはファイル・ベースのプロトコルであるものとしてよい。
【００６２】
クライアント１００は、通信ネットワーク２００を介して第２のストレージ装置４００のファイル・システム管理ユニット４１０によって管理される１つまたは複数のファイル・システムのユーザ・データにアクセスするように適合される。特に、ユーザは、ユーザ個別またはユーザ・グループ個別のアクセス・ポリシー（例えば、ユーザ・アクセス権、ユーザ・グループ・アクセス権、ファイル・システムのパーミッションなど）に応じてネットワーク２００を介して第２のストレージ装置４００に接続されているクライアント１００の各々を介して、データをファイル・システムに書き込み、ファイル・システムからデータを読み出し、ファイル・システム内にファイルおよびディレクトリを作成し、ファイルおよびディレクトリなどのファイル・システムのオブジェクトの属性を設定または読み出し、ファイル・システムのデータを修正し、ファイル・システムのオブジェクトを削除し、ファイル・システムのオブジェクトを移動することができる。
【００６３】
いくつかの時点において、例えば、より新しいファイル・システム管理ストレージ装置は、より多くのファイル・システムまたはより大きいファイル・システムを管理し（より大きいデータ記憶空間および／またはより多くのファイル・システム・オブジェクトを使用可能にすることを含む）、より効率的な入出力（Ｉ／Ｏ）の実行を可能にし、より大きいストレージ・ユニットまたはより効率的なストレージ・デバイス技術を収容するストレージ・ユニットの使用を可能にするように適合され得るので、データ・ストレージ・システム全体の性能を改善するために第２のストレージ装置４００を別の新しいファイル・システム管理ストレージ装置と交換することが望ましい場合がある。それでも、ファイル・システム構造（既存のファイル・ツリー構造など）およびそのユーザ・データ（ファイル・コンテンツ）を含むすでに存在しているファイル・システム（複数可）を保持することが望ましい場合があるが、原理上、ユーザが中断なしで、または少なくとも、できる限り短い単一の中断のみで既存のファイル・システム（複数可）にアクセスすることを可能にすることが望ましい。
【００６４】
本発明のいくつかの好ましい態様によれば、既存のファイル・システム（複数可）を管理するためにより古いレガシーの第２のストレージ装置４００の代わりに使用されるものとする、より新しい第１のストレージ装置３００は、短い単一のサービス中断のみで、アクセスするクライアント１００と図１Ｂに例示的に示されているようなレガシーの第２のストレージ装置４００との間に相互接続されるということが基本的な考え方である。
【００６５】
図１Ｂは、本発明の好ましい態様により通信ネットワーク２００と第２のストレージ装置４００との間において追加の第１のストレージ装置３００を相互接続している図１Ａのデータ・ストレージ・システムの一例を示している。第１のストレージ装置３００は、１つまたは複数のファイル・システムを管理するためのファイル・システム管理ユニット３１０と、ストレージ・ユニット３２０によって管理される１つまたは複数のファイル・システムのユーザ・データとユーザ・データのメタデータとを記憶するためのストレージ・ユニット３２０と、バックアップ要求があり次第、または例えば定期的になど、自動的にストレージ・ユニット３２０に記憶されているデータのバックアップを実行するためのバックアップ・ストレージ・ユニット３３０とを備える。第１のストレージ装置３００は、単一のコンピューティング・デバイスとして、または互いに接続されている複数のデバイスからなるシステムとして実現され得る。例えば、ファイル・システム管理ユニット３１０は、ネットワーク・アタッチト・ストレージ（ＮＡＳ）のストレージ・ユニット３２０および３３０として１つまたは複数のストレージ・デバイスに接続されている１つまたは複数のファイル・システム・サーバ・コンピュータからなるシステムとして実現され得る。
【００６６】
通信ネットワーク２００と第２のストレージ装置４００との間で第１のストレージ装置３００を相互接続するためには、ファイル・システム・サービスの短い中断が１回だけ必要であり、その中断の際にクライアント１００の接続が切断され、クライアント１００は短い期間、既存のファイル・システム（複数可）にアクセスできない、すなわち、クライアント１００は、ユーザ・データの読み出し、ユーザ・データの書き込み、ファイルおよびディレクトリなどの新規ファイル・システム・オブジェクトの作成、またはファイル・システム・オブジェクト属性へのアクセスを行うことができない。
【００６７】
通信ネットワーク２００と第２のストレージ装置４００との間で第１のストレージ装置３００を相互接続した後、クライアント１００は、第２のストレージ・システム４００から接続が切断されたままであり、したがって、第２のファイル・ストレージ装置４００によって管理されるファイル・システム（複数可）に直接アクセスすることはできず、第１のストレージ装置３００を通じて間接的にのみ第２のストレージ装置４００によって管理されるファイル・システム（複数可）にアクセスすることができる。好ましい態様によれば、すべてのユーザ・アクセスは、第１のストレージ装置３００にのみアドレッシングされ、第２のストレージ装置４００への直接的接続は存在しないことが望ましい。
【００６８】
最初に、第１のストレージ装置３００を相互接続した後に、クライアント１００を介してユーザによってアクセスされるべき１つまたは複数のファイル・システムは、第２のストレージ装置４００上にそのまま保持され（ファイルを編成するためのファイルおよびディレクトリのユーザ・データを含み、またファイル・システム・オブジェクトのメタデータを含む）、第１のストレージ装置３００は、既存のファイル・システム（複数可）のデータを保持しない。
【００６９】
ローカルにおいて第１のストレージ装置３００上のファイル・システム（複数可）へのすべてのユーザ・アクセス要求を処理し、第２のストレージ装置の接続を切断できるようにするため、すべてのファイル・システム・データ（ユーザ・データおよびファイル・システム・メタデータを含む）が、最終的に、第２のストレージ装置４００から第１のストレージ装置３００にマイグレーションされる必要があり得る。しかしながら、多数のディレクトリおよびファイルを収容する大きなファイル・システムの場合、そのようなデータ・マイグレーションは、非常に長い時間を要することがあり、データのマイグレーションの際にすべてのファイル・システム・データ（ユーザ・データおよびファイル・システム・メタデータを含む）が第１のストレージ装置３００上に存在するまで無効化されていた場合、これにより、クライアント１００によるファイル・システム（複数可）の望ましくないアクセス不能状態が、不利なほどの長い期間続くことになる。
【００７０】
ファイル・システム（複数可）の望ましくないアクセス不能の期間を短縮するために、第１のストレージ・システム３００は、第１のストレージ装置３００を相互接続した直後に第２のストレージ装置４００によって管理されるファイル・システム（複数可）への間接的ユーザ・アクセスを可能にするように適合される。
【００７１】
次いで、次の段落で「仮想化」と称されている、第１のストレージ装置３００を相互接続した後の第１のフェーズにおいて、第１のストレージ装置３００は、ファイル・システム（複数可）のファイル・システム・ツリー（複数可）の仮想化を実行し、そこでは、第２のストレージ・システム４００上に存在するファイル・システム（複数可の）のファイル・システム・ツリー（複数可）が、第２のストレージ装置のストレージ・ユニット４２０上に記憶されているユーザ・データを実際にマイグレーションすることなく第１のストレージ装置３００上に仮想的に作成される。
【００７２】
次の段落で「マイグレーション」と称される、第２のフェーズにおいて、ファイルおよび同様のものの実際のデータコンテンツを含む実際のユーザ・データが、第２のストレージ装置４００から第１のストレージ装置３００に転送される。
【００７３】
仮想化フェーズおよびマイグレーション・フェーズの両方が完了した後、第１のストレージ装置３００は、仮想化フェーズおよびマイグレーション・フェーズにおいてファイル・システム（複数可）へのユーザ・アクセスが進行しているせいで、その間変更されている可能性が非常に高い、既存のファイル・システム（複数可）をローカルで処理することができ、第２のストレージ装置４００は、その後接続が完全に切断され得る。
【００７４】
しかしながら、仮想化フェーズおよびマイグレーション・フェーズの両方において、第２のストレージ装置４００は、第１のストレージ装置３００によってそのままアクセス可能である必要がある。
【００７５】
仮想化フェーズおよびマイグレーション・フェーズは、仮想化フェーズが完了するまでデータ・マイグレーションが開始されない、明確に区別できるフェーズとしていくつかの好ましい態様に関して以下でより詳しく説明されるが、本発明はそのような構成に制限されないこと、およびそれらのフェーズがファイル・システム（複数可）のすでに仮想化されている部分のファイルのファイル・データコンテンツのマイグレーションがファイル・システム（複数可）の他の部分について仮想化がまだ進行中である間にすでに実行され得るという点においてタイミングよくオーバーラップすることもあり得ることは理解されるであろう。
【００７６】
例として仮想化フェーズおよびマイグレーション・フェーズを明確に区別できるその後実行される動作フェーズと見なすときに、第１のファイル・システム管理ユニット３１０が第２のストレージ装置４００のファイル・システム（複数可）内に存在する各ファイルについてストレージ・ユニット３２０によって記憶されている外部リンク・オブジェクトを作成するという点において仮想化フェーズで第１のファイル・システム管理ユニット３１０が第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）の仮想化されたファイルのツリー構造を構築するので、第１のストレージ・システム３００上の（例えば、ストレージ・ユニット３２０内に記憶されている）ユーザ・データ（すなわち、ファイルコンテンツ）は存在しない。
【００７７】
これらの外部リンク・オブジェクトは、第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム（複数可）のファイル・システム・オブジェクトとなり、各外部リンク・オブジェクトはファイルの実際のユーザ・データ（すなわち、ファイルコンテンツそれ自体）が第１のストレージ装置３００のストレージ・ユニット３２０にマイグレーションされていない限り第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）の対応するファイルへのアクセスを可能にする。
【００７８】
第１のストレージ装置３００上に存在する外部リンク・オブジェクトを通じて第２のストレージ装置４００上に存在するファイル・システム（複数可）のファイルへのユーザ・アクセスの詳細は、以下で説明される。
【００７９】
以下の図１Ｂから図１Ｄの構成のすべてにおける第１および第２のストレージ装置３００および４００の接続は、さまざまな方法で、例えば、上で説明されている通信ネットワーク２００と同様の方法で実現され得るが、異なる複数のファイバ・チャネル内の並列通信を可能にする複数のファイバ・チャネルを有するファイバ・チャネル接続を提供することが特に望ましい場合がある。さらに、例えば、ＦＴＰベースのプロトコル、ＮＦＳベースのプロトコル（例えば、ＮＦＳｖ３もしくはＮＦＳｖ４）、またはＳＭＢ／ＣＩＦＳベースのプロトコル、または同様のものなどの、ファイル・ベースの通信プロトコルを使用することが望ましい場合がある。
【００８０】
図１Ｃは、通信ネットワーク２００と別の通信ネットワーク５００との間で追加の第１のストレージ装置３００を相互接続しているデータ・ストレージ・システムの別の例であり、これは複数の第２のストレージ装置４００に接続されている。すなわち、図１Ｂに示されているようなデータ・ストレージ・システムとの違いは、第１のストレージ装置３００が、複数のすでに存在しているレガシーのストレージ装置４００との交換のため使用されるものとしてよく、各々クライアント１００によってアクセスされるべき１つまたは複数のファイル・システム（複数可）を管理している、という点である。第１のストレージ装置３００は、複数のレガシーのストレージ装置４００によって管理されるファイル・システムの仮想化およびマイグレーションを実行するように適合される。
【００８１】
仮想化フェーズおよびマイグレーション・フェーズの両方が完了した後、第１のストレージ装置３００は、仮想化フェーズおよびマイグレーション・フェーズにおいてファイル・システム（複数可）へのユーザ・アクセスが進行しているせいで、その間変更されている可能性が非常に高い、既存のファイル・システムをローカルで処理することができ、第２のストレージ装置４００のうちの１つまたは複数またはすべてが、その後接続が完全に切断され得る。しかしながら、仮想化フェーズおよびマイグレーション・フェーズの両方において、第２のストレージ装置４００は、第１のストレージ装置３００によってそのままアクセス可能である必要がある。
【００８２】
図１Ｃの例において、場合によってはその後のマイグレーション・フェーズなしで第１のストレージ装置３００によるファイル・システムの仮想化を実行するだけでも有利ですらあり得ることは明らかである。例えば、レガシーのストレージ装置４００によって管理されるすべてのファイル・システムの仮想化の完了後に、ファイル・システムの実際のユーザ・データ（ファイルコンテンツ）がレガシーのストレージ装置４００のストレージ・ユニットにのみ依然として記憶される間、複数のレガシーのストレージ装置４００のすべてのファイル・システムは、第１のストレージ装置３００によって単一のアクセス・ポイントとして管理される仮想化されたファイル・システムを通じてクライアント１００によってアクセスされ得る。
【００８３】
図１Ｄは、データ・ストレージ・システムの別の例を示している。ここでもまた、クライアント１００は、通信ネットワーク２００を介して第１のストレージ装置３００に接続され、第１のストレージ装置３００は、別の通信ネットワーク５００を介して第２の（レガシーの）ストレージ装置３００に接続される。それに加えて、第１のストレージ装置３００は、さらに別の通信ネットワーク８００を介してリモート・ストレージ装置９００に接続され、第２のストレージ装置４００は、さらに別の通信ネットワーク６００を介して別のリモート・ストレージ装置７００に接続される。
【００８４】
そのような構成もリモート・データ・レプリケーションを可能にし、そこでは、第１のストレージ装置３００のストレージ・ユニット３２０に記憶されているユーザ・データは、通信ネットワーク８００を介して第１のリモート・ストレージ装置９００のストレージ・ユニットにリモート・レプリケーションされ、第２のストレージ装置４００のストレージ・ユニット４２０に記憶されているユーザ・データは、通信ネットワーク６００を介して第２のリモート・ストレージ装置７００のストレージ・ユニットにリモート・レプリケーションされ得る。もちろん、ネットワーク８００および６００を介したデータのリモート・レプリケーションは、同期的に、または非同期的に実行され得る。
【００８５】
原理上、多数のレガシーのデータ・ストレージ・システムに対して、第１のサイトにある第２のストレージ装置４００と第２のストレージ装置４００によって管理されるファイル・システム（複数可）のユーザ・データの同期または非同期リモート・レプリケーション用のリモート・ストレージ装置７００とを有する構成が存在する。図１Ｂに関連して上で説明されているような第１のストレージ装置３００を相互接続した後に、第１のストレージ装置３００は、第２のストレージ装置４００によって管理されるファイル・システム（複数可）の仮想化を実行するが、マイグレーション・フェーズが開始するまでユーザ・データを実際にはマイグレーションしない。
【００８６】
例示的な一実施形態によれば、マイグレーションなしの仮想化フェーズにおいて、書き込みアクセス、属性変更ユーザ・アクセス、新規ファイルおよびディレクトリの作成、名前変更の操作などのすべてのデータ修正ユーザ要求を含む、クライアント１００によるファイル・システム（複数可）へのすべてのユーザ・アクセスが、第２のストレージ装置４００にパススルーされ、第２のストレージ・システム４００は、ファイル・システム（複数可）の現在の（標準的な）バージョンを管理し続ける。そのような実施形態において、ファイル・システム（複数可）の標準的なデータ・バージョンは第２のストレージ装置４００上に完全に保持され、ストレージ装置９００に同期または非同期方式でレプリケーションされ、リモート・ストレージ装置９００は、後で接続され得るので、クライアント１００によるファイル・システム（複数可）へのすべてのデータ修正ユーザ・アクセスが第２のストレージ装置４００にパススルーされる限り、第１のストレージ装置３００からリモート・ストレージ装置９００へのデータ・レプリケーションを実行する必要はない。
【００８７】
しかしながら、マイグレーションが、仮想化中に（またはその後に）すでに開始されており、完全にマイグレーションされていて、第１のストレージ装置３００上に完全に保持されるファイル・システム・オブジェクトに対して、ならびに／または第１のストレージ装置３００によって管理されているファイル・システム（複数可）においてのみ実行されている新規ファイルおよび／もしくは新規ディレクトリの作成に対して修正ユーザ・アクセスがもはや第２のストレージ装置４００にパススルーされない、いくつかの他の実施形態において、すなわち、ファイル・システムが異なり始め得るときに、リモート・ストレージ装置９００への追加のデータ・レプリケーションは、少なくとも、完全にマイグレーションされていて、第１のストレージ装置３００上に完全に保持されるファイル・システム・オブジェクトに対して、ならびに／または新規作成されたファイルおよび／もしくは新規作成されたディレクトリに対して望ましいものとなり得る。
【００８８】
同様に、上記の構成すべてにおいて、データのバックアップに関して、ファイル・システム（複数可）のまだ標準的であるバージョンが第２のストレージ装置４００上にまだ保持され、第２のストレージ装置４００のストレージ・ユニット４２０からバックアップ・ストレージ・ユニット４３０への標準的なバージョンのバックアップが実行されるときに、クライアント１００によるファイル・システム（複数可）へのすべてのデータ修正ユーザ・アクセスが第２のストレージ装置４００にパススルーされる限り、第１のストレージ装置３００のストレージ・ユニット３２０からバックアップ・ストレージ・ユニット３００へのデータ・バックアップを実行する必要はない。
【００８９】
しかしながら、マイグレーションが、仮想化中に（またはその後に）すでに開始されており、完全にマイグレーションされていて、第１のストレージ装置３００上に完全に保持されるファイル・システム・オブジェクトに対して、ならびに／または第１のストレージ装置３００によって管理されているファイル・システム（複数可）においてのみ実行されている新規ファイルおよび／もしくは新規ディレクトリの作成に対して修正ユーザ・アクセスがもはや第２のストレージ装置４００にパススルーされない、いくつかの他の実施形態において、すなわち、ファイル・システムが異なり始め得るときに、リモート・ストレージ・ユニット３３０への追加のデータ・バックアップは、少なくとも、完全にマイグレーションされていて、第１のストレージ装置３００上に完全に保持されるファイル・システム・オブジェクトに対して、ならびに／または新規作成されたファイルおよび／もしくは新規作成されたディレクトリに対して望ましいものとなり得る。
【００９０】
図２は、ファイル・システム管理ユニット３１０の構造の概略図を例示的に示している。ファイル・システム管理ユニット３１０は、ネットワーク２００を介して複数のホスト・デバイス（クライアント・コンピュータ１００などの）に接続するための複数のホスト・インターフェース３１１ａから３１１ｇを備えるホスト・インターフェース・ユニット３１１と、ストレージ・ユニット３２０および３３０の複数のストレージ・デバイスに接続するための複数のストレージ・インターフェース３１２ａから３１２ｇを備えるストレージ・インターフェース・ユニット３１２とを具備する。それに加えて、ファイル・システム管理ユニット３１０は、１つまたは複数の中央演算処理装置と、管理データを含む処理に使用されるデータを一時的に記憶するためのメモリ・ユニット３１４と、アプリケーション・データおよび管理データを記憶するためのストレージ・デバイス３１５とを備える処理ユニット３１３を具備する。
【００９１】
図３は、ハードウェア、ソフトウェア、またはこれらの組合せによって実現され得る、ファイル・システム管理ユニット３１０の仮想化およびマイグレーション・ユニット３４０の概略機能図を例示的に示している。
【００９２】
仮想化およびマイグレーション・ユニット３４０は、仮想化管理データおよびマイグレーション管理データ（メモリ・ユニット３１４および／またはストレージ・デバイス３１５に記憶されている）を管理するための仮想化管理情報テーブル３４１と、仮想化管理データおよびマイグレーション管理データの（ストレージ・デバイス３１５および／またはストレージ・ユニット３２０および／または３３０への）バックアップを実行するための仮想化管理情報バックアップ・ユニット３４２とを備える。
【００９３】
通信目的に関して、仮想化およびマイグレーション・ユニット３４０は、クライアント１００からアクセス要求を受信し、クライアント１００からのアクセス要求に応答するためのクライアント通信ユニット３４８Ａを有する通信ユニット３４８と、アクセス要求を第２のストレージ装置４００のファイル・システム管理ユニット４１０に発行し、第２のストレージ装置４００のファイル・システム管理ユニット４１０から応答を受信するためのファイル・システム通信ユニット３４８Ｂとを備える。
【００９４】
仮想化およびマイグレーションを実行するため、仮想化およびマイグレーション・ユニット３４０は、第２のストレージ装置４００のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）のファイルのツリー構造を自動的にクローリング（観察）し、第２のストレージ装置４００のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）内で発見されたファイル・システム・オブジェクトの仮想化を命令する仮想化ジョブを作成するためのクローリング・ユニット３４３を備える。
【００９５】
仮想化およびマイグレーション・ユニット３４０は、クローリング・ユニット３４３によって発見されたファイル・システム・オブジェクトを仮想化する仮想化ジョブを実行し、仮想化されたファイル・システム・オブジェクトのマイグレーションを命令するマイグレーション・ジョブを作成するための仮想化ユニット３４４と、仮想化ユニット３４４によって仮想化されたファイル・システム・オブジェクトをマイグレーションするマイグレーション・ジョブを実行するためのマイグレーション・ユニット３４５とをさらに備える。
【００９６】
仮想化およびマイグレーション・ユニット３４０は、ファイル・システムのクローリング、ファイル・システム・オブジェクトの仮想化、およびファイル・システム・オブジェクトのマイグレーションに対するジョブをその後記憶するための複数のジョブ・キュー３４６Ａ、３４６Ｂ、および３４６Ｃをさらに備える。
【００９７】
例えば、第１のジョブ・キュー３４６Ａは、ディレクトリ情報ジョブを保持し、第２のジョブ・キュー３４６Ｂは、仮想化ジョブを保持し、第３のジョブ・キュー３４６Ｃは、マイグレーション・ジョブを保持し得る。すなわち、仮想化およびマイグレーションは、ジョブ・キュー３４６Ａ内に保持されているジョブに基づきファイル・システムのクローリングを行い（クローリング・ユニット３４３）、ジョブ・キュー３４６Ｂ内に保持されているジョブに基づきファイル・システム・オブジェクトの仮想化を行い（仮想化ユニット３４４）、ジョブ・キュー３４６Ｃ内に保持されているジョブに基づきファイル・システム・オブジェクトのマイグレーションを行う（マイグレーション・ユニット３４５）ための異なるユニットが用意されるという点においてマルチスレッドおよび／または並列化方式で実行され得る。
【００９８】
上述のユニットは、クローリング・ユニット３４３が、ジョブ・キュー３４６Ａから取り出された複数のクローリング・ジョブ（例えば、以下でさらに説明されているようなディレクトリ情報ジョブ）を並列に実行するように適合され、仮想化ユニット３４４が、ジョブ・キュー３４６Ｂから取り出された複数の仮想化ジョブを並列に実行するように適合され、マイグレーション・ユニット３４５が、ジョブ・キュー３４６Ｃから取り出された複数のマイグレーション・ジョブを並列に実行するように適合され得るという点においてマルチスレッド化されているものとしてよい。
【００９９】
しかしながら、本発明は、上で説明されているような３つのキューの使用に限定されず、ディレクトリ情報ジョブ、仮想化ジョブ、およびマイグレーション・ジョブの各々に対する複数のジョブ・キュー、または例えば、ディレクトリ情報ジョブ、仮想化ジョブ、およびマイグレーション・ジョブのすべてに対して１つのキューが用意されるという点において３つよりも少ないキューが用意され得る。キューがただ１つである後者の場合において、クローリング・ユニット３４３、仮想化ユニット３４４、およびマイグレーション・ユニット３４５は、単一のジョブ・キューから取り出された複数のジョブを実行するように適合され、すべての新規作成されたジョブ（同じキューへのディレクトリ情報ジョブ、仮想化ジョブ、およびマイグレーション・ジョブを含む）を追加する単一のマルチスレッド・ユニットとして実現され得る。
【０１００】
「ディレクトリ情報ジョブ」は、クローリング・ユニット３４３によって発見された第２のストレージ装置４００のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）の特定のディレクトリに関連付けられたジョブであり、この「ディレクトリ情報ジョブ」は第２のストレージ装置４００のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）の特定のディレクトリ内のファイル・システム・オブジェクト（サブディレクトリおよびファイルを含む）を観察することをクローリング・ユニット３４３に命令する。
【０１０１】
「仮想化ジョブ」は、クローリング・ユニット３４３によって発見された第２のストレージ装置４００のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）の特定のファイル・システム・オブジェクト（ファイルまたはディレクトリなど）に関連付けられたジョブであり、「仮想化ジョブ」は第１のストレージ装置３００上で特定のファイル・システム・オブジェクトを仮想化することを仮想化ユニット３４４に命令する。
【０１０２】
基本的に、クローリング・ユニット３４３によって発見されたディレクトリの仮想化は、対応するディレクトリ（同じ名前を有する）が第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム（複数可）内に作成されることを意味するが、クローリング・ユニット３４３によって発見されたファイルまたは類似のオブジェクト（ハード・リンクされたファイルなど）の仮想化は、外部リンク・オブジェクト（以下ではＸＬＯと略される）と称される仮想オブジェクトが、対応するファイルを有する第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）のディレクトリに対応する第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム（複数可）のディレクトリ内に作成されることを意味する。
【０１０３】
「外部リンク・オブジェクト」は、ファイルまたは類似のオブジェクト（ハード・リンクされたファイルなど）に関連付けられている第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム（複数可）内に存在するオブジェクトである。「外部リンク・オブジェクト」は、対応するファイルの実際のユーザ・データを記憶しないが、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）内の対応するファイルへの外部参照を含む。第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム（複数可）の「外部リンク・オブジェクト」が第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム（複数可）内の第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）の対応するファイルを表し、対応するファイルへのアクセスを可能にする。
【０１０４】
「外部リンク・オブジェクト」は、少なくとも、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）内の対応するファイルに使用されるリモート・オブジェクトＩＤに関する情報および第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）内のファイルのリモート・パスに関する情報を含み得る。
【０１０５】
「マイグレーション・ジョブ」は、仮想化ユニット３４４によって仮想化された第２のストレージ装置４００のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）の特定のファイルまたは類似のオブジェクト（ハード・リンクされたファイルなど）に関連付けられたジョブであり、「マイグレーション・ジョブ」は特定のファイルまたは類似のオブジェクトを第１のストレージ装置３００にマイグレーションすることをマイグレーション・ユニット３４５に命令する。すなわち、マイグレーション・ジョブを実行して特定のファイルをマイグレーションすることをマイグレーション・ユニット３４５に命令することによって、実際のユーザ・データはファイルコンテンツとして第１のストレージ装置３００に転送されストレージ・ユニット３２０に記憶される。
【０１０６】
ジョブが、ジョブ・キューがジョブで占有されている間に作成される場合、ジョブ・キュー３４６Ａから３４６Ｃのうちの１つまたは複数が占有されるときにディレクトリ情報ジョブ、仮想化ジョブ、およびマイグレーション・ジョブを一時的に記憶するためのバッファ・ユニット３４７が用意されている。ジョブが、バッファ・ユニット３４７によって保持されるときに、それらのジョブは、別のジョブが実行され、ジョブ・キューから取り除かれた後、それぞれのジョブ・キューに加えられる。
【０１０７】
「仮想化」、「マイグレーション」、「外部リンク・オブジェクト」、「ディレクトリ情報ジョブ」、「仮想化ジョブ」、および「マイグレーション・ジョブ」という用語に関連したさらなる例示的な詳細は、以下のより詳細な説明および例の説明において明らかになる。
【０１０８】
図４は、図１Ａおよび図１Ｂの第２のファイル・システム管理ユニット４１０によって例示的に管理されているようなファイル・システムのファイル・システム・ツリー構造の一例を示している。特に、第２のファイル・システム管理ユニット４１０によって管理され、図１Ａのストレージ・ユニット４２０に記憶されているファイル・システムは、第２のストレージ装置４００の接続を切断し、第１のファイル・システム管理ユニット３１０によって管理されるべき第１のストレージ装置３００上でファイル・システムの仮想化を開始する前に第１のストレージ装置３００を相互接続するときに、図４の構造を有すると例示的に仮定される。
【０１０９】
図４の例示的なファイル・システムは、最上位のディレクトリ／ｒｏｏｔおよび複数のサブディレクトリを有する。特に、子ディレクトリ／ｄｉｒ１および／ｄｉｒ２は、ファイル「ｆｉｌｅ１」および「ｆｉｌｅ２」に加えて／ｒｏｏｔディレクトリ内に存在する。すなわち、／ｒｏｏｔディレクトリは、子ディレクトリ／ｄｉｒ１および／ｄｉｒ２の親ディレクトリを表す。ディレクトリ／ｄｉｒ１は、子ディレクトリ／ｄｉｒ１１および／ｄｉｒ１２を有し、ディレクトリ／ｄｉｒ２は、１つの子ディレクトリ／ｄｉｒ２１およびファイル「ｆｉｌｅ３」を有する。ディレクトリ／ｄｉｒ１１の子ディレクトリ／ｄｉｒ１１１には、ファイル「ｆｉｌｅ９」および「ｆｉｌｅ１０」が存在する。さらに、ファイル「ｆｉｌｅ４」は、ディレクトリ／ｄｉｒ１１に記憶され、ファイル「ｆｉｌｅ５」および「ｆｉｌｅ６」は、ディレクトリ／ｄｉｒ１２内に存在する。最後に、ディレクトリ／ｄｉｒ２１は、「ｆｉｌｅ７」および「ｆｉｌｅ８」を有する。
【０１１０】
第１のストレージ装置３００が、例えば図１Ｂ、１Ｃ、または１Ｄに示されているようにクライアント１００と第２のストレージ装置４００との間に相互接続された後、第２のファイル・システム管理ユニット４１０によって管理され、図１Ａのストレージ・ユニット４２０に記憶されているファイル・システムの仮想化は、初期仮想化パスが作成されると直ちに開始されるものとしてよく、その仮想化パスは、第１のストレージ装置３００の第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内の１つの新規作成されたディレクトリ（例えば、最上位のディレクトリ）を仮想化されおよび／またはマイグレーションされるべき第２のストレージ装置４００の第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの部分の最上位のディレクトリに関連付ける。
【０１１１】
例えば、第１のストレージ装置３００上に以前のファイル・システムが存在していない場合、新規の最上位のディレクトリ／ｒｏｏｔが、第１のストレージ装置３００の第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に作成され、新規に確立された仮想パスによって第２のストレージ装置４００の第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの最上位のディレクトリ／ｒｏｏｔに関連付けられ、その結果、／ｒｏｏｔよりも下位であるディレクトリを有するすべてのファイル・システム・オブジェクトのツリー構造の仮想化が行われ得る。
【０１１２】
図５Ａは、図４のツリー構造に基づく仮想化されたファイル・システムのツリー構造の一例を示しており、そこでは、第１のファイル・システム管理ユニット３１０によって管理されるファイル・システムの最上位のディレクトリ／ｒｏｏｔは、第１の仮想パス＜ストレージ装置３００＞：／ｒｏｏｔ  −＞  ＜ストレージ装置４００＞：／ｒｏｏｔに従って第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの最上位のディレクトリ／ｒｏｏｔに関連付けられている。
【０１１３】
第１の仮想化パスにより第２のファイル・システム管理ユニット４１０のファイル・システムの完全な仮想化の後、第１のファイル・システム管理ユニット４１０は、図５Ａによるツリー構造を有するファイル・システムを管理し、そこでは、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムのディレクトリ／ｄｉｒ１、／ｄｉｒ２、／ｄｉｒ１１、／ｄｉｒ１２、／ｄｉｒ２１、および／ｄｉｒ１１１の各々が、第１のファイル・システム管理ユニット３１０によって管理されているようなファイル・システムにおいても作成されており、このファイル・システムはディレクトリ／ｄｉｒ１および／ｄｉｒ２が最上のディレクトリ／ｒｏｏｔの子ディレクトリとして作成され、ディレクトリ／ｄｉｒ１１および／ｄｉｒ１２がディレクトリ／ｄｉｒ１の子ディレクトリとして作成され、というように続く点において同じツリー構造を有する。
【０１１４】
しかしながら、ファイル（およびハード・リンクされたファイルなど類似のオブジェクト）に関しては、第１のストレージ装置３００内の第１のファイル・システム管理ユニット３１０によって管理されるファイル・システムは、仮想化の後に実際のファイルを有しないが、第２のストレージ装置３００内の第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの各ファイルに対してそれぞれの外部リンク・オブジェクトＸＬＯを有する。
【０１１５】
したがって、仮想化が完了した後、第２のストレージ装置４００内の第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムのそれぞれのファイルｆｉｌｅ１、ｆｉｌｅ２、ｆｉｌｅ３、ｆｉｌｅ４、ｆｉｌｅ５、ｆｉｌｅ６、ｆｉｌｅ７、ｆｉｌｅ８、ｆｉｌｅ９、およびｆｉｌｅ１０の代わりに、外部リンク・オブジェクトＸＬＯ１、ＸＬＯ２、ＸＬＯ３、ＸＬＯ４、ＸＬＯ５、ＸＬＯ６、ＸＬＯ７、ＸＬＯ８、ＸＬＯ９、およびＸＬＯ１０が、第１のストレージ装置３００内の第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に存在する。第１のファイル・システム内の外部リンク・オブジェクトは、クライアントにファイルとして提示される、すなわち、クライアントは第１のファイル・システム内の外部リンク・オブジェクトを見ることはできないが、実際のファイル名、例えば、「ｆｉｌｅ１」、「ｆｉｌｅ２」、「ｆｉｌｅ３」、「ｆｉｌｅ４」、「ｆｉｌｅ５」、「ｆｉｌｅ６」、「ｆｉｌｅ７」、「ｆｉｌｅ８」、「ｆｉｌｅ９」、および「ｆｉｌｅ１０」が見える。それぞれの外部リンク・オブジェクトの各々は、それぞれのファイルを有する第２のストレージ装置４００内の第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムのそれぞれのディレクトリに対応する第１のストレージ装置３００内の第１のファイル・システム管理ユニット３１０によって管理されるファイル・システムのディレクトリ内に存在する。
【０１１６】
例えば、ｆｉｌｅ１０は、第２のストレージ装置４００内の第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム内のリモート・パス／ｒｏｏｔ／ｄｉｒ１／ｄｉｒ１１／ｄｉｒ１１１／ｆｉｌｅ１０内に存在しているが、対応する外部リンク・オブジェクトＸＬＯ１０は、第１のストレージ装置３００の第１のファイル・システム管理ユニット３１０内の対応するローカル・パス／ｒｏｏｔ／ｄｉｒ１／ｄｉｒ１１／ｄｉｒ１１１／ＸＬＯ１０内に存在し、ＸＬＯ１０はｆｉｌｅ１０を表し、ユーザがアクセス要求を用いて第１のストレージ装置３００のファイル・システム内のｆｉｌｅ１０にアクセスすることを試みたときにｆｉｌｅ１０への外部アクセスを許す。すなわち、好ましくは、ローカル・パス名は、リモート・パスと同じであり、クライアントの観点から、仮想化された第１のファイル・システムは、第２のファイル・システムから区別できないものとしてクライアントには見えている。
【０１１７】
図５Ｂは、別の可能な仮想化パスによる図４のツリー構造に基づく別の仮想化されたファイル・システムのツリー構造の一例を示している。例えば、ｆｉｌｅ１、ｆｉｌｅ２、およびディレクトリ／ｄｉｒ２の下に存在するすべてのオブジェクトがもはやアクセスされていないときに現在のユーザが／ｄｉｒ１の下に存在するファイルおよびディレクトリのみをアクセスする状況において、＜ストレージ装置３００＞：／ｒｏｏｔ  −＞  ＜ストレージ装置４００＞：／ｒｏｏｔ／ｄｉｒ１などの別の仮想化パスが設定され、その結果、仮想化後にディレクトリ／ｄｉｒ１の下にあるオブジェクトのみがアクセスされ得る図５Ａの仮想化されたツリー構造が得られる。
【０１１８】
図５Ｃは、仮想化パス＜ストレージ装置３００＞：／ｒｏｏｔ  −＞  ＜ストレージ装置４００＞：／ｒｏｏｔ／ｄｉｒ２に従う対応する仮想化されたツリー構造の一例を示している。さらに、／ｄｉｒ１および／ｄｉｒ２のコンテンツがファイル・システム管理ユニット３１０によって管理される別個のファイル・システムに編成されるものとする場合に図４の１つの単一ファイル・システムを図５Ｂおよび５Ｃによる２つの別個のファイル・システムに分割することが可能である。
【０１１９】
上記の例において、第２のファイル・システムは、それが第１のファイル・システム内に全く同じに再構築され、第２のファイル・システムの各ディレクトリが第１のファイル・システム内の類似のパスの下に作成され、第２のファイル・システムの各ファイルが第１のファイル・システム内の類似のパスの下のそれぞれの外部リンク・オブジェクトに関連付けられているという点において仮想化されている。しかしながら、いくつかの実施形態では、第２のファイル・システム内のユーザ・データに関係するディレクトリおよびファイルが第１のファイル・システムにおいて仮想化され、例えばユーザ・データ関係のファイル・システム・オブジェクトと異なる挙動を見せる一時ディレクトリ、スナップショット・ディレクトリ、または他のファイル・システム・オブジェクトなどの、第２のファイル・システムの他のファイル・システム・オブジェクトが第１のファイル・システム内で仮想化されないことを確実にするように付加的に実装されるメカニズムが用意され得る。例えば、第２のファイル・システムの一時的ディレクトリまたはスナップショット・ディレクトリなどのディレクトリは、そのような実施形態における第１のファイル・システム内に作成され得ない。
【０１２０】
図６は、仮想化の初期化のための方法を示す例示的な流れ図を示す。この方法は、クライアント１００から第２のストレージ装置３００へのすべてのユーザ／クライアント・アクセスをブロックするステップＳ１と（例えば、図１Ａに類似の状況において）、第２のストレージ装置４００とクライアント１００との間で第１のストレージ装置３００を相互接続するステップＳ２とを含む。
【０１２１】
さらに、仮想化の初期化を行うための方法は、第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に最上位のディレクトリを作成するステップＳ３と、ステップＳ３で作成された最上位のディレクトリを仮想化されるべき第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの部分の最上位のディレクトリ（例えば、図５Ａ〜５Ｃに関して例示されているような最上位のディレクトリまたは下位のディレクトリのうちの１つ）に関連付ける仮想化パスを作成（設定）するステップＳ４とを含む。
【０１２２】
さらに、仮想化の初期化を行うための方法は、ステップＳ３で設定された最上位のディレクトリに対するディレクトリ情報ジョブを作成するステップＳ５を含む。この方法は、自動バックグラウンド仮想化を可能にするステップＳ６と、ステップＳ８で第１のストレージ装置３００へのクライアント・アクセスを直接的に可能にする前にユーザ・アクセス依存のオンデマンド仮想化を可能にする別のステップＳ７をさらに含む。ステップＳ１からＳ７の順序は、ステップＳ１がステップＳ２の前に実行され、ステップＳ４およびＳ５がステップＳ３の後に実行され、ステップＳ６およびＳ７がステップＳ４の後に実行され、ステップＳ８がステップＳ７の後に実行されることを条件として、複数の異なる方式で交換され得ることに留意されたい。
【０１２３】
最も重要なのは、第２のストレージ装置が相互接続され（ステップＳ２）、仮想化パスが設定され（ステップＳ４）、オンデマンド仮想化が有効化される（ステップＳ７）とすぐに、ファイル・システムへのユーザ・アクセスが有効化され得る（ステップＳ８）ということである。特に、ユーザが、ファイル・システム内のまだ仮想化されていないファイル・システム・オブジェクトにアクセスすることを試みるとすぐに、それぞれのファイル・システム・オブジェクトは、有効化されたオンデマンド仮想化を用いて仮想化され（以下でより詳しく例示的に説明されているように）、それにより仮想化されたファイル・システム・オブジェクトを介してファイル・システム・オブジェクトへのアクセスを可能にし、ユーザがすでに仮想化されているファイル・システム・オブジェクトにアクセスすることを試みた場合、それぞれのファイル・システム・オブジェクトは、それぞれの仮想化されたファイル・システム・オブジェクトを介してアクセスされ得る。
【０１２４】
したがって、上記の態様によるデータ・ストレージ・システムは、自動バックグラウンド仮想化（以下でより詳しく例示的に説明されているような）がすでに始まっていているかどうかに関係なく、また自動バックグラウンド仮想化のステータスに関係なく仮想化パスが作成され、オンデマンド仮想化が有効化されているという条件の下で第１のストレージ装置３００を相互接続した直後にファイル・システムへのユーザ・アクセスを即座に有効化することができる。すなわち、クライアント１００によるファイル・システムへのアクセスは、クライアント１００と第２のストレージ装置４００との間で第１のストレージ装置３００を相互接続するための単一の中断の直後に再び有利に有効化され得る。
【０１２５】
次の説明では、自動バックグラウンド仮想化（上のステップＳ６で有効化される）の例示的な態様は、以下でより詳しく説明される。自動バックグラウンド仮想化は、自動的に実行され、その結果、第２のストレージ装置４００の第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム（複数可）のファイルのツリー構造全体が、第１のストレージ装置４００上に完全に仮想化される（すなわち、上の図５Ａから５Ｃに関連して説明されているような仮想化された方式で完全に再構築される）。
【０１２６】
自動バックグラウンド仮想化の原理的な例示的態様は、図４のファイル・ツリーを自動的にバックグラウンド仮想化することに関連して最初に説明される。自動バックグラウンド仮想化は、クローリング・ユニット３４３および上の図３の仮想化ユニット３４４によって実行され得る。最初に、クローリング・ユニット３４３は、上のステップＳ５で作成されたディレクトリ情報ジョブを実行する。特に、ステップＳ５の実行後に、ジョブ・キュー３４６Ａは、ステップＳ４で設定された仮想化パスに従ってファイル・システム管理ユニット３１０によって管理されるファイル・システム内の最上位のディレクトリ（例えば、図４および５Ａの上記の例における２つのそれぞれの／ｒｏｏｔディレクトリ）に対するディレクトリ情報ジョブを格納する。
【０１２７】
図７は、自動バックグラウンド仮想化に対する第１のファイル・システム・サーバと第２のファイル・システム・サーバ（第１のファイル・システム管理ユニット３１０および第２のファイル・システム管理ユニット４１０を具現化する）との間の情報交換を例示している。
【０１２８】
クローリング・ユニット３４３による／ｒｏｏｔディレクトリに対するディレクトリ情報ジョブを実行した後、第１のファイル・システム管理ユニット３１０は、第２のファイル・システム管理ユニット４１０に、図４のファイル・システムの／ｒｏｏｔディレクトリ（設定された仮想化パスによって示されるような第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの最上位のディレクトリ、すなわち、図５Ｂおよび５Ｃの仮想化パスについては、第１の発行されるディレクトリ情報要求はすでに／ｄｉｒ１および／ｄｉｒ２にそれぞれ向けられている）に関連する／ｒｏｏｔディレクトリ情報を求める要求（「ｒｅｑｕｅｓｔ  ／ｒｏｏｔ  ｉｎｆｏｒｍａｔｉｏｎ」）を発行する。
【０１２９】
／ｒｏｏｔディレクトリ情報を求める要求に応答して、第２のファイル・システム管理ユニット４１０は、子ディレクトリ／ｄｉｒ１および／ｄｉｒ２ならびにファイル「ｆｉｌｅ１」および「ｆｉｌｅ２」に関する情報を含む／ｒｏｏｔディレクトリ情報を提供することによって応答する。特に、この応答は、少なくとも、ディレクトリ／ｄｉｒ１および／ｄｉｒ２ならびにファイル「ｆｉｌｅ１」および「ｆｉｌｅ２」が第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの／ｒｏｏｔディレクトリ内に存在することを示す。
【０１３０】
第１のファイル・システム管理ユニット３１０においてディレクトリ／ｄｉｒ１および／ｄｉｒ２ならびにファイル「ｆｉｌｅ１」および「ｆｉｌｅ２」が第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの／ｒｏｏｔディレクトリ内に存在することを示す応答を受信した後、クローリング・ユニット３４３は、ディレクトリ／ｄｉｒ１および／ｄｉｒ２ならびにファイル「ｆｉｌｅ１」および「ｆｉｌｅ２」が第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの／ｒｏｏｔディレクトリ内に存在することと、それらのディレクトリ／ｄｉｒ１および／ｄｉｒ２ならびにファイル「ｆｉｌｅ１」および「ｆｉｌｅ２」が仮想化ユニット３４４による仮想化を必要としていることとが発見されたことを登録するように仮想化管理情報テーブル３４１を更新する。
【０１３１】
図８は、図７の応答を受信した後の仮想化の際の第１の時点における仮想化管理情報テーブルの一例を示している。
【０１３２】
例示的に、仮想化管理情報テーブルは、クライアント１００および第２のファイル・システム管理ユニット４１０によって使用されるようなファイル・システム・オブジェクトの名前、そのオブジェクトのオブジェクト・タイプ（例えば、ファイル・システム・オブジェクトがディレクトリであるかファイルであるかを示す）、第２の管理ファイル・システム管理ユニット４１０によって使用されるようなそのオブジェクトのオブジェクトＩＤ、ファイル・システム・オブジェクトの仮想化ステータス、およびファイル・システム・オブジェクトのオブジェクト・ステータスを含むクローリング・ユニット３４３によって発見されている各ファイル・システム・オブジェクトに関するさまざまな情報を含む。
【０１３３】
上記に加えて、仮想化管理情報テーブルは、それぞれのファイル・システム・オブジェクトの親ディレクトリ、それぞれのファイル・システム・オブジェクトのリモート・パス・ロケーション、それぞれのファイル・システム・オブジェクトの１つまたは複数の属性、などのさらなる情報を記録することができる。
【０１３４】
「オブジェクトＩＤ」として、仮想化管理情報テーブルは、好ましくは、第２の管理ファイル・システム管理ユニット４１０によって管理されるようなファイル・システム内のそれぞれのファイル・システム・オブジェクトを一意的に識別するオブジェクトＩＤを記憶する。そのようなオブジェクトＩＤは、ファイル・ハンドル、Ｉｎｏｄｅ番号、サーバ識別子、デバイス番号、および同様のものなどのＩＤに関する情報によって表されるか、または情報を含み、名前およびリモート・パス・ロケーションに無関係にそれぞれのファイル・システム・オブジェクトを一意的に識別することができる。そのようなオブジェクトＩＤは、典型的には、知られているファイル・システム・サーバによって管理されるファイル・システム内に存在するが、それは、どのようなオブジェクトも、名前およびパス・ロケーションに無関係に一意的に識別される必要があるからである（例えば、ファイルが名前を変更され、および／または一方の特定のパス・ロケーションから別のパス・ロケーションに移動される場合、オブジェクトＩＤは、その名前および／またはパス・ロケーションが変わり得るが同じままであり得る）。
【０１３５】
「ｖｉｒｔｕａｌｉｚａｔｉｏｎ  ｓｔａｔｕｓ」の下に、発見されたファイル・システム・オブジェクトの仮想化の現在ステータスが示されるものとしてよく、新規に発見されたファイル・システム・オブジェクトには「ｎｅｅｄｓ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ」というラベルが付けられ、これにより、ファイル・システム・オブジェクトが仮想化される必要があること、すなわち、発見されたディレクトリについて対応するディレクトリが作成される必要があること、および発見されたファイルについて対応する外部リンク・オブジェクトが作成される必要があることを示す。
【０１３６】
それぞれのファイル・システム・オブジェクトが仮想化された後、すなわち、発見されたディレクトリについて対応するディレクトリが作成されるか、または発見されたファイルについて対応する外部リンク・オブジェクトが作成されたときに、仮想化管理情報テーブル内の仮想化ステータスが「ｖｉｒｔｕａｌｉｚｅｄ」に更新される。
【０１３７】
図８では、上の図６のステップＳ３において／ｒｏｏｔディレクトリがすでに作成されており、その仮想化ステータスに関してすでに「ｖｉｒｔｕａｌｉｚｅｄ」というラベルを付けられている。その一方で、他の発見されたすべてのファイル・システム・オブジェクト、すなわち、ディレクトリ／ｄｉｒ１および／ｄｉｒ２ならびにファイル「ｆｉｌｅ１」および「ｆｉｌｅ２」は、発見されたばかりであり、対応する仮想化されたファイル・オブジェクトが第１のファイル・システム管理ユニット３１０によって管理されるようなファイル・システム内にまだ存在しておらず、したがって、それらのオブジェクトは、仮想化ステータス「ｎｅｅｄｓ  ｍｉｇｒａｔｉｏｎ」を有すると称される。
【０１３８】
「ｏｂｊｅｃｔ  ｓｔａｔｕｓ」の下に、発見されたファイル・システム・オブジェクトの現在ステータスが示されるものとしてよく、新規に発見されたファイルは、「ｎｅｅｄｓ  ｍｉｇｒａｔｉｏｎ」というラベルを付けられ、第１のストレージ装置３００のストレージ・ユニット３２０および３３０上にそれぞれのファイルに対応するユーザ・データ（ファイルコンテンツ）がまだ存在していないこと、およびファイルが第１のストレージ装置３００にマイグレーションされる必要があること（マイグレーションが有効化された後）を示し、新規発見されたディレクトリは、「Ｉｎｃｏｍｐｌｅｔｅ」というラベルを付けられ、それぞれのディレクトリの直下に存在しているファイル・システム・オブジェクトすべてが、すでに仮想化されているとは限らないことを示す。図４のツリー構造に従って／ｒｏｏｔディレクトリ内に存在するすべてのファイル・システム・オブジェクト（／ｄｉｒ１、／ｄｉｒ２、ｆｉｌｅ１、およびｆｉｌｅ２）は、すでに発見されているが、それらのオブジェクトはまだ仮想化されていないので、／ｒｏｏｔディレクトリは、オブジェクト・ステータス「Ｉｎｃｏｍｐｌｅｔｅ」を有するものとしてラベル付けされたままであることに留意されたい。
【０１３９】
ディレクトリ／ｄｉｒ１および／ｄｉｒ２が第１のファイル・システム管理ユニット３１０によって管理されるファイル・システムの／ｒｏｏｔディレクトリ内に作成され、外部リンク・オブジェクトＸＬＯ１およびＸＬＯ２が第１のファイル・システム管理ユニット３１０によって管理されるファイル・システムの／ｒｏｏｔディレクトリ内に作成された後、／ｒｏｏｔディレクトリは、オブジェクト・ステータス「Ｃｏｍｐｌｅｔｅ」（以下参照）を有するように更新され得る。
【０１４０】
図７の応答を受信した後に上で説明されているように仮想化管理情報テーブルを更新することに加えて、第１のファイル・システム管理ユニット３１０のクローリング・ユニット３４３は、仮想化ユニット３４４によって実行されるべき仮想化ジョブ・キュー３４６Ｂに追加することができる新規に発見されたファイル・システム・オブジェクトの各々に対する仮想化ジョブ（例えば、／ｄｉｒ１に対する仮想化ジョブ、／ｄｉｒ２に対する仮想化ジョブ、ｆｉｌｅ１に対する仮想化ジョブ、およびｆｉｌｅ２に対する仮想化ジョブ）を自動的に作成し、クローリング・ユニット３４３によって実行されるべきクローラー・ジョブ・キュー３４６Ａに追加することができる新規に発見された子ディレクトリの各々に対するディレクトリ情報ジョブ（例えば、／ｄｉｒ１に対するディレクトリ情報ジョブおよび／ｄｉｒ２に対するディレクトリ情報ジョブ）を自動的に作成することに留意されたい。
【０１４１】
したがって、すでに発見されているファイル・システム・オブジェクトの仮想化および新しいファイル・システム・オブジェクトを発見することは、既存の仮想化ジョブが仮想化ユニット３４４によって実行され得るという点において互いに並行して高効率で実行され得るが、さらなるディレクトリ情報ジョブは、新規ファイル・システム・オブジェクトを発見し、それらの新規に発見されたオブジェクトに対する新規仮想化ジョブおよび／またはディレクトリ情報ジョブを作成するためにクローリング・ユニット３４３によって並行して実行され得る。
【０１４２】
図９は、部分的に仮想化されたファイル・システムのツリー構造の一例を示している。特に、ディレクトリ／ｄｉｒ１および／ｄｉｒ２が第１のファイル・システム管理ユニット３１０によって管理されるファイル・システムの／ｒｏｏｔディレクトリ内に作成され、外部リンク・オブジェクトＸＬＯ１およびＸＬＯ２が、クローリング・ユニット３４３によって作成された４つすべての仮想化ジョブを実行することによって第１のファイル・システム管理ユニット３１０によって管理されるファイル・システムの／ｒｏｏｔディレクトリ内に作成された後、第１のファイル・システム管理ユニット３１０によって管理されているファイル・システムのツリー構造は、図９に示されている通りのものとなる。／ｒｏｏｔディレクトリの下に親ディレクトリとして直接存在するファイル・システム・オブジェクト／ｄｉｒ１、／ｄｉｒ２、ｆｉｌｅ１、およびｆｉｌｅ２の各々は、図９に従って仮想化されているので、／ｒｏｏｔディレクトリのオブジェクト・ステータスは、図１０に示されているように、「Ｃｏｍｐｌｅｔｅ」であるものとして更新され得る。
【０１４３】
上記の例において、親ディレクトリとして／ｒｏｏｔディレクトリの下に存在するファイル・システム・オブジェクトの数は、かなり少なく、原理上、多数のファイル・システム・オブジェクトが特定の親ディレクトリの下に存在し得る、例えば、いくつかファイル・システムでは、数百万個のファイルおよび子ディレクトリが特定の親ディレクトリの下に存在し得ることが想定されなければならない。典型的なファイル・システム通信プロトコル、ディレクトリ情報を受信することを求める標準的な要求（例えば、ＮＦＳベースのファイル・システム通信プロトコルにおけるＲＥＡＤＤＩＲまたはＲＥＡＤＤＩＲＰＬＵＳなど）では、応答で返されるべきエントリの個数は、単一のディレクトリ情報要求を発行した後に全エントリがすでに知られているということがないように最大数に限定され得ない。そのようなシナリオでは、クローリング・ユニット３４３は、ディレクトリ情報要求をファイル・システムの同じ親ディレクトリに、そのすべてのファイル・システム・オブジェクト（ファイルおよび子ディレクトリを含む子エントリ）が返されるまで繰り返し発行し得る。
【０１４４】
好ましくは、上の段落において説明されているようなシナリオにおいて、クローリング・ユニット３４３は、同じ親ディレクトリに関連して次のディレクトリ情報要求を発行する前、各応答の後に、仮想化管理情報テーブルをさらに更新することができ、および／またはクローリング・ユニット３４３は、同じ親ディレクトリに関連して次のディレクトリ情報要求を発行する前、各応答の後に、これまでに発見された子ディレクトリの各々に対するディレクトリ情報ジョブおよび／またはこれまでにそれぞれの親ディレクトリ内で発見されたすべてのファイル・システム・オブジェクトに対する仮想化ジョブをすでに作成しているものとしてよい。
【０１４５】
さらに、クローリング・プロセスの望ましくない中断の後に正しいクローリング開始位置でクローリング・ユニット３４３によるディレクトリ・クローリングを再開することができるようにするために、クローリング・ユニット３４３は、それぞれの親ディレクトリが読み出された最後のエントリ位置（位置を示すクッキーなどの、最後の応答によって与えられるデータ項目を示す位置に対応し得る）を示す情報を追加するために各応答の受信後にそれぞれの親ディレクトリのオブジェクト・ステータスをさらに更新する。
【０１４６】
図１１は、自動バックグラウンド仮想化に対する第１のファイル・システム管理ユニット３１０および第２のファイル・システム管理ユニット４１０との間の情報交換の別の図を例示している。特に、すでに上で説明されているように、クローリング・ユニット３４３は、図７の応答を受信した後、および図８に示されているような仮想化管理情報テーブルを更新した後に、子ディレクトリ／ｄｉｒ１および／ｄｉｒ２の各々に対してそれぞれのディレクトリ情報ジョブを作成していると想定される。次に、ディレクトリ情報ジョブ・キュー３４６Ａ内の次のジョブに戻ったときに、クローリング・ユニット３４３は、ディレクトリ／ｄｉｒ１に対するディレクトリ情報ジョブを取得することができ、次いで／ｄｉｒ１ディレクトリに関するディレクトリ情報を求める要求を発行する。
【０１４７】
特に、クローリング・ユニット３４３による／ｄｉｒ１ディレクトリに対するディレクトリ情報ジョブを実行した後に、第１のファイル・システム管理ユニット３１０は、第２のファイル・システム管理ユニット４１０によって管理されるような図４のファイル・システムの／ｄｉｒ１ディレクトリに関連して／ｄｉｒ１ディレクトリ情報を求める要求（「ｒｅｑｕｅｓｔ  ／ｄｉｒ１  ｉｎｆｏｒｍａｔｉｏｎ」）を発行する。／ｄｉｒ１ディレクトリ情報を求める要求に応答して、第２のファイル・システム管理ユニット４１０は、子ディレクトリ／ｄｉｒ１１および／ｄｉｒ１２に関する情報を含む／ｄｉｒ１ディレクトリ情報を提供することによって応答する。この応答は、少なくとも、ディレクトリ／ｄｉｒ１１および／ｄｉｒ１２が第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの／ｄｉｒ１ディレクトリ内に存在することを示し得る。
【０１４８】
第１のファイル・システム管理ユニット３１０においてディレクトリ／ｄｉｒ１１および／ｄｉｒ１２が第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの／ｄｉｒ１ディレクトリ内に存在することを示す応答を受信した後、クローリング・ユニット３４３は、ディレクトリ／ｄｉｒ１１および／ｄｉｒ１２が第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの／ｄｉｒ１ディレクトリ内に存在することと、それらのディレクトリ／ｄｉｒ１１および／ｄｉｒ１２が仮想化ユニット３４４による仮想化を必要としていることとが発見されたことを登録するように仮想化管理情報テーブル３４１を更新するが、図１２に示されているようなそれに対応して更新された仮想化管理情報テーブルを参照されたい。
【０１４９】
図１２に示されているように、すべての子エントリが発見され、仮想化されているとは限らないすべてのディレクトリは、オブジェクト・ステータス「Ｉｎｃｏｍｐｌｅｔｅ」を有するものとしてラベル付けされ、すべての非仮想化されたファイル・システム・オブジェクトは、仮想化ステータス「ｎｅｅｄｓ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ」を有すると称される。したがって、仮想化手順の中断が生じた場合に、ファイル・システム仮想化は、仮想化手順が、望ましくない中断の後に、仮想化管理情報テーブル３４１内で「ｎｅｅｄｓ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ」と示される各ファイル・システム・オブジェクトに対する仮想化ジョブを作成することによって、また仮想化管理情報テーブル３４１内で「Ｉｎｃｏｍｐｌｅｔｅ」であるものとして示される各ディレクトリに対するディレクトリ情報ジョブを作成することによって容易に継続し得るという点において、ジョブ・キュー内のすべてのまたは少なくとも一部の既存のジョブが失われ得る最悪の場合であっても、都合のよい開始ポイントから確実に、効率的に開始されるものとしてよく、完全にリセットされることを必要としない。
【０１５０】
図１２に例示的に示されているように、仮想化管理情報テーブル３４１は、所定の数のファイル・システム・オブジェクト・エントリのブロック３４１ａおよび３４１ｂ（チャンクとも称され得る）内に記憶され得る。図１２の例では、ブロック３４１ａおよび３４１ｂごとに５個のエントリ・ラインしかないが、これは説明上の理由でそうなっているにすぎず、ブロックごとのエントリ数は、実際の実装に対してはかなり大きくなり得る。
【０１５１】
しかしながら、仮想化管理情報をブロック（チャンク）に記憶することは、別々のブロックをメモリ３１４（仮想化管理情報テーブル３４１のデータコンテンツがクローリング・ユニット３４３、仮想化ユニット３４４、およびマイグレーション手段３４５による進行中の仮想化処理および更新を目的として記憶され得る）から仮想化管理情報バックアップ・ユニット３４２によるバックアップを目的としてストレージ・デバイス３１５に都合よく書き込まれ得るという利点をもたらす。
【０１５２】
特に、バックアップは、ストレージ・デバイス３１５に現在バックアップコピーされるべき１つのブロックのみが、仮想化管理情報バックアップ・ユニット３４２によって一時的にブロックされる必要があり、仮想化管理情報テーブル３４１の他のすべてのブロックはクローリング・ユニット３４３、仮想化ユニット３４４、およびマイグレーション手段３４５によって読み出しおよび書き込みアクセス可能であるという点において、クローリング・ユニット３４３、仮想化ユニット３４４、およびマイグレーション手段３４５による進行中のクローリングおよび仮想化またはマイグレーション処理に著しい影響を及ぼすことなくより効率的に実行され得る。
【０１５３】
バックアップ・ブロック３４１ａおよび３４１ｂにおける仮想化管理情報テーブル３４１のバックアップに対するバックアップ処理に関連する好ましい態様について、以下でより詳しくさらに説明される。
【０１５４】
上記に加えて、図１１の応答を受信した後に、クローリング・ユニット３４３は、キュー３４６Ａに加えられるべきディレクトリ／ｄｉｒ１１および／ｄｉｒ１２の各々に対するディレクトリ情報ジョブとキュー３４６Ｂに加えられるべきディレクトリ／ｄｉｒ１１および／ｄｉｒ１２の各々に対する仮想化ジョブとを作成する。ディレクトリ／ｄｉｒ１１および／ｄｉｒ１２に対する仮想化ジョブが、仮想化ユニット３４４によって実行された後、ディレクトリ／ｄｉｒ１１および／ｄｉｒ１２は、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム内のそれぞれのリモート・パスに対応する類似のローカル・パスの下の第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内のそれぞれの親ディレクトリ／ｄｉｒ１の直下に存在する。
【０１５５】
図１３は、親ディレクトリ／ｄｉｒ１の子ディレクトリ／ｄｉｒ１１および／ｄｉｒ１２が仮想化のために作成されているそれぞれの部分的に仮想化されているファイル・システムのツリー構造の一例を示している。
【０１５６】
完全で確実な自動バックグラウンド仮想化は、クローリング・ユニット３４３によるディレクトリ情報ジョブの実行、クローリング・ユニット３４３による仮想化管理情報テーブル３４１の更新、クローリング・ユニット３４３による新規ディレクトリ情報ジョブおよび仮想化ジョブの作成、仮想化ユニット３４４による仮想化ジョブの実行、などの並行ループを含む上記の態様により、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの完全なツリー構造が第１のファイル・システム管理ユニット３１０によって管理されるファイル・システムにおいて完全に仮想的に再構築されるまで継続されることによって効率的に、また確実に達成され得る。
【０１５７】
すなわち、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの完全なツリー構造は、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの各ディレクトリに対して第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に対応するディレクトリが存在するとき、および第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの各ファイル（またはハード・リンクされたファイルなどの類似のオブジェクト）に対して第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に対応する外部リンク・オブジェクトが存在するときに、第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に完全に仮想的に再構築される。
【０１５８】
上記の説明は、図４に示されているようなファイルのツリー構造の特定の例を参照しつつなされているが、仮想化手順のより一般的な態様は、以下の流れ図に関連して与えられる。
【０１５９】
図１４は、クローリング・ユニット３４３によって実行され得るような自動バックグラウンド仮想化管理の例示的な流れ図を示す図である。
【０１６０】
図１４の自動バックグラウンド仮想化管理方法は、ジョブ・キュー内の次のジョブをチェックするステップＳ１００１を含む。特に、図３に例示的に示されているように複数のジョブ・キューが用意されている場合、クローリング・ユニット３４３は、ジョブ・キュー３４６Ａ内の次のディレクトリ情報ジョブを探索し得る。次のステップＳ１００２において、クローリング・ユニット３４３は、第２のファイル・システム管理ユニット４１０によって管理されるようなファイル・システム内に存在する特定のすでに発見されているディレクトリに対する新規ディレクトリ情報ジョブを観察することができる（または子ディレクトリがまだ発見されていない場合、例えば、仮想化フェーズの始めに、クローリング・ユニット３４３は、少なくとも、上記の図６のステップＳ５で作成されたディレクトリ情報ジョブを観察する）。
【０１６１】
ステップＳ１００３において、クローリング・ユニット３４３は、ステップＳ１００２で取得されたディレクトリ情報ジョブのターゲット・ディレクトリがないか仮想化管理情報テーブル３４１をチェックする。特に、ターゲット・ディレクトリが仮想化管理情報テーブル３４１内にすでに存在しているときに、クローリング・ユニット３４３は、ターゲット．ディレクトリがＣｏｍｐｌｅｔｅまたはＩｎｃｏｍｐｌｅｔｅとして示されているかどうかについて仮想化管理情報テーブル３４１内のターゲット・ディレクトリのオブジェクト・ステータスをチェックする。
【０１６２】
ターゲット・ディレクトリが仮想化管理情報テーブル３４１内に存在し、Ｃｏｍｐｌｅｔｅであるものとしてすでに示されている（すなわち、すべての子エントリがすでに仮想化されている）場合、すなわち、ステップＳ１００４がＮＯを返したときに、クローリング・ユニット３４３は、ステップＳ１００５で次のジョブがないかジョブ・キューをチェックする。
【０１６３】
その一方で、ターゲット・ディレクトリがまだ完全でない（または仮想化管理情報テーブル３４１内にまだ存在していない）場合、すなわち、ステップＳ１００４がＹＥＳを返したときに、クローリング・ユニット３４３は、ターゲット・ディレクトリに関連する１つまたは複数のディレクトリ情報要求を第２のストレージ装置４００の第２のファイル・システム管理ユニット４１０に発行するという点において次のステップＳ１００６においてターゲット・ディレクトリに対するディレクトリ情報を要求する。
【０１６４】
ステップＳ１００７において、第２のストレージ装置４００の第２のファイル・システム管理ユニット４１０からの対応する１つまたは複数の応答が受信され、これはターゲット・ディレクトリの子エントリのうちの全部または少なくとも一部を示すディレクトリ情報を提供する。
【０１６５】
次のステップＳ１００８において、クローリング・ユニット３４３は、仮想化管理情報テーブル３４１を更新し、ターゲット・ディレクトリに対する受信されたディレクトリ情報を仮想化管理情報テーブル３４１に書き込む。特に、ステップＳ１００７で受信された情報に含まれる各子エントリ（例えば、ターゲット・ディレクトリ内に存在するファイルを示すエントリまたはターゲット・ディレクトリ内に存在する子ディレクトリを示すエントリ）について、上で説明されているように、対応するエントリが仮想化管理情報テーブル３４１に追加され、オブジェクト・ステータスおよび仮想化ステータスはファイル・システム・オブジェクトのタイプ、すなわち、各ファイル・システム・オブジェクトに対する仮想化ステータス「ｎｅｅｄｓ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ」および発見された子ディレクトリに対するオブジェクト・ステータス「ｉｎｃｏｍｐｌｅｔｅ」または発見されたファイルもしくはハード・リンクされたファイルなどの類似のオブジェクトに対するオブジェクト・ステータス「ｎｅｅｄｓ  ｍｉｇｒａｔｉｏｎ」に従って示される。
【０１６６】
さらに、クローリング・ユニット３４３は、ステップＳ１００９において新規発見された子オブジェクトの各々に対するそれぞれの仮想化ジョブを作成し、ステップＳ１０１０において各新規発見された子ディレクトリに対するそれぞれのディレクトリ情報ジョブをさらに作成し、新規作成されたジョブをそれぞれのジョブ・キューまたは複数のジョブ・キューに追加する。
【０１６７】
最後の子オブジェクトに至るまでのターゲット・ディレクトリのすべての子オブジェクトが、ステップＳ１００７において観察された場合（ステップＳ１０１１はＹＥＳを返す）、クローリング・ユニット３４３は、ジョブ・キュー内の次のジョブを続け（ステップＳ１００５）、そうでなければステップＳ１００６からＳ１０１０が、ターゲット・ディレクトリのすべての子オブジェクトが観察されるまで繰り返される。ステップＳ１００６からＳ１０１０のループの代わりに、クローリング・ユニット３４３は、また、ステップＳ１０１１がＮＯを返したときに同じターゲット・ディレクトリに対する新規ディレクトリ情報ジョブを作成するだけであり、次いで、ステップＳ１００５を継続し、ジョブ実行のさらなる並行化を可能にし得る。
【０１６８】
上でさらにすでに説明されているように、クローリング・ユニット３４３が、例えば、同じターゲット・ディレクトリに対する以前のジョブに関連して、それぞれのターゲット・ディレクトリの子エントリのうちのいくつかに対するディレクトリ情報をすでに以前に受信していた場合、またはステップＳ１０１１がＮＯを返した後（例えば、使用されているファイル・システム通信プロトコルに従って返される子エントリの数に制限があるため）ステップＳ１００６からＳ１０１０をループで繰り返したときに、クローリング・ユニット３４３は、ステップＳ１００８において仮想化管理情報テーブル３４１内のターゲット・ディレクトリに対するディレクトリ情報を求める要求に対する開始位置を（例えば、ステップＳ１００７の応答で示されている位置に基づき、または例えば、クッキーを使用することによって）さらに繰り返し更新し、これにより、ステップＳ１００６の要求における開始位置を使用することによって次のまだ発見されていない子エントリに対するディレクトリ情報を要求することを可能にし得る。
【０１６９】
ステップＳ１０１０における新規ディレクトリ情報ジョブの作成により、自動バックグラウンド仮想化は、すべてのディレクトリ情報ジョブが実行され、さらなるディレクトリ情報ジョブが存在しなくなるまで連続的に実行され、これは、ファイル・システムのすべてのディレクトリが観察されており、すべての子エントリ（ファイルおよびさらなる子ディレクトリ）が発見されており、したがって、ステップＳ１００９において作成されているようなそれぞれの仮想化ジョブが発見されたファイル・システム・オブジェクトの各々に対して存在する（またはすでに実行されている）ことを示す。
【０１７０】
上記の手順と並行して、仮想化ユニット３４４は、以下でさらに説明されているようにクローリング・ユニット３４３によって作成された仮想化ジョブを自動的に実行する。しかしながら、非常に大きなディレクトリについては、クローリング・ユニット３４３が、ステップＳ１００６からＳ１０１０のループで、特に、さまざまな子オブジェクトのすべてに対するステップＳ１００９の繰り返しにおいて、非常に多くの仮想化ジョブを作成するときに、問題が生じ得る。したがって、クローリング・ユニット３４３のクローリング速度が可変であり、条件に応じて自動的に（および／または手動で）減じられ得ることが望ましい場合がある。
【０１７１】
例えば、ジョブ・キューのうちの１つまたは複数が占有されるとすぐにジョブを一時的に記憶するためのデータ・バッファ・ユニット３４７が、それ自体占有されたことが検出されたときに（例えば、データ・バッファ・ユニット３４７内に保持されているジョブの個数が閾値を超えたとき、データ・バッファ・ユニット３４７内の利用可能な記憶領域が閾値を下回ったとき、または利用可能なバッファ記憶領域とバッファ容量との比が閾値を超えたとき、または同様のときに）、クローリング・ユニット３４３の処理速度は、減じられ、クローリング・ユニット３４３は、データ・バッファ・ユニット３４７の占有量が減るまで（例えば、データ・バッファ・ユニット３４７に保持されているジョブの数が別の閾値を下回ったとき、データ・バッファ・ユニット３４７内の利用可能な記憶領域が別の閾値を超えたとき、または利用可能なバッファ記憶領域とバッファ容量との比が別の閾値を下回ったとき、または同様のときに）停止されることすらあり得る。
【０１７２】
また、ストレージ装置３００とストレージ装置４００との間の通信が、複数の並列ファイバ・チャネルを有するファイバ・チャネル接続によって実現されるときに、クローリング・ユニット３４３の処理速度が、ファイバ・チャネルの利用可能性を高めるために増加されるという点において、またクローリング・ユニット３４３の処理速度が、ファイバ・チャネルの利用可能性を減じるために減じられるという点において、ファイバ・チャネルの利用可能性に基づきクローリング・ユニット３４３の処理速度を制御することが望ましい場合がある（これにより、実際のユーザ・アクセスおよびオンデマンド仮想化による通信に対するより効率的な接続を可能にし、また仮想化ジョブおよび／またはマイグレーション・ジョブに関連する通信に対するより効率的な接続を可能にする）。また、効率的なユーザ・アクセスを可能にするために、ファイバ・チャネルの利用可能性が閾値を下回る場合にクローリング・ユニット３４３の処理が一時停止され、これにより、ファイバ・チャネルの利用可能性が制限されていることによるユーザ・アクセス通信における遅延を回避することができる。
【０１７３】
図１５は、仮想化・ユニット３４４によって実行されるような自動バックグラウンド仮想化の例示的な流れ図を示す。第１のステップＳ１１０１において、仮想化ユニット３４４は、次のジョブがないかジョブ・キューをチェックし、ステップＳ１１０２において特定のファイル・システム・オブジェクトに対する仮想化ジョブを取得する。それぞれの仮想化ジョブのターゲット・ファイル・システム・オブジェクトがディレクトリである（ステップＳ１１０３がディレクトリを返す）場合、この方法はステップＳ１１０４を続行し、それぞれの仮想化ジョブのターゲット・ファイル・システム・オブジェクトがファイルである（ステップＳ１１０３がファイルを返す）場合、この方法はステップＳ１１１２を続行する。
【０１７４】
仮想化されるべき第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムのディレクトリに対して、仮想化ユニット３４４は、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム内の仮想化されるべきディレクトリのそれぞれの親ディレクトリに対応する、親ディレクトリ内のローカル・パス・ロケーションにおいて第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に新規ディレクトリを作成する。
【０１７５】
同じファイル・ツリー構造をクライアント１００に見せることができるように仮想化されるディレクトリと同じ名前を持つ新規ディレクトリが作成される。仮想化フェーズであっても、仮想ディレクトリを作成せず、真のディレクトリをすでに作成していることには、ディレクトリ対応ディレクトリが仮想化されるべき第２のストレージ装置４００のファイル・システムと同一のパス・ツリー構造を有する第１のストレージ装置３００のファイル・システム内に作成されるものとしてよく、また第１のストレージ装置３００内のファイル・システムのすべての外部リンク・オブジェクトが正しいディレクトリ・ツリー構造内にすでに記憶されるものとしてよく、それにより、両方のファイル・システムが仮想化後に同一のツリー構造を有することになるという利点がある。また、ディレクトリを作成することで、作成されたディレクトリにすでに関連付けられているディレクトリ・メタデータおよびファイル・メタデータを付加的に記憶することができる。
【０１７６】
ステップＳ１１０４においてディレクトリを作成する（またはステップＳ１００６およびＳ１００７においてすでにあらかじめある）ときに、仮想化されるべきディレクトリのすべてのディレクトリ属性は、第２のストレージ装置４００から第１のストレージ装置３００に転送され、第１のファイル・システム管理ユニット３１０によって管理されるようなファイル・システム内の新規作成されたディレクトリに関連付けられて記憶される。これは、それぞれのディレクトリの属性に向けられたユーザ要求が第１のファイル・システム管理ユニット３１０によってローカルで処理することが可能であり、必ずしも第２のストレージ装置４００との通信を必要としないという利点を有する。
【０１７７】
本発明のいくつかの態様によれば、仮想化が進行中であるとしても仮想化の後にそれぞれのディレクトリのリンク・カウントに関して問い合わせるユーザ要求をローカルで返すことができることが望ましい場合がある。原理上、典型的なファイル・システム内のディレクトリの基礎をなす実リンク・カウントは、Ｎ＋２と計算されるものとしてよく、ここにおいて、Ｎは、特定のディレクトリの子ディレクトリの総数である。その理由は、特定のディレクトリの親ディレクトリが、もちろん、特定のディレクトリへのリンクを含み、特定のディレクトリそれ自体が、特定のディレクトリへの自己参照リンク（ときにはオン・ドット・リンクまたは／．と称される）を表す子エントリを含み、特定のディレクトリの子ディレクトリの各々が、それぞれの親ディレクトリへのリンク（ときにはダブル・ドット・リンクまたは／．．と称される）を含むからである。
【０１７８】
しかしながら、仮想化フェーズでは、特定のディレクトリが、第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に作成されるとき、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システム内の対応する子ディレクトリは、クローリング・ユニット３４３によってまだ発見され得ないか、または発見された場合でも、まだ仮想化され得ず、したがって、第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に、対応する子ディレクトリがまだ存在し得ないか、または対応する子ディレクトリの少なくともすべてが存在するとは限らない。
【０１７９】
第１のストレージ装置３００上のローカルに仮想化されたディレクトリのリンク・カウントに関係する属性要求を確実に、効率的に、正しく処理できるようにするために、ステップＳ１１０４において仮想化の際にディレクトリを作成するときに、この方法は、それぞれのディレクトリ内に自己参照リンクを作成するオプションのステップＳ１１０５、フェイク・リンク・カウントを計算するオプションのステップＳ１１０６、ディレクトリ・メタデータを書き込むオプションのステップＳ１１０７、親ディレクトリ・リンクを作成するオプションのステップＳ１１０８、および親ディレクトリのメタデータ内のフェイク・リンク・カウントを１だけデクリメントするオプションのステップＳ１１０９を続ける（可能な任意の順序で）。
【０１８０】
したがって、それぞれの親ディレクトリ内でステップＳ１１０４において特定のディレクトリを作成するときに、親ディレクトリの内側の特定のディレクトリへのリンクは、ディレクトリ作成を用いて自動的に作成され、自己参照リンク（シングル・ドット・リンクまたは／．など）は、ステップＳ１１０５において作成され、結果として実際のリンク・カウントは２となるが（親ディレクトリ・リンク／．．を有する子ディレクトリがまだ作成されていないので）、第２のファイル・システム管理ユニット４１０によって管理されるようなファイル・システム内の対応するディレクトリの基礎をなす実際のリンク・カウントはＮ＋２となり、Ｎは特定のディレクトリの子ディレクトリの個数である。
【０１８１】
したがって、フェイク・リンク・カウントは、例えば、特定のディレクトリの実リンク・カウントを第２のファイル・システム管理ユニット４１０に要求し、２を差し引くことによって、第２のファイル・システム管理ユニット４１０によって管理されるようなファイル・システム内の特定のディレクトリの子ディレクトリの個数Ｎに基づきステップＳ１１０６において計算され、ステップＳ１１０７においてディレクトリ・メタデータに書き込まれる。次いで、ユーザが特定のディレクトリのリンク番号を要求したときに、第１のファイル・システム管理ユニット３１０は、第１のファイル・システム管理ユニット３１０によって管理されるようなファイル・システム上で観察されるような実リンク・カウントと、ディレクトリ・メタデータに記憶されているようなフェイク・リンク・カウントとを単に加算することによって、また実リンク・カウントとフェイク・リンク・カウントとの総和を返すことによって第２のストレージ装置４００とのさらなる通信を必要とすることなくローカルで要求を効率的に処理することができる。
【０１８２】
上記の手順について、仮想化されたディレクトリのメタデータに記憶されているフェイク・リンク・カウントは、その子ディレクトリが自らの仮想化を目的として作成されるときには必ず更新される必要がある。すなわち、図１５の方法では、ディレクトリの仮想化は、特定のディレクトリ内に親ディレクトリ・リンク（すなわち、ダブル・ドット・リンクまたは／．．）を作成するステップＳ１１０８と、親ディレクトリのメタデータ内に記憶されているようなフェイク・リンク・カウントを１だけデクリメントするステップＳ１１０９とをさらに含む。
【０１８３】
例えば、上記の図９において、ディレクトリ／ｄｉｒは、仮想化されたファイル・システムのツリー構造内にすでに作成されており、その実リンク・カウントは２である（／ｄｉｒ１における自己参照リンクおよび／ｒｏｏｔディレクトリにおける／ｄｉｒ１リンクに対して）が、図４におけるディレクトリ／ｄｉｒは、それに加えて、さらに２つのリンク、すなわち、子ディレクトリ／ｄｉｒ１１および／ｄｉｒ１２の各々からの１つの追加の親ディレクトリ・リンク／．．を有するので、ディレクトリ／ｄｉｒ１のリンク・カウントに関して問い合わせるユーザに返される必要のある実際のリンク・カウントは４である。したがって、図９において、ディレクトリ／ｄｉｒ１のフェイク・リンク・カウントは、２と計算される。ディレクトリ／ｄｉｒ１１およびその中の親ディレクトリ・リンク／．．が、ディレクトリ／ｄｉｒ１１に対する仮想化ジョブの実行後に作成されると、実リンク・カウントは３になり、したがって、フェイク・リンク・カウントは、１だけデクリメントされその結果１となる。それでも、図４において、実リンク・カウントとフェイク・リンク・カウントとの総和は４であり、ディレクトリ／ｄｉｒ１の正しい真のリンク・カウントを返す。
【０１８４】
特定のディレクトリのすべての子ディレクトリが、仮想化された後、特定のディレクトリのフェイク・リンク・カウントは、０となっているべきであり、さらなる仮想化ジョブが存在しないディレクトリまたはオブジェクト・ステータス「Ｃｏｍｐｌｅｔｅ」を有することが示されているディレクトリのフェイク・リンク・カウントが、ゼロよりも依然として大きい場合、そのような状況は、すべての子ディレクトリが発見されているとは限らないという問題について示し得、仮想化されたディレクトリの完全性を保証するために特定のディレクトリに対してディレクトリ情報ジョブが再び作成され得る。
【０１８５】
逆に、ステップＳ１１０４において作成されたような特定のディレクトリの親ディレクトリのフェイク・リンク・カウントが０になったかどうかがチェックされるという点においてディレクトリが完全であるかどうかを検出することが可能であり、ステップＳ１１１０がＹＥＳを返した場合、親ディレクトリが「Ｉｎｃｏｍｐｌｅｔｅ」であるものとして示されたときに、仮想化管理情報テーブル３４１は、親ディレクトリのオブジェクト・ステータスが「Ｃｏｍｐｌｅｔｅ」に更新されたという点において更新される。これ以降（またはステップＳ１１１０がＮＯを返した直後）、特定のディレクトリの仮想化ステータスは、ステップＳ１１１４において「ｖｉｒｔｕａｌｉｚｅｄ」に更新され、仮想化ユニット３４４は、次のジョブがないかジョブキューをチェックする（ステップＳ１１０１に対応するステップＳ１１１５）。
【０１８６】
その一方で、Ｓ１１０２の仮想化ジョブに従って仮想化されるべきオブジェクトが特定のファイルであるときにステップＳ１１０３が「ｆｉｌｅ」を返した場合、仮想化ユニット３４４は、ファイルのリモート・パス・ロケーションに対応するローカル・パス・ロケーションにおいて、すなわち、特定のファイルが存在する第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムのディレクトリに対応する仮想化されたディレクトリにおいて、第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムの特定のファイルを表し、その特定のファイルへのアクセスを可能にする、ＸＬＯと称される、それぞれの外部リンク・オブジェクトを作成する。
【０１８７】
その一方で、上で説明されているような図１４のステップＳ１１１２およびＳ１１１３の代わりに、以下の図１６を参照しつつ例示的に説明されているようなより詳しく説明されている方法は、適宜、ハード・リンクとも称される、ハード・リンクされたファイルのより効率的な処理を可能にすることができるようにファイル仮想化に対して実装され得る。「ハード・リンク」は、同じ実際のユーザ・データに関連付けられているファイルのグループを指すものとしてよいことに留意されたい。
【０１８８】
すなわち、ユーザ（複数可）の観点からのハード・リンクのグループの各ハード・リンクは、独立したファイルの見かけを有するが、ハード・リンクは異なる名前および／または異なるパス・ロケーションを潜在的に有し、各ハード・リンクはストレージ・ユニット４１０に記憶されている同じ実際のユーザ・データを指している。また、そのユーザ・データが、例えばデータをハード・リンクされたファイルのうちの１つに書きこむことによって、修正されるとすれば、基礎をなすデータは、すべてのハード・リンクに関して修正され、ハード・リンクのうちの１つまたは複数が、名前を変更され、および／または異なるパス・ロケーションに移動されるとすれば、他のハード・リンクは、ハード・リンクのそのような移動または名前変更を認識しない（これはいわゆるソフト・リンクについては異なる）。
【０１８９】
クローリング・ユニット３４３が、同じファイル・データのコンテンツを指すハード・リンクのグループの１つのハード・リンクを表すファイルを発見した場合、クローリング・ユニット３４３は、それでも、ハード・リンクのグループの他のハード・リンクを容易に発見することはできないが、クローリング・ユニット３４３または仮想化ユニット３４４は、発見されたハード・リンクに対するメタデータ内のファイル属性からリンク・カウントを読み出すことによってハード・リンクの総数を決定することができる。ディレクトリのリンク・カウントに関連する状況と同様に、第１のファイル・システム管理ユニット３１０は、リンク・カウントのうちの１つのみの仮想化の後にローカルでハード・リンクのリンク・カウントを返すことができることが望ましく、ハード・リンクの仮想化を効率的に処理することが望ましい。
【０１９０】
図１６は、ハード・リンクされたファイル（ハード・リンク）をより効率的に、また確実に処理するための自動バックグラウンド・マイグレーションの別の例示的な流れ図を示している。ステップＳ１１０１、Ｓ１１０２、Ｓ１１１２、Ｓ１１１３、Ｓ１１１４、およびＳ１１１５は、上で説明されているように図１５の同じ参照番号のステップに類似している。
【０１９１】
特定のファイルに対する仮想化ジョブを取得した後に、ファイルのリンク・カウントＮがステップＳ１１２０において決定され（例えば、それぞれのファイルに対するリンク・カウント情報を第２のファイル・システム管理ユニット４１０に要求することによって、または図１４のステップＳ１００７の応答とともにすでにファイルのリンク・カウントを示しているメタデータを受信することによって）、リンク・カウントが、１よりも大きいかどうかがチェックされる（ステップＳ１１２１）。ステップＳ１１２１がＮＯを返すと、この方法は、図１５のファイル仮想化と同様に継続する（すなわち、ステップＳ１１１２、Ｓ１１１３、Ｓ１１１４、およびＳ１１１５／Ｓ１１０１）。
【０１９２】
しかしながら、仮想化されるべき特定のファイルのリンク・カウントＮが、１よりも大きく（すなわち、少なくとも１つの他のハード・リンクが存在するとき）、ステップＳ１１２１がＹＥＳを返したときに、ファイルのオブジェクトＩＤが決定され（ステップＳ１１２２）、ハード・リンク／ファイルのオブジェクトＩＤに関連付けられているサブディレクトリの存在に関して、第１のファイル・システム管理ユニット３１０によって管理されるファイル・システム内に以前に作成された、隠しインデックス・ディレクトリがチェックされる（ステップＳ１１２３）。
【０１９３】
次に明らかにされるように、隠しインデックス・ディレクトリ内のハード・リンク／ファイルのオブジェクトＩＤに関連付けられている、サブディレクトリの存在は、ハード・リンクの同じグループの別のハード・リンク（同じオブジェクトＩＤを有するが、名前および／またはリモート・パス・ロケーションが異なる）は、クローリング・ユニット３４２によって以前にすでに発見されていたことを示す。その一方で、隠しインデックス・ディレクトリ内にそのような関連付けられているサブディレクトリが存在していない場合、これは、ハード・リンクの同じグループの他のハード・リンクが以前に発見されていなかったことを示す。
【０１９４】
したがって、隠しインデックス・ディレクトリ内に関連付けられたサブディレクトリが存在せず、ハード・リンクの同じグループの他のハード・リンクが以前に発見されていなかったことを示す場合、発見されたハード・リンクの（すなわち、特定のファイルの）オブジェクトＩＤに関連付けられているインデックス・サブディレクトリが、ステップＳ１１２５において隠しインデックス・ディレクトリ内に作成され、作成された関連付けられているインデックス・サブディレクトリ内で、Ｎ−１個のハード・リンクが、ステップＳ１１２６において関連付けられているインデックス・サブディレクトリ内に作成され、ステップＳ１１１２において仮想化されるべきファイル／ハード・リンクのリモート・パス・ロケーションに対応するローカル・パス・ロケーションに作成される外部リンク・オブジェクトが、ステップＳ１１２６において作成されるようなハード・リンクのグループの別のハード・リンクとして作成される。したがって、ステップＳ１１１２において作成された外部リンク・オブジェクトの実際のリンク・カウントは、Ｎ−１＋１＝Ｎであり、仮想化されるべきファイル／ハード・リンクの基礎をなす実際のリンク・カウントＮに同じく対応する。
【０１９５】
その一方で、ステップＳ１１２４において、仮想化されるべきファイル／ハード・リンクのオブジェクトＩＤに関連付けられているインデックス・サブディレクトリが隠しインデックス・ディレクトリ内にすでに存在していると決定された場合（ステップＳ１１２４がＹＥＳを返す）、関連付けられているインデックス・サブディレクトリ内に存在するハード・リンクのうちの１つが、ステップＳ１１２７において取り除かれ、対応するハード・リンクされている外部リンク・オブジェクトが、ステップＳ１１１２において仮想化されるべきファイル／ハード・リンクのリモート・パス・ロケーションに対応するローカル・パス・ロケーション内に作成され、ハード・リンクされた外部リンク・オブジェクトは関連付けられているインデックス・サブディレクトリのハード・リンクのグループの別のハード・リンクとして作成される。
【０１９６】
ステップＳ１１２７およびＳ１１１２によって、基礎をなす真の全リンク数は、他のすべてのハード・リンクが発見されているかいないかに関係なく、第１のストレージ装置３００のファイル・システム内で同じままである、すなわち、第２のストレージ・システム４００内の対応するハード・リンク・グループのハード・リンク数Ｎである。
【０１９７】
ステップＳ１１２７およびＳ１１１２を別々に実行する代わりに、関連付けられているインデックス・サブディレクトリ内に記憶されているハード・リンクのうちの１つに関連して名前変更操作の１つの単一のステップのみを用意することによってなおいっそう効率的に類似の効果が得られる（名前変更操作はステップＳ１１０２のジョブに従って１つのハード・リンクの名前を変更することおよび／またはそのハード・リンクをインデックス・サブディレクトリから仮想化されるべきファイルのローカル・ターゲット・パス・ロケーションに移動することを含む）。
【０１９８】
最後に、ステップＳ１１２７の後に、または上で説明されているような名前変更操作の後にインデックス・サブディレクトリ内にさらなるハード・リンクが残っていない場合（ステップＳ１１２８がＮＯを返す）、関連付けられているインデックス・サブディレクトリは、ステップＳ１１２９において取り除かれ（例えば、削除され）得る。
【０１９９】
図１７Ａは、ファイル（またはハード・リンクされたファイル）に対する外部リンク・オブジェクト１１００の例示的な概略データ構造を示している。外部リンク・オブジェクト１１００は、例示的に、外部ファイル・システム内で使用されているような名前、外部ファイル・システム内のファイルのリモート・パス・ロケーション、外部ファイル・システム内で使用されているようなリモート・オブジェクトＩＤ、外部ファイル・システム内で使用されているようなリモートＩｎｏｄｅ番号、外部ファイル・システムのリモート・ファイル・システムＩＤ（例えば、複数のファイル・システムが第２のファイル・システム管理ユニット４１０によって処理される場合）、およびファイル・データのコンテンツが記憶されるストレージ・ユニット４２０のデバイスを示すリモート・デバイスＩＤを含む第２のファイル・システム管理ユニット４１０によって管理されるような外部ファイル・システムに関するファイルに関するメタデータを有する第１の情報セクション１１１０を備える。
【０２００】
名前およびリモート・パス・ロケーションおよび／またはリモート・オブジェクトＩＤを参照することによって、外部リンク・オブジェクトは、ユーザが外部ファイル・システム内で使用されているような名前およびリモート・パス・ロケーションおよび／またはリモート・オブジェクトＩＤを参照するアクセス要求によってファイルにアクセスすることを試みるときに、外部ファイル・システム内のファイルへのアクセスを可能にする。
【０２０１】
外部リンク・オブジェクト１１００は、例示的に、ローカル・ファイル・システム内で使用されているような名前、内部ファイル・システム内の外部ファイル・オブジェクトのローカル・パス・ロケーション、内部ファイル・システム内で使用されているようなローカル・オブジェクトＩＤ、内部ファイル・システム内で使用されているようなローカルＩｎｏｄｅ番号、内部ファイル・システムのローカル・ファイル・システムＩＤ（例えば、複数のファイル・システムが第１のファイル・システム管理ユニット３１０によって処理される場合）、およびファイル・データのコンテンツが記憶されるか、またはデータ・ブロックがデータの後からのマイグレーションのためにすでに割り当てられているものとしてよい、ストレージ・ユニット３２０のデバイスを示すローカル・デバイスＩＤを含む第１のファイル・システム管理ユニット３１０によって管理されるような内部（ローカル）ファイル・システムに関するファイルに関するメタデータを有する第２の情報セクション１１２０をさらに備える。
【０２０２】
それに加えて、第２の情報セクション１１２０は、ストレージ・ユニット４２０にすでに記憶されているファイルコンテンツのデータのサイズに対応するオブジェクト・ストア長を示し得る（すなわち、ファイルのオブジェクト・ストア長が外部ファイル・システム上のファイルの長さに対応するときに、このことは実際のファイルコンテンツのすべてのデータが完全にマイグレーションされていることを意味する）。マイグレーションを開始する前に、転送される実際のファイルコンテンツのデータはないので、オブジェクト・ストア長は、仮想化時にはゼロのままである。
【０２０３】
外部リンク・オブジェクト１１００は、例示的に、現在のタイム・スタンプ（ファイルへの最後の修正アクセスの時刻を示す）、ファイルのリンク・カウント、ファイルの長さ（外部ファイル・システム内の）、およびさらなるファイル属性を含むファイルの属性に関するメタデータを有する第３の情報セクション１１３０をさらに備える。ファイル属性は、第３の情報セクション１１３０内に外部リンク・オブジェクトとともに記憶されるので、クライアント１００を介してユーザから送信された属性要求は、外部リンク・オブジェクトが作成されるとすぐに、すなわち、ファイルが仮想化されるとすぐに、第１のファイル・システム管理ユニット３１０によってローカルで、都合よく、効率的に処理され得る。
【０２０４】
図１７Ｂは、仮想化されたディレクトリに対するメタデータの例示的な概略データ構造１２００を示している。ディレクトリ・メタデータ１２００は、例示的に、外部ファイル・システム内で使用されているような名前、外部ファイル・システム内のディレクトリのリモート・パス・ロケーション、外部ファイル・システム内で使用されているようなリモート・オブジェクトＩＤ、外部ファイル・システム内で使用されているようなリモートＩｎｏｄｅ番号、外部ファイル・システムのリモート・ファイル・システムＩＤ（例えば、複数のファイル・システムが第２のファイル・システム管理ユニット４１０によって処理される場合）、およびディレクトリが記憶されるストレージ・ユニット４２０のデバイスを示すリモート・デバイスＩＤを含む外部ファイル・システムに関するディレクトリに関するメタデータを有する第１の情報セクション１２１０を備える。
【０２０５】
ディレクトリ・メタデータ１２００は、例示的に、ローカル・ファイル・システム内で使用されているような名前、内部ファイル・システム内のディレクトリのローカル・パス・ロケーション、内部ファイル・システム内で使用されているようなローカル・オブジェクトＩＤ、内部ファイル・システム内で使用されているようなローカルＩｎｏｄｅ番号、内部ファイル・システムのローカル・ファイル・システムＩＤ（例えば、複数のファイル・システムが第１のファイル・システム管理ユニット３１０によって処理される場合）、およびディレクトリが記憶されるストレージ・ユニット３２０のデバイスを示すローカル・デバイスＩＤを含む第１のファイル・システム管理ユニット３１０によって管理されるような内部（ローカル）ファイル・システムに関するディレクトリに関するメタデータを有する第２の情報セクション１２２０をさらに備える。
【０２０６】
ディレクトリ・メタデータ１２００は、例示的に、現在のタイム・スタンプ（ディレクトリへの最後の修正アクセスの時刻を示す）、ディレクトリの実リンク・カウント、ディレクトリのフェイク・リンク・カウント、およびさらなるディレクトリ属性を含むディレクトリの属性に関するメタデータを有する第３の情報セクション１２３０をさらに備える。ディレクトリ属性は、第３の情報セクション１２３０内にディレクトリ・メタデータとともに記憶されるので、クライアント１００を介してユーザから送信された属性要求は、ディレクトリおよびそのメタデータが作成されるとすぐに、すなわち、ディレクトリが仮想化されるとすぐに、第１のファイル・システム管理ユニット３１０によってローカルで、都合よく、効率的に処理され得る。
【０２０７】
上記の説明は自動バックグラウンド仮想化に関係しているが、本発明のさらなる好ましい態様は、特定のファイル・システム・オブジェクトに向けられたクライアント１００からアクセス要求を受信することによってトリガーされ得る以下で説明されているような自動オンデマンド仮想化に関係し得る。
【０２０８】
図１８は、オンデマンド仮想化に対する第１のファイル・システム管理ユニット３１０および第２のファイル・システム管理ユニット３２０との間の情報交換の図を例示している。例えば、図１３による仮想化の状況においてｆｉｌｅ８に向けられているクライアント１００から要求が受信されたときに、ｆｉｌｅ８も対応する仮想化された外部リンク・オブジェクトＸＬＯ８も、ディレクトリ／ｄｉｒ２１内に存在せず、／ｄｉｒ２１も存在しない。したがって、自動バックグラウンド仮想化によってまだ仮想化されていなかった、ｆｉｌｅ８へのアクセス要求を受信したときに、第１のファイル・システム管理ユニット３１０は、クライアント１００に対してｆｉｌｅ８へのアクセスをブロックし、ユーザによって示されるようなリモート・パス（例えば、／ｒｏｏｔ／ｄｉｒ２／ｄｉｒ２１／ｆｉｌｅ８）を探索することを求める要求を発行する。
【０２０９】
／ｄｉｒ２は、以前に発見されており、自動バックグラウンド仮想の際にすでに仮想化されているので、第１のファイル・システム管理ユニット３１０は、その後、ターゲット・ファイル「ｆｉｌｅ８」のリモート・パス内の残っているすべての未知のファイル・システム・オブジェクトを探索することを求める要求（例えば、ＮＦＳベースのファイル・システム通信プロトコルにおけるＬＯＯＫＵＰ要求）を第２のファイル・システム管理ユニット４１０に発行する、すなわち、／ｄｉｒ２内のディレクトリ／ｄｉｒ２１および／ｄｉｒ２１内のｆｉｌｅ８に関するルックアップ要求を発行し、それぞれの応答を待つ。次いで、／ｄｉｒ２１およびｆｉｌｅ８の存在が、第２のファイル・システム管理ユニット４１０からの応答によって確認された後、第１のファイル・システム管理ユニット３１０は、以前に仮想化された／ｄｉｒ２内に／ｄｉｒ２１をローカルで作成し、新規作成された／ｄｉｒ２１内に外部リンク・オブジェクトＸＬＯ８をローカルで作成するという点において、／ｄｉｒ２１およびｆｉｌｅ８のユーザ・トリガー・オンデマンド仮想化を実行する。これ以降、ｆｉｌｅ８へのユーザ・アクセスは、／ｄｉｒ２および／ｄｉｒ２１内の残りの他のすべてのファイル・システム・オブジェクトを仮想化する前に、新規作成された外部リンク・オブジェクトＸＬＯ８を介して即座に有効化される。
【０２１０】
図１９は、図１８によるオンデマンド仮想化の後の部分的に仮想化されたファイル・システムのツリー構造の一例を示している。したがって、ディレクトリ／ｄｉｒ２１および外部ファイル・システム・オブジェクトＸＬＯ８は、第１のファイル・システム管理ユニット３１０によってローカルで管理されるファイル・システム内に存在する。
【０２１１】
図２０は、仮想化（ターゲット・ファイルがまだ仮想化されていない場合には、オンデマンド仮想化を含む）の際にユーザのファイル・アクセスを可能にするための方法を示す例示的な流れ図を示す。
【０２１２】
ステップＳ２００１においてファイル・システム内の特定のターゲット・ファイルに向けられているクライアント１００を介してアクセス要求がユーザから受信されたときに、第１のファイル・システム管理ユニット３１０は、ターゲット・ファイルがそれでも仮想化されているかどうかについて仮想化管理情報テーブル３４１をチェックする（ステップＳ２００２）。ステップＳ２００２がＹＥＳを返した場合、ファイル・システム内のターゲット・ファイルへのユーザ・アクセスは、ターゲット・ファイルに対応する外部リンク・オブジェクトを通じて即座に有効化される。
【０２１３】
その一方で、ターゲット・ファイルが、まだ仮想化されていない場合（ステップＳ２００２がＮＯを返す）、第１のファイル・システム管理ユニット３１０は、ステップＳ２００１において受信されたアクセス要求で示されているようなターゲット・ファイルのリモート・パス内のターゲット・ファイルを探索する。ターゲット・ファイルの（またはリモート・パスのディレクトリのどれかの）存在が、第２のファイル・システム管理ユニット４１０によって確認されず（例えば、ユーザが不正なリモート・パスを与えたときに）、ステップＳ２００４がＮＯを返した場合、アクセス要求を送信したクライアント１００にＩ／Ｏエラーが返される。
【０２１４】
ターゲット・ファイルの存在が、ステップＳ２００３の探索要求（複数可）への応答によって第２のファイル・システム管理ユニット４１０によって確認された場合（ステップＳ２００４がＹＥＳを返す）、第１のファイル・システム管理ユニット３１０は、ステップＳ２００６においてリモート・パスの非仮想化されたオブジェクトの各々に対して（すなわち、リモート・パス内のすべての非仮想化されたディレクトリおよびターゲット・ファイルに対して）仮想化ジョブを作成する。さらなる好ましい態様において、第１のファイル・システム管理ユニット３１０は、それに加えて、リモート・パスの非仮想化されたディレクトリの各々に対してディレクトリ情報ジョブを作成し得る。また、上述のジョブは、上述のような自動バックグラウンド仮想化に使用されるのと同じジョブ・キュー（複数可）にアドホックで追加され得る。
【０２１５】
ターゲット・ファイルを含む、リモート・パスのすべての以前に非仮想化されていたオブジェクトが仮想化された後（ステップＳ２００７がＹＥＳを返す）、ファイル・システム内のターゲット・ファイルへのユーザ・アクセスは、ターゲット・ファイルに対応する外部リンク・オブジェクトを通じて有効化される（ステップＳ２００８）。
【０２１６】
図２１は、仮想化（ターゲット・オブジェクトがまだ仮想化されていない場合には、オンデマンド仮想化を含む）の際に属性アクセスを可能にするための方法を示す例示的な流れ図を示す。
【０２１７】
ステップＳ２１０１においてファイル・システム内の特定のファイル・システム・オブジェクトに向けられているクライアント１００を介して属性情報要求がユーザから受信されたときに、第１のファイル・システム管理ユニット３１０は、ターゲット・オブジェクトがそれでも仮想化されているかどうかについて仮想化管理情報テーブル３４１をチェックする（ステップＳ２１０２）。ステップＳ２１０２がＹＥＳを返した場合、要求はローカルで処理され、要求された属性情報が、外部リンク・オブジェクトまたはディレクトリ・メタデータに関連して記憶されている属性情報に基づき返される（ステップＳ２１０８）。
【０２１８】
その一方で、ターゲット・オブジェクトが、まだ仮想化されていない場合（ステップＳ２１０２がＮＯを返す）、第１のファイル・システム管理ユニット３１０は、ステップＳ２１０１において受信された属性情報要求で示されているようなターゲット・オブジェクトのリモート・パス内のターゲット・オブジェクトを探索する。ターゲット・オブジェクトの（またはリモート・パスのディレクトリのどれかの）存在が、第２のファイル・システム管理ユニット４１０によって確認されず（例えば、ユーザが不正なリモート・パスを与えたときに）、ステップＳ２１０４がＮＯを返した場合、要求を送信したクライアント１００にエラーが返される。
【０２１９】
ターゲット・オブジェクトの存在が、ステップＳ２１０３の探索要求（複数可）への応答によって第２のファイル・システム管理ユニット４１０によって確認された場合（ステップＳ２１０４がＹＥＳを返す）、第１のファイル・システム管理ユニット３１０は、ステップＳ２１０６においてリモート・パスの非仮想化されたオブジェクトの各々に対して仮想化ジョブを作成する。さらなる好ましい態様において、第１のファイル・システム管理ユニット３１０は、それに加えて、リモート・パスの非仮想化されたディレクトリの各々に対してディレクトリ情報ジョブを作成し得る。また、上述のジョブは、上述のような自動バックグラウンド仮想化に使用されるのと同じジョブ・キュー（複数可）にアドホックで追加され得る。
【０２２０】
ターゲット・オブジェクトを含む、リモート・パスのすべての以前に非仮想化されたオブジェクトが、仮想化された後（ステップＳ２１０７がＹＥＳを返す）、要求はローカルで処理され、要求された属性情報が、外部リンク・オブジェクトまたはディレクトリ・メタデータに関連して記憶されている属性情報に基づき返される（ステップＳ２１０８）。
【０２２１】
図２２Ａは、仮想化（ターゲット・ディレクトリがまだ仮想化されていない場合には、オンデマンド仮想化を含む）の際にユーザのディレクトリ・アクセスを可能にするための方法を示す例示的な流れ図を示す。
【０２２２】
ステップＳ２２０１においてファイル・システム内の特定のターゲット・ディレクトリに向けられているクライアント１００を介してアクセス要求がユーザから受信されたときに、第１のファイル・システム管理ユニット３１０は、ターゲット・ディレクトリがそれでも仮想化されているかどうかについて仮想化管理情報テーブル３４１をチェックする（ステップＳ２２０２）。ステップＳ２２０２がＹＥＳを返した場合、この方法は、この例示的な態様（さらに以下で説明されている）に従ってステップＳ２２０９を続行する。
【０２２３】
その一方で、ターゲット・ディレクトリが、まだ仮想化されていない場合（ステップＳ２２０２がＮＯを返す）、第１のファイル・システム管理ユニット３１０は、ステップＳ２２０１において受信されたアクセス要求で示されているようなターゲット・ディレクトリのリモート・パス内のターゲット・ディレクトリを探索する。ターゲット・ディレクトリの（またはリモート・パスのディレクトリのどれかの）存在が、第２のファイル・システム管理ユニット４１０によって確認されず（例えば、ユーザが不正なリモート・パスを与えたときに）、ステップＳ２２０４がＮＯを返した場合、アクセス要求を送信したクライアント１００にＩ／Ｏエラーが返される。
【０２２４】
ターゲット・ディレクトリの存在が、ステップＳ２２０３の探索要求（複数可）への応答によって第２のファイル・システム管理ユニット４１０によって確認された場合（ステップＳ２２０４がＹＥＳを返す）、第１のファイル・システム管理ユニット３１０は、ステップＳ２２０６においてリモート・パスの非仮想化されたオブジェクトの各々に対して（すなわち、リモート・パス内のすべての非仮想化されたディレクトリに対して）仮想化ジョブを作成する。この例示的な態様によれば、この方法は、ターゲット・ディレクトリの子オブジェクト（ターゲットのすべての子ディレクトリおよびターゲット・ディレクトリに収容されているすべてのファイルを含む）の各々に対して仮想化ジョブをさらに作成するステップＳ２２０７を続行する。
【０２２５】
さらなる好ましい態様において、第１のファイル・システム管理ユニット３１０は、それに加えて、リモート・パスの非仮想化されたディレクトリの各々に対するディレクトリ情報ジョブおよび／またはターゲット・ディレクトリの子ディレクトリの各々に対するディレクトリ情報ジョブを作成し得る。また、上述のジョブは、上述のような自動バックグラウンド仮想化に使用されるのと同じジョブ・キュー（複数可）にアドホックで追加され得る。
【０２２６】
ターゲット・ディレクトリを含む、リモート・パスのすべての以前に非仮想化されたオブジェクトが、仮想化され（ステップＳ２２０８がＹＥＳを返す）、ターゲット・ディレクトリのすべての子ディレクトリが、仮想化された後（ステップＳ２２０９がＹＥＳを返す）、この方法は、ステップＳ２２１０に進み、ターゲット・ディレクトリのオブジェクト・ステータスを「Ｃｏｍｐｌｅｔｅ」に更新する。その後、ターゲット・ディレクトリへのクライアント・アクセスは、ステップＳ２２１１において有効化される。
【０２２７】
しかしながら、ステップＳ２２０９がＳ２２０９を返すと（例えば、ステップＳ２２０７において作成されたすべてのジョブがまだ実行されていないとき、またはこの方法がステップＳ２２０２からＳ２２０９に進んだ場合）、この方法は、待機するか、または用心のためステップＳ２２０７に戻ることすらあり得る。その一方で、ステップＳ２２０９がＮＯを返した場合、この方法は、仮想化ジョブがステップＳ２２０９において以前に作成されているので、またはステップＳ２２０２がＹＥＳを返すときに、自動バックグラウンド・マイグレーションのステップＳ１００９によるターゲット・ディレクトリの仮想化の後に、単に待つだけであるものとしてよい。
【０２２８】
上記において、ターゲット・ディレクトリへのユーザ・アクセスを有効化する前にターゲット・ディレクトリのすべての子ディレクトリを仮想化していることが望ましいものとしてよいが（ユーザからのすべてのルックアップおよびディレクトリ情報要求が都合よくローカルで処理され得るので）、そのような方法は、多数の子エントリを有するターゲット・ディレクトリに対して望ましくない遅延をもたらし得る。
【０２２９】
多数の子エントリを有するターゲット・ディレクトリに対するそのような望ましくない遅延を回避するために、ターゲット・ディレクトリへのユーザ・アクセスを有効化する前にターゲット・ディレクトリの子ディレクトリが必ずしも仮想化されない別の代替的方法が提供され得る。したがって、図２２Ｂは、仮想化の際にユーザのディレクトリ・アクセスを可能にするための方法を示す代替的な例示的な流れ図を示している。ステップＳ２２０１、Ｓ２２０２、Ｓ２２０３、Ｓ２２０４、Ｓ２２０５、Ｓ２２０６、Ｓ２２０７、Ｓ２２０８、およびＳ２２１１は、上で説明されている図２２Ａと同じであるが、ステップＳ２２０９およびＳ２２１０は省かれている。
【０２３０】
したがって、多数の子エントリ（数百万個のエントリなど）を有するターゲット・ディレクトリであっても、ターゲット・ディレクトリへのユーザ・アクセスは、ターゲット・ディレクトリの仮想化の直後の多数の子エントリの仮想化による望ましくない遅延を生じることなく可能にされ得る。それでも、ステップＳ２２０７により、子エントリのバックグラウンド・マイグレーションは進行中である。
【０２３１】
ユーザから送信されたディレクトリ情報要求に関して、要求がローカルで処理され得るか、または第２のストレージ装置３００にパススルーされる必要があるかどうかが決定される必要がある。例えば、使用されるファイル・システム通信プロトコルが、Ｍ個の子エントリのリストが典型的には、ディレクトリ情報要求に応答して返されるように最大数Ｍへのディレクトリ情報要求に応答して返される子エントリの数を制限し、要求が開始位置を示さないときに、要求は、最初のＭ個の子エントリのリストによって応答する必要があり、すでに少なくとも最初のＭ個の子オブジェクトがそれでも仮想化されていた場合にローカルで処理され得る。
【０２３２】
ターゲット・ディレクトリのＭより少ない子オブジェクトがそれでも仮想化されている場合、要求は、第２のファイル・システム管理ユニット４１０にパススルーされなければならず、第２のファイル・システム管理ユニット４１０の応答が、要求側クライアント１００に返される。同様に、ディレクトリ情報要求が、開始位置を示しているとき（例えば、返されたエントリのリストがＰ番目の子エントリから始まるものとすることを示す）、要求は、すでに少なくとも最初のＭ＋Ｐ個の子オブジェクトがそれでも仮想化されている場合にローカルで処理されるものとしてよく、そうでない場合、要求はパススルーされる必要がある。
【０２３３】
図２３は、仮想化管理テーブルのバックアップのための方法を示す例示的な流れ図を示している。上で説明されているように、仮想化管理情報テーブル３４１は、所定のサイズの（すなわち、特定の数のエントリ・ラインを有する）ブロック（チャンク）３４１ａから３４１ｄに記憶される。
【０２３４】
仮想化（および／またはマイグレーション）処理において、仮想化管理情報テーブル３４１は、メモリ３１４内に保持されるが、仮想化管理情報バックアップ・ユニット３４２は、仮想化管理情報テーブル３４１のバックアップ・コピーを作成することおよび作成されたバックアップ・コピーをストレージ・デバイス３１５にコピーすることを繰り返しまたはさらには定期的にも実行するように適合される。
【０２３５】
しかしながら、マルチスレッドのクローリング・ユニット３４３、仮想化ユニット３４４、およびマイグレーション・ユニット３４５の複数のスレッドは、仮想化管理情報テーブル３４１へのアクセスを、それを更新するために行うことが非常に多い場合あるので、また仮想化管理情報テーブル３４１内のエントリの総数は、数百万から数十億（百万の数千倍）個のファイル・システム・オブジェクトを有するファイル・システムについては非常に大きくなり得るので、バックアップ実行は、仮想化管理情報テーブル３４１が丸ごとバックアップ・コピーされるのではなく、ブロック３４１ａから３４１ｄの単位でバックアップ・コピーされるときにより効率的になされ得るが、ここにおいて、現在バックアップされている、特定の１つのブロックへのアクセスがブロックされたときでも、クローリング・ユニット３４３、仮想化ユニット３４４、およびマイグレーション・ユニット３４５は、依然として、他のすべてのブロックへの読み書きアクセスを効率的に行うことができる。
【０２３６】
図２３によるバックアップ処理によれば、仮想化管理情報テーブル・バックアップは、ステップＳ２３０１において可能にされ、仮想化管理情報バックアップ・ユニット３４２によって実行されるバックアップ処理は、ステップＳ２３０２における次の（または最初の）仮想化管理情報テーブル・ブロックに進む。
【０２３７】
ステップＳ２３０２において、仮想化管理情報テーブル・ブロックが、オブジェクト・ステータス「Ｃｏｍｐｌｅｔｅ」を有するものとして示されているディレクトリを収容するかどうかがチェックされる。そのようなディレクトリが存在せず（例えば、ブロック内のすべてのエントリがハード・リンクなどのファイルまたはファイルに似たオブジェクトに関係する場合、またはブロック内で示されているすべてのディレクトリがオブジェクト・ステータス「Ｉｎｃｏｍｐｌｅｔｅ」を有する場合）、ステップＳ２３０３がＮＯを返す場合、バックアップ方法は、現在の仮想化管理情報ブロックのバックアップ・コピーを作成し、そのコピーをストレージ・デバイス３１５に（および／またはリモート・バックアップ・ストレージ・デバイスに）記憶するステップＳ２３０８をすぐに続行する。次いで、この方法は、ステップＳ２３０２における次のブロックを続行する。
【０２３８】
その一方で、ステップＳ２３０３がＹＥＳを返した場合、それぞれのブロックの前のバックアップ・バージョンが存在するかどうかがチェックされ、もし存在すれば、前のバックアップ・バージョンは、現在のブロック内で「Ｃｏｍｐｌｅｔｅ」と示されている各ディレクトリについて、同じディレクトリがその特定のブロックの前のバックアップ・バージョンにおいて「Ｉｎｃｏｍｐｌｅｔｅ」と前に示されたかどうかに関してチェックされる（ステップＳ２３０５）。ステップＳ２３０５がＮＯを返した場合、すなわち、現在のブロック内でＣｏｍｐｌｅｔｅであると示されているすべてのディレクトリが、その特定のブロックの以前のバックアップ・バージョンにおいてすでにＣｏｍｐｌｅｔｅであるとして示されていた場合、この方法は、現在の仮想化管理情報ブロックのバックアップ・コピーを作成し、そのコピーをストレージ・デバイス３１５に（および／またはリモート・バックアップ・ストレージ・デバイスに）記憶するステップＳ２３０８を続行する。次いで、この方法は、ステップＳ２３０２における次のブロックを続行する。
【０２３９】
しかしながら、ステップＳ２３０５がＹＥＳを返した場合、すなわち、少なくとも１つのディレクトリがその特定のブロックの以前のバックアップ・バージョンにおいて「Ｉｎｃｐｏｍｐｌｅｔｅ」であるとして示されていたが、現在、その特定のブロックの現在のバージョンにおいて「Ｃｏｍｐｌｅｔｅ」であるとして示されているときに、仮想化管理情報バックアップ・ユニット３４２によって実行されるバックアップ処理は、最初に、ステップＳ２３０５において決定されたディレクトリ（または複数のディレクトリ）の子ディレクトリに関係する少なくとも１つのエントリを収容する仮想化管理情報テーブル３４１の他のすべてのテーブル・ブロックを、ステップＳ２３０６において決定し、ステップＳ２３０８において現在のテーブル・ブロックのバックアップを実行する前にステップＳ２３０７において決定されたような他のすべてのテーブル・ブロックのバックアップを実行する。
【０２４０】
したがって、仮想化の中断、ならびに仮想化管理情報テーブル３４１のデータおよびジョブ・キュー３４６Ａから３４６Ｃのデータを含むメモリ３１４内のデータの喪失が生じた場合であっても、仮想化（およびマイグレーション）は、仮想化管理情報テーブル３４１がバックアップ・コピーから復元され得る、それぞれの仮想化ジョブが「ｎｅｅｄｓ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ」として示されているすべてのオブジェクトについて作成され得る、およびそれぞれのディレクトリ情報ジョブが完全な仮想化を再開することを必要とすることなくオブジェクト・ステータス「Ｉｎｃｏｍｐｌｅｔｅ」を有する各ディレクトリについて作成され得る、という点において確実に再開され得る。
【０２４１】
しかしながら、ちょうど完了したばかりのディレクトリの情報を含むブロックが、子ディレクトリ情報を有するブロックの予備的バックアップも実行することなくバックアップに使用された場合、子ディレクトリに収容されているオブジェクトは、見逃される可能性がある。特に、ディレクトリがＣＯＭＰＬＥＴＥであるものとして示されているときに、これは、すべての子オブジェクトが仮想化されていることを意味し、すべての子ディレクトリは、実際にはすでに存在している（ファイル・システム内、さらには仮想化管理テーブル内にも）ことを意味するが、ジョブ・キュー内のデータの喪失は、それらの子ディレクトリのうちの１つまたは複数に向けられたディレクトリ情報要求が失われ、テーブル・ブロックに追加され以降にそれらのテーブル・ブロックがまだバックアップされていなかったという状況を引き起こすときに、それらの子ディレクトリの子エントリは、決して自動バックグラウンド仮想化によって仮想化され得ない。
【０２４２】
その一方で、少なくとも１つの子ディレクトリ・エントリを収容する各さらなるテーブル・ブロックに関連してバックアップも実行する前にではなく、完了したディレクトリのテーブル・ブロックのバックアップを実行することによって、そのような望ましくない状況は、仮想化の中断ならびにジョブ・キューおよび仮想化管理情報テーブル内のデータの喪失という最悪のシナリオであっても確実に回避され得る。
【０２４３】
図２４は、図４のファイル・システムのツリーの仮想化が完了した後の仮想化管理情報テーブル３４１の一例を示している。このテーブルは、４つのデータ・ブロック３４１ａから３４１ｄに例示的に分割されており、図４のファイル・システムのツリー構造のファイル・システム・オブジェクトの各々について１つのエントリを収容する。図２４のテーブル３４１で示されているファイル・オブジェクトの各々は、それぞれの外部リンク・オブジェクトが図５Ａの構造に従って第２のファイル・システム管理ユニット４１０によって管理されるようなファイル・システムのファイルの各々について存在することを示す仮想化ステータス「ｖｉｒｔｕａｌｉｚｅｄ」を有し、各ファイル・オブジェクトは、実際のファイルコンテンツのデータは第２のストレージ装置４００のストレージ・ユニット４２０から第１のストレージ装置３００のストレージ・ユニット３２０にまだマイグレーションされていないことを示すオブジェクト・ステータス「ｎｅｅｄｓ  ｍｉｇｒａｔｉｏｎ」を有する。
【０２４４】
図２４のテーブル３４１で示されているディレクトリの各々は、同じ名前のそれぞれのディレクトリが図４および５Ａの両方のツリー構造に従って第２のファイル・システム管理ユニット４１０によって管理されるようなファイル・システムのディレクトリの各々について存在することを示す仮想化ステータス「ｖｉｒｔｕａｌｉｚｅｄ」を有し、各ディレクトリ・オブジェクトは、そのすべての子オブジェクトも仮想化されていることを示すオブジェクト・ステータス「Ｃｏｍｐｌｅｔｅ」を有する。
【０２４５】
次いで、マイグレーションの第２のフェーズにおいて、クローリング・ユニット３４３は、仮想化管理情報テーブル３４１全体を再ウォーキングして、ジョブ・キュー３４６Ｃに追加されるべき「ｎｅｅｄｓ  ｍｉｇｒａｔｉｏｎ」として示されている各ファイル・オブジェクトについてそれぞれのマイグレーション・ジョブを作成することができ、それにより、マイグレーション・ユニット３４５は、連続的に、１つまたは複数のマイグレーション（例えば、マルチスレッド・マイグレーション・ユニット３４５と並行に）実行し、実際のファイルコンテンツのデータを第１のストレージ装置３００のストレージ・ユニット３２０にマイグレーションし得る。
【０２４６】
代替的に、もちろん、仮想化フェーズの完了前であっても、マイグレーション・フェーズを開始することが可能である。次いで、クローリング・ユニット３４３または仮想化ユニット３４４も、すでに仮想化を行っている間にマイグレーション・ジョブを、例えば、上で説明されているステップＳ１００７、Ｓ１００８、Ｓ１００９、Ｓ１０１０、Ｓ１１１２、Ｓ１１１３、またはＳ１１１４のうちの１つのステップと一緒に、またはその後に作成し得る。
【０２４７】
図６に関連して上で説明されているように、第２のストレージ装置４００によって処理されるファイル・システム（複数可）へのユーザ・アクセスは、第２のストレージ装置４００を相互接続し（ステップＳ２）、オンデマンド仮想化を有効化した（ステップＳ７）ときのほぼ直後に第１のストレージ装置３００を通じて間接的に可能にされ（ステップＳ８）、オンデマンド仮想化は、図２０から２２Ｂに従って実行され得る。次いで、仮想化されたオブジェクトへのユーザ・アクセスは、図２５Ａから２５Ｈに関連して次に説明されているように可能にされ得る。
【０２４８】
図２５Ａは、仮想化されたファイルへの書き込みアクセスに対するクライアント１００と、第１のファイル・システム管理ユニット３１０と、第２のファイル・システム管理ユニット４１０との間の情報交換の図を例示している。第１のファイル・システム管理ユニット３１０においてターゲット・ファイル（例えば、図４のｆｉｌｅ８）に対する書き込み要求が受信されたときに、書き込み要求は、ターゲット・ファイルに対する対応する書き込み要求を第１のファイル・システム管理ユニット３１０から第２のファイル・システム管理ユニット４１０に発行することによって対応する外部リンク・オブジェクト（例えば、図５ＡのＸＬＯ８）を介してパススルーされる。
【０２４９】
第１のファイル・システム管理ユニット３１０において第２のファイル・システム管理ユニット４１０から書き込み確認応答を受信した後に、対応する外部リンク・オブジェクトのメタデータが更新され（例えば、ファイルの長さ、タイム・スタンプ、または書き込み操作によって変更される他のファイル属性を更新することによって）、次いで、クライアント１００に対して書き込み確認応答がなされる。
【０２５０】
図２５Ｂは、仮想化されたファイルへの読み出しアクセスに対するクライアント１００と、第１のファイル・システム管理ユニット３１０と、第２のファイル・システム管理ユニット４１０との間の情報交換の図を例示している。第１のファイル・システム管理ユニット３１０においてターゲット・ファイル（例えば、図４のｆｉｌｅ８）に対する読み出し要求が受信されたときに、読み出し要求は、ターゲット・ファイルに対する対応する読み出し要求を第１のファイル・システム管理ユニット３１０から第２のファイル・システム管理ユニット４１０に発行することによって対応する外部リンク・オブジェクト（例えば、図５ＡのＸＬＯ８）を介してパススルーされる。
【０２５１】
第１のファイル・システム管理ユニット３１０において第２のファイル・システム管理ユニット４１０から読み出し応答（読み出しデータを含む）を受信した後に、読み出し要求に応答して受信された読み出しデータがクライアント１００に転送される。
【０２５２】
図２５Ｃは、仮想化されたファイルまたはディレクトリへの属性アクセスに対するクライアント１００と、第１のファイル・システム管理ユニット３１０と、第２のファイル・システム管理ユニット４１０との間の情報交換の図を例示している。第１のファイル・システム管理ユニット３１０においてターゲット・ファイル（例えば、図４のｆｉｌｅ８）に対する属性読み出し要求が受信されたときに、対応する属性は、対応する外部リンク・オブジェクト（例えば、図５ＡのＸＬＯ８）からローカルで読み出され、要求された属性は、第２のファイル・システム管理ユニット４１０との通信から遅延なくクライアントの属性読み出し要求に応答してクライアント１００に効率的に、都合よく返される。
【０２５３】
ディレクトリについては、属性読み出し要求は、ディレクトリ・メタデータから対応する属性を読み出すことによって第１のファイル・システム管理ユニット３１０においてローカルで同様に処理され、読み出された属性は、第２のファイル・システム管理ユニット４１０との通信から遅延なくクライアントの属性読み出し要求に応答してクライアント１００に効率的に、都合よく返される。
【０２５４】
ディレクトリのリンク・カウントに関する問い合わせがある場合、第１のファイル・システム管理ユニット３１０は、第１のファイル・システム管理ユニット３１０によって管理されるようなファイル・システム上の対応するディレクトリの実際のリンク・カウントを返さず、上で説明されているように実リンク・カウントとフェイク・リンク・カウントとの総和を返すことによって第２のファイル・システム管理ユニット４１０によって管理されるようなファイル・システム上の対応するディレクトリの実際のリンク・カウントを返す。
【０２５５】
図２５Ｄは、仮想化されたファイルを削除することに対するクライアント１００と、第１のファイル・システム管理ユニット３１０と、第２のファイル・システム管理ユニット４１０との間の情報交換の図を例示している。第１のファイル・システム管理ユニット３１０においてターゲット・ファイル（例えば、図４のｆｉｌｅ８）に対する削除要求が受信されたときに、削除要求は、ターゲット・ファイルに対する対応する削除要求を第１のファイル・システム管理ユニット３１０から第２のファイル・システム管理ユニット４１０に発行することによって対応する外部リンク・オブジェクト（例えば、図５ＡのＸＬＯ８）を介してパススルーされる。
【０２５６】
第２のファイル・システム管理ユニット４１０によりターゲット・ファイル（例えば、ｆｉｌｅ８）を削除し、第１のファイル・システム管理ユニット３１０において第２のファイル・システム管理ユニット４１０から削除確認応答を受信した後に、対応する外部リンク・オブジェクト（例えば、ＸＬＯ８）が削除され、仮想化管理情報テーブル３４１内の対応するエントリは、削除されたファイルに対するマイグレーション・ジョブの作成を回避するために取り除かれ、次いで、クライアント１００に対して、ターゲット・ファイルの削除の確認応答がなされる。
【０２５７】
図２５Ｅは、ファイル作成に対するクライアント１００と、第１のファイル・システム管理ユニット３１０と、第２のファイル・システム管理ユニット４１０との間の情報交換の図を例示している。ターゲット・パス・ロケーション内に新規ファイルを作成するために、第１のファイル・システム管理ユニット３１０においてファイル作成要求が受信されたときに、対応する新規外部リンク・オブジェクトが、ターゲット・パス・ロケーションに対応するローカル・パス内に作成され、ファイル作成要求は、ターゲット・パス・ロケーション内のターゲット・ファイルに対する対応するファイル作成要求を第１のファイル・システム管理ユニット３１０から第２のファイル・システム管理ユニット４１０に発行することによってパススルーされる。
【０２５８】
ターゲット・パス・ロケーションに対応するリモート・パス内に新規ファイルを作成し、第１のファイル・システム管理ユニット３１０において第２のファイル・システム管理ユニット４１０からファイル作成確認応答を受信した後に（および潜在的に、対応する外部リンク・オブジェクトのメタデータを更新した後に）クライアント１００に対して、ターゲット・ファイルのファイル作成の確認応答がなされる。
【０２５９】
図２５Ｆは、属性を変更することに対するクライアント１００と、第１のファイル・システム管理ユニット３１０と、第２のファイル・システム管理ユニット４１０との間の情報交換の図を例示している。第１のファイル・システム管理ユニット３１０においてターゲット・ファイル（例えば、図４のｆｉｌｅ８）に対する属性変更要求が受信されたときに、属性変更要求は、対応する外部リンク・オブジェクト（例えば、図５ＡのＸＬＯ８）における属性が属性変更要求に従って変更されるという点において最初に実行され、次いで、属性変更要求は、ターゲット・ファイルに対する対応する属性変更要求を第１のファイル・システム管理ユニット３１０から第２のファイル・システム管理ユニット４１０に発行することによって対応する外部リンク・オブジェクト（例えば、ＸＬＯ８）を介してパススルーされる。
【０２６０】
第２のファイル・システム管理ユニット４１０によりターゲット・ファイルの属性を変更し、第１のファイル・システム管理ユニット３１０において第２のファイル・システム管理ユニット４１０から属性変更確認応答を受信した後に、クライアント１００に対して、属性変更の確認応答がなされる。同様に、第１のファイル・システム管理ユニット３０１においてターゲット・ディレクトリに対する属性変更要求を受信したときに、仮想化されたディレクトリのディレクトリ・メタデータが、要求に従って属性を変更するように更新され、次いで、属性変更要求は、第２のファイル・システム管理ユニット４１０に転送される。
【０２６１】
図２５Ｇは、ディレクトリ作成に対するクライアント１００と、第１のファイル・システム管理ユニット３１０と、第２のファイル・システム管理ユニット４１０との間の情報交換の図を例示している。ターゲット・パス・ロケーション内に新規の空のディレクトリを作成するために、第１のファイル・システム管理ユニット３１０においてディレクトリ作成要求が受信されたときに、対応する新規の空のディレクトリおよびそのディレクトリ・メタデータが、ターゲット・パス・ロケーションに対応するローカル・パス内に作成され、新規ディレクトリは、ＣＯＭＰＬＥＴＥであるものとして示され、ディレクトリ作成要求は、ターゲット・パス・ロケーション内のターゲット・ディレクトリに対する対応するディレクトリ作成要求を第１のファイル・システム管理ユニット３１０から第２のファイル・システム管理ユニット４１０に発行することによってパススルーされる。
【０２６２】
ターゲット・パス・ロケーションに対応する第２のファイル・システム管理ユニット４１０によって管理されるファイル・システムのリモート・パス内に新規の空のディレクトリを作成し、第１のファイル・システム管理ユニット３１０において第２のファイル・システム管理ユニット４１０からディレクトリ作成確認応答を受信した後に（および潜在的に、対応するディレクトリ・メタデータのメタデータを更新した後に）クライアント１００に対して、ターゲット・ディレクトリのディレクトリ作成の確認応答がなされる。
【０２６３】
図２５Ｈは、ディレクトリ名前変更に対するクライアント１００と、第１のファイル・システム管理ユニット３１０と、第２のファイル・システム管理ユニット４１０との間の情報交換の図を例示している。既存のディレクトリの名前を変更するために、第１のファイル・システム管理ユニット３１０においてディレクトリ名前変更要求（ディレクトリの名前および／またはパス・ロケーションを変更する）が受信されたときに、対応するディレクトリは、第１のファイル・システム管理ユニット３１０によって管理されるようなファイル・システム内でディレクトリ名前変更要求に従って名前を変更され、ディレクトリ名前変更要求は、ターゲット・ディレクトリに対する対応するディレクトリ名前変更要求を第１のファイル・システム管理ユニット３１０から第２のファイル・システム管理ユニット４１０に発行することによってパススルーされる。
【０２６４】
第２のファイル・システム管理ユニット４１０によって管理されるようなファイル・システム内でディレクトリ名前変更要求に従ってターゲット・ディレクトリの名前を変更した後、また第２のファイル・システム管理ユニット４１０から第１のファイル・システム管理ユニット３１０において名前変更確認応答を受信した後に、クライアント１００に対して、ターゲット・ディレクトリのディレクトリ名前変更の確認応答がなされる。
【０２６５】
上述の実施形態の構造の特徴、コンポーネント、および特定の詳細は、それぞれのアプリケーションに合わせて最適化されたさらなる実施形態を形成するように交換されるか、または組み合わされ得る。これらの修正が、当業者にとって容易にはっきり理解できるものである限り、それらは、本発明の説明を簡潔にするために、可能なあらゆる組合せを明示的に指定することなく上記の説明によって暗黙のうちに開示されるものとする。
【図１Ａ】
2016527617.tif 000003
【図１Ｂ】
2016527617.tif 000004
【図１Ｃ】
2016527617.tif 000005
【図１Ｄ】
2016527617.tif 000006
【図２】
2016527617.tif 000007
【図３】
2016527617.tif 000008
【図４】
2016527617.tif 000009
【図５Ａ】
2016527617.tif 000010
【図５Ｂ】
2016527617.tif 000011
【図５Ｃ】
2016527617.tif 000012
【図６】
2016527617.tif 000013
【図７】
2016527617.tif 000014
【図８】
2016527617.tif 000015
【図９】
2016527617.tif 000016
【図１０】
2016527617.tif 000017
【図１１】
2016527617.tif 000018
【図１２】
2016527617.tif 000019
【図１３】
2016527617.tif 000020
【図１４】
2016527617.tif 000021
【図１５】
2016527617.tif 000022
【図１６】
2016527617.tif 000023
【図１７Ａ】
2016527617.tif 000024
【図１７Ｂ】
2016527617.tif 000025
【図１８】
2016527617.tif 000026
【図１９】
2016527617.tif 000027
【図２０】
2016527617.tif 000028
【図２１】
2016527617.tif 000029
【図２２Ａ】
2016527617.tif 000030
【図２２Ｂ】
2016527617.tif 000031
【図２３】
2016527617.tif 000032
【図２４】
2016527617.tif 000033
【図２５Ａ】
2016527617.tif 000034
【図２５Ｂ】
2016527617.tif 000035
【図２５Ｃ】
2016527617.tif 000036
【図２５Ｄ】
2016527617.tif 000037
【図２５Ｅ】
2016527617.tif 000038
【図２５Ｆ】
2016527617.tif 000039
【図２５Ｇ】
2016527617.tif 000040
【図２５Ｈ】
2016527617.tif 000041
【手続補正書】
【提出日】平成28年2月23日(2016.2.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータと第２のファイル・システムを管理する第２の装置とに接続される第１の装置であって、
前記コンピュータと前記第２の装置とに接続される通信手段と、
第１のファイル・システムを管理し、前記第２のファイル・システムの第２の構造情報に基づき前記第１のファイル・システムの第１の構造情報を作成する制御手段と
を備え、
前記第２の構造情報は、前記第２のファイル・システム内に存在する複数のファイル・システム・オブジェクト間でリンクし、前記第２の装置から受信された情報であり、
前記第１の構造情報は、前記第２のファイル・システム内に存在する前記複数のファイル・システム・オブジェクトを仮想化する複数のファイル・システム・オブジェクト間でリンクし、
前記第１の構造情報の作成中に、前記第１のファイル・システムでのファイル・システム・オブジェクトを修正する要求を前記コンピュータから受信した場合、前記制御手段は、前記第２の構造情報のファイル・システム・オブジェクトを更新するためと、前記第１の構造情報のファイル・システム・オブジェクトの少なくともメタデータを更新するために、前記第２の装置と通信し、
前記第２の構造情報の前記ファイル・システム・オブジェクトは、前記要求されたファイル・システム・オブジェクトである要求オブジェクトに対応し、
前記第１の構造情報の前記ファイル・システム・オブジェクトは、前記要求オブジェクトに対応し、
前記第２の構造情報の前記ファイル・システム・オブジェクトは、前記第１の構造情報の前記ファイル・システム・オブジェクトに対応する、
装置。
【請求項２】
前記第１の構造情報の作成中、前記制御手段は、
前記第１のファイル・システム内に仮想化されたファイル・システム・オブジェクトを作成し、前記第１のファイル・システムの各仮想化されたファイル・システム・オブジェクトは、前記第２のファイル・システム内に存在するそれぞれのファイル・システム・オブジェクトに関連付けられ、
前記第１のファイル・システム内に存在する仮想化されたファイル・システム・オブジェクトを示す仮想化管理情報を管理する、
請求項１に記載の装置。
【請求項３】
前記要求を受信したときに、前記制御手段は、
前記要求オブジェクトに対応する、前記第１の構造情報のそれぞれの仮想化されたファイル・システム・オブジェクトが、前記第１のファイル・システム内に存在するかどうかを判断し、
その判断の結果が否定の場合、前記第１の構造情報の前記それぞれの仮想化されたファイル・システム・オブジェクトを前記第１のファイル・システム内に作成する、
請求項１又は２に記載の装置。
【請求項４】
前記受信された要求が、ディレクトリを修正する要求である場合、前記制御手段は、
前記要求されたディレクトリに対応する、前記第１の構造情報のそれぞれの仮想化されたファイル・システム・オブジェクトが、前記第１のファイル・システム内に存在しないと判断された場合、前記要求されたディレクトリに対応する、前記第１の構造情報の前記それぞれの仮想化されたファイル・システム・オブジェクトとして、それぞれのディレクトリを、前記第１のファイル・システム内に作成し、
前記要求されたディレクトリに対応する、前記第２の構造情報のそれぞれのディレクトリ、のメタデータを、前記第１のファイル・システム内の前記作成されたディレクトリのメタデータとして格納する、
請求項１乃至３のうちのいずれか１項に記載の装置。
【請求項５】
前記受信された要求が、ディレクトリを修正する第１のディレクトリ修正要求である場合、前記制御手段は、
前記第１のディレクトリ修正要求で指定されたディレクトリに対応する、前記第２の構造情報のそれぞれのディレクトリを修正するために、前記第１のディレクトリ修正要求に対応しディレクトリを修正する要求である第２のディレクトリ修正要求を、前記第２の装置に送信し、
前記第１のディレクトリ修正要求で指定されたディレクトリに対応する、前記第１の構造情報のそれぞれの仮想化されたファイル・システム・オブジェクトである、前記第１のファイル・システム内のそれぞれのディレクトリを、修正する、
請求項１乃至４のうちのいずれか１項に記載の装置。
【請求項６】
前記受信された要求が、ディレクトリの名前を変更する第１のリネーム要求である場合、前記制御手段は、
前記第１のリネーム要求で指定されたディレクトリに対応する、前記第２の構造情報のそれぞれのディレクトリの名前を変更するために、前記第１のリネーム要求に対応しディレクトリの名前を変更する要求である第２のリネーム要求を、前記第２の装置に送信し、
前記第１のリネーム要求で指定されたディレクトリに対応する、前記第１の構造情報のそれぞれの仮想化されたファイル・システム・オブジェクトである、前記第１のファイル・システム内のそれぞれのディレクトリ、の名前を変更する、
請求項１乃至５のうちのいずれか１項に記載の装置。
【請求項７】
前記受信された要求が、ファイルを修正する要求である場合、前記制御手段は、
前記要求されたファイルに対応する、前記第１の構造情報のそれぞれの仮想化されたファイル・システム・オブジェクトが、前記第１のファイル・システム内に存在しないと判断された場合、前記要求されたファイルに対応する、前記第１の構造情報の前記それぞれの仮想化されたファイル・システム・オブジェクトとして、それぞれの外部リンク・オブジェクトを、前記第１のファイル・システム内に作成し、
前記要求されたファイルに対応する、前記第２の構造情報のそれぞれのファイル、のメタデータを、前記第１のファイル・システム内の前記作成された外部リンク・オブジェクトのメタデータとして格納する、
請求項１乃至６のうちのいずれか１項に記載の装置。
【請求項８】
前記受信された要求が、ファイルを修正する第１のファイル修正要求である場合、前記制御手段は、
前記第１のファイル修正要求で指定されたファイルに対応する、前記第２の構造情報のそれぞれのファイルを修正するために、前記第１のファイル修正要求に対応しファイルを修正する要求である第２のファイル修正要求を、前記第２の装置に送信し、
前記第１のファイル修正要求で指定されたファイルに対応する、前記第１の構造情報のそれぞれの仮想化されたファイル・システム・オブジェクトである、前記第１のファイル・システム内のそれぞれの外部リンク・オブジェクト、のメタデータを、少なくとも更新する、
請求項１乃至７のうちのいずれか１項に記載の装置。
【請求項９】
前記受信された要求が、ファイルに書き込みをする要求である第１のファイル書込み要求の場合、前記制御手段は、
前記第１のファイル書込み要求で指定されたファイルに対応する、前記第２の構造情報のそれぞれのファイルに書き込みをするために、前記第１のファイル書込み要求に対応しファイルに書き込みをする要求である第２のファイル書込み要求を、前記第２の装置に送信し、
前記第１のファイル書込み要求で指定されたファイルに対応する、前記第１の構造情報のそれぞれの仮想化されたファイル・システム・オブジェクトである、前記第１のファイル・システム内のそれぞれの外部リンク・オブジェクト、のメタデータを、少なくとも更新する、
請求項１乃至８のうちのいずれか１項に記載の装置。
【請求項１０】
前記受信された要求が、ファイルを削除する第１のファイル削除要求である場合、前記制御手段は、
前記第１のファイル削除要求で指定されたファイルに対応する、前記第２の構造情報のそれぞれのファイルを削除するために、前記第１のファイル削除要求に対応しファイルを削除する要求である第２のファイル削除要求を、前記第２の装置に送信し、
前記第１のファイル削除要求で指定されたファイルに対応する、前記第１の構造情報の前記それぞれの仮想化されたファイル・システム・オブジェクトである、前記第１のファイル・システム内のそれぞれの外部リンク・オブジェクトを、削除する、
請求項１乃至９のうちのいずれか１項に記載の装置。
【請求項１１】
前記受信された要求が、ファイルの属性を変更する第１の属性変更要求である場合、前記制御手段は、
前記第１の属性変更要求で指定されたファイルに対応する、前記第２の構造情報のそれぞれのファイルの属性を変更するために、前記第１の属性変更要求に対応しファイルの属性を変更する要求である第２の属性変更要求を、前記第２の装置に送信し、
前記第１の属性変更要求で指定されたファイルに対応する、前記第１の構造情報のそれぞれの仮想化されたファイル・システム・オブジェクトである、前記第１のファイル・システム内のそれぞれの外部リンク・オブジェクト、の属性を変更する、
請求項１乃至１０のうちのいずれか１項に記載の装置。
【請求項１２】
前記第１の構造情報の作成中、ファイルを作成する要求である第１のファイル作成要求を受信した場合、前記制御手段は、
前記第１のファイル作成要求で指定されたファイルを前記第２のファイル・システムの前記第２の構造情報に作成するために、前記第１のファイル作成要求に対応しファイルを作成する要求である第２のファイル作成要求を、前記第２の装置に送信し、
前記第２のファイル・システムの前記第２の構造情報における前記作成されたファイルに対応する、前記第１の構造情報の前記それぞれの仮想化されたファイル・システム・オブジェクトとして、それぞれの外部リンク・オブジェクトを、前記第１のファイル・システム内に作成する、
請求項１乃至１１のうちのいずれか１項に記載の装置。
【請求項１３】
前記第１の構造情報の作成中、ディレクトリを作成する要求である第１のディレクトリ作成要求を受信した場合、前記制御手段は、
前記第１のディレクトリ作成要求で指定されたディレクトリを前記第２のファイル・システムの前記第２の構造情報に作成するために、前記第１のディレクトリ作成要求に対応しディレクトリを作成する要求である第２のディレクトリ作成要求を、前記第２の装置に送信し、
前記第２のファイル・システムの前記第２の構造情報における前記作成されたディレクトリに対応する、前記第１の構造情報の前記それぞれの仮想化されたファイル・システム・オブジェクトとして、それぞれのディレクトリを、前記第１のファイル・システム内に作成し、
前記第１のディレクトリ作成要求で指定されたディレクトリに対応する、前記第２の構造情報の前記それぞれのディレクトリ、のメタデータを、前記第１のファイル・システム内の前記作成されたディレクトリのメタデータとして格納する、
請求項１乃至１２のうちのいずれ１項に記載の装置。
【請求項１４】
第１のファイル・システムを管理する第１の装置と、
第２のファイル・システムを管理する第２の装置と
を備え、
前記１の装置は、請求項１乃至１３のうちのいずれか１項に記載された第１の装置である、
データ・ストレージ・システム。
【請求項１５】
コンピュータと第２のファイル・システムを管理する第２の装置とに接続され第１のファイル・システムを管理する第１の装置に、
前記第２の装置から受信された、前記第２のファイル・システムの第２の構造情報に基づき、前記第１のファイル・システムの第１の構造情報を作成することと、
前記第２の構造情報は、前記第２のファイル・システム内に存在する複数のファイル・システム・オブジェクト間でリンクし、
前記第１の構造情報は、前記第２のファイル・システム内に存在する前記複数のファイル・システム・オブジェクトを仮想化する複数のファイル・システム・オブジェクト間でリンクし、
前記第１の構造情報の作成中に、前記第１のファイル・システムでのファイル・システム・オブジェクトを修正する要求を前記コンピュータから受信した場合に、前記第２の構造情報のファイル・システム・オブジェクトを更新するためと、前記第１の構造情報のファイル・システム・オブジェクトの少なくともメタデータを更新するために、前記第２の装置と通信すること
とを、前記第１の装置に実行させ、
前記第２の構造情報の前記ファイル・システム・オブジェクトは、前記要求されたファイル・システム・オブジェクトである要求オブジェクトに対応し、
前記第１の構造情報の前記ファイル・システム・オブジェクトは、前記要求オブジェクトに対応し、
前記第２の構造情報の前記ファイル・システム・オブジェクトは、前記第１の構造情報の前記ファイル・システム・オブジェクトに対応する、
コンピュータプログラム。
【国際調査報告】
2016527617.tif 000042
2016527617.tif 000043