(57)【要約】  ファイルサーバ装置は、共有ファイルストレージ装置に格納されている第１ファイルシステムボリュームのキャッシュを含む第２ファイルシステムボリュームを、含む。ファイルサーバ装置は、クライアントからの第１ファイルシステムボリュームへのアクセス要求が示す操作種別を、判定する。操作種別がディレクトリ操作である場合、ファイルサーバ装置は、ディレクトリ操作の指示を共有ファイルストレージ装置へ送信した後、クライアントに完了応答を送信する。操作種別がファイル操作である場合、ファイルサーバ装置は、第２ファイルシステムボリュームにおけるファイル操作を実行し、クライアントに完了応答を送信した後、ファイル操作の指示を共有ファイルストレージ装置に送信する。
2016121093.tif 000002
【特許請求の範囲】
【請求項１】
共有ファイルストレージ装置に格納されている第１ファイルシステムボリュームを、他のファイルサーバ装置と共有し、クライアントから前記第１ファイルシステムボリュームへのアクセスを仲介するファイルサーバ装置であって、
前記第１ファイルシステムボリュームのキャッシュを含む第２ファイルシステムボリュームと、
コントローラと、を含み、
前記コントローラは、
前記クライアントから、前記第１ファイルシステムボリュームへのアクセス要求を受信し、
前記アクセス要求が示す操作種別を判定し、
前記操作種別がディレクトリ操作である場合、前記第１ファイルシステムボリュームにおける前記ディレクトリ操作の指示を前記共有ファイルストレージ装置へ送信した後、前記クライアントに前記ディレクトリ操作の完了応答を送信し、
前記操作種別がファイル操作である場合、前記第２ファイルシステムボリュームにおける前記ファイル操作を実行し、前記クライアントに前記ファイル操作の完了応答を送信した後、前記第１ファイルシステムボリュームにおける前記ファイル操作の指示を、前記共有ファイルストレージ装置に送信する、ファイルサーバ装置。
【請求項２】
請求項１に記載のファイルサーバ装置であって、
前記コントローラは、
前記第１ファイルシステムボリュームにおける、前記ディレクトリ操作の対象ディレクトリについて、前記共有ファイルストレージ装置に問い合わせを行い、
前記問い合わせに対する応答に基づき、前記ディレクトリ操作の許否を判定する、ファイルサーバ装置。
【請求項３】
請求項２に記載のファイルサーバ装置であって、
前記コントローラは、
前記ディレクトリ操作が拒否され、前記対象ディレクトリが前記第１ファイルシステムボリュームと前記第２ファイルシステムボリュームとの間で異なる場合、前記第２ファイルシステムボリュームにおける前記対象ディレクトリを前記第１ファイルシステムボリュームにおける前記対象ディレクトリに一致させる、ファイルサーバ装置。
【請求項４】
請求項３に記載のファイルサーバ装置であって、
前記コントローラは、規定条件が満たされると、前記第１ファイルシステムボリュームにおける前記第２ファイルシステムボリュームに対する更新データを、前記第２ファイルシステムボリュームに反映する同期処理を実行する、ファイルサーバ装置。
【請求項５】
請求項１に記載のファイルサーバ装置であって、
前記コントローラは、
ファイル操作の情報をリストに一時的に格納し、
前記リストにおけるファイル操作を順次選択し、
前記第１ファイルシステムボリュームにおけるファイル操作対象オブジェクトの情報に基づき、選択した前記ファイル操作それぞれの許否を判定し、
許可と判定されたファイル操作を前記共有ファイルストレージ装置に指示する、ファイルサーバ装置。
【請求項６】
請求項５に記載のファイルサーバ装置であって、
前記コントローラは、禁止と判定されたファイル操作によるオブジェクトを規定のディレクトリに移動する、ファイルサーバ装置。
【請求項７】
共有ファイルストレージ装置に格納されている第１ファイルシステムボリュームを、他のファイルサーバ装置と共有し、前記第１ファイルシステムボリュームのキャッシュを含む第２ファイルシステムボリュームを格納し、クライアントから前記第１ファイルシステムボリュームへのアクセスを仲介するファイルサーバ装置、の制御方法であって、
前記クライアントから、前記第１ファイルシステムボリュームへのアクセス要求を受信し、
前記アクセス要求が示す操作種別を判定し、
前記操作種別がディレクトリ操作である場合、前記第１ファイルシステムボリュームにおける前記ディレクトリ操作の指示を前記共有ファイルストレージ装置へ送信した後、前記クライアントに前記ディレクトリ操作の完了応答を送信し、
前記操作種別がファイル操作である場合、前記第２ファイルシステムボリュームにおける前記ファイル操作を実行し、前記クライアントに前記ファイル操作の完了応答を送信した後、前記第１ファイルシステムボリュームにおける前記ファイル操作の指示を、前記共有ファイルストレージ装置に送信する、方法。
【請求項８】
請求項７に記載の方法であって、
前記第１ファイルシステムボリュームにおける、前記ディレクトリ操作の対象ディレクトリについて、前記共有ファイルストレージ装置に問い合わせを行い、
前記問い合わせに対する応答に基づき、前記ディレクトリ操作の許否を判定する、方法。
【請求項９】
請求項８に記載の方法であって、
前記ディレクトリ操作が拒否され、前記対象ディレクトリが前記第１ファイルシステムボリュームと前記第２ファイルシステムボリュームとの間で異なる場合、前記第２ファイルシステムボリュームにおける前記対象ディレクトリを前記第１ファイルシステムボリュームにおける前記対象ディレクトリに一致させる、方法。
【請求項１０】
請求項９に記載の方法であって、
規定条件が満たされると、前記第１ファイルシステムボリュームにおける前記第２ファイルシステムボリュームに対する更新データを、前記第２ファイルシステムボリュームに反映する同期処理を実行する、方法。
【請求項１１】
請求項７に記載の方法であって、
ファイル操作の情報をリストに一時的に格納し、
前記リストにおけるファイル操作を順次選択し、
前記第１ファイルシステムボリュームにおけるファイル操作対象オブジェクトの情報に基づき、選択した前記ファイル操作それぞれの許否を判定し、
許可と判定されたファイル操作を前記共有ファイルストレージ装置に指示する、方法。
【請求項１２】
請求項１１に記載の方法であって、
禁止と判定されたファイル操作によるオブジェクトを規定のディレクトリに移動する、方法。
【請求項１３】
第１ファイルシステムボリュームを格納する共有ファイルストレージ装置と、
前記第１ファイルシステムボリュームを共有し、複数クライアントから前記第１ファイルシステムボリュームへのアクセスを仲介する複数ファイルサーバ装置と、を含み、
前記複数ファイルサーバ装置のそれぞれは、
前記第１ファイルシステムボリュームのキャッシュを含む第２ファイルシステムボリュームを格納し、
クライアントから、前記第１ファイルシステムボリュームへのアクセス要求を受信し、
前記アクセス要求が示す操作種別を判定し、
前記操作種別がディレクトリ操作である場合、前記第１ファイルシステムボリュームにおける前記ディレクトリ操作の指示を前記共有ファイルストレージ装置へ送信した後、前記クライアントに前記ディレクトリ操作の完了応答を送信し、
前記操作種別がファイル操作である場合、前記第２ファイルシステムボリュームにおける前記ファイル操作を実行し、前記クライアントに前記ファイル操作の完了応答を送信した後、前記第１ファイルシステムボリュームにおける前記ファイル操作の指示を、前記共有ファイルストレージ装置に送信する、ファイル共有システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルサーバ装置に関する。
【背景技術】
【０００２】
複数の拠点から１つのファイルを読み書きする分散ファイル共有機能が知られている。分散ファイル共有機能の実施形態として、１台のＣＡＳ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｓｔｏｒａｇｅ）と、拠点毎に配置された複数台のＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）を組み合わせるシステムが知られている。このシステムでは、ＣＡＳとＮＡＳがＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）によって相互に接続される。ＷＡＮの通信速度が低いため、エンドユーザによるファイル操作の応答性能が悪化する。【０００３】
特許文献１は、クライアントからのアクセスを受信する複数のクラウドコントローラを含む分散ファイルシステムを開示する。複数のクラウドコントローラは、クラウドストレージシステムに格納されている分散ファイルシステムのデータをキャッシュする（要約等）。キャッシュデータによって、応答性能低下を回避する。【０００４】
さらに、特許文献１は、ファイルをロックすることによって、ファイルデータの一貫性を維持する方法を開示している。ファイルがロックされている間、許可されているクラウドコントローラ以外のクラウドコントローラは、ファイルデータを更新できない。【０００５】
特許文献２は、１つのコアスペースに対応付けられている複数のホームディレクトリを複数のエッジサーバが有するファイルサーバシステムを開示する。一つのホームディレクトリとコアスペースとの間で通信障害が発生すると、ユーザは、他のホームディレクトリを介して、コアスペースにアクセスできる。【０００６】
エッジサーバ１とコアスペースとの間の通信障害が発生すると、エッジサーバ１のホームディレクトリ１におけるファイル及びディレクトリのうち、コアスペースにおけるファイル及びディレクトリと異なるファイル及びディレクトリが、「ｃｏｎｆｌｉｃｔ」ディレクトリにコピーされる。通信障害が除去されると、「ｃｏｎｆｌｉｃｔ」ディレクトリがコアスペースにマイグレーションされる。これにより、コアスペースにおいて先祖返りが生じることを回避する（０１４５段落等）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開２０１３／０１１７２４０号
【特許文献２】国際公開２０１４／１７４５７８号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
複数台のＮＡＳが１台のＣＡＳにアクセスする分散ファイルシステムにおいて、ＮＡＳがオブジェクト（ファイル及びディレクトリ）をキャッシュする場合、名前空間の一貫性問題が発生する。たとえば、ＮＡＳ１が作成したファイルのパスとＮＡＳ２が作成したディレクトリのパスが一致し、ＮＡＳ１とＮＡＳ２がキャッシュしたオブジェクトをＣＡＳへ送信する場合、当該オブジェクトが衝突する。その結果、どちらかのオブジェクトはＣＡＳのファイルシステムに反映されず、無効となる。【０００９】
特許文献１に開示されているようなロック機能を利用することで、名前空間の一貫性を保障できる。しかし、ロックを取得したＮＡＳのみファイル操作が可能なため、その他のＮＡＳはファイル操作を実行できず、ユーザビリティが低下する。【００１０】
特許文献２の技術を利用して、特殊ディレクトリ（「ｃｏｎｆｌｉｃｔ」ディレクトリ）に衝突するオブジェクトを移動することによって、名前空間の一貫性問題を解決することができる。【００１１】
ロック機能を用いない場合には衝突が発生しやすく、衝突したオブジェクトの移動は、多くのオブジェクトの移動を伴う。特に、ディレクトリを特殊ディレクトリに移動すると、そのディレクトリ配下に格納された全オブジェクトが特殊ディレクトリへ移動させられ、名前空間を大きく変化させる。その結果、ユーザが特殊ディレクトリから所望のファイルを検索する必要があり、ユーザビリティが低下する。【００１２】
したがって、複数のファイルサーバからファイル操作を可能とするファイル共有システムにおいて、ユーザビリティを向上する技術が望まれる。
【課題を解決するための手段】
【００１３】
本発明の代表的な一例は、共有ファイルストレージ装置に格納されている第１ファイルシステムボリュームを、他のファイルサーバ装置と共有し、クライアントから前記第１ファイルシステムボリュームへのアクセスを仲介するファイルサーバ装置であって、前記第１ファイルシステムボリュームのキャッシュを含む第２ファイルシステムボリュームと、コントローラと、を含み、前記コントローラは、前記クライアントから、前記第１ファイルシステムボリュームへのアクセス要求を受信し、前記アクセス要求が示す操作種別を判定し、前記操作種別がディレクトリ操作である場合、前記第１ファイルシステムボリュームにおける前記ディレクトリ操作の指示を前記共有ファイルストレージ装置へ送信した後、前記クライアントに前記ディレクトリ操作の完了応答を送信し、前記操作種別がファイル操作である場合、前記第２ファイルシステムボリュームにおける前記ファイル操作を実行し、前記クライアントに前記ファイル操作の完了応答を送信した後、前記第１ファイルシステムボリュームにおける前記ファイル操作の指示を、前記共有ファイルストレージ装置に送信する。
【発明の効果】
【００１４】
本発明の一態様によると、ファイル共有システムにおいてユーザビリティを向上することができる。
【図面の簡単な説明】
【００１５】
【図１Ａ】ファイル共有システムの構成例を示す。
【図１Ｂ】ファイル共有システムの構成例を示す。
【図２】ＮＡＳの構成例を示す。
【図３】ＣＡＳの構成例を示す。
【図４】送信リストの構成例を示す。
【図５】ＮＡＳが実行するファイルサーバ処理のフローチャートを示す。
【図６】ＮＡＳが実行するディレクトリ作成／削除処理のフローチャートを示す。
【図７】ＮＡＳが実行するディレクトリ移動処理のフローチャートを示す。
【図８】ＮＡＳが実行するファイル作成／削除／更新処理のフローチャートを示す。
【図９】は、ＮＡＳが実行するバッチ送信処理のフローチャートを示す。
【図１０】ＮＡＳが実行するデータ同期処理のフローチャートを示す。
【図１１】ＮＡＳが実行する更新データ送信処理のフローチャートを示す。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【００１７】
以下に開示するファイル共有システムは、複数のＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）と、ＣＡＳ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｓｔｏｒａｇｅ）とを含む。複数のＮＡＳは、ＣＡＳのファイルシステムボリュームを共有し、そのキャッシュを格納する。複数のＮＡＳは、それぞれ、クライアントによるＣＡＳのファイルシステムボリュームへのアクセスを仲介する。ＮＡＳは、クライアントからのディレクトリ操作に同期して、当該ディレクトリ操作をＣＡＳに指示し、ファイル操作に非同期に当該ファイル操作をＣＡＳに指示する。これにより、名前空間の一貫性問題を避けつつクライアントのファイル操作時の待ち時間を軽減できる。
【００１８】
図１Ａは、本実施形態のファイル共有システム１０の構成概要を示す。本実施例では、拠点Ａ１００及び拠点Ｂ１１０は、データセンタ１２０を介してファイルを共有する。拠点Ａ１００及び拠点Ｂ１１０は、それぞれ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０５及びＷＡＮ１１５を介してデータセンタ１２０に接続されている。図１は拠点Ａ１００及び拠点Ｂ１１０のみ示しているが、より多くの拠点がシステムに含まれていてもよい。
【００１９】
拠点Ａ１００及び拠点Ｂ１１０は、クライアント１０１及びクライアント１１１を有する。クライアント１０１及びクライアント１１１は、通信路１０３及び通信路１１３を介して、それぞれＮＡＳ１０２及びＮＡＳ１１２に接続されている。ＮＡＳは、ファイル共有サービスを提供するファイルサーバ装置の一例であり、他の構成のファイルサーバ装置が使用されてもよい。
【００２０】
通信路１０３及び通信路１１３は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などで構成される。なお、通信路１０３及び通信路１１３の構成形態は、ＬＡＮに限定されるものではない。
【００２１】
クライアント１０１及びクライアント１１１は、ＮＡＳ１０２及びＮＡＳ１１２が提供するファイル共有サービスを利用する計算機である。クライアント１０１及びクライアント１０１は、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）やＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）等のファイル共有プロトコルを利用して、通信路１０３及び通信路１１３を経由してＮＡＳ１０２及びＮＡＳ１１２が提供するファイル共有サービスを利用する。
【００２２】
拠点Ａ１００のＮＡＳ１０２には、ファイルシステム（ＦＳ）１０４が構築される。ファイルシステム１０４は、クライアント１０１により作成されたファイルやディレクトリなどのオブジェクトを管理し、データの格納を行う名前空間である。ファイルシステム１０４は、ルートディレクトリ１０６からファイルツリーを用いてファイルを管理する。
【００２３】
図１Ａにおいて、ルートディレクトリ１０６下には、退避ディレクトリ１０７及びディレクトリＡ１０９が作成されている。また、ディレクトリＡ１０９の下に、ファイル１０８が作成されている。
【００２４】
同様に、拠点Ｂ１１０のＮＡＳ１１２には、ファイルシステム１１４が構築される。ファイルシステム１１４はファイルやディレクトリなどのオブジェクトを管理し、データを格納する。図１Ａにおいて、ファイルシステム１１４は、ＣＡＳ１２１のファイルシステム１２２を介して、ＮＡＳ１０２のファイルシステム１０４と同期された状態であり、退避ディレクトリ１０７以外のファイルシステム１０４、１１４のディレクトリ及びファイルは同一である。
【００２５】
具体的には、ファイルシステム１１４において、ルートディレクトリ１１６下には、退避ディレクトリ１１７及びディレクトリＡ１１９が作成されている。また、ディレクトリＡ１１９の下に、ファイル１１８が作成されている。ルートディレクトリ１１６、ディレクトリＡ１１９及びファイル１１８は、それぞれ、ルートディレクトリ１０６、ディレクトリＡ１０９及びファイル１０８に対応する。退避ディレクトリ１０７内のファイルと退避ディレクトリ１１７内のファイルとは、異なっていてよい。
【００２６】
データセンタ１２０は、拠点Ａ１００及び拠点Ｂ１１０が共有するファイルやディレクトリを格納するＣＡＳ（Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｓｔｏｒａｇｅ）１２１と管理用端末１２４とを有し、これらはネットワーク１２３で接続されている。
【００２７】
ＣＡＳ１２１には、ファイルシステム１２２が構築されている。ＣＡＳ１２１は共有ファイルストレージ装置の一例であり、他の構成の共有ファイルストレージ装置が使用されてもよい。ＣＡＳ１２１のファイルシステム１２２は、ＮＡＳ１０２、１１２に共有されている。ＮＡＳ１０２、１１２は、クライアント１０１、１１１のファイルシステム１２２へのアクセスをそれぞれ仲介する。
【００２８】
ＮＡＳ１０２、１１２のファイルシステム１０４、１１４は、ＣＡＳ１２１のファイルシステム１２２のキャッシュを格納する。ファイルシステム１２２は、拠点Ａ１００のＮＡＳ１０２及び拠点Ｂ１１０のＮＡＳ１１２がＣＡＳ１２１との間で送受信するファイルやディレクトリなどのオブジェクトを格納する。
【００２９】
図１Ａにおいて、ファイルシステム１２２と、ＮＡＳ１０２及び１１２のファイルシステム１０４及び１１４とは、同期した状態にある。ファイルシステム１０４及びファイルシステム１１４における更新は、ＣＡＳのファイルシステム１２２を介して相互に反映される。
【００３０】
ファイルシステム１２２に格納されるオブジェクトのファイルツリーは、ＮＡＳ１０２とＮＡＳ１１２が共有するファイルツリーと同様である。例えば、図１の構成例において、「／ｄｉｒＡ／ｆｉｌｅＸ」がＣＡＳ１２１のファイルシステム１２２に格納されている。このように、ファイルシステム１０４、１１４はファイルシステム１２２のキャッシュを含み、ファイルシステム１０４、１１４が、ファイルシステム１２２のツリー構造を含んで構成されている。
【００３１】
ＣＡＳ１２１は、ファイルやディレクトリを、コンテンツとメタデータから成るオブジェクトとして管理し、取り出す。コンテンツにはメタデータ（コンテンツの属性）が伴い、固有のオブジェクト識別子が割り当てられる。ＣＡＳ１２１のオブジェクトにおいて、コンテンツはバイトストリームであり、メタデータは、オブジェクトの種類、生成日時、保持期間、最終更新日時、アクセス権限、サイズ等の属性に関する付加的な情報である。
【００３２】
ディレクトリオブジェクトのコンテンツは、例えば、当該ディレクトリ直下のファイル及びディレクトリの情報を含み、ファイルオブジェクトのコンテンツは、ファイルのユーザデータを含む。
【００３３】
ＮＡＳ１０２、１１２は、オブジェクトを新たに格納するときに、オブジェクト識別子を生成し、オブジェクトと共にＣＡＳ１２１に送信する。ＣＡＳ１２１内の既存オブジェクトには、オブジェクト識別子を使用してアクセスできる。ＣＡＳ１２１のファイルシステム１２２は、オブジェクトを格納し管理する。すべてのディレクトリオブジェクト内の情報は、上述のように、ＮＡＳ１０２、１１２と同様の名前空間の情報を含む。
【００３４】
管理用端末１２４は、ファイル共有システム１０を管理する端末である。管理用端末１２４は一般的な計算機構成を有し、プロセッサ、メモリ及びネットワークインタフェースに加え、ユーザが使用する入出力デバイスを有する。
【００３５】
管理用端末１２４は、ネットワーク１２３、１０５、及び１１５を介して、ＣＡＳ１２１、ＮＡＳ１０２及びＮＡＳ１１２をそれぞれ管理する。例えば、管理用端末１２４は、ＣＡＳ１２１、ＮＡＳ１０２及びＮＡＳ１１２の、設定情報更新、運用開始、及び停止、並びに、クライアント１０１及びクライアント１１１のアカウントの管理等を行う。
【００３６】
拠点Ａ１００のクライアント１０１が読み書きするデータは、ファイルとしてＮＡＳ１０２が作成するファイルシステム１０４に格納される。同様に、拠点Ｂ１１０のクライアント１１１が読み書きするデータは、ＮＡＳ１１２が作成するファイルシステム１１４に格納される。
【００３７】
上述のように、ＮＡＳ１０２、１１２のファイルシステム１０４、１１４は、それぞれ、ＣＡＳ１２１のファイルシステム１２２のキャッシュとして機能する。ファイル共有システム１０は、拠点Ａ１００、拠点Ｂ１１０、及びデータセンタ１２０のファイルシステム１０４、１１４、及び１２２の名前空間の一貫性を保持する。各拠点のファイルシステムに格納されたファイルは、所定条件が満たされる、例えば定期的に又は規定イベントの発生に応答して、データセンタ１２０に送信され、送信されたデータは、ＣＡＳ１２１のファイルシステム１２２に格納される。
【００３８】
また、各拠点のＮＡＳは、所定条件が満たされる、例えば定期的に又は規定イベントの発生に応答して、ＣＡＳ１２１のファイルシステム１２２の名前空間やファイルを、当該ＮＡＳのファイルシステムに反映する（後述するデータ同期処理Ｓ６０２）。
【００３９】
本実施形態において、ＮＡＳ１０２、１１２のファイルシステム１０４、１１４におけるファイル操作の情報は、ＣＡＳ１２１に非同期送信される。一方、ＮＡＳ１０２、１１２のファイルシステム１０４、１１４におけるディレクトリ操作の情報は、ＣＡＳ１２１に同期送信される。
【００４０】
ＮＡＳ１０２、１１２は、クライアント１０１、１１１からのファイル操作を受信すると、ＣＡＳ１２１におけるファイルシステム１２２へのファイル操作の反映を待たずに、クライアント１０１、１１１にファイル操作の処理結果（完了応答）を返す。ＮＡＳ１０２、１１２は、クライアント１０１、１１１からのディレクトリ操作を受信すると、ＣＡＳ１２１におけるファイルシステム１２２へのディレクトリ操作の反映を待って、クライアント１０１、１１１にディレクトリ操作の処理結果を返す。
【００４１】
図１Ｂは、ＮＡＳ１０２、１１２のファイルシステム１０４、１１４におけるオブジェクト操作の情報を、ＣＡＳ１２１のファイルシステム１０４に送信する例を示す。図１Ｂにおいて、ＮＡＳ１０２のファイルシステム１０４において、ファイルＸ１０８のデータが更新され、さらに、ファイルＹ１９１及びファイルＺ１９２が新たに作成されている。
【００４２】
ファイルシステム１０４のこれら更新はファイルシステム１０４内でキャッシュされ、まだＣＡＳ１２１に送信されておらず、ＣＡＳ１２１のファイルシステム１２２にまだ反映されていない。ファイルシステム１０４のこれら更新についての情報は、まとめて、ある契機でＣＡＳ１２１に送信される。
【００４３】
一方、ＮＡＳ１０２のファイルシステム１０４において、ディレクトリＢ１９２が新たに作成されている。当該ディレクトリＢ１９２の作成に応答して、ディレクトリＢ１９２の作成の情報はＣＡＳ１２１に送信され、ＣＡＳ１２１のファイルシステム１２２においてディレクトリＢ１９３が作成されている。クライアントからのディレクトリ操作毎に、ディレクトリ操作の情報がＣＡＳ１２１に送信、反映される。
【００４４】
上述のように、拠点のＮＡＳにおけるファイル操作の情報は、当該ＮＡＳにおいてキャッシュされ、ファイル操作の情報がまとめて、ある契機でＣＡＳ１２１に送信される。一方、ディレクトリ操作の情報は、他の操作とまとめられることなく、ディレクトリ操作毎に、ＣＡＳ１２１に即時送信される。
【００４５】
ＣＡＳ１２１におけるディレクトリ操作のファイルシステム１２２への反映において、更新情報送信元のＮＡＳは、ロックを取得する。ロックはファイルシステム１２２の全体又は一部に対して取得される。ファイル操作の反映において、ＣＡＳ１２１は、衝突するファイル操作のうち、先に受信したファイル操作をファイルシステム１２２へ反映する。
【００４６】
ファイル操作の情報を非同期でＣＡＳ１２１のファイルシステム１２２に反映し、ディレクトリ操作の情報を同期でＣＡＳ１２１のファイルシステム１２２に反映することで、ファイル共有システム１０の名前空間の一貫性を保証しつつ、ファイル操作のユーザビリティを向上できる。
【００４７】
図２は、ＮＡＳ１０２のシステム構成例を示す。図２は、拠点Ａ１００のＮＡＳ１０２を示しているが、拠点Ｂ１１０のＮＡＳ１１２も同様の構成を有する。ＮＡＳ１０２は、ＮＡＳコントローラ２００とストレージデバイス２２０とを含む。
【００４８】
ＮＡＳコントローラ２００は、メモリ２０１、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２、外部ネットワークインタフェース（Ｉ／Ｆ）２０３、内部ネットワークインタフェース２０４、インタフェース２０５を含む。これらはバスで接続されている。
【００４９】
メモリ２０１は、ＣＰＵ２０２が使用するプログラムとデータを格納する。ＣＰＵ２０２は、メモリ２０１に格納されたプログラムを実行する。外部ネットワークインタフェース２０３は、ネットワーク１０５を経由してクライアント１０１と接続を行う。内部ネットワークインタフェース２０４は、ネットワーク１３０を経由してデータセンタ１２０と接続を行う。インタフェース２０５は、ストレージデバイス２２０と接続する。
【００５０】
メモリ２０１は、ファイルサーバプログラム２０６、ファイルクライアントプログラム２０７、ファイルシステムプログラム２０８、送信リスト生成プログラム２０９、マイグレーションプログラム２１１、バッチ実行プログラム２１２、送信リスト２１３、データ同期プログラム２１４を格納する。メモリ２０１は、ＯＳを含む不図示の他プログラムを格納する。メモリ２０１内に格納されたプログラム及びデータは、ストレージデバイス２２０にも格納され、ＣＰＵ２０２によりメモリ２０１へ読み込まれる。
【００５１】
ＣＰＵ２０２はプロセッサであり、プログラムはプロセッサによって実行されることで、定められた処理を他のデバイスを用いながら行う。従って、本開示において、プログラムを主語とする説明は、プロセッサを主語とした説明でもよい。若しくは、プログラムが実行する処理は、そのプログラムが動作する計算機及びシステムが行う処理である。
【００５２】
プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部（手段）として動作する。例えば、プロセッサは、ファイルサーバプログラム２０６に従って動作することでファイルサーバ部として機能する。他のプログラムについても同様である。計算機及び計算機システムは、これらの機能部（手段）を含む装置及びシステムである。
【００５３】
プログラムは、プログラム配布サーバや、計算機読み取り可能な非一時的記憶媒体によって各計算機にインストールすることができ、各計算機の不揮発性記憶デバイスに格納することができる。
【００５４】
ファイルサーバプログラム２０６は、クライアント１０１がＮＡＳ１０２上のファイル操作及びディレクトリ操作を行う手段を提供する。ファイルクライアントプログラム２０７は、ＮＡＳ１０２が、ＣＡＳ１２１上のファイル及びディレクトリを操作する手段を提供する。ファイルシステムプログラム２０８は、ファイルシステム１０４に含まれ、ファイルシステム１０４のファイルシステムボリューム２２５を管理する。
【００５５】
送信リスト生成プログラム２０９は、送信リスト２１３を生成する。マイグレーションプログラム２１１は、ＮＡＳ１０２からＣＡＳ１２１へのデータマイグレーションを実施する。バッチ実行プログラム２１２は、所定あるいは任意のタイミングで実行され、他のプログラムを利用して、ＮＡＳ１０２からＣＡＳ１２１へのデータ転送や、ＣＡＳ１２１に格納されたデータをＮＡＳ１０２のファイルシステム１０４に反映する処理を行う。
【００５６】
送信リスト２１３は、ＮＡＳ１０２のファイルシステム１０４で操作されたファイルの情報を示す。具体的には、作成、削除又は更新されたファイルの情報を示す。送信リスト生成プログラム２０９は、ＯＳの監視機構を利用して、ファイル操作を検知し、送信リスト２１３を生成する。送信リスト２１３の詳細は後述する。
【００５７】
ＮＡＳ１０２のバッチ実行プログラム２１２は、オブジェクト（ファイル）の操作指示と共に、送信リスト２１３に記録されたファイルのオブジェクトを、ＣＡＳ１２１に送信する。これにより、ＮＡＳ１０２のファイルシステム１０４におけるファイル操作を、ＣＡＳ１２１を経由して、他のＮＡＳ１１２のファイルシステム１１４に反映させることができる。バッチ実行プログラム２１２の詳細な処理については後述する。
【００５８】
データ同期プログラム２１４は、ＮＡＳ１０２のファイルシステム１０４を、ＣＡＳ１２１のファイルシステム１２２に同期させる（一致させる）処理を行う。データ同期プログラム２１４の詳細な処理については後述する。
【００５９】
ファイル共有システム１０は、ＮＡＳ１０２、１１２のファイルシステム１０４、１１４における更新を、ＣＡＳ１２１のファイルシステム１２２に反映し、さらに、ＣＡＳ１２１のファイルシステム１２２における更新をＮＡＳ１０２、１１２のファイルシステム１０４反映する。これにより、ＮＡＳ１０２、１１２のファイルシステム１０４、１１４が互いに一致し、ＮＡＳ１０２、１１２のファイル共有を実現する。
【００６０】
ストレージデバイス２２０は、メモリ２２１に格納されたプログラムの実行を行うＣＰＵ２２２、ＮＡＳコントローラ２００との接続に利用されるインタフェース２２３、プログラムとデータを格納するためのメモリ２２１を含む。これらはバスで接続されている。ストレージデバイス２２０は、さらに、ＣＰＵ２２２で処理するためのプログラムやインタフェース２２３を経由して送信されたデータを格納するためのストレージメディア２２４を有する。
【００６１】
ストレージメディア２２４は、さらに、ファイルシステム１０４に含まれるファイルシステムボリューム２２５を格納している。ファイルシステムボリューム２２５は、名前空間の情報及びファイルシステム１０４内のファイルを格納している。ファイルは、ファイル内のユーザデータ（コンテンツ）及びメタデータを含む。
【００６２】
図３は、ＣＡＳ１２１の構成例を示す。ＣＡＳ１２１は、ＣＡＳコントローラ３００とストレージデバイス３２０を含む。ＣＡＳコントローラ３００は、メモリ３０１、ＣＰＵ３０２、フロントエンドネットワークインタフェース３０３、バックエンドネットワークインタフェース３０４、インタフェース３０５を含み、これらはバスで接続されている。
【００６３】
メモリ３０１は、プログラムとデータを格納する。ＣＰＵ３０２はメモリ３０１に格納されたプログラムの実行を行う。フロントエンドネットワークインタフェース３０３は、ネットワーク１０５と１１５を経由してＮＡＳ１０２と接続するために利用される。バックエンドネットワークインタフェース３０４は、ネットワーク１２３を経由して管理用端末１２４と接続するために利用される。インタフェース３０５は、ストレージデバイス３２０との接続に利用される。
【００６４】
メモリ３０１は、ファイル共有サーバプログラム３０６、ファイルシステムプログラム３０７を格納する。プログラム３０６及び３０７は、ストレージデバイス３２０にも格納され、ＣＰＵ３０２によりメモリ３０１へ読み込まれる。
【００６５】
ファイル共有サーバプログラム３０６は、ＮＡＳ１０２とＮＡＳ１１２に対し、ＣＡＳ１２１内のファイル及びディレクトリへの操作を行うための機能を提供する。ファイルシステムプログラム３０７は、ファイルシステム１２２を制御し、そのデータ（オブジェクト）はストレージデバイス３２０に格納される。
【００６６】
ストレージデバイス３２０は、メモリ３２２に格納されたプログラムの実行を行うＣＰＵ３２３、ＣＡＳコントローラ３００との接続に利用されるインタフェース３２１、プログラムとデータを格納するためのメモリ３２２で構成され、これらはバスで接続されている。また、ＣＰＵ３２３で処理するためのプログラムやインタフェース３２１を経由して送信されたデータを格納するためのストレージメディア３２４を持つ。
【００６７】
ストレージメディア３２４はファイルシステムボリューム３２５を格納している。ファイルシステムプログラム３０７とファイルシステムボリューム３２５とは、ファイルシステム１２２を構成する。ファイルシステムボリューム３２５は、オブジェクトを格納しており、ファイルシステムプログラム３０７によって操作される。ファイルシステムボリューム３２５は、ＮＡＳ１０２、１０３に共有され、ＮＡＳ１０２、１０３それぞれのファイルシステムボリューム２２５は、ファイルシステムボリューム３２５のキャッシュを格納している。
【００６８】
図４は、ＮＡＳ１０２、２０２が作成する送信リスト２１３の構成例を示す。送信リスト２１３は、パスカラム４０１、ファイル種別カラム４０２及び操作種別カラム４０３を有する。パスカラム４０１は、操作されたファイルの、ファイルシステム１０４におけるパスを格納する。ファイル種別カラム４０２は、パスカラム４０１で示されるファイルの種別を格納する。ファイルの種別は、例えば、オフィスドキュメントなどである通常ファイル、ネットワーク通信路であるソケット、接続された機器の通信路であるデバイスファイルなどがある。
【００６９】
操作種別カラム４０３は、パスカラム４０１で示されるファイルに対して実行された操作の種別を格納する。操作種別は、ファイルシステムにおけるファイルの作成、ファイルシステムからのファイルの削除、ファイルの移動、及びファイルデータの更新等を含む。送信リスト２１３を用いた処理の詳細は後述する。
【００７０】
以下において、ＮＡＳ１０２が実行する処理を説明する。ＮＡＳ１１２も同様の処理を実行する。図５は、ＮＡＳ１０２のファイルサーバプログラム２０６が実行するファイルサーバ処理のフローチャートを示す。ファイルサーバプログラム２０６は、クライアント１０１からアクセス要求を受信すると（Ｓ５０１）、アクセス要求の種別を判定する（Ｓ５０２）。アクセス要求の種別は、ディレクトリ操作又はファイル操作に含まれる。
【００７１】
アクセス要求がディレクトリの作成要求又は削除要求である場合（Ｓ５０２：ディレクトリ作成／削除）、ファイルサーバプログラム２０６は、ディレクトリ作成／削除処理Ｓ５１０（ファイルシステムプログラム２０８）を呼び出す。ディレクトリ作成／削除は、ディレクトリの作成又は削除である。アクセス要求がディレクトリ移動要求である場合（Ｓ５０２：ディレクトリ移動）、ファイルサーバプログラム２０６は、ディレクトリ移動処理Ｓ５３０（ファイルシステムプログラム２０８）を呼び出す。
【００７２】
アクセス要求がファイル作成／削除／更新要求である場合（Ｓ５０２：ファイル作成／削除／更新）、ファイルサーバプログラム２０６は、ファイル作成／削除／更新処理Ｓ５５０（ファイルシステムプログラム２０８）を呼び出す。アクセス要求がファイル移動要求である場合（Ｓ５０２：ファイル移動）、ファイルサーバプログラム２０６は、ファイル移動処理Ｓ５７０（ファイルシステムプログラム２０８）を呼び出す。
【００７３】
アクセス要求がその他のアクセス要求であった場合（Ｓ５０２：その他）、ファイルサーバプログラム２０６は、その他処理Ｓ５０３を実行するプログラムを呼び出す。その他の処理とは、例えば、ファイルのオープン処理や読み出し処理、ディレクトリの参照など、一般的なファイルサーバが処理を行うファイルやディレクトリに対する処理を含む。
【００７４】
それぞれの処理が終了すると、ファイルサーバプログラム２０６は、処理結果をクライアント１０１へ応答し（Ｓ５０４）、処理を終了する。
【００７５】
図６は、ファイルシステムプログラム２０８が実行するディレクトリ作成／削除処理Ｓ５１０のフローチャートを示す。ファイルシステムプログラム２０８はアクセス要求を受理すると、アクセス要求が示す操作種別を判定する（Ｓ５１１）。
【００７６】
操作種別がディレクトリ削除である場合（Ｓ５１１：削除）、ファイルシステムプログラム２０８は、更新データ送信処理Ｓ５１７（マイグレーションプログラム２１１）を呼び出す。この時、ファイルシステムプログラム２０８は、ディレクトリ作成／削除処理からの呼び出しであることを指示する。指示は、例えばフラグを用いる。更新データ送信処理Ｓ５１７の詳細は後述する。更新データ送信処理Ｓ５１７が完了すれば、ディレクトリ作成／削除処理Ｓ５１０は終了する。
【００７７】
操作種別がディレクトリ作成である場合（Ｓ５１１：作成）、ファイルシステムプログラム２０８は、すでにＣＡＳ１２１のファイルシステム１２２において、ディレクトリ作成対象パスと同じパスに、オブジェクトが格納されているかどうかをチェックする（Ｓ５１２）。
【００７８】
具体的には、ファイルシステムプログラム２０８は、ファイルクライアントプログラム２０７に、ＣＡＳ１２１への問い合わせを指示する。ファイルクライアントプログラム２０７は、ＣＡＳ１２１に上記対象パスのオブジェクトの存在の有無を問い合わせる。オブジェクトは、オブジェクトＩＤで指定することができる。ＣＡＳ１２１のファイル共有サーバプログラム３０６は、ファイルシステムプログラム３０７から当該問い合わせへの回答を取得し、ＮＡＳ１０２に応答を返す。ファイルクライアントプログラム２０７を介して応答を受信したファイルシステムプログラム２０８は、当該応答に従ってステップＳ５１２の判定を行う。
【００７９】
オブジェクトがある場合（Ｓ５１２：ＹＥＳ）、ファイルシステムプログラム２０８は、当該オブジェクトの情報をＣＡＳ１２１から取得する（Ｓ５１３）。そして、ファイルシステムボリューム２２５に当該オブジェクトの情報に基づいてオブジェクトを作成する（Ｓ５１４）。これにより、後述するデータ同期処理Ｓ６０２を待たずに、ＮＳＡ１０２における対象パスのオブジェクトをＣＡＳ１２１における最新のオブジェクトに一致させることができる。次に、ファイルシステムプログラム２０８は、戻り値にエラー（すでにオブジェクトが存在）を設定し（Ｓ５１５）、当該処理を終了する。
【００８０】
一方、オブジェクトが存在しない場合（Ｓ５１２：ＮＯ）、ファイルシステムプログラム２０８は、オブジェクトの親ディレクトリの存在の有無をＣＡＳ１２１に問い合わせる（Ｓ５１６）。問い合わせ方法はステップＳ５１２と同様でよい。親ディレクトリが存在しない場合（Ｓ５１６：ＮＯ）、ファイルシステムプログラム２０８は、戻り値にエラー（すでにオブジェクトが存在）を設定する（Ｓ５１５）。
【００８１】
親ディレクトリが存在する場合（Ｓ５１６：ＹＥＳ）、ファイルシステムプログラム２０８は、更新データ送信処理Ｓ５１７を呼び出す。呼び出しは上述の通りである。更新データ送信処理Ｓ５１７が完了すれば、ディレクトリ作成／削除処理Ｓ５１０は終了する。上述のように、ＣＡＳ１２１から、ファイルシステムボリューム３２５における対象オブジェクトの情報を取得することで、ディレクトリ操作の許否を適切に判定する。
【００８２】
図７は、ファイルシステムプログラム２０８が実行するディレクトリ移動処理Ｓ５３０のフローチャートを示す。ファイルシステムプログラム２０８はディレクトリ移動要求を受理すると、移動先ディレクトリのディレクトリ作成処理を実行する（Ｓ５３１）。移動先ディレクトリの作成処理は、図６のフローチャートを参照して説明した通りである。
【００８３】
ステップＳ５３１でディレクトリが作成されない場合（Ｓ５３２：ＮＯ）、ファイルシステムプログラム２０８は、戻り値にエラーを設定し（Ｓ５３３）、当該処理を終了する。
【００８４】
ステップＳ５３１でディレクトリが作成される場合（Ｓ５３２：ＹＥＳ）、ファイルシステムプログラム２０８は、移動先ディレクトリに、オブジェクトタイプ、ディレクトリ作成日時やアクセス権限等の移動元ディレクトリの情報及び更新日時のような移動に伴う新たな情報を設定する（Ｓ５３２）。さらに、ファイルシステムプログラム２０８は、移動元ディレクトリのディレクトリ削除処理を実行する（Ｓ５３３）。移動先ディレクトリの削除処理は、図６のフローチャートを参照して説明した通りである。
【００８５】
ディレクトリ名の変更は、ディレクトリの移動に含まれる。具体的には、ディレクトリ名の変更は、新名のディレクトリを同じパスに移動することに対応する。
【００８６】
図８は、ファイルシステムプログラム２０８が実行するファイル作成／削除／更新処理Ｓ５５０のフローチャートを示す。ファイルは、オフィスドキュメントやテキストファイルといった通常ファイルの他、ネットワーク通信路を示すソケットファイルなど特殊ファイルも含み、ディレクトリではないファイル一般を指す。
【００８７】
ファイルシステムプログラム２０８は、アクセス要求を受理すると、アクセス要求の操作種別を判定する（Ｓ５５１）。操作種別が、ファイルの作成又は削除の場合（Ｓ５５１：作成／削除）、ファイルシステムプログラム２０８は、ファイルシステムボリューム２２５において、ファイルを作成／削除する（Ｓ５５２）。
【００８８】
一方、操作種別がファイルの更新である場合（Ｓ５５２：更新）、ファイルシステムプログラム２０８は、ファイルシステムボリューム２２５に格納された当該ファイルを更新する（Ｓ５５３）。ファイルの更新は、ファイルのコンテンツやファイルのメタデータを書き換えることを指す。
【００８９】
最後に、ファイルシステムプログラム２０８は、送信リスト生成プログラム２０９に送信リスト作成を要求し、送信リスト生成プログラム２０９を介して、送信リスト２１３のパスカラム４０１に作成／削除／更新したファイルのパス、ファイル種別カラム４０２に作成／削除／更新したファイルの種別、そして、操作種別カラム４０３に操作種別を記録し（Ｓ５５４）、当該処理を終了する。
【００９０】
上述のように、ＮＡＳ１０２のファイルシステム１０４（ファイルシステムボリューム２２５）における、当該ファイルの作成／削除／更新のキャッシュはＣＡＳ１２１のファイルシステム１２２に即時に送信されることなく、ファイル操作の情報が送信リスト２１３に格納されるのみである。このため、ユーザ待機時間を短縮できる。処理が終了する。ファイルの作成／削除／更新の結果は、後述するように、他のファイル操作の結果とまとめてＣＡＳ１２１に送信される。
【００９１】
ファイル移動処理Ｓ５７０は、ディレクトリ移動処理Ｓ５３０と同様に実行できる。具体的には、ファイルシステムプログラム２０８は、移動先ファイル作成処理、移動先ファイルの情報設定、及び移動元ファイルの削除処理を実行する。移動先ファイル作成処理及び移動元ファイル削除処理のフローは、図８を参照して説明した通りである。
【００９２】
図９は、バッチ実行プログラム２１２が実行するバッチ送信処理のフローチャートを示す。例えば、バッチ実行プログラム２１２は、バッチ送信処理を実行するため、ＮＡＳ１０２のＯＳが持つタイマ機能から呼び出される（Ｓ６０１）。次に、バッチ実行プログラム２１２は、データ同期プログラム２１４を呼び出し、後述するデータ同期処理Ｓ６０２を実行させる。
【００９３】
次に、バッチ実行プログラム２１２は、マイグレーションプログラム２１１を呼び出し、後述する更新データ送信処理Ｓ６０３を実行させる。バッチ実行プログラム２１２は、バッチ処理呼び出しであることを、マイグレーションプログラム２１１へ指示する。指示は、例えばフラグを用いて知らせる。マイグレーションプログラム２１１は、その指示に基づいて処理を実行する。マイグレーションプログラム２１１による更新データ送信処理Ｓ６０３の詳細は後述する。
【００９４】
更新データ送信処理Ｓ６０３が終了すると、バッチ実行プログラム２１２は、次回の起床時刻をＯＳのタイマ機能に設定し、スリープする（Ｓ６０４）。タイマ機能によるバッチ実行プログラム２１２の起動は一例であって、送信リスト２１３のレコード数等、他の規定条件が満たされたときにバッチ実行プログラム２１２は処理を開始してよい。
【００９５】
図１０は、データ同期プログラム２１４が実行するデータ同期処理Ｓ６０２のフローチャートを示す。データ同期プログラム２１４は、ＣＡＳ１２１から、ＣＡＳ１２１のファイルシステムボリューム３２５に格納されたデータを受信する（Ｓ６２１）。データは、オブジェクトであって、ファイル及びファイルツリーの情報を含む。
【００９６】
データ同期プログラム２１４は、ＣＡＳ１２１のファイルシステムボリューム３２５に格納されたデータと、ＮＡＳ１０２のファイルシステムボリューム２２５に格納されたデータを比較し、ＣＡＳ１２１における更新データを抽出する（Ｓ６２２）。更新データの抽出において、送信リスト２１３に登録されているオブジェクトは除外される。
【００９７】
更新データは、ファイルシステムボリューム２２５、３２５間の差分を示す。例えば、ファイルシステムボリューム２２５に対して、追加、削除されたディレクトリ、追加、削除、及び更新されたファイル等を示す。
【００９８】
データ同期プログラム２１４は、抽出したＣＡＳ１２１の更新データをＮＡＳ１０２のファイルシステムボリューム２２５に反映（同期）し（Ｓ６２３）、ＣＡＳ１２１とＮＡＳ１０２のディレクトリと、送信リスト２１３に登録されていないファイルとを一致させる。
【００９９】
なお、ＣＡＳ１２１の更新データの抽出は、ＮＡＳ１０２とＣＡＳ１２１それぞれが持つデータをＮＡＳ１０２が比較して行う、更新データをＣＡＳ１２１が抽出するなど、複数の方法が考えられる。
【０１００】
ＣＡＳ１２１からＮＡＳ１０２への更新データの反映は、バッチ実行プログラム２１２からの呼び出し時に行う、ファイルやディレクトリへのクライアント１０１のアクセス要求時に行う等、複数の方法が考えられる。データ同期処理Ｓ６０２により、他のＮＡＳによるＣＡＳ１２１のファイルシステムボリューム３２５におけるオブジェクト操作を、ＮＡＳ１０２のファイルシステムボリューム２２５に反映できる。
【０１０１】
図１１は、マイグレーションプログラム２１１が実行する更新データ送信処理Ｓ５１７、Ｓ６０３のフローチャートを示す。更新データ送信処理Ｓ５１７は図６に示すディレクトリ作成／削除処理Ｓ５１０において呼び出され、更新データ送信処理Ｓ６０３は、図９に示すバッチ送信処理で呼び出される。
【０１０２】
以下に説明する例において、ファイル更新は先勝ちルールに従う。つまり、同一ファイルに対して複数のＮＡＳによる未反映の更新が存在する場合、最初の更新が反映され、より遅い更新は禁止される。なお。ファイル更新は、常に新しいデータがファイルに上書きされる、後勝ちルールに従ってもよい。
【０１０３】
マイグレーションプログラム２１１は、更新データ送信処理要求を受け取ると、処理種別を判定する（Ｓ６３１）。マイグレーションプログラム２１１は、処理種別を、例えば、呼び出されたプログラムから取得したフラグを参照して判定する。処理種別がディレクトリ作成／削除の場合（Ｓ６３１：ディレクトリ作成／削除）、マイグレーションプログラム２１１は、ファイルシステムボリューム２２５において、ディレクトリを作成／削除する（Ｓ６３２）。
【０１０４】
マイグレーションプログラム２１１は、ＣＡＳ１２１へディレクトリ操作を指示する（Ｓ６３３）。具体的には、ディレクトリ作成において、マイグレーションプログラム２１１は、送信するオブジェクトを生成し、オブジェクト作成の指示と共に当該オブジェクトを送信する。ディレクトリ削除において、マイグレーションプログラム２１１は、ディレクトリ（オブジェクト）を指定して、オブジェクト削除指示を送信する。
【０１０５】
マイグレーションプログラム２１１は、ディレクトリ操作指示において、ファイルクライアントプログラム２０７を呼び出す。ファイルクライアントプログラム２０７は、ＣＡＳ１２１のファイル共有サーバプログラム３０６に接続し、ロックを取得する。ロックは、ＣＡＳ１２１の名前空間の全体又は対象ディレクトリを含む一部である。
【０１０６】
ＣＡＳ１２１のファイル共有サーバプログラム３０６は、ＣＡＳ１２１のファイルシステムプログラム３０７にオブジェクトの削除又はオブジェクトの格納を要求する。ファイルシステムプログラム３０７は、受信したオブジェクトをファイルシステムボリューム３２５へ格納する又は指定されたオブジェクトを削除する。ファイル共有サーバプログラム３０６は処理結果（完了応答）をＮＡＳ１０２に送信し、ファイルクライアントプログラム２０７は、ロックを解除する。
【０１０７】
最後に、マイグレーションプログラム２１１は、処理の戻り値（成功）を設定して（Ｓ６３４）、更新データ送信処理Ｓ５１７を終了する。
【０１０８】
処理種別がバッチ送信の場合（Ｓ６３１：バッチ送信）、マイグレーションプログラム２１１は、送信リスト２１３のレコードを順次読み込み、ステップＳ６３５〜Ｓ６３８を繰り返し実行する。送信リストのすべてのレコードの処理が完了すると、マイグレーションプログラム２１１は、更新データ送信処理Ｓ６０３を終了する。送信リスト２１３の複数のレコードをまとめて処理することで、ファイル操作のマイグレーションの遅延を抑制しつつ、効率的処理を実現する。なお、送信リスト２１３のレコードの一部のみを、一回のバッチ送信処理で選択してもよい。
【０１０９】
各レコードの処理を具体的に説明する。マイグレーションプログラム２１１は、データ同期処理Ｓ６０２で取得したＣＡＳ１２１のファイルシステムボリューム３２５のデータから、対象オブジェクトの情報を取得する（Ｓ６３５）。さらに、マイグレーションプログラム２１１は、ＣＡＳ１２１における対象オブジェクトの情報から、当該操作の許否を判定する（Ｓ６３６）。
【０１１０】
操作種別カラム４０３が示す操作種別がファイル作成の場合、マイグレーションプログラム２１１は、パスカラム４０１が示すオブジェクト（ファイル）が、ＣＡＳ１２１のファイルシステムボリューム３２５に存在するか確認する。
【０１１１】
オブジェクトが存在する場合、当該パスには他の拠点のＮＡＳ１１２がオブジェクトを作成済みである。そのため、マイグレーションプログラム２１１は、ＣＡＳ１２１における当該ファイル操作を禁止する（Ｓ６３６：ＮＯ）。また、対象ファイルのパスの親ディレクトリが存在しない場合、マイグレーションプログラム２１１は、ＣＡＳ１２１における当該ファイル操作を禁止する（Ｓ６３６：ＮＯ）。
【０１１２】
親ディレクトリが存在し、さらに、オブジェクトが存在しない場合、マイグレーションプログラム２１１は、ＣＡＳ１２１における当該ファイル操作を許可する（Ｓ６３６：ＹＥＳ）。
【０１１３】
操作種別カラム４０３が示す操作種別がファイル更新又はファイル削除の場合、マイグレーションプログラム２１１は、パスカラム４０１が示すオブジェクト（ファイル）が、ＣＡＳ１２１のファイルシステムボリューム３２５に存在するか確認する。当該オブジェクトが存在しない場合、マイグレーションプログラム２１１は、ＣＡＳ１２１における当該ファイル操作を禁止する（Ｓ６３６：ＮＯ）。
【０１１４】
当該オブジェクトが存在する場合、マイグレーションプログラム２１１は、ＮＡＳ１０２におけるファイルの前回一致時刻とＣＡＳ１２１におけるオブジェクトの最新更新時刻を比較する。
【０１１５】
ファイルの前回一致時刻は、ＮＡＳ１０２とＣＡＳ１１２との間で当該ファイルを一致させた又は一致を確認した時刻であり、当該ファイルのメタデータに含まれる。ファイルの一致はデータ同期処理Ｓ６０２又は更新データ送信処理Ｓ６０３で実行され、一致の確認はデータ同期処理Ｓ６０２で実行される。
【０１１６】
ＣＡＳ１２１における最新更新時刻が、ＮＡＳ１０２における前回一致時刻とよりも遅い時刻の場合、マイグレーションプログラム２１１は、ＣＡＳ１２１における当該ファイル操作を禁止する（Ｓ６３６：ＮＯ）。前回一致時刻が最新更新時刻と同じ又はそれよりも遅い時刻である場合、マイグレーションプログラム２１１は、ＣＡＳ１２１における当該ファイル操作を許可する（Ｓ６３６：ＹＥＳ）。
【０１１７】
操作種別カラム４０３が示す操作種別がファイル削除の場合、マイグレーションプログラム２１１は、パスカラム４０１が示すオブジェクト（ファイル）が、ＣＡＳ１２１のファイルシステムボリューム３２５に存在するか確認する。当該オブジェクトが存在しない場合、マイグレーションプログラム２１１は、ＣＡＳ１２１における当該ファイル操作を禁止する（Ｓ６３６：ＮＯ）。
【０１１８】
当該オブジェクトが存在する場合、マイグレーションプログラム２１１は、ＮＡＳ１０２におけるファイルの前回一致時刻とＣＡＳ１２１におけるオブジェクトの最新更新時刻を比較する。
【０１１９】
操作種別カラム４０３が示す操作種別がファイル移動の場合、マイグレーションプログラム２１１は、移動元におけるファイル削除及び移動先におけるファイル作成について上記判定を行う。
【０１２０】
ＣＡＳ１２１におけるファイル操作が許可される場合（Ｓ６３６：ＹＥＳ）、マイグレーションプログラム２１１は、送信リスト２１３のレコードのファイル種別カラム４０２示すにファイル種別に従ったオブジェクトを作成し、ファイル操作の指示と共にＣＡＳ１２１に送信する（Ｓ６３７）。
【０１２１】
ＣＡＳ１２１におけるファイル操作が禁止される場合（Ｓ６３６：ＮＯ）、マイグレーションプログラム２１１は、作成又は更新したオブジェクトを、退避ディレクトリ１０７へ移動する（Ｓ６３８）。これにより、ユーザ操作により生成され、ＣＡＳ１２１に反映されなかったデータを含むファイルを、ユーザ確認ために維持する。
【０１２２】
以上のように、ファイル共有システム１０は、ディレクトリ操作を、クライアントからのアクセス要求に同期してＣＡＳ１２１に送信し、ファイル操作をクライアントからのアクセス要求と非同期に、ＣＡＳ１２１へバッチ送信する。ディレクトリが退避ディレクトリ１０７へ作成されず、エンドユーザのユーザビリティの低下を抑制できる。一方、クライアントによるファイル操作は、ＮＡＳのファイルシステムにキャッシュされて完了する。これにより、ユーザによるファイル操作性能を高めることができる。
【０１２３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１２４】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【０１２５】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
【図１Ａ】
2016121093.tif 000003
【図１Ｂ】
2016121093.tif 000004
【図２】
2016121093.tif 000005
【図３】
2016121093.tif 000006
【図４】
2016121093.tif 000007
【図５】
2016121093.tif 000008
【図６】
2016121093.tif 000009
【図７】
2016121093.tif 000010
【図８】
2016121093.tif 000011
【図９】
2016121093.tif 000012
【図１０】
2016121093.tif 000013
【図１１】
2016121093.tif 000014
【国際調査報告】
2016121093.tif 000015
2016121093.tif 000016
2016121093.tif 000017