(57)【特許請求の範囲】
【請求項１】
ディスクボリューム毎に、当該ディスクボリュームへのアクセス処理に使用したCPU使用時間を計測する手段と、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられたCPU使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算する手段と、
単位時間あたりの各ディスクボリュームの処理量が、計算された前記上限を超えないように制限する手段と、を備えるディスクアレイシステム。
【請求項２】
請求項１において、
ディスクアレイ内のデータ転送路の少なくとも一部について、ディスクボリューム毎に、当該ディスクボリュームへのアクセス処理に使用した時間を計測する手段と、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられた転送路使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算する手段と、を備えるディスクアレイシステム。
【請求項３】
請求項２において、
各ディスクボリュームに割り当てるCPU使用時間の割合および転送路使用時間の割合を、LAN経由で受信する手段と、を備えるディスクアレイシステム。
【請求項４】
請求項３において、
CPU使用時間あるいは転送路使用時間に基づいて計算された、単位時間あたりの各ディスクボリュームの処理量の上限を、定期的に再計算する手段と、を備えるディスクアレイシステム。
【請求項５】
請求項４において、
ホストコンピュータから受信したディスクボリュームへの書き込みデータに、当該ディスクボリュームに関する属性情報を付加する手段と、
バス転送中のデータに付加された属性情報に基づいて、転送中のデータが属すディスクボリュームを判別する手段と、を備えるディスクアレイシステム。
【請求項６】
請求項５において、
使用時間の計測対象となるデータ転送路の一部として、ホストコンピュータへのチャネルインタフェースに接続されるバス、を備えるディスクアレイシステム。
【請求項７】
請求項４において、
各ディスクボリュームに割り当てるキャッシュ容量が、あらかじめ指定した上限を超えないように制限する手段と、を備えるディスクアレイシステム。
【請求項８】
請求項７において、
前記指定した上限を超えないように制限する手段を適用するディスクボリュームを選択する手段と、を備えるディスクアレイシステム。
【請求項９】
請求項８において、
各ディスクボリュームごとに、単位時間あたりのCPU使用時間、転送路使用時間を管理コンソールから指示される期間にわたって累積する手段と、
ディスクボリュームごとに記録された、前記累積使用時間あるいは現在の使用キャッシュ容量のいずれか一つあるいは複数を管理コンソールに送信する手段と、を備えるディスクアレイシステム。
【請求項１０】
ディスクボリュームごとに、当該ディスクボリュームへのアクセス処理に使用したCPU使用時間を計測し、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられたCPU使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算し、
単位時間あたりの各ディスクボリュームの処理量が、計算された前記上限を超えないように制限することを特徴とするディスクアレイの性能割り当て方法。
【請求項１１】
請求項１０において、
ディスクアレイ内のデータ転送路の少なくとも一部について、ディスクボリューム毎に、当該ディスクボリュームへのアクセス処理に使用した時間を計測し、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられた転送路使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算することを特徴とするディスクアレイの性能割り当て方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のディスクボリュームを持つディスクアレイシステムに関し、特に、ディスクアレイシステムがホストコンピュータに提供する入出力性能を各ディスクボリュームに分割して割り当てる機能を持つディスクアレイシステムに関する。
【０００２】
【従来の技術】
近年、コンピュータシステムの記憶装置の高性能化、大容量化が顕著となっている。中でも、Redundant Array of Inexpensive Disks(RAID)と呼ばれるディスクアレイシステムは、複数のディスクを並列に動作させることにより、高性能、大容量を実現するとともに、データのパリティなどの冗長情報を持つことにより高信頼性を達成している。ディスクアレイ内には、ホストコンピュータから受信したI/O処理要求を解釈し、ディスクアクセスやデータ転送を指示するCPUや、データ転送路となるバスがある。DMA(Direct Memory Access)を利用したデータ転送により、CPUでの処理とデータ転送を同時に実行し、ハードウェア資源の利用効率を高めている。
【０００３】
このような高性能、大容量のディスクアレイシステムの普及にともない、各ホストコンピュータが独立の記憶装置を持つかわりに、1 台のディスクアレイに複数の論理的なディスクボリュームを作成し、それらを各ホストコンピュータに割り当てることが一般的となってきた。
【０００４】
1台のディスクアレイを複数のホストコンピュータで共有する場合、作成する論理ボリュームの容量により、各ホストコンピュータに割り当てる容量が決定される。また、例えば特開2001−147886号公報に開示される方法などにより、各ホストコンピュータが時分割でディスクアレイを共有し、各コンピュータにまとまった使用時間を割り当て、その時間比を指定することにより、性能を割り当てることも可能である。
【０００５】
【発明が解決しようとする課題】
一般にディスクアレイでは、ホストコンピュータから発行されるI/O処理がランダムアクセスであれば、短時間に多数のI/O要求を処理するため、コマンド送受信のオーバヘッドが大きく、CPUにより多くの負荷がかかる。一方、シーケンシャルアクセスでは、1つのI/O処理が大きなデータ転送を要求するため、要求あたりのデータ転送時間が長く、バスに大きな負荷がかかる。すなわち、ランダムアクセスではCPUでの処理時間、シーケンシャルアクセスではバス転送時間により性能が決まる。前述のホストコンピュータ毎に使用時間を割り当てる性能割り当て方法では、あるコンピュータがディスクアレイを使用中は、他のコンピュータからのI/O は処理されない。従って、例えばランダムアクセスを要求するコンピュータA と、シーケンシャルアクセスを要求するコンピュータBがディスクアレイを共有している場合、ランダムアクセスとシーケンシャルアクセスが排他的に実行され、Aがディスクアレイを使用している時間はバスの使用効率が低く、Bがディスクアレイを使用している時間は、CPU の使用効率が低くなり、シーケンシャルアクセスのデータ転送とランダムアクセスのCPU処理を同時に実行した場合と比べてハードウェア資源の利用効率が低下し、ディスクアレイの性能が制限されてしまう。
【０００６】
本発明の目的は、ディスクアレイが提供するI/Oアクセス処理性能全体を分割して各ホストコンピュータが使用するディスクボリュームに性能を割り当て、その際、CPUやバスなどのハードウェア資源の利用効率を高める機能を持つディスクアレイ装置を提供することである。
【０００７】
【課題を解決するための手段】
本発明は、CPUやデータ転送路(バス)の使用時間を各ディスクボリュームに独立に割り当てる。すなわち、ランダムアクセスが多いボリュームには多くのCPU時間を、シーケンシャルアクセスが多いボリュームには多く延ばす使用時間を割り当てることができる。ディスクアレイ内部では、常に各ディスクボリュームごとにCPUやデータ転送路(バス)の使用時間を計測し、ディスクボリュームごとに指定された使用時間比を超えないように処理量を制限することで、性能割り当てを行う。複数のホストコンピュータから発行されるI/O処理要求を、ディスクアレイ内にキューイングし、例えば、ある処理のためにデータ転送やディスクアクセスを実行しているときに、別の処理をCPUで処理することにより、複数の処理を並列に実行することができる。これにより、性能割り当て制御を行いつつ、ランダムアクセスおよびシーケンシャルアクセスの両方に対して高い資源利用効率を保つことができる。
【０００８】
また、性能割り当て対象となるディスクボリュームや、CPU時間、バス使用時間、使用するキャッシュメモリ容量などの割り当て基準を選択することで、ディスクボリュームへのアクセス特性により柔軟な性能管理が可能となる。
【０００９】
【発明の実施の形態】
第一の実施形態は、ディスクアレイが持つ各ディスクボリュームについて、使用するCPUおよびバス時間の比を指定し、性能割り当てを行う例である。
(1) システム全体の構成
図１に本実施形態の全体構成を示す。
【００１０】
2台のホストコンピュータ100, 101が、ファイバチャネルケーブル103, 104を介してディスクアレイ110のファイバチャネルインタフェース111, 112に接続され、ディスクアレイ内のディスクボリュームに記憶されたデータを読み書きする。管理コンソール102ではディスクアレイの管理プログラムを実行し、性能割り当て処理の開始や終了をディスクアレイに指示する。管理コンソールはLAN(Local Area Network)ケーブル105を介してディスクアレイのLANインタフェース113に接続され、各ディスクボリュームに割り当てる性能をディスクアレイに指示する。
【００１１】
ディスクアレイ110は、全体の動作を制御するCPU120、各ボリュームのCPU使用時間を計測するために使うタイマ121、メモリ122、データの記録媒体となるディスクドライブ130, 131, 132、ディスクドライブへのアクセスを制御するディスクコントローラ124、メモリやディスクコントローラとファイバチャネルインタフェースとの間の通信時間を計測する転送時間計測装置123を含む。
【００１２】
メモリ122は、性能割り当て制御に必要な管理情報である性能管理表125、ディスクドライブに記録されるデータのキャッシュデータ126および一般的なディスクアレイの動作に必要なその他の管理情報127を記録する。管理情報127は、CPUの空きを待つタスクのReadyキューと、ディスクアクセス中などCPUを必要としない処理を実行中のタスクのWaitキューをそれぞれ各LU毎に持つ。ホストコンピュータから各LU に発行されたアクセス要求は、まずReadyキューに入り、キューの先頭にきたらCPUによって処理され、ディスクアクセスやDMAによる転送処理を行う場合は、Waitキューに積まれる。ディスクアクセスや転送処理の終了は割り込みにより通知され、該当処理は再びReadキューに入る。各LU毎のキューのうち、CPUがどのキューからタスクを選択するかは、例えばラウンドロビン方式で決められる。
【００１３】
タイマ121は、現在の時刻を例えば10ns程度の高い精度で提供するほか、指定された時間が経過したらCPUに割り込みをかけるタイマ割り込み機能を持つ。転送時間計測装置は、ファイバチャネルインタフェース、CPU、メモリ、ディスクコントローラと接続され、これらの転送路には例えばPCIバスのような既存のバスを使用することができる。ディスクドライブ130, 131, 132のそれぞれの記憶領域は、単独あるいは複数でディスクボリュームを形成する。ディスクボリュームは、例えばSCSI(Small Conputer System Interface)の規格で定義されるLU(Logical Unit)として使用することができる。ここでは簡単のため、ディスクドライブ130, 131, 132がそれぞれLU 140, 141, 142を持ち、それぞれのLU はLU番号1, 2, 3を持つものとする。
(2) 転送時間計測装置の構成
転送時間計測装置123の詳細を図２に示す。LU情報付加/削除手段200は、ファイバチャネルインタフェース111および112から流入する各LUのデータにLU番号等の情報を付加する。例えば、ファイバチャネルインタフェースが、ホストコンピュータからあるLUへのデータ格納要求を受信すると、要求をCPU に知らせ、CPUがLU情報付加/削除手段に付加すべき情報を設定し、その後ファイバチャネルインタフェースが転送時間計測装置123にデータを送出することにより、適切なLU情報を付加することができる。メモリやディスクドライブに記録される各LUのデータは、全てこれらのLU情報とともに転送、記録される。LU情報付加/削除手段についての詳細は、例えば特開2000−347815号公報で開示されている。
【００１４】
転送時間計測装置はDMA204を持ち、CPU処理と並列にデータ転送処理を行う。CPUがDMA204に各LUのデータ転送を指示する際には、必ずメモリ上のあらかじめ決められた領域に転送するデータのLU情報を用意し、LU判別手段201がその情報に含まれるLU番号を参照することにより、転送するデータがどのLUのデータであるか判別する。転送が終わったら、LU判別手段201はメモリ上のLU情報を無効化する。LUのデータ以外を転送する場合、例えば、ファイバチャネルインタフェースからCPUへI/O要求の受信を通知する場合は、CPUが有効なLU情報をメモリ上に設定しないため、LUのデータ以外であることを判別できる。転送時間計測手段202は、常にバス114および115のデータ転送開始信号を監視し、転送開始信号検出から転送終了までの時間を計測する。これは、例えばバスのクロック数のカウントやディスクアレイ内のタイマを参照することにより実現する。計測した時間は、LU判別手段201により判別したLU番号に応じて、転送時間記録表203に記録する。
【００１５】
転送時間記録表203は、図３に示すように、各LU毎に転送時間を記録する。転送時間計測手段202は、計測した時間を転送時間302のLU番号に対応する欄に加算する。計測したデータ転送がLUのデータ以外であれば、「データ以外」に対応する欄に加算する。
(3) 性能管理表の構成
メモリ122上に記録される性能管理表125の詳細を図４に示す。
【００１６】
性能管理表は各LU毎および全体に対応する管理データおよび性能割り当て指定データを記録する。処理数上限402の欄は、あらかじめ指定された単位時間内に、各LUに割り当てられた処理数の上限を表す。ここでいう処理数とは、管理情報127内の各LUのReadyキューからCPUが取り出して処理した回数である。処理数403は、現在までの各LU毎の処理数である。割り当て比(CPU)404および割り当て比(バス)405は、それぞれ各LUにCPU使用時間およびバス使用時間を全体のどれだけ割り当てるかを示す割合を記録する。計測結果(CPU使用時間)406および計測結果(バス時間)407は、単位時間内に各LUが使用したCPU時間およびバス時間の計測結果を記録する。LU個別ではなく全体の欄には、処理数上限402、処理数403、割り当て比(CPU)404、割り当て比(バス)405、CPU使用時間の計測結果406は記録されないが、処理数およびCPU使用時間は各LUに記録された値を合計することで計算可能である。全体に対するバス使用時間の計測結果407は、計測を行った時間からLUのデータとは無関係な転送時間を除いた値が記録される。
(4) 全体動作の説明
性能割り当てを行わない場合、ホストコンピュータからディスクアレイに発行されたI/O要求はディスクアレイ内で処理するタスクとしてLU毎にReadyキューに積まれ、キューの先頭から順次処理される。タスクを取り出すキューをラウンドロビン方式で選択する以外は、タスク処理に制限はない。一方、性能割り当てを行う場合を図5のフローチャートを用いて説明する。まずシステムの管理者が、管理コンソール102から各LUに割り当てるCPU時間およびバス時間の比を指定する。指定した値はLAN105経由でディスクアレイに送信され、性能管理表125の割り当て比404および405の欄に記録される。例えば、図４はLU1 に全体のCPU時間の20%およびバス時間の70%の割り当てが指定されている状態を表す。また、処理数の上限を0に指定する(ステップ501)。上限0は上限が設定されていない状態を表す。
【００１７】
次に、転送時間計測装置123内の転送時間記録表203の各転送時間の記録を0に初期化する(ステップ502)。さらに、性能管理表の計測結果を0に初期化し(ステップ503)、タイマ121に割り当て制御管理の単位時間を設定する(ステップ504)。この単位時間はあらかじめ決められた固定値でもよいし、管理コンソールから指定してもよい。例えば、単位時間として1秒を指定したとすると、1秒後にタイマ割り込みがタイマからCPUに通知される。タイマ割り込みを受信するまで、CPUや転送時間計測装置はタスクの処理を行うとともにCPUやバスの使用時間をLUごとに計測する(ステップ505)。タイマ割り込みを受信したら、転送時間記録表203に記録されている各LUの転送時間を性能管理表の対応する計測結果407に記録する。また、各LUおよびデータ以外の転送時間の合計を計測結果407の全体の欄に記録する(ステップ506)。次に、処理している間に管理コンソールから性能割り当て制御を終了するよう指示されたかどうか判断し(ステップ507)、終了指示があれば性能割り当て制御を終了し、通常の動作に復帰する(ステップ509)。終了指示を受信していなければ性能管理表の各LUの処理数上限402を修正し(ステップ508)、ステップ502 に戻る。
(5) タスク処理および資源使用時間の計測
ステップ505でタスクを処理中の動作を、図６および図１０のフローチャートを用いて説明する。
【００１８】
図６は、ステップ505でのCPUの動作である。各LUをラウンドロビン方式で処理するため、処理するLU番号をあらわす変数nを1に初期化する(ステップ601)。LU nのReadyキューが空であれば、ステップ608に進む(ステップ602)。空でなければ、性能管理表のLU nの処理数の上限(402)と現在の処理数(403)を参照し、上限が非0で処理数が上限に達していればステップ608に進む(ステップ603)。そうでなければ、タイマから現在の時刻を取得し(ステップ604)、Readyキューからタスクを1つ処理する(ステップ605)。タスクが完了した場合はタスクを削除し、CPU以外での処理を行う場合はタスクをWaitキューに積む。タスクの処理が終わったら再びタイマから現在の時刻を取得し、ステップ604で取得した時刻からの経過時間を、性能管理表の計測結果(CPU使用時間)406に加算する(ステップ606)。LU nに対応する欄とともに全体の欄にも加算する。また、処理数403に1を加算する(ステップ607)。以上の処理が終わったら、次のLUを処理するためにnに1 を加算し、nがLU数を超えた場合は再びnを1に初期化して(ステップ609)、ステップ603に戻る。これら一連の処理により、性能管理表に記録されている処理数の上限を超えることなく各LUのタスクを処理し、その際に使用したCPU時間を計測することができる。
【００１９】
図１０はステップ505において、転送時間計測装置経由でデータや制御情報が転送されたときのLU判別手段201および転送時間計測手段202の動作である。転送時間計測装置内のDMA204やファイバチャネルインタフェースがバス114あるいは115を介してデータや制御情報を転送する場合、実際のデータ転送に先立ちバスプロトコルで規定される転送開始信号が流れる。転送時間計測手段がこの信号を検出することにより、転送時間の計測を開始する(ステップ1000)。バス上の信号は、当該信号が流れる信号線を常に監視することにより容易に検出できる。次に、LU判別手段201がメモリ上のあらかじめ決められた領域に有効なLU情報が存在するか確認する(ステップ1001)。LU情報が存在しなければ、転送しているのはLUのデータ以外であると判別し、ステップ1005に進む。LUのデータを転送中であればLU情報からLU番号を取得する(ステップ1002)。次に、転送終了までの時間を計測し(ステップ1003および1005)、転送時間記録表203に計測結果を記録する。LUのデータの転送であれば、転送時間302のLU番号に対応する欄に計測結果を加算する(ステップ1004)。LUのデータ以外であれば、その他に対応する欄に計測結果を加算する(ステップ1006)。これらの処理により、単位時間内に各LUおよびそれ以外のデータ転送でバスを使用した時間を計測できる。
(6) 処理数上限の算出
ステップ508では、単位時間内に計測された各LUのCPUやバスの使用時間を元に、次の単位時間での処理数の上限を計算する。計算方法の詳細を図７を用いて説明する。
【００２０】
各LUについて個別に計算するため、計算対象のLUの番号をあらわす変数nを1 に初期化する(ステップ701)。性能管理表125で、LU nの処理数403を参照し、処理数が0であれば、新しい上限を計算するための計測データがないので現在の上限をそのまま使い、ステップ710に進む(ステップ702)。処理数が非0であれば、1処理あたりの平均CPU使用率およびバス使用率を計算する(ステップ703)。CPU使用率は、単位時間(計測時間)に対するCPUの使用時間を処理数で割った値、バス使用率は、すなわち単位時間からLUのデータ以外を転送した時間を除いた時間に対するバスの使用時間を処理数で割った値である。次に、1処理あたりの使用率を元に割り当て比404および405を超えない処理数(整数)を計算する(ステップ704)。これらの値は、指定された割り当て比をステップ703で計算した処理あたりの使用率で割ることにより計算する。CPU使用率を元に計算した処理数とバス使用率を元に計算した処理数を比較し、小さいほうを新しい処理数の上限として、性能管理表の処理数上限402の欄に記録する(ステップ705〜707)。もしこの上限が0であれば(ステップ708)、そのLUに対する処理がまったく行われなくなってしまうため、上限を1に修正する(ステップ709)。これらの一連の処理により、LU nに対して、前回の計測結果から指定された割り当て比に適切な処理数の上限を計算することができる。これを全てのLUについて繰り返す(ステップ710、711)。
【００２１】
図４のLU1の例では、処理数が20、CPU使用時間の計測結果が40ms、バスの使用時間が500msであるので、計測時間を1秒とすると、CPU使用時間を元にした処理数上限は20%/(40ms*100%/(1000ms*20))=100、バス使用時間を元にした処理数上限は、70%/(500ms*100%/(995ms*20))=27.86となり、新しい処理数の上限は27となる。
【００２２】
CPUやバスのLU毎の使用時間を直接計測しているため、特にホストコンピュータから各LUへのアクセスの転送長やランダム・シーケンシャル特性が一定している場合には、精度の高い割り当て処理が可能となる。また、アクセス特性が変化する場合でも、特性の変化に追随して各LUの処理数上限を自動的に調整することが可能である。
(7) 効果
CPUおよびバスの使用時間比を独立に割り当てることにより、各LUのアクセス特性に適した性能割り当てを行うことが可能となる。すなわち、ランダムアクセスの多いLUには多くのCPU時間を割り当て、シーケンシャルアクセスが多いLUには多く伸ばす使用時間を割り当てることができる。また、ランダムアおよびシーケンシャルかかわらず各LUへのアクセスをディスクアレイ内で並列に実行可能なため、性能割り当て制御を行っている場合でもCPUおよびバスの高い使用効率を保つことができる。さらに、割り当て制御の指標値となるタスクの処理数上限を一定時間ごとに再計算するため、アクセス特性の時間的な変動にも追随した割り当て制御が可能となる。本実施形態では、転送時間計測装置によりバス114および115の転送時間を計測し、使用時間の割り当て制御を行ったが、メモリへの転送路127やディスクコントローラへの転送路などに対しても同様の原理で使用時間の割り当て制御が可能である。
【００２３】
第二の実施形態は、性能割り当ての基準としてCPU使用時間およびバス使用時間のほかに、キャッシュ容量の割り当て比率を追加し、さらにこれらうち任意の基準を選択するものである。以下、第一の実施形態と異なる部分のみ説明する。
(1) 性能管理表の構成
本実施形態における性能管理表の構成を図8に示す。表中のキャッシュ割り当ての欄809は、各LUに割り当てるキャッシュメモリの容量比率を記録する。この比率は、メモリ122内に割り当てられたキャッシュデータの領域126の全容量に対する各LUで使用可能な容量の比率である。使用キャッシュ容量の欄810は、各LUが現在使用中のキャッシュメモリの割合を記録する。全体の欄にはディスクアレイがキャッシュとして使用可能なメモリ容量が記録される。本実施形態において、CPUがタスクを処理する際に使用キャッシュ容量に変動がある場合には必ず性能管理表の記録810を更新する。すなわち、性能割り当て制御を実行中であるか否かにかかわらず、あるLUの処理で新たにキャッシュ容量を割り当てたり、割り当て済みのキャッシュ容量を開放した場合には、対応するLUの性能管理表の記録を修正する。また、割り当て属性の欄802 は、各LUがどの割り当て基準を用いるかをあらわす。図８の例では、LU2はCPU 使用時間に基づいて性能を割り当て、LU3はバス使用時間に基づいて性能を割り当てるとともに使用できるキャッシュ容量も制限する。LU1は割り当て基準が何も指定されていないので無制限にアクセスを許す。
(2) 動作の説明
図５のフローチャートでは、ステップ501において、管理コンソールから受信した各LUにどの割り当て属性を適用するかを性能管理表の割り当て属性欄802に記録する処理を追加する。また、図６のステップ605において、あるLUに対して新たにキャッシュ容量を確保する場合は、図１１のフローチャートに示すように、まず性能管理表の割り当て属性802を参照し、当該LU の性能割り当て属性にキャッシュ容量が設定されているか確認する(ステップ1101)。属性が設定されていなければキャッシュを確保するが(ステップ1104)、設定されていれば、新たにキャッシュを確保することによってキャッシュ割り当て比809で指定された容量比を超えるかどうか判断する(ステップ1102)。超える場合は、すでに確保しているキャッシュ容量のうち、新たに確保するキャッシュと同じ容量をあらかじめ開放して置く(ステップ1103)。その後、キャッシュを確保することにより、指定されたキャッシュ割り当て容量比を保つことができる。また、前述のように使用キャッシュ容量に変動があった場合は性能管理表のキャッシュ容量の記録810を修正する。
【００２４】
図７のフローチャートでは、ステップ702において、処理数が0である場合に加え、性能管理表の割り当て属性欄802を参照し、割り当て属性が何も設定されていない、あるいはキャッシュ属性のみ設定されている場合もステップ710に進むように変更する。また、ステップ703、704においては設定されている割り当て属性についてのみ使用率および処理数を計算するように変更する。ステップ705では、割り当て属性にバス使用時間が設定されていない場合は、ステップ706に、CPU使用時間が設定されていない場合はステップ707に進む。また、割り当て属性にCPU使用時間、バス使用時間の両方設定されている場合は、図７のステップ705と同様に処理数が小さい方を新しい上限として設定する。
(3) 効果
本実施形態により、LU毎に使用するキャッシュ容量を制限することができる。これにより、例えば極めて大きなデータに対するシーケンシャルアクセスのように、ほとんどキャッシュヒットが期待できないアクセスが多いLUにはあらかじめ小さなキャッシュ容量を割り当てておき、他のLUに多くのキャッシュを割り当ててキャッシュヒット率を向上させることができる。また、性能の割り当て基準として、CPU使用時間、バス使用時間、キャッシュ容量のうち1つまたは複数の組み合わせで設定、あるいは何も設定しないことにより柔軟な性能管理が可能となる。例えば、転送長の小さなランダムアクセスのみが発行されることがわかっているLUに対しては、バス使用時間の割り当て比設定を省略することで、管理を簡素化することができる。
【００２５】
第三の実施形態は、第二の実施形態に現在のハードウェア資源使用率を管理コンソールに報告する機能を追加したものである。以下、第一の実施形態と異なる部分のみ説明する。
(1) 性能管理表の構成
図９に本実施形態における性能管理表を示す。累計CPU使用時間911および累計バス使用時間912には、単位時間ごとに計測されたCPU使用時間907およびバス使用時間908の合計が記録される。
(2) 動作の説明
図５のフローチャートにおいて、ステップ501に性能管理表の各累計時間を0に初期設定する処理を追加する。また、ステップ508において、処理数の上限を修正した後にCPUおよびバス使用時間の計測結果905および906を、それぞれの累計時間911、912に加算する処理を追加する。
【００２６】
さらに、管理コンソール102からLAN105を介して使用状況の報告指示を受信すると、性能管理表900のうち、各LUについて使用キャッシュ容量910、累計CPU使用時間911、累計バス使用時間912を管理コンソールに送信する。また、送信後に累計CPU使用時間および累計バス使用時間を0に初期化する。
(3) 効果
管理コンソールから定期的に使用状況を参照することにより、現在の性能割り当て設定が適切かどうか確認することができる。また、取得した使用状況の時系列データを管理コンソールで蓄積することにより、各LUの負荷がピークとなる時間帯を認識し、システムの性能チューニングに利用したり、将来の性能需要の予測に役立てたりすることができる。本実施形態では、使用状況のデータをLAN経由で管理コンソールに送信したが、ファイバチャネルインタフェースからホストコンピュータに転送することも可能である。
【００２７】
【発明の効果】
以上述べたように、本発明によればディスクアレイ内の各ディスクボリュームに対し、CPU使用時間、バス使用時間、使用キャッシュ容量をそれぞれ独立に割り当てることができる。これにより、ディスクボリュームへのアクセス特性に応じた柔軟でハードウェア資源の使用効率が高い性能割り当て管理を行うことができる。
【図面の簡単な説明】
【図１】本発明の第一の実施形態の全体構成図。
【図２】本発明の実施形態における転送時間計測装置の構成。
【図３】本発明の実施形態における転送時間記録表の構成。
【図４】本発明の第一の実施形態における性能管理表の構成。
【図５】本発明の実施形態における性能割り当て処理のフローチャート。
【図６】本発明の第一の実施形態における処理数制限のフローチャート。
【図７】本発明の第一の実施形態における処理数上限計算のフローチャート。
【図８】本発明の第二の実施形態における性能管理表の構成。
【図９】本発明の第三の実施形態における性能管理表の構成。
【図１０】本発明の実施形態におけるバス使用時間計測のフローチャート。
【図１１】本発明の第二の実施形態におけるキャッシュ確保処理のフローチャート。
【符号の説明】
100,101…ホストコンピュータ、102…管理コンソール、110…ディスクアレイ、120…CPU、121…タイマ、122…メモリ、123…転送時間計測装置、124…ディスクコントローラ、125…性能管理表、130, 131, 132…ディスクドライブ。
【図１】
0003812405.tif 000002
【図２】
0003812405.tif 000003
【図３】
0003812405.tif 000004
【図４】
0003812405.tif 000005
【図５】
0003812405.tif 000006
【図６】
0003812405.tif 000007
【図７】
0003812405.tif 000008
【図８】
0003812405.tif 000009
【図９】
0003812405.tif 000010
【図１０】
0003812405.tif 000011
【図１１】
0003812405.tif 000012