(57)【特許請求の範囲】
【請求項１】
複数のデータ記憶部を有し、複数の複製データを各データ記憶部に分散する分散ストレージシステムであって、
各データ記憶部の最大容量に比例する値を、各データ記憶部の重みとして記憶し、また、前記分散ストレージシステムにデータ記憶部が追加された場合、該追加されたデータ記憶部の最大容量に比例する値よりも小さい所定の初期値を、前記追加されたデータ記憶部の重みとして記憶する重み記憶部と、
前記重み記憶部に記憶されている前記追加されたデータ記憶部の重みを、前記追加されたデータ記憶部の最大容量に比例する値よりも小さい所定の増加値ずつ増加させる重み付け部と、
前記重み付け部が前記追加されたデータ記憶部の重みを増加させるたびに、前記追加されたデータ記憶部を含む各データ記憶部の蓄積量の比が、前記追加されたデータ記憶部を含む各データ記憶部の重みの比と等しくなるように、前記追加されたデータ記憶部以外のデータ記憶部が蓄積する複製データのうち、前記追加されたデータ記憶部に移動させる複製データを決定する蓄積先決定部と、
前記蓄積先決定部によって複製データが決定されるたびに、前記蓄積先決定部によって決定された複製データを、前記追加されたデータ記憶部に移動させる複製データ配置部と、
を有することを特徴とする分散ストレージシステム。
【請求項２】
前記データ記憶部は、少なくとも１つ以上のデータ記憶部の集合であるノード単位で前記分散ストレージシステムへ追加され、
前記重み記憶部は、前記ノードに含まれるデータ記憶部毎の重みの増加値の閾値である第１の閾値と、前記ノード毎に設定された重みの増加値の閾値である第２の閾値と、をさらに記憶し、
前記重み付け部は、前記第１の閾値に前記ノードに含まれるデータ記憶部の個数を乗じた値が前記第２の閾値より小さい場合は、前記第１の閾値を前記増加値とし、前記第１の閾値に前記ノードに含まれるデータ記憶部の個数を乗じた値が前記第２の閾値以上である場合は、前記第２の閾値を前記データ記憶部の個数で除した値を前記増加値とすることを特徴とする請求項１に記載の分散ストレージシステム。
【請求項３】
複数のデータ記憶部を有し、複数の複製データを各データ記憶部に分散する分散ストレージシステムであって、
各データ記憶部の最大容量に比例する値を、各データ記憶部の重みとして記憶する重み記憶部と、
前記分散ストレージシステムからデータ記憶部が除去される場合、前記重み記憶部に記憶されている該除去されるデータ記憶部の重みを、前記除去されるデータ記憶部の最大容量に比例する値よりも小さい所定の減少値ずつ減少させる重み付け部と、
前記重み付け部が前記除去されるデータ記憶部の重みを減少させるたびに、前記除去されるデータ記憶部を含む各データ記憶部の蓄積量の比が、前記除去されるデータ記憶部を含む各データ記憶部の重みの比と等しくなるように、前記除去されるデータ記憶部が蓄積する複製データのうち、前記除去されるデータ記憶部から移動させる複製データを決定する蓄積先決定部と、
前記蓄積先決定部によって複製データが決定されるたびに、前記蓄積先決定部によって決定された複製データを、前記除去されるデータ記憶部から移動させる複製データ配置部と、
を有することを特徴とする分散ストレージシステム。
【請求項４】
前記データ記憶部は、少なくとも１つ以上のデータ記憶部の集合であるノード単位で前記分散ストレージシステムから除去され、
前記重み記憶部は、前記ノードに含まれるデータ記憶部毎の重みの減少値の閾値である第１の閾値と、前記ノード毎に設定された重みの減少値の閾値である第２の閾値と、をさらに記憶し、
前記重み付け部は、前記第１の閾値に前記ノードに含まれるデータ記憶部の個数を乗じた値が前記第２の閾値より小さい場合は、前記第１の閾値を前記減少値とし、前記第１の閾値に前記ノードに含まれるデータ記憶部の個数を乗じた値が前記第２の閾値以上である場合は、前記第２の閾値を前記データ記憶部の個数で除した値を前記減少値とすることを特徴とする請求項３に記載の分散ストレージシステム。
【請求項５】
データ記憶部の入出力の頻度を監視する監視部をさらに有し、
前記複製データ配置部は、前記データ記憶部の入出力の頻度が所定の値以下である場合に、複製データを移動させることを特徴とする請求項１から４のいずれか１項に記載の分散ストレージシステム。
【請求項６】
複数のデータ記憶部を有し、複数の複製データを各データ記憶部に分散する分散ストレージシステムで実行されるデータ再配置方法であって、
各データ記憶部の最大容量に比例する値を、各データ記憶部の重みとして重み記憶部に記憶させる第１の記憶工程と、
前記分散ストレージシステムにデータ記憶部が追加された場合、該追加されたデータ記憶部の最大容量に比例する値よりも小さい所定の初期値を、前記追加されたデータ記憶部の重みとして前記重み記憶部に記憶させる第２の記憶工程と、
前記重み記憶部に記憶されている前記追加されたデータ記憶部の重みを、前記追加されたデータ記憶部の最大容量に比例する値よりも小さい所定の増加値ずつ増加させる重み付け工程と、
前記重み付け工程が前記追加されたデータ記憶部の重みを増加させるたびに、前記追加されたデータ記憶部を含む各データ記憶部の蓄積量の比が、前記追加されたデータ記憶部を含む各データ記憶部の重みの比と等しくなるように、前記追加されたデータ記憶部以外のデータ記憶部が蓄積する複製データのうち、前記追加されたデータ記憶部に移動させる複製データを決定する蓄積先決定工程と、
前記蓄積先決定工程によって複製データが決定されるたびに、前記蓄積先決定工程によって決定された複製データを、前記追加されたデータ記憶部に移動させる複製データ配置工程と、
を含んだことを特徴とするデータ再配置方法。
【請求項７】
複数のデータ記憶部を有し、複数の複製データを各データ記憶部に分散する分散ストレージシステムで実行されるデータ再配置方法であって、
各データ記憶部の最大容量に比例する値を、各データ記憶部の重みとして重み記憶部に記憶させる記憶工程と、
前記分散ストレージシステムからデータ記憶部が除去される場合、前記重み記憶部に記憶されている該除去されるデータ記憶部の重みを、前記除去されるデータ記憶部の最大容量に比例する値よりも小さい所定の減少値ずつ減少させる重み付け工程と、
前記重み付け工程が前記除去されるデータ記憶部の重みを減少させるたびに、前記除去されるデータ記憶部を含む各データ記憶部の蓄積量の比が、前記除去されるデータ記憶部を含む各データ記憶部の重みの比と等しくなるように、前記除去されるデータ記憶部が蓄積する複製データのうち、前記除去されるデータ記憶部から移動させる複製データを決定する蓄積先決定工程と、
前記蓄積先決定工程によって複製データが決定されるたびに、前記蓄積先決定工程によって決定された複製データを、前記除去されるデータ記憶部から移動させる複製データ配置工程と、
を含んだことを特徴とするデータ再配置方法。
【請求項８】
コンピュータを、請求項１から５のいずれか１項に記載の分散ストレージシステムとして機能させるためのデータ再配置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ストレージシステム、データ再配置方法およびデータ再配置プログラムに関する。
【背景技術】
【０００２】
従来、ストレージを格納する装置が故障した場合に発生するデータの破損や消失を防止する方法として、ファイルデータを複製して冗長化し、複数の装置に分散して蓄積する方法が知られている。具体的には、同一データの複製を複数のサーバに分散させて管理する分散ストレージ装置が知られている。分散ストレージ装置においては、ファイルデータを複製して冗長化し、複数のサーバ上に分散して蓄積することにより、耐故障性を向上させている。
【０００３】
例えば、各クラスタがマスタサーバ、複数のチャンクサーバおよび複数のクライアントサーバで構成され、クラスタにファイルを格納するときは、ファイルを固定長の複数のブロックに分割し、ブロック１つ１つの複製したブロックデータをチャンクサーバに格納する分散ファイルシステムを有する分散ストレージ装置が知られている（例えば、非特許文献１を参照）。
【０００４】
また、各クラスタがプロキシ、複数のストレージノード、リングファイルおよび複数のクライアントで構成され、クラスタにファイルを格納するときは、リングファイルに基づき、ファイルのパス名から複数のストレージノードを選択し、ファイルの複製データを選択した当該ストレージノードに格納する分散オブジェクトストレージを有する分散ストレージ装置が知られている（例えば、非特許文献２を参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Sanjay  Ghemawat,  Howard  Gobioff,  and  Shun-Tak  Leung、“The  Google  File  System”、19th  ACM  Symposium  on  Operating  Systems  Principles、２００３年１０月、p.20-43
【非特許文献２】OpenStack  Object  Storage（“Swift”）、https://wiki.openstack.org/wiki/Swift
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の分散ストレージ装置には、蓄積ノードまたはディスクの増減等に伴うデータ再配置により、クライアントに対するデータのＩ／Ｏスループットが低下し、分散ストレージのサービスを安定して提供することができなくなるという問題があった。
【０００７】
例えば、分散ストレージ装置では、チャンクサーバ、ストレージノードといったデータ蓄積ノードの障害を復旧する際や、クラスタのデータ容量を増加させる際に、新規のデータ蓄積ノードを追加する。この時、新規データ蓄積ノードに対して、複製したデータの再配置が行われる。なお、再配置とは、例えば、クラスタに保存したデータを既存蓄積ノードから新規のデータ蓄積ノードへファイルデータをコピーし、既存データ蓄積ノードから当該データを削除することである。
【０００８】
このようなデータ再配置処理が、データ蓄積ノードのＮＩＣ（Network  Interface  Card）帯域、ディスクＩ／Ｏを圧迫することで、クライアントからのリクエスト処理を阻害し、クライアントからの分散ストレージ装置に対するデータＩ／Ｏのスループットを低下させる。
【課題を解決するための手段】
【０００９】
本発明の分散ストレージシステムは、複数のデータ記憶部を有し、複数の複製データを各データ記憶部に分散する分散ストレージシステムであって、各データ記憶部の最大容量に比例する値を、各データ記憶部の重みとして記憶し、また、前記分散ストレージシステムにデータ記憶部が追加された場合、該追加されたデータ記憶部の最大容量に比例する値よりも小さい所定の初期値を、前記追加されたデータ記憶部の重みとして記憶する重み記憶部と、前記重み記憶部に記憶されている前記追加されたデータ記憶部の重みを、前記追加されたデータ記憶部の最大容量に比例する値よりも小さい所定の増加値ずつ増加させる重み付け部と、前記重み付け部が前記追加されたデータ記憶部の重みを増加させるたびに、前記追加されたデータ記憶部を含む各データ記憶部の蓄積量の比が、前記追加されたデータ記憶部を含む各データ記憶部の重みの比と等しくなるように、前記追加されたデータ記憶部以外のデータ記憶部が蓄積する複製データのうち、前記追加されたデータ記憶部に移動させる複製データを決定する蓄積先決定部と、前記蓄積先決定部によって複製データが決定されるたびに、前記蓄積先決定部によって決定された複製データを、前記追加されたデータ記憶部に移動させる複製データ配置部と、を有することを特徴とする。
【００１０】
また、本発明の分散ストレージシステムは、複数のデータ記憶部を有し、複数の複製データを各データ記憶部に分散する分散ストレージシステムであって、各データ記憶部の最大容量に比例する値を、各データ記憶部の重みとして記憶する重み記憶部と、前記分散ストレージシステムからデータ記憶部が除去される場合、前記重み記憶部に記憶されている該除去されるデータ記憶部の重みを、前記除去されるデータ記憶部の最大容量に比例する値よりも小さい所定の減少値ずつ減少させる重み付け部と、前記重み付け部が前記除去されるデータ記憶部の重みを減少させるたびに、前記除去されるデータ記憶部を含む各データ記憶部の蓄積量の比が、前記除去されるデータ記憶部を含む各データ記憶部の重みの比と等しくなるように、前記除去されるデータ記憶部が蓄積する複製データのうち、前記除去されるデータ記憶部から移動させる複製データを決定する蓄積先決定部と、前記蓄積先決定部によって複製データが決定されるたびに、前記蓄積先決定部によって決定された複製データを、前記除去されるデータ記憶部から移動させる複製データ配置部と、を有することを特徴とする。
【００１１】
また、本発明のデータ再配置方法は、複数のデータ記憶部を有し、複数の複製データを各データ記憶部に分散する分散ストレージシステムで実行されるデータ再配置方法であって、各データ記憶部の最大容量に比例する値を、各データ記憶部の重みとして重み記憶部に記憶させる第１の記憶工程と、前記分散ストレージシステムにデータ記憶部が追加された場合、該追加されたデータ記憶部の最大容量に比例する値よりも小さい所定の初期値を、前記追加されたデータ記憶部の重みとして前記重み記憶部に記憶させる第２の記憶工程と、前記重み記憶部に記憶されている前記追加されたデータ記憶部の重みを、前記追加されたデータ記憶部の最大容量に比例する値よりも小さい所定の増加値ずつ増加させる重み付け工程と、前記重み付け工程が前記追加されたデータ記憶部の重みを増加させるたびに、前記追加されたデータ記憶部を含む各データ記憶部の蓄積量の比が、前記追加されたデータ記憶部を含む各データ記憶部の重みの比と等しくなるように、前記追加されたデータ記憶部以外のデータ記憶部が蓄積する複製データのうち、前記追加されたデータ記憶部に移動させる複製データを決定する蓄積先決定工程と、前記蓄積先決定工程によって複製データが決定されるたびに、前記蓄積先決定工程によって決定された複製データを、前記追加されたデータ記憶部に移動させる複製データ配置工程と、を含んだことを特徴とする。
【００１２】
また、本発明のデータ再配置方法は、複数のデータ記憶部を有し、複数の複製データを各データ記憶部に分散する分散ストレージシステムで実行されるデータ再配置方法であって、各データ記憶部の最大容量に比例する値を、各データ記憶部の重みとして重み記憶部に記憶させる記憶工程と、前記分散ストレージシステムからデータ記憶部が除去される場合、前記重み記憶部に記憶されている該除去されるデータ記憶部の重みを、前記除去されるデータ記憶部の最大容量に比例する値よりも小さい所定の減少値ずつ減少させる重み付け工程と、前記重み付け工程が前記除去されるデータ記憶部の重みを減少させるたびに、前記除去されるデータ記憶部を含む各データ記憶部の蓄積量の比が、前記除去されるデータ記憶部を含む各データ記憶部の重みの比と等しくなるように、前記除去されるデータ記憶部が蓄積する複製データのうち、前記除去されるデータ記憶部から移動させる複製データを決定する蓄積先決定工程と、前記蓄積先決定工程によって複製データが決定されるたびに、前記蓄積先決定工程によって決定された複製データを、前記除去されるデータ記憶部から移動させる複製データ配置工程と、を含んだことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、蓄積ノードまたはディスクの増減等に伴うデータ再配置により、クライアントに対するデータのＩ／Ｏスループットが低下しないため、分散ストレージのサービスを安定して提供することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、第１の実施形態に係る分散ストレージシステムの構成の一例を示す図である。
【図２】図２は、第１の実施形態に係る分散ストレージシステムの重み記憶部の構成の一例を示す図である。
【図３】図３は、第１の実施形態に係る分散ストレージシステムの制御部の構成の一例を示す図である。
【図４】図４は、第１の実施形態に係るデバイス一覧表の一例を示す図である。
【図５】図５は、第１の実施形態に係るデータ配置一覧表の一例を示す図である。
【図６】図６は、第１の実施形態に係る構成データ表の一例を示す図である。
【図７】図７は、第１の実施形態に係るレプリケーションパラメータの一例を示す図である。
【図８】図８は、第１の実施形態に係るディスクを増設した場合のデバイス一覧表の一例を示す図である。
【図９】図９は、第１の実施形態に係るディスクを増設した場合のデバイス一覧表の変化の一例を示す図である。
【図１０】図１０は、第１の実施形態に係る分散ストレージシステムの処理の一例を示す図である。
【図１１】図１１は、第１の実施形態に係る分散ストレージシステムのハッシュ作成処理の一例を示す図である。
【図１２】図１２は、第２の実施形態に係るディスクを減設する場合のデバイス一覧表の変化の一例を示す図である。
【図１３】図１３は、その他の実施形態に係る分散ストレージシステムの構成の一例を示す図である。
【図１４】図１４は、プログラムが実行されることにより、分散ストレージシステムが実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本願に係る分散ストレージシステム、データ再配置方法およびデータ再配置プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係る分散ストレージシステム、データ再配置方法およびデータ再配置プログラムが限定されるものではない。
【００１６】
［第１の実施形態］
以下の実施形態では、第１の実施形態に係る分散ストレージシステムの構成、分散ストレージシステムにおける各部の処理の流れを順に説明し、最後に第１の実施形態による効果を説明する。
【００１７】
［第１の実施形態の構成］
まず、図１を用いて分散ストレージシステムの構成について説明する。図１は、第１の実施形態に係る分散ストレージシステムの構成の一例を示す図である。図１に示すように、分散ストレージシステム１０は、ネットワーク２０を介してクライアント３０と接続されている。また、分散ストレージシステム１０は、受付部１１、管理部１２および蓄積部１３を有する。受付部１１は、クライアント３０から送信されるデータ等を受け付ける。管理部１２は、システムの管理および制御を行う。蓄積部１３は、複製されたデータを蓄積する。
【００１８】
また、受付部１１は、グループＩＤ変換部１１１を有する。グループＩＤ変換部１１１は、例えば、オブジェクトの名称をハッシュにかけ、グループＩＤに変換する。そして、グループＩＤに従ってデータの蓄積先が決定される。データの蓄積先の決定方法については後述する。
【００１９】
また、管理部１２は、監視部１２１、制御部１２２および重み記憶部１２３を有する。監視部１２１は、蓄積部１３の各蓄積ノードを監視し、レプリケーションの頻度、ディスクのＩ／Ｏ、スループット等の情報を集約する。また、制御部１２２は、クライアント３０から送信されたデータ、または既に蓄積部１３に蓄積されているデータを所定の蓄積ノードに蓄積させるための制御を行う。重み記憶部１２３は、制御部１２２等の動作に必要な情報を記憶する。
【００２０】
また、蓄積部１３は、複数の蓄積ノードを有する。また各蓄積ノードには複数のディスクが備えられている。図１に示すように、蓄積部１３は、蓄積ノード１３１、蓄積ノード１３２、蓄積ノード１３３および蓄積ノード１３４を有する。また、例えば蓄積ノード１３１は、ディスク１３１ａ、ディスク１３１ｂおよびディスク１３１ｃを有する。
【００２１】
（基本的なデータ配置の動作）
ここで、主に管理部１２の制御部１２２および重み記憶部１２３によって行われるデータ配置の基本的な動作について説明する。まず、管理部１２の重み記憶部１２３について図２を用いて説明する。図２は、第１の実施形態に係る分散ストレージシステムの重み記憶部の構成の一例を示す図である。図２に示すように、重み記憶部１２３は、ハッシュ表２１および構成データ２２を記憶している。また、ハッシュ表２１には、デバイス一覧表２２１およびデータ配置一覧表２２２が含まれる。
【００２２】
ハッシュ表２１および構成データ２２は、管理部１２の制御部１２２によって参照または更新される。ここで、図３を用いて、制御部１２２の構成について説明する。図３は、第１の実施形態に係る分散ストレージシステムの制御部の構成の一例を示す図である。図３に示すように、制御部１２２は、重み付け部２０１、蓄積先決定部２０２、複製データ配置部２０３および構成データ更新部２０４を有する。なお、複製データ配置部２０３は複数であってもよい。複製データ配置部２０３が複数の場合は、それぞれの複製データ配置部が、各蓄積ノード、または各ディスクに対応する。
【００２３】
重み記憶部１２３は、各ディスクの最大容量に比例する値を、各ディスクの重みとして記憶し、また、分散ストレージシステム１０にディスクが追加された場合、追加されたディスクの最大容量に比例する値よりも小さい所定の初期値を、追加されたディスクの重みとして記憶する。具体的には、構成データ２２およびデバイス一覧表２２１に重みが記憶される。また、初期値としては例えば０が設定される。なお、第１の実施形態においては、ディスクがデータ記憶部として機能する。
【００２４】
重み付け部２０１は、重み記憶部１２３に記憶されている追加されたディスクの重みを、追加されたディスクの最大容量に比例する値よりも小さい所定の増加値ずつ増加させる。具体的には、重み付け部２０１は、増加値をレプリケーションパラメータに基づいて決定し、デバイス一覧表２２１を更新する。また、ディスクは、１つ以上のディスクを有する蓄積ノード単位で追加されてもよい。
【００２５】
蓄積先決定部２０２は、重み付け部２０１が追加されたディスクの重みを増加させるたびに、追加されたディスクを含む各ディスクの蓄積量の比が、追加されたディスクを含む各ディスクの重みの比と等しくなるように、追加されたディスク以外のディスクが蓄積する複製データのうち、追加されたディスクに移動させる複製データを決定する。具体的には、蓄積先決定部２０２は、データ配置一覧表２２２の更新を行う。
【００２６】
複製データ配置部２０３は、蓄積先決定部２０２によって複製データが決定されるたびに、蓄積先決定部２０２によって決定された複製データを、追加されたディスクに移動させる。そして、複製データ配置部２０３は、蓄積先決定部２０２によって更新されたデータ配置一覧表２２２に従って、追加されたディスクに複製データを移動させる。
【００２７】
例えば、既存のディスクの重みが１００であり、追加されたディスクの重みが０から１０に増加した場合は、既存のディスクと追加されたディスクのデータの蓄積量の比が１００：１０となるようにデータの移動が行われる。また、追加されたディスクの重みが１０から２０に増加した場合は、既存のディスクと追加されたディスクのデータの蓄積量の比が１００：２０となるように重み１０と重み２０の差分のデータの移動が行われる。なお、蓄積先決定部２０２および複製データ配置部２０３の処理は、重み付け部２０１が重みを増加させるたびに、重みが最大容量に比例する値に至るまでループして実行される。以降、各部について詳細に説明する。
【００２８】
図４を用いて、デバイス一覧表２２１について説明する。図４は、第１の実施形態に係るデバイス一覧表の一例を示す図である。図４に示すように、デバイス一覧表２２１には、各蓄積ノードのノード識別子、各ディスクのディスク識別子および各ディスクに設定された重みが記載されている。例えば、図１の蓄積ノード１３１は「Ｈｏｓｔ００１」、蓄積ノード１３２は「Ｈｏｓｔ００２」、蓄積ノード１３３は「Ｈｏｓｔ００３」にそれぞれ対応している。
【００２９】
また、図１のディスク１３１ａは「ｄｉｓｋＡ００１」、ディスク１３１ｂは「ｄｉｓｋＡ００２」、ディスク１３１ｃは「ｄｉｓｋＡ００３」、ディスク１３２ａは「ｄｉｓｋＢ００１」、ディスク１３２ｂは「ｄｉｓｋＢ００２」、ディスク１３２ｃは「ｄｉｓｋＢ００３」、ディスク１３３ａは「ｄｉｓｋＣ００１」、ディスク１３３ｂは「ｄｉｓｋＣ００２」、ディスク１３３ｃは「ｄｉｓｋＣ００３」、にそれぞれ対応している。なお、図１の蓄積ノード１３４は、初めは蓄積部１３には含まれず、後に追加されるものとする。
【００３０】
また、制御部１２２の重み付け部２０１は、各ディスクの最大容量に比例する値である重みを設定する。例えば、ディスク１３１ａのノード識別子は「Ｈｏｓｔ００１」、ディスク識別子は「ｄｉｓｋＡ００１」であり、重みは「１２０」である。また、ディスク１３１ｂのノード識別子は「Ｈｏｓｔ００１」、ディスク識別子は「ｄｉｓｋＡ００２」であり、重みは「８０」である。また、ディスク１３３ａのノード識別子は「Ｈｏｓｔ００３」、ディスク識別子は「ｄｉｓｋＣ００１」であり、重みは「２００」である。
【００３１】
そして、蓄積先決定部２０２は、デバイス一覧表２２１を参照し、データ配置一覧表２２２の作成または更新を行う。図５を用いて、データ配置一覧表２２２について説明する。図５は、第１の実施形態に係るデータ配置一覧表の一例を示す図である。図５に示すように、データ配置一覧表２２２には、グループＩＤ、レプリカ１保存先、レプリカ２保存先、レプリカ３保存先が記載されている。グループＩＤは、蓄積部１３に蓄積されるオブジェクトに対し、受付部１１のグループＩＤ変換部１１１がオブジェクトの名称をハッシュにかけること等により付与するＩＤである。
【００３２】
なお、蓄積部１３に蓄積されるオブジェクトは、例えばクライアント３０から送信されたデータを一定の容量のブロックに分割したデータを複製したものである。図５の例では、３つの複製データが作成されるものとする。ただし、複製データの個数は３個に限定されるものではなく、いくつであってもよい。
【００３３】
そして、蓄積先決定部２０２は、デバイス一覧表２２１の重みに応じて、データ配置一覧表２２２の各レプリカの保存先を決定する。この時、データ配置一覧表２２２における各保存先の出現率および出現回数は、デバイス一覧表２２１における重みに比例する。すなわち、図４のデバイス一覧表２２１の重みの合計は１０８０、ノード識別子が「Ｈｏｓｔ００１」、ディスク識別子が「ｄｉｓｋＡ００１」であるディスクの重みは１２０なので、「Ｈｏｓｔ００１：ｄｉｓｋＡ００１」の出現率は１２０／１０８０であり、出現回数は３回である。
【００３４】
また、ノード識別子が「Ｈｏｓｔ００１」、ディスク識別子が「ｄｉｓｋＡ００２」であるディスクの重みは８０なので、「Ｈｏｓｔ００１：ｄｉｓｋＡ００２」の出現率は８０／１０８０であり、出現回数は２回である。また、ノード識別子が「Ｈｏｓｔ００３」、ディスク識別子が「ｄｉｓｋＣ００１」であるディスクの重みは２００なので、「Ｈｏｓｔ００３：ｄｉｓｋＣ００１」の出現率は２００／１０８０であり、出現回数は５回である。
【００３５】
そして、複製データ配置部２０３は、データのグループＩＤをキーとして、データ配置一覧表２２２に従って指定された保存先に保存することでデータの配置を行う。なお、データの配置は、クライアント３０からデータを受け付けた時に、受付部１１が行うこととしてもよい。この時、受付部１１は、クライアント３０からのリクエストおよびデータを蓄積部１３へ転送する。
【００３６】
なお、上記計算による出現率および出現回数の計算結果は理論値であり、重みの合計が各重みの整数倍になるとは限らず、また、出現率の理論値に基づくランダム性を持った処理により保存先が決定されることも考えられるので、データ配置一覧表２２２における各保存先の出現率および出現回数は、計算結果と一致しない場合も当然考えられる。また、構成データ２２はこの場合、デバイス一覧表２２１と同一の表であり、蓄積ノードの増減等に応じて構成データ更新部２０４によって更新される。
【００３７】
（蓄積ノードが追加された場合のデータ再配置の動作）
ここで、分散ストレージシステム１０に、新たな蓄積ノード１３４が追加された場合の動作について説明する。
【００３８】
具体的には、蓄積ノード１３４が追加されると、構成データ更新部２０４は、構成データ２２を更新する。図６を用いて、構成データ２２について説明する。図６は、第１の実施形態に係る構成データ表の一例を示す図である。図６に示すように、蓄積ノード１３４が追加されることによって、構成データ２２には、蓄積ノード１３４のノード識別子「Ｈｏｓｔ００４」についての行が追加されている。そして、各ディスクには、最大容量に比例する重みが設定されている。
【００３９】
そして、制御部１２２は、蓄積ノードの追加に伴うハッシュ表２１の更新を行う。まず、重み付け部２０１は、デバイス一覧表２２１に記載する蓄積ノード１３４の重みを決定するために、監視部１２１が集約した蓄積ノード１３４に関するレプリケーションパラメータを参照する。図７に示すように、レプリケーションパラメータには、ディスクの性能に応じたディスクの一定時間当たりの最大増設幅、最大減設幅、また、蓄積ノードの通信性能に応じた一定時間当たりの最大増設幅、最大減設幅が記載されている。図７は、第１の実施形態に係るレプリケーションパラメータの一例を示す図である。
【００４０】
なお、レプリケーションパラメータにおける幅とは、重みの幅を示すものであり、後述の再構成処理において、重みの変化による影響が許容範囲内であるか否か等に基づいて決定される値である。なお、レプリケーションパラメータは、例えば重み記憶部１２３に記憶される。
【００４１】
また、監視部１２１は、例えば、監視項目としてディスクの入出力の頻度を監視する。そして、複製データ配置部２０３は、ディスクの入出力の頻度が所定の値以下である場合に、ディスクに複製データを配置する。例えば、図７の監視項目のＤＩＳＫ  Ｉ／Ｏはディスクの入出力の頻度の一例であり、一定時間内にディスクに対して行われたＩ／Ｏの回数を示すものである。なお、複製データ配置部２０３は、重み付け部２０１および蓄積先決定部２０２の動作に連動して複製データの配置を行うため、ディスクの入出力の頻度が所定の値以下でない場合に、重み付け部２０１および蓄積先決定部２０２の動作が実行されないようにしてもよい。
【００４２】
この時、ＤＩＳＫ  Ｉ／Ｏが、所定の値以下である場合は、データ再構成処理を行い、所定の値より大きい場合はデータ再構成処理を行わないようにしてもよい。例えば、所定のＤＩＳＫ  Ｉ／Ｏの値を３００とすると、この場合は監視部１２１によって得られたＤＩＳＫ  Ｉ／Ｏは２００であるため、データ再配置処理が行われる。
【００４３】
重み記憶部１２３は、蓄積ノードに含まれるディスク毎の重みの増加値、すなわち増設幅の閾値であるＹ１と、蓄積ノード毎に設定された重みの増設幅の閾値であるＸ１と、をさらに記憶する。そして、重み付け部２０１は、Ｙ１に蓄積ノードに含まれるディスクの個数Ｄ＿ｎを乗じた値がＸ１より小さい場合は、重み増設幅をＹ１とし、Ｙ１にノードに含まれるディスクの個数Ｄ＿ｎを乗じた値がＸ１以上である場合は、重み増設幅を、Ｘ１をＤ＿ｎで除した値とする。具体的には、重み付け部２０１は、レプリケーションパラメータを参照し、式（１−１）および式（１−２）に従って重み増設幅Ｗ１＿ｎを決定する。
【００４４】
【数１】
0006315608.tif 000002
【００４５】
この場合、Ｄ＿ｎが３、Ｘ１が１００、Ｙ１が１０であるため、Ｗ１＿ｎは１０となる。そして、重み付け部２０１は、デバイス一覧表２２１の蓄積ノード１３４の重みを１０ずつ増加させていく。１回目の増加では、図８に示すように、増設された蓄積ノードに含まれるディスクの重みが１０となっている。図８は、第１の実施形態に係るディスクを増設した場合のデバイス一覧表の一例を示す図である。
【００４６】
そして、蓄積先決定部２０２は、図８のデバイス一覧表２２１に基づいてデータ配置一覧表２２２を作成する。例えば、図８のデバイス一覧表２２１の重みの合計は１１１０、ノード識別子が「Ｈｏｓｔ００１」、ディスク識別子が「ｄｉｓｋＡ００１」であるディスクの重みは１２０なので、「Ｈｏｓｔ００１：ｄｉｓｋＡ００１」の出現率は１２０／１１１０であり、出現回数は約２．９回である。
【００４７】
また、ノード識別子が「Ｈｏｓｔ００１」、ディスク識別子が「ｄｉｓｋＡ００２」であるディスクの重みは８０なので、「Ｈｏｓｔ００１：ｄｉｓｋＡ００２」の出現率は８０／１１１０であり、出現回数は約１．９回である。また、ノード識別子が「Ｈｏｓｔ００３」、ディスク識別子が「ｄｉｓｋＣ００１」であるディスクの重みは２００なので、「Ｈｏｓｔ００３：ｄｉｓｋＣ００１」の出現率は２００／１１１０であり、出現回数は約４．９回である。このように、既存のディスクにおいては、新たなディスクの追加により、図４の場合と比較すると、出現率および出現回数が減少している。
【００４８】
また、新たに追加されたノード識別子が「Ｈｏｓｔ００４」、ディスク識別子が「ｄｉｓｋＤ００１」であるディスクの重みは１０なので、「Ｈｏｓｔ００４：ｄｉｓｋＤ００１」の出現率は１０／１１１０であり、出現回数は約０．２回である。このように、構成データ２２の上では、新しく追加されたディスクの重みは１２０であるが、デバイス一覧表２２１上では１０しか増加していないため、出現率および出現回数は非常に小さい値となる。
【００４９】
そして、複製データ配置部２０３は、新たなデータ配置一覧表２２２に従って、指定された保存先にデータを保存し直すように蓄積部１３を制御することでデータの再配置を行う。この時、蓄積部１３の各蓄積ノードのディスクに記憶されているレプリカの現在の保存先と新たに作成されたデータ配置一覧表２２２に記載されている保存先が異なる場合は、新たな保存先にデータの複製を作成し、もとの保存先のデータを削除する。
【００５０】
さらに、重み付け部２０１は、図９に示すように、増設されたディスクのデバイス一覧表２２１における重みを増加させる。図９は、第１の実施形態に係るディスクを増設した場合のデバイス一覧表の変化の一例を示す図である。図９に示すように、新たに追加された蓄積ノード１３４のディスクの重みは最終的に１２０となり、１２回に分けてデータの再配置が行われることになる。このように、蓄積ノードの追加に伴うデータの再配置は少量ずつ行われる。
【００５１】
なお、図１では、受付部１１、管理部１２および蓄積部１３が１つの装置に含まれる例を示しているが、各部がそれぞれ異なるサーバ等の装置に備えられるようにしてもよい。また、蓄積部１３の各蓄積ノードは、同一のサーバ上に備えられるものとしてもよいし、それぞれが物理的に異なるサーバ上に備えられることとしてもよい。また、図１では蓄積ノードの数は４つであるが、蓄積ノードの数はいくつであってもよい。
【００５２】
［第１の実施形態の処理］
次に、図１０を用いて分散ストレージシステム１０のデータ再配置の処理について説明する。図１０は、第１の実施形態に係る分散ストレージシステムの処理の一例を示す図である。図１０に示すように、まず、新たな蓄積ノードが追加された場合、構成データ更新部２０４は構成データ２２を更新する（ステップＳ１１）。この時、構成データ２２には、新たに追加された蓄積ノードに含まれるディスクの重みの最大値が記載される。
【００５３】
ここで、制御部１２２は、ディスク再構成制御を開始する（ステップＳ１２）。まず、制御部１２２は、レプリケーションパラメータを参照し、レプリケーション可能か否かを判定する（ステップＳ１３）。この時、制御部１２２は、例えばレプリケーションパラメータの監視項目であるＤＩＳＫ  Ｉ／Ｏの値が所定の値以上か否かによってレプリケーション可否を判定する。
【００５４】
ここで、レプリケーション不可と判定された場合（ステップＳ１３、Ｎｏ）は、制御部１２２は、一定時間待機した後（ステップＳ１４）、ステップＳ１３に戻り、再び判定を行う。また、レプリケーション可能と判定された場合（ステップＳ１３、Ｙｅｓ）は、制御部１２２は新ハッシュ表２１の作成を行う（ステップＳ１５）。その後、複製データ配置部２０３はデータの再配置を行う（ステップＳ１６）。そして、構成データ２２と新ハッシュ表２１のデバイス一覧表２２１に記載されている重みが一致している場合（ステップＳ１７、Ｙｅｓ）は、処理を終了する。構成データ２２と新ハッシュ表２１のデバイス一覧表２２１に記載されている重みが一致していない場合（ステップＳ１７、Ｎｏ）は、ステップＳ１３に戻り、再び処理を実行する。
【００５５】
新ハッシュ作成処理について図１１を用いて説明する。図１１は、第１の実施形態に係る分散ストレージシステムのハッシュ作成処理の一例を示す図である。図１１に示すように、制御部１２２は、まず、現在のハッシュ表である旧ハッシュ表２１と構成データ２２を比較し、追加ディスクの有無を確認し、追加ディスクがある場合はリスト化する（ステップＳ１５１）。次に、重み付け部２０１は、レプリケーションパラメータを参照し、リスト化したディスクの重みの増設幅を計算する（ステップＳ１５２）。
【００５６】
そして、重み付け部２０１は、計算した増設幅に従って、デバイス一覧表２２１の重みを決定する。ここで、未確認の蓄積ノードがある場合（ステップＳ１５３、Ｎｏ）は、制御部１２２は、追加ディスクのリスト化および重みの計算を再び実行する。また、全蓄積ノードについて確認済みである場合（ステップＳ１５３、Ｙｅｓ）は、蓄積先決定部２０２は、新ハッシュ表２１を作成して処理を終了する（ステップＳ１５４）。
【００５７】
［第１の実施形態の効果］
重み記憶部１２３は、各ディスクの最大容量に比例する値を、各ディスクの重みとして記憶し、また、分散ストレージシステム１０にディスクが追加された場合、追加されたディスクの最大容量に比例する値よりも小さい所定の初期値を、追加されたディスクの重みとして記憶する。重み付け部２０１は、重み記憶部１２３に記憶されている追加されたディスクの重みを、追加されたディスクの最大容量に比例する値よりも小さい所定の増加値ずつ増加させる。そして、蓄積先決定部２０２は、重み付け部２０１が追加されたディスクの重みを増加させるたびに、追加されたディスクを含む各ディスクの蓄積量の比が、追加されたディスクを含む各ディスクの重みの比と等しくなるように、追加されたディスク以外のディスクが蓄積する複製データのうち、追加されたディスクに移動させる複製データを決定する。そして、複製データ配置部２０３蓄積先決定部２０２によって複製データが決定されるたびに、蓄積先決定部２０２によって決定された複製データを、追加されたディスクに移動させる。
【００５８】
これにより、例えば蓄積ノードの追加が行われた際の再配置において、一度に大量のデータを移動させることなく、少量ずつデータを移動させることができる。そのため、第１の実施形態によれば、蓄積ノードまたはディスクの増加等に伴うデータ再配置により、クライアントに対するデータのＩ／Ｏスループットが低下することなく、分散ストレージのサービスを安定して提供することができる。
【００５９】
また、ディスクは、少なくとも１つ以上のディスクの集合であるノード単位で分散ストレージシステムへ追加される。重み記憶部１２３は、ノードに含まれるディスク毎の重みの増加値の閾値である第１の閾値と、ノード毎に設定された重みの増加値の閾値である第２の閾値と、をさらに記憶する。そして、重み付け部２０１は、第１の閾値にノードに含まれるディスクの個数を乗じた値が第２の閾値より小さい場合は、第１の閾値を増加値とし、第１の閾値にノードに含まれるディスクの個数を乗じた値が第２の閾値以上である場合は、第２の閾値をディスクの個数で除した値を増加値とする。また、監視部１２１は、ディスクの入出力の頻度を監視する。そして、複製データ配置部２０３は、ディスクの入出力の頻度が所定の値以下である場合に、複製データを移動させる。
【００６０】
これにより、レプリケーションパラメータによる増設幅の閾値の設定、および監視項目によるデータ再配置を行うか否かの制御を行うことができるので、データ再配置を行う際のデータの移動量をスループットに影響がない範囲で安定させることができる。
【００６１】
［第２の実施形態］
第１の実施形態においては、蓄積ノードが追加された場合について説明した。本発明は、蓄積ノードの追加、すなわち増設の場合だけでなく、蓄積ノードの減設の場合にも適用することが可能である。そこで、第２の実施形態においては、蓄積ノードが減設される場合について説明する。なお、蓄積ノードの減設は、蓄積ノードを分散ストレージシステム１０から除去することによって行われる。
【００６２】
［第２の実施形態の構成］
第２の実施形態に係る分散ストレージシステムの基本的な構成は第１の実施形態の分散ストレージシステムの構成と同様である。重み記憶部１２３は、各ディスクの最大容量に比例する値を、各ディスクの重みとして記憶する。具体的には、構成データ２２およびデバイス一覧表２２１に重みが記憶される。
【００６３】
重み付け部２０１は、分散ストレージシステム１０からディスクが除去される場合、重み記憶部に記憶されている除去されるディスクの重みを、除去されるディスクの最大容量に比例する値よりも小さい所定の減少値ずつ減少させる。具体的には、重み付け部２０１は、減少値をレプリケーションパラメータに基づいて決定し、デバイス一覧表２２１を更新する。また、ディスクは、１つ以上のディスクを有する蓄積ノード単位で除去されてもよい。
【００６４】
蓄積先決定部２０２は、重み付け部２０１が除去されるディスクの重みを減少させるたびに、除去されるディスクを含む各ディスクの蓄積量の比が、除去されるディスクを含む各ディスクの重みの比と等しくなるように、除去されるディスクが蓄積する複製データのうち、除去されるディスクから移動させる複製データを決定する。具体的には、蓄積先決定部２０２は、データ配置一覧表２２２の更新を行う。
【００６５】
複製データ配置部２０３は、蓄積先決定部によって複製データが決定されるたびに、蓄積先決定部によって決定された複製データを、除去されるディスクから移動させる。具体的には、複製データ配置部２０３は、蓄積先決定部２０２によって更新されたデータ配置一覧表２２２に従って、追加されたディスクに複製データを移動させる。なお、蓄積先決定部２０２および複製データ配置部２０３の処理は、重み付け部２０１が重みを減少させるたびに、重み０に至るまでループして実行される。
【００６６】
重み記憶部１２３は、蓄積ノードに含まれるディスク毎の重みの減少値、すなわち減設幅の閾値であるＹ２と、蓄積ノード毎に設定された重みの減設幅の閾値であるＸ２と、をさらに記憶する。そして、重み付け部２０１は、Ｙ２に蓄積ノードに含まれるディスクの個数Ｄ＿ｎを乗じた値がＸ２より小さい場合は、重み減設幅をＹ２とし、Ｙ２にノードに含まれるディスクの個数Ｄ＿ｎを乗じた値がＸ２以上である場合は、重み減設幅を、Ｘ２をＤ＿ｎで除した値とする。具体的には、第２の実施形態では、レプリケーションパラメータを参照し、式（２−１）および式（２−２）に従って重み減設幅Ｗ２＿ｎを決定する。
【００６７】
【数２】
0006315608.tif 000003
【００６８】
例えば、蓄積ノード１３４が減設される場合、図７のレプリケーションパラメータによると、Ｄ＿ｎが３、Ｘ２が１００、Ｙ２が１０であるため、Ｗ２＿ｎは１０となる。そして、重み付け部２０１は、図１２に示すように、減設されるディスクのデバイス一覧表２２１における重みを減少させる。図１２は、第２の実施形態に係るディスクを減設する場合のデバイス一覧表の変化の一例を示す図である。図１２に示すように、減設される蓄積ノード１３４のディスクの重みは最終的に０となり、１２回に分けてデータの再配置が行われることになる。
【００６９】
［第２の実施形態の効果］
重み記憶部１２３は、各ディスクの最大容量に比例する値を、各ディスクの重みとして記憶する。重み付け部２０１は、分散ストレージシステム１０からディスクが除去される場合、重み記憶部に記憶されている除去されるディスクの重みを、除去されるディスクの最大容量に比例する値よりも小さい所定の減少値ずつ減少させる。蓄積先決定部２０２は、重み付け部２０１が除去されるディスクの重みを減少させるたびに、除去されるディスクを含む各ディスクの蓄積量の比が、除去されるディスクを含む各ディスクの重みの比と等しくなるように、除去されるディスクが蓄積する複製データのうち、除去されるディスクから移動させる複製データを決定する。複製データ配置部２０３は、蓄積先決定部によって複製データが決定されるたびに、蓄積先決定部によって決定された複製データを、除去されるディスクから移動させる。
【００７０】
これにより、例えば蓄積ノードの減設を行う際の再配置において、一度に大量のデータを移動させることなく、少量ずつデータを移動させることができる。そのため、蓄積ノードまたはディスクの減少等に伴うデータ再配置により、クライアントに対するデータのＩ／Ｏスループットが低下することなく、分散ストレージのサービスを安定して提供することができる。
【００７１】
また、ディスクは、少なくとも１つ以上のディスクの集合であるノード単位で分散ストレージシステムから除去され、重み記憶部１２３は、ノードに含まれるディスク毎の重みの減少値の閾値である第１の閾値と、ノード毎に設定された重みの減少値の閾値である第２の閾値と、をさらに記憶し、重み付け部２０１は、第１の閾値にノードに含まれるディスクの個数を乗じた値が第２の閾値より小さい場合は、第１の閾値を減少値とし、第１の閾値にノードに含まれるディスクの個数を乗じた値が第２の閾値以上である場合は、第２の閾値をディスクの個数で除した値を減少値とする。
【００７２】
これにより、レプリケーションパラメータによる減設幅の閾値の設定、および監視項目によるデータ再配置を行うか否かの制御を行うことができるので、第１の実施形態と同様に、データ再配置を行う際のデータの移動量をスループットに影響がない範囲で安定させることができる。
【００７３】
［その他の実施形態］
上記の実施形態では、ハッシュ表２１が管理部１２の重み記憶部１２３に記憶されることとしたが、図１３に示すように、ハッシュ表２１を、受付部１１や蓄積部１３の各蓄積ノードに配布するようにしてもよい。図１３は、その他の実施形態に係る分散ストレージシステムの構成の一例を示す図である。この場合、ハッシュ表２１も分散して保存されることになり、故障等によりハッシュ表２１が参照できなくなることを防止することができる。
【００７４】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７５】
また、本実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７６】
［プログラム］
図１４は、プログラムが実行されることにより、分散ストレージシステムが実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００７７】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００７８】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、分散ストレージシステムの各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、分散ストレージシステムにおける機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００７９】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００８０】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００８１】
１０  分散ストレージシステム
１１  受付部
１２  管理部
１３  蓄積部
２１  ハッシュ表
２２  構成データ
１１１  グループＩＤ変換部
１２１  監視部
１２２  制御部
１２３  重み記憶部
１３１、１３２、１３３、１３４  蓄積ノード
１３１ａ、１３１ｂ、１３１ｃ、１３２ａ、１３２ｂ、１３２ｃ、１３３ａ、１３３ｂ、１３３ｃ、１３４ａ、１３４ｂ、１３４ｃ  ディスク
２０１  重み付け部
２０２  蓄積先決定部
２０３  複製データ配置部
２０４  構成データ更新部
２２１  デバイス一覧表
２２２  データ配置一覧表
【図１】
0006315608.tif 000004
【図２】
0006315608.tif 000005
【図３】
0006315608.tif 000006
【図４】
0006315608.tif 000007
【図５】
0006315608.tif 000008
【図６】
0006315608.tif 000009
【図７】
0006315608.tif 000010
【図８】
0006315608.tif 000011
【図９】
0006315608.tif 000012
【図１０】
0006315608.tif 000013
【図１１】
0006315608.tif 000014
【図１２】
0006315608.tif 000015
【図１３】
0006315608.tif 000016
【図１４】
0006315608.tif 000017