JP2006516341A - 分散ファイルシステムを伴うストレージキャッシングの使用方法およびシステム - Google Patents

分散ファイルシステムを伴うストレージキャッシングの使用方法およびシステム Download PDF

Info

Publication number
JP2006516341A
JP2006516341A JP2005518804A JP2005518804A JP2006516341A JP 2006516341 A JP2006516341 A JP 2006516341A JP 2005518804 A JP2005518804 A JP 2005518804A JP 2005518804 A JP2005518804 A JP 2005518804A JP 2006516341 A JP2006516341 A JP 2006516341A
Authority
JP
Japan
Prior art keywords
cache
file
server
data
data file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005518804A
Other languages
English (en)
Inventor
ヘマント,ファタク シリシュ
Original Assignee
タシット ネットワークス,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by タシット ネットワークス,インク. filed Critical タシット ネットワークス,インク.
Publication of JP2006516341A publication Critical patent/JP2006516341A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

複数の遠隔コンピュータワークステーションと少なくとも一のファイルサーバを含むコンピュータネットワークにおけるデータファイルの整合性と一貫性を維持しつつ、リアルタイムのデータファイルへの共用アクセスを管理するストレージキャッシング方法及びシステム。ストレージキャッシングシステムは、ワークステーションに接続したストレージキャッシュと、ファイルサーバに接続したキャッシュサーバによって実施される。ストレージキャッシュとキャシュサーバは、分散ファイルシステムとインターフェースを取り、遠隔ワークステーションによるリアルタイムのデータファイルに共用アクセスを提供する。

Description

関連出願
本出願は、2003年1月17日付で出願され、本出願の譲受人に譲渡され、ここに引用されている米国暫定出願第60/440,750号の利益を請求する。
発明の分野
本発明は、一般的にデータファイルへの共用アクセスの管理に関するものであり、特に、データファイルの一貫性(consistency)と整合性(coherence)を保ちつつ、許可された複数のコンピュータワークステーションにリアルタイムのデータファイルへの共用アクセスを提供するストレージキャッシングプロトコルに関するものである。
発明の背景
現代のコンピュータシステムとネットワーキングアーキテクチュアでは、データファイル用のリポジトリであるコンピュータシステムは、そのデータファイルの処理が実行されるコンピュータシステムではないのが一般的である。このため、ラップトップコンピュータ、ネットワーク接続されたコンピュータ、あるはデスクトップコンピュータなどの遠隔サイトにあるコンピュータシステムに接続されたコンピュータワークステーションにいるユーザは、しばしば、内部メモリ、ディスク、あるいは遠隔地に配置された中央データソースコンピュータシステムのネットワークに取り付けられたストレージ内に保存されているデータファイルへアクセスする、すなわち、このデータファイルを見る(読み取る)あるいは変更する(書き込む)することを望む。このようなデータファイルの遠隔アクセスは、データバス、通信ネットワークまたはインターネットなどの通信チャンネルを介して実行され、通常、このデータファイルにアクセスしているシステムでのデータファイルの表示に遅延あるいは待ち時間をもたらす。この待ち時間は、データファイルにアクセスしているシステムと、このデータファイルを生成するあるいは保存するシステムとの間でデータを転送する必要があるために生じる。これに加えて、データファイルは通常連続的なストリームとしてではなく、むしろ部分的にあるいはブロックでアクセスされ、各ブロックが転送時にチャンネル遅延を経験するため、待ち時間の問題を悪化させることになる。
チャンネル遅延の効果を緩和するために、データファイルへの共用アクセスを提供する分散ファイルシステムのアプリケーションを実行する現在のほとんどのコンピュータシステムは、なんらかの形でキャッシングを取り入れている。キャッシングにおいては、中央ソースコンピュータシステムに保存されているデータファイルの全てあるいは一部のローカルコピーが、遠隔システムに接続されたワークステーションのローカルメモリ内などの、遠隔システムに設置されたキャッシュに保持される。ワークステーションは、キャッシュに保存したデータファイルを読み取ったり、ファイルに書き込んだりできる。ここで、キャッシュに保存したファイルというのは中央システムに保存されているデータファイルの全部または一部のミラーである。このキャッシュは、ワークステーションによって入力され、最終的にファイルサーバに保存されているデータファイルに組み込まれるべきキャッシュ内データファイルに行われたあらゆる変更を追跡するデータも保存している。従って、キャッシングによってチャンネル待ち時間を緩和することができ、遠隔システムのワークステーションのユーザは、データファイルが遠隔に配置された中央ソースシステムではなく、ローカルソースからアクセスされることに気がつかない。
キャッシングは一定のデータファイルアクセス状況では待ち時間を軽減することができるが、キャッシュにコピー(ミラー)として未だ保存されていないデータファイルにアクセスがなされると、ファイルサーバからデータファイルのコピーを取り出すことによる、キャッシュミスと呼ばれる待ち時間がまだ存在する。キャッシュミスを防止し、その結果分散ファイルシステムの性能を改善するために、キャッシングシステムは、しばしば、将来アクセスに必要となるデータファイルをキャッシュに保存する、「キャッシュのプレポピュレーティング」(pre-populating the cache)として知られている先行読み込み(リードアヘッド)技術を取り入れている。
複数の遠隔システム間でのデータファイルへの共用アクセスを提供する分散ファイルシステムでは、異なる遠隔システムからアクセスされているデータファイルのバージョンが違ってしまうことを防ぐために、取り入れているキャッシングシステムがキャッシュの整合性とキャッシュの一貫性を保つことが必要である。キャッシュの整合性は、キャッシュに保存されているデータファイルへの更新とそれらの更新の順序とが保存され安全であることを保障するものである。従って、整合性のある分散ファイルシステムでは、(i)ファイルサーバに保存されている対応するデータファイルを更新するのに更新データが使用される前に遠隔システムがキャッシュに保存されている更新データを削除しないこと、及び(ii)キャッシュからの更新データを用いてサーバにあるデータファイルが更新されるまで他のシステムがそのデータファイルの更新を潜在的に妥協させるような形で当該データファイルを更新しないこと、が保証される。キャッシュの一貫性は、開かれたキャッシュ内データファイルへのワークステーションによる更新が時宜を得てキャッシュ内データファイルに反映されることを保証するものである。キャッシュの整合性とキャッシュの一貫性という特性は、複数の遠隔システムが同じデータファイルにアクセスする場合、同じように重要である。このような状況において、整合性は更に、ファイルサーバに保存されているデータファイルに対応するいずれかのキャッシュ上の更新が、同じデータファイルに対応する別のキャッシュによる更新を無効にしないように保証する。キャッシュの一貫性は、更に、いずれかのキャッシュでなされたキャッシュデータファイルへの更新が、時宜を得て、同じデータファイルにアクセスしているその他の全てのキャッシュにおけるキャッシュデータファイルに組み込まれるように保証する。
キャッシングシステムがキャッシュに保存されているデータファイルの更新が全て、即座に中央コンピュータシステムに転送されるライトスルー構造を持つ場合には、キャッシュの一貫性とキャッシュの整合性は容易に維持される。この即座の転送の結果、中央システムのファイルサーバに保存されているデータファイルが即座に更新される。このような構造は、中央システムからのデータファイル読み取りアクセスを実行する複数のキャッシュを有することに関連する性能を改善するが、書き込みアクセスに基づくデータファイルの更新に関連する待ち時間がまだ存在する。したがって、この構造は通常、データファイルの更新がめったに起こらない分散ファイルシステムにのみ非常によく機能する。ライトバックとして知られている別のキャッシング構造は、後者の待ち時間の問題を解決する目的で、ライトスルー構造から発展した。ライトバック構造では、キャッシュ内の更新が中央システムへ転送(フラッシング)されるまでの一定期間、キャッシュデータファイルへの更新をキャッシュが保存する。この定期的なフラッシングが、大幅な待ち時間を生ずることなくキャッシュに保存されているデータファイルを更新する。ライトバックの最も簡単な形は、ライトビハインド構造であり、キャッシュに保存されているデータファイルへの更新が、即座にでなく、言い換えればいくらか遅らせて、キャッシュに保存されているデータファイルの更新がキャッシュに保存されたのと同じ順序で中央ソースに転送される。キャッシュに保存した更新は中央ソースへも、ライトバックキャッシング構造におけるその他の遠隔システムへも直ちには行われないので、この構造は、たいていの場合、単一の遠隔システムが読み取りあるいは書き込みを行うためにデータファイルへアクセスする場合にのみ有益である。
複数の遠隔システムによるデータファイルへのアクセスが予想される場合、データファイルの一貫性を確実なものにするため、すべてのキャッシュで、また中央ソースシステムでも実行される更新を追跡するメカニズムを用いて、ライトバックキャッシングシステムがしばしば強化される。これらのメカニズムは通常、実質的にキャッシュを複雑にしてコストを上げることになり、多くのアプリケーションにおいてこのようなキャッシュを非実用的にする。しかしながら、その性能による利益は著しく、これらのキャッシュを、コンピュータネットワークを介して接続されている複数のコンピュータシステムなどの高性能計算装置用に非常に魅力的なものにする。
ファイル共用能力を有する一般的なコンピュータシステム構造では、構内コンピュータネットワーク(LAN)が、UNIXTM用のNFS(登録商標)(Network File System)や、Microsoft Windows TMシステム用のCIFS(登録商標)(Common Internet File System)などの分散ファイルシステムを介してデータファイルに遠隔アクセスする。これらのファイルシステムが、遠隔コンピュータシステムに接続したワークステーションに中央コンピュータシステムのファイルサーバに保存されているデータファイルにアクセスするメカニズムを提供する。更に、各遠隔システムはローカルキャッシングを用いて、データファイルへのアクセス効率を上げるようにしている。典型的には、このキャッシングは、通常4キロバイトのデータブロックを構成するデータファイルのページ細分性ごとに実行される。キャッシュに保存される実際のページ数は、遠隔システムに組み込まれているか、あるいは接続されているワークステーションのキャッシング可能なメモリの機能による。更に、これらのファイルシステムは、受け入れ可能な性能を達成するためにライトバックキャッシングの手法をいくつか利用している。
キャッシュの一貫性とキャッシュの整合性は、キャッシングシステムの重要な特性であるが、これらの特性は分散ファイルシステムの実行能力を持つネットワーク接続したコンピュータシステムにおいては、特に、そのシステムがライトバックキャッシングを使っている場合は、しばしば実現が非常に困難である。従って、多くの分散ファイルシステムはキャッシュの一貫性と整合性の保証を完全に満たしてはいない。現実の装置では、分散ファイルシステムは、同じデータファイルを共用することがまれであるという重大な前提に頼っており、従って、データファイルの共用が発生したときの性能と正確さとの間にトレードオフがおきる。例えば、NFSは、現在は共用アクセスに特に適さない。なぜなら、(i)NFSは一貫性の保証が脆弱である、すなわち、第1の遠隔システム用のキャッシュに保存されているデータファイルの変更が中央システムに適時反映されないことがあり、従って、中央システムからデータファイルへアクセスしているその他の遠隔システムにおいて必ずしもファイルがミラーではないことがあり、また(ii)NFSは整合性の保証がないからである。更に、CIFSは優れた一貫性と整合性を示すものの、この一貫性と整合性は2以上の遠隔システムがどれかのデータファイルにアクセスしているような、常時ライトスルーを利用することによって実現されているため、共用アクセスのパフォーマンスは低い。
一貫性と整合性を維持するための自動手段に加えて、NFSとCIFSは、ファイル共用アプリケーションによって整合性と一貫性の特色を制御できるようにするロッキング構造も提供する。特に、NFSは共用アプリケーションをオペレーションシステムのいかなる制御もなくして自発的に互いに協力させるものであり、これはアドバイザリバイト範囲ロッキング(advisory byte range locking)として広く知られている。CIFSは強制バイト範囲ロッキング(mandatory byte range locking)として知られているオペレーションシステム制御ロッキングを提供しており、ファイル共用モードを明示すると同時に、例えばあるアプリケーションがあるファイルにアクセスしながら、他のアプリケーションがそのファイルにアクセスできないように制御するようにさせる。このファイル共用アプリケーションは、このような機構を用いて従来のファイル分散システムによって提供される整合性と一貫性を改善することができる。例えば、あるアプリケーションは基礎となるシステム、例えばNFS、がこれらの特性を持っていない場合でも、バイト範囲ロッキングを使用して整合性と一貫性を提供することができる。
更に、典型的な待ち時間がミリ秒未満である構内ネットワークに設けたネットワークシステムが直面する性能上の問題は、広域ネットワーク(WAN)でファイルを共用する場合に一層ひどくなる。トランスアークアンドリュウファイルシステム(Transarc Andrew File System: AFS)として知られている従来のシステムは、大学キャンパスのWANなど、地理的に小さい領域のWANsに存在する待ち時間を克服するために考え出された。ファイルページを保存するためにコンピュータワークステーションのメモリなどの、遠隔システムのローカルメモリを用いているNFSとCIFSとは逆に、AFSはファイル全体のキャッシュとしてオンディスクローカルファイルシステムを使用している。AFSでは、ほとんどのオペレーションがファイルのローカルコピィ上で生じており、データファイルへのアクセスがリクエストされるときにファイルサーバからデータを引き出す必要がない。キャッシュに保存されている各データファイルが変更されて閉じられると、その更新が中央システムに転送(フラッシュ)されて、ファイルサーバで対応するデータファイルを更新し、次いでこの更新データファイルがその他の遠隔サイトによってアクセス可能となる。
従って、AFSはファイルの細分性において閉じられた一貫性についてフラッシュを提供する。言い換えると、データファイルの更新は、データファイルが閉じられたときに直ちに可能となるが、データファイルの書き込み中は更新されない。しかしながら、AFSは、WAN操作を実行可能にするためには整合性と一貫性の保証をかなり弱めることになる。特に、AFSは複数の遠隔システムに、各々がある一つのデータファイルに対応する各キャッシュに保存されているデータファイルを同時に更新させるため、整合性に欠ける。そのファイルを閉じる最後の遠隔システムが、中央システムのサーバにおけるデータファイルへの変更を制御する遠隔システムとなる。言い換えれば、この最後にクロージングされた遠隔システムの変更が、他の遠隔システムによってそのデータファイルに明らかに行われている変更に取って代わる。更に、遠隔システムがファイルを閉じるときにのみ変更が中央ソースへ転送されるので、AFSの一貫性は弱い。
この結果、AFSはキャンパス程度の広さの共用アプリケーションには有益であるが、企業のビジネス環境で使用する場合には多くの不利益がある。例えば、AFSはすべてのコンピュータに搭載しなければならない。更に、AFSはNFSやCIFSの分散ファイルシステムまたはその他の従来の同様なシステムと共に動作できない。さらに、一貫性と整合性の欠如によりAFSは、多数の遠隔システムによって一つのデータファイルのリアルタイムバージョンへのアクセスの共用が求められる多くの企業アプリケーションには好適ではない。
従って、分散ファイルシステムの使用を通じてデータファイルへの共用アクセスをリアルタイムで提供するシステムと方法であって、キャッシングの利点を活用する一方で、データファイルの整合性と一貫性も提供し、既存の分散ファイルシステムとの相互運用及びインターフェースが容易であるシステムと方法が求められている。
発明の概要
本発明によれば、ストレージキャッシングプロトコルシステムが分散ファイルシステムとインターフェースを取って、許可されたコンピュータワークステーションにファイルサーバに保存されているリアルタイムなデータファイルへの共用アクセスを提供する。ファイルサーバに保存されているデータファイルは、キャッシュサーバでほぼリアルタイムで自動的に更新されることによって、ワークステーションで入力され、ストレージキャッシュに保存されている対応するキャッシュに保存されているデータファイルに組み込まれたデータファイルの変更を表すファイル更新データを包含する。この結果、キャッシュサーバはデータファイルのリアルタイムで更新されたバージョンを用いてワークステーションからのデータファイルに対するアクセスリクエストに応答することができる。このリアルタイムデータファイルは、それ以前にこのデータファイルにアクセスしたワークステーションによって入力されそれぞれ各ワークステーションのストレージキャッシュに保存された対応するキャッシュデータファイルに組み込まれたデータファイルの変更の全てを含む。好ましい実施例では、ファイル更新データがストリーミングデータとして転送され、ファイルサーバで保存されているデータファイルまたはストレージキャッシュで保存されているキャッシュ内データファイルを更新し、最も好ましくは、ファイル更新データが圧縮形式で転送され、選択的にデータ差分技術を用いて生成される。
好ましい実施例では、ストレージキャッシングプロトコルシステムが、通信媒体を通じて通信可能に内部連結された少なくとも一のストレージキャッシュと少なくとも一のキャッシュサーバを具える。このキャッシュサーバは、データファイルを含むファイルサーバに接続しており、ストレージサーバは少なくとも一の許可されたコンピュータワークステーションと接続している。キャッシュサーバはファイルサーバに保存されているデータファイルのコピィをストレージキャッシュへ転送する。ストレージキャッシュはこのデータファイルコピィをキャッシュ内データファイルとして保存し、このストレージキャッシュに接続されたワークステーションによって入力され、キャッシュ内データファイルへ組み込まれたキャッシュデータファイルへの変更を表すファイル更新データを自動的にキャッシュサーバに転送する。キャッシュサーバは、このファイル更新データを用いてファイルサーバに保存されているデータファイルを更新し、ファイルサーバに保存されているデータファイルの更新バージョンを用いて、同じあるいは別のストレージキャッシュからの、又はストレージキャッシュに接続していない許可されたコンピュータワークステーションからなどの、このデータファイルに対するその後のアクセスリクエストに応答する。好ましい実施例では、このアクセスリクエストに対する応答が、リクエストしているストレージキャッシュに保存されている対応するキャッシュ内データファイルを更新するためのサーバファイル更新データを含む。
本発明のストレージキャッシングシステムは、好ましくは、分散ファイルシステムの使用を介してデータファイルへのアクセスを共用する全ての遠隔コンピュータシステム間の一貫性と整合性を確実なものにするためにデータファイルへのアクセスのリクエストを管理するリースプロトコルに基づいて動作する。ストレージキャッシュに接続された遠隔コンピュータシステムがファイルサーバに保存されているデータファイルへのアクセス、すなわち、データファイルを見ること(読み取り)あるいは変更すること(書き込み)を希望するたびに、その遠隔システムに接続されたストレージキャッシュが、システムがデータファイル用の適当なリースを持っているかどうかを決定し、持っていない場合は、キャッシュサーバへリースリクエストを送信する。キャッシュサーバは、データファイルにアクセスできるストレージキャッシュを含む他の遠隔システムの全てとのキャシュ一貫性とキャッシュ整合性を保ち得る場合、リースリクエストを許可する。キャッシュサーバがリースリクエストを拒否した場合は、キャッシュに保存されているデータファイルへの更新が許可されないので、遠隔システムは、リクエストされたアクセスを禁止するか、あるいはデータファイルをキャシングすることなくリクエストをファイルサーバへ送ることができる。リクエストがファイルサーバへ送られる場合は、別のストレージキャッシュがデータファイルへの書き込みリースを持ち続けるので、アクセスリクエストをしているワークステーションは、見る権利を有するだけであり、データファイルをキャッシュすることができない、すなわち、読者権を持つだけである。ストレージキャッシュに接続されたワークステーションに読者権が許可されるたびに、対応するキャッシュに保存されているデータファイルがファールサーバに保存されているデータファイルを用いて更新され、キャッシュに保存されているデータファイルはワークステーションによって変更することができない。
更に好ましい実施例では、(i)別のストレージキャッシュがすでにリースを有しているかどうか、および書き込みあるいは読み取りを行うことができるタイプのリースが存在することに基づいて、あるいは(ii)CIFSやNFSなどの従来の分散ファイルシステムプロトコルに関連する強制的あるいはアドバイザリロックなど、その他のメカニズムによってデータファイルがすでにロックされているかどうかに基づいて、キャッシュサーバが第1のストレージキャッシュから受信したデータファイルのリースのリクエストを許可するか拒否するかを決定する。このリースリクエストは、以下の基準に基づいて処理される:読み取りリースが第2のストレージキャッシュにすでに存在する、あるいはファイルが別のメカニズムによってすでに読み取り用にロックされている場合は、書き込みリースは許可することができない;書き込みリースが第2のストレージキャッシュにすでに存在する場合は、パススルー読者権のみを許可することができる;及び、読み取りリースが第2のストレージキャッシュにすでに存在する場合、あるいはファイルが読み取り用にのみロックされている場合は、追加の読み取りリースを許可することができる。更に、リースが許可された後は、相反する形で別のアプリケーションがデータファイルをロックすることを防ぐために、キャッシュサーバがデータファイルをロックする。従って、キャッシュサーバは許可されるいずれのリースも現在あるリース、あるいは別のメカニズムですでに行われたデータファイル上に存在するいずれのロックとも、確実に互換性があるようにする。書き込みリースが許可された場合は、第1のストレージキャッシュが、関連するワークステーションによって入力されたデータファイルの変更に基づいてキャッシュサーバから干渉されることなくキャッシュに保存されているデータファイルを独立して更新する。更に、リースリクエスト、あるいは読者権の許可に続いて、キャッシュサーバと第1のストレージキャッシュが、第1のストレージキャッシュに保存されているキャッシュ内データファイルがあれば、まずこれを自動的に更新するようにする。
別の好ましい実施例では、ストレージキャッシュが、リース、すなわち読み出しリース、又は、書き込みリースの強度に基づいて、関連する許可されたワークステーションからのファイルサーバに保存されているデータファイルへのアクセスのリクエストに応答する。ここで、それ以前にキャッシュサーバがストレージキャッシュへ提供した読み取りリースがもしある場合、書き込みリースは、その読み取りリースに関するファイル閲覧権より強いか、あるいは、その閲覧権を含む。もしストレージキャッシュに既に存在するリースがある場合、その既に存在するリースと同等のレベルの、読み取り若しくは書き込みアクセスリクエストの場合に、そのアクセスリクエストは許可される。さらに、ストレージキャッシュがアクセスリクエストを満足させるのに十分な強さをもったリースを持っていない場合、ストレージキャッシュは、まずリースを取得しなければならず、従ってキャッシュサーバからデータファイル用のリースをリクエストする。リースが許可され得ること、あるいはリクエストされたアクセスが別のストレージキャシュに存在するリースや、データファイル上に存在するロックと干渉しないことをキャッシュサーバが判断した場合に、そのリースリクエストが許可される。リースリクエストの許可の後、ストレージキャッシュは、そのアクセスリクエストに従い、読み取りあるいは書き込みの目的でワークステーションがキャッシュに保存されているデータファイルを開くことを許可する。リースリクエストが拒否されると、ストレージキャッシュがキャッシュサーバと相互作用して、ファイルサーバに保存されているデータファイルのバージョンに基づいてキャッシュに保存されているデータファイルを更新し、読み取りアクセスのみを許可する。ストレージキャッシュにおけるキャッシュ内データファイルは、キャッシュサーバとストレージキャッシュ間の相互作用に基づいて、必要に応じて自動的に更新される。ストレージキャッシュは典型的には、ストレージキャッシュに関連する全てのワークステーションがキャッシュデータファイルを閉じて、キャッシュに保存されているデータファイル内に反映されているデータファイルへのペンディングとなっている更新すべてがストレージキャッシュからキャッシュサーバへ転送されたときにのみ、リースを開放あるいはドロップする。
発明の詳細な説明
図1は、複数のコンピュータシステムにリアルタイムのデータファイルへの共用アクセスを提供する、本発明によるストレージキャッシングプロトコルによって動作する例示的なコンピュータシステムネットワーク10のシステム図である。ネットワーク10は、データファイル用の倉庫であるデータセンターコンピュータシステムにおいて動作する分散ファイルシステムアプリケーションとインターフェースしているストレージキャッシングプロトコルシステム12及び、データセンターシステムのファイルサーバで保存されているデータファイルにアクセスすること、すなわち閲覧のみ(読み取り)または変更(書き込み)することを所望するコンピュータワークステーションに接続され、通常はデータセンターシステムから離れた場所にある遠隔サイトコンピュータシステムと、を具える。本発明のシステム12は、関連する遠隔システムのワークステーションに接続された少なくとも一のストレージキャッシュと、データセンターシステムのファイルサーバに接続されている少なくとも一のキャッシュサーバを含み、ここでは、このストレージキャッシュとキャッシュサーバは、インターネットを介して開設したリンクなどの通信リンクを用いて、(i)関連するワークステーションがアクセスを希望するデータファイルのコピィと、(ii)そのデータファイルにアクセスする許可されたワークステーションによって入力された全てのデータファイルの変更を表すファイル更新データと、(iii)ストレージキャッシングプロトコルシステム12の動作特徴に関連するデータと、を送信する。
図1に示す例示的ネットワーク10のストレージキャッシングプロトコルシステム12の実施において、システム12は遠隔ワークグループコンピュータシステム16Aおよび16Bおよび中央ワークグループデータセンターコンピュータシステム20とインターフェースをとっている。遠隔システム16Aは、イーサネットあるいは同様の媒体などの、通信チャンネル24Aを介して内部接続されたコンピュータワークステーション22Aと22Bを具える。同様に、遠隔システム16Bは、通信チャンネル24Bを介して内部接続されたワークステーション22Cと22Dを具える。各ワークステーション22は、例えば、パーソナルコンピュータ、パーソナルデジタルアシスタント、あるいは、プロセッサとメモリを備え通信能力を有する他の同様の電子装置の一部をなすか、あるいはまたは、これらの装置を構成している。更に、遠隔装置のワークステーションは、イーサネットと組み合わせて、ローカルアクセスネットワーク(LAN)を形成し、ワークステーションが含まれている遠隔システムから離れて配置されているデータファイルにワークステーションのユーザがアクセスできるようにするNFSやCIFSなどの従来技術の分散ファイルシステムに従って動作する。
通信ゲートウェイ26は遠隔システム16の各々のイーサネット24を通信ネットワーク28に接続する。ネットワーク28は、例えば、広域ネットワーク(WAN)、LAN、インターネット、または地理的に異なる位置間にデータ通信リンクを提供するあらゆる同様のシステムであっても良い。ゲートウェイ26は、例えば、標準DSL速度を有する標準VPNインターネット接続である。当業者には良く知られているとおり、ゲートウェイ26は、NFSやCIFSなどの従来の分散ファイルシステムによってアクセス可能なデータファイルなどのデータをワークステーションと遠隔配置されたファイルサーバ間で転送することができる。図1のネットワーク10はストレージキャッシングシステム12の一部としてゲートウェイ26とネットワーク28を示しているが、公知の従来の装置を構成しているこれらのコンポネントは、以下に詳細に述べるように本発明のシステム12のストレージキャッシュおよびキャッシュサーバの動作に必要であるにもかかわらず、本発明の特徴を構成するものではない。
図1を再び参照すると、ストレージキャッシングシステム12は、遠隔システム16Aおよび16Bにそれぞれ接続したストレージキャッシュ30Aと30Bを具える。各ストレージキャッシュ30は、イーサネット24と、関連する遠隔システム16のゲートウェイ26に接続されている。更に、ストレージキャッシングシステム12は、キャッシュサーバ36を含む。キャッシュサーバ36は、ネットワーク28にも接続されている関連するゲートウェイ26Cに接続されている。イーサネット24Cは、ゲートウェイ26Cとキャッシュサーバ36とをデータセンターシステム20に含まれているファイルサーバ38とワークステーション22Dと22Eに接続する。ファイルサーバ38は、NASなどの従来のファイルストレージ装置であり、これはデータファイルの倉庫であり、保存されているデータファイルを、遠隔システム16とデータセンタ20の許可されたワークステーションに導入されているNFSまたはCIFSなどの従来の分散ファイルシステムの動作に従って許可されたワークステーションに分散する。例証のため、遠隔システム16とデータセンタ20内の全ワークステーション22は、許可されたワークステーションを構成し、サーバ38の分散ファイルシステムと互換性のある分散ファイルシステムに応じて動作する。
図2は、本発明に係るストレージキャッシュ30の好ましい実施例を示す。図2を参照すると、ストレージキャッシュ30は、キャッシュマネージャ50、翻訳プログラム52、リーシングモジュール54、およびローカルリースファイルストレージ56というモジュールを具える。キャッシュマネージャ50は、翻訳プログラム52に接続されており、図1に示すキャッシュサーバ36などのキャッシュサーバに、ゲートウェイと通信ネットワークを介して接続するためのものである。翻訳プログラム52は、リーシングモジュール54とローカルストレージ56に接続されており、イーサネット接続を介して関連する遠隔システムのワークステーションに接続するためのものである。下記に詳細に述べるとおり、キャッシュマネージャ50は、データファイルと、ファイル更新データと、データファイルリーシング情報の、キャッシュサーバ36へ及びキャッシュサーバ36からのルーティングを制御する。翻訳プログラム52は、キャッシュ内データファイルとしてストレージ56にアクセスしたデータファイルのコピィを保存し、読み取りあるいは書き込みの目的で、キャッシュ内データファイルに対応するデータファイルへのアクセスをリクエストした関連するワークステーションでキャッシュ内データファイルを入手可能とし、ワークステーションで入力されたデータファイルの変形あるいはキャッシュサーバから供給された更新データに基づいてキャッシュ内データファイルを更新する。更に、翻訳プログラム52は、好ましくは、第1のデータファイルを表すチェックサムを生成し、公知の技術を用いて別のデータファイルと第1のデータファイル間の違いをこのチェックサムに基づいて判断することができる。リーシングモジュール54は、キャッシュサーバ36との相互動作を介して、関連するワークステーションからのデータファイルへのアクセスのリクエストを許可するか否かを決定する。ここで、このアクセスリクエストはキャッシュ内データファイルが読み取りまたは書き込みのいずれかの目的で関連するワークステーションで入手可能にすることを要求している。好ましい実施例では、ネットワーク28を介してデータセンターシステムのファイルサーバに保存されているデータファイルへアクセスできる全ての遠隔コンピュータシステムにストレージキャッシュが接続されている。
図3は、本発明によるキャッシュサーバ36の好ましい実施例を示す図であり、このサーバは、キャッシュ30Aや30Bなどの複数のストレージキャッシュ及び、データセンタ20のワークステーション22Eおよび22Fなどのストレージキャシュに関係していないワークステーションによる、ファイルサーバに保存されているデータファイルへの共用アクセスを管理する。キャッシュサーバは、好ましくは、NASやSANなどの、遠隔コンピュータシステムとデータセンターコンピュータシステムに導入されている既存の分散ファイルシステムと互換性をもたせ容易に一体化させることのできるアーキテクチュアを有する薄い装置である。2001年1月19日に出願され、本出願人に譲渡されており、ここに参照することにより組み込まれている、米国特許出願第09/766,526号を参照されたい。
図3を参照すると、キャッシュサーバ36は、サーバマネージャ60と、翻訳プログラム62、リーシングモジュール64、およびローカルファイルストレージ66というモジュールを具える。サーバマネージャ50は、翻訳プログラム62、リーシングモジュール64及びストレージ66に接続されており、また、ストレージキャッシュ30Aや30Bなどのストレージキャッシュに、ゲートウェイ26Cとネットワーク28を介して接続するためのものでもある。翻訳プログラム62は、ストレージ66に接続されており、イーサネット接続を介して関連するデータセンターコンピュータシステムのファイルサーバへ接続するためのものである。翻訳プログラム62はファイルサーバ36に保存されており、ファイルサーバ36から得たデータファイルのコピィをストレージ66に一時的に保存し、この保存したデータファイルと、ストレージキャッシュから受信した更新データを用いて処理を実行して、置き換えた更新データを生成する。翻訳プログラム62は、また、ファイルサーバ38に保存されたデータファイルを、置き換えデータファイルに置き換える。さらに、翻訳プログラム62は、ワークステーション22Dや22Eなどの中央システムに接続したワークステーションに、ファイルサーバ36に保存されているデータファイルのコピィを以下に更に詳細に述べる本発明のリーシングプロトコルに基づいて見る目的のためだけに供給することができる。好ましい実施例では、翻訳プログラム62は、翻訳プログラム52と同様に、第1のデータファイルを表すチェックサムを生成し、このチェックサムを用いて別のデータファイルと第1のデータファイルとの間の違いを判断することができる。さらに、リーシングモジュール64は、システム12に含まれるストレージキャッシュとの相互動作を通じて、特定のストレージキャッシュに接続されたワークステーションからのデータファイルへのアクセスリクエストを許可するべきか、拒否するべきかを決定する。
本発明によってデータ処理動作を実行するストレージキャッシュ30とキャッシュサーバ36の各モジュールは、ソフトウエアモジュール、または、代替的に、ハードウエアモジュールまたはハードウエア/ソフトウエアモジュールの組み合わせであると考えられる。さらに、各モジュールは、好ましくは、データ保存と、本発明による処理動作を実行するための指示用にRAMなどのメモリストレージ領域を含む。代替的に、処理動作を実行するための指示は、一又はそれ以上のモジュール内のハードウエアに保存することができる。更に、好ましい実施例では、キャッシュサーバ36とストレージキャッシュ30のそれぞれの内のモジュールを好適に組み合わせて複合モジュールとし、キャッシュサーバとストレージキャッシュを、ワークステーション用のキャッシングと、中央データセンターコンピュータシステムのファイルサーバに保存されているデータファイルのリアルタイムでの更新の双方を行うことができる単一の装置にまとめることができると考えられる。
本発明によれば、ストレージキャッシングシステム12のストレージキャッシュとキャッシュサーバは、データセンタのファイルサーバに保存されており、従来技術の分散ファイルシステムを介して許可されたワークステーションへ分散が可能なデータファイルが読み取りあるいは書き込み目的でワークステーションによってアクセスすることができること、このワークステーションがこのファイルにアクセスするときに最小待ち時間を経験すること、およびアクセスリクエストに応じてワークステーションに供給されたキャッシュ内データファイルが、データファイルのリアルタイムバージョンに対応すること、を提供する。システム12のストレージキャッシュは、ストレージ56にアクセスリクエストの対象であるデータファイルに対応するキャッシュ内データファイルの現バージョンのみを保存する。ここでは、このワークステーションがファイルにアクセスしている間に、ストレージキャッシュに接続されたワークステーションによって入力されたデータファイルの全変更を、単一のキャッシュ内データファイルが含んでいる。キャッシュに保存されたデータファイルに関連するファイル更新データは、自動的にまた好ましくは所定のインターバルで生成され、キャッシュサーバに転送(フラッシュ)される。より好ましくは、ファイル更新データが十分な頻度でフラッシュされ、データファイルのリアルタイムでの更新バージョンがファイルサーバに保存され、別のストレージキャッシュあるいはストレージキャッシュに無関係のワークステーションからのアクセスリクエストに応答するためにキャッシュサーバによって使用される。好ましい実施例では、ストレージキャッシュのローカルストレージ56は、最新のアクセスデータファイルに対応するキャッシュ内データファイルのみを含む。
図4Aは、ファイルサーバのデータファイルを更新するための、本発明によるストレージキャッシュとキャッシュサーバで実行されるデータ処理動作を示すハイレベルのフロープロセス100である。プロセス100と、図4B、5、6、および7を参照して以下に説明するプロセスを例示するために、ネットワーク10と、ストレージキャッシングシステム12のコンポネントが、ソースシステム20のファイルサーバ36にデータファイルが保存されている遠隔システム16Aまたは16Bからのデータファイルにアクセスするリクエストに関連して実行する動作が引用されている。プロセス100の特徴にハイライトを当てるために、ストレージキャッシュ30Aのストレージモジュール56は、最初はワークステーション16Aが書き込み目的でアクセスしようとしているデータファイルに対応するキャッシュ内データファイルを含んでいないと仮定されている。
図1、2、3及び4Aを参照すると、ステップ102では、翻訳プログラム62がファイルサーバ38と通信して、ワークステーション16Aがアクセスを希望するデータファイルのコピィを生成する。次いで、サーバマネージャ60はこのデータファイルのコピィを、ゲートウェイ26C、ネットワーク28、およびゲートウェイ26Aを介してストレージキャッシュ30Aへ転送する。
ステップ104では、キャッシュマネージャ50がゲートウェイ26Aから転送されてきたデータファイルのコピィを受信し、キャッシュ内データファイルとしてストレージ56にこのファイルを保存する。更に、翻訳プログラム52は、ワークステーション16Aの分散ファイルシステムと相互動作して、ワークステーション16Aがキャッシュに保存されているデータファイルを開き、データファイル変更(書き込み)を入力できるようにする。ワークステーションのユーザがキャッシュ内データファイルを与えられている場合、言い換えれば、ユーザが対応するデータファイルへアクセスするリクエストに続いてキャッシュ内データファイルを開くことが許可されている場合は、ユーザはそのファイルを得たネットワーク10内の位置を認識しない。ユーザは、ユーザがローカル遠隔システムのメモリあるいはストレージキャッシュ30Aに保存されているようなデータファイルのローカルコピィ上で作業しているのか、あるいは、遠隔配置されたデータセンターコンピュータシステム20など、遠隔ストレージ位置から取り出されたデータファイルコピィ上で作業しているのかはわからない。ワークステーション16Aでユーザがデータファイルの変更を入力すると、翻訳プログラム52はこの変更をモニタし、これらの変更をストレージ56のキャッシュ内データファイルに組み入れる。言い換えると、遠隔システム16A内の全てのワークステーションによってそれ以前になされたキャッシュ内データファイルに対する全変更を含むキャッシュ内データファイルの現バージョンのみが、ストレージ56に保存される。
ステップ106、108、110、112および114では、ストレージキャッシュ26に保存された対応するキャッシュ内データファイルになされた変更に基づいて、ストレージキャッシュ26Aとキャッシュサーバ26Cがファイルサーバ38に保存されたデータファイルのバージョンを自動的に更新する更新動作を説明している。この自動更新に基づいて、キャッシュサーバはワークステーション16A以外の許可されたワークステーションからそれ以降に受信したデータファイルへアクセスするリクエストに応じてデータファイルのリアルタイムでの更新バージョンを転送することができる。ここで、このワークステーションは、ストレージ30Aか、あるいはシステム12の一部である別のストレージキャッシュに接続していても、していなくても良い。プロセス100の好ましい実施例では、システム12のコンポネントは、潜在的な待ち時間を最小限にするために、本発明のデータファイルの自動更新の一部として公知の従来の差分技術を実装している。
図4Aを再度参照すると、ステップ106では、ストレージキャッシュ30Aのキャッシュマネージャ50が、データファイル転送リクエストをキャッシュサーバ36に送信する。キャッシュサーバ36では、このリクエストを受信して、サーバマネージャ60が当業者に公知の技術を用いて翻訳プログラム62にファイルサーバ38に現在保存されているデータファイルのチェックサムを生成させる。翻訳プログラム62は、ファイルサーバ38からデータファイルのコピィを取り出して、必要に応じてストレージ66にデータファイルコピィなどのチェックサム処理に必要なデータを保存してチェックサムを生成する。
ステップ108において、サーバマネージャ60は、このチェックサムをストレージキャッシュ30Aに送信する。ステップ110で、キャッシュマネージャ50は、ストレージ56からキャッシュ内データファイルを取り出して、翻訳プログラム52が、チェックサムを用いて別のデータ形式をとるファイル更新データを計算する。この差分データは、キャッシュ内データファイルと、現ファイルサーバに保存されており、チェックサムで表されるデータファイルのバージョンとの差を表す。
ステップ112では、キャッシュマネージャ50がこの差分データをキャッシュサーバ36に送信する。次いで、ステップ114で、翻訳プログラム62がこの差分データを用いて、データファイルの更新された置き換えバージョンを生成する。特に、翻訳プログラム62は、好ましくはステップ108でローカルファイルストレージ66に保存されているデータファイルの現行バージョンのコピィを取り出し、この差分データを用いて保存されているデータファイルの現行バージョンを処理して、更新データファイルを作る。次いで、翻訳プログラム62は、ファイルサーバ38に現在保存されているデータファイルを置き換え更新データファイルに置き換える。従って、キャッシュサーバ36が続いてストレージキャッシュ30などの別のストレージキャッシュから、あるいはデータセンターシステム20内のワークステーション22Eまたは22Fの一方から転送されてきたデータファイルへのアクセスリクエストを受けると、キャッシュサーバ36はこの更新データファイルを用いて、リクエストに応答する。その結果、次のリクエスト者には、ワークステーション16Aでなされた入力に基づくデータファイルへの以前の変更を含めて、データファイルのリアルタイムバージョンが効率よく提示される。
好ましい実施例では、ステップ112において、キャッシュマネージャ50がファイル更新データをストリーミングデータとしてキャッシュサーバ36に送信する。代替の好ましい実施例では、ファイル更新データを、ストリーミングデータとしてキャッシュサーバに転送する前に圧縮して、ネットワーク28を介して転送されるデータ量を最小限とし、潜在的な待ち時間を低減させる。
プロセス100の好ましい動作では、キャッシュサーバ36はストレージキャッシュから転送されてきたファイル更新データに基づいてストレージ66に保存されているデータファイルの更新を続け、ファイル更新データの全ての転送が完了し、サーバキャッシュがこの転送された全てのデータを受け取ったら、キャッシュサーバがファイルサーバ36に保存されているデータファイルを更新データファイルに置き換える。
図4Bは、ファイルサーバに保存されている対応するデータファイルを用いてストレージキャッシュでキャッシュに保存されているデータファイルを更新するために、本発明のストレージキャッシュとキャッシュサーバが実行するデータ処理動作を示すハイレベルのフロープロセス120である。プロセス120の特徴にハイライトを当てるために、ストレージキャッシュ30Aはワークステーション16Aからのデータファイルへのアクセスリクエストを既に受信しており、このデータファイルに対応するキャッシュに保存されているデータファイルがストレージモジュール56に保存されていて、ワークステーション22Aまたは22Bが読み出しあるいは書き込みいずれかのために以前にこのデータファイルにアクセスしたと、仮定する。アクセスリクエストに応じてワークステーション22Aに与える前にキャッシュ内データファイルを更新することによって、ワークステーション22Aが以前にアクセスして以来、データファイルになされたすべての更新が、キャッシュに保存されているデータファイルに組み込まれる。例えば、ワークステーション22Cが、このデータファイルに対応するストレージキャッシュ30Bのキャッシュ内データファイルに以前に書き込みを行っているかもしれず、このようなキャッシュ内データファイルになされた変更を表すファイル更新データが、プロセス100について上述したとおり、ファイルサーバ36のデータファイルがキャッシュ30Aで現在保存されている対応するキャッシュ内データファイルと異なるように、ファイルサーバ36のデータファイルを更新するのに使用されているかもしれない。
図4Bを参照すると、ステップ122で、キャッシュマネージャ50は、ワークステーション22Aからアクセスリクエストを受けた後に、簡易化の為にこのようなアクセスリクエストがネットワーク10におけるデータファイルの整合性に影響を与えないと仮定して、データファイル転送リクエストをキャッシュサーバ36へ自動的に転送する。ファイル転送リクエストに応じて、翻訳プログラム62がファイルサーバ36からデータファイルを取り出して、サーバマネージャ60がこのデータファイルをストレージ66に保存する。
ステップ124では、翻訳プログラム52が対応するキャッシュ内データファイルのチェックサムを作り、キャッシュマネージャ50がこのチェックサムをキャッシュサーバ36に送信する。このチェックサムを計算するために、翻訳プログラム52は、ストレージモジュール56からキャッシュに保存されているデータファイルを取り出して、キャッシュ内データファイル上で公知の従来のチェックサム処理を実行する。
ステップ126では、このチェックサムを用いて翻訳プログラム62がサーバファイル更新データを生成する。サーバファイル更新データは、ファイルサーバ36に現在保存されているデータファイルであって、そのコピーがステップ122にてストレージ66に保存されているデータファイルと、ストレージキャッシュ30Aに保存されていてチェックサムで表されているキャッシュ内データファイルの現バージョンとの差を表すことが好ましい。
ステップ128では、サーバマネージャ60がこのサーバファイル更新データをストレージキャッシュ30Aに送信する。次いで、ステップ130において、翻訳プログラム52がサーバファイル更新データを用いて、ストレージモジュール56に保存されているキャッシュ内データファイルを置き換える更新キャッシュ内データファイルを作る。その後、翻訳プログラム52は、システム12のストレージキャッシュに接続されたその他のワークステーションによってなされた、全ての他のデータファイルの変更に基づいて更新されたキャッシュ内データファイルを用いて、ワークステーション22Aからのアクセスリクエストに応答する。従って、ユーザが所望するアクセスされたデータファイルへの更新が、ストレージキャッシュのストレージ56に単一の、現行バージョンのキャッシュ内データファイルの形式で保存される。
プロセス100と同様に、サーバファイル更新データはストリーミングデータとしてストレージキャッシュに送信することが好ましく、更に、ストリーミングデータとしてストレージキャッシュに送信される前にサーバファイル更新データを圧縮することが最も好ましい。
好ましい実施例では、一のストレージキャッシュについて所定のインターバルでプロセス120が自動的に実行され、そのストレージキャシュに接続されたワークステーションがデータファイルへのアクセスをリクエストすることが期待される時点の前にキャッシュ内データファイルが更新される。例えば、本発明のストレージキャッシングプロトコルシステム12を企業にて実施する場合、従業員が職場に到着して、ワークステーションからデータファイルへのアクセスをリクエストする前の早朝に、ストレージキャッシュによってプロセス120が自動的に実行される。遠隔システムのどのワークステーションも所定のインターバルより長い期間特定のデータファイルにアクセスしていない別の好ましい実施例では、プロセス120が自動的に実行され、ストレージキャッシュでの対応するキャッシュ内データファイルを更新して待ち時間を最小にする。更に好ましい実施例では、遠隔システムのワークステーションがアクセスを求めるであろうすべてのデータファイルが、最初に遠隔システムに接続したストレージキャッシュに保存されている。
従って、本発明のストレージキャッシングプロトコルシステムは、遠隔システムとリアルタイムのデータファイルへの共用アクセスを管理するデータセンターシステムとの間で目に見えないインターフェースを構成している。有利なことに、ワークステーションがデータファイルに対して行いたい変更は、ストレージキャッシュにバックアップされない。この所望の変更はキャッシュ内データファイルに表され、キャッシュ内データファイルから取り出されたファイル更新データは常時キャッシュサーバに転送される。キャッシュサーバは、順に、ファイル更新データを用いてデータセンターシステムのファイルサーバに保存されているデータファイルを更新する。従って、遠隔システムあるいはストレージキャッシュは、ファイルのローカルストレージ用に大量のメモリを必要としない。この結果、中央データセンターシステムに接続した本発明のキャッシュサーバのインストールにより、キャッシュサーバと共に稼動するストレージキャッシュに接続した各遠隔システムが最小のローカルメモリストレージを必要とするので、最小の管理費でコンピュータネットワーク10を通してメモリを節約することができる。このことは、最小メモリ要求を実現する。完結しており、分離したシステムである従来のファイル共用システムとは違って、本発明のストレージキャッシングシステムはメモリの要求が小さく、現存の分散ファイルシステム技術を共同利用することができ、以下に詳細に述べるように、ワークステーションがアクセスしたときに共用するデータファイルのネットワーク全体での整合性を提供するものでもある。更に、本発明のストレージキャッシングプロトコルは、一の完全なデータファイル上で読み取りと書き込みの共用アクセス動作を実行するものであり、これは、データファイルの一部(データブロック)を用いて読み取りおよび書き込みの一次操作を実行する、AFS、NFS、CIFSを使用しているような従来のオペレーションシステムと著しく異なっている。
有利なことに、ストレージキャッシングシステム12は、遠隔システムあるいはデータセンターシステムにすでに存在する装置のソフトウエアに追加したり、ソフトウエアを変更したりすることなく、また、現存のソフトウエアのアーキテクチュアに影響を与えることなく、NFSやCIFSなどの現存する従来の分散ファイルシステムと一緒に実施することができる。例えば、システム12は、WindowsのユーザにはWindowsのファイルサーバとして、またUnixのユーザにはUnixファイルサーバとして現れる。さらに、動作中に、システム12のストレージキャッシュとキャッシュサーバは、容易に初期化して、従来のネットワーク構成情報を用いてワークステーションとファイルサーバにインターフェースを取る事ができる。更に、ストレージキャッシュの最初のコンフィギュレーションの後、ストレージキャッシュは、更なる管理、バックアップ、あるいはワークステーションのユーザによってなされるようないかなる運用も必要とせず、キャッシュサーバあるいは遠隔コントロールセンタから、完全に運用され、モニタされ、供給され、複製されうる。
本発明の好ましい態様によれば、システム12は、現存の分散ファイルシステムを用いて動作するネットワーク10のワークステーションによる共用アクセスで入手可能なリアルタイムでのデータファイルの整合性と一貫性を確実なものにするリーシングプロトコルを使用している。このリーシングプロトコルは、一のデータファイルについて多数の読み出しリースを許可するもので、一のデータファイルの第1の読み出しリースは、データファイルをロックして、続く書き込みリースを許可できないようにする。更に、一のデータファイルに対する書き込みリースの許可に続いて、書き込みリースが閉じられるまで別の読み取りリースが許可されない。更に、一のデータファイルに対する書き込みリースがすでに存在する場合は、そのデータファイルの複数の読者権がありうる。一のデータファイルに対する読者権により、ストレージキャッシュに関連している、あるいはしていないワークステーションが、ファイルサーバから直接に得たようなコピーとして、あるいはストレージキャッシュに保存されているキャッシュ内データファイルの形式でそのデータファイルを見ることができる。
図5は、データファイルのリースに関するストレージキャッシュのリクエストを許可するか否かを決定するための本発明のキャッシュサーバとストレージキャッシュによって実行されるデータ処理動作を記載したハイレベルのフロープロセス150である。好ましいプロセス150に説明されたリーシングプロトコルの特徴にハイライトを当てる目的で、第1のストレージキャッシュ、すなわち、ストレージキャッシュ30Aが、ワークステーション22Aから受信したアクセスリクエストに基づいてファイルサーバ36に保存されているデータファイルに対するリースリクエストを開始しているものと仮定する。更に、説明を簡単かつ明確にするために、第2のストレージキャッシュ、すなわち、ストレージキャッシュ30Bが、データファイルに対するリースを許可されることができるネットワーク10内の唯一の他のストレージキャッシュであると仮定する。しかしながら、リーシングプロセス150は、ネットワーク12が2以上のストレージキャッシュを含む場合にも適用可能であり、リーシングプロセス150は、問題のデータファイルに対するリースを保持しているストレージキャッシュの各々に関連して実行されると、考えるべきである。
図5を参照すると、ステップ152では、リーシングモジュール54がストレージキャッシュ30Aのキャッシュマネージャ50にキャッシュサーバ36にデータファイルリースリクエストを送信させる。ステップ154において、リーシングモジュール64は、ストレージキャッシュ30Bがそのデータファイルに対するリースをすでに有するかどうかを判断する。ステップ154における決定がYESであれば、ステップ156でリーシングモジュール64が、キャッシュ30Bで保持されているリースがリクエストされたリースと対立するかどうかを判断する。上述したリーシングプロトコル基準に基づいて、キャッシュ30Aのリースリクエストが読み取りの場合は、対立は存在しない。この状態で、リーシングモジュールがステップ158を実行して、ファイルへの共用アクセスを制御するCIFSやNFSなどの分散ファイルシステムの動作に基づき、読み取りアクセスに対してすでにファイルがロックされているかどうかを判断する。ステップ158における判定が、データファイルがすでにロックされているというものであれば、ステップ160でリーシングモジュール64が、そのロックがリクエストされたリースに対立するかどうかを判断する。(i)リースリクエストが書き込みリースであり、存在するロックが読み取りまたは書き込みロックである場合、あるいは(ii)リースリクエストが読み取りリースであり、存在するロックが書き込みロックである場合は、対立が存在する。
ステップ160の判定が、対立が存在するとの判定である場合、ステップ162において、リーシングモジュール64がリースリクエストを拒否して、データファイルへのアクセスを求めているワークステーションへ読者権を提供する。読者権が与えられると、そのワークステーションに接続したストレージキャッシュがプロセス120を実行して、ストレージキャッシュ30Aによって送信されたリースリクエストの対象のデータファイルに対応するキャッシュ内データファイルがあれば、それを更新する。
ステップ158と160を参照すると、これらのステップのいずれかの判定がNOである場合、ステップ164において、リーシングモジュール62がそのリクエストを許可し、そのメモリにストレージキャッシュ30Aがリースを有する旨と、そのリースの種類を記録し、そのファイルをロックして、ストレージキャッシュ30Bに付けられた他のワークステーションがそのデータファイルへの書き込みアクセスを持つことができないようにする。
ステップ154を再度参照すると、このステップの判定がNOであれば、リーシングモジュール64はステップ158に進む。
ステップ156を再度参照すると、対立がある場合、ステップ166でリーシングモジュール64がリクエストされたリースが読み取りかどうかを判断する。YESであれば、ステップ168で、サーバマネージャ60が、好ましくはプロセス100のステップ108、110、112および114と同様のステップを実行して、キャッシュ30Bに保存されているキャッシュ内データファイルに基づいてサーバ36のデータファイルを更新する。ステップ168が実行されると、キャッシュ30Bがリースリクエストの対象であるデータファイルの書き込みリースを保持する。
ステップ168に続いて、ステップ170では、サーバマネージャ60が、リースリクエストが拒否され、ワークステーションがそのデータファイルへの読者権を有することができるという回答をストレージキャッシュ30Aのキャッシュマネージャ50へ送信する。回答の一部として、サーバマネージャ60は、そのデータファイルのコピィをストレージキャッシュ30Aへ送信するか、あるいは、好ましくはプロセス120のステップ124、126、128および130と同様のステップを実行して、ストレージ30Aと相互作用してストレージキャッシュ30Aに保存されている対応するキャッシュ内データファイルを更新する。翻訳プログラム52は、次いで、読者権だけを有するキャッシュ内データファイルを、データファイルへのアクセスをリクエストしているワークステーションへ供給する。
ステップ166を再度参照すると、判定が、リクエストされたリースが読み取りでないという判定である場合、ステップ172において、リーシングモジュール64がストレージキャッシュ30Bに保持されているデータファイルのリースが読み取りであるかどうかを決定する。YESであれば、ステップ174でリーシングモジュール64が、ストレージキャッシュ30Bの読み取りリースを取り消して、将来リーシングの決定に使用するためにメモリ内にこの情報を保存し、ストレージキャッシュ30Bにこの動作を表すデータを送信してそのリーシングモジュールがメモリを更新し、適当な動作を行うことができるようにする。この読み取りリースの取消しに基づいて、ストレージキャッシュ30Bは、データファイルへのアクセスを求めている関連ワークステーションへ読者権のみを与えることができる。ストレージキャッシュ30Bがそのデータファイルに対する読み取りリースをすでに持っており、関連ワークステーションがこの読み取りリースに基づいてファイルを読んでいる状況では、このワークステーションの読み取り閲覧は継続し、そのユーザは読み取りリースから読者権へ変化した状態を認識しない。上述したとおり、ステップ174に続いてステップ158が実行される。
代替として、ステップ172における判定が、ストレージキャッシュ30Bのリースが読み取りであるとの判定である場合、上述したようにステップ162が実行される。この結果の場合、リクエストされたリースは書き込みアクセス用のものである。
図6は、データファイルへアクセスするためストレージキャッシュに接続したワークステーションによる読み取りまたは書き込み目的のリクエストを許可するか否かを決定するための、本発明に係るストレージキャッシュとキャッシュサーバによって実行されるデータ処理動作を示すハイレベルのフロープロセス180である。例証のために、ワークステーション22Aは、ファイルサーバ36に保存されているデータファイルにアクセスすることを試みている。図6を参照すると、ステップ182では、ストレージキャッシュ30Aのキャッシュマネージャ50は、ワークステーション22Aがファイルサーバ36で保存されているデータファイルへアクセスするリクエストを行ったかどうか判断する。このアクセスリクエストに答えて、ステップ184で、リーシングモジュール54が、ストレージキャッシュ30Aがそのデータファイル用に十分に強いリースをすでに有しているか否かを判定する。表1は、行われたアクセスリクエストの型と、ストレージキャッシュによって保持されているデータファイルについて存在するリースがある場合は、そのリースとの間の関係を示す。表1の項目は、特定のアクセスリクエストに基づいて、ストレージキャッシュによって保持されているデータファイルについて存在するリースがある場合は、そのリースが、そのストレージキャッシュに接続した遠隔システム間でデータファイルの一貫性と整合性が保たれる程度に十分に強いかどうかを表している。
Figure 2006516341
現存するリースがアクセスリクエストに関して十分に強ければ、ステップ186で翻訳プログラム52がストレージ56からキャッシュ内データファイルを取り出し、このキャッシュ内データファイルをイーサネット24Aを介してワークステーション22Aに送信する。この結果、ワークステーション22Aのユーザはアクセスリクエストの種類に従って、読み取りあるいは書き込みの目的でこのキャッシュ内データファイルを開くことができる。例えば、アクセスリクエストが書き込みであれば、ユーザはこのキャッシュ内データファイルについてのデータファイル変更を入力することができ、翻訳プログラム52はこの変更をモニタして、自動的及び継続的に、ストレージモジュール56内に保存されているキャッシュ内データファイルを更新してこれらの変更を取り入れる。
ステップ184における判定が、現存するリースがアクセスリクエストに大して十分に強くない場合は、ステップ188でリーシングモジュール54がキャッシュマネージャ50に新しいリースリクエストをキャッシュサーバ36に送信させる。表1を参照すると、アクセスリクエストと存在するリースの交わる点がNOである、例えば、アクセスリクエストが書き込みであって、ストレージキャッシュにあるデータファイルについての現存するリースが読み取りである場合は、現存するリースは十分に強くない。新規のリースリクエストに基づいて、キャッシュサーバ36が上述したプロセス150と同じあるいは実質的に同様のプロセスを実行し、リースが許可されるか否かを決定する。リーシングモジュール64がリースが許可され得るか否かおよびどのタイプのリースが許可され得るかを決定した後に、サーバマネージャ60はこの情報をストレージキャッシュ30Aに送信する。
ステップ190において、リーシングモジュール54はキャッシュサーバ36によって送信されたリースリクエストに対する応答を受信し処理して、リースが許可されたか否かを判断する。YESであれば、ステップ192において、ストレージキャッシュ30Aのキャッシュマネージャ50と翻訳プログラム52が上述したプロセス120などの処理を実行して、ストレージモジュール56内の対応するキャッシュ内データファイルを更新する。キャッシュマネージャ50は、次いでステップ186を実行する。
ステップ190における判定がリースが許可されていないというものである場合、ステップ194において、リーシングモジュール54が、アクセスリクエストが読み出しであるか否かを判断する。YESであれば、上述したようにステップ192と186が実行される。但し、ステップ186においては、そのキャッシュ内データファイルへの読み取りアクセスが提供される。
ステップ194における判定がNOであれば、ステップ196においてリーシングモジュール54はワークステーション22Aがキャッシュ内データファイルにアクセスすることを防止する。この結果、ネットワーク10を通じてデータファイルの整合性と一貫性が確かなものになる。アクセスリクエストが書き込みであり、データファイル用の読み取りあるいは書き込みリースがストレージキャシュ30Bなどの分散ファイルシステムに接続したもう一つのストレージキャッシュに存在する場合にステップ196が実行される。
図7は、データファイル用のリースを獲得したストレージキャッシュがリースをアクティブに維持する必要がなくなった後にファイルサーバに保存されているデータファイルを更新する、本発明によるストレージキャッシュ及びキャッシュサーバによって実行されるデータ処理動作を示すハイレベルのフロープロセス200を示す。プロセス200の特徴にハイライトを当てる目的で、遠隔システム16Aのワークステーション22Aのみがそれまでにデータファイルへの読み取りあるいは書き込みアクセスを獲得しており、そのワークステーション22Aが、閲覧及び変更をそのオペレーティングシステム上で行っていたアクセスしたキャッシュ内データファイル、つまり、ストレージキャッシュ30Aが書き込みリースもしくは読み取りリースを保持しているデータファイルに対応するアクセスされたキャッシュ内データファイルを閉じた、と仮定する。
図7を参照すると、ステップ202では、キャッシュマネージャ50が翻訳プログラム52とワークステーション22A間のデータ送信をモニタして、ワークステーション22Aがキャッシュ内データファイルをいつ閉じたかを判断する。キャッシュマネージャ50がキャッシュ内データファイルが閉じられたと判断した後、ステップ204で、翻訳プログラム52がワークステーション22Aがキャッシュ内データファイルを変更したかどうかを判断する。これがYESであれば、ステップ206において、翻訳プログラム206とキャッシュマネージャ50が、好ましくはプロセス100で述べたのと同様の差分データ処理を含むファイル更新プロセスを実行して、ワークステーション22Aが閉じたキャッシュ内データファイルに対応するファイルサーバに保存されているデータファイルを更新する。
ステップ206に続いて、やはりキャッシュ内データファイルが閉じられたことを表示する送信を受信したリーシングモジュール54が、ステップ208において、キャッシュマネージャ50にそのデータファイル用のリース開放信号をキャッシュサーバ36に送信させる。更に、ステップ208において、キャッシュサーバ36でこのリース開放信号を受信したとき、リーシングモジュール64がこのデータファイルに関するメモリをリセットする。もし書き込みリースが開放された場合、リセットにより、ストレージキャッシュ30Bなどの別のストレージキャシュがそのデータファイルへの書き込みリースアクセスを得ることができる。
ステップ204を再び参照すると、その判定が、ワークステーション22Aがそのキャッシュ内データファイルにアクセスをしていた間に、キャッシュ内データファイルを変更しなかったというものであれば、ステップ210において、リーシングモジュール54はストレージキャッシュ30Aが対応するデータファイルのリースを保持しているかどうかを判定する。YESであれば、それはキャッシュ30Aがそのデータファイルについての読み取りリースを有していたことを意味し、リーシングモジュール54がステップ208を実行する。代替的に、ストレージキャッシュ30Aがデータファイルについてのリースを有していなかった場合は、そのファイルを開いたワークステーション22Aがリーダである、すなわち、ファイルを読み取ることができるだけであり、ストレージキャシュ30Bなどの別のストレージキャッシュが接続されているワークステーションに対する書き込みアクセス権を得ているため、それ以上のアクションは取られない。
従って、本発明のストレージキャッシングシステムは分散ファイルシステムのデータファイルを管理して、複数の遠隔システムによる整合性と一貫性のある共有リアルタイムアクセスでのファイル取得を可能にさせる。データファイルは、異なる遠隔位置に配置されたユーザによってアクセスすることができ、キャッシュ内データファイルの形式で、あるいはファイルサーバに現在保存されているデータファイルのコピィの形式でユーザに与えられ、それぞれ、データファイルのリアルタイムな、アップデートされたバージョンを成すようにこれまでの変更を全て含んでいる。ストレージキャッシュとキャッシュサーバ間でファイル更新データとデータファイルを圧縮したストリーミングデータとして送信するという好ましい送信方法により、そのデータファイルが物理的にはワークステーションから遠隔に配置されたファイルサーバに保存されていたとしても、ワークステーションのユーザはデータファイルへほぼLAN速度でのアクセスを体験する。
リーシングプロトコルを含む本発明のストレージキャッシングプロトコルシステムの好ましい実施例によれば、ストレージキャッシュに接続したワークステーションは、複数のファイルサーバに保存されたデータファイルにアクセスすることができる。図8は、複数ファイルサーバに保存されている共用リアルタイムデータファイルへのアクセスを管理し、本発明によるネットワーク310内のデータファイルの整合性と一貫性を維持するように動作する好ましいストレージキャッシングプロトコルシステム312を含むネットワーク310を示す図である。図8を参照すると、システム312は、関連するデータセンターシステム320A、320B、および320Cにそれぞれ接続された複数のキャッシュサーバ336A、336Bおよび336Cを具え、またネットワーク10について上述したのと同じ方法で遠隔システム16Aと16Bにそれぞれ接続されているストレージャッシュ30Aおよび30Bを具える。例証のために、各データセンタ320はネットワーク10のデータセンタ20と同様またはほぼ同様に構成されて、同様に機能する。例えば、データセンタ320Aは、ワークステーション322Aと322Bおよびファイルサーバ338Aをキャッシュサーバ336Aとゲートウェイ326Aに接続するイーサネット324Aを有し、ゲートウェイ326Aは通信ネットワーク28に接続されている。
図8を参照すると、各ストレージキャッシュ30は、異なる遠隔地に配置されているような全てのキャッシュサーバ336と通信することができ、またその逆も可能である。更に、キャッシュサーバ336は、本発明のストレージキャッシングプロトコルによって、ストレージキャッシュ30全てからのアクセスリクエストの対象となったデータファイルのコピィを取り出して、これを更新するために、それぞれの関連するファイルサーバ338と通信できる。都合の良いことに、本発明のキャッシュサーバは、標準LANファイル共用プロトコル(NFSおよびCIFS)のクライアントとして動作するためのソフトウエアインフラストラクチュアを有し、これによってネットワーク310内のファイルサーバ338のいずれかに保存されているデータファイルを取得する、またはデータファイルを置き換えるようにキャッシュサーバを容易に設定することができる。ここで、ファイルサーバ338のそれぞれは、どのようなオペレーティングシステムフォーマットを有していてもよい。さらに、キャッシュサーバは、標準ファイルシステムAPIsを用いてローカルファイルシステムのファイルにアクセスしたり、ファイルを置き換えたりすることもできる。
システム312の稼動中に、ワークステーションが読み取り又は書き込みの目的でデータファイルにアクセスを所望し、本発明のストレージキャッシングシステムがアクセスリクエストを適切なキャッシュサーバに正しく多重送信すると、ユーザに与えられているデータファイルのコピィがどこに位置しているかは、ワークステーションのユーザに知られない。言い換えれば、ユーザは物理的にどのデータソースシステムがデータファイルを含んでいるかを知ることもなく、気にもせず、あるいはそれを確かめることなく、共用可能なデータファイル上にアクセスして操作を行うことができる。
更なる好ましい実施例では、各ストレージキャッシュあるいはサーバキャッシュが、ストレージキャッシュとキャッシュサーバの両方として稼動するように構成することができる。従って、ストレージキャッシュとキャシュサーバ装置の単一の組み合わせが、遠隔コンピュータシステムあるいはデータセンターコンピュータシステムと接続され得る。接続した遠隔システムのワークステーションにいるユーザは、ある状況下では、同じ装置内にあるキャッシュサーバとストレージキャッシュが通信することに気がつかないであろう。
更に、本発明のストレージキャッシングプロトコルシステムは、ストレージキャッシュとキャッシュサーバが、各キャッシュ/サーバの組み合わせがネットワーク内の他の各キャッシュ/サーバの組み合わせに接続されているクリークなどの、非常に高度なトポロジーを実装する単純な構成単位として動作し得るので、ファイルサーバとメモリリソースの割り当て、及び共用に多大なフレキシビリティを提供する。
さらに好ましい実施例では、リーシングプロトコルを有する本発明のストレージキャッシングシステムは、ストレージキャッシュに保存され、ワークステーションによる入力で変更されているキャッシュ内データファイル、キャッシュサーバのストレージに保存されているデータファイルのバージョン、あるいはファイルサーバに保存されているデータファイルを用いて、(i)キャッシュサーバとストレージキャッシュ間に設けた通信リンクの切断、(ii)キャッシュサーバかストレージキャッシュのいずれかの故障、(iii)ワークステーションの予期しないリブート、が生じた場合にデータファイル又はキャッシュ内データファイルを更新し、ネットワークにおけるデータファイルの整合性と一貫性を維持する。特筆すべきことに、ファイル更新状態をトラッキングするための追加データは必要が無い。図9は、本発明によってデータファイルの整合性と一貫性を維持し、またデータファイルをバックアップしつつ、リアルタイムのデータファイルへの共用アクセスを管理するストレージキャッシングプロトコルシステム412の更に好ましい実施例を含むネットワーク410のシステム図である。図9を参照すると、システム412は、各々が関連するデータセンターシステム420Aと420Bにそれぞれ接続されているキャッシュサーバ436Aと436Bと、ネットワーク10と同様に遠隔システム16Aに接続されているストレージキャッシュ30Aを具える。例証のために、各データセンターシステム420は、ネットワーク10のデータセンタ20と実質的に同様に構成され動作する。バックアッププロトコルの特徴にハイライトを当てるために、ストレージキャッシュ30Aでキャッシュ内データファイルに行われる変更に基づいてキャッシュサーバ436へファイル更新データを送信するために、ストレージキャッシュ30Aとキャッシュサーバ436A間の通信リンクが設定されており、キャッシュデータファイルがファイルサーバ438Aに保存されているデータファイルに対応し、ファイルサーバ438Aがシステム410についての主データファイルストレージ装置であり、ファイルサーバ438Bがバックアップストレージ装置である、と仮定する。
図9を参照すると、本発明に係るデータファイルのバックアップは、ストレージキャッシュ30Aのキャッシュマネージャ50が、例えば、ゲートウェイ26にネットワーク通信障害を検出したときに開始する。次いで、キャッシュマネージャ50が自動的にかつ定期的に、キャッシュサーバ436Aへの通信リンクを再設定しようとする。ストレージキャッシュ30Aも、中断することなく動作を継続する、すなわち、ワークステーションによって入力されたキャッシュ内データファイルへの変更をモニタし続け、変更を含むキャッシュ内データファイルの現バージョンのみをストレージ56に保存する。
更に、キャッシュマネージャ50は、キャッシュサーバ436Aと436Bが異なる固有のIPルーティングアドレスを有するため、キャッシュサーバ436Bを介して、データセンタ420Bなどのバックアップデータセンタとの通信リンクを開設しようと同時に試みる。このバックアップリンクを設定することができれば、ストレージキャッシュ30Aが、ファイルサーバ420Bで保存されているデータファイルのバックアップコピィを更新するためにプロセス100の実行を続ける。言い換えれば、それぞれのデータセンタがミラーであるという前提の下、ストレージキャッシュ30Aは、キャッシュサーバ436Aへの切断が生じた地点でキャッシュサーバ436Bのデータファイルを更新する処理を続ける。
切断に続いてキャッシュサーバ436Aへの接続が再度設定されると、ストレージキャッシュ30Aは、例えばプロセス100のステップ106、108、110、112および114を実行することによってデータファイルを更新するプロセスを再開する。言い換えると、切断が生じた時にキャッシュサーバ436Aあるいはファイルサーバ438Aに存在したデータファイルのバージョンを表すチェックサムを用いて、ステップ110において差分データを計算する。従って、キャッシュ内データファイルの現バージョンのみが保存され、この現キャッシュ内データファイルが、キャッシュサーバから送信されたチェックサムに基づいてファイルサーバにあるデータファイルのバージョンを更新するのに使用されるため、ストレージキャッシュ30Aは、常にファイル更新データを効果的に保持する。従って、キャッシュデータファイルが更新され続け、ファイルサーバに現在保存されているデータファイルを更新するのに使用されるので、ストレージキャッシングプロトコルシステムでは、有利なことに、切断前のデータファイルの正確な更新状況を追跡したり、あるいは知っていたりする必要がない。
この結果、主データセンタのキャッシュサーバへの通信リンクが切断されると、ストレージキャッシュが複数キャッシュサーバと相互に動作することができ、バックアップデータセンタのキャッシュサーバとの通信リンクを容易に設定することができる。しかしながら、主データセンタにて障害が発生した時や、主データセンタとのリンクもしくはバックアップデータセンタへの新規リンクを再設定しようと試みている間、及び、遂に主データセンタとのリンクが再設定された時にも、ワークステーションのエンドユーザは、通信リンクにおける混乱を経験したり認識したりしない。データファイルの直前の状況は、ストレージキャッシュあるいはキャッシュサーバ内のメモリから自動的に復元され、リブートやシステムの再スタート時に、確実に整合性が常に保持され、保留されているライトバックデータが失われないようにする。
リーシングプロトコルを含む本発明のストレージキャッシングシステムの好ましい実施例では、ストリーミング(リードアヘッド用)、圧縮およびより良いチャンネルを利用するための差分の組み合わせが実行されて、キャッシュヒットを非常によくさせ、実質的にライトバックを可能とし、可能な限り効率のよいキャッシュミスを得る。
更に好適な実施例では、ストレージキャッシュは、ネットワークの切断が生じたときに異なるキャリア上で同じデータセンタ用の複数のIPアドレスに通信リンクを張るよう試みることができる。
別の好ましい実施例では、ストレージキャッシュに故障が生じた後、故障したストレージキャッシュが単に置き換えられ、ただちに新しいストレージキャッシュが遠隔データセンタにあるキャッシュサーバとの接続を開設し、プロセス100と120によってキャッシングと更新を直ちに再度試みる。
本発明の好ましい実施例を説明して図に示したが、本発明の原理からはずれることなく様々な変形をなしうることは当業者には明らかである。
本発明の他の目的と利益は、好ましい実施例の以下の詳細な説明から明らかになる。説明は同様な符号が類似した要素を表示している添付の図面と共に考慮されるべきである。
図1は本発明に係る分散ファイルシステムでのストレージキャッシングプロトコルの実施を示すシステム図である。 図2は、本発明のストレージキャッシュのブロック図である。 図3は、本発明のキャッシュサーバのブロック図である。 図4Aは、本発明による、ストレージキャッシュからキャッシュサーバへ転送されたファイル更新データに基づいてファイルサーバに保存されているデータファイルを更新する方法のフローチャートである。 図4Bは、本発明のキャッシュサーバで転送されたサーバファイル更新データに基づくストレージキャッシュに保存されたキャッシュ内データファイルを更新する方法のフローチャートである。 図5は、本発明によるストレージキャッシュからのリースのリクエストに応じる方法のフローチャートである。 図6は、本発明のストレージキャッシュで受信されたデータファイルへのアクセスリクエストに応じる方法のフローチャートである。 図7は、本発明のデータファイルのリースを開放する方法のフローチャートである。 図8は、本発明の複数のファイルサーバを有する分散ファイルシステムにおけるストレージキャッシングプロトコルの実施を示すシステム図である。 図9は、本発明のデータバックアップを提供するための分散ファイルシステムにおけるストレージキャッシングプロトコルの実施を示すシステム図である。

Claims (22)

  1. 複数の許可されたコンピュータワークステーションによるファイルサーバ内に保存されたデータファイルへの共用アクセスを管理する方法において、当該方法が:
    読み取りあるいは更新のためにキャッシュサーバによってファイルサーバから取り出したデータファイルのコピィを第1のストレージキャッシュへ供給するステップであって、前記第1のストレージキャッシュが少なくとも第1の許可されたコンピュータワークステーションに接続されており、キャッシュに保存されているデータファイルとして前記データファイルのコピィを保存するステップと;
    前記第1のストレージキャッシュにおいて、前記第1のワークステーションによって入力されたデータファイルの変更を前記キャッシュに保存されているデータファイルに組み込むステップと;
    前記第1のストレージキャッシュからのファイル更新データを前記キャッシュサーバへ自動的に送信するステップであって、前記ファイル更新データが前記キャッシュ内データファイルに組み込まれた変更の関数であるステップと;
    キャッシュサーバにおいて、前記ファイル更新データに基づいて前記ファイルサーバに保存されているデータファイルの置き換えバーションを作成するステップと;
    を具えることを特徴とする方法。
  2. 請求項1に記載の方法が更に:
    キャッシュサーバにおいて、前記ファイルが前記第1のストレージキャッシュによって更新のためにアクセスされた場合に、前記第1ストレージキャッシュからの全てのファイル更新データが前記データファイルの置き換えバーションに組み込まれ当該置き換えバーションが前記ファイルサーバに保存されたデータファイルを置き換えるまで、前記ファイルサーバに保存されているデータファイルを他のストレージキャッシュからの更新から保護するステップを具えることを特徴とする方法。
  3. 請求項2に記載の方法において、前記保護ステップが、前記ファイルサーバに保存されているデータファイルをその他のストレージキャッシュからの更新から保護する一方、前記第1のストレージキャッシュからのファイル更新データをキャッシュサーバに送信するステップを具えることを特徴とする方法。
  4. 請求項1に記載の方法が更に:
    前記ファイルサーバで保存されているデータファイルを前記データファイルの置き換えバージョンで置き換えるステップと、
    前記データファイルの置き換えバーションを用いて、第2のストレージキャッシュと許可されたコンピュータワークステーションのうちの少なくとも一つから前記キャッシュサーバへその後送信されたデータファイルへのアクセスのリクエストに応答するステップと、
    を具えることを特徴とする方法。
  5. 請求項1に記載の方法において、前記ファイル更新データがストリーミングデータとして前記キャッシュサーバへ送信されることを特徴とする方法。
  6. 請求項1に記載の方法が更に:
    前記キャッシュサーバへの送信に先立って前記ファイル更新データを圧縮するステップを具えることを特徴とする方法。
  7. 請求項1に記載の方法において、前記ファイル更新データが差分データを具え、当該差分データが前記第1のストレージキャッシュにおけるキャッシュデータファイルと前記ファイルサーバあるいは前記キャッシュサーバに現在保存されているデータファイルのバージョンとの差分を表すことを特徴とする方法。
  8. 請求項1に記載の方法において、前記キャッシュサーバが複数のサブキャッシュサーバを具え、前記データファイルの置き換えバージョンが前記サブキャッシュサーバの少なくとも一つで生成されることを特徴とする方法。
  9. 請求項8に記載の方法において、前記サブキャッシュサーバの第1番目のサーバと前記第1のストレージキャッシュ間の通信接続が故障した場合、前記第1のストレージキャッシュが、前記第1のサブキャッシュサーバとサブキャッシュサーバの第2番目のサーバのうちの少なくとも一つとの通信接続を開設するよう自動的に試みることを特徴とする方法。
  10. 請求項1に記載の方法において、前記ファイル更新データが所定のインターバルで前記キャッシュサーバへ自動的に送信されることを特徴とする方法。
  11. 複数の許可されたコンピュータワークステーションによるファイルサーバ内に保存されているデータファイルへの共用アクセスを管理する方法において、当該方法が:
    キャッシュサーバに接続したファイルサーバに保存されているデータファイルへのワークステーションからのアクセスのリクエストに応じてキャッシュサーバから第1のストレージキャッシュへファイル更新データを自動的に送信するステップであって、前記ファイル更新データが、前記ファイルサーバか又は前記キャッシュサーバに現在保存されているデータファイルと、前記第1のストレージキャッシュに保存されており、前記データファイルに対応するキャッシュ内データファイルとの間の差分の関数であるステップと:
    前記キャッシュ内データファイルが前記ファイルサーバあるいはキャッシュサーバで現在保存されているデータファイルと同じに更新されるように前記第1のストレージキャッシュの前記キャッシュ内データファイルに前記ファイル更新データを組み入れいるステップと:
    を具えることを特徴とする方法。
  12. 請求項11に記載の方法において、前記ファイル更新データがストリーミングデータとして前記第1のストレージキャッシュに送信されることを特徴とする方法。
  13. 請求項11に記載の方法が更に:
    前記ファイル更新データを前記第1のストレージキャッシュへ送信する前に圧縮するステップを具えることを特徴とする方法。
  14. 請求項11に記載の方法において、前記自動的な送信および組み入れステップが、所定のインターバルで実行されることを特徴とする方法。
  15. 複数の許可されたコンピュータワークステーションによるファイルサーバに保存されたデータファイルへの共用アクセスを管理するシステムにおいて、当該システムが:
    前記ファイルサーバに保存されているデータファイルのコピィを取り出すキャッシュサーバと:
    少なくとも第1の許可されたコンピュータワークステーションに接続された少なくとも一の第1のストレージキャッシュを具え、前記第1のストレージキャッシュが前記取り出したデータファイルコピィをキャッシュ内データファイルとしてローカルメモリに保存し、前記第1のワークステーションによって入力されたデータファイルの変更を前記キャッシュ内データファイルに取り込み;
    前記第1のストレージキャッシュがファイル更新データを自動的に生成して、ストリーミングデータとして前記キャッシュサーバへ送信し、前記ファイル更新データが前記キャッシュデータファイルに組み込まれた変更の関数であり;
    前記キャッシュサーバが前記ファイル更新データに基づいて前記データファイルの置き換えバーションを生成し、前記データファイルの置き換えバージョンを用いて第2のストレージキャッシュと許可コンピュータワークステーションのうちの少なくとも一つから前記キャッシュサーバへその後送信されたデータファイルへアクセスするリクエストに応答する;
    ことを特徴とするシステム。
  16. 請求項15に記載のシステムにおいて、前記キャッシュサーバが前記第1のストレージキャッシュに保存されているキャッシュ内データファイルと前記ファイルサーバに現在保存されているデータファイルのバージョン間の差分を表すサーバ更新ファイルデータを生成し、前記キャッシュサーバがこのサーバファイル更新データを前記第1のストレージキャッシュによって送信されたデータファイルリクエストに応じて前記第1のストレージキャッシュに自動的に送信することを特徴とするシステム。
  17. 複数の許可されたコンピュータワークステーションによるファイルサーバに保存されているデータファイルへの共用アクセスの管理システムにおいて、当該システムが:
    前記ファイルサーバに接続するためのキャッシュサーバと;
    前記キャッシュサーバとの通信接続を開設することによって前記ファイルサーバ内に保存されているデータファイルにアクセスする複数のストレージキャッシュと;を具え:
    前記キャッシュサーバがリーシングモジュールを具え、前記リーシングモジュールが、リースが前記データファイルにすでに存在するか否かおよびどのタイプのリースが存在するか、あるいは前期データファイルがすでにロックされているかどうかに基づいて前記ストレージキャッシュの第1番目のキャッシュから受信したデータファイルに対するリースのリクエストを許可するかあるいは拒否するかを決定し、当該決定が、読み取りリースがすでに存在する場合に書き込みリースが許可できず、書き込みリースがすでに存在する場合には読者権のみが許可され、読み取りリースがすでに存在する場合に追加の読み取りリースを許可することができる、という基準に従ってなされ;
    読者アクセス権または読み取りリースが許可された場合、前記キャッシュサーバが前記第1のストレージキャッシュのキャッシュ内データファイルを更新するステップを自動的に実行する;
    ことを特徴とするシステム。
  18. 複数の許可されたコンピュータワークステーションによるファイルサーバに保存されているデータファイルへの共用アクセスの管理システムにおいて、当該システムが:
    前記ファイルサーバに接続するためのキャッシュサーバと;
    前記キャッシュサーバと通信接続を開設することによって前記ファイルサーバ内に保存されているデータファイルにアクセスするための複数のストレージキャッシュであって、各ストレージキャッシュが、関連するワークステーションからデータファイルへのアクセス要求が許可されるべきか拒否されるべきかを制御するリーシングモジュールを含み、前記アクセスリクエストが前記ファイルサーバに保存されているデータファイルを読み取る、あるいは書き込むためのリクエストであり、前記リーシングモジュールが前記リクエスト受信後に以下のステップ:
    前記ストレージキャッシュに存在する前記データファイルのリース状態を判定し、当該リース状態が読み取り、書き込みおよびリースなしのうちの一つであるステップと;
    前記リクエストが読み取りであり、前記存在するリースが読み取りあるいは書き込みである場合、あるいは前記リクエストが書き込みであり、前記リース状態が書き込みである場合に前記リクエストを許可するステップと;
    前記リクエストが読み取りであり前記リース状態がリースなしである場合、あるいは前記リクエストが書き込みであり、前記リース状態が読み取りまたはリースなしである場合に前記キャッシュサーバから新規リースをリクエストするステップと;
    データファイルに対してリースがすでに存在するか、およびどのタイプのリースが存在するか、あるいは前記データファイルがすでにロックされているかに基づいて前記キャッシュサーバでデータファイルにリースを許可するか否かを決定し、読み取りリースがすでに存在する場合に書き込みリースが許可されず、書き込みリースがすでに存在する場合に読者権のみが許可され得る、および、読み取りリースがすでに存在している場合には追加の読み取りリースが許可され得る、という基準によって前記決定がなされるステップと;
    リースが許可されあるいはリクエストが読み取りであり、さもなければ当該リクエストを拒否する場合に、前記ファイルサーバに保存されたデータファイルの現在のバージョンに基づいて前記ストレージキャッシュにおけるキャッシュ内データファイルを自動的に更新するステップと;
    を実行することを特徴とするシステム。
  19. 請求項18に記載のシステムにおいて、前記自動更新ステップが、前記ストレージキャッシュの一つに保存されているキャッシュ内データファイルに基づいて前記ファイルサーバに保存されているデータファイルを更新するステップを具えることを特徴とするシステム。
  20. 請求項18に記載のシステムにおいて、前記ストレージキャッシュの第1番目のキャッシュのリーシングモジュールが、当該リーシングモジュールが、前記ファイルサーバに保存されているデータファイルに対応するキャッシュ内データファイルが、前記ストレージキャッシュの第1番目のキャッシュに接続されたワークステーションでもはや開かれていないことを判定した場合に、以下のステップ:
    前記キャッシュ内データファイルが開かれている間に、前記ワークステーションで行われた入力に基づいて前記キャッシュ内データファイルのコピィが変更されたかどうかを判定するステップと;
    当該データファイルのコピィが変更された場合に、前記キャッシュサーバにファイル更新データを自動的に送信するステップと;
    前記データファイルの全てのリースを開放するステップと
    を実行し、
    前記キャッシュサーバが前記ファイル更新データを用いて、前記ファイルサーバに保存されているデータファイルのバージョンを更新することを特徴とするシステム。
  21. 請求項20に記載のシステムにおいて、前記ファイルの更新が、ストリーミング、圧縮形式で送信されることを特徴とするシステム。
  22. 請求項20に記載のシステムにおいて、前記ファイル更新が、圧縮形式で送信されることを特徴とするシステム。
JP2005518804A 2003-01-17 2004-01-13 分散ファイルシステムを伴うストレージキャッシングの使用方法およびシステム Pending JP2006516341A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US44075003P 2003-01-17 2003-01-17
PCT/US2004/000840 WO2004068469A2 (en) 2003-01-17 2004-01-13 Method and system for use of storage caching with a distributed file system

Publications (1)

Publication Number Publication Date
JP2006516341A true JP2006516341A (ja) 2006-06-29

Family

ID=32825140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005518804A Pending JP2006516341A (ja) 2003-01-17 2004-01-13 分散ファイルシステムを伴うストレージキャッシングの使用方法およびシステム

Country Status (7)

Country Link
US (2) US7103617B2 (ja)
EP (1) EP1584036A4 (ja)
JP (1) JP2006516341A (ja)
CN (1) CN1754155A (ja)
AU (1) AU2004207357A1 (ja)
CA (1) CA2513503A1 (ja)
WO (1) WO2004068469A2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146380A (ja) * 2006-12-11 2008-06-26 Sony Computer Entertainment Inc キャッシュサーバ、キャッシュサーバの制御方法、プログラム及び情報記憶媒体
US7664917B2 (en) 2005-03-24 2010-02-16 Fujitsu Limited Device and method for caching control, and computer product
WO2012101855A1 (ja) * 2011-01-28 2012-08-02 株式会社日立製作所 通信システム、通信装置、通信制御方法
JP2015528165A (ja) * 2013-03-04 2015-09-24 ヴイエムウェア インコーポレイテッドVMware,Inc. ファイル間差分コンテンツ同期
JP2016511486A (ja) * 2013-03-15 2016-04-14 アマゾン・テクノロジーズ・インコーポレーテッド データベースエンジンを備えたデータベースシステム及び別個の分散型ストレージサービス
US9355116B2 (en) 2013-03-04 2016-05-31 Vmware, Inc. Cross-file differential content synchronization using cached patches
US9418072B2 (en) 2013-03-04 2016-08-16 Vmware, Inc. Cross-file differential content synchronization
JP2018173915A (ja) * 2017-03-31 2018-11-08 日本電気株式会社 バックアップシステム、ストレージ装置、データ転送方法及びプログラム

Families Citing this family (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US20020161860A1 (en) * 2001-02-28 2002-10-31 Benjamin Godlin Method and system for differential distributed data file storage, management and access
US8364815B2 (en) 2005-03-18 2013-01-29 Riverbed Technology, Inc. Reliability and availability of distributed servers
CN1754155A (zh) * 2003-01-17 2006-03-29 泰斯特网络公司 使用分布式文件系统进行存储式高速缓存的方法和系统
JP4131514B2 (ja) * 2003-04-21 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、サーバ、データ処理方法及びプログラム
US7409389B2 (en) * 2003-04-29 2008-08-05 International Business Machines Corporation Managing access to objects of a computing environment
US7480699B2 (en) * 2004-01-20 2009-01-20 International Business Machines Corporation System and method for replacing an application on a server
US20050216886A1 (en) * 2004-03-12 2005-09-29 Onfolio, Inc. Editing multi-layer documents
US20050216837A1 (en) * 2004-03-12 2005-09-29 Onfolio, Inc. Unread-state management
US20050216825A1 (en) * 2004-03-12 2005-09-29 Onfolio, Inc. Local storage of script-containing content
US7702678B2 (en) * 2004-03-12 2010-04-20 Microsoft Corporation Search capture
US20050240489A1 (en) * 2004-03-12 2005-10-27 Onfolio, Inc. Retaining custom item order
US7434107B2 (en) * 2004-07-19 2008-10-07 Dell Products L.P. Cluster network having multiple server nodes
US8005710B2 (en) * 2004-09-28 2011-08-23 Microsoft Corporation Methods and systems for caching and synchronizing project data
CN100336343C (zh) * 2004-10-10 2007-09-05 中兴通讯股份有限公司 分布式系统中保持多个数据副本一致性的方法
US7724880B2 (en) 2005-02-07 2010-05-25 Avaya Inc. Networked voicemail
US7321655B2 (en) 2005-02-07 2008-01-22 Adomo, Inc. Caching user information in an integrated communication system
US8175233B2 (en) * 2005-02-07 2012-05-08 Avaya Inc. Distributed cache system
US7330537B2 (en) 2005-02-07 2008-02-12 Adomo, Inc. Integrating messaging server directory service with a communication system voice mail message interface
US8059793B2 (en) 2005-02-07 2011-11-15 Avaya Inc. System and method for voicemail privacy
US8559605B2 (en) 2005-02-07 2013-10-15 Avaya Inc. Extensible diagnostic tool
US8233594B2 (en) 2005-02-07 2012-07-31 Avaya Inc. Caching message information in an integrated communication system
US7808980B2 (en) 2005-02-07 2010-10-05 Avaya Inc. Integrated multi-media communication system
JP4756914B2 (ja) * 2005-05-30 2011-08-24 キヤノン株式会社 遠隔協調作業支援システム及びその制御方法
US20070008940A1 (en) * 2005-06-21 2007-01-11 Gideon Eden Instrumentation network data system
US20070100902A1 (en) * 2005-10-27 2007-05-03 Dinesh Sinha Two way incremental dynamic application data synchronization
US8458295B1 (en) * 2005-11-14 2013-06-04 Sprint Communications Company L.P. Web content distribution devices to stage network device software
KR100825721B1 (ko) 2005-12-08 2008-04-29 한국전자통신연구원 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법
US8122070B1 (en) * 2005-12-29 2012-02-21 United States Automobile Association (USAA) Document management system user interfaces
US8577940B2 (en) * 2006-03-20 2013-11-05 Parallels IP Holdings GmbH Managing computer file system using file system trees
US8117153B2 (en) * 2006-03-28 2012-02-14 Oracle America, Inc. Systems and methods for a distributed cache
WO2008005629A2 (en) * 2006-05-26 2008-01-10 Riverbed Technology, Inc. Throttling of predictive acks in an accelerated network communication system
JP2007328489A (ja) * 2006-06-07 2007-12-20 Fuji Xerox Co Ltd 文書管理装置及びプログラム
US8001385B2 (en) * 2006-06-21 2011-08-16 Intel Corporation Method and apparatus for flash updates with secure flash
CN101127625B (zh) * 2006-08-18 2013-11-06 华为技术有限公司 一种对访问请求授权的系统及方法
US9141627B2 (en) 2006-09-26 2015-09-22 Sony Corporation Providing a user access to data files distributed in a plurality of different types of user devices
US9489456B1 (en) 2006-11-17 2016-11-08 Blue Coat Systems, Inc. Previewing file information over a network
GB0625330D0 (en) 2006-12-20 2007-01-24 Ibm System,method and computer program product for managing data using a write-back cache unit
US8078688B2 (en) * 2006-12-29 2011-12-13 Prodea Systems, Inc. File sharing through multi-services gateway device at user premises
US20080177907A1 (en) * 2007-01-23 2008-07-24 Paul Boerger Method and system of a peripheral port of a server system
US8064576B2 (en) 2007-02-21 2011-11-22 Avaya Inc. Voicemail filtering and transcription
US8160212B2 (en) 2007-02-21 2012-04-17 Avaya Inc. Voicemail filtering and transcription
US8107598B2 (en) 2007-02-21 2012-01-31 Avaya Inc. Voicemail filtering and transcription
US8433693B2 (en) * 2007-04-02 2013-04-30 Microsoft Corporation Locking semantics for a storage system based on file types
US20080243847A1 (en) * 2007-04-02 2008-10-02 Microsoft Corporation Separating central locking services from distributed data fulfillment services in a storage system
US20080270480A1 (en) * 2007-04-26 2008-10-30 Hanes David H Method and system of deleting files from a remote server
US8005993B2 (en) 2007-04-30 2011-08-23 Hewlett-Packard Development Company, L.P. System and method of a storage expansion unit for a network attached storage device
US8488751B2 (en) 2007-05-11 2013-07-16 Avaya Inc. Unified messenging system and method
US20090037915A1 (en) * 2007-07-31 2009-02-05 Rothman Michael A Staging block-based transactions
CN101146127B (zh) * 2007-10-30 2010-06-09 金蝶软件(中国)有限公司 一种分布式系统中客户端缓存更新的方法和装置
US8849940B1 (en) * 2007-12-14 2014-09-30 Blue Coat Systems, Inc. Wide area network file system with low latency write command processing
US8458127B1 (en) 2007-12-28 2013-06-04 Blue Coat Systems, Inc. Application data synchronization
CN101470645B (zh) * 2007-12-29 2012-04-25 华为技术有限公司 一种高速缓存数据恢复的方法和装置
US7921179B1 (en) * 2008-01-15 2011-04-05 Net App, Inc. Reducing latency of access requests in distributed storage systems having a shared data set
CN101499073B (zh) * 2008-01-29 2011-10-12 国际商业机器公司 基于访问频率的连续存储数据的存储管理方法和系统
US8856552B2 (en) * 2008-03-31 2014-10-07 Cleversafe, Inc. Directory synchronization of a dispersed storage network
EP2111011A1 (en) 2008-04-16 2009-10-21 Thomson Telecom Belgium Device and method for sharing files
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8171111B1 (en) * 2008-08-07 2012-05-01 United Services Automobile Association (Usaa) Systems and methods for non-specific address routing
US8706878B1 (en) 2008-08-21 2014-04-22 United Services Automobile Association Preferential loading in data centers
US8271623B2 (en) * 2009-01-15 2012-09-18 Microsoft Corporation Performing configuration in a multimachine environment
US8185566B2 (en) 2009-01-15 2012-05-22 Microsoft Corporation Client-based caching of remote files
US8799409B2 (en) * 2009-01-15 2014-08-05 Ebay Inc. Server side data cache system
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
CN101997902B (zh) * 2009-08-28 2015-07-22 云端容灾有限公司 基于驿站分段传输的远程在线备份系统和方法
EP2363795A1 (en) * 2010-03-05 2011-09-07 Sven Dunker A method and a system for providing a user with a virtual external storage
US8589553B2 (en) * 2010-09-17 2013-11-19 Microsoft Corporation Directory leasing
US8572340B2 (en) 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8577851B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Content aligned block-based deduplication
CN101980198B (zh) * 2010-11-01 2012-06-06 福州星网视易信息系统有限公司 一种实现k歌随身带的方法
US8954446B2 (en) 2010-12-14 2015-02-10 Comm Vault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
CN102333108A (zh) * 2011-03-18 2012-01-25 北京神州数码思特奇信息技术股份有限公司 分布式缓存同步系统及方法
CN102694828B (zh) * 2011-03-23 2016-03-30 中兴通讯股份有限公司 一种分布式缓存系统数据存取的方法及装置
US8244831B1 (en) * 2011-05-23 2012-08-14 Ilesfay Technology Group, LLC Method for the preemptive creation of binary delta information within a computer network
WO2012106923A1 (zh) * 2011-07-25 2012-08-16 华为技术有限公司 对象调整方法、迁移控制设备、节点设备及存储系统
CN102325169A (zh) * 2011-08-22 2012-01-18 盛乐信息技术(上海)有限公司 支持共享和协作的网络文件系统及方法
KR101175505B1 (ko) * 2011-10-06 2012-08-20 한화에스앤씨주식회사 N?스크린 환경에서 네트워크 기반 파일 시스템을 이용한 사용자 데이터 저장환경 제공 시스템
US9122535B2 (en) * 2011-11-22 2015-09-01 Netapp, Inc. Optimizing distributed data analytics for shared storage
US9110807B2 (en) * 2012-05-23 2015-08-18 Sybase, Inc. Cache conflict detection
US20130339310A1 (en) 2012-06-13 2013-12-19 Commvault Systems, Inc. Restore using a client side signature repository in a networked storage system
GB2503266A (en) * 2012-06-21 2013-12-25 Ibm Sharing aggregated cache hit and miss data in a storage area network
AT513242B1 (de) * 2012-07-02 2018-07-15 Frequentis Ag Verfahren zur Synchronisation von Daten in einem Computernetzwerk
US10095663B2 (en) * 2012-11-14 2018-10-09 Amazon Technologies, Inc. Delivery and display of page previews during page retrieval events
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
CN103136080B (zh) * 2013-03-12 2016-07-13 青岛中星微电子有限公司 一种缓存锁定功能的测试方法和装置
US9460296B2 (en) 2013-07-19 2016-10-04 Appsense Limited Systems, methods and media for selective decryption of files containing sensitive data
US9398111B1 (en) * 2013-08-30 2016-07-19 hopTo Inc. File caching upon disconnection
TWI502372B (zh) * 2013-09-27 2015-10-01 Acer Inc 網路儲存系統及檔案快取方法
EP3063629A1 (en) * 2013-10-28 2016-09-07 Longsand Limited Instant streaming of the latest version of a file
JP6244916B2 (ja) * 2014-01-06 2017-12-13 富士通株式会社 演算処理装置,演算処理装置の制御方法及び情報処理装置
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US10042521B1 (en) 2014-05-22 2018-08-07 Amazon Technologies, Inc. Emulation of control resources for use with converted content pages
US9720888B1 (en) 2014-05-22 2017-08-01 Amazon Technologies, Inc. Distributed browsing architecture for the delivery of graphics commands to user devices for assembling a plurality of layers of a content page
US9563929B1 (en) 2014-05-22 2017-02-07 Amazon Technologies, Inc. Caching of content page layers
US11169666B1 (en) 2014-05-22 2021-11-09 Amazon Technologies, Inc. Distributed content browsing system using transferred hardware-independent graphics commands
US9922007B1 (en) 2014-05-22 2018-03-20 Amazon Technologies, Inc. Split browser architecture capable of determining whether to combine or split content layers based on the encoding of content within each layer
US9563928B1 (en) 2014-05-22 2017-02-07 Amazon Technlogies, Inc. Bandwidth reduction through delivery of hardware-independent graphics commands for portions of content pages
CN107111615A (zh) * 2014-05-28 2017-08-29 北京大学深圳研究生院 一种用于分布式存储系统的数据缓存方法及装置
US9454515B1 (en) 2014-06-17 2016-09-27 Amazon Technologies, Inc. Content browser system using graphics commands and native text intelligence
US9373003B2 (en) * 2014-06-27 2016-06-21 Appsense Limited Systems and methods for automatically handling multiple levels of encryption and decryption
CN105338026B (zh) * 2014-07-24 2018-10-09 阿里巴巴集团控股有限公司 数据资源的获取方法、装置和系统
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10313243B2 (en) 2015-02-24 2019-06-04 Commvault Systems, Inc. Intelligent local management of data stream throttling in secondary-copy operations
US9740635B2 (en) * 2015-03-12 2017-08-22 Intel Corporation Computing method and apparatus associated with context-aware management of a file cache
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US10248314B2 (en) * 2015-06-04 2019-04-02 Quest Software Inc. Migrate nickname cache for email systems and devices
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10298680B1 (en) 2015-09-23 2019-05-21 Cohesity, Inc. Dynamic throughput ingestion of backup sources
US10310953B2 (en) 2015-12-30 2019-06-04 Commvault Systems, Inc. System for redirecting requests after a secondary storage computing device failure
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
CN105955983A (zh) * 2016-04-18 2016-09-21 国电南瑞科技股份有限公司 一种用于超大规模电网调控系统的历史采样数据缓存方法
CN105975521A (zh) * 2016-04-28 2016-09-28 乐视控股(北京)有限公司 一种流式数据上传方法及装置
US10846024B2 (en) 2016-05-16 2020-11-24 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US10795577B2 (en) 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
CN106352247B (zh) * 2016-08-31 2018-05-01 哈尔滨圣昌科技开发有限公司 一种管网监测控制系统及采用该系统实现的监测控制方法
CN107885752A (zh) * 2016-09-30 2018-04-06 阿里巴巴集团控股有限公司 数据处理和查询方法及装置
CN106352243B (zh) * 2016-10-20 2018-06-26 山东科技大学 一种基于声波法的输气管道泄露检测系统
CN106802950A (zh) * 2017-01-16 2017-06-06 郑州云海信息技术有限公司 一种分布式文件系统小文件写缓存优化的方法
US10303401B2 (en) 2017-01-26 2019-05-28 International Business Machines Corporation Data caching for block storage systems
US10387383B2 (en) 2017-02-15 2019-08-20 Google Llc Systems and methods for providing access to a data file stored at a data storage system
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
CN110247937B (zh) * 2018-03-07 2021-08-13 中移(苏州)软件技术有限公司 弹性存储系统共享文件管理、访问方法及相关设备
US10976966B2 (en) * 2018-06-29 2021-04-13 Weka.IO Ltd. Implementing coherency and page cache support in a distributed way for files
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US10922018B2 (en) * 2019-03-04 2021-02-16 Verizon Media Inc. System and method for latency aware data access
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11677624B2 (en) 2019-04-12 2023-06-13 Red Hat, Inc. Configuration of a server in view of a number of clients connected to the server
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US20210173811A1 (en) 2019-12-04 2021-06-10 Commvault Systems, Inc. Optimizing the restoration of deduplicated data stored in multi-node replicated file systems
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5611049A (en) * 1992-06-03 1997-03-11 Pitts; William M. System for accessing distributed data cache channel at each network node to pass requests and data
US6026452A (en) * 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5452447A (en) * 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5689706A (en) * 1993-06-18 1997-11-18 Lucent Technologies Inc. Distributed systems with replicated files
US5581704A (en) * 1993-12-06 1996-12-03 Panasonic Technologies, Inc. System for maintaining data coherency in cache memory by periodically broadcasting invalidation reports from server to client
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US5634122A (en) * 1994-12-30 1997-05-27 International Business Machines Corporation System and method for multi-level token management for distributed file systems
US5805809A (en) * 1995-04-26 1998-09-08 Shiva Corporation Installable performance accelerator for maintaining a local cache storing data residing on a server computer
US5594863A (en) * 1995-06-26 1997-01-14 Novell, Inc. Method and apparatus for network file recovery
US6012085A (en) * 1995-11-30 2000-01-04 Stampede Technolgies, Inc. Apparatus and method for increased data access in a network file object oriented caching system
US5740370A (en) * 1996-03-27 1998-04-14 Clinton Battersby System for opening cache file associated with designated file of file server only if the file is not subject to being modified by different program
US5864837A (en) * 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
US5717897A (en) * 1996-09-09 1998-02-10 Unisys Corporation System for coordinating coherency of cache memories of multiple host computers of a distributed information system
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US5878218A (en) * 1997-03-17 1999-03-02 International Business Machines Corporation Method and system for creating and utilizing common caches for internetworks
US6243760B1 (en) * 1997-06-24 2001-06-05 Vistar Telecommunications Inc. Information dissemination system with central and distributed caches
US6122629A (en) * 1998-04-30 2000-09-19 Compaq Computer Corporation Filesystem data integrity in a single system image environment
US6397307B2 (en) * 1999-02-23 2002-05-28 Legato Systems, Inc. Method and system for mirroring and archiving mass storage
US6453404B1 (en) * 1999-05-27 2002-09-17 Microsoft Corporation Distributed data cache with memory allocation model
US6597956B1 (en) * 1999-08-23 2003-07-22 Terraspring, Inc. Method and apparatus for controlling an extensible computing system
US6826580B2 (en) * 2000-01-20 2004-11-30 Emc Corporation Distributed storage resource management in a storage area network
US6587921B2 (en) * 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment
CN1754155A (zh) * 2003-01-17 2006-03-29 泰斯特网络公司 使用分布式文件系统进行存储式高速缓存的方法和系统
JP4257785B2 (ja) * 2003-04-22 2009-04-22 株式会社日立製作所 キャッシュストレージ装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664917B2 (en) 2005-03-24 2010-02-16 Fujitsu Limited Device and method for caching control, and computer product
JP2008146380A (ja) * 2006-12-11 2008-06-26 Sony Computer Entertainment Inc キャッシュサーバ、キャッシュサーバの制御方法、プログラム及び情報記憶媒体
WO2012101855A1 (ja) * 2011-01-28 2012-08-02 株式会社日立製作所 通信システム、通信装置、通信制御方法
JP2015528165A (ja) * 2013-03-04 2015-09-24 ヴイエムウェア インコーポレイテッドVMware,Inc. ファイル間差分コンテンツ同期
US9355116B2 (en) 2013-03-04 2016-05-31 Vmware, Inc. Cross-file differential content synchronization using cached patches
US9418072B2 (en) 2013-03-04 2016-08-16 Vmware, Inc. Cross-file differential content synchronization
US10447780B2 (en) 2013-03-04 2019-10-15 Vmware, Inc. Cross-file differential content synchronization
JP2016511486A (ja) * 2013-03-15 2016-04-14 アマゾン・テクノロジーズ・インコーポレーテッド データベースエンジンを備えたデータベースシステム及び別個の分散型ストレージサービス
JP2018173915A (ja) * 2017-03-31 2018-11-08 日本電気株式会社 バックアップシステム、ストレージ装置、データ転送方法及びプログラム

Also Published As

Publication number Publication date
US7103617B2 (en) 2006-09-05
US20070198685A1 (en) 2007-08-23
CN1754155A (zh) 2006-03-29
WO2004068469A3 (en) 2005-03-03
CA2513503A1 (en) 2004-08-12
US20040186861A1 (en) 2004-09-23
EP1584036A4 (en) 2008-06-18
AU2004207357A1 (en) 2004-08-12
EP1584036A2 (en) 2005-10-12
WO2004068469A2 (en) 2004-08-12

Similar Documents

Publication Publication Date Title
JP2006516341A (ja) 分散ファイルシステムを伴うストレージキャッシングの使用方法およびシステム
US7552223B1 (en) Apparatus and method for data consistency in a proxy cache
US10534681B2 (en) Clustered filesystems for mix of trusted and untrusted nodes
US9357029B2 (en) Access requests with cache intentions
US8566299B2 (en) Method for managing lock resources in a distributed storage system
US8321632B2 (en) System and method for supporting mutable object handling
US7890529B1 (en) Delegations and caching in a distributed segmented file system
US7797275B2 (en) System and method of time-based cache coherency maintenance in user file manager of object-based storage system
US20030028514A1 (en) Extended attribute caching in clustered filesystem
US10042916B2 (en) System and method for storing data in clusters located remotely from each other
US20030078946A1 (en) Clustered filesystem
US20120059854A1 (en) Relocation of metadata server with outstanding dmapi requests
US7593968B2 (en) Recovery and relocation of a distributed name service in a cluster filesystem
US9442850B1 (en) Efficient directory refresh operations in wide area file systems
CN110750507B (zh) 面向dfs的全局命名空间下的持久客户端缓存方法及系统
US6687716B1 (en) File consistency protocols and methods for carrying out the protocols
US7962600B2 (en) WAFS disconnected-mode read-write access

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080416

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080423

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081014