(57)【要約】【課題】データ復旧時における処理の効率化を図ること。【解決手段】複数のフラグメントデータを、複数の記憶手段に分散して記憶する分散記憶処理手段と、上記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶するデータ配置監視手段と、上記記憶手段がダウンした場合に、当該ダウンした上記記憶手段に記憶されていた上記フラグメントデータを、他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶するデータ復元手段と、を備え、上記ダウンした記憶手段が復旧した場合に、上記データ配置監視手段にて記憶された上記データ配置情報にて表わされたデータ配置状況となるよう、上記復旧した記憶手段に記憶されている上記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させるデータ配置復帰手段を備える。【選択図】図２
2010191558.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶手段と、これら複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段と、を備え、
前記データ処理手段は、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを、前記複数の記憶手段に分散して記憶する分散記憶処理手段と、
前記各記憶手段に対する前記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶するデータ配置監視手段と、
前記記憶手段のいずれかがダウンした場合に、当該ダウンした前記記憶手段に記憶されていた前記フラグメントデータを、当該ダウンした前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶するデータ復元手段と、を備えると共に、
前記ダウンした記憶手段が復旧した場合に、前記データ配置監視手段にて記憶された前記データ配置情報にて表わされたデータ配置状況となるよう、前記復旧した記憶手段に記憶されている前記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させるデータ配置復帰手段を備えた、
ストレージシステム。
【請求項２】
請求項１記載のストレージシステムであって、
前記データ配置監視手段は、前記記憶手段内におけるデータ格納単位であるコンポーネント単位で、前記フラグメントデータのデータ配置状況を監視し、
前記データ復元手段は、前記ダウンした記憶手段が有していた前記コンポーネントを前記他の記憶手段に再生成し、
前記データ配置復帰手段は、前記記憶手段に対する前記コンポートネントのデータ配置を前記データ配置情報に基づいて復帰させて、前記フラグメントデータのデータ配置を復帰させる、
ストレージシステム。
【請求項３】
請求項２記載のストレージシステムであって、
前記データ配置復帰手段は、前記復旧した記憶手段に前記コンポートネントを復帰させ、このコンポーネントに、当該復旧した記憶手段に記憶されているフラグメントデータを関連付けることにより当該フラグメントデータのデータ配置を復帰させる、
ストレージシステム。
【請求項４】
請求項３記載のストレージシステムであって、
前記データ配置復帰手段は、前記データ配置情報に基づいて、前記復旧した記憶手段に復帰させた前記コンポートネントに格納すべき前記フラグメントデータが前記復旧した記憶手段に存在しない場合に、前記データ復元手段にて再生成した前記フラグメントデータを前記他の記憶手段から移動することにより当該フラグメントデータのデータ配置を復帰させる、
ストレージシステム。
【請求項５】
請求項１乃至４のいずれか一項に記載のストレージシステムであって、
前記データ配置監視手段は、監視しているデータ配置状況が一定時間以上定常状態であった場合に、当該データ配置状況を表す前記データ配置情報を記憶し、
前記データ配置復帰手段は、前記データ配置監視手段にて監視されたデータ配置状況が前記データ配置情報に対して変化しており、かつ、前記ダウンした記憶手段が復旧したときに、前記フラグメントデータのデータ配置を復帰させる、
ストレージシステム。
【請求項６】
請求項５記載のストレージシステムであって、
前記データ配置監視手段は、前記記憶手段の稼働状況を監視し、前記データ配置情報を記憶すると共に稼働している前記記憶手段を表す記憶手段リストを記憶し、
前記データ配置復帰手段は、前記データ配置監視手段にて監視されたデータ配置状況が前記データ配置情報に対して変化しており、かつ、稼働している前記記憶手段が前記記憶手段リストと一致したときに、前記フラグメントデータのデータ配置を復帰させる、
ストレージシステム。
【請求項７】
複数の記憶手段を備えた情報処理装置に、
前記複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段を実現させると共に、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを、前記複数の記憶手段に分散して記憶する分散記憶処理手段と、
前記各記憶手段に対する前記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶するデータ配置監視手段と、
前記記憶手段のいずれかがダウンした場合に、当該ダウンした前記記憶手段に記憶されていた前記フラグメントデータを、当該ダウンした前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶するデータ復元手段と、
前記ダウンした記憶手段が復旧した場合に、前記データ配置監視手段にて記憶された前記データ配置情報にて表わされたデータ配置状況となるよう、前記復旧した記憶手段に記憶されている前記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させるデータ配置復帰手段と、
を実現させるためのプログラム。
【請求項８】
請求項７記載のプログラムであって、
前記データ配置監視手段は、前記記憶手段内におけるデータ格納単位であるコンポーネント単位で、前記フラグメントデータのデータ配置状況を監視し、
前記データ復元手段は、前記ダウンした記憶手段が有していた前記コンポーネントを前記他の記憶手段に再生成し、
前記データ配置復帰手段は、前記記憶手段に対する前記コンポートネントのデータ配置を前記データ配置情報に基づいて復帰させて、前記フラグメントデータのデータ配置を復帰させる、
プログラム。
【請求項９】
複数の記憶手段を備えた情報処理装置にて、
前記複数の記憶手段に対してデータを記憶し、当該記憶手段に記憶されているデータを読み出すと共に、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを、前記複数の記憶手段に分散して記憶し、
前記各記憶手段に対する前記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶し、
前記記憶手段のいずれかがダウンした場合に、当該ダウンした前記記憶手段に記憶されていた前記フラグメントデータを、当該ダウンした前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶し、
前記ダウンした記憶手段が復旧した場合に、前記記憶されたデータ配置情報にて表わされたデータ配置状況となるよう、前記復旧した記憶手段に記憶されている前記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させる、
データ処理方法。
【請求項１０】
請求項９記載のデータ処理方法であって、
前記データ配置状況の監視時に、前記記憶手段内におけるデータ格納単位であるコンポーネント単位で、前記フラグメントデータのデータ配置状況を監視し、
前記フラグメントデータの再生成時に、前記ダウンした記憶手段が有していた前記コンポーネントを前記他の記憶手段に再生成し、
前記データ配置を復帰させる際に、前記記憶手段に対する前記コンポートネントのデータ配置を前記データ配置情報に基づいて復帰させて、前記フラグメントデータのデータ配置を復帰させる、
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムにかかり、特に、データを分散して複数の記憶装置に記憶するストレージシステムに関する。
【背景技術】
【０００２】
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
【０００３】
このような状況に応じて、近年では、特許文献１に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。
【０００４】
具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納している。そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
【０００５】
また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
【０００６】
一方で、複数の記憶装置を備えたストレージシステムでは、ノード間で負荷が偏ったり、集中したりしないような負荷分散の仕組みが要求されている。このような負荷分散システムの一例として、特許文献２に開示のシステムがある。
【０００７】
ここで、負荷分散ストレージシステムについて詳述する。負荷分散ストレージシステムは、データ格納時には冗長データを付加することによって、障害時でも自らデータ復旧を行うことができる自己修復機能を有する。また、コンポーネントをどのノードに配置するのかを決定する際に、システムとして自律的に各ノードの負荷を考慮して分散される分散冗長配置機能を有している。
【０００８】
このようなストレージシステムでは、格納されるデータは、まず、細かなデータブロックに分割される。このデータブロックは、更に細かく分割され、それに複数個の冗長データを付加してシステムを構成している複数のノードへそれぞれ格納する。そして、ストレージシステムに属しているノードは、それぞれにコンポーネントと呼ばれるデータ格納領域を有しており、データブロックはコンポーネントに格納される。さらに、ストレージシステムでは、負荷分散はコンポーネント単位で行われ、ノード間のデータのやりとりはこのコンポーネント単位で行われる。そして、コンポーネントの各ノードに対する配置は、システムによって自律的に行われる。
【０００９】
そして、上記のようなシステムにおいて、ノード障害によってノードがシステムから切り離された場合、そのノード上のコンポーネントは他のノード上で再生成される。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−２３５１７１号公報
【特許文献２】特開２００８−２０４２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述したように、自律的に各ノードの負荷を考慮して分散させる機能を有している場合には、ノードの障害からの復旧時にデータの再配置が非効率になることがある。ここで、図１のような例を考える。まず、図１（Ａ）に示すように、ノードＡ，Ｂ，Ｃ，Ｄには、それぞれコンポーネントａ，ｂ，ｃ，ｄが格納されている。このような状況において、ノードＡとノードＢに障害が発生した場合には、図１（Ｂ）に示すように、システムは、ノードＣとノードＤ上に、ノードＡ，Ｂ上に存在したコンポーネントａ，ｂを再生成する。
【００１２】
ところが、図１（Ｃ）に示すように、ノードＡ，Ｂが一時的な障害などにより再度システムに参加した場合には、元々ノードＡ，Ｂにあったコンポーネントａ，ｂがそれぞれ元のノードに戻ればよいが、それぞれ違うノードに戻る場合がある。元のノードに戻れば、そのノードは元のデータを保持しているため、データの再生成が行われないが、別のノードに戻った場合は、データをそれぞれ再生成する必要がある。すると、システムではデータの再生成処理が発生してしまうことになる。従って、不要なデータの再生成や移動が発生する場合があり、復旧時のデータの再配置が非効率となり、システムにおける負荷が増加したり、処理遅延が生じうる。
【００１３】
このため、本発明では、データ復旧時における処理の効率化を図り、システムに対する負荷や処理遅延を抑制することができるストレージシステムを提供する、ことにある。
【課題を解決するための手段】
【００１４】
かかる目的を達成するため本発明の一形態であるストレージシステムは、
複数の記憶手段と、これら複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段と、を備えている。
そして、上記データ処理手段は、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを、上記複数の記憶手段に分散して記憶する分散記憶処理手段と、
上記各記憶手段に対する上記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶するデータ配置監視手段と、
上記記憶手段のいずれかがダウンした場合に、当該ダウンした上記記憶手段に記憶されていた上記フラグメントデータを、当該ダウンした上記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶するデータ復元手段と、を備えると共に、
上記ダウンした記憶手段が復旧した場合に、上記データ配置監視手段にて記憶された上記データ配置情報にて表わされたデータ配置状況となるよう、上記復旧した記憶手段に記憶されている上記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させるデータ配置復帰手段を備える。
【００１５】
また、本発明の他の形態であるプログラムは、
複数の記憶手段を備えた情報処理装置に、
上記複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段を実現させると共に、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを、上記複数の記憶手段に分散して記憶する分散記憶処理手段と、
上記各記憶手段に対する上記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶するデータ配置監視手段と、
上記記憶手段のいずれかがダウンした場合に、当該ダウンした上記記憶手段に記憶されていた上記フラグメントデータを、当該ダウンした上記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶するデータ復元手段と、
上記ダウンした記憶手段が復旧した場合に、上記データ配置監視手段にて記憶された上記データ配置情報にて表わされたデータ配置状況となるよう、上記復旧した記憶手段に記憶されている上記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させるデータ配置復帰手段と、
を実現させるためのプログラムである。
【００１６】
また、本発明の他の形態であるデータ処理方法は、
複数の記憶手段を備えた情報処理装置にて、
上記複数の記憶手段に対してデータを記憶し、当該記憶手段に記憶されているデータを読み出すと共に、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを、上記複数の記憶手段に分散して記憶し、
上記各記憶手段に対する上記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶し、
上記記憶手段のいずれかがダウンした場合に、当該ダウンした上記記憶手段に記憶されていた上記フラグメントデータを、当該ダウンした上記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶し、
上記ダウンした記憶手段が復旧した場合に、上記記憶されたデータ配置情報にて表わされたデータ配置状況となるよう、上記復旧した記憶手段に記憶されている上記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させる、
という構成を採る。
【発明の効果】
【００１７】
本発明は、以上のように構成されることにより、効率的かつ迅速なデータ復旧を実現することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明に関連するストレージシステムの動作を示す図である。
【図２】本発明の実施形態１におけるストレージシステムの構成を示す機能ブロック図である。
【図３】本発明の実施形態２におけるシステム全体の構成を示すブロック図である。
【図４】図３に開示したストレージシステムの構成の概略を示すブロック図である。
【図５】図４に開示したストレージシステムの構成を示す機能ブロック図である。
【図６】図５に開示したストレージシステムの動作を説明するための説明図である。
【図７】図５に開示したストレージシステムの動作を説明するための説明図である。
【図８】図５に開示したストレージシステムにて取得され記憶されるデータの一例を示す図である。
【図９】図５に開示したストレージシステムの動作を示すフローチャートである。
【図１０】図５に開示したストレージシステムの動作を示すフローチャートである。
【図１１】図５に開示したストレージシステムの動作を示すフローチャートである。
【図１２】図５に開示したストレージシステムにおけるデータの復旧の様子を示す図である。
【発明を実施するための形態】
【００１９】
＜実施形態１＞
本発明の第１の実施形態を、図２を参照して説明する。図２は、ストレージシステムの構成を示す機能ブロック図である。なお、本実施形態では、ストレージシステムの基本的な構成及び動作を説明する。
【００２０】
図２に示すように、本実施形態におけるストレージシステムは、複数の記憶手段７と、これら複数の記憶手段７に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段２と、を備えている。
そして、上記データ処理手段２は、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを、上記複数の記憶手段に分散して記憶する分散記憶処理手段３と、
上記各記憶手段に対する上記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶するデータ配置監視手段４と、
上記記憶手段のいずれかがダウンした場合に、当該ダウンした上記記憶手段に記憶されていた上記フラグメントデータを、当該ダウンした上記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶するデータ復元手段５と、を備える。
さらに、本実施形態におけるストレージシステム１は、上記ダウンした記憶手段が復旧した場合に、上記データ配置監視手段にて記憶された上記データ配置情報にて表わされたデータ配置状況となるよう、上記復旧した記憶手段に記憶されている上記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させるデータ配置復帰手段６を備える。
【００２１】
上記発明によると、まず、ストレージシステムは、記憶対象データを複数の分割データに分割し、当該記憶対象データを復元するための冗長データを生成し、これら分割データと冗長データとからなる複数のフラグメントデータを、複数の記憶手段に分散して記憶する。その後、ストレージシステムは、各フラグメントデータのデータ配置状況を監視して、データ配置状況を表すデータ配置情報を記憶する。
また、ストレージシステムは、記憶手段に障害が発生してダウンすると、当該ダウンした記憶手段に記憶されていたフラグメントデータを、他のフラグメントデータに基づいて再生成して、他の記憶手段に記憶する。その後、ダウンした記憶手段が復旧した場合に、上記データ配置情報にて表わされるデータ配置状況となるよう、復旧した記憶手段に記憶されているフラグメントデータをそのまま利用して、データ配置を復帰させる。
これにより、記憶手段が一時的にダウンして復旧した場合には、記憶されていたフラグメントデータを用いてデータ配置を復旧させることができるため、余計なデータの再生成や移動の発生を抑制することができる。従って、記憶手段の復旧時において効率的かつ迅速なデータ復旧を実現することができる。
【００２２】
また、上記ストレージシステムでは、
上記データ配置監視手段は、上記記憶手段内におけるデータ格納単位であるコンポーネント単位で、上記フラグメントデータのデータ配置状況を監視し、
上記データ復元手段は、上記ダウンした記憶手段が有していた上記コンポーネントを上記他の記憶手段に再生成し、
上記データ配置復帰手段は、上記記憶手段に対する上記コンポートネントのデータ配置を上記データ配置情報に基づいて復帰させて、上記フラグメントデータのデータ配置を復帰させる、
という構成を採る。
【００２３】
また、上記ストレージシステムでは、
上記データ配置復帰手段は、上記復旧した記憶手段に上記コンポートネントを復帰させ、このコンポーネントに、当該復旧した記憶手段に記憶されているフラグメントデータを関連付けることにより当該フラグメントデータのデータ配置を復帰させる、
という構成を採る。
【００２４】
また、上記ストレージシステムでは、
上記データ配置復帰手段は、上記データ配置情報に基づいて、上記復旧した記憶手段に復帰させた上記コンポートネントに格納すべき上記フラグメントデータが上記復旧した記憶手段に存在しない場合に、上記データ復元手段にて再生成した上記フラグメントデータを上記他の記憶手段から移動することにより当該フラグメントデータのデータ配置を復帰させる、
という構成を採る。
【００２５】
また、上記ストレージシステムでは、
上記データ配置監視手段は、監視しているデータ配置状況が一定時間以上定常状態であった場合に、当該データ配置状況を表す上記データ配置情報を記憶し、
上記データ配置復帰手段は、上記データ配置監視手段にて監視されたデータ配置状況が上記データ配置情報に対して変化しており、かつ、上記ダウンした記憶手段が復旧したときに、上記フラグメントデータのデータ配置を復帰させる、
という構成を採る。
【００２６】
また、上記ストレージシステムでは、
上記データ配置監視手段は、上記記憶手段の稼働状況を監視し、上記データ配置情報を記憶すると共に稼働している上記記憶手段を表す記憶手段リストを記憶し、
上記データ配置復帰手段は、上記データ配置監視手段にて監視されたデータ配置状況が上記データ配置情報に対して変化しており、かつ、稼働している上記記憶手段が上記記憶手段リストと一致したときに、上記フラグメントデータのデータ配置を復帰させる、
という構成を採る。
【００２７】
また、上述したストレージシステムは、情報処理装置に、プログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、
複数の記憶手段を備えた情報処理装置に、
上記複数の記憶手段に対してデータを記憶すると共に当該記憶手段に記憶されているデータを読み出すデータ処理手段を実現させると共に、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを、上記複数の記憶手段に分散して記憶する分散記憶処理手段と、
上記各記憶手段に対する上記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶するデータ配置監視手段と、
上記記憶手段のいずれかがダウンした場合に、当該ダウンした上記記憶手段に記憶されていた上記フラグメントデータを、当該ダウンした上記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶するデータ復元手段と、
上記ダウンした記憶手段が復旧した場合に、上記データ配置監視手段にて記憶された上記データ配置情報にて表わされたデータ配置状況となるよう、上記復旧した記憶手段に記憶されている上記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させるデータ配置復帰手段と、
を実現させる、という構成を採る。
【００２８】
また、上記プログラムでは、
上記データ配置監視手段は、上記記憶手段内におけるデータ格納単位であるコンポーネント単位で、上記フラグメントデータのデータ配置状況を監視し、
上記データ復元手段は、上記ダウンした記憶手段が有していた上記コンポーネントを上記他の記憶手段に再生成し、
上記データ配置復帰手段は、上記記憶手段に対する上記コンポートネントのデータ配置を上記データ配置情報に基づいて復帰させて、上記フラグメントデータのデータ配置を復帰させる、
という構成を採る。
【００２９】
また、上記構成のストレージシステムにて実行されるデータ処理方法は、
複数の記憶手段に対してデータを記憶し、当該記憶手段に記憶されているデータを読み出すと共に、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを、上記複数の記憶手段に分散して記憶し、
上記各記憶手段に対する上記フラグメントデータのデータ配置状況を監視すると共に、当該データ配置状況を表すデータ配置情報を記憶し、
上記記憶手段のいずれかがダウンした場合に、当該ダウンした上記記憶手段に記憶されていた上記フラグメントデータを、当該ダウンした上記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて再生成して、当該他の記憶手段に記憶し、
上記ダウンした記憶手段が復旧した場合に、上記記憶されたデータ配置情報にて表わされたデータ配置状況となるよう、上記復旧した記憶手段に記憶されている上記フラグメントデータを用いて当該フラグメントデータのデータ配置を復帰させる、
という構成を採る。
【００３０】
そして、上記データ処理方法では、
上記データ配置状況の監視時に、上記記憶手段内におけるデータ格納単位であるコンポーネント単位で、上記フラグメントデータのデータ配置状況を監視し、
上記フラグメントデータの再生成時に、上記ダウンした記憶手段が有していた上記コンポーネントを上記他の記憶手段に再生成し、
上記データ配置を復帰させる際に、上記記憶手段に対する上記コンポートネントのデータ配置を上記データ配置情報に基づいて復帰させて、上記フラグメントデータのデータ配置を復帰させる、
という構成を採る。
【００３１】
上述した構成を有する、プログラム、又は、データ処理方法、の発明であっても、上記ストレージシステムと同様の作用を有するために、上述した本発明の目的を達成することができる。
【００３２】
＜実施形態２＞
本発明の第２の実施形態を、図３乃至図１３を参照して説明する。図３は、システム全体の構成を示すブロック図である。図４は、ストレージシステムの概略を示すブロック図であり、図５は、構成を示す機能ブロック図である。図６乃至図７は、ストレージシステムの動作を説明するための説明図である。図８は、ストレージシステムにて取得され記憶されるデータの一例を示す図である。図９乃至図１１は、ストレージシステムの動作を示すフローチャートである。図１２は、ストレージシステムにおけるデータの復帰の様子を示す図である。
【００３３】
ここで、本実施形態は、上述した実施形態１にて開示したストレージシステムの具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、１台のコンピュータで構成されていてもよい。
【００３４】
［構成］
図３に示すように、本発明におけるストレージシステム１０は、ネットワークＮを介してバックアップ処理を制御するバックアップシステム１１に接続している。そして、バックアップシステム１１は、ネットワークＮを介して接続されたバックアップ対象装置１２に格納されているバックアップ対象データ（記憶対象データ）を取得し、ストレージシステム１０に対して記憶するよう要求する。これにより、ストレージシステム１０は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
【００３５】
そして、図４に示すように、本実施形態におけるストレージシステム１０は、複数のサーバコンピュータが接続されて構成を採っている。具体的に、ストレージシステム１０は、ストレージシステム１０自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード１０Ａと、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード１０Ｂと、を備えている。なお、アクセラレータノード１０Ａの数とストレージノード１０Ｂの数は、図４に示したものに限定されず、さらに多くの各ノード１０Ａ，１０Ｂが接続されて構成されていてもよい。
【００３６】
さらに、本実施形態におけるストレージシステム１０は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。このコンテンツアドレスストレージシステムについては、後に詳述する。
【００３７】
図５に、ストレージシステム１０の構成を示す。この図に示すように、まず、ストレージシステム１０を構成するアクセラレータノード１０Ａは、装備されたＣＰＵ（Central Processing Unit）などの複数の演算装置にプログラムが組み込まれることによって構成された、データ分割／冗長データ付加部２１と、コンポーネント／ノード情報監視部２２と、を備えている。また、アクセラレータノード１０Ａは、装備されたて記憶装置に、マッピングテーブル２３と、ノードリスト２４と、を備えている。
【００３８】
また、ストレージシステム１０を構成するストレージノード１０Ｂは、装備されたＣＰＵ（Central Processing Unit）などの複数の演算装置にプログラムが組み込まれることによって構成された、コンポーネント移動部３１と、データ移動／データ再生部３２と、を備えている。また、ストレージノード１０Ｂは、装備されたて記憶装置に、コンポーネント３３を備えている。以下、各構成について詳述する。
【００３９】
なお、アクセラレータノード１０Ａ及びストレージノード１０Ｂに装備された構成は、必ずしも図５に示した構成であることに限定されない。つまり、各構成は、いずれのノードに装備されていてもよい。また、各構成は一台のコンピュータに装備されていてもよい。
【００４０】
まず、上記データ分割／冗長データ付加部２１は、バックアップ対象データ（記憶対象データ）を分散記憶するために、当該バックアップ対象データを複数のフラグメントデータに分割する。この処理の一例を図６及び図７に示す。具体的に、データ分割／冗長データ付加部２１は、まず、バックアップ対象データＡの入力を受けると（矢印Ｙ１）、図６及び図７の矢印Ｙ２に示すように、当該バックアップ対象データＡを、所定容量（例えば、６４ＫＢ）のブロックデータＤに分割する。そして、このブロックデータＤのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Ｈを算出する（矢印Ｙ３）。例えば、ハッシュ値Ｈは、予め設定されたハッシュ関数を用いて、ブロックデータＤのデータ内容から算出する。なお、このハッシュ値Ｈは、同じ内容のデータの重複記録を排除するため、及び、データの格納箇所を表すコンテンツアドレスを生成するために用いられるが、その詳細についての説明は省略する。
【００４１】
また、上記データ分割／冗長データ付加部２１は、ブロックデータＤを複数の所定の容量のフラグメントデータに分割する。例えば、図６の符号Ｄ１〜Ｄ９に示すように、９つのフラグメントデータ（分割データ４１）に分割する。さらに、データ分割／冗長データ付加部２１は、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ４１に追加する。例えば、図６の符号Ｄ１０〜Ｄ１２に示すように、３つのフラグメントデータ（冗長データ４２）を追加する。これにより、９つの分割データ４１と、３つの冗長データとにより構成される１２個のフラグメントデータからなるデータセット４０を生成する（図７の矢印Ｙ４）。
【００４２】
そして、上述したように生成された各フラグメントデータは、スイッチ１０Ｃを介して、後述する各ストレージノード１０Ｂの各コンポーネント移動部３１にて、各ストレージノード１０Ｂに形成された各コンポーネント３３に分散記憶される（分散記憶処理手段）。例えば、図６に示すように、１２個のフラグメントデータＤ１〜Ｄ１２を生成した場合には、１２個のストレージノード１０Ｂに形成されたデータ格納領域である各コンポーネント３３に、各フラグメントデータＤ１〜Ｄ１２を１つずつそれぞれ格納する（図７の矢印Ｙ５参照）。なお、上述した分散記憶処理は、アクセラレータノード１０Ａに装備された機能によって行われてもよい。
【００４３】
ここで、上述したようにフラグメントデータが格納されると、ストレージノード１０Ｂにて、当該フラグメントデータＤ１〜Ｄ１２の格納位置、つまり、当該フラグメントデータＤ１〜Ｄ１２にて復元されるブロックデータＤの格納位置を表す、コンテンツアドレスＣＡが生成される。このとき、コンテンツアドレスＣＡは、例えば、格納したブロックデータＤの内容に基づいて算出したハッシュ値Ｈの一部（ショートハッシュ）（例えば、ハッシュ値Ｈの先頭８Ｂ（バイト））と、論理格納位置を表す情報と、を組み合わせて、生成される。そして、このコンテンツアドレスＣＡは、ストレージシステム１０内のファイルシステムを管理するアクセラレータノード１０Ａに返却され（図６の矢印Ｙ７）、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスＣＡとが関連付けられて、ファイルシステムで管理される。
【００４４】
そして、ストレージシステムでは、ファイルの読み出し要求を受けると、要求されたファイルに対応するコンテンツアドレスＣＡにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出すことができる。以上のように、ストレージシステムは、データを読み書きする機能（データ処理手段）を有する。
【００４５】
また、コンポーネント／ノード情報監視部２２（データ配置監視手段）は、各ストレージノード１０Ｂに格納したフラグメントデータを、当該フラグメントデータを格納しているコンポーネント単位で管理する。具体的には、後述するように、ストレージノード１０Ｂによって自立的に実行されるコンポーネントの移動を監視し、当該コンポーネントの配置を表すコンポーネント配置情報を、一定の時間間隔おき（ｘ分おき）に取得する。そして、コンポーネント配置情報が、予め設定された時間以上（ｙ分以上）定常状態であると、ストレージノード名とコンポーネント名とを対応付けたコンポーネント配置情報をマッピングテーブル２３に記憶する。つまり、マッピングテーブル２３を更新する。
【００４６】
また、コンポーネント／ノード情報監視部２２は、正常に稼働していてストレージシステムに参加しているストレージノード１０Ｂを監視し、そのリストを表すノード情報をノードリスト２４（記憶手段リスト）として記憶する。つまり、ストレージノード１０Ｂが、停止している、あるいは、システムに参加していない、というダウン状態であるかどうか監視し、ダウン状態ではないもののリストを記憶する。具体的に、このストレージノード１０Ｂの監視は、一定の時間間隔おき（ｘ分おき）にコンポーネントの配置の監視と共に行う。そして、上記監視により、コンポーネントの配置とストレージノードのリストが一定時間以上（ｙ分以上）定常状態で変化がない場合には、その状態のコンポーネント配置情報とノード情報をマッピングテーブルとノードリストにそれぞれ記憶しなおす。
【００４７】
一方、コンポーネント／ノード情報監視部２２は、上記監視により、コンポーネント配置情報が変化したにもかかわらず、ノードリストに対してノード情報に変化がない場合には、ノード障害が一時的なもので、ストレージノード１０Ｂが復旧したと考えられる。この場合には、マッピングテーブル２３に記憶されているコンポーネント配置情報と、実際にストレージノード１０Ｂに配置されているコンポーネントの配置が同一となるよう、コンポーネントの配置を戻すべく、その指示を各ストレージノード１０Ｂに通知する。なお、コンポーネント／ノード情報監視部２２は、後述するストレージノード１０Ｂのコンポーネント移動部３１及びデータ移動／データ再生部３２と協働して、データ配置復帰手段として機能する。
【００４８】
次に、ストレージノード１０Ｂの構成について説明する。まず、各ストレージノード１０Ｂは、データ格納領域の単位である各コンポーネント３３を形成しており、後述するように、各フラグメントデータＤ１〜Ｄ１２を格納する。
【００４９】
また、上記コンポーネント移動部３１は、他のストレージノード１０Ｂと協働して、上述したようにスイッチ１０Ｃを介して送信された各フラグメントデータを分散記憶する機能を有すると共に、各ストレージノード１０Ｂ間における負荷分散機能を有している。この負荷分散機能は、具体的には、各ストレージノード１０Ｂの負荷状態を監視し、フラグメントデータの格納時やストレージノード１０Ｂの追加や削除時などに、各ストレージノード１０Ｂ間の負荷バランスに応じて、コンポーネント３３の移動を実行する。なお、このコンポーネント移動部３１による負荷分散機能は、各ストレージノード１０Ｂにて自律的に実行される。例えば、ストレージノード１０Ｂが障害などによりダウンして削除されたときには、当該ダウンしたストレージノード１０Ｂに格納されていたコンポーネントを、他のストレージノード１０Ｂに生成するよう移動する。また、例えば、ストレージノード１０Ｂが新たに追加されたり、障害から復帰して追加されたときには、当該追加されたストレージノード１０Ｂに、既存のストレージノード１０Ｂに格納されていたコンポーネントを移動する。
【００５０】
そして、特に、コンポーネント移動部３１は、上述したコンポーネント／ノード情報監視部２２からのコンポーネントの配置の復帰の指示を受けて、実際のコンポートネントの配置と、マッピングテーブル２３に記憶されたコンポーネント配置情報と一致するよう、コンポーネント３３の移動を実行する。
【００５１】
また、データ移動／データ再生部３２は、上述したコンポーネント移動部３１にて移動されたコンポーネントに対応して、当該コンポーネント内にデータを格納するよう、データの移動、あるいは、再生成を行う。具体的には、まず、コンポーネントに属するデータ単位で、コンポーネントの移動先となるストレージノードにそのデータが存在するかを確認する。そして、存在する場合には、そのデータと、上記コンポーネント移動部３１にて移動してきたコンポーネントとを関連付ける。一方、移動先となるストレージノードにデータが存在しなければ、次に、そのデータが移動元のストレージノードに存在しているかを確認する。このとき、データが移動元のストレージノードに存在していれば、当該移動元のストレージノードから移動先のストレージノードへ、そのデータを移動する。一方で、移動先のストレージノードにも移動元のストレージノードにもデータが存在しない場合には、そのデータを冗長データから再生成する。
【００５２】
以上のように、コンポーネント移動部３１とデータ移動／データ再生部３２とは、上記コンポーネント／ノード情報監視部２２と協働して、削除されたストレージノード１０Ｂに記憶されていたデータを他のストレージノード１０Ｂに復元するデータ復元手段として機能すると共に、復帰したストレージノード１０Ｂに対するデータ配置を復帰させるデータ配置復帰手段として機能する。
【００５３】
［動作］
次に、上述した構成のストレージシステムの動作を、図９乃至図１１のフローチャート、及び、図１２を参照して説明する。
【００５４】
まず、アクセラレータノード１０Ａのデータ分割／冗長データ負荷部２１にて、記憶対象データが任意の数に分割され、更に複数個の冗長データが付加され、複数のフラグメントデータが形成される（図９（Ａ）のステップＳ１）。そして、各フラグメントデータは、スイッチ１０Ｃを介して、各ストレージノード１０Ｂのコンポーネント移動部３１にて、各ストレージノード１０Ｂ間の負荷が分散するよう、コンポーネントを移動して各ストレージノード１０Ｂに格納する（図９（Ｂ）のステップＳ２）。ここでは、例えば、図１２（Ａ）に示すように、ストレージノードＡ，Ｂ，Ｃ，Ｄに対して、それぞれデータａ，ｂ，ｃ，ｄが格納されたコンポーネントａ，ｂ，ｃ，ｄを配置したとする。なお、この負荷分散によるコンポーネントの移動処理は、各ストレージノード１０Ｂ間にて自律的に常に行われている。
【００５５】
続いて、アクセラレータノード１０Ａのコンポーネント／ノード情報監視部２２の動作について、図１０を参照して説明する。まず、システムの初期導入時には、コンポーネント配置情報を定期的（ｘ分おき）に取得する（ステップＳ１１）。このとき、コンポーネント配置情報がｙ分以上定常状態であれば（ステップＳ１２でＹｅｓ）、その時の配置情報をマッピングテーブル２３に記憶し、更に、ノード情報をノードリスト２４に記録する（ステップＳ１３）。そして、その後も、アクセラレータノード１０Ａは、定期的（ｘ分おき）にコンポーネント配置情報を監視する（ステップＳ１４）。
【００５６】
その後、ストレージノード１０Ｂの障害などによって、ストレージノードがダウンしたとする。つまり、監視しているコンポーネント配置情報とノード情報が、マッピングテーブル２３とノードリスト２４とに対して変化があったとする（ステップＳ１５でＹｅｓ、ステップＳ１６でＹｅｓ）。具体例として、図１２（Ｂ）に示すようにストレージノードＡ，Ｂがダウンしたとする。すると、負荷分散処理により、ストレージノードＡ，Ｂに記憶されていたコンポーネントａ，ｂが、それぞれストレージノードＣ，Ｄに移動することとなる。つまり、ストレージノードＣにコンポーネントａ，ｃが、ストレージノードＤにコンポーネントｂ，ｄがそれぞれ配置された状態となる。なお、ストレージノードＡ，ＢからストレージノードＣ，Ｄに移動したコンポーネントａ，ｂは、それぞれ他のストレージノードに記憶されている他のコンポーネントを利用して、再生成される。この再生成については、図１１を参照して後述する。
【００５７】
そして、上述したストレージノードのダウン状態が続くと、監視しているコンポーネント配置情報とノード情報が、マッピングテーブル２３とノードリスト２４とに対して変化したまま（ステップＳ１５でＹｅｓ、ステップＳ１６でＹｅｓ）、ｙ分以上定常状態となった場合は（ステップＳ１８でＹｅｓ）、その状態のコンポーネント配置情報とノード情報をマッピングテーブルとノードリストにそれぞれ記憶し直す（ステップＳ１３）。
【００５８】
一方、上述したように、ストレージノード障害などによってコンポーネント配置情報に変化があって（ステップＳ１５でＹｅｓ）、図１２（Ｂ）に示すように自律的に負荷分散が行われたものの、ストレージノード障害は一時的なものでｙ分以内にストレージノードが復旧した場合には、ノード情報には変化がない（ステップＳ１６でＮｏ）。この場合には、変化したコンポーネント配置情報が記憶されていないこととなる。例えば、図１２（Ｂ）の状態となった後に、すぐにノードＡ，Ｂが復旧した場合には、図１２（Ａ）に示す状態のコンポーネント配置情報がマッピングテーブルに記憶されている。かかる場合には、このマッピングテーブルを参照して、コンポーネント配置をマッピングテーブルに記憶されている配置へ戻す。これにより、ストレージノードＡ，Ｂ，Ｃ，Ｄに対するコンポーネントａ，ｂ，ｃ，ｄの配置が、図１２（Ｃ）に示すように、障害発生前の図１２（Ａ）と同様の状態に戻る。
【００５９】
なお、上記コンポーネントの移動に伴う当該コンポーネントに格納されるデータの移動及びデータの再生成は、図１１に示すよう行われる。まず、コンポーネントに属するデータ単位で、移動先のストレージノードにそのデータが存在するかを確認する（ステップＳ２１）。このとき、存在すれば（ステップＳ２１でＹｅｓ）、そのデータと移動してきたコンポーネントを関連付ける（ステップＳ２２）。なお、上述した図１２（Ｂ）の状態から図１２（Ｃ）の状態への復帰は、このステップＳ２２の手法にて行われる。これにより、復旧したストレージノードに記憶されていたフラグメントデータを用いてデータ配置を復帰させることができるため、余計なデータの再生成や移動の発生を抑制することができる。その結果、ストレージノードの復旧時において効率的かつ迅速なデータ復旧を実現することができる。
【００６０】
一方、移動先のストレージノードに、移動するコンポーネントに対応するデータが存在しない場合には（ステップＳ２１でＮｏ）、次に、そのデータが移動元のストレージノードに存在しているかを確認する（ステップＳ２３）。そして、データが移動元のストレージノードに存在すれば、移動元のストレージノードから移動先のストレージノードへそのデータを移動する（ステップＳ２４）。
【００６１】
さらに、コンポーネントの移動先のストレージノードにも、移動元のストレージノードにもデータが存在しない場合、そのデータは冗長データから再生成される。なお、この処理は、上述した図１２（Ｂ）のように、いずれかのストレージノードがダウンしたときに、当該ダウンしたストレージノードに格納されていたコンポーネントを、他のストレージノードに移動する際に実行される。
【産業上の利用可能性】
【００６２】
本発明は、複数のコンピュータを接続して構成されるストレージシステムに利用することができ、産業上の利用可能性を有する。
【符号の説明】
【００６３】
１  ストレージシステム
２  データ処理手段
３  分散記憶処理手段
４  データ配置監視手段
５  データ復元手段
６  データ配置復帰手段
７  記憶手段
１０  ストレージシステム
１０Ａ  アクセラレータノード
１０Ｂ  ストレージノード
１１  バックアップシステム
１２  バックアップ対象装置
２１  データ分割／冗長データ付加部
２２  コンポーネント／ノード情報監視部
２３  マッピングテーブル
２４  ノードリスト
３１  コンポーネント移動部
３２  データ移動／データ再生成部
３３  コンポーネント
【図１】
2010191558.tif 000003
【図２】
2010191558.tif 000004
【図３】
2010191558.tif 000005
【図４】
2010191558.tif 000006
【図５】
2010191558.tif 000007
【図６】
2010191558.tif 000008
【図７】
2010191558.tif 000009
【図８】
2010191558.tif 000010
【図９】
2010191558.tif 000011
【図１０】
2010191558.tif 000012
【図１１】
2010191558.tif 000013
【図１２】
2010191558.tif 000014