JP4654273B2 - ストレージ装置および制御装置 - Google Patents

ストレージ装置および制御装置 Download PDF

Info

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
Application number
JP2008182773A
Other languages
English (en)
Other versions
JP2010020694A (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008182773A priority Critical patent/JP4654273B2/ja
Priority to US12/502,154 priority patent/US8234415B2/en
Publication of JP2010020694A publication Critical patent/JP2010020694A/ja
Application granted granted Critical
Publication of JP4654273B2 publication Critical patent/JP4654273B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Description

本発明は、複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てる技術に関する。
近年、1以上のストレージを仮想化して複数のホスト装置に対して複数の論理記憶装置(LUN:Logical Unit Number)を提供することにより、ストレージの物理的な制限を受けることなく、柔軟なシステム運用を行なうことを可能とするストレージ仮想化技術が知られている。
図11は従来の仮想化ストレージシステムの構成例を模式的に示す図である。この図11に示す例においては、2つのホスト501a,501bとRAID(Redundant Arrays of Inexpensive Disks)装置605とをそなえて構成された仮想化ストレージシステム600を示している。
RAID装置605は、キュー606,コントローラ603およびディスアレイ602をそなえて構成されている。このRAID装置605は、ポート601a,601bを介してホスト501a,501bに接続され、これらのホスト501a,501bからI/Oコマンドを受け取ると、そのI/Oコマンドに従って、ディスクアレイ602のHDD604−1〜604−4に対するデータの書き込みまたは読み出しを実行するものである。
ディスクアレイ602は、複数(図11に示す例では4つ)のHDD(Hard disk drive)604−1〜604−4をそなえて構成され、RAID装置605においては、これらの複数のHDD604−1〜604−4を論理的な一つのディスクとして取り扱うことができるものである。
キュー606は、RAID装置600がホスト501a,501bからI/Oコマンドを受け付けた場合に、これらのI/Oコマンドを実行するための種々の情報を格納する格納領域(メモリ)である。例えば、このキュー606には、I/Oコマンドの実行に際して用いられる返り値や、処理の進行状況を示す情報,ステータス,I/Oコマンド自体等が格納されるようになっている。
また、このキュー606は、上述したI/Oコマンドを実行するための種々の情報を格納するに際して、所定のサイズ(例えば、256byte)の複数のキュー(キュー資源)に分割されて用いられるようになっている。
コントローラ603は、ホスト501a,501bに対して、論理デバイス(LUN)を提供し、これらのホスト501a,501bから受信したI/Oコマンドに応じて、HDD604−1〜604−4に対する書き込みおよび読み出しの制御を行なうものである。
また、コントローラ603は、ホスト501a,501bからI/Oコマンドを受信すると、これらのI/Oコマンドに対してキュー606のキュー資源を割り当てて、HDD604−1〜604−4の動作制御を行なうようになっている。
すなわち、ホスト501a,501bが、RAID装置605から提供されるLUNに対してアドレス指定を行なうことによりI/Oコマンドをそれぞれ送信すると、コントローラ603は、これらのI/Oコマンドを受信して順次キュー606に格納する(割り当てる)。
そして、コントローラ603は、これらのキュー資源が割り当てられたI/Oコマンドに従って、HDD604−1〜604−4に対するデータの書き込みまたは読み出しを実行するのである。
また、ホスト501a,501bからI/Oコマンドを受信し実行するに際して、キュー606の空き容量不足等により、これらのI/Oコマンドを実行するための種々の情報を格納することができない場合、すなわち、キュー資源を割り当てることができない場合には、そのI/Oコマンドは拒絶され、送信元のホスト501a,501bに対して、キュー606が満杯であることを示すステータス(QFULL)とともに返されるようになっている(QFULL応答)。
このような仮想化ストレージシステム600においては、各LUN間において、バランス良くI/Oコマンドの処理が行なわれることが望ましく、又、QFULL応答が極力行なわれないようにすることも望まれている。
また、ホスト501a,501bにおいては、RAID装置605からの応答待ちによりアプリケーションが永久待機させられることを防止するために、送信するI/Oコマンドに対してタイムアウト時間を設定する。そして、このタイムアウト時間を経過してもI/Oコマンドが処理されない(タイムアウト)場合に、RAID装置600に対して、そのI/Oコマンドの処理の中止を指示するとともに、同一のI/Oコマンドを再試行するようになっている(タイムアウトイベント)。
例えば、下記特許文献1には、上述したタイムアウトイベントやQFULLイベントの発生を最小限にすべく、キューの論理サイズを調節する手法が記載されている。
図12(a)〜(c)は従来の仮想化ストレージシステムにおけるキューの論理サイズの調整手法を説明するための図であって、図12(a)は各キューに対して割り当てる論理サイズの変更前の状態を例示する図、図12(b)は図12(a)の状態においてQFULL率が高いLUNの論理サイズを増加させた状態を例示する図、図12(c)は図12(b)の状態において更に他のLUNに対するI/Oコマンドが受け付けられた状態を例示する図である。
なお、これらの図12(a)〜(c)中において、符号a1〜a7はそれぞれLUNを特定するための識別情報であって、例えば、図12(a)に示す状態は、RAID装置605において、ホスト501aからLUN#a1,a2,a3,a4に対してそれぞれI/Oコマンドが出力され、これらのLUN#a1,a2,a3,a4に対して出力された各I/Oコマンドに対して、論理サイズのキューが割り当てられている状態を示している。
特許文献1に開示された手法においては、この図12(a)に示すような状態において、例えば、LUN#a1,a3においてQFULL率が高くなった場合には、図12(b)に示すように、これらのLUN#a1,a3に対して割り当てるキューの論理サイズを増大させるようになっている。
また、特許文献1においては、上述の如くQFULL率が閾値を超えた場合にキューの論理サイズを増大させる手法の他に、タイムアウト率が閾値を超えた場合に、キューの論理サイズを減少させることも記載されている。
特開2005−149436号公報
仮想化ストレージシステムにおいてキュー資源は有限であり、この有限なキュー資源を効率的に使用することが望まれている。
しかしながら、上述の如き従来の仮想化ストレージシステムにおいては、閾値を超えたLUNのキュー資源を無制限に増大することはできず、QFULLイベントの発生を低減することはできない。
例えば、図12(c)に示すように、図12(b)に示した状態から、更に、ホスト501aからのLUN#a5,a6,a7に対するI/Oコマンドを受け付けることによりキューが一杯になった状態においては、例えば、LUN#a2においてQFULL率が上昇したとしても、これ以上、このLUN#a2に対して割り当てるキューを増大させることはできない。
また、タイムアウトの発生は、RAID装置605にそなえられたHDD604−1〜604−4の一時的なハードウェア異常(例えば、媒体エラーやディスクの故障)によっても発生する。従って、タイムアウト率が閾値を超えた場合にキューの論理サイズを減少させる従来の手法においては、このような一時的な要因によるタイムアウトの発生によってもキューの論理サイズが減少させてしまい、RAID装置605がそなえるリカバリ機能等によりハードウェア異常が解消された場合であっても、割り当てられたキュー資源は減少されたまま維持され、キュー資源を効率的に使用することができない。
本発明は、このような課題に鑑み創案されたもので、複数のLUN間において、バランス良くI/Oコマンドの処理が行なわれるとともに、QFULLイベントの発生を低減して、キュー資源を効率的に使用できるようにすることを目的とする。
このため、このストレージ装置の特徴は、複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置であって、該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部と、各コマンド授受対に関して、単位時間あたりに並行して処理した該データ入出力要求コマンドの実行数と、単位時間内に該外部装置に対して行なった、新たに該外部装置から受け付けた該データ入力要求コマンドを該コマンド処理資源に割り当てることができないキューフル状態に生成されるキューフル応答の数と、を実施情報として管理する実施情報管理部と、該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえ、該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定し、前記複数の外部装置との接続にかかる通信ポートあたりのコマンド処理資源数が有限個数として予め設定され、該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させるとともに、該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対があり、且つ、前記既に該割当個数が設定されている該コマンド授受対からも余剰の該割当個数を獲得することができない場合には、該実施情報を参照して、該割当個数決定部が、所定期間内において該キューフル応答が発生していない該他のコマンド授受対のうち、該割当個数が2以上のコマンド授受対の該割当個数を1つ減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を1つ増加させるものである。
また、この制御装置の特徴は、複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置の制御装置であって、該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部と、各コマンド授受対に関して、単位時間あたりに処理した該データ入出力要求コマンドの実行数と、単位時間内に該外部装置に対して行なった、新たに該外部装置から受け付けた該データ入力要求コマンドを該コマンド処理資源に割り当てることができないキューフル状態に生成されるキューフル応答の数と、を実施情報として管理する実施情報管理部と、該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえ、該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定し、前記複数の外部装置との接続にかかる通信ポートあたりのコマンド処理資源数が有限個数として予め設定され、該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させるとともに、該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対があり、且つ、前記既に該割当個数が設定されている該コマンド授受対からも余剰の該割当個数を獲得することができない場合には、該実施情報を参照して、該割当個数決定部が、所定期間内において該キューフル応答が発生していない該他のコマンド授受対のうち、該割当個数が2以上のコマンド授受対の該割当個数を1つ減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を1つ増加させるものである。
開示の装置によれば、複数のコマンド授受対間において、データ入出力要求コマンドの実行数のバランスを良くすることができ、データ入出力要求コマンドを効率的に処理することができる利点がある。
以下、図面を参照して本発明の実施の形態を説明する。
図1は本発明の一実施形態としてのストレージシステムの構成を模式的に示す図である。
本発明の一実施形態としてのストレージシステム100は、複数(図1に示す例では4つ)のホスト(外部装置)1a,1b,1c,1d,端末装置42およびRAID装置60をそなえて構成されている。
RAID装置(ストレージ装置)60は、ホスト1a,1b,1c,1dと通信ポート41a,41b,41c,41dを介して通信可能に接続され、これらのホスト1a,1b,1c,1dに対してそれぞれ1以上の論理デバイス(LUN:Logical Unit Number)を提供するものであり、コントローラ40およびディスクアレイ30をそなえて構成されている。
なお、以下、ホストを示す符号としては、複数のホストのうち1つを特定する必要があるときには符号1a,1b,1c,1dを用いるが、任意のホストを指すときには符号1を用いる。
ディスクアレイ30は、複数(図1に示す例では4つ)の記憶装置31−1〜31−4をそなえて構成され、これらの記憶装置31−1〜31−4を論理的な一つの記憶装置として取り扱うことができるものである。
なお、これらの記憶装置31−1〜31−4としては、例えば、HDD(Hard disk drive;磁気ディスク装置)や半導体記憶装置等、種々の記憶装置を用いることができる。なお、本実施形態においては、記憶装置31−1〜31−4としてHDDを用いた例を示し、以下、これらの記憶装置31−1〜31−4をHDD31−1〜31−4と表わす場合もある。
また、以下、記憶装置(HDD)を示す符号としては、複数の記憶装置(HDD)のうち1つを特定する必要があるときには符号31−1,31−2,31−3,31−4を用いるが、任意の記憶装置(HDD)を指すときには符号31を用いる。
さらに、以下、通信ポートを示す符号としては、複数の通信ポートのうち1つを特定する必要があるときには符号41a,41b,41c,41dを用いるが、任意の通信ポートを指すときには符号41を用いる。
コントローラ(制御装置)40は、RAID装置60の機能を制御するものであって、ホスト1a,1b,1c,1dに対して、論理デバイス(LUN)を提供するとともに、これらのホスト1a,1b,1c,1dから受信したI/Oコマンド(データ入出力要求)に応じて、ディスクアレイ30のHDD31−1〜31−4に対する書き込みや読み出しの制御を行なうものである。
また、コントローラ40は、ホスト1からI/Oコマンドを受信すると、これらのI/Oコマンドに対して後述するキュー資源を割り当てて、HDD31の動作制御を行なうようになっている。
すなわち、本ストレージシステム100においては、ホスト1が、RAID装置60から提供されるLUNに対してアドレス指定行なってI/Oコマンドをそれぞれ送信すると、コントローラ40は、これらのI/Oコマンドを受信して、順次、キュー資源に格納し、これらのI/Oコマンドに従って、HDD31に対するデータの書き込みまたは読み出しを実行するのである。
また、ホスト1からI/Oコマンドを受信し実行するに際して、キュー資源の不足等により、これらのI/Oコマンドを実行するための種々の情報を格納することができない場合には、そのI/Oコマンドは拒絶され、コントローラ40は、送信元のホスト1に対して、割り当て可能なキュー資源が不足していることを示すステータス(QFULL)とともに返すようになっている(QFULL応答)。
コントローラ40は、図1に示すように、CPU10,記憶部20およびキュー50をそなえて構成されている。
キュー50は、RAID装置60がホスト1からI/Oコマンドを受け付けた場合に、これらのI/Oコマンドを実行するための種々の情報を格納する格納領域(メモリ)である。
また、このキュー50は、上述したI/Oコマンドを実行するための種々の情報を格納するに際して、所定のサイズ(例えば、256byte)の複数のキュー資源(単位キュー;コマンド処理資源)に分割されて用いられるようになっている。
例えば、このキュー50には、I/Oコマンドの実行に際して用いられる返り値や、処理の進行状況を示す情報(実行位置やステータス等),I/Oコマンド自体が格納されるようになっており、これらの情報が各キュー資源に格納されるようになっている。
記憶部20は、コントローラ40において、後述するCPU10が種々の処理を行なうために用いられる情報を格納するものであって、例えば、半導体記憶装置やHDDにより実現される。
本ストレージシステム100においては、この記憶部20には、実施情報21およびキューテーブルリンク22が格納されるようになっている。
実施情報21は、本ストレージシステム100において処理(実行)されたI/Oコマンドに関する情報であって、例えば、受付コマンド数,最大キューデプス(最大Queue-Depth)およびキューフル数(QFULL数)をそなえて構成されている。
ここで、受付コマンド数は、単位時間内にホスト1から受け付けたI/Oコマンドの数であり、最大キューデプスは、単位時間あたりに並行して処理を行なったI/Oコマンドの実行数(最大並行実行コマンド数)である。又、キューフル数は、単位時間内にホスト1に対して行なったQFULL応答の数である。
なお、これらの受付コマンド数,最大キューデプスおよびキューフル数は、既知の種々の手法により取得することができるものであり、便宜上、その具体的な取得手法等の説明は省略する。
また、これらの受付コマンド数,最大キューデプスおよびキューフル数を決定するために用いる単位時間は任意に設定することができ(1分,30秒,15秒等)、例えば、ユーザが後述する端末装置42を介して任意に設定・変更することができるようになっている。
また、受付コマンド数,最大キューデプスおよびキューフル数を決定するに際して、これらの間で共通の単位時間を用いてもよく、又、少なくともいずれかにおいて異なる単位時間を用いてもよい。
図2は本発明の一実施形態としてのストレージシステム100における実施情報21の例を示す図である。
この図2に示すように、本ストレージシステム100においては、ホスト1とLUNとを組合せ(コマンド授受対)毎に、受付コマンド数,最大キューデプスおよびQFULL数からなる実施情報が生成・管理されるようになっている。
なお、この図2中においては、便宜上、LUN0に関係するコマンド授受対にのみ、受付コマンド数,最大キューデプスおよびQFULL数を示し、LUN1〜LUN3に関係するコマンド授受対についての受付コマンド数,最大キューデプスおよびQFULL数の図示を省略している。
また、この図2に示す例では、実施情報21を、便宜上、複数のLUNと複数のホスト1とからなるマトリクス状に構成して示しているが、これに限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
キューテーブルリンク22は、ホスト1とLUNとの各組合せ(コマンド授受対)に割り当てられた各キュー資源数を管理するものである。
図3は本発明の一実施形態としてのストレージシステム100におけるキューテーブルリンク22の例を示す図である。
キューテーブルリンク22は、この図3に示すように、複数のキューテーブル221をリンクポインタ222によって相互に関連付ける(リンクを張る)ことによって構成されている。又、キューテーブル221は、ホスト1とLUNとの各組合せ(コマンド授受対)に対して、そのコマンド授受対に割り当てられたキュー資源数(割当QRB数)を対応付けることにより構成されている。
なお、リンクポインタ222は、次のキューテーブル221の、記憶部20における格納位置(アドレス等)を示す情報(ポインタ)であり、このリンクポインタ222により、キュー資源割当個数管理部13等が、他のキューテーブル221の格納位置を知ることができるようになっている。
また、本ストレージシステム100においては、キュー資源数を複数個(k個)単位で管理するようになっており、例えば、本実施形態においては4個(k=4)のキュー資源を1QRB(Queue Resource Block)として、このQRBの個数(QRB数)により、キュー資源の割当個数を管理するようになっている。
例えば、図3に示す例においては、コマンド授受対[ホストA−LUN3]に対して、6個のQRBが割り当てられていることを示しており(割当QRB数=6)、このコマンド授受対[ホストA−LUN3]に対して24個(4×6=24)のキュー資源(単位キュー)が割り当てられていることを意味する。
なお、以下、1つのQRBを構成するキュー資源の数(k)を、QRB構成数という場合がある。
また、このQRB構成数(k)は任意に設定することができるものであり、例えば、ユーザが後述する端末装置42を介して任意に設定・変更することができるようになっている。
さらに、以下、複数のQRBを示す際に、“QRB”の前にその個数を付して表わす場合がある。例えば、6個のQRBを6QRBと示す場合がある。
また、図3に示す例においては、便宜上、キューテーブルリンク22を構成する各キューテーブル221に隣接させて、各割当QRB数と同数のQRBをそれぞれ並べて示している。
CPU(Central Processing Unit)10は、記憶部20や図示しない記憶装置に格納されたOS(Operating System)やプログラムを実行することにより、種々の演算や制御を行ない、種々の機能を実現するものである。本ストレージシステム100においては、CPU10は、記憶部20等に格納されたキュー資源割当管理プログラムを実行することにより、実施情報管理部11,割当個数決定部12,キュー資源割当個数管理部13,割当制御部14およびドライブ制御部15として機能するようになっている。
実施情報管理部11は、上述した実施情報21を生成して記憶部21に格納したり、この生成した実施情報21の管理を行なうものであり、ホスト1から受信したI/Oコマンドや、この受信したI/Oコマンドに基づいてドライブ制御部15(詳細は後述)等が行なった処理に基づいて、受付コマンド数,最大キューデプスおよびQFULL数を収集し、実施情報21に格納することにより、これらの実施情報21の管理・更新を行なうようになっている。
割当個数決定部12は、各コマンド授受対(LUN)に対するキュー資源(コマンド処理資源)の割当個数を決定するものであり、実施情報21に基づいて、各コマンド授受対に対するキュー資源の割当個数(割当QRB数)を決定するようになっている。
また、本ストレージシステム100においては、割当個数決定部12は、QRB単位でコマンド授受対に対して割り当てる資源の数を決定するようになっている。
本ストレージシステム100においては、1つの通信ポート41に割り当てるキュー資源の数(1つのポートあたりのキュー資源数)に制限が設けられており、例えば、1つの通信ポート41(すなわち、1つのホスト1)に関して、同時に割り当てられるキュー資源の総和が、この制限値(例えば、1024個すなわち、256QRB)を超えることがないようになっている。
なお、この1つのポートあたりのキュー資源数の制限値は任意に設定することができるものであり、例えば、ユーザが後述する端末装置42を介して任意に設定・変更することができるようになっている。
また、本ストレージシステム100においては、1つのLUNに割り当てるキュー資源の数(1つのLUNあたりのキュー資源数)にも制限が設けられており、例えば、1つのLUNに関して、同時に割り当てられるキュー資源の総和が、この制限値(例えば、1024個、すなわち、256QRB)を超えることがないようになっている。
なお、この1つのLUNあたりのキュー資源数の制限値は任意に設定することができるものであり、例えば、ユーザが後述する端末装置42を介して任意に設定・変更することができるようになっている。
さらに、本ストレージシステム100においては、割当個数決定部12は、I/Oコマンドの受付数が多いLUN(コマンド授受対)に対してはキュー資源を多めに、又、I/Oコマンドの受付数が少ないLUN(コマンド授受対)に対してはキュー資源を少なめに割り当てる(割り振る)ようになっている。
また、本ストレージシステム100においては、割当個数決定部12は、QFULL応答が発生するLUN(コマンド授受対)間において、キュー資源を平等に割り当てるようになっている。
なお、本ストレージシステム100においては、あるホスト1からあるLUNに対して最初に送信されるI/Oコマンドに対して、コントローラ40は、実行もしくはBUSY応答を行なうようになっており、このような最初に送信されるI/Oコマンドに対してQFULL応答を行なうことがないようになっている。
これは、ホスト1においては、LUNに対して行なったI/Oコマンドについて、RAID装置60からQFULL応答を受信すると、それ以降、そのLUNに対してI/Oコマンドの出力を行なわない(抑止する)ように構成されたものがあるからである。
なお、このようなホスト1であっても、一般に、I/Oコマンドについて、RAID装置からBUSY応答が行なわれた場合には、リトライが行なわれるので影響が少ない。
また、本ストレージシステム100においては、I/Oコマンド等が割り当てられていない(未割り当ての)キュー資源を、フリープールFP(空き資源領域;図4参照)を用いて表すようになっており、以下、未割り当てのキュー資源(QRB)は「フリープールFPにある」、もしくは、「フリープールFPに格納されている」と表現する場合がある。
図4は本発明の一実施形態としてのストレージシステム100におけるフリープールFPに格納されたQRBを模式的に示す図である。
例えば、この図4に示す例においては、フリープールFPに9個の未割当QRB(36個の未割当キュー資源)が格納された状態を示している。
このフリープールFPは、仮想的に設けられた領域(空間,メモリ領域)であって、例えば、割当が行なわれていないキュー資源に対応させて、割当が行なわれていないことを示す識別情報(フラグ等)を設定することにより、この識別情報が設定されているキュー資源が、割り当てられていない、すなわち、フリープールFPにあるとして取り扱うことができるようになっている。
また、本ストレージシステム100においては、フリープールFPには、割り当てが行なわれていないキュー資源がQRB単位で格納されるようになっている。
なお、以下、フリープールFPに格納されている、割り当てが行なわれていないQRBのことを未割当QRBという場合があり、同様に、割り当てが行なわれていないキュー資源のことを未割当キュー資源という場合がある。
そして、割当個数決定部12は、このフリープールFPを参照することにより未割当QRBの個数を認識し、この未割当QRBをコマンド授受対に対して割り当てるようになっている。なお、コマンド授受対に割り当てられたQRBには、その割り当てられたコマンド授受対に関する情報(識別情報)等が設定されるとともに、前述した割当が行なわれていないことを示す識別情報(フラグ等)が削除され、これにより、割当が行われたQRBは、フリープールFPから削除される(取り出される)ようになっている。
また、割当個数決定部12は、定期的に複数のコマンド授受対間で割当QRB数(キュー資源)の見直し(バランシング)を実施するようになっている。なお、割当個数決定部12による割当QRB数の具体的な決定手法や、キュー資源のバランシング手法については後述する。
キュー資源割当個数管理部(割当個数管理部)13は、各コマンド授受対に対応させて、キュー資源の割当個数(割当QRB数)を管理するものであり、割当個数決定部12によって決定された割当QRB数に基づき、キューテーブルリンク22(キューテーブル221)を生成・管理するようになっている。
具体的には、キュー資源割当個数管理部13は、割当個数決定部12により決定された割当QRB数をコマンド授受対に対応させることによりキューテーブル221を生成し、各コマンド授受対に関するこれらのキューテーブル221をリンクポインタ222により相互に連結する(関連付ける)ことにより、キューテーブルリンク22を生成するようになっている。なお、このキュー資源割当個数管理部13によって生成されたキューテーブルリンク22は記憶部20に格納されるようになっている。
また、キュー資源割当個数管理部13は、割当個数決定部12が、後述の如く、コマンド授受対に対する割当QRB数の決定・変更を行なう度に、その変更後の割当QRB数をキューテーブルリンク22に反映させるようになっている。
割当制御部14は、キュー資源に対して、I/Oコマンド等を割り当てるものであって、キュー資源割当個数管理部13によって管理されている割当QRB数に基づいて、その割当QRB数を上限値とする数のキュー資源に、I/Oコマンド等を割り当てるようになっている。
すなわち、割当制御部14は、コマンド授受対に関するI/Oコマンドの実行に際して用いられる種々の情報(返り値,処理の進行状況を示す情報,ステータス,I/Oコマンド自体等)を、キュー資源割当個数管理部13によって管理されている割当個数(割当QRB数)に対応する数(割当QRB数×QRB構成数(k))を上限値とする数のキュー資源に割り当て、これらのI/Oコマンドの実行に際して用いられる種々の情報をキュー50に格納するものである。
なお、以下、キュー資源に対して、I/Oコマンドや、このI/Oコマンドの実行に際して用いられる種々の情報を割り当てることを、便宜上、単に、I/Oコマンドを割り当てるという場合がある。
また、この割当制御部14によるキュー資源にI/Oコマンド等を割り当てる手法には既知の種々の技術を用いることができるものであり、その具体的な説明は省略する。
ドライブ制御部15は、割当制御部14によってキュー資源に割り当てられたI/Oコマンドを処理・実行することにより、ディスクアレイ30のHDD31−1〜31−4に対して動作制御を行ない、データの書き込みや読み出しを行なうものである。
また、このドライブ制御部15は、実際に搭載した物理ディスクであるHDD31−1〜31−4上に、ホスト1へ提供する論理デバイスの規定のデータ形式に従いデータを格納するようになっている。
なお、ディスクアレイ30のHDD31−1〜31−4に対してデータの書き込みや読み出しを行なうドライブ制御部15としての機能は、既知の種々の手法を用いて実現することができるものであり、その具体的な説明は省略する。
端末装置42は、RAID装置60に対する種々の設定や制御を行なうための端末装置である。この端末装置42は、図示しない表示装置や入力装置(キーボードやマウス等)をそなえて構成されるとともに、RAID装置60に通信可能に接続され、ユーザが、この端末装置42から入力操作を行なうことにより、RAID装置60における種々の設定や管理を行なうことができるようになっている。
例えば、ユーザは、この端末装置42を介して、受付コマンド数,最大キューデプスおよびキューフル数を決定するために用いる単位時間,QRB構成数(k),1つのポートあたりのキュー資源数の制限値,1つのLUNあたりのキュー資源数の制限値等を任意に設定することができるようになっている。
また、端末装置42は、実施情報21を計測するための単位時間を設定することもできるようになっており、ユーザが、この端末装置42を介して、実施情報21を計測するための単位時間を任意に設定することができる。
上述の如く構成された、本発明の一実施形態としてのストレージシステム100における割当個数決定部12によるキュー資源の分配手法を状況別に説明する。
(a)初期状態
本ストレージシステム100において、例えば、電源投入時やリセット時の他、ホスト1から特定のジョブを流し始める(開始する)前の状態等を初期状態という。
本ストレージシステム100において、その初期状態においては、全てのキュー資源がコマンド授受対に割り当てられていない状態(フリー状態)であるものとする。すなわち、この初期状態においては、全てのQRB(例えば256QRB)がフリープールFPにあるものとする。
そして、この初期状態において、実施情報管理部11は、実施情報21の取得(所定時間あたりの、応答コマンド数,最大キューデプスおよびQFULL数の各計数)を開始するようになっている。
(b)最初のI/Oコマンド処理時
例えば、ホスト1からジョブを流し始める際等、ホスト1からLUNに対して最初のI/Oコマンドが送信された場合には、割当個数決定部12は、先ず、フリープールFPを参照して、このフリープールFPにQRBがある場合、すなわち、未割当RQBがある場合には、そのI/Oコマンドの送信元のホスト1と送信先のLUNによって構成されるコマンド授受対に対して、フリープールFPから所定個数(初期割当個数;例えば8個)のQRBを取得して設定するようになっている。
すなわち、割当個数決定部12は、フリープールFPに初期割当個数を充足させる数の未割当QRBがあれば、そのフリープールFPから処理割当個数のQRBを獲得して割り当てを行なうようになっている。
図5は本発明の一実施形態としてのストレージシステム100の割当個数決定部12により初期割当個数のQRBが設定されたコマンド授受対のキューテーブルの例を示す図である。
この図5に示す例においては、コマンド授受対[ホストA−LUN3]に対して8個のQRBが割り当てられている状態を示している。なお、このQRBの割り当てに伴い、割り当てられたQRBの個数と同数の未割当QRBは、フリープールFPから削除される。
また、割当個数決定部12は、フリープールFPにある未割当QRBをI/Oコマンドに割り当てるに際して、フリープールFPに充分な未割当QRBが無く、コマンド授受対に対して初期割当個数のQRBを割り当てることができない場合には、このQRBの割当設定を行なうコマンド授受対[ホストA−LUN3]とは異なる他のコマンド授受対から、余剰のQRBを寄せ集めて獲得するようになっている。
図6は本発明の一実施形態としてのストレージシステム100の割当個数決定部12によるキュー資源の割り当て手法を説明するための図であって、フリープールFPに充分な未割当QRBが無く、コマンド授受対に対して初期割当個数のQRBを割り当てることができない場合に、他のコマンド授受対から余剰のQRBを取得する手法を説明するための図である。
この図6においては、コマンド授受対[ホストA−LUN0]に対して4個のQRBが、又、コマンド授受対[ホストA−LUN3]および[ホストB−LUN1]に対して、6個と3個のQRBがそれぞれ割り当てられており、又、フリープールFPには5個の未割当QRBがある状態において、新たに、ホストCからLUN0に対して最初のI/Oコマンドが送信された例を示している。
なお、この図6に示す例においては、便宜上、各キューテーブル221の隣に、そのコマンド授受対に対応する実施情報(受付コマンド数,最大キューデプスおよびキューフル数(QFULL数))21a,21b,21c,21dをそれぞれ示している。
この図6に示すような状態において、割当個数決定部12は、この新たに行なわれたホストCからLUN0に対するI/Oコマンドについて、コマンド授受対[ホストC−LUN0]に対してQRBの割り当てを行なう(以下、QRB数の割当を行なう対象のコマンド授受対のことを対象コマンド授受対という場合がある)のであるが、フリープールFPには5個の未割当QRBしかないので、このフリープールFPにある未割当QRBだけでは初期割当個数である8個のQRBを対象コマンド授受対[ホストC−LUN0]に対して割り当てることができない。
そこで、割当個数決定部12は、対象コマンド授受対[ホストC−LUN0]とは異なる他のコマンド授受対[ホストA−LUN0],[ホストA−LUN3]および[ホストB−LUN1]のそれぞれにおいて、各割り当てられているQRB中に余剰のQRBがあるか否かを調べるようになっている。
ここで、余剰のQRBの数(余剰QRB数)とは、そのコマンド授受対に対して割り当てられているQRBの数から、最大キューデプスと同数のキュー資源を充足する(相当する)QRBの数(必須QRB数)を減算して得られる数であり、以下の式により求めることができる。
余剰QRB数=割当QRB数−必須QRB数
なお、最大キューデプスと同数のキュー資源を充足するQRBの数(必須QRB数)とは、最大キューデプスと同数のキュー資源を含む(充足する)最低限のQRBの数であり、具体的には、最大キューデプスの値をQRB構成数(n)で割った値の端数(剰余)もしくは小数部を切り上げて得られる整数値である。
例えば、図6の例において、コマンド授受対[ホストA−LUN3]の最大キューデプスは14であり(実施情報21b参照)、QRB構成数が“4”(n=4)の場合に、この最大キューデプス“14”と同数の14個のキュー資源を充足するQRBの数は“4”(必須QRB数=4)となる。
従って、コマンド授受対[ホストA−LUN3]の余剰QRB数は、割当QRB数“6”−必須QRB数“4”=2として求められる。
同様に、図6の例において、コマンド授受対[ホストA−LUN0]の余剰QRB数は“0”,コマンド授受対[ホストB−LUN1]の余剰QRB数は“1”である。
そして、割当個数決定部12は、コマンド授受対[ホストA−LUN3]の余剰QRB数“2”とコマンド授受対[ホストB−LUN1]の余剰QRB数“1”とを、コマンド授受対[ホストC−LUN0]に割当可能な未割当QRB数“5”に加算する(割り振る)ことにより、コマンド授受対[ホストC−LUN0]に対して、初期割当個数である8個のQRBを割り当てる。
また、これに伴って、これらのコマンド授受対[ホストA−LUN3]およびコマンド授受対[ホストB−LUN1]の各割当QRB数から、余剰のQRBの数(余剰QRB数)をそれぞれ減算するようになっている。
具体的には、図6の例において、コマンド授受対[ホストA−LUN3]における余剰QRB数“2”をコマンド授受対[ホストC−LUN0]に割り振る(移動する)ことにより、コマンド授受対[ホストA−LUN3]の割当QRB数を“6”から“4”に減少させる。同様に、コマンド授受対[ホストB−LUN1]においても、余剰QRB数“1”をコマンド授受対[ホストC−LUN0]に割り振る(移動する)ことにより、コマンド授受対[ホスト−LUN]の割当QRB数を“3”から“2”に減少させるのである。
なお、以下、対象コマンド授受対に対してQRBの割り当てを行なうに際して、他のコマンド授受対における割当QRB数を減算させて、その減算させた数と同数を対象コマンド授受対の割当QRB数に加算することを、コマンド授受対からQRBを獲得すると表現する場合がある。
すなわち、割当個数決定部12は、対象コマンド授受対に対してQRBの割当を行なうに際して、他のコマンド授受対からその余剰QRBを取得し、この取得した余剰QRBを対象コマンド授受対に対して割り当てる(割当QRB数に加算する)ようになっており、対象コマンド授受対にQRBを割り当てるために、他のコマンド授受対から余剰QRBを獲得するのである。
そして、本ストレージシステム100においては、割当個数決定部12が、他のコマンド授受対から獲得した余剰QRBを対象コマンド授受対に割り当てた場合には、その割り当てた余剰QRBの数を、元のコマンド授受対の割当QRB数から減算することにより、1つの通信ポート41(すなわち、1つのホスト1)あたりのキュー資源(QRB)の総数を一定(制限値)に維持するようになっている。
なお、コマンド授受対[ホストA−LUN3]やコマンド授受対[ホストB−LUN1]からそれぞれ割当QRB数を減少させた場合であっても、これらのコマンド授受対[ホストA−LUN3]やコマンド授受対[ホストB−LUN1]においては、減少後の割当QRB数は、それぞれ最大キューデプスに相当するキュー資源の数を満たしている。従って、これらのコマンド授受対においてQFULL応答が生じるおそれは低く、本ストレージシステム100の信頼性は高く維持されるのである。
割当個数決定部12は、[割り当てられているキュー数(割当QRB数×QRB構成数(本実施形態では4))−最大キューデプス]の値(余剰キュー資源数)がQRB構成数(k;本実施形態ではk=4)以上のコマンド授受対の間で、例えば、ラウンドロビン手法を用いて余剰QRBを順次取得し、フリープールFPにある未割当QRBだけでは初期割当個数を満たすことができないコマンド授受対に対して、初期割当個数を満たすQRBを割り当てるようになっている。
また、上述の如くラウンドロビン手法等を用いて、他のコマンド授受対から獲得した余剰QRBを用いても初期割当個数を満たす数のQRBを割り当てることができない場合には、割当個数決定部12は、それらの割り当てられた数をもって、そのコマンド授受対の割当QRBとする。
例えば、フリープールFPに3個しか未割当QRBが存在していない状態において、他のコマンド授受対から合わせて3つの余剰QRBしか獲得できなかった場合には、割当個数決定部12は、その対象コマンド授受対に対して6QRBを割り当てる(割当QRB数=6)。
本ストレージシステム100においては、コマンド授受対に対して、QRB単位でキュー資源を割り当てるようになっているので、最低、1つのQRBを割り当てることができれば、QRB構成数であるk個のキュー資源が割り当てられ、これにより、少なくともk個分のI/Oコマンドにかかる処理を処理することができる。すなわち、このQRB構成数により、最低限のI/Oコマンドの実行が保障されるのである。
そして、QRB構成数(k)の値を多くすることにより、QFULLの発生率を低減させることもできることになる。すなわち、このQRB構成数(k)は、本ストレージシステム100におけるQFULLにかかる最小動作保障を行なうものといえる。
また、割当個数決定部12は、QRBの割当個数の決定に際して、フリープールFPに1つの未割当QRBもなく、且つ、他のコマンド授受対からも余剰のQRBを獲得することができない場合には、実施情報21を参照して、所定期間内においてQFULLイベントが発生していない(QFULL数=0)他のコマンド授受対のうち、割当QRB数が“2”以上のコマンド授受対から1つのQRBを獲得して、対象コマンド授受対に対して割り当てるようになっている。
図7は本発明の一実施形態としてのストレージシステム100の割当個数決定部12によるキュー資源の割り当て手法を説明するための図であって、フリープールFPに未割当QRBが無く、且つ、他のコマンド授受対からも余剰のQRBを獲得することができない場合に、他のコマンド授受対からQRBを取得する手法を説明するための図である。
この図7に示す例においては、コマンド授受対[ホストA−LUN3]およびコマンド授受対[ホストB−LUN1]において、QFULLイベントが発生しておらず、又、これらのコマンド授受対[ホストA−LUN3]およびコマンド授受対[ホストB−LUN1]のいずれも2以上の割当QRB数をそなえている。
割当個数決定部12は、これらのコマンド授受対[ホストA−LUN3]およびコマンド授受対[ホストB−LUN1]のうち、ラウンドロビン手法により、一のコマンド授受対を決定して(図7に示す例においてはコマンド授受対[ホストA−LUN3])から、1つのQRBを獲得して、対象コマンド授受対[ホストC−LUN0]に対して割り当てる。
前述の如く、本ストレージシステム100においては、コマンド授受対に対して、QRB単位でキュー資源を割り当てるようになっているので、最低、1つのQRBを割り当てることができれば、少なくともk個分のI/Oコマンドにかかる処理を処理することができるのである。
なお、本実施形態においては、これらの所定期間内においてQFULLイベントが発生していない、割当QRB数が“2”以上の他のコマンド授受対の中から、QRBを獲得する一のコマンド授受対をラウンドロビン手法により決定しているが、これに限定されるものではなく、例えば、これらのコマンド授受対の中からランダムに一のコマンド授受対を決定してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
そして、割当個数決定部12は、上述のいずれの手法においても、1つのQRBを獲得することができず、対象コマンド授受対に対してQRBを割り当てることができない場合には、そのホスト1に対してビジー(Busy)応答を行なうようになっている。
なお、このような1つのQRBを獲得することができないケースを想定して、予め1以上のQRB(キュー資源)を確保しておき、1つのQRBを獲得することができない場合に、この確保してあったQRBを使用してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
(c)QFULL発生時
本ストレージシステム100において、ホスト1からLUNに対してI/Oコマンドが出力された場合において、そのコマンド授受対(対象コマンド授受対)に割り当てられているキュー資源数が32(割当QRB数=8)未満である場合であって、フリープールFPに未割当QRBがある場合には、割当個数決定部12は、フリープールFPからその未割当QRBを獲得して、対象コマンド授受対に割り当てる。
また、ここでフリープールFPに未割当QRBがない場合には、ホスト1に対してQFULL応答を行なわせる。
一方、そのコマンド授受対(対象コマンド授受対)に割り当てられているキュー資源数が32(割当QRB数=8)以上の場合には、フリープールFPに未割当QRBがあっても、そのタイミングではフリープールFPから未割当QRBを獲得することなく、QFULL応答を行なう。
(d)キュー資源のバランシング
本ストレージシステム100においては、割当個数決定部12は、定期的にキュー資源のバランシングを実施するようになっている。以下、この割当個数決定部12によるキュー資源のバランシング手法について説明する。
なお、割当個数決定部12は、キュー資源のバランシングをQRB単位で行なうようになっており、又、このバランシングを、I/Oコマンド等のコマンド動作と並列にバックグラウンドで行なうようになっている。
例えば、割当個数決定部12は、キュー資源のバランシングに際して、実施情報21を参照して、単位時間あたりの受付コマンド数が“0”のコマンド授受対のキュー資源をフリープールFPにすべて解放するようになっている。
具体的には、割当個数決定部12は、単位時間あたりの受付コマンド数が“0”のコマンド授受対の割当QRB数を“0”にするとともに、そのコマンド授受対における“0”にする前に設定されていた割当QRB数をフリープールFPの未割当QRBの数に加算することにより、キュー資源をフリープールFPに解放するようになっている。
また、割当個数決定部12は、前述した余剰のQRBがあるコマンド授受対から、この余剰QRBを獲得してフリープールFPに解放するようになっている。
図8は本発明の一実施形態としてのストレージシステム100の割当個数決定部12によるキュー資源のバランシング手法を説明するための図であって、余剰のQRBをフリープールFPに解放する手法を説明するための図である。
割当個数決定部12は、[割り当てられているキュー数(割当QRB数×QRB構成数)−最大キューデプス]の値(余剰キュー資源数)がQRB構成数(本実施形態では4)以上のコマンド授受対から、その余剰QRB(余剰キュー資源)をフリープールFPに解放する。
例えば、図8に示す例においては、コマンド授受対[ホストA−LUN3]における余剰キュー資源数は、以下の式により求められる。
余剰キュー資源数=[割り当てられているキュー数(割当QRB数×QRB構成数(本実施形態では4))−最大キューデプス]=6×4−14=10
すなわち、コマンド授受対[ホストA−LUN3]における余剰キュー資源数“10”は4以上であるので、割当個数決定部12は、この余剰キュー資源数に含まれる2QRB(余剰QRB数=2)をフリープールFPに解放する。
また、割当個数決定部12は、キュー資源のバランシングを行なうに際して、割当QRB数がLUN毎(コマンド授受対毎)に異なる初期段階等において、QFULL応答が行なわれているLUN全体でフリープールFP分のキュー資源も含め、均等なキュー資源数に設定し直すようになっている。
図9は本発明の一実施形態としてのストレージシステム100の割当個数決定部12によるキュー資源のバランシング手法を説明するための図であって、コマンド授受対間でキュー資源数を均等に分配する手法を説明するための図である。
この図9に示す例においては、コマンド授受対[ホストA−LUN0],コマンド授受対[ホストA−LUN3],コマンド授受対[ホストB−LUN1]およびコマンド授受対[ホストC−LUN0]において、それぞれ1以上のQFULL応答が行なわれており(QFULL数≠0)、又、それぞれ、4,6,3,8の割当QRB数が設定されている。
すなわち、これらのQFULL応答が行なわれたコマンド授受対に対して計21個のQRBが割り当てられている。
このような状態において、例えば、フリープールFPに9個の未割当QRB(9QRB)がある場合には、4つのコマンド授受対全体で30個のQRB(30QRB)存在することになる。このような場合に、割当個数決定部12は、この30QRBを4つのコマンド授受対に均等に分配する(割る)ことにより、1つのコマンド授受対に対して7QRBを割り当てるのである。
同様に、フリープールFPに20個の未割当QRB(20QRB)がある場合には、4つのコマンド授受対全体で41個のQRB(41QRB)存在することになる。このような場合に、割当個数決定部12は、この41QRBを4つのコマンド授受対に均等に分配することにより、1つのコマンド授受対に対して10QRBを割り当てる。
また、割当個数決定部12は、1回の定期キューバランシングにおいて割当QRB数を増大させる数、すなわち、キューバランシングを行なう前の割当QRB数からキューバランシング後の割当QRB数の増加数に制限に制限(最大増大キュー数)を設けてもよい。
例えば、図9に示す例において、フリープールFPに50個の未割当QRB(50QRB)がある場合には、4つのコマンド授受対全体で71個のQRB(71QRB)存在することになる。この71QRBを4つのコマンド授受対に均等に分配すると、1つのコマンド授受対あたりの割当QRB数は17となるが、ここで、1回の定期キューバランシングの最大増大キュー数として、例えば、“8”が設定されている場合には、コマンド授受対[ホストB−LUN1]におけるキューバランシング前の割当QRB数は“3”である。従って、コマンド授受対[ホストB−LUN1]に割り当て可能な最大の割当QRB数は、“11”(=3+8)となる(制限される)。
なお、このようなキューバランシングを行なうに際して、余ったQRBはフリープールFPに入れられるようになっている。
これらの手法は、特に、割当QRB数がLUN毎(コマンド授受対毎)に異なる初期段階等におけるキュー資源のバランシングに適している。
また、割当個数決定部12は、キュー資源の分配率を、LUN毎(コマンド授受対毎)の負荷割合(受けたI/Oコマンド数)やQFULL率(QFULL数÷受付コマンド数)を使用してそれに見合った割合としてもよい。このような手法は、例えば、LUN毎(コマンド授受対毎)のI/Oコマンドが安定している段階などに適している。
また、本ストレージシステム100においては、割当個数決定部12は、現在の割当QRB数やQFULL率をパラメータとして、コマンド授受対に対して割り当てるキュー資源の増減を、これらのパラメータに基づいて調整してもよい。
さらに、例えば、本ストレージシステム100のユーザが、ストレージに対する他のジョブ(夜間バックアップ等の業務)を行なう時刻等のスケジュールを設定した場合には、その時刻(ジョブ設定時刻)を境にLUNの使用割合が全く変わることが予測される。
このような場合に、当該他のジョブの開始前に、予めフリープールFPに多めにキュー資源を解放しておき、新たなコマンドに備えるということが有効である。具体的には、割当個数決定部12は、キュー資源全体のうちの所定割合(例えば、1/4)を、そのジョブの開始設定時刻直前のキューバランシングでフリープールFPに解放するように全体のキュー数を調整してもよい。
また、LUN毎(コマンド授受対毎)の資源追加要求の重み(W)を、例えば以下に示す式(1)により算出し、この重み(W)をLUNごとに比較して増減を調整してもよく、例えば、算出された重み(W)が大きいコマンド授受対(LUN)に対する割当QRB数数を多くするのである。
重み(W)=(割当QRB数)÷(1−n×QFULL率)・・・(1)
なお、nはQFULL係数であって、任意の値(例えば、0.5程度)であり、以下、本実施形態においては、QFULL係数(n)=0.5の例を示す。
また、上述の如く計算した重み(W)をLUN毎(コマンド授受対毎)に比較して、割当QRB数の増減を調整してもよい。
図10は本発明の一実施形態としてのストレージシステム100の割当個数決定部12によるキュー資源のバランシング手法を説明するための図であって、重み(W)を考慮したバランシング手法を説明するための図である。
この図10に示す例において、例えば、コマンド授受対[ホストA−LUN0]に割り当てられているQRBは“4”であり(割当QRB=4)、その受付コマンド数は“1000”,最大キューデプスは“16”,QFULL数は“500”である(実施情報21a参照)。
従って、このコマンド授受対[ホストA−LUN0]の重み(W:ホストA−LUN0)は、以下に示すように求められる。
ホストA−LUN0:重み(W)=4÷(1−0.5×500/1000)=5.33
同様にして、他のコマンド授受対[ホスト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数を決定することによりバランシングを行なってもよい。
新QRB数=(全QRB数)×(重み)÷(重みの総和)・・・(2)
例えば、図10に示す例において、仮にフリープールFPに未割当QRBが9個あった場合に、QFULL数≠0のコマンド授受対でQRBの総数は21個なので、トータルで30個のQRBがある。
このような例において、上述した式(2)に基づき、各コマンド授受対におけるバランシング後の割当QRB数を以下のように求めることができる。
ホストA−LUN0:割当QRB数=30×5.33÷26.06=6.14≒6個
ホスト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−LUN0:割当QRB数=21×5.33÷26.06=4.30≒4個
ホスト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総数が足りるのであれば四捨五入してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
また、割当QRB数の決定に際して、例えば、各コマンド授受対(LUN)の平均レスポンス時間を考慮してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
このように、本発明の一実施形態としてのストレージシステム100によれば、複数のコマンド授受対(LUN)間において、I/Oコマンドの実行数のバランスを良くすることができ、I/Oコマンドを効率的に処理することができる。又、この際、キュー資源の制限を考慮した状態でキュー資源を効率的に使用することができる。
割当個数決定部12が、実施情報21に基づいて対象コマンド授受対に対する割当QRB数を決定するので、対応コマンド授受対に対して、RAID装置60の実際の使用状況に応じたキュー資源を割り当てることができる。
また、本ストレージシステム100においては、キュー資源の割当個数をQRB単位(QRB構成数)で管理しているので、対象コマンド授受対に対してキュー資源を割り当てる際の処理の負荷を軽減し、処理を高速化することができる。
例えば、QRB構成数を大きく設定することによりQRB数が減少し、これにより、オーバーヘッドを減少させ、バランシング処理やQRBのリンクを辿って行なう検索処理等を高速化することができる。一方、QRB構成数と小さく設定することにより、きめの細かいバランシングを行なうことができる。
また、キュー資源の割当個数をQRB単位で管理することにより、重み(W)の算出を簡略化して行なうことができ、これによっても、バランシング処理を軽減することができるのである。
さらに、上述の如きキューの割当処理は、本ストレージシステム100の運用時においてホスト1からのアクセス処理を行ないながら行なわれるものであるので、上述の如くバランシング処理を軽減することにより、アクセス処理にかかる負荷を軽減し、処理の高速化を行なうことができる。
また、割当個数決定部12が、最初のI/Oコマンドの処理時に、対象コマンド授受対に対して初期割当個数のQRBを設定することにより、そのI/Oコマンドを確実に処理することができる。
その対象コマンド授受対に初期割当個数のQRBを割り当てるに際して、フリープールFPから初期割当個数のQRBを獲得できない場合には、他のコマンド授受対から余剰QRBを獲得して、対象コマンド授受対に対して割り当てるので、その対象コマンド授受対においてそのI/Oコマンドを確実に処理することができる。
また、この際、余剰QRBを提供したコマンド授受対においても、最大キューデプスに相当するキュー資源の数を満たすQRBが引き続き割り当てられているので、これらのコマンド授受対においてQFULL応答が生じるおそれが低く、本ストレージシステム100の処理速度が低減することがなく、高い信頼性を維持することができる。
さらに、割当個数決定部12が、[割り当てられているキュー数(割当QRB数×QRB構成数(本実施形態では4))−最大キューデプス]の値(余剰キュー資源数)がQRB構成数(k;本実施形態ではk=4)以上のコマンド授受対の間で、ラウンドロビン手法を用いて余剰QRBを順次取得し、フリープールFPにある未割当QRBだけでは初期割当個数を満たすことができないコマンド授受対に対して、初期割当個数を満たすQRBを割り当てることにより、効率的にQRBの割り当てを行なうことができる。
また、割当個数決定部12は、QRBの割当個数の決定に際して、フリープールFPに1つの未割当QRBもなく、且つ、他のコマンド授受対からも余剰のQRBを獲得することができない場合には、実施情報21を参照して、割当個数決定部12は、所定期間内においてQFULLイベントが発生していない(QFULL数=0)他のコマンド授受対のうち、割当QRB数が“2”以上のコマンド授受対から1つのQRBを獲得し、対象コマンド授受対に対して割り当てる。これにより、その対象コマンド授受対に対して、QRB構成数であるk個のキュー資源が割り当てられ、これにより、少なくともk個分のI/Oコマンドにかかる処理を処理することができ、最低限のI/Oコマンド処理を担保することができる。
さらに、割当個数決定部12が、コマンド授受対に対して割り当てたQRBについて、定期的にキュー資源のバランシングを実施するようになっているので、例えば、処理頻度の少ない(負荷の少ない)コマンド授受対に対して多くのキュー資源が永続的に割り当てられることが無く、キュー資源を効率的に用いることができる。又、QFULL応答の発生を低減することができ、これによってもI/Oコマンドを効率的に処理することができる。
また、コマンド授受対毎(LUN毎)の資源追加要求の重み(W)を実施情報21(QFULL率等)に基づいて算出し、この重み(W)を用いて割当QRB数の増減を調整することにより、RAID装置60の稼働状況に合ったキュー資源の割り当てを行なうことができる。
そして、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、記憶装置は、HDD(Hard disk drive)に限定されるものではなく、光ディスクドライブ,半導体記憶装置またはその他の記憶装置であってもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
なお、本発明の各実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
そして、本発明は、以下に示すように要約することができる。
(付記1) 複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置であって、
該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、
該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部とをそなえることを特徴とする、ストレージ装置。
(付記2) 各コマンド授受対に関して、単位時間あたりに並行して処理した該データ入出力要求コマンドの実行数を実施情報として管理する実施情報管理部と、
該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえることを特徴とする、付記1記載のストレージ装置。
(付記3) 該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、付記2記載のストレージ装置。
(付記4) 前記複数の外部装置との接続にかかる通信ポートあたりのコマンド処理資源数が有限個数として予め設定され、
該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させることを特徴とする、付記3記載のストレージ装置。
(付記5) 該割当個数決定部が、該コマンド授受対に対するコマンド処理資源の割当個数を定期的に決定することを特徴とする、付記2〜付記4のいずれか1項に記載のストレージ装置。
(付記6) 該実施情報管理部が、単位時間あたりの該外部装置から受け付けたコマンド数を該実施情報として管理し、
該割当個数決定部が、前単位時間あたりの外部装置から受け付けたコマンド数が0の該コマンド授受対に対応する該割当個数を0とすることを特徴とする、付記5記載のストレージ装置。
(付記7) 該割当個数決定部が、該コマンド授受対に関して、前記単位時間あたりに処理した該データ入出力要求コマンドの実行数に予め設定された設定値を加算して求められた数を、当該コマンド授受対の該割当個数として決定することを特徴とする、付記5又は付記6記載のストレージ装置。
(付記8) 新たに該外部装置から受け付けた該データ入出力要求コマンドを該コマンド処理資源割り当てることができないキューフル状態となった場合に、該割当個数決定部が、当該キューフル状態が生じた該論理デバイスに関する該コマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、付記5〜付記7のいずれか1項に記載のストレージ装置。
(付記9) 該割当個数管理部が、2以上のコマンド処理資源によって構成されるブロック単位で、該割当個数を管理することを特徴とする、付記1〜付記8のいずれか1項に記載のストレージ装置。
(付記10) 複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置の制御装置であって、
該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、
該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部とをそなえることを特徴とする、制御装置。
(付記11) 各コマンド授受対に関して、単位時間あたりに処理した該データ入出力要求コマンドの実行数を実施情報として管理する実施情報管理部と、
該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえることを特徴とする、付記10記載の制御装置。
(付記12) 該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、付記11記載の制御装置。
(付記13) 前記複数の外部装置との接続にかかる通信ポートあたりのコマンド処理資源数が有限個数として予め設定され、
該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させることを特徴とする、付記12記載の制御装置。
(付記14) 該割当個数決定部が、該コマンド授受対に対するコマンド処理資源の割当個数を定期的に決定することを特徴とする、付記11〜付記13のいずれか1項に記載の制御装置。
(付記15) 該実施情報管理部が、単位時間あたりの該外部装置から受け付けたコマンド数を該実施情報として管理し、
該割当個数決定部が、前単位時間あたりの外部装置から受け付けたコマンド数が0の該コマンド授受対に対応する該割当個数を0とすることを特徴とする、付記14記載の制御装置。
(付記16) 該割当個数決定部が、該コマンド授受対に関して、前記単位時間あたりに処理した該データ入出力要求コマンドの実行数に予め設定された設定値を加算して求められた数を、当該コマンド授受対の該割当個数として決定することを特徴とする、付記14又は付記15記載の制御装置。
(付記17) 新たに該外部装置から受け付けた該データ入出力要求コマンドを該コマンド処理資源割り当てることができないキューフル状態となった場合に、該割当個数決定部が、当該キューフル状態が生じた該論理デバイスに関する該コマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、付記14〜付記16のいずれか1項に記載の制御装置。
(付記18) 該割当個数管理部が、2以上のコマンド処理資源によって構成されるブロック単位で、該割当個数を管理することを特徴とする、付記10〜付記17のいずれか1項に記載のストレージ装置。
本発明の一実施形態としてのストレージシステムの構成を模式的に示す図である。 本発明の一実施形態としてのストレージシステムにおける実施情報の例を示す図である。 本発明の一実施形態としてのストレージシステムにおけるキューテーブルリンクの例を示す図である。 本発明の一実施形態としてのストレージシステムにおけるフリープールに格納されたQRBを模式的に示す図である。 本発明の一実施形態としてのストレージシステムの割当個数決定部により初期割当個数のQRBが設定されたコマンド授受対のキューテーブルの例を示す図である。 本発明の一実施形態としてのストレージシステムの割当個数決定部によるキュー資源の割り当て手法を説明するための図である。 本発明の一実施形態としてのストレージシステムの割当個数決定部によるキュー資源の割り当て手法を説明するための図である。 本発明の一実施形態としてのストレージシステムの割当個数決定部によるキュー資源のバランシング手法を説明するための図である。 本発明の一実施形態としてのストレージシステムの割当個数決定部によるキュー資源のバランシング手法を説明するための図である。 本発明の一実施形態としてのストレージシステムの割当個数決定部によるキュー資源のバランシング手法を説明するための図である。 従来の仮想化ストレージシステムの構成例を模式的に示す図である。 (a)〜(c)は従来の仮想化ストレージシステムにおけるキューの論理サイズの調整手法を説明するための図である。
符号の説明
1,1a,1b,1c,1d ホスト(外部装置)
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. 複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置であって、
    該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、
    該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部と
    各コマンド授受対に関して、単位時間あたりに並行して処理した該データ入出力要求コマンドの実行数と、単位時間内に該外部装置に対して行なった、新たに該外部装置から受け付けた該データ入力要求コマンドを該コマンド処理資源に割り当てることができないキューフル状態に生成されるキューフル応答の数と、を実施情報として管理する実施情報管理部と、
    該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえ
    該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定し、
    前記複数の外部装置との接続にかかる通信ポートあたりのコマンド処理資源数が有限個数として予め設定され、
    該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させるとともに、
    該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対があり、且つ、前記既に該割当個数が設定されている該コマンド授受対からも余剰の該割当個数を獲得することができない場合には、該実施情報を参照して、該割当個数決定部が、所定期間内において該キューフル応答が発生していない該他のコマンド授受対のうち、該割当個数が2以上のコマンド授受対の該割当個数を1つ減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を1つ増加させることを特徴とする、ストレージ装置。
  2. 該割当個数決定部が、各コマンド授受対に関して、該割当個数と該キューフル応答の発生率とに基づいて重みを算出し、該コマンド処理資源の総数に対して前記算出した該コマンド授受対毎の重みを適用して、各コマンド授受対に対するコマンド処理資源の割当個数を定期的に決定することを特徴とする、請求項記載のストレージ装置。
  3. 該実施情報管理部が、単位時間あたりの該外部装置から受け付けたコマンド数を該実施情報として管理し、
    該割当個数決定部が、前記単位時間あたりの外部装置から受け付けたコマンド数が0の該コマンド授受対に対応する該割当個数を0とすることを特徴とする、請求項2記載のストレージ装置。
  4. 新たに該外部装置から受け付けた該データ入出力要求コマンドを該コマンド処理資源に割り当てることができない該キューフル状態となった場合に、該割当個数決定部が、当該キューフル状態が生じた該論理デバイスに関する該コマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定することを特徴とする、請求項2又は請求項3記載のストレージ装置。
  5. 該割当個数管理部が、2以上のコマンド処理資源によって構成されるブロック単位で、該割当個数を管理することを特徴とする、請求項1〜請求項4のいずれか1項に記載のストレージ装置。
  6. 複数の外部装置と通信可能に接続され、前記複数の外部装置に対してそれぞれ1以上の論理デバイスを提供し、該論理デバイスに対するデータ入出力要求コマンドを各外部装置から受け付け、これらのデータ入出力要求コマンドをコマンド処理資源に割り当てて実行するストレージ装置の制御装置であって、
    該外部装置と該データ入出力要求コマンドを受信する該論理デバイスとを組合せたコマンド授受対に対応させて、コマンド処理資源の割当個数を管理する割当個数管理部と、
    該コマンド授受対に関して、該割当個数管理部によって管理されている該割当個数を上限値とする数の該コマンド処理資源に、該データ入出力要求コマンドを割り当てる割当制御部と
    各コマンド授受対に関して、単位時間あたりに処理した該データ入出力要求コマンドの実行数と、単位時間内に該外部装置に対して行なった、新たに該外部装置から受け付けた該データ入力要求コマンドを該コマンド処理資源に割り当てることができないキューフル状態に生成されるキューフル応答の数と、を実施情報として管理する実施情報管理部と、
    該実施情報に基づいて、該コマンド授受対に対するコマンド処理資源の割当個数を決定する割当個数決定部とをそなえ
    該割当個数決定部が、当該ストレージ装置の設定時において、複数のコマンド授受対に対して、予め規定した同数の割当個数をそれぞれ設定し、
    前記複数の外部装置との接続にかかる通信ポートあたりのコマンド処理資源数が有限個数として予め設定され、
    該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対がある場合には、該割当個数決定部が、既に該割当個数が設定されている該コマンド授受対であって、前記割当個数を設定することができないコマンド授受対とは異なる他のコマンド授受対の該割当個数を、当該割当個数が前記単位時間あたりに処理したデータ入出力要求コマンドの実行数以下にならない範囲で減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を、該減少させた数だけ増加させるとともに、
    該コマンド処理資源の不足により該割当個数を設定することができない該コマンド授受対があり、且つ、前記既に該割当個数が設定されている該コマンド授受対からも余剰の該割当個数を獲得することができない場合には、該実施情報を参照して、該割当個数決定部が、所定期間内において該キューフル応答が発生していない該他のコマンド授受対のうち、該割当個数が2以上のコマンド授受対の該割当個数を1つ減少させ、前記割当個数を設定することができないコマンド授受対の該割当個数を1つ増加させることを特徴とする、制御装置。
JP2008182773A 2008-07-14 2008-07-14 ストレージ装置および制御装置 Expired - Fee Related JP4654273B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 記憶システム、パス管理方法及びパス管理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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