JP6119533B2 - ストレージ装置,ステージング制御方法及びステージング制御プログラム - Google Patents
ストレージ装置,ステージング制御方法及びステージング制御プログラム Download PDFInfo
- Publication number
- JP6119533B2 JP6119533B2 JP2013202312A JP2013202312A JP6119533B2 JP 6119533 B2 JP6119533 B2 JP 6119533B2 JP 2013202312 A JP2013202312 A JP 2013202312A JP 2013202312 A JP2013202312 A JP 2013202312A JP 6119533 B2 JP6119533 B2 JP 6119533B2
- Authority
- JP
- Japan
- Prior art keywords
- staging
- amount
- storage device
- period
- ssd
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
-
- 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/08—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
(1)容量が大きく、安価な不揮発メモリとして使用可能である。
(2)書込めるデータの総量に限界がある。すなわち、いわゆる寿命がある。なお、SSDの寿命は、SSD内に搭載されているフラッシュメモリの種類(SLC(Single Level Cell),MLC(Multi Level Cell))や搭載量により異なる。
一般に、アクセス性能が高いDRAM/DDRは1次キャッシュとして使用され、SSDは2次キャッシュとして使用されている。
すなわち、上述の如くSSDには寿命があり、ステージングが多いと、この寿命が短くなる。なお、ステージングとは、HDD(Hard Disk Drive)等の記憶装置から読み出したデータを2次キャッシュ(SSD)に書き込むことをいう。
図11はSSDにおけるライト量とリード性能との関係を示す図である。この図11に示すように、SSDにおいてライト量が増加すると(図中右方向参照)、リード性能が著しく低下する。これは、SSDでは一般的にリードに比べてライトの重みの方が大きいことによる。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
ストレージ装置1は、1つ以上(図1に示す例では3つ)のHDD(Hard Disk Drive)25を備え、ホスト装置3(図3参照)に記憶領域を提供する。
ストレージ装置1は、図1に示すように、複数のHDD25を備えるとともに、コントローラ2を備える。
コントローラ2は、図2に示すように、ホスト接続用I/Oコントローラ21,プロセッサ10,HDD接続用I/Oコントローラ22,メインメモリ23及びSSD24を備える。又、コントローラ2において、これらのホスト接続用I/Oコントローラ21,プロセッサ10,HDD接続用I/Oコントローラ22,メインメモリ23及びSSD24はメインバス26を介して相互に通信可能に接続されている。
ホスト接続用I/Oコントローラ21は、ホスト装置3とLAN(Local Area Network)や光回線等の通信回線を介して接続され、このホスト装置3との間で各種コマンドやデータの授受を行なう通信アダプタである。ホスト装置3から送信されるリードコマンドやライトコマンド等のI/Oコマンドや各種データは、このホスト接続用I/Oコントローラ21により受信される。又、HDD25等から読み出されたデータ等は、このホスト接続用I/Oコントローラ21を介してホスト装置3に送信される。
HDD接続用I/Oコントローラ22は、各HDD25と通信可能に接続され、これらのHDD25との間で各種コマンドやデータの授受を行なうストレージインタフェースである。このHDD接続用I/Oコントローラ22は、例えば、デバイスアダプタ(Device Adapter;DA)と呼ばれることもある。
メインメモリ23は、主記憶装置であり、プロセッサ10が各種処理を実行する際のワーキングメモリとして利用されるとともに、ストレージ装置1としての1次キャッシュとしても用いられる。このメインメモリ23としては、例えば、DRAMやDDR SDRAM等の一般的な揮発性メモリが用いられる。
図3は実施形態の一例としてのストレージ装置1における1次キャッシュと2次キャッシュとの関係を示す図である。
ホスト装置3からリード要求が行なわれると、コントローラ2は、リード対象のデータがメインメモリ23に格納されている場合には(キャッシュヒット)、このメインメモリ23から読み出したデータをホスト装置3に応答する。リード対象のデータがメインメモリ23に格納されていない場合には(キャッシュミス)、コントローラ2は、SSD24に読み出し対象のデータが格納されているか否かを確認する。
すなわち、プロセッサ10は、図2に示すように、ホストI/O制御部11,キャッシュ制御部12,ステージング制御部13,SDD制御部14及びストレージ制御部15として機能する。
ストレージ制御部15は、HDD25のハードウェア制御を行なう。すなわち、ストレージ制御部15は、HDD25へのデータのリードやライトの制御を行なう。このストレージ制御部15は、例えば、キャッシュ制御部12から、データのリード要求を受信し、HDD25から、この指定されたデータを読み出す。
具体的には、SSD制御部14は、後述の如くステージング制御部13により求められたステージング量に応じて、SSD24に対するステージングを行なう。ステージングを行なう場合には、ストレージ制御部15がHDD25から読み出したデータをSSD制御部14がSSD24に書き込む。
キャッシュ制御部12は、メインメモリ23及びSSD24を用いたキャッシュ制御を行なう。
キャッシュ制御部12は、例えば、ホスト装置2からのリード要求に対応するデータがSSD24に格納されていない場合には、ストレージ制御部15に対象のデータをHDD25から読み出させる。そして、キャッシュ制御部12は、このHDD25から読み出させたデータを、SSD制御部14によりSSD24にステージングさせる。
このキャッシュ制御部12としての機能は、例えば、キャッシュドライバにより実現される。
図4は実施形態の一例としてのストレージ装置1におけるSSD24のリード量及びステージング量の時間推移を示す図である。この図4においては、ストレージ装置1の起動時からの時間経過に伴うSSD24へのリード量とライト量との各変化を示している。この図4に示すように、SSD24においては、ステージング量は時間経過に従って減少する一方で、リード量は時間経過に従って増加することがわかる。
本ストレージ装置1の起動後、SSD24へのステージング量(ライト量)が所定の第1の閾値を超えるまでの期間をステージング期(第1の期間)という。
また、ステージング期の後、SSD24からの単位時間当たりのリード量の変動が所定範囲内になるまでの期間を学習期(第2の期間)という。更に、学習期後の期間を安定期(第3の期間)という。
また、SSD24へのステージング量(ライト量)が所定の第1の閾値を超えたことを検知した後、学習期であると認識する。その後、SSD24からの単位時間当たりのリード量の変動が所定範囲内に安定したことを検知すると安定期と認識する。
また、ステージング制御部13は、SSD性能特性テーブルT1を作成する機能を備えるとともに、SSD24における処理履歴を短周期テーブルT2及び長周期テーブルT3として作成する機能を有する。
(1)SSD性能特性テーブルT1
ステージング制御部13は、例えば本ストレージ装置1の起動時に、SSD24のリード/ライト競合時の性能特性を測定し、この測定結果に基づいてSSD性能特性テーブルT1を作成する。
SSD性能特性テーブルT1は、SSD24の性能限界(性能飽和)状態でのライト(ライト性能)とリードの負荷(リード負荷)の組み合わせを示す性能特性情報であり、図5に示す例においては、ライト量とリード量との組み合わせとして構成されている。
なお、このSSD性能特性テーブルT1におけるライト量はこれらの9段階に限定されるものではなく、8段階以下もしくは10段階以上のライト量を登録してもよく、種々変形して実施することができることは言うまでもない。
すなわち、このSSD性能特性テーブルT1に登録されているライト量とリード量との組み合わせは、当該ライト量のライト処理を行なわせた状態で、当該リード量のリード処理を実行させると、SSD24が性能限界状態となり、処理能力が飽和状態となることを示す。例えば、SSD24に、そのライトの最大処理性能の10%の負荷がかかっている状態においては、毎秒200MBのリード処理を行なわせると、当該SSD24の性能は飽和状態(性能限界)となる。
SSD性能特性テーブルT1は、例えば以下の(a1),(a2)の手順で作成することができる。
(a1)SSD24に対して、その負荷状況を測定しながら、ライト要求をその処理性能が飽和するまで多重発行することで、ライトの最大性能を特定する。すなわち、SSD24の負荷状態が頭打ちになった時のライト要求の発行量を求める。特定したライトの最大性能値をメインメモリ23等の記憶領域に格納する。なお、SSD24の負荷は、既知の種々の手法を用いて実現することができ、便宜上その説明は省略する。
図5においては、ライト量を、10%,20%,30%,40%,50%,60%,70%,80%及び90%の、10%刻みの9段階に分割した例を示している。
ステージング制御部13は、リード性能が頭打ちになった時点でのリード量(飽和リード量;図5に示す例では200MB)を決定し、この飽和リード量をSSD性能特性テーブルT1に当該ライト量に対応付けて登録する。ステージング制御部13は、SSD性能特性テーブルT1における他のライト量についても同様の処理をそれぞれ行ない、各ライト負荷での飽和リード量をそれぞれ決定し、SSD性能特性テーブルT1に登録することで、SSD性能特性テーブルT1を完成させる。
ステージング制御部13は、SSD24へのリードアクセスやライトアクセスを行なう毎に、その処理実績(実績情報)に基づいて短周期テーブルT2及び長周期テーブルT3を作成する。
ここで、短周期テーブルT2は、SSD24へのリードアクセスとライトアクセスとの実績を短周期(例えば1時間間隔)で集計した、SSD24の処理履歴情報である。又、長周期テーブルT3は、SSD24へのリードアクセスとライトアクセスとの実績を短周期よりも長い長周期(例えば10日間隔)で集計した、SSD24の処理履歴情報である。
これらの短周期テーブルT2及び長周期テーブルT3においては、リードアクセスの実績情報として、キャッシュ使用率及びヒット量(リード量)が格納される。又、ライトアクセスの実績情報として、ライト要求量及び実ライト量が格納される。
ヒット量は、SSD24においてリードリクエストに対して応答(リード)できた(キャッシュヒットした)データ量(リード量,キャッシュヒット量)である。
これらのキャッシュ使用率,ヒット量,ライト要求量及び実ライト量の各情報は、既知の手法で取得することができ、例えば、上述したキャッシュ制御部12によって管理される。
なお、図7に示す例においては、図中下方が古い情報であり、最上部のエントリが直近(最新)の10日間の集計結果を示す。又、この図7に示す例においては、10日間単位で100日分の実績情報が登録されている。
また、ステージング制御部13は、上述した、ステージング期,学習期及び安定期の各期間で、それぞれSSD24の最適なステージング量を決定する。
(A)ステージング期
ステージング期においては、リード要求によるキャッシュヒットはほとんど見込めなく、又、SSD24を早く安定期に移行させるために、ステージング期においては、ステージング量の制限は行なわない。このステージング期においては、ステージング制御部13は、ステージングを優先して実施する(第1のステージング量制御)。
(B)学習期
学習期においても、ステージング期と同様にステージングを優先して動作させる。ただし、リードについても、直近のヒット率から見込みを予測し、最低限のステージングの制限を実施する。
ステージング制御部13は、例えば、以下の式(1)に基づき、予測ヒット量を算出する。
+(1時間前のヒット量)・・・(1)
ステージング制御部13は、算出した予測ヒット量に基づき、上述したSSD性能特性テーブルT1を参照して、このヒット量に対応するライト量を決定する。
例えば、図6に例示する短周期テーブルT2において、1時間前のヒット量は26MBであり、2時間前のヒット量は22MBであるので、上記式(1)により、予測ヒット量は、(26−22)+26=30MBとして求められる。
ステージング制御部13は、この予測ヒット量30MBに基づいて、図5に示すSSD性能特性テーブルT1を参照して、ライト量60%を決定する。このライト量60%との値は、30MBのリード量に影響を与えることなく、SSD24の最大限の性能を発揮できる値である。つまり、SSD24から予測ヒット量の30MBのリードを行なった状態では、SSD24のライトの最大性能の60%の負荷でライトを行なわせると、SSD24をその最高の性能で活用できることを示す。
具体的には、ステージング制御部13は、前述したSSD24のライトの最大処理性能の値に対して、決定したライト量をかけた値にSSD24の負荷量が収まるようにライト量の負荷を制限する。
このように、学習期においては、ステージング制御部13は、リード性能に影響を与えることなくSSD24の最大限の性能を発揮できるステージング量を決定して、ステージング制御(第2のステージング量制御)を実現する。
(C)安定期
安定期においては、リード(リードヒット)処理を優先して実行させ、ステージングについては、SSD24の寿命を全うさせられる量に制限し最低限に留める、第3のステージング量制御を行なう。
閾値=(SSD書込み可能量−既書込み量)÷(残使用年数×365×24−SSD既運用時間)÷(60分×60秒÷単位秒) ・・・(2)
ここで、SSD書込み可能量は、SSD24にのべ書き込み可能な総データ量(総書込み可能容量)であり、SSD24が寿命(耐用年数)を迎えるまでに書き込めるデータの総量(寿命性能情報)である。このSSD書込み可能量は、例えば、SSD24の製造メーカ等が提供する仕様等により知ることができる。既書込み量は、その時点で当該SSD24に書き込まれたデータの総量であり、例えば、SSD24の所定領域やストレージ装置1の管理情報から既知の手法で取得することができる。
SSD既運用時間は、当該SSD24を運用した時間(使用実績情報)であり、例えば、SSD24の所定領域やストレージ装置1の管理情報から既知の手法で取得することができる。
すなわち、安定期においては、ステージング制御部13は、SSD24の寿命を全うさせられる最低限のステージング量(閾値)を算出する。
そして、ステージング制御部13が、単位秒(例えば10秒)あたりに、算出した閾値以下のステージング量となるようにSSD制御部14を制御することで、使用中のSSD24を残使用年数いっぱいまで使用することが可能となる。
また、ステージング制御部13は、安定期においては、上述した閾値に基づき、小さな波で表されるステージング量の変動を吸収する制御と、突発的に発生する大きな波で表されるステージング量の変動を吸収する制御とを行なう。
ステージング制御部13は、このように、上記単位秒内のステージングの総計において閾値を下回った分については、その次の単位秒において相殺するようにステージング量を増加させるよう調整する。
このように、ステージング制御部13は、ある単位時間において、閾値よりも少ないステージング量であった部分については、閾値との差分のステージング量を、次の単位時間で余計に書き込めるようにする。すなわち、算出した閾値に基づき、書込が少ない部分があった場合に、次の単位時間に持ち越して行なうキャリーオーバーを実現する。なお、閾値との差分のステージング量であって、次の単位時間に持ち越されるステージング量をキャリーオーバー量という場合がある。
ステージング制御部13は、この予測したピーク値(予測ピーク値)において、上記式(2)により算出した閾値を超えるステージング量(余剰ステージング量)を算出する。そして、ステージング制御部13は、この余剰ステージング量を所定期間(例えば24時間)で分割した分割余剰ステージング量(キープ量)を、当該所定期間の閾値に加算することで、この24時間のステージング量を均等に減らす。キープ量は、例えば、以下の式(3)で表すことができる。
・・・(3)
すなわち、安定期においては、ステージング制御部13は、予測したピーク値に備えて、予めステージング量を所定期間、均等にキープ量だけ差し引いておく(キープ)。これにより、ステージング量を一定に保つことができる。
また、キャッシュ制御部12から突出して増大するステージング量のステージング要求が行なわれた場合、すなわち、ステージング量の突発的な波が発生した場合には、ステージング制御部13は、このステージング要求の突発的な波を吸収する処理を行なう。すなわち、ステージング量の突発的な波を検知した時点から所定期間(例えば、24時間)、閾値から分割余剰ステージング量を減算することで、この24時間のステージング量を均等に増加させる。
これにより、ステージング制御部13が、所定期間内におけるステージング量が、算出した閾値以下のステージング量となり、使用中のSSD24を残使用年数いっぱいまで使用することが可能となる。
上述の如く構成された実施形態の一例としてのストレージ装置1における装置起動時の処理を、図8に示すフローチャート(ステップA1,A2)に従って説明する。
ステップA1において、ステージング制御部13は、SSD24に対して、その負荷を測定しながら、ライト要求をその処理性能が飽和するまで多重発行することで、ライトの最大性能を特定する。
ステップA2において、ステージング制御部13は、ライト負荷割合毎の飽和リード量をそれぞれ決定し、SSD性能特性テーブルT1を作成する。
SSD24対してI/O要求が行なわれると、ステップB1において、ステージング制御部13は、当該I/O要求に伴ってステージング(ライト)を行なうか否かを確認する。
その後、ステップB6において、ステージング制限がされているか否かを確認する。ステージング制限がされていない場合には(ステップB6のNOルート参照)、I/O要求に基づき、短周期テーブルT2や長周期テーブルT3を更新する(ステップB2,B3)。その後、ステップB4において、SSD制御部14がSSD24に対するI/O処理、すなわちステージング処理(ライト処理)を実行し、処理を終了する。
ステージング制御部13は、キャッシュ制御部12からステージング要求を受信すると、ステップC1において、ステージング期であるか否かを確認する。ステージング期である場合には(ステップC1のYESルート参照)、第1のステージング量制御を行なう。すなわち、SSD24へのステージング量の抑制を行なうことなく、HDD5から読み出される全てのデータをSSD24にステージングさせるべく、ステージング制御部13はステージング制御なしと決定する。その後、図9に示すフローチャートのステップB6に移行する。
また、学習期でない場合には(ステップC2のNOルート参照)、以後、安定期の処理として、第3のステージング量制御を行なう。すなわち、ステップC5において、ステージング制御部13は、上記式(2)を用いて、SSD24の寿命を全うさせられる最低限の単位秒あたりのステージング量を算出する。
すなわち、ステージング期においては、ステージングを優先的に行なわせる第1のステージング量制御を行なうことで、SSD24を短時間で安定期に移行させることができる。
安定期においては、ステージング制御部13は第3のステージング量制御を行なう。すなわち、ステージング制御部13は、上記式(2)を用いて、SSD24の寿命を全うさせられる最低限の単位秒あたりのステージング量(閾値)を算出する。そして、ステージング制御部13は、閾値よりも少ないステージング量であった部分については、閾値との差分のステージング量を次の単位時間に持ち越してステージングするキャリーオーバーを行なう。これにより、所定期間内におけるステージング量が算出した閾値以下となり、SSD24を指定する期間(残使用年数)いっぱいまで使用することが可能となり、SSD24を効率的に稼動させることができる。
装置起動時に、SSD24の性能限界となるリード量とライト量との組合せを示すSSD性能特性テーブルT1を作成することで、当該ストレージ装置1の装置状態に合ったステージング制御を行なうことができ、信頼性を向上させることができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるキャッシュ制御部と、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なうステージング制御部と
を備えることを特徴とする、ストレージ装置。
前記第1のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせる制御を含むことを特徴とする、付記1記載のストレージ装置。
前記第2のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、付記1又は2記載のストレージ装置。
前記第3のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、付記1〜3のいずれか1項に記載のストレージ装置。
前記第3のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、付記4記載のストレージ装置。
記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置におけるステージング制御方法であって、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なう
ことを特徴とする、ステージング制御方法。
前記第1のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせる制御を含むことを特徴とする、付記6記載のステージング制御方法。
前記第2のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、付記6又は7記載のステージング制御方法。
前記第3のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、付記6〜8のいずれか1項に記載のステージング制御方法。
前記第3のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を、所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、付記9記載のステージング制御方法。
記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置において、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なう
処理をコンピュータに実行させることを特徴とする、ステージング制御プログラム。
前記第1のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせる制御を含むことを特徴とする、付記11記載のステージング制御プログラム。
前記第2のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、付記11又は12記載のステージング制御プログラム。
前記第3のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、付記11〜13のいずれか1項に記載のステージング制御プログラム。
前記第3のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を、所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、付記14記載のステージング制御プログラム。
2 コントローラ
3 ホスト装置
10 プロセッサ
11 ホストI/O制御部
12 キャッシュ制御部
13 ステージング制御部
14 SSD制御部
15 ストレージ制御部
21 ホスト接続用I/Oコントローラ
22 HDD接続用I/Oコントローラ
23 メインメモリ
24 SSD
25 HDD
26 メインバス
T1 SSD性能特性テーブル
T2 短周期テーブル
T3 長周期テーブル
Claims (8)
- 記憶装置と半導体記憶装置とを有するストレージ装置であって、
前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるキャッシュ制御部と、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なうステージング制御部と
を備えることを特徴とする、ストレージ装置。 - 前記第1のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせることを特徴とする、請求項1記載のストレージ装置。 - 前記第2のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、請求項1又は2記載のストレージ装置。 - 前記第3のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、請求項1〜3のいずれか1項に記載のストレージ装置。 - 前記第3のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、請求項4記載のストレージ装置。 - 記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置におけるステージング制御方法であって、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なう
ことを特徴とする、ステージング制御方法。 - 記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置において、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なう
処理をコンピュータに実行させることを特徴とする、ステージング制御プログラム。 - 前記第2のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、請求項7記載のステージング制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013202312A JP6119533B2 (ja) | 2013-09-27 | 2013-09-27 | ストレージ装置,ステージング制御方法及びステージング制御プログラム |
US14/492,101 US9501413B2 (en) | 2013-09-27 | 2014-09-22 | Storage apparatus, staging control method, and computer-readable recording medium having stored staging control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013202312A JP6119533B2 (ja) | 2013-09-27 | 2013-09-27 | ストレージ装置,ステージング制御方法及びステージング制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015069353A JP2015069353A (ja) | 2015-04-13 |
JP6119533B2 true JP6119533B2 (ja) | 2017-04-26 |
Family
ID=52741303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013202312A Active JP6119533B2 (ja) | 2013-09-27 | 2013-09-27 | ストレージ装置,ステージング制御方法及びステージング制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9501413B2 (ja) |
JP (1) | JP6119533B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016170631A1 (ja) * | 2015-04-22 | 2016-10-27 | 株式会社日立製作所 | ストレージシステム |
US10089227B1 (en) * | 2015-05-06 | 2018-10-02 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a write cache flushing algorithm |
US10019362B1 (en) | 2015-05-06 | 2018-07-10 | American Megatrends, Inc. | Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions |
US10108344B1 (en) | 2015-05-06 | 2018-10-23 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm |
US10055354B1 (en) | 2015-05-07 | 2018-08-21 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a hashing algorithm to maintain sibling proximity |
US10176103B1 (en) | 2015-05-07 | 2019-01-08 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a cache replacement algorithm |
US10114566B1 (en) | 2015-05-07 | 2018-10-30 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a read-modify-write offload algorithm to assist snapshots |
CN106547476B (zh) * | 2015-09-22 | 2021-11-09 | 伊姆西Ip控股有限责任公司 | 用于数据存储系统的方法和装置 |
JP6721821B2 (ja) * | 2015-11-19 | 2020-07-15 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム |
US10671460B2 (en) * | 2018-02-05 | 2020-06-02 | Micron Technology, Inc. | Memory access communications through message passing interface implemented in memory systems |
TWI712886B (zh) * | 2019-07-05 | 2020-12-11 | 大陸商合肥兆芯電子有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155833A (en) * | 1987-05-11 | 1992-10-13 | At&T Bell Laboratories | Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory |
JP3308554B2 (ja) * | 1991-02-20 | 2002-07-29 | 株式会社日立製作所 | 制御装置及び制御装置の制御方法 |
JP3528094B2 (ja) * | 1994-02-09 | 2004-05-17 | 株式会社日立製作所 | バス利用方法および記憶制御装置 |
JPH10154101A (ja) * | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
JPH11212728A (ja) * | 1998-01-26 | 1999-08-06 | Hitachi Ltd | 外部記憶サブシステム |
WO2003085677A1 (fr) * | 2002-04-05 | 2003-10-16 | Renesas Technology Corp. | Memoire non volatile |
CN1332319C (zh) * | 2003-12-22 | 2007-08-15 | 松下电器产业株式会社 | 存储系统控制方法 |
JP4494031B2 (ja) * | 2004-02-06 | 2010-06-30 | 株式会社日立製作所 | ストレージ制御装置、及びストレージ制御装置の制御方法 |
JP2008225914A (ja) * | 2007-03-13 | 2008-09-25 | Fujitsu Ltd | プリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法 |
US7996642B1 (en) * | 2007-04-25 | 2011-08-09 | Marvell International Ltd. | Digital locked loop on channel tagged memory requests for memory optimization |
JP2008310741A (ja) | 2007-06-18 | 2008-12-25 | Fujitsu Ltd | キャッシュの最適化方法及び装置 |
JP5124217B2 (ja) * | 2007-09-18 | 2013-01-23 | 株式会社日立製作所 | ストレージ装置 |
JP2009104420A (ja) * | 2007-10-23 | 2009-05-14 | Hitachi Ltd | 記憶制御装置及び記憶装置の障害検出方法 |
JP2009163647A (ja) | 2008-01-10 | 2009-07-23 | Hitachi Ltd | ディスクアレイ装置 |
US20100017556A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporationm U.S.A. | Non-volatile memory storage system with two-stage controller architecture |
US8429349B2 (en) * | 2008-09-18 | 2013-04-23 | International Business Machines Corporation | Techniques for cache injection in a processor system with replacement policy position modification |
JP2010122730A (ja) * | 2008-11-17 | 2010-06-03 | Hitachi Ltd | ストレージ制御装置及びストレージシステム |
KR100998929B1 (ko) * | 2009-01-23 | 2010-12-09 | 한국과학기술원 | 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법 |
US8285947B2 (en) * | 2009-02-06 | 2012-10-09 | Apple Inc. | Store hit load predictor |
CN102576333B (zh) * | 2009-10-05 | 2016-01-13 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
WO2011114384A1 (en) * | 2010-03-19 | 2011-09-22 | Hitachi, Ltd. | Storage system and method for changing configuration of cache memory for storage system |
US8688897B2 (en) * | 2010-05-28 | 2014-04-01 | International Business Machines Corporation | Cache memory management in a flash cache architecture |
US20120221813A1 (en) * | 2011-02-28 | 2012-08-30 | Hitachi, Ltd. | Storage apparatus and method of controlling the same |
JP5492156B2 (ja) * | 2011-08-05 | 2014-05-14 | 株式会社東芝 | 情報処理装置およびキャッシュ方法 |
JP5117608B1 (ja) * | 2011-09-30 | 2013-01-16 | 株式会社東芝 | 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法 |
US8688915B2 (en) * | 2011-12-09 | 2014-04-01 | International Business Machines Corporation | Weighted history allocation predictor algorithm in a hybrid cache |
WO2014061064A1 (en) * | 2012-10-18 | 2014-04-24 | Hitachi, Ltd. | Cache control apparatus and cache control method |
US9081686B2 (en) * | 2012-11-19 | 2015-07-14 | Vmware, Inc. | Coordinated hypervisor staging of I/O data for storage devices on external cache devices |
WO2014192051A1 (ja) * | 2013-05-27 | 2014-12-04 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
-
2013
- 2013-09-27 JP JP2013202312A patent/JP6119533B2/ja active Active
-
2014
- 2014-09-22 US US14/492,101 patent/US9501413B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9501413B2 (en) | 2016-11-22 |
JP2015069353A (ja) | 2015-04-13 |
US20150095567A1 (en) | 2015-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6119533B2 (ja) | ストレージ装置,ステージング制御方法及びステージング制御プログラム | |
CN107622022B (zh) | 数据存储设备中的高速缓存超量配置 | |
US9423970B2 (en) | Method and system for predicting block failure in a non-volatile memory | |
US9916087B2 (en) | Method and system for throttling bandwidth based on temperature | |
JP5719013B2 (ja) | フラッシュ読取コマンド完了の時間推定に基づくホスト読取コマンドリターンのリオーダリング | |
US9329797B2 (en) | Method and system for adjusting block erase or program parameters based on a predicted erase life | |
US8977803B2 (en) | Disk drive data caching using a multi-tiered memory | |
US8719531B2 (en) | System and method for performing data retention that incorporates environmental conditions | |
KR101894625B1 (ko) | 데이터 저장 시스템들에 대한 우선순위 기반 가비지 수집 | |
CN107622023B (zh) | 限制数据存储设备中的访问操作 | |
US9348520B2 (en) | Lifetime extension of non-volatile semiconductor memory for data storage device | |
US9501406B2 (en) | Storage control apparatus and storage control method | |
EP3338195B1 (en) | Caching sensing device data in data storage device | |
US20180203631A1 (en) | Storage system | |
US20170160953A1 (en) | Data storage device that stabilizes write latency | |
US10310923B1 (en) | Probabilistic aging command sorting | |
WO2021099863A1 (en) | Memory controllers for solid-state storage devices | |
US11061814B1 (en) | Managing data storage caching and tiering | |
US9886399B2 (en) | Storage control device, storage device, information processing system, and storage control method therefor | |
JP5594647B2 (ja) | ストレージ装置及びその制御方法 | |
KR20140041408A (ko) | 저장 위치 속성 및 데이터 사용량 통계에 기초하여 데이터 저장을 위한 저장 위치 선택 | |
WO2012129987A1 (en) | Managing high speed memory | |
US8364893B2 (en) | RAID apparatus, controller of RAID apparatus and write-back control method of the RAID apparatus | |
JP6919277B2 (ja) | ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム | |
JP2016126656A (ja) | ストレージ制御装置,制御プログラム及び制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160606 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170222 |
|
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: 20170228 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170313 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6119533 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |