JP6016939B2 - テープ・ドライブ・システム・サーバ、それを含むテープ・アライアンス・システムおよびシステム、ならびにコンピュータ・プログラム - Google Patents

テープ・ドライブ・システム・サーバ、それを含むテープ・アライアンス・システムおよびシステム、ならびにコンピュータ・プログラム Download PDF

Info

Publication number
JP6016939B2
JP6016939B2 JP2014546678A JP2014546678A JP6016939B2 JP 6016939 B2 JP6016939 B2 JP 6016939B2 JP 2014546678 A JP2014546678 A JP 2014546678A JP 2014546678 A JP2014546678 A JP 2014546678A JP 6016939 B2 JP6016939 B2 JP 6016939B2
Authority
JP
Japan
Prior art keywords
tape drive
file
drive system
data
tape
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.)
Active
Application number
JP2014546678A
Other languages
English (en)
Other versions
JP2015507781A (ja
Inventor
エレフテリオウ、エヴァンジェロス、スタヴロス
ハース、ロバート
オースティン、ニルズ
ジェリット、ジェンズ
ソープ、アレクサンダー
サイプ、ハラルド
コルチダス、イオアニス
サラフィハノヴィク、スラヴィサ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2015507781A publication Critical patent/JP2015507781A/ja
Application granted granted Critical
Publication of JP6016939B2 publication Critical patent/JP6016939B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/213Tape storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、テープ・ドライブ・システムに関するキャッシュ・アーキテクチャの分野に関し、具体的にはテープ・ドライブ・システム・サーバに関する。
過去数年にわたるHDD(ハードディスク・ドライブ)技術の著しい進歩にもかかわらず、磁気テープ・システムは、現在の層化ストレージ・インフラストラクチャの不可欠な部分を構成している。テープ技術は、低コスト、バックアップならびに災害復旧目的のためのデータの長期保管、省エネ、セキュリティ、耐用年数、および信頼性を含む、いくつかの重要な利点を提供している。
データがテープ・システムに記録されると、その媒体は受動的なものになる。これは、その媒体が単純にラック内に置かれ、いかなる電力も不要であることを意味する。同様のディスクベースのシステムと比較して、テープベースのアーカイブは約290倍も少ない電力を消費する。セキュリティの点では、データが記録され、カートリッジがアクセス・システムから除去されると、カートリッジがアクティブ・システムに再設置されるまで、データはアクセス不能になる。セキュリティはドライブレベルの暗号化によってさらに強化され、この暗号化はリニア・テープ・オープンの第4世代ドライブ(LTO−4)で導入されたものであり、エンタープライズレベルのテープ・ドライブにおいて標準的なものでもある。テープ媒体は30年以上の耐用年数を有するが、テープ・ハードウェアが急速に進歩し、より大容量のカートリッジへの移行に関連してコスト節約が行われるので、これは滅多に利用されない。信頼性の点では、LTO−4のテープは、SAS(シリアル・アタッチドSCSI)HDDのものより少なくとも1桁優れたビット・エラー率を有する。その上、テープ媒体が取り外し可能であり交換可能であることは、HDDとは対照的に、カートリッジを単純に他のドライブに取り付けることができるので、テープ・ドライブの機械的故障がデータ損失をもたらさないことを意味する。
上記の利点はいずれも、コストと信頼性というテープ・システムの主要な究極の利点に貢献する。ディスクとテープとのコスト節約の推定値は3倍から20倍以上の範囲に及ぶ。
ハードディスクは、データへのランダム・アクセスを可能にし、一般に、ファイル・システムによって管理されたファイル索引を収容している。これらのファイルは、様々なオペレーティング・システムおよびアプリケーションを使用して、アプリケーション・プログラミング・インターフェイス(API)の標準セットによってアクセスすることができる。対照的に、テープは、典型的に「シングリング(shingling)」と呼ばれる技法を使用して線形順序方式で書き込まれ、この技法は逆方向書き込み互換性を提供するが、末尾のみに新しいデータを付加することができ、カートリッジ全体を再利用して書き直した場合にのみ前に書き込まれた領域を再利用できることも意味する。伝統的なテープ・システムでは、所与のカートリッジに書き込まれたファイルの索引は、通常、独自所有のバックアップ・アプリケーションなどのアプリケーションによって管理される外部データベースのみに保持される。データを取り出すために外部データベースにアクセスする必要性があるため、テープ上のデータは、HDDまたはUSB(ユニバーサル・シリアル・バス)ドライブなどの代替記憶方法より可搬性およびアクセス可能性が低いものになる。
このような欠点に対処するために、最近、リニア・テープ・ファイル・システム(LTFS)と呼ばれる新しいファイル・システムがテープ・ドライブ・システムに導入され、標準的かつ精通したシステム・ツールおよびインターフェースを使用してテープへの効率的なアクセスを可能にしている。LTFSは、最近のテープ・ドライブ・フォーマットでサポートされているデュアルパーティション機能を利用することによって実現される。いわゆる索引パーティションは索引を書き込むために使用され、第2のさらに大きいパーティションはデータ自体に使用される。索引パーティションはファイル・システムのディレクトリに使用され、データ・パーティションはファイル・システム内の実際のユーザのファイルを保管するために使用される。個別のパーティションに索引を置くことは、実データに影響を及ぼさずにそれを書き直すことができるので、有利である。LTFSは、POSIX様のファイル・システム・インターフェースをユーザに公開し、索引パーティションでファイル・システム索引を管理し、データ・パーティションにデータを保管する。LTFSソフトウェアによって代表されるファイル・システムはファイルおよびディレクトリをディレクトリ・リストとともにデスクトップ上に表示させ、ファイルは実際にはテープ上に位置する。ファイル・システム・ユーザはテープとの間でファイルを「ドラッグ・アンド・ドロップ」することができ、ディスク・システム用に開発されたアプリケーションを実行することができる。ライブラリ・モードでは、個々のカートリッジを取り付けずに、ライブラリ内のすべてのボリュームの内容をリストしサーチすることができる。これらの特徴はいずれも、テープ、ファイル管理、およびアーカイブのコスト低減に役立ち、ミドルウェア層への依存を解消する。このため、保管されているギガバイト(GB)あたりのコストが低減される。加えて、テープはクロスプラットフォームポータブルになり(LTFSはLinux(R)、Apple Mac OS X(R)、Microsoft Windows(R)上で使用可能である)、プラットフォーム間でのデータの共用を可能にし容易にする。これらの特徴は、ビデオ・アーカイブ、医療画像など、テープに関する重要な新しいユースケースを可能にする。その他のストレージ・ソリューションよりテープの方がコスト上優位であること、テープ・カートリッジ容量の継続スケーリングおよびGBあたりのコストの潜在能力が実証されたこと、ならびにLTFSなどの進歩によって提供されるテープの有用性の増加を考慮すると、テープは、アーカイバル・データ・ストレージ・ソリューションのためのマーケットの爆発的増加に重要な役割を果たすように定められているようである。
しかし、LTFSの場合でも、ファイルはテープ上に順次方式で保管され、このため、読み書きなどの入出力動作中にアクセス時間が無視できないほど長くなる。
米国特許出願第2011/0219184A1号、米国特許出願第2011/0145494A1号、米国特許第7743206B2号、米国特許第7162574B2号、米国特許第7747816B1号、米国特許第5829046号、2010年4月22日発行のBeth Parizeauによる「IBM Launches long term file system (LTFS) forLTO-5 tape management」、および2009年11月12日発行の「」という文書は本発明の分野に関連するものである。
米国特許出願第2011/0219184A1号 米国特許出願第2011/0145494A1号 米国特許第7743206B2号 米国特許第7162574B2号 米国特許第7747816B1号 米国特許第5829046号
2010年4月22日発行のBethParizeauによる「IBM Launches long term file system (LTFS) for LTO-5tape management」 2009年11月12日発行の「Virtual tape library for HSM」
第1の態様によれば、本発明は、
−データ・ファイルを保管するためのキャッシュ・メモリとして使用される不揮発性メモリであって、キャッシュ・メモリの少なくとも一部が、先入れ先出し(First In First Out)ポリシー管理を使用して管理される第1の領域と、最長未使用時間(Least Recently Used)ポリシー管理を使用して管理される第2の領域とを含む、不揮発性メモリと、
−テープ・ドライブ・システム上に保管されたデータ・ファイルと対話するためのファイル・システム・インターフェースと、
−1つまたは複数のリモート・システムが記憶手段あるいはキャッシュ・メモリまたはその両方に保管されたデータを読み書きできるようにするためのインターフェースと
を含む、テープ・ドライブ・システム・サーバであって、
このサーバが、
−テープ・ドライブ・システムおよびキャッシュ・メモリに1つまたは複数のデータ・ファイルを書き込むための1つまたは複数の書き込み要求を1つまたは複数のリモート・システムから受信し、
−テープ・ドライブ・システムおよびキャッシュ・メモリに1つまたは複数のリモート・システムによって書き込むよう指示されたデータ・ファイルに関連付けられた属性を解釈し、
−解釈された属性に応じてリモート・システムによって書き込むよう指示されたデータ・ファイルを保管する
ように構成される、テープ・ドライブ・システム・サーバとして実施される。
諸実施形態では、テープ・ドライブ・システム・サーバは、以下の特徴のうちの1つまたは複数を含むことができる。
−データ・ファイルに関連する属性を解釈するためのキャッシュ管理機能(cache management function)
−属性がキャッシング優先順位クラス(caching-priority class)に対応すること
−第1のキャッシング優先順位クラスが、キャッシュ管理機能により、
−書き込むよう指示されたデータ・ファイルをキャッシュ・メモリの第1の領域に書き込むことと、
−その後、第1の領域に保管されたデータ・ファイルをテープ・ドライブ・システムにコピーすることであって、そのコピーがサーバのバックグラウンド・タスクとして実行されることと、
−コピーが終了した後に、キャッシュ・メモリの第1の領域からデータ・ファイルを追い出すこと
を実行させること、
−第2のキャッシング優先順位クラスが、キャッシュ管理機能により、
−書き込むよう指示されたデータ・ファイルをキャッシュ・メモリの第1の領域に書き込むことと、
−その後、第1の領域に保管されたデータ・ファイルをテープ・ドライブ・システムにコピーすることであって、そのコピーがサーバのバックグラウンド・タスクとして実行されることと、
−第1の領域に書き込まれたデータ・ファイルの第1の読み取り後に、データ・ファイルが1回または複数の追加回数読み取られるかどうかを判断することと、
−データ・ファイルが1回または複数の追加回数読み取られると判断された場合に、キャッシュ・メモリの第2の領域にデータ・ファイルを移動することと、
−データ・ファイルが1回または複数の追加回数読み取られると判断されない場合に、キャッシュ・メモリの第1の領域からデータ・ファイルを追い出すこと
を実行させること、
−第3のキャッシング優先順位クラスが、キャッシュ管理機能により、
−キャッシュ・メモリの第1の領域上で、キャッシュ・メモリの第1の領域に前に保管された1組のデータ・ファイルをプリフェッチすることと、
−プリフェッチされた1組のデータ・ファイルの第1の読み取り後に、プリフェッチされた1組のうちの1つまたは複数のデータ・ファイルが1回または複数の追加回数読み取られるかどうかを判断することと、
−プリフェッチされた1組のうちの1つまたは複数のデータ・ファイルが1回または複数の追加回数読み取られると判断された場合に、キャッシュ・メモリの第2の領域に1組のデータ・ファイルを移動すること
を実行させること、
−第4のキャッシング優先順位クラスが、キャッシュ管理機能により、キャッシュ・メモリの第2の領域上で、キャッシュ・メモリの第1の領域に前に保管された1組のデータ・ファイルをプリフェッチすることを実行させること、
−第5のキャッシング優先順位クラスが、キャッシュ管理機能により、
−任意の所与の時期にアクセスされた最大オフセットまでキャッシュ・メモリの第2の領域内にデータ・ファイルを入れること
を実行させること、
−第6のキャッシング優先順位クラスが、キャッシュ管理機能により、
−データ・ファイルがアクセスされるかどうかとは無関係に、データ・ファイル・キャッシング・クラスが設定されたときに、キャッシュ・メモリの第1の領域内に直ちにデータ・ファイルを入れることと、
−構成可能な時間間隔が満了したときに、キャッシュ・メモリからデータ・ファイルを追い出すこと
を実行させること、
−キャッシング・クラス(cachingclass)がユーザまたはアプリケーションのいずれか一方によって指定され、それに関するキャッシング・クラスがユーザまたはアプリケーションによって指定されていないデータ・ファイルについてキャッシュ管理機能がデフォルト・キャッシング・クラスをさらに割り当てること、
−属性が拡張属性であり、そのフォーマットがデータ・ファイルの所与のデータ・フォーマットと互換性があること、
−複数のユーザによる並行した同時データ書き込みあるいは読み取りまたはその両方を最適化するためにデータ・ファイルに関連する属性がキャッシュ管理機能によって使用されること。
他の態様によれば、本発明は、
−本発明のテープ・ドライブ・システム・サーバと、
−このサーバがそれとのインターフェースが取られているテープ・ドライブ・システムと
を含む、テープ・アプライアンス・システム(tape appliance system)として実施される。
他の態様によれば、本発明は、本発明のテープ・ドライブ・システム・サーバまたは本発明のテープ・アプライアンス・システムを含み、テープ・ドライブ・システムがテープ・ライブラリであるシステムとして実施される。
他の態様によれば、本発明は、コンピュータ可読媒体上に保管され、テープ・ドライブ・システム・サーバにキャッシュ管理機能を実行させるためのコード手段を含む、コンピュータ・プログラムとして実施される。
次に、非限定的な例として、添付図面に関連して、プロセスおよび本発明を実施するプロセスについて説明する。
本発明により他のシステムによってリモートでアクセスされるテープ・アプライアンス・システムのアーキテクチャ図の一例である。 図1に描写されたテープ・アプライアンス・システムのデータ・パス図の一例である。 図1に描写されたテープ・アプライアンス・システムのデータ・パス図の他の例である。 図1〜図3に描写されたテープ・アプライアンス・システムのキャッシングの一例である。
本発明はテープ・ドライブ・システム・サーバについて記述するものである。テープ・ドライブ・システム・サーバは、データ・ファイルを保管するためのキャッシュ・メモリとして使用される不揮発性メモリを含む。キャッシュ・メモリの少なくとも一部は、先入れ先出し(FIFO)ポリシー管理を使用して管理される第1の領域と、最長未使用時間(LRU)ポリシー管理を使用して管理される第2の領域(42)とを含む。テープ・ドライブ・システム・サーバは、テープ・ドライブ・システム上に保管されたデータ・ファイルと対話するためのファイル・システム・インターフェースをさらに含む。テープ・ドライブ・システム・サーバは、1つまたは複数のリモート・システムが記憶手段あるいはキャッシュ・メモリまたはその両方に保管されたデータを読み書きできるようにするためのインターフェースをさらに含む。このインターフェースは、ある機械が他の機械と遠距離通信できるようにする特定の規格に合わせて普通に設計されたものなどの通信インターフェースにすることができる。テープ・ドライブ・システム・サーバは、1つまたは複数の書き込み要求を1つまたは複数のリモート・システムから受信するように構成される。書き込み要求は、テープ・ドライブ・システムおよびキャッシュ・メモリに1つまたは複数のデータ・ファイルを書き込むためのものである。これは、書き込み要求が、テープ・ドライブ・システムのみに1つまたは複数のデータ・ファイルを書き込むこと、あるいはキャッシュ・メモリのみに1つまたは複数のデータ・ファイルを書き込むこと、あるいはテープ・ドライブ・システムとキャッシュ・メモリの両方に1つまたは複数のデータ・ファイルを書き込むことを要求できることを意味する。テープ・ドライブ・システム・サーバは、テープ・ドライブ・システムおよびキャッシュ・メモリに1つまたは複数のリモート・システムによって書き込むよう指示されたデータ・ファイルに関連付けられた属性を解釈するようにさらに構成される。属性を解釈することは、テープ・ドライブ・システム・サーバがその属性に応じてどの特定のアクションを実行すべきかを判断できることを意味する。テープ・ドライブ・システム・サーバは、解釈された属性に応じてリモート・システムによって書き込むよう指示されたデータ・ファイルを保管するようにさらに構成される。書き込むべきデータ・ファイルを保管することは、書き込むべきデータ・ファイルが記録されると言うことに等しい。
したがって、提案されている発明の焦点は、アクセス待ち時間の点のみならず、キャッシング戦略を適用するフレキシビリティの点でも、テープ・ドライブ・システム(たとえば、LTFSに基づくテープ・ストレージ・システム)のパフォーマンスを改善するシステムにある。
そのために、テープ・ドライブ・システム・サーバは、テープ・ドライブ・システムに保管されたデータ・ファイルと対話するためのファイル・システム・インターフェースと協力してキャッシュ・メモリを使用する。キャッシュ・メモリは、記憶手段の上のキャッシング層として使用される。テープ・ドライブ・システム・サーバは、属性の形でキャッシング・ヒントを提供する。属性(拡張属性ともいう)は、ファイル・システム・インターフェースおよびより一般的にはテープ・ドライブ・システム・サーバに関する機能および追加の情報を提供する。その属性の解釈に基づいて、テープ・ドライブ・システム・サーバは、1つまたは複数のリモート・システムによって書き込むよう指示されたデータ・ファイルをどこにどのように保管するかを把握する。したがって、提示されているシステムは、最も最近あるいは頻繁にまたは最も最近かつ頻繁にキャッシュされたファイルへの高速アクセスを可能にするキャッシング戦略を提供するだけでなく、その必要性に応じて、たとえば、システムの作業負荷に応じて、アプリケーションまたはユーザがキャッシング戦略を変更できるように設計されている。
当業者によって認識されるように、本発明の諸態様は、システムまたはコンピュータ・プログラム・プロダクト(computer program product)として実施することができる。したがって、本発明の諸態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアとハードウェアの諸態様を組み合わせる実施形態の形を取ることができ、いずれも本明細書では一般に「回路」、「モジュール」、または「システム」と呼ぶことができる。さらに、本発明の諸態様は、そこにコンピュータ可読プログラム・コードが実施されている1つまたは複数のコンピュータ可読媒体に実施されたコンピュータ・プログラム・プロダクトの形を取ることができる。
1つまたは複数のコンピュータ可読媒体の任意の組み合わせを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体にすることができる。コンピュータ可読記憶媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記のものの任意の適切な組み合わせにすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅的リスト)としては、1つまたは複数のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光学記憶装置(CD−R/W、DVD、BD)、磁気記憶装置、あるいは上記のものの任意の適切な組み合わせを含むであろう。本明細書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによりあるいはそれに関連して使用するためのプログラムを収容または保管することができる任意の有形媒体にすることができる。
コンピュータ可読信号媒体は、たとえば、ベースバンド内でまたは搬送波の一部として、そこに実施されたコンピュータ可読プログラム・コードを含む伝搬データ信号を含むことができる。このような伝搬信号は、電磁、光、またはそれらの任意の適切な組み合わせを含むがこれらに限定されない様々な形のうちのいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイスによりあるいはそれに関連して使用するためのプログラムを通信、伝搬、または輸送することができる任意のコンピュータ可読媒体にすることができる。
コンピュータ可読記憶媒体上に実施されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、あるいは上記のものの任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体を使用して伝送することができる。
本発明の諸態様のための動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語あるいは「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで作成することができる。プログラム・コードは、完全にユーザのコンピュータ上で、一部分はユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、一部分はユーザのコンピュータ上でしかも一部分はリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行することができる。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してリモート・コンピュータがユーザのコンピュータに接続される場合もあれば、(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに接続が行われる場合もある。
本発明の諸態様は、本発明の諸実施形態による方法、装置(システム)、およびコンピュータ・プログラム・プロダクトの流れ図あるいはブロック図またはその両方に関連して以下に記載されている。流れ図あるいはブロック図またはその両方の各ブロックおよび流れ図あるいはブロック図またはその両方内の複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実現可能であることが理解されるであろう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに提供し、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサにより実行された命令が流れ図あるいはブロック図またはその両方の1つまたは複数のブロックに指定された機能/行為を実現するための手段を作成するような機械を生産することができる。
また、これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に保管された命令が流れ図あるいはブロック図またはその両方の1つまたは複数のブロックに指定された機能/行為を実現する命令を含む製造品(article of manufacture)を生産するような特定の方法で機能するよう、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスに指示することができるコンピュータ可読媒体に保管することもできる。
また、コンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイス上にロードし、コンピュータまたはその他のプログラマブル装置上で実行された命令が流れ図あるいはブロック図またはその両方の1つまたは複数のブロックに指定された機能/行為を実現するためのプロセスを提供するようなコンピュータで実行されるプロセスを生産するように、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイス上で一連の動作ステップを実行させることもできる。
図面内のブロック図は、本発明の様々な諸実施形態によるシステム、方法、およびコンピュータ・プログラム・プロダクトについて可能な実現例のアーキテクチャ、機能、および動作を例示している。この点に関しては、流れ図またはブロック図内の各ブロックは、指定の論理機能(複数も可)を実現するための1つまたは複数の実行可能命令を含む、コードのモジュール、セグメント、または一部分を表すことができる。また、いくつかの代替実現例では、ブロック内に示された機能は図面内に示された順序から外れて行われる可能性があることに留意されたい。たとえば、連続して示されている2つのブロックは、関係する機能次第で、実際にはほぼ同時に実行される場合もあれば、ときには逆の順序で実行される場合もある。また、ブロック図あるいは流れ図またはその両方の各ブロックおよびブロック図あるいは流れ図またはその両方内の複数ブロックの組み合わせは、指定の機能または行為を実行する特殊目的ハードウェアベースのシステムあるいは特殊目的ハードウェアとコンピュータ命令との組み合わせによって実現可能であることも留意されるであろう。
図1は、1つまたは複数のリモート・システム110、120によってリモートでアクセスされるテープ・アプライアンス・システム100の一実施形態のアーキテクチャ図である。本発明の一実施形態によるテープ・アプライアンス100は、テープ・ドライブ・システム・サーバ102と、テープ・ドライブ・システム・サーバがそれとのインターフェースが取られているテープ・ドライブ・システム104とを含む。
テープ・ドライブ・システム104は、所定のデータ・フォーマットによるデータ・ファイルを保管することができる。テープ・ドライブ・システムは、多数のテープ・ドライブまたはヘッドをサポートすることができる、スタンドアロン・テープ・ドライブ(またはテープ・ライブラリ)などの順次アクセス媒体にすることができる。スタンドアロン・テープ・ドライブは、1つまたは複数のテープ・カートリッジ上のリニア・テープについて操作するために使用される。テープ・ドライブに保管されたデータの所定のデータ・フォーマットは、ファイル・コンテンツ・データと関連のファイル・メタデータを保持する、LTFSフォーマットのデータ・フォーマットを使用することができる。したがって、テープ・ドライブに保管され、LTFSフォーマットを使用して書き込まれたデータは、LTFSフォーマットを理解できるその他のシステム110、120と交換することができる。
図1の実施形態によるテープ・ドライブ・システム・サーバ102は、データ・ファイルを保管するためのキャッシュ・メモリとして使用される不揮発性メモリ106を含む。キャッシュ・メモリは、作業負荷の時間的および空間的局所性を活用して、ストレージ・システムのパフォーマンスを最適化する。キャッシュ・メモリは読み書きキャッシュである。キャッシュ・メモリは、そのデータに関する将来の要求に対してより高速に対応できるように、データを透過的に保管することによりパフォーマンスを改善する。要求されたデータがキャッシュ内に収容されている場合、すなわち、キャッシュ・ヒットが発生した場合、単にキャッシュを読み取るだけでこの要求に対応することができ、これはバックエンド・ストレージ・デバイスから読み取るより比較的高速である。そうではない場合、キャッシュ・ミスが発生し、より低速のバックエンド・ストレージ・デバイスからデータをフェッチしなければならない。
キャッシュ・メモリは不揮発性メモリであり、有利なことにテープ・ドライブ・システムがオフになったときにそこに保管されているファイルを保持することができる。キャッシュ・メモリとして使用される不揮発性メモリは、ハードディスク・ドライブあるいはソリッドステート・ドライブまたはその両方のアレイを含むことができる。大容量HDDあるいはSSDまたはその両方のアレイは、RAID(冗長ディスク・アレイ)方式で構成することができる。キャッシュ・メモリ・コントローラは、サーバのオペレーティング・システムに対して単一論理ボリュームを公開し、したがって、キャッシュ・メモリの管理をより容易にすることができる。また、ext3、ext4、またはNTFSなどを含むがこれらに限定されない従来のディスク・ファイル・システムは、その論理ボリュームにインストールされ、ディスク・アレイに対するすべての入出力動作に使用される。キャッシュ・メモリ、すなわち、ディスク・アレイ全体は、キャッシング専用であり、システムの他のコンポーネントと共用されることはない。
キャッシュ・メモリはファイル・レベルのキャッシュ・メモリにすることができる。代わって、キャッシュ・メモリはブロックレベルのキャッシュ・メモリにすることもできる。この場合、アレイのHDDあるいはSSDまたはその両方は、ファイル・システムのないロウ・デバイス(raw device)として使用され、その後、ボリュームが作成され、オペレーティング・システムがこれらのボリュームに接続し、それを個別ハード・ドライブとして使用する。ブロックレベルのキャッシュ・メモリは、ファイル・ストレージ、データベース・ストレージ、仮想計算機ファイル・システム(VMFS)ボリュームなどを含む、ほとんどすべての種類のアプリケーションに使用可能である。
次に、図4を参照し、図1に描写されているテープ・ドライブ・システム・サーバ102のキャッシュ・メモリの一例について述べる。キャッシュ・メモリは不揮発性ストレージであり、したがって、キャッシュ・メモリは、変更されたデータと未変更のデータの両方をファイル・レベルで安全に保持することができる。
キャッシュ・メモリ106の少なくとも一部は、第1の領域または空間40と第2の領域または空間42とを含む。第1および第2の領域は、記憶手段に初めから保管されているファイルを保管するように適合されている。第1および第2の領域におけるファイルの保管は、キャッシュ容量管理に関する1組のルールにより実行される。
第1の領域はFIFO(先入れ先出し)領域40であり、第2の領域はLRU(最長未使用時間)領域42である。これは、キャッシュ・メモリの少なくとも一部がFIFOキャッシュとLRUキャッシュに分割されると言うことに等しい。FIFO領域は先入れ先出し置き換えポリシーを使用して管理され、LRU領域は最長未使用時間ポリシーを使用して管理される。FIFO領域は典型的に、キャッシュに書き込まれた後に多くても1回だけアクセスされるファイルを保持するようになっている。これは、たとえば、バックアップ書き込み検証プロセスのケースである。LRU領域は典型的に、近い将来に複数のアクセスが行われる確率が高いファイルをキャッシュするようになっている。
図4に示されているように、ユーザ書き込みは通常、そのデータをFIFOキャッシュに書き込み、ユーザ読み取りは通常、LRUキャッシュによって対応される。しかし、これは必要条件ではなく、実際には、受信データが近い将来に複数回アクセスされることをユーザがヒントとして示した場合、そのデータもLRUキャッシュに書き込まれる可能性がある。これに対して、要求されたデータがそこにあることが判明した場合、FIFOキャッシュからユーザ読み取りに対応することができる。
同時に、任意選択で、その作業負荷次第でキャッシュの2つの領域間でファイルが移動し、実際には、キャッシュ・メモリは記憶容量サイズが限られており、それを分割してFIFOおよびLRUセクションにするには特定レベルの制御権を必要とする。換言すれば、キャッシュ容量は1組のルールにより管理される。キャッシュ容量管理に関する以下のルールを使用することができる。
−FIFO領域がいっぱいである場合、最も古いファイルが追い出される。ファイルをキャッシュから追い出すには、まずそれをテープにコピーする必要がある可能性がある。
−LRU領域がいっぱいである場合、アクセス数が最も少なく、最終アクセス時間が最も古いファイルが追い出される。ファイルをキャッシュから追い出すには、まずそれをテープにコピーする必要がある可能性がある。
−FIFO領域がいっぱいで、LRU領域が少なくとも50%の空き容量を有する場合、FIFO領域はLRU領域の容量の30%を獲得する。
−LRU領域がいっぱいで、FIFO領域が少なくとも50%の空き容量を有する場合、LRU領域はFIFO領域の容量の30%を獲得する。
前述のパーセンテージは設計パラメータであり、特定のアプリケーションおよび作業負荷次第で変化する可能性があることを理解されたい。
図1に戻って参照すると、テープ・ドライブ・システム・サーバ102は、少なくとも1つのコンピュータ処理装置(CPU)1000またはプロセッサと、典型的にダイナミック・ランダム・アクセス・メモリ(DRAM)であるメイン・メモリ1002とを含むことができる。CPUおよびDRAMはバス1004に接続される。このバスは、LCDモニター1008などのディスプレイに接続されるディスプレイ・コントローラ1006に接続することができる。ディスプレイは、テープ・アプライアンス・システム100に関する情報を表示するために使用することができる。バスは、任意のキーボード/マウス・コントローラ1010を介してキーボード1012およびマウス1014にさらに接続することができる。また、このバスは、たとえば、イーサネット(登録商標)プロトコルに適合する通信コントローラ1014に接続することもできる。通信コントローラは、テープ・ドライブ・システム・サーバをネットワーク、たとえば、ネットワーク130と物理的に接続するために使用される。また、このバスは、IDE/SATA、SCSI、ファイバ・チャネル、ファイバ・チャネル・オーバ・イーサネット(FCoE)、またはiSCSIコントローラなどのデバイス・コントローラ1018によりハードディスク104またはDVD1020などのストレージ・デバイスにも接続される。
テープ・ドライブ・システム・サーバは、テープ・ドライブ・システム104に保管されたデータ・ファイルと対話するためのファイル・システム・インターフェースをさらに含む。ファイル・システム・インターフェースは、テープ・ドライブ・システムと通信し、そこに保管されたデータ・ファイルを管理する、たとえば、データ・ファイルを書き込むかまたは読み取るための能力をテープ・ドライブ・システム・サーバに提供する。このため、テープ・ドライブ・システム・サーバ102は、そのために公開されている根本的なテープ容量をテープ・ドライブ・システム・サーバが活用できるように、ファイル・システム・インターフェースを介してテープ・ドライブ・システム104に取り付けることができる。ファイル・システム・インターフェースは、テープ・ドライブ・システム・サーバ上で実行されるLTFSソフトウェアにすることができる。
テープ・ドライブ・システム・サーバは、Linux(商標)オペレーティング・システムなどを含むがこれに限定されないオペレーティング・システムを実行する。このサーバはネットワーク130に接続され、それによりリモート・ネットワーク・ユーザ120およびアプリケーション130は記憶手段(たとえば、LTFSファイル・システム)を取り付け、データを直接保管するかまたは記憶手段からデータを取り出すことができる。
次に、図3を参照すると、図1に描写されているテープ・ドライブ・システム・サーバ102のデータ・パス図の一例が示されている。テープ・ドライブ・システム・サーバ102はネットワーク・インターフェース、たとえば、図1の通信コントローラ1016を含む。別の言い方では、テープ・ドライブ・システム・サーバは、1つまたは複数のリモート・システム(110、120)が記憶手段あるいはキャッシュ・メモリまたはその両方に保管されたデータを読み書きできるようにするためのインターフェースを含む。
図3では、テープ・ドライブ・システム104に対するすべての入出力動作がLTFSファイル・システム動作として実現されている。たとえば、図3に示されているように、テープ・ドライブ・システムへのクライアントの書き込みは必ず、最後には、特定のオフセットから始まり、特定のバイト数の長さを有するLTFSファイルへの書き込み動作になる。第1のシナリオでは、リモート・ユーザ110は、テープ・ドライブ・システム・サーバへのNFSマウントを使用して、「/ltfs/greetings.txt」というファイルへの書き込みを発行する。この書き込み要求は、ファイル・システム・インターフェースLTFS22にその要求を渡すテープ・ドライブ・システム・サーバによって管理される。次に、LTFSは、このファイルがすでにHDDキャッシュ106にキャッシュされていることに気付き、書き込みはHDD上で吸収され、「/ltfs/greetings.txt」はHDDファイル・システム上でext3ファイルになる。異なるシナリオでは、他のリモート・ユーザ120は、FTPプロトコルを使用して、テープ・アプライアンス・システム上のファイルから数バイトを読み取りたいと希望する。このユーザはFTP取得要求を発行し、テープ・ドライブ・システム・サーバはLTFSファイル・システム・インターフェースを介してその要求をLTFS読み取り要求に変換する。LTFSファイル・システム・インターフェースはキャッシュ・メモリ106内で要求されたファイルを捜すが、それがそこにないことに気付く。したがって、LTFSファイル・システム・インターフェースは要求されたファイルをテープ・ドライブ・システム106から読み取り、最初の100バイトをユーザに返す。その時点で、LTFSはHDD106上にそのファイルをキャッシュするかどうかを選択することができる。
次に、図2を参照すると、アプリケーションまたはクライアントなどのリモート・システムと図1に描写されているテープ・ドライブ・システム・サーバとの間のデータ・パス図の他の例が示されている。テープ・ドライブ・システム・サーバ102は、たとえば、ネットワークを介して、アプリケーション110またはクライアント120などのシステムによってリモートでアクセスされる。その他のシステムは、GPFS(汎用並列ファイル・システム)クラスタまたはNAS(ネットワーク接続ストレージ)ファイラなどのファイル・システム・サーバである可能性がある。
リモート・システムは、ネットワーク・ファイル・システムを使用してそれを取り付けることあるいはFTP(ファイル転送プロトコル)プロトコルまたはSSH(セキュア・シェル)プロトコルを使用してそれに対してデータを読み書きすることのいずれかにより、テープ・ドライブ・システム・サーバにアクセスすることができる。テープ・ドライブ・システム・サーバ102にリモートでアクセスするために任意のその他のプロトコルを使用できることを理解されたい。
テープ・ドライブ・システム・サーバ102は、図2に示されているように適切なインターフェース23、24、25、26、27を提供し、その結果、テープ・ドライブ・システム・サーバを使用して多数のアプリケーション110に必要なストレージを収容することができる。図2では、テープ・ドライブ・システム・サーバは、たとえば、多数のテープ・ドライブなどのテープ・ドライブ・システム(104)に保管されたデータ・ファイルと対話するためにファイル・システム・インターフェースを含む。テープ・ドライブに保管されたファイルを管理するためのアプリケーションの例は以下の通りであるが、これらに限定されない。
1)ネットワークによりテープ・ドライブ・システム・サーバに接続されたGPFS(またはその他の)ファイル・システムのバックアップ。GPFSファイル・システム全体あるいは個別ディレクトリまたはファイル・セットは、テープ・アプライアンス・システムにバックアップすることができる。全バックアップまたは増分バックアップを行うことができ、同じかまたは異なるテープ・カートリッジ上で複数のバージョンをサポートすることができる。さらに、同じかまたは異なるファイル・システム/クラスタから発生した複数のバックアップを同じアプライアンスでサポートすることができる。有利なことに、LTFSは、バックアップをテープ・カートリッジ上で自立型かつ自己記述にすることができ、ユーザが集中型バックアップ・サーバを配備して維持する必要性を省くことができる。加えて、GPFSのファイル属性はLTFS上に保存することができ、LTFSに対する何らかの変更によって施行することもできる。バックアップ・プロセスは、GPFSノードまたはテープ・アプライアンス自体のいずれか一方により調整することができ、以下のステップで概説する。
a.クラスタ内で実行されるGPFSポリシーは、最後のバックアップ以降に変更されたファイルを識別する。
b.このポリシーはバックアップを実行するために外部プロセスを呼び出す。
c.バックアップ・プロセスは、GPFSファイル属性を保存しているアプライアンスにファイルをコピーする。
d.コピー動作は、SSHによりまたはNFS/CIFSマウントを使用して実行することができる。
e.プロセスが終了すると、テープ・カートリッジを取り外してボールトに入れるかまたは任意の他のシステムに移動することができる。
ファイルは、同じかまたは任意の他のテープ・システムでそのテープを読み取るだけでバックアップから復元することができ、LTFSによって提供されたファイル・システム・インターフェースを強化することができ、これによりGPFSと同じ名前空間を保持することができる。これは、ファイラからバックアップされたどのファイルもLTFS内の名前(パスおよびファイル)を有することができ、それにより簡単なリカバリを可能にすることを意味する。
2)GPFS(またはその他の)ファイル・システムからのファイルの移行、すなわち、ストレージ階層内の1つの層としてテープ・ドライブ・システムを使用すること。ユーザはユーザ指定のGPFSポリシーの形でファイルまたはディレクトリに関する移行基準を指定し、システムは、前述の指定の基準に適合するファイルをテープ・ドライブ・システムに移行することによりシームレスにデータをテープ上に置く。テープ・ドライブ・システムに移行するそれぞれのファイルについて、そのファイルはファイル・スタブ(プレースホルダ)によってGPFS内で置き換えられる。それにより、ファイルはGPFS名前空間内に存続し、ユーザおよび既存のアプリケーションによって通常のファイルとしてアクセスすることができる。移行されたファイルにアクセスすると、ファイルはテープ・ドライブ・システムから再呼び出しされる。
3)そのファイラからLTFSに古いスナップショットをコピーし、より古いスナップショットをそのファイラから削除するためのNASファイラ(たとえば、NetAppファイラ)との統合。その利点は、典型的により多くの記憶容量を必要とする古いスナップショットがテープ・ドライブ・システムに保管され、NASファイラによって提供されたNFSまたはCIFSなどのNASインターフェースにもすることができるLTFSファイル・システム・インターフェースによりシームレスにアクセスできることである。
4)メディア管理(MAM)では、媒体は同じデータ・ストリームの複数のバージョンを収容している場合が多い。同じコンテンツの低解像度バージョンであるいわゆる「プロキシ」とともにオーディオビデオ・ストリームの高精細バージョンを有することは一般的な慣例である。再生ストリームを生成するかまたは直接再生するために高精細の元のストリームに後で適用されると思われるカット・リストを生成するために、コンテンツを編集/カットするためにより頻繁に使用されるので、プロキシに関係するファイルをキャッシュすることは非常に有益になるであろう。
5)保管されているファイルのメディア管理、バージョン管理、ボールト、フォーマット・チェックおよびリカバリを含むがこれらに限定されない、テープ・アプライアンス・システムをリモートで管理するためのグラフィカル・ユーザ・インターフェース。
このため、テープ・ドライブ・システム・サーバは、キャッシュ・メモリとして使用され、単一論理アドレス空間になるように論理的に構成可能な不揮発性メモリ(たとえば、HDD/SDDアレイ)と、テープ・ドライブ・システム(たとえば、図1に示されているように、並行して動作する1つまたは複数のテープ・ドライブ)に保管されたデータ・ファイルと対話するためのファイル・システム・インターフェースと、1つまたは複数のリモート・システムが記憶手段あるいはキャッシュ・メモリまたはその両方に保管されたデータを読み書きできるようにするためのインターフェースとを含む。
テープ・ドライブ・システム・サーバは、テープ・ドライブ・システムおよびキャッシュ・メモリに1つまたは複数のデータ・ファイルを書き込むための1つまたは複数の書き込み要求を1つまたは複数のリモート・システムから受信するようにさらに構成される。実際に、書き込み要求は、1つまたは複数のリモート・システムが記憶手段あるいはキャッシュ・メモリまたはその両方に保管されたデータを読み書きできるようにするためのインターフェースによって受信される。したがって、このインターフェースは、ある機械が他の機械と遠距離通信できるようにする特定の規格に合わせて普通に設計されたものなどの通信インターフェースにすることができる。
加えて、テープ・ドライブ・システム・サーバは、テープ・ドライブ・システムおよびキャッシュ・メモリに1つまたは複数のリモート・システムによって書き込むよう指示されたデータ・ファイルに関連付けられた属性を解釈するように構成される。この方法により、キャッシング・ヒントが属性の形で提供される。典型的に、属性は、データ・ファイルの所与のデータ・フォーマットと互換性のあるフォーマットを有する拡張属性である。属性は、POSIX規格に応じてファイルおよびディレクトリ・ベースでファイル・システム・インターフェースによってサポートされる。有利なことに、これにより、ファイル・システム・インターフェース(たとえば、LTFSファイル・システム)による属性の解釈をより容易なものにすることができる。
属性は、実際には、ユーザ120またはアプリケーション110によって選択され、有利なことに、これによりユーザまたはアプリケーションは拡張属性の形でキャッシング・ヒントを提供することができる。したがって、属性はキャッシング優先順位クラスに対応する。別の言い方では、ユーザまたはアプリケーションは、所与のデータ・ファイルについてキャッシング優先順位を選択することができる。属性の名前はすでにキャッシング優先順位情報を含むことができる。属性の名前は好ましくは事前定義されている。
さらに、テープ・ドライブ・システム・サーバは、解釈された属性に応じてリモート・システムによって書き込むよう指示されたデータ・ファイルを保管するようにさらに構成される。このため、書き込むよう指示されたデータ・ファイルのキャッシングは属性の値(たとえば、属性の名前)に基づいて実行される。
キャッシング優先順位選択はいつでもユーザによって提供することができ、ファイルに関するキャッシング優先順位選択は時間の経過につれて変化する可能性があることを理解されたい。たとえば、同じユーザあるいはアプリケーションまたは異なるユーザ/アプリケーションが新しいヒントまたはキャッシング優先順位を提供する可能性がある。キャッシュ管理は、次にアクセスされたときまたはユーザ/アプリケーションが明示的に要求した場合にはそれ以前に、ファイルに関するそのキャッシング決定を変更することになる。これは、有利なことに、テープ・ドライブ・システム・サーバの作業負荷などのパラメータ次第で、ユーザまたはアプリケーションによって変更可能なキャッシング優先順位のフレキシビリティを改善するものである。
その最も単純な形では、キャッシュ・ヒントは特定のファイルに関するキャッシュ優先順位である。デフォルト・キャッシュ優先順位クラス(たとえば、クラス3)は、たとえば、ユーザまたはアプリケーションが指定しない場合に、テープ・ドライブ・システム・サーバによって想定できることを理解されたい。
次に、キャッシング優先順位クラスおよびそのセマンティクスの例について述べる。それぞれの属性の解釈は典型的にキャッシュ管理機能によって実行することができ、解釈された属性に応じて書き込むよう指示されたデータ・ファイルの保管もキャッシュ管理機能によって実行することができる。
第1のキャッシング優先順位クラス(クラス1ともいう)では、キャッシュ管理機能により、データ・ファイルを1回書き込むことができ、データ・ファイルはFIFOキャッシュに書き込まれ、バックグラウンドで直ちにテープにコピーされる。コピーが終了すると、ファイルはキャッシュから廃棄される。別の言い方では、書き込むよう指示されたデータ・ファイルはキャッシュ・メモリの第1の領域に書き込まれ、その後、第1の領域からテープ・ドライブ・システムにコピーされる。そして、コピーが終了した後に、データ・ファイルはキャッシュ・メモリの第1の領域から追い出され、すなわち、データ・ファイルはキャッシュ・メモリのFIFO領域から削除される。コピーは有利なことにサーバのバックグラウンド・タスクとして実行される。これにより書き込み中にキャッシングを行うことが可能になり、特にテープ・ライブラリが使用中であるときに、データ・ファイルをまずキャッシュ・メモリに書き込み、バックグラウンドで非同期的にテープに移動することができる。したがって、書き込みは、書き込みを開始する前にテープ・ドライブ・システムのテープに対する進行中の読み取りが終了するのを待つ必要がない。
第2のキャッシング優先順位クラス(クラス2ともいう)では、キャッシュ管理機能により、データ・ファイルを書き込み、次にデータ・ファイルを1回読み取ることができる。この目的のために、データ・ファイルはFIFOキャッシュに書き込まれ、バックグラウンドでテープにコピーされる。データ・ファイルに対する次の読み取り動作が行われるまで、ファイルはFIFOキャッシュに保持される。第1の読み取り動作後にファイルが複数回読み取られる場合、ファイルはキャッシュ・メモリのLRUキャッシュに移動する。最初の読み取り動作後にファイルが一定の期間内にまたはキャッシュ空間を再利用する必要が生じるまでにまったく読み取られない場合、ファイルはキャッシュから追い出される。他の言い方では、クラス2では、キャッシュ管理機能はキャッシュ・メモリの第1の領域に書き込むよう指示されたデータ・ファイルを書き込み、その後、第1の領域に保管されたデータ・ファイルをテープ・ドライブ・システムにコピーし、そのコピーはサーバのバックグラウンド・タスクとして実行される。次に、キャッシュ管理機能は、第1の領域に書き込まれたデータ・ファイルの第1の読み取り後に、データ・ファイルが1回または複数の追加回数読み取られるかどうかを判断する。データ・ファイルが1回または複数の追加回数読み取られると判断された場合に、データ・ファイルはキャッシュ・メモリの第2の領域に移動する。これに反して、データ・ファイルが1回または複数の追加回数読み取られると判断されない場合に、データ・ファイルはキャッシュ・メモリの第1の領域から追い出される。このため、クラス2は有利なことに書き込み中にキャッシングを可能にし、その後の読み取りのためのキャッシングを可能にし、書き込み検証動作をサポートする。テープ・ドライブ・システム上に置かれているが、依然として何らかのユーザによって規則正しくアクセスされるデータ・ファイル(たとえば、アーカイブの最も頻繁に使用される部分)はキャッシュ・メモリに保管される。したがって、これらのアクセスはテープの高レイテンシで悪化することはない。その結果、複数のユーザがFIFO領域に保管された同じデータ・ファイルを読み取ることができ、したがって、データ・ファイルがテープ・ドライブ・システムに保管されている間のデータ・ファイルへのアクセス時間が減少する。
第3のキャッシング優先順位クラス(クラス3ともいう)では、キャッシュ管理機能により、すでに書き込まれている既存のファイルについて、ファイル全体をFIFOキャッシュにプリフェッチすることができる。最初の読み取り動作後にファイルが複数回読み取られる場合、ファイルはLRUキャッシュに移動する。したがって、キャッシュ・メモリの第1の領域上で、キャッシュ・メモリの第1の領域に前に保管された1組のデータ・ファイルがプリフェッチされ、プリフェッチされた1組のデータ・ファイルの第1の読み取り後に、プリフェッチされた1組のうちの1つまたは複数のデータ・ファイルが1回または複数の追加回数読み取られるかどうかが判断される。プリフェッチされた1組のうちの1つまたは複数のデータ・ファイルが1回または複数の追加回数読み取られると判断された場合に、1組のデータ・ファイルはキャッシュ・メモリの第2の領域、すなわち、LRU領域に移動する。このクラスは有利なことに、アプリケーションまたはユーザからの読み取りコマンドが発行される前にキャッシュすべきファイルを読み取ることにより読み取りキャッシュを可能にする。
第4のキャッシング優先順位クラス(クラス4ともいう)では、キャッシュ管理機能により、キャッシュ・メモリの第1の領域に前に保管された1組のデータ・ファイルをプリフェッチすることによりキャッシュ・メモリの第2の領域上でプリフェッチを実行することができる。したがって、すでに書き込まれている既存のファイルは、直ちに2回以上順次読み取られることになる。したがって、このクラスは、アプリケーションまたはユーザからの読み取りコマンドが発行される前にキャッシュすべきファイルを読み取ることにより読み取りキャッシュを可能にする。
第5のキャッシング優先順位クラス(クラス5ともいう)では、キャッシュ管理機能により、任意の所与の時期にアクセスされた最大オフセットまでデータ・ファイルをLRUキャッシュにフェッチすることができる。すでに書き込まれている既存のファイルはランダム方式で読み取られることになる。このクラスは、アプリケーションまたはユーザからの読み取りコマンドが発行される前にキャッシュすべきファイルを読み取ることにより読み取りキャッシュを可能にする。別の言い方では、このクラスは、任意の所与の時期にアクセスされた最大オフセットまでキャッシュ・メモリの第2の領域内にデータ・ファイルを入れさせる。興味深いことに、データ・ファイルへのランダム書き込みはキャッシュ・メモリに吸収することができる。したがって、関連バイト範囲をテープ・ドライブ・システムに書き込む前に、データ・ファイル内でオフセットを開始することにより、関連バイト範囲をソートすることができる。そのデータ・ファイルに対する連続順次読み取り動作はテープ上で前後に動いてシークする必要がなく、ファイルが依然としてキャッシュ内にある場合に、当然のことながらテープ・ドライブ・システムにアクセスせずにキャッシュから対応できることを理解されたい。
第6のキャッシング優先順位クラス(クラス6ともいう)では、キャッシュ管理機能により、データ・ファイルがアクセスされるかどうかとは無関係に、データ・ファイル・キャッシング・クラスが設定されたときに、キャッシュ・メモリの第1の領域内に直ちにデータ・ファイルを入れ、構成可能な時間間隔が満了したときに、キャッシュ・メモリからデータ・ファイルを追い出すことができる。これにより、キャッシュ・メモリの第1の(FIFO)領域または第2の(LRU)領域内にファイルが無限に常駐するのを防止することができる。キャッシュ内のファイルの最大常駐時間である最大時間間隔はユーザまたはアプリケーションによって構成することができる。ユーザまたはアプリケーションのいずれもこの最大時間を定義しない場合、キャッシュ内のファイルのデフォルト最大常駐時間をキャッシュ管理機能によって選択できることを理解されたい。最大常駐時間により、キャッシュ・メモリに保管されるデータの量を調整することができる。特に、古いデータは追い出されることになる。
加えて、ユーザまたはアプリケーションは事前定義された拡張属性を介してキャッシュ優先順位クラスをリセットすることができる。キャッシュ優先順位クラス・リセットを受信すると、テープ上でのその常駐を保証した後に、ファイルがキャッシュから除去される。この場合も、これにより、キャッシュ・メモリに保管されるデータ・ファイルの量を管理することができる。
一般的なユースケースのサポートを改善するために、所与のファイルに関するキャッシュ優先順位クラスをユーザまたはアプリケーションによって時間の経過につれて変更することができる。たとえば、開示されている新規のテープ・アプライアンス・システムにファイルが書き込まれると、そのファイルはクラス1に割り当てられ、そのファイルがFIFOキャッシュに書き込まれることを保証する。これは有利なことに、ユーザ書き込みプロセス中にテープを位置決めする必要性を解消するものである。
クラス1のポリシーにより、データ・ファイルは直ちにテープに書き込まれ、これが実行された後、ファイルはFIFOキャッシュから廃棄される。次に、ユーザまたはアプリケーションがファイルを順次読み取りたいと希望する場合、読み取りコマンドを実行する前に、ユーザまたはアプリケーションは事前定義された拡張属性を介してデータ・ファイルにクラス3を割り当てる。次に、テープ・アプライアンスは、ファイルがFIFOまたはLRUキャッシュ内にあるかどうかをチェックすることにより、新しいクラス割り当てを認識し、ファイルを処理する。ファイルがキャッシュ・メモリのFIFOまたはLRU領域内にある場合、1回読み取られるまでファイルが除去されないことが保証され、ファイルがキャッシュ・メモリのFIFOまたはLRU領域内にない場合、ファイルはテープからFIFOキャッシュに読み取られる。有利なことに、読み取りコマンドがアプリケーションまたはユーザによって送信される前にファイルがすでにFIFOキャッシュ内にあるので、この処理は高速読み取りアクセスを保証する。その上、テープ・ドライブ・システムからキャッシュ・メモリ内に大きいファイルをプリフェッチすることにより、ユーザがファイル全体を要求する前でも、ユーザ読み取りあたり可能な限り短い時間の間、テープ・ドライブ・システムを使用中に保持することができ、それにより、システムを解放し、他のユーザ/アプリケーションがそれを使用できるようにする。
テープ・アプライアンスの通常動作中に、たとえば、テープ・ドライブ・システム・サーバの作業負荷次第で、キャッシュ優先順位クラスについてより多くの組み合わせが可能であることを理解されたい。
バックアップ・データをまずキャッシュ・メモリに書き込むことにより、書き込み手順自体は有利なことに、少なくとも以下の理由によって、より短いものになる。キャッシュ・メモリのシーク時間は数ミリ秒程度であり、テープ・ドライブ・システムのテープの終わりに達し、書き込みを開始するのに必要なシーク時間は数十秒程度である。さらに、キャッシュ・メモリは典型的にテープより優れた帯域幅を提供する。たとえば、キャッシュ・メモリ・ハードディスクはより大きい帯域幅を有する。加えて、より短い書き込み時間(バックアップ・ウィンドウ)を有することにより、バックアップが終了する前にリモート・システムが故障する確率が低減される。テープ・ドライブ・システム・サーバ内にキャッシュ・メモリを有することのもう1つの利点は、テープ・ドライブ・システムのバックアップ・メタデータをそこに保管できることである。したがって、これにより、ユーザまたはアプリケーションがバックアップを照会したいと希望するときにテープにアクセスする必要性が回避される。
復元すべきデータがすでにキャッシュ内に存在しない場合でも、復元手順も加速することができ、実際に、システムは、同じバックアップに属し、同じバックアップ・バージョンまたはタイムスタンプを有するか、あるいは同じディレクトリに属すデータをプリフェッチすることができる。次に、これらのファイルは効率よくキャッシュ・メモリから取り出すことができる。増分ブロックレベル・バックアップが(ファイル・レベルとは対照的なものとして)使用される場合、テープ・ドライブ・システムのテープを1回通過することにより複数のファイルをキャッシュ内で再構築することができ、その場合、ブロックは典型的にテープ上でインターリーブされる。
もう1つの利点として、多くのファイルを並行して書き込んだ結果、ファイルがテープ上でインターリーブされず、実際に、その書き込みはまずキャッシュ・メモリで吸収され、次に古くなってキャッシュ・メモリから出されるときにその全体がテープに書き込まれる。別の言い方では、複数のユーザによる並行した同時書き込みあるいは読み取りまたはその両方を最適化するためにデータ・ファイルに関連する属性がキャッシュ管理機能によって使用される。
保管すべきいくつかの大きいデータ・ファイルがより小さいファイルに関連付けられ、それぞれの小さいファイルが大きいファイルの内容のサムネイルまたは低解像度バージョンを収容している場合、キャッシュ管理機能は高速アクセスのためにその小さいファイルをキャッシュ内に入れる。
キャッシュ・メモリは、磁気テープ媒体などの1つまたは複数のストレージ・デバイスを含むことができる。ファイル・システム・インターフェースは典型的にLTFSファイル・システムを使用して管理される。他のファイル・システムを使用できることを理解されたい。LTFSファイル・システム・インターフェースはサーバ102内で実行され、そのサーバにはテープ・ライブラリとキャッシュ・メモリの両方が直接接続される。キャッシュ・メモリはLTFSファイル・システム用のキャッシュとして使用され、有利なことに記憶手段に保管されたデータへの高速ランダム・アクセスを可能にする。以下の文章ではキャッシュ・メモリとしてHDDを使用しているが、任意の他の記憶媒体も使用できることを理解されたい。
諸実施形態では、キャッシュ・メモリのHDDは、ロウ・デバイスとして、すなわち、いかなるファイル・システムも使用せずに、テープ・ドライブ・システム・サーバによって使用することができる(ext3など)。その場合、キャッシュは(ファイル・レベルのものとは対照的なものとして)ブロックレベルのものになるか、またはLTFSはHDD用のファイル保管機能を実現する必要が生じるであろう。
キャッシュ管理機能は、テープ・ドライブ・システム・サーバ102上で実行されるコンピュータ・プログラムとして実現し、サーバによって実行することができる。たとえば、図2に関連して説明すると、キャッシュ管理機能は、テープ・ドライブ・システム104を管理するように適合されたLTFSソフトウェアのLTFSコードの内部に実現することができる。
好ましくは、キャッシュ管理機能を実現するコンピュータ・プログラムはユーザ空間プログラム・コンポーネントである。有利なことに、ユーザ空間ソフトウェア・コンポーネントは(カーネル空間のものとは対照的なものとして)実現の複雑さの低減を考慮しているので、これにより可搬性を改善することができる。
諸実施形態では、キャッシュ管理機能およびすべてのキャッシング機能は、外部モジュールとしてLTFSの外部に実現することができる。それにより、LTFSは、将来、任意の他のテープ・ファイル・システムで置き換えることができる。外部モジュールはテープ・ドライブ・システム・サーバのオペレーティング・システムとテープ・ファイル・システムの両方とインターフェースを取る必要が生じることを理解されたい。

Claims (15)

  1. データ・ファイルを保管するためのキャッシュ・メモリとして使用される不揮発性メモリであって、前記キャッシュ・メモリの少なくとも一部が、先入れ先出しポリシー管理を使用して管理される第1の領域と、最長未使用時間ポリシー管理を使用して管理される第2の領域とを含む、不揮発性メモリと、
    テープ・ドライブ・システム上に保管されたデータ・ファイルと対話するためのファイル・システム・インターフェースとしての、前記データ・ファイルをテープ上に順次方式で読み書き保管するLTFSと、
    1つまたは複数のリモート・システムが前記ファイル・システム・インターフェースの記憶手段あるいは前記キャッシュ・メモリまたはその両方に保管されたデータを読み書きできるようにするためのインターフェースとを含む、テープ・ドライブ・システム・サーバであって、
    前記サーバが、前記ファイル・システム・インターフェース(LTFS)を含み、
    前記テープ・ドライブ・システムおよび前記キャッシュ・メモリに1つまたは複数のデータ・ファイルを書き込むための1つまたは複数の書き込み要求を前記1つまたは複数のリモート・システムから受信し、
    前記ファイル・システム・インターフェース(LTFS)により、前記テープ・ドライブ・システムおよび前記キャッシュ・メモリに前記1つまたは複数のリモート・システムによって書き込むよう指示されたデータ・ファイルに関連付けられた属性を解釈し、データ・ファイルのキャッシング優先順位クラスを確保し
    前記キャッシング優先順位クラスに応じて前記リモート・システムによって書き込むよう指示されたデータ・ファイルを保管する、
    ように構成される、テープ・ドライブ・システム・サーバ。
  2. 前記ファイル・システム・インターフェース(LTFS)は、前記データ・ファイルに関連する前記属性を解釈するためのキャッシュ管理機能を含む、請求項1記載のテープ・ドライブ・システム・サーバ。
  3. 前記属性がキャッシング優先順位クラスに対応する、請求項2記載のテープ・ドライブ・システム・サーバ。
  4. 第1のキャッシング優先順位クラスが、前記キャッシュ管理機能により、
    書き込むよう指示されたデータ・ファイルを前記キャッシュ・メモリの前記第1の領域に書き込むことと、
    その後、前記第1の領域に保管されたデータ・ファイルをテープ・ドライブ・システムにコピーすることであって、前記コピーが前記サーバのバックグラウンド・タスクとして実行されることと、
    前記コピーが終了した後に、前記キャッシュ・メモリの前記第1の領域からデータ・ファイルを追い出すこと
    を実行させる、請求項2および3の何れか1項記載のテープ・ドライブ・システム・サーバ。
  5. 第2のキャッシング優先順位クラスが、前記キャッシュ管理機能により、
    書き込むよう指示されたデータ・ファイルを前記キャッシュ・メモリの前記第1の領域に書き込むことと、
    その後、前記第1の領域に保管されたデータ・ファイルをテープ・ドライブ・システムにコピーすることであって、前記コピーが前記サーバのバックグラウンド・タスクとして実行されることと、
    前記第1の領域に書き込まれた前記データ・ファイルの第1の読み取り後に、前記データ・ファイルが1回または複数の追加回数読み取られるかどうかを判断することと、
    前記データ・ファイルが1回または複数の追加回数読み取られると判断された場合に、前記キャッシュ・メモリの前記第2の領域に前記データ・ファイルを移動することと、 前記データ・ファイルが1回または複数の追加回数読み取られると判断されない場合に、前記キャッシュ・メモリの前記第1の領域からデータ・ファイルを追い出すこと
    を実行させる、請求項2および3の何れか1項記載のテープ・ドライブ・システム・サーバ。
  6. 第3のキャッシング優先順位クラスが、前記キャッシュ管理機能により、
    前記キャッシュ・メモリの前記第1の領域上で、前記キャッシュ・メモリの前記第1の領域に前に保管された1組のデータ・ファイルをプリフェッチすることと、
    前記プリフェッチされた1組のデータ・ファイルの第1の読み取り後に、前記プリフェッチされた1組のうちの1つまたは複数のデータ・ファイルが1回または複数の追加回数読み取られるかどうかを判断することと、
    前記プリフェッチされた1組のうちの1つまたは複数のデータ・ファイルが1回または複数の追加回数読み取られると判断された場合に、前記キャッシュ・メモリの前記第2の領域に前記1組のデータ・ファイルを移動すること、を実行させる、
    請求項2および3の何れか1項記載のテープ・ドライブ・システム・サーバ。
  7. 第4のキャッシング優先順位クラスが、前記キャッシュ管理機能により、
    前記キャッシュ・メモリの前記第2の領域上で、前記キャッシュ・メモリの前記第1の領域に前に保管された1組のデータ・ファイルをプリフェッチすることを実行させる、
    請求項2および3の何れか1項記載のテープ・ドライブ・システム・サーバ。
  8. 第5のキャッシング優先順位クラスが、前記キャッシュ管理機能により、
    データ・ファイルへの複数の読み出しアクセスによりテープからキャッシュ・メモリにフェッチされたシーケンシャルなテープイメージの最大オフセットまで前記キャッシュ・メモリの前記第2の領域内にデータ・ファイルを入れること、
    を実行させる、請求項2および3の何れか1項記載のテープ・ドライブ・システム・サーバ。
  9. 第6のキャッシング優先順位クラスが、前記キャッシュ管理機能により、
    データ・ファイルがアクセスされるかどうかとは無関係に、データ・ファイルにキャッシング優先順位クラスが設定されたときに、前記キャッシュ・メモリの前記第1の領域内に直ちにデータ・ファイルを入れることと、
    構成可能な時間間隔が満了したときに、前記キャッシュ・メモリからデータ・ファイルを追い出すこと
    を実行させる、請求項2および3の何れか1項記載のテープ・ドライブ・システム・サーバ。
  10. キャッシング・クラスがユーザまたはアプリケーションのいずれか一方によって指定され、
    それに関するキャッシング・クラスが前記ユーザまたは前記アプリケーションによって指定されていないデータ・ファイルについて前記キャッシュ管理機能がデフォルト・キャッシング・クラスをさらに割り当てる、請求項3ないし9の何れか1項に記載のテープ・ドライブ・システム・サーバ。
  11. 前記属性が拡張属性であり、そのフォーマットが前記データ・ファイルの所与のデータ・フォーマットと互換性がある、請求項1ないし10の何れか1項に記載のテープ・ドライブ・システム・サーバ。
  12. 複数のユーザによる並行した同時データ書き込みあるいは読み取りまたはその両方を最適化するためにデータ・ファイルに関連する属性が前記キャッシュ管理機能によって使用される、請求項2ないし10のいずれかに記載のテープ・ドライブ・システム・サーバ。
  13. 請求項1ないし12のいずれか1項に記載のテープ・ドライブ・システム・サーバと、
    前記サーバがそれとのインターフェースが取られているテープ・ドライブ・システムと
    を含む、テープ・アプライアンス・システム。
  14. 請求項1ないし12のいずれか1項に記載のテープ・ドライブ・システム・サーバまたは請求項13記載のテープ・アプライアンス・システムを含むシステムであって、前記テープ・ドライブ・システムがテープ・ライブラリである、システム。
  15. 請求項2ないし12の何れか1項に記載のテープ・ドライブ・システム・サーバにキャッシュ管理機能を実行させるためのコード手段を含む、コンピュータ・プログラム。
JP2014546678A 2011-12-16 2012-11-20 テープ・ドライブ・システム・サーバ、それを含むテープ・アライアンス・システムおよびシステム、ならびにコンピュータ・プログラム Active JP6016939B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11194117 2011-12-16
EP11194117.5 2011-12-16
PCT/IB2012/056564 WO2013088284A1 (en) 2011-12-16 2012-11-20 Tape drive system server

Publications (2)

Publication Number Publication Date
JP2015507781A JP2015507781A (ja) 2015-03-12
JP6016939B2 true JP6016939B2 (ja) 2016-10-26

Family

ID=48611929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014546678A Active JP6016939B2 (ja) 2011-12-16 2012-11-20 テープ・ドライブ・システム・サーバ、それを含むテープ・アライアンス・システムおよびシステム、ならびにコンピュータ・プログラム

Country Status (6)

Country Link
US (1) US9990395B2 (ja)
JP (1) JP6016939B2 (ja)
CN (1) CN103999058B (ja)
DE (1) DE112012005271B4 (ja)
GB (1) GB2513492B (ja)
WO (1) WO2013088284A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977827B1 (en) 2012-05-31 2015-03-10 Kip Cr P1 Lp System, method and computer program product for recovering stub files
US9720627B2 (en) 2013-01-17 2017-08-01 Western Digital Technologies, Inc. Data management for a data storage device
US9606930B2 (en) 2014-08-05 2017-03-28 International Business Machines Corporation Tape-managed partition support for effective workload allocation and space management
US20160162210A1 (en) * 2014-12-09 2016-06-09 Bdt Media Automation Gmbh Openstack swift interface for tape library (ossitl)
US9851927B2 (en) 2015-09-01 2017-12-26 International Business Machines Corporation File management in a file system
US9928009B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. High density tape drive server design
US10120612B2 (en) * 2017-01-10 2018-11-06 International Business Machines Corporation Apparatus, method, and program product for tape copying
JP6579123B2 (ja) * 2017-02-13 2019-09-25 横河電機株式会社 エンジニアリング装置、エンジニアリング方法及びプログラム
US11093179B2 (en) 2017-03-24 2021-08-17 International Business Machines Corporation Tape drive system
US10423336B2 (en) * 2017-11-28 2019-09-24 International Business Machines Corporation Fast locate using imitation reads on tape drives
US11144474B2 (en) 2018-06-26 2021-10-12 International Business Machines Corporation Integration of application indicated maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11061826B2 (en) 2018-06-26 2021-07-13 International Business Machines Corporation Integration of application indicated minimum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11068417B2 (en) 2018-06-26 2021-07-20 International Business Machines Corporation Allocation of cache storage among applications that indicate minimum retention time for tracks in least recently used demoting schemes
US11074197B2 (en) * 2018-06-26 2021-07-27 International Business Machines Corporation Integration of application indicated minimum time to cache and maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11068413B2 (en) 2018-06-26 2021-07-20 International Business Machines Corporation Allocation of cache storage among applications based on application priority and minimum retention time for tracks in least recently used demoting schemes
JP2020071577A (ja) 2018-10-30 2020-05-07 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US11494338B2 (en) 2019-04-26 2022-11-08 International Business Machines Corporation Caching files in a directory
US11163500B2 (en) * 2019-04-26 2021-11-02 International Business Machines Corporation Caching files in a directory
US11169933B2 (en) 2020-02-13 2021-11-09 International Business Machines Corporation Integration of application indicated maximum time to cache for a two-tiered cache management mechanism
US11210237B2 (en) * 2020-02-13 2021-12-28 International Business Machines Corporation Integration of application indicated minimum and maximum time to cache for a two-tiered cache management mechanism
US11176057B2 (en) 2020-02-13 2021-11-16 International Business Machines Corporation Integration of application indicated minimum time to cache for a two-tiered cache management mechanism

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755928A (en) * 1984-03-05 1988-07-05 Storage Technology Corporation Outboard back-up and recovery system with transfer of randomly accessible data sets between cache and host and cache and tape simultaneously
US4962451A (en) * 1985-11-07 1990-10-09 International Business Machines Corporation Cache-effective sort string generation method
US5829046A (en) 1995-10-27 1998-10-27 Emc Corporation On-line tape backup using an integrated cached disk array
US5926834A (en) * 1997-05-29 1999-07-20 International Business Machines Corporation Virtual data storage system with an overrun-resistant cache using an adaptive throttle based upon the amount of cache free space
JP4303803B2 (ja) * 1998-04-22 2009-07-29 株式会社東芝 キャッシュフラッシュ装置
US6601143B1 (en) * 1999-09-25 2003-07-29 International Business Machines Corporation Self-adapting cache management method and system
JP3612271B2 (ja) * 2000-09-12 2005-01-19 株式会社東芝 ファイルシステム
US7747816B1 (en) 2003-03-31 2010-06-29 Ultera Systems, Inc. Virtual tape stacker
US7162574B2 (en) 2003-04-22 2007-01-09 International Business Machines Corporation Transaction-based data storage for magnetic tape
EP1505506A1 (en) 2003-08-05 2005-02-09 Sap Ag A method of data caching
US6970311B2 (en) 2003-08-18 2005-11-29 International Business Machines Corporation Storing data to magnetic tape both to one set of tracks and in the same operation rewritten to another set of tracks
US7085895B2 (en) 2003-09-05 2006-08-01 International Business Machines Corporation Apparatus, system, and method flushing data from a cache to secondary storage
US7487288B2 (en) 2004-05-14 2009-02-03 International Business Machines Corporation Dynamic loading of virtual volume data in a virtual tape server
US7253983B2 (en) * 2004-12-14 2007-08-07 Spectra Logic Corporation Variable media tape-based storage system
US20060143396A1 (en) * 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US7478218B2 (en) * 2005-02-18 2009-01-13 Vmware, Inc. Adaptive cache sizing based on monitoring of regenerated and replaced cache entries
JP4792335B2 (ja) * 2006-06-16 2011-10-12 富士通株式会社 Raid装置、raid制御プログラムおよびキャッシュ管理方法
US7624118B2 (en) 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
US20080068750A1 (en) 2006-09-19 2008-03-20 International Business Machines Corporation Planar Write Module And Hybrid Planar Write-Vertical Read Bidirectional Tape Head
US8140788B2 (en) * 2007-06-14 2012-03-20 International Business Machines Corporation Apparatus, system, and method for selecting an input/output tape volume cache
US8327430B2 (en) 2007-06-19 2012-12-04 International Business Machines Corporation Firewall control via remote system information
US7774094B2 (en) * 2007-06-28 2010-08-10 International Business Machines Corporation Selecting a source cluster by measuring system factors, calculating a mount-to-dismount lifespan, and selecting the source cluster in response to the lifespan and a user policy
JP5068197B2 (ja) * 2008-02-26 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション データをテープ媒体に書き込む装置及び方法
JP5028381B2 (ja) * 2008-10-22 2012-09-19 株式会社日立製作所 ストレージ装置およびキャッシュ制御方法
US8316182B2 (en) 2009-08-11 2012-11-20 International Business Machines Corporation Hierarchical storage management for database systems
WO2011043114A1 (ja) 2009-10-07 2011-04-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数の記憶装置を含む記憶システム、方法、及びプログラム
JP5296664B2 (ja) 2009-12-14 2013-09-25 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想テープ記録装置およびそのテープマウント制御方法
US8407421B2 (en) * 2009-12-16 2013-03-26 Intel Corporation Cache spill management techniques using cache spill prediction
US9037790B2 (en) 2010-03-05 2015-05-19 International Business Machines Corporation Systems, methods, and computer program products for providing high availability metadata about data
US9063666B2 (en) * 2010-03-25 2015-06-23 International Business Machines Corporation File index, metadata storage, and file system management for magnetic tape
JP5747489B2 (ja) * 2010-11-30 2015-07-15 富士ゼロックス株式会社 印刷文書処理システム、キャッシュ装置及びプログラム
EP2466466B1 (de) 2010-12-09 2013-10-16 Siemens Aktiengesellschaft Verfahren zur Fehlererkennung bei der Ausführung eines Echtzeit-Betriebssystems
US8650576B2 (en) * 2011-06-03 2014-02-11 Hitachi, Ltd. Storage apparatus and storage apparatus management method
US9852076B1 (en) * 2014-12-18 2017-12-26 Violin Systems Llc Caching of metadata for deduplicated LUNs

Also Published As

Publication number Publication date
JP2015507781A (ja) 2015-03-12
WO2013088284A1 (en) 2013-06-20
CN103999058B (zh) 2017-02-22
US9990395B2 (en) 2018-06-05
GB2513492A (en) 2014-10-29
GB2513492B (en) 2018-07-11
DE112012005271B4 (de) 2023-06-15
DE112012005271T5 (de) 2014-11-27
US20140330817A1 (en) 2014-11-06
GB201411668D0 (en) 2014-08-13
CN103999058A (zh) 2014-08-20

Similar Documents

Publication Publication Date Title
JP6016939B2 (ja) テープ・ドライブ・システム・サーバ、それを含むテープ・アライアンス・システムおよびシステム、ならびにコンピュータ・プログラム
US8862815B2 (en) Reading files stored on a storage system
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
JP5818207B2 (ja) フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブのためのシステム、方法、コンピュータ・プログラム(フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブ)
US9460106B2 (en) Data synchronization among file storages using stub files
US9319265B2 (en) Read ahead caching of data from cloud storage and method thereof
US8341346B2 (en) Offloading volume space reclamation operations to virtual tape systems
JP6270827B2 (ja) データ・マイグレーションのための方法、システム、およびコンピュータ・プログラム
US8281105B2 (en) I/O conversion method and apparatus for storage system
US8566540B2 (en) Data migration methodology for use with arrays of powered-down storage devices
JP2012133772A (ja) リモートストレージシステムのためのデータ処理方法及び装置
US9471252B2 (en) Use of flash cache to improve tiered migration performance
US10489301B1 (en) Method and system for metadata churn absorption
TW201342052A (zh) 磁帶機系統伺服器
US9128854B1 (en) System and method for data prediction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160412

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160927

R150 Certificate of patent or registration of utility model

Ref document number: 6016939

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150