(57)【特許請求の範囲】
【請求項１】
データを更新し、前記データの更新箇所のファイルパス及びデータブロックのオフセットに基づいて、前記データブロックの第一のコンテンツアドレスを算出する、データ再現手段と、
前記データ再現手段が更新した前記データブロックを格納する上位ブロックの前記第一のコンテンツアドレスを算出する、ファイルシステム再現手段と、
前記第一のコンテンツアドレスを第二のコンテンツアドレスに変換する、ファイルシステム確定手段と、を包含する、ファイルシステム制御装置。
【請求項２】
前記第二のコンテンツアドレスが、前記データの内容に基づいて決定される、請求項１に記載のファイルシステム制御装置。
【請求項３】
前記第二のコンテンツアドレスは、前記コンテンツアドレスの先頭ビットを「０」とし、前記第一のコンテンツアドレスは、前記コンテンツアドレスの先頭ビットを「１」とする、請求項１または２に記載のファイルシステム制御装置。
【請求項４】
請求項１乃至３のいずれか１項の前記ファイルシステム制御装置と、
前記データを格納するデータ格納手段と、を含む、ストレージシステム。
【請求項５】
データを更新し、前記データの更新箇所のファイルパス及びデータブロックのオフセットに基づいて、前記データブロックの第一のコンテンツアドレスを算出し、
更新した前記データブロックを格納する上位ブロックの前記第一のコンテンツアドレスを算出し、
前記第一のコンテンツアドレスを第二のコンテンツアドレスに変換する、ファイルシステム制御方法。
【請求項６】
前記第二のコンテンツアドレスが、前記データの内容に基づいて決定される、請求項５に記載のファイルシステム制御方法。
【請求項７】
前記第二のコンテンツアドレスは、前記コンテンツアドレスの先頭ビットを「０」とし、前記第一のコンテンツアドレスは、前記コンテンツアドレスの先頭ビットを「１」とする、請求項５または６に記載のファイルシステム制御方法。
【請求項８】
データを更新し、前記データの更新箇所のファイルパス及びデータブロックのオフセットに基づいて、前記データブロックの第一のコンテンツアドレスを算出する処理と、
更新した前記データブロックを格納する上位ブロックの前記第一のコンテンツアドレスを算出する処理と、
前記第一のコンテンツアドレスを第二のコンテンツアドレスに変換する処理と、をコンピュータに実行させるプログラム。
【請求項９】
前記第二のコンテンツアドレスが、前記データの内容に基づいて決定される、請求項８に記載のプログラム。
【請求項１０】
前記第二のコンテンツアドレスは、前記コンテンツアドレスの先頭ビットを「０」とし、前記第一のコンテンツアドレスは、前記コンテンツアドレスの先頭ビットを「１」とする、請求項８または９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステム制御装置、ストレージシステム、ファイルシステム制御方法、及び、そのためのプログラムに関する。
【背景技術】
【０００２】
ＣＡＳ（コンテンツアドレスストレージ：Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓｅｄ  Ｓｔｏｒａｇｅ）は、格納するデータの内容（例えばデータのハッシュ値）を元に決まるコンテンツアドレス（以下ＣＡと呼ぶ）を使用してデータを格納する。
【０００３】
このため、ＣＡＳは、同一の内容のデータを別々に格納する必要が無く、重複記録を排除し、データ容量の削減を図ることができる。
【０００４】
特許文献１は、格納したデータの内容に応じて特定される固有のアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレス型のストレージシステムに関する技術を開示している。
【０００５】
特許文献２は、実際のデータを格納せず、代わりにメタデータを利用して、システムにおける全てのデータの位置を追跡し、多数のユーザが最新ファイルを同期してアクセスする技術を開示している。
【０００６】
特許文献３は、ファイルシステム構造の中に、間接アドレスを恒久的に割り当てることで、ブロックを書き換えてもＣＡ再計算がファイルシステムのルートまで伝搬することを防ぐ、ストレージシステムに関する技術を開示している。
【０００７】
特許文献４は、ＣＡＳにおいて、データのコピー処理に要する時間及び負荷を抑制し、システムの性能の低下を抑制したストレージシステムに関する技術を開示している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２０１２／１０１９８３号
【特許文献２】特表２０１５−５１２０７１号公報
【特許文献３】特許第５５５６０２５号公報
【特許文献４】特開２０１０−１９８２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＣＡＳ上に、ツリー構造でファイルシステム構造を格納する装置において、ファイル更新時の性能的な課題がある。
【００１０】
通常のストレージは、データを格納する位置をアドレスとして使用してデータを格納する。これに対して、ＣＡＳは、格納するデータの内容を元に決まるＣＡを使用してデータを格納する。すなわち、ＣＡＳは、参照のためのＣＡを、そのデータを格納してから決定する。このため、ＣＡＳは、上位のツリーのブロックの内容を決めるために、下位のブロックの格納完了を待つ必要があり、ツリー構造の格納に時間を要する。レイテンシの大きいシステムでは、特に、この動作が性能的な課題となる。
【００１１】
ＣＡＳのファイル更新時の性能的な課題について、図１を用いて説明する。図１は、ＣＡＳにおけるファイル更新の動作の一例を示す図である。
【００１２】
図１は、「／ｄｉｒ１／ｆｉｌｅ１」を構成しているデータブロックの１つである「ｄａｔａ２」を更新する例を説明するための図である。図１の上段のファイルシステム構造１０００は、オリジナルのブロック群を示し、下段のファイルシステム構造２０００は、ファイル更新過程のブロック群を示す。ファイルシステム構造１０００は、ツリー構造であり、図１の左側のブロックが上流側、右側のブロックが下流側である。「ｃａ００」乃至「ｃａ６１」は、ＣＡ（コンテンツアドレス）である。
【００１３】
たとえば、ＣＡ「ｃａ２０」のブロックには、「ｄｉｒ１」のブロック情報であるＣＡ「ｃａ４０」が記憶されている。ＣＡ「ｃａ５０」のブロックには、「ｆｉｌｅ１」のブロック情報であるＣＡ「ｃａ６０」、「ｃａ６１」及び「ｃａ６２」が記憶されている。ＣＡ「ｃａ６１」のブロック「ｄａｔａ２」にはデータが記憶されている。データが記憶されているブロックは、データブロックと呼ばれる。ＣＡＳは、以下のようにブロック「ｄａｔａ２」を更新するファイル更新を実行する。
【００１４】
はじめに、ＣＡＳは、「ｄａｔａ２」を複製し、複製したブロック「ｄａｔａ４」に変更を加え（図中の（１）のハッチングの部分が変更されたデータ）、新たなＣＡである「ｃａ６３」を算出する（図中の（２））。ＣＡＳでは、同一内容のブロックを１つのブロックに集約し、複数の上位ブロックから参照させることで重複排除を実現しており、既存ブロックに変更を加える場合は必ず既存ブロックの複製が必要となる。
【００１５】
次に、ＣＡＳは、変更したブロックのＣＡ「ｃａ６３」を「ｆｉｌｅ１」に反映するため、まず、ＣＡ「ｃａ５０」の「ｆｉｌｅ１」のブロックリストを複製する。その後、ＣＡＳは、複製したブロックリストに含まれるＣＡ「ｃａ６１」を「ｃａ６３」に更新し（置き換え）、さらにＣＡの再計算によって「ｃａ５１」を生成し、「ｃａ５０」を「ｃａ５１」に更新する（置き換える）（図中の（３））。このように、ＣＡＳは、ツリーの上位ブロックに対して、複製と、ＣＡの更新・再計算を順次行う必要があり、ツリーの最上位に位置するルート（根）に到達するまで順次行わなければならない（図中の（４））。
【００１６】
特に、レイテンシの大きいＣＡＳにおいて、下記のような動作が大きな性能問題となる。
【００１７】
まず、１つ目の課題は、ファイル更新時のＣＡの再計算処理が広範囲に伝搬することである（上述の動作（３）、（４））。ＣＡＳでは、ブロックの内容から計算した値（例えば、データのハッシュ値）をＣＡとして使用する。このため、ＣＡＳでは、ファイルのデータブロックを書き換えると、データブロックのＣＡが変更される。そして、そのブロック情報を格納しているファイルのＣＡが変更され、さらにそのファイル情報を格納しているディレクトリのＣＡが変更され、というようにファイルシステムのルートに到達するまでＣＡの再計算が伝搬する。特に、頻繁にファイルを更新する場合は、非効率となる。
【００１８】
２つ目の課題は、ファイル更新時に複製が必要なことである（上述の動作（１））。ＣＡＳでは、同じ内容のブロックは同じＣＡを持つため、１つのブロックが複数の上位ブロックから参照されている場合がある。このため、ブロックを書き換える時は、オリジナルブロックをそのまま上書きするのではなく、まずオリジナルブロックを複製し、この複製したブロックに変更を加え、格納する必要がある。この複製処理のため、ファイル更新時の応答性能が遅くなる。
【００１９】
特許文献１は、ＣＡＳの一般的な動作について開示したものであり、ファイル更新時のＣＡ再計算処理が広範囲に伝搬し、ファイル更新時に複製が必要である。
【００２０】
特許文献２は、ＣＡＳにおけるファイル更新時の性能向上については言及していない。
【００２１】
特許文献３は、ＣＡ再計算がファイルシステムのルートまで伝搬することを防ぐことはできるが、ファイル更新時の性能向上については言及していない。
【００２２】
特許文献４は、ＣＡＳにおけるコピー処理の負荷抑制について記載しているのみであり、ファイル更新時のＣＡ再計算処理が広範囲に伝搬し、ファイル更新時に複製が必要である。
【００２３】
従って、上記の文献に記載の技術は、いずれも、ＣＡＳにおいて、ファイル更新時のＣＡ再計算処理が広範囲に伝搬し、ファイル更新時に複製が必要であるという課題が解決されておらず、ファイル更新時の性能に問題がある。
【００２４】
このため、本発明の目的は、上述した課題である、ＣＡＳにおいて、ファイル更新時のＣＡ再計算処理が広範囲に伝搬し、ファイル更新時に複製が必要であるため、ファイル更新時の性能に問題がある、という問題を解決するファイルシステム制御装置等を提供することにある。
【課題を解決するための手段】
【００２５】
本発明のファイルシステム制御装置は、データを更新し、前記データの更新箇所のファイルパス及びデータブロックのオフセットに基づいて、前記データブロックの第一のコンテンツアドレスを算出する、データ再現手段と、前記データ再現手段が更新した前記データブロックを格納する上位ブロックの前記第一のコンテンツアドレスを算出する、ファイルシステム再現手段と、前記第一のコンテンツアドレスを第二のコンテンツアドレスに変換する、ファイルシステム確定手段と、を包含する。
【００２６】
本発明のファイルシステム制御方法は、データを更新し、前記データの更新箇所のファイルパス及びデータブロックのオフセットに基づいて、前記データブロックの第一のコンテンツアドレスを算出し、更新した前記データブロックを格納する上位ブロックの前記第一のコンテンツアドレスを算出し、前記第一のコンテンツアドレスを第二のコンテンツアドレスに変換する。
【００２７】
本発明のコンピュータプログラムは、データを更新し、前記データの更新箇所のファイルパス及びデータブロックのオフセットに基づいて、前記データブロックの第一のコンテンツアドレスを算出する処理と、更新した前記データブロックを格納する上位ブロックの前記第一のコンテンツアドレスを算出する処理と、前記第一のコンテンツアドレスを第二のコンテンツアドレスに変換する処理と、をコンピュータに実行させる。
【発明の効果】
【００２８】
本発明によれば、ＣＡＳにおいて、ファイル更新時のＣＡ再計算処理を広範囲に伝搬する必要がなく、ファイル更新時に複製を必要としないため、ファイル更新時の性能を低下させない、という効果を奏する。
【図面の簡単な説明】
【００２９】
【図１】図１は、ＣＡＳにおけるファイル更新の動作の一例を示す図である。
【図２】図２は、第一の実施の形態に係る、ストレージシステムの構成の一例を示すブロック図である。
【図３】図３は、ディレクトリ、ファイル、データブロック、及び、それらのツリー構造が、データ格納部に格納されている初期状態の一例を示す図である。
【図４】図４は、図３の状態に対して、ファイルシステム制御装置が「ｆｉｌｅ１」を更新する動作の一例を示す図である。
【図５】図５は、ファイルシステム確定部がデータを確定する動作の一例を示す図である。
【図６】図６は、第二の実施形態に係る、ファイルシステム制御装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００３０】
＜第一の実施形態＞
本発明の第一の実施の形態について、図面を参照して詳細に説明する。
【００３１】
図２は、第一の実施の形態に係る、ストレージシステム１０の構成の一例を示すブロック図である。
【００３２】
ストレージシステム１０は、ファイルシステム制御装置１００、及び、データ格納部２００を含む。
【００３３】
ファイルシステム制御装置１００は、ファイルシステムアクセス部１０１、ファイルシステム再現部１０２、データ再現部１０３、及び、ファイルシステム確定部１０４を含む。
【００３４】
ファイルシステムアクセス部１０１は、クライアントからのファイルシステム（データ格納部２００）へのアクセス手段を提供する。ファイルシステムアクセスは、ｏｐｅｎ、ｃｌｏｓｅ、ｍｋｄｉｒ、ｕｎｌｉｎｋなどのファイルシステム構造に関する操作と、ｒｅａｄ、ｗｒｉｔｅなどのデータに関する操作の２種類に分類できる。本実施の形態におけるファイルシステム構造は、ツリー構造であるので、以下、ファイルシステム構造は、ツリー構造とも呼ばれる。ファイルシステムアクセス部１０１は、前者の操作に関わる操作要求をファイルシステム再現部１０２に、後者の操作に関わるデータ転送要求をデータ再現部１０３に振り分ける。
【００３５】
ファイルシステム再現部１０２は、ファイルシステムアクセス部１０１からツリー構造の操作要求を受け、ツリー構造の操作に必要な情報（ディレクトリ、ファイル、データブロック）をデータ格納部２００から読み出し、その結果を保持する。ファイルシステム再現部１０２に保持された情報は、第１の情報と呼ばれる。
【００３６】
データ再現部１０３は、ファイルシステムアクセス部１０１からデータ転送要求を受け、データ格納部２００に対して、ｒｅａｄ、ｗｒｉｔｅ処理を行う。データ再現部１０３は、例えば、ｗｒｉｔｅ処理を行う場合、ｗｒｉｔｅデータを保持する。データ再現部１０３に保持された情報は、第２の情報と呼ばれる。
【００３７】
ファイルシステム確定部１０４は、一定期間、更新されていないファイルを検出し、ファイルシステム再現部１０２とデータ再現部１０３の各々が保持する該第１の情報及び第２の情報（ツリー構造とｗｒｉｔｅデータ）をデータ格納部２００へ格納するよう指示する。また、この他にも、ファイルシステム確定部１０４は、ファイルシステム再現部１０２とデータ再現部１０３に、各々が保持する情報を、全てデータ格納部２００へ書き出すよう指示することもできる。
【００３８】
ここで、ファイルシステムアクセス部１０１、ファイルシステム再現部１０２、データ再現部１０３、及び、ファイルシステム確定部１０４は、例えば、論理回路等のハードウェア回路で構成される。
【００３９】
また、ファイルシステムアクセス部１０１、ファイルシステム再現部１０２、データ再現部１０３、及び、ファイルシステム確定部１０４は、コンピュータである、ファイルシステム制御装置１００のプロセッサが、図示されないメモリ上のプログラムを実行することで実現される機能ユニットでも良い。
【００４０】
データ格納部２００は、例えば、ディスク装置、半導体メモリ等の記憶装置で構成される。
【００４１】
なお、ファイルシステム再現部１０２、及び、データ再現部１０３は、内部にデータを保持するメモリ機能も有するものとする。
【００４２】
データ格納部２００に格納されているファイルを更新する処理イメージについて、図３〜図５を用いて、以下で説明する。なお、図３乃至図５は、説明のため、データ格納部２００、ファイルシステム再現部１０２及びデータ再現部１０３の各々とその中に格納されるブロックまたはブロック群を併記して示している。
【００４３】
図３は、ディレクトリ、ファイル、及びデータブロックを含むツリー構造が、データ格納部２００に格納されている初期状態の一例を示す図である。
【００４４】
なお、図３のツリー構造は、オリジナルのファイルシステム構造であり、前述の図１と同様であるため、詳細な説明は省略する。
【００４５】
図４は、図３の状態に対して、ファイルシステム制御装置１００が「ｆｉｌｅ１」のブロック情報を更新する動作の一例を示す図である。下記（１）〜（４）は、ファイルシステム制御装置１００の動作の具体的な手順を示す。
【００４６】
（１）まず、ファイルシステムアクセス部１０１は、クライアントから受け取った「ｆｉｌｅ１」のｗｒｉｔｅ（更新）要求をファイルシステム再現部１０２に通知する。
【００４７】
（２）次に、ファイルシステム再現部１０２は、「ｆｉｌｅ１」のツリー構造の情報をデータ格納部２００から読み込み、更新箇所に該当するデータブロックのＣＡ「ｃａ６１」をファイルシステムアクセス部１０１に返却する。ここで、ファイルシステム再現部１０２は、「ｆｉｌｅ１」のツリー構造の情報を保持する。
【００４８】
（３）そして、ファイルシステムアクセス部１０１は、クライアントからのｗｒｉｔｅ要求とオリジナルブロックのＣＡ「ｃａ６１」をデータ再現部１０３に通知する。データ再現部１０３は、オリジナルブロック「ｄａｔａ２」を複製せずに、新しいブロック「ｄａｔａ２´」に更新データを書き込み、その更新データのオフセット、サイズ、及び、オリジナルブロックのＣＡ「ｃａ６１」を保持する。そして、データ再現部１０３は、更新データを格納したブロックのＣＡを後述される新方式で算出し「ｃａ６１´」、ファイルシステムアクセス部１０１に返却する。
【００４９】
なお、上記の項目（３）は、図４のデータ再現部１０３の枠内の記載に対応する。例えば、新しいブロックは、「ｄａｔａ２´」と記載した部分に対応する。また、例えば、オリジナルブロックのＣＡ「ｃａ６１」は「Ｏｒｉｇｉｎａｌ  ｄａｔａ」に、新しいブロックのＣＡ「ｃａ６１´」は「Ｔａｒｇｅｔｅｄ  ｄａｔａ」に対応する。そして、更新データのオフセット、サイズが、「Ｍｏｄｉｆｉｅｄ」に対応する。更新データのオフセット、サイズの各々の具体的な値は、図４に示すように、例えば、「１２９：８５」及び「２５７：４２」であり、右側のｄａｔａ２´の斜線（ハッチング）の位置に対応する。上記のオフセット及びサイズの単位は、例えば、ビット、ワード等である。
【００５０】
なお、新方式は、例えば、ファイルＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）（もしくは、フルパス）とデータブロックのオフセットからＣＡを算出する関数である。データブロックのオフセットは、例えば、「ｆｉｌｅ１」に対する「ｃａ６１´」の位置情報とする。新方式での算出は、２進数表記した場合、例えば、ファイルＩＤを「０１００」、データブロックのオフセットを「００１０」とすると、「ｃａ６１´」のＣＡを「０１１０」とする。
【００５１】
（４）この後、ファイルシステムアクセス部１０１は、受け取ったＣＡ「ｃａ６１´」をファイルシステム再現部１０２に通知する。そして、ファイルシステム再現部１０２は、書き換えたブロックの情報を格納するファイルである「ｆｉｌｅ１」及び上位のＣＡを新方式でファイルシステムのルートまで再計算する。再計算されたＣＡは、図４に示すように、「ｃａ５０´」、「ｃａ４０´」、「ｃａ２０´」、「ｃａ１０´」、及び、「ｃａ００´」である。
【００５２】
上記（３）のとおり、ファイルシステム制御装置１００は、ファイル更新時には、変更箇所のみを書き込み、変更されていない箇所はオリジナルブロックへの参照とする。これにより、ファイルシステム制御装置１００は、書き込み量を必要最小限とし、応答時間を短縮できる。
【００５３】
また、上記（３）及び（４）において、ファイルシステム制御装置１００は、ＣＡを新方式で算出することにより、同一ファイルを複数回更新する場合に、ＣＡの再計算を初回のみとし、２回目以降の更新では、ＣＡの再計算を不要とする。なお、既存方式と新方式の間でＣＡのコリジョンを防ぐため、例えば、既存方式は、ＣＡの先頭ｂｉｔを「０」とする。また、例えば、新方式は、先頭ｂｉｔを「１」とする。新方式の場合、上記の例を用いると、例えば、「０１１０」の先頭ｂｉｔに「１」を加え、ＣＡは「１０１１０」となる。なお、新方式のＣＡを第一のコンテンツアドレスとも呼ぶ。また、既存方式のＣＡを第二のコンテンツアドレスとも呼ぶ。
【００５４】
図５は、ファイルシステム確定部１０４がデータを確定する動作の一例を示す図である。
【００５５】
まず、ファイルシステム確定部１０４は、一定期間、更新されていないファイルを検出し、ファイルシステム再現部１０２とデータ再現部１０３に、各々が保持する該当の情報をデータ格納部２００へ書き出すよう指示する。この時、データ再現部１０３は、オリジナルブロックへの参照とした未変更箇所を複製し、その後データ格納部２００に書き出す。なお、上記の所定の期間は、事前にＣＡＳのレイテンシ等に基づきファイルシステムの管理者が設定するものとする。
【００５６】
次に、ファイルシステム確定部１０４が、ファイルシステム再現部１０２とデータ再現部１０３を介して、データ格納部２００が受け取ったブロックの内容を元にＣＡを既存方式で再計算し、データ格納部２００のファイルシステム構造を更新する。なお、既存方式は、前述のように、格納データの内容に基づいて決定されるアドレスである。ファイルシステム確定部１０４は、下位のブロックが全て既存方式のＣＡとなった場合に、上位のブロックのＣＡを既存方式で再計算する。
【００５７】
ところで、上記は、階層ディレクトリ構造のファイルシステムをＣＡＳ上に格納する場合を例示している。しかし、オブジェクトストレージのように階層のないファイルシステムをＣＡＳ上に格納する場合においても、本実施形態を適用することでファイル更新時の性能向上が見込める。
【００５８】
以上、述べてきたように、本実施形態のストレージシステム１０は、データのバイナリ表現（データの内容）に依存しない新たなＣＡ計算方式を導入し、既存方式と混在させる。ストレージシステム１０は、通常は既存方式とするが、ファイル更新時は新方式とする。
【００５９】
既存方式は、ブロックの内容からＣＡを算出する。ブロックの内容が同じであれば、同じＣＡを持つため、ストレージシステム１０は、重複排除の効果を享受できる。
【００６０】
一方、新方式は、ファイルＩＤ（もしくは、フルパス）とデータブロックのオフセットからＣＡを算出する。新方式は、システム内でユニークなＣＡとし、ファイル更新時の複製処理を不要とする。ただし、新方式は、ＣＡがユニークなので、重複排除の効果はない。
【００６１】
上記のように、第一に、新方式は、ＣＡがブロックの内容に依存しないため、データブロックを書き換えた際のＣＡ再計算は不要となり、上位のブロックを書き換える必要がなくなる。ただし、新方式は、重複排除の効果を享受できない。これを解決するため、ストレージシステム１０は、新方式で計算されたＣＡを、非同期（ポストプロセス）で既存方式のＣＡに書き換える機構を導入する。これにより、ストレージシステム１０は、ファイル更新処理を効率化しながら、長期的には重複排除の効果も享受できる。
【００６２】
また、第二に、新方式は、ＣＡがユニークであり、１つのブロックが複数から参照されることは無いため、ファイル更新時にオリジナルブロックの複製は不要であり、そのままブロックを書き換えることができる。これにより、ストレージシステム１０は、ファイル更新時の応答時間を短縮できる。ただし、初回のブロック書き換え時は、オリジナルブロックのＣＡが既存方式であるため、ブロックの複製が必要となる。これを解決するため、ストレージシステム１０は、新しいブロックには、更新データだけを格納し、オリジナルブロックのＣＡと書き換えるデータの情報（データのオフセット値、データサイズ）を保存しておき、変更が無い箇所はオリジナルブロックへの参照とし、複製はしない。これにより、ストレージシステム１０は、初回のブロック書き換え時の応答性能も短縮できる。なお、ストレージシステム１０は、参照とした箇所をポストプロセスで複製しておく。
【００６３】
上記のように、本実施形態のストレージシステム１０は、ファイルシステムを格納しているＣＡＳ上で複数のＣＡ体系の混在を許し、そのＣＡ体系間の移行をデータの安定性（長期間更新されていない、など）を契機として行うことができる。
【００６４】
また、ストレージシステム１０は、レイテンシの大きいＣＡＳにおいて、長期的に重複率を落とさずファイル更新の性能を向上できる。
【００６５】
さらに、ストレージシステム１０は、同一ファイルを頻繁に更新するシステムで、重複率を落とさず、ファイル更新時の性能向上が見込める。
【００６６】
このように、ストレージシステム１０は、ＣＡ再計算処理を最適化し、ファイル更新時の複製処理をポストプロセス化する。
【００６７】
本実施形態に係るストレージシステム１０は、以下に記載するような効果を奏する。
【００６８】
すなわち、ＣＡＳにおいて、ファイル更新時のＣＡ再計算処理が広範囲に伝搬し、また、ファイル更新時に複製が必要であるため、ファイル更新時に性能の問題がある、という課題を解決する、という効果を奏する。
【００６９】
その理由は、ファイルパスとデータブロックのオフセットから新方式でＣＡを算出し、新方式で計算されたＣＡを、非同期で既存方式のＣＡに書き換えるからである。
＜第二の実施形態＞
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。
【００７０】
図６は、第二の実施形態に係る、ファイルシステム制御装置３００の構成の一例を示すブロック図である。第二の実施形態は、第一の実施形態のファイルシステム制御装置３００の最小構成の一例に該当する。
【００７１】
ファイルシステム制御装置３００は、データ再現部３０１、ファイルシステム再現部３０２、及び、ファイルシステム確定部３０３を含む。
【００７２】
データ再現部３０１は、データを更新し、データの更新箇所のファイルパス及びデータブロックのオフセットに基づいて、データブロックの第一のコンテンツアドレスを算出する。
【００７３】
ファイルシステム再現部３０２は、前記データ再現手段が更新したデータブロックを格納する上位ブロックの第一のコンテンツアドレスを算出する。
【００７４】
ファイルシステム確定部３０３は、第一のコンテンツアドレスを第二のコンテンツアドレスに変換する。
【００７５】
本実施形態に係るファイルシステム制御装置３００は、以下に記載するような効果を奏する。
【００７６】
すなわち、ＣＡＳにおいて、ファイル更新時のＣＡ再計算処理が広範囲に伝搬し、また、ファイル更新時に複製が必要であるため、ファイル更新時に性能の問題がある、という課題を解決する、という効果を奏する。
【００７７】
その理由は、データを更新し、データの更新箇所のファイルパス及びデータブロックのオフセットに基づいて、データブロックの第一のコンテンツアドレスを算出し、更新したデータブロックを格納する上位ブロックの第一のコンテンツアドレスを算出する。そして、第一のコンテンツアドレスを第二のコンテンツアドレスに変換するからである。
【００７８】
以上、図面を参照して本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００７９】
１０    ストレージシステム
１００    ファイルシステム制御装置
１０１    ファイルシステムアクセス部
１０２    ファイルシステム再現部
１０３    データ再現部
１０４    ファイルシステム確定部
２００    データ格納部
３００    ファイルシステム制御装置
３０１    データ再現部
３０２    ファイルシステム再現部
３０３    ファイルシステム確定部
１０００    ファイルシステム構造
２０００    ファイルシステム構造
【図１】
0006648596.tif 000002
【図２】
0006648596.tif 000003
【図３】
0006648596.tif 000004
【図４】
0006648596.tif 000005
【図５】
0006648596.tif 000006
【図６】
0006648596.tif 000007