【手続補正書】
【提出日】平成25年6月25日(2013.6.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つ又は複数のコンピュータストレージデバイスでのファイルの命名及び記憶のためのコンピュータファイルシステムであって、前記システムは、
オブジェクトストアにアクセスする名前空間ファイルシステムを含み、前記システムは、メモリと、該メモリと通信するハードウェアプロセッサとを含み、該プロセッサは、オブジェクトフィンガープリントを用いて前記オブジェクトストアにアクセスするためにプログラム命令を実行し、前記オブジェクトストアはファイル、データ及びメタデータをオブジェクトとして保持し、各オブジェクトは、該オブジェクトのコンテンツから導出され、前記オブジェクトストアにアクセスするために用いられるグローバルに一意なオブジェクトフィンガープリントを有し、
各ファイルのオブジェクトは、該ファイルの前記データのオブジェクト又はメタデータのオブジェクトに対するオブジェクトフィンガープリントのマッピングを含み、前記ファイルのオブジェクトは、該ファイル内の前記オブジェクトの前記フィンガープリントから導出された前記ファイルのオブジェクト自体のオブジェクトフィンガープリントを有し、前記オブジェクトストアは、更に、
ファイルシステムのｉノード番号とオブジェクトフィンガープリントとのマッピングを含むｉノードマップのオブジェクトであって、該オブジェクトフィンガープリントは、前記ｉノード番号を一定とすることを可能にしつつ、前記ファイルのコンテンツに変更が生じると変更される、ｉノードマップのオブジェクトと、
各々がｉノード番号とファイル名とのマッピングを含む複数のディレクトリのオブジェクトと、
を含み、前記ｉノードマップのオブジェクトとディレクトリのオブジェクトとの各々は、それぞれのオブジェクトのコンテンツから導出した自分自身のオブジェクトフィンガープリントを有することを特徴とするコンピュータファイルシステム。
【請求項２】
請求項１に記載のファイルシステムであって、オブジェクト参照は、前記オブジェクトフィンガープリントによってマッピングされることを特徴とするファイルシステム。
【請求項３】
請求項１又は２に記載のファイルシステムであって、前記ファイルのオブジェクトのマッピングは、線形リスト、ツリー構造又は間接指定テーブルを含むことを特徴とするファイルシステム。
【請求項４】
請求項１から３の何れか一項に記載のファイルシステムであって、前記ファイルのオブジェクトはルートオブジェクトを含み、前記ルートオブジェクトは、前記ファイルシステム内の前記オブジェクトの全てから導出された該ルートオブジェクト自体のオブジェクトフィンガープリントを有し、それにより、前記ファイルシステム内のあらゆるオブジェクトは前記ルートオブジェクトを通じてアクセス可能であることを特徴とするファイルシステム。
【請求項５】
請求項１から４の何れか一項に記載のファイルシステムであって、前記名前空間ファイルシステムは、仮想ファイルシステム層とブロックストレージ抽象化層の間の、ストレージスタックにおける層として提供されることを特徴とするファイルシステム。
【請求項６】
請求項２から５の何れか一項に記載のファイルシステムであって、オブジェクトフィンガープリント、オブジェクト位置及びオブジェクト参照カウントのインデックスを含む前記オブジェクトストアを更に含むファイルシステム。
【請求項７】
請求項６に記載のファイルシステムであって、前記オブジェクトストアのインデックスは、不揮発性メモリに記憶されたことを特徴とするファイルシステム。
【請求項８】
請求項１から７の何れか一項に記載のファイルシステムであって、前記フィンガープリントは、前記オブジェクトのコンテンツの暗号ハッシュダイジェストであることを特徴とするファイルシステム。
【請求項９】
請求項１から８の何れか一項に記載のファイルシステムであって、前記オブジェクトのサイズは可変であることを特徴とするファイルシステム。
【請求項１０】
請求項１から９の何れか一項に記載のファイルシステムであって、前記ファイルシステムはＰＯＳＩＸ規格準拠ファイルシステムであることを特徴とするファイルシステム。
【請求項１１】
請求項１から１０の何れか一項に記載のファイルシステムであって、前記オブジェクトストアは、更に、
各オブジェクトに対する参照カウントを含む位置インデックスを含み、概参照カウントは前記オブジェクトが参照される回数を示すことを特徴とするファイルシステム。
【請求項１２】
請求項１１に記載のファイルシステムであって、
読出し、書込み、削除及び参照カウント更新を含むオブジェクトアクティビティのトランザクションログ
を含むファイルシステム。
【請求項１３】
請求項４から１２の何れか一項に記載のファイルシステムであって、ファイルシステムの何れかのオブジェクトのコンテンツの変更は前記ルートオブジェクトの変更を生じ、前記ルートオブジェクトにおける変更を追跡することは、ファイルシステムアクティビティの履歴を提供することを特徴とするファイルシステム。
【請求項１４】
請求項１から１３の何れか一項に記載のファイルシステムであって、
前記オブジェクトの生成及び記憶の１つ又は複数を実施するためのハードウェアアクセラレータ
を含むファイルシステム。
【請求項１５】
請求項１から１４の何れか一項に記載のファイルシステムであって、
スタック
を含み、前記オブジェクトストアは前記スタックの下部を構成し、前記ファイルシステムは前記スタックの上部を構成することを特徴とするファイルシステム。
【請求項１６】
請求項７から１５の何れか一項に記載のファイルシステムであって、前記不揮発性メモリはソリッドステートディスクを含むことを特徴とするファイルシステム。
【請求項１７】
請求項１６に記載のファイルシステムであって、前記メモリはフラッシュメモリを含むことを特徴とするファイルシステム。
【請求項１８】
請求項１から１７の何れか一項に記載のファイルシステムであって、前記名前空間ファイルシステム及び前記オブジェクトストアは、デジタル電子回路、コンピュータハードウェア、ファームウェア、非一時的マシン読み取り可能ストレージデバイス内のコンピュータプログラム又はそれらの組み合わせのうちの１つ又は複数において実装されたことを特徴とするファイルシステム。
【請求項１９】
名前空間ファイルシステムによりオブジェクトストアにアクセスするステップであって、該オブジェクトストアは、ファイル、データ又はメタデータをオブジェクトとして保持し、各オブジェクトは、グローバルに一意であり、該オブジェクトのコンテンツから導出され、前記オブジェクトストアにアクセスするために用いられるオブジェクトフィンガープリントを有し、各ファイルのオブジェクトは、オブジェクトフィンガープリントの、該ファイルの前記データのオブジェクト又はメタデータのオブジェクトに対するマッピングを含み、前記ファイルのオブジェクトは、該ファイル内の前記オブジェクトの前記フィンガープリントから導出された該ファイルのオブジェクト自体のオブジェクトフィンガープリントを有する、ステップと、
ファイルシステムのｉノード番号とオブジェクトフィンガープリントとのマッピングを含むｉノードマップのオブジェクトを前記オブジェクトストアに維持するステップであって、該オブジェクトフィンガープリントは、前記ｉノード番号を一定とすることを可能にしつつ、前記ファイルのコンテンツに変更が生じると変更される、ステップと、
前記オブジェクトストアにおいてディレクトリのオブジェクトを維持するステップであって、各ディレクトリのオブジェクトはｉノード番号とファイル名とのマッピングを含む、ステップと
を含み、前記ｉノードマップのオブジェクト及びディレクトリのオブジェクトの各々は、それぞれの前記オブジェクトのコンテンツから導出した自分自身のオブジェクトフィンガープリントを有することを特徴とする方法。
【請求項２０】
請求項１９に記載の方法であって、オブジェクトフィンガープリントと前記オブジェクトの物理的位置とをマッピングするための位置インデックスを維持するステップを含む方法。
【請求項２１】
請求項２０に記載の方法であって、前記位置インデックスは、前記オブジェクトに対する参照カウントを含むことを特徴とする方法。
【請求項２２】
請求項２１に記載の方法であって、前記フィンガープリント、位置インデックス、ｉノードマップのオブジェクト、ファイルのオブジェクト及びディレクトリのオブジェクトは、ファイルシステムを構成することを特徴とする方法。
【請求項２３】
請求項１９から２２の何れか一項に記載の方法であって、
前記ファイルシステムのスナップショットを前記ｉノードマップのオブジェクトの前記フィンガープリントから生成するステップ
を含む方法。
【請求項２４】
請求項１９から２３の何れか一項に記載の方法であって、
前記ｉノードマップのフィンガープリントを別のオブジェクトストアに発行するステップ
を含む方法。
【請求項２５】
請求項１９から２４の何れか一項に記載の方法であって、
前記ｉノードマップのフィンガープリントを前記ファイルシステムのスナップショットとして用いて障害回復を行うステップ
を含む方法。
【請求項２６】
請求項１９から２５の何れか一項に記載の方法であって、前記ｉノードマップのオブジェクトは以前のｉノードマップのフィンガープリントを含むことを特徴とする方法。
【請求項２７】
請求項２６に記載の方法であって、前記以前のｉノードマップのフィンガープリントは、前記ファイルシステムのスナップショットの履歴を構成することを特徴とする方法。
【請求項２８】
請求項１９から２７の何れか一項に記載の方法であって、
前記オブジェクトストアにおいてオブジェクト名と物理的オブジェクト位置との位置インデックスを維持するステップ
を含む方法。
【請求項２９】
請求項２１から２８の何れか一項に記載の方法であって、
前記ファイルシステムに対する変更の際に、前記ｉノードマップのオブジェクトの下のあらゆるオブジェクトの前記参照カウントを調節するステップ
を含む方法。
【請求項３０】
請求項２９記載の方法であって、調節する前記ステップは、あらゆる入力／出力トランザクションに関して行われて、継続的データ保護が提供されることを特徴とする方法。
【請求項３１】
請求項２９に記載の方法であって、調節する前記ステップは、周期的に、オンデマンドで、又は、特定のイベントにおいて行われて、スナップショットが生成されることを特徴とする方法。
【請求項３２】
請求項１９から３１の何れか一項に記載の方法であって、前記ファイルのオブジェクトのマッピングは、前記ファイルの前記コンテンツへのオフセットによってインデックス付けされ、線形リスト、ツリー構造又は間接指定テーブルを含むことを特徴とする方法。
【請求項３３】
請求項２１から３２の何れか一項に記載の方法であって、読出し、書込み、削除及び参照カウント更新を含む全てのオブジェクトアクティビティのトランザクションログを生成するステップ
を含む方法。
【請求項３４】
請求項１９から３３の何れか一項に記載の方法であって、
前記ファイルのオブジェクトを追加、修正又は削除し、ファイルの新しいオブジェクトフィンガープリントを生成するステップ
を含む方法。
【請求項３５】
請求項３４に記載の方法であって、
ハードウェアアクセラレーションを利用してオブジェクトの生成、圧縮及び暗号化のうちの１つ又は複数を行うステップ
を含む方法。
【請求項３６】
プロセッサに、請求項１９から３５の何れか一項に記載の方法の前記ステップを実行させるプログラムコードを含む、非一時的マシン読み取り可能ストレージデバイスに記憶されたコンピュータプログラム。