JP4907605B2 - inodeの割り当て及び割り当て解除の方法及びコンピュータプログラム - Google Patents

inodeの割り当て及び割り当て解除の方法及びコンピュータプログラム Download PDF

Info

Publication number
JP4907605B2
JP4907605B2 JP2008163998A JP2008163998A JP4907605B2 JP 4907605 B2 JP4907605 B2 JP 4907605B2 JP 2008163998 A JP2008163998 A JP 2008163998A JP 2008163998 A JP2008163998 A JP 2008163998A JP 4907605 B2 JP4907605 B2 JP 4907605B2
Authority
JP
Japan
Prior art keywords
inode
map
inodes
file system
inode table
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
JP2008163998A
Other languages
English (en)
Other versions
JP2009064417A (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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2009064417A publication Critical patent/JP2009064417A/ja
Application granted granted Critical
Publication of JP4907605B2 publication Critical patent/JP4907605B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の実施の形態は、inodeの割り当ておよび割り当て解除の方法およびコンピュータプログラムに関する。
inodeは、ファイル、ディレクトリ、又は他のファイルシステムオブジェクトについての基本的なメタデータを記憶するために、多くのファイルシステムによって利用されるデータ構造である。inodeを利用するファイルシステムの例には、数ある中でも、UNIX(登録商標)ファイルシステム(UFS)、Veritasファイルシステム(VxFS)、及びEXT2ファイルシステムが含まれる。
inodeは、ファイルシステム作成中にinodeテーブルで事前に割り当てられると共に、事前に初期化される。ファイルシステムは、ファイルシステムパーティションのサイズ及び平均ファイルサイズを考慮するアルゴリズムを使用することによって、inodeテーブルに設けられるinodeの個数を計算する。ファイルシステムは、次に、ディスク空間の連続ブロック(すなわち、inodeテーブル)の固定オフセットにinodeを記憶する。この連続ブロックは、実際のデータを記憶するのに使用されるディスク空間の部分とは異なる。UNIX(登録商標)ファイルシステムでは、inode番号をオフセットとして直接使用してinodeをフェッチすることを可能にするために、inodeはinodeテーブルに連続した順序で記憶される。すなわち、inode番号は、inodeのディスクブロックアドレス(すなわち、inodeテーブルにおけるinodeのロケーション)へ直接マッピングされる。
ファイルシステムが作成されると、inodeテーブルにおけるinodeの個数は増加させることも減少させることもできない。すなわち、inodeテーブルは固定される。ファイルシステムは多くの場合、inodeテーブルにおける利用可能なすべてのinodeを最終的には利用し得る多くの小さなファイルを記憶するようにプログラミングされたアプリケーションを含み、それによって、たとえ利用可能なディスク空間が存在しても、他のアプリケーションがさらなるファイルを記憶することを防止する。代替形態では、ファイルシステムは過剰なinodeを事前に割り当てる場合があり、その結果、ファイルシステムは、ファイルシステムの作成中に不要な処理オペレーションを実行する。これは特に、ファイルシステムが少数の大きなファイルを記憶する常駐アプリケーションを有する場合である。
本発明は、inodeの割り当ておよび割り当て解除のための方法およびプログラムなどを提供する。
本発明の一形態は、第1のinodeテーブルを含むコンピューティングファイルシステムにおいてinodeを割り当てる方法であって、前記第1のinodeテーブルのすべてのinodeが初期化済みであるか否かを判断するステップと、前記第1のinodeテーブルのすべてのinodeが初期化済みであるとの判断に応答して、追加のinodeを割り当てるさらなるinodeテーブルを作成するステップとを含む方法である。
次に、本発明をより明確に確認することができるようにするために、例として、添付図面を参照して実施形態を説明する。
コンピューティングファイルシステムでinodeの割り当て及び割り当て解除を行う方法及びコンピュータプログラムが提供される。
一実施形態では、inodeを割り当てる方法は、コンピューティングファイルシステムに設けられた第1のinodeテーブルのすべてのinodeが初期化されているか否かを判断するステップと、第1のinodeテーブルのすべてのinodeが初期化されているとの判断に応じて、追加のinodeを割り当てるさらなるinodeテーブルを作成するステップとを含む。
別の実施形態では、コンピューティングシステムのコンピュータ可読媒体上で実施されると、上述したinode割り当て方法ステップをコンピューティングシステムに実施させる少なくとも1つの命令を含むコンピュータプログラムが提供される。
別の実施形態では、少なくとも第1のinodeテーブル及びさらなるinodeテーブルを含むコンピューティングファイルシステムにおいてinodeを割り当て解除する方法であって、さらなるinodeテーブルが、初期化されたinodeを含まないかを判断するステップと、さらなるテーブルが初期化されたinodeを含まないと判断されたことに応答して、さらなるinodeテーブルを削除するステップとを含む方法が提供される。
別の実施形態では、コンピューティングシステムのコンピュータ可読媒体上で実施されると、上述したinode割り当て解除方法ステップをコンピューティングシステムに実施させる少なくとも1つの命令を含むコンピュータプログラムが提供される。
本明細書の文脈において、「inodeテーブル」という語句は、その範囲内に、任意の適したディスク空間に記憶することができ、初期化又は初期化解除(de-initialize)のいずれかを行うことができる少なくとも1つのinodeを含む任意のテーブルを含む。
また、図1に示すクライアント−サーバコンピューティングシステム100等のコンピューティングシステムも提供される。このクライアント−サーバコンピューティングシステム100は、上述した方法を実施するように構成されている。一実施形態では、クライアント−サーバコンピューティングシステム100は、インターネットの形態のネットワーク106を介してクライアント104に接続されているサーバ102を備える。クライアント104は、サーバ102と通信する標準的なハードウェア及びソフトウェアを備えるパーソナルコンピューティングデバイス104a、104bの形態を有する。クライアント104は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)のプロトコルスイートを使用してサーバ102と通信する。ストレージデバイス108もネットワーク106に接続されている。
図2を参照すると、サーバ102のハードウェア及びソフトウェアのブロック図が示されている。サーバ102は、説明する実施形態によれば、Hewlett Packard社から入手可能なHP−UX rx5670サーバの形態を有する。サーバ102は、UNIX(登録商標)スタックを有するUNIX(登録商標)オペレーティングシステムの形態のオペレーティングシステムを実行する。この実施形態では、サーバ102はUNIX(登録商標)オペレーティングシステムを実施するが、他の実施形態は、たとえばLINUXオペレーティングシステム等の異なるオペレーティングシステムを含むことができることに留意すべきである。
UNIX(登録商標)オペレーティングシステムは、Unix(登録商標)ファイルシステム(UFS)の形態のファイルシステムも含む。UFSは、シリンダグループの集まりから成り、ネットワーク106とハードディスク122との間のデータの転送を制御するソフトウェアを含む。メモリ118の一部から成るバッファキャッシュは、このデータ転送用のバッファとして使用される。また、バッファキャッシュは、頻繁に起こる待ち時間の大きなディスクI/Oを削減する目的でディスクブロックのコンテンツを保持するようにも構成されている。
サーバ102はさらに、システムバス114に結合されるクアドIntel Itanium 2プロセッサ112a、112b(米国のIntel社から入手可能、http://www.intel.com/)の形態の複数のプロセッサ112も含む。メモリコントローラ/キャッシュ116もシステムバス114に結合され、ダブルデータレートDDR SDRAMの形態を有するメモリ118をインターフェースするように構成されている。また、I/Oバス126経由でI/Oバスブリッジ124に接続されている、高速グラフィックアドレス指定をハンドリングするグラフィックスアダプタ120及びATAギガバイトハードディスク122も設けられている。メモリコントローラ116及びI/Oバスブリッジは、図2に示すように相互接続することができる。
I/Oバス126には、PCIバス130a、130b、130cを介してサーバ102に接続されるデバイスへのインターフェースを提供するPCIバスブリッジ128a、128b、128cが接続されている。モデム132及びネットワークアダプタ134は、PCIバス130aに結合されている。ネットワークアダプタ134は、サーバ102がTCP/IPプロトコルを使用してクライアント104とデータを交換することを可能にするように構成されている。当業者によって認識されるように、CD−ROM等の追加のI/Oデバイスも、I/Oバス130a、130b、130cを介してサーバ102に結合することができる。
上述したように、UFSは、サーバ102のハードディスク122を複数のシリンダグループに分割する。従来のUFSディスクレイアウトでは、各シリンダグループは、ファイルシステムスーパーブロックのバックアップコピーと、グループヘッダ(統計値、フリーリスト、及びそのシリンダグループを記述する他の情報を含む)と、一定の個数の事前に割り当てられると共に事前に初期化されているinodeを含むinodeテーブルとから成る。inodeテーブルのサイズは、ファイルシステム作成中(すなわち、コマンドmkfsがUFSオペレーティングシステムで起動された時)に、ファイルパーティションのサイズ及び平均ファイルサイズに基づいて計算される。従来のシリンダディスクレイアウトを図3に示す。
本発明の実施形態は、ファイルシステムによる要求に応じて、(通常は、別のinodeテーブル又は追加のinodeテーブルと呼ばれるブロックで)追加のinodeを割り当てる動的なinode割り当て方法を利用する。追加のinodeは、初期ファイルシステム作成後に割り当てることができるので、最初に割り当てられるinodeの個数は、従来のファイルシステムによって必要とされるものよりも大幅に少なくすることができる。この方法論は、ファイルシステムが、現在割り当てられているinodeの個数をもはや必要としない場合に、inodeを割り当て解除することもできる。
次に、図4のフロー図を参照して、第1のinodeテーブルを含むコンピューティングファイルシステムのinode割り当て方法を本発明の一実施形態に従って説明する。説明する実施形態では、第1のinodeテーブルはファイルシステムを作成する時に作成され、第1のinodeテーブルのinodeは常駐アプリケーションによる要求に応じて初期化される。ステップ402において、第1のinodeテーブルのすべてのinodeが初期化済みであるか否かについての判断が行われる。ステップ404において、ファイルシステムによって必要とされるinodeの個数が第1のinodeテーブルの容量を超えている(すなわち、第1のinodeテーブルのすべてのinodeが初期化済みである)と判断された場合には、追加のinodeを割り当てるさらなるinodeテーブルが作成される。後続の段落でより詳細に説明するように、利用可能なディスク空間の量にのみ応じて、任意の個数のさらなるinodeテーブル/追加のinodeテーブルをこの方法で作成でき、任意の適したディスクロケーションに記憶することができることが容易に理解されよう。
常駐アプリケーションが所望のinodeを突き止めることを可能にするために、ステップ406において、inodeマップの形態のデータ構造(以下、「alloc_map」と呼ぶ)が作成される。alloc_mapは、実質的には、連続したinodeテーブル(以下、「inode_chunk(inodeチャンク)」)を指し示すディスクブロックアドレスのアレイである。図6は、alloc_mapの一般的な構造を示している。図示するように、alloc_mapのn番目のエントリーは、(n×inodechunksize)〜(((n+1)×inodechunksize)−1)の番号が付けられたinodeを含むinode_chunkを指し示す。一方、マップを1つだけ使用すると、inodeは(allocmapsize)×(inodechunksize)に制限される。したがって、必要な場合に、割り当てられたすべてのinodeを参照するために、さらなるalloc_mapを作成することができる。拡張されたallloc_map又はinode_chunkに必要なディスク空間は、ファイルシステムによって事前に確保しておく必要はない。
図5は、上述した方法をより詳細に示している。簡単にするために、図5を参照して説明する方法論は、各alloc_mapが4つのinode_chunkのディスクアドレスを指し示すように構成されることを提供する。ファイルシステムの作成中に、第1のalloc_map502及び第1のinode_chunk504のみが割り当てられる。図示するように、alloc_map502の最初のエントリーは第1のinode_chunk504を指し示す。inodeの個数が、第1のinode_chunk504の容量を超えると、さらなるinode_chunk506が割り当てられる。同様に、alloc_map502の容量を超えると(ここでは、さらなるinode_chunk510が割り当てられると)、新しいalloc_map508が割り当てられ、前のalloc_map502にリンクされる。
上記で概説した方法論を使用してinodeを取り出すのに使用することができる擬似コンピュータプログラマブルコードの一例を以下に提供する。
IGET (inode_number) :inodeを返す
{
inode_chunk_number = inode_number / chunksize
alloc_map_number = inode_chunk_number / allocmapsize

if (alloc_map_numberに対応するalloc_mapが存在しない)
{
*サイズallocmapsizeの新しいalloc_mapを割り当てる
*alloc_mapのエントリーを適切に初期化する
*このalloc_mapを前のalloc_map及び次のalloc_mapにリンクする
}

if (inode_chunk_numberに対応するinode_chunkが存在しない)
{
*サイズchunksizeのinode_chunkを割り当てる
*alloc_mapの(inode_chunk_number % allocmapsize)番目のエントリーを、このinode_chunkの開始アドレスに初期化する
}

*オフセット(inode_chunk_number % allocmapsize)におけるalloc_mapからinode_chunkの開始アドレスを得る
*オフセット(inode_number % chunksize)におけるinode_chunkから、必要とされるinodeをフェッチし、このinodeを返す
}
以下の式1は、上述した方法を使用してinodeをフェッチするための全時間を求めるのに使用される。示すように、このデータは、その後、最も適切なinode_chunk及びalloc_mapサイズを確立するためにファイルシステムにより利用することができる。
T=Tca+Tci+Tsa+Taa+Tia+Tsic+Tai+Tii+Tsi
(式1)
式中、
Tca=alloc_map数を計算するための時間
Tci=inode_chunk数を計算するための時間
Tsa=必要とされるalloc_mapを検索してフェッチするための時間
Taa=新しいalloc_mapを割り当てるための時間
Tia=alloc_mapを初期化するための時間
Tsic=必要とされるinode_mapを検索してフェッチするための時間
Tai=新しいinode_chunkを割り当てるための時間
Tii=inode_chunkを初期化するための時間
Tsi=inode_chunkから、必要とされるinodeを検索してフェッチするための時間
式1において、Tca及びTciは共に一定時間であり(すなわち、ディスクアクセスを必要としない)、したがって、Kca及びKciによってそれぞれ表すことができる。また、(alloc_map及びinode_chunkについての)新しいディスクブロックの割り当て及び初期化は、スーパーブロックを更新するためにそれぞれ1回しかディスクアクセスを必要としない(これは、スーパーブロックの「インメモリ」コピーのみを変更することによって回避することもできる)。したがって、これらの時間(すなわち、Taa、Tia、Tai、及びTii)は、定数Kaa、Kia、Kai、及びKiiによってそれぞれ表すことができる。alloc_mapを検索するステップはalloc_mapの個数に正比例する。nをファイルシステムにおけるalloc_mapの個数とすると、alloc_mapを検索するプロセスはn回のディスクアクセスを必要とする。すなわち、Tsa=n×Ksaである。ここで、Ksaは、1つのalloc_mapをフェッチするのに必要な時間を表す定数である。次に、Tsic及びTsiも(アルゴリズムで示されるように)一定時間のオペレーションである。これらをKsic及びKsiによってそれぞれ表すものとする。
したがって、アルゴリズムによって必要とされる全時間は、
T=(Tca+Tci)+(Tsic+Tsi)+(Taa+Tia+Tai+Tii)+Tsa
=K+n×Ksa(簡単にするためにすべての定数の合計をKによって置き換える)
となる。
したがって、このアルゴリズムの時間計算量は、
O(T)=O(K)+O(n×Ksa)
近似値=O(n) (K及びKsaは定数であるので)
となる。
すなわち、本明細書で説明したアルゴリズムの性能オーバーヘッドは、alloc_mapの個数に関する一次方程式である。性能は、nの値が非常に大きい場合(>100)には劣化する可能性があるが、alloc_map及びinode_chunkの双方のサイズ(ファイルシステムの作成時に設定される)は、アルゴリズムの性能に対する影響を回避するために、ファイルシステムサイズの関数として計算される。一般に、alloc_mapの個数(n)は、4を超える必要はない。
たとえば、1テラバイトのサイズのファイルシステムを考え、alloc_mapのサイズを1メガバイトと考え、inode_chunkのサイズを512キロバイトと考える。8バイトのアドレスを仮定すると、単一のalloc_mapは、217個のinode_chunkのアドレスを保持することができる。たとえinode_chunkが、512個のinodeしか保持することができなくても、(217)×(2)=(226)個のinodeをハンドリングするのに、単一のalloc_mapで十分である。したがって、4つのalloc_map(228)を使用することによって、268435456個のinodeが提供される。これは、ほとんどの実際のシナリオにとって十分な大きさである。
本明細書で説明した実施形態は、inodeテーブルの割り当ての方法を説明しているが、この方法は、複数のinodeテーブル(すなわち、第1のinodeテーブル及びさらなるinodeテーブル又は追加のinodeテーブル)を含むコンピューティングファイルシステムにおいて、inode及びinodeテーブルの割り当て解除(又は削除)も同様にすることができることに留意されたい。ファイルシステムのファイルが削除されると、対応するinodeはinode初期化解除コードによって初期化解除され、それによって、別のファイルがそのinodeを使用することが可能になる。初期化解除されているinodeが関連付けられたinodeテーブルに残っている最後のinodeであるとinode初期化解除コードが判断した場合には、そのコードパスは、inodeテーブル全体を割り当て解除(すなわち、削除)し、それに従って、関連付けられたinodeマップを更新する。
割り当て方法及び割り当て解除方法の実施形態は、コンピューティングシステムのコンピュータ可読媒体上で実施されると上述した方法ステップをコンピューティングシステムに実施させる命令を含むコンピュータプログラム(ハードウェア、ソフトウェア、又はこの2つの組み合わせのいずれかによる)によって実施することができる。
必須ではないが、このコンピュータプログラムは、開発者による使用のために、アプリケーションプログラミングインターフェース(API)を介して実施される場合があり、別のソフトウェアアプリケーション内のコードで実施することができる。一般に、ソフトウェアアプリケーションは、特定の機能を実行するか又は特定の機能の実行を助けるルーチン、プログラム、オブジェクト、コンポーネント、及びデータファイルを含むので、ソフトウェアアプリケーションを、複数のルーチン、オブジェクト、及びコンポーネントにわたって分散させることができるが、実施形態及び本明細書で権利を主張するより広い発明と同じ機能を達成することができることが理解されよう。このような変形及び変更は、当業者の理解の範囲内にあるであろう。
サーバに設けられたハードウェアは実施態様に応じて変化し得ることが、当業者には認識されよう。図1及び図2に示すハードウェアに加えて又はこれに代えて、他の内部ハードウェアも使用することができる。たとえば、追加のメモリコントローラ、ハードディスク、テープストレージデバイス等を含むことができる。
さらに、当業者には、スタンドアロンコンピューティングデバイス又は分散ネットワーク接続構成でも本発明を実施することができることが理解されよう。たとえば、本発明は、クライアントコンピューティングデバイス、サーバコンピューティングデバイス、パーソナルコンピューティングデバイス等で、単独又は組み合わせで実施することができる。
例示的な実施形態の上記説明は、どの当業者も本発明の製作又は使用することができるように提供されている。本発明は、特定の図示した実施形態に関して説明されてきたが、これらの実施形態に対するさまざまな変形は、当業者には容易に明らかであり、本明細書で定義される包括的な原理は、本発明の趣旨又は範囲から逸脱することなく他の実施形態にも適用することができる。したがって、本実施形態は、すべての点で、制限ではなく例示とみなされることが望まれている。したがって、本発明は、上述した実施形態に限定されるように意図されておらず、本明細書で開示した原理及び新規な機能と一致するより広い範囲を与えられている。
本発明の一実施形態によるコンピューティングシステムの概略図である。 本発明の実施形態を実施することができるサーバのブロック図である。 第1のシリンダグループの従来のUNIX(登録商標)ファイルシステムのディスクレイアウトを示すブロック図である。 本発明の一実施形態による、inodeを割り当てる方法を示すフロー図である。 本発明の一実施形態による、図2に示すサーバのハードディスクにおけるinodeの割り当てを示すブロック図である。 本発明によるinodeマップの概略図である。
符号の説明
100・・・クライアント−サーバコンピューティングシステム
102・・・サーバ
104・・・クライアント
104a、104b・・・パーソナルコンピューティングデバイス
106・・・ネットワーク
108・・・ストレージデバイス
112a、112b・・・プロセッサ
114・・・システムバス
116・・・メモリコントローラ/キャッシュ
118・・・メモリ
120・・・グラフィックスアダプタ
122・・・ディスク
124・・・I/Oブリッジ
126・・・I/Oバス
128a〜128c・・・PCIバスブリッジ
130a〜130c・・・PCIバス
132・・・モデム
134・・・ネットワークアダプタ
502、508・・・alloc_map
504、506、510・・・inode_chunk

Claims (14)

  1. 予め定められた数のinodeを格納しうる第1のinodeテーブルを含むコンピューティングファイルシステムにおいてinodeを割り当てる方法であって、
    前記コンピューティングファイルシステムのコンピュータに、
    前記第1のinodeテーブルに、前記予め定められた数のinodeが格納されているか否かを判断するステップと、
    前記コンピューティングファイルシステムにおいて、新たなinodeを割り当てる場合に、前記判断するステップにより、前記第1のinodeテーブルに、前記予め定められた数のinodeが格納されていると判断されたときは、前記コンピューティングファイルシステムにおいて、第2のinodeテーブルを作成するステップと、
    前記第1のinodeテーブルのディスクブロックアドレスの一覧を含む第1のinodeマップ、および、前記第2のinodeテーブルのディスクブロックアドレスの一覧を含む第2のinodeマップを作成するステップと
    を実行させ、
    前記第1のinodeマップは、前記第2のinodeマップの位置情報を含む
    方法。
  2. 前記第2のinodeテーブルに、予め定められた数のinodeが格納されている場合に、少なくとも1つの第3のinodeテーブルを作成するステップと、
    前記第3のinodeテーブルのディスクブロックアドレスの一覧を含む第3のinodeマップを作成するステップと
    を前記コンピュータにさらに実行させ、
    前記第2のinodeマップは、前記第3のinodeマップの位置情報をさらに含む
    請求項1に記載の方法。
  3. 各前記inodeテーブルに格納されうるinodeの数は、ディスク空間の総量と、各前記inodeマップで参照されるinodeテーブルアドレスの個数との関数である
    請求項2に記載の方法。
  4. ファイルシステムの作成中に、前記inodeの数を求めるステップ
    を前記コンピュータにさらに実行させる請求項3に記載の方法。
  5. 予め定められた数のinodeをそれぞれ格納しうる少なくとも第1のinodeテーブルと、第2のinodeテーブルとを含むコンピューティングファイルシステムにおいてinodeを割り当て解除する方法であって、
    前記コンピューティングファイルシステムのコンピュータに、
    前記第2のinodeテーブルに、inodeが格納されているか否かを判断するステップと、
    前記判断するステップにより、前記第2のinodeテーブルにinodeが格納されていると判断された場合以外は、前記第2のinodeテーブルを削除するステップと
    前記第2のinodeテーブルを削除した場合に、前記第1のinodeテーブルのディスクブロックアドレスの一覧を少なくとも含む第1のinodeマップから、前記第2のinodeテーブルのディスクブロックアドレスの一覧を少なくとも含む第2のinodeマップの位置情報を削除するステップと
    を実行させる方法。
  6. 前記第2のinodeテーブルを削除した場合に、前記第2のinodeテーブルに対応する前記第2のinodeマップを削除するステップ
    を前記コンピュータにさらに実行させる請求項に記載の方法。
  7. 予め定められた数のinodeを格納しうる第1のinodeテーブルを含むコンピューティングファイルシステムにおいてinodeを割り当てるコンピュータプログラムであって、
    前記コンピューティングファイルシステムのコンピュータに、
    前記第1のinodeテーブルに、前記予め定められた数のinodeが格納されているか否かを判断するステップと、
    前記コンピューティングファイルシステムにおいて、新たなinodeを割り当てる場合に、前記判断するステップにより、前記第1のinodeテーブルに、前記予め定められた数のinodeが格納されていると判断されたときは、前記コンピューティングファイルシステムにおいて、第2のinodeテーブルを作成するステップと、
    前記第1のinodeテーブルのディスクブロックアドレスの一覧を含む第1のinodeマップ、および、前記第2のinodeテーブルのディスクブロックアドレスの一覧を含む第2のinodeマップを作成するステップと
    を実行させ、
    前記第1のinodeマップは、前記第2のinodeマップの位置情報を含む
    コンピュータプログラム。
  8. 前記第2のinodeテーブルに、予め定められた数のinodeが格納されている場合に、少なくとも1つの第3のinodeテーブルを作成するステップと、
    前記第3のinodeテーブルのディスクブロックアドレスの一覧を含む第3のinodeマップを作成するステップと
    を前記コンピュータにさらに実行させ、
    前記第2のinodeマップは、前記第3のinodeマップの位置情報をさらに含む
    請求項に記載のコンピュータプログラム。
  9. 各前記inodeテーブルに格納されうるinodeの数は、ディスク空間の総量と、各前記inodeマップで参照されるinodeテーブルアドレスの個数との関数である
    請求項に記載のコンピュータプログラム。
  10. ファイルシステムの作成中に、前記inodeの数を求めるステップ
    を前記コンピュータにさらに実行させる
    請求項に記載のコンピュータプログラム。
  11. 予め定められた数のinodeをそれぞれ格納しうる少なくとも第1のinodeテーブルと、第2のinodeテーブルとを含むコンピューティングファイルシステムにおいてinodeを割り当て解除するコンピュータプログラムであって、
    前記コンピューティングファイルシステムのコンピュータに、
    前記第2のinodeテーブルに、inodeが格納されているか否かを判断するステップと、
    前記判断するステップにより、前記第2のinodeテーブルにinodeが格納されている場合以外は、前記第2のinodeテーブルを削除するステップと
    前記第2のinodeテーブルを削除した場合に、前記第1のinodeテーブルのディスクブロックアドレスの一覧を少なくとも含む第1のinodeマップから、前記第2のinodeテーブルのディスクブロックアドレスの一覧を少なくとも含む第2のinodeマップの位置情報を削除するステップと
    を実行させるコンピュータプログラム。
  12. 前記第2のinodeテーブルを削除した場合に、前記第2のinodeテーブルに対応する前記第2のinodeマップを削除するステップ
    を前記コンピュータにさらに実行させる請求項11に記載のコンピュータプログラム。
  13. 請求項に記載のコンピュータプログラムを記憶したコンピュータ可読媒体。
  14. 請求項11に記載のコンピュータプログラムを記憶したコンピュータ可読媒体。
JP2008163998A 2007-06-25 2008-06-24 inodeの割り当て及び割り当て解除の方法及びコンピュータプログラム Expired - Fee Related JP4907605B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN1352CH2007 2007-06-25
IN1352/CHE/2007 2007-06-25

Publications (2)

Publication Number Publication Date
JP2009064417A JP2009064417A (ja) 2009-03-26
JP4907605B2 true JP4907605B2 (ja) 2012-04-04

Family

ID=40137611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008163998A Expired - Fee Related JP4907605B2 (ja) 2007-06-25 2008-06-24 inodeの割り当て及び割り当て解除の方法及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US20080320052A1 (ja)
JP (1) JP4907605B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190655B2 (en) * 2009-07-02 2012-05-29 Quantum Corporation Method for reliable and efficient filesystem metadata conversion
US8433694B1 (en) 2011-01-31 2013-04-30 Symantec Corporation File cache optimization using element de-prioritization
US8510510B1 (en) 2011-01-31 2013-08-13 Symantec Corporation File cache optimization using element prioritization
US9495377B2 (en) 2012-09-12 2016-11-15 International Business Machines Corporation Secure deletion operations in a wide area network
US10127236B1 (en) * 2013-06-27 2018-11-13 EMC IP Holding Company Filesystem storing file data in larger units than used for metadata
US9323763B2 (en) 2013-10-25 2016-04-26 International Business Machines Corporation Managing filesystem inodes
US9594763B2 (en) * 2014-04-28 2017-03-14 Quantum Corporation N-way Inode translation
KR102342564B1 (ko) 2015-03-03 2021-12-24 한국전자통신연구원 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법
CN105224607B (zh) * 2015-09-06 2019-05-24 浪潮(北京)电子信息产业有限公司 一种模拟云存储设备的虚拟文件系统设计方法
US10942663B2 (en) * 2019-01-29 2021-03-09 EMC IP Holding Company LLC Inlining data in inodes
CN114327290B (zh) * 2021-12-31 2022-12-02 科东(广州)软件科技有限公司 一种磁盘分区的结构、格式化方法和访问方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4887204A (en) * 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5175852A (en) * 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure lock
US4897781A (en) * 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US5151989A (en) * 1987-02-13 1992-09-29 International Business Machines Corporation Directory cache management in a distributed data processing system
EP0681721B1 (en) * 1993-02-01 2005-03-23 Sun Microsystems, Inc. Archiving file system for data servers in a distributed network environment
EP1003103B1 (en) * 1993-06-03 2008-10-01 Network Appliance, Inc. Write anywhere file-system layout method and apparatus
US5713008A (en) * 1995-06-08 1998-01-27 Sun Microsystems Determination of working sets by logging and simulating filesystem operations
US5771379A (en) * 1995-11-01 1998-06-23 International Business Machines Corporation File system and method for file system object customization which automatically invokes procedures in response to accessing an inode
US5956507A (en) * 1996-05-14 1999-09-21 Shearer, Jr.; Bennie L. Dynamic alteration of operating system kernel resource tables
US5875444A (en) * 1996-12-10 1999-02-23 International Business Machines Corporation Computer file system check and repair utility
US6654772B1 (en) * 1999-04-28 2003-11-25 Emc Corporation Multi-volume extent based file system
US6556998B1 (en) * 2000-05-04 2003-04-29 Matsushita Electric Industrial Co., Ltd. Real-time distributed file system
US6530038B1 (en) * 1999-09-16 2003-03-04 International Business Machines Corporation Streamlined initialization and refresh of file system directory limits
US6782389B1 (en) * 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
US6868417B2 (en) * 2000-12-18 2005-03-15 Spinnaker Networks, Inc. Mechanism for handling file level and block level remote file accesses using the same server
US6643654B1 (en) * 2001-06-25 2003-11-04 Network Appliance, Inc. System and method for representing named data streams within an on-disk structure of a file system
US7225204B2 (en) * 2002-03-19 2007-05-29 Network Appliance, Inc. System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping
US7313720B1 (en) * 2004-02-12 2007-12-25 Network Appliance, Inc. Technique for increasing the number of persistent consistency point images in a file system
US7293154B1 (en) * 2004-11-18 2007-11-06 Symantec Operating Corporation System and method for optimizing storage operations by operating only on mapped blocks
US20060206484A1 (en) * 2005-03-14 2006-09-14 Hitachi, Ltd. Method for preserving consistency between worm file attributes and information in management servers
US7865462B2 (en) * 2006-01-03 2011-01-04 Hitachi, Ltd. Apparatus and method for replicating data in file system
US7769719B2 (en) * 2006-01-05 2010-08-03 International Business Machines Corporation File system dump/restore by node numbering
US7930508B2 (en) * 2006-03-07 2011-04-19 Apple Inc. File systems for data processing systems
US8260831B2 (en) * 2006-03-31 2012-09-04 Netapp, Inc. System and method for implementing a flexible storage manager with threshold control
US7945726B2 (en) * 2006-05-08 2011-05-17 Emc Corporation Pre-allocation and hierarchical mapping of data blocks distributed from a first processor to a second processor for use in a file system
US20080183988A1 (en) * 2007-01-30 2008-07-31 Yanling Qi Application Integrated Storage System Volume Copy and Remote Volume Mirror

Also Published As

Publication number Publication date
JP2009064417A (ja) 2009-03-26
US20080320052A1 (en) 2008-12-25

Similar Documents

Publication Publication Date Title
JP4907605B2 (ja) inodeの割り当て及び割り当て解除の方法及びコンピュータプログラム
US8285967B1 (en) Method for on-demand block map generation for direct mapped LUN
US10175894B1 (en) Method for populating a cache index on a deduplicated storage system
US9697219B1 (en) Managing log transactions in storage systems
US7035881B2 (en) Organization of read-write snapshot copies in a data storage system
US9779023B1 (en) Storing inline-compressed data in segments of contiguous physical blocks
US9727452B2 (en) Distributing metadata across multiple different disruption regions within an asymmetric memory system
US7206915B2 (en) Virtual space manager for computer having a physical address extension feature
US6401181B1 (en) Dynamic allocation of physical memory space
JP4176857B2 (ja) リファレンスされたオブジェクトを管理するための3状態リファレンスの使用
US5899994A (en) Flexible translation storage buffers for virtual address translation
US10248623B1 (en) Data deduplication techniques
CN107402889B (zh) 检索数据方法、存储数据方法和重复数据删除模块
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US20030149836A1 (en) Storage device and method for data sharing
US6002866A (en) Partitioning within a partition in a disk file storage system
US20100287356A1 (en) Large memory pages for shared libraries
JP2008052730A (ja) 可変の論理ストレージブロックサイズを有するファイルシステム
GB2265734A (en) Free memory cell management system
US20070156763A1 (en) Storage management system and method thereof
US10678704B2 (en) Method and apparatus for enabling larger memory capacity than physical memory size
US7152069B1 (en) Zero copy writes through use of mbufs
US20220035546A1 (en) Base and compressed difference data deduplication
US8904128B2 (en) Processing a request to restore deduplicated data
US7177980B2 (en) Cache storage system and method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110617

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110914

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111216

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: 20120111

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

LAPS Cancellation because of no payment of annual fees
R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350