(57)【要約】【課題】多くの記憶ニーズに対処できる、従来のものより優れたオブジェクト・ベースの記憶装置を提供する。【解決手段】データ記憶装置（２００）は記憶性能の多数の媒体ゾーン属性を持つ記憶媒体（２０２）を含む。記憶装置（２００）はホスト・システム（２２０）に接続可能なデータ・チャンネル（２１８）を含む。データ・チャンネル（２１８）は、オブジェクトに付随する要求記憶属性を有するオブジェクト（２２２，２２４）をホスト・システム（２２０）から受ける。記憶装置（２００）は、データ・チャンネル（２１８）と記憶媒体（２０２）との間に結合するオブジェクト・ベースの記憶インターフェース（２１６）を含む。記憶インターフェース（２１６）は、各属性および要求属性に基づいて多数の媒体ゾーン（２０４−２１２）の選択されたゾーン内に記憶するようオブジェクト（２２２，２２４）をスケジュールする。【選択図】図２
2007200333.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置であって、
記憶性能の異なるゾーン属性を持つ多数の媒体ゾーンを有する記憶媒体と、
オブジェクト・ベースの記憶インターフェースであって、データ・チャンネルに結合して要求記憶属性を含む多数のオブジェクトを受け、前記記憶媒体に結合され、前記多数のオブジェクトを前記多数の媒体ゾーンの選択された１つの中に記憶するようスケジュールし、各オブジェクトを前記要求記憶属性を満たすゾーン属性を有するゾーン内に記憶する、オブジェクト・ベースの記憶インターフェースと、
を備える記憶装置。
【請求項２】
前記要求記憶属性はサービス品質（ＱｏＳ）を含む、請求項１記載の記憶装置。
【請求項３】
前記サービス品質はデータ転送速度を含む、請求項２記載の記憶装置。
【請求項４】
前記サービス品質は制限されたジッタを含む、請求項２記載の記憶装置。
【請求項５】
前記サービス品質は信頼度を含む、請求項２記載の記憶装置。
【請求項６】
前記サービス品質は制限された遅れを含む、請求項２記載の記憶装置。
【請求項７】
前記記憶インターフェースは前記要求記憶属性の望ましい値を最小限満たす選択されたゾーンを選択する、請求項１記載の記憶装置。
【請求項８】
前記記憶インターフェースは前記要求記憶属性の望ましい値を最適に超える選択されたゾーンを選択する、請求項１記載の記憶装置。
【請求項９】
多数のオブジェクトを前記ゾーン内に最適に記憶するようスケジュールするスケジューリング・アルゴリズムを含む、請求項１記載の記憶装置。
【請求項１０】
記憶装置であって、
記憶性能の異なるゾーン属性を持つ多数の媒体ゾーンを有する記憶媒体と、
オブジェクト・ベースの記憶インターフェースであって、データ・チャンネルに結合してオブジェクトのＩノードを含む記憶属性を有するオブジェクトを受け、前記記憶媒体に結合され、Ｉノードのアクセス頻度の低い部分を前記多数の媒体ゾーンの第１の選択されたゾーン内に記憶する機能を有する、オブジェクト・ベースの記憶インターフェースと、
を備える記憶装置。
【請求項１１】
前記オブジェクト・ベースの記憶インターフェースは、
Ｉノードのアクセス頻度の高い部分を前記多数の媒体ゾーンの第２の選択されたゾーン内に記憶する機能、
を更に備え、前記第１および第２の選択されたゾーンは互いから物理的に分離される、請求項１０記載の記憶装置。
【請求項１２】
前記アクセス頻度の高い部分は属性Ｉノード拡張内に記憶される、請求項１１記載の記憶装置。
【請求項１３】
前記アクセス頻度の低い部分は書込み属性を有する、請求項１１記載の記憶装置。
【請求項１４】
前記アクセス頻度の高い部分は読取り属性を有する、請求項１１記載の記憶装置。
【請求項１５】
記憶装置であって、
物理的媒体ゾーンを有する記憶媒体と、
データ・チャンネルであって、ホスト・システムに接続可能であり、前記ホスト・システムと前記記憶装置との間に多数のオブジェクトを伝達する、データ・チャンネルと、
オブジェクト・ベースの記憶インターフェースであって、データ・チャンネルに結合して多数のオブジェクトを伝達し、前記記憶媒体に結合して前記多数のオブジェクトをオブジェクト区分に従って前記物理的媒体ゾーン内に記憶し、多数のオブジェクトのカストマイズされたＢトリー・ディレクトリを含み、前記Ｂトリー・ディレクトリは区分識別子とオブジェクト識別子との組合せを含む分類キーを有する、オブジェクト・ベースの記憶インターフェースと、
を備える記憶装置。
【請求項１６】
前記ＢトリーはＲＡＭ内のルート・ノードとチャイルド・ノードの少なくとも第１のティアとを含む、請求項１５記載の記憶装置。
【請求項１７】
前記Ｂトリーは全ての記憶されたオブジェクトの識別を含み、決定論的な時間間隔で探索可能である、請求項１５記載の記憶装置。
【請求項１８】
記憶装置であって、
記憶媒体であって、記憶性能の異なる属性を持つ多数の媒体領域を有し、前記媒体領域はバイト・レベルのアドレス指定方式でアドレス指定することができる物理的に近接した割当てグループに編成される、記憶媒体と、
オブジェクト・ベースの記憶インターフェースであって、データ・チャンネルに結合してオブジェクトに付随する要求記憶属性を持つ多数のオブジェクトを伝達し、前記記憶媒体に結合して単一の割当てグループ内の或る割当てグループより小さな前記多数のオブジェクトをそれぞれ記憶する、オブジェクト・ベースの記憶インターフェースと、
を備える記憶装置。
【請求項１９】
或る割当てユニットより小さな各オブジェクトは前記要求記憶属性を満たす単一の割当てユニット内に記憶される、請求項１８記載の記憶装置。
【請求項２０】
前記オブジェクト・ベースの記憶インターフェースは割当てグループ間にラウンド・ロビン割当てを行う、請求項１８記載の記憶装置。
【請求項２１】
前記オブジェクトは余り断片化されずに記憶される、請求項１８記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータ記憶に関するものであって、特にオブジェクト・ベースの記憶装置に関するが、これに限定されるものではない。
【背景技術】
【０００２】
コンピュータの環境は、記憶媒体上で記憶しまた検索する必要のあるプログラム・オブジェクトを生成するオブジェクト・ベースのアプリケーション・プログラムの方向に進んでいる。かかるプログラム・オブジェクトは記憶装置によるサービス品質の要求に関して種々の特性を有してよい。オブジェクトは、信頼度、データ転送記憶速度、データ転送検索速度、ジッタ、誤りのないことなどの種々の要求の組合せを有してよい。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
記憶のニーズの種々の組合せをより良く処理するために、オブジェクト・ベースの記憶装置を適応させる必要がある。本発明の種々の実施の形態はかかる問題の解決策を提供し、また従来の方法より優れた他の利点を提供するものである。
【課題を解決するための手段】
【０００４】
ここに開示するのは記憶装置である。記憶装置は記憶媒体を含む。記憶媒体は記憶性能の種々のゾーン属性を持つ多数の媒体ゾーンを有する。記憶装置はホスト・システムに接続可能なデータ・チャンネルを含む。データ・チャンネルは、要求記憶属性をそれぞれ含む多数のオブジェクトを伝達する。
記憶装置はオブジェクト・ベースの記憶インターフェースを含む。オブジェクト・ベースの記憶インターフェースはデータ・チャンネルと記憶媒体との間に結合する。オブジェクト・ベースの記憶インターフェースは多数のオブジェクトの記憶をスケジュールする。各オブジェクトは、要求記憶属性を満たすゾーン属性を有するゾーン内に記憶するようスケジュールされる。
【０００５】
第１の好ましい実施の形態では、選択されたゾーンは要求記憶属性を超えるゾーン属性を有する。
第２の好ましい実施の形態では、オブジェクト・ベースの記憶インターフェースは、Ｉノードのアクセス頻度の低い部分を第１の選択されたゾーン内に記憶するようにスケジュールする機能を有し、またＩノードのアクセス頻度の高い部分を第１の選択されたゾーンから物理的に分離された第２の選択されたゾーン内に記憶するようにスケジュールする機能を有する。
【０００６】
第３の好ましい実施の形態では、オブジェクト・ベースの記憶インターフェースは多数のオブジェクトのＢトリー・ディレクトリを含み、Ｂトリー・ディレクトリは区分識別子およびオブジェクト識別子を含む分類キーを有する。
第４の好ましい実施の形態では、オブジェクト・ベースの記憶インターフェースは、単一の利用可能な割当てグループに適合する各オブジェクトをその単一の割当てグループ内に記憶するようにスケジュールする。
本発明の実施の形態を特徴づける他の機能および利点は、以下の詳細な説明を読みまた関連する図面を検討すれば明らかになる。
【実施例】
【０００７】
図１は、本発明の実施の形態が有用なディスク・ドライブ１００の等角図である。ディスク・ドライブ１００は、ベース１０２およびトップ・カバー（図示せず）を持つハウジングを含む。ディスク・ドライブ１００は、ディスク・クランプ１０８によりスピンドル・モータ（図示せず）上に取り付けられるディスク・パック１０６を更に含む。ディスク・パック１０６は、中心軸１０９の回りを共に回転するよう取り付けられた複数の個別のディスクを含む。各ディスク表面は、ディスク表面と通信するためにディスク・ドライブ１００に取り付けられた関連するディスク・ヘッド・スライダ１１０を有する。図１に示す例では、スライダ１１０はサスペンション１１２により支持され、サスペンション１１２はアクチュエータ１１６のトラック・アクセシング・アーム１１４に取り付けられる。
【０００８】
図１に示すアクチュエータは回転可動コイル・アクチュエータとして知られているタイプであり、一般に１１８で示すボイス・コイル・モータ（ＶＣＭ）を含む。ボイス・コイル・モータ１１８はその取り付けられたヘッド１１０と共にアクチュエータ１１６をピボット・シャフト１２０の回りに回転させて、ディスク内径１２４とディスク外径１２６との間のアーチ形の経路１２２に沿う望ましいデータ・トラックの上にヘッド１１０を位置決めする。ボイス・コイル・モータ１１８は、ヘッド１１０およびホスト・コンピュータ（図示せず）により生成される信号に基づいてサーボ・エレクトロニクス１３０により駆動される。
【０００９】
図２は、オブジェクト・ベースのデータ記憶のための、オブジェクト・ベースのスマート（ｓｍａｒｔ）な割当ておよび処理のプロセスを示す。このプロセスは、ディスク・ドライブなどの記憶装置２００での、サービス品質（ＱｏＳ）、データ転送速度、低ジッタ、または信頼度などの性能を向上させる。オブジェクト・ベースのディスク割当てプロセスは、オブジェクト・ベースの記憶インターフェース２１６を用いて、オブジェクト・ベースのアプリケーション２３０，２３２により生成された、またはユーザにより生成された、要求記憶属性２２６，２２８などのヒントを取得する。要求記憶属性２２６，２２８は、サービス品質（ＱｏＳ）、信頼度、データ転送速度、低ジッタ、またはオブジェクト（オブジェクト２２２，２２４など）のためまたはファイルのための他のデータ記憶または検索のニーズを含んでよい。
【００１０】
オブジェクト・ベースの記憶割当てプロセスはこれらのヒントを用いて、ディスク性能を最適にし、また要求ＱｏＳ、信頼度、速度、またはオブジェクトまたはファイルのための多数の要求属性を提供する。これは、記憶媒体２０２内の記憶空間をオブジェクトに割り当てると共にオブジェクトを処理するときに、スマートな決定を行うことにより達成される。記憶媒体２０２の異なる部分は異なる性能特性を有し、スマートな決定はオブジェクトの記憶および検索ニーズに従ってオブジェクトの記憶を割り当てる。
【００１１】
図２において、記憶装置２００は記憶媒体２０２を含む。記憶媒体２０２は、記憶性能の種々の検知ゾーン属性２１４を持つ多数の媒体ゾーン２０４，２０６，２０８，２１０，２１２を有する。記憶装置２００は好ましくはディスク・ドライブである。記憶媒体２０２は好ましくはゾーンに分割された磁気記憶ディスクである。検知ゾーン属性２１４の値は好ましくは、記憶装置２００内のオブジェクト・ベースの記憶インターフェース２１６の一部である変更可能な不揮発性メモリ内に記憶される。検知ゾーン属性２１４は、特定の記憶装置２００をテストすることにより、または記憶装置２００のグループの代表的なサンプルをテストすることにより、またはその両方により、検知することができる。
【００１２】
記憶装置２００は、ホスト・システム・バス２３４を介してホスト・システム２２０に接続可能なデータ・チャンネル２１８を含む。データ・チャンネル２１８はホスト・システム・バス２３４とオブジェクト・ベースの記憶インターフェース２１６との間を連絡し、またデータ・フォーマット変換を行う。データ・チャンネル２１８はバス２３４からオブジェクト２２２，２２４を受ける。オブジェクト２２２，２２４は、オブジェクト２２２または２２４に関連する要求属性２２６，２２８をそれぞれ有する。要求属性２２６，２２８は、サービス品質（ＱｏＳ）属性、信頼度属性、または関連するオブジェクトの他の要求性能属性を含んでよい。
【００１３】
オブジェクト・ベースの記憶インターフェース２１６はデータ・チャンネル２１８と記憶媒体２０２との間に結合する。オブジェクト・ベースの記憶インターフェース２１６は、検知ゾーン属性２１４が要求記憶属性２２６，２２８を超える場所である選択された媒体ゾーン２０４，２０６，２０８，２１０，２１２内に各オブジェクトを記憶するのを制御する。オブジェクト・ベースの記憶インターフェース２１６は属性比較論理２３６を含む。これは、オブジェクトの要求記憶属性と利用可能なゾーンの検知記憶属性とを比較して、検知記憶属性が要求記憶属性を満たすまたは超えるゾーン内に空間を割り当てる。次にオブジェクトは選択されたゾーン内に記憶される。
【００１４】
ゾーン属性２１４は好ましくは、検知ゾーン記憶属性２１４をゾーン物理アドレス２４０の関数としてマップするマップ２３８内に記憶される。記憶インターフェース２１６は好ましくは、要求記憶属性を最小限満たすかまたは要求記憶属性を最適に超えるゾーン内に記憶するようにオブジェクトをスケジュールする。属性比較論理２３６は、多数のオブジェクトをゾーン内に最適に記憶するためのスケジューリング・アルゴリズムを含んでよい。このアルゴリズムは再割当てを行うためのファジィ論理を含み、変化する使用条件、または変化する検知記憶属性条件の下で、利用可能な記憶空間の利用を最適にしてよい。かかる再割当ては記憶割当ての背景処理で、または前景処理で行ってよい。
【００１５】
オブジェクトは、周知のファイルと同様のアクセス方法（例えば、読取りや書込み）とオブジェクトの特性を記述する属性とを持つ記憶の論理ユニット（すなわち、バイトの集合）である。オブジェクトを記憶する装置をオブジェクト・ベースの記憶装置（ＯＳＤ）と呼ぶ。ＯＳＤドライブ（すなわち、オブジェクトを記憶するディスク・ドライブ）では、新しい属性はユーザまたはアプリケーション・プログラムにより定義されまたオブジェクトに関連付けられて、ユーザと記憶装置（ディスク・ドライブ）との間の伝達を円滑にする。かかる属性を用いることにより、ユーザ（またはアプリケーション・プログラム）は、特定のオブジェクトについて記憶装置に何を要求するかを示し、またオブジェクトに関する有用なヒント（例えば、これからオブジェクトをどのように用いるか、固定サイズのオブジェクトかどうか、など）を記憶装置に与えてよい。オブジェクトを記憶する場所または方法やオブジェクトが要求されたときに処理する方法に関して決定を行うときに、装置はこの情報を用いる。
【００１６】
現在のブロック・ベースの記憶装置（すなわち、ディスク・ドライブ）は記憶方式の点で適応性が余りよくない。ブロック・ベースの記憶装置は単にデータのブロックを記憶し、必要に応じてユーザにこれを提供するだけである。いくつかの基本的な割当て機能は行う（例えば、不良なセクタを再マップする）が、記憶しているデータの内容やデータについてのユーザの要求が何かには応答しない。したがって、データの特定の集合について特殊なＱｏＳまたは信頼度を効果的に提供することはできない。また、データの用い方に基づいて記憶位置の性能最適化を行うこともできない。これらの機能性のいくつかはホスト・システム２２０のレベル（すなわち、ファイル・システム）で実現することはできるが、ホストはディスクおよびその構成要素（例えば、媒体、可能な欠陥など）の物理特性に関して、記憶装置２００自身内の属性比較論理２３６で実施できるほど多くの情報にアクセスすることができない。
【００１７】
図２に示すように、オブジェクト・ベースの記憶装置（ＯＳＤ）２００は低レベルの記憶機能をホスト・システム２２０レベル（すなわち、ファイル・システム）から記憶装置２００自身に移す。ＯＳＤディスク・ドライブは全ての空間管理機能をドライブ・レベルで行う。したがって、ドライブはドライブ上にどんなオブジェクト（ファイル）が記憶されているか、またオブジェクト（ファイル）の各部分が正確にドライブ上のどこにあるかを知っている。更に、ディスク・ドライブは物理的構成要素（例えば、媒体、読取り／書込みヘッドなど）、その能力（ゾーン当たりの処理能力）、現在の状態（例えば、不良の／再マップされたセクタ）に関する全ての検知情報を有する。
【００１８】
全てのユーザ・データが同じではなく、また全てのユーザ・データが同じレベルの性能または信頼度を必要とするわけではない。或るもの（例えば、エクセル（登録商標）表計算）では信頼度の方が性能より重要であるが、別のもの（例えば、ビデオ・ストリーム）では性能が最も重要である。どのアプリケーションも、そのデータが図２に示すようにディスク・レベルで知られているときだけ、そのデータのディスク性能を最適にするのを支援できる特有の特性を有する。
【００１９】
ユーザまたはソフトウエア・アプリケーションは属性を定義しまたその属性をオブジェクトと関連付けて、ユーザの要求が何かとか、最適な性能のためにユーザが何か有用な情報をディスク・ドライブにどのようにして送るかについて、ユーザ（またはアプリケーション）とディスク・ドライブとの間の連絡を円滑にする。これらの属性はサービス品質（ＱｏＳ）を含んでよい。ＱｏＳ属性は要求ＱｏＳ（ドライブに対するユーザまたはアプリケーションの要求）を含んでよい。ＱｏＳ属性は最小ＱｏＳを含んでよい。これはユーザまたはアプリケーションが受け入れられる最低レベルである。ドライブは要求ＱｏＳをできるだけ提供しようと努める。ドライブが最小またはそれ以上のＱｏＳを提供できない場合は、ドライブは要求を拒否してよい。必要であれば、ユーザまたはアプリケーションはより小さな最小ＱｏＳを持つ別の要求を出してよい。ＱｏＳは、相対的数値尺度（例えば、１から１０の尺度）または絶対的性能値（すなわち、毎秒当たりのメガバイトでの転送速度およびジッタ）で表してよい。
【００２０】
かかるＱｏＳパラメータ（属性）が与えられると、ディスク・ドライブはディスク・レベルの知識を用いて、ユーザ要求を満たすために多くのことを行うことができる。例えばディスク・ドライブはゾーン化情報を用いることができる。すなわち、ドライブの異なる部分を用いて、要求／最小のＱｏＳに基づいてデータを記憶する。ディスク上の外側トラックは内側トラックよりかなり優れた性能（処理能力）を有する。高いＱｏＳレベルでは、かかる外側トラックを用いてよい。
【００２１】
ディスク・ドライブは優先度ベースのディスク・スケジューリング・アルゴリズムを用いて、異なるＱｏＳレベルのオブジェクトを区別することができる。不良の／再マップされたセクタを持つディスクの部分は、高いＱｏＳオブジェクトに用いるのを避ける。同じオブジェクトの複数のコピーをディスクの異なる部分に記憶し、そのオブジェクトが要求されたときに最も近いオブジェクトを読み取ればアクセス時間を最小にすることができる。
【００２２】
２種類の信頼度が関係する。要求信頼度はユーザがドライブから期待するものである。ドライブは要求信頼度をできるだけ提供するよう努める。最小信頼度はユーザが受けいれてよい最小レベルである。ドライブが最小またはそれ以上の信頼度を提供することができない場合は、ドライブは要求を拒否する。必要であれば、ユーザはより小さな最小信頼度を持つ別の要求を出してよい。信頼度は、相対的数値尺度（例えば、１から１０）または絶対的定義（「このオブジェクトの２つのコピーを記憶する」など）で表してよい。かかる信頼度属性が与えられると、ディスク・ドライブはディスク・レベルの知識を用いて、ユーザ要求を満たすために多くのことを行うことができる。次にそのいくつかを示す。
【００２３】
１．高信頼度オブジェクトにはディスクの「ホットな」領域を避ける。ホットな領域とは頻繁に書込みが行われるディスクの部分である。ドライブはディスクのレイアウトを制御して、ディスクのどの部分に頻繁に書込みが行われるかを知る。頻繁に書込みが行われる領域は誤りが起こりやすい。頻繁に更新／書込みが行われるオブジェクトから離れたところに記憶することにより、ドライブはオブジェクトの信頼度を高める。
【００２４】
２．異なる表面／プラッタ上にオブジェクトの複数のコピーを記憶することによりオブジェクトの信頼度を高める。１箇所の表面が損傷しまたは１本のヘッドが壊れても、他のコピーを利用してオブジェクトを回復することができる。高い信頼度を必要とするオブジェクトはこの方法で記憶してよい。
【００２５】
３．信頼できるオブジェクトに背景走査を行うことにより信頼度を保証する。
４．ディスク上の信頼できる領域の未使用部分を背景走査し、かかる領域上にオブジェクトを記憶すればその信頼度が保証される。表面上の部品が緩むとセクタを損傷することがあり、損傷していることは読取り動作の後に初めて分かる。したがって、かかるセクタの１つに書込みを行って成功しても、ドライブ／アプリケーションにはそのデータが実際に回復できないことが分からない。これは高い信頼度が必要なオブジェクト（ファイル）にとって特に良くない。かかる高信頼度領域に背景走査を行えば、かかる不良のセクタを事前に検出してマスクすることができるので、データの損失を防ぐことができる。
【００２６】
５．改善された誤り訂正コード（ＥＣＣ）を高信頼度オブジェクトに用いて、媒体が故障した場合に正しく回復できるようにしてよい。
６．ディスクの低密度（ＴＰＩ）領域を高信頼度オブジェクトに用いてよい。例えば、ディスク上の外側トラックは内側トラックより低密度（ＴＰＩ）なので信頼度が高い。高信頼度オブジェクトはかかるトラックを用いて記憶してよい。
７．別の方法は１つおきのトラックを用いてデータを記憶することで、これにより隣接トラックの影響を減らして信頼度を高めることができる。
８．ディスク・レベルで利用可能な技術（書込みチェックなど）を用いてもオブジェクトの信頼度は高まる。
【００２７】
「使用ヒント」属性により、これからオブジェクトがどのように用いられるかについてのいくつかの情報をアプリケーションはドライブに与えることができる。したがって、オブジェクトを記憶する方法／場所および処理する方法について決定するときに、ドライブはこの知識を利用することができる。この属性のいくつかの可能な値を以下に定義する。
１．「ストリーム・オブジェクト」は、これがストリーム・オブジェクトであって、大きな読取りチャンクでアクセスできることをドライブに知らせる。ドライブはこのオブジェクトを恐らくは外側トラック上の連続したセクタ上に記憶して（断片化を避けることにより）性能を向上させる。
【００２８】
２．「トランザクショナル・オブジェクト」は、これがより小さなチャンクでランダムにアクセスされるオブジェクトであることをドライブに知らせる。このタイプのオブジェクトでは順次読取り性能は重要でないので、ドライブはこの情報を用いてオブジェクトをドライブのより小さな断片化された部分に記憶してよく、これによりディスクの利用を改善することができる。
３．「リード・オンリー・オブジェクト」は、このオブジェクトの書込みが行われることがなくまた固定サイズであることをドライブに知らせる。ドライブはこの情報を用いて、増大に備えた余地を残さずにオブジェクトを他のオブジェクトの隣に記憶して、ディスクの利用を最適にする。
【００２９】
４．「要求オブジェクト・サイズ」は、オブジェクトが要求オブジェクト・サイズを有することをドライブに知らせる。オブジェクトは、要求された量の連続した空間を利用できる媒体上に記憶される。ドライブはこの情報を用いてこのオブジェクトが将来使用するのに十分な連続したセクタを確保して、将来不必要な断片化や性能の問題が起こらないようにする。しかし、後でオブジェクトは要求したサイズを超えて増大することがある。この場合は、オブジェクトを断片化してよい。
５．「予想されるオブジェクト増大サイズ」は、オブジェクトがこの増分で増大することをドライブに知らせる。ドライブはこの情報に基づいて空間割当てアルゴリズムを最適化して、オブジェクトの断片化を減らす。
【００３０】
図３は記憶装置３００を示す。記憶装置３００は記憶性能の異なるゾーン属性３１４を持つ複数の媒体ゾーン３０４，３０６，３０８，３１０，３１２を有する記憶媒体３０２を含む。
記憶装置３００は、バス３３４を介してホスト・システム３２０に接続可能なデータ・チャンネル３１８を含む。ホスト・システム３２０は図２のホスト・システム２２０と同等である。オブジェクト・ベースのアプリケーション３３０，３３２またはユーザはオブジェクト３２２，３２４を生成する。データ・チャンネル３１８はオブジェクト３２２，３２４などのオブジェクトを受ける。オブジェクト３２２，３２４はオブジェクト３２２，３２４のデータ構造の一部であるＩノード３２７，３２９の一部分内に、オブジェクトに付随する記憶属性３２６，３２８を有する。
【００３１】
記憶装置３００はオブジェクト・ベースの記憶インターフェース３１６を含む。オブジェクト・ベースの記憶インターフェース３１６はデータ・チャンネル３１８と記憶媒体３０２との間に結合する。オブジェクト・ベースの記憶インターフェース３１６はＩノード割当て論理３３６を含む。Ｉノード割当て論理３３６はＩノード３２７，３２９のアクセス頻度の小さな部分を多数の媒体ゾーン３０４，３０６，３０８，３１０，３１２の１つの第１の部分内に記憶するようスケジュールする機能を有する。Ｉノード割当て論理３３６はＩノードのアクセス頻度の大きな部分を多数の媒体ゾーン３０４，３０６，３０８，３１０，３１２の同じものの第２の部分内に記憶するようスケジュールする機能を有する。
【００３２】
第１および第２のゾーンは互いに物理的に分離され、異なる検知属性を有する。Ｉノードのアクセス頻度の大きな部分は好ましくは高速検知属性を持つゾーン内に記憶され、Ｉノードのアクセス頻度の小さな部分は好ましくは低速検知属性を持つゾーン内に記憶される。ゾーン属性３１４は物理的ゾーン・アドレス３４０と共にマップ３３８内に配置される。Ｉノード３２７などの個別のＩノードは、異なるゾーン属性を持つゾーン・アドレスにある物理的に分離された位置３５０，３５２，３５４に記憶される。
【００３３】
Ｉノード割当て論理３３６はＩノードの多数の部分またはセグメントを物理的に分離されたゾーン内に最適に記憶するための分離アルゴリズムを含んでよい。分離アルゴリズムは再割当てを行うための決定論的論理、またはファジィ論理、またはその両方を含み、変化する使用条件または変化する検知記憶属性条件の下で利用可能な記憶空間の利用を最適にしてよい。かかる再割当ては背景処理で、またはＩノード割当ての前景処理で行ってよい。
【００３４】
従来のファイル・システムのファイルはユーザ・データとメタデータとを含む。ファイルのメタデータ部分はタイム・スタンプやユーザ・データ・ブロックの位置などの情報を含む。メタデータはＩノードと呼ばれる構造内に保有される。この構造はユーザのデータ以外の、ファイルに関する大量の情報を含む。Ｉノード構造内の或る情報は頻繁に更新されてファイルの常に変わる状態を反映するので、記憶装置に繰り返し書き込む必要がある（例えば、アクセス時間）。Ｉノード内の他の情報はファイルを作成した後は滅多にまたは全く変わらない（例えば、作成時刻や所有者）。Ｉノード内の或るフィールドはファイルの完全性にとって重要であるが（データ・ブロックの位置）、或るフィールドはファイルの完全性に直接影響しない（タイム・スタンプ）。
【００３５】
Ｉノード内のメタデータの属性を２つの部分に分離することにより、記憶装置上で更新する必要のあるファイル情報の総量を減らすことができる。同時に、ファイルに関する最も重要な情報は書き直す頻度が小さいので壊れる可能性が小さい。したがって、性能も完全性も共に向上する。
ファイル情報構造（Ｉノード）は、記憶装置上のファイル・データの位置、タイム・スタンプ、および種々の他の属性に関する情報を含む。ファイル情報は、読取り動作や書込み動作中に更新される属性と更新されない属性とに分類してよい。
【００３６】
ファイル読取り動作は一般に書込み動作より多く行われる。したがって、読取り動作中に更新される属性は書込み動作中に更新される属性より頻繁に変わる。更に、読取り動作中に更新される属性はファイルの完全性にとって重大ではない。
【００３７】
読取り動作中に更新される属性を記憶媒体内の物理的に分離された構造内に分離することにより、次の利点が得られる。
１．読取り動作に関連する属性は全ファイル属性のほんの一部（例えば、ファイル・アクセス・タイム・スタンプ）なので、読取り動作のために変わる構造はＩノードよりはるかに小さい。したがって、より多くの読取り属性構造を単一のディスク・ブロック内に詰め込んでよい。このように密度を高めるとキャッシュ・ヒット率が高くなり、記憶装置にライトバックする必要のあるデータの総量が少なくなる。
【００３８】
２．読取り動作中に更新される属性は一般にファイルの完全性にとって重大ではない（例えば、アクセス・タイム・スタンプ）が、書込み動作中に変更される属性は非常に重大である（例えば、データ・ブロック位置）。ディスク・ドライブへの書込み動作が全て失敗してデータ・ブロックが壊れたままになる危険性を有する。一緒に記憶すると、重要な情報が重要でない情報を更新する危険がある。読取り動作中に更新される属性を記憶装置の異なるブロック内の異なる構造内に入れることにより、読取り動作中にファイルの重要な情報を損傷する潜在的な危険を除くことができる。
【００３９】
３．Ｉノード内に記憶する情報を減らすことにより、追加のファイル情報を入れる余地ができるか、またはＩノード構造のサイズを減らすことができる。どちらの場合も利用可能なデータ密度が増えるのでキャッシュ・ヒット率が高まる。
４．動作の初めに読取りのスケジューリングを行うことにより、読取り動作が完了するまで待つことなく、キャッシュ・ヒットでなくても属性構造を読み取るのに必要な時間をファイル動作と重ねることができる。
５．任意の１つの動作中には上に述べた２つの構造の１つだけしか変更しないので、分離の結果、属性の更新による性能の低下はない。
【００４０】
従来のファイル・システムはＩノードを用いて、全てのファイル属性と、ディスクのどのブロックがファイルのデータを含むかを定義する情報とをこれに含める。ファイルが増大して全てのデータ・ブロックへの参照を含むだけの十分な空間がなくなると、追加の「Ｉノード」が割り当てられて最初のＩノードにリンクされる。しかし、かかる追加のＩノードは必要がないのにいくつかの情報をコピーするので、同じ構造を持たないことに注意すべきである。これらは空間が同じプールから来るという意味においてだけＩノードである。かかるタイプのＩノードをここでは「Ｉノード拡張」と呼ぶ。
【００４１】
オブジェクトにアクセスするたびに、アクセス時間を更新するという目的だけでオブジェクトのＩノードを書き直す必要があるのは問題である。Ｉノードの書直しを繰り返すと、Ｉノードを偶然損傷する機会が増えるのでＯＳＤの信頼度が低かすると考えられる。Ｉノードが消失するとオブジェクト・データも消失する。したがって、頻繁に変更されるオブジェクト属性はオブジェクトのＩノード以外の場所に移すことが望ましい。このように頻繁に変更されるオブジェクト属性をここでは「属性ノード」と呼ぶ。重要な機能は、属性を主Ｉノードと属性ノードとに分割することである。
【００４２】
属性ノードを用いる際の１つの懸念は、全てのオブジェクトの属性にアクセスするのに多数のブロック読取りを行う必要があるためシステムの性能が低下することである。ユーザ要求を処理する必要のある全ての属性をＩノード内に保有すれば、性能へのこの影響を大幅に減らすことができる。事象のシーケンスの一例を次に示す。
１．Ｉノードの読取りをスケジュールする。
２．属性ノードの読取りをスケジュールする。
３．Ｉノードが利用可能になるのを待つ。
４．Ｉノード内の属性を用いてＯＳＤ要求をＬＢＡ要求に変換してデータ転送を開始する。
５．属性ノードを待つ。
６．属性ノード内の属性を更新してダーティというしるしを付ける。
【００４３】
この分離には次のようないくつかの態様がある。
１．オブジェクト要求を処理してＬＢＡ要求に変換するのに必要な属性はＩノード内にあるので、最も速く利用することができる。
２．高い頻度で更新される属性は属性ノード内に置いて、Ｉノードが損傷する可能性を減らす。要求を処理するのに必要な属性は、作成時刻、論理長さ、使用された容量、および容量割当てである（後の２つは書込み動作にだけ必要である）。読取り動作で変更される属性（最も多く実行される動作であり、したがって変更速度が最も高いもの）は属性アクセス時間およびデータ・アクセス時間である。
【００４４】
どちらのカテゴリにも入らない他の属性がある。第１に、書込み動作で変更される属性（データ変更時間、属性変更時間）がある。めったに、または全く変更されない属性（ユーザ名）もある。このユーザ名属性はサイズが変わる性質を持つので、このユーザ名属性はＩノードでも属性ノードでもない第３の領域内に置いてよい。
【００４５】
書込み動作で更新される属性はＩノード内に記憶される。或る書込み動作では、追加のブロックが加わるためにほとんど常にＩノードを更新する必要がある。対象とする属性は割り当てられたブロックに密接に関係する。これらは全て同時に変わる。Ｉノード内にこれらを一緒に保有すれば、１つの構造だけを変更してディスクにフラッシュすればよい。属性ノードは書込み動作で変更されないことが多い。これらの属性が属性ノード内にある場合は、Ｉノードと属性ノードの両方が書込み動作で変更される。
【００４６】
属性が用いる全空間は属性の位置には余り影響されない。Ｉノードと属性ノードが用いる空間の比率に影響するだけである。すなわち、ｎ個のオブジェクトの情報にはｘ個のＩノード・ブロックとｙ個の属性ノード・ブロックとが必要である。属性をＩノードと属性ノードとの間で移すときは、Ｉノードのサイズの方が小さい。これにより、キャッシュ内に記憶できるメタデータの量が増えることはない。したがって、ディスクまたはキャッシュの利用に関しては、属性の位置をどちらの方向に調整しても得になることはない。
【００４７】
これらの属性をＩノード内に置くとＩノードは小さくなるが、キャッシュ内に記憶することができるＩノードの数は増えない。属性をどのように分割しても、ｎ個のオブジェクトはｘ＋ｙブロックのメタデータを必要とする。したがって、属性をどのように分割しても、所定の量のキャッシュについて表されるオブジェクトの総数は同じである。粒度（単一ブロック内のＩノードの数）には差がある。しかし、Ｉノードまたは属性ノードの多数のブロックを一度に読み取ることにより、属性をどのように分割しても同じ結果が得られる。最も大きな利益は、ディスクにフラッシュ・バックする必要のあるメタデータの数を減らすことにより得られる。
【００４８】
書込み動作では、オブジェクトの書込みに関する全ての属性をＩノード内に保有すれば、Ｉノードおよび属性ノードの両方ではなくＩノードだけをディスクにフラッシュすればよい。或る方法を用いて２つの関係するブロックの書込みを最適にすることはできるが、書込み時間は１ブロックより２ブロックの方が必ず長くなる。
【００４９】
書込み動作より頻度が高い読取り動作では、属性ノードだけをディスクにフラッシュすればよい。属性ノードのサイズを小さくすることにより、単一ブロック内により多くの属性を入れることができる。頻度が高いと上に定義した属性では、１ブロック内に少なくとも２５６個の属性ノードを入れることができる。できるだけ密に詰め込むと、１ブロック内に最大３４１個の属性ノードを詰め込むことができるが、データ整列の問題が起こってソフトウエアの性能に影響を与える。属性分離の他の方法に比べて、本発明の分離方法は単一ブロック内により多くのノードを入れることができる。
【００５０】
分離することにより両方の動作の性能を最高にすることができる。書込み動作ではダーティなメタブロックは２つではなく１つだけであり、読取り動作ではこの動作で変更する属性を保持するブロックを共用するチャンスが大きい。
【００５１】
図４はオブジェクト指向記憶装置（ＯＳＤ）４００内の記憶を示す。記憶装置４００内のオブジェクト・ディレクトリは中心のＢトリー（すなわち、トリー状のディレクトリ構造）を含む。Ｂトリーは、記憶媒体４０２内に記憶される第１のＢトリー部分４５０を含む。Ｂトリーは、オブジェクト指向記憶インターフェース４１６内のランダム・アクセス・メモリ（ＲＡＭ）内に記憶される第２のＢトリー部分４５２を含む。
【００５２】
記憶装置４００は記憶媒体４０２を含む。記憶媒体４０２は物理的媒体ゾーン４０４，４０６，４０８，４１０，４１２を含む。記憶装置４００は、バス４３４を介してホスト・システム４２０に接続可能なデータ・チャンネル４１８を含む。データ・チャンネル４１８は、ホスト・システム４２０と記憶装置４００内のオブジェクト・ベースの記憶インターフェース４１６との間に複数のオブジェクト４２２，４２４を伝達する。オブジェクト４２２，４２４はオブジェクト・ベースのアプリケーション４３０，４３２により、またはユーザにより生成してよい。
【００５３】
オブジェクト・ベースの記憶インターフェース４１６はデータ・チャンネル４１８と記憶媒体４０２との間に結合して、物理的媒体ゾーン４０４，４０６，４０８，４１０，４１２内に多数のオブジェクト（多数のオブジェクト４２２，４２４など）をオブジェクト区分に従って記憶する。オブジェクト・ベースの記憶インターフェース４１６は多数のオブジェクトのＢトリー・ディレクトリ部分４５２を含む。Ｂトリー・ディレクトリは、区分識別子４５６とオブジェクト識別子４５８との組合せを含む分類キー４５４を含む。Ｂトリー部分４５２は、ＲＡＭ内にあるルート・ノード４６０と、チャイルド・ノードの少なくとも第１のティア４６２とを含む。
【００５４】
階層的ファイル・システムは、ユーザ・データを含むファイル（オブジェクト）と、中にファイルが置かれるディレクトリとに編成される。ファイルは、ファイルを編成して位置を見つける手段としてのディレクトリ内に置かれる。ディレクトリは入れ子にして（追加のティアと）、ファイルを更に分割しまた編成してよい。ファイル・システム・ディレクトリの機能は、ファイル識別子（例えば、ファイル名、またはサブディレクトリ名、またはＯＳＤオブジェクトＩＤ）をそのファイルまたはサブディレクトリに関する情報の位置（一般に「Ｉノード」と呼ぶ）にマップすることである。その結果、特定のファイルを見つけるには、各入れ子のディレクトリを開いて必要な情報を探すという多数回のディスク・アクセスを必要とする。
【００５５】
しかしＯＳＤ記憶装置は階層的ファイル・システムを有しない。オブジェクトは各区分内の「平らな」名前空間内に記憶される。各区分がディスク空間の固定された部分である従来のディスク区分とは異なり、ＯＳＤ区分は空間のソフトな（非物理的な）定義である。ＯＳＤ区分の目的は階層的ディスク区分の目的に似ているが、ＯＳＤ区分の管理はディレクトリの管理と同様である。区分内のオブジェクトの位置を見つけるには、ファイル・システムは、ａ）ソフト区分の位置を見つけ、ｂ）区分のオブジェクト・リストを読み取ってオブジェクトの位置を見つけ、ｃ）オブジェクト情報を読み取る。
【００５６】
ＯＳＤ内の全てのオブジェクトについて単一のオブジェクト・ディレクトリを保持することにより、オブジェクト探索時間が決定論的になって大幅に減少すると共に、ファイル・システムの信頼度が向上する。
オブジェクトがどの区分内にあるかに関わらず、単一のＢトリー構造は全てのオブジェクトＩＤを含む。これにより、一度トリー探索を行えば装置上のどのオブジェクトのＩノードの位置でも見つけることができる。
【００５７】
Ｂトリー内の分類キーは区分識別子とオブジェクト識別子との組合せから成る。これにより、各オブジェクトは特有のキーを持つことができる。これはまたＢトリー内の項目を編成して、或る区分の項目の次にその区分内の全てのオブジェクトの項目が続くようにする。区分内の全てのオブジェクトの表を作る作業は、区分を探索し、次の区分が見つかるまでディレクトリ・リーフ内の項目を順にたどることにより行う。
ほとんどのリーフ・ノードが常にＲＡＭ内にあるようにＢトリーを編成することにより、装置上のオブジェクトの「Ｉノード」の位置を見つけるプロセスはディスク・アクセスをせいぜい一度行えばよい。したがって、ディレクトリ探索は決定論的である。
【００５８】
ＩＤを順に挿入するときの空間利用率を最高で５０％から潜在的に９９％以上まで改善する、ノードを分割するための変更されたアルゴリズムを用いる。これは、増大が起こっている区分境界でノード分割を行うことにより達成される。或る例では、標準のＢトリー・アルゴリズムに比べて、空間利用率が３３％向上すると共に実行時間が８％短縮する。
ＲＡＭ常駐のディレクトリ・ノードを任意のサイズに設定する（すなわち、任意の数の項目を含んでよく、かかるノードはディスク・ブロックのサイズに関連しない）こととトリーの最大高さを調整することとを組み合わせることにより、上記の構造はディレクトリ容量の柔軟な拡張性を得ることができる。
【００５９】
探索時間が決定論的であることも利点である。せいぜい一度のディスク・アクセスでよく、またアクセスは既知の位置に対して行う。ＯＳＤオブジェクトＩＤ用に設計されたＢトリー・アルゴリズムを用いることにより、ディレクトリ空間利用も改善される。オブジェクト・ディレクトリを、記憶装置上のランダムな位置にあるファイル／オブジェクト内に置くのではなく記憶装置の確保／保護された領域内に置くことにより、完全性および信頼度も高めることができる。この重要な情報の完全性および信頼度を保証するために特殊な配慮を行ってよい。区分ディレクトリ「リスト」操作は区分自身を見つける必要がないので、性能が向上する。
【００６０】
図５はＯＳＤデータ記憶装置５００上のデータ割当ておよびレイアウトを示す。記憶装置５００は、記憶性能の異なる属性を持つ多数の媒体領域５０４，５０６，５０８，５１０を有するディスクの形の記憶媒体５０２を含む。媒体領域５０４，５０６，５０８，５１０はバイト・レベルのアドレス指定でアドレス指定可能な物理的に近接する割当てグループに編成される。媒体領域５０４は割当てグループ５８０，５８１を含む。媒体領域５０６は割当てグループ５８２，５８３を含む。媒体領域５０８は割当てグループ５８４，５８５を含む。媒体領域５１０は割当てグループ５８６，５８７を含む。
【００６１】
記憶装置５００は、バス５３４を介してホスト・システム５２０に接続可能なデータ・チャンネル５１８を含む。データ・チャンネル５１８は多数のオブジェクト５２２，５２４を伝達する。多数のオブジェクト５２２，５２４はオブジェクト内に含まれる要求記憶属性５２６，５２８を有する。
記憶装置５００は、データ・チャンネル５１８と記憶媒体５０２との間に結合するオブジェクト・ベースの記憶インターフェース５１６を含む。オブジェクト・ベースの記憶インターフェース５１６は、単一の割当てグループ内に記憶することをサイズが許せば、多数のオブジェクト５２２，５２４をそれぞれ単一の割当てグループ内に記憶するようスケジュールする。言い換えると、特定の単一のオブジェクト（オブジェクト５２２または５２４など）は要求記憶属性を満たす単一の割当てグループ内に記憶される。
【００６２】
通常、従来のファイル・システムはホスト・システムのオペレーティング・システムの一部であり、制御するディスク・ドライブから分離される。ファイル・システムに「論理装置」を提示する（ボリューム・マネージャまたはダイレクト・ブロック装置を介して）という考え方では、ファイル・システムはファイル・システムが管理するドライブのほとんどの記憶属性を知ることはできない。この知識は、セクタ・サイズ、ディスクの性能ゾーン、またはドライブの高信頼度領域などを含む。このように分離したため、かかるファイル・システムは性能および信頼度についてかかるドライブ機能を利用することができなくなった。かかる問題はＯＳＤドライブで解決することができる。ＯＳＤドライブでは、ファイル・システムはセクタ・サイズを知る必要がなく、データをディスクの或る領域内に入れて前に述べたドライブの検知性能および信頼度特性を利用するよう依頼する機能を有する。これらは全て、データのレイアウトおよび割当てを行う重荷がホスト・システムではなく記憶装置５００にかかるからである。
【００６３】
記憶装置５００上のデータ・レイアウトおよび空間の割当ては記憶装置５００自身が制御する。記憶装置５００は媒体の知識ベースを利用して、性能および信頼度に関してユーザ・データの書込みおよび読取りを最も良く行う。
記憶装置５００上のデータ空間は、順方向のヘッド・シークの性能を利用しまた一般にヘッドの動きを最小にするように設計される。ディスク上でのヘッド・シークは性能を高めるのに妨げになる。一連の関連するシーク中は、ヘッドは順方向に外側トラックから内側トラックに向かって動かすのが好ましい。
【００６４】
データ空間は好ましくは固定サイズのユニットに分割される。かかるユニットは「割当てグループ」と呼ばれ、ユーザ・データ空間とこの空間を追跡する情報とを有する。多数の「割当てグループ」を用いてディスク上に領域を作成する。かかる領域はディスク・ドライブの物理的ゾーン化と一致してよい。システム情報は好ましくは図に示すように最も内側のトラック上に保有してよい。
データにアクセスするには、システム・メタデータ（Ｉノードおよびマップ）に最初にアクセスし、次にシーク動作でユーザ・データにアクセスする。アクセス時間を速くするため、順方向の動きはディスクの曲がりを利用する。
【００６５】
領域は全ディスク面積の最小の部分集合なので、領域内で作業すればシーク距離は最小になり、シークは速くなる。またＯＳＤにより、ホスト・ファイル・システムは最小のユニット（データのバイト）で作業することができる。ドライブは希望する任意のサイズ・チャンク（セクタ・サイズ）内にデータを記憶してよく、セクタ境界上にないデータを処理する。
ヘッド・シークが最小になるので、オブジェクトおよびそのオブジェクトのデータ空間を作成するためにディスク上で空間を割り当てる方法は、近さに基づいて決定される。データ・ブロックがＩノードに近いほど、そのオブジェクトの読取りまたは書込みの性能が良くなる。連続的な空間もオブジェクトにとって好ましい。なぜなら、データの読取りまたは書込みを行うためにヘッドが別の領域に移動する必要がないからである。
【００６６】
各ＯＳＤオブジェクトは、オブジェクトを追跡する関連するＩノード構造を有する。これはシステム・メタデータの一部である。オブジェクトを作成するためにディスク上のどこにＩノードを割り当てるかは多数の評価基準に依存する。従来のファイル・システムと異なり、ＯＳＤファイル・システムはディスク上の空間に関する知識を有する。これは或る領域の信頼度や或る領域の速度などを含む。またＯＳＤの下では、ユーザは記憶インターフェース５１６に、オブジェクトの予想される大きさや、必要な性能や信頼度の種類などのヒントを与えてよい。
【００６７】
かかるヒントに基づいて、Ｉノードはディスクの或る領域内に割り当てられる。或るデータ速度が利用できることや、データ・ブロックがオブジェクトに割り当てられるのでオブジェクトが断片化されずに増大できるチャンスがあることを知って、Ｉノードは或る割当てグループ内に記憶される。Ｉノードおよびデータ・ブロックは好ましくは同じ割当てグループ内に保有されるので、シーク距離はＩノードのアクセスとユーザ・データの実際の読取りまたは書込みとの間で最小に保たれる。これは近さに基づく記憶意思決定である。
【００６８】
領域は多数の割当てグループを持ってよいので、多数のオブジェクトが存在するとき、その領域内の割当てグループ間にラウンド・ロビン割当てを行えば、全てのオブジェクトは断片化されずに増大するチャンスを有する。断片化されると、ユーザ・データに到達するのに多数のディスク・ヘッドの移動を行うので性能が低下する。オブジェクト１をグループ０、領域０に割り当て、オブジェクト２をグループ１、領域０に割り当てる、などしてよい。１つの領域内で作業することにより、ヘッドの移動を最小にすることができる。総合的な目標は断片化を減らしてヘッドの移動を減らすことである。
【００６９】
特定のサイズのオブジェクトをドライブ上の単一の割当てグループに隔離してよい。小さなオブジェクトと大きなオブジェクトとを混合することは望ましくないことがある。なぜなら、小さなオブジェクトが大きなオブジェクトの断片化の原因になり得るからである。「サービス品質」の考え方を用いてドライブ上のオブジェクトを分離してよい。
【００７０】
データが終わるディスク上の位置をユーザ（ホスト）が制御できない従来のファイル・システムとは異なり、ＯＳＤではホストが「サービス品質」属性（ＱｏＳ）を送ることができる。ホスト・システムが受け入れられる質（性能または信頼度）の範囲をＯＳＤファイル・システムに知らせるための最小および最大のＱｏＳがある。このＱｏＳは、Ｉノードおよびデータ・ブロックをディスク上の或る領域内に割り当てるようＯＳＤファイル・システムに伝える。
【００７１】
例えば或るクライアントは、最高性能を必要とするオブジェクトをディスク上の最高性能を有する領域内に入れてよい。同じクライアントは、同じ種類の性能を必要としないまたは他の評価基準を有する他のオブジェクトをディスクの他の領域内に入れてよい。これにより２つのオブジェクト・タイプが実際に互いに断片化することを防いで、性能を高めることができる。
【００７２】
空間の割当ては今やドライブ自身に移り、ファイル・システムはこの重荷が取り除かれた。共用の／クラスタ化された環境において、多数のファイル・システムはもうこの作業を行わなくて済む。ドライブが割当ての中心になり、共用の環境をそれだけ容易にすることができる。多数のファイル・システム自身は、データをどこに割り当てるかについて互いにチェックする必要がない。それはドライブが行う。
【００７３】
ホスト・ファイル・システムは読取り／変更書込み動作の実行を支援する必要がない。なぜなら、その入出力（Ｉ／Ｏ）要求がセクタに適合しないからである。これはドライブが扱う。全てのファイル・システムは最小のユニット（バイト）で作業する。これにより、ホストが行うＩ／Ｏ要求は少なくなる。ドライブがラウンド・ロビン要求を行う機能はディスクが多数のファイルに断片化されるのを防ぐのを支援し、ファイルを広げる（範囲を増大する）機能は個別のファイルが断片化されるのを防ぐのに役に立つ。
【００７４】
ドライブは自分の信頼度および性能特性を知っているので、ファイル・システムＩ／Ｏは或る性能および／または信頼度のニーズを満たすディスクの領域に置かれるよう依頼してよい。これは従来のファイル・システムができないことである。「ソフトな区分化」という概念により、或るアプリケーションはドライブ上のそのデータをカスタム適合させることができる。これはアプリケーションが従来のファイル・システムではできないことである。
【００７５】
好ましい実施の形態では、オブジェクトの先読み（「先取り」とも言う）を用いてオブジェクト・ベースの記憶装置内の性能を高める。先読みはオブジェクト・ベースの記憶装置で特に有効である。なぜなら、オブジェクトが記憶されている全てのブロックが分かっているからである。これはブロック装置と対照的である。ブロック装置では、或るトラックを読み取ったとき、アクセスしているファイルとは異なるファイルからのデータをこのトラックが含んでいる可能性がある。オブジェクト指向記憶では、先読みはアクセスしているオブジェクトに関連するブロックだけを読み取る。
【００７６】
理解されるように、これまでの説明で本発明の種々の実施の形態の多くの特性および利点を、本発明の種々の実施の形態の構造および機能の詳細と共に示したが、この開示は単なる例であって、詳細については、特に本発明の原理内の部分の構造および配置に関して、添付のクレームに示されている用語の広い一般的な意味で示されている全範囲において、変更を行ってよい。例えば、本発明の範囲および精神から逸れずに実質的に同じ機能性を保持しながら、記憶装置の特定のアプリケーションに依存して特定の要素を変えてよい。更に、ここに述べた好ましい実施の形態はディジタル・データ記憶用のオブジェクト・ベースのディスク・ドライブ・システムに関するものであるが、当業者が認識するように、本発明の教示は本発明の範囲および精神から逸れずに他のデータ記憶装置に適用することができる。
【図面の簡単な説明】
【００７７】
【図１】ディスク・ドライブの等角図である。
【図２】オブジェクト・ベースの記憶装置の第１の実施の形態を示す。
【図３】オブジェクト・ベースの記憶装置の第２の実施の形態を示す。
【図４】オブジェクト・ベースの記憶装置の第３の実施の形態を示す。
【図５】オブジェクト・ベースの記憶装置の第４の実施の形態を示す。
【符号の説明】
【００７８】
２００  記憶装置
２０２  記憶媒体
２０４−２１２  媒体ゾーン
２１６  オブジェクト・ベースの記憶インターフェース
２１８  データ・チャンネル
２２０  ホスト・システム
２２２，２２４  オブジェクト
【図１】
2007200333.tif 000003
【図２】
2007200333.tif 000004
【図３】
2007200333.tif 000005
【図４】
2007200333.tif 000006
【図５】
2007200333.tif 000007