(57)【要約】【課題】負荷軽減のために移動させるデータを適切に選択する。【解決手段】第１の記憶装置２に対するアクセスを制御するストレージ制御装置１は、計測部３と移動制御部４とを有する。計測部３は、ストレージ制御装置１の処理負荷状態をそれぞれ示す複数種類の処理指標値５ａ，５ｂと、第１の記憶装置２に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値６ａ，６ｂとを計測する。移動制御部４は、複数種類の処理指標値５ａ，５ｂのいずれかが処理指標値毎に決められた閾値を超えたとき、複数種類のアクセス指標値６ａ，６ｂから、閾値を超えた処理指標値５ａに対応するアクセス指標値６ａを選択し、選択したアクセス指標値６ａが最大であるデータを、第１の記憶装置２から、他のストレージ制御装置１ａによってアクセスが制御される第２の記憶装置２ａへ移動させる。【選択図】図１
2014229235.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶装置に対するアクセスを制御するストレージ制御装置において、
前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、前記第１の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測する計測部と、
前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、前記選択したアクセス指標値が最大であるデータを、前記第１の記憶装置から、他のストレージ制御装置によってアクセスが制御される第２の記憶装置へ移動させる移動制御部と、
を有することを特徴とするストレージ制御装置。
【請求項２】
前記移動制御部は、前記第２の記憶装置を含む複数の記憶装置のそれぞれに対するアクセスを制御する複数の他のストレージ制御装置から、閾値を超えた処理指標値と同じ種類の処理指標値が最小であるストレージ制御装置を、前記第２の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定することを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記移動制御部は、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値のうち閾値を超えた処理指標値と同じ種類のアクセス指標値が最大であるデータを、前記第１の記憶装置から前記第２の記憶装置へ移動させることを特徴とする請求項１または２記載のストレージ制御装置。
【請求項４】
前記複数種類のアクセス指標値の１つとして、前記第１の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれることを特徴とする請求項１または２記載のストレージ制御装置。
【請求項５】
前記複数種類のアクセス指標値の他の１つとして、前記第１の記憶装置に記憶された前記複数のデータそれぞれに対する、直近の単位時間におけるアクセス時に前記ストレージ制御装置が送受信するデータのサイズの合計を示すネットワーク転送量、または、前記ストレージ制御装置が備えるキャッシュメモリの容量のうち、前記複数のデータそれぞれに対するアクセス用に使用されている使用量を示すキャッシュ使用量が含まれることを特徴とする請求項４記載のストレージ制御装置。
【請求項６】
前記移動制御部は、前記複数種類の処理指標値のうち、前記処理時間とは異なる種類の処理指標値が所定の閾値を超えたとき、前記処理時間が最大であるデータを前記第１の記憶装置から前記第２の記憶装置へ移動させることを特徴とする請求項４または５記載のストレージ制御装置。
【請求項７】
前記処理時間とは異なる種類の処理指標値として、直近の単位時間のうち、前記ストレージ制御装置が備えるプロセッサが処理を実行している時間の割合を示すプロセッサ使用率、または、直近の単位時間のうち、前記ストレージ制御装置から前記第１の記憶装置へのアクセス処理を実行している時間の割合を示す値が含まれることを特徴とする請求項６記載のストレージ制御装置。
【請求項８】
前記移動制御部は、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がある場合には、当該同じ種類のアクセス指標値が最大であるデータを前記第１の記憶装置から前記第２の記憶装置へ移動させ、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がない場合には、前記処理時間が最大であるデータを前記第１の記憶装置から前記第２の記憶装置へ移動させることを特徴とする請求項４または５記載のストレージ制御装置。
【請求項９】
前記複数種類のアクセス指標値の１つとして、前記第１の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれ、
前記移動制御部は、閾値を超えた処理指標値に対応するアクセス指標値として前記処理時間を選択した場合、前記処理時間が最大であるデータを特定し、前記特定したデータについて計測された前記処理時間、および、前記ストレージ制御装置が備えるプロセッサと前記複数の他のストレージ制御装置それぞれが備えるプロセッサとの性能比に基づいて、前記特定したデータを対応する記憶装置に移動させた後の前記複数の他のストレージ制御装置それぞれについての同じ種類のアクセス指標値の推定値を算出し、前記推定値が最小となるストレージ制御装置を前記第２の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定する、
ことを特徴とする請求項２記載のストレージ制御装置。
【請求項１０】
第１の記憶装置に対するアクセスを制御するストレージ制御装置が、
前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、前記第１の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測し、
前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、前記選択したアクセス指標値が最大であるデータを、前記第１の記憶装置から、他のストレージ制御装置によってアクセスが制御される第２の記憶装置へ移動させる、
ことを特徴とするストレージ制御方法。
【請求項１１】
第１の記憶装置に対するアクセスを制御するコンピュータに、
前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値の計測値と、前記第１の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値の計測値とを取得し、
前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、前記選択したアクセス指標値が最大であるデータを、前記第１の記憶装置から、他のストレージ制御装置によってアクセスが制御される第２の記憶装置へ移動させる、
処理を実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
分散型のストレージシステムは、複数の記憶装置と、これら複数の記憶装置へのデータのアクセスを制御するストレージ制御装置とをクラスタ化することによって実現される。分散型のストレージシステムは、格納するデータの増加に応じたシステムの拡張性が高いという特徴を有する。
【０００３】
また、ストレージシステムの性能を向上するための各種の技術が提案されている。例えば、全体／論理ボリューム番号毎にプロセッサ使用率などの複数の情報を含むリソース使用情報を集計し、集計された結果のいずれかが閾値を超えた場合、警告を通知する技術が提案されている。
【０００４】
また、例えば、サーバのＣＰＵの負荷率を常時および、過去の傾向に基づいて監視して、過負荷サーバと低負荷サーバを抽出し、過負荷サーバに対しては、利用者が集中しているコンテンツのコンテンツ名をメニューリストから隠蔽し、低負荷サーバに対しては、そのコンテンツ名およびコンテンツを過負荷サーバから複写する技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２９６０３９号公報
【特許文献２】特開平１１−２５０５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
分散型のストレージシステムにおいて、各ストレージ制御装置の処理負荷を分散させることを目的として記憶装置間でデータを移動させるためには、移動させるデータを適切に選択する必要がある。しかし、記憶装置に記憶された複数のデータのうちのどのデータが、ストレージ制御装置の負荷に最も大きな影響を与えているかを正確に判断することは難しい。このため、ストレージ制御装置の負荷軽減のために有効なデータを適切に選択することが難しいという問題があった。
【０００７】
１つの側面では、本発明では、負荷軽減のために移動させるデータを適切に選択可能なストレージ制御装置、ストレージ制御方法およびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、第１の記憶装置に対するアクセスを制御するストレージ制御装置が提供される。ストレージ制御装置は、計測部と移動制御部とを有する。計測部は、ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、第１の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測する。移動制御部は、複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、選択したアクセス指標値が最大であるデータを、第１の記憶装置から、他のストレージ制御装置によってアクセスが制御される第２の記憶装置へ移動させる。
【０００９】
また、１つの案では、上記ストレージ制御装置と同様の処理を実行するストレージ制御方法が提供される。
さらに、１つの案では、上記ストレージ制御装置と同様の機能を実現するストレージ制御プログラムが提供される。
【発明の効果】
【００１０】
一態様によれば、負荷軽減のために移動させるデータを適切に選択できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態のストレージ制御装置の構成例および処理例を示す図である。
【図２】第２の実施の形態のオブジェクトストレージシステムの例を示す図である。
【図３】ストレージサーバのハードウェア構成例を示す図である。
【図４】ストレージサーバの機能例を示す図である。
【図５】サーバ負荷情報テーブルの例を示す図である。
【図６】スロット負荷情報テーブルの例を示す図である。
【図７】プロセッサ性能テーブルの例を示す図である。
【図８】スロットの処理時間の計測例を示す図である。
【図９】スロット配置テーブルの例を示す図である。
【図１０】スロットの再配置の要否の判定処理の例を示すフローチャートである。
【図１１】スロットを再配置する処理の例を示すフローチャートである。
【図１２】配置先のストレージサーバを特定する例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のストレージ制御装置の構成例および処理例を示す図である。ストレージ制御装置１は、記憶装置２（第１の記憶装置）に対するアクセスを制御する。ストレージ制御装置１は、計測部３および移動制御部４を有する。
【００１３】
計測部３は、ストレージ制御装置１の処理負荷状態をそれぞれ示す複数種類の処理指標値と、記憶装置２に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測する。
【００１４】
移動制御部４は、複数種類の処理指標値のいずれかが、処理指標値毎に決められた閾値を超えたとき、これらの複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択する。そして、移動制御部４は、選択したアクセス指標値が最大であるデータを、記憶装置２から他の記憶装置（第２の記憶装置）へ移動させる。
【００１５】
移動制御部４によるデータの移動先は、ストレージ制御装置１以外の他の装置によってアクセスが制御される記憶装置である。図１では例として、ストレージ制御装置１ａと、このストレージ制御装置１ａによってアクセスが制御される記憶装置２ａとを示し、記憶装置２のデータは記憶装置２ａに移動されるものとする。なお、ストレージ制御装置１ａも、ストレージ制御装置１と同様の処理機能、すなわち計測部３および移動制御部４の処理機能を有していてもよい。
【００１６】
ここで、図１に示すように、記憶装置２にデータ＃１，＃２，＃３が記憶されており、これらのいずれかを記憶装置２ａへ移動させる場合について説明する。
また、図１に示すように、計測部３は、２種類の処理指標値５ａ，５ｂと、２種類のアクセス指標値６ａ，６ｂを計測するものとする。そして、処理指標値５ａとアクセス指標値６ａとが対応関係にあり、処理指標値５ｂとアクセス指標値６ｂとが対応関係にあるものとする。
【００１７】
また、処理指標値５ａ，５ｂについての閾値は、それぞれ“８０”とする。そして、計測部３による処理指標値５ａの計測値が、閾値“８０”を超えて“９０”になったとする。すると、移動制御部４は、処理指標値５ａに対応するアクセス指標値６ａを選択する。ここで、計測部３によるデータ＃１のアクセス指標値６ａの計測値は“１０”、データ＃２のアクセス指標値６ａの計測値は“２０”、データ＃３のアクセス指標値６ａの計測値は“８０”である。そのため、移動制御部４は、選択したアクセス指標値６ａが最大であるデータ＃３を、記憶装置２ａに移動させる。
【００１８】
このように、処理指標値５ａの計測値が閾値を超えたとき、処理指標値５ａに対応するアクセス指標値６ａの計測値が最大のデータが選択されて、選択されたデータが他の記憶装置２ａに移動される。
【００１９】
ここで、複数種類の処理指標値のそれぞれは、関連性が高いアクセス指標値にあらかじめ対応付けられる。処理指標値とアクセス指標値との関連性が高いとは、あるデータについてのアクセス指標値が高くなったとき、そのアクセス指標値が高くなるような要因が、対応する処理指標値を高くする要因にもなる可能性が高いと推定されることを言う。
【００２０】
図１の例では、処理指標値５ａとの関連性が高いアクセス指標値６ａが選択され、選択されたアクセス指標値６ａを基に、移動させるデータが選択されることで、データの移動後に、処理指標値５ａの計測値を確実に低下させ、その低下幅を大きくすることができる。したがって、ストレージ制御装置１の負荷軽減のために移動させるデータを適切に選択可能となり、ストレージ制御装置１とストレージ制御装置１ａとの間の負荷分散を適正化することができる。
【００２１】
なお、処理指標値とアクセス指標値とは、１対１で対応付けられる必要はない。例えば、複数種類の処理指標値に１種類のアクセス指標値が対応付けられても、あるいは、１種類の処理指標値に複数種類のアクセス指標値が対応付けられてもよい。
【００２２】
また、上記の例では、処理指標値およびアクセス指標値が記憶装置２内のデータ毎に計測されたが、他の例として、処理指標値およびアクセス指標値は所定のデータ群毎に計測されてもよい。この場合、移動制御部４は、いずれかの処理指標値が所定の閾値を超えたとき、複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、選択したアクセス指標値が最大であるデータ群を記憶装置２から他の記憶装置へ移動させる。
【００２３】
［第２の実施の形態］
次に、図１に示したストレージ制御装置１，１ａを、オブジェクトストレージシステムに適用した場合の例について説明する。
【００２４】
図２は、第２の実施の形態のオブジェクトストレージシステムの例を示す図である。オブジェクトストレージシステム７では、データが“オブジェクト”として取り扱われ、複数のオブジェクトをグループ化した“スロット”を単位として、オブジェクトが複数のストレージノードに分散配置される。
【００２５】
オブジェクトストレージシステム７は、複数のディスク１０、ネットワークスイッチ２０、複数のアプリケーションサーバ２００および複数のストレージサーバ１００を有する。各アプリケーションサーバ２００は、ネットワークスイッチ２０を介して、各ストレージサーバ１００に接続されている。各ストレージサーバ１００は、対応するディスク１０に接続されている。
【００２６】
１つのストレージサーバ１００と、このストレージサーバ１００に接続されたディスク１０とが、１つのストレージノードに対応する。ディスク１０は、ストレージノードにおいてオブジェクトがスロット１１を単位として記憶される記憶領域を示す。ディスク１０は、１つ以上の記憶装置によって実現される。記憶装置としては、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）などが用いられる。
【００２７】
ストレージサーバ１００は、対応するディスク１０に記憶されたオブジェクトへのアクセスを制御するサーバ装置である。ストレージサーバ１００は、アプリケーションサーバ２００からのアクセス要求を受信すると、要求されたオブジェクトへのアクセスを行う。また、ストレージサーバ１００は、キャッシュメモリを用いて、オブジェクトへのアクセスを高速化する機能を有する。
【００２８】
さらに、ストレージサーバ１００は、自装置の負荷に関する情報や、自装置に対応するディスク１０に記憶されたスロット毎の負荷に関する情報を計測する。ストレージサーバ１００は、これらの計測値に基づいて、対応するディスク１０からスロット１１を選択し、選択したスロット１１を他のストレージサーバ１００に対応するディスク１０に移動させて、ストレージサーバ１００間で負荷を分散させる。
【００２９】
アプリケーションサーバ２００は、ユーザにサービスを提供するサーバ装置である。アプリケーションサーバ２００は、ユーザへのサービス提供のための処理の過程で、いずれかのストレージサーバ１００に対してオブジェクトの書き込みや読み出しを要求する。例えば、アプリケーションサーバ２００は、ユーザが操作する端末装置からの要求に応じて、オブジェクトの書き込みや読み出しを要求する。
【００３０】
アプリケーションサーバ２００は、オブジェクトにアクセスする際、アクセス先のオブジェクトを含むスロット１１を特定し、特定したスロット１１に対応するストレージサーバ１００を決定する。例えば、アプリケーションサーバ２００のそれぞれは、スロット１１がどのストレージサーバ１００に対応するかの対応関係を示すテーブル情報を保持し、このテーブル情報に基づいて、特定したスロット１１に対応するストレージサーバ１００を決定する。アプリケーションサーバ２００は、決定したストレージサーバ１００に対して、オブジェクトのアクセス要求を送信する。
【００３１】
図３は、ストレージサーバのハードウェア構成例を示す図である。ストレージサーバ１００は、プロセッサ１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、ディスクドライブ１０６および通信インタフェース１０７を有する。これらのユニットは、ストレージサーバ１００内でバス１０８に接続されている。
【００３２】
プロセッサ１０１は、プログラムの命令を実行する演算器を含むプロセッサである。プロセッサ１０１は、ＨＤＤ１０３に記憶されているプログラムやデータの少なくとも一部をＲＡＭ１０２にロードしてプログラムを実行する。なお、プロセッサ１０１は複数のプロセッサコアを備えてもよい。また、ストレージサーバ１００は、複数のプロセッサを備えてもよい。また、ストレージサーバ１００は、複数のプロセッサまたは複数のプロセッサコアを用いて並列処理を行ってもよい。また、２以上のプロセッサの集合、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などの専用回路、２以上の専用回路の集合、プロセッサと専用回路の組み合わせなどを「プロセッサ」と呼んでもよい。
【００３３】
ＲＡＭ１０２は、プロセッサ１０１が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、ストレージサーバ１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
【００３４】
ＨＤＤ１０３は、ＯＳ（Operating System）やファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、ストレージサーバ１００は、フラッシュメモリなどの他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
【００３５】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、ストレージサーバ１００に接続されたディスプレイ４１に画像を出力する。ディスプレイ４１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００３６】
入力信号処理部１０５は、ストレージサーバ１００に接続された入力デバイス４２から入力信号を取得し、プロセッサ１０１に通知する。入力デバイス４２としては、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００３７】
ディスクドライブ１０６は、記録媒体４３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体４３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ１０６は、プロセッサ１０１からの命令に従って、記録媒体４３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００３８】
通信インタフェース１０７は、ネットワークスイッチ２０などのネットワークを介して他の情報処理装置（例えば、ディスク１０など）と通信を行う。
なお、ストレージサーバ１００はディスクドライブ１０６を備えていなくてもよく、専ら他の情報処理装置からアクセスされる場合には、画像信号処理部１０４や入力信号処理部１０５を備えていなくてもよい。また、ディスプレイ４１や入力デバイス４２は、ストレージサーバ１００の筐体と一体に形成されていてもよい。
【００３９】
なお、アプリケーションサーバ２００も、ストレージサーバ１００と同様のハードウェアを用いて実現できる。
図４は、ストレージサーバの機能例を示す図である。アプリケーションサーバ２００は、スロット配置情報記憶部２１０およびアクセス制御部２２０を有する。
【００４０】
スロット配置情報記憶部２１０は、各スロット１１の配置に関する情報を格納したスロット配置テーブル記憶する。配置に関する情報には、例えば、各スロット１１の配置先や、配置の状況などの情報が挙げられる。各スロット１１の配置に関する情報は、アプリケーションサーバ２００それぞれに共有されている。
【００４１】
アクセス制御部２２０は、次のように、ストレージサーバ１００にオブジェクトのアクセスを要求する。まず、アクセス制御部２２０は、アクセス先のオブジェクトを含むスロット１１を特定する。次に、アクセス制御部２２０は、スロット配置テーブルに基づいて、特定したスロット１１に対応するストレージサーバ１００を特定する。そして、アクセス制御部２２０は、特定したストレージサーバ１００に対して、オブジェクトのアクセス要求を送信する。
【００４２】
また、アクセス制御部２２０は、スロットの再配置が行われる際に、ストレージサーバ１００の要求に応じてスロット配置テーブルを更新する。
ストレージサーバ１００は、キャッシュメモリ１１０、オブジェクト入出力部１２０、負荷計測部１３０、配置制御部１４０および負荷情報記憶部１５０を有する。
【００４３】
キャッシュメモリ１１０は、オブジェクト入出力部１２０がオブジェクトへアクセスするためのデータを一時的に記憶する。
負荷情報記憶部１５０は、ストレージサーバ１００の負荷に関する情報を格納したサーバ負荷情報テーブルを記憶する。サーバ負荷情報テーブルに格納される負荷に関する情報は、ストレージサーバ１００全体の負荷を推定するための計測値である。以下、サーバ負荷情報テーブルに格納される負荷に関する情報を「サーバ負荷値」と呼ぶ。また、サーバ負荷情報テーブルには、例えば、プロセッサ使用率やネットワーク転送率など複数の種別のサーバ負荷値が含まれる。サーバ負荷情報テーブルは、負荷計測部１３０がサーバ負荷値を計測する度に更新される。
【００４４】
また、負荷情報記憶部１５０は、各サーバ負荷値に対応する各スロット１１の負荷に関する情報を格納したスロット負荷情報テーブルを記憶する。スロット負荷情報テーブルに格納される、各スロット１１の負荷に関する情報は、各スロットに対するアクセス処理がストレージサーバ１００全体の負荷に及ぼす影響をスロット毎に推定するための計測値である。以下、スロット負荷情報テーブルに格納される負荷に関する情報を「スロット負荷値」と呼ぶ。また、スロット負荷情報テーブルには、例えば、スロット内のオブジェクトへのアクセス処理時間やネットワーク転送量など複数の種別のスロット負荷値が含まれる。
【００４５】
オブジェクト入出力部１２０、負荷計測部１３０および配置制御部１４０は、例えば、ストレージサーバ１００が備えるプロセッサ１０１が所定のプログラムを実行することで実現される。
【００４６】
オブジェクト入出力部１２０は、アプリケーションサーバ２００からのアクセス要求を受信すると、アプリケーションサーバ２００から指定されたオブジェクトへのアクセスを行う。また、オブジェクト入出力部１２０は、配置制御部１４０の要求に応じて指定されたスロット１１を、指定された他のストレージサーバ１００に送信する。
【００４７】
また、オブジェクト入出力部１２０は、キャッシュメモリ１１０を用いたオブジェクトのキャッシュ制御を行う。例えば、オブジェクト入出力部１２０は、アプリケーションサーバ２００から書き込みや読み出しが要求されたオブジェクトを、ディスク３０だけでなくキャッシュメモリ１１０にも記憶し、それ以後、そのオブジェクトへのアクセスをキャッシュメモリ１１０を介して行う。また、オブジェクト入出力部１２０は、キャッシュメモリ１１０に記憶されたオブジェクトに対するアクセスが一定時間以上要求されなかった場合、そのオブジェクトをキャッシュメモリ１１０から削除する。
【００４８】
負荷計測部１３０は、自己の各サーバ負荷値および、各スロット負荷値を計測する。負荷計測部１３０は、計測した負荷に関する情報をサーバ負荷情報テーブルやスロット負荷情報テーブルに格納する。
【００４９】
なお、負荷計測部１３０の処理は、所定のアプリケーションプログラムの実行によって実現されるものとする。ただし、負荷計測部１３０による計測処理の一部は、ＯＳプログラムの処理によって実現されてもよい。例えば、オブジェクト入出力部１２０の処理がＯＳプログラムの実行によって実行される場合、上記の計測値の一部がオブジェクト入出力部１２０によって行われてもよい。この場合、負荷計測部１３０はオブジェクト入出力部１２０によって計測された計測値を、ＯＳのＡＰＩ（Application Program Interface）を用いて取得する。
【００５０】
配置制御部１４０は、負荷情報テーブルを参照し、自己のサーバ負荷値のいずれかが閾値以上か判定する。自己のサーバ負荷値のいずれかが閾値以上である場合、配置制御部１４０は、以下のように、自己のサーバ負荷値に影響を与えているスロット１１を、他のストレージサーバ１００へ移動する。
【００５１】
まず、配置制御部１４０は、閾値以上のサーバ負荷値の種別に対応するスロット負荷値の種別を選択する。対応するスロット負荷値の種別は、サーバ負荷値の種別と関連性の高い負荷値の種別となる。次に、配置制御部１４０は、選択した種別のスロット負荷値が最も高いスロット１１を、ストレージサーバ１００に接続されているディスク１０から抽出する。
【００５２】
次に、配置制御部１４０は、他のストレージサーバ１００それぞれから、閾値以上となったサーバ負荷値と同じ種別のサーバ負荷値を取得する。次に、配置制御部１４０は、取得したサーバ負荷値が最も低いストレージサーバ１００を特定する。
【００５３】
そして、配置制御部１４０は、特定したストレージサーバ１００に抽出したスロット１１を配置するようオブジェクト入出力部１２０に要求する。その際、配置制御部１４０は、各アプリケーションサーバ２００が保持するスロット配置テーブルを更新する。
【００５４】
次に、図５〜７，９を用いて、オブジェクトストレージシステム７が用いるテーブルについて説明する。図８では、図６のテーブルの項目であるスロットの処理時間の計測方法について説明する。
【００５５】
図５は、サーバ負荷情報テーブルの例を示す図である。サーバ負荷情報テーブル１５１は、自己のサーバ負荷値の計測値を格納したテーブルである。サーバ負荷情報テーブル１５１は、負荷情報記憶部１５０に記憶されている。
【００５６】
サーバ負荷情報テーブル１５１は、サーバ、プロセッサ使用率、ディスクビジー率、ネットワーク転送量およびキャッシュ使用量の項目を有する。
サーバの項目には、ストレージサーバ１００を識別するための識別子が設定される。
【００５７】
プロセッサ使用率の項目には、直近の単位時間のうち、プロセッサがＯＳやアプリケーションソフトウェアなどの所定の処理を実行している時間の割合（以下、プロセッサ使用率）を示す情報が設定される。ここで言う所定の処理には、少なくとも、アプリケーションサーバ２００からの要求に応じてオブジェクトにアクセスするための処理が含まれる。
【００５８】
ディスクビジー率の項目には、直近の単位時間のうち、ストレージサーバ１００からディスク１０へのディスクアクセス時間の割合（以下、ディスクビジー率）を示す情報が設定される。例えば、ディスクビジー率は、直近の単位時間に置いて、オブジェクト入出力部１２０とディスク３０との間で一定の転送率以上のデータ転送が行われていた時間の割合を示す。
【００５９】
ネットワーク転送量の項目には、直近の単位時間あたりに、ストレージサーバ１００がネットワークとの間で送受信したデータのサイズ（以下、ネットワーク転送量）を示す情報が設定される。ネットワーク転送量は、例えば、ネットワークへの送信またはネットワークからの受信のいずれかにおけるデータサイズを示してもよいし、あるいは、これらの合計や平均のデータサイズを示してもよい。
【００６０】
キャッシュ使用量の項目には、現時点でのキャッシュメモリ１１０の使用量（以下、キャッシュ使用量）を示す情報が設定される。
なお、サーバ負荷情報テーブル１５１の各サーバ負荷値の計測値は、例えば、一定時間毎に更新される。
【００６１】
また、サーバ負荷情報テーブル１５１には、例えば、他のストレージサーバ１００において計測されたサーバ負荷値が定期的に収集されて格納されてもよい。
図６は、スロット負荷情報テーブルの例を示す図である。スロット負荷情報テーブル１５２は、スロット毎のスロット負荷値の計測値を格納したテーブルである。スロット負荷情報テーブル１５２は、負荷情報記憶部１５０に記憶されている。
【００６２】
スロット負荷情報テーブル１５２は、スロット、処理時間、ネットワーク転送量およびキャッシュ使用量の項目を有する。
スロットの項目には、ストレージサーバ１００が管理しているスロット１１を識別するための識別子が設定される。
【００６３】
処理時間の項目には、対応するスロットに対する直近のアクセス処理時において、ストレージサーバ１００がスロット１１へのアクセス処理にかかった時間の合計（以下、処理時間）が設定される。アクセス処理にかかった時間とは、具体的には、ストレージサーバ１００が、スロット１１に含まれるデータに対するアクセス要求を受けた時刻から、そのアクセス要求に対する応答が完了した時刻までの時間である。
【００６４】
なお、処理時間の項目には、例えば、直近の単位時間におけるスロット１１内のオブジェクトへのアクセス処理毎の処理時間の合計値または平均値が設定されてもよい。また、複数のスロット１１について並行してアクセス処理が行われた場合については、図８で説明する。
【００６５】
ネットワーク転送量の項目には、直近の単位時間あたりに、スロット１１へのアクセス時にストレージサーバ１００が送受信するデータのサイズの合計（以下、ネットワーク転送量）を示す情報が設定される。
【００６６】
キャッシュ使用量の項目には、現時点でスロット１１に含まれるオブジェクトへのアクセス用にキャッシュメモリ１１０が使用されている使用量（以下、キャッシュ使用量）を示す情報が設定される。
【００６７】
なお、スロット負荷情報テーブル１５２におけるスロット毎のレコードは、例えば、スロットに含まれるオブジェクトへのアクセスが行われる度に更新される。
また、サーバ負荷値およびスロット負荷値の種別としては、上記のネットワーク転送量の代わりにネットワーク転送率が用いられてもよい。
【００６８】
図７は、プロセッサ性能テーブルの例を示す図である。プロセッサ性能テーブル１５３は、各ストレージサーバ１００のプロセッサの性能を示す情報を格納したテーブルである。プロセッサ性能テーブル１５３は、負荷情報記憶部１５０に記憶されている。
【００６９】
プロセッサ性能テーブル１５３は、サーバおよびプロセッサ性能の項目を有する。サーバの項目には、ストレージサーバ１００を識別するための識別子が設定される。プロセッサ性能の項目には、ストレージサーバ１００のプロセッサの性能を示す情報が設定される。オブジェクトストレージシステム７において、プロセッサの性能は、プロセッサ１０１の所定の単位時間あたりのクロック数とする。
【００７０】
なお、プロセッサ性能テーブル１５３の情報は、例えば、管理者の操作入力によってあらかじめ各ストレージサーバ１００に格納される。
図８は、スロットの処理時間の計測例を示す図である。ストレージサーバ１００は、複数のスロット１１へのアクセス処理を並行して実行する場合がある。この場合の、スロット１１の処理時間の計測方法には、以下の方法が挙げられる。
【００７１】
（１）並行してアクセス処理していない場合と同様に扱う。
（２）並行してアクセス処理した時間を、アクセス処理されたスロット１１の数で除算する。
【００７２】
図８では、識別子が“＃１”であるスロット１１（以下、“スロット＃１”と記載する）へのアクセス処理と、識別子が“＃２”であるスロット１１（以下、“スロット＃２”と記載する）へのアクセス処理とが並列に実行されたものとする。図８の期間５１は、スロット＃１に含まれるオブジェクトについてアクセス要求を受けてからアクセス完了の応答をするまでの期間を示す。同様に、期間５２は、スロット＃２に含まれるオブジェクトについてアクセス要求を受けてからアクセス完了の応答をするまでの期間を示す。
【００７３】
例えば、スロット＃２へのアクセス処理が１秒間実行されたとする。また、スロット＃１へのアクセス処理が２秒間実行されたとする。そのうち、最初の１秒間は、スロット＃１およびスロット＃２へのアクセス処理が並行して実行されている。
【００７４】
この場合、上記（１）の計測方法では、スロット＃１の処理時間は、２秒となり、スロット＃２の処理時間は１秒となる。一方、上記（２）の計測方法では、スロット＃１の処理時間は、“１［秒］／２＋１［秒］＝１．５［秒］”となり、スロット＃２の処理時間は、“１［秒］／２＝０．５［秒］”となる。
【００７５】
このように、スロット１１の処理時間は、計測方法により計測される値が異なる。上記（２）の計測方法によれば、スロット１１毎にプロセッサ１０１等のリソースに与えた影響の大きさを、高精度に換算することが可能になる。なお、オブジェクトストレージシステム７では、どちらの計測方法を用いてもよい。
【００７６】
図９は、スロット配置テーブルの例を示す図である。スロット配置テーブル２１１は、各スロット１１の配置に関する情報を格納したテーブルである。スロット配置テーブル２１１は、スロット配置情報記憶部２１０に記憶されている。スロット配置テーブル２１１は、各アプリケーションサーバ２００に共有されている。
【００７７】
スロット配置テーブル２１１は、スロット、配置サーバおよび状態の項目を有する。
スロットの項目には、オブジェクトストレージシステム７が管理するスロット１１を識別するための識別子が設定される。
【００７８】
配置サーバの項目には、スロット１１が配置されているディスク１０に対応するストレージサーバ１００を識別するための識別子が設定される。アプリケーションサーバ２００のアクセス制御部２２０は、配置サーバの項目に設定された情報から、アクセスの要求先のストレージサーバ１００を判別することができる。
【００７９】
状態の項目には、スロット１１の状態を示す情報が設定される。例えば、スロット１１が配置制御部１４０により移動処理中の場合、状態の項目には“移動中”が設定される。また、スロット１１が配置制御部１４０により移動処理中でない場合、状態の項目には“通常”が設定される。
【００８０】
状態の項目は、アプリケーションサーバ２００がスロット１１へのアクセスを要求する際に、そのスロット１１がアクセス可能かを判定するために用いられる。具体的には、アプリケーションサーバ２００は、スロット１１へのアクセス前にスロットの状態を判定する。スロット１１の状態が“移動中”の場合、例えば、スロットの状態が“通常”になるまでそのスロット１１へのアクセス要求を遅延させる。同様に、スロット１１の状態が“通常”の場合、スロット１１へのアクセス要求を実施する。
【００８１】
なお、アプリケーションサーバ２００のアクセス制御部２２０は、オブジェクトへのアクセスを要求する際、そのオブジェクトに関する情報（例えば、オブジェクト名、オブジェクトのパス情報、オブジェクトのデータ等）から、そのオブジェクトがどのスロットに含まれるかを一意に特定することができる。オブジェクトとスロットとは、例えば、次のように対応付けられる。
【００８２】
一例として、コンシステントハッシュ法を用いてオブジェクトが分散配置される場合には、オブジェクトに関する情報のハッシュ値に基づいて、オブジェクトがスロットに分配される。例えば、ハッシュ値の大きさを閾値を用いて複数の範囲に区切り、ハッシュ値が同じ範囲に属するオブジェクトを同じスロットに対応付ける。
【００８３】
また、別の例としては、オブジェクトに関する情報の文字コードの大きさを閾値を用いて複数の範囲に区切り、文字コードの値が同じ範囲に属するオブジェクトを同じスロットに対応付けてもよい。
【００８４】
さらに、別の例としては、１つのオブジェクトを１つのスロットに対応付けてもよい。この場合は、オブジェクト単位でデータの再配置を行うことが可能となる。
次に、スロット１１の再配置について、図１０〜１１のフローチャートを用いて説明する。
【００８５】
図１０は、スロットの再配置の要否の判定処理の例を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。なお、配置制御部１４０が判定する各負荷値の種別の閾値については、プロセッサ使用率に対応する閾値を閾値Ａとする。同様に、ディスクビジー率に対応する閾値を閾値Ｂとし、ネットワーク転送量に対応する閾値を閾値Ｃとし、キャッシュ使用量に対応する閾値を閾値Ｄとする。
【００８６】
（ステップＳ１１）  オブジェクト入出力部１２０は、アプリケーションサーバ２００からアクセス要求を受信すると、アプリケーションサーバ２００から指定されたオブジェクトにアクセスする。この際、キャッシュメモリ１１０を用いることで、オブジェクトへのアクセスを高速化できる。そして、オブジェクト入出力部１２０は、アクセス結果をアプリケーションサーバ２００に応答する。読み出しが要求された場合には、読み出されたオブジェクトがアプリケーションサーバ２００に送信される。
【００８７】
（ステップＳ１２）負荷計測部１３０は、自己のサーバ負荷値、および、ステップＳ１１でアクセスが要求されたオブジェクトが含まれるスロット１１についてのスロット負荷値を計測する。サーバ負荷値には、プロセッサ使用率、ディスクビジー率、ネットワーク転送量およびキャッシュ使用量が含まれる。また、スロット負荷値には、スロット１１の処理時間、スロット１１のネットワーク転送量およびスロット１１のキャッシュ使用量が含まれる。
【００８８】
負荷計測部１３０は、計測されたサーバ負荷値でサーバ負荷情報テーブル１５１を更新する。具体的には、負荷計測部１３０は、計測されたストレージサーバ１００のプロセッサ使用率で、サーバ負荷情報テーブル１５１におけるプロセッサ使用率の項目を更新する。同様に、負荷計測部１３０は、計測されたストレージサーバ１００のディスクビジー率で、サーバ負荷情報テーブル１５１におけるディスクビジー率の項目を更新する。同様に、負荷計測部１３０は、計測されたストレージサーバ１００のネットワーク転送量で、サーバ負荷情報テーブル１５１におけるネットワーク転送量の項目を更新する。同様に、負荷計測部１３０は、計測されたストレージサーバ１００のキャッシュ使用量で、サーバ負荷情報テーブル１５１におけるディスク使用量の項目を更新する。
【００８９】
また、負荷計測部１３０は、計測されたスロット負荷値でスロット負荷情報テーブル１５２を更新する。具体的には、まず、負荷計測部１３０は、ステップＳ１１でアクセスが要求されたオブジェクトが含まれるスロット１１の識別子が一致するレコードを検索する。次に、負荷計測部１３０は、計測されたスロット１１の処理時間で、検索されたレコードの処理時間の項目を更新する。同様に、負荷計測部１３０は、計測されたスロット１１のネットワーク転送量で、検索されたレコードのネットワーク転送量の項目を更新する。同様に、負荷計測部１３０は、計測されたスロット１１のキャッシュ使用量で、検索されたレコードのキャッシュ使用量の項目を更新する。
【００９０】
（ステップＳ１３）配置制御部１４０は、サーバ負荷情報テーブル１５１におけるプロセッサ使用率が閾値Ａ以上か判定する。プロセッサ使用率が閾値Ａ以上である場合、処理をステップＳ１５へ進める。プロセッサ使用率が閾値Ａ未満である場合、処理をステップＳ１４へ進める。
【００９１】
（ステップＳ１４）配置制御部１４０は、サーバ負荷情報テーブル１５１におけるディスクビジー率が閾値Ｂ以上か判定する。ディスクビジー率が閾値Ｂ以上である場合、処理をステップＳ１５へ進める。ディスクビジー率が閾値Ｂ未満である場合、処理をステップＳ１６へ進める。
【００９２】
（ステップＳ１５）配置制御部１４０は、スロット負荷情報テーブル１５２から処理時間が最大であるスロット１１を抽出する。
（ステップＳ１６）配置制御部１４０は、サーバ負荷情報テーブル１５１におけるネットワーク転送量が閾値Ｃ以上か判定する。ネットワーク転送量が閾値Ｃ以上である場合、処理をステップＳ１７へ進める。ネットワーク転送量が閾値Ｃ未満である場合、処理をステップＳ１８へ進める。
【００９３】
（ステップＳ１７）配置制御部１４０は、スロット負荷情報テーブル１５２からネットワーク転送量が最大であるスロット１１を抽出する。
（ステップＳ１８）配置制御部１４０は、サーバ負荷情報テーブル１５１におけるキャッシュ使用量が閾値Ｄ以上か判定する。キャッシュ使用量が閾値Ｄ以上である場合、処理をステップＳ１９へ進める。キャッシュ使用量が閾値Ｄ未満である場合、処理をステップＳ１１へ進める。
【００９４】
（ステップＳ１９）配置制御部１４０は、スロット負荷情報テーブル１５２からキャッシュ使用量が最大であるスロット１１を抽出する。
（ステップＳ２０）配置制御部１４０は、抽出されたスロット１１を他のストレージサーバ１００に接続されたディスク１０へ再配置する。詳細については、図１１で説明する。その後、処理をステップＳ１１へ進める。
【００９５】
ここで、ストレージサーバ１００においては、ストレージサーバ１００の負荷を大幅に低減し得るスロット１１を確実に判別することが難しいという問題があった。その理由は、ストレージサーバ１００に対応するディスク１００に記憶されたスロット１１のうちどのスロットが、ストレージサーバ１００の負荷に最も大きな影響を与えているかを正確に判断することが難しいという点にある。
【００９６】
例えば、他のストレージノードに移動するスロット１１を判別する方法として、アクセス頻度が最も高いスロット１１を選択する方法が考えられる。しかし、例えば、ストレージサーバ１００のプロセッサ使用率またはディスクビジー率が所定の閾値を超えた場合に、アクセス頻度が最大であるスロットを他のストレージノードに移動させたとしても、プロセッサ使用率またはディスクビジー率が大幅に低下するとは限らない。
【００９７】
例えば、アクセス頻度が高いスロット１１に含まれるオブジェクトはキャッシュメモリ１１０に記録されている可能性が高いため、このようなスロット１１へのアクセスの際にはディスク１０へのアクセスが行われない可能性も高くなる。このことから、アクセス頻度が最大であるスロット１１を他のストレージノードに移動させたとしても、移動元のストレージサーバ１００のディスクビジー率は、大きく低下しない可能性がある。
【００９８】
また、アクセス頻度が同じオブジェクトでも、各オブジェクトのサイズが異なれば、ストレージサーバ１００のプロセッサ使用率に与える影響も異なる。このため、アクセス頻度が最大であるスロット１１を他のストレージノードに移動させたとしても、そのスロット１１において多数回アクセスされたオブジェクトのサイズによっては、移動元のストレージサーバ１００のプロセッサ使用率が大きく低下しない可能性もある。
【００９９】
このような問題の原因は、アクセス頻度というスロット１１毎の負荷のパラメータ（スロット負荷値）と、このパラメータと組み合わせて使用されたサーバ負荷値、すなわちプロセッサ使用率およびディスクビジー率との関連性が低いことにある。これに対し、上記の図１０の処理によれば、互いに関連性の高いサーバ負荷値とスロット負荷値とを対応付けて使用することで、上記の問題を解消することができる。
【０１００】
関連性の高いサーバ負荷値とスロット負荷値とを対応付ける方法としては、例えば、互いに同じ種別の負荷値を対応付ける方法がある。図１０の例では、サーバ負荷値の種別のうちネットワーク転送量と、スロット負荷値の種別のうちネットワーク転送量とが対応付けられている。また、サーバ負荷値の種別のうちキャッシュ使用量と、スロット負荷値の種別のうちキャッシュ使用量とが対応付けられている。
【０１０１】
ストレージサーバ１００のネットワーク転送量が閾値Ｃを超えたとき、ネットワーク転送量が最大であるスロット１１を他のストレージノードに移動させることで、ストレージサーバ１００のネットワーク転送量が最大限低下する可能性が高くなる。同様に、ストレージサーバ１００のキャッシュ使用量が閾値Ｄを超えたとき、キャッシュ使用量が最大であるスロット１１を他のストレージノードに移動させることで、ストレージサーバ１００のキャッシュ使用量が最大限低下する可能性が高くなる。したがって、ストレージサーバ１００の負荷軽減のために移動させるデータを適切に選択できるようになる。
【０１０２】
なお、前述したアクセス頻度に関しても、ストレージサーバ１００全体についてのアクセス頻度が所定の閾値を超えたとき、アクセス頻度が最大であるスロット１１が他のストレージノードに移動されることで、ストレージサーバ１００全体についてのアクセス頻度が大きく低下する可能性が高まる。
【０１０３】
一方、サーバ負荷値の種別のうち、プロセッサ使用率およびディスクビジー率については、スロット負荷値の中に同じ種別のものが存在しない。多くのＯＳには、アクセス先のスロット１１毎にプロセッサ使用率やディスクビジー率を計測する機能が実装されていない。そのため、スロット１１毎のプロセッサ使用率やディスクビジー率を計測するためには、ストレージサーバ１００に機能を追加することになり、開発や製造のためのコストが増大する。
【０１０４】
これに対し、図１０の処理では、スロット負荷値の中に同じ種別のものが存在しないプロセッサ使用率およびディスクビジー率には、スロット１１毎の処理時間が対応付けられている。スロット１１の処理時間を計測する機能は、多くのＯＳに実装されている。例えば、ＯＳが“ＬＩＮＵＸ”（登録商標）である場合は、“ｔｉｍｅ”コマンドにより処理時間の計測が可能である。また、アプリケーションプログラムの実行により処理時間を計測することも容易である。
【０１０５】
さらに、前述のように、処理時間とは、スロット１１に含まれるオブジェクトへのアクセス要求を受けた時刻から、アクセス処理が完了したことを応答した時刻までの時間である。アクセス要求から応答までにこのような時間を要する要因には、多くの要因が複合的に含まれている。例えば、ディスク１０との間のデータ入出力やキャッシュ制御等のためのプロセッサでの処理、アクセス対象のオブジェクトのサイズ、ディスク１０がＨＤＤであればシーク処理、といった要因が考えられる。
【０１０６】
処理時間は、このような多くの要因によって消費される時間の加算値であることから、どの種別のサーバ負荷値に対しても一定以上の関連性があるものと言える。このため、スロット負荷値の中に同じ種別のものが存在しないプロセッサ使用率およびディスクビジー率に、スロット負荷値として処理時間を対応付けることにより、プロセッサ使用率およびディスクビジー率を大きく低下させるようなスロット１１が選択される可能性が高くなる。したがって、ストレージサーバ１００の負荷軽減のために移動させるデータを適切に選択できるようになる。
【０１０７】
図１１は、スロットを再配置する処理の例を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
（ステップＳ２１）配置制御部１４０は、閾値以上となったサーバ負荷値と同じ種別のサーバ負荷値の計測値を、他の各ストレージサーバ１００から取得する。例えば、配置制御部１４０は、ステップＳ１３においてプロセッサ使用率が閾値Ａ以上と判定した場合、他の各ストレージサーバ１００からプロセッサ使用率の計測値を取得する。
【０１０８】
（ステップＳ２２）配置制御部１４０は、ステップＳ１５の処理により処理時間が最大であるスロット１１を抽出したか判定する。ステップＳ１５の処理によりスロット１１を抽出した場合、処理をステップＳ２３へ進める。ステップＳ１５以外の処理によりスロット１１を抽出した場合、処理をステップＳ２６へ進める。
【０１０９】
（ステップＳ２３）配置制御部１４０は、次のように、抽出されたスロット１１へのアクセス処理の際にストレージサーバ１００にかかる負荷値αを、抽出されたスロット１１の処理時間に基づき算出する。この場合の負荷値αの種別は、閾値以上であるサーバ負荷値の種別となる。
【０１１０】
まず、配置制御部１４０は、ストレージサーバ１００が管理している各スロット１１の処理時間の合計に対する、ステップＳ１５で抽出されたスロット１１の処理時間の割合を算出する。次に、配置制御部１４０は、ステップＳ１３またはＳ１４で閾値以上と判定されたサーバ負荷値に、算出した処理時間の割合を乗じた値を負荷値αとして算出する。
【０１１１】
（ステップＳ２４）配置制御部１４０は、他のすべてのストレージサーバ１００のプロセッサ性能毎に、自己のプロセッサ性能に対する比率βを算出する。各ストレージサーバ１００のプロセッサ性能は、プロセッサ性能テーブル１５３から取得される。
【０１１２】
（ステップＳ２５）配置制御部１４０は、他のストレージサーバ１００のそれぞれについて、負荷値αに比率βを乗じた値に、ステップＳ２１で取得したサーバ負荷値を加算した値を、スロット再配置後の各サーバ負荷値の推定値として算出する。そして、配置制御部１４０は、算出された再配置後のサーバ負荷値が最小となるストレージサーバ１００を選択し、移動先のストレージサーバ１００と特定する。
【０１１３】
ステップＳ２３〜Ｓ２５で説明したように、配置制御部１４０は、移動先のストレージサーバ１００を選択する際、各ストレージサーバ１００のプロセッサ性能を考慮し、スロット１１を移動させたときのサーバ負荷値が最小となるような移動先のストレージサーバ１００を特定する。詳細は、図１２で説明する。
【０１１４】
（ステップＳ２６）配置制御部１４０は、他の各ストレージサーバ１００から、ステップＳ２１で取得したサーバ負荷値が最小であるストレージサーバ１００を選択し、移動先のストレージサーバ１００と特定する。
【０１１５】
（ステップＳ２７）配置制御部１４０は、すべてのアプリケーションサーバ２００のスロット配置テーブル２１１において、移動させるスロット１１の状態を更新する。具体的には、まず、配置制御部１４０は、移動させるスロット１１の識別子が一致するレコードをスロット配置テーブル２１１から検索する。次に、配置制御部１４０は、検索したレコードにおける状態の項目を“移動中”に更新する。これにより、移動中のスロット１１に含まれるオブジェクトに対する各アプリケーションサーバ２００からのアクセスを抑止できる。
【０１１６】
（ステップＳ２８）配置制御部１４０は、移動先のストレージサーバ１００に、抽出したスロット１１を移動するようオブジェクト入出力部１２０に要求する。オブジェクト入出力部１２０は、ステップＳ２５またはステップＳ２６で特定したストレージサーバ１００を介して、そのストレージサーバ１００に対応するディスク１０へ、抽出したスロット１１を移動させる。
【０１１７】
（ステップＳ２９）配置制御部１４０は、すべてのアプリケーションサーバ２００のスロット配置テーブル２１１において、移動させるスロット１１の配置先のストレージサーバ１００および状態を更新する。具体的には、まず、配置制御部１４０は、移動させるスロット１１の識別子が一致するレコードをスロット配置テーブル２１１から検索する。次に、配置制御部１４０は、検索したレコードにおける配置サーバの項目を、移動先のストレージサーバ１００の識別子に更新する。そして、配置制御部１４０は、検索したレコードにおける状態の項目を“通常”に更新する。
【０１１８】
図１２は、配置先のストレージサーバを特定する例を示す図である。図１２では、スロット１１の移動先のストレージサーバ１００を特定する処理の例を説明する。以下、識別子が＃Ａであるストレージサーバ１００を“ストレージサーバ＃Ａ”と記載する。また、図１２では、他のストレージサーバ１００として、ストレージサーバ＃Ｂ，＃Ｃが存在する。また、図１２では、ストレージサーバ＃Ａが管理しているスロット１１には、スロット＃１，＃２，＃３が含まれる。
【０１１９】
表１５４は、ストレージサーバ＃Ａ，＃Ｂ，＃Ｃのプロセッサ使用率およびプロセッサ性能を示す表である。また、スロット負荷情報テーブル１５２ｂは、サーバ＃Ａが管理しているスロット＃１，＃２，＃３に関する情報を示す。スロット負荷情報テーブル１５２ｂにおいて、ネットワーク転送量およびキャッシュ使用量の項目の記載を省略する。また、閾値Ａは、“８０％”とする。
【０１２０】
ここで、ストレージサーバ＃Ａのプロセッサ使用率が閾値Ａ以上である“９０％”となったとする。この場合、まず、ストレージサーバ＃Ａの配置制御部１４０は、移動させるスロット１１を判別するために使用するスロット負荷値として、プロセッサ使用率に対応する種別である“処理時間”を選択する。
【０１２１】
次に、配置制御部１４０は、処理時間が最大であるスロット１１を、再配置するスロット１１としてスロット負荷情報テーブル１５２ｂから選択する。スロット負荷情報テーブル１５２ｂに示すように、ストレージサーバ＃Ａの管理している各スロット１１の処理時間は、スロット＃１，＃２，＃３の順に“３０秒”、“２０秒”、“１０秒”である。そのため、スロット＃１が再配置するスロット１１として選択される。
【０１２２】
次に、配置制御部１４０は、処理時間の値を基に、スロット＃１へのアクセス処理におけるストレージサーバ＃Ａのプロセッサ使用率を推定する。具体的には、配置制御部１４０は、図１１のステップＳ２３に示した手順で、スロット＃１へのアクセス処理におけるプロセッサ使用率を算出する。その結果、スロット＃１へのアクセス処理におけるプロセッサ使用率は、“９０［％］×（３０［秒］／（３０［秒］＋２０［秒］＋１０［秒］））＝４５［％］”となる。
【０１２３】
次に、配置制御部１４０は、ストレージサーバ＃Ｂ，＃Ｃそれぞれのプロセッサ性能に対するストレージサーバ＃Ａのプロセッサ性能の比率を算出する。表１５４に示すように、各ストレージサーバ１００のプロセッサ性能は、ストレージサーバ＃Ａ，＃Ｂ，＃Ｃの順に“４ＧＨｚ”、“４ＧＨｚ”、“１ＧＨｚ”である。そのため、ストレージサーバ＃Ｂに対するストレージサーバ＃Ａのプロセッサ性能比率は“４［ＧＨｚ］／［４ＧＨｚ］＝１”となり、ストレージサーバ＃Ｃに対するストレージサーバ＃Ａのプロセッサ性能比率は“４［ＧＨｚ］／１［ＧＨｚ］＝４”となる。
【０１２４】
そして、算出したプロセッサ使用率およびプロセッサ性能比率と、移動先候補のストレージサーバ＃Ｂ，＃Ｃの各プロセッサ使用率の計測値とに基づいて、図１１のステップＳ２５のように、再配置後のストレージサーバ＃Ｂ，＃Ｃのプロセッサ使用率の推定値を算出する。表１５４に示すように、ストレージサーバ＃Ｂのプロセッサ使用率の計測値は“３０％”であり、ストレージサーバ＃Ｃのプロセッサ使用率の計測値は“２０％”である。そのため、再配置後のストレージサーバ＃Ｂのプロセッサ使用率は“３０［％］＋４５［％］×１＝７５［％］”となり、再配置後のストレージサーバ＃Ｃのプロセッサ使用率は“２０［％］＋４５［％］×４＝２００［％］”となる。したがって、移動先のストレージサーバ１００として、ストレージサーバ＃Ｂが特定される。
【０１２５】
図１２のように、配置制御部１４０は、移動先のストレージサーバ１００を特定する際、移動先のストレージサーバ１００のプロセッサ性能を考慮し、スロット１１の移動後における移動先のストレージサーバ１００のサーバ負荷値が最小となるようにする。これにより、オブジェクトストレージシステム７は、スロット１１の再配置後の各サーバ負荷値を均等化することができる。
【０１２６】
以上説明した第２の実施の形態のオブジェクトストレージシステム７によれば、配置制御部１４０は、サーバ負荷情報テーブルに格納されるサーバ負荷値のいずれかが閾値以上となった場合、閾値以上となったサーバ負荷値に対応する種別のスロット負荷値が最大であるスロット１１を選択し、他のストレージサーバ１００に再配置する。
【０１２７】
この処理において、スロット負荷値のうち、閾値以上となったサーバ負荷値と関連性が高い種別のスロット負荷値に基づいて、移動させるスロット１１が選択される。これにより、閾値以上となったサーバ負荷値が大幅に低減する可能性が高くなり、移動させるスロット１１を適切に選択できるようになる。また、ストレージサーバ１００間の負荷分散が適正化されるまでに、スロット１１を移動させる回数が減少する。このため、移動のためにアプリケーションサーバ２００からのアクセスが不能になるスロット１１の個数が減少し、また、アクセス不能な時間が短縮される。
【０１２８】
なお、前述のように、第１の実施の形態の情報処理は、ストレージ制御装置１，１ａにプログラムを実行させることで実現でき、第２の実施の形態の情報処理は、ストレージサーバ１００やアプリケーションサーバ２００にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体４３）に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。
【０１２９】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置（例えば、ＨＤＤ１０３）に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワークを介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することも可能である。
【０１３０】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  第１の記憶装置に対するアクセスを制御するストレージ制御装置において、
前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、前記第１の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測する計測部と、
前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、前記選択したアクセス指標値が最大であるデータを、前記第１の記憶装置から、他のストレージ制御装置によってアクセスが制御される第２の記憶装置へ移動させる移動制御部と、
を有することを特徴とするストレージ制御装置。
【０１３１】
（付記２）  前記移動制御部は、前記第２の記憶装置を含む複数の記憶装置のそれぞれに対するアクセスを制御する複数の他のストレージ制御装置から、閾値を超えた処理指標値と同じ種類の処理指標値が最小であるストレージ制御装置を、前記第２の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定することを特徴とする付記１記載のストレージ制御装置。
【０１３２】
（付記３）  前記移動制御部は、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値のうち閾値を超えた処理指標値と同じ種類のアクセス指標値が最大であるデータを、前記第１の記憶装置から前記第２の記憶装置へ移動させることを特徴とする付記１または２記載のストレージ制御装置。
【０１３３】
（付記４）  前記複数種類のアクセス指標値の１つとして、前記第１の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれることを特徴とする付記１または２記載のストレージ制御装置。
【０１３４】
（付記５）  前記複数種類のアクセス指標値の他の１つとして、前記第１の記憶装置に記憶された前記複数のデータそれぞれに対する、直近の単位時間におけるアクセス時に前記ストレージ制御装置が送受信するデータのサイズの合計を示すネットワーク転送量、または、前記ストレージ制御装置が備えるキャッシュメモリの容量のうち、前記複数のデータそれぞれに対するアクセス用に使用されている使用量を示すキャッシュ使用量が含まれることを特徴とする付記４記載のストレージ制御装置。
【０１３５】
（付記６）  前記移動制御部は、前記複数種類の処理指標値のうち、前記処理時間とは異なる種類の処理指標値が所定の閾値を超えたとき、前記処理時間が最大であるデータを前記第１の記憶装置から前記第２の記憶装置へ移動させることを特徴とする付記４または５記載のストレージ制御装置。
【０１３６】
（付記７）  前記処理時間とは異なる種類の処理指標値として、直近の単位時間のうち、前記ストレージ制御装置が備えるプロセッサが処理を実行している時間の割合を示すプロセッサ使用率、または、直近の単位時間のうち、前記ストレージ制御装置から前記第１の記憶装置へのアクセス処理を実行している時間の割合を示す値が含まれることを特徴とする付記６記載のストレージ制御装置。
【０１３７】
（付記８）  前記移動制御部は、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がある場合には、当該同じ種類のアクセス指標値が最大であるデータを前記第１の記憶装置から前記第２の記憶装置へ移動させ、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がない場合には、前記処理時間が最大であるデータを前記第１の記憶装置から前記第２の記憶装置へ移動させることを特徴とする付記４または５記載のストレージ制御装置。
【０１３８】
（付記９）  前記複数種類のアクセス指標値の１つとして、前記第１の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれ、
前記移動制御部は、閾値を超えた処理指標値に対応するアクセス指標値として前記処理時間を選択した場合、前記処理時間が最大であるデータを特定し、前記特定したデータについて計測された前記処理時間、および、前記ストレージ制御装置が備えるプロセッサと前記複数の他のストレージ制御装置それぞれが備えるプロセッサとの性能比に基づいて、前記特定したデータを対応する記憶装置に移動させた後の前記複数の他のストレージ制御装置それぞれについての同じ種類のアクセス指標値の推定値を算出し、前記推定値が最小となるストレージ制御装置を前記第２の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定する、
ことを特徴とする付記２記載のストレージ制御装置。
【０１３９】
（付記１０）  第１の記憶装置に対するアクセスを制御するストレージ制御装置が、
前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値と、前記第１の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値とを計測し、
前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、前記選択したアクセス指標値が最大であるデータを、前記第１の記憶装置から、他のストレージ制御装置によってアクセスが制御される第２の記憶装置へ移動させる、
ことを特徴とするストレージ制御方法。
【０１４０】
（付記１１）  前記第２の記憶装置へのデータ移動では、前記第２の記憶装置を含む複数の記憶装置のそれぞれに対するアクセスを制御する複数の他のストレージ制御装置から、閾値を超えた処理指標値と同じ種類の処理指標値が最小であるストレージ制御装置を、前記第２の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定することを特徴とする付記１０記載のストレージ制御方法。
【０１４１】
（付記１２）  前記第２の記憶装置へのデータ移動では、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値のうち閾値を超えた処理指標値と同じ種類のアクセス指標値が最大であるデータを、前記第１の記憶装置から前記第２の記憶装置へ移動させることを特徴とする付記１０または１１記載のストレージ制御方法。
【０１４２】
（付記１３）  前記複数種類のアクセス指標値の１つとして、前記第１の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれることを特徴とする付記１０または１１記載のストレージ制御方法。
【０１４３】
（付記１４）  前記第２の記憶装置へのデータ移動では、前記複数種類の処理指標値のうち、前記処理時間とは異なる種類の処理指標値が所定の閾値を超えたとき、前記処理時間が最大であるデータを前記第１の記憶装置から前記第２の記憶装置へ移動させることを特徴とする付記１３記載のストレージ制御方法。
【０１４４】
（付記１５）  前記第２の記憶装置へのデータ移動では、前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がある場合には、当該同じ種類のアクセス指標値が最大であるデータを前記第１の記憶装置から前記第２の記憶装置へ移動させ、前記複数種類のアクセス指標値の中に閾値を超えた処理指標値と同じ種類のアクセス指標値がない場合には、前記処理時間が最大であるデータを前記第１の記憶装置から前記第２の記憶装置へ移動させることを特徴とする付記１３記載のストレージ制御方法。
【０１４５】
（付記１６）  前記複数種類のアクセス指標値の１つとして、前記第１の記憶装置に記憶された前記複数のデータそれぞれに対するアクセス時における、アクセス要求の受信からアクセス処理完了の応答までの時間に基づく処理時間が含まれ、
前記第２の記憶装置へのデータ移動では、閾値を超えた処理指標値に対応するアクセス指標値として前記処理時間を選択した場合、前記処理時間が最大であるデータを特定し、前記特定したデータについて計測された前記処理時間、および、前記ストレージ制御装置が備えるプロセッサと前記複数の他のストレージ制御装置それぞれが備えるプロセッサとの性能比に基づいて、前記特定したデータを対応する記憶装置に移動させた後の前記複数の他のストレージ制御装置それぞれについての同じ種類のアクセス指標値の推定値を算出し、前記推定値が最小となるストレージ制御装置を前記第２の記憶装置に対するアクセスを制御する他のストレージ制御装置として特定する、
ことを特徴とする付記１１記載のストレージ制御方法。
【０１４６】
（付記１７）  第１の記憶装置に対するアクセスを制御するコンピュータに、
前記ストレージ制御装置の処理負荷状態をそれぞれ示す複数種類の処理指標値の計測値と、前記第１の記憶装置に記憶された複数のデータそれぞれに対するアクセス処理の負荷状態を示す複数種類のアクセス指標値の計測値とを取得し、
前記複数種類の処理指標値のいずれかが処理指標値毎に決められた閾値を超えたとき、前記複数種類のアクセス指標値から、閾値を超えた処理指標値に対応するアクセス指標値を選択し、前記選択したアクセス指標値が最大であるデータを、前記第１の記憶装置から、他のストレージ制御装置によってアクセスが制御される第２の記憶装置へ移動させる、
処理を実行させることを特徴とするストレージ制御プログラム。
【符号の説明】
【０１４７】
１，１ａ  ストレージ制御装置
２，２ａ  記憶装置
３  計測部
４  移動制御部
５ａ，５ｂ  処理指標値
６ａ，６ｂ  アクセス指標値
【図１】
2014229235.tif 000003
【図２】
2014229235.tif 000004
【図３】
2014229235.tif 000005
【図４】
2014229235.tif 000006
【図５】
2014229235.tif 000007
【図６】
2014229235.tif 000008
【図７】
2014229235.tif 000009
【図８】
2014229235.tif 000010
【図９】
2014229235.tif 000011
【図１０】
2014229235.tif 000012
【図１１】
2014229235.tif 000013
【図１２】
2014229235.tif 000014