(57)【要約】【課題】ストレージ装置が許容できる最大負荷に対する現実の負荷の割合を正確に計算することができるようにする。【解決手段】最大負荷算出手段１ａは、ストレージ装置２に対する所定期間内の１アクセス要求当たりの平均応答時間に基づいて、ストレージ装置２で単位時間当たりに処理可能な最大アクセス要求数を算出し、算出した最大アクセス要求数を最大負荷記憶手段１ｂに格納する。負荷指標算出手段１ｃは、最大負荷記憶手段１ｂに格納された最大アクセス要求数に対する所定期間内のアクセス要求数の割合を算出し、ストレージ装置２の所定期間における負荷を示す負荷指標として出力する。【選択図】図１
2011197804.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置の負荷を解析する負荷解析プログラムであって、
コンピュータに、
前記ストレージ装置に対する所定期間内の１アクセス要求当たりの平均応答時間に基づいて、前記ストレージ装置で単位時間当たりに処理可能な最大アクセス要求数を算出し、前記最大アクセス要求数を最大負荷記憶手段に格納し、
前記最大負荷記憶手段に格納された前記最大アクセス要求数に対する前記所定期間内のアクセス要求数の割合を、前記ストレージ装置の前記所定期間における負荷を示す負荷指標として出力する、
処理を実行させる負荷解析プログラム。
【請求項２】
前記コンピュータに、さらに、
前記ストレージ装置内の記憶領域と、記憶領域が割り当てられた論理ボリュームとの対応関係を記憶する割り当て情報記憶手段を参照し、アクセス要求のアクセス対象となった記憶領域が割り当てられた論理ボリュームの内訳を計算し、論理ボリュームごとの内訳に応じて、前記負荷指標で示される前記ストレージ装置の前記所定期間における負荷に対する論理ボリュームごとの影響度を算出する、
処理を実行させる請求項１記載の負荷解析プログラム。
【請求項３】
前記最大アクセス要求数を算出する際には、前記単位時間を前記平均応答時間で除算した値を、前記最大アクセス要求数とすることを特徴とする請求項１または２のいずれかに記載の負荷解析プログラム。
【請求項４】
前記論理ボリュームごとの前記影響度を算出する際には、各論理ボリュームに割り当てられた前記ストレージ装置内の記憶領域をアクセス先とする前記所定期間内のアクセス要求の実行時間を論理ボリュームごとに累積した累積実行時間に基づいて、前記負荷指標の値を各論理ボリュームに比例配分し、配分された値を各論理ボリュームの前記影響度とすることを特徴とする請求項２記載の負荷解析プログラム。
【請求項５】
各論理ボリュームの前記影響度を算出する際には、
前記ストレージ装置に対する所定期間内のアクセス要求を取得し、該アクセス要求の取得時刻を、該アクセス要求のアクセス先の記憶領域が割り当てられている論理ボリュームに関連付けてアクセス情報記憶手段に格納し、
前記ストレージ装置からアクセス要求に対する応答を取得し、該応答に対応するアクセス要求の取得時刻を前記アクセス情報記憶手段から抽出し、
抽出した取得時刻が関連付けられている論理ボリュームに対応付けられた実行時間記憶手段に格納されている累積実行時間に、抽出した取得時刻から現在までの経過時間を加算し、
前記所定期間終了時に論理ボリュームごとに設けられた前記実行時間記憶手段に記憶されている前記累積実行時間を、各論理ボリュームの累積実行時間とする、
ことを特徴とする請求項４記載の負荷解析プログラム。
【請求項６】
ストレージ装置の負荷を解析する負荷解析方法であって、
コンピュータが、
前記ストレージ装置に対する所定期間内の１アクセス要求当たりの平均応答時間に基づいて、前記ストレージ装置で単位時間当たりに処理可能な最大アクセス要求数を算出し、前記最大アクセス要求数を最大負荷記憶手段に格納し、
前記最大負荷記憶手段に格納された前記最大アクセス要求数に対する前記所定期間内のアクセス要求数の割合を、前記ストレージ装置の前記所定期間における負荷を示す負荷指標として出力する、
することを特徴とする負荷解析方法。
【請求項７】
ストレージ装置の負荷を解析する負荷解析装置であって、
前記ストレージ装置に対する所定期間内の１アクセス要求当たりの平均応答時間に基づいて、前記ストレージ装置で単位時間当たりに処理可能な最大アクセス要求数を算出し、前記最大アクセス要求数を最大負荷記憶手段に格納する最大負荷算出手段と、
前記最大負荷記憶手段に格納された前記最大アクセス要求数に対する前記所定期間内のアクセス要求数の割合を、前記ストレージ装置の前記所定期間における負荷を示す負荷指標として出力する負荷指標算出手段と、
を有する負荷解析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置の負荷を解析する負荷解析プログラム、負荷解析方法、および負荷解析装置に関する。
【背景技術】
【０００２】
現在、コンピュータを用いたデータ処理が広く行われるようになり、データを保存・利用するためのストレージ技術が一層重要となっている。近年では、データ保存の高信頼化やデータ利用の高速化を図るため、マルチノードストレージシステムが構築されている。
【０００３】
マルチノードストレージシステムでは、複数のディスクノードとアクセスノードとがネットワークを介して接続される。ディスクノードはストレージ装置を備えており、ストレージ装置にデータを記憶させる。アクセスノードは、ディスクノードに接続されたストレージ装置に記憶されたデータにアクセスする。このときアクセスノードは、複数のディスクノードのストレージ装置にデータを分散して格納することができる。これにより、複数のディスクノードに負荷が分散されてシステムの高速化を図れる。また、アクセスノードは、データを冗長化して複数のストレージ装置に配置することもできる。これにより、データ保存の高信頼化を図れる。
【０００４】
なお、マルチノードストレージシステムでは、例えば、複数のディスクノードのストレージ装置に跨って１つの論理的な記憶領域（論理ボリューム）を設けることができる。論理ボリュームを複数設け、提供するサービスごとに使い分けることもできる。このようにすると、複数のサービスでマルチノードストレージシステムの利点を享受できる。
【０００５】
ところで、システムの運用管理において、システムを構成するノードで発生する負荷の監視が行われる場合がある。負荷の監視により、負荷の集中しているディスクノードや処理能力に余裕があるディスクノードを特定することができる。負荷の監視結果に基づき、システム全体のチューニング、ハードウェア資源の拡充および機能の追加などを、的確に行うことができる。
【０００６】
例えば、ホストコンピュータと磁気ディスク装置との間の接続を行う磁気ディスク結合装置で、磁気ディスク装置の負荷を計測する技術がある。磁気ディスク装置の負荷を計測すると、例えば、負荷が基準値を超えた磁気ディスク装置について過負荷と判断することができる。
【０００７】
またマルチノードストレージシステムでは、例えば、データ格納量と全記憶装置の最大記憶可能容量との比などのシステム全体の使用率をモニタし、使用率に応じた指標値に基づいて、分散配置を実行する技術がある。これにより、使用容量の平準化等が可能となる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−３１２１２６号公報
【特許文献２】特開２００５−０５０３０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、従来のストレージ装置の負荷の計算方法では、ストレージ装置が許容できる最大負荷に対する現在の負荷の度合いを正確に判断できない場合がある。例えば、ストレージ装置の最大負荷は、アクセスの種類（リードまたはライト）、アクセス対象のデータサイズ、アクセス対象の記憶領域などで変動する。そのため、ストレージ装置の所定の使用状況を想定して最大負荷を決めてしまうと、想定された使用状況と異なる使用状況となったときに、負荷指標の値が不正確となる。
【００１０】
特にホットスポットと言われる数ＧＢ程度の範囲にアクセスが集中する場合がある。この場合、ストレージ装置に十分な容量のキャッシュメモリが搭載されていれば、キャッシュヒット率が高くなり、ストレージ装置で単位時間当たりに処理可能なアクセス要求数が多くなる。すなわち、ストレージ装置で許容できる最大負荷が大きくなる。その結果、所定の使用状況に基づく最大負荷を基準に計算された負荷指標の値と、実際の負荷状況とが大きく乖離してしまう。
【００１１】
本発明はこのような点に鑑みてなされたものであり、ストレージ装置が許容できる最大負荷に対する現実の負荷の割合を正確に計算することができる負荷解析プログラム、負荷解析方法、および負荷解析装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、ストレージ装置の負荷を解析する負荷解析プログラムが提供される。この負荷解析プログラムは、コンピュータに以下の処理を実行させる。
コンピュータは、ストレージ装置に対する所定期間内の１アクセス要求当たりの平均応答時間に基づいて、ストレージ装置で単位時間当たりに処理可能な最大アクセス要求数を算出する。次にコンピュータは、最大アクセス要求数を最大負荷記憶手段に格納する。そしてコンピュータは、最大負荷記憶手段に格納された最大アクセス要求数に対する所定期間内のアクセス要求数の割合を、ストレージ装置の所定期間における負荷を示す負荷指標として出力する。
【００１３】
また上記課題を解決するために、上記負荷解析プログラムを実行するコンピュータを同様の処理を行う負荷解析方法が提供される。さらに上記課題を解決するために、負荷解析プログラムに基づいてコンピュータ上で実現される機能と同様の機能を有する負荷解析装置が提供される。
【発明の効果】
【００１４】
ストレージ装置が許容できる所定期間ごとの最大負荷に基づいて、所定期間ごとの負荷を正確に計算することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態の機能を示すブロック図である。
【図２】マルチノードストレージシステムの構成を示す図である。
【図３】管理ノードのハードウェアの一構成例を示す図である。
【図４】論理ボリュームの構成例を示す図である。
【図５】第２の実施の形態に係るシステムの機能を示すブロック図である。
【図６】アクセス情報記憶部のデータ構造例を示す図である。
【図７】アクセスノードから送信されるアクセス要求パケットの一例を示す図である。
【図８】ストレージ負荷計測部の内部機能を示すブロック図である。
【図９】ストレージ装置の負荷計測処理の手順の一例を示すフローチャートである。
【図１０】ストレージ負荷記憶部のデータ構造例を示す図である。
【図１１】論理ボリューム負荷計測部の内部機能を示すブロック図である。
【図１２】論理ボリューム判別情報記憶部のデータ構造例を示す図である。
【図１３】論理ボリュームごとのストレージ装置に与える負荷の計測処理の手順の一例を示すフローチャートである。
【図１４】論理ボリューム負荷記憶部のデータ構造例を示す図である。
【図１５】負荷情報記憶部のデータ構造例を示す図である。
【図１６】負荷解析処理の手順を示すフローチャートである。
【図１７】解析結果記憶部のデータ構造例を示す図である。
【図１８】解析結果の表示例を示す図である。
【図１９】誤判定が回避される例を示す図である。
【図２０】第３の実施の形態に係るシステムの機能を示すブロック図である。
【図２１】第４の実施の形態に係るシステムの機能を示すブロック図である。
【図２２】論理ボリューム負荷記憶部のデータ構造例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態の機能を示すブロック図である。第１の実施の形態では、負荷解析装置１によって、アクセス装置３からストレージ装置２へのアクセスに基づくストレージ装置２の負荷を解析する。
【００１７】
負荷解析装置１は、例えばアクセス装置３とストレージ装置２との通信路から、アクセス装置３からストレージ装置２へのアクセス要求と、そのアクセス要求に対する応答とを検出する。負荷解析装置１は、検出したアクセス要求と、そのアクセス要求に対する応答とに基づいて、ストレージ装置２の負荷を解析する。そのために負荷解析装置１は、最大負荷算出手段１ａ、最大負荷記憶手段１ｂ、負荷指標算出手段１ｃ、割り当て情報記憶手段１ｄ、論理ボリューム影響度算出手段１ｅ、および解析結果記憶手段１ｆを有している。
【００１８】
最大負荷算出手段１ａは、ストレージ装置２に対する所定期間内の１アクセス要求当たりの平均応答時間に基づいて、ストレージ装置２で単位時間当たりに処理可能な最大アクセス要求数を算出する。例えば最大負荷算出手段１ａは、所定の単位時間を平均応答時間で除算した値を、最大アクセス要求数とする。単位時間が１秒であり、平均応答時間が秒単位で表されていれば、平均応答時間の逆数が最大アクセス要求数となる。最大負荷算出手段１ａは、算出した最大アクセス要求数を最大負荷記憶手段１ｂに格納する。
【００１９】
なお平均応答時間は、例えば所定期間内でのストレージ装置２に対する各アクセス要求に対するストレージ装置２での実行時間の累計値を、ストレージ装置２に対する所定期間内のアクセス要求数で除算することで算出される。平均応答時間は、ネットワーク経由で送受信されるアクセス要求と、そのアクセス要求に対する応答との組から、最大負荷算出手段１ａが算出することが可能である。ただし、ストレージ装置２に対してより近い部分から検出したアクセス要求と応答との組に基づいて平均応答時間を算出することで、より正確な平均応答時間を得ることができる。例えば、ストレージ装置２に直接（ネットワークを介さずに）接続された装置において、アクセス要求と応答との組を検出すればよい。その場合、アクセス要求と応答との組を検出した装置において所定期間ごとの平均応答時間を算出し、算出された平均応答時間を負荷解析装置１に送信するようにしてもよい。
【００２０】
最大負荷記憶手段１ｂは、最大アクセス要求数を記憶する。例えば負荷解析装置１の主記憶装置や補助記憶装置の記憶領域の一部が、最大負荷記憶手段１ｂとして使用される。
負荷指標算出手段１ｃは、最大負荷記憶手段１ｂに格納された最大アクセス要求数に対する所定期間内のアクセス要求数の割合を算出し、ストレージ装置２の所定期間における負荷を示す負荷指標として出力する。例えば、負荷指標算出手段１ｃは、算出した負荷指標を解析結果記憶手段１ｆに格納する。
【００２１】
割り当て情報記憶手段１ｄは、ストレージ装置２内の記憶領域と、記憶領域が割り当てられた論理ボリュームとの対応関係を記憶する。例えば負荷解析装置１の主記憶装置や補助記憶装置の記憶領域の一部が、割り当て情報記憶手段１ｄとして使用される。
【００２２】
論理ボリューム影響度算出手段１ｅは、割り当て情報記憶手段１ｄを参照し、アクセス要求のアクセス対象となった記憶領域が割り当てられた論理ボリュームの内訳を計算する。そして論理ボリューム影響度算出手段１ｅは、論理ボリュームごとの内訳に応じて、負荷指標で示されるストレージ装置２の所定期間における負荷に対する論理ボリュームごとの影響度を算出する。論理ボリューム影響度算出手段１ｅは、算出した各論理ボリュームの影響度を、その論理ボリュームの負荷指標として解析結果記憶手段１ｆに格納することができる。
【００２３】
なお、論理ボリュームごとの影響度の算出は、例えば次のような手順で行われる。すなわち論理ボリューム影響度算出手段１ｅは、各論理ボリュームに割り当てられたストレージ装置２内の記憶領域をアクセス先とする所定期間内のアクセス要求の実行時間を論理ボリュームごとに累積した累積実行時間を算出する。そして論理ボリューム影響度算出手段１ｅは、論理ボリュームごとの累積実行時間に応じて負荷指標の値を各論理ボリュームに比例配分し、配分された値を各論理ボリュームの影響度とする。
【００２４】
このような負荷解析装置１によれば、所定時間ごとの平均応答時間に基づいて、最大負荷算出手段１ａにより、その所定時間における最大アクセス要求数が算出される。この最大アクセス要求数は、平均応答時間が短いほど大きな値となり、平均応答時間が長いほど小さな値となる。そして、負荷指標算出手段１ｃにより、最大アクセス要求数に対する所定時間におけるアクセス要求の割合が、負荷指標として算出される。
【００２５】
このようにして算出された負荷指標は、解析対象となった所定時間内のアクセスの状況を反映した値となる。すなわち、平均応答時間は、アクセスの種類（リードまたはライト）、アクセス対象データサイズの分布（例えば、０．５ＫＢから５１２ＫＢまでの割合）、アクセス要求が発生した記憶領域の範囲などに応じて変化することが実験により確かめられている。例えばストレージ装置２内の特定の記憶領域に集中してアクセス要求が出された場合、ストレージ装置２ではキャッシュメモリを活用し、アクセス要求に対して短時間で応答可能となる。第１の実施の形態によれば、発生したアクセスの状況に応じて最大アクセス要求数が随時算出される。その結果、ストレージ装置２全体の負荷指標の値を、より実際に発生した負荷に近づけることができる。
【００２６】
しかも、第１の実施の形態では、論理ボリュームごとの内訳については、実行されたアクセス要求数ではなく、累積実行時間で比例配分することができる。これにより、特にホットスポット発生時などに、ストレージ装置２への負荷の影響度が高い論理ボリュームを正確に求めることが可能となる。すなわち、実行されたアクセス要求数で負荷指標を比例配分すると、ホットスポットと呼ばれる特定の記憶領域に集中して多数のアクセスが行われた論理ボリュームが、ストレージ装置２へ大きな負荷を与えていると判断される可能性がある。しかし、ホットスポットへのアクセスが非常に短時間で完了できるのであれば、その論理ボリュームに関するアクセスの累積実行時間は、他の論理ボリュームの累積実行時間よりも少ない場合もあり得る。累積実行時間が短ければ、それだけストレージ装置２に与える負荷も少ないと考えることができる。そのため、ストレージ装置２に対して最も大きな負荷を与えている論理ボリュームは、ホットスポットへの大量のアクセスを行っている論理ボリューム以外の論理ボリュームであると考えられる。
【００２７】
論理ボリュームごとの累積実行時間に基づいて負荷指標を比例配分し、各論理ボリュームの影響度とすれば、実際にストレージ装置２に大きな負荷をかけている論理ボリュームほど影響度が高くなる。すなわち、アクセス要求数ではなく、累積実行時間で比較することで、ストレージ装置２に対する負荷の原因となっている論理ボリュームを適切に判断することが可能となる。
【００２８】
〔第２の実施の形態〕
第２の実施の形態は、マルチノードストレージシステムにおける各ディスクノードで管理されるストレージ装置の負荷を計算するものである。以下に、第２の実施の形態の詳細を説明する。
【００２９】
図２は、マルチノードストレージシステムの構成を示す図である。マルチノードストレージシステムは、同一内容の複数のデータをネットワークで接続された複数のディスクノードに分散して配置することで、信頼性と処理性能とを向上させたストレージシステムである。このマルチノードストレージシステムは、管理ノード１００、ディスクノード２００，３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００を有する。管理ノード１００、ディスクノード２００，３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００は、スイッチ装置１０を介して相互にデータ通信可能に接続される。また、端末装置５１，５２がネットワーク５０を介してアクセスノード６００，７００，８００に接続されている。
【００３０】
管理ノード１００は、マルチノードストレージシステムの管理者が操作する運用管理用の端末装置である。管理者は、管理ノード１００を用いて、ディスクノード２００，３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００の利用状況を監視することができる。また、管理者は、管理ノード１００を操作して、ディスクノード２００，３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００にアクセスし、運用に必要な各種設定を行うことができる。
【００３１】
ディスクノード２００，３００，４００には、それぞれストレージ装置２１０，３１０，４１０が接続されている。ストレージ装置２１０，３１０，４１０は、例えば、内蔵する複数のＨＤＤ（Hard disk Drive）を用いたＲＡＩＤ（Redundant Arrays of Independent Disks）システムである。ディスクノード２００，３００，４００は、ストレージ装置２１０，３１０，４１０に格納されたデータをスイッチ装置１０経由でアクセスノード６００，７００，８００に提供する。
【００３２】
コントロールノード５００は、ディスクノード２００，３００，４００を管理する。具体的には、コントロールノード５００は、データの配置状況を示す論理ボリュームを保持している。コントロールノード５００は、ディスクノード２００，３００，４００からデータの管理に関する情報を取得し、必要に応じて論理ボリュームを更新する。また、コントロールノード５００は、論理ボリュームが更新されると、その影響を受けるディスクノードに対して更新内容を通知する。論理ボリュームの詳細は、後述する。
【００３３】
アクセスノード６００，７００，８００は、端末装置５１，５２に対して、ディスクノード２００，３００，４００が管理するデータを利用した情報処理のサービスを提供する。すなわち、アクセスノード６００は、端末装置５１，５２からの要求に応答して所定のプログラムを実行し、必要に応じてディスクノード２００，３００，４００にアクセスする。ここで、アクセスノード６００，７００，８００は、コントロールノード５００から論理ボリュームを取得し、取得した論理ボリュームに基づいてアクセスすべきディスクノードを特定する。
【００３４】
図３は、管理ノードのハードウェアの一構成例を示す図である。管理ノード１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０９を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００３５】
ＲＡＭ１０２は、管理ノード１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３６】
バス１０９に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００３７】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、管理ノード１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３９】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４０】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４１】
通信インタフェース１０７は、スイッチ装置１０に接続されている。通信インタフェース１０７は、スイッチ装置１０を介して、管理ノード１００、アクセスノード６００，７００，８００、コントロールノード５００などとの間でデータの送受信を行う。
【００４２】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には管理ノード１００のハードウェア構成を示したが、ディスクノード２００，３００，４００、コントロールノード５００、およびアクセスノード６００，７００，８００も同様のハードウェア構成で実現することができる。ただし、ディスクノード２００，３００，４００は、ストレージ装置２１０，３１０，４１０を接続するためのストレージインタフェースを更に有している。
【００４３】
次に、マルチノードストレージシステムで提供される論理ボリュームについて説明する。論理ボリュームは、ディスクノード２００，３００，４００によって分散管理されているデータを、アクセスノード６００，７００，８００から容易に利用できるようにするための仮想的なボリュームである。
【００４４】
図４は、論理ボリュームの構成例を示す図である。第２の実施の形態では、マルチノードストレージシステムは３つの論理ボリューム９１０，９２０，９３０を有する。
論理ボリューム９１０には、“ＬＶＯＬ０”という論理ボリュームＩＤが付与されている。論理ボリューム９１０は、６つのセグメント９１１〜９１６に分割されて、管理されている。セグメント９１１〜９１６には、それぞれ論理ボリュームＩＤ“ＬＶＯＬ０”に対して、“０”〜“５”というセグメントＩＤが付与されている。
【００４５】
論理ボリューム９２０には、“ＬＶＯＬ１”という論理ボリュームＩＤが付与されている。論理ボリューム９２０は、６つのセグメント９２１〜９２６に分割されて、管理されている。セグメント９２１〜９２６には、それぞれ論理ボリュームＩＤ“ＬＶＯＬ１”に対して、“０”〜“５”というセグメントＩＤが付与されている。
【００４６】
論理ボリューム９３０には、“ＬＶＯＬ２”という論理ボリュームＩＤが付与されている。論理ボリューム９３０は、６つのセグメント９３１〜９３６に分割されて、管理されている。セグメント９３１〜９３６には、それぞれ論理ボリュームＩＤ“ＬＶＯＬ２”に対して、“０”〜“５”というセグメントＩＤが付与されている。
【００４７】
各論理ボリューム９１０，９２０，９３０に含まれるセグメントは、同じ記憶容量である。例えば各セグメントは、１ＧＢの仮想的な記憶領域である。
また、ディスクノード２００には、“ＳＮ−Ａ”というディスクノードＩＤが付与されている。ディスクノード３００には、“ＳＮ−Ｂ”というディスクノードＩＤが付与されている。ディスクノード４００には、“ＳＮ−Ｃ”というディスクノードＩＤが付与されている。ストレージ装置２１０，３１０，４１０では、その物理的な記憶領域が６つのスライスに分割されて、管理されている。
【００４８】
ストレージ装置２１０内の記憶領域は、６つのスライス２１１〜２１６に分割されている。スライス２１１〜２１６には、ディスクノードＩＤ“ＳＮ−Ａ”に対して“０”〜“５”というスライスＩＤが付与されている。
【００４９】
ストレージ装置３１０内の記憶領域は、６つのスライス３１１〜３１６に分割されている。スライス３１１〜３１６には、ディスクノードＩＤ“ＳＮ−Ｂ”に対して“０”〜“５”というスライスＩＤが付与されている。
【００５０】
ストレージ装置４１０内の記憶領域は、６つのスライス４１１〜４１６に分割されている。スライス４１１〜４１６には、ディスクノードＩＤ“ＳＮ−Ｃ”に対して“０”〜“５”というスライスＩＤが付与されている。
【００５１】
ストレージ装置２１０，３１０，４１０に含まれる各スライスの記憶容量は、論理ボリューム９１０，９２０，９３０の各セグメントの記憶容量と同じである。例えばセグメントの記憶容量が１ＧＢであれば、各スライスの記憶容量も１ＧＢである。
【００５２】
論理ボリューム９１０，９２０，９３０の各セグメントには、ストレージ装置２１０，３１０，４１０のスライスが割り当てられる。論理ボリューム９１０，９２０，９３０のセグメントのデータは、そのセグメントに割り当てられたスライスに格納される。
【００５３】
例えば図４では、セグメント９１１には、スライス２１１が割り当てられている。セグメント９１２には、スライス３１１が割り当てられている。セグメント９１３には、スライス４１１が割り当てられている。セグメント９１４には、スライス２１２が割り当てられている。セグメント９１５には、スライス３１２が割り当てられている。セグメント９１６には、スライス４１２が割り当てられている。
【００５４】
このように論理ボリューム９１０のセグメント９１１〜９１６には、ストレージ装置２１０，３１０，４１０のスライスＩＤ“０”、“１”のスライスが割り当てられている。各セグメント９１１〜９１６内を指定したデータアクセスは、該当するセグメントに割り当てられたスライスに対して実行される。これにより、論理ボリューム９１０のデータがストレージ装置２１０，３１０，４１０に分散配置される。
【００５５】
また、論理ボリューム９２０のセグメント９２１〜９２６には、ストレージ装置２１０，３１０，４１０のスライスＩＤ“２”、“３”のスライスが割り当てられている。各セグメント９２１〜９２６内を指定したデータアクセスは、該当するセグメントに割り当てられたスライスに対して実行される。これにより、論理ボリューム９２０のデータがストレージ装置２１０，３１０，４１０に分散配置される。
【００５６】
また、論理ボリューム９３０のセグメント９３１〜９３６には、ストレージ装置２１０，３１０，４１０のスライスＩＤ“４”、“５”のスライスが割り当てられている。各セグメント９３１〜９３６内を指定したデータアクセスは、該当するセグメントに割り当てられたスライスに対して実行される。これにより、論理ボリューム９３０のデータがストレージ装置２１０，３１０，４１０に分散配置される。
【００５７】
なお、論理ボリュームは、データの用途やアクセス元の権限などに応じて複数作成することができる。ここでは、論理ボリューム９１０は、アクセスノード６００のみからのアクセスが可能である。論理ボリューム９２０は、アクセスノード７００のみからのアクセスが可能である。論理ボリューム９３０は、アクセスノード８００のみからのアクセスが可能である。論理ボリュームに割り当てられていないスライスは、アクセスノード６００，７００，８００から認識することができない。例えば、アクセスノード６００は、ストレージ装置２１０のスライスのうち論理ボリューム９１０のセグメント９１１，９１４に割り当てられたスライス２１１，２１２以外は認識することができない。このため、論理ボリュームを使い分けることはセキュリティの向上にも寄与する。
【００５８】
このような論理ボリューム９１０，９２０，９３０の各セグメントに割り当てられたスライスに関する情報は、コントロールノード５００で管理される。例えば、コントロールノード５００は、論理ボリューム作成時に、各ディスクノード２００，３００，４００で管理されているストレージ装置２１０，３１０，４１０内の空きスライスを、作成する論理ボリュームのセグメントに割り当てる。コントロールノード５００は、セグメントとスライスとの割当関係を示すアクセス情報を、作成した論理ボリュームを使用するアクセスノードに送信する。アクセスノードは受信したアクセス情報に基づいて、端末装置から出されたアクセス要求の対象となるセグメントに割り当てられたスライスを判断する。
【００５９】
またコントロールノード５００は、作成した論理ボリュームのセグメントに割り当てられたスライスを管理するディスクノードに対しても、その論理ボリュームのアクセス情報を送信する。アクセス情報を受け取ったディスクノードは、そのアクセス情報に基づいて、自身の管理するストレージ装置内のスライスの割り当て先となるセグメントを認識する。
【００６０】
次に、マルチノードストレージシステムにおいてストレージ装置の負荷を計測するための機能について説明する。
図５は、第２の実施の形態に係るシステムの機能を示すブロック図である。図５には、ディスクノード２００に接続されたストレージ装置２１０の負荷を計測するための機能が示されている。
【００６１】
アクセスノード６００は、アクセス情報記憶部６１０とデータアクセス制御部６２０とを有している。
アクセス情報記憶部６１０は、アクセスノード６００においてアクセス環境を提供する論理ボリューム（論理ボリュームＩＤ：ＬＶＯＬ０）のアクセス情報を記憶する。例えばアクセスノード６００内のＲＡＭやＨＤＤの記憶領域の一部がアクセス情報記憶部６１０として使用される。
【００６２】
データアクセス制御部６２０は、端末装置５１，５２からの論理ボリューム内のデータへのアクセス要求に応じて、該当するデータを管理しているディスクノードへデータのアクセス要求を送信する。そして、データアクセス制御部６２０は、ディスクノードへのアクセス結果を、アクセス要求を出力した端末装置に応答する。この際、データアクセス制御部６２０は、アクセス情報記憶部６１０を参照して、アクセス対象のデータを含むスライスのスライスＩＤ、およびそのスライスを管理しているディスクノードのディスクノードＩＤを判断する。
【００６３】
ディスクノード２００は、ディスクドライバ２２０、論理ボリューム管理部２３０、および負荷情報送信部２４０を有している。
ディスクドライバ２２０は、ストレージ装置２１０を制御する。ディスクドライバ２２０は、ディスクノード２００のＯＳにおけるカーネル２００ａ内で実行される。カーネル２００ａとは、ＣＰＵ、メモリ、周辺機器の制御など、ＯＳの基本機能を実現する部分である。ディスクドライバ２２０は、ディスクアクセス部２２１、ストレージ負荷計測部２２２、およびストレージ負荷記憶部２２３を有している。
【００６４】
ディスクアクセス部２２１は、カーネル２００ａ外のアプリケーション機能からのストレージ装置２１０へのアクセス要求に応答し、ストレージ装置２１０へのＩＯのアクセスを実行する。この際、ディスクアクセス部２２１は、アクセス要求の受信、およびそのアクセス要求に応じたストレージ装置２１０からのアクセス結果の応答の受信を、ストレージ負荷計測部２２２に通知する。例えばディスクアクセス部２２１は、アクセス要求を受信すると、そのアクセス要求を識別するためのリクエストＩＤとアクセス要求の種別（要求種別）とをストレージ負荷計測部２２２に通知する。要求種別は、アクセス要求がライト要求なのかリード要求なのかを示す情報である。またディスクアクセス部２２１は、アクセス要求に対応する応答を受信すると、その応答に対応するアクセス要求のリクエストＩＤをストレージ負荷計測部２２２に通知する。
【００６５】
ストレージ負荷計測部２２２は、ストレージ装置２１０へのアクセス要求、およびそのアクセス要求に対する応答に基づいて、ストレージ装置２１０の負荷を計測する。ストレージ装置２１０の負荷計測処理の詳細は後述する。
【００６６】
ストレージ負荷記憶部２２３は、ストレージ負荷計測部２２２が計測したストレージ装置２１０の負荷を示す情報（ストレージ負荷情報）を記憶する。例えば、ディスクノード２００のＲＡＭやＨＤＤの記憶領域の一部が、ストレージ負荷記憶部２２３として使用される。
【００６７】
論理ボリューム管理部２３０は、ストレージ装置２１０内のスライスを指定したアクセスノード６００からのアクセス要求に応じて、ディスクドライバ２２０を介してデータアクセスを行う。論理ボリューム管理部２３０は、カーネル２００ａ外のアプリケーション機能としてディスクノード２００に実装されている。論理ボリューム管理部２３０は、論理ボリュームアクセス部２３１、論理ボリューム負荷計測部２３２、および論理ボリューム負荷記憶部２３３を有している。
【００６８】
論理ボリュームアクセス部２３１は、アクセスノード６００からのアクセス要求を取得する。そして、論理ボリュームアクセス部２３１は、アクセス要求で指定されているスライス内のデータへのアクセス要求をディスクドライバ２２０に対して出力する。論理ボリュームアクセス部２３１は、ディスクドライバ２２０からアクセス結果を示す応答が返されると、その応答をアクセスノード６００に送信する。この際、論理ボリュームアクセス部２３１は、アクセス要求の受信、およびそのアクセス要求に応じたディスクドライバ２２０からのアクセス要求に対する応答の受信を、論理ボリューム負荷計測部２３２に通知する。例えば論理ボリュームアクセス部２３１は、アクセス要求を受信すると、そのアクセス要求を識別するためのリクエストＩＤと、アクセス対象のスライスを示すスライスＩＤとを論理ボリューム負荷計測部２３２に通知する。なお、アクセス対象のスライスを示すスライスＩＤは、アクセス要求パケット（図７参照）のデータ部３２から取得することができる。また論理ボリュームアクセス部２３１は、アクセス要求に対応する応答を受信すると、その応答に対応するアクセス要求のリクエストＩＤを論理ボリューム負荷計測部２３２に通知する。
【００６９】
論理ボリューム負荷計測部２３２は、論理ボリュームへのアクセス要求および応答に基づいて、アクセス対象となった論理ボリュームごとの負荷を計測する。論理ボリュームの負荷計測処理の詳細は後述する。
【００７０】
論理ボリューム負荷記憶部２３３は、論理ボリューム負荷計測部２３２が計測した論理ボリュームごとの負荷を示す情報（論理ボリューム負荷情報）を記憶する。例えば、ディスクノード２００のＲＡＭやＨＤＤの記憶領域の一部が論理ボリューム負荷記憶部２３３として使用される。
【００７１】
負荷情報送信部２４０は、ディスクドライバ２２０および論理ボリューム管理部２３０で計測されたストレージ負荷情報と論理ボリューム負荷情報とを、管理ノード１００に送信する。例えば、負荷情報送信部２４０は、管理ノード１００からの負荷情報取得要求に応答し、ストレージ負荷記憶部２２３からストレージ負荷情報を取得すると共に、論理ボリューム負荷記憶部２３３から論理ボリューム負荷情報を取得する。そして、負荷情報送信部２４０は、取得したストレージ負荷情報と論理ボリューム負荷情報とを管理ノード１００に送信する。また、負荷情報送信部２４０は、予め決められた時間間隔でストレージ負荷情報と論理ボリューム負荷情報とを取得し、管理ノード１００に送信することもできる。なお、以下の説明では、ストレージ負荷情報と論理ボリューム負荷情報と含めた情報を、負荷情報と呼ぶこととする。
【００７２】
管理ノード１００は、ディスクノード２００，３００，４００から負荷情報を収集し、ストレージ装置２１０の負荷の状態を解析する。そして、管理ノード１００は、解析結果をモニタ１１などに表示する。そのために管理ノード１００は、負荷情報取得部１１０、負荷情報記憶部１２０、負荷解析部１３０、解析結果記憶部１４０、および解析結果表示部１５０を有している。
【００７３】
負荷情報取得部１１０は、ディスクノード２００，３００，４００からストレージ負荷情報、および論理ボリューム負荷情報を取得する。例えば、負荷情報取得部１１０は、管理者からのキーボードなどの入力装置を介した負荷解析を指示する操作入力に応答し、各ディスクノード２００，３００，４００に対して、負荷情報取得要求を送信する。そして負荷情報取得部１１０は、負荷情報取得要求に対する応答として各ディスクノード２００，３００，４００から送信された負荷情報を取得する。また、負荷情報取得部１１０は、各ディスクノード２００，３００，４００から所定の時間間隔で送信される負荷情報を取得することもできる。負荷情報取得部１１０は、取得した負荷情報を負荷情報記憶部１２０に格納する。
【００７４】
負荷情報記憶部１２０は、負荷情報を記憶する。例えば、管理ノード１００のＲＡＭ１０２やＨＤＤ１０３の記憶領域の一部が負荷情報記憶部１２０として使用される。
負荷解析部１３０は、負荷情報記憶部１２０に格納された負荷情報に基づいて、各論理ボリュームへのアクセスによるストレージ装置２１０，３１０，４１０それぞれの負荷を解析する。なお、負荷解析部１３０は、負荷の解析過程において、解析対象の期間ごとに個別に算出される最大負荷を記憶する最大負荷記憶部１３１を有している。解析対象の期間の長さは、予め設定された所定期間（例えば１分）である。最大負荷は、解析対象の期間において、単位時間当たりに処理可能なアクセス要求数の最大値である。最大負荷記憶部１３１としては、例えば、ＲＡＭ１０２の記憶領域の一部が使用される。負荷解析部１３０は、解析対象の期間ごとに個別に求めた最大負荷に基づいて、その解析対象の期間におけるストレージ装置の負荷を解析する。そして、負荷解析部１３０は、解析結果を解析結果記憶部１４０に格納する。
【００７５】
解析結果記憶部１４０は、負荷解析部１３０により解析されたストレージ装置の負荷を示す情報を記憶する。例えば、ＲＡＭ１０２やＨＤＤ１０３の記憶領域の一部が解析結果記憶部１４０として使用される。
【００７６】
解析結果表示部１５０は、解析結果記憶部１４０に格納された情報に基づいて、ストレージ装置の負荷の状況を、モニタ１１などに表示する。管理者は、モニタ１１を参照することで、ストレージ装置の負荷状況を確認できる。
【００７７】
次に、アクセス情報記憶部６１０の内容について詳細に説明する。
図６は、アクセス情報記憶部のデータ構造例を示す図である。アクセス情報記憶部６１０には、アクセス制御テーブル６１１が格納されている。アクセス制御テーブル６１１には、論理ボリュームＩＤ、セグメントＩＤ、ディスクノードＩＤ、およびスライスＩＤの欄が設けられている。各欄の横方向に並べられた情報が互いに関連付けられ、１つのセグメントに関するアクセス情報を示す。
【００７８】
論理ボリュームＩＤの欄には、論理ボリュームの識別子（論理ボリュームＩＤ）が設定される。セグメントＩＤの欄には、論理ボリュームＩＤで示される論理ボリューム内のセグメントの識別子（セグメントＩＤ）が設定される。ディスクノードＩＤの欄には、関連付けられたセグメントに割り当てられたスライスを管理しているディスクノードの識別子（ディスクノードＩＤ）が設定される。スライスＩＤの欄には、セグメントＩＤで示されるセグメントに割り当てられたスライスの識別子（スライスＩＤ）が設定される。
【００７９】
アクセス制御テーブル６１１には、例えば、論理ボリュームＩＤが“ＬＶＯＬ０”、セグメントＩＤが“０”、ディスクノードＩＤが“ＳＮ−Ａ”、スライスＩＤが“０”という情報が設定される。これは、論理ボリューム９１０のセグメント９１１に対して、ディスクノード２００のスライス２１１が割り当てられていることを示している。
【００８０】
なお、図６には、アクセスノード６００内のアクセス情報記憶部６１０のデータ構造例を示したが、他のアクセスノード７００，８００が有するアクセス情報記憶部も、アクセス情報記憶部６１０と同様のデータ構造である。ただし、アクセスノード７００が有するアクセス情報記憶部には、アクセスノード７００がアクセスする論理ボリューム（論理ボリュームＩＤ：ＬＶＯＬ１）のセグメントに関するアクセス情報が記憶される。またアクセスノード８００が有するアクセス情報記憶部には、アクセスノード８００がアクセスする論理ボリューム（論理ボリュームＩＤ：ＬＶＯＬ２）のセグメントに関するアクセス情報が記憶される。
【００８１】
なおコントロールノード５００は、すべての論理ボリュームに関するアクセス情報を、保持・管理している。コントロールノード５００で保持されているアクセス情報がマスタとなる。コントロールノード５００は、セグメントに割り当てるスライスの変更などのアクセス情報の変更を行うと、各アクセスノード６００，７００，８００に最新のアクセス情報を送信する。
【００８２】
またコントロールノード５００は、論理ボリュームの作成やアクセス情報の変更を行うと、各ディスクノード２００，３００，４００に最新のアクセス情報を送信する。例えば、各ディスクノードへは、そのディスクノードが管理しているスライスが割り当てられたセグメントに関するアクセス情報のみが送信される。各ディスクノード２００，３００，４００は、受信したアクセス情報を記憶する。例えば各ディスクノード２００，３００，４００は、アクセス情報をＲＡＭ内に格納すると共に、ストレージ装置２１０，３１０，４１０内にも格納する。
【００８３】
アクセスノード６００は、端末装置５１，５２から論理ボリューム内のデータのアクセス要求を受信すると、図６に示したアクセス制御テーブル６１１を参照し、アクセス対象のデータを含むセグメントに割り当てられたスライスを特定することができる。すなわち、アクセスノード６００は、アクセス対象のデータを含むセグメントに割り当てられたスライスを管理しているディスクノードのディスクノードＩＤ、および該当するスライスのスライスＩＤを取得する。そして、アクセスノード６００は、取得したディスクノードＩＤを有するディスクノードに対して、取得したスライスＩＤと、そのスライス内のアクセス対象のデータの指定とを含むアクセス要求パケットを送信する。
【００８４】
なお、アクセスノード６００，７００，８００とディスクノード２００，３００，４００との間の通信プロトコルとしては、例えばＩＰ（Internet Protocol）を用いることができる。その場合、各アクセスノード６００，７００，８００には、各ディスクノードＩＤに対応するディスクノードのＩＰアドレスが、予め登録される。各アクセスノード６００，７００，８００は、ディスクノードＩＤに対応するＩＰアドレスを宛先に設定したアクセス要求パケットを出力することで、アクセス対象のデータを含むスライスを管理しているディスクノードへアクセス要求パケットを送信することができる。
【００８５】
図７は、アクセスノードから送信されるアクセス要求パケットの一例を示す図である。アクセス要求パケット３０は、ヘッダ部３１およびデータ部３２を有する。
ヘッダ部３１には、プロトコル番号を示す領域および送信先ＩＰアドレスを示す領域が含まれる。プロトコル番号を示す領域には、処理要求の種別（リードまたはライト）を示す情報が格納される。送信先ＩＰアドレスを示す領域には、パケットの送信先となるディスクノードのＩＰアドレスが格納される。
【００８６】
データ部３２には、スライスＩＤを示す領域および対象データを示す領域が含まれる。スライスＩＤを示す領域には、アクセス対象となるデータを含むスライスのスライスＩＤが設定される。対象データを示す領域には、読み出し対象データを指定する情報（スライスの先頭からのオフセット、データ長など）や書き込み処理の対象となるデータとそのデータの格納場所が設定される。
【００８７】
次に、ストレージ負荷計測部２２２によるストレージ装置２１０の負荷の計測機能について、詳細に説明する。
図８は、ストレージ負荷計測部の内部機能を示すブロック図である。ストレージ負荷計測部２２２は、開始時刻登録部２２２ａ、リクエスト情報記憶部２２２ｂ、ストレージ負荷情報更新部２２２ｄ、実行時間記憶部２２２ｅ、実行数記憶部２２２ｆ、および負荷情報出力部２２２ｇを有している。
【００８８】
開始時刻登録部２２２ａは、ディスクアクセス部２２１から受信したアクセス要求の内容を取得する。例えば、開始時刻登録部２２２ａは、ディスクアクセス部２２１からアクセス要求のリクエストＩＤ、および要求種別を取得する。すると開始時刻登録部２２２ａは、リクエストＩＤと要求種別に現在の時刻を示すタイムスタンプを付与し、リクエスト情報を生成する。そして開始時刻登録部２２２ａは、生成したリクエスト情報をリクエスト情報記憶部２２２ｂに格納する。
【００８９】
リクエスト情報記憶部２２２ｂは、リクエスト情報を記憶する。例えば、ＲＡＭやＨＤＤの記憶領域の一部がリクエスト情報記憶部２２２ｂとして使用される。図８の例では、リクエスト情報記憶部２２２ｂ内にリクエスト管理テーブル２２２ｃが設けられている。リクエスト管理テーブル２２２ｃには、リクエストＩＤ、要求種別、およびタイムスタンプの欄が設けられている。リクエスト管理テーブル２２２ｃ内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、１つのリクエスト情報となる。
【００９０】
リクエストＩＤの欄には、アクセス要求のリクエストＩＤが設定される。要求種別の欄には、アクセス要求の要求種別が設定される。タイムスタンプの欄には、アクセス要求を受信した時刻を示すタイムスタンプが設定される。
【００９１】
ストレージ負荷情報更新部２２２ｄは、アクセス要求に対する応答を検知するごとに、ストレージの負荷を示す情報を更新する。例えばストレージ負荷情報更新部２２２ｄは、応答に対応するアクセス要求のリクエストＩＤをディスクアクセス部２２１から取得する。すると、ストレージ負荷情報更新部２２２ｄは、リクエストＩＤに対応するリクエスト情報をリクエスト管理テーブル２２２ｃから抽出する。具体的には、ストレージ負荷情報更新部２２２ｄは、取得したリクエストＩＤと一致するリクエストＩＤを、リクエスト管理テーブル２２２ｃのリクエストＩＤの欄から検索する。そしてストレージ負荷情報更新部２２２ｄは、検索でヒットしたリクエストＩＤを含むリクエスト情報をリクエスト管理テーブル２２２ｃから抽出する。この際、ストレージ負荷情報更新部２２２ｄは、抽出したリクエスト情報をリクエスト管理テーブル２２２ｃから削除する。
【００９２】
ストレージ負荷情報更新部２２２ｄは、取得したリクエスト情報に含まれるタイムスタンプから現在の時刻までの経過時間を算出する。すなわち、ストレージ負荷情報更新部２２２ｄは、現在の時刻からタイムスタンプに示される時刻を減算した値を求める。そして、ストレージ負荷情報更新部２２２ｄは、実行時間記憶部２２２ｅに保持されている累積実行時間に、算出した経過時間を加算する。
【００９３】
またストレージ負荷情報更新部２２２ｄは、リクエストに対する応答を検出するごとに、実行数記憶部２２２ｆ内のアクセス要求の実行数をカウントアップする。例えば、アクセス要求の実行数を要求種別ごとに計数する場合、ストレージ負荷情報更新部２２２ｄはリクエスト管理テーブル２２２ｃから取得したリクエスト情報に基づいて、取得した応答に対応するアクセス要求の要求種別を判別する。要求種別がリードであれば、ストレージ負荷情報更新部２２２ｄは、実行数記憶部２２２ｆ内のリード数情報の値をカウントアップする。また要求種別がライトであれば、ストレージ負荷情報更新部２２２ｄは、実行数記憶部２２２ｆ内のライト数情報の値をカウントアップする。
【００９４】
実行時間記憶部２２２ｅは、累積実行時間を記憶する。例えば、ディスクノード２００のＲＡＭの記憶領域の一部が、実行時間記憶部２２２ｅとして使用される。累積実行時間は、ストレージ装置２１０の負荷の計測開始時から現在までに、ストレージ装置２１０がアクセス要求に対する処理に要した時間の累積値である。
【００９５】
実行数記憶部２２２ｆは、アクセス要求の実行数を記憶する。例えば、ディスクノード２００のＲＡＭの記憶領域の一部が、実行数記憶部２２２ｆとして使用される。例えば、アクセス要求の実行数は、要求種別ごとに計数される。
【００９６】
負荷情報出力部２２２ｇは、所定時間ごとに累積実行時間とアクセス要求の実行数とを出力する。例えば、負荷情報出力部２２２ｇは、所定時ごとに累積実行時間を実行時間記憶部２２２ｅから取得する。そして、負荷情報出力部２２２ｇは、取得した累積実行時間を、ストレージ負荷記憶部２２３に格納する。また負荷情報出力部２２２ｇは、所定時間ごとにアクセス要求の実行数を実行数記憶部２２２ｆから取得する。アクセス要求の実行数が要求種別ごとに記憶されている場合、負荷情報出力部２２２ｇは、要求種別ごとのアクセス要求の実行数を取得する。そして、負荷情報出力部２２２ｇは、取得したアクセス要求の実行数を、ストレージ負荷記憶部２２３に格納する。
【００９７】
なお負荷情報出力部２２２ｇは、累積実行時間を実行時間記憶部２２２ｅから取得した場合、実行時間記憶部２２２ｅ内の累積実行時間の値を０に初期化する。また、負荷情報出力部２２２ｇは、アクセス要求の実行数を実行数記憶部２２２ｆから取得した場合、実行数記憶部２２２ｆ内のアクセス要求の実行数の値を０に初期化する。
【００９８】
このような構成のストレージ負荷計測部２２２によって、所定時間ごとのストレージ装置２１０の負荷が計測される。
次に、ストレージ負荷計測部２２２による負荷の計測処理手順について説明する。
【００９９】
図９は、ストレージ装置の負荷計測処理の手順の一例を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］開始時刻登録部２２２ａは、ディスクアクセス部２２１から、受信したアクセス要求の内容が入力されたか否かを判断する。アクセス要求の内容が入力された場合、処理がステップＳ１２に進められる。アクセス要求の内容が入力されていなければ、処理がステップＳ１３に進められる。
【０１００】
［ステップＳ１２］受信したアクセス要求の内容が入力された場合、開始時刻登録部２２２ａは、入力されたアクセス要求の内容に応じたリクエスト情報をリクエスト管理テーブル２２２ｃに登録する。例えば開始時刻登録部２２２ａは、アクセス要求のリクエストＩＤと要求種別にタイムスタンプを付与し、それらの情報をリクエスト情報としてリクエスト管理テーブル２２２ｃに登録する。これにより、アクセス要求に基づくストレージ装置２１０におけるアクセス処理の開始時刻が、リクエスト情報記憶部２２２ｂ内で管理される。リクエスト情報の登録が完了すると、処理がステップＳ１６に進められる。
【０１０１】
［ステップＳ１３］ストレージ負荷情報更新部２２２ｄは、ディスクアクセス部２２１から、受信したアクセス要求に対する応答の内容が入力されたか否かを判断する。アクセス要求に対する応答の内容が入力された場合、処理がステップＳ１４に進められる。アクセス要求に対する応答の内容が入力されていなければ、処理がステップＳ１６に進められる。
【０１０２】
［ステップＳ１４］ストレージ負荷情報更新部２２２ｄは、アクセス要求に対する応答の内容が入力された場合、累積実行時間を更新する。例えば、ストレージ負荷情報更新部２２２ｄは、ディスクアクセス部２２１から、応答に対応するアクセス要求のリクエストＩＤを取得する。次に、ストレージ負荷情報更新部２２２ｄは、リクエスト管理テーブル２２２ｃから、取得したリクエストＩＤと一致するリクエストＩＤを、リクエストＩＤの欄から検索する。次にストレージ負荷情報更新部２２２ｄは、検索でヒットしたリクエストＩＤを含むリクエスト情報をリクエスト管理テーブル２２２ｃから抽出する。この際、ストレージ負荷情報更新部２２２ｄは、抽出したリクエスト情報をリクエスト管理テーブル２２２ｃから削除する。次にストレージ負荷情報更新部２２２ｄは、取得したリクエスト情報に含まれるタイムスタンプから現在の時刻までの経過時間を算出する。そして、ストレージ負荷情報更新部２２２ｄは、実行時間記憶部２２２ｅに保持されている累積実行時間に、算出した経過時間を加算し、加算結果で実行時間記憶部２２２ｅの内容を更新する。
【０１０３】
［ステップＳ１５］ストレージ負荷情報更新部２２２ｄは、実行数記憶部２２２ｆ内のアクセス要求の実行数をカウントアップする。例えば、ストレージ負荷情報更新部２２２ｄはリクエスト管理テーブル２２２ｃから取得したリクエスト情報に基づいて、取得した応答に対応するアクセス要求の要求種別を判別する。要求種別がリードであれば、ストレージ負荷情報更新部２２２ｄは、実行数記憶部２２２ｆ内のリード数情報の値をカウントアップする。また要求種別がライトであれば、ストレージ負荷情報更新部２２２ｄは、実行数記憶部２２２ｆ内のライト数情報の値をカウントアップする。
【０１０４】
［ステップＳ１６］負荷情報出力部２２２ｇは、累積実行時間と実行数との前回の初期化から一定時間経過したか否かを判断する。一定時間は、例えば１分である。一定時間が経過した場合、処理がステップＳ１７に進められる。一定時間が経過していない場合、処理がステップＳ２０に進められる。
【０１０５】
［ステップＳ１７］負荷情報出力部２２２ｇは、前回の初期化から一定時間が経過すると、平均応答時間を算出する。例えば、負荷情報出力部２２２ｇは、所定期間内に実行されたアクセス要求数を求める。実行数記憶部２２２ｆ内に要求種別ごとの実行数が登録されていた場合、負荷情報出力部２２２ｇは各要求種別の実行数を合計する。そして、負荷情報出力部２２２ｇは、実行時間記憶部２２２ｅに設定されている累積実行時間の値を、一定時間内に実行されたアクセス要求数で除算する。除算結果が平均応答時間となる。負荷情報出力部２２２ｇは、算出した平均応答時間を、現在の時刻に関連付けてストレージ負荷記憶部２２３に格納する。
【０１０６】
［ステップＳ１８］負荷情報出力部２２２ｇは、一定時間内に実行されたアクセス要求数を出力する。例えば、実行数記憶部２２２ｆ内において要求種別ごとにアクセス要求の実行数がカウントされている場合、負荷情報出力部２２２ｇは、要求種別ごとのアクセス要求の実行数を取得する。そして、負荷情報出力部２２２ｇは、取得したアクセス要求の実行数を、ストレージ負荷記憶部２２３に格納する。このとき負荷情報出力部２２２ｇは、直前のステップＳ１７の処理で格納された平均応答時間と対応付けて、取得したアクセス要求の実行数を格納する。なお、アクセス要求の実行数を格納する場合、負荷情報出力部２２２ｇは、単位時間当たりの実行数に置き換えることもできる。例えば、単位時間を１秒とし、一分の間で実行されたアクセス要求の数を６０で除算することで、１秒当たりのアクセス要求の実行数に置き換えることができる。
【０１０７】
［ステップＳ１９］負荷情報出力部２２２ｇは、累積実行時間と、アクセス要求の実行数とを初期化する。例えば、負荷情報出力部２２２ｇは、実行時間記憶部２２２ｅに格納されている累積実行時間の値を「０」に更新すると共に、実行数記憶部２２２ｆに格納されているアクセス要求の実行数の値を「０」に更新する。
【０１０８】
［ステップＳ２０］開始時刻登録部２２２ａ、ストレージ負荷情報更新部２２２ｄ、および負荷情報出力部２２２ｇは、負荷計測の終了条件が満たされたか否かを判断する。例えば、管理者からディスクノード２００に対して負荷計測を終了することを示す命令が入力された場合、負荷計測の終了条件が満たされたと判断される。また、予め定義された負荷計測期間が満了した場合に、負荷計測の終了条件が満たされたと判断するようにしてもよい。負荷計測の終了条件が満たされた場合、処理が終了する。負荷計測の終了条件が満たされていなければ、処理がステップＳ１１に進められる。
【０１０９】
このような負荷計測を行うことで、ストレージ負荷記憶部２２３内にストレージ負荷情報が蓄積される。
図１０は、ストレージ負荷記憶部のデータ構造例を示す図である。ストレージ負荷記憶部２２３には、ストレージ負荷計測部２２２で計測された所定期間ごとのストレージ負荷情報が格納されている。図１０の例では、ストレージ負荷記憶部２２３内にストレージ負荷管理テーブル２２３ａが設けられている。ストレージ負荷管理テーブル２２３ａには、時刻、リードリクエスト数（read iops）、ライトリクエスト数（write iops）、および平均応答時間の欄が設けられている。ストレージ負荷管理テーブル２２３ａ内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、１つのストレージ負荷情報となる。
【０１１０】
時刻の欄には、ストレージ負荷情報を格納した時刻が設定される。リードリクエスト数の欄には、所定期間内に実行されたリードのアクセス要求の単位時間（図１０の例では１秒）当たりの数が設定される。ライトリクエスト数の欄には、所定期間内に実行されたライトのアクセス要求の単位時間（図１０の例では１秒）当たりの数が設定される。平均応答時間の欄には、所定期間内に実行されたアクセス要求に対する平均応答時間が設定される。図１０の例では、平均応答時間の単位はミリ秒（ｍｓ）である。
【０１１１】
次に、論理ボリューム負荷計測部２３２による論理ボリューム９１０，９２０，９３０ごとの負荷の計測機能について、詳細に説明する。
図１１は、論理ボリューム負荷計測部の内部機能を示すブロック図である。論理ボリューム負荷計測部２３２は、開始時刻登録部２３２ａ、論理ボリューム判別情報記憶部２３２ｂ、リクエスト情報記憶部２３２ｃ、負荷情報更新部２３２ｅ、実行時間記憶部２３２ｆ，２３２ｇ，２３２ｈ、および負荷情報出力部２３２ｉを有している。
【０１１２】
開始時刻登録部２３２ａは、アクセスノード６００から受信したアクセス要求の内容を取得する。例えば、開始時刻登録部２３２ａは、論理ボリュームアクセス部２３１からアクセス要求のリクエストＩＤ、およびアクセス対象のスライスを示すスライスＩＤを取得する。すると開始時刻登録部２３２ａは、論理ボリューム判別情報記憶部２３２ｂを参照し、アクセス対象のスライスを示すスライスＩＤに基づいて、アクセスが発生した論理ボリュームの論理ボリュームＩＤを判定する。
【０１１３】
ここで論理ボリューム判別情報記憶部２３２ｂは、各スライスが割り当てられているセグメントが属する論理ボリュームを記憶している。例えば、ディスクノード２００のＲＡＭやＨＤＤの記憶領域の一部が論理ボリューム判別情報記憶部２３２ｂとして使用される。
【０１１４】
図１２は、論理ボリューム判別情報記憶部のデータ構造例を示す図である。図１２の例では、論理ボリューム判別情報記憶部２３２ｂには、ＩＤ変換テーブル２３２ｊが格納されている。ＩＤ変換テーブル２３２ｊには、スライスＩＤ、論理ボリュームＩＤ、およびセグメントＩＤの欄が設けられている。ＩＤ変換テーブル２３２ｊ内の横方向に並べられた情報が互いに関連付けられている。
【０１１５】
スライスＩＤの欄には、ストレージ装置２１０内のスライス２１１〜２１６のスライスＩＤが設定される。論理ボリュームＩＤの欄には、各スライスが割り当てられたセグメントが属する論理ボリュームの論理ボリュームＩＤが設定される。セグメントＩＤの欄には、各スライスが割り当てられたセグメントのセグメントＩＤが設定される。
【０１１６】
このようなＩＤ変換テーブル２３２ｊは、例えばスライスがスライスに割り当てられるごとに、論理ボリュームアクセス部２３１によって更新される。すなわち、セグメントへのスライスの割り当ては、コントロールノード５００で決定され、ディスクノード２００に通知される。論理ボリュームアクセス部２３１は、通知された割り当て関係に従ってＩＤ変換テーブル２３２ｊの内容を更新する。
【０１１７】
開始時刻登録部２３２ａは、図１２に示したようなＩＤ変換テーブル２３２ｊに基づいて、アクセス要求によるアクセス対象のスライスが割り当てられている論理ボリュームの論理ボリュームＩＤを判定できる。
【０１１８】
以下、図１１の説明に戻る。
論理ボリュームＩＤを判定した開始時刻登録部２３２ａは、リクエストＩＤと論理ボリュームＩＤに現在の時刻を示すタイムスタンプを付与し、リクエスト情報を生成する。そして開始時刻登録部２３２ａは、生成したリクエスト情報をリクエスト情報記憶部２３２ｃに格納する。
【０１１９】
リクエスト情報記憶部２３２ｃは、リクエスト情報を記憶する。例えば、ＲＡＭやＨＤＤの記憶領域の一部がリクエスト情報記憶部２３２ｃとして使用される。図１１の例では、リクエスト情報記憶部２３２ｃ内にリクエスト管理テーブル２３２ｄが設けられている。リクエスト管理テーブル２３２ｄには、リクエストＩＤ、論理ボリュームＩＤ（ＬＶＯＬ  ＩＤ）、およびタイムスタンプの欄が設けられている。リクエスト管理テーブル２３２ｄ内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、１つのリクエスト情報となる。
【０１２０】
リクエストＩＤの欄には、アクセス要求のリクエストＩＤが設定される。論理ボリュームＩＤの欄には、アクセス要求の対象となるデータを含むスライスが割り当てられている論理ボリュームの論理ボリュームＩＤが設定される。タイムスタンプの欄には、アクセス要求を受信した時刻を示すタイムスタンプが設定される。
【０１２１】
負荷情報更新部２３２ｅは、アクセス要求に対する応答を検知するごとに、論理ボリュームごとのアクセスがストレージ装置に与えている負荷を示す情報を更新する。例えば負荷情報更新部２３２ｅは、応答に対応するアクセス要求のリクエストＩＤを論理ボリュームアクセス部２３１から取得する。すると、負荷情報更新部２３２ｅは、リクエストＩＤに対応するリクエスト情報をリクエスト管理テーブル２３２ｄから抽出する。具体的には、負荷情報更新部２３２ｅは、取得したリクエストＩＤと一致するリクエストＩＤを、リクエスト管理テーブル２３２ｄのリクエストＩＤの欄から検索する。そして負荷情報更新部２３２ｅは、検索でヒットしたリクエストＩＤを含むリクエスト情報をリクエスト管理テーブル２３２ｄから抽出する。この際、負荷情報更新部２３２ｅは、抽出したリクエスト情報をリクエスト管理テーブル２３２ｄから削除する。
【０１２２】
負荷情報更新部２３２ｅは、取得したリクエスト情報に含まれるタイムスタンプから現在の時刻までの経過時間を算出する。すなわち、負荷情報更新部２３２ｅは、現在の時刻からタイムスタンプに示される時刻を減算した値を求める。そして、負荷情報更新部２３２ｅは、取得したリクエスト情報に示される論理ボリュームＩＤに対応する実行時間記憶部に保持されている累積実行時間に、算出した経過時間を加算する。
【０１２３】
実行時間記憶部２３２ｆは、論理ボリュームＩＤ“ＬＶＯＬ０”に対応する累積実行時間を記憶する。例えば、ＲＡＭやＨＤＤの記憶領域の一部が実行時間記憶部２３２ｆとして使用される。
【０１２４】
実行時間記憶部２３２ｇは、論理ボリュームＩＤ“ＬＶＯＬ１”に対応する累積実行時間を記憶する。例えば、ＲＡＭやＨＤＤの記憶領域の一部が実行時間記憶部２３２ｇとして使用される。
【０１２５】
実行時間記憶部２３２ｈは、論理ボリュームＩＤ“ＬＶＯＬ２”に対応する累積実行時間を記憶する。例えば、ＲＡＭやＨＤＤの記憶領域の一部が実行時間記憶部２３２ｈとして使用される。
【０１２６】
負荷情報出力部２３２ｉは、所定時間ごとに累積実行時間を出力する。例えば、負荷情報出力部２３２ｉは、所定時間ごとに累積実行時間を実行時間記憶部２３２ｆ，２３２ｇ，２３２ｈから取得する。そして、負荷情報出力部２３２ｉは、取得した累積実行時間を、論理ボリューム負荷記憶部２３３に格納する。
【０１２７】
なお負荷情報出力部２３２ｉは、累積実行時間を実行時間記憶部２３２ｆ，２３２ｇ，２３２ｈから取得した場合、実行時間記憶部２３２ｆ，２３２ｇ，２３２ｈ内の累積実行時間の値を０に初期化する。
【０１２８】
このような構成の論理ボリューム負荷計測部２３２によって、所定時間ごとのストレージ装置２１０の負荷が計測される。
次に、論理ボリューム負荷計測部２３２による負荷の計測処理手順について説明する。
【０１２９】
図１３は、論理ボリュームごとのストレージ装置に与える負荷の計測処理の手順の一例を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１３０】
［ステップＳ３１］開始時刻登録部２３２ａは、論理ボリュームアクセス部２３１から、受信したアクセス要求の内容が入力されたか否かを判断する。アクセス要求の内容が入力された場合、処理がステップＳ３２に進められる。アクセス要求の内容が入力されていなければ、処理がステップＳ３３に進められる。
【０１３１】
［ステップＳ３２］受信したアクセス要求の内容が入力された場合、開始時刻登録部２３２ａは、入力されたアクセス要求の内容に応じたリクエスト情報をリクエスト管理テーブル２３２ｄに登録する。例えば開始時刻登録部２３２ａは、論理ボリューム判別情報記憶部２３２ｂを参照し、アクセス要求のアクセス先のスライスのスライスＩＤに対応する論理ボリュームＩＤを判定する。そして、開始時刻登録部２３２ａは、アクセス要求のリクエストＩＤとアクセス先のスライスに対応する論理ボリュームＩＤとの組にタイムスタンプを付与し、それらの情報をリクエスト情報としてリクエスト管理テーブル２３２ｄに登録する。これにより、アクセス要求に基づくストレージ装置２１０におけるアクセス処理の開始時刻が、リクエスト情報記憶部２２２ｂ内で管理される。リクエスト情報の登録が完了すると、処理がステップＳ３５に進められる。
【０１３２】
［ステップＳ３３］負荷情報更新部２３２ｅは、論理ボリュームアクセス部２３１から、受信したアクセス要求に対する応答の内容が入力されたか否かを判断する。アクセス要求に対する応答の内容が入力された場合、処理がステップＳ３４に進められる。アクセス要求に対する応答の内容が入力されていなければ、処理がステップＳ３５に進められる。
【０１３３】
［ステップＳ３４］負荷情報更新部２３２ｅは、アクセス要求に対する応答の内容が入力された場合、累積実行時間を更新する。例えば、負荷情報更新部２３２ｅは、論理ボリュームアクセス部２３１から、応答に対応するアクセス要求のリクエストＩＤを取得する。次に、負荷情報更新部２３２ｅは、リクエスト管理テーブル２３２ｄから、取得したリクエストＩＤと一致するリクエストＩＤを、リクエストＩＤの欄から検索する。次に負荷情報更新部２３２ｅは、検索でヒットしたリクエストＩＤを含むリクエスト情報をリクエスト管理テーブル２３２ｄから抽出する。この際、負荷情報更新部２３２ｅは、抽出したリクエスト情報をリクエスト管理テーブル２３２ｄから削除する。次に負荷情報更新部２３２ｅは、取得したリクエスト情報に含まれるタイムスタンプから現在の時刻までの経過時間を算出する。また負荷情報更新部２３２ｅは、複数の実行時間記憶部２３２ｆ，２３２ｇ，２３２ｈの中から、リクエスト管理テーブル２３２ｄから抽出したリクエスト情報に含まれる論理ボリュームＩＤに対応する実行時間記憶部を特定する。そして、負荷情報更新部２３２ｅは、特定した実行時間記憶部に保持されている累積実行時間に、算出した経過時間を加算し、加算結果で、特定した実行時間記憶部の内容を更新する。
【０１３４】
［ステップＳ３５］負荷情報出力部２３２ｉは、累積実行時間の前回の初期化から一定時間経過したか否かを判断する。一定時間は、例えば１分である。一定時間が経過した場合、処理がステップＳ３６に進められる。一定時間が経過していない場合、処理がステップＳ３８に進められる。
【０１３５】
［ステップＳ３６］負荷情報出力部２３２ｉは、前回の初期化から一定時間が経過すると、論理ボリュームごとの累積実行時間を格納する。例えば、負荷情報出力部２３２ｉは、各実行時間記憶部２３２ｆ，２３２ｇ，２３２ｈに格納されている累積実行時間の値を取得する。そして、負荷情報出力部２３２ｉは、取得した累積実行時間の値を現在の時刻に関連付けて、論理ボリューム負荷記憶部２３３に格納する。
【０１３６】
［ステップＳ３７］負荷情報出力部２３２ｉは、累積実行時間を初期化する。例えば、負荷情報出力部２３２ｉは、実行時間記憶部２３２ｆ，２３２ｇ，２３２ｈに格納されている累積実行時間の値を「０」に更新する。
【０１３７】
［ステップＳ３８］開始時刻登録部２３２ａ、負荷情報更新部２３２ｅ、および負荷情報出力部２３２ｉは、負荷計測の終了条件が満たされたか否かを判断する。例えば、管理者からディスクノード２００に対して負荷計測を終了することを示す命令が入力された場合、負荷計測の終了条件が満たされたと判断される。また、予め定義された負荷計測期間が満了した場合に、負荷計測の終了条件が満たされたと判断するようにしてもよい。負荷計測の終了条件が満たされた場合、処理が終了する。負荷計測の終了条件が満たされていなければ、処理がステップＳ３１に進められる。
【０１３８】
このような負荷計測を行うことで、論理ボリューム負荷記憶部２３３内に論理ボリューム負荷情報が蓄積される。
図１４は、論理ボリューム負荷記憶部のデータ構造例を示す図である。論理ボリューム負荷記憶部２３３には、論理ボリューム負荷計測部２３２で計測された所定期間ごとの論理ボリュームごとの累積実行時間が格納されている。図１４の例では、論理ボリューム負荷記憶部２３３内に論理ボリューム負荷管理テーブル２３３ａが設けられている。論理ボリューム負荷管理テーブル２３３ａには、時刻、ＬＶＯＬ０の累積実行時間、ＬＶＯＬ１の累積実行時間、およびＬＶＯＬ２の累積実行時間の欄が設けられている。論理ボリューム負荷管理テーブル２３３ａ内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、所定の期間の論理ボリューム負荷情報となる。
【０１３９】
時刻の欄には、論理ボリュームの累積実行時間を格納した時刻が設定される。ＬＶＯＬ０の累積実行時間の欄には、論理ボリュームＩＤが“ＬＶＯＬ０”である論理ボリューム９１０に割り当てられた記憶領域へのアクセス要求に基づく所定期間内のアクセスの累積実行時間が設定される。ＬＶＯＬ１の累積実行時間の欄には、論理ボリュームＩＤが“ＬＶＯＬ１”である論理ボリューム９２０に割り当てられた記憶領域へのアクセス要求に基づく所定期間内のアクセスの累積実行時間が設定される。ＬＶＯＬ２の累積実行時間の欄には、論理ボリュームＩＤが“ＬＶＯＬ２”である論理ボリューム９３０に割り当てられた記憶領域へのアクセス要求に基づく所定期間内のアクセスの累積実行時間が設定される。累積実行時間の単位は、例えばミリ秒（ｍｓ）である。
【０１４０】
以上のようにしてディスクノード２００でストレージ負荷記憶部２２３と論理ボリューム負荷記憶部２３３に記憶された負荷情報（ストレージ負荷情報と論理ボリューム負荷情報）が、負荷情報送信部２４０によって、管理ノード１００に送信される。例えば、管理ノード１００に対する負荷解析を指示する操作入力に応答して負荷情報取得部１１０が、負荷情報取得要求を、ディスクノード２００に送信する。負荷情報送信部２４０は、負荷情報取得要求に応答して、負荷情報を管理ノード１００に送信する。
【０１４１】
管理ノード１００の負荷情報取得部１１０は、取得した負荷情報を負荷情報記憶部１２０に格納する。負荷情報取得部１１０は、例えば、すべての数値の時間の単位を秒に揃えて各値を格納する。すなわち、ミリ秒の単位で表された値は、１０００分の１に変換して負荷情報記憶部１２０に格納される。
【０１４２】
図１５は、負荷情報記憶部のデータ構造例を示す図である。負荷情報記憶部１２０には、ストレージ装置ごとの負荷情報管理テーブル１２１，１２２，１２３が格納されている。例えば、負荷情報管理テーブル１２１は、ディスクノード２００に対応する。すなわち、負荷情報管理テーブル１２１には、ディスクノード２００から取得した負荷情報が登録されている。
【０１４３】
負荷情報管理テーブル１２１には、時刻、平均応答時間、リードリクエスト数（read iops）、ライトリクエスト数（write iops）、ＬＶＯＬ０の累積実行時間、ＬＶＯＬ１の累積実行時間、およびＬＶＯＬ２の累積実行時間の欄が設けられている。負荷情報管理テーブル１２１内の横方向に並べられた情報が互いに関連付けられている。互いに関連付けられた情報を含むレコードが、所定の期間の負荷情報となる。各欄には、図１０および図１４に示したストレージ負荷記憶部２２３または論理ボリューム負荷記憶部２３３内の同名の欄と同種の情報が設定される。なお、リードリクエスト数（read iops）、ライトリクエスト数（write iops）との欄は、上位のアクセス要求実行数の欄にまとめられている。負荷情報管理テーブル１２２，１２３のデータ構造も、負荷情報管理テーブル１２１と同様である。
【０１４４】
管理ノード１００の負荷解析部１３０は、図１５に示したような負荷情報管理テーブル１２１，１２２，１２３を参照して、各ディスクノード２００，３００，４００の負荷を解析する。その際、負荷解析部１３０は、平均応答時間（秒単位）を変数「Ａ」とする。負荷解析部１３０は、リードリクエスト数（read iops）とライトリクエスト数（write iops）との合計を、アクセス要求実行数を示す変数「Ｂ」とする。負荷解析部１３０は、ＬＶＯＬ０の累積実行時間を変数「Ｃ」とする。負荷解析部１３０は、ＬＶＯＬ１の累積実行時間を変数「Ｄ」とする。負荷解析部１３０は、ＬＶＯＬ２の累積実行時間を変数「Ｅ」とする。
【０１４５】
以下、負荷解析部１３０が行う解析処理の手順について説明する。
図１６は、負荷解析処理の手順を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。なお、以下の処理は、例えば、管理からの負荷解析を示す操作入力が行われ、各ディスクノード２００，３００，４００からの負荷情報の取得が完了したときに実行される。
【０１４６】
［ステップＳ４１］負荷解析部１３０は、解析処理を実行していない解析対象とするストレージ装置を選択する。
［ステップＳ４２］負荷解析部１３０は、選択したストレージ装置に対応する負荷情報管理テーブルを負荷情報記憶部１２０から取得する。そして、負荷解析部１３０は、取得した負荷情報管理テーブルの時刻の欄から、時刻を１つ選択する。例えば、負荷解析部１３０は、時刻の欄の上位から順に時刻を選択する。
【０１４７】
［ステップＳ４３］負荷解析部１３０は、選択したディスク全体の負荷指標を算出する。例えば負荷解析部１３０は、平均応答時間を示す変数「Ａ」の逆数を取ることで、選択した時刻までの所定期間（例えば１分）における最大負荷（ｉｏｐｓ）とする。すなわち変数「Ａ」の逆数（１／Ａ）は、選択された時刻より前の所定期間の間の平均応答時間で１つのアクセス要求を処理できる場合に、単位時間（例えば１秒）当たりに処理可能なアクセス要求数を示している。平均応答時間が「０．００５（秒）」であれば、最大負荷は「２００」となる。ここで、平均応答時間を示す変数「Ａ」の逆数で表される最大負荷を変数「α」とする。最大負荷（α）を示す値は、最大負荷記憶部１３１に一時的に格納される。
【０１４８】
そして、最大負荷（α）と現在のアクセス要求実行数（Ｂ）の比をデバイス全体の負荷指標（Ｆ）とすることができる。例えば、ディスク全体の負荷指標は、選択した時刻を含むレコード内の各情報を用いて、以下の式で計算される。
デバイス全体の負荷指標（Ｆ）＝（Ｂ×１００）／α（％）  ・・・（１）
［ステップＳ４４］負荷解析部１３０は、論理ボリューム９１０に割り当てられた記憶領域へのアクセス要求が、デバイス全体の負荷に与える影響度を示す負荷指標（Ｇ）を算出する。例えば、負荷指標（Ｇ）は以下の式で計算される。
ＬＶＯＬ０の負荷指標（Ｇ）＝Ｆ×（Ｃ／Ｃ＋Ｄ＋Ｅ）  ・・・（２）
式（２）は、全体の負荷指標（Ｆ）を、各論理ボリュームの処理時間の比に応じて比例配分した場合の、ＬＶＯＬ０に対応する論理ボリュームに配分される値を示している。
【０１４９】
［ステップＳ４５］負荷解析部１３０は、論理ボリューム９２０に割り当てられた記憶領域へのアクセス要求が、デバイス全体の負荷に与える影響度を示す負荷指標（Ｈ）を算出する。例えば、負荷指標（Ｈ）は以下の式で計算される。
ＬＶＯＬ１の負荷指標（Ｈ）＝Ｆ×（Ｄ／Ｃ＋Ｄ＋Ｅ）  ・・・（３）
式（３）は、全体の負荷指標（Ｆ）を、各論理ボリュームの処理時間の比に応じて比例配分した場合の、ＬＶＯＬ１に対応する論理ボリュームに配分される値を示している。
【０１５０】
［ステップＳ４６］負荷解析部１３０は、論理ボリューム９３０に割り当てられた記憶領域へのアクセス要求が、デバイス全体の負荷に与える影響度を示す負荷指標（Ｉ）を算出する。例えば、負荷指標（Ｉ）は以下の式で計算される。
ＬＶＯＬ２の負荷指標（Ｉ）＝Ｆ×（Ｅ／Ｃ＋Ｄ＋Ｅ）  ・・・（４）
式（４）は、全体の負荷指標（Ｆ）を、各論理ボリュームの処理時間の比に応じて比例配分した場合の、ＬＶＯＬ２に対応する論理ボリュームに配分される値を示している。
【０１５１】
［ステップＳ４７］負荷解析部１３０は、解析結果を解析結果記憶部１４０に格納する。
［ステップＳ４８］負荷解析部１３０は、選択したストレージ装置に対応する負荷情報管理テーブル内のすべての時刻について解析したか否かを判断する。未解析の時刻があれば、処理がステップＳ４２に進められる。すべての時刻の解析が完了したら、選択したストレージ装置の負荷解析が完了し、処理がステップＳ４９に進められる。
【０１５２】
［ステップＳ４９］負荷解析部１３０は、すべてのストレージ装置の負荷を解析したか否かを判断する。未解析のストレージ装置があれば、処理がステップＳ４１に進められる。すべてのストレージ装置の解析が完了していれば、解析処理が終了する。
【０１５３】
このような解析処理によって、解析結果記憶部１４０には、ストレージ装置ごとの解析結果が格納される。
図１７は、解析結果記憶部のデータ構造例を示す図である。解析結果記憶部１４０には、ストレージ装置２１０，３１０，４１０それぞれに対応する解析結果管理テーブル１４１，１４２，１４３が格納されている。例えば、解析結果管理テーブル１４１には、ストレージ装置２１０の負荷の解析結果が格納されている。
【０１５４】
解析結果管理テーブル１４１には、時刻、ディスク全体の負荷指標、ＬＶＯＬ０の負荷指標、ＬＶＯＬ１の負荷指標、およびＬＶＯＬ２の負荷指標の欄が設けられている。
時刻の欄には、解析対象となった期間の終了時刻が設定される。すなわち、時刻の欄に示された時刻より所定期間（例えば１分）遡及した時刻から、時刻の欄に示される時刻までの期間が、解析対象の期間である。
【０１５５】
ディスク全体の負荷指標の欄には、解析対象の期間におけるストレージ装置全体の負荷指標（Ｆ）の値が設定される。ＬＶＯＬ０の負荷指標の欄には、解析対象の期間における負荷指標に対する、論理ボリュームＩＤが“ＬＶＯＬ０”である論理ボリューム９１０に割り当てられた記憶領域へのアクセス要求の影響度を示す負荷指標（Ｇ）が設定される。ＬＶＯＬ１の負荷指標の欄には、解析対象の期間における負荷指標に対する、論理ボリュームＩＤが“ＬＶＯＬ１”である論理ボリューム９２０に割り当てられた記憶領域へのアクセス要求の影響度を示す負荷指標（Ｈ）が設定される。ＬＶＯＬ２の負荷指標の欄には、解析対象の期間における負荷指標に対する、論理ボリュームＩＤが“ＬＶＯＬ２”である論理ボリューム９３０に割り当てられた記憶領域へのアクセス要求の影響度を示す負荷指標（Ｉ）が設定される。
【０１５６】
このような解析結果に基づいて、解析結果表示部１５０により、解析結果が表示される。
図１８は、解析結果の表示例を示す図である。なお、図１８の例は、ストレージ装置に対するアクセス要求のうち、論理ボリュームに割り当てられていない記憶領域へのアクセスに基づく負荷への影響度を示す負荷指標も、その他のアクセス（others）として算出した場合の例である。
【０１５７】
解析結果表示画面１５１には、横軸を解析対象となる時刻、縦軸を負荷指標としたグラフによって、ストレージ装置の負荷の状況が示されている。なお、この例で解析対象となったストレージ装置内の記憶領域は、３つの論理ボリューム９１０，９２０，９３０に割り当てられている。解析対象のストレージ装置の全体の負荷指標（sum）は、折れ線４１で示されている。論理ボリュームＩＤ“ＬＶＯＬ０”の論理ボリューム９１０の負荷指標は、折れ線４２で示されている。論理ボリュームＩＤ“ＬＶＯＬ１”の論理ボリューム９２０の負荷指標は、折れ線４３で示されている。論理ボリュームＩＤ“ＬＶＯＬ２”の論理ボリューム９３０の負荷指標は、折れ線４４で示されている。その他のアクセスの負荷指標は、折れ線４５で示されている。
【０１５８】
このような解析結果表示画面１５１を管理者が参照することで、ストレージ装置の負荷状況の推移、および負荷への影響が大きい論理ボリュームを適切に判断することができる。しかも、本実施の形態では、解析対象の期間の平均応答時間に基づいて最大負荷を定義している。そのため、アクセスの種類（リードまたはライト）、アクセス対象のデータサイズ、アクセス対象の記憶領域などで変動する最大負荷として、解析対象の期間内のアクセス状況に応じた正確な値を用いることができる。最大負荷の正確性が向上することにより、解析対象の期間における負荷の正確性も向上する。
【０１５９】
例えば、比較対象として、予めリードアクセス／ライトアクセスのベンチマークテストにより最大負荷を計測しておく方法が考えられる。予め実施されるベンチマークテストは、例えば、一般的なストレージ装置へのアクセス要求を想定し、単位時間当たりに処理可能なアクセス要求数が計測される。このようなベンチマークテストでは、いわゆるホットスポットと呼ばれる特定の記憶領域にアクセスが集中するような状況は想定されていないことが多い。
【０１６０】
特定の記憶領域にアクセスが集中した場合、ストレージ装置のキャッシュメモリのサイズが十分に大きければ、キャッシュヒット率が向上し、単位時間当たりに処理可能なアクセス要求数が多くなる。逆に、キャッシュメモリが不十分であれば、複数のハードディスク装置を有するストレージ装置内の特定のハードディスク装置にアクセスが集中することで、単位時間当たりに処理可能なアクセス要求数が少なくなる場合も考えられる。
【０１６１】
このように、実際には単位時間当たりに処理可能なアクセス要求数（最大負荷）は、そのときどきのアクセス先の集中度合い、アクセスされるデータのサイズ、アクセス種別（リード／ライト）によって変わってくる。すなわち、最大負荷はアクセス状況に応じて動的に変化する。本実施の形態では、動的に変化する最大負荷に基づいて負荷指標を計算するため、より正確な負荷指標を得ることができる。換言すると、実際にはストレージ装置の処理能力に余力があるにも拘わらず最大負荷を超えたように判断するといった、誤判定を抑制することができる。
【０１６２】
図１９は、誤判定が回避される例を示す図である。図１９には、横軸を時刻、縦軸をアクセス要求数としたグラフを示している。予め標準的なアクセス状況を想定したベンチマークにより計測した最大負荷を、破線６１で示している。また、各時刻において動的に計測した最大負荷（平均応答時間の逆数）を、一点鎖線６２で示している。さらに、各時刻において実測した単位時間当たりのアクセス要求数を、実線６３で示している。
【０１６３】
このように、予めベンチマークにより計測した最大負荷を、実測したアクセス要求数が超える場合があり得る。もし予めベンチマークにより計測した最大負荷を基準に負荷指標を計算すると、例えば負荷が１００％を超える事態となり、一般には管理者に対して警告のメッセージが通知される。例えば、時刻ｔ７において、実測したアクセス要求数が、予めベンチマークにより計測した最大負荷を超えている。
【０１６４】
しかし、時刻ｔ７に発生したアクセスが特定の記憶領域に集中したアクセスであり、キャッシュヒット率が向上していた場合、平均応答時間が非常に短くなる。平均応答時間が短くなれば、単位時間当たりに処理可能なアクセス要求数（最大負荷）も増加する。その結果、動的に計測した最大負荷と、実測したアクセス要求数とを比較すれば、負荷が過大とはなっていないことがわかる。すなわち、誤ってストレージ装置の負荷が過大であると判定することを抑制できる。
【０１６５】
逆に時刻ｔ１０における実測したアクセス要求数は、予めベンチマークにより計測した最大負荷より少ないが、動的に計測した最大負荷とほぼ等しくなっている。すなわち、時刻ｔ１０に発生したアクセス要求は、その前後のアクセス要求に比べ処理時間がかかる種類のアクセスが多数あり、平均応答時間が長くなっている。その結果、単位時間当たりに処理可能なアクセス要求数（最大アクセス要求数）が少なくなり、時刻ｔ７よりも少ないアクセス要求数にもかかわらず、ストレージ装置の処理能力に余力が無くなっている。このような場合、例えば、解析結果表示部１５０により、時刻ｔ１０でストレージ装置の処理能力が限界に達していることを示す警告のメッセージが、モニタ１１に表示される。このようにして、ストレージ装置の負荷が過大となったことを、適格に検出することが可能となる。
【０１６６】
また、第２の実施の形態では、論理ボリュームごとの負荷指標を、論理ボリュームに割り当てられた記憶領域へのアクセス要求数ではなく、該当アクセス要求に応じた累積実行時間によって判断している。そのため、より実情に合った負荷指標を算出することができる。
【０１６７】
しかもストレージ装置２１０に直接（ネットワークを経由せずに）接続されたディスクノード２００におけるＯＳのカーネル内で、アクセス要求に対する平均応答時間を計測するため、正確な平均応答時間を計測できる。
【０１６８】
〔第３の実施の形態〕
次に第３の実施の形態について説明する。第３の実施の形態は、スイッチ装置のポートミラーリング機能を用いて管理ノードでパケットを取得し、取得したパケットに基づいて論理ボリュームごとの負荷を計測するものである。また第３の実施の形態におけるシステム全体の構成は、図２に示した第２の実施の形態と同様である。
【０１６９】
図２０は、第３の実施の形態に係るシステムの機能を示すブロック図である。なお、図２０において、図５に示した第２の実施の形態に係るシステムと同じ機能については、同じ符号を付し説明を省略する。
【０１７０】
第３の実施の形態では、ポートミラーリング機能が搭載されたスイッチ装置１０ａを介して、各ノードが接続される。ポートミラーリング機能とは、所定のポートに入出力される通信内容のコピーを、別のミラーポートから出力する機能である。図２０の例では、ディスクノード２００ｂが接続されたポートに入出力される通信内容のコピーが、ミラーポートに出力される。ミラーポートには、管理ノード１００ｂが接続される。
【０１７１】
アクセスノード６００の機能は、第２の実施の形態と同様である。ディスクノード２００ｂの機能は、第２の実施の形態と比較して、論理ボリューム管理部２３０ｂと負荷情報送信部２４０ｂの機能が異なる。ディスクドライバ２２０の機能は、第２の実施の形態と同様である。
【０１７２】
論理ボリューム管理部２３０ｂは、論理ボリュームアクセス部２３１ｂを有している。論理ボリュームアクセス部２３１ｂは、アクセスノード６００からのアクセス要求パケットに基づくアクセス要求に応じて、ディスクドライバ２２０へアクセス要求を出力する。そして、アクセス要求に対する応答を、アクセスノード６００に送信する。ただし論理ボリュームアクセス部２３１ｂは、アクセス要求の内容や応答の内容を他の要素に通知する機能はなくてよい。
【０１７３】
またディスクノード２００ｂの負荷情報送信部２４０ｂは、ストレージ負荷情報をストレージ負荷記憶部２２３から取得し、管理ノード１００ｂに送信する。すなわち、第３の実施の形態における負荷情報送信部２４０ｂは、論理ボリューム負荷情報の送信は行わない。
【０１７４】
管理ノード１００ｂは、負荷情報取得部１１０ｂ、負荷情報記憶部１２０、負荷解析部１３０、解析結果記憶部１４０、解析結果表示部１５０、パケット解析部１６０、および論理ボリューム負荷計測部１７０を有している。負荷情報記憶部１２０、負荷解析部１３０、解析結果記憶部１４０、および解析結果表示部１５０の機能は、第２の実施の形態と同様である。
【０１７５】
パケット解析部１６０は、ポートミラーリング機能により取得したパケットを解析する。そして、パケット解析部１６０は、ディスクノード２００ｂに入力されたアクセス要求パケットを検出すると、そのアクセス要求パケットで示されるアクセス要求の内容を論理ボリューム負荷計測部１７０に通知する。また、パケット解析部１６０は、アクセス要求に対する応答を示すＩＯ応答パケットを検出すると、その応答の内容を論理ボリューム負荷計測部１７０に通知する。パケット解析部１６０から論理ボリューム負荷計測部１７０に渡される情報は、第２の実施の形態において、論理ボリュームアクセス部２３１から論理ボリューム負荷計測部２３２に渡される情報と同様である。
【０１７６】
論理ボリューム負荷計測部１７０は、パケット解析部１６０から渡された情報に基づいて、論理ボリュームに割り当てられた記憶領域へのアクセスがストレージ装置２１０に対して与える負荷を示す負荷を計測する。論理ボリューム負荷計測部１７０の処理の詳細は、第２の実施の形態における論理ボリューム負荷計測部２３２の処理と同様である。論理ボリューム負荷計測部１７０による計測の結果は、負荷情報記憶部１２０に格納される。
【０１７７】
負荷情報取得部１１０ｂは、負荷情報を取得する際に、ストレージ負荷情報をディスクノード２００ｂから取得する。すなわち、第３の実施の形態では、論理ボリューム負荷情報については、論理ボリューム負荷計測部１７０により負荷情報記憶部１２０に格納されるため、負荷情報取得部１１０ｂは取得せずにすむ。
【０１７８】
このように、ポートミラーリング機能を用いれば、論理ボリューム負荷情報については、管理ノード１００ｂにおいて計測可能となる。その結果、ディスクノード２００ｂにおける負荷情報取得のための処理が軽減される。
【０１７９】
〔第４の実施の形態〕
次に第４の実施の形態について説明する。第４の実施の形態は、アクセスノードにおいて論理ボリュームの負荷を計測するものである。なお、本実施の形態では、各アクセスノードは、予め決められた１つの論理ボリュームに対するアクセス要求のみを受け付けるものとする。また第４の実施の形態におけるシステム全体の構成は、図２に示した第２の実施の形態と同様である。
【０１８０】
図２１は、第４の実施の形態に係るシステムの機能を示すブロック図である。なお、図２１において、図２０に示した第３の実施の形態に係るシステムと同じ機能については、同じ符号を付し説明を省略する。
【０１８１】
第４の実施の形態では、ディスクノード２００ｂの機能は、第２の実施の形態と同様である。アクセスノード６００ｃは、アクセス情報記憶部６１０、データアクセス制御部６２０ｃ、論理ボリューム負荷計測部６３０、論理ボリューム負荷記憶部６４０、および負荷情報送信部６５０を有している。
【０１８２】
アクセス情報記憶部６１０は、図６に示した第２の実施の形態におけるアクセス情報記憶部６１０と同様のデータ構造のアクセス情報を記憶する。データアクセス制御部６２０ｃは、端末装置からの論理ボリューム内のデータへのアクセス要求に応じて、該当するデータを管理しているディスクノードへデータのアクセス要求を送信する。そして、データアクセス制御部６２０ｃは、ディスクノードへのアクセス結果を、アクセス要求を出力した端末装置に応答する。この際、データアクセス制御部６２０ｃは、アクセス情報記憶部６１０を参照して、アクセス対象のデータを含むスライスのスライスＩＤ、およびそのスライスを管理しているディスクノードのディスクノードＩＤを判断する。
【０１８３】
また、データアクセス制御部６２０ｃは、アクセス要求を送信した場合、そのアクセス要求の内容を論理ボリューム負荷計測部６３０に通知する。通知する内容には、アクセス要求の識別子、およびアクセス先のディスクノードのディスクノードＩＤが含まれる。さらにデータアクセス制御部６２０ｃは、ディスクノード２００ｂからアクセス要求に対する応答を受け取った場合、その応答に対応するアクセス要求の識別子を論理ボリューム負荷計測部６３０に通知する。
【０１８４】
論理ボリューム負荷計測部６３０は、論理ボリュームへのアクセス要求および応答に基づいて、アクセス対象となった論理ボリュームごとの負荷を計測する。例えば論理ボリューム負荷計測部６３０は、アクセス要求が出力されてから、そのアクセス要求に対する応答があるまでの実行時間を、ディスクノード別に集計する。なお、累積実行時間を計算する処理は、第２の実施の形態における論理ボリューム負荷計測部２３２の処理と同様である。論理ボリューム負荷計測部６３０は、所定期間ごとに計測したディスクノードごとの累積実行時間を論理ボリューム負荷記憶部６４０に格納する。
【０１８５】
論理ボリューム負荷記憶部６４０は、ディスクノードごとの論理ボリューム負荷情報を記憶する。負荷情報送信部６５０は、論理ボリューム負荷記憶部６４０に格納された論理ボリューム負荷情報を、管理ノード１００ｃに送信する。
【０１８６】
図２２は、論理ボリューム負荷記憶部のデータ構造例を示す図である。論理ボリューム負荷記憶部６４０には、ディスクノードごとの論理ボリューム負荷管理テーブル６４１，６４２，６４３が格納されている。例えば論理ボリューム負荷管理テーブル６４１には、ディスクノードＩＤが“ＳＮ−Ａ”のディスクノード２００ｂに対するアクセスに関する論理ボリューム負荷情報が設定される。
【０１８７】
論理ボリューム負荷管理テーブル６４１には、時刻とＬＶＯＬ０の累積実行時間との欄が設けられている。時刻の欄には、負荷を計測した時間帯の終了時刻が設定される。ＬＶＯＬ０の累積実行時間は、論理ボリュームＩＤが“ＬＶＯＬ０”の論理ボリューム９１０に対するアクセス要求に基づく処理時間の累積値が設定される。
【０１８８】
アクセスノード６００ｃでは、論理ボリューム負荷情報として、論理ボリュームＩＤが“ＬＶＯＬ０”の論理ボリューム９１０に割り当てられた記憶領域に対するアクセスの累積実行時間が計測される。
【０１８９】
管理ノード１００ｃは、負荷情報取得部１１０ｃ、負荷情報記憶部１２０、負荷解析部１３０、解析結果記憶部１４０、および解析結果表示部１５０を有している。負荷情報記憶部１２０、負荷解析部１３０、解析結果記憶部１４０、および解析結果表示部１５０については、第３の実施の形態の同名の要素と同じ機能である。
【０１９０】
負荷情報取得部１１０ｃは、複数のディスクノードそれぞれからストレージ負荷情報を取得するとともに、複数のアクセスノードそれぞれから論理ボリューム負荷情報を取得する。そして、負荷情報取得部１１０ｃは、取得した負荷情報を負荷情報記憶部１２０に格納する。これにより、図１５に示したような負荷情報管理テーブル１２１，１２２，１２３が負荷情報記憶部１２０に記憶される。
【０１９１】
このようにアクセスノードで論理ボリューム負荷情報を生成することで、ディスクノード２００ｂにおける負荷情報取得のための処理が軽減される。
〔その他の応用例〕
上記第２の実施の形態では、管理ノード１００において負荷解析を行っている。しかし、負荷解析を別の装置で実行することもできる。例えば、第２の実施の形態におけるディスクノード２００に、負荷情報記憶部１２０、負荷解析部１３０、および解析結果記憶部１４０を設けることができる。これにより、ディスクノード２００における負荷解析が可能となる。その場合、解析結果表示部１５０は、ディスクノード２００内の解析結果記憶部１４０から解析結果を取得して、解析結果を表示する。
【０１９２】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、負荷解析装置、管理ノード、ディスクノード、およびアクセスノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１９３】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１９４】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１９５】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１９６】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０１９７】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
（付記１）  ストレージ装置の負荷を解析する負荷解析プログラムであって、
コンピュータに、
前記ストレージ装置に対する所定期間内の１アクセス要求当たりの平均応答時間に基づいて、前記ストレージ装置で単位時間当たりに処理可能な最大アクセス要求数を算出し、前記最大アクセス要求数を最大負荷記憶手段に格納し、
前記最大負荷記憶手段に格納された前記最大アクセス要求数に対する前記所定期間内のアクセス要求数の割合を、前記ストレージ装置の前記所定期間における負荷を示す負荷指標として出力する、
処理を実行させる負荷解析プログラム。
【０１９８】
（付記２）  前記コンピュータに、さらに、
前記ストレージ装置内の記憶領域と、記憶領域が割り当てられた論理ボリュームとの対応関係を記憶する割り当て情報記憶手段を参照し、アクセス要求のアクセス対象となった記憶領域が割り当てられた論理ボリュームの内訳を計算し、論理ボリュームごとの内訳に応じて、前記負荷指標で示される前記ストレージ装置の前記所定期間における負荷に対する論理ボリュームごとの影響度を算出する、
処理を実行させる付記１記載の負荷解析プログラム。
【０１９９】
（付記３）  前記最大アクセス要求数を算出する際には、前記単位時間を前記平均応答時間で除算した値を、前記最大アクセス要求数とすることを特徴とする付記１または２のいずれかに記載の負荷解析プログラム。
【０２００】
（付記４）  前記平均応答時間は、前記所定期間内での前記ストレージ装置に対する各アクセス要求に対する応答時間の累計値を、前記ストレージ装置に対する前記所定期間内のアクセス要求数で除算した値であることを特徴とする付記１乃至３のいずれかに記載の負荷解析プログラム。
【０２０１】
（付記５）  前記コンピュータを、さらに、
前記ストレージ装置が接続された装置からネットワーク経由で前記所定期間の前記平均応答時間を取得する処理を実行させることを特徴とする付記１乃至４のいずれかに記載の負荷解析プログラム。
【０２０２】
（付記６）  前記論理ボリュームごとの前記影響度を算出する際には、各論理ボリュームに割り当てられた前記ストレージ装置内の記憶領域をアクセス先とする前記所定期間内のアクセス要求の実行時間を論理ボリュームごとに累積した累積実行時間に基づいて、前記負荷指標の値を各論理ボリュームに比例配分し、配分された値を各論理ボリュームの前記影響度とすることを特徴とする付記２記載の負荷解析プログラム。
【０２０３】
（付記７）  前記コンピュータを、さらに、
前記ストレージ装置が接続された装置から、ネットワーク経由で論理ボリュームごとの前記累積実行時間を取得する処理を実行させることを特徴とする付記６記載の負荷解析プログラム。
【０２０４】
（付記８）  前記コンピュータを、さらに、
前記ストレージ装置に対してネットワーク経由でアクセスする装置から、前記ネットワーク経由で論理ボリュームごとの前記累積実行時間を取得する処理を実行させることを特徴とする付記６記載の負荷解析プログラム。
【０２０５】
（付記９）  各論理ボリュームの前記影響度を算出する際には、
前記ストレージ装置に対する所定期間内のアクセス要求を取得し、該アクセス要求の取得時刻を、該アクセス要求のアクセス先の記憶領域が割り当てられている論理ボリュームに関連付けてアクセス情報記憶手段に格納し、
前記ストレージ装置からアクセス要求に対する応答を取得し、該応答に対応するアクセス要求の取得時刻を前記アクセス情報記憶手段から抽出し、
抽出した取得時刻が関連付けられている論理ボリュームに対応付けられた実行時間記憶手段に格納されている累積実行時間に、抽出した取得時刻から現在までの経過時間を加算し、
前記所定期間終了時に論理ボリュームごとに設けられた前記実行時間記憶手段に記憶されている前記累積実行時間を、各論理ボリュームの累積実行時間とする、
ことを特徴とする付記６記載の負荷解析プログラム。
【０２０６】
（付記１０）  ストレージ装置の負荷を解析する負荷解析方法であって、
コンピュータが、
前記ストレージ装置に対する所定期間内の１アクセス要求当たりの平均応答時間に基づいて、前記ストレージ装置で単位時間当たりに処理可能な最大アクセス要求数を算出し、前記最大アクセス要求数を最大負荷記憶手段に格納し、
前記最大負荷記憶手段に格納された前記最大アクセス要求数に対する前記所定期間内のアクセス要求数の割合を、前記ストレージ装置の前記所定期間における負荷を示す負荷指標として出力する、
することを特徴とする負荷解析方法。
【０２０７】
（付記１１）  ストレージ装置の負荷を解析する負荷解析装置であって、
前記ストレージ装置に対する所定期間内の１アクセス要求当たりの平均応答時間に基づいて、前記ストレージ装置で単位時間当たりに処理可能な最大アクセス要求数を算出し、前記最大アクセス要求数を最大負荷記憶手段に格納する最大負荷算出手段と、
前記最大負荷記憶手段に格納された前記最大アクセス要求数に対する前記所定期間内のアクセス要求数の割合を、前記ストレージ装置の前記所定期間における負荷を示す負荷指標として出力する負荷指標算出手段と、
を有する負荷解析装置。
【符号の説明】
【０２０８】
１  負荷解析装置
１ａ  最大負荷算出手段
１ｂ  最大負荷記憶手段
１ｃ  負荷指標算出手段
１ｄ  割り当て情報記憶手段
１ｅ  論理ボリューム影響度算出手段
１ｆ  解析結果記憶手段
２  ストレージ装置
３  アクセス装置
【図１】
2011197804.tif 000003
【図２】
2011197804.tif 000004
【図３】
2011197804.tif 000005
【図４】
2011197804.tif 000006
【図５】
2011197804.tif 000007
【図６】
2011197804.tif 000008
【図７】
2011197804.tif 000009
【図８】
2011197804.tif 000010
【図９】
2011197804.tif 000011
【図１０】
2011197804.tif 000012
【図１１】
2011197804.tif 000013
【図１２】
2011197804.tif 000014
【図１３】
2011197804.tif 000015
【図１４】
2011197804.tif 000016
【図１５】
2011197804.tif 000017
【図１６】
2011197804.tif 000018
【図１７】
2011197804.tif 000019
【図１８】
2011197804.tif 000020
【図１９】
2011197804.tif 000021
【図２０】
2011197804.tif 000022
【図２１】
2011197804.tif 000023
【図２２】
2011197804.tif 000024