JP5949224B2 - ストレージ制御装置、該プログラム及び該方法 - Google Patents

ストレージ制御装置、該プログラム及び該方法 Download PDF

Info

Publication number
JP5949224B2
JP5949224B2 JP2012147876A JP2012147876A JP5949224B2 JP 5949224 B2 JP5949224 B2 JP 5949224B2 JP 2012147876 A JP2012147876 A JP 2012147876A JP 2012147876 A JP2012147876 A JP 2012147876A JP 5949224 B2 JP5949224 B2 JP 5949224B2
Authority
JP
Japan
Prior art keywords
access
storage device
command
access request
random
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
JP2012147876A
Other languages
English (en)
Other versions
JP2014010709A (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 JP2012147876A priority Critical patent/JP5949224B2/ja
Priority to US13/913,777 priority patent/US9069721B2/en
Publication of JP2014010709A publication Critical patent/JP2014010709A/ja
Application granted granted Critical
Publication of JP5949224B2 publication Critical patent/JP5949224B2/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ストレージシステムの制御技術に関する。
ストレージ装置とは、複数のディスク装置を搭載したディスク記憶システムである。ディスク装置では、データをディスク上に記録することができる。ディスクへのアクセス方法には、シーケンシャルアクセス、ランダムアクセスが含まれる。シーケンシャルアクセスの場合、ディスク上において、連続したブロックに対して順次アクセスが実施される。ランダムアクセスの場合、ディスク上において、離散したブロックに対してアクセスが実施される。
SCSI(Small Computer System Interface)においては、ディスク装置へのアクセスを制御するメッセージが規格化されている。「Simple Queue Tag」メッセージは、コマンドキューを制御してディスク装置内の最適化を図るために、ディスク装置が実行順番を決めるメッセージである。「Ordered Queue Tag」メッセージは、既にキューイングされているキューを実行する、すなわちディスク装置が受け付けたコマンド順にコマンドを実行させるためのメッセージである。「Head Of Queue Tag」メッセージは、最優先でコマンドをディスク装置に実行させるメッセージである。
ディクスへのアクセスの際には、Simple Queue Tagが指定されることが多い。Simple Queue Tagが指定された場合には、物理アドレスが近い位置にあるアクセス先についてのコマンドが優先して処理されるという特性がある。
例えば、ディスクに対してシーケンシャルアクセスとランダムアクセスが、シーケンシャルアクセスの方が多い割合で競合したとする。また、コマンドA,B,D,Eによるアクセス先が、ディスク上において連続したブロック1,2,3,4であるとする。コマンドCによるアクセス先が、ディスク上においてブロック1〜4から離れたブロックであるとする。この場合に、ディスク装置が、コマンド1(シーケンシャルアクセス)、コマンド2(シーケンシャルアクセス)、コマンド3(ランダムアクセス)、コマンド4(シーケンシャルアクセス)、コマンド5(シーケンシャルアクセス)の順で、コマンドを受け付けたとする。すると、コマンド1(シーケンシャルアクセス)、コマンド2(シーケンシャルアクセス)、コマンド4(シーケンシャルアクセス)、コマンド5(シーケンシャルアクセス)、コマンド3(ランダムアクセス)の順で処理が行われる。
ディスク装置について、レスポンスを確保する技術として、例えば、次の技術がある。
第1の技術として、所定時間を経過しても実行されていないコマンドが検出された時にディスク装置のコマンド処理の促進を促すように制御を行う技術がある。
第2の技術として、次の技術がある。外部記憶制御部のコマンドバッチ生成部は、予測値テーブルによるコマンドの処理時間予測値の和が所定時間となる数のコマンドをグループ(バッチ)として受入キューから読み出す。バッチは送出キューに格納される。コマンドキューイング部はその中のコマンド処理時間の予測値が最長のディスク装置を選択し、それに対するコマンドを取り出して対応するディスク装置に発行するという動作を繰り返す。送出キューは空になると、これに次のバッチが読み込まれる。
第3の技術として、次の技術がある。記憶装置は、コマンドキューイングの機能を有し、コマンドを受領した順番で実行しないことがあり、後から来たコマンドに追い越される回数を制限する機能を有する。その記憶装置に、追い越される回数の制限数を二つ以上用意する。そして、その記憶装置にリードコマンドとライトコマンドで別々の値を適用する。
特開2000−181853号公報 特開平9−258907号公報 特開2001−249770号公報
上述したように、Simple Queue Tagが指定された場合には、シーケンシャルアクセスで指定されたコマンドについての処理が優先されて、ランダムアクセスで指定されたコマンドについての処理が取り残されることになる。一方で、ディスク装置において取り残されるコマンドを処理する技術があるが、そのコマンドが沈み込んでいる時間が長い。そこで、例えば、第1の技術のように、所定時間を経過しても実行されていないコマンドが検出された時に、 Ordered Queue Tag を発行することが考えられる。
しかしながら、第1の技術では、所定時間を経過しても実行されていないコマンドが検出された場合には全てOrdered Queue Tag が発行されるので、Ordered Queue Tagを発行し過ぎて、ディスク装置において最適化機能が動作しない可能性がある。その結果、ディスク装置の性能が劣化し、ディスク装置へのアクセスに対する応答の遅延につながる可能性がある。
そこで、本発明では、1つの側面として、記憶装置への、シーケンシャルアクセスに関するアクセス要求とランダムアクセスに関するアクセス要求とが混在する状況下でのランダムアクセスに関するアクセス要求に対する応答の遅延を防止する技術を提供する。
ストレージ制御装置は、取得部、比較部、生成部、計測部、調整部を含む。取得部は、ランダムアクセスにより情報を記憶する記憶装置へアクセスすることを指示するランダム特性を有するアクセス要求、またはシーケンシャルアクセスにより記憶装置にアクセスすることを指示するシーケンシャル特性を有するアクセス要求を取得する。比較部は、ランダム特性を有するアクセス要求に対応する記憶装置へのコマンドの発行数と、シーケンシャル特性を有するアクセス要求に対応する記憶装置へのコマンドの発行数と、の比率と閾値とを比較する。生成部は、発行数の比率と閾値とを比較した結果に応じて、第1の識別情報を付与したコマンド、または、第2の識別情報を付与したコマンドを生成する。第1の識別情報は、記憶装置に対して発行されたコマンドの実行順を記憶装置に決定させることを指示する識別情報である。第2の識別情報は、記憶装置が受け取ったコマンド順にコマンドを実行することを指示する識別情報である。発行部は、記憶装置に対して、生成したコマンドを発行する。計測部は、取得したアクセス要求がランダム特性を有する場合、コマンドを発行してから記憶装置からの応答があるまでの時間を計測する。調整部は、閾値に加算あるいは減算を行う調整をするとともに、計測による今回の計測時間と前回の計測時間とを比較した結果に応じて、閾値を更に調整する。
本発明の1つの側面として、記憶装置への、シーケンシャルアクセスに関するアクセス要求とランダムアクセスに関するアクセス要求とが混在する状況下でのランダムアクセスに関するアクセス要求に対する応答の遅延を防止することができる。
本実施形態におけるストレージシステムのブロック図を示す。 本実施形態におけるストレージシステムの一例を示す。 コントローラモジュールからディスク装置へ送信されるコマンド情報のデータ構造を示す。 本実施形態におけるコントローラモジュールにおいて管理されるパラメータの一例を示す。 本実施形態におけるコントローラモジュールによる処理フロー(その1)を示す。 本実施形態におけるコントローラモジュールによる処理フロー(その2)を示す。
上述のように、Simple Queue Tagが指定された場合には、シーケンシャルアクセスで指定されたコマンドについての処理が優先されて、ランダムアクセスで指定されたコマンドについての処理が取り残されることになる。一方で、ディスク内部において、取り残されるコマンドを処理する技術があるが、そのコマンドが沈み込んでいる時間が長い。
このような問題を回避する方法の例として、第1の技術のように、所定時間を経過しても実行されていないコマンドが検出された時に、 Ordered Queue Tag を発行することが考えられる。
しかしながら、第1の技術では、上述したように、所定時間を経過しても実行されていないコマンドが検出された場合には全てOrdered Queue Tag が発行されるので、Ordered Queue を発行し過ぎて、ディスク装置において最適化が動作しない可能性がある。その結果、ディスク装置の性能劣化につながる可能性がある。第1の技術では、ディスクアクセスのアドレス位置によらずに、Ordered Queue Tagが指定されている。例えば、アドレスA,B,C が昇順で配置されているとする。ディスクアクセス時のコマンドは、アドレスC,A,Bの順で発行されたとする。ディスク装置において最適化が行わない場合は、それらのアドレスへのアクセス順は、コマンドの発行順と同じになる。アドレスCへのアクセス終了後、アドレスAへアクセスする場合、ディスクはアドレスCからアドレスAまで約1回転するので、その間待ち時間が発生し、ディスク装置へのアクセスに対する応答の遅延に繋がる。
上記第1の技術以外にも、次の方法が挙げられる。
例えば、sequential write(シーケンシャルアクセスによる書き込み処理)とrandom read(ランダムアクセスによるリード処理)が競合する場合には、次の方法が考えられる。例えば、メインフレームシステムにおいて、sequential writeとrandom readが競合する場合に、random readに対して Ordered Queue Tagを指定することが考えられる。
しかしながら、sequential read/random read、またはsequential write/random write 等のsequential writeとrandom readとの組み合わせ以外の組み合わせが競合した場合には、Ordered Queue Tagが指定されないので、応答遅延の問題を救済できない。また、メインフレームシステム以外のオープンシステムにおいては、当該方法を行っていない。また、sequential writeとrandom readが競合し、random readの性能劣化が見られない場合にも、Ordered Queue Tagで発行してしまうので、結果的に性能劣化につながる可能性がある。また、Ordered Queue Tag 発行時間が例えば約1秒間継続するため、結果的に性能劣化につながる可能性がある。
また、ディスク装置に対して m(m:整数)個毎に Ordered Queue Tag が発行されるように設定することが考えられる。この場合、システムエンジニア(SE)またはカスタマエンジニア(CE)が手動でmの値を設定する必要がある。
しかしながら、mに誤った値が設定された場合は期待する効果が期待できない。mに誤って大きな値が設定された場合、シーケンシャルアクセスとランダムアクセスとが競合したときには、ランダムアクセスによるコマンドについての処理が遅延する恐れがある。mに誤って小さな値が設定された場合、シーケンシャルアクセスとランダムアクセスとが競合したときには、シーケンシャルアクセスだけの入力/出力の場合、性能劣化する可能性がある。また、サーバ装置がアクセス方法について最適な値を設定するは難しい。また、システムの都合でアクセスパターンが変わるとmの値の変更が必要になる可能性ある。また、同一RAID(Redundant Arrays of Independent Disks)グループ内に論理ユニット番号(LUN:logical unit number)が増えると、mの値の変更が必要になる可能性ある。
そこで、本実施形態では、ストレージ装置に内蔵するハードディスクドライブ(HDD)等のディスク装置へのアクセス制御技術について説明する。具体的には、ストレージ装置のコントローラによる、ディスク装置へのアクセスについてシーケンシャル特性とランダム特性のアクセスが混在した状況で顕著化するランダム特性のアクセスのレスポンスの遅延を防止する技術について説明する。
図1は、本実施形態におけるストレージシステムのブロック図を示す。ストレージシステム1は、ストレージ制御装置2と、記憶装置9を含む。記憶装置9は、情報を記憶する。記憶装置9の一例としては、後述するディスク装置19が挙げられる。
ストレージ制御装置2は、取得部3、比較部4、生成部5、発行部6、計測部7、調整部8を含む。ストレージ制御装置2の一例として、後述するコントローラモジュール13が挙げられる。
取得部3は、ランダムアクセスにより記憶装置9へアクセスすることを指示するランダム特性を有するアクセス要求、またはシーケンシャルアクセスにより記憶装置9にアクセスすることを指示するシーケンシャル特性を有するアクセス要求を取得する。取得部3の一例として、後述するCPU15によるS1の処理が挙げられる。
比較部4は、ランダム特性を有するアクセス要求に対応する記憶装置9へのコマンドの発行数と、シーケンシャル特性を有するアクセス要求に対応する記憶装置9へのコマンドの発行数と、の比率と閾値とを比較する。比較部4の一例として、後述するCPU15によるS5の処理が挙げられる。
生成部5は、発行数の比率と閾値とを比較した結果に応じて、第1の識別情報を付与したコマンド、または、第2の識別情報を付与したコマンドを生成する。第1の識別情報は、記憶装置9に対して発行されたコマンドの実行順を記憶装置9に決定させることを指示する識別情報である。第1の識別情報は、記憶装置9が受け取ったコマンド順にコマンドを実行することを指示する識別情報である。生成部5の一例として、後述するCPU15によるS4、S9の処理が挙げられる。
発行部6は、記憶装置9に対して、生成したコマンドを発行する。発行部6の一例として、後述するCPU15によるS10、S12の処理が挙げられる。
計測部7は、取得したアクセス要求がランダム特性を有する場合、コマンドを発行してから記憶装置9からの応答があるまでの時間を計測する。計測部7の一例として、後述するCPU15によるS13の処理が挙げられる。
調整部8は、計測による今回の計測時間と前回の計測時間とを比較した結果に応じて、閾値を調整する。調整部8の一例として、後述するCPU15によるS14〜S16の処理が挙げられる。
このように構成することにより、記憶装置9に対するシーケンシャル特性とランダム特性のアクセス(Read/Write)が混在した状況で顕著化するランダム特性のアクセスのレスポンスの遅延を回避することができる。
今回の計測時間が前回の計測時間より短い場合、調整部8は、前回、閾値から所定値を減算している場合には閾値から所定値を減算し、前回、閾値に所定値を加算している場合には、閾値に所定値を加算する。また、今回の計測時間が前回の計測時間より長い場合、調整部は、前回、閾値から所定値を減算している場合には閾値に所定値を加算し、前回、閾値に所定値を加算している場合には、閾値から所定値を減算する。
このように構成することにより、ランダムアクセスの際の応答時間の増加・減少に応じて、コマンドにOrdered Queue Tagを付与して、ランダムアクセスによるコマンドの実行タイミングを調整することができる。
また、生成部5は、先に発行したコマンドのアクセス先のアドレスが、発行しようとするランダム特性を有するアクセス要求のアクセス先のアドレスと同一トラックにある場合、第1の識別情報を付与したコマンドを生成する。
このように構成することにより、記憶装置9へのアクセス先のアドレスの近傍か否かを判定することにより、 記憶装置9が有するアクセスの最適化機能も十分に活用することができる。
本実施形態について、以下に、より詳細に説明する。
図2は、本実施形態におけるストレージシステムの一例を示す。ストレージシステム11は、複数のディスク装置19を搭載したディスク記憶システムである。ホストコンピュータ(以下、ホストと称する)21からディスク装置19へのアクセスに関して、冗長化のために、各ディスク装置19に対して、2本のアクセスパスが存在している。またデータ自体についても、RAIDを用いて複数台のディスクにデータが分散されて、冗長化した状態で保存されている。
ストレージシステム11は、ホストコンピュータ(以下、ホストと称する)21、ファイバチャネル(FC)スイッチ22、コントローラエンクロージャ(CE)12、ドライブエンクロージャ(DE)18を含む。ストレージシステム11は、ドライブエンクロージャ(DE)18と、ホスト21とが、FCスイッチ22、コントローラモジュール(CM)13を介して接続されている。
ホスト21は、FCスイッチ22を介してコントローラエンクロージャ(CE)12と通信をして、ドライブエンクロージャ(DE)18が有するディスク装置19からデータを読み出したり、ディスク装置19にデータを書き込んだりする。なお、図2では、1つのホスト21を図示しているが、複数のホスト21が、コントローラエンクロージャ(CE)12に接続されていてもよい。
コントローラエンクロージャ(CE)12は、複数のコントローラモジュール(CM)13を含む。コントローラモジュール13は、ディスク装置19の動作制御を行う。各コントローラモジュール13は、ストレージ制御装置として機能する。ストレージシステム11は、運用に使用するコントローラモジュール(CM)13を2以上有することで、冗長性を確保する。
コントローラモジュール(CM)13は、アクセス指示情報として入出力(I/O)コマンドをドライブエンクロージャ(DE)18に送信し、ディスク装置19の記憶領域に対するデータの入出力指令を行う。また、入出力指令からアクセス監視時間が経過しても応答が得られないときは、コントローラモジュール(CM)13は、このI/O処理を中断するアボート指示コマンドをドライブエンクロージャ(DE)13に送信する。
コントローラモジュール13は、チャネルアダプタ(CA)14、中央演算装置(CPU:Central Processing Unit)15、記憶部16、デバイスアダプタ(DA)17を含む。チャネルアダプタ(CA)14、CPU15、記憶部16、デバイスアダプタ(DA)17は、内部バスを介して接続されている。
チャネルアダプタ(CA)14は、FCスイッチ22を介して、ホスト21と接続されている。CPU15は、コントローラモジュール13全体を制御する。
記憶部16は、例えば、キャッシュメモリ、ROM(Read Only Memory)、RAM(Random Access Memory)等の情報を記録するデバイスである。記憶部16には、コントローラモジュール13を動作させるために用いるデータ、及び本実施形態に係るプログラム及び本実施形態で用いるデータ等が格納される。
デバイスアダプタ(DA)17は、ドライブエンクロージャ(DE)18に接続される。CPU15は、デバイスアダプタ17を介してドライブエンクロージャ(DE)18との間でデータの送受信を行う。
ドライブエンクロージャ(DE)18は、1以上のドライブエンクロージャ(DE)より形成される。ドライブエンクロージャ(DE)18は、複数のディスク装置19を含み、冗長性を考慮したRAID構成を有する。なお、ディスク装置19は、ハードディスクドライブ(HDD)に限らず、例えばSSD(Solid State Drive)や、光磁気ディスク等であってもよい。また、本実施形態では、記憶装置の一例として、ディスク装置19を用いたが、これに限定されず、ランダムアクセス及びシーケンシャルアクセスのいずれのアクセス方法も可能な記憶装置であればよい。
図3は、コントローラモジュールからディスク装置へ送信されるコマンド情報のデータ構造を示す。アクセス要求情報31は、タグフィールド32、コマンドフィールド33を含む。タグフィールド32には、「Simple Queue Tag」、「Ordered Queue Tag」、「Head Of Queue Tag」等の、SCSI規格によるキュータグが設定される。コマンドフィールド33には、データの書き込み命令、データの読み込み命令についてのコマンドが設定される。
図4は、本実施形態におけるコントローラモジュールにおいて管理されるパラメータの一例を示す。コントローラモジュール13は、シーケンシャル特性発行回数i(i:整数)、規定値N(N:整数)、今回のレスポンスタイムT1(T1:実数)、前回のレスポンスタイムT2(T2:実数)、前回更新方向フラグD等のパラメータを記憶部16(RAM等)に格納している。
シーケンシャル特性発行回数iは、シーケンシャル特性を有するアクセス要求に対応してディスク装置19に発行したコマンドの回数を示す。iには初期値として「0」が格納されている。規定値N(N:整数)は、シーケンシャル特性発行回数iの閾値であり、予め設定されている。
今回計測したレスポンスタイムT1には、コマンドを発行してから、そのコマンドに対する応答情報を受信するまでの今回の計測時間が格納される。前回計測したレスポンスタイムT2には、コマンドを発行してから、そのコマンドに対する応答情報を受信するまでの前回の計測時間が格納される。
前回更新方向フラグDは、前回、規定値Nに所定値を加算したか、または、規定値Nから所定値を減算したかを判定する情報であり、例えば「+」または「−」、「1」または「0」等のフラグ情報が格納されている。なお、本実施形態では、所定値として「1」を用いているが、これに限定されない。
図5A及び図5Bは、本実施形態におけるコントローラモジュールによる処理フローを示す。以下で説明する処理は、コントローラモジュール13、具体的にはCPU15が実行する処理である。
まず、コントローラモジュール13は、FCスイッチ22及びチャネルアダプタ(CA)14を介して、ホスト21から、ディスク装置19に対するアクセス要求を取得する(S1)。
コントローラモジュール13は、そのアクセス要求がシーケンシャル特性か、ランダム 特性かを、アクセス領域のアドレスによって判定する(S2)。すなわち、コントローラモジュール13は、前回取得したアクセス要求と今回取得したアクセス要求について、アクセス先のアドレスが連続している場合には、シーケンシャル特性と判定し、不連続の場合にはランダム特性と判定する。
アクセス要求がシーケンシャル特性であると判定した場合(S2で「No」)、コントローラモジュール13は、シーケンシャル特性発行回数iに、「1」を加算する(S3)。それから、コントローラモジュール13は、ホスト21から取得したアクセス要求に基づいて、キュータグ「Simple Queue Tag」を付加したコマンドを生成する(S4)。
アクセス要求がランダム特性であると判定した場合(S2で「Yes」)、コントローラモジュール13は、シーケンシャル特性発行回数iが、規定値Nに達したか否かを判定する(S5)。
シーケンシャル特性発行回数iが、規定値Nに達していない場合(S5で「No」)、コントローラモジュール13は、ホスト21から取得したアクセス要求に基づいて、キュータグ「Simple Queue Tag」を付加したコマンドを生成する(S4)。
シーケンシャル特性発行回数iが、規定値Nに達していない場合(S5で「Yes」)、コントローラモジュール13は、シーケンシャル特性発行回数iを初期化して「0」にする(S6)。
シーケンシャル特性発行回数iの初期化後、コントローラモジュール13は、先行するコマンドのアクセス領域のアドレスが、発行しようとするランダム特性のアクセス要求のアクセス領域のアドレスの近傍であるか否かを判定する(S7)。ここで、アクセス領域のアドレスの近傍とは、例えば、先行するコマンドのアクセス領域のアドレスが、発行しようとするランダム特性のアクセス要求のアクセス領域のアドレスとがディスク上の同一トラックに存在する場合を示す。
先行するコマンドのアクセス領域のアドレスが、発行しようとするランダム特性のアクセス要求のアクセス領域のアドレスの近傍である場合(S7で「Yes」)、コントローラモジュール13は、次の処理を行う。すなわち、コントローラモジュール13は、ホスト21から取得したアクセス要求に基づいて、キュータグ「Simple Queue Tag」を付加したコマンドを生成する(S4)。
コントローラモジュール13は、ディスク装置19に対して、S4で付加したキュータグを含むコマンドを発行する(S10)。コントローラモジュール13は、ディスク装置19から、そのコマンドに対する応答情報を取得し(S11)、その応答情報をホスト21へ返信する。
先行するコマンドのアクセス領域のアドレスが、発行しようとするランダム特性のアクセス要求のアクセス領域のアドレスの近傍である場合(S7で「No」)、コントローラモジュール13は、タイマの監視を開始する(S8)。それから、コントローラモジュール13は、ホスト21から取得したアクセス要求に基づいて、キュータグ「Ordered Queue Tag」を付加したコマンドを生成する(S9)。
コントローラモジュール13は、ディスク装置19に対して、S9で付加したキュータグを含むコマンドを発行する(S12)。コントローラモジュール13は、ディスク装置19から、そのコマンドに対する応答情報を取得し(S13)、その応答情報をホスト21へ返信する。このとき、コントローラモジュール13は、S12においてコマンドを発行してから、S13においてコマンドに対する応答情報を受信するまでの時間(レスポンスタイム)T1を計測する。
コントローラモジュール13は、今回計測したレスポンスタイムT1が前回計測したレスポンスタイムT2より短いか否かを判定する(S14)。
今回計測したレスポンスタイムT1が前回計測したレスポンスタイムT2より短い場合(S14で「Yes」)、コントローラモジュール13は、前回更新方向フラグDに基づいて、前回更新した方向に規定値Nを更新する(S15)。前回規定値Nをプラス側に更新した場合(前回更新方向フラグDに「+」が設定されている場合)、コントローラモジュール13は、さらに、規定値Nをプラス側に更新する。前回、規定値Nをマイナス側に更新した場合(前回更新方向フラグDに「−」が設定されている場合)、コントローラモジュール13は、さらに、規定値Nをマイナス側に更新する。例えば、前回、規定値Nに「1」を加算している場合(前回更新方向フラグDに「+」が設定されている場合)には、今回、コントローラモジュール13は、さらに規定値Nに「1」を加算する。また、前回、規定値Nから「1」を減算している場合には(前回更新方向フラグDに「−」が設定されている場合)、今回、コントローラモジュール13は、さらに規定値Nから「1」を減算する。
今回計測したレスポンスタイムT1が前回計測したレスポンスタイムT2と同じまたはより長い場合(S14で「No」)、コントローラモジュール13は、前回更新した方向に逆方向に規定値Nを更新する(S16)。すなわち、前回、規定値Nをプラス側に更新した場合(前回更新方向フラグDに「+」が設定されている場合)、コントローラモジュール13は、規定値Nをマイナス側に更新する。前回、規定値Nをマイナス側に更新した場合(前回更新方向フラグDに「−」が設定されている場合)、コントローラモジュール13は、規定値Nをプラス側に更新する。例えば、前回、規定値Nに「1」を加算している場合(前回更新方向フラグDに「+」が設定されている場合)には、今回、コントローラモジュール13は、規定値Nから「1」を減算する。また、前回、規定値Nから「1」を減算している場合(前回更新方向フラグDに「−」が設定されている場合)には、今回、コントローラモジュール13は、規定値Nに「1」を加算する。
S15またはS16の処理後、コントローラモジュール13は、規定値Nを加減に応じて、前回更新方向フラグDを更新する(S16)。すなわち、規定値Nに「1」を加算した場合、コントローラモジュール13は、前回更新方向フラグDに「+」を設定する。規定値Nから「1」を減算した場合、コントローラモジュール13は、前回更新方向フラグDに「−」を設定する。
さらに、コントローラモジュール13は、前回計測したレスポンスタイムT2を、今回計測したレスポンスタイムT1の値で更新する(S17)。
ホスト21からのアクセス要求が発生する度に、コントローラモジュール13は、S1〜S18の処理を行う。
このように、本実施形態では、コントローラモジュール13は、ディスク装置19へのアクセス要求がシーケンシャル特性か、ランダム特性かを判定する。コントローラモジュール13は、シーケンシャル特性のコマンド発行数n(=規定値N)に対してランダム特性1の割合でキュータグに「Ordered Queue Tag」を指定し、ディスク装置19にコマンドを発行する。
キュータグに「Ordered Queue Tag」が指定されている場合、コントローラモジュール13は、発行したコマンドに対するディスク装置19からの応答を受け取るまでのレスポンスタイムをチェックする。ランダム特性の場合のレスポンスタイムが現在保持しているレスポンスタイムよりも改善された場合、コントローラモジュール13は、コマンド発行数nの値を、前回変更した方向に変更する。ランダム特性の場合のレスポンスタイムが現在保持しているレスポンスタイムよりも悪化した場合、コントローラモジュール13は、コマンド発行数nの値を、前回変更した方向とは逆の方向に変更する。コントローラモジュール13は、「シーケンシャル特性n:ランダム特性1」のコマンド発行数nを、レスポンスタイムが最適になるように調整する。
これにより、ディスク装置に対するシーケンシャル特性とランダム特性のアクセスが混在した状況で顕著化するランダム特性のアクセスのレスポンスの遅延を防止することができる。
ただし、先行するコマンド(シーケンシャル/ランダム特性に関わらない)のアクセス領域のアドレスが、発行しようとするランダム特性のアクセス要求のアクセス領域のアドレスの近傍である場合は、コントローラモジュール13は、次の処理を行う。すなわち、コントローラモジュール13は、例外として、Queue Tagを「Simple Queue Tag」に設定してコマンドを発行する。
これにより、ディスク装置へのアクセス先のアドレスの近傍か否かを判断する事で ディスク装置19が有するアクセスの最適化機能も十分に活用し、かつ、レスポンス遅延の発生を予防することができる。これにより、ディスク装置から最適なレスポンスを保証することができる。
なお、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
1 ストレージシステム
2 ストレージ制御装置
3 取得部
4 比較部
5 生成部
6 発行部
7 計測部
8 調整部
9 記憶装置
11 ストレージシステム
12 コントローラエンクロージャ(CE)
13 コントローラモジュール(CM)
14 チャネルアダプタ(CA)
15 CPU
16 記憶部
17 デバイスアダプタ(DA)
18 ドライブエンクロージャ(DE)18
19 ディスク装置
21 ホスト
22 FCスイッチ

Claims (9)

  1. ランダムアクセスにより情報を記憶する記憶装置へアクセスすることを指示するランダム特性を有するアクセス要求、またはシーケンシャルアクセスにより該記憶装置にアクセスすることを指示するシーケンシャル特性を有するアクセス要求を取得する取得部と、
    前記ランダム特性を有する前記アクセス要求に対応する前記記憶装置へのコマンドの発行数と、前記シーケンシャル特性を有する前記アクセス要求に対応する前記記憶装置へのコマンドの発行数と、の比率と閾値とを比較する比較部と、
    前記発行数の比率と前記閾値とを比較した結果に応じて、前記記憶装置に対して発行されたコマンドの実行順を前記記憶装置に決定させることを指示する第1の識別情報を付与したコマンド、または、前記記憶装置が受け取ったコマンド順にコマンドを実行することを指示する第2の識別情報を付与したコマンドを生成する生成部と、
    前記記憶装置に対して、生成した前記コマンドを発行する発行部と、
    取得した前記アクセス要求がランダム特性を有する場合、前記コマンドを発行してから前記記憶装置からの応答があるまでの時間を計測する計測部と、
    前記閾値に加算あるいは減算を行う調整をするとともに、前記計測による今回の計測時間と前回の計測時間とを比較した結果に応じて、前記閾値を更に調整する調整部と、
    を備えることを特徴とするストレージ制御装置。
  2. 前記今回の計測時間が前記前回の計測時間より短い場合、前記調整部は、前回、前記閾値から所定値を減算している場合には該閾値から所定値を減算し、前回、前記閾値に所定値を加算している場合には、該閾値に所定値を加算する
    ことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記今回の計測時間が前記前回の計測時間より長い場合、前記調整部は、前回、前記閾値から所定値を減算している場合には該閾値に所定値を加算し、前回、前記閾値に所定値を加算している場合には、該閾値から所定値を減算する
    ことを特徴とする請求項1または2に記載のストレージ制御装置。
  4. 前記生成部は、先に発行したコマンドのアクセス先のアドレスが、発行しようとするランダム特性を有するアクセス要求のアクセス先のアドレスと同一トラックにある場合、前記第1の識別情報を付与したコマンドを生成する
    ことを特徴とする請求項1〜3のうちいずれか1項に記載のストレージ制御装置。
  5. コンピュータに、
    ランダムアクセスにより情報を記憶する記憶装置へアクセスすることを指示するランダム特性を有するアクセス要求、またはシーケンシャルアクセスにより該記憶装置にアクセスすることを指示するシーケンシャル特性を有するアクセス要求を取得し、
    前記ランダム特性を有する前記アクセス要求に対応する前記記憶装置へのコマンドの発行数と、前記シーケンシャル特性を有する前記アクセス要求に対応する前記記憶装置へのコマンドの発行数と、の比率と閾値とを比較し、
    前記発行数の比率と前記閾値とを比較した結果に応じて、前記記憶装置に対して発行されたコマンドの実行順を前記記憶装置に決定させることを指示する第1の識別情報を付与したコマンド、または、前記記憶装置が受け取ったコマンド順にコマンドを実行することを指示する第2の識別情報を付与したコマンドを生成し、
    前記記憶装置に対して、生成した前記コマンドを発行し、
    取得した前記アクセス要求がランダム特性を有する場合、前記コマンドを発行してから前記記憶装置からの応答があるまでの時間を計測し、
    前記閾値に加算あるいは減算を行う調整をするとともに、前記計測による今回の計測時間と前回の計測時間とを比較した結果に応じて、前記閾値を更に調整する、
    処理を実行させることを特徴とするストレージ制御プログラム。
  6. 前記今回の計測時間が前記前回の計測時間より短い場合、前記コンピュータに、前回、前記閾値から所定値を減算している場合には該閾値から所定値を減算し、前回、前記閾値に所定値を加算している場合には、該閾値に所定値を加算する
    ことを実行させること特徴とする請求項5に記載のストレージ制御プログラム。
  7. 前記今回の計測時間が前記前回の計測時間より長い場合、前記コンピュータに、前回、前記閾値から所定値を減算している場合には該閾値に所定値を加算し、前回、前記閾値に所定値を加算している場合には、該閾値から所定値を減算する
    ことを実行させること特徴とする請求項5または6に記載のストレージ制御プログラム。
  8. 先に発行したコマンドのアクセス先のアドレスが、発行しようとするランダム特性を有するアクセス要求のアクセス先のアドレスと同一トラックにある場合、前記コンピュータに、前記第1の識別情報を付与したコマンドを生成する
    ことを実行させること特徴とする請求項5〜7のうちいずれか1項に記載のストレージ制御プログラム。
  9. コンピュータにより実行されるストレージの制御を行うストレージ制御方法であって、
    前記コンピュータは、
    ランダムアクセスにより情報を記憶する記憶装置へアクセスすることを指示するランダム特性を有するアクセス要求、またはシーケンシャルアクセスにより該記憶装置にアクセスすることを指示するシーケンシャル特性を有するアクセス要求を取得し、
    前記ランダム特性を有する前記アクセス要求に対応する前記記憶装置へのコマンドの発行数と、前記シーケンシャル特性を有する前記アクセス要求に対応する前記記憶装置へのコマンドの発行数と、の比率と閾値とを比較し、
    前記発行数の比率と前記閾値とを比較した結果に応じて、前記記憶装置に対して発行されたコマンドの実行順を前記記憶装置に決定させることを指示する第1の識別情報を付与したコマンド、または、前記記憶装置が受け取ったコマンド順にコマンドを実行することを指示する第2の識別情報を付与したコマンドを生成し、
    前記記憶装置に対して、生成した前記コマンドを発行し、
    取得した前記アクセス要求がランダム特性を有する場合、前記コマンドを発行してから前記記憶装置からの応答があるまでの時間を計測し、
    前記閾値に加算あるいは減算を行う調整をするとともに、前記計測による今回の計測時間と前回の計測時間とを比較した結果に応じて、前記閾値を更に調整する、
    処理を実行することを特徴とするストレージ制御方法。
JP2012147876A 2012-06-29 2012-06-29 ストレージ制御装置、該プログラム及び該方法 Expired - Fee Related JP5949224B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012147876A JP5949224B2 (ja) 2012-06-29 2012-06-29 ストレージ制御装置、該プログラム及び該方法
US13/913,777 US9069721B2 (en) 2012-06-29 2013-06-10 Storage control device, computer-readable recording medium, and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012147876A JP5949224B2 (ja) 2012-06-29 2012-06-29 ストレージ制御装置、該プログラム及び該方法

Publications (2)

Publication Number Publication Date
JP2014010709A JP2014010709A (ja) 2014-01-20
JP5949224B2 true JP5949224B2 (ja) 2016-07-06

Family

ID=49779467

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012147876A Expired - Fee Related JP5949224B2 (ja) 2012-06-29 2012-06-29 ストレージ制御装置、該プログラム及び該方法

Country Status (2)

Country Link
US (1) US9069721B2 (ja)
JP (1) JP5949224B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150001146A (ko) * 2013-06-26 2015-01-06 삼성전자주식회사 스토리지 시스템 및 그의 동작 방법
US9870156B2 (en) * 2014-02-14 2018-01-16 Toshiba Memory Corporation Memory system and method of controlling memory system
JP6244972B2 (ja) * 2014-02-21 2017-12-13 富士通株式会社 ストレージ制御装置、ストレージ装置及びストレージ制御プログラム
KR20220060790A (ko) * 2020-11-05 2022-05-12 에스케이하이닉스 주식회사 메모리 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09258907A (ja) 1996-03-25 1997-10-03 Mitsubishi Electric Corp 複数の記憶ディスク部を有した高可用性の外部記憶装置
JPH10240449A (ja) * 1997-02-28 1998-09-11 Matsushita Electric Ind Co Ltd 記録再生装置及び記録再生装置に対する入出力制御方法
JP3282599B2 (ja) 1998-12-17 2002-05-13 日本電気株式会社 コマンドキュー制御装置
JP3541744B2 (ja) * 1999-08-30 2004-07-14 株式会社日立製作所 ストレージサブシステム及びその制御方法
JP4091225B2 (ja) * 1999-11-19 2008-05-28 富士通株式会社 ディスク・タイムシェアリング装置及び方法
JP3793682B2 (ja) 2000-03-07 2006-07-05 株式会社日立グローバルストレージテクノロジーズ コマンドキューイングの機能を持つ記憶装置
US20070022142A1 (en) * 2005-07-20 2007-01-25 International Business Machines Corporation System and method to generate domain knowledge for automated system management by combining designer specifications with data mining activity
JP2008250961A (ja) * 2007-03-30 2008-10-16 Nec Corp 記憶媒体の制御装置、データ記憶装置、データ記憶システム、方法、及び制御プログラム

Also Published As

Publication number Publication date
US9069721B2 (en) 2015-06-30
US20140006744A1 (en) 2014-01-02
JP2014010709A (ja) 2014-01-20

Similar Documents

Publication Publication Date Title
US9501406B2 (en) Storage control apparatus and storage control method
US10387078B1 (en) Adaptive control of host queue depth for command submission throttling using data storage controller
US9406368B2 (en) Dynamic temperature adjustments in spin transfer torque magnetoresistive random-access memory (STT-MRAM)
JP5958020B2 (ja) ストレージシステム
US9846541B2 (en) Memory system for controlling perforamce by adjusting amount of parallel operations
EP2733618B1 (en) Hypervisor I/O staging on external cache devices
US8806070B2 (en) Storage device, and storage device control method
US20190155532A1 (en) Storage system and storage control apparatus
JP5949224B2 (ja) ストレージ制御装置、該プログラム及び該方法
JP6464777B2 (ja) 情報処理装置及びプログラム
JP5987498B2 (ja) ストレージ仮想化装置、ストレージ仮想化方法及びストレージ仮想化プログラム
US10310923B1 (en) Probabilistic aging command sorting
JP2009015844A (ja) 要求優先順位シーク・マネージャ
US9465745B2 (en) Managing access commands by multiple level caching
US10635154B2 (en) Intelligent SAS phy power management
US20160191322A1 (en) Storage apparatus, method of controlling storage apparatus, and computer-readable recording medium having stored therein storage apparatus control program
US9965206B2 (en) Enhanced queue management for power control of data storage device
US10346070B2 (en) Storage control apparatus and storage control method
US20160188246A1 (en) Storage apparatus, and computer-readable recording medium having stored therein storage apparatus control program
JP6051617B2 (ja) 制御装置、ストレージ装置、制御方法及び制御プログラム
KR101725691B1 (ko) 발열을 고려한 비휘발성 데이터 저장 장치 및 액세스 제어 방법
US10310873B1 (en) Probabilistic aging command sorting
US20120215966A1 (en) Disk array unit and control method thereof
US20150286411A1 (en) Memory controller, semiconductor memory device, and control method of memory controller
JP2020038475A (ja) ストレージ制御装置およびストレージ制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160412

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: 20160510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160523

R150 Certificate of patent or registration of utility model

Ref document number: 5949224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees