JP2014533850A - 記憶システム上に格納されたファイルを読み取るための方法、コンピュータ・プログラム、記憶システム - Google Patents

記憶システム上に格納されたファイルを読み取るための方法、コンピュータ・プログラム、記憶システム Download PDF

Info

Publication number
JP2014533850A
JP2014533850A JP2014520434A JP2014520434A JP2014533850A JP 2014533850 A JP2014533850 A JP 2014533850A JP 2014520434 A JP2014520434 A JP 2014520434A JP 2014520434 A JP2014520434 A JP 2014520434A JP 2014533850 A JP2014533850 A JP 2014533850A
Authority
JP
Japan
Prior art keywords
files
storage system
cache memory
file
area
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
JP2014520434A
Other languages
English (en)
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 JP2014533850A publication Critical patent/JP2014533850A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • 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
    • 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
    • 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/0673Single storage device
    • G06F3/0682Tape device
    • 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/22Employing cache memory using specific memory technology
    • G06F2212/224Disk 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/46Caching storage objects of specific type in disk cache
    • G06F2212/463File

Abstract

【課題】記憶システム上に格納されたファイルを読み取るための方法を提供すること。【解決手段】記憶システムは、所定のデータ・フォーマットに従ってファイルの第1のセットを格納する記憶手段と、ファイルの第2のセットを格納するキャッシュ・メモリであって、ファイルの第2のセットが、ファイルの第1のセットのサブセットであるキャッシュ・メモリとを備える。リモート・システムが記憶手段またはキャッシュ・メモリあるいはその両方の上に格納されたファイルを読み取ることを可能にする。この方法は、ファイルのシーケンスを読み取ることを求める少なくとも1つの読取り要求を1つまたは複数のリモート・システムから受信すること、シーケンスのファイルのうち、1つまたは複数のキャッシュされたファイルが既にキャッシュ・メモリ上に格納されているかどうか、および1つまたは複数の残りのファイルがまだキャッシュ・メモリ上に格納されていないかどうかを判定すること、前記所定のデータ・フォーマットに従って記憶システム上に格納された前記残りのファイルの場所が与えられたとして、前記1つまたは複数の残りのファイル内で、記憶システム上で前記残りのファイルを読み取るべき順序を決定すること、前記順序に従って記憶システム上の前記1つまたは複数の残りのファイルを読み取り、キャッシュ・メモリ上に残りのファイルを格納することを含む。【選択図】図8

Description

本発明は、記憶システム用のキャッシュ・アーキテクチャの分野に関し、詳細には、記憶システム上のファイルを読み取るための方法に関する。
過去数年にわたるHDD(ハード・ディスク・ドライブ)技術の著しい進歩にもかかわらず、磁気テープ・システムが、現在のティアード・ストレージ・インフラストラクチャ(tiered storage infrastructure)の一体型部分を構成する。テープ技術は、データの低コストの長期記憶、ならびにバックアップおよび災害復旧目的で、省エネルギー、セキュリティ、寿命、および信頼性を含むいくつかの重要な利点をもたらす。
データがテープ・システムに記録された後は、媒体は受動的である。このことは、データが単にラック内にとどまり、電力が不要であることを意味する。類似のディスク・ベースのシステムと比べて、テープ・ベースのアーカイブの消費電力は約290分の1である。セキュリティに関して、データが記録され、カートリッジがアクセス・システムから取り外された後は、カートリッジがアクティブなシステムに再インストールされるまで、データはアクセス不能である。セキュリティは、ドライブ・レベルの暗号化によってさらに高められ、ドライブ・レベルの暗号化は、Linear Tape Open generation-4ドライブ(LTO−4)で導入され、企業レベルのテープ・ドライブでも標準的である。テープ媒体は30年以上の寿命を有する。しかし、より大容量のカートリッジへの移行に関連するテープ・ハードウェアおよびコスト節約の急速な進歩のために、これが利用されることはまれである。信頼性に関して、LTO−4テープは、少なくともSAS(Serial Attached SCSI)HDDよりも良好な大きさのビット・エラー率を有する。さらに、テープ媒体が取外し可能であり、相互交換可能であることは、HDDとは対照的に、カートリッジを単に別のドライブにマウントすることができるので、テープ・ドライブの機械的故障によってデータが失われないことを意味する。
上記の利点のすべては、コストおよび信頼性というテープ・システムの主な正味の利点に寄与する。ディスクとテープの間のコスト節約の推定は、3から20倍超までの範囲である。
ハード・ディスクは、データへのランダム・アクセスを実現し、一般には、ファイル・システムによって管理されるファイル索引を含む。これらのファイルには、様々なオペレーティング・システムおよびアプリケーションを使用して、アプリケーション・プログラミング・インターフェース(API)の標準セットによってアクセスすることができる。対照的に、テープは、「シングリング(shingling)」と呼ばれる技法を使用してシーケンシャル(線形順次式:linearsequential fashion)に書き込まれ、シングリングは、後方書込み互換性を実現するが、新しいデータを終わりに付加できるだけであること、および以前に書き込まれたエリアは、カートリッジ全体が再利用され、再書込みされる場合に再利用できるだけであることも示唆する。従来のテープ・システムでは、所与のカートリッジ上に書き込まれるファイルの索引は通常、知的所有権のあるバック・アップ・アプリケーションなどのアプリケーションによって管理される外部データベース内に保たれるだけである。外部データベースにアクセスしてデータを取り出す必要により、テープ上のデータは、HDDやUSB(ユニバーサル・シリアル・バス)ドライブなどの代替記憶方法よりも可搬性およびアクセス可能性がずっと低くなる。
これらの欠点に対処するために、Linear Tape FileSystem(LTFS)と呼ばれる新しいファイル・システムがLTO−5テープ・ドライブ・システムに最近導入され、標準的なよく知られているシステム・ツールおよびインターフェースを使用してテープへの効率的なアクセスが可能となった。LTFSは、新しいLTO−5フォーマットでサポートされるデュアル・パーティション機能を利用することによって実装される。索引を書き込むために、いわゆる索引パーティションが使用され、データ自体のために、第2のずっと大きいパーティションが使用される。索引パーティションは、ファイル・システムのディレクトリのために使用されるのに対して、データ・パーティションは、ファイル・システムに実際のユーザのファイルを格納するのに使用される。別々のパーティション上に索引を配置することは、実際のデータに影響を与えることなく索引を再書込みすることができるので有利である。LTFSは、POSIXのようなファイル・システム・インターフェースをユーザに公開し、索引パーティション内のファイル・システム索引を管理し、データ・パーティションにデータを格納する。LTFSソフトウェアによって表されるファイル・システムにより、ファイルが実際にはテープ上に位置する間、ファイルおよびディレクトリが、ディレクトリ一覧表と共にデスクトップ上に現れる。ファイル・システム・ユーザは、テープに、およびテープからファイルを「ドラッグ・アンド・ドロップ」することができ、ディスク・システム用に開発されたアプリケーションを実行することができる。ライブラリ・モードでは、個々のカートリッジをマウントすることなく、ライブラリ内のすべてのボリュームの内容をリスト表示および探索することができる。これらの機能は、テープ・コスト、ファイル管理コスト、およびアーカイブ・コストを削減し、ミドルウェア層への依存関係をなくす助けとなる。したがって、格納されるギガバイト(GB)当たりのコストが削減される。さらに、テープはクロス・プラットフォーム・ポータブルとなり(LTFSはLinux(商標)、Apple Mac OS X(商標)、Microsoft Windows(R)(商標)上で利用可能である)、プラットフォーム間のデータの共有が可能となり、容易となる。これらの機能により、ビデオ・アーカイブ、医療画像などの、テープに関する意義深い新しい使用ケースが可能となる。他のストレージ解決策に勝るテープのコスト利点、テープ・カートリッジ容量およびGB当たりのコストの継続的なスケーリングに関する実証された潜在性、ならびにLTFSなどの進歩によって実現されるテープのユーザビリティの向上を考慮すると、テープは、アーカイバル・データ・ストレージ解決策に関する急成長する市場で重要な役割を果たすことになるように見える。
米国特許第2008/0040539A1号 米国特許第2010/0211731A1号 米国特許第7864479B2号 米国特許第5829046号 米国特許第7644204B2号 米国特許第6711580B2号
"Implementing an AutomatedDigital Video Archive Based on the Video Edition of XenData Software",XenData White Paper, April 2007 "SGI (Trademark) COPAN(Trademark) Virtual Tape Library - 300T/TX" "Driving to Best Practices inArchiving", L. DuBois, March 2007, Page 6 "The Case for Massive Arraysof Idle Disks", D. Colarelli, D. Grunwald and M. Neufeld, Dept. ofComputer Science, Univ. of Colorado, Boulder,January 7, 2002, Page 3 "Optimizing virtual tapeperformance: improving efficiency with disk storage systems", D. Cuddihy,ATTO Technology Inc., Embedded Software Group, June, 2007, Page 6
しかし、LTFSであっても、ファイルはテープ上に順次(sequentialmanner)格納され、それにより、読取りや書込みなどのI/O操作中のアクセス時間が無視できない長さとなる。
第1の態様によれば、本発明は、記憶システム上に格納されたファイルを読み取るための方法であって、記憶システムが、所定のデータ・フォーマットに従ってファイルの第1のセットを格納する記憶手段と、ファイルの第2のセットを格納するキャッシュ・メモリであって、ファイルの第2のセットが、ファイルの第1のセットのサブセットである、キャッシュ・メモリとを備え、記憶システムが、1つまたは複数のリモート・システムが記憶手段またはキャッシュ・メモリあるいはその両方の上に格納されたファイルを読み取ることを可能にするように構成され、
ファイルのシーケンスを読み取ることを求める少なくとも1つの読取り要求を1つまたは複数のリモート・システムから受信すること、
シーケンスのファイルのうち、1つまたは複数のキャッシュされたファイルが既にキャッシュ・メモリ上に格納されているかどうか、および1つまたは複数の残りのファイルがまだキャッシュ・メモリ上に格納されていないかどうかを判定すること、
前記所定のデータ・フォーマットに従って記憶システム上に格納された前記残りのファイルの場所が与えられたとして、前記1つまたは複数の残りのファイル内で、記憶システム上で前記残りのファイルを読み取るべき順序を決定すること、
前記順序に従って記憶システム上の前記1つまたは複数の残りのファイルを読み取り、キャッシュ・メモリ上に残りのファイルを格納すること
を含む方法として実施される。
実施形態では、この方法は、以下の特徴のうちの1つまたは複数を含むことができる。
記憶システムは、キャッシュ・メモリとして使用される不揮発性メモリを備える。
キャッシュ・メモリとして使用される不揮発性メモリは、ハード・ディスクまたは固体ドライブあるいはその両方のアレイを含む。
ハード・ディスクまたは固体ドライブあるいはその両方のアレイは、単一の論理アドレス空間として編成される。
キャッシュ・メモリはファイル・レベル・キャッシュ・メモリである。
キャッシュ・メモリはブロック・レベル・キャッシュ・メモリである。
記憶手段は、Linear Tape File Systemデータ・フォーマットに従ってファイルの第1のセットを格納する少なくとも1つの磁気テープ媒体を含み、記憶システム上に格納される前記残りのファイルの場所が、Linear Tape File Systemデータ・フォーマットのメタデータの部分としてのそれぞれの残りのファイルの開始ブロックに従って決定される。
キャッシュ・メモリは、先入れ先出しポリシー管理を使用して管理される第1の領域と、最長時間未使用ポリシー管理を使用して管理される第2の領域とを含み、第1および第2の領域は、キャッシュ容量管理に関する1組の規則に従ってファイルの前記第2のセットを格納するように適合される。
1組の規則は、少なくとも以下の規則を含む。
i)第1の領域が満杯である場合、第2のセットの最も古いファイルが、記憶手段にコピーされ、第1の領域からエビクトされる。
ii)第1の領域が満杯であり、第2の領域が空き容量を有する場合、第1の領域は、第2の領域の空き容量の所与の割合を得る。
iii)第2の領域が満杯である場合、最少のアクセス数および最も古い最終アクセス時刻を有する第2のセットのファイルが、記憶手段にコピーされ、第2の領域からエビクトされる。
iv)第2の領域が満杯であり、第1の領域が空き容量を有する場合、第2の領域は、第1の領域の空き容量の所与の割合を得る。
別の態様によれば、本発明は、記憶システム上に格納されたファイルを読み取るための、コンピュータ可読媒体上に格納されたコンピュータ・プログラムであって、本発明による方法のステップをコンピュータに行わせるコード手段を含むコンピュータ・プログラムとして実施される。
実施形態では、コンピュータ・プログラムは、以下の特徴のうちの1つまたは複数を含むことができる。
Linear Tape File Systemとして記憶手段を管理するコード手段であって、記憶手段が、Linear Tape File Systemを使用して管理される少なくとも1つの磁気テープ媒体を有するスタンドアロン・テープ・ライブラリを備える、コード手段。
コンピュータ・プログラムがユーザ空間プログラム構成要素である。
別の態様によれば、本発明は、
所定のデータ・フォーマットに従ってファイルの第1のセットを格納する記憶手段と、
ファイルの第2のセットを格納するキャッシュ・メモリであって、ファイルの第2のセットがファイルの第1のセットのサブセットである、キャッシュ・メモリと、
1つまたは複数のリモート・システムから読取りおよび書込み要求を受信する少なくとも1つのインターフェースと、
本発明に従ってコンピュータ・プログラムの命令を実行する処理装置と
を備える記憶システムとして実施される。
次に、プロセスおよび本発明を実施するプロセスを、非限定的な例として、添付の図面を参照して説明する。
本発明による、他のシステムによってリモートにアクセスされる記憶システムのアーキテクチャ図の一例である。 図1上に示される記憶システムのデータ経路図の一例である。 図1上に示される記憶システムのデータ経路図の別の例である。 図1〜3上に示される記憶システムのキャッシングの一例である。 所定のデータ・フォーマットに従って記憶システム上に格納される残りのファイルの場所の一例である。 所定のデータ・フォーマットに従って記憶システム上に格納される残りのファイルの場所の一例である。 所定のデータ・フォーマットに従って記憶システム上に格納される残りのファイルの場所の一例である。 本発明の一実施形態を記述するフローチャートの一例である。
本発明は、記憶システム上に格納されたファイルを読み取るための方法を説明する。記憶システムとは、デジタル・データを保持するコンピュータ構成要素および記録媒体を指す。記憶システムは、所定のデータ・フォーマットに従ってファイルの第1のセットを格納する記憶手段を備える。データ・フォーマットとは、コンピュータ・ファイル・システム内の記憶媒体上に格納されるデータを符号化するフォーマットを指す。記憶システムはまた、ファイルの第2のセットを格納するキャッシュ・メモリをも備え、ファイルの第2のセットは、ファイルの第1のセットのサブセットである。キャッシュ・メモリは、データを求める将来の要求により高速にサービスすることができるように、そのデータを格納する構成要素である。記憶システムは、1つまたは複数のリモート・システムが記憶手段またはキャッシュ・メモリあるいはその両方の上に格納されたファイルを読み取ることを可能にするように構成される。一般に、リモート・システムとは、記憶システムに対してリモート・ロケーションに位置する任意のシステムまたはアプリケーションを指す。記憶システム上に格納されたファイルを読み取るための方法は、ファイルのシーケンスを読み取ることを求める少なくとも1つの読取り要求を1つまたは複数のリモート・システムから受信することを含む。ファイルのシーケンスとは、通常は何らかの形で互いに関係付けられた、ファイルの整列された有限集合を指す。この方法は、シーケンスのファイルのうち、1つまたは複数のキャッシュされたファイルが既にキャッシュ・メモリ上に格納されているかどうか、および1つまたは複数の残りのファイルがまだキャッシュ・メモリ上に格納されていないかどうかを判定することを含む。この方法は、前記所定のデータ・フォーマットに従って記憶システム上に格納された前記残りのファイルの場所が与えられたとして、前記1つまたは複数の残りのファイル内で、記憶システム上で前記残りのファイルを読み取るべき順序を決定することを含む。記憶システム上のファイルの場所とは、記憶システム上のファイルの編成または位置を指す。ファイルの配置は、データ空間を物理的または仮想的に分割することによって実施することができる。この方法は、前記順序に従って記憶システム上の前記1つまたは複数の残りのファイルを読み取り、キャッシュ・メモリ上に残りのファイルを格納することを含む。
したがって、提案される発明は、アクセス待ち時間に関してだけではなく、スループットおよび空間利用率に関しても、テープ記憶システム(例えば、LTFSに基づくテープ記憶システム)などの記憶システムの性能を改善する技法に焦点を当てる。その目的で、記憶システムは、記憶手段の上のキャッシング層として使用されるキャッシュ・メモリと協調して記憶手段を使用する。記憶システムは、要求されたファイルを最適化された読取りで読み取り、ファイルのキャッシュ・プリフェッチングを可能にする。したがって、本発明による方法は、直前にキャッシュされたファイルまたは頻繁にキャッシュされるファイルあるいはその両方へのより高速なアクセスを実現するだけではなく、記憶手段上に格納されたファイルのバックアップまたは復元および移行操作などの使用ケースを加速するようにも設計される。
当業者は理解するであろうが、本発明の態様は、方法、システム、またはコンピュータ・プログラム製品として実施することができる。したがって、本発明の態様は、完全なハードウェア実施形態、完全なソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロ・コードなど)、またはソフトウェア態様とハードウェア態様を組み合わせる実施形態の形態を取ることができ、それらを本明細書ではすべて全般的に「回路」、「モジュール」、または「システム」と呼ぶことがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードがその中に実施された1つまたは複数のコンピュータ可読媒体(複数可)で実施されるコンピュータ・プログラム製品の形態を取ることができる。
1つまたは複数のコンピュータ可読媒体(複数可)の任意の組合せを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体でよい。コンピュータ可読記憶媒体は、例えば、限定はしないが、電子的、磁気的、光学的、電磁的、赤外線、または半導体のシステム、機器、または装置、あるいは上記の任意の適切な組合せでよい。コンピュータ可読記憶媒体のより特定の例(非網羅的なリスト)は以下を含む。1つまたは複数のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読取り専用メモリ(CD−ROM)、光記憶装置、磁気記憶装置、または上記の任意の適切な組合せ。本文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、機器、または装置によって使用され、またはそれらと共に使用される、プログラムを包含または格納することのできる任意の有形媒体でよい。
コンピュータ可読信号媒体は、例えばベースバンドで、または搬送波の部分として、コンピュータ可読プログラム・コードがその中に実施された伝播データ信号を含むことができる。そのような伝播信号は、限定はしないが、電磁的形態、光学的形態、またはそれらの任意の適切な組合せを含む様々な形態のうちのいずれも取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、機器、または装置によって使用され、またはそれらと共に使用されるプログラムを通信、伝播、または移送することのできる任意のコンピュータ可読媒体でよい。
限定はしないが、ワイヤレス、ワイヤライン、光ファイバ・ケーブル、RFなど、または上記の任意の適切な組合せを含む任意の適切な媒体を使用して、コンピュータ可読媒体上に実施されるプログラム・コードを送信することができる。
本発明の態様のための動作を実施するコンピュータ・プログラム・コードは、Java(R)、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書くことができる。プログラム・コードは、完全にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行することができる。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータにリモート・コンピュータを接続することができ、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに接続を行うことができる。
本発明の実施形態による方法、機器(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック・ダイアグラムあるいはその両方を参照しながら、本発明の態様を以下で説明する。フローチャート図またはブロック・ダイアグラムあるいはその両方の各ブロック、ならびにフローチャート図またはブロック・ダイアグラムあるいはその両方のブロックの組合せをコンピュータ・プログラム命令で実装できることを理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理機器のプロセッサに与えてマシンを生成することができ、したがって、コンピュータまたは他のプログラマブル・データ処理機器のプロセッサを介して実行される命令が、フローチャートまたはブロック・ダイアグラム・ブロック(複数可)あるいはその両方で指定される機能/動作を実装する手段を生み出す。
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理機器、または他の装置が特定の方式で機能するように指示することのできるコンピュータ可読媒体に格納することもでき、したがってコンピュータ可読媒体に格納された命令は、フローチャートまたはブロック・ダイアグラム・ブロック(複数可)あるいはその両方で指定される機能/動作を実装する命令を含む製造品を生成する。
コンピュータ・プログラム命令をコンピュータ、他のプログラマブル・データ処理機器、または他の装置上にロードし、コンピュータ、他のプログラマブル機器、または他の装置上で一連の動作ステップを実施させ、コンピュータで実装されるプロセスを生成することもでき、したがって、コンピュータまたは他のプログラマブル機器上で実行される命令が、フローチャートまたはブロック・ダイアグラム・ブロック(複数可)あるいはその両方で指定される機能/動作を実装するプロセスを提供する。
図のフローチャートおよびブロック・ダイアグラムは、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック・ダイアグラム中の各ブロックは、指定の論理機能(複数可)を実装する1つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または部分を表すことができる。いくつかの代替実装では、ブロックで示される機能は、図で示されるのとは異なる順序で行われることがあることにも留意されたい。例えば、関係する機能に応じて、連続して示される2つのブロックが、実際には実質的に同時に実行されることがあり、または場合によってブロックが逆の順序で実行されることがある。ブロック・ダイアグラムまたはフローチャート図あるいはその両方の各ブロック、ならびにブロック・ダイアグラムまたはフローチャート図あるいはその両方のブロックの組合せを、指定の機能または動作を実施する専用ハードウェア・ベースのシステム、あるいは専用ハードウェアとコンピュータ命令の組合せで実装できることにも留意されたい。
図1は、本発明の一実施形態による、他のシステム110、120によってリモートにアクセスされる記憶システム100のアーキテクチャ図である。記憶システムは、テープ・アプライアンス・システムと呼ばれることもある。本発明の一実施形態による記憶システム100は、少なくとも1つのコンピュータ処理装置(CPU)1000またはプロセッサと、通常はダイナミック・ランダム・アクセス・メモリ(DRAM)であるメイン・メモリ1002とを含む。CPUおよびDRAMがバス1004に接続される。バスをディスプレイ・コントローラ1006に接続することができ、ディスプレイ・コントローラ1006は、LCDモニタ1008などのディスプレイに接続される。ディスプレイを使用して、記憶システム100についての情報を表示することができる。キーボード/マウス・コントローラまたはUSBコントローラ1010を通じてキーボード1012およびマウス1014にバスをさらに接続することができる。例えばイーサネット(R)(登録商標)プロトコルに準拠する、通信コントローラ1014にもバスを接続することができる。通信コントローラは、ネットワーク、例えばネットワーク130とコンピュータ・システムを物理的に接続するのに使用される。バスはまた、IDE、SATA、SCSIコントローラなどのデバイス・コントローラ1018を通じて、ハード・ディスク104やDVD1020などの記憶装置にも接続される。
記憶システム100は、所定のデータ・フォーマットに従ってファイルの第1のセットを格納する記憶手段104をさらに備える。例えば、記憶手段は、多数のテープ・ドライブまたはヘッドをサポートすることのできるスタンドアロン・テープ・ドライブ(またはテープ・ライブラリ)などのシーケンシャル・アクセス媒体でよい。スタンドアロン・テープ・ドライブは、リニア・テープに対して、1つまたは複数のテープ・カートリッジに対して作用するように使用される。テープ・ドライブ上に格納されるデータの所定のデータ・フォーマットは、ファイル内容データおよび関連するファイル・メタデータを保持するLTFSフォーマット・データ・フォーマットを使用することができる。したがって、テープ・ドライブ上に格納され、LTFSフォーマットを使用して書き込まれたデータを、LTFSフォーマットを理解することができる他のシステム110、120と交換することができる。
記憶システム100は、ファイルの第2のセットを格納するキャッシュ・メモリをさらに備え、ファイルの第2のセットは、ファイルの第1のセットのサブセットである。キャッシュ・メモリは、作業負荷の時間的および空間的局所性を活用して、記憶システムの性能を最適化する。キャッシュ・メモリは読取りキャッシュである。任意選択で、キャッシュ・メモリは書込みキャッシュでもよい。読取りキャッシュは、そのデータを求める将来の要求により高速にサービスすることができるように、データを透過的に格納することによって性能を改善する。要求されたデータがキャッシュ内に含まれる場合、すなわちキャッシュ・ヒットが生じた場合、単にキャッシュを読み取ることによってこの要求にサービスすることができ、これは、バックエンド記憶装置から読み取るよりも同程度に高速である。そうでない場合、キャッシュ・ミスが生じ、より低速なバックエンド記憶装置からデータをフェッチしなければならない。
実際には、記憶システムは、キャッシュ・メモリとして使用される不揮発性メモリを備える。不揮発性メモリは、記憶システムがオフにされる時、その中に格納されたファイルを保持することができるので有利である。キャッシュ・メモリとして使用される不揮発性メモリは、ハード・ディスク・ドライブまたは固体ドライブあるいはその両方のアレイを含むことができる。大容量HDDまたはSSDあるいはその両方のアレイは、RAID(Redundant Array of Independent Disks)方式で構成することができる。キャッシュ・メモリ・コントローラは、サーバのオペレーティング・システムに単一の論理ボリュームを公開することができ、したがってキャッシュ・メモリの管理がより容易となる。さらに、限定はしないがext3、ext4、NTFSなどの従来のディスク・ファイル・システムが、論理ボリューム上にインストールされ、ディスク・アレイに対するすべてのI/O操作に対して使用される。キャッシュ・メモリ、すなわちディスク・アレイ全体はキャッシング専用であり、システムの他の構成要素と共有されない。
キャッシュ・メモリはファイル・レベル・キャッシュ・メモリでよい。あるいは、キャッシュ・メモリはブロック・レベル・キャッシュ・メモリでよい。この場合、アレイのHDDまたはSSDあるいはその両方が、ファイル・システムのないロー・デバイス(raw device)として使用され、次いでボリュームが作成され、オペレーティング・システムがこれらのボリュームに接続し、これらのボリュームを個々のハード・ドライブとして使用する。ブロック・レベル・キャッシュ・メモリは、ファイル・ストレージ、データベース・ストレージ、仮想マシン・ファイル・システム(VMFS)ボリュームなどを含む、ほとんどの任意の種類のアプリケーションのために使用可能である。
通常、記憶システムはサーバ102を備え、サーバ102は、CPUおよびDRAM、バス、ディスプレイ・コントローラ、通信コントローラを備える。サーバ102は、LTFSソフトウェアを実行することのできる記憶手段104に接続され、標準ファイル・システム・インターフェースを介して、下にあるテープ容量を公開する。サーバ102はさらに、キャッシュ・メモリ106に直接的に接続される。サーバは、限定はしないがLinux(商標)オペレーティング・システムなどのオペレーティング・システムを実行する。サーバは、ネットワーク130に接続され、それによってリモート・ネットワーク・ユーザ120およびアプリケーション130は、記憶手段(例えばLTFSファイル・システム)をマウントし、直接的にデータを格納し、記憶手段からデータを取り出すことができる。
したがって、記憶システムは、図1に示すように、単一の論理アドレス空間として論理的に構成することのできるキャッシュ・メモリとして使用される1つまたは複数の記憶装置(例えば、HDD/SSDアレイ)と、並列に動作する1つまたは複数のテープ・ドライブを備えることのできる記憶手段とを備える。記憶システムは、磁気テープ媒体などの1つまたは複数の記憶装置をさらに備える。テープ・ライブラリは通常、LTFSファイル・システムを使用して管理される。別のファイル・システムを使用できることを理解されたい。LTFSファイル・システムは、テープ・ライブラリとHDDアレイがどちらも直接的に接続されるサーバ102内で動作する。キャッシュ・メモリは、LTFSファイル・システム用のキャッシュとして使用され、有利には、記憶手段上に格納されるデータに対する高速ランダム・アクセスが実現される。
次に図8を参照すると、本発明の一実施形態によるフローチャートが示されている。
ステップ600〜602で、記憶システムが、1つまたは複数のリモート・システムからファイルのシーケンスを読み取ることを求める少なくとも1つの読取り要求を受信するかどうかを監視する。言い換えれば、読取り要求が一定のパターンに合致するかどうか判定を行う。パターンは、ディレクトリからシーケンシャルに読み取られるファイルによって示されることがある。図1〜3に示されるように、リモート・システムはアプリケーションでよい。要求は、記憶システムにより、記憶システムの通信コントローラおよび適切なインターフェース23、24、25、26、27を通じて受信される。
ステップ604で、ファイルのシーケンスのファイルのうち、1つまたは複数のキャッシュされたファイルが既にキャッシュ・メモリ上に格納されているかどうか、および1つまたは複数の残りのファイルがまだキャッシュ・メモリ上に格納されていないかどうかを判定する。言い換えれば、要求されたファイルうちのどのファイルが、キャッシュ上および記憶手段上に位置するかを判定する。これは、以前に合致したすべてのファイルの名前が求められ、言い換えればファイルがキャッシュ・メモリ上に格納されると言うことに相当する。
次に、ステップ610で、キャッシュ・メモリ上に格納されたファイルを読み取る。これにより、直前に/頻繁にキャッシュされたファイルへのより高速なアクセスが実現される。
次いで、ステップ606で、1つまたは複数の残りのファイル内で、記憶システム上で前記残りのファイルを読み取るべき順序を決定する。したがって、記憶手段上に格納されたファイルのシーケンスの要求されたファイルのランキングを実施する。言い換えれば、ファイルは何らかのシーケンスで構成される。記憶システムの所定のデータ・フォーマットに従って記憶システム上に格納された残りのファイルの場所が与えられたとして、これらのファイルの順序付けが実施される。
ステップ610および606を同時に実施できることを理解されたい。
LTFSによって管理されるスタンドアロン・テープ・ドライブなどのシーケンシャル・アクセス媒体では、仮想拡張属性を通じてユーザにとって利用可能な、LTFSメタデータの部分としての各ファイルについての開始ブロックを含むLTFSフォーマットにより、テープ上のファイルの場所によるファイルの順序付けが可能になる。
次に図5〜7を参照すると、所定のデータ・フォーマットに従って記憶システム上に格納されたファイルの場所の一例が示されている。特に、図5〜7は、LTFSによって管理されるスタンドアロン・テープ・ドライブ(またはテープ・ライブラリ)などのシーケンシャル・アクセス媒体内に配置されたファイルを示す。
記憶システムは、1つまたは複数のリモート・システムから読取りおよび書込みコマンドを得る。リモート・システムは、ディレクトリまたはサブディレクトリ上に格納されるすべてのファイルに関する読取りを実施することができる。しかし、一部のファイルが経時的に変更された可能性があり、後続の場所に存在することがあるので、これらのファイルは、テープ上にシーケンシャルに配置されないことがある。LTFSカートリッジ上で修正され、上書きされるファイルが、定位置で修正されるのではなく、テープに付加される。上述の状況が図5〜7に示されている。
図5は、テープ上の1つのディレクトリに関するファイルの位置を示す。ファイルはシーケンシャルにバックアップされているので、ファイルはテープ上にシーケンシャルに配置される。
図6は、file1およびfile2が変更され、したがってテープの終わりに書き込まれることを示す。file1はこのときfile1’と呼ばれ、file2はこのときfile2’と呼ばれる。
図7は、file3が変更され、そのバックアップの前に、他のファイルがバックアップされたことを示す。変更後のfile3はfile3’と呼ばれる。図7は、file3’がテープの終わりにあり、file1’およびfile2’がfile1〜file5とfile3’との間に位置するので、file1〜file5の最新バージョンの復元がテープを前後に複数回移動させることを必要とすることを明らかにする。したがって、file1’およびfile2’は中央のどこかにあり、file4およびfile5はテープの先頭の方にある。
図7では、LTFSによって管理されるテープ上のファイルの場所または位置に従ってファイルを順序付けることができ、ファイルfile4およびfile5がテープの先頭の方にあり、その後に続いて、ファイルfile1’およびfile2’がテープの中央にあり、最後に、ファイルfile3’がテープの終わりに位置する。
図8に戻ると、ステップ608で、順序付けステップ606に従って、記憶システム上の1つまたは複数の残りのファイルを読み取る。残りのファイルをキャッシュ・メモリ上にも格納し、すなわち、記憶手段からキャッシュ・メモリにファイルをコピーする。任意選択で、ファイルを読み取るのと同じ順序で記憶手段上にファイルをコピーすることができる。記憶手段上に格納したファイルの読取りおよびコピーを付随して実施できることを理解されたい。
あるいは、ステップ608で、順序付けステップ606に従って残りのファイルをキャッシュ・メモリ上にまず格納し、次いでキャッシュ・メモリから読み取る。この場合、順序付けステップに従って読取りを行うこともできる。
したがって、本発明による方法は、記憶手段上に格納されたファイルのキャッシュ・メモリへのプリフェッチングを実現し、したがって、バックアップ/復元や移行などの一般的なテープ特有の使用ケースを高速化することが可能となる。実際に、これらのバックアップ/復元および移行の操作は、本発明に従ってキャッシュ・メモリに格納されるファイルのシーケンスを読み取ることを必要とする。通常、記憶手段上に格納されたファイルのキャッシュ・メモリへのプリフェッチングは、記憶手段のディレクトリ(またはサブディレクトリ)に格納されたすべてのファイルに適用することができる。したがって、本発明の方法は、ディレクトリに格納されたすべてのファイルをキャッシュ・メモリにプリフェッチすることを可能にする。
本発明による方法は、1つのディレクトリに格納されるすべてのファイルだけに適用されるわけではないことを理解されたい。本発明による方法は、ファイルが記憶手段の単一の記憶装置上に格納されるかに関わらず、複数のファイルが記憶手段から読み取られる任意のシナリオに適用することができる。例えば、LTFSストレージは、1つのテープまたは複数のテープを含むことができる。この場合、ファイルのシーケンスのファイルが、格納されるテープに従って、かつこのテープ上のファイルの場所に従って順序付けられる。その結果、ファイルが、ソートされた順序で各テープ上で読み取られ、テープが、ソートされた順序で読み取られる。
次に図2を参照すると、アプリケーションやクライアントなどのリモート・システムと、図1に示される記憶システムとの間のデータ経路図の一例が示されている。記憶システム100は、アプリケーション110やクライアント120などのシステムにより、例えばネットワークを介してリモートにアクセスされる。他のシステムは、GPFS(General Parallel File System)クラスタやNAS(Network-attachedstorage)ファイラなどのファイル・システム・サーバでよい。
リモート・システムは、ネットワーク・ファイル・システムを使用して記憶システムをマウントすることにより、またはFTP(ファイル転送プロトコル)プロトコルまたはSSH(Secure SHell)プロトコルを使用してデータを記憶システムから読み取り、記憶システムに書き込むことにより、記憶システムにアクセスすることができる。記憶システム100にリモートにアクセスするために任意の他のプロトコルを使用できることを理解されたい。
記憶システム100は、図2に示される適切なインターフェース23、24、25、26、27を提供し、したがって記憶システムを使用して、多数のアプリケーション110に関するストレージの必要に対処することができる。図2では、記憶システムは、LTFSソフトウェア22を使用して管理される記憶手段として多数のテープ・ドライブを備える。限定はしないが、以下は、テープ・ドライブ上に格納されるファイルを管理するアプリケーションの例である。
1)ネットワークを介して記憶システムに接続されたGPFS(または他の)ファイル・システムのバックアップ。GPFSファイル・システム全体または個々のディレクトリまたはファイル・セットを記憶システム内にバックアップすることができる。フル・バックアップまたは増分バックアップを取ることができ、同一または異なるテープ・カートリッジ上で複数のバージョンをサポートすることができる。さらに、同一または異なるファイル・システム/クラスタから生じる複数のバックアップを同一のアプライアンスでサポートすることができる。有利には、LTFSは、テープ・カートリッジ上でバックアップを自己完結型または自己記述型にすることを可能にし、ユーザがTSMサーバを配置および維持する必要が省かれる。さらに、GPFSのファイル属性をLTFS上に保存することができ、LTFSに対する何らかの修正と共に実施することもできる。バックアップ・プロセスは、GPFSノードまたはテープ・アプライアンス自体によって調整することができ、以下のステップで略述される。
a.クラスタ内で動作中のGPFSポリシーが、最後のバックアップ以降に変更されたファイルを識別する。
b.ポリシーが、外部プロセスを起動してバックアップを実施する。
c.バックアップ・プロセスが、アプライアンスにファイルをコピーし、GPFSファイル属性を保存する。
d.SSHを介して、またはNFS/CIFSマウントを使用してコピー操作を行うことができる。
e.プロセスが終了した時、テープ・カートリッジを取り外し、ボールト(vault)に入れ、または任意の他のシステムに移動することができる。
同一または任意の他のテープ・システム内のテープを単に読み取ることにより、およびGPFSと同一の名前空間を保つことを可能にするLTFSによって提供されるファイル・システム・インターフェースを活用することにより、バックアップからファイルを復元することができる。このことは、ファイラからバックアップされた任意のファイルが、容易な回復を可能にするLTFS内の名前(経路およびファイル)を有することができることを意味する。
2)GPFS(または他の)ファイル・システムからのファイルの移行、すなわち、テープ・ストレージをストレージ階層内のティアとして用いるファイルの移行。ユーザは、ファイルまたはディレクトリに関する移行基準をユーザ指定のGPFSポリシーの形で指定し、システムは、上述の指定の基準を満たすファイルをテープ・アプライアンスに移行することにより、テープ上にデータをシームレスに配置する。テープ・アプライアンスに移行する各ファイルについて、ファイル・スタブ(プレースホルダ)によってGPFS内にファイルを配置する。それによって、ファイルはGPFS名前空間内にとどまり、ユーザおよび既存のアプリケーションによって通常のファイルとしてアクセスすることができる。移行したファイルへのアクセス時に、テープ・アプライアンスからファイルを再呼出しする。
3)古いスナップショットをファイラからLTFSにコピーし、より古いスナップショットをファイラから削除するための、NASファイラ(例えば、NetAppファイラ)との統合。この利点は、通常はより多くの記憶容量を必要とする、より古いスナップショットが、LTFS上に格納され、LTFSファイル・システム・インターフェースを通じてシームレスにアクセスすることができることであり、LTFSファイル・システム・インターフェースは、NASファイラによって提供されるNFSやCIFSなどのNASインターフェースでもよい。
4)媒体管理(MAM)では、媒体はしばしば、同一のデータ・ストリームの複数のバージョンを含む。一般的な慣行は、オーディオ・ビデオ・ストリームの高精細度バージョンを、同じコンテンツの低解像度バージョンであるいわゆる「プロキシ」と共に有することである。プロキシに関するファイルをキャッシュすることは非常に有益なはずである。これが、コンテンツを編集/カットしてカット・リストを生成するためにより頻繁に使用されているからであり、後で、プレイアウト・ストリームを生成するために、または直接的なプレイアウトのために、カット・リストが高精細の元のストリームに適用される。
5)限定はしないが、媒体管理、バージョニング、ボールティング、フォーマット・チェック、および格納されたファイルの回復を含む、記憶システムをリモートに管理するためのグラフィカル・ユーザ・インターフェース。
本発明による記憶システム上に格納されたファイルを読み取るための方法は、サーバ102上で動作中の、サーバによって実行されるコンピュータ・プログラムとして実装することができる。実際には、記憶手段を管理するように適合されたコード部分と共に方法が実装される。例えば、図2を参照すると、テープ・ドライブ104を管理するように適合されたLTFSソフトウェアのLTFSコード内で方法を実装することができる。
あるいは、外部モジュールとしてサーバ102の外部で方法を実装することもできる。それによって、記憶手段104の所与のファイル・システムを、将来の任意の他のテープ・ファイル・システムで置き換えることができる。そのような外部モジュールは、記憶システムのOSと、記憶手段のファイル・システムのどちらともインターフェースする必要があることを理解されたい。
好ましくは、本発明による方法を実装するコンピュータ・プログラムは、ユーザ空間プログラム構成要素である。有利には、ユーザ空間ソフトウェア構成要素は(カーネル空間のものとは対照的に)実装の複雑さを低くすることを可能にするので、これにより、ポータビリティを改善することが可能となる。
次に図3を参照すると、図1に示される記憶システムのデータ経路図の別の例が示されている。記憶システム100は、ネットワーク・インターフェース、例えば図1の通信コントローラ1016を備える。図3では、記憶システムに対するすべてのI/O操作は、LTFSファイル・システム操作として実現される。例えば、記憶システムへのクライアント書込みは常に、図3に示されるように、特定のオフセットで開始し、特定のバイト長を有する、LTFSファイルへの書込み操作となる。第1のシナリオでは、リモート・ユーザ110が、記憶システムに対するNFSマウントを使用して、ファイル"/ltfs/greetings.txt"への書込みを発行する。書込みが、サーバ(図示せず)によってLTFS22に渡される。次いで、LTFSは、このファイルがHDDキャッシュ106内に既にキャッシュされていることを発見し、書込みがHDD上に吸収され、"/ltfs/greetings.txt"は、HDDファイル・システム上のext3ファイルである。異なるシナリオでは、別のリモート・ユーザ120が、FTPプロトコルを使用して記憶システム上のファイルからいくつかのバイトを読み取ることを望む。ユーザはFTP get要求を発行し、アプライアンス・サーバがそれをLTFS読取り要求に変換する。LTFSは、キャッシュ内で要求されたファイルを探すが、そこにはないことを発見する。したがって、LTFSは、要求されたファイルをテープ・ライブラリから読み取り、最初の100バイトをユーザに返す。その時点で、LTFSは、HDD上にファイルをキャッシュするかどうかを選ぶことができる。
次に図4を参照して、図1上に示される記憶システムのキャッシュ・メモリの一例を論じる。キャッシュ・メモリは通常、不揮発性ストレージであり、したがってキャッシュ・メモリは、修正後データと未修正データのどちらもファイル・レベルで安全に保持することができる。
通常、キャッシュ・メモリ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キャッシュにあると判明した場合、FIFOキャッシュからユーザ読取りをサービスすることができる。
任意選択で、同時に、キャッシュの2つの領域の作業負荷に応じて、それらの間でファイルが移動され、実際に、キャッシュ・メモリは限られた記憶容量サイズを有し、FIFOおよびLRU区間へのそのパーティションは、一定レベルの制御を必要とする。言い換えれば、キャッシュ容量は、1組の規則に従って管理される。キャッシュ容量管理のための以下の規則を使用することができる。
FIFO領域が満杯である場合、最も古いファイルがエビクトされる。キャッシュからファイルをエビクトすることは、まずファイルをテープにコピーすることを必要とすることがある。
LRU領域が満杯である場合、最少のアクセス数および最も古い最終アクセス時刻を有するファイルがエビクトされる。キャッシュからファイルをエビクトすることは、まずファイルをテープにコピーすることを必要とすることがある。
FIFO領域が満杯であり、LRU領域が少なくとも50%の空き容量を有する場合、FIFO領域は、LRU領域容量の30%を得る。
LRU領域が満杯であり、FIFO領域が少なくとも50%の空き容量を有する場合、LRU領域は、FIFO領域容量の30%を得る。
上述の割合は設計パラメータであり、特定のアプリケーションおよび作業負荷に応じて変化することがあることを理解されたい。

Claims (13)

  1. 記憶システム上に格納されたファイルを読み取るための方法であって、前記記憶システムが、
    所定のデータ・フォーマットに従ってファイルの第1のセットを格納する記憶手段(104)と、
    ファイルの第2のセットを格納するキャッシュ・メモリ(106)であって、ファイルの前記第2のセットが、ファイルの前記第1のセットのサブセットである、前記キャッシュ・メモリ(106)とを備え、
    前記記憶システムが、1つまたは複数のリモート・システム(110、120)が前記記憶手段または前記キャッシュ・メモリあるいはその両方の上に格納されたファイルを読み取ることを可能にするように構成され、
    ファイルのシーケンスを読み取ることを求める少なくとも1つの読取り要求を1つまたは複数のリモート・システムから受信すること(602)、
    前記シーケンスのファイルのうち、1つまたは複数のキャッシュされたファイルが既に前記キャッシュ・メモリ上に格納されているかどうか、および1つまたは複数の残りのファイルがまだ前記キャッシュ・メモリ上に格納されていないかどうかを判定すること(604)、
    前記所定のデータ・フォーマットに従って前記記憶システム上に格納された前記残りのファイルの場所が与えられたとして、前記1つまたは複数の残りのファイル内で、前記記憶システム上で前記残りのファイルを読み取るべき順序を決定すること(606)、
    前記順序に従って前記記憶システム上の前記1つまたは複数の残りのファイルを読み取り、前記キャッシュ・メモリ上に前記残りのファイルを格納すること(608)
    を含む方法。
  2. 前記記憶システムが、前記キャッシュ・メモリとして使用される不揮発性メモリを備える、請求項1に記載の方法。
  3. 前記キャッシュ・メモリとして使用される前記不揮発性メモリが、ハード・ディスク・ドライブまたは固体ドライブあるいはその両方のアレイを含む、請求項2に記載の方法。
  4. ハード・ディスク・ドライブまたは固体ドライブあるいはその両方の前記アレイが、単一の論理アドレス空間として編成される、請求項3に記載の方法。
  5. 前記キャッシュ・メモリがファイル・レベル・キャッシュ・メモリである、請求項1ないし4のいずれかに記載の方法。
  6. 前記キャッシュ・メモリがブロック・レベル・キャッシュ・メモリである、請求項1ないし4のいずれかに記載の方法。
  7. 前記記憶手段が、Linear Tape File Systemデータ・フォーマットに従ってファイルの前記第1のセットを格納する少なくとも1つの磁気テープ媒体を含み、前記記憶システム上に格納される前記残りのファイルの場所が、前記Linear Tape File Systemデータ・フォーマットのメタデータの部分としてのそれぞれの残りのファイルの開始ブロックに従って決定される、請求項1ないし6のいずれかに記載の方法。
  8. 前記キャッシュ・メモリが、先入れ先出しポリシー管理を使用して管理される第1の領域(40)と、最長時間未使用ポリシー管理を使用して管理される第2の領域(42)とを含み、前記第1および第2の領域が、キャッシュ容量管理に関する1組の規則に従ってファイルの前記第2のセットを格納するように適合される、請求項1ないし7のいずれかに記載の方法。
  9. 前記1組の規則が、少なくとも以下の規則
    i)前記第1の領域が満杯である場合、前記第2のセットの最も古いファイルが、前記記憶手段にコピーされ、前記第1の領域からエビクトされる、
    ii)前記第1の領域が満杯であり、前記第2の領域が空き容量を有する場合、前記第1の領域が、前記第2の領域の前記空き容量の所与の割合を得る、
    iii)前記第2の領域が満杯である場合、最少のアクセス数および最も古い最終アクセス時刻の前記第2のセットの前記ファイルが、前記記憶手段にコピーされ、前記第2の領域からエビクトされる、
    iv)前記第2の領域が満杯であり、前記第1の領域が空き容量を有する場合、前記第2の領域が、前記第1の領域の前記空き容量の所与の割合を得る
    を含む、請求項8に記載の方法。
  10. 記憶システム上に格納されたファイルを読み取るための、コンピュータ可読媒体上に格納されたコンピュータ・プログラムであって、請求項1ないし9のいずれか一項に記載の方法のステップをコンピュータに行わせるコード手段を含むコンピュータ・プログラム。
  11. Linear Tape File Systemとして前記記憶手段を管理するコード手段であって、前記記憶手段が、前記Linear Tape File Systemを使用して管理される少なくとも1つの磁気テープ媒体を有するスタンドアロン・テープ・ライブラリを備える、前記コード手段をさらに含む、請求項10に記載のコンピュータ・プログラム。
  12. ユーザ空間プログラム構成要素である、請求項10または11に記載のコンピュータ・プログラム。
  13. 所定のデータ・フォーマットに従ってファイルの第1のセットを格納する記憶手段(104)と、
    ファイルの第2のセットを格納するキャッシュ・メモリ(106)であって、ファイルの前記第2のセットがファイルの前記第1のセットのサブセットである、前記キャッシュ・メモリ(106)と、
    1つまたは複数のリモート・システム(110、120)から読取りおよび書込み要求を受信する少なくとも1つのインターフェース(23、24、25、26、27)と、
    請求項10ないし12のいずれかに記載のコンピュータ・プログラムの命令を実行する処理装置(102)と
    を備える記憶システム(100)。
JP2014520434A 2011-11-18 2012-10-26 記憶システム上に格納されたファイルを読み取るための方法、コンピュータ・プログラム、記憶システム Pending JP2014533850A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11189769 2011-11-18
EP11189769.0 2011-11-18
PCT/JP2012/006885 WO2013073114A1 (en) 2011-11-18 2012-10-26 Reading files stored on a storage system

Publications (1)

Publication Number Publication Date
JP2014533850A true JP2014533850A (ja) 2014-12-15

Family

ID=48428072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014520434A Pending JP2014533850A (ja) 2011-11-18 2012-10-26 記憶システム上に格納されたファイルを読み取るための方法、コンピュータ・プログラム、記憶システム

Country Status (5)

Country Link
US (1) US8862815B2 (ja)
EP (1) EP2780811B8 (ja)
JP (1) JP2014533850A (ja)
CN (1) CN103917962A (ja)
WO (1) WO2013073114A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111344681A (zh) * 2017-11-28 2020-06-26 国际商业机器公司 在磁带驱动器上使用模拟读取的快速定位

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832365B1 (en) 2012-04-20 2014-09-09 Kip Cr P1 Lp System, method and computer program product for a self-describing tape that maintains metadata of a non-tape file system
US9563365B2 (en) 2012-04-30 2017-02-07 Kip Cr P1 Lp System and method for using a memory buffer to stream data from a tape to multiple clients
US8977827B1 (en) 2012-05-31 2015-03-10 Kip Cr P1 Lp System, method and computer program product for recovering stub files
US9053108B2 (en) * 2013-02-05 2015-06-09 International Business Machines Corporation File system extended attribute support in an operating system with restricted extended attributes
JP2015005229A (ja) * 2013-06-21 2015-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テープカートリッジのファイルを複製する方法、プログラム及びテープドライブ
JP5956971B2 (ja) * 2013-11-07 2016-07-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation LTFS(LinearTapeFileSystem)によって実現するWORMカートリッジのサポート
GB2536385B (en) 2013-12-11 2017-01-04 Ibm Method for backing up data on tape
US9940167B2 (en) 2014-05-20 2018-04-10 Red Hat Israel, Ltd. Identifying memory devices for swapping virtual machine memory pages
JP6080799B2 (ja) * 2014-05-28 2017-02-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テープ記録システム用ファイルシステムを介した読み書きする方法
JP6041839B2 (ja) * 2014-09-04 2016-12-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メタ情報を保管する方法、プログラム、及びそのテープ記録システム
US10909118B2 (en) * 2016-02-04 2021-02-02 Salesforce.Com, Inc. Cache optimization for missing data
US9952770B2 (en) 2016-06-14 2018-04-24 International Business Machines Corporation Responding to recall operations based on file migration time
US10037149B2 (en) * 2016-06-17 2018-07-31 Seagate Technology Llc Read cache management
CN106201734B (zh) * 2016-06-22 2023-09-01 北京小米移动软件有限公司 文件分享方法及装置
US10241685B2 (en) * 2016-08-17 2019-03-26 Oracle International Corporation Externally managed I/O starvation avoidance in a computing device
US10296265B2 (en) 2016-12-09 2019-05-21 International Business Machines Corporation Reduced data access time on tape with data redundancy
US10737563B2 (en) 2018-01-09 2020-08-11 Tectum Holdings Inc. Bias regulated rolling truck bed cover
US10620865B2 (en) 2018-05-24 2020-04-14 International Business Machines Corporation Writing files to multiple tapes
CN111104388B (zh) * 2018-10-26 2023-09-15 伊姆西Ip控股有限责任公司 访问文件的方法、设备和计算机可读介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5829046A (en) 1995-10-27 1998-10-27 Emc Corporation On-line tape backup using an integrated cached disk array
US7006099B2 (en) 2000-08-15 2006-02-28 Aware, Inc. Cache system and method for generating uncached objects from cached and stored object components
JP3612271B2 (ja) * 2000-09-12 2005-01-19 株式会社東芝 ファイルシステム
EP1229433A1 (en) * 2001-01-31 2002-08-07 Hewlett-Packard Company File sort for backup
US6711580B2 (en) 2001-10-01 2004-03-23 International Business Machines Corporation Data management system, apparatus, and method to use buffered file marks
AU2003290678B2 (en) * 2002-11-08 2009-12-24 Arbitration Forums, Inc. A system and process for electronic subrogation, inter-organization workflow management, inter-organization transaction processing and optimized web-baser user interaction
EP1505506A1 (en) * 2003-08-05 2005-02-09 Sap Ag A method of data caching
JP4240300B2 (ja) * 2003-08-20 2009-03-18 ソニー株式会社 再生装置及び再生方法、並びに記録装置及び記録方法
US7577786B2 (en) * 2005-12-08 2009-08-18 Quality Systems Associates, Inc. Restore accelerator for serial media backup systems
CN101122888A (zh) 2006-08-09 2008-02-13 国际商业机器公司 写入和读取应用数据的方法和系统
US7644204B2 (en) 2006-10-31 2010-01-05 Hewlett-Packard Development Company, L.P. SCSI I/O coordinator
US7443629B1 (en) 2007-04-09 2008-10-28 International Business Machines Corporation Apparatus, system, and method for optimizing fast access data storage on segmented tape media
GB2448353B (en) * 2007-04-12 2012-02-29 Xendata Ltd A file archiving system
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
JP5068197B2 (ja) * 2008-02-26 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション データをテープ媒体に書き込む装置及び方法
US8195878B2 (en) 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
CN101521673B (zh) * 2009-04-09 2012-05-02 杭州华三通信技术有限公司 一种资源分配方法和装置
US8103623B2 (en) * 2010-02-25 2012-01-24 Silicon Motion Inc. Method for accessing data stored in storage medium of electronic device
US9063666B2 (en) * 2010-03-25 2015-06-23 International Business Machines Corporation File index, metadata storage, and file system management for magnetic tape

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111344681A (zh) * 2017-11-28 2020-06-26 国际商业机器公司 在磁带驱动器上使用模拟读取的快速定位
JP2021504867A (ja) * 2017-11-28 2021-02-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テープ・ドライブ上で模倣読み取りを使用する高速な位置特定
JP7116383B2 (ja) 2017-11-28 2022-08-10 インターナショナル・ビジネス・マシーンズ・コーポレーション テープ・ドライブ上で模倣読み取りを使用する高速な位置特定
CN111344681B (zh) * 2017-11-28 2023-10-27 国际商业机器公司 在磁带驱动器上使用模拟读取的快速定位

Also Published As

Publication number Publication date
US20130132663A1 (en) 2013-05-23
US8862815B2 (en) 2014-10-14
EP2780811A4 (en) 2015-07-15
EP2780811B1 (en) 2018-05-09
CN103917962A (zh) 2014-07-09
WO2013073114A1 (en) 2013-05-23
EP2780811B8 (en) 2018-10-17
EP2780811A1 (en) 2014-09-24

Similar Documents

Publication Publication Date Title
US8862815B2 (en) Reading files stored on a storage system
US9990395B2 (en) Tape drive system server
US9460106B2 (en) Data synchronization among file storages using stub files
US8806154B1 (en) Thin provisioning row snapshot with reference count map
US8856437B2 (en) System, method and computer program product for optimization of tape performance using distributed file copies
US8799413B2 (en) Distributing data for a distributed filesystem across multiple cloud storage systems
US9319265B2 (en) Read ahead caching of data from cloud storage and method thereof
US8805968B2 (en) Accessing cached data from a peer cloud controller in a distributed filesystem
US8799414B2 (en) Archiving data for a distributed filesystem
US9256630B2 (en) Managing ownership of redundant data
JP5818207B2 (ja) フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブのためのシステム、方法、コンピュータ・プログラム(フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブ)
US8805967B2 (en) Providing disaster recovery for a distributed filesystem
US9542396B1 (en) Managing a file system to avoid unnecessary replay of a transaction log
US7831565B2 (en) Deletion of rollback snapshot partition
KR101369813B1 (ko) 광 디스크 저장 시스템에 저장된 미디어에의 액세스, 압축 및 추적
US20140331007A1 (en) Virtual library controller and control method
US10831624B2 (en) Synchronizing data writes
TW201342052A (zh) 磁帶機系統伺服器
US9128854B1 (en) System and method for data prediction