JP5899893B2 - ストレージ装置、コマンド実行制御方法、およびプログラム - Google Patents
ストレージ装置、コマンド実行制御方法、およびプログラム Download PDFInfo
- Publication number
- JP5899893B2 JP5899893B2 JP2011277303A JP2011277303A JP5899893B2 JP 5899893 B2 JP5899893 B2 JP 5899893B2 JP 2011277303 A JP2011277303 A JP 2011277303A JP 2011277303 A JP2011277303 A JP 2011277303A JP 5899893 B2 JP5899893 B2 JP 5899893B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- copy
- limit value
- commands
- host
- 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.)
- Active
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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Communication Control (AREA)
Description
〔第1の実施の形態〕
第1の実施の形態は、通信インタフェースに入力されるコマンドについて、コマンドの用途を示す種別ごとに異なる制限値で、コマンドの流量制御を行うものである。制限値は、実行中のコマンドの数がどの程度になったら、対応する種別のコマンドの実行を抑止するのかを示す閾値である。
記憶手段1−3aは、例えばコマンドの種別ごとの制限値を記憶する。制限値は、対応する種別のコマンドを実行するか否かを判断する際の、実行中のコマンドの数の閾値である。記憶手段1−3aとしては、例えば管理部1−3内のメモリが用いられる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ホストコンピュータからのストレージ装置内のデータへのアクセスを要求するホストコマンドについてのコマンド数の制限値を設けることで、ストレージ装置間のデータのコピーを効率的に実行するものである。
図4は、第2の実施の形態におけるコマンドの流量制御状況の一例を示す図である。ストレージ装置100は、CARAポート151とCAポート152とを有する。CARAポート151は、例えば図3に示した通信I/F121によって実現される通信ポートである。またストレージ装置100は、複数のボリューム141,142,143を有する。ボリューム141,142,143は、例えばRAIDグループ内に設けられた論理ボリュームである。またボリューム141,142,143は、それぞれが1台のHDDであってもよい。
図7は、コマンド管理テーブルの一例を示す図である。コマンド管理テーブル50には、コマンド制限値とコマンド実行数とが設定されている。なおコマンド管理テーブル50は、例えばCM230のメモリ232内に格納されている。
図8は、第2の実施の形態のコマンド実行処理の手順を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS102]CM230は、コマンド管理テーブル50のコマンド実行数の値を1だけインクリメントする。
[ステップS105]CM230は、コマンド管理テーブル50を参照し、コマンド実行数がコマンド制限値以下か否かを判断する。CM230は、コマンド実行数がコマンド制限値以下であれば、処理をステップS108に進める。またCM230は、コマンド実行数がコマンド制限値を超えていれば、処理をステップS106に進める。
[ステップS107]CM230は、QFULL応答をストレージ装置100に送信する。その後、コマンド実行処理が終了する。
[ステップS110]CM230は、ストレージ装置100へ、コピーコマンドに応じたデータ書き込みが正常に完了したことを示す正常応答を送信する。その後、コマンド実行処理が終了する。
[ステップS112]CM230は、コマンド管理テーブル50を参照し、コマンド実行数がコマンド制限値以下か否かを判断する。CM230は、コマンド実行数がコマンド制限値以下であれば、処理をステップS115に進める。またCM230は、コマンド実行するがコマンド制限値を超えていれば、処理をステップS113に進める。
[ステップS114]CM230は、QFULL応答をホストコンピュータ22に送信する。その後、コマンド実行処理が終了する。
[ステップS117]CM230は、ホストコンピュータ22へ、ホストコマンドに応じたデータアクセスが正常に完了したことを示す正常応答を送信する。なお、ホストコマンドがリード要求の場合、正常応答には、読み出したデータが含まれる。その後、コマンド実行処理が終了する。
第3の実施の形態は、ホストコマンドとコピーコマンドの動的な流量制御を行うものである。なお、第3の実施の形態におけるシステム構成は、図2、図3に示した第2の実施の形態の構成と同様である。また、第3の実施の形態におけるストレージ装置200のCM230のメモリ232には、図7と同様のコマンド管理テーブル50が格納されている。
図10は、第3の実施の形態におけるセッション管理テーブルの一例を示す図である。セッション管理テーブル60には、RA元ボリューム番号、RA先ボリューム番号、およびセッション種別の欄が設けられている。
RA先ボリューム番号の欄には、コピーのRA先となるボリュームの、そのボリュームが属するストレージ装置内での識別番号(ボリューム番号)が設定される。
次に、ストレージ装置200におけるコマンド実行処理について説明する。
その後、ステップS214の処理により、コマンド実行数が設定されたコマンド制限値以下か否かに応じて、受信したホストコマンドの実行の有無が判断される。その結果、RAセッションがない場合には、ホストコマンドに対しても、コピーコマンドと同様のコマンド制限値が適用される。
次に第4の実施の形態について説明する。第4の実施の形態は、コピーコマンドとホストコマンドの比率を考慮した動的な流量制御を行うものである。なお、第4の実施の形態におけるシステム構成は、図2、図3に示した第2の実施の形態の構成と同様である。
tcs=(tc/(tc+tr))×1024 ・・・(1)
trs=1024−tcs ・・・(2)
例えば、RA先ホストコマンド累積数tcが「2000」、RA先コピーコマンド累積数trが「1024」の場合を考える。この場合、RA先ホストコマンド制限値tcsとRA先コピーコマンド制限値trsとは、以下のような値となる。
tcs=677
trs=347
このように制御することで、コピーコマンドを多数受信した場合にも、ホストコマンドと平等に処理することが可能となる。コピーコマンドとホストコマンドの比率を考慮した動的な流量制御に用いられる情報は、コマンド管理テーブルに設定される。
[ステップS301]CM230は、タイマをリセットし、時間計測(タイマカウント)を開始する。
図15は、第4の実施の形態のコマンド実行処理の手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS312]CM230は、受信したコマンドの種別がホストコマンドかコピーコマンドかを判断する。コマンドの種別は、例えば受信したコマンドのオペレーションコードに基づいて判断できる。受信したコマンドがコピーコマンドであれば、CM230は処理をステップS313に進める。また受信したコマンドがホストコマンドであれば、CM230は処理をステップS320に進める。
[ステップS316]CM230は、QFULL応答をストレージ装置100に送信する。その後、コマンド実行処理が終了する。
[ステップS318]CM230は、コピーコマンド実行数を1だけデクリメントする。
[ステップS323]CM230は、QFULL応答をホストコンピュータ22に送信する。その後、コマンド実行処理が終了する。
[ステップS325]CM230は、ホストコマンド実行数を1だけデクリメントする。
〔第5の実施の形態〕
次に第5の実施の形態について説明する。第5の実施の形態は、RA元側のコマンド累積数も考慮に入れて、動的な流量制御を行うものである。なお、第5の実施の形態におけるシステム構成は、図2、図3に示した第2の実施の形態の構成と同様である。
ic×p:tc=trs:tcs ・・・(3)
tcs+trs=1024 ・・・(4)
この2式から、以下の結果が得られる。
tcs=(tc/(tc+ic×p))×1024 ・・・(5)
trs=1024−tcs
=(ic×p/(tc+ic×p))×1024 ・・・(6)
さらに、それらの情報を使用することで、RA元のストレージ装置100におけるRA元ホストコマンド制限値icsも、RA先のストレージ装置200の状況に応じた値とすることができる。例えば以下の計算式でストレージ装置100におけるRA元ホストコマンド制限値icsを算出できる。
ics=trs/p ・・・(7)
例えばストレージ装置200がRA元ホストコマンド制限値icsを計算し、計算したRA元ホストコマンド制限値icsを付加情報として含む経路監視コマンド37を、ストレージ装置100に送信する。経路監視コマンド37を受信したストレージ装置100は、経路監視コマンド37で示されたRA元ホストコマンド制限値icsを、CARAポート151から入力されるホストコマンドの実行制限に適用する。
第1の例は、「ic×(1−p)≦tc」の場合である。「ic×(1−p)」は、一定時間内にRA元のストレージ装置100に入力されたCAコマンドの数(CAコマンド累積数)を示している。すなわち「ic×(1−p)≦tc」は、ストレージ装置100に入力されたCAコマンド累積数が、ストレージ装置200に入力されたRA先ホストコマンド累積数tc以下の場合を示している。
RA元ホストコマンド累積数ic:3000
RAコマンド率p:0.5
RA先ホストコマンド累積数tc:2000
すると、RA先ホストコマンド制限値tcs、RA先コピーコマンド制限値trs、およびRA元ホストコマンド制限値icsは以下の通りとなる。
tcs=(2000/(2000+3000×0.5))×1024=585
trs=1024−585=439
ics=439/0.5=878
この場合、ホストコンピュータ21から単位時間当たりに出力されるホストコマンドの数がほぼ一定であれば、ストレージ装置100に対してRA元ホストコマンド制限値icsを超過して入力されるホストコマンドの数は、ic−ics=2122となる。同様に、ホストコンピュータ22から単位時間当たりに出力されるホストコマンドの数がほぼ一定であれば、ストレージ装置200に対してRA先ホストコマンド制限値tcsを超過して入力されるホストコマンドの数は、「tc−tcs=1415」となる。すると、ホストコマンドを送信した各ホストコンピュータ21,22にQFULLが応答される確率(QFULL率)は、以下の通りとなり、同等の性能となることがわかる。
2122/3000=0.707=70.7%
1415/2000=0.707=70.7%
第2の例は、「ic×(1−p)>tc」の場合である。「ic×(1−p)>tc」は、ストレージ装置100に入力されたCAコマンドの数が、ストレージ装置200に入力されたRA先ホストコマンド累積数tcよりも多い場合を示している。
RA元ホストコマンド累積数ic:2000
RAコマンド率:0.4
RA先ホストコマンド累積数tc:1000
すると、RA先ホストコマンド制限値tcs、RA先コピーコマンド制限値trs、およびRA元ホストコマンド制限値icsは以下の通りとなる。
tcs=(1000/(1000+2000×0.4))×1024=568
trs=1024−568=456
ics=456/0.4=1140>1024
このように、icsが1024を超えてしまう。そのため、「ic×(1−p)>tc」の場合にはicsを1024に合わせるよう、以下の計算式を使用する。
ics=1024 ・・・(8)
trs=ics×p ・・・(9)
tcs=(tc/ic)×1024 ・・・(10)
すると、RA先コピーコマンド制限値trsとRA先ホストコマンド制限値tcsとは、以下のような値に変更される。
trs=1024×0.4=409
tcs=1000/2000×1024=512
この場合、ic−ics=976、tc−tcs=488であり、QFULL率としては、それぞれ以下の通りとなり、同等の性能となる。
976/2000=0.488=48.8%
488/1000=0.488=48.8%
なお第5の実施の形態は、RA元のストレージ装置100のCARAポート151にホストコマンド31が入力され、CARAポート151から出力されたコピーコマンド32が、ストレージ装置200のCARAポート251で受信される。このようにCARAポートを介して入出力されたコマンドが、各ストレージ装置へのコマンド状態の監視対象となる。
次に、第5の実施の形態の機能を実現するためにRA元とRA先の各ストレージ装置100,200が有するコマンド管理テーブルについて説明する。
RA元ホストコマンド累積数icは、一定時間内にRA元のストレージ装置100に入力されたホストコマンドの数である。
RAコマンド数は、一定時間内にRA元のストレージ装置100に入力されたホストコマンドのうち、RAセッションが組まれたボリュームへのアクセス要求であるRAコマンドの数である。
図18は、RA先コマンド管理テーブルの一例を示す図である。ストレージ装置200は、RA先コマンド管理テーブル53を有する。例えばCM230のメモリ内にRA先コマンド管理テーブル53が格納される。RA先コマンド管理テーブル53には、ホストコマンド実行数、RA先ホストコマンド累積数tc、RA先ホストコマンド制限値tcs、コピーコマンド実行数、RA先コピーコマンド累積数tr、RA先コピーコマンド制限値trs、RA元ホストコマンド累積数ic、およびRAコマンド率pが設定されている。
図19は、ストレージ装置間の情報交換手順の一例を示すシーケンス図である。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS405]ストレージ装置200は、経路監視コマンドを用い、決定したRA元ホストコマンド制限値icsをストレージ装置100に通知する。
このように、2台のストレージ装置100,200が情報を交換することで、ある種のコマンドだけが突出して優先実行されることのないように、公平なコマンド実行が可能となる。
図20は、RA元におけるコマンド実行状況通知処理の手順の一例を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
[ステップS422]CM130は、タイマが10秒経過したか否かを判断する。10秒経過していなければ、CM130は処理をステップS421に進める。10秒経過していれば、CM130は処理をステップS423に進める。
次にRA元のストレージ装置におけるコマンド実行処理について説明する。
[ステップS431]CM130は、ホストコマンドを受信する。
[ステップS437]CM130は、ステップS436で書き込んだデータをストレージ装置200にコピーするためのコピーコマンド32を、ストレージ装置200宛に送信する。
[ステップS440]CM130は、ホストコンピュータ21へ正常応答を送信する。その後、コマンド実行処理が終了する。
[ステップS443]CM130は、RA元コマンド管理テーブル52のホストコマンド実行数の値を1だけデクリメントする。
[ステップS445]ホストコマンド実行数がRA元ホストコマンド制限値icsを超えている場合、CM130は、RA元コマンド管理テーブル52のホストコマンド実行数の値を1だけデクリメントする。
このようにして、RA元のストレージ装置100においても、RA先コピーコマンド制限値trsに応じて動的に変更されるRA元ホストコマンド制限値icsによって、ホストコマンドの実行数が適切に制限される。
図22は、RA先におけるコマンド制限値決定処理の手順の一例を示す図である。以下、図22に示す処理をステップ番号に沿って説明する。
[ステップS452]CM230は、タイマが10秒経過したか否かを判断する。10秒経過していなければ、CM230は処理をステップS451に進める。10秒経過していれば、CM230は処理をステップS453に進める。
[ステップS457]CM230は、RA先ホストコマンド制限値tcsとRA先コピーコマンド制限値trsとを計算する。例えばCM230は、RA先コマンド管理テーブル53から、RA元ホストコマンド累積数ic、RAコマンド率p、及びRA先ホストコマンド累積数tcを取得する。そしてCM230は、取得した値と、ステップS456で決定したRA元ホストコマンド制限値「ics=1024」とを用い、上記の式(9)・式(10)に従ってRA先ホストコマンド制限値tcsとRA先コピーコマンド制限値trsとを計算する。さらにCM230は、計算したRA先ホストコマンド制限値tcsとRA先コピーコマンド制限値trsとによって、RA先コマンド管理テーブル53のRA先ホストコマンド制限値tcsとRA先コピーコマンド制限値trsとの値を更新する。
[ステップS459]CM230は、ステップS455で計算したRA元ホストコマンド制限値icsまたはステップS456で決定したRA元ホストコマンド制限値icsを、RA元であるストレージ装置100に通知する。例えばCM230は、ヘッダにRA元ホストコマンド制限値icsを含む経路監視コマンド37を、ストレージ装置100宛に送信する。その後、CM230は処理をステップS451に進める。
なお、第5の実施の形態におけるRA先のストレージ装置200のコマンド実行処理は、図15に示した第4の実施の形態のコマンド実行処理と同様である。
次に第6の実施の形態について説明する。第6の実施の形態は、RA元のストレージ装置100におけるCAコマンドとRAコマンドとの処理時間の違いを考慮したものである。なお、第6の実施の形態におけるシステム構成は、図2、図3に示した第2の実施の形態の構成と同様である。
ic×p×cT/rT:tc=trs:tcs ・・・(11)
tcs+trs=1024 ・・・(12)
この二式から、以下の結果が得られる。
tcs=(tc/(tc+ic×p×cT/rT))×1024 ・・・(13)
trs=1024−tcs
=((ic×p×cT/rT)/(tc+ic×p×cT/rT))×1024
・・・(14)
さらに、以下の計算式でストレージ装置100におけるRA元ホストコマンド制限値icsを算出する。
ics=trs/p ・・・(15)
以下に、第6の実施の形態における各ストレージ装置100,200でのホストコマンドの実行性能について、具体例を用いて説明する。
RA元ホストコマンド累積数ic:3000
RAコマンド率p:0.5
RA先ホストコマンド累積数tc:2000
CAコマンド処理時間cT:1ms
RAコマンド処理時間rT:4ms
すると、RA先ホストコマンド制限値tcs、RA先コピーコマンド制限値trs、およびRA元ホストコマンド制限値icsは以下の通りとなる。
tcs=( 2000/(2000+3000×0.5×1/4))×1024=862
trs=1024−862=162
ics=162/0.5=324
RA元ホストコマンド制限値icsは1024を大きく下回っているが、324以上のコマンドを受けてもRAコマンドの処理が間に合わなくなり、滞留してしまう。RA元ホストコマンド制限値icsを低く抑えられている分、RA先のホストコマンドを多く処理できる。このように、RA元ホストコマンド制限値icsを324までに抑えることで、システム全体としての効率の向上が可能となる。
図24は、第6の実施の形態のRA元コマンド管理テーブルの一例を示す図である。第6の実施の形態では、図24に示すようなRA元コマンド管理テーブル55が、例えばCM130のメモリ内に格納される。RA元コマンド管理テーブル55には、ホストコマンド実行数、RA元ホストコマンド累積数ic、RA元ホストコマンド制限値ics、RAコマンド数、RAコマンド率p、CAコマンド処理時間cT、およびRAコマンド処理時間rTが設定されている。
図27は、第6の実施の形態のRA元におけるコマンド実行状況通知処理の手順の一例を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。
[ステップS522]CM130は、タイマが10秒経過したか否かを判断する。10秒経過していなければ、CM130は処理をステップS521に進める。10秒経過していれば、CM130は処理をステップS523に進める。
次に、RA先のストレージ装置200におけるコマンド制限値決定処理の手順について説明する。
[ステップS531]CM230は、タイマをリセットし、時間計測(タイマカウント)を開始する。
[ステップS536]CM230は、ステップS534で計算したRA元ホストコマンド制限値icsを、RA元であるストレージ装置100に通知する。その後、CM230は処理をステップS531に進める。
次に第7の実施の形態について説明する。第7の実施の形態は、コマンドの入力状況に応じてコマンド流量制御技術を動的に変更し、ストレージ装置がコマンド流量制御に要する処理負荷を抑止するものである。なお、第7の実施の形態におけるシステム構成は、図2、図3に示した第2の実施の形態の構成と同様である。
図29は、適用技術判定処理の手順の一例を示すフローチャートである。以下、図29に示す処理をステップ番号に沿って説明する。
[ステップS602]CM230は、タイマが所定時間(例えば10秒)経過したか否かを判断する。所定時間経過していなければ、CM230は処理をステップS601に進める。所定時間経過していれば、CM230は処理をステップS603に進める。
[ステップS605]CM230は、RA元ホストコマンド累積数icが1024以下か否かを判断する。CM230は、RA元ホストコマンド累積数icが1024以下であれば処理をステップS606に進める。またCM230は、RA元ホストコマンド累積数icが1024を超えていれば、処理をステップS607に進める。
[ステップS607]CM230は、第6の実施の形態に示したコマンド流量制御技術を適用することを決定する。
[ステップS609]CM230は、適用するものとして決定された技術によるコマンド流量制御を開始する。その後、CM230は処理をステップS601に進める。
上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、ストレージ装置のCMが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
1−1 記憶装置
1−2 通信インタフェース
1−3 管理部
1−3a 記憶手段
1−3b 判別手段
1−3c 計数手段
1−3d 制御手段
2 ネットワーク
3 スイッチ
4 コンピュータ
5 ストレージ装置
6 コンピュータ
7〜9 コマンド
Claims (11)
- 記憶装置と、
前記記憶装置へのデータアクセスを指示するコマンドを受信する通信インタフェースと、
前記通信インタフェースを介して受信したコマンドであって、実行中の全種別のコマンドの総数を計数する計数手段と、
前記通信インタフェースを介して新たに受信したコマンドの種別を判別する判別手段と、
前記実行中の全種別のコマンドの総数が、前記通信インタフェースを介して該新たに受信したコマンドの種別に対応する制限値以下であれば、該新たに受信したコマンドに応じたデータアクセスを前記記憶装置に対して実行し、前記実行中の全種別のコマンドの総数が該新たに受信したコマンドの種別に対応する制限値を超えた場合、該新たに受信したコマンドに応じたデータアクセスを抑止する制御を行う制御手段と、
を有するストレージ装置。 - 前記判別手段は、前記通信インタフェースを介して受信したコマンドが、他のストレージ装置から送信されたコピーコマンドか、該コピーコマンド以外の非コピーコマンドかを判別し、
前記コマンドの種別に対応する制限値は、コピーコマンドの制限値と非コピーコマンドの制限値である、
ことを特徴とする請求項1記載のストレージ装置。 - 前記制御手段は、前記コピーコマンドの制限値よりも、前記非コピーコマンドの制限値を低い値に設定することを特徴とする請求項2記載のストレージ装置。
- 前記制御手段は、
前記非コピーコマンドの制限値として、前記他のストレージ装置との間のデータコピー用の通信経路が設定されている場合に適用する第1の制限値と、該通信経路が設定されていない場合に適用する、前記第1の制限値より高い値の第2の制限値とが設定されており、
該データコピー用の通信経路が設定されている場合には、前記実行中のコマンドの数が前記第1の制限値以下であれば、前記通信インタフェースを介して受信した非コピーコマンドに応じたデータアクセスを前記記憶装置に対して実行し、前記実行中のコマンドの数が前記第1の制限値を超えていれば、該非コピーコマンドに応じたデータアクセスを抑止し、
該データコピー用の通信経路が設定されていない場合には、前記実行中のコマンドの数が前記第2の制限値以下であれば、前記通信インタフェースを介して受信した非コピーコマンドに応じたデータアクセスを前記記憶装置に対して実行し、前記実行中のコマンドの数が前記第2の制限値を超えていれば、該非コピーコマンドに応じたデータアクセスを抑止する、
ことを特徴とする請求項2または3記載のストレージ装置。 - 前記計数手段は、さらに、コマンドの種別ごとに、一定時間内に受信したコマンドの数を計数し、
前記制御手段は、コマンドの種別ごとの一定時間内に受信したコマンドの数の比率に応じ、コマンドの種別ごとの制限値を決定する、
ことを特徴とする請求項1または2記載のストレージ装置。 - 前記計数手段は、さらに、一定時間内に受信した非コピーコマンドの数を計数し、
前記制御手段は、
前記他のストレージ装置によるコピーコマンド出力の原因となる原因コマンドの、一定時間内での受信数を示す情報を、前記他のストレージ装置から取得し、
前記他のストレージ装置での原因コマンドの受信数と非コピーコマンドの数との比率に応じて、前記コピーコマンドの制限値と前記非コピーコマンドの制限値を決定する、
ことを特徴とする請求項2記載のストレージ装置。 - 前記計数手段は、さらに、一定時間内に受信した非コピーコマンドの数を計数し、
前記制御手段は、
前記他のストレージ装置によるコピーコマンド出力の原因となる原因コマンドの、一定時間内での受信数を示す情報、前記他のストレージ装置が原因コマンドを実行するのに要する時間を示す第1の時間情報、および前記他のストレージ装置が原因コマンド以外のコマンドを実行するのに要する時間を示す第2の時間情報を、前記他のストレージ装置から取得し、
前記第2の時間情報に示される時間を前記第1の時間情報に示される時間で除算した補正値を、前記他のストレージ装置での原因コマンドの受信数に乗算し、乗算結果と非コピーコマンドの数との比率に応じて、前記コピーコマンドの制限値と前記非コピーコマンドの制限値を決定する、
ことを特徴とする請求項2記載のストレージ装置。 - 前記他のストレージ装置によるコピーコマンド出力の原因となる原因コマンドは、前記記憶装置との間でデータの多重化を行うことが設定されている前記他のストレージ装置内のボリュームへの、データの書き込みを指示するコマンドであることを特徴とする請求項6または7のいずれかに記載のストレージ装置。
- 前記制御手段は、決定した前記コピーコマンドの制限値に応じた値で前記他のストレージ装置が実行するコマンド数を制限するように、前記他のストレージ装置に指示することを特徴とする請求項6乃至8のいずれかに記載のストレージ装置。
- ストレージ装置が、
通信インタフェースを介して受信した、記憶装置へのデータアクセスを指示するコマンドであって、実行中の全種別のコマンドの総数を計数し、
前記通信インタフェースを介して新たに受信したコマンドの種別を判別し、
前記実行中の全種別のコマンドの総数が、前記通信インタフェースを介して該新たに受信したコマンドの種別に対応する制限値以下であれば、該新たに受信したコマンドに応じたデータアクセスを前記記憶装置に対して実行し、前記実行中の全種別のコマンドの総数が該新たに受信したコマンドの種別に対応する制限値を超えた場合、該新たに受信したコマンドに応じたデータアクセスを抑止する、
ことを特徴とするコマンド実行制御方法。 - ストレージ装置に内蔵されたコンピュータに、
通信インタフェースを介して受信した、記憶装置へのデータアクセスを指示するコマンドであって、実行中の全種別のコマンドの総数を計数し、
前記通信インタフェースを介して新たに受信したコマンドの種別を判別し、
前記実行中の全種別のコマンドの総数が、前記通信インタフェースを介して該新たに受信したコマンドの種別に対応する制限値以下であれば、該新たに受信したコマンドに応じたデータアクセスを前記記憶装置に対して実行し、前記実行中の全種別のコマンドの総数が該新たに受信したコマンドの種別に対応する制限値を超えた場合、該新たに受信したコマンドに応じたデータアクセスを抑止する、
処理を実行させるプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011277303A JP5899893B2 (ja) | 2011-12-19 | 2011-12-19 | ストレージ装置、コマンド実行制御方法、およびプログラム |
US13/672,787 US8838839B2 (en) | 2011-12-19 | 2012-11-09 | Storage apparatus and command execution control method |
EP12195635.3A EP2608012A3 (en) | 2011-12-19 | 2012-12-05 | Storage apparatus and command execution control method |
KR1020120141246A KR101461284B1 (ko) | 2011-12-19 | 2012-12-06 | 스토리지 장치 및 커맨드 실행 제어 방법 |
CN201210526596XA CN103164171A (zh) | 2011-12-19 | 2012-12-07 | 存储装置和命令执行控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011277303A JP5899893B2 (ja) | 2011-12-19 | 2011-12-19 | ストレージ装置、コマンド実行制御方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013127726A JP2013127726A (ja) | 2013-06-27 |
JP5899893B2 true JP5899893B2 (ja) | 2016-04-06 |
Family
ID=47681507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011277303A Active JP5899893B2 (ja) | 2011-12-19 | 2011-12-19 | ストレージ装置、コマンド実行制御方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US8838839B2 (ja) |
EP (1) | EP2608012A3 (ja) |
JP (1) | JP5899893B2 (ja) |
KR (1) | KR101461284B1 (ja) |
CN (1) | CN103164171A (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9093160B1 (en) * | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
US10587688B2 (en) * | 2014-09-19 | 2020-03-10 | Netapp, Inc. | Techniques for coordinating parallel performance and cancellation of commands in a storage cluster system |
US10453460B1 (en) * | 2016-02-02 | 2019-10-22 | Amazon Technologies, Inc. | Post-speech recognition request surplus detection and prevention |
CN111448543B (zh) * | 2017-12-07 | 2021-10-01 | 华为技术有限公司 | 内存访问技术及计算机系统 |
US11893280B2 (en) * | 2021-08-27 | 2024-02-06 | Micron Technology, Inc. | Concurrent command limiter for a memory system |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3317873B2 (ja) | 1997-05-07 | 2002-08-26 | 甲府日本電気株式会社 | データ転送制御装置 |
US20030046568A1 (en) * | 2001-09-06 | 2003-03-06 | Riddick Christopher J. | Media protection system and method and hardware decryption module used therein |
US6947981B2 (en) | 2002-03-26 | 2005-09-20 | Hewlett-Packard Development Company, L.P. | Flexible data replication mechanism |
US6910087B2 (en) * | 2002-06-10 | 2005-06-21 | Lsi Logic Corporation | Dynamic command buffer for a slave device on a data bus |
JP4322068B2 (ja) * | 2003-03-07 | 2009-08-26 | 富士通株式会社 | ストレージシステム及びそのデイスク負荷バランス制御方法 |
JP2005190057A (ja) | 2003-12-25 | 2005-07-14 | Hitachi Ltd | ディスクアレイ装置及びディスクアレイ装置のリモートコピー制御方法 |
US7254768B2 (en) * | 2005-02-18 | 2007-08-07 | Broadcom Corporation | Memory command unit throttle and error recovery |
JP2007079885A (ja) | 2005-09-14 | 2007-03-29 | Hitachi Ltd | データ入出力負荷分散方法、データ入出力負荷分散プログラム、計算機システムおよび管理サーバ |
JP2008217855A (ja) * | 2007-02-28 | 2008-09-18 | Fujitsu Ltd | 記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法 |
US7840720B2 (en) * | 2008-03-31 | 2010-11-23 | International Business Machines Corporation | Using priority to determine whether to queue an input/output (I/O) request directed to storage |
CN102027455A (zh) * | 2008-05-13 | 2011-04-20 | 拉姆伯斯公司 | 用于存储器器件的分式编程命令 |
JP5147584B2 (ja) * | 2008-07-23 | 2013-02-20 | 株式会社日立製作所 | ストレージサブシステム及びコントローラによるコマンド実行方法 |
-
2011
- 2011-12-19 JP JP2011277303A patent/JP5899893B2/ja active Active
-
2012
- 2012-11-09 US US13/672,787 patent/US8838839B2/en active Active
- 2012-12-05 EP EP12195635.3A patent/EP2608012A3/en not_active Withdrawn
- 2012-12-06 KR KR1020120141246A patent/KR101461284B1/ko active IP Right Grant
- 2012-12-07 CN CN201210526596XA patent/CN103164171A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20130070525A (ko) | 2013-06-27 |
EP2608012A2 (en) | 2013-06-26 |
KR101461284B1 (ko) | 2014-11-12 |
US20130159556A1 (en) | 2013-06-20 |
JP2013127726A (ja) | 2013-06-27 |
EP2608012A3 (en) | 2016-07-27 |
US8838839B2 (en) | 2014-09-16 |
CN103164171A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4175788B2 (ja) | ボリューム制御装置 | |
US7536592B2 (en) | Storage system and snapshot data preparation method in storage system | |
JP4744171B2 (ja) | 計算機システム及び記憶制御方法 | |
JP5899893B2 (ja) | ストレージ装置、コマンド実行制御方法、およびプログラム | |
JP5658197B2 (ja) | 計算機システム、仮想化機構、及び計算機システムの制御方法 | |
EP2557494B1 (en) | Storage apparatus and data copy method between thin-provisioning virtual volumes | |
WO2011141961A1 (en) | Storage apparatus and method for controlling the same | |
TW201142591A (en) | Semiconductor memory device | |
JP4813872B2 (ja) | 計算機システム及び計算機システムのデータ複製方法 | |
US20050210144A1 (en) | Load balancing method and system | |
JP2009122873A (ja) | ストレージシステム間でのリモートコピーを管理する装置 | |
US7194562B2 (en) | Method, system, and program for throttling data transfer | |
JP2014026529A (ja) | ストレージシステムおよびその制御方法 | |
US10664193B2 (en) | Storage system for improved efficiency of parity generation and minimized processor load | |
JP2015052844A (ja) | コピー制御装置,コピー制御方法及びコピー制御プログラム | |
JP5393893B2 (ja) | 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法 | |
JP5167410B2 (ja) | 複数のマイクロプロセッサを有するストレージシステム、及び、そのストレージシステムにおける処理分担方法 | |
US20110289273A1 (en) | Disk array device and method for controlling disk array device | |
US9990148B2 (en) | Storage control device and storage system for data backup | |
US10970210B2 (en) | Managing data storage devices for spontaneous de-staging of cache | |
CN112104729A (zh) | 一种存储系统及其缓存方法 | |
JP4369520B2 (ja) | ボリューム制御装置及び方法 | |
US11232036B2 (en) | Managing write access to data storage devices for spontaneous de-staging of cache | |
WO2015155824A1 (ja) | ストレージシステム | |
US20230085856A1 (en) | Traffic management on an internal fabric of a storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140805 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150422 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150602 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150730 |
|
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: 20160209 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160222 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5899893 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |