(57)【要約】【課題】複数のストレージに分散して格納されるデータの分布を適切なものにすることができる分散ストレージシステムを提供する。【解決手段】複数のストレージ３Ａ〜３Ｃは、オリジナルデータを分割した複数のブロックデータを分散して格納する。経路計画部６は、複数のストレージ３Ａ〜３Ｃに接続された複数のネットワークについての空き帯域情報を得る。バランシング制御部４は、複数のネットワークについての空き帯域情報と、オリジナルデータにおけるブロックデータの位置を示すデータ位置情報とに基づいて、複数のストレージ３Ａ〜３Ｃの間におけるデータ転送の対象となる転送対象ブロックデータを求める。【選択図】図２
2011215794.tif 000002
【特許請求の範囲】
【請求項１】
オリジナルデータを分割した複数のブロックデータを分散して格納する複数のストレージと、
前記複数のストレージに接続された複数のネットワークについての空き帯域情報を得る経路計画部と、
前記複数のネットワークについての空き帯域情報と、前記オリジナルデータにおける前記ブロックデータの位置を示すデータ位置情報とに基づいて、前記複数のストレージの間におけるデータ転送の対象となる転送対象ブロックデータを求めるバランシング制御部とを含む
ことを特徴とする分散ストレージシステム。
【請求項２】
前記バランシング制御部が、前記複数のストレージの間におけるデータ転送の転送元であるストレージに、前記複数のストレージの間におけるデータ転送の転送先であるストレージへの前記転送対象ブロックデータの転送要求を送信する
ことを特徴とする請求項１に記載の分散ストレージシステム。
【請求項３】
前記バランシング制御部が、前記転送要求と共に、前記転送対象ブロックデータのサイズ及び前記転送対象ブロックデータのデータ位置情報を、前記複数のストレージの間におけるデータ転送の転送元であるストレージに送信する
ことを特徴とする請求項２に記載の分散ストレージシステム。
【請求項４】
前記分散ストレージシステムが、更に、
前記複数のストレージに接続された複数のネットワークを監視して、前記複数のネットワークについての帯域情報を得るネットワーク監視部を含み、
前記経路計画部が、前記複数のネットワークについての帯域情報に基づいて、前記複数のネットワークについての前記空き帯域情報を得る
ことを特徴とする請求項１に記載の分散ストレージシステム。
【請求項５】
前記バランシング制御部が、前記複数のストレージの各々に格納されたブロックデータの数が、前記複数のネットワークについての空き帯域情報の比に等しくなるように、前記転送対象ブロックデータの数を求める
ことを特徴とする請求項１に記載の分散ストレージシステム。
【請求項６】
前記バランシング制御部が、前記複数のストレージの各々において、前記オリジナルデータにおける連続する複数のブロックデータについて前記データ位置情報に基づいて定まるデータ局所位置毎のブロックデータの数が、前記複数のネットワークについての空き帯域情報の比に等しくなるように、前記転送対象ブロックデータを求める
ことを特徴とする請求項５に記載の分散ストレージシステム。
【請求項７】
前記バランシング制御部が、前記複数のネットワークについての空き帯域情報の比に応じて、前記複数のストレージの各々における前記データ局所位置毎のブロックデータの数の閾値を定め、前記データ局所位置毎に、前記閾値を上回る数のブロックデータを格納するストレージを前記複数のストレージの間におけるデータ転送の転送元であるストレージとし、前記閾値を下回る数のブロックデータを格納するストレージを前記複数のストレージの間におけるデータ転送の転送先であるストレージとする
ことを特徴とする請求項１に記載の分散ストレージシステム。
【請求項８】
前記バランシング制御部が、前記複数のネットワークについての空き帯域情報に基づいて前記転送対象ブロックデータから選択した１又は複数のブロックデータについて、前記複数のストレージの間におけるデータ転送の転送元であるストレージに、前記転送要求を送信する
ことを特徴とする請求項７に記載の分散ストレージシステム。
【請求項９】
オリジナルデータを分割した複数のブロックデータを分散して格納する複数のストレージを含む分散ストレージシステムにおけるバランシング制御処理を実行するプログラムであって、
コンピュータに、
前記複数のストレージに接続された複数のネットワークについての空き帯域情報を得るステップと、
前記複数のネットワークについての空き帯域情報と、前記オリジナルデータにおける前記ブロックデータの位置を示すデータ位置情報とに基づいて、前記複数のストレージの間におけるデータ転送の対象となる転送対象ブロックデータを求めるステップとを実行させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ストレージシステム及びプログラムに関する。
【背景技術】
【０００２】
分散ストレージシステムとして、例えば、ＲＡＩＤ（Redundant Array of Independent Disks）装置が知られている。ＲＡＩＤ装置において、データは、複数のストレージに分散して格納される。
【０００３】
例えば、管理用端末から利用可能な記憶装置の増加がディレクトリ管理装置に通知されると、ディレクトリ管理装置が、移動すべきセグメントを求め、移動前後のセグメントの配置情報をデータ管理装置に通知してセグメントの移動を要求し、要求を受けたデータ管理装置が、移動に必要なセグメントの配置情報を移動情報記憶部に記憶して、記憶装置のアクセスが少なくなった時点でセグメントを移動元の記憶装置から移動先の記憶装置にコピーし、コピーが終わると、移動完了をディレクトリ管理装置に通知することが、提案されている。
【０００４】
また、分割データ管理部が、コンテンツを構成する各分割データに対応する複数の複製データの配置先の決定、管理を行い、所定のタイミングで、複製データの削除や追加や再配置を行い、ホストからのコンテンツのアクセス要求の際に、そのコンテンツを構成する分割データのアクセス先を決定し、複製数計画部が、各分割データの複製数を決定し、使用可能な全記憶装置を配置先候補にして、同じ分割データに対応する複数の複製データが各々の記憶装置に均等化されるように配置決定を行うことが、提案されている。
【０００５】
また、入出力に対する処理が排他となる複数の論理ボリュームを備えた複数のボリューム群を有するストレージにおいて、論理ボリュームの負荷の偏りを監視する負荷監視部を有し，この負荷監視部によって負荷の偏りを検知した場合、負荷の大きいボリューム群内の論理ボリュームの内容を負荷の小さいボリューム群にある予備の論理ボリュームへコピーして、ある論理ボリュームを別の論理ボリューム群内の論理ボリュームへ移動することが、提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−０３０４９５号公報
【特許文献２】特開２００８−２０４２０６号公報
【特許文献３】特開２００５−２０９０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＲＡＩＤ装置においては、データの伝送路の帯域が時間によらず一定であり、また、複数のストレージのデータの入出力の性能が同じである。これらの前提の下で、ＲＡＩＤ装置は、各々のストレージにデータを均等に格納することにより、単一のストレージにデータを入出力する場合よりも高速なアクセスを実現している。
【０００８】
しかし、ネットワークの性能の向上に伴って、複数のストレージとサーバ等の処理装置との間が、専用の伝送路ではなく、ＬＡＮ（Local Area Network）やＳＡＮ（Storage Area Network）等のネットワークにより接続されることが多くなっている。このようなネットワーク環境における分散ストレージシステムでは、種々の理由から、データ転送経路であるネットワークの帯域が動的に変化する場合がある。
【０００９】
本発明は、複数のストレージに分散して格納されるデータの分布を適切なものにすることができる分散ストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
開示される分散ストレージシステムは、複数のストレージと、経路計画部と、バランシング制御部とを含む。複数のストレージは、オリジナルデータを分割した複数のブロックデータを分散して格納する。経路計画部は、複数のストレージに接続された複数のネットワークについての空き帯域情報を得る。バランシング制御部は、複数のネットワークについての空き帯域情報と、オリジナルデータにおけるブロックデータの位置を示すデータ位置情報とに基づいて、複数のストレージの間におけるデータ転送の対象となる転送対象ブロックデータを求める。
【発明の効果】
【００１１】
開示される分散ストレージシステムによれば、複数のストレージに分散して格納されるデータの分布を、動的に変化するネットワークの帯域に対応した適切なものにすることができる。
【図面の簡単な説明】
【００１２】
【図１】分散ストレージシステムの一例を示す図である。
【図２】分散ストレージシステムの一例を示す図である。
【図３】バランシング制御部の一例を示す図である。
【図４】バランシング制御処理を示す図である。
【図５】バランシング制御処理を示す図である。
【図６】バランシング制御処理を示す図である。
【図７】バランシング制御の一例の説明図である。
【図８】バランシング制御の一例の説明図である。
【図９】バランシング制御の一例の説明図である。
【図１０】バランシング制御の一例の説明図である。
【図１１】バランシング制御の一例の説明図である。
【図１２】バランシング制御処理フローである。
【図１３】分散ストレージシステムの他の例を示す図である。
【図１４】データの格納と帯域との関係の説明図である。
【図１５】データの格納と帯域との関係の説明図である。
【図１６】分散ストレージシステムにおける帯域の説明図である。
【図１７】分散ストレージシステムにおける帯域の変化の説明図である。
【図１８】分散ストレージシステムにおけるデータの読出しの説明図である。
【図１９】分散ストレージシステムにおけるデータの読出しの説明図である。
【発明を実施するための形態】
【００１３】
本発明者は、ネットワーク環境における分散ストレージシステムにおいて、前述したように、データ転送経路であるネットワークの帯域が動的に変化する場合におけるアクセスについて検討した。この場合、ＲＡＩＤ装置のように、各々のストレージにデータを均等に格納したとしても、高速なアクセスを実現することはできない。
【００１４】
例えば、図１４（Ａ）に示すように、処理装置１０１が、ネットワーク１０２Ａを介して接続されたストレージ１０３Ａと、ネットワーク１０２Ｂを介して接続されたストレージ１０３Ｂにデータを格納する。図１４（Ａ）の時点では、ネットワーク１０２Ａの帯域Ａは、ネットワーク１０２Ｂの帯域Ｂよりも狭い。
【００１５】
この場合において、処理装置１０１が、ネットワーク１０２Ａの帯域Ａ及びネットワーク１０２Ｂの帯域Ｂを最大限に使用して、ストレージ１０３Ａ及びストレージ１０３Ｂに、データを書き込む。この結果、ストレージ１０３Ａに格納されたデータ量Ａと、ストレージ１０３Ｂに格納されたデータ量Ｂとは、対応するネットワークの帯域に応じて異なる。この結果、格納されたデータ量に偏りが生じる。
【００１６】
この後、図１４（Ａ）のようにして格納されたデータを、処理装置１０１が、図１４（Ｂ）に示すように、読み出す。この時、ネットワーク１０２Ａの帯域及びネットワーク１０２Ｂの帯域は、時間の経過と共に動的に変化して、図１４（Ａ）の場合とは異なっている。例えば、図１４（Ａ）の場合とは逆に、図１４（Ｂ）の時点では、ネットワーク１０２Ａの帯域Ｃ（＝Ｂ）は、ネットワーク１０２Ｂの帯域Ｄ（＝Ａ）よりも広い。
【００１７】
この場合において、処理装置１０１が、ネットワーク１０２Ａの帯域Ｃ及びネットワーク１０２Ｂの帯域Ｄを最大限に使用して、ストレージ１０３Ａ及びストレージ１０３Ｂから、データを読み出す。この結果、ストレージ１０３Ａに格納されたデータ量Ａのデータは全て読み出される。これに対して、ストレージ１０３Ａに格納されたデータの読み出しが終了した時点で、ストレージ１０３Ｂに格納されたデータ量Ｂのデータは、まだ、その一部Ｂ’が読み出されずに、ストレージ１０３Ｂに残される。
【００１８】
図１５は、ネットワークの帯域が動的に変化する場合における、データ転送量と転送時間との関係を示す。
【００１９】
図１５の部分Ｘは、図１４（Ａ）に示すデータ転送における転送時間を示す。図１５の部分Ｘにおいては、ネットワーク１０２Ａの帯域Ａ及びネットワーク１０２Ｂの帯域Ｂが最大限に使用される。従って、帯域Ａを用いたデータ量Ａの転送と、帯域Ｂを用いたデータ量Ｂの転送とが、時刻ｔ１で同時に終了する。このため、図１５の部分Ｘにおけるデータの転送時間ｔ１は最少となる。なお、図１４（Ａ）はデータの書き込みについて示すが、データの読出しの場合についても、ほぼ同様であると考えて良い。
【００２０】
これに対して、図１５の部分Ｙは、図２に示すデータ転送における転送時間を示す。図１５の部分Ｙにおいては、ネットワーク１０２Ａの帯域Ｃを用いたデータ量Ａの転送は、時刻ｔ１よりも早い時刻ｔ２で終了するが、ネットワーク１０２Ｂの帯域Ｄを用いたデータ量Ｂの転送は、時刻ｔ１よりも遅い時刻ｔ３で終了する。このため、図１５の部分Ｙにおけるデータの転送時間は、図１５の部分Ｘにおけるデータの転送時間よりもΔｔだけ遅延する。これは、図１５の部分Ｙにおいて、ネットワーク１０２Ａの帯域Ｃが有効に活用できていないためである。
【００２１】
以上のようなネットワークの帯域の動的な変化は、以下のような原因によって生じるものと考えられる。
【００２２】
例えば、ネットワークは、複数のスイッチで接続される可能性があり、各々のスイッチの間でのネットワーク帯域が異なる可能性がある。例えば、図１６に示すように、データセンタにおいては、基幹部分の帯域が１０Ｇｂｐｓと十分に広くても、末端のスイッチの先の部分の帯域は１００Ｍｂｐｓと狭い場合がある。
【００２３】
これに加えて、複数のサーバ１０１上で動作する複数のアプリケーションプログラム（以下、アプリケーション）は、各々のサーバ１０１から、各々のタイミングで、帯域の異なるネットワーク１０２を介して、複数のストレージ１０３についてデータを入出力する。このため、各サーバの使用できるネットワーク帯域は、時間により変化する。
【００２４】
例えば、図１７に示すように、処理装置１０１Ａ〜１０１Ｃが、１つのネットワークを共用する場合がある。この時、処理装置１０１Ａで動作するアプリケーションは、断続的にデータの入出力を行う。処理装置１０１Ｃで動作するアプリケーションは、一時的に大きな帯域のデータ入出力の後に、連続して小さな帯域のデータ入出力を行う。この場合、処理装置１０１Ｂで動作するアプリケーションが使用できるネットワークの帯域は、帯域Ｅの全体から、処理装置１０１Ａ及び処理装置１０１Ｃが使用する帯域を除いたものとなり、時間的に変化する帯域となる。以上のように、処理装置１０１Ｂが使用できる帯域は予測不可能であり、かつ、複雑に変化する。
【００２５】
なお、ネットワーク及びストレージが仮想化された場合においても、以上に述べたと同様に、ネットワーク及び複数のアプリケーションプログラムによる帯域の変化が発生する。
【００２６】
以上のように、ネットワークの帯域が動的に変化する場合、本発明者の検討によれば、格納されるデータの内容を考慮せずにデータの量のみを調整しても、データの分布を、動的に変化するネットワークの帯域に対応して最適化することはできない。特に、本発明者の検討によれば、画像データのように、連続してアクセスされるデータについては、複数のストレージに分散して格納されるデータの分布を最適化することはできない。換言すれば、データのアクセスパターン(アクセス時間)も考慮したデータ配置を行わなければ、最適なデータ分布とすることはできない。
【００２７】
具体的には、複数のストレージにおける負荷が均等になるように、複数のストレージの間でデータを移動して負荷を均等化しても、結果的に、データの入出力を高速化することができない。これは、データを実際に使用する装置からのデータアクセス（アクセスパターン）も含めて考慮しなければ、データが使用されるまでの時間を短縮できず、データの入出力を高速化したことにはならないためである。また、データのコピーを複数のストレージに格納して、負荷が少ないストレージを選択してアクセスしても、常に複数のコピーが必要であるので、データの格納の時点で、本来の格納に使用可能な帯域を少なくしてしまう。
【００２８】
例えば、図１８（Ａ）に示すように、ブロックデータ「１」〜「１２」までに分割することができるデータ（オリジナルデータ）１０５を考える。オリジナルデータ１０５において、各々のブロックデータ１０６に付与されたブロック番号は、オリジナルデータ１０５における当該ブロックデータ１０６の位置を表す。ブロックデータ１０６に付与された番号は、ブロックデータ１０６を処理する順番である。なお、ストレージ１０３から読み出されたブロックデータ１０６をブロック番号の順に並べる処理は、オリジナルデータ１０５を処理する処理装置が実行する処理である。
【００２９】
このようなオリジナルデータ１０５が、例えば、図１８（Ｂ）に示すように、２個のストレージ１０３Ａ及びストレージ１０３Ｂに分散して格納される。この時、図１４（Ａ）の場合と同様に、オリジナルデータ１０５の格納の時点におけるネットワークの帯域の偏りに起因して、２個のストレージ１０３Ａ及びストレージ１０３Ｂにおけるブロックデータ１０６の数が偏る。例えば、ストレージ１０３Ａに格納されるブロックデータ１０６の数が「３」となり、ストレージ１０３Ｂに格納されるブロックデータ１０６の数が「９」となる。
【００３０】
この後、３個のブロックデータ「１０」「１１」「１２」が、ストレージ１０３Ａからストレージ１０３Ｂに転送される。これにより、図１９の部分Ｙに示すように、複数のストレージ１０３Ａ及び１０３Ｂにおけるブロックデータ１０６の数が、均等になる。しかし、前述したように、ブロックデータ１０６の数は均等であっても、オリジナルデータ１０５の内容は考慮されていない。
【００３１】
この後、複数のストレージ１０３Ａ及び１０３Ｂから、オリジナルデータが読み出される。この時点では、ネットワークの帯域が変化して、ストレージ１０３Ａが使用するネットワークの帯域とストレージ１０３Ｂが使用するネットワークの帯域とが等しい。
【００３２】
この状態で、図１９の部分Ｙに示すように、処理装置１０１が、ブロックデータ「１」〜「９」を連続的に読み出して、処理を実行する。この場合、ストレージ１０３Ａから必要なブロックデータ「１」「３」「５」を読み出した時点では、必要なブロックデータ１０６は揃わない。また、その後のストレージ１０３Ａが使用可能なネットワークの帯域は、読み出すデータが存在しないので、使用されずに無駄となる。この無駄になった帯域に相当する分のブロックデータ１０６は、ストレージ１０３Ｂから読み出される。従って、処理装置１０１から見ると、Δｔだけデータの入出力が遅れたことになる。
【００３３】
一方、本発明者の検討によれば、図１９の部分Ｚに示すように、オリジナルデータ１０５の内容を考慮して、ブロックデータ１０６の数を均等にすることができれば、図１９の部分Ｙに示すように、ストレージ１０３Ａが使用可能なネットワークの帯域が無駄となることを回避することができる。
【００３４】
具体的には、図１９の部分Ｚにおいて、オリジナルデータ１０５の内容を考慮して、３個のブロックデータ「７」「９」「１１」が、ストレージ１０３Ａからストレージ１０３Ｂに転送される。これにより、オリジナルデータ１０５の内容が考慮された上で、複数のストレージ１０３Ａ及び１０３Ｂにおけるブロックデータ１０６の数が均等にされる。
【００３５】
この後、複数のストレージ１０３Ａ及び１０３Ｂから、オリジナルデータが読み出される。この時点では、ネットワークの帯域が変化して、ストレージ１０３Ａが使用するネットワークの帯域とストレージ１０３Ｂが使用するネットワークの帯域とが等しい。
【００３６】
この状態で、図１９の部分Ｚに示すように、処理装置１０１が、ブロックデータ「１」〜「９」を連続的に読み出して、処理を実行する。この場合、ストレージ１０３Ａ及びストレージ１０３Ｂから、使用可能なネットワークの帯域を無駄にすることなく、ブロックデータ「１」〜「９」が連続的に読み出される。従って、処理装置１０１から見ると、Δｔだけデータの入出力が早く終了したことになる。
【００３７】
開示の分散ストレージシステム及びプログラムは、オリジナルデータ１０５の内容を考慮して、複数のストレージに分散して格納されるデータの分布を、動的に変化するネットワークの帯域に対応する適切なものにする。
【００３８】
図１及び図２は、分散ストレージシステムの構成を示す図である。
【００３９】
分散ストレージシステムは、映像符号化装置１０、処理装置１１及び１２、ノード管理装置１３、複数のストレージ（ストレージノード又はストレージ装置）３Ａ〜３Ｃ、これらの間を接続するネットワーク２を含む。映像符号化装置１０、処理装置１１及び１２は、複数のストレージ３Ａ〜３Ｃに、分散して種々のデータを格納する。ノード管理装置１３は、複数のストレージ３Ａ〜３Ｃへのデータの格納を管理する。処理装置１１及び１２は、省略するようにしても良い。ノード管理装置１３が、複数のストレージ３Ａ〜３Ｃへデータを格納するようにしても良い。また、ノード管理装置１３と映像符号化装置１０とが同一の装置であっても良い。
【００４０】
映像符号化装置１０、処理装置１１及び１２、ノード管理装置１３をまとめて、複数の処理装置１０〜１３ということがある。複数の処理装置１０〜１３の数、換言すれば、複数のストレージ３Ａ〜３Ｃにデータを格納するコンピュータの数は、４個に限られない。また、データを格納する複数のストレージ３Ａ〜３Ｃの数は、３個に限られない。
【００４１】
ネットワーク２は、上位ネットワーク２１、プローブ２２、スイッチ（ＳＷ）２３、下位ネットワーク２４Ａ〜２４Ｄを含む。上位ネットワーク２１は、例えば、伝送速度が１Ｇｂｐｓの基幹ネットワークである。プローブ２２は、上位ネットワーク２１に挿入され、データを転送する通信装置である。スイッチ２３は、上位ネットワーク２１と下位ネットワーク２４Ａ〜２４Ｄとの間に接続されるネットワークスイッチであり、受信したデータを、データのあて先である複数の処理装置１０〜１３の接続されたスイッチ２３又は複数のストレージ３Ａ〜３Ｃの接続されたスイッチ２３へ転送する。下位ネットワーク２４Ａ〜２４Ｄは、例えば、伝送速度が１００Ｍｂｐｓの末端のネットワークである。ネットワーク２の構成は、図１に示す構成に限られない。
【００４２】
例えば、映像符号化装置１０は、複数のストレージ３Ａ〜３Ｃに、分散して映像データを格納する。この時、映像データは、映像符号化装置１０から複数のストレージ３Ａ〜３Ｃへ、ネットワーク２４Ｄ、スイッチ２３、ネットワーク２１、プローブ２２、スイッチ２３、ネットワーク２４Ａ〜２４Ｃを、この順に経由して転送される。
【００４３】
図２に示すように、分散ストレージシステムは、データ割り当て部１、バランシング制御部４、ネットワーク監視部５、経路計画部６を含む。これにより、分散ストレージシステムは、複数のストレージ３Ａ〜３Ｃに格納されたデータ量を均一にする。
【００４４】
図２の例において、データ割り当て部１は、例えば映像符号化装置１０に設けられる。データ割り当て部１は、処理装置１０〜１３のいずれに設けられても良く、データを複数のストレージ３Ａ〜３Ｃに格納する装置に設けられる。バランシング制御部４及び経路計画部６は、ノード管理装置１３に設けられる。ネットワーク監視部５は、ネットワーク２、例えば、複数のプローブ２２の各々に設けられる。
【００４５】
データ割り当て部１は、オリジナルデータを複数のブロックデータに分割する。オリジナルデータは、複数のストレージ３Ａ〜３Ｃに分散して格納されるデータである。オリジナルデータは、例えば、映像データであり、分散ネットワークシステムの外部からネットワーク２を介して映像符号化装置１０に入力される。ブロックデータは、オリジナルデータを処理する処理装置、換言すれば、処理プログラムにおける処理の単位である。従って、ブロックデータは、オリジナルデータを処理する処理装置、換言すれば、処理プログラムに依存して定まる。例えば、ブロックデータは、固定長のデータであり、画像信号の１ページ、映像信号の１フレーム、１６ドット×１６ドットの画像信号等である。ブロックデータのサイズは可変長であっても良い。
【００４６】
データ割り当て部１は、分割した複数のブロックデータを、ネットワーク２を介して、ストレージ３Ａ〜３Ｃに格納する。これにより、ストレージ３Ａ〜３Ｃは、オリジナルデータを分割した複数のブロックデータを分散して格納する。
【００４７】
この時点で、ストレージ３Ａ〜３Ｃにおけるデータ量は考慮されない。従って、例えば、ブロックデータは、データ割り当て部１がその時点で使用可能なネットワーク２４Ａ〜２４Ｃに接続されたストレージ３に送信され、格納される。データ割り当て部１は、データ割り当て部１がその時点で使用可能なネットワーク２４Ａ〜２４Ｃを、ネットワーク監視部５からのネットワーク輻輳情報に基づいて求める。
【００４８】
各々のストレージ３Ａ〜３Ｃは、オリジナルデータについてのデータ量を、バランシング制御部４に通知する。データ量は、例えば、各々のストレージ３Ａ〜３Ｃがブロックデータを受信する都度に、通知される。また、データ量は、オリジナルデータ毎に通知される。
【００４９】
データ割り当て部１は、データ位置情報をバランシング制御部４に通知する。データ位置情報は、データ割り当て部１がブロックデータをストレージ３Ａ〜３Ｃに送信する都度に、そのブロックデータについて、通知される。データ位置情報は、例えば、オリジナルデータにおけるブロックデータの位置を示す情報である。
【００５０】
データ割り当て部１は、使用帯域情報を経路計画部６に通知する。使用帯域情報は、データ割り当て部１がブロックデータをストレージ３Ａ〜３Ｃに送信する都度に、その送信に使用する複数のネットワーク２４Ａ〜２４Ｄの各々及び複数のネットワーク２１の各々について、通知される。使用帯域情報は、複数のネットワーク２４Ａ〜２４Ｄ毎及び複数のネットワーク２１毎に、その時点でデータ割り当て部１が使用している帯域を示す情報である。
【００５１】
ネットワーク監視部５は、ストレージ３Ａ〜３Ｃに接続された複数のネットワーク２４Ａ〜２４Ｃを含むネットワーク２を監視して、複数のネットワーク２４Ａ〜２４Ｃを含むネットワーク２についての帯域情報を得る。具体的には、ネットワーク監視部５は、ネットワーク２４Ａ〜２４Ｄの各々及び複数のネットワーク２１の各々を監視して、監視の結果に基づいてネットワーク輻輳情報を生成して、データ割り当て部１及び経路計画部６に送信する。ネットワーク輻輳情報は、ネットワーク２に含まれる複数のネットワーク２４Ａ〜２４Ｄの各々及び複数のネットワーク２１の各々について、その時点で使用されている帯域を示す情報である。
【００５２】
経路計画部６は、ストレージ３Ａ〜３Ｃに接続された複数のネットワーク２４Ａ〜２４Ｃを含むネットワーク２についての空き帯域情報を得る。複数のネットワーク２４Ａ〜２４Ｃを含むネットワーク２についての空き帯域情報は、複数のネットワーク２４Ａ〜２４Ｃを含むネットワーク２についての帯域情報に基づいて得られる。
【００５３】
具体的には、経路計画部６は、ネットワーク輻輳情報と経路情報とに基づいて、空き帯域情報、総帯域情報を生成して、バランシング制御部４に送信する。経路情報は、ストレージ３Ａ〜３Ｃの各々が使用可能な経路（使用可能経路）を示す情報である。経路情報は、図１に示す分散ネットワークシステムの構成に基づいて、予め知ることができ、例えば、ネットワーク監視部５又はノード管理装置１３から入力される。空き帯域情報は、使用可能経路毎に、換言すれば、ストレージ３Ａ〜３Ｃ毎に、その時点で使用可能な帯域を示す情報である。総帯域情報は、使用可能経路毎に、換言すれば、ストレージ３Ａ〜３Ｃ毎に、使用可能な全帯域を示す情報である。
【００５４】
バランシング制御部４は、複数のネットワーク２４Ａ〜２４Ｃを含むネットワーク２についての空き帯域情報と、データ位置情報とに基づいて、転送対象ブロックデータを求める。転送対象ブロックデータは、ストレージ３Ａ〜３Ｃの間におけるデータ転送の対象となるブロックデータである。
【００５５】
具体的には、バランシング制御部４は、データ位置情報、分割数、空き帯域情報、総帯域情報、及び、ストレージ３Ａ〜３Ｃから通知されたデータ量に基づいて、バランシング要求、転送サイズ、転送データ位置を生成する。分割数は、１個のオリジナルデータを分散して格納するストレージ３Ａ〜３Ｃの数（ストレージノード数）を示す情報である。分割数は、例えば、データ割り当て部１から入力される。
【００５６】
バランシング要求に従ってブロックデータを送信するストレージ３を、転送元ストレージ３という。また、バランシング要求に従って送信されたブロックデータを受信するストレージ３を、転送先ストレージ３という。
【００５７】
バランシング制御部４は、バランシング要求、転送サイズ、転送データ位置を、転送元ストレージ３に送信する。バランシング要求を受信した転送元ストレージ３は、転送先ストレージ３よりも多い数のブロックデータを格納しているので、転送先ストレージ３に、転送データ位置により指定されたブロックデータである転送対象ブロックデータを転送する。転送先ストレージ３は、転送元ストレージ３よりも少ない数のブロックデータを格納しているので、送信された転送対象ブロックデータを受信して格納する。
【００５８】
バランシング要求は、転送元ストレージ３に対して、転送先ストレージ３へ、転送対象ブロックデータを転送することを要求する転送要求である。バランシング要求は、転送先ストレージ３のアドレスを含む。転送サイズは、転送対象ブロックデータのサイズを示す情報である。転送データ位置は、例えば、転送対象ブロックデータのオリジナルデータにおける位置を示すデータ位置情報である。
【００５９】
図３は、バランシング制御部の一例を示す図である。図４〜図６は、バランシング制御処理を示す図である。
【００６０】
バランシング制御部４は、基本的には、空き帯域情報とデータ位置情報とに基づいて、転送元ストレージ３に、ブロックデータの転送を要求するバランシング要求を送信する。この時、バランシング制御部４は、転送サイズ及び転送データ位置も、転送元ストレージ３に送信する。
【００６１】
例えば、図４に示すように、あるオリジナルデータについて、ストレージ３Ａに多くのブロックデータが格納され、ストレージ３Ｂに少ないブロックデータが格納されたとする。この時、ストレージ３Ａに格納されたデータ量とストレージ３Ｂに格納されたデータ量との比が、例えば８：２であるとする。
【００６２】
更に、ストレージ３Ａが使用可能なネットワークの帯域が大きく、ストレージ３Ｂが使用可能なネットワークの帯域が小さいとする。この時、ストレージ３Ａが使用可能なネットワークの帯域とストレージ３Ｂが使用可能なネットワークの帯域との比が、例えば６：４であるとする。
【００６３】
図４の場合、バランシング制御部４は、前記帯域の比に従って、ストレージ３Ａに格納されたデータ量とストレージ３Ｂに格納されたデータ量との比を、６：４とする。換言すれば、前記データ量の比が、８：２から、前記帯域の比に等しい６：４となるように、ストレージ３Ａにブロックデータの転送を要求する。このブロックデータの転送の結果、図１４（Ｂ）及び図１５の部分Ｙに示すように、ブロックデータの読出しが遅延することを防止することができる。
【００６４】
また、図５に示すように、あるオリジナルデータにおけるデータ局所位置Ｘについて、ストレージ３Ａに多くのブロックデータが格納され、ストレージ３Ｂに少ないブロックデータが格納されたとする。この時、ストレージ３Ａに格納されたデータ量とストレージ３Ｂに格納されたデータ量との比が、例えば８：２であるとする。
【００６５】
更に、ストレージ３Ａが使用可能なネットワークの帯域が大きく、ストレージ３Ａが使用可能なネットワークの帯域が小さいとする。この時、ストレージ３Ａが使用可能なネットワークの帯域とストレージ３Ｂが使用可能なネットワークの帯域との比が、例えば６：４であるとする。
【００６６】
図５の場合、バランシング制御部４は、前記帯域の比に従って、ストレージ３Ａに格納されたデータ局所位置Ｘのデータ量とストレージ３Ｂに格納されたデータ局所位置Ｘのデータ量との比を、６：４とする。換言すれば、前記データ局所位置Ｘのデータ量の比が、８：２から、前記帯域の比に等しく６：４となるように、ストレージ３Ａにブロックデータの転送を要求する。このブロックデータの転送の結果、図１９の部分Ｙに示すように、ブロックデータの読出しが遅延することを防止することができる。
【００６７】
このようなバランシング処理のために、バランシング制御部４は、図６に示すように、各々のストレージ３Ａ〜３Ｃにおいて、オリジナルデータ５５について、データ局所位置毎に、何個のブロックデータ５６が格納されているかを求める。
【００６８】
ここで、データ局所位置Ｘは、図６に示すように、あるオリジナルデータ５５における予め定められた範囲である。データ局所位置Ｘである範囲に属するブロックデータ５６を、局所データＸという。データ局所位置Ｘは、オリジナルデータを処理する処理装置、換言すれば、処理プログラムに依存して定まる。データ局所位置Ｘは、予め定められた複数のブロックデータを含む。従って、データ局所位置Ｘは、固定である。なお、データ局所位置は、例えば、これに含まれるブロックデータの数を可変とすることにより、可変であっても良い。
【００６９】
なお、オリジナルデータ５５は、データを一意に定めるデータＩＤにより識別される。ブロックデータ５６は、ブロックデータ５６を一意に定めるブロック番号により識別される。ブロック番号は、先頭のブロックから順に付与される。
【００７０】
データ局所位置Ｘに含まれるブロックデータの数は固定であり、また、分割数も固定である。従って、後述するように、ストレージ３Ａ、３Ｂ、３Ｃの各々が使用可能なネットワーク２４Ａ〜２４Ｃの帯域の比が求まれば、これに応じて、データ局所位置Ｘに含まれるブロックデータを、ストレージ３Ａ、３Ｂ、３Ｃの各々に分配することができる。
【００７１】
なお、図４及び図５は、バランシング制御の概念を表すものであり、実際のバランシング制御は、図７〜図１１を参照して後述する処理として実現される。また、実際には、オリジナルデータの全てのデータ局所位置について、図５に示す処理を実行すると、結果として、図４に示す処理を実行したことになる。図７〜図１１を参照して後述する処理は、オリジナルデータの全てのデータ局所位置について、図５に示す処理を実行する処理である。
【００７２】
また、後述するように、データ量はブロックデータの数を用いて表されるので、データ局所位置Ｘのデータ量の比は、厳密には、前記帯域の比に等しくすることができ難い。従って、データ局所位置Ｘのデータ量の比は、前記帯域の比と完全に一致しなくても良く、ほぼ等しければ良い。データ局所位置Ｘのデータ量の比と前記帯域の比とが等しいと考えて良い範囲は、経験的に定めることができる。
【００７３】
バランシング制御部４は、データ量統計部４１、データ量比較部４２を含む。データ量統計部４１は、データ量とデータ位置情報とに基づいて、累積データ量とデータ分布情報を生成し、データ量比較部４２に入力する。データ量比較部４２は、累積データ量、データ分布情報、分割数、空き帯域情報及び総帯域情報に基づいて、バランシング要求、転送サイズ、転送データ位置を生成して、ストレージ３に送信する。また、データ量比較部４２は、バランシング情報をデータ量統計部４１に送信する。バランシング情報は、バランシング要求、転送サイズ、転送データ位置である。
【００７４】
以下、分散ストレージシステムにおけるバランシング制御について、図７〜図１１を参照して、具体的に説明する。
【００７５】
以下の説明において、図７に示すように、データ割り当て部１及びバランシング制御部４は、スイッチ２５を介して、３個のストレージ３Ａ〜３Ｃに接続されているものとする。スイッチ２５は、ネットワーク２４Ｄ、スイッチ２３、ネットワーク２１、プローブ２２に相当する。ネットワーク２６Ａ〜２６Ｃは、ストレージ３Ａ〜３Ｃに対応するネットワークであり、ネットワーク２４Ａ〜２４Ｃに相当する。
【００７６】
経路計画部６は、図８及び図９に示すように、ストレージ３Ａ〜３Ｃについての空き帯域情報を算出する。
【００７７】
例えば、ストレージ３Ａからストレージ３Ｂへバランシング制御によるデータ転送が実行される場合、転送されるデータは、ネットワーク２４Ａ、スイッチ２３、ネットワーク２１、プローブ２２、ネットワーク２１、スイッチ２３、ネットワーク２４Ｂを経由する。経路計画部６は、この経路を、経路情報に基づいて求める。
【００７８】
前述したように、ネットワーク２４Ａ及び２４Ｂのデータ転送能力が１００Ｍｂｐｓであり、ネットワーク２１のデータ転送能力が１Ｇｂｐｓである。これらのデータ転送能力が総帯域の上限値である。これらのデータ転送能力は、ネットワーク監視部５により保持される。一方、処理装置１１が、ストレージ３Ａにアクセスして、ネットワーク２４Ａを使用しているとする。このアクセスは、バランシング制御によるデータ転送よりも優先される。
【００７９】
ここで、ネットワーク２４Ａについてのネットワーク輻輳情報は、例えば、ネットワーク２４Ａのデータ転送能力と使用されている帯域とにより表される。従って、経路計画部６は、ネットワーク４Ａのデータ転送能力と、処理装置１１がネットワーク４Ａを使用している帯域は、ネットワーク４Ａについてのネットワーク輻輳情報として、ネットワーク監視部５から得る。
【００８０】
この場合、ネットワーク２４Ａについて、映像符号化装置１０が使用可能な帯域は、データ転送能力から処理装置１１が使用している帯域を差し引いた値である。これが、ストレージ３Ａについて、映像符号化装置１０が使用可能な帯域、換言すれば、例えば図８（Ａ）に示すような、ストレージ３Ａについての総帯域である。
【００８１】
ここで、映像符号化装置１０が、オリジナルデータを格納するためにストレージ３Ａにアクセスして、ネットワーク２４Ａを使用するとする。このアクセスは、バランシング制御によるデータ転送よりも優先される。このアクセスのために映像符号化装置１０が使用する帯域が使用帯域である。使用帯域は、データ割り当て部１から経路計画部６に通知される。
【００８２】
そこで、経路計画部６は、ネットワーク２４Ａについての総帯域から、ネットワーク２４Ａについての使用帯域を差し引く。これが、ストレージ３Ａについて、バランシング制御によるデータ転送に使用可能な帯域、換言すれば、例えば図８（Ａ）に示すような、ストレージ３Ａについての空き帯域である。
【００８３】
なお、ストレージ３Ａからストレージ３Ｂへバランシング制御によるデータ転送が実行される場合、転送されるデータは、ネットワーク２１を経由する。従って、経路計画部６は、実際には、ネットワーク２１についての総帯域、使用帯域、空き帯域についても、同様に、算出する。しかし、例えばネットワーク２４Ａのデータ転送能力よりも、ネットワーク２１のデータ転送能力が十分に大きい。従って、ネットワーク２４Ａは、ネットワーク２１の輻輳状態により影響を受けることは少ない。そこで、ネットワーク２１の総帯域、使用帯域、空き帯域についての処理を省略するようにしても良い。
【００８４】
また、ストレージ３Ａからストレージ３Ｂへバランシング制御によるデータ転送が実行される場合、当該データ転送が使用する帯域が、使用帯域としてデータ割り当て部１から経路計画部６に通知される。
【００８５】
図８（Ａ）において、ストレージ３Ａについての総帯域が点線で表され、ストレージ３Ａについての使用帯域が斜線を付して表される。総帯域は総帯域情報として得られ、使用帯域は使用帯域情報として得られる。総帯域と使用帯域との差分が、ストレージ３Ａの空き帯域である。空き帯域は、空き帯域情報として用いられる。
【００８６】
ストレージ３Ａについての総帯域及び空き帯域は、時間の経過と共に、動的に変化する。データ割り当て部１がストレージ３Ａへのブロックデータの送信を時刻ｔ６０で終了すると、ストレージ３Ａの使用帯域は「０」となり、ストレージ３Ａの空き帯域は総帯域と一致する。
【００８７】
図８（Ｂ）において、ストレージ３Ｂについての総帯域が点線で表され、ストレージ３Ｂについての使用帯域が斜線を付して表される。総帯域と使用帯域との差分が、ストレージ３Ｂの空き帯域である。ストレージ３Ｂについての総帯域及び空き帯域は、時間の経過と共に、動的に変化する。データ割り当て部１がストレージ３Ｂへのブロックデータの送信を時刻ｔ６１で終了すると、ストレージ３Ｂの使用帯域は「０」となり、ストレージ３Ｂの空き帯域は総帯域と一致する。
【００８８】
図８（Ｃ）において、ストレージ３Ｃについての総帯域が点線で表され、ストレージ３Ｃについての使用帯域が斜線を付して表される。総帯域と使用帯域との差分が、ストレージ３Ｃの空き帯域である。ストレージ３Ｃについての総帯域及び空き帯域は、時間の経過と共に、動的に変化する。データ割り当て部１がストレージ３Ｃへのブロックデータの送信を時刻ｔ６２で終了すると、ストレージ３Ｃの使用帯域は「０」となり、ストレージ３Ｃの空き帯域は総帯域と一致する。
【００８９】
以上のように、ストレージ３Ａ〜３Ｃについての総帯域及び空き帯域は、時間の経過と共に動的に変化し、かつ、予測は事実上不可能である。従って、バランシング制御部４は、ストレージ３Ａ〜３Ｃについての総帯域及び空き帯域の変化を予測することはしない。図８及び図９は、総帯域及び空き帯域の変化の説明のために、ストレージ３Ａ〜３Ｃについての総帯域及び空き帯域の変化を、経時的に表した図である。
【００９０】
バランシング制御部４は、ストレージ３Ａ〜３Ｃの各々に格納されたブロックデータの数が、複数のネットワークについての空き帯域情報の比に等しくなるように、転送対象ブロックデータの数を求める。更に、バランシング制御部４は、ストレージ３Ａ〜３Ｃの各々において、オリジナルデータにおける連続する複数のブロックデータについてデータ位置情報に基づいて定まるデータ局所位置毎のブロックデータの数が、複数のネットワークについての空き帯域情報の比に等しくなるように、転送対象ブロックデータを求める。
【００９１】
転送対象ブロックデータを求めるために、バランシング制御部４は、複数のネットワークについての空き帯域情報の比に応じて、ストレージ３Ａ〜３Ｃの各々におけるデータ局所位置毎のブロックデータの数の閾値を定める。更に、バランシング制御部４は、データ局所位置毎に、閾値を上回る数のブロックデータを格納するストレージを転送元ストレージ３とし、閾値を下回る数のブロックデータを格納するストレージを転送先ストレージ３とする。
【００９２】
この後、バランシング制御部４は、複数のネットワークについての空き帯域情報に基づいて転送対象ブロックデータから選択した１又は複数のブロックデータについて、転送元ストレージ３に、転送要求を送信する。換言すれば、バランシング制御部４は、バランシング制御処理を実行した時点におけるストレージ３Ａ〜３Ｃについての総帯域及び空き帯域に基づいて、データ量が最適となるように、ストレージ３Ａ〜３Ｃの間でのブロックデータの転送を行う。これにより、バランシング制御処理を実行した時点において、ストレージ３Ａ〜３Ｃおける空き帯域に応じたブロックデータの分布を得ることができる。この結果、バランシング制御処理を実行した直後に、オリジナルデータの読出しが開始されたとしても、ストレージ３Ａ〜３Ｃについての帯域を無駄にすることなく、オリジナルデータを速やかに読み出すことができる。
【００９３】
図９（Ａ）において、ストレージ３Ａとストレージ３Ｂとの間の空き帯域、換言すれば、余剰帯域が点線で表される。ストレージ３Ａとストレージ３Ｂとの間の空き帯域は、図８（Ａ）のストレージ３Ａの空き帯域と、図８（Ｂ）のストレージ３Ｂの空き帯域との重なりである。換言すれば、図８（Ａ）のストレージ３Ａの空き帯域と、図８（Ｂ）のストレージ３Ｂの空き帯域のいずれか小さい方の値に一致する。ストレージ３Ａとストレージ３Ｂとの間の空き帯域は、ストレージ３Ａとストレージ３Ｂとの間において、バランシング要求に基づくブロックデータの転送に利用可能な帯域である。
【００９４】
図９（Ｂ）において、ストレージ３Ｂとストレージ３Ｃとの間の空き帯域、換言すれば、余剰帯域が点線で表される。ストレージ３Ｂとストレージ３Ｃとの間の空き帯域は、図８（Ｂ）のストレージ３Ｂの空き帯域と、図８（Ｃ）のストレージ３Ｃの空き帯域との重なりである。換言すれば、図８（Ｂ）のストレージ３Ｂの空き帯域と、図８（Ｃ）のストレージ３Ｃの空き帯域のいずれか小さい方の値に一致する。ストレージ３Ｂとストレージ３Ｃとの間の空き帯域は、ストレージ３Ｂとストレージ３Ｃとの間において、バランシング要求に基づくブロックデータの転送に利用可能な帯域である。
【００９５】
図９（Ｃ）において、ストレージ３Ｃとストレージ３Ａとの間の空き帯域、換言すれば、余剰帯域が点線で表される。ストレージ３Ｃとストレージ３Ａとの間の空き帯域は、図８（Ｃ）のストレージ３Ｃの空き帯域と、図８（Ａ）のストレージ３Ａの空き帯域との重なりである。換言すれば、図８（Ｃ）のストレージ３Ｃの空き帯域と、図８（Ａ）のストレージ３Ａの空き帯域のいずれか小さい方の値に一致する。ストレージ３Ｃとストレージ３Ａとの間の空き帯域は、ストレージ３Ｃとストレージ３Ａとの間において、バランシング要求に基づくブロックデータの転送に利用可能な帯域である。
【００９６】
例えば、ストレージ３Ａに接続されたネットワーク２６Ａの帯域は、図８（Ａ）に示すように変化する。ストレージ３Ａについての総帯域において、データ割り当て部１が優先的に帯域を使用する。換言すれば、バランシング制御部４は、空き帯域を使用して、ストレージ３Ａにバランシング要求を実行させる。これにより、バランシング制御処理により生じるデータ転送よりも、データ割り当て部１によるストレージ３へのアクセスを阻害することを防止することができる。
【００９７】
なお、バランシング制御処理により生じるデータ転送よりも、データ読出し部によるストレージ３へのアクセスを優先するようにしても良い。これにより、データ読出し部によるストレージ３へのアクセスを阻害することを防止することができる。
【００９８】
具体的には、バランシング制御部４は、データ割り当て部１がネットワーク２６Ａの帯域を使用する場合には、空き帯域がない限り、ストレージ３Ａに接続されたネットワーク２６Ａの帯域を使用しない。従って、データ割り当て部１がネットワーク２６Ａの帯域を使用する場合で、かつ、空き帯域がない場合には、バランシング制御部４は、ストレージ３Ａに対してバランシング要求を送信しない。一方、バランシング制御部４は、データ割り当て部１がネットワーク２６Ａの帯域を使用する場合でも、空き帯域があるなら、ストレージ３Ａに接続されたネットワーク２６Ａの帯域を使用する。従って、データ割り当て部１がネットワーク２６Ａの帯域を使用する場合で、かつ、空き帯域がある場合には、バランシング制御部４は、必要に応じて、ストレージ３Ａに対してバランシング要求を送信する。
【００９９】
更に、バランシング制御部４は、バランシング要求によるブロックデータの転送先がストレージ３Ｂである場合には、ストレージ３Ａとストレージ３Ｂとの間の空き帯域がない限り、ストレージ３Ａに対してバランシング要求を送信しない。一方、バランシング制御部４は、バランシング要求によるブロックデータの転送先がストレージ３Ｂである場合には、ストレージ３Ａとストレージ３Ｂとの間の空き帯域があれば、ストレージ３Ａに対してバランシング要求を送信する。
【０１００】
バランシング制御部４は、ストレージ３Ａと同様にして、ストレージ３Ｂの空き帯域を使用して、ストレージ３Ｂにバランシング要求を実行させる。また、バランシング制御部４は、ストレージ３Ｃの空き帯域を使用して、ストレージ３Ｃにバランシング要求を実行させる。
【０１０１】
なお、バランシング要求を送信する期間は、空き帯域の有無のみに制約される、しかし、例えば、ストレージ３Ａについて時刻ｔ６０の経過後にのみ、バランシング要求を送信するようにしても良い。
【０１０２】
バランシング制御部４は、図１０及び図１１に示すように、バランシング要求を送信する。
【０１０３】
データ割り当て部１は、データを送信する都度に、データ位置情報として、例えば、データＩＤ、１又は複数のブロック番号、データ局所位置を、バランシング制御部４に送信する。ストレージ３は、データを受信する都度に、データ量として、例えば、データＩＤ、１又は複数のブロック番号、データのサイズを、バランシング制御部４に送信する。一方、映像符号化装置１０は、オリジナルデータの分割数として、例えば、データＩＤ、ストレージ３の数、複数の装置ＩＤを、バランシング制御部４に送信する。ストレージ３の数は、オリジナルデータを格納するストレージ３の数である。ストレージ３は、ストレージ３を一意に定める装置ＩＤにより識別される。
【０１０４】
これにより、バランシング制御部４は、データ量統計部４１において、オリジナルデータについての累積データ量と、データ分布情報を生成する。データ分布情報は、オリジナルデータにおける、データ局所位置毎のデータ量とブロックデータのブロック番号を含む。換言すれば、バランシング制御部４は、統計情報として、図１０に示すように、オリジナルデータを格納する複数のストレージ３における、データ局所位置毎のブロックデータの分布を得る。
【０１０５】
更に、バランシング制御部４は、オリジナルデータを格納する複数のストレージ３の空き帯域情報の比に応じて、当該複数のストレージ３におけるオリジナルデータの累積データ割合を求める。これが、その時点での空き帯域に従った、当該複数のストレージ３におけるオリジナルデータの最適なデータの格納量である。
【０１０６】
この後、バランシング制御部４は、累積データ割合と図１０に示す統計情報とに基づいて、ストレージ３の間で転送するデータ量を求め、転送するブロックデータの存在するデータ局所位置を求める。これにより、転送元ストレージ３及び転送先ストレージ３が定まる。バランシング制御部４は、更に、その時点での空き帯域に基づいて、転送するブロックデータを決定し、転送要求であるバランシング要求を送信する。
【０１０７】
図１０に示すように、あるオリジナルデータが、ストレージ３Ａ〜３Ｃに分散して格納されているとする。データ局所位置によっては、ストレージ３Ａ〜３Ｃに格納されたブロックデータの数（格納ブロック数）に偏りがある。ストレージ３Ａ〜３Ｃに格納されたデータ量の比が、前記格納ブロック数の比として求まる。
【０１０８】
より詳細には、図１１（Ａ）に示すように、ストレージ３Ａ〜３Ｃの各々において、オリジナルデータのデータ局所位置毎に、ブロックデータの数が求まる。
【０１０９】
一方、前述したように、ストレージ３Ａ〜３Ｃの各々が使用可能なネットワークの帯域が、図８に示すように求まる。これに基づいて、その時点におけるストレージ３Ａ〜３Ｃの各々が使用可能なネットワークの帯域の比が求まる。
【０１１０】
そこで、求めたネットワークの帯域の比に基づいて、ストレージ３Ａ〜３Ｃの各々におけるブロックデータの数の閾値を定める。閾値は、ブロックデータの数で表すことができる。例えば、ストレージ３Ａ、３Ｂ、３Ｃの各々が使用可能なネットワークの帯域の比が１：２：３であるとすると、ストレージ３Ａ、３Ｂ、３Ｃの各々におけるブロックデータの数の閾値の比も１：２：３とされる。
【０１１１】
閾値は、以下のように定められる。前述したように、データ局所位置Ｘに含まれるブロックデータの数は固定であり、また、分割数も固定である。従って、ストレージ３Ａ、３Ｂ、３Ｃの各々が使用可能なネットワークの帯域の比が求まれば、これに応じて、データ局所位置Ｘに含まれるブロックデータを、ストレージ３Ａ、３Ｂ、３Ｃの各々に分配することができる。この分配されたブロックデータの数が、ストレージ３Ａ、３Ｂ、３Ｃの各々における閾値である。
【０１１２】
なお、データ局所位置が可変である場合には、ストレージ３Ａ〜３Ｃにおいて、ブロックデータの数が最も多いデータ局所位置を求め、当該データ局所位置におけるブロックデータの数を閾値の初期値として用いるようにしても良い。
【０１１３】
この場合、閾値は、初期値から−１ずつデクリメントされる。転送元ストレージ３における閾値を上回るブロックデータの数と、転送先ストレージ３における閾値を下回るブロックデータの数とが一致する時の値が、適正な閾値である。なお、転送元ストレージ３の数が複数であっても良く、転送先ストレージ３の数が複数であっても良い。
【０１１４】
図１０は、ストレージ３Ａ、３Ｂ、３Ｃにおける、データ局所位置毎のブロックデータの数を示す。なお、図１０において、説明の便宜のために、ストレージ３Ａ、３Ｂ、３Ｃの各々が使用可能なネットワークの帯域の比が１：１：１であるとする。この場合、ストレージ３Ａ、３Ｂ、３Ｃの各々におけるブロックデータの数の閾値は同一となる。
【０１１５】
図１０に示すように、同一のデータ局所位置について、例えばストレージ３Ａにおいてより少ないブロックデータが格納されている場合、必ず、他のストレージ３Ｂにおいてより多いブロックデータが格納されている。具体的には、ストレージ３Ａにブロックデータが少なく格納された部分Ｔ５１が存在する場合、例えば、ストレージ３Ｂにブロックデータが多く格納された部分Ｔ５２が存在する。
【０１１６】
この場合、ストレージ３Ｂの部分Ｔ５２における閾値を上回るブロックデータが、ストレージ３Ａに転送される。これにより、ストレージ３Ｂの部分Ｔ５２における閾値を上回るブロックデータが削減され、一方、ストレージ３Ａの部分Ｔ５１における閾値を下回る分のブロックデータが増加される。この結果、ストレージ３Ａ〜３Ｃの各々が使用可能なネットワークの帯域の比に等しくなるように、データ局所位置において、ストレージ３Ａ〜３Ｃにおけるブロックデータが均一化される。
【０１１７】
また、図１０に示すように、同一のデータ局所位置について、例えばストレージ３Ａ及び３Ｃにおいてより少ないブロックデータが格納されている場合、必ず、他のストレージ３Ｂにおいてより多いブロックデータが格納されている。具体的には、ストレージ３Ａ及び３Ｃにブロックデータが少なく格納された部分Ｔ５３及びＴ５５が存在する場合、例えば、ストレージ３Ｂにブロックデータが多く格納された部分Ｔ５４が存在する。
【０１１８】
この場合、ストレージ３Ｂの部分Ｔ５４における閾値を上回るブロックデータが、ストレージ３Ａ及び３Ｃに転送される。これにより、ストレージ３Ｂの部分Ｔ５４における閾値を上回るブロックデータが削減され、一方、ストレージ３Ａの部分Ｔ５３及びストレージ３Ｃの部分Ｔ５５における閾値を下回る分のブロックデータが増加される。この結果、ストレージ３Ａ〜３Ｃの各々が使用可能なネットワークの帯域の比に等しくなるように、データ局所位置の各々において、ストレージ３Ａ〜３Ｃにおけるブロックデータの数が均一化される。
【０１１９】
図１１（Ａ）は、例えば、ストレージ３Ｂの部分Ｔ５２における閾値を上回るブロックデータについて示す。図１１（Ｂ）は、ストレージ３Ｂの部分Ｔ５２における、データ局所位置Ｘのみを抜き出して示す。
【０１２０】
例えば、データ局所位置Ｘについては、閾値を上回るブロックデータの数は、４個である。一方、図１１（Ａ）とは逆に、ストレージ３Ａの部分Ｔ５１における閾値を下回るブロックデータの数も求まる。この場合、データ局所位置Ｘについては、閾値を下回るブロックデータの数は、４個である。
【０１２１】
これにより、データ局所位置Ｘについては、ストレージ３Ｂに対して、バランシング要求が送信される。バランシング要求において、転送先ストレージは、ストレージ３Ａとされる。転送サイズは「４」とされる。転送データ位置は、閾値を上回る４個のブロックデータのブロック番号とされる。バランシング要求を受信したストレージ３Ｂは、ストレージ３Ａに、ブロック番号により指定された４個のブロックデータを転送する。ストレージ３Ａは、４個のブロックデータを受信して格納する。
【０１２２】
なお、この転送の結果、転送元ストレージ３Ｂに格納されるブロックデータのブロック番号と、転送先ストレージ３Ａに格納されるブロックデータのブロック番号とが、交互になるように、転送するブロックデータを選択するようにしても良い。
【０１２３】
図１１（Ａ）から判るように、データ局所位置Ｘ以外のデータ局所位置についても、閾値を上回るブロックデータの数が求まる。また、これとは逆に、閾値を下回るブロックデータの数も求まる。
【０１２４】
例えば、図１１（Ａ）は、ストレージ３Ｂの部分Ｔ５４における閾値を上回るブロックデータについて示すと考えることができる。この場合、図１１（Ｂ）は、ストレージ３Ｂの部分Ｔ５４における、１個のデータ局所位置のみを抜き出して示すと考えることができる。以下の説明において、ストレージ３Ｂの部分Ｔ５４における、前記抜き出された１個のデータ局所位置を「Ｙ」ということとする。
【０１２５】
この場合、データ局所位置Ｙについては、閾値を上回るブロックデータの数は、４個である。一方、これとは逆に、ストレージ３Ａの部分Ｔ５３における閾値を下回るブロックデータの数は２個であり、ストレージ３Ｃの部分Ｔ５５における閾値を下回るブロックデータの数は２個であるとする。
【０１２６】
これにより、データ局所位置Ｙについては、ストレージ３Ｂに対して第１及び第２のバランシング要求が送信される。第１のバランシング要求において、転送先ストレージは、ストレージ３Ａとされる。第１のバランシング要求と共に送信される転送サイズは「２」とされ、転送データ位置は閾値を上回る２個のブロックデータのブロック番号とされる。第２のバランシング要求において、転送先ストレージは、ストレージ３Ｃとされる。第２のバランシング要求と共に送信される転送サイズは「２」とされ、転送データ位置は閾値を上回る他の２個のブロックデータのブロック番号とされる。
【０１２７】
ストレージ３Ｂは、第１のバランシング要求を受信すると、ストレージ３Ａに、ブロック番号により指定された２個のブロックデータを転送する。ストレージ３Ａは、２個のブロックデータを受信して格納する。また、ストレージ３Ｂは、第２のバランシング要求を受信すると、ストレージ３Ｃに、ブロック番号により指定された２個のブロックデータを転送する。ストレージ３Ｃは、２個のブロックデータを受信して格納する。
【０１２８】
なお、この転送の結果、転送される４個のブロックデータが、２個の転送先ストレージ３Ａ及び３Ｃに交互に格納されるように、転送するブロックデータを選択するようにしても良い。
【０１２９】
図１２は、主として、バランシング制御部４が実行するバランシング制御処理フローである。
【０１３０】
経路計画部６は、ネットワーク監視部５からストレージ３Ａ〜３Ｃに接続されたネットワーク２についてのネットワーク輻輳情報を取得し、データ割り当て部１から使用帯域情報を取得する。経路計画部６は、取得したネットワーク輻輳情報及び使用帯域情報に基づいて、例えば図８及び図９に示すように、ストレージ３Ａ〜３Ｃに接続されたネットワーク２についての空き帯域情報及び総帯域情報を求める。更に、経路計画部６は、求めた空き帯域情報に基づいて、ストレージ３Ａ〜３Ｃに接続されたネットワーク２についての帯域割合を求める（ステップＳ１）。
【０１３１】
次に、バランシング制御部４は、データ割り当て部１からデータ位置情報を取得し、ストレージ３Ａ〜３Ｃからデータ量を取得する。バランシング制御部４は、取得したデータ位置情報及びデータ量に基づいて、例えば図１０及び図１１に示すように、ストレージ３Ａ〜３Ｃにおけるブロックデータの格納の状態（実際のデータ量）を求める。一方、バランシング制御部４は、ストレージ３Ａ〜３Ｃに接続されたネットワーク２についての帯域割合に基づいて、ストレージ３Ａ〜３Ｃに格納するブロックデータの割合（累積データ割合）を求める（ステップＳ２）。
【０１３２】
次に、バランシング制御部４は、図１０に示すように、データ局所位置毎に、実際のデータ量と累積データ割合とに基づいて、ストレージ３Ａ〜３Ｃの間において転送するブロックデータの量（移動データ量）を求める（ステップＳ３）。
【０１３３】
次に、バランシング制御部４は、データ局所位置毎に、移動データ量が正の値（閾値を超える値）であるストレージ３について、ストレージ３Ａ〜３Ｃにおけるブロックデータの格納の偏りに基づいて、転送データを決定する（ステップＳ４）。換言すれば、バランシング制御部４は、図１１に示すように、閾値を超える数のブロックデータを、転送対象データとする。
【０１３４】
次に、バランシング制御部４は、データ局所位置毎に、ストレージ３の間において転送される転送対象ブロックデータを決定する（ステップＳ５）。この時、バランシング制御部４は、図９に示す転送元ストレージ３と転送先ストレージ３との間における帯域に基づいて転送対象ブロックデータを決定し、かつ、図１１により説明したように、転送後において複数のストレージ３に格納されるブロックデータのブロック番号が偏らないように転送対象ブロックデータを決定する。この後、バランシング制御部４は、データ局所位置毎に、１又は複数のバランシング要求（転送要求）を転送元ストレージ３に送信する（ステップＳ６）。これにより、転送元ストレージ３から転送先ストレージ３へ、ブロックデータが転送される。この後、ステップＳ１を繰り返す。
【０１３５】
図１３（Ａ）は、分散ストレージシステムの他の例を示す図である。
【０１３６】
分散ストレージシステムは、図１３（Ａ）に示すように、画像処理装置１４、データ制御装置１５、複数のストレージ３Ａ〜３Ｃを含むようにしても良い。また、データ割り当て部１が、画像処理装置１４に設けられるようにしても良い。画像処理装置１４とデータ制御装置１５との間は、例えばネットワーク２により接続される。また、図１３（Ａ）の例において、バランシング制御部４及び経路計画部６は、画像処理装置１４又はデータ制御装置１５に設けられる。
【０１３７】
図１３（Ｂ）は、分散ストレージシステムの更に他の例を示す図である。
【０１３８】
分散ストレージシステムは、図１３（Ｂ）に示すように、画像処理装置１４、処理装置１６、データ制御装置１５、複数のストレージ３Ａ〜３Ｃを含むようにしても良い。また、データ割り当て部１が、画像処理装置１４以外に設けられるようにしても良い。画像処理装置１４と処理装置１６との間は、例えば専用のデータ伝送路１７により接続される。データ伝送路１７は、例えば、バス、ＬＡＮ（Local Area Network）等である。処理装置１６とデータ制御装置１５との間は、例えばネットワーク２により接続される。また、図１３（Ｂ）の例において、バランシング制御部４及び経路計画部６は、画像処理装置１４、処理装置１６又はデータ制御装置１５に設けられる。
【符号の説明】
【０１３９】
１    データ割り当て部
２    ネットワーク
３Ａ〜３Ｃ    ストレージ
４    バランシング制御部
５    ネットワーク監視部
６    経路計画部
１０    映像符号化装置
１１、１２    処理装置
１３    ノード管理装置
２１    上位ネットワーク
２２    プローブ
２３    スイッチ
２４    下位ネットワーク
４１    データ量統計部
４２    データ量比較部
【図１】
2011215794.tif 000003
【図２】
2011215794.tif 000004
【図３】
2011215794.tif 000005
【図４】
2011215794.tif 000006
【図５】
2011215794.tif 000007
【図６】
2011215794.tif 000008
【図７】
2011215794.tif 000009
【図８】
2011215794.tif 000010
【図９】
2011215794.tif 000011
【図１０】
2011215794.tif 000012
【図１１】
2011215794.tif 000013
【図１２】
2011215794.tif 000014
【図１３】
2011215794.tif 000015
【図１４】
2011215794.tif 000016
【図１５】
2011215794.tif 000017
【図１６】
2011215794.tif 000018
【図１７】
2011215794.tif 000019
【図１８】
2011215794.tif 000020
【図１９】
2011215794.tif 000021