(57)【要約】  分散ストレージシステムにおいて、記憶部の数が増減した際のデータリバランス処理中におけるアクセス性能の低下を防ぐ。  アクセス装置は、ストレージ装置に含まれる記憶部の数の変動に応じて、ストレージ装置に含まれる記憶部に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、追加処理が完了した旨の通知を受信する受信部と、アクセス対象のデータを保持すべき記憶部が変動した場合、追加処理が完了した旨の通知を受けるまで、変動前後にデータを保持すべき記憶部を示す情報に基づいてストレージ装置に含まれる記憶部にアクセスし、追加処理が完了した旨の通知を受けると、変動後にデータを保持すべき記憶部に対してアクセスするアクセス部と、を備えている。
2016088372.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、前記追加処理が完了した旨の通知を受信する受信手段と、
アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスし、前記完了した旨の通知を受けると、変動後に前記データを保持すべき記憶手段に対してアクセスするアクセス手段と、を備える、
ことを特徴とするアクセス装置。
【請求項２】
前記アクセス手段は、読み出し対象のデータを保持すべき記憶手段が削減された場合、前記完了した旨の通知を受けるまで、削減前に前記データを保持すべき記憶手段のうちの削減対象以外の記憶手段から読み出しを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶手段から読み出しを行う、
請求項１に記載のアクセス装置。
【請求項３】
前記アクセス手段は、読み出し対象のデータを保持すべき記憶手段が追加された場合、前記完了した旨の通知を受けるまで、追加前に前記データを保持すべき記憶手段から読み出しを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶手段から読み出しを行う、
請求項１または２に記載のアクセス装置。
【請求項４】
前記アクセス手段は、書き込み対象のデータを保持すべき記憶手段が追加された場合、前記完了した旨の通知を受けるまで、追加前後に前記データを保持すべき記憶手段に書き込みを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶手段に書き込みを行う、
請求項１ないし３のいずれか１項に記載のアクセス装置。
【請求項５】
前記アクセス手段は、書き込み対象のデータを保持すべき記憶手段が削減された場合、前記完了した旨の通知を受けるまで、削減前後に前記データを保持すべき記憶手段であって削減対象以外の記憶手段に書き込みを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶手段に書き込みを行う、
請求項１ないし４のいずれか１項に記載のアクセス装置。
【請求項６】
データを保持すべき記憶手段は、コンシステントハッシュ法に基づいて決定される、
請求項１ないし５のいずれか１項に記載のアクセス装置。
【請求項７】
ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うデータ移動手段と、
前記ストレージ装置に含まれる記憶手段にアクセスするアクセス装置に対して、前記追加処理が完了した旨を通知する通知手段と、を備える、
ことを特徴とするマイグレーション装置。
【請求項８】
マイグレーション装置とアクセス装置を備え、
前記マイグレーション装置は、ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行い、前記追加処理が完了した旨を前記アクセス装置に通知し、
前記アクセス装置は、アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスし、前記完了した旨の通知を受けると、変動後に前記データを保持すべき記憶手段に対してアクセスする、
ことを特徴とする分散ストレージシステム。
【請求項９】
ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、前記追加処理が完了した旨の通知をアクセス装置が受信し、
アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、前記アクセス装置が、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスし、
前記完了した旨の通知を受けると、前記アクセス装置が、変動後に前記データを保持すべき記憶手段に対してアクセスする、
ことを特徴とするアクセス方法。
【請求項１０】
ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、前記追加処理が完了した旨の通知を受信する処理と、
アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスする処理と、
前記完了した旨の通知を受けると、変動後に前記データを保持すべき記憶手段に対してアクセスする処理と、をコンピュータに実行させる、
ことを特徴とするプログラムを格納したコンピュータ読み取り可能記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びコンピュータ読み取り可能記録媒体に関し、特に、記憶部の数が増減し得る分散ストレージシステム、かかる分散ストレージシステムにアクセスするアクセス装置、記憶部の数の増減に伴いデータマイグレーションを行うマイグレーション装置、アクセス装置によるアクセス方法及びコンピュータ読み取り可能記録媒体に関する。
【背景技術】
【０００２】
記憶装置および記憶システムに対するデータアクセスの制御に関して、さまざまな技術が開発されている。例えば、単一または複数の計算機によって構成されるデータストアシステム（例えば、データベースシステム、ファイルシステム、キャッシュシステム等）が知られている。【０００３】
近年では、そのようなシステムとして、主に分散ストレージシステムが用いられている。分散ストレージシステムは、ネットワークを介して接続された複数の汎用的な計算機を含む。また、分散ストレージシステムは、これらの計算機に搭載された記憶部（ないし記憶装置）を用いて、データの格納およびデータの提供を行う。ここで、記憶部とは、例えば、ハードディスク（ＨＤＤ：Hard Disk Drive）、主記憶（例えば、ＤＲＡＭ：Dynamic Random Access Memory）等である。【０００４】
上述のような分散ストレージシステムでは、いずれの計算機にデータを配置し、いずれの計算機によってデータを処理するのかを、ソフトウェアまたは特別なハードウェアによって決定する。データに対応する計算機を決定する方法として、例えば、乱数やハッシュ値を用いる手法が採用されている。【０００５】
クラスタベースの分散ストレージや分散データベース技術は、サーバアーキテクチャを前提として発展して来ている。サーバアーキテクチャによると、自身以外のサーバのリソースにアクセスするには、該当するサーバを経由してアクセスする必要がある。一方、リソース分離型アーキテクチャでは、各リソース（メモリ、ストレージ等）はインターコネクトネットワークを経由して接続されている。すなわち、リソース分離型アーキテクチャによると、各ＣＰＵ（Central Processing Unit）から各リソースを物理的に共有することが可能となり、サーバを経由してアクセスする必要がなくなる。このようなアーキテクチャの変化は、分散ストレージや分散データベースの技術に革新をもたらすものである。【０００６】
分散ストレージシステムでは、システムの構成要素である計算機や記憶デバイスの障害や性能拡張のために、記憶部の数の動的変化を許容する必要がある。例えば、ハッシュ値に基づいて責任記憶部を決定する方法を用いた場合、記憶部の数が変更されると、データの分散配置状態が変更されるため、データのリバランス処理が必要となる。このようなデータリバランス処理中の責任記憶部の決定は、一般に、正常時よりも複雑化する。【０００７】
関連技術として、特許文献１には、コンシステントハッシングによって分散ストレージを構築し、データリバランス処理を最小化する技術が開示されている。【０００８】
また、特許文献２には、データを格納する情報記憶ノードの数が減少したときに、レプリケーション数を迅速に回復する技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１４−１４２９４５号公報
【特許文献２】特開２０１２−２２１４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記特許文献１、２の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。【００１１】
特許文献１に記載された分散ストレージシステムによると、データマイグレーション（リバランス）処理中に、データのアクセスができない、または、著しく性能が劣化するという問題がある。特許文献１に記載された分散ストレージシステムでは、データマイグレーション（リバランス）処理に時間を要するため、データ配置アルゴリズムによって決定される計算機や記憶デバイス上に責任データが存在しない。これにより、データの読み込みができず、また、書き込み処理もマイグレーションが完了するまで実行できないからである。【００１２】
また、信頼性向上のために複数の記憶部にデータを格納する場合、データの読み書きをこれら複数の記憶部に対して行う必要がある。記憶部の数が変更されることにより、データの配置先が変更される。このとき、データのリバランスが完了しているかどうかに応じて、アクセス先の記憶部も変更する必要がある。【００１３】
通常の分散クラスタによる分散ストレージにおいては、変更先の記憶部にアクセスを転送することが可能である。しかしながら、リソース分離型アーキテクチャにおいては、記憶部にかかる機能を設けることが困難である。また、通常の分散クラスタにおいても、アクセスを転送するのに要する通信レイテンシにより、アクセス性能が低下する。【００１４】
また、特許文献２に記載された技術によると、データマイグレーションの状況を示すフラグ（生死情報）が管理ノード上のノード管理テーブルで集中的に管理されているため、データマイグレーションの処理中におけるクライアントからの情報記憶ノードへのアクセスの際、管理ノードにおける処理がボトルネックとなるおそれがある。【００１５】
そこで、分散ストレージシステム（例えば、一般的な分散クラスタまたはリソース分離型アーキテクチャ上で動作するもの）において、記憶部の数が増減した際のデータリバランス処理中におけるアクセス性能の低下を防ぐことが課題となる。本発明の目的は、かかる課題解決に寄与するアクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法、および、プログラムを提供することにある。
【課題を解決するための手段】
【００１６】
本発明の第１の態様によると、ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、前記追加処理が完了した旨の通知を受信する受信手段を備えるアクセス装置が提供される。前記アクセス装置は、アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスし、前記完了した旨の通知を受けると、変動後に前記データを保持すべき記憶手段に対してアクセスするアクセス手段を備える。【００１７】
本発明の第２の態様によると、ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うデータ移動手段を備えるマイグレーション装置が提供される。前記マイグレーション装置は、前記ストレージ装置に含まれる記憶手段にアクセスするアクセス装置に対して、前記追加処理が完了した旨を通知する通知手段を備える。【００１８】
本発明の第３の態様によると、マイグレーション装置とアクセス装置を備える分散ストレージシステムが提供される。前記マイグレーション装置は、ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行い、前記追加処理が完了した旨を前記アクセス装置に通知する。さらに、前記アクセス装置は、アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスし、前記完了した旨の通知を受けると、変動後に前記データを保持すべき記憶手段に対してアクセスする。【００１９】
本発明の第４の態様によると、アクセス装置によるアクセス方法が提供される。前記アクセス方法は、ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、前記追加処理が完了した旨の通知を前記アクセス装置が受信する。また、前記アクセス方法は、アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、前記アクセス装置が、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスする。さらに、前記アクセス方法は、前記完了した旨の通知を受けると、前記アクセス装置が、変動後に前記データを保持すべき記憶手段に対してアクセスする。【００２０】
本発明の第５の態様によると、ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、前記追加処理が完了した旨の通知を受信する処理を、コンピュータに実行させるプログラムが提供される。また、前記プログラムは、アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスする処理を、前記コンピュータに実行させる。さらに、前記プログラムは、前記完了した旨の通知を受けると、変動後に前記データを保持すべき記憶手段に対してアクセスする処理を、前記コンピュータに実行させる。【００２１】
なお、プログラムは、非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することもできる。
【発明の効果】
【００２２】
本発明に係るアクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法、および、コンピュータ読み取り可能記録媒体によると、分散ストレージシステムにおいて、記憶部の数が増減した際のデータリバランス処理中におけるアクセス性能の低下を防ぐことができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係るアクセス装置の構成を例示するブロック図である。
【図２】本発明の一実施形態に係るマイグレーション装置の構成を例示するブロック図である。
【図３】本発明の第１の実施形態に係る分散ストレージシステムの構成を例示する図である。
【図４】本発明の第１の実施形態に係る分散ストレージシステムの詳細な構成を例示するブロック図である。
【図５】本発明の第１の実施形態に係る分散ストレージシステムにおけるデータマイグレーション処理時の動作を例示するシーケンス図である。
【図６】本発明の第１の実施形態に係る分散ストレージシステムにおいて、記憶部が減少するときのデータアクセス先について説明するための図である。
【図７】本発明の第１の実施形態に係る分散ストレージシステムにおいて、記憶部が増加するときデータアクセス先について説明するための図である。
【発明を実施するための形態】
【００２４】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。また、図中に示す矢印は、データ等の流れの一例を示す。しかしながら、データ等の流れは、これに限定されない。
【００２５】
図１は、一実施形態に係るアクセス装置２の構成を例示するブロック図である。図１を参照すると、アクセス装置２は、受信部２５と、アクセス部２６と、を備えている。受信部２５は、ストレージ装置に含まれる記憶部の数の変動に応じて、ストレージ装置に含まれる記憶部に対して、データの追加処理を実行する。受信部２５は、その後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、追加処理が完了した旨の通知を受信する。アクセス部２６は、アクセス対象のデータを保持すべき記憶部が変動した場合、追加処理が完了した旨の通知を受けるまで、変動前後にデータを保持すべき記憶部を示す情報に基づいてストレージ装置に含まれる記憶部にアクセスする。また、アクセス部２６は、追加処理が完了した旨の通知を受けると、変動後にデータを保持すべき記憶部に対してアクセスする。
【００２６】
図２は、一実施形態に係るマイグレーション装置１の構成を例示するブロック図である。図２を参照すると、マイグレーション装置１は、データ移動部１１と、通知部１４と、を備えている。データ移動部１１は、ストレージ装置に含まれる記憶部の数の変動に応じて、ストレージ装置に含まれる記憶部に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行う。通知部１４は、ストレージ装置に含まれる記憶部にアクセスするアクセス装置に対して、追加処理が完了した旨を通知する。
【００２７】
かかるアクセス装置２、および、マイグレーション装置１によると、分散ストレージシステムにおいて、記憶部の数が増減した際のデータリバランス処理中におけるアクセス性能の低下を防ぐことができる。
【００２８】
以下では、図面を参照してさらに詳細に説明する。図４は、一実施形態に係る分散ストレージシステムの構成を例示するブロック図である。図４を参照すると、外部記憶部２００〜２０Ｎの増減に伴い、アクセス装置２はデータリード／ライトアルゴリズムを切り替え、一方、マイグレーション装置１はデータ再配置に必要なデータ追加処理のみをすべて実行する。
【００２９】
また、マイグレーション装置１はデータ追加処理をすべて実行した後に、アルゴリズム切り替え命令をアクセス装置２群へ発行し、切り替え完了後にデータ再配置の削除処理のみを行う。さらに、アクセス装置２群は、外部記憶部２００〜２０Ｎの増減時には新旧のデータ配置情報を用いてデータアクセスを行い、マイグレーション装置の切り替え命令受信後には、新しいデータ配置情報によって通常のデータアクセス方式で動作する。
【００３０】
かかる分散ストレージシステムによると、外部記憶部２００〜２０Ｎが増減した際のデータリバランス処理中のアクセス性能が劣化しない。
【００３１】
その理由は、マイグレーション処理が完了しているかどうかが不明なタイミングにおいて、データリード（ＲＥＡＤ）処理を待ち合わせる必要がないからである。また、前述のマイグレーション装置１とアクセス装置２の動作によると、マイグレーション処理中にデータの不整合状態が発生しない。すなわち、マイグレーション中のデータ更新処理においてデータの複製同士でデータ不整合（バージョン違い）が発生せず、さらに、マイグレーション処理完了後においても、データの複製同士でデータ不整合が発生しない。したがって、リード（ＲＥＡＤ）時に不整合修復処理等が不要となるからである。
【００３２】
さらに、かかる分散ストレージシステムによると、データマイグレーションのために、必要データが存在しない外部記憶部にアクセスして通信をやり直すといった通信レイテンシの発生を防ぐことができ、アクセス性能が向上する。
【００３３】
その理由は、マイグレーション装置１がマイグレーションの推移情報をアクセス装置２に通知することにより、古いデータ配置情報に基づくデータにアクセスしないで済むからである。
【００３４】
＜実施形態１＞
次に、本発明の第１の実施形態に係る分散ストレージシステムについて、図面を参照して詳細に説明する。
【００３５】
［構成］
図３は、本実施形態に係る分散ストレージシステムの概略構成を例示する図である。図３を参照すると、本実施形態の分散ストレージシステムは、ＣＰＵ（Central Processing Unit）１００〜１０Ｍと、外部記憶部２００〜２０Ｎと、これらを結合するインターコネクトネットワーク３００とを備えている。
【００３６】
ＣＰＵ１００〜１０Ｍおよび外部記憶部２００〜２０Ｎは、それぞれ、１または２以上設けられる。リソース分離型アーキテクチャでは、インターコネクトネットワーク３００を介して、ＣＰＵ１００〜１０Ｍと外部記憶部２００〜２０Ｎ（およびそれ以外のリソース）を結合することで、計算機サーバを構築する。
【００３７】
ＣＰＵ１００〜１０Ｍは、サーバを構成する演算処理装置（例えば、ＣＰＵ）、インターコネクトネットワーク３００に接続するためのインタフェース（ＩＦ：Interface）、高速な記憶回路（レジスタ）、ＣＰＵキャッシュ等を備える装置である。もちろん、ＣＰＵ１００〜１０Ｍは、これら以外のメモリ等の記憶装置を有していてもよい。
【００３８】
外部記憶部２００〜２０Ｎは、ＣＰＵ１００〜１０Ｍと結合するためのインタフェース（すなわち、インターコネクトネットワーク３００へのＩＦ）と、記憶装置（フラッシュメモリ、ＤＲＡＭ（Dynamic Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＨＤＤ（Hard Disk Drive）等）と、記憶装置へのアクセス処理を行う機能と、電源供給手段等を備える装置である。
【００３９】
インターコネクトネットワーク３００は、ＣＰＵ１００〜１０Ｍ間、および、外部記憶部２００〜２０Ｎ間を接続し、データおよび制御メッセージ、その他のメッセージ等をやりとりする。インターコネクトネットワーク３００は、例えば、光ケーブルとスイッチ等によって実現することができる。また、インターコネクトネットワーク３００は、PCI-e（Peripheral Component Interconnect Express）のケーブル等でも実現することができる。
【００４０】
また、従前のアーキテクチャに基づく計算機を、本実施形態におけるＣＰＵとして扱ってもよい。このとき、インターコネクトネットワーク３００は、EthernetやＰＣＩ−ｅネットワーク等によって実現される。ExpEtherによると、計算機のインターコネクトネットワークであるPCI-eを拡張することができる。すなわち、ＣＰＵ１０ＸにExpEther機能を備えたＩＦを保持させることで、リソース分離型アーキテクチャに類似したアーキテクチャを実現することができる。このとき、外部記憶部２０Ｘは、ExpEther機能を備えるカード、ＰＣＩ−ｅの任意のデバイス等を備える。PCI-eのデバイスは、何らかの記憶装置を有するものであればよい。例えば、PCI-e Flash、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）カード（を経由して複数のＨＤＤやＳＳＤ（Solid State Drive）を接続する）、ＧＰＧＰＵ（General Purpose computing on Graphics Processing Units）機能を備えるカード（記憶手段を備える）、Intel Xeon PhiのようなＭＩＣ（Many Integrated Core）アーキテクチャに基づく演算ボード等を用いることができる。
【００４１】
また、分離されるリソースを従前のストレージシステムに限定すれば、インターコネクトネットワーク３００はFibre ChannelやＦＣｏＥ（Fibre Channel over Ethernet（登録商標））によって実現される。一方、ＣＰＵ１００〜１０Ｍは、従前の計算機にホストバスアダプタ（またはEthernetカード）を備え、外部記憶部２００〜２０ＮはこれらのネットワークへのＩＦを備えるストレージ装置・システムとして実現される。このようなアーキテクチャにおいては、ＣＰＵ１００〜１０Ｍ間のネットワークは、別途用意されることが多い。例えば、サーバ間をEthernet（ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol））で接続し、サーバ・ストレージ間をFibre Channelで接続する形態が用いられる。
【００４２】
このように、本実施形態を実現するハードウェアアーキテクチャとして、さまざまな変形が可能である。
【００４３】
図４は、ＣＰＵ１００〜１０Ｍのより詳細な構成を例示するブロック図である。以下では、図３に示すコンピュータによって分散ストレージ・データベースシステムを実現した上で、データマイグレーション処理中にデータアクセスを行う方式を中心に説明する。
【００４４】
図４は、計算機および外部記憶部が複数存在する構成を例示する。図４のマイグレーション装置１およびアクセス装置２は、それぞれ、図３のＣＰＵ１００〜１０Ｍ上で動作するソフトウェア、または、インターコネクトネットワーク３００に接続される任意のハードウェアとして動作するものとする。
【００４５】
また、図４の参加ホスト記憶部３および参加デバイス記憶部４は、任意の記憶手段および記憶手段を実現するソフトウェアとして動作し、図３のＣＰＵ１００〜１０Ｍのいずれか１つまたは複数によって実現する。なお、図４の参加ホスト記憶部３および参加デバイス記憶部４も、図３のインターコネクトネットワーク３００、または、その他の任意のネットワークに接続された計算機および記憶手段によって実現してもよい。
【００４６】
図４を参照すると、本実施形態に係る分散ストレージシステムは、マイグレーション装置１、１または２以上のアクセス装置２、参加ホスト記憶部３、参加デバイス記憶部４、インターコネクトネットワーク３００、および、外部記憶部２００〜２０Ｎを備えている。
【００４７】
アクセス装置２は、本実施形態で実現するデータストア（データベース、ＫＶＳ（Key Value Store）、ファイルシステム等）を実現し、データアクセス機能を提供するソフトウェアである。アクセス装置２を実現するＣＰＵ１０Ｘは、インターコネクトネットワーク３００を介して任意の通信プロトコルに従って通信処理を行うハードウェアおよびソフトウェアを有するものとする。
【００４８】
マイグレーション装置１は、分散ストレージシステムを構成する外部記憶部２００〜２０Ｎの数や容量等に変更が生じた場合、データの配置状態を修正するデータ移動を実行するソフトウェアである。マイグレーション装置１を実現するＣＰＵ１０Ｘも、同様に、インターコネクトネットワーク３００を介して任意の通信プロトコルに従って通信処理を行うハードウェアおよびソフトウェアを有するものとする。
【００４９】
本実施形態では、データの配置先決定手法を、マイグレーションの推移に応じて切り替える必要がある。したがって、マイグレーション装置１は、切り替えが行われた旨の通知先として、分散ストレージシステムにアクセスするアクセス装置２を把握する必要がある。参加ホスト記憶部３は、分散ストレージシステムにアクセスするアクセス装置２に関する情報を保持する。マイグレーション装置１は、参加ホスト記憶部３を参照して、分散ストレージシステムにアクセスするアクセス装置２を把握する。
【００５０】
なお、分散ストレージシステムにアクセスするアクセス装置２に関する情報を、必ずしも記憶手段として一元的に管理する必要はない。ただし、図４では、簡単化のため、参加ホスト記憶部３を備えるものとする。このように一元管理する方法の他に、必要時に動的に参加ホストをネットワーク内で探索する方法が考えられる。
【００５１】
参加ホスト記憶部３で保持される情報の具体例として、アクセス装置２を動作させるＣＰＵ１００〜１０ＭのサーバのＩＰアドレスとプロセスポート番号の一覧が考えられる。
さらに、具体的な実施例として、参加ホスト記憶部３をデータベースソフトウェアとして動作させ、参加通知部２１や推移通知部１３はそれぞれＳＱＬ命令等で参加ホスト記憶部３にアクセスすることが考えられる。他にも、参加ホスト記憶部３として、共有ファイルシステム等を用いてもよい。
【００５２】
参加デバイス記憶部４は、ハッシュや乱数によってデータ配置場所を決定する分散ストレージシステムを実現するために必要な情報を保持する記憶手段である。このような分散ストレージシステムでは、分散ストレージシステムを構成する記憶手段（計算機が記憶手段となる場合には計算機）の一覧情報を保持する必要がある。
【００５３】
参加デバイス記憶部４を実現する方法として、例えば、任意の１つ以上の計算機によってデータを保持する方法、各ＣＰＵ１０Ｘでデータを保持し、それらを同期的に更新する方法、ＣＰＵ１００〜１０Ｍ群で分散ストレージシステムを実現し、そこで保持する方法等を用いることができる。
【００５４】
以下、図４の各部の動作の詳細について、説明する。
【００５５】
図４を参照すると、マイグレーション装置１は、データ移動部１１、デバイス選定部１２、および、推移通知部１３を備えている。
【００５６】
データ移動部１１は、デバイス選定部１２によって決定されるデータ配置先情報を用い、データ配置状態の変更を反映するために、外部記憶部２００〜２０Ｎ間での必要なデータ移動を実行する。ここで、データ移動処理は、移動元の外部記憶部２０Ｙからのデータリードと、移動先の外部記憶部２０Ｚへのデータライトと、移動元の外部記憶部２０Ｙに対する元データの削除とを含む。
【００５７】
デバイス選定部１２は、参加デバイス記憶部４が保持する、分散ストレージシステムを構成する記憶部一覧情報から、特定のデータ範囲をいずれの外部記憶部２０Ｙに格納するのかを決定するための情報を計算して保持する。本実施形態では、デバイス選定部１２は、参加デバイス記憶部４の状態が変化した際に、変化前と変化後の状態情報の両方を保持する。
【００５８】
例えば、キーバリューストア（ＫＶＳ：Key Value Store）システムであれば、デバイス選定部１２が保持するこれらの情報を用いて、キーに対して格納先の外部記憶部２０Ｙを特定したり、さらに外部記憶部２０Ｙ内のアクセスすべき物理アドレスを特定したりすることができる。マイグレーション装置１で動作するデバイス選定部１２は、外部記憶部２０Ｘの数の変更等に応じて、それぞれのデータの格納先が変更されるため、その変更状態を算出する。
【００５９】
推移通知部１３は、参加ホスト記憶部３からアクセス装置２にマイグレーション推移を通知する。推移通知部１３は、マイグレーションにおけるデータのライト処理が完了した後に、アクセス装置２に対する通知を行う。推移通知部１３は、データ移動部１１からマイグレーション推移情報を受け取り、参加ホスト記憶部３の情報を参照して、アクセス装置２に通知を行う。
【００６０】
図４を参照すると、アクセス装置２は、参加通知部２１、デバイス選定部２４、アルゴリズム切替部２３、および、リード／ライト実行部２２を備えている。アクセス装置２は、上位アプリケーションプログラムからストレージアクセス要求を受け付ける。
【００６１】
アクセス要求は、ストレージソフトウェアの機能によって異なる。例えば、データベースであれば、アクセス要求は、ＳＱＬで指定されるようなデータ操作命令である。一方、ＫＶＳ（Key Value Store、キーバリューストア）であれば、アクセス要求は、キー（key）に対応するバリュー（value）を取得したり、登録・更新したりするような処理要求である。
【００６２】
参加通知部２１は、アクセス装置２が分散ストレージへのアクセス機能を実現するために、システムの参加・離脱を通知する。具体的には、参加通知部２１は、参加ホスト記憶部３に自身の管理用のＩＰアドレスとポート番号を登録したり、削除したりする。ただし、参加通知部２１が登録する情報は、推移通知部１３がアクセス装置２を特定できる情報であればよい。システムに及ぼす影響が少ないと考えられる場合、削除（離脱）処理を省略してもよい。ただし、使われていない情報を後で削除する等の処理を施すことが好ましい。
【００６３】
アクセス装置２のデバイス選定部２４は、マイグレーション装置１のデバイス選定部１２と同様の機能を有する。特に、アクセス装置２におけるデバイス選定部２４は、上位アプリケーションからのアクセス要求に対して、アクセス先となる外部記憶部２０Ｙを選定し、必要なデータの外部記憶部２０Ｙ上の配置場所（すなわち、アドレス）を算出する。
【００６４】
リード／ライト実行部２２は、デバイス選定部２４によって選定されたアクセス先に対してデータアクセス命令を発行する。分散ストレージシステムでは、リード／ライト実行部２２は、冗長性を確保して信頼性を担保するため、複数の外部記憶部２０Ｙに対して命令を発行する。また、リード／ライト実行部２２は、アルゴリズム切替部２３の命令に従って、リード／ライトを実行するアルゴリズムを変更する。なお、アルゴリズムの詳細については、後述する。
【００６５】
アルゴリズム切替部２３は、推移通知部１３から通知された情報に基づき、リード／ライト実行部２２に対してアルゴリズム変更要求を発行する。
【００６６】
［動作］
次に、本実施形態に係る分散ストレージシステムの動作について、図面を参照して説明する。
【００６７】
｛マイグレーション処理手順について｝
データ移動部１１は、外部記憶部（デバイス）２００〜２０Ｎの数の変更によって発生するデータのリバランス処理を、以下の手順で行う。まず、デバイス変更に伴い、推移通知部１３は、アクセス装置２にマイグレーション開始を通知する。なお、マイグレーション開始の通知は、デバイス増減の反映により暗黙的に行ってもよい。
【００６８】
次に、デバイス選定部１２は、データ配置の変更状態を算出する。さらに、データ移動部１１は、必要なデータ追加処理をすべて実行する。その後、推移通知部１３は、アルゴリズム切替部２３にアルゴリズムの変更を通知し、リード／ライト実行部２２のアルゴリズムを変更する。その後、データ移動部１１は、データ配置の変更により不要になったデータの削除処理をすべて実行する。
【００６９】
図５は、本実施形態に係る分散ストレージシステムにおけるマイグレーション処理の動作を例示するシーケンス図である。
【００７０】
図５を参照すると、まず、外部記憶部２００〜２０Ｎの障害やシステム性能拡張のため、分散ストレージシステムへ外部記憶部２０Ｙが追加ないし削除される。マイグレーション装置１（例えば、ＣＰＵ１０Ｘ）は、外部記憶部２０Ｙの追加ないし削除を、複数のアクセス装置２へ通知する（ステップＳ１）。
【００７１】
分散ストレージシステムに参加する外部記憶部２００〜２０Ｎの構成が変更された後には、アクセス装置２は、構成変更前のデータ配置先決定方法と、構成変更後のデータ配置先決定方法の両方の情報を保持し、リード（ＲＥＡＤ）／ライト（ＷＲＩＴＥ）処理を行う（ステップＳ２）。例えば、コンシステントハッシング法による分散ストレージシステムの場合、アクセス装置２はコンシステントハッシュリングを古い状態と新しい状態の２種類保持する。なお、リード（ＲＥＡＤ）／ライト（ＷＲＩＴＥ）アクセスの具体的なアルゴリズムについては、後述する。
【００７２】
各アクセス装置２が新旧のデータ配置先決定情報を利用する方式に切り替えた後、マイグレーション装置１はマイグレーションに伴うデータ追加処理を開始する（ステップＳ３）。データ配置先の変更により、新しくデータをコピーする領域と、データを削除される領域が現れるが、ここでは、マイグレーション装置１は新しいコピー処理（追加処理）のみを実行する。
【００７３】
マイグレーション装置１は、データ追加処理の完了後、データ配置先決定情報の切り替え要求をアクセス装置２群に発行する（ステップＳ４）。
【００７４】
アクセス装置２は、切り替え要求を受けて切り替え処理を完了すると、切り替え完了通知をマイグレーション装置１に送出する（ステップＳ５）。
【００７５】
マイグレーション装置１は、切り替え処理の完了通知を受け取ると、マイグレーションに伴うデータの削除処理を実行する（ステップＳ６）。
【００７６】
アクセス装置２群は、切り替え完了後、新データ配置先決定情報のみを用いて通常のリード・ライトアクセス処理を実行する（ステップＳ７）。
【００７７】
｛データアクセスアルゴリズム｝
次に、リード／ライト実行部２２のアクセスアルゴリズムについて説明する。ここでは、キーバリューストアシステムをコンシステントハッシュリング法によって実現する場合を例として、外部記憶部２０Ｘの決定方法を説明する。ただし、本発明はキーバリューストアシステムや、コンシステントハッシュ法に限定されるものではない。
【００７８】
以下では、外部記憶部２０Ｙの増減後、データ移動部１１がデータ追加処理を完了する前の期間を「切り替え通知受信前」と呼ぶ。一方、データ移動部１１がデータ追加処理を完了した後の期間を「切り替え通知受信後」と呼ぶ。本実施形態では、この両期間の間で、異なるデータのアクセスアルゴリズムが用いられる。
【００７９】
「リード処理」
まず、リード処理のアルゴリズムについて説明する。図６は、コンシステントハッシュ法におけるコンシステントハッシュリングのイメージ図である。コンシステントハッシュ法では、キー（key）のハッシュ値を用いて配置先の外部記憶部２０Ｙを決定する。ハッシュ値の値を円周に写像すると、キーのハッシュ値は円周のいずれかに配置される。また、外部記憶部２００〜２０Ｎも同様に円周に写像することができる。
【００８０】
図６では、一例として、外部記憶部２００〜２０ＮをノードＤ０ないしＤ７として円周上に写像している。なお、実際のシステムでは、仮想ノードという仕組みを用いて１つの外部記憶部を複数のノードに写像することもできる。ただし、ここでは、説明の簡単化のため、外部記憶部２００〜２０Ｎと、ノードＤ０ないしＤ７とは１：１に対応するものとする。
【００８１】
このとき、キーに対応する外部記憶部２０Ｙを、次のように選択することができる。図６に示すように、キーのハッシュ値がノードＤ０とノードＤ７の間の場合、リード／ライト実行部２２はノードＤ０に相当する外部記憶部２００を記憶手段として選択する。また、耐信頼性のために合計３つの複製を保持するものとすると、リード／ライト実行部２２は次のノードＤ１、Ｄ２に相当する外部記憶部２０１、２０２を複製先として選択する。本実施形態の説明では、リード／ライト実行部２２において外部記憶部を選択するためのアルゴリズムとして、かかる方法を用いた場合について説明する。ただし、本発明における複製先の選択アルゴリズムはこれに限定されない。
【００８２】
このように、リード／ライト実行部２２は、配置先の外部記憶部２０Ｙに対して、リードまたはライト命令を発行することで、データへのアクセスを行う。リード／ライト実行部２２は、複数の外部記憶部２０Ｙにアクセスし、規定数以上のデータを読み出してデータに不整合を発見しなかった場合に、クライアントに応答を返すようにしてもよい。例えば、多数決法では、リード／ライト実行部２２は、３つの複製に対して２つのデータが読み込めた段階で処理が成功したものと見なす。
【００８３】
ただし、システムが要求する信頼性に応じて、リード／ライト実行部２２は、３つのデータが読み出されてから応答を返したり、１つのデータのみを読み出した時点で応答を返したりしてもよい。リード／ライト実行部２２は、ライト処理に関しても、信頼性を確保するために、リード処理と同様の処理を行う。ここで、リード／ライト実行部２２がアクセス（リードないしライト）を成功と見なすために必要とされるアクセス数を「最小アクセス数」と呼ぶ。
【００８４】
ここで、図６に示すように、ノードＤ１、Ｄ２に相当する外部記憶部２０１、２０２が障害で離脱する場合を考える。このとき、障害後のデータ配置先記憶部はノードＤ０、Ｄ３、Ｄ４に相当する外部記憶部２００、２０３、２０４となり、２つの外部記憶部が変更される。したがって、データの再配置のためのコピーが必要となる。具体的には、マイグレーション装置１はノードＤ０に相当する外部記憶部２００のデータをノードＤ３、Ｄ４に相当する外部記憶部２０３、２０４に複製する必要がある。
【００８５】
本実施形態のリード処理アルゴリズムでは、マイグレーション装置１からの切り替え通知受信前では、リード／ライト実行部２２は記憶部削減前のデータ配置情報に基づいてリード処理を実行する。その際、リード／ライト実行部２２は削減された外部記憶部２０Ｙにはアクセスを行わない。すなわち、リード／ライト実行部２２は、アクセス先からノードＤ１、Ｄ２に相当する外部記憶部２０１、２０２を除外する。
【００８６】
ここで、リード処理において最小アクセス数以上の記憶部からデータを読み出す必要がある。リード／ライト実行部２２は、この最小アクセス数から削減される記憶部（ただし、データの格納先の記憶部に限る）の数だけ減らして処理を行う。
【００８７】
図６の例では、ノードＤ０、Ｄ１、Ｄ２の配置状態でノードＤ１、Ｄ２が削除されたため、リード／ライト実行部２２はノードＤ０に相当する外部記憶部２００のデータが読み出された時点で応答を返す。
【００８８】
なお、システムから２つの外部記憶部２０Ｙが離脱した場合においても、複製を保持する３つの外部記憶部２０Ｙのうちの１つの外部記憶部のみが削除されるときには、リード／ライト実行部２２は最小アクセス数から１だけを減らすものとする。リード／ライト実行部２２が実際にアクセスする外部記憶部の数の最小値は１となる。なお、３つの複製を保持するシステムにおいて、３つの外部記憶部に同時に障害が発生した場合、データロストを回避することはできない。
【００８９】
切り替え通知受信後においては、リード／ライト実行部２２は外部記憶部削減後の状態に基づいてリード（ＲＥＡＤ）命令を発行する。すなわち、リード／ライト実行部２２は、ノードＤ０、Ｄ３、Ｄ４に相当する外部記憶部２００、２０３、２０４に対してアクセスする。ここで、リード／ライト実行部２２が用いる最小アクセス数は、システムのデフォルト値（図６の場合には３）のままである。
【００９０】
一方、外部記憶部２０Ｙが追加されるケースでは、切り替え通知受信前において、リード／ライト実行部２２は古いデータ配置状態（追加前）に基づいてアクセス先を決定する。また、切り替え通知受信後、リード／ライト実行部２２は新しいデータ配置状態（追加後）に基づいてアクセス先を決定する。
【００９１】
「ライト処理」
次に、ライトアルゴリズムについて述べる。図７は、外部記憶部２０Ｙを１つ追加する（ここでは、ノードＤ１に相当する外部記憶部２０１を追加するものとする）場合のイメージ図である。ここでも、複製数を３とする。外部記憶部が追加されることによって、あるキーの格納先の状態がノードＤ０、Ｄ２、Ｄ３からノードＤ０、Ｄ１、Ｄ２へ変更される。
【００９２】
切り替え通知受信前では、リード／ライト実行部２２は、データのライトを変更前のデータ配置状態および変更後のデータ配置状態の両方について行う。すなわち、リード／ライト実行部２２は、ノードＤ０〜Ｄ３の４つに相当する外部記憶部２００〜２０３に対してデータのライトを行う。したがって、リード／ライト実行部２２は、外部記憶部の追加数分だけ一時的に複製数を増加させるように動作する。一方、切り替え通知受信後には、リード／ライト実行部２２は、追加後の状態にのみ書き込みを行う。すなわち、リード／ライト実行部２２は、ノードＤ０〜Ｄ２に相当する外部記憶部２００〜２０２にライト処理を施す。
【００９３】
ここで、リード／ライト実行部２２が変更前のデータ配置状態でしか書き込みが行われない外部記憶部（すなわち、ノードＤ３に相当する外部記憶部２０３）に対してもライト（書き込み）を行う理由は、リード（ＲＥＡＤ）アルゴリズム、および、データマイグレーションアルゴリズムとの間で不整合を起こさないようにするためである。
【００９４】
なお、多数決法（Quorum法）において、リード（ＲＥＡＤ）数を複製数より少なく規定している場合には、リード／ライト実行部２２はノードＤ３に相当する外部記憶部２０３への書き込みを省略してもよい。ただし、ノードＤ３に相当する外部記憶部２０３への書き込みを省略した場合には、マイグレーション処理において古いデータを書かないようにするようバージョン管理を行う必要がある。
【００９５】
また、切り替え通知受信前において、リード／ライト実行部２２が新しく格納先となるノードＤ１に相当する外部記憶部２０１に対しても書き込みを行う理由は、マイグレーション装置１との整合性のためである。これにより、マイグレーション装置１が該当キー（key）について処理を完了しているかどうかに関わらず処理を行うことができる。ここで、マイグレーション装置１の履歴を確認するには計算機に負荷がかかるため、ライト処理を実行した方がより高速であると考えられる。
【００９６】
なお、図６のように、外部記憶部の数が削減されるケースにおいても、リード／ライト実行部２２は、外部記憶部の数が増加する場合と同様の処理を行う。すなわち、切り替え通知受信前には、リード／ライト実行部２２は削減前後の両方の外部記憶部２０Ｙに対して書き込みを行う。一方、切り替え通知受信後には、リード／ライト実行部２２は削減後の状態の外部記憶部２０Ｙにのみ書き込みを行う。
【００９７】
図６に例示するように、ノードＤ１、Ｄ２に相当する外部記憶部２０１、２０２が障害により離脱する場合、削減前にデータを記憶する外部記憶部２０ＹはノードＤ０〜Ｄ２に相当する外部記憶部２００〜２０２となる。一方、削減後にデータを記憶する外部記憶部はノードＤ０、Ｄ３、Ｄ４に相当する外部記憶部２００、２０３、２０４となる。
【００９８】
この場合、切り替え通知受信前には、リード／ライト実行部２２は削減前後の両方の外部記憶部２０Ｙに対して書き込みを行う。すなわち、リード／ライト実行部２２は削減前後の両方の外部記憶部２０Ｙに関する情報に基づいて、削減前後のノードＤ０〜Ｄ４に相当する外部記憶部２００〜２０４に対して書き込みを行う。ただし、ノードＤ１、Ｄ２に相当する外部記憶部２０１、２０２は削減されてなくなっているため、書き込み先から除外される。結果として、リード／ライト実行部２２はノードＤ０、Ｄ３、Ｄ４に相当する外部記憶部２００、２０３、２０４に対する書き込みを行う。
【００９９】
一方、切り替え通知受信後には、リード／ライト実行部２２は、削減後の状態、すなわち、ノードＤ０、Ｄ３、Ｄ４に相当する外部記憶部２００、２０３、２０４のみに対して書き込みを行う。
【０１００】
結局、図６に示した例では、外部記憶部の削減前後において、書き込み先はいずれもノードＤ０、Ｄ３、Ｄ４に相当する外部記憶部２００、２０３、２０４となり、変化しない。
【０１０１】
なお、図示しないものの、削減前のアクセス先の外部記憶部がノードＤ７、Ｄ１、Ｄ２に相当する外部記憶部２０７、２０１、２０２であり、ノードＤ１、Ｄ２に相当する外部記憶部２０１、２０２が削減され、削減後のアクセス先の外部記憶部がノードＤ０、Ｄ３、Ｄ４に相当する外部記憶部２００、２０３、２０４となる場合、切り替え通知受信前には、リード／ライト実行部２２は削減前後の両方のノードＤ７、Ｄ０、Ｄ３、Ｄ４に相当する外部記憶部２０７、２００、２０３、２０４に対して書き込みを行う。一方、切り替え通知受信後には、リード／ライト実行部２２はノードＤ０、Ｄ３、Ｄ４に相当する外部記憶部２００、２０３、２０４のみに対して書き込みを行う。
【０１０２】
本発明の活用例として、計算機外部の記憶部を利用するデータベースシステム、キーバリューストアシステム、また、複数計算機で共通の記憶部を共有するシェアード型分散データストアシステムがあげられる。また、リソース分離型アーキテクチャで実現されるサーバ上で、ストレージシステムを動作させる際にも、本発明を利用可能である。ただし、本発明の適用先はこれらに限定されない。
【０１０３】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の態様に係るアクセス装置のとおりである。
［形態２］
前記アクセス装置において、前記アクセス部は、読み出し対象のデータを保持すべき記憶部が削減された場合、前記完了した旨の通知を受けるまで、削減前に前記データを保持すべき記憶部のうちの削減対象以外の記憶部から読み出しを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶部から読み出しを行ってもよい。
［形態３］
前記アクセス装置において、前記アクセス部は、読み出し対象のデータを保持すべき記憶部が追加された場合、前記完了した旨の通知を受けるまで、追加前に前記データを保持すべき記憶部から読み出しを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶部から読み出しを行ってもよい。
［形態４］
前記アクセス装置において、前記アクセス部は、書き込み対象のデータを保持すべき記憶部が追加された場合、前記完了した旨の通知を受けるまで、追加前後に前記データを保持すべき記憶部に書き込みを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶部に書き込みを行ってもよい。
［形態５］
前記アクセス装置において、前記アクセス部は、書き込み対象のデータを保持すべき記憶部が削減された場合、前記完了した旨の通知を受けるまで、削減前後に前記データを保持すべき記憶部であって削減対象以外の記憶部に書き込みを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶部に書き込みを行ってもよい。
［形態６］
前記アクセス装置において、データを保持すべき記憶部は、コンシステントハッシュ法に基づいて決定されるようにしてもよい。
［形態７］
上記第２の態様に係るマイグレーション装置のとおりである。
［形態８］
上記第３の態様に係る分散ストレージシステムのとおりである。
［形態９］
前記分散ストレージシステムにおいて、前記アクセス装置は、読み出し対象のデータを保持すべき記憶部が削減された場合、前記完了した旨の通知を受けるまで、削減前に前記データを保持すべき記憶部のうちの削減対象以外の記憶部から読み出しを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶部から読み出しを行ってもよい。
［形態１０］
前記分散ストレージシステムにおいて、前記アクセス装置は、読み出し対象のデータを保持すべき記憶部が追加された場合、前記完了した旨の通知を受けるまで、追加前に前記データを保持すべき記憶部から読み出しを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶部から読み出しを行ってもよい。
［形態１１］
前記分散ストレージシステムにおいて、前記アクセス装置は、書き込み対象のデータを保持すべき記憶部が追加された場合、前記完了した旨の通知を受けるまで、追加前後に前記データを保持すべき記憶部に書き込みを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶部に書き込みを行ってもよい。
［形態１２］
前記分散ストレージシステムにおいて、前記アクセス装置は、書き込み対象のデータを保持すべき記憶部が削減された場合、前記完了した旨の通知を受けるまで、削減前後に前記データを保持すべき記憶部であって削減対象以外の記憶部に書き込みを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶部に書き込みを行ってもよい。
［形態１３］
前記分散ストレージシステムにおいて、データを保持すべき記憶部は、コンシステントハッシュ法に基づいて決定されるようにしてもよい。
［形態１４］
上記第４の態様に係るアクセス方法のとおりである。
［形態１５］
前記アクセス方法において、前記アクセス装置は、読み出し対象のデータを保持すべき記憶部が削減された場合、前記完了した旨の通知を受けるまで、削減前に前記データを保持すべき記憶部のうちの削減対象以外の記憶部から読み出しを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶部から読み出しを行ってもよい。
［形態１６］
前記アクセス方法において、前記アクセス装置は、読み出し対象のデータを保持すべき記憶部が追加された場合、前記完了した旨の通知を受けるまで、追加前に前記データを保持すべき記憶部から読み出しを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶部から読み出しを行ってもよい。
［形態１７］
前記アクセス方法において、前記アクセス装置は、書き込み対象のデータを保持すべき記憶部が追加された場合、前記完了した旨の通知を受けるまで、追加前後に前記データを保持すべき記憶部に書き込みを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶部に書き込みを行ってもよい。
［形態１８］
前記アクセス方法において、前記アクセス装置は、書き込み対象のデータを保持すべき記憶部が削減された場合、前記完了した旨の通知を受けるまで、削減前後に前記データを保持すべき記憶部であって削減対象以外の記憶部に書き込みを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶部に書き込みを行ってもよい。
［形態１９］
前記アクセス方法において、データを保持すべき記憶部は、コンシステントハッシュ法に基づいて決定されるようにしてもよい。
［形態２０］
マイグレーション装置が、ストレージ装置に含まれる記憶部の数の変動に応じて、前記ストレージ装置に含まれる記憶部に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うステップと、前記ストレージ装置に含まれる記憶部にアクセスするアクセス装置に対して、前記追加処理が完了した旨を通知するステップと、を含むマイグレーション方法が提供される。
［形態２１］
形態１４ないし１９のいずれか一に記載のアクセス方法、または、形態２０に記載のマイグレーション方法の各ステップをコンピュータに実行させるプログラムが提供される。
【０１０４】
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【０１０５】
この出願は、２０１４年１２月５日に出願された日本出願特願２０１４−２４６５０６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１０６】
１    マイグレーション装置
２    アクセス装置
３    参加ホスト記憶部
４    参加デバイス記憶部
１１    データ移動部
１２    デバイス選定部
１３    推移通知部
１４    通知部
２１    参加通知部
２２    リード／ライト実行部
２３    アルゴリズム切替部
２４    デバイス選定部
２５    受信部
２６    アクセス部
１００〜１０Ｍ    ＣＰＵ
２００〜２０Ｎ    外部記憶部
３００    インターコネクトネットワーク
Ｄ０〜Ｄ７    ノード
【図１】
2016088372.tif 000003
【図２】
2016088372.tif 000004
【図３】
2016088372.tif 000005
【図４】
2016088372.tif 000006
【図５】
2016088372.tif 000007
【図６】
2016088372.tif 000008
【図７】
2016088372.tif 000009
【手続補正書】
【提出日】平成29年6月5日(2017.6.5)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びコンピュータ読み取り可能記録媒体に関し、特に、記憶部の数が増減し得る分散ストレージシステム、かかる分散ストレージシステムにアクセスするアクセス装置、記憶部の数の増減に伴いデータマイグレーションを行うマイグレーション装置、アクセス装置によるアクセス方法及びプログラムに関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
本発明に係るアクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法、および、プログラムによると、分散ストレージシステムにおいて、記憶部の数が増減した際のデータリバランス処理中におけるアクセス性能の低下を防ぐことができる。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、前記追加処理が完了した旨の通知を受信する受信手段と、
アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスし、前記完了した旨の通知を受けると、変動後に前記データを保持すべき記憶手段に対してアクセスするアクセス手段と、を備える、
ことを特徴とするアクセス装置。
【請求項２】
前記アクセス手段は、読み出し対象のデータを保持すべき記憶手段が削減された場合、前記完了した旨の通知を受けるまで、削減前に前記データを保持すべき記憶手段のうちの削減対象以外の記憶手段から読み出しを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶手段から読み出しを行う、
請求項１に記載のアクセス装置。
【請求項３】
前記アクセス手段は、読み出し対象のデータを保持すべき記憶手段が追加された場合、前記完了した旨の通知を受けるまで、追加前に前記データを保持すべき記憶手段から読み出しを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶手段から読み出しを行う、
請求項１または２に記載のアクセス装置。
【請求項４】
前記アクセス手段は、書き込み対象のデータを保持すべき記憶手段が追加された場合、前記完了した旨の通知を受けるまで、追加前後に前記データを保持すべき記憶手段に書き込みを行い、前記完了した旨の通知を受けると、追加後に前記データを保持すべき記憶手段に書き込みを行う、
請求項１ないし３のいずれか１項に記載のアクセス装置。
【請求項５】
前記アクセス手段は、書き込み対象のデータを保持すべき記憶手段が削減された場合、前記完了した旨の通知を受けるまで、削減前後に前記データを保持すべき記憶手段であって削減対象以外の記憶手段に書き込みを行い、前記完了した旨の通知を受けると、削減後に前記データを保持すべき記憶手段に書き込みを行う、
請求項１ないし４のいずれか１項に記載のアクセス装置。
【請求項６】
データを保持すべき記憶手段は、コンシステントハッシュ法に基づいて決定される、
請求項１ないし５のいずれか１項に記載のアクセス装置。
【請求項７】
ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うデータ移動手段と、
前記ストレージ装置に含まれる記憶手段にアクセスするアクセス装置に対して、前記追加処理が完了した旨を通知する通知手段と、を備える、
ことを特徴とするマイグレーション装置。
【請求項８】
マイグレーション装置とアクセス装置を備え、
前記マイグレーション装置は、ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行い、前記追加処理が完了した旨を前記アクセス装置に通知し、
前記アクセス装置は、アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスし、前記完了した旨の通知を受けると、変動後に前記データを保持すべき記憶手段に対してアクセスする、
ことを特徴とする分散ストレージシステム。
【請求項９】
ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、前記追加処理が完了した旨の通知をアクセス装置が受信し、
アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、前記アクセス装置が、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスし、
前記完了した旨の通知を受けると、前記アクセス装置が、変動後に前記データを保持すべき記憶手段に対してアクセスする、
ことを特徴とするアクセス方法。
【請求項１０】
ストレージ装置に含まれる記憶手段の数の変動に応じて、前記ストレージ装置に含まれる記憶手段に対して、データの追加処理を実行した後、データの削除処理を実行することでデータのリバランスを行うマイグレーション装置から、前記追加処理が完了した旨の通知を受信する処理と、
アクセス対象のデータを保持すべき記憶手段が変動した場合、前記完了した旨の通知を受けるまで、変動前後に前記データを保持すべき記憶手段を示す情報に基づいて前記ストレージ装置に含まれる記憶手段にアクセスする処理と、
前記完了した旨の通知を受けると、変動後に前記データを保持すべき記憶手段に対してアクセスする処理と、をコンピュータに実行させる、
ことを特徴とするプログラム。
【国際調査報告】
2016088372.tif 000010
2016088372.tif 000011
2016088372.tif 000012
2016088372.tif 000013