(57)【要約】【課題】記憶システム上に格納されたファイルを読み取るための方法を提供すること。【解決手段】記憶システムは、所定のデータ・フォーマットに従ってファイルの第１のセットを格納する記憶手段と、ファイルの第２のセットを格納するキャッシュ・メモリであって、ファイルの第２のセットが、ファイルの第１のセットのサブセットであるキャッシュ・メモリとを備える。リモート・システムが記憶手段またはキャッシュ・メモリあるいはその両方の上に格納されたファイルを読み取ることを可能にする。この方法は、ファイルのシーケンスを読み取ることを求める少なくとも１つの読取り要求を１つまたは複数のリモート・システムから受信すること、シーケンスのファイルのうち、１つまたは複数のキャッシュされたファイルが既にキャッシュ・メモリ上に格納されているかどうか、および１つまたは複数の残りのファイルがまだキャッシュ・メモリ上に格納されていないかどうかを判定すること、前記所定のデータ・フォーマットに従って記憶システム上に格納された前記残りのファイルの場所が与えられたとして、前記１つまたは複数の残りのファイル内で、記憶システム上で前記残りのファイルを読み取るべき順序を決定すること、前記順序に従って記憶システム上の前記１つまたは複数の残りのファイルを読み取り、キャッシュ・メモリ上に残りのファイルを格納することを含む。【選択図】図８
2014533850.tif 000002
【特許請求の範囲】
【請求項１】
記憶システム上に格納されたファイルを読み取るための方法であって、前記記憶システムが、
所定のデータ・フォーマットに従ってファイルの第１のセットを格納する記憶手段（１０４）と、
ファイルの第２のセットを格納するキャッシュ・メモリ（１０６）であって、ファイルの前記第２のセットが、ファイルの前記第１のセットのサブセットである、前記キャッシュ・メモリ（１０６）とを備え、
前記記憶システムが、１つまたは複数のリモート・システム（１１０、１２０）が前記記憶手段または前記キャッシュ・メモリあるいはその両方の上に格納されたファイルを読み取ることを可能にするように構成され、
ファイルのシーケンスを読み取ることを求める少なくとも１つの読取り要求を１つまたは複数のリモート・システムから受信すること（６０２）、
前記シーケンスのファイルのうち、１つまたは複数のキャッシュされたファイルが既に前記キャッシュ・メモリ上に格納されているかどうか、および１つまたは複数の残りのファイルがまだ前記キャッシュ・メモリ上に格納されていないかどうかを判定すること（６０４）、
前記所定のデータ・フォーマットに従って前記記憶システム上に格納された前記残りのファイルの場所が与えられたとして、前記１つまたは複数の残りのファイル内で、前記記憶システム上で前記残りのファイルを読み取るべき順序を決定すること（６０６）、
前記順序に従って前記記憶システム上の前記１つまたは複数の残りのファイルを読み取り、前記キャッシュ・メモリ上に前記残りのファイルを格納すること（６０８）
を含む方法。
【請求項２】
前記記憶システムが、前記キャッシュ・メモリとして使用される不揮発性メモリを備える、請求項１に記載の方法。
【請求項３】
前記キャッシュ・メモリとして使用される前記不揮発性メモリが、ハード・ディスク・ドライブまたは固体ドライブあるいはその両方のアレイを含む、請求項２に記載の方法。
【請求項４】
ハード・ディスク・ドライブまたは固体ドライブあるいはその両方の前記アレイが、単一の論理アドレス空間として編成される、請求項３に記載の方法。
【請求項５】
前記キャッシュ・メモリがファイル・レベル・キャッシュ・メモリである、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記キャッシュ・メモリがブロック・レベル・キャッシュ・メモリである、請求項１ないし４のいずれかに記載の方法。
【請求項７】
前記記憶手段が、Linear Tape File Systemデータ・フォーマットに従ってファイルの前記第１のセットを格納する少なくとも１つの磁気テープ媒体を含み、前記記憶システム上に格納される前記残りのファイルの場所が、前記Linear Tape File Systemデータ・フォーマットのメタデータの部分としてのそれぞれの残りのファイルの開始ブロックに従って決定される、請求項１ないし６のいずれかに記載の方法。
【請求項８】
前記キャッシュ・メモリが、先入れ先出しポリシー管理を使用して管理される第１の領域（４０）と、最長時間未使用ポリシー管理を使用して管理される第２の領域（４２）とを含み、前記第１および第２の領域が、キャッシュ容量管理に関する１組の規則に従ってファイルの前記第２のセットを格納するように適合される、請求項１ないし７のいずれかに記載の方法。
【請求項９】
前記１組の規則が、少なくとも以下の規則
ｉ）前記第１の領域が満杯である場合、前記第２のセットの最も古いファイルが、前記記憶手段にコピーされ、前記第１の領域からエビクトされる、
ｉｉ）前記第１の領域が満杯であり、前記第２の領域が空き容量を有する場合、前記第１の領域が、前記第２の領域の前記空き容量の所与の割合を得る、
ｉｉｉ）前記第２の領域が満杯である場合、最少のアクセス数および最も古い最終アクセス時刻の前記第２のセットの前記ファイルが、前記記憶手段にコピーされ、前記第２の領域からエビクトされる、
ｉｖ）前記第２の領域が満杯であり、前記第１の領域が空き容量を有する場合、前記第２の領域が、前記第１の領域の前記空き容量の所与の割合を得る
を含む、請求項８に記載の方法。
【請求項１０】
記憶システム上に格納されたファイルを読み取るための、コンピュータ可読媒体上に格納されたコンピュータ・プログラムであって、請求項１ないし９のいずれか一項に記載の方法のステップをコンピュータに行わせるコード手段を含むコンピュータ・プログラム。
【請求項１１】
Linear Tape File Systemとして前記記憶手段を管理するコード手段であって、前記記憶手段が、前記Linear Tape File Systemを使用して管理される少なくとも１つの磁気テープ媒体を有するスタンドアロン・テープ・ライブラリを備える、前記コード手段をさらに含む、請求項１０に記載のコンピュータ・プログラム。
【請求項１２】
ユーザ空間プログラム構成要素である、請求項１０または１１に記載のコンピュータ・プログラム。
【請求項１３】
所定のデータ・フォーマットに従ってファイルの第１のセットを格納する記憶手段（１０４）と、
ファイルの第２のセットを格納するキャッシュ・メモリ（１０６）であって、ファイルの前記第２のセットがファイルの前記第１のセットのサブセットである、前記キャッシュ・メモリ（１０６）と、
１つまたは複数のリモート・システム（１１０、１２０）から読取りおよび書込み要求を受信する少なくとも１つのインターフェース（２３、２４、２５、２６、２７）と、
請求項１０ないし１２のいずれかに記載のコンピュータ・プログラムの命令を実行する処理装置（１０２）と
を備える記憶システム（１００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶システム用のキャッシュ・アーキテクチャの分野に関し、詳細には、記憶システム上のファイルを読み取るための方法に関する。
【背景技術】
【０００２】
過去数年にわたるＨＤＤ（ハード・ディスク・ドライブ）技術の著しい進歩にもかかわらず、磁気テープ・システムが、現在のティアード・ストレージ・インフラストラクチャ（tiered storage infrastructure）の一体型部分を構成する。テープ技術は、データの低コストの長期記憶、ならびにバックアップおよび災害復旧目的で、省エネルギー、セキュリティ、寿命、および信頼性を含むいくつかの重要な利点をもたらす。
【０００３】
データがテープ・システムに記録された後は、媒体は受動的である。このことは、データが単にラック内にとどまり、電力が不要であることを意味する。類似のディスク・ベースのシステムと比べて、テープ・ベースのアーカイブの消費電力は約２９０分の１である。セキュリティに関して、データが記録され、カートリッジがアクセス・システムから取り外された後は、カートリッジがアクティブなシステムに再インストールされるまで、データはアクセス不能である。セキュリティは、ドライブ・レベルの暗号化によってさらに高められ、ドライブ・レベルの暗号化は、Linear Tape Open generation-4ドライブ（ＬＴＯ−４）で導入され、企業レベルのテープ・ドライブでも標準的である。テープ媒体は３０年以上の寿命を有する。しかし、より大容量のカートリッジへの移行に関連するテープ・ハードウェアおよびコスト節約の急速な進歩のために、これが利用されることはまれである。信頼性に関して、ＬＴＯ−４テープは、少なくともＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）ＨＤＤよりも良好な大きさのビット・エラー率を有する。さらに、テープ媒体が取外し可能であり、相互交換可能であることは、ＨＤＤとは対照的に、カートリッジを単に別のドライブにマウントすることができるので、テープ・ドライブの機械的故障によってデータが失われないことを意味する。
【０００４】
上記の利点のすべては、コストおよび信頼性というテープ・システムの主な正味の利点に寄与する。ディスクとテープの間のコスト節約の推定は、３から２０倍超までの範囲である。
【０００５】
ハード・ディスクは、データへのランダム・アクセスを実現し、一般には、ファイル・システムによって管理されるファイル索引を含む。これらのファイルには、様々なオペレーティング・システムおよびアプリケーションを使用して、アプリケーション・プログラミング・インターフェース（ＡＰＩ）の標準セットによってアクセスすることができる。対照的に、テープは、「シングリング（shingling）」と呼ばれる技法を使用してシーケンシャル（線形順次式：linearsequential fashion）に書き込まれ、シングリングは、後方書込み互換性を実現するが、新しいデータを終わりに付加できるだけであること、および以前に書き込まれたエリアは、カートリッジ全体が再利用され、再書込みされる場合に再利用できるだけであることも示唆する。従来のテープ・システムでは、所与のカートリッジ上に書き込まれるファイルの索引は通常、知的所有権のあるバック・アップ・アプリケーションなどのアプリケーションによって管理される外部データベース内に保たれるだけである。外部データベースにアクセスしてデータを取り出す必要により、テープ上のデータは、ＨＤＤやＵＳＢ（ユニバーサル・シリアル・バス）ドライブなどの代替記憶方法よりも可搬性およびアクセス可能性がずっと低くなる。
【０００６】
これらの欠点に対処するために、Linear Tape FileSystem(LTFS)と呼ばれる新しいファイル・システムがＬＴＯ−５テープ・ドライブ・システムに最近導入され、標準的なよく知られているシステム・ツールおよびインターフェースを使用してテープへの効率的なアクセスが可能となった。ＬＴＦＳは、新しいＬＴＯ−５フォーマットでサポートされるデュアル・パーティション機能を利用することによって実装される。索引を書き込むために、いわゆる索引パーティションが使用され、データ自体のために、第２のずっと大きいパーティションが使用される。索引パーティションは、ファイル・システムのディレクトリのために使用されるのに対して、データ・パーティションは、ファイル・システムに実際のユーザのファイルを格納するのに使用される。別々のパーティション上に索引を配置することは、実際のデータに影響を与えることなく索引を再書込みすることができるので有利である。ＬＴＦＳは、ＰＯＳＩＸのようなファイル・システム・インターフェースをユーザに公開し、索引パーティション内のファイル・システム索引を管理し、データ・パーティションにデータを格納する。ＬＴＦＳソフトウェアによって表されるファイル・システムにより、ファイルが実際にはテープ上に位置する間、ファイルおよびディレクトリが、ディレクトリ一覧表と共にデスクトップ上に現れる。ファイル・システム・ユーザは、テープに、およびテープからファイルを「ドラッグ・アンド・ドロップ」することができ、ディスク・システム用に開発されたアプリケーションを実行することができる。ライブラリ・モードでは、個々のカートリッジをマウントすることなく、ライブラリ内のすべてのボリュームの内容をリスト表示および探索することができる。これらの機能は、テープ・コスト、ファイル管理コスト、およびアーカイブ・コストを削減し、ミドルウェア層への依存関係をなくす助けとなる。したがって、格納されるギガバイト（ＧＢ）当たりのコストが削減される。さらに、テープはクロス・プラットフォーム・ポータブルとなり（ＬＴＦＳはＬｉｎｕｘ（商標）、Ａｐｐｌｅ  Ｍａｃ  ＯＳ  Ｘ（商標）、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（Ｒ）（商標）上で利用可能である）、プラットフォーム間のデータの共有が可能となり、容易となる。これらの機能により、ビデオ・アーカイブ、医療画像などの、テープに関する意義深い新しい使用ケースが可能となる。他のストレージ解決策に勝るテープのコスト利点、テープ・カートリッジ容量およびＧＢ当たりのコストの継続的なスケーリングに関する実証された潜在性、ならびにＬＴＦＳなどの進歩によって実現されるテープのユーザビリティの向上を考慮すると、テープは、アーカイバル・データ・ストレージ解決策に関する急成長する市場で重要な役割を果たすことになるように見える。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第２００８／００４０５３９Ａ１号
【特許文献２】米国特許第２０１０／０２１１７３１Ａ１号
【特許文献３】米国特許第７８６４４７９Ｂ２号
【特許文献４】米国特許第５８２９０４６号
【特許文献５】米国特許第７６４４２０４Ｂ２号
【特許文献６】米国特許第６７１１５８０Ｂ２号
【非特許文献】
【０００８】
【非特許文献１】"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
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、ＬＴＦＳであっても、ファイルはテープ上に順次（sequentialmanner）格納され、それにより、読取りや書込みなどのＩ／Ｏ操作中のアクセス時間が無視できない長さとなる。
【課題を解決するための手段】
【００１０】
第１の態様によれば、本発明は、記憶システム上に格納されたファイルを読み取るための方法であって、記憶システムが、所定のデータ・フォーマットに従ってファイルの第１のセットを格納する記憶手段と、ファイルの第２のセットを格納するキャッシュ・メモリであって、ファイルの第２のセットが、ファイルの第１のセットのサブセットである、キャッシュ・メモリとを備え、記憶システムが、１つまたは複数のリモート・システムが記憶手段またはキャッシュ・メモリあるいはその両方の上に格納されたファイルを読み取ることを可能にするように構成され、
ファイルのシーケンスを読み取ることを求める少なくとも１つの読取り要求を１つまたは複数のリモート・システムから受信すること、
シーケンスのファイルのうち、１つまたは複数のキャッシュされたファイルが既にキャッシュ・メモリ上に格納されているかどうか、および１つまたは複数の残りのファイルがまだキャッシュ・メモリ上に格納されていないかどうかを判定すること、
前記所定のデータ・フォーマットに従って記憶システム上に格納された前記残りのファイルの場所が与えられたとして、前記１つまたは複数の残りのファイル内で、記憶システム上で前記残りのファイルを読み取るべき順序を決定すること、
前記順序に従って記憶システム上の前記１つまたは複数の残りのファイルを読み取り、キャッシュ・メモリ上に残りのファイルを格納すること
を含む方法として実施される。
【００１１】
実施形態では、この方法は、以下の特徴のうちの１つまたは複数を含むことができる。
記憶システムは、キャッシュ・メモリとして使用される不揮発性メモリを備える。
キャッシュ・メモリとして使用される不揮発性メモリは、ハード・ディスクまたは固体ドライブあるいはその両方のアレイを含む。
ハード・ディスクまたは固体ドライブあるいはその両方のアレイは、単一の論理アドレス空間として編成される。
キャッシュ・メモリはファイル・レベル・キャッシュ・メモリである。
キャッシュ・メモリはブロック・レベル・キャッシュ・メモリである。
記憶手段は、Linear Tape File Systemデータ・フォーマットに従ってファイルの第１のセットを格納する少なくとも１つの磁気テープ媒体を含み、記憶システム上に格納される前記残りのファイルの場所が、Linear Tape File Systemデータ・フォーマットのメタデータの部分としてのそれぞれの残りのファイルの開始ブロックに従って決定される。
キャッシュ・メモリは、先入れ先出しポリシー管理を使用して管理される第１の領域と、最長時間未使用ポリシー管理を使用して管理される第２の領域とを含み、第１および第２の領域は、キャッシュ容量管理に関する１組の規則に従ってファイルの前記第２のセットを格納するように適合される。
１組の規則は、少なくとも以下の規則を含む。
ｉ）第１の領域が満杯である場合、第２のセットの最も古いファイルが、記憶手段にコピーされ、第１の領域からエビクトされる。
ｉｉ）第１の領域が満杯であり、第２の領域が空き容量を有する場合、第１の領域は、第２の領域の空き容量の所与の割合を得る。
ｉｉｉ）第２の領域が満杯である場合、最少のアクセス数および最も古い最終アクセス時刻を有する第２のセットのファイルが、記憶手段にコピーされ、第２の領域からエビクトされる。
ｉｖ）第２の領域が満杯であり、第１の領域が空き容量を有する場合、第２の領域は、第１の領域の空き容量の所与の割合を得る。
【００１２】
別の態様によれば、本発明は、記憶システム上に格納されたファイルを読み取るための、コンピュータ可読媒体上に格納されたコンピュータ・プログラムであって、本発明による方法のステップをコンピュータに行わせるコード手段を含むコンピュータ・プログラムとして実施される。
【００１３】
実施形態では、コンピュータ・プログラムは、以下の特徴のうちの１つまたは複数を含むことができる。
Linear Tape File Systemとして記憶手段を管理するコード手段であって、記憶手段が、Linear Tape File Systemを使用して管理される少なくとも１つの磁気テープ媒体を有するスタンドアロン・テープ・ライブラリを備える、コード手段。
コンピュータ・プログラムがユーザ空間プログラム構成要素である。
【００１４】
別の態様によれば、本発明は、
所定のデータ・フォーマットに従ってファイルの第１のセットを格納する記憶手段と、
ファイルの第２のセットを格納するキャッシュ・メモリであって、ファイルの第２のセットがファイルの第１のセットのサブセットである、キャッシュ・メモリと、
１つまたは複数のリモート・システムから読取りおよび書込み要求を受信する少なくとも１つのインターフェースと、
本発明に従ってコンピュータ・プログラムの命令を実行する処理装置と
を備える記憶システムとして実施される。
【００１５】
次に、プロセスおよび本発明を実施するプロセスを、非限定的な例として、添付の図面を参照して説明する。
【図面の簡単な説明】
【００１６】
【図１】本発明による、他のシステムによってリモートにアクセスされる記憶システムのアーキテクチャ図の一例である。
【図２】図１上に示される記憶システムのデータ経路図の一例である。
【図３】図１上に示される記憶システムのデータ経路図の別の例である。
【図４】図１〜３上に示される記憶システムのキャッシングの一例である。
【図５】所定のデータ・フォーマットに従って記憶システム上に格納される残りのファイルの場所の一例である。
【図６】所定のデータ・フォーマットに従って記憶システム上に格納される残りのファイルの場所の一例である。
【図７】所定のデータ・フォーマットに従って記憶システム上に格納される残りのファイルの場所の一例である。
【図８】本発明の一実施形態を記述するフローチャートの一例である。
【発明を実施するための形態】
【００１７】
本発明は、記憶システム上に格納されたファイルを読み取るための方法を説明する。記憶システムとは、デジタル・データを保持するコンピュータ構成要素および記録媒体を指す。記憶システムは、所定のデータ・フォーマットに従ってファイルの第１のセットを格納する記憶手段を備える。データ・フォーマットとは、コンピュータ・ファイル・システム内の記憶媒体上に格納されるデータを符号化するフォーマットを指す。記憶システムはまた、ファイルの第２のセットを格納するキャッシュ・メモリをも備え、ファイルの第２のセットは、ファイルの第１のセットのサブセットである。キャッシュ・メモリは、データを求める将来の要求により高速にサービスすることができるように、そのデータを格納する構成要素である。記憶システムは、１つまたは複数のリモート・システムが記憶手段またはキャッシュ・メモリあるいはその両方の上に格納されたファイルを読み取ることを可能にするように構成される。一般に、リモート・システムとは、記憶システムに対してリモート・ロケーションに位置する任意のシステムまたはアプリケーションを指す。記憶システム上に格納されたファイルを読み取るための方法は、ファイルのシーケンスを読み取ることを求める少なくとも１つの読取り要求を１つまたは複数のリモート・システムから受信することを含む。ファイルのシーケンスとは、通常は何らかの形で互いに関係付けられた、ファイルの整列された有限集合を指す。この方法は、シーケンスのファイルのうち、１つまたは複数のキャッシュされたファイルが既にキャッシュ・メモリ上に格納されているかどうか、および１つまたは複数の残りのファイルがまだキャッシュ・メモリ上に格納されていないかどうかを判定することを含む。この方法は、前記所定のデータ・フォーマットに従って記憶システム上に格納された前記残りのファイルの場所が与えられたとして、前記１つまたは複数の残りのファイル内で、記憶システム上で前記残りのファイルを読み取るべき順序を決定することを含む。記憶システム上のファイルの場所とは、記憶システム上のファイルの編成または位置を指す。ファイルの配置は、データ空間を物理的または仮想的に分割することによって実施することができる。この方法は、前記順序に従って記憶システム上の前記１つまたは複数の残りのファイルを読み取り、キャッシュ・メモリ上に残りのファイルを格納することを含む。
【００１８】
したがって、提案される発明は、アクセス待ち時間に関してだけではなく、スループットおよび空間利用率に関しても、テープ記憶システム（例えば、ＬＴＦＳに基づくテープ記憶システム）などの記憶システムの性能を改善する技法に焦点を当てる。その目的で、記憶システムは、記憶手段の上のキャッシング層として使用されるキャッシュ・メモリと協調して記憶手段を使用する。記憶システムは、要求されたファイルを最適化された読取りで読み取り、ファイルのキャッシュ・プリフェッチングを可能にする。したがって、本発明による方法は、直前にキャッシュされたファイルまたは頻繁にキャッシュされるファイルあるいはその両方へのより高速なアクセスを実現するだけではなく、記憶手段上に格納されたファイルのバックアップまたは復元および移行操作などの使用ケースを加速するようにも設計される。
【００１９】
当業者は理解するであろうが、本発明の態様は、方法、システム、またはコンピュータ・プログラム製品として実施することができる。したがって、本発明の態様は、完全なハードウェア実施形態、完全なソフトウェア実施形態（ファームウェア、常駐ソフトウェア、マイクロ・コードなど）、またはソフトウェア態様とハードウェア態様を組み合わせる実施形態の形態を取ることができ、それらを本明細書ではすべて全般的に「回路」、「モジュール」、または「システム」と呼ぶことがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードがその中に実施された１つまたは複数のコンピュータ可読媒体（複数可）で実施されるコンピュータ・プログラム製品の形態を取ることができる。
【００２０】
１つまたは複数のコンピュータ可読媒体（複数可）の任意の組合せを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体でよい。コンピュータ可読記憶媒体は、例えば、限定はしないが、電子的、磁気的、光学的、電磁的、赤外線、または半導体のシステム、機器、または装置、あるいは上記の任意の適切な組合せでよい。コンピュータ可読記憶媒体のより特定の例（非網羅的なリスト）は以下を含む。１つまたは複数のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、または上記の任意の適切な組合せ。本文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、機器、または装置によって使用され、またはそれらと共に使用される、プログラムを包含または格納することのできる任意の有形媒体でよい。
【００２１】
コンピュータ可読信号媒体は、例えばベースバンドで、または搬送波の部分として、コンピュータ可読プログラム・コードがその中に実施された伝播データ信号を含むことができる。そのような伝播信号は、限定はしないが、電磁的形態、光学的形態、またはそれらの任意の適切な組合せを含む様々な形態のうちのいずれも取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、機器、または装置によって使用され、またはそれらと共に使用されるプログラムを通信、伝播、または移送することのできる任意のコンピュータ可読媒体でよい。
【００２２】
限定はしないが、ワイヤレス、ワイヤライン、光ファイバ・ケーブル、ＲＦなど、または上記の任意の適切な組合せを含む任意の適切な媒体を使用して、コンピュータ可読媒体上に実施されるプログラム・コードを送信することができる。
【００２３】
本発明の態様のための動作を実施するコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで書くことができる。プログラム・コードは、完全にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行することができる。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通じてユーザのコンピュータにリモート・コンピュータを接続することができ、（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）外部コンピュータに接続を行うことができる。
【００２４】
本発明の実施形態による方法、機器（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック・ダイアグラムあるいはその両方を参照しながら、本発明の態様を以下で説明する。フローチャート図またはブロック・ダイアグラムあるいはその両方の各ブロック、ならびにフローチャート図またはブロック・ダイアグラムあるいはその両方のブロックの組合せをコンピュータ・プログラム命令で実装できることを理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理機器のプロセッサに与えてマシンを生成することができ、したがって、コンピュータまたは他のプログラマブル・データ処理機器のプロセッサを介して実行される命令が、フローチャートまたはブロック・ダイアグラム・ブロック（複数可）あるいはその両方で指定される機能／動作を実装する手段を生み出す。
【００２５】
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理機器、または他の装置が特定の方式で機能するように指示することのできるコンピュータ可読媒体に格納することもでき、したがってコンピュータ可読媒体に格納された命令は、フローチャートまたはブロック・ダイアグラム・ブロック（複数可）あるいはその両方で指定される機能／動作を実装する命令を含む製造品を生成する。
【００２６】
コンピュータ・プログラム命令をコンピュータ、他のプログラマブル・データ処理機器、または他の装置上にロードし、コンピュータ、他のプログラマブル機器、または他の装置上で一連の動作ステップを実施させ、コンピュータで実装されるプロセスを生成することもでき、したがって、コンピュータまたは他のプログラマブル機器上で実行される命令が、フローチャートまたはブロック・ダイアグラム・ブロック（複数可）あるいはその両方で指定される機能／動作を実装するプロセスを提供する。
【００２７】
図のフローチャートおよびブロック・ダイアグラムは、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック・ダイアグラム中の各ブロックは、指定の論理機能（複数可）を実装する１つまたは複数の実行可能命令を含むコードのモジュール、セグメント、または部分を表すことができる。いくつかの代替実装では、ブロックで示される機能は、図で示されるのとは異なる順序で行われることがあることにも留意されたい。例えば、関係する機能に応じて、連続して示される２つのブロックが、実際には実質的に同時に実行されることがあり、または場合によってブロックが逆の順序で実行されることがある。ブロック・ダイアグラムまたはフローチャート図あるいはその両方の各ブロック、ならびにブロック・ダイアグラムまたはフローチャート図あるいはその両方のブロックの組合せを、指定の機能または動作を実施する専用ハードウェア・ベースのシステム、あるいは専用ハードウェアとコンピュータ命令の組合せで実装できることにも留意されたい。
【００２８】
図１は、本発明の一実施形態による、他のシステム１１０、１２０によってリモートにアクセスされる記憶システム１００のアーキテクチャ図である。記憶システムは、テープ・アプライアンス・システムと呼ばれることもある。本発明の一実施形態による記憶システム１００は、少なくとも１つのコンピュータ処理装置（ＣＰＵ）１０００またはプロセッサと、通常はダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）であるメイン・メモリ１００２とを含む。ＣＰＵおよびＤＲＡＭがバス１００４に接続される。バスをディスプレイ・コントローラ１００６に接続することができ、ディスプレイ・コントローラ１００６は、ＬＣＤモニタ１００８などのディスプレイに接続される。ディスプレイを使用して、記憶システム１００についての情報を表示することができる。キーボード／マウス・コントローラまたはＵＳＢコントローラ１０１０を通じてキーボード１０１２およびマウス１０１４にバスをさらに接続することができる。例えばイーサネット（Ｒ）（登録商標）プロトコルに準拠する、通信コントローラ１０１４にもバスを接続することができる。通信コントローラは、ネットワーク、例えばネットワーク１３０とコンピュータ・システムを物理的に接続するのに使用される。バスはまた、ＩＤＥ、ＳＡＴＡ、ＳＣＳＩコントローラなどのデバイス・コントローラ１０１８を通じて、ハード・ディスク１０４やＤＶＤ１０２０などの記憶装置にも接続される。
【００２９】
記憶システム１００は、所定のデータ・フォーマットに従ってファイルの第１のセットを格納する記憶手段１０４をさらに備える。例えば、記憶手段は、多数のテープ・ドライブまたはヘッドをサポートすることのできるスタンドアロン・テープ・ドライブ（またはテープ・ライブラリ）などのシーケンシャル・アクセス媒体でよい。スタンドアロン・テープ・ドライブは、リニア・テープに対して、１つまたは複数のテープ・カートリッジに対して作用するように使用される。テープ・ドライブ上に格納されるデータの所定のデータ・フォーマットは、ファイル内容データおよび関連するファイル・メタデータを保持するＬＴＦＳフォーマット・データ・フォーマットを使用することができる。したがって、テープ・ドライブ上に格納され、ＬＴＦＳフォーマットを使用して書き込まれたデータを、ＬＴＦＳフォーマットを理解することができる他のシステム１１０、１２０と交換することができる。
【００３０】
記憶システム１００は、ファイルの第２のセットを格納するキャッシュ・メモリをさらに備え、ファイルの第２のセットは、ファイルの第１のセットのサブセットである。キャッシュ・メモリは、作業負荷の時間的および空間的局所性を活用して、記憶システムの性能を最適化する。キャッシュ・メモリは読取りキャッシュである。任意選択で、キャッシュ・メモリは書込みキャッシュでもよい。読取りキャッシュは、そのデータを求める将来の要求により高速にサービスすることができるように、データを透過的に格納することによって性能を改善する。要求されたデータがキャッシュ内に含まれる場合、すなわちキャッシュ・ヒットが生じた場合、単にキャッシュを読み取ることによってこの要求にサービスすることができ、これは、バックエンド記憶装置から読み取るよりも同程度に高速である。そうでない場合、キャッシュ・ミスが生じ、より低速なバックエンド記憶装置からデータをフェッチしなければならない。
【００３１】
実際には、記憶システムは、キャッシュ・メモリとして使用される不揮発性メモリを備える。不揮発性メモリは、記憶システムがオフにされる時、その中に格納されたファイルを保持することができるので有利である。キャッシュ・メモリとして使用される不揮発性メモリは、ハード・ディスク・ドライブまたは固体ドライブあるいはその両方のアレイを含むことができる。大容量ＨＤＤまたはＳＳＤあるいはその両方のアレイは、ＲＡＩＤ（Redundant Array of Independent Disks）方式で構成することができる。キャッシュ・メモリ・コントローラは、サーバのオペレーティング・システムに単一の論理ボリュームを公開することができ、したがってキャッシュ・メモリの管理がより容易となる。さらに、限定はしないがｅｘｔ３、ｅｘｔ４、ＮＴＦＳなどの従来のディスク・ファイル・システムが、論理ボリューム上にインストールされ、ディスク・アレイに対するすべてのＩ／Ｏ操作に対して使用される。キャッシュ・メモリ、すなわちディスク・アレイ全体はキャッシング専用であり、システムの他の構成要素と共有されない。
【００３２】
キャッシュ・メモリはファイル・レベル・キャッシュ・メモリでよい。あるいは、キャッシュ・メモリはブロック・レベル・キャッシュ・メモリでよい。この場合、アレイのＨＤＤまたはＳＳＤあるいはその両方が、ファイル・システムのないロー・デバイス（raw device）として使用され、次いでボリュームが作成され、オペレーティング・システムがこれらのボリュームに接続し、これらのボリュームを個々のハード・ドライブとして使用する。ブロック・レベル・キャッシュ・メモリは、ファイル・ストレージ、データベース・ストレージ、仮想マシン・ファイル・システム（ＶＭＦＳ）ボリュームなどを含む、ほとんどの任意の種類のアプリケーションのために使用可能である。
【００３３】
通常、記憶システムはサーバ１０２を備え、サーバ１０２は、ＣＰＵおよびＤＲＡＭ、バス、ディスプレイ・コントローラ、通信コントローラを備える。サーバ１０２は、ＬＴＦＳソフトウェアを実行することのできる記憶手段１０４に接続され、標準ファイル・システム・インターフェースを介して、下にあるテープ容量を公開する。サーバ１０２はさらに、キャッシュ・メモリ１０６に直接的に接続される。サーバは、限定はしないがＬｉｎｕｘ（商標）オペレーティング・システムなどのオペレーティング・システムを実行する。サーバは、ネットワーク１３０に接続され、それによってリモート・ネットワーク・ユーザ１２０およびアプリケーション１３０は、記憶手段（例えばＬＴＦＳファイル・システム）をマウントし、直接的にデータを格納し、記憶手段からデータを取り出すことができる。
【００３４】
したがって、記憶システムは、図１に示すように、単一の論理アドレス空間として論理的に構成することのできるキャッシュ・メモリとして使用される１つまたは複数の記憶装置（例えば、ＨＤＤ／ＳＳＤアレイ）と、並列に動作する１つまたは複数のテープ・ドライブを備えることのできる記憶手段とを備える。記憶システムは、磁気テープ媒体などの１つまたは複数の記憶装置をさらに備える。テープ・ライブラリは通常、ＬＴＦＳファイル・システムを使用して管理される。別のファイル・システムを使用できることを理解されたい。ＬＴＦＳファイル・システムは、テープ・ライブラリとＨＤＤアレイがどちらも直接的に接続されるサーバ１０２内で動作する。キャッシュ・メモリは、ＬＴＦＳファイル・システム用のキャッシュとして使用され、有利には、記憶手段上に格納されるデータに対する高速ランダム・アクセスが実現される。
【００３５】
次に図８を参照すると、本発明の一実施形態によるフローチャートが示されている。
【００３６】
ステップ６００〜６０２で、記憶システムが、１つまたは複数のリモート・システムからファイルのシーケンスを読み取ることを求める少なくとも１つの読取り要求を受信するかどうかを監視する。言い換えれば、読取り要求が一定のパターンに合致するかどうか判定を行う。パターンは、ディレクトリからシーケンシャルに読み取られるファイルによって示されることがある。図１〜３に示されるように、リモート・システムはアプリケーションでよい。要求は、記憶システムにより、記憶システムの通信コントローラおよび適切なインターフェース２３、２４、２５、２６、２７を通じて受信される。
【００３７】
ステップ６０４で、ファイルのシーケンスのファイルのうち、１つまたは複数のキャッシュされたファイルが既にキャッシュ・メモリ上に格納されているかどうか、および１つまたは複数の残りのファイルがまだキャッシュ・メモリ上に格納されていないかどうかを判定する。言い換えれば、要求されたファイルうちのどのファイルが、キャッシュ上および記憶手段上に位置するかを判定する。これは、以前に合致したすべてのファイルの名前が求められ、言い換えればファイルがキャッシュ・メモリ上に格納されると言うことに相当する。
【００３８】
次に、ステップ６１０で、キャッシュ・メモリ上に格納されたファイルを読み取る。これにより、直前に／頻繁にキャッシュされたファイルへのより高速なアクセスが実現される。
【００３９】
次いで、ステップ６０６で、１つまたは複数の残りのファイル内で、記憶システム上で前記残りのファイルを読み取るべき順序を決定する。したがって、記憶手段上に格納されたファイルのシーケンスの要求されたファイルのランキングを実施する。言い換えれば、ファイルは何らかのシーケンスで構成される。記憶システムの所定のデータ・フォーマットに従って記憶システム上に格納された残りのファイルの場所が与えられたとして、これらのファイルの順序付けが実施される。
【００４０】
ステップ６１０および６０６を同時に実施できることを理解されたい。
【００４１】
ＬＴＦＳによって管理されるスタンドアロン・テープ・ドライブなどのシーケンシャル・アクセス媒体では、仮想拡張属性を通じてユーザにとって利用可能な、ＬＴＦＳメタデータの部分としての各ファイルについての開始ブロックを含むＬＴＦＳフォーマットにより、テープ上のファイルの場所によるファイルの順序付けが可能になる。
【００４２】
次に図５〜７を参照すると、所定のデータ・フォーマットに従って記憶システム上に格納されたファイルの場所の一例が示されている。特に、図５〜７は、ＬＴＦＳによって管理されるスタンドアロン・テープ・ドライブ（またはテープ・ライブラリ）などのシーケンシャル・アクセス媒体内に配置されたファイルを示す。
【００４３】
記憶システムは、１つまたは複数のリモート・システムから読取りおよび書込みコマンドを得る。リモート・システムは、ディレクトリまたはサブディレクトリ上に格納されるすべてのファイルに関する読取りを実施することができる。しかし、一部のファイルが経時的に変更された可能性があり、後続の場所に存在することがあるので、これらのファイルは、テープ上にシーケンシャルに配置されないことがある。ＬＴＦＳカートリッジ上で修正され、上書きされるファイルが、定位置で修正されるのではなく、テープに付加される。上述の状況が図５〜７に示されている。
【００４４】
図５は、テープ上の１つのディレクトリに関するファイルの位置を示す。ファイルはシーケンシャルにバックアップされているので、ファイルはテープ上にシーケンシャルに配置される。
【００４５】
図６は、ｆｉｌｅ１およびｆｉｌｅ２が変更され、したがってテープの終わりに書き込まれることを示す。ｆｉｌｅ１はこのときｆｉｌｅ１’と呼ばれ、ｆｉｌｅ２はこのときｆｉｌｅ２’と呼ばれる。
【００４６】
図７は、ｆｉｌｅ３が変更され、そのバックアップの前に、他のファイルがバックアップされたことを示す。変更後のｆｉｌｅ３はｆｉｌｅ３’と呼ばれる。図７は、ｆｉｌｅ３’がテープの終わりにあり、ｆｉｌｅ１’およびｆｉｌｅ２’がｆｉｌｅ１〜ｆｉｌｅ５とｆｉｌｅ３’との間に位置するので、ｆｉｌｅ１〜ｆｉｌｅ５の最新バージョンの復元がテープを前後に複数回移動させることを必要とすることを明らかにする。したがって、ｆｉｌｅ１’およびｆｉｌｅ２’は中央のどこかにあり、ｆｉｌｅ４およびｆｉｌｅ５はテープの先頭の方にある。
【００４７】
図７では、ＬＴＦＳによって管理されるテープ上のファイルの場所または位置に従ってファイルを順序付けることができ、ファイルｆｉｌｅ４およびｆｉｌｅ５がテープの先頭の方にあり、その後に続いて、ファイルｆｉｌｅ１’およびｆｉｌｅ２’がテープの中央にあり、最後に、ファイルｆｉｌｅ３’がテープの終わりに位置する。
【００４８】
図８に戻ると、ステップ６０８で、順序付けステップ６０６に従って、記憶システム上の１つまたは複数の残りのファイルを読み取る。残りのファイルをキャッシュ・メモリ上にも格納し、すなわち、記憶手段からキャッシュ・メモリにファイルをコピーする。任意選択で、ファイルを読み取るのと同じ順序で記憶手段上にファイルをコピーすることができる。記憶手段上に格納したファイルの読取りおよびコピーを付随して実施できることを理解されたい。
【００４９】
あるいは、ステップ６０８で、順序付けステップ６０６に従って残りのファイルをキャッシュ・メモリ上にまず格納し、次いでキャッシュ・メモリから読み取る。この場合、順序付けステップに従って読取りを行うこともできる。
【００５０】
したがって、本発明による方法は、記憶手段上に格納されたファイルのキャッシュ・メモリへのプリフェッチングを実現し、したがって、バックアップ／復元や移行などの一般的なテープ特有の使用ケースを高速化することが可能となる。実際に、これらのバックアップ／復元および移行の操作は、本発明に従ってキャッシュ・メモリに格納されるファイルのシーケンスを読み取ることを必要とする。通常、記憶手段上に格納されたファイルのキャッシュ・メモリへのプリフェッチングは、記憶手段のディレクトリ（またはサブディレクトリ）に格納されたすべてのファイルに適用することができる。したがって、本発明の方法は、ディレクトリに格納されたすべてのファイルをキャッシュ・メモリにプリフェッチすることを可能にする。
【００５１】
本発明による方法は、１つのディレクトリに格納されるすべてのファイルだけに適用されるわけではないことを理解されたい。本発明による方法は、ファイルが記憶手段の単一の記憶装置上に格納されるかに関わらず、複数のファイルが記憶手段から読み取られる任意のシナリオに適用することができる。例えば、ＬＴＦＳストレージは、１つのテープまたは複数のテープを含むことができる。この場合、ファイルのシーケンスのファイルが、格納されるテープに従って、かつこのテープ上のファイルの場所に従って順序付けられる。その結果、ファイルが、ソートされた順序で各テープ上で読み取られ、テープが、ソートされた順序で読み取られる。
【００５２】
次に図２を参照すると、アプリケーションやクライアントなどのリモート・システムと、図１に示される記憶システムとの間のデータ経路図の一例が示されている。記憶システム１００は、アプリケーション１１０やクライアント１２０などのシステムにより、例えばネットワークを介してリモートにアクセスされる。他のシステムは、ＧＰＦＳ（General Parallel File System）クラスタやＮＡＳ（Network-attachedstorage）ファイラなどのファイル・システム・サーバでよい。
【００５３】
リモート・システムは、ネットワーク・ファイル・システムを使用して記憶システムをマウントすることにより、またはＦＴＰ（ファイル転送プロトコル）プロトコルまたはＳＳＨ（Secure SHell）プロトコルを使用してデータを記憶システムから読み取り、記憶システムに書き込むことにより、記憶システムにアクセスすることができる。記憶システム１００にリモートにアクセスするために任意の他のプロトコルを使用できることを理解されたい。
【００５４】
記憶システム１００は、図２に示される適切なインターフェース２３、２４、２５、２６、２７を提供し、したがって記憶システムを使用して、多数のアプリケーション１１０に関するストレージの必要に対処することができる。図２では、記憶システムは、ＬＴＦＳソフトウェア２２を使用して管理される記憶手段として多数のテープ・ドライブを備える。限定はしないが、以下は、テープ・ドライブ上に格納されるファイルを管理するアプリケーションの例である。
１）ネットワークを介して記憶システムに接続されたＧＰＦＳ（または他の）ファイル・システムのバックアップ。ＧＰＦＳファイル・システム全体または個々のディレクトリまたはファイル・セットを記憶システム内にバックアップすることができる。フル・バックアップまたは増分バックアップを取ることができ、同一または異なるテープ・カートリッジ上で複数のバージョンをサポートすることができる。さらに、同一または異なるファイル・システム／クラスタから生じる複数のバックアップを同一のアプライアンスでサポートすることができる。有利には、ＬＴＦＳは、テープ・カートリッジ上でバックアップを自己完結型または自己記述型にすることを可能にし、ユーザがＴＳＭサーバを配置および維持する必要が省かれる。さらに、ＧＰＦＳのファイル属性をＬＴＦＳ上に保存することができ、ＬＴＦＳに対する何らかの修正と共に実施することもできる。バックアップ・プロセスは、ＧＰＦＳノードまたはテープ・アプライアンス自体によって調整することができ、以下のステップで略述される。
ａ．クラスタ内で動作中のＧＰＦＳポリシーが、最後のバックアップ以降に変更されたファイルを識別する。
ｂ．ポリシーが、外部プロセスを起動してバックアップを実施する。
ｃ．バックアップ・プロセスが、アプライアンスにファイルをコピーし、ＧＰＦＳファイル属性を保存する。
ｄ．ＳＳＨを介して、またはＮＦＳ／ＣＩＦＳマウントを使用してコピー操作を行うことができる。
ｅ．プロセスが終了した時、テープ・カートリッジを取り外し、ボールト（vault）に入れ、または任意の他のシステムに移動することができる。
同一または任意の他のテープ・システム内のテープを単に読み取ることにより、およびＧＰＦＳと同一の名前空間を保つことを可能にするＬＴＦＳによって提供されるファイル・システム・インターフェースを活用することにより、バックアップからファイルを復元することができる。このことは、ファイラからバックアップされた任意のファイルが、容易な回復を可能にするＬＴＦＳ内の名前（経路およびファイル）を有することができることを意味する。
２）ＧＰＦＳ（または他の）ファイル・システムからのファイルの移行、すなわち、テープ・ストレージをストレージ階層内のティアとして用いるファイルの移行。ユーザは、ファイルまたはディレクトリに関する移行基準をユーザ指定のＧＰＦＳポリシーの形で指定し、システムは、上述の指定の基準を満たすファイルをテープ・アプライアンスに移行することにより、テープ上にデータをシームレスに配置する。テープ・アプライアンスに移行する各ファイルについて、ファイル・スタブ（プレースホルダ）によってＧＰＦＳ内にファイルを配置する。それによって、ファイルはＧＰＦＳ名前空間内にとどまり、ユーザおよび既存のアプリケーションによって通常のファイルとしてアクセスすることができる。移行したファイルへのアクセス時に、テープ・アプライアンスからファイルを再呼出しする。
３）古いスナップショットをファイラからＬＴＦＳにコピーし、より古いスナップショットをファイラから削除するための、ＮＡＳファイラ（例えば、ＮｅｔＡｐｐファイラ）との統合。この利点は、通常はより多くの記憶容量を必要とする、より古いスナップショットが、ＬＴＦＳ上に格納され、ＬＴＦＳファイル・システム・インターフェースを通じてシームレスにアクセスすることができることであり、ＬＴＦＳファイル・システム・インターフェースは、ＮＡＳファイラによって提供されるＮＦＳやＣＩＦＳなどのＮＡＳインターフェースでもよい。
４）媒体管理（ＭＡＭ）では、媒体はしばしば、同一のデータ・ストリームの複数のバージョンを含む。一般的な慣行は、オーディオ・ビデオ・ストリームの高精細度バージョンを、同じコンテンツの低解像度バージョンであるいわゆる「プロキシ」と共に有することである。プロキシに関するファイルをキャッシュすることは非常に有益なはずである。これが、コンテンツを編集／カットしてカット・リストを生成するためにより頻繁に使用されているからであり、後で、プレイアウト・ストリームを生成するために、または直接的なプレイアウトのために、カット・リストが高精細の元のストリームに適用される。
５）限定はしないが、媒体管理、バージョニング、ボールティング、フォーマット・チェック、および格納されたファイルの回復を含む、記憶システムをリモートに管理するためのグラフィカル・ユーザ・インターフェース。
【００５５】
本発明による記憶システム上に格納されたファイルを読み取るための方法は、サーバ１０２上で動作中の、サーバによって実行されるコンピュータ・プログラムとして実装することができる。実際には、記憶手段を管理するように適合されたコード部分と共に方法が実装される。例えば、図２を参照すると、テープ・ドライブ１０４を管理するように適合されたＬＴＦＳソフトウェアのＬＴＦＳコード内で方法を実装することができる。
【００５６】
あるいは、外部モジュールとしてサーバ１０２の外部で方法を実装することもできる。それによって、記憶手段１０４の所与のファイル・システムを、将来の任意の他のテープ・ファイル・システムで置き換えることができる。そのような外部モジュールは、記憶システムのＯＳと、記憶手段のファイル・システムのどちらともインターフェースする必要があることを理解されたい。
【００５７】
好ましくは、本発明による方法を実装するコンピュータ・プログラムは、ユーザ空間プログラム構成要素である。有利には、ユーザ空間ソフトウェア構成要素は（カーネル空間のものとは対照的に）実装の複雑さを低くすることを可能にするので、これにより、ポータビリティを改善することが可能となる。
【００５８】
次に図３を参照すると、図１に示される記憶システムのデータ経路図の別の例が示されている。記憶システム１００は、ネットワーク・インターフェース、例えば図１の通信コントローラ１０１６を備える。図３では、記憶システムに対するすべてのＩ／Ｏ操作は、ＬＴＦＳファイル・システム操作として実現される。例えば、記憶システムへのクライアント書込みは常に、図３に示されるように、特定のオフセットで開始し、特定のバイト長を有する、ＬＴＦＳファイルへの書込み操作となる。第１のシナリオでは、リモート・ユーザ１１０が、記憶システムに対するＮＦＳマウントを使用して、ファイル"/ltfs/greetings.txt"への書込みを発行する。書込みが、サーバ（図示せず）によってＬＴＦＳ２２に渡される。次いで、ＬＴＦＳは、このファイルがＨＤＤキャッシュ１０６内に既にキャッシュされていることを発見し、書込みがＨＤＤ上に吸収され、"/ltfs/greetings.txt"は、ＨＤＤファイル・システム上のｅｘｔ３ファイルである。異なるシナリオでは、別のリモート・ユーザ１２０が、ＦＴＰプロトコルを使用して記憶システム上のファイルからいくつかのバイトを読み取ることを望む。ユーザはＦＴＰ  ｇｅｔ要求を発行し、アプライアンス・サーバがそれをＬＴＦＳ読取り要求に変換する。ＬＴＦＳは、キャッシュ内で要求されたファイルを探すが、そこにはないことを発見する。したがって、ＬＴＦＳは、要求されたファイルをテープ・ライブラリから読み取り、最初の１００バイトをユーザに返す。その時点で、ＬＴＦＳは、ＨＤＤ上にファイルをキャッシュするかどうかを選ぶことができる。
【００５９】
次に図４を参照して、図１上に示される記憶システムのキャッシュ・メモリの一例を論じる。キャッシュ・メモリは通常、不揮発性ストレージであり、したがってキャッシュ・メモリは、修正後データと未修正データのどちらもファイル・レベルで安全に保持することができる。
【００６０】
通常、キャッシュ・メモリ１０６が、第１の領域または空間４０と、第２の領域または空間４２に分割される。第１および第２の領域は、記憶手段内に当初格納されたファイルを格納するように適合される。第１および第２の領域内へのファイルの格納は、キャッシュ容量管理に関する１組の規則に従って実施される。
【００６１】
実際には、第１の領域はＦＩＦＯ（先入れ先出し）領域４０であり、第２の領域はＬＲＵ（最長時間未使用）領域４２である。このことは、キャッシュ・メモリがＦＩＦＯキャッシュとＬＲＵキャッシュに分割されると言うことに相当する。ＦＩＦＯ領域は、先入れ先出し置換ポリシーを使用して管理され、ＬＲＵ領域は、最長時間未使用ポリシーを使用して管理される。ＦＩＦＯ領域は通常、キャッシュに書き込まれた後にアクセスされるのがせいぜい１度だけであるファイルを保持するためのものである。これは、例えば、バックアップ書込み検証プロセスの場合である。ＬＲＵ領域は通常、近い将来に複数のアクセスの高い確率を有するファイルをキャッシュするためのものである。
【００６２】
図４に示されるように、ユーザ書込みは通常、そのデータをＦＩＦＯキャッシュに書き込み、ユーザ読取りは通常、ＬＲＵキャッシュによってサービスされる。しかし、これは要件ではなく、実際には、近い将来にデータが複数回アクセスされることをユーザが示唆する場合、着信データをＬＲＵキャッシュに書き込むこともできる。一方、要求されるデータがＦＩＦＯキャッシュにあると判明した場合、ＦＩＦＯキャッシュからユーザ読取りをサービスすることができる。
【００６３】
任意選択で、同時に、キャッシュの２つの領域の作業負荷に応じて、それらの間でファイルが移動され、実際に、キャッシュ・メモリは限られた記憶容量サイズを有し、ＦＩＦＯおよびＬＲＵ区間へのそのパーティションは、一定レベルの制御を必要とする。言い換えれば、キャッシュ容量は、１組の規則に従って管理される。キャッシュ容量管理のための以下の規則を使用することができる。
ＦＩＦＯ領域が満杯である場合、最も古いファイルがエビクトされる。キャッシュからファイルをエビクトすることは、まずファイルをテープにコピーすることを必要とすることがある。
ＬＲＵ領域が満杯である場合、最少のアクセス数および最も古い最終アクセス時刻を有するファイルがエビクトされる。キャッシュからファイルをエビクトすることは、まずファイルをテープにコピーすることを必要とすることがある。
ＦＩＦＯ領域が満杯であり、ＬＲＵ領域が少なくとも５０％の空き容量を有する場合、ＦＩＦＯ領域は、ＬＲＵ領域容量の３０％を得る。
ＬＲＵ領域が満杯であり、ＦＩＦＯ領域が少なくとも５０％の空き容量を有する場合、ＬＲＵ領域は、ＦＩＦＯ領域容量の３０％を得る。
【００６４】
上述の割合は設計パラメータであり、特定のアプリケーションおよび作業負荷に応じて変化することがあることを理解されたい。
【図１】
2014533850.tif 000003
【図２】
2014533850.tif 000004
【図３】
2014533850.tif 000005
【図４】
2014533850.tif 000006
【図５】
2014533850.tif 000007
【図６】
2014533850.tif 000008
【図７】
2014533850.tif 000009
【図８】
2014533850.tif 000010
【手続補正書】
【提出日】平成26年5月29日(2014.5.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶システム上に格納されたファイルを読み取るための方法であって、前記記憶システムが、
所定のデータ・フォーマットに従ってファイルの第１のセットを格納する記憶手段と、
ファイルの第２のセットを格納するキャッシュ・メモリであって、ファイルの前記第２のセットが、ファイルの前記第１のセットのサブセットである、前記キャッシュ・メモリとを備え、
前記記憶システムが、１つまたは複数のリモート・システムが前記記憶手段または前記キャッシュ・メモリあるいはその両方の上に格納されたファイルを読み取ることを可能にするように構成され、
ファイルのシーケンスを読み取ることを求める少なくとも１つの読取り要求を１つまたは複数のリモート・システムから受信すること、
前記シーケンスのファイルのうち、１つまたは複数のキャッシュされたファイルが既に前記キャッシュ・メモリ上に格納されているかどうか、および１つまたは複数の残りのファイルがまだ前記キャッシュ・メモリ上に格納されていないかどうかを判定すること、
前記所定のデータ・フォーマットに従って前記記憶システム上に格納された前記残りのファイルの場所が与えられたとして、前記１つまたは複数の残りのファイル内で、前記記憶システム上で前記残りのファイルを読み取るべき順序を決定すること、
前記順序に従って前記記憶システム上の前記１つまたは複数の残りのファイルを読み取り、前記キャッシュ・メモリ上に前記残りのファイルを格納すること、を含む方法。
【請求項２】
前記記憶システムが、前記キャッシュ・メモリとして使用される不揮発性メモリを備える、請求項１に記載の方法。
【請求項３】
前記キャッシュ・メモリとして使用される前記不揮発性メモリが、ハード・ディスク・ドライブまたは固体ドライブあるいはその両方のアレイを含む、請求項２に記載の方法。
【請求項４】
ハード・ディスク・ドライブまたは固体ドライブあるいはその両方の前記アレイが、単一の論理アドレス空間として編成される、請求項３に記載の方法。
【請求項５】
前記キャッシュ・メモリがファイル・レベル・キャッシュ・メモリである、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記キャッシュ・メモリがブロック・レベル・キャッシュ・メモリである、請求項１ないし４のいずれかに記載の方法。
【請求項７】
前記記憶手段が、Linear Tape File Systemデータ・フォーマットに従ってファイルの前記第１のセットを格納する少なくとも１つの磁気テープ媒体を含み、前記記憶システム上に格納される前記残りのファイルの場所が、前記Linear Tape File Systemデータ・フォーマットのメタデータの部分としてのそれぞれの残りのファイルの開始ブロックに従って決定される、請求項１ないし６のいずれかに記載の方法。
【請求項８】
前記キャッシュ・メモリが、先入れ先出しポリシー管理を使用して管理される第１の領域と、最長時間未使用ポリシー管理を使用して管理される第２の領域とを含み、前記第１および第２の領域が、キャッシュ容量管理に関する１組の規則に従ってファイルの前記第２のセットを格納するように適合される、請求項１ないし７のいずれかに記載の方法。
【請求項９】
前記１組の規則が、少なくとも以下の規則
ｉ）前記第１の領域が満杯である場合、前記第２のセットの最も古いファイルが、前記記憶手段にコピーされ、前記第１の領域からエビクトされる、
ｉｉ）前記第１の領域が満杯であり、前記第２の領域が空き容量を有する場合、前記第１の領域が、前記第２の領域の前記空き容量の所与の割合を得る、
ｉｉｉ）前記第２の領域が満杯である場合、最少のアクセス数および最も古い最終アクセス時刻の前記第２のセットの前記ファイルが、前記記憶手段にコピーされ、前記第２の領域からエビクトされる、
ｉｖ）前記第２の領域が満杯であり、前記第１の領域が空き容量を有する場合、前記第２の領域が、前記第１の領域の前記空き容量の所与の割合を得る
を含む、請求項８に記載の方法。
【請求項１０】
記憶システム上に格納されたファイルを読み取るための、コンピュータ可読媒体上に格納されたコンピュータ・プログラムであって、請求項１ないし９のいずれか一項に記載の方法のステップをコンピュータに行わせるコード手段を含むコンピュータ・プログラム。
【請求項１１】
Linear Tape File Systemとして前記記憶手段を管理するコード手段であって、前記記憶手段が、前記Linear Tape File Systemを使用して管理される少なくとも１つの磁気テープ媒体を有するスタンドアロン・テープ・ライブラリを備える、前記コード手段をさらに含む、請求項１０に記載のコンピュータ・プログラム。
【請求項１２】
所定のデータ・フォーマットに従ってファイルの第１のセットを格納する記憶手段と、
ファイルの第２のセットを格納するキャッシュ・メモリであって、ファイルの前記第２のセットがファイルの前記第１のセットのサブセットである、前記キャッシュ・メモリと、
１つまたは複数のリモート・システムから読取りおよび書込み要求を受信する少なくとも１つのインターフェースと、
請求項１０ないし１２のいずれかに記載のコンピュータ・プログラムの命令を実行する処理装置と、を備える記憶システム。
【国際調査報告】
2014533850.tif 000011