(57)【要約】【課題】記憶装置間のシーケンシャルアクセス性能のばらつきを抑える。【解決手段】サーバ装置は、記憶部と格納処理部を含む。記憶部は、複数の記憶装置のそれぞれの所定の記憶領域毎に、該記憶領域へのシーケンシャルアクセスの速度に関する速度情報を記憶する。格納処理部は、複数の記憶装置のいずれかへのアクセス要求により、複数の記憶装置のうち少なくとも２つの記憶装置を選択し、速度情報を用いて、選択した記憶装置の間で、記憶領域へのシーケンシャルアクセスの速度の差が所定の閾値以下である記憶領域を特定し、特定した記憶領域のそれぞれへデータを記憶させる。【選択図】図２
2015191534.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置のそれぞれの所定の記憶領域毎に、該記憶領域へのシーケンシャルアクセスの速度に関する速度情報を記憶する記憶部と、
前記複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、前記速度情報を用いて、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへデータを記憶させる格納処理部と、
を備えることを特徴とするサーバ装置。
【請求項２】
前記格納処理部は、前記複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置の冗長度に応じて、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、前記速度情報を用いて、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへ冗長化させるデータを記憶させる
ことを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記特定した記憶領域のそれぞれは、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域の組合せうち、前記速度が最も速い組合せの各記憶領域である
ことを特徴とする請求項１または２に記載のサーバ装置。
【請求項４】
前記記憶部は、前記複数の記憶装置のそれぞれの前記記憶領域毎の空き領域に関する情報を記憶し、
前記格納処理部は、前記空き領域に関する情報に基いてデータの書込みが可能な記憶領域を特定し、特定した該記憶領域のうちの前記選択した記憶装置のそれぞれの該記憶領域に前記データを記憶させる
ことを特徴とする請求項１〜３のうちいずれか１項に記載のサーバ装置。
【請求項５】
前記サーバ装置は、さらに、
前記特定した記憶領域が他のサーバ装置が管理する記憶装置である場合、前記データを書き込むように該他のサーバ装置へ通知する通知部と、
を備えることを特徴とする請求項１〜４にうちいずれか１項に記載のサーバ装置。
【請求項６】
コンピュータに、
複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置のそれぞれの所定の記憶領域毎の、該記憶領域へのシーケンシャルアクセスの速度に関する、記憶部に記憶された速度情報を用いて、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへデータを記憶させる
処理を実行させることを特徴とする情報格納プログラム。
【請求項７】
複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置のそれぞれの所定の記憶領域毎の、該記憶領域へのシーケンシャルアクセスの速度に関する、記憶部に記憶された速度情報を用いて、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへデータを記憶させる
ことを特徴とする情報格納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の格納に関する。
【背景技術】
【０００２】
データを記録し読み出す補助記憶装置の一つにＨＤＤ（Hard disk drive）がある。ＨＤＤのアクセスに関する特性の一つに、ＨＤＤの内周部分と外周部分とで、シーケンシャルアクセスに性能差が生じるという特性がある。シーケンシャルアクセスは、ＨＤＤの先頭から順に検索し、アクセスする方法である。
【０００３】
ＨＤＤのアクセス性能は、外周部がもっとも性能が良く、内周に行くほど性能が低下していく。このようなＨＤＤの特性は、ＨＤＤが同心円のシリンダに分割されたときに、そのシリンダにほぼ同一の線密度でデータが記録される為である。シリンダはセクタと呼ばれる単位に分割されており、また、ＨＤＤのセクタ管理は論理ブロックアドレス（ＬＢＡ（Logical Block Addressing））と呼ばれる通し番号のアドレスを用いて行われている。
【０００４】
図１は、ＨＤＤのアクセス対象領域による性能差の例を示す図である。図１においては、ＬＢＡは外周のセクタから順番に振られている。このとき、ＬＢＡが小さいエリアへのアクセスほど性能が良く、ＬＢＡが大きくなるほど性能が低下することが示されている。尚、ＨＤＤの内周部分と外周部分とでランダムアクセスの性能差はほとんど生じない。
【０００５】
一方、データのアクセスに関する技術として、以下の第１〜第３の技術がある。
第１の技術は、領域毎及び領域内で異なる書き込み速度を持つ補助記憶装置を有する画像形成装置に関するものである。第１の技術の画像形成装置は、補助記憶装置の各領域の書き込み速度をその補助記憶装置の評価時の実測値に基づいて設定する手段と、補助記憶装置に記憶されるデータ毎に必要な転送速度を設定するデータ転送速度設定手段とを有する。また第１の技術の画像形成装置は、設定された転送速度以上の書き込み速度に設定された領域をデータの記憶領域として割り当てるデータ記憶領域割り当て手段とを有する。
【０００６】
第２の技術は、挿抜可能な２台のディスク装置を、データを記録する媒体とする装置で行われるディスク装置の書き込み制御方法に関するものである。第２の技術の書き込み制御方法は、接続状態にある２台のディスク装置の容量および書き込み性能を検出し、２台のディスク装置の容量差および書き込み性能差がともに予め定められた範囲内であるかを確認する。また第２の技術の書き込み制御方法は、２台のディスク装置の容量差および書き込み性能差がともに予め定められた範囲内である場合に、一方のディスク装置は外周から内周に向けて書き込みを行う。そして第２の技術の書き込み制御方法は、他方のディスク装置は内周から外周に向けて書き込みを行うとともに、検出した書き込み性能の比に応じてデータを分割して書き込む。
【０００７】
第３の技術は、外周側トラックと、外周側トラックよりも少ないセクタ数を有する内周側トラックを有する２以上のディスクを備えるディスク処理装置に関するものである。第３の技術の装置は、２以上のディスクのうちの第１ディスクと第１ディスクと異なる第２ディスクに同一のデータを書き込む際に、第１ディスクの外周側トラックの少なくとも一部と、第２ディスクの内周側トラックの少なくとも一部とに同一データを書き込む。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−１２４１４２号公報
【特許文献２】特開２００８−９０４１４号公報
【特許文献３】特開平１０−３２０１３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数のディスクを用いてデータの冗長化を行う場合、冗長化された各ディスクにおいてデータが記録される位置が異なると、ディスク間で、冗長化されたデータに対するシーケンシャルアクセスの性能に差が生じる。この場合、システム全体のシーケンシャルアクセス性能は、性能が遅い方に律速されてしまう。従って、冗長化されたシステムにおいて、ディスク間でシーケンシャルアクセス性能に差がある場合には、システム全体として非効率になる。
【００１０】
しかしながら上記１〜３の技術はいずれも、複数のディスクへデータを冗長化して記録する場合に、冗長化されたディスク間のシーケンシャルアクセス性能の差については考慮されていない。
【００１１】
そこで、１つの側面では、本発明は、記憶装置間のシーケンシャルアクセス性能のばらつきを抑えることを目的とする。
【課題を解決するための手段】
【００１２】
一態様によるサーバ装置は、記憶部と格納処理部を含む。記憶部は、複数の記憶装置のそれぞれの所定の記憶領域毎に、記憶領域へのシーケンシャルアクセスの速度に関する速度情報を記憶する。格納処理部は、複数の記憶装置のいずれかへのアクセス要求により、複数の記憶装置のうち少なくとも２つの記憶装置を選択し、速度情報を用いて、選択した記憶装置の間で、記憶領域へのシーケンシャルアクセスの速度の差が所定の閾値以下である記憶領域を特定し、特定した記憶領域のそれぞれへデータを記憶させる。
【発明の効果】
【００１３】
一態様によれば、記憶装置間のシーケンシャルアクセス性能のばらつきを抑えることができる。
【図面の簡単な説明】
【００１４】
【図１】ＨＤＤのアクセス対象領域による性能差の例を示す図である。
【図２】サーバ装置の一実施例の構成を図解した機能ブロック図である。
【図３】実施形態に係るストレージシステムの構成の一例を示す。
【図４】クライアントからサーバに対して書込み要求が送信されるときの動作を説明する図である。
【図５】実施形態に係るサーバの構成の一例を示す。
【図６】実施形態１に係る性能情報の一例を示す。
【図７】実施形態１に係る性能管理情報の構成の一例を示す。
【図８】実施形態１に係る空き領域情報の構成の一例を示す。
【図９】実施形態１に係る空き領域管理情報の構成の一例を示す。
【図１０】実施形態１に係る書込み性能と読込み性能の測定処理の詳細を図解したフローチャートである。
【図１１】実施形態に係る、格納位置を決定するサーバについての書込み処理の詳細を図解したフローチャートである。
【図１２】実施形態に係る、格納位置を決定するサーバから書込み指示を受信して書込み処理を行うサーバの処理の詳細を図解したフローチャートである。
【図１３】実施形態に係る、格納位置の決定処理の詳細を図解したフローチャートである。
【図１４】実施形態に係るサーバのハードウェア構成の一例を示す。
【図１５】実施形態２に係るサーバの構成の一例を示す。
【図１６】実施形態２に係る性能情報の一例を示す。
【図１７】実施形態２に係る性能管理情報の構成の一例を示す。
【図１８】実施形態２に係る空き領域情報の構成の一例を示す。
【図１９】実施形態２に係る空き領域管理情報の構成の一例を示す。
【図２０】実施形態２に係る書込み性能と読込み性能の測定処理の詳細を図解したフローチャートである。
【発明を実施するための形態】
【００１５】
図２は、サーバ装置の一実施例の構成を図解した機能ブロック図である。図２において、サーバ装置１０は、記憶部１、格納処理部２、及び通知部３を含む。
【００１６】
記憶部１は、複数の記憶装置のそれぞれの所定の記憶領域毎に、記憶領域へのシーケンシャルアクセスの速度に関する速度情報を記憶する。
【００１７】
格納処理部２は、複数の記憶装置のいずれかへのアクセス要求により、複数の記憶装置のうち少なくとも２つの記憶装置を選択し、速度情報を用いて、選択した記憶装置の間で、記憶領域へのシーケンシャルアクセスの速度の差が所定の閾値以下である記憶領域を特定し、特定した記憶領域のそれぞれへデータを記憶させる。
【００１８】
また格納処理部２は、複数の記憶装置のいずれかへのアクセス要求により、複数の記憶装置の冗長度に応じて、複数の記憶装置のうち少なくとも２つの記憶装置を選択し、速度情報を用いて、選択した記憶装置の間で、記憶領域へのシーケンシャルアクセスの速度の差が所定の閾値以下である記憶領域を特定し、特定した記憶領域のそれぞれへ冗長化させるデータを記憶させる。
【００１９】
また格納処理部２が特定した記憶領域のそれぞれは、選択した記憶装置の間で、記憶領域へのシーケンシャルアクセスの速度の差が所定の閾値以下である記憶領域の組合せうち、速度が最も速い組合せの各記憶領域である。
【００２０】
また記憶部１は、複数の記憶装置のそれぞれの記憶領域毎の空き領域に関する情報を記憶する。
【００２１】
また格納処理部２は、空き領域に関する情報に基いて、データの書込みが可能な記憶領域を特定し、特定した記憶領域のうちの選択した記憶装置のそれぞれの記憶領域にデータを記憶させる。
【００２２】
通知部３は、格納処理部２が特定した記憶領域が他のサーバ装置１０が管理する記憶装置である場合、データを書き込むように他のサーバ装置１０へ通知する。
【００２３】
このようなサーバ装置１０は、冗長化を行うディスク間で、シーケンシャルアクセス速度の差が一定以内の領域を使用することにより、アクセスの速度差による性能低下を防ぐことができる。
【００２４】
図３は、実施形態に係るストレージシステムの構成の一例を示す。図３において、ストレージシステム２０は、クライアント２１（２１ａ、２１ｂ）、ネットワークスイッチ２２、サーバ２３（２３ａ、２３ｂ、２３ｃ）、及びディスク２４（２４ａ、２４ｂ、２４ｃ、２４ｄ）を含む。クライアント２１とネットワークスイッチ２２、及び、ネットワークスイッチ２２とサーバ２３は通信ネットワーク（以下、「ネットワーク」と称する）を介して接続される。サーバ２３とディスク２４は、ネットワークまたはバス等を介して接続される。サーバ２３ａ、２３ｂ、２３ｃは、例えばイーサネット（登録商標）等のネットワークまたはＰＣＩ（Peripheral Component Interconnect）  Ｅｘｐｒｅｓｓ等のバス、またはネットワーク等を介して互いに接続される。尚、クライアント２１、ネットワークスイッチ２２、サーバ２３、ディスク２４の各々の数は図３の例に限定されず、それぞれ１以上の所定の数であってもよい。また、１つのサーバ２３に対して、１以上の所定の数のディスク２４が接続されてもよい。ここで、サーバ２３は、サーバ装置１０の一例である。
【００２５】
クライアント２１は、ディスク２４に格納されたデータの読込み要求をサーバ２３へ送信し、要求したデータをサーバから受信する端末である。また、クライアント２１は、ディスク２４への書込み対象データを含む書込み要求をサーバ２３へ送信する。
【００２６】
ネットワークスイッチ２２は、クライアント２１とサーバ２３の間の通信を中継する中継装置である。またネットワークスイッチ２２は、サーバ２３ａ、２３ｂ、２３ｃの間の通信を中継する。
【００２７】
サーバ２３は、クライアント２１から送信された読込みまたは書込み要求に基づいて、ディスク２４に対するアクセス制御を行なう。サーバ２３は、クライアント２１から読込み要求を受信すると、読込み対象のデータをディスク２４から読み出して、クライアント２１へ送信する。またサーバ２３は、クライアント２１から書込み要求を受信すると、書込み対象のデータをディスク２４へ格納する。サーバ２３はそれぞれ、データを読み書きする１以上のディスク２４を管理し入出力を制御する。例えば、サーバ２３ａはディスク２４ａ、２４ｂを管理し、サーバ２３ｂはディスク２４ｃを管理し、サーバ２３ｃはディスク２４ｄを管理する。
【００２８】
ディスク２４は、クライアント２１から書込み要求のあった書込み対象のデータを記憶する。ディスク２４は、具体的には例えばＨＤＤである。
【００２９】
分散ストレージシステム２０では、クライアント２１から書込み要求のあった書込み対象のデータは、複数のディスク２４へ複製されて記憶される（冗長化される）。また、例えばＲＡＩＤ（Redundant Arrays of Inexpensive Disks）等のように、複数のディスク２４を組合せて、クライアント２１に対して論理的な１台のディスクのように認識させてもよい。
【００３０】
図４は、クライアント２１からサーバ２３に対して書込み要求が送信されるときの動作を説明する図である。
【００３１】
クライアント２１は、ディスク２４のいずれかに対してデータの書込みを行う場合、何れかのサーバ２３へ書込み要求を送信する。このとき、どのサーバ２３へ書込み要求を送信するかの決定は、例えば、予め設定されたサーバが宛先となるように決定してもよいし、冗長化を行うデータの名前から算出したハッシュ値に基いて宛先を決定してもよい。ハッシュ値は、例えば、ＭＤ５（Message Digest algorithm 5）やＳＨＡ（Secure Hash Algorithm）などハッシュ関数を用いて算出されてもよい。このようなハッシュ値を用いた宛先の決定方法の一例としては、コンシステントハッシング（Consistent hashing）がある。図４の例では、クライアント２１はサーバ２３ａに対して書込み要求を送信している。
【００３２】
クライアント２１からデータの書込み要求を受信した何れかのサーバ２３は、冗長化を行うディスクの各領域の性能差に基いて、書込み対象データを実際に格納するディスクと、そのディスクにおける領域を決定する。具体的には、サーバ２３は、互いにシーケンシャルアクセスの性能（速度）差が所定の閾値以内となる複数の領域の各々を、書込み対象データを格納する領域として決定する。この書込み対象データを格納する領域が自サーバの管理するディスクにある場合には、その領域へ書込み対象データを格納する。さらに、決定した書込み対象データを格納する領域が、他のサーバが管理するディスクにある場合には、そのサーバに対して、書込み対象データの書込み指示を行う。書込み指示を受信したサーバは、書込み対象データを指示された領域に格納する。
【００３３】
図４においては、サーバ２３ａは、書込み要求を受信すると、書込み対象データを格納する領域を決定する。図４の例では書込み対象データを格納する領域として、ディスク２４ａ（または２４ｂ）、２４ｃ、２４ｄが決定された例を示している。この場合サーバ２３ａは、サーバ２３ａが管理するディスク２４ａ（または２４ｂ）に書込み対象データの書き込みを行う。また、サーバ２３ａは、サーバ２３ｂ、２３ｃに対して、書込み対象データを書き込むように指示する。書込み指示を受信したサーバ２３ｂ、２３ｃは、それぞれ、ディスク２３ｂ、２３ｃの指示された領域へ書込み対象データを格納する。尚、図４においては、書込み指示はサーバ２３ａからサーバ２３ｂを介してサーバ２３ｃに送られているが、サーバ２３ｂを介さなくてもよい。
【００３４】
尚、読込み要求においても、書込み要求における動作と同様に、どのサーバ２３へ書込み要求を送信するかの決定を、クライアント２１は行うことができる。
【００３５】
（実施形態１）
クライアント２１からディスク２４へのアクセス（読み書き）方法には、スライスを指定して行う方法と、ファイルシステムを経由して行う方法がある。実施形態１では、クライアント２１がスライスを指定してアクセスを行う場合について説明する。尚、後ほど説明する実施形態２では、クライアント２１がファイルシステムを経由してアクセスを行う場合について説明する。
【００３６】
スライスを指定したアクセス方法では、具体的には、クライアント２１を使用するユーザは、直接アクセス対象の論理アドレスを指定することによりアクセスを行う。尚、実施形態１におけるスライスとは、ディスクにおける物理的に連続した所定の領域を指す。
【００３７】
図５は、実施形態１に係るサーバ２３の構成の一例を示す。サーバ２３は、記憶部３１、測定部３２、性能情報通信部３３、空き領域管理部３４、及び配置部３５を含む。記憶部３１は記憶部１の一例である。配置部３５は格納処理部２及び通知部３の一例である。
【００３８】
記憶部３１は、性能情報４１、性能管理情報４２、空き領域情報４３、及び空き領域管理情報４４を記憶する。また記憶部３１は、種々の閾値の情報を記憶する。それぞれの情報の詳細については、後ほど説明する。
【００３９】
測定部３２は、ディスク２４のシーケンシャルアクセス（シーケンシャル書込み、シーケンシャル読込み）の性能（速度）を測定する。この測定は、サーバ２３、及びサーバ２３が管理するディスク２４に対する初期化処理において行われる。具体的には測定部３２は、各ディスクにおける所定の領域毎のシーケンシャル書込み性能の速度差を測定する。また測定部３２は、各ディスクにおける所定の領域毎のシーケンシャル読込み性能の速度差を測定する。
【００４０】
ここで、シーケンシャル書込み性能は、単位時間当たりにシーケンシャル書込みが行われるデータのサイズにより示される。シーケンシャル読込み性能は、単位時間当たりにシーケンシャル読込みが行われるデータのサイズにより示される。以下の説明では、シーケンシャル書込み性能、シーケンシャル読込み性能は、それぞれ単に、書込み性能、読込み性能と記す。また、書込み性能、読込み性能、もしくは、書込み性能及び読込み性能を指して、単に性能と記す場合がある。
【００４１】
測定部３２は具体的には、先ず、各々のサーバ２３が管理するすべてのディスクについて、ディスクの先頭部分から末尾までシーケンシャルにデータを書き込みながら、スライス毎の書込み性能を測定する。スライス毎の書込み性能は、例えば、各スライスにおける書込み性能の平均値で示される。
【００４２】
次に測定部３２は、ディスクの先頭部分から末尾までシーケンシャルにデータを読み込みながら、スライス毎の読込み性能を測定する。スライス毎の読込み性能は、例えば、各スライスにおける読込み性能の平均値で示される。尚、書込みと読込みの性能測定の手順は逆にしても良い。また、書込み性能及び読込み性能の測定は、例えばＯＳ（Operating System）の機能などにより実現できる。
【００４３】
そして測定部３２は、測定した読込み性能と書込み性能を、記憶部３１に記憶された性能情報４１に記録する。性能情報４１には、各ディスクのスライス毎に、測定した書込み性能と読込み性能を示す値が対応付けて記録される。
【００４４】
図６は、実施形態１に係る性能情報４１の一例を示す。図６において、性能情報４１は、「ディスク識別子」、「スライス識別子」、「書込み性能」、及び「読込み性能」のデータ項目を対応付けて記憶する。「ディスク識別子」は、サーバ２３が管理するディスクの識別情報である。「スライス識別子」は、対応する「ディスク識別子」のディスクにおけるスライスを一意に識別するための識別情報である。「書込み性能」は、対応する「ディスク識別子」のディスクにおける「スライス識別子」のスライスに対する書込み性能を示す値であり、対応するスライスにおける書込み性能の平均値である。「読込み性能」は、対応する「ディスク識別子」のディスクにおける「スライス識別子」のスライスに対する読込み性能を示す値であり、対応するスライスにおける読込み性能の平均値である。
【００４５】
図６では、例えば、「ディスク識別子」が「0」で示されるディスクにおける「スライス識別子」が「0」で示されるスライスは、書込み性能が「130MiB/Sec」であり、読込み性能が「130MiB/Sec」であることが示されている。
【００４６】
性能情報通信部３３は、測定部３２により測定された性能情報４１を、冗長化された全てのサーバ間で共有するための機能を提供する。図３の例では、サーバ２３ａ、２３ｂ、２３ｃの間で性能情報４１を共有するための機能を性能情報通信部３３は提供する。
【００４７】
具体的には性能情報通信部３３は、自サーバが管理するディスクの性能情報４１を、冗長化された他のすべてのサーバへ送信する。すなわち、例えばサーバ２３ａは、サーバ２３ａが管理するディスク２４ａ、２４ｂの性能情報４１を、サーバ２３ｂ、２３ｃへ送信する。
【００４８】
また性能情報通信部３３は、冗長化された他のすべてのサーバが管理するディスクの性能情報４１を受信する。すなわち、例えばサーバ２３ａは、サーバ２３ｂからディスク２４ｃの性能情報４１を受信し、サーバ２３ｃからディスク２４ｄの性能情報４１を受信する。
【００４９】
そして性能情報通信部３３は、受信した性能情報４１を、性能管理情報４２に記録する。性能管理情報４２は、冗長化された全てのサーバの性能情報４１が記録されるものであり、サーバの識別子と、そのサーバで測定された性能情報４１とが対応付けて記録される。例えば性能情報通信部３３は、受信した性能情報４１と、その性能情報４１の送信元のサーバのＭＡＣアドレス（Media Access Control）とを対応付けて記録してもよい。
【００５０】
図７は、実施形態１に係る性能管理情報４２の構成の一例を示す。性能管理情報４２は、「サーバ識別子」、「ディスク識別子」、「スライス識別子」、「書込み性能」、及び「読込み性能」のデータ項目を対応付けて記憶する。「サーバ識別子」は、サーバを一意に識別するための識別情報である。「ディスク識別子」、「スライス識別子」、「書込み性能」、及び「読込み性能」のデータ項目は、図６で説明した性能情報４１のデータ項目と同様であり、これらのデータ項目の組合せは、対応する「サーバ識別子」のサーバで測定された性能情報４１である。
【００５１】
空き領域管理部３４は、サーバが管理する各ディスクの空き領域の状態を示す情報を管理する。すなわち空き領域管理部３４は、サーバが管理する各ディスクの所定の領域毎に、空き領域があるか否かを示す情報を、空き領域情報４３に記録する。また空き領域管理部３４は、所定の領域に対してデータの書込みまたは削除が行われた場合に、書込みまたは削除後の所定の領域の空き領域の状態を、空き領域情報４３に反映する。
【００５２】
具体的には、空き領域情報４３は各ディスクのスライス毎に、スライスが割当済みか否かを示す情報を対応付けて記憶する。
【００５３】
図８は、実施形態１に係る空き領域情報４３の構成の一例を示す。図８において空き領域情報４３は、「ディスク識別子」、「スライス識別子」、及び「割当済みか否か」のデータ項目を対応付けて記憶する。「ディスク識別子」は、サーバが管理するディスクの識別情報である。「スライス識別子」は、対応する「ディスク識別子」のディスクにおけるスライスを一意に識別するための識別情報である。「割当済みか否か」は、対応する「ディスク識別子」のディスクの「スライス識別子」のスライスが割当済みか否かを示す情報である。ここで、スライスが割り当て済みとは、スライスに、クライアント２１からの書込まれたデータが記憶された状態であることを示す。
【００５４】
図８では、例えば、「ディスク識別子」が「0」で示されるディスクにおける「スライス識別子」が「0」で示されるスライスは、割当済みであることが示されている。
【００５５】
また空き領域管理部３４は、各サーバの空き領域情報４３を冗長化された全てのサーバ間で共有するための機能を提供する。すなわち空き領域管理部３４は、冗長化された他のすべてのサーバが管理するディスクの空き領域情報４３を収集する。
【００５６】
空き領域情報４３の収集においては、具体的には空き領域管理部３４は、空き領域情報４３の取得要求を冗長化された全てのサーバへ送信し、その応答として、各サーバの空き領域情報４３を受信する。例えばサーバ２３ａは、サーバ２３ｂ、２３ｃに対して空き領域情報４３の要求を送信し、その応答として、サーバ２３ｂからディスク２４ｃの空き領域情報４３を取得し、またサーバ２３ｃからディスク２４ｄの空き領域情報４３を取得する。
【００５７】
また、他のサーバから空き領域情報４３の要求を受信すると、空き領域管理部３４は、自サーバの空き領域情報４３を、空き領域情報４３の要求元のサーバへ送信する。例えば、サーバ２３ａから空き領域情報４３の要求を受信すると、サーバ２３ｂは、ディスク２４ｃの空き領域情報４３をサーバ２３ａに送信する。
【００５８】
空き領域管理部３４は、受信した空き領域情報４３を、空き領域管理情報４４に記録する。空き領域管理情報４４は、冗長化された全てのサーバの空き領域情報４３が記録されるものであり、サーバの識別子と、そのサーバが管理するディスクの空き領域情報４３とが対応付けて記憶される。例えば空き領域管理部３４は、受信した空き領域情報４３と、その空き領域情報４３の送信元のサーバのＭＡＣアドレスとを対応付けて記録してもよい。
【００５９】
図９は、実施形態１に係る空き領域管理情報４４の構成の一例を示す。空き領域管理情報４４は、「サーバ識別子」、「ディスク識別子」、「スライス識別子」、及び「割当済みか否か」のデータ項目を対応付けて記憶する。「サーバ識別子」は、サーバを一意に識別するための識別情報である。「ディスク識別子」、「スライス識別子」、及び「割当済みか否か」のデータ項目の組合せは、図８で説明した空き領域情報４３であって、対応する「サーバ識別子」のサーバが管理するディスクの空き領域情報４３である。
【００６０】
配置部３５は、クライアント２１から書込み要求を受信すると、書込み対象データを格納する領域を決定する決定処理を行い、決定した領域に書込み対象データを格納する格納処理を行う。
【００６１】
決定処理は、書込み対象データを格納するディスクと、そのディスクにおいてデータを格納する領域を決定する処理である。ここで、データが格納されるディスクは、冗長度の数だけ決定されてもよい。またデータを格納する領域の決定は、領域の空き容量と冗長化したデータを格納する領域同士の性能差に基いて行われる。
【００６２】
決定処理において配置部３５は先ず、書込み対象データを格納するディスク（説明のために、対象ディスクと記す）を決定する。書込み対象データを格納する対象ディスクの数は、冗長度と同数となる。すなわち対象ディスクの数は複数となりうる。対象ディスクの決定は、例えば、異なるサーバが管理するディスクを選択する等、種々の基準に基いて行われてもよい。尚、対象ディスクは、書込み要求においてユーザから指定されてもよい。また冗長度は、予め設定されて記憶部３１に格納されていてもよいし、ユーザにより指定されてもよい。
【００６３】
決定処理において、配置部３５はまた、空き領域管理情報４４を用いて、書込み対象データの格納が可能な領域（以下、書込み可能領域と記す）を特定する。ここでの書込み可能領域は、書込み対象データの格納が可能なサイズの空き領域を有する領域を指す。実施形態１においては、書込み可能領域は、書込み対象データの格納が可能なスライス（以下、書込み可能スライスと記す）を指す。
【００６４】
具体的には例えば配置部３５は、空き領域管理情報４４の「割当済みか否か」の値が、割り当て済みでないことを示す行を抽出することによって、書込み可能スライスを特定する。
【００６５】
尚、対象ディスクの選択は、書込み可能領域の特定後に行われてもよい。その場合、配置部３５は、特定した何れかの書込み可能領域を含むディスクの集合から、冗長度と同数のディスクを選択する。このようにすることで配置部３５は、対象ディスクとして、少なくとも１つの書込み可能領域を有するディスクを選択することができる。
【００６６】
次に配置部３５は、対象ディスクの各々から１つずつ書込み可能領域を選択して、書込み可能領域の組合せを生成する。ただし配置部３５は、この書込み可能領域の組合せを、各領域の性能が一定以内となるように領域を選択して生成する。
【００６７】
尚、性能が一定以内となるような書込み可能領域の組合せは複数存在する場合がある。その場合、配置部３５は、所定の基準に従って１つの組合せを選択する。所定の基準は種々のものが考えられる。ここでは配置部３５が、組合せのうちの１つの書込み可能領域の性能が最も高い組合せを選択する例と、組合せの全ての書込み可能領域の性能が所定の閾値以上であって、分散が最も小さい組合せを選択する例について説明する。
【００６８】
先ず、組合せのうちの１つの書込み可能領域の性能が最も高い組合せを選択する場合について説明する。例えば配置部３５は先ず、対象ディスクのうちの所定のディスク（説明のためにディスクＸと記す）について、そのディスクの書込み可能スライスのうち、最も性能が高いスライス（説明のためにスライスｘと記す）を、性能管理情報４２を参照して選択する。性能が高いスライスの選択は、具体的には例えば配置部３５は、性能管理情報４２において、「書込み性能」と「読込み性能」の和が最も高いスライスを選択する。尚、ここでは「書込み性能」と「読込み性能」の両方を考慮する構成としたが、どちらか一方のみを考慮する構成としてもよい。
【００６９】
次にディスクＸ以外の対象ディスクの各々の、書込み可能スライスから、スライスｘと性能が所定の閾値以内であって、最も性能が高いスライスを、配置部３５は性能管理情報４２を参照して特定する。具体的には例えば、配置部３５はディスクＸ以外の対象ディスクの各々について以下の処理を行う。すなわち配置部３５は、先ず、書込み可能スライスのうち、性能情報４２のスライスｘの「書込み性能」、「読込み性能」の値との「書込み性能」、「読込み性能」の値の差分がそれぞれ所定の閾値以内であるスライスを抽出する。そして、抽出したスライスのうち、最も「書込み性能」と「読込み性能」の値の和が大きいスライスを、配置部３５は特定する。尚、ここでは「書込み性能」と「読込み性能」の両方を考慮する構成としたが、どちらか一方のみを考慮する構成としてもよい。
【００７０】
次に配置部３５は、ディスクＸ以外の対象ディスクの各々について特定したスライスと、スライスｘとを、性能が一定以内となる書込み可能スライスの組合せとして生成する。そして配置部３５は、生成した組合せに含まれるスライスを、書込み対象データを格納する領域として決定する。
【００７１】
スライスｘを含む組合せで、性能が一定以内となる組合せが存在しない場合は、配置部３５は、ディスクＸの書込み可能スライスのうち、スライスｘの次に性能が高いスライスを選択して、同様に性能が一定以内のスライスの組合せを生成する処理を行う。
【００７２】
このように、組合せのうちの１つの書込み可能領域の性能が最も高い組合せを選択する場合、シーケンシャル性能が高い領域にシーケンシャルデータを書き込むこととなるので、シーケンシャルアクセスの性能を向上させることができる。すなわち、ランダムアクセスによる書込みデータを性能が低い領域に書込み、シーケンシャルアクセスによる書込みデータを性能が高い領域に書き込むことで、システム全体のアクセス性能を向上させることができる。またこの場合、性能が高い順に性能が一定以内となる組合せが存在するか否かを判定していくため、性能の差分を算出する処理は、全ての組合せに対して行わなくてもよく、計算量を削減できる。
【００７３】
次に、組合せの全てのスライスの性能が所定の閾値以上であって、分散が最も小さい組合せを選択する場合について説明する。スライスの性能に関する所定の閾値は、クライアント２１からの書込み要求に含まれてもよいし、予め記憶部３１に記憶されていてもよい。
【００７４】
例えば配置部３５は先ず、性能管理情報４２を参照して、対象ディスクの各々における書込み可能スライスの集合のうちから、それぞれ１つずつ性能が所定の閾値以上のスライスを選択して、スライスの組合せを生成する。このスライスの組合せは、全ての可能な組合せについて生成される。
【００７５】
次に配置部３５は、性能管理情報４２を参照して、生成したスライスの組合せ毎に、各スライスの書込み性能を示す値の分散、及び読込み性能を示す値の分散を算出する。そして配置部３５は、算出した書込み性能の分散と読込み性能の分散の和が、最も小さい組合せを特定する。そして配置部３５は、生成した組合せに含まれるスライスを、書込み対象データを格納する領域として決定する。
【００７６】
このように、分散が最も小さい組合せを選択することにより、ディスク間の性能差が最も小さくなるため、効率的なディスクレイアウトを実現できる。ここでは、書込み性能と読込み性能の分散の和が最も小さい組合せを特定したが、例えば、書込み性能または読込み性能の分散の値が最も小さい組合せを、書込み対象データを格納する領域として決定してもよい。この場合は、書込み性能または読込み性能の差が最も小さいスライスの組合せに、書込み対象データを格納することができる。また例えば、書込み性能の平均、読込み性能の平均、もしくは、書込み性能と読込み性能の平均の和が最も大きい組合せを、書込み対象データを格納する領域として決定してもよい。この場合は、書込み性能または読込み性能の平均が最も大きいスライスの組合せに、書込み対象データを格納することができる。また例えば、分散が所定の閾値以内の組合せのいずれか、または、分散が所定の閾値以内であって性能が最も高い組合せを、配置部３５は、書込み対象データを格納する領域として決定してもよい。
【００７７】
ここで、対象ディスクについて、各スライスの性能差が一定以内である組合せが存在しない場合、配置部３５は、新たに別の対象ディスクを選択し直して、決定処理を同様に行う。いずれの対象ディスクについても、各領域の性能が一定以内となるような書込み可能領域の組合せが存在しない場合は、配置部は、各スライスの性能差を考慮せずに、書込み可能スライスを、書込み対象データを格納する領域として決定する。
【００７８】
尚、配置部３５は、ディスクの各々から１つずつ領域を選択して生成する領域の組合せであって、各領域の性能差が一定以内の組合せを先に特定してから、冗長度と同数の領域を選択することにより、書込み対象データを格納する領域の組合せを決定してもよい。
【００７９】
以上のようにして書込み対象データを格納する領域を決定すると、配置部３５は、決定した各領域に対して書込み対象データの格納処理を行う。尚、書込み対象データを格納する領域として決定された各領域には、冗長化のためにサーバ２３により複製された同一の書込み対象データが格納される。
【００８０】
格納処理において配置部３５は、決定した領域を含むディスクを他サーバが管理する場合、決定した領域を含むディスクを管理するサーバへ、書込み対象データを格納する領域を示す格納位置情報と書込み対象データとを含む書込みの指示を送信する。
【００８１】
配置部３５は、書込み位置を示す情報と書込み対象データを含む書込み指示を他サーバから受信すると、受信した指示に含まれる書込み位置に書込み対象データを格納する。
【００８２】
次に、書込み性能と読込み性能の測定の動作フローについて説明する。図１０は、書込み性能と読込み性能の測定処理の詳細を図解したフローチャートである。
【００８３】
図１０において先ず、測定部３２は、自サーバ（図１０のフローを実行するサーバ）が管理するディスクのうちから１つのディスクを選択する（Ｓ１０１）。
【００８４】
次に測定部３２は、Ｓ１０１で選択したディスクの先頭から末尾までシーケンシャルにデータを書き込みながら書込み性能を測定し、測定の結果を性能情報４１に記録する（Ｓ１０２）。
【００８５】
次に測定部３２は、Ｓ１０１で選択したディスクの先頭から末尾までシーケンシャルにデータを読み込みながら読込み性能を測定し、測定の結果を性能情報４１に記録する（Ｓ１０３）。尚、Ｓ１０２とＳ１０３は順番が逆でもよい。
【００８６】
次に測定部３２は、自サーバが管理するディスクのうちの全てのディスクをＳ１０１において選択したか否かを判定する（Ｓ１０４）。自サーバが管理するディスクのうちの何れかのディスクが、Ｓ１０１で未だ選択されていないと判定された場合（Ｓ１０４でＮｏ）、処理はＳ１０１に遷移し、測定部３２は、未だ選択していないディスクのうちから１つのディスクを選択する（Ｓ１０１）。
【００８７】
自サーバが管理するディスクの全てのディスクがＳ１０１で選択されたと判定した場合（Ｓ１０４でＹｅｓ）、性能情報通信部３３は、Ｓ１０２及びＳ１０３で記録した性能情報４１を、冗長化を行うディスクを管理する他の全てのサーバへ送信する（Ｓ１０５）。
【００８８】
次に性能情報通信部３３は、冗長化を行う他のディスクの性能情報４１を、そのディスクを管理するサーバから受信して、性能管理情報４２に格納する（Ｓ１０６）。尚、Ｓ１０６の処理は、冗長化を行う他のサーバの初期化処理において、Ｓ１０５で送信される性能情報４１を受信する処理である。よってこの処理は、図１０のフローの所定のタイミングで行われればよく、特に実行の順序は限定されない。そして、処理は終了する。
【００８９】
次に、書込み処理において、格納位置を決定するサーバの動作フローについて説明する。図１１は、実施形態に係る、格納位置を決定するサーバについての書込み処理の詳細を図解したフローチャートである。
【００９０】
図１１において先ず、配置部３５は、クライアント２１から書込み要求を受信する（Ｓ２０１）。尚、ここでは格納位置を決定するサーバが書込み要求を受信するものとして説明するが、書込み要求を受信するサーバと格納位置を決定するサーバは異なっていてもよい。その場合、Ｓ２０１は、書込み要求を受信したサーバから書込み要求を受信した旨の情報を受信する動作となる。この書込み要求を受信した旨の情報には、書込み対象データのサイズを示す情報が含まれるものとする。
【００９１】
次に空き領域管理部３４は、冗長化された他のすべてのサーバ（図１１のフローを実行しているサーバとは異なるサーバ）が管理するディスクの空き領域情報４３を収集して、空き領域管理情報４４に格納する（Ｓ２０２）。すなわち空き領域管理部３４は、空き領域情報４３の取得要求を冗長化された他の全てのサーバへ送信し、その応答として、各サーバが管理するディスクの空き領域情報４３を受信する。そして受信した空き領域情報４３の内容を、空き領域管理部３４は、空き領域管理情報４４に反映する。
【００９２】
次に、配置部３５は、書込み要求の書込み対象データを格納する領域の決定処理を実行する（Ｓ２０３）。決定処理の詳細については、後ほど図１３を参照して説明する。
【００９３】
次に配置部３５は、Ｓ２０３の決定処理で決定した領域に、他のサーバが管理するディスクの領域が含まれている場合、その領域を含むディスクを管理するサーバへ、書込み指示を送信する（Ｓ２０４）。書込み指示には、書込み対象データと、そのデータを格納する領域を示す格納位置情報と、が含まれる。書込み指示を受信したサーバは、書込み指示に含まれる格納位置情報により示される領域に、書込み対象データを格納する。
【００９４】
次に配置部３５は、Ｓ２０３の決定処理で決定した領域のうちの、自サーバ（図１１のフローを実行しているサーバ）が管理するディスクの領域へ、書込み対象データを格納する（Ｓ２０５）。
【００９５】
次に空き領域管理部３４は、Ｓ２０５で書込み対象データを格納した領域に対する空き領域情報４３を更新する（Ｓ２０６）。そして処理は終了する。
【００９６】
次に、書込み処理において、格納位置を決定するサーバから書込み指示を受信して、書込み処理を行うサーバの動作フローについて説明する。図１２は、実施形態に係る、格納位置を決定するサーバから書込み指示を受信して書込み処理を行うサーバの処理の詳細を図解したフローチャートである。
【００９７】
図１２において先ず、空き領域管理部３４は、格納位置を決定するサーバから、空き領域情報４３の取得要求を受信する（Ｓ３０１）。
【００９８】
次に空き領域管理部３４は、自サーバ（図１２のフローを実行するサーバ）が管理するディスクの空き領域情報４３を、空き領域情報４３の要求元のサーバへ送信する（Ｓ３０２）。
【００９９】
次に配置部３５は、格納位置を決定するサーバから、書込み対象データと格納位置情報とが含まれる書込み指示を受信する（Ｓ３０３）。
【０１００】
次に配置部３５は、書込み指示に含まれる格納位置情報により示される領域に、書込み対象データを格納する（Ｓ３０４）
次に空き領域管理部３４は、Ｓ３０２で書込み対象データを格納した領域に対する空き領域情報４３を更新する（Ｓ３０５）。そして処理は終了する。
【０１０１】
次に、図１１のＳ２０３で実行される、格納位置の決定処理の詳細の動作フローについて説明する。図１３は、実施形態に係る、格納位置の決定処理の詳細を図解したフローチャートである。尚、実施形態１において図１３の「領域」は、具体的には「スライス」を指す。
【０１０２】
図１３において、先ず配置部３５は、冗長度と同数の、書込み対象データを格納する対象ディスクを選択する（Ｓ４０１）。尚、ここで選択する対象ディスクの中には、自サーバ（図１３のフローを実行するサーバ）が管理するディスクが含まれるものとして説明するが、含まれなくてもよい。また、対象ディスクとして選択されるディスクの情報は、予め設定されて記憶部３１に記憶されていてもよいし、ユーザから受信する書込み要求に含まれていてもよいし、他のサーバにより選択された情報を受信してもよい。その場合Ｓ４０１は省略できる。
【０１０３】
次に配置部３５は、Ｓ４０１で選択した対象ディスクのうちの１つのディスク（例えば自サーバが管理する１つの対象ディスク）の領域のうち、最も性能が高く、且つ書込みデータを格納可能な領域を１つ抽出する（Ｓ４０２）。ここで抽出した領域を含むディスクを、説明のために注目ディスクと記す。尚、配置部３５は、空き領域管理情報４４を参照して、書込みデータを格納可能な領域を特定する。また配置部３５は、性能管理情報４２を参照して、対象ディスクの領域の性能が高い順番を特定する。また、ここでの性能とは、上述したように、書込み性能と読込み性能のいずれか又は両方を指す。
【０１０４】
次に配置部３５は、注目ディスク以外の各対象ディスクに、抽出した領域と性能差が所定の閾値以内で、且つ書込み対象データを格納可能な領域（書込み可能領域）が存在するか否かを判定する（Ｓ４０３）。具体的には配置部３５は、空き領域管理情報４４と性能管理情報４２を用いて、注目ディスク以外の各対象ディスクに、書込み可能領域であって、Ｓ４０２で抽出した領域に対する性能差が所定の閾値以内の領域が存在するか否かを判定する。ここで配置部３５は、空き領域管理情報４４を参照することにより、各対象ディスクについての書込み可能領域を特定することができる。また配置部３５は、性能管理情報４２を参照することにより、Ｓ４０３で抽出した領域と性能が所定の閾値以内の領域を特定することができる。
【０１０５】
Ｓ４０３において、抽出した領域との性能差が所定の閾値以内の書込み可能領域が、注目ディスク以外の各対象ディスクに存在すると判定した場合（Ｓ４０３でＹｅｓ）、配置部３５は以下の処理を行う。すなわち、配置部３５は、Ｓ４０２で抽出した領域と、その抽出した領域との性能差が一定以内の各対象ディスクの書込み可能領域の組合せを、書込みデータを格納する領域の組合せ（書込み位置）として決定する（Ｓ４０４）。具体的には、先ず配置部３５は、注目ディスク以外の対象ディスクの各々について、Ｓ４０２で抽出した領域と性能差が一定以内の書込み可能領域を特定する。ここで特定した領域が各々のディスクについて複数存在する場合は、そのうちの１つを選択する。例えば配置部３５は、複数の領域のうちの、最も性能の高い領域を１つ選択してもよいし、Ｓ４０２で抽出した領域に対して最も性能差が小さい領域を１つ選択してもよい。このように注目ディスク以外の各対象ディスクについて１つずつ選択した領域と、Ｓ４０２で抽出した領域と、の組合せを、書込み対象データを格納する書込み位置の領域の組合せとして決定する。そして処理は終了する。
【０１０６】
Ｓ４０３において、抽出した領域との性能差が所定の閾値以内の書込み可能領域が、注目ディスク以外の何れかの対象ディスクに存在しないと判定した場合（Ｓ４０３でＮｏ）、配置部３５は以下の処理を行う。すなわち、配置部３５は、注目ディスクについて、全ての書込み可能領域をＳ４０２で抽出済みか否かを判定する（Ｓ４０５）。
【０１０７】
自サーバが管理する対象ディスクについて、何れかの書込み可能領域がＳ４０２で未だ抽出されていないと判定された場合（Ｓ４０５でＮｏ）、処理はＳ４０２に遷移する。そして再度Ｓ４０２において、配置部３５は、未抽出の領域のうち、性能が最も高い書込み可能領域を抽出する（Ｓ４０２）。
【０１０８】
Ｓ４０５において、注目ディスクについて、全ての書込み可能領域をＳ４０２で抽出済みであると判定した場合（Ｓ４０５でＹｅｓ）、処理はＳ４０６に遷移する。
【０１０９】
次に配置部３５は、選択可能な全ての対象ディスクの組合せをＳ４０１で選択済みか否かを判定する（Ｓ４０６）。対象ディスクとして選択可能な何れかのディスクの組合せがまだ選択されていないと判定された場合（Ｓ４０６でＮｏ）、処理はＳ４０１に遷移する。そして再度Ｓ４０１において、配置部３５は、冗長度と同数の対象ディスクを選択する。ここで選択される対象ディスクの組合せは、未選択の組合せである。
【０１１０】
Ｓ４０６において、選択可能な全ての対象ディスクの組合せをＳ４０１で選択済みであると判定した場合（Ｓ４０６でＹｅｓ）、処理はＳ４０７に遷移する。
【０１１１】
次に配置部３５は、書込み可能領域の所定の組合せを、書き込み対象データを格納する書込み位置の領域の組合せとして決定する（Ｓ４０７）。Ｓ４０７における書込み位置の領域の組合せの選択では、配置部３５は各領域の性能差については考慮しない。そして処理は終了する。
【０１１２】
次に、サーバのハードウェア構成について説明する。図１４は、実施形態に係るサーバのハードウェア構成の一例を示す。
【０１１３】
図１４において、サーバ２３は、ＣＰＵ（Central Processing Unit）６０１、メモリ６０２、読取装置６０３、及び通信インターフェース６０４を含む。ＣＰＵ６０１、メモリ６０２、読取装置６０３、及び通信インターフェース６０４はバスを介して接続される。また、サーバ２３は、ネットワークまたはバスを介して１以上の記憶装置６０５に接続される。尚、記憶装置６０５は、サーバ２３に含まれてもよい。
【０１１４】
ＣＰＵ６０１は、メモリ６０２を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、測定部３２、性能情報通信部３３、空き領域管理部３４、及び配置部３５の一部または全部の機能を提供する。
【０１１５】
メモリ６０２は、例えば半導体メモリであり、ＲＡＭ（Random Access Memory）領域およびＲＯＭ（Read Only Memory）領域を含んで構成される。メモリ６０２は記憶部３１の一部または全部の機能を提供する。
【０１１６】
読取装置６０３は、ＣＰＵ６０１の指示に従って着脱可能記憶媒体６５０にアクセスする。着脱可能記憶媒体６５０は、たとえば、半導体デバイス（ＵＳＢメモリ等）、磁気的作用により情報が入出力される媒体（磁気ディスク等）、光学的作用により情報が入出力される媒体（ＣＤ−ＲＯＭ、ＤＶＤ等）などにより実現される。尚、読取装置６０３はサーバ２３に含まれなくてもよい。
【０１１７】
通信インターフェース６０４は、ＣＰＵ６０１の指示に従ってネットワークを介してクライアント２１、他のサーバ２３、記憶装置６０５と通信を行う。
【０１１８】
実施形態のプログラムは、例えば、下記の形態でサーバ２３に提供される。
（１）メモリ６０２に予めインストールされている。
（２）着脱可能記憶媒体６５０により提供される。
（３）プログラムサーバ（図示せず）から通信インターフェース６０４を介して提供される。
【０１１９】
記憶装置６０５は、例えばハードディスクである。記憶装置６０５は、ディスク２４の一例である。
【０１２０】
さらに、実施形態のサーバ２３の一部は、ハードウェアで実現してもよい。或いは、実施形態のサーバ２３は、ソフトウェアおよびハードウェアの組合せで実現してもよい。
【０１２１】
（実施形態２）
クライアント２１からディスク２４へのアクセス（読み書き）方法には、スライスを指定して行う方法と、ファイルシステムを経由して行う方法がある。実施形態１では、クライアント２１からのアクセスが、スライスを指定して行われる場合について説明したが、実施形態２では、クライアント２１からのアクセスがファイルシステムを経由して行われる場合について説明する。
【０１２２】
ファイルシステムとはディスクに記憶されているデータを管理・操作するための仕組みである。ファイルシステムは、例えば、ファイルやフォルダ(ディレクトリ)の作成、削除、移動の方法や、ディスクにデータを記録する方式、管理領域の場所や利用方法などを定めている。実施形態２では、例えば、複数のクライアント２１が、ネットワークを介して、ディスク２４のファイルを共有しつつアクセスが可能な分散ファイルシステムが用いられてもよい。
【０１２３】
クライアント２１は、ディスクの記憶領域を論理的に分割して利用する。このディスクの記憶領域が分割された個々の領域はパーティションである。個々のパーティションには異なるファイルシステムが作成されてもよい。
【０１２４】
尚、実施形態２においては、データのアクセス、書込み、読込みは、ファイルシステムを経由するものを指すものとする。
【０１２５】
図１５は、実施形態２に係るサーバ２３の構成の一例を示す。サーバ２３は、記憶部５１、測定部５２、性能情報通信部５３、空き領域管理部５４、及び配置部５５を含む。記憶部５１は記憶部１の一例である。配置部５５は格納処理部２及び通知部３の一例である。
【０１２６】
記憶部５１は、性能情報６１、性能管理情報６２、空き領域情報６３、及び空き領域管理情報６４を記憶する。それぞれの情報の詳細については、後ほど説明する。
【０１２７】
測定部５２は、サーバ２３、及びサーバ２３が管理するディスク２４に対する初期化処理において、シーケンシャルアクセスの性能を測定する。すなわち測定部５２は、各ディスクにおける所定の領域毎のシーケンシャル書込み性能の速度差を測定する。また測定部５２は、各ディスクにおける所定の領域毎のシーケンシャル読込み性能の速度差を測定する。
【０１２８】
具体的には測定部５２は、先ず、サーバがストレージとして使用するすべてのディスクの全てのパーティションの各々に空のファイルを作成する。次に測定部５２は、作成した各ファイルにデータを順次書き込みながら書込み性能を測定する。このファイルへのデータの書込み及び書込み性能の測定を、測定部５２は、ファイル自体の大きさにより、パーティションにファイルが格納できなくなるまで行う。例えば測定部５２は、書込み及び書込み性能の測定を、ファイルのサイズがパーティションのサイズに達するまで行う。
【０１２９】
次に測定部５２は、ファイルの先頭部分から末尾までシーケンシャルにデータを読み込みながら、読込み性能を測定する。
【０１３０】
そして測定部５２は、測定した書込み性能と読込み性能を、記憶部５１に記憶された性能情報６１に記録する。性能情報６１には、各ディスクのパーティション毎に、測定した書込み性能と読込み性能を示す値が対応付けて記録される。
【０１３１】
図１６は、実施形態２に係る性能情報６１の一例を示す。図１６において、性能情報６１は、「ディスク識別子」、「パーティション識別子」、「書込み性能」、及び「読込み性能」のデータ項目を対応付けて記憶する。「ディスク識別子」は、サーバが管理するディスクの識別情報である。「パーティション識別子」は、対応する「ディスク識別子」のディスクにおけるパーティションを一意に識別するための識別情報である。「書込み性能」は、対応する「ディスク識別子」のディスクにおける「パーティション識別子」のパーティションに対する書込み性能を示す値であり、対応するパーティションにおける書込み性能の平均値である。「読込み性能」は、対応する「ディスク識別子」のディスクにおける「パーティション識別子」のパーティションに対する読込み性能を示す値であり、対応するパーティションにおける読込み性能の平均値である。
【０１３２】
図１６では、例えば、「ディスク識別子」が「0」で示されるディスクにおける「パーティション識別子」が「0」で示されるパーティションは、書込み性能が「130MiB/Sec」であり、読込み性能が「130MiB/Sec」であることが示されている。
【０１３３】
性能情報通信部５３は、実施形態１の性能情報通信部３３と同様の動作を行う。ただし、通信される情報は性能情報６１である。それに伴い、性能管理情報６２はサーバの識別子と、そのサーバで測定された性能情報６１とを対応付けて記憶する。
【０１３４】
図１７は、実施形態２に係る性能管理情報６２の構成の一例を示す。図１７において、性能管理情報６２は、「サーバ識別子」、「ディスク識別子」、「パーティション識別子」、「書込み性能」、及び「読込み性能」のデータ項目を対応付けて記憶する。「サーバ識別子」は、サーバを一意に識別するための識別情報である。「ディスク識別子」、「パーティション識別子」、「書込み性能」、及び「読込み性能」のデータ項目は、図１６で説明した性能情報６１のデータ項目と同様であり、これらのデータ項目の組合せは、対応する「サーバ識別子」のサーバで測定された性能情報６１である。
【０１３５】
空き領域管理部５４は、実施形態１の空き領域管理部３４と同様に、サーバが管理する各ディスクの空き領域の状態を示す情報を管理する。すなわち空き領域管理部５４は、サーバが管理する各ディスクの所定の領域毎の空き領域のサイズ示す情報を、空き領域情報６３に記録する。また空き領域管理部５４は、所定の領域に対してデータの書込みまたは削除が行われた場合に、書込みまたは削除後の所定の領域の空き領域の状態を、空き領域情報６３に反映する。
【０１３６】
具体的には、空き領域情報６３は各ディスクのパーティション毎に、パーティションの空き容量を示す情報を対応付けて記憶する。
【０１３７】
図１８は、実施形態２に係る空き領域情報６３の構成の一例を示す。図１８において空き領域情報６３は、「ディスク識別子」、「パーティション識別子」、及び「空き容量」のデータ項目を対応付けて記憶する。「ディスク識別子」は、サーバが管理するディスクの識別情報である。「パーティション識別子」は、対応する「ディスク識別子」のディスクにおけるパーティションを一意に識別するための識別情報である。「空き容量」は、対応する「ディスク識別子」のディスクにおける「パーティション識別子」のパーティションの空き容量を示す情報である。
【０１３８】
図１８では、例えば、「ディスク識別子」が「0」で示されるディスクにおける「パーティション識別子」が「0」で示されるパーティションは、空き容量が「0 MiB」であることが示されている。
【０１３９】
また空き領域管理部５４は、実施形態１の空き領域管理部３４と同様に、各サーバの空き領域情報６３を冗長化された全てのサーバ間で共有するための機能を提供する。ただし、通信される情報は空き領域情報６３である。それに伴い、空き領域管理情報６４は、サーバの識別子と、そのサーバが管理するディスクの空き領域情報６３とを対応付けて記憶する。
【０１４０】
図１９は、実施形態２に係る空き領域管理情報６４の構成の一例を示す。図１９において、空き領域管理情報６４には、「サーバ識別子」、「ディスク識別子」、「パーティション識別子」、及び「空き容量」のデータ項目が対応付けて記憶される。「サーバ識別子」は、サーバを一意に識別するための識別情報である。「ディスク識別子」、「パーティション識別子」、及び「空き容量」のデータ項目の組合せは、図１８で説明した空き領域情報６３であって、対応する「サーバ識別子」のサーバが管理するディスクの空き領域情報６３である。
【０１４１】
配置部５５は、クライアント２１から書込み要求を受信すると、書込み対象データを格納する領域を決定する決定処理を行い、決定した領域に書込み対象データを格納する格納処理を行う。
【０１４２】
決定処理は、書込み対象データを格納するディスクと、そのディスクにおいてデータを格納する領域を決定する処理である。ここで、データが格納されるディスクとしては、冗長度と同数のディスクが決定されてもよい。またデータを格納する領域の決定は、その領域に書込み対象データが格納可能か否か、及び、冗長化したデータを格納する領域同士の性能差に基いて行われる。
【０１４３】
決定処理において配置部５５は先ず、書込み対象データを格納するディスク（説明のために、対象ディスクと記す）を決定する。書込み対象データを格納する対象ディスクの数は、冗長度と同数となる。すなわち対象ディスクの数は複数となりうる。対象ディスクの決定は、例えば、異なるサーバが管理するディスクを選択する等、種々の基準に基いて行われてもよい。尚、対象ディスクは、書込み要求においてユーザから指定されてもよい。また冗長度は、予め設定されて記憶部５１に格納されていてもよいし、ユーザにより指定されてもよい。
【０１４４】
決定処理において、配置部５５はまた、空き領域管理情報６４を用いて、書込み対象データの格納が可能な領域（書込み可能領域）を特定する。具体的には例えば配置部５５は、空き領域管理情報６４の「空き容量」の値が、書込み対象データよりも大きい行を抽出することによって、書込み可能領域を特定する。実施形態２では、書込み可能領域は、書込み対象データの格納が可能なパーティション（以下、書込み可能パーティションと記す）を指す。
【０１４５】
尚、対象ディスクの選択は、書込み可能領域の特定後に行われてもよい。その場合、配置部５５は、特定した何れかの書込み可能領域を含むディスクの集合から、冗長度と同数のディスクを選択する。
【０１４６】
次に配置部５５は、対象ディスクの各々から１つずつ書込み可能領域を選択して、書込み可能領域の組合せを生成する。ただし配置部５５は、この書込み可能領域の組合せを、各領域の性能が一定以内となるように領域を選択して生成する。
【０１４７】
尚、性能が一定以内となるような書込み可能領域の組合せは複数存在する場合がある。その場合、配置部５５は、所定の基準に従って１つの組合せを選択する。所定の基準は種々のものが考えられる。ここでは配置部５５が、組合せのうちの１つの書込み可能領域の性能が最も高い組合せを選択する例と、組合せの全ての書込み可能領域の性能が、所定の閾値以上であって、分散が最も小さい組合せを選択する例について説明する。
【０１４８】
先ず、組合せのうちの１つの書込み可能領域の性能が最も高い組合せを選択する場合について説明する。例えば配置部５５は先ず、対象ディスクのうちの所定のディスク（説明のためにディスクＹと記す）について、書込み可能パーティションのうち、最も性能が高いパーティション（説明のためにパーティションｙと記す）を選択する。性能が高いパーティションの選択は、具体的には例えば配置部５５は、性能管理情報６２において、「書込み性能」と「読込み性能」の和が最も高いパーティションを選択する。尚、ここでは「書込み性能」と「読込み性能」の両方を考慮する構成としたが、どちらか一方のみを考慮する構成としてもよい。
【０１４９】
そしてディスクＹ以外の対象ディスクの各々の、書込み可能パーティションから、パーティションｙと性能が所定の閾値以内であって、最も性能が高いパーティションを、配置部５５は特定する。具体的には例えば、配置部５５はディスクＹ以外の対象ディスクの各々について以下の処理を行う。すなわち配置部５５は、先ず、書込み可能パーティションのうち、性能情報６２のパーティションｙの「書込み性能」、「読込み性能」の値との「書込み性能」、「読込み性能」の値の差分がそれぞれ所定の閾値以内であるパーティションを抽出する。そして、抽出したパーティションのうち、最も「書込み性能」と「読込み性能」の値の和が大きいパーティションを、配置部５５は特定する。尚、ここでは「書込み性能」と「読込み性能」の両方を考慮する構成としたが、どちらか一方のみを考慮する構成としてもよい。
【０１５０】
そして、対象ディスクの各々について特定したパーティションと、パーティションｙとを組み合わせることで、配置部５５は、性能が一定以内となる書込み可能パーティションの組合せを生成する。
【０１５１】
パーティションｙを含む組合せで、性能が一定以内となる組合せが存在しない場合は、配置部５５は、ディスクＹの書込み可能パーティションのうち、次に性能が高いパーティションを選択して、同様に性能が一定以内のパーティションの組合せを生成する処理を行う。
【０１５２】
次に、組合せの全てのパーティションの性能が所定の閾値以上であって、分散が最も小さい組合せを選択する場合について説明する。パーティションの性能に関する所定の閾値は、クライアント２１からの書込み要求に含まれてもよいし、予め記憶部５１に記憶されていてもよい。
【０１５３】
例えば配置部５５は先ず、性能管理情報６２を参照して、対象ディスクの各々における、書込み可能パーティションの集合のうちから、それぞれ１つずつ性能が所定の閾値以上のパーティションを選択して、パーティションの組合せを生成する。パーティションの組合せは、全ての可能な組合せについて生成される。
【０１５４】
次に配置部５５は、性能管理情報６２を参照して、生成したパーティションの組合せ毎に、各パーティションの書込み性能を示す値の分散、及び読込み性能を示す値の分散を算出する。そして配置部５５は、算出した書込み性能の分散と読込み性能の分散の和が、最も小さい組合せを特定する。そして配置部５５は、生成した組合せに含まれるパーティションを、書込み対象データを格納する領域として決定する。
【０１５５】
このように、分散が最も小さい組合せを選択することにより、ディスク間の性能差が最も小さくなるため、効率的なディスクレイアウトを実現できる。ここでは、書込み性能と読込み性能の分散の和が最も小さい組合せを特定したが、例えば、書込み性能または読込み性能の分散の値が最も小さい組合せを、書込み対象データを格納する領域として決定してもよい。この場合は、書込み性能または読込み性能の差が最も小さいパーティションの組合せに、書込み対象データを格納することができる。また例えば、書込み性能の平均、読込み性能の平均、もしくは、書込み性能と読込み性能の平均の和が最も大きい組合せを、書込み対象データを格納する領域として決定してもよい。この場合は、書込み性能または読込み性能の平均が最も大きいパーティションの組合せに、書込み対象データを格納することができる。また例えば、分散が所定の閾値以内の組合せのいずれか、または、分散が所定の閾値以内であって性能が最も高い組合せを、配置部５５は、書込み対象データを格納する領域として決定してもよい。
【０１５６】
ここで、対象ディスクについて、各パーティションの性能差が一定以内である組合せが存在しない場合、配置部５５は、新たに別の対象ディスクを選択し直して、決定処理を同様に行う。いずれの対象ディスクについても、各領域の性能が一定以内となるような書込み可能領域の組合せが存在しない場合は、配置部は、各パーティションの性能差を考慮せずに、書込み可能パーティションを、書込み対象データを格納する領域として決定する。
【０１５７】
尚、配置部５５は、ディスクの各々から１つずつ領域を選択して生成する領域の組合せであって、各領域の性能差が一定以下の組合せを先に特定してから、冗長度と同数の領域を選択することにより、書込み対象データを格納する領域の組合せを決定してもよい。
【０１５８】
以上のようにして書込み対象データを格納する領域を決定すると、配置部５５は、決定した領域に対して書込み対象データの格納処理を行う。尚、書込み対象データを格納する領域として決定された各領域には、冗長化のためにサーバ２３により複製された書込み対象データが格納される。
【０１５９】
格納処理において配置部５５は、決定した領域を含むディスクを他サーバが管理する場合、決定した領域を含むディスクを管理するサーバへ、書込み対象データを格納する領域を示す格納位置情報と書込み対象データとを含む書込みの指示を送信する。
【０１６０】
配置部５５は、書込み位置を示す情報と書込み対象データを含む書込み指示を他サーバから受信すると、受信した指示に含まれる書込み位置に書込み対象データを格納する。
【０１６１】
次に、書込み性能と読込み性能の測定の動作フローについて説明する。図２０は、実施形態２に係る書込み性能と読込み性能の測定処理の詳細を図解したフローチャートである。
【０１６２】
図２０において先ず、測定部５２は、自サーバ（図２０のフローを実行するサーバ）が管理するディスクのうちから１つのディスクを選択する（Ｓ５０１）。
【０１６３】
次に測定部５２は、Ｓ５０１で選択したディスクのパーティションのうちから１つパーティションを選択する（Ｓ５０２）。
【０１６４】
次に測定部５２は、Ｓ５０２で選択したパーティションに空のファイルを作成し、データを書き込むことでパーティションのサイズに達するまでファイルサイズを拡大しながら書込み性能を測定し、測定の結果を性能情報６１に記録する（Ｓ５０３）。
【０１６５】
次に測定部５２は、Ｓ５０３で作成したファイルの先頭から末尾までシーケンシャルにデータを読み込みながら読込み性能を測定し、測定の結果を性能情報６１に記録する（Ｓ５０４）。
【０１６６】
次に測定部５２は、選択したディスクのうちの全てのパーティションをＳ５０２において選択したか否かを判定する（Ｓ５０５）。すなわち測定部５２は、Ｓ５０１で選択したディスクの全てのパーティションについて、Ｓ５０３からＳ５０４までの処理を実行したか否かを判定する。選択したディスクのうちの何れかのパーティションが、Ｓ５０２で未だ選択されていないと判定された場合（Ｓ５０５でＮｏ）、処理はＳ５０２に遷移し、測定部５２は、未だ選択していないパーティションのうちから１つのパーティションを選択する（Ｓ５０２）。
【０１６７】
Ｓ５０５において、Ｓ５０１で選択したディスクの全てのパーティションが、Ｓ５０２で選択されたと判定した場合（Ｓ５０５でＹｅｓ）、測定部５２は自サーバが管理するディスクのうちの全てのディスクをＳ５０１で選択したか否かを判定する（Ｓ５０６）。すなわち測定部５２は、自サーバが管理する全てのディスクについて、Ｓ５０２からＳ５０５までの処理を実行したか否かを判定する。自サーバが管理するディスクのうちの何れかのディスクが、Ｓ５０１で未だ選択されていないと判定された場合（Ｓ５０６でＮｏ）、処理はＳ５０１に遷移し、測定部５２は、未だ選択していないディスクのうちから１つのディスクを選択する（Ｓ５０１）。
【０１６８】
Ｓ５０６において、自サーバが管理するディスクの全てのディスクが、Ｓ５０１で選択されたと判定した場合（Ｓ５０６でＹｅｓ）、性能情報通信部５３は以下の処理を行う。すなわち、性能情報通信部５３は、Ｓ５０３及びＳ５０４で記録した性能情報６１を、冗長化を行うディスクを管理する他の全てのサーバへ送信する（Ｓ５０７）。
【０１６９】
次に性能情報通信部５３は、冗長化を行う他のディスクの性能情報６１を、そのディスクを管理するサーバから受信して、性能管理情報６２に格納する（Ｓ５０８）。尚、Ｓ５０８の処理は、冗長化を行う他のサーバの初期化処理において、Ｓ５０７で送信される性能情報６１を受信する処理である。よってこの処理は、図２０のフローの所定のタイミングで行われればよく、特に実行の順序は限定されない。そして、処理は終了する。
【０１７０】
実施形態２における、格納位置を決定するサーバについての書込み処理の動作フローは、図１１と同様である。ただし、図１１の空き領域管理部３４、配置部３５の動作はそれぞれ、実施形態２においては空き領域管理部５４、配置部５５の動作となる。また、図１１の空き領域情報４３、空き領域管理情報４４はそれぞれ、実施形態２においては、空き領域情報６３、空き領域管理情報６４の情報となる。
【０１７１】
また、実施形態２における、格納位置を決定するサーバから格納位置を受信して書込み処理を行うサーバの処理の動作フローは、図１２と同様である。ただし、図１２の空き領域管理部３４、配置部３５の動作はそれぞれ、実施形態２においては空き領域管理部５４、配置部５５の動作となる。また、図１２の空き領域情報４３は、実施形態２においては、空き領域情報６３の情報となる。
【０１７２】
また、実施形態２における、格納位置の決定処理の動作フローは、図１３と同様である。ただし、図１３において、「領域」は具体的には「パーティション」を指す。また、図１３の記憶部３１、配置部３５の動作は、実施形態２においては記憶部５１、配置部５５の動作となる。また、図１３の性能管理情報４２、空き領域管理情報４４はそれぞれ、実施形態２においては、性能管理情報６２、空き領域管理情報６４の情報となる。
【０１７３】
実施形態２における、サーバ２３のハードウェア構成は、図１４と同様である。ただし図１４において、ＣＰＵ６０１は、メモリ６０２を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、測定部５２、性能情報通信部５３、空き領域管理部５４、及び配置部５５の一部または全部の機能を提供する。また、メモリ６０２は記憶部５１の一部または全部の機能を提供する。
【０１７４】
尚、実施形態１においてスライスは、ディスクにおける物理的にアドレスが連続する領域としたが、スライスの一部に連続しない領域を含んでもよい。このような連続しない領域の例としては、スライス内の所定の領域にエラーが発生した際に割り当てられた代替領域などがある。
【０１７５】
また、書込み対象データが格納される性能差が所定の閾値以内の記憶領域には、同一のデータが冗長化されて格納されるとしたが、これに限定されず、例えば同時にアクセスされる可能性の高いデータ同士を各々の領域へ格納する構成としてもよい。例えば、所定のデータを分割した複数のデータのそれぞれを、性能差が所定の閾値以内の各領域へ記憶してもよい。また例えば、書込み対象データと、その書込み対象データのパリティを、性能差が所定の閾値以内の各領域へ記憶してもよい。
【０１７６】
実施形態では分散ストレージシステム２０に複数のサーバ２３が含まれる例を説明したが、単一サーバが複数のディスクを管理する場合でも実施形態の適用が可能である。
【０１７７】
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０１７８】
上記実施形態に関し、更に以下の付記を開示する。
（付記１）
複数の記憶装置のそれぞれの所定の記憶領域毎に、該記憶領域へのシーケンシャルアクセスの速度に関する速度情報を記憶する記憶部と、
前記複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、前記速度情報を用いて、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへデータを記憶させる格納処理部と、
を備えることを特徴とするサーバ装置。
（付記２）
前記格納処理部は、前記複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置の冗長度に応じて、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、前記速度情報を用いて、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへ冗長化させるデータを記憶させる
ことを特徴とする付記１に記載のサーバ装置。
（付記３）
前記特定した記憶領域のそれぞれは、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域の組合せうち、前記速度が最も速い組合せの各記憶領域である
ことを特徴とする付記１または２に記載のサーバ装置。
（付記４）
前記記憶部は、前記複数の記憶装置のそれぞれの前記記憶領域毎の空き領域に関する情報を記憶し、
前記格納処理部は、前記空き領域に関する情報に基いてデータの書込みが可能な記憶領域を特定し、特定した該記憶領域のうちの前記選択した記憶装置のそれぞれの該記憶領域に前記データを記憶させる
ことを特徴とする付記１〜３のうちいずれか１項に記載のサーバ装置。
（付記５）
前記サーバ装置は、さらに、
前記特定した記憶領域が他のサーバ装置が管理する記憶装置である場合、前記データを書き込むように該他のサーバ装置へ通知する通知部と、
を備えることを特徴とする付記１〜４にうちいずれか１項に記載のサーバ装置。
（付記６）
コンピュータに、
複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置のそれぞれの所定の記憶領域毎の、該記憶領域へのシーケンシャルアクセスの速度に関する、記憶部に記憶された速度情報を用いて、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへデータを記憶させる
処理を実行させることを特徴とする情報格納プログラム。
（付記７）
前記データを記憶させる処理は、
前記複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置の冗長度に応じて、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、前記速度情報を用いて、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへ冗長化させるデータを記憶させる
ことを含むことを特徴とする付記６に記載の情報格納プログラム。
（付記８）
前記特定した記憶領域のそれぞれは、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域の組合せうち、前記速度が最も速い組合せの各記憶領域である
ことを特徴とする付記６または７に記載の情報格納プログラム。
（付記９）
前記データを記憶させる処理は、
前記記憶部に記憶された、前記複数の記憶装置のそれぞれの前記記憶領域毎の空き領域に関する情報に基いて、データの書込みが可能な記憶領域を特定し、特定した該記憶領域のうちの前記選択した記憶装置のそれぞれの該記憶領域に前記データを記憶させる
ことを含むことを特徴とする付記６〜８のうちいずれか１項に記載の情報格納プログラム。
（付記１０）
前記コンピュータに、さらに、
前記特定した記憶領域が他のサーバ装置が管理する記憶装置である場合、前記データを書き込むように該他のサーバ装置へ通知する
処理を実行させることを特徴とする付記６〜９のうちいずれか１項に記載の情報格納プログラム。
（付記１１）
複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置のそれぞれの所定の記憶領域毎の、該記憶領域へのシーケンシャルアクセスの速度に関する、記憶部に記憶された速度情報を用いて、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへデータを記憶させる
ことを特徴とする情報格納方法。
（付記１２）
前記データを記憶させる処理は、
前記複数の記憶装置のいずれかへのアクセス要求により、前記複数の記憶装置の冗長度に応じて、前記複数の記憶装置のうち少なくとも２つの記憶装置を選択し、前記速度情報を用いて、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域を特定し、特定した該記憶領域のそれぞれへ冗長化させるデータを記憶させる
ことを含むことを特徴とする付記１１に記載の情報格納方法。
（付記１３）
前記特定した記憶領域のそれぞれは、選択した該記憶装置の間で、前記記憶領域への前記シーケンシャルアクセスの前記速度の差が所定の閾値以下である記憶領域の組合せうち、前記速度が最も速い組合せの各記憶領域である
ことを特徴とする付記１１または１２に記載の情報格納方法。
（付記１４）
前記データを記憶させる処理は、
前記記憶部に記憶された、前記複数の記憶装置のそれぞれの前記記憶領域毎の空き領域に関する情報に基いて、データの書込みが可能な記憶領域を特定し、特定した該記憶領域のうちの前記選択した記憶装置のそれぞれの該記憶領域に前記データを記憶させる
ことを含むことを特徴とする付記１１〜１３のうちいずれか１項に記載の情報格納方法。
（付記１５）
さらに、
前記特定した記憶領域が他のサーバ装置が管理する記憶装置である場合、前記データを書き込むように該他のサーバ装置へ通知する
ことを特徴とする付記１１〜１４のうちいずれか１項に記載の情報格納方法。
【符号の説明】
【０１７９】
１      記憶部
２      格納処理部
３      通知部
１０    サーバ装置
２０    ストレージシステム
２１    クライアント
２２    ネットワークスイッチ
２３    サーバ
２４    ディスク
３１    記憶部
３２    測定部
３３    性能情報通信部
３４    空き領域管理部
３５    配置部
４１    性能情報
４２    性能管理情報
４３    空き領域情報
４４    空き領域管理情報
５１    記憶部
５２    測定部
５３    性能情報通信部
５４    空き領域管理部
５５    配置部
６１    性能情報
６２    性能管理情報
６３    空き領域情報
６４    空き領域管理情報
６０１  ＣＰＵ
６０２  メモリ
６０３  読取装置
６０４  通信インターフェース
６０５  記憶装置
６５０  着脱可能記憶媒体
【図１】
2015191534.tif 000003
【図２】
2015191534.tif 000004
【図３】
2015191534.tif 000005
【図４】
2015191534.tif 000006
【図５】
2015191534.tif 000007
【図６】
2015191534.tif 000008
【図７】
2015191534.tif 000009
【図８】
2015191534.tif 000010
【図９】
2015191534.tif 000011
【図１０】
2015191534.tif 000012
【図１１】
2015191534.tif 000013
【図１２】
2015191534.tif 000014
【図１３】
2015191534.tif 000015
【図１４】
2015191534.tif 000016
【図１５】
2015191534.tif 000017
【図１６】
2015191534.tif 000018
【図１７】
2015191534.tif 000019
【図１８】
2015191534.tif 000020
【図１９】
2015191534.tif 000021
【図２０】
2015191534.tif 000022