(57)【特許請求の範囲】
【請求項１】
記憶対象データを記憶装置に記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを生成して記憶するデータ格納制御部と、
前記記憶装置に記憶されている前記記憶対象データを、前記記憶装置から削除するデータ削除処理部と、を備え、
前記データ格納制御部は、前記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを前記記憶装置に別途格納するときに、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを、当該記憶対象データを識別する識別情報に対応付けて記憶し、
前記データ削除処理部は、相互に関連付けられている前記アドレスデータのうち、一方の前記アドレスデータが対応付けられている前記識別情報に、当該一方のアドレスデータに換えて他方の前記アドレスデータを対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除すると共に、前記記憶対象データを削除する際に、当該削除対象となる記憶対象データとは異なる前記記憶対象データの格納位置を表す前記一方のアドレスデータに前記他方のアドレスデータが関連付けられている場合に、前記異なる記憶対象データの前記識別情報に対応付けられている前記一方のアドレスデータを前記他方のアドレスデータに変更して当該識別情報に対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
ストレージ装置。
【請求項２】
請求項１に記載のストレージ装置であって、
前記データ削除処理部は、前記記憶対象データを削除する際に、全ての前記記憶対象データの格納位置を表す前記アドレスデータに関連付けたフラグを初期値に設定し、削除対象となる前記記憶対象データとは異なる前記記憶対象データの前記識別情報に対応付けられた前記一方のアドレスデータに前記他方のアドレスデータが関連付けられている場合に、前記異なる記憶対象データの前記識別情報に対応付けられている前記一方のアドレスデータを前記他方のアドレスデータに変更して当該識別情報に対応付け、当該変更された前記他方のアドレスデータに関連付けた前記フラグを他の値に設定すると共に、初期値である前記フラグが関連付けられた前記アドレスデータにて表された格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
ストレージ装置。
【請求項３】
請求項２に記載のストレージ装置であって、
前記データ削除処理部は、前記記憶対象データを削除する際に、全ての前記記憶対象データの格納位置を表す前記アドレスデータに関連付けたフラグを初期値に設定し、削除対象となる前記記憶対象データとは異なる前記記憶対象データの前記識別情報に対応付けられた前記アドレスデータに関連付けた前記フラグを他の値に設定すると共に、前記異なる記憶対象データの前記識別情報に対応付けられた前記一方のアドレスデータに前記他方のアドレスデータが関連付けられている場合には、前記一方のアドレスデータに関連付けた前記フラグは他の値に設定せず初期値のままとする、
ストレージ装置。
【請求項４】
請求項１乃至３のいずれか一項に記載のストレージ装置であって、
前記データ格納制御部は、前記記憶装置に既に記憶されている前記記憶対象データに設定されている重要度に対して、当該既に格納されている記憶対象データと同一内容の他の記憶対象データに予め設定されている重要度が高い場合に、前記他の記憶対象データを前記記憶装置に別途格納して、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶する、
ストレージ装置。
【請求項５】
請求項１乃至４のいずれか一項に記載のストレージ装置であって、
前記データ格納制御部は、前記記憶装置に既に記憶されている前記記憶対象データを他の格納位置に移動する場合に、当該既に記憶されている記憶対象データの複製である他の記憶対象データを前記記憶装置に別途格納して、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶する、
ストレージ装置。
【請求項６】
記憶装置と、
記憶対象データを記憶装置に記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを生成して記憶するデータ格納制御部と、
前記記憶装置に記憶されている前記記憶対象データを、前記記憶装置から削除するデータ削除処理部と、を備え、
前記データ格納制御部は、前記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを前記記憶装置に別途格納するときに、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを、当該記憶対象データを識別する識別情報に対応付けて記憶し、
前記データ削除処理部は、相互に関連付けられている前記アドレスデータのうち、一方の前記アドレスデータが対応付けられている前記識別情報に、当該一方のアドレスデータに換えて他方の前記アドレスデータを対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除すると共に、前記記憶対象データを削除する際に、当該削除対象となる記憶対象データとは異なる前記記憶対象データの格納位置を表す前記一方のアドレスデータに前記他方のアドレスデータが関連付けられている場合に、前記異なる記憶対象データの前記識別情報に対応付けられている前記一方のアドレスデータを前記他方のアドレスデータに変更して当該識別情報に対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
ストレージシステム。
【請求項７】
情報処理装置に、
記憶対象データを記憶装置に記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを生成して記憶するデータ格納制御部と、
前記記憶装置に記憶されている前記記憶対象データを、前記記憶装置から削除するデータ削除処理部と、を実現させると共に、
前記データ格納制御部は、前記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを前記記憶装置に別途格納するときに、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを、当該記憶対象データを識別する識別情報に対応付けて記憶し、
前記データ削除処理部は、相互に関連付けられている前記アドレスデータのうち、一方の前記アドレスデータが対応付けられている前記識別情報に、当該一方のアドレスデータに換えて他方の前記アドレスデータを対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除すると共に、前記記憶対象データを削除する際に、当該削除対象となる記憶対象データとは異なる前記記憶対象データの格納位置を表す前記一方のアドレスデータに前記他方のアドレスデータが関連付けられている場合に、前記異なる記憶対象データの前記識別情報に対応付けられている前記一方のアドレスデータを前記他方のアドレスデータに変更して当該識別情報に対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
プログラム。
【請求項８】
記憶対象データを記憶装置に記憶し、前記記憶対象データの格納位置を表すアドレスデータを生成して記憶すると共に、前記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを前記記憶装置に別途格納するときには、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを、当該記憶対象データを識別する識別情報に対応付けて記憶し、
前記記憶装置に記憶されている前記記憶対象データを、前記記憶装置から削除するときに、相互に関連付けられている前記アドレスデータのうち、一方の前記アドレスデータが対応付けられている前記識別情報に、当該一方のアドレスデータに換えて他方の前記アドレスデータを対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除すると共に、前記削除対象となる記憶対象データとは異なる前記記憶対象データの格納位置を表す前記一方のアドレスデータに前記他方のアドレスデータが関連付けられている場合に、前記異なる記憶対象データの前記識別情報に対応付けられている前記一方のアドレスデータを前記他方のアドレスデータに変更して当該識別情報に対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムにかかり、特に、格納したデータの内容に応じて格納位置を管理するコンテンツアドレス型のストレージシステムに関する。
【背景技術】
【０００２】
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
【０００３】
このような状況に応じて、近年では、例えば、特許文献１に示すような、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムが開発されている。
【０００４】
図１に、コンテンツアドレスストレージシステムの構成の一例を示す。この図に示すように、ストレージシステム１００は、複数のデータ格納部１１０と、コンテンツアドレスリスト１２０と、を有すると共に、重複排除機能部１０１と、分散冗長配置機能部１０２と、データ移動機能部１０３と、データ削除機能部１０４と、を備えている。このような構成を有するストレージシステム１００は、それぞれつぎのように動作する。
【０００５】
上記重複排除機能部１０１は、図２のフローチャートに示すような処理を行う。まず、データ格納が開始されると（ステップＳ１０１）、書き込まれたデータをチャンキングして、細かくブロックに分割する（ステップＳ１０２）。そして、各ブロックのハッシュ値をそれぞれ計算し（ステップＳ１０３）、そのハッシュ値を元に、既に格納されているブロックと比較して、このブロックの格納が必要であるか判断する（ステップＳ１０４）。このとき、同一のハッシュ値が存在している場合には、かかるブロックが重複していると判断し（ステップＳ１０４：Ｎｏ）、当該重複しているブロックは格納しない。この場合には、重複している既に格納されているブロックのCAを取得して（ステップＳ１０６）、このCAを元に実ブロックにアクセス可能となる。
【０００６】
一方で、同一のハッシュ値が存在していない場合には、かかるブロックは重複していないと判断し（ステップＳ１０４：Ｙｅｓ）、当該重複していないユニークなブロックを新規に格納する（ステップＳ１０５）。そして、ブロックを格納すると、当該ブロックのCA（Content Address）が得られ（ステップＳ１０６）、このCAを元に実ブロックにアクセス可能となる。なお、CAは、後述するように、ブロックのハッシュ値と論理格納位置を表す情報から構成される。そして、全てのブロックに対して上記処理を行う（ステップＳ１０７）。
【０００７】
上記分散冗長配置機能部１０２は、図３に示すように、上記重複排除機能部１０１によってユニークと判断されたブロックを格納する処理を行う（ステップＳ１１１）。まず、ブロックを更に細かく、指定された数に分割する（ステップＳ１１２）。この更に細かく分割されたブロックを、それぞれフラグメントと呼ぶこととする。そして、フラグメントをもとに冗長フラグメントを作成して（ステップＳ１１３）、フラグメントと冗長フラグメントを分散して配置する（ステップＳ１１４）。このとき、フラグメントの格納位置とハッシュ値を用いて、ブロックのＣＡを生成する（ステップＳ１１５）。
【０００８】
これによって、ディスク障害等が発生した場合でも冗長フラグメントが存在するため、元のブロックを復元できる。例えば、分割フラグメント：冗長フラグメント＝９：３と指定する場合、ユニークなブロックは９個に分割され、更に３個の冗長フラグメントを加えた１２個のフラグメントを分散して配置する。すると、ディスク障害などによって、失われたフラグメントが１２個のうち３個までなら元のブロックを復元することができる。なお、分割フラグメント数と冗長フラグメント数の比は、データの種類によって選択可能であるとする。
【０００９】
上記データ移動機能部１０３は、ブロックの移動を行う。例えば、ストレージシステム側の都合（例えば、そのストレージシステムが備える分散冗長配置機能等）によってブロックの移動を行う必要がある場合には、かかるデータ移動機能部１０３によってデータの移動を行う。
【００１０】
ここで、図４を参照して、データＡとデータＢとが格納される際の一例を説明する。まず、データＡ、データＢを、それぞれチャンキングによってブロックａ，ｂ，ｃとブロックｃ，ｄ，ｅに分割する。このとき、ストレージシステム１００が備える重複排除機能によって、ブロックｃは一つだけ格納され、データＡとデータＢから参照されている。そして、ユニークなブロックはそれぞれフラグメントａ１〜ａ９に分割され（符号Ａ１０参照）、さらに、冗長フラグメントａ１０〜ａ１２が付加される（符号Ａ２０参照）。これらのフラグメントａ１〜ａ１２が分散して各データ格納部１１０へそれぞれ格納される。
【００１１】
ここで、図５に、上述したコンテンツアドレスの構成要素の一例を示す。この図に示すように、コンテンツアドレス（CA）は、ブロックのハッシュ値とブロックの論理格納位置から決定されるものとする。なお、論理格納位置とは、ブロックを構成するフラグメントの代表的な物理位置とする。例えば、データＡにおけるフラグメントａ１の物理格納位置等である。つまり、他のフラグメントａ２〜ａ１２は、フラグメントａ１に連動して格納されており、当該フラグメントａ１の論理格納位置が分かれば他のフラグメントａ２〜ａ１２を参照可能であるとする。
【００１２】
そして、上述したようなコンテンツアドレスストレージシステムでは、物理データを削除する際は、ある特殊な処理が必要である。つまり、実際に格納されているブロックは、複数のデータから共有されている可能性があるため、データ削除時に安易にブロックは削除できない。このため、ブロックを削除する場合は、全てのデータに関してどのブロックを使用しているのか、ということを確認して、使用されていないブロックを削除する。この作業は、上記データ削除機能部１０４によって、図７に示すような流れで行われている。
【００１３】
具体的に、このストレージシステム１００は、図６に示すような、使用されている各CAに「flag」が関連付けられたリストを持つ。そして、図７に示すように、まず、このリストの全コンテンツアドレス（CA）に対するフラグを0に初期化する（ステップＳ１２１）。その後、削除せずに格納されているデータを読み込み（ステップＳ１２２）、そのCAを確認する（ステップＳ１２３）。それぞれのCAに関してフラグを確認して（ステップＳ１２４）、フラグが0ならば1に変更する（ステップＳ１２６）。フラグが1ならばなにも行わない。そして、全てのデータのCAを確認後（ステップＳ１２５）、フラグが0のCAに対応するブロックのみを削除する（ステップＳ１２７）。
【００１４】
図８に、データ削除の一例を示す。ここでは、図８の左側に示すように、データＡとデータＢの格納後、データＢだけを削除する場合を考える。このとき、ブロックａ，ｂ，ｃ，ｄ，ｅに対応するCAを、それぞれCA1，CA2，CA3，CA4，CA5とする。まずCA1〜CA5のフラグは全て0となる。そして、削除せずに現時点で格納されているデータ、つまり、データＡを読み込むと、当該データＡを構成するブロックａ，ｂ，ｃに対応するCA1，CA2，CA3のフラグがそれぞれ1となり、CA4とCA5のフラグは0のままである。その後、図８の右側に示すように、フラグが０であるCA4とCA5に対応するブロック、すなわち、ブロックd，eを削除する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００５−２３５１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、上述したようなストレージシステムが以下の構成である場合には、複数の形態で同一ブロックを格納してしまい、格納するデータ容量が増大してしまう、という問題があった。
（１）同一ストレージシステム内で、データの種類によって分割フラグメント数と冗長フラグメント数の比を変更した場合。
（２）ストレージシステムが持つ分散冗長配置機能によって、格納済みのブロックが移動する必要がある場合。
【００１７】
上記（１）の場合について、図９を参照して詳述する。まず、データＡとデータＢが格納される場合を考える。このとき、データＢに予め設定された冗長度が、データＡに設定されている冗長度（例えば、冗長フラグメント数）に対して同等もしくは低い場合は、上述した図４に示すように、データＢはデータＡのブロックｃを共有すればよい。なお、データの冗長度とは、例えば、データの種類や当該データの格納先などに応じて、利用者によって予め設定されたデータの重要度によって特定される。
【００１８】
しかし、データＢの方が、データＡより高い冗長度で格納される場合には、ブロックｃを共有すると冗長度が満たせなくなるため、当該ブロックｃは共有できない。従って、図９に示すように、ブロックｃ’を新たに格納する必要がある。このような場合、同一のデータ内容であるにも関わらず、ブロックｃとブロックｃ’が格納されることになる。
【００１９】
上記処理の流れを図１０に示す。まず、上述同様に、データ格納が開始されると（ステップＳ１３１）、書き込まれたデータをチャンキングして、細かくブロックに分割する（ステップＳ１３２）。そして、各ブロックのハッシュ値をそれぞれ計算し（ステップＳ１３３）、そのハッシュ値を元に、既に格納されているブロックと比較して、このブロックの格納が必要であるか判断する（ステップＳ１３４）。このとき、同一のハッシュ値が存在し、ブロックが既に格納されていると判断した場合には（ステップＳ１３４：Ｙｅｓ）、格納済みのブロックの冗長度（重複度）と書き込もうとしているブロックの冗長度を比較する（ステップＳ１３５）。そして、書き込もうとしているブロックの冗長度が格納済みの同一ブロックと比べて高い場合は（ステップＳ１３６：Ｙｅｓ）、書き込もうとしているブロックを新規に格納する（ステップＳ１３７）。そして、上述同様に、格納したブロックのCA（Content Address）を取得する（ステップＳ１３８）。
【００２０】
一方で、書き込もうとしているブロックの冗長度が格納済みの同一ブロックと比べて同一か低い場合は（ステップＳ１３６：Ｎｏ）、書き込もうとしているブロックは新規に書き込まずに、格納済みの同一ブロックを参照する（ステップＳ１３８）。そして、全てのブロックに対して上記処理を行う（ステップＳ１３９）。
【００２１】
また、上述した（２）のブロックを移動する場合について、図１１及び図１２を参照して説明する。まず、データＡが格納されているとき、ストレージシステム側の都合（例えば、そのストレージシステムが備える分散冗長配置機能等）によって、ブロックｃの格納位置が移動するとする（ステップＳ１４１）。しかし、データＡはブロックｃを参照し続けるため、データＡの参照先をブロックｃからブロックｃ’に変更しない限りブロックｃは消すことができない。そのため、図１１に示すように、同一ブロックにも関わらずブロックｃとブロックｃ’が存在することになる（ステップＳ１４２，Ｓ１４３）。
【００２２】
以上説明したように、コンテンツアドレスストレージシステムにおいて、同一ブロックが複数格納される場合が生じ、データの格納効率が低くなる、という問題があった。
【００２３】
このため、本発明の目的は、上述した課題である、データ格納効率の低下ということを解決するストレージシステムを提供することにある。
【課題を解決するための手段】
【００２４】
かかる目的を達成するため本発明の一形態であるストレージ装置は、
記憶対象データを記憶装置に記憶すると共に、上記記憶対象データの格納位置を表すアドレスデータを生成して記憶するデータ格納制御部と、
上記記憶装置に記憶されている上記記憶対象データを、上記記憶装置から削除するデータ削除処理部と、を備える。
そして、上記データ格納制御部は、上記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを上記記憶装置に別途格納するときに、上記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、上記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶する。
さらに、上記データ削除処理部は、相互に関連付けられている上記アドレスデータのうち、一方の上記アドレスデータにて表される格納位置に格納されている上記記憶対象データを上記記憶装置から削除する、
という構成をとる。
【００２５】
また、本発明の他の形態であるストレージシステムは、
記憶装置と、
記憶対象データを記憶装置に記憶すると共に、上記記憶対象データの格納位置を表すアドレスデータを生成して記憶するデータ格納制御部と、
上記記憶装置に記憶されている上記記憶対象データを、上記記憶装置から削除するデータ削除処理部と、を備える。
そして、上記データ格納制御部は、上記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを上記記憶装置に別途格納するときに、上記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、上記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶する。
さらに、上記データ削除処理部は、相互に関連付けられている上記アドレスデータのうち、一方の上記アドレスデータにて表される格納位置に格納されている上記記憶対象データを上記記憶装置から削除する、
という構成をとる。
【００２６】
また、本発明の他の形態であるプログラムは、
情報処理装置に、
記憶対象データを記憶装置に記憶すると共に、上記記憶対象データの格納位置を表すアドレスデータを生成して記憶するデータ格納制御部と、
上記記憶装置に記憶されている上記記憶対象データを、上記記憶装置から削除するデータ削除処理部と、を実現させるプログラムである。
そして、上記データ格納制御部は、上記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを上記記憶装置に別途格納するときに、上記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、上記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶する。
さらに、上記データ削除処理部は、相互に関連付けられている上記アドレスデータのうち、一方の上記アドレスデータにて表される格納位置に格納されている上記記憶対象データを上記記憶装置から削除する、
という構成をとる。
【００２７】
また、本発明の他の形態であるデータ処理方法は、
記憶対象データを記憶装置に記憶し、上記記憶対象データの格納位置を表すアドレスデータを生成して記憶すると共に、上記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを上記記憶装置に別途格納するときには、上記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、上記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶し、
上記記憶装置に記憶されている上記記憶対象データを上記記憶装置から削除するときに、相互に関連付けられている上記アドレスデータのうち、一方の上記アドレスデータにて表される格納位置に格納されている上記記憶対象データを上記記憶装置から削除する、
という構成をとる。
【発明の効果】
【００２８】
本発明は、以上のように構成されることにより、記憶されるデータの信頼性を維持しつつ、データ格納効率の向上を図ることができる。
【図面の簡単な説明】
【００２９】
【図１】本発明に関連するストレージシステムの構成を示すブロック図である。
【図２】図１に開示したストレージシステムにおけるデータ格納時の動作を示すフローチャートである。
【図３】図１に開示したストレージシステムにおけるデータ格納時の動作を示すフローチャートである。
【図４】図１に開示したストレージシステムにおけるデータ格納時の様子を示す説明図である。
【図５】コンテンツアドレスのデータ構造を示す図である。
【図６】図１に開示したストレージシステムに記憶されるＣＡリストのデータ構造を示す図である。
【図７】図１に開示したストレージシステムにおけるデータ削除時の動作を示すフローチャートである。
【図８】図１に開示したストレージシステムにおけるデータ削除時の様子を示す説明図である。
【図９】図１に開示したストレージシステムにおけるデータ格納時の様子を示す説明図である。
【図１０】図１に開示したストレージシステムにおけるデータ格納時の動作を示すフローチャートである。
【図１１】図１に開示したストレージシステムにおけるデータ移動時の様子を示す説明図である。
【図１２】図１に開示したストレージシステムにおけるデータ移動時の動作を示すフローチャートである。
【図１３】本発明の実施形態１におけるストレージシステムの構成を示すブロック図である。
【図１４】図１３に開示したストレージシステムに記憶された格納情報のデータ構造を示す図である。
【図１５】図１３に開示したストレージシステムに記憶されるＣＡリストのデータ構造を示す図である。
【図１６】図１３に開示したストレージシステムにおけるデータ格納時の動作を示すフローチャートである。
【図１７】図１３に開示したストレージシステムにおけるデータ格納時の様子を示す説明図である。
【図１８】図１３に開示したストレージシステムにおいて、図１７に示すようにデータを格納した時における格納情報のデータ内容を示す図である。
【図１９】図１３に開示したストレージシステムにおいて、図１７に示すようにデータを格納した時におけるＣＡリストのデータ内容を示す図である。
【図２０】図１３に開示したストレージシステムにおけるデータ移動時の動作を示すフローチャートである。
【図２１】図１３に開示したストレージシステムにおけるデータ移動時の様子を示す説明図である。
【図２２】図１３に開示したストレージシステムにおけるデータ削除時の動作を示すフローチャートである。
【図２３】図１３に開示したストレージシステムにおけるデータ削除時のＣＡリストのデータ内容を示す説明図である。
【図２４】図１３に開示したストレージシステムにおけるデータ削除時のＣＡリストのデータ内容を示す説明図である。
【図２５】図１３に開示したストレージシステムにおけるデータ削除時の格納情報のデータ内容を示す説明図である。
【図２６】図１３に開示したストレージシステムにおけるデータ移動時の様子を示す説明図である。
【図２７】本発明における付記１におけるストレージシステムの構成の概略を示すブロック図である。
【発明を実施するための形態】
【００３０】
＜実施形態１＞
本発明の第１の実施形態を、図１３乃至図２６を参照して説明する。図１３は、ストレージシステムの構成を示すブロック図である。図１４乃至図１５は、ストレージシステムに格納されるデータの構造を示す図である。図１６乃至図２６は、ストレージシステムの動作を示す説明図である。
【００３１】
［構成］
本発明におけるストレージシステム１は、コンテンツアドレスストレージシステムであり、基本的には、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定する、というものである。
【００３２】
そして、図１３に示すように、本実施形態におけるストレージシステム１は、演算装置と記憶装置とを備えたサーバコンピュータにて構成されている。また、ストレージシステム１は、装備された記憶装置に、複数のデータ格納部１０を有すると共に、コンテンツアドレスリスト（ＣＡリスト）２０と格納情報３０とを記憶している。また、ストレージシステム１は、装備された演算装置にプログラムが組み込まれることで構築された、重複排除機能部１１と、分散冗長配置機能部１２と、データ移動機能部１３と、データ削除機能部１４と、を備えている。以下、これら各構成について詳述する。
【００３３】
なお、本発明におけるストレージシステムは、必ずしも図１３に示す構成に限定されない。ストレージシステムは、複数台のコンピュータが接続されて構成されていてもよく、あるいは、単独のコンピュータにて構成されていてもよい。また、データ格納部１０が形成されていたり、ＣＡリスト２０や格納情報３０が記憶されている記憶装置は、外部に装備されていてもよい。
【００３４】
上記重複排除機能部１１と分散冗長配置機能部１２は、協働して、記憶対象となるデータを複数のデータ格納部１０に分散して格納する機能（データ格納制御部）を有する。例えば、記憶対象となるデータをチャンキングして、細かくブロックに分割し、各ブロックのハッシュ値をそれぞれ計算する。そして、そのハッシュ値を元に、既に格納されているブロックと比較して、同一のハッシュ値が存在している場合には、かかるブロックが重複していると判断し、当該重複しているブロックは格納しない。この場合には、重複している既に格納されているブロックのコンテンツアドレスCA（Content Address）を取得して、かかるCAの格納位置を参照することで、実ブロックにアクセス可能となる。
【００３５】
一方で、同一のハッシュ値が存在していない場合には、かかるブロックは重複していないと判断し、当該重複していないユニークなブロックを新規に格納するそして、ブロックを格納すると、当該ブロックのコンテンツアドレスCA（Content Address）が得られ、このCAを元に実ブロックにアクセス可能となる。なお、CAは、ブロックのハッシュ値と論理格納位置から構成される。
【００３６】
そして、上記重複排除機能部１１及び分散冗長配置機能部１２では、上述したようにデータを格納する際に、格納した各データを識別するための識別情報とCAとを対応付けて格納情報３０に記憶する。図１４に格納情報３０の一例を示す。この図に示すように、例えば、データ１を３つのブロックに分割した場合には、各ブロックを特定する識別情報と、かかる各ブロックのCAとを関連付けて記憶する。これにより、データ１を読み出す際には、当該データ１を分割したブロックの識別情報に対応付けられているCAが参照する格納位置から実ブロックを読み出すことで、データ１を読み出すことができる。
【００３７】
また、本実施形態における上記重複排除機能部１１及び分散冗長配置機能部１２では、上述したようにデータを格納する際に、各ブロックの格納位置を表すCAを、別途、ＣＡリスト２０に記憶する機能を有する。具体的にCAリスト２０は、図１５に示すように、各CAに関連付けて、「updated CA」欄と、「flag」欄が設けられている。なお、各欄に記憶されるデータについては後述する。
【００３８】
さらに、本実施形態における上記重複排除機能部１１及び分散冗長配置機能部１２では、上述したようにデータを格納する際に、既に同一ブロックがデータ格納部１０に格納されている場合であっても、当該同一のデータ内容のブロックを、別途、データ格納部１０に格納する場合がある。例えば、上述したように、既に記憶されているブロックに設定されている冗長度（重要度）よりも、新たに記憶する同一内容のブロックに予め設定されている冗長度（重要度）の方が高い場合には、当該新たに記憶するブロックを、別途、データ格納部１０に格納する。このとき、CAリスト２０内において、新たに記憶したブロックのCAを、同一内容の既に記憶されているブロックのCAに関連付けられている「updated CA」欄に記憶する。
【００３９】
なお、上述したデータの冗長度（重要度）とは、例えば、データをフラグメント化するときに付加された冗長フラグメントの数に応じた値であり、データの種類や当該データの格納先などに応じて、利用者によって予め設定された値となる。但し、データの重要度とは、必ずしもデータの冗長度によって決定されることに限定されない。
【００４０】
また、上記データ移動機能部１３は、既にデータ格納部１０に格納されているデータを、他の格納位置に移動する機能（データ格納制御部）を有する。そして、データ移動機能部１３がブロックを移動する際には、移動元のブロックを残しつつ、移動先に別途、同一のデータ内容のブロックを複製して格納する。このとき、データ移動機能部１３は、CAリスト２０内において、移動先の新たに記憶したブロックのCAを、同一内容の既に記憶されている移動元のブロックのCAに関連付けられている「updated CA」欄に記憶する。
【００４１】
また、データ削除機能部１４（データ削除処理部）は、データ格納部１０に格納されているブロックを削除する。特に、本実施形態においては、上述したように、同一のデータ内容のブロックが存在している場合に、このうち最も有効なブロックのみを残し、１つは削除して、データの格納効率を向上させる。
【００４２】
具体的に、データ削除機能部１４は、データ削除時に、CAリスト２０内から削除対象とはなっていない残されるブロックのCA（CAa）に関連付いている「update CA」欄を読み取る。そして、「update CA」欄にCA（CAb）の記載がある場合には、格納情報３０内において、残されるブロックの識別情報に対応付いているCA（CAa）を、「update CA」欄のCA（CAb）に書き換える。これにより、残されるブロックの参照先は、「update CA」欄に記載されていたCA（CAb）に変更され、かかるCAが表す格納位置に格納された実ブロックが参照されることとなる。従って、残されるはずのブロックのCA（CAa）にて表される格納位置に格納された実ブロックは、どのブロックからも参照されていない状態となるため、かかる実ブロックをデータ格納部１０から削除することができる。上記データ削除機能部１４の詳細な機能については、以下の動作説明時に説明する。
【００４３】
なお、上述したデータ削除機能部１４では、複数格納されている同一ブロックのうち一方を削除するよう作動するものであるが、同一ブロックが複数格納される場合とは、上述した２パターンに限定されるものではない。つまり、データ削除機能部１４は、冗長度（重要度）が異なるブロックが格納される場合やブロックが移動される場合に複数格納された同一ブロックに対して作動することに限定されず、いかなる理由により複数格納された同一ブロックに対しても作動する。
【００４４】
［動作］
次に、上述したストレージシステム１の動作を、図１６乃至図２６を参照して説明する。まずはじめに、データＡとデータＢとを格納するときの動作を、図１６のフローチャート、及び、図１７乃至図１９を参照して説明する。なお、ここでは、データＡとデータＢとが格納される際の一例を説明する。
【００４５】
まず、データＡのデータ格納が開始されたとする（ステップＳ１）。すると、図１７に示すように、書き込まれたデータＡをチャンキングして、細かくブロックａ，ｂ，ｃに分割する（ステップＳ２）。そして、各ブロックのハッシュ値をそれぞれ計算し（ステップＳ３）、そのハッシュ値を元に、既に格納されているブロックと比較して、このブロックの格納が必要であるか判断する（ステップＳ４）。なお、ステップＳ４からステップＳ６までの処理を、全てのブロックａ，ｂ，ｃに対して行う（ステップＳ７）。
【００４６】
このとき、データＡを構成するブロックａ，ｂ，ｃと同一のハッシュ値が存在していない場合には、かかるブロックは重複していないと判断し（ステップＳ４：Ｎｏ）、当該重複していないユニークなブロックを新規に格納する（ステップＳ５）。そして、ブロックを格納すると、当該ブロックのCA（Content Address）が得られ（ステップＳ６）、このCAを、各ブロックの識別情報に対応付けて、図１８に示すように、格納情報３０内に記憶する。ここでは、ブロックａにCA1、ブロックｂにCA2、ブロックｃにCA3をそれぞれ対応付けて記憶する。さらに、各CAは、図１９に示すように、CAリスト内に記憶され、各CAには「updated CA」欄と「flag」欄とが関連付けられる。
【００４７】
続いて、データＢのデータ格納が開始されたとする（ステップＳ１）。すると、図１７に示すように、書き込まれたデータＢをチャンキングして、細かくブロックｃ，ｄ，ｅに分割する（ステップＳ２）。そして、各ブロックのハッシュ値をそれぞれ計算し（ステップＳ３）、そのハッシュ値を元に、既に格納されているブロックと比較して、このブロックの格納が必要であるか判断する（ステップＳ４）。
【００４８】
このとき、データＢのブロックｃ’のハッシュ値が存在しており、既に格納されているデータＡのブロックｃと同一のデータ内容であるとすると、かかるブロックが重複していると判断する（ステップＳ４：Ｙｅｓ）。この場合には、重複するブロックの冗長度（重要度）を比較する（ステップＳ８）。例えば、既に記憶されているデータにおける冗長度は、格納情報３０内にデータやブロックに関連付けられて記憶されており、新たに記憶するデータにおける冗長度は、データの種類や格納先に応じて予め設定されている。そして、データＢのブロックｃ’の冗長度が、既に格納されているデータＡのブロックｃの冗長度よりも高い場合には（ステップＳ９：Ｙｅｓ）、ブロックｃとブロックｃ’とは同一のデータ内容ではあるが、図１７に示すように、ブロックｃ’を別途記憶する（ステップＳ１０）。
【００４９】
そして、上述同様に、格納したブロックのCAを取得して（ステップＳ１１）、このCAを、ブロックの識別情報に対応付けて、図１８に示すように、格納情報３０内に記憶する。ここでは、ブロックｃ’にCA3'を対応付ける。そして、CA3'は、図１９に示すようにCAリスト２０内に記憶され、このCAには「updated CA」欄と「flag」欄とが設けられる。さらに、このとき、CAリスト２０には、図１９に示すように、上記新たに記憶したブロックｃ’と同一内容のブロックｃのCAであるCA1の「updated CA」欄に、ブロックｃ’のCAであるCA3'が記憶される（ステップＳ１２）。
【００５０】
なお、新たに書き込もうとしているブロックの冗長度が格納済みの同一ブロックと比べて同一か低い場合は（ステップＳ９：Ｎｏ）、書き込もうとしているブロックを新規に書き込まずに、格納済みの同一ブロックのCAを参照する（ステップＳ６）。
【００５１】
そして、データＢを構成する他のブロックｄ，ｅについても上述同様の処理を行う（ステップＳ７：Ｎｏ）。この場合には、同一ブロックが記憶されていないため（ステップＳ４：Ｎｏ）、そのまま格納する（ステップＳ５）。ブロックを格納すると、当該ブロックのCAが得られ（ステップＳ６）、このCAを、各ブロックの識別情報に対応付けて、図１８に示すように、格納情報３０内に記憶する。ここでは、ブロックｄにCA4、ブロックｅにCA5をそれぞれ対応付ける。さらに、各CAは、図１９に示すように、CAリスト内に記憶され、各CAには「updated CA」欄と「flag」欄とが設けられる。
【００５２】
以上により、異なる冗長度でデータＡとデータＢとを格納すると、図１７に示すように、ブロックａ，ｂ，ｃ，ｃ’，ｄ，ｅがデータ格納部１０に格納され、各ブロックのCAは、それぞれCA1，CA2，CA3，CA3’，CA4，CA5となる。そして、格納情報３０では、図１８に示すように、各ブロックに対して各CAが対応付けられ、CAリスト２０では、図１９に示すように、CA3の「update CA」欄にCA3'が記載される。
【００５３】
次に、データＡのブロックｃを移動したときの動作を、図２０のフローチャート、及び、図２１を参照して説明する。まず、データＡが格納されているとき、ストレージシステム側の都合によって、ブロックｃの格納位置が移動するとする（ステップＳ２１）。このとき、データＡはブロックｃを参照し続けるため、データＡの参照先をブロックｃからブロックｃ’に変更しない限りブロックｃは消すことができない。そのため、図２１に示すように、同一ブロックにも関わらずブロックｃのコピーを、他の格納位置にブロックｃ’として格納する（ステップＳ２２）。
【００５４】
その後、新たに格納したブロックｃ’のCAを取得し（ステップＳ２３）、CAリスト２０の移動元であるブロックｃのCA3の「updated CA」欄を確認する（ステップＳ２４）。そして、「updated CA」欄に別のCAが存在すれば、なにもしない（ステップＳ２４：Ｙｅｓ）。一方、「update CA」欄になにも情報が存在しない場合には（ステップＳ２４：Ｎｏ）、移動先のブロックｃ’のCA3'を「updated CA」欄に記載する（ステップＳ２５）。
【００５５】
なお、データ移動時に「updated CA」を上書きしないこととしているのは、上書きすると高い冗長度のCA情報を消去してしまうことがあるためである。上書きしないことで、同じブロックが数回移動しても、領域解放後に残るブロックは最初に移動されたブロックのみとなる。高い冗長度で格納された場合は上書きされるので、同一ブロックに対しては最も高い重複度で格納されたブロックのみが残る。
【００５６】
次に、データを削除するときの動作を、図２２のフローチャート、及び、図２３乃至図２６を参照して説明する。ここでは、上述したように、図１７に示すようデータＡとデータＢを格納した状態から、データＢを削除する場合を説明する。
【００５７】
まず、CAリスト２０内の全てのCAに関連付けられたフラグを、０（初期値）に初期化する（ステップＳ３１）。これにより、図２３に示すように、CA1，CA2，CA3，CA3’，CA4，CA5のフラグは、全て０となる。
【００５８】
その後、現時点で格納されているデータ、つまり、削除される予定のデータＢとは異なるデータＡを読み込み（ステップＳ３２）、そのデータのCA（CAa）を取得する（ステップＳ３３）。ここでは、図１８に示す格納情報３０から、データＡの各ブロックａ，ｂ，ｃのCAを、１つずつ取得する。
【００５９】
そして、CAリスト２０において、取得したCA（CAa）の「update CA」欄に他のCAの記載があるかどうかを確認する（ステップＳ３４）。このとき、取得したCA（CAa）の「update CA」欄に他のCA（CAb）の記載がある場合には（ステップＳ３４：Ｙｅｓ）、格納情報３０において取得したCA（CAa）が対応付いているブロックの識別情報に、「update CA」欄の他のCA（CAb）を対応付けるよう変更する（ステップＳ３５）。つまり、取得したCA（CAa）を参照しているブロックの参照先を、「update CA」欄に記憶されていたCA（CAa）から他のCA（CAb）に変更する。
【００６０】
そして、さらに、CAリスト２０において、変更した他のCA（CAb）の「flag」を調べ、その値が０（初期値）であれば（ステップＳ３６：フラグ＝０）、当該「flag」の値を１（他の値）に変更する（ステップＳ３８）。一方で、上述したように格納情報３０において変更されたCA（CAa）のCAリスト２０における「flag」の値は、０（初期値）のままである。なお、変更した他のCA（CAb）の「flag」の値が１であれば（ステップＳ３６：フラグ＝１）、当該「flag」の値は１のままである。
【００６１】
具体的に、例えば、データＡのブロックｃのCA3を取得した場合には、図２３に示すように、CAリスト２０において取得したCA3の「update CA」にCA3'の記載があるため、図２５に示すように、格納情報３０内においてCA3が参照するブロックｃの参照先を、CA3からCA3'に変更する。つまり、図２６に示すように、データＡのブロックｃの実ブロックが格納されている格納位置を表すCAを、CA3'に変更する。そして、さらに、図２４に示すように、CAリスト２０において、CA3'の「flag」の値を０から１に変更する。なお、CA3の「flag」の値は０のままである。
【００６２】
そして、上述した処理を、現時点で格納されているデータＡの他のブロックに対しても行う（ステップＳ３７：Ｎｏ）。ここでは、データＡの各ブロックａ，ｂのCAを取得し（ステップＳ３３）、取得したCAの「update CA」欄に他のCAの記載があるかどうかを確認する（ステップＳ３４）。ブロックａ，ｂについては、取得したCA（CA1，CA2）の「update CA」欄に他のCAの記載はないため（ステップＳ３４：Ｎｏ）、単にそのCA（CA1，CA2）の「flag」を確認し、０（初期値）であれば（ステップＳ３６：フラグ＝０）、図２４に示すように、その値を１に変更する（ステップＳ３８）。
【００６３】
そして、削除対象ではない全てのデータのブロックのCAに対する上記処理が完了したのちに（ステップＳ３７：Ｙｅｓ）、CAリスト２０を調べ、「flag」が０（初期値）であるCAに対応付いているブロックを削除する（ステップＳ３９）。ここでは、図２４に示すように、CA3，CA4，CA5の「flag」が０であるため、かかるCA3，CA4，CA5にて参照される格納位置のブロックｃ，ｄ，ｅを削除する。
【００６４】
以上により、図２６に示すように、同一ブロックにも関わらず複数格納されていたブロックｃ，ｃ’は、冗長度の高い最も有効なブロックｃ’のみを残しつつ、冗長度の低いブロックｃを削除することができる。このとき、削除したブロックｃに対するデータＡの参照は、ブロックｃ’に変更されている。従って、データの信頼性を維持しつつ、同一内容の記憶対象データの重複記憶を抑制して、データ格納効率の向上を図ることができる。
【００６５】
なお、上述したデータ削除処理は、冗長度が異なる同一ブロックが格納された場合に、一方のブロックを削除する場合のみならず、ブロックが移動して同一ブロックが複数格納された場合や、その他の理由により同一ブロックが複数格納された場合にも有効である。
【００６６】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージ装置５０の構成の概略について図２７を参照して説明する。また、本発明における、ストレージシステム、プログラム、データ処理方法の構成について説明する。但し、本発明は、以下の構成に限定されない。
【００６７】
（付記１）
記憶対象データを記憶装置６０に記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを生成して記憶するデータ格納制御部５１と、
前記記憶装置６０に記憶されている前記記憶対象データを、前記記憶装置６０から削除するデータ削除処理部５２と、を備え、
前記データ格納制御部５１は、前記記憶装置６０に既に記憶されている記憶対象データと同一内容の他の記憶対象データを前記記憶装置６０に別途格納するときに、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶し、
前記データ削除処理部５２は、相互に関連付けられている前記アドレスデータのうち、一方の前記アドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置６０から削除する、
ストレージ装置。
【００６８】
（付記２）
付記１に記載のストレージ装置であって、
前記データ格納制御部は、前記記憶対象データの格納位置を表すアドレスデータを、当該記憶対象データを識別する識別情報に対応付けて記憶し、
前記データ削除処理部は、相互に関連付けられている前記アドレスデータのうち、前記一方のアドレスデータが対応付けられている前記識別情報に、当該一方のアドレスデータに換えて他方の前記アドレスデータを対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
ストレージ装置。
【００６９】
上記発明によると、まず、ストレージ装置では、記憶対象データを記憶装置に記憶する際に、当該記憶対象データの格納位置を表すアドレスデータを設定して、当該アドレスデータと記憶対象データの識別情報とを対応付けて記憶する。なお、このとき、アドレスデータをリストに記憶しておく。これにより、既に記憶されている記憶対象データを読み出す際には、アドレスデータにて表される格納位置のデータを読み出すことで、当該記憶対象データを読み出すことができる。また、既に記憶されている記憶対象データと同一内容の他の記憶対象データを記憶する際には、当該他の記憶対象データの格納先を、既に記憶されている記憶対象データの格納位置を表すアドレスデータに設定することで、同一内容のデータを別途記憶する必要がない。従って、データの重複記憶を排除することができる。
【００７０】
一方で、場合によっては、同一内容の記憶対象データを、重複して記憶装置に記憶する必要が生じることがある。かかる場合には、既に記憶されている記憶対象データの格納位置を表すアドレスデータに、後に記憶される同一内容の他の記憶対象データの格納位置を参照するアドレスデータを関連付けて、アドレスリストに記憶しておく。
【００７１】
そして、その後、記憶装置に記憶されている記憶対象データを削除する場合には、リストに記憶されているアドレスデータに、他のアドレスデータが関連付けられているかどうか調べる。関連付けられている場合には、いずれか一方のアドレスデータにて表される格納位置に格納されている記憶対象データのみを記憶装置から削除する。これにより、同一内容の記憶対象データのうち、一方が記憶装置内に残るため、データの信頼性を維持しつつ、データの重複を排除することができる。
【００７２】
特に、データ削除時には、一方のアドレスデータに対応付けられている記憶対象データの識別情報に、当該一方のアドレスデータに換えて他方のアドレスデータを対応付けた後に、一方のアドレスデータにて表される格納位置の記憶対象データを削除する。これにより、一方のアドレスデータに対応付けられていた識別情報にて特定される一方の記憶対象データが、他方のアドレスデータにて表される格納位置に格納されている同一内容の他方の記憶対象データを参照することとなる。すると、一方のアドレスデータにて表される格納位置に格納されていた一方の記憶対象データはもはや参照されていない状態となるため、かかるデータを削除することができる。
【００７３】
以上により、データ削除時には、同一内容のデータが重複記憶されている場合であっても、削除されない記憶対象データの実データの参照先を、他の同一内容の記憶対象データの格納位置を参照するアドレスデータに変更設定することで、適切なデータを記憶装置に残すことができる。これにより、記憶されるデータの信頼性を維持しつつ、同一内容の記憶対象データの重複記憶を抑制することができ、データ格納効率の向上を図ることができる。
【００７４】
（付記３）
付記２に記載のストレージ装置であって、
前記データ削除処理部は、前記記憶対象データを削除する際に、当該削除対象となる記憶対象データとは異なる前記記憶対象データの格納位置を表す前記一方のアドレスデータに前記他方のアドレスデータが関連付けられている場合に、前記異なる記憶対象データの前記識別情報に対応付けられている前記一方のアドレスデータを前記他方のアドレスデータに変更して当該識別情報に対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
ストレージ装置。
【００７５】
上記発明によると、データ削除時に、相互に関連付けられているアドレスデータのうち、削除しない記憶対象データの識別情報に対応付けられた一方のアドレスデータを、削除する予定の記憶対象データの格納位置を表す他方のアドレスデータに変更する。そして、その後、他方のアドレスデータにて表される格納位置に格納された記憶対象データは削除せずに残し、一方のアドレスデータにて表される格納位置に格納された記憶対象データを削除する。これにより、削除する記憶対象データの実データを削除されない記憶対象データとして入れ替えることができ、適切なデータを記憶装置に残すことができる。そして、その代わりに削除予定ではない記憶対象データの実データを削除することで、同一内容の記憶対象データの重複記憶を抑制することができる。
【００７６】
（付記４）
付記３に記載のストレージ装置であって、
前記データ削除処理部は、前記記憶対象データを削除する際に、全ての前記記憶対象データの格納位置を表す前記アドレスデータに関連付けたフラグを初期値に設定し、削除対象となる前記記憶対象データとは異なる前記記憶対象データの前記識別情報に対応付けられた前記一方のアドレスデータに前記他方のアドレスデータが関連付けられている場合に、前記異なる記憶対象データの前記識別情報に対応付けられている前記一方のアドレスデータを前記他方のアドレスデータに変更して当該識別情報に対応付け、当該変更された前記他方のアドレスデータに関連付けた前記フラグを他の値に設定すると共に、初期値である前記フラグが関連付けられた前記アドレスデータにて表された格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
ストレージ装置。
【００７７】
（付記５）
付記４に記載のストレージ装置であって、
前記データ削除処理部は、前記記憶対象データを削除する際に、全ての前記記憶対象データの格納位置を表す前記アドレスデータに関連付けたフラグを初期値に設定し、削除対象となる前記記憶対象データとは異なる前記記憶対象データの前記識別情報に対応付けられた前記アドレスデータに関連付けた前記フラグを他の値に設定すると共に、前記異なる記憶対象データの前記識別情報に対応付けられた前記一方のアドレスデータに前記他方のアドレスデータが関連付けられている場合には、前記一方のアドレスデータに関連付けた前記フラグは他の値に設定せず初期値のままとする、
ストレージ装置。
【００７８】
（付記６）
付記１乃至５のいずれか一項に記載のストレージ装置であって、
前記データ格納制御部は、前記記憶装置に既に記憶されている前記記憶対象データに設定されている重要度に対して、当該既に格納されている記憶対象データと同一内容の他の記憶対象データに予め設定されている重要度が高い場合に、前記他の記憶対象データを前記記憶装置に別途格納して、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶する、
ストレージ装置。
【００７９】
（付記７）
付記１乃至６のいずれか一項に記載のストレージ装置であって、
前記データ格納制御部は、前記記憶装置に既に記憶されている前記記憶対象データを他の格納位置に移動する場合に、当該既に記憶されている記憶対象データの複製である他の記憶対象データを前記記憶装置に別途格納して、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶する、
ストレージ装置。
【００８０】
（付記８）
記憶装置と、
記憶対象データを記憶装置に記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを生成して記憶するデータ格納制御部と、
前記記憶装置に記憶されている前記記憶対象データを、前記記憶装置から削除するデータ削除処理部と、を備え、
前記データ格納制御部は、前記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを前記記憶装置に別途格納するときに、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶し、
前記データ削除処理部は、相互に関連付けられている前記アドレスデータのうち、一方の前記アドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
ストレージシステム。
【００８１】
（付記９）
付記８に記載のストレージシステムであって、
前記データ格納制御部は、前記記憶対象データの格納位置を表すアドレスデータを、当該記憶対象データを識別する識別情報に対応付けて記憶し、
前記データ削除処理部は、相互に関連付けられている前記アドレスデータのうち、前記一方のアドレスデータが対応付けられている前記識別情報に、当該一方のアドレスデータに換えて他方の前記アドレスデータを対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
ストレージシステム。
【００８２】
（付記１０）
情報処理装置に、
記憶対象データを記憶装置に記憶すると共に、前記記憶対象データの格納位置を表すアドレスデータを生成して記憶するデータ格納制御部と、
前記記憶装置に記憶されている前記記憶対象データを、前記記憶装置から削除するデータ削除処理部と、を実現させると共に、
前記データ格納制御部は、前記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを前記記憶装置に別途格納するときに、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶し、
前記データ削除処理部は、相互に関連付けられている前記アドレスデータのうち、一方の前記アドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
プログラム。
【００８３】
（付記１１）
付記１０に記載のプログラムであって、
前記データ格納制御部は、前記記憶対象データの格納位置を表すアドレスデータを、当該記憶対象データを識別する識別情報に対応付けて記憶し、
前記データ削除処理部は、相互に関連付けられている前記アドレスデータのうち、前記一方のアドレスデータが対応付けられている前記識別情報に、当該一方のアドレスデータに換えて他方の前記アドレスデータを対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
プログラム。
【００８４】
（付記１２）
記憶対象データを記憶装置に記憶し、前記記憶対象データの格納位置を表すアドレスデータを生成して記憶すると共に、前記記憶装置に既に記憶されている記憶対象データと同一内容の他の記憶対象データを前記記憶装置に別途格納するときには、前記既に記憶されている記憶対象データの格納位置を表すアドレスデータに、前記他の記憶対象データの格納位置を表す他のアドレスデータを関連付けて記憶し、
前記記憶装置に記憶されている前記記憶対象データを、前記記憶装置から削除するときに、相互に関連付けられている前記アドレスデータのうち、一方の前記アドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
データ処理方法。
【００８５】
（付記１３）
付記１２に記載のデータ処理方法であって、
前記記憶対象データを記憶装置に記憶するときに、前記記憶対象データの格納位置を表すアドレスデータを、当該記憶対象データを識別する識別情報に対応付けて記憶し、
前記記憶対象データを削除するときに、相互に関連付けられている前記アドレスデータのうち、前記一方のアドレスデータが対応付けられている前記識別情報に、当該一方のアドレスデータに換えて他方の前記アドレスデータを対応付け、前記一方のアドレスデータにて表される格納位置に格納されている前記記憶対象データを前記記憶装置から削除する、
データ処理方法。
【符号の説明】
【００８６】
１      ストレージシステム
１０    データ格納部
１１    重複排除機能部
１２    分散冗長配置機能部
１３    データ移動機能部
１４    データ削除機能部
２０    ＣＡリスト
３０    格納情報
１００  ストレージシステム
１０１  重複排除機能部
１０２  分散冗長配置機能部
１０３  データ移動機能部
１０４  データ削除機能部
１１０  データ格納部
１２０  コンテンツアドレスリスト
【図１】
0005526824.tif 000002
【図２】
0005526824.tif 000003
【図３】
0005526824.tif 000004
【図４】
0005526824.tif 000005
【図５】
0005526824.tif 000006
【図６】
0005526824.tif 000007
【図７】
0005526824.tif 000008
【図８】
0005526824.tif 000009
【図９】
0005526824.tif 000010
【図１０】
0005526824.tif 000011
【図１１】
0005526824.tif 000012
【図１２】
0005526824.tif 000013
【図１３】
0005526824.tif 000014
【図１４】
0005526824.tif 000015
【図１５】
0005526824.tif 000016
【図１６】
0005526824.tif 000017
【図１７】
0005526824.tif 000018
【図１８】
0005526824.tif 000019
【図１９】
0005526824.tif 000020
【図２０】
0005526824.tif 000021
【図２１】
0005526824.tif 000022
【図２２】
0005526824.tif 000023
【図２３】
0005526824.tif 000024
【図２４】
0005526824.tif 000025
【図２５】
0005526824.tif 000026
【図２６】
0005526824.tif 000027
【図２７】
0005526824.tif 000028