JP3812405B2 - Disk array system - Google Patents
Disk array system Download PDFInfo
- 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
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
[0011]
The
[0012]
The
[0013]
The
(2) Configuration of transfer time measuring device
Details of the transfer
[0014]
The transfer time measuring device has a
[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
(3) Configuration of performance management table
Details of the performance management table 125 recorded on the
[0016]
The performance management table records management data and performance allocation designation data corresponding to each LU and the whole. The processing number
(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
[0017]
Next, the recording of each transfer time in the transfer time recording table 203 in the transfer
(5) Task processing and resource usage time measurement
The operation during task processing in
[0018]
FIG. 6 shows the operation of the CPU at
[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
(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
[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
[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
(2) Explanation of operation
In the flowchart of FIG. 5, in
[0024]
In the flowchart of FIG. 7, in
(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
(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
[0026]
Furthermore, when a usage status report instruction is received from the management console 102 via the
(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使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算する手段と、
単位時間あたりの各ディスクボリュームの処理量が、計算された前記上限を超えないように制限する手段と、を備えるディスクアレイシステム。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.
ディスクアレイ内のデータ転送路の少なくとも一部について、ディスクボリューム毎に、当該ディスクボリュームへのアクセス処理に使用した時間を計測する手段と、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられた転送路使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算する手段と、を備えるディスクアレイシステム。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.
各ディスクボリュームに割り当てる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.
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.
ホストコンピュータから受信したディスクボリュームへの書き込みデータに、当該ディスクボリュームに関する属性情報を付加する手段と、
バス転送中のデータに付加された属性情報に基づいて、転送中のデータが属すディスクボリュームを判別する手段と、を備えるディスクアレイシステム。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.
使用時間の計測対象となるデータ転送路の一部として、ホストコンピュータへのチャネルインタフェースに接続されるバス、を備えるディスクアレイシステム。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.
各ディスクボリュームに割り当てるキャッシュ容量が、あらかじめ指定した上限を超えないように制限する手段と、を備えるディスクアレイシステム。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.
前記指定した上限を超えないように制限する手段を適用するディスクボリュームを選択する手段と、を備えるディスクアレイシステム。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.
各ディスクボリュームごとに、単位時間あたりの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使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算し、
単位時間あたりの各ディスクボリュームの処理量が、計算された前記上限を超えないように制限することを特徴とするディスクアレイの性能割り当て方法。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.
ディスクアレイ内のデータ転送路の少なくとも一部について、ディスクボリューム毎に、当該ディスクボリュームへのアクセス処理に使用した時間を計測し、
前記計測結果およびあらかじめ各ディスクボリュームに割り当てられた転送路使用時間の割合に基づいて、単位時間あたりの各ディスクボリュームの処理量の上限を計算することを特徴とするディスクアレイの性能割り当て方法。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.
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)
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 |
-
2001
- 2001-10-25 JP JP2001327106A patent/JP3812405B2/en not_active Expired - Fee Related
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 |