説明

分散ストレージシステム及びプログラム

【課題】複数のストレージに分散して格納されるデータの分布を適切なものにすることができる分散ストレージシステムを提供する。
【解決手段】複数のストレージ3A〜3Cは、オリジナルデータを分割した複数のブロックデータを分散して格納する。経路計画部6は、複数のストレージ3A〜3Cに接続された複数のネットワークについての空き帯域情報を得る。バランシング制御部4は、複数のネットワークについての空き帯域情報と、オリジナルデータにおけるブロックデータの位置を示すデータ位置情報とに基づいて、複数のストレージ3A〜3Cの間におけるデータ転送の対象となる転送対象ブロックデータを求める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散ストレージシステム及びプログラムに関する。
【背景技術】
【0002】
分散ストレージシステムとして、例えば、RAID(Redundant Array of Independent Disks)装置が知られている。RAID装置において、データは、複数のストレージに分散して格納される。
【0003】
例えば、管理用端末から利用可能な記憶装置の増加がディレクトリ管理装置に通知されると、ディレクトリ管理装置が、移動すべきセグメントを求め、移動前後のセグメントの配置情報をデータ管理装置に通知してセグメントの移動を要求し、要求を受けたデータ管理装置が、移動に必要なセグメントの配置情報を移動情報記憶部に記憶して、記憶装置のアクセスが少なくなった時点でセグメントを移動元の記憶装置から移動先の記憶装置にコピーし、コピーが終わると、移動完了をディレクトリ管理装置に通知することが、提案されている。
【0004】
また、分割データ管理部が、コンテンツを構成する各分割データに対応する複数の複製データの配置先の決定、管理を行い、所定のタイミングで、複製データの削除や追加や再配置を行い、ホストからのコンテンツのアクセス要求の際に、そのコンテンツを構成する分割データのアクセス先を決定し、複製数計画部が、各分割データの複製数を決定し、使用可能な全記憶装置を配置先候補にして、同じ分割データに対応する複数の複製データが各々の記憶装置に均等化されるように配置決定を行うことが、提案されている。
【0005】
また、入出力に対する処理が排他となる複数の論理ボリュームを備えた複数のボリューム群を有するストレージにおいて、論理ボリュームの負荷の偏りを監視する負荷監視部を有し,この負荷監視部によって負荷の偏りを検知した場合、負荷の大きいボリューム群内の論理ボリュームの内容を負荷の小さいボリューム群にある予備の論理ボリュームへコピーして、ある論理ボリュームを別の論理ボリューム群内の論理ボリュームへ移動することが、提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平8−030495号公報
【特許文献2】特開2008−204206号公報
【特許文献3】特開2005−209055号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
RAID装置においては、データの伝送路の帯域が時間によらず一定であり、また、複数のストレージのデータの入出力の性能が同じである。これらの前提の下で、RAID装置は、各々のストレージにデータを均等に格納することにより、単一のストレージにデータを入出力する場合よりも高速なアクセスを実現している。
【0008】
しかし、ネットワークの性能の向上に伴って、複数のストレージとサーバ等の処理装置との間が、専用の伝送路ではなく、LAN(Local Area Network)やSAN(Storage Area Network)等のネットワークにより接続されることが多くなっている。このようなネットワーク環境における分散ストレージシステムでは、種々の理由から、データ転送経路であるネットワークの帯域が動的に変化する場合がある。
【0009】
本発明は、複数のストレージに分散して格納されるデータの分布を適切なものにすることができる分散ストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【0010】
開示される分散ストレージシステムは、複数のストレージと、経路計画部と、バランシング制御部とを含む。複数のストレージは、オリジナルデータを分割した複数のブロックデータを分散して格納する。経路計画部は、複数のストレージに接続された複数のネットワークについての空き帯域情報を得る。バランシング制御部は、複数のネットワークについての空き帯域情報と、オリジナルデータにおけるブロックデータの位置を示すデータ位置情報とに基づいて、複数のストレージの間におけるデータ転送の対象となる転送対象ブロックデータを求める。
【発明の効果】
【0011】
開示される分散ストレージシステムによれば、複数のストレージに分散して格納されるデータの分布を、動的に変化するネットワークの帯域に対応した適切なものにすることができる。
【図面の簡単な説明】
【0012】
【図1】分散ストレージシステムの一例を示す図である。
【図2】分散ストレージシステムの一例を示す図である。
【図3】バランシング制御部の一例を示す図である。
【図4】バランシング制御処理を示す図である。
【図5】バランシング制御処理を示す図である。
【図6】バランシング制御処理を示す図である。
【図7】バランシング制御の一例の説明図である。
【図8】バランシング制御の一例の説明図である。
【図9】バランシング制御の一例の説明図である。
【図10】バランシング制御の一例の説明図である。
【図11】バランシング制御の一例の説明図である。
【図12】バランシング制御処理フローである。
【図13】分散ストレージシステムの他の例を示す図である。
【図14】データの格納と帯域との関係の説明図である。
【図15】データの格納と帯域との関係の説明図である。
【図16】分散ストレージシステムにおける帯域の説明図である。
【図17】分散ストレージシステムにおける帯域の変化の説明図である。
【図18】分散ストレージシステムにおけるデータの読出しの説明図である。
【図19】分散ストレージシステムにおけるデータの読出しの説明図である。
【発明を実施するための形態】
【0013】
本発明者は、ネットワーク環境における分散ストレージシステムにおいて、前述したように、データ転送経路であるネットワークの帯域が動的に変化する場合におけるアクセスについて検討した。この場合、RAID装置のように、各々のストレージにデータを均等に格納したとしても、高速なアクセスを実現することはできない。
【0014】
例えば、図14(A)に示すように、処理装置101が、ネットワーク102Aを介して接続されたストレージ103Aと、ネットワーク102Bを介して接続されたストレージ103Bにデータを格納する。図14(A)の時点では、ネットワーク102Aの帯域Aは、ネットワーク102Bの帯域Bよりも狭い。
【0015】
この場合において、処理装置101が、ネットワーク102Aの帯域A及びネットワーク102Bの帯域Bを最大限に使用して、ストレージ103A及びストレージ103Bに、データを書き込む。この結果、ストレージ103Aに格納されたデータ量Aと、ストレージ103Bに格納されたデータ量Bとは、対応するネットワークの帯域に応じて異なる。この結果、格納されたデータ量に偏りが生じる。
【0016】
この後、図14(A)のようにして格納されたデータを、処理装置101が、図14(B)に示すように、読み出す。この時、ネットワーク102Aの帯域及びネットワーク102Bの帯域は、時間の経過と共に動的に変化して、図14(A)の場合とは異なっている。例えば、図14(A)の場合とは逆に、図14(B)の時点では、ネットワーク102Aの帯域C(=B)は、ネットワーク102Bの帯域D(=A)よりも広い。
【0017】
この場合において、処理装置101が、ネットワーク102Aの帯域C及びネットワーク102Bの帯域Dを最大限に使用して、ストレージ103A及びストレージ103Bから、データを読み出す。この結果、ストレージ103Aに格納されたデータ量Aのデータは全て読み出される。これに対して、ストレージ103Aに格納されたデータの読み出しが終了した時点で、ストレージ103Bに格納されたデータ量Bのデータは、まだ、その一部B’が読み出されずに、ストレージ103Bに残される。
【0018】
図15は、ネットワークの帯域が動的に変化する場合における、データ転送量と転送時間との関係を示す。
【0019】
図15の部分Xは、図14(A)に示すデータ転送における転送時間を示す。図15の部分Xにおいては、ネットワーク102Aの帯域A及びネットワーク102Bの帯域Bが最大限に使用される。従って、帯域Aを用いたデータ量Aの転送と、帯域Bを用いたデータ量Bの転送とが、時刻t1で同時に終了する。このため、図15の部分Xにおけるデータの転送時間t1は最少となる。なお、図14(A)はデータの書き込みについて示すが、データの読出しの場合についても、ほぼ同様であると考えて良い。
【0020】
これに対して、図15の部分Yは、図2に示すデータ転送における転送時間を示す。図15の部分Yにおいては、ネットワーク102Aの帯域Cを用いたデータ量Aの転送は、時刻t1よりも早い時刻t2で終了するが、ネットワーク102Bの帯域Dを用いたデータ量Bの転送は、時刻t1よりも遅い時刻t3で終了する。このため、図15の部分Yにおけるデータの転送時間は、図15の部分Xにおけるデータの転送時間よりもΔtだけ遅延する。これは、図15の部分Yにおいて、ネットワーク102Aの帯域Cが有効に活用できていないためである。
【0021】
以上のようなネットワークの帯域の動的な変化は、以下のような原因によって生じるものと考えられる。
【0022】
例えば、ネットワークは、複数のスイッチで接続される可能性があり、各々のスイッチの間でのネットワーク帯域が異なる可能性がある。例えば、図16に示すように、データセンタにおいては、基幹部分の帯域が10Gbpsと十分に広くても、末端のスイッチの先の部分の帯域は100Mbpsと狭い場合がある。
【0023】
これに加えて、複数のサーバ101上で動作する複数のアプリケーションプログラム(以下、アプリケーション)は、各々のサーバ101から、各々のタイミングで、帯域の異なるネットワーク102を介して、複数のストレージ103についてデータを入出力する。このため、各サーバの使用できるネットワーク帯域は、時間により変化する。
【0024】
例えば、図17に示すように、処理装置101A〜101Cが、1つのネットワークを共用する場合がある。この時、処理装置101Aで動作するアプリケーションは、断続的にデータの入出力を行う。処理装置101Cで動作するアプリケーションは、一時的に大きな帯域のデータ入出力の後に、連続して小さな帯域のデータ入出力を行う。この場合、処理装置101Bで動作するアプリケーションが使用できるネットワークの帯域は、帯域Eの全体から、処理装置101A及び処理装置101Cが使用する帯域を除いたものとなり、時間的に変化する帯域となる。以上のように、処理装置101Bが使用できる帯域は予測不可能であり、かつ、複雑に変化する。
【0025】
なお、ネットワーク及びストレージが仮想化された場合においても、以上に述べたと同様に、ネットワーク及び複数のアプリケーションプログラムによる帯域の変化が発生する。
【0026】
以上のように、ネットワークの帯域が動的に変化する場合、本発明者の検討によれば、格納されるデータの内容を考慮せずにデータの量のみを調整しても、データの分布を、動的に変化するネットワークの帯域に対応して最適化することはできない。特に、本発明者の検討によれば、画像データのように、連続してアクセスされるデータについては、複数のストレージに分散して格納されるデータの分布を最適化することはできない。換言すれば、データのアクセスパターン(アクセス時間)も考慮したデータ配置を行わなければ、最適なデータ分布とすることはできない。
【0027】
具体的には、複数のストレージにおける負荷が均等になるように、複数のストレージの間でデータを移動して負荷を均等化しても、結果的に、データの入出力を高速化することができない。これは、データを実際に使用する装置からのデータアクセス(アクセスパターン)も含めて考慮しなければ、データが使用されるまでの時間を短縮できず、データの入出力を高速化したことにはならないためである。また、データのコピーを複数のストレージに格納して、負荷が少ないストレージを選択してアクセスしても、常に複数のコピーが必要であるので、データの格納の時点で、本来の格納に使用可能な帯域を少なくしてしまう。
【0028】
例えば、図18(A)に示すように、ブロックデータ「1」〜「12」までに分割することができるデータ(オリジナルデータ)105を考える。オリジナルデータ105において、各々のブロックデータ106に付与されたブロック番号は、オリジナルデータ105における当該ブロックデータ106の位置を表す。ブロックデータ106に付与された番号は、ブロックデータ106を処理する順番である。なお、ストレージ103から読み出されたブロックデータ106をブロック番号の順に並べる処理は、オリジナルデータ105を処理する処理装置が実行する処理である。
【0029】
このようなオリジナルデータ105が、例えば、図18(B)に示すように、2個のストレージ103A及びストレージ103Bに分散して格納される。この時、図14(A)の場合と同様に、オリジナルデータ105の格納の時点におけるネットワークの帯域の偏りに起因して、2個のストレージ103A及びストレージ103Bにおけるブロックデータ106の数が偏る。例えば、ストレージ103Aに格納されるブロックデータ106の数が「3」となり、ストレージ103Bに格納されるブロックデータ106の数が「9」となる。
【0030】
この後、3個のブロックデータ「10」「11」「12」が、ストレージ103Aからストレージ103Bに転送される。これにより、図19の部分Yに示すように、複数のストレージ103A及び103Bにおけるブロックデータ106の数が、均等になる。しかし、前述したように、ブロックデータ106の数は均等であっても、オリジナルデータ105の内容は考慮されていない。
【0031】
この後、複数のストレージ103A及び103Bから、オリジナルデータが読み出される。この時点では、ネットワークの帯域が変化して、ストレージ103Aが使用するネットワークの帯域とストレージ103Bが使用するネットワークの帯域とが等しい。
【0032】
この状態で、図19の部分Yに示すように、処理装置101が、ブロックデータ「1」〜「9」を連続的に読み出して、処理を実行する。この場合、ストレージ103Aから必要なブロックデータ「1」「3」「5」を読み出した時点では、必要なブロックデータ106は揃わない。また、その後のストレージ103Aが使用可能なネットワークの帯域は、読み出すデータが存在しないので、使用されずに無駄となる。この無駄になった帯域に相当する分のブロックデータ106は、ストレージ103Bから読み出される。従って、処理装置101から見ると、Δtだけデータの入出力が遅れたことになる。
【0033】
一方、本発明者の検討によれば、図19の部分Zに示すように、オリジナルデータ105の内容を考慮して、ブロックデータ106の数を均等にすることができれば、図19の部分Yに示すように、ストレージ103Aが使用可能なネットワークの帯域が無駄となることを回避することができる。
【0034】
具体的には、図19の部分Zにおいて、オリジナルデータ105の内容を考慮して、3個のブロックデータ「7」「9」「11」が、ストレージ103Aからストレージ103Bに転送される。これにより、オリジナルデータ105の内容が考慮された上で、複数のストレージ103A及び103Bにおけるブロックデータ106の数が均等にされる。
【0035】
この後、複数のストレージ103A及び103Bから、オリジナルデータが読み出される。この時点では、ネットワークの帯域が変化して、ストレージ103Aが使用するネットワークの帯域とストレージ103Bが使用するネットワークの帯域とが等しい。
【0036】
この状態で、図19の部分Zに示すように、処理装置101が、ブロックデータ「1」〜「9」を連続的に読み出して、処理を実行する。この場合、ストレージ103A及びストレージ103Bから、使用可能なネットワークの帯域を無駄にすることなく、ブロックデータ「1」〜「9」が連続的に読み出される。従って、処理装置101から見ると、Δtだけデータの入出力が早く終了したことになる。
【0037】
開示の分散ストレージシステム及びプログラムは、オリジナルデータ105の内容を考慮して、複数のストレージに分散して格納されるデータの分布を、動的に変化するネットワークの帯域に対応する適切なものにする。
【0038】
図1及び図2は、分散ストレージシステムの構成を示す図である。
【0039】
分散ストレージシステムは、映像符号化装置10、処理装置11及び12、ノード管理装置13、複数のストレージ(ストレージノード又はストレージ装置)3A〜3C、これらの間を接続するネットワーク2を含む。映像符号化装置10、処理装置11及び12は、複数のストレージ3A〜3Cに、分散して種々のデータを格納する。ノード管理装置13は、複数のストレージ3A〜3Cへのデータの格納を管理する。処理装置11及び12は、省略するようにしても良い。ノード管理装置13が、複数のストレージ3A〜3Cへデータを格納するようにしても良い。また、ノード管理装置13と映像符号化装置10とが同一の装置であっても良い。
【0040】
映像符号化装置10、処理装置11及び12、ノード管理装置13をまとめて、複数の処理装置10〜13ということがある。複数の処理装置10〜13の数、換言すれば、複数のストレージ3A〜3Cにデータを格納するコンピュータの数は、4個に限られない。また、データを格納する複数のストレージ3A〜3Cの数は、3個に限られない。
【0041】
ネットワーク2は、上位ネットワーク21、プローブ22、スイッチ(SW)23、下位ネットワーク24A〜24Dを含む。上位ネットワーク21は、例えば、伝送速度が1Gbpsの基幹ネットワークである。プローブ22は、上位ネットワーク21に挿入され、データを転送する通信装置である。スイッチ23は、上位ネットワーク21と下位ネットワーク24A〜24Dとの間に接続されるネットワークスイッチであり、受信したデータを、データのあて先である複数の処理装置10〜13の接続されたスイッチ23又は複数のストレージ3A〜3Cの接続されたスイッチ23へ転送する。下位ネットワーク24A〜24Dは、例えば、伝送速度が100Mbpsの末端のネットワークである。ネットワーク2の構成は、図1に示す構成に限られない。
【0042】
例えば、映像符号化装置10は、複数のストレージ3A〜3Cに、分散して映像データを格納する。この時、映像データは、映像符号化装置10から複数のストレージ3A〜3Cへ、ネットワーク24D、スイッチ23、ネットワーク21、プローブ22、スイッチ23、ネットワーク24A〜24Cを、この順に経由して転送される。
【0043】
図2に示すように、分散ストレージシステムは、データ割り当て部1、バランシング制御部4、ネットワーク監視部5、経路計画部6を含む。これにより、分散ストレージシステムは、複数のストレージ3A〜3Cに格納されたデータ量を均一にする。
【0044】
図2の例において、データ割り当て部1は、例えば映像符号化装置10に設けられる。データ割り当て部1は、処理装置10〜13のいずれに設けられても良く、データを複数のストレージ3A〜3Cに格納する装置に設けられる。バランシング制御部4及び経路計画部6は、ノード管理装置13に設けられる。ネットワーク監視部5は、ネットワーク2、例えば、複数のプローブ22の各々に設けられる。
【0045】
データ割り当て部1は、オリジナルデータを複数のブロックデータに分割する。オリジナルデータは、複数のストレージ3A〜3Cに分散して格納されるデータである。オリジナルデータは、例えば、映像データであり、分散ネットワークシステムの外部からネットワーク2を介して映像符号化装置10に入力される。ブロックデータは、オリジナルデータを処理する処理装置、換言すれば、処理プログラムにおける処理の単位である。従って、ブロックデータは、オリジナルデータを処理する処理装置、換言すれば、処理プログラムに依存して定まる。例えば、ブロックデータは、固定長のデータであり、画像信号の1ページ、映像信号の1フレーム、16ドット×16ドットの画像信号等である。ブロックデータのサイズは可変長であっても良い。
【0046】
データ割り当て部1は、分割した複数のブロックデータを、ネットワーク2を介して、ストレージ3A〜3Cに格納する。これにより、ストレージ3A〜3Cは、オリジナルデータを分割した複数のブロックデータを分散して格納する。
【0047】
この時点で、ストレージ3A〜3Cにおけるデータ量は考慮されない。従って、例えば、ブロックデータは、データ割り当て部1がその時点で使用可能なネットワーク24A〜24Cに接続されたストレージ3に送信され、格納される。データ割り当て部1は、データ割り当て部1がその時点で使用可能なネットワーク24A〜24Cを、ネットワーク監視部5からのネットワーク輻輳情報に基づいて求める。
【0048】
各々のストレージ3A〜3Cは、オリジナルデータについてのデータ量を、バランシング制御部4に通知する。データ量は、例えば、各々のストレージ3A〜3Cがブロックデータを受信する都度に、通知される。また、データ量は、オリジナルデータ毎に通知される。
【0049】
データ割り当て部1は、データ位置情報をバランシング制御部4に通知する。データ位置情報は、データ割り当て部1がブロックデータをストレージ3A〜3Cに送信する都度に、そのブロックデータについて、通知される。データ位置情報は、例えば、オリジナルデータにおけるブロックデータの位置を示す情報である。
【0050】
データ割り当て部1は、使用帯域情報を経路計画部6に通知する。使用帯域情報は、データ割り当て部1がブロックデータをストレージ3A〜3Cに送信する都度に、その送信に使用する複数のネットワーク24A〜24Dの各々及び複数のネットワーク21の各々について、通知される。使用帯域情報は、複数のネットワーク24A〜24D毎及び複数のネットワーク21毎に、その時点でデータ割り当て部1が使用している帯域を示す情報である。
【0051】
ネットワーク監視部5は、ストレージ3A〜3Cに接続された複数のネットワーク24A〜24Cを含むネットワーク2を監視して、複数のネットワーク24A〜24Cを含むネットワーク2についての帯域情報を得る。具体的には、ネットワーク監視部5は、ネットワーク24A〜24Dの各々及び複数のネットワーク21の各々を監視して、監視の結果に基づいてネットワーク輻輳情報を生成して、データ割り当て部1及び経路計画部6に送信する。ネットワーク輻輳情報は、ネットワーク2に含まれる複数のネットワーク24A〜24Dの各々及び複数のネットワーク21の各々について、その時点で使用されている帯域を示す情報である。
【0052】
経路計画部6は、ストレージ3A〜3Cに接続された複数のネットワーク24A〜24Cを含むネットワーク2についての空き帯域情報を得る。複数のネットワーク24A〜24Cを含むネットワーク2についての空き帯域情報は、複数のネットワーク24A〜24Cを含むネットワーク2についての帯域情報に基づいて得られる。
【0053】
具体的には、経路計画部6は、ネットワーク輻輳情報と経路情報とに基づいて、空き帯域情報、総帯域情報を生成して、バランシング制御部4に送信する。経路情報は、ストレージ3A〜3Cの各々が使用可能な経路(使用可能経路)を示す情報である。経路情報は、図1に示す分散ネットワークシステムの構成に基づいて、予め知ることができ、例えば、ネットワーク監視部5又はノード管理装置13から入力される。空き帯域情報は、使用可能経路毎に、換言すれば、ストレージ3A〜3C毎に、その時点で使用可能な帯域を示す情報である。総帯域情報は、使用可能経路毎に、換言すれば、ストレージ3A〜3C毎に、使用可能な全帯域を示す情報である。
【0054】
バランシング制御部4は、複数のネットワーク24A〜24Cを含むネットワーク2についての空き帯域情報と、データ位置情報とに基づいて、転送対象ブロックデータを求める。転送対象ブロックデータは、ストレージ3A〜3Cの間におけるデータ転送の対象となるブロックデータである。
【0055】
具体的には、バランシング制御部4は、データ位置情報、分割数、空き帯域情報、総帯域情報、及び、ストレージ3A〜3Cから通知されたデータ量に基づいて、バランシング要求、転送サイズ、転送データ位置を生成する。分割数は、1個のオリジナルデータを分散して格納するストレージ3A〜3Cの数(ストレージノード数)を示す情報である。分割数は、例えば、データ割り当て部1から入力される。
【0056】
バランシング要求に従ってブロックデータを送信するストレージ3を、転送元ストレージ3という。また、バランシング要求に従って送信されたブロックデータを受信するストレージ3を、転送先ストレージ3という。
【0057】
バランシング制御部4は、バランシング要求、転送サイズ、転送データ位置を、転送元ストレージ3に送信する。バランシング要求を受信した転送元ストレージ3は、転送先ストレージ3よりも多い数のブロックデータを格納しているので、転送先ストレージ3に、転送データ位置により指定されたブロックデータである転送対象ブロックデータを転送する。転送先ストレージ3は、転送元ストレージ3よりも少ない数のブロックデータを格納しているので、送信された転送対象ブロックデータを受信して格納する。
【0058】
バランシング要求は、転送元ストレージ3に対して、転送先ストレージ3へ、転送対象ブロックデータを転送することを要求する転送要求である。バランシング要求は、転送先ストレージ3のアドレスを含む。転送サイズは、転送対象ブロックデータのサイズを示す情報である。転送データ位置は、例えば、転送対象ブロックデータのオリジナルデータにおける位置を示すデータ位置情報である。
【0059】
図3は、バランシング制御部の一例を示す図である。図4〜図6は、バランシング制御処理を示す図である。
【0060】
バランシング制御部4は、基本的には、空き帯域情報とデータ位置情報とに基づいて、転送元ストレージ3に、ブロックデータの転送を要求するバランシング要求を送信する。この時、バランシング制御部4は、転送サイズ及び転送データ位置も、転送元ストレージ3に送信する。
【0061】
例えば、図4に示すように、あるオリジナルデータについて、ストレージ3Aに多くのブロックデータが格納され、ストレージ3Bに少ないブロックデータが格納されたとする。この時、ストレージ3Aに格納されたデータ量とストレージ3Bに格納されたデータ量との比が、例えば8:2であるとする。
【0062】
更に、ストレージ3Aが使用可能なネットワークの帯域が大きく、ストレージ3Bが使用可能なネットワークの帯域が小さいとする。この時、ストレージ3Aが使用可能なネットワークの帯域とストレージ3Bが使用可能なネットワークの帯域との比が、例えば6:4であるとする。
【0063】
図4の場合、バランシング制御部4は、前記帯域の比に従って、ストレージ3Aに格納されたデータ量とストレージ3Bに格納されたデータ量との比を、6:4とする。換言すれば、前記データ量の比が、8:2から、前記帯域の比に等しい6:4となるように、ストレージ3Aにブロックデータの転送を要求する。このブロックデータの転送の結果、図14(B)及び図15の部分Yに示すように、ブロックデータの読出しが遅延することを防止することができる。
【0064】
また、図5に示すように、あるオリジナルデータにおけるデータ局所位置Xについて、ストレージ3Aに多くのブロックデータが格納され、ストレージ3Bに少ないブロックデータが格納されたとする。この時、ストレージ3Aに格納されたデータ量とストレージ3Bに格納されたデータ量との比が、例えば8:2であるとする。
【0065】
更に、ストレージ3Aが使用可能なネットワークの帯域が大きく、ストレージ3Aが使用可能なネットワークの帯域が小さいとする。この時、ストレージ3Aが使用可能なネットワークの帯域とストレージ3Bが使用可能なネットワークの帯域との比が、例えば6:4であるとする。
【0066】
図5の場合、バランシング制御部4は、前記帯域の比に従って、ストレージ3Aに格納されたデータ局所位置Xのデータ量とストレージ3Bに格納されたデータ局所位置Xのデータ量との比を、6:4とする。換言すれば、前記データ局所位置Xのデータ量の比が、8:2から、前記帯域の比に等しく6:4となるように、ストレージ3Aにブロックデータの転送を要求する。このブロックデータの転送の結果、図19の部分Yに示すように、ブロックデータの読出しが遅延することを防止することができる。
【0067】
このようなバランシング処理のために、バランシング制御部4は、図6に示すように、各々のストレージ3A〜3Cにおいて、オリジナルデータ55について、データ局所位置毎に、何個のブロックデータ56が格納されているかを求める。
【0068】
ここで、データ局所位置Xは、図6に示すように、あるオリジナルデータ55における予め定められた範囲である。データ局所位置Xである範囲に属するブロックデータ56を、局所データXという。データ局所位置Xは、オリジナルデータを処理する処理装置、換言すれば、処理プログラムに依存して定まる。データ局所位置Xは、予め定められた複数のブロックデータを含む。従って、データ局所位置Xは、固定である。なお、データ局所位置は、例えば、これに含まれるブロックデータの数を可変とすることにより、可変であっても良い。
【0069】
なお、オリジナルデータ55は、データを一意に定めるデータIDにより識別される。ブロックデータ56は、ブロックデータ56を一意に定めるブロック番号により識別される。ブロック番号は、先頭のブロックから順に付与される。
【0070】
データ局所位置Xに含まれるブロックデータの数は固定であり、また、分割数も固定である。従って、後述するように、ストレージ3A、3B、3Cの各々が使用可能なネットワーク24A〜24Cの帯域の比が求まれば、これに応じて、データ局所位置Xに含まれるブロックデータを、ストレージ3A、3B、3Cの各々に分配することができる。
【0071】
なお、図4及び図5は、バランシング制御の概念を表すものであり、実際のバランシング制御は、図7〜図11を参照して後述する処理として実現される。また、実際には、オリジナルデータの全てのデータ局所位置について、図5に示す処理を実行すると、結果として、図4に示す処理を実行したことになる。図7〜図11を参照して後述する処理は、オリジナルデータの全てのデータ局所位置について、図5に示す処理を実行する処理である。
【0072】
また、後述するように、データ量はブロックデータの数を用いて表されるので、データ局所位置Xのデータ量の比は、厳密には、前記帯域の比に等しくすることができ難い。従って、データ局所位置Xのデータ量の比は、前記帯域の比と完全に一致しなくても良く、ほぼ等しければ良い。データ局所位置Xのデータ量の比と前記帯域の比とが等しいと考えて良い範囲は、経験的に定めることができる。
【0073】
バランシング制御部4は、データ量統計部41、データ量比較部42を含む。データ量統計部41は、データ量とデータ位置情報とに基づいて、累積データ量とデータ分布情報を生成し、データ量比較部42に入力する。データ量比較部42は、累積データ量、データ分布情報、分割数、空き帯域情報及び総帯域情報に基づいて、バランシング要求、転送サイズ、転送データ位置を生成して、ストレージ3に送信する。また、データ量比較部42は、バランシング情報をデータ量統計部41に送信する。バランシング情報は、バランシング要求、転送サイズ、転送データ位置である。
【0074】
以下、分散ストレージシステムにおけるバランシング制御について、図7〜図11を参照して、具体的に説明する。
【0075】
以下の説明において、図7に示すように、データ割り当て部1及びバランシング制御部4は、スイッチ25を介して、3個のストレージ3A〜3Cに接続されているものとする。スイッチ25は、ネットワーク24D、スイッチ23、ネットワーク21、プローブ22に相当する。ネットワーク26A〜26Cは、ストレージ3A〜3Cに対応するネットワークであり、ネットワーク24A〜24Cに相当する。
【0076】
経路計画部6は、図8及び図9に示すように、ストレージ3A〜3Cについての空き帯域情報を算出する。
【0077】
例えば、ストレージ3Aからストレージ3Bへバランシング制御によるデータ転送が実行される場合、転送されるデータは、ネットワーク24A、スイッチ23、ネットワーク21、プローブ22、ネットワーク21、スイッチ23、ネットワーク24Bを経由する。経路計画部6は、この経路を、経路情報に基づいて求める。
【0078】
前述したように、ネットワーク24A及び24Bのデータ転送能力が100Mbpsであり、ネットワーク21のデータ転送能力が1Gbpsである。これらのデータ転送能力が総帯域の上限値である。これらのデータ転送能力は、ネットワーク監視部5により保持される。一方、処理装置11が、ストレージ3Aにアクセスして、ネットワーク24Aを使用しているとする。このアクセスは、バランシング制御によるデータ転送よりも優先される。
【0079】
ここで、ネットワーク24Aについてのネットワーク輻輳情報は、例えば、ネットワーク24Aのデータ転送能力と使用されている帯域とにより表される。従って、経路計画部6は、ネットワーク4Aのデータ転送能力と、処理装置11がネットワーク4Aを使用している帯域は、ネットワーク4Aについてのネットワーク輻輳情報として、ネットワーク監視部5から得る。
【0080】
この場合、ネットワーク24Aについて、映像符号化装置10が使用可能な帯域は、データ転送能力から処理装置11が使用している帯域を差し引いた値である。これが、ストレージ3Aについて、映像符号化装置10が使用可能な帯域、換言すれば、例えば図8(A)に示すような、ストレージ3Aについての総帯域である。
【0081】
ここで、映像符号化装置10が、オリジナルデータを格納するためにストレージ3Aにアクセスして、ネットワーク24Aを使用するとする。このアクセスは、バランシング制御によるデータ転送よりも優先される。このアクセスのために映像符号化装置10が使用する帯域が使用帯域である。使用帯域は、データ割り当て部1から経路計画部6に通知される。
【0082】
そこで、経路計画部6は、ネットワーク24Aについての総帯域から、ネットワーク24Aについての使用帯域を差し引く。これが、ストレージ3Aについて、バランシング制御によるデータ転送に使用可能な帯域、換言すれば、例えば図8(A)に示すような、ストレージ3Aについての空き帯域である。
【0083】
なお、ストレージ3Aからストレージ3Bへバランシング制御によるデータ転送が実行される場合、転送されるデータは、ネットワーク21を経由する。従って、経路計画部6は、実際には、ネットワーク21についての総帯域、使用帯域、空き帯域についても、同様に、算出する。しかし、例えばネットワーク24Aのデータ転送能力よりも、ネットワーク21のデータ転送能力が十分に大きい。従って、ネットワーク24Aは、ネットワーク21の輻輳状態により影響を受けることは少ない。そこで、ネットワーク21の総帯域、使用帯域、空き帯域についての処理を省略するようにしても良い。
【0084】
また、ストレージ3Aからストレージ3Bへバランシング制御によるデータ転送が実行される場合、当該データ転送が使用する帯域が、使用帯域としてデータ割り当て部1から経路計画部6に通知される。
【0085】
図8(A)において、ストレージ3Aについての総帯域が点線で表され、ストレージ3Aについての使用帯域が斜線を付して表される。総帯域は総帯域情報として得られ、使用帯域は使用帯域情報として得られる。総帯域と使用帯域との差分が、ストレージ3Aの空き帯域である。空き帯域は、空き帯域情報として用いられる。
【0086】
ストレージ3Aについての総帯域及び空き帯域は、時間の経過と共に、動的に変化する。データ割り当て部1がストレージ3Aへのブロックデータの送信を時刻t60で終了すると、ストレージ3Aの使用帯域は「0」となり、ストレージ3Aの空き帯域は総帯域と一致する。
【0087】
図8(B)において、ストレージ3Bについての総帯域が点線で表され、ストレージ3Bについての使用帯域が斜線を付して表される。総帯域と使用帯域との差分が、ストレージ3Bの空き帯域である。ストレージ3Bについての総帯域及び空き帯域は、時間の経過と共に、動的に変化する。データ割り当て部1がストレージ3Bへのブロックデータの送信を時刻t61で終了すると、ストレージ3Bの使用帯域は「0」となり、ストレージ3Bの空き帯域は総帯域と一致する。
【0088】
図8(C)において、ストレージ3Cについての総帯域が点線で表され、ストレージ3Cについての使用帯域が斜線を付して表される。総帯域と使用帯域との差分が、ストレージ3Cの空き帯域である。ストレージ3Cについての総帯域及び空き帯域は、時間の経過と共に、動的に変化する。データ割り当て部1がストレージ3Cへのブロックデータの送信を時刻t62で終了すると、ストレージ3Cの使用帯域は「0」となり、ストレージ3Cの空き帯域は総帯域と一致する。
【0089】
以上のように、ストレージ3A〜3Cについての総帯域及び空き帯域は、時間の経過と共に動的に変化し、かつ、予測は事実上不可能である。従って、バランシング制御部4は、ストレージ3A〜3Cについての総帯域及び空き帯域の変化を予測することはしない。図8及び図9は、総帯域及び空き帯域の変化の説明のために、ストレージ3A〜3Cについての総帯域及び空き帯域の変化を、経時的に表した図である。
【0090】
バランシング制御部4は、ストレージ3A〜3Cの各々に格納されたブロックデータの数が、複数のネットワークについての空き帯域情報の比に等しくなるように、転送対象ブロックデータの数を求める。更に、バランシング制御部4は、ストレージ3A〜3Cの各々において、オリジナルデータにおける連続する複数のブロックデータについてデータ位置情報に基づいて定まるデータ局所位置毎のブロックデータの数が、複数のネットワークについての空き帯域情報の比に等しくなるように、転送対象ブロックデータを求める。
【0091】
転送対象ブロックデータを求めるために、バランシング制御部4は、複数のネットワークについての空き帯域情報の比に応じて、ストレージ3A〜3Cの各々におけるデータ局所位置毎のブロックデータの数の閾値を定める。更に、バランシング制御部4は、データ局所位置毎に、閾値を上回る数のブロックデータを格納するストレージを転送元ストレージ3とし、閾値を下回る数のブロックデータを格納するストレージを転送先ストレージ3とする。
【0092】
この後、バランシング制御部4は、複数のネットワークについての空き帯域情報に基づいて転送対象ブロックデータから選択した1又は複数のブロックデータについて、転送元ストレージ3に、転送要求を送信する。換言すれば、バランシング制御部4は、バランシング制御処理を実行した時点におけるストレージ3A〜3Cについての総帯域及び空き帯域に基づいて、データ量が最適となるように、ストレージ3A〜3Cの間でのブロックデータの転送を行う。これにより、バランシング制御処理を実行した時点において、ストレージ3A〜3Cおける空き帯域に応じたブロックデータの分布を得ることができる。この結果、バランシング制御処理を実行した直後に、オリジナルデータの読出しが開始されたとしても、ストレージ3A〜3Cについての帯域を無駄にすることなく、オリジナルデータを速やかに読み出すことができる。
【0093】
図9(A)において、ストレージ3Aとストレージ3Bとの間の空き帯域、換言すれば、余剰帯域が点線で表される。ストレージ3Aとストレージ3Bとの間の空き帯域は、図8(A)のストレージ3Aの空き帯域と、図8(B)のストレージ3Bの空き帯域との重なりである。換言すれば、図8(A)のストレージ3Aの空き帯域と、図8(B)のストレージ3Bの空き帯域のいずれか小さい方の値に一致する。ストレージ3Aとストレージ3Bとの間の空き帯域は、ストレージ3Aとストレージ3Bとの間において、バランシング要求に基づくブロックデータの転送に利用可能な帯域である。
【0094】
図9(B)において、ストレージ3Bとストレージ3Cとの間の空き帯域、換言すれば、余剰帯域が点線で表される。ストレージ3Bとストレージ3Cとの間の空き帯域は、図8(B)のストレージ3Bの空き帯域と、図8(C)のストレージ3Cの空き帯域との重なりである。換言すれば、図8(B)のストレージ3Bの空き帯域と、図8(C)のストレージ3Cの空き帯域のいずれか小さい方の値に一致する。ストレージ3Bとストレージ3Cとの間の空き帯域は、ストレージ3Bとストレージ3Cとの間において、バランシング要求に基づくブロックデータの転送に利用可能な帯域である。
【0095】
図9(C)において、ストレージ3Cとストレージ3Aとの間の空き帯域、換言すれば、余剰帯域が点線で表される。ストレージ3Cとストレージ3Aとの間の空き帯域は、図8(C)のストレージ3Cの空き帯域と、図8(A)のストレージ3Aの空き帯域との重なりである。換言すれば、図8(C)のストレージ3Cの空き帯域と、図8(A)のストレージ3Aの空き帯域のいずれか小さい方の値に一致する。ストレージ3Cとストレージ3Aとの間の空き帯域は、ストレージ3Cとストレージ3Aとの間において、バランシング要求に基づくブロックデータの転送に利用可能な帯域である。
【0096】
例えば、ストレージ3Aに接続されたネットワーク26Aの帯域は、図8(A)に示すように変化する。ストレージ3Aについての総帯域において、データ割り当て部1が優先的に帯域を使用する。換言すれば、バランシング制御部4は、空き帯域を使用して、ストレージ3Aにバランシング要求を実行させる。これにより、バランシング制御処理により生じるデータ転送よりも、データ割り当て部1によるストレージ3へのアクセスを阻害することを防止することができる。
【0097】
なお、バランシング制御処理により生じるデータ転送よりも、データ読出し部によるストレージ3へのアクセスを優先するようにしても良い。これにより、データ読出し部によるストレージ3へのアクセスを阻害することを防止することができる。
【0098】
具体的には、バランシング制御部4は、データ割り当て部1がネットワーク26Aの帯域を使用する場合には、空き帯域がない限り、ストレージ3Aに接続されたネットワーク26Aの帯域を使用しない。従って、データ割り当て部1がネットワーク26Aの帯域を使用する場合で、かつ、空き帯域がない場合には、バランシング制御部4は、ストレージ3Aに対してバランシング要求を送信しない。一方、バランシング制御部4は、データ割り当て部1がネットワーク26Aの帯域を使用する場合でも、空き帯域があるなら、ストレージ3Aに接続されたネットワーク26Aの帯域を使用する。従って、データ割り当て部1がネットワーク26Aの帯域を使用する場合で、かつ、空き帯域がある場合には、バランシング制御部4は、必要に応じて、ストレージ3Aに対してバランシング要求を送信する。
【0099】
更に、バランシング制御部4は、バランシング要求によるブロックデータの転送先がストレージ3Bである場合には、ストレージ3Aとストレージ3Bとの間の空き帯域がない限り、ストレージ3Aに対してバランシング要求を送信しない。一方、バランシング制御部4は、バランシング要求によるブロックデータの転送先がストレージ3Bである場合には、ストレージ3Aとストレージ3Bとの間の空き帯域があれば、ストレージ3Aに対してバランシング要求を送信する。
【0100】
バランシング制御部4は、ストレージ3Aと同様にして、ストレージ3Bの空き帯域を使用して、ストレージ3Bにバランシング要求を実行させる。また、バランシング制御部4は、ストレージ3Cの空き帯域を使用して、ストレージ3Cにバランシング要求を実行させる。
【0101】
なお、バランシング要求を送信する期間は、空き帯域の有無のみに制約される、しかし、例えば、ストレージ3Aについて時刻t60の経過後にのみ、バランシング要求を送信するようにしても良い。
【0102】
バランシング制御部4は、図10及び図11に示すように、バランシング要求を送信する。
【0103】
データ割り当て部1は、データを送信する都度に、データ位置情報として、例えば、データID、1又は複数のブロック番号、データ局所位置を、バランシング制御部4に送信する。ストレージ3は、データを受信する都度に、データ量として、例えば、データID、1又は複数のブロック番号、データのサイズを、バランシング制御部4に送信する。一方、映像符号化装置10は、オリジナルデータの分割数として、例えば、データID、ストレージ3の数、複数の装置IDを、バランシング制御部4に送信する。ストレージ3の数は、オリジナルデータを格納するストレージ3の数である。ストレージ3は、ストレージ3を一意に定める装置IDにより識別される。
【0104】
これにより、バランシング制御部4は、データ量統計部41において、オリジナルデータについての累積データ量と、データ分布情報を生成する。データ分布情報は、オリジナルデータにおける、データ局所位置毎のデータ量とブロックデータのブロック番号を含む。換言すれば、バランシング制御部4は、統計情報として、図10に示すように、オリジナルデータを格納する複数のストレージ3における、データ局所位置毎のブロックデータの分布を得る。
【0105】
更に、バランシング制御部4は、オリジナルデータを格納する複数のストレージ3の空き帯域情報の比に応じて、当該複数のストレージ3におけるオリジナルデータの累積データ割合を求める。これが、その時点での空き帯域に従った、当該複数のストレージ3におけるオリジナルデータの最適なデータの格納量である。
【0106】
この後、バランシング制御部4は、累積データ割合と図10に示す統計情報とに基づいて、ストレージ3の間で転送するデータ量を求め、転送するブロックデータの存在するデータ局所位置を求める。これにより、転送元ストレージ3及び転送先ストレージ3が定まる。バランシング制御部4は、更に、その時点での空き帯域に基づいて、転送するブロックデータを決定し、転送要求であるバランシング要求を送信する。
【0107】
図10に示すように、あるオリジナルデータが、ストレージ3A〜3Cに分散して格納されているとする。データ局所位置によっては、ストレージ3A〜3Cに格納されたブロックデータの数(格納ブロック数)に偏りがある。ストレージ3A〜3Cに格納されたデータ量の比が、前記格納ブロック数の比として求まる。
【0108】
より詳細には、図11(A)に示すように、ストレージ3A〜3Cの各々において、オリジナルデータのデータ局所位置毎に、ブロックデータの数が求まる。
【0109】
一方、前述したように、ストレージ3A〜3Cの各々が使用可能なネットワークの帯域が、図8に示すように求まる。これに基づいて、その時点におけるストレージ3A〜3Cの各々が使用可能なネットワークの帯域の比が求まる。
【0110】
そこで、求めたネットワークの帯域の比に基づいて、ストレージ3A〜3Cの各々におけるブロックデータの数の閾値を定める。閾値は、ブロックデータの数で表すことができる。例えば、ストレージ3A、3B、3Cの各々が使用可能なネットワークの帯域の比が1:2:3であるとすると、ストレージ3A、3B、3Cの各々におけるブロックデータの数の閾値の比も1:2:3とされる。
【0111】
閾値は、以下のように定められる。前述したように、データ局所位置Xに含まれるブロックデータの数は固定であり、また、分割数も固定である。従って、ストレージ3A、3B、3Cの各々が使用可能なネットワークの帯域の比が求まれば、これに応じて、データ局所位置Xに含まれるブロックデータを、ストレージ3A、3B、3Cの各々に分配することができる。この分配されたブロックデータの数が、ストレージ3A、3B、3Cの各々における閾値である。
【0112】
なお、データ局所位置が可変である場合には、ストレージ3A〜3Cにおいて、ブロックデータの数が最も多いデータ局所位置を求め、当該データ局所位置におけるブロックデータの数を閾値の初期値として用いるようにしても良い。
【0113】
この場合、閾値は、初期値から−1ずつデクリメントされる。転送元ストレージ3における閾値を上回るブロックデータの数と、転送先ストレージ3における閾値を下回るブロックデータの数とが一致する時の値が、適正な閾値である。なお、転送元ストレージ3の数が複数であっても良く、転送先ストレージ3の数が複数であっても良い。
【0114】
図10は、ストレージ3A、3B、3Cにおける、データ局所位置毎のブロックデータの数を示す。なお、図10において、説明の便宜のために、ストレージ3A、3B、3Cの各々が使用可能なネットワークの帯域の比が1:1:1であるとする。この場合、ストレージ3A、3B、3Cの各々におけるブロックデータの数の閾値は同一となる。
【0115】
図10に示すように、同一のデータ局所位置について、例えばストレージ3Aにおいてより少ないブロックデータが格納されている場合、必ず、他のストレージ3Bにおいてより多いブロックデータが格納されている。具体的には、ストレージ3Aにブロックデータが少なく格納された部分T51が存在する場合、例えば、ストレージ3Bにブロックデータが多く格納された部分T52が存在する。
【0116】
この場合、ストレージ3Bの部分T52における閾値を上回るブロックデータが、ストレージ3Aに転送される。これにより、ストレージ3Bの部分T52における閾値を上回るブロックデータが削減され、一方、ストレージ3Aの部分T51における閾値を下回る分のブロックデータが増加される。この結果、ストレージ3A〜3Cの各々が使用可能なネットワークの帯域の比に等しくなるように、データ局所位置において、ストレージ3A〜3Cにおけるブロックデータが均一化される。
【0117】
また、図10に示すように、同一のデータ局所位置について、例えばストレージ3A及び3Cにおいてより少ないブロックデータが格納されている場合、必ず、他のストレージ3Bにおいてより多いブロックデータが格納されている。具体的には、ストレージ3A及び3Cにブロックデータが少なく格納された部分T53及びT55が存在する場合、例えば、ストレージ3Bにブロックデータが多く格納された部分T54が存在する。
【0118】
この場合、ストレージ3Bの部分T54における閾値を上回るブロックデータが、ストレージ3A及び3Cに転送される。これにより、ストレージ3Bの部分T54における閾値を上回るブロックデータが削減され、一方、ストレージ3Aの部分T53及びストレージ3Cの部分T55における閾値を下回る分のブロックデータが増加される。この結果、ストレージ3A〜3Cの各々が使用可能なネットワークの帯域の比に等しくなるように、データ局所位置の各々において、ストレージ3A〜3Cにおけるブロックデータの数が均一化される。
【0119】
図11(A)は、例えば、ストレージ3Bの部分T52における閾値を上回るブロックデータについて示す。図11(B)は、ストレージ3Bの部分T52における、データ局所位置Xのみを抜き出して示す。
【0120】
例えば、データ局所位置Xについては、閾値を上回るブロックデータの数は、4個である。一方、図11(A)とは逆に、ストレージ3Aの部分T51における閾値を下回るブロックデータの数も求まる。この場合、データ局所位置Xについては、閾値を下回るブロックデータの数は、4個である。
【0121】
これにより、データ局所位置Xについては、ストレージ3Bに対して、バランシング要求が送信される。バランシング要求において、転送先ストレージは、ストレージ3Aとされる。転送サイズは「4」とされる。転送データ位置は、閾値を上回る4個のブロックデータのブロック番号とされる。バランシング要求を受信したストレージ3Bは、ストレージ3Aに、ブロック番号により指定された4個のブロックデータを転送する。ストレージ3Aは、4個のブロックデータを受信して格納する。
【0122】
なお、この転送の結果、転送元ストレージ3Bに格納されるブロックデータのブロック番号と、転送先ストレージ3Aに格納されるブロックデータのブロック番号とが、交互になるように、転送するブロックデータを選択するようにしても良い。
【0123】
図11(A)から判るように、データ局所位置X以外のデータ局所位置についても、閾値を上回るブロックデータの数が求まる。また、これとは逆に、閾値を下回るブロックデータの数も求まる。
【0124】
例えば、図11(A)は、ストレージ3Bの部分T54における閾値を上回るブロックデータについて示すと考えることができる。この場合、図11(B)は、ストレージ3Bの部分T54における、1個のデータ局所位置のみを抜き出して示すと考えることができる。以下の説明において、ストレージ3Bの部分T54における、前記抜き出された1個のデータ局所位置を「Y」ということとする。
【0125】
この場合、データ局所位置Yについては、閾値を上回るブロックデータの数は、4個である。一方、これとは逆に、ストレージ3Aの部分T53における閾値を下回るブロックデータの数は2個であり、ストレージ3Cの部分T55における閾値を下回るブロックデータの数は2個であるとする。
【0126】
これにより、データ局所位置Yについては、ストレージ3Bに対して第1及び第2のバランシング要求が送信される。第1のバランシング要求において、転送先ストレージは、ストレージ3Aとされる。第1のバランシング要求と共に送信される転送サイズは「2」とされ、転送データ位置は閾値を上回る2個のブロックデータのブロック番号とされる。第2のバランシング要求において、転送先ストレージは、ストレージ3Cとされる。第2のバランシング要求と共に送信される転送サイズは「2」とされ、転送データ位置は閾値を上回る他の2個のブロックデータのブロック番号とされる。
【0127】
ストレージ3Bは、第1のバランシング要求を受信すると、ストレージ3Aに、ブロック番号により指定された2個のブロックデータを転送する。ストレージ3Aは、2個のブロックデータを受信して格納する。また、ストレージ3Bは、第2のバランシング要求を受信すると、ストレージ3Cに、ブロック番号により指定された2個のブロックデータを転送する。ストレージ3Cは、2個のブロックデータを受信して格納する。
【0128】
なお、この転送の結果、転送される4個のブロックデータが、2個の転送先ストレージ3A及び3Cに交互に格納されるように、転送するブロックデータを選択するようにしても良い。
【0129】
図12は、主として、バランシング制御部4が実行するバランシング制御処理フローである。
【0130】
経路計画部6は、ネットワーク監視部5からストレージ3A〜3Cに接続されたネットワーク2についてのネットワーク輻輳情報を取得し、データ割り当て部1から使用帯域情報を取得する。経路計画部6は、取得したネットワーク輻輳情報及び使用帯域情報に基づいて、例えば図8及び図9に示すように、ストレージ3A〜3Cに接続されたネットワーク2についての空き帯域情報及び総帯域情報を求める。更に、経路計画部6は、求めた空き帯域情報に基づいて、ストレージ3A〜3Cに接続されたネットワーク2についての帯域割合を求める(ステップS1)。
【0131】
次に、バランシング制御部4は、データ割り当て部1からデータ位置情報を取得し、ストレージ3A〜3Cからデータ量を取得する。バランシング制御部4は、取得したデータ位置情報及びデータ量に基づいて、例えば図10及び図11に示すように、ストレージ3A〜3Cにおけるブロックデータの格納の状態(実際のデータ量)を求める。一方、バランシング制御部4は、ストレージ3A〜3Cに接続されたネットワーク2についての帯域割合に基づいて、ストレージ3A〜3Cに格納するブロックデータの割合(累積データ割合)を求める(ステップS2)。
【0132】
次に、バランシング制御部4は、図10に示すように、データ局所位置毎に、実際のデータ量と累積データ割合とに基づいて、ストレージ3A〜3Cの間において転送するブロックデータの量(移動データ量)を求める(ステップS3)。
【0133】
次に、バランシング制御部4は、データ局所位置毎に、移動データ量が正の値(閾値を超える値)であるストレージ3について、ストレージ3A〜3Cにおけるブロックデータの格納の偏りに基づいて、転送データを決定する(ステップS4)。換言すれば、バランシング制御部4は、図11に示すように、閾値を超える数のブロックデータを、転送対象データとする。
【0134】
次に、バランシング制御部4は、データ局所位置毎に、ストレージ3の間において転送される転送対象ブロックデータを決定する(ステップS5)。この時、バランシング制御部4は、図9に示す転送元ストレージ3と転送先ストレージ3との間における帯域に基づいて転送対象ブロックデータを決定し、かつ、図11により説明したように、転送後において複数のストレージ3に格納されるブロックデータのブロック番号が偏らないように転送対象ブロックデータを決定する。この後、バランシング制御部4は、データ局所位置毎に、1又は複数のバランシング要求(転送要求)を転送元ストレージ3に送信する(ステップS6)。これにより、転送元ストレージ3から転送先ストレージ3へ、ブロックデータが転送される。この後、ステップS1を繰り返す。
【0135】
図13(A)は、分散ストレージシステムの他の例を示す図である。
【0136】
分散ストレージシステムは、図13(A)に示すように、画像処理装置14、データ制御装置15、複数のストレージ3A〜3Cを含むようにしても良い。また、データ割り当て部1が、画像処理装置14に設けられるようにしても良い。画像処理装置14とデータ制御装置15との間は、例えばネットワーク2により接続される。また、図13(A)の例において、バランシング制御部4及び経路計画部6は、画像処理装置14又はデータ制御装置15に設けられる。
【0137】
図13(B)は、分散ストレージシステムの更に他の例を示す図である。
【0138】
分散ストレージシステムは、図13(B)に示すように、画像処理装置14、処理装置16、データ制御装置15、複数のストレージ3A〜3Cを含むようにしても良い。また、データ割り当て部1が、画像処理装置14以外に設けられるようにしても良い。画像処理装置14と処理装置16との間は、例えば専用のデータ伝送路17により接続される。データ伝送路17は、例えば、バス、LAN(Local Area Network)等である。処理装置16とデータ制御装置15との間は、例えばネットワーク2により接続される。また、図13(B)の例において、バランシング制御部4及び経路計画部6は、画像処理装置14、処理装置16又はデータ制御装置15に設けられる。
【符号の説明】
【0139】
1 データ割り当て部
2 ネットワーク
3A〜3C ストレージ
4 バランシング制御部
5 ネットワーク監視部
6 経路計画部
10 映像符号化装置
11、12 処理装置
13 ノード管理装置
21 上位ネットワーク
22 プローブ
23 スイッチ
24 下位ネットワーク
41 データ量統計部
42 データ量比較部

【特許請求の範囲】
【請求項1】
オリジナルデータを分割した複数のブロックデータを分散して格納する複数のストレージと、
前記複数のストレージに接続された複数のネットワークについての空き帯域情報を得る経路計画部と、
前記複数のネットワークについての空き帯域情報と、前記オリジナルデータにおける前記ブロックデータの位置を示すデータ位置情報とに基づいて、前記複数のストレージの間におけるデータ転送の対象となる転送対象ブロックデータを求めるバランシング制御部とを含む
ことを特徴とする分散ストレージシステム。
【請求項2】
前記バランシング制御部が、前記複数のストレージの間におけるデータ転送の転送元であるストレージに、前記複数のストレージの間におけるデータ転送の転送先であるストレージへの前記転送対象ブロックデータの転送要求を送信する
ことを特徴とする請求項1に記載の分散ストレージシステム。
【請求項3】
前記バランシング制御部が、前記転送要求と共に、前記転送対象ブロックデータのサイズ及び前記転送対象ブロックデータのデータ位置情報を、前記複数のストレージの間におけるデータ転送の転送元であるストレージに送信する
ことを特徴とする請求項2に記載の分散ストレージシステム。
【請求項4】
前記分散ストレージシステムが、更に、
前記複数のストレージに接続された複数のネットワークを監視して、前記複数のネットワークについての帯域情報を得るネットワーク監視部を含み、
前記経路計画部が、前記複数のネットワークについての帯域情報に基づいて、前記複数のネットワークについての前記空き帯域情報を得る
ことを特徴とする請求項1に記載の分散ストレージシステム。
【請求項5】
前記バランシング制御部が、前記複数のストレージの各々に格納されたブロックデータの数が、前記複数のネットワークについての空き帯域情報の比に等しくなるように、前記転送対象ブロックデータの数を求める
ことを特徴とする請求項1に記載の分散ストレージシステム。
【請求項6】
前記バランシング制御部が、前記複数のストレージの各々において、前記オリジナルデータにおける連続する複数のブロックデータについて前記データ位置情報に基づいて定まるデータ局所位置毎のブロックデータの数が、前記複数のネットワークについての空き帯域情報の比に等しくなるように、前記転送対象ブロックデータを求める
ことを特徴とする請求項5に記載の分散ストレージシステム。
【請求項7】
前記バランシング制御部が、前記複数のネットワークについての空き帯域情報の比に応じて、前記複数のストレージの各々における前記データ局所位置毎のブロックデータの数の閾値を定め、前記データ局所位置毎に、前記閾値を上回る数のブロックデータを格納するストレージを前記複数のストレージの間におけるデータ転送の転送元であるストレージとし、前記閾値を下回る数のブロックデータを格納するストレージを前記複数のストレージの間におけるデータ転送の転送先であるストレージとする
ことを特徴とする請求項1に記載の分散ストレージシステム。
【請求項8】
前記バランシング制御部が、前記複数のネットワークについての空き帯域情報に基づいて前記転送対象ブロックデータから選択した1又は複数のブロックデータについて、前記複数のストレージの間におけるデータ転送の転送元であるストレージに、前記転送要求を送信する
ことを特徴とする請求項7に記載の分散ストレージシステム。
【請求項9】
オリジナルデータを分割した複数のブロックデータを分散して格納する複数のストレージを含む分散ストレージシステムにおけるバランシング制御処理を実行するプログラムであって、
コンピュータに、
前記複数のストレージに接続された複数のネットワークについての空き帯域情報を得るステップと、
前記複数のネットワークについての空き帯域情報と、前記オリジナルデータにおける前記ブロックデータの位置を示すデータ位置情報とに基づいて、前記複数のストレージの間におけるデータ転送の対象となる転送対象ブロックデータを求めるステップとを実行させる
ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate