JP4654273B2 - ストレージ装置および制御装置 - Google Patents
ストレージ装置および制御装置 Download PDFInfo
- Publication number
- JP4654273B2 JP4654273B2 JP2008182773A JP2008182773A JP4654273B2 JP 4654273 B2 JP4654273 B2 JP 4654273B2 JP 2008182773 A JP2008182773 A JP 2008182773A JP 2008182773 A JP2008182773 A JP 2008182773A JP 4654273 B2 JP4654273 B2 JP 4654273B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- allocation
- pair
- queue
- allocated
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Description
図11は従来の仮想化ストレージシステムの構成例を模式的に示す図である。この図11に示す例においては、2つのホスト501a,501bとRAID(Redundant Arrays of Inexpensive Disks)装置605とをそなえて構成された仮想化ストレージシステム600を示している。
キュー606は、RAID装置600がホスト501a,501bからI/Oコマンドを受け付けた場合に、これらのI/Oコマンドを実行するための種々の情報を格納する格納領域(メモリ)である。例えば、このキュー606には、I/Oコマンドの実行に際して用いられる返り値や、処理の進行状況を示す情報,ステータス,I/Oコマンド自体等が格納されるようになっている。
コントローラ603は、ホスト501a,501bに対して、論理デバイス(LUN)を提供し、これらのホスト501a,501bから受信したI/Oコマンドに応じて、HDD604−1〜604−4に対する書き込みおよび読み出しの制御を行なうものである。
すなわち、ホスト501a,501bが、RAID装置605から提供されるLUNに対してアドレス指定を行なうことによりI/Oコマンドをそれぞれ送信すると、コントローラ603は、これらのI/Oコマンドを受信して順次キュー606に格納する(割り当てる)。
また、ホスト501a,501bからI/Oコマンドを受信し実行するに際して、キュー606の空き容量不足等により、これらのI/Oコマンドを実行するための種々の情報を格納することができない場合、すなわち、キュー資源を割り当てることができない場合には、そのI/Oコマンドは拒絶され、送信元のホスト501a,501bに対して、キュー606が満杯であることを示すステータス(QFULL)とともに返されるようになっている(QFULL応答)。
また、ホスト501a,501bにおいては、RAID装置605からの応答待ちによりアプリケーションが永久待機させられることを防止するために、送信するI/Oコマンドに対してタイムアウト時間を設定する。そして、このタイムアウト時間を経過してもI/Oコマンドが処理されない(タイムアウト)場合に、RAID装置600に対して、そのI/Oコマンドの処理の中止を指示するとともに、同一のI/Oコマンドを再試行するようになっている(タイムアウトイベント)。
図12(a)〜(c)は従来の仮想化ストレージシステムにおけるキューの論理サイズの調整手法を説明するための図であって、図12(a)は各キューに対して割り当てる論理サイズの変更前の状態を例示する図、図12(b)は図12(a)の状態においてQFULL率が高いLUNの論理サイズを増加させた状態を例示する図、図12(c)は図12(b)の状態において更に他のLUNに対するI/Oコマンドが受け付けられた状態を例示する図である。
また、特許文献1においては、上述の如くQFULL率が閾値を超えた場合にキューの論理サイズを増大させる手法の他に、タイムアウト率が閾値を超えた場合に、キューの論理サイズを減少させることも記載されている。
しかしながら、上述の如き従来の仮想化ストレージシステムにおいては、閾値を超えたLUNのキュー資源を無制限に増大することはできず、QFULLイベントの発生を低減することはできない。
図1は本発明の一実施形態としてのストレージシステムの構成を模式的に示す図である。
本発明の一実施形態としてのストレージシステム100は、複数(図1に示す例では4つ)のホスト(外部装置)1a,1b,1c,1d,端末装置42およびRAID装置60をそなえて構成されている。
ディスクアレイ30は、複数(図1に示す例では4つ)の記憶装置31−1〜31−4をそなえて構成され、これらの記憶装置31−1〜31−4を論理的な一つの記憶装置として取り扱うことができるものである。
さらに、以下、通信ポートを示す符号としては、複数の通信ポートのうち1つを特定する必要があるときには符号41a,41b,41c,41dを用いるが、任意の通信ポートを指すときには符号41を用いる。
すなわち、本ストレージシステム100においては、ホスト1が、RAID装置60から提供されるLUNに対してアドレス指定行なってI/Oコマンドをそれぞれ送信すると、コントローラ40は、これらのI/Oコマンドを受信して、順次、キュー資源に格納し、これらのI/Oコマンドに従って、HDD31に対するデータの書き込みまたは読み出しを実行するのである。
キュー50は、RAID装置60がホスト1からI/Oコマンドを受け付けた場合に、これらのI/Oコマンドを実行するための種々の情報を格納する格納領域(メモリ)である。
例えば、このキュー50には、I/Oコマンドの実行に際して用いられる返り値や、処理の進行状況を示す情報(実行位置やステータス等),I/Oコマンド自体が格納されるようになっており、これらの情報が各キュー資源に格納されるようになっている。
本ストレージシステム100においては、この記憶部20には、実施情報21およびキューテーブルリンク22が格納されるようになっている。
ここで、受付コマンド数は、単位時間内にホスト1から受け付けたI/Oコマンドの数であり、最大キューデプスは、単位時間あたりに並行して処理を行なったI/Oコマンドの実行数(最大並行実行コマンド数)である。又、キューフル数は、単位時間内にホスト1に対して行なったQFULL応答の数である。
また、これらの受付コマンド数,最大キューデプスおよびキューフル数を決定するために用いる単位時間は任意に設定することができ(1分,30秒,15秒等)、例えば、ユーザが後述する端末装置42を介して任意に設定・変更することができるようになっている。
図2は本発明の一実施形態としてのストレージシステム100における実施情報21の例を示す図である。
なお、この図2中においては、便宜上、LUN0に関係するコマンド授受対にのみ、受付コマンド数,最大キューデプスおよびQFULL数を示し、LUN1〜LUN3に関係するコマンド授受対についての受付コマンド数,最大キューデプスおよびQFULL数の図示を省略している。
キューテーブルリンク22は、ホスト1とLUNとの各組合せ(コマンド授受対)に割り当てられた各キュー資源数を管理するものである。
キューテーブルリンク22は、この図3に示すように、複数のキューテーブル221をリンクポインタ222によって相互に関連付ける(リンクを張る)ことによって構成されている。又、キューテーブル221は、ホスト1とLUNとの各組合せ(コマンド授受対)に対して、そのコマンド授受対に割り当てられたキュー資源数(割当QRB数)を対応付けることにより構成されている。
また、本ストレージシステム100においては、キュー資源数を複数個(k個)単位で管理するようになっており、例えば、本実施形態においては4個(k=4)のキュー資源を1QRB(Queue Resource Block)として、このQRBの個数(QRB数)により、キュー資源の割当個数を管理するようになっている。
なお、以下、1つのQRBを構成するキュー資源の数(k)を、QRB構成数という場合がある。
さらに、以下、複数のQRBを示す際に、“QRB”の前にその個数を付して表わす場合がある。例えば、6個のQRBを6QRBと示す場合がある。
CPU(Central Processing Unit)10は、記憶部20や図示しない記憶装置に格納されたOS(Operating System)やプログラムを実行することにより、種々の演算や制御を行ない、種々の機能を実現するものである。本ストレージシステム100においては、CPU10は、記憶部20等に格納されたキュー資源割当管理プログラムを実行することにより、実施情報管理部11,割当個数決定部12,キュー資源割当個数管理部13,割当制御部14およびドライブ制御部15として機能するようになっている。
また、本ストレージシステム100においては、割当個数決定部12は、QRB単位でコマンド授受対に対して割り当てる資源の数を決定するようになっている。
また、本ストレージシステム100においては、1つのLUNに割り当てるキュー資源の数(1つのLUNあたりのキュー資源数)にも制限が設けられており、例えば、1つのLUNに関して、同時に割り当てられるキュー資源の総和が、この制限値(例えば、1024個、すなわち、256QRB)を超えることがないようになっている。
さらに、本ストレージシステム100においては、割当個数決定部12は、I/Oコマンドの受付数が多いLUN(コマンド授受対)に対してはキュー資源を多めに、又、I/Oコマンドの受付数が少ないLUN(コマンド授受対)に対してはキュー資源を少なめに割り当てる(割り振る)ようになっている。
なお、本ストレージシステム100においては、あるホスト1からあるLUNに対して最初に送信されるI/Oコマンドに対して、コントローラ40は、実行もしくはBUSY応答を行なうようになっており、このような最初に送信されるI/Oコマンドに対してQFULL応答を行なうことがないようになっている。
なお、このようなホスト1であっても、一般に、I/Oコマンドについて、RAID装置からBUSY応答が行なわれた場合には、リトライが行なわれるので影響が少ない。
例えば、この図4に示す例においては、フリープールFPに9個の未割当QRB(36個の未割当キュー資源)が格納された状態を示している。
このフリープールFPは、仮想的に設けられた領域(空間,メモリ領域)であって、例えば、割当が行なわれていないキュー資源に対応させて、割当が行なわれていないことを示す識別情報(フラグ等)を設定することにより、この識別情報が設定されているキュー資源が、割り当てられていない、すなわち、フリープールFPにあるとして取り扱うことができるようになっている。
なお、以下、フリープールFPに格納されている、割り当てが行なわれていないQRBのことを未割当QRBという場合があり、同様に、割り当てが行なわれていないキュー資源のことを未割当キュー資源という場合がある。
キュー資源割当個数管理部(割当個数管理部)13は、各コマンド授受対に対応させて、キュー資源の割当個数(割当QRB数)を管理するものであり、割当個数決定部12によって決定された割当QRB数に基づき、キューテーブルリンク22(キューテーブル221)を生成・管理するようになっている。
割当制御部14は、キュー資源に対して、I/Oコマンド等を割り当てるものであって、キュー資源割当個数管理部13によって管理されている割当QRB数に基づいて、その割当QRB数を上限値とする数のキュー資源に、I/Oコマンド等を割り当てるようになっている。
また、この割当制御部14によるキュー資源にI/Oコマンド等を割り当てる手法には既知の種々の技術を用いることができるものであり、その具体的な説明は省略する。
また、このドライブ制御部15は、実際に搭載した物理ディスクであるHDD31−1〜31−4上に、ホスト1へ提供する論理デバイスの規定のデータ形式に従いデータを格納するようになっている。
端末装置42は、RAID装置60に対する種々の設定や制御を行なうための端末装置である。この端末装置42は、図示しない表示装置や入力装置(キーボードやマウス等)をそなえて構成されるとともに、RAID装置60に通信可能に接続され、ユーザが、この端末装置42から入力操作を行なうことにより、RAID装置60における種々の設定や管理を行なうことができるようになっている。
また、端末装置42は、実施情報21を計測するための単位時間を設定することもできるようになっており、ユーザが、この端末装置42を介して、実施情報21を計測するための単位時間を任意に設定することができる。
(a)初期状態
本ストレージシステム100において、例えば、電源投入時やリセット時の他、ホスト1から特定のジョブを流し始める(開始する)前の状態等を初期状態という。
そして、この初期状態において、実施情報管理部11は、実施情報21の取得(所定時間あたりの、応答コマンド数,最大キューデプスおよびQFULL数の各計数)を開始するようになっている。
例えば、ホスト1からジョブを流し始める際等、ホスト1からLUNに対して最初のI/Oコマンドが送信された場合には、割当個数決定部12は、先ず、フリープールFPを参照して、このフリープールFPにQRBがある場合、すなわち、未割当RQBがある場合には、そのI/Oコマンドの送信元のホスト1と送信先のLUNによって構成されるコマンド授受対に対して、フリープールFPから所定個数(初期割当個数;例えば8個)のQRBを取得して設定するようになっている。
図5は本発明の一実施形態としてのストレージシステム100の割当個数決定部12により初期割当個数のQRBが設定されたコマンド授受対のキューテーブルの例を示す図である。
また、割当個数決定部12は、フリープールFPにある未割当QRBをI/Oコマンドに割り当てるに際して、フリープールFPに充分な未割当QRBが無く、コマンド授受対に対して初期割当個数のQRBを割り当てることができない場合には、このQRBの割当設定を行なうコマンド授受対[ホストA−LUN3]とは異なる他のコマンド授受対から、余剰のQRBを寄せ集めて獲得するようになっている。
この図6に示すような状態において、割当個数決定部12は、この新たに行なわれたホストCからLUN0に対するI/Oコマンドについて、コマンド授受対[ホストC−LUN0]に対してQRBの割り当てを行なう(以下、QRB数の割当を行なう対象のコマンド授受対のことを対象コマンド授受対という場合がある)のであるが、フリープールFPには5個の未割当QRBしかないので、このフリープールFPにある未割当QRBだけでは初期割当個数である8個のQRBを対象コマンド授受対[ホストC−LUN0]に対して割り当てることができない。
ここで、余剰のQRBの数(余剰QRB数)とは、そのコマンド授受対に対して割り当てられているQRBの数から、最大キューデプスと同数のキュー資源を充足する(相当する)QRBの数(必須QRB数)を減算して得られる数であり、以下の式により求めることができる。
なお、最大キューデプスと同数のキュー資源を充足するQRBの数(必須QRB数)とは、最大キューデプスと同数のキュー資源を含む(充足する)最低限のQRBの数であり、具体的には、最大キューデプスの値をQRB構成数(n)で割った値の端数(剰余)もしくは小数部を切り上げて得られる整数値である。
従って、コマンド授受対[ホストA−LUN3]の余剰QRB数は、割当QRB数“6”−必須QRB数“4”=2として求められる。
そして、割当個数決定部12は、コマンド授受対[ホストA−LUN3]の余剰QRB数“2”とコマンド授受対[ホストB−LUN1]の余剰QRB数“1”とを、コマンド授受対[ホストC−LUN0]に割当可能な未割当QRB数“5”に加算する(割り振る)ことにより、コマンド授受対[ホストC−LUN0]に対して、初期割当個数である8個のQRBを割り当てる。
具体的には、図6の例において、コマンド授受対[ホストA−LUN3]における余剰QRB数“2”をコマンド授受対[ホストC−LUN0]に割り振る(移動する)ことにより、コマンド授受対[ホストA−LUN3]の割当QRB数を“6”から“4”に減少させる。同様に、コマンド授受対[ホストB−LUN1]においても、余剰QRB数“1”をコマンド授受対[ホストC−LUN0]に割り振る(移動する)ことにより、コマンド授受対[ホストB−LUN1]の割当QRB数を“3”から“2”に減少させるのである。
すなわち、割当個数決定部12は、対象コマンド授受対に対してQRBの割当を行なうに際して、他のコマンド授受対からその余剰QRBを取得し、この取得した余剰QRBを対象コマンド授受対に対して割り当てる(割当QRB数に加算する)ようになっており、対象コマンド授受対にQRBを割り当てるために、他のコマンド授受対から余剰QRBを獲得するのである。
例えば、フリープールFPに3個しか未割当QRBが存在していない状態において、他のコマンド授受対から合わせて3つの余剰QRBしか獲得できなかった場合には、割当個数決定部12は、その対象コマンド授受対に対して6QRBを割り当てる(割当QRB数=6)。
また、割当個数決定部12は、QRBの割当個数の決定に際して、フリープールFPに1つの未割当QRBもなく、且つ、他のコマンド授受対からも余剰のQRBを獲得することができない場合には、実施情報21を参照して、所定期間内においてQFULLイベントが発生していない(QFULL数=0)他のコマンド授受対のうち、割当QRB数が“2”以上のコマンド授受対から1つのQRBを獲得して、対象コマンド授受対に対して割り当てるようになっている。
この図7に示す例においては、コマンド授受対[ホストA−LUN3]およびコマンド授受対[ホストB−LUN1]において、QFULLイベントが発生しておらず、又、これらのコマンド授受対[ホストA−LUN3]およびコマンド授受対[ホストB−LUN1]のいずれも2以上の割当QRB数をそなえている。
なお、本実施形態においては、これらの所定期間内においてQFULLイベントが発生していない、割当QRB数が“2”以上の他のコマンド授受対の中から、QRBを獲得する一のコマンド授受対をラウンドロビン手法により決定しているが、これに限定されるものではなく、例えば、これらのコマンド授受対の中からランダムに一のコマンド授受対を決定してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
なお、このような1つのQRBを獲得することができないケースを想定して、予め1以上のQRB(キュー資源)を確保しておき、1つのQRBを獲得することができない場合に、この確保してあったQRBを使用してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
本ストレージシステム100において、ホスト1からLUNに対してI/Oコマンドが出力された場合において、そのコマンド授受対(対象コマンド授受対)に割り当てられているキュー資源数が32(割当QRB数=8)未満である場合であって、フリープールFPに未割当QRBがある場合には、割当個数決定部12は、フリープールFPからその未割当QRBを獲得して、対象コマンド授受対に割り当てる。
一方、そのコマンド授受対(対象コマンド授受対)に割り当てられているキュー資源数が32(割当QRB数=8)以上の場合には、フリープールFPに未割当QRBがあっても、そのタイミングではフリープールFPから未割当QRBを獲得することなく、QFULL応答を行なう。
本ストレージシステム100においては、割当個数決定部12は、定期的にキュー資源のバランシングを実施するようになっている。以下、この割当個数決定部12によるキュー資源のバランシング手法について説明する。
なお、割当個数決定部12は、キュー資源のバランシングをQRB単位で行なうようになっており、又、このバランシングを、I/Oコマンド等のコマンド動作と並列にバックグラウンドで行なうようになっている。
具体的には、割当個数決定部12は、単位時間あたりの受付コマンド数が“0”のコマンド授受対の割当QRB数を“0”にするとともに、そのコマンド授受対における“0”にする前に設定されていた割当QRB数をフリープールFPの未割当QRBの数に加算することにより、キュー資源をフリープールFPに解放するようになっている。
図8は本発明の一実施形態としてのストレージシステム100の割当個数決定部12によるキュー資源のバランシング手法を説明するための図であって、余剰のQRBをフリープールFPに解放する手法を説明するための図である。
例えば、図8に示す例においては、コマンド授受対[ホストA−LUN3]における余剰キュー資源数は、以下の式により求められる。
すなわち、コマンド授受対[ホストA−LUN3]における余剰キュー資源数“10”は4以上であるので、割当個数決定部12は、この余剰キュー資源数に含まれる2QRB(余剰QRB数=2)をフリープールFPに解放する。
図9は本発明の一実施形態としてのストレージシステム100の割当個数決定部12によるキュー資源のバランシング手法を説明するための図であって、コマンド授受対間でキュー資源数を均等に分配する手法を説明するための図である。
このような状態において、例えば、フリープールFPに9個の未割当QRB(9QRB)がある場合には、4つのコマンド授受対全体で30個のQRB(30QRB)存在することになる。このような場合に、割当個数決定部12は、この30QRBを4つのコマンド授受対に均等に分配する(割る)ことにより、1つのコマンド授受対に対して7QRBを割り当てるのである。
また、割当個数決定部12は、1回の定期キューバランシングにおいて割当QRB数を増大させる数、すなわち、キューバランシングを行なう前の割当QRB数からキューバランシング後の割当QRB数の増加数に制限に制限(最大増大キュー数)を設けてもよい。
これらの手法は、特に、割当QRB数がLUN毎(コマンド授受対毎)に異なる初期段階等におけるキュー資源のバランシングに適している。
また、割当個数決定部12は、キュー資源の分配率を、LUN毎(コマンド授受対毎)の負荷割合(受けたI/Oコマンド数)やQFULL率(QFULL数÷受付コマンド数)を使用してそれに見合った割合としてもよい。このような手法は、例えば、LUN毎(コマンド授受対毎)のI/Oコマンドが安定している段階などに適している。
さらに、例えば、本ストレージシステム100のユーザが、ストレージに対する他のジョブ(夜間バックアップ等の業務)を行なう時刻等のスケジュールを設定した場合には、その時刻(ジョブ設定時刻)を境にLUNの使用割合が全く変わることが予測される。
重み(W)=(割当QRB数)÷(1−n×QFULL率)・・・(1)
なお、nはQFULL係数であって、任意の値(例えば、0.5程度)であり、以下、本実施形態においては、QFULL係数(n)=0.5の例を示す。
図10は本発明の一実施形態としてのストレージシステム100の割当個数決定部12によるキュー資源のバランシング手法を説明するための図であって、重み(W)を考慮したバランシング手法を説明するための図である。
従って、このコマンド授受対[ホストA−LUN0]の重み(W:ホストA−LUN0)は、以下に示すように求められる。
同様にして、他のコマンド授受対[ホストA−LUN3],コマンド授受対[ホストB−LUN1]およびコマンド授受対[ホストC−LUN0]の各重み(W)は、それぞれ以下に示すように求められる。
ホストA−LUN0:重み(W)=4÷(1−0.5×1000/3000)=7.20
ホストB−LUN1:重み(W)=4÷(1−0.5×800/1000)=5.00
ホストC−LUN0:重み(W)=4÷(1−0.5×500/4000)=8.53
ここで、上述の如く計算した重み(W)をLUN毎(コマンド授受対毎)に比較して増減を調整するために、例えば、以下の式(2)を用いて割当QRB数を決定することによりバランシングを行なってもよい。
例えば、図10に示す例において、仮にフリープールFPに未割当QRBが9個あった場合に、QFULL数≠0のコマンド授受対でQRBの総数は21個なので、トータルで30個のQRBがある。
このような例において、上述した式(2)に基づき、各コマンド授受対におけるバランシング後の割当QRB数を以下のように求めることができる。
ホストA−LUN3:割当QRB数=30×7.20÷26.06=8.29≒8個
ホストB−LUN1:割当QRB数=30×5.00÷26.06=5.76≒5個
ホストC−LUN0:割当QRB数=30×8.53÷26.06=9.82≒9個
また、仮に、フリープールFPに未割当QRBがなかった場合には、トータルで21個のQRBがある。この場合においては、各コマンド授受対におけるバランシング後の割当QRB数を以下のように求めることができる。
ホストA−LUN3:割当QRB数=21×7.20÷26.06=5.80≒5個
ホストB−LUN1:割当QRB数=21×5.00÷26.06=4.03≒4個
ホストC−LUN0:割当QRB数=21×8.53÷26.06=6.83≒6個
なお、上記例においては、割当QRB数の決定に際して、便宜上、小数点以下を切捨てることにより求めているが、これに限定されるものではなく、例えば、QRB総数が足りるのであれば四捨五入してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
このように、本発明の一実施形態としてのストレージシステム100によれば、複数のコマンド授受対(LUN)間において、I/Oコマンドの実行数のバランスを良くすることができ、I/Oコマンドを効率的に処理することができる。又、この際、キュー資源の制限を考慮した状態でキュー資源を効率的に使用することができる。
また、本ストレージシステム100においては、キュー資源の割当個数をQRB単位(QRB構成数)で管理しているので、対象コマンド授受対に対してキュー資源を割り当てる際の処理の負荷を軽減し、処理を高速化することができる。
また、キュー資源の割当個数をQRB単位で管理することにより、重み(W)の算出を簡略化して行なうことができ、これによっても、バランシング処理を軽減することができるのである。
また、割当個数決定部12が、最初のI/Oコマンドの処理時に、対象コマンド授受対に対して初期割当個数のQRBを設定することにより、そのI/Oコマンドを確実に処理することができる。
また、この際、余剰QRBを提供したコマンド授受対においても、最大キューデプスに相当するキュー資源の数を満たすQRBが引き続き割り当てられているので、これらのコマンド授受対においてQFULL応答が生じるおそれが低く、本ストレージシステム100の処理速度が低減することがなく、高い信頼性を維持することができる。
そして、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
なお、本発明の各実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
(付記1) 複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置であって、
該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、
該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部とをそなえることを特徴とする、ストレージ装置。
該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえることを特徴とする、付記1記載のストレージ装置。
(付記3) 該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、付記2記載のストレージ装置。
該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させることを特徴とする、付記3記載のストレージ装置。
(付記6) 該実施情報管理部が、単位時間あたりの該外部装置から受け付けたコマンド数を該実施情報として管理し、
該割当個数決定部が、前記単位時間あたりの外部装置から受け付けたコマンド数が0の該コマンド授受対に対応する該割当個数を0とすることを特徴とする、付記5記載のストレージ装置。
(付記8) 新たに該外部装置から受け付けた該データ入出力要求コマンドを該コマンド処理資源に割り当てることができないキューフル状態となった場合に、該割当個数決定部が、当該キューフル状態が生じた該論理デバイスに関する該コマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、付記5〜付記7のいずれか1項に記載のストレージ装置。
(付記10) 複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置の制御装置であって、
該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、
該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部とをそなえることを特徴とする、制御装置。
該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえることを特徴とする、付記10記載の制御装置。
(付記12) 該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、付記11記載の制御装置。
該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させることを特徴とする、付記12記載の制御装置。
(付記15) 該実施情報管理部が、単位時間あたりの該外部装置から受け付けたコマンド数を該実施情報として管理し、
該割当個数決定部が、前記単位時間あたりの外部装置から受け付けたコマンド数が0の該コマンド授受対に対応する該割当個数を0とすることを特徴とする、付記14記載の制御装置。
(付記17) 新たに該外部装置から受け付けた該データ入出力要求コマンドを該コマンド処理資源に割り当てることができないキューフル状態となった場合に、該割当個数決定部が、当該キューフル状態が生じた該論理デバイスに関する該コマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、付記14〜付記16のいずれか1項に記載の制御装置。
10 CPU
11 実施情報管理部
12 割当個数決定部
13 キュー資源割当個数管理部(割当個数管理部)
14 割当制御部
15 ドライブ制御部
21,21a,21b,21c,21d 実施情報
22 キューテーブルリンク
30 ディスクアレイ
31,31−1,31−2,31−3,31−4 HDD
40 コントローラ(制御装置)
41,41a,41b,41c,41d 通信ポート
50 キュー
60 RAID装置(ストレージ装置)
221 キューテーブル
222 リンクポインタ
FP フリープール
Claims (6)
- 複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置であって、
該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、
該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部と、
各コマンド授受対に関して、単位時間あたりに並行して処理した該データ入出力要求コマンドの実行数と、単位時間内に該外部装置に対して行なった、新たに該外部装置から受け付けた該データ入力要求コマンドを該コマンド処理資源に割り当てることができないキューフル状態に生成されるキューフル応答の数と、を実施情報として管理する実施情報管理部と、
該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえ、
該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定し、
前記複数の外部装置との接続にかかる通信ポートあたりのコマンド処理資源数が有限個数として予め設定され、
該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させるとともに、
該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対があり、且つ、前記既に該割当個数が設定されている該コマンド授受対からも余剰の該割当個数を獲得することができない場合には、該実施情報を参照して、該割当個数決定部が、所定期間内において該キューフル応答が発生していない該他のコマンド授受対のうち、該割当個数が2以上のコマンド授受対の該割当個数を1つ減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を1つ増加させることを特徴とする、ストレージ装置。 - 該割当個数決定部が、各コマンド授受対に関して、該割当個数と該キューフル応答の発生率とに基づいて重みを算出し、該コマンド処理資源の総数に対して前記算出した該コマンド授受対毎の重みを適用して、各コマンド授受対に対するコマンド処理資源の割当個数を定期的に決定することを特徴とする、請求項1記載のストレージ装置。
- 該実施情報管理部が、単位時間あたりの該外部装置から受け付けたコマンド数を該実施情報として管理し、
該割当個数決定部が、前記単位時間あたりの外部装置から受け付けたコマンド数が0の該コマンド授受対に対応する該割当個数を0とすることを特徴とする、請求項2記載のストレージ装置。 - 新たに該外部装置から受け付けた該データ入出力要求コマンドを該コマンド処理資源に割り当てることができない該キューフル状態となった場合に、該割当個数決定部が、当該キューフル状態が生じた該論理デバイスに関する該コマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、請求項2又は請求項3記載のストレージ装置。
- 該割当個数管理部が、2以上のコマンド処理資源によって構成されるブロック単位で、該割当個数を管理することを特徴とする、請求項1〜請求項4のいずれか1項に記載のストレージ装置。
- 複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置の制御装置であって、
該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、
該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部と、
各コマンド授受対に関して、単位時間あたりに処理した該データ入出力要求コマンドの実行数と、単位時間内に該外部装置に対して行なった、新たに該外部装置から受け付けた該データ入力要求コマンドを該コマンド処理資源に割り当てることができないキューフル状態に生成されるキューフル応答の数と、を実施情報として管理する実施情報管理部と、
該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえ、
該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定し、
前記複数の外部装置との接続にかかる通信ポートあたりのコマンド処理資源数が有限個数として予め設定され、
該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させるとともに、
該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対があり、且つ、前記既に該割当個数が設定されている該コマンド授受対からも余剰の該割当個数を獲得することができない場合には、該実施情報を参照して、該割当個数決定部が、所定期間内において該キューフル応答が発生していない該他のコマンド授受対のうち、該割当個数が2以上のコマンド授受対の該割当個数を1つ減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を1つ増加させることを特徴とする、制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008182773A JP4654273B2 (ja) | 2008-07-14 | 2008-07-14 | ストレージ装置および制御装置 |
US12/502,154 US8234415B2 (en) | 2008-07-14 | 2009-07-13 | Storage device and control unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008182773A JP4654273B2 (ja) | 2008-07-14 | 2008-07-14 | ストレージ装置および制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010020694A JP2010020694A (ja) | 2010-01-28 |
JP4654273B2 true JP4654273B2 (ja) | 2011-03-16 |
Family
ID=41506132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008182773A Expired - Fee Related JP4654273B2 (ja) | 2008-07-14 | 2008-07-14 | ストレージ装置および制御装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8234415B2 (ja) |
JP (1) | JP4654273B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8893146B2 (en) * | 2009-11-13 | 2014-11-18 | Hewlett-Packard Development Company, L.P. | Method and system of an I/O stack for controlling flows of workload specific I/O requests |
KR101833464B1 (ko) * | 2010-02-02 | 2018-02-28 | 시게이트 테크놀로지 인터내셔날 | 디스크 장치와 외부 저장 매체 사이의 데이터 전송 방법 및 그 방법을 이용하는 시스템 |
US9076528B2 (en) * | 2011-05-31 | 2015-07-07 | Micron Technology, Inc. | Apparatus including memory management control circuitry and related methods for allocation of a write block cluster |
JP5903873B2 (ja) * | 2011-12-19 | 2016-04-13 | 富士通株式会社 | ストレージ装置、ストレージ装置の制御方法及びストレージ装置制御プログラム |
WO2013098888A1 (en) * | 2011-12-27 | 2013-07-04 | Hitachi, Ltd. | Storage apparatus and method for controlling same |
JP6179321B2 (ja) * | 2013-09-27 | 2017-08-16 | 富士通株式会社 | ストレージ管理装置、制御方法及び制御プログラム |
JP6273966B2 (ja) | 2014-03-27 | 2018-02-07 | 富士通株式会社 | ストレージ管理装置、性能調整方法及び性能調整プログラム |
WO2016166867A1 (ja) * | 2015-04-16 | 2016-10-20 | 株式会社日立製作所 | 計算機システム、及び、リソース制御方法 |
US10579567B2 (en) | 2017-06-28 | 2020-03-03 | Western Digital Technologies, Inc. | Queue depth management for host systems accessing a peripheral component interconnect express (PCIe) device via a PCIe switch |
US10901848B2 (en) | 2018-08-03 | 2021-01-26 | Western Digital Technologies, Inc. | Storage systems with peer data recovery |
US11182258B2 (en) * | 2019-01-04 | 2021-11-23 | Western Digital Technologies, Inc. | Data rebuild using dynamic peer work allocation |
JP6842480B2 (ja) | 2019-02-14 | 2021-03-17 | 株式会社日立製作所 | 分散ストレージシステム |
CN110888704A (zh) * | 2019-11-08 | 2020-03-17 | 北京浪潮数据技术有限公司 | 一种高并发接口处理方法、装置、设备及存储介质 |
US20220269540A1 (en) * | 2021-02-25 | 2022-08-25 | Seagate Technology Llc | NVMe POLICY-BASED I/O QUEUE ALLOCATION |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000099446A (ja) * | 1998-09-21 | 2000-04-07 | Hitachi Ltd | コマンド発行制御方法および装置 |
JP2004362459A (ja) * | 2003-06-06 | 2004-12-24 | Nec Corp | ネットワーク情報記録装置 |
JP2005322181A (ja) * | 2004-04-05 | 2005-11-17 | Hitachi Ltd | コマンド多重数監視制御方式およびこのコマンド多重数監視制御方式を運用するコンピュータシステム |
JP2007323356A (ja) * | 2006-05-31 | 2007-12-13 | Hitachi Ltd | 記憶制御装置及び記憶制御装置のコマンド実行数制御方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2972583B2 (ja) | 1996-07-29 | 1999-11-08 | 四国日本電気ソフトウェア株式会社 | Scsi・tcq制御方式 |
JP2001100923A (ja) | 1999-09-29 | 2001-04-13 | Alps Electric Co Ltd | Raid制御方法およびraid |
EP1193591A3 (en) * | 2000-09-29 | 2007-10-31 | Matsushita Electric Industrial Co., Ltd. | Data storage array device and data access method |
JP2002175156A (ja) | 2000-09-29 | 2002-06-21 | Matsushita Electric Ind Co Ltd | データ記憶アレイ装置、データアクセス方法 |
JP2005149436A (ja) * | 2003-11-20 | 2005-06-09 | Hitachi Ltd | ストレージ装置、ストレージ装置における制御方法、ジョブスケジューリング処理方法及び障害処理方法並びにそれらのプログラム |
US20060112301A1 (en) * | 2004-11-08 | 2006-05-25 | Broadcom Corporation | Method and computer program product to improve I/O performance and control I/O latency in a redundant array |
JP4788528B2 (ja) * | 2005-09-22 | 2011-10-05 | 富士通株式会社 | ディスク制御装置、ディスク制御方法、ディスク制御プログラム |
JP5121161B2 (ja) * | 2006-04-20 | 2013-01-16 | 株式会社日立製作所 | 記憶システム、パス管理方法及びパス管理装置 |
-
2008
- 2008-07-14 JP JP2008182773A patent/JP4654273B2/ja not_active Expired - Fee Related
-
2009
- 2009-07-13 US US12/502,154 patent/US8234415B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000099446A (ja) * | 1998-09-21 | 2000-04-07 | Hitachi Ltd | コマンド発行制御方法および装置 |
JP2004362459A (ja) * | 2003-06-06 | 2004-12-24 | Nec Corp | ネットワーク情報記録装置 |
JP2005322181A (ja) * | 2004-04-05 | 2005-11-17 | Hitachi Ltd | コマンド多重数監視制御方式およびこのコマンド多重数監視制御方式を運用するコンピュータシステム |
JP2007323356A (ja) * | 2006-05-31 | 2007-12-13 | Hitachi Ltd | 記憶制御装置及び記憶制御装置のコマンド実行数制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100011129A1 (en) | 2010-01-14 |
US8234415B2 (en) | 2012-07-31 |
JP2010020694A (ja) | 2010-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4654273B2 (ja) | ストレージ装置および制御装置 | |
JP5439581B2 (ja) | ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法 | |
US9003150B2 (en) | Tiered storage system configured to implement data relocation without degrading response performance and method | |
JP5512833B2 (ja) | ストレージの仮想化機能と容量の仮想化機能との両方を有する複数のストレージ装置を含んだストレージシステム | |
US8645655B2 (en) | Computing device system and information managing method for rearrangement of data based on access characteristic related to a task | |
JP6260407B2 (ja) | ストレージ管理装置、性能調整方法及び性能調整プログラム | |
US10394606B2 (en) | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy | |
WO2011101909A1 (ja) | 仮想ボリュームの制御方法及びストレージ装置 | |
JP6340439B2 (ja) | ストレージシステム | |
US20140032837A1 (en) | Storage system, storage control method and storage control program | |
JP2009238114A (ja) | ストレージ管理方法、ストレージ管理プログラム、ストレージ管理装置およびストレージ管理システム | |
US8904121B2 (en) | Computer system and storage management method | |
CN102272739A (zh) | 存储装置及其数据控制方法 | |
US20140297909A1 (en) | Storage apparatus and hierarchy control method | |
US9513837B2 (en) | Performance assist storage volumes | |
CN111712802A (zh) | 数据存储系统中的虚拟存储驱动器管理 | |
US9015373B2 (en) | Storage apparatus and method of controlling storage apparatus | |
WO2016103471A1 (ja) | 計算機システムおよび管理プログラム | |
US9239681B2 (en) | Storage subsystem and method for controlling the storage subsystem | |
JP6035363B2 (ja) | 管理計算機、計算機システム、及び管理方法 | |
JP2007004620A (ja) | ディスクアレイアクセス動的制御装置、及び方法 | |
WO2017098591A1 (ja) | 計算機及びストレージ装置を有するシステム、及びシステムの制御方法 | |
US11435954B2 (en) | Method and system for maximizing performance of a storage system using normalized tokens based on saturation points | |
US10324631B2 (en) | Control apparatus, storage apparatus and method | |
WO2016132524A1 (ja) | ストレージ管理システム、ストレージ管理方法及びストレージ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100413 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100420 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100621 |
|
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: 20101214 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4654273 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131224 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |