JP2007526528A - マルチボリュームファイルサポート - Google Patents

マルチボリュームファイルサポート Download PDF

Info

Publication number
JP2007526528A
JP2007526528A JP2006509097A JP2006509097A JP2007526528A JP 2007526528 A JP2007526528 A JP 2007526528A JP 2006509097 A JP2006509097 A JP 2006509097A JP 2006509097 A JP2006509097 A JP 2006509097A JP 2007526528 A JP2007526528 A JP 2007526528A
Authority
JP
Japan
Prior art keywords
file
policy
allocation policy
allocation
computer
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
JP2006509097A
Other languages
English (en)
Inventor
シルバーズ,チャールズ・エイチ
カー,ロナルド・エス
コルグローブ,ジョン・エイ
Original Assignee
ヴェリタス・オペレーティング・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ヴェリタス・オペレーティング・コーポレーション filed Critical ヴェリタス・オペレーティング・コーポレーション
Publication of JP2007526528A publication Critical patent/JP2007526528A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0614Improving the reliability of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

コンピュータアクセス可能媒体は、実行時に、ファイルに対して1つ又はそれ以上のブロックを割当てる要求を受け取る命令を含む。割当てポリシーが、ブロックが割当てられる1つ又はそれ以上の記憶ユニットを指定する場合、少なくとも1つの割当てポリシーがファイルに割当てられる。更に、1つより多い記憶ユニットが指定される場合、割当てポリシーは、複数の記憶ユニットから選択するメカニズムを指示する制御指示を含む。実行時に、命令は割当てポリシーに従ってブロックを割当てることができる。別の実施では、コンピュータアクセス可能媒体は、実行時にファイルシステムのファイルに1つ又はそれ以上のブロックを割当て、且つ割当てポリシーに従ってブロックを割当てる要求を受け取る命令を含む。割当てポリシーは、ファイルシステムの細分性の2つ又はそれ以上のレベルで指定可能である。

Description

本発明は、コンピュータシステムのためのファイルシステムの分野に関し、更に具体的には、ファイルシステム内のファイルへの記憶領域の割当てに関する。
コンピュータシステムは、コンピュータシステム上で実行されるオペレーティングシステム及び/又はアプリケーションプログラムによって使用されるファイルを管理するためにファイルシステムを実装する。ファイルシステムソフトウェアは、ファイルシステムのファイルを管理するために実行される。従来は、シングルボリュームネームスペースを有するファイルシステムが通常実装され、従ってファイルシステムの全ファイルは、同じ記憶特性(例えば、記憶装置のタイプ、信頼性特性など)を有する。異なるボリュームは、異なる性能特性、異なるコスト、及び異なる信頼性特性を有する。しかしながら、幾つかのファイルは、他のものよりも「より重要である」と考えられる場合があり、従って、これらのファイルに対して(より低い性能特性という犠牲を払っても)より高い信頼性特性が要求される。別のファイルでは、アクセス及び更新が頻繁になされる場合があり、従って高い性能特性が(より低い信頼性特性という犠牲を払っても)要求される。更にファイルは、データ(ファイルに記憶された情報)とメタデータ(データに関する情報)の両方を有する。メタデータは、データより「更に重要」と考えられることが多く、従ってより高い信頼性特性が要求される。シングルボリュームネームスペースでは、種々のファイル又はファイルの種々の部分の異なる性能、信頼度、及び/又はコスト特性を提供することはできない。
柔軟性をもたせるために幾つかの限定的な試みが行われてきた。例えば、Silicon Graphics,Inc.(SGI)製のXFSファイルシステムは、ビデオサーバー、ビデオ編集などのリアルタイムの重要なアプリケーションで使用される。XFSファイルシステムは、リアルタイムスペースと「ノーマル」(非リアルタイムスペース)を提供し、リアルタイムスペース内のデータへのリアルタイムアクセスを(場合によってはノーマルスペースへのアクセスを犠牲にして)可能にしようとする。QFSファイルシステムは、2つのプール、すなわち1つはデータを記憶するためのプール、他方はメタデータを記憶するためのプールに記憶装置を分割する。従って、データ又はメタデータは、対応するプールで自動的に装置に記憶される。他のファイルシステム(例えば、Compaq Computerによって後に買収されたDigital Equipment Corporation製のADVFS、Compaq Computerもまた、Hewlett−Packardによって買収された)は、ボリュームマネージャの機能を組み込み、ミラーリング、ストライピング、リダンダント・アレイ・オブ・インエクスペンシブ・ディスク(RAID)などの特性をファイルシステムに直接提供した。
ファイルシステムは、一般に、ファイルについて望ましい特性を有するボリュームにファイルを割当てる柔軟性を持たず、また、望ましい柔軟性を備えるファイルデータやファイルメタデータを割当てるための柔軟性も持たない。
1つの実施態様では、コンピュータアクセス可能媒体は、実行時にファイルに対して1つ又はそれ以上のブロックを割当てる要求を受け取る命令を含む。少なくとも1つの割当てポリシーがファイルに割当てられ、割当てポリシーは、ブロックが割当てられる1つ又はそれ以上の記憶ユニットを指定する。記憶ユニットは、幾つかの実施態様ではボリュームを含み、或いは他の実施態様では記憶装置を含む。更に1つより多い記憶ユニットが1つ又はそれ以上の記憶ユニットに含まれる場合、割当てポリシーは、複数の記憶ユニットの中から選択するメカニズムを指示する制御指示を含む。実行される場合、命令は、割当てポリシーに従ってブロックを割当てることができる。種々の割当てポリシーを種々のファイルに割当てることができ、ファイルを記憶ユニットに割当てる場合の柔軟性を持たせることができる。例えば、種々のファイルは、幾つかの実施において異なる性能、信頼度、コスト特性を有するボリュームに割当てられる。
別の実施態様では、コンピュータアクセス可能媒体は、実行時にファイルシステムで1つ又はそれ以上のブロックをファイルに割当て、且つ割当てポリシーに従ってブロックを割当てる要求を受け取る命令を含む。割当てポリシーは、ファイルシステムでの細分性の2つ又はそれ以上のレベルで指定可能である。例えば、場合によっては、割当てポリシーは、エクステント、ファイル、ディレクトリ、ファイルセット、及び/又はファイルシステムのレベルで指定できる。幾つかの実施態様では、割当てポリシーは、オペレーション中に変更できる。次のブロック割当ては、新しい割当てポリシーに従って行うことができる。別の点から見ると、ブロック割当ては、割当て時に実際に割当てられた1つ又は複数の割当てポリシーに従って実行される。
以下の詳細な説明は、図面の簡単な説明に記載された添付図面を参照する。
本発明は、種々の修正及び他の形態が可能であり、本発明の特定の実施形態が各図面において例証として示され、本明細書で詳細に説明される。しかしながら、本発明の図面や詳細な説明は、開示される特定の形態に本発明を限定するものではなく、逆に、本発明は添付の請求項によって定義される本発明の精神及び範囲内に含まれる全ての修正形態、均等形態、及び代替形態を保護するものである点を理解されたい。
システムの概要
図1は、システムの1つの実施形態のブロック図である。図1の実施形態では、本システムは、実行ハードウェア10と、該実行ハードウェア10に結合された複数の記憶装置12A−12Nとを含む。
実行ハードウェア10は、使用中に命令を実行するように設計された少なくとも1つのプロセッサを含む。幾つかの実施形態では複数のプロセッサを含めてもよい。実行ハードウェア10は、任意選択的に、他の構成要素(例えば、プロセッサが実行する命令やプロセッサによる動作を受けるデータを記憶するためのシステムメモリ、種々の入出力(I/O)装置、その他の同様のもの)を含む。
記憶装置12A−12Nは、何らかのタイプのコンピュータアクセス可能媒体を含む。例えば、種々の実施形態において記憶装置12A−12Nは、小型コンピュータ用周辺機器インターフェース(SCSI)ディスク、統合ドライブエレクトロニクス(IDE)ディスク、パーソナルコンピュータメモリーカード国際協会(PCMCIA)ディスク、ユニバーサルシリアルバス(USB)ディスク、ファイアワイヤディスクなどを含むことができる。記憶装置12A−12Nは更に、バッテリーバックアップ式ランダムアクセスメモリ(RAM)、フラッシュメモリ、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)などの種々のプログラム可能読出し専用メモリ(PROM)といった種々の不揮発性メモリ装置を含むことができる固体素子記憶装置(例えば記憶装置12N)を更に含むことができる。記憶装置12A−12Nは、フロッピー(登録商標)ディスクなどの取外し可能記憶装置を含むこともできる。記憶装置12A−12Nは、種々の周辺相互接続(例えば、IDE、周辺機器相互接続(PCI)、USB、シリアル又はパラレルインターフェースなど)を介して実行ハードウェア10に結合させることができる。或いは、記憶装置12A−12Nを、ネットワーク(有線又は無線)を介して実行ハードウェアに結合することができる。記憶装置12A−12Nは、ストレージエリアネットワーク(SAN)に構成することができ、或いは幾つかの実施形態ではネットワーク結合記憶装置(NAS)とすることができる。直接結合記憶装置やネットワーク記憶装置の組合せは、種々の実施形態で使用することができる。
図2は、図1に示されたシステムの幾つかの実施形態で使用可能なあるソフトウェアインフラストラクチャを示すブロック図である。図2の実施形態では、ファイルシステム14、ボリュームマネージャ16が示されており、かつ記憶装置12A−12Nを含むボリュームが示されている。ファイルシステムとボリュームマネージャソフトウェアは、使用中に、実行ハードウェア10上で実行することができる。
一般に、ボリュームマネージャ16は、記憶装置12A−12Nをボリューム(及び/又はボリュームのセット)に編成し、ファイルを記憶するためにファイルシステム14がボリュームを使用することができるようにするソフトウェアを含む。種々のボリュームは、種々の特性(例えば、種々の性能特性値、種々の信頼性特性値など)を有する。本明細書で使用される「ボリューム」という語は、ユニットとして編成され且つ呼称される、1つ又はそれ以上の記憶装置12A−12N上の記憶ブロックの集合体を示す。ボリュームは、記憶装置のブロックの全て、記憶装置のブロックの一部分(例えばディスクパーティション)、複数の記憶装置のブロックの全て、又は複数の記憶装置の各々のブロックの一部分を含むことができる。本明細書で使用される「記憶ブロック」、又はより簡潔に「ブロック」は、記憶装置上(又はボリューム内)の記憶スペースの割当ての最小単位である。ブロックサイズは、実施形態毎に異なっていてもよい。例えば、4キロバイトのブロックサイズが一般的であるが、あらゆるブロックサイズを使用することができる。
ボリュームの編成は、ある性能及び/又は信頼性特性を提供することができる。例えば、図2のボリューム1は、記憶装置12A−12Bを含むミラーボリュームである。ボリュームマネージャ16は、同じデータを記憶装置12A−12Bの両方に書き込むことができ、このため、装置12A−12Bの一方に障害があってもデータ消失を生じることがない。従って、ボリューム1はミラーリング冗長性を提供する。他のボリュームは、冗長性の追加(従ってより高い信頼度)をもたらすように、データの付加的なミラーリングを行うために更に多くの記憶装置を含むことができる。信頼度の別の例として、ボリューム3は、ボリュームマネージャ16がRAID記憶装置として管理することができる複数の記憶装置(図2の装置12D及び12Eを含む)を含む。例えば、RAIDレベル5を、幾つかの実施形態において実装することができる。他の実施形態では、どのようなRAIDレベルも実装することができる。性能特性値の幾つかは、記憶装置又はボリュームに含まれる記憶装置に由来するもの(例えば、異なるタイプの装置は、異なる待ち時間特性と帯域幅特性を有する)とすることができる。従って、ボリューム2、6は、ボリュームに含まれる記憶装置12Cと12Nに基づく異なる性能特性を有することができる。しかしながら、性能特性はまた、ボリューム編成により設定することもできる。例えばボリューム4は、性能を向上させるためにストライピングされた記憶装置12Fと12Gを含む。性能と信頼性特性に加えて、各ボリュームは、ベースとなる記憶装置のコストに基づくコスト特性を有することができる。更に、幾つかのボリュームは、同じコスト、同じ性能、同じ信頼性特性を有するよう決めることもできる。種々のユーザーは、このようなボリュームの種々のものを使用して、ユーザーがボリュームにアクセスする際に互いに干渉しないことを保証する(例えば、各ユーザーが対応するボリュームに専用の帯域幅を有することを保証する)ことができる。
ボリュームマネージャ16はまた、ボリュームセット(例えば図2のボリュームセット18)の作成をサポートすることができる。本明細書で使用される「ボリュームセット」は、ファイルシステム14がアクセスするための単一オブジェクトとして編成される1つ又はそれ以上のボリュームの集合体とすることができる。ボリュームセット内のボリュームは、ボリュームセット名とボリュームセット内の要求されるボリュームのインデックスとを使用してファイルシステム14がアドレス指定することができる。ボリュームセット内のボリュームは、異なる特性を有することができる(例えば、ボリュームセット18内のボリューム5とボリューム7とは異なる特性を有していてもよい)。
一般に、ファイルシステム14は、より高レベルのソフトウェア(たとえばオペレーティングシステム、アプリケーションプログラムなど)によって使用されるファイルを編成し追跡するソフトウェアを含むことができる。ファイルシステム14は、ディレクトリへファイルの階層的編成を提供することができ、ファイルの記憶スペースの割当てを管理する。図2の実施形態では、ファイルシステム14は、ファイルデータ(及びファイルメタデータ)を記憶するためにボリュームマネージャ16によって与えられた1つ又はそれ以上のボリューム上にブロックを割当てることができる。他の実施形態では、ボリュームマネージャ16を含まない場合には、ファイルシステム14が種々の記憶装置12A−12Nにブロックを直接割当てることができる。このような実施形態では、各記憶装置12A−12Nは、ファイルシステム14によってボリュームに類似して処理することができる。ファイルシステムに記憶された全データ(例えば、ファイルデータ、メタデータなど)は、本明細書ではファイルシステムデータと呼ぶことができる。
割当てポリシー
ファイルシステム14は、ファイルシステムに対する種々の割当てポリシーの指定を行うことができる。一般に、「割当てポリシー」は、割当てに使用することができる1つ又はそれ以上の記憶ユニットを指定することができる。記憶ユニットは、ボリュームマネージャ16を実装する実施形態において、ボリューム(ボリュームセット内のボリュームを含む)を含み、記憶ユニットは、ボリュームマネージャ16を実装しない実施形態において、記憶装置12A−12Nを含むことができる。以下の説明を簡潔にするために、割当てポリシーは、1つ又はそれ以上のボリュームを指定するものとして説明する。しかしながら、他の実施形態では、1つ又はそれ以上の記憶装置を有してもよく、同様のオペレーションでは、「ボリューム」の代わりに「記憶装置」を用い(又は、より一般的には「ボリューム」の代わりに「記憶ユニット」を用い)てもよい。更に、割当てポリシーが1つより多い記憶ユニットを指定する場合、該割当てポリシーは、複数の記憶装置の中から選択するためのメカニズムを指示する制御指示を含む。幾つかの実施形態では、多様な他の制御フラグを備えることができる(例えば、非特権ユーザーがポリシーをファイルに割当てることができるかどうかの指示、ポリシーが全ての割当てに対して厳格に守られるべきかどうかの指示など)。また割当てポリシーは、該割当てポリシーが指定されていないことを意味する「ヌル」として符号化できる。種々の実施形態において、デフォルト割当てポリシーを用いてブロックを割当てることができ、或いは他のレベルの細分性が指定された割当てポリシーを用いてもよい。
ファイルシステム14は、ファイルに対してブロックを割当てる際に割当てポリシーを用いる。すなわち、ファイルシステム14は、割当てポリシーによって指定されたボリューム上にブロックを割当て、割当てポリシーで指定されていないボリューム上にはブロックを割当てない(例え割当てポリシーで指定されていないボリューム上でブロックが使用可能な場合でも)。割当てポリシーを用いて、所与のファイルに対してどのボリュームが使用されるかを制御することができ、従って、幾つかの実施形態において、種々のファイルが記憶される記憶装置の性能、コスト、信頼性特性の管理の点でファイルシステム14のユーザーに対する柔軟性を与えることができる。幾つかの実施形態では、ボリュームは、管理者によって割当てられる1つ又はそれ以上の特性を有する。これらの割当てられた特性は、例えば、ボリュームの外部にあり且つ管理者に周知の情報に基づいてボリュームを識別することができる。例えば、管理者は、ボリュームの位置、ネットワーク上で予測されるボリュームとのトラフィックなどを識別する特性を割当てることができる。割当てポリシーは、このような割当てられた特性に基づいて割当てを制御するように定義することができる。割当てられた特性は、何らかの様式(例えば、名前/値のペア)で表すことができる。
1つの実施形態では、割当てポリシーを、ファイルに対し個々に割当てることができる。すなわち、各ファイルは、割当てられた1つ又は複数の割当てポリシーを有することができる。例えば、1つの実施形態において、ファイルは1つ又はそれ以上のiノードにより記述することができる。一般に、本明細書で使用される「iノード」は、ファイルを記述するデータ構造を含むことができる。iノードは、ファイルシステム内に記憶され、ファイルシステムのファイルを識別するのに使用される。iノードは、ファイルに割当てられた1つ又は複数の割当てポリシーを記憶することができる(又は、割当てポリシーを識別するラベルを記憶する。割当てポリシー自体は、割当てポリシーデータ構造内に記憶することができる)。従って、各ファイルは、1つの割当てポリシーを有し、種々のファイルに対する割当てポリシーは異なっていてもよい。更に、幾つかの実施形態では、ファイルデータのためのiノードとファイルメタデータのためのiノードは異なるものとすることができる。従って、ファイルデータとファイルメタデータのための割当てポリシーは異なることがある。例えば、ファイルメタデータは、対応するファイルデータよりも信頼性特性が高いボリューム上に記憶することができる。同様に、ファイルメタデータの種々のタイプに対して個別のiノードがあってもよく、メタデータの種々のタイプに対して異なる割当てポリシーが可能である。一般に、メタデータは、ファイル(又はファイル内のデータ)を記述するデータとすることができる。例えば、ディレクトリ情報をメタデータとすることができる。種々の拡張されたファイル属性(オペレーティングシステム又はアプリケーションプログラムなどの高レベルのソフトウェアによって使用される)をメタデータとして記憶することができる。ファイルへのシンボリックリンクはメタデータとすることができる。種々の実施形態において、何らかのメタデータを備えることができる。また、割当てポリシーは、iノードタイプ毎(例えば、メタデータiノードに対してのファイルデータiノード、又はディレクトリデータ、拡張ファイル属性、シンボリックリンクなどの種々のタイプのメタデータiノード、など)に割当てることができる。
別の実施形態では、割当てポリシーは、ファイルシステムの1つより多いレベルの細分性で割当てることができる。例えば割当てポリシーは、ファイルシステム全体、ファイルシステム内のファイルセット、ファイルシステム又はファイルセット内のディレクトリ、ファイルシステム(又はファイルセット)内のファイルに割当てることができる。所与の割当てでは、ヌルではないファイルに対して細分性が最も細かいレベルの割当てポリシーを用いることができる。別の実施形態では、割当てポリシーはまた、ファイル内の各エクステントに割当てることができる。本明細書で使用される「エクステント」とは、ファイルに割当てられるボリューム内の連続したブロックのセットである。エクステントに割当てポリシーを割当てることで、エクステントが拡張される場合にエクステントに付加される記憶領域を管理できるようになる。更に別の実施形態では、割当てポリシーはファイルの範囲に割当てることができる。
ファイルシステムは、1つ又はそれ以上のファイルセットを含むことができる点に留意されたい。ファイルセットは、ユニットとして(ボリュームセットとボリュームとの関係に類似して)処理されるファイルの集合体とすることができる。幾つかの実施形態では、ファイルセットは、ファイルシステム内の独立したネームスペースとすることができる。1つの実施形態では、ファイルセットは、バックアップ目的で使用することができる。ファイルセットの1つは、プライマリ(アクティブ)ファイルセットとすることができ、他のファイルセットは、バックアップ目的のためのファイルシステム状態をスナップショットするクローンとすることができる。このような実施形態では、ファイルセットはまた、「チェックポイント」と呼ぶこともできる。
割当てられた1つ又は複数の割当てポリシーは、必要に応じてオペレーション中に動的に変更することができる。対応するファイルに対する新しい割当ては、新しい割当てポリシーに従う。必要であれば、ファイルに対する記憶領域は、新しい割当てポリシーが全ファイルに使用されるようにポリシー変更後に再割当てすることができる。
ここで図3を参照すると、ファイルシステム14の一部の1つの実施形態のブロック図が示されている。図3の実施形態では、ファイルシステム14は、アロケータ20、アプリケーションプログラミングインターフェース(API)22、コマンドインターフェース24を含む。アロケータ20、API22、コマンドインターフェース24は、ファイルシステムポリシー、1つ又はそれ以上のファイルセットポリシー(例えば、ファイルシステム内の各ファイルセットに対して1つ)、ファイルへの割当てのために定義することができる他の種々のポリシーへアクセスすることができる。ファイルシステムポリシー、ファイルセットポリシー、その他のポリシーは共に、ファイルシステム14に対する複数の割当てポリシー26を形成することができる。複数の割当てポリシー26は、データ構造として(例えばファイルシステム14のボリュームの1つに)ファイルシステム14によって記憶させることができる。またアロケータ20は、ファイルシステム内の各ボリュームに対してフリーブロックを定義するデータ構造のセットにアクセスすることができる(例えば、ボリューム1に対するフリーブロックリストが参照番号28Aで、及びボリュームNに対するフリーブロックリストが参照番号28Nで図3に示されている)。
アロケータ20は、実行時に(例えば実行ハードウェア10で)ブロック割当て要求に応答してファイル記憶領域にブロックを割当てる命令を含むことができる。ブロック割当て要求は、ファイルを更新しているアプリケーションプログラム、オペレーティングシステムソフトウェアなどが参照することができる。ブロック割当て要求は、ファイルに割当てられた割当てポリシー(又はその指示)と、要求されているブロック数を含む。或いは、ブロック割当て要求は、ファイルが割当てられることになるブロックを識別でき、アロケータ20は、ファイルに対応する割当てポリシーを(例えば割当てポリシー26などのアロケータ20にアクセス可能なデータ構造から)取得する。例えば、1つの実施形態では、ブロック割当て要求は、ブロックを要求しているiノードを含むと共にブロック数を含む。iノードは、ブロックを要求しているファイルを識別することができ、また、ファイルに割当てられた割当てポリシーを指定することができる。他の実施形態では、ファイルに対する割当てポリシーは、アロケータ20によってアクセス可能なデータ構造(例えば、割当てポリシー26)内に記憶することができ、従って、ブロック割当て要求には明示的には指定されない場合がある。このような実施形態では、アロケータ20は、ファイル識別(例えばiノード)を用いて、iノードのための割当てポリシーをルックアップすることができる。
アロケータ20は、ブロック割当て要求に対してファイルの割当てポリシーを適用することができ、割当てられたブロック数及びブロックへのポインタを要求側に戻すことができる。実際に割当てられるブロック数は、要求されたブロック数よりも少ないこともある(例えば、ブロック数が、割当てポリシーに含まれるボリュームのうちの1つに対する連続したグループとして位置付けられない場合)。このような場合、要求側は、所望のブロック数が割当てられるまで(又はブロックを割当てることができないことを示すエラーが発生するまで)要求を繰り返す(要求されたブロック数から割当てられたブロック数を減算する)ことができる。割当てに利用可能なブロックは、フリーブロックリスト28A−28Nによって示すことができ、アロケータは、ファイルへのブロックの割当てに応答して、リストから割当てられたブロックを取り除くためにフリーブロックリスト28A−28Nを更新できる。割当てポリシーが種々の細分性のレベルで指定される実施形態では、アロケータ20は、要求に対し使用可能な細分性の最も細かいレベルで且つヌルではない割当てポリシーを適用することができる。
コマンドインターフェース24は、種々の管理コマンドに応答(例えば実行ハードウェア10上で)して、実行される命令を含むことができる。管理コマンドは、ユーザーが(例えばコマンドセシェルを介して)入力することができる。割当てポリシーに関係するコマンドのセットを(例えば割当てポリシーの追加、ポリシーの割当て、ポリシーの変更などのために)実装することができる。コマンドのセットの例を図12に示し、以下に詳細に説明する。API22は、アプリケーションプログラムによって作成されたアプリケーションコマンドを受け取る。アプリケーションコマンドは、API22における種々のソフトウェアルーチンへのコールである。アプリケーションコマンドは、管理コマンドのサブセットとすることができ、割当てポリシーを管理するためにアプリケーション(及びオペレーティングシステムソフトウェア)が使用することができる。幾つかの実施形態では、割当てポリシーを管理するために使用されるアプリケーションコマンドのセットは、管理コマンドのセットと同じものとすることができる。ファイルシステム14の管理者は、割当てポリシーを管理するためにどの程度の許可がアプリケーションに提供されるかを制御することができ、API22は、その許可に何らかの制限を課すことができる。
次に図4を参照すると、iノード30の1つの実施形態のブロック図が示されている。図4の実施形態では、iノード30は、データポリシーフィールド32、間接ポリシーフィールド34、他の属性36、ポインタフィールド38を含む。
図示の実施形態では、データポリシーフィールド32と間接ポリシーフィールド34によりiノード毎に2つの割当てポリシーを提供している。直接ポリシーフィールド32で指定されたデータポリシーは、データブロック要求に使用することができ、間接ポリシーフィールド34で指定された間接ポリシーは、間接ブロック要求に使用される。従って、この実施形態では、アロケータ20によって受け取られるブロック割当て要求はまた、要求がデータブロック又は間接ブロックのいずれかの指示を含むことができる。本明細書で使用されるデータブロックは、ファイルデータ(又はメタデータ)を記憶するために割当てられたブロックである。間接ブロックは、1つ又はそれ以上のデータブロック或いは他の間接ブロックの指示を記憶するのに割当てられたブロックである。間接ブロックは、ファイルインデクシングのいずれかの形式(例えば、データブロック又は他の間接ブロックへのポインタ、データブロック又は他の間接ブロックを識別するビットマップなど)を含むことができる。間接ブロックの割当てポリシーとは異なるデータブロックの割当てポリシーを有することが望ましいことがある。データブロックは大きなエクステントで割当てられる場合が多いが、間接ブロックは少数のブロックとして割当てられる場合が多い。異なる割当てポリシーを使用することによって、間接ブロック割当ては、データブロック割当てに使用されることになるボリュームを細分化する可能性を低くすることができる。直接ポリシーフィールド32と間接ポリシーフィールド34が、実際のポリシー自体ではなく割当てポリシー26のうちの1つを識別するラベルを記憶することができる点に留意されたい。本明細書で使用されるiノードは、割当てポリシーを含むこと又は割当てポリシーを識別するラベルを含むことのいずれかによって、割当てポリシーを「指定」することができる。
ポインタフィールド38は、ブロックへの1つ又はそれ以上のポインタを記憶することができる。幾つかの実施形態では、ファイルデータがポインタフィールド38内に記憶するのに十分小さい場合、ファイルデータを1つ又は複数のポインタの代わりに記憶することができる。
他の属性36は、iノードに対応するファイルの他の情報(例えばアクセス許可、オーナー、タイムスタンプなど)を記憶することができる。必要に応じて、他のどのような情報も記憶することができ、或いは情報を全く記憶できない場合もある。1つの実施形態では、他の属性36は、ポインタフィールド38が、ファイルデータ、データブロックへの1つ又はそれ以上のポインタ、或いは間接ブロックへの1つ又はそれ以上のポインタを含むかどうかを示すことができる。
図5、6、7は、iノード30の種々の実施形態である、iノード30A、iノード30B、iノード30Cを示す。iノード30Aは、ポインタフィールド38内に記憶されたファイルデータを有するiノードの例である。iノード30Bは、データブロック(例えば、図6のブロック40A、40B)への1つ又はそれ以上のポインタを有するiノードの例である。iノード30Cは、間接ブロックへの1つ又はそれ以上のポインタ(例えば、間接ブロック42Aはデータブロック44A、44Bをポイントし、間接ブロック42Bはデータブロック44C、44Dをポイントする)を有するiノードの例である。図5、6、7に示されるように、各iノード30A−30Cは、データポリシーフィールド32と間接ポリシーフィールド34を含む。
2つの割当てポリシーフィールドが図4−7の実施形態に示されているが、他の実施形態では、1つの割当てポリシーが1つのiノード毎に指定されたり、或いは2つより多い割当てポリシーが1つのiノード毎に指定されてもよい。更に、割当てポリシーフィールドは、種々の実施形態の他の場所に記憶することができる。例えば、割当てポリシーフィールドは、他のメタデータと共に記憶することができる。また割当てポリシーフィールドはまた、間接ブロックなどにも記憶することができる。
図8を参照すると、ブロック割当て要求に応答したアロケータ20の1つの実施形態のオペレーションを示すフローチャートが示されている。図8に示された実施形態は、割当てポリシーを種々のレベルの細分性で設定することができる実施形態に使用することができる。図示の実施形態では、割当てポリシーがiノードにおいて備えられ(例えば図4)、また、ファイルセットとファイルシステムのレベルで指定することができる。図8のフローチャートは、実行時に図8に示されたオペレーションを実施するアロケータ20に含まれる命令を表している。
アロケータ20は、ブロック割当て要求がデータブロック(又は複数のブロック)或いは間接ブロック(又は複数のブロック)用のものかどうかを判断する(決定ボックス50)。この要求がデータブロック用である場合、アロケータ20は、要求において備えられるiノードによって指定されたデータポリシーをチェックする(決定ボックス52)。データポリシーがヌルでない(決定ボックス52の「Yes」の区間)場合、アロケータ20は、ブロック(複数のブロック)を割当てるためにデータポリシーを適用する(ボックス54)。他方、要求が間接ブロック用である場合、アロケータ20は、要求において備えられるiノードによって指定された間接ポリシーをチェックする(決定ボックス56)。間接ポリシーがヌルでない(決定ボックス56の「Yes」区間)場合、アロケータ20はブロック(複数のブロック)を割当てるために間接ポリシーを用いる(ボックス58)。
要求が間接ブロック(複数の間接ブロック)のためであり、iノードによって指定された間接ポリシーがヌルである場合、或いは要求がデータブロック(複数のデータブロック)のためであり、iノードによって指定されたデータポリシーがヌルである場合には、アロケータ20は、ファイルを含むファイルセット用のファイルセットポリシーをチェックする(決定ボックス60)。ファイルセットポリシーがヌルでない(決定ボックス60の「Yes」区間)場合には、アロケータ20は、ブロック(複数のブロック)を割当てるためにファイルセットポリシーを適用する(ボックス62)。同様に、ファイルセットポリシーがヌルである場合、アロケータ20は、ファイルシステムポリシーをチェックする(決定ボックス64)。ファイルシステムポリシーがヌルでない(決定ボックス64の「Yes」区間)場合、アロケータ20は、ブロック(複数のブロック)を割当てるためにファイルシステムポリシーを適用する(ボックス66)。ファイルセットポリシーがヌルである(決定ボックス64の「No」区間)場合、アロケータ20は、デフォルトポリシーを適用する(ボックス68)。デフォルトポリシーは、要求されるどのようなポリシーであってもよい。例えば、デフォルトポリシーは、ファイルシステムに付加された何らかのボリュームにブロックを割当てるものとする。
アロケータ20は、ポインタを割当てられたブロック(複数のブロック)と割当てられた多数のブロックに戻す(ボックス70)。上述のように、場合によっては、所与の要求に対して要求されたブロック数よりも少ないものが割当てられることがある。所与の要求に割当てられるブロックがない場合には、代わりにエラーを戻すことができる。
図8の実施形態は、細分性のiノード(ファイル)レベルの別個のデータ及び間接ポリシーと、細分性がより粗いレベル(例えばファイルセットとファイルシステムのレベル)での1つのポリシーとを示している。他の実施形態では、細分性のより粗いレベルは、同様に別個のデータと間接ポリシーを有する。このような実施形態では、間接又はデータポリシーは、ブロック割当て要求がデータブロック(複数のデータブロック)用か、又は間接ブロック(複数の間接ブロック)用であるかに基づいて各粗いレベルで選択される。
図示された実施形態は、ファイル、ファイルセット、細分性のファイルシステムレベル(及びポリシーが指定されない場合はデフォルト)の割当てポリシーを含むが、他の実施形態では、細分性の何らかのサブセットを使用する。他の実施形態は、図示のレベル(又は図示のレベルの何らかのサブセット)に加えて、細分性のエクステント又はファイル範囲レベルを実装する。
他の実施形態では、ファイルシステム14は、割当てポリシー用の細分性の複数レベルを実装することができない(すなわち、ファイルレベルポリシーだけを実装する)。このような実施形態では、デフォルトポリシーは、要求が間接ブロック(複数の間接ブロック)用であり且つiノードによって指定された間接ポリシーがヌルである場合、或いは要求がデータブロック(複数のデータブロック)用であり且つiノードによって指定されたデータポリシーがヌルである場合に使用する。
別の実施形態では、アロケータ20が要求タイプに応じて、iノードに指定されたデータポリシーと間接ポリシーだけをチェックする点に留意されたい。種々の細分性でのポリシーは、ファイルが作成されるときに有効にする。すなわち、図8のフローチャートと同様のコード実行は、作成されているファイルのiノードにおいてデータポリシーフィールド32と間接ポリシーフィールド34を設定するためにファイル作成中に実行する(ユーザー指定のポリシーを割当てることができる場合、或いはユーザー指定のポリシーが備えられないときにファイルセット又はファイルシステムポリシーを使用する場合)。
上述のように、種々の割当てポリシーは、使用中に動的に修正される。図8のフローチャートは、ブロック割当て要求が受け取られた時に実際に割当てポリシーを使用する。
ブロック54、58、62、66の各々で、割当てポリシーが適用される。割当てポリシーの適用には、一般に、1つより多いボリュームがリストされる場合の制御指示の制御下で割当てポリシーに含まれるボリュームから割当てを試みる段階を含む。種々の制御指示符号化用のポリシーを適用する幾つかの例を図9−11に示す。すなわち、割当てポリシーでの制御指示に応じて、ブロック54、58、62、66のいずれかが、図9−11に示されたフローチャートのいずれかを使用して実施する。図9−11のフローチャートは、実行時に図9−11に示されたオペレーションを実施するアロケータ20を形成する命令を各々表す。
図9は、「as given」ポリシーのアプリケーションを示すフローチャートである(すなわち、制御指示は、「as given」を示すようにコード化される)。このポリシーでは、割当てポリシーにリストされた順序でボリュームから割当てようとする試みが行われる。すなわち、割当てポリシーの第1ボリュームが使用可能な少なくとも1つのブロックを有する場合、そのブロックは、要求に応じて割当てられる。第1ボリュームがフルである場合、割当てポリシーの第2ボリュームから割当てようとする試みが行われる。
従って、アロケータ20は、割当てポリシーにリストされた順序でボリュームをスキャンする(更に具体的には、アロケータ20は、ボリューム用のフリーブロックリスト28A−28Nにアクセスする)(ボックス80)。アロケータ20は、スペースを有する割当てポリシーにおける第1ボリュームに1つ又はそれ以上のブロックを割当てることができる(ボックス82)。
或いは、アロケータ20は、要求された割当てサイズのボリュームを(割当てポリシーにリストされた順序で)スキャンし、要求されたサイズの連続したブロックを有する第1ボリュームに要求サイズを割当てることができる。要求されたサイズが使用可能でない場合、アロケータ20は、割当てに使用可能ないずれかのブロックを有する第1ボリュームからブロックを割当てる。
図10は、「least full」ポリシーのアプリケーションを示すフローチャートである(すなわち、制御指示は「least full」を示すようにコード化される)。このポリシーでは、ブロックは、最も空きのある(例えば、使用可能な最も多くのブロックを有する、又は種々の実施形態でボリュームの総ブロックのパーセンテージとして使用可能な最も多くのブロックを有する)割当てポリシーのボリュームに割当てられる。従って、アロケータ20は、最も空きのあるボリュームを位置付けるためにボリュームをスキャンする(更に具体的には、アロケータ20はボリュームのためのフリーブロックリスト28A−28Nにアクセスする)(ボックス84)。アロケータ20は、最も空きのあるボリュームにブロックを割当てることができる(ボックス86)。
順序及びフルネス以外の他の基準を用いて、ブロック割当て要求に応答して割当て用の割当てポリシーに指定されたボリュームの中から選択可能である。例えば、ボリュームの細分化を考慮することができ、ブロック割当て要求とは無関係に備えられる望ましい最小割当てサイズを考慮する、等々。例えば、図11は、「MinSize」ポリシー(すなわち、制御指示が「MinSize」を示すようにコード化される)のアプリケーションを示すフローチャートである。このポリシーでは、アロケータ20は、割当てポリシーでのボリュームのいずれかから要求サイズ(ブロック数)のより小さいもの又は最小サイズ(ブロック数)を割当てようと試みる。最小サイズは、プログラム可能(ファイルシステムに対して大域的、又は割当てポリシー内で)とすることができ、又は固定とすることもできる。
従って、アロケータ20は、ポリシーにリストされた順序でボリュームをスキャンする(より具体的には、アロケータ20はボリューム用のフリーブロックリスト28A−28Nにアクセスする)(ボックス88)。最小サイズ(又は要求されたサイズ)のブロックが位置付けられた(ボックス90の「Yes」区間)場合、アロケータ20は、位置付けられたボリュームにブロックを割当てることができる(ボックス92)。最小サイズ(又は要求されたサイズ)のブロッが位置付けられなかった(ボックス90の「No」区間)場合、アロケータ20は、ブロックを割当てるためにas givenポリシーを使用する(ボックス94)。
他のポリシーも同様に考慮される。例えば、他のポリシーを選ぶ前に1つのポリシーをどの程度まで適用するかを示す重みを備えた、「as given」と「MinSize」ポリシーとを組み合わせたポリシーとする。更に、複数の割当てポリシーを所与のファイル用に要求されるボリュームのサブセットに適用可能である。
次に図12を参照すると、割当てポリシーに関してコマンドインターフェース24によってサポートする種々の管理コマンドの1つの実施形態のテーブルが示されている。コマンドの同様のセット、又はサブセットは、API22を介したアプリケーションからサポートする。他の実施形態は、必要に応じてコマンドのいずれかのサブセット、又は他の付加的なコマンドを実装する。他の付加的なコマンドは、同様に他のファイルシステム機能についてサポートする。
ボリューム追加コマンドを用いて、ファイルシステムにボリュームを追加する。ボリューム追加コマンドは、どの割当てポリシーにもボリュームを追加することができない。ボリューム除去コマンドを用いて、ファイルシステムからボリュームを取り除くことができる。ボリューム除去コマンドは、ボリュームが1つ又はそれ以上の割当てポリシーで依然として指定される機能をなくすことができる。ボリュームサイズ変更コマンドを用いて、ボリュームのサイズ変更をする(例えば、ボリュームのブロック数を増減させるため)ことができる。
割当てポリシー作成コマンドを用いて、割当てポリシーを作成する(例えば、割当てポリシー26に新しい割当てポリシーを追加するため)ことができる。割当てポリシー削除コマンドを用いて、割当てポリシー26から割当てポリシーを削除する。割当てポリシー情報コマンドを用いて、指定された割当てポリシーのコンテンツを検索する。
ファイルセット割当てポリシー割当てコマンドは、細分性のファイルセットレベル用の1つ又は複数の割当てポリシーを割当てることができる。同様に、ファイルシステム割当てポリシー割当てコマンドを用いて、細分性のファイルシステムレベル用の1つ又は複数の割当てポリシーを割当てることができる。対応するファイルセット割当てポリシー情報とファイルシステム割当てポリシー情報コマンドを用いて、細分性のファイルセットとファイルシステムレベルでのポリシーのコンテンツをそれぞれ検索する。
ファイル割当てポリシー割当てコマンドを用いて、ファイルの割当てポリシー(データ及び/又は間接)を割当てることができる。ファイル割当てポリシー情報コマンドを用いて、ファイルのポリシーのコンテンツを検索する。
カプセル化コマンドを用いて、全ボリュームをカバーする1つのデータエクステントを備えたファイルを作成する。このコマンドを用いて、以下の例の部分で更に詳細に説明されるように、データベースによって使用される生のボリュームをカプセル化する。
更に、幾つかの実施形態では、ファイルに割当てられた割当てポリシー以外の異なる割当てポリシーに従ってファイルを再割当てするコマンドをサポートする。このようなコマンドを用いて、ファイルの割当てポリシーを実際に変更することなく異なる割当てポリシーに従ってファイルを再割当てする。
図13を参照すると、ファイルシステム14の一部分の第2の実施形態のブロック図が示されている。図13の実施形態は、アロケータ20、API22、コマンドインターフェース24、割当てポリシー26、フリーブロックリスト28A−28Nを示している。更に、アロケータ20によってアクセス可能な自動割当てポリシーテーブル100が示されている。
自動割当てポリシーテーブル100を用いて、ファイルが作成されるときに幾つかのファイル用の割当てポリシーを割当てることができる。自動割当てポリシーテーブル100は複数の入口を含む。各入口は、入力インデックス値に対してマッチするインデックス値と、マッチング入力インデックス値を有するファイルに割当てられることになる1つ又は複数の割当てポリシーを含む。どのファイル属性も、種々の実施形態でテーブルへの入力インデックスとして使用できる。例えば、ファイルネーム接尾辞(ファイルのデータタイプを指示するために使用される場合が多い)が使用される。他の実施形態では、ファイルネームの他の部分を使用する。更に他の実施形態では、ファイルサイズを使用する。また他の実施形態では、ファイルのオーナー又は作成者を使用する。テーブルのマッチングインデックス値が見つかった場合(「ヒット」)、テーブルで指定された対応する割当てポリシーをファイルに割当てることができる。
図14は、ファイルを作成するための要求に応じたアロケータ20の1つの実施形態のオペレーションを示すフローチャートである。図14のフローチャートは、実行時に図14に示されるオペレーションを実施するアロケータ20を形成する命令を表すことができる。
アロケータ20は、ファイルが自動ポリシーテーブル100でヒットがあるかどうかを判定する(決定ボックス102)。ヒットがある(決定ボックス102の「Yes」区間)場合、ファイル用の1つ又は複数の割当てポリシーは、自動ポリシーテーブル100から割当てられる(ボックス104)。ヒットがない(決定ボックス102の「No」区間)場合には、アロケータ20は、ファイルが親(例えば、ディレクトリ、ファイルセット、又はファイルシステム)からの1つ又は複数の割当てポリシーを受け継ぐかどうかを決定する(決定ボックス106)。例えば、ファイルシステム14は、割当てポリシーの継承するようにプログラムする。或いは、継承されるかどうかは、細分性の他のレベル(例えば、ファイルセット、ディレクトリなど)で指定する。他の実施形態では継承を実装することができない。ファイルが割当てポリシーを受け継ぐことになる(決定ボックス106の「Yes」区間)場合、アロケータ20は親の1つ又は複数のポリシーを割当てることができる(ボックス108)。ファイルが割当てポリシーを受け継がない(決定ボックス106の「No」区間)場合には、アロケータ20は、ファイルにヌルの1つ又は複数のポリシーを割当てることができる。または、ファイルセット割当てポリシー又はファイルシステム割当てポリシーは、必要な場合にはボックス106で割当てることができる。
割当てポリシー利用の例
割当てポリシーは、ファイルシステムのボリュームに対するファイルの種々の割当てを行うために多くの方法で使用する。以下に提供される例は、網羅的なものではない。
1つのアプリケーションでは、1つ又はそれ以上のボリュームに所与のチェックポイントでのファイルを割当てる。このような割当てにより、ファイルシステムの管理者はチェックポイントによって使用されるスペースを制限することができ、チェックポイントが一次ファイルセットのスペースを細分化するのを防ぐことができる。複数のチェックポイントは、同様に同じボリュームに割当てることができる。このアプリケーションでは、ファイルシステムは、1つのボリュームを含む割当てポリシーを有する1つのファイルセット(一次ファイルセット)を最初に有する。異なるボリュームを含む新しい割当てポリシーを作成することができ、新しい割当てポリシーが割当てられるチェックポイントファイルセットを作成する。
別のアプリケーションは、メタデータからファイルデータを分離するためのものである。上述のように、メタデータは、ファイルデータよりも有用と考えられる場合が多い。従って、ファイルデータより大きな信頼性特性を有するボリュームにメタデータを記憶し、メタデータの種々のクラスに信頼度の種々のレベルを与えることが望ましい。このアプリケーションでは、ファイルデータiノードは、第1の1つ又はそれ以上のボリュームを含む第1割当てポリシーを割当てられ、メタデータiノードは、第1の1つ又はそれ以上のボリュームと重ならない第2の1つ又はそれ以上のボリュームを含む第2割当てポリシーを割当てられる。第2ボリュームは、第1ボリュームより高い信頼性特性を有する。信頼度の種々のレベルがメタデータの種々のクラスに要求される場合、付加的な割当てポリシーを作成してもよい。
更に別の例示的なアプリケーションは、他のファイルと異なる物理記憶装置にファイルシステムインテントログを記憶するためのものである。幾つかのファイルシステム(例えば、カリフォルニア州Mountain View所在のVERITAS Software Corporation,,製のVERITAS File System(商標))は、種々のファイルシステムデータを修正するためのインテントを記録するのに使用されるインテントログを含む。修正の全てが完了する前にシステムがクラッシュした場合には、インテントログを用いて、更新すべきものを検出し、更新終了又は更新を取り消すことのいずれかを行うことができる。インテントログ(頻繁に更新される)を他のファイルとは別の物理記憶装置に置くことで、装置(インテントログと他のファイルとの間)を頻繁にシークしなくてもよくなり、インテントログデータブロックを有するボリュームが細分化されるのが防止される。このアプリケーションでは、単一のボリューム(又は複数のボリューム)をインテントログに使用するように指定する割当てポリシーを作成することができ、インテントログiノードに割当てることができる。他の割当てポリシーは、インテントログに使用されるボリューム又は複数のボリュームを使用することはできない。同様のメカニズムを用いて、自己の物理ディスク上の他のログ(例えば、ファイルへの変更を記録するVERITAS File System(商標)によって実施されるファイル変更ログ)を分離する。
データベースソフトウェア(Oracleなど)は、そのデータを記憶する(例えばブロック割当て自体を管理する)ために生のボリュームを使用する場合が多い。データベースボリュームのバックアップは、生のボリュームがどのファイルも包含しないので複雑になり、ファイルをバックアップするためボリュームからファイルにデータをコピーするのに時間がかかる。このアプリケーションでは、カプセル化コマンドを用いて、ファイルシステムに生のボリュームを付加し、ボリュームをファイルにカプセル化する。
幾つかのファイルは、関連する「ネームストリーム」構造を有する。ネームストリームを用いて、ファイルについての他の情報(例えば、ファイルに属するアイコンなど)を記憶する。ファイルデータ以外の異なるボリュームにネームストリームを記憶するのが望ましい。このアプリケーションでは、ネームストリームiノード(複数のiノード)は、ファイルデータiノード(複数のiノード)以外の異なる割当てポリシーを割当てることができる。
より一般的には、ユーザー定義の基準に基づいて種々のボリュームで種々のファイルを記憶するのが望ましい。例えば、幾つかのファイル(例えば、マルチメディアファイル)は、他のファイル以外の異なるアクセスパターンを有する。アクセスパターンのタイプに対してより適切に機能するボリュームにこのようなファイルを記憶することが望ましい。ユーザーは、割当てポリシーをファイルに割当てることが許可され、要求される割当てを達成する。幾つかの実施形態では、割当てポリシーは、非特権ユーザーが所与の割当てポリシーへアクセスするかどうかを示すフラグを有する。このようなフラグは、どの割当てポリシーをユーザーが使用するかを管理者が制御できるようにする。
他の実施形態では、付加的な管理制御を実施する。付加的な管理制御は、幾人かのユーザー又はユーザーのグループに割当てポリシーの定義、ファイルへの割当てポリシーの割当てなどを許可する際により柔軟に行うことができる。
別の例では、シングルボリュームの最大サイズよりも大きなサイズのファイルシステムを可能にする。この例では、複数ボリュームをファイルシステムに付加することができ、ファイルシステム用の割当てポリシーは、いずれかの使用可能なボリュームにファイルを割当てるものとする。
コンピュータアクセス可能媒体
図15を参照すると、コンピュータアクセス可能媒体120のブロック図が示されている。一般に、コンピュータアクセス可能媒体は、コンピュータに命令及び/又はデータを提供するために使用中のコンピュータによってアクセス可能ないずれかの媒体を含む。例えば、コンピュータアクセス可能媒体は、磁気又は光媒体などの記憶媒体、例えば、ディスク(固定又は取り外し可能)、CD−ROM、又はDVD−ROM、RAMなどの揮発性又は不揮発性メモリ媒体(例えばSDRAM、RDRAM、SRAMなど)、ROMなど、並びにネットワーク及び/又は無線リンクなどの通信媒体を介して伝達される電気、電磁、又はデジタル信号などの送信媒体又は信号を介してアクセス可能な媒体を含む。図15のコンピュータアクセス可能媒体120は、ファイルシステムソフトウェア14(例えば、アロケータ20、API22、及び/又はコマンドインターフェース24を含む)、割当てポリシー26、自動ポリシーテーブル100の1つ又はそれ以上を記憶する。
上記開示を十分に理解すれば、多数のバリエーション及び修正が当業者には明らかになるであろう。添付の請求項は、全てのこれらのバリエーション及び修正を含むものとされる。
システムの1つの実施形態のブロック図である。 ファイルシステム、ボリュームマネージャ、及び種々のボリューム又はボリュームセットの1つの実施形態のブロック図である。 ファイルシステムソフトウェアの1つの実施形態の更に詳細なブロック図である。 iノードの1つの実施形態のブロック図である。 ファイルデータを記憶するiノードの1つの実施形態のブロック図である。 データブロックへの1つ又はそれ以上のポインタを記憶するiノードの1つの実施形態のブロック図である。 各々がデータブロックへの1つ又はそれ以上のポインタを記憶する間接ブロックへの1つ又はそれ以上のポインタを記憶するiノードの1つの実施形態のブロック図である。 図7に示されたアロケータの1つの実施形態のオペレーションを示すフローチャートである。 「as given」割当てポリシーを適用する1つの実施形態を示すフローチャートである。 「least full」割当てポリシーを適用する1つの実施形態を示すフローチャートである。 「MinSize」割当てポリシーを適用する1つの実施形態を示すフローチャートである。 割当てポリシーに関して使用されるコマンドの1つの実施形態を示すテーブルである。 ファイルシステムソフトウェアの第2の実施形態をより詳細に示すブロック図である。 ファイルを作成時に含まれるアクティビティの1つの実施形態を示すフローチャートである。 コンピュータアクセス可能な媒体の1つの実施形態のブロック図である。

Claims (42)

  1. 実行時に、
    ファイルに1つ又はそれ以上のブロックを割当てる要求を受け取る命令であって、前記ファイルに少なくとも1つの割当てポリシーが割当てられ、前記割当てポリシーが前記ブロックが割当てられる1つ又はそれ以上の記憶ユニットを指定し、1つより多い記憶ユニットが指定される場合に制御指示が前記記憶ユニットの中から選択するメカニズムを指示する命令と、
    前記割当てポリシーに従ってブロックを割当てる命令と、
    を含むコンピュータアクセス可能媒体。
  2. 前記ファイルのiノードが、前記割当てポリシーを指定することを特徴とする請求項1に記載のコンピュータアクセス可能媒体。
  3. 前記iノードは、間接ブロック要求のために使用される第1割当てポリシーとデータブロック要求のために使用される第2割当てポリシーとを指定し、前記要求は、前記要求が間接ブロック又はデータブロック用のいずれであるかの指示を含み、実行時に前記命令が、前記指示に応じて前記第1割当てポリシー又は前記第2割当てポリシーのいずれかを選択することを特徴とする請求項2に記載のコンピュータアクセス可能媒体。
  4. 実行時に、前記命令は、前記割当てポリシーがヌルである場合に前記ファイルを含むファイルセットに対応するファイルセットポリシーをチェックすることを特徴とする請求項1に記載のコンピュータアクセス可能媒体。
  5. 実行時に、前記命令は、前記ファイルセット割当てポリシーがヌルである場合に前記ファイルセットを含むファイルシステムに対応するファイルシステム割当てポリシーをチェックすることを特徴とする請求項4に記載のコンピュータアクセス可能媒体。
  6. 実行時に、前記命令は、前記ファイルシステム割当てポリシーがヌルである場合にデフォルト割当てポリシーを使用することを特徴とする請求項5に記載のコンピュータアクセス可能媒体。
  7. 実行時に、前記命令は、前記割当てポリシーがヌルである場合に前記ファイルを含むディレクトリに対応するディレクトリ割当てポリシーをチェックすることを特徴とする請求項1に記載のコンピュータアクセス可能媒体。
  8. 実行時に、前記命令は、
    割当てポリシーの自動割当てが前記ファイルの作成中に指定されるかどうかを判定し、
    前記自動割当てが指定される判定に応答して前記割当てポリシーを割当てることを特徴とする請求項1に記載のコンピュータアクセス可能媒体。
  9. 前記自動割当てが指定されるかどうかを判定する段階が、ファイル属性と対応する割当てポリシーのテーブルをチェックする段階を含む請求項8に記載のコンピュータアクセス可能媒体。
  10. 前記ファイル属性は、ファイルネーム接尾辞を含むことを特徴とする請求項9に記載のコンピュータアクセス可能媒体。
  11. 前記ファイル属性がファイルサイズを含むことを特徴とする請求項9に記載のコンピュータアクセス可能媒体。
  12. 前記記憶ユニットがボリュームを含むことを特徴とする請求項1に記載のコンピュータアクセス可能媒体。
  13. 前記制御指示は、前記記憶ユニットが前記割当てポリシーで与えられた順序で選択されることを示すことを特徴とする請求項1に記載のコンピュータアクセス可能媒体。
  14. 前記制御指示は、前記記憶ユニットが前記割当てポリシーで指定された最も空きのある記憶ユニットとして選択されることを示すことを特徴とする請求項1に記載のコンピュータアクセス可能媒体。
  15. 前記制御指示は、前記記憶ユニットが最小サイズのエクステントを位置付けるためにスキャンされ、前記最小サイズのエクステントを有する前記記憶ユニットが選択され、前記最小サイズのエクステントが見つからない場合には、前記記憶ユニットは前記割当てポリシーで与えられた順序で選択されることを示すことを特徴とする請求項1に記載のコンピュータアクセス可能媒体。
  16. ファイルに1つ又はそれ以上のブロックを割当てる要求を受け取る段階であって、前記ファイルに少なくとも1つの割当てポリシーが割当てられ、該割当てポリシーは、ブロックが割当てられる1つ又はそれ以上の記憶ユニットを指定し、1つより多い記憶ユニットが指定された場合に制御指示は、前記記憶ユニットの中から選択するメカニズムを指定する前記段階と、
    前記割当てポリシーに従ってブロックを割当てる段階とを含む方法。
  17. 前記ファイルのiノードは、前記割当てポリシーを指定することを特徴とする請求項16に記載の方法。
  18. 前記iノードは、間接ブロック要求のために使用される第1割当てポリシーと、データブロック要求のために使用される第2割当てポリシーとを指定し、前記要求は、前記要求が間接ブロック又はデータブロックのいずれのためのものか指示を含み、
    前記方法は更に、
    前記指示に従って前記第1割当てポリシー又は前記第2割当てポリシーのいずれかを選択する段階を含む請求項17に記載の方法。
  19. 前記ファイルに割当てられた前記割当てポリシーを変更する段階を更に含み、
    前記割当てが、前記割当てを行う時に実際に前記割当てポリシーに応答することを特徴とする請求項16に記載の方法。
  20. 実行時に、
    ファイルシステムのファイルに1つ又はそれ以上のブロックを割当てるための要求を受け取り、
    割当てポリシーに従ってブロックを割当てる
    命令を含み、
    前記割当てポリシーが前記ファイルシステムの細分性の2つ又はそれ以上のレベルで指定できることを特徴とするコンピュータアクセス可能媒体。
  21. 細分性の第1レベルは、前記ファイルを含むことを特徴とする請求項20に記載のコンピュータアクセス可能媒体。
  22. 細分性の第2レベルは、前記ファイルを含むファイルセットを含むことを特徴とする請求項21に記載のコンピュータアクセス可能媒体。
  23. 細分性の第2レベルは、前記ファイルを含むファイルシステムを含むことを特徴とする請求項21に記載のコンピュータアクセス可能媒体。
  24. 細分性の第2レベルは、前記ファイルのエクステントを含むことを特徴とする請求項21に記載のコンピュータアクセス可能媒体。
  25. 細分性の第2レベルは、前記ファイルの範囲を含むことを特徴とする請求項21に記載のコンピュータアクセス可能媒体。
  26. ファイルシステムで使用するための1つ又はそれ以上の割当てポリシーを生成する段階であって、前記割当てポリシーが、前記ファイルシステムに関連する複数の記憶ユニットへのファイルシステムデータの割当てを制御する前記段階と、
    前記方法が更にファイルシステムデータに割当てポリシーを割当てる段階と
    を含む方法。
  27. 前記1つ又はそれ以上の割当てポリシーの各々は、1つ又はそれ以上の記憶特性を有する複数の記憶ユニットの1つ又はそれ以上を指定し、これによってあるファイルシステムデータの割当てが前記1つ又はそれ以上の記憶特性に関係付けられることを特徴とする請求項26に記載の方法。
  28. 前記1つ又はそれ以上の記憶特性が、前記記憶ユニットの性能特性を含むことを特徴とする請求項27に記載の方法。
  29. 前記1つ又はそれ以上の記憶特性が、前記記憶ユニットの信頼性特性を含むことを特徴とする請求項27に記載の方法。
  30. 前記1つ又はそれ以上の記憶特性が、記憶ユニットに割当てられた少なくとも第1記憶特性を含むことを特徴とする請求項27に記載の方法。
  31. 前記第1記憶特性は、管理者によって割当てられることを特徴とする請求項27に記載の方法。
  32. 前記ファイルシステムデータが、一次ファイルセットと少なくとも1つの他のファイルセットを含み、割当てポリシーを割当てる前記段階が、前記一次ファイルセットに対する第1割当てポリシーと前記他方のファイルセットに対する第2割当てポリシーとを割当てる段階を含むことを特徴とする請求項26に記載の方法。
  33. 前記第1割当てポリシーが、前記複数の記憶ユニットの第1の1つ又はそれ以上を指定し、前記第2割当てポリシーが、前記複数の記憶ユニットの前記第1の1つ又はそれ以上を除いた、前記複数の記憶ユニットの第2の1つ又はそれ以上を指定することを特徴とする請求項32に記載の方法。
  34. 前記ファイルシステムデータは、ファイルデータとメタデータを含み、割当てポリシーを割当てる前記段階は、前記ファイルデータに第1割当てポリシーを割当て、前記メタデータに第2割当てポリシーを割当てる段階を含むことを特徴とする請求項26に記載の方法。
  35. 前記第1割当てポリシーは、前記複数の記憶ユニットの第1の1つ又はそれ以上を指定し、前記第2割当てポリシーは、前記複数の記憶ユニットの第2の1つ又はそれ以上を指定し、前記複数の記憶ユニットの前記第2の1つ又はそれ以上は、前記複数の記憶ユニットの前記第1の1つ又はそれ以上より高い信頼性特性を有することを特徴とする請求項34に記載の方法。
  36. 前記ファイルシステムは、1つ又はそれ以上のログを含み、割当てポリシーを割当てる前記段階は、前記1つ又はそれ以上のログに第1割当てポリシーを割当てる段階と、他のファイルシステムデータに前記複数の割当てポリシーの他方を割当てる段階を含む請求項24に記載の方法。
  37. 前記第1割当てポリシーは、前記複数の記憶ユニットの第1の1つ又はそれ以上を指定し、前記第2割当てポリシーは、前記複数の記憶ユニットの前記第1の1つ又はそれ以上を除いた前記複数の記憶ユニットの第2の1つ又はそれ以上を指定することを特徴とする請求項36に記載の方法。
  38. 前記1つ又はそれ以上のログはインテントログを含むことを特徴とする請求項36に記載の方法。
  39. 前記1つ又はそれ以上のログはファイル変更ログを含むことを特徴とする請求項36に記載の方法。
  40. 前記ファイルシステムデータはネームストリームと対応するファイルデータとを含み、割当てポリシーを割当てる前記段階は、前記ネームストリームに第1割当てポリシーを割当て、前記対応するファイルデータに第2割当てポリシーを割当てる段階を含むことを特徴とする請求項26に記載の方法。
  41. 前記記憶ユニットはボリュームを含み、第1割当てポリシーが前記ボリュームのいずれかに対する割当てを起こすことを特徴とする請求項26に記載の方法。
  42. 前記生成段階は、前記複数の割当てポリシーの1つ又はそれ以上に1つ又はそれ以上の管理制御を適用する段階を含む請求項26に記載の方法。
JP2006509097A 2003-05-30 2004-05-28 マルチボリュームファイルサポート Pending JP2007526528A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/449,739 US7814128B2 (en) 2003-05-30 2003-05-30 Multi-volume file support
PCT/US2004/018635 WO2005001682A2 (en) 2003-05-30 2004-05-28 Multi-volume file support

Publications (1)

Publication Number Publication Date
JP2007526528A true JP2007526528A (ja) 2007-09-13

Family

ID=33551255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006509097A Pending JP2007526528A (ja) 2003-05-30 2004-05-28 マルチボリュームファイルサポート

Country Status (5)

Country Link
US (1) US7814128B2 (ja)
EP (1) EP1634161A2 (ja)
JP (1) JP2007526528A (ja)
CN (1) CN100383720C (ja)
WO (1) WO2005001682A2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010086420A (ja) * 2008-10-01 2010-04-15 Nec Corp ストレージ装置、領域割り当て方法、及びプログラム
JP2012238335A (ja) * 2012-08-29 2012-12-06 Hitachi Ltd ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置
KR20140042419A (ko) * 2012-09-28 2014-04-07 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
WO2014184943A1 (ja) * 2013-05-17 2014-11-20 株式会社 日立製作所 ストレージ装置及びraidグループ構成方法
JP2014534513A (ja) * 2011-10-11 2014-12-18 トムソン ライセンシングThomson Licensing メディア資産を分類するための方法およびユーザインターフェース
KR101482285B1 (ko) 2007-03-06 2015-01-13 마이크로소프트 코포레이션 복수의 이종의 솔리드 스테이트 저장 위치들의 선택적 이용

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8965936B2 (en) * 2004-02-26 2015-02-24 Comcast Cable Holdings, Llc Method and apparatus for allocating client resources to multiple applications
US7424574B1 (en) 2004-04-21 2008-09-09 Sun Microsystems, Inc. Method and apparatus for dynamic striping
US7603568B1 (en) 2004-04-21 2009-10-13 Sun Microsystems, Inc. Method and apparatus for self-validating checksums in a file system
US7415653B1 (en) 2004-04-21 2008-08-19 Sun Microsystems, Inc. Method and apparatus for vectored block-level checksum for file system data integrity
US7496586B1 (en) 2004-05-26 2009-02-24 Sun Microsystems, Inc. Method and apparatus for compressing data in a file system
US7412450B1 (en) 2004-05-26 2008-08-12 Sun Microsystems, Inc. Method and apparatus for identifying tampering of data in a file system
US7526622B1 (en) 2004-05-26 2009-04-28 Sun Microsystems, Inc. Method and system for detecting and correcting data errors using checksums and replication
US7533225B1 (en) 2004-08-17 2009-05-12 Sun Microsystems, Inc. Method and apparatus for enabling adaptive endianness
US7437528B1 (en) 2004-08-17 2008-10-14 Sun Microsystems, Inc. Gang blocks
US7756154B2 (en) * 2005-03-22 2010-07-13 Netapp, Inc. Shared implementation for multiple system interfaces
US7734869B1 (en) 2005-04-28 2010-06-08 Netapp, Inc. Interfaces for flexible storage management
US7386559B1 (en) * 2005-05-23 2008-06-10 Symantec Operating Corporation File system encapsulation
JP2006338461A (ja) * 2005-06-03 2006-12-14 Hitachi Ltd 電子的なファイルの記憶を制御するシステム及び方法
US7743038B1 (en) * 2005-08-24 2010-06-22 Lsi Corporation Inode based policy identifiers in a filing system
US20070078914A1 (en) * 2005-09-30 2007-04-05 International Business Machines Corporation Method, apparatus and program storage device for providing a centralized policy based preallocation in a distributed file system
US7865673B2 (en) * 2005-11-04 2011-01-04 Oracle America, Inc. Multiple replication levels with pooled devices
US8635190B2 (en) * 2005-11-04 2014-01-21 Oracle America, Inc. Method and system for pruned resilvering using a dirty time log
US7930495B2 (en) * 2005-11-04 2011-04-19 Oracle America, Inc. Method and system for dirty time log directed resilvering
US7873799B2 (en) * 2005-11-04 2011-01-18 Oracle America, Inc. Method and system supporting per-file and per-block replication
US7716445B2 (en) * 2005-11-04 2010-05-11 Oracle America, Inc. Method and system for storing a sparse file using fill counts
US8549051B2 (en) * 2005-11-04 2013-10-01 Oracle America, Inc. Unlimited file system snapshots and clones
US7480684B2 (en) * 2005-11-04 2009-01-20 Sun Microsystems, Inc. Method and system for object allocation using fill counts
US7743225B2 (en) * 2005-11-04 2010-06-22 Oracle America, Inc. Ditto blocks
US7689877B2 (en) * 2005-11-04 2010-03-30 Sun Microsystems, Inc. Method and system using checksums to repair data
US7899989B2 (en) * 2005-11-04 2011-03-01 Oracle America, Inc. Method and system for using a block allocation policy
US20070112895A1 (en) * 2005-11-04 2007-05-17 Sun Microsystems, Inc. Block-based incremental backup
US7925827B2 (en) * 2005-11-04 2011-04-12 Oracle America, Inc. Method and system for dirty time logging
US8495010B2 (en) * 2005-11-04 2013-07-23 Oracle America, Inc. Method and system for adaptive metadata replication
US7877554B2 (en) * 2005-11-04 2011-01-25 Oracle America, Inc. Method and system for block reallocation
US20070106868A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for latency-directed block allocation
US8938594B2 (en) * 2005-11-04 2015-01-20 Oracle America, Inc. Method and system for metadata-based resilvering
US7657671B2 (en) * 2005-11-04 2010-02-02 Sun Microsystems, Inc. Adaptive resilvering I/O scheduling
US7716519B2 (en) * 2005-11-04 2010-05-11 Oracle America, Inc. Method and system for repairing partially damaged blocks
US7596739B2 (en) * 2005-11-04 2009-09-29 Sun Microsystems, Inc. Method and system for data replication
US7475077B2 (en) * 2006-01-31 2009-01-06 International Business Machines Corporation System and method for emulating a virtual boundary of a file system for data management at a fileset granularity
JP4884041B2 (ja) * 2006-03-15 2012-02-22 株式会社日立製作所 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
US7613946B2 (en) * 2006-09-14 2009-11-03 International Business Machines Corporation Apparatus, system, and method for recovering a multivolume data set
US7840657B2 (en) * 2006-10-31 2010-11-23 Oracle America, Inc. Method and apparatus for power-managing storage devices in a storage pool
US7584229B2 (en) * 2006-10-31 2009-09-01 Sun Microsystems, Inc. Method and system for priority-based allocation in a storage pool
US7783847B2 (en) * 2006-10-31 2010-08-24 Oracle America Inc. Method and system for reallocating blocks in a storage pool
US8560760B2 (en) * 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
US8285758B1 (en) * 2007-06-30 2012-10-09 Emc Corporation Tiering storage between multiple classes of storage on the same container file system
US7792882B2 (en) * 2007-09-27 2010-09-07 Oracle America, Inc. Method and system for block allocation for hybrid drives
US8886909B1 (en) 2008-03-31 2014-11-11 Emc Corporation Methods, systems, and computer readable medium for allocating portions of physical storage in a storage array based on current or anticipated utilization of storage array resources
US8095728B2 (en) * 2008-04-18 2012-01-10 Oracle America, Inc. Method and system for power aware I/O scheduling
US8117165B1 (en) 2008-04-30 2012-02-14 Netapp, Inc. Disk-to-disk backup of database archive logs
US8037279B2 (en) * 2008-06-12 2011-10-11 Oracle America, Inc. Method and system for cross-domain data sharing
US8135907B2 (en) * 2008-06-30 2012-03-13 Oracle America, Inc. Method and system for managing wear-level aware file systems
US8190575B1 (en) * 2008-08-27 2012-05-29 Western Digital Technologies, Inc. Disk drive maintaining multiple copies of code segments
US8280858B2 (en) * 2009-06-29 2012-10-02 Oracle America, Inc. Storage pool scrubbing with concurrent snapshots
CN101630332B (zh) * 2009-07-30 2012-07-04 成都市华为赛门铁克科技有限公司 数据存储管理方法、数据存储管理装置和系统
US8321521B1 (en) * 2011-06-24 2012-11-27 Limelight Networks, Inc. Write-cost optimization of CDN storage architecture
US8438334B2 (en) * 2009-12-22 2013-05-07 International Business Machines Corporation Hybrid storage subsystem with mixed placement of file contents
US8924681B1 (en) * 2010-03-31 2014-12-30 Emc Corporation Systems, methods, and computer readable media for an adaptative block allocation mechanism
US9330105B1 (en) 2010-05-07 2016-05-03 Emc Corporation Systems, methods, and computer readable media for lazy compression of data incoming to a data storage entity
US9311002B1 (en) 2010-06-29 2016-04-12 Emc Corporation Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity
US9002911B2 (en) * 2010-07-30 2015-04-07 International Business Machines Corporation Fileset masks to cluster inodes for efficient fileset management
US8904126B2 (en) 2010-11-16 2014-12-02 Actifio, Inc. System and method for performing a plurality of prescribed data management functions in a manner that reduces redundant access operations to primary storage
US9858155B2 (en) 2010-11-16 2018-01-02 Actifio, Inc. System and method for managing data with service level agreements that may specify non-uniform copying of data
US8843489B2 (en) 2010-11-16 2014-09-23 Actifio, Inc. System and method for managing deduplicated copies of data using temporal relationships among copies
US8417674B2 (en) 2010-11-16 2013-04-09 Actifio, Inc. System and method for creating deduplicated copies of data by sending difference data between near-neighbor temporal states
US8402004B2 (en) 2010-11-16 2013-03-19 Actifio, Inc. System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
US8688650B2 (en) 2011-08-01 2014-04-01 Actifio, Inc. Data fingerprinting for copy accuracy assurance
US9183245B2 (en) * 2011-11-07 2015-11-10 Sap Se Implicit group commit when writing database log entries
US9342348B2 (en) * 2012-01-23 2016-05-17 Brocade Communications Systems, Inc. Transparent high availability for stateful services
US20130212340A1 (en) * 2012-02-15 2013-08-15 International Business Machines Corporation Partition aware quality of service feature
US9754005B2 (en) 2012-06-18 2017-09-05 Actifio, Inc. System and method for incrementally backing up out-of-band data
US9264499B2 (en) 2012-12-14 2016-02-16 Intel Corporation Cloud data storage location monitoring
US9348840B2 (en) * 2012-12-14 2016-05-24 Intel Corporation Adaptive data striping and replication across multiple storage clouds for high availability and performance
US9646067B2 (en) 2013-05-14 2017-05-09 Actifio, Inc. Garbage collection predictions
US9665437B2 (en) 2013-11-18 2017-05-30 Actifio, Inc. Test-and-development workflow automation
US9720778B2 (en) 2014-02-14 2017-08-01 Actifio, Inc. Local area network free data movement
US9792187B2 (en) 2014-05-06 2017-10-17 Actifio, Inc. Facilitating test failover using a thin provisioned virtual machine created from a snapshot
US9772916B2 (en) 2014-06-17 2017-09-26 Actifio, Inc. Resiliency director
US10425480B2 (en) * 2014-06-26 2019-09-24 Hitachi Vantara Corporation Service plan tiering, protection, and rehydration strategies
US10379963B2 (en) 2014-09-16 2019-08-13 Actifio, Inc. Methods and apparatus for managing a large-scale environment of copy data management appliances
WO2016044403A1 (en) 2014-09-16 2016-03-24 Mutalik, Madhav Copy data techniques
US9697227B2 (en) 2014-10-27 2017-07-04 Cohesity, Inc. Concurrent access and transactions in a distributed file system
WO2016094819A1 (en) 2014-12-12 2016-06-16 Actifio, Inc. Searching and indexing of backup data sets
WO2016115135A1 (en) 2015-01-12 2016-07-21 Xiangdong Zhang Disk group based backup
US10282201B2 (en) 2015-04-30 2019-05-07 Actifo, Inc. Data provisioning techniques
US10691659B2 (en) 2015-07-01 2020-06-23 Actifio, Inc. Integrating copy data tokens with source code repositories
US10613938B2 (en) 2015-07-01 2020-04-07 Actifio, Inc. Data virtualization using copy data tokens
US10445298B2 (en) 2016-05-18 2019-10-15 Actifio, Inc. Vault to object store
US10476955B2 (en) 2016-06-02 2019-11-12 Actifio, Inc. Streaming and sequential data replication
US10855554B2 (en) 2017-04-28 2020-12-01 Actifio, Inc. Systems and methods for determining service level agreement compliance
US11403178B2 (en) 2017-09-29 2022-08-02 Google Llc Incremental vault to object store
US11176001B2 (en) 2018-06-08 2021-11-16 Google Llc Automated backup and restore of a disk group
CN109669640B (zh) * 2018-12-24 2023-05-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184739A (ja) * 1997-12-19 1999-07-09 Nec Corp ファイルブロック割り当て方式およびファイルブロック割り当て用制御プログラムを記録した記録媒体
JP2001051855A (ja) * 1999-08-09 2001-02-23 Nec Corp メモリ分割管理方式
WO2003021441A1 (en) * 2001-08-31 2003-03-13 Arkivio, Inc. Techniques for storing data based upon storage policies

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5018060A (en) 1989-01-26 1991-05-21 Ibm Corporation Allocating data storage space of peripheral data storage devices using implied allocation based on user parameters
WO1995011508A1 (fr) * 1993-10-18 1995-04-27 Sony Corporation Procede de gestion d'informations, support d'enregistrement de donnees, procede d'enregistrement de donnees, procede et dispositif d'extraction d'informations
US6256643B1 (en) * 1998-03-10 2001-07-03 Baxter International Inc. Systems and methods for storing, retrieving, and manipulating data in medical processing devices
EP0905693A4 (en) * 1997-04-07 2001-02-14 Sony Corp DEVICE AND METHOD FOR RECORDING DATA AND DEVICE AND METHOD FOR DRIVE STACK
US6170009B1 (en) 1998-07-17 2001-01-02 Kallol Mandal Controlling devices on a network through policies
US6553387B1 (en) * 1999-11-29 2003-04-22 Microsoft Corporation Logical volume configuration data management determines whether to expose the logical volume on-line, off-line request based on comparison of volume epoch numbers on each extents of the volume identifiers
US6745207B2 (en) * 2000-06-02 2004-06-01 Hewlett-Packard Development Company, L.P. System and method for managing virtual storage
US6912537B2 (en) * 2000-06-20 2005-06-28 Storage Technology Corporation Dynamically changeable virtual mapping scheme
US6636879B1 (en) * 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6782389B1 (en) * 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
JP2002132730A (ja) 2000-10-20 2002-05-10 Hitachi Ltd 個人情報の信頼度および開示度による認証またはアクセス管理システム、および管理方法
GB0027280D0 (en) 2000-11-08 2000-12-27 Malcolm Peter An information management system
US6952698B2 (en) * 2001-10-05 2005-10-04 International Business Machines Corporation Storage area network methods and apparatus for automated file system extension
JP2005510794A (ja) 2001-11-23 2005-04-21 コムヴォールト・システムズ・インコーポレーテッド 選択的データ複製システムおよび方法
US6978283B1 (en) * 2001-12-21 2005-12-20 Network Appliance, Inc. File system defragmentation technique via write allocation
US7269612B2 (en) 2002-05-31 2007-09-11 International Business Machines Corporation Method, system, and program for a policy based storage manager
US7155460B2 (en) * 2003-03-18 2006-12-26 Network Appliance, Inc. Write-once-read-many storage system and method for implementing the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184739A (ja) * 1997-12-19 1999-07-09 Nec Corp ファイルブロック割り当て方式およびファイルブロック割り当て用制御プログラムを記録した記録媒体
JP2001051855A (ja) * 1999-08-09 2001-02-23 Nec Corp メモリ分割管理方式
WO2003021441A1 (en) * 2001-08-31 2003-03-13 Arkivio, Inc. Techniques for storing data based upon storage policies
JP2005502121A (ja) * 2001-08-31 2005-01-20 アルキヴィオ・インコーポレーテッド 記憶ポリシに基づいてデータを記憶する技法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
新開 慶武: "21世紀に向けた研究開発", FUJITSU VOL.50 NO.4, JPN6009066836, 9 July 1999 (1999-07-09), pages 210 - 214, ISSN: 0001498973 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101482285B1 (ko) 2007-03-06 2015-01-13 마이크로소프트 코포레이션 복수의 이종의 솔리드 스테이트 저장 위치들의 선택적 이용
JP2010086420A (ja) * 2008-10-01 2010-04-15 Nec Corp ストレージ装置、領域割り当て方法、及びプログラム
JP2014534513A (ja) * 2011-10-11 2014-12-18 トムソン ライセンシングThomson Licensing メディア資産を分類するための方法およびユーザインターフェース
JP2012238335A (ja) * 2012-08-29 2012-12-06 Hitachi Ltd ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置
KR20140042419A (ko) * 2012-09-28 2014-04-07 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
JP2014071905A (ja) * 2012-09-28 2014-04-21 Samsung Electronics Co Ltd コンピュータシステム及びコンピュータシステムのデータ管理方法
KR102050725B1 (ko) 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
WO2014184943A1 (ja) * 2013-05-17 2014-11-20 株式会社 日立製作所 ストレージ装置及びraidグループ構成方法
US9785372B2 (en) 2013-05-17 2017-10-10 Hitachi, Ltd. Storage device and method for configuring raid group

Also Published As

Publication number Publication date
EP1634161A2 (en) 2006-03-15
US20050010620A1 (en) 2005-01-13
CN1816795A (zh) 2006-08-09
US7814128B2 (en) 2010-10-12
CN100383720C (zh) 2008-04-23
WO2005001682A3 (en) 2005-07-21
WO2005001682A2 (en) 2005-01-06

Similar Documents

Publication Publication Date Title
JP2007526528A (ja) マルチボリュームファイルサポート
US8407265B1 (en) Hierarchical mapping of free blocks of cylinder groups of file systems built on slices of storage and linking of the free blocks
US8549252B2 (en) File based volumes and file systems
US8332360B2 (en) QoS-enabled lifecycle management for file systems
US8438138B2 (en) Multiple quality of service file system using performance bands of storage devices
US7861311B2 (en) Apparatus and method of managing hidden area
US8620973B1 (en) Creating point-in-time copies of file maps for multiple versions of a production file to preserve file map allocations for the production file
US7599972B2 (en) File system having variable logical storage block size
US8315995B1 (en) Hybrid storage system
US7325017B2 (en) Method of implementation of data storage quota
US9430331B1 (en) Rapid incremental backup of changed files in a file system
US10809932B1 (en) Managing data relocations in storage systems
JP2015521310A (ja) 効率的なデータオブジェクトストレージ及び検索
EP2972747B1 (en) Data storage, file and volume system providing mutliple tiers
US11327665B2 (en) Managing data on volumes
US11328089B2 (en) Built-in legal framework file management
US11321488B2 (en) Policy driven data movement
US11301430B2 (en) Hybrid model of fine-grained locking and data partitioning
US7958097B1 (en) Method and system for implementation of data storage quota
US10620844B2 (en) System and method to read cache data on hybrid aggregates based on physical context of the data
US20070106868A1 (en) Method and system for latency-directed block allocation
US11106813B2 (en) Credentials for consent based file access
Silberschatz et al. Operating systems
US11443056B2 (en) File access restrictions enforcement
JP2021117560A (ja) 情報処理システム、情報処理装置およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100405

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100506

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101104

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20101117

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110215