JP5000316B2 - オブジェクト・ベースのデータ記憶装置 - Google Patents

オブジェクト・ベースのデータ記憶装置 Download PDF

Info

Publication number
JP5000316B2
JP5000316B2 JP2007014879A JP2007014879A JP5000316B2 JP 5000316 B2 JP5000316 B2 JP 5000316B2 JP 2007014879 A JP2007014879 A JP 2007014879A JP 2007014879 A JP2007014879 A JP 2007014879A JP 5000316 B2 JP5000316 B2 JP 5000316B2
Authority
JP
Japan
Prior art keywords
storage device
objects
attribute
node
storage
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.)
Expired - Fee Related
Application number
JP2007014879A
Other languages
English (en)
Other versions
JP2007200333A (ja
Inventor
エドワード メッシンガー ダニエル
ジェイ.ブロツキー スチュアート
エム.フィッシュ ウィルソン
チャン チュン
ビー.ウォーデン ジョン
イレーン サミ
リーデル エリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2007200333A publication Critical patent/JP2007200333A/ja
Application granted granted Critical
Publication of JP5000316B2 publication Critical patent/JP5000316B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は一般にデータ記憶に関するものであって、特にオブジェクト・ベースの記憶装置に関するが、これに限定されるものではない。
コンピュータの環境は、記憶媒体上で記憶しまた検索する必要のあるプログラム・オブジェクトを生成するオブジェクト・ベースのアプリケーション・プログラムの方向に進んでいる。かかるプログラム・オブジェクトは記憶装置によるサービス品質の要求に関して種々の特性を有してよい。オブジェクトは、信頼度、データ転送記憶速度、データ転送検索速度、ジッタ、誤りのないことなどの種々の要求の組合せを有してよい。
記憶のニーズの種々の組合せをより良く処理するために、オブジェクト・ベースの記憶装置を適応させる必要がある。本発明の種々の実施の形態はかかる問題の解決策を提供し、また従来の方法より優れた他の利点を提供するものである。
ここに開示するのは記憶装置である。記憶装置は記憶媒体を含む。記憶媒体は記憶性能の種々のゾーン属性を持つ多数の媒体ゾーンを有する。記憶装置はホスト・システムに接続可能なデータ・チャンネルを含む。データ・チャンネルは、要求記憶属性をそれぞれ含む多数のオブジェクトを伝達する。
記憶装置はオブジェクト・ベースの記憶インターフェースを含む。オブジェクト・ベースの記憶インターフェースはデータ・チャンネルと記憶媒体との間に結合する。オブジェクト・ベースの記憶インターフェースは多数のオブジェクトの記憶をスケジュールする。各オブジェクトは、要求記憶属性を満たすゾーン属性を有するゾーン内に記憶するようスケジュールされる。
第1の好ましい実施の形態では、選択されたゾーンは要求記憶属性を超えるゾーン属性を有する。
第2の好ましい実施の形態では、オブジェクト・ベースの記憶インターフェースは、Iノードのアクセス頻度の低い部分を第1の選択されたゾーン内に記憶するようにスケジュールする機能を有し、またIノードのアクセス頻度の高い部分を第1の選択されたゾーンから物理的に分離された第2の選択されたゾーン内に記憶するようにスケジュールする機能を有する。
第3の好ましい実施の形態では、オブジェクト・ベースの記憶インターフェースは多数のオブジェクトのBトリー・ディレクトリを含み、Bトリー・ディレクトリは区分識別子およびオブジェクト識別子を含む分類キーを有する。
第4の好ましい実施の形態では、オブジェクト・ベースの記憶インターフェースは、単一の利用可能な割当てグループに適合する各オブジェクトをその単一の割当てグループ内に記憶するようにスケジュールする。
本発明の実施の形態を特徴づける他の機能および利点は、以下の詳細な説明を読みまた関連する図面を検討すれば明らかになる。
図1は、本発明の実施の形態が有用なディスク・ドライブ100の等角図である。ディスク・ドライブ100は、ベース102およびトップ・カバー(図示せず)を持つハウジングを含む。ディスク・ドライブ100は、ディスク・クランプ108によりスピンドル・モータ(図示せず)上に取り付けられるディスク・パック106を更に含む。ディスク・パック106は、中心軸109の回りを共に回転するよう取り付けられた複数の個別のディスクを含む。各ディスク表面は、ディスク表面と通信するためにディスク・ドライブ100に取り付けられた関連するディスク・ヘッド・スライダ110を有する。図1に示す例では、スライダ110はサスペンション112により支持され、サスペンション112はアクチュエータ116のトラック・アクセシング・アーム114に取り付けられる。
図1に示すアクチュエータは回転可動コイル・アクチュエータとして知られているタイプであり、一般に118で示すボイス・コイル・モータ(VCM)を含む。ボイス・コイル・モータ118はその取り付けられたヘッド110と共にアクチュエータ116をピボット・シャフト120の回りに回転させて、ディスク内径124とディスク外径126との間のアーチ形の経路122に沿う望ましいデータ・トラックの上にヘッド110を位置決めする。ボイス・コイル・モータ118は、ヘッド110およびホスト・コンピュータ(図示せず)により生成される信号に基づいてサーボ・エレクトロニクス130により駆動される。
図2は、オブジェクト・ベースのデータ記憶のための、オブジェクト・ベースのスマート(smart)な割当ておよび処理のプロセスを示す。このプロセスは、ディスク・ドライブなどの記憶装置200での、サービス品質(QoS)、データ転送速度、低ジッタ、または信頼度などの性能を向上させる。オブジェクト・ベースのディスク割当てプロセスは、オブジェクト・ベースの記憶インターフェース216を用いて、オブジェクト・ベースのアプリケーション230,232により生成された、またはユーザにより生成された、要求記憶属性226,228などのヒントを取得する。要求記憶属性226,228は、サービス品質(QoS)、信頼度、データ転送速度、低ジッタ、またはオブジェクト(オブジェクト222,224など)のためまたはファイルのための他のデータ記憶または検索のニーズを含んでよい。
オブジェクト・ベースの記憶割当てプロセスはこれらのヒントを用いて、ディスク性能を最適にし、また要求QoS、信頼度、速度、またはオブジェクトまたはファイルのための多数の要求属性を提供する。これは、記憶媒体202内の記憶空間をオブジェクトに割り当てると共にオブジェクトを処理するときに、スマートな決定を行うことにより達成される。記憶媒体202の異なる部分は異なる性能特性を有し、スマートな決定はオブジェクトの記憶および検索ニーズに従ってオブジェクトの記憶を割り当てる。
図2において、記憶装置200は記憶媒体202を含む。記憶媒体202は、記憶性能の種々の検知ゾーン属性214を持つ多数の媒体ゾーン204,206,208,210,212を有する。記憶装置200は好ましくはディスク・ドライブである。記憶媒体202は好ましくはゾーンに分割された磁気記憶ディスクである。検知ゾーン属性214の値は好ましくは、記憶装置200内のオブジェクト・ベースの記憶インターフェース216の一部である変更可能な不揮発性メモリ内に記憶される。検知ゾーン属性214は、特定の記憶装置200をテストすることにより、または記憶装置200のグループの代表的なサンプルをテストすることにより、またはその両方により、検知することができる。
記憶装置200は、ホスト・システム・バス234を介してホスト・システム220に接続可能なデータ・チャンネル218を含む。データ・チャンネル218はホスト・システム・バス234とオブジェクト・ベースの記憶インターフェース216との間を連絡し、またデータ・フォーマット変換を行う。データ・チャンネル218はバス234からオブジェクト222,224を受ける。オブジェクト222,224は、オブジェクト222または224に関連する要求属性226,228をそれぞれ有する。要求属性226,228は、サービス品質(QoS)属性、信頼度属性、または関連するオブジェクトの他の要求性能属性を含んでよい。
オブジェクト・ベースの記憶インターフェース216はデータ・チャンネル218と記憶媒体202との間に結合する。オブジェクト・ベースの記憶インターフェース216は、検知ゾーン属性214が要求記憶属性226,228を超える場所である選択された媒体ゾーン204,206,208,210,212内に各オブジェクトを記憶するのを制御する。オブジェクト・ベースの記憶インターフェース216は属性比較論理236を含む。これは、オブジェクトの要求記憶属性と利用可能なゾーンの検知記憶属性とを比較して、検知記憶属性が要求記憶属性を満たすまたは超えるゾーン内に空間を割り当てる。次にオブジェクトは選択されたゾーン内に記憶される。
ゾーン属性214は好ましくは、検知ゾーン記憶属性214をゾーン物理アドレス240の関数としてマップするマップ238内に記憶される。記憶インターフェース216は好ましくは、要求記憶属性を最小限満たすかまたは要求記憶属性を最適に超えるゾーン内に記憶するようにオブジェクトをスケジュールする。属性比較論理236は、多数のオブジェクトをゾーン内に最適に記憶するためのスケジューリング・アルゴリズムを含んでよい。このアルゴリズムは再割当てを行うためのファジィ論理を含み、変化する使用条件、または変化する検知記憶属性条件の下で、利用可能な記憶空間の利用を最適にしてよい。かかる再割当ては記憶割当ての背景処理で、または前景処理で行ってよい。
オブジェクトは、周知のファイルと同様のアクセス方法(例えば、読取りや書込み)とオブジェクトの特性を記述する属性とを持つ記憶の論理ユニット(すなわち、バイトの集合)である。オブジェクトを記憶する装置をオブジェクト・ベースの記憶装置(OSD)と呼ぶ。OSDドライブ(すなわち、オブジェクトを記憶するディスク・ドライブ)では、新しい属性はユーザまたはアプリケーション・プログラムにより定義されまたオブジェクトに関連付けられて、ユーザと記憶装置(ディスク・ドライブ)との間の伝達を円滑にする。かかる属性を用いることにより、ユーザ(またはアプリケーション・プログラム)は、特定のオブジェクトについて記憶装置に何を要求するかを示し、またオブジェクトに関する有用なヒント(例えば、これからオブジェクトをどのように用いるか、固定サイズのオブジェクトかどうか、など)を記憶装置に与えてよい。オブジェクトを記憶する場所または方法やオブジェクトが要求されたときに処理する方法に関して決定を行うときに、装置はこの情報を用いる。
現在のブロック・ベースの記憶装置(すなわち、ディスク・ドライブ)は記憶方式の点で適応性が余りよくない。ブロック・ベースの記憶装置は単にデータのブロックを記憶し、必要に応じてユーザにこれを提供するだけである。いくつかの基本的な割当て機能は行う(例えば、不良なセクタを再マップする)が、記憶しているデータの内容やデータについてのユーザの要求が何かには応答しない。したがって、データの特定の集合について特殊なQoSまたは信頼度を効果的に提供することはできない。また、データの用い方に基づいて記憶位置の性能最適化を行うこともできない。これらの機能性のいくつかはホスト・システム220のレベル(すなわち、ファイル・システム)で実現することはできるが、ホストはディスクおよびその構成要素(例えば、媒体、可能な欠陥など)の物理特性に関して、記憶装置200自身内の属性比較論理236で実施できるほど多くの情報にアクセスすることができない。
図2に示すように、オブジェクト・ベースの記憶装置(OSD)200は低レベルの記憶機能をホスト・システム220レベル(すなわち、ファイル・システム)から記憶装置200自身に移す。OSDディスク・ドライブは全ての空間管理機能をドライブ・レベルで行う。したがって、ドライブはドライブ上にどんなオブジェクト(ファイル)が記憶されているか、またオブジェクト(ファイル)の各部分が正確にドライブ上のどこにあるかを知っている。更に、ディスク・ドライブは物理的構成要素(例えば、媒体、読取り/書込みヘッドなど)、その能力(ゾーン当たりの処理能力)、現在の状態(例えば、不良の/再マップされたセクタ)に関する全ての検知情報を有する。
全てのユーザ・データが同じではなく、また全てのユーザ・データが同じレベルの性能または信頼度を必要とするわけではない。或るもの(例えば、エクセル(登録商標)表計算)では信頼度の方が性能より重要であるが、別のもの(例えば、ビデオ・ストリーム)では性能が最も重要である。どのアプリケーションも、そのデータが図2に示すようにディスク・レベルで知られているときだけ、そのデータのディスク性能を最適にするのを支援できる特有の特性を有する。
ユーザまたはソフトウエア・アプリケーションは属性を定義しまたその属性をオブジェクトと関連付けて、ユーザの要求が何かとか、最適な性能のためにユーザが何か有用な情報をディスク・ドライブにどのようにして送るかについて、ユーザ(またはアプリケーション)とディスク・ドライブとの間の連絡を円滑にする。これらの属性はサービス品質(QoS)を含んでよい。QoS属性は要求QoS(ドライブに対するユーザまたはアプリケーションの要求)を含んでよい。QoS属性は最小QoSを含んでよい。これはユーザまたはアプリケーションが受け入れられる最低レベルである。ドライブは要求QoSをできるだけ提供しようと努める。ドライブが最小またはそれ以上のQoSを提供できない場合は、ドライブは要求を拒否してよい。必要であれば、ユーザまたはアプリケーションはより小さな最小QoSを持つ別の要求を出してよい。QoSは、相対的数値尺度(例えば、1から10の尺度)または絶対的性能値(すなわち、毎秒当たりのメガバイトでの転送速度およびジッタ)で表してよい。
かかるQoSパラメータ(属性)が与えられると、ディスク・ドライブはディスク・レベルの知識を用いて、ユーザ要求を満たすために多くのことを行うことができる。例えばディスク・ドライブはゾーン化情報を用いることができる。すなわち、ドライブの異なる部分を用いて、要求/最小のQoSに基づいてデータを記憶する。ディスク上の外側トラックは内側トラックよりかなり優れた性能(処理能力)を有する。高いQoSレベルでは、かかる外側トラックを用いてよい。
ディスク・ドライブは優先度ベースのディスク・スケジューリング・アルゴリズムを用いて、異なるQoSレベルのオブジェクトを区別することができる。不良の/再マップされたセクタを持つディスクの部分は、高いQoSオブジェクトに用いるのを避ける。同じオブジェクトの複数のコピーをディスクの異なる部分に記憶し、そのオブジェクトが要求されたときに最も近いオブジェクトを読み取ればアクセス時間を最小にすることができる。
2種類の信頼度が関係する。要求信頼度はユーザがドライブから期待するものである。ドライブは要求信頼度をできるだけ提供するよう努める。最小信頼度はユーザが受けいれてよい最小レベルである。ドライブが最小またはそれ以上の信頼度を提供することができない場合は、ドライブは要求を拒否する。必要であれば、ユーザはより小さな最小信頼度を持つ別の要求を出してよい。信頼度は、相対的数値尺度(例えば、1から10)または絶対的定義(「このオブジェクトの2つのコピーを記憶する」など)で表してよい。かかる信頼度属性が与えられると、ディスク・ドライブはディスク・レベルの知識を用いて、ユーザ要求を満たすために多くのことを行うことができる。次にそのいくつかを示す。
1.高信頼度オブジェクトにはディスクの「ホットな」領域を避ける。ホットな領域とは頻繁に書込みが行われるディスクの部分である。ドライブはディスクのレイアウトを制御して、ディスクのどの部分に頻繁に書込みが行われるかを知る。頻繁に書込みが行われる領域は誤りが起こりやすい。頻繁に更新/書込みが行われるオブジェクトから離れたところに記憶することにより、ドライブはオブジェクトの信頼度を高める。
2.異なる表面/プラッタ上にオブジェクトの複数のコピーを記憶することによりオブジェクトの信頼度を高める。1箇所の表面が損傷しまたは1本のヘッドが壊れても、他のコピーを利用してオブジェクトを回復することができる。高い信頼度を必要とするオブジェクトはこの方法で記憶してよい。
3.信頼できるオブジェクトに背景走査を行うことにより信頼度を保証する。
4.ディスク上の信頼できる領域の未使用部分を背景走査し、かかる領域上にオブジェクトを記憶すればその信頼度が保証される。表面上の部品が緩むとセクタを損傷することがあり、損傷していることは読取り動作の後に初めて分かる。したがって、かかるセクタの1つに書込みを行って成功しても、ドライブ/アプリケーションにはそのデータが実際に回復できないことが分からない。これは高い信頼度が必要なオブジェクト(ファイル)にとって特に良くない。かかる高信頼度領域に背景走査を行えば、かかる不良のセクタを事前に検出してマスクすることができるので、データの損失を防ぐことができる。
5.改善された誤り訂正コード(ECC)を高信頼度オブジェクトに用いて、媒体が故障した場合に正しく回復できるようにしてよい。
6.ディスクの低密度(TPI)領域を高信頼度オブジェクトに用いてよい。例えば、ディスク上の外側トラックは内側トラックより低密度(TPI)なので信頼度が高い。高信頼度オブジェクトはかかるトラックを用いて記憶してよい。
7.別の方法は1つおきのトラックを用いてデータを記憶することで、これにより隣接トラックの影響を減らして信頼度を高めることができる。
8.ディスク・レベルで利用可能な技術(書込みチェックなど)を用いてもオブジェクトの信頼度は高まる。
「使用ヒント」属性により、これからオブジェクトがどのように用いられるかについてのいくつかの情報をアプリケーションはドライブに与えることができる。したがって、オブジェクトを記憶する方法/場所および処理する方法について決定するときに、ドライブはこの知識を利用することができる。この属性のいくつかの可能な値を以下に定義する。
1.「ストリーム・オブジェクト」は、これがストリーム・オブジェクトであって、大きな読取りチャンクでアクセスできることをドライブに知らせる。ドライブはこのオブジェクトを恐らくは外側トラック上の連続したセクタ上に記憶して(断片化を避けることにより)性能を向上させる。
2.「トランザクショナル・オブジェクト」は、これがより小さなチャンクでランダムにアクセスされるオブジェクトであることをドライブに知らせる。このタイプのオブジェクトでは順次読取り性能は重要でないので、ドライブはこの情報を用いてオブジェクトをドライブのより小さな断片化された部分に記憶してよく、これによりディスクの利用を改善することができる。
3.「リード・オンリー・オブジェクト」は、このオブジェクトの書込みが行われることがなくまた固定サイズであることをドライブに知らせる。ドライブはこの情報を用いて、増大に備えた余地を残さずにオブジェクトを他のオブジェクトの隣に記憶して、ディスクの利用を最適にする。
4.「要求オブジェクト・サイズ」は、オブジェクトが要求オブジェクト・サイズを有することをドライブに知らせる。オブジェクトは、要求された量の連続した空間を利用できる媒体上に記憶される。ドライブはこの情報を用いてこのオブジェクトが将来使用するのに十分な連続したセクタを確保して、将来不必要な断片化や性能の問題が起こらないようにする。しかし、後でオブジェクトは要求したサイズを超えて増大することがある。この場合は、オブジェクトを断片化してよい。
5.「予想されるオブジェクト増大サイズ」は、オブジェクトがこの増分で増大することをドライブに知らせる。ドライブはこの情報に基づいて空間割当てアルゴリズムを最適化して、オブジェクトの断片化を減らす。
図3は記憶装置300を示す。記憶装置300は記憶性能の異なるゾーン属性314を持つ複数の媒体ゾーン304,306,308,310,312を有する記憶媒体302を含む。
記憶装置300は、バス334を介してホスト・システム320に接続可能なデータ・チャンネル318を含む。ホスト・システム320は図2のホスト・システム220と同等である。オブジェクト・ベースのアプリケーション330,332またはユーザはオブジェクト322,324を生成する。データ・チャンネル318はオブジェクト322,324などのオブジェクトを受ける。オブジェクト322,324はオブジェクト322,324のデータ構造の一部であるIノード327,329の一部分内に、オブジェクトに付随する記憶属性326,328を有する。
記憶装置300はオブジェクト・ベースの記憶インターフェース316を含む。オブジェクト・ベースの記憶インターフェース316はデータ・チャンネル318と記憶媒体302との間に結合する。オブジェクト・ベースの記憶インターフェース316はIノード割当て論理336を含む。Iノード割当て論理336はIノード327,329のアクセス頻度の小さな部分を多数の媒体ゾーン304,306,308,310,312の1つの第1の部分内に記憶するようスケジュールする機能を有する。Iノード割当て論理336はIノードのアクセス頻度の大きな部分を多数の媒体ゾーン304,306,308,310,312の同じものの第2の部分内に記憶するようスケジュールする機能を有する。
第1および第2のゾーンは互いに物理的に分離され、異なる検知属性を有する。Iノードのアクセス頻度の大きな部分は好ましくは高速検知属性を持つゾーン内に記憶され、Iノードのアクセス頻度の小さな部分は好ましくは低速検知属性を持つゾーン内に記憶される。ゾーン属性314は物理的ゾーン・アドレス340と共にマップ338内に配置される。Iノード327などの個別のIノードは、異なるゾーン属性を持つゾーン・アドレスにある物理的に分離された位置350,352,354に記憶される。
Iノード割当て論理336はIノードの多数の部分またはセグメントを物理的に分離されたゾーン内に最適に記憶するための分離アルゴリズムを含んでよい。分離アルゴリズムは再割当てを行うための決定論的論理、またはファジィ論理、またはその両方を含み、変化する使用条件または変化する検知記憶属性条件の下で利用可能な記憶空間の利用を最適にしてよい。かかる再割当ては背景処理で、またはIノード割当ての前景処理で行ってよい。
従来のファイル・システムのファイルはユーザ・データとメタデータとを含む。ファイルのメタデータ部分はタイム・スタンプやユーザ・データ・ブロックの位置などの情報を含む。メタデータはIノードと呼ばれる構造内に保有される。この構造はユーザのデータ以外の、ファイルに関する大量の情報を含む。Iノード構造内の或る情報は頻繁に更新されてファイルの常に変わる状態を反映するので、記憶装置に繰り返し書き込む必要がある(例えば、アクセス時間)。Iノード内の他の情報はファイルを作成した後は滅多にまたは全く変わらない(例えば、作成時刻や所有者)。Iノード内の或るフィールドはファイルの完全性にとって重要であるが(データ・ブロックの位置)、或るフィールドはファイルの完全性に直接影響しない(タイム・スタンプ)。
Iノード内のメタデータの属性を2つの部分に分離することにより、記憶装置上で更新する必要のあるファイル情報の総量を減らすことができる。同時に、ファイルに関する最も重要な情報は書き直す頻度が小さいので壊れる可能性が小さい。したがって、性能も完全性も共に向上する。
ファイル情報構造(Iノード)は、記憶装置上のファイル・データの位置、タイム・スタンプ、および種々の他の属性に関する情報を含む。ファイル情報は、読取り動作や書込み動作中に更新される属性と更新されない属性とに分類してよい。
ファイル読取り動作は一般に書込み動作より多く行われる。したがって、読取り動作中に更新される属性は書込み動作中に更新される属性より頻繁に変わる。更に、読取り動作中に更新される属性はファイルの完全性にとって重大ではない。
読取り動作中に更新される属性を記憶媒体内の物理的に分離された構造内に分離することにより、次の利点が得られる。
1.読取り動作に関連する属性は全ファイル属性のほんの一部(例えば、ファイル・アクセス・タイム・スタンプ)なので、読取り動作のために変わる構造はIノードよりはるかに小さい。したがって、より多くの読取り属性構造を単一のディスク・ブロック内に詰め込んでよい。このように密度を高めるとキャッシュ・ヒット率が高くなり、記憶装置にライトバックする必要のあるデータの総量が少なくなる。
2.読取り動作中に更新される属性は一般にファイルの完全性にとって重大ではない(例えば、アクセス・タイム・スタンプ)が、書込み動作中に変更される属性は非常に重大である(例えば、データ・ブロック位置)。ディスク・ドライブへの書込み動作が全て失敗してデータ・ブロックが壊れたままになる危険性を有する。一緒に記憶すると、重要な情報が重要でない情報を更新する危険がある。読取り動作中に更新される属性を記憶装置の異なるブロック内の異なる構造内に入れることにより、読取り動作中にファイルの重要な情報を損傷する潜在的な危険を除くことができる。
3.Iノード内に記憶する情報を減らすことにより、追加のファイル情報を入れる余地ができるか、またはIノード構造のサイズを減らすことができる。どちらの場合も利用可能なデータ密度が増えるのでキャッシュ・ヒット率が高まる。
4.動作の初めに読取りのスケジューリングを行うことにより、読取り動作が完了するまで待つことなく、キャッシュ・ヒットでなくても属性構造を読み取るのに必要な時間をファイル動作と重ねることができる。
5.任意の1つの動作中には上に述べた2つの構造の1つだけしか変更しないので、分離の結果、属性の更新による性能の低下はない。
従来のファイル・システムはIノードを用いて、全てのファイル属性と、ディスクのどのブロックがファイルのデータを含むかを定義する情報とをこれに含める。ファイルが増大して全てのデータ・ブロックへの参照を含むだけの十分な空間がなくなると、追加の「Iノード」が割り当てられて最初のIノードにリンクされる。しかし、かかる追加のIノードは必要がないのにいくつかの情報をコピーするので、同じ構造を持たないことに注意すべきである。これらは空間が同じプールから来るという意味においてだけIノードである。かかるタイプのIノードをここでは「Iノード拡張」と呼ぶ。
オブジェクトにアクセスするたびに、アクセス時間を更新するという目的だけでオブジェクトのIノードを書き直す必要があるのは問題である。Iノードの書直しを繰り返すと、Iノードを偶然損傷する機会が増えるのでOSDの信頼度が低かすると考えられる。Iノードが消失するとオブジェクト・データも消失する。したがって、頻繁に変更されるオブジェクト属性はオブジェクトのIノード以外の場所に移すことが望ましい。このように頻繁に変更されるオブジェクト属性をここでは「属性ノード」と呼ぶ。重要な機能は、属性を主Iノードと属性ノードとに分割することである。
属性ノードを用いる際の1つの懸念は、全てのオブジェクトの属性にアクセスするのに多数のブロック読取りを行う必要があるためシステムの性能が低下することである。ユーザ要求を処理する必要のある全ての属性をIノード内に保有すれば、性能へのこの影響を大幅に減らすことができる。事象のシーケンスの一例を次に示す。
1.Iノードの読取りをスケジュールする。
2.属性ノードの読取りをスケジュールする。
3.Iノードが利用可能になるのを待つ。
4.Iノード内の属性を用いてOSD要求をLBA要求に変換してデータ転送を開始する。
5.属性ノードを待つ。
6.属性ノード内の属性を更新してダーティというしるしを付ける。
この分離には次のようないくつかの態様がある。
1.オブジェクト要求を処理してLBA要求に変換するのに必要な属性はIノード内にあるので、最も速く利用することができる。
2.高い頻度で更新される属性は属性ノード内に置いて、Iノードが損傷する可能性を減らす。要求を処理するのに必要な属性は、作成時刻、論理長さ、使用された容量、および容量割当てである(後の2つは書込み動作にだけ必要である)。読取り動作で変更される属性(最も多く実行される動作であり、したがって変更速度が最も高いもの)は属性アクセス時間およびデータ・アクセス時間である。
どちらのカテゴリにも入らない他の属性がある。第1に、書込み動作で変更される属性(データ変更時間、属性変更時間)がある。めったに、または全く変更されない属性(ユーザ名)もある。このユーザ名属性はサイズが変わる性質を持つので、このユーザ名属性はIノードでも属性ノードでもない第3の領域内に置いてよい。
書込み動作で更新される属性はIノード内に記憶される。或る書込み動作では、追加のブロックが加わるためにほとんど常にIノードを更新する必要がある。対象とする属性は割り当てられたブロックに密接に関係する。これらは全て同時に変わる。Iノード内にこれらを一緒に保有すれば、1つの構造だけを変更してディスクにフラッシュすればよい。属性ノードは書込み動作で変更されないことが多い。これらの属性が属性ノード内にある場合は、Iノードと属性ノードの両方が書込み動作で変更される。
属性が用いる全空間は属性の位置には余り影響されない。Iノードと属性ノードが用いる空間の比率に影響するだけである。すなわち、n個のオブジェクトの情報にはx個のIノード・ブロックとy個の属性ノード・ブロックとが必要である。属性をIノードと属性ノードとの間で移すときは、Iノードのサイズの方が小さい。これにより、キャッシュ内に記憶できるメタデータの量が増えることはない。したがって、ディスクまたはキャッシュの利用に関しては、属性の位置をどちらの方向に調整しても得になることはない。
これらの属性をIノード内に置くとIノードは小さくなるが、キャッシュ内に記憶することができるIノードの数は増えない。属性をどのように分割しても、n個のオブジェクトはx+yブロックのメタデータを必要とする。したがって、属性をどのように分割しても、所定の量のキャッシュについて表されるオブジェクトの総数は同じである。粒度(単一ブロック内のIノードの数)には差がある。しかし、Iノードまたは属性ノードの多数のブロックを一度に読み取ることにより、属性をどのように分割しても同じ結果が得られる。最も大きな利益は、ディスクにフラッシュ・バックする必要のあるメタデータの数を減らすことにより得られる。
書込み動作では、オブジェクトの書込みに関する全ての属性をIノード内に保有すれば、Iノードおよび属性ノードの両方ではなくIノードだけをディスクにフラッシュすればよい。或る方法を用いて2つの関係するブロックの書込みを最適にすることはできるが、書込み時間は1ブロックより2ブロックの方が必ず長くなる。
書込み動作より頻度が高い読取り動作では、属性ノードだけをディスクにフラッシュすればよい。属性ノードのサイズを小さくすることにより、単一ブロック内により多くの属性を入れることができる。頻度が高いと上に定義した属性では、1ブロック内に少なくとも256個の属性ノードを入れることができる。できるだけ密に詰め込むと、1ブロック内に最大341個の属性ノードを詰め込むことができるが、データ整列の問題が起こってソフトウエアの性能に影響を与える。属性分離の他の方法に比べて、本発明の分離方法は単一ブロック内により多くのノードを入れることができる。
分離することにより両方の動作の性能を最高にすることができる。書込み動作ではダーティなメタブロックは2つではなく1つだけであり、読取り動作ではこの動作で変更する属性を保持するブロックを共用するチャンスが大きい。
図4はオブジェクト指向記憶装置(OSD)400内の記憶を示す。記憶装置400内のオブジェクト・ディレクトリは中心のBトリー(すなわち、トリー状のディレクトリ構造)を含む。Bトリーは、記憶媒体402内に記憶される第1のBトリー部分450を含む。Bトリーは、オブジェクト指向記憶インターフェース416内のランダム・アクセス・メモリ(RAM)内に記憶される第2のBトリー部分452を含む。
記憶装置400は記憶媒体402を含む。記憶媒体402は物理的媒体ゾーン404,406,408,410,412を含む。記憶装置400は、バス434を介してホスト・システム420に接続可能なデータ・チャンネル418を含む。データ・チャンネル418は、ホスト・システム420と記憶装置400内のオブジェクト・ベースの記憶インターフェース416との間に複数のオブジェクト422,424を伝達する。オブジェクト422,424はオブジェクト・ベースのアプリケーション430,432により、またはユーザにより生成してよい。
オブジェクト・ベースの記憶インターフェース416はデータ・チャンネル418と記憶媒体402との間に結合して、物理的媒体ゾーン404,406,408,410,412内に多数のオブジェクト(多数のオブジェクト422,424など)をオブジェクト区分に従って記憶する。オブジェクト・ベースの記憶インターフェース416は多数のオブジェクトのBトリー・ディレクトリ部分452を含む。Bトリー・ディレクトリは、区分識別子456とオブジェクト識別子458との組合せを含む分類キー454を含む。Bトリー部分452は、RAM内にあるルート・ノード460と、チャイルド・ノードの少なくとも第1のティア462とを含む。
階層的ファイル・システムは、ユーザ・データを含むファイル(オブジェクト)と、中にファイルが置かれるディレクトリとに編成される。ファイルは、ファイルを編成して位置を見つける手段としてのディレクトリ内に置かれる。ディレクトリは入れ子にして(追加のティアと)、ファイルを更に分割しまた編成してよい。ファイル・システム・ディレクトリの機能は、ファイル識別子(例えば、ファイル名、またはサブディレクトリ名、またはOSDオブジェクトID)をそのファイルまたはサブディレクトリに関する情報の位置(一般に「Iノード」と呼ぶ)にマップすることである。その結果、特定のファイルを見つけるには、各入れ子のディレクトリを開いて必要な情報を探すという多数回のディスク・アクセスを必要とする。
しかしOSD記憶装置は階層的ファイル・システムを有しない。オブジェクトは各区分内の「平らな」名前空間内に記憶される。各区分がディスク空間の固定された部分である従来のディスク区分とは異なり、OSD区分は空間のソフトな(非物理的な)定義である。OSD区分の目的は階層的ディスク区分の目的に似ているが、OSD区分の管理はディレクトリの管理と同様である。区分内のオブジェクトの位置を見つけるには、ファイル・システムは、a)ソフト区分の位置を見つけ、b)区分のオブジェクト・リストを読み取ってオブジェクトの位置を見つけ、c)オブジェクト情報を読み取る。
OSD内の全てのオブジェクトについて単一のオブジェクト・ディレクトリを保持することにより、オブジェクト探索時間が決定論的になって大幅に減少すると共に、ファイル・システムの信頼度が向上する。
オブジェクトがどの区分内にあるかに関わらず、単一のBトリー構造は全てのオブジェクトIDを含む。これにより、一度トリー探索を行えば装置上のどのオブジェクトのIノードの位置でも見つけることができる。
Bトリー内の分類キーは区分識別子とオブジェクト識別子との組合せから成る。これにより、各オブジェクトは特有のキーを持つことができる。これはまたBトリー内の項目を編成して、或る区分の項目の次にその区分内の全てのオブジェクトの項目が続くようにする。区分内の全てのオブジェクトの表を作る作業は、区分を探索し、次の区分が見つかるまでディレクトリ・リーフ内の項目を順にたどることにより行う。
ほとんどのリーフ・ノードが常にRAM内にあるようにBトリーを編成することにより、装置上のオブジェクトの「Iノード」の位置を見つけるプロセスはディスク・アクセスをせいぜい一度行えばよい。したがって、ディレクトリ探索は決定論的である。
IDを順に挿入するときの空間利用率を最高で50%から潜在的に99%以上まで改善する、ノードを分割するための変更されたアルゴリズムを用いる。これは、増大が起こっている区分境界でノード分割を行うことにより達成される。或る例では、標準のBトリー・アルゴリズムに比べて、空間利用率が33%向上すると共に実行時間が8%短縮する。
RAM常駐のディレクトリ・ノードを任意のサイズに設定する(すなわち、任意の数の項目を含んでよく、かかるノードはディスク・ブロックのサイズに関連しない)こととトリーの最大高さを調整することとを組み合わせることにより、上記の構造はディレクトリ容量の柔軟な拡張性を得ることができる。
探索時間が決定論的であることも利点である。せいぜい一度のディスク・アクセスでよく、またアクセスは既知の位置に対して行う。OSDオブジェクトID用に設計されたBトリー・アルゴリズムを用いることにより、ディレクトリ空間利用も改善される。オブジェクト・ディレクトリを、記憶装置上のランダムな位置にあるファイル/オブジェクト内に置くのではなく記憶装置の確保/保護された領域内に置くことにより、完全性および信頼度も高めることができる。この重要な情報の完全性および信頼度を保証するために特殊な配慮を行ってよい。区分ディレクトリ「リスト」操作は区分自身を見つける必要がないので、性能が向上する。
図5はOSDデータ記憶装置500上のデータ割当ておよびレイアウトを示す。記憶装置500は、記憶性能の異なる属性を持つ多数の媒体領域504,506,508,510を有するディスクの形の記憶媒体502を含む。媒体領域504,506,508,510はバイト・レベルのアドレス指定でアドレス指定可能な物理的に近接する割当てグループに編成される。媒体領域504は割当てグループ580,581を含む。媒体領域506は割当てグループ582,583を含む。媒体領域508は割当てグループ584,585を含む。媒体領域510は割当てグループ586,587を含む。
記憶装置500は、バス534を介してホスト・システム520に接続可能なデータ・チャンネル518を含む。データ・チャンネル518は多数のオブジェクト522,524を伝達する。多数のオブジェクト522,524はオブジェクト内に含まれる要求記憶属性526,528を有する。
記憶装置500は、データ・チャンネル518と記憶媒体502との間に結合するオブジェクト・ベースの記憶インターフェース516を含む。オブジェクト・ベースの記憶インターフェース516は、単一の割当てグループ内に記憶することをサイズが許せば、多数のオブジェクト522,524をそれぞれ単一の割当てグループ内に記憶するようスケジュールする。言い換えると、特定の単一のオブジェクト(オブジェクト522または524など)は要求記憶属性を満たす単一の割当てグループ内に記憶される。
通常、従来のファイル・システムはホスト・システムのオペレーティング・システムの一部であり、制御するディスク・ドライブから分離される。ファイル・システムに「論理装置」を提示する(ボリューム・マネージャまたはダイレクト・ブロック装置を介して)という考え方では、ファイル・システムはファイル・システムが管理するドライブのほとんどの記憶属性を知ることはできない。この知識は、セクタ・サイズ、ディスクの性能ゾーン、またはドライブの高信頼度領域などを含む。このように分離したため、かかるファイル・システムは性能および信頼度についてかかるドライブ機能を利用することができなくなった。かかる問題はOSDドライブで解決することができる。OSDドライブでは、ファイル・システムはセクタ・サイズを知る必要がなく、データをディスクの或る領域内に入れて前に述べたドライブの検知性能および信頼度特性を利用するよう依頼する機能を有する。これらは全て、データのレイアウトおよび割当てを行う重荷がホスト・システムではなく記憶装置500にかかるからである。
記憶装置500上のデータ・レイアウトおよび空間の割当ては記憶装置500自身が制御する。記憶装置500は媒体の知識ベースを利用して、性能および信頼度に関してユーザ・データの書込みおよび読取りを最も良く行う。
記憶装置500上のデータ空間は、順方向のヘッド・シークの性能を利用しまた一般にヘッドの動きを最小にするように設計される。ディスク上でのヘッド・シークは性能を高めるのに妨げになる。一連の関連するシーク中は、ヘッドは順方向に外側トラックから内側トラックに向かって動かすのが好ましい。
データ空間は好ましくは固定サイズのユニットに分割される。かかるユニットは「割当てグループ」と呼ばれ、ユーザ・データ空間とこの空間を追跡する情報とを有する。多数の「割当てグループ」を用いてディスク上に領域を作成する。かかる領域はディスク・ドライブの物理的ゾーン化と一致してよい。システム情報は好ましくは図に示すように最も内側のトラック上に保有してよい。
データにアクセスするには、システム・メタデータ(Iノードおよびマップ)に最初にアクセスし、次にシーク動作でユーザ・データにアクセスする。アクセス時間を速くするため、順方向の動きはディスクの曲がりを利用する。
領域は全ディスク面積の最小の部分集合なので、領域内で作業すればシーク距離は最小になり、シークは速くなる。またOSDにより、ホスト・ファイル・システムは最小のユニット(データのバイト)で作業することができる。ドライブは希望する任意のサイズ・チャンク(セクタ・サイズ)内にデータを記憶してよく、セクタ境界上にないデータを処理する。
ヘッド・シークが最小になるので、オブジェクトおよびそのオブジェクトのデータ空間を作成するためにディスク上で空間を割り当てる方法は、近さに基づいて決定される。データ・ブロックがIノードに近いほど、そのオブジェクトの読取りまたは書込みの性能が良くなる。連続的な空間もオブジェクトにとって好ましい。なぜなら、データの読取りまたは書込みを行うためにヘッドが別の領域に移動する必要がないからである。
各OSDオブジェクトは、オブジェクトを追跡する関連するIノード構造を有する。これはシステム・メタデータの一部である。オブジェクトを作成するためにディスク上のどこにIノードを割り当てるかは多数の評価基準に依存する。従来のファイル・システムと異なり、OSDファイル・システムはディスク上の空間に関する知識を有する。これは或る領域の信頼度や或る領域の速度などを含む。またOSDの下では、ユーザは記憶インターフェース516に、オブジェクトの予想される大きさや、必要な性能や信頼度の種類などのヒントを与えてよい。
かかるヒントに基づいて、Iノードはディスクの或る領域内に割り当てられる。或るデータ速度が利用できることや、データ・ブロックがオブジェクトに割り当てられるのでオブジェクトが断片化されずに増大できるチャンスがあることを知って、Iノードは或る割当てグループ内に記憶される。Iノードおよびデータ・ブロックは好ましくは同じ割当てグループ内に保有されるので、シーク距離はIノードのアクセスとユーザ・データの実際の読取りまたは書込みとの間で最小に保たれる。これは近さに基づく記憶意思決定である。
領域は多数の割当てグループを持ってよいので、多数のオブジェクトが存在するとき、その領域内の割当てグループ間にラウンド・ロビン割当てを行えば、全てのオブジェクトは断片化されずに増大するチャンスを有する。断片化されると、ユーザ・データに到達するのに多数のディスク・ヘッドの移動を行うので性能が低下する。オブジェクト1をグループ0、領域0に割り当て、オブジェクト2をグループ1、領域0に割り当てる、などしてよい。1つの領域内で作業することにより、ヘッドの移動を最小にすることができる。総合的な目標は断片化を減らしてヘッドの移動を減らすことである。
特定のサイズのオブジェクトをドライブ上の単一の割当てグループに隔離してよい。小さなオブジェクトと大きなオブジェクトとを混合することは望ましくないことがある。なぜなら、小さなオブジェクトが大きなオブジェクトの断片化の原因になり得るからである。「サービス品質」の考え方を用いてドライブ上のオブジェクトを分離してよい。
データが終わるディスク上の位置をユーザ(ホスト)が制御できない従来のファイル・システムとは異なり、OSDではホストが「サービス品質」属性(QoS)を送ることができる。ホスト・システムが受け入れられる質(性能または信頼度)の範囲をOSDファイル・システムに知らせるための最小および最大のQoSがある。このQoSは、Iノードおよびデータ・ブロックをディスク上の或る領域内に割り当てるようOSDファイル・システムに伝える。
例えば或るクライアントは、最高性能を必要とするオブジェクトをディスク上の最高性能を有する領域内に入れてよい。同じクライアントは、同じ種類の性能を必要としないまたは他の評価基準を有する他のオブジェクトをディスクの他の領域内に入れてよい。これにより2つのオブジェクト・タイプが実際に互いに断片化することを防いで、性能を高めることができる。
空間の割当ては今やドライブ自身に移り、ファイル・システムはこの重荷が取り除かれた。共用の/クラスタ化された環境において、多数のファイル・システムはもうこの作業を行わなくて済む。ドライブが割当ての中心になり、共用の環境をそれだけ容易にすることができる。多数のファイル・システム自身は、データをどこに割り当てるかについて互いにチェックする必要がない。それはドライブが行う。
ホスト・ファイル・システムは読取り/変更書込み動作の実行を支援する必要がない。なぜなら、その入出力(I/O)要求がセクタに適合しないからである。これはドライブが扱う。全てのファイル・システムは最小のユニット(バイト)で作業する。これにより、ホストが行うI/O要求は少なくなる。ドライブがラウンド・ロビン要求を行う機能はディスクが多数のファイルに断片化されるのを防ぐのを支援し、ファイルを広げる(範囲を増大する)機能は個別のファイルが断片化されるのを防ぐのに役に立つ。
ドライブは自分の信頼度および性能特性を知っているので、ファイル・システムI/Oは或る性能および/または信頼度のニーズを満たすディスクの領域に置かれるよう依頼してよい。これは従来のファイル・システムができないことである。「ソフトな区分化」という概念により、或るアプリケーションはドライブ上のそのデータをカスタム適合させることができる。これはアプリケーションが従来のファイル・システムではできないことである。
好ましい実施の形態では、オブジェクトの先読み(「先取り」とも言う)を用いてオブジェクト・ベースの記憶装置内の性能を高める。先読みはオブジェクト・ベースの記憶装置で特に有効である。なぜなら、オブジェクトが記憶されている全てのブロックが分かっているからである。これはブロック装置と対照的である。ブロック装置では、或るトラックを読み取ったとき、アクセスしているファイルとは異なるファイルからのデータをこのトラックが含んでいる可能性がある。オブジェクト指向記憶では、先読みはアクセスしているオブジェクトに関連するブロックだけを読み取る。
理解されるように、これまでの説明で本発明の種々の実施の形態の多くの特性および利点を、本発明の種々の実施の形態の構造および機能の詳細と共に示したが、この開示は単なる例であって、詳細については、特に本発明の原理内の部分の構造および配置に関して、添付のクレームに示されている用語の広い一般的な意味で示されている全範囲において、変更を行ってよい。例えば、本発明の範囲および精神から逸れずに実質的に同じ機能性を保持しながら、記憶装置の特定のアプリケーションに依存して特定の要素を変えてよい。更に、ここに述べた好ましい実施の形態はディジタル・データ記憶用のオブジェクト・ベースのディスク・ドライブ・システムに関するものであるが、当業者が認識するように、本発明の教示は本発明の範囲および精神から逸れずに他のデータ記憶装置に適用することができる。
ディスク・ドライブの等角図である。 オブジェクト・ベースの記憶装置の第1の実施の形態を示す。 オブジェクト・ベースの記憶装置の第2の実施の形態を示す。 オブジェクト・ベースの記憶装置の第3の実施の形態を示す。 オブジェクト・ベースの記憶装置の第4の実施の形態を示す。
符号の説明
200 記憶装置
202 記憶媒体
204−212 媒体ゾーン
216 オブジェクト・ベースの記憶インターフェース
218 データ・チャンネル
220 ホスト・システム
222,224 オブジェクト

Claims (11)

  1. オブジェクト・ベースの記憶装置であって、
    記憶性能の異なるゾーン属性を持つ多数の媒体ゾーンを有する記憶媒体と、
    外部のホスト・システムと前記記憶媒体との間に接続されたインターフェースであって、前記外部のホスト・システムから複数のオブジェクトを受信するデータ・チャンネルを有するインターフェースを備え、
    前記複数のオブジェクトは、期待される信頼度と最小信頼度とを有する要求記憶属性を含み、
    前記インターフェースは、受信した複数のオブジェクトを、前記多数の媒体ゾーンのなかから選択された媒体ゾーンの中に記憶するように割当てをすることで、各オブジェクトが前記要求記憶属性に合致するゾーン属性を有するゾーン内に記憶され、前記インターフェースは、前記要求記憶属性の所望の値を少なくとも満たすゾーンを選択する手段を有し、前記選択する手段は、前記期待される信頼度と前記最小信頼度とに基づいて、前記ゾーンを選択する、
    オブジェクト・ベースの記憶装置。
  2. オブジェクト・ベースの記憶装置であって、
    記憶性能の異なるゾーン属性を持つ多数の媒体ゾーンを有する記憶媒体と、
    外部のホスト・システムと前記記憶媒体との間に接続されたインターフェースであって、前記外部のホスト・システムから複数のオブジェクトを受信するデータ・チャンネルを有するインターフェースを備え、
    前記複数のオブジェクトは、前記オブジェクトのIノードに含まれる記憶属性を含み、
    前記Iノードは、記憶媒体に記憶されるファイルデータに関する情報を含んだファイル情報構造を持っており、
    前記インターフェースは、前記Iノードのアクセス頻度の低い部分を前記多数の媒体ゾーンの第1の選択されたゾーンに記憶させる手段を有する、
    オブジェクト・ベースの記憶装置。
  3. 前記インターフェースは、
    Iノードのアクセス頻度の高い部分を前記多数の媒体ゾーンの第2の選択されたゾーン内に記憶する手段、
    を更に備え、前記第1および第2の選択されたゾーンは互いに物理的に分離されている、請求項記載のオブジェクト・ベースの記憶装置。
  4. 前記アクセス頻度の高い部分はIノードの追加したものであるIノード拡張部内に記憶される、請求項記載のオブジェクト・ベースの記憶装置。
  5. 前記アクセス頻度の低い部分は書込み属性を有する、請求項記載のオブジェクト・ベースの記憶装置。
  6. 前記アクセス頻度の高い部分は読取り属性を有する、請求項記載のオブジェクト・ベースの記憶装置。
  7. オブジェクト・ベースの記憶装置であって、
    物理的媒体ゾーンを有する記憶媒体と、
    データ・チャンネルであって、ホスト・システムに接続可能であり、前記ホスト・システムと前記記憶装置との間に多数のオブジェクトを伝達する、データ・チャンネルと、
    インターフェースであって、前記データ・チャンネルに接続して前記ホスト・システムからの多数のオブジェクトを伝達し、さらに前記記憶媒体に結合して前記多数のオブジェクトを記憶媒体のオブジェクトに割り当てられたオブジェクト区分に従って前記物理的媒体ゾーン内に記憶し、さらに多数のオブジェクトのBトリー・ディレクトリを格納するためのデータエリアを含み、前記Bトリー・ディレクトリは前記オブジェクト区分を特定する区分識別子とオブジェクトを特定するオブジェクト識別子との組合せを含む分類キーを有する、インターフェースと、
    を備えるオブジェクト・ベースの記憶装置。
  8. オブジェクト・ベースの記憶装置であって、
    記憶媒体であって、記憶性能に関する属性を持つた多数の媒体領域を有し、前記媒体領域はバイト・レベルのアドレス指定方式でアドレス指定することができる物理的に近接した割当てグループに編成される、記憶媒体と、
    外部のホスト・システムと前記記録媒体との間に結合されたインターフェースであって、前記外部のホスト・システムからのオブジェクトに付随する要求記憶属性を持つ多数のオブジェクトを伝達するデータ・チャンネルを有する、インターフェースとを備え、
    前記インターフェースは、単一の割当てグループ内の或る割当てグループより小さな前記多数のオブジェクトをそれぞれ前記記憶媒体に記憶させる、
    オブジェクト・ベースの記憶装置。
  9. 前記或る割当てユニットより小さな各オブジェクトは前記要求記憶属性を満たす単一の割当てユニット内に記憶される、請求項記載のオブジェクト・ベースの記憶装置。
  10. 前記インターフェースは割当てグループ間にラウンド・ロビン割当てを行う、請求項記載のオブジェクト・ベースの記憶装置。
  11. 前記オブジェクトは断片化を少なくするように記憶される、請求項記載のオブジェクト・ベースの記憶装置。
JP2007014879A 2006-01-26 2007-01-25 オブジェクト・ベースのデータ記憶装置 Expired - Fee Related JP5000316B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/339,991 US9002795B2 (en) 2006-01-26 2006-01-26 Object-based data storage device
US11/339,991 2006-01-26

Publications (2)

Publication Number Publication Date
JP2007200333A JP2007200333A (ja) 2007-08-09
JP5000316B2 true JP5000316B2 (ja) 2012-08-15

Family

ID=38335253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007014879A Expired - Fee Related JP5000316B2 (ja) 2006-01-26 2007-01-25 オブジェクト・ベースのデータ記憶装置

Country Status (2)

Country Link
US (1) US9002795B2 (ja)
JP (1) JP5000316B2 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228320B2 (en) * 2004-11-17 2007-06-05 Hitachi, Ltd. System and method for creating an object-level snapshot in a storage system
WO2008070798A1 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for managing commands of solid-state storage using bank interleave
US20110066768A1 (en) * 2007-07-23 2011-03-17 Rod Brittner Quality of service and streaming attributes for a data storage device
US7904673B2 (en) * 2007-11-20 2011-03-08 Seagate Technology Llc Data storage device with histogram of idle time and scheduling of background and foreground jobs
US20090144563A1 (en) * 2007-11-30 2009-06-04 Jorge Campello De Souza Method of detecting data tampering on a storage system
US7870314B2 (en) * 2008-02-15 2011-01-11 International Business Machines Corporation Method and system for implementing store buffer allocation
US9805077B2 (en) * 2008-02-19 2017-10-31 International Business Machines Corporation Method and system for optimizing data access in a database using multi-class objects
TWI397060B (zh) * 2008-11-25 2013-05-21 Ind Tech Res Inst 物件導向儲存裝置之磁碟配置方法
CN102598019B (zh) 2009-09-09 2015-08-19 才智知识产权控股公司(2) 用于分配存储的设备、系统和方法
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8438342B1 (en) * 2009-12-09 2013-05-07 Emc Corporation Automated application-based storage provisioning
US8489844B2 (en) * 2009-12-24 2013-07-16 Hitachi, Ltd. Storage system providing heterogeneous virtual volumes and storage area re-allocation
WO2011077490A1 (ja) * 2009-12-24 2011-06-30 株式会社日立製作所 仮想ボリュームを提供するストレージシステム
US20130262788A1 (en) * 2012-03-29 2013-10-03 Lsi Corporation Systems and Methods for External Priority Controlled Data Transfer
US8930475B1 (en) 2012-03-30 2015-01-06 Signiant Inc. Systems and methods for secure cloud-based media file sharing
US10255344B2 (en) 2012-06-04 2019-04-09 [24]7.ai, Inc. Multi-tenant data integration
US9692799B2 (en) 2012-07-30 2017-06-27 Signiant Inc. System and method for sending and/or receiving digital content based on a delivery specification
US9021199B2 (en) * 2012-08-15 2015-04-28 Lsi Corporation Methods and structure for normalizing storage performance across a plurality of logical volumes
US9020893B2 (en) 2013-03-01 2015-04-28 Datadirect Networks, Inc. Asynchronous namespace maintenance
US8908307B1 (en) 2013-08-23 2014-12-09 Lsi Corporation Systems and methods for hard disk drive region based data encoding
US9196299B2 (en) 2013-08-23 2015-11-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced data encoding and decoding
US9400797B2 (en) 2013-09-17 2016-07-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for recovered data stitching
US9219503B2 (en) 2013-10-16 2015-12-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for multi-algorithm concatenation encoding and decoding
US9323606B2 (en) 2013-11-21 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for FAID follower decoding
CN103731484B (zh) * 2013-12-25 2016-10-05 华中科技大学 一种面向移动云计算的节能传输方法及中间件系统
RU2014104571A (ru) 2014-02-10 2015-08-20 ЭлЭсАй Корпорейшн Системы и способы для эффективного с точки зрения площади кодирования данных
US9916356B2 (en) 2014-03-31 2018-03-13 Sandisk Technologies Llc Methods and systems for insert optimization of tiered data structures
US10956050B2 (en) 2014-03-31 2021-03-23 Sandisk Enterprise Ip Llc Methods and systems for efficient non-isolated transactions
US9378765B2 (en) 2014-04-03 2016-06-28 Seagate Technology Llc Systems and methods for differential message scaling in a decoding process
US9727379B1 (en) * 2014-04-14 2017-08-08 Google Inc. Specifying behavior among a group of computing tasks
US10747747B2 (en) * 2014-12-11 2020-08-18 International Business Machines Corporation Interpreting invalid data as valid data
CA2974360C (en) 2015-01-20 2023-10-03 Ultrata, Llc Object memory data flow instruction execution
CN112214424B (zh) 2015-01-20 2024-04-05 乌尔特拉塔有限责任公司 对象存储器结构、处理节点、存储器对象存储和管理方法
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US10089023B2 (en) * 2015-06-23 2018-10-02 Western Digital Technologies, Inc. Data management for object based storage
US10896207B2 (en) 2015-08-20 2021-01-19 International Business Machines Corporation Optimization of object-based storage
US20170060924A1 (en) * 2015-08-26 2017-03-02 Exablox Corporation B-Tree Based Data Model for File Systems
US10133764B2 (en) 2015-09-30 2018-11-20 Sandisk Technologies Llc Reduction of write amplification in object store
US10162521B2 (en) * 2015-09-30 2018-12-25 Western Digital Technologies, Inc. Media region management based on storage hints for a data storage device
US9619165B1 (en) 2015-10-30 2017-04-11 Sandisk Technologies Llc Convertible leaf memory mapping
US9870322B2 (en) 2015-11-12 2018-01-16 International Business Machines Corporation Memory mapping for object-based storage devices
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
CN108885607B (zh) 2015-12-08 2022-04-12 乌尔特拉塔有限责任公司 使用容错对象的存储器结构操作和一致性
CN108885604B (zh) 2015-12-08 2022-04-12 乌尔特拉塔有限责任公司 存储器结构软件实现方案
US10248337B2 (en) 2015-12-08 2019-04-02 Ultrata, Llc Object memory interfaces across shared links
US10289340B2 (en) 2016-02-23 2019-05-14 Sandisk Technologies Llc Coalescing metadata and data writes via write serialization with device-level address remapping
US10747676B2 (en) 2016-02-23 2020-08-18 Sandisk Technologies Llc Memory-efficient object address mapping in a tiered data structure
US10185658B2 (en) 2016-02-23 2019-01-22 Sandisk Technologies Llc Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes
US10268394B2 (en) 2016-08-10 2019-04-23 Seagate Technology Llc Data storage device performance optimization method and apparatus
US10372635B2 (en) * 2016-08-26 2019-08-06 Qualcomm Incorporated Dynamically determining memory attributes in processor-based systems
US10649655B2 (en) * 2016-09-30 2020-05-12 Western Digital Technologies, Inc. Data storage system with multimedia assets
JP6811515B2 (ja) * 2017-03-28 2021-01-13 日本新金属株式会社 微細タングステン粉末の製造方法
US10996876B2 (en) * 2017-09-22 2021-05-04 Dell Products L.P. Systems and methods for dynamically modifying memory namespace allocation based on memory attributes and application requirements
US10942650B1 (en) 2018-03-05 2021-03-09 Pure Storage, Inc. Reporting capacity utilization in a storage system
US11861170B2 (en) * 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US10735516B1 (en) 2019-02-15 2020-08-04 Signiant Inc. Cloud-based authority to enhance point-to-point data transfer with machine learning
US10629238B1 (en) 2019-03-01 2020-04-21 Seagate Technology Llc Managing storage device media data rates

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5166936A (en) * 1990-07-20 1992-11-24 Compaq Computer Corporation Automatic hard disk bad sector remapping
US5475540A (en) * 1991-06-04 1995-12-12 Quantum Corporation Magnetic data storage disk drive with data block sequencing by using ID fields after embedded servo sectors
JP3078686B2 (ja) * 1992-10-05 2000-08-21 三菱電機株式会社 光ディスク、光ディスク駆動装置および光ディスクの書き込み読み出し方法
JPH0962560A (ja) * 1995-08-30 1997-03-07 Fuji Xerox Co Ltd データベース装置
US5745285A (en) * 1995-10-31 1998-04-28 Raytheon Ti Systems, Inc. Passive scene base calibration system
US6128717A (en) * 1998-01-20 2000-10-03 Quantum Corporation Method and apparatus for storage application programming interface for digital mass storage and retrieval based upon data object type or size and characteristics of the data storage device
EP2200032A3 (en) * 1998-09-18 2010-09-22 Kabushiki Kaisha Toshiba Information recording method, information recording device, and information recording medium
US6601101B1 (en) * 2000-03-15 2003-07-29 3Com Corporation Transparent access to network attached devices
US6826613B1 (en) * 2000-03-15 2004-11-30 3Com Corporation Virtually addressing storage devices through a switch
US6823398B1 (en) * 2000-03-31 2004-11-23 Dphi Acquisitions, Inc. File system management embedded in a storage device
US6839802B2 (en) * 2000-12-08 2005-01-04 International Business Machines Corporation Method, system, and program for writing files to zone formatted storage media to improve data transfer rates
US20020078066A1 (en) * 2000-12-18 2002-06-20 David Robinson Data storage system including a file system for managing multiple volumes
US6745285B2 (en) 2000-12-18 2004-06-01 Sun Microsystems, Inc. System and method for synchronizing mirrored and striped disk writes
US6976134B1 (en) 2001-09-28 2005-12-13 Emc Corporation Pooling and provisioning storage resources in a storage network
US7124152B2 (en) * 2001-10-31 2006-10-17 Seagate Technology Llc Data storage device with deterministic caching and retention capabilities to effect file level data transfers over a network
JP2003153185A (ja) 2001-11-15 2003-05-23 Canon Inc 情報記録装置及びその制御方法
US6850969B2 (en) * 2002-03-27 2005-02-01 International Business Machined Corporation Lock-free file system
JP4206707B2 (ja) * 2002-08-27 2009-01-14 株式会社日立製作所 通信品質設定装置、方法及びプログラム
JP4124331B2 (ja) 2002-09-17 2008-07-23 株式会社日立製作所 Dbms向け仮想ボリューム作成・管理方法
US20040059759A1 (en) * 2002-09-23 2004-03-25 Doan Tuan V. Persistent unique and flexible object addressing mechanism for data in a part memory and part disk environment
GB2397904B (en) * 2003-01-29 2005-08-24 Hewlett Packard Co Control of access to data content for read and/or write operations
US7160885B2 (en) * 2003-02-10 2007-01-09 Cgi Pharmaceuticals, Inc. Certain 6, 8-(heteroaryl or aryl) disubstituted imidazo[1,2-a]pyrazines as modulators of Hsp90 complex activity
US7124272B1 (en) * 2003-04-18 2006-10-17 Symantec Corporation File usage history log for improved placement of files in differential rate memory according to frequency of utilizations and volatility of allocation space
US7620630B2 (en) * 2003-11-12 2009-11-17 Oliver Lloyd Pty Ltd Directory system
JP4568502B2 (ja) * 2004-01-09 2010-10-27 株式会社日立製作所 情報処理システムおよび管理装置
JP4301026B2 (ja) 2004-02-12 2009-07-22 ソニー株式会社 データ記録装置及びデータ記録方法、並びに記録再生システム
JP4748950B2 (ja) * 2004-05-25 2011-08-17 株式会社日立製作所 記憶領域管理方法及びシステム
US7590799B2 (en) * 2005-06-16 2009-09-15 Seagate Technology Llc OSD deterministic object fragmentation optimization in a disc drive

Also Published As

Publication number Publication date
US20070185902A1 (en) 2007-08-09
JP2007200333A (ja) 2007-08-09
US9002795B2 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
JP5000316B2 (ja) オブジェクト・ベースのデータ記憶装置
EP1782211B1 (en) Fat analysis for optimized sequential cluster management
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
US7558906B2 (en) Methods of managing blocks in nonvolatile memory
US7552271B2 (en) Nonvolatile memory with block management
US5734861A (en) Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US8756382B1 (en) Method for file based shingled data storage utilizing multiple media types
US8069306B2 (en) Data area managing method in information recording medium and information processor employing data area managing method
US7933938B2 (en) File storage system, file storing method and file searching method therein
CN101183383A (zh) 一种快照系统及其使用方法
WO2005124530A2 (en) Method for controlling memory card and method for controlling nonvolatile semiconductor memory
CN101408880A (zh) 使用分割文件元数据的文件管理方法和装置
HK138094A (en) Data processing system including a data storage unit and its method of operation
KR101329068B1 (ko) 블록 관리를 가지는 비휘발성 메모리
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
WO2006030966A2 (en) File storage device, host apparatus, method of formatting nonvolatile semiconductor memory, and method of writing data in nonvolatile semiconductor memory
JP2006072441A (ja) メモリ装置および不揮発性メモリの制御方法
CN107203479B (zh) 层级化存储系统、存储控制器及层级化控制方法
JP4547028B2 (ja) ブロック管理を伴う不揮発性メモリ
KR100638638B1 (ko) 플래시 메모리의 제어 방법
JP4470471B2 (ja) 記録再生装置及び方法、並びに記録再生システム
JP2001265626A (ja) ファイル管理方法、データ処理装置並びに記憶媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100709

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100727

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100820

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120516

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees