(57)【要約】【課題】データを分散配置する際にデータ再配置の性能が劣化すること。【解決手段】本発明は、複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置１００であって、記憶装置の数が変動する際に、記憶領域を分割するパーティションの数を算出するパーティション数算出手段１０１と、記憶領域を算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当てるパーティション割り当て手段１０２と、を備える。そして、上記パーティション数算出手段１０１は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する。【選択図】図７
2016181215.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置であって、
記憶装置の数が変動する際に、前記記憶領域を分割するパーティションの数を算出するパーティション数算出手段と、
前記記憶領域を前記算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当てるパーティション割り当て手段と、
を備え、
前記パーティション数算出手段は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する、
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記パーティション数算出手段は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の最小公倍数を、新たなパーティション数として算出する、
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記パーティション割り当て手段は、算出した前記新たなパーティション数のパーティションに前記記憶領域を分割して、当該分割したパーティションを、変動後の数の複数の記憶装置に均等に割り当てる、
情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記パーティション割り当て手段は、算出した前記新たなパーティション数のパーティションに前記記憶領域を分割して、当該分割したパーティションを、変動前の数の複数の記憶装置に割り当て、当該各記憶装置に割り当てたパーティションのうちそれぞれ同一の数のパーティションを、新たに追加された記憶装置に割り当てる、
情報処理装置。
【請求項５】
請求項１乃至４のいずれかに記載の情報処理装置であって、
前記パーティション数算出手段は、記憶装置の数が変動する際に、記憶装置数が変動する前のパーティション数を、変動後の記憶装置数で除算したときの剰余が０でない場合に、前記新たなパーティション数を算出する、
情報処理装置。
【請求項６】
請求項１乃至５のいずれかに記載の情報処理装置であって、
前記パーティション数算出手段は、記憶装置の数が変動する際に、記憶装置数が変動する前のパーティションを、変動後の各記憶装置に均等となるよう割り当てたときに、１つの記憶装置に割り当てられるパーティション数の最小値を最大値で除算した値が閾値以下である場合に、前記新たなパーティション数を算出する、
情報処理装置。
【請求項７】
複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置に、
記憶装置の数が変動する際に、前記記憶領域を分割するパーティションの数を算出するパーティション数算出手段と、
前記記憶領域を前記算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当てるパーティション割り当て手段と、
を実現させ、
前記パーティション数算出手段は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する、
プログラム。
【請求項８】
複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置が、
記憶装置の数が変動する際に、前記記憶領域を分割するパーティションの数を算出し、
前記記憶領域を前記算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当る、パーティション割り当て方法であって、
前記新たなパーティション数を算出する際に、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する、
パーティション割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置にかかり、特に、複数の記憶装置にて形成される記憶領域に対するパーティションを設定する情報処理装置に関する。
【背景技術】
【０００２】
分散ＫＶＳ（Key Value Store）システムにおいて、データの格納先を決めるための手法として、特許文献１に記載されているように、Consistent Hashingがよく使われている。Consistent Hashingでは、ハッシュ空間を分割し、Keyのハッシュ値に応じてValueの格納先をそれぞれのノードに割り当てる。
【０００３】
そして、このアルゴリズムは、ノードの増減に対してデータ移動が少ないため、分散KVSにおいて有効である。しかし、基本的なConsistent Hashingだけでは、キーを均等に分散させることができないため、データの偏りが発生する可能性が高い。このようなデータの偏りを解決するため、下記のような仮想ノード（パーティション）を利用する方法が提案されている。
【０００４】
具体的には、まず、ハッシュ空間を均等なＱ個のパーティションに分割する。また、Ｑ／Ｎ個のパーティションを、各ノードに割り当てる。このとき、Ｎは、システム全体におけるノードの数である。ここで、このようなシステムにノードがひとつ追加されると、Ｑ／Ｎ個のパーティションを新しいノードに移動させることで、データを全体ノードに均一に分散させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開２０１２／１２１３１６号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した方法では、一度パーティション数Ｑを決めてからは、かかるパーティション数Ｑを変更することができない。すると、全ノードにデータを均等に割り当てることができない、という問題が生じる。
【０００７】
一方で、上述した方法でデータを均等に割り当てるためには、パーティションを全体サーバに均等に割り当てる必要がある。そのためには、Q>>Nが成立するか、Q mod N=0のような条件が必要である。
【０００８】
しかし、上述した通り、Qは変更ができないため、予想以上のノードの追加が続いてNが大きくなると、パーティションを各ノードに均等に割り当てることができなくなる問題がある。また、最初にQを決めるとき、できるだけ大きい値にする必要があるが、Qの値が大きすぎる場合にノード数の変更があったとき、パーティション割り当てのメタデータなどのメンテナンスのオーバヘッドが大きくなり、データ再配置の性能が劣化する、という問題が生じる。
【０００９】
このため、本発明の目的は、上述した課題である、データを分散配置する際にデータ再配置の性能が劣化する、という問題を解決する、ことにある。
【課題を解決するための手段】
【００１０】
本発明の一形態である情報処理装置は、
複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置であって、
記憶装置の数が変動する際に、前記記憶領域を分割するパーティションの数を算出するパーティション数算出手段と、
前記記憶領域を前記算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当てるパーティション割り当て手段と、
を備え、
前記パーティション数算出手段は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する、
という構成をとる。
【００１１】
また、本発明の一形態であるプログラムは、
複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置に、
記憶装置の数が変動する際に、前記記憶領域を分割するパーティションの数を算出するパーティション数算出手段と、
前記記憶領域を前記算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当てるパーティション割り当て手段と、
を実現させ、
前記パーティション数算出手段は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する、
という構成をとる。
【００１２】
また、本発明の一形態であるパーティション割り当て方法は、
複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置が、
記憶装置の数が変動する際に、前記記憶領域を分割するパーティションの数を算出し、
前記記憶領域を前記算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当る、パーティション割り当て方法であって、
前記新たなパーティション数を算出する際に、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する、
という構成をとる。
【発明の効果】
【００１３】
本発明は、以上のように構成されることにより、データを分散配置する際におけるデータ再配置の性能の向上を計ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の全体構成を示すブロック図である。
【図２】図１に開示したデータ再分配制御装置の構成を示す機能ブロック図である。
【図３】記憶領域におけるパーティション配置の一例を示す図である。
【図４】記憶領域におけるパーティション配置の一例を示す図である。
【図５】記憶領域におけるパーティション配置の一例を示す図である。
【図６】本発明の動作を示すフローチャートである。
【図７】本発明の付記１における構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図６を参照して説明する。図１乃至図２は、本発明の構成を示すブロック図である。図３乃至図５は、本発明で設定されるパーティション配置の一例を示す図である。図６は、本発明の動作を示すフローチャートである。
【００１６】
図１は、複数のノードを備え、ノードの追加、削除が可能な分散KVSシステムを示している。各ノード１０，２０，３０，４０は、演算装置と記憶装置を備えた情報処理装置である。そして、複数のノードにそれぞれ装備された複数の記憶装置によって、１つの記憶領域が形成されている。
【００１７】
各ノードは、図１に示すように、管理クライアント１０、コマンド受付ノード２０、データ取得ノード３０、データ提供ノード４０の４つの役割を持つ。この中で、コマンド受付ノード２０、データ取得ノード３０、データ提供ノード４０は、本質的に同等な機能を備えたノードである。但し、本発明では、動作において異なる役割を果たすため、役割別に記載している。以下、４つの役割について説明する。
【００１８】
管理クライアント１０は、分散KVSシステムに対して、ノードの追加、削除などのユーザの命令を転送するノードである。
【００１９】
コマンド受付ノード２０は、管理クライアントからのコマンドを受け付けるノードである。基本的に、分散KVSシステムのどのノードでもコマンド受付ノードになる可能性がある。
【００２０】
データ取得ノード３０は、分散KVSシステムに新しく追加されることにより、あるいは、他のノードが削除されることにより、新しくパーティションを取得する必要があるノードのことである。分散KVSシステムに新しく追加された場合でなければ、データ取得ノードがコマンド受付ノードになる可能性がある。
【００２１】
データ提供ノード４０は、ノードが追加、または、削除されることにより、データ取得ノードにデータを提供するノードである。データ提供ノードのどのノードでもコマンド受付ノードとして機能することができる。
【００２２】
次に、上述したノードの構成について説明する。なお、ノードは上述したいずれのノードにもなりうるため、全てのノードが以下に説明する同一の構成を有している。
【００２３】
ノード２０，３０，４０は、図１に示すように、演算装置がプログラムを実行することで構成された、コマンド受付部２１，３１，４１と、データ再分配制御装置２２、３２、４２と、を備える。また、ノード２０，３０，４０は、通信装置であるノード間通信部２３，３３，４３と、記憶装置であるストレージ部２４，３４，４４と、を備える。そして、上記データ再分配制御装置２２は、図２に示すように、パーティション分割判定部５２と、パーティション数算出部５３と、パーティション分割部５４と、パーティション割り当て部５５と、パーティション情報連絡部５１と、を備えている。なお、図２では、コマンド受付ノード２０が装備する構成を図示しているが、他のノードも同様の構成を有する。
【００２４】
上記コマンド受付部２１は、管理クライアント１０からのコマンドを、ノード間通信部２３、または、データ再分配制御装置２２に転送する。
【００２５】
データ再分配制御装置２２は、上述した５つの機能（各部５１〜５５）を有しており、ノードの追加／削除のコマンドを受け付けたとき、パーティション再分割の判断や、パーティション移動計画を作成する装置である。
【００２６】
具体的に、パーティション分割判定部５２（パーティション数算出手段）は、現在のパーティション数とノード追加後／削除後のノード数から、データの分散度を計算し、パーティションを分割するか判定する。例えば、以下の２つの条件を満たした場合に、パーティションの再分割を行うと判定し、再分割する新たなパーティション数を算出する。
【００２７】
１つ目の条件は、ノード数（記憶装置数）が変動する前のパーティション数を、ノード数変動後のノード数で割ったときの余りが「０」でない場合である。２つ目の条件は、ノード数が変動する前のパーティションを、ノード数変動後のノードで均等となるよう割り当てたとき、１つのノード割り当てられるパーティション数の最小値を最大値で除算した値が閾値以下、の場合である。なお、いずれか一方の条件を満たした場合に、パーティションの再分割を行うと判定し、再分割する新たなパーティション数を算出してもよい。
【００２８】
そして、上記パーティション数算出部５３（パーティション数算出手段）は、パーティション分割判定部５２で分割すべきと判断された場合に、現在のパーティション数とノード数変動後（追加後／削除後）のノード数から、パーティションをどれだけ分割するか計算する。例えば、現在のパーティション数と変動後のノード数との最小公倍数を、再分割する新たなパーティション数として算出する。なお、パーティション数算出部５３は、現在のパーティション数と変動後のノード数との公倍数を、再分割する新たなパーティション数として算出してもよい。
【００２９】
パーティション分割部５４（パーティション割り当て手段）は、パーティション数算出部５３から得られたパーティション数に従い、パーティションを分割する。つまり、ノード数が変動される前の現在のノード数で構成される記憶領域を、算出された新たなパーティション数のパーティションに分割する。
【００３０】
パーティション割り当て部５５（パーティション割り当て手段）は、分割したパーティションを、変動後の数の各ノードに均等に割り当てる計画を作成する。例えば、ノードが追加される場合には、分割後のパーティションを、追加後のノードに割り当てる計画を作成する。
【００３１】
パーティション情報連絡部５１（パーティション割り当て手段）は、パーティション情報を外部のノードとやりとりする。つまり、パーティション情報連絡部５１は、再分割する新たなパーティション数や各ノードに対するパーティションの配置の情報を、他のノードとやりとりする。そして、パーティション情報連絡部５１は、やりとりした情報に基づいて、各ノードにおいてパーティションの割り当てを行う。
【００３２】
なお、上述したノード間通信部２３，３３，４３は、ノードの他の構成要素から転送されてきたコマンドやデータなどを、他のノードに転送するか、他のノードからの要求をノードの各機能に転送する。また、ストレージ部２４，３４，４４は、分散KVSシステムのデータを格納する機能を持つ。
【００３３】
次に、上述したノードにて構成されるKVSシステムの動作を説明する。以下では、ノード数が変動する一例として、ノード追加時の動作を説明する。
【００３４】
図３は、符号Ａ〜Ｃの３個のノードからなる分散KVSシステムのパーティション配置を表している。この例では、符号１〜６は、ハッシュ空間においてそれぞれのパーティションが割り当てられた空間を表しており、符号Ａ〜Ｃのノードとパーティションの割り当ての関係を表している。つまり、ノードＡ〜Ｃが備える複数の記憶装置にて形成された記憶領域が、符号１〜６で示すパーティションに分割されている場合を表している。具体的には、ノードＡにパーティション１，２が、ノードＢにパーティション３，４が、ノードＣにパーティション５，６が、それぞれ割り当てられている。
【００３５】
図３に示す状況で、管理クライアント１０がノードＡにノードＤを追加するようにコマンドを転送する。コマンドを受け付けたノードＡのコマンド受付部２１は（図６のステップＳ１）、データ再分配制御装置２２にその内容を転送して、パーティションの分割と振り分けを計算する。具体的に、まず、データ再分配制御装置２２は、ノード追加の情報をパーティション情報連絡部５１で受け取り、パーティション分割判定部５２に転送する。
【００３６】
そして、パーティション分割判定部５２は、まず、ノード数（記憶装置数）が変動する前のパーティション数Ｑを、ノード数変動後のノード数Ｎで割ったときの余りが「０」（Ｑ  ｍｏｄ  Ｎ＝０？）あるか否かを調べる（図６のステップＳ２）。これを調べることで、現在のパーティション数のまま、ノードが追加されてもデータを均等に分散できるかを判定することができる。
【００３７】
この事例では、現在のパーティション数Qが「６」であり、追加後のノード数が「４」であるため、「Ｑ／Ｎ＝1・・・２（Ｑ  ｍｏｄ  Ｎ＝２）」となり、４個のノードに１つずつパーティションを割り当てて、余りの２つのパーティションを２個のノードに配置することになる。つまり、この場合、２個のノードには１つのパーティションが割り当てられ、残りの２個のノードには２つのパーティションが割り当てられることになるため、データ分散が均等ではなくなる。すると、パーティション分割判定部５２は、さらに以下のことを調べる（図６のステップＳ２でＮｏ）。
【００３８】
パーティション分割判定部５２は、ノード数（記憶装置数）が変動する前のパーティション数Ｑを、ノード数変動後のノード数Ｎで割ったときの商（実数）に対する床関数floor(Q/N)と天井関数ceil(Q/N)を求め、これらの比{floor(Q/N)}/{ceil(Q/N)}を算出する。つまり、ノード数が変動する前のパーティションを、ノード数変動後のノードで均等となるよう割り当てたとき、１つのノード割り当てられるパーティション数の最小値を最大値で除算した値を算出する。この値{floor(Q/N)}/{ceil(Q/N)}は、ノード間パーティション数の比を表しており、かかる値が、予め設定された閾値Tより大きいか否かを調べる（図６のステップＳ３）。閾値Tは、ノード間パーティション数の比をどこまで許すか、を表す値であり、算出した比が閾値T以下である場合には、ノードあたりのパーティション数のバランスが悪いことを表している。
【００３９】
この事例では、{floor(Q/N)/ceil(Q/N)}=0.5になり、T=0.8に設定されていることとする。すると、算出したノード間パーティション数の比が閾値T以下となるため（図６のステップＳ３でＮｏ）、ノードあたりのパーティション数のバランスが悪くなる。このため、この事例では、パーティション分割判定部５２がパーティションの再分割を行うと判定し、その内容をパーティション数算出部５３に転送する。パーティション分割判定部５２で分割しないという判定になった場合は、パーティション割り当て部５５に現在のパーティション情報を転送する。
【００４０】
パーティション数算出部５３では、１つのノード当たり同じ数のパーティションを割り当てるために、(Q=6)個のパーティションをさらに分割すべく、新たなパーティション数を算出する。ここでは、現在のパーティション数Qと、ノード追加後のノード数Nと、のL.C.M（最小公倍数）の値を、新たなパーティション数Q’として求める（図６のステップＳ４）。このとき、Q=6、N=4、であるため、Q’=12になる。なお、新たなパーティション数は、QとNとの最小公倍数とすることに限定されず、QとNの公倍数としてもよい。
【００４１】
次に、パーティション数算出部５３で求めたQ’をもとに、パーティション分割部５４が、現在、記憶領域に設定されているQ個のパーティションを、Q’個のパーティションに分割する（図６のステップＳ５）。このとき、各パーティションを、それぞれ(Q’/Q)個に分割する。これにより、この事例では、図４に示すように、図３の符号１〜６で示す各パーティションを、それぞれ２つのパーティション（符号１−１〜６−２）に分割して、合計１２個のパーティションに分割することとなる。
【００４２】
なお、１２個のパーティションは、元のパーティションをそれぞれ分割して形成されているため、ノード追加前の各ノードに割り当てられた状態となる。つまり、図４に示すように、符号Ａ，Ｂ，Ｃの各ノードには、それぞれ４つずつパーティションが割り当てられた状態となる。
【００４３】
ここで、図４では、各パーティションを（α−β）の形式で表示しているが、元のパーティションαを分割したβ番目のパーティションと言う意味である。例えば、パーティション(2-2)は、元のパーティション２を分割したなかの２番目のパーティションを意味する。つまり、(2-β)パーティションは、すべてパーティション２があった空間の中に含まれるパーティションを意味することになる。
【００４４】
次に、パーティション割り当て部５５が、分割後に各ノードが担当するパーティションのうち、追加したノードＤに割り当てるパーティションのリストを計算する（図６のステップＳ６）。このとき、パーティション割り当て部５５は、分割したパーティションを、ノード追加後のすべてのノードＡ〜Ｄで均等に割り当てるよう、既存のノードＡ〜Ｃから追加したノードＤに移動するパーティションのリストを計算する。具体的には、既存のノードＡ〜Ｃからそれぞれ同一の数のパーティションを、追加されたノードＤに割り当てるようリストを計算する。この事例では、図５に示すように、ノードＡ，Ｂ，Ｃにそれぞれ割り当てられているパーティション(2-2),(4-2),(6-2)を、追加されたノードＤに割り当てるようリストを生成する。
【００４５】
次に、パーティション情報連絡部５１は、パーティション割り当て部５５で生成したリストをノード間通信部２３に転送し、当該ノード間通信部２３は、分散KVSシステムを構成する各ノードに通知する。この事例では、データ取得ノード３０となるノードＤにリストを転送し（図６のステップＳ７）、データ提供ノード４０となるノードＡ，Ｂ，Ｃにそれぞれリスト転送する（図６のステップＳ８）。このとき、ノードＤが、データ提供ノードとなるノードＡ，Ｂ，Ｃに、それぞれパーティション(2-2),(4-2),(6-2)を移動するよう要請する。
【００４６】
次に、パーティション移動の要請を受けたデータ提供ノードであるノードＡ，Ｂ，Ｃが、自分が持っているすべてのデータのキーを確認し、移動が必要なパーティションのデータであるかを確認する（図６のステップＳ９）。その後、データ提供ノードであるノードＡ，Ｂ，Ｃは、移動が必要だと判断したキーのデータを、パーティションを要求したデータ取得ノードであるノードＤに転送する（図６のステップＳ１０）。このようにして、新しく算出されたパーティション数のパーティションを、ノードＤが追加されたすべてのノードＡ〜Dに割り当てて設定することができる。
【００４７】
このとき、データ提供ノードであるノードＡ，Ｂ，Ｃが新しく担当することになったパーティション（例えば、ノードＡにおいては、パーティション(1-1),(1-2),(2-1)）は、すべて自ノードに既存に担当していたパーティションである。このため、データ提供ノードであるノードＡ，Ｂ，Ｃは、新しいパーティションの移動や作成を要請する必要はない。これにより、本発明では、パーティション数Qを変更した場合であっても、もとの既存のパーティションのサイズで換算して、Q/N =1.5パーティションの移動だけでデータの再配置が可能になる。
【００４８】
以上のように、本願発明によると、最初に決めたパーティション数に関係なく、ノードの追加削除時に、データが均等に分散されるよう、各ノードに均等なパーティションを与えることが可能となる。このため、ノード数が少ないとき、ノードの追加を予想して最初から大きい数のパーティションを作成する必要がないため、メタデータ管理などによるオーバヘッドを削減でき、データ再配置の性能の向上を計ることができる。
【００４９】
特に、パーティション数Qの変更時に、変更後のパーティションに変更前のパーティションのハッシュ空間と関係性を持たせることで、Q/Nのパーティションのデータ量を移動するだけで、データの再配置が可能となる。そして、パーティション数の変更が可能になることによって、ノードの増減に合わせて最小限のパーティション数を確保することが可能になる。
【００５０】
また、設定した閾値でパーティションを追加分割するか判断することができる。さらに、パーティションを動的に変更することで、ノード数に対して最適なパーティション数に設定できる。
【００５１】
ここで、上記では、自動的に分割したパーティションをノードに割り当てていたが、手動でノードに割り当てることも可能である。このとき、手動で決めたQ’が、Q’ mod Q = 0 (Q’≠0)で、すべてのパーティションにノードが割り当てられていれば、実行可能にする。このときQ’=Qであれば既存のデータ移動を実施し、Q’>Qであればパーティションの再分割を行い、設定ファイルに記載されたどおりにデータの再分散を行なう。
【００５２】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置（図７参照）、プログラム、パーティション割り当て方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００５３】
（付記１）
複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置であって、
記憶装置の数が変動する際に、前記記憶領域を分割するパーティションの数を算出するパーティション数算出手段１０１と、
前記記憶領域を前記算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当てるパーティション割り当て手段１０２と、
を備え、
前記パーティション数算出手段１０１は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する、
情報処理装置１００。
【００５４】
（付記２）
付記１に記載の情報処理装置であって、
前記パーティション数算出手段は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の最小公倍数を、新たなパーティション数として算出する、
情報処理装置。
【００５５】
（付記３）
付記１又は２に記載の情報処理装置であって、
前記パーティション割り当て手段は、算出した前記新たなパーティション数のパーティションに前記記憶領域を分割して、当該分割したパーティションを、変動後の数の複数の記憶装置に均等に割り当てる、
情報処理装置。
【００５６】
（付記４）
付記３に記載の情報処理装置であって、
前記パーティション割り当て手段は、算出した前記新たなパーティション数のパーティションに前記記憶領域を分割して、当該分割したパーティションを、変動前の数の複数の記憶装置に割り当て、当該各記憶装置に割り当てたパーティションのうちそれぞれ同一の数のパーティションを、新たに追加された記憶装置に割り当てる、
情報処理装置。
【００５７】
（付記５）
付記１乃至４のいずれかに記載の情報処理装置であって、
前記パーティション数算出手段は、記憶装置の数が変動する際に、記憶装置数が変動する前のパーティション数を、変動後の記憶装置数で除算したときの剰余が０でない場合に、前記新たなパーティション数を算出する、
情報処理装置。
【００５８】
（付記６）
付記１乃至５のいずれかに記載の情報処理装置であって、
前記パーティション数算出手段は、記憶装置の数が変動する際に、記憶装置数が変動する前のパーティションを、変動後の各記憶装置に均等となるよう割り当てたときに、１つの記憶装置に割り当てられるパーティション数の最小値を最大値で除算した値が閾値以下である場合に、前記新たなパーティション数を算出する、
情報処理装置。
【００５９】
（付記７）
複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置に、
記憶装置の数が変動する際に、前記記憶領域を分割するパーティションの数を算出するパーティション数算出手段と、
前記記憶領域を前記算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当てるパーティション割り当て手段と、
を実現させ、
前記パーティション数算出手段は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する、
プログラム。
【００６０】
（付記７．１）
付記７に記載のプログラムであって、
前記パーティション数算出手段は、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の最小公倍数を、新たなパーティション数として算出する、
プログラム。
【００６１】
（付記７．２）
付記７又は７．１に記載のプログラムであって、
前記パーティション割り当て手段は、算出した前記新たなパーティション数のパーティションに前記記憶領域を分割して、当該分割したパーティションを、変動後の数の複数の記憶装置に均等に割り当てる、
プログラム。
【００６２】
（付記７．３）
付記７．２に記載のプログラムであって、
前記パーティション割り当て手段は、算出した前記新たなパーティション数のパーティションに前記記憶領域を分割して、当該分割したパーティションを、変動前の数の複数の記憶装置に割り当て、当該各記憶装置に割り当てたパーティションからそれぞれ同一の数のパーティションを、新たに追加された記憶装置に割り当てる、
プログラム。
【００６３】
（付記８）
複数の記憶装置で形成される記憶領域にデータを記憶する情報処理装置が、
記憶装置の数が変動する際に、前記記憶領域を分割するパーティションの数を算出し、
前記記憶領域を前記算出された数のパーティションに分割して、当該分割した各パーティションを変動後の数の複数の記憶装置に割り当る、パーティション割り当て方法であって、
前記新たなパーティション数を算出する際に、記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の公倍数を、新たなパーティション数として算出する、
パーティション割り当て方法。
【００６４】
（付記８．１）
付記８に記載のパーティション割り当て方法であって、
記憶装置数が変動する前のパーティション数と、変動後の記憶装置数と、の最小公倍数を、新たなパーティション数として算出する、
パーティション割り当て方法。
【００６５】
（付記８．２）
付記８又は８．１に記載のパーティション割り当て方法であって、
算出した前記新たなパーティション数のパーティションに前記記憶領域を分割して、当該分割したパーティションを、変動後の数の複数の記憶装置に均等に割り当てる、
パーティション割り当て方法。
【００６６】
（付記８．３）
付記８．２に記載のパーティション割り当て方法であって、
算出した前記新たなパーティション数のパーティションに前記記憶領域を分割して、当該分割したパーティションを、変動前の数の複数の記憶装置に割り当て、当該各記憶装置に割り当てたパーティションからそれぞれ同一の数のパーティションを、新たに追加された記憶装置に割り当てる、
パーティション割り当て方法。
【００６７】
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００６８】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００６９】
１０  管理クライアント
２０  コマンド受付ノード
２１  コマンド受付部
２２  データ再分配制御装置
２３  ノード間通信部
２４  ストレージ部
３０  データ取得ノード
３１  コマンド受付部
３２  データ再分配制御装置
３３  ノード間通信部
３４  ストレージ部
４０  データ提供ノード
４１  コマンド受付部
４２  データ再分配制御装置
４３  ノード間通信部
４４  ストレージ部
５１  パーティション情報連絡部
５２  パーティション分割判定部
５３  パーティション数算出部
５４  パーティション分割部
５５  パーティション割り当て部
１００  情報処理装置
１０１  パーティション数算出手段
１０２  パーティション割り当て手段
【図１】
2016181215.tif 000003
【図２】
2016181215.tif 000004
【図３】
2016181215.tif 000005
【図４】
2016181215.tif 000006
【図５】
2016181215.tif 000007
【図６】
2016181215.tif 000008
【図７】
2016181215.tif 000009