JP3812405B2 - Disk array system - Google Patents

Disk array system Download PDF

Info

Publication number
JP3812405B2
JP3812405B2 JP2001327106A JP2001327106A JP3812405B2 JP 3812405 B2 JP3812405 B2 JP 3812405B2 JP 2001327106 A JP2001327106 A JP 2001327106A JP 2001327106 A JP2001327106 A JP 2001327106A JP 3812405 B2 JP3812405 B2 JP 3812405B2
Authority
JP
Japan
Prior art keywords
disk
disk volume
time
usage time
upper limit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001327106A
Other languages
Japanese (ja)
Other versions
JP2003131814A (en
Inventor
康行 味松
直人 松並
育哉 八木沢
陽一 水野
賢一 ▲高▼本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001327106A priority Critical patent/JP3812405B2/en
Publication of JP2003131814A publication Critical patent/JP2003131814A/en
Application granted granted Critical
Publication of JP3812405B2 publication Critical patent/JP3812405B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、複数のディスクボリュームを持つディスクアレイシステムに関し、特に、ディスクアレイシステムがホストコンピュータに提供する入出力性能を各ディスクボリュームに分割して割り当てる機能を持つディスクアレイシステムに関する。
【0002】
【従来の技術】
近年、コンピュータシステムの記憶装置の高性能化、大容量化が顕著となっている。中でも、Redundant Array of Inexpensive Disks(RAID)と呼ばれるディスクアレイシステムは、複数のディスクを並列に動作させることにより、高性能、大容量を実現するとともに、データのパリティなどの冗長情報を持つことにより高信頼性を達成している。ディスクアレイ内には、ホストコンピュータから受信したI/O処理要求を解釈し、ディスクアクセスやデータ転送を指示するCPUや、データ転送路となるバスがある。DMA(Direct Memory Access)を利用したデータ転送により、CPUでの処理とデータ転送を同時に実行し、ハードウェア資源の利用効率を高めている。
【0003】
このような高性能、大容量のディスクアレイシステムの普及にともない、各ホストコンピュータが独立の記憶装置を持つかわりに、1 台のディスクアレイに複数の論理的なディスクボリュームを作成し、それらを各ホストコンピュータに割り当てることが一般的となってきた。
【0004】
1台のディスクアレイを複数のホストコンピュータで共有する場合、作成する論理ボリュームの容量により、各ホストコンピュータに割り当てる容量が決定される。また、例えば特開2001−147886号公報に開示される方法などにより、各ホストコンピュータが時分割でディスクアレイを共有し、各コンピュータにまとまった使用時間を割り当て、その時間比を指定することにより、性能を割り当てることも可能である。
【0005】
【発明が解決しようとする課題】
一般にディスクアレイでは、ホストコンピュータから発行されるI/O処理がランダムアクセスであれば、短時間に多数のI/O要求を処理するため、コマンド送受信のオーバヘッドが大きく、CPUにより多くの負荷がかかる。一方、シーケンシャルアクセスでは、1つのI/O処理が大きなデータ転送を要求するため、要求あたりのデータ転送時間が長く、バスに大きな負荷がかかる。すなわち、ランダムアクセスではCPUでの処理時間、シーケンシャルアクセスではバス転送時間により性能が決まる。前述のホストコンピュータ毎に使用時間を割り当てる性能割り当て方法では、あるコンピュータがディスクアレイを使用中は、他のコンピュータからのI/O は処理されない。従って、例えばランダムアクセスを要求するコンピュータA と、シーケンシャルアクセスを要求するコンピュータBがディスクアレイを共有している場合、ランダムアクセスとシーケンシャルアクセスが排他的に実行され、Aがディスクアレイを使用している時間はバスの使用効率が低く、Bがディスクアレイを使用している時間は、CPU の使用効率が低くなり、シーケンシャルアクセスのデータ転送とランダムアクセスのCPU処理を同時に実行した場合と比べてハードウェア資源の利用効率が低下し、ディスクアレイの性能が制限されてしまう。
【0006】
本発明の目的は、ディスクアレイが提供するI/Oアクセス処理性能全体を分割して各ホストコンピュータが使用するディスクボリュームに性能を割り当て、その際、CPUやバスなどのハードウェア資源の利用効率を高める機能を持つディスクアレイ装置を提供することである。
【0007】
【課題を解決するための手段】
本発明は、CPUやデータ転送路(バス)の使用時間を各ディスクボリュームに独立に割り当てる。すなわち、ランダムアクセスが多いボリュームには多くのCPU時間を、シーケンシャルアクセスが多いボリュームには多く延ばす使用時間を割り当てることができる。ディスクアレイ内部では、常に各ディスクボリュームごとにCPUやデータ転送路(バス)の使用時間を計測し、ディスクボリュームごとに指定された使用時間比を超えないように処理量を制限することで、性能割り当てを行う。複数のホストコンピュータから発行されるI/O処理要求を、ディスクアレイ内にキューイングし、例えば、ある処理のためにデータ転送やディスクアクセスを実行しているときに、別の処理をCPUで処理することにより、複数の処理を並列に実行することができる。これにより、性能割り当て制御を行いつつ、ランダムアクセスおよびシーケンシャルアクセスの両方に対して高い資源利用効率を保つことができる。
【0008】
また、性能割り当て対象となるディスクボリュームや、CPU時間、バス使用時間、使用するキャッシュメモリ容量などの割り当て基準を選択することで、ディスクボリュームへのアクセス特性により柔軟な性能管理が可能となる。
【0009】
【発明の実施の形態】
第一の実施形態は、ディスクアレイが持つ各ディスクボリュームについて、使用するCPUおよびバス時間の比を指定し、性能割り当てを行う例である。
(1) システム全体の構成
図1に本実施形態の全体構成を示す。
【0010】
2台のホストコンピュータ100, 101が、ファイバチャネルケーブル103, 104を介してディスクアレイ110のファイバチャネルインタフェース111, 112に接続され、ディスクアレイ内のディスクボリュームに記憶されたデータを読み書きする。管理コンソール102ではディスクアレイの管理プログラムを実行し、性能割り当て処理の開始や終了をディスクアレイに指示する。管理コンソールはLAN(Local Area Network)ケーブル105を介してディスクアレイのLANインタフェース113に接続され、各ディスクボリュームに割り当てる性能をディスクアレイに指示する。
【0011】
ディスクアレイ110は、全体の動作を制御するCPU120、各ボリュームのCPU使用時間を計測するために使うタイマ121、メモリ122、データの記録媒体となるディスクドライブ130, 131, 132、ディスクドライブへのアクセスを制御するディスクコントローラ124、メモリやディスクコントローラとファイバチャネルインタフェースとの間の通信時間を計測する転送時間計測装置123を含む。
【0012】
メモリ122は、性能割り当て制御に必要な管理情報である性能管理表125、ディスクドライブに記録されるデータのキャッシュデータ126および一般的なディスクアレイの動作に必要なその他の管理情報127を記録する。管理情報127は、CPUの空きを待つタスクのReadyキューと、ディスクアクセス中などCPUを必要としない処理を実行中のタスクのWaitキューをそれぞれ各LU毎に持つ。ホストコンピュータから各LU に発行されたアクセス要求は、まずReadyキューに入り、キューの先頭にきたらCPUによって処理され、ディスクアクセスやDMAによる転送処理を行う場合は、Waitキューに積まれる。ディスクアクセスや転送処理の終了は割り込みにより通知され、該当処理は再びReadキューに入る。各LU毎のキューのうち、CPUがどのキューからタスクを選択するかは、例えばラウンドロビン方式で決められる。
【0013】
タイマ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の詳細を図2に示す。LU情報付加/削除手段200は、ファイバチャネルインタフェース111および112から流入する各LUのデータにLU番号等の情報を付加する。例えば、ファイバチャネルインタフェースが、ホストコンピュータからあるLUへのデータ格納要求を受信すると、要求をCPU に知らせ、CPUがLU情報付加/削除手段に付加すべき情報を設定し、その後ファイバチャネルインタフェースが転送時間計測装置123にデータを送出することにより、適切なLU情報を付加することができる。メモリやディスクドライブに記録される各LUのデータは、全てこれらのLU情報とともに転送、記録される。LU情報付加/削除手段についての詳細は、例えば特開2000−347815号公報で開示されている。
【0014】
転送時間計測装置は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に記録する。
【0015】
転送時間記録表203は、図3に示すように、各LU毎に転送時間を記録する。転送時間計測手段202は、計測した時間を転送時間302のLU番号に対応する欄に加算する。計測したデータ転送がLUのデータ以外であれば、「データ以外」に対応する欄に加算する。
(3) 性能管理表の構成
メモリ122上に記録される性能管理表125の詳細を図4に示す。
【0016】
性能管理表は各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の欄に記録される。例えば、図4はLU1 に全体のCPU時間の20%およびバス時間の70%の割り当てが指定されている状態を表す。また、処理数の上限を0に指定する(ステップ501)。上限0は上限が設定されていない状態を表す。
【0017】
次に、転送時間計測装置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でタスクを処理中の動作を、図6および図10のフローチャートを用いて説明する。
【0018】
図6は、ステップ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時間を計測することができる。
【0019】
図10はステップ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やバスの使用時間を元に、次の単位時間での処理数の上限を計算する。計算方法の詳細を図7を用いて説明する。
【0020】
各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)。
【0021】
図4のLU1の例では、処理数が20、CPU使用時間の計測結果が40ms、バスの使用時間が500msであるので、計測時間を1秒とすると、CPU使用時間を元にした処理数上限は20%/(40ms*100%/(1000ms*20))=100、バス使用時間を元にした処理数上限は、70%/(500ms*100%/(995ms*20))=27.86となり、新しい処理数の上限は27となる。
【0022】
CPUやバスのLU毎の使用時間を直接計測しているため、特にホストコンピュータから各LUへのアクセスの転送長やランダム・シーケンシャル特性が一定している場合には、精度の高い割り当て処理が可能となる。また、アクセス特性が変化する場合でも、特性の変化に追随して各LUの処理数上限を自動的に調整することが可能である。
(7) 効果
CPUおよびバスの使用時間比を独立に割り当てることにより、各LUのアクセス特性に適した性能割り当てを行うことが可能となる。すなわち、ランダムアクセスの多いLUには多くのCPU時間を割り当て、シーケンシャルアクセスが多いLUには多く伸ばす使用時間を割り当てることができる。また、ランダムアおよびシーケンシャルかかわらず各LUへのアクセスをディスクアレイ内で並列に実行可能なため、性能割り当て制御を行っている場合でもCPUおよびバスの高い使用効率を保つことができる。さらに、割り当て制御の指標値となるタスクの処理数上限を一定時間ごとに再計算するため、アクセス特性の時間的な変動にも追随した割り当て制御が可能となる。本実施形態では、転送時間計測装置によりバス114および115の転送時間を計測し、使用時間の割り当て制御を行ったが、メモリへの転送路127やディスクコントローラへの転送路などに対しても同様の原理で使用時間の割り当て制御が可能である。
【0023】
第二の実施形態は、性能割り当ての基準としてCPU使用時間およびバス使用時間のほかに、キャッシュ容量の割り当て比率を追加し、さらにこれらうち任意の基準を選択するものである。以下、第一の実施形態と異なる部分のみ説明する。
(1) 性能管理表の構成
本実施形態における性能管理表の構成を図8に示す。表中のキャッシュ割り当ての欄809は、各LUに割り当てるキャッシュメモリの容量比率を記録する。この比率は、メモリ122内に割り当てられたキャッシュデータの領域126の全容量に対する各LUで使用可能な容量の比率である。使用キャッシュ容量の欄810は、各LUが現在使用中のキャッシュメモリの割合を記録する。全体の欄にはディスクアレイがキャッシュとして使用可能なメモリ容量が記録される。本実施形態において、CPUがタスクを処理する際に使用キャッシュ容量に変動がある場合には必ず性能管理表の記録810を更新する。すなわち、性能割り当て制御を実行中であるか否かにかかわらず、あるLUの処理で新たにキャッシュ容量を割り当てたり、割り当て済みのキャッシュ容量を開放した場合には、対応するLUの性能管理表の記録を修正する。また、割り当て属性の欄802 は、各LUがどの割り当て基準を用いるかをあらわす。図8の例では、LU2はCPU 使用時間に基づいて性能を割り当て、LU3はバス使用時間に基づいて性能を割り当てるとともに使用できるキャッシュ容量も制限する。LU1は割り当て基準が何も指定されていないので無制限にアクセスを許す。
(2) 動作の説明
図5のフローチャートでは、ステップ501において、管理コンソールから受信した各LUにどの割り当て属性を適用するかを性能管理表の割り当て属性欄802に記録する処理を追加する。また、図6のステップ605において、あるLUに対して新たにキャッシュ容量を確保する場合は、図11のフローチャートに示すように、まず性能管理表の割り当て属性802を参照し、当該LU の性能割り当て属性にキャッシュ容量が設定されているか確認する(ステップ1101)。属性が設定されていなければキャッシュを確保するが(ステップ1104)、設定されていれば、新たにキャッシュを確保することによってキャッシュ割り当て比809で指定された容量比を超えるかどうか判断する(ステップ1102)。超える場合は、すでに確保しているキャッシュ容量のうち、新たに確保するキャッシュと同じ容量をあらかじめ開放して置く(ステップ1103)。その後、キャッシュを確保することにより、指定されたキャッシュ割り当て容量比を保つことができる。また、前述のように使用キャッシュ容量に変動があった場合は性能管理表のキャッシュ容量の記録810を修正する。
【0024】
図7のフローチャートでは、ステップ702において、処理数が0である場合に加え、性能管理表の割り当て属性欄802を参照し、割り当て属性が何も設定されていない、あるいはキャッシュ属性のみ設定されている場合もステップ710に進むように変更する。また、ステップ703、704においては設定されている割り当て属性についてのみ使用率および処理数を計算するように変更する。ステップ705では、割り当て属性にバス使用時間が設定されていない場合は、ステップ706に、CPU使用時間が設定されていない場合はステップ707に進む。また、割り当て属性にCPU使用時間、バス使用時間の両方設定されている場合は、図7のステップ705と同様に処理数が小さい方を新しい上限として設定する。
(3) 効果
本実施形態により、LU毎に使用するキャッシュ容量を制限することができる。これにより、例えば極めて大きなデータに対するシーケンシャルアクセスのように、ほとんどキャッシュヒットが期待できないアクセスが多いLUにはあらかじめ小さなキャッシュ容量を割り当てておき、他のLUに多くのキャッシュを割り当ててキャッシュヒット率を向上させることができる。また、性能の割り当て基準として、CPU使用時間、バス使用時間、キャッシュ容量のうち1つまたは複数の組み合わせで設定、あるいは何も設定しないことにより柔軟な性能管理が可能となる。例えば、転送長の小さなランダムアクセスのみが発行されることがわかっているLUに対しては、バス使用時間の割り当て比設定を省略することで、管理を簡素化することができる。
【0025】
第三の実施形態は、第二の実施形態に現在のハードウェア資源使用率を管理コンソールに報告する機能を追加したものである。以下、第一の実施形態と異なる部分のみ説明する。
(1) 性能管理表の構成
図9に本実施形態における性能管理表を示す。累計CPU使用時間911および累計バス使用時間912には、単位時間ごとに計測されたCPU使用時間907およびバス使用時間908の合計が記録される。
(2) 動作の説明
図5のフローチャートにおいて、ステップ501に性能管理表の各累計時間を0に初期設定する処理を追加する。また、ステップ508において、処理数の上限を修正した後にCPUおよびバス使用時間の計測結果905および906を、それぞれの累計時間911、912に加算する処理を追加する。
【0026】
さらに、管理コンソール102からLAN105を介して使用状況の報告指示を受信すると、性能管理表900のうち、各LUについて使用キャッシュ容量910、累計CPU使用時間911、累計バス使用時間912を管理コンソールに送信する。また、送信後に累計CPU使用時間および累計バス使用時間を0に初期化する。
(3) 効果
管理コンソールから定期的に使用状況を参照することにより、現在の性能割り当て設定が適切かどうか確認することができる。また、取得した使用状況の時系列データを管理コンソールで蓄積することにより、各LUの負荷がピークとなる時間帯を認識し、システムの性能チューニングに利用したり、将来の性能需要の予測に役立てたりすることができる。本実施形態では、使用状況のデータをLAN経由で管理コンソールに送信したが、ファイバチャネルインタフェースからホストコンピュータに転送することも可能である。
【0027】
【発明の効果】
以上述べたように、本発明によればディスクアレイ内の各ディスクボリュームに対し、CPU使用時間、バス使用時間、使用キャッシュ容量をそれぞれ独立に割り当てることができる。これにより、ディスクボリュームへのアクセス特性に応じた柔軟でハードウェア資源の使用効率が高い性能割り当て管理を行うことができる。
【図面の簡単な説明】
【図1】本発明の第一の実施形態の全体構成図。
【図2】本発明の実施形態における転送時間計測装置の構成。
【図3】本発明の実施形態における転送時間記録表の構成。
【図4】本発明の第一の実施形態における性能管理表の構成。
【図5】本発明の実施形態における性能割り当て処理のフローチャート。
【図6】本発明の第一の実施形態における処理数制限のフローチャート。
【図7】本発明の第一の実施形態における処理数上限計算のフローチャート。
【図8】本発明の第二の実施形態における性能管理表の構成。
【図9】本発明の第三の実施形態における性能管理表の構成。
【図10】本発明の実施形態におけるバス使用時間計測のフローチャート。
【図11】本発明の第二の実施形態におけるキャッシュ確保処理のフローチャート。
【符号の説明】
100,101…ホストコンピュータ、102…管理コンソール、110…ディスクアレイ、120…CPU、121…タイマ、122…メモリ、123…転送時間計測装置、124…ディスクコントローラ、125…性能管理表、130, 131, 132…ディスクドライブ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a disk array system having a plurality of disk volumes, and more particularly to a disk array system having a function of dividing and assigning input / output performance provided by a disk array system to a host computer for each disk volume.
[0002]
[Prior art]
In recent years, there has been a remarkable increase in performance and capacity of storage devices in computer systems. Among them, the disk array system called Redundant Array of Inexpensive Disks (RAID) realizes high performance and large capacity by operating multiple disks in parallel, and high redundancy by having redundant information such as data parity. Reliability is achieved. In the disk array, there are a CPU that interprets an I / O processing request received from a host computer and instructs disk access and data transfer, and a bus serving as a data transfer path. Data transfer using DMA (Direct Memory Access) allows CPU processing and data transfer to be executed at the same time, thereby increasing the utilization efficiency of hardware resources.
[0003]
With the spread of such high-performance, large-capacity disk array systems, each host computer creates multiple logical disk volumes on a single disk array instead of having independent storage devices. Assigning to a host computer has become common.
[0004]
When one disk array is shared by a plurality of host computers, the capacity allocated to each host computer is determined by the capacity of the logical volume to be created. In addition, for example, by the method disclosed in Japanese Patent Application Laid-Open No. 2001-147886, each host computer shares a disk array in a time-sharing manner, assigns a collective use time to each computer, and designates the time ratio, It is also possible to assign performance.
[0005]
[Problems to be solved by the invention]
In general, in a disk array, if the I / O processing issued by the host computer is random access, a large number of I / O requests are processed in a short time, so the overhead of command transmission / reception is large and the CPU is heavily loaded. . On the other hand, in sequential access, one I / O process requires a large data transfer, so the data transfer time per request is long and a heavy load is applied to the bus. That is, the performance is determined by the processing time in the CPU for random access, and the bus transfer time for sequential access. In the above-described performance allocation method in which usage time is allocated to each host computer, I / O from other computers is not processed while a certain computer is using the disk array. Thus, for example, when computer A requesting random access and computer B requesting sequential access share a disk array, random access and sequential access are executed exclusively, and A uses the disk array. The time when the bus usage is low and the time when B is using the disk array is lower than the CPU usage efficiency, compared to the case where sequential access data transfer and random access CPU processing are executed simultaneously. Resource utilization efficiency decreases, and the performance of the disk array is limited.
[0006]
The object of the present invention is to divide the entire I / O access processing performance provided by the disk array and assign the performance to the disk volume used by each host computer. It is to provide a disk array device having a function of enhancing.
[0007]
[Means for Solving the Problems]
In the present invention, the usage time of the CPU and data transfer path (bus) is independently assigned to each disk volume. That is, a lot of CPU time can be allocated to a volume with many random accesses, and a long usage time can be allocated to a volume with many sequential accesses. Inside the disk array, the CPU and data transfer path (bus) usage time is always measured for each disk volume, and the processing volume is limited so that the usage time ratio specified for each disk volume is not exceeded. Make an assignment. I / O processing requests issued from multiple host computers are queued in the disk array. For example, when data transfer or disk access is being executed for a certain process, another process is processed by the CPU. By doing so, a plurality of processes can be executed in parallel. As a result, high resource utilization efficiency can be maintained for both random access and sequential access while performing performance allocation control.
[0008]
In addition, by selecting an allocation criterion such as a disk volume to be performance-allocated, CPU time, bus usage time, cache memory capacity to be used, etc., flexible performance management can be performed based on access characteristics to the disk volume.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
The first embodiment is an example in which performance allocation is performed by specifying a ratio of CPU to be used and bus time for each disk volume of a disk array.
(1) Overall system configuration
FIG. 1 shows the overall configuration of this embodiment.
[0010]
Two host computers 100 and 101 are connected to the fiber channel interfaces 111 and 112 of the disk array 110 via the fiber channel cables 103 and 104, and read / write data stored in the disk volumes in the disk array. The management console 102 executes a disk array management program and instructs the disk array to start and end the performance allocation process. The management console is connected to the LAN interface 113 of the disk array via a LAN (Local Area Network) cable 105, and instructs the disk array of performance to be allocated to each disk volume.
[0011]
The disk array 110 includes a CPU 120 that controls the overall operation, a timer 121 that is used to measure the CPU usage time of each volume, a memory 122, disk drives 130, 131, and 132 that serve as data recording media, and access to the disk drives. And a transfer time measuring device 123 that measures the communication time between the memory and disk controller and the fiber channel interface.
[0012]
The memory 122 records a performance management table 125, which is management information necessary for performance allocation control, cache data 126 of data recorded in the disk drive, and other management information 127 necessary for general disk array operation. The management information 127 has, for each LU, a ready queue for tasks that wait for CPU free and a wait queue for tasks that are executing processing that does not require the CPU, such as during disk access. An access request issued from the host computer to each LU enters the Ready queue first, and is processed by the CPU when it comes to the head of the queue. In the case of performing disk access or DMA transfer processing, it is placed in the Wait queue. The end of the disk access or transfer process is notified by an interrupt, and the corresponding process enters the Read queue again. Which queue the CPU selects a task from among the queues for each LU is determined by, for example, a round robin method.
[0013]
The timer 121 provides the current time with a high accuracy of about 10 ns, for example, and has a timer interrupt function for interrupting the CPU when a specified time elapses. The transfer time measuring device is connected to a fiber channel interface, CPU, memory, and disk controller, and an existing bus such as a PCI bus can be used for these transfer paths. Each storage area of the disk drives 130, 131, 132 forms a disk volume singly or in plurality. The disk volume can be used as an LU (Logical Unit) defined by, for example, a SCSI (Small Computer System Interface) standard. Here, for simplicity, it is assumed that the disk drives 130, 131, and 132 have LUs 140, 141, and 142, respectively, and the LUs have LU numbers 1, 2, and 3, respectively.
(2) Configuration of transfer time measuring device
Details of the transfer time measuring device 123 are shown in FIG. The LU information addition / deletion means 200 adds information such as the LU number to the data of each LU flowing from the fiber channel interfaces 111 and 112. For example, when the Fiber Channel interface receives a data storage request from a host computer to a certain LU, the request is notified to the CPU, the CPU sets information to be added to the LU information addition / deletion means, and then the Fiber Channel interface transfers it. By sending data to the time measuring device 123, appropriate LU information can be added. All LU data recorded in the memory or disk drive is transferred and recorded together with the LU information. Details of the LU information addition / deletion means are disclosed in, for example, Japanese Patent Laid-Open No. 2000-347815.
[0014]
The transfer time measuring device has a DMA 204 and performs data transfer processing in parallel with CPU processing. When the CPU instructs the DMA 204 to transfer the data of each LU, the LU information of the data to be transferred to a predetermined area in the memory is always prepared, and the LU discriminating means 201 refers to the LU number included in the information As a result, it is determined which LU the data to be transferred is. When the transfer is completed, the LU discriminating unit 201 invalidates the LU information on the memory. When transferring data other than LU data, for example, when notifying the reception of an I / O request from the Fiber Channel interface to the CPU, the CPU does not set valid LU information in the memory. Can be determined. The transfer time measuring means 202 always monitors the data transfer start signals of the buses 114 and 115 and measures the time from the transfer start signal detection to the transfer end. This is realized, for example, by referring to a count of the number of clocks of the bus or a timer in the disk array. The measured time is recorded in the transfer time recording table 203 according to the LU number determined by the LU determination means 201.
[0015]
As shown in FIG. 3, the transfer time recording table 203 records the transfer time for each LU. The transfer time measuring means 202 adds the measured time to the column corresponding to the LU number of the transfer time 302. If the measured data transfer is other than LU data, it is added to the column corresponding to “other than data”.
(3) Configuration of performance management table
Details of the performance management table 125 recorded on the memory 122 are shown in FIG.
[0016]
The performance management table records management data and performance allocation designation data corresponding to each LU and the whole. The processing number upper limit 402 column represents the upper limit of the processing number allocated to each LU within a unit time specified in advance. The number of processes referred to here is the number of times the CPU has taken out and processed from the Ready queue of each LU in the management information 127. The number of processes 403 is the number of processes for each LU up to now. The allocation ratio (CPU) 404 and the allocation ratio (bus) 405 record a ratio indicating how much CPU usage time and bus usage time are allocated to each LU, respectively. The measurement result (CPU usage time) 406 and the measurement result (bus time) 407 record the measurement results of the CPU time and bus time used by each LU within the unit time. The total number of processes, not the individual LUs, does not record the maximum number of processes 402, number of processes 403, allocation ratio (CPU) 404, allocation ratio (bus) 405, and CPU usage time measurement result 406, but the number of processes and CPU usage The time can be calculated by summing the values recorded in each LU. The bus use time measurement result 407 for the whole records a value obtained by removing the transfer time unrelated to the LU data from the measured time.
(4) Explanation of overall operation
When performance allocation is not performed, I / O requests issued from the host computer to the disk array are loaded into the Ready queue for each LU as tasks to be processed in the disk array, and are sequentially processed from the head of the queue. There is no limit to task processing other than selecting a queue from which a task is to be retrieved in a round robin manner. On the other hand, a case where performance allocation is performed will be described with reference to the flowchart of FIG. First, the system administrator designates the ratio of CPU time and bus time allocated to each LU from the management console 102. The specified value is transmitted to the disk array via the LAN 105 and recorded in the fields of the allocation ratios 404 and 405 of the performance management table 125. For example, FIG. 4 shows a state in which 20% of the total CPU time and 70% of the bus time are assigned to LU1. Also, the upper limit of the number of processes is designated as 0 (step 501). The upper limit 0 represents a state where no upper limit is set.
[0017]
Next, the recording of each transfer time in the transfer time recording table 203 in the transfer time measuring device 123 is initialized to 0 (step 502). Further, the measurement result of the performance management table is initialized to 0 (step 503), and the unit time for allocation control management is set to the timer 121 (step 504). This unit time may be a fixed value determined in advance or may be specified from the management console. For example, if 1 second is specified as the unit time, a timer interrupt is notified from the timer to the CPU after 1 second. Until the timer interrupt is received, the CPU and transfer time measuring device process the task and measure the usage time of the CPU and bus for each LU (step 505). When the timer interrupt is received, the transfer time of each LU recorded in the transfer time record table 203 is recorded in the corresponding measurement result 407 in the performance management table. Further, the total transfer time other than each LU and data is recorded in the entire column of the measurement result 407 (step 506). Next, it is determined whether or not the management console has instructed to end the performance allocation control during processing (step 507) .If there is an end instruction, the performance allocation control is ended and the normal operation is resumed (step 507). 509). If an end instruction has not been received, the processing number upper limit 402 of each LU in the performance management table is corrected (step 508), and the process returns to step 502.
(5) Task processing and resource usage time measurement
The operation during task processing in step 505 will be described with reference to the flowcharts of FIGS.
[0018]
FIG. 6 shows the operation of the CPU at step 505. In order to process each LU by the round robin method, a variable n representing the LU number to be processed is initialized to 1 (step 601). If the ready queue of LU n is empty, the process proceeds to step 608 (step 602). If it is not empty, refer to the upper limit (402) of the processing number of LU n in the performance management table and the current processing number (403), and if the upper limit is non-zero and the processing number has reached the upper limit, the process proceeds to step 608 ( Step 603). Otherwise, the current time is acquired from the timer (step 604), and one task is processed from the ready queue (step 605). When the task is completed, the task is deleted. When processing other than the CPU is performed, the task is loaded in the wait queue. When the task processing is completed, the current time is acquired again from the timer, and the elapsed time from the time acquired in step 604 is added to the measurement result (CPU usage time) 406 of the performance management table (step 606). Add to the entire column as well as the column corresponding to LU n. Further, 1 is added to the processing number 403 (step 607). When the above processing is completed, 1 is added to n to process the next LU. If n exceeds the number of LUs, n is initialized to 1 again (step 609), and the processing returns to step 603. With this series of processing, the tasks of each LU can be processed without exceeding the upper limit of the number of processes recorded in the performance management table, and the CPU time used at that time can be measured.
[0019]
FIG. 10 shows the operation of the LU discriminating means 201 and the transfer time measuring means 202 when data and control information are transferred via the transfer time measuring device in step 505. When the DMA 204 or the fiber channel interface in the transfer time measuring device transfers data or control information via the bus 114 or 115, a transfer start signal defined by the bus protocol flows prior to actual data transfer. When the transfer time measuring means detects this signal, the transfer time measurement is started (step 1000). The signal on the bus can be easily detected by constantly monitoring the signal line through which the signal flows. Next, the LU discriminating unit 201 confirms whether valid LU information exists in a predetermined area on the memory (step 1001). If LU information does not exist, it is determined that data other than LU data is being transferred, and the process proceeds to step 1005. If the LU data is being transferred, the LU number is acquired from the LU information (step 1002). Next, the time until the end of transfer is measured (steps 1003 and 1005), and the measurement result is recorded in the transfer time recording table 203. If it is LU data transfer, the measurement result is added to the column corresponding to the LU number of the transfer time 302 (step 1004). If it is not LU data, the measurement result is added to the column corresponding to others (step 1006). With these processes, it is possible to measure the time during which the bus is used for each LU and other data transfer within a unit time.
(6) Calculation of the maximum number of processes
In step 508, the upper limit of the number of processes in the next unit time is calculated based on the CPU and bus usage time of each LU measured within the unit time. Details of the calculation method will be described with reference to FIG.
[0020]
In order to calculate each LU individually, a variable n indicating the number of the LU to be calculated is initialized to 1 (step 701). In the performance management table 125, the processing number 403 of LU n is referred. If the processing number is 0, there is no measurement data for calculating a new upper limit, so the current upper limit is used as it is, and the process proceeds to step 710 (step 702 ). If the number of processes is non-zero, the average CPU usage rate and bus usage rate per process are calculated (step 703). The CPU usage rate is the value obtained by dividing the CPU usage time for the unit time (measured time) by the number of processes, and the bus usage rate is the bus usage time for the time excluding the time for transferring data other than LU data from the unit time. Is divided by the number of processes. Next, the number of processes (integer) that does not exceed the allocation ratios 404 and 405 is calculated based on the usage rate per process (step 704). These values are calculated by dividing the designated allocation ratio by the usage rate per process calculated in step 703. Compare the number of processes calculated based on the CPU usage rate and the number of processes calculated based on the bus usage rate, and record the smaller one as the upper limit of the new processing number in the column of the upper limit of processing number 402 in the performance management table (step 705-707). If this upper limit is 0 (step 708), processing for that LU is not performed at all, so the upper limit is corrected to 1 (step 709). With these series of processes, it is possible to calculate the upper limit of the number of processes appropriate for the allocation ratio designated from the previous measurement result for LU n. This is repeated for all LUs (steps 710 and 711).
[0021]
In the example of LU1 in FIG. 4, the number of processes is 20, the measurement result of CPU usage time is 40ms, and the bus usage time is 500ms. Therefore, if the measurement time is 1 second, the upper limit of the number of processes based on the CPU usage time Is 20% / (40ms * 100% / (1000ms * 20)) = 100, and the upper limit of the number of processes based on the bus usage time is 70% / (500ms * 100% / (995ms * 20)) = 27.86, The new processing limit is 27.
[0022]
Since the usage time of each LU of the CPU or bus is directly measured, highly accurate assignment processing is possible, especially when the transfer length and random sequential characteristics of access from the host computer to each LU are constant. It becomes. Even when the access characteristic changes, it is possible to automatically adjust the upper limit of the number of processing of each LU following the change of the characteristic.
(7) Effect
By assigning the CPU and bus usage time ratios independently, it is possible to assign performance suitable for the access characteristics of each LU. That is, a lot of CPU time can be allocated to an LU with many random accesses, and a much longer usage time can be allocated to an LU with many sequential accesses. In addition, since access to each LU can be executed in parallel within the disk array regardless of random or sequential, high usage efficiency of the CPU and bus can be maintained even when performance allocation control is performed. Furthermore, since the upper limit of the number of tasks to be used as an index value for allocation control is recalculated at regular intervals, allocation control can be performed in accordance with temporal variations in access characteristics. In this embodiment, the transfer time of the buses 114 and 115 is measured by the transfer time measuring device, and the usage time allocation control is performed, but the same applies to the transfer path 127 to the memory, the transfer path to the disk controller, and the like. The usage time allocation can be controlled based on the above principle.
[0023]
In the second embodiment, in addition to the CPU usage time and the bus usage time, a cache capacity allocation ratio is added as a performance allocation criterion, and an arbitrary criterion is selected. Only the parts different from the first embodiment will be described below.
(1) Configuration of the performance management table
The configuration of the performance management table in the present embodiment is shown in FIG. The cache allocation column 809 in the table records the capacity ratio of the cache memory allocated to each LU. This ratio is the ratio of the capacity that can be used in each LU to the total capacity of the cache data area 126 allocated in the memory 122. The used cache capacity column 810 records the ratio of the cache memory currently used by each LU. In the entire column, the memory capacity that the disk array can use as a cache is recorded. In the present embodiment, the performance management table record 810 is updated whenever there is a change in the used cache capacity when the CPU processes a task. In other words, regardless of whether performance allocation control is being executed or not, if a new cache capacity is allocated or a cache capacity that has already been allocated is released by processing of a certain LU, the performance management table of the corresponding LU Correct the record. The assignment attribute column 802 indicates which assignment criterion each LU uses. In the example of FIG. 8, LU2 assigns performance based on CPU usage time, and LU3 assigns performance based on bus usage time and also limits the available cache capacity. LU1 allows unlimited access because no assignment criteria are specified.
(2) Explanation of operation
In the flowchart of FIG. 5, in step 501, a process of recording which allocation attribute is applied to each LU received from the management console in the allocation attribute column 802 of the performance management table is added. In step 605 of FIG. 6, when a new cache capacity is secured for a certain LU, as shown in the flowchart of FIG. 11, the allocation attribute 802 of the performance management table is first referred to and the performance allocation of the LU is It is confirmed whether the cache capacity is set in the attribute (step 1101). If the attribute is not set, the cache is secured (step 1104), but if it is set, it is determined whether or not the capacity ratio specified by the cache allocation ratio 809 is exceeded by newly securing the cache (step 1102). ). If it exceeds, among the cache capacities already secured, the same capacity as the newly secured cache is released in advance (step 1103). Thereafter, by securing the cache, the specified cache allocation capacity ratio can be maintained. Also, as described above, when there is a change in the used cache capacity, the cache capacity record 810 of the performance management table is corrected.
[0024]
In the flowchart of FIG. 7, in step 702, in addition to the case where the number of processes is 0, the allocation attribute column 802 of the performance management table is referenced, and no allocation attribute is set or only the cache attribute is set. Also in this case, change is made to proceed to step 710. In steps 703 and 704, the usage rate and the number of processes are calculated only for the set allocation attribute. In step 705, if the bus use time is not set in the assignment attribute, the process proceeds to step 706. If the CPU use time is not set, the process proceeds to step 707. If both the CPU usage time and the bus usage time are set in the assignment attribute, the smaller processing number is set as a new upper limit, as in step 705 of FIG.
(3) Effect
According to this embodiment, the cache capacity used for each LU can be limited. As a result, a small cache capacity is allocated in advance to LUs with many accesses that can hardly be expected, such as sequential access to extremely large data, and a large number of caches are allocated to other LUs to improve the cache hit rate. Can be made. In addition, by setting one or more combinations of CPU usage time, bus usage time, and cache capacity as performance allocation criteria, or setting nothing, flexible performance management becomes possible. For example, for an LU that is known to issue only a random access with a small transfer length, the management can be simplified by omitting the setting ratio of the bus usage time.
[0025]
In the third embodiment, a function for reporting the current hardware resource usage rate to the management console is added to the second embodiment. Only the parts different from the first embodiment will be described below.
(1) Configuration of the performance management table
FIG. 9 shows a performance management table in this embodiment. In the accumulated CPU usage time 911 and the accumulated bus usage time 912, the total of the CPU usage time 907 and the bus usage time 908 measured for each unit time is recorded.
(2) Explanation of operation
In the flowchart of FIG. 5, processing for initializing each accumulated time in the performance management table to 0 is added to step 501. Further, in step 508, after the upper limit of the number of processes is corrected, a process of adding the CPU and bus usage time measurement results 905 and 906 to the respective accumulated times 911 and 912 is added.
[0026]
Furthermore, when a usage status report instruction is received from the management console 102 via the LAN 105, the used cache capacity 910, accumulated CPU usage time 911, and accumulated bus usage time 912 for each LU in the performance management table 900 are transmitted to the management console. To do. In addition, the accumulated CPU usage time and the accumulated bus usage time are initialized to 0 after transmission.
(3) Effect
By referencing the usage status periodically from the management console, it is possible to check whether the current performance allocation setting is appropriate. In addition, by accumulating the acquired time series data of the usage status in the management console, it recognizes the time zone when the load of each LU is peaked, and can be used for system performance tuning or for prediction of future performance demand. Can be. In this embodiment, usage data is transmitted to the management console via the LAN, but it is also possible to transfer the data from the fiber channel interface to the host computer.
[0027]
【The invention's effect】
As described above, according to the present invention, CPU usage time, bus usage time, and usage cache capacity can be independently assigned to each disk volume in the disk array. As a result, it is possible to perform performance allocation management that is flexible and has high use efficiency of hardware resources in accordance with the access characteristics to the disk volume.
[Brief description of the drawings]
FIG. 1 is an overall configuration diagram of a first embodiment of the present invention.
FIG. 2 shows a configuration of a transfer time measuring device according to the embodiment of the present invention.
FIG. 3 is a configuration of a transfer time recording table in the embodiment of the present invention.
FIG. 4 is a configuration of a performance management table in the first embodiment of the present invention.
FIG. 5 is a flowchart of performance allocation processing according to the embodiment of the present invention.
FIG. 6 is a flowchart for limiting the number of processes in the first embodiment of the present invention.
FIG. 7 is a flowchart of processing number upper limit calculation according to the first embodiment of the present invention.
FIG. 8 is a configuration of a performance management table in the second embodiment of the present invention.
FIG. 9 is a configuration of a performance management table according to the third embodiment of the present invention.
FIG. 10 is a flowchart of bus usage time measurement according to the embodiment of the present invention.
FIG. 11 is a flowchart of cache securing processing according to the second embodiment of the present invention.
[Explanation of symbols]
100, 101 ... Host computer, 102 ... Management console, 110 ... Disk array, 120 ... CPU, 121 ... Timer, 122 ... Memory, 123 ... Transfer time measuring device, 124 ... Disk controller, 125 ... Performance management table, 130, 131, 132 ... a disk drive.

Claims (11)

ディスクボリューム毎に、当該ディスクボリュームへのアクセス処理に使用したCPU使用時間を計測する手段と、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられたCPU使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算する手段と、
単位時間あたりの各ディスクボリュームの処理量が、計算された前記上限を超えないように制限する手段と、を備えるディスクアレイシステム。
For each disk volume, a means for measuring the CPU usage time used to access the disk volume,
Means for calculating the upper limit of the processing amount of each disk volume per unit time based on the measurement result and the ratio of the CPU usage time allocated in advance to each disk volume;
And a means for limiting the processing amount of each disk volume per unit time so as not to exceed the calculated upper limit.
請求項1において、
ディスクアレイ内のデータ転送路の少なくとも一部について、ディスクボリューム毎に、当該ディスクボリュームへのアクセス処理に使用した時間を計測する手段と、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられた転送路使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算する手段と、を備えるディスクアレイシステム。
In claim 1,
Means for measuring, for each disk volume, at least part of the data transfer path in the disk array, the time used for access processing to the disk volume;
A disk array system comprising: means for calculating an upper limit of a processing amount of each disk volume per unit time based on the measurement result and a ratio of a transfer path usage time previously assigned to each disk volume.
請求項2において、
各ディスクボリュームに割り当てるCPU使用時間の割合および転送路使用時間の割合を、LAN経由で受信する手段と、を備えるディスクアレイシステム。
In claim 2,
A disk array system comprising means for receiving, via a LAN, a percentage of CPU usage time and a percentage of transfer path usage time allocated to each disk volume.
請求項3において、
CPU使用時間あるいは転送路使用時間に基づいて計算された、単位時間あたりの各ディスクボリュームの処理量の上限を、定期的に再計算する手段と、を備えるディスクアレイシステム。
In claim 3,
A disk array system comprising: means for periodically recalculating the upper limit of the processing amount of each disk volume per unit time calculated based on CPU usage time or transfer path usage time.
請求項4において、
ホストコンピュータから受信したディスクボリュームへの書き込みデータに、当該ディスクボリュームに関する属性情報を付加する手段と、
バス転送中のデータに付加された属性情報に基づいて、転送中のデータが属すディスクボリュームを判別する手段と、を備えるディスクアレイシステム。
In claim 4,
Means for adding attribute information related to the disk volume to the write data to the disk volume received from the host computer;
A disk array system comprising: means for determining a disk volume to which the data being transferred belongs based on attribute information added to the data being transferred by the bus.
請求項5において、
使用時間の計測対象となるデータ転送路の一部として、ホストコンピュータへのチャネルインタフェースに接続されるバス、を備えるディスクアレイシステム。
In claim 5,
A disk array system comprising a bus connected to a channel interface to a host computer as part of a data transfer path for which usage time is measured.
請求項4において、
各ディスクボリュームに割り当てるキャッシュ容量が、あらかじめ指定した上限を超えないように制限する手段と、を備えるディスクアレイシステム。
In claim 4,
And a means for limiting the cache capacity allocated to each disk volume so as not to exceed a predetermined upper limit.
請求項7において、
前記指定した上限を超えないように制限する手段を適用するディスクボリュームを選択する手段と、を備えるディスクアレイシステム。
In claim 7,
A disk array system comprising: means for selecting a disk volume to which means for limiting so as not to exceed the specified upper limit is selected.
請求項8において、
各ディスクボリュームごとに、単位時間あたりのCPU使用時間、転送路使用時間を管理コンソールから指示される期間にわたって累積する手段と、
ディスクボリュームごとに記録された、前記累積使用時間あるいは現在の使用キャッシュ容量のいずれか一つあるいは複数を管理コンソールに送信する手段と、を備えるディスクアレイシステム。
In claim 8,
For each disk volume, a means for accumulating CPU usage time and transfer path usage time per unit time over a period instructed by the management console,
A disk array system comprising: means for transmitting one or more of the accumulated usage time and the current usage cache capacity recorded for each disk volume to a management console.
ディスクボリュームごとに、当該ディスクボリュームへのアクセス処理に使用したCPU使用時間を計測し、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられたCPU使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算し、
単位時間あたりの各ディスクボリュームの処理量が、計算された前記上限を超えないように制限することを特徴とするディスクアレイの性能割り当て方法。
For each disk volume, measure the CPU usage time used to access the disk volume,
Based on the measurement result and the percentage of CPU usage time allocated in advance to each disk volume, calculate the upper limit of the processing amount of each disk volume per unit time,
A disk array performance allocation method, characterized in that a processing amount of each disk volume per unit time is limited so as not to exceed the calculated upper limit.
請求項10において、
ディスクアレイ内のデータ転送路の少なくとも一部について、ディスクボリューム毎に、当該ディスクボリュームへのアクセス処理に使用した時間を計測し、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられた転送路使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算することを特徴とするディスクアレイの性能割り当て方法。
In claim 10,
For at least a part of the data transfer path in the disk array, for each disk volume, measure the time used to access the disk volume,
A disk array performance allocation method, comprising: calculating an upper limit of a processing amount of each disk volume per unit time based on the measurement result and a ratio of transfer path usage time allocated to each disk volume in advance.
JP2001327106A 2001-10-25 2001-10-25 Disk array system Expired - Fee Related JP3812405B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001327106A JP3812405B2 (en) 2001-10-25 2001-10-25 Disk array system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001327106A JP3812405B2 (en) 2001-10-25 2001-10-25 Disk array system

Publications (2)

Publication Number Publication Date
JP2003131814A JP2003131814A (en) 2003-05-09
JP3812405B2 true JP3812405B2 (en) 2006-08-23

Family

ID=19143375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001327106A Expired - Fee Related JP3812405B2 (en) 2001-10-25 2001-10-25 Disk array system

Country Status (1)

Country Link
JP (1) JP3812405B2 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4320247B2 (en) 2003-12-24 2009-08-26 株式会社日立製作所 Configuration information setting method and apparatus
JP4643198B2 (en) * 2004-07-28 2011-03-02 株式会社日立製作所 Load balancing computer system, route setting program and method thereof
JP4625675B2 (en) * 2004-10-20 2011-02-02 株式会社日立製作所 Storage device resource allocation method and storage device
JP4609848B2 (en) * 2005-04-06 2011-01-12 株式会社日立製作所 Load balancing computer system, route setting program and method thereof
JP4679494B2 (en) * 2006-11-22 2011-04-27 Necシステムテクノロジー株式会社 Disk array device system, disk array device control method, and program
JP5094193B2 (en) 2007-04-16 2012-12-12 株式会社日立製作所 Storage system and control method thereof
JP2010122814A (en) * 2008-11-18 2010-06-03 Hitachi Ltd Storage system and operation method thereof
JP6244972B2 (en) * 2014-02-21 2017-12-13 富士通株式会社 Storage control device, storage device and storage control program
JP2020046752A (en) * 2018-09-14 2020-03-26 キオクシア株式会社 Storage device and information processing system
CN113110805B (en) * 2021-05-06 2023-06-02 杭州海康威视数字技术股份有限公司 Method and device for interaction of internal data of disk array and electronic equipment

Also Published As

Publication number Publication date
JP2003131814A (en) 2003-05-09

Similar Documents

Publication Publication Date Title
US11973520B2 (en) Techniques for determining compression tiers and using collected compression hints
JP4318914B2 (en) Storage system and dynamic load management method thereof
US9026694B1 (en) Techniques for workload redistibution
US8892780B2 (en) Management of shared storage I/O resources
JP4922496B2 (en) Method for giving priority to I / O requests
US6185639B1 (en) System and method to reduce a computer system's interrupt processing overhead
US9003150B2 (en) Tiered storage system configured to implement data relocation without degrading response performance and method
US7401198B2 (en) Maximizing storage system throughput by measuring system performance metrics
US8566553B1 (en) Techniques for automated evaluation and movement of data between storage tiers
JP5057792B2 (en) Storage system with a function to alleviate performance bottlenecks
US7032041B2 (en) Information processing performing prefetch with load balancing
US20080147960A1 (en) Storage apparatus and data management method using the same
US20070266218A1 (en) Storage system and storage control method for the same
JPH09258907A (en) Highly available external storage device having plural storage disk parts
US8694698B2 (en) Storage system and method for prioritizing data transfer access
US20050240934A1 (en) Task management based on system utilization
US6311257B1 (en) Method and system for allocating memory for a command queue
JP3812405B2 (en) Disk array system
EP0853281A2 (en) Raid apparatus and access control method therefor
US9235516B1 (en) Techniques using cacheless read and deferred caching
US11593182B2 (en) Storage system
US7870335B2 (en) Host adaptive seek technique environment
JP2019191886A (en) Information processing apparatus, information processing method, and program
US6917569B1 (en) Method for determining seek times in a disk array storage device
US10783096B2 (en) Storage system and method of controlling I/O processing

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060221

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060420

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060522

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090609

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110609

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110609

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130609

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees