【手続補正書】
【提出日】平成26年11月19日(2014.11.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ファイルストレージシステムにおいてファイルシステムオブジェクトをクローニングすることをコンピュータに実行させるためのコンピュータプログラムであって、
前記ファイルシステムオブジェクトは、ルートノードと、間接ノードと、少なくとも１つのデータブロックと、前記ファイルシステムオブジェクトの前記ルートノードに記憶されるポインタセットを含んでおり、
前記ファイルシステムオブジェクトの前記ルートノードの前記ポインタセットは、前記少なくとも１つのデータブロックを、前記ファイルシステムオブジェクトの前記ルートノードの前記ポインタセットにより参照された前記間接ノードを介して参照し、
前記コンピュータプログラムは、
前記ファイルストレージシステムにおいてスナップショットオブジェクトを作成し、前記スナップショットオブジェクトに前記ファイルシステムオブジェクトの前記ポインタセットのコピーを記憶することと、
前記ファイルストレージシステムにおいて書込み可能なクローンオブジェクトを作成し、前記クローンオブジェクトに前記ファイルシステムオブジェクトの前記ポインタセットのコピーを記憶すること
とをコンピュータに実行させ、
各スナップショットオブジェクトと前記クローンオブジェクトが前記ファイルシステムオブジェクトの前記ルートノードの前記ポインタのセットがコピーされる、それぞれのルートノードを含み、
前記ファイルシステムオブジェクトの前記ルートノードの前記ポインタセット、前記スナップショットオブジェクトの前記ルートノードの前記ポインタセット、及び、前記クローンオブジェクトの前記ルートノードの前記ポインタセットが、同じ間接ノードを参照することで、前記スナップショットオブジェクト及び前記クローンオブジェクトが、前記参照された間接ノードと前記少なくとも１つの参照されたデータブロックを前記ファイルシステムオブジェクトと共有し、
前記ファイルシステムオブジェクト及び前記クローンオブジェクトが、前記スナップショットオブジェクトの書込み可能なバージョンになり、前記スナップショットオブジェクトによって表される前記オブジェクトのコピーからの変化を記憶する
コンピュータプログラム。
【請求項２】
メタデータが前記ファイルシステムオブジェクトと前記クローンオブジェクトにおいて維持され、前記スナップショットオブジェクトが前記ファイルシステムオブジェクト及び前記クローンオブジェクトに関連し、前記ファイルシステムオブジェクト及び前記クローンオブジェクトが前記スナップショットオブジェクトに関連し、
前記ファイルシステムオブジェクトメタデータと前記クローンメタデータの各々が前記スナップショットオブジェクトの参照を記憶し、
前記スナップショットオブジェクトメタデータが、前記スナップショットオブジェクトを参照するオブジェクトの番号を示す参照カウントを記憶する、
請求項１に記載のコンピュータプログラム。
【請求項３】
前記スナップショットオブジェクトと前記クローンオブジェクトの作成に際し、前記ファイルシステムオブジェクトのデータストリームが、前記ファイルシステムオブジェクトの前記ルートノードと前記クローンオブジェクトの前記ルートノードとにおいて、その関連したスナップショットオブジェクトのデータストリームから分岐できる最も早いチェックポイントを定義する、クローン後に入るチェックポイント番号として、前記ファイルシステムオブジェクトの前記ルートノードは、前記ファイルシステムオブジェクトの最終変更のチェックポイントを記録する現在のチェックポイント番号を記憶し、前記現在のチェックポイント番号が記憶される、
請求項１又は２に記載のコンピュータプログラム。
【請求項４】
前記スナップショットオブジェクト及び前記クローンオブジェクトの作成に際し、前記スナップショットオブジェクトの前記ルートノードにおける、クローン後に入るチェックポイント番号として、前記ファイルシステムオブジェクトがすでにクローンであった場合、前記ファイルシステムオブジェクトの前記ルートノードに記憶された前記現在のチェックポイント番号がさらに記憶される、
請求項３に記載のコンピュータプログラム。
【請求項５】
前記ファイルストレージシステムは前記スナップショットオブジェクトに対応するライブファイルオブジェクトを含み、それぞれのオブジェクトはユーザデータブロックの番号と関連しており、
前記コンピュータプログラムは、
前記スナップショットオブジェクトにより所有され、前記ライブファイルオブジェクトと共有される各々のユーザデータブロックに関して、前記ユーザデータブロックの所有権を前記ライブファイルオブジェクトに移すことと、
このような転送に続いて、前記ファイルストレージシステムから前記スナップショットオブジェクトを排除することを含む、ファイルのデクローニングと
を更にコンピュータに実行させる請求項３又は４に記載のコンピュータプログラム。
【請求項６】
各オブジェクトはいくつかのブロックポインタを含み、
各ポインタはそれぞれのチェックポイント番号に関連しており、
前記ユーザデータブロックの所有権を前記ライブファイルオブジェクトへ移すことは、
前記スナップショットオブジェクトにおいて前記ブロックポインタを少なくすることと、
前記ライブファイルオブジェクトにおける前記対応するブロックポインタの前記チェックポイント番号を前記ライブファイルオブジェクトの前記クローン後に入るチェックポイント番号に設定することを含む、
請求項５に記載のコンピュータプログラム。
【請求項７】
前記スナップショットオブジェクトが隠しファイルシステムオブジェクトである、
請求項１乃至６のうちのいずれか１項に記載のコンピュータプログラム。
【請求項８】
前記クローンオブジェクトが作成された前記ファイルシステムオブジェクトのサイズが前記クローンオブジェクトに起因すると考えること
を更にコンピュータに実行させる請求項１乃至７のうちのいずれか１項に記載のコンピュータプログラム。
【請求項９】
前記書込み可能なファイルシステムオブジェクト又は前記書込み可能なクローンオブジェクトを変更する際、前記変更を記憶するために少なくとも１つのデータブロックを割り当て、前記少なくとも１つの割り当てられたデータブロックを前記変更後のオブジェクトに関連付けることを更にコンピュータに実行させ、
前記変更後のオブジェクトが、変更後のポインタセットを含む、
請求項１乃至８のうちのいずれか１項に記載のコンピュータプログラム。
【請求項１０】
前記ファイルストレージシステムにおいて、第２のスナップショットオブジェクトを作成し、前記第２のスナップショットオブジェクトに前記変更後のポインタセットのコピーを記憶することと、
前記ファイルストレージシステムにおいて、第２の書込み可能クローンオブジェクトを作成し、前記第２のクローンオブジェクトに前記変更後のポインタセットのコピーを記憶すること
を更にコンピュータに実行させる請求項９に記載のコンピュータプログラム。
【請求項１１】
前記第２のスナップショットオブジェクトに、前記変更後のオブジェクトに対する参照、前記第２のクローンオブジェクトに対する参照、及び前記第１のスナップショットオブジェクトに対する参照を記憶することと、
前記変更後のファイルシステムオブジェクトに、前記第２のスナップショットオブジェクトに対する参照を記憶することと、
前記第２のクローンオブジェクトに、前記第２のスナップショットオブジェクトに対する参照を記憶すること
を更にコンピュータに実行させる請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記スナップショットオブジェクトを使用して、前記ファイルシステムオブジェクトの別のクローンを作成すること
を更にコンピュータに実行させる請求項１乃至１１のうちのいずれか１項に記載のコンピュータプログラム。
【請求項１３】
前記ノードは、オーノードである、
請求項１乃至１２のうちのいずれか１項に記載のコンピュータプログラム。
【請求項１４】
前記スナップショットオブジェクトが、読取り専用データストリームスナップショットオブジェクトである、
請求項１乃至１３のうちのいずれか１項に記載のコンピュータプログラム。
【請求項１５】
ファイルシステムオブジェクトをクローニングするために構成されたファイルストレージシステムであって、
前記ファイルシステムオブジェクトが、ルートノード、間接ノードと、少なくとも１つのデータブロックと、前記ファイルシステムオブジェクトの前記ルートノードに記憶されるポインタセットとを含んでおり、
前記ファイルシステムオブジェクトの前記ルートノードの前記ポインタセットは、前記少なくとも１つのデータブロックを、前記ファイルシステムオブジェクトの前記ルートノードの前記ポインタセットにより参照された前記間接ノードを介して参照し、
前記ファイルストレージシステムは、
少なくとも１つの記憶デバイスと、
前記少なくとも１つの記憶デバイスと通信するプロセッサであって、前記ファイルストレージシステムにおいてスナップショットオブジェクトを作成し、前記スナップショットオブジェクトに前記ファイルシステムオブジェクトの前記ポインタセットのコピーを格納することと、前記ファイルストレージシステムにおいて書込み可能なクローンオブジェクトを作成し、前記クローンオブジェクトに前記ファイルシステムオブジェクトの前記ポインタセットのコピーを格納することとを実行するプロセッサと
を備え、
各スナップショットオブジェクトと前記クローンオブジェクトが前記ファイルシステムオブジェクトの前記ルートノードの前記ポインタのセットがコピーされる、それぞれのルートノードを含み、
前記ファイルシステムオブジェクトの前記ルートノードの前記ポインタセット、前記スナップショットオブジェクトの前記ルートノードの前記ポインタセット、及び、前記クローンオブジェクトの前記ルートノードの前記ポインタセットが、同じ間接ノードを参照することで、前記スナップショットオブジェクト及び前記クローンオブジェクトが、前記参照された間接ノードと前記少なくとも１つの参照されたデータブロックを前記ファイルシステムオブジェクトと共有し、
前記ファイルシステムオブジェクト及び前記クローンオブジェクトが、前記スナップショットオブジェクトの書込み可能なバージョンになり、前記スナップショットオブジェクトによって表される前記オブジェクトのコピーからの変化を記憶する
ファイルストレージシステム。
【請求項１６】
メタデータが前記ファイルシステムオブジェクトと前記クローンオブジェクトにおいて維持され、前記スナップショットオブジェクトが前記ファイルシステムオブジェクト及び前記クローンオブジェクトに関連し、前記ファイルシステムオブジェクト及び前記クローンオブジェクトが前記スナップショットオブジェクトに関連し、
前記ファイルシステムオブジェクトメタデータと前記クローンメタデータの各々が前記スナップショットオブジェクトの参照を記憶し、
前記スナップショットオブジェクトメタデータが、前記スナップショットオブジェクトを参照するオブジェクトの番号を示す参照カウントを記憶する、
請求項１５に記載のファイルストレージシステム。
【請求項１７】
前記スナップショットオブジェクトと前記クローンオブジェクトの作成に際し、前記ファイルシステムオブジェクトのデータストリームが、前記ファイルシステムオブジェクトの前記ルートノードと前記クローンオブジェクトの前記ルートノードとにおいて、その関連したスナップショットオブジェクトのデータストリームから分岐できる最も早いチェックポイントを定義する、クローン後に入るチェックポイント番号として、前記ファイルシステムオブジェクトの前記ルートノードは、前記ファイルシステムオブジェクトの最終変更のチェックポイントを記録する現在のチェックポイント番号を記憶し、前記現在のチェックポイント番号が記憶される、
請求項１５又は１６に記載のファイルストレージシステム。
【請求項１８】
前記スナップショットオブジェクト及び前記クローンオブジェクトの作成に際し、前記スナップショットオブジェクトの前記ルートノードにおける、クローン後に入るチェックポイント番号として、前記ファイルシステムオブジェクトがすでにクローンであった場合、前記ファイルシステムオブジェクトの前記ルートノードに記憶された前記現在のチェックポイント番号がさらに記憶される、
請求項１７に記載のファイルストレージシステム。
【請求項１９】
前記ファイルストレージシステムは前記スナップショットオブジェクトに対応するライブファイルオブジェクトを含み、それぞれのオブジェクトはユーザデータブロックの番号と関連しており、
前記プロセッサは、
前記スナップショットオブジェクトにより所有され、前記ライブファイルオブジェクトと共有される各々のユーザデータブロックに関して、前記ユーザデータブロックの所有権を前記ライブファイルオブジェクトに移すことと、
このような転送に続いて、前記ファイルストレージシステムから前記スナップショットオブジェクトを排除することを含む、ファイルのデクローニングと
を更に実行する請求項１７又は１８に記載のファイルストレージシステム。
【請求項２０】
各オブジェクトはいくつかのブロックポインタを含み、
各ポインタはそれぞれのチェックポイント番号に関連しており、
前記ユーザデータブロックの所有権を前記ライブファイルオブジェクトへ移すために、前記プロセッサは、
前記スナップショットオブジェクトにおいて前記ブロックポインタを少なくすることと、
前記ライブファイルオブジェクトにおける前記対応するブロックポインタの前記チェックポイント番号を前記ライブファイルオブジェクトの前記クローン後に入るチェックポイント番号に設定すること
とを実行する請求項１９に記載のファイルストレージシステム。
【請求項２１】
前記スナップショットオブジェクトが隠しファイルシステムオブジェクトである、
請求項１５乃至２０のうちのいずれか１項に記載のファイルストレージシステム。
【請求項２２】
前記プロセッサが、前記クローンオブジェクトが作成された前記ファイルシステムオブジェクトのサイズは前記クローンオブジェクトに起因すると考える、
請求項１５乃至２１のうちのいずれか１項に記載のファイルストレージシステム。
【請求項２３】
前記書込み可能なファイルシステムオブジェクト又は前記書込み可能なクローンオブジェクトを変更する際、前記プロセッサが、前記変更を格納するために少なくとも１つのデータブロックを割り当て、前記少なくとも１つの割り当てられたデータブロックを前記変更後のオブジェクトに関連付け、
前記変更後のオブジェクトが、変更後のポインタセットを含む
請求項１５乃至２２のうちのいずれか１項に記載のファイルストレージシステム。
【請求項２４】
前記プロセッサが、前記ファイルストレージシステムにおいて第２のスナップショットオブジェクトを作成し、前記第２のスナップショットオブジェクトに前記変更後のポインタセットのコピーを格納し、前記ファイルストレージシステムにおいて、第２の書込み可能クローンオブジェクトを作成し、前記第２のクローンオブジェクトに前記変更後のポインタセットのコピーを格納する、
請求項２３に記載のファイルストレージシステム。
【請求項２５】
前記プロセッサが、前記第２のスナップショットオブジェクトに、前記変更後のオブジェクトに対する参照、前記第２のクローンオブジェクトに対する参照、及び前記第１のスナップショットオブジェクトに対する参照を格納し、前記変更後のファイルシステムオブジェクトに、前記第２のスナップショットオブジェクトに対する参照を格納し、前記第２のクローンオブジェクトに、前記第２のスナップショットオブジェクトに対する参照を格納する
請求項２４に記載のファイルストレージシステム。
【請求項２６】
前記プロセッサが、前記スナップショットオブジェクトを使用して前記ソースオブジェクトの別のクローンを作成する、
請求項１５乃至２５のうちのいずれか１項に記載のファイルストレージシステム。
【請求項２７】
前記ノードは、オーノードである、
請求項１５乃至２６のうちのいずれか１項に記載のファイルストレージシステム。
【請求項２８】
前記スナップショットオブジェクトが、読取り専用データストリームスナップショットオブジェクトである、
請求項１５乃至２７のうちのいずれか１項に記載のファイルストレージシステム。