(57)【要約】      （修正有）【課題】一の拠点のファイルサーバで管理されていたファイルを、他の拠点のファイルサーバで適切に参照することのできる技術を提供する。【解決手段】ローカルのファイルサーバは、複数のユーザ端末とリモートのファイルサーバとに接続され、複数のユーザ端末から受信するファイルのデータを記憶デバイスに格納し、当該ファイルをリモートのファイルサーバにレプリケーションし、記憶デバイスに格納されたファイルをスタブ化し、ユーザ端末からのアクセス要求に基づいて、アクセス要求に係るファイルがスタブ化されていない場合は、記憶デバイスからそのファイルのデータを読み出して要求元のユーザ端末に送信し、そのアクセス要求に係るファイルがスタブ化されている場合は、ファイルのデータをリモートのファイルサーバから取得し、要求元のユーザ端末に当該ファイルのデータを送信する処理を制御する。【選択図】図１
2016212902.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザ及びリモートファイルサーバと通信するためのインターフェースと、
前記インターフェースに接続されており、前記複数のユーザのファイルのデータを記憶デバイスに格納すること、前記記憶デバイス内のファイルのデータを前記リモートファイルサーバにレプリケーションするレプリケーション処理、及び、ユーザからセッション切断要求の受信を行うプロセッサと
を備え、
前記レプリケーション処理において、前記プロセッサは、所定時間内のセッション切断要求の早いユーザ順にファイルのデータを前記リモートファイルサーバにレプリケーションする
ことを特徴とするファイルサーバ。
【請求項２】
前記プロセッサは、ユーザからセッション接続要求を受信した場合、前記リモートファイルサーバから当該ユーザのホームディレクトリの情報を取得する
ことを特徴とする請求項１に記載のファイルサーバ。
【請求項３】
前記プロセッサは、前記記憶デバイスに格納されたファイルをスタブ化し、
前記プロセッサは、ユーザからアクセス要求を受信した場合、
当該アクセス要求に係るファイルがスタブ化されていなければ、前記記憶デバイスから当該ファイルのデータを読み出して当該ユーザに提供し、
当該アクセス要求に係るファイルがスタブ化されていれば、当該ファイルのデータを前記リモートファイルサーバから取得し、当該ユーザに当該ファイルのデータを提供する
ことを特徴とする請求項１又は２に記載のファイルサーバ。
【請求項４】
前記プロセッサは、前記レプリケーション処理を定期的に行う
ことを特徴とする請求項１乃至３のうちのいずれか１項に記載のファイルサーバ。
【請求項５】
前記プロセッサは、ユーザからセッション接続要求を受信した場合、ユーザの識別子と、前記所定時間内にセッション切断要求を送信したユーザを示すポインタとを有するユーザ管理情報の前記ポインタが示すユーザの識別子よりも、当該セッション切断要求を送信したユーザの識別子が下位であれば、前記ポインタが示すユーザの識別子と当該セッション切断要求を送信したユーザを示す識別子とをスワップし、且つ、前記ポインタの位置を１つ下げる
ことを特徴とする請求項１乃至４のうちのいずれか１項に記載のファイルサーバ。
【請求項６】
前記プロセッサは、あるユーザのファイルのデータをレプリケーションした場合、前記ユーザ管理情報において、当該あるユーザを、セッション切断要求を行ったユーザから外す
ことを特徴とする請求項５に記載のファイルサーバ。
【請求項７】
前記プロセッサは、あるユーザからセッション接続要求を受信した場合、又は、当該あるユーザのファイルのデータに最初にアクセスする場合、前記あるユーザのホームディレクトリに対するロック要求を前記リモートファイルサーバに送信する
ことを特徴とする請求項１乃至６のうちのいずれか１項に記載のファイルサーバ。
【請求項８】
前記プロセッサは、前記あるユーザから前記セッション切断要求を受信した場合、又は、当該あるユーザから一定期間アクセスがなかった際、当該あるユーザのホームディレクトリに対するアンロック要求を前記リモートファイルサーバに送信する
ことを特徴とする請求項７に記載のファイルサーバ。
【請求項９】
請求項１乃至８のうちのいずれか１項に記載のファイルサーバを含む複数のローカルファイルサーバと、
前記複数のローカルファイルサーバに接続されたリモートファイルサーバと
を有する情報システム。
【請求項１０】
複数のローカルファイルサーバと前記複数のローカルファイルサーバに接続されたリモートファイルサーバとを有する情報処理システムの制御方法であって、
複数のユーザのファイルのデータを記憶デバイスに格納するステップと、
前記記憶デバイス内のファイルを前記リモートファイルサーバにレプリケーションするレプリケーション処理を行うステップと、
ユーザからセッション切断要求を受信するステップと
を有し、
前記レプリケーション処理を行うステップにおいて、所定時間内のセッション切断要求の早いユーザ順にファイルのデータを前記リモートファイルサーバにレプリケーションする
ことを特徴とする情報システムの制御方法。
【請求項１１】
ユーザからセッション接続要求を受信した場合、前記リモートファイルサーバから当該ユーザのホームディレクトリの情報を取得する
ことを特徴とする請求項１０に記載の情報システムの制御方法。
【請求項１２】
前記記憶デバイスに格納されたファイルをスタブ化するステップと、
ユーザからアクセス要求を受信した場合、下記（ａ）及び（ｂ）を実行するステップと
（ａ）当該アクセス要求に係るファイルがスタブ化されていなければ、前記記憶デバイスから当該ファイルのデータを読み出して当該ユーザに提供する、
（ｂ）当該アクセス要求に係るファイルがスタブ化されていれば、当該ファイルのデータを前記リモートファイルサーバから取得し、当該ユーザに当該ファイルのデータを提供する
を更に有することを特徴とする請求項１０又は１１に記載の情報システムの制御方法。
【請求項１３】
ユーザからセッション接続要求を受信した場合、ユーザの識別子と、前記所定時間内にセッション切断要求を送信したユーザを示すポインタとを有するユーザ管理情報の前記ポインタが示すユーザの識別子よりも、当該セッション切断要求を送信したユーザの識別子が下位であれば、前記ポインタが示すユーザの識別子と当該セッション切断要求を送信したユーザを示す識別子とをスワップし、且つ、前記ポインタの位置を１つ下げる
ことを特徴とする請求項１０乃至１２のうちのいずれか１項に記載の情報システムの制御方法。
【請求項１４】
あるユーザのファイルのデータをレプリケーションした場合、前記ユーザ管理情報において、当該あるユーザを、セッション切断要求を行ったユーザから外す
ことを特徴とする請求項１３に記載の情報システムの制御方法。
【請求項１５】
あるユーザからセッション接続要求を受信した場合、又は、当該あるユーザのデータに最初にアクセスする場合、当該ユーザのホームディレクトリに対するロック要求を前記リモートファイルサーバに送信するステップと、
当該あるユーザからセッション切断要求を受信した場合、又は、当該あるユーザから一定期間アクセスがなかった場合、当該あるユーザのホームディレクトリに対するアンロック要求を前記リモートファイルサーバに送信するステップと
を更に有することを特徴とする請求項１０乃至１４のうちのいずれか１項に記載の情報システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークに接続されるファイルサーバを含む情報システム、及び情報システムの制御方法に関し、ファイルサーバのファイルを管理する技術に関する。
【背景技術】
【０００２】
従来、企業や個人が自費でサーバやソフトウェアを購入し、これを利用する形態が主流であったが、ＴＣＯ（Total Cost of Ownership）を削減するため、インターネット経由でサーバやソフトウェアを利用するクラウドコンピューティングが広まる傾向にある。
【０００３】
特許文献１には、複数の拠点（Ｅｄｇｅという）のストレージ装置（ローカルストレージ装置、ローカルファイルサーバ）と、データセンタ（Ｃｏｒｅという）のストレージ装置（リモートストレージ装置、リモートファイルサーバ）とを接続したシステムにおいて、拠点のファイルがデータセンタへコピーされ、このコピーされたファイルは、拠点においてスタブ化されて管理され、また、拠点においてスタブ化されているファイルに対してアクセスが発生すると、データセンタ側からこのファイルを読み出す技術が開示されている。
【０００４】
特許文献１におけるシステムにおいては、ローカルストレージ装置に対して、ユーザからファイルシステムにファイルの書き込みがあると、ローカルストレージ装置は、定期的にコア側へファイルのレプリケーションを行う。このレプリケーションの処理は、レプリケーション処理が実行できる時間や時間帯、送信できるデータ量等が制限される場合がある。
【０００５】
ローカルストレージ装置においては、レプリケーション後においても、そのファイルを削除せずに、キャッシュファイルとして管理する。
【０００６】
その後、Ｅｄｇｅ側のファイルシステム容量が或る閾値に達した場合には、アクセス日時の古いキャッシュファイルをスタブファイルにする（スタブ化する）。ここで、スタブファイルとは、Ｅｄｇｅにおける実データへの参照を有しておらず、Ｃｏｒｅにおける実データへの参照を保持しているファイルである。
【０００７】
このような状態において、ローカルストレージ装置に対して、ユーザからスタブファイルに対するアクセスが発生した場合には、Ｅｄｇｅ側にファイルの実データがないために、Ｃｏｒｅ側から実データをＥｄｇｅ側にダウンロードする処理（リコール処理）が実行される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願公開第２０１２／００１６８３８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載のシステムでは、ユーザがＥｄｇｅ間を移動し、移動先の他のＥｄｇｅから当該ユーザのデータにアクセスすることは考慮されていない。このようなシステムにおいては、例えば、ユーザが他のＥｄｇｅに移動して、そのＥｄｇｅにおいて、そのユーザの専用のディレクトリ（ホームディレクトリ）内のデータへアクセスする場合、移動元のＥｄｇｅで更新されたファイルがＣｏｒｅ側にレプリケーションされるまで、移動先のＥｄｇｅでは、移動元のＥｄｇｅで更新されたファイルを参照できないという問題がある。この問題は特に、レプリケーションが行える時間、時間帯、データ量が制限される場合に、一度のレプリケーション処理で更新のあったデータを送りきれなかったときに生じやすい。
【００１０】
そこで、本発明は、一の拠点のファイルサーバで管理されていたファイルを、他の拠点のファイルサーバで適切に参照することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一観点に係るローカルのファイルサーバは、複数のユーザ端末とリモートのファイルサーバとに接続され、複数のユーザ端末から受信するファイルのデータを記憶デバイスに格納し、当該ファイルをリモートのファイルサーバにレプリケーションし、記憶デバイスに格納されたファイルをスタブ化し、ユーザ端末からのアクセス要求に基づいて、アクセス要求に係るファイルがスタブ化されていない場合は、記憶デバイスからそのファイルのデータを読み出して要求元のユーザ端末に送信し、そのアクセス要求に係るファイルがスタブ化されている場合は、ファイルのデータをリモートのファイルサーバから取得し、要求元のユーザ端末に当該ファイルのデータを送信する処理を制御する。そして、所定時間内にローカルのファイルサーバに対してセッション切断要求を行ったユーザのデータを優先してリモートのファイルサーバにレプリケーションする。
【発明の効果】
【００１２】
本発明によると、ローカルのファイルサーバで更新されたファイルを、リモートのファイルサーバに適切に格納させることができる。このため、例えば、リモートのファイルサーバに接続された他のローカルのファイルサーバから、或るローカルのファイルサーバで更新されたファイルを適切に参照することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係る情報システムの概要を示す図である。
【図２】図２は、実施例１に係る情報システムのハードウェア構成図である。
【図３】図３は、実施例１に係る情報システムのソフトウェア構成図である。
【図４】図４は、実施例１に係るファイルシステム構成情報の構成図である。
【図５】図５は、実施例１に係るディレクトリエントリの構成図である。
【図６】図６は、実施例１に係るｉｎｏｄｅの構成図である。
【図７】図７は、実施例１に係るｉｎｏｄｅ管理テーブルの構成図である。
【図８】図８は、実施例１に係るｉｎｏｄｅの詳細構成図である。
【図９】図９は、実施例１に係るユーザ管理テーブル及びユーザ管理テーブルの管理方法を説明する図である。
【図１０】図１０は、実施例１に係るアクセス処理のフローチャートである。
【図１１】図１１は、実施例１に係るロック処理のフローチャートである。
【図１２】図１２は、実施例１に係るアンロック処理のフローチャートである。
【図１３】図１３は、実施例１に係る接続ユーザ管理処理のフローチャートである。
【図１４】図１４は、実施例１に係るキャッシュ上書き処理のフローチャートである。
【図１５】図１５は、実施例１に係るリコール処理のフローチャートである。
【図１６】図１６は、実施例１に係るスタブ情報取得処理のフローチャートである。
【図１７】図１７は、実施例１に係る切断ユーザ管理処理のフローチャートである。
【図１８】図１８は、実施例１に係るレプリケーション処理（方式Ａ）のフローチャートである。
【図１９】図１９は、実施例１に係るレプリケーション処理（方式Ｂ）のフローチャートである。
【図２０】図２０は、実施例１に係るレプリケーション処理（配下以外）のフローチャートである。
【図２１】図２１は、実施例１に係るスタブ化処理のフローチャートである。
【図２２】図２２は、課題を説明する図である。
【図２３】図２３は、実施例２に係る設定ファイルの構成図である。
【図２４】図２４は、実施例２に係る実現方法１の概要を示す図である。
【図２５】図２５は、実施例２に係る拠点リストの構成図である。
【図２６】図２６は、実施例２に係る実現方法２の概要を示す図である。
【図２７】図２７は、実施例２に係る拠点のグループ分けを説明する図である。
【図２８】図２８は、実施例２に係るユーザリストの構成図である。
【図２９】図２９は、実施例２に係る実現方法３の方式Ａの概要を示す図である。
【図３０】図３０は、実施例２に係る実現方法３の方式Ｂの概要を示す図である。
【図３１】図３１は、実施例２に係るＥｄｇｅ側のセッション切断処理のフローチャートである。
【図３２】図３２は、実施例２に係るＣｏｒｅ側のセッション切断時処理のフローチャートである。
【図３３】図３３は、実施例２に係るポーリングによるデータ取得処理の概要を示す図である。
【図３４】図３４は、実施例２に係るポーリングによるデータ取得処理のフローチャートである。
【図３５】図３５は、実施例２に係るＥｄｇｅ側のセッション接続処理のフローチャートである。
【図３６】図３６は、実施例２に係るＣｏｒｅ側のセッション接続処理のフローチャートである。
【発明を実施するための形態】
【００１４】
いくつかの実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
なお、以後の説明では「ａａａテーブル」等の表現にて本発明の情報を説明する場合があるが、これら情報は、テーブル等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ａａａテーブル」等について「ａａａ情報」と呼ぶことがある。また、「ｂｂｂ名」等の表現にて本発明の「ｂｂｂ」を識別するための情報を説明する場合があるが、これらの識別するための情報は、名前に限られず、識別子や識別番号、アドレスなど、「ｂｂｂ」が特定できる情報であればよい。
【００１６】
また、以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサ（典型的にはＣＰＵ（Central  Processing  Unit））によって実行されることで定められた処理をメモリ及びＩ／Ｆ（インタフェース）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は、ファイルサーバ（例えば、後述のファイルストレージ装置、アーカイブストレージ装置）が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。記憶メディアとしては、例えば、ＩＣカード、ＳＤカード、ＤＶＤ等であってもよい。
【００１７】
ここで、各種用語について説明する。「Ｃｏｒｅ」とは、リモートの計算機システムを含んだ拠点（集約拠点）であり、例えば、サーバやストレージ装置を一括管理する拠点やクラウドサービスを提供する拠点である。「Ｅｄｇｅ」とは、ローカルの計算機システムを含んだ拠点であり、例えば、支店、営業所、リモートオフィスなどユーザが実際に業務を行う拠点である。「スタブ」とは、ファイルの格納先情報（リンク先を表す情報）が関連付けられたオブジェクト（メタデータ）である。「スタブ化」とは、Ｅｄｇｅ（Ｅｄｇｅの計算機システム）のファイルについて、実際のデータ（実データ）を削除し、管理情報のみを保持した状態にすることをいう。スタブ化されたファイルは、実際のデータを保持していないため、アクセスされるとＣｏｒｅの計算機システムから実データを取得する必要がある。このため、スタブ化されたファイルへのアクセスは、通常のファイルに比べてアクセス性能が低下する。
【００１８】
「レプリケーション」とは、ＥｄｇｅにあるファイルをＣｏｒｅにコピーすることをいう。「マイグレーション」とは、ＥｄｇｅにあるファイルをＣｏｒｅにレプリケーションし、Ｅｄｇｅのファイルをスタブ化することをいう。「アーカイブ」とは、マイグレーションとレプリケーションとの総称である。「リコール」とは、スタブ化されたファイルについて、Ｃｏｒｅから実データを取得し、Ｅｄｇｅのファイルに保持させることをいう。「キャッシュ」とは、ＥｄｇｅからＣｏｒｅへレプリケーションした後に、Ｅｄｇｅに残っているファイルのこと又は、そのようにＥｄｇｅにファイルを残すことをいう。キャッシュへのアクセスは、通常のファイルと同等なアクセス性能である。「ホームディレクトリ」とは、ファイルシステムにおいて、ユーザ毎に割り当てられるユーザ専用のディレクトリのことをいい、配下に当該ユーザのディレクトリ及びファイルを含む。
【００１９】
まず、実施例１に係る情報システムを説明する。
【００２０】
図１は、実施例１に係る情報システムの概要を示す図である。
【００２１】
情報システムのＥｄｇｅ１０Ａ（拠点Ａともいう）において、ユーザＡによりファイルストレージ装置３０のファイルシステム３６のファイルＡが更新される（図中（Ａ））と、ファイルストレージ装置３０は、所定の時点、例えば、ユーザＡがファイルストレージ装置３０に対するセッションを切断した時、又は定期的に、ファイルシステム３６のファイル（ファイルＡ等）についてアーカイブストレージ装置１２０へのレプリケーション、及びファイルのスタブ化を実行する（図中（Ｂ））。
【００２２】
この後、ユーザＡが拠点Ａから拠点Ｂ（Ｅｄｇｅ１０Ｂ）に移動して（図中（Ｃ））、ユーザＡが拠点Ｂのファイルストレージ装置３０に対するセッションを接続すると、拠点Ｂのファイルストレージ装置３０は、Ｃｏｒｅ１００のアーカイブストレージ装置１２０のファイルシステム１２６からファイルＡをリコールして、ファイルＡをファイルシステム３６に格納する（図中（Ｄ））。ここで、拠点ＢにおいてファイルＡをリコールする場合には、既に、Ｃｏｒｅ１００のファイルシステム１２６にファイルＡがレプリケーションされているので、適切にファイルＡのリコールを行うことができる。
【００２３】
図２は、実施例１に係る情報システムのハードウェア構成を示す図である。
【００２４】
情報システムのハードウェアは、Ｅｄｇｅ１０とＣｏｒｅ１００とに配置される。図２に示す例では、Ｅｄｇｅ１０は複数、Ｃｏｒｅ１００が単数であるが、Ｅｄｇｅ１０が単数、及び／又は、Ｃｏｒｅ１００が複数でもよい。
【００２５】
Ｅｄｇｅ１０の計算機システムは、ＲＡＩＤ（Redundant  Array  of  Independent  （or  Inexpensive ）  Disks）システム２０と、１以上のファイルストレージ装置３０と、１以上のクライアント（例えば、パーソナルコンピュータ）／ホスト（例えば、サーバ）４０と、を備える。ファイルストレージ装置３０は、ローカルのファイルサーバの一例である。ファイルストレージ装置３０は、例えば、通信ネットワーク５０（例えばＬＡＮ（Local  Area  Network））経由で、クライアント／ホスト４０に接続されている。また、ファイルストレージ装置３０は、例えば、通信ネットワーク（例えばＳＡＮ（Storage  Area  Network））経由で、ＲＡＩＤシステム２０に接続されている。
【００２６】
ＲＡＩＤシステム２０は、ＣＨＡ（Channel  Adaptor）２１と、ＤＫＣ（DisK  Controller)２２と、ＤＩＳＫ２３とを備える。ＤＫＣ２２に、ＣＨＡ２１及びＤＩＳＫ２３が接続されている。ＣＨＡ２１は、ファイルストレージ装置３０に接続される通信インタフェース装置である。ＤＫＣ２２は、コントローラである。ＤＩＳＫ２３は、ディスク型の物理記憶デバイス（例えば、ＨＤＤ（Hard  Disk  Drive））である。物理記憶デバイスとして、他種の物理記憶デバイス（例えば、フラッシュメモリデバイス）が採用されてもよい。また、ＤＩＳＫ２３は、図２では単数であるが、実際は、複数である（図示通り、単数でも良い）。複数のＤＩＳＫ２３で、１以上のＲＡＩＤグループが構成されてよい。また、図示されていないが、ＲＡＩＤシステム２０は、ＲＡＩＤシステム２０内で実行されるプログラムを格納するメモリ、及び当該プログラムを実行するＣＰＵ（Central  Processing  Unit）とを有する。
【００２７】
ＲＡＩＤシステム２０は、ファイルストレージ装置３０から送信されたブロックレベルのＩ／Ｏ要求をＣＨＡ２１で受信し、ＤＫＣ２２の制御に基づいて、適切なＤＩＳＫ２３へのＩ／Ｏを実行する。
【００２８】
ファイルストレージ装置３０は、メモリ３１と、ＣＰＵ３２と、ＮＩＣ（Network  Interface  Card）３３と、ＨＢＡ（Host  Bus  Adaptor）３４と、を備える。メモリ３１、ＮＩＣ３３及びＨＢＡ３４に、ＣＰＵ３２が接続されている。
【００２９】
ＮＩＣ３３は、アーカイブストレージ装置１２０及びクライアント／ホスト４０と通信する通信インタフェース装置である。
【００３０】
ＨＢＡ３４は、ＲＡＩＤシステム２０と通信する通信インタフェース装置である。
【００３１】
メモリ３１は、ＣＰＵ３２が直接読み書きできる記憶領域（例えば、ＲＡＭ（Random  Access  Memory）やＲＯＭ（Read  Only  Memory））である。ファイルストレージ装置３０では、メモリ３１上にファイルストレージ装置３０を制御するプログラム（例えばＯＳ（Operating  System））を読み込み、ＣＰＵ３２がそのプログラムを実行する。ファイルストレージ装置３０は、メモリ３１に加えて又は代えて、別種の記憶資源を有してもよい。メモリ３１は、記憶デバイスの一例である。
【００３２】
ファイルストレージ装置３０は、ＮＩＣ３３経由で、クライアント／ホスト４０からファイルレベルのＩ／Ｏ要求を受信する。ファイルストレージ装置３０は、そのＩ／Ｏ要求で指定されているファイルを構成するデータブロックのＩ／ＯのためのＩ／Ｏ要求（ブロックレベルのＩ／Ｏ要求)を作成する。ファイルストレージ装置３０は、ブロックレベルのＩ／Ｏ要求を、ＨＢＡ３４経由で、ＲＡＩＤシステム２０に送信する。
【００３３】
クライアント／ホスト４０は、メモリ４１と、ＣＰＵ４２と、ＮＩＣ４３と、ＤＩＳＫ４４と、を備える。クライアント／ホスト４０は、メモリ４１及び／又はＤＩＳＫ４４に加えて又は代えて、別種の記憶資源を有してもよい。
【００３４】
クライアント／ホスト４０では、ＤＩＳＫ４４に格納されているプログラム（クライアント／ホスト４０を制御するプログラム（例えばＯＳ））をメモリ４１上に読み込み、ＣＰＵ４２がプログラムを実行する。また、クライアント／ホスト４０は、ＮＩＣ４３経由で、ファイルレベルのＩ／Ｏ要求をファイルストレージ装置３０に送信する。
【００３５】
Ｃｏｒｅ１００の計算機システムは、ＲＡＩＤシステム１１０と、アーカイブストレージ装置１２０と、を備える。アーカイブストレージ装置１２０は、リモートのファイルサーバの一例である。アーカイブストレージ装置１２０に、ＲＡＩＤシステム１１０が接続されている。
【００３６】
ＲＡＩＤシステム１１０は、ＣＨＡ１１１と、ＤＫＣ１１２と、ＤＩＳＫ１１３と、を備える。図２では、ＲＡＩＤシステム１１０の構成とＲＡＩＤシステム２０の構成とは、同一である。従って、ＲＡＩＤシステム１１０も、アーカイブストレージ装置１２０から送信されたブロックレベルのＩ／Ｏ要求をＣＨＡ１１１で受信し、ＤＫＣ１１２の制御に基づいて、適切なＤＩＳＫ１１３へのＩ／Ｏを実行する。なお、ＲＡＩＤシステム１１０の構成とＲＡＩＤシステム２０の構成は、異なっていてもよい。
【００３７】
アーカイブストレージ装置１２０は、メモリ１２１と、ＣＰＵ１２２と、ＮＩＣ１２３と、ＨＢＡ１２４と、を備える。メモリ１２１に代えて又は加えて、別種の記憶資源が備えられてもよい。アーカイブストレージ装置１２０では、メモリ１２１上にアーカイブストレージ装置１２０を制御するプログラム（例えばＯＳ）を読み込み、ＣＰＵ１２２がそのプログラムを実行する。また、アーカイブストレージ装置１２０は、ＮＩＣ１２３及び通信ネットワーク８０経由で、ファイルストレージ装置３０と通信する。アーカイブストレージ装置１２０は、ＨＢＡ１２４経由で、ＲＡＩＤシステム１１０に対してブロック単位のアクセスを行う。
【００３８】
図３は、実施例１に係る情報システムのソフトウェア構成図である。
【００３９】
ＲＡＩＤシステム２０（１１０）は、複数のＬＵ（Logical  Unit）２４（１１４）と、ＯＳ  ＬＵ（ＯＳ用  Logical  Unit）２５（１１５）とを有する。ＬＵ２４（１１４）は、ファイルストレージ装置３０（アーカイブストレージ装置１２０）等の上位装置に対して提供される論理的な記憶デバイスであり、ＤＩＳＫ２３（１１３）の記憶領域に基づいて作成される。ＬＵ２４（１１４）は、１以上のＤＩＳＫ２３（１１３）に基づく実体的なＬＵであってもよいし、Thin  Provisioningに従う仮想的なＬＵであってもよい。ＬＵ２４（１１４）は、複数のブロック（記憶領域）で構成されている。ＬＵ２４（１１４）に、ファイルが記憶される。
【００４０】
ＯＳ  ＬＵ２５（１１５）は、論理的な記憶デバイスである。ＯＳ  ＬＵ２５（１１５）は、１以上のＤＩＳＫ２３（１１３）に基づく実体的なＬＵであってもよい。ＯＳ  ＬＵ２５（１１５）は、ファイルストレージ装置３０又はアーカイブストレージ装置１２０を制御するプログラム等や、後述のファイルシステム構成情報２００の全部又は一部が、記憶されてよい。
【００４１】
ファイルストレージ装置３０のメモリ３１（アーカイブストレージ装置１２０のメモリ１２１）には、データムーバプログラム３７（１２５）と、ファイルシステム３６（１２６）と、カーネル／ドライバ３８（１２７）と、が記憶されている。ファイルストレージ装置３０のメモリ３１には、更に、ファイル共有プログラム３５が記憶されている。以下、ファイルストレージ装置３０内のデータムーバプログラム３７を、「ローカルムーバ」と言い、アーカイブストレージ装置１２０内のデータムーバプログラム１２５を、「リモートムーバ」と言い、それらを特に区別しない場合に、「データムーバプログラム」と言う。ファイルストレージ装置３０とアーカイブストレージ装置１２０との間では、ローカルムーバ３７及びリモートムーバ１２５を介して、ファイルのやり取りが行われる。
【００４２】
ローカルムーバ３７は、ＲＡＩＤシステム２０のＬＵ２４から、レプリケーション対象のファイル（ファイルの実データ及びファイルのメタデータ）を読み出し、そのファイルをアーカイブストレージ装置１２０に転送する。リモートムーバ１２５は、レプリケーション対象のファイルをファイルストレージ装置３０から受信し、そのファイルを、ＲＡＩＤシステム１１０のＬＵ１１４に書き込む。
【００４３】
また、ローカルムーバ３７は、ＬＵ２４内のレプリケーション済みファイル（厳密にはそのファイルの実データ）を、ある所定の条件が満たされた場合に、削除し、それにより、レプリケーション済みファイルの実質的なマイグレーションを実現する。その後、ローカルムーバ３７は、実データが削除されたファイルのスタブ（メタデータ）に対してクライアント／ホスト４０からリード要求を受けた場合、リモートムーバ１２５を経由して、スタブにリンクしているファイル（ファイルの実データ）を取得し、取得したファイルをクライアント／ホスト４０に送信する。なお、本実施例において、「スタブ」とは、ファイルの格納先情報（リンク先を表す情報）が関連付けられたオブジェクト（メタデータ）である。クライアント／ホスト４０からは、ファイルがスタブであるかは分からない。
【００４４】
カーネル／ドライバ３８（１２７）は、ファイルストレージ装置３０（アーカイブストレージ装置１２０）上で動作する複数のプログラム（プロセス）のスケジュール制御やハードウェアからの割り込みをハンドリングするなど、全般的な制御及びハードウェア固有の制御を行う。
【００４５】
ファイル共有プログラム３５は、ＣＩＦＳ（Common  Internet  File  System）、ＮＦＳ（Network  File  System）といった通信プロトコルを使用して、クライアント／ホスト４０との間で、ファイル共有サービスを提供するプログラムである。
【００４６】
クライアント／ホスト４０のメモリ４１には、アプリケーション４５と、ファイルシステム４６と、カーネル／ドライバ４７とが記憶されている。
【００４７】
アプリケーション４５は、クライアント／ホスト４０が、作業の目的に応じて使うソフトウェア（アプリケーションプログラム）である。ファイルシステム４６及びカーネル／ドライバ４７は、上述のファイルシステム３６（１２６）、カーネル／ドライバ３８（１２７）とほぼ同様である。
【００４８】
ファイルシステム３６（１２６）は、ファイルシステムプログラムであり、ファイルシステム構成情報２００を管理する。ファイルシステム構成情報２００は、各ファイル、ディレクトリに関する情報（例えば、ファイルのサイズや場所などを表す情報等）を含み、例えばＯＳ  ＬＵ２５（１１５）やメモリ３１（１２１）に格納される。
【００４９】
図４は、実施例１に係るファイルシステム構成情報の構成図である。
【００５０】
ファイルシステム構成情報２００は、スーパーブロック２１０と、ｉｎｏｄｅ管理テーブル２２０と、データブロック群２３０とを含む。スーパーブロック２１０は、ファイルシステムの情報を一括保持するブロックであり、例えば、ファイルシステムの大きさ、ファイルシステムの空き容量等の情報を格納する。ｉｎｏｄｅ管理テーブル２２０は、ファイル管理情報の一例であるｉｎｏｄｅを管理するテーブルである。ファイルシステム３６（１２６）では、１つのディレクトリや、１つのファイルのそれぞれに対して１つのｉｎｏｄｅを対応させている。ここで、ディレクトリに対応するｉｎｏｄｅをディレクトリエントリと呼ぶ。複数のディレクトリエントリを用いて、ファイルパスを辿ることにより、ファイルに対応するｉｎｏｄｅにアクセスすることができる。
【００５１】
図５は、実施例１に係るディレクトリエントリの構成図である。図５は、「/home/use-01/a.txt」で示されるファイルにアクセスする際に利用するｉｎｏｄｅ管理テーブル２２０のディレクトリエントリを示している。
【００５２】
「/home/use-01/a.txt」で示されるファイルにアクセスする際には、ファイルのパス名に従って、ｉｎｏｄｅ番号「２」、「１０」、「１５」に対応するｉｎｏｄｅを辿って行き、ファイルに対応するｉｎｏｄｅ番号「１００」のｉｎｏｄｅを特定する。そして、ファイルに対応するｉｎｏｄｅ番号「１００」のｉｎｏｄｅに基づいて、ファイルの実データが格納されているデータブロックを特定し、このデータブロックにアクセスすることとなる。
【００５３】
図６は、実施例１に係るファイルに対応するｉｎｏｄｅの構成図である。
【００５４】
ファイルに対応するｉｎｏｄｅ２０１は、複数のメタデータで構成される。メタデータの種類としては、ファイルの所有者、ファイルのアクセス権、ファイルサイズ、ファイルの格納位置（データブロックアドレス１、２、３、…）などがある。例えば、ｉｎｏｄｅ番号「１００」を含む行（ｉｎｏｄｅ番号「１００」のｉｎｏｄｅ）によれば、ファイルは、図６に示すように、下記のデータブロック（ＬＵ内のデータブロック）が記憶するデータ（実データ）で構成されていることがわかる。
（＊）アドレス１００のデータブロックを先頭とした所定数（ここでは、２つ）の連続したデータブロック内のデータ。
（＊）アドレス２００のデータブロックを先頭とした所定数（ここでは、２つ）の連続したデータブロック内のデータ。
（＊）アドレス２５０のデータブロックを先頭とした所定数（ここでは、２つ）の連続したデータブロック内のデータ。
【００５５】
次に、ｉｎｏｄｅ管理テーブルの詳細な構成について説明する。
【００５６】
図７は、実施例１に係るｉｎｏｄｅ管理テーブルの構成図である。
【００５７】
ｉｎｏｄｅ管理情報テーブル２２０は、ディレクトリに対応するｉｎｏｄｅ２０２と、ファイルに対応するｉｎｏｄｅ２０１との２種類のエントリを管理する。
【００５８】
ディレクトリに対応するｉｎｏｄｅ２０２は、ｉｎｏｄｅ番号２２０ａと、所有者２２０ｂと、アクセス権２２０ｃと、サイズ２２０ｄと、最終アクセス日時２２０ｅと、ディレクトリ名２２０ｆと、子ディレクトリｉｎｏｄｅ番号２２０ｇとのフィールドを有する。
【００５９】
ｉｎｏｄｅ番号２２０ａには、このエントリに対応するｉｎｏｄｅ番号が格納される。所有者２２０ｂには、このエントリに対応するディレクトリの所有者の識別情報が格納される。アクセス権２２０ｃには、このエントリに対応するディレクトリに対するアクセス権が格納される。サイズ２２０ｄには、このエントリに対応するディレクトリのサイズが格納される。最終アクセス日時２２０ｅには、このエントリに対応するディレクトリに対する最終アクセス日時が格納される。ディレクトリ名２２０ｆには、このエントリに対応するディレクトリの名前（ディレクトリ名）が格納される。子ディレクトリｉｎｏｄｅ番号２２０ｇには、このエントリに対応するディレクトリの子となる（直下の）ディレクトリ（ファイル）に対応するｉｎｏｄｅ番号が格納される。
【００６０】
ファイルに対応するｉｎｏｄｅ２０１は、ｉｎｏｄｅ番号２２０ａと、所有者２２０ｂと、アクセス権２２０ｃと、サイズ２２０ｄと、最終アクセス日時２２０ｅと、ファイル名２２０ｈと、データブロックアドレス１  ２２０ｌと、データブロックアドレス２  ２２０ｍと、データブロックアドレス３  ２２０ｎとのフィールドを有する。なお、ディレクトリに対応するｉｎｏｄｅ２０２と同一の符号で示しているフィールドについては、同様な情報が格納される。ファイル名２２０ｈには、このエントリに対応するファイルのファイル名が格納される。データブロックアドレス１  ２２０ｌ、データブロックアドレス２  ２２０ｍ、及びデータブロックアドレス３  ２２０ｎには、このエントリに対応するファイルの実データが格納されているデータブロックのアドレスが格納される。
【００６１】
本実施例では、ｉｎｏｄｅ管理テーブル２２０には、新たな種類のメタデータが管理されている。
【００６２】
図８は、実施例１に係るｉｎｏｄｅ管理テーブルの詳細構成図である。
【００６３】
ファイルに対応するｉｎｏｄｅ２０１は、スタブ化フラグ２２０ｉと、レプリケーション済みフラグ２２０ｊと、リンク先２２０ｋとのフィールドを更に有する。
【００６４】
スタブ化フラグ２２０ｉには、このエントリに対応するファイル（図８の説明で対象ファイルという）がスタブ化されているか否かを表すスタブ化フラグが格納される。スタブ化フラグは、例えば、対象ファイルがスタブ化されている場合には、「ＯＮ」であり、対象ファイルがスタブ化されていない場合、「ＯＦＦ」である。
【００６５】
レプリケーション済みフラグ２２０ｊには、対象ファイルがレプリケーション済みであるか否かを表すレプリケーション済みフラグが格納される。レプリケーション済みフラグは、対象ファイルがレプリケーション済みの場合に「ＯＮ」であり、対象ファイルがレプリケーションされていない場合は「ＯＦＦ」である。
【００６６】
リンク先２２０ｋには、対象ファイルの実データのＣｏｒｅ１００における格納先（リンク先）を表す情報（例えば、ＵＲＬ（Uniform  Resource  Locator））が格納される。
【００６７】
本実施例では、ファイルストレージ装置３０に接続可能なユーザを管理するとともに、セッション接続をしたユーザを管理するためにセッション接続管理用のユーザ管理テーブル２４０を用いている。セッション接続管理用のユーザ管理テーブル２４０は、例えば、ファイルストレージ装置３０のメモリ３１に格納されている。また、セッション切断をしたユーザを管理するためにも同様な構成のセッション切断管理用のユーザ管理テーブルを用いている。このセッション切断管理用のユーザ管理テーブルについてもメモリ３１に格納されている。
【００６８】
図９は、実施例１に係るユーザ管理テーブル及びユーザ管理テーブルの管理方法を説明する図である。図９は、セッション接続したユーザを管理するセッション接続管理用のユーザ管理テーブル２４０であるが、セッション切断したユーザを管理するセッション切断管理用のユーザ管理テーブルも同様な構成であり、その構成及びその管理方法は、図９におけるセッション接続したユーザを、セッション切断したユーザと読み替えればよい。
【００６９】
セッション接続管理用のユーザ管理テーブル２４０は、図９の上図に示すように、ポインタ２４０ａと、ユーザ２４０ｂとのフィールドを含むエントリを格納する。ポインタ２４０ａには、ユーザ管理テーブル２４０におけるエントリの番号が格納される。ユーザ２４０ｂには、エントリに対応するユーザのユーザ名（ユーザＩＤ等、ユーザを識別できるユーザ特定情報）が格納される。
【００７０】
本実施例では、図９の下図に示すように、接続管理用のポインタ２５０によって示される番号に対応するエントリ以降であるか否かにより、エントリに対応するユーザが所定の時点以降にセッション接続したことがあるユーザであるか否かを管理している。すなわち、接続管理用のポインタによって示されるエントリよりも前のエントリに対応するユーザは、所定の時点以降にセッション接続したことがあるユーザであり、ポインタによって示されるエントリ以降のエントリに対応するユーザは、所定の時点以降にセッション接続したことがないユーザであることを意味している。接続管理用のポインタ２５０は、例えば、メモリ３１に格納されている。
【００７１】
このセッション接続管理用のユーザ管理テーブル２４０を用いたセッション接続したユーザの管理は、次のように行われる。まず、ユーザがセッション接続した際には、そのユーザのユーザ名が格納されているエントリが、ポインタが示すエントリ以降であるか否かを判定し、ポインタが示すエントリ以降であれば、そのエントリのユーザ名と、ポインタが示すエントリのユーザ名とをスワップし、ポインタ２５０を１つインクリメントする。これにより、ポインタ２５０が示すエントリよりも前に、所定時点以降にセッション接続したユーザのユーザ名を含むエントリを集約することができる。
【００７２】
例えば、図９の上図のような状態であり、だれもセッション接続していない場合において、ＵｓｅｒＡ及びＵｓｅｒＥがセッション接続をすると、ポインタが初期値０であるので、ＵｓｅｒＡについては、ポインタ以降のエントリであるので、ポインタの位置のユーザ名とのスワップをすることとなるが、ポインタの位置なのでユーザ名は移動しないで、ポインタが１となる。次に、ＵｅｓｒＥについては、ポインタが示すエントリ以降のエントリであるので、図９の下図に示すように、ポインタの位置のユーザ名であるＵｓｅｒＢとＵｅｓｒＥとをスワップし、ＵｓｅｒＥを２番目のエントリに格納するとともに、ポインタに１を加算して、ポインタを２とする。したがって、ポインタが示すエントリよりも前のエントリに、セッション接続したユーザのユーザ名、すなわち、ＵｓｅｒＡ及びＵｓｅｒＥを集約して管理することができる。
【００７３】
次に、実施例１で行われる処理を説明する。
【００７４】
図１０は、実施例１に係るアクセス処理のフローチャートである。アクセス処理は、クライアント／ホスト４０からファイルストレージ装置３０に対してユーザによるアクセス処理が来た場合に実行される。
【００７５】
ファイルストレージ装置３０は、アクセス処理を受け取ると、アクセス処理の種類がいずれであるかを判定する（ステップＳ１１）。
【００７６】
ステップＳ１１で、アクセス処理の種類がファイルストレージ装置３０に対するセッション接続であると判定した場合（ステップＳ１１：セッション接続）には、ファイルストレージ装置３０は、アクセス処理を要求したユーザのホームディレクトリのロック要求を実行する（ステップＳ１２）。ロック要求に起因して実行される処理は、図１１を参照して後述する。
【００７７】
ファイルストレージ装置３０は、ロックが成功したか否かを判定する（ステップＳ１３）。この結果、ロック成功していない場合（ステップＳ１３：Ｎｏ）には、ファイルストレージ装置３０は、処理をステップＳ１２に進める。
【００７８】
一方、ロック成功した場合（ステップＳ１３：Ｙｅｓ）には、ファイルストレージ装置３０は、ユーザのホームディレクトリの配下のディレクトリ及びファイルに対応するスタブ情報の取得要求を行う（ステップＳ１４）。ここで、スタブ情報とは、アーカイブストレージ装置１２０のファイルシステム１２６において管理されているｉｎｏｄｅ（エントリ）である。スタブ情報の取得要求に起因して実行される処理は、図１６を参照して後述する。
【００７９】
その後、ファイルストレージ装置３０は、取得したスタブ情報に基づいて、ホームディレクトリを作成し（ステップＳ１５）、データ同期処理（図１３及び図１４参照）を実行し（ステップＳ１６）、アクセス処理を終了する。
【００８０】
また、ステップＳ１１で、アクセス処理の種類がファイルストレージ装置３０に対するセッション切断であると判定した場合（ステップＳ１１：セッション切断）には、ファイルストレージ装置３０は、セッション切断時の処理を行う（ステップＳ１７）。例えば、ファイルストレージ装置３０は、アクセス処理を要求したユーザのホームディレクトリのレプリケーション、スタブ化等の処理を行う。セッション切断時の処理については、図１７乃至図１９を参照して後述する。
【００８１】
次に、ファイルストレージ装置３０は、ホームディレクトリのアンロック要求を実行する（ステップＳ１８）。アンロック要求に起因して実行される処理は、図１２を参照して後述する。その後、ファイルストレージ装置３０は、アクセス処理を終了する。
【００８２】
また、ステップＳ１１で、アクセス処理の種類がファイルのＲｅａｄ処理であると判定した場合（ステップＳ１１：Ｒｅａｄ処理）には、ファイルストレージ装置３０は、ファイルシステム３６のｉｎｏｄｅ管理テーブル２２０のＲｅａｄ対象のファイルに対応するｉｎｏｄｅ（エントリ）を参照し、このファイルがスタブ化されているか否かを判定する（ステップＳ１９）。ここで、ファイルがスタブ化されているか否かは、ｉｎｏｄｅ２０１のスタブ化フラグ２２０ｉを参照することにより判定することができる。この結果、このファイルがスタブ化されている場合（ステップＳ１９：Ｙｅｓ）には、ファイルストレージ装置３０は、このファイルの実データをリコールする処理を実行し（ステップＳ２０）、処理をステップＳ２１に進める。ファイルをリコールする処理によると、ファイルの実データが、ＬＵ２４のデータブロックに格納され、ｉｎｏｄｅ管理テーブル２２０のファイルに対応するｉｎｏｄｅ２０１のデータブロックアドレスに実データが格納されたブロックアドレスが格納される。なお、ファイルの実データをリコールするリコール処理については、図１５を参照して後述する。
【００８３】
一方、このファイルがスタブ化されていない場合（ステップＳ１９：Ｎｏ）、すなわち、ファイルの実データがＬＵ２４に格納されている場合には、ファイルストレージ装置３０は、処理をステップＳ２１に進める。
【００８４】
ステップＳ２１では、ファイルストレージ装置３０は、ファイルのｉｎｏｄｅ２０１に基づいて、ファイルの実体を読み出す、すなわち、ｉｎｏｄｅ２０１から実データが格納されているデータブロックを特定し、当該データブロックからデータを読み出す。その後、ファイルストレージ装置３０は、アクセス処理を終了する。
【００８５】
また、ステップＳ１１で、アクセス処理の種類がファイルのＷｒｉｔｅ処理であると判定した場合（ステップＳ１１：Ｗｒｉｔｅ処理）には、ファイルストレージ装置３０は、ファイルシステム３６のｉｎｏｄｅ管理テーブル２２０のＷｒｉｔｅ対象のファイルに対応するｉｎｏｄｅ（エントリ）２０１を参照し、このファイルがスタブ化されているか否かを判定する（ステップＳ２２）。この結果、このファイルがスタブ化されている場合（ステップＳ２２：Ｙｅｓ）には、ファイルストレージ装置３０は、このファイルの実データをリコールする処理を実行し（ステップＳ２３）、処理をステップＳ２４に進める。ファイルをリコールする処理によると、ファイルの実データが、ＬＵ２４のデータブロックに格納され、ｉｎｏｄｅ管理テーブル２４０のファイルに対応するｉｎｏｄｅ２０１のデータブロックアドレスに実データが格納されたブロックアドレスが格納される。ファイルの実データをリコールする処理については、図１５を参照して後述する。
【００８６】
一方、このファイルがスタブ化されていない場合（ステップＳ２２：Ｎｏ）には、ファイルストレージ装置３０は、処理をステップＳ２４に進める。
【００８７】
ステップＳ２４では、ファイルストレージ装置３０は、ファイルのｉｎｏｄｅ２０１に基づいて、ファイルの実データを書き込む、すなわち、ｉｎｏｄｅ２０１から実データが格納されているデータブロックを特定し、当該データブロックに対して実データを書き込む。その後、ファイルストレージ装置３０は、このファイルのｉｎｏｄｅ２０１のレプリケーション済みフラグ２２０ｊのレプリケーション済みフラグを、このファイルがレプリケーションされていないことを示すレプリケーション済みフラグ（ここでは、「ＯＦＦ」）に変更し（ステップＳ２５）、アクセス処理を終了する。
【００８８】
図１１は、実施例１に係るロック処理のフローチャートである。
【００８９】
ロック処理は、図１０に示すステップＳ１２において、ファイルストレージ装置３０によりロック要求が実行されることにより実行される。
【００９０】
Ｃｏｒｅ１００のアーカイブストレージ装置１２０は、ロック要求を受け取ると、ロック要求に含まれるＥｄｇｅ名称及びロック対象のホームディレクトリ名から、当該ホームディレクトリのロックを管理するためのロックファイルの名前（ロックファイル名）を特定し、同一のホームディレクトリのロックを管理するためのロックファイル、すなわち、同一のホームディレクトリ名を含むロックファイルを検索する（ステップＳ３１）。ここで、ロックファイルとは、ロック状態の有無を識別するためにＣＯＲＥ１００側に作成されるファイルであり、ホームディレクトリがロックされると当該ホームディレクトリについてのロックファイルが作成され、ホームディレクトリがアンロックされると当該ホームディレクトリについてのロックファイルが削除される。ファイル名をロック要求元（Ｅｄｇｅの識別情報）とホームディレクトリ名称とにすることにより、ファイル検索によって、誰がどのリソースをロックしているかを知ることができる。なお、ロックファイル名は、ロック要求を行ったユーザ名を含んでいてもよい。ロックファイルは、例えば、メモリ１２１に格納されている。
【００９１】
次いで、アーカイブストレージ装置１２０は、同一のホームディレクトリ名を含むロックファイルを発見したか否かを判定する（ステップＳ３２）。この結果、同一のホームディレクトリ名を含むロックファイルを発見した場合（ステップＳ３２：Ｙｅｓ）には、そのホームディレクト名のホームディレクトリがロックされていることを意味しているので、アーカイブストレージ装置１２０は、ロック要求の結果を失敗と設定し（ステップＳ３４）、ロック要求の結果をＥｄｇｅ１０のファイルストレージ装置３０に返し（ステップＳ３５）、処理を終了する。
【００９２】
一方、同一のホームディレクトリ名を含むロックファイルを発見しなかった場合（ステップＳ３２：Ｎｏ）には、アーカイブストレージ装置１２０は、ステップＳ３１で特定したロックファイル名のロックファイルを例えば、メモリ１２１に格納し、ロック要求の結果を成功と設定し（ステップＳ３３）、ロック要求の結果をＥｄｇｅ１０のファイルストレージ装置３０に返す（ステップＳ３５）。
【００９３】
ステップＳ３５で返されたロック要求の結果を受け取ったファイルストレージ装置３０は、ステップＳ１２を終了して、次のステップに処理を進める。このロック処理によると、適切にホームディレクトリを単位としたロック制御を行うことができる。
【００９４】
なお、ロック処理は、セッション接続時ではなくて、ファイルに対する最初のアクセス時に行ってもよい。
【００９５】
図１２は、実施例１に係るアンロック処理のフローチャートである。
【００９６】
アンロック処理は、図１０に示すステップＳ１８において、ファイルストレージ装置３０によりアンロック要求が実行されることにより実行される。
【００９７】
Ｃｏｒｅ１００のアーカイブストレージ装置１２０は、アンロック要求を受け取ると、アンロック要求に含まれるＥｄｇｅ名称及びロック対象のホームディレクトリ名から、このホームディレクトリのロックを管理するためのロックファイルの名前（ロックファイル名）を特定し、このロックファイル名のロックファイルを検索する（ステップＳ４１）。
【００９８】
次いで、アーカイブストレージ装置１２０は、このロックファイル名のロックファイルを発見したか否かを判定する（ステップＳ４２）。この結果、このロックファイル名のロックファイルを発見した場合（ステップＳ４２：Ｙｅｓ）には、アーカイブストレージ装置１２０は、このロックファイルを削除し、アンロック要求の結果を成功と設定し（ステップＳ４３）、アンロック要求の結果をＥｄｇｅ１０のファイルストレージ装置３０に返し（ステップＳ４５）、処理を終了する。
【００９９】
一方、このロックファイル名のロックファイルを発見しなかった場合（ステップＳ４２：Ｎｏ）には、アーカイブストレージ装置１２０は、アンロック要求の結果を失敗と設定し（ステップＳ４４）、アンロック要求の結果をＥｄｇｅ１０のファイルストレージ装置３０に返す（ステップＳ４５）。
【０１００】
ステップＳ４５で返されたアンロック要求の結果を受け取ったファイルストレージ装置３０は、ステップＳ１８を終了して、次のステップに処理を進める。このアンロック処理によると、適切にホームディレクトリを単位としたロック制御を行うことができる。
【０１０１】
なお、アンロック処理は、セッション切断時ではなくて、レプリケーション後に所定時間以上ファイルに対するアクセス（リード又はライト）がない場合に行ってもよい。
【０１０２】
図１３は、実施例１に係る接続ユーザ管理処理のフローチャートである。
【０１０３】
接続ユーザ管理処理は、図１０に示すステップＳ１６のデータ同期処理の一部の処理に対応する。
【０１０４】
まず、ファイルストレージ装置３０は、セッション接続管理用のユーザ管理テーブル２４０におけるセッション接続したユーザのユーザ名の位置の値（エントリの順番）が接続管理用のポインタの値以上であるか否か判定する。
【０１０５】
この結果、セッション接続したユーザのユーザ名の位置の値がポインタの値以上の場合（ステップＳ５１：Ｙｅｓ）には、ファイルストレージ装置３０は、ユーザ管理テーブル２４０におけるポインタの値が示すエントリのユーザ名と、セッション接続したユーザのユーザ名が格納されているエントリのユーザ名とをｓｗａｐ（交換）し（ステップＳ５２）、ポインタの値に１を加算し（ステップＳ５３）、処理を終了する。
【０１０６】
一方、セッション接続したユーザのユーザ名の位置の値がポインタの値より小さい場合（ステップＳ５１：Ｎｏ）、ファイルストレージ装置３０は、処理を終了する。
【０１０７】
この処理により、セッション接続したユーザのユーザ名をユーザ管理テーブル２４０のポインタが示すエントリよりも前のエントリに集約して管理することができる。
【０１０８】
図１４は、実施例１に係るキャッシュ上書き処理のフローチャートである。
【０１０９】
キャッシュ上書き処理は、図１０に示すステップＳ１６のデータ同期処理の一部の処理に対応する。このキャッシュ上書き処理は、例えば、所定の時間毎に実行される。なお、キャッシュ上書き処理を、接続ユーザ管理処理の終了直後に実行するようにしてもよい。
【０１１０】
ファイルストレージ装置３０は、変数Ｎを０に設定し（ステップＳ６１）、変数ＮがＥｄｇｅ１０のファイルストレージ装置３０に接続可能なユーザ数より小さいか否かを判定する（ステップＳ６２）。この結果、変数ＮがＥｄｇｅ１０のファイルストレージ装置３０に接続可能なユーザ数より小さい場合（ステップＳ６２：Ｙｅｓ）には、ファイルストレージ装置３０は、ユーザ管理テーブル２４０の変数Ｎの位置のユーザ名に対応するユーザのホームディレクトリ情報を、アーカイブストレージ装置１２０に要求し（ステップＳ６３）、処理をステップＳ６４に進める。ここで、ホームディレクトリ情報とは、ユーザのホームディレクトリの配下にあるファイル及びディレクトリのｉｎｏｄｅを含む情報である。また、ホームディレクトリ情報の要求には、例えば、ユーザのホームディレクトリの名称が含まれる。
【０１１１】
これに対して、アーカイブストレージ装置１２０は、ホームディレクトリ情報の要求を受け取ると、要求の対象となるユーザのホームディレクトリ情報をメモリ１２１から取得し（ステップＳ７１）、当該取得したホームディレクトリ情報をファイルストレージ装置３０に転送する（ステップＳ７２）。
【０１１２】
ファイルストレージ装置３０は、アーカイブストレージ装置１２０から転送されたホームディレクトリ情報を取得し、ホームディレクトリを設定し、当該ホームディレクトリ情報に基づいて、メモリ３１にキャッシュされているデータ、例えば、ユーザのホームディレクトリのディレクトリ及びファイルのｉｎｏｄｅ等を上書きする（ステップＳ６４）。
【０１１３】
次いで、ファイルストレージ装置３０は、変数Ｎに１を加算して（ステップＳ６５）、処理をステップＳ６２に進める。
【０１１４】
一方、変数ＮがＥｄｇｅ１０のファイルストレージ装置３０に接続可能なユーザ数より小さくない場合（ステップＳ６２：Ｎｏ）には、このファイルストレージ装置３０に接続可能な全てのユーザのキャッシュされているデータを上書きしたことを意味しているので、ファイルストレージ装置３０は、ポインタを０に設定して、接続したことがあるユーザをリセットし（ステップＳ６６）、処理を終了する。
【０１１５】
ここで、図１３に示す接続ユーザ管理処理により、所定の時点以降でセッション接続したユーザのユーザ名がユーザ管理テーブル２４０の先頭から順に並んで管理されているので、図１４に示すキャッシュ上書き処理においては、セッション接続したユーザのキャッシュが優先して上書きされることとなる。すなわち、例えば、切断中のユーザが格納した大きいサイズのファイルを上書きするために、セッション接続しているユーザのデータの上書き処理が遅れることを適切に防止できる。なお、セッション接続したユーザとしては、例えば、他のＥｄｇｅ１０から移動してきたユーザが含まれる。
【０１１６】
図１５は、実施例１に係るリコール処理のフローチャートである。
【０１１７】
リコール処理は、図１０に示すステップＳ２０、又はＳ２３におけるファイルストレージ装置３０の処理に応じて実行される。
【０１１８】
ファイルストレージ装置３０は、スタブ化されているファイルの実データの取得要求（ファイル取得要求）をＣｏｒｅ１００のアーカイブストレージ装置１２０に送信する（ステップＳ８１）。ファイル取得要求には、取得対象の実データが格納されている格納先（リンク先）の情報が含まれている。このリンク先は、スタブ化されているファイルのｉｎｏｄｅ２０１のリンク先２２０ｋから取得することができる。
【０１１９】
アーカイブストレージ装置１２０は、ファイル取得要求を受信すると、ファイル取得要求の格納先に基づいて、対応する格納先から取得対象のファイルの実データを取得し（ステップＳ９１）、このファイルの実データをファイルストレージ装置３０に転送し（ステップＳ９２）、処理を終了する。
【０１２０】
ファイルストレージ装置３０は、ファイルの実データを取得すると、取得したファイルの実データの呼び出し元、すなわち、図１０のステップＳ２０、又はＳ２３の処理ステップに返し（ステップＳ８２）、リコール処理を終了する。なお、図１０のステップＳ２０、又はＳ２３では、返されたファイルの実データが、ＬＵ２４のデータブロックに格納され、ｉｎｏｄｅ管理テーブル２２０のファイルに対応するｉｎｏｄｅ２０１のデータブロックアドレス（２２０ｌ等）に実データが格納されたブロックアドレスが格納され、スタブ化フラグ２２０ｉがＯＦＦにされる。
【０１２１】
図１６は、実施例１に係るスタブ情報取得処理のフローチャートである。
【０１２２】
スタブ情報取得処理は、図１０に示すステップＳ１４において、ファイルストレージ装置３０によりスタブ情報の取得要求が実行されることにより実行される。
【０１２３】
ファイルストレージ装置３０は、スタブ情報の取得要求（スタブ情報取得要求）をＣｏｒｅ１００のアーカイブストレージ装置１２０に送信する（ステップＳ１０１）。スタブ情報取得要求には、スタブ情報を取得する対象のホームディレクトリを特定する情報（例えば、ホームディレクトリ名）が含まれている。
【０１２４】
アーカイブストレージ装置１２０は、スタブ情報取得要求を受信すると、ホームディレクトリを特定する情報に基づいて、ホームディレクトリ配下の全てのディレクトリのｉｎｏｄｅ２０２及びファイルのｉｎｏｄｅ２０１（スタブ情報）を取得し（ステップＳ１１１）、このｉｎｏｄｅ２０１及び２０２をファイルストレージ装置３０に転送し（ステップＳ１１２）、処理を終了する。ここで、ファイルストレージ装置３０に転送されるｉｎｏｄｅ２０１のレプリケーション済みフラグ２２０ｊには、レプリケーション済みであることを示すＯＮが設定され、リンク先２２０ｋには、実データが格納されているリンク先が格納されている。
【０１２５】
ファイルストレージ装置３０は、ｉｎｏｄｅ２０１及び２０２を取得すると、取得したスタブ情報取得要求の呼び出し元、すなわち、図１０のステップＳ１４の処理ステップに返し（ステップＳ１０２）、スタブ情報取得処理を終了する。これにより、ファイルストレージ装置３０は、ホームディレクトリ配下のディレクトリ及びファイルのｉｎｏｄｅ２０１及び２０２を受け取ることとなる。
【０１２６】
なお、スタブ情報取得処理は、例えば、セッション接続時だけでなく、例えば、定期的に実行するようにしてもよい。
【０１２７】
また、スタブ情報取得処理におけるステップＳ１０１を実行する前において、以下の（１）〜（４）に示すようなファイルのリネーム処理、キャッシュしたファイルの無効化処理等を実行してもよい。
（１）ファイルストレージ装置３０は、ファイルシステム３６が管理しているファイルのｉｎｏｄｅ番号、ファイルパス名、及び最終更新日時をアーカイブストレージ装置１２０に送信する。
（２）アーカイブストレージ装置１２０は、ファイルシステム１２６が管理しているファイルのｉｎｏｄｅ番号及びファイルパス名と、ファイルストレージ装置３０から送信されたｉｎｏｄｅ番号及びファイルパス名とを参照し、ｉｎｏｄｅ番号が同じで、ファイルパス名が異なる場合には、ファイルパス名を変更（リネーム）する。
（３）アーカイブストレージ装置１２０は、ファイルシステム１２６が管理しているファイルのｉｎｏｄｅ番号及び最終更新日時と、ファイルストレージ装置３０から送信されたｉｎｏｄｅ番号及び最終更新日時とを参照し、ｉｎｏｄｅ番号が同じであり且つファイルストレージ装置３０から送信された最終更新日時がアーカイブストレージ装置１２０の最終更新日時よりも古い場合、すなわち、ファイルストレージ装置３０のファイルが古いデータである場合には、そのｉｎｏｄｅ番号をファイルストレージ装置３０に送信する。
（４）ファイルストレージ装置３０は、アーカイブストレージ装置１２０から送信されたｉｎｏｄｅ番号に対応するファイルの実データを削除して、当該ファイルをスタブ化する。
【０１２８】
図１７は、実施例１に係る切断ユーザ管理処理のフローチャートである。
【０１２９】
切断ユーザ管理処理は、図１０に示すステップＳ１７において実行されるセッション切断時の処理の一部の処理である。
【０１３０】
まず、ファイルストレージ装置３０は、セッション切断管理用のユーザ管理テーブルにおけるセッション切断したユーザのユーザ名の位置の値（エントリの順番）が切断管理用のポインタの値以上であるか否か判定する。切断管理用のポインタは、例えば、メモリ３１に格納されている。
【０１３１】
この結果、セッション切断したユーザのユーザ名の位置の値がポインタの値以上である場合（ステップＳ１２１：Ｙｅｓ）には、ファイルストレージ装置３０は、ユーザ管理テーブル２４０におけるポインタの値が示すエントリのユーザ名と、セッション切断したユーザのユーザ名が格納されているエントリのユーザ名とをｓｗａｐ（交換）し（ステップＳ１２２）、ポインタの値に１を加算し（ステップＳ１２３）、処理を終了する。
【０１３２】
一方、セッション切断したユーザのユーザ名の位置の値がポインタの値より小さい場合（ステップＳ１２１：Ｎｏ）、ファイルストレージ装置３０は、処理を終了する。
【０１３３】
この処理により、セッション切断したユーザのユーザ名をセッション切断管理用のユーザ管理テーブルの切断管理用のポインタが示すエントリよりも前のエントリに集約して管理することができる。すなわち、所定期間の間にセッション切断したユーザをセッション切断した時刻が早いものから順に並べることができる。
【０１３４】
図１８は、実施例１に係るレプリケーション処理（方式Ａ）のフローチャートである。
【０１３５】
レプリケーション処理（方式Ａ）は、図１０に示すステップＳ１７において実行されるセッション切断時の処理の一部の処理であり、図１７に示す切断ユーザ管理処理と併せて実行される方式Ａに従う処理である。このレプリケーション処理（方式Ａ）は、例えば、所定の時間毎または、所定の時間帯に実行される。また、一度のレプリケーションで送信されるデータ量を制限してもよい。
【０１３６】
ファイルストレージ装置３０は、変数Ｎを０に設定し（ステップＳ１３１）、変数ＮがＥｄｇｅ１０のファイルストレージ装置３０に接続可能なユーザ数より小さいか否かを判定する（ステップＳ１３２）。この結果、変数ＮがＥｄｇｅ１０のファイルストレージ装置３０に接続可能なユーザ数より小さい場合（ステップＳ１３２：Ｙｅｓ）には、ファイルストレージ装置３０は、ユーザ管理テーブル２４０の変数Ｎの位置のユーザ名に対応するユーザのホームディレクトリの配下に属するファイルのレプリケーションを実行する（ステップＳ１３３）。具体的には、ファイルストレージ装置３０は、ユーザのホームディレクトリの配下のファイルの中のレプリケーションが必要なファイルに対応するｉｎｏｄｅ（レプリケーション済みフラグ２２０ｊのレプリケーション済みフラグがＯＦＦのｉｎｏｄｅ）２０１及び実データをアーカイブストレージ装置１２０に送信する。
【０１３７】
これに対して、アーカイブストレージ装置１２０は、ファイルストレージ装置３０から送信されるファイルのｉｎｏｄｅを取得するとともに、ファイルの実データを取得する（ステップＳ１４１）。次いで、アーカイブストレージ装置１２０は、取得したｉｎｏｄｅ及びファイルの実データをファイルシステム１２６のｉｎｏｄｅ管理テーブル２２０に格納するとともに、ファイル実体をＬＵ１１４に格納し、取得したｉｎｏｄｅのリンク先２２０ｋに、ファイル実体を格納した格納位置を示すＵＲＬを格納し（ステップＳ１４２）、データの格納を終了した旨の通知をファイルストレージ装置３０に送信し、処理を終了する。ここで、ｉｎｏｄｅ２０１のリンク先２２０ｋには、格納位置を示すＵＲＬが格納されるので、以降において、いずれかのファイルストレージ装置３０がこのｉｎｏｄｅ２０１を取得することにより、リンク先２２０ｋを用いて、当該ファイルの実データを適切にリコールすることができる。
【０１３８】
ファイルストレージ装置３０は、アーカイブストレージ装置１２０からデータの格納を終了した旨の通知を受け取ると、ファイルストレージ装置３０は、レプリケーションを行ったファイルに対応するｉｎｏｄｅ２０１のレプリケーション済みフラグ２２０ｊにレプリケーション済みを示すＯＮを設定し、リンク先２２０ｋにアーカイブストレージ装置１２０がファイルの実データを格納する格納位置を示すＵＲＬを格納し、変数Ｎに１を加算して（ステップＳ１３４）、処理をステップＳ１３２に進める。なお、アーカイブストレージ装置１２０がファイルの実データを格納する格納位置を示すＵＲＬについては、ステップＳ１３３の前に、アーカイブストレージ装置１２０から取得するようにしてもよいし、アーカイブストレージ装置１２０からデータの格納を終了した旨の通知として受け取るようにしてもよい。
【０１３９】
一方、変数ＮがＥｄｇｅのファイルストレージ装置３０に接続可能なユーザ数より小さくない場合（ステップＳ１３２：Ｎｏ）には、このファイルストレージ装置３０に接続可能な全てのユーザのホームディレクトリの配下のレプリケーションをしていない全てのファイルについてレプリケーションを実行したことを意味しているので、ファイルストレージ装置３０は、ポインタを０に設定して、全てのユーザを切断したユーザから外し（ステップＳ１３５）、処理を終了する。
【０１４０】
ここで、図１７に示す接続ユーザ管理処理により、セッション切断したユーザのユーザＩＤがユーザ管理テーブル２４０の先頭から順に並んで管理されているので、図１８示す処理においては、セッション切断しているユーザのファイルが優先してレプリケーションされることとなる。すなわち、自身のファイルがレプリケーションされていないユーザのうち、セッション切断をしているユーザのファイルが、セッション切断をしていいないユーザ（セッション接続中のユーザ、またはセッションの接続も切断も行っていないユーザ）のファイルより先に（優先的に）レプリケーションされる。さらに、図１７及び図１８に示す処理によって、セッション切断した時刻が早いユーザのファイルから順にレプリケーションされることとなる。ここで、セッション切断しているユーザのうちセッション切断した時刻が早いユーザほど他のＥｄｇｅ１０に移動する可能性が高いユーザであると考えられる。よって、以降において、このユーザが他のｅｄｇｅ１０でセッション接続する場合において、このユーザのホームディレクトリのファイルが適切にＣｏｒｅ１００に存在するようにすることができる。また、上記処理によると、例えば、接続中のユーザが格納した大きいサイズのファイルをレプリケーションするために、セッション切断したユーザのデータが一定時間以内にレプリケーションされないということを適切に防止できる。また、図１７に示す接続ユーザ管理処理によらず、任意の順番、例えば任意に定められたユーザ毎の優先順位の順に、各ユーザのデータをレプリケーションをしてもよい。
【０１４１】
図１９は、実施例１に係るレプリケーション処理（方式Ｂ）のフローチャートである。
【０１４２】
レプリケーション処理（方式Ｂ）は、図１０に示すステップＳ１７において実行されるセッション切断時の処理の一部の処理の他の例であり、図１７に示す切断ユーザ管理処理と図１８に示すレプリケーション処理（方式Ａ）とを併せた処理に代えて実行するようにしてもよい処理である。このレプリケーション処理（方式Ｂ）は、例えば、セッション切断時に実行される。
【０１４３】
ファイルストレージ装置３０は、セッション切断を行ったユーザのホームディレクトリの配下に属するファイルのレプリケーションを実行する（ステップＳ１５１）。具体的には、ファイルストレージ装置３０は、ユーザのホームディレクトリの配下のファイルの中のレプリケーションが必要なファイルに対応するｉｎｏｄｅ（レプリケーション済みフラグ２２０ｊのアプリケーション済みフラグがＯＦＦのｉｎｏｄｅ）２０１と、そのファイルの実データとをアーカイブストレージ装置１２０に送信する。
【０１４４】
これに対して、アーカイブストレージ装置１２０は、ファイルストレージ装置３０から送信されるファイルのｉｎｏｄｅを取得するとともに、ファイルの実データを取得する（ステップＳ１６１）。次いで、アーカイブストレージ装置１２０は、取得したｉｎｏｄｅ及びファイルの実データをファイルシステム１２６のｉｎｏｄｅ管理テーブル２２０に格納するとともに、ファイル実体をＬＵ１１４に格納し（ステップＳ１６２）、データの格納を終了した旨の通知をファイルストレージ装置３０に送信し、処理を終了する。ここで、ｉｎｏｄｅ２０１のリンク先２２０ｋには、格納位置を示すＵＲＬが格納されるので、以降において、いずれかのファイルストレージ装置３０がこのｉｎｏｄｅ２０１を取得することにより、リンク先２２０ｋを用いて、当該ファイルの実データを適切にリコールすることができる。
【０１４５】
ファイルストレージ装置３０は、アーカイブストレージ装置１２０からデータの格納を終了した旨の通知を受け取ると、レプリケーションを行ったファイルに対応するｉｎｏｄｅ２０１のレプリケーション済みフラグ２２０ｊにレプリケーション済みを示すＯＮを設定し、リンク先２２０ｋにアーカイブストレージ装置１２０がファイルの実データを格納する格納位置を示すＵＲＬを格納し、ステップＳ１５１を終了し、レプリケーション処理（方式Ｂ）を終了する。なお、アーカイブストレージ装置１２０がファイルの実データを格納する格納位置を示すＵＲＬについては、ステップＳ１５１の前に、アーカイブストレージ装置１２０から取得するようにしてもよいし、アーカイブストレージ装置１２０からデータの格納を終了した旨の通知として受け取るようにしてもよい。
【０１４６】
このレプリケーション処理（方式Ｂ）によると、セッション切断したユーザ、すなわち、他のＥｄｇｅ１０に移動して、ファイルにアクセスする可能性のあるユーザのホームディレクトリの配下のファイルを適切にＣｏｒｅ１００側に格納させることができる。
【０１４７】
図２０は、実施例１に係るレプリケーション処理（配下以外）のフローチャートである。
【０１４８】
このレプリケーション処理（配下以外）は、ユーザのホームディレクトリ配下のファイル以外のファイルについてのレプリケーションを行う処理である。このレプリケーション処理（配下以外）は、例えば、所定時間毎、又は、ユーザから要求があった場合に実行される。
【０１４９】
ファイルストレージ装置３０は、各ユーザのホームディレクトリ以外のディレクトリの中からレプリケーションが必要なファイルを検索する（ステップＳ１７１）。次いで、ファイルストレージ装置３０は、検索によって得られたファイルのレプリケーションを実行する（ステップＳ１７２）。具体的には、ファイルストレージ装置３０は、ユーザのホームディレクトリ以外のディレクトリのファイルの中のレプリケーションが必要なファイルに対応するｉｎｏｄｅ（レプリケーション済みフラグ２２０ｊのレプリケーション済みフラグがＯＦＦのｉｎｏｄｅ）をアーカイブストレージ装置１２０に送信するとともに、ファイルの実データを送信する。
【０１５０】
これに対して、アーカイブストレージ装置１２０は、ファイルストレージ装置３０から送信されるファイルのｉｎｏｄｅを取得するとともに、ファイルの実データを取得する。次いで、アーカイブストレージ装置１２０は、取得したｉｎｏｄｅ及びファイルの実データをファイルシステム１２６のｉｎｏｄｅ管理テーブル２２０に格納するとともに、ファイル実体をＬＵ１１４に格納し、データの格納を終了した旨の通知をファイルストレージ装置３０に送信し、処理を終了する。
【０１５１】
ファイルストレージ装置３０は、アーカイブストレージ装置１２０からデータの格納を終了した旨の通知を受け取ると、レプリケーションを行ったファイルに対応するｉｎｏｄｅのレプリケーション済みフラグ２２０ｊをレプリケーション済であることを示す「Ｙｅｓ」に変更しレプリケーションを行ったファイルに対応するｉｎｏｄｅ２０１のレプリケーション済みフラグ２２０ｊにレプリケーション済みを示すＯＮを設定し、リンク先２２０ｋにアーカイブストレージ装置１２０がファイルの実データを格納する格納位置を示すＵＲＬを格納し（ステップＳ１７３）、処理を終了する。
【０１５２】
図２１は、実施例１に係るスタブ化処理のフローチャートである。
【０１５３】
スタブ化処理は、図１０に示すステップＳ１７において実行されるセッション切断時の処理の一部の処理である。なお、スタブ化処理は、所定の時間毎に実行するようにしてもよい。
【０１５４】
ファイルストレージ装置３０は、ファイルシステム３６の容量が所定の閾値より大きいか否かを判定する（ステップＳ１８１）。この結果、ファイルシステム３６の容量が所定の閾値より大きい場合（ステップＳ１８１：Ｙｅｓ）には、ＬＵ２４の空き容量が少ないことを意味しているので、ファイルストレージ装置３０は、レプリケーション済みフラグ２２０ｊのレプリケーション済みフラグがレプリケーション済みを示し、且つ最終アクセス日時２２０ｅの最終アクセス日時が古いｉｎｏｄｅ２０１に対応するファイルから順にスタブ化を実行する（ステップＳ１８２）。具体的には、ファイルストレージ装置３０は、対象のファイルの実データをデータブロックから削除するとともに、ｉｎｏｄｅ２０１のスタブ化フラグ２２０ｉにスタブ化したことを示すＯＮを設定する。これにより、ＬＵ２４の空き容量を増加させることができる。
【０１５５】
次に、実施例２に係る情報システムを説明する。
【０１５６】
まず、課題について説明する。
【０１５７】
図２２は、課題を説明する図である。
【０１５８】
ここで、例えば、拠点Ｘ（Ｅｄｇｅ１０Ｘ）で大規模な会議が開催され、他の拠点から多数のユーザが拠点Ｘに集合し、拠点Ｘにおいて多数のユーザがファイルにアクセスする場合を想定する。
【０１５９】
この場合においては、拠点Ｘのファイルストレージ装置３０に対して、ユーザがクライアント／ホスト４０を用いて接続し、ファイルに対するアクセスを行うと、ファイルストレージ装置３０には、ｉｎｏｄｅ２０１（スタブ情報）しか格納されていない場合が多いので、ファイルストレージ装置３０は、アーカイブストレージ装置１２０に対して、ファイルの実データを取得するためのリコール要求を実行することとなる。ここで、多数のユーザがファイルに対するアクセスを行うと、多数のリコール要求がアーカイブストレージ装置１２０に送信されるとともに、そのリコール要求に対する応答であるファイルの実データの送信が行われることとなり、ネットワークに対する負荷や、アーカイブストレージ装置１２０に対する負荷が大きくなってしまう。
【０１６０】
実施例２に係る情報システムでは、図２２に示す課題を、以下に示す実現方法１乃至実現方法３によって解決している。
【０１６１】
まず、実現方法１の概要について説明する。実現方法１は、ユーザによって設定された移動先の拠点に対して予めファイルを格納しておく方法である。
【０１６２】
実施例２の実現方法１に係る情報システムは、図２及び図３に示す実施例１の情報システムと同様な構成に対して、新たな構成及び新たな処理が追加されている。以下、実施例１と異なる点について説明する。
【０１６３】
実現方法１に係る情報システムでは、アーカイブストレージ装置１２０が設定ファイル１３１を新たに格納している。
【０１６４】
図２３は、実施例２に係る設定ファイルの構成図である。
【０１６５】
設定ファイル１３１は、ユーザが移動する移動先の拠点に関する情報を格納する。設定ファイル１３１は、例えば、ユーザがクライアント／ホスト４０を利用することにより、予め設定される。設定ファイル１３１は、移動先の拠点（Ｅｄｇｅ）を示す移動先拠点情報１３１ａと、移動先の拠点で利用する時間を特定する時間情報１３１ｂとを含む。移動先拠点情報１３１ａは、例えば、移動先拠点のファイルストレージ装置３０のＩＰアドレスである。時間情報１３１ｂは、例えば、ユーザがいる移動元の拠点から移動先の拠点への移動時間である。なお、複数の移動先についての移動先拠点情報１３１ａ及び時間情報１３１ｂを設定していてもよい。
【０１６６】
図２４は、実施例２に係る実現方法１の概要を示す図である。
【０１６７】
ユーザが移動元拠点（ここでは、例えば、拠点Ａ）で作業をし、セッション切断を行うと、ファイルストレージ装置３０からアーカイブストレージ装置１２０にファイルのレプリケーションが実行され、セッション切断要求がアーカイブストレージ装置１２０に送信される（図２４の（１））。
【０１６８】
アーカイブストレージ装置１２０は、セッション切断要求を行ったユーザのホームディレクトリ内の設定ファイル１３１を参照して、移動先拠点情報を取得する（図２４の（２−Ａ））。図２４の例では、移動先が拠点Ｃであるとする。
【０１６９】
次いで、アーカイブストレージ装置１２０は、セッション切断要求を行ったユーザのホームディレクトリ内のファイル（実データを含む）を移動先の拠点Ｃのファイルストレージ装置３０に送信する（図２４の（２−Ｂ））。
【０１７０】
その後、ユーザが移動元の拠点Ａから移動先の拠点Ｃに移動し（図２４（３））、拠点Ｃのファイルストレージ装置３０に対してユーザがセッション接続し、ファイルの参照を行うと、拠点Ｃに対してファイルの実データがリコール済みであるので、そのファイルを迅速にユーザが参照することができる（図２４の（４））。
【０１７１】
次に、実現方法２の概要について説明する。実現方法２は、ユーザの移動履歴に基づいて、移動先の拠点を特定し、その拠点に予めファイルを格納しておく方法である。
【０１７２】
実現方法２に係る情報システムでは、アーカイブストレージ装置１２０が拠点リスト１３２を新たに格納している。拠点リスト１３２は、ユーザの各拠点に対する移動の履歴を管理する。
【０１７３】
図２５は、実施例２に係る拠点リストの構成図である。
【０１７４】
拠点リスト１３２は、ユーザ名１３２ａと、移動先拠点１３２ｂと、ユーザＩＰ１３２ｃと、移動回数１３２ｄと、平均移動時間１３２ｅと、データ転送速度１３２ｆとのフィールドを含むエントリを有している。
【０１７５】
ユーザ名１３２ａには、ユーザ名が格納される。移動先拠点１３２ｂには、移動先の拠点を特定する情報（例えば、その拠点のファイルストレージ装置３０のＩＰアドレス）が格納される。ユーザＩＰ１３２ｃには、ユーザが所属している拠点のファイルストレージ装置３０のＩＰアドレス（ユーザＩＰ）が格納される。本実施例では、例えば、ユーザは、複数の拠点のいずれか１つに所属しているものとしている。移動回数１３２ｄには、ユーザＩＰ１３２ｃのユーザＩＰが示す移動元の拠点から、移動先拠点１３２ｂの情報が示す移動先の拠点への移動回数が格納される。平均移動時間１３２ｅには、ユーザＩＰ１３２ｃのユーザＩＰが示す移動元の拠点から、移動先拠点１３２ｂの情報が示す移動先の拠点への移動時間の平均（平均移動時間）が格納される。データ転送速度１３２ｆには、移動先拠点１３２ｂのＩＰアドレスが示す拠点に対してデータを転送する際の速度（データ転送速度）が格納される。
【０１７６】
図２６は、実施例２に係る実現方法２の概要を示す図である。
【０１７７】
ユーザが移動元拠点（ここでは、例えば、拠点Ａ）で作業をし、セッション切断を行うと、ファイルストレージ装置３０からアーカイブストレージ装置１２０にファイルのレプリケーションが実行され、セッション切断要求がアーカイブストレージ装置１２０に送信される（図２６の（１））。
【０１７８】
アーカイブストレージ装置１２０は、拠点リスト１３２を参照して、セッション切断要求を行ったユーザの移動回数１３２ｄの移動回数が最大のエントリの移動先拠点１３２ｂのＩＰアドレスが示す拠点（ここでは、拠点Ｃであるとする。）を選択する（図２６の（２−Ａ））。
【０１７９】
次いで、アーカイブストレージ装置１２０は、選択した１以上のファイルの転送データ量が以下の式１を満たすように、セッション切断要求を行ったユーザのホームディレクトリ内のファイル（実データを含む）の中の最終アクセス日時が新しいファイルから順に１以上のファイルを選択する（図２６（２−Ｂ））。
（式１）転送データ量  ＜  拠点リスト１３２のデータ転送速度１３２ｆのデータ転送速度×拠点リスト１３２の平均移動時間１３２ｅの平均移動時間
【０１８０】
次いで、アーカイブストレージ装置１２０は、選択した１以上のファイルを、選択した拠点（ここでは、拠点Ｃ）のファイルストレージ装置３０に送信する（図２６の（２−Ｃ））。
【０１８１】
その後、ユーザが移動元の拠点Ａから移動先の拠点Ｃに移動した場合（図２６（３））には、拠点Ｃのファイルストレージ装置３０に対してユーザがセッション接続し、ファイルの参照を行うと、拠点Ｃに対して１以上のファイルの実データがリコール済みであるので、そのファイルを迅速にユーザが参照することができる（図２６の（４））。
【０１８２】
実現方法２によると、ユーザが移動する可能性が高い拠点に対して、予めファイルが移動されることとなるので、移動先の拠点において、ファイルを迅速に参照できる可能性が高い。また、実現方法２によると、ユーザが設定ファイル１３１等の設定を予め行わなくてもよい。
【０１８３】
次に、実現方法３の概要について説明する。
【０１８４】
実現方法２では、ユーザの移動履歴に基づいて、移動先の拠点を特定し、その拠点に予めファイルを格納するようにしていた。しかしながら、ユーザの拠点への移動回数の分布は、特定の拠点への移動に集中している場合や、各拠点への移動が略均一である場合等のいろいろな場合が考えられる。このため、特定の移動先の拠点にファイルを格納するだけでは、好ましくない場合が発生する虞がある。
【０１８５】
そこで、実現方法３においては、各ユーザの移動の履歴に基づいて、ユーザの拠点の移動に関する傾向を分析し、その移動の傾向に基づいて、ファイルストレージ装置３０へのファイルの転送を制御するようにしている。
【０１８６】
各ユーザの拠点への移動の傾向を判定するために、各拠点を、その拠点へのユーザの移動回数に基づいて、グループ分けを行う。
【０１８７】
図２７は、実施例２に係る拠点のグループ分けを説明する図である。
【０１８８】
本実施例では、例えば、各拠点を２つのグループ（グループＡ、グループＢ）に分ける。グループに分ける方法としては、例えば、図２７に示すように、移動回数が上位の所定数（例えば、３つ）の拠点をグループＡとし、それ以外の拠点をグループＢとする。なお、グループ分けは、これに限られず、例えば、最も多い移動回数の５０％以上の移動回数がある１以上の拠点をグループＡとし、それ以外の拠点をグループＢとしてもよい。
【０１８９】
そして、実施方法３においては、グループＡに属する拠点への総移動回数（グループＡ総移動回数）と、グループＢに属する拠点への総移動回数（グループＢ総移動回数）とを比較し、その比較結果によって、ファイルストレージ装置３０へのファイルの転送方式を異ならせている。
【０１９０】
例えば、グループＡ総移動回数がグループＢ総移動回数以上である場合には、グループＡの拠点への移動の傾向が高いと考えられるので、グループＡの拠点のファイルストレージ装置３０にファイルを転送する転送方式（転送方式Ａ）とし、グループＡ総移動回数がグループＢ総移動回数未満である場合には、各拠点への移動の傾向が比較的均一であると考えられるので、各拠点のファイルストレージ装置３０にファイルを転送する転送方式（転送方式Ｂ）とする。
【０１９１】
実現方法３においては、各ユーザの移動傾向に応じた転送方式を管理するために、ユーザリスト１３３をアーカイブストレージ装置１２０に格納するようにしている。
【０１９２】
図２８は、実施例２に係るユーザリストの構成図である。                    
【０１９３】
ユーザリスト１３３は、ユーザ名１３３ａと、ユーザＩＰ１３３ｂと、セッション切断時刻１３３ｃと、転送方式１３３ｄと、帯域速度１３３ｅとのフィールドを含むレコード（エントリ）を格納する。
【０１９４】
ユーザ名１３３ａには、ファイルストレージ装置３０に接続するユーザのユーザ名が格納される。ユーザＩＰ１３３ｂには、ユーザが所属している拠点のファイルストレージ装置３０のＩＰアドレス（ユーザＩＰ）が格納される。セッション切断時刻１３３ｃには、セッションを切断した時刻（セッション切断時刻）が格納される。このセッション切断時刻を用いると、他の拠点への移動時間を計算することができる。転送方式１３３ｄには、このエントリのユーザの拠点への移動傾向に対応するファイルの転送方式が格納される。本実施例では、転送方式１３３ｄには、転送方式Ａ又は転送方式Ｂのいずれかが格納される。帯域速度１３３ｅには、アーカイブストレージ装置１２０からのデータ転送に対して、このエントリに対応するユーザに対して許容された帯域速度が格納される。
【０１９５】
図２９は、実施例２に係る実現方法３の転送方式Ａの概要を示す図である。この転送方式Ａは、ユーザがグループＡの拠点に移動する傾向が高い場合に実行される。
【０１９６】
ユーザが移動元拠点（ここでは、例えば、拠点Ａ）で作業をし、セッション切断を行うと、ファイルストレージ装置３０からアーカイブストレージ装置１２０にファイルのレプリケーションが実行され、セッション切断要求がアーカイブストレージ装置１２０に送信される（図２９の（１））。
【０１９７】
アーカイブストレージ装置１２０は、ユーザリスト１３３を参照して、セッション切断要求を行ったユーザの転送方式１３３ｄを参照し、転送方式（ここでは、転送方式Ａであるとする。）を特定する（図２９の（２−Ａ））。
【０１９８】
次いで、アーカイブストレージ装置１２０は、セッション切断要求を行ったユーザのホームディレクトリ内の１以上のファイル（実データを含む）を最終アクセス日時が新しいファイルを優先して選択し、選択したファイルをグループＡに属する各拠点（ここでは、拠点Ｂ及び拠点Ｃ）のファイルストレージ装置３０に送信する（図２９の（２−Ｂ））。
【０１９９】
その後、ユーザが移動元の拠点ＡからグループＡに属する拠点Ｃに移動した場合（図２９の（３））には、拠点Ｃのファイルストレージ装置３０に対してユーザがセッション接続し、ファイルの参照を行うと、拠点Ｃに対して１以上のファイルの実データがリコール済みであるので、そのファイルを迅速にユーザが参照することができる（図２９の（４））。
【０２００】
これにより、ユーザがグループＡの拠点に移動する傾向が高い場合には、グループＡの拠点に対して、ファイルが格納されることとなるので、移動先の拠点において、ファイルを迅速に参照できる可能性が高い。
【０２０１】
図３０は、実施例２に係る実現方法３の転送方式Ｂの概要を示す図である。この転送方式Ｂは、ユーザが各拠点に比較的均一して移動する傾向が高い場合に実行される。
【０２０２】
ユーザが移動元拠点（ここでは、例えば、拠点Ａ）で作業をし、セッション切断を行うと、ファイルストレージ装置３０からアーカイブストレージ装置１２０にファイルのレプリケーションが実行され、セッション切断要求がアーカイブストレージ装置１２０に送信される（図３０の（１））。
【０２０３】
アーカイブストレージ装置１２０は、ユーザリスト１３３を参照して、セッション切断要求を行ったユーザの転送方式１３３ｄを参照し、転送方式（ここでは、転送方式Ｂであるとする。）を特定する（図３０の（２−Ａ））。
【０２０４】
次いで、アーカイブストレージ装置１２０は、セッション切断要求を行ったユーザのホームディレクトリ内の１以上のファイル（実データを含む）を最終アクセス日時が新しいファイルを優先して選択し、選択したファイルを全ての拠点のファイルストレージ装置３０に送信する（図３０の（２−Ｂ））。なお、全ての拠点にファイルを送信するので、転送方式Ａのデータ量よりは少ないデータ量分のファイルが選択される。
【０２０５】
その後、ユーザが移動元の拠点Ａから移動先の拠点Ｃに移動した場合（図３０（３））には、拠点Ｃのファイルストレージ装置３０に対してユーザがセッション接続し、ファイルの参照を行うと、拠点Ｃに対して１以上のファイルの実データがリコール済みであるので、そのファイルを迅速にユーザが参照することができる（図３０の（４））。なお、いずれの拠点にユーザが移動しても同様に、ファイルを迅速に参照できる可能性が高い。
【０２０６】
これにより、ユーザが各拠点に比較的均一に移動する傾向がある場合には、各拠点に対して、ファイルが格納されることとなるので、移動先の拠点において、ファイルを迅速に参照できる可能性が高い。
【０２０７】
次に、実施例２で行われる処理を説明する。
【０２０８】
図３１は、実施例２に係るＥｄｇｅ側のセッション切断処理のフローチャートである。
【０２０９】
Ｅｄｇｅ側のセッション切断処理は、ファイルストレージ装置３０がクライアント／ホスト４０からセッション切断要求を受け取った場合に実行される。
【０２１０】
ファイルストレージ装置３０は、クライアント／ホスト４０とファイルストレージ装置３０との間のセッション切断処理を実行する（ステップＳ１９１）。次いで、ファイルストレージ装置３０は、セッション切断を要求したユーザのホームディレクトリのレプリケーションとスタブ化を実行する（ステップＳ１９２）。この処理は、実施例１に係る図１０のステップＳ１７と同様な処理である。
【０２１１】
次いで、ファイルストレージ装置３０は、セッション切断したＥｄｇｅ１０が切断要求したユーザが所属するＥｄｇｅ１０であるか否かを判定する（ステップＳ１９３）。
【０２１２】
この結果、セッション切断したＥｄｇｅ１０が、ユーザが所属するＥｄｇｅ１０である場合（ステップＳ１９３：Ｙｅｓ）には、ファイルストレージ装置３０は、Ｃｏｒｅ１００のアーカイブストレージ装置１２０にセッション切断時処理の要求を行い（ステップＳ１９４）、セッション切断処理を終了する。一方、セッション切断したＥｄｇｅ１０が自分のＥｄｇｅ１０でない場合（ステップＳ１９３：Ｎｏ）には、ファイルストレージ装置３０は、セッション切断処理を終了する。
【０２１３】
図３２は、実施例２に係るＣｏｒｅ側のセッション切断時の処理のフローチャートである。なお、図３２のフローチャートは、便宜的に、実現方式１乃至実現方式３における処理をまとめて記載しているが、実際には、アーカイブストレージ装置１２０が採用しているいずれかの実現方式に対応する部分の処理が実行される。
【０２１４】
Ｃｏｒｅ側のセッション切断時処理は、アーカイブストレージ装置１２０がファイルストレージ装置３０から図３１のステップＳ１９４のセッション切断時処理の要求を受け取った場合に実行される。
【０２１５】
アーカイブストレージ装置１２０が実現方式１を採用している場合には、アーカイブストレージ装置１２０は、セッション切断時処理要求を受け取ると、設定ファイル１３１から移動先拠点のＩＰアドレスと、移動時間を取得し（ステップＳ２０１）、取得した移動時間を変数「移動時間合計」に設定し（ステップＳ２０９）、処理をステップＳ２１０に進める。
【０２１６】
また、アーカイブストレージ装置１２０が実現方式２を採用している場合には、アーカイブストレージ装置１２０は、セッション切断時処理要求を受け取ると、拠点リスト１３２から切断するユーザ名に対応するレコードの中の移動回数１３２ｄの移動回数が最大であるレコードを取得し（ステップＳ２０２）、当該レコードの平均移動時間１３２ｅの移動平均時間を変数「移動時間合計」に設定し（ステップＳ２０９）、処理をステップＳ２１０に進める。
【０２１７】
また、アーカイブストレージ装置１２０が実現方式３を採用している場合には、アーカイブストレージ装置１２０は、セッション切断時処理要求を受け取ると、ユーザリスト１３３から、切断要求したユーザのユーザＩＰが設定されているレコードを選択する（ステップＳ２０３）。次いで、アーカイブストレージ装置１２０は、選択したレコードのセッション切断時刻１３３ｃに、セッション切断時処理要求に含まれているセッション切断時刻を記録する（ステップＳ２０４）。次いで、アーカイブストレージ装置１２０は、選択したレコードの転送方式１３３ｄを参照して転送方式を特定し（ステップＳ２０５）、転送方式が転送方式Ａであるか、又は転送方式Ｂであるかを判定する（ステップＳ２０６）。
【０２１８】
この結果、転送方式が転送方式Ａである場合（ステップＳ２０６：転送方式Ａ）には、拠点リスト１３２からユーザに対応するグレープＡに属する拠点のレコードを取得し（ステップＳ２０７）、取得した全てのレコードの平均移動時間１３２ｅの平均移動時間の和を変数「移動時間合計」に設定し（ステップＳ２０９）、処理をステップＳ２１０に進める。
【０２１９】
一方、転送方式が転送方式Ｂである場合（ステップＳ２０６：転送方式Ｂ）には、拠点リスト１３２から切断要求したユーザに対応する全てのレコードを取得し（ステップＳ２０８）、取得した全てのレコードの平均移動時間１３２ｅの平均移動時間の和を変数「移動時間合計」に設定し（ステップＳ２０９）、処理をステップＳ２１０に進める。
【０２２０】
ステップＳ２１０では、アーカイブストレージ装置１２０は、変数「転送データ量＿ＴＭＰ」に０を設定する。次いで、アーカイブストレージ装置１２０は、（式２）変数「転送データ量＿ＴＭＰ」＜帯域速度×変数「移動時間合計」を満たすか否かを判定する（ステップＳ２１１）。ここで、帯域速度は、実現方式３では、ユーザリスト１３３の切断要求したユーザのレコードの帯域速度１３３ｅの値であり、実現方式２又は実現方式１では、予め設定されている帯域速度である。
【０２２１】
この結果、（式２）を満たしている場合（ステップＳ２１１：満たす）には、アーカイブストレージ装置１２０は、変数「転送データ量」に変数「転送データ量＿ＴＭＰ」の値を設定する（ステップＳ２１２）。次いで、アーカイブストレージ装置１２０は、切断要求したユーザのホームディレクトリに属するファイルの中で、最終アクセス日時２２０ｅの最終アクセス日時が、転送データ量に反映させたファイルの次に新しいファイルを取得する（ステップＳ２１３）。なお、転送データ量に反映させたファイルが存在しない場合には、切断要求したユーザのホームディレクトリに属するファイルの中で、最終アクセス日時２２０ｅの最終アクセス日時が最も新しいファイルを取得する。
【０２２２】
次いで、アーカイブストレージ装置１２０は、変数「転送データ量」に、ステップＳ２１３で取得したファイルのサイズを反映させた（加算した）値を変数「転送データ量＿ＴＭＰ」に設定し（ステップＳ２１４）、処理をステップＳ２１１に進める。
【０２２３】
ステップＳ２１１で、（式２）を満たしていない場合（ステップＳ２１１：満たさない）には、転送データ量＿ＴＭＰに反映させたファイルについて、移動時間合計が示す時間内にデータ転送できないことを意味しているので、アーカイブストレージ装置１２０は、現在の変数「転送データ量」に反映させたファイル（前回のステップＳ２１１の判定において（式２）を満たすと判定された際に反映させていたファイル）を送信対象のファイルとして選択する（ステップＳ２１５）。
【０２２４】
次いで、アーカイブストレージ装置１２０は、データ転送速度を決定する（ステップＳ２１６）。例えば、データ転送速度は、変数「転送データ量」の値を、拠点リスト１３２の移動先の拠点に対応するレコードの平均移動時間１３２ｅの平均移動時間で除算して得られる。
【０２２５】
次いで、アーカイブストレージ装置１２０は、決定したデータ転送速度と、実際の転送速度とを比較して、送信対象のファイルを送信対象のファイルストレージ装置３０に転送するデータ量を制御する（ステップＳ２１７）。なお、アーカイブストレージ装置１２０の動作を起因として、アーカイブストレージ装置１２０からファイルストレージ装置３０へデータを転送できない場合には、以下に示すようなファイルストレージ装置３０によるポーリングを利用して、ファイルストレージ装置３０へデータを転送してもよい。
【０２２６】
次に、ファイルストレージ装置３０がポーリングによりファイルのデータをアーカイブストレージ装置１２０から取得する例を説明する。
【０２２７】
図３３は、実施例２に係るポーリングによるデータ取得処理の概要を示す図である。
【０２２８】
ユーザが移動元拠点（ここでは、例えば、拠点Ａ）で作業をし、セッション切断を行うと、ファイルストレージ装置３０からアーカイブストレージ装置１２０にファイルのレプリケーションが実行され、セッション切断要求がアーカイブストレージ装置１２０に送信される（図３３の（１））。
【０２２９】
アーカイブストレージ装置１２０は、ファイルの転送先の拠点と、転送するファイルを決定する（図３３の（２））。ここで、ファイルの転送先としては、例えば、拠点Ｂ、拠点Ｃ、及び拠点Ｄに決定したとする。
【０２３０】
次いで、アーカイブストレージ装置１２０は、決定した転送するファイルを、送信データキュー１４０のファイルの転送先の拠点用のキューにセットする（図３３の（３））。この例では、拠点Ｂ、拠点Ｃ、及び拠点Ｄ用のキューに、転送するファイルのデータがセットされる。
【０２３１】
その後、各拠点のファイルストレージ装置３０がポーリングを行って、アーカイブストレージ装置１２０の中の自身用のキューにセットされたファイルのデータを取得し（図３３の（４））、ＬＵ２４に取得したデータを格納する。
【０２３２】
このデータ取得処理により、アーカイブストレージ装置１２０の動作を起因としてデータを転送できないファイルストレージ装置３０に対して、ファイルのデータを適切に送信することができる。
【０２３３】
図３４は、実施例２に係るポーリングによるデータ取得処理のフローチャートである。
【０２３４】
Ｅｄｇｅ１０のファイルストレージ装置３０は、ポーリングを行うタイミングになった際に、自拠点用のキューにデータがあるか否かの確認要求をアーカイブストレージ装置１２０に送信する（ステップＳ２２１）。
【０２３５】
アーカイブストレージ装置１２０は、キューにデータがあるか否かの確認要求を受け取ると、この確認要求に対応するキュー、すなわち、このファイルストレージ装置３０の拠点用（自分用）のキューにデータがあるか否かをチェックし（ステップＳ２３１）、チェック結果をファイルストレージ装置３０に転送する（ステップＳ２３２）。
【０２３６】
ファイルストレージ装置３０は、チェック結果を受け取ると、チェック結果に基づいて、自分用のキューにデータがあるか否かを判定する（ステップＳ２２２）。この結果、自分用のキューにデータがある場合（ステップＳ２２２：Ｙｅｓ）には、ファイルストレージ装置３０は、キューにあるファイルのデータをリコールする（ステップＳ２２３）。
【０２３７】
すなわち、ファイルストレージ装置３０は、ファイルの転送要求をアーカイブストレージ装置１２０に送信する。アーカイブストレージ装置１２０は、ファイルの転送要求を受信すると、転送要求に対応するファイルのデータをキューから取得し（ステップＳ２３３）、ファイルのデータをファイルストレージ装置３０に転送する（ステップＳ２３４）。ファイルストレージ装置３０は、ファイルのデータを取得すると、このデータをＬＵ２４に格納し、データ取得処理を終了する。
【０２３８】
一方、自分用のキューにデータがない場合（ステップＳ２２２：Ｎｏ）には、ファイルストレージ装置３０は、データ取得処理を終了する。
【０２３９】
図３５は、実施例２に係るＥｄｇｅ側のセッション接続処理のフローチャートである。
【０２４０】
Ｅｄｇｅ側のセッション接続処理は、クライアント／ホスト４０からファイルストレージ装置３０に対してユーザによるセッション接続要求が来た場合に実行される。
【０２４１】
ファイルストレージ装置３０は、クライアント／ホスト４０とのセッション接続を行う（ステップＳ２５１）。次いで、ファイルストレージ装置３０は、アーカイブストレージ装置１２０に対してユーザのホームディレクトリのスタブ情報の取得要求を行う（ステップＳ２５２）。これにより、アーカイブストレージ装置１２０からホームディレクトリのスタブ情報が取得できることとなる。次いで、ファイルストレージ装置３０は、取得したスタブ情報に基づいて、ホームディレクトリを作成する（ステップＳ２５３）。
【０２４２】
ファイルストレージ装置３０は、セッション接続したＥｄｇｅ１０（セッション接続したファイルストレージ装置３０が属するＥｄｇｅ１０）が、接続したユーザの所属するＥｄｇｅ１０であるか否かを判定する（ステップＳ２５４）。この結果、セッション接続したＥｄｇｅ１０が、接続したユーザが所属するＥｄｇｅ１０である場合（ステップＳ２５４：Ｙｅｓ）には、ファイルストレージ装置３０は、処理を終了する。
【０２４３】
一方、セッション接続したＥｄｇｅ１０が、接続したユーザが所属するＥｄｇｅ１０でない場合（ステップＳ２５４：Ｎｏ）には、ファイルストレージ装置３０は、アーカイブストレージ装置１２０にセッション接続処理要求を送信し（ステップＳ２５５）、処理を終了する。アーカイブストレージ装置１２０は、セッション接続処理要求を受け取ると、図３６に示すＣｏｒｅ側のセッション接続処理を実行する。
【０２４４】
図３６は、実施例２に係るＣｏｒｅ側のセッション接続処理のフローチャートである。
【０２４５】
Ｃｏｒｅ側のセッション接続処理は、アーカイブストレージ装置１２０が、ファイルストレージ装置３０からセッション接続処理要求を受け取った場合に実行される。セッション接続処理要求には、セッション接続を要求したユーザのユーザ名、接続した拠点のＩＰアドレス、及びセッション接続時刻等が含まれている。
【０２４６】
アーカイブストレージ装置１２０は、ユーザリスト１３３を参照し、セッション接続要求を行ったユーザ名に対応するレコードを選択する（ステップＳ２６１）。次いで、アーカイブストレージ装置１２０は、拠点リスト１３２を参照し、移動先拠点１３２ｂの移動先拠点がセッション接続処理要求に含まれている接続した拠点のＩＰアドレスであり、且つユーザ名１３２ａのユーザ名及びユーザＩＰ１３２ｃのユーザＩＰが、ステップＳ２６１で取得したレコードのユーザ名１３３ａのユーザ名及びユーザＩＰ１３３ｂのユーザＩＰであるレコードを特定する（ステップＳ２６２）。
【０２４７】
次いで、アーカイブストレージ装置１２０は、以下の（式３）により平均移動時間を算出し、特定したレコードの平均移動時間１３２ｄの平均移動時間を更新する（ステップＳ２６３）。（式３）平均移動時間  ＝（（セッション接続処理要求中のセッション接続時刻−ステップＳ２６１で選択したレコードのセッション切断時刻１３３ｃのセッション切断時刻）＋ステップＳ２６２で特定したレコードの平均移動時間１３２ｅの平均移動時間）／２
【０２４８】
次いで、アーカイブストレージ装置１２０は、特定したレコードの移動回数１３２ｄの移動回数に１を加算する（ステップＳ２６４）。これにより、実際のユーザの拠点の移動に応じた平均移動時間及び移動回数がユーザリスト１３２に反映されることとなる。
【０２４９】
ステップＳ２６４の後の処理は、採用している実現方式に応じて異なっている。ここで、実現方式１又は実現方式２においては、アーカイブストレージ装置１２０は、セッション接続処理を終了する。一方、実現方式３の場合には、アーカイブストレージ装置１２０は、処理をステップＳ２６６に進める。
【０２５０】
ステップＳ２６６では、アーカイブストレージ装置１２０は、拠点リスト１３２のセッション接続したユーザ名に対応するレコードに基づいて、各移動先拠点１３２ｂの移動先拠点を、グループＡと、グループＢとに分ける。
【０２５１】
更に、アーカイブストレージ装置１２０は、これらレコードに基づいて、グループＡに分けられた移動先拠点に対応するレコードの移動回数１３２ｄの移動回数の合計（グループＡ移動回数合計）と、グループＢに分けられた移動先拠点に対応するレコードの移動回数１３２ｄの移動回数の合計（グループＢ移動回数合計）とを算出し、グループＡ移動回数合計が、Ｂグループ移動回数合計よりも大きいか否かを判定する（ステップＳ２６７）。
【０２５２】
この結果、グループＡ移動回数合計が、Ｂグループ移動回数合計よりも大きい場合（ステップＳ２６７：Ｙｅｓ）には、アーカイブストレージ装置１２０は、ステップＳ２６１で選択したレコードの転送方式１３３ｄに転送方式Ａを設定し（ステップＳ２６８）、処理を終了する。
【０２５３】
一方、グループＡ移動回数合計が、Ｂグループ移動回数合計よりも大きくない場合（ステップＳ２６７：Ｎｏ）には、アーカイブストレージ装置１２０は、ステップＳ２６１で選択したレコードの転送方式１３３ｄに転送方式Ｂを設定し（ステップＳ２６９）、処理を終了する。この処理により、ユーザの拠点の移動傾向に応じて、転送方式Ａ又は転送方式Ｂのいずれとするかを適切に決定することができる。
【０２５４】
以上、いくつかの実施例を説明したが、これは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。
【符号の説明】
【０２５５】
１０  Ｅｄｇｅ、３０  ファイルストレージ装置、１００  Ｃｏｒｅ、１２０  アーカイブストレージ装置。 
【図１】
2016212902.tif 000003
【図２】
2016212902.tif 000004
【図３】
2016212902.tif 000005
【図４】
2016212902.tif 000006
【図５】
2016212902.tif 000007
【図６】
2016212902.tif 000008
【図７】
2016212902.tif 000009
【図８】
2016212902.tif 000010
【図９】
2016212902.tif 000011
【図１０】
2016212902.tif 000012
【図１１】
2016212902.tif 000013
【図１２】
2016212902.tif 000014
【図１３】
2016212902.tif 000015
【図１４】
2016212902.tif 000016
【図１５】
2016212902.tif 000017
【図１６】
2016212902.tif 000018
【図１７】
2016212902.tif 000019
【図１８】
2016212902.tif 000020
【図１９】
2016212902.tif 000021
【図２０】
2016212902.tif 000022
【図２１】
2016212902.tif 000023
【図２２】
2016212902.tif 000024
【図２３】
2016212902.tif 000025
【図２４】
2016212902.tif 000026
【図２５】
2016212902.tif 000027
【図２６】
2016212902.tif 000028
【図２７】
2016212902.tif 000029
【図２８】
2016212902.tif 000030
【図２９】
2016212902.tif 000031
【図３０】
2016212902.tif 000032
【図３１】
2016212902.tif 000033
【図３２】
2016212902.tif 000034
【図３３】
2016212902.tif 000035
【図３４】
2016212902.tif 000036
【図３５】
2016212902.tif 000037
【図３６】
2016212902.tif 000038
【手続補正書】
【提出日】平成28年8月9日(2016.8.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のユーザと、リモートストレージ装置とに接続されるストレージ装置であって、
前記ユーザ端末から受信するデータを格納する記憶デバイスと、
前記記憶デバイスに対するデータの読み出しと書き込みを制御するプロセッサと
を備え、
前記プロセッサは、
前記複数のユーザ端末から受信するファイルのデータを記憶デバイスに格納し、
当該データを前記リモートストレージ装置にレプリケーションし、
前記記憶デバイスに格納されたデータをスタブ化し、
前記ユーザ端末からのアクセス要求を受信すると、
当該アクセス要求に係るデータがスタブ化されていない場合は、前記記憶デバイスから当該データを読み出して前記ユーザ端末に送信し、
当該アクセス要求に係るデータがスタブ化されている場合は、前記データを前記リモートストレージ装置から取得し、前記ユーザ端末に当該データを送信し、
あるユーザからのセッション接続要求を受信すると、当該ユーザのホームディレクトリに対するロック要求を前記リモートストレージ装置に送信し、
当該ユーザからのセッション切断要求を受信すると、前記リモートストレージ装置へのデータのレプリケーションを実行して、当該ユーザのホームディレクトリに対するアンロック要求を前記リモートストレージ装置に送信する
ことを特徴とするストレージ装置。
【請求項２】
前記プロセッサは、ユーザからセッション接続要求を受信すると、前記リモートストレージ装置から当該ユーザのホームディレクトリの情報を取得する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記プロセッサは、所定時間内にストレージ装置に対して前記セッション切断要求を早く行ったユーザのデータから順に前記リモートストレージ装置にレプリケーションする
ことを特徴とする請求項１又は２に記載のストレージ装置。
【請求項４】
前記プロセッサは、前記レプリケーション処理を定期的に行う
ことを特徴とする請求項１乃至３のうちのいずれか１項に記載のストレージ装置。
【請求項５】
前記プロセッサは、
前記ストレージ装置に接続可能なユーザの識別子と、所定時間内にセッション切断要求を送信したユーザを示すポインタとを有するユーザ管理情報を管理し、
ユーザからセッション切断要求を受信すると、そのセッション切断要求を送信したユーザの識別子が前記ポインタが示すユーザの識別子よりも下位の場合、前記ポインタが示すユーザの識別子と当該セッション切断要求を送信したユーザを示す識別子とをスワップし、前記ポインタの位置を１つ下げる
ことを特徴とする請求項１乃至４のうちのいずれか１項に記載のストレージ装置。
【請求項６】
前記プロセッサは、あるユーザのデータのレプリケーションを実行した場合、前記ユーザ管理情報において、当該ユーザを、セッション切断要求を行ったユーザから外す
ことを特徴とする請求項５に記載のストレージ装置。
【請求項７】
請求項１乃至６のうちのいずれか１項に記載のストレージ装置を含む複数のストレージ装置と、
前記複数のストレージ装置に接続されたリモートストレージ装置と
を有する情報システム。
【請求項８】
複数のユーザ端末と通信ネットワークを介してリモートストレージ装置とに接続されるストレージ装置を有する情報処理システムの制御方法であって、
前記複数のユーザ端末から受信するデータを記憶し、
当該データを前記リモートストレージ装置にレプリケーションし、
前記記憶デバイスに格納されたデータをスタブ化し、
前記ユーザ端末からのアクセス要求を受信すると、当該アクセス要求に係るデータがスタブ化されていない場合は、前記記憶デバイスから当該データのデータを読み出して前記ユーザ端末に送信し、当該アクセス要求に係るデータがスタブ化されている場合は、前記データを前記リモートストレージ装置から取得し、前記ユーザ端末に当該データを送信し、
あるユーザからのセッション接続要求を受信すると、当該ユーザのホームディレクトリに対するロック要求を前記リモートストレージ装置に送信し、
当該ユーザからのセッション切断要求を受信すると、前記リモートストレージ装置へのデータのレプリケーションを実行して、当該ユーザのホームディレクトリに対するアンロック要求を前記リモートストレージ装置に送信する
ことを特徴とする情報システムの制御方法。
【請求項９】
ユーザからセッション接続要求を受信すると、前記リモートストレージ装置から当該ユーザのホームディレクトリの情報を取得する
ことを特徴とする請求項８に記載の情報システムの制御方法。
【請求項１０】
所定時間内にストレージ装置に対して前記セッション切断要求を早く行ったユーザのデータから順に前記リモートストレージ装置にレプリケーションする
ことを特徴とする請求項８又は９に記載の情報システムの制御方法。
【請求項１１】
前記ストレージ装置に接続可能なユーザの識別子と、所定時間内にセッション切断要求を送信したユーザを示すポインタとを有するユーザ管理情報を管理し、
ユーザからセッション切断要求を受信すると、そのセッション切断要求を送信したユーザの識別子が前記ポインタが示すユーザの識別子よりも下位の場合、前記ポインタが示すユーザの識別子と当該セッション切断要求を送信したユーザを示す識別子とをスワップし、前記ポインタの位置を１つ下げる
ことを特徴とする請求項８乃至１０のうちのいずれか１項に記載の情報システムの制御方法。
【請求項１２】
あるユーザのデータのレプリケーションを実行した場合、前記ユーザ管理情報において、当該ユーザを、セッション切断要求を行ったユーザから外す
ことを特徴とする請求項１１に記載の情報システムの制御方法。