(57)【要約】      （修正有）【課題】コンピュータファイルシステムにおいてブロックサイズを割り当てるためのシステムを提供する。【解決手段】ファイルシステムを用いてディスクドライブにアクセスするアプリケーションに対する最大入力／出力帯域幅要求が決定される。またディスクドライブがディスク上で第１のブロックから第２のブロックまでシークするための最大シーク時間及びディスクドライブの最小転送速度も決定される。この情報を用いて、最小ディスクＩ／Ｏスループットをするためにそのアプリケーションが必要とする閾値より低い値までディスク上のファイル断片化が低減されるように、ブロックサイズが計算される。【選択図】なし【特許請求の範囲】
【請求項１】
ファイル断片化を低減するためにコンピュータファイルシステムを構成する方法において、
前記ファイルシステムを用いるアプリケーションに対する、データ記録装置アクセスに対する最大入力／出力帯域幅要求を決定するステップと、
前記アプリケーションによりアクセスされるデータ記憶装置に対するデータ転送特性を決定するステップと、
アプリケーションの入力／出力性能に対して、その値未満のファイル断片化が許容可能である最大閾値を決定するステップと、
前記データ記憶装置への読み出し／書き込み動作が前記閾値未満になるように、ブロックサイズを前記最大入力／出力帯域幅と前記データ転送特性との関数として計算するステップとを有することを特徴とする方法。
【請求項２】
前記データ転送特性が、前記データ記憶装置が前記データ記憶装置の第１のブロックから前記データ記憶装置の第２のブロックまでシークするための最大シーク時間と、前記データ記憶装置の最小データ転送速度とを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記データ記憶装置上の論理ブロックが前記計算されたブロックサイズに対応する空間量を割り当てられるように前記ファイルシステムをプログラミングするステップをさらに有することを特徴とする請求項２に記載の方法。
【請求項４】
前記ファイル断片化が前記アプリケーションから前記データ記憶装置への書き込み動作中に排除されるように、前記最大閾値が選択されることを特徴とする請求項３に記載の方法。
【請求項５】
前記最大閾値が、前記アプリケーションのうちの１又はそれ以上のアプリケーションに対して異なり、前記最小ブロックサイズを計算するステップがさらに、前記アプリケーションのうちの第１の組のアプリケーションに第１のブロックサイズのブロックを割り当てるステップと、第２の組のアプリケーションに第２のブロックサイズのブロックを割り当てるステップとを有することを特徴とする請求項３に記載の方法。
【請求項６】
前記最大入力／出力帯域幅要求が、前記アプリケーションのうちの１又はそれ以上のアプリケーションに対して異なり、前記最小ブロックサイズを計算するステップがさらに、前記アプリケーションのうちの第１の組のアプリケーションに第１のブロックサイズのブロックを割り当てるステップと、第２の組のアプリケーションに第２のブロックサイズのブロックを割り当てるステップとを有することを特徴とする請求項３に記載の方法。
【請求項７】
前記ファイルシステムを用いるアプリケーションに対する、データ記憶装置アクセスに対する前記最大入力／出力帯域幅要求が、シーク動作を実行するのに必要な時間量と、最小要求データ転送速度とを含むことを特徴とする請求項３に記載の方法。
【請求項８】
前記データ記憶装置上に格納された不連続なイベントを表すブロック間でシーク動作を実行するのにかかる時間を決定するステップをさらに有することを特徴とする請求項７に記載の方法。
【請求項９】
ファイル断片化を低減するためにコンピュータファイルシステムを構成するための方法において、
前記ファイルシステムを用いるアプリケーションに対するディスクドライブアクセスのための最大入力／出力帯域幅要求を決定するための手段と、
前記アプリケーションによりアクセスされるディスクドライブが、前記ディスク上の第１のブロックから前記ディスク上の第２のブロックまでシークするための最大シーク時間を決定するための手段と、
前記ディスクドライブの最小データ転送速度を決定するための手段と、
アプリケーションの入力／出力性能に対して、その値未満のファイル断片化が許容可能である最大閾値を決定するための手段と、
前記ディスクドライブに対する読み出し及び書き込み動作が、前記閾値未満になるように、ブロックサイズを前記最小入力／出力帯域幅と前記最大シーク時間との関数として計算するための手段とを有することを特徴とする方法。
【請求項１０】
論理ブロックが前記計算されたブロックサイズに対応するディスク空間量を割り当てられるように前記ファイルシステムをプログラミングするための手段をさらに備えることを特徴とする請求項９に記載の方法。
【請求項１１】
ファイルシステムを用いるアプリケーションに対する、ディスクドライブアクセスに対する最小入力／出力帯域幅要求を決定するステップと、
前記アプリケーションによりアクセスされるドライブが、前記ディスク上の第１のブロックから前記ディスク上の第２のブロックまでシークを行うための最大シーク時間を決定するステップと、
アプリケーションの入力／出力性能に対して、その値未満でファイル断片化が許容可能である最大閾値を決定するステップと、
前記ディスクドライブに対する読み出し／書き込み動作が前記閾値未満になるように、ブロックサイズを前記最小入力／出力帯域幅と前記最大シーク時間との関数として計算するステップと、
を、プロセッサにより実行可能であり、かつ該プロセッサにより実行される際に、該プロセッサに実行させる命令のシーケンスを格納したコンピュータ読み取り可能な媒体。
【請求項１２】
前記メモリが、前記プロセッサが、前記計算されたブロックサイズに対応するディスク空間の量を前記ディスク上の論理ブロックが割り当てられるように前記ファイルシステムをプログラミングするステップを実行することができる命令をさらに含むことを特徴とする請求項１１に記載のコンピュータ。
【請求項１３】
コンピュータシステムにおいて、
バスと、
前記バスに接続されるデータ記憶装置と、
前記データ記憶装置に接続されるプロセッサとを備え、前記プロセッサが命令を受信するために動作可能であり、前記プロセッサにより命令が実行される際に、前記プロセッサが、
前記ファイルシステムを用いるアプリケーションに対する、データ記録装置アクセスに対する最大入力／出力帯域幅要求を決定するステップと、
前記データ記憶装置のためのデータ転送特性を決定するステップと、
アプリケーションの入力／出力性能に対して、その値未満でファイル断片化が許容可能である最大閾値を決定するステップと、
前記データ記憶装置に対する読み出し／書き込み動作が前記閾値未満になるようにブロックサイズを前記最大入力／出力帯域幅と前記データ転送特性との関数として計算するステップとを実行することを特徴とするコンピュータ装置。
【請求項１４】
前記データ転送特性が、前記データ記憶装置が前記データ記憶装置の第１のブロックから前記データ記憶装置の第２のブロックまでシークするための最大シーク時間と、前記データ記憶装置の最小データ転送速度とを含むことを特徴とする請求項１３に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはコンピュータオペレーティングシステムに関し、特に、ディスクファイルシステムのブロックサイズの割当てに関する。
【背景技術】
【０００２】
ディスクベースのオペレーティングシステムでは、ディスクは物理セクタに分割されており、物理セクタは、ディスク上にデータを記憶するための基本単位を表す。セクタは、ディスク上のトラックの円周の一部であり、ディスク上の最小物理記憶単位を表している。ファイルシステムでは、ブロックは、物理セクタの整数倍として定義されている。各ブロックは、ディスクの最小論理記憶単位を表している。したがって、データをディスクから読み出したり、ディスクに書き込む際には、ブロック全体を使用することになる。汎用ディスクファイルシステムでは、データを記憶する際にブロックのほんの一部しか使用していないディスクの容量の浪費を最小限にするために、通常、ブロックサイズは、小さく（５１２バイト／ブロックと）されている。また、このようなディスクファイルシステムは、ディスク上に小さなブロックを順番に割り当てて、多くのファイルの読出し及び書込みが有効に行えるようにしている。しかしながら、ファイルの作成、変更、削除が行われると、ディスク上の空きスペースは、直ちに散らばり、新しいファイルは、ディスク上の連続したディスクスペースに割り当てられない。したがって、これらの新しいファイルは、物理的に不連続になり、すなわち「断片化」されることになる。
【０００３】
論理的に連続しているがディスク上では物理的に連続していないファイルのブロックへのアクセスは、多くの場合、ディスク上で物理的に連続しているファイルのブロックへのアクセスに比べて非常に遅い。それは、ディスクシーク動作がディスク上で物理的に分離されているブロックへアクセスしながら行われるためである。通常、このようなディスクファイルシステム上において、多くのファイルが作成又は削除された後は、ある程度の断片化が生じる。実際に、空きディスクスペースをファイルに割り当てる方法において、アプリケーションプログラムが規制されない場合には、空きスペースが完全に断片化されないようにする一般的な方法はない。高いディスク入力／出力帯域幅に依存するリアルタイムアプリケーションの場合、任意の度合の断片化によって、ファイルへのアクセス時間が長くなることによる不具合が生じる場合がある。
【０００４】
ファイルの断片化を低減する周知の１つの方法は、各ファイルに割り当てられたブロックが順次及び連続するようにディスク上のファイルを再構築する最適化ユーティリティプログラムを実行することである。しかしながら、このような最適化ユーティリティプログラムを実行するには、ユーザがディスクの断片化の度合を監視し、断片化が問題となったときに、最適化ユーティリティプログラムを実行する必要がある。さらに、このディスク最適化プログラムは、通常、実行する際に非常に時間がかかり、最適化が行われている間、ディスクへのアクセスが禁止されてしまう。
【０００５】
ファイルの断片化を最小限にするための他の方法は、ブロックサイズを大きくすることである。これによって、ファイルが断片化されている場合であっても、ファイル内の特定の量の連続データにアクセスする際には、シーク動作が少なくてすむ。しかしながら、ブロックサイズを大きくすると、バッファリングのために必要なメモリが増え、データにアクセスするためのディスクのＩ／Ｏ待ち時間も長くなってしまう。さらに、単にブロックサイズを大きくするだけでは、断片化がある程度生じないことが保証されず、また、一部のみが使用され、ブロック内に生じる無駄なディスク容量を最小限にすることも保証できない。
【０００６】
大部分の汎用ディスクファイルシステムは、ある程度の断片化が許容され、且つ性能に悪影響を及ぼさないアプリケーションの用途に適している。しかしながら、あるアプリケーションは、ディスクへのデータ転送動作を最短時間で終了させる必要がある。この時間に対する要求は、最小のディスク入力／出力帯域幅に変換され、一般的には、ディスクへのデータの書込み又はディスクからのデータの読出しを行う単位時間当たりのバイト数として測定される。このようなアプリケーションでは、ファイルの断片化が多くなると、最小の帯域幅要求以上にディスクアクセス時間を増加させるシーク動作を招く場合がある。Ｉ／Ｏが集中するアプリケーションの例としては、広範囲のディスクアクセスを必要とするリアルタイムアプリケーション等がある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、上述した問題点に鑑みてなされたものであり、ファイルの断片化を防ぐには十分大きく、しかも各ブロック内のディスク容量が無駄になるほど大きくないブロックサイズをディスクファイルシステムにおいて割り当てるコンピュータファイルシステム形成方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、ディスクに書き込まれるファイルのサイズ及びディスクドライブの動作パラメータにより、ディスクベースのファイルシステムにおいてブロックサイズを割り当てるための方法を開示する。本発明の一実施例では、ファイルシステムを用いてディスクドライブにアクセスするアプリケーションに対する最大入力／出力帯域幅要求が決定される。またディスクドライブがディスク上で第１のブロックから第２のブロックまでシークするための最大シーク時間及びディスクドライブの最小転送速度も決定される。この情報を用いて、最小ディスクＩ／Ｏスループットをするためにそのアプリケーションが必要とする閾値より低い値までディスク上のファイル断片化が低減されるように、ブロックサイズが計算される。
【０００９】
本発明は実施の形態を通して例示されるが、添付の図面には制限されない。同様の部材には同様の参照番号を付している。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施の形態を実施するために用いることができるコンピュータ装置のブロック図である。
【図２Ａ】図２Ａは、ディスクファイルシステムにおけるファイルの断片化を示す図である。
【図２Ｂ】図２Ｂは、ディスクファイルシステムにおけるファイルの断片化を示す図である。
【図２Ｃ】図２Ｃは、ディスクファイルシステムにおけるファイルの断片化を示す図である。
【図３】図３は、本発明の実施の形態によるブロックの割当てを示す図である。
【図４】図４は、本発明の一実施の形態による過剰な断片化を防ぐためのブロックサイズ割当てのプロセスを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の好ましい実施の形態例及び特徴について詳細に説明する。
【００１２】
以下、ディスクファイルシステムにおいて、ファイルの断片化を防止するブロックサイズを割り当てるコンピュータファイルシステム形成システムについて説明する。以下の説明では、本発明が完全に理解できるように、特定の詳細事項についても数多く述べている。しかしながら、本発明は、これらの特定の詳細事項を用いることなしに実現することも可能であることは、当業者にとって明らかである。他の実施の形態では、説明を簡単にするために、周知の構造及び装置をブロック図で示す。
【００１３】
ハードウエアの概要
図１は、本発明の実施の形態を実現するために用いるコンピュータの具体的な構成を示すブロック図である。コンピュータ装置１００は、プロセッサ１０２と、このプロセッサ１０２にバス１０１を介して接続されたランダムアクセスメモリ（ＲＡＭ）１０４と、読出し専用メモリ（ＲＯＭ）１０６と、表示器１２０とを備える。キーボード１２１及びカーソル制御器１２２は、バス１０１に接続されており、情報及びコマンド選択をプロセッサ１０２に伝達する。また、コンピュータ装置１００に接続された電子機器を制御するとともに、これらの電子機器にデータを転送するための入力／出力（Ｉ／Ｏ）インタフェース１２３がバス１０１を介してプロセッサ１０２に接続されている。
【００１４】
また、大容量記憶装置１０７がバス１０１を介してプロセッサ１０２に接続されている。大容量記憶装置１０７は、プロセッサ１０２からコンピュータ装置１００によって用いられるディスクファイルシステムを介してアクセスすることができるデータを記憶した記憶装置である。大容量記憶装置１０７は、永続的なデータ記憶装置、例えばディスク媒体に対してデータの読出し及び書込みを行うためにディスク上の位置に直接アクセスすることができるフロッピー（登録商標）ディスク装置又は固定ディスク装置（例えば磁気ディスク装置、光ディスク装置、光磁気ディスク装置等）である。あるいは、大容量記憶装置１０７は、ストリーミングテープ媒体上でデータに順次アクセスすることのできるテープ装置であってもよい。なお、図１に示すコンピュータ装置１００のアーキテクチャは、本発明の実施の形態を説明するためのものであり、本発明に用いられるコンピュータは、この特定のアーキテクチャに限定されるものでない。
【００１５】
ブロックサイズの割当て
ディスクファイルシステムは、ディスク上のデータを論理ブロックに編成する。ファイルを削除又は変更すると、空きブロックは、他のファイルによって占有され、この結果、特定のファイル内のデータが幾つかの不連続なブロック間に分散されてしまうというファイルの断片化が起きる。図２Ａ乃至図２Ｃは、ディスクファイルシステムにおいてファイルの削除及び追加によって起きるファイルの断片化のプロセスを示す図である。図２Ａでは、ファイルＡがブロックＡ１を占有し、ファイルＢがブロックＢ１及びブロックＢ２を占有し、ファイルＣがブロックＣ１を占有し、ファイルＤがブロックＤ１、ブロックＤ２及びブロックＤ３を占有し、ディスクの残りの部分は空きとなっている。図２Ｂは、ファイルＡ及びファイルＣが削除されたときのブロックの割当てを示す図である。このとき、ブロックＡ１及びブロックＣ１は、空きとして示されている。図２Ｃは、新しいファイルＥがディスクに書き込まれたときのブロックの割当てを示す図である。このとき、ファイルＥは、３ブロックを必要とする。ファイルＥの第１のブロックは、第１の空きブロック（上記ブロックＡ１）に書き込まれ、ブロックＥ１として表されている。ファイルＥの第２のブロックは、第２の空きブロック（上記ブロックＣ１）に書き込まれ、ブロックＥ２として表されている。ファイルＥの第３のブロックは、次の空きブロックＥ３に書き込まれる。図２Ｃに見られるように、ファイルＥは不連続なブロック内に格納され、したがって断片化されている。このようなファイルへアクセスするときは、ファイルＥの一部が格納されているブロックの位置を特定するために、ディスク読出し／書込みヘッドがディスク上の複数のトラックに亘ってシーク動作を行う。このような複数のトラックに亘るシーク動作は、ディスク入力／出力（Ｉ／Ｏ）サイクルにかなりの時間を追加することになる。
【００１６】
本発明の一実施の形態は、過度のファイルの断片化がアプリケーションの性能に悪影響を与える、高いディスクＩ／Ｏ帯域幅要求を有するアプリケーションの用途に適した方法を提供する。本発明の方法は、ファイルの断片化を、ディスク上のファイルにアクセスするアプリケーションプログラムのディスクＩ／Ｏ帯域幅要求以下に低減できるように、ディスク上に格納されたファイルの要求及びディスク装置の動作パラメータに基づいて、ブロックサイズを割り当てる。
【００１７】
図３は、本発明の１つの態様によるブロックサイズの割当てを示す。一実施の形態では、ブロックサイズは、図２Ａ乃至図２Ｃに示すブロックより大きいディスク容量が割り当てられる。例えば、図２Ａ乃至図２Ｃの各ブロックが、５１２バイト乃至４Ｋバイトのデータ（パーソナルコンピュータに用いられる一般的なディスクの場合）を格納するときは、図３のブロックは、約１Ｍバイト長までになる可能性がある。ブロックサイズを大きくすることによって、各ファイルのより多くのデータ量が１つの単位としてディスクに書き込まれるようになる。このことによって、１つのブロックの読出し及び書込みにかかる時間が長くなるが、１つのファイルにアクセスする際のシーク動作が減り又はなくなるので、全体的なシステムの効率は高くなる。より大きなブロックを用いることにより、使用されていないディスク容量が無駄になるという問題は発生するが、ブロックのサイズは任意には選択されない。
【００１８】
本発明の一実施の形態では、ディスクブロックの最適なサイズは、ファイルサイズ及びディスク性能パラメータの関数として選択される。ブロックサイズは、所定の組のファイルに対して、最も大きなファイルがディスク上の連続したアドレス（すなわち１つのブロック内）に書き込まれ、断片化が特定の閾値以下に低減されるように選択される。この閾値は、断片化が完全に生じないように選択することができる。しかしながら、これに代えて、ブロックサイズは、ファイルの断片化によりアプリケーションに問題が生じないことを保証するように、選択することができる。断片化の排除は、短縮されたシーク時間、及び１つのファイルの読出し／書込み動作の効率の向上と、各ブロックサイズの記憶容量の増加による待ち時間の増加、及び潜在的な記憶容量の無駄の増加との間のトレードオフを必要とする。
【００１９】
図４は、本発明の一実施の形態のための方法による、断片化を防ぐためにブロックサイズを割り当てる主なステップを示したフローチャートである。ステップ４０２において、アプリケーションによって必要とされるディスク上のファイルに対する読出し／書込みサイクルのための最大ディスクＩ／Ｏ帯域幅が決定される。アプリケーションのＩ／Ｏ帯域幅要求は、ディスクドライブのデータ転送特性と釣り合わなければならない。それゆえ、ステップ４０４において、ディスクドライブのデータ転送特性が決定される。ファイルが断片化されている場合におけるファイルのアクセスでは、ドライブがディスク上の２つのブロック間をシークするための最大シーク時間及びドライブの最小データ転送速度は、決定されるべき重要な動作パラメータである。しかしながら、ディスク回転速度、ディスクプラッタ数及び読出し／書込みヘッド数のような他の動作特性も考慮することができる。
【００２０】
アプリケーションのＩ／Ｏ帯域幅要求及びディスクドライブの特性が決定された後、ステップ４０６において、断片化を最小閾値以下に低減する最小ブロックサイズが計算される。ステップ４０８において、ファイルシステムのフォーマットは、ブロックにステップ４０６において計算されるディスク容量が割り当てられるように、変更される。Ｉ／Ｏ帯域幅要求及びドライブのシーク特性が正確に決定されている場合には、ディスク上のファイルの断片化が最悪の場合であっても、ステップ４０６において実行された計算により、アプリケーションが性能要求を満たすことを保証するのに必要な最小ブロックサイズが得られる。
【００２１】
一実施の形態では、本発明の方法は、複数のデータのチャネルが同時にディスクに対して書き込まれ、又は読み出されるアプリケーションにおいて用いられる。このアプリケーションの帯域幅は、幾つかの異なるＩ／Ｏチャネルに分割される。各Ｉ／Ｏチャネルは、記憶装置によってサポートされなければならない連続データ速度と、記憶装置上の異なる位置からデータを収集又は書き込むのにチャネルによって必要とされる幾つかのエキストラシーク（以下、エディットと呼ぶ）とを有する。この実施の形態の場合、図４のステップ４０２は、アプリケーションが各チャネルに対するエディットの総合(integral)最大数を定義する期間を定義することに対応する。一般的に、エディットは、ディスク上に格納された不連続なイベントを含む任意の動作を含む。この場合、アプリケーションは、ディスク上の異なるファイル間、あるいはディスク上の同じファイル内の異なるブロック間をシークしなければならない。各エディットは、所定の期間に亘ってそのチャネル上でＩ／Ｏを実行する間に必要とされる１つのエキストラシークとして定義される。これは、エディットされた非線形チャネルにアクセスする場合に、あるブロックの途中におけるＩ／Ｏ動作の実行から別のブロックの途中のＩ／Ｏ動作の実行に、アプリケーションがチャネルを切り換える必要がある場合には必ず行われる。各チャネルによって必要とされる最大連続データ速度も決定される。
【００２２】
そして、記憶装置の性能特性に依存するパラメータが定義される。ブロックサイズを大きめに推定するために、最悪の特性が用いられ、その結果、アプリケーションは、最悪の断片化の影響が生じる場合であっても、必要な帯域幅を獲得する。図４のフローチャートのステップ４０４は、記憶装置の最小維持転送速度（シークがない場合）と、ディスク上の１つの位置からディスク上の他の任意の位置までシークするために必要な最大時間とを決定することに対応する。
【００２３】
したがって、本発明の方法は、以下の定数を生成する。
【００２４】
period＝あるチャネルが、多くても所定数のエディット数を有するのにかかる秒数
editsi＝所定の期間(period)に亘ってチャネルｉによって必要とされる可能性があるエキストラシークの最大数
ratei＝チャネルｉに必要とされる連続データ速度、単位は、バイト／秒
ratemin＝記憶装置の最小（最悪）維持転送速度、単位は、バイト／秒
seekmax＝記憶装置上の２つのブロックにアクセスするのにかかる最大（最悪）シーク時間、単位は、秒
上述の変数値を用いて、ディスクファイルシステムは、断片化の影響が排除、あるいは閾値以下に低減されるように、アプリケーションに対する帯域幅を保証するのに必要とされる最小ブロックサイズを決定することができる。本発明の一実施の形態では、ステップ４０６において、最小ブロックサイズ（blockSizemin）は以下の式によって計算される。
【００２５】
【数１】
2010102715.tif 000002
【００２６】
ブロック優先(block-oriented)装置の場合、得られるブロックサイズは、効率を上げるために、通常、次の物理セクタサイズに切り上げられる。計算により最小限必要なブロックサイズが生成されるので、ブロックサイズを大きくしても、保証された帯域幅を落とすことにはならない。なお、上述の式の右辺の分母は、正でなければならない。負の値である場合、幾つかの過度のバイト／秒の速度と過度のエキストラシーク数の組合せにより、アプリケーションにおける所定のチャネル数に対する帯域幅を、記憶装置が保証できないことを示す。
【００２７】
以下は、上述の式を用いて、最小ブロックサイズを計算する具体例を説明する。この具体例では、２０チャネルのオーディオアプリケーションがあり、各チャネルが、チャネル毎に、１００ｋバイト／ｓのデータ転送速度と、１秒当たり１エディットの可能性があると仮定する。最小維持転送速度が４ＭＢ／ｓ、最悪シーク時間が１０ｍｓｅｃである記憶装置の場合、アプリケーションに対する最小ブロックサイズ（blockSizemin）は、以下の式で与えられる。
【００２８】
【数２】
2010102715.tif 000003
【００２９】
上述の具体例において、アプリケーションが、２エディット／秒の可能性で、１Ｍｂ／ｓのデータを必要とするビデオチャネルを加えた場合には、ファイルシステムは、アプリケーションに割り当てるブロックサイズを、以下のように変更しなければならない。
【００３０】
【数３】
2010102715.tif 000004
【００３１】
本発明の一実施の形態では、ファイルの断片化を排除するために必要とされる最小ブロックサイズは、アクセスするディスクドライブに接続されたプロセッサ（例えばコンピュータ装置１００のプロセッサ１０２）により実行される。図４のステップ４０６において、最小ブロックサイズを計算するための式は、Ｃ又はパスカルのような高級コンピュータ言語で書かれたサブルーチンとして利用でき、ディスクファイルシステムのソフトウエアに組み込むことができる。類似したプログラムを、ディスクの読出し／書込み動作を実行するために用いられるアプリケーションのＩ／Ｏ帯域幅要求を決定するために、準備することができる。最終的には、プログラムを利用して、アクセスするディスクに対するブロックシーク時間及び他の重要なパラメータを決定することができる。
【００３２】
本発明の他の実施の形態では、特定のアプリケーションの固有の要求に基づいて、ブロックサイズが動的に割り当てられる。例えば、幾つかのアプリケーションは、他のアプリケーションと同様の大きさのブロックサイズを必要としない。この場合には、最も大きなブロックサイズに対応した一定のブロックサイズを割り当てることは、より小さなブロックのみを必要とするアプリケーションに対して、ディスク容量を無駄にすることになる。したがって、ファイルシステムは、各アプリケーションの実際の要求と密接に関連したブロックサイズを１つのディスク上で割り当てるように構成されることもできる。
【００３３】
本発明の一実施の形態では、それぞれ３２，７６８個のデータサンプルからなるブロックを割り当てるコンピュータ内蔵型のデジタル記憶再生装置のファイルシステムが用いられる。アプリケーションは、ディスクに対して同時にデータの複数のトラックの読出し及び書込みを行うオーディオ記録及び再生プログラムを含む。このようなアプリケーションは、ファイルの断片化の大きな可能性を示す。同時に記録する場合、第１のトラックの一部が第１のブロックに書き込まれ（ブロックが全ファイルを収容するには小さすぎるものと仮定する）、第２のトラックの一部が次のブロックに書き込まれる等のために、断片化が起こる。
【００３４】
また、このようなアプリケーションは、一般的には、再生に必要とされる厳しい最小ディスクＩ／Ｏ帯域幅要求も有する。これらのアプリケーションの場合、ディスクヘッドは、１つのトラックを再生するために、ディスク上の複数のブロック間をシークしなければならず、データサンプルを、必要な転送時間内にディスクから読み出すことができない。この場合には、オーディオデータの再生は中断されるか、そうでない場合には歪むことになる。図４に記載されたような、アプリケーションのＩ／Ｏ帯域幅要求及びディスク装置のデータ転送特性に基づいたブロックサイズの割当ては、ファイルの断片化の影響に起因してデータ転送が失敗しないようにする。
【００３５】
なお、上述の議論は、オーディオアプリケーションの状況において書かれたが、本発明の方法は、ビデオ及びオーディオの両方を含むアプリケーション、あるいは制限されたデータ量の高速計算を含むアプリケーションのような他の類似のアプリケーションにおいて用いることができる。
【００３６】
本発明の方法におけるステップは、メモリに格納された命令のシーケンスを実行するコンピュータの中央演算装置（ＣＰＵ）により実行される。記憶装置は、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、大容量記憶装置のような永続的記憶装置又はこれらのデバイスの任意の組合せであってもよい。ＣＰＵは、命令シーケンスを実行することにより、本発明の各ステップを実行する。命令は、記憶装置から、あるいはネットワーク接続上の１つ以上のコンピュータ装置から、そのコンピュータのメモリにロードされる場合もある。したがって、命令は、ＣＰＵにより直接実行される。他の場合、命令は、ＣＰＵによって直接実行されないこともある。これらの状況では、ＣＰＵは、命令を解釈するインタプリターを実行することにより、あるいは受信した命令をＣＰＵにより直接実行することができる命令に変換する命令を実行することにより、その命令を実行する。他の実施の形態では、本発明を実施するためのソフトウエア命令の代わりに、ハードウエア回路により、あるいはソフトウエア命令と組み合わせて実行するようにしてもよい。したがって、本発明は、ハードウエア回路及びソフトウエアの特定の組合せに限定されず、また、コンピュータにより実行される命令のための特定のソースに限定されない。
【００３７】
上述のように、システムは、ディスク上でファイルの断片化の発生を防ぐために、ディスクベースのファイルシステムのブロックサイズを割り当てている。本発明を、特定の実施の形態について説明したが、これらの実施の形態に対する種々の変更例及び変形例が、請求の範囲に示されるような本発明の広範な精神及び範囲から逸脱することなく行われることは明らかである。したがって、本明細書及び図面は、限定する意味ではなく、例示のためのものであるみなされるべきである。
【図１】
2010102715.tif 000005
【図２Ａ】
2010102715.tif 000006
【図２Ｂ】
2010102715.tif 000007
【図２Ｃ】
2010102715.tif 000008
【図３】
2010102715.tif 000009
【図４】
2010102715.tif 000010
【手続補正書】
【提出日】平成21年11月25日(2009.11.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータプロセッサにより計算される最小ブロックサイズにしたがってデータ記憶装置上のコンピュータファイルシステムを構成する方法であって、
前記コンピュータファイルシステムを用いるアプリケーションに対する、データ記録装置アクセスに対する最大入力／出力帯域幅要求を決定するステップと、
前記データ記憶装置上で第１のブロックから第２のブロックまでシークするための最大シーク時間を決定するステップと、
前記データ記憶装置の最小データ転送速度を決定するステップと、
前記最大入力／出力帯域幅、前記最大シーク時間、及び前記最小データ転送速度の関数として、前記最小ブロックサイズを計算するステップと、
ブロックに少なくとも前記最小ブロックサイズが割り当てられるように、前記コンピュータファイルシステムのファイルシステムフォーマットを変更するステップと、
を含むことを特徴とする方法。
【請求項２】
前記最小ブロックサイズは、前記アプリケーションと前記記憶装置間のデータ転送中にすべてのブロック間でシークが必要である場合において、前記最大入力／出力帯域幅要求が満たされるように計算されることを特徴とする請求項１に記載の方法。
【請求項３】
前記最大入力／出力帯域幅要求が、前記アプリケーションのうちの１又はそれ以上のアプリケーションに対して異なり、前記最小ブロックサイズを計算するステップがさらに、前記アプリケーションのうちの第１の組のアプリケーションに第１のブロックサイズのブロックを割り当てるステップと、第２の組のアプリケーションに第２のブロックサイズのブロックを割り当てるステップとを有することを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記ファイルシステムを用いるアプリケーションに対する、データ記憶装置アクセスに対する前記最大入力／出力帯域幅要求が、シーク動作を実行するのに必要な時間量と、最小要求データ転送速度とを含むことを特徴とする請求項１〜３のいずれか１項に記載の方法。
【請求項５】
コンピュータプロセッサにより計算される最小ブロックサイズにしたがってデータ記憶装置上のコンピュータファイルシステムを構成するための装置であって、
前記コンピュータファイルシステムを用いるアプリケーションに対する、データ記録装置アクセスに対する最大入力／出力帯域幅要求を決定する手段と、
前記データ記憶装置上で第１のブロックから第２のブロックまでシークするための最大シーク時間を決定する手段と、
前記データ記憶装置の最小データ転送速度を決定する手段と、
前記最大入力／出力帯域幅、前記最大シーク時間、及び前記最小データ転送速度の関数として、前記最小ブロックサイズを計算する手段と、
ブロックに少なくとも前記最小ブロックサイズが割り当てられるように、前記コンピュータファイルシステムのファイルシステムフォーマットを変更する手段と、
を含むことを特徴とする装置。
【請求項６】
前記最小ブロックサイズは、前記アプリケーションと前記記憶装置間のデータ転送中にすべてのブロック間でシークが必要である場合において、前記最大入力／出力帯域幅要求が満たされるように計算されることを特徴とする請求項５に記載の装置。
【請求項７】
前記最大入力／出力帯域幅要求が、前記アプリケーションのうちの１又はそれ以上のアプリケーションに対して異なり、前記最小ブロックサイズを計算するステップがさらに、前記アプリケーションのうちの第１の組のアプリケーションに第１のブロックサイズのブロックを割り当てるステップと、第２の組のアプリケーションに第２のブロックサイズのブロックを割り当てるステップとを有することを特徴とする請求項５又は６に記載の装置。
【請求項８】
前記ファイルシステムを用いるアプリケーションに対する、データ記憶装置アクセスに対する前記最大入力／出力帯域幅要求が、シーク動作を実行するのに必要な時間量と、最小要求データ転送速度とを含むことを特徴とする請求項５〜７のいずれか１項に記載の装置。
【請求項９】
コンピュータファイルシステムを用いるアプリケーションに対する、データ記録装置アクセスに対する最大入力／出力帯域幅要求を決定するステップと、
前記データ記憶装置上で第１のブロックから第２のブロックまでシークするための最大シーク時間を決定するステップと、
前記データ記憶装置の最小データ転送速度を決定するステップと、
前記最大入力／出力帯域幅、前記最大シーク時間、及び前記最小データ転送速度の関数として、前記最小ブロックサイズを計算するステップと、
ブロックに少なくとも前記最小ブロックサイズが割り当てられるように、前記コンピュータファイルシステムのファイルシステムフォーマットを変更するステップと、
を、プロセッサにより実行可能であり、かつ該プロセッサにより実行される際に、該プロセッサに、該プロセッサにより計算される最小ブロックサイズにしたがってデータ記憶装置上のコンピュータファイルシステムを構成させる命令のシーケンスを格納したコンピュータ読み取り可能な媒体。
【請求項１０】
前記最小ブロックサイズは、前記アプリケーションと前記記憶装置間のデータ転送中にすべてのブロック間でシークが必要である場合において、前記最大入力／出力帯域幅要求が満たされるように計算されることを特徴とする請求項９に記載のコンピュータ読み取り可能な媒体。
【請求項１１】
前記最大入力／出力帯域幅要求が、前記アプリケーションのうちの１又はそれ以上のアプリケーションに対して異なり、前記最小ブロックサイズを計算するステップがさらに、前記アプリケーションのうちの第１の組のアプリケーションに第１のブロックサイズのブロックを割り当てるステップと、第２の組のアプリケーションに第２のブロックサイズのブロックを割り当てるステップとを有することを特徴とする請求項９又は１０に記載のコンピュータ読み取り可能な媒体。
【請求項１２】
前記ファイルシステムを用いるアプリケーションに対する、データ記憶装置アクセスに対する前記最大入力／出力帯域幅要求が、シーク動作を実行するのに必要な時間量と、最小要求データ転送速度とを含むことを特徴とする請求項９〜１１のいずれか１項に記載のコンピュータ読み取り可能な媒体。
【外国語明細書】
2010102715.tif 000011
2010102715.tif 000012
2010102715.tif 000013
2010102715.tif 000014
2010102715.tif 000015
2010102715.tif 000016
2010102715.tif 000017
2010102715.tif 000018
2010102715.tif 000019
2010102715.tif 000020
2010102715.tif 000021
2010102715.tif 000022
2010102715.tif 000023
2010102715.tif 000024
2010102715.tif 000025
2010102715.tif 000026
2010102715.tif 000027
2010102715.tif 000028
2010102715.tif 000029
2010102715.tif 000030
2010102715.tif 000031
2010102715.tif 000032
2010102715.tif 000033