(57)【要約】  【課題】  ＳＡＮなどの複数の記憶装置を有する計算機システムにおいて、記憶装置の追加やＳＡＮに属する記憶装置の構成変更を検出して、既存する記憶領域を、記憶領域作成の際に与えられる「ヒント」に基づいて自動的に再配置することができなかった。  【解決手段】  計算機とネットワークを介して接続し計算機が利用するデータを格納する記憶領域を有する前記記憶装置にネットワークを介して接続する管理計算機は、記憶領域の所定の性能を示すレベルと前記記憶装置の装置特性情報との対応付けを保持し、第１の記憶装置が前記計算機に割り当てた記憶領域の性能を示すレベルを第１の記憶装置から取得する。そして、取得した記憶領域の性能を示すレベルに対応する前記第１の装置特性情報と、他の記憶装置の装置特性情報とをそれぞれ参照し、記憶装置間での前記記憶領域の性能を比較する。  【選択図】  図１
2005228278.tif 000002
【特許請求の範囲】
【請求項１】
計算機とネットワークを介して接続し前記計算機が利用するデータを格納する記憶領域を有する前記記憶装置にネットワークを介して接続する管理計算機で、複数の記憶装置の記憶領域を管理する方法であって、
記憶領域の所定の性能を示すレベルと前記記憶装置の装置特性情報との対応付けを保持し、
第１の記憶装置が前記計算機に割り当てた記憶領域の性能を示すレベルを第１の記憶装置から取得し、
前記取得した記憶領域の性能を示すレベルに対応する前記第１の装置特性情報と、他の記憶装置の装置特性情報とをそれぞれ参照し、記憶装置間での前記記憶領域の性能を比較することを特徴とする記憶領域管理方法。
【請求項２】
前記対応付けは、前記計算機と接続する記憶装置から取得したものであることを特徴とする請求項１記載の記憶領域管理方法。
【請求項３】
前記記憶装置間での前記記憶領域の性能の比較は、前記管理計算機と前記ネットワークを介して接続した新たな記憶装置から前記対応付けを取得した場合に行うことを特徴とする請求項１記載の記憶領域の管理方法。
【請求項４】
前記記憶装置間での前記記憶領域の性能の比較は、前記記憶装置から新たな対応付けをさらに取得した場合に行うことを特徴とする請求項２記載の記憶領域管理方法。
【請求項５】
前記レベルは、０から１０までの整数値であることを特徴とする請求項１記載の記憶領域管理方法。
【請求項６】
前記比較結果に基づいて前記他の記憶装置に対し、前記取得したレベルに対応する前記他の記憶装置の装置特性情報を備える記憶領域を前記計算機に割り当てるよう指示すること特徴とする請求項１記載の記憶領域管理方法。
【請求項７】
前記管理計算機は、前記取得したレベルに対応する前記他の記憶装置の装置特性情報を備える記憶領域を計算機に割り当てる旨の入力を受け、前記割り当ての指示を行うことを特徴とする請求項６記載の記憶領域管理方法。
【請求項８】
記憶領域の所定の性能を示すレベルが前記所定の性能を有する必要がないことを示す場合は、前記所定の性能を示すレベルについて前記比較を行わないことを特徴とする請求項１記載の記憶領域管理方法。
【請求項９】
前記計算機と前記記憶装置とは第１のネットワークを介して接続し、前記管理計算機は、前記計算機及び前記記憶装置に前記第２のネットワークを介して接続し、前記指示に基づいて前記計算機に割り当てる記憶領域に、前記第１の記憶装置が有する記憶領域に格納されているデータを複写し、
前記計算機が前記割り当てる記憶領域に対し前記複写したデータの読み出し及び新たなデータの書き込みの少なくとも一方を前記第１のネットワークを介して実行するように前記計算機に前記第２のネットワークを介して指示することを特徴とする請求項６記載の記憶領域管理方法。
【請求項１０】
所定の性能が複数有する場合、前記比較は、そのレベルが一番高いレベルで行う特徴とする請求項１記載の記憶領域管理方法。
【請求項１１】
計算機とネットワークを介して接続する第１の記憶装置と、前記第１の記憶装置と接続する第２の記憶装置とにネットワークを介して接続する管理計算機で、前記第１及び第２の記憶装置がそれぞれ有する記憶領域を管理する方法であって、
記憶領域の所定の性能を示すレベルと記憶装置の装置特性情報との対応付けを前記記憶装置ごとに保持し、
第１の記憶装置が有する記憶領域の所定の性能を示すレベルと、当該第１の記憶装置が有する記憶領域と接続する第２の記憶装置が有する記憶領域の所定の性能を示すレベルとを取得し、
前記取得したレベルに対応する装置特性情報を比較し、
前記比較結果に基づいて前記第１の記憶装置が有する記憶領域に前記第２の記憶装置が有する記憶領域に格納されているデータを格納することを特徴とする記憶領域管理方法。
【請求項１２】
前記第１の記憶装置が有する記憶領域が前記第２の記憶装置が有する記憶領域と接続することを示す階層情報を取得し、前記階層情報に基づいて前記第１及び第２の記憶装置それぞれ有する前記装置特性情報を比較することを特徴とする請求項１１記載の記憶領域管理方法。
【請求項１３】
前記階層情報は、前記第１の記憶装置から取得することを特徴とする請求項１２記載の記憶領域管理方法。
【請求項１４】
前記比較結果、前記第２の記憶装置が有する記憶領域の所定の性能を示すレベルに対応する前記第１の記憶装置の装置特性情報が、前記第２の記憶装置の装置特性情報より良い場合は、前記第１の記憶装置に前記レベルに対応する前記第１の記憶装置の装置特性情報に基づいて所定の性能を備える記憶領域に前記データを格納することを特徴とする請求項１２または１３いずれか記載の記憶領域管理方法。
【請求項１５】
前記階層情報を消去するよう前記第１の記憶装置に指示することを特徴とする請求項１４記載の記憶領域管理方法。
【請求項１６】
計算機とネットワークを介して接続する第１の記憶装置であって、
前記計算機が利用するデータを格納する他の記憶装置が有する記憶領域と接続する記憶領域と、
前記記憶領域の所定の性能を示すレベルと前記記憶装置の装置特性情報との記憶装置ごとの対応付けを保持するメモリと、
前記計算機から前記第１の記憶装置又は前記他の記憶装置に対するアクセスを制御する制御部とを備え、
前記制御部は、
前記他の記憶装置が有する記憶領域の所定の性能を示すレベルとを取得し、前記レベルに対応する前記第１及び前記他の記憶装置の装置特性情報を前記対応付けから参照し、前記参照した値を比較することを特徴とする第１の記憶装置。
【請求項１７】
前記比較結果に基づいて、前記第１の記憶装置が有する記憶領域の所定の性能を示すレベルに対応する装置特性情報を備える記憶領域に前記データを格納することを特徴とする請求項１６記載の第１の記憶装置。
【請求項１８】
計算機が利用するデータを格納する記憶領域を有する複数の記憶装置と、前記記憶装置とネットワークを介して接続する管理計算機とを有する計算機システムであって、
前記管理計算機は、前記記憶装置から受ける情報に基づいて処理を行う制御部と、前記記憶装置への要求及び前記記憶装置からの応答を行う管理ネットワークインタフェースとを有し、
前記記憶装置各々は、前記記憶領域の所定の性能を示すレベルと、前記記憶装置の前記性能の値とを対応付けと前記記憶装置が有する記憶領域の性能を示すレベルとを保持するメモリと、前記対応付けを参照し、前記管理計算機からの要求する所定の性能を示すレベルに対応する性能の値を備える前記記憶領域を前記計算機に割り当てる記憶領域割当部と、前記管理計算機とのデータの授受を行うネットワークインタフェースとを有し、
前記管理計算機の制御部は、前記管理ネットワークインタフェースに前記ネットワークを介して接続する前記ネットワークインタフェースに接続されている記憶装置を検出した場合、前記記憶装置から前記対応付けを取得し、前記記憶領域制御モジュールが前記計算機へ既に割り当てられた記憶領域の性能を示すレベルを取得し、前記複数の記憶装置の対応付けを参照し、前記レベルに対応する装置特性情報を前記複数の記憶装置同士で比較し、前記比較結果に基づいて前記計算機に割り当てる記憶領域を既に割り当てられた記憶領域を備える記憶装置とは異なる記憶装置へ前記レベルに対応する記憶領域の割り当てを指示し、
前記記憶装置の記憶領域割当部は、前記割り当て指示に基づいて前記レベルに対応する性能を備える記憶領域を前記計算機へ割り当てることを特徴とする計算機システム。
【請求項１９】
計算機とネットワークを介して接続し前記計算機が利用するデータを格納する記憶領域を有する前記記憶装置にネットワークを介して接続する管理計算機で実行される複数の記憶装置の記憶領域を管理する管理プログラムであって、
記憶領域の所定の性能を示すレベルと前記記憶装置の装置特性情報との対応付けを取得する手順と、
第１の記憶装置が前記計算機に割り当てた記憶領域の性能を示すレベルを第１の記憶装置から取得する手順と、
前記取得した記憶領域の性能を示すレベルに対応する前記第１の装置特性情報と、他の記憶装置の装置特性情報とをそれぞれ参照し、記憶装置間での前記記憶領域の性能を比較する手順とを前記管理計算機で実行させることを特徴とする管理プログラム。
【請求項２０】
請求項１９記載の管理プログラムをコンピュータ読み取り可能に記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数の記憶装置を含む計算機システムにおける記憶領域の管理方法に関する。
【背景技術】
【０００２】
近年、複数のサーバ、複数の記憶装置、バックアップ装置等を、スイッチやハブ等で接続するストレージネットワーク構成（主にＳＡＮ（Storage Area Network）と呼ばれる）が用いられている。ストレージネットワークによって計算機システムを構成するメリットは、スケーラビリティに優れていること、複数の記憶装置に分散したデータを統合して一元管理を行えるため管理コストの低減を実現できること等があげられる。
【０００３】
また、ディスクアレイ装置に代表される大規模な記憶装置においては、記憶装置内に計算機が利用する情報（データやプログラム）を格納するための記憶領域を作成するための管理手段が用意されている。しかし、記憶領域を作成するための管理手段は、記憶装置を製造するベンダごとにそのインタフェースや要求のフォーマットが異なっている。このため、異なるベンダの記憶装置を導入した場合には、記憶装置の管理者は、ベンダごとに異なるインタフェースや要求のフォーマットを覚えなければならず、大規模なコンピュータシステムでは、大きな問題となっている。そこで、ＤＭＴＦ（Distributed Management Task Force）は、ＣＩＭ（Common Information Model）とＷＢＥＭ（Web-Based Enterprise Management）を策定し、記憶装置において記憶領域を作成する際のインタフェースや要求のフォーマットを策定している。このＣＩＭで定義されたインタフェースを用いることで、ベンダの異なる記憶装置においても、統一的な手法で記憶領域を作成することができる。このＣＩＭで定義された記憶領域の作成インタフェースと要求のフォーマットでは、「ヒント」を用いた記憶領域の作成が定義されている。
（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]、２００２年１１月１２日、Distributed Management Task Force、[２００３年１月１８日検索]、インターネット＜URL：http://www.dmtf.org/standards/cim_schema_v27.php＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特開２００３−２４０８３６号公報に開示されている記憶領域の再配置方法によれば、クラス単位の使用状況情報、クラス属性および記憶装置のベンダ情報により、クラス間またはクラス内の記憶領域の移行を行うことが開示されている。
【０００７】
しかし、ネットワークで接続された複数の記憶装置間での記憶領域の移行をおこなうことについては、開示されていない。また、ヒントは、各ベンダの記憶装置のハードウエア構成がまったく異なっていても、統一的な要求のフォーマットによる記憶領域の作成を提供することができるが、ヒントが同じ値であっても、それに対応する実際の装置の特性は、各ベンダなどの記憶装置間では異なる場合が多い。したがって、複数の記憶装置間で記憶領域を行う者がヒントによって複数の記憶装置間で、リソースを有効利用するための記憶領域割り当てを実現することは困難である。
【０００８】
本発明は、上記点を鑑みて考えられたものであり、記憶領域を割り当てる際に指定する記憶領域の所定の性能を示すレベル（ヒント）を用いて複数の記憶装置のリソース（記憶領域）の有効利用を実現することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するための一つの実施形態として、計算機とネットワークを介して接続し計算機が利用するデータを格納する記憶領域を有する前記記憶装置にネットワークを介して接続する管理計算機は、記憶領域の所定の性能を示すレベルと前記記憶装置の装置特性情報との対応付けを保持し、第１の記憶装置が前記計算機に割り当てた記憶領域の性能を示すレベルを第１の記憶装置から取得し、取得した記憶領域の性能を示すレベルに対応する前記第１の装置特性情報と、他の記憶装置の装置特性情報とをそれぞれ参照し、記憶装置間での前記記憶領域の性能を比較することを特徴とする。
【００１０】
なお、本発明の他の特徴は、本明細書及び添付図面の記載により明らかにする。
【発明の効果】
【００１１】
ネットワークを介する複数の記憶装置のリソースを有効に利用することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面を参照しながら詳細に説明する。
●実施形態の概要
図１を用いて本発明を実施するための形態の概要を説明する。図１の計算機システムでは、記憶領域を利用する計算機１００と記憶装置３０１および記憶装置３０２を第一のネットワーク２００で接続し、記憶装置３０１および記憶装置３０２を管理する管理計算機６００と記憶装置３０１と３０２を第二のネットワーク５００で接続している。図１のシステム構成は、計算機１００と記憶装置３０１および管理計算機６００からなる計算機システムに、記憶装置３０２が追加（構成変更）した状態である。また、第一のネットワーク２００には、記憶領域間でデータの移動を行う記憶領域移動実行手段７００を設けている。記憶領域移動実行手段７００は、管理計算機６００からの移動要求を受け付けられるように、第二のネットワークにも接続している。
【００１３】
管理計算機６００は、記憶装置３０２が追加されたことを検出すると（１０）、記憶装置３０１と記憶装置３０２のそれぞれから、装置特性情報と「ヒント」を取得し（１２）、装置特性情報とヒントを再評価し、記憶領域を新しく追加した記憶装置３０２に設けた方が、よりヒントに合致した記憶領域を提供できると判断した場合には、当該記憶領域に関連付けられた「ヒント」によって、記憶装置３０２に記憶領域を作成し（１４）、記憶装置３０１の記憶領域のデータを記憶領域移動実行手段７００を用いて、記憶装置３０２に新たに作成した記憶領域に移行する。最後に管理計算機６００は、計算機１００に記憶領域を移動したことを通知し、計算機１００は、それ以降記憶装置３０２の記憶領域を参照するように設定することで（１８）、計算機に対し、より「ヒント」に合致した記憶領域を使用できるようにする。
【実施例１】
【００１４】
（１）システム構成
図２に実施例１のシステム構成を示す。図２の計算機システムでは、記憶領域を利用する計算機１００と記憶装置３０１および記憶装置３０２を第一のネットワーク２００で接続し、記憶装置３０１および記憶装置３０２を管理する管理計算機６００と記憶装置３０１と３０２を第二のネットワーク５００で接続している。図２のシステム構成は、計算機１００と記憶装置３０１および管理計算機６００からなる計算機システムに、記憶装置３０２を追加（構成変更）した状態である。また、第一のネットワーク２００には、記憶領域間でデータの移動を行う記憶領域移動実行手段７００を設けている。記憶領域移動実行手段７００は、管理計算機６００からのデータ移動要求を受け付けられるように、第二のネットワークにも接続している。本実施例では、第一のネットワーク２００としては、ファイバチャネルを用いており、また、第二のネットワーク５００としてはＩＰ（Internet Protocol）ネットワークを用いている。第１及び第２のネットワークは上記に限られない。また、第１及び第２のネットワークは、異なるネットワークであっても同じネットワークであってもよい。
●計算機
計算機１００は、プログラムの実行を司るＣＰＵ１０５と、プログラムやプログラムの実行に必要となるデータを格納するメモリ１１０と、第一ネットワーク２００へ接続し記憶装置３０１および記憶装置３０２とデータの交換を行うためのファイバチャネルインタフェース（以下ＦＣインタフェースと略す）１２０と、第二のネットワークに接続するためのネットワークインタフェース１３０からなる。計算機１００は、プログラムの実行によって生成したデータを、ＦＣインタフェース１２０を介して第一のネットワーク２００に接続された記憶装置の記憶領域に格納することができる。また、計算機１００は、プログラムそのものやプログラムの実行に必要となるデータを、ＦＣインタフェース１２０を介して記憶装置の記憶領域から取得することができる。
【００１５】
そして、計算機１００のメモリ１１０にはボリューム管理テーブル１１５を設けている（図６）。ボリューム管理テーブル１１５は、計算機１００が計算機上のアプリケーションからファイルシステムを経由して利用するボリュームが、どの記憶装置のどこ記憶領域であるかを管理するためのテーブルである。本実施例では、このボリューム管理テーブル１１５をボリュームに割り当てられたドライブレターと、ＦＣインタフェースの番号、記憶領域の番号で識別する。ＦＣインタフェースの番号としては、ＷＷＮ（World Wide Name）を用いることが一般的である。また、記憶領域の番号は、ＳＣＳＩ（Small Computer System Interface）で規定されるＬＵＮ（Logical Unit Number）を用いることが一般的である。本実施例では、図との対応を簡易化するために、ＷＷＮとＬＵＮに変えて、図で使用する番号をそのまま用いて説明する。計算機１００は、このボリューム管理テーブル１１５にしたがって、記憶領域からのデータの読み出しや記憶領域へのデータの書き込みを行う。本実施例では、管理計算機６００からネットワークインタフェース１３０を介して、ボリューム管理テーブル１１５を書き換えることができる構成としている。
●記憶装置
記憶装置の構成を説明する。記憶装置３０１と３０２は、プログラムの実行を司るＣＰＵ３５０と、プログラムやプログラムの実行に必要となる情報を格納するメモリ３６０と、管理計算機６００との通信を行うためのネットワークインタフェース３９０と、計算機１００とデータの交換を行うためのＦＣインタフェース（３７１１〜３７１６，３７２１〜３７２９）と、計算機１００からのデータのリード／ライト要求を処理する記憶領域制御モジュール３８０と、計算機１００から受け取ったデータや記憶領域から読み出したデータを一時的に蓄えるためのキャッシュ３８９と、実際にデータを蓄積するための記憶領域とを有する。
記憶装置では、計算機に割り当て済みの記憶領域を記憶領域制御モジュール３８０が管理する記憶領域情報によって割当済みの記憶領域と未割当の記憶領域を管理している。本実施例では記憶装置３０１は、記憶領域情報３８３を有し、記憶装置３０２は、記憶領域情報３８４を有する。
【００１６】
メモリ３６０は、装置特性情報３２５と、記憶領域情報３８２とを保持し管理計算機６００からの記憶領域割当要求にしたがって、記憶領域を割り当てる記憶領域割当プログラム３３０を有している。なお、プログラムは、記憶装置内のROMや磁気ディスク等の不揮発性記憶媒体に記憶され、記憶装置の起動時にメモリ３６０にロードされて実行されるものとする。また、プログラムの処理を記憶装置内にハードウェア的に構成してもよい。
【００１７】
記憶装置３０１と３０２の違いは、ＦＣインタフェースの提供できる帯域と数である。記憶装置３０１には、６個のＦＣインタフェースを有し、帯域が１ＧｂｐｓのＦＣインタフェース３７１１〜３７１３と、帯域が２ＧｂｐｓのＦＣインタフェース３７１４〜３７１６を有している。一方、記憶装置３０２には、９個のＦＣインタフェースを有し、帯域が１ＧｂｐｓのＦＣインタフェース３７２１〜３７２３と、帯域が２ＧｂｐｓのＦＣインタフェース３７２４〜３７２６と、帯域が１０ＧｂｐｓのＦＣインタフェース３７２７〜３７２９有している。
【００１８】
図３は、管理計算機６００から、記憶装置に発行される記憶領域割当要求に含まれるパラメータの例である。本実施例では、パラメータとして、作成する記憶領域の容量と、ホストからのアクセス帯域に関して、広帯域アクセスを希望する度合いを示すAccessBandwidthHint（ABH）、記憶装置内の記憶領域のビット単価について、ビット単価の安い記憶領域を希望する度合いを示すStorageCostHint（SCH）、記憶領域の可用性に関して、高い可用性を持つ記憶領域を希望する度合いを示すDataAvailabilityHint（DAH）の四つのヒントのうち、三つのヒント、ABH、SCH,DAHを用いて説明する。それぞれのヒントには１〜１０の値により１０段階のレベルを与えることができる。このレベルは、それぞれのヒントが意味する記憶領域の性能を重要視する度合いを示す。例えばレベル０は「Ｄｏｎ’ｔ  ｃａｒｅ」であり、当該ヒントを重要視しないことを示し、そのヒントに該当する記憶領域の性能は記憶装置各々で低い性能となる。そして、レベルの数字が大きくなるにつれて当該ヒントを重要視する度合いが増加し、レベル１０は、当該ヒントを最重要視することを示し、そのヒントに該当する記憶領域の性能は、当該記憶装置各々が提供できる高いものとなる。本実施例では、DMTFのCIMによって定義されるヒントの種類の一例を用いているが、それ以外のCIMで定義されているヒントやCIM以外のヒントを用いても同様に実施可能である。
【００１９】
本実施例におけるヒントとそれぞれの装置特性情報の対応表を図４(a)、図４(b)に示す。記憶装置３０１は図４(a)に示される装置特性情報３２６を、記憶装置３０２は図４（ｂ）に示される装置特性情報３２７を、それぞれ、装置特性情報保持部３２５に保持する。装置特性情報３２６からは、記憶装置３０１は、帯域は１Ｇｂｐｓあるいは２Ｇｂｐｓ、ビット単価は１¢／ＭＢ、可用性は９９．９％である記憶領域を提供可能であることがわかる。装置特性情報３２７からは、記憶装置３０２は、帯域は１Ｇｂｐｓ、２Ｇｂｐｓあるいは１０Ｇｂｐｓ、ビット単価は２¢／ＭＢ、可用性は９９．９９９％の記憶領域を提供可能であることがわかる。
【００２０】
ビット単価は記憶装置の購入価格と購入容量によって決まってしまうため、本実施例では記憶装置ごとに固有の値としている。また、可用性も装置のハードウエアの構成（電源やコントローラの冗長度や活線挿抜機構の有無）によって決まるため、本実施例では記憶装置ごとに固有の値としている。装置特性情報３２６や３２７からも、ヒントのレベルを変えても、割り当てられる記憶領域に変化がないことがわかる。帯域については、ＦＣインタフェースの設定や、帯域制御手段の設定によって可変とすることができるので、記憶装置の中で異なる設定を有する記憶領域を作成することができる。記憶装置３０１では、AccessBandwidthHintを１〜５とすることで帯域が１Ｇｂｐｓの記憶領域を、AccessBandwidthHintを６〜１０とすることで帯域が２Ｇｂｐｓの記憶領域を作成できる。ヒントのレベルが、例えば、ヒントのレベルが１であるものに対し、それよりも大きい６は、記憶領域へのアクセスの帯域がより広いものとすることができ、アクセスの帯域については、より性能の高い記憶領域を計算機に提供する。記憶装置３０２では、AccessBandwidthHintを１〜５とすることで帯域が１Ｇｂｐｓの記憶領域を、AccessBandwidthHintを６〜８とすることで帯域が２Ｇｂｐｓの記憶領域を、AccessBandwidthHintを９〜１０とすることで帯域が１０Ｇｂｐｓの記憶領域を作成できる。記憶装置では、作成した記憶領域を括り付けるＦＣインタフェースを変えることによって帯域の異なる記憶領域を計算機に提供する。
【００２１】
本実施例では、ヒントのレベルである値が異なっても装置特性情報が同じ性能値や性能を示すものである記憶領域を提供する例を含めているが、それぞれのヒントのレベルに対して装置特性情報をそれぞれ異なる値を設定してもよい。
●管理計算機
図１２は、実施例１における管理計算機の構成を示す図である。管理計算機６００は、プログラムの実行を司るＣＰＵ６５０と、プログラムやプログラムの実行に必要となるデータを格納するメモリ６６０と、プログラムの実行状態を表示するためのディスプレイ６８０と、管理者の指示を入力するためのキーボード６８２とマウス６８４と、第二のネットワークと接続するためのネットワークインタフェース６９０を設けている。
【００２２】
管理計算機６００のメモリ６６０は、記憶装置から装置特性情報と記憶領域情報を取得するための装置情報取得プログラム６０５と、記憶装置に記憶領域を作成するための記憶領域作成プログラム６１０と、記憶装置が追加された場合に記憶領域を評価するための記憶領域評価プログラム６２２と、記憶領域評価プログラム６２２の評価結果に基づき記憶領域を記憶装置から記憶装置に移動するための記憶領域移動プログラム６２４とを有している。また、メモリ６６０には図示していないが、記憶装置から取得する装置特性情報や記憶領域情報、計算機から取得するボリューム管理テーブルも保持する。また、ボリューム移行プログラム630は、実施例２で説明する。
【００２３】
なお、プログラムは、管理計算機600内のROMや磁気ディスク等の不揮発性記憶媒体に記憶され、管理計算機の起動時にメモリ３６０にロードされて実行されるものとする。また、プログラムの処理を管理計算機内にハードウェア的に構成してもよい。
（２）記憶装置が実施する記憶領域割当処理の詳細
次に、記憶装置における記憶領域割当プログラム３３０の処理について説明する。図１３に、記憶領域割当プログラム３３０のフローチャートを示す。記憶領域割当プログラム３３０は、管理計算機６００から記憶領域割当要求を受け取ると(ステップ１３０１０)、記憶領域情報保持部３８２に保持されている記憶領域情報を更新する(ステップ１３０２０)。具体的には、未割当の記憶領域から要求された容量を切り出し、計算機に割当済みの記憶領域とする（ステップ１３０２５）。さらに、未使用のＦＣインタフェースから、AccessBandwidthHintの値に対応する未使用のＦＣインタフェースを検索し、その番号を記憶領域情報に登録する。そして、受け取ったヒントの値を記憶領域情報に登録する。ステップ１３０２５の後、記憶領域情報保持部３８２に保持している記憶領域情報が更新されたことを通知する(ステップ１３０３０)。この通知先は、記憶領域制御モジュール３７０と、管理計算機６００である。当該通知により、記憶領域制御モジュール３７０は、記憶領域情報を参照し、作成された記憶領域を割り当てられたＦＣインタフェースに接続する。また、当該通知により、管理計算機６００は、記憶領域割当が完了したことを把握する。
【００２４】
図５に記憶領域情報の例を示す。図５（a）では、記憶領域３４１２がＦＣインタフェース３７１４に割当済みで、容量が２００ＧＢ、帯域が２Ｇｂｐｓであることを示している。ボリューム割当時に受け取ったヒントは、AccessBandwidthHintが「１０」、StorageCostHintが「０」、DataAvailabilityHintが「１０」であることがわかる。
（３）管理計算機６００が実施する処理の概要
本実施例において管理計算機６００が実施する処理の概要について説明する。本実施例において、管理計算機６００は、次のような手順で処理を実施する。 
まず、記憶装置３０１から装置情報の取得する処理を行い、記憶装置３０１に記憶領域を作成を指示する処理を行う。そして、新しく設置された記憶装置３０２を検出する処理を実施し、最後に、記憶領域を再評価して移動を指示する処理を行う。
【００２５】
上記の各処理を実現するのは、以下の三つのプログラムである。つまり、記憶装置を検出して情報を取得する処理である装置情報取得プログラム６０５と、記憶装置に記憶領域を作成するよう指示する記憶領域作成プログラム６１０と、記憶装置に作成した記憶領域を再評価する処理である記憶領域評価プログラム６２２である。これらのプログラムのフローについて、説明する。
（３−１）装置情報の取得処理
図１４に、管理計算機６００が実施する装置情報取得プログラム６０５のフローチャートを示す。まず、管理計算機６００は、第二のネットワーク５００に接続されている記憶装置を検出して、装置特性情報を取得する(ステップ１４０１０)。具体的には、第二のネットワーク５００に対して一定時間間隔で装置特性情報取得要求を配信し、装置特性情報取得要求に記憶装置が応答して、装置特性情報を返信すると、管理計算機６００は、記憶装置を検出したことになる。返信された装置特性情報はメモリ６６０に保持し、以後、記憶領域の作成処理の際に、どの記憶装置に記憶領域を作成するかの判断に使用する。ステップ１４０１０の後、管理計算機６００は、記憶領域情報を取得する(ステップ１４０２０)。具体的には、検出した記憶装置に対して一定時間間隔で記憶領域情報取得要求を発行し、返信された記憶領域情報をメモリ６６０に保持する。
【００２６】
本実施例では、まず記憶装置３０１しか接続していない場合について説明する。管理計算機６００が装置情報取得プログラム６０５を実行すると、記憶装置３０１から、装置特性情報３２６を受信する。
（３−２）記憶領域の作成処理
●記憶領域作成プログラム６１０とそのプログラムを適用した具体例その１
図１５に、管理計算機６００が実施する記憶領域作成プログラム６１０のフローチャートを示す。図１５の処理の具体例を図５、図６及び図８と共に説明する。管理計算機６００のCPUがメモリ６６６に格納されている記憶領域作成プログラム６１０を実行する。
【００２７】
はじめに、管理計算機６００は、記憶領域割当要求を作成する(ステップ１５０１０)。具体的には、管理者が、ディスプレイやキーボードを用いて、記憶領域作成対象の記憶装置と、記憶領域を利用する計算機と、記憶領域割当要求パラメータとを入力する。
【００２８】
入力画面の例を図８に示す。管理計算機６００のディスプレイ６８０に、図８(a)に示すような記憶領域作成のための設定画面８００が表示する。設定画面８００には、六つの入力フィールド（８１０，８１２，８１８，８２０，８２２，８２４）がある。管理者は、記憶領域へのデータの読みだしや書込みが可能な計算機を計算機入力フィールド８１０に、希望する記憶領域の容量を容量入力フィールド８１２に、希望する記憶装置の番号を記憶装置入力８１８、希望するヒントをヒント８２０、８２２、８２４に、記憶領域割当要求パラメータとして、それぞれのの入力フィールドに入力し、作成ボタン８３０を押す。この操作により、入力された記憶領域割当要求パラメータをもとに記憶領域割り当て要求を作成する。
【００２９】
たとえば、「高速・コスト無視・高可用性」を特徴とする記憶領域を作成するために、ここでは、計算機入力フィールド８１０に「１００」、容量入力フィールド８１２に「２００（ＧＢ）」、記憶装置入力フィールド８１８に「３０１」、AccessBandwidthHint入力フィールド８２０に「１０」、StorageCostHint入力フィールド８２２に「０」、DataAvailabilityHint入力フィールド８２４に「１０」を入力し、作成ボタン８３０を押す。この操作により、入力された記憶領域割当要求パラメータをもとに記憶領域割り当て要求を作成する。図１５に戻り、記憶領域作成プログラム６１０の処理について説明する。
【００３０】
次に、管理計算機６００は、前記ステップ１５０１０で作成された記憶領域割り当て要求により指定された記憶装置に対して、前記ステップ１５０１０で作成された記憶領域割当要求を送信する(ステップ１５０２０)。
【００３１】
ステップ１５０２０の後、記憶装置３０１では、管理計算機６００から記憶領域割当要求を受け、前述した記憶領域割当プログラム３３０を実行する。具体的には、割り当て要求により２００ＧＢの記憶領域３４１２を切り出し、AccessBandwidthHintが「１０」であることから、装置特性情報３２６を参照し、未使用である２ＧｂｐｓのＦＣインタフェース３７１４に割り当て、記憶領域情報３８３を図５(a)のように更新する。ここで作成した記憶領域は、帯域は２Ｇｂｐｓで、ビット単価は１¢／ＭＢ、可用性は９９．９％である。また、ヒントのレベルが、StorageCostHintが「０」で、AccessBandwidthHintとDataAvailabilityHintが「１０」であることは、コストにいとめをつけず（コストを重要視せず）、帯域と可用性が高い（帯域と可用性を重要視した）記憶領域であることを意味している。
【００３２】
そして、管理計算機６００は、記憶装置から記憶領域割当完了通知を受信したら、記憶領域を作成した記憶装置の更新された記憶領域情報３８３を取得する(ステップ１５０３０)。
【００３３】
最後に、管理計算機６００は、前記ステップ１５０１０で指定された計算機に対して、記憶領域作成が完了したのでボリューム管理テーブルを更新するよう要求する(ステップ１５０４０)。例えば、計算機１００に対して、ボリューム管理テーブル１１５を図6(a)に示すように更新するよう指示する。指示を受けた計算機１００は、ボリューム管理テーブル１１５を更新することで、計算機１００は、「Ｃ」ドライブとして、記憶装置３０１の記憶領域３４１２をＦＣインタフェース３７１４を介して使用することができる。以上が記憶領域作成プログラム６１０である。
【００３４】
なお、前記図８(a)に示すような記憶領域作成のための設定画面８００は、図８(b)に示すような記憶領域作成のための設定画面８０１であってもよい。設定画面８００と８０１の違いについて説明する。設定画面８００では、各管理者は、ある計算機に記憶領域を割り当てるために、記憶装置や３つのヒントを含む六つの入力フィールド全てを指定する必要がある。しかしこれは、各管理者に記憶領域作成先の記憶装置やヒントについての高度または膨大な知識を要求するものである。また、複数の記憶装置や複数の計算機の管理を複数の管理者が分担で行っている場合、各管理者が各自の基準で記憶装置やヒントを指定するため、システム全体での記憶領域作成の基準が統一されない恐れがある。設定画面８０１を使う場合は、システム構成を熟知した管理者が、使用頻度の高い記憶領域作成先の記憶装置とヒントの値の組である「ボリュームポリシー」をあらかじめ定義しておき、管理計算機６００に格納しておく。各管理者は、計算機入力フィールド８１０と、容量入力フィールド８１２と、ボリュームポリシー選択フィールド８１６の三つの入力フィールドを指定する。前記三つの入力フィールドを指定されたとき、管理計算機６００は、あらかじめ格納されている「ボリュームポリシー」と照合することで、前記設定画面８００と等しい六つの入力を得ることができる。設定画面８０１により、管理者は、記憶領域作成の入力負担を軽減することができる。
【００３５】
また、ボリュームポリシーの例として、「低コスト重視」や「アクセス帯域のみ重視」があげられる。「低コスト重視」のボリュームポリシーの例としては、「StorageCostHint」が１０であり、他のヒントが、０と定義されて、ある記憶装置が指定されたボリュームポリシーとして管理計算機６００のメモリに保持されている。「アクセス帯域のみ重視」のボリュームポリシーの例では、「AccessBandwidthHint」が「１０」であり、他のヒントが「０」と定義されており、記憶装置が指定されたボリュームポリシーとして同様にメモリ660に保持されている。
●記憶領域作成プログラム６１０適用の具体例その２
次に、記憶領域作成プログラム６１０の具体例として、記憶装置３０１にさらに別の記憶領域を作成する処理について説明する。
【００３６】
同様に、図８に示すような記憶領域の作成するための設定画面８００で、計算機入力フィールド８１０に「１００」、記憶装置容量入力フィールド８１２に「２００（ＧＢ）」、AccessBandwidthHint入力フィールド８２０に「１」、StorageCostHint入力フィールド８２２に「１０」、DataAvailabilityHint入力フィールド８２４に「０」を入力して作成ボタン８３０を押すことにより、管理計算機が、入力されたパラメータにより記憶領域割り当て要求を作成し、記憶領域割り当て要求を記憶装置３０１に送信する。
【００３７】
記憶装置３０１は、記憶領域割当要求を受け取ると、要求された２００ＧＢの記憶領域を切り出し、AccessBandwidthHintが「１」であることから、未使用である１ＧｂｐｓのＦＣインタフェース３７１１を割り当てるように、記憶領域情報３８３を図５(b)のように更新する。ここで作成した記憶領域は、帯域は１Ｇｂｐｓで、ビット単価は１¢／ＭＢ、可用性は９９．９％である。また、StorageCostHintが「１０」で、AccessBandwidthHintが「１」であることから、帯域よりもコストを優先していることがわかる。また、DataAvailabilityHintが「０」であることから、可用性についても重要度が低いことがわかる。
【００３８】
記憶領域の割当が完了すると、管理計算機６００は、計算機１００に対して、ボリューム管理テーブル１１５を図6(b)に示すように更新するよう指示する。ボリューム管理テーブル１１５を更新することで、計算機１００は、「Ｄ」ドライブとして、記憶装置３０１の記憶領域３４１１をＦＣインタフェース３７１１を介して使用することができる。
（３−３）新記憶装置の検出処理
次に、既に作成した二つの記憶領域が記憶装置３０１にある状態で、記憶装置３０２を計算機システムに追加した場合の管理計算機６００の処理について説明する。本実施例で記憶装置３０２を計算機システムに追加する場合には、ＦＣインタフェース３７２１〜３７２９を第一のネットワークに、ネットワークインタフェース３９０を第二のネットワークに接続する。
【００３９】
管理計算機６００は、前記装置情報取得プログラム６０５のステップ１４０１０を一定時間間隔で実行していることから、記憶装置３０２を計算機システムに追加された段階で、管理計算機６００のネットワークインタフェース６９０と第二のネットワーク５００を介して接続する記憶装置３０２を検出し、記憶装置３０２の装置特性情報と、記憶領域情報を取得することが可能である。管理計算機６００は、取得した装置特性情報をメモリ６６０に保持し、以後、記憶領域の作成処理の際に、どの記憶装置に記憶領域を作成するかの判断に使用する。
（３−４）記憶領域を再評価して移動する処理
管理計算機６００は、新しい記憶装置を検出した後、すでに割り当て済みの記憶領域の記憶領域評価プログラム６２２を開始する。再評価とは、新しく追加された記憶装置の装置特性情報と、他の記憶装置の記憶領域情報を参照し、よりヒントに合致する記憶領域を提供できる記憶装置がどれか判断することである。提供可能な場合には、実際に新しく追加された記憶装置にヒント情報を用いて記憶領域を作成し、記憶領域に保持されているデータを移動することで、計算機に対して、よりヒントに合致する記憶領域を提供することができる。以下、はじめに管理計算機６００が実行する記憶領域評価プログラム６２２を説明し、その後本実施例における記憶領域評価プログラム６２２適用の具体例について詳述する。
●記憶領域評価プログラム６２２のフローの説明
図１６に、管理計算機６００が実施する記憶領域評価プログラム６２２のフローチャートを示す。 
管理計算機６００は、前記装置情報取得プログラム６０５を用いて最新の装置情報を取得する。
【００４０】
取得した全記憶装置の全記憶領域情報のエントリに対して、ステップ１６０３０からステップ１６１３０までの処理を実施する(ステップ１６０２０)。
【００４１】
まず、未処理の記憶領域情報エントリを選択する(ステップ１６０３０)。
【００４２】
そして、選択された記憶領域情報エントリの全ヒント情報に対して、ステップ１６０５０からステップ１６０９０までの処理を実施する(ステップ１６０４０)。
【００４３】
まず、未処理のヒント情報を選択する(ステップ１６０５０)。
【００４４】
選択したヒント情報について、現在選択されている記憶領域情報エントリの当該ヒント情報の値をもとに、全記憶装置のヒント情報の値に対応する装置特性情報を取得する(ステップ１６０６０)。具体的には、現在選択されている記憶領域情報エントリの当該ヒント情報とそのヒント情報の値の組をキーとして、全記憶装置の装置特性情報を検索し、当該ヒント情報の値で提供される装置特性情報を取得すればよい。
【００４５】
その後、ステップ１６０６０において取得した装置特性情報を比較し、現在選択されている記憶領域情報エントリの属する記憶装置よりも、高い性能を備える記憶領域を提供する記憶装置があるかどうかを判断する(ステップ１６０７０)。
【００４６】
ステップ１６０７０において、もし高い性能を備える記憶領域を提供する記憶装置が存在する場合は、現在記憶領域が存在する記憶装置から、高い性能を備える記憶領域を提供する記憶装置へ、記憶領域を移動させた方が、記憶領域の性能は向上することが期待される。よって、高い性能を備える記憶領域を提供する記憶装置を移動先候補とする(ステップ１６０８０)。ここで、複数の記憶装置が高い性能を備える記憶領域を提供する場合は、最も高い性能を備える記憶領域を提供する記憶装置のみ移動先候補としてもよいし、あるいは、全ての記憶装置を移動先候補としてもよい。また、最も高い性能を備える記憶領域を提供する記憶装置が複数台存在する場合についても、管理計算機６００が任意に移動先候補となる記憶装置を１台選択してもよいし、あるいは、全ての記憶装置を移動先候補としてもよい。
【００４７】
ステップ１６０７０において、より高い性能を備える記憶領域を提供する記憶装置が存在しない場合は、現在選択中のヒント情報に関しては移動先候補が無いということになる。最後に、選択したヒントを処理済にし(ステップ１６０９０)、ステップ１６０４０に戻る
前記ステップ１６０４０の繰り返し処理で全ヒント情報に対して処理が実施された後、管理計算機６００は、記憶領域移動先の記憶装置を決定する(ステップ１６１００)。ここで、記憶領域移動先の記憶装置を決定する方法としては、前記ステップ１６０４０の繰り返し処理で移動先候補となった全ての記憶装置から、管理計算機６００が任意の記憶装置を選択してもよい。あるいは、移動先候補となった全ての記憶装置の情報をディスプレイ６８０に出力し、管理者に選択させてもよい。あるいは、あらかじめ管理者が定義して、ヒント情報に重み付けをし、ある特定ヒントで移動先候補となった記憶装置が優先的に選択されるようにしてもよい。また、決定した移動先の記憶装置が、あるヒント情報の観点では性能向上するが、別のヒント情報の観点では性能が向上しないという場合が存在する。例えば、アクセス帯域は向上するが、可用性が低下するとうような事例である。この場合にも、記憶領域を移動してもよいかの確認のためのダイアログを表示して管理者に確認を求めてもよいし、あるいは、管理者に確認を求めずに次ステップに移ってもよい。
【００４８】
ステップ１６１００で記憶領域移動先の記憶装置を決定した後、管理計算機６００は、記憶領域を移動する(ステップ６２４)。
【００４９】
ステップ６２４の後、選択した記憶領域情報エントリを処理済にし(ステップ１６１３０)、ステップ１６０２０に戻る。
【００５０】
以上が記憶領域評価プログラム６２２である。
●記憶領域移動プログラム６２４のフローの説明
図１７に、管理計算機６００が、記憶領域評価プログラム６２２のステップ１６１００の後において実施する、記憶領域移動プログラム６２４のフローチャートを示す。
【００５１】
まず、管理計算機６００は、移動元の記憶領域が、記憶領域受入プログラムを利用しているかどうか判断する(ステップ１７０１０)。記憶領域受入プログラムについては、実施例２で後述するので、本実施例では、ここはＮＯとなる。
【００５２】
次に、移動元の記憶領域が、計算機に登録されているかどうか判断する(ステップ１７０２０)。具体的には、第二のネットワークにボリューム管理テーブル取得要求を配信し、返信のあった全ての計算機のボリューム管理テーブルの全てのボリュームエントリのうち、移動対象の記憶領域の記憶領域番号と一致する記憶領域番号を持つエントリを抽出すればよい。
【００５３】
ステップ１７０２０で利用中の計算機があった場合、管理計算機６００は、移動対象の記憶領域を登録していた全ての計算機に指示して、当該計算機のボリューム管理テーブルに存在する、移動対象の記憶領域が移動中であると変更するよう指示する(ステップ１７０３０)。具体的には、当該計算機のボリューム管理テーブル115に存在する、移動対象の記憶領域のエントリの、移動中フラグを「０」から「１」に変更する。計算機は、記憶領域をアクセスする度にこのボリューム管理テーブル１１５の移動中フラグを参照することで、記憶領域の移動処理中のアクセスを抑止することができる。
【００５４】
ステップ１７０１０で移動元の記憶領域が記憶領域受入プログラムを利用していた場合、及び、ステップ１７０２０で、移動元の記憶領域が計算機に登録されていない場合、及び、ステップ１７０３０の後に、管理計算機６００は、記憶領域移動先となった記憶装置に対して、記憶領域を新規作成する。本ステップは、前記記憶領域作成プログラム６１０に同じであるため、詳細説明を省略する。
【００５５】
記憶領域移動先の記憶装置に記憶領域を新規作成した後、管理計算機６００は、記憶領域移動実行手段７００に対して、記憶領域のデータ移動を指示する(ステップ１７０４０)。記憶領域とは、一般的に、データを格納する５１２バイトを単位とするブロックの集合体である。よって、管理計算機６００は、記憶領域移動実行手段７００に対する指示パラメータとして、移動元の記憶装置と記憶領域番号、移動先の記憶装置と記憶領域番号を記憶領域移動実行手段７００に渡すだけでよい。なお、記憶領域移動実行手段７００は、受け取ったパラメータを元に、移動元の記憶装置の記憶領域の最初のブロックから最後のブロックまでを、移動先の記憶装置と記憶領域に複写する。本実施例における記憶領域移動実行手段は、例えば、管理計算機６００とIPネットワーク５００を介して指示パラメータを受け取る独立の計算機上で実行されるプログラムで、プログラムの実行によりファイバチャネル200を介して記憶領域間の複写を行う。
【００５６】
そして、管理計算機６００は、ステップ１７０１０と同様に、移動対象の記憶領域を利用中の計算機があるかどうかを探し(ステップ１７０５０)、利用中の計算機があった場合は、当該計算機に対して、ボリューム管理テーブルを更新するよう指示する(ステップ１７０６０)。具体的には、移動先の記憶装置の記憶領域情報から、今回移動先記憶領域となった記憶領域のＦＣインタフェース番号の値と記憶領域番号の値を抽出し、それらの値で移動中フラグが「１」であるドライブレターのエントリの内容を書き換える。そして、当該エントリの移動中フラグを「１」から「０」に戻す。
【００５７】
最後に、管理計算機６００は、移動元記憶装置の記憶領域を開放する(ステップ１７０７０)。具体的には、移動元記憶装置に対して、記憶領域情報から、移動元記憶領域エントリを削除するよう指示する。
【００５８】
以上が記憶領域移動プログラム６２４である。
●記憶領域評価プログラム６２２適用の具体例
記憶領域評価プログラム６２２適用の具体例を説明するため、本実施例において、記憶装置３０１に記憶領域３４１１と３４１２がある状態で、記憶装置３０２を計算機システムに追加した場合の処理について説明する。記憶装置３０２を接続したことにより、管理計算機６００には、装置特性情報３２６と３２７があるものとする。また、記憶装置３０２には、初期状態として作成済みの記憶領域はないものとする。
【００５９】
まず、ステップ６０５により、管理計算機６００は、第二のネットワーク５００に接続されている記憶装置それぞれから、装置情報を取得する。本実施例では、記憶装置３０１からは、図４(ａ)に示す装置特性情報３２６と、図５(b)に示す記憶領域情報３８３が取得する。また、記憶装置３０２は、図４(ｂ)に示す装置特性情報３２７と、まだ記憶領域をひとつも持っていないので、図７(a)に示す空の記憶領域情報３８４が取得できる。
【００６０】
管理計算機６００は、次に、ステップ１６０２０からステップ１６１３０で実施される、記憶領域情報に記載された記憶領域の評価を行う。本実施例では二つの記憶領域情報３８３と３８４があるが、記憶装置３０２から取得した記憶領域情報３８４は空であるので、記憶装置３０１から取得した記憶領域情報３８３の記憶領域３４１２と３４１１を処理する。
【００６１】
管理計算機６００は、まず、記憶領域情報３８３の一行目である記憶領域３４１２の再評価を開始する。はじめに、記憶領域３４１２のヒント情報AccessBandwidthHintの値を参照する。AccessBandwidthHintの値は「１０」である。そして、装置特性情報３２６と装置特性情報３２７のAccessBandwidthHintの値が「１０」の時の帯域の値を参照する（ステップ１６０６０）。すると、記憶装置３０１では帯域が２Ｇｂｐｓであるが、記憶装置３０２では帯域が１０Ｇｂｐｓに高速化されるため、高性能の記憶領域が提供できるので（ステップ１６０７０）、移動先候補として記憶装置３０２を特定する。そして、選択したヒント情報を処理済にし（ステップ１６０９０）、次のヒント情報により記憶領域の評価を行う（ステップ１６０４０）。
【００６２】
次に、記憶領域３４１２のヒント情報StorageCostHintの値を参照する。StorageCostHintの値は「０」であるので再評価対象とはしない。
【００６３】
最後に、記憶領域３４１２のヒント情報DataAvailabilityHintの値を参照する。DataAvailabilityHintの値は「１０」である。そして、装置特性情報３２６と装置特性情報３２７のDataAvailabilityHintの値が「１０」の時の可用性の値を参照する。すると、記憶装置３０１では可用性が「９９．９％」であるが、記憶装置３０２では可用性が「９９．９９９％」であり、記憶装置３０２に記憶領域を移動すれば、可用性を向上できるため、高性能の記憶領域が提供できるので（ステップ１６０６０）、移動先候補として記憶装置３０２を特定する。そして、選択したヒント情報を処理済にし（ステップ１６０９０）記憶領域情報の全ヒント情報を参照したので、記憶領域の評価を終了する。
【００６４】
以上の評価により、記憶領域３４１２は、記憶装置３０１から記憶装置３０２に移すことにより、帯域と可用性を向上することができることが判断する。
【００６５】
よって、記憶領域評価プログラム６２２は、ステップ１６１００に進み、記憶装置３０２を記憶領域移動先の記憶装置と決定し、ステップ６２４、つまり、記憶領域移動プログラム６２４で、記憶領域の移動を開始する。  記憶領域３４１２の移動にあたって、管理計算機６００は、記憶装置３０１及び記憶装置３０２の記憶領域情報から、記憶領域３４１２が記憶領域受入プログラムを利用していないと判断する。また、計算機１００から、ボリューム管理テーブルを取得し、計算機１００が記憶領域３４１２を利用中であると判断する。そこで、管理計算機６００は、ボリューム管理テーブル１１５の記憶領域３４１２の行の移動中フラグを「１」に設定するよう指示し、記憶領域３４１２が移動中であるとする（図６(c)）。
【００６６】
次に、管理計算機６００は、記憶領域３４１２に割り当てられたヒントと容量から、記憶領域割当要求を作成し、記憶装置３０２に発行する。記憶装置３０２の記憶領域割当プログラム３３０は、記憶領域割当要求を受け取ると、要求された２００ＧＢの記憶領域３４２９を用意し、AccessBandwidthHintが「１０」であることから、未使用である１０ＧｂｐｓのＦＣインタフェース３７２７に割り当てるように、記憶領域情報３８４を図７(b)のように更新する。ここで作成した記憶領域は、帯域は１０Ｇｂｐｓで、ビット単価は２¢／ＭＢ、可用性は９９．９９９％である。記憶装置３０２で、記憶領域３４２９の作成が完了すると、管理計算機６００は、記憶領域移動実行手段７００に対して、記憶装置３０１の記憶領域３４１２内のデータを、記憶装置３０２の記憶領域３４２９内に移動するように指示する。記憶領域３４２９への複写が完了すると、管理計算機６００は、計算機１００に対して、ボリューム管理テーブル１１５を図６(ｄ)に示すように更新するよう指示する（移動中フラグも「０」に戻す）。これにより、計算機１００の「Ｃ」ドライブは、記憶装置３０２のＦＣインタフェース３７２７に接続された記憶領域３４２９になる。記憶領域３４２９には、記憶領域移動実行手段７００によって、記憶領域３４１２のデータが移動されているので、計算機１００は、記憶領域３４１２となんら変わらずデータにアクセスすることができる。
【００６７】
最後に、管理計算機６００は、記憶装置３０１に対して、記憶領域３４１２を未割当とするように記憶領域開放要求を発行する。記憶装置３０１は、記憶領域３４１２の記憶領域開放要求を受け取ると、記憶領域情報３８３を図５(c)のように更新する。これにより、記憶領域３４１２とＦＣインタフェース３７１４が開放される。
【００６８】
次に、管理計算機６００は、ステップ１６０２０に戻り、図６（ｂ）に示されている記憶領域情報３８３の二行目である記憶領域３４１１の再評価を開始する（ステップ16030ないし16040）。
【００６９】
まず、記憶領域３４１１のヒント情報AccessBandwidthHintの値を参照する。AccessBandwidthHintの値は「１」である。そして、装置特性情報３２６と装置特性情報３２７のAccessBandwidthHintの値が「１」の時の帯域の値を参照する（ステップ１６０６０）。すると、どちらの記憶装置においても１Ｇｂｐｓであることがわかる（ステップ１６０７０）。このため、記憶装置３０２は移動先候補とはならない。ヒント情報を処理済とし（ステップ16090）、次のヒントの値を参照する（ステップ16020）。
【００７０】
次に、記憶領域３４１１のヒント情報StorageCostHintの値を参照する。StorageCostHintの値は「１０」である。装置特性情報３２６と装置特性情報３２７のStorageCostHintの値が「１０」の時のビット単価の値を参照する。すると、記憶装置３０１ではビット単価は２¢／ＭＢで、記憶装置３０２ではビット単価は１¢／ＭＢであることがわかる。つまり、記憶装置３０２に移動することで、ビット単価が高くなってしまうため、ここでも、記憶装置３０２は移動先候補とはならない。  最後に、記憶領域３４１１のヒント情報DataAvailabilityHintの値を参照する。DataAvailabilityHintの値は「０」であるので再評価の対象とはしない。
【００７１】
以上の評価により、記憶領域３４１１は、移動先候補がないため、記憶装置３０１から移動するメリットがないことが判定される。よって、管理計算機６００は、記憶領域３４１１を移動せずに、ほかに選択する記憶領域情報エントリがないため、記憶領域評価プログラムの処理を終了する。
【００７２】
なお、本実施例では、記憶装置３０２には記憶領域がない状態を初期状態として説明したが、記憶装置３０２に記憶領域があった場合でも、上記処理にしたがって処理することで、記憶装置３０２内の記憶領域も再評価の対象となり、装置特性情報とヒント情報により、適切に記憶領域を移動する。
【００７３】
また、本実施例では、新しい記憶装置が追加され、装置情報取得プログラム６０５が新しい記憶装置を検出した場合に再評価を行うように示したが、記憶装置が新たに追加されなくとも、既存の記憶装置の装置情報に変化があった場合に再評価を行ってもよい。たとえば、記憶装置を購入してから時間がたち、計算機の原価償却が進んだ場合には、ビット単価を変更することができる。このとき、記憶装置で自動的に、ないしは、管理者によって、装置特性情報を変更する。装置情報取得プログラム６０５は、その変化を捕らえて記憶領域評価プログラム６２２を実行することにより、StorageCostHintを重要視する記憶領域を、よりビット単価の低い記憶領域に移動することができる。
【００７４】
さらに、一定間隔やユーザの入力による指示で、管理計算機６００が、装置情報取得プログラム605を実行し、装置情報を取得してもよい。
【００７５】
また、本実施例では、記憶装置が予め装置特性情報をもっていることを前提に説明した。しかし、記憶装置が装置特性情報を持っていない場合には、管理者が管理計算機で当該記憶装置の装置特性情報を作成してもよい。この場合、管理者が装置特性情報を作成（もしくは変更）した場合に、記憶領域評価プログラム６２２を実行することで、本実施例に従って、記憶領域の再評価を行うことができる。
また、本実施例では、記憶装置３０１と３０２から同じフォーマットで表記された図４に示すような対応表が取得できるとした。しかし、実際には、記憶装置のベンダが異なるとフォーマットが異なることが考えられる。その場合には、管理計算機に変換プログラムを用意し、対応表のフォーマットを変換することで、本実施例記載の処理が可能となる。
また、実施例での記憶領域評価プログラムのステップ１６０２０では、管理計算機とネットワークを介して接続している全ての記憶装置の記憶領域情報について本プログラムを実行するとしているが、少なくとも一つの記憶装置が保持する記憶領域情報のヒント情報に対して処理を行ってもよい。
【実施例２】
【００７６】
（１）システム構成
図９に実施例２のシステム構成を示す。実施例２では、記憶装置３０１を有する計算機システムに、記憶装置３０３を追加する場合を説明する。
【００７７】
本実施例と実施例１との違いについて説明する。
第一の違いは、本実施例では、記憶装置３０３を追加する場合は、記憶装置３０１を一度第一のネットワーク２００から切り離し、記憶装置３０３に接続することである。
第二の違いは、実施例１では、記憶領域移動実行手段７００を第一のネットワーク２００に接続していたのに対して、本実施例では、記憶領域移動実行手段７００を記憶装置３０３内に設けていることである。
第三の違いは、図１２に示す管理計算機６００の構成である。本実施例では、実施例１の構成に加えて、ボリューム移行プログラム６３０をさらに有している。
第四の違いは、本実施例における、追加する記憶装置３０３の構成である。以下で詳しく説明する。
【００７８】
記憶装置３０３は、記憶装置３０１を接続するためのＦＣインタフェース３７３１〜３７３６を有する。なお、ＦＣインタフェース３７３１〜３７３３は１Ｇｂｐｓで、ＦＣインタフェース３７３４〜３７３６は２Ｇｂｐｓとする。
【００７９】
さらに、記憶装置３０３は、ＦＣインタフェース３７３１〜３７３６から記憶装置３０３が認識可能な記憶装置３０１の記憶領域を、あたかも記憶装置３０３の記憶領域として計算機１００に提供することができる機能を有する。このような機能は、記憶装置３０３の記憶領域制御モジュール３８０が、図１０に示すような記憶領域情報３８５を有することにより可能である。図１０に示す記憶領域情報３８５は、実施例１の記憶領域情報に加えて、記憶領域が格納されている外部記憶装置（本実施例では記憶装置３０１）のＦＣインタフェース番号と記憶領域番号を記憶領域情報と対応付けて保持できるようにしている。
さらに、記憶装置３０３は、計算機１００と接続する第一のネットワーク２００と接続するために、３つのＦＣインタフェース３７３７〜３７３９を有する。ＦＣインタフェース３７３７〜３７３９は、１０ＧｂｐｓのＦＣインタフェースである。 
さらに、記憶装置３０３は、メモリ３６０に、記憶領域受入プログラム３４０を有する。
以上が、本実施例２と実施例１との違いである。
【００８０】
なお、実施例２において、図９に示す装置特性情報保持部に保持される装置特性情報は、記憶装置３０１の装置特性情報が図４(a)、記憶装置３０３の装置特性情報が図４（ｂ）、という対応関係にあるものとする。また、記憶装置３０３が有する他の構成のうち、実施例２での言及しないものは、実施例１の図２で既に説明したものと同様であるとする。
（２）記憶装置が実施する記憶領域割当プログラム
本実施例で記憶装置が実施する記憶領域割当プログラムは、実施例１と変更がない。よって説明を省略する。
（３）管理計算機６００が実施する処理の詳細
本実施例において管理計算機６００が実施する処理の詳細について説明する。本実施例において、管理計算機６００は、次のような手順で処理を実施する。まず記憶装置３０１から装置情報の取得する処理を行い、記憶装置３０１に記憶領域を作成する処理を行う。そして、新しく設置された記憶装置３０３と記憶装置３０１を接続する処理を行う。さらに、記憶装置３０３を検出する処理を実施し、最後に、記憶領域を再評価して移動する処理を行う。
（３−１）装置情報の取得処理
本実施例で、管理計算機６００が、記憶装置の情報を取得するために用いる、装置情報取得プログラム６０５は、実施例１に同じである。よって説明を省略する。
【００８１】
本実施例でも、実施例１と同様に、まずはじめは記憶装置３０１しか接続していない状態を考える。よって、管理計算機６００が装置情報取得プログラム６０５を実行すると、記憶装置３０１から、装置特性情報３２６が送信される。
（３−２）記憶領域の作成処理
本実施例で、管理計算機６００が、記憶領域を作成するために用いる、記憶領域作成プログラム６１０は、実施例１に同じである。よって説明を省略する。
【００８２】
本実施例でも、実施例１と同様に、管理計算機６００により、記憶装置３０１に対して、記憶領域３４１１と記憶領域３４１２が作成される。
（３−３）記憶装置３０１と記憶装置３０３の接続処理
先にも述べたように、本実施例では、記憶装置３０３を追加する場合は、記憶装置３０１と記憶装置３０３の接続処理が必要になる。この接続処理は、以下の手順で実施される。
【００８３】
まず、記憶装置３０１と記憶装置３０３のインタフェースの接続を変更し、記憶装置３０３から、記憶装置３０１の装置情報や記憶領域が取得できるようにする。
【００８４】
次に、記憶装置３０３に設けた記憶領域受入プログラム３４０を実行し、記憶装置３０１の記憶領域を、あたかも記憶装置３０３の記憶領域として計算機１００が利用できるようにする。
【００８５】
最後に、管理計算機６００に設けたボリューム移行プログラム６３０を実行し、計算機１００が、記憶装置３０３の記憶領域を利用するように構成変更する。
【００８６】
以下、各手順について詳細を説明する。
●記憶装置のインタフェースの接続変更
本実施例では、記憶装置３０１を一度第一のネットワーク２００から切り離し、記憶装置３０３に接続する。記憶装置３０１のＦＣインタフェース３７１１〜３７１３は、記憶装置３０３のＦＣインタフェース３７３１〜３７３３に接続される。記憶装置３０１のＦＣインタフェース３７１４〜３７１６は、記憶装置３０３のＦＣインタフェース３７３４〜３７３６に接続される。すなわち、帯域が１ＧｂｐｓのＦＣインタフェースどうし、帯域が２ＧｂｐｓのＦＣインタフェースどうしのように、同じ帯域どうしのＦＣインタフェースを互いに接続する。なお、異なる帯域を持つＦＣインタフェースを接続してもよい、その場合は、帯域の値が小さい方の帯域で動作が行われる。さらに、ＦＣインタフェースどうしを直接接続するのではなく、第一のネットワーク２００を介して互いに接続されてもよい。
【００８７】
さらに、記憶装置３０３のネットワークインタフェース３９０は、第二のネットワーク５００に接続される。
●記憶領域受入プログラム３４０の実行
まず、記憶領域受入プログラム３４０のフローについて説明する。
【００８８】
図１８に、記憶装置３０３が実施する記憶領域受入プログラム３４０のフローを示す。
【００８９】
まず、記憶装置３０３は、一定間隔でＦＣインタフェース３７３１〜３７３６を監視し、新たな記憶装置が接続されていないかをチェックする(ステップ１８０１０)。
【００９０】
ステップ１８０１０において、新たな記憶装置が接続されたことを検出したとき、記憶装置３０３は、第二のネットワーク５００を介して、接続された記憶装置に対して、記憶領域情報を要求し、当該装置の記憶領域情報を取得する(ステップ１８０２０)。
【００９１】
最後に、記憶装置３０３は、前記ステップ１８０２０で取得した記憶領域情報をもとに、自記憶装置、つまり、記憶装置３０３の記憶領域情報を更新する(ステップ１８０３０)。具体的には、以下で後述する。なお、この更新処理を行うにあたり、記憶装置３０３は、管理者に確認を求めてもよいが、本実施例では、管理者に確認を求めないもとのする。
【００９２】
以上が記憶領域受入プログラム３４０である。
【００９３】
次に、本記憶領域受入プログラム３４０の本実施例での適用について説明する。
【００９４】
記憶装置のインタフェースの接続変更が完了したのち、記憶装置３０３は、ステップ１８０１０により、一定間隔にＦＣインタフェース３７３１〜３７３６を監視し、記憶装置が接続されていないかをチェックする。
【００９５】
記憶装置３０１が接続されたことを確認すると、記憶装置３０３は、ステップ１８０２０により、記憶装置３０１から記憶領域情報３８３を取得する。
【００９６】
記憶装置３０１の記憶領域情報を取得した記憶装置３０３は、最後に、ステップ１８０３０により、自装置の記憶領域情報３８５を更新する。具体的には、記憶装置３０１の記憶領域３４１１と３４１２を、あたかも記憶装置３０３の記憶領域として計算機１００に提供することができるよう、記憶領域情報３８５に登録する。ステップ１８０３０によって更新された記憶領域情報３８５を図１０(a)に示す。図１０(a)のうち、記憶装置３０３が提供する記憶領域３４３１が、ＦＣインタフェース３７３７に接続されており、容量は２００ＧＢを示しているのは、図５(a)と同様である。図１０(a)では、さらに、記憶装置３０３の記憶領域の実体が、記憶装置３０３と接続された外部記憶装置にある場合に対応するため、外部記憶装置の情報を保持する。例えば記憶領域３４３１の場合、記憶領域の実体としては、ＦＣインタフェース番号３７１１に接続された外部記憶装置である記憶装置３０１の記憶領域番号３４１１の記憶領域を利用していることがわかる。また、同様に、記憶装置３０３が提供する記憶領域３４３２は、ＦＣインタフェース３７３８に接続されており、容量は２００ＧＢであり、さらに、記憶領域の実体としては、ＦＣインタフェース番号３７１４に接続された外部記憶装置である記憶装置３０１の記憶領域番号３４１２の記憶領域を利用していることがわかる。すなわち、記憶装置３０３が有する記憶領域情報３８５は、自装置における記憶領域番号、当該記憶領域の容量、当該記憶領域に接続するＦＣインターフェース番号とその帯域、当該記憶領域のヒント情報と、対応する外部記憶装置の記憶領域の記憶領域番号と外部記憶装置の記憶領域に接続しているFCインターフェース番号を有している。
●ボリューム移行プログラム６３０の実行
まず、ボリューム移行プログラム６３０のフローについて説明する。
【００９７】
図１９に、管理計算機６００が実施するボリューム移行プログラム６３０のフローを示す。  
まず、管理計算機６００は、装置情報取得プログラム６０５を実行し、記憶装置の記憶領域情報を取得する(ステップ６０５)。
【００９８】
次に、第二のネットワーク５００に計算機のボリューム管理テーブル取得要求を配信し、各計算機からボリューム管理テーブルを取得する(ステップ１９０２０)。
【００９９】
最後に、前記ステップ６０５とステップ１９０２０で取得した、記憶装置の記憶領域情報と、計算機のボリューム管理テーブルから、計算機にボリューム管理テーブルの更新を指示する(ステップ１９０３０)。本ステップの詳細は具体例で説明する。
【０１００】
以上がボリューム移行プログラム６３０である。
【０１０１】
次に、本ボリューム移行プログラム６３０の本実施例での適用について説明する。
【０１０２】
まず、管理計算機６００は、ステップ６０５で、記憶装置３０１と記憶装置３０３から記憶領域情報を取得する。具体的には、記憶装置３０１から、図５(b)に示す記憶領域情報３８３を取得し、記憶装置３０３から、図１０(a)に示す記憶領域情報３８５を取得する。
【０１０３】
次に、管理計算機６００は、ステップ１９０２０で、計算機１００からボリューム管理テーブルを取得する。具体的には、計算機１００から図6(b)に示すボリューム管理テーブル１１５を取得する。
【０１０４】
最後に、管理計算機６００は、ステップ１９０３０で、計算機１００に対して、ボリューム管理テーブル１１５の更新を指示する。具体的には、まず、記憶装置３０１の記憶領域情報とボリューム管理テーブル１１５に含まれるボリューム管理情報から、計算機１００が、記憶装置３０１の記憶領域３４１１と記憶領域３４１２を利用していたことを把握する。次に、記憶装置３０１と記憶装置３０３それぞれの記憶領域情報から、記憶装置３０１の記憶領域３４１１の内容が、記憶装置３０３から記憶領域３４３１として提供されていること、また、記憶装置３０１の記憶領域３４１２の内容が、記憶装置３０３から３４３２として提供されていることを把握する。そこで、管理計算機６００は、計算機１００に対して、ボリューム管理テーブル１１５を、図6(b)から図１１のように変更するように指示する。変更した図１１に示すボリューム管理テーブル１１５を用いて、計算機１００は、今までどおり、記憶装置３０１の記憶領域３４１１と記憶領域３４１２の内容を、あたかも、記憶装置３０３の記憶領域３４３１と記憶領域３４３２であるかのように利用することができる。
（３−４）新記憶装置の検出処理
本実施例で、管理計算機６００が、記憶装置３０３を検出するために用いる、装置情報取得プログラム６０５は、実施例１に同じである。よって説明を省略する。
【０１０５】
本実施例でも、管理計算機６００は、記憶装置３０３を検出し、装置特性情報３２７を取得する。
（３−５）記憶領域を再評価して移動する処理
●記憶領域の再評価プログラム及び移動プログラムのフロー
本実施例で、管理計算機６００が、記憶領域を再評価するために用いる記憶領域評価プログラム６２２は、実施例１に同じである。よって、プログラムフローの説明は省略する。
【０１０６】
本実施例で、管理計算機６００が、記憶領域を移動するために用いる記憶領域移動プログラム６２４は、実施例１に同じである。ただし、ステップ１７０１０において、移動元の記憶領域が記憶装置３０３の記憶領域受入プログラムを利用していると判断される可能性がある。本ステップ１７０１０での判断方法は、記憶装置３０３の記憶領域情報の外部記憶装置フィールドに、移動元の記憶領域が登録されている場合は、記憶領域受入プログラムを利用していると判断する。また、記憶領域受入プログラムを利用している移動元記憶領域が計算機に登録されているかどうかを判断する場合は、移動元記憶領域の記憶領域番号とＦＣインタフェース番号を、移動元記憶装置のものではなく、記憶領域受入プログラムを有する記憶装置の記憶領域番号とＦＣインタフェース番号に読み替える。
【０１０７】
以降では、記憶装置３０１の記憶領域３４１２と記憶領域３４１１の再評価及び移動の具体例について説明する。
●本実施例での記憶領域の再評価と移動の具体例その１：
管理計算機６００は、記憶領域情報３８５の一行目である記憶領域３４１２の再評価を開始する（ステップ16020）。
【０１０８】
まず、記憶領域３４１２のヒント情報AccessBandwidthHintの値を参照する。AccessBandwidthHintの値は「１０」である。
【０１０９】
次に、記憶装置３０１及び記憶装置３０３からそれぞれ取得した装置特性情報３２６と３２７における、AccessBandwidthHintの値が「１０」を参照すると、記憶装置３０１では帯域が２Ｇｂｐｓであるが、記憶装置３０３では帯域１０Ｇｂｐｓに高速化されることがわかる（ステップ16060）。
【０１１０】
よって、記憶装置３０１の記憶領域３４１２は、外部記憶装置として記憶装置３０３を介してホストに記憶領域を提供するよりも、記憶領域自体を記憶装置３０３に移動することによって、帯域１０Ｇｂｐｓをフルに生かした記憶領域を提供できるので（ステップ１６０６０）、移動先候補として記憶装置３０３を特定する。そして、選択したヒント情報を処理済にし（ステップ１６０９０）、次のヒント情報により記憶領域の評価を行う（ステップ１６０４０）。
【０１１１】
次に、管理計算機６００は、記憶領域３４１２のヒント情報StorageCostHintの値を参照する。StorageCostHintの値は「０」であるので、このヒント情報については、再評価対象とはしない。
【０１１２】
最後に、管理計算機６００は、記憶領域３４１２のヒント情報DataAvailabilityHintの値を参照する。DataAvailabilityHintの値は「１０」である。
【０１１３】
次に、記憶装置３０１及び記憶装置３０３からそれぞれ取得した装置特性情報３２６と３２７における、DataAvailabilityHintの値が「１０」のときの可用性の値を参照すると、記憶装置３０１では可用性が「９９．９％」であるが、記憶装置３０３では可用性が「９９．９９９％」となり（ステップ１６０６０）、記憶領域自体を記憶装置３０３に移動することによって、可用性を向上でき、高性能な記憶領域を提供できるので（ステップ１６０７０）、移動先候補として記憶装置３０３を特定する。そして、選択したヒント情報を処理済にし（ステップ１６０９０）記憶領域情報の全ヒント情報を参照したので、記憶領域の評価を終了する。
【０１１４】
以上の評価により、記憶領域３４１２は、記憶装置３０１から記憶装置３０３に移すことにより、帯域と可用性を向上することができると判断できる。
【０１１５】
よって、管理計算機６００は、データの移動を開始する。本実施例では、評価から移動まで、管理者に確認を求めず実行するが、実施例１と同様に、管理者に確認を求めてもよい。
【０１１６】
記憶装置３０１から記憶装置３０３へ記憶領域を移動することになった、記憶領域３４１２について、管理計算機６００は、記憶領域移動プログラム６２４を実行する。
【０１１７】
記憶領域３４１２は、記憶領域受入プログラムを利用している記憶領域であるので、ステップ１７０３０のような、計算機のボリューム管理テーブルの更新は発生しない。よって、計算機１００のボリューム管理テーブルは図１１のまま変更されない。
【０１１８】
次に、管理計算機６００は、記憶領域３４１２を移動するために、記憶領域３４１２に割り当てられたヒントと容量から、記憶領域割当要求を作成し、記憶装置３０３に発行する。
【０１１９】
記憶装置３０３は、記憶領域割当プログラム３３０を実行し、要求された２００ＧＢの記憶領域３４３９を用意する。この時点では、記憶領域３４３９には、ＦＣインタフェースを割り当てないため、ＦＣインタフェース番号には「０」を与えておく（図１０(b)）。記憶領域３４３９の作成が完了すると、記憶装置３０３から管理計算機へ完了通知を送る。
【０１２０】
管理計算機６００は、記憶装置３０３からの記憶領域作成完了通知を受け、記憶装置３０３の記憶領域移動実行手段７００に対して、記憶領域３４１２内のデータを、記憶領域３４３９内に移動するように指示する。記憶領域移動実行手段７００は、記憶領域３４１２の最初のブロックから最後のブロックまでを、記憶領域３４３９に複写する。本実施例における記憶領域移動実行手段は、記憶装置上で実行されるプログラムで、プログラムの実行によりファイバチャネル200を介して記憶領域間の複写を行う。
【０１２１】
記憶領域３４３９への複写が完了すると、管理計算機６００は、記憶装置３０３の記憶領域情報３８５を図１０(c)に示すように更新する。ここで、記憶装置３０３は、新たに作成した記憶領域３４３９をＦＣインタフェース３７３８に割り当て、記憶領域番号を「３４３２」に付け替える。こうすることにより、実施例１で必要であった、移動時の計算機１００のボリューム管理テーブル１１５におけるＦＣインタフェース番号と記憶領域番号の書き換えは、実施例２では不要になる。
【０１２２】
最後に、管理計算機６００は、記憶領域開放プログラム６１２を実行し、記憶装置３０１に対して、記憶領域３４１２を未割当とする。
【０１２３】
以上で、記憶領域３４１２の再評価及びその評価に基づく領域移動処理が終了する。
●本実施例での記憶領域の再評価と移動の具体例その２
次に、管理計算機６００は、記憶領域情報３８５の二行目である記憶領域３４１１の再評価を開始する。
【０１２４】
はじめに、記憶領域３４１１のヒント情報AccessBandwidthHintの値を参照する。AccessBandwidthHintの値は「１」である。そして、記憶装置３０１及び記憶装置３０３からそれぞれ取得した装置特性情報３２６と装置特性情報３２７のAccessBandwidthHintの値が「１０」のときの帯域の値を参照する。どちらの記憶装置においても１Ｇｂｐｓであることがわかる。このため、移動する必要はない。
【０１２５】
次に、記憶領域３４１１のヒント情報StorageCostHintの値を参照する。StorageCostHintの値は「１０」である。そして、記憶装置３０１及び記憶装置３０３からそれぞれ取得した装置特性情報３２６と装置特性情報３２７のStorageCostHintの値が「１０」のときのビット単価を参照する。記憶装置３０１ではビット単価は２¢／ＭＢで、記憶装置３０３ではビット単価は１¢／ＭＢであることがわかる。よって、記憶装置３０３に移動することで、ビット単価が高くなってしまうため、記憶領域を移動するメリットがないことがわかる。
【０１２６】
最後に、記憶領域３４１１のヒント情報DataAvailabilityHintの値を参照する。DataAvailabilityHintの値は「０」であるので、再評価の対象とはしない。
【０１２７】
以上の評価により、記憶領域３４１１は、記憶装置３０１から記憶装置３０３に移動するメリットがないことが判定される。
【０１２８】
よって、管理計算機６００は、記憶領域３４１１を移動する記憶領域移動プログラム６２４を実行しない。
【０１２９】
実施例２においても、実施例１と同様に、管理計算機６００を設けて説明したが、実施例２で設けていた管理計算機６００の装置情報取得プログラム６０５、記憶領域作成プログラム６１０、記憶領域開放プログラム６１２、記憶領域情報取得プログラム６２０、記憶領域評価プログラム６２２、記憶領域移動プログラム６２４を記憶装置３０３に設けてもよい。これにより記憶装置３０３が、ＦＣインタフェース３７３１〜３７３６を定期的にチェックし、記憶装置が接続されたことを検知すると、再評価のための一連のシーケンスを実行するように構成することができる。
【０１３０】
また、管理計算機と記憶装置３０３間のネットワークの負荷を削減することができる。
【０１３１】
最後に、実施例１及び実施例２で用いられる領域移動実行手段７００について説明する。
【０１３２】
図２０は、図１中の領域移動実行手段７００のハードウェア構成図を示す図である。記憶領域実行手段７００は、プログラムの実行を司るＣＰＵ７１０と、プログラムやプログラムの実行に必要となるデータを格納するメモリ７２０と、第二のネットワークと接続され、管理計算機６００とのデータの授受を行うネットワークインタフェース７３０と、記憶装置とのデータの授受を行うＦＣインタフェース７５０を設けている。メモリ７２０には、記憶領域移動手段７００が管理計算機６００の指示により実行する記憶領域複写プログラム７４０が格納されている。
【０１３３】
図２１は、図１中の領域移動実行手段７００が実施する記憶領域複写プログラム７４０のフローを示す図である。領域移動実行手段７００のCPU７１０が、メモリ７２０に格納されている記憶領域複写プログラム７４０を実行する。
【０１３４】
まず、領域移動実行手段７００は、管理計算機６００から、記憶領域を複写するためのパラメータとして、移動元の記憶装置と記憶領域番号、移動先の記憶装置と記憶領域番号を受け取る(ステップ２１０１０)。
【０１３５】
ステップ２１０１０で受け取ったパラメータをもとに、領域移動実行手段７００のCPU７１０は、第一のネットワークを介して移動元の記憶装置の記憶領域の最初のブロックから最後のブロックまでを、移動先の記憶装置と記憶領域に複写する(ステップ２１０２０)。
【０１３６】
具体的には、まず、CPU７１０が、ＦＣインタフェース７５０を介して、ステップ２１０１０のパラメータに含まれる移動元の記憶装置の記憶領域に対してSCSIのReadコマンドを送信し、該当する記憶領域のあるブロックのデータを読み取る。そして、CPU７１０は、ＦＣインタフェース７５０を介して、パラメータに含まれる移動先の記憶装置の記憶領域に対して、対応するブロックへのSCSIのWriteコマンドを、読み取ったデータとともに送信する。Writeコマンドを受け取った移動先の記憶装置は、データを該当する記憶領域のブロックに書き込む。このReadコマンドとWriteコマンドの処理を、記憶領域の最初のブロックから最後のブロックまで繰り返せばよい。なお、領域移動実行手段７００は、読み取ったデータをメモリ７２０に格納し、メモリから読み出して、移動先の記憶装置にWriteコマンドとともに送信してもよい。
【０１３７】
さらに、図２１には図示しないが、ＣＰＵ７１０は、ステップ２１０２０を実行するにあたり、移動元の記憶装置と記憶領域と、移動先の記憶装置と記憶領域が、ＦＣインタフェース７５０からアクセス可能であることを確認するものとする。もしアクセス可能でない場合は、記憶領域複写プログラム７４０を中断し、管理計算機６００にアクセス可能でないことを通知する。通知を受けた管理計算機６００は、管理者に対して、アクセス可能な設定をするよう警告をディスプレイ680に表示し、設定変更を促す。設定変更実施後、キーボード682やマウス684などの入力による管理者からの指示に応じて、管理計算機６００から領域移動実行手段７００へ記憶領域複写プログラム７４０を再開を指示する。
【０１３８】
なお、実施例１の図２の計算機システムにおいて、領域移動実行手段７００は、記憶装置３０１、記憶装置３０２、計算機１００、及び管理計算機６００とは独立した異なるハードウェアとしている。それにより、各装置、特に、管理計算機６００の処理の負荷を削減することができる。
【０１３９】
しかし、記憶装置３０１、記憶装置３０２、計算機１００、または管理計算機６００のいずれかの装置が、記憶領域複写プログラム７４０を具備して記憶領域複写プログラム７４０を実行することにより、図２０に示すような外部装置としての領域移動手段７００を含まない計算機システムの構成であってもよい。ただし、管理計算機６００のCPU650が記憶領域複写プログラム７４０を実行する場合、図９には図示していないが、管理計算機６００が、第１のネットワークを介して記憶装置とのデータの授受を行うＦＣインタフェースを備え、CPU650が図２１で示した処理を行う。
【０１４０】
また、実施例２の図９の計算機システムにおいて、領域移動実行手段７００は、記憶装置３０３内に具備されている。しかし、記憶装置３０１、計算機１００、及び管理計算機６００のいずれかの装置が、ハードウェア的あるいはソフトウェア的に領域移動手段７００を具備してもよいし、領域移動実行手段７００が独立したハードウェア構成を有する外部装置であってもよい。
【０１４１】
以上説明した種々の実施例では、ネットワークを介する複数の記憶装置が割り当てた膨大なボリュームを有する大規模なストレージシステムの管理者にとって、リソース管理負荷の低減例えば、ボリューム（記憶領域）の移行の判断などの管理負荷の低減が実現される。
【０１４２】
また、記憶装置ごとに決められる記憶装置の単位時間当たりの使用時間（使用率）の上限値や記憶領域に対するアクセス種別のほかに、記憶領域の信頼性やコストなど実測では取りえない情報、すなわち、実測では得ることのできない予め記憶領域に割り当てられた「ヒント」に基づいても記憶領域を再評価することができる。
本明細書で説明した実施例により、ＳＡＮなどの複数の記憶装置を有する計算機システムにおいて、記憶装置の追加やＳＡＮに属する記憶装置の構成変更を検出して、既存の記憶領域を、記憶領域作成の際に与えられる「ヒント」に基づいて再配置する方法を提供し、記憶領域の配置を管理し、リソースの有効な利用をすることができる。
【図面の簡単な説明】
【０１４３】
【図１】本発明を実施するための形態の概要を示す図である。
【図２】実施例１における計算機システムを示す図である。
【図３】記憶領域割当要求のフォーマットを示す図である。
【図４】装置特性情報を示す例である。
【図５】記憶装置３０１における記憶領域情報の例を示す図である。
【図６】計算機のボリューム管理テーブルを示す図である。
【図７】記憶装置３０２における記憶領域情報を示す図である。
【図８】記憶領域作成のための設定画面を示す図である。
【図９】実施例２における計算機システムを示す図である。
【図１０】記憶装置３０３における記憶領域情報を示す図である。
【図１１】実施例２における計算機のボリューム管理テーブルを示す図である。
【図１２】実施例における管理計算機の構成を示す図である。
【図１３】実施例において記憶装置が実施する記憶領域割当プログラムのフローチャートである。
【図１４】実施例において管理計算機が実施する装置情報取得プログラムのフローチャートである。
【図１５】実施例において管理計算機が実施する記憶領域作成プログラムのフローチャートである。
【図１６】実施例において管理計算機が実施する記憶領域評価プログラムのフローチャートである。
【図１７】実施例において管理計算機が実施する記憶領域移動プログラムのフローチャートである。
【図１８】実施例２において記憶装置３０３が実施する記憶領域受入プログラムのフローチャートである。
【図１９】実施例２において管理計算機が実施するボリューム移行プログラムのフローチャートである。
【図２０】実施例における記憶領域移動手段のハードウェア構成を示す図である。
【図２１】実施例において記憶領域移動手段が実施する記憶領域複写プログラムのフローチャートである。
【符号の説明】
【０１４４】
１００…計算機，１０５…ＣＰＵ，１１０…メモリ１１０，１１５…ボリューム管理テーブル，１２０…ファイバチャネルインタフェース，１３０…ネットワークインタフェース，２００…第一のネットワーク，３０１…記憶装置，３０２…記憶装置，３０３…記憶装置，３２５…装置特性情報保持部，３２６…装置特性情報，３２７…装置特性情報，３３０…記憶領域割当プログラム，３４０…記憶領域受入プログラム，３５０…ＣＰＵ，３６０…メモリ，３８０…記憶領域制御モジュール，３８２…記憶領域情報保持領域，３８３…記憶領域情報（記憶装置３０１用），３８４…記憶領域情報（記憶装置３０２用），３８５…記憶領域情報（記憶装置３０３用），３８９…キャッシュ，３９０…ネットワークインタフェース，５００…第二のネットワーク，６００…管理計算機，６０５…装置情報取得プログラム，６１０…記憶領域作成プログラム，６２２…記憶領域評価プログラム，６２４…記憶領域移動プログラム，６３０…ボリューム移行プログラム，６５０…ＣＰＵ，６６０…メモリ，６８０…ディスプレイ，６８２…キーボード，６８４…マウス，６９０…ネットワークインタフェース，７００…記憶領域移動実行手段，３４１１…記憶領域，３４１２…記憶領域，３４２９…記憶領域，３４３１…記憶領域，３４３２…記憶領域，３４３９…記憶領域，３７１１〜３７１６…ＦＣインタフェース，３７２１〜３７２９…ＦＣインタフェース，３７３１〜３７３９…ＦＣインタフェース
【図１】
2005228278.tif 000003
【図２】
2005228278.tif 000004
【図３】
2005228278.tif 000005
【図４】
2005228278.tif 000006
【図５】
2005228278.tif 000007
【図６】
2005228278.tif 000008
【図７】
2005228278.tif 000009
【図８】
2005228278.tif 000010
【図９】
2005228278.tif 000011
【図１０】
2005228278.tif 000012
【図１１】
2005228278.tif 000013
【図１２】
2005228278.tif 000014
【図１３】
2005228278.tif 000015
【図１４】
2005228278.tif 000016
【図１５】
2005228278.tif 000017
【図１６】
2005228278.tif 000018
【図１７】
2005228278.tif 000019
【図１８】
2005228278.tif 000020
【図１９】
2005228278.tif 000021
【図２０】
2005228278.tif 000022
【図２１】
2005228278.tif 000023