(57)【要約】【課題】ストレージノードの論理ボリューム管理機能の有無に関係なく、論理ボリュームごとの負荷を容易に取得可能とすること。【解決手段】論理ボリューム割当情報記憶手段１ａは、ストレージノード２内の記憶領域２ａ，２ｂ，２ｃと論理ボリュームＡ，Ｂ，Ｃとの対応関係を記憶する。論理ボリューム判定手段１ｂは、複数の処理要求を取得し、論理ボリューム割当情報記憶手段１ａを参照して、複数の処理要求の処理対象となる記憶領域に対応する論理ボリュームを判定する。処理要求内訳計算手段１ｃは、論理ボリューム判定手段１ｂによる判定結果に基づいて、論理ボリュームＡ，Ｂ，Ｃにつき各処理要求の取得数を計数し、各取得数の合計に対する各取得数の割合を算出する。【選択図】図１
2010211549.tif 000002
【特許請求の範囲】
【請求項１】
アクセスノードとストレージノードとがネットワークを介して接続され、前記ストレージノード内の複数の論理ボリュームの何れかに対応付けられた複数の記憶領域に前記アクセスノードが扱うデータを格納するストレージシステムを、前記ストレージノードに前記ネットワークを介して接続されたコンピュータに管理させる管理プログラムであって、
前記コンピュータを、
前記複数の記憶領域それぞれに対する複数の処理要求を取得し、前記ストレージノード内の前記複数の記憶領域と前記複数の論理ボリュームとの対応関係を記憶する論理ボリューム割当情報記憶手段を参照し、前記各処理要求の処理対象となる記憶領域に対応する論理ボリュームを判定する論理ボリューム判定手段、
前記論理ボリューム判定手段による判定結果に基づいて、前記各論理ボリュームにつき前記各処理要求の取得数を計数し、前記各取得数の合計に対する前記各取得数の割合を算出する処理要求内訳計算手段、
として機能させることを特徴とする管理プログラム。
【請求項２】
前記処理要求内訳計算手段は、前記各割合を前記各論理ボリュームに対応付けて管理情報記憶手段に格納しており、
前記コンピュータを、更に、
前記複数の処理要求に応じて前記ストレージノードで発生した負荷を示す負荷情報を取得し、取得した前記負荷情報を前記管理情報記憶手段に格納する負荷情報取得手段、
前記管理情報記憶手段に記憶された前記各割合と前記負荷情報とに基づいて、前記各論理ボリュームの負荷を示す論理ボリューム負荷値を算出する論理ボリューム負荷算出手段、
として機能させることを特徴とする請求項１記載の管理プログラム。
【請求項３】
前記論理ボリューム判定手段は、前記各論理ボリュームに対するデータの読み出し要求とデータの書き込み要求とを区別して前記論理ボリュームの判定を行い、
前記処理要求内訳計算手段は、取得した前記読み出し要求の数と前記書き込み要求の数とを合計して前記各取得数を計数する、
ことを特徴とする請求項２記載の管理プログラム。
【請求項４】
前記負荷情報取得手段は、前記ストレージノードで取得され、当該ストレージノードに対するデータの読み出し要求とデータの書き込み要求とに応じて発生した単位時間当たりのデータの入出力数に基づく負荷を示す値を含む前記負荷情報を取得することを特徴とする請求項３記載の管理プログラム。
【請求項５】
前記論理ボリューム負荷算出手段は、前記負荷情報に含まれる前記単位時間当たりのデータの入出力数に基づく負荷を示す値を前記各割合の比で割ることで前記各論理ボリュームの前記論理ボリューム負荷値を算出することを特徴とする請求項４記載の管理プログラム。
【請求項６】
アクセスノードとストレージノードとがネットワークを介して接続され、前記ストレージノード内の複数の論理ボリュームの何れかに対応付けられた複数の記憶領域に前記アクセスノードが扱うデータを格納するストレージシステムと前記ネットワークを介して接続され、前記ストレージシステムを管理する管理装置であって、
前記複数の記憶領域それぞれに対する複数の処理要求を取得し、前記ストレージノード内の前記複数の記憶領域と前記複数の論理ボリュームとの対応関係を記憶する論理ボリューム割当情報記憶部を参照し、前記各処理要求の処理対象となる記憶領域に対応する論理ボリュームを判定する論理ボリューム判定部と、
前記論理ボリューム判定部による判定結果に基づいて、前記各論理ボリュームにつき前記各処理要求の取得数を計数し、前記各取得数の合計に対する前記各取得数の割合を算出する処理要求内訳計算部と、
を有することを特徴とする管理装置。
【請求項７】
アクセスノードとストレージノードとがネットワークを介して接続され、前記ストレージノード内の複数の論理ボリュームの何れかに対応付けられた複数の記憶領域に前記アクセスノードが扱うデータを格納するストレージシステムと前記ネットワークを介して接続され、前記ストレージシステムを管理するコンピュータの管理方法であって、
論理ボリューム判定手段が、前記複数の記憶領域それぞれに対する複数の処理要求を取得し、前記ストレージノード内の前記複数の記憶領域と前記複数の論理ボリュームとの対応関係を記憶する論理ボリューム割当情報記憶手段を参照し、前記各処理要求の処理対象となる記憶領域に対応する論理ボリュームを判定し、
処理要求内訳計算手段が、前記論理ボリューム判定手段による判定結果に基づいて、前記各論理ボリュームにつき前記各処理要求の取得数を計数し、前記各取得数の合計に対する前記各取得数の割合を算出する、
ことを特徴とする管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してストレージシステムを管理する管理プログラム、管理装置および管理方法に関する。
【背景技術】
【０００２】
現在、コンピュータを用いたデータ処理が広く行われるようになり、データを保存・利用するためのストレージ技術が一層重要となっている。近年では、データ保存の高信頼化やデータ利用の高速化を図るため、分散ストレージシステムが構築されている。
【０００３】
分散ストレージシステムでは、複数のストレージノードとアクセスノードとがネットワークを介して接続される。ストレージノードは、記憶装置を備えており、データを記憶する。アクセスノードは、ストレージノードに記憶されたデータにアクセスする。アクセスノードは、複数のストレージノードにデータを分散して格納することができる。これにより、複数のストレージノードに負荷が分散されてシステムの高速化を図れる。また、アクセスノードは、データを冗長して複数のストレージノードに配置することもできる。これにより、データ保存の高信頼化を図れる。
【０００４】
なお、分散ストレージシステムでは、複数のストレージノードの記憶装置に跨って１つの論理的な記憶領域（論理ボリューム）を設けることもある。論理ボリュームは複数設けられ、例えば提供するサービスごとに使い分けることができる。このようにすると、複数のサービスで分散ストレージシステムの利点を享受できる。
【０００５】
ところで、システムの運用管理において、システムを構成するノードで発生する負荷の監視が行われる。負荷の監視により、負荷の集中しやすいノードや処理能力に余裕があるノードを特定することができる。その結果に基づき、システム全体のチューニング、ハードウェア資源の拡充および機能の追加などを各ノードの利用状況に応じて的確に行うことができる。
【０００６】
分散ストレージシステムでも、負荷の監視が行われる。特に、ストレージノードでは、データの読み出し／書き込みを頻繁に行うため、記憶装置の負荷の監視が重要となる。
監視対象としては、例えば記憶領域の使用量が考えられる。記憶領域の使用量を監視することで、記憶領域の不足が発生することを未然に防止できる。例えば、特定のストレージノードで使用容量が所定の水準を上回った場合には、該当のストレージノードに格納されたデータを記憶領域に余裕のあるストレージノードに再配置し、各ストレージノードの使用容量を平準化することが考えられる。
【０００７】
また、監視対象として、例えば論理ボリュームごとの使用量が考えられる。各ストレージノード内で論理ボリュームごとの使用量を監視することで、例えばサービスごとの利用状況を把握することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−０５０３０３号公報
【特許文献２】特開２００３−２９６０３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、各ストレージノードで論理ボリュームごとの使用量を取得するには、そのための機能が各ストレージノードに予め備えられている必要がある。このため、当機能を備えていないストレージノードでは、論理ボリュームごとの使用量を取得することができない。特に、分散ストレージシステムでは、ストレージノードを流動的に追加・更新でき、ストレージノードとして異なるベンダの様々な機種が接続され得る。この場合、各機種が備える特定の機能に依存した管理方法では、システム全体として統合的な管理を行うことが困難であるという問題がある。一方、この機能をストレージノードに付加する場合、そのためのコストが問題となる。
【００１０】
本発明はこのような点に鑑みてなされたものであり、ストレージノードの論理ボリューム管理機能の有無に関係なく、ストレージノードの論理ボリュームごとの負荷を容易に取得することが可能な管理プログラム、管理装置および管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、アクセスノードとストレージノードとがネットワークを介して接続され、ストレージノード内の複数の論理ボリュームの何れかに対応付けられた複数の記憶領域にアクセスノードが扱うデータを格納するストレージシステムを、ストレージノードにネットワークを介して接続されたコンピュータに管理させる管理プログラムが提供される。この管理プログラムを実行するコンピュータは、論理ボリューム判定手段および処理要求内訳計算手段として機能する。論理ボリューム判定手段は、複数の記憶領域それぞれに対する複数の処理要求を取得し、ストレージノード内の複数の記憶領域と複数の論理ボリュームとの対応関係を記憶する論理ボリューム割当情報記憶手段を参照し、各処理要求の処理対象となる記憶領域に対応する論理ボリュームを判定する。処理要求内訳計算手段は、論理ボリューム判定手段による判定結果に基づいて、各論理ボリュームにつき各処理要求の取得数を計数し、各取得数の合計に対する各取得数の割合を算出する。
【００１２】
また、上記課題を解決するために上記管理プログラムを実行するコンピュータと同様の機能を有する管理装置が提供される。また、上記管理プログラムにより実現される処理と同様の処理を行う管理方法が提供される。
【発明の効果】
【００１３】
上記管理プログラム、管理装置および管理方法によれば、ストレージノードの論理ボリューム管理機能の有無に関係なく、ストレージノードの論理ボリュームごとの負荷を容易に取得することができる。
【図面の簡単な説明】
【００１４】
【図１】ストレージシステムを示す図である。
【図２】分散ストレージシステムの構成を示す図である。
【図３】管理ノードのハードウェア構成を示す図である。
【図４】ストレージノードのハードウェア構成を示す図である。
【図５】論理ボリュームの構成例を示す図である。
【図６】各ノードの機能構成を示す図である。
【図７】アクセス制御テーブルのデータ構造例を示す図である。
【図８】ストレージノード管理テーブルのデータ構造例を示す図である。
【図９】パケットの構造例を示す図である。
【図１０】スライス単位集計テーブルのデータ構造例を示す図である。
【図１１】ストレージノード単位集計テーブルのデータ構造例を示す図である。
【図１２】ストレージノード単位集計テーブルのデータ構造例を示す図である。
【図１３】計測負荷テーブルのデータ構造例を示す図である。
【図１４】管理ノードの解析負荷情報取得処理の手順を示すフローチャートである。
【図１５】ストレージノードの計測負荷情報取得処理の手順を示すフローチャートである。
【図１６】管理ノードの論理ボリューム負荷算出処理の手順を示すフローチャートである。
【図１７】論理ボリューム算出処理を示す模式図である。
【図１８】負荷表示画面の第１の例を示す図である。
【図１９】負荷表示画面の第２の例を示す図である。
【図２０】負荷表示画面の第３の例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を図面を参照して詳細に説明する。
図１は、ストレージシステムを示す図である。このストレージシステムは、管理ノード１、ストレージノード２およびアクセスノード３を有する。管理ノード１、ストレージノード２およびアクセスノード３は、有線または無線のネットワークにより通信可能に接続される。管理ノード１は、ストレージシステムを管理する運用管理用の端末装置である。ストレージノード２は、アクセスノード３が扱うデータを記憶する。アクセスノード３は、ストレージノード２に記憶されたデータにアクセスする。管理ノード１は、特にストレージノード２が備える記憶装置の負荷を監視する。記憶装置の負荷は、アクセスノード３のデータアクセスに起因する。記憶装置の物理領域は、記憶領域２ａ，２ｂ，２ｃに分割され、それぞれ論理ボリュームＡ，Ｂ，Ｃに対応付けられている。アクセスノード３は、データアクセスのためにストレージノード２に処理要求４を送信する。ここで、処理要求４は、記憶領域２ａ，２ｂ，２ｃのそれぞれに対して送信される。すなわち、アクセスノード３は、アクセスしたいデータが存在する記憶領域を指定して処理要求４を送信する。
【００１６】
管理ノード１は、論理ボリューム割当情報記憶手段１ａ、論理ボリューム判定手段１ｂおよび処理要求内訳計算手段１ｃを有する。
論理ボリューム割当情報記憶手段１ａは、ストレージノード内の記憶領域２ａ，２ｂ，２ｃと論理ボリュームＡ，Ｂ，Ｃとの対応関係を記憶する。
【００１７】
論理ボリューム判定手段１ｂは、記憶領域２ａ，２ｂ，２ｃに対する複数の処理要求を取得する。論理ボリューム判定手段１ｂは、論理ボリューム割当情報記憶手段１ａを参照して、各処理要求の処理対象となる記憶領域に対応する論理ボリュームを判定する。
【００１８】
処理要求内訳計算手段１ｃは、論理ボリューム判定手段１ｂによる判定結果に基づいて、論理ボリュームＡ，Ｂ，Ｃにつき各処理要求の取得数を計数し、各取得数の合計に対する各取得数の割合を算出する。この取得数は、論理ボリューム判定手段１ｂが取得した複数の処理要求に応じてストレージノード２の論理ボリュームＡ，Ｂ，Ｃで発生した負荷を示す値となる。また、取得数の割合は、論理ボリュームＡ，Ｂ，Ｃで発生した負荷の内訳を示す値となる。
【００１９】
管理ノード１によれば、論理ボリューム判定手段１ｂにより、記憶領域２ａ，２ｂ，２ｃに対する複数の処理要求が取得される。次に、論理ボリューム判定手段１ｂにより、論理ボリューム割当情報記憶手段１ａが参照されて、各処理要求の処理対象となる記憶領域に対応する論理ボリュームが判定される。そして、処理要求内訳計算手段１ｃにより、論理ボリュームＡ，Ｂ，Ｃにつき各処理要求の取得数が計数され、各取得数の合計に対する各取得数の割合が算出される。
【００２０】
例えば、上記の方法で論理ボリュームＡ，Ｂ，Ｃに対するピーク時の処理要求の取得数を予め求めておく。そして、負荷測定時に上記の方法で論理ボリュームＡ，Ｂ，Ｃに対する処理要求の取得数を求める。このようにすると、ピーク時に対する論理ボリュームＡ，Ｂ，Ｃの負荷を、例えばそれぞれ３０％，２５％，２０％（２５％が空き）などと求めることができる。また、負荷の内訳を算出することで、どの論理ボリュームに対する負荷が大きいかを判別することもできる。
【００２１】
これにより、ストレージノードの論理ボリューム管理機能の有無に関係なく、論理ボリュームごとの負荷を容易に取得することができる。具体的には、処理要求４を取得して、処理要求４で指定される記憶領域によって、ストレージノード２全体のうち、どの論理ボリュームで負荷が発生したかを評価する。このため、ストレージノード２において、論理ボリュームごとに負荷を収集する機能が不要となる。また、このための機能を付加する必要もなく、そのためのコストが不要である。
【００２２】
なお、管理ノード１がアクセスノード３から収集した処理要求４を用いて負荷を見積もっても、実際にストレージノード２で発生している負荷と誤差が生じる可能性がある。例えば、アクセスノード３からストレージノード２に処理要求４が送信されたとしても、処理要求４がネットワーク内を滞留してストレージノード２に到達するまでに時間が掛かる、あるいは、到達する前に破棄されてしまうことも考えられる。この場合、該当の処理要求４の処理は、ストレージノード２では実行されないので、この分だけ管理ノード１が求めた負荷は、実際に発生した負荷よりも大きな値を見積もってしまうことになる。
【００２３】
これに対し、例えば、ストレージノード２の実測された負荷を用いて処理要求内訳計算手段１ｃが求めた負荷を補正することが考えられる。具体的には、管理ノード１にストレージノード２で実測された負荷情報を取得し、この負荷情報と処理要求内訳計算手段１ｃが求めた負荷の内訳とに基づき論理ボリュームＡ，Ｂ，Ｃごとの負荷情報を取得する。ストレージノード２で発生した実測の負荷情報として、ハードウェアリソース全体の７０％を使用中（３０％が空き）である旨を取得したとする。この場合、処理要求内訳計算手段１ｃが求めた論理ボリュームＡ，Ｂ，Ｃの負荷の内訳が６：５：４であるので、実測の負荷情報から、論理ボリュームＡ，Ｂ，Ｃの負荷を２８％、２３．３％、１８．７％（３０％が空き）と再評価できる。
【００２４】
このようにして、論理ボリュームＡ，Ｂ，Ｃの負荷をより精度良く求めることも考えられる。
ところで、管理ノード１は、例えば複数のストレージノードを備えた分散ストレージシステムに適用できる。分散ストレージシステムでは、ストレージノードを流動的に追加・更新でき、ストレージノードとして異なるベンダの様々な機種が接続され得る。この場合、各機種が備える特定の機能に依存した管理方法では、統合的な管理が行えない。一方、管理ノード１は機種に依存しない方法で論理ボリュームの監視を可能とする。したがって、管理ノード１は分散ストレージシステムに適用する場合に特に有用である。
【００２５】
以下、分散ストレージシステムに管理ノード１を適用する場合を例に採り、更に具体的に説明する。
図２は、分散ストレージシステムの構成を示す図である。分散ストレージシステムは、同一内容の複数のデータをネットワークで接続された複数のストレージノードに分散して配置することで、信頼性と処理性能とを向上させたストレージシステムである。この分散ストレージシステムは、管理ノード１００、ストレージノード２００，３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００を有する。管理ノード１００、ストレージノード２００，３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００は、スイッチ装置１０を介して相互にデータ通信可能に接続される。また、端末装置５１，５２がネットワーク５０を介してアクセスノード６００，７００，８００に接続されている。
【００２６】
管理ノード１００は、分散ストレージシステムの管理者が操作する運用管理用の端末装置である。管理者は、管理ノード１００を用いて、ストレージノード２００，３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００の利用状況を監視することができる。また、管理者は、管理ノード１００を操作して、ストレージノード２００，３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００にアクセスし、運用に必要な各種設定を行うことができる。
【００２７】
なお、管理ノード１００は、スイッチ装置１０が備えるポートミラーリング機能などにより、アクセスノード６００，７００，８００からストレージノード２００，３００，４００に対するリクエストパケット（以下、単にパケットという）を受信する。
【００２８】
ストレージノード２００，３００，４００には、それぞれストレージ装置２１０，３１０，４１０が接続されている。ストレージ装置２１０，３１０，４１０は、例えば、内蔵する複数のＨＤＤ（Hard disk Drive）を用いたＲＡＩＤ（Redundant Arrays of Independent Disks）システムである。ストレージノード２００，３００，４００は、ストレージ装置２１０，３１０，４１０に格納されたデータをスイッチ装置１０経由でアクセスノード６００，７００，８００に提供する。
【００２９】
コントロールノード５００は、ストレージノード２００，３００，４００を管理する。具体的には、コントロールノード５００は、データの配置状況を示す論理ボリュームを保持している。コントロールノード５００は、ストレージノード２００，３００，４００からデータの管理に関する情報を取得し、必要に応じて論理ボリュームを更新する。また、コントロールノード５００は、論理ボリュームが更新されると、その影響を受けるストレージノードに対して更新内容を通知する。論理ボリュームの詳細は、後述する。
【００３０】
アクセスノード６００，７００，８００は、端末装置５１，５２に対して、ストレージノード２００，３００，４００が管理するデータを利用した情報処理のサービスを提供する。すなわち、アクセスノード６００は、端末装置５１，５２からの要求に応答して所定のプログラムを実行し、必要に応じてストレージノード２００，３００，４００にアクセスする。ここで、アクセスノード６００，７００，８００は、コントロールノード５００から論理ボリュームを取得し、取得した論理ボリュームに基づいてアクセスすべきストレージノードを特定する。
【００３１】
図３は、管理ノードのハードウェア構成を示す図である。管理ノード１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＡＭ（Random Access Memory）１０２、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５および通信インタフェース１０６を有する。
【００３２】
ＣＰＵ１０１は、管理ノード１００全体の動作を制御する。
ＲＡＭ１０２は、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションソフトウェア（以下、アプリケーションという）のプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、ＣＰＵ１０１による処理に必要な各種データを記憶する。
【００３３】
ＨＤＤ１０３は、ＯＳのプログラム、アプリケーションのプログラムを記憶する。また、ＨＤＤ１０３は、ＣＰＵ１０１による処理に必要な各種データを記憶する。なお、ＨＤＤ１０３の代わりに例えばＳＳＤ（Solid State Drive）などの他の不揮発性の記憶装置を用いることもできる。
【００３４】
グラフィック処理装置１０４は、モニタ１１と接続される。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って画像をモニタ１１の画面に表示させる。
入力インタフェース１０５は、キーボード１２とマウス１３と接続される。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。
【００３５】
通信インタフェース１０６は、スイッチ装置１０と接続され、ストレージノード２００，３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００とデータの送受信を行う。
【００３６】
なお、コントロールノード５００、アクセスノード６００，７００，８００および端末装置５１，５２についても管理ノード１００と同様のハードウェア構成により実現できる。ただし、アクセスノード６００，７００，８００は、スイッチ装置１０と接続するための通信インタフェースに加えて、ネットワーク５０と接続するための通信インタフェースを更に備えている。
【００３７】
図４は、ストレージノードのハードウェア構成を示す図である。ストレージノード２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＨＤＤインタフェース２０３、グラフィック処理装置２０４、入力インタフェース２０５および通信インタフェース２０６を有する。
【００３８】
ＣＰＵ２０１は、ストレージノード２００全体の動作を制御する。
ＲＡＭ２０２は、ＣＰＵ２０１に実行させるＯＳのプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ２０２は、ＣＰＵ２０１による処理に必要な各種データを記憶する。
【００３９】
ＨＤＤインタフェース２０３は、ストレージ装置２１０と接続される。ＨＤＤインタフェース２０３は、ストレージ装置２１０に内蔵されたＲＡＩＤコントローラと通信し、ストレージ装置２１０に対するデータの入出力を行う。ストレージ装置２１０内のＲＡＩＤコントローラは、例えばＲＡＩＤ０〜６の何れかの機能を有し、複数のＨＤＤをまとめて１台の記憶装置として管理する。ストレージ装置２１０は、ＯＳのプログラム、アプリケーションのプログラムを記憶する。ＯＳのプログラム、アプリケーションのプログラムは、例えばストレージノード２００に別個に設けられた他の記憶装置に格納されてもよい。また、ストレージ装置２１０は、アクセスノード６００，７００，８００が扱うデータを記憶する。
【００４０】
グラフィック処理装置２０４は、モニタ２１と接続される。グラフィック処理装置２０４は、ＣＰＵ２０１からの命令に従って画像をモニタ２１の画面に表示させる。
入力インタフェース２０５は、キーボード２２とマウス２３と接続される。入力インタフェース２０５は、キーボード２２やマウス２３から送られてくる信号をＣＰＵ２０１に送信する。
【００４１】
通信インタフェース２０６は、スイッチ装置１０と接続され、管理ノード１００、ストレージノード３００，４００、コントロールノード５００およびアクセスノード６００，７００，８００とデータの送受信を行う。
【００４２】
なお、ストレージノード３００，４００についてもストレージノード２００と同様のハードウェア構成により実現できる。
次に、コントロールノード５００がアクセスノード６００，７００，８００に対して提供する論理ボリュームについて説明する。論理ボリュームは、ストレージノード２００，３００，４００によって分散管理されているデータを、アクセスノード６００，７００，８００から容易に利用できるようにするための仮想的なボリュームである。
【００４３】
図５は、論理ボリュームの構成例を示す図である。この分散ストレージシステムは、論理ボリューム９１０，９２０，９３０を有する。
論理ボリューム９１０には、“Ｌ０”という論理ボリュームＩＤが付与されている。論理ボリューム９１０は、６つのセグメント９１１〜９１６に分割されて、管理されている。セグメント９１１〜９１６には、それぞれ論理ボリュームＩＤ“Ｌ０”に対して、“０”〜“５”というセグメントＩＤが付与されている。
【００４４】
論理ボリューム９２０には、“Ｌ１”という論理ボリュームＩＤが付与されている。論理ボリューム９２０は、６つのセグメント９２１〜９２６に分割されて、管理されている。セグメント９２１〜９２６には、それぞれ論理ボリュームＩＤ“Ｌ１”に対して、“０”〜“５”というセグメントＩＤが付与されている。
【００４５】
論理ボリューム９３０には、“Ｌ２”という論理ボリュームＩＤが付与されている。論理ボリューム９３０は、６つのセグメント９３１〜９３６に分割されて、管理されている。セグメント９３１〜９３６には、それぞれ論理ボリュームＩＤ“Ｌ２”に対して、“０”〜“５”というセグメントＩＤが付与されている。
【００４６】
また、ストレージノード２００には、“ＳＮ−Ａ”というノードＩＤが付与されている。ストレージノード３００には、“ＳＮ−Ｂ”というノードＩＤが付与されている。ストレージノード４００には、“ＳＮ−Ｃ”というノードＩＤが付与されている。ストレージ装置２１０，３１０，４１０では、その物理的な記憶領域が６つのスライスに分割されて、管理されている。
【００４７】
ストレージ装置２１０内の記憶領域は、６つのスライス２１１〜２１６に分割されている。スライス２１１〜２１６には、ノードＩＤ“ＳＮ−Ａ”に対して“１”〜“６”というスライスＩＤが付与されている。
【００４８】
ストレージ装置３１０内の記憶領域は、６つのスライス３１１〜３１６に分割されている。スライス３１１〜３１６には、ノードＩＤ“ＳＮ−Ｂ”に対して“１”〜“６”というスライスＩＤが付与されている。
【００４９】
ストレージ装置４１０内の記憶領域は、６つのスライス４１１〜４１６に分割されている。スライス４１１〜４１６には、ノードＩＤ“ＳＮ−Ｃ”に対して“１”〜“６”というスライスＩＤが付与されている。
【００５０】
論理ボリューム９１０，９２０，９３０の各セグメントは、ストレージ装置２１０，３１０，４１０の各スライスに分散して配置される。
例えば、セグメント９１１は、スライス２１１に配置される。セグメント９１２は、スライス３１１に配置される。セグメント９１３は、スライス４１１に配置される。セグメント９１４は、スライス２１２に配置される。セグメント９１５は、スライス３１２に配置される。セグメント９１６は、スライス４１２に配置される。
【００５１】
このように論理ボリューム９１０のセグメント９１１〜９１６は、ストレージ装置２１０，３１０，４１０のスライスＩＤ“１”、“２”のスライスに配置される。
また、論理ボリューム９２０のセグメント９２１〜９２６は、ストレージ装置２１０，３１０，４１０のスライスＩＤ“３”、“４”のスライスに配置される。また、論理ボリューム９３０のセグメント９３１〜９３６は、ストレージ装置２１０，３１０，４１０のスライスＩＤ“５”、“６”のスライスに配置される。
【００５２】
なお、論理ボリュームは、データの用途やアクセス元の権限などに応じて複数作成することができる。ここでは、論理ボリューム９１０は、アクセスノード６００のみからのアクセスが可能である。論理ボリューム９２０は、アクセスノード７００のみからのアクセスが可能である。論理ボリューム９３０は、アクセスノード８００のみからのアクセスが可能である。論理ボリュームに現れないスライスは、アクセスノード６００，７００，８００から認識することができない。例えば、アクセスノード６００は、ストレージ装置２１０のスライスのうち論理ボリューム９１０のセグメント９１１，９１４に対応付けられたスライス２１１，２１２以外は認識することができない。このため、論理ボリュームを使い分けることはセキュリティの向上にも寄与する。
【００５３】
図６は、各ノードの機能構成を示す図である。管理ノード１００は、アクセス情報受信部１１０、アクセス情報記憶部１２０、パケット収集部１３０、パケット記憶部１４０、パケット解析部１５０、解析負荷情報記憶部１６０、計測負荷情報受信部１７０、計測負荷情報記憶部１８０、論理ボリューム負荷算出部１９０および負荷表示部１９５を有する。これらの機能は、ＣＰＵ１０１が所定のプログラムを実行することで実現される。ただし、これらの機能の一部または全部を専用のハードウェアで実現してもよい。
【００５４】
アクセス情報受信部１１０は、コントロールノード５００からアクセスノード６００，７００，８００がストレージノード２００，３００，４００に対するデータアクセスに用いるアクセス情報を取得する。アクセス情報は、論理ボリュームとストレージノード２００，３００，４００に設けられたスライスとの対応付けを定義したものである。アクセス情報受信部１１０は、取得したアクセス情報をアクセス情報記憶部１２０に格納する。アクセス情報受信部１１０は、アクセス情報記憶部１２０に記憶されたアクセス情報が最新のものとなるよう、例えば定期的にコントロールノード５００からのアクセス情報の受信を試みる。
【００５５】
アクセス情報記憶部１２０は、アクセス情報受信部１１０が取得したアクセス情報を記憶する。
パケット収集部１３０は、アクセスノード６００，７００，８００からストレージノード２００，３００，４００へのパケットをスイッチ装置１０から収集する。パケット収集部１３０は、収集したパケットをパケット記憶部１４０に格納する。
【００５６】
パケット記憶部１４０は、パケット収集部１３０が収集したパケットを記憶する。
パケット解析部１５０は、パケット記憶部１４０に記憶されたパケットを解析する。パケットには処理内容（ｒｅａｄ／ｗｒｉｔｅ）や処理要求先のストレージノードのスライスを指定する情報が含まれる。このため、パケット解析部１５０は、これらの情報やアクセス情報記憶部１２０に記憶されたアクセス情報を参照し、各スライスに対するパケット数を計数することでスライス単位に発生する負荷を評価することができる。
【００５７】
なお、パケットを解析して求めた負荷をスライス単位の解析負荷情報と呼ぶこととする。パケット解析部１５０は、スライス単位の解析負荷情報を解析負荷情報記憶部１６０に格納する。また、パケット解析部１５０は、スライス単位の解析負荷情報を基に論理ボリューム単位に発生する解析負荷を評価することができる。パケット解析部１５０は、論理ボリューム単位の解析負荷情報を解析負荷情報記憶部１６０に格納する。
【００５８】
解析負荷情報記憶部１６０は、パケット解析部１５０が評価したパケット単位および論理ボリューム単位の解析負荷情報を記憶する。
計測負荷情報受信部１７０は、ストレージノード２００，３００，４００で実測された負荷情報を受信する。ここで、このように実測された負荷情報を計測負荷情報と呼ぶこととする。
【００５９】
なお、パケット解析部１５０が求めた解析負荷と比較可能な負荷指標としては、例えばｉｏｐｓ（Input Output Per Second）がある。ｉｏｐｓは、記憶装置の性能を評価するための代表的な指標であり、記憶装置が１秒間に実行したＩＯ回数（単位時間当たりのデータの入出力数）を表す。ｉｏｐｓは、ストレージノード２００，３００，４００に対する単位時間当たりのパケット数（すなわち、リクエスト数）に線形的に依存するものと考えられる。以下では、計測負荷情報受信部１７０が受信する負荷情報には、負荷指標としてｉｏｐｓが含まれるものとする。
【００６０】
計測負荷情報受信部１７０は、取得した計測負荷情報を計測負荷情報記憶部１８０に格納する。
計測負荷情報記憶部１８０は、計測負荷情報受信部１７０が受信した計測負荷情報を記憶する。
【００６１】
論理ボリューム負荷算出部１９０は、解析負荷情報記憶部１６０に記憶された解析負荷情報および計測負荷情報記憶部１８０に記憶された計測負荷情報に基づいて、論理ボリューム９１０，９２０，９３０の負荷（論理ボリューム負荷）を算出する。論理ボリューム負荷算出部１９０は、論理ボリューム負荷の算出結果を負荷表示部１９５に出力する。
【００６２】
負荷表示部１９５は、論理ボリューム負荷算出部１９０が算出した論理ボリューム負荷の内容をモニタ１１に表示する。論理ボリューム負荷の表示方法の詳細については、後述する。
【００６３】
ストレージノード２００は、データアクセス部２２０および負荷計測部２３０を有する。なお、ストレージノード３００，４００に関しても同一の機能構成となる。
データアクセス部２２０は、アクセスノード６００からのパケットを受け付けると、該当のパケットに含まれる処理内容と対象のスライスとを参照して、ストレージ装置２１０に格納されたデータを操作する。
【００６４】
具体的には、データアクセス部２２０は、アクセスノード６００からスライスを指定したデータの読み出し要求（ｒｅａｄ要求）を受け付けると、指定されたスライスのデータを読み出す。そして、データアクセス部２２０は、読み出しの結果をアクセスノード６００に送信する。また、データアクセス部２２０は、アクセスノードからスライスを指定したデータの書き込み要求（ｗｒｉｔｅ要求）を受け付けると、ストレージ装置２１０内の指定されたスライスにデータを書き込む。そして、データアクセス部２２０は、書き込みの結果をアクセスノード６００に送信する。
【００６５】
なお、データアクセス部２２０は、各スライスに対応するストレージ装置２１０の記憶領域の物理的なアドレスを管理した情報を参照することで、このようなデータ操作の実行が可能である。このような情報は、ストレージノード２００で管理されている。
【００６６】
負荷計測部２３０は、ｒｅａｄ要求に応じて実行したデータ読み出し処理やｗｒｉｔｅ要求に応じて実行したデータ書き込み処理によってストレージ装置２１０に発生した負荷を計測し、計測負荷情報を生成する。負荷計測部２３０が計測する負荷には、上述したｉｏｐｓが含まれる。負荷計測部２３０は、生成した計測負荷情報をストレージ装置２１０の所定の記憶領域に格納する。格納された計測負荷情報は、管理ノード１００からの要求に応じてデータアクセス部２２０により管理ノード１００に送信される。負荷計測部２３０の機能は、例えばストレージノード２００のＯＳが標準的に備える機能により実現できる。
【００６７】
コントロールノード５００は、アクセス情報記憶部５１０および論理ボリューム管理部５２０を有する。
アクセス情報記憶部５１０は、アクセス情報を記憶する。アクセス情報記憶部５１０が記憶するアクセス情報は、各ノードで参照されるアクセス情報のマスタである。
【００６８】
論理ボリューム管理部５２０は、ストレージノード２００，３００，４００のスライス構成を管理する。論理ボリューム管理部５２０は、例えば管理ノード１００からの指示に基づいて新たに論理ボリュームを作成する。また、論理ボリューム管理部５２０は、例えば管理ノード１００からの指示に基づいてアクセス情報記憶部５１０に記憶されたアクセス情報を更新する。また、論理ボリューム管理部５２０は、管理ノード１００からの要求に応じて、アクセス情報記憶部５１０に記憶されたアクセス情報を管理ノード１００に送信する。
【００６９】
アクセスノード６００は、アクセス情報記憶部６１０およびデータアクセス制御部６２０を有する。なお、アクセスノード７００，８００に関しても同一の機能構成となる。
アクセス情報記憶部６１０は、論理ボリュームとストレージノード２００，３００，４００に設けられたスライスとの対応付けを定義したアクセス情報が格納される。
【００７０】
データアクセス制御部６２０は、アクセス情報記憶部６１０に記憶されたアクセス情報に基づいてアクセス先となるストレージノードを特定する。すなわち、利用するデータが属するセグメントを特定し、特定したセグメントのスライスを管理するストレージノードを特定する。その後、データアクセス制御部６２０は、特定したストレージノードにアクセスする。ここで、アクセスに失敗した場合、コントロールノード５００から論理ボリュームを取得した後にデータの配置状況が変化したことが考えられる。この場合、データアクセス制御部６２０は、コントロールノード５００から最新のアクセス情報を取得してアクセス情報記憶部６１０に記憶された内容を更新し、再びストレージノードへのアクセスを試みる。
【００７１】
図７は、アクセス制御テーブルのデータ構造例を示す図である。アクセス制御テーブル１２１はアクセス情報記憶部１２０に格納される。また、アクセス制御テーブル１２１と同じデータがアクセス情報記憶部５１０，６１０に格納される。このうち、アクセス情報記憶部５１０に記憶されたアクセス制御テーブルがマスタとなり、アクセス情報記憶部１２０，６１０に記憶されたアクセス制御テーブルが適宜更新される。
【００７２】
アクセス制御テーブル１２１には、論理ボリュームＩＤを示す項目、セグメントＩＤを示す項目、ノードＩＤを示す項目およびスライスＩＤを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのスライスに関する情報を示す。
【００７３】
論理ボリュームＩＤを示す項目には、論理ボリュームを識別する論理ボリュームＩＤが設定される。セグメントＩＤを示す項目には、セグメントを識別するセグメントＩＤが設定される。ノードＩＤを示す項目には、割当先のストレージノードを識別するノードＩＤが設定される。スライスＩＤを示す項目には、セグメントに対応するスライスを識別するスライスＩＤが設定される。
【００７４】
アクセス制御テーブル１２１には、例えば、論理ボリュームＩＤが“Ｌ０”、セグメントＩＤが“０”、ノードＩＤが“ＳＮ−Ａ”、スライスＩＤが“１”という情報が設定される。これは、論理ボリューム９１０のセグメント９１１がストレージノード２００のスライス２１１に配置されていることを示している。
【００７５】
図８は、ストレージノード管理テーブルのデータ構造例を示す図である。ストレージノード管理テーブル１２２は、アクセス情報記憶部１２０に格納される。また、ストレージノード管理テーブル１２２と同じデータがアクセス情報記憶部５１０，６１０に格納される。ストレージノード管理テーブル１２２には、ノードＩＤを示す項目およびＩＰ（Internet Protocol）アドレスを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのストレージノードに関する情報を示す。
【００７６】
ノードＩＤを示す項目には、ストレージノードを識別するノードＩＤが設定される。ＩＰアドレスを示す項目には、ストレージノードのＩＰアドレスが設定される。
ストレージノード管理テーブル１２２には、例えば、ノードＩＤが“ＳＮ−Ａ”、ＩＰアドレスが“１９２．１６８．０．１”という情報が設定される。これは、ストレージノード２００のＩＰアドレスが“１９２．１６８．０．１”であることを示している。
【００７７】
図９は、パケットの構造例を示す図である。パケット収集部１３０により収集されたパケットはパケット保存ファイル１４１としてパケット記憶部１４０に格納される。パケット保存ファイル１４１は、例えばバイナリ形式のファイルである。パケット保存ファイル１４１には、複数のパケットの情報が格納されている。パケット収集部１３０は、例えば所定の時間帯Ｔ１で収集したパケットによりパケット保存ファイル１４１を生成する。
【００７８】
各パケットは、ヘッダ部１４１ａおよびデータ部１４１ｂを有する。
ヘッダ部１４１ａには、タイムスタンプを示す領域、プロトコル番号を示す領域および送信先ＩＰアドレスを示す領域が含まれる。タイムスタンプを示す領域には、パケットが送信された時間を示す情報（例えば、年月日時分秒）が設定される。プロトコル番号を示す領域には、処理要求の種別（ｒｅａｄおよびｗｒｉｔｅ）を示す情報が格納される。送信先ＩＰアドレスを示す領域には、パケット送信先のＩＰアドレスが格納される。
【００７９】
データ部１４１ｂには、スライスＩＤを示す領域および処理対象データを示す領域が含まれる。スライスＩＤを示す領域には、処理要求の対象となるスライスＩＤが格納される。処理対象データを示す領域には、読み出し対象データを指定する情報や書き込み処理の対象となるデータが格納される。パケット解析部１５０は、処理対象データを示す領域を参照することで、各データのＩＯの単位サイズであるＩＯサイズを取得することができる。
【００８０】
図１０は、スライス単位集計テーブルのデータ構造例を示す図である。スライス単位集計テーブル１６１，１６２，１６３，・・・は、各スライスに対応付けられて解析負荷情報記憶部１６０に格納される。スライス単位集計テーブル１６１，１６２，１６３，・・・は、パケット解析部１５０によりパケット記憶部１４０に記憶されたパケット保存ファイル１４１の内容がパケット収集対象の時間帯について解析されて生成される。スライス単位集計テーブル１６１は、スライス２１１（すなわちセグメント９１１）に対応する。スライス単位集計テーブル１６２は、スライス２１２（すなわちセグメント９１４）に対応する。スライス単位集計テーブル１６３は、スライス２１３（すなわちセグメント９２１）に対応する。以降、同様にしてスライス４１６までのスライス単位集計テーブルが生成される。また、スライス単位集計テーブル１６１，１６２，１６３，・・・は、パケット収集の時間帯Ｔ１に対応するものであり、各数値は時間帯Ｔ１における１秒当たりの平均値であるとする。なお、以下では、スライス単位集計テーブル１６１に関してのみ説明するが、スライス単位集計テーブル１６２，１６３，・・・に関しても同様である。
【００８１】
スライス単位集計テーブル１６１には、ＩＯサイズ（バイト）示す項目、ｒｅａｄ数（測定時）を示す項目およびｗｒｉｔｅ数（測定時）を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのＩＯサイズのリクエストに関する情報を示す。
【００８２】
ＩＯサイズ（バイト）を示す項目には、処理対象のデータのＩＯサイズを示す情報がバイト（byte）単位で設定される。ｒｅａｄ数（測定時）を示す項目には、パケット収集の時間帯Ｔ１で該当のＩＯサイズについて取得された読み出し要求の１秒当たりの平均数を示す値が設定される。ｗｒｉｔｅ数（測定時）を示す項目には、パケット収集の時間帯Ｔ１で該当のＩＯサイズについて取得された書き込み要求の１秒当たりの平均数を示す値が設定される。
【００８３】
スライス単位集計テーブル１６１には、例えば、ＩＯサイズ（バイト）が“４”、ｒｅａｄ数（測定時）が“１４”、ｗｒｉｔｅ数（測定時）が“３”という情報が設定される。これは、該当の時間帯Ｔ１において、スライス２１１に対し、ＩＯサイズ“４”バイトの読み出し要求が平均“１４”回／秒、ＩＯサイズ“４”バイトの書き込み要求が平均“３”回／秒、送信されたことを示している。
【００８４】
なお、スライス単位集計テーブル１６１には、各ＩＯサイズに関して計数した値をｒｅａｄ数（測定時）およびｗｒｉｔｅ数（測定時）それぞれに関して合計した値も求められている。
【００８５】
図１１および図１２は、ストレージノード単位集計テーブルのデータ構造例を示す図である。ストレージノード単位集計テーブル１６１ａ，１６２ａ，１６３ａは、それぞれストレージノード２００，３００，４００およびパケット収集の時間帯Ｔ１に対応付けられて、解析負荷情報記憶部１６０に格納される。ストレージノード単位集計テーブル１６１ａ，１６２ａ，１６３ａは、解析負荷情報記憶部１６０に記憶されたスライス単位集計テーブル１６１，１６２，１６３，・・・に基づいて、パケット解析部１５０により生成される。なお、以下ではストレージノード単位集計テーブル１６１ａについてのみ説明するが、ストレージノード単位集計テーブル１６２ａ，１６３ａに関しても同様の構成である。
【００８６】
ストレージノード単位集計テーブル１６１ａには、ＩＯサイズ（バイト）を示す項目、ｒｅａｄ数（ピーク時）を示す項目、Ｌ０  ｒｅａｄ数（測定時）を示す項目、Ｌ０  Ｌｏａｄ（ｒｅａｄ）を示す項目、Ｌ１  ｒｅａｄ数（測定時）を示す項目、Ｌ１  Ｌｏａｄ（ｒｅａｄ）を示す項目、Ｌ２  ｒｅａｄ数（測定時）を示す項目、Ｌ２  Ｌｏａｄ（ｒｅａｄ）を示す項目、ｗｒｉｔｅ数（ピーク時）を示す項目、Ｌ０  ｗｒｉｔｅ数（測定時）を示す項目、Ｌ０  Ｌｏａｄ（ｗｒｉｔｅ）を示す項目、Ｌ１  ｗｒｉｔｅ数（測定時）を示す項目、Ｌ１  Ｌｏａｄ（ｗｒｉｔｅ）を示す項目、Ｌ２  ｗｒｉｔｅ数（測定時）を示す項目、Ｌ２  Ｌｏａｄ（ｗｒｉｔｅ）を示す項目、Ｌ０  Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）を示す項目、Ｌ１  Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）を示す項目およびＬ２  Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのＩＯサイズのリクエストに関する情報を示す。
【００８７】
ＩＯサイズ（バイト）を示す項目には、処理対象のデータのＩＯサイズを示す情報がバイト（byte）単位で設定される。
ｒｅａｄ数（ピーク時）を示す項目には、論理ボリューム９１０，９２０，９３０に対する該当ＩＯサイズについてのｒｅａｄ数のピーク値の１秒当たりの平均の合計が設定される。ｒｅａｄ数のピーク値は、例えばシステムの利便性を損なうほどの処理遅延がストレージノード２００で発生しない最大の値が予め設定される。このようなピーク値は、例えばシステムの運用開始前にストレージノード２００に最大負荷を与えて、パケット解析部１５０により予め測定される。
【００８８】
Ｌ０  ｒｅａｄ数（測定時）を示す項目には、時間帯Ｔ１で該当のＩＯサイズについての論理ボリューム９１０に対する読み出し要求の１秒当たりの平均数を示す値が設定される。Ｌ０  Ｌｏａｄ（ｒｅａｄ）を示す項目には、ピーク時に対する測定時の論理ボリューム９１０の該当ＩＯサイズの読み出し負荷を示す情報が設定される。
【００８９】
Ｌ１  ｒｅａｄ数（測定時）を示す項目には、時間帯Ｔ１で該当のＩＯサイズについての論理ボリューム９２０に対する読み出し要求の１秒当たりの平均数を示す値が設定される。Ｌ１  Ｌｏａｄ（ｒｅａｄ）を示す項目には、ピーク時に対する測定時の論理ボリューム９２０の該当ＩＯサイズの読み出し負荷を示す情報が設定される。
【００９０】
Ｌ２  ｒｅａｄ数（測定時）を示す項目には、時間帯Ｔ１で該当のＩＯサイズについての論理ボリューム９３０に対する読み出し要求の１秒当たりの平均数を示す値が設定される。Ｌ２  Ｌｏａｄ（ｒｅａｄ）を示す項目には、ピーク時に対する測定時の論理ボリューム９３０の該当ＩＯサイズの読み出し負荷を示す情報が設定される。
【００９１】
ｗｒｉｔｅ数（ピーク時）を示す項目には、論理ボリューム９１０，９２０，９３０に対する該当ＩＯサイズについてのｗｒｉｔｅ数のピーク値の１秒当たりの平均の合計が設定される。ｗｒｉｔｅ数のピーク値は、ｒｅａｄ数のピーク値と同様に、システムの運用開始前にパケット解析部１５０により予め測定される。
【００９２】
Ｌ０  ｗｒｉｔｅ数（測定時）を示す項目には、時間帯Ｔ１で該当のＩＯサイズについての論理ボリューム９１０に対する書き込み要求の１秒当たりの平均数を示す値が設定される。Ｌ０  Ｌｏａｄ（ｗｒｉｔｅ）を示す項目には、ピーク時に対する測定時の論理ボリューム９１０の該当ＩＯサイズの書き込み負荷を示す情報が設定される。
【００９３】
Ｌ１  ｗｒｉｔｅ数（測定時）を示す項目には、時間帯Ｔ１で該当のＩＯサイズについての論理ボリューム９２０に対する書き込み要求の１秒当たりの平均数を示す値が設定される。Ｌ１  Ｌｏａｄ（ｗｒｉｔｅ）を示す項目には、ピーク時に対する測定時の論理ボリューム９２０の該当ＩＯサイズの書き込み負荷を示す情報が設定される。
【００９４】
Ｌ２  ｗｒｉｔｅ数（測定時）を示す項目には、時間帯Ｔ１で該当のＩＯサイズについての論理ボリューム９３０に対する書き込み要求の１秒当たりの平均数を示す値が設定される。Ｌ２  Ｌｏａｄ（ｗｒｉｔｅ）を示す項目には、ピーク時に対する測定時の論理ボリューム９３０の該当ＩＯサイズの書き込み負荷を示す情報が設定される。
【００９５】
Ｌ０  Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）を示す項目には、論理ボリューム９１０に関する測定時の該当ＩＯサイズの読み出し負荷と書き込み負荷との合計を示す情報が設定される。Ｌ１  Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）を示す項目には、論理ボリューム９２０に関する測定時の該当ＩＯサイズの読み出し負荷と書き込み負荷との合計を示す情報が設定される。Ｌ２  Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）を示す項目には、論理ボリューム９３０に関する測定時の該当ＩＯサイズの読み出し負荷と書き込み負荷との合計を示す情報が設定される。
【００９６】
ここで、ストレージノード単位集計テーブル１６１ａでは、論理ボリューム９１０，９２０，９３０について求めた各Ｌｏａｄ値を合計した値も求められている。
ストレージノード単位集計テーブル１６１ａには、例えば、ＩＯサイズ（バイト）が“４”バイトという情報が設定される。
【００９７】
また、ｒｅａｄ数（ピーク時）が“４４１”回／秒、Ｌ０  ｒｅａｄ数（測定時）が“２２”回／秒、Ｌ０  Ｌｏａｄ（ｒｅａｄ）が（２２／４４１）×１００＝“５％”、Ｌ１  ｒｅａｄ数（測定時）が“４５”回／秒、Ｌ１  Ｌｏａｄ（ｒｅａｄ）が（４５／４４１）×１００＝“１０％”、Ｌ２  ｒｅａｄ数（測定時）が“１８”回／秒、Ｌ２  Ｌｏａｄ（ｒｅａｄ）が（１８／４４１）×１００＝“４％”という情報が設定される。
【００９８】
また、ｗｒｉｔｅ数（ピーク時）が“３２０”回／秒、Ｌ０  ｗｒｉｔｅ数（測定時）が“７”回／秒、Ｌ０  Ｌｏａｄ（ｗｒｉｔｅ）が（７／３２０）×１００＝“２％”、Ｌ１  ｗｒｉｔｅ数（測定時）が“２０”回／秒、Ｌ１  Ｌｏａｄ（ｗｒｉｔｅ）が（２０／３２０）×１００＝“６％”、Ｌ２  ｗｒｉｔｅ数（測定時）が“６”回／秒、Ｌ２  Ｌｏａｄ（ｗｒｉｔｅ）が（６／３２０）×１００＝“２％”という情報が設定される。
【００９９】
その結果、Ｌ０  Ｌｏａｄ（ｒｅａｄ）の“５％”とＬ０  Ｌｏａｄ（ｗｒｉｔｅ）の“２％”とを合計してＬ０  Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）に“７％”が設定される。
【０１００】
また、Ｌ１  Ｌｏａｄ（ｒｅａｄ）の“１０％”とＬ１  Ｌｏａｄ（ｗｒｉｔｅ）の“６％”とを合計して、Ｌ１  Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）に“１６％”が設定される。
【０１０１】
また、Ｌ２  Ｌｏａｄ（ｒｅａｄ）の“４％”とＬ２  Ｌｏａｄ（ｗｒｉｔｅ）の“２％”とを合計して、Ｌ２  Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）に“６％”という情報が設定される。
【０１０２】
このようにして、論理ボリューム９１０，９２０，９３０についてＩＯサイズごとのｒｅａｄ＋ｗｒｉｔｅの負荷を算出し、更にこれらを合計する。これにより、論理ボリューム９１０，９２０，９３０のついての負荷の内訳を評価できる。
【０１０３】
その結果、上記の例では、論理ボリューム９１０の負荷が“２０％”、論理ボリューム９２０の負荷が“４７％”、論理ボリューム９３０の負荷が“１１％”と評価される。
なお、ストレージノード単位集計テーブル１６１ａは、ストレージノード２００に関する情報を示している。このため、ストレージノード単位集計テーブル１６１ａが示す論理ボリューム９１０の負荷は、スライス２１１，２１２の負荷を示すことになる。同様に、ストレージノード単位集計テーブル１６１ａが示す論理ボリューム９２０の負荷は、スライス２１３，２１４の負荷を示す。ストレージノード単位集計テーブル１６１ａが示す論理ボリューム９３０の負荷は、スライス２１５，２１６の負荷を示す。
【０１０４】
また、上記の例では後述のｉｏｐｓと比較がし易いようにｒｅａｄ／ｗｒｉｔｅ数を単位時間当たりの平均値としたが、時間帯Ｔ１に発生した総数で論理ボリューム９１０，９２０，９３０に対して発生した負荷の内訳を求めてもよい。
【０１０５】
図１３は、計測負荷テーブルのデータ構造例を示す図である。計測負荷テーブル１８１，１８２，１８３は、それぞれストレージノード２００，３００，４００および情報収集時間帯Ｔ１に対応付けられて、計測負荷情報記憶部１８０に格納される。なお、以下では計測負荷テーブル１８１についてのみ説明するが、計測負荷テーブル１８２，１８３に関しても同様の構成である。
【０１０６】
計測負荷テーブル１８１には、ＩＯサイズ（バイト）を示す項目、ｒｅａｄ  ｉｏｐｓ（ピーク時）を示す項目、ｒｅａｄ  ｉｏｐｓ（測定時）を示す項目、Ｌｏａｄ（ｒｅａｄ）を示す項目、ｗｒｉｔｅ  ｉｏｐｓ（ピーク時）を示す項目、ｗｒｉｔｅ  ｉｏｐｓ（測定時）を示す項目、Ｌｏａｄ（ｗｒｉｔｅ）を示す項目、Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのＩＯサイズのリクエストに関する情報を示す。
【０１０７】
ＩＯサイズ（バイト）を示す項目には、処理対象のデータのＩＯサイズを示す情報がバイト（byte）単位で設定される。
ｒｅａｄ  ｉｏｐｓ（ピーク時）を示す項目には、ストレージ装置２１０における該当のＩＯサイズについてのｒｅａｄ  ｉｏｐｓのピーク値が設定される。ｒｅａｄ  ｉｏｐｓのピーク値は、例えばシステムの利便性を損なうほどの処理遅延がストレージノード２００で発生しない最大の値が予め設定される。このようなピーク値は、例えばシステムの運用開始前にストレージノード２００に最大負荷を与えて、負荷計測部２３０により予め測定され、この測定結果が計測負荷情報受信部１７０により予め取得される。
【０１０８】
ｒｅａｄ  ｉｏｐｓ（測定時）を示す項目には、時間帯Ｔ１で該当のＩＯサイズについてストレージ装置２１０で測定した読み出し要求に対するｉｏｐｓが設定される。Ｌｏａｄ（ｒｅａｄ）を示す項目には、ピーク時に対する測定時のストレージ装置２１０の読み出し負荷を示す情報が設定される。
【０１０９】
ｗｒｉｔｅ  ｉｏｐｓ（ピーク時）を示す項目には、ストレージ装置２１０における該当のＩＯサイズについてのｗｒｉｔｅ  ｉｏｐｓのピーク値が設定される。ｗｒｉｔｅ  ｉｏｐｓのピーク値は、ｒｅａｄ  ｉｏｐｓのピーク値と同様に、システムの運用開始前に負荷計測部２３０により予め測定され、この測定結果が計測負荷情報受信部１７０により予め取得される。
【０１１０】
ｗｒｉｔｅ  ｉｏｐｓ（測定時）を示す項目には、時間帯Ｔ１で該当のＩＯサイズについてストレージ装置２１０で測定した書き込み要求に対するｉｏｐｓが設定される。Ｌｏａｄ（ｗｒｉｔｅ）を示す項目には、ピーク時に対する測定時のストレージ装置２１０の書き込み負荷を示す情報が設定される。Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）を示す項目には、Ｌｏａｄ（ｒｅａｄ）の値とＬｏａｄ（ｗｒｉｔｅ）の値との合計が設定される。
【０１１１】
計測負荷テーブル１８１には、例えば、ＩＯサイズ（バイト）が“４”バイトという情報が設定される。
また、ｒｅａｄ  ｉｏｐｓ（ピーク時）が“４２５”、ｒｅａｄ  ｉｏｐｓ（測定時）が“８３”、Ｌｏａｄ（ｒｅａｄ）が（８３／４２５）×１００＝“２０％”という情報が設定される。
【０１１２】
また、ｗｒｉｔｅ  ｉｏｐｓ（ピーク時）が“３１５”、ｗｒｉｔｅ  ｉｏｐｓ（測定時）が“２５”、Ｌｏａｄ（ｗｒｉｔｅ）が（２５／３１５）×１００＝“８％”という情報が設定される。
【０１１３】
その結果、Ｌｏａｄ（ｒｅａｄ）の“２０％”とＬｏａｄ（ｗｒｉｔｅ）の“８％”とを合計して、Ｌｏａｄ（ｒｅａｄ＋ｗｒｉｔｅ）に“２８％”が設定される。
このようにして、ストレージノード２００についてＩＯサイズごとのｒｅａｄおよびｗｒｉｔｅのｉｏｐｓの測定結果から負荷を算出し、更にこれらを合計する。これにより、ストレージノード２００で実際に発生した負荷を取得できる。
【０１１４】
上記の例では、ストレージノード２００で発生した負荷がピーク時の負荷に対して“７２％”の負荷であると求めることができる。
なお、計測負荷テーブル１８１，１８２，１８３は、負荷計測部２３０により生成され、計測負荷情報受信部１７０で計測負荷情報として取得されたものが、計測負荷情報記憶部１８０に格納される。ただし、計測負荷情報受信部１７０がＩＯサイズごとのｒｅａｄ  ｉｏｐｓおよびｗｒｉｔｅ  ｉｏｐｓをストレージノード２００，３００，４００から取得して、計測負荷テーブル１８１，１８２，１８３を生成してもよい。
【０１１５】
次に、以上のような構成およびデータ構造の分散ストレージシステムにおいて実行される処理の詳細を説明する。まず、管理ノード１００による解析負荷情報の取得処理に関して説明する。
【０１１６】
図１４は、管理ノードの解析負荷情報取得処理の手順を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］分散ストレージシステムの全体の初期化が行われる。その過程で、ＣＰＵ１０１がＨＤＤ１０３に記憶された所定のプログラムをＲＡＭ１０２にロードし、管理ノード１００の各機能が実現される。
【０１１７】
［ステップＳ１２］パケット解析部１５０は、論理ボリューム９１０，９２０，９３０の各ＩＯサイズについてのｒｅａｄ数およびｗｒｉｔｅ数のピーク値を取得する。ここで、各ピーク値は、運用開始前に、例えば負荷を与えるベンチマークソフトウェアによりストレージノード２００，３００，４００に対する負荷（ｒｅａｄ／ｗｒｉｔｅおよびＩＯサイズごとの負荷）を与え、それに応じてパケット解析部１５０により予め測定される。パケット解析部１５０は、予め測定したピーク値を解析負荷情報記憶部１６０に格納している。このため、パケット解析部１５０は、解析負荷情報記憶部１６０を参照することで各ピーク値を取得できる。パケット解析部１５０は取得した各ピーク値を解析負荷情報記憶部１６０に記憶されたストレージノード単位集計テーブル１６１ａ，１６２ａ，１６３ａに設定する。
【０１１８】
［ステップＳ１３］パケット収集部１３０は、所定期間（ここでは、時間帯Ｔ１とする）の間、アクセスノード６００，７００，８００からストレージノード２００，３００，４００に対するパケットをスイッチ装置１０から収集する。パケット収集部１３０は、収集したパケットによりパケット保存ファイル１４１を生成してパケット記憶部１４０に格納する。
【０１１９】
［ステップＳ１４］パケット解析部１５０は、アクセス情報記憶部１２０に記憶されたアクセス制御テーブル１２１およびパケット記憶部１４０に記憶されたパケット保存ファイル１４１に基づいて、スライス単位集計テーブル１６１，１６２，１６３，・・・を生成する。なお、パケット解析部１５０は、各パケットのヘッダ部１４１ａを参照して、該当のパケットが送信された時間帯、ｒｅａｄ／ｗｒｉｔｅ種別、対象のストレージノードを特定することができる。また、パケット解析部１５０は、各パケットのデータ部１４１ｂを参照して、処理対象のスライスやＩＯサイズを特定することができる。パケット解析部１５０は、パケットを解析して生成したスライス単位集計テーブル１６１，１６２，１６３，・・・を解析負荷情報記憶部１６０に格納する。
【０１２０】
［ステップＳ１５］パケット解析部１５０は、解析負荷情報記憶部１６０に記憶されたスライス単位集計テーブル１６１，１６２，１６３，・・・に基づいてストレージノード単位集計テーブル１６１ａ，１６２ａ，１６３ａを生成する。
【０１２１】
［ステップＳ１６］パケット収集部１３０は、継続してパケット収集を行うか否かを判定する。継続してパケット収集を行う場合、処理がステップＳ１７に移される。継続してパケット収集を行わない場合、処理が完了する。なお、パケット収集部１３０は、解析負荷情報の取得処理を継続的に実行することを管理者によって指定されたか否かにより、この判定を行うことができる。例えば、管理者により、一回だけパケット収集を行って解析負荷情報を取得する旨の操作入力があった場合、継続してパケット収集を行わないと判定する。また、管理者により、定期的（例えば、数分〜数時間の間隔）にパケット収集を行って解析負荷情報を取得する旨の操作入力があった場合、継続してパケット収集を行うと判定する。
【０１２２】
［ステップＳ１７］パケット収集部１３０は、所定時間（定期収集に対応する時間）待機する。そして、処理がステップＳ１３に移される。
このようにして、パケット解析部１５０は、パケット収集部１３０が時間帯Ｔ１に収集したパケットを解析して、スライス単位集計テーブル１６１，１６２，１６３，・・・およびストレージノード単位集計テーブル１６１ａ，１６２ａ，１６３ａを解析負荷情報として生成する。
【０１２３】
解析負荷情報の取得は、管理者の所望の時間帯で一度または所定回数だけ行われてもよいし、システム稼動中に定期的に行われてもよい。定期的に行われる場合、解析負荷情報は、時間帯Ｔ１の次は、時間帯Ｔ２，Ｔ３，Ｔ４，・・・と各時間帯に対応付けて順次生成される。また、ステップＳ１２におけるピーク値の取得は、定期的に行われてもよい。
【０１２４】
次に、ストレージノード２００，３００，４００による計測負荷情報の取得処理について説明する。なお、以下ではストレージノード２００に関して説明するが、ストレージノード３００，４００に関しても同様の処理となる。
【０１２５】
図１５は、ストレージノードの計測負荷情報取得処理の手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］分散ストレージシステムの全体の初期化が行われる。その過程で、ＣＰＵ２０１がストレージ装置２１０または他の記憶装置に記憶されたＯＳや所定のプログラムをＲＡＭ２０２にロードし、ストレージノード２００の各機能が実現される。
【０１２６】
［ステップＳ２２］負荷計測部２３０は、ストレージ装置２１０の各ＩＯサイズについてのｒｅａｄ  ｉｏｐｓおよびｗｒｉｔｅ  ｉｏｐｓのピーク負荷を取得する。ここで、各ピーク値は、運用開始前に、例えば負荷を与えるベンチマークソフトウェアによりストレージノード２００，３００，４００に対する負荷（ｒｅａｄ／ｗｒｉｔｅおよびＩＯサイズごとの負荷）を与え、それに応じて負荷計測部２３０により予め測定される。そして、負荷計測部２３０は、測定したピーク負荷をストレージ装置２１０に格納する。このため、負荷計測部２３０は、ストレージ装置２１０を参照することでピーク負荷を取得できる。
【０１２７】
［ステップＳ２３］負荷計測部２３０は、時間帯Ｔ１の間、ストレージ装置２１０におけるｒｅａｄ  ｉｏｐｓおよびｗｒｉｔｅ  ｉｏｐｓを測定する。そして、負荷計測部２３０は、計測負荷テーブル１８１を生成する。なお、計測負荷テーブル１８１は、負荷を測定した時間帯ごとに生成されて、例えばストレージ装置２１０の所定の記憶領域に格納される。なお、負荷計測部２３０による負荷の計測は、パケット収集部１３０がパケットを収集する時間帯Ｔ１と同じ時間帯で行われる。
【０１２８】
［ステップＳ２４］負荷計測部２３０は、継続して負荷を測定するか否かを判定する。継続して負荷を測定する場合、処理がステップＳ２５に移される。継続して負荷を測定しない場合、処理が完了する。なお、負荷計測部２３０は、負荷の計測を定期的に取得することを管理者によって指定されたか否かにより、この判定を行うことができる。例えば、管理者により、一回だけ測定を行った計測負荷情報を取得する旨の操作入力が管理ノード１００で行われた場合、管理ノード１００からその旨の通知を受けて、一回だけ計測負荷情報を取得する。また、管理者により、定期的に（例えば、数分〜数時間の間隔）に計測負荷情報を取得する旨の操作入力が管理ノード１００で行われた場合、管理ノード１００からその旨の通知を受けて、継続してパケット収集を行うと判定する。
【０１２９】
［ステップＳ２５］負荷計測部２３０は、所定時間（定期測定に対応する時間）待機する。そして、処理がステップＳ２３に移される。
このようにして、負荷計測部２３０は、ストレージ装置２１０に発生した負荷を測定して、計測負荷テーブル１８１を計測負荷情報として生成し、ストレージ装置２１０の所定の記憶領域に格納する。同様に、ストレージノード３００では、計測負荷テーブル１８２が生成される。また、ストレージノード４００では、計測負荷テーブル１８３が生成される。
【０１３０】
計測負荷情報の取得は、解析負荷情報の取得の時間帯に合わせて、管理者の所望の時間帯で一度または所定回数だけ行われてもよいし、システム稼動中に定期的に行われてもよい。定期的に行われる場合、計測負荷情報は、時間帯Ｔ１の次は、時間帯Ｔ２，Ｔ３，Ｔ４，・・・と各時間帯に対応付けて順次生成される。また、ステップＳ２２におけるピーク値の取得は、定期的に行われてもよい。
【０１３１】
図１６は、管理ノードの論理ボリューム負荷算出処理の手順を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
［ステップＳ３１］計測負荷情報受信部１７０は、管理者の所定の操作入力によって指定される計算対象とするストレージノードを示す情報と対象の時間帯とを取得する。ここでは、計算対象とするストレージノードとしてストレージノード２００が指定され、対象の時間帯として時間帯Ｔ１が指定されたものとする。
【０１３２】
［ステップＳ３２］計測負荷情報受信部１７０は、指定されたストレージノード２００から指定された時間帯Ｔ１の計測負荷テーブル１８１を取得し、計測負荷情報記憶部１８０に格納する。なお、計測負荷情報受信部１７０は、定期的にストレージノード２００，３００，４００から計測負荷テーブルを受信して、計測負荷情報記憶部１８０に格納するようにしてもよい。
【０１３３】
［ステップＳ３３］論理ボリューム負荷算出部１９０は、計測負荷情報記憶部１８０に記憶された計測負荷テーブル１８１から計測負荷の合計値Ｘ＝“７２％”を取得する。
［ステップＳ３４］論理ボリューム負荷算出部１９０は、解析負荷情報記憶部１６０を参照して、ストレージノード２００の時間帯Ｔ１における解析負荷情報であるストレージノード単位集計テーブル１６１ａを取得する。
【０１３４】
［ステップＳ３５］論理ボリューム負荷算出部１９０は、ストレージノード単位集計テーブル１６１ａから論理ボリューム９１０の解析負荷値として、Ｚ0＝“２０％”を取得する。また、論理ボリューム９１０の解析負荷値として、Ｚ1＝“４７％”を取得する。また、論理ボリューム９３０の解析負荷値として、Ｚ2＝“１１％”を取得する。
【０１３５】
［ステップＳ３６］論理ボリューム負荷算出部１９０は、取得した解析負荷値Ｚn（ｎ＝０，１，２）の合計Ｙ（＝Ｚ0＋Ｚ1＋Ｚ2）を算出する。具体的には、Ｙ＝“２０％”＋“４７％”＋“１１％”＝“７８％”となる。
【０１３６】
［ステップＳ３７］論理ボリューム負荷算出部１９０は、上記ステップＳ３３で得た計測負荷値Ｘと上記ステップＳ３６で得た解析負荷値の合計Ｙとに基づいて、解析負荷値Ｚnを補正して、論理ボリュームごとの負荷値Ｐn（ｎ＝０，１，２）を算出する。具体的には、Ｐn＝Ｚn×（Ｘ／Ｙ）の計算を行う。これにより、上記の例では、論理ボリューム９１０，９２０，９３０の負荷値として、それぞれＰ0＝“１８．５％”、Ｐ1＝“４３．４％”、Ｐ2＝“１０．２％”と求めることができる。
【０１３７】
［ステップＳ３８］論理ボリューム負荷算出部１９０は、継続して論理ボリュームごとの負荷値を算出するか否かを判定する。継続して負荷値を算出する場合、処理がステップＳ３９に移される。継続して負荷値を算出しない場合、処理が完了する。論理ボリューム負荷算出部１９０は、例えば継続的に負荷値を算出するか否かの設定を予め受け付けているか否かによって、この判定を行うことができる。例えば、管理者の所定の操作入力により、一回だけ負荷値を算出するよう指示された場合は、継続して負荷値を算出しないと判定する。また、例えば、管理者の所定の操作入力により、予め継続して負荷値を算出するよう指示されている場合は、継続して負荷値を算出すると判定する。
【０１３８】
［ステップＳ３９］計測負荷情報受信部１７０は、管理者の所定の操作入力を受け付け、計算対象とするストレージノードを示す情報と対象の時間帯とを更新する。そして、処理がステップＳ３２に移される。
【０１３９】
このようにして、論理ボリューム負荷算出部１９０は、解析負荷情報記憶部１６０に記憶された解析負荷情報と、計測負荷情報記憶部１８０に記憶された計測負荷情報とに基づいて論理ボリュームごとの負荷値を算出する。論理ボリューム負荷算出部１９０は、算出結果を負荷表示部１９５に出力する。
【０１４０】
なお、負荷値Ｐnの算出は、システムの稼動中に継続的に実行させることもできる。この場合、計測負荷情報受信部１７０は、上記ステップＳ３９において、ストレージノード２００，３００，４００について計算対象の時間帯を自動的に次の時間帯に更新するようにする。
【０１４１】
図１７は、論理ボリューム算出処理を示す模式図である。図１７では、ストレージノード２００の時間帯Ｔ１のピーク時に対する負荷を例示している。なお、図１７に示す負荷は、ストレージノード２００のｒｅａｄ／ｗｒｉｔｅを合計したｉｏｐｓに相当するものである。
【０１４２】
グラフ６１は、パケット解析部１５０がパケット記憶部１４０に記憶されたパケット保存ファイル１４１のパケットの内容を解析して得られた論理ボリューム９１０，９２０，９３０についての負荷の内訳である。これは、ストレージノード単位集計テーブル１６１ａに示したデータから求めた結果に対応する。グラフ６１では、論理ボリューム９１０，９２０，９３０について、それぞれの解析負荷値が“２０％”、“４７％”、“１１％”となっている。
【０１４３】
グラフ６２は、負荷計測部２３０が計測したストレージ装置２１０の実測の負荷である。これは、計測負荷テーブル１８１に示したデータから求めた結果に対応する。グラフ６２では、ストレージ装置２１０における負荷値が“７２％”となっている。
【０１４４】
ここで、スイッチ装置１０から収集したパケットを用いて負荷を見積もっても、実際にストレージノード２００，３００，４００で発生している負荷と誤差が生じる可能性がある。例えば、アクセスノード６００，７００，８００からストレージノード２００，３００，４００にパケットが送信されたとしても、このパケットがネットワーク内を滞留してストレージノード側に到達するまでに時間が掛かる、あるいは、到達する前に破棄されてしまうことも考えられる。この場合、該当のパケットの処理は、ストレージノード２００，３００，４００では実行されないので、この分だけ解析負荷値は、実際に発生した負荷よりも大きな値を見積もってしまうことになる。
【０１４５】
これに対し、論理ボリューム負荷算出部１９０は、パケット解析部１５０が求めた解析負荷値を負荷計測部２３０によって実測された負荷値を用いて補正する。具体的には、測定負荷値をストレージ装置２１０で実際に発生した負荷として採用し、その内訳を解析負荷値として求めた論理ボリューム９１０，９２０，９３０の各負荷の比を用いて求める。
【０１４６】
具体的には、グラフ６１，６２の各負荷値からグラフ６３を求める。グラフ６３では、論理ボリューム９１０，９２０，９３０について、それぞれの補正後の負荷値（以下、補正負荷値という）が“１９％”、“４３％”、“１０％”となる。
【０１４７】
このようにして、論理ボリューム負荷算出部１９０は、論理ボリューム９１０，９２０，９３０の負荷を精度良く求めることができる。
論理ボリューム負荷算出部１９０は、このようにして求めた負荷値を負荷表示部１９５に出力する。負荷表示部１９５は、論理ボリューム負荷算出部１９０から取得した情報を基にストレージノード２００，３００，４００の負荷を示す画像を生成してモニタ１１に表示する。管理者は、モニタ１１に表示された画像の内容を閲覧して、論理ボリューム９１０，９２０，９３０の負荷を監視できる。
【０１４８】
図１８は、負荷表示画面の第１の例を示す図である。負荷表示ウィンドウ７０は、負荷表示部１９５によって生成されてモニタ１１に表示される。負荷表示ウィンドウ７０には、グラフ７１，７２，７３および表示切換ボタン７４，７５，７６，７７が設けられている。
【０１４９】
グラフ７１，７２，７３は、それぞれストレージノード２００，３００，４００の論理ボリュームごとの最新の補正負荷値を示している。
表示切換ボタン７４，７５，７６，７７は、後述する他の負荷表示ウィンドウに表示内容を切り換えるためのボタンである。負荷表示部１９５は、管理者のマウス１３などを用いた操作入力により、表示切換ボタン７４，７５，７６，７７の何れかが操作されたことを検知する。負荷表示部１９５は、表示切換ボタン７４，７５，７６が操作されると、それぞれストレージノード２００，３００，４００の時間経過に伴う負荷値の変化を示す内容に負荷表示ウィンドウを切り換える。また、負荷表示部１９５は、表示切換ボタン７７が操作されると、論理ボリューム９１０，９２０，９３０それぞれの負荷指標を示す内容に負荷表示ウィンドウを切り換える。なお、表示切換ボタン７７の“ＬＶＯＬ”の表示は、論理ボリューム（Logical Volume）を意味する。
【０１５０】
負荷表示ウィンドウ７０により、管理者は、ストレージノード２００，３００，４００で発生している負荷を各論理ボリュームの内訳と共に監視できる。
図１９は、負荷表示画面の第２の例を示す図である。負荷表示ウィンドウ８０は、表示切換ボタン７４が操作されると、負荷表示部１９５により生成されてモニタ１１に表示される。負荷表示ウィンドウ８０は、ストレージノード２００に関する情報を表示するものである。表示切換ボタン７５，７６が操作された場合にも、ストレージノード３００，４００に関して、負荷表示ウィンドウ８０と同様の内容のウィンドウが表示される。負荷表示ウィンドウ８０には、グラフ８１，８２，８３，８４および戻るボタン８５が設けられている。
【０１５１】
グラフ８１，８２，８３，８４の横軸は時間（時刻）、縦軸は負荷（％単位）である。グラフ８１，８２，８３は、論理ボリューム９１０，９２０，９３０の補正負荷値の時間遷移を示している。グラフ８４は、グラフ８１，８２，８３で示される負荷値の各時間における合計である。
【０１５２】
戻るボタン８５は、表示内容を負荷表示ウィンドウ７０の内容に切り換えるためのボタンである。
負荷表示ウィンドウ８０により、管理者は、ストレージノード２００，３００，４００で発生した負荷の時間遷移を監視し、論理ボリュームごとに負荷の大きな時間帯や小さな時間帯などを的確に監視できる。
【０１５３】
図２０は、負荷表示画面の第３の例を示す図である。負荷表示ウィンドウ９０は、表示切換ボタン７７が操作されると、負荷表示部１９５により生成されてモニタ１１に表示される。負荷表示ウィンドウ９０には、グラフ９１，９２，９３および戻るボタン９４が設けられている。
【０１５４】
グラフ９１，９２，９３の横軸は論理ボリュームＩＤに対応し、縦軸は負荷（％単位）である。グラフ９１，９２，９３は、論理ボリューム９１０，９２０，９３０それぞれの最新の負荷指標を示す。
【０１５５】
この負荷指標は、例えば、負荷表示部１９５によって次のように決定される。
（１）負荷表示部１９５は、負荷表示ウィンドウ７０に表示した内容を参照する。
（２）負荷表示部１９５は、ストレージノード２００，３００，４００において論理ボリューム９１０，９２０，９３０の計測負荷値（補正後負荷値の合計に相当する）を抽出する。負荷表示ウィンドウ７０の例では、ストレージノード２００，３００，４００の計測負荷値が、それぞれ“７２％”、“４５％”、“８５％”である。
【０１５６】
（３）負荷表示部１９５は、該当の論理ボリュームに対する負荷が発生しているストレージノードのうち、計測負荷値が最も大きいものを該当の論理ボリュームの負荷指標とする。例えば、ストレージノード２００，３００，４００の負荷が負荷表示ウィンドウ７０のように求められた場合、論理ボリューム９１０の負荷指標が、ストレージノード４００の計測負荷値である“８５％”と決定される（グラフ９１が該当する）。また、論理ボリューム９２０の負荷指標がストレージノード４００の計測負荷値である“８５％”と決定される（グラフ９２が該当する）。また、論理ボリューム９３０の負荷指標が、ストレージノード２００の計測負荷値である“７２％”と決定される（グラフ９３が該当する）。
【０１５７】
このように、負荷表示部１９５は、論理ボリューム９１０，９２０，９３０の負荷指標をボトルネックとなっているストレージノードの負荷により決定する。
戻るボタン９４は、表示内容を負荷表示ウィンドウ７０の内容に切り換えるためのボタンである。
【０１５８】
ここで、論理ボリュームごとの負荷を監視しようとする場合、従来では、ストレージノードごとに多数の負荷指標を測定し、その中から必要な情報を管理者が取捨しなければならず、管理者の負担となっていた。
【０１５９】
一方、負荷表示部１９５は、論理ボリュームごとの負荷指標を単一の指標に集約して負荷表示ウィンドウ９０を生成し、モニタ１１に表示する。すなわち、負荷表示ウィンドウ９０により、管理者は、論理ボリューム９１０，９２０，９３０で発生している負荷を容易に判断することができる。
【０１６０】
以上で説明したように、管理ノード１００は、アクセスノード６００，７００，８００からストレージノード２００，３００，４００に対する処理要求のパケットをスイッチ装置１０から収集する。そして、処理要求先の論理ボリューム９１０，９２０，９３０単位で収集したパケットを集計し、各論理ボリュームで発生する負荷の内訳を算出する。更に、管理ノード１００は、ストレージノード２００，３００，４００で測定された負荷を取得し、取得した負荷と算出した内訳とに基づき論理ボリューム９１０，９２０，９３０それぞれの負荷を評価する。
【０１６１】
これにより、論理ボリュームごとの負荷を容易に取得することができる。すなわち、ストレージノード２００，３００，４００において、論理ボリュームごとに負荷を収集する機能が不要となる。また、このための機能を付加する必要もなく、そのためのコストも不要となる。
【０１６２】
特に、管理ノード１００は、論理ボリューム９１０，９２０，９３０に対するデータのｒｅａｄ／ｗｒｉｔｅの要求を区別して取得し、これらを合計したものを負荷の評価対象とする。このような情報に対応する負荷は、ストレージノード２００，３００，４００のＯＳなどが提供する機能により容易に取得することが可能である。例えば、ストレージノード２００，３００，４００において、ｒｅａｄ／ｗｒｉｔｅの要求に応じて発生したｉｏｐｓを対応付けることができる。
【０１６３】
このように、スイッチ装置１０から収集したパケットとストレージノード２００，３００，４００から取得可能な負荷の情報とを用いて管理ノード１００で演算するのみなので、ストレージノード２００，３００，４００などに生じるシステム変更も最小限で済む。
【０１６４】
また、管理ノード１００は、パケットに設けられた所定のヘッダ部やデータ部の情報を分析することでパケットの送信先や処理対象の論理ボリュームの物理的なアドレス（スライス）を特定できるので、導入も容易である。
【０１６５】
なお、ストレージノード２００，３００，４００から取得する負荷情報は、ｉｏｐｓに限らず、処理要求（ｒｅａｄ／ｗｒｉｔｅ等）のパケットの数と比例関係などの対応付けが可能な負荷情報であればよい。
【０１６６】
なお、上記の管理ノード１００の機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１６７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６９】
以上、本件の管理プログラム、管理装置および管理方法を図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０１７０】
説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
（付記１）  アクセスノードとストレージノードとがネットワークを介して接続され、前記ストレージノード内の複数の論理ボリュームの何れかに対応付けられた複数の記憶領域に前記アクセスノードが扱うデータを格納するストレージシステムを、前記ストレージノードに前記ネットワークを介して接続されたコンピュータに管理させる管理プログラムであって、
前記コンピュータを、
前記複数の記憶領域それぞれに対する複数の処理要求を取得し、前記ストレージノード内の前記複数の記憶領域と前記複数の論理ボリュームとの対応関係を記憶する論理ボリューム割当情報記憶手段を参照し、前記各処理要求の処理対象となる記憶領域に対応する論理ボリュームを判定する論理ボリューム判定手段、
前記論理ボリューム判定手段による判定結果に基づいて、前記各論理ボリュームにつき前記各処理要求の取得数を計数し、前記各取得数の合計に対する前記各取得数の割合を算出する処理要求内訳計算手段、
として機能させることを特徴とする管理プログラム。
【０１７１】
（付記２）  前記処理要求内訳計算手段は、前記各割合を前記各論理ボリュームに対応付けて管理情報記憶手段に格納しており、
前記コンピュータを、更に、
前記複数の処理要求に応じて前記ストレージノードで発生した負荷を示す負荷情報を取得し、取得した前記負荷情報を前記管理情報記憶手段に格納する負荷情報取得手段、
前記管理情報記憶手段に記憶された前記各割合と前記負荷情報とに基づいて、前記各論理ボリュームの負荷を示す論理ボリューム負荷値を算出する論理ボリューム負荷算出手段、
として機能させることを特徴とする付記１記載の管理プログラム。
【０１７２】
（付記３）  前記論理ボリューム判定手段は、前記各論理ボリュームに対するデータの読み出し要求とデータの書き込み要求とに区別して前記論理ボリュームの判定を行い、
前記処理要求内訳計算手段は、取得した前記読み出し要求の数と前記書き込み要求の数とを合計して前記各取得数を計数する、
ことを特徴とする付記２記載の管理プログラム。
【０１７３】
（付記４）  前記負荷情報取得手段は、前記ストレージノードで取得され、当該ストレージノードに対するデータの読み出し要求とデータの書き込み要求とに応じて発生した単位時間当たりのデータの入出力数に基づく負荷を示す値を含む前記負荷情報を取得することを特徴とする付記３記載の管理プログラム。
【０１７４】
（付記５）  前記論理ボリューム負荷算出手段は、前記負荷情報に含まれる前記単位時間当たりのデータの入出力数に基づく負荷を示す値を前記各割合の比で割ることで前記各論理ボリュームの前記論理ボリューム負荷値を算出することを特徴とする付記４記載の管理プログラム。
【０１７５】
（付記６）  前記論理ボリューム判定手段は、前記処理要求のヘッダ部に含まれる当該処理要求の送信先の所定のアドレス情報に基づいて当該処理要求の送信先の前記ストレージノードを特定し、当該処理要求のデータ部に含まれる前記記憶領域の所定の物理アドレス情報に基づいて、当該処理要求による処理対象の前記論理ボリュームを特定することを特徴とする付記１乃至５の何れか１つに記載の管理プログラム。
【０１７６】
（付記７）  前記処理要求内訳計算手段は、更に前記複数の処理要求を取得した第１の時間帯を示す情報と前記各割合とを対応付けて前記管理情報記憶手段に格納し、
前記負荷情報取得手段は、前記負荷情報を当該負荷情報が取得された第２の時間帯を示す情報に対応付けて前記管理情報記憶手段に格納し、
前記論理ボリューム負荷算出手段は、前記管理情報記憶手段に記憶された前記第１の時間帯と前記第２の時間帯とが一致する前記各割合と前記負荷情報とを抽出して、前記各論理ボリュームの前記論理ボリューム負荷値を算出する、
ことを特徴とする付記２乃至６の何れか１つに記載の管理プログラム。
【０１７７】
（付記８）  前記ストレージシステムには、複数のストレージノードが接続され、
前記論理ボリューム判定手段は、前記複数の処理要求に基づいて、前記各ストレージノードの前記各論理ボリュームの判定を行い、
前記処理要求内訳計算手段は、前記各論理ボリュームにつき前記各割合を算出し、算出した前記各割合を前記各ストレージノードの前記各論理ボリュームに対応付けて前記管理情報記憶手段に格納し、
前記負荷情報取得手段は、前記各ストレージノードから前記負荷情報を取得し、取得した前記負荷情報を前記管理情報記憶手段に格納し、
前記論理ボリューム負荷算出手段は、前記管理情報記憶手段に記憶された前記各割合と前記各負荷情報とに基づいて、前記各ストレージノードの各論理ボリュームの前記論理ボリューム負荷値を算出する、
ことを特徴とする付記２乃至７の何れか１つに記載の管理プログラム。
【０１７８】
（付記９）  前記論理ボリュームは、前記複数のストレージノードに跨って設けられており、
前記コンピュータを、更に、
前記各ストレージノードの前記各論理ボリュームの負荷値の合計を求め、負荷算出対象の論理ボリュームの負荷が内訳として含まれる前記各合計のうちの最大値を当該論理ボリュームの負荷指標と決定し、決定した前記各論理ボリュームの負荷指標を表示装置に表示させる負荷表示手段、
として機能させることを特徴とする付記８記載の管理プログラム。
【０１７９】
（付記１０）  アクセスノードとストレージノードとがネットワークを介して接続され、前記ストレージノード内の複数の論理ボリュームの何れかに対応付けられた複数の記憶領域に前記アクセスノードが扱うデータを格納するストレージシステムと前記ネットワークを介して接続され、前記ストレージシステムを管理する管理装置であって、
前記複数の記憶領域それぞれに対する複数の処理要求を取得し、前記ストレージノード内の前記複数の記憶領域と前記複数の論理ボリュームとの対応関係を記憶する論理ボリューム割当情報記憶部を参照し、前記各処理要求の処理対象となる記憶領域に対応する論理ボリュームを判定する論理ボリューム判定部と、
前記論理ボリューム判定部による判定結果に基づいて、前記各論理ボリュームにつき前記各処理要求の取得数を計数し、前記各取得数の合計に対する前記各取得数の割合を算出する処理要求内訳計算部と、
を有することを特徴とする管理装置。
【０１８０】
（付記１１）  アクセスノードとストレージノードとがネットワークを介して接続され、前記ストレージノード内の複数の論理ボリュームの何れかに対応付けられた複数の記憶領域に前記アクセスノードが扱うデータを格納するストレージシステムと前記ネットワークを介して接続され、前記ストレージシステムを管理するコンピュータの管理方法であって、
論理ボリューム判定手段が、前記複数の記憶領域それぞれに対する複数の処理要求を取得し、前記ストレージノード内の前記複数の記憶領域と前記複数の論理ボリュームとの対応関係を記憶する論理ボリューム割当情報記憶手段を参照し、前記各処理要求の処理対象となる記憶領域に対応する論理ボリュームを判定し、
処理要求内訳計算手段が、前記論理ボリューム判定手段による判定結果に基づいて、前記各論理ボリュームにつき前記各処理要求の取得数を計数し、前記各取得数の合計に対する前記各取得数の割合を算出する、
ことを特徴とする管理方法。
【符号の説明】
【０１８１】
１  管理ノード
１ａ  論理ボリューム割当情報記憶手段
１ｂ  論理ボリューム判定手段
１ｃ  処理要求内訳計算手段
２  ストレージノード
２ａ，２ｂ，２ｃ  記憶領域
３  アクセスノード
４  処理要求
【図１】
2010211549.tif 000003
【図２】
2010211549.tif 000004
【図３】
2010211549.tif 000005
【図４】
2010211549.tif 000006
【図５】
2010211549.tif 000007
【図６】
2010211549.tif 000008
【図７】
2010211549.tif 000009
【図８】
2010211549.tif 000010
【図９】
2010211549.tif 000011
【図１０】
2010211549.tif 000012
【図１１】
2010211549.tif 000013
【図１２】
2010211549.tif 000014
【図１３】
2010211549.tif 000015
【図１４】
2010211549.tif 000016
【図１５】
2010211549.tif 000017
【図１６】
2010211549.tif 000018
【図１７】
2010211549.tif 000019
【図１８】
2010211549.tif 000020
【図１９】
2010211549.tif 000021
【図２０】
2010211549.tif 000022