(57)【要約】      （修正有）【課題】非常に大型のファイルのためのＨＳＭ双方向オーファン（孤立）照合を提供する。【解決手段】ＨＳＭアプリケーションは移行ファイルごとに１６進数列である移行ファイル識別子を生成する。ファイル・システムは移行ファイル識別子のリストをファイル・システム・キュー２１０に設け、ストレージ・レポジトリ・サーバーは、移行ファイル識別子のリストをサーバー・オブジェクト・キュー２２０に設ける。サーバー・オブジェクト・キュー２２０要素の移行ファイル識別子をファイル・システム・キュー２１０要素の移行ファイル識別子と比較する（２４０ないし２５０）ことによって、ファイル・システム・オーファンおよびサーバー・オブジェクト・オーファンを識別する。【選択図】図５
2010092464.tif 000002
【特許請求の範囲】
【請求項１】
階層ストレージ管理（ＨＳＭ）制御ストレージ環境で双方向オーファン照合を行う方法であって、
ネットワークで結合されたファイル・システムおよびストレージ・レポジトリ・サーバーを含む、分散されたストレージ・システム上でＨＳＭアプリケーション・スイートを動作させるステップと、
前記ファイル・システムから前記ストレージ・レポジトリ・サーバーに前記ＨＳＭアプリケーション・スイートでもって複数のデータ・ファイルを移行させるステップと、
移行時に複数のデータ・ファイルごとに特有の移行ファイル識別子を発生するように、かつ前記特有の移行ファイル識別子が前記ファイル・システム上のスタブ・ファイルに、そして前記ストレージ・レポジトリ・サーバー上の移行データ・ファイルにストアされるように、前記ＨＳＭアプリケーション・スイーツでもってファイル・インデクシング・プロセスを行うステップと、
前記ストレージ・レポジトリ・サーバー上にストアされた移行データ・ファイルのリストをサーバー・オブジェクト・キューに設けるステップであって、前記サーバー・オブジェクト・キューは前記移行データ・ファイルの特有の移行ファイル識別子により整理される、前記サーバー・オブジェクト・キューに設けるステップと、
前記ファイル・システム上にストアされたスタブ・ファイルのリストをファイル・システム・キューに設けるステップであって、前記ファイル・システム・キューは前記スタブ・ファイルの特有の移行ファイル識別子により整理される、前記ファイル・システム・キューに設けるステップと、
サーバー・オブジェクト・キュー要素の前記特有の移行ファイル識別子を、ファイル・システム・キュー要素の前記特有の移行ファイル識別子と比較する、前記サーバー・オブジェクト・キューおよび前記ファイル・システム・キュー上の単一パスのオーファン識別マッチング・プロセスを実行することによって、ファイル・システム・オーファンおよびサーバー・オブジェクト・オーファンを識別するステップと、
を含む前記方法。
【請求項２】
前記のファイル・システム・オーファンおよびサーバー・オブジェクト・オーファンを識別するステップが、
両方のキューが空であるなら、前記識別マッチング・プロセスを完遂するステップと、
前記サーバー・オブジェクト・キューからのトップの要素の特有の移行ファイル識別子が前記ファイル・システム・キューからのトップの要素の特有の移行ファイル識別子とマッチするか判定するステップと、
両方のキューからのトップの要素の特有の移行ファイル識別子がマッチすると判定するのに応答して、両方のキューからのトップの要素を除去し、残りのキューの要素のために前記識別子マッチング・プロセスを反復するステップと、
前記ファイル・システム・キューからのトップの要素が、前記サーバー・オブジェクト・キューからのトップの要素よりも小さい特有の移行ファイル識別子を含むか判定するステップと、
前記ファイル・システム・キューが、より小さい特有の移行ファイル識別子を含むと判定するのに応答して、
前記ファイル・システム・キューのトップの要素を、ファイル・システム・オーファンとして識別し、
前記ファイル・システム・キューから前記トップの要素を除去し、これによって前記ファイル・システム・キュー中の次の要素を前記ファイル・システム・キューの前記トップの要素とするようにし、そして
残りのキューの要素のために前記識別マッチング・プロセスを反復するようにするステップと、
前記ファイル・システム・キューが、より小さい特有のファイル・システムを含まないと判定するのに応答して、
前記サーバー・オブジェクト・キューのトップの要素をサーバー・オブジェクト・オーファンとして識別し、
前記サーバー・オブジェクト・システム・キューからトップの要素を除去し、これにより前記サーバー・オブジェクト・キュー内の次の要素を前記ファイル・システム・キューの前記トップの要素とし、そして
残りのキュー要素のために前記識別マッチング・プロセスを反復するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記特有の移行ファイル識別子が１６進数列である、請求項１に記載の方法。
【請求項４】
前記のサーバー・オブジェクト・キューに設けるステップと、前記のファイル・システム・キューに設けるステップとが並行して実行される、請求項１に記載の方法。
【請求項５】
前記単一パスのオーファン識別マッチング・プロセスが、前記キューの順次の範囲をパーティショニングし、かつ前記の範囲を異なるスレッドに割当てることによって並行して行われる、請求項１に記載の方法。
【請求項６】
復元動作が１個もしくはそれ以上のオーファンを識別するのに応答して起動される、請求項１に記載の方法。
【請求項７】
少なくとも１個のプロセッサと、
階層ストレージ管理（ＨＳＭ）制御ストレージ環境で双方向オーファン照合を行うために前記少なくとも１個のプロセッサでもって動作可能な命令をストアする少なくとも１個のメモリであって、前記命令は、
ネットワークで結合されたファイル・システムおよびストレージ・レポジトリ・サーバーを含む、分散されたストレージ・システム上でＨＳＭアプリケーション・スイートを動作させるステップと、
前記ファイル・システムから前記ストレージ・レポジトリ・サーバーに前記ＨＳＭアプリケーション・スイートでもって複数のデータ・ファイルを移行させるステップと、
移行時に複数のデータ・ファイルごとに特有の移行ファイル識別子を発生するように、かつ前記特有の移行ファイル識別子が前記ファイル・システム上のスタブ・ファイルに、そして前記ストレージ・レポジトリ・サーバー上の移行データ・ファイルにストアされるように、前記ＨＳＭアプリケーション・スイーツでもってファイル・インデクシング・プロセスを行うステップと、
前記ストレージ・レポジトリ・サーバー上にストアされた移行データ・ファイルのリストをサーバー・オブジェクト・キューに設けるステップであって、前記サーバー・オブジェクト・キューは前記移行データ・ファイルの特有の移行ファイル識別子により整理される、前記サーバー・オブジェクト・キューに設けるステップと、
前記ファイル・システム上にストアされたスタブ・ファイルのリストをファイル・システム・キューに設けるステップであって、前記ファイル・システム・キューは前記スタブ・ファイルの特有の移行ファイル識別子により整理される、前記ファイル・システム・キューに設けるステップと、
サーバー・オブジェクト・キュー要素の前記特有の移行ファイル識別子を、ファイル・システム・キュー要素の前記特有の移行ファイル識別子と比較する、前記サーバー・オブジェクト・キューおよび前記ファイル・システム・キュー上の単一パスのオーファン識別マッチング・プロセスを実行することによって、ファイル・システム・オーファンおよびサーバー・オブジェクト・オーファンを識別するステップと、
を行うように実行される命令である、前記メモリと、
を含む前記システム。
【請求項８】
階層ストレージ管理（ＨＳＭ）制御ストレージ環境で双方向オーファン照合を行うためのコンピュータ・プログラムであって、
ネットワークで結合されたファイル・システムおよびストレージ・レポジトリ・サーバーを含む、分散されたストレージ・システム上でＨＳＭアプリケーション・スイートを動作させるステップと、
前記ファイル・システムから前記ストレージ・レポジトリ・サーバーに前記ＨＳＭアプリケーション・スイートでもって複数のデータ・ファイルを移行させるステップと、
移行時に複数のデータ・ファイルごとに特有の移行ファイル識別子を発生するように、かつ前記特有の移行ファイル識別子が前記ファイル・システム上のスタブ・ファイルに、そして前記ストレージ・レポジトリ・サーバー上の移行データ・ファイルにストアされるように、前記ＨＳＭアプリケーション・スイーツでもってファイル・インデクシング・プロセスを行うステップと、
前記ストレージ・レポジトリ・サーバー上にストアされた移行データ・ファイルのリストをサーバー・オブジェクト・キューに設けるステップであって、前記サーバー・オブジェクト・キューは前記移行データ・ファイルの特有の移行ファイル識別子により整理される、前記サーバー・オブジェクト・キューに設けるステップと、
前記ファイル・システム上にストアされたスタブ・ファイルのリストをファイル・システム・キューに設けるステップであって、前記ファイル・システム・キューは前記スタブ・ファイルの特有の移行ファイル識別子により整理される、前記ファイル・システム・キューに設けるステップと、
サーバー・オブジェクト・キュー要素の前記特有の移行ファイル識別子を、ファイル・システム・キュー要素の前記特有の移行ファイル識別子と比較する、前記サーバー・オブジェクト・キューおよび前記ファイル・システム・キュー上の単一パスのオーファン識別マッチング・プロセスを実行することによって、ファイル・システム・オーファンおよびサーバー・オブジェクト・オーファンを識別するステップと、
をコンピュータに実行させる前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータのストレージおよび管理に関する。より具体的には、階層ストレージ管理（ＨＳＭ、Hierarchical StorageManagement）により制御されたストレージ環境など、非常に大きなファイル・システムのためのオーファン照合（reconciliation）方法を提供することに関する。
【背景技術】
【０００２】
ＨＳＭアプリケーションが、データの効果的なストレージを管理するため、そしてオンライン・ストレージおよび種々の形式のオフライン・ストレージなど、ストレージ・レポジトリにおけるストレージ・デバイスの階層相互間でファイルを移行(migrate)するために使用される。ＨＳＭ管理される複数のファイルは、ペアにされるオブジェクトであり、ローカル・スタブ・ファイルはそのファイル・コンテンツを含むサーバー上の関連付けられたオブジェクトとペアにされる。ローカル・スタブ・ファイルは、その元のストレージ・ロケーションから異なるストレージ・ロケーションにそのファイルが移行された後、その移行されたファイルの代わりに残る。
【０００３】
そのスタブ・ファイルは、その移行ファイル・コンテンツをレポジトリ・ストレージ・ロケーション中に位置決めするのに使用されるファイル属性および情報を含む。ＨＳＭアプリケーションは 、移行ファイル・コンテンツが新しいレポジトリ・ストレージ・ロケーションに異動されるイベントにおいてスタブ・ファイルが更新されるのを維持する役割がある。
【０００４】
このファイル・システムはオリジナルのファイル・コンテンツをアクセスするのにスタブ・ファイルを使用し、そのファイルをアクセスするユーザーおよびアプリケーションにトランスペアレントにそのファイル・コンテンツの後続の移行(migration)および事前移行(premigration)を維持する。それは移行ファイルをアクセスするためのリクエストを処理するＨＳＭアプリケーションのジョブである。そのＨＳＭアプリケーションは、ストレージ・レポジトリからの移行ファイル・コンテンツを呼び出してその初期のロケーションに配布するために、スタブ・ファイルにストアされたポインタおよび情報を使用する。
【０００５】
システム・クラッシュまたはシステム構成変更の後のデータ損失の結果として、時間が経過するうちにしばしばローカル・スタブおよびその関連するサーバー・オブジェクトのペアリングが壊れて、ファイル・システム・クライアント・オーファン（孤立）やサーバー・オブジェクト・オーファンが生じるかもしれない。サーバー・オーファンはＨＳＭクライアント側のファイル・システムにおけるスタブ・ファイルの削除によって生じ、その結果、ファイル・システムＨＳＭクライアントによりもはや参照されないサーバー・オブジェクトとなる。ファイル・システム・クライアント・オーファンはサーバー側の対応するオブジェクトの削除によって生じ、その結果、スタブ・ファイルが、関連するサーバー・オブジェクトをもはや持たなくなる。
【０００６】
ストレージ・システムはデータ損失を減らすためにファイル・システムのデータ・バックアップを使用するが、バックアップからのデータ復元はファイル・システムの崩壊をなくすのではない。このファイル・システムのコンテンツはバックアップ後、復元前の期間に殆どいつも変化し、その結果、ＨＳＭファイル・システム中で不一致が生じる。
【０００７】
ＨＳＭにより制御されたストレージ環境はファイル・システムの整合性を確保するために周期的なシステム・チェックと日常的な保守を必要とする。システム・クラッシュの後あるいはファイル・システムの任意の部分がバックアップから復元されたとき、 ファイル・システムはデータ整合性のために検証されなければならない。各スタブ・ファイルは有効なサーバー・オブジェクトをポイントするように検証される必要がある。そして各サーバー・オブジェクトはそれが対応するスタブ・ファイルを有するか検証される必要がある。クライアントおよびサーバーのオーファンの両方をチェックすることは双方向オーファン・チェックと呼ばれる。オーファンのサーバー・オブジェクトをアクセスするためのポインタ情報をファイル・システムが含まないため、サーバー・オーファンはストレージ空間を無駄にしないよう除去されるべきである。同様に、もしローカルのスタブ・ファイルに関連するサーバー・オブジェクトがないなら、そのスタブ・ファイルはクライアント・オーファンとしてフラグを立てるべきである。オーファン・チェッキング・プロセスは非常に時間がかかり、かなりのシステム資源を必要とする。
【０００８】
長く実行するファイル・システム走査を避けたいという意図でもって、現在あるシステムはファイル・システム・クライアント・オーファンおよびサーバー・オーファンの両方をチェックするいろいろな解決策をとっている。幾つかの現在あるシステムでは、クライアント・オーファンおよびサーバー・オーファンが順次識別され、独立のプロセスでオーファンの各クラスを識別する。他の現在あるシステムでは、独立のオーファン識別プロセスが並列に実行され、単一パスのプロセスでなくてもよい。
【０００９】
現在あるシステムにおける他の情報は、ファイル・オブジェクト・ポインタの全体のリストをキャッシングすることを必要とする。ファイル・システム中のファイルの数が大きくなるにつれて、比例してキャッシュを管理するのに必要なシステム資源およびキャッシュのサイズも大きくなり、何億ものファイルを含むファイル・システムには現在あるオーファン・チェッキング・システムを実際には実行不可能にしてしまう。
【００１０】
最後に、現在あるシステムは、オーファン・チェッキング・プロセスにおける初期にオーファンを識別するためにそれらの能力が限られてしまう。初期の識別はその識別されたオーファンに関連する潜在的な復元ステップのためのタスクを並行して実行するのを許容する。現在あるシステムは、オーファンが存在すると判定される前にファイル・オブジェクト・ポインタの全体のリストが処理されることを必要とする。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
この技術分野で必要なことは、サーバー・オーファンおよびファイル・システム・クライアント・オーファンの両方を非常に大型のファイル・システムでも単一のパスで識別する方法である。更に、その識別ルーチンは、ストレージ・レポジトリ情報から発生される移行ファイルのリストに、ファイル・システムから発生された、移行ファイルのリストをマッチングすることができなければならない。但し、各リストは独特の移行ファイル識別子などのフィールドによってソートされる。
【課題を解決するための手段】
【００１２】
本発明の一つの側面は、非常に大型のファイル・システム中でＨＳＭ双方向オーファン照合を行うための新しい独特の動作(operation)を提供し、これによってＨＳＭにより制御されたストレージ環境におけるファイル・システムの整合性（integrity）を維持する技法を提供することである。本発明の一つの実施例は、システムのクラッシュ、システム構成の変更などから生じるかもしれない、ファイル・システムおよびサーバー・オブジェクトのオーファンの両方を識別するための汎用的なメカニズムを含む。この実施例がこの結果を達成するのは、ファイル・システムおよびサーバー・オブジェクトのオーファンの両方を単一パスで識別することによってだけでなく、そのオーファン識別処理が並列処理のためにセグメント化されるのを許容することによってである。この実施例の中での単一パス識別および並列処理は、ファイル・システム情報から発生される移行ファイルのリストをストレージ・レポジトリ情報から発生された移行ファイルのリストにマッチングさせるルーチンを用いることによって可能となる。但し、各リストは独特の移行ファイル識別子に基づいてソートされる。
【００１３】
初期に、ＨＳＭアプリケーションが、ファイル・システム上に存在する、移行ファイル・オブジェクトごとに特有の移行ファイル・オブジェクト識別子を発生し維持する役割がある。この独特の識別子はファイル・システム・スタブ・ファイルおよびストレージ・レポジトリ・サーバー上の移行ファイル・オブジェクトの両方にストアされる。
【００１４】
オーファン識別ルーチンを実行する前に、ＨＳＭアプリケーション・ユーティリティが、ファイル・システム上に存在する移行ファイルのリストを発生するためのファイル・システム・プロセスを呼び出す。このファイル・システムは独特の移行ファイル・オブジェクト識別子によって整理(order)される移行ファイルのリストを生成する。次に、ＨＳＭアプリケーション・ユーティリティはサーバー上の全ての移行オブジェクトのリストを得るためのクエリを備えたサーバー・プロセスを呼び出す。サーバーは独特の移行ファイル・オブジェクト識別子によって整理された移行オブジェクトのリストを生成する。
【００１５】
この２つのリストは、ともに独特の移行ファイル識別子によって昇順でソートされるが、２つの個々のキューの中に置かれ、各リストから第１の要素を読み出すことによって比較される。もしその要素が等しければ、何の動作も必要とされず、そして各リストからの次の要素同志が比較される。もしファイル・システム・リストからの要素がサーバー・オブジェクト・リストからの要素より小さければ、ありそうなファイル・システム・オーファンが識別される。もしサーバー・オブジェクト・リストからの要素がファイル・システム・リストからの要素よりも小さければ、ありそうなサーバー・オーファンが識別される。このように、小さい値を持つ要素がオーファンである。オーファンはフラグを付けることができ、システム内で然るべく処理される。
【００１６】
もしオーファンが識別されるなら、その動作は、前の比較からの大きいほうの要素を他方のリストからの次の要素と比較することにより、もっと多くのオーファンを探し続ける。
【００１７】
この双方向オーファン・チェック・ルーチンは、独特の移行ファイル識別子によって両リストがソートされるが故に並列化されることができる。更に各リストは独特の移行ファイル識別子によってセグメント化されることができ、また種々の範囲の要素が異なるスレッドによって処理されることができる。
【発明を実施するための最良の形態】
【００１８】
非常に大型のファイル・システムのためのＨＳＭ双方向オーファン照合を行うという、ここで開示される動作は、システムのクラッシュまたはシステム構成変化から生じ得るファイル・システム・クライアント・オーファンおよびサーバイ・オブジェクト・オーファンの両方を単一のパスで識別するための汎用のメカニズムを提供する。本発明の一実施例は この結果をファイル・システム・クライアント・オーファンおよびサーバー・オブジェクト・オーファンの両方を単一パス動作で識別することによって達成し、更にそのオーファン識別プロセスが並列処理のためにセグメント化されるのを許容する。この単一パスのオーファン識別および並列処理能力はファイル・システム情報から発生された移行ファイルのリストをストレージ・レポジトリ情報から発生された移行ファイルのリストとマッチさせるルーチンを利用することによって達成される。但し、各リストは特有の移行ファイル識別子に基づいてソートされている。
【００１９】
従ってこの実施例は何億ものファイルを含むファイル・システム中のサーバー・オブジェクト・オーファンおよびファイル・システム・クライアント・オーファンの両方を識別するための高度に拡張可能な手段を提供する。両方のリストが独特の移行ファイル識別子に基づいて両リストが整理されているので 、いずれかの全体のリストをキャッシュしなければならないということもなしに直接に比較することができる。移行(migrate)もしくは事前移行(premigrate)されたファイルが削除されていない元の状態のファイル・システムでは、２つのリスト中のエントリが同一である筈である。従って、ファイル・システム・クライアント・オーファンおよびサーバー・オーファンの両方がそれらのリスト中のギャップを識別することによって単一のパスでもって識別されることができる。
【００２０】
以下の記述および特定の詳細が本発明を完全な理解を提供するために開示されるが、それにもかかわらず本発明の種々の側面がこれらの詳細な説明なしでも実施できる。更に、本発明の一実施例に従ってＨＳＭ移行動作を説明するのにここでの開示全体にわたって以下の注釈が使用されるが、本発明の範囲を制限するつもりはない。
【００２１】
図１を参照すると、データ・ファイル１１０Ａは、ユーザーまたはアプリケーションにより与えられ、かつ移行されていないデータを含むことのできるボリューム１００上にストアされるかもしれない通常のファイルである。データ・ファイルがその元のストレージ・ロケーションからＨＳＭアプリケーションによって移行されるとき、スタブ・ファイルがそのデータ・ファイルの代わりに残される。トランケートされていない移行データ・ファイルは事前移行ファイル(a premigratedfile)とも呼ばれる。
【００２２】
移行ファイルを表す物理ファイルがスタブ・ファイル１１０Ｂである。データ・ファイルがそのデータ・ファイルの元のストレージ・ロケーションから移行されるとき、スタブ・ファイルがその移行データ・ファイルを表すその元のストレージ・ロケーションにストアされる。スタブ・ファイルは移行データ・ファイルが呼び出されるのを可能にする情報の全てもしくは幾つかをストアしていてもよい。移行ファイルを突きとめるのに使用される他の情報が他のデータ構造にストアされてもよいが、スタブ・ファイルは典型的にはそのファイル・システム中のエンティティであり、このエンティティを通じて、元の移行ファイル・コンテンツがユーザーおよびアプリケーションによりアクセスされることができる。 
【００２３】
図２は本発明の一実施例のための例示の動作環境のブロック図を示し、ネットワーク１２０上で動作する階層ストレージ管理（ＨＳＭ）制御環境を表す。このＨＳＭ制御環境は、データ・ファイルがその生成後ストアされるボリューム１００およびストレージ構造１３２を含むファイル・システム１３０と、移行ファイルをストアするためにＨＳＭアプリケーション１５０によって使用されるストレージ・レポジトリ・サーバー１６０とを含む。このストレージ・レポジトリ・サーバー１６０は、そのネットワーク上で接続される複数のストレージ・ディスクもしくは同様なタイプのストレージ・メディア１７０ａ、１７０ｂ、１７０ｃを含むことができるストレージ・レポジトリ１７０をアクセスする。プライマリ・ストレージ・ディスク１７０ａは、移行ファイルに関連する複数のデータ・オブジェクトをストアするボリューム１８０を含む。
【００２４】
図１、図３、図４と組み合わせて図２におけるＨＳＭ制御環境に言及すると、ＨＳＭアプリケーション１５０は、ファイル・システム１３０およびストレージ・レポジトリ・サーバー１６０間のデータ・ファイル（１１０Ａなど）の移行、事前移行および呼び出しの役割がある。このＨＳＭ管理は、各移行ファイルのためにインデックス１５３中に、特有の移行ファイル識別子を生成すること、これによって移行ファイル識別子インデックスと、ストレージ・レポジトリ・ボリューム１８０にストアされた移行ファイル・オブジェクト（例えば１８０Ａ、１８０Ｂ・・・１８０Ｎ）のロケーションをＨＳＭ制御環境にわたって追跡する他の情報とを含むストレージ構造１５２を更新すること、そしてまた移行ファイル・オブジェクトへのポインタ情報を含むスタブ・ファイル（例えば１１０Ｂなど）を生成することを伴う。その実装に依存して、ＨＳＭアプリケーションは、移行ファイル・オブジェクトの追跡をし易くするためにファイル・システム・カタログ１３５中の他の情報をも更新する。更に、ＨＳＭアプリケーションは、データ・ファイル（１１０Ａなど）をストレージ・レポジトリ・サーバー１６０に移行した後、ファイル・システム１３０中のデータ・ファイルをスタブ・ファイル（１１０Ｂなど）に置き換える。
【００２５】
図４は本発明の実装環境の例を示す。本発明の一側面は、ＨＳＭ双方向オーファン・チェックを行うために、ＨＳＭアプリケーション１５０およびその関連するルーチン１５１、１５４、１５５、１５６および１５９を使用することを含む。以下の記述では、説明目的で、本発明を理解するために特定の詳細を開示する。しかし、本発明は種々のステップやコンポーネントを追加したり、省略したり、再構成することで、似たような態様で実施されてもよい。
【００２６】
図４を参照すると、本発明の一実施例では、使用されるコンポーネントが、（ａ）移行ファイル１５１を生成し、管理するため、（ｂ）移行ファイル・リスト・クエリ１５４をストレージ・レポジトリ・サーバー１６０に送るため、（ｃ）移行ファイル・リスト・リクエスト１５５をファイル・システム１３０に送るため、そして（ｄ）各キューからの要素の比較のために使用されるキュー１５７および１５８を管理するための、幾つかのルーチンを含むＨＳＭアプリケーション１５０を含む。
【００２７】
図示したように、ＨＳＭアプリケーション１５０は移行ファイルを生成し管理するためにルーチンおよびデータ構造１５１を含む。本発明の一実施例によれば、ＨＳＭアプリケーションは移行ファイルごとに特有の移行ファイル識別子をインデックス１５３中に生成する。ファイル・システム１３０およびストレージ・レポジトリ・サーバー１６０の両方が移行ファイルを識別し追跡するためその特有の移行ファイル識別子を使用する。一実施例では、その特有の移行ファイル識別子が、そのファイルの特有の属性から生成される大文字の１６進数文字だけのストリングを含み、これがファイル・システム・リストと、ファイルのストレージ・レポジトリ・サーバー・リストとの間のストリングの比較をし易くする。これらのリストがソートされるので、いずれかのリストをメモリに完全にストアする必要はなく、また両リストが一時に一つのバッファで処理されることができる。更に、別の実施例では、その特有の移行ファイル識別子が二進数形式で内部的にストアされ、これらの２進数値がその同じ比較結果を生じるために複合ステートメントで個別に比較されることもできる。
【００２８】
図５は本発明の一実施例による双方向オーファン照合マッチング・プロセスの例示の動作を示す。この実施例では、特有の移行ファイル識別子によりソートされたリストがキュー２１０及び２２０上に押し出され、ファイル・システム・オーファン（オブジェクト２４０など）およびサーバー・オブジェクト・オーファン（オブジェクト２５０など）を識別するために動作２３０ないし２３５でマッチングされる。
【００２９】
図６は双方向オーファン照合を行うための例示の動作を表すワークフローを示す。図１、図２、図３、図４および図５と組み合わせて図６を参照すると、本発明の一実施例に従う動作によって使用されるステップは以下のとおりである。
【００３０】
この動作を行うための必要条件として、ＨＳＭ制御ストレージ環境は種々のストレージ装置相互間のファイルおよび移行ファイルの効率的なストレージを管理するために存する。このプロセスが開始するのは、ファイル・システム１３０にストアされたデータ・ファイル１１０Ａがストレージ・レポジトリ・サーバー１６０に移行されるべきであるとＨＳＭアプリケーション１５０が判定するときからである。
【００３１】
先ず、ステップ３０１にあるように、必要なインデクシングおよびデータ構造が将来の処理に適することを確保する重要なステップとして、ＨＳＭアプリケーション１５０がＨＳＭファイル・インデクシング・プロセスを行う。これは移行しようとするデータ・ファイル１１０Ａごとに特有の移行ファイル識別子をインデックス１５３内に発生する。この特有の移行ファイル識別子はファイル・システム１３０上のスタブ・ファイル１１０Ｂ上およびストレージ・レポジトリ・サーバー１６０上の移行データ・オブジェクト１８０Ａの両方にストアされる。別の実施例の一例では、その特有の移行ファイル識別子が、後のステップで直接、ストリング値比較を可能ならしめるように１６進数のストリングを含む。
【００３２】
次に、ステップ３０２にあるように、ＨＳＭアプリケーション１５０のコンポーネントであるＨＳＭ双方向オーファン・チェック処理動作が、データ一貫性をチェックするというリクエストを受けるときに開始される。このリクエストは、ファイル・システムの管理者または種々のシステム・ユーティリティ（例えば、システム始動、バックアップ‐復元など）など種々のソースから受け取ることができる。一実施例では、このリクエストは「dsmreconcile」中のコマンドなど、コマンド・ライン実行可能インターフェース中に開始されてもよく、以下の動作の必要に応じて入力データにコマンド・ライン・パラメータを与える。
【００３３】
ステップ３０３にあるように、ＨＳＭアプリケーション１５０は特有の移行ファイル識別子１５３により整理された移行ファイルのサーバー・オブジェクト・リスト１５４Ａを取り出すようストレージ・レポジトリ・サーバー１６０にクエリするサーバー・オブジェクト取り出しプロセス１５４をスタートさせる。このクエリの結果がサーバー・オブジェクト・キュー１５７に置かれる。このサーバー・クエリはまた期限の切れたそして重複したオブジェクトを配布する。
【００３４】
ステップ３０３と並行して、ステップ３０４は、インデックス１５３からの特有の移行ファイル識別子により整理されたファイルのファイル・システム・リスト１５５Ａを取り出すためにファイル・システム１３０をアクセスするファイル・システム取り出しプロセス１５５をスタートさせる。このリストの結果がファイル・システム・キュー１５８に置かれる。ファイル・システム・リストはまた移行されていないデータ・ファイルを含む。
【００３５】
ステップ３０３および３０４と並行して、そして両キューがデータを含むや否や、ステップ３０５が単一パス・オーファン識別マッチング・プロセスを開始するために、ＨＳＭアプリケーション１５０によって行われる。サーバー・オブジェクト・キュー１５７からのトップの要素およびファイル・システム・キューからのトップの要素が読み出され、比較される。
【００３６】
次いで、ステップ３０６にあるように、その読み出しキュー要素がマッチするか判定するためにチェックが行われる。これはストレージ・レポジトリ・サーバー１６０からの移行データ・オブジェクト１８０Ａの期限切れの期間をそれが期限切れであるか判定するためにチェックすることを含む。もし期限切れであれば、ストレージ・デポジトリ・サーバー上の移行データ・オブジェクトが単に削除されてもよく、その要素がサーバー・オブジェクト・キューから除去されてもよい。その後、サーバー・オブジェクト・キュー１５７から新しいトップの要素が読み出され、そしてステップ３０５を反復する。図５で説明するように、ステップ３０６は各キュー２１０および２２０から読み出された要素同志を比較するステップを含む。もしそれらの要素が同一なら、両キューからトップの要素を除去するためのステップに進む。 もし各キューから読み出された要素が同一でなければ、ステップ３０９におけるような処理が行われる。
【００３７】
ステップ３０７では、各キューからのトップの要素の比較がマッチしている結果となり、従ってオーファンは存在せず、何の動作も必要とされない。もし両キューがステップ３０８にあるように今や空であるならば、その動作は完遂される。もし追加のアイテムが残るなら、各キューからの新しいトップの要素が読み出され、ステップ３０５にあるように再び比較される 。
【００３８】
ステップ３０９は各キューからのトップの要素の比較がマッチせずというときに生じる。もしファイル・システム・キュー２１０からの要素がサーバー・オブジェクト・キュー２２０からの要素よりも小さければ（判定２３１）、ステップ３１０に進み、ファイル・システム・オーファンの可能性２４０が識別されたか判定する。もしファイル・システム・キューからの要素がサーバー・オブジェクト・キューからの要素よりも大きい（判定２３４）か、またはファイル・システム・キューが空であれば、動作はステップ３１１に進み、サーバー・オーファンの可能性２５０が識別されたかを判定する。もし両キューが空であれば、ステップ３１２ａまたは３１２ｂにあるように、プロセスは完遂する。
【００３９】
ステップ３１０では、或るリアルタイム・ファイル・システムのチェックが、ファイル・システム・オーファン２４０の存在するのを決定する前に必要とされる。第１に、ファイル・システム１６０中にファイルが存在するかというチェックが行われる。第２に、そのファイルが移行されまたは事前移行されたファイルであるかというチェックが行われる。もし そのファイルが存在しかつ移行されていれば、ファイル・システム・オーファンが識別され、その要素が、オーファンとされたログ・ファイルに置かれるべきである。もしそのファイルが存在し、かつ事前移行されるなら、それがデータ・ファイルであり、常駐にされるべきである。もしファイルがそのファイル・システムに存在しないなら、オーファンは存在しない。何故ならファイル・システム・リスト１５５Ａが発生されたときとサーバー・オブジェクト・リスト１５４Ａが発生されたときとの間の期間にファイルが削除されている筈だからである。最後に、ステップ３１０では、トップの要素がファイル・システム・キューから除去される。
【００４０】
ステップ３１１では、類似のリアルタイム・ファイル・システム・チェックが、サーバー・オーファン２５０の存在することを判定する前にそのファイルが存在することを検証するのに必要とされる。もしファイルが存在しかつそれが移行されるかもしくは事前移行されるなら、サーバー・オーファンは存在しない。何故ならば、ファイル・システム・リスト１５５Ａが発生されたときとサーバー・オブジェクト・リスト１５４Ａが発生されたときとの間の期間にそのファイルが生成され移行されてしまっている筈であるからである。もしファイルが存在しなければ、サーバー・オーファン２５０が識別されている。次に、そのオブジェクトを時間切れとしてマークするため、ストレージ・レポジトリ・サーバー１６０からサーバー・オブジェクトを削除する、あるいは他の適当な復元動作をとるなど、適当な動作がとられる。
【００４１】
ステップ３０８、３１２ａおよび３１２ｂの各々においてクエリされているように、両キューが空であり、かつ各キューから全ての要素が読み出され処理されてしまったとき、オーファン識別プロセスが完遂する。しかし、もし追加の要素がいずれかのキューに存在するなら、オーファン識別プロセスは続行される。ステップ３１３にあるように、ファイル・システム・キュー２１０からの新しいトップの要素が読み出され、現在のサーバー・オブジェクト・キュー要素と比較される。あるいはステップ３１４にあるように、サーバー・オブジェクト・キューからの新しいトップの要素が読み出され、現在のファイル・システム・キュー要素と比較される。ステップ３０６ないし３１４でエミュレートされるそのプロセスはそのキューが空になるまで反復される。
【００４２】
これまでに示唆したように、ファイル・システム・オーファンおよびサーバー・オブジェクト・オーファンのために行われるこれらの処理はオーファン（孤立）オブジェクトの認識時に特定の動作を行うよう構成されることができる。本発明の別の実施例では、発見後、サーバー・オーファンが直接削除される。本発明の他の実施例では、ファイル・システム・オーファンの発見がログ・ファイルに詳細に記述され、システム管理者がメッセージまたはユーザー・インターフェース・ディスプレイを介して知らされる。
【００４３】
更に、本発明の他の実施例は、前述のオーファン・チェック処理動作においてその動作内に生じるかもしれない不所望の状態を取り扱う。ファイル・リストが生成された後だがサーバー・クエリが始まる前に、ファイルが移行されるとき一つの状態が生じるかもしれない。サーバー・リストはこれらのデータ・オブジェクト有するが、ファイル・リストは有さない。従って前述のプロセスの動作はサーバー・オーファンと仮定し、サーバー・オブジェクトを削除し、これによってデータ損失を生じさせてしまう。これを解決するためには、どのサーバー・オブジェクトも削除される前にファイル・クエリが実行され、対応するスタブ・ファイルがないように確保する。
【００４４】
オーファン・スタブ・ファイルがファイル・リスト中に現れるがそのファイル・システムでは既に削除されている場合、追加的な不所望の状態が生じるかもしれない。これらのファイルは、そのファイル・システムには既に存在しないのに、オーファンと不正確に報告されることもあり得る。このことを解決するためには、そのファイル・システム中になおも存することを確保するためにオーファン・ファイルのためファイル・クエリが実行され得る。その結果、このチェックが成功する場合のみそのオブジェクトをオーファンとして報告される。事前移行オーファン・ファイルの場合は、それらは常駐にされ、オーファンとして報告はされない。
【００４５】
更に、他の実施例によれば、そのオーファン照合プロセスが、あるチェックポイントからまたは最初から再スタートされることもできる。処理が、最後のチェックポイントから、もしくは初めから等、再度行われる必要がある場合、全ての見つけられたサーバー・オーファンが既に処理済み（すなわち削除済み）であり、後のクエリ結果に含まれないので、後続の処理が、より少ないワークしか生じない。ファイル・システム・オーファン処理のためにとるステップに依存して、その見つかったファイル・システム・オーファンもまた解決でき、次のパスでの処理を必要とするのが、もっと少ないエントリとなるようにできる。（しかし、もしファイル・リスト・オーファンが第１のラン内で解決されないなら、そのオーファンは２回目に単にログされるか変更されてもよい。）
【００４６】
前述のプロセスは典型的なコンポーネント構成の上で非常に大型のファイル・システムのためのＨＳＭ双方向オーファン照合用の動作の実装を構成する。更に本発明の別の実施例が、例えばストレージ管理システム中の変形されたコンポーネントを使用することを通じて、あるいはイベント・ロギングもしくは種々のオーファン復元ルーチンなど追加的な動作を行うことを通じて当業者によって提供されることもできる。
【００４７】
当業者には理解されるように、本発明はシステム、方法、またはコンピュータ・プログラムとして実施されることができる。従って、本発明は完全にハードウエアの実施例、完全にソフトウエアの実施例（ファームウエア。常駐ソフトウエア、マイクロ・コード等を含む）、またはソフトウエアおよびハードウエアの側面を組み合わせた実施例といった形態をとることができる。そしてこれらはすべて一般的に「回路」、「モジュール」または「システム」とここでは称することもある。更に、本発明は媒体に含まれるコンピュータ使用可能なプログラム・コードを有する表現よりなる、任意の有体物に取り込まれたコンピュータ ・プログラム製品の形態をとることもできる。
【００４８】
１個もしくはそれ以上のコンピュータ使用可能なもしくはコンピュータ読み出し可能な媒体が使用されてもよい。コンピュータ使用可能なもしくはコンピュータ読み出し可能な媒体は、例えば、以下に限定されるものではないが、電子的、磁気的、光学的、電磁気的、赤外線の、または半導体のシステム、装置、デバイス、または伝播媒体であってよい。コンピュータ読み取り可能な媒体のもっと具体的な例（限定的なリスト）は、以下を含む。１本もしくはそれ以上のワイヤ、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤＲＯＭ）、光ストレージ・デバイス、インターネットまたはイントラネットをサポートするものなどの伝送媒体、あるいは磁気ストレージ・デバイスを含む。コンピュータが使用可能なまたはコンピュータ読み出し可能な媒体というのは、プログラムがプリントされた用紙または他の適当な媒体であってよいことに留意されたい。例えば用紙または他の媒体の光学的な走査を介してプログラムが電子的に捕捉され、それからコンパイルされ、翻訳され、あるいは必要なら他の適当な態様で処理され、そしてコンピュータ・メモリにストアされ得るからである。この文書のコンテクストでは、コンピュータ使用可能もしくはコンピュータ読取り可能な媒体というのは、命令実行システム、装置またはデバイスにより使用されもしくはそれと関係づけられるようなプログラムを含み、ストアし、通信し、伝播し、搬送することができるような任意の媒体であってよい。コンピュータ使用可能媒体は、それに含まれるコンピュータ使用可能なプログラム・コードとともにベースバンドにおいてもしくは搬送波の一部として伝播されるデータ信号を含んでもよい。コンピュータ使用可能なプログラム・コードは、以下に限定されるわけではないが、無線、有線、光ファイバー・ケーブル、ＲＦなどを含む任意の適当な媒体を用いて伝送されてもよい。
【００４９】
本発明の動作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ（登録商標）、Ｃ＋＋などのオブジェクト指向プログラミング言語と、Ｃプログラミング言語もしくは類似のプログラミング言語など、従来からある手続きプログラミング言語を含む１個もしくはそれ以上の任意の組み合わせのプログラミング言語で書かれても良い。このプログラム・コードはユーザーのコンピュータ上で完全に実行されてもよいし、一部はユーザーのコンピュータで、スタンドアローンのソフトウエア・パッケージとして、あるいは一部はユーザーのコンピュータ上で、一部は遠隔のコンピュータ上で、というのでもよいし、遠隔のコンピュータまたはサーバー上で完全に実行されるのでもよい。後者のシナリオでは、遠隔のコンピュータがユーザーのコンピュータに任意の型のネットワーク、例えばローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）を介して結合されていてもよい。あるいは外部コンピュータ（例えば、インターネット・サービス・プロバイダを用いるインターネットを介して）その結合がなされていてもよい。
【００５０】
本発明の種々の実施例を上記である程度詳細に記述したが、当業者であればこの明細書および特許請求の範囲に開示された本発明の主題の範囲または趣旨から逸れずにその開示した実施例への数々の変更を行うことができよう。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施例で使用されるストレージ・ボリュームの例示の状態を示す図である。
【図２】本発明の一実施例のための例示の動作環境を示す図である。
【図３】本発明の一実施例で使用されるファイル・システムの例示の状態を示す図である。
【図４】本発明の一実施例で使用されるＨＳＭアプリケーションのための例示の動作環境を示す図である。
【図５】本発明の一実施例に従う双方向オーファン照合マッチング・プロセスを示す図である。
【図６】本発明の一実施例に従う超大型ファイル・システムのための単一パスＨＳＭ双方向オーファン照合を行う例示の動作のフローチャートを示す図である。
【符号の説明】
【００５２】
１００  ボリューム
１１０Ａ  データ・ファイル
１１０Ｂ  スタブ・ファイル
１２０  ネットワーク
１３０  ファイル・システム
１５０  ＨＳＭアプリケーション
１６０  ストレージ・レポジトリ・サーバー
１８０  ボリューム
２１０  ファイル・システム・キュー
２２０  サーバー・オブジェクト・キュー
２４０  ファイル・システム・オーファン
２５０  サーバー・オーファン
【図１】
2010092464.tif 000003
【図２】
2010092464.tif 000004
【図３】
2010092464.tif 000005
【図４】
2010092464.tif 000006
【図５】
2010092464.tif 000007
【図６】
2010092464.tif 000008