(57)【要約】いくつかの例では、第１演算装置は、サーバがデータを回復したという提示をサーバから受信してもよい。例えば、第１演算装置は、１以上のクライアント装置によってアクセスされる１以上のファイルシステムのマッピングを含むメタデータを格納してもよい。さらに、第２演算装置は、第１演算装置上に格納されたマッピングの複製を格納してもよい。第１演算装置は、回復されたデータに基づいてサーバによって判断される１以上のファイルシステムのマッピングをサーバから受信してもよい。第１演算装置は、サーバからのマッピングを第１演算装置上の１以上のファイルシステムのマッピングと比較し、且つ２つのマッピング間で判断された変更に関する情報を、サーバがこの変更に基づいてサーバ上のマッピングを更新することを可能にするためにサーバに送信してもよい。
2021532465.tif 000002
【特許請求の範囲】
【請求項１】
作業を行うように実行可能命令によって構成された１以上のプロセッサを含む第１演算装置を含むシステムであって、
サーバがデータを回復したとの提示を前記サーバから前記第１演算装置によって受信することであって、前記第１演算装置は、１以上のクライアント装置によってアクセスされる１以上のファイルシステムのマッピングを含むメタデータを格納し、第２演算装置は、前記第１演算装置上に格納された前記マッピングの複製を格納するように構成される、ことと、
前記回復されたデータに基づいて前記サーバによって判断された前記１以上のファイルシステムのマッピングを前記サーバから前記第１演算装置によって受信することと、
前記サーバからの前記マッピングを、前記第１演算装置上の前記１以上のファイルシステムの前記マッピングと前記第１演算装置によって比較することと、
前記第１演算装置上に格納された前記マッピングと、前記サーバから受信された前記マッピングとの間で判断される変更に関する情報を、前記サーバが前記変更に基づいて前記サーバ上の前記マッピングを更新することを可能にするために、前記第１演算装置によって前記サーバに送信することと、
を含む、システム。
【請求項２】
前記作業は、既存ファイルを更新すること又は新規ファイルとして格納することの１つの提示を有する、前記第１演算装置上でローカルに格納された１以上のファイルを前記サーバに送信することをさらに含む、請求項１に記載のシステム。
【請求項３】
前記第１演算装置及び前記第２演算装置を含むミラー集合を示すマッピング識別子（ＩＤ）を前記サーバから前記第１演算装置によって受信することと、
前記サーバから受信された前記マッピングＩＤを前記第１演算装置上のマッピングＩＤと比較することと、
前記サーバから受信された前記マッピングＩＤが前記第１演算装置上の前記マッピングＩＤと整合すると判断することに基づき、前記サーバによって判断された前記１以上のファイルシステムの前記マッピングを前記第１演算装置によって要求することと、
をさらに含む、請求項１に記載のシステム。
【請求項４】
前記サーバがマッピング情報を回復している間、前記第２演算装置は、前記第２演算装置の役割が、前記第１演算装置上に格納された前記マッピングの複製を格納することであるという提示を前記サーバから受信し、及び
前記サーバがデータの回復を完了したと判断することに基づき、前記第２演算装置は、前記第１演算装置によって前記サーバに送信された前記変更の少なくとも部分的に基づいて判断されるファイルシステムマッピング情報を前記サーバから受信する、請求項１に記載のシステム。
【請求項５】
前記サーバがマッピング情報を回復している間、前記第２演算装置は、前記第２演算装置の役割が前記第１演算装置の役割に対して変化したという提示を前記サーバから受信し、
前記１以上のファイルシステムの前記マッピングを前記サーバから前記第２演算装置によって受信し、及び
前記サーバからの前記マッピングを、前記第２演算装置上の前記１以上のファイルシステムの前記マッピングと前記第２演算装置によって比較する、請求項１に記載のシステム。
【請求項６】
前記作業は、前記サーバがデータを回復したという指標を受信する前に、
前記１以上のファイルシステムを前記第２演算装置に複製すること、又は
前記１以上のファイルシステムに対する後続の変更を前記第２演算装置に複製すること
の少なくとも１つを前記第１サーバに行わせる命令を前記第１演算装置によって前記サーバから受信することをさらに含む、請求項１に記載のシステム。
【請求項７】
前記第１演算装置及び前記第２演算装置は、前記第１演算装置上に格納された前記マッピングの前記複製を格納するように構成された前記第２演算装置に基づいて同じマッピング識別子を割り当てられ、前記マッピング識別子は、前記第１演算装置上に格納された前記マッピングに対応する、請求項６に記載のシステム。
【請求項８】
前記作業は、
前記サーバからの前記マッピングに従って処理された最後のトランザクションを示すトランザクション識別子（ＩＤ）を前記サーバから前記第１サービス演算装置によって受信することと、
前記サーバから受信された前記トランザクションＩＤを前記第１演算装置上のトランザクションＩＤと比較することと、  前記第１演算装置上の前記トランザクションＩＤが前記サーバからの前記トランザクションＩＤより大きいことに基づき、前記サーバからの前記マッピングを、前記第１演算装置上の前記１以上のファイルシステムの前記マッピングと前記第１演算装置によって比較することと、
をさらに含む、請求項１に記載のシステム。
【請求項９】
前記サーバからの前記マッピングを、前記第１演算装置上の前記マッピングと前記第１演算装置によって比較することは、前記サーバからの前記マッピング内の各共有パス及びファイルシステム識別子を、前記第１演算装置上の前記マッピング内の各共有パス及びファイルシステム識別子と比較することをさらに含む、請求項１に記載のシステム。
【請求項１０】
サーバ共有ファイルシステム識別子と同じである共有ファイルシステム識別子と、サーバ共有パスと異なる共有パスとを有する、前記第１演算装置上のローカル共有を前記サーバに送信することをさらに含む、請求項９に記載のシステム。
【請求項１１】
サーバ共有パスと同じである共有パスと、サーバ共有ファイルシステム識別子と異なる共有ファイルシステム識別子とを有する、前記第１演算装置上のローカル共有を前記サーバに送信することをさらに含む、請求項９に記載のシステム。
【請求項１２】
前記第１演算装置は、前記クライアント演算装置の少なくとも１つと、クライアントデータを前記少なくとも１つのクライアント演算装置に送信し、且つクライアントデータを前記少なくとも１つのクライアント演算装置から受信するために通信するように構成され、前記クライアントデータは、前記ファイルシステムの少なくとも１つに基づいて格納される、請求項１に記載のシステム。
【請求項１３】
前記作業は、
前記変更を前記サーバに送信する前に、ファイル読み取り又はファイル書き込みの少なくとも１つを同期させる要求を前記サーバから前記第１演算装置によって受信すること、及び
前記サーバによる前記データの回復が未完了であると判断することに基づいて前記要求を無視すること
をさらに含む、請求項１に記載のシステム。
【請求項１４】
サーバがデータを回復したという提示を前記サーバから第１演算装置の１以上のプロセッサによって受信することであって、前記第１演算装置は、１以上のクライアント装置によってアクセスされる１以上のファイルシステムのマッピングを含むメタデータを格納し、第２演算装置は、前記第１演算装置上に格納された前記マッピングの複製を格納するように構成される、ことと、
前記回復されたデータに基づいて前記サーバによって判断される前記１以上のファイルシステムのマッピングを前記サーバから前記第１演算装置によって受信することと、
前記サーバからの前記マッピングを、前記第１演算装置上の前記１以上のファイルシステムの前記マッピングと前記第１演算装置によって比較することと、
前記第１演算装置上に格納された前記マッピングと、前記サーバから受信された前記マッピングとの間で判断される変更に関する情報を、前記サーバが前記変更に基づいて前記サーバ上の前記マッピングを更新することを可能にするために、前記第１演算装置によって前記サーバに送信することと、
を含む方法。
【請求項１５】
第１演算装置の１以上のプロセッサによって実行されると、前記１以上のプロセッサに作業を実行するようにプログラムする命令を格納する１以上の非一時的コンピュータ可読媒体であって、
サーバがデータを回復したという提示を前記サーバから前記第１演算装置によって受信することであって、前記第１演算装置は、１以上のクライアント装置によってアクセスされる１以上のファイルシステムのマッピングを含むメタデータを格納し、第２演算装置は、前記第１演算装置上に格納された前記マッピングの複製を格納するように構成される、ことと、
前記回復されたデータに基づいて前記サーバによって判断される前記１以上のファイルシステムのマッピングを前記サーバから前記第１演算装置によって受信することと、
前記サーバからの前記マッピングを、前記第１演算装置上の前記１以上のファイルシステムの前記マッピングと前記第１演算装置によって比較することと、
前記第１演算装置上に格納された前記マッピングと、前記サーバから受信された前記マッピングとの間で判断される変更に関する情報を、前記サーバが前記変更に基づいて前記サーバ上の前記マッピングを更新することを可能にするために、前記第１演算装置によって前記サーバに送信することと
の命令を格納する非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、サーバ上などのデータの回復の技術分野に関する。
【背景技術】
【０００２】
非構造化非可変デジタルコンテンツの成長により、分散クライアントサーバシステム内のデータを管理及びバックアップすることが困難になり得る。例えば、コンピュータシステム内のサーバからのデータは、別のシステムに定期的又は連続的にバックアップされ得る。しかし、連続的データバックアップを行うことは、システムにおいて行われる各アクションをバックアップするための装置間の絶え間ない通信に起因して、ネットワーク及び接続された演算装置に負担をかけ得る。一方、定期的データバックアップは、連続的データバックアップと比較してシステム性能に最小の影響を与え得るが、データ損失の可能性を生み出す。例えば、データバックアップが定期的に行われると、最後のバックアップ以降にシステムに追加されたいかなるデータも、サーバ、ストレージなどの故障後に回復不能になり得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
いくつかの実装形態は、少なくとも１つの第１演算装置、第２演算装置及びサーバを含む。例えば、第１演算装置は、サーバがデータを回復したという表明をサーバから受信してもよい。例えば、第１演算装置は、１以上のクライアント装置によってアクセスされる１以上のファイルシステムのマッピングを含むメタデータを格納してもよい。例えば、ファイルシステムマッピングは、別のファイルシステム識別子（ＩＤ）を有する各ファイルシステム内のすべてのディレクトリ、副ディレクトリ、フォルダ及びファイルが記載されたパスであってもよい。ファイルシステムマッピングは、ファイルシステムのマウントポイントなどを含んでもよい。一例として、マウントポイントは、別のファイルシステムが取り付けられている第１ファイルシステム内のディレクトリであってもよい。
【０００４】
さらに、第２演算装置は、第１演算装置上に格納されたファイルシステムマッピングの複製を格納するように構成されてもよい。第１演算装置は、回復されたデータに基づいてサーバによって決定される１以上のファイルシステムのマッピングをサーバから受信してもよい。第１演算装置は、サーバからのマッピングを第１演算装置上の１以上のファイルシステムのマッピングと比較してもよい。加えて、第１演算装置は、第１演算装置上に格納されたマッピングと、サーバから受信されたマッピングとの間で発生したと判断される変更（すなわち差）に関する情報を、サーバがこの変更に基づいてサーバ上のマッピングを更新することを可能にするためにサーバに送信してもよい。いくつかの例では、ファイルシステムに対するデータ更新は、サーバとサービス演算装置との間のファイルシステムマッピングの同期の完了に続いて行われてもよい。
【図面の簡単な説明】
【０００５】
詳細な説明は、添付図面を参照して記載される。図面では、参照番号の最も左の桁は、参照番号が最初に出現する図を特定する。異なる図内の同じ参照番号の使用は、同様又は同一の物品又は特徴を示す。
【０００６】
【図１】図１は、いくつかの実装形態による、サーバの回復を実行するように構成されたシステムの例示的構成示す。
【０００７】
【図２】図２は、いくつかの実装形態による、サーバ及びストレージシステムの１つの可能な例示的構成を示す。
【０００８】
【図３】図３は、いくつかの実装形態による、ミラーリングが適用される前後の３つのサービス演算装置の例示的構成を示すブロック図である。
【０００９】
【図４】図４は、いくつかの実装形態による、オリジナルサービス演算装置と、ミラーリングされたサービス演算装置と、サーバとの間の関係を示すブロック図である。
【００１０】
【図５】図５は、いくつかの実装形態による、オリジナルサービス演算装置、リフレクションサービス演算装置、及びサーバ上のファイルシステムトランザクションマッピングの例を示すブロック図である。
【００１１】
【図６】図６は、いくつかの実装形態による、サーバ回復の例示的処理を示すフロー図である。
【００１２】
【図７】図７は、いくつかの実装形態による、サーバ上の情報によりマッピングを照合するサービス演算装置の処理例を示すフロー図である。
【００１３】
【図８】図８は、いくつかの実装形態による、図７の処理例の続きである処理例を示すフロー図である。
【００１４】
【図９】図９は、いくつかの実装形態による、図７及び図８の処理例の続きである処理例を示すフロー図である。
【００１５】
【図１０】図１０は、いくつかの実装形態による、クライアント装置の例示的構成を示す。
【発明を実施するための形態】
【００１６】
本明細書におけるいくつかの実装形態は、システム故障の場合のデータ損失を最小化するための頑強な災害復旧能力を含む分散コンピュータシステムの技術及び配置に向けられる。例えば、サーバがサーバ上の災害、障害若しくは事故、妨害行為、ハッキング又は故障の他の原因に起因して故障すると、サーバは、その後、サーバ回復を行うために回復処理を実行する。この処理は、データを回復し、且つそれによりサーバを前のバックアップポイントに復元するために、ストレージシステム内に格納されたデータバックアップ及びログバックアップを利用することを含んでもよい。サーバが第１の回復点としてのその点に到達すると、サーバは、次に、１以上のサービス演算装置にそれらのデータとサーバ上のデータとの間の差、すなわち発生した変更を判断させることにより、追加の回復処理を実行し、且つサーバが回復を継続し得るように、変更に関する情報をサーバに提供してもよい。例えば、サービス演算装置は、クライアント演算装置のためのデータを格納、管理及び検索するためなどのサービスのような１以上のサービスを複数のクライアント演算装置に提供してもよい。したがって、サーバは、それぞれサーバにより回復されるデータの一部を有し得る複数のサービス演算装置と相互作用してもよい。
【００１７】
一例として、（ミラー役割とは対照的な）オリジナル役割で機能するサービス演算装置は、回復されたデータに基づいてサーバによって特定される１以上のファイルシステムのマッピングをサーバから受信してもよい。サービス演算装置は、サーバからのマッピングをサービス演算装置上の１以上のファイルシステムのマッピングと比較してもよく、且つ第１演算装置上に格納されたマッピングと、サーバから受信されたマッピングとの間に発生したと判断されるいかなる変更（すなわちその間の差）に関する情報を、判断された変更に基づいてサーバがサーバ上のマッピングを更新することを可能にするためにサーバに送信してもよい。オリジナル役割で機能する複数のサービス演算装置が存在する場合、サーバは、マッピング情報を、これらのサービス演算装置のそれぞれと同期させてもよい。サービス演算装置上のマッピング情報と、サーバ上の回復されたデータとの同期後、回復は、完了してもよい。サーバは、その後、ミラー役割を果たす１以上の追加のサービス演算装置と、それらのサービス演算装置と任意のマッピング更新を同期させるために通信してもよい。
【００１８】
サーバとサービス演算装置との間のファイルシステムマッピングの同期の完了に続いて、サーバは、サービス演算装置上で発生した可能性があるが、サーバによりまだ処理されていない可能性があるファイルシステムに対する任意のデータ更新を行うためにサービス演算装置と通信してもよい。例えば、サービス演算装置は、新しいファイルコンテンツ、更新、変更などをサーバに送信することにより、ファイルをサーバと同期させてもよい。サーバは、データ更新に基づいてそれ自身のファイルシステムメタデータを更新してもよく、ファイルコンテンツを格納するか又は取り出すために必要に応じストレージシステムと相互作用してもよい。いくつかの場合、サービス演算装置は、マッピングの同期が完了するまでファイルデータ更新のためのサーバからのいかなる要求も無視してもよい。
【００１９】
論述の目的のために、いくつかの実装形態例は、ファイル、フォルダ、オブジェクト、及び／又は他のデータ並びに関連するメタデータの格納を管理するために、複数のクライアント装置と相互作用するストレージシステムと複数のサービス演算装置と通信するサーバの環境内で説明される。しかし、本明細書における実装形態は、提供される特定の例に限定されず、且つ本明細書の開示に照らして当業者に明らかになるような他のタイプの演算システム構成、他のタイプのストレージ環境、他のタイプのクライアント構成、他のタイプのデータなどに拡張されてもよい。
【００２０】
図１は、いくつかの実装形態による、サーバ１０２の回復を行うように構成されたシステム１００の例示的構成を示す。システム１００は、１以上のネットワーク１０６等を介して、少なくとも１つのストレージシステム１０４と通信することができる、又は他にそれに接続される少なくとも１つのサーバ１０２を含む。さらに、サーバ１０２は、以下に追加的に論述されるような様々なタイプの演算装置の任意のものであり得るクライアント装置１０８（１）、１０８（２）、１０８（３）、１０８（４）、．．．などの１以上のクライアント演算装置１０８とネットワーク１０６上で通信することができるサービス演算装置１０３（１）、１０３（２）、．．．、１０３（Ｎ）などの複数のサービス演算装置１０３と１以上のネットワーク１０６上で通信することができてもよい。
【００２１】
いくつかの例では、サーバ１０２は、任意の数の方法で具現化され得る１以上のサーバを含み得る。例えば、プログラム、他の機能部品、及びサーバ１０２のデータストレージの少なくとも一部は、サーバのクラスタ、サーバファーム、データセンタ、及びクラウドホスト型演算サービス等の少なくとも１つのサーバ上に実装されてもよいが、他のコンピュータ構成が追加的に又は代替的に使用されてもよい。図示の例では、サーバ１０２は、１以上のプロセッサ１１０、１以上のコンピュータ可読媒体１１２、及び１以上の通信インターフェース１１４を含んでもよく、又はそれらと関連付けられてもよい。
【００２２】
各プロセッサ１１０は、単一の処理ユニット又は多数の処理ユニットであってもよく、単一又は複数の演算ユニット、又は複数の処理コアを含んでもいてもよい。プロセッサ１１０は、１以上の中央処理装置、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、ステートマシン、論理回路、及び／又は動作指示に基づいて信号を操作する任意の装置として実装され得る。一例として、プロセッサ１１０は、本明細書において説明されるアルゴリズム及び処理を実行するように特別にプログラムされた又は構成された任意の好適なタイプの１以上のハードウェアプロセッサ、及び／又は論理回路を含んでもよい。プロセッサ１１０は、本明細書において説明される機能を行うようにプロセッサ１１０をプログラムし得る、コンピュータ可読媒体１１２内に格納されるコンピュータ可読命令をフェッチ及び実行するように構成されてもよい。
【００２３】
コンピュータ可読媒体１１２は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報の格納のための任意のタイプの技術で実現される、揮発性及び非揮発性メモリ、及び／又は着脱可能及び着脱不能媒体を含んでもよい。例えば、コンピュータ可読媒体１１２は、限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、光学ストレージ、ソリッドステートストレージ、磁気テープ、磁気ディスクストレージ、ＲＡＩＤストレージシステム、ストレージアレイ、ネットワーク接続ストレージ、ストレージエリアネットワーク、クラウドストレージ、又は所望の情報を格納するために使用され得、且つ演算装置によってアクセスされ得る任意の他の媒体を含んでもよい。サーバ１０２の構成に依存して、コンピュータ可読媒体１１２は、非一時的コンピュータ可読媒体がエネルギー、搬送波信号、電磁波、及び／又は信号自体などの媒体を排除すると述べる限り、有形な非一時的媒体であってもよい。いくつかの場合、コンピュータ可読媒体１１２は、サーバ１０２と同じ場所にあってもよいが、他の例では、コンピュータ可読媒体１１２は、サーバ１０２からある程度離れていてもよい。例えば、いくつかの場合、コンピュータ可読媒体１１２は、ストレージシステム１０４内のストレージの一部を含んでもよい。
【００２４】
コンピュータ可読媒体１１２は、プロセッサ１１０により実行可能である任意の数の機能部品を格納するために使用されてもよい。多くの実装形態では、これらの機能部品は、プロセッサ１１０により実行可能である命令又はプログラムを含む。命令又はプログラムは、実行されると、本明細書ではサーバ１０２に帰する行為を行うようにプロセッサ１１０を特にプログラムし得る。コンピュータ可読媒体１１２内に格納される機能部品は、それぞれ１以上のコンピュータプログラム、アプリケーション、実行可能コード、又はその一部を含み得るサーバプログラム１１６及びデータベースプログラム１１８を含んでもよい。例えば、サーバプログラム１１６は、通信機能をサービス演算装置１０３に、またクライアント装置１０８及びストレージシステム１０４に提供してもよい。データベースプログラム１１８は、ストレージシステム１０４において格納されるデータに対応するメタデータを含む、１以上のファイルシステム１２４などのメタデータデータベース１２２を生成及び管理するためのデータベース管理機能を含んでもよい。例えば、データベースプログラム１１８は、データベースプログラム１１８に、ファイルシステム１２４と、メタデータデータベース１２２の一部としての関連情報とを維持させるように構成され、フォルダ及び関連ファイルシステムの生成及び管理のための並びにサーバ１０２の災害、誤動作、維持又は他の故障に続いて、本明細書において説明されるアルゴリズム及び技術に従って回復機能を行うための、サーバ１０２に帰する、本明細書において説明される他の機能を行わせるように構成された実行可能命令を含んでもよい。データベースプログラム１１８は、個人フォルダ情報、共有フォルダ情報、及びチームフォルダ情報（図１に示さず）を生成及び管理するなどのためのフォルダ管理機能をさらに実行してもよい。データベースプログラム１１８は、ユーザ情報１２６などのメタデータデータベース１２２内に含まれる他のタイプの情報を管理するための管理機能をさらに実行してもよい。コンピュータ可読媒体１１２内に格納される追加の機能部品は、サーバ１０２の様々な機能を制御及び管理するためのオペレーティングシステム（図１に示さず）を含んでもよい。いくつかの場合、機能部品は、コンピュータ可読媒体１１２のストレージ部内に格納され、コンピュータ可読媒体１１２のローカルメモリ部内にロードされ、１以上のプロセッサ１１０により実行されてもよい。
【００２５】
加えて、コンピュータ可読媒体１１２は、本明細書において説明される機能及びサービスを行うために使用されるデータ及びデータ構造を格納してもよい。例えば、コンピュータ可読媒体１１２は、メタデータデータベース１２２を格納してもよい。図示の例では、メタデータデータベース１２２は、個々のユーザのための並びにユーザのグループ及びユーザのチームのためなどの複数のファイルシステム１２４を含む。いくつかの場合、個々のファイルシステム１２４は、個々のユーザに対応し得る個人フォルダ、フォルダを共有する２人以上のユーザに対応し得る共有フォルダ又はマーケティング部、エンジニアリング部、人事部などの組織内の副組織に対応し得るチームフォルダなどの、それぞれ１以上のフォルダに対応し得る。
【００２６】
いくつかの例では、個人フォルダは、特定のユーザの個人ファイルシステムに対応してもよい。個人フォルダを所有するユーザのみがその個人フォルダにアクセスし得る。ユーザは、共有フォルダとして他のユーザと共に所有するフォルダも共有してもよい。各共有フォルダは、独立したファイルシステムであってもよい。さらに、チームフォルダは、いかなるユーザによっても所有されないが、そのチームに属する１以上のユーザによってアクセス及び管理され得るフォルダであってもよい。チームフォルダは、それ自身のファイルシステム内に存在してもよい。加えて、メタデータデータベース１２２は、ファイルシステム１２４に含まれている、又はその一部がファイルシステム１２４とは別に格納され得る他の情報を含んでもよい。
【００２７】
さらに、ユーザ情報１２６は、フォルダ／ファイルシステムのユーザ許可、ユーザアカウント情報、ユーザログイン情報、及びユーザ信用証明書等のそれぞれのユーザ１３０に関する情報を含んでもよい。サーバ１０２は、プログラム、ドライバなどを含み得る他の機能部品及びデータ（及び機能部品により使用又は生成されるデータを含む又は維持してもよい。さらに、サーバ１０２は、多くの他の論理部品、プログラム部品及び物理的部品を含んでもよいが、上述のものは、本明細書における論述に関連する単なる例である。
【００２８】
１以上の通信インターフェース（Ｉ／Ｆ）１１４は、１以上のネットワーク１０６上などの様々な他の装置との通信を可能にするための１以上のソフトウェア及びハードウェア部品を含んでもよい。したがって、通信インターフェース１１４は、ストレージシステム１０４と通信するためのネットワーク１０６への接続を提供する１以上のポート、及びサービス演算装置１０３などの他の演算装置との通信のためのネットワーク１０６への接続を提供する１以上のポートを含む、又はそれらと接合してもよい。例えば、通信インターフェース１１４は、本明細書の他の箇所で追加的に列挙されるようなＬＡＮ、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク（例えば、Ｗｉ−Ｆｉ）及び有線ネットワーク（例えば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、光ファイバ、イーサーネット）、直接接続並びにＢＬＵＥＴＯＯＴＨ（登録商標）などの近距離通信等の１以上を介した通信が可能であってもよい。
【００２９】
１以上のネットワーク１０６は、インターネットなどの広域ネットワーク、イントラネットなどのローカルエリアネットワーク（ＬＡＮ）、セルラネットワーク、Ｗｉ−Ｆｉなどのローカル無線ネットワーク、及び／又はＢＬＵＥＴＯＯＴＨ（登録商標）などの短距離無線通信などの無線ネットワーク、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、光ファイバ、イーサーネット又は任意の他のこのようなネットワーク、直接有線接続、或いはそれらの任意の組み合わせを含む有線ネットワークを含む任意の好適なネットワークを含んでもよい。したがって、１以上のネットワーク１０６は、有線及び／又は無線通信技術の両方を含んでもよい。このような通信に使用される部品は、ネットワークのタイプ、選択される環境、又はその両方に少なくとも部分的に依存し得る。このようなネットワーク上で通信するためのプロトコルは、周知であり、本明細書では詳細に論述されない。したがって、サーバ１０２及びクライアント装置１０８は、有線又は無線接続及びそれらの組み合わせを使用して１以上のネットワーク１０６上で通信することができる。さらに、いくつかの場合、負荷平衡演算装置（図１に示さず）は、サーバ１０２とクライアント装置１０８との間に配置されてもよい。加えて、いくつかの例では、ネットワーク１０６は、ＬＡＮを含んでもよく、サーバ１０２とストレージシステム１０４とは、互いにローカルに配置されてもよい。
【００３０】
サービス演算装置１０３は、サーバ１０２のものと同様のハードウェア構成を有してもよく、１以上のプロセッサ１１１、１以上のコンピュータ可読媒体１１３、１以上の通信インターフェース１１５を含んでもよい。例えば、プロセッサ１１１は、プロセッサ１１０に関して上に論述された例の任意のものに対応し、コンピュータ可読媒体１１３は、コンピュータ可読媒体１１２に関して上に論述された例の任意のものに対応し、通信インターフェース１１５は、通信インターフェース１１４に関して上に論述された例の任意のものに対応してもよい。
【００３１】
コンピュータ可読媒体１１３は、プロセッサ１１１により実行可能である任意の数の機能部品を格納するために使用されてもよい。多くの実装形態では、これらの機能部品は、プロセッサ１１１により実行可能である命令又はプログラムであって、実行されると、本明細書ではサービス演算装置１０３に帰する行為を行うようにプロセッサ１１１を特にプログラムし得る命令又はプログラムを含む。コンピュータ可読媒体１１３内に格納される機能部品は、それぞれ１以上のコンピュータプログラム、アプリケーション、実行可能コード又はその一部を含み得るサーバプログラム１１７及びデータベースプログラム１１９を含んでもよい。例えば、サーバプログラム１１７は、クライアント装置１０８及びサーバ１０２に通信機能を提供してもよい。
【００３２】
データベースプログラム１１９は、ストレージシステム１０４において格納されるデータに対応する１以上のファイルシステム１２５などのメタデータを含むメタデータデータベース１２３を生成及び管理するためのデータベース管理機能を含んでもよい。例えば、データベースプログラム１１９は、データベースプログラム１１９に、ファイルシステム１２５と関連情報とをメタデータデータベース１２３の一部として維持させるように構成され、フォルダ及び関連ファイルシステムの生成及び管理のための、サービス演算装置１０３に帰する、本明細書で説明される他の機能を行うように構成され、本明細書において説明されるアルゴリズム及び技術に従ってサーバ１０２の回復を支援するための回復作業を行うように構成されている実行可能命令を含んでもよい。データベースプログラム１１９は、フォルダ管理機能だけでなく、ユーザ情報１２７など、メタデータデータベース１２３内に含まれる他のタイプの情報を管理するための機能をさらに行ってもよい。コンピュータ可読媒体１１３内に格納される追加の機能部品は、サービス演算装置１０３の様々な機能を制御及び管理するためのオペレーティングシステム（図１に示さず）を含んでもよい。いくつかの場合、機能部品は、コンピュータ可読媒体１１３のストレージ部内に格納され、コンピュータ可読媒体１１３のローカルメモリ部内にロードされ、１以上のプロセッサ１１１により実行されてもよい。
【００３３】
加えて、コンピュータ可読媒体１１３は、本明細書において説明される機能及びサービスを行うために使用されるデータ及びデータ構造を格納してもよい。例えば、コンピュータ可読媒体１１３は、メタデータデータベース１２３を格納してもよい。図示の例では、メタデータデータベース１２３は、サーバ１０２により維持されるファイルシステム１２４の一部に対応し得る、例えば、個々のユーザのための並びにユーザのグループ及びユーザのチームのための複数のファイルシステム１２５を含む。いくつかの場合、個々のファイルシステム１２５のそれぞれは、個々のユーザに対応し得る個人フォルダ、フォルダを共有する２人以上のユーザに対応し得る共有フォルダ、又はマーケティング部、エンジニアリング部、人事部などの組織内の副組織に対応し得るチームフォルダなどの１以上のフォルダに対応してもよい。
【００３４】
さらに、ユーザ情報１２７は、フォルダ／ファイルシステムの許可、ユーザアカウント情報、ユーザログイン情報及びユーザ信用証明書等のそれぞれのユーザ１３０に関する情報を含んでもよい。例えば、ユーザ１３０（１）、１３０（２）のクライアント装置１０８（１）、１０８（２）は、それぞれ第１サービス演算装置１０３（１）と通信するように構成されてもよい一方、ユーザ１３０（３）、１３０（４）のクライアント装置１０８（３）、１０８（４）は、それぞれＮ番目サービス演算装置１０３（Ｎ）と通信するように構成されてもよい。したがって、それぞれのサービス演算装置１０３は、ユーザ１３０のローカルストレージとしての役割を果たしてもよい。サービス演算装置１０３は、プログラム、ドライバなどを含み得る他の機能部品及びデータ並びに機能部品により使用又は生成されるデータも含んでもよく又は維持してもよい。さらに、サービス演算装置１０３は、多くの他の論理部品、プログラム部品及び物理的部品を含んでもよく、上述のものは、本明細書における論述に関する単なる例である。加えて、部品１１１、１１３、１１５、１１７、１１９、１２３は、図の明確化のために、図１のサービス演算装置１０３（２）．．．１０３（Ｎ）内に示されないが、サービス演算装置１０３（２）．．．１０３（Ｎ）は、サービス演算装置１０３（１）に関して上に論述された部品１１１、１１３、１１５、１１７、１１９、１２３と同じ又は同様の部品を含んでもよい。
【００３５】
各クライアント装置１０８は、デスクトップ、ラップトップ、タブレット演算装置、モバイル機器、スマートフォン、ウェアラブル装置、及び／又はネットワーク上でデータを送信することができる任意の他のタイプの演算装置などの任意の好適なタイプの演算装置であってもよい。いくつかの場合、クライアント装置１０８は、図１０に関して以下に論述されるようなハードウェア構成及び論理構成を含んでもよい。ユーザ１３０（１）、１３０（２）、１３０（３）、１３０（４）、．．．は、例えば、それぞれのユーザアカウント、ユーザログイン信用証明書などを介してクライアント装置１０８（１）、１０８（２）、１０８（３）、１０８（４）、．．．にそれぞれ関連付けられてもよい。さらに、クライアント装置１０８は、１以上のネットワーク１０６を介して、別のネットワークを介して、又は任意の他の好適なタイプの通信接続を介してサービス演算装置１０３と通信することができてもよい。多数の他の変形形態は、本明細書の開示の恩恵を有する当業者に明らかになる。
【００３６】
さらに、各クライアント装置１０８（１）〜１０８（４）は、例えば、ストレージシステム１０４上の格納のためにユーザデータを送信するため及び／又はストレージシステム１０４から格納データを受信するためにサーバプログラム１１７と通信するためなど、それぞれのクライアント装置１０８（１）〜１０８（４）上で実行し得るクライアントアプリケーション１３６（１）〜１３６（４）のそれぞれのインスタンスを含んでもよい。別の例として、アプリケーション１３６は、フォルダの生成のためのフォルダ要求を生成し、サービス演算装置１０３に送信するためにユーザ１３０により使用されてもよい。いくつかの場合、アプリケーション１３６は、ブラウザを含んでもよく又はブラウザを介して動作してもよいが、他の場合、アプリケーション１３６は、１以上のネットワーク１０６上でのサーバプログラム１１７との通信を可能にする通信機能を有する任意の他のタイプのアプリケーションを含んでもよい。いくつかの例では、個々のユーザ１３０は、複数のクライアント装置１０８を有してもよく、サービス演算装置１０３は、特定のユーザのデータを、特定のユーザ１３０が関連付けられるクライアント装置１０８のそれぞれに対して自動的に同期させ得る。
【００３７】
ストレージシステム１０４は、サーバ１０２に関して上に論述された例の任意のものなどの１以上のサーバ又は任意の他の好適な演算装置を含み得る１以上のストレージ演算装置１４０（を含んでもよい。ストレージ演算装置１４０は、それぞれ１以上のプロセッサ１４２、１以上のコンピュータ可読媒体１４４及び１以上の通信インターフェース１４６を含んでもよい。例えば、プロセッサ１４２は、プロセッサ１１０に関して上に論述された例の任意のものに対応してもよく、コンピュータ可読媒体１４４は、コンピュータ可読媒体１１２に関して上に論述された例の任意のものに対応してもよく、通信インターフェース１４６は、通信インターフェース１１４に関して上に論述された例の任意のものに対応してもよい。
【００３８】
加えて、コンピュータ可読媒体１４４は、ストレージシステム１０４内に含まれるストレージ１５０上のデータの格納を管理するための１以上のプロセッサ１４２により実行される機能部品としてストレージプログラム１４８を含んでもよい。ストレージ１５０は、記憶装置１５６などの１以上のアレイ１５４上にデータを格納するためのストレージ１５０に関連する１以上のコントローラ１５２を含んでもよい。例えば、コントローラ１５２は、例えば、アレイ１５４をＲＡＩＤ構成、ＪＢＯＤ構成などで構成し、及び／又は記憶装置１５６に基づく論理ユニットをストレージプログラム１４８に提示し、及び下位にある物理記憶装置１５６上に格納されるデータオブジェクト１５８などのデータを管理するために、アレイ１５４を制御してもよい。記憶装置１５６は、ハードディスクドライブ、ソリッドステートドライイブ、光ドライブ、磁気テープ、及びそれらの組み合わせ等などの任意のタイプの記憶装置であってもよい。いくつかの例では、１以上のアレイ１５４は、オンディマンド記憶容量を提供するように構成されるシンプロビジョニングアレイを含んでもよい。さらに、ストレージ１５０は、様々なユーザ、ユーザのグループ、チームなどのための記憶容量を提供するために使用されるストレージプールを生成するために使用されてもよい。
【００３９】
システム１００では、ユーザ１３０は、彼らのそれぞれのクライアント装置１０８が通信状態にあるサービス演算装置１０３にデータを格納し、それからデータを受信してもよい。したがって、サービス演算装置１０３は、ユーザ１３０及びそれぞれのクライアント装置１０８のためのローカルストレージを提供してもよい。定常状態動作中、サービス演算装置１０３と定期的に通信するクライアント１０８が存在してもよい。クライアント１０８は、新しいファイルコンテンツをそれぞれのサービス演算装置１０３に送信すると共に、更新ファイルをそれぞれのサービス演算装置１０３から受信することにより、サービス演算装置１０３とファイルを同期させる。いくつかの例では、所与のユーザのすべてのクライアントは、同じファイル集合を同期させてもよい。さらに、サービス演算装置１０３は、受信されたファイルコンテンツをサーバ１０２に送信し、またクライアント１０８への配送のためにサーバ１０２からファイルを受信することなどにより、をサーバ１０２と同期させる。
【００４０】
一例として、ユーザ１３０（１）が、Ｕｓｅｒ１データ１６０を、ファイルシステム１２５、１２４の少なくとも一部に対応し得るサービス演算装置１０３（１）により管理される指定フォルダに格納すると仮定する。非限定的例として、Ｕｓｅｒ１データ１６０は、画像、ワープロ文書又はスプレッドシート等のオブジェクトデータを含むと仮定する。サービス演算装置１０３（１）は、Ｕｓｅｒ１データ１６０を受信してもよく、Ｕｓｅｒ１データに関するメタデータをユーザ１３０（１）のファイルシステム内に格納してもよい。図示された構成では、特定のサービス演算装置１０３は、サービス演算装置１０３がデータ格納作業及びサービス作業を行うために特定のクライアント装置１０８と直接通信する「オリジナル」役割で動作するように指定されている。例えば、サービス演算装置１０３（１）、１０３（Ｎ）が、図示の例においてオリジナル役割で動作するように構成されると仮定する。サービス演算装置１０３の他のものは、１以上のオリジナルサービス演算装置１０３により格納されたファイルシステムメタデータがミラーされるか、又は他にリフレクションサービス演算装置１０３上に複製として格納されるリフレクション（ミラー）役割で動作するように構成されてもよい。したがって、リフレクションサービス演算装置１０３は、オリジナルサービス演算装置のバックアップとしての役割を果たしてもよい。図示の例では、サービス演算装置１０３（２）は、リフレクション役割で動作しており、オリジナルサービス演算装置、すなわちこの例ではサービス演算装置１０３（１）、１０３（Ｎ）に含まれるファイルシステムメタデータに対応するファイルシステムメタデータを含んでもよい。
【００４１】
サービス演算装置１０３（１）がＵｓｅｒ１データ１６０を受信すると、データベースプログラム１１９は、データに関する情報を格納してもよく、データベースプログラム１１９により管理されるオリジナルＵｓｅｒ１ファイルシステム（ＦＳ）内のデータのパスを判断してもよい。加えて、サービス演算装置１０３上のサーバプログラム１１７は、Ｕｓｅｒ１データ１６０をサーバ１０２に転送してもよい。サーバ１０２上のデータベースプログラム１１８は、データベースプログラム１１８により管理されるＵｓｅｒ１ファイルシステムに関するなどのユーザ１データ１６０に関するメタデータをメタデータデータベース１２２内に格納してもよい。加えて、サーバ１０２上のサーバプログラム１１６は、Ｕｓｅｒ１データ１６０の少なくともオブジェクト部分をＵｓｅｒ１オブジェクトデータ１６２としてストレージシステム１０４に転送してもよい。ストレージシステム１０４は、Ｕｓｅｒ１オブジェクトデータ１６２を他のデータオブジェクト１５８と共にオブジェクトストレージ内に格納してもよい。クライアント装置１０８によるストレージシステム１０４からのオブジェクトの取り出しは、逆順で同様に達成され得る。
【００４２】
さらに、Ｕｓｅｒ１データリフレクション１６４もリフレクションサービス演算装置１０３（２）に格納されてもよい。例えば、システム構成に依存して、サービス演算装置１０３（１）又はサーバ１０２のいずれかは、専らメタデータを含み得るＵｓｅｒ１データリフレクション１６４、すなわちＵｓｅｒ１データ１６０を受信した結果として第１サービス演算装置１０３（１）上でなされたＵｓｅｒ１  ＦＳに対する変更をリフレクション役割サービス演算装置１０３に送信してもよい。したがって、オブジェクトデータは、典型的には、リフレクションサービス演算装置１０３（２）に送信されない可能性がある。サービス演算装置１０３（２）によるＵｓｅｒ１データリフレクション１６４の受信は、サービス演算装置１０３（２）上のデータベースプログラム（図１に示さず）に、サービス演算装置１０３（２）上のリフレクションＵｓｅｒ１ＦＳを、Ｕｓｅｒ１データリフレクション１６４内に含まれる情報に基づいて更新させるようにしてもよい。
【００４３】
上述のように、本明細書におけるサーバ１０２は、システム故障の場合のデータ損失を最小化することができる頑強な災害復旧機能を含んでもよい。当初のセーフガードとして、サーバ１０２は、メタデータデータベース１２２をストレージシステム１０４に定期的にバックアップしてもよい。例えば、週に１回、１日に１回、２日毎に１回、３日毎に１回、月に１回、又は任意の他の好適な期間などの定期的に、データベースプログラム１１８は、全メタデータデータベースバックアップ１６８を格納のためにストレージシステム１０４に送信してもよい。加えて、データベースプログラム１１８は、メタデータログバックアップ１７０を毎時間毎、半時間毎に、２時間毎などの定期的に送信してもよい。代替的に、メタデータログバックアップ１７０は、１６ＭＢ、３２ＭＢ、８ＭＢ等などの所定の閾値サイズに到達したときに送信されてもよい。したがって、この場合、メタデータログバックアップ１７０が送信される頻度は、どの程度激しくシステム１００が使用されるかに少なくとも部分的に依存する。
【００４４】
メタデータログバックアップ１７０は、災害復旧状況においてデータ復元を行うなどの、データの損失の場合にメタデータデータベース１２２をサーバ１０２に復元するために、の全メタデータデータベースバックアップ１６８に加えて使用されてもよい。しかし、メタデータデータベース１２２全体の定期的バックアップと、メタデータデータベース１２２全体の定期的バックアップ間に記録されるメタデータログのバックアップとは、データ損失の可能性を生じ得る。例えば、最後のメタデータログバックアップ１７０以降にクライアント１０８によりシステムに対して変更又は追加されたデータは、サーバ１０２上の回復されたメタデータデータベース１２２内に含まれない。その結果、サーバ１０２は、喪失データを、回復されたメタデータデータベース１２２に復元するためにサービス演算装置１０３と通信してもよい。
【００４５】
例えば、以下に追加的に論述されるように、最新の全メタデータバックアップの回復と、ストレージシステムからの定期的メタデータログバックアップとに続いて、サーバ１０２は、最初に、オリジナルモード役割で動作するサービス演算装置１０３（１）、１０３（Ｎ）とメタデータを同期させてもよい。その後、何らかのことがオリジナル装置の１つに起これば、サーバ１０２は、すべてのデータが回復されることを保証するために、リフレクション役割で動作しているサービス演算装置１０３（２）及び任意の他のサービス演算装置１０３と、メタデータを同期させてもよい。オリジナル役割演算装置上のデータとリフレクション役割演算装置上のデータとの間に競合があれば、オリジナル役割演算装置は、権限のあるものとして扱われてもよい。オリジナルサービス演算装置１０３との同期の完了に続いて、サーバ１０２は、回復モードを抜け、通常動作モードで動作することをもう一度開始してもよい。サーバ１０２のメタデータデータベース１２２とサービス演算装置１０３との同期の追加の詳細は、以下に説明される。
【００４６】
図２は、いくつかの実装形態による、サーバ１０２及びストレージシステム１０４の１つの可能な例示的構成２００を示す。例示的構成２００では、第１サーバ１０２（１）は第２サーバ１０２（２）に接続されてもよい。例えば、第１サーバ１０２（１）及び第２サーバ１０２（２）は、格納及びデータ管理サービスを複数のサービス演算装置１０３及びクライアント装置１０８（図２に示さず）に提供するための演算ポッドを一緒に形成してもよい。いくつかの例では、少なくともメタデータデータベース１２２を維持することに関して、第１サーバ１０２（１）は、マスタ又は主演算装置として働いてもよい一方、第２サーバ１０２（２）は、スレーブ又は副演算装置として働いてもよい。例えば、第１サーバ１０２（１）上のデータベースプログラム１１８は、第１サーバ１０２（１）上のメタデータデータベース１２２を更新及び維持してもよい。例えば、第１サーバ１０２（１）上のデータベースプログラム１１８は、ファイルシステム１２４、任意の関連フォルダ情報、及びユーザアカウント情報２０２を含むユーザ情報１２６を管理してもよい。
【００４７】
２０４で示すように、第１サーバ１０２（１）上のデータベースプログラム１１８又は他のプログラムは、メタデータデータベース１２２を第２サーバ１０２（２）に複製してもよい。したがって、第２サーバ１０２（２）は、ファイルシステム１２４及びユーザ情報１２６の複製を含み得るメタデータデータベース１２２の複製を維持してもよい。第１サーバ１０２（１）が故障すると、第２サーバ１０２（２）は、第１サーバ１０２（１）が、異なるサーバ（図２に示さず）により置換及び／又は修理される間、主演算装置の役割を引き受けてもよい。この間、第２サーバ１０２（２）は、メタデータデータベース１２２を維持及び更新し、クライアント装置１０８及びストレージシステム１０４と相互作用してもよい。したがって、災害がサーバ１０２の１つのみに影響する場合、典型的には、データ損失なしに、他方が動作を継続し得る。
【００４８】
加えて、この例は、サーバ１０２がアプリケーションプログラムインターフェース（ＡＰＩ）情報２０６を含んでもよいことを示す。例えば、本明細書における演算装置は、サービス １０２、サービス演算装置１０３、クライアント装置１０８及びストレージシステム１０４間など）演算装置間（の情報の伝達のためにＡＰＩを使用してもよい。好適なＡＰＩの一例は、ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  ｓｔａｔｅ  ｔｒａｎｓｆｅｒ（ＲＥＳＴ）ＡＰＩであるが、本明細書における実装形態は、いかなる特定のＡＰＩにも限定されない。
【００４９】
さらに、構成２００は、１以上ネットワーク１０６上で互いに通信状態であり得る第１ストレージシステム１０４（１）及び第２ストレージシステム１０４（２）を含む。この例では、第１ストレージシステム１０４は、複製されたバックアップ２０８を第１ストレージシステムから第２ストレージシステムに送信してもよい。したがって、第２ストレージシステム１０４は、全メタデータデータベースバックアップ１６８及びメタデータログバックアップ１７０の複製も含んでもよい。したがって、サーバ１０２（１）とサーバ１０２（２）との両方の破局的故障に続いて、サーバ１０２（１）、１０２（２）は、２１０で示すように、失われたデータを、全メタデータデータベースバックアップと最新ログとを使用することにより回復してもよい。
【００５０】
加えて、システム１００は、例えば、１以上のネットワーク１０６を介して管理者２１４に関連付けられた管理者演算装置２１２を含んでもよく、又はそれと通信することができてもよい。例えば、管理者演算装置２１２は、サーバ１０２及びストレージシステム１０４に関する情報を管理者２１４に提供すると共に、アドミニストレータ２１４が、どの程度頻繁に全メタデータデータベースバックアップ１６８及びメタデータログバックアップ１７０が行われるかなどの本システム内のセッティングを管理することを可能にする１以上のユーザインターフェースを提供する管理者アプリケーション２１６を含んでもよい。さらに、図２の例は、１以上のサーバ１０２及び１以上のストレージシステム１０４の可能な構成の単なる一例である。多数の他の構成は、本明細書の開示の恩恵を受ける当業者に明らかになる。
【００５１】
図３は、いくつかの実装形態による、ミラーリングが適用される前後の３つのサービス演算装置の例示的構成３００を示すブロック図である。この例では、第１サービス演算装置１０３（１）は、これらの３つのサービス演算装置１０３間で使用されているすべてのファイルシステムの上位集合を含むため、オリジナル役割で機能するようにサーバ１０２により選択されてもよい。いくつかの例では、ミラー集合に含まれることになるサービス演算装置のいかなるサービス演算装置１０３もすべてのファイルシステムの上位集合を有しない場合、最大数のファイルシステムを現在有するサービス演算装置１０３がオリジナル装置となるようにサーバ１０２により選択されてもよく、リフレクション装置として使用されるように意図されている装置であり、オリジナル装置となるように選択されたサービス演算装置上にまだ存在しない装置上に存在する任意の残りのファイルシステムは、選択されたオリジナルサービス演算装置に移動されてもよい。サービス演算装置１０３（１）〜１０３（３）に追加されるいかなる新しいファイルシステムも、オリジナル役割が割り当てられた第１サービス演算装置１０３（１）に追加され、リフレクション役割が割り当てられた第２サービス演算装置１０３（２）及び第３サービス演算装置１０３（３）にミラーリングされる。
【００５２】
図示の例では、ミラーリングが適用される前、第１サービス演算装置１０３（１）は、ユーザのファイルシステム３０２、管理者ファイルシステム３０４、マーケティング部ファイルシステム３０６、ネットワーク共有ファイルシステム３０８、管理ファイルシステム３１０、及び開発ファイルシステム３１２を含む複数のファイルシステムを含む。さらに、第２サービス演算装置１０３（２）は、マーケティング部ファイルシステム３０６及びネットワーク共有ファイルシステム３０８を含む。加えて、第３サービス演算装置１０３は、ユーザのファイルシステム３０２及び管理者ファイルシステム３０４を含む。上に列挙されたファイルシステム３０２〜３１２のそれぞれは、１行目上に列挙されたファイルシステムパス及び２行目上に列挙された関連ファイルシステムＩＤ（ｆｓＩＤ）を有する。ファイルシステムパスとファイルシステムＩＤとの両方は、図１に関して上に論述されたシステム１００などのファイルシステム３０２〜３１２が使用されるコンピュータシステム内で一意的であり得るか又は個々に区別可能であってもよい。ファイルシステム３０２〜３１２のそれぞれは、対応するファイルシステムがユーザにとって必ずしも個人ではないように、いくつかの例ではチームフォルダであってもよいが、ユーザの個人ファイルシステム下にマウントされ得るフォルダに対応してもよい。ファイルシステム／フォルダは、マッピングＰＵＴが行われた後などに、サーバ上のチームフォルダとして表され得るサービス演算装置１０３にとってローカルであるフォルダである「共有」（とも呼ばれてもよい。共有のマッピング情報は、例えば、ｆｓＩＤ及びパスを含んでもよい。
【００５３】
ミラーリングが適用された後、第１サービス演算装置１０３（１）は、３１６で示すように、オリジナルサービス演算装置として働き、第２サービス演算装置１０３（２）及び第３サービス演算装置１０３（３）は、３１８、３２０でそれぞれ示すように、リフレクション演算装置として働く。サービス演算装置１０３のそれぞれは、ファイルシステム３０２〜３１２の複製を維持する。オリジナルサービス演算装置１０３（１）がファイルシステム３０２〜３１２の１つに対する更新を受信すると、更新は、矢印３２２、３２４によりそれぞれ示されるようにリフレクションサービス演算装置１０３（２）、１０３（３）に伝播される。加えて、いくつかの例では、更新は、第２サービス演算装置１０３（２）と第３サービス演算装置１０３（３）との間で伝播されてもよい。
【００５４】
図４は、いくつかの実装形態による、オリジナルサービス演算装置と、ミラーサービス演算装置と、サーバとの間の関係を示すブロック図４００である。サービス演算装置１０３及びサーバ１０２上において、各ユーザ、グループ又はチームに属するフォルダは、それぞれ別のファイルシステムに編制されてもよい。各ファイルシステムを記述するメタデータは、サービス演算装置メタデータデータベース及びサーバメタデータデータベース内に格納されてもよい。
【００５５】
この例では、第１サービス演算装置１０３（１）は、オリジナルサービス演算装置として構成され、Ｕｓｅｒ１フォルダ４０４、Ｕｓｅｒ２フォルダ４０６、及びＵｓｅｒ３フォルダ４０８を含む複数のユーザ副フォルダを有するユーザのフォルダ４０２を含む。加えて、第１サービス演算装置１０３は、グループマーケティングフォルダ４１０、及びグループエンジニアリングフォルダ４１２を含む。フォルダ４０４〜４１２のそれぞれは、図１に関して上に論述されたコンピュータシステム１００などのコンピュータシステム内で一意的であってもよく、又は個々に区別可能であってもよい、関連ファイルシステムＩＤ（ｆｓＩＤ）を含む。上述のように、各フォルダは、コンピュータシステム１００内の別のファイルシステムに対応してもよく、また図３に関して上に論述したような一意のファイルシステムパス（図４に示さず）を有していてもよい。
【００５６】
第１サービス演算装置１０３（１）内のフォルダ４０４〜４１２の任意のものに対する更新が受信されると、更新は、矢印４１４により示されるようにオリジナルサービス演算装置１０３（１）からリフレクションサービス演算装置１０３（２）にミラーリングされてもよい。加えて、サーバ１０２は、フォルダ４０２〜４１２のそのバージョンも維持する。矢印４１６により示されるように、第１サービス演算装置１０３内のフォルダ４０４〜４１２に対する更新も通常動作中にサーバ１０２に送信される。
【００５７】
図５は、いくつかの実装形態による、オリジナルサービス演算装置、リフレクションサービス演算装置及びサーバ上のファイルシステムトランザクションマッピングの例を示すブロック図５００である。図５に示すように、第１サービス演算装置１０３（１）、第２サービス演算装置１０３（２）及び第３サービス演算装置１０３（３）は、同じミラー集合５０２の一部である。ミラー集合５０２では、第１サービス演算装置１０３（１）は、オリジナル装置として動作し、第２サービス演算装置１０３（２）及び第３サービス演算装置１０３（３）は、第１サービス演算装置１０３（１）上のファイルシステムメタデータのリフレクション、すなわち複製であるコンテンツを有するリフレクション装置として動作する。さらに、第４サービス演算装置１０３（４）は、ミラー集合５０２の一部ではない。
【００５８】
この例では、同じミラー集合５０２の一部である各サービス演算装置１０３（１）〜１０３（３）は、同じマッピング識別子（ＩＤ）を割り当てられる。同じマッピングＩＤを有することは、これらのサービス演算装置１０３（１）〜１０３（３）のそれぞれが、場合により、オリジナルサービス演算装置１０３（１）及びマッピングＩＤに関連するファイルシステムの回復のための情報をサーバ１０２に提供し得ることを示している。この例では、ミラー集合５０２内のサービス演算装置１０３（１）〜１０３（３）のマッピングＩＤは、「１２３」であり、第４サービス演算装置１０３（４）のマッピングＩＤは、「３４５」である。マッピングＩＤは、任意の好適な手順を使用して割り当てられてもよく、システム１００内で一意的であるか又は他に個々に区別可能であってもよい。
【００５９】
サーバ１０２は、サービス演算装置１０３と、その上に維持されるファイルシステムとを追跡するための複数のデータ構造を含んでもよい。この例では、サーバ１０２は、ミラー役割及びマッピングデータ構造５０４を含む。ミラー役割及びマッピングデータ構造５０４は、サービス演算装置（ＳＣＤ）ＩＤ５０６、識別されたサービス演算装置のミラー役割５０８及び識別されたサービス演算装置のマッピングＩＤ５１０を含む。したがって、このデータ構造５０４は、第１、第２及び第３サービス演算装置１０３（１）〜１０３（３）が同じマッピングＩＤ１２３を有する一方、第４サービス演算装置１０３（４）が異なるマッピングＩＤを有することを示している。
【００６０】
サーバ１０２は、トランザクション追跡データ構造５１２をさらに含む。トランザクション追跡データ構造は、マッピングＩＤ５１４と、対応するトランザクションＩＤ５１６とを含む。例えば、第１サービス演算装置１０３（１）、すなわちオリジナル装置により維持されるファイルシステムのマッピングに関してトランザクションが実行されるたびに、トランザクションＩＤは、インクリメントされる。トランザクションの例は、共有追加、共有除去、共有名変更を含んでもよい。加えて、サーバ１０２は、マッピングＩＤ５２２、ファイルシステムＩＤ５２４、及び共有パス５２６を含むフォルダ追跡データ構造５２０を含んでもよい。例えば、フォルダ追跡データ構造５２０は、フォルダＡ及びＢが、マッピングＩＤ１２３に対応するサービス演算装置により管理される一方、フォルダＣが、マッピングＩＤ３４５に対応するサービス演算装置により管理されることを示している。
【００６１】
加えて、サーバ１０２は、各ファイルシステムＦＳ１、ＦＳ２、ＦＳ３内にそれぞれ含まれるファイルを識別するデータ構造５３０、５３２、及び５３４を含む。例えば、データ構造５３０は、ファイルシステムＦＳ１がファイルａ．ｔｘｔを含むことを示し、データ構造５３２は、ファイルシステムＦＳ２がファイルｂ．ｔｘｔを含むことを示し、データ構造５３４は、ファイルシステムＦＳ３がファイルｃ．ｔｘｔを含むことを示している。いくつかの例では、バージョンは、更新されたサービス演算装置上のファイルと、更新されなかったサービス演算装置上のファイルとをサーバが区別することができるように各ファイルに関連付けられてもよい。
【００６２】
加えて、サービス演算装置１０３のそれぞれは、それぞれのサービス演算装置のマッピングＩＤと現在のトランザクションＩＤ５４０とを含むトランザクションＩＤ情報構造５３６を含んでもよい。この例では、第１サービス演算装置１０３（１）及び第２サービス演算装置１０３（２）内のトランザクションＩＤは、サーバデータ構造５１２内のトランザクションＩＤ５１６の現在のカウントと同じである「５」に等しい。例えば、第１サービス演算装置１０３（１）、第２サービス演算装置１０３（２）及び第３サービス演算装置１０３（３）は、５４２で示すように、ファイルａ．ｔｘｔを含むフォルダＡを含む。一方、第１サービス演算装置１０３（１）及び第２サービス演算装置１０３（２）は、５４４で示すように、ファイルｂ．ｔｘｔを含むフォルダＢも含むが、第３サービス演算装置１０３（３）は、フォルダＢ及びファイルｂ．ｔｘｔを含まない。その結果、「４」に対応するトランザクションＩＤは、フォルダＢが第３サービス演算装置１０３にまだ反映されていないことを示している。加えて、「なし」の役割を有する第４サービス演算装置は、５４６で示すように、ファイルｃ．ｔｘｔを有するフォルダＣを含む。
【００６３】
図６〜９は、いくつかの実装形態による例示的処理を示すフロー図である。これらの処理は、一連の作業を表す論理フロー図内のブロックの集合として示され、そのいくつか又はすべては、ハードウェア、ソフトウェア又はそれらの組み合わせで実装されてもよい。ソフトウェアに関連して、ブロックは、１以上のプロセッサにより実行されると、列挙された作業を行うようにプロセッサをプログラムする、１以上のコンピュータ可読媒体上に格納されるコンピュータ実行可能命令を表してもよい。典型的に、コンピュータ実行可能命令は、特定の機能を行う又は特定のデータタイプを実装するルーチン、プログラム、オブジェクト、部品、データ構造などを含む。ブロックが説明される順番は、限定として解釈されるべきでない。説明されたブロックの任意の数のブロックは、処理又は代替処理を実施するために任意の順番において及び／又は並列に組み合わされてもよく、ブロックのすべてが実行される必要があるわけではない。論述の目的のために、これらの処理は、本明細書の例において説明される環境、フレームワーク、及びシステムを参照して説明されることになるが、これらの処理は、幅広い種類の他の環境、フレームワーク、及びシステムにおいて実装されてもよい。
【００６４】
災害、破局的機能停止、又は他の故障が発生すると、サーバ１０２は、完全に失われる可能性があり、新しい又は修復されたサーバ１０２がバックアップから復元される必要がある。この状況では、回復前にサーバ１０２と同期していたサービス演算装置１０３は、トランザクションを処理する際にサーバに先行することになる。換言すれば、サービス演算装置１０３は、回復中のサーバが取り込んでいないサービス演算装置１０３が管理するファイルシステムに対する変更を有し得る。したがって、サービス演算装置１０３上のトランザクションＩＤは、サーバ１０２上のトランザクションＩＤより高いことがあり得る。その結果、サービス演算装置１０３がサーバ１０２からその状態を直接更新すると、ローカル変更は、失われる可能性がある。
【００６５】
図６は、いくつかの実装形態によるサーバ回復の例示的処理６００を示すフロー図である。いくつかの場合、処理６００は、サーバ１０２により少なくとも部分的に実行されてもよう、１以上のサービス演算装置１０３により少なくとも部分的に実行されてもよい。図６では、サーバの故障が発生し、サーバがデータを回復するための回復処理中であり、サーバ１０２により管理される複数のサービス演算装置１０３と同期状態に戻ることを仮定する。要約すると、故障がサーバ上で発生した後、サーバは、ストレージシステム１０４上で維持されるすべてのメタデータデータベースバックアップ及びストレージシステム１０４上でまた維持されるメタデータログバックアップからファイルシステムメタデータを回復する。その後、サーバは、各オリジナルサービス演算装置上に格納された情報を利用することにより、回復手順をオリジナルサービス演算装置に実行させるために各オリジナルサービス演算装置と最初に通信する。サーバは、トランザクションのすべて及び他の情報がサーバにより回復されることを保証するために、リフレクション装置上に格納された情報をさらにチェックしてもよい。
【００６６】
６０２で、サーバは、回復モードに入り、最新の全メタデータデータベースバックアップ及びいくつかの間にあるメタデータログバックアップからデータを回復する。例えば、管理者は、いくつかの場合に回復を開始してもよい。他の場合、回復は、サーバ自身又は別の演算装置により自動的に開始されてもよい。
【００６７】
６０４で、サーバは、要求を受信したこと又はそうでなければ受信しなかったことに応答して、サーバがＳＣＤにサーバからそれぞれのＳＣＤ情報を要求させための回復モードにあることを示す通信をサービス演算装置（ＳＣＤ）の１以上に送信してもよい。
【００６８】
６０６で、ＳＣＤ情報を要求したそれぞれのＳＣＤは、ＳＣＤ情報をサーバから受信してもよい。サーバから受信されるＳＣＤ情報の例は、図５のデータ構造５０４に関して上に論述されたようなそれぞれのＳＣＤのミラー役割及びマッピングＩＤと、図５のデータ構造５１２に関して上に論述されたようなそれぞれのＳＣＤのマッピングＩＤに対応する現在のトランザクションＩＤと、図５のデータ構造５２０に関して上に論述されたようなＳＣＤのマッピング情報（例えば、マッピングＩＤ、ファイルシステムＩＤ及び共有パス）を含んでもよい。
【００６９】
６０８で、ＳＣＤ情報を受信したＳＣＤは、サーバから受信されたＳＣＤ情報内に示されているミラー役割に基づいて、そのミラー役割を決定してもよい。ミラー役割が「オリジナル」又は「なし」であれば、処理は、６１０に進む。他方では、ミラー役割が「リフレクション」であれば、処理は、６２２に進む。
【００７０】
６１０で、役割がオリジナル又はなしである場合、ＳＣＤは、オリジナル回復モードに入り、回復が完了するまでサーバからのすべてのファイル同期読み取り／書き込みを拒絶する。
【００７１】
６１２で、ＳＣＤは、サーバ上の情報と照合するためにマッピングを回復する（この動作の詳細に関しては、図７〜９を参照）。
【００７２】
６１４で、ＳＣＤは、サーバと共通する任意のマッピングを決定してもよい。共通のマッピングが存在する場合、処理は、６１６に進む。そうでなければ、処理は、６１８に進む。
【００７３】
６１６で、ＳＣＤは、バージョンを有するすべてのローカルファイル並びに照合のためのそれらのセキュリティ記述子及び拡張属性をサーバに送信し、ＳＣＤは、各ローカルファイルの回復指示子を例えば「ＰＵＴ」又は「ＵＰＤＡＴＥ」の１つに設定する。例えば、ＳＣＤは、全ローカル状態をトラバースし、ファイルを管理するサービス演算装置が、最後にサービス演算装置がサーバと同期していた以降のローカル変更を有するか否かを示す指標を有するバージョン（例えば、ある時点で同期していた）を有する、ファイル、フォルダ、マウントポイントなどのすべてのローカルアイテムをサーバに送信する。１つの非限定的例として、ローカルアイテムの送信及びサーバとの同期処理は、各ファイルのファイル名、ファイルパス、ハッシュ及びサイズに関する情報を有するＲＥＳＴ  ＡＰＩ  ＰＵＴとして実行されてもよい。通信は、サーバがファイルコンテンツをまだ受信していなければ、ファイルのコンテンツも含んでもよい。サーバは、これらのＰＵＴをサーバ上の既存状態で照合してもよい。いくつかの例では、セキュリティ記述子及び拡張属性は、システム内に格納されたファイルに関連するメタデータであってもよい。セキュリティ記述子及び拡張属性は、ファイル及びフォルダ及び特殊属性（例えば、ファイルが隠されているか否か）へのユーザアクセスを制御するために使用されてもよい。例えば、サーバ及び／又はサービス演算装置は、パス情報、ファイルハッシュ、ファイルサイズなどの処理と同様に、セキュリティ記述子及び拡張属性をメタデータとして扱ってもよい。したがって、ＳＣＤがそのファイルのすべてを照合のためにサーバに送信する場合、ＳＣＤは、この情報も含み得る。
【００７４】
６１８で、ＳＣＤは、回復が完了していることを示す通信をサーバに送信する。さらに、ＳＣＤは、オリジナル回復モードから抜け出て、サーバからのファイル同期読み取り／書き込みを受け付けることを開始してもよい。
【００７５】
６２０で、ＳＣＤは、バージョンのないすべてのローカルファイルを正常ポストとしてサーバに送信する。
【００７６】
一方、６２２で、ＳＣＤのミラー役割が「オリジナル」又は「なし」ではなく「リフレクション」である場合、ＳＣＤは、リフレクション回復モードに入り、回復が完了するまでサーバからのすべてのファイル同期読み取り／書き込みを拒絶する。
【００７７】
６２４で、ＳＣＤは、サーバからＳＣＤ情報を要求して受信する。要求されたＳＣＤ情報は、要求しているＳＣＤの現在のミラー役割を少なくとも示してもよい。
【００７８】
６２６で、ＳＣＤは、ミラー集合内のリフレクション役割がまだ割り当てられているかどうかを判断する。そうであれば、処理は、６２８に進む。そうでなければ、処理は、６１０に進む。
【００７９】
６２８で、リフレクション役割がまだ割り当てられていれば、ＳＣＤは、マッピング情報をサーバから要求する。
【００８０】
６３０で、ＳＣＤは、マッピングがまだ回復モードにあるかどうかを判断してもよい。そうであれば、処理は、６２４に戻る。そうでなければ、処理は、６３２に進む。
【００８１】
６３２で、マッピングが回復モードになければ、ＳＣＤは、サーバから受信されたマッピング情報をローカルに保存し、処理は、ブロック６１６に進む。
【００８２】
６３４で、６２０の完了に続いて、ＳＣＤは、サーバから、ＳＣＤにより管理されるすべてのファイルのすべての最新メタデータを要求してもよい。
【００８３】
６３６で、ＳＣＤにより管理されるすべてのファイルの最新メタデータの受信に続いて、回復が完了する。
【００８４】
図７は、いくつかの実装形態による、サービス演算装置がマッピングを回復し、サーバ上の情報と照合するための例示的処理７００を示すフロー図である。いくつかの場合、処理７００は、１以上のサービス演算装置１０３により少なくとも部分的に実行されてもよい。さらに、いくつかの例では、図７〜９の処理は、図６のブロック６１２に対応してもよい。
【００８５】
７０２で、サービス演算装置（ＳＣＤ）は、サーバからＳＣＤ情報を受信する。図６、５に関して上に述べたように、ＳＣＤ情報は、要求しているＳＣＤに割り当てられたマッピングＩＤ、存在する場合、を含んでもよい。
【００８６】
７０４で、演算装置は、サーバがＳＣＤのマッピングＩＤを有するかどうかを判断してもよい。ＳＣＤのマッピングＩＤがサーバ上に存在しない場合、処理は、７０６に進む。ＳＣＤのマッピングＩＤがサーバ上に存在する場合、処理は、７１４に進む。
【００８７】
７０６で、ＳＣＤは、ＳＣＤがマッピングＩＤのローカル記録を有するかどうかを判断する。そうであれば、処理は、７１０に進む。そうでなければ、処理は、７０８に進む。
【００８８】
７０８で、サーバもＳＣＤもＳＣＤのマッピングＩＤを有しない場合、マッピング回復が完了する。
【００８９】
７１０で、サーバがＳＣＤのマッピングＩＤを有しないが、ＳＣＤがマッピングＩＤを有する場合、ＳＣＤは、それ自体のローカルマッピングをサーバに送信する。例えば、ＳＣＤは、ＳＣＤメタデータデータベースから共有及び監視パスと共にマッピングＰＵＴ要求を生成してもよい。いくつかの例では、「共有」は、マッピングＰＵＴが行われた後にサーバ上のチームフォルダとして表され得るような、ＳＣＤにとってローカルであるフォルダである。例えば、ＳＣＤ１０３（１）の図３に示す例では、各フォルダ３０２〜３１２は、「共有」に対応する。マッピングＰＵＴがＳＣＤにより行われた後、サーバは、それらのフォルダ３０２〜３１２のそれぞれにｆｓＩＤを割り当ててもよい。次に、ＳＣＤは、例えば、各共有のｆｓＩＤ及びパスを含む、サーバにより戻される各共有の新しいマッピング情報を受信してもよく、７１２で以下に論述されるように、このマッピング情報をそのローカルメタデータデータベース内に保存する。
【００９０】
７１２で、ＳＣＤは、それ自体のローカルマッピングを、サーバから受信されたマッピングで置換する。例えば、７１０でのＰＵＴ要求に応答して、ＳＣＤは、サーバからデータベース共有のためのマッピング情報を受信してもよく、ＳＣＤのローカルメタデータデータベースを、サーバから受信される共有に基づいて更新してもよい。７１２に続いて、処理は、７０８に進み、マッピング回復が完了する。
【００９１】
７１４で、サーバがＳＣＤのマッピングＩＤを実際に有する場合、ＳＣＤは、次に、ＳＣＤがマッピングＩＤのローカル記録を有するかどうかを判断する。そうであれば、処理は、７１６に進む。そうでなければ、処理は、上に論述された作業を行うために７１２に進む。
【００９２】
７１６で、ＳＣＤは、サーバマッピングＩＤとＳＣＤマッピングＩＤとが互いに整合するかどうかを判断する。そうであれば、処理は、７１８に進む。そうでなければ、処理は、７１２に進む。例えば、マッピングＩＤがこのＳＣＤのサーバ上に実際に存在するが、サーバ上のマッピングＩＤが、ＳＣＤがそのマッピングＩＤとして記録したものと整合しない場合、エラーが発生した可能性がある。
【００９３】
７１８で、サーバマッピングＩＤとＳＣＤマッピングＩＤとが互いに整合すると、ＳＣＤは、共有マッピングをサーバから要求する。
【００９４】
７２０で、ＳＣＤは、ＳＣＤローカルマッピングトランザクションＩＤがサーバのマッピングトランザクションＩＤ以下であるかどうかを判断する。そうであれば、処理は、７１２に進む。そうでなければ、処理は、７２２に進む。
【００９５】
７２２で、ＳＣＤローカルマッピングトランザクションＩＤがサーバのマッピングトランザクションＩＤより大きい場合、これは、ＳＣＤがサーバに先行していることを意味し、マッピング構造（例えば、図３、アイテム３１６に関して上に論述されたような）は、照合される必要があり得る。
【００９６】
７２４で、ＳＣＤは、ローカルマッピング及びサーバマッピングを共有パスによりソートし、処理は、図８に進む。
【００９７】
図８は、いくつかの実装形態による、図７の例示的処理７００の続きである例示的処理８００を示すフロー図である。いくつかの場合、処理８００は、１以上のサービス演算装置１０３により少なくとも部分的に実行されてもよい。処理８００は、上に論述された図７のブロック７２４に続く。
【００９８】
８０２で、ＳＣＤは、サーバのマッピング内の各共有をローカルマッピング内の各共有と比較する。例えば、ＳＣＤは、ＳＣＤのローカル共有パス及びｆｓＩＤをサーバの共有パス及びｆｓＩＤと比較してもよい。
【００９９】
８０４で、演算装置は、ＳＣＤのローカル共有パス及び共有ファイルシステムＩＤがサーバの共有パス及び共有ファイルシステムＩＤと整合するかどうかを判断してもよい。そうであれば、処理は、８０６に進む。そうでなければ、処理は、次のサーバ共有をＳＣＤローカル共有と比較するために８０２に進む。
【０１００】
８０６で、演算装置は、すべての共有が処理されたかどうかを判断してもよい。そうであれば、処理は、図９に進む。そうでなければ、処理は、次のサーバ共有をＳＣＤローカル共有と比較するために８０２に進む。
【０１０１】
８０８で、ＳＣＤは、共有ファイルシステムＩＤが整合するが、共有パスが整合しないかどうかを判断する。そうであれば、処理は、８１０に進む。そうでなければ、処理は、８１２に進む。
【０１０２】
８１０で、共有ファイルシステムＩＤが整合するが、共有パスが整合しない場合、ＳＣＤは、共有が同じファイルシステムＩＤであるが、異なる共有パスを有することを判断し、８０６に進む。
【０１０３】
８１２で、共有パスとファイルシステムＩＤとが整合しない場合、ＳＣＤは、共有パスが整合するかどうかを判断する。そうであれば、処理は、８１４に進む。そうでなければ、処理は、８１６に進む。
【０１０４】
８１４で、ＳＣＤは、共有が同じパスであるが、異なるファイルシステムＩＤを有することを判断し、８０６に進む。
【０１０５】
８１６で、ＳＣＤは、共有パスもファイルシステムＩＤも整合しないことを判断する。
【０１０６】
８１８で、共有パスとファイルシステムＩＤとが整合しない場合、ＳＣＤは、サーバ共有パスがＳＣＤ共有パスの前にソートされたかどうかを判断する。そうであれば、処理は、８２０に進む。そうでなければ、処理は、８２２に進む。
【０１０７】
８２０で、ＳＣＤは、サーバマッピングからの共有を使用し、８０６に進む。
【０１０８】
８２２で、ＳＣＤは、ローカルマッピングからの共有を使用し、８０６に進む。
【０１０９】
図９は、いくつかの実装形態による、図７の例示的処理７００及び図８の処理８００の続きである例示的処理９００を示すフロー図である。いくつかの場合、処理９００は、１以上のサービス演算装置１０３により少なくとも部分的に実行されてもよい。処理９００は、上に論述された図８のブロック８０６に続く。
【０１１０】
９０２で、ＳＣＤは、同じファイルシステムＩＤ及び異なる共有パスを有する共有が存在するかどうかを判断する。そうであれば、処理は、９０４に進む。そうでなければ、処理は、９０６に進む。
【０１１１】
９０４で、ファイルシステム共有毎に、ＳＣＤは、サーバ共有を消去し、ＳＣＤローカル共有をサーバに送信する。
【０１１２】
９０６で、ＳＣＤは、サーバのみが有する共有が存在するかどうかを判断する。そうであれば、処理は、９０８に進む。そうでなければ、処理は、９１０に進む。
【０１１３】
９０８で、サーバのみが有する共有毎に、ＳＣＤは、サーバ共有を消去する。
【０１１４】
９１０で、ＳＣＤは、同じ共有パス及び異なるファイルシステムＩＤを有する共有が存在するかどうかを判断する。そうであれば、処理は、９１２に進む。そうでなければ、処理は、９１４に進む。
【０１１５】
９１２で、共有毎に、ＳＣＤは、サーバ共有を消去し、ＳＣＤローカル共有をサーバに送信する。
【０１１６】
９１４で、ＳＣＤは、ＳＣＤのみが有する共有が存在するかどうかを判断する。そうであれば、処理は、９１６に進む。そうでなければ、処理は、９１８に進む。
【０１１７】
９１６で、共有毎に、ＳＣＤは、ＳＣＤローカル共有をサーバに送信する。
【０１１８】
９１８で、ＳＣＤは、マッピング手順が完了していることを判断し、図６のブロック６１４に進む。
【０１１９】
本明細書において説明される例示的処理は、論述の目的のために提供される処理の単に一例である。多数の他の変形形態が本明細書の開示に照らして当業者に明らかになる。さらに、本明細書の開示は、処理を実行するための好適なフレームワーク、構成及び環境のいくつかの例を記載するが、本明細書における実装形態は、示され且つ論述された特定の例に限定されない。さらに、本開示は、添付図面において説明し且つ示したような様々な実施例を提供する。しかし、本開示は、本明細書で説明され且つ示された実装形態に限定されないが、当業者に知られているであろうように又は知られることになるであろうように他の実装形態に拡張し得る。
【０１２０】
図１０は、いくつかの実装形態による例示的クライアント装置１０８の選択された例示的部品を示す。各クライアント装置１０８は、ワークステーション、デスクトップ、ラップトップ、タブレット演算装置、モバイル機器、スマートフォン、ウェアラブル演算装置又はネットワーク上でデータを送受信することができる任意の他のタイプの演算装置などの任意の好適なタイプの演算装置であってもよい。さらに、クライアント装置１０８は、１以上のネットワーク１０６を介して、別のネットワークを介して又は任意の他の好適なタイプの通信接続（図１０に示さず）を介して１以上のサーバ１０２と通信することができてもよい。多数の他の変形形態は、本明細書の開示の恩恵を有する当業者に明らかになり得る。
【０１２１】
基本構成では、クライアント装置１０８は、少なくとも１つのプロセッサ１００２、１以上のコンピュータ可読媒体１００４、１以上の通信インターフェース１００６、及び１以上の入力／出力（Ｉ／Ｏ）部品１００８などの部品を含む。各プロセッサ１００２自体は、１以上のプロセッサ又は処理コアを含み得る。例えば、各プロセッサ１００２は、１以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、ステートマシン、論理回路系、及び／又は操作命令に基づいて信号を操作する任意の装置として実現され得る。いくつかの場合、プロセッサ１００２は、本明細書において説明される処理及び他のアルゴリズムを実行するように特別にプログラム又は構成された任意の好適なタイプの１以上のハードウェアプロセッサ及び／又は論理回路を含み得る。プロセッサ１００２は、コンピュータ可読媒体１００４内に格納されるコンピュータ可読プロセッサ実行可能命令をフェッチ及び実行するように構成され得る。
【０１２２】
クライアント装置１０８の構成に依存して、コンピュータ可読媒体１００４は、有形の非一時的コンピュータ可読媒体の一例であってもよく、コンピュータ可読プロセッサ実行可能命令、データ構造、プログラムモジュール又は他のデータなどの情報の格納のための任意のタイプの技術で実現される揮発性及び非揮発性メモリ並びに／又は着脱可能及び着脱不能媒体を含んでもよい。コンピュータ可読媒体１００４は、限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ソリッドステートストレージ、光学ストレージ、磁気ディスクストレージ、磁気テープ及び／又は他のタイプのストレージ技術を含んでもよい。さらに、いくつかの場合、クライアント装置１０８は、例えば、直接、別の演算装置を介して又はネットワークを介して、外部ストレージにアクセスしてもよい。したがって、コンピュータ可読媒体１００４は、プロセッサ１００２により実行され得る命令、プログラム又はソフトウェアコードを格納することができるコンピュータ記憶媒体であってもよい。
【０１２３】
コンピュータ可読媒体１００４は、プロセッサ１００２により実行可能である任意の数の機能部品を格納及び維持するために使用されてもよい。いくつかの実装形態では、これらの機能部品は、プロセッサ１００２により実行可能であり、実行されると、クライアント装置１０８に上記のように帰する行為及びサービスを行うための演算論理を実施する命令又はプログラムを含む。コンピュータ可読媒体１００４内に格納されたクライアント装置１０８の機能部品は、上に論述したようにクライアントアプリケーション１３６を含んでもよい。追加の機能部品は、クライアント装置１０８の様々な機能を制御及び管理し、且つクライアント装置１０８との基本的なユーザ相互作用を可能にするためのオペレーティングシステム１０１０を含んでもよい。コンピュータ可読媒体１００４は、様々な機能及びタスクを行うためのクライアント装置１０８上で実行され得るブラウザアプリケーションを含み得る１以上の他のアプリケーション１０１４をさらに含んでもよい。追加的に又は代わりに、いくつかの場合、クライアントアプリケーション１３６は、ブラウザであっても、又はそれを含んでもよい。
【０１２４】
加えて、コンピュータ可読媒体１００４は、機能部品により使用されるデータ、データ構造なども格納してもよい。例えば、コンピュータ可読媒体１００４により格納されるデータ及びデータ構造は、１以上のファイル１０１２及び／又は他のデータオブジェクトを含んでもよい。クライアント装置１０８のタイプに依存して、コンピュータ可読媒体１００４は、任意選択的に、プログラム、ドライバなどを含み得る他の機能部品及びデータ（他のモジュール及びデータ１０１４など）並びに機能部品により使用又は生成されるデータも含んでもよい。
【０１２５】
クライアント装置１０８は、１以上の通信インターフェース１００６をさらに含んでもよい。通信インターフェース１００６は、様々な他の装置との通信（例えば、ネットワーク１０６上における）を可能にするための１以上のインターフェース及びハードウェア部品を含んでもよい。例えば、通信インターフェース１００６は、サーバ１０２又は他の演算装置との通信のための接続をネットワーク１０６に提供する１以上のポートを含んでもよく、又はそれらと接続されてもよい。例えば、通信インターフェース１００６は、本明細書の他の箇所で追加的に列挙されるようなＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域エリアネットワーク）、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク（例えば、Ｗｉ−Ｆｉ）及び有線ネットワーク（例えば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、光ファイバ、イーサーネット）、直接接続並びにＢＬＵＥＴＯＯＴＨ（登録商標）などの近距離通信等の１以上を介した通信を可能にしてもよい。
【０１２６】
クライアント装置１０８は、スピーカ、マイクロホン、カメラ及び様々なユーザコントロール（例えば、ボタン、ジョイスティック、キーボード、キーパッド、タッチスクリーンなど）、触覚型出力装置等などのＩ／Ｏ部品１００８をさらに含んでもよい。例えば、クライアント装置１０８のオペレーティングシステム１０１０は、キーパッド、キーボード又はＩ／Ｏ部品１００８に付属する他のユーザコントロール及び装置からの入力を受け付けるように構成された好適なドライバを含んでもよい。加えて、クライアント装置１０８は、受動形式、放射形式又は任意の他の形式のディスプレイであり得るディスプレイ１０１６を含んでもよい。加えて、クライアント装置１０８は、例えば、様々なタイプのセンサ、全地球測位システム装置、電池などの電源及び電力制御ユニットなどを含む、図示しない様々な他の部品を含んでもよい。さらに、いくつかの例では、管理者演算装置１６２は、上に論述したようにクライアント装置１０８と同様のハードウェア構成であるが、異なる機能部品を有するハードウェア構成を有してもよい。
【０１２７】
本明細書において説明される様々な命令、処理及び技術は、コンピュータ可読媒体上に格納され、本明細書のプロセッサにより実行されるプログラムモジュールなどのコンピュータ実行可能命令に一般的に関連して考慮されてもよい。一般的に、プログラムモジュールは、特定のタスクを行うか又は特定の抽象データタイプを実現するためのルーチン、プログラム、オブジェクト、部品、データ構造、実行可能コードなどを含む。これらのプログラムモジュールなどは、仮想マシン又は他のジャストインタイムコンパイル実行環境などにおいて固有コードとして実行されてもよく又はダウンロードされて実行されてもよい。通常、プログラムモジュールの機能は、様々な実装形態において必要に応じて組み合わされてもよい又は分散されてもよい。これらのモジュール及び技術の実装形態は、コンピュータ記憶媒体上に格納されてもよく、又はある形式の通信媒体全体にわたって送信されてもよい。
【０１２８】
本主題は、構造的特徴及び／又は方法論的行為に固有の言語で説明されたが、添付の特許請求の範囲において定義される主題は、記載される特定の特徴又は行為に必ずしも限定されないことを理解すべきである。むしろ、特定の特徴及び行為は、特許請求の範囲を実現する例示的形式として開示される。
【図１】
2021532465.tif 000003
【図２】
2021532465.tif 000004
【図３】
2021532465.tif 000005
【図４】
2021532465.tif 000006
【図５】
2021532465.tif 000007
【図６】
2021532465.tif 000008
【図７】
2021532465.tif 000009
【図８】
2021532465.tif 000010
【図９】
2021532465.tif 000011
【図１０】
2021532465.tif 000012
【国際調査報告】
2021532465.tif 000013