JP2011054042A - ストレージ装置と方法及びプログラム - Google Patents
ストレージ装置と方法及びプログラム Download PDFInfo
- Publication number
- JP2011054042A JP2011054042A JP2009203920A JP2009203920A JP2011054042A JP 2011054042 A JP2011054042 A JP 2011054042A JP 2009203920 A JP2009203920 A JP 2009203920A JP 2009203920 A JP2009203920 A JP 2009203920A JP 2011054042 A JP2011054042 A JP 2011054042A
- Authority
- JP
- Japan
- Prior art keywords
- command
- storage medium
- time
- response time
- access request
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】 ランダムアクセス性能向上と、アクセスに対する応答時間の保証を実現する。
【解決手段】複数の記憶媒体がデータの冗長性を持つストレージにおいて、コマンド列のスケジューリングに利用された各記憶媒体に対するコマンド処理の完了予測時間を用いて保証すべき応答時間を満たすかを確認し、応答時間の保証条件を満たさないコマンドが存在する場合、記憶媒体間のデータの冗長性を利用してスケジューリング結果に対して、応答時間保証条件を満たさないコマンド、コマンドと同じ記憶媒体に対して発行予定の別のコマンドについて発行先の記憶媒体を変更、又は記憶媒体への発行順序を変更する。スケジューリングの変更による、各コマンドの完了時間はスケジューラを用いて再計算し、変更したスケジューリング結果が、全てのコマンドについて応答時間保証条件を満たすか確認する。
【選択図】図2
【解決手段】複数の記憶媒体がデータの冗長性を持つストレージにおいて、コマンド列のスケジューリングに利用された各記憶媒体に対するコマンド処理の完了予測時間を用いて保証すべき応答時間を満たすかを確認し、応答時間の保証条件を満たさないコマンドが存在する場合、記憶媒体間のデータの冗長性を利用してスケジューリング結果に対して、応答時間保証条件を満たさないコマンド、コマンドと同じ記憶媒体に対して発行予定の別のコマンドについて発行先の記憶媒体を変更、又は記憶媒体への発行順序を変更する。スケジューリングの変更による、各コマンドの完了時間はスケジューラを用いて再計算し、変更したスケジューリング結果が、全てのコマンドについて応答時間保証条件を満たすか確認する。
【選択図】図2
Description
本発明は、ストレージ装置と方法及びプログラムに関し、特に、複数の記憶媒体を有し、データに冗長性を持つストレージ装置に適用して好適な装置と、方法、プログラムに関する。
近時、情報通信技術の進化とその適用分野の拡大に伴い、情報処理システムが扱うデータ量、及びその重要性が増加している。そのため、これらのデータを格納するためのストレージに対してデータを失わないための信頼性が求められている。また、大容量のデータを短時間で処理するために、アクセスの高速性が求められている。
これらの要求に対して記憶媒体を持つストレージの信頼性、性能を同時に向上させるための手法として、非特許文献1に挙げたRAID(Redundunt Array of Inexepensive(Independent) Disks)が用いられる。RAIDは、ストレージが持つ複数の記憶媒体間で冗長性を持たせることによって信頼性とアクセス性能を向上させる技術である。RAIDの種類は、記憶媒体間の冗長性の取り方によって複数存在する。例えば記憶媒体が同一データを保持することで記憶媒体に関する耐障害性を実現するRAID1が挙げられる。
また、RAIDを構成する複数の記憶媒体のうち1台が、他の全ての記憶媒体上のデータのパリティを格納するRAID5や、RAIDを構成する複数の記憶媒体のうち2台が他の全ての記憶媒体上のデータのパリティを格納するRAID6などが挙げられる。特にRAID5、RAID6等において、格納するデータを「Chunk(チャンク)」と呼ばれる一定サイズのデータに分割し、連続した複数のチャンクがRAIDを構成する各記憶媒体(ディスク)に分散して配置される。この配置により、連続したデータを読み書きする際に、同時に複数の記憶媒体(ディスク)に対して読み書きが行われる。よって、RAID5、RAID6等では、単位時間当たり、RAIDを構成する記憶媒体の数に比例した量のデータを読み書きできる。このため、データアクセス性能が向上する。
また、これらの複数の記憶媒体間のデータの冗長性の確保は、連続したデータの読み書きに対するアクセス性能の向上だけではなく、RAIDを構成する記憶媒体内に非連続に分散して配置されたデータに対するランダムアクセスの高速化に役立つ。
例えば特許文献1のスケジューリング方式や、非特許文献2に開示された「Shortest Queue、Minimum Seek」といったスケジューリングポリシーでは、RAIDを構成する記憶媒体が、同一データ又はパリティを、複数の記憶媒体に持つことを利用して、格納されたデータに対するRead(読み出し)アクセスを処理するための記憶媒体を選択し、RAIDを構成する各記憶媒体のアクセス処理の進捗に応じた負荷の分散と、それに伴うランダムアクセス性能の向上が実現される。
また、記憶媒体がハードディスク(HDD)等の場合、HDDのアクセスヘッドの位置が近くなるようにReadアクセスを行うことで、HDDで発生するシーク時間が削減される。この結果、ランダムアクセス性能が向上するという性質を持つ。この性質は、RAIDを構成するHDDに対するReadアクセスの配分に影響するだけではなく、RAIDを構成しない単体のHDDに対するアクセス時にも、そのアクセス性能を左右する。
HDD等のディスクで発生するシーク時間を削減する技術は、例えば非特許文献2に記載され、一般的に、「エレベータアルゴリズム」又は「SCAN」と呼ばれるスケジューリングアルゴリズムが挙げられる。これらのスケジューリングアルゴリズムでは、複数のアクセス要求を処理する際に、HDDのヘッドが1往復で処理できるように、ディスクアクセスの順序を整列する。
一方で、昨今の情報処理システムは、その適用分野が拡大するにしたがってシステムの信頼性、耐障害性、即時性等が特に重視される。このため、システムの応答時間の保証が求められる機会が増加している。これらの情報処理システムでは、データを格納するためのストレージにおいても、一定時間内のアクセスの完了と応答が求められる。
その結果、ストレージを構成する記憶媒体又は複数の記憶媒体からなるRAIDへの各アクセス要求に関して、一定時間内でのアクセス処理の完了と、アクセス元への応答を保証する必要が生じる。
記憶装置又は複数の記憶装置から構成される記憶装置(ストレージ)への応答時間を保証するための技術として、最も単純なものは、保証すべき応答時間が迫ったアクセス要求に対する処理の優先度を高める手法がある。
単体又は複数の記憶媒体に対するアクセスコマンドが複数の処理(アクセス)を待つ場合、先に発行されるアクセスコマンドは、処理が完了するまでの時間が他の後続のアクセスコマンドよりも短くなることは自明である。
また、特許文献2のように、ストレージを構成する記憶媒体であるディスクのアクセス負荷を予測することで、各ディスクに対するアクセス量を制御し、ストレージへのアクセス要求がタイムアウトすることを防止する方法が知られている。
Patterson et al., "A case for Redundant Arrays of Inexpensive Disks(RAID)", Proceedings of the 1988 ACM SIGMOD international conference on Management of data, pp.109-116
S.Chen, and D.Towsley, "A Performance Evaluation of RAID Architectures", IEEE Trans. on Computers, Vol.45, Issue 10, pp.1116-1130, 1996
Silberschatz et al., "Operating System Concepts Fifth Edition", Addison-Wesley, pp.435-437
上記特許文献1、2、非特許文献1、2、3の各開示は引用によって本明細書に組み込まれる。以下の分析は本発明によって与えられる。
データに冗長性を持つRAIDを構成する各記憶媒体に対して、ランダムアクセス性能を最大化する場合、各記憶媒体に対する負荷が均等になるように、Readアクセスの配分が必要である。同時に、各記憶媒体におけるアクセス時間の最小化が必要である。特に、記憶媒体がHDD等である場合には、同一のアクセスを行う場合であっても、アクセス処理を行う順序によって、記憶媒体がアクセスに要する時間が変化する。
つまり、ランダムアクセス性能を最大化する場合、記憶媒体のアクセス時間が短くなるように、各記憶媒体に対して複数のアクセスを行うコマンドに対して、処理順序を変更するための整列処理が行われる。
しかしながら、記憶媒体に対するアクセス処理順序の変更を伴う整列処理は、特定のアクセス処理に関する処理完了までの待ち時間を増大させる可能性を持つ。一例として、アクセスコマンドが、先行して処理されるアクセスコマンドの完了まで待機している状態を想定する。また、記憶媒体が次に処理するアクセスコマンドを複数のアクセスコマンドから選択する場合、待機状態のアクセスコマンドの中から、処理時間が最も短くなるコマンドを選ぶものとする。
記憶媒体へのアクセスを待機中のアクセスコマンドが、上記コマンドのみである場合には、この待機中のコマンドは、先行して処理されるアクセスコマンドの処理の完了後に処理が行われる。
しかし、先行するアクセスコマンドの完了前に、別の新しいアクセスコマンドが同一記憶媒体に対して待機状態となった場合、待機状態の2つのアクセスコマンド間で、次に処理すべきコマンドの選択が行われる。待機状態のアクセスコマンド間で、処理時間が短いアクセスコマンドが選択され続けた場合、処理時間が長いアクセスコマンドが、待機状態のまま残り続ける(後から来たアクセスコマンドに追い越され続ける)という現象が発生し得る。この場合、アクセス要求に対する応答時間の保証が困難となる。
一方で、単体又は複数の記憶媒体から構成されるストレージに対するアクセスに関してその応答時間を保証する場合、
(A)保証する応答時間の期限までの残り時間が少なくなったアクセスを優先的に実行するか、あるいは、
(B)ストレージを構成する各記憶媒体のアクセス負荷を予測して、応答時間の保証が困難になった場合に、アクセス要求の受理を停止する(例えば特許文献2等参照)、
という方法が用いられる。
(A)保証する応答時間の期限までの残り時間が少なくなったアクセスを優先的に実行するか、あるいは、
(B)ストレージを構成する各記憶媒体のアクセス負荷を予測して、応答時間の保証が困難になった場合に、アクセス要求の受理を停止する(例えば特許文献2等参照)、
という方法が用いられる。
しかしながら、(A)の方法は、RAID構成された複数の記憶媒体に対して、効率的に短時間でアクセスを行うための手順を無視して、アクセス順序が変更される。このため、ストレージのランダムアクセス性能を向上させるためのスケジューリング処理を同時に行うことは難しい。
また、(B)の方法は、記憶媒体の負荷を予測しているが、特に、記憶媒体がHDD等の場合には、記憶媒体の負荷は、アクセスコマンドの数だけではなく、アクセス先のアドレス又はアクセスコマンド列の処理順序によって変化する。つまり、ランダムアクセス性能の向上を目的として、コマンド列のスケジューリング処理が行われた場合、各記憶媒体の負荷の予測が困難になる。
このため、(B)の方法による応答時間の保証と、ランダムアクセス性能の向上を目的としたスケジューリング処理を、同時に行うことは難しい。
したがって、本発明の目的は、応答時間を保証するとともに、ランダムアクセス性能を向上させるスケジューリング処理を可能とする装置、方法、プログラムを提供することにある。
本願で開示される発明は、前記課題を解決するため、概略以下の構成とされる。
本発明によれば、複数の互いに格納データに冗長性を持つ記憶媒体を有し、各記憶媒体に発行予定のコマンドの完了予測時間を参照し、各コマンドが対応するアクセス要求に対して、予め定められた応答時間に間に合うように、
前記応答時間に間に合わないコマンド、又は、
前記応答時間に間に合わないコマンドと共に記憶媒体に対して発行待ちの状態であるコマンドについて、
前記記憶媒体へのコマンドの発行順序、及び/又は、コマンドの発行先の記憶媒体を変更する手段と、
前記記憶媒体へ発行予定のコマンドのうち発行順序及び/又は発行先の記憶媒体の前記変更により、完了時間が変化するコマンドについて完了予測時間を再計算する手段と、
を備えたストレージ装置が提供される。
本発明によれば、複数の互いに格納データに冗長性を持つ記憶媒体を有し、各記憶媒体に発行予定のコマンドの完了予測時間を参照し、各コマンドが対応するアクセス要求に対して、予め定められた応答時間に間に合うように、
前記応答時間に間に合わないコマンド、又は、
前記応答時間に間に合わないコマンドと共に記憶媒体に対して発行待ちの状態であるコマンドについて、
前記記憶媒体へのコマンドの発行順序、及び/又は、コマンドの発行先の記憶媒体を変更する手段と、
前記記憶媒体へ発行予定のコマンドのうち発行順序及び/又は発行先の記憶媒体の前記変更により、完了時間が変化するコマンドについて完了予測時間を再計算する手段と、
を備えたストレージ装置が提供される。
本発明によれば、複数の互いに格納データに冗長性を持つ記憶媒体を備えたストレージ装置が、
各記憶媒体に発行予定のコマンドに対するスケジューリングに用いた各コマンドの完了予測時間を参照し、
各コマンドが対応するアクセス要求に対して、予め定められた応答時間に間に合うように、
前記応答時間に間に合わないコマンド、又は、
前記応答時間に間に合わないコマンドと共に記憶媒体に対して発行待ちの状態であるコマンドについて、
前記記憶媒体へのコマンドの発行順序、及び/又は、コマンドの発行先の記憶媒体を変更し、
前記記憶媒体へ発行予定のコマンドのうち発行順序及び/又は発行先の記憶媒体の前記変更により、完了時間が変化するコマンドについて完了予測時間を再計算する、ストレージ装置のアクセス制御方法が提供される。
各記憶媒体に発行予定のコマンドに対するスケジューリングに用いた各コマンドの完了予測時間を参照し、
各コマンドが対応するアクセス要求に対して、予め定められた応答時間に間に合うように、
前記応答時間に間に合わないコマンド、又は、
前記応答時間に間に合わないコマンドと共に記憶媒体に対して発行待ちの状態であるコマンドについて、
前記記憶媒体へのコマンドの発行順序、及び/又は、コマンドの発行先の記憶媒体を変更し、
前記記憶媒体へ発行予定のコマンドのうち発行順序及び/又は発行先の記憶媒体の前記変更により、完了時間が変化するコマンドについて完了予測時間を再計算する、ストレージ装置のアクセス制御方法が提供される。
本発明によれば、複数の互いに格納データに冗長性を持つ記憶媒体を備えたストレージ装置が、
各記憶媒体に発行予定のコマンドに対するスケジューリングに用いた各コマンドの完了予測時間を参照し、
各コマンドが対応するアクセス要求に対して、予め定められた応答時間に間に合うように、
前記応答時間に間に合わないコマンド、又は、
前記応答時間に間に合わないコマンドと共に記憶媒体に対して発行待ちの状態であるコマンドについて、
前記記憶媒体へのコマンドの発行順序、及び/又は、コマンドの発行先の記憶媒体を変更し、
前記記憶媒体へ発行予定のコマンドのうち発行順序及び/又は発行先の記憶媒体の前記変更により、完了時間が変化するコマンドについて完了予測時間を再計算する、処理を実行させるプログラムが提供される。
各記憶媒体に発行予定のコマンドに対するスケジューリングに用いた各コマンドの完了予測時間を参照し、
各コマンドが対応するアクセス要求に対して、予め定められた応答時間に間に合うように、
前記応答時間に間に合わないコマンド、又は、
前記応答時間に間に合わないコマンドと共に記憶媒体に対して発行待ちの状態であるコマンドについて、
前記記憶媒体へのコマンドの発行順序、及び/又は、コマンドの発行先の記憶媒体を変更し、
前記記憶媒体へ発行予定のコマンドのうち発行順序及び/又は発行先の記憶媒体の前記変更により、完了時間が変化するコマンドについて完了予測時間を再計算する、処理を実行させるプログラムが提供される。
本発明によれば、応答時間を保証するとともに、ランダムアクセス性能を向上させるスケジューリング処理を可能とすることができる。
上記した本発明についてさらに詳細に説明すべく添付図面を参照して以下に説明する。冗長構成の複数の記憶媒体によるストレージにおいて、例えば特許文献1のような技術では、アクセスコマンド列のスケジューリング処理において、各記憶媒体に対するコマンド列の処理の完了時間を予測して利用する。このようなストレージでは、スケジューラはアクセスコマンドの処理完了時間の予測機能を具備している。また、スケジューラは、アクセス間の依存関係に問題を発生させないようにするために、アクセスコマンド間の依存関係の確認機能を具備している。
本発明においては、記憶媒体に対するコマンド列の処理完了時間の予測を行うスケジューラは、スケジューラ外部の応答時間制御部で指定されたコマンド列に対して、処理完了時間の予測を行い、その結果を応答時間制御部に返す。
本発明においては、スケジューラは、スケジューラ外部の応答時間制御部で指定されたコマンド列に対して、コマンド間の依存関係の問題発生の有無を結果として応答時間制御部に返す。スケジューラの外部の応答時間制御部において、記憶媒体に対するアクセスコマンドが保証すべき応答時間に間に合うか否かの判定を行う。コマンド間の依存関係とは、Readコマンドで読み出したデータに対して演算を施した上でWriteコマンドで更新するような場合、あるいは、Writeコマンドで更新したデータをReadコマンドで読み出すような場合、この2つのコマンド間でコマンド順序の変更は行えない。
本発明においては、応答時間制御部(図2の24)は、保証すべき応答時間に間に合わないと判定した場合に、スケジューラに対して、処理順序の変更、Readコマンドについては、発行先記憶媒体の変更を併せて行ったアクセスコマンド列を生成して、アクセスコマンド列の実行可否を、スケジューラ(図3の224)に対して確認を行う。さらに、
アクセスに対して保証すべき応答時間の情報を格納するための応答時間保証情報格納部(図2の25)と、スケジューラと、応答時間制御機部(図2の24)とがスケジューリング結果であるコマンドキュー(図3の223)に同時にアクセスすることを防ぐためのコマンドキューのロック機能(図3の225)と、応答時間制御部での処理の結果、アクセスに対する応答時間の保証が困難であることが判明した場合に、外部からのアクセス要求の受理を停止するための新規アクセス停止機能とを有する。
アクセスに対して保証すべき応答時間の情報を格納するための応答時間保証情報格納部(図2の25)と、スケジューラと、応答時間制御機部(図2の24)とがスケジューリング結果であるコマンドキュー(図3の223)に同時にアクセスすることを防ぐためのコマンドキューのロック機能(図3の225)と、応答時間制御部での処理の結果、アクセスに対する応答時間の保証が困難であることが判明した場合に、外部からのアクセス要求の受理を停止するための新規アクセス停止機能とを有する。
本発明においては、データを冗長に保持する複数記憶媒体からなるストレージにおいて、ランダムアクセス性能の向上を図りつつ、ホストからのアクセスに対して、応答時間に関する保証を同時に実現できる。
具体的には、ストレージ内部のスケジューラにおいて、各記憶媒体に対するアクセスコマンドについて、スケジューラがアクセスコマンドの処理が完了する時間を最小化し、ランダムアクセス性能が向上するように、各記憶媒体の負荷の均一化を目的としたReadアクセスコマンドの配分、各記憶媒体に対するアクセスコマンド列についての処理完了時間を最小化するための整列、から構成されるスケジューリングを行う。
スケジューラは、記憶媒体の負荷を評価するために各アクセスコマンドの処理の完了時間を予測する。応答時間制御部は、スケジューリングの結果を、アクセスコマンド処理の完了時間の予測結果と共に参照することで、ストレージ外部からのアクセス要求を処理するための各アクセスコマンドについて、アクセスコマンドの生成から処理の完了までの時間が、ストレージ外部(ホスト)からのアクセス要求に対して保証すべき応答時間を満たすために十分であるか確認する。
応答時間制御部は、アクセスコマンドの完了までの時間から、アクセス要求に対する応答保証が困難であることを確認すると、スケジューラによるスケジューリング結果について、各アクセス要求とそれに伴う記憶媒体に対するアクセスコマンドについて、保証すべき応答時間に間に合うように修正する。
このとき、スケジューリング結果の修正は、スケジューラが本来目的としている、各記憶媒体に対するアクセスコマンドについての処理の完了時間の増大を最小限に抑え、ランダムアクセス性能の低下が最小限となるように、ランダムアクセス性能の低下幅の低いスケジューリング結果の変更を優先的に試みる。
さらに応答時間制御部は、修正したスケジューリング結果を、スケジューラ機能に送信し、保証すべき応答時間に間に合うか確認を行うために必要となる各アクセスコマンドの完了予測時間の算出と、アクセスコマンド間の依存関係に関する矛盾発生の確認を求める。これによって、修正したスケジューリング結果が、逐次、応答時間保証が可能であるかどうかを確認し、応答時間保証処理によるランダムアクセス性能の低下幅を最小限に抑える。
次に、本発明を実施形態のシステム構成について図面を参照して説明する。
はじめに本発明を適用したシステム構成の一例を説明する。図1は、本発明の一実施形態の構成を示す図である。図1を参照すると、本発明の実施形態において、システム全体の構成は、データにアクセスする1台以上のホスト1、複数の記憶媒体から構成されるストレージ2、ホスト1、ストレージ2を接続するネットワーク3を含む。
ネットワーク3は、ストレージ2に対して複数のホスト1が接続可能な形態のみならず、ホスト1とストレージ2が直接接続される形態であってもよい。ホスト1は、PC等任意のノード(端末)を用いることができる。
次に、本発明の一実施形態のストレージについて説明する。図2は、図1のストレージ2の構成の一例を示す図である。図2を参照すると、ストレージ2は、アレイ21と、アクセス要求処理部22と、アレイ構成情報格納部23と、応答時間制御部24と、応答時間保証情報格納部25と、時刻取得部26と、を備えている。
アレイ21は、複数の記憶媒体211から構成される。アレイ21内の複数の記憶媒体211は互いに格納するデータに冗長性を持つ。
またアレイ21は、ストレージ2に格納されるデータ全てを保持し、アクセス要求処理部22によって、アレイ21を構成する各記憶媒体211に対して、Read(読み出し)アクセス、Write(書き込み)アクセスが行われる。本実施形態において、ストレージ2のアレイ21自体は公知のアレイを用いることができる。
アクセス要求処理部22は、ホスト1からのアクセス要求の受理、及びホスト1への結果の返答又は応答処理を行う。図3は、アクセス要求処理部22の構成の一例を示す図である。
アクセス要求処理部22は、ホスト1からのアクセス要求に必要となる処理を、アレイ21を構成する各記憶媒体211へのReadコマンド、Writeコマンドに変換し、アクセス要求、コマンドの情報を、コマンド管理情報格納部(図3の222)に格納する。
アクセス要求処理部22は、記憶媒体211に発行予定の前記コマンドに対してスケジューラ(図3の224)を用いてスケジューリングを行い、発行先のReadコマンドについて、各記憶媒体の負荷が均一になるように、発行先の記憶媒体の変更、及び/又は、各記憶媒体に対するコマンド列の発行順序の変更を実行し、アクセス時間を最小化するように、整列する。
アクセス要求処理部22によるスケジューリングの結果は、アクセス要求処理部22内のコマンドキュー(図3の223)に格納する。
アクセス要求処理部22は、スケジューラ(図3の224)を用いて、応答時間制御部24からの指示で、コマンド列の各コマンドの完了時間の予測処理と、コマンド関係の依存関係の有無確認の処理を行う。
更に、アクセス要求処理部22は、
・コマンドキュー(図3の223)に格納されたスケジューリング結果が、スケジューリング処理中に読み出されないようにする機能(排他制御機能)、及び、
・ホスト1からのアクセス要求に対する応答時間保証が難しくなった際に、応答時間制御部24からの指示で新規アクセスの停止処理を行う。
・コマンドキュー(図3の223)に格納されたスケジューリング結果が、スケジューリング処理中に読み出されないようにする機能(排他制御機能)、及び、
・ホスト1からのアクセス要求に対する応答時間保証が難しくなった際に、応答時間制御部24からの指示で新規アクセスの停止処理を行う。
アレイ構成情報格納部23は、
・アレイ21内の記憶媒体211に対するストレージ2がホスト1に対して見せているアドレス空間との対応関係の情報、及び、
・各記憶媒体211に関する例えばRAIDレベル等の冗長性に関する情報を、
ホスト1からストレージ2に対してアクセスが行われる前に格納しておく。
・アレイ21内の記憶媒体211に対するストレージ2がホスト1に対して見せているアドレス空間との対応関係の情報、及び、
・各記憶媒体211に関する例えばRAIDレベル等の冗長性に関する情報を、
ホスト1からストレージ2に対してアクセスが行われる前に格納しておく。
アレイ構成情報格納部23は、格納情報を、アクセス要求処理部22及び応答時間制御部24に提供する。
応答時間制御部24は、応答時間保証情報格納部25の情報を用いてアクセス要求処理部22によるスケジューリング結果と、アレイ21に対する各コマンドの完了時間の予測結果から、アレイ21に対する各コマンドが、ホスト1からのアクセス要求に対して保証すべき時間に収まるか否かを確認する。
また、応答時間制御部24は、アクセス要求処理部22によるスケジューリングの結果、ホスト1からのアクセス要求の応答時間を保証することが困難であると判断した場合、アクセス要求処理部22に対して、スケジューリングの結果を修正して、コマンド列の各コマンドの完了時間予測処理と、コマンド関係の依存関係の有無確認処理の実行を指示する。
さらに、応答時間制御部24は、前記指示によるアクセス要求処理部の結果を用いて再度、アレイ21に対する各コマンドが、ホスト1からのアクセス要求に対して保証すべき時間に収まるか否かを確認する。
応答時間保証情報格納部25は、ホスト1からのアクセス要求に対して満たすべき応答時間の情報を、ホスト1からストレージ2に対してアクセスが行われる前に格納しておく。
応答時間保証情報格納部25に格納される情報は、満たすべき応答時間、及び応答時間を満たすべきアクセスの条件を制限するための接続元のホスト1との対応情報である。
時刻取得部26は、アクセス要求処理部22がホスト1からのアクセス要求の受理時間の記録、及び、アレイ211に対する各コマンドの完了時間の予測を行うために現在時刻を提供する。
なお、図2のストレージ2において、少なくともアクセス要求処理部22と応答時間制御部24は、ストレージ2のコンピュータ上で実行されるプログラムによってその機能を実現するようにしてもよい。
図3を参照すると、アクセス要求処理部22は、アクセス要求実行制御部221と、コマンド管理情報格納部222と、コマンドキュー223と、スケジューラ224と、コマンドキューロックフラグ225と、新規アクセス停止フラグ226と、を備える。図4は、コマンド管理情報格納部222内のアクセス要求管理情報の一例、図5は、コマンド管理情報格納部222内のコマンド管理情報の一例を示す図である。
はじめにアクセス要求実行制御部221を説明する。アクセス要求実行制御部221は、
・ホスト1からのアクセス要求の受理、及び
・アクセス要求の処理結果の送信、アクセス完了応答
を行う。
・ホスト1からのアクセス要求の受理、及び
・アクセス要求の処理結果の送信、アクセス完了応答
を行う。
またアクセス要求実行制御部221は、ホスト1からのアクセス要求に関して、
・アレイ構成情報格納部23から、アレイ21内の記憶媒体211(図2)とストレージ2全体のアドレス空間の対応関係、及び冗長性の情報を取得し、
・ホスト1からのアクセス要求を、記憶媒体211に対するコマンドに変換し、
・アクセス要求及びコマンドの管理情報を、コマンド管理情報格納部222に格納し、コマンドをコマンドキュー223に格納する。
・アレイ構成情報格納部23から、アレイ21内の記憶媒体211(図2)とストレージ2全体のアドレス空間の対応関係、及び冗長性の情報を取得し、
・ホスト1からのアクセス要求を、記憶媒体211に対するコマンドに変換し、
・アクセス要求及びコマンドの管理情報を、コマンド管理情報格納部222に格納し、コマンドをコマンドキュー223に格納する。
アクセス要求実行制御部221は、スケジューラ224に対して、
コマンドキュー223に格納されたアレイ21に対するコマンド列について、全コマンドが完了するまでの時間を削減し、ランダムアクセス性能を高めるように、スケジューリングを行い、
発行先のReadコマンドについて、各記憶媒体の負荷が均一になるように発行先を変更し、
各記憶媒体に対するコマンド列を、アクセス時間を最小化するように整列する。スケジューリング結果は、コマンドキュー223に格納する。
またアクセス要求実行制御部221は、コマンドキュー223のコマンド列をアレイ21内の各記憶媒体211に発行してその結果を受け取る。
コマンドキュー223に格納されたアレイ21に対するコマンド列について、全コマンドが完了するまでの時間を削減し、ランダムアクセス性能を高めるように、スケジューリングを行い、
発行先のReadコマンドについて、各記憶媒体の負荷が均一になるように発行先を変更し、
各記憶媒体に対するコマンド列を、アクセス時間を最小化するように整列する。スケジューリング結果は、コマンドキュー223に格納する。
またアクセス要求実行制御部221は、コマンドキュー223のコマンド列をアレイ21内の各記憶媒体211に発行してその結果を受け取る。
アクセス要求実行制御部221は、コマンドキューロックフラグ225を、スケジューラ224又は応答時間制御部24の要求でロック、アンロックを行う。
アクセス要求実行制御部221は、応答時間制御部24の要求で、新規アクセス停止フラグ226がセットされると、ホスト1からの新規アクセス要求の受理を停止する。
次にコマンド管理情報格納部222について説明する。コマンド管理情報格納部222は、アクセス要求実行制御部221がホスト1からのアクセス要求を受理した際に、アクセス要求管理情報(図4の2221)を格納する。
また、コマンド管理情報格納部222はアクセス要求実行制御部221がアクセス要求を処理するためのアレイ21の各記憶媒体211に対して発行されるコマンドを生成した際に、コマンド管理情報(図5の2222)を格納する。
アクセス要求管理情報2221は、アクセス要求に付随する情報として、例えば、
(a)アクセス要求を受けた際に付与されるアクセス要求毎に固有なIDと、
(b)ReadであるかWriteであるかのアクセス種別(図4ではR/Wと表現)と、
(c)アクセス先のストレージ2全体におけるアドレス空間内での先頭ブロックのアドレスと、
(d)アクセス長と、
(e)アクセス要求の要求元ホストと、
(f)各アクセス要求をホスト1から受理した時刻と、
(g)各アクセス要求を処理するためにアレイ21の各記憶媒体211に対して発行するコマンドを指し示すIDである対応コマンドIDと、
から構成される。
(a)アクセス要求を受けた際に付与されるアクセス要求毎に固有なIDと、
(b)ReadであるかWriteであるかのアクセス種別(図4ではR/Wと表現)と、
(c)アクセス先のストレージ2全体におけるアドレス空間内での先頭ブロックのアドレスと、
(d)アクセス長と、
(e)アクセス要求の要求元ホストと、
(f)各アクセス要求をホスト1から受理した時刻と、
(g)各アクセス要求を処理するためにアレイ21の各記憶媒体211に対して発行するコマンドを指し示すIDである対応コマンドIDと、
から構成される。
コマンド管理情報2222は、ホスト1からの各アクセス要求を処理するためにアレイ21内の各記憶媒体211に対して発行されるコマンドに付随する情報を保持する。
コマンドに付随する情報として、例えば、
(h)コマンド毎に固有なIDと、
(i)コマンドの発行先となる記憶媒体を識別する情報と、
(j)ReadであるかWriteであるかのアクセス種別(図5ではR/Wと表現)と、
(k)アクセス先の記憶媒体211内での先頭ブロックのアドレスと、
(l)アクセス長と、
(m)コマンドに対応するホスト1からのアクセス要求に付加された、各アクセス要求に対するアクセス要求管理情報2221と同一のIDである対応アクセスIDと、
(n)記憶媒体内でのコマンドIDと、
(o)コマンドがアレイ21の各記憶媒体211において処理完了となる完了予定時刻と、
(p)各コマンドの実行状態と、
を記録する。
(h)コマンド毎に固有なIDと、
(i)コマンドの発行先となる記憶媒体を識別する情報と、
(j)ReadであるかWriteであるかのアクセス種別(図5ではR/Wと表現)と、
(k)アクセス先の記憶媒体211内での先頭ブロックのアドレスと、
(l)アクセス長と、
(m)コマンドに対応するホスト1からのアクセス要求に付加された、各アクセス要求に対するアクセス要求管理情報2221と同一のIDである対応アクセスIDと、
(n)記憶媒体内でのコマンドIDと、
(o)コマンドがアレイ21の各記憶媒体211において処理完了となる完了予定時刻と、
(p)各コマンドの実行状態と、
を記録する。
各コマンドの実行状態は、コマンドが現在コマンドキュー223内でコマンドがアレイ21内の記憶媒体211に対する発行に備えて待機している状態を「待機」、コマンドがアレイ21内の記憶媒体211で実行中であることを表す「実行」、コマンドの完了通知をアレイ21内の記憶媒体211から受け取って処理が完了した状態を表す「完了」、の3種類の状態で表される。
次にコマンドキュー223について説明する。コマンドキュー223は、アレイ21内の各記憶媒体211に発行予定のコマンドについて、発行順序を表すコマンド列を格納する。
コマンド列は、スケジューラ224によって処理完了時間を削減し、ランダムアクセス性能が向上するように整列される。
またコマンドキュー223は、スケジューラ224によってスケジューリングの際に予測された各コマンドの処理完了時間の予測結果を格納する。
コマンドキュー223は、コマンドキューロックフラグ225によって、アクセス要求実行制御部221、スケジューラ224、及び、アクセス要求処理部22の外部にある応答時間制御部24が、同時に参照又は更新を行わないように排他制御される。
次にスケジューラ224について説明する。スケジューラ224は、コマンドキュー223に格納されたアレイ21内の各記憶媒体211に発行予定のコマンド列について、処理完了時間を削減し、ランダムアクセス性能が向上するように、スケジューリングを行い、コマンド列を整列する。
スケジューラ224は、コマンド列を構成する各コマンドの情報として、アクセス要求実行制御部221を介して、コマンド管理情報格納部222に格納された情報を参照する。
また、スケジューラ224は、コマンドキュー223に格納されたコマンド列のスケジューリングを行う際に、コマンド列の各コマンドの完了時間の予測を行う。
スケジューラ224は、スケジューリング結果である整列したコマンド列、及び各コマンドの完了時間の予測結果を、コマンドキュー223に格納する。
さらに、スケジューラ224は、アクセス要求処理部22の外部にある応答時間制御部24による指示を、アクセス要求実行制御部221を介して受けて、応答時間制御部24から受け取ったコマンド列の各コマンドの完了時間予測処理と、コマンド関係の依存関係の有無確認の処理を実行する。
コマンドキューロックフラグ225は、アクセス要求実行制御部221、後記スケジューラ224、及びアクセス要求処理部22の外部にある応答時間制御部24が、同時にコマンドキュー223の参照又は更新を行わないように、ロック処理を行うための情報を格納する。
新規アクセス停止フラグ226は、アクセス要求実行制御部221によって参照される。新規アクセス停止フラグ226がセットされている場合には、アクセス要求実行制御部221は、ストレージ2がホスト1から新規アクセス要求の受理を停止する。
逆に、新規アクセス停止フラグ226がクリアされると、アクセス要求実行制御部221は、ストレージ2がホスト1から新規アクセス要求の受理を再開する。
新規アクセス停止フラグ226は、ホスト1からのアクセス要求に対する応答時間の保証が困難になった場合に、応答時間の保証を維持するために、応答時間制御部24によってセットされる。逆に、応答時間の保証が困難な状況が解消された場合は、応答時間制御部24によって新規アクセス停止フラグ226はクリアされる。
図3に示された、コマンド管理情報格納部222、コマンドキュー223、スケジューラ224、では相互間及びアクセス要求処理部22の外部と情報を伝達、要求する場合にアクセス要求実行制御部221を介するように示しているが、アクセス要求実行制御部221を介さずに、直接情報を、伝達、要求する構成としてもよい。
また図3では、コマンドキューロックフラグ225、新規アクセス停止フラグ226に対してアクセス要求処理部の内部及び外部から参照、更新がアクセス要求実行制御部221を通して行われるように示されているが、アクセス要求実行制御部221を通さずに直接参照、更新を行う構成としてもよい。
図6は、本発明の一実施形態における応答時間の確認処理と、コマンド列の変更処理の手順を示すフローチャートである。図7は、本発明の一実施形態において、応答時間を満たしつつランダムアクセス性能を最大化する発行先記憶媒体の変更、コマンド発行順序変更の手順を示すフローチャートである。図8は、図7のつづきのフローチャートである。図7、図8は単に図面作成の都合で分図されている。次に、図1、図2、図3、図6、図7、図8を参照して、ホスト1からストレージ2に対するアクセス要求の応答時間保証を実現する場合の動作例を説明する。
まず図1、図2、図3、図6を参照して、ストレージ2におけるホスト1からのアクセス要求を処理するためのコマンドについて、スケジューラ224(図3)によってスケジューリングが行われた後に、スケジューリング結果であるコマンドキュー223(図3)に格納された、アレイ21内の各記憶媒体211(図2)に対するコマンド列について、
応答時間制御部24により、
・ホスト1からのアクセス要求に対する応答時間を保証可能であるかどうか確認、及び、
・アクセス要求に対する応答時間を満たすようにコマンドキュー223に格納されたアレイ21内の各記憶媒体211に対するコマンド列を変更する
手順について説明する。
応答時間制御部24により、
・ホスト1からのアクセス要求に対する応答時間を保証可能であるかどうか確認、及び、
・アクセス要求に対する応答時間を満たすようにコマンドキュー223に格納されたアレイ21内の各記憶媒体211に対するコマンド列を変更する
手順について説明する。
応答時間制御部24(図2)は、アクセス要求処理部22(図2)に対して、コマンドキュー223(図3)のロックを取得する(ステップS101)。応答時間制御部24がコマンドキュー223のロックを取得すると、アクセス要求処理部22内のコマンドキューロックフラグ225(図3)が、アクセス要求実行制御部221(図3)によって、セットされる。コマンドキュー223に対するロックは、アクセス要求実行制御部221、スケジューラ224(図3)、及び、応答時間制御部24(アクセス要求処理部22の外部にある)が、同時に、コマンドキュー223の参照又は更新を行わないようにするために取得する。つまり、応答時間制御部24が応答時間の保証が可能であるか確認及び応答時間を保証可能なようにコマンド列を更新する間は、アレイ21内の記憶媒体211(図2)に対するコマンド発行、及び、スケジューラ224によるスケジューリングに伴う結果のコマンドキュー223への格納は行われない。
応答時間制御部24は、アクセス要求処理部22から、スケジューリング結果として、
・コマンドキュー223に格納された、アレイ21内の記憶媒体211に対するコマンド列、及び、
・コマンド列に含まれる各コマンドの完了予測時間の情報
を取得する(ステップS102)。
・コマンドキュー223に格納された、アレイ21内の記憶媒体211に対するコマンド列、及び、
・コマンド列に含まれる各コマンドの完了予測時間の情報
を取得する(ステップS102)。
応答時間制御部24は、アクセス要求処理部22からコマンド管理情報格納部222に格納された、各コマンドによって処理されるホスト1からストレージ2に対するアクセス要求の受理時間の情報を取得する(ステップS103)。
応答時間制御部24は、
・ステップS102とS103で得た情報と、
・応答時間保証情報格納部25(図2)から取得した、ホスト1からストレージ2に対する各アクセス要求に対して保証すべき応答時間の情報と、
を用いて、アレイ21内の各記憶媒体211に対するコマンドの完了時間が、ホスト1のアクセス要求に対して保証すべき応答時間を満たすものであるか確認する(ステップS104)。
・ステップS102とS103で得た情報と、
・応答時間保証情報格納部25(図2)から取得した、ホスト1からストレージ2に対する各アクセス要求に対して保証すべき応答時間の情報と、
を用いて、アレイ21内の各記憶媒体211に対するコマンドの完了時間が、ホスト1のアクセス要求に対して保証すべき応答時間を満たすものであるか確認する(ステップS104)。
応答時間制御部24は、ステップS104の確認の結果、ホスト1からのアクセス要求に対して保証すべき応答時間(応答保証時間)を満たさない原因となる記憶媒体211に対するコマンドが存在する場合(ステップS105のYes分岐)、応答保証時間を満たさない各コマンドについて、コマンドキュー223に格納されたコマンド列(スケジューラ224によるスケジューリングの結果、コマンドキュー223に格納された、アレイ21内の各記憶媒体211に対するコマンド列)に対して、コマンド列を整列し(再スケジュール)、各コマンドが対応する応答時間を満たすように変更する。また、応答時間制御部24は、コマンドがアクセス先の記憶媒体211を、コマンドが応答時間満たすように変更する(ステップS106)
ホスト1からのアクセス要求に対して保証すべき応答時間を満たせない原因となる記憶媒体211に対するコマンドが存在しない場合(ステップS105のNo分岐)、ステップS109の処理を実行する。
ステップS106による処理の結果、アレイ21内の記憶媒体211に対して発行するコマンドに、保障すべき応答時間を満たさないコマンドが残されている場合(ステップS107のYes分岐)、応答時間制御部24は、アクセス要求処理部22に対して、新規アクセス停止フラグ226のセットを指示することで、アクセス要求処理部22がホスト1からストレージ2に対する新規アクセス要求の受理を停止させる(ステップS108)。
ステップS106による処理の結果、アレイ21内の記憶媒体211に対して発行するコマンドに、保障すべき応答時間を満たさないコマンドが1個も残されていない場合(ステップS107のNo分岐)、応答時間制御部24は、アクセス要求処理部22に対して、新規アクセス停止フラグ226(図3)のクリアを指示し、アクセス要求処理部22が、ホスト1からストレージ2に対する新規アクセス要求の受理を再開させる(ステップS109)。
また、ステップS109の応答時間制御部24による、アクセス要求処理部22に対する新規アクセス停止フラグ226のクリア指示は、ステップS105のNo分岐においても実行される。
応答時間制御部24は、コマンドキュー223のロックを開放する。応答時間制御部24がロックを開放すると、アクセス要求処理部22内のコマンドキューロックフラグ225が、アクセス要求実行制御部221によってクリアされる(ステップS110)。
以上のステップS101からS110までの処理を行い、ストレージ2におけるホスト1からのアクセス要求を処理するためのコマンドについて、スケジューラ224によってスケジューリングが行われる。
そして、スケジューリング結果であるコマンドキュー223に格納された、アレイ21内の各記憶媒体211に対するコマンド列について、ホスト1からのアクセス要求に対する応答時間を保証可能であるかどうか確認、及び、アクセス要求に対する応答時間を満たすようにコマンドキュー223に格納されたアレイ21内の各記憶媒体211に対するコマンド列を変更する処理が終了する。
なお、図6のステップS102からS103の処理は、必ずしも、図6で定められた実行順序である必要ではなく、任意の順序で実行してもよい。
次に図1、図2、図3、図6、図7、図8を参照して、図6のステップS106における更に詳細な手順について説明する。図6のステップS106では、応答時間制御部24は、ホスト1からのアクセス要求に対して保障すべき応答時間を満たせない原因となっている各コマンドについて、アレイ21内の記憶媒体211に対するコマンド列をホスト1からのアクセス要求に対して保障すべき応答時間を満たすように変更する。
応答時間制御部24は、アクセス要求処理部22のコマンドキュー223からアレイ21内の各記憶媒体211に対するアクセス待ちのコマンド列と、各コマンドの処理が完了する予測時間情報を取得する(ステップS201)。
応答時間制御部24は、アレイ21内の記憶媒体211のうち、後続ステップ(S202以降の処理)で、未着目(未処理)である記憶媒体211から、全ての待機中のコマンドが完了するまでの予測時間が最も早いものに着目する(ステップS202)。
ステップS202で着目すべき記憶媒体211が存在する場合には(ステップS203のYes分岐)、ステップS204以降の処理を継続する。
ステップS202で着目すべき記憶媒体211が存在しない、つまりステップ202以降の処理で、全ての記憶媒体211を対象とした処理手順が完了している場合(ステップS203のNo分岐)、処理を終了する。このとき、ホスト1からのアクセス要求に対して、保障すべき応答時間を満たせない原因であるコマンド(ステップS201からの一連の手順で着目したコマンド)については、保障すべき応答時間を満たすようにコマンド列を変更することが不可能である。そのため、他にホスト1からのアクセス要求に対して、保障すべき応答時間を満たせない原因となっているコマンドの有無、及び、保障すべき応答時間を満たすようにコマンド列の変更ができるかどうかに関わらず、図6のステップS107ではYes分岐が選択される。
ステップS202で着目した記憶媒体211について、ステップS201からの一連の手順で着目したコマンドの発行先ではない場合(ステップS204のYes分岐)、且つ、一連の手順で着目中のコマンドがWriteである場合(ステップS205のYes分岐)、ステップS202に戻り、別の記憶媒体211について着目する。
ステップS202で着目した記憶媒体211について、一連の手順で着目したコマンドの発行先である場合(ステップS204のNo分岐)、又は、一連の手順で着目中のコマンドがWriteではなくReadである場合(ステップS205のNo分岐)、応答時間制御部24は、スケジューラ224に対して、ステップS201からの一連の処理で着目中のコマンドが、仮にステップS202で着目した記憶媒体211をコマンドの発行先として変更した場合に、記憶媒体211に対して発行待ちのコマンド列についてアクセスの完了時間を最小化するようなコマンド列の整列処理を、コマンド要求処理部22のスケジューラ224に指示する(ステップS206)。
コマンド要求処理部22のスケジューラ224は、ステップS206において行われた応答時間制御部24からの指示により、スケジューリングを行ったコマンド列を、結果として応答時間制御部24に返す。
応答時間制御部24は、スケジューラ224の返したコマンド列について、応答時間保証情報格納部25から取得した、ホスト1からストレージ2に対する各アクセス要求に対して保証すべき応答時間の情報を用いて、コマンド列に含まれる各コマンドの完了時間が、ホスト1のアクセス要求に対して保証すべき応答時間を満たすものであるか確認する。(ステップS207)。
ステップS207において、ホスト1からのアクセス要求に対して保証すべき応答時間を満たせない原因となる記憶媒体211に対するコマンドが存在する場合(S208のYes分岐)、応答時間制御部24は、ステップS207のコマンド列の整列結果を破棄し、スケジューラ224により、ステップS101からの一連の手順より前に求められた、アレイ21内の記憶媒体211に対する元のコマンド列に対して、ステップS201からの一連の手順で着目しているコマンドをコマンド列の先頭に追加した、新しいコマンド列を生成する(ステップS209)。
ステップS207において、ホスト1からのアクセス要求に対して保証すべき応答時間を満たせない原因となる記憶媒体211に対するコマンドが存在しない場合(ステップS208のNo分岐)、応答時間制御部24は、ステップS213以降の手順を実行する。
応答時間制御部24は、ステップS209で生成した新たなコマンド列について、アクセス要求処理部22内のスケジューラ224を用いて、コマンド列に含まれる各コマンドの完了時間の算出、及び、コマンド間の依存関係の有無を確認する(ステップS210)。
ステップS210における、指示の結果、コマンド列のコマンド間の依存関係に問題がなく(ステップS211のYes分岐)、且つ、ステップS210において算出した各コマンドの完了時間を参照した結果、各コマンドが保証すべき応答時間を満たせない原因となるコマンドが存在しなかった場合(ステップS212のYes分岐)、応答時間制御部24は、アクセス要求処理部22に対してコマンドキュー223に格納されたコマンド列を、S209で生成した新たなコマンド列で更新してS201からの一連の手順を終了する(ステップS213)。
このとき、ホスト1からのアクセス要求に対して保障すべき応答時間を満たせない原因である、ステップS201からの一連の手順で着目したコマンドについては、保障すべき応答時間を満たすようにコマンド列が変更されている。
ホスト1からのアクセス要求に対して保障すべき応答時間を満たせない原因になっているコマンドが他にも存在する場合は、該コマンドについて、再び、図7のステップS201からの手順を実行する。
逆に前記コマンドが存在しない場合には、図6のステップS107でNo分岐が選択される。
図8のステップS210における指示の結果、コマンド列のコマンド間の依存関係に問題が発生している(ステップS211のNo分岐)、又は、ステップS210において算出した各コマンドの完了時間で、各コマンドが保証すべき応答時間を満たせない原因となるコマンドが存在した場合(ステップS212のNo分岐)、応答時間制御部24は、ステップS214以降の手順を実行する。
ステップS201からの一連の手順で着目したコマンドが、ステップS210でのコマンド列中で最末尾に格納されている場合(ステップS214のYes分岐)、ステップS202の処理に戻り、アレイ21内の記憶媒体211の着目記憶媒体を変更する。
図7のステップS201からの一連の手順で着目したコマンドが、図8のステップS210でのコマンド列中で最末尾以外の位置に格納されている場合(ステップS214のNo分岐)、着目コマンドを、コマンド列の中で、1コマンド分末尾方向に、格納位置を移動する。つまり、コマンド列内で着目コマンドの直後のコマンドとの間で発行順序を変更する(ステップS215)。着目コマンドをコマンド列の先頭に配置し、応答保証時間を満たさない場合、着目コマンドのコマンド列中での位置を順次後退させていき、コマンドの完了予測時間を再計算する手順を、応答保証時間を満たすまで(コマンド列末尾に位置するまで)繰り返す。
以上のステップS201からS215までの処理を行うことで、ホスト1からのアクセス要求に対して保障すべき応答時間を満たせない原因となっている各コマンドについて、アレイ21内の記憶媒体211に対するコマンド列をホスト1からのアクセス要求に対して、保障すべき応答時間を満たすように変更する処理(応答時間制御部24による処理)が終了する。
なお、図7のステップS204からS205の条件分岐は、必ずしも図7で定められた実行順序である必要ではなく、任意の順序で実行してもよい。また前記ステップS211からS212の条件分岐は、必ずしも図8で定められた実行順序である必要ではなく、任意の順序で実行してもよい。
ステップS209において、コマンド列に対して新たに着目中のコマンドを追加する位置は、必ずしもコマンド列の先頭ではなく、例えばコマンド列の最末尾であってもよい。この場合ステップS215における着目コマンドの移動方向は、最末尾方向ではなく先頭方向に変化する。
図6のステップS101からS110、図7のステップS201から図8のS215の動作例として、図3のスケジューラ224によるスケジューリング結果である、コマンドキュー223のコマンド列に対して、各コマンドがホスト1からのアクセス要求の応答時間を保証できるようにコマンド列を変更する場合の動作を、図1、図2、図3、図6、図7、図8、図9を用いて示す。
本実施例では、図1において、2台のホスト1からネットワーク3を通してストレージ2にアクセスが行われるものとする。2台のホスト1を、それぞれ、ホストA、ホストBと呼ぶ。ホストA、Bに対してストレージ2に対するアクセス要求に対して保証すべき応答時間をそれぞれ50ms、25msとする。図2の応答時間保証情報格納部25には、ストレージ2に対するアクセス要求に対して保証すべき応答時間として、ホストA、Bに対して、50ms、25msが格納される。
図2のアレイ21を構成する記憶媒体211は2台のHDDとし、HDD1、HDD2とする。2台のHDD1、2は、同一データを保持するRAID1構成であり、2台のHDDはデータの格納位置、性能が同一であるとする。
本実施例では、ストレージ2がホスト1からアクセスを受ける際のアドレスが2台のHDDのアドレス空間と一致していると仮定する。つまり、この場合、ホスト1からストレージ2に対して、例えばアドレス100のデータをReadした場合、該当するデータは2台のHDDのアドレス100の位置に格納されている。このアドレスを、LBA(Logical Block Address:論理ブロックアドレス)という。
本実施例で用いるHDDにおける、ヘッドがシークを行う距離をLBAで表したものとシーク時間との関係を、図9に示す。図9には、本実施例における、シークで移動するLBAとシーク時間(単位:ms)の関係が、特性31として示されている。2台のHDDのヘッドは実施例の開始時点で共にLBAで0の位置にあると仮定する。LBAの移動量100あたりのシーク時間は常に3msであるとする。つまり、HDDのヘッドがLBAで1000移動する場合、30msのシーク時間を要する。
HDDの回転待ち時間は常に5msであるものとする。また記憶媒体であるHDD以外に、ストレージ2内部におけるアクセス要求に対する処理時間のオーバーヘッドとしてHDDへのアクセスの前後に、それぞれ1msの時間を要するものと仮定する。
図10の、実施例におけるアクセス元ホスト、時刻、アクセス内容の一覧32を示す図である。本実施例では、ストレージ2に対して、図10の一覧32を示した時刻、要求元ホスト、アクセス種別、アドレスの関係でアクセスが行われるものとする。図10において、時刻はアクセス開始時点からの経過時間で表している。
この例では、
・開始と同時に(時刻0ms)、ホストAからLBA0に対してWriteを要求し、
・開始から2msが経過した後に(時刻2ms)、ホストAがLBA700に対してReadを要求する。
・開始から3ms経過時(時刻3ms)、ホストBがLBA500に対してReadを要求する。
・開始から4ms経過時(時刻4ms)、ホストBがLBA200に対してReadを要求する。
・開始から10ms経過時(時刻10ms)、ホストBがLBA1000に対してReadを要求する。
・開始と同時に(時刻0ms)、ホストAからLBA0に対してWriteを要求し、
・開始から2msが経過した後に(時刻2ms)、ホストAがLBA700に対してReadを要求する。
・開始から3ms経過時(時刻3ms)、ホストBがLBA500に対してReadを要求する。
・開始から4ms経過時(時刻4ms)、ホストBがLBA200に対してReadを要求する。
・開始から10ms経過時(時刻10ms)、ホストBがLBA1000に対してReadを要求する。
アクセス元ホスト、時刻、アクセス内容の一覧32に示されたホストA、ホストBからのアクセス要求について、
・シーク時間を最短とし、
・ランダムアクセス性能を最大化するように、
スケジューラ244がスケジューリングを行った結果が、図11に示した、HDDのアクセス待ちコマンド列のスケジューリング結果33である。
・シーク時間を最短とし、
・ランダムアクセス性能を最大化するように、
スケジューラ244がスケジューリングを行った結果が、図11に示した、HDDのアクセス待ちコマンド列のスケジューリング結果33である。
HDD1へのコマンド列(スケジューリング結果)は、
LBA 0へのWriteコマンド(開始0ms、終了6ms)
LBA 200からのReadコマンド(開始5ms、終了17ms)、
LBA 500からのReadコマンド(開始16ms、終了31ms)
がこの順に待機する。
HDD2へのコマンド列(スケジューリング結果)は、
LBA 0へのWriteコマンド(開始0ms、終了6ms)
LBA 700からのReadコマンド(開始5ms、終了32ms)、
LBA 1000からのReadコマンド(開始31ms、終了46ms)
がこの順に待機する。なお、RAID1において、Writeコマンドにより、HDD1とHDD2へは、同一のLBAに同一のデータが書き込まれる。
LBA 0へのWriteコマンド(開始0ms、終了6ms)
LBA 200からのReadコマンド(開始5ms、終了17ms)、
LBA 500からのReadコマンド(開始16ms、終了31ms)
がこの順に待機する。
HDD2へのコマンド列(スケジューリング結果)は、
LBA 0へのWriteコマンド(開始0ms、終了6ms)
LBA 700からのReadコマンド(開始5ms、終了32ms)、
LBA 1000からのReadコマンド(開始31ms、終了46ms)
がこの順に待機する。なお、RAID1において、Writeコマンドにより、HDD1とHDD2へは、同一のLBAに同一のデータが書き込まれる。
本実施例におけるスケジューリング結果では、LBA500に対するホストBからのRead要求について着目すると(図11のRead 500:開始16ms、終了:31ms)、ホストBからストレージ2に対してアクセス要求が行われた時刻が3ms(図10参照)であるのに対し、アクセス要求に対する処理が終了するのが31msであるため、応答時間は31−3=28msと求められる。しかし、これはホストBに対して保証すべき応答時間である25msに間に合わない。
そこで、図6のステップS101からS110、及び、図7、図8のステップS201からS215までの手順を適用して保証すべき応答時間を満たすように、アクセス列を修正する。図12に、修正した結果を示す。図12には、応答時間保証が可能なHDDへのコマンド列34が示されている。
まず、本実施例におけるHDDのアクセス待ちコマンド列のスケジューリング結果33(図11)について、応答時間の保証ができていないLBA500に対するReadに着目している。
応答時間の保証ができていないアクセス要求はReadであるため、HDD1に対して発行されるReadコマンドは、HDD2でも代用が可能である。
そこで、LBA500に対するReadコマンド(Read 500)を、HDD2に対するコマンド列に移動させて、スケジューラ244によってシーク時間を最短とし、コマンドの完了までの時間が最小となるようにスケジューリングを行う。本実施例において、Readコマンド(Read 500)のHDD1からHDD2に対するコマンド列への移動(アクセス先ディスクの変更、順序の変更)は、応答時間制御部24(図2)がコマンドキュー223(図3)を直接操作することで行われるが、応答時間制御部24はアクセス要求実行制御部221のスケジューラ224に対してコマンドのスケジューリングの制約条件の指示のみを行い、実際のコマンドの変更操作はスケジューラ224で行うようにしてもよい。
その結果、図12に示したように、LBA500に対するReadコマンドへの応答時間は26−3=23msと、ホストBからのアクセス要求に対して保証すべき応答時間である25msに間に合う。
一方、LBA500に対するReadアクセスの影響で、LBA700とLBA1000に対するホストAからのReadアクセス要求への応答時間は増大する。
しかし、本実施例において、応答時間の増加幅は、HDD1、HDD2が1コマンドあたり要する回転待ち時間1回分で済む。すなわち、応答時間の保証に伴う余分なヘッドのシークによる完了時間の増加は、最小限に抑えることができる。
また、LBA700と1000に対するReadアクセス要求について、応答時間を確認すると、それぞれ37−2=35ms、51−10=41msと、ホストAに対して保証すべき応答時間である50msに間に合う。
つまり、本実施例において、全てのアクセス要求に対する応答時間の保証を実現しつつ、スケジューリング結果の修正によるランダムアクセス性能の悪化を最小限に抑えられることが分かる。
本発明によれば、記憶媒体として複数のHDDを冗長性を持つRAIDレベルで使用するディスクアレイ等に適用できるほか、HDD以外にも例えばSSD(Solid State Drive)といった他の記憶媒体を複数使用して、記憶媒体間でデータの冗長性を確保したストレージ等に適用可能である。
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1 ホスト
2 ストレージ
3 ネットワーク
21 アレイ
211 記憶媒体
22 アクセス要求処理部
221 アクセス要求実行制御部
222 コマンド管理情報格納部
223 コマンドキュー
224 スケジューラ
225 コマンドキューロックフラグ
226 新規アクセス停止フラグ
2221 アクセス要求管理情報
2222 コマンド管理情報
23 アレイ構成情報格納部
24 応答時間制御部
25 応答時間保証情報格納部
26 時刻取得部
31 実施例におけるシークで移動するLBAとシーク時間の関係
32 実施例におけるアクセス元ホスト、時刻、アクセス内容の一覧
33 実施例におけるHDDのアクセス待ちコマンド列 のスケジューリング結果
34 実施例における応答時間保証が可能なHDDへのコマンド列
2 ストレージ
3 ネットワーク
21 アレイ
211 記憶媒体
22 アクセス要求処理部
221 アクセス要求実行制御部
222 コマンド管理情報格納部
223 コマンドキュー
224 スケジューラ
225 コマンドキューロックフラグ
226 新規アクセス停止フラグ
2221 アクセス要求管理情報
2222 コマンド管理情報
23 アレイ構成情報格納部
24 応答時間制御部
25 応答時間保証情報格納部
26 時刻取得部
31 実施例におけるシークで移動するLBAとシーク時間の関係
32 実施例におけるアクセス元ホスト、時刻、アクセス内容の一覧
33 実施例におけるHDDのアクセス待ちコマンド列 のスケジューリング結果
34 実施例における応答時間保証が可能なHDDへのコマンド列
Claims (22)
- 複数の互いに格納データに冗長性を持つ記憶媒体を有し、
各記憶媒体に発行予定のコマンドに対するスケジューリングに用いた各コマンドの完了予測時間を参照し、各コマンドが対応するアクセス要求に対して、予め定められた応答時間に間に合うように、
前記応答時間に間に合わないコマンド、又は、
前記応答時間に間に合わないコマンドと共に記憶媒体に対して発行待ちの状態であるコマンドについて、
前記記憶媒体へのコマンドの発行順序、及び/又は、コマンドの発行先の記憶媒体を変更する手段と、
前記記憶媒体へ発行予定のコマンドのうち発行順序及び/又は発行先の記憶媒体の前記変更により、完了時間が変化するコマンドについて完了予測時間を再計算する手段と、
を備えたストレージ装置。 - 前記応答時間に間に合わないコマンドを、前記応答時間に間に合うようにコマンド列の発行先記憶媒体を変更する際に、
各記憶媒体におけるアクセス時間の増加が最小になるように前記記憶媒体に対する発行予定のコマンドの発行先記憶媒体を変更する請求項1記載のストレージ装置。 - 前記応答時間に間に合わないコマンドを前記応答時間に間に合うように、コマンド列の発行先記憶媒体を変更する際に、
各記憶媒体におけるアクセス時間の増加が最小になるように前記記憶媒体に対する発行予定のコマンド列の発行順序を変更する請求項1記載のストレージ装置。 - 前記応答時間に間に合わないコマンドを前記応答時間に間に合うように、コマンド列の発行先の記憶媒体を変更する際に、
前記コマンドの発行先記憶媒体に対するアクセスコマンドで構成される待ち行列上において前記コマンドより先に記憶媒体に発行するコマンドについて、コマンド発行先の記憶媒体を変更する請求項1記載のストレージ装置。 - 各記憶媒体に発行予定のコマンドが前記応答時間に間に合わない場合に、ランダムアクセス性能の向上、又は、アクセス処理が完了するまでの時間の短縮を目的としてスケジューリング手段でスケジューリングを行った結果求められた、各記憶媒体に対する発行予定のコマンドと、前記発行予定のコマンドの記憶媒体に対する発行順序について、
各コマンドが、前記応答時間に間に合うように、コマンドの発行先記憶媒体、又は、記憶媒体に対するコマンドの発行順序を変更し、
各コマンドの完了時間を予測可能なスケジューリング手段に対して、前記変更結果を送信し、各コマンドに対する応答時間保証の可否の確認、コマンドの発行順序の変更に伴うコマンド間の依存関係の矛盾発生有無の確認の少なくとも1方を行う請求項1記載のストレージ装置。 - データを冗長に格納する複数の記憶媒体を含むアレイと、
ホストからのアクセス要求を受け、前記アクセス要求を前記記憶媒体へアクセスするためのコマンドに変換するアクセス要求制御部と、前記記憶媒体に対するコマンド列をスケジューリングし、前記スケジューリング済みの前記コマンド列の各コマンドの完了時間の予測処理を行うスケジューラと、を含むアクセス要求処理部と、
前記アクセス要求処理部による、前記記憶媒体に対するコマンド列のスケジューリング結果と、前記記憶媒体に対するコマンドの完了時間の予測結果とから、応答時間保証情報格納部に格納される情報を用いて、前記記憶媒体に対する各コマンドが、前記ホストからの対応する各アクセス要求に対して前記応答時間に収まるか否かを確認し、
完了時間が前記応答時間に収まらないコマンドが存在する場合、前記コマンド列の発行順序、及び/又は、コマンドの発行先の記憶媒体を変更し、変更後のコマンド列のコマンドの完了時間の予測の実行を前記アクセス要求処理部に対して指示し、
前記アクセス要求処理部で行われた、前記変更後のコマンド列のコマンドの完了時間の予測結果を用いて、前記記録媒体に対する各コマンドが、前記ホストからの対応する各アクセス要求に対して前記応答時間に収まるか否かを確認する応答時間制御部と、
を備えたストレージ装置。 - 前記応答時間制御部は、前記応答時間に収まらないコマンドが存在する場合、前記記憶媒体に対する待機コマンド列の完了時間を最小化するように、前記アクセス要求処理部のスケジューラに指示し、
前記アクセス要求処理部でのスケジューリング結果のコマンド列の各コマンドがそれぞれ前記応答時間を満たしているか確認し、
前記応答時間を満たさないコマンドが存在する場合、前記コマンドを前記コマンド列中の所定の位置に移動し、
前記応答時間制御部は、前記コマンド移動後のコマンド列に対して、前記アクセス要求処理部のスケジューラを用いて、前記記憶媒体に対する前記コマンド列の処理の完了時間を算出し、
前記応答時間を満たさないコマンドが存在する場合、
所定の終了条件に合致しなければ、前記応答時間を満たさないコマンドを前記コマンド列中の別の位置に移動し、前記コマンド移動後のコマンド列に対して、前記アクセス要求処理部のスケジューラを用いて、前記記憶媒体に対する前記コマンド列の処理の完了時間を算出する処理を、
前記コマンド列中の各コマンドが前記応答時間を満たさすまで、あるいは、前記所定の終了条件に合致するまで、繰り返す、請求項6記載のストレージ装置。 - 前記応答時間制御部は、前記アクセス要求処理部で行われた、前記変更後のコマンド列のコマンドの完了時間の予測結果を用いて、前記記録媒体に対する各コマンドが、前記ホストからの対応する各アクセス要求に対して前記応答時間に収まるか否かを確認した結果、完了時間が前記応答時間に収まらないコマンドが存在する場合、前記アクセス要求処理部に対して、前記ホストからのアクセス要求の受理を停止させるように指示する、請求項6記載のストレージ装置。
- 前記アクセス要求処理部は、前記アレイ内の前記記憶媒体へのコマンドを発行順序にしたがって格納するコマンドキューを備え、
前記アクセス要求処理部の前記スケジューラは、前記記憶媒体に対するコマンド列の完了時間が短くなるようにスケジューリングを行いコマンド列を整列するとともに、各コマンドの完了時間の予測を行い、コマンド列のスケジュール結果と各コマンドの完了時間の予測結果を前記コマンドキューに格納する、請求項6記載のストレージ装置。 - 前記アクセス要求処理部の前記スケジューラは、前記コマンド列を整列において、コマンド間の依存関係を確認する、請求項9記載のストレージ装置。
- 複数の互いに格納データに冗長性を持つ記憶媒体を備えたストレージ装置が、
各記憶媒体に発行予定のコマンドに対するスケジューリングに用いた各コマンドの完了予測時間を参照し、
各コマンドが対応するアクセス要求に対して、予め定められた応答時間に間に合うように、
前記応答時間に間に合わないコマンド、又は、
前記応答時間に間に合わないコマンドと共に記憶媒体に対して発行待ちの状態であるコマンドについて、
前記記憶媒体へのコマンドの発行順序、及び/又は、コマンドの発行先の記憶媒体を変更し、
前記記憶媒体へ発行予定のコマンドのうち発行順序及び/又は発行先の記憶媒体の前記変更により、完了時間が変化するコマンドについて完了予測時間を再計算する、
ことを特徴とする、ストレージ装置のアクセス制御方法。 - 前記応答時間に間に合わないコマンドを、前記応答時間に間に合うようにコマンド列の発行先記憶媒体を変更する際に、
各記憶媒体におけるアクセス時間の増加が最小になるように前記記憶媒体に対する発行予定のコマンドの発行先記憶媒体を変更する請求項11記載のストレージ装置のアクセス制御方法。 - 前記応答時間に間に合わないコマンドを前記応答時間に間に合うように、コマンド列の発行先記憶媒体を変更する際に、
各記憶媒体におけるアクセス時間の増加が最小になるように前記記憶媒体に対する発行予定のコマンド列の発行順序を変更する請求項11のストレージ装置のアクセス制御方法。 - 前記応答時間に間に合わないコマンドを前記応答時間に間に合うように、コマンド列の発行先の記憶媒体を変更する際に、
前記コマンドの発行先記憶媒体に対するアクセスコマンドで構成される待ち行列上において前記コマンドより先に記憶媒体に発行するコマンドについて、コマンド発行先の記憶媒体を変更する請求項11のストレージ装置のアクセス制御方法。 - 各記憶媒体に発行予定のコマンドが前記応答時間に間に合わない場合に、ランダムアクセス性能の向上、又は、アクセス処理が完了するまでの時間の短縮を目的としてスケジューリング手段でスケジューリングを行った結果求められた、各記憶媒体に対する発行予定のコマンドと、前記発行予定のコマンドの記憶媒体に対する発行順序について、
各コマンドが、前記応答時間に間に合うように、コマンドの発行先記憶媒体、又は、記憶媒体に対するコマンドの発行順序を変更し、
各コマンドの完了時間を予測可能なスケジューリング手段に対して、前記変更結果を送信し、各コマンドに対する応答時間保証の可否の確認、コマンドの発行順序の変更に伴うコマンド間の依存関係の矛盾発生有無の確認の少なくとも1方を行う請求項11のストレージ装置のアクセス制御方法。 - データを冗長に格納する複数の記憶媒体を含むアレイを備えたストレージ装置が、
ホストからのアクセス要求を受け、前記アクセス要求を前記記憶媒体へアクセスするためのコマンドに変換し、
前記記憶媒体に対するコマンド列をスケジューリングし、前記スケジューリング済みの前記コマンド列の各コマンドの完了時間の予測処理を行い、
前記記憶媒体に対するコマンド列のスケジューリング結果と、前記記憶媒体に対するコマンドの完了時間の予測結果とから、応答時間保証情報格納部に格納される情報を用いて、前記記憶媒体に対する各コマンドが、前記ホストからの対応する各アクセス要求に対して前記応答時間に収まるか否かを確認し、
完了時間が前記応答時間に収まらないコマンドが存在する場合、前記コマンド列の発行順序、及び/又は、コマンドの発行先の記憶媒体を変更し、変更後のコマンド列のコマンドの完了時間の予測の実行し、
前記変更後のコマンド列のコマンドの完了時間の予測結果を用いて、前記記録媒体に対する各コマンドが、前記ホストからの対応する各アクセス要求に対して前記応答時間に収まるか否かを確認する、ストレージ装置のアクセス制御方法。 - 複数の互いに格納データに冗長性を持つ記憶媒体を有するストレージ装置を構成するコンピュータに、
各記憶媒体に発行予定のコマンドに対するスケジューリングに用いた各コマンドの完了予測時間を参照し、各コマンドが対応するアクセス要求に対して、予め定められた応答時間に間に合うように、
前記応答時間に間に合わないコマンド、又は、
前記応答時間に間に合わないコマンドと共に記憶媒体に対して発行待ちの状態であるコマンドについて、
前記記憶媒体へのコマンドの発行順序、及び/又は、コマンドの発行先の記憶媒体を変更する手段と、
前記記憶媒体へ発行予定のコマンドのうち発行順序及び/又は発行先の記憶媒体の前記変更により、完了時間が変化するコマンドについて完了予測時間を再計算する処理を実行させるプログラム。 - 請求項17記載のプログラムにおいて、
前記応答時間に間に合わないコマンドを、前記応答時間に間に合うようにコマンド列の発行先記憶媒体を変更する際に、
各記憶媒体におけるアクセス時間の増加が最小になるように前記記憶媒体に対する発行予定のコマンドの発行先記憶媒体を変更する処理を前記コンピュータに実行させるプログラム。 - 請求項17記載のプログラムにおいて、
前記応答時間に間に合わないコマンドを前記応答時間に間に合うように、コマンド列の発行先記憶媒体を変更する際に、
各記憶媒体におけるアクセス時間の増加が最小になるように前記記憶媒体に対する発行予定のコマンド列の発行順序を変更する処理を前記コンピュータに実行させるプログラム。 - 請求項17記載のプログラムにおいて、
前記応答時間に間に合わないコマンドを前記応答時間に間に合うように、コマンド列の発行先の記憶媒体を変更する際に、
前記コマンドの発行先記憶媒体に対するアクセスコマンドで構成される待ち行列上において前記コマンドより先に記憶媒体に発行するコマンドについて、コマンド発行先の記憶媒体を変更する処理を前記コンピュータに実行させるプログラム。 - 請求項17記載のプログラムにおいて、
各記憶媒体に発行予定のコマンドが前記応答時間に間に合わない場合に、ランダムアクセス性能の向上、又は、アクセス処理が完了するまでの時間の短縮を目的としてスケジューリング手段でスケジューリングを行った結果求められた、各記憶媒体に対する発行予定のコマンドと、前記発行予定のコマンドの記憶媒体に対する発行順序について、
各コマンドが、前記応答時間に間に合うように、コマンドの発行先記憶媒体、又は、記憶媒体に対するコマンドの発行順序を変更し、
各コマンドの完了時間を予測可能なスケジューリング手段に対して、前記変更結果を送信し、各コマンドに対する応答時間保証の可否の確認、コマンドの発行順序の変更に伴うコマンド間の依存関係の矛盾発生有無の確認の少なくとも1方を行う処理を前記コンピュータに実行させるプログラム。
- データを冗長に格納する複数の記憶媒体を含むアレイを備えたストレージ装置を構成するコンピュータに、
ホストからのアクセス要求を受け、前記アクセス要求を前記記憶媒体へアクセスするためのコマンドに変換するアクセス要求制御と、前記記憶媒体に対するコマンド列をスケジューリングし、前記スケジューリング済みの前記コマンド列の各コマンドの完了時間の予測を行うアクセス要求処理と、
前記アクセス要求処理による、前記記憶媒体に対するコマンド列のスケジューリング結果と、前記記憶媒体に対するコマンドの完了時間の予測結果とから、応答時間保証情報格納部に格納される情報を用いて、前記記憶媒体に対する各コマンドが、前記ホストからの対応する各アクセス要求に対して前記応答時間に収まるか否かを確認し、
完了時間が前記応答時間に収まらないコマンドが存在する場合、前記コマンド列の発行順序、及び/又は、コマンドの発行先の記憶媒体を変更し、
変更後のコマンド列のコマンドの完了時間の予測の実行を前記アクセス要求処理に指示し、
前記アクセス要求処理で行われた、前記変更後のコマンド列のコマンドの完了時間の予測結果を用いて、前記記録媒体に対する各コマンドが、前記ホストからの対応する各アクセス要求に対して前記応答時間に収まるか否かを確認する応答時間制御処理と、
を実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009203920A JP2011054042A (ja) | 2009-09-03 | 2009-09-03 | ストレージ装置と方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009203920A JP2011054042A (ja) | 2009-09-03 | 2009-09-03 | ストレージ装置と方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011054042A true JP2011054042A (ja) | 2011-03-17 |
Family
ID=43942958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009203920A Withdrawn JP2011054042A (ja) | 2009-09-03 | 2009-09-03 | ストレージ装置と方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011054042A (ja) |
-
2009
- 2009-09-03 JP JP2009203920A patent/JP2011054042A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9378093B2 (en) | Controlling data storage in an array of storage devices | |
US8145932B2 (en) | Systems, methods and media for reducing power consumption in multiple controller information handling systems | |
US20080082744A1 (en) | Storage system having data comparison function | |
US9658888B2 (en) | Thresholding task control blocks for staging and destaging | |
US10592365B2 (en) | Method and apparatus for managing storage system | |
US9632945B2 (en) | Destage grouping for sequential fast write tracks | |
JP4490451B2 (ja) | 階層型ストレージ管理システムにおける要求スケジューリング方法、要求スケジューリング装置、及びプログラム | |
US20090217067A1 (en) | Systems and Methods for Reducing Power Consumption in a Redundant Storage Array | |
US7761659B2 (en) | Wave flushing of cached writeback data to a storage array | |
JP2005309818A (ja) | ストレージ装置、そのデータ読出方法、及びそのデータ読出プログラム | |
US8769195B2 (en) | Storage apparatus and storage apparatus control method | |
US20180336238A1 (en) | Data placement optimization | |
US9465745B2 (en) | Managing access commands by multiple level caching | |
WO2016203629A1 (ja) | ストレージシステム及びキャッシュ制御方法 | |
JP2008016024A (ja) | キャッシュされたデータのダイナミック適応フラッシング | |
US20220129174A1 (en) | Method, device and computer program product for storage management | |
JPWO2014119269A1 (ja) | データセット多重度変更装置、サーバ、およびデータセット多重度変更方法 | |
JP2007102436A (ja) | ストレージ制御装置およびストレージ制御方法 | |
US20140068214A1 (en) | Information processing apparatus and copy control method | |
JP5292813B2 (ja) | ストレージ装置と方法とプログラム | |
WO2016059715A1 (ja) | 計算機システム | |
JP2011054042A (ja) | ストレージ装置と方法及びプログラム | |
WO2011074591A1 (ja) | ストレージ装置、ストレージ制御装置、ストレージ制御方法及びプログラム | |
JP2009169475A (ja) | ストレージ装置、データ格納方法、データ読出方法、データ格納位置・データ読出位置決定プログラム | |
US7669007B2 (en) | Mirrored redundant array of independent disks (RAID) random access performance enhancement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20121106 |