【国等の委託研究の成果に係る記載事項】(出願人による申告)平成24年度独立行政法人新エネルギー・産業技術総合開発機構「T融合による新社会システム開発・実証プロジェクト/(データ処理基盤分野)リアルタイム大規模データ解析処理基盤の研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願
(58)【調査した分野】(Int.Cl.,DB名)
I/O性能の異なる複数のストレージノードを含む分散データストレージシステムを構成する際、前記複数のI/O性能の異なるストレージノードから少なくとも1つの基準ストレージノードを設定し、前記基準ストレージノードのI/O性能と論理容量とを参照して、前記基準ストレージノード以外のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割すると共に、それら第1及び第2のストレージ領域の論理容量を前記基準ストレージノード以外のストレージノードのI/O性能に合わせるように設定する設定手段と、
前記設定手段により設定した情報に基づいて、前記分散データストレージシステムの構成変更を反映したシステム構成情報を決定する決定手段と、
前記決定手段により決定したシステム構成情報を前記複数のI/O性能の異なるストレージノードに送信する送信手段とを備えるストレージノード管理装置。
前記設定手段は、前記基準ストレージノード以外のストレージノードのI/O性能が前記基準ストレージノードのI/O性能のN倍である場合、前記基準ストレージノード以外のストレージノードの第1のストレージ論理容量を前記基準ストレージノードの論理容量のN倍に設定することを特徴とする請求項1に記載のストレージノード管理装置。
前記設定手段は、前記基準ストレージノード以外のストレージノードの論理容量が、前記基準ストレージノードの論理容量のN倍以上である場合、N倍を超える残りの容量を、前記基準ストレージノード以外のストレージノードの第2のストレージ領域に設定することを特徴とする請求項1または2に記載のストレージノード管理装置。
前記設定手段は、前記基準ストレージノードに第1及び第2のストレージ領域が設定される場合、前記基準ストレージノードの第1のストレージ領域に設定した論理容量のN倍の容量を、前記基準ストレージノード以外のストレージノードの第1のストレージ領域の論理容量に設定することを特徴とする請求項1乃至3のいずれか1つに記載のストレージノード管理装置。
I/O性能の異なる複数のストレージノードによって、分散データストレージシステムを構成する際、前記複数のI/O性能の異なるストレージノードから少なくとも1つの基準ストレージノードを設定し、前記基準ストレージノードのI/O性能と論理容量とを参照して、前記基準ストレージノード以外のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割すると共に、それら第1及び第2のストレージ領域の論理容量を前記基準ストレージノード以外のストレージノードのI/O性能に合わせるように設定するストレージノード論理容量設定方法。
前記基準ストレージノード以外のストレージノードのI/O性能が前記基準ストレージノードのI/O性能のN倍である場合、前記基準ストレージノード以外のストレージノードの第1のストレージ論理容量を前記基準ストレージノードの論理容量のN倍に設定することを特徴とする請求項5に記載のストレージノード論理容量設定方法。
I/O性能の異なる複数のストレージノードを含む分散データストレージシステムを構成する際、前記複数のI/O性能の異なるストレージノードから少なくとも1つの基準ストレージノードを設定する処理と、前記基準ストレージノードのI/O性能と論理容量とを参照して、前記基準ストレージノード以外のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割すると共に、それら第1及び第2のストレージ領域の論理容量を前記基準ストレージノード以外のストレージノードのI/O性能に合わせるように設定する処理とをコンピュータに実行させるプログラム。
I/O性能の異なる複数のストレージノードを含む分散データストレージシステムを構成する際、前記複数のI/O性能の異なるストレージノードから少なくとも1つの基準ストレージノードを設定する処理と、前記基準ストレージノードのI/O性能と論理容量とを参照して、前記基準ストレージノード以外のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割すると共に、それら第1及び第2のストレージ領域の論理容量を前記基準ストレージノード以外のストレージノードのI/O性能に合わせるように設定する処理とをコンピュータに実行させるプログラムが記録された記録媒体。
【背景技術】
【0002】
近年、ネットワークの高速化やインターネットの普及により大規模なデータ処理への需要が増加している。これに伴い、データ処理に用いるストレージノードが格納可能な容量(以下、「ストレージ容量」と称する)の増大も求められている。
【0003】
しかしながら、単一のサーバを用いてストレージノードを構成する場合、次のような問題点がある。第1にストレージノードの拡張性に限界があることである。第2にそのサーバが稼働する間にストレージ容量の拡充及びI/O(input/output:入出力)性能の拡充が困難であることである。そして、第3にストレージノードが単一障害点となるという問題である。これらの問題を解決するために分散データシステムという技術が提案されている。
【0004】
一般的に分散データシステムは、複数のサーバ装置の外部記憶装置を、ネットワークを介して接続された分散データストレージノードとして利用する。その分散データストレージノードは、ストレージデバイスが組み込まれた複数ノード群を連携させて動作する。従って、分散データストレージノードは、あたかも1つのノードとして振る舞うことが可能であるコンピュータシステムである。
【0005】
このような分散データストレージシステムは、システムを構成するノード(即ち、サーバ装置)を追加することに伴い、データの格納容量の拡充、データのアクセス性能の増強といったスケールアウト拡張性を保有することが特徴である。
【0006】
また、分散データストレージシステムは、書き込み要求のあったデータに関して、単一のノードではなく、複数のノードにデータの複製をコピーして保存している。このため、あるノードが障害によりアクセス不能となりストレージノードとして機能しなくなってしまった場合であっても、分散データストレージシステムは、次のような処理が可能である。即ち、障害が発生したノードが担当していたデータにアクセスする際の応答処理において、障害発生ノードが保持していたデータの複製を保持している他のノードがその障害発生ノードにおけるサービスを引き継ぐ。これによって、分散データストレージシステムは、システムの可用性を維持することができる。
【0007】
さらに、分散データストレージシステムはあるノードに格納されていたデータを、ノード故障により再び読み出すことが不可能となってしまっても、他のノードに格納された複製データを使用することができる。このため、データの消失が発生せず、同時に、データ保持の信頼性を維持することができる。
【0008】
従って、分散データストレージシステムは、そのシステム規模を自由に拡張できる点、さらに、システムを構成するノード処理性能の向上、ストレージデバイスの大容量化、及び低価格化等々のトレンドを受けて、様々なシステムで導入が進んでいる。
【0009】
但し、分散データストレージシステムは、提供するサービスの可用性やデータ保持の信頼性を維持するために、IT(Information Technology)システムにおけるサービス規模に応じて、必要とするハードウェアノードの台数が、ある一定規模必要である。
【0010】
実際にデータを物理的に格納するストレージデバイスとして、主に、HDD(ハードディスクドライブ:Hard Disk Drive)が採用されている。HDDは、長年大容量化の一途をたどっている。しかしながら、HDDはI/O性能の伸びが停滞しており、容量当たりのI/O性能も、年々減少している。
【0011】
一方、フラッシュメモリを記憶媒体とするSSD(ソリッドステートドライブ:Solid State Drive)は、HDDと同様に、年々大容量化が進んでいる。SSDは、HDDを大幅に超えるランダムアクセス性能を備えているため、近年需要が拡大している。
【0012】
さらに、DRAM(Dynamic Random Access Memory)に代表される揮発性メモリの大容量化、フラッシュメモリのI/O性能を大幅に超える次世代の不揮発半導体メモリを用いたストレージデバイスの開発も進んでいる。このようなストレージデバイスには、コスト、性能特性、容量の異なる複数のストレージデバイスが、単一のストレージシステム内におけるストレージデバイス群として採用されるようになってきている。
【0013】
このように、分散データストレージを構成するノードは、単にデータの格納容量の違いだけでなく、I/O性能の大幅に異なるデバイスを組み合わせることが可能となっている。
【0014】
また、分散データストレージシステムを運用する際には、新たにノードを追加することによりシステムを格納可能なスケールアウト拡張性を維持することが可能である。
【0015】
しかしながら、このようなスケールアウト拡張性を実現するためには、分散データストレージシステムを構成するノードの数が増加した場合においても、データを各ノード間で一様に分散させ、またデータの格納場所を容易に一意に設定する必要がある。
【0016】
このような特徴を実現するために、あるノードにおいてデータを特定するID(識別子)とデータの格納先をデータテーブルを用いて管理するのではなく、各ノードとデータにアクセスするクライアント間においてデータの格納先を算術的に設定するためのルールを共有する手法がある。
【0017】
この手法を採用することにより、クライアントがデータにアクセスする際、その都度、データの格納先を他のノードに問い合わせることなく、クライアントが独自にその格納先を設定できる。
【0018】
また、分散データストレージシステムを構成するノード数が増加して数百、数千台となることを考えた場合、次の問題が生じる。それは、特定の1台のノードがすべてのデータの格納先を管理する、また、クライアントからのデータ格納場所の問合せに応える場合、前記ノードがシステムの性能がボトルネックになるという問題点である。
【0019】
前述した算術的なデータ格納場所の設定手法を採用すれば、このような性能のボトルネックの発生を回避することができる。このデータ格納場所を算術的に設定するアルゴリズムとして、コンシステントハッシング(Consistent Hashing)と呼ばれるハッシュ関数を組み合わせたアルゴリズム、或いはランダム関数を組み合わせたアルゴリズムなどがある。
【0020】
これらのアルゴリズムは、均等なデータ格納の割り当てる。これにより、同一の性能で構成された複数のノード群を連携させた分散データストレージシステムにおいて、特定のノードに偏りが発生して、特定のノードのみデータの格納容量を超過するという問題、または、特定のノードにアクセスの偏りが発生して、性能低下を起こすといった問題を回避することが可能である。
【0021】
この算術的なデータ格納場所の設定手法は、下記の特徴を有する。即ち、個々のデータにあらかじめ割り当てられたデータ識別子(ID)と、データ本体そのものを入力データとして設定する。この場合、「システムを構成するノード数」、「各ノードに割り当てる論理的なデータ容量」、「ノードのIPアドレス(Internet Protocol Address)情報」、「ノードの稼働の有無、及びあらかじめ決められた算術式による算出結果の値とデータ格納先を紐づける格納情報」を含むシステムの構成情報を、算術に用いるパラメータとして設定する。そして、その手法では、パラメータを利用して算出された値によりデータの格納先となるノードを設定する。
【0022】
したがって、このような設定手法では、ノード追加やノードの故障といったシステム構成が変更された際に、そのシステム構成情報のみを、システムを構成するノードと、データをアクセスするクライアントとの間で共有することができる。従って、すべてのデータをどのノードに格納すべきか一意に設定することが可能となる。
【0023】
以上説明したように、分散データストレージシステムを構成するノードがすべて均一の容量であり、且つI/O性能を保持していた場合、算術的なデータ格納先設定手法を用いて、すべてのノードに一様にデータが分散格納されるようにシステム構成情報を設定すればよい。
【0024】
このように設定された分散データストレージシステムは、データの新規作成や書き込みに伴う、各ノードのストレージ容量の消費量と、データアクセスI/O数とを均等に分散することができる。
【0025】
しかし、前述した分散データストレージシステムを長期的に運用する場合、すでに同一性能のストレージノードを調達することができないことを解決する必要がある。この場合、システムに組み込まれているストレージノードと異なる容量及びI/O性能を備えるストレージノードを、新規に導入するストレージノードとして組み込むことが考えられる。
【0026】
また、最初から性能の異なるストレージノードからシステムを構成することも考えられる。
【0027】
例えば、特許文献1は、マルチノードストレージシステムを提案している。マルチノードストレージシステムは、管理ノードと多種多様なストレージデバイスを管理する多種多様なストレージノードとが、ネットワークを介して相互に接続されている。また、管理ノードは多種多様なストレージノードからデータの管理に関する情報を取得し、必要に応じて論理ボリュームを更新する。
【0028】
また、特許文献2に記載されたシステムは、何れのストレージノードがデータを保持するかを、データに付与されるキーから算出されるハッシュ値に基づいて判断する。キーに対するハッシュ値は、例えば、MD5(Message Digest algorithm 5)を用いて算出できる。システムは、SHA(Secure Hash Algorithm)など他のハッシュ関数を用いてもよい。
【0029】
このように、キーに対するハッシュ値に基づいて担当のストレージノード(以下、担当ノードということがある)を判定する方法は、コンシステントハッシング(Consistent Hashing)と呼ばれることがある。ハッシュ値に対する担当ノードを管理する担当管理テーブルに基づいて、アクセス先の担当ノードを判断する分散ストレージシステムが特許文献2で提案されている。
【0030】
さらに、特許文献3に記載されたシステムは、データの配置方法に対して、第一の記憶領域と第二の記憶領域とに分ける。第一の記憶領域の空き領域がなくなった場合、第二の記憶領域にユーザ情報として記憶し、第一の記憶領域に記憶されたユーザ情報と第二の記憶領域に記憶されたユーザ情報とをユーザ情報の使用頻度に基づく条件で入れ替えを行うデータを分散して配置する。
【発明を実施するための形態】
【0051】
以下、本発明の実施形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る分散データストレージシステムの構成を示すブロック図である。
図1に示すように、分散データストレージシステム3は、1つの管理ノード4および少なくとも性能は同一の2台以上のストレージノード5がネットワークを介して相互通信可能に接続されている。
【0052】
また、少なくとも1台以上のクライアント装置1がネットワーク2を介して複数のストレージノード5、及び後に追加される複数のストレージノード6に相互通信可能に接続されている。
【0053】
クライアント装置1は、ユーザが操作するコンピュータである。ユーザは、新規書き込みの要求があった場合、クライアント装置1を操作して、分散データストレージシステム3のストレージノード5にアクセスするデータアクセス要求を送信する。
【0054】
このアクセスに応じて、クライアント装置1は、データの格納先を算出するために、あらかじめ決められている算術式を使う。即ち、クライアント装置1は、書き込み対象となるデータにIDを付与し、当該IDを算術式の入力データとして用い、データ格納先を示す値を算出する。
【0055】
そして、クライアント装置1は、算出した値を管理ノード4から取得したシステム構成情報に含まれる格納情報と照合してデータの格納先を設定する。さらに、クライアント装置1は、データの格納先となるストレージノード5へ、前述のIDと書き込み対象となるデータとを書き込み命令とともに送信することで、データの読み書きを行う。
【0056】
管理ノード4は、分散データストレージシステム3の管理者が操作する端末装置である。分散データストレージシステム3の管理者は、管理ノード4を操作して、ストレージノード5、6にアクセスし、システム構成情報を設定して運用に必要な各種設定を行うことができる。
【0057】
図2は、本発明の第1の実施形態に係る管理ノードの構成を示すブロック図である。
図2に示すように、管理ノード4は、入出力部7、設定部10、決定部12、送信部13、及び記憶部14が接続されている。
【0058】
入出力部7は、キーボード8とマウス9とが接続されて、キーボード8やマウス9から送られてくる信号を、バスを介して各部に転送する。
【0059】
設定部10は、モニタ11と接続されている。分散データストレージシステム3に異なるI/O性能のストレージノードの設置、追加や障害等によりシステムの構成変更が発生した場合、設定部10は、システム構成情報をモニタの画面に表示する。
【0060】
システム構成情報は、「論理的なデータ容量」や「ストレージノードのIPアドレス情報」、「ストレージノードの稼働の有無」、「あらかじめ決められた算術式による算出結果をもとに、その算出結果の値とデータ格納先を紐づける格納情報」とからなる。
【0061】
そして、設定部10は、ストレージノードの設置、追加や障害等に基づいて、システム構成変更を反映した最新のシステム構成情報を設定する。また、設定部10は、設置、又は追加のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割して、各領域の論理容量の設定を行う。
【0062】
決定部12は、設定部10によって設定された情報に基づいて、分散データストレージシステムの構成変更を反映したシステム構成情報を決定する。
【0063】
送信部13は、設定部10によって設定された情報及び決定部12によって決定されたシステム構成情報をネットワーク2を介して、クライアント装置1及び/又は各ストレージノードに送信する。
【0064】
記憶部14は、設定部10によって設定された情報及び決定部12によって決定されたシステム構成情報などを記憶する。
【0065】
システム構成情報のうち、「算術式に算出する算出結果、及び格納情報」の例を以下のように説明する。なお、割り当て方法は利用する算術式に応じて異なる。
【0066】
クライアント装置1がデータの配置先を決める算術式に、例えば、Consistent Hashingを用いる。この場合、管理ノード4は、各ノードが搭載するストレージ容量に合わせて、仮想ノードを割り当てる。さらに、各ノードに設定する論理的なデータ容量に応じて、バーチャルノード数、およびバーチャルノード番号を割り当てる。
【0067】
例えば、2台の基準ノード、論理データ容量が2倍となる2台のノードを有する計4台のノードを含むシステムが構成される場合、基準ノードにバーチャルノードを1つずつ、論理容量が2倍のノードにバーチャルノードを2つずつを割り当てたと仮定する。このようなシステムの場合、計6つのバーチャルノードが必要となる。
例えば、次のように割り当てられる。
【0068】
基準ノード1:バーチャルノード1
基準ノード2:バーチャルノード2
論理容量が2倍のノード1:バーチャルノード3、4
論理容量が2倍のノード2:バーチャルノード5、6
各バーチャルノードの番号が、算術式により算出される結果(値)であり、上記の各ノードにおけるバーチャルノードの対応関係が記憶部14の格納情報となる。
【0069】
これらの情報は、システムの運用管理者が設定するものであり、管理ノード4が事前に設定する設定情報である。
【0070】
管理ノード4は、以上のような構成に基づいて、ネットワーク2を介してストレージノード5、6を管理する。
【0071】
なお、管理ノード4が備える機能は、いずれか1台のストレージノード5が担う構成でもよい。
【0072】
図3は、ストレージノード5の構成を示すブロック図である。ストレージノード5は、データ入出力管理部15、データ格納先管理部16、ストレージ使用量管理部17、及びストレージデバイス19を有する格納部18を備える。各部がストレージノード5の内部バスに接続されている。
【0073】
各ストレージノード5は、
図3に示すように、それぞれにストレージデバイス19を接続している。ストレージノード5は、ストレージデバイス19に格納されたデータを管理し、管理しているデータをネットワーク2を経由してクライアント装置1に提供する。
【0074】
また、ストレージノード5は、データに冗長性をもたせて管理している。すなわち、同一内容のデータが、少なくとも2つのストレージノードで管理されている。
【0075】
ストレージデバイス19は、ディスクアレイを用いずにハードディスク単体(HDD)で構成される。複数の性能の異なるデバイスでストレージデバイスが構成されても良い(例えば、SSDとHDDを組み合わせ)。
【0076】
また、ストレージデバイス19は、内蔵する複数のHDDを用いたRAID(Redundant Arrays of Inexpensive Disks)システムでも良く、RAID以外の技術を用いてディスクアレイを構成してもよい。本実施の形態では、ストレージデバイスは、ハードディスク単体(HDD)のディスク管理サービスを提供する。
【0077】
データ入出力管理部15は、ネットワーク2を介して送受信されるデータの入出力を担当する。
【0078】
分散データストレージシステム3にストレージノードの追加や障害等によりシステムの構成変更が発生する場合、クライアント装置1は管理ノード4で発生したシステム構成変更を反映したシステム構成情報を保持しない。また、クライアント装置1は、誤ったノードに書き込み命令を送信することが考えられる。
【0079】
この場合、データ入出力管理部15は、自ノードに送信された書き込み命令に含まれるデータIDを入力とした算術的アルゴリズムに基づいて計算を行い、計算結果の値と管理ノード4からのシステム構成情報に含まれる格納情報と照合し、データアクセス要求が、自ノード向けの要求であるかどうかを判定する。
【0080】
即ち、計算結果の値と格納情報とが一致する場合、データ入出力管理部15は、データアクセス要求を自ノード向けの要求であると判定し、データアクセス要求に従ってデータのIDとデータの読み書きの命令をデータ格納先管理部16に送信する。
【0081】
算出結果の値と格納情報とが一致しない場合、データ入出力管理部15は、自ノード向けの要求でないと判定し、クライアント装置1へデータ格納先ではない旨を表すエラーを返答する。
【0082】
クライアント装置1は、そのエラーを取得した場合、管理ノード4に最新のシステム構成情報の送信を要求し、書き込み対象となるデータにIDを付与する。さらにクライアント装置1では、データの格納先を算出するために、あらかじめ決められている算術式を使い、当該IDを入力データとしてデータ格納先を示す値を算出する。
【0083】
クライアント装置1は、算術式で算出した値を管理ノード4から送信された最新のシステム構成情報に含まれる格納情報と照合してデータの格納先を再設定する。
【0084】
クライアント装置1は、再設定したデータ格納先となるストレージノード5へIDと書き込み対象となるデータを、書き込み命令とともに再送信することで、データの読み書きを行う。
【0085】
データ格納先管理部16は、自ノードのストレージデバイス19のデータ格納先となる物理アドレスと、データ入出力管理部15により要求される書き込み対象となるデータのIDとを紐づけるテーブルを管理している。
【0086】
データ格納先管理部16は、データ入出力管理部15によって指定されたデータのIDとデータの読み書きの命令に応じて、ストレージデバイス19からデータの読み書きを行い、データ入出力管理部15に与えられた命令の応答を返す。
【0087】
前述のテーブルの内容は、データのID、ストレージデバイスの物理アドレス、アクセス頻度情報を紐づけた一般的なデータ管理テーブルである。データ格納先管理部16は、データIDを入力として、ストレージデバイスの物理アドレス及びアクセス頻度情報を抽出することができる。
【0088】
なお、データ格納先管理部16は、テーブルで管理するデータのIDごとに、データの読み書きといったデータアクセス要求があった場合、その要求を当該データのIDのアクセス頻度情報として、テーブルに登録する。
【0089】
ストレージ使用量管理部17は、ストレージデバイス19の空きアドレスを管理している。
【0090】
データ入出力管理部15からデータ格納先管理部16へ新規のデータの書き込み要求があった場合、データ格納先管理部16は、ストレージ使用量管理部17から空きアドレスを取得して、ストレージデバイス19に書き込みを行う。
【0091】
なお、ストレージデバイス19にデータの書き込みがあったアドレスは、ストレージ使用量管理部17にて使用中のアドレスとして管理される。
【0092】
また、ストレージ使用量管理部17は、ストレージノード5が分散データストレージシステム3に組み込まれる際、管理ノード4から送信されるシステム構成情報に含まれる論理的なデータ容量に基づき、ストレージデバイス19のすべてのアドレスを第1のストレージ領域用のアドレスと、第2のストレージ領域用のアドレスとの2種類に分類する。この場合、ストレージ使用量管理部17は、論理的なデータ容量が、第1のストレージ領域の容量と第2のストレージ領域に容量を満たすようにアドレスを分類する。
【0093】
ストレージデバイス19は、HDDやSSDといった一般的なストレージデバイスにより構成されているが、異なるデバイスを複数組み合わせて構成してもよい。異なるデバイスを複数組み合わせる場合においては、ストレージ使用量管理部17は、よりI/O性能の高いデバイスを第1のストレージ領域用として割り当てる。
【0094】
また、新規導入のストレージノード6も既設のストレージノード5と同様のハードウェアを用いて実装してもよい。
【0095】
図4〜
図6は、I/O性能の異なるストレージノード6が新規導入された場合、クライアント装置1から分散データストレージシステム3へのデータ書き込み処理を示すフローチャートである。以下、
図4〜
図6に示す処理をフローチャートに沿って説明する。
【0096】
(ステップS401)
図1に示すように、既設のストレージノード5のI/O性能値として、論理的な容量が10である分散ストレージシステム3に、I/O性能値が20であるストレージノード6が新規導入されると仮定する。この場合、管理ノード4は、当該性能の異なるストレージノード6の追加に基づいてシステム構成変更を反映したシステム構成情報を設定する。
【0097】
(ステップS402)管理ノード4は、新規に導入されるストレージノード6が管理しているストレージデバイスを第1のストレージ領域と第2のストレージ領域に分割して、それぞれの容量を下記の条件に基づいて割り当てる。
【0098】
また、下記の条件は、各ノードに割り当てる容量を設定するためのルールである。管理ノード4は、各ノードに割り当てる容量を設定する場合、管理ノード4で管理するシステム構成情報に含まれる情報の一部として、システムを構成するノードのI/O性能値に合わせるように設定する。即ち、下記ルールに基づき、管理ノード4が容量を設定する。
条件1) 管理ノード4は、基準となるストレージノード5のI/O性能値を決める。次に、I/O性能の異なるストレージノード6のI/O性能が基準ストレージノード5のN倍である場合、管理ノード4は、I/O性能の異なるストレージノード6の第1のストレージの論理容量を基準ノードのN倍に設定する(Nは、0より大きい整数である)。
【0099】
例えば、ストレージノード6のI/O性能が、基準ストレージノード5のI/O性能の2倍である場合、管理ノード4は、I/O性能の異なるストレージノード6の第1のストレージの論理容量を基準ノードの論理容量の2倍に設定し、ストレージノード6のI/O性能に合わせる。この結果、I/O性能の異なるノードの性能がボトルネックになるという問題を解決することができるので、システム全体の性能を維持することができる。
条件2) 条件1)において、I/O性能の異なるストレージノード6内のストレージデバイスの容量が、基準ストレージノード5のストレージデバイスのN倍以上ある場合、管理ノード4は、ストレージノード6内にN倍を超える残りの容量を、第2のストレージ領域として設定し、基準ストレージノード5には第2のストレージ領域を設定しない(データ再配置先とならない)。
【0100】
例えば、I/O性能の異なるストレージノード6内のストレージデバイスの容量が、基準ストレージノード5のストレージデバイスの2倍以上ある場合、管理ノード4は、ストレージノード6内に2倍を超える残りの容量を、第2のストレージ領域として設定する。
【0101】
このため、ストレージノード6は、I/O性能に合わせて、第1のストレージ領域に2倍の容量を保持することができるので、I/O性能の異なるストレージノード6の性能がボトルネックになるという問題を解決することができ、システム全体の性能を維持することができる。
条件3) 条件1)及び条件2)において、基準ストレージノード5に第2のストレージ領域を設定する場合、基準ストレージノードの第1のストレージ領域に割り当てた容量のN倍の容量を、I/O性能の異なるストレージノード6の第1のストレージ領域の容量として割り当てる。
【0102】
例えば、ストレージノード6のI/O性能が基準ストレージノード5のI/O性能の2倍である場合、ストレージノード6の第1のストレージ領域の論理容量が基準ストレージノード5の第1のストレージ領域に割り当てた容量の2倍に設定される。
【0103】
このように、ストレージノード6は、I/O性能に合わせて、第1のストレージ領域に2倍の容量を保持することができるので、I/O性能の異なるストレージノード6の性能がボトルネックになるという問題を解決することができ、システム全体の性能を維持することができる。
条件4) 条件1)において、I/O性能の異なるストレージノード6内のストレージデバイスの容量が、基準ストレージノード5のストレージデバイスのN倍以下の場合、管理ノード4は、I/O性能の異なるストレージノード6内のストレージデバイスの容量を上限として第1のストレージ領域としてすべて割り当てる。
【0104】
例えば、ストレージノード6のI/O性能が基準ストレージノード5のI/O性能が基準ノードの2倍であり、I/O性能の異なるストレージノード6内のストレージデバイスの容量が、基準ストレージノード5のストレージデバイスの2倍以下の場合、管理ノード4は、I/O性能の異なるストレージノード6内のストレージデバイスの容量を上限として第1のストレージ領域としてすべて割り当てる。
【0105】
このように、I/O性能の異なるストレージノード6内のストレージデバイスの容量を最大限に活用しながらストレージノード6のI/O性能に合わせることができる。よって、I/O性能の異なるストレージノード6の性能がボトルネックになるという問題を最大限に低減することができ、システム全体の性能を最大限に維持することができる。
条件5) 条件1)及び4)において、I/O性能の異なるストレージノード6における第1のストレージ領域の容量の1/Nの容量を、基準ストレージノードの第1のストレージ領域の容量として割り当てる。
【0106】
例えば、ストレージノード6のI/O性能が基準ストレージノード5のI/O性能の2倍であり、I/O性能の異なるストレージノード6内のストレージデバイスの容量が、基準ストレージノード5のストレージデバイスの2倍以下であると仮定する。この場合、管理ノード4は、I/O性能の異なるストレージノード6における第1のストレージ領域の容量の1/2の容量を、基準ストレージノード5の第1のストレージ領域の容量として割り当てる。
【0107】
従って、条件1)のように、管理ノード4は、論理容量をI/O性能に合わせるようになり、I/O性能の異なるノードの性能がボトルネックになるという問題を解決することができ、システム全体の性能を維持することができる。
条件6) 3種類以上のI/O性能、ストレージ論理容量の異なるストレージノード6が存在した場合、最もI/O性能の低いノードを基準ストレージノードとして設定し、条件1)〜5)に基づき、第1のストレージ領域の容量、第2のストレージ領域の容量を設定する。
【0108】
この設定条件は、最もI/O性能の低いノードを基準ストレージノードとして設定しているので、条件1)〜5)に基づき、最も容量の低いストレージノードの第1のストレージ領域の論理容量を基準ストレージノードのI/O性能に容易に合わせることができる。
【0109】
このため、I/O性能の異なるストレージノードの性能がボトルネックになるという問題を解決することができ、システム全体の性能を維持することができる。
条件7) ストレージノード5、6が条件1)〜6)に合致しないストレージノードの組み合わせである場合、最も少ないストレージ容量となるストレージノードを基準ストレージノードとする。
【0110】
この設定条件は、最も少ないストレージ容量となるストレージノードを基準ストレージノードとする。従って、管理ノード4は、ストレージノードのI/O性能が基準ストレージノードの容量に合わせて設定することで、ストレージノードがボトルネックになるという問題を容易に解決することができる。
【0111】
なお、ストレージノード内において、複数の性能の異なるデバイスでストレージデバイスが構成されている場合(例えば、SSDとHDDを組み合わせた場合等)、管理ノード4は、最もI/O性能の高いデバイスのみを利用した場合におけるI/O性能、およびストレージ論理容量を基準に、条件1)〜6)に従って、第1のストレージ領域の容量、および第2のストレージ領域の論理容量を設定する。
【0112】
本実施形態では、一例として、管理ノード4は、条件1)に基づいて設定する。即ち、管理ノード4は、導入されるストレージノード6の第1のストレージ領域の論理容量を、基準ストレージノード5の容量の2倍である20に設定する。
【0113】
これによって、新規に導入されたストレージノード6の論理的な容量をI/O性能に合わせることができるようになるので、ストレージノード6の論理的な容量とI/O性能との差がなくなる。
【0114】
(ステップS403)管理ノード4は、変更済のシステム構成情報と第1のストレージ領域の論理容量などの設定情報をクライアント装置1及び全てのストレージノード5、6に送信する。もしくは管理ノード4は、クライアント装置1やストレージノード5、6からの変更済のシステム構成情報または設定情報の送信要求があった際にそれらの情報を送信してもよい。
【0115】
(ステップS404)ユーザから新規書き込みの要求があった場合、クライアント装置1は、書き込み対象となるデータにIDを付与し、そのIDを入力データとして、あらかじめ決められた算術式、および管理ノード4より取得したシステム構成情報に基づいて、データの格納先となるストレージノード5を設定する。
【0116】
(ステップS405)クライアント装置1は、ステップS404で設定したデータの格納先となるストレージノード5へ、IDと書き込み対象となるデータを書き込み命令とともに送信する。
【0117】
(ステップS406)ストレージノード5のデータ入出力管理部15は、自ノードに送信された書き込み命令に含まれるデータIDを入力として算術的アルゴリズムにより計算する。さらに、データ入出力管理部15は、算出した値と管理ノード4からのシステム構成情報に含まれる格納情報とを照合し、データアクセス要求が、自ノード向けの要求であるかどうかを判定する。
【0118】
その判定により、算出した値と格納情報とが一致する場合、データ入出力管理部12は、自ノードが格納先となると判定し、データ入出力管理部15はクライアント装置1から送信された書き込み要求をデータ格納先管理部16に転送する。
【0119】
(ステップS407)データ格納先管理部16は、データIDとストレージデバイス19を紐づけたテーブルに、書き込み要求に含まれているデータIDが存在しているか確認する。
【0120】
<テーブルに書き込み要求に含まれているデータIDが存在している場合>
(ステップS408)データ格納先管理部16は、テーブルに紐づけられているアドレスを取得する。
【0121】
(ステップS409)データ格納先管理部16は、取得したアドレスをもとに、ストレージデバイス19の適合するアドレスへ、書き込み要求に含まれているデータを書き込む。
【0122】
(ステップS410)データ格納先管理部16は、書き込みが完了したことを、データ入出力管理部15に転送する。データ入出力管理部15は、書き込み完了を受けて、クライアント装置1へ、書き込み要求が完了したことを通知する。
【0123】
<テーブルに書き込み要求に含まれているデータIDが存在してない場合>
(ステップS411)
図5に示すように、データ格納先管理部16は、ストレージ使用量管理部17から、第1のストレージ領域の中から空きアドレスを取得する。次に、データ格納先管理部16は、データ書き込み要求に含まれるIDと空きアドレスを紐づけて、テーブル上に新たなエントリとして登録して書き込みを完了する。
【0124】
(ステップS412)尚、第1のストレージ領域の使用量がある一定以上になった場合で、且つ第1のストレージ領域として確保しているストレージデバイスの使用量が、あらかじめ決められた使用量以上、つまり空きアドレスの数があらかじめ決められた一定数以下となった場合、ストレージ使用量管理部17は、データ格納先管理部16に、使用量超過のアラームを上げる。
【0125】
(ステップS413)データ格納先管理部16は、アラームをトリガーとして、IDとストレージデバイス19へのデータ格納先アドレスを紐づけたテーブル上で管理されている、各IDのアクセス頻度情報を参照する。次に、データ格納先管理部16は、もっともアクセス頻度の低いIDから、あらかじめ決められた一定データ量分のID群を抽出する。
【0126】
(ステップS414)データ格納先管理部16は、抽出されたIDを構成するバイナリデータをあらかじめ決められた数分だけ、巡回ビットシフトを実行する。その後、データ格納先管理部16は、シフトされたIDのデータを入力データとして、クライアント装置1、ストレージノード5、6、管理ノード4間で共有しているシステム構成情報、および算術的データ格納先の設定手法を用いて、新たにデータの格納先を設定する。その格納先は、IDのデータの再格納先となる。
【0127】
<再格納先が、自ノードである場合>
(ステップS415)
図5に示すように、データ格納先管理部16は、ストレージ使用量管理部17に対して、IDに紐づけられたアドレスが、第1のストレージ領域から第2のストレージ領域に割り当てが変更になったことを通知する。
【0128】
(ステップS416)ストレージ使用量管理部17は、その通知を受けて、該当するアドレスを第2のストレージ領域のアドレスとして登録するとともに、第2のストレージ領域に割り当てているアドレスの中から、空きアドレスを1つ選択し、第1のストレージ領域のアドレスとして登録する。
【0129】
ただし、ストレージデバイス19が複数の性能の異なるデバイスにより構成されていた場合は、データ格納先管理部16は、第1のストレージ領域から第2のストレージ領域へデータを再配置してもよい。
【0130】
(ステップS417)データ格納先管理部16は、第1のストレージ領域のアドレスとして登録されたアドレスへ、書き込み要求に含まれているデータを書き込む。
【0131】
(ステップS418)データ格納先管理部16は、書き込みが完了したことを、データ入出力管理部15に転送する。データ入出力管理部15は、書き込み完了を受けて、クライアント装置1へ、書き込み要求が完了したことを通知する。
【0132】
<ステップS414で設定される再格納先が、他のストレージノード6である場合>
(ステップS419)
図6に示すように、データ格納先管理部16は、ストレージデバイス19から前記IDに該当するデータを読み出し、前記IDに該当するアドレスが解放された(空きアドレスとなった)ことをストレージ使用量管理部17に通知する。さらに、データ格納先管理部16は、IDとストレージデバイス19のアドレス情報を紐づけて管理しているテーブルにおいて、アドレス情報を、再格納されたことを示す識別子に置き換える。
【0133】
(ステップS420)さらに、データ格納先管理部16は、ストレージデバイス19から読み出したデータと、巡回ビットシフトさせた再格納後のIDを、データ入出力管理部12を経由して、再格納先となるストレージノード6へ再格納命令とともに転送する。
【0134】
(ステップS421)再格納先となったストレージノード6のデータ入出力管理部15は、再格納要求を受け取った後、要求をデータ格納先管理部16へ転送する。
【0135】
データ格納先管理部16は、ストレージ使用量管理部17から、第2のストレージ領域として確保しているアドレスの中から空きアドレスを取得し、IDとアドレスを紐づけるテーブルに新たなエントリとして登録した後、空きアドレスにデータを格納する。
【0136】
この場合、第1のストレージ領域に格納する必要がある場合、データ格納先管理部16は、第1のストレージ領域の空きアドレスを取得して、当該アドレスにデータを格納しても良い。
【0137】
(ステップS422)ステップS421での処理の完了通知は、データ入出力管理部15を経由して、再格納元のストレージノード5に転送される。再格納元のストレージノード5は、書き込み完了通知を受けて、クライアント装置1へ、書き込み要求が完了したことを通知する。
【0138】
本発明の第1の実施形態としての分散データストレージシステムにおいて、異なるI/O性能を備えたストレージノード群によって構成される際、管理ノード4は、ストレージノードの論理容量とI/O性能のそれぞれの性能差に合わせて、ストレージノードの論理容量を、データアクセスI/O数に基づいて設定することが可能となる。
【0139】
これに基づいて、ストレージノードの性能がボトルネックにならず、システム全体の性能を維持するという効果がある。
[第2の実施形態]
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。なお、本実施形態の説明において、本発明の第2の実施形態に係るストレージノード管理装置700の構成と本発明の第1の実施形態に係る管理ノードの構成の以外に、本発明の第1の実施形態と同様なシステム構成や同様に動作するステップを有するので、それにおける詳細な説明を省略する。
【0140】
図7は、本発明の第2の実施形態に係るストレージノード管理装置700の構成を示すブロック図である。
図7に示すように、ストレージノード管理装置700は、設定部701、決定部702、及び送信部703を備える。
【0141】
ストレージノード管理装置700は、ネットワーク2を介して複数のストレージノード5、6と接続している。
【0142】
分散データストレージシステム3の管理者がストレージノード管理装置700を操作する。そして、その操作に基づいて、ストレージノード管理装置700は、複数の異なるI/O性能のストレージノード5、6にアクセスし、システム構成情報を設定して運用に必要な各種設定を行う。
【0143】
分散データストレージシステム3に、異なるI/O性能のストレージノードの設置、追加や障害等によりシステムの構成変更が発生した場合、設定部701は、システム構成情報をモニタの画面に表示する。
【0144】
システム構成情報は、「論理的なデータ容量」、「ストレージノードのIPアドレス情報」、「ストレージノードの稼働の有無」、及び「あらかじめ決められた算術式による算出結果をもとに、その算出結果の値とデータ格納先を紐づける格納情報」とからなる。
【0145】
そして、設定部10は、ストレージノードの設置、追加や障害等に基づいて、発生したシステム構成変更を反映した最新のシステム構成情報を設定する。また、設定部10は、設置、又は追加のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割して、各領域の論理容量の設定を行う。
【0146】
決定部702は、設定部701によって設定された情報に基づいて、分散データストレージシステム3の構成変更を反映したシステム構成情報を決定する。
【0147】
送信部703は、設定部701によって設定された情報及び決定部702によって決定されたシステム構成情報をネットワーク2を介して、クライアント装置1や又は各ストレージノード5、6に送信する。
【0148】
本発明の第2の実施形態としての分散データストレージシステムは、異なるI/O性能を備えたストレージノード群によって構成される際、ストレージノード管理装置700は、ストレージノードの論理容量とI/O性能のそれぞれの性能差に合わせて、ストレージノードの論理容量を、データアクセスI/O数に基づいて設定することが可能となる。
【0149】
前述したように、本発明の第2の実施形態によれば、ストレージノードの論理容量とI/O性能のそれぞれの性能差に合わせて、ストレージノードのデータ格納容量を、データアクセスI/O数に基づいて設定することが可能となる。
【0150】
同様に、分散データストレージシステムを運用する際、すでにシステムに組み込み済のノードのストレージノードの容量、I/O性能リソースを未消費の状態であれば、余分なノードの追加を避けることが可能となる。
【0151】
従って、分散データストレージシステムを構成するストレージノードの論理容量とI/O性能の性能差がなくなり、もしくは最小限にすることができ、それぞれのストレージノードのH/W性能をできるだけ最大に近づけるようにリソースを割り当てることが可能となる。その結果、ストレージ容量、I/O性能の両面において、分散データストレージシステムの全体性能を向上させることが可能となる。
【0152】
また、上述した本発明の各実施形態において、各フローチャートを参照して説明した処理機能は、コンピュータによって実現することができる。その場合、ストレージノード5、6、管理ノード4、ストレージノード管理装置700が有すべき機能の処理内容を記述したプログラムが提供される。
【0153】
図8は、本発明の第1の実施形態としての管理ノード4または第2の実施形態としてのストレージノード管理装置700のコンピュータ装置の回路ブロック図である。
【0154】
図8に示すように、本発明の第1の実施形態としての管理ノード4または第2の実施形態としてのストレージノード管理装置700の処理機能は、ROM803(Read Only Memory)又は記憶装置(HDD)に記憶されたコンピュータ・プログラムをCPU801(Central Processing Unit)がRAM802(Random Access Memory)に書き込んで実行する。従って、上記処理機能がコンピュータ上で実現される。
【0155】
また、処理機能を実現するための内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【0156】
磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc - Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。光磁気記録媒体には、MO(Magneto - Optical disk)などがある。
【0157】
上記プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータに格納しておき、ネットワークを通じて、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0158】
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラム若しくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。
【0159】
そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【0160】
また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0161】
以上、本発明の実施の形態を説明したが、上記については単に本発明の原理を示すものである。本発明は上記に示して説明した構成および応用例に限定されるものではなく、さらに、多数の変形、変更が当業者にとって可能である。
【0162】
例えば、本発明は、最初から分散データストレージスステムに異なる容量とI/O性能のストレージノードが混載されている場合に適用することができる。
【0163】
また、システムの運用中にあるストレージノードの故障により、システムの構成情報に変更が生じ、他のストレージノードの論理容量を再設定する必要があった場合などに適用することができることはいうまでもない。
【0164】
また、対応するすべての変形例および均等物は、添付の請求項およびその均等物を本発明の範囲とみなすことができる。また、各部の構成は同様の機能を有する任意の構成のものに置換することができる。
【0165】
さらに、本発明に他の任意の構成物や工程が付加されてもよい。また、本発明は前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【0166】
以上の実施の形態に関し、さらに以下の付記を開示する。
【0167】
(付記1)
I/O性能の異なる複数のストレージノードを含む分散データストレージシステムを構成する際、前記複数のI/O性能の異なるストレージノードから少なくとも1つの基準ストレージノードを設定し、前記基準ストレージノードのI/O性能と論理容量とを参照して、前記基準ストレージノード以外のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割すると共に、それら第1及び第2のストレージ領域の論理容量を前記基準ストレージノード以外のストレージノードのI/O性能に合わせるように設定する設定手段と、
前記設定手段により設定した情報に基づいて、前記分散データストレージシステムの構成変更を反映したシステム構成情報を決定する決定手段と、
前記決定手段により決定したシステム構成情報を前記複数のI/O性能の異なるストレージノードに送信する送信手段とを備えるストレージノード管理装置。
【0168】
(付記2)
前記設定手段は、前記基準ストレージノード以外のストレージノードのI/O性能が前記基準ストレージノードのI/O性能のN倍である場合、前記基準ストレージノード以外のストレージノードの第1のストレージ論理容量を前記基準ストレージノードの論理容量のN倍に設定することを特徴とする付記1に記載のストレージノード管理装置。
【0169】
(付記3)
前記設定手段は、前記基準ストレージノード以外のストレージノードの論理容量が、前記基準ストレージノードの論理容量のN倍以上である場合、N倍を超える残りの容量を、前記基準ストレージノード以外のストレージノードの第2のストレージ領域に設定することを特徴とする付記1または2に記載のストレージノード管理装置。
【0170】
(付記4)
前記設定手段は、前記基準ストレージノードに第1及び第2のストレージ領域が設定される場合、前記基準ストレージノードの第1のストレージ領域に設定した論理容量のN倍の容量を、前記基準ストレージノード以外のストレージノードの第1のストレージ領域の論理容量に設定することを特徴とする付記1乃至3のいずれか1つに記載のストレージノード管理装置。
【0171】
(付記5)
前記設定手段は、3種類以上のI/O性能、ストレージ容量の異なるストレージノードが存在した場合は、最もI/O性能の低いストレージノードを基準ストレージノードとして設定し、全てのストレージノードのI/O性能及び格納容量が最大に近づくように第1のストレージ領域の論理容量、第2のストレージ領域の論理容量を設定することを特徴とする付記1乃至4のいずれか1つに記載のストレージ管理装置。
【0172】
(付記6)
前記設定手段は、性能の差異が大きいストレージノードの組み合わせの場合、最も少ないストレージ容量となるノードを基準ストレージノードとし、全てのストレージノードのI/O性能及び格納容量が最大に近づくように第1のストレージ領域の論理容量、第2のストレージ領域の論理容量を設定することを特徴とする付記1乃至5のいずれか1つに記載のストレージ管理装置。
【0173】
(付記7)
I/O性能の異なる複数のストレージノードにより基づいて、分散データストレージシステムを構成する際、前記複数のI/O性能の異なるストレージノードから少なくとも1つの基準ストレージノードを設定し、前記基準ストレージノードのI/O性能と論理容量とを参照して、前記基準ストレージノード以外のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割すると共に、それら第1及び第2のストレージ領域の論理容量を前記基準ストレージノード以外のストレージノードのI/O性能に合わせるように設定するストレージノード論理容量設定方法。
【0174】
(付記8)
前記基準ストレージノード以外のストレージノードのI/O性能が前記基準ストレージノードのI/O性能のN倍である場合、前記基準ストレージノード以外のストレージノードの第1のストレージ論理容量を前記基準ストレージノードの論理容量のN倍に設定することを特徴とする付記7に記載のストレージノード論理容量設定方法。
【0175】
(付記9)
前記基準ストレージノード以外のストレージノードのストレージ論理容量が、前記基準ストレージノードのストレージ容量のN倍以上である場合、N倍を超える残りの容量を、前記基準ストレージノード以外のストレージノードの第2のストレージ領域に設定することを特徴とする付記7又は8に記載のストレージノード論理容量設定方法。
【0176】
(付記10)
前記基準ストレージノードに第1及び第2のストレージ領域が設定される場合、前記基準ストレージノードの第1のストレージ領域に設定した容量のN倍の容量を、前記基準ストレージノード以外のストレージノードの第1のストレージ領域の容量に設定することを特徴とする付記7乃至9のいずれか1つに記載のストレージノード論理容量設定方法。
【0177】
(付記11)
I/O性能の異なる複数のストレージノードを含む分散データストレージシステムを構成する際、前記複数のI/O性能の異なるストレージノードから少なくとも1つの基準ストレージノードを設定する処理と、前記基準ストレージノードのI/O性能と論理容量とを参照して、前記基準ストレージノード以外のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割すると共に、それら第1及び第2のストレージ領域の論理容量を前記基準ストレージノード以外のストレージノードのI/O性能に合わせるように設定する処理とをコンピュータに実行させるプログラム。
【0178】
(付記12)
I/O性能の異なる複数のストレージノードを含む分散データストレージシステムを構成する際、前記複数のI/O性能の異なるストレージノードから少なくとも1つの基準ストレージノードを設定する処理と、前記基準ストレージノードのI/O性能と論理容量とを参照して、前記基準ストレージノード以外のストレージノードのストレージ領域を第1のストレージ領域と第2のストレージ領域に分割すると共に、それら第1及び第2のストレージ領域の論理容量を前記基準ストレージノード以外のストレージノードのI/O性能に合わせるように設定する処理とをコンピュータに実行させるプログラムが記録された記録媒体。
【0179】
(付記13)
前記付記1乃至6のいずれか1つに記載のストレージ管理装置で第1のストレージ領域と第2のストレージ領域に分割されるストレージデバイスを有する格納手段と、
前記格納手段に格納するデータにアクセス要求がある場合、自ノード向けのアクセス要求であるかどうかを判定するデータ入出力管理手段と、
書き込み対象となるデータのIDと、データ格納先となる物理アドレスと、アクセス頻度情報とを紐づけた情報を管理すると共に、前記データ入出力管理手段によって指定されたデータのIDとデータの読み書きを指示する命令に応じて、データの読み書きを行うデータ格納管理手段と、
前記付記1乃至6のいずれか1つに記載のストレージ管理装置から取得するシステム構成情報に含まれる論理容量に基づき、前記第1のストレージ領域と第2のストレージ領域に容量を満たすように前記ストレージデバイスのアドレスを分類するストレージ使用量管理手段とを備えるストレージノード。
【0180】
(付記14)
付記1乃至6のいずれか1つに記載のストレージ管理装置と、付記13に記載のストレージノードとを備える分散データストレージシステム。
【0181】
この出願は、2013年5月20日に出願された日本出願特願2013−106077を基礎とする優先権を主張し、その開示の全てをここに取り込む。