(57)【要約】【課題】記憶領域の割り当てる際のヒントに基づいて，監視の構成を行う方法がなかった。また，閾値違反が発生した場合に，その閾値がどのような使用目的に由来するものなのかを判断することが難しかった。【解決手段】計算機システムを管理する管理計算機には，ヒントに基づいて，記憶領域を作成する手段１１０と，記憶領域の使用目的に基づいて，記憶領域を管理するための閾値を定める手段１２０と，記憶装置から性能値を取得する手段１３０と，取得した性能値と閾値とを比較し，閾値違反を検出した場合には，ヒントに基づくメッセージを含んだ警告を通知する手段１４０を設けた。【選択図】      図１
2005182274.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を含む計算機システムを管理する計算機システム管理プログラムであって，
記憶領域の特徴を示すパラメータに基づいて，前記記憶装置に記憶領域を作成するステップと，
前記パラメータに基づいて，記憶領域の性能を示す性能情報に関する閾値を決定するステップと，
前記記憶装置の記憶領域の性能を示す性能情報を取得するステップと，
取得した前記性能情報と前記閾値とを比較し，閾値違反を検出するステップと，
を計算機に実行させるための計算機システム管理プログラム。
【請求項２】
請求項１記載の計算機システム管理プログラムであって，
閾値違反を検出した場合に警告を通知するステップを計算機に実行させるための計算機システム管理プログラム。
【請求項３】
請求項２記載の計算機システム管理プログラムであって，
前記警告に前記パラメータに基づくメッセージを付加するステップを計算機に実行させるための計算機システム管理プログラム。
【請求項４】
請求項３記載の計算機システム管理プログラムであって，
前記メッセージは，前記記憶装置に設けられた該記憶装置の性能を改善する手段の使用の提案を含む計算機システム管理プログラム。
【請求項５】
請求項１記載の計算機システム管理プログラムであって，
前記閾値を決定するステップは，前記パラメータと前記閾値の関係を示す情報に基づいて，閾値を決定するステップを含む計算機システム管理プログラム。
【請求項６】
請求項１記載の計算機システム管理プログラムであって，
前記記憶領域の特徴を示すパラメータは，リード／ライト比，平均Ｉ／Ｏサイズ，Ｉ／Ｏ待ち時間の重要度，およびデータ転送バンド幅の重要度のうち１以上を含む計算機システム管理プログラム。
【請求項７】
請求項１記載の計算機システム管理プログラムであって，
前記閾値は，平均待ち時間の閾値，平均データ転送量の閾値，および待ち時間当たりの平均データ転送量の閾値のうち１以上を含む計算機システム管理プログラム。
【請求項８】
請求項１記載の計算機システム管理プログラムであって，
前記記憶領域の性能を示す性能情報は，リードアクセスの平均のＩ／Ｏサイズ，リードアクセスの単位時間当たりの平均データ転送量，リードアクセスの平均処理待ち時間，単位時間当たりの平均リードアクセス回数，ライトアクセスの平均のＩ／Ｏサイズ，ライトアクセスの単位時間当たりの平均データ転送量，ライトアクセスの平均処理待ち時間，および単位時間当たりの平均ライトアクセス回数のうち１以上を含む計算機システム管理プログラム。
【請求項９】
記憶装置を含む計算機システムを管理する計算機システム管理プログラムを記録した記憶媒体であって，
記憶領域の特徴を示すパラメータに基づいて，前記記憶装置に記憶領域を作成するステップと，
前記パラメータに基づいて，記憶領域の性能を示す性能情報に関する閾値を決定するステップと，
前記記憶装置の記憶領域の性能を示す性能情報を取得するステップと，
取得した前記性能情報と前記閾値とを比較し，閾値違反を検出するステップと，
を計算機に実行させるための計算機システム管理プログラムを記録した計算機読み取り可能な記録媒体。
【請求項１０】
記憶装置を含む計算機システムを管理する計算機システム管理システムであって，
記憶領域の特徴を示すパラメータに基づいて，前記記憶装置に記憶領域を作成する手段と，
前記パラメータに基づいて，記憶領域の性能を示す性能情報に関する閾値を決定する手段と，
前記記憶装置の記憶領域の性能を示す性能情報を取得する手段と，
取得した前記性能情報と前記閾値とを比較し，閾値違反を検出する手段と，
を備える計算機システム管理システム。
【請求項１１】
請求項１０記載の計算機システム管理システムであって，
閾値違反を検出した場合に，警告を通知する手段を備える計算機システム管理システム。
【請求項１２】
請求項１１記載の計算機システム管理システムであって，
前記警告に前記パラメータに基づくメッセージを付加する手段を備える計算機システム管理システム。
【請求項１３】
請求項１２記載の計算機システム管理システムであって，
前記記憶装置は，該記憶装置の性能を改善する手段を備え，
前記メッセージは，前記記憶装置の性能を改善する手段の使用の提案を含むものである計算機システム管理システム。
【請求項１４】
請求項１０記載の計算機システム管理システムであって，
前記閾値を決定する手段は，前記パラメータと前記閾値の関係を示す情報に基づいて，閾値を決定する手段を含む計算機システム管理システム。
【請求項１５】
記憶装置を含む計算機システムを管理する計算機システム管理システムであって，
前記計算機システムは，前記記憶装置にネットワークまたはインタフェースを介して接続された管理装置を含み，
前記管理装置は，
記憶領域の特徴を示すパラメータに基づいて，前記記憶装置に記憶領域を作成するストレージ割り当て部と，
前記パラメータに基づいて，記憶領域の性能を示す性能情報に関する閾値を決定する監視構成部と，
前記記憶装置から記憶領域の性能を示す性能情報を取得する性能情報取得部と，
取得した前記性能情報と前記閾値とを比較し，閾値違反を検出し，閾値違反を検出した場合に，警告を通知する警告通知部と，
を備える計算機システム管理システム。
【請求項１６】
請求項１５記載の計算機管理システムであって，
前記計算機システムは前記記憶装置に対してリード／ライト要求を行う計算機を含む計算機システム管理システム。
【請求項１７】
記憶装置を含む計算機システムを管理する計算機システム管理システムであって，
前記記憶装置に，
記憶領域の特徴を示すパラメータに基づいて，前記記憶装置に記憶領域を作成するストレージ割り当て部と，
前記パラメータに基づいて，記憶領域の性能を示す性能情報に関する閾値を決定する監視構成部と，
前記記憶装置の記憶領域の性能を示す性能情報を取得する性能値通知部と，
取得した前記性能情報と前記閾値とを比較し，閾値違反を検出し，閾値違反を検出した場合に，警告を通知する警告通知部と，
を備える計算機システム管理システム。
【請求項１８】
請求項１７記載の計算機管理システムであって，
前記計算機システムは前記記憶装置に対してリード／ライト要求を行う計算機を含む計算機システム管理システム。
【請求項１９】
記憶装置を含む計算機システムを管理する計算機システム管理システムのための管理装置であって，
記憶領域の特徴を示すパラメータに基づいて，前記記憶装置に記憶領域を作成するストレージ割り当て部と，
前記パラメータに基づいて，記憶領域の性能を示す性能情報に関する閾値を決定する監視構成部と，
前記記憶装置から記憶領域の性能を示す性能情報を取得す性能情報取得部と，
取得した前記性能情報と前記閾値とを比較し，閾値違反を検出し，閾値違反を検出した場合に，警告を通知する警告通知部と，
を備える計算機システム管理装置。
【請求項２０】
記憶装置を含む計算機システムを管理する計算機システム管理システムのための記憶装置であって，
記憶領域の特徴を示すパラメータに基づいて，前記記憶装置に記憶領域を作成するストレージ割り当て部と，
前記パラメータに基づいて，記憶領域の性能を示す性能情報に関する閾値を決定する監視構成部と，
前記記憶装置の記憶領域の性能を示す性能情報を取得する性能値通知部と，
取得した前記性能情報と前記閾値とを比較し，閾値違反を検出し，閾値違反を検出した場合に，警告を通知する警告通知部と，
を備える記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，計算機と記憶装置を含む計算機システムを管理する計算機システム管理プログラム，記録媒体，ならびに計算機システム管理システムおよびそのための管理装置および記憶装置に関し，特に，計算機に，記憶装置の記憶領域を割り当てる操作において用いるヒントを利用して，計算機システムの監視手段を設定し，監視手段において警告を通知する際には，警告の付加的なメッセージを，ヒントに基づいて構成し，警告と共に通知する技術に関する。
【背景技術】
【０００２】
計算機システムを監視する監視システムに，閾値を利用するものがある。これは，計算機システムを構成する個々の装置から，該装置の状態を示す数値（主に性能値）を取得し，その数値と，予め定めておいた閾値とを比較し，前記数値が閾値を超えた（上回る，もしくは下回る）場合に，警告を発するというものである。
【０００３】
このような監視システムを利用する上での課題の一つに，適切な閾値を選出することが困難であるということがある。この問題に対し，特許文献１は，最適な閾値を簡単に設定する方法を開示している。この方法を簡単に述べると以下の通りである。まず，ユーザ（計算機システムの管理者）は，監視システムに対して，管理対象機器の状態を示す数値の閾値違反目標回数を指示する。次に，監視システムでは，管理対象機器の前記状態を示す数値の閾値違反の回数が，指示された閾値違反目標回数と等しくなるように，閾値を自動的に調節する。
【０００４】
ところで，昨今，ディスクアレイ装置のような大規模記憶装置の管理，特に大規模記憶装置により提供される記憶領域の管理が，計算機システムの監視と並んで，重要な管理項目の一つとなっている。計算機システムの主要な構成要素として，ストレージエリアネットワークが昨今広く利用されるようになった。このストレージエリアネットワークは，ファイバチャネル（ＦＣ）を利用して，計算機と記憶装置をネットワーク型の形態で接続するもので，計算機や記憶装置などの装置間の接続を柔軟にする。これにより，例えば，データのバックアップを，ＬＡＮ（Local Area Network）を介さずに実施する等の，新たなアプリケーションが可能となる。
【０００５】
また，計算機と記憶装置を接続するネットワークとしてＩＰ（Internet Protocol）ネットワークを利用するいくつかの技術も注目され，普及しつつある。このような状況下，ストレージネットワークに関る企業により，企業団体ＳＮＩＡ（Storage Networking Industry Association）が結成された。
【０００６】
ＳＮＩＡは，ストレージネットワークおよび周辺技術の標準仕様の策定などの活動を通じ，ストレージネットワークの普及を推進している。活動の一環として，ＳＮＩＡは，記憶装置を含む計算機システムにおいて，計算機に対して記憶領域を割り当てる操作の，標準的な仕様を提案している。この仕様は，計算機システムを管理する管理ソフトウェアに適用される。また，この仕様は，ＤＭＴＦ（Distributed Management Task Force）により定義されたＣＩＭ（Common Information Model）に基づいている。
【０００７】
この標準的な記憶領域割り当て操作においては，記憶領域の特徴を示すパラメータが定義されている。管理者は，記憶領域の割り当てに際して，記憶領域の使用目的からこのパラメータを作成し，管理ソフトウェアに投入することで，所望の記憶領域を作成できる。このパラメータは「ヒント」と呼ばれている。
【０００８】
この仕様を定義付けている文書（Device27_StorageServices.mof）より，ヒントに関る部分を，以下に抜粋する。
==========================================================
// StorageSettingWithHints
//
==========================================================
[Experimental, Version("2.7.1"), Description (
"This subclass of StorageSetting allows a client to specify "
"'hint's for optimization of the volume performance. The effect "
"of these hints is implementation dependent.") ]
class CIM_StorageSettingWithHints: CIM_StorageSetting {
[MinValue (0), MaxValue (10), Description (
"This hint is an indication from a client of the importance "
"placed on data availability. Values are 0=Don't Care to "
"10=Very Important.") ]
uint16 DataAvailabilityHint;
[MinValue (0), MaxValue (10), Description (
"This hint is an indication from a client of the randomness "
"of accesses. Values are 0=Entirely Sequential to "
"10=Entirely Random.") ]
uint16 AccessRandomnessHint;
[MinValue (0), MaxValue (10), Description (
"This hint is an indication from a client of the direction "
"of accesses. Values are 0=Entirely Read to "
"10=Entirely Write.") ]
uint16 AccessDirectionHint;
[Description (
"This hint is an indication from a client of the optimal "
"access sizes.  Several sizes can be specified."),
Units ("MegaBytes") ]
uint16 AccessSizeHint[];
[MinValue (0), MaxValue (10), Description (
"This hint is an indication from a client how important "
"access latency is. Values are 0=Don't Care to "
"10=Very Important.") ]
uint16 AccessLatencyHint;
[MinValue (0), MaxValue (10), Description (
"This hint is an indication from a client of bandwidth "
"prioritization. Values are 0=Don't Care to "
"10=Very Important.") ]
uint16 AccessBandwidthWeight;
[MinValue (0), MaxValue (10), Description (
"This hint is an indication of the importance the client "
"places on the cost of storage. Values are 0=Don't Care to "
"10=Very Important. A StorageVolume provider might choose "
"to place data on low cost or high cost drives based on "
"this parameter.") ]
uint16 StorageCostHint;
[MinValue (0), MaxValue (10), Description (
"This hint is an indication of the importance placed on "
"storage efficiency by the client. Values are 0=Don't Care "
"to 10=Very Important. A StorageVolume provider might choose "
"different RAID levels based on this hint.") ]
uint16 StorageEfficiencyHint;
};
ＣＩＭを実装する管理ソフトウェアは，前記記憶領域割り当て操作の実装において，ヒントを取り扱うことが出来るようにすることが求められる。
【０００９】
【特許文献１】特開２００２−２１５２３０号公報
【００１０】
【非特許文献１】Device27_StorageServices.mof（６６２〜７２１行目），[online]，２００２年１１月１２日，Destributed Management Task Force，［２００３年１月１８日検索］，インターネット＜URL:http://www.dmtf.org/standards/cim_schema_v27.php＞
【発明の開示】
【発明が解決しようとする課題】
【００１１】
記憶装置を含む計算機システムの管理においては，記憶領域を割り当てた際のヒントに基づいた，監視の構成を行う必要がある。特許文献１をこれに適用しようとしても，ヒントから閾値違反目標回数を設定すること自体が困難である。このことはもとより，従来，記憶領域のヒントに基づいて，監視の構成を行う方法がなかった。
【００１２】
また，従来の監視システムでは，閾値違反が発生した場合に，その閾値がどのようなヒントに由来するものなのかを判断することができなかった，システム管理者が，閾値違反に対して講ずべき対策を検討することが困難であった。
【００１３】
以上に述べた従来技術の課題を鑑み，本発明は，以下の目的を達するためになされたものである。まず，本発明は，記憶装置を含む計算機システムの管理技術において，記憶領域の割り当てにおけるヒントを用いて，計算機システムの監視構成を設定する技術を提供する。
【００１４】
次に，本発明は，計算機システムの監視において，ユーザに対する警告を通知する際に，警告が生じた原因などを含む，警告の説明をも同時に通知する技術を提供する。
【課題を解決するための手段】
【００１５】
本発明の目的を達成するために，計算機システムを管理する管理計算機には，記憶領域の特徴を示すパラメータに基づいて，記憶領域を作成する手段と，前記パラメータに基づいて，記憶領域を管理するための閾値を定める手段と，記憶装置から性能値を取得する手段と，取得した性能値と閾値とを比較し，閾値違反を検出する手段を設けた。
【００１６】
また，計算機システムを管理する管理計算機には，閾値違反を検出した場合には，警告を通知する手段を設けた。
【００１７】
また，計算機システムを管理する管理計算機には，前記警告に前記パラメータに基づくメッセージを付加する手段を設けた。
【００１８】
また，前記メッセージは，前記記憶装置の前記性能を改善する手段の使用を提案するものとし，計算機システムを管理する管理計算機には，警告を通知する手段において，記憶装置の性能を改善する手段の使用の提案をメッセージに含ませる手段を設けた。
【発明の効果】
【００１９】
本発明により，記憶領域を割り当てる際の記憶領域の使用目的から導出されたパラメータ，すなわちヒントに基づいて，その使用目的に適合した計算機システムの監視の構成を行うことが出来る。
【００２０】
また，計算機システムの監視システムから，閾値違反が発生した場合に通知される警告が，どのようなヒントに由来するものなのかを速やかに把握することが出来る。したがって，システム管理者は，閾値違反に対して講ずべき対策を速やかに検討できる。
【発明を実施するための最良の形態】
【００２１】
以下，図面を参照して本発明の実施の形態を詳細に説明する。
【００２２】
［実施の形態の概要］
まず，図１を用いて，本発明の実施の形態の概要を説明する。図１は，管理者による記憶領域の割り当て操作，管理システムによる監視の設定，管理システムよる監視および警告の通知の，３種の各処理を説明するための図である。
【００２３】
図１を構成する各要素を説明する。管理者３０００は，計算機システム３１００を管理する人物である。管理システム３２００は，計算機システム３１００を管理する管理手段を備えた，計算機システム３１００の一部の機器である。管理システム３２００は，前記管理手段として，少なくともストレージ割り当て部１１０，監視構成部１２０，性能情報取得部１３０，警告通知部１４０を備える。計算機システムは３１００はまた，少なくとも記憶装置３３００を備える。記憶領域３３１０は，ストレージ割り当て部１１０により，記憶装置３３００の内部に作成された記憶領域である。
【００２４】
以降，前記の３種の各処理について説明する。記憶領域の割り当て操作の処理において，管理者は，ストレージ割り当て部１１０に対して記憶領域の割り当てを指示する（矢印３６０１）。このとき，記憶領域の特徴を示すパラメータ（ヒント３４００）を，ストレージ割り当て部１１０に通知する。すると，ストレージ割り当て部１１０は，ヒントを元に好適な記憶領域３３１０を記憶装置３３００の中に作成する（矢印３６０２）。このときのヒント３４００は，管理システム３２００の内部に格納される（ヒント３４０１）。後述するが，ヒント３４０１は，監視構成部１２０，警告通知部１４０によって参照される。
【００２５】
管理システムによる監視の設定の処理において，監視構成部１２０は，ヒント３４０１に基づき，記憶領域３３１０の性能情報に対する閾値を設定する。このとき，ヒント３４０１と閾値の関連も記録しておく。
【００２６】
管理システムによる監視および警告の通知の処理において，まず，性能情報取得部１３０が，記憶装置３３００より性能情報を取得する（矢印３６０３）。次に，警告通知部１４０は，ここで取得した性能情報と前記の閾値を比較する。もし，ここで，性能情報が閾値を超えている（上回る，または下回る）場合には，管理者３０００に対して警告を発する（矢印３６０４）。このとき，警告通知部１４０は，閾値がどのようにヒントと関るものであるのかを分析し，管理者３０００に対して，閾値違反を告げるだけではなく，よりヒントに即したメッセージを通知する。
【００２７】
なお，図１では，ストレージ割り当て部１１０，監視構成部１２０，性能情報取得部１３０，および警告通知部１４０が，記憶装置３３００の外部に描かれているが，これらの一部または全てが記憶装置３３００内部に設けられていてもよい。
【００２８】
［第１の実施の形態］
以下，本発明の第１の実施の形態を説明する。図２は，本発明の第１の実施の形態の計算機システムの構成を表している。図２の通り，本発明の第１の実施の形態は，管理計算機１００，記憶装置２００，ＬＡＮ３００，計算機４００（ａ）および４００（ｂ），ＦＣスイッチ５００からなる。
【００２９】
管理計算機１００は，ＣＰＵ１０１，メモリ１０２，ネットワークインタフェース１０３，ディスプレイ装置，ハードディスク，キーボード，マウス等を具備し，各種オペレーティングシステムを含むソフトウェアを動作させることの出来る一般的な計算機である。本実施形態では，管理計算機１００をパーソナルコンピュータとする。ワークステーション用途やサーバ用途として流通している計算機，もしくは汎用計算機等であってもよい。なお，図２ではＣＰＵ１０１，メモリ１０２，ネットワークインタフェース１０３以外を省略した。
【００３０】
管理計算機１００は，ストレージ割り当て部１１０，監視構成部１２０，性能情報取得部１３０，警告通知部１４０を有する。１１０乃至１４０の各部は，管理計算機１００により実行可能なプログラムである。すなわち，１１０乃至１４０の各部は管理計算機１００の具備するメモリ１０２若しくはハードディスクに格納され，管理計算機１００の具備するＣＰＵ１０１により解釈実行される。これにより，管理計算機１００は，記憶装置２００を含む計算機システムを管理する計算機システム管理装置として機能する。
【００３１】
また管理計算機１００は，割り当て管理情報１５０，性能情報１６０，閾値情報１７０を有する。１５０乃至１７０の各情報は，管理計算機１００の具備するメモリ１０２もしくはハードディスクに格納され，管理計算機１００上で実行されるプログラムにより情報の読み取り，追加，修正，削除がなされる。
【００３２】
記憶装置２００は，ＣＰＵ２０１，メモリ２０２，ネットワークインタフェース２０３，コントローラ２１０，記憶領域管理部２２０，記憶領域管理情報２３０，記憶領域割り当て部２４０，性能値通知部２５０，論理ボリューム２６０乃至２６４，ＦＣインタフェース２７０を有する。論理ボリューム２６０乃至２６４のそれぞれは，計算機からは，リード／ライト可能な記憶領域（ＳＣＳＩにおけるロジカルユニットに相当）としてアクセスできる。計算機による論理ボリュームへのリード／ライトアクセスは，ＦＣインタフェース２７０を介したデータ通信により実現される。このデータ通信においては，ＳＣＳＩ（Small Computer System Interface）プロトコルを用いる。
【００３３】
なお，計算機４００（ａ）および４００（ｂ）は，それぞれが具備するＦＣインタフェース４１０（ａ）および４１０（ｂ）を用いて，記憶装置２００とデータ通信を行うことが出来る。これにより，計算機４００（ａ）および４００（ｂ）は，記憶装置２００に対して論理ボリューム２６０乃至２６４へのリード／ライト要求を行う。記憶装置２００ではＦＣインタフェース２７０で以って，計算機４００（ａ）および４００（ｂ）からのリード／ライト要求を受け取る。計算機４００（ａ），４００（ｂ）と記憶装置２００の各ＦＣインタフェースは，ＦＣスイッチ５００を介して接続されている。
【００３４】
コントローラ２１０は，計算機４００（ａ）および４００（ｂ）からの，論理ボリューム２６０乃至２６４に対するリード／ライト要求を処理し，要求に応じて計算機４００（ａ）および４００（ｂ）へのデータ転送，あるいは論理ボリュームへのデータの格納を行う。コントローラ２１０はまた，記憶領域管理部２２０，記憶領域割り当て部２４０，性能値通知部２５０の各部を駆動する。本実施形態では，コントローラ２１０はＣＰＵ２０１，メモリ２０２を具備し，プログラムを解釈実行する能力を有する。２２０，２４０，２５０の各部はメモリ２０２に格納され，コントローラ２１０により実行されるプログラムであるとする。なお，２２０，２４０，２５０の各部と同等の機能を，それぞれ専用のハードウェアでもって実装した記憶装置を用いても，本発明を実施することが出来る。
【００３５】
記憶装置２００は，複数のハードディスクを組み合わせることで，信頼性ならびに性能を向上させた，いわゆるＲＡＩＤ機能を備える。論理ボリューム２６０乃至２６４は，ＲＡＩＤ機能によって，記憶装置２００が具備するハードディスクの記憶領域を分割し，それらを連結して構成されている。図２では記憶装置２００が具備するハードディスクを省略している。
【００３６】
記憶領域管理部２２０は，このような論理ボリュームの管理を行う部位である。記憶領域管理情報２３０は，論理ボリュームの割り当て状況を管理するための情報である。記憶領域管理情報２３０は，コントローラ２１０が備えるメモリ領域に格納されている。記憶領域管理情報２３０は，記憶領域管理部２２０，記憶領域割り当て部２４０，コントローラ２１０，性能通知部２５０によって使用される。記憶領域管理情報２３０の詳細については後述する。
【００３７】
記憶領域割り当て部２４０は，新たな論理ボリュームを記憶装置２００内部に構成する機能を提供している。外部の計算機は，記憶装置２００に対して，ＬＡＮ３００を介して記憶装置２００とデータ通信を行うことで，新たな論理ボリュームの作成を指示することが出来る。コントローラ２１０は，このような指示を受け付け，記憶領域割り当て部２４０を駆動して，指示された論理ボリュームを作成する。
【００３８】
性能値通知部２５０は，記憶装置２００の論理ボリューム，ＦＣインタフェース等の性能値を，ＬＡＮ３００を介して外部の計算機に通知する部位である。本実施形態では，記憶装置２００は少なくとも，１．論理ボリュームへのライト要求の平均Ｉ／Ｏサイズ（キロバイト単位），２．論理ボリュームへのライト要求の秒間平均データ転送量（キロバイト単位），３．論理ボリュームへのライト要求の平均処理待ち時間（秒単位），４．論理ボリュームへのライト要求の秒間平均要求数，５．論理ボリュームへのリード要求の平均Ｉ／Ｏサイズ（キロバイト単位），６．論理ボリュームへのリード要求の秒間平均データ転送量（キロバイト単位），７．論理ボリュームへのリード要求の平均処理待ち時間（秒単位），８．論理ボリュームへのリード要求の秒間平均要求数の性能値を出力する。
【００３９】
ここで，前記３および６の平均処理待ち時間とは，リード／ライト処理をコントローラが受け取ってから，要求された全てのデータの転送が終了するまでの時間の平均値を言う。この時間には，ハードディスクへの，またはハードディスクからのデータ転送における待ち時間を含んでいる。
【００４０】
計算機４００（ａ）および４００（ｂ）のそれぞれは，ＣＰＵ４０１（ａ）ないし４０１（ｂ），メモリ４０２（ａ）ないし４０２（ｂ），ネットワークインタフェース４０３（ａ）ないし４０３（ｂ），ディスプレイ装置，ハードディスク装置，キーボード，マウス等を具備し，オペレーティングシステムを含むソフトウェアを動作させることの出来る一般的な計算機に類する。図２では，ＣＰＵ，メモリ，ネットワークインタフェース以外を省略した。
【００４１】
本実施形態では，計算機４００（ａ）および４００（ｂ）を，データベースサーバやウェブサーバ等の，企業活動に関わるソフトウェアを動作させる目的で使用する。計算機４００（ａ）および４００（ｂ）が，記憶装置２００の論理ボリュームを利用する主な目的は，これらのソフトウェアで処理を必要とするデータを格納することである。
【００４２】
本実施形態においては，計算機４００（ａ）および４００（ｂ）によるリード／ライト要求は，ＦＣインタフェース４１０（ａ）および４１０（ｂ）のみを介して通信される。もちろん，ＬＡＮ３００をリード／ライト要求に利用する，本発明の実施形態も考えられる。逆に，ＦＣインタフェースを記憶装置２００の管理用データ通信（論理ボリュームの作成，性能値の出力）に利用する，本発明の実施形態も考えられる。なお，本実施形態では，業務目的の計算機を４００（ａ）と４００（ｂ）の２台としているが，本発明により計算機の台数が制限されるものではない。
【００４３】
次に，記憶装置２００の論理ボリュームとハードディスク，並びに冗長グループについて説明する。ここで，冗長グループとは，記憶装置２００のようなＲＡＩＤ機能を備えるストレージサブシステムにおいて，複数のハードディスクを一組としたものであって，データ保護のための冗長データを含むものと定義する。ストレージサブシステムによっては，冗長グループをＲＡＩＤグループや，パリティグループなどと呼んでいる。
【００４４】
冗長グループにおけるハードディスクの組み合わせ方として，ＲＡＩＤレベルという概念が知られている。記憶装置２００の冗長グループは，ＲＡＩＤレベル１もしくはＲＡＩＤレベル５のいずれかであるとする。また，記憶装置２００の冗長グループは，ハードディスク４台で構成されているものとする。
【００４５】
冗長グループに関する用語を定義しておく。
−ハードディスク番号：冗長グループに属するハードディスクに割り当てた０から３までの番号。
−ハードディスクＩＤ：ハードディスク番号とは異なり，記憶装置２００全体で，ハードディスクに一意に０から割り当てられた番号。
−ロジカルブロックアドレス（ＬＢＡ）：ハードディスクの記憶領域の５１２バイトを一つのロジカルブロックとし，これに０番から割り当てた番号。
−ストライピングユニット：冗長グループに属するハードディスクを，一定の数の連続したロジカルブロックを単位として分割したもの。ストライピングユニットには，ＬＢＡの順番にストライピングユニット番号を割り当てる。
−ストライプ：冗長グループに属する各ハードディスクの，ストライピングユニット番号が等しいストライピングユニットを，ハードディスク番号の若い順に連結し，連続した一つの領域と見なしたもの。
−冗長グループ番号：冗長グループに割り当てられた，記憶装置の内部で一意な識別番号。
【００４６】
ＲＡＩＤレベル５として構成されている冗長グループの場合，ストライプに属するストライピングユニットのうちの一つに，他の３つのストライプから計算されたパリティデータが記録される。本実施形態では，パリティデータの配置方法として，left-symmetric parity distributionと呼ばれる方法を採用する。
【００４７】
ＲＡＩＤレベル１として構成されている冗長グループの場合，ハードディスク番号０と２のストライピングユニット（偶数番ストライピングユニット）には同一の情報が記録され，またハードディスク番号１と３のストライピングユニット（奇数番ストライピングユニット）には同一の情報が記録される。また，偶数番ストライピングユニットと，奇数番ストライピングユニットは，交互に連続した記憶領域として扱われる。論理ボリューム２６０乃至２６４は，いくつかの連続したストライプから構成される。このような論理ボリュームの構成は，記憶装置２００内部の記憶領域管理情報２３０に記録されている。
【００４８】
記憶領域管理情報２３０を図３を使って説明する。記憶領域管理情報２３０には，冗長グループ管理情報２３１と，論理ボリューム管理情報２３２の２種類の情報が含まれる。冗長グループ管理情報２３１のデータ形式には，リレーショナルデータベースに代表されるようなテーブル形式を用いる。その各行は，記憶装置２００  に設けられた冗長グループに一対一に対応し，冗長グループの構成情報を格納するフィールドを持つ。なお，本明細書において，テーブル内のフィールドには，図上で左側から順に第１フィールド，第２フィールド…等と称する。
【００４９】
冗長グループ管理情報２３１の第１フィールドには，行に対応した論理ボリュームが構成されている冗長グループ番号を格納する。また第２フィールドには，第１フィールドに格納された冗長グループ番号により指示される冗長グループのＲＡＩＤレベルを格納する。また第３フィールドには，第１フィールドに格納された冗長グループ番号により指示される冗長グループを構成しているハードディスクで，その先頭のハードディスクのハードディスクＩＤを格納する。
【００５０】
本実施形態において，記憶装置２００の冗長グループは，ハードディスクＩＤが連続した４台のハードディスクからから構成する。よって，冗長グループ管理情報２３１は，冗長グループを構成するハードディスクの数を格納するフィールドを含まない。
【００５１】
論理ボリューム管理情報２３２のデータ形式には，冗長グループ管理情報２３１と同様にテーブル形式を用いる。その各行は，記憶装置２００に設けられた論理ボリュームに一対一に対応し，論理ボリュームの構成情報を格納するフィールドを持つ。
【００５２】
論理ボリューム管理情報２３２の第１フィールドには，論理ボリューム番号を格納する。第２フィールドには第１フィールドにより指示される論理ボリュームが含まれている冗長グループの冗長グループ番号を格納する。第３フィールドには，第１フィールドにより指示される論理ボリュームが，第２フィールドで示される冗長グループのどのストライプから開始されているかを示すストライピングユニット番号を示す。第４フィールドには，第１フィールドにより示される論理ボリュームを構成しているストライプのうち，最後のストライプを示すストライピングユニット番号を示す。
【００５３】
論理ボリューム情報２３２に格納されている構成情報と，実際の論理ボリュームの構成の対応を，図４を用いて説明する。図４は，冗長グループ番号０の冗長グループにおける論理ボリュームの構成を表している。
【００５４】
図４において，指示番号６００乃至６０３は，４個描かれている棚状の矩形をそれぞれ指している。棚状の矩形のそれぞれは，冗長グループ番号０の冗長グループに含まれるハードディスクを表現している。棚状の矩形に含まれる小さな矩形（棚の部分）は，ハードディスクのストライピングユニットを表している。矩形の内部の数字はストライピングユニット番号を表している。内部に「・・・」と書かれた矩形は，複数のストライピングユニットが連続していることを表す。
【００５５】
図３の論理ボリューム情報２３２によると，論理ボリューム番号２６０の論理ボリュームは，ストライピングユニット０番から９９番までのストライプで構成されている。すなわち，論理ボリューム番号２６０の論理ボリュームは，図４では，ハードディスク６００乃至６０３のストライピングユニットで，番号が０番から９９番までの物を使って構成されている。
【００５６】
同様に，論理ボリューム番号２６１の論理ボリュームは１００から１９９まで，論理ボリューム番号２６２の論理ボリュームは２００から２９９までのストライプにより構成されている。管理計算機１００は，ＬＡＮ３００を介して，記憶装置２００より冗長グループ管理情報２３１および論理ボリューム管理情報２３１を取得することができる。
【００５７】
記憶領域割り当て部２４０は，冗長グループ内に新たな論理ボリュームを作成する手段を提供する。これらの手段は，ＬＡＮ３００を介して，管理計算機１００から制御できるようになっている。記憶領域割り当て部２４０を利用して論理ボリュームを作成する場合は，冗長グループ番号および論理ボリュームのサイズをパラメータとして指定する。
【００５８】
記憶領域割り当て部２４０の動作を，本発明における本質ではないが，ここで簡単に説明しておく。記憶領域割り当て部２４０は，冗長グループ番号と論理ボリュームのサイズを受け取ると，まず冗長グループ管理テーブル２３１を調べる。これから，冗長グループに割り当てられているハードディスクを特定する。
【００５９】
次に，記憶領域割り当て部２４０は，論理ボリューム管理テーブル２３２を調べる。これから，指定の冗長グループが既存の論理ボリュームにより使用されているストライプを調べる。これらすでに使用されているストライプと重複が無いように，新しい論理ボリュームにストライプを割り当てる。割り当てるストライプの量は，指定されたサイズから計算される。以上のようにして，論理ボリュームに割り当てるストライプを決定すると，記憶領域割り当て部２４０は，論理ボリューム管理情報２３２に，新たに作成した論理ボリュームの構成情報を，新しい行として追加する。
【００６０】
以降，管理計算機における処理について説明する。管理計算機１００のストレージ割り当て部１１０は，記憶領域の特徴を示すパラメータであるヒントに基づいて，記憶装置の内部に論理ボリュームを作成する手段を提供する。ユーザが計算機へのボリュームの割り当てを行う場合には，ストレージ割り当て部１１０に対しては，少なくとも所望の論理ボリュームのサイズと，ヒントをパラメータとして与える。すると，ストレージ割り当て部１１０は，ヒントに基づいて記憶装置の内部に論理ボリュームを作成する。
【００６１】
ヒントには，次のものを指定できる。
−リード／ライト比：０から１０までの値をとる。論理ボリュームに対するリード／ライト要求で，リード要求とライト要求のどちらが多いかを示す。０が指定された場合，リード要求のみと考えられる。１０が指定された場合，ライト要求のみと考えられる。以降で，DataDirectionHintと呼ぶことがある。
−平均Ｉ／Ｏサイズ：リード／ライト要求における，平均のデータ転送量。キロバイト単位。以降でAccessSizeHintと呼ぶことがある。
−Ｉ／Ｏ待ち時間の重要度：０から１０までの値をとる。この値が大きいほど，Ｉ／Ｏ待ち時間が重視される。AccessLatencyHintと呼ぶことがある。
−データ転送バンド幅の重要度：０から１０間での値を取る。この値が大きいほど，データ転送バンド幅が重視される。以降でAccessBandwidthWeightと呼ぶことがある。
【００６２】
ここで，ストレージ割り当て部１１０へのパラメータとして，論理ボリュームを割り当てる計算機を指定できるようにしても良い。この場合，ストレージ割り当て部１１０は，記憶装置に論理ボリュームを作成した上，指定された計算機から該論理ボリュームへのリード／ライトアクセスを出来るように，前記記憶装置および前記計算機を設定する。
【００６３】
管理計算機１００は，ユーザに対して，ストレージ割り当て部１１０が記憶領域の割り当てを実行するための情報を入力するユーザインタフェース（図示していない）を提供する。このユーザインタフェースは，グラフィカルユーザインタフェースや，コマンドラインインタフェースにより提供する。本実施形態では，論理ボリュームのサイズと割り当てヒントを指定してストレージ割り当て部１１０を実行するための，管理計算機１００が備えるディスプレイ，キーボード，マウスを用いて操作可能なユーザインタフェースを提供する。また，ストレージ割り当て部１１０を，管理計算機１００以外の計算機から遠隔実行可能なユーザインタフェースを設けてもよい。
【００６４】
前記ユーザインタフェースにより，論理ボリュームの割り当て時にユーザによって指定されたヒントは，割り当て管理情報１５０に記録される。割り当て管理情報の例を図５に示す。図５に示すとおり，割り当て管理情報のデータ形式は，テーブル形式である。この各行は論理ボリュームに対応している。この説明では，行に対応している論理ボリュームを対象論理ボリュームと呼ぶことにする。
【００６５】
行の第１フィールドには，対象論理ボリュームの記憶装置を一意に識別するため識別子を格納する。この識別子をストレージＩＤと呼ぶ。ここでは，ストレージＩＤとして，記憶装置を制御するためのＩＰアドレスを用いた。図５の全ての行で，その第１フィールドには１．０．０．０とあるが，本明細書において，これは，記憶装置２００のＬＡＮ３００への接続におけるＩＰアドレスを表すものとする。この第１フィールドのストレージＩＤは，複数の記憶装置を含む計算機システムへの対応において必要となるため，設けてある。
【００６６】
第２フィールドには，対象論理ボリュームの，第１フィールドにより示される記憶装置での識別番号を格納する。第１フィールドと第２フィールドにより，情報システム全体における論理ボリュームが一意に特定される。第３フィールドは，冗長グループ番号を格納する。第４フィールドから第７フィールドまでの各フィールドには，対象論理ボリュームを割り当てた際に指示されたヒントを格納する。第４フィールド（Ｒ／Ｗ）にはリード／ライト比を格納する。第５フィールド（Ｉ／Ｏ  ＳＩＺＥ）にはＩ／Ｏサイズを格納する。第６フィールド（Ｔｒａｎｓ）にはＩ／Ｏ待ち時間の重要度を格納する。第７フィールド（Ｂａｎｄ）にはバンド幅の重要度を格納する。
【００６７】
ストレージ割り当て部１１０における処理の流れを図６に示す。図６に示した処理は，割り当てる論理ボリュームのサイズとヒントを入力パラメータとする。これらのパラメータは，前述のユーザインタフェースにより，ユーザによって指示されたものである。
【００６８】
ステップ１０００乃至１０３０において，論理ボリュームを作成する冗長グループのＲＡＩＤレベルを選択する。まず，ステップ１０００において，指定されたヒントのAccessDirectionHint（リード／ライト比）が４以下かどうかを調べる。４以下であれば，アクセスがリードに偏向しているものと見なし，ＲＡＩＤレベル５を選択する（ステップ１０３０）。ステップ１０１０において，ヒントのAccessSizeHint（平均Ｉ／Ｏサイズ）が，２５６キロバイト以上の場合に，アクセスがラージであると見なす。アクセスがラージとは，一回のアクセス要求で転送するデータ量が，２５６キロバイト以上であることをいう。なお，ラージでない場合はスモールであるという。もし，アクセスがラージであれば，ＲＡＩＤレベル５を選択し，そうでなければＲＡＩＤレベル１を選択する。
【００６９】
ステップ１０４０乃至１１６０において，論理ボリュームを作成する冗長グループを選択する。これらのステップにおいては，前述のステップまでに選択したＲＡＩＤレベルと，ヒントのAccessLatencyHint（Ｉ／Ｏ待ち時間の重要度）とAccessBandwidthWeight（データ転送バンド幅の重要度）の値を参照する。ステップ１０４０において，AccessLatencyHintまたはAccessBandwidthWeightが８以上かどうかを調べる。これらの値が８以上である場合，高いアクセス性能が求められていると見なし，ステップ１０５０へ進む。そうでない場合はステップ１０７０の条件判定へ進む。
【００７０】
ステップ１０５０において，次の条件を満たす冗長グループを，割り当て管理情報１５０および，記憶装置２００から取得した記憶領域管理情報２３０を元に検出する。
条件１：ステップ１０２０または１０３０で選択したＲＡＩＤレベルである
条件２：指定されたサイズの論理ボリュームを作成できる
条件３：冗長グループに含まれる論理ボリュームが２個以内である
条件４：冗長グループに含まれる論理ボリュームに関して，それらの論理ボリュームに関連付けられたヒントのAccessLatencyHint（Ｉ／Ｏ待ち時間の重要度）が４以下かつAccessBandwidthWeight（データ転送バンド幅の重要度）が４以下である
このような冗長グループを検出した場合，ステップ１１６０へ進む。検出できない場合はステップ１０８０へ進む。
【００７１】
ステップ１０７０において，AccessLatencyHint（Ｉ／Ｏ待ち時間の重要度）またはAccessBandwidthWeight（データ転送バンド幅の重要度）が４以上かどうかを調べる。これらの値が４以上である場合，ステップ１０８０へ進む。そうでない場合はステップ１１００へ進む。
【００７２】
ステップ１０８０において，次の条件を満たす冗長グループを，割り当て管理情報１５０および，記憶装置２００から取得した記憶領域管理情報２３０を元に検出する。
条件１：ステップ１０２０または１０３０で選択したＲＡＩＤレベルである
条件２：指定されたサイズの論理ボリュームを作成できる
条件３：冗長グループに含まれる論理ボリュームが１０個以内である
条件４：冗長グループに含まれる論理ボリュームで，そのヒントのAccessLatencyHint（Ｉ／Ｏ待ち時間の重要度）またはAccessBandwidthWeight（データ転送バンド幅の重要度）が５以上であるものが，３個以内である
このような冗長グループを検出した場合，ステップ１１６０へ進む。検出できない場合はステップ１１００へ進む。ステップ１１００では，次の条件を満たす冗長グループを，割り当て管理情報１５０および，記憶装置２００から取得した記憶領域管理情報２３０を元に検出する。
条件１：ステップ１０２０または１０３０で選択したＲＡＩＤレベルである
条件２：指定されたサイズの論理ボリュームを作成できる
条件３：冗長グループに含まれる論理ボリュームで，そのヒントのAccessLatencyHint（Ｉ／Ｏ待ち時間の重要度）またはAccessBandwidthWeight（データ転送バンド幅の重要度）が７以上であるものが，存在しない
このような冗長グループを検出した場合，ステップ１１６０へ進む。検出できない場合はステップ１１２０へ進む。ステップ１１２０では，次の条件を満たす冗長グループを，割り当て管理情報１５０および，記憶装置２００から取得した記憶領域管理情報２３０を元に検出する。
条件１：指定されたサイズの論理ボリュームを作成できる
条件２：冗長グループに含まれる論理ボリュームで，そのヒントのAccessLatencyHint（Ｉ／Ｏ待ち時間の重要度）またはAccessBandwidthWeight（データ転送バンド幅の重要度）が７以上であるものが,存在しない
このような冗長グループを検出した場合，ステップ１１６０へ進む。検出できない場合はステップ１１４０へ進む。ステップ１１４０では，指定されたサイズの論理ボリュームを作成できる冗長グループをランダムに選択する。もし，このような冗長グループが存在しない場合は，エラーとする。ステップ１１６０では，検出した冗長グループを，論理ボリュームを割り当てる冗長グループとして選択する。
【００７３】
ステップ１１７０では，記憶装置２００に対して，選択した冗長グループと，論理ボリュームのサイズを指定して，論理ボリュームの作成を指示する。これにより，前述の記憶領域割り当て部２４０によって，論理ボリュームが新たに作成される。ステップ１１８０において，割り当て管理情報１５０に，ステップ１１７０で作成した論理ボリュームの構成情報を追加する。ここで記録する情報は，ストレージＩＤ，論理ボリューム番号，冗長グループ番号，ヒントである。
【００７４】
なお，ステップ１１７０までで説明した，論理ボリュームの割り当ての処理のアルゴリズムは一例である。ここで説明した以外のアルゴリズムを使った場合でも，本発明を実施することが出来る。
以上で，ヒントに基づき論理ボリュームを割り当てる方法を説明した。
【００７５】
本実施形態では，ボリュームの割り当てで用いたヒントを用いて，論理ボリュームの監視を行う。論理ボリュームの監視は，基本的には論理ボリュームの各種性能値に対する閾値との比較により行う。この閾値は，閾値情報１７０に格納される。
【００７６】
図７は，閾値情報１７０の内容を説明する図である。図７の通り，閾値情報１７０のデータ形式はテーブル形式である。閾値情報１７０の各行は，閾値管理対象の論理ボリュームに対応している。各行は５個のフィールドから成る。
【００７７】
以降，各行に対して，それに対応している論理ボリュームを対応論理ボリュームと呼ぶ。第１フィールドには，対応論理ボリュームのストレージＩＤを格納する。第２フィールドには，対応論理ボリュームの論理ボリューム番号を格納する。第３フィールドには，対応論理ボリュームに対する，平均待ち時間の閾値を格納する。第４フィールドには，対応論理ボリュームに対する，平均データ転送量の閾値を格納する。第５フィールドには，対応論理ボリュームに対する，待ち時間当たりの平均データ転送量の閾値を格納する。この値は，次式で求まる値の閾値である。
（秒間平均データ転送量）／｛（平均処理待ち時間）＊（秒間平均要求数）｝
閾値情報１７０において，値が０となっている閾値は，定められていないものとする。すなわち，値が０となっている項目を監視対象としない。閾値の設定は，監視構成部１２０において行う。本実施形態では，監視対象を論理ボリュームの性能値とする。
【００７８】
監視構成部１２０における処理は，論理ボリュームの割り当てが行われるときに，実行される。この処理に入力するパラメータは，論理ボリュームのストレージＩＤ，論理ボリューム番号，ヒントである。監視構成部１２０では，ヒントと閾値の関係を示す情報に基づいて，閾値を定める。本実施の形態においては，監視構成部１２０は，例えば，図８に示した２つのテーブルに基づいて，閾値を定める。
【００７９】
テーブル８０１は，ヒントのAccessLatencyHint（Ｉ／Ｏ待ち時間の重要度）の値と，論理ボリュームの平均アクセス待ち時間閾値の対応を示している。各行の第１フィールドは，AccessLatencyHintの値である。第２フィールドは，第１フィールドにより指示されるAccessLatencyHint値に対応する，論理ボリュームの平均アクセス待ち時間の閾値である。テーブル８０２は，AccessBandwidthWeight（データ転送バンド幅の重要度）の値と，論理ボリュームの待ち時間あたりの平均データ転送量の閾値の対応を示している。各行の第１フィールドは，AccessBandwidthWeightの値である。第２フィールドは，第１フィールドにより指示されるAccessBandwidthWeight値に対応する，論理ボリュームの待ち時間あたりの平均データ転送量の閾値である。なお，テーブル８０１および８０２において，閾値が０であるものは，その閾値を監視しないという意味である。
【００８０】
監視構成部１２０では，ヒントと閾値の関係を示すテーブル８０１および８０２に基づいて，閾値情報１７０に格納する，論理ボリュームの監視閾値を定める。ここで，本実施形態においては，監視閾値は，管理計算機１００により自動的に決定されるものとしたが，閾値を決定する前に，前述のユーザインタフェースを用いて，ユーザに対して修正および承認を促しても良い。
【００８１】
性能情報１６０には，記憶装置２００から取得した性能値を格納する。図９は，性能情報１６０に格納される情報を説明している。この中で，特に論理ボリューム２６０の性能情報１６１に関して詳しく描写されている。図９の通り，論理ボリューム２６０の性能情報は，９つのフィールドからなるテーブルの形式である。各行は論理ボリューム２６０に関する性能情報を取得した時刻に対応している。第１フィールドには，性能情報を取得した時刻を格納する。第２フィールドには，リードアクセスの平均のＩ／Ｏサイズを格納する。第３フィールドには，リードアクセスの単位時間当たりの平均データ転送量を格納する。ここで，単位時間は秒とする。第４フィールドには，リードアクセスの平均処理待ち時間を格納する。第５フィールドには，単位時間当たりの平均リードアクセス回数を格納する。ここで，単位時間は秒とする。第６フィールドには，ライトアクセスの平均のＩ／Ｏサイズを格納する。第７フィールドには，ライトアクセスの単位時間当たりの平均データ転送量を格納する。ここで，単位時間は秒とする。第８フィールドには，ライトアクセスの平均処理待ち時間を格納する。第９フィールドには，単位時間当たりの平均ライトアクセス回数を格納する。ここで，単位時間は秒とする。
【００８２】
論理ボリューム２６１乃至２６４の性能情報も，論理ボリューム２６０と同様に，性能情報１６０に格納される。これらの，論理ボリューム２６１乃至２６４の性能情報のデータ形式は，論理ボリューム２６０の性能情報１６１のデータ形式と同一内容のテーブルである。
【００８３】
性能情報取得部１３０は，記憶装置２００より，論理ボリューム２６０乃至２６４の性能情報を定期的に取得し，性能情報１６０に追加する。また，記憶装置２００から性能情報を取得するタイミングで，取得した性能情報を，閾値情報１７０に設定された閾値と比較する。性能情報取得部１３０における処理の流れを，図１０のフローチャートに示した。図１０を参照しつつ，性能情報取得部１３０について説明する。
【００８４】
ステップ１４１０から１４４０はループ構造となっている。このループ処理は，監視の対象とする各論理ボリュームに対して実行される。ステップ１４１０において，性能情報を取得する対象の論理ボリュームを選択する。ここでは，閾値情報１７０の各行の第１フィールドおよび第２フィールドにより指示される論理ボリュームを，閾値情報１７０の先頭行（図上で最上の行）から，順に選択する。
【００８５】
ステップ１４２０において，ステップ１４１０で選択した論理ボリュームの，性能情報を取得する。ここで取得する性能情報は，性能情報１６０に格納された，論理ボリュームの性能情報の各フィールドに対応する値である。すなわち，リードアクセスの平均のＩ／Ｏサイズ，リードアクセスの単位時間当たりの平均データ転送量，リードアクセスの平均処理待ち時間，単位時間当たりの平均リードアクセス回数，ライトアクセスの平均のＩ／Ｏサイズ，ライトアクセスの単位時間当たりの平均データ転送量，ライトアクセスの平均処理待ち時間，単位時間当たりの平均ライトアクセス回数である。
【００８６】
これらの値を取得するために，性能情報取得部１３０では，閾値情報１７０の第１フィールドにより指示される記憶装置に対して性能情報の出力を要求する。記憶装置２００では，性能情報取得部１３０のステップ１４２０において実行される性能情報取得要求が，性能値通知部２５０によって処理される。
【００８７】
ステップ１４３０において，ステップ１４２０で取得した性能情報を，性能情報１６０に追加する。このとき，性能情報を取得した時刻を，第１フィールドとして格納する。ステップ１４４０において，閾値情報１７０に含まれる全ての論理ボリュームについての性能情報取得処理が完了していない場合は，ステップ１４１０からの処理を，次の論理ボリュームを対象として実行する。
【００８８】
次に，ヒント並びに閾値を用いた監視について説明する。従来の技術で述べたように，計算機システムの管理システムは，監視対象装置の各種監視数値項目が，予め定められた閾値を違反したことを検出した場合に，ユーザに対して警告を通知する。本発明においては，ユーザに対して警告を通知する際に，ヒントに関連するメッセージをも通知する。この動作は，警告通知部１４０において実現される。
【００８９】
図１１は，警告通知部１４０における処理の流れを説明するフローチャートである。図１１に示した処理は，性能情報取得部１３０での論理ボリュームの性能情報収集処理が実行され後に，実行される。図１１に示した処理は，一つの論理ボリュームを対象としている。図１１に示した処理は，閾値情報１７０の第１及び第２フィールドにより指示される論理ボリューム全てに対して実行される。図１１に示した処理の入力パラメータは，論理ボリューム番号と，論理ボリュームを提供している記憶装置のストレージＩＤである。以降の説明において，入力パラメータにより指定された論理ボリュームを対象論理ボリュームと呼ぶ。図１１に示した処理において，検査に用いる性能情報は，性能情報取得部１３０により取得された最新のものとする。
【００９０】
ステップ１６００において，対象論理ボリュームに関して，リードおよびライト要求の，処理待ち時間当たりの平均データ転送量が，閾値を下回っているかどうかを検査する。この検査の閾値として，閾値情報１７０に格納された，処理待ち時間当たりの平均データ転送量閾値で，対象論理ボリュームのものを使用する。ここでの検査対象の値には，性能情報１６０に格納された，対象論理ボリュームの最新の性能情報で，リードとライトそれぞれについて，平均データ転送量を平均処理待ち時間で除算した商を用いる。すなわち，リードとライトの２つの値を，検査対象の値とする。
【００９１】
前記検査対象の２つの値と，前記閾値を比較し，どちらかが閾値を下回っていた場合は，性能上の問題が発生しているものとし，ステップ１６２０の処理へ進む。そうでなければ，ステップ１６１０の処理へ進む。ステップ１６１０において，対象論理ボリュームに関して，リードおよびライト要求の，平均処理待ち時間が，閾値を上回っているかどうかを検査する。この検査の閾値として，閾値情報１７０に格納された，平均処理待ち時間閾値で，対象論理ボリュームのものを使用する。
【００９２】
ここでの検査対象の値には，性能情報１６０に格納された，対象論理ボリュームの最新の性能情報で，リードとライトそれぞれについての平均処理待ち時間を用いる。すなわち，リードとライトの２つの値を，検査対象の値とする。前記検査対象の２つの値と，前記閾値を比較し，どちらかが閾値を上回っていた場合は，性能上の問題が発生しているものとし，ステップ１６２０の処理へ進む。そうでなければ，ステップ１７７０の処理へ進む。
【００９３】
ステップ１６２０において，対象論理ボリュームが属する冗長グループのＲＡＩＤレベルに対して，対象論理ボリュームへの実際のアクセスの特性（リード／ライト比とＩ／Ｏサイズ）が適合しているかどうかを検査する。以降，対象論理ボリュームの冗長グループのＲＡＩＤレベルを，単に対象論理ボリュームのＲＡＩＤレベルと呼ぶ。
【００９４】
対象論理ボリュームのＲＡＩＤレベルが１である場合，次の条件をどちらも満たすならば，対象論理ボリュームへのアクセスの特性は，ＲＡＩＤレベルに適合していると見なす。
条件１．ライト平均Ｉ／Ｏサイズが，２５６キロバイト未満である
条件２．リード平均ＩＯＰＳが，ライト平均ＩＯＰＳの１．５倍より少ない
対象論理ボリュームのＲＡＩＤレベルが５である場合，前記条件１．および２．のどちらか，あるいは両方が満たされない場合，対象論理ボリュームへのアクセスの特性は，ＲＡＩＤレベルに適合していると見なす。以上により，対象論理ボリュームへのアクセスの特性がＲＡＩＤレベルに適合していると判断される場合，ステップ１６８０へ進む。そうでなければ，ステップ１６４０へ進む。参考までに述べると，上記の条件１．および２．は，論理ボリュームの割り当てにおいて，ＲＡＩＤレベルを選択した条件と同等である。
【００９５】
ステップ１６４０において，対象論理ボリュームに関して，その割り当てのヒントと，実際のアクセスの特性の適合性を検査する。このステップでは，次のいずれかの条件を満たすとき，対象論理ボリュームの割り当てヒントに対して，実際のアクセス特性が適合していないと判断する。
条件１．性能情報１６０に格納された，対象論理ボリュームの最新の性能情報であるライト平均Ｉ／Ｏサイズが２５６キロバイト未満であり，かつ，割り当てヒントのＩ／Ｏサイズが，２５６キロバイト以上である。
条件２．性能情報１６０に格納された，対象論理ボリュームの最新の性能情報であるライト平均Ｉ／Ｏサイズが２５６キロバイト以上であり，かつ，割り当てヒントのＩ／Ｏサイズが，２５６キロバイト未満である。
条件３．性能情報１６０に格納された，対象論理ボリュームの最新の性能情報であるリードＩＯＰＳが，ライトＩＯＰＳの１．５倍未満であり，かつ，割り当てヒントのリード／ライト比が６未満である。
条件４．性能情報１６０に格納された，対象論理ボリュームの最新の性能情報であるリードＩＯＰＳが，ライトＩＯＰＳの１．５倍以上であり，かつ，割り当てヒントのリード／ライト比が６以上である。
【００９６】
ステップ１６５０において，前記ステップ１６４０で判定した，対象論理ボリュームに対する実際のアクセス特性と，対象論理ボリュームの割り当てヒントの不適合に沿った，警告メッセージを作成する。前記条件１．乃至４．のそれぞれに対して，条件を満たす場合のメッセージを，以下の通りに対応付ける。ここで，ＲＡＩＤレベルの不適合が生じている事に留意する。
１．前記条件１．または２．が満たされる場合には，メッセージを，「＜＜対象論理ボリューム＞＞に対するアクセスのＩ／Ｏサイズが，ヒントに指定されたＩ／Ｏサイズと一致しない」とする。
２．前記条件３．または４．が満たされる場合には，メッセージを，「＜＜対象論理ボリューム＞＞に対するアクセスのリード／ライト比が，ヒントに指定されたリード／ライト比と一致しない」とする。
３．前記条件１．乃至４．のいずれも満たされない場合には，メッセージを，「＜＜対象論理ボリューム＞＞は，ヒントに適合する適切な論理ボリュームが割り当てられていない」とする。＜＜対象論理ボリューム＞＞の部分は，対象論理ボリュームを表す言葉に置き換られる。
【００９７】
以上の通りステップ１６５０においてメッセージを作成した後，処理をステップ
１６７０へ進める。ステップ１６７０乃至１７５０では，対象論理ボリュームを含む冗長グループに関して，その冗長グループが含む，対象論理ボリューム以外の論理ボリュームの，ヒントとアクセスの頻度の実際について，検査を行う。
【００９８】
このような検査を行う理由は以下の通りである。本実施形態においては，割り当て時のヒントにおいて，AccessLatencyHint（Ｉ／Ｏ待ち時間の重要度）およびAccessBandwidthWeight（データ転送バンド幅の重要度）に低い値を与えられた論理ボリュームは，アクセスの頻度が低いものと見なす。よって，このような論理ボリュームを含む冗長グループに対して，AccessLatencyHintおよびAccessBandwidthWeightが高く設定された論理ボリュームを後から割り当てる場合がある。
【００９９】
このような状況下で，もし，アクセスの頻度が低いと見なしていた論理ボリュームへのアクセスが高まると，後から割り当てた，高いアクセス頻度が要求される論理ボリュームが影響を受け，その性能が低下する恐れがある。しかしながら，そのような論理ボリュームの性能低下（閾値違反）を認知しても，その因果関係は分かりにくい。
【０１００】
したがって，対象論理ボリュームの閾値違反に対して，原因と考えられる論理ボリュームをユーザに通知することは，ユーザが論理ボリュームの性能改善手段を検討するために都合が良い。
【０１０１】
ステップ１６７０において，対象論理ボリュームが属する冗長グループについて，その冗長グループに属する論理ボリューム（対象論理ボリューム以外）を一つ選択する。論理ボリュームの選択は，論理ボリューム管理情報２３２を調べることにより可能である。なお，ステップ１６７０乃至１７５０はループ構造になっているが，ステップ１６７０では，一度選択した論理ボリュームを重複して選択することはないものとする。以降，ステップ１６７０で選択した論理ボリュームを選択論理ボリュームと呼ぶ。
【０１０２】
ステップ１６８０において，選択論理ボリュームに関して，その割り当て時のヒントであるAccessLatencyHint（Ｉ／Ｏ待ち時間の重要度）およびAccessBandwidthWeight（データ転送バンド幅の重要度）と，性能値の適合性を検査する。ここでは，選択論理ボリュームのAccessLatencyHintおよびAccessBandWidthWeightの値が低いにも関らず，選択論理ボリュームに対するアクセスが増大していないかどうかを調べる。選択論理ボリュームがこのような状況であれば，ステップ１６９０の分岐において，ステップ１７００の処理へ進む。そうでなければ，ステップ１７５０の処理へ進む。後述するが，ステップ１７００の処理は，選択論理ボリュームによる，性能的影響に言及するメッセージを作成するステップである。
【０１０３】
まず，選択論理ボリュームのAccessLatencyHintおよびAccessBandwidthWeightを，割り当て管理情報１５０より取得する。次に，性能情報１６０より，選択論理ボリュームの最新の性能情報で，リードＩＯＰＳおよびライトＩＯＰＳを取得する。そこで，もし，AccessLatencyHintおよびAccessBandwidthWeightが４未満で，かつ前記リードＩＯＰＳおよびライトＩＯＰＳの合計が，予め定めておいた数値よりも大きい場合には，選択論理ボリュームを，対象論理ボリュームに性能的影響を与えている論理ボリュームと見なす。
【０１０４】
ステップ１７００において，選択論理ボリュームが，対象論理ボリュームへ性能的影響を持つことに言及するメッセージを作成する。ここで作成するメッセージは次のようなものである。「＜＜選択論理ボリューム＞＞は，指定されたヒントとは異なり，高頻度でのアクセスがなされている」。＜＜選択論理ボリューム＞＞は，選択論理ボリュームを表す言葉に置き換えられる。
【０１０５】
ステップ１７５０は，ループの終端である。このステップでは，対象論理ボリュームの冗長グループに含まれる全ての論理ボリュームに対して，ステップ１６７０乃至１７００の処理を行ったかどうかを調べ，未処理の論理ボリュームがあれば，ステップ１６７０へ戻る。ここで，同一冗長グループに属する論理ボリュームが，相互に性能的影響を与えることは，以前に述べた。このような現象は，ＲＡＩＤレベルによっても見られる。
【０１０６】
ＲＡＩＤレベル５の冗長グループに対する，小さいＩ／Ｏサイズ（ストライピングユニット以下程度）のライトアクセスは，冗長グループ全体の性能に対して大きな影響を与える。よって，ステップ１６７０乃至１７００のループの中で，選択論理ボリュームを対象として，ステップ１６２０乃至１６４０で述べた方法によってＲＡＩＤレベルと性能値の適合性を検査し，ステップ１６５０で述べたようなメッセージを作成することも有効である。
【０１０７】
ステップ１７６０の処理は，ステップ１６００および１６１０で，閾値違反が認められなかった場合に実行される。ここでの目的は，対象論理ボリュームが，ヒントにより高い性能を要求されながら，実際にはアクセスの頻度が低いことを，ユーザに通知することである。ステップ１７６０において，対象論理ボリュームの平均データ転送量が，閾値を下回っているかどうかを調査する。
【０１０８】
このステップにおける閾値は，閾値情報１７０に格納された，対象論理ボリュームのデータ転送量閾値である。このステップでは，性能情報１６０に格納された，対象論理ボリュームのリード平均データ転送量とライト平均データ転送量の合計と，前記の閾値と比較する。この結果，前記合計値が前記閾値を下回っていた場合，対象論理ボリュームには，実際のアクセスに対して過剰に高性能な論理ボリュームと見なす。そして，ステップ１７７０において，メッセージを作成する。そうでなければ，この一連の処理は終了する。
【０１０９】
ステップ１７７０において作成するメッセージは，次のようになる。「＜＜対象論理ボリューム＞＞は，実際の利用に対して，過剰に高性能である」。＜＜対象論理ボリューム＞＞の部分は，対象論理ボリュームを表す文字列に置き換える。
ステップ１７８０において，ユーザに対して閾値違反の警告を通知する。警告を通知する際には，ステップ１６５０，１７００，１７７０で作成したメッセージを含める。警告は，前述したユーザインタフェースを介してユーザに通知する。syslogに代表される，ログ記録機能を用いて，ユーザに通知しても良い。また，e-mailに代表される，メッセージ交換機能を利用しても良い。また，ＳＮＭＰに代表される管理用のプロトコルを利用して，警告をユーザに通知することも出来る。
【０１１０】
以上で，論理ボリュームを監視すると共に，閾値違反の発生に際して，適切なメッセージをユーザに通知する方法を説明した。
【０１１１】
［第２の実施の形態］
次に，本発明の第２の実施の形態を説明する。図１２は，本発明の第２の実施形態を示す図である。第２の実施形態では，第１の実施形態において，管理計算機１００（図２参照）が備えていたストレージ割り当て部１１０，監視構成部１２０，警告通知部１４０，割り当て管理情報１５０，性能情報１６０，閾値情報１７０と同等の部位および情報を，記憶装置が有するように実施している。記憶装置２２００は，これらの部位および情報を有するように，記憶装置２００（図２参照）を拡張したものである。
【０１１２】
記憶装置２２００は，ストレージ割り当て部２１１０，監視構成部２１２０，警告通知部２１４０，割り当て管理情報２１５０，性能情報２１６０，閾値情報２１７０を有する。これらの部位および情報は，第１の実施形態の管理計算機１００におけるそれぞれ同名の部位および情報を，記憶装置２２００で稼動させるようにしたものである。本実施形態では，コントローラ２１０はＣＰＵ２０１，メモリ２０２を具備し，プログラムを解釈実行する能力を有する。２２０，２４０，２２５０，２１１０，２１２０，２１４０の各部はメモリ２０２に格納され，コントローラ２１０により実行されるプログラムであるとする。なお，２２０，２４０，２２５０，２１１０，２１２０，２１４０の各部と同等の機能を，それぞれ専用のハードウェアでもって実装した記憶装置を用いても，本発明を実施することが出来る。
【０１１３】
第２の実施の形態においては，第１の実施の形態の性能情報取得部１３０と，性能値通知部２５０に相当する機能とを併せ持つ機能が，性能値通知部２２５０によって実現される。すなわち，性能値通知部２２５０は，論理ボリューム２６０乃至２６４の性能に関する情報を，性能情報２１６０に蓄積する。
【０１１４】
管理計算機２１００は，ユーザインタフェース２１８０を有する一般的な計算機である。ユーザインタフェース２１８０を用いることで，第１の実施形態と同様に，ユーザは記憶装置２２００のストレージ割り当て部２１１０，監視構成部２１２０，警告通知部２１４０を制御することが出来る。また管理計算機１００は，割り当て管理情報１５０，性能情報１６０，閾値情報１７０についての第１の実施形態に関する説明から，第２の実施形態においても，本発明の効果が得られることが理解されるであろう。
【０１１５】
以上で，本発明の実施の形態について説明した。ここで，実施の形態に関する補足を述べる。
【０１１６】
第１および第２の実施形態において，計算機システムに含まれる記憶装置は，記憶装置２００または２２００の一つとしたが，本発明は，複数の記憶装置を含む計算機システムに対して適用することが出来る。第１および第２の実施形態において，計算機システムに含まれるＦＣスイッチを一台のみとしたが，ＦＣスイッチの台数により本発明の本質が変わることはない。
【０１１７】
第１および第２の実施形態を拡張し，記憶装置のみならず，計算機もしくはＦＣスイッチからも性能の情報を取得し，それらに対する閾値を設定できるようにすることで，よりよい実施形態とすることができる。
【０１１８】
記憶装置には，記憶装置内部の性能を改善する機能を有するものがある。例えば，前述のストレージエリアネットワークは，論理ボリュームに格納されているデータを，キャッシュメモリに常に格納しておく機能（キャッシュ常駐機能）を有する。これにより，論理ボリュームへのアクセスの性能が飛躍的に向上する。図１１で説明した処理の流れにおいて，ステップ１６５０および，１７００でメッセージを作成している。これらのステップにおいて，論理ボリュームに対する前記のキャッシュ常駐機能の適用を提案するメッセージを作成するようにすることが出来る。
【０１１９】
また，論理ボリュームに対する適切なキャッシュメモリのサイズを計算し，キャッシュ常駐機能を自動的に適用することも出来る。この場合，メッセージには，キャッシュ常駐機能を自動的に適用した旨を含める。
【０１２０】
また，性能改善機能には，キャッシュ常駐機能以外にも，論理ボリュームに格納されたデータを，他の論理ボリュームへ移動する，論理ボリューム移動機能や，ＦＣインタフェースにおいて，特定の計算機からのＩ／Ｏ要求で使用する帯域幅を制限する，帯域制御機能がある。これらの機能を，前述のキャッシュ常駐機能のように利用することも出来る。
【０１２１】
以上，本発明者によってなされた発明を，前記実施形態に基づき具体的に説明したが，本発明は，前記実施形態に限定されるものではなく，その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【図面の簡単な説明】
【０１２２】
【図１】実施の形態の概要を示す図である。
【図２】第１の実施の形態における計算機システムの構成を示す図である。
【図３】第１の実施の形態における記憶領域管理情報を説明する図である。
【図４】冗長グループと論理ボリュームを説明する図である。
【図５】第１の実施の形態における割り当て管理情報を説明する図である。
【図６】第１の実施の形態における論理ボリュームの割り当ての処理の流れを説明する図である。
【図７】第１の実施の形態における閾値情報を説明する図である。
【図８】第１の実施の形態における，閾値を決定するためのテーブルを説明する図である。
【図９】第１の実施の形態における性能情報を説明する図である。
【図１０】第１の実施の形態における，性能情報を取得する処理の流れを説明する図である。
【図１１】第１の実施の形態における，警告通知の処理の流れを説明する図である。
【図１２】第２の実施の形態における計算機システムの全体を示す図である。
【符号の説明】
【０１２３】
１００…管理計算機，１１０…ストレージ割り当て部，１２０…監視構成部，１３０…性能情報取得部，１４０…警告通知部，１５０…割り当て管理情報，１６０…性能情報，１７０…閾値情報，２００…記憶装置，２１０…コントローラ，２２０…記憶領域管理部，２３０…記憶領域管理情報，２４０…記憶領域割り当て部，２５０…性能値通知部，２６０，２６１，２６２，２６３，２６４…論理ボリューム，２７０…ＦＣインタフェース，３００…ＬＡＮ，４００…計算機，４１０…ＦＣインタフェース，８０１，８０２…閾値決定テーブル，２１００…管理計算機，２２００…記憶装置，２２５０…性能値通知部，２１１０…ストレージ割り当て部，２１２０…監視構成部，２１４０…警告通知部，２１５０…割り当て管理情報，２１６０…性能情報，２１７０…閾値情報，２１８０…ユーザインタフェース，３０００…管理者，３１００…計算機システム，３２００…管理システム，３３００…記憶装置，３４００…ヒント，３５００…メッセージを含む警告
【図１】
2005182274.tif 000003
【図２】
2005182274.tif 000004
【図３】
2005182274.tif 000005
【図４】
2005182274.tif 000006
【図５】
2005182274.tif 000007
【図６】
2005182274.tif 000008
【図７】
2005182274.tif 000009
【図８】
2005182274.tif 000010
【図９】
2005182274.tif 000011
【図１０】
2005182274.tif 000012
【図１１】
2005182274.tif 000013
【図１２】
2005182274.tif 000014